; visibility toggles the hidden attribute after a 300 ms open delay and no close delay; positioned with anchor positioning or a popover at z.popover; the tooltip is never the only place a control's name lives.",
+ "web": "the trigger carries aria-describedby to a
; visibility toggles the hidden attribute after a 300 ms open delay, and hides 300 ms after the pointer leaves trigger and popup; positioned with anchor positioning or a popover at z.popover; the tooltip is never the only place a control's name lives.",
"nativeFallbacks": [
"GTK4 tooltip-text; the host draws it with the overlay border through the tooltip css node.",
"Qt QToolTip stylesheet; border and background from the tokens; no rounded corners.",
diff --git a/exports/components/tree.brief.txt b/exports/components/tree.brief.txt
index 10532d6aa..e9d25a4af 100644
--- a/exports/components/tree.brief.txt
+++ b/exports/components/tree.brief.txt
@@ -1,5 +1,5 @@
j3w1/theme implementation brief — tree
-theme: j3w1-theme 4.0.0 profile: default sourceDigest: sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=
+theme: j3w1-theme 4.0.0 profile: default sourceDigest: sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=
pin: https://raw.githubusercontent.com/j3w1/theme/v4.0.0/exports/components/tree.json
spec: spec/components/tree.md site: https://j3w1.github.io/theme/reference/#c-tree
maturity: stable priority: R2
diff --git a/exports/components/tree.json b/exports/components/tree.json
index 31111bfbe..c298cdfff 100644
--- a/exports/components/tree.json
+++ b/exports/components/tree.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "tree",
"family": "navigation",
"maturity": "stable",
diff --git a/exports/components/wizard.brief.txt b/exports/components/wizard.brief.txt
index 1d99b288b..95aab6770 100644
--- a/exports/components/wizard.brief.txt
+++ b/exports/components/wizard.brief.txt
@@ -1,5 +1,5 @@
j3w1/theme implementation brief — wizard
-theme: j3w1-theme 4.0.0 profile: default sourceDigest: sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=
+theme: j3w1-theme 4.0.0 profile: default sourceDigest: sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=
pin: https://raw.githubusercontent.com/j3w1/theme/v4.0.0/exports/components/wizard.json
spec: spec/components/wizard.md site: https://j3w1.github.io/theme/reference/#c-wizard
maturity: stable priority: R1
diff --git a/exports/components/wizard.json b/exports/components/wizard.json
index 286edb722..270932743 100644
--- a/exports/components/wizard.json
+++ b/exports/components/wizard.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "wizard",
"family": "forms-advanced",
"maturity": "stable",
diff --git a/exports/digests.json b/exports/digests.json
index 021ae8c54..c077fe361 100644
--- a/exports/digests.json
+++ b/exports/digests.json
@@ -4,185 +4,185 @@
"version": "4.0.0",
"algorithm": "sha256 over the file bytes with LF line endings, base64",
"files": {
- "exports/components/admin-form.brief.txt": "sha256-96++StOq8tG9f2FrQCrJVyrpQzty3NsEZo1ItGlQHE8=",
- "exports/components/admin-form.json": "sha256-2TlXwKoXO6zcy7Tx++Cm2rh/hlfQSzLAgg3iHIMc+A8=",
- "exports/components/alert.brief.txt": "sha256-MFc8WaATNVYJmSxUmKHZKBoCsksKC6rpi3eKaOcI7oQ=",
- "exports/components/alert.json": "sha256-N1aX81ExUlcbLny7o1Ps8qNiXl6FYwt1lU+/g3RZXRk=",
- "exports/components/avatar.brief.txt": "sha256-NIlbbcpRnXaOyDtKzs5Ku/s+qmStD/W2WJgYL7WQFy8=",
- "exports/components/avatar.json": "sha256-r07/ZuUO6VKbEMR1QWVKRz6ccLUBPqurjdKyuQPk6Tk=",
- "exports/components/badge.brief.txt": "sha256-5TGqDMxU+V18cOu/k0bdvmE1Q0Wy9EDEhWoOYLpHtpg=",
- "exports/components/badge.json": "sha256-8IEshqfh1RsMRDC6H9H5fptI3HHYLD9cw/xzzTKxj+w=",
- "exports/components/breadcrumbs.brief.txt": "sha256-iq84h4RgYF5wFI/UoYW2PEzNoC4Sd+/cDqI46HakPA0=",
- "exports/components/breadcrumbs.json": "sha256-URIM0vmWwvEIVzJIka7s4jaG4WOxMoJ8LDbFFMCMXgc=",
- "exports/components/button-group.brief.txt": "sha256-E6qysRaVWCOUj44HF715HunwQtWd7/+3obuSkwCnJNA=",
- "exports/components/button-group.json": "sha256-6R65U8U5eYZkgsk39bFPK5LBTxgclPJ4C5hR9un4iRM=",
- "exports/components/button.brief.txt": "sha256-0NSXbsFlI5TBu6M/nPZuLmngxHEJXsnwh/Hremey/ho=",
- "exports/components/button.json": "sha256-fpx3utLRj/ejAQlUy5k14oQwbTIClAI9Oi8Ogyd+d+A=",
- "exports/components/card.brief.txt": "sha256-P9RW5PAMJFrWtVbpwIGH5cIzURuGpKjTtdA+HiCEwI0=",
- "exports/components/card.json": "sha256-OPzyirE2R2itNnHbSarld/Un5f9ZTd+FtpvLB23HIA0=",
- "exports/components/chart.brief.txt": "sha256-YZQ2HvfBah1vMM8ev1lyP0CEJrze9xt96OfaKaFO8CE=",
- "exports/components/chart.json": "sha256-dNhHbR3i2kV6+CFwpXkGQAemCS63ck3AfJdvm5roZRs=",
- "exports/components/checkbox.brief.txt": "sha256-eprftdtFOjRVr+XSQW/texODZFC+3vveiYNGRzvE9Sk=",
- "exports/components/checkbox.json": "sha256-eF4Hc9ptoJR6MAHCFo+XvObHeyrh3JBIEF3jPCA/Yqs=",
- "exports/components/chip.brief.txt": "sha256-8BXgKnO9F2r0DsnKRHOiSPiU2bhZdrgeT++p966JDtQ=",
- "exports/components/chip.json": "sha256-n1NBTRmnMEk6PabtvRXepV3xpLoYwBW0nGYcoyJsc4Y=",
- "exports/components/code-editor.brief.txt": "sha256-ADgLnAftj0/Fb4cjccZp+i7AMeUBZR/J71KswB9KdQM=",
- "exports/components/code-editor.json": "sha256-0vAFRoRizmdpPWGWawnIIBOOTi0xhNBhg249A2QRwzA=",
- "exports/components/combobox.brief.txt": "sha256-fxo4YcPSN9sbIoV6pXl9rYAjJukFT7iwCFNogy9K6vY=",
- "exports/components/combobox.json": "sha256-bi9Un1R+qI1w4uAD7JwXVioAjO+TfBJ2YdPYdYRE5dE=",
- "exports/components/command-palette.brief.txt": "sha256-UL0UQLji9K8wjqTctUybQg6U76v/drR/cz1o1nx058A=",
- "exports/components/command-palette.json": "sha256-ca/jmbFZGiDz8eyzg399QygD+QjzRnxbezSSVLMfogE=",
- "exports/components/compact-dashboard.brief.txt": "sha256-IlBaHQ7LAxuAuDWskKhk1vkCU0Qpxdt74JwhFWR6/fg=",
- "exports/components/compact-dashboard.json": "sha256-5VqJEG4kjVnz9hGzkvVFe0DN7ct81WF4hgbEEvSjjK8=",
- "exports/components/data-table.brief.txt": "sha256-OLtzEWK6WfgxVatksFQDSysU50LQ6BhVDqjvaJNF4To=",
- "exports/components/data-table.json": "sha256-hjakBbiuffz4/zKoHVd1J4O3zOCOsiBgGk40jJzJ/aQ=",
- "exports/components/date-picker.brief.txt": "sha256-TguYVWfYqXpL02Pz5uwBzSybJK1RddvYQiLdgP7ct94=",
- "exports/components/date-picker.json": "sha256-C9vZnrKBtp3iyOzD1rj+O7jRttbE1UfyTQ2HO7EghiI=",
- "exports/components/description-list.brief.txt": "sha256-xO/nPG2Ds0M10dE1CTGFC+DwdVsEybjmRMR/W36Tpls=",
- "exports/components/description-list.json": "sha256-ZwNsiuLlqLpENEfVPAcjWTAfmA16wLYPGyXww48TyZk=",
- "exports/components/diagnostics.brief.txt": "sha256-5EEP+/h7KOwK6pgiXNsra23tCuWPNEWp14z9g1aJsRw=",
- "exports/components/diagnostics.json": "sha256-fD3AIMxCA0nJDmZRkE+basd1hOvDfl8G9SX41NS+Lxw=",
- "exports/components/dialog.brief.txt": "sha256-OquH9BHCbg9D0GEmgtSlNxs28hxoCEClCvaovxF5A1Y=",
- "exports/components/dialog.json": "sha256-whsqh1ZTeENrzZQ0fnl3XW0pylTDRVg+I9bL8baI3hc=",
- "exports/components/diff-view.brief.txt": "sha256-8To1A/0ojg/FMzLM8r4oj3/H2SYql/fjlfZb+/5OrvQ=",
- "exports/components/diff-view.json": "sha256-pZUhOKHPaDknpm882AYQf9AsG6cJIQMg8gLFrpb92G8=",
- "exports/components/disclosure.brief.txt": "sha256-qYM0By9TX5yfqpM+JS7p3H5z4G8L+M9IKcX5yEDYeHQ=",
- "exports/components/disclosure.json": "sha256-aatGXrfUPGCgYBRajZs41hMnlcq0bICILrM/PIJT5xc=",
- "exports/components/drawer.brief.txt": "sha256-AzSxrjNSuspFwdNf+7GQmHIHP0UA+jGcFKwPl38FZsU=",
- "exports/components/drawer.json": "sha256-qiAVCt0XgVXzhTO7QmWv7mUrU/R09RK0l3quAFvWyow=",
- "exports/components/editor-search.brief.txt": "sha256-5CJwqenldMhyMYKXLn62MHe51yIQKn4mmaZ1daVs9Gk=",
- "exports/components/editor-search.json": "sha256-liHOHxqi1RNapo0uCrv3B7vTJlecr1rL2hA6Ctm/TxI=",
- "exports/components/empty-state.brief.txt": "sha256-/niRYJqcn6gOutw7eEKJ1CziZevLQY6p+cCSRa6ukBA=",
- "exports/components/empty-state.json": "sha256-VxtNyRdmMsMGmJRJxyXE33300sOm1PU2kJT6TnzgHVk=",
- "exports/components/error-state.brief.txt": "sha256-6lvoeFwmDiFGyWbSo75y1+GvG6XEUuJGVu1GKeWcttY=",
- "exports/components/error-state.json": "sha256-X10UjVV18zwhpqmxs0Wh++8HrNiItZiY5tlhLaGJBgg=",
- "exports/components/field.brief.txt": "sha256-OOHcCcYW9Y0nMa8D3ZtwhRSkt/370oBKD+8sxvs1/EE=",
- "exports/components/field.json": "sha256-/718KnElGCw1Tx3beuyzrvUmZ8sbbuu8p2eLHjK7WaY=",
- "exports/components/fieldset.brief.txt": "sha256-sgCKzpX4jSUOAmQD7tVnt+0fe9sUiFjzy/9cfi9KUi0=",
- "exports/components/fieldset.json": "sha256-/zqw1AzrNjzsiuyFAH3Se8Zi8ZTF8NrNSpVqV4fFi5s=",
- "exports/components/file-browser.brief.txt": "sha256-7ilNCpwzYbKjTTcfx+hY3njblx8F/+q6HLdspqNUGsE=",
- "exports/components/file-browser.json": "sha256-1rW7OwM9GbrP5rg8DUSAzNeU69z+AiqGCpCL5JT1hnE=",
- "exports/components/file-input.brief.txt": "sha256-fejkotCGd39Mz2x0hdGL23ptzn6fVZzuJY5c+Dpb9Bo=",
- "exports/components/file-input.json": "sha256-3PC03SAUjPb+h4lFEWDSz5LhqTSVc3uNYlslPzoBdcM=",
- "exports/components/filterable-table.brief.txt": "sha256-FRJxryZfrn44qDdL4RFbQi6PHjPdniBG4/j8vUz1LAk=",
- "exports/components/filterable-table.json": "sha256-6EZhwGHWZSx7GFnFOSKeeuUm/4HEprM6Z+fsoR9n4Pg=",
- "exports/components/form-builder.brief.txt": "sha256-HpSTCVi3/dSy/rebI42qnhGI+j4jfG9zjGkX7XZxyH0=",
- "exports/components/form-builder.json": "sha256-p/VED53RX0LEzKCFJiJc9dRfvLUAj6WFePwNu8YwbsU=",
- "exports/components/i3-window-frame.brief.txt": "sha256-GEfqhGvMtWi8GPkMDfpZPs/E2zKmzvSmWC9DcSoF+Ao=",
- "exports/components/i3-window-frame.json": "sha256-WGOhg2oHOzWzi1hXk3THgnFRdcQnDCDAAkvURDKKil0=",
- "exports/components/icon-button.brief.txt": "sha256-j7rvUXsGdZFhguYxu8t/KLCDaRIaebWoF6ukXgVmO2M=",
- "exports/components/icon-button.json": "sha256-BGhJZjoqHZuxGZ4GL/LnGhVgSDt8NT0QsoSSs5Qq2Qk=",
- "exports/components/kbd.brief.txt": "sha256-cG5EpKi6UUpQ6GGmqWc2gnetgw9Z2kcHMUAwbYwcz2g=",
- "exports/components/kbd.json": "sha256-i38Th7/ujfsUiMDrhgFVeS3A6mWM5WCOnRJV/jT9pdU=",
- "exports/components/link.brief.txt": "sha256-6GQbA62ZGPXvYOPe3wFkxICeAzwKuID1Ex4eqAoSpHA=",
- "exports/components/link.json": "sha256-oeQ8Q4DDjkAzdSmYGSVoW/hx7zbE55v7sfBR/aygZfM=",
- "exports/components/list.brief.txt": "sha256-bGCqDm5/ST0RInYh7KRd35ZpdEb/bIf7dpq/b+CqqoY=",
- "exports/components/list.json": "sha256-VG+FKB+lQe72GAi+TbtVwGcCp8xZoSK67yLj/q1eJrE=",
- "exports/components/loading-indicator.brief.txt": "sha256-Z7x3sh9/J6pygZYlPSA7h2cdFdKsJYk60XpLyQ0rpuI=",
- "exports/components/loading-indicator.json": "sha256-CWs2iHLscEtxyYfdkf+wykSJq/1tg/50eG6HGzE5WvE=",
- "exports/components/menu.brief.txt": "sha256-iCafuVuz19ouI+tLNjC4QeaOMO0ba9Oh2AQEAlwZ/vU=",
- "exports/components/menu.json": "sha256-aI+xAhPbZERQCq3SXhRNiEflEa5nLQECZRThR+J2h+M=",
- "exports/components/multiselect.brief.txt": "sha256-KTje7E5dAFDAtvoJSWvimRoCMMXBwZkPW//oqPH5XUo=",
- "exports/components/multiselect.json": "sha256-9j1YnBusfBXHOX8cdz5BvBv5vpqK4vx4PdIKC8Nbmf4=",
- "exports/components/number-field.brief.txt": "sha256-86YhoorZoEmDMSoc8XpRUPmqeS8bdVlobuQeB6XaD1Y=",
- "exports/components/number-field.json": "sha256-n41bP6rpy2cLaRjphyTxafEeUTU8EzhfpeQsAllMJYY=",
- "exports/components/pagination.brief.txt": "sha256-m3KsTMdgkH+yyqbpd6cGYosj03pChmEDiMyl2MfcFBI=",
- "exports/components/pagination.json": "sha256-/gj/OtiYZ2bx2eGXlGBDWFQ2t6okaz9Fij3NQ6VIYik=",
- "exports/components/popover.brief.txt": "sha256-Y4+Uu3J4rlqbmHxn9uWTihLPHAchR/3EnlqDoG+z+0k=",
- "exports/components/popover.json": "sha256-zQuAADCQ6AJNdf1EEFyY4/OUMjEvKTvBdOKn8ZqZxoc=",
- "exports/components/progress.brief.txt": "sha256-Ik019UIMHcMIHt7zEP7TAKjJqLxHM2+oqTTjwz0PrEQ=",
- "exports/components/progress.json": "sha256-GmSVxYy5rJ5yCC94AD11VMIXremS9vS3kocXp/xq9cY=",
- "exports/components/radio-group.brief.txt": "sha256-yzL1S3IbDt0L8RUiPUI6feaYXUPM6H5USz4CqHL+C/o=",
- "exports/components/radio-group.json": "sha256-XKfMy84MCW/4OhLmJs9UpY5QmTfzmmfVWep27KMO9Us=",
- "exports/components/range.brief.txt": "sha256-3jnpyHRV97tJymLdNSCUbPp3SRIzyaz5MwQp53+awf8=",
- "exports/components/range.json": "sha256-HZROwoGsWUctb37zk5B2fb4fu9BNf3GezlbkjvgJ8eM=",
- "exports/components/repeater.brief.txt": "sha256-B5zRQrJdPCsEggK5dIvTWAdFuZw84f0/cQVq5AzZiYc=",
- "exports/components/repeater.json": "sha256-96FIpOJc1q8Bg9akgdH9oh9keyGyPqte+R8s6kHgBBM=",
- "exports/components/search-field.brief.txt": "sha256-kby2Ch7lO1WUQoJagR3rQK4uHu5dh5K3bZo+pLqRHuA=",
- "exports/components/search-field.json": "sha256-G1TUdNMKHodg90kQREtOOEe8Sc9XQQwY+JYFFDRsN7s=",
- "exports/components/segmented-control.brief.txt": "sha256-uYCvubXp/NnunboXXlSppUCf4Z/MNBIlGTgxim861NU=",
- "exports/components/segmented-control.json": "sha256-zQWmERfCcB8Trq7pb2IZwmk4GJ7G+XrA5OZGGZUn4v4=",
- "exports/components/select.brief.txt": "sha256-thjv5yrE0Q2D9az80C0J7GJGd26MXwsQ2Wi6lKVqzzk=",
- "exports/components/select.json": "sha256-+104x89k42mQE/HXROEO3H3J0LiouM+rmSaBTau7/v4=",
- "exports/components/settings-panel.brief.txt": "sha256-RPlLtmy+hO50amLpjN3b1Hzkc33HEXpWsnCjVndoIbI=",
- "exports/components/settings-panel.json": "sha256-MdoyYk8AhfdhaoCImjuSPyaLL1W5kq/NId7DmNRrjhM=",
- "exports/components/sidebar-nav.brief.txt": "sha256-Wc3sTAHABrceaz0PMpxDRSYBdPd+i4ulKSxKce/xRjU=",
- "exports/components/sidebar-nav.json": "sha256-Rai29nxmXghlJymY8EsG+2+Gb21H00wSR9670+6B/wo=",
- "exports/components/skeleton.brief.txt": "sha256-s4MYRIvJRUhQW6/09pzimflLDSgjzycn0MZVnxSu6+s=",
- "exports/components/skeleton.json": "sha256-e35OkgH9WCDFuP2ehaMaxlsi6lHfufOL23j1Eb8wI0w=",
- "exports/components/skip-link.brief.txt": "sha256-m81OpFW0ZjCvHxcohmj5Z4tFzMXGPLGpzxR+5XMM15U=",
- "exports/components/skip-link.json": "sha256-QW+6Ggs71uJPCPPD1wIMoCD3zKXwjN3iBrk1N++E388=",
- "exports/components/switch.brief.txt": "sha256-fJncvy75DGYnk9fLui4P8UEcpMEkMvkNz59upPinbDw=",
- "exports/components/switch.json": "sha256-srVz19F+sBbbrnK7qdTz9fOyuPamwKYU4pRJUNMGpXI=",
- "exports/components/table.brief.txt": "sha256-YevoWr5OF77kaP9e+YaO1Y6PSdx2dSIj5gvAh6b+uTM=",
- "exports/components/table.json": "sha256-00qzkQ7+Z1S4KyMdpqY7rpJwF1ThX9GPyF2seTosYNM=",
- "exports/components/tabs.brief.txt": "sha256-Ga38w12lnvz49D/GWdhswk/eD0fQjZ0isnxaGTG0BIk=",
- "exports/components/tabs.json": "sha256-azbH6ieXepaIRn9UBNXvi879wHCR+rkMD8swCB6CZIM=",
- "exports/components/terminal.brief.txt": "sha256-ygDCMg4eRVXP3ppFeDMlU5PQQoFXFVmfGqRRlZ/LLFM=",
- "exports/components/terminal.json": "sha256-F32f03n5TcghhAXLRQgUUVTocwOzkdFuc1RnN5xWy28=",
- "exports/components/text-field.brief.txt": "sha256-aT3uiXt0SSbaXPShc90n77G+nb/7rE4vteDXUp16weo=",
- "exports/components/text-field.json": "sha256-xaKWYj2Xr70t21J4K+RaHFYIJqrHERfUjkuGDynhXYI=",
- "exports/components/textarea.brief.txt": "sha256-xTBRisNUYV7dsP175TzwYF56h/I0A6XI1q2SmbyGOO4=",
- "exports/components/textarea.json": "sha256-+ESs+Xw17KqNhLGqYUv+TY/epN/X8kJNtB80OUFgArw=",
- "exports/components/time-picker.brief.txt": "sha256-MMIcKqrIx5MRDT0ZbppalDGXZ5q7bTDStRx3lFFVY5E=",
- "exports/components/time-picker.json": "sha256-m1ht0mGWX1ZZg5FWZae+jK39fgtAvEDdsZksj764liE=",
- "exports/components/timeline.brief.txt": "sha256-pBCs3o8PRPazqueGrq8P4frjsK8w7DUain4CJCf56Q0=",
- "exports/components/timeline.json": "sha256-slpRcVncm8yu9FK/bxDpYrOrk1gO7qd0iwSJ3d8xXV0=",
- "exports/components/toast.brief.txt": "sha256-i0Mxemb2egHQ+8HEO+Hn6OaqhAmesgMnd6U+hJBwjhs=",
- "exports/components/toast.json": "sha256-FQZu2cYm6Ynw2S0ItMLBr9u/rVLZMntD7Z+ht0OXBXc=",
- "exports/components/toolbar.brief.txt": "sha256-HeLw80KIEYBfF+vNUdTOAJe8CwSv66INI0ng77f3z10=",
- "exports/components/toolbar.json": "sha256-Cgqztp/7RUBC2gPBbPdH5XszuMRpyiQ4gwi9G+2gBFA=",
- "exports/components/tooltip.brief.txt": "sha256-dGTsrlNGHZPaufIreDdZd7mYMO1LXVfS2CKqDMJbrpk=",
- "exports/components/tooltip.json": "sha256-c4YtPBxsctZRCwpA1v8KZ9ih6PPBdBMUc+c7BzVXaV8=",
- "exports/components/tree.brief.txt": "sha256-IEwTHqsL94mWuqhxOmUsufAiq4YhmDuvWhGtkfknpjU=",
- "exports/components/tree.json": "sha256-L9jLSs+I4wsrYtPhwJ1qaONJ180iXvXGv7Rg7f6Smuk=",
- "exports/components/wizard.brief.txt": "sha256-WW45w5JoCSvmXC6MWI/eoLdXqJuOkchfucD0i/aqYc8=",
- "exports/components/wizard.json": "sha256-pzkWqKyyi2EQ1GXntebvKyalvYt6pusuP1aRRtiRfdw=",
+ "exports/components/admin-form.brief.txt": "sha256-U+1CRy0omLIPlnapP1Z6kXJptXj+AZ2XL75mgyucEWs=",
+ "exports/components/admin-form.json": "sha256-mGq6p24iD7FFWXPtEqN+9D62hVLhGunTPB+v373mf8M=",
+ "exports/components/alert.brief.txt": "sha256-SxyNhzpjLpaM7rHl6t64Mng9Yx/gABMt1fahSKqUzTk=",
+ "exports/components/alert.json": "sha256-nicIQjtEYAkSo61Zi/SS6LXgPajR9yfZ8vimmGuEE2Y=",
+ "exports/components/avatar.brief.txt": "sha256-Ce38BWV5IVt38UXhhZF4oqMywM67DBFVHSow08QJX/Q=",
+ "exports/components/avatar.json": "sha256-yt8JYMsqYpNdp2FC/u4AouhlZgaiJ55msYDuLsWby0g=",
+ "exports/components/badge.brief.txt": "sha256-gfceAS1KNSJA4HraQ1Jvc7mGpja09BUtrvjv4nJiVBg=",
+ "exports/components/badge.json": "sha256-TWHcpVotZtNBl/CmZp4Cwuq2dpT75MMU7uXDiILKoKw=",
+ "exports/components/breadcrumbs.brief.txt": "sha256-NiNLVo+2qA163Wq2BLcSo1yt7zulYHbWVsdLgR39a7o=",
+ "exports/components/breadcrumbs.json": "sha256-uJYyMxAhvzihHGDWMYV6GDdYZmPEIGrxPLYnal9FEaY=",
+ "exports/components/button-group.brief.txt": "sha256-cgtTXRVaQVcQo+zIk/m6HReB/ckX5i535T9G2KyQFlo=",
+ "exports/components/button-group.json": "sha256-U3tIjUIxzB1uUeXg82yXutLb7SkvBr1ASA5HjY7KRkk=",
+ "exports/components/button.brief.txt": "sha256-Kox7W2toLFZuKqWiQC31B+4FiIrzBJjmVMeIHBSq2zo=",
+ "exports/components/button.json": "sha256-PWCXNzWleZkVQtwsKjeiZECQDmnhH/Q0Xei1e3o2yd8=",
+ "exports/components/card.brief.txt": "sha256-K7Izq0HUR4ChSGR0XxwLYpLwanwyQXvRuQmk0TBi9L4=",
+ "exports/components/card.json": "sha256-eYtNxQ2hS4e/jcUR87VqLSDFMGRk6hHZ/o4NNBhbR2g=",
+ "exports/components/chart.brief.txt": "sha256-WSLyDmzoggkC4+dJBp8ShkgZmfSyuC6RZjEdR1KaDPo=",
+ "exports/components/chart.json": "sha256-o0B2irz8ssJzs0AjwcU5ttEPhwi8elwGuOXB08TX/3c=",
+ "exports/components/checkbox.brief.txt": "sha256-bjwFZ3HOWuCHHCKjcYWah6LfXPClg6JEQ3pvo6BWPJo=",
+ "exports/components/checkbox.json": "sha256-oa8Jwj73IRfL1XjYWMblXglksU/uF4Lkvmf7YdSD3XU=",
+ "exports/components/chip.brief.txt": "sha256-2zOPdm63FCuE4+rh/E/vJF1bobvVeOeplFiUYaKDTLU=",
+ "exports/components/chip.json": "sha256-zaFTr7qluvvJSISqCmYbCi2Gj1g8jFMIJzGk3mExa5g=",
+ "exports/components/code-editor.brief.txt": "sha256-DnqC0YEy0Do7wsT8V3inx7by5c0wYG183NEJk/1l9Cg=",
+ "exports/components/code-editor.json": "sha256-fLZXQqZLfHeQOm2vbiNbcnhBoph3nHrpJ63jp2EXwrU=",
+ "exports/components/combobox.brief.txt": "sha256-9VrviIBlTsuEaDIXSTl1A6Y7ddiwO4MQ3xch8NA2fzA=",
+ "exports/components/combobox.json": "sha256-5e0Xfv+7jH5PN8DaKfKgy4Vny5T54Pc7XZQ9yCatoVg=",
+ "exports/components/command-palette.brief.txt": "sha256-QwAVxvZIFsUMlE5lPJKlzb8VaGQlP5KaplYVCM8kbW4=",
+ "exports/components/command-palette.json": "sha256-DJjjMMleSDQeROdTMb1jNOW/qspz4VDk2TGKWOVlyP4=",
+ "exports/components/compact-dashboard.brief.txt": "sha256-6+RML+v6NTAPWrFPO5OPm/+WRBnjQHUGvFv8FbdEFkc=",
+ "exports/components/compact-dashboard.json": "sha256-U7fvgUZQ+yPgySeOTGDwhTyOn69n/w6ynT6b2LX2LuM=",
+ "exports/components/data-table.brief.txt": "sha256-OuEnmDuP6oL92RE/ZZYELmMscv8PLu2e2JjMakgyoUs=",
+ "exports/components/data-table.json": "sha256-m7NpvgvnJjjyRZX9rHAWYwUgfjf7N8+bWF0vckkNXnI=",
+ "exports/components/date-picker.brief.txt": "sha256-SAz9g3PzSRsxB96iJ4Bv0ui+MnI4Vum2l3WBiJbKZlw=",
+ "exports/components/date-picker.json": "sha256-rNwHUE7pxq28p1aQ+icNn/y9/44ctJVpS66rTU2JsRI=",
+ "exports/components/description-list.brief.txt": "sha256-myEozp2eBO3pha1gLnPQjQaQzNegaLzZMU2Z7jeRCAo=",
+ "exports/components/description-list.json": "sha256-VWbbGvfkBSuAwbcYsqBAQBrVkn4Vkq2P3WwZtxjGBkk=",
+ "exports/components/diagnostics.brief.txt": "sha256-hgxSoOr77kydDc++cFLfhvshW2ItB2QxFjtxJxzjZ6o=",
+ "exports/components/diagnostics.json": "sha256-ermheSxXGAY77/ObrEPf51qR7IMLYql28nDuA6RqPBY=",
+ "exports/components/dialog.brief.txt": "sha256-5axR88X5CYv2NPqE6yg52mWKnxo1sl3INqWcibXqNos=",
+ "exports/components/dialog.json": "sha256-ctY94Q5uazqdIoSLJJ/Y3n1+VWT/tLeSp8CoczMEieg=",
+ "exports/components/diff-view.brief.txt": "sha256-8sbOp7vOLGUU4Dv+9Qn+bo3oqzDp3gl9R9BZpCIKynI=",
+ "exports/components/diff-view.json": "sha256-o+MurUlK+F9sfFdM69dUFiavUZ9x71gTuyLER6SCoo4=",
+ "exports/components/disclosure.brief.txt": "sha256-oTd1DENeX0y2QERn6As8QNDTdL8eCLQZjm/vcaL/VIw=",
+ "exports/components/disclosure.json": "sha256-GbE+WEvkQL/h1CRdL5mmDC8cM4DqoBP2L21S4XfrZSA=",
+ "exports/components/drawer.brief.txt": "sha256-6qtLgOV5AZka9gI+xWabl4t8+lCdhjTO5diEo316pqQ=",
+ "exports/components/drawer.json": "sha256-s6DyB2NRFzujnmyZCBjTq+0WkyR8VfunwRnu17Hjx14=",
+ "exports/components/editor-search.brief.txt": "sha256-RKjSpWzfsuvMX6gtt/cj6Zw6L3fx5ufHzxPv69YcbbU=",
+ "exports/components/editor-search.json": "sha256-6xtLN2oxQ/kz/gHUtHEh9Xz1j1jQy11SRCk1USo0ZU8=",
+ "exports/components/empty-state.brief.txt": "sha256-SedGUBqhDwrd2XkHr/UNyC7X7XdGcwLRf+421KBIkbE=",
+ "exports/components/empty-state.json": "sha256-N8gAhJJR19VpYZkqV6OFu0ZHq3e1bVhOBMDptkiOEe8=",
+ "exports/components/error-state.brief.txt": "sha256-GGaIWLLe3rcGIVyQuR1+Y6vgHtN2AkWjLn3uFLcp+g8=",
+ "exports/components/error-state.json": "sha256-te22yGkEsatac2fmGv3F4fd9zjnIbatPtgOfTu+PFmI=",
+ "exports/components/field.brief.txt": "sha256-NROwC1/TbS7hdP3QIDZt+nrN0G72N47aFknHhCBszKE=",
+ "exports/components/field.json": "sha256-FCJryFVAlhiDzCuEjsWKo4g2pm9Jb0MXxM5p91dlKpU=",
+ "exports/components/fieldset.brief.txt": "sha256-nT1qDQlvtYgFKqarHUMo3elh4EiZ8zJsXJPHcX+0WhA=",
+ "exports/components/fieldset.json": "sha256-yFWoJULeHV80sAsnIwKq1R0veqdKyxB/0/v9nImZB4E=",
+ "exports/components/file-browser.brief.txt": "sha256-/W7GjxQKBRkAq4NuJD3hK0T/e0i2mV4uZxiOTrymBtU=",
+ "exports/components/file-browser.json": "sha256-2Tlk/zwzWuxEZbflWymfBSpr353uxtslC7eo/ZGmg2w=",
+ "exports/components/file-input.brief.txt": "sha256-cbwULlxfqr9TNYTcQZan3DHYb9BYb7pPZKLFveyiEH0=",
+ "exports/components/file-input.json": "sha256-CvE3woclpSp8hkqgcupgZy3/s4hqXHMMUhlk6Qs1rqQ=",
+ "exports/components/filterable-table.brief.txt": "sha256-BTN+jNfH/G6THzhsPKrAu7M+w+Ho4uO4pp5Jh5zhahs=",
+ "exports/components/filterable-table.json": "sha256-6c29dQ0xcVDqYXMMgohP0skm2TUo/JqgwuuSvNZ6xDI=",
+ "exports/components/form-builder.brief.txt": "sha256-ZmGBntE4uEqVyIJSsdHQcsad5sppHMlZwXzr+3ex2aM=",
+ "exports/components/form-builder.json": "sha256-lmOSBBuKivZRdzDLrurF+cg1CHHJrDq41mHudRyJ5r4=",
+ "exports/components/i3-window-frame.brief.txt": "sha256-Z2Wxjnrws+FvbD5htyrbnR4AVD949UG++nNE8OowKeQ=",
+ "exports/components/i3-window-frame.json": "sha256-KBYx57+sCd0prtqY0xRYtO000tTtufVMCL56B5XOGzU=",
+ "exports/components/icon-button.brief.txt": "sha256-7wWAx5V0M7be8vVN+P00IcarktpYiJyJw+CSASo1S3c=",
+ "exports/components/icon-button.json": "sha256-givivxuq5mcmrUQ8NLSLgvqFqRgWHXGM2E317Oi9/v4=",
+ "exports/components/kbd.brief.txt": "sha256-R7OUQJm/pLh8PkqkKVFgaTdmZHvuD51GSyTaRgeTc0Y=",
+ "exports/components/kbd.json": "sha256-E1Ojgg9J0S7ro3XLGcwDiiNihA1O3QFSXf1IUpiuVeY=",
+ "exports/components/link.brief.txt": "sha256-/92S0vRfQY00C8ag0eGk+8PsBeWGzTxUHiKzAX+IakQ=",
+ "exports/components/link.json": "sha256-5Q2uwiU0g69WvdGo1U3Jn5jaay+FY3XPumTSnwjNhek=",
+ "exports/components/list.brief.txt": "sha256-3bsJxU0IYY4fdBA2VlfUGfVwBcwwNg4PovJ8o+z/j/0=",
+ "exports/components/list.json": "sha256-+Fzh1CDjpJwRyAQ+Bvizd0hoR4Jm3sm3nghAN93PrjU=",
+ "exports/components/loading-indicator.brief.txt": "sha256-xB+PGS2gy73d2HCWyJHWgRV7eHFfrUIrCeha89+rk5U=",
+ "exports/components/loading-indicator.json": "sha256-KkPi52i9uFoP2WKqfmGlMwygYyApN/8vAl5LH1pwpes=",
+ "exports/components/menu.brief.txt": "sha256-AXDqFQp50inPmTafSUeL8obN2ClTdQI0d2zS1winRag=",
+ "exports/components/menu.json": "sha256-Ufa/l3VJU1CD+SpCO8j5Pf78ScxPG+QD3rK0JUdf7C0=",
+ "exports/components/multiselect.brief.txt": "sha256-3yVauWVdwlbakyaQT2/zI+9TG9w1xYO4GGXt9JCh8tI=",
+ "exports/components/multiselect.json": "sha256-J2VzV0FsakvuLoX+8yNgp6euyFjND2GMnWY1FnkQiWw=",
+ "exports/components/number-field.brief.txt": "sha256-xARibRE1bM+z9fGBcFkA4asNzQ3YZD+5IwywIjjDrxA=",
+ "exports/components/number-field.json": "sha256-Ao9MqhMy1nRxL9gle1AoNplDUDuqX040LK3CSGs2bIQ=",
+ "exports/components/pagination.brief.txt": "sha256-P82JtfV9/gwy8n1qHAIgbhKBCzS3Lhn50+Xtn2L1T2s=",
+ "exports/components/pagination.json": "sha256-cTsnLPlUFnzOOlZTkpUz2PmY8J2m2z5sxk/5ZL9Yhuo=",
+ "exports/components/popover.brief.txt": "sha256-Y8A+u1P32C4vJiHGOl7cT8OHAjdipGYjFKK13eUh0iU=",
+ "exports/components/popover.json": "sha256-HkJ150g5zUkb/iQqN0uuN/kL4uliwQhAIsBhjvG6W2E=",
+ "exports/components/progress.brief.txt": "sha256-k4+bZTd4KCePQJCZb3m3FCkn8YuJOI5houmgn5ZKH7o=",
+ "exports/components/progress.json": "sha256-nrKtOsV9BuuUI6e2zHo2l9UMeSZoLIimiJHm579Hdns=",
+ "exports/components/radio-group.brief.txt": "sha256-uw9+WURBGK+WtXf4sZAvVXOXlpbp/x2lhez9oaxIUqs=",
+ "exports/components/radio-group.json": "sha256-IwlxKnFzOGjJ9192Y9K+ezX+aAtrMABa6ePssB7bwK0=",
+ "exports/components/range.brief.txt": "sha256-idpIK2TLJnc+jDCFS366OIgH/BzvTviDBDYE/4BvvSI=",
+ "exports/components/range.json": "sha256-fhEijJB1NOwa1mcg5IypweIDNwG+w4ZE0RGyQlpDUsE=",
+ "exports/components/repeater.brief.txt": "sha256-UdOn/yr2MRzveeYncMRdM/ae+mbIsU7zIMhAvu6ov5w=",
+ "exports/components/repeater.json": "sha256-UEo//llQdVJDIVlxNlJVpKXs6/Fty4mRsCf9+iV6xes=",
+ "exports/components/search-field.brief.txt": "sha256-YQMPJakN6qdyoAdZVAtTxAhoetlr9MuZgOUHPBXkWo4=",
+ "exports/components/search-field.json": "sha256-zIxtGgkIlR7MWmTQlbbR/ErYbtwUZ+dmka4lBqYl5bY=",
+ "exports/components/segmented-control.brief.txt": "sha256-o4ZlSc1L7zjzSsI7TvXWlgU8LPlRd3YT43Mx+iorb2c=",
+ "exports/components/segmented-control.json": "sha256-pNUSFuXSR6u6Rp3yz4DDQ+mntSqzT1oJv6LJCa49Qxw=",
+ "exports/components/select.brief.txt": "sha256-3s4ta2UQng0naZ7abFFGOPf7JUPiCIfnMJi80SCln1c=",
+ "exports/components/select.json": "sha256-vWnr6N316JDA9ft7J+pW8auONnRwNEpcfUDVkM5RT4A=",
+ "exports/components/settings-panel.brief.txt": "sha256-Ux/FWtBeBTcFjNTR0wXSKdGD5TYkkhsh4CymVfn3eA4=",
+ "exports/components/settings-panel.json": "sha256-re3uQTt8HVPIFIwQHeQyXM8ty5YSXhiJraDK2QvpGOc=",
+ "exports/components/sidebar-nav.brief.txt": "sha256-vrd7okn+rziqdR8NsLBw1NeSVxekUxQRcU+0iy10YvI=",
+ "exports/components/sidebar-nav.json": "sha256-5tTrxJDoDkAgoWI4w2qHfpE2gGHIVRP9Sw3vojUBk7A=",
+ "exports/components/skeleton.brief.txt": "sha256-ccAq2iBD8bXjNHhaOFQQh2BDzQqM0ml+nlTiqdadSnc=",
+ "exports/components/skeleton.json": "sha256-MLEBpVvBSXPBtmg1x3wMXPhcPssg+fwNKvz/b+AbCAg=",
+ "exports/components/skip-link.brief.txt": "sha256-jr107U5l7n9VBt5nd4tDG4bwDSNG64LuBRaoOMF9gxw=",
+ "exports/components/skip-link.json": "sha256-wbvhfKuGYnQzRyC6oj8z2l+p2283mtcgz4cb1e6NjAM=",
+ "exports/components/switch.brief.txt": "sha256-lW9a5QxBzcOelWbpkFy3rdxnXS9utJqxahFN/nd80B8=",
+ "exports/components/switch.json": "sha256-EcZ0LS9qFQ5RbF0gVEoggNi0T0ljFNQOimLBFhBE4ic=",
+ "exports/components/table.brief.txt": "sha256-73s7gQtafDJJzrxXQyIDZT4+b3NCk6olbNbhVN/X4lc=",
+ "exports/components/table.json": "sha256-fmpDW3/zcv46PG5X3HtxDsdie6Zuiwl2eVpesjuC1HE=",
+ "exports/components/tabs.brief.txt": "sha256-ZeWHSHz5mPq0riLQMSPSDUgPVB4eRUW9JPHpdU8CXGY=",
+ "exports/components/tabs.json": "sha256-be5b2uoYQffej+HICEfALLc4lCvb7343bCw0VJlGRTQ=",
+ "exports/components/terminal.brief.txt": "sha256-wSe8Cn+JO8PbrNzjDR7Jh5pGBQMY77vQhHQZuIL0UWI=",
+ "exports/components/terminal.json": "sha256-TDaHzyst/MStEsQh6OmyKErNGVsYKLiReuj1qhHH1mk=",
+ "exports/components/text-field.brief.txt": "sha256-Sy149CVKoInpaUKLcWgwdws3v9gyU7RkDFazUKzv0VQ=",
+ "exports/components/text-field.json": "sha256-ZK7PcxjPvBgXx+hTP97rCBTSPSEjO/1nR6MRy918hSc=",
+ "exports/components/textarea.brief.txt": "sha256-BXcMf1CA8eFxewSNBzNCa1pnEW0Ca6z570TWncnqeAQ=",
+ "exports/components/textarea.json": "sha256-4x/x6eXXo2aao/Dx5gSPrlKcXj6ztblnltTmrhpzm4g=",
+ "exports/components/time-picker.brief.txt": "sha256-ZVJ9hW9h9JMwdevpsaXC0g7KbZbTFeGQ/wq52N07rxE=",
+ "exports/components/time-picker.json": "sha256-J4gzGRbl2pt5Dax8giwl/Nzeqy/MW2eGkxQcIKEAfHE=",
+ "exports/components/timeline.brief.txt": "sha256-4yWZjGBh+6vYTkdgGbrcZx72n+JXYUkYh3Y0B7vhsfs=",
+ "exports/components/timeline.json": "sha256-1tik8bOHu+sO2CI1hzgfDzA554N7789dStmbWWXXFr4=",
+ "exports/components/toast.brief.txt": "sha256-3KIHTscfitThNjQ/N+VU5aB/NMXFN1l55OS+tXdN6r8=",
+ "exports/components/toast.json": "sha256-h+noqWcEh7HxybkZ7geHfw+BAmnuxwc1JqjgfjBWHo4=",
+ "exports/components/toolbar.brief.txt": "sha256-jVqcXgRMJ2vbu7cRBYSt7vY4TcBCcV4NXVSHwF/cg/Q=",
+ "exports/components/toolbar.json": "sha256-sB0fTIk7fgNXFjshKAKJQJd8W8kL7LmEcvXPIPUemiE=",
+ "exports/components/tooltip.brief.txt": "sha256-Ok367AJNddoW5niXPD5UZjXSZtTgZZn+mw7Nq1uLnR0=",
+ "exports/components/tooltip.json": "sha256-zHJOkbFWm8kVW4pUZNvO+RWzZO6o4abhNChnoK/8ePU=",
+ "exports/components/tree.brief.txt": "sha256-Sik0ENvvcq4BFS/mKmBNRY6Ao96cd+xrWiKFq+YCgKc=",
+ "exports/components/tree.json": "sha256-vx+JXco/UlIBtpKY7l6JlQn1MY45aQ56j+l0Ur6vRC8=",
+ "exports/components/wizard.brief.txt": "sha256-6zfSCrFjYR0+GURxyxQW3173vA9J4tpactpjgYOLhCU=",
+ "exports/components/wizard.json": "sha256-QzvuXUR2D5Xx74KpgTmlHsaq2cDmQEJ/5nh+ZDbDG1U=",
"exports/contrast.json": "sha256-bgDQoGZ5LImALKWRD8T3v+2LfjRF0/4h5a889E9Efms=",
"exports/contrast.md": "sha256-BuswGRwpq/tmJ01xRSrfzRoFq/GBXlEuiHS+HCKtyNE=",
"exports/coverage.json": "sha256-ZR7OWZVWxuPKUohFNtcGN++eR000c0wJLbEeymEjuto=",
"exports/figma/importer.mjs": "sha256-VXfdSuZ1eYqKIIadm4JI73kT9Or0PTracOyncWAsbnI=",
- "exports/forms/identity.json": "sha256-n/R6B4LoUwv4BP+l0gQtnT628xZ7Lles+aAopbggMO0=",
+ "exports/forms/identity.json": "sha256-6WI7KekA4PvKTFcioNKDY3P0ICSj8PEDEoTs1HqveFI=",
"exports/forms/templates.json": "sha256-k2e6tcvD0k6hUCU+l+1itDIeEGjAzxvq8bCmewl8XRg=",
"exports/llms.txt": "sha256-Bzchjr9xc74FBFmz0hwbl9kjJBWCV/L8ZL/q+NvFOm8=",
- "exports/patterns/validation-recovery.json": "sha256-cHCKbumgqiAPPwhL47zBWVncJtLYZAAGwZhf3Llxrj8=",
- "exports/port-capabilities.json": "sha256-3NonQaSmytqqsMAVNYb53m45OGqD6hiCiN07GaWRJGo=",
+ "exports/patterns/validation-recovery.json": "sha256-lEhLGkNYFlXf0uPnDL1o8ByPx87iuFosyhgUqEHPZag=",
+ "exports/port-capabilities.json": "sha256-DiXhXfk0jMz/LEwoZXv/Kc8HP19FN/ax16RFnbQFMf8=",
"exports/recipes/button/LICENSE.md": "sha256-vVf/G6WKJRqbyGZCppbAxMh+UAJdSzaPt5xWUujehyU=",
- "exports/recipes/button/README.md": "sha256-PFptO8Sfyo2yzQoMnyf7+qotgB+Uols1JNNcZdj+9bg=",
+ "exports/recipes/button/README.md": "sha256-80dVa3TLTwhDpEaXVdkXftTNdzUISSIfCLjoSp/v7eU=",
"exports/recipes/button/component.css": "sha256-fO1HSQ+wy0Zku8pqVotCypnOH+iDz8SAX9GxMspxA8U=",
"exports/recipes/button/example.html": "sha256-6Jd+ynSweVG+DO3EUHUbEUNSEbj5+6+iBzqXU4YLtIs=",
"exports/recipes/button/foundation.css": "sha256-jm66ZdmdAhTyMVQIMKhzVZZm/NhB5ZbLq8g3UASzy98=",
- "exports/recipes/button/manifest.json": "sha256-3luqMDAS/1LEFotJqqkbVuuOdA/0svj5WXgA3Gd3gH0=",
+ "exports/recipes/button/manifest.json": "sha256-F53gXYmWmlcFnCqjGbt0tOxf9Y8uKkpZB8C/R1oVcSI=",
"exports/recipes/button/markup.html": "sha256-be2Beb08aKEqIKaDsxTq8IJdSdfNPJyWS2M5aav7R7k=",
"exports/recipes/button/template.html": "sha256-FfylFZ+qzMUFxQKnIdqJiYmC8p4F+cNxK8BJSTo8XU8=",
"exports/recipes/button/tokens.css": "sha256-AJa/NV2e+fHrwjzGqedaXaFmM54azgP/b9wytMJiVCs=",
"exports/recipes/button/two-instances.html": "sha256-HrqWaokDwmbQXfgRiFeyWToB617qs6c+t/UQLJs0Blk=",
"exports/recipes/dialog/LICENSE.md": "sha256-vVf/G6WKJRqbyGZCppbAxMh+UAJdSzaPt5xWUujehyU=",
- "exports/recipes/dialog/README.md": "sha256-TprCvG8noK53sTTwJVCHD0V1zx6BUW+HP7reUSdyhVk=",
+ "exports/recipes/dialog/README.md": "sha256-1opuFssLS9hrVsviW1sRoOXq/l9P7pCwx5o/mD/lnpA=",
"exports/recipes/dialog/component.css": "sha256-4rB4zaZ85zCcwBibahNlsmkeHocfBbSHfwT9xY/jwE8=",
"exports/recipes/dialog/example.html": "sha256-NfEbyJuZuMeGI56eQN6PW+EXPWfv8OjpngN0eMztvPQ=",
"exports/recipes/dialog/foundation.css": "sha256-jm66ZdmdAhTyMVQIMKhzVZZm/NhB5ZbLq8g3UASzy98=",
- "exports/recipes/dialog/manifest.json": "sha256-HGobBl2jdTaW36simdVaI8eA4OER0LhG8r9gusVpXjI=",
+ "exports/recipes/dialog/manifest.json": "sha256-oOFNDVTJqOuDPDd+167iDlcT1HQJSKVYJ19JqdgMg/Q=",
"exports/recipes/dialog/markup.html": "sha256-3KkpFAZ9Id+n/Pmpuu4Os4Wea88fXD39tHcFoCINEDQ=",
"exports/recipes/dialog/template.html": "sha256-ekYfQWlHu6z/dh7Wi1W3GZayMjEjxB5ru5nU7CKIqMg=",
"exports/recipes/dialog/tokens.css": "sha256-8v2razLbiqxJ36LPLf8rHQG219Ns6nFnyRGKJqh/evs=",
"exports/recipes/dialog/two-instances.html": "sha256-g3casyVMkw4tWfmMAkD3Aq9kp+I7vebgRqjir2H/52c=",
- "exports/recipes/index.json": "sha256-Bjyg4+xyj++k2UJAK2zNCqZh7gsiFRE9OTPBLw25VWA=",
+ "exports/recipes/index.json": "sha256-nTRZ7qzZZ1NA9wtiPv3iFYYmUoT4JDLNv3dBRrtSD0s=",
"exports/recipes/text-field/LICENSE.md": "sha256-vVf/G6WKJRqbyGZCppbAxMh+UAJdSzaPt5xWUujehyU=",
- "exports/recipes/text-field/README.md": "sha256-HpwPQAB3ombWhQi6qdKYU8fgIeJAxlbGFP8ovZEdVnw=",
- "exports/recipes/text-field/component.css": "sha256-Oz8HGS0K4usbEkFFSKi93G9yUBnUass/Z8uQbOJZXNc=",
- "exports/recipes/text-field/example.html": "sha256-bgWf7wJ491bEm4esZkZzyuL263quAotSfoygX24ZkFU=",
+ "exports/recipes/text-field/README.md": "sha256-Y76lmDknYtjOnDPP/kAcDy0bOLeF7/0c6wJ5EWE1OhI=",
+ "exports/recipes/text-field/component.css": "sha256-HLK6PSsbThQsRH4Y6wgRJXw4vWcrki2Vs0MZO6ANnGw=",
+ "exports/recipes/text-field/example.html": "sha256-t5lfDU+uh3gq1zaNtyPjyo1bRZ1kjRL/Niomvp9iguk=",
"exports/recipes/text-field/foundation.css": "sha256-jm66ZdmdAhTyMVQIMKhzVZZm/NhB5ZbLq8g3UASzy98=",
- "exports/recipes/text-field/manifest.json": "sha256-vgWhdku9jsH/2KoHM1IevuPZ5eN1BsE46QaN1Aj/C7g=",
+ "exports/recipes/text-field/manifest.json": "sha256-7U10sKwBOIQvZtIvDp/jWg224BkZ2tqppgto6jt3eCU=",
"exports/recipes/text-field/markup.html": "sha256-wARfGY6V60eMUhV8JNGMhY+EnikQvcPlSqkD5WPOULo=",
"exports/recipes/text-field/template.html": "sha256-IlSlLS7sPC3MLqIdxMRQUP4sFnn/58lwM3AFALtdY3c=",
- "exports/recipes/text-field/tokens.css": "sha256-Z7C9Hx+UzJAtRTBN08cB9BRDeTuCjEQr3xZyD2i0vgU=",
- "exports/recipes/text-field/two-instances.html": "sha256-JIl9HQHQPYXg+r8lkFfC0x50KKiLyNWAwYm9mdQXGGw=",
- "exports/task-inputs.json": "sha256-5lxC7PkVN5GUOh15VftLvs6RxdWdvGQgxB0s5dCbjJk=",
- "exports/theme.compact.md": "sha256-wIvg24me6vAnXYzWXdBmoJsTKtrBSm7GS9yCcb8wgxc=",
- "exports/theme.full.md": "sha256-SPX7zrH+lfKfCoCewB/nwxdDzWl0g36DSHf3B/GfBBE=",
- "exports/token-usage.json": "sha256-v3sZK98nwkEq+AJKV5x7t6Hc3Ic2Qdqrartdf0gub4Y=",
- "exports/tokens.css": "sha256-ePraUzvnHrCsJIZ1frkOqaHPFHo7iT+aE6wrL4ian68=",
- "exports/tokens.resolved.json": "sha256-RSRMNUXS52R1kup7ka5S96aTGgpzVa7aYPwKQ6W78mU="
+ "exports/recipes/text-field/tokens.css": "sha256-zjVcq7LwtSQfrFMkCNQ3qgqOctaVyaz3bTbWiXOvDVw=",
+ "exports/recipes/text-field/two-instances.html": "sha256-IHBsJlaIcd5hGRPnWVXegcrdrvG287OvtxoWBW+Yua4=",
+ "exports/task-inputs.json": "sha256-EePjcPZ9EsFyMRXJW7z8F67uMsTIIqp7f9N+CPh0Qlg=",
+ "exports/theme.compact.md": "sha256-JSKpZk12od+qtrVK7NbrVMY/zYwpG41Wjg5CTqROl9A=",
+ "exports/theme.full.md": "sha256-4+hWVLZNFO6kDwfKpt21CNBynAahQlsfMMEca3RkKos=",
+ "exports/token-usage.json": "sha256-YfOuc5ZsVeTby4y2ZnmvIDA5tNLSiN2tCE2noUGu+u4=",
+ "exports/tokens.css": "sha256-qBBLBVizOFU4qVWqZyakMNWtBHoHBZTVzwPLtbhP5Oo=",
+ "exports/tokens.resolved.json": "sha256-bXayCdQMks1SP9DAswzrBp0H09xuxsAmb1JbTSYceDg="
}
}
diff --git a/exports/forms/identity.json b/exports/forms/identity.json
index 039d7d20f..eec09053a 100644
--- a/exports/forms/identity.json
+++ b/exports/forms/identity.json
@@ -2,5 +2,5 @@
"name": "j3w1-theme",
"version": "4.0.0",
"profile": "default",
- "sourceDigest": "sha256-9w2X6Cih03PDyOMVu4XmMrmPqHs2iwGGaq5TvafCIUw="
+ "sourceDigest": "sha256-mKTBzdPJfZvkgtYFTGC3tgyX+JltZDoEDZW81bCBleo="
}
diff --git a/exports/patterns/validation-recovery.json b/exports/patterns/validation-recovery.json
index a5c19d9b9..ded5188be 100644
--- a/exports/patterns/validation-recovery.json
+++ b/exports/patterns/validation-recovery.json
@@ -152,17 +152,17 @@
"name": "j3w1-theme",
"version": "4.0.0",
"profile": "default",
- "sourceDigest": "sha256-9w2X6Cih03PDyOMVu4XmMrmPqHs2iwGGaq5TvafCIUw="
+ "sourceDigest": "sha256-mKTBzdPJfZvkgtYFTGC3tgyX+JltZDoEDZW81bCBleo="
},
"componentDigests": {
- "admin-form": "sha256-2TlXwKoXO6zcy7Tx++Cm2rh/hlfQSzLAgg3iHIMc+A8=",
- "alert": "sha256-N1aX81ExUlcbLny7o1Ps8qNiXl6FYwt1lU+/g3RZXRk=",
- "button": "sha256-fpx3utLRj/ejAQlUy5k14oQwbTIClAI9Oi8Ogyd+d+A=",
- "checkbox": "sha256-eF4Hc9ptoJR6MAHCFo+XvObHeyrh3JBIEF3jPCA/Yqs=",
- "radio-group": "sha256-XKfMy84MCW/4OhLmJs9UpY5QmTfzmmfVWep27KMO9Us=",
- "select": "sha256-+104x89k42mQE/HXROEO3H3J0LiouM+rmSaBTau7/v4=",
- "table": "sha256-00qzkQ7+Z1S4KyMdpqY7rpJwF1ThX9GPyF2seTosYNM=",
- "text-field": "sha256-xaKWYj2Xr70t21J4K+RaHFYIJqrHERfUjkuGDynhXYI=",
- "textarea": "sha256-+ESs+Xw17KqNhLGqYUv+TY/epN/X8kJNtB80OUFgArw="
+ "admin-form": "sha256-mGq6p24iD7FFWXPtEqN+9D62hVLhGunTPB+v373mf8M=",
+ "alert": "sha256-nicIQjtEYAkSo61Zi/SS6LXgPajR9yfZ8vimmGuEE2Y=",
+ "button": "sha256-PWCXNzWleZkVQtwsKjeiZECQDmnhH/Q0Xei1e3o2yd8=",
+ "checkbox": "sha256-oa8Jwj73IRfL1XjYWMblXglksU/uF4Lkvmf7YdSD3XU=",
+ "radio-group": "sha256-IwlxKnFzOGjJ9192Y9K+ezX+aAtrMABa6ePssB7bwK0=",
+ "select": "sha256-vWnr6N316JDA9ft7J+pW8auONnRwNEpcfUDVkM5RT4A=",
+ "table": "sha256-fmpDW3/zcv46PG5X3HtxDsdie6Zuiwl2eVpesjuC1HE=",
+ "text-field": "sha256-ZK7PcxjPvBgXx+hTP97rCBTSPSEjO/1nR6MRy918hSc=",
+ "textarea": "sha256-4x/x6eXXo2aao/Dx5gSPrlKcXj6ztblnltTmrhpzm4g="
}
}
diff --git a/exports/port-capabilities.json b/exports/port-capabilities.json
index 5940adb9f..44d82a55d 100644
--- a/exports/port-capabilities.json
+++ b/exports/port-capabilities.json
@@ -25,7 +25,7 @@
"status": "not verified",
"reason": "No recorded real-import protocol bound to this subject."
},
- "subjectDigest": "sha256-F+2vlVTjEVjjuUUBOfvKrgrRWYYXJoa78tPiT4aVah8=",
+ "subjectDigest": "sha256-Lmlk2SGRlzh55Y9jjM/i15m4ACL4WosTiyD0w1R6b9A=",
"evidencePath": null,
"surfaces": {
"appearance-settings": {
@@ -378,6 +378,7 @@
{"role":"focus.offset-invalid","nativeKeys":[],"value":"-4px","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"unsupported","surface":"geometry","reason":"ChatGPT keeps its own geometry; this j3w1 value cannot be set.","source":"ports/chatgpt/mapping.json","spec":"spec/portability.md"},
{"role":"focus.ring","nativeKeys":[],"value":"1px dashed #e53935","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"unsupported","surface":"geometry","reason":"ChatGPT keeps its own geometry; this j3w1 value cannot be set.","source":"ports/chatgpt/mapping.json","spec":"spec/portability.md"},
{"role":"focus.ring-container","nativeKeys":[],"value":"2px solid #ffa2a7","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"unsupported","surface":"geometry","reason":"ChatGPT keeps its own geometry; this j3w1 value cannot be set.","source":"ports/chatgpt/mapping.json","spec":"spec/portability.md"},
+ {"role":"focus.ring-contrast","nativeKeys":[],"value":"1px dashed #ffa2a7","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"unsupported","surface":"geometry","reason":"ChatGPT keeps its own geometry; this j3w1 value cannot be set.","source":"ports/chatgpt/mapping.json","spec":"spec/portability.md"},
{"role":"font.family.mono","nativeKeys":[],"value":"\"SauceCodePro NFM\", \"Source Code Pro\", \"Cascadia Mono\", \"Consolas\", \"Liberation Mono\", \"DejaVu Sans Mono\", monospace","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"unsupported","surface":"typography","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":"ports/chatgpt/mapping.json","spec":"spec/portability.md"},
{"role":"font.letter-spacing.terminal","nativeKeys":[],"value":"-0.5px","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"unsupported","surface":"typography","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":"ports/chatgpt/mapping.json","spec":"spec/portability.md"},
{"role":"font.line-height.caption","nativeKeys":[],"value":"16px","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"unsupported","surface":"typography","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":"ports/chatgpt/mapping.json","spec":"spec/portability.md"},
@@ -461,7 +462,7 @@
"status": "not verified",
"reason": "No recorded real-import protocol bound to this subject."
},
- "subjectDigest": "sha256-mZSTsPqcrEueILfJGlCxv474z8ftEiq1075cE4sSMzY=",
+ "subjectDigest": "sha256-muR01xVfnxur6lf9qRsw4Um90+IPvnenLqu2//uZodY=",
"evidencePath": null,
"surfaces": {
"theme-roles": {
@@ -790,6 +791,7 @@
{"role":"focus.offset-invalid","nativeKeys":[],"value":"-4px","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"out-of-scope","surface":"outside-claude","reason":"Not a colour; a Claude Code theme carries colours only.","source":"ports/claude-code/mapping.json","spec":"spec/portability.md"},
{"role":"focus.ring","nativeKeys":[],"value":"1px dashed #e53935","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"out-of-scope","surface":"outside-claude","reason":"Not a colour; a Claude Code theme carries colours only.","source":"ports/claude-code/mapping.json","spec":"spec/portability.md"},
{"role":"focus.ring-container","nativeKeys":[],"value":"2px solid #ffa2a7","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"out-of-scope","surface":"outside-claude","reason":"Not a colour; a Claude Code theme carries colours only.","source":"ports/claude-code/mapping.json","spec":"spec/portability.md"},
+ {"role":"focus.ring-contrast","nativeKeys":[],"value":"1px dashed #ffa2a7","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"out-of-scope","surface":"outside-claude","reason":"Not a colour; a Claude Code theme carries colours only.","source":"ports/claude-code/mapping.json","spec":"spec/portability.md"},
{"role":"font.family.mono","nativeKeys":[],"value":"\"SauceCodePro NFM\", \"Source Code Pro\", \"Cascadia Mono\", \"Consolas\", \"Liberation Mono\", \"DejaVu Sans Mono\", monospace","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"out-of-scope","surface":"outside-claude","reason":"Not a colour; a Claude Code theme carries colours only.","source":"ports/claude-code/mapping.json","spec":"spec/portability.md"},
{"role":"font.letter-spacing.terminal","nativeKeys":[],"value":"-0.5px","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"out-of-scope","surface":"outside-claude","reason":"Not a colour; a Claude Code theme carries colours only.","source":"ports/claude-code/mapping.json","spec":"spec/portability.md"},
{"role":"font.line-height.caption","nativeKeys":[],"value":"16px","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"out-of-scope","surface":"outside-claude","reason":"Not a colour; a Claude Code theme carries colours only.","source":"ports/claude-code/mapping.json","spec":"spec/portability.md"},
@@ -871,7 +873,7 @@
"status": "not verified",
"reason": "No recorded real-import protocol bound to this subject."
},
- "subjectDigest": "sha256-WKYbKXp0JlgtN2meigk7CSDNC0+G1EiOJYiCV64TV8c=",
+ "subjectDigest": "sha256-YkvjnOrTqTUvFBTnU2YR2yAA6LQbhAKUwK7sbmBe+sc=",
"evidencePath": null,
"surfaces": {
"theme-scopes": {
@@ -1204,6 +1206,7 @@
{"role":"focus.offset-invalid","nativeKeys":[],"value":"-4px","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"out-of-scope","surface":"outside-codex","reason":"Not a colour; a tmTheme carries colours only.","source":"ports/codex/mapping.json","spec":"spec/portability.md"},
{"role":"focus.ring","nativeKeys":[],"value":"1px dashed #e53935","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"out-of-scope","surface":"outside-codex","reason":"Not a colour; a tmTheme carries colours only.","source":"ports/codex/mapping.json","spec":"spec/portability.md"},
{"role":"focus.ring-container","nativeKeys":[],"value":"2px solid #ffa2a7","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"out-of-scope","surface":"outside-codex","reason":"Not a colour; a tmTheme carries colours only.","source":"ports/codex/mapping.json","spec":"spec/portability.md"},
+ {"role":"focus.ring-contrast","nativeKeys":[],"value":"1px dashed #ffa2a7","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"out-of-scope","surface":"outside-codex","reason":"Not a colour; a tmTheme carries colours only.","source":"ports/codex/mapping.json","spec":"spec/portability.md"},
{"role":"font.family.mono","nativeKeys":[],"value":"\"SauceCodePro NFM\", \"Source Code Pro\", \"Cascadia Mono\", \"Consolas\", \"Liberation Mono\", \"DejaVu Sans Mono\", monospace","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"out-of-scope","surface":"outside-codex","reason":"Not a colour; a tmTheme carries colours only.","source":"ports/codex/mapping.json","spec":"spec/portability.md"},
{"role":"font.letter-spacing.terminal","nativeKeys":[],"value":"-0.5px","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"out-of-scope","surface":"outside-codex","reason":"Not a colour; a tmTheme carries colours only.","source":"ports/codex/mapping.json","spec":"spec/portability.md"},
{"role":"font.line-height.caption","nativeKeys":[],"value":"16px","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"out-of-scope","surface":"outside-codex","reason":"Not a colour; a tmTheme carries colours only.","source":"ports/codex/mapping.json","spec":"spec/portability.md"},
@@ -1284,7 +1287,7 @@
"status": "not verified",
"reason": "No recorded real-import protocol bound to this subject."
},
- "subjectDigest": "sha256-lDvxf8jk3rKlEJ5zdmg+8F794O1YCKNLdbbpXWkb8/U=",
+ "subjectDigest": "sha256-Nw1hqVrJV+yVbLJF1lQ1L269Y4t0habulzRSWqseIeE=",
"evidencePath": null,
"surfaces": {
"terminal-colours": {
@@ -1617,6 +1620,7 @@
{"role":"focus.offset-invalid","nativeKeys":[],"value":"-4px","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"out-of-scope","surface":"outside-terminal","reason":"Not a colour; a terminal theme file carries colours only.","source":"ports/ghostty/mapping.json","spec":"spec/portability.md"},
{"role":"focus.ring","nativeKeys":[],"value":"1px dashed #e53935","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"out-of-scope","surface":"outside-terminal","reason":"Not a colour; a terminal theme file carries colours only.","source":"ports/ghostty/mapping.json","spec":"spec/portability.md"},
{"role":"focus.ring-container","nativeKeys":[],"value":"2px solid #ffa2a7","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"out-of-scope","surface":"outside-terminal","reason":"Not a colour; a terminal theme file carries colours only.","source":"ports/ghostty/mapping.json","spec":"spec/portability.md"},
+ {"role":"focus.ring-contrast","nativeKeys":[],"value":"1px dashed #ffa2a7","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"out-of-scope","surface":"outside-terminal","reason":"Not a colour; a terminal theme file carries colours only.","source":"ports/ghostty/mapping.json","spec":"spec/portability.md"},
{"role":"font.family.mono","nativeKeys":[],"value":"\"SauceCodePro NFM\", \"Source Code Pro\", \"Cascadia Mono\", \"Consolas\", \"Liberation Mono\", \"DejaVu Sans Mono\", monospace","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"inherited","surface":"terminal-font","reason":"A Ghostty theme carries colours; set font-family in your own config.","source":"ports/ghostty/mapping.json","spec":"spec/portability.md"},
{"role":"font.letter-spacing.terminal","nativeKeys":[],"value":"-0.5px","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"inherited","surface":"terminal-font","reason":"A Ghostty theme carries colours; Ghostty has no letter-spacing key.","source":"ports/ghostty/mapping.json","spec":"spec/portability.md"},
{"role":"font.line-height.caption","nativeKeys":[],"value":"16px","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"out-of-scope","surface":"outside-terminal","reason":"Not a colour; a terminal theme file carries colours only.","source":"ports/ghostty/mapping.json","spec":"spec/portability.md"},
@@ -1697,7 +1701,7 @@
"status": "not verified",
"reason": "No recorded real-import protocol bound to this subject."
},
- "subjectDigest": "sha256-FHT3goPZaDay2iLVjM6lDy7vpCyNeie0R9QFY2dG5Tk=",
+ "subjectDigest": "sha256-p/6kDJCO51xACw1+hMO0NQ/+lOwFI/GJqYgVVHGNwa0=",
"evidencePath": null,
"surfaces": {
"interface": {
@@ -2039,6 +2043,7 @@
{"role":"focus.offset-invalid","nativeKeys":[],"value":"-4px","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"inherited","surface":"host-behavior","reason":"focus.offset-invalid: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":"ports/obsidian/mapping.json","spec":"spec/portability.md"},
{"role":"focus.ring","nativeKeys":[".theme-dark .prompt input.prompt-input:focus-visible | outline"],"value":"1px dashed #e53935","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"mapped","surface":"commands","reason":"Mapped only at the native keys in mapping.json; source-audited in Obsidian 1.13.4 and 1.13.7, not imported.","source":"ports/obsidian/mapping.json","spec":"spec/portability.md"},
{"role":"focus.ring-container","nativeKeys":[],"value":"2px solid #ffa2a7","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"inherited","surface":"host-behavior","reason":"focus.ring-container: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":"ports/obsidian/mapping.json","spec":"spec/portability.md"},
+ {"role":"focus.ring-contrast","nativeKeys":[],"value":"1px dashed #ffa2a7","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"inherited","surface":"host-behavior","reason":"focus.ring-contrast: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":"ports/obsidian/mapping.json","spec":"spec/portability.md"},
{"role":"font.family.mono","nativeKeys":["--font-interface-theme","--font-text-theme","--font-monospace-theme"],"value":"\"SauceCodePro NFM\", \"Source Code Pro\", \"Cascadia Mono\", \"Consolas\", \"Liberation Mono\", \"DejaVu Sans Mono\", monospace","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"mapped","surface":"interface","reason":"Mapped only at the native keys in mapping.json; source-audited in Obsidian 1.13.4 and 1.13.7, not imported.","source":"ports/obsidian/mapping.json","spec":"spec/portability.md"},
{"role":"font.letter-spacing.terminal","nativeKeys":[],"value":"-0.5px","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"inherited","surface":"host-behavior","reason":"font.letter-spacing.terminal: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":"ports/obsidian/mapping.json","spec":"spec/portability.md"},
{"role":"font.line-height.caption","nativeKeys":[],"value":"16px","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"inherited","surface":"host-behavior","reason":"font.line-height.caption: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":"ports/obsidian/mapping.json","spec":"spec/portability.md"},
@@ -2120,7 +2125,7 @@
"status": "not verified",
"reason": "No recorded real-import protocol bound to this subject."
},
- "subjectDigest": "sha256-x63CfYp5P7a96P97rq3idBVI7gwlNk5CIvMyyXZPzeQ=",
+ "subjectDigest": "sha256-gCzlotV/tR4l9JRxhNN40Q+VwRTXqh4Z3tt9Hf0d3DQ=",
"evidencePath": null,
"surfaces": {
"terminal-colours": {
@@ -2457,6 +2462,7 @@
{"role":"focus.offset-invalid","nativeKeys":[],"value":"-4px","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"out-of-scope","surface":"outside-terminal","reason":"Not a colour; a terminal theme file carries colours only.","source":"ports/orca/mapping.json","spec":"spec/portability.md"},
{"role":"focus.ring","nativeKeys":[],"value":"1px dashed #e53935","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"out-of-scope","surface":"outside-terminal","reason":"Not a colour; a terminal theme file carries colours only.","source":"ports/orca/mapping.json","spec":"spec/portability.md"},
{"role":"focus.ring-container","nativeKeys":[],"value":"2px solid #ffa2a7","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"out-of-scope","surface":"outside-terminal","reason":"Not a colour; a terminal theme file carries colours only.","source":"ports/orca/mapping.json","spec":"spec/portability.md"},
+ {"role":"focus.ring-contrast","nativeKeys":[],"value":"1px dashed #ffa2a7","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"out-of-scope","surface":"outside-terminal","reason":"Not a colour; a terminal theme file carries colours only.","source":"ports/orca/mapping.json","spec":"spec/portability.md"},
{"role":"font.family.mono","nativeKeys":["font-family"],"value":"\"SauceCodePro NFM\", \"Source Code Pro\", \"Cascadia Mono\", \"Consolas\", \"Liberation Mono\", \"DejaVu Sans Mono\", monospace","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"mapped","surface":"terminal-font","reason":"Written to the file's font-family key.","source":"ports/orca/mapping.json","spec":"spec/portability.md"},
{"role":"font.letter-spacing.terminal","nativeKeys":[],"value":"-0.5px","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"inherited","surface":"terminal-line-height","reason":"Neither the Ghostty config nor Orca's import has a letter-spacing key.","source":"ports/orca/mapping.json","spec":"spec/portability.md"},
{"role":"font.line-height.caption","nativeKeys":[],"value":"16px","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"out-of-scope","surface":"outside-terminal","reason":"Not a colour; a terminal theme file carries colours only.","source":"ports/orca/mapping.json","spec":"spec/portability.md"},
@@ -2543,7 +2549,7 @@
"status": "stale",
"reason": "Target, mapping, capabilities, tokens or artifact bytes changed since the recorded import."
},
- "subjectDigest": "sha256-z7ekmrfpnJd5Bqmm2tAKWlFKuKUoL9k+1OTrRIa/E+A=",
+ "subjectDigest": "sha256-io2n+aBdPqyF3aZl52Oa8lBHRt49dvZXUdZISSzh9fo=",
"evidencePath": "ports/telegram/evidence/2026-10-06-import.json",
"surfaces": {
"interface": {
@@ -2893,6 +2899,7 @@
{"role":"focus.offset-invalid","nativeKeys":[],"value":"-4px","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"unsupported","surface":"geometry","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":"ports/telegram/mapping.json","spec":"spec/portability.md"},
{"role":"focus.ring","nativeKeys":[],"value":"1px dashed #e53935","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"unsupported","surface":"geometry","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":"ports/telegram/mapping.json","spec":"spec/portability.md"},
{"role":"focus.ring-container","nativeKeys":[],"value":"2px solid #ffa2a7","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"unsupported","surface":"geometry","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":"ports/telegram/mapping.json","spec":"spec/portability.md"},
+ {"role":"focus.ring-contrast","nativeKeys":[],"value":"1px dashed #ffa2a7","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"unsupported","surface":"geometry","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":"ports/telegram/mapping.json","spec":"spec/portability.md"},
{"role":"font.family.mono","nativeKeys":[],"value":"\"SauceCodePro NFM\", \"Source Code Pro\", \"Cascadia Mono\", \"Consolas\", \"Liberation Mono\", \"DejaVu Sans Mono\", monospace","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"inherited","surface":"typography","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":"ports/telegram/mapping.json","spec":"spec/portability.md"},
{"role":"font.letter-spacing.terminal","nativeKeys":[],"value":"-0.5px","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"inherited","surface":"typography","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":"ports/telegram/mapping.json","spec":"spec/portability.md"},
{"role":"font.line-height.caption","nativeKeys":[],"value":"16px","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"inherited","surface":"typography","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":"ports/telegram/mapping.json","spec":"spec/portability.md"},
@@ -2974,7 +2981,7 @@
"status": "not verified",
"reason": "No recorded real-import protocol bound to this subject."
},
- "subjectDigest": "sha256-5zeQkfrmrdz9IQiwYNhFHGxK/l88Lv5IQcK9Jpi+LCM=",
+ "subjectDigest": "sha256-1si+CmGSw3iTui4XhUGSAowojL2iP4ciAISVouA6kPg=",
"evidencePath": null,
"surfaces": {
"terminal-colours": {
@@ -3307,6 +3314,7 @@
{"role":"focus.offset-invalid","nativeKeys":[],"value":"-4px","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"out-of-scope","surface":"outside-terminal","reason":"Not a colour; a terminal theme file carries colours only.","source":"ports/warp/mapping.json","spec":"spec/portability.md"},
{"role":"focus.ring","nativeKeys":[],"value":"1px dashed #e53935","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"out-of-scope","surface":"outside-terminal","reason":"Not a colour; a terminal theme file carries colours only.","source":"ports/warp/mapping.json","spec":"spec/portability.md"},
{"role":"focus.ring-container","nativeKeys":[],"value":"2px solid #ffa2a7","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"out-of-scope","surface":"outside-terminal","reason":"Not a colour; a terminal theme file carries colours only.","source":"ports/warp/mapping.json","spec":"spec/portability.md"},
+ {"role":"focus.ring-contrast","nativeKeys":[],"value":"1px dashed #ffa2a7","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"out-of-scope","surface":"outside-terminal","reason":"Not a colour; a terminal theme file carries colours only.","source":"ports/warp/mapping.json","spec":"spec/portability.md"},
{"role":"font.family.mono","nativeKeys":[],"value":"\"SauceCodePro NFM\", \"Source Code Pro\", \"Cascadia Mono\", \"Consolas\", \"Liberation Mono\", \"DejaVu Sans Mono\", monospace","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"inherited","surface":"terminal-font","reason":"The application's own terminal font setting.","source":"ports/warp/mapping.json","spec":"spec/portability.md"},
{"role":"font.letter-spacing.terminal","nativeKeys":[],"value":"-0.5px","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"inherited","surface":"terminal-font","reason":"The application's own terminal font setting.","source":"ports/warp/mapping.json","spec":"spec/portability.md"},
{"role":"font.line-height.caption","nativeKeys":[],"value":"16px","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"out-of-scope","surface":"outside-terminal","reason":"Not a colour; a terminal theme file carries colours only.","source":"ports/warp/mapping.json","spec":"spec/portability.md"},
@@ -3387,7 +3395,7 @@
"status": "not verified",
"reason": "No recorded real-import protocol bound to this subject."
},
- "subjectDigest": "sha256-SjYiFcen5HQKvrV8H/r9JWoWa22EWydhupAbfGPMVFo=",
+ "subjectDigest": "sha256-j4Zx21ZqIhuZlE5iMBN5g+G6xNqPuy8W9TYO5zYg7xo=",
"evidencePath": null,
"surfaces": {
"desktop": {
@@ -3768,6 +3776,7 @@
{"role":"focus.offset-invalid","nativeKeys":[],"value":"-4px","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"unsupported","surface":"unsupported","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":"ports/windows/mapping.json","spec":"spec/portability.md"},
{"role":"focus.ring","nativeKeys":[],"value":"1px dashed #e53935","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"unsupported","surface":"unsupported","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":"ports/windows/mapping.json","spec":"spec/portability.md"},
{"role":"focus.ring-container","nativeKeys":[],"value":"2px solid #ffa2a7","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"unsupported","surface":"unsupported","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":"ports/windows/mapping.json","spec":"spec/portability.md"},
+ {"role":"focus.ring-contrast","nativeKeys":[],"value":"1px dashed #ffa2a7","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"unsupported","surface":"unsupported","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":"ports/windows/mapping.json","spec":"spec/portability.md"},
{"role":"font.family.mono","nativeKeys":["font.family","windows-11-start-menu-styler | TextBlock#DisplayName | FontFamily","windows-11-start-menu-styler | TextBlock#AppDisplayName | FontFamily","windows-11-start-menu-styler | TextBlock#PinnedListHeaderText | FontFamily","windows-11-start-menu-styler | TextBlock#AllListHeadingText | FontFamily","windows-11-start-menu-styler | TextBlock#UserTileNameText | FontFamily","windows-11-start-menu-styler | TextBlock#PlaceholderText | FontFamily","windows-11-start-menu-styler | TextBlock#RecommendedListHeaderText | FontFamily","windows-11-notification-center-styler | TextBlock#NotificationsTextBlock | FontFamily","windows-11-notification-center-styler | Grid#GroupTitleGrid > TextBlock#Title | FontFamily","windows-11-notification-center-styler | Grid#ToastTitleBar > TextBlock#SenderName | FontFamily","powertoys.markdown.FONT"],"value":"\"SauceCodePro NFM\", \"Source Code Pro\", \"Cascadia Mono\", \"Consolas\", \"Liberation Mono\", \"DejaVu Sans Mono\", monospace","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"mapped","surface":"powertoys","reason":"Token-derived CSS in the exact-admitted PowerToys Markdown rendering boundary; import and visual acceptance are separate.","source":"ports/windows/mapping.json","spec":"spec/portability.md"},
{"role":"font.letter-spacing.terminal","nativeKeys":[],"value":"-0.5px","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"unsupported","surface":"unsupported","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":"ports/windows/mapping.json","spec":"spec/portability.md"},
{"role":"font.line-height.caption","nativeKeys":[],"value":"16px","eligibility":{"action":"use","reason":"Use within the role's documented scope and restrictions.","decisionIds":[]},"state":"unsupported","surface":"unsupported","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":"ports/windows/mapping.json","spec":"spec/portability.md"},
diff --git a/exports/recipes/button/README.md b/exports/recipes/button/README.md
index afc9c6543..f9a585ffc 100644
--- a/exports/recipes/button/README.md
+++ b/exports/recipes/button/README.md
@@ -2,7 +2,7 @@
j3w1 theme 4.0.0. Markup adapted from j3w1 UI Theme Spec, https://github.com/j3w1/theme, CC BY 4.0: https://creativecommons.org/licenses/by/4.0/. Changes: scoped instance IDs and documentation-only content removed. CSS and generator: MIT; see LICENSE.md.
-Version 4.0.0; profile default; source digest sha256-dEM5sRKZMKr8AoTw9J/e2qFritEPNzhGaVvuBgzgANs=. Pin the supplying commit and verify manifest source/file digests; the version alone does not identify a revision.
+Version 4.0.0; profile default; source digest sha256-7vjeH1XU/Aq3RnY7udTHY2x7Bl2TbxTgLCr7V2yp1KA=. Pin the supplying commit and verify manifest source/file digests; the version alone does not identify a revision.
Open example.html directly, without Astro, network assets or a build step. two-instances.html demonstrates independent IDs. For integration, include tokens.css, foundation.css and component.css in that order, then markup.html. Keep .j3w1-recipe and data-density on the wrapper. The source viewer can make a fresh instance prefix; use a unique prefix for every copy and rewrite all ID references together.
diff --git a/exports/recipes/button/manifest.json b/exports/recipes/button/manifest.json
index b361441fd..d8df8cf5e 100644
--- a/exports/recipes/button/manifest.json
+++ b/exports/recipes/button/manifest.json
@@ -21,10 +21,10 @@
"site/src/styles/components/button.css": "sha256-W1TBmogBv28yqLCIQPZjnbF8SC/owyViHaNEKyOedTk=",
"LICENSE.md": "sha256-Ih5+DpqcNXGWJX6BbYgpt6psmJi9lGcXGJzuiU7elE0=",
"tokens/primitives.tokens.json": "sha256-cmydigBuNgi4hyQLi+3VS5JBhDQ8VMStlmUtPSSc05E=",
- "tokens/semantic.tokens.json": "sha256-jbrikW294TIEdB7rAiqlLPAiLUy2CMyLT/opZiVe/E0=",
- "tokens/foundations.tokens.json": "sha256-30MQxI9wjLrZLFYJBPe1+gLUT80oRCnMDNiNoltbtjk="
+ "tokens/semantic.tokens.json": "sha256-hoLfjJ7cwYVdapgaC/ZP0Ou1qQv6HBX0T14qv5GPqd4=",
+ "tokens/foundations.tokens.json": "sha256-rCrhBaYt63CHz5/v3r/oC5qF83JoqaM8O7kzQyDr8cY="
},
- "digest": "sha256-dEM5sRKZMKr8AoTw9J/e2qFritEPNzhGaVvuBgzgANs=",
+ "digest": "sha256-7vjeH1XU/Aq3RnY7udTHY2x7Bl2TbxTgLCr7V2yp1KA=",
"revisionPolicy": "Resolve these paths at the same pinned commit as this manifest. The hosted source viewer identifies its supplying commit; generated source files contain content digests, never a floating revision claim."
},
"dependencies": {
@@ -395,6 +395,6 @@
"example.html": "sha256-6Jd+ynSweVG+DO3EUHUbEUNSEbj5+6+iBzqXU4YLtIs=",
"two-instances.html": "sha256-HrqWaokDwmbQXfgRiFeyWToB617qs6c+t/UQLJs0Blk=",
"LICENSE.md": "sha256-vVf/G6WKJRqbyGZCppbAxMh+UAJdSzaPt5xWUujehyU=",
- "README.md": "sha256-PFptO8Sfyo2yzQoMnyf7+qotgB+Uols1JNNcZdj+9bg="
+ "README.md": "sha256-80dVa3TLTwhDpEaXVdkXftTNdzUISSIfCLjoSp/v7eU="
}
}
diff --git a/exports/recipes/dialog/README.md b/exports/recipes/dialog/README.md
index 5d3f9d3f8..e49222d7a 100644
--- a/exports/recipes/dialog/README.md
+++ b/exports/recipes/dialog/README.md
@@ -2,7 +2,7 @@
j3w1 theme 4.0.0. Markup adapted from j3w1 UI Theme Spec, https://github.com/j3w1/theme, CC BY 4.0: https://creativecommons.org/licenses/by/4.0/. Changes: scoped instance IDs and documentation-only content removed. CSS and generator: MIT; see LICENSE.md.
-Version 4.0.0; profile default; source digest sha256-uuI/ebqf+dTaeJCC2s0y51Zadt6ty1j1N3Av9/PMuDA=. Pin the supplying commit and verify manifest source/file digests; the version alone does not identify a revision.
+Version 4.0.0; profile default; source digest sha256-0iXOlWFgMFG1NYyoKFfuEbk0SLXntbapFSCEXjco7xg=. Pin the supplying commit and verify manifest source/file digests; the version alone does not identify a revision.
Open example.html directly, without Astro, network assets or a build step. two-instances.html demonstrates independent IDs. For integration, include tokens.css, foundation.css and component.css in that order, then markup.html. Keep .j3w1-recipe and data-density on the wrapper. The source viewer can make a fresh instance prefix; use a unique prefix for every copy and rewrite all ID references together.
diff --git a/exports/recipes/dialog/manifest.json b/exports/recipes/dialog/manifest.json
index b09dc4fc7..7449903c5 100644
--- a/exports/recipes/dialog/manifest.json
+++ b/exports/recipes/dialog/manifest.json
@@ -22,10 +22,10 @@
"site/src/styles/components/dialog.css": "sha256-LsgLtsmzj87glU24kBSLeKNmpLIUDCqe3ojq5+mrXEs=",
"LICENSE.md": "sha256-Ih5+DpqcNXGWJX6BbYgpt6psmJi9lGcXGJzuiU7elE0=",
"tokens/primitives.tokens.json": "sha256-cmydigBuNgi4hyQLi+3VS5JBhDQ8VMStlmUtPSSc05E=",
- "tokens/semantic.tokens.json": "sha256-jbrikW294TIEdB7rAiqlLPAiLUy2CMyLT/opZiVe/E0=",
- "tokens/foundations.tokens.json": "sha256-30MQxI9wjLrZLFYJBPe1+gLUT80oRCnMDNiNoltbtjk="
+ "tokens/semantic.tokens.json": "sha256-hoLfjJ7cwYVdapgaC/ZP0Ou1qQv6HBX0T14qv5GPqd4=",
+ "tokens/foundations.tokens.json": "sha256-rCrhBaYt63CHz5/v3r/oC5qF83JoqaM8O7kzQyDr8cY="
},
- "digest": "sha256-uuI/ebqf+dTaeJCC2s0y51Zadt6ty1j1N3Av9/PMuDA=",
+ "digest": "sha256-0iXOlWFgMFG1NYyoKFfuEbk0SLXntbapFSCEXjco7xg=",
"revisionPolicy": "Resolve these paths at the same pinned commit as this manifest. The hosted source viewer identifies its supplying commit; generated source files contain content digests, never a floating revision claim."
},
"dependencies": {
@@ -559,6 +559,6 @@
"example.html": "sha256-NfEbyJuZuMeGI56eQN6PW+EXPWfv8OjpngN0eMztvPQ=",
"two-instances.html": "sha256-g3casyVMkw4tWfmMAkD3Aq9kp+I7vebgRqjir2H/52c=",
"LICENSE.md": "sha256-vVf/G6WKJRqbyGZCppbAxMh+UAJdSzaPt5xWUujehyU=",
- "README.md": "sha256-TprCvG8noK53sTTwJVCHD0V1zx6BUW+HP7reUSdyhVk="
+ "README.md": "sha256-1opuFssLS9hrVsviW1sRoOXq/l9P7pCwx5o/mD/lnpA="
}
}
diff --git a/exports/recipes/index.json b/exports/recipes/index.json
index d83502202..a59562ad6 100644
--- a/exports/recipes/index.json
+++ b/exports/recipes/index.json
@@ -7,7 +7,7 @@
"id": "button",
"variant": "default",
"manifest": "exports/recipes/button/manifest.json",
- "sourceDigest": "sha256-dEM5sRKZMKr8AoTw9J/e2qFritEPNzhGaVvuBgzgANs=",
+ "sourceDigest": "sha256-7vjeH1XU/Aq3RnY7udTHY2x7Bl2TbxTgLCr7V2yp1KA=",
"limitations": [
"Native button activation only; application actions are supplied by the host.",
"aria-busy supplies the loading appearance; the host must suppress repeated activation while busy."
@@ -17,7 +17,7 @@
"id": "text-field",
"variant": "default",
"manifest": "exports/recipes/text-field/manifest.json",
- "sourceDigest": "sha256-YUjIVkdZJyC/rWXFXU5iUEe01k1zm5jV4Z0I+fY4RyE=",
+ "sourceDigest": "sha256-2rFKGqgqT35Ktwq3VjDV2QNyvLSv5iIaBvXGYICs+tM=",
"limitations": [
"Native text editing only; validation messages and aria-invalid are managed by the host.",
"The default text variant is packaged. Password reveal, search clearing and number steppers are not implemented."
@@ -27,7 +27,7 @@
"id": "dialog",
"variant": "default",
"manifest": "exports/recipes/dialog/manifest.json",
- "sourceDigest": "sha256-uuI/ebqf+dTaeJCC2s0y51Zadt6ty1j1N3Av9/PMuDA=",
+ "sourceDigest": "sha256-0iXOlWFgMFG1NYyoKFfuEbk0SLXntbapFSCEXjco7xg=",
"limitations": [
"Visual-only: the native dialog is open in normal flow with a simulated backdrop.",
"No showModal, focus trap, Escape handling, close actions or focus return is supplied. The host owns the complete modal lifecycle and positioning.",
diff --git a/exports/recipes/text-field/README.md b/exports/recipes/text-field/README.md
index 6d4d198dc..16a9d1d3f 100644
--- a/exports/recipes/text-field/README.md
+++ b/exports/recipes/text-field/README.md
@@ -2,7 +2,7 @@
j3w1 theme 4.0.0. Markup adapted from j3w1 UI Theme Spec, https://github.com/j3w1/theme, CC BY 4.0: https://creativecommons.org/licenses/by/4.0/. Changes: scoped instance IDs and documentation-only content removed. CSS and generator: MIT; see LICENSE.md.
-Version 4.0.0; profile default; source digest sha256-YUjIVkdZJyC/rWXFXU5iUEe01k1zm5jV4Z0I+fY4RyE=. Pin the supplying commit and verify manifest source/file digests; the version alone does not identify a revision.
+Version 4.0.0; profile default; source digest sha256-2rFKGqgqT35Ktwq3VjDV2QNyvLSv5iIaBvXGYICs+tM=. Pin the supplying commit and verify manifest source/file digests; the version alone does not identify a revision.
Open example.html directly, without Astro, network assets or a build step. two-instances.html demonstrates independent IDs. For integration, include tokens.css, foundation.css and component.css in that order, then markup.html. Keep .j3w1-recipe and data-density on the wrapper. The source viewer can make a fresh instance prefix; use a unique prefix for every copy and rewrite all ID references together.
diff --git a/exports/recipes/text-field/component.css b/exports/recipes/text-field/component.css
index 7b789e370..ecff71908 100644
--- a/exports/recipes/text-field/component.css
+++ b/exports/recipes/text-field/component.css
@@ -213,7 +213,7 @@ SOFTWARE.
}
.j3w1-recipe .text-field-root:has(.text-field-input[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
.j3w1-recipe .text-field-root:has(.text-field-input:disabled) {
diff --git a/exports/recipes/text-field/example.html b/exports/recipes/text-field/example.html
index a6e20c6c0..d52173fd2 100644
--- a/exports/recipes/text-field/example.html
+++ b/exports/recipes/text-field/example.html
@@ -69,6 +69,7 @@
--focus-offset: -2px;
--focus-offset-invalid: -4px;
--focus-ring: 1px dashed #e53935;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--font-family-mono: "SauceCodePro NFM", "Source Code Pro", "Cascadia Mono", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace;
--font-line-height-ui-md: 18px;
--font-line-height-ui-sm: 16px;
@@ -349,7 +350,7 @@
}
.j3w1-recipe .text-field-root:has(.text-field-input[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
.j3w1-recipe .text-field-root:has(.text-field-input:disabled) {
diff --git a/exports/recipes/text-field/manifest.json b/exports/recipes/text-field/manifest.json
index b913a8b1c..bb1f26cdb 100644
--- a/exports/recipes/text-field/manifest.json
+++ b/exports/recipes/text-field/manifest.json
@@ -18,13 +18,13 @@
"spec/components/text-field.demo.html": "sha256-ZB5xDObbSUC3QCuqccJpd3EmQ5YJQhJ74BCTur+xwa4=",
"site/src/styles/recipe-foundation.css": "sha256-SUmvPxZ7TNZA79xx7u87QonwpwCDBRcRzTnrTOfV8k8=",
"site/src/styles/partials/field.css": "sha256-WTZb/N3/3OT12dHJbvImC02NJBaOkGX8rQ+alodB3S0=",
- "site/src/styles/components/text-field.css": "sha256-7HgfVLJYEB2zasvJhhCqO2ClcAdxorbg5wpXXqPXPZc=",
+ "site/src/styles/components/text-field.css": "sha256-7+qdAGWDYb/DiCLCXFkZQza4ZD7o1ZpPmdqR69w8TrU=",
"LICENSE.md": "sha256-Ih5+DpqcNXGWJX6BbYgpt6psmJi9lGcXGJzuiU7elE0=",
"tokens/primitives.tokens.json": "sha256-cmydigBuNgi4hyQLi+3VS5JBhDQ8VMStlmUtPSSc05E=",
- "tokens/semantic.tokens.json": "sha256-jbrikW294TIEdB7rAiqlLPAiLUy2CMyLT/opZiVe/E0=",
- "tokens/foundations.tokens.json": "sha256-30MQxI9wjLrZLFYJBPe1+gLUT80oRCnMDNiNoltbtjk="
+ "tokens/semantic.tokens.json": "sha256-hoLfjJ7cwYVdapgaC/ZP0Ou1qQv6HBX0T14qv5GPqd4=",
+ "tokens/foundations.tokens.json": "sha256-rCrhBaYt63CHz5/v3r/oC5qF83JoqaM8O7kzQyDr8cY="
},
- "digest": "sha256-YUjIVkdZJyC/rWXFXU5iUEe01k1zm5jV4Z0I+fY4RyE=",
+ "digest": "sha256-2rFKGqgqT35Ktwq3VjDV2QNyvLSv5iIaBvXGYICs+tM=",
"revisionPolicy": "Resolve these paths at the same pinned commit as this manifest. The hosted source viewer identifies its supplying commit; generated source files contain content digests, never a floating revision claim."
},
"dependencies": {
@@ -81,6 +81,7 @@
"focus.offset",
"focus.offset-invalid",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -101,7 +102,6 @@
"color.border.divider",
"color.code.caret",
"color.interaction.disabled.bg",
- "color.interaction.focus.ring-container",
"color.interaction.hover.bg",
"color.interaction.text-selection.bg",
"color.interaction.text-selection.text",
@@ -121,6 +121,7 @@
"focus.offset",
"focus.offset-invalid",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -185,11 +186,6 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
- "color.interaction.focus.ring-container": {
- "action": "use",
- "reason": "Use within the role's documented scope and restrictions.",
- "decisionIds": []
- },
"color.interaction.hover.bg": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -285,6 +281,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -354,12 +355,12 @@
"files": {
"markup.html": "sha256-wARfGY6V60eMUhV8JNGMhY+EnikQvcPlSqkD5WPOULo=",
"template.html": "sha256-IlSlLS7sPC3MLqIdxMRQUP4sFnn/58lwM3AFALtdY3c=",
- "tokens.css": "sha256-Z7C9Hx+UzJAtRTBN08cB9BRDeTuCjEQr3xZyD2i0vgU=",
+ "tokens.css": "sha256-zjVcq7LwtSQfrFMkCNQ3qgqOctaVyaz3bTbWiXOvDVw=",
"foundation.css": "sha256-jm66ZdmdAhTyMVQIMKhzVZZm/NhB5ZbLq8g3UASzy98=",
- "component.css": "sha256-Oz8HGS0K4usbEkFFSKi93G9yUBnUass/Z8uQbOJZXNc=",
- "example.html": "sha256-bgWf7wJ491bEm4esZkZzyuL263quAotSfoygX24ZkFU=",
- "two-instances.html": "sha256-JIl9HQHQPYXg+r8lkFfC0x50KKiLyNWAwYm9mdQXGGw=",
+ "component.css": "sha256-HLK6PSsbThQsRH4Y6wgRJXw4vWcrki2Vs0MZO6ANnGw=",
+ "example.html": "sha256-t5lfDU+uh3gq1zaNtyPjyo1bRZ1kjRL/Niomvp9iguk=",
+ "two-instances.html": "sha256-IHBsJlaIcd5hGRPnWVXegcrdrvG287OvtxoWBW+Yua4=",
"LICENSE.md": "sha256-vVf/G6WKJRqbyGZCppbAxMh+UAJdSzaPt5xWUujehyU=",
- "README.md": "sha256-HpwPQAB3ombWhQi6qdKYU8fgIeJAxlbGFP8ovZEdVnw="
+ "README.md": "sha256-Y76lmDknYtjOnDPP/kAcDy0bOLeF7/0c6wJ5EWE1OhI="
}
}
diff --git a/exports/recipes/text-field/tokens.css b/exports/recipes/text-field/tokens.css
index d0db47473..864f47a5e 100644
--- a/exports/recipes/text-field/tokens.css
+++ b/exports/recipes/text-field/tokens.css
@@ -65,6 +65,7 @@ SOFTWARE.
--focus-offset: -2px;
--focus-offset-invalid: -4px;
--focus-ring: 1px dashed #e53935;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--font-family-mono: "SauceCodePro NFM", "Source Code Pro", "Cascadia Mono", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace;
--font-line-height-ui-md: 18px;
--font-line-height-ui-sm: 16px;
diff --git a/exports/recipes/text-field/two-instances.html b/exports/recipes/text-field/two-instances.html
index 0301f1401..8c2fea3e2 100644
--- a/exports/recipes/text-field/two-instances.html
+++ b/exports/recipes/text-field/two-instances.html
@@ -69,6 +69,7 @@
--focus-offset: -2px;
--focus-offset-invalid: -4px;
--focus-ring: 1px dashed #e53935;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--font-family-mono: "SauceCodePro NFM", "Source Code Pro", "Cascadia Mono", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace;
--font-line-height-ui-md: 18px;
--font-line-height-ui-sm: 16px;
@@ -349,7 +350,7 @@
}
.j3w1-recipe .text-field-root:has(.text-field-input[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
.j3w1-recipe .text-field-root:has(.text-field-input:disabled) {
diff --git a/exports/task-inputs.json b/exports/task-inputs.json
index 9ee7bc33f..b1164a3cf 100644
--- a/exports/task-inputs.json
+++ b/exports/task-inputs.json
@@ -141,6 +141,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.letter-spacing.terminal",
"font.line-height.caption",
@@ -199,7 +200,7 @@
"z.skip-link",
"z.toast"
],
- "usageDigest": "sha256-v3sZK98nwkEq+AJKV5x7t6Hc3Ic2Qdqrartdf0gub4Y=",
+ "usageDigest": "sha256-YfOuc5ZsVeTby4y2ZnmvIDA5tNLSiN2tCE2noUGu+u4=",
"tokenDependencies": {
"border.width.default": [],
"border.width.emphasis": [],
@@ -941,6 +942,10 @@
"color.interaction.focus.ring-container",
"border.width.emphasis"
],
+ "focus.ring-contrast": [
+ "color.interaction.focus.ring-container",
+ "border.width.default"
+ ],
"font.family.mono": [],
"font.letter-spacing.terminal": [],
"font.line-height.caption": [],
@@ -1004,81 +1009,81 @@
},
"files": {
"agents/consume.md": "sha256-I7gvGchrdAXnxI1VpW1sIodxyPy9hNvveANaO2p7h8w=",
- "exports/components/admin-form.json": "sha256-2TlXwKoXO6zcy7Tx++Cm2rh/hlfQSzLAgg3iHIMc+A8=",
- "exports/components/alert.json": "sha256-N1aX81ExUlcbLny7o1Ps8qNiXl6FYwt1lU+/g3RZXRk=",
- "exports/components/avatar.json": "sha256-r07/ZuUO6VKbEMR1QWVKRz6ccLUBPqurjdKyuQPk6Tk=",
- "exports/components/badge.json": "sha256-8IEshqfh1RsMRDC6H9H5fptI3HHYLD9cw/xzzTKxj+w=",
- "exports/components/breadcrumbs.json": "sha256-URIM0vmWwvEIVzJIka7s4jaG4WOxMoJ8LDbFFMCMXgc=",
- "exports/components/button-group.json": "sha256-6R65U8U5eYZkgsk39bFPK5LBTxgclPJ4C5hR9un4iRM=",
- "exports/components/button.json": "sha256-fpx3utLRj/ejAQlUy5k14oQwbTIClAI9Oi8Ogyd+d+A=",
- "exports/components/card.json": "sha256-OPzyirE2R2itNnHbSarld/Un5f9ZTd+FtpvLB23HIA0=",
- "exports/components/chart.json": "sha256-dNhHbR3i2kV6+CFwpXkGQAemCS63ck3AfJdvm5roZRs=",
- "exports/components/checkbox.json": "sha256-eF4Hc9ptoJR6MAHCFo+XvObHeyrh3JBIEF3jPCA/Yqs=",
- "exports/components/chip.json": "sha256-n1NBTRmnMEk6PabtvRXepV3xpLoYwBW0nGYcoyJsc4Y=",
- "exports/components/code-editor.json": "sha256-0vAFRoRizmdpPWGWawnIIBOOTi0xhNBhg249A2QRwzA=",
- "exports/components/combobox.json": "sha256-bi9Un1R+qI1w4uAD7JwXVioAjO+TfBJ2YdPYdYRE5dE=",
- "exports/components/command-palette.json": "sha256-ca/jmbFZGiDz8eyzg399QygD+QjzRnxbezSSVLMfogE=",
- "exports/components/compact-dashboard.json": "sha256-5VqJEG4kjVnz9hGzkvVFe0DN7ct81WF4hgbEEvSjjK8=",
- "exports/components/data-table.json": "sha256-hjakBbiuffz4/zKoHVd1J4O3zOCOsiBgGk40jJzJ/aQ=",
- "exports/components/date-picker.json": "sha256-C9vZnrKBtp3iyOzD1rj+O7jRttbE1UfyTQ2HO7EghiI=",
- "exports/components/description-list.json": "sha256-ZwNsiuLlqLpENEfVPAcjWTAfmA16wLYPGyXww48TyZk=",
- "exports/components/diagnostics.json": "sha256-fD3AIMxCA0nJDmZRkE+basd1hOvDfl8G9SX41NS+Lxw=",
- "exports/components/dialog.json": "sha256-whsqh1ZTeENrzZQ0fnl3XW0pylTDRVg+I9bL8baI3hc=",
- "exports/components/diff-view.json": "sha256-pZUhOKHPaDknpm882AYQf9AsG6cJIQMg8gLFrpb92G8=",
- "exports/components/disclosure.json": "sha256-aatGXrfUPGCgYBRajZs41hMnlcq0bICILrM/PIJT5xc=",
- "exports/components/drawer.json": "sha256-qiAVCt0XgVXzhTO7QmWv7mUrU/R09RK0l3quAFvWyow=",
- "exports/components/editor-search.json": "sha256-liHOHxqi1RNapo0uCrv3B7vTJlecr1rL2hA6Ctm/TxI=",
- "exports/components/empty-state.json": "sha256-VxtNyRdmMsMGmJRJxyXE33300sOm1PU2kJT6TnzgHVk=",
- "exports/components/error-state.json": "sha256-X10UjVV18zwhpqmxs0Wh++8HrNiItZiY5tlhLaGJBgg=",
- "exports/components/field.json": "sha256-/718KnElGCw1Tx3beuyzrvUmZ8sbbuu8p2eLHjK7WaY=",
- "exports/components/fieldset.json": "sha256-/zqw1AzrNjzsiuyFAH3Se8Zi8ZTF8NrNSpVqV4fFi5s=",
- "exports/components/file-browser.json": "sha256-1rW7OwM9GbrP5rg8DUSAzNeU69z+AiqGCpCL5JT1hnE=",
- "exports/components/file-input.json": "sha256-3PC03SAUjPb+h4lFEWDSz5LhqTSVc3uNYlslPzoBdcM=",
- "exports/components/filterable-table.json": "sha256-6EZhwGHWZSx7GFnFOSKeeuUm/4HEprM6Z+fsoR9n4Pg=",
- "exports/components/form-builder.json": "sha256-p/VED53RX0LEzKCFJiJc9dRfvLUAj6WFePwNu8YwbsU=",
- "exports/components/i3-window-frame.json": "sha256-WGOhg2oHOzWzi1hXk3THgnFRdcQnDCDAAkvURDKKil0=",
- "exports/components/icon-button.json": "sha256-BGhJZjoqHZuxGZ4GL/LnGhVgSDt8NT0QsoSSs5Qq2Qk=",
- "exports/components/kbd.json": "sha256-i38Th7/ujfsUiMDrhgFVeS3A6mWM5WCOnRJV/jT9pdU=",
- "exports/components/link.json": "sha256-oeQ8Q4DDjkAzdSmYGSVoW/hx7zbE55v7sfBR/aygZfM=",
- "exports/components/list.json": "sha256-VG+FKB+lQe72GAi+TbtVwGcCp8xZoSK67yLj/q1eJrE=",
- "exports/components/loading-indicator.json": "sha256-CWs2iHLscEtxyYfdkf+wykSJq/1tg/50eG6HGzE5WvE=",
- "exports/components/menu.json": "sha256-aI+xAhPbZERQCq3SXhRNiEflEa5nLQECZRThR+J2h+M=",
- "exports/components/multiselect.json": "sha256-9j1YnBusfBXHOX8cdz5BvBv5vpqK4vx4PdIKC8Nbmf4=",
- "exports/components/number-field.json": "sha256-n41bP6rpy2cLaRjphyTxafEeUTU8EzhfpeQsAllMJYY=",
- "exports/components/pagination.json": "sha256-/gj/OtiYZ2bx2eGXlGBDWFQ2t6okaz9Fij3NQ6VIYik=",
- "exports/components/popover.json": "sha256-zQuAADCQ6AJNdf1EEFyY4/OUMjEvKTvBdOKn8ZqZxoc=",
- "exports/components/progress.json": "sha256-GmSVxYy5rJ5yCC94AD11VMIXremS9vS3kocXp/xq9cY=",
- "exports/components/radio-group.json": "sha256-XKfMy84MCW/4OhLmJs9UpY5QmTfzmmfVWep27KMO9Us=",
- "exports/components/range.json": "sha256-HZROwoGsWUctb37zk5B2fb4fu9BNf3GezlbkjvgJ8eM=",
- "exports/components/repeater.json": "sha256-96FIpOJc1q8Bg9akgdH9oh9keyGyPqte+R8s6kHgBBM=",
- "exports/components/search-field.json": "sha256-G1TUdNMKHodg90kQREtOOEe8Sc9XQQwY+JYFFDRsN7s=",
- "exports/components/segmented-control.json": "sha256-zQWmERfCcB8Trq7pb2IZwmk4GJ7G+XrA5OZGGZUn4v4=",
- "exports/components/select.json": "sha256-+104x89k42mQE/HXROEO3H3J0LiouM+rmSaBTau7/v4=",
- "exports/components/settings-panel.json": "sha256-MdoyYk8AhfdhaoCImjuSPyaLL1W5kq/NId7DmNRrjhM=",
- "exports/components/sidebar-nav.json": "sha256-Rai29nxmXghlJymY8EsG+2+Gb21H00wSR9670+6B/wo=",
- "exports/components/skeleton.json": "sha256-e35OkgH9WCDFuP2ehaMaxlsi6lHfufOL23j1Eb8wI0w=",
- "exports/components/skip-link.json": "sha256-QW+6Ggs71uJPCPPD1wIMoCD3zKXwjN3iBrk1N++E388=",
- "exports/components/switch.json": "sha256-srVz19F+sBbbrnK7qdTz9fOyuPamwKYU4pRJUNMGpXI=",
- "exports/components/table.json": "sha256-00qzkQ7+Z1S4KyMdpqY7rpJwF1ThX9GPyF2seTosYNM=",
- "exports/components/tabs.json": "sha256-azbH6ieXepaIRn9UBNXvi879wHCR+rkMD8swCB6CZIM=",
- "exports/components/terminal.json": "sha256-F32f03n5TcghhAXLRQgUUVTocwOzkdFuc1RnN5xWy28=",
- "exports/components/text-field.json": "sha256-xaKWYj2Xr70t21J4K+RaHFYIJqrHERfUjkuGDynhXYI=",
- "exports/components/textarea.json": "sha256-+ESs+Xw17KqNhLGqYUv+TY/epN/X8kJNtB80OUFgArw=",
- "exports/components/time-picker.json": "sha256-m1ht0mGWX1ZZg5FWZae+jK39fgtAvEDdsZksj764liE=",
- "exports/components/timeline.json": "sha256-slpRcVncm8yu9FK/bxDpYrOrk1gO7qd0iwSJ3d8xXV0=",
- "exports/components/toast.json": "sha256-FQZu2cYm6Ynw2S0ItMLBr9u/rVLZMntD7Z+ht0OXBXc=",
- "exports/components/toolbar.json": "sha256-Cgqztp/7RUBC2gPBbPdH5XszuMRpyiQ4gwi9G+2gBFA=",
- "exports/components/tooltip.json": "sha256-c4YtPBxsctZRCwpA1v8KZ9ih6PPBdBMUc+c7BzVXaV8=",
- "exports/components/tree.json": "sha256-L9jLSs+I4wsrYtPhwJ1qaONJ180iXvXGv7Rg7f6Smuk=",
- "exports/components/wizard.json": "sha256-pzkWqKyyi2EQ1GXntebvKyalvYt6pusuP1aRRtiRfdw=",
- "exports/port-capabilities.json": "sha256-3NonQaSmytqqsMAVNYb53m45OGqD6hiCiN07GaWRJGo=",
+ "exports/components/admin-form.json": "sha256-mGq6p24iD7FFWXPtEqN+9D62hVLhGunTPB+v373mf8M=",
+ "exports/components/alert.json": "sha256-nicIQjtEYAkSo61Zi/SS6LXgPajR9yfZ8vimmGuEE2Y=",
+ "exports/components/avatar.json": "sha256-yt8JYMsqYpNdp2FC/u4AouhlZgaiJ55msYDuLsWby0g=",
+ "exports/components/badge.json": "sha256-TWHcpVotZtNBl/CmZp4Cwuq2dpT75MMU7uXDiILKoKw=",
+ "exports/components/breadcrumbs.json": "sha256-uJYyMxAhvzihHGDWMYV6GDdYZmPEIGrxPLYnal9FEaY=",
+ "exports/components/button-group.json": "sha256-U3tIjUIxzB1uUeXg82yXutLb7SkvBr1ASA5HjY7KRkk=",
+ "exports/components/button.json": "sha256-PWCXNzWleZkVQtwsKjeiZECQDmnhH/Q0Xei1e3o2yd8=",
+ "exports/components/card.json": "sha256-eYtNxQ2hS4e/jcUR87VqLSDFMGRk6hHZ/o4NNBhbR2g=",
+ "exports/components/chart.json": "sha256-o0B2irz8ssJzs0AjwcU5ttEPhwi8elwGuOXB08TX/3c=",
+ "exports/components/checkbox.json": "sha256-oa8Jwj73IRfL1XjYWMblXglksU/uF4Lkvmf7YdSD3XU=",
+ "exports/components/chip.json": "sha256-zaFTr7qluvvJSISqCmYbCi2Gj1g8jFMIJzGk3mExa5g=",
+ "exports/components/code-editor.json": "sha256-fLZXQqZLfHeQOm2vbiNbcnhBoph3nHrpJ63jp2EXwrU=",
+ "exports/components/combobox.json": "sha256-5e0Xfv+7jH5PN8DaKfKgy4Vny5T54Pc7XZQ9yCatoVg=",
+ "exports/components/command-palette.json": "sha256-DJjjMMleSDQeROdTMb1jNOW/qspz4VDk2TGKWOVlyP4=",
+ "exports/components/compact-dashboard.json": "sha256-U7fvgUZQ+yPgySeOTGDwhTyOn69n/w6ynT6b2LX2LuM=",
+ "exports/components/data-table.json": "sha256-m7NpvgvnJjjyRZX9rHAWYwUgfjf7N8+bWF0vckkNXnI=",
+ "exports/components/date-picker.json": "sha256-rNwHUE7pxq28p1aQ+icNn/y9/44ctJVpS66rTU2JsRI=",
+ "exports/components/description-list.json": "sha256-VWbbGvfkBSuAwbcYsqBAQBrVkn4Vkq2P3WwZtxjGBkk=",
+ "exports/components/diagnostics.json": "sha256-ermheSxXGAY77/ObrEPf51qR7IMLYql28nDuA6RqPBY=",
+ "exports/components/dialog.json": "sha256-ctY94Q5uazqdIoSLJJ/Y3n1+VWT/tLeSp8CoczMEieg=",
+ "exports/components/diff-view.json": "sha256-o+MurUlK+F9sfFdM69dUFiavUZ9x71gTuyLER6SCoo4=",
+ "exports/components/disclosure.json": "sha256-GbE+WEvkQL/h1CRdL5mmDC8cM4DqoBP2L21S4XfrZSA=",
+ "exports/components/drawer.json": "sha256-s6DyB2NRFzujnmyZCBjTq+0WkyR8VfunwRnu17Hjx14=",
+ "exports/components/editor-search.json": "sha256-6xtLN2oxQ/kz/gHUtHEh9Xz1j1jQy11SRCk1USo0ZU8=",
+ "exports/components/empty-state.json": "sha256-N8gAhJJR19VpYZkqV6OFu0ZHq3e1bVhOBMDptkiOEe8=",
+ "exports/components/error-state.json": "sha256-te22yGkEsatac2fmGv3F4fd9zjnIbatPtgOfTu+PFmI=",
+ "exports/components/field.json": "sha256-FCJryFVAlhiDzCuEjsWKo4g2pm9Jb0MXxM5p91dlKpU=",
+ "exports/components/fieldset.json": "sha256-yFWoJULeHV80sAsnIwKq1R0veqdKyxB/0/v9nImZB4E=",
+ "exports/components/file-browser.json": "sha256-2Tlk/zwzWuxEZbflWymfBSpr353uxtslC7eo/ZGmg2w=",
+ "exports/components/file-input.json": "sha256-CvE3woclpSp8hkqgcupgZy3/s4hqXHMMUhlk6Qs1rqQ=",
+ "exports/components/filterable-table.json": "sha256-6c29dQ0xcVDqYXMMgohP0skm2TUo/JqgwuuSvNZ6xDI=",
+ "exports/components/form-builder.json": "sha256-lmOSBBuKivZRdzDLrurF+cg1CHHJrDq41mHudRyJ5r4=",
+ "exports/components/i3-window-frame.json": "sha256-KBYx57+sCd0prtqY0xRYtO000tTtufVMCL56B5XOGzU=",
+ "exports/components/icon-button.json": "sha256-givivxuq5mcmrUQ8NLSLgvqFqRgWHXGM2E317Oi9/v4=",
+ "exports/components/kbd.json": "sha256-E1Ojgg9J0S7ro3XLGcwDiiNihA1O3QFSXf1IUpiuVeY=",
+ "exports/components/link.json": "sha256-5Q2uwiU0g69WvdGo1U3Jn5jaay+FY3XPumTSnwjNhek=",
+ "exports/components/list.json": "sha256-+Fzh1CDjpJwRyAQ+Bvizd0hoR4Jm3sm3nghAN93PrjU=",
+ "exports/components/loading-indicator.json": "sha256-KkPi52i9uFoP2WKqfmGlMwygYyApN/8vAl5LH1pwpes=",
+ "exports/components/menu.json": "sha256-Ufa/l3VJU1CD+SpCO8j5Pf78ScxPG+QD3rK0JUdf7C0=",
+ "exports/components/multiselect.json": "sha256-J2VzV0FsakvuLoX+8yNgp6euyFjND2GMnWY1FnkQiWw=",
+ "exports/components/number-field.json": "sha256-Ao9MqhMy1nRxL9gle1AoNplDUDuqX040LK3CSGs2bIQ=",
+ "exports/components/pagination.json": "sha256-cTsnLPlUFnzOOlZTkpUz2PmY8J2m2z5sxk/5ZL9Yhuo=",
+ "exports/components/popover.json": "sha256-HkJ150g5zUkb/iQqN0uuN/kL4uliwQhAIsBhjvG6W2E=",
+ "exports/components/progress.json": "sha256-nrKtOsV9BuuUI6e2zHo2l9UMeSZoLIimiJHm579Hdns=",
+ "exports/components/radio-group.json": "sha256-IwlxKnFzOGjJ9192Y9K+ezX+aAtrMABa6ePssB7bwK0=",
+ "exports/components/range.json": "sha256-fhEijJB1NOwa1mcg5IypweIDNwG+w4ZE0RGyQlpDUsE=",
+ "exports/components/repeater.json": "sha256-UEo//llQdVJDIVlxNlJVpKXs6/Fty4mRsCf9+iV6xes=",
+ "exports/components/search-field.json": "sha256-zIxtGgkIlR7MWmTQlbbR/ErYbtwUZ+dmka4lBqYl5bY=",
+ "exports/components/segmented-control.json": "sha256-pNUSFuXSR6u6Rp3yz4DDQ+mntSqzT1oJv6LJCa49Qxw=",
+ "exports/components/select.json": "sha256-vWnr6N316JDA9ft7J+pW8auONnRwNEpcfUDVkM5RT4A=",
+ "exports/components/settings-panel.json": "sha256-re3uQTt8HVPIFIwQHeQyXM8ty5YSXhiJraDK2QvpGOc=",
+ "exports/components/sidebar-nav.json": "sha256-5tTrxJDoDkAgoWI4w2qHfpE2gGHIVRP9Sw3vojUBk7A=",
+ "exports/components/skeleton.json": "sha256-MLEBpVvBSXPBtmg1x3wMXPhcPssg+fwNKvz/b+AbCAg=",
+ "exports/components/skip-link.json": "sha256-wbvhfKuGYnQzRyC6oj8z2l+p2283mtcgz4cb1e6NjAM=",
+ "exports/components/switch.json": "sha256-EcZ0LS9qFQ5RbF0gVEoggNi0T0ljFNQOimLBFhBE4ic=",
+ "exports/components/table.json": "sha256-fmpDW3/zcv46PG5X3HtxDsdie6Zuiwl2eVpesjuC1HE=",
+ "exports/components/tabs.json": "sha256-be5b2uoYQffej+HICEfALLc4lCvb7343bCw0VJlGRTQ=",
+ "exports/components/terminal.json": "sha256-TDaHzyst/MStEsQh6OmyKErNGVsYKLiReuj1qhHH1mk=",
+ "exports/components/text-field.json": "sha256-ZK7PcxjPvBgXx+hTP97rCBTSPSEjO/1nR6MRy918hSc=",
+ "exports/components/textarea.json": "sha256-4x/x6eXXo2aao/Dx5gSPrlKcXj6ztblnltTmrhpzm4g=",
+ "exports/components/time-picker.json": "sha256-J4gzGRbl2pt5Dax8giwl/Nzeqy/MW2eGkxQcIKEAfHE=",
+ "exports/components/timeline.json": "sha256-1tik8bOHu+sO2CI1hzgfDzA554N7789dStmbWWXXFr4=",
+ "exports/components/toast.json": "sha256-h+noqWcEh7HxybkZ7geHfw+BAmnuxwc1JqjgfjBWHo4=",
+ "exports/components/toolbar.json": "sha256-sB0fTIk7fgNXFjshKAKJQJd8W8kL7LmEcvXPIPUemiE=",
+ "exports/components/tooltip.json": "sha256-zHJOkbFWm8kVW4pUZNvO+RWzZO6o4abhNChnoK/8ePU=",
+ "exports/components/tree.json": "sha256-vx+JXco/UlIBtpKY7l6JlQn1MY45aQ56j+l0Ur6vRC8=",
+ "exports/components/wizard.json": "sha256-QzvuXUR2D5Xx74KpgTmlHsaq2cDmQEJ/5nh+ZDbDG1U=",
+ "exports/port-capabilities.json": "sha256-DiXhXfk0jMz/LEwoZXv/Kc8HP19FN/ax16RFnbQFMf8=",
"exports/recipes/button/component.css": "sha256-fO1HSQ+wy0Zku8pqVotCypnOH+iDz8SAX9GxMspxA8U=",
"exports/recipes/button/example.html": "sha256-6Jd+ynSweVG+DO3EUHUbEUNSEbj5+6+iBzqXU4YLtIs=",
"exports/recipes/button/foundation.css": "sha256-jm66ZdmdAhTyMVQIMKhzVZZm/NhB5ZbLq8g3UASzy98=",
"exports/recipes/button/LICENSE.md": "sha256-vVf/G6WKJRqbyGZCppbAxMh+UAJdSzaPt5xWUujehyU=",
- "exports/recipes/button/manifest.json": "sha256-3luqMDAS/1LEFotJqqkbVuuOdA/0svj5WXgA3Gd3gH0=",
+ "exports/recipes/button/manifest.json": "sha256-F53gXYmWmlcFnCqjGbt0tOxf9Y8uKkpZB8C/R1oVcSI=",
"exports/recipes/button/markup.html": "sha256-be2Beb08aKEqIKaDsxTq8IJdSdfNPJyWS2M5aav7R7k=",
- "exports/recipes/button/README.md": "sha256-PFptO8Sfyo2yzQoMnyf7+qotgB+Uols1JNNcZdj+9bg=",
+ "exports/recipes/button/README.md": "sha256-80dVa3TLTwhDpEaXVdkXftTNdzUISSIfCLjoSp/v7eU=",
"exports/recipes/button/template.html": "sha256-FfylFZ+qzMUFxQKnIdqJiYmC8p4F+cNxK8BJSTo8XU8=",
"exports/recipes/button/tokens.css": "sha256-AJa/NV2e+fHrwjzGqedaXaFmM54azgP/b9wytMJiVCs=",
"exports/recipes/button/two-instances.html": "sha256-HrqWaokDwmbQXfgRiFeyWToB617qs6c+t/UQLJs0Blk=",
@@ -1086,24 +1091,24 @@
"exports/recipes/dialog/example.html": "sha256-NfEbyJuZuMeGI56eQN6PW+EXPWfv8OjpngN0eMztvPQ=",
"exports/recipes/dialog/foundation.css": "sha256-jm66ZdmdAhTyMVQIMKhzVZZm/NhB5ZbLq8g3UASzy98=",
"exports/recipes/dialog/LICENSE.md": "sha256-vVf/G6WKJRqbyGZCppbAxMh+UAJdSzaPt5xWUujehyU=",
- "exports/recipes/dialog/manifest.json": "sha256-HGobBl2jdTaW36simdVaI8eA4OER0LhG8r9gusVpXjI=",
+ "exports/recipes/dialog/manifest.json": "sha256-oOFNDVTJqOuDPDd+167iDlcT1HQJSKVYJ19JqdgMg/Q=",
"exports/recipes/dialog/markup.html": "sha256-3KkpFAZ9Id+n/Pmpuu4Os4Wea88fXD39tHcFoCINEDQ=",
- "exports/recipes/dialog/README.md": "sha256-TprCvG8noK53sTTwJVCHD0V1zx6BUW+HP7reUSdyhVk=",
+ "exports/recipes/dialog/README.md": "sha256-1opuFssLS9hrVsviW1sRoOXq/l9P7pCwx5o/mD/lnpA=",
"exports/recipes/dialog/template.html": "sha256-ekYfQWlHu6z/dh7Wi1W3GZayMjEjxB5ru5nU7CKIqMg=",
"exports/recipes/dialog/tokens.css": "sha256-8v2razLbiqxJ36LPLf8rHQG219Ns6nFnyRGKJqh/evs=",
"exports/recipes/dialog/two-instances.html": "sha256-g3casyVMkw4tWfmMAkD3Aq9kp+I7vebgRqjir2H/52c=",
- "exports/recipes/text-field/component.css": "sha256-Oz8HGS0K4usbEkFFSKi93G9yUBnUass/Z8uQbOJZXNc=",
- "exports/recipes/text-field/example.html": "sha256-bgWf7wJ491bEm4esZkZzyuL263quAotSfoygX24ZkFU=",
+ "exports/recipes/text-field/component.css": "sha256-HLK6PSsbThQsRH4Y6wgRJXw4vWcrki2Vs0MZO6ANnGw=",
+ "exports/recipes/text-field/example.html": "sha256-t5lfDU+uh3gq1zaNtyPjyo1bRZ1kjRL/Niomvp9iguk=",
"exports/recipes/text-field/foundation.css": "sha256-jm66ZdmdAhTyMVQIMKhzVZZm/NhB5ZbLq8g3UASzy98=",
"exports/recipes/text-field/LICENSE.md": "sha256-vVf/G6WKJRqbyGZCppbAxMh+UAJdSzaPt5xWUujehyU=",
- "exports/recipes/text-field/manifest.json": "sha256-vgWhdku9jsH/2KoHM1IevuPZ5eN1BsE46QaN1Aj/C7g=",
+ "exports/recipes/text-field/manifest.json": "sha256-7U10sKwBOIQvZtIvDp/jWg224BkZ2tqppgto6jt3eCU=",
"exports/recipes/text-field/markup.html": "sha256-wARfGY6V60eMUhV8JNGMhY+EnikQvcPlSqkD5WPOULo=",
- "exports/recipes/text-field/README.md": "sha256-HpwPQAB3ombWhQi6qdKYU8fgIeJAxlbGFP8ovZEdVnw=",
+ "exports/recipes/text-field/README.md": "sha256-Y76lmDknYtjOnDPP/kAcDy0bOLeF7/0c6wJ5EWE1OhI=",
"exports/recipes/text-field/template.html": "sha256-IlSlLS7sPC3MLqIdxMRQUP4sFnn/58lwM3AFALtdY3c=",
- "exports/recipes/text-field/tokens.css": "sha256-Z7C9Hx+UzJAtRTBN08cB9BRDeTuCjEQr3xZyD2i0vgU=",
- "exports/recipes/text-field/two-instances.html": "sha256-JIl9HQHQPYXg+r8lkFfC0x50KKiLyNWAwYm9mdQXGGw=",
- "exports/theme.compact.md": "sha256-wIvg24me6vAnXYzWXdBmoJsTKtrBSm7GS9yCcb8wgxc=",
- "exports/tokens.resolved.json": "sha256-RSRMNUXS52R1kup7ka5S96aTGgpzVa7aYPwKQ6W78mU=",
+ "exports/recipes/text-field/tokens.css": "sha256-zjVcq7LwtSQfrFMkCNQ3qgqOctaVyaz3bTbWiXOvDVw=",
+ "exports/recipes/text-field/two-instances.html": "sha256-IHBsJlaIcd5hGRPnWVXegcrdrvG287OvtxoWBW+Yua4=",
+ "exports/theme.compact.md": "sha256-JSKpZk12od+qtrVK7NbrVMY/zYwpG41Wjg5CTqROl9A=",
+ "exports/tokens.resolved.json": "sha256-bXayCdQMks1SP9DAswzrBp0H09xuxsAmb1JbTSYceDg=",
"LICENSE.md": "sha256-Ih5+DpqcNXGWJX6BbYgpt6psmJi9lGcXGJzuiU7elE0=",
"schemas/json/theme.lock.schema.json": "sha256-y6m+IekX0jzgI6Rhel1Vx33fgz8RIT5A2OPyBL0qlXw=",
"spec/accessibility.md": "sha256-v0OBqI/EIrp4qIargTKTGld4OB6awm5yFGOImprAmh0=",
@@ -1144,13 +1149,13 @@
"spec/components/kbd.md": "sha256-ePP2aUzSxrY6kofr2hyOXG1LNt2X6qfjAn3D/CPSulg=",
"spec/components/link.md": "sha256-U6gy7cpFCS4vRhNDhSsfgEmdFghp6R/TxPri60gmtN4=",
"spec/components/list.md": "sha256-0vKj8KQBCIxT16436RwCr9UGr9m1jEuHTEzVJvflp/Q=",
- "spec/components/loading-indicator.md": "sha256-Nz6thMuU1pQRLWQopVR2vxKT6vHeB5wRDlD61JdHYrA=",
+ "spec/components/loading-indicator.md": "sha256-2f6AwU8Xq1PDXHKo5VjC7XoO9A8MZrS2xbfUBWCP9gg=",
"spec/components/menu.md": "sha256-3uljZ67SkAqeNTjZO12g1Z1myutuqMzwO45kCex9z84=",
"spec/components/multiselect.md": "sha256-/qFc5Y9z5MXvIWJlctXkEpdLauOTNLyf/CJt5YokTlg=",
"spec/components/number-field.md": "sha256-NS5+KRlqJ7sRh9OOiR5M9JkAty9jlhgxFtro1ItiGWU=",
"spec/components/pagination.md": "sha256-M77Hy8WWvcMAiZ3jGq37OTmdReLB4tOQR0v4vBQ2A88=",
"spec/components/popover.md": "sha256-Wwx/otpwO00iwrNGW0wsrsPPiUMzvKFhu+zlZmQiCJg=",
- "spec/components/progress.md": "sha256-I7GnDAGR4AUd1rICuRFm7xiXMpPpBBz3iUKtcRZze+k=",
+ "spec/components/progress.md": "sha256-dcLma9epcJ6qTSpm15k0vtdA4xrBkFN5f0krj50TUQs=",
"spec/components/radio-group.md": "sha256-FmzhuvFGRGs/RmqPNPMaR0VprTM3+YyX1IxlN6ffTms=",
"spec/components/range.md": "sha256-KzZBqVpLykhc22DnfsUQsuhVIMWI8MDW0eU0AWGRHUU=",
"spec/components/repeater.md": "sha256-a8nFWIE4fnlD6VBTJ2mDqvU+XjMR5qEXTLYVtFPINlA=",
@@ -1171,10 +1176,10 @@
"spec/components/timeline.md": "sha256-6CbjCtkUPHYk/x2Q+CHew9ZahoJB5RoujkQr8iEM+gc=",
"spec/components/toast.md": "sha256-yklzPt6YGS5BYuwEfeJSFgOnjvY+U7LsT4gOhBr7BxI=",
"spec/components/toolbar.md": "sha256-sdHLFiEMZfZkGnAmNZTMtuRmM3asshKnwC9N569OFcc=",
- "spec/components/tooltip.md": "sha256-QBHgaDiiPB/9VbOhpC2u8kydSv3XBQLquiEDN1hsDuQ=",
+ "spec/components/tooltip.md": "sha256-BaZV6dUGOZ1PfS/P4nvccUicQfqeW5APITKiDmAEPJQ=",
"spec/components/tree.md": "sha256-xzH6p2tk0R5fZ4uCs4AAKahHWG410WexZKTKPo/jHzM=",
"spec/components/wizard.md": "sha256-N+fEu9MTa4QwIjeJcMtlOKjZ3OdS5ebVH1tA+BSU8cs=",
- "spec/foundations.md": "sha256-P2lPH3Q67xXdaM1bvjZe0I5cDvPSrPLaV/Qzhzu0/QQ=",
+ "spec/foundations.md": "sha256-067YclZNA1bc93tN7BC7CUq6zwltS4eluBvM1PLL7jw=",
"spec/identity.md": "sha256-TrKV9nW1uFJMYUzZSGsa/vcXkD0NDIlcjCHJgNEz4YA=",
"spec/portability.md": "sha256-KGDmt7UGop7xbh1z07rkGqGZLFz9+BIPlr8XIXDm6o0=",
"theme.json": "sha256-4NYtr9+dtCjVshxiuC/YkB+7FzdUbd4E60lcZknHTLE="
@@ -3079,7 +3084,6 @@
"color.border.divider",
"color.code.caret",
"color.interaction.disabled.bg",
- "color.interaction.focus.ring-container",
"color.interaction.hover.bg",
"color.interaction.text-selection.bg",
"color.interaction.text-selection.text",
@@ -3099,6 +3103,7 @@
"focus.offset",
"focus.offset-invalid",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
diff --git a/exports/theme.compact.md b/exports/theme.compact.md
index 8e87cf54d..66bcfb665 100644
--- a/exports/theme.compact.md
+++ b/exports/theme.compact.md
@@ -1,5 +1,5 @@
# j3w1 UI Theme Spec — compact (4.0.0, profile: default)
-
+
Read this first; it is the smallest complete statement of the approved contract.
Pin a tag or commit and fetch every file at that revision (see `agents/consume.md`). Values marked PROPOSED are not approved.
@@ -33,8 +33,8 @@ Surfaces, text, borders, interaction, actions and status. The code, diagnostic,
| `color.surface.overlay` | `#241010` | `{color.primitive.ink.52}` | Dialogs and drawers.; use |
| `color.surface.accent` | `#3d0c0a` | `{color.primitive.red.40}` | The user's own content set apart from neighbouring surfaces, such as outgoing chat messages. text.default, text.bright, text.muted and text.link keep 4.5:1 on it; text.subtle does not (4.30), so secondary text on it uses text.muted (D-035).; use |
| `color.surface.input` | `#000000` | `{color.primitive.ink.0}` | Form-control fill.; use |
-| `color.surface.code` | `#000000` | `{color.primitive.ink.0}` | Editor background.; use |
-| `color.surface.terminal` | `#000000` | `{color.primitive.ink.0}` | Terminal background.; use |
+| `color.surface.code` | `#000000` | `{color.primitive.ink.0}` | Surface a static code block sits on, such as a document's pre: pure black like the canvas (D-023, D-039).; use |
+| `color.surface.terminal` | `#000000` | `{color.primitive.ink.0}` | Surface of a pane that hosts a terminal, around its cell grid (D-023, D-039).; use |
| `color.text.default` | `#e99499` | `{color.primitive.rose.700}` | Interface and body text.; use |
| `color.text.bright` | `#ffa2a7` | `{color.primitive.rose.800}` | Brighter rose interface labels and explicit semantic emphasis. Bold itself inherits color; content headings use text.heading (D-033).; use |
| `color.text.prose` | `#e99499` | `{color.text.default}` | Long-form reading and body text; rose, never an on-fill or heading shortcut (D-033).; use |
@@ -145,6 +145,7 @@ Surfaces, text, borders, interaction, actions and status. The code, diagnostic,
| `font.size.caption` | `11px` | Only with text.muted or lighter. |
| `focus.ring` | `1px dashed #e53935` | outline on controls and rows. |
| `focus.ring-container` | `2px solid #ffa2a7` | outline on focusable containers. |
+| `focus.ring-contrast` | `1px dashed #ffa2a7` | outline where the ordinary red ring would merge with what is under or beside it: controls on a fill and invalid fields beside the danger border; the control ring in the container colour (D-040). |
| `focus.offset` | `-2px` | outline-offset for controls. |
| `focus.offset-container` | `-3px` | outline-offset for containers. |
| `focus.offset-invalid` | `-4px` | outline-offset inside the 2px invalid border. |
@@ -170,7 +171,7 @@ Every interactive component declares which of these apply and demonstrates every
| selected, container inactive | `interaction.selection.inactive-bg` with `interaction.selection.inactive-text`; no ring | lightness drop between the two fills |
| disabled | `text.disabled`, `border.disabled`, `interaction.disabled.bg`; no hover or pressed styling; still focusable when `aria-disabled` | `disabled` / `aria-disabled`; `cursor: not-allowed` (rule 5) |
| invalid | border → `status.danger.border` at 2px; message in `status.danger.text` with the `✕` glyph; `aria-invalid`; `aria-describedby` | border width 1 → 2px; glyph; message |
-| invalid + focus-visible | the 2px danger border **and** the ring in `interaction.focus.ring-container` at `focus.offset-invalid` | double boundary |
+| invalid + focus-visible | the 2px danger border **and** `focus.ring-contrast` at `focus.offset-invalid` | double boundary |
| read-only | `text.default`; 1px dotted `border.divider` bottom; no fill; focusable; selectable | `readonly`; dotted edge |
| loading | size unchanged; a static `⋯` glyph replaces the leading icon; `aria-busy` | glyph; no animation under reduced motion |
| busy / indeterminate | static 45° stripes of `action.primary.bg` on `interaction.pressed.bg`; `aria-valuetext` | stripes |
@@ -182,7 +183,7 @@ Every interactive component declares which of these apply and demonstrates every
Rules that apply everywhere:
1. **Selection is a fill; focus is a ring.** Neither borrows the other's form. The ring must reach 3:1 on whatever it sits over: `#e53935` falls below it on `action.primary.bg` and `status.danger.fill`, so the ring recolours on those fills; it meets it on `interaction.selection.bg` (D-027), so a selected row keeps the ordinary control ring.
-2. **Focus ring (D-006; component mapping clarification D-015).** Controls and rows: `outline: 1px dashed {color.interaction.focus.ring}; outline-offset: -2px`. Focusable containers (panes, windows, dialogs, cards): `outline: 2px solid {color.interaction.focus.ring-container}; outline-offset: -3px`. On filled surfaces use the component's explicit ring mapping: primary buttons and checked controls use `interaction.focus.ring-container` where declared; destructive buttons use their declared on-fill text role. The selection fill is the exception and takes the ordinary ring, on the measurement in rule 1. Keep the control or container geometry independently of the colour mapping. `:focus:not(:focus-visible)` draws nothing. Forced-colors mode uses `Highlight`. A host focus indicator is never removed without this replacement.
+2. **Focus ring (D-006; component mapping clarification D-015).** Controls and rows: `outline: 1px dashed {color.interaction.focus.ring}; outline-offset: -2px`. Focusable containers (panes, windows, dialogs, cards): `outline: 2px solid {color.interaction.focus.ring-container}; outline-offset: -3px`. On filled surfaces use the component's explicit ring mapping: primary buttons and checked controls use `focus.ring-contrast` (the control ring in `interaction.focus.ring-container`, D-040) where declared; destructive buttons use their declared on-fill text role. The selection fill is the exception and takes the ordinary ring, on the measurement in rule 1. Keep the control or container geometry independently of the colour mapping. `:focus:not(:focus-visible)` draws nothing. Forced-colors mode uses `Highlight`. A host focus indicator is never removed without this replacement.
3. **Never colour-only.** Every state and every status carries a second channel: a glyph (`✕ ! ✓ i ·`), a border width, an underline pattern, or an ARIA state. Charts carry pattern fills.
4. **Hover changes fills and borders, never text colour alone**, and only on hover-capable pointers.
5. **Disabled never uses opacity.** Opacity leaks the background and breaks contrast accounting.
diff --git a/exports/theme.full.md b/exports/theme.full.md
index 5e0474064..ba82ab010 100644
--- a/exports/theme.full.md
+++ b/exports/theme.full.md
@@ -1,5 +1,5 @@
# j3w1 UI Theme Spec — full (4.0.0)
-
+
Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens.
Everything in one document: identity, foundations, every profile's resolved tokens, accessibility with the contrast report, portability, every component specification, the coverage ledger, the support table, the decision log and the references catalogue.
@@ -156,7 +156,7 @@ Every interactive component declares which of these apply and demonstrates every
| selected, container inactive | `interaction.selection.inactive-bg` with `interaction.selection.inactive-text`; no ring | lightness drop between the two fills |
| disabled | `text.disabled`, `border.disabled`, `interaction.disabled.bg`; no hover or pressed styling; still focusable when `aria-disabled` | `disabled` / `aria-disabled`; `cursor: not-allowed` (rule 5) |
| invalid | border → `status.danger.border` at 2px; message in `status.danger.text` with the `✕` glyph; `aria-invalid`; `aria-describedby` | border width 1 → 2px; glyph; message |
-| invalid + focus-visible | the 2px danger border **and** the ring in `interaction.focus.ring-container` at `focus.offset-invalid` | double boundary |
+| invalid + focus-visible | the 2px danger border **and** `focus.ring-contrast` at `focus.offset-invalid` | double boundary |
| read-only | `text.default`; 1px dotted `border.divider` bottom; no fill; focusable; selectable | `readonly`; dotted edge |
| loading | size unchanged; a static `⋯` glyph replaces the leading icon; `aria-busy` | glyph; no animation under reduced motion |
| busy / indeterminate | static 45° stripes of `action.primary.bg` on `interaction.pressed.bg`; `aria-valuetext` | stripes |
@@ -168,7 +168,7 @@ Every interactive component declares which of these apply and demonstrates every
Rules that apply everywhere:
1. **Selection is a fill; focus is a ring.** Neither borrows the other's form. The ring must reach 3:1 on whatever it sits over: `#e53935` falls below it on `action.primary.bg` and `status.danger.fill`, so the ring recolours on those fills; it meets it on `interaction.selection.bg` (D-027), so a selected row keeps the ordinary control ring.
-2. **Focus ring (D-006; component mapping clarification D-015).** Controls and rows: `outline: 1px dashed {color.interaction.focus.ring}; outline-offset: -2px`. Focusable containers (panes, windows, dialogs, cards): `outline: 2px solid {color.interaction.focus.ring-container}; outline-offset: -3px`. On filled surfaces use the component's explicit ring mapping: primary buttons and checked controls use `interaction.focus.ring-container` where declared; destructive buttons use their declared on-fill text role. The selection fill is the exception and takes the ordinary ring, on the measurement in rule 1. Keep the control or container geometry independently of the colour mapping. `:focus:not(:focus-visible)` draws nothing. Forced-colors mode uses `Highlight`. A host focus indicator is never removed without this replacement.
+2. **Focus ring (D-006; component mapping clarification D-015).** Controls and rows: `outline: 1px dashed {color.interaction.focus.ring}; outline-offset: -2px`. Focusable containers (panes, windows, dialogs, cards): `outline: 2px solid {color.interaction.focus.ring-container}; outline-offset: -3px`. On filled surfaces use the component's explicit ring mapping: primary buttons and checked controls use `focus.ring-contrast` (the control ring in `interaction.focus.ring-container`, D-040) where declared; destructive buttons use their declared on-fill text role. The selection fill is the exception and takes the ordinary ring, on the measurement in rule 1. Keep the control or container geometry independently of the colour mapping. `:focus:not(:focus-visible)` draws nothing. Forced-colors mode uses `Highlight`. A host focus indicator is never removed without this replacement.
3. **Never colour-only.** Every state and every status carries a second channel: a glyph (`✕ ! ✓ i ·`), a border width, an underline pattern, or an ARIA state. Charts carry pattern fills.
4. **Hover changes fills and borders, never text colour alone**, and only on hover-capable pointers.
5. **Disabled never uses opacity.** Opacity leaks the background and breaks contrast accounting.
@@ -226,6 +226,11 @@ Always keep textual markers and existing status icons.
### Code and terminal
+Two background pairs (D-039): `surface.code` and `surface.terminal` (pure
+black) are what a static code block or a terminal pane sits on; `code.bg` and
+`terminal.bg` (`#0c0909`) fill the inside of an editor and the cell grid of a
+terminal, where `terminal.bg` equals ANSI 0.
+
Editor surfaces:
- background `code.bg` (`#0c0909`), current line `code.current-line`
@@ -316,7 +321,9 @@ A popup opened by hovering follows the pointer:
- It moves again on pointer move, scroll and resize.
- A popup with nothing to operate takes no pointer events; one with a control
or link stays reachable and open while the pointer is inside it.
-- Either kind closes when the pointer leaves both the trigger and the popup.
+- Either kind closes when the pointer leaves both the trigger and the popup;
+ the reachable kind waits 300 ms first, so the pointer can cross between
+ them, and stays while keyboard focus is on its trigger or inside it.
Opened from the keyboard, the same popup anchors to its trigger: below it, or
above when there is no room below. This is a placement rule only; what opens a
@@ -367,8 +374,8 @@ contrast-critical on-fill text; measure the actual state pair. Role audit:
| `color.surface.overlay` | `#241010` | `{color.primitive.ink.52}` | Dialogs and drawers.; use |
| `color.surface.accent` | `#3d0c0a` | `{color.primitive.red.40}` | The user's own content set apart from neighbouring surfaces, such as outgoing chat messages. text.default, text.bright, text.muted and text.link keep 4.5:1 on it; text.subtle does not (4.30), so secondary text on it uses text.muted (D-035).; use |
| `color.surface.input` | `#000000` | `{color.primitive.ink.0}` | Form-control fill.; use |
-| `color.surface.code` | `#000000` | `{color.primitive.ink.0}` | Editor background.; use |
-| `color.surface.terminal` | `#000000` | `{color.primitive.ink.0}` | Terminal background.; use |
+| `color.surface.code` | `#000000` | `{color.primitive.ink.0}` | Surface a static code block sits on, such as a document's pre: pure black like the canvas (D-023, D-039).; use |
+| `color.surface.terminal` | `#000000` | `{color.primitive.ink.0}` | Surface of a pane that hosts a terminal, around its cell grid (D-023, D-039).; use |
| `color.text.default` | `#e99499` | `{color.primitive.rose.700}` | Interface and body text.; use |
| `color.text.bright` | `#ffa2a7` | `{color.primitive.rose.800}` | Brighter rose interface labels and explicit semantic emphasis. Bold itself inherits color; content headings use text.heading (D-033).; use |
| `color.text.prose` | `#e99499` | `{color.text.default}` | Long-form reading and body text; rose, never an on-fill or heading shortcut (D-033).; use |
@@ -456,7 +463,7 @@ contrast-critical on-fill text; measure the actual state pair. Role audit:
| `color.status.neutral.on-fill` | `#000000` | `{color.primitive.ink.0}` | Text on the neutral fill (4.71:1).; use |
| `color.status.neutral.tint` | `#241010` | `{color.primitive.ink.52}` | Neutral background tint.; use |
| `color.status.neutral.border` | `#a3676b` | `{color.primitive.rose.350}` | Neutral border.; use |
-| `color.code.bg` | `#0c0909` | `{color.primitive.ink.20}` | Editor background.; use |
+| `color.code.bg` | `#0c0909` | `{color.primitive.ink.20}` | Background inside a code editor, diff view or diagnostics list (D-039).; use |
| `color.code.current-line` | `#1c0a09` | `{color.primitive.ink.40}` | Current line background.; use |
| `color.code.gutter-bg` | `#0c0909` | `{color.primitive.ink.20}` | Gutter background.; use |
| `color.code.line-number` | `#ad7175` | `{color.primitive.rose.450}` | Line numbers (5.10:1; replaces the site's #7d1310).; use |
@@ -517,7 +524,7 @@ contrast-critical on-fill text; measure the actual state pair. Role audit:
| `color.diff.modified.gutter` | `#c9973f` | `{color.primitive.amber.500}` | Modified gutter mark and ~.; use |
| `color.diff.conflict-border` | `#f73f35` | `{color.primitive.red.850}` | Conflict block: double 1px border.; use |
| `color.diff.header-bg` | `#241010` | `{color.primitive.ink.52}` | Hunk header background.; use |
-| `color.terminal.bg` | `#0c0909` | `{color.primitive.ink.20}` | Terminal background.; use |
+| `color.terminal.bg` | `#0c0909` | `{color.primitive.ink.20}` | Terminal background. It fills a terminal's cell grid and equals ANSI 0 (D-039).; use |
| `color.terminal.fg` | `#e99499` | `{color.primitive.rose.700}` | Terminal foreground.; use |
| `color.terminal.cursor` | `#e99499` | `{color.primitive.rose.700}` | Terminal cursor.; use |
| `color.terminal.selection-bg` | `#911410` | `{color.primitive.red.350}` | Terminal selection.; use |
@@ -616,6 +623,7 @@ contrast-critical on-fill text; measure the actual state pair. Role audit:
| `density.comfortable.gap` | `4px` | |
| `focus.ring` | `1px dashed #e53935` | outline on controls and rows. |
| `focus.ring-container` | `2px solid #ffa2a7` | outline on focusable containers. |
+| `focus.ring-contrast` | `1px dashed #ffa2a7` | outline where the ordinary red ring would merge with what is under or beside it: controls on a fill and invalid fields beside the danger border; the control ring in the container colour (D-040). |
| `focus.offset` | `-2px` | outline-offset for controls. |
| `focus.offset-container` | `-3px` | outline-offset for containers. |
| `focus.offset-invalid` | `-4px` | outline-offset inside the 2px invalid border. |
@@ -746,7 +754,7 @@ contrast-critical on-fill text; measure the actual state pair. Role audit:
| `color.status.neutral.on-fill` | `#0c0909` | `{color.primitive.ink.20}` | dunst urgency_low foreground.; historical-only |
| `color.status.neutral.tint` | `#241010` | `{color.primitive.ink.52}` | Neutral background tint.; historical-only |
| `color.status.neutral.border` | `#a3676b` | `{color.primitive.rose.350}` | Neutral border.; historical-only |
-| `color.code.bg` | `#0c0909` | `{color.primitive.ink.20}` | Editor background.; historical-only |
+| `color.code.bg` | `#0c0909` | `{color.primitive.ink.20}` | Background inside a code editor, diff view or diagnostics list (D-039).; historical-only |
| `color.code.current-line` | `#1c0a09` | `{color.primitive.ink.40}` | Current line background.; historical-only |
| `color.code.gutter-bg` | `#0c0909` | `{color.primitive.ink.20}` | Gutter background.; historical-only |
| `color.code.line-number` | `#7d1310` | `{color.primitive.red.200}` | color8, as vim rendered line numbers.; historical-only |
@@ -807,7 +815,7 @@ contrast-critical on-fill text; measure the actual state pair. Role audit:
| `color.diff.modified.gutter` | `#c9973f` | `{color.primitive.amber.500}` | Modified gutter mark and ~.; historical-only |
| `color.diff.conflict-border` | `#f73f35` | `{color.primitive.red.850}` | Conflict block: double 1px border.; historical-only |
| `color.diff.header-bg` | `#241010` | `{color.primitive.ink.52}` | Hunk header background.; historical-only |
-| `color.terminal.bg` | `#0c0909` | `{color.primitive.ink.20}` | Terminal background.; historical-only |
+| `color.terminal.bg` | `#0c0909` | `{color.primitive.ink.20}` | Terminal background. It fills a terminal's cell grid and equals ANSI 0 (D-039).; historical-only |
| `color.terminal.fg` | `#e99499` | `{color.primitive.rose.700}` | Terminal foreground.; historical-only |
| `color.terminal.cursor` | `#e99499` | `{color.primitive.rose.700}` | Terminal cursor.; historical-only |
| `color.terminal.selection-bg` | `#911410` | `{color.primitive.red.350}` | Terminal selection.; historical-only |
@@ -862,8 +870,8 @@ contrast-critical on-fill text; measure the actual state pair. Role audit:
| `color.surface.overlay` | `#241010` | `{color.primitive.ink.52}` | Dialogs and drawers.; blocked |
| `color.surface.accent` | `#3d0c0a` | `{color.primitive.red.40}` | The user's own content set apart from neighbouring surfaces, such as outgoing chat messages. text.default, text.bright, text.muted and text.link keep 4.5:1 on it; text.subtle does not (4.30), so secondary text on it uses text.muted (D-035).; blocked |
| `color.surface.input` | `#000000` | `{color.primitive.ink.0}` | Form-control fill.; blocked |
-| `color.surface.code` | `#000000` | `{color.primitive.ink.0}` | Editor background.; blocked |
-| `color.surface.terminal` | `#000000` | `{color.primitive.ink.0}` | Terminal background.; blocked |
+| `color.surface.code` | `#000000` | `{color.primitive.ink.0}` | Surface a static code block sits on, such as a document's pre: pure black like the canvas (D-023, D-039).; blocked |
+| `color.surface.terminal` | `#000000` | `{color.primitive.ink.0}` | Surface of a pane that hosts a terminal, around its cell grid (D-023, D-039).; blocked |
| `color.text.default` | `#e99499` | `{color.primitive.rose.700}` | Interface and body text.; blocked |
| `color.text.bright` | `#ffa2a7` | `{color.primitive.rose.800}` | Brighter rose interface labels and explicit semantic emphasis. Bold itself inherits color; content headings use text.heading (D-033).; blocked |
| `color.text.prose` | `#e99499` | `{color.text.default}` | Long-form reading and body text; rose, never an on-fill or heading shortcut (D-033).; blocked |
@@ -951,7 +959,7 @@ contrast-critical on-fill text; measure the actual state pair. Role audit:
| `color.status.neutral.on-fill` | `#000000` | `{color.primitive.ink.0}` | Text on the neutral fill (4.71:1).; blocked |
| `color.status.neutral.tint` | `#241010` | `{color.primitive.ink.52}` | Neutral background tint.; blocked |
| `color.status.neutral.border` | `#a3676b` | `{color.primitive.rose.350}` | Neutral border.; blocked |
-| `color.code.bg` | `#0c0909` | `{color.primitive.ink.20}` | Editor background.; blocked |
+| `color.code.bg` | `#0c0909` | `{color.primitive.ink.20}` | Background inside a code editor, diff view or diagnostics list (D-039).; blocked |
| `color.code.current-line` | `#1c0a09` | `{color.primitive.ink.40}` | Current line background.; blocked |
| `color.code.gutter-bg` | `#0c0909` | `{color.primitive.ink.20}` | Gutter background.; blocked |
| `color.code.line-number` | `#ad7175` | `{color.primitive.rose.450}` | Line numbers (5.10:1; replaces the site's #7d1310).; blocked |
@@ -1002,7 +1010,7 @@ contrast-critical on-fill text; measure the actual state pair. Role audit:
| `color.diff.modified.gutter` | `#c9973f` | `{color.primitive.amber.500}` | Modified gutter mark and ~.; blocked |
| `color.diff.conflict-border` | `#f73f35` | `{color.primitive.red.850}` | Conflict block: double 1px border.; blocked |
| `color.diff.header-bg` | `#241010` | `{color.primitive.ink.52}` | Hunk header background.; blocked |
-| `color.terminal.bg` | `#0c0909` | `{color.primitive.ink.20}` | Terminal background.; blocked |
+| `color.terminal.bg` | `#0c0909` | `{color.primitive.ink.20}` | Terminal background. It fills a terminal's cell grid and equals ANSI 0 (D-039).; blocked |
| `color.terminal.fg` | `#e99499` | `{color.primitive.rose.700}` | Terminal foreground.; blocked |
| `color.terminal.cursor` | `#e99499` | `{color.primitive.rose.700}` | Terminal cursor.; blocked |
| `color.terminal.selection-bg` | `#911410` | `{color.primitive.red.350}` | Terminal selection.; blocked |
@@ -5867,8 +5875,7 @@ set `aria-valuetext` ("Preparing"); the container sets `aria-busy` for the
duration. Completion and failure are announced through a polite live region,
not by the bar. Text meets 4.5:1; the track boundary and error fill 3:1. The
primary fill against the track is waived because the value is stated in
-text; a host that must meet 3:1 graphically raises the track to
-{color.surface.canvas}.
+text.
#### Portability
@@ -5922,8 +5929,8 @@ the result when it arrives.
#### Accessibility
`aria-busy` lets assistive technology wait for the subtree to settle and
-announce the label once. The label names the object ("Loading fonts"); a host
-that must hide it inline keeps it visually hidden, never absent. Nothing
+announce the label once. The label names the object ("Loading fonts") and is
+always visible, inline as in a block; the glyph never appears without it. Nothing
moves, so there is no reduced-motion branch to get wrong. Label and glyph meet
4.5:1.
@@ -5970,7 +5977,7 @@ Parts as listed in the anatomy; no arrow, shadow or radius.
| State | Visual | Non-colour channel |
| --- | --- | --- |
| default | trigger at rest; popup shown for the demonstration | `aria-describedby` on the trigger |
-| hover | trigger background → {color.action.tertiary.hover-bg}; popup after 300 ms | cursor: pointer; the popup |
+| hover | trigger background → {color.action.tertiary.hover-bg}; popup after 300 ms; it hides 300 ms after the pointer leaves trigger and popup | cursor: pointer; the popup |
| focus-visible | 1px dashed {color.interaction.focus.ring} at −2px on the trigger; popup at once | the ring; the popup |
| open | popup visible, 1px {color.border.overlay} on {color.surface.raised} | popup in the accessibility tree |
| closed | popup absent; trigger unchanged | `hidden`; the description is still read from the DOM |
@@ -7632,6 +7639,7 @@ ordered by topic.
| D-032 | Coral slot 6 and a fixed prompt background | accepted | 2026-09-26 | owner (explicit selection of coral and the PowerShell prompt look) |
| D-035 | An accent surface for the user's own content | accepted | 2026-10-06 | owner (Telegram acceptance: own and other people's messages too similar; chose #3d0c0a from a side-by-side comparison) |
| D-036 | A translucent text-selection tint | accepted | 2026-10-06 | owner (Telegram acceptance: Android text selection barely visible; chose 50% from a side-by-side comparison) |
+| D-039 | Code and terminal backgrounds: two pairs, two scopes | accepted | 2026-10-15 | owner (explicit choice: keep both, scope them) |
#### Typography and density
@@ -7651,6 +7659,7 @@ ordered by topic.
| D-015 | Clarify component mappings exposed by consumption acceptance | proposed | 2026-09-07 | — |
| D-024 | Distinguish links from body text and headings | accepted | 2026-09-08 | owner (explicit preview correction) |
| D-025 | Theme interactive controls throughout the portal and demo | accepted | 2026-09-09 | owner (explicit native-control replacement request) |
+| D-040 | One contrast focus ring for fills and invalid fields | accepted | 2026-10-15 | owner (explicit choice: one role, focus.ring-contrast) |
#### Site, tools and distribution
@@ -7783,30 +7792,9 @@ check); the rules above still hold.
### D-031 Select the checks a change needs; shard the deployment matrix
-**Decision.** CI is `select` → checks → `release-gate`. The rules stay here:
-no spec section or guide owns CI, and `scripts/ci/select.mjs` and `AGENTS.md`
-carry only parts.
-
-- `select` reads the changed paths and `scripts/ci/proofs.json`; a path gets
- cheaper only when a rule claims it. Unclaimed paths and control files
- (workflows, the selector and registry, `package.json`, the lockfile, the
- Playwright configs) run every check. On a pull request the base commit's
- control list also applies, so a change cannot make itself cheaper. A file a
- browser spec imports runs that spec and counts as a site change.
-- A pull request runs only the selected checks, unit tests and build in
- parallel; browser subsets write no evidence (D-028).
-- A push to `main` that changes the site runs the whole matrix in shards
- (desktop in four parts; projects read from the Playwright config), with
- packed consumers in parallel. Blob reports merge once into the evidence
- reporter, which refuses a missing shard or configured test; then the
- verification report and deployment. No site change, no deployment. Changed
- paths count from the last commit that reached Pages.
-- `release-gate`, the only required check, recomputes the plan from Git with
- the same code and checks each job ran as planned and passed.
-- `fullyParallel`, two workers per CI job, zero retries. The page axe scan is
- two tests (colour contrast; every other rule) covering exactly the tagged
- rules. Only an unnarrowed `playwright test`, or the merge of every shard,
- writes evidence.
+**Decision.** CI is `select` → checks → `release-gate`: a change runs the
+checks its changed paths need, and a push to `main` that changes the site
+runs the whole matrix in shards before it deploys. Rules: `docs/ci.md`.
**Why.** `main` ran every check whatever changed: a terminal-kit-only change
took 63 minutes to deploy, and the browser suite ran on one worker for 24.7
@@ -8061,6 +8049,23 @@ r11 found the over-the-text limit after the owner's choice.
chose 50% from the side-by-side comparison after the review rejected the opaque
fill.
+### D-039 Code and terminal backgrounds: two pairs, two scopes
+
+**Decision.** Both pairs stay, with their values. `surface.code` and
+`surface.terminal` (pure black, D-023) are what a static code block or a
+terminal pane sits on; `code.bg` and `terminal.bg` (`#0c0909`) fill the inside
+of an editor and a terminal's cell grid, where `terminal.bg` equals ANSI 0.
+Rule: `spec/foundations.md`, Code and terminal.
+
+**Why.** Both pairs carried the same descriptions ("Editor background",
+"Terminal background") with different values, so a consumer could not tell
+which to use. Rejected: merging into pure black, which changes the terminal
+background of the four terminal ports (Claude Code, Ghostty, Orca, Warp) and
+Obsidian's code background; merging into `#0c0909`, which partly reverses
+D-023 and changes the code block Windows maps from `surface.code`.
+
+**Status.** accepted · 2026-10-15 · owner, choosing "Keep both, scope them".
+
### D-009 Density modes
**Decision.** Density modes are tokens, set with `data-density` on any
@@ -8216,6 +8221,22 @@ selection) and one-off dropdowns (duplicate behaviour).
**Status.** accepted · 2026-09-09 · owner.
+### D-040 One contrast focus ring for fills and invalid fields
+
+**Decision.** A composite role, `focus.ring-contrast`: the 1px dashed control
+ring in `interaction.focus.ring-container`. Controls on a fill (checked,
+mixed, primary) and invalid fields beside the danger border use it wherever
+the ordinary red ring would merge with what is under or beside it; containers
+keep `focus.ring-container`. Rendering is unchanged. Rule:
+`spec/foundations.md`, rule 2 and the state table.
+
+**Why.** Twelve component stylesheets wrote the same ring out longhand. A role
+names it once for every consumer and port. Rejected: keeping it written out;
+`focus.ring-on-fill`, which would misname the eight invalid-field uses.
+
+**Status.** accepted · 2026-10-15 · owner, choosing a new role and then the
+name `focus.ring-contrast` for all twelve uses. Builds on D-006 (proposed).
+
### D-016 Pinned release comparison report and historical rendering
**Decision.** A release comparison report (schema version 1) records both
diff --git a/exports/token-usage.json b/exports/token-usage.json
index 2f639fd8d..9307774cc 100644
--- a/exports/token-usage.json
+++ b/exports/token-usage.json
@@ -28,7 +28,8 @@
"provenance": null,
"aliases": [],
"usedByAliases": [
- "focus.ring"
+ "focus.ring",
+ "focus.ring-contrast"
],
"unmappedPorts": [
{"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/border.width.default","line":37}},
@@ -176,7 +177,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/breakpoint/lg",
- "line": 517
+ "line": 534
},
"provenance": null,
"aliases": [],
@@ -186,11 +187,11 @@
{"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/breakpoint.lg","line":134}},
{"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/breakpoint.lg","line":75}},
{"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/breakpoint.lg","line":75}},
- {"port":"obsidian","reason":"breakpoint.lg: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/breakpoint.lg","line":698}},
+ {"port":"obsidian","reason":"breakpoint.lg: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/breakpoint.lg","line":699}},
{"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/breakpoint.lg","line":81}},
- {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/breakpoint.lg","line":1591}},
+ {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/breakpoint.lg","line":1592}},
{"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/breakpoint.lg","line":68}},
- {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/breakpoint.lg","line":2509}}
+ {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/breakpoint.lg","line":2510}}
],
"uses": [],
"contrast": []
@@ -211,7 +212,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/breakpoint/md",
- "line": 511
+ "line": 528
},
"provenance": null,
"aliases": [],
@@ -221,11 +222,11 @@
{"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/breakpoint.md","line":135}},
{"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/breakpoint.md","line":76}},
{"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/breakpoint.md","line":76}},
- {"port":"obsidian","reason":"breakpoint.md: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/breakpoint.md","line":697}},
+ {"port":"obsidian","reason":"breakpoint.md: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/breakpoint.md","line":698}},
{"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/breakpoint.md","line":82}},
- {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/breakpoint.md","line":1590}},
+ {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/breakpoint.md","line":1591}},
{"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/breakpoint.md","line":69}},
- {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/breakpoint.md","line":2508}}
+ {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/breakpoint.md","line":2509}}
],
"uses": [],
"contrast": []
@@ -246,7 +247,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/breakpoint/sm",
- "line": 505
+ "line": 522
},
"provenance": null,
"aliases": [],
@@ -256,11 +257,11 @@
{"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/breakpoint.sm","line":136}},
{"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/breakpoint.sm","line":77}},
{"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/breakpoint.sm","line":77}},
- {"port":"obsidian","reason":"breakpoint.sm: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/breakpoint.sm","line":696}},
+ {"port":"obsidian","reason":"breakpoint.sm: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/breakpoint.sm","line":697}},
{"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/breakpoint.sm","line":83}},
- {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/breakpoint.sm","line":1589}},
+ {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/breakpoint.sm","line":1590}},
{"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/breakpoint.sm","line":70}},
- {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/breakpoint.sm","line":2507}}
+ {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/breakpoint.sm","line":2508}}
],
"uses": [],
"contrast": []
@@ -281,7 +282,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/breakpoint/xs",
- "line": 498
+ "line": 515
},
"provenance": null,
"aliases": [],
@@ -291,11 +292,11 @@
{"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/breakpoint.xs","line":137}},
{"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/breakpoint.xs","line":78}},
{"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/breakpoint.xs","line":78}},
- {"port":"obsidian","reason":"breakpoint.xs: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/breakpoint.xs","line":695}},
+ {"port":"obsidian","reason":"breakpoint.xs: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/breakpoint.xs","line":696}},
{"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/breakpoint.xs","line":84}},
- {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/breakpoint.xs","line":1588}},
+ {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/breakpoint.xs","line":1589}},
{"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/breakpoint.xs","line":71}},
- {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/breakpoint.xs","line":2506}}
+ {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/breakpoint.xs","line":2507}}
],
"uses": [],
"contrast": []
@@ -373,7 +374,7 @@
{"port":"claude-code","reason":"Interface colour role that no Claude Code theme key takes.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/color.action.destructive.filled-bg","line":139}},
{"port":"codex","reason":"Interface colour role; a Codex tmTheme colours code only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/color.action.destructive.filled-bg","line":80}},
{"port":"ghostty","reason":"Interface colour role; a terminal theme file carries terminal colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/color.action.destructive.filled-bg","line":80}},
- {"port":"obsidian","reason":"Native desktop warning/confirmation fills and their hover/mobile-tap variants consume background-modifier-error/error-hover, owned by status.danger.fill; mobile warning uses interactive-normal. No independent filled-bg assignment is claimed.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/color.action.destructive.filled-bg","line":710}},
+ {"port":"obsidian","reason":"Native desktop warning/confirmation fills and their hover/mobile-tap variants consume background-modifier-error/error-hover, owned by status.danger.fill; mobile warning uses interactive-normal. No independent filled-bg assignment is claimed.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/color.action.destructive.filled-bg","line":711}},
{"port":"orca","reason":"Interface colour role; a terminal theme file carries terminal colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/color.action.destructive.filled-bg","line":86}},
{"port":"telegram","reason":"color.action.destructive.filled-bg has no separate native hook in this projection; related controls share the declared canonical role instead.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/color.action.destructive.filled-bg","line":1418}},
{"port":"warp","reason":"Interface colour role; a terminal theme file carries terminal colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/color.action.destructive.filled-bg","line":73}},
@@ -3482,7 +3483,7 @@
"group": "code",
"css": "#0c0909",
"variable": "--color-code-bg",
- "description": "Editor background.",
+ "description": "Background inside a code editor, diff view or diagnostics list (D-039).",
"status": "observed",
"deprecated": false,
"eligibility": {
@@ -6989,7 +6990,8 @@
"color.primitive.rose.800"
],
"usedByAliases": [
- "focus.ring-container"
+ "focus.ring-container",
+ "focus.ring-contrast"
],
"unmappedPorts": [
{"port":"chatgpt","reason":"Focus, hover, pressed and selection colours are derived by ChatGPT from the accent and contrast; only the accent is set.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/color.interaction.focus.ring-container","line":143}},
@@ -8569,14 +8571,14 @@
],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Focus, hover, pressed and selection colours are derived by ChatGPT from the accent and contrast; only the accent is set.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/color.interaction.text-selection.tint","line":380}},
- {"port":"claude-code","reason":"Interface colour role that no Claude Code theme key takes.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/color.interaction.text-selection.tint","line":457}},
- {"port":"codex","reason":"Interface colour role; a Codex tmTheme colours code only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/color.interaction.text-selection.tint","line":403}},
- {"port":"ghostty","reason":"Interface colour role; a terminal theme file carries terminal colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/color.interaction.text-selection.tint","line":403}},
- {"port":"obsidian","reason":"Obsidian keeps the text colour inside a selection (rose 3.96:1 on --text-selection, IMPLEMENTATION.md), so the tint fits it; adopting it changes the Obsidian artifact and needs its own import check, so --text-selection keeps text-selection.bg for now.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/color.interaction.text-selection.tint","line":715}},
- {"port":"orca","reason":"Interface colour role; a terminal theme file carries terminal colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/color.interaction.text-selection.tint","line":407}},
- {"port":"warp","reason":"Interface colour role; a terminal theme file carries terminal colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/color.interaction.text-selection.tint","line":398}},
- {"port":"windows","reason":"The Windows adapters retain native selection foregrounds and their existing opaque selection or marquee mappings; no host requiring this tint is admitted.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/color.interaction.text-selection.tint","line":2524}}
+ {"port":"chatgpt","reason":"Focus, hover, pressed and selection colours are derived by ChatGPT from the accent and contrast; only the accent is set.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/color.interaction.text-selection.tint","line":381}},
+ {"port":"claude-code","reason":"Interface colour role that no Claude Code theme key takes.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/color.interaction.text-selection.tint","line":458}},
+ {"port":"codex","reason":"Interface colour role; a Codex tmTheme colours code only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/color.interaction.text-selection.tint","line":404}},
+ {"port":"ghostty","reason":"Interface colour role; a terminal theme file carries terminal colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/color.interaction.text-selection.tint","line":404}},
+ {"port":"obsidian","reason":"Obsidian keeps the text colour inside a selection (rose 3.96:1 on --text-selection, IMPLEMENTATION.md), so the tint fits it; adopting it changes the Obsidian artifact and needs its own import check, so --text-selection keeps text-selection.bg for now.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/color.interaction.text-selection.tint","line":716}},
+ {"port":"orca","reason":"Interface colour role; a terminal theme file carries terminal colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/color.interaction.text-selection.tint","line":408}},
+ {"port":"warp","reason":"Interface colour role; a terminal theme file carries terminal colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/color.interaction.text-selection.tint","line":399}},
+ {"port":"windows","reason":"The Windows adapters retain native selection foregrounds and their existing opaque selection or marquee mappings; no host requiring this tint is admitted.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/color.interaction.text-selection.tint","line":2525}}
],
"uses": [
{"kind":"contrast","component":null,"part":null,"state":null,"variant":null,"surface":"color.interaction.text-selection.tint","nativeKey":null,"port":null,"source":{"file":"spec/contrast.json","pointer":"/pairs/74","line":78}},
@@ -8757,15 +8759,15 @@
"color.interaction.text-selection.tint"
],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Primitive; ports consume roles, never primitives.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/color.primitive.alpha.red-50","line":381}},
- {"port":"claude-code","reason":"Primitive; ports consume roles, never primitives.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/color.primitive.alpha.red-50","line":458}},
- {"port":"codex","reason":"Primitive; ports consume roles, never primitives.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/color.primitive.alpha.red-50","line":404}},
- {"port":"ghostty","reason":"Primitive; ports consume roles, never primitives.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/color.primitive.alpha.red-50","line":404}},
- {"port":"obsidian","reason":"Inspection-only primitive; Obsidian consumes semantic roles, never primitives.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/color.primitive.alpha.red-50","line":714}},
- {"port":"orca","reason":"Primitive; ports consume roles, never primitives.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/color.primitive.alpha.red-50","line":408}},
+ {"port":"chatgpt","reason":"Primitive; ports consume roles, never primitives.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/color.primitive.alpha.red-50","line":382}},
+ {"port":"claude-code","reason":"Primitive; ports consume roles, never primitives.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/color.primitive.alpha.red-50","line":459}},
+ {"port":"codex","reason":"Primitive; ports consume roles, never primitives.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/color.primitive.alpha.red-50","line":405}},
+ {"port":"ghostty","reason":"Primitive; ports consume roles, never primitives.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/color.primitive.alpha.red-50","line":405}},
+ {"port":"obsidian","reason":"Inspection-only primitive; Obsidian consumes semantic roles, never primitives.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/color.primitive.alpha.red-50","line":715}},
+ {"port":"orca","reason":"Primitive; ports consume roles, never primitives.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/color.primitive.alpha.red-50","line":409}},
{"port":"telegram","reason":"Primitives are blocked inspection values; Telegram consumes semantic roles only.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/color.primitive.alpha.red-50","line":1357}},
- {"port":"warp","reason":"Primitive; ports consume roles, never primitives.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/color.primitive.alpha.red-50","line":399}},
- {"port":"windows","reason":"Primitive inspection value; Windows consumes canonical semantic roles only.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/color.primitive.alpha.red-50","line":2522}}
+ {"port":"warp","reason":"Primitive; ports consume roles, never primitives.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/color.primitive.alpha.red-50","line":400}},
+ {"port":"windows","reason":"Primitive inspection value; Windows consumes canonical semantic roles only.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/color.primitive.alpha.red-50","line":2523}}
],
"uses": [],
"contrast": []
@@ -11257,15 +11259,15 @@
"color.surface.accent"
],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Primitive; ports consume roles, never primitives.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/color.primitive.red.40","line":382}},
- {"port":"claude-code","reason":"Primitive; ports consume roles, never primitives.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/color.primitive.red.40","line":459}},
- {"port":"codex","reason":"Primitive; ports consume roles, never primitives.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/color.primitive.red.40","line":405}},
- {"port":"ghostty","reason":"Primitive; ports consume roles, never primitives.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/color.primitive.red.40","line":405}},
- {"port":"obsidian","reason":"Inspection-only primitive; Obsidian consumes semantic roles, never primitives.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/color.primitive.red.40","line":713}},
- {"port":"orca","reason":"Primitive; ports consume roles, never primitives.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/color.primitive.red.40","line":409}},
+ {"port":"chatgpt","reason":"Primitive; ports consume roles, never primitives.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/color.primitive.red.40","line":383}},
+ {"port":"claude-code","reason":"Primitive; ports consume roles, never primitives.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/color.primitive.red.40","line":460}},
+ {"port":"codex","reason":"Primitive; ports consume roles, never primitives.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/color.primitive.red.40","line":406}},
+ {"port":"ghostty","reason":"Primitive; ports consume roles, never primitives.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/color.primitive.red.40","line":406}},
+ {"port":"obsidian","reason":"Inspection-only primitive; Obsidian consumes semantic roles, never primitives.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/color.primitive.red.40","line":714}},
+ {"port":"orca","reason":"Primitive; ports consume roles, never primitives.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/color.primitive.red.40","line":410}},
{"port":"telegram","reason":"Primitives are blocked inspection values; Telegram consumes semantic roles only.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/color.primitive.red.40","line":1311}},
- {"port":"warp","reason":"Primitive; ports consume roles, never primitives.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/color.primitive.red.40","line":400}},
- {"port":"windows","reason":"Primitive inspection value; Windows consumes canonical semantic roles only.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/color.primitive.red.40","line":2521}}
+ {"port":"warp","reason":"Primitive; ports consume roles, never primitives.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/color.primitive.red.40","line":401}},
+ {"port":"windows","reason":"Primitive inspection value; Windows consumes canonical semantic roles only.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/color.primitive.red.40","line":2522}}
],
"uses": [],
"contrast": []
@@ -13850,7 +13852,7 @@
{"port":"claude-code","reason":"Interface colour role that no Claude Code theme key takes.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/color.status.warning.tint","line":342}},
{"port":"codex","reason":"Interface colour role; a Codex tmTheme colours code only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/color.status.warning.tint","line":278}},
{"port":"ghostty","reason":"Interface colour role; a terminal theme file carries terminal colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/color.status.warning.tint","line":297}},
- {"port":"obsidian","reason":"No consumer for background-modifier-warning/warning-hover in audited Obsidian 1.13.4/1.13.7; warning callouts compute their tint from callout-warning, not this exact tint role.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/color.status.warning.tint","line":711}},
+ {"port":"obsidian","reason":"No consumer for background-modifier-warning/warning-hover in audited Obsidian 1.13.4/1.13.7; warning callouts compute their tint from callout-warning, not this exact tint role.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/color.status.warning.tint","line":712}},
{"port":"orca","reason":"Interface colour role; a terminal theme file carries terminal colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/color.status.warning.tint","line":303}},
{"port":"telegram","reason":"color.status.warning.tint has no separate native hook in this projection; related controls share the declared canonical role instead.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/color.status.warning.tint","line":1425}},
{"port":"warp","reason":"Interface colour role; a terminal theme file carries terminal colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/color.status.warning.tint","line":291}},
@@ -13906,14 +13908,14 @@
],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"ChatGPT has one background and no separate surface for the user's own messages.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/color.surface.accent","line":383}},
- {"port":"claude-code","reason":"Claude Code's userMessageBackground keeps color.interaction.selection.bg; adopting color.surface.accent there is a separate change for this port.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/color.surface.accent","line":460}},
- {"port":"codex","reason":"Interface colour role; a Codex tmTheme colours code only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/color.surface.accent","line":406}},
- {"port":"ghostty","reason":"Interface colour role; a terminal theme file carries terminal colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/color.surface.accent","line":406}},
- {"port":"obsidian","reason":"Obsidian has no surface for the user's own messages.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/color.surface.accent","line":716}},
- {"port":"orca","reason":"Interface colour role; a terminal theme file carries terminal colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/color.surface.accent","line":410}},
- {"port":"warp","reason":"Interface colour role; a terminal theme file carries terminal colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/color.surface.accent","line":401}},
- {"port":"windows","reason":"Outgoing-message surfaces are outside the Windows visual adapter scope; native application content remains unchanged.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/color.surface.accent","line":2523}}
+ {"port":"chatgpt","reason":"ChatGPT has one background and no separate surface for the user's own messages.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/color.surface.accent","line":384}},
+ {"port":"claude-code","reason":"Claude Code's userMessageBackground keeps color.interaction.selection.bg; adopting color.surface.accent there is a separate change for this port.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/color.surface.accent","line":461}},
+ {"port":"codex","reason":"Interface colour role; a Codex tmTheme colours code only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/color.surface.accent","line":407}},
+ {"port":"ghostty","reason":"Interface colour role; a terminal theme file carries terminal colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/color.surface.accent","line":407}},
+ {"port":"obsidian","reason":"Obsidian has no surface for the user's own messages.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/color.surface.accent","line":717}},
+ {"port":"orca","reason":"Interface colour role; a terminal theme file carries terminal colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/color.surface.accent","line":411}},
+ {"port":"warp","reason":"Interface colour role; a terminal theme file carries terminal colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/color.surface.accent","line":402}},
+ {"port":"windows","reason":"Outgoing-message surfaces are outside the Windows visual adapter scope; native application content remains unchanged.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/color.surface.accent","line":2524}}
],
"uses": [
{"kind":"contrast","component":null,"part":null,"state":null,"variant":null,"surface":"color.surface.accent","nativeKey":null,"port":null,"source":{"file":"spec/contrast.json","pointer":"/pairs/70","line":74}},
@@ -14618,7 +14620,7 @@
"group": "surface",
"css": "#000000",
"variable": "--color-surface-code",
- "description": "Editor background.",
+ "description": "Surface a static code block sits on, such as a document's pre: pure black like the canvas (D-023, D-039).",
"status": "approved",
"deprecated": false,
"eligibility": {
@@ -16154,7 +16156,7 @@
"group": "surface",
"css": "#000000",
"variable": "--color-surface-terminal",
- "description": "Terminal background.",
+ "description": "Surface of a pane that hosts a terminal, around its cell grid (D-023, D-039).",
"status": "approved",
"deprecated": false,
"eligibility": {
@@ -16927,7 +16929,7 @@
"group": "terminal",
"css": "#0c0909",
"variable": "--color-terminal-bg",
- "description": "Terminal background.",
+ "description": "Terminal background. It fills a terminal's cell grid and equals ANSI 0 (D-039).",
"status": "observed",
"deprecated": false,
"eligibility": {
@@ -19064,13 +19066,13 @@
],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Host exposes no separately mapped content heading/highlight foreground in this port.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/color.text.heading","line":378}},
- {"port":"claude-code","reason":"Host exposes no separately mapped content heading/highlight foreground in this port.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/color.text.heading","line":455}},
- {"port":"codex","reason":"Host exposes no separately mapped content heading/highlight foreground in this port.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/color.text.heading","line":401}},
- {"port":"ghostty","reason":"Host exposes no separately mapped content heading/highlight foreground in this port.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/color.text.heading","line":401}},
- {"port":"orca","reason":"Host exposes no separately mapped content heading/highlight foreground in this port.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/color.text.heading","line":405}},
- {"port":"telegram","reason":"The pinned Telegram theme formats expose shared names and chrome titles, but no independent content-heading foreground; UI titles remain canonical bright rose under D-033.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/color.text.heading","line":1604}},
- {"port":"warp","reason":"Host exposes no separately mapped content heading/highlight foreground in this port.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/color.text.heading","line":396}}
+ {"port":"chatgpt","reason":"Host exposes no separately mapped content heading/highlight foreground in this port.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/color.text.heading","line":379}},
+ {"port":"claude-code","reason":"Host exposes no separately mapped content heading/highlight foreground in this port.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/color.text.heading","line":456}},
+ {"port":"codex","reason":"Host exposes no separately mapped content heading/highlight foreground in this port.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/color.text.heading","line":402}},
+ {"port":"ghostty","reason":"Host exposes no separately mapped content heading/highlight foreground in this port.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/color.text.heading","line":402}},
+ {"port":"orca","reason":"Host exposes no separately mapped content heading/highlight foreground in this port.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/color.text.heading","line":406}},
+ {"port":"telegram","reason":"The pinned Telegram theme formats expose shared names and chrome titles, but no independent content-heading foreground; UI titles remain canonical bright rose under D-033.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/color.text.heading","line":1605}},
+ {"port":"warp","reason":"Host exposes no separately mapped content heading/highlight foreground in this port.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/color.text.heading","line":397}}
],
"uses": [
{"kind":"contrast","component":null,"part":null,"state":null,"variant":null,"surface":"color.surface.default","nativeKey":null,"port":null,"source":{"file":"spec/contrast.json","pointer":"/pairs/65","line":69}},
@@ -19119,13 +19121,13 @@
],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Host exposes no separately mapped content heading/highlight foreground in this port.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/color.text.highlight","line":379}},
- {"port":"claude-code","reason":"Host exposes no separately mapped content heading/highlight foreground in this port.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/color.text.highlight","line":456}},
- {"port":"codex","reason":"Host exposes no separately mapped content heading/highlight foreground in this port.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/color.text.highlight","line":402}},
- {"port":"ghostty","reason":"Host exposes no separately mapped content heading/highlight foreground in this port.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/color.text.highlight","line":402}},
- {"port":"obsidian","reason":"Host exposes no separately mapped content heading/highlight foreground in this port.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/color.text.highlight","line":712}},
- {"port":"orca","reason":"Host exposes no separately mapped content heading/highlight foreground in this port.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/color.text.highlight","line":406}},
- {"port":"warp","reason":"Host exposes no separately mapped content heading/highlight foreground in this port.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/color.text.highlight","line":397}}
+ {"port":"chatgpt","reason":"Host exposes no separately mapped content heading/highlight foreground in this port.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/color.text.highlight","line":380}},
+ {"port":"claude-code","reason":"Host exposes no separately mapped content heading/highlight foreground in this port.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/color.text.highlight","line":457}},
+ {"port":"codex","reason":"Host exposes no separately mapped content heading/highlight foreground in this port.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/color.text.highlight","line":403}},
+ {"port":"ghostty","reason":"Host exposes no separately mapped content heading/highlight foreground in this port.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/color.text.highlight","line":403}},
+ {"port":"obsidian","reason":"Host exposes no separately mapped content heading/highlight foreground in this port.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/color.text.highlight","line":713}},
+ {"port":"orca","reason":"Host exposes no separately mapped content heading/highlight foreground in this port.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/color.text.highlight","line":407}},
+ {"port":"warp","reason":"Host exposes no separately mapped content heading/highlight foreground in this port.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/color.text.highlight","line":398}}
],
"uses": [
{"kind":"contrast","component":null,"part":null,"state":null,"variant":null,"surface":"color.surface.default","nativeKey":null,"port":null,"source":{"file":"spec/contrast.json","pointer":"/pairs/67","line":71}},
@@ -19167,7 +19169,7 @@
{"port":"ghostty","reason":"Interface colour role; a terminal theme file carries terminal colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/color.text.inverse","line":317}},
{"port":"obsidian","reason":"No inverse-surface widget is installed in this dark-only port.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/color.text.inverse","line":541}},
{"port":"orca","reason":"Interface colour role; a terminal theme file carries terminal colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/color.text.inverse","line":323}},
- {"port":"telegram","reason":"color.text.inverse has no separate native hook in this projection; related controls share the declared canonical role instead.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/color.text.inverse","line":1603}},
+ {"port":"telegram","reason":"color.text.inverse has no separate native hook in this projection; related controls share the declared canonical role instead.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/color.text.inverse","line":1604}},
{"port":"warp","reason":"Interface colour role; a terminal theme file carries terminal colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/color.text.inverse","line":312}},
{"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/color.text.inverse","line":2358}}
],
@@ -20604,7 +20606,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/focus/offset",
- "line": 405
+ "line": 422
},
"provenance": null,
"aliases": [],
@@ -20615,7 +20617,7 @@
{"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/focus.offset","line":339}},
{"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/focus.offset","line":339}},
{"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/focus.offset","line":345}},
- {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/focus.offset","line":1578}},
+ {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/focus.offset","line":1579}},
{"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/focus.offset","line":334}}
],
"uses": [
@@ -20659,7 +20661,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/focus/offset-container",
- "line": 413
+ "line": 430
},
"provenance": null,
"aliases": [],
@@ -20669,9 +20671,9 @@
{"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/focus.offset-container","line":394}},
{"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/focus.offset-container","line":340}},
{"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/focus.offset-container","line":340}},
- {"port":"obsidian","reason":"focus.offset-container: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/focus.offset-container","line":686}},
+ {"port":"obsidian","reason":"focus.offset-container: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/focus.offset-container","line":687}},
{"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/focus.offset-container","line":346}},
- {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/focus.offset-container","line":1579}},
+ {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/focus.offset-container","line":1580}},
{"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/focus.offset-container","line":335}}
],
"uses": [
@@ -20695,7 +20697,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/focus/offset-invalid",
- "line": 421
+ "line": 438
},
"provenance": null,
"aliases": [],
@@ -20705,11 +20707,11 @@
{"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/focus.offset-invalid","line":395}},
{"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/focus.offset-invalid","line":341}},
{"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/focus.offset-invalid","line":341}},
- {"port":"obsidian","reason":"focus.offset-invalid: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/focus.offset-invalid","line":687}},
+ {"port":"obsidian","reason":"focus.offset-invalid: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/focus.offset-invalid","line":688}},
{"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/focus.offset-invalid","line":347}},
- {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/focus.offset-invalid","line":1580}},
+ {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/focus.offset-invalid","line":1581}},
{"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/focus.offset-invalid","line":336}},
- {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/focus.offset-invalid","line":2500}}
+ {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/focus.offset-invalid","line":2501}}
],
"uses": [],
"contrast": []
@@ -20793,6 +20795,49 @@
"uses": [],
"contrast": []
},
+ "focus.ring-contrast": {
+ "path": "focus.ring-contrast",
+ "group": "focus",
+ "css": "1px dashed #ffa2a7",
+ "variable": "--focus-ring-contrast",
+ "description": "outline where the ordinary red ring would merge with what is under or beside it: controls on a fill and invalid fields beside the danger border; the control ring in the container colour (D-040).",
+ "status": "approved",
+ "deprecated": false,
+ "eligibility": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
+ "source": {
+ "file": "tokens/foundations.tokens.json",
+ "pointer": "/focus/ring-contrast",
+ "line": 405
+ },
+ "provenance": {
+ "status": "approved",
+ "approval": {
+ "decision": "D-040"
+ }
+ },
+ "aliases": [
+ "color.interaction.focus.ring-container",
+ "border.width.default"
+ ],
+ "usedByAliases": [],
+ "unmappedPorts": [
+ {"port":"chatgpt","reason":"ChatGPT keeps its own geometry; this j3w1 value cannot be set.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/focus.ring-contrast","line":323}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/focus.ring-contrast","line":398}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/focus.ring-contrast","line":344}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/focus.ring-contrast","line":344}},
+ {"port":"obsidian","reason":"focus.ring-contrast: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/focus.ring-contrast","line":686}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/focus.ring-contrast","line":350}},
+ {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/focus.ring-contrast","line":1578}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/focus.ring-contrast","line":339}},
+ {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/focus.ring-contrast","line":2500}}
+ ],
+ "uses": [],
+ "contrast": []
+ },
"font.family.mono": {
"path": "font.family.mono",
"group": "font",
@@ -20815,12 +20860,12 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.family.mono","line":323}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.family.mono","line":398}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.family.mono","line":344}},
- {"port":"ghostty","reason":"A Ghostty theme carries colours; set font-family in your own config.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.family.mono","line":344}},
+ {"port":"chatgpt","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.family.mono","line":324}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.family.mono","line":399}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.family.mono","line":345}},
+ {"port":"ghostty","reason":"A Ghostty theme carries colours; set font-family in your own config.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.family.mono","line":345}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/font.family.mono","line":1538}},
- {"port":"warp","reason":"The application's own terminal font setting.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.family.mono","line":339}}
+ {"port":"warp","reason":"The application's own terminal font setting.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.family.mono","line":340}}
],
"uses": [
{"kind":"port","component":null,"part":null,"state":null,"variant":null,"surface":null,"nativeKey":"--font-interface-theme","port":"obsidian","source":{"file":"ports/obsidian/mapping.json","pointer":"/mappings/font.family.mono/0","line":273}},
@@ -20864,14 +20909,14 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.letter-spacing.terminal","line":324}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.letter-spacing.terminal","line":399}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.letter-spacing.terminal","line":345}},
- {"port":"ghostty","reason":"A Ghostty theme carries colours; Ghostty has no letter-spacing key.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.letter-spacing.terminal","line":345}},
+ {"port":"chatgpt","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.letter-spacing.terminal","line":325}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.letter-spacing.terminal","line":400}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.letter-spacing.terminal","line":346}},
+ {"port":"ghostty","reason":"A Ghostty theme carries colours; Ghostty has no letter-spacing key.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.letter-spacing.terminal","line":346}},
{"port":"obsidian","reason":"font.letter-spacing.terminal: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/font.letter-spacing.terminal","line":677}},
- {"port":"orca","reason":"Neither the Ghostty config nor Orca's import has a letter-spacing key.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.letter-spacing.terminal","line":350}},
+ {"port":"orca","reason":"Neither the Ghostty config nor Orca's import has a letter-spacing key.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.letter-spacing.terminal","line":351}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/font.letter-spacing.terminal","line":1565}},
- {"port":"warp","reason":"The application's own terminal font setting.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.letter-spacing.terminal","line":340}},
+ {"port":"warp","reason":"The application's own terminal font setting.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.letter-spacing.terminal","line":341}},
{"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/font.letter-spacing.terminal","line":2487}}
],
"uses": [],
@@ -20899,14 +20944,14 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.line-height.caption","line":325}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.line-height.caption","line":400}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.line-height.caption","line":346}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.line-height.caption","line":346}},
+ {"port":"chatgpt","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.line-height.caption","line":326}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.line-height.caption","line":401}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.line-height.caption","line":347}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.line-height.caption","line":347}},
{"port":"obsidian","reason":"font.line-height.caption: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/font.line-height.caption","line":676}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.line-height.caption","line":351}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.line-height.caption","line":352}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/font.line-height.caption","line":1564}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.line-height.caption","line":341}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.line-height.caption","line":342}},
{"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/font.line-height.caption","line":2486}}
],
"uses": [],
@@ -20934,14 +20979,14 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.line-height.code","line":326}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.line-height.code","line":401}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.line-height.code","line":347}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.line-height.code","line":347}},
+ {"port":"chatgpt","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.line-height.code","line":327}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.line-height.code","line":402}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.line-height.code","line":348}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.line-height.code","line":348}},
{"port":"obsidian","reason":"font.line-height.code: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/font.line-height.code","line":669}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.line-height.code","line":352}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.line-height.code","line":353}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/font.line-height.code","line":1557}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.line-height.code","line":342}}
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.line-height.code","line":343}}
],
"uses": [
{"kind":"port","component":null,"part":null,"state":null,"variant":null,"surface":null,"nativeKey":"powertoys.markdown.CODE_LINE","port":"windows","source":{"file":"ports/windows/mapping.json","pointer":"/mappings/font.line-height.code/0","line":2086}}
@@ -20975,14 +21020,14 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.line-height.display","line":327}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.line-height.display","line":402}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.line-height.display","line":348}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.line-height.display","line":348}},
+ {"port":"chatgpt","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.line-height.display","line":328}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.line-height.display","line":403}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.line-height.display","line":349}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.line-height.display","line":349}},
{"port":"obsidian","reason":"font.line-height.display: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/font.line-height.display","line":671}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.line-height.display","line":353}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.line-height.display","line":354}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/font.line-height.display","line":1559}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.line-height.display","line":343}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.line-height.display","line":344}},
{"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/font.line-height.display","line":2484}}
],
"uses": [],
@@ -21010,14 +21055,14 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.line-height.h1","line":329}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.line-height.h1","line":404}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.line-height.h1","line":350}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.line-height.h1","line":350}},
+ {"port":"chatgpt","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.line-height.h1","line":330}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.line-height.h1","line":405}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.line-height.h1","line":351}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.line-height.h1","line":351}},
{"port":"obsidian","reason":"font.line-height.h1: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/font.line-height.h1","line":673}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.line-height.h1","line":355}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.line-height.h1","line":356}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/font.line-height.h1","line":1561}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.line-height.h1","line":345}}
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.line-height.h1","line":346}}
],
"uses": [
{"kind":"port","component":null,"part":null,"state":null,"variant":null,"surface":null,"nativeKey":"powertoys.markdown.H1_LINE","port":"windows","source":{"file":"ports/windows/mapping.json","pointer":"/mappings/font.line-height.h1/0","line":2092}}
@@ -21046,14 +21091,14 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.line-height.h2","line":330}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.line-height.h2","line":405}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.line-height.h2","line":351}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.line-height.h2","line":351}},
+ {"port":"chatgpt","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.line-height.h2","line":331}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.line-height.h2","line":406}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.line-height.h2","line":352}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.line-height.h2","line":352}},
{"port":"obsidian","reason":"font.line-height.h2: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/font.line-height.h2","line":674}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.line-height.h2","line":356}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.line-height.h2","line":357}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/font.line-height.h2","line":1562}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.line-height.h2","line":346}}
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.line-height.h2","line":347}}
],
"uses": [
{"kind":"port","component":null,"part":null,"state":null,"variant":null,"surface":null,"nativeKey":"powertoys.markdown.H2_LINE","port":"windows","source":{"file":"ports/windows/mapping.json","pointer":"/mappings/font.line-height.h2/0","line":2098}}
@@ -21082,14 +21127,14 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.line-height.h3","line":331}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.line-height.h3","line":406}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.line-height.h3","line":352}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.line-height.h3","line":352}},
+ {"port":"chatgpt","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.line-height.h3","line":332}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.line-height.h3","line":407}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.line-height.h3","line":353}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.line-height.h3","line":353}},
{"port":"obsidian","reason":"font.line-height.h3: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/font.line-height.h3","line":675}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.line-height.h3","line":357}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.line-height.h3","line":358}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/font.line-height.h3","line":1563}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.line-height.h3","line":347}}
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.line-height.h3","line":348}}
],
"uses": [
{"kind":"port","component":null,"part":null,"state":null,"variant":null,"surface":null,"nativeKey":"powertoys.markdown.H3_LINE","port":"windows","source":{"file":"ports/windows/mapping.json","pointer":"/mappings/font.line-height.h3/0","line":2125}}
@@ -21118,14 +21163,14 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.line-height.reading","line":332}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.line-height.reading","line":407}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.line-height.reading","line":353}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.line-height.reading","line":353}},
+ {"port":"chatgpt","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.line-height.reading","line":333}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.line-height.reading","line":408}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.line-height.reading","line":354}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.line-height.reading","line":354}},
{"port":"obsidian","reason":"font.line-height.reading: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/font.line-height.reading","line":668}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.line-height.reading","line":358}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.line-height.reading","line":359}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/font.line-height.reading","line":1556}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.line-height.reading","line":348}}
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.line-height.reading","line":349}}
],
"uses": [
{"kind":"port","component":null,"part":null,"state":null,"variant":null,"surface":null,"nativeKey":"powertoys.markdown.READING_LINE","port":"windows","source":{"file":"ports/windows/mapping.json","pointer":"/mappings/font.line-height.reading/0","line":2080}}
@@ -21154,14 +21199,14 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.line-height.terminal","line":333}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.line-height.terminal","line":408}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.line-height.terminal","line":354}},
- {"port":"ghostty","reason":"A Ghostty theme carries colours; adjust-cell-height has no exact conversion from a pixel line height.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.line-height.terminal","line":354}},
+ {"port":"chatgpt","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.line-height.terminal","line":334}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.line-height.terminal","line":409}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.line-height.terminal","line":355}},
+ {"port":"ghostty","reason":"A Ghostty theme carries colours; adjust-cell-height has no exact conversion from a pixel line height.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.line-height.terminal","line":355}},
{"port":"obsidian","reason":"font.line-height.terminal: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/font.line-height.terminal","line":670}},
- {"port":"orca","reason":"Ghostty's adjust-cell-height, which Orca imports, is relative to the font's own cell height; a pixel line height has no exact conversion. Orca keeps its line-height setting.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.line-height.terminal","line":359}},
+ {"port":"orca","reason":"Ghostty's adjust-cell-height, which Orca imports, is relative to the font's own cell height; a pixel line height has no exact conversion. Orca keeps its line-height setting.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.line-height.terminal","line":360}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/font.line-height.terminal","line":1558}},
- {"port":"warp","reason":"The application's own terminal font setting.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.line-height.terminal","line":349}},
+ {"port":"warp","reason":"The application's own terminal font setting.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.line-height.terminal","line":350}},
{"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/font.line-height.terminal","line":2483}}
],
"uses": [],
@@ -21194,14 +21239,14 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.line-height.title","line":328}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.line-height.title","line":403}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.line-height.title","line":349}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.line-height.title","line":349}},
+ {"port":"chatgpt","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.line-height.title","line":329}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.line-height.title","line":404}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.line-height.title","line":350}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.line-height.title","line":350}},
{"port":"obsidian","reason":"font.line-height.title: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/font.line-height.title","line":672}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.line-height.title","line":354}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.line-height.title","line":355}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/font.line-height.title","line":1560}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.line-height.title","line":344}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.line-height.title","line":345}},
{"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/font.line-height.title","line":2485}}
],
"uses": [],
@@ -21229,14 +21274,14 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.line-height.ui-lg","line":334}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.line-height.ui-lg","line":409}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.line-height.ui-lg","line":355}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.line-height.ui-lg","line":355}},
+ {"port":"chatgpt","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.line-height.ui-lg","line":335}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.line-height.ui-lg","line":410}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.line-height.ui-lg","line":356}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.line-height.ui-lg","line":356}},
{"port":"obsidian","reason":"font.line-height.ui-lg: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/font.line-height.ui-lg","line":667}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.line-height.ui-lg","line":360}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.line-height.ui-lg","line":361}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/font.line-height.ui-lg","line":1555}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.line-height.ui-lg","line":350}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.line-height.ui-lg","line":351}},
{"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/font.line-height.ui-lg","line":2482}}
],
"uses": [],
@@ -21264,14 +21309,14 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.line-height.ui-md","line":335}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.line-height.ui-md","line":410}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.line-height.ui-md","line":356}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.line-height.ui-md","line":356}},
+ {"port":"chatgpt","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.line-height.ui-md","line":336}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.line-height.ui-md","line":411}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.line-height.ui-md","line":357}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.line-height.ui-md","line":357}},
{"port":"obsidian","reason":"font.line-height.ui-md: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/font.line-height.ui-md","line":666}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.line-height.ui-md","line":361}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.line-height.ui-md","line":362}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/font.line-height.ui-md","line":1554}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.line-height.ui-md","line":351}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.line-height.ui-md","line":352}},
{"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/font.line-height.ui-md","line":2481}}
],
"uses": [
@@ -21302,14 +21347,14 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.line-height.ui-sm","line":336}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.line-height.ui-sm","line":411}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.line-height.ui-sm","line":357}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.line-height.ui-sm","line":357}},
+ {"port":"chatgpt","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.line-height.ui-sm","line":337}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.line-height.ui-sm","line":412}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.line-height.ui-sm","line":358}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.line-height.ui-sm","line":358}},
{"port":"obsidian","reason":"font.line-height.ui-sm: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/font.line-height.ui-sm","line":665}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.line-height.ui-sm","line":362}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.line-height.ui-sm","line":363}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/font.line-height.ui-sm","line":1553}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.line-height.ui-sm","line":352}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.line-height.ui-sm","line":353}},
{"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/font.line-height.ui-sm","line":2480}}
],
"uses": [
@@ -21340,14 +21385,14 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"ChatGPT has only a UI size and a code size.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.size.caption","line":337}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.size.caption","line":412}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.size.caption","line":358}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.size.caption","line":358}},
+ {"port":"chatgpt","reason":"ChatGPT has only a UI size and a code size.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.size.caption","line":338}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.size.caption","line":413}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.size.caption","line":359}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.size.caption","line":359}},
{"port":"obsidian","reason":"font.size.caption: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/font.size.caption","line":664}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.size.caption","line":363}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.size.caption","line":364}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/font.size.caption","line":1552}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.size.caption","line":353}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.size.caption","line":354}},
{"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/font.size.caption","line":2479}}
],
"uses": [],
@@ -21375,13 +21420,13 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.size.code","line":413}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.size.code","line":359}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.size.code","line":359}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.size.code","line":414}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.size.code","line":360}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.size.code","line":360}},
{"port":"obsidian","reason":"font.size.code: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/font.size.code","line":657}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.size.code","line":364}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.size.code","line":365}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/font.size.code","line":1545}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.size.code","line":354}}
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.size.code","line":355}}
],
"uses": [
{"kind":"port","component":null,"part":null,"state":null,"variant":null,"surface":null,"nativeKey":"Code font size","port":"chatgpt","source":{"file":"ports/chatgpt/mapping.json","pointer":"/mappings/font.size.code/0","line":16}},
@@ -21416,14 +21461,14 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"ChatGPT has only a UI size and a code size.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.size.display","line":338}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.size.display","line":414}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.size.display","line":360}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.size.display","line":360}},
+ {"port":"chatgpt","reason":"ChatGPT has only a UI size and a code size.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.size.display","line":339}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.size.display","line":415}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.size.display","line":361}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.size.display","line":361}},
{"port":"obsidian","reason":"font.size.display: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/font.size.display","line":659}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.size.display","line":365}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.size.display","line":366}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/font.size.display","line":1547}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.size.display","line":355}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.size.display","line":356}},
{"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/font.size.display","line":2477}}
],
"uses": [],
@@ -21451,14 +21496,14 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"ChatGPT has only a UI size and a code size.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.size.h1","line":340}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.size.h1","line":416}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.size.h1","line":362}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.size.h1","line":362}},
+ {"port":"chatgpt","reason":"ChatGPT has only a UI size and a code size.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.size.h1","line":341}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.size.h1","line":417}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.size.h1","line":363}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.size.h1","line":363}},
{"port":"obsidian","reason":"font.size.h1: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/font.size.h1","line":661}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.size.h1","line":367}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.size.h1","line":368}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/font.size.h1","line":1549}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.size.h1","line":357}}
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.size.h1","line":358}}
],
"uses": [
{"kind":"port","component":null,"part":null,"state":null,"variant":null,"surface":null,"nativeKey":"powertoys.markdown.H1_SIZE","port":"windows","source":{"file":"ports/windows/mapping.json","pointer":"/mappings/font.size.h1/0","line":2089}}
@@ -21487,14 +21532,14 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"ChatGPT has only a UI size and a code size.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.size.h2","line":341}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.size.h2","line":417}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.size.h2","line":363}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.size.h2","line":363}},
+ {"port":"chatgpt","reason":"ChatGPT has only a UI size and a code size.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.size.h2","line":342}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.size.h2","line":418}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.size.h2","line":364}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.size.h2","line":364}},
{"port":"obsidian","reason":"font.size.h2: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/font.size.h2","line":662}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.size.h2","line":368}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.size.h2","line":369}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/font.size.h2","line":1550}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.size.h2","line":358}}
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.size.h2","line":359}}
],
"uses": [
{"kind":"part","component":"compact-dashboard","part":"dependency.role-font-size-h2","state":null,"variant":null,"surface":null,"nativeKey":null,"port":null,"source":{"file":"spec/components/compact-dashboard.md","pointer":"/tokens/dependency.role-font-size-h2","line":44}},
@@ -21524,14 +21569,14 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"ChatGPT has only a UI size and a code size.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.size.h3","line":342}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.size.h3","line":418}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.size.h3","line":364}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.size.h3","line":364}},
+ {"port":"chatgpt","reason":"ChatGPT has only a UI size and a code size.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.size.h3","line":343}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.size.h3","line":419}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.size.h3","line":365}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.size.h3","line":365}},
{"port":"obsidian","reason":"font.size.h3: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/font.size.h3","line":663}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.size.h3","line":369}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.size.h3","line":370}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/font.size.h3","line":1551}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.size.h3","line":359}}
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.size.h3","line":360}}
],
"uses": [
{"kind":"port","component":null,"part":null,"state":null,"variant":null,"surface":null,"nativeKey":"powertoys.markdown.H3_SIZE","port":"windows","source":{"file":"ports/windows/mapping.json","pointer":"/mappings/font.size.h3/0","line":2122}}
@@ -21560,13 +21605,13 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.size.reading","line":419}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.size.reading","line":365}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.size.reading","line":365}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.size.reading","line":420}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.size.reading","line":366}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.size.reading","line":366}},
{"port":"obsidian","reason":"font.size.reading: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/font.size.reading","line":656}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.size.reading","line":370}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.size.reading","line":371}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/font.size.reading","line":1544}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.size.reading","line":360}}
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.size.reading","line":361}}
],
"uses": [
{"kind":"port","component":null,"part":null,"state":null,"variant":null,"surface":null,"nativeKey":"powertoys.markdown.READING_SIZE","port":"windows","source":{"file":"ports/windows/mapping.json","pointer":"/mappings/font.size.reading/0","line":2077}},
@@ -21596,13 +21641,13 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"ChatGPT has only a UI size and a code size.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.size.terminal","line":343}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.size.terminal","line":420}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.size.terminal","line":366}},
- {"port":"ghostty","reason":"A Ghostty theme carries colours; set font-size in your own config.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.size.terminal","line":366}},
+ {"port":"chatgpt","reason":"ChatGPT has only a UI size and a code size.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.size.terminal","line":344}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.size.terminal","line":421}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.size.terminal","line":367}},
+ {"port":"ghostty","reason":"A Ghostty theme carries colours; set font-size in your own config.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.size.terminal","line":367}},
{"port":"obsidian","reason":"font.size.terminal: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/font.size.terminal","line":658}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/font.size.terminal","line":1546}},
- {"port":"warp","reason":"The application's own terminal font setting.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.size.terminal","line":361}},
+ {"port":"warp","reason":"The application's own terminal font setting.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.size.terminal","line":362}},
{"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/font.size.terminal","line":2476}}
],
"uses": [
@@ -21637,14 +21682,14 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"ChatGPT has only a UI size and a code size.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.size.title","line":339}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.size.title","line":415}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.size.title","line":361}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.size.title","line":361}},
+ {"port":"chatgpt","reason":"ChatGPT has only a UI size and a code size.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.size.title","line":340}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.size.title","line":416}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.size.title","line":362}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.size.title","line":362}},
{"port":"obsidian","reason":"font.size.title: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/font.size.title","line":660}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.size.title","line":366}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.size.title","line":367}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/font.size.title","line":1548}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.size.title","line":356}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.size.title","line":357}},
{"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/font.size.title","line":2478}}
],
"uses": [],
@@ -21672,14 +21717,14 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"ChatGPT has only a UI size and a code size.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.size.ui-lg","line":344}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.size.ui-lg","line":421}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.size.ui-lg","line":367}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.size.ui-lg","line":367}},
+ {"port":"chatgpt","reason":"ChatGPT has only a UI size and a code size.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.size.ui-lg","line":345}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.size.ui-lg","line":422}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.size.ui-lg","line":368}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.size.ui-lg","line":368}},
{"port":"obsidian","reason":"font.size.ui-lg: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/font.size.ui-lg","line":655}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.size.ui-lg","line":371}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.size.ui-lg","line":372}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/font.size.ui-lg","line":1543}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.size.ui-lg","line":362}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.size.ui-lg","line":363}},
{"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/font.size.ui-lg","line":2475}}
],
"uses": [],
@@ -21707,14 +21752,14 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"ChatGPT has only a UI size and a code size.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.size.ui-md","line":345}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.size.ui-md","line":422}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.size.ui-md","line":368}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.size.ui-md","line":368}},
+ {"port":"chatgpt","reason":"ChatGPT has only a UI size and a code size.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.size.ui-md","line":346}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.size.ui-md","line":423}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.size.ui-md","line":369}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.size.ui-md","line":369}},
{"port":"obsidian","reason":"font.size.ui-md: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/font.size.ui-md","line":654}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.size.ui-md","line":372}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.size.ui-md","line":373}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/font.size.ui-md","line":1542}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.size.ui-md","line":363}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.size.ui-md","line":364}},
{"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/font.size.ui-md","line":2474}}
],
"uses": [
@@ -21745,14 +21790,14 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"ChatGPT has only a UI size and a code size.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.size.ui-sm","line":346}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.size.ui-sm","line":423}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.size.ui-sm","line":369}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.size.ui-sm","line":369}},
+ {"port":"chatgpt","reason":"ChatGPT has only a UI size and a code size.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.size.ui-sm","line":347}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.size.ui-sm","line":424}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.size.ui-sm","line":370}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.size.ui-sm","line":370}},
{"port":"obsidian","reason":"font.size.ui-sm: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/font.size.ui-sm","line":653}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.size.ui-sm","line":373}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.size.ui-sm","line":374}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/font.size.ui-sm","line":1541}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.size.ui-sm","line":364}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.size.ui-sm","line":365}},
{"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/font.size.ui-sm","line":2473}}
],
"uses": [
@@ -21783,13 +21828,13 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.weight.bold","line":347}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.weight.bold","line":424}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.weight.bold","line":370}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.weight.bold","line":370}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.weight.bold","line":374}},
+ {"port":"chatgpt","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.weight.bold","line":348}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.weight.bold","line":425}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.weight.bold","line":371}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.weight.bold","line":371}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.weight.bold","line":375}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/font.weight.bold","line":1540}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.weight.bold","line":365}}
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.weight.bold","line":366}}
],
"uses": [
{"kind":"part","component":"avatar","part":"dependency.role-font-weight-bold","state":null,"variant":null,"surface":null,"nativeKey":null,"port":null,"source":{"file":"spec/components/avatar.md","pointer":"/tokens/dependency.role-font-weight-bold","line":33}},
@@ -21820,13 +21865,13 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.weight.regular","line":348}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.weight.regular","line":425}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.weight.regular","line":371}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.weight.regular","line":371}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.weight.regular","line":375}},
+ {"port":"chatgpt","reason":"ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/font.weight.regular","line":349}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/font.weight.regular","line":426}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/font.weight.regular","line":372}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/font.weight.regular","line":372}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/font.weight.regular","line":376}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/font.weight.regular","line":1539}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.weight.regular","line":366}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/font.weight.regular","line":367}},
{"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/font.weight.regular","line":2472}}
],
"uses": [
@@ -21850,21 +21895,21 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/icon/size/lg",
- "line": 540
+ "line": 557
},
"provenance": null,
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/icon.size.lg","line":349}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/icon.size.lg","line":426}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/icon.size.lg","line":372}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/icon.size.lg","line":372}},
- {"port":"obsidian","reason":"icon.size.lg: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/icon.size.lg","line":701}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/icon.size.lg","line":376}},
- {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/icon.size.lg","line":1594}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/icon.size.lg","line":367}},
- {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/icon.size.lg","line":2512}}
+ {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/icon.size.lg","line":350}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/icon.size.lg","line":427}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/icon.size.lg","line":373}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/icon.size.lg","line":373}},
+ {"port":"obsidian","reason":"icon.size.lg: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/icon.size.lg","line":702}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/icon.size.lg","line":377}},
+ {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/icon.size.lg","line":1595}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/icon.size.lg","line":368}},
+ {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/icon.size.lg","line":2513}}
],
"uses": [],
"contrast": []
@@ -21885,21 +21930,21 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/icon/size/md",
- "line": 534
+ "line": 551
},
"provenance": null,
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/icon.size.md","line":350}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/icon.size.md","line":427}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/icon.size.md","line":373}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/icon.size.md","line":373}},
- {"port":"obsidian","reason":"icon.size.md: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/icon.size.md","line":700}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/icon.size.md","line":377}},
- {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/icon.size.md","line":1593}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/icon.size.md","line":368}},
- {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/icon.size.md","line":2511}}
+ {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/icon.size.md","line":351}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/icon.size.md","line":428}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/icon.size.md","line":374}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/icon.size.md","line":374}},
+ {"port":"obsidian","reason":"icon.size.md: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/icon.size.md","line":701}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/icon.size.md","line":378}},
+ {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/icon.size.md","line":1594}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/icon.size.md","line":369}},
+ {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/icon.size.md","line":2512}}
],
"uses": [
{"kind":"part","component":"multiselect","part":"dependency.role-icon-size-md","state":null,"variant":null,"surface":null,"nativeKey":null,"port":null,"source":{"file":"spec/components/multiselect.md","pointer":"/tokens/dependency.role-icon-size-md","line":61}},
@@ -21923,21 +21968,21 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/icon/size/sm",
- "line": 528
+ "line": 545
},
"provenance": null,
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/icon.size.sm","line":351}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/icon.size.sm","line":428}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/icon.size.sm","line":374}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/icon.size.sm","line":374}},
- {"port":"obsidian","reason":"icon.size.sm: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/icon.size.sm","line":699}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/icon.size.sm","line":378}},
- {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/icon.size.sm","line":1592}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/icon.size.sm","line":369}},
- {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/icon.size.sm","line":2510}}
+ {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/icon.size.sm","line":352}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/icon.size.sm","line":429}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/icon.size.sm","line":375}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/icon.size.sm","line":375}},
+ {"port":"obsidian","reason":"icon.size.sm: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/icon.size.sm","line":700}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/icon.size.sm","line":379}},
+ {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/icon.size.sm","line":1593}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/icon.size.sm","line":370}},
+ {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/icon.size.sm","line":2511}}
],
"uses": [],
"contrast": []
@@ -21958,21 +22003,21 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/icon/stroke",
- "line": 547
+ "line": 564
},
"provenance": null,
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/icon.stroke","line":352}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/icon.stroke","line":429}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/icon.stroke","line":375}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/icon.stroke","line":375}},
- {"port":"obsidian","reason":"icon.stroke: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/icon.stroke","line":702}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/icon.stroke","line":379}},
- {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/icon.stroke","line":1595}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/icon.stroke","line":370}},
- {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/icon.stroke","line":2513}}
+ {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/icon.stroke","line":353}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/icon.stroke","line":430}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/icon.stroke","line":376}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/icon.stroke","line":376}},
+ {"port":"obsidian","reason":"icon.stroke: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/icon.stroke","line":703}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/icon.stroke","line":380}},
+ {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/icon.stroke","line":1596}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/icon.stroke","line":371}},
+ {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/icon.stroke","line":2514}}
],
"uses": [],
"contrast": []
@@ -21993,21 +22038,21 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/layout/app-max",
- "line": 487
+ "line": 504
},
"provenance": null,
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/layout.app-max","line":353}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/layout.app-max","line":430}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/layout.app-max","line":376}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/layout.app-max","line":376}},
- {"port":"obsidian","reason":"layout.app-max: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/layout.app-max","line":694}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/layout.app-max","line":380}},
- {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/layout.app-max","line":1587}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/layout.app-max","line":371}},
- {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/layout.app-max","line":2505}}
+ {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/layout.app-max","line":354}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/layout.app-max","line":431}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/layout.app-max","line":377}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/layout.app-max","line":377}},
+ {"port":"obsidian","reason":"layout.app-max: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/layout.app-max","line":695}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/layout.app-max","line":381}},
+ {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/layout.app-max","line":1588}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/layout.app-max","line":372}},
+ {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/layout.app-max","line":2506}}
],
"uses": [],
"contrast": []
@@ -22028,20 +22073,20 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/layout/content-max",
- "line": 479
+ "line": 496
},
"provenance": null,
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/layout.content-max","line":354}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/layout.content-max","line":431}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/layout.content-max","line":377}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/layout.content-max","line":377}},
- {"port":"obsidian","reason":"layout.content-max: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/layout.content-max","line":693}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/layout.content-max","line":381}},
- {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/layout.content-max","line":1586}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/layout.content-max","line":372}}
+ {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/layout.content-max","line":355}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/layout.content-max","line":432}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/layout.content-max","line":378}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/layout.content-max","line":378}},
+ {"port":"obsidian","reason":"layout.content-max: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/layout.content-max","line":694}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/layout.content-max","line":382}},
+ {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/layout.content-max","line":1587}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/layout.content-max","line":373}}
],
"uses": [
{"kind":"port","component":null,"part":null,"state":null,"variant":null,"surface":null,"nativeKey":"powertoys.markdown.CONTENT_MAX","port":"windows","source":{"file":"ports/windows/mapping.json","pointer":"/mappings/layout.content-max/0","line":2131}}
@@ -22064,20 +22109,20 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/layout/measure",
- "line": 474
+ "line": 491
},
"provenance": null,
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/layout.measure","line":355}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/layout.measure","line":432}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/layout.measure","line":378}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/layout.measure","line":378}},
- {"port":"obsidian","reason":"layout.measure: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/layout.measure","line":692}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/layout.measure","line":382}},
- {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/layout.measure","line":1585}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/layout.measure","line":373}}
+ {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/layout.measure","line":356}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/layout.measure","line":433}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/layout.measure","line":379}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/layout.measure","line":379}},
+ {"port":"obsidian","reason":"layout.measure: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/layout.measure","line":693}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/layout.measure","line":383}},
+ {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/layout.measure","line":1586}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/layout.measure","line":374}}
],
"uses": [
{"kind":"port","component":null,"part":null,"state":null,"variant":null,"surface":null,"nativeKey":"powertoys.markdown.MEASURE","port":"windows","source":{"file":"ports/windows/mapping.json","pointer":"/mappings/layout.measure/0","line":2128}}
@@ -22100,21 +22145,21 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/motion/duration/base",
- "line": 439
+ "line": 456
},
"provenance": null,
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/motion.duration.base","line":356}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/motion.duration.base","line":433}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/motion.duration.base","line":379}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/motion.duration.base","line":379}},
- {"port":"obsidian","reason":"motion.duration.base: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/motion.duration.base","line":689}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/motion.duration.base","line":383}},
- {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/motion.duration.base","line":1582}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/motion.duration.base","line":374}},
- {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/motion.duration.base","line":2502}}
+ {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/motion.duration.base","line":357}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/motion.duration.base","line":434}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/motion.duration.base","line":380}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/motion.duration.base","line":380}},
+ {"port":"obsidian","reason":"motion.duration.base: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/motion.duration.base","line":690}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/motion.duration.base","line":384}},
+ {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/motion.duration.base","line":1583}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/motion.duration.base","line":375}},
+ {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/motion.duration.base","line":2503}}
],
"uses": [],
"contrast": []
@@ -22135,21 +22180,21 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/motion/duration/fast",
- "line": 433
+ "line": 450
},
"provenance": null,
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/motion.duration.fast","line":357}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/motion.duration.fast","line":434}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/motion.duration.fast","line":380}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/motion.duration.fast","line":380}},
- {"port":"obsidian","reason":"motion.duration.fast: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/motion.duration.fast","line":688}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/motion.duration.fast","line":384}},
- {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/motion.duration.fast","line":1581}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/motion.duration.fast","line":375}},
- {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/motion.duration.fast","line":2501}}
+ {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/motion.duration.fast","line":358}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/motion.duration.fast","line":435}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/motion.duration.fast","line":381}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/motion.duration.fast","line":381}},
+ {"port":"obsidian","reason":"motion.duration.fast: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/motion.duration.fast","line":689}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/motion.duration.fast","line":385}},
+ {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/motion.duration.fast","line":1582}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/motion.duration.fast","line":376}},
+ {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/motion.duration.fast","line":2502}}
],
"uses": [],
"contrast": []
@@ -22170,21 +22215,21 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/motion/duration/slow",
- "line": 445
+ "line": 462
},
"provenance": null,
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/motion.duration.slow","line":358}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/motion.duration.slow","line":435}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/motion.duration.slow","line":381}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/motion.duration.slow","line":381}},
- {"port":"obsidian","reason":"motion.duration.slow: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/motion.duration.slow","line":690}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/motion.duration.slow","line":385}},
- {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/motion.duration.slow","line":1583}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/motion.duration.slow","line":376}},
- {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/motion.duration.slow","line":2503}}
+ {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/motion.duration.slow","line":359}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/motion.duration.slow","line":436}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/motion.duration.slow","line":382}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/motion.duration.slow","line":382}},
+ {"port":"obsidian","reason":"motion.duration.slow: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/motion.duration.slow","line":691}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/motion.duration.slow","line":386}},
+ {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/motion.duration.slow","line":1584}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/motion.duration.slow","line":377}},
+ {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/motion.duration.slow","line":2504}}
],
"uses": [],
"contrast": []
@@ -22211,13 +22256,13 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"ChatGPT keeps its own geometry; this j3w1 value cannot be set.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/radius.none","line":359}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/radius.none","line":436}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/radius.none","line":382}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/radius.none","line":382}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/radius.none","line":386}},
+ {"port":"chatgpt","reason":"ChatGPT keeps its own geometry; this j3w1 value cannot be set.","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/radius.none","line":360}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/radius.none","line":437}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/radius.none","line":383}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/radius.none","line":383}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/radius.none","line":387}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/radius.none","line":1537}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/radius.none","line":377}}
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/radius.none","line":378}}
],
"uses": [
{"kind":"part","component":"avatar","part":"dependency.role-radius-none","state":null,"variant":null,"surface":null,"nativeKey":null,"port":null,"source":{"file":"spec/components/avatar.md","pointer":"/tokens/dependency.role-radius-none","line":34}},
@@ -22397,7 +22442,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/shadow/floating",
- "line": 456
+ "line": 473
},
"provenance": null,
"aliases": [
@@ -22406,15 +22451,15 @@
],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/shadow.floating","line":360}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/shadow.floating","line":437}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/shadow.floating","line":383}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/shadow.floating","line":383}},
- {"port":"obsidian","reason":"shadow.floating: terminal, diff, chart, hued syntax or desktop specimen semantics are outside this Markdown/application port.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/shadow.floating","line":691}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/shadow.floating","line":387}},
- {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/shadow.floating","line":1584}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/shadow.floating","line":378}},
- {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/shadow.floating","line":2504}}
+ {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/shadow.floating","line":361}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/shadow.floating","line":438}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/shadow.floating","line":384}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/shadow.floating","line":384}},
+ {"port":"obsidian","reason":"shadow.floating: terminal, diff, chart, hued syntax or desktop specimen semantics are outside this Markdown/application port.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/shadow.floating","line":692}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/shadow.floating","line":388}},
+ {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/shadow.floating","line":1585}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/shadow.floating","line":379}},
+ {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/shadow.floating","line":2505}}
],
"uses": [
{"kind":"part","component":"i3-window-frame","part":"floating.shadow","state":null,"variant":"floating","surface":null,"nativeKey":null,"port":null,"source":{"file":"spec/components/i3-window-frame.md","pointer":"/tokens/floating.shadow","line":60}}
@@ -22445,14 +22490,14 @@
"shadow.floating"
],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/space.0","line":361}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/space.0","line":438}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/space.0","line":384}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/space.0","line":384}},
+ {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/space.0","line":362}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/space.0","line":439}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/space.0","line":385}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/space.0","line":385}},
{"port":"obsidian","reason":"space.0: native spacing retained except the explicitly mapped compact prompt padding.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/space.0","line":644}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/space.0","line":388}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/space.0","line":389}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/space.0","line":1525}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/space.0","line":379}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/space.0","line":380}},
{"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/space.0","line":2468}}
],
"uses": [],
@@ -22480,14 +22525,14 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/space.1","line":362}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/space.1","line":439}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/space.1","line":385}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/space.1","line":385}},
+ {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/space.1","line":363}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/space.1","line":440}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/space.1","line":386}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/space.1","line":386}},
{"port":"obsidian","reason":"space.1: native spacing retained except the explicitly mapped compact prompt padding.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/space.1","line":645}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/space.1","line":389}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/space.1","line":390}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/space.1","line":1526}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/space.1","line":380}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/space.1","line":381}},
{"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/space.1","line":2469}}
],
"uses": [],
@@ -22515,14 +22560,14 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/space.12","line":363}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/space.12","line":440}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/space.12","line":386}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/space.12","line":386}},
+ {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/space.12","line":364}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/space.12","line":441}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/space.12","line":387}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/space.12","line":387}},
{"port":"obsidian","reason":"space.12: native spacing retained except the explicitly mapped compact prompt padding.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/space.12","line":648}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/space.12","line":390}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/space.12","line":391}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/space.12","line":1530}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/space.12","line":381}}
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/space.12","line":382}}
],
"uses": [
{"kind":"part","component":"avatar","part":"dependency.role-space-12","state":null,"variant":null,"surface":null,"nativeKey":null,"port":null,"source":{"file":"spec/components/avatar.md","pointer":"/tokens/dependency.role-space-12","line":35}},
@@ -22570,14 +22615,14 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/space.16","line":364}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/space.16","line":441}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/space.16","line":387}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/space.16","line":387}},
+ {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/space.16","line":365}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/space.16","line":442}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/space.16","line":388}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/space.16","line":388}},
{"port":"obsidian","reason":"space.16: native spacing retained except the explicitly mapped compact prompt padding.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/space.16","line":649}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/space.16","line":391}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/space.16","line":392}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/space.16","line":1531}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/space.16","line":382}}
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/space.16","line":383}}
],
"uses": [
{"kind":"part","component":"command-palette","part":"dependency.role-space-16","state":null,"variant":null,"surface":null,"nativeKey":null,"port":null,"source":{"file":"spec/components/command-palette.md","pointer":"/tokens/dependency.role-space-16","line":54}},
@@ -22612,14 +22657,14 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/space.2","line":365}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/space.2","line":442}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/space.2","line":388}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/space.2","line":388}},
+ {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/space.2","line":366}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/space.2","line":443}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/space.2","line":389}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/space.2","line":389}},
{"port":"obsidian","reason":"space.2: native spacing retained except the explicitly mapped compact prompt padding.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/space.2","line":646}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/space.2","line":392}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/space.2","line":393}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/space.2","line":1527}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/space.2","line":383}}
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/space.2","line":384}}
],
"uses": [
{"kind":"part","component":"kbd","part":"dependency.role-space-2","state":null,"variant":null,"surface":null,"nativeKey":null,"port":null,"source":{"file":"spec/components/kbd.md","pointer":"/tokens/dependency.role-space-2","line":34}},
@@ -22651,14 +22696,14 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/space.24","line":366}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/space.24","line":443}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/space.24","line":389}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/space.24","line":389}},
+ {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/space.24","line":367}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/space.24","line":444}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/space.24","line":390}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/space.24","line":390}},
{"port":"obsidian","reason":"space.24: native spacing retained except the explicitly mapped compact prompt padding.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/space.24","line":650}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/space.24","line":393}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/space.24","line":394}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/space.24","line":1532}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/space.24","line":384}}
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/space.24","line":385}}
],
"uses": [
{"kind":"part","component":"multiselect","part":"dependency.role-space-24","state":null,"variant":null,"surface":null,"nativeKey":null,"port":null,"source":{"file":"spec/components/multiselect.md","pointer":"/tokens/dependency.role-space-24","line":65}},
@@ -22690,14 +22735,14 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/space.32","line":367}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/space.32","line":444}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/space.32","line":390}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/space.32","line":390}},
+ {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/space.32","line":368}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/space.32","line":445}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/space.32","line":391}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/space.32","line":391}},
{"port":"obsidian","reason":"space.32: native spacing retained except the explicitly mapped compact prompt padding.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/space.32","line":651}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/space.32","line":394}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/space.32","line":395}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/space.32","line":1533}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/space.32","line":385}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/space.32","line":386}},
{"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/space.32","line":2470}}
],
"uses": [
@@ -22727,13 +22772,13 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/space.4","line":368}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/space.4","line":445}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/space.4","line":391}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/space.4","line":391}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/space.4","line":395}},
+ {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/space.4","line":369}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/space.4","line":446}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/space.4","line":392}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/space.4","line":392}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/space.4","line":396}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/space.4","line":1528}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/space.4","line":386}}
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/space.4","line":387}}
],
"uses": [
{"kind":"part","component":"button-group","part":"dependency.role-space-4","state":null,"variant":null,"surface":null,"nativeKey":null,"port":null,"source":{"file":"spec/components/button-group.md","pointer":"/tokens/dependency.role-space-4","line":45}},
@@ -22770,14 +22815,14 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/space.48","line":369}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/space.48","line":446}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/space.48","line":392}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/space.48","line":392}},
+ {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/space.48","line":370}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/space.48","line":447}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/space.48","line":393}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/space.48","line":393}},
{"port":"obsidian","reason":"space.48: native spacing retained except the explicitly mapped compact prompt padding.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/space.48","line":652}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/space.48","line":396}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/space.48","line":397}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/space.48","line":1534}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/space.48","line":387}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/space.48","line":388}},
{"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/space.48","line":2471}}
],
"uses": [],
@@ -22805,14 +22850,14 @@
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/space.8","line":370}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/space.8","line":447}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/space.8","line":393}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/space.8","line":393}},
+ {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/space.8","line":371}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/space.8","line":448}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/space.8","line":394}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/space.8","line":394}},
{"port":"obsidian","reason":"space.8: native spacing retained except the explicitly mapped compact prompt padding.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/space.8","line":647}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/space.8","line":397}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/space.8","line":398}},
{"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/space.8","line":1529}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/space.8","line":388}}
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/space.8","line":389}}
],
"uses": [
{"kind":"part","component":"button-group","part":"dependency.role-space-8","state":null,"variant":null,"surface":null,"nativeKey":null,"port":null,"source":{"file":"spec/components/button-group.md","pointer":"/tokens/dependency.role-space-8","line":46}},
@@ -22850,21 +22895,21 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/z/canvas",
- "line": 558
+ "line": 575
},
"provenance": null,
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/z.canvas","line":371}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/z.canvas","line":448}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/z.canvas","line":394}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/z.canvas","line":394}},
- {"port":"obsidian","reason":"z.canvas: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/z.canvas","line":703}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/z.canvas","line":398}},
- {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/z.canvas","line":1596}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/z.canvas","line":389}},
- {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/z.canvas","line":2514}}
+ {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/z.canvas","line":372}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/z.canvas","line":449}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/z.canvas","line":395}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/z.canvas","line":395}},
+ {"port":"obsidian","reason":"z.canvas: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/z.canvas","line":704}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/z.canvas","line":399}},
+ {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/z.canvas","line":1597}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/z.canvas","line":390}},
+ {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/z.canvas","line":2515}}
],
"uses": [],
"contrast": []
@@ -22885,21 +22930,21 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/z/dialog",
- "line": 570
+ "line": 587
},
"provenance": null,
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/z.dialog","line":372}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/z.dialog","line":449}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/z.dialog","line":395}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/z.dialog","line":395}},
- {"port":"obsidian","reason":"z.dialog: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/z.dialog","line":707}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/z.dialog","line":399}},
- {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/z.dialog","line":1600}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/z.dialog","line":390}},
- {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/z.dialog","line":2518}}
+ {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/z.dialog","line":373}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/z.dialog","line":450}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/z.dialog","line":396}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/z.dialog","line":396}},
+ {"port":"obsidian","reason":"z.dialog: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/z.dialog","line":708}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/z.dialog","line":400}},
+ {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/z.dialog","line":1601}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/z.dialog","line":391}},
+ {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/z.dialog","line":2519}}
],
"uses": [
{"kind":"part","component":"dialog","part":"root.z","state":null,"variant":null,"surface":null,"nativeKey":null,"port":null,"source":{"file":"spec/components/dialog.md","pointer":"/tokens/root.z","line":35}}
@@ -22922,21 +22967,21 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/z/drawer",
- "line": 567
+ "line": 584
},
"provenance": null,
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/z.drawer","line":373}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/z.drawer","line":450}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/z.drawer","line":396}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/z.drawer","line":396}},
- {"port":"obsidian","reason":"z.drawer: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/z.drawer","line":706}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/z.drawer","line":400}},
- {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/z.drawer","line":1599}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/z.drawer","line":391}},
- {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/z.drawer","line":2517}}
+ {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/z.drawer","line":374}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/z.drawer","line":451}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/z.drawer","line":397}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/z.drawer","line":397}},
+ {"port":"obsidian","reason":"z.drawer: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/z.drawer","line":707}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/z.drawer","line":401}},
+ {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/z.drawer","line":1600}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/z.drawer","line":392}},
+ {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/z.drawer","line":2518}}
],
"uses": [
{"kind":"part","component":"drawer","part":"root.z","state":null,"variant":null,"surface":null,"nativeKey":null,"port":null,"source":{"file":"spec/components/drawer.md","pointer":"/tokens/root.z","line":31}}
@@ -22959,21 +23004,21 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/z/popover",
- "line": 564
+ "line": 581
},
"provenance": null,
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/z.popover","line":374}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/z.popover","line":451}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/z.popover","line":397}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/z.popover","line":397}},
- {"port":"obsidian","reason":"z.popover: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/z.popover","line":705}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/z.popover","line":401}},
- {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/z.popover","line":1598}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/z.popover","line":392}},
- {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/z.popover","line":2516}}
+ {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/z.popover","line":375}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/z.popover","line":452}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/z.popover","line":398}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/z.popover","line":398}},
+ {"port":"obsidian","reason":"z.popover: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/z.popover","line":706}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/z.popover","line":402}},
+ {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/z.popover","line":1599}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/z.popover","line":393}},
+ {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/z.popover","line":2517}}
],
"uses": [
{"kind":"part","component":"tooltip","part":"popup.z","state":null,"variant":null,"surface":null,"nativeKey":null,"port":null,"source":{"file":"spec/components/tooltip.md","pointer":"/tokens/popup.z","line":36}}
@@ -22996,21 +23041,21 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/z/raised",
- "line": 561
+ "line": 578
},
"provenance": null,
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/z.raised","line":375}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/z.raised","line":452}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/z.raised","line":398}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/z.raised","line":398}},
- {"port":"obsidian","reason":"z.raised: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/z.raised","line":704}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/z.raised","line":402}},
- {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/z.raised","line":1597}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/z.raised","line":393}},
- {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/z.raised","line":2515}}
+ {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/z.raised","line":376}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/z.raised","line":453}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/z.raised","line":399}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/z.raised","line":399}},
+ {"port":"obsidian","reason":"z.raised: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/z.raised","line":705}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/z.raised","line":403}},
+ {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/z.raised","line":1598}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/z.raised","line":394}},
+ {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/z.raised","line":2516}}
],
"uses": [],
"contrast": []
@@ -23031,21 +23076,21 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/z/skip-link",
- "line": 576
+ "line": 593
},
"provenance": null,
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/z.skip-link","line":376}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/z.skip-link","line":453}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/z.skip-link","line":399}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/z.skip-link","line":399}},
- {"port":"obsidian","reason":"z.skip-link: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/z.skip-link","line":709}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/z.skip-link","line":403}},
- {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/z.skip-link","line":1602}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/z.skip-link","line":394}},
- {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/z.skip-link","line":2520}}
+ {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/z.skip-link","line":377}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/z.skip-link","line":454}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/z.skip-link","line":400}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/z.skip-link","line":400}},
+ {"port":"obsidian","reason":"z.skip-link: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/z.skip-link","line":710}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/z.skip-link","line":404}},
+ {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/z.skip-link","line":1603}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/z.skip-link","line":395}},
+ {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/z.skip-link","line":2521}}
],
"uses": [],
"contrast": []
@@ -23066,21 +23111,21 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/z/toast",
- "line": 573
+ "line": 590
},
"provenance": null,
"aliases": [],
"usedByAliases": [],
"unmappedPorts": [
- {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/z.toast","line":377}},
- {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/z.toast","line":454}},
- {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/z.toast","line":400}},
- {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/z.toast","line":400}},
- {"port":"obsidian","reason":"z.toast: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/z.toast","line":708}},
- {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/z.toast","line":404}},
- {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/z.toast","line":1601}},
- {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/z.toast","line":395}},
- {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/z.toast","line":2519}}
+ {"port":"chatgpt","reason":"Not an appearance setting ChatGPT exposes (geometry, spacing, motion, layout or breakpoints).","source":{"file":"ports/chatgpt/mapping.json","pointer":"/unmapped/z.toast","line":378}},
+ {"port":"claude-code","reason":"Not a colour; a Claude Code theme carries colours only.","source":{"file":"ports/claude-code/mapping.json","pointer":"/unmapped/z.toast","line":455}},
+ {"port":"codex","reason":"Not a colour; a tmTheme carries colours only.","source":{"file":"ports/codex/mapping.json","pointer":"/unmapped/z.toast","line":401}},
+ {"port":"ghostty","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/ghostty/mapping.json","pointer":"/unmapped/z.toast","line":401}},
+ {"port":"obsidian","reason":"z.toast: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.","source":{"file":"ports/obsidian/mapping.json","pointer":"/unmapped/z.toast","line":709}},
+ {"port":"orca","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/orca/mapping.json","pointer":"/unmapped/z.toast","line":405}},
+ {"port":"telegram","reason":"Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.","source":{"file":"ports/telegram/mapping.json","pointer":"/unmapped/z.toast","line":1602}},
+ {"port":"warp","reason":"Not a colour; a terminal theme file carries colours only.","source":{"file":"ports/warp/mapping.json","pointer":"/unmapped/z.toast","line":396}},
+ {"port":"windows","reason":"Outside Windows visual adapter scope; preserve host semantics.","source":{"file":"ports/windows/mapping.json","pointer":"/unmapped/z.toast","line":2520}}
],
"uses": [
{"kind":"part","component":"toast","part":"stack.z","state":null,"variant":null,"surface":null,"nativeKey":null,"port":null,"source":{"file":"spec/components/toast.md","pointer":"/tokens/stack.z","line":55}}
@@ -23113,7 +23158,8 @@
"provenance": null,
"aliases": [],
"usedByAliases": [
- "focus.ring"
+ "focus.ring",
+ "focus.ring-contrast"
],
"unmappedPorts": [],
"uses": [
@@ -23192,7 +23238,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/breakpoint/lg",
- "line": 517
+ "line": 534
},
"provenance": null,
"aliases": [],
@@ -23217,7 +23263,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/breakpoint/md",
- "line": 511
+ "line": 528
},
"provenance": null,
"aliases": [],
@@ -23242,7 +23288,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/breakpoint/sm",
- "line": 505
+ "line": 522
},
"provenance": null,
"aliases": [],
@@ -23267,7 +23313,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/breakpoint/xs",
- "line": 498
+ "line": 515
},
"provenance": null,
"aliases": [],
@@ -25380,7 +25426,7 @@
"group": "code",
"css": "#0c0909",
"variable": "--color-code-bg",
- "description": "Editor background.",
+ "description": "Background inside a code editor, diff view or diagnostics list (D-039).",
"status": "observed",
"deprecated": false,
"eligibility": {
@@ -28083,7 +28129,8 @@
"color.primitive.rose.800"
],
"usedByAliases": [
- "focus.ring-container"
+ "focus.ring-container",
+ "focus.ring-contrast"
],
"unmappedPorts": [],
"uses": [
@@ -35272,7 +35319,7 @@
"group": "terminal",
"css": "#0c0909",
"variable": "--color-terminal-bg",
- "description": "Terminal background.",
+ "description": "Terminal background. It fills a terminal's cell grid and equals ANSI 0 (D-039).",
"status": "observed",
"deprecated": false,
"eligibility": {
@@ -37494,7 +37541,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/focus/offset",
- "line": 405
+ "line": 422
},
"provenance": null,
"aliases": [],
@@ -37539,7 +37586,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/focus/offset-container",
- "line": 413
+ "line": 430
},
"provenance": null,
"aliases": [],
@@ -37564,7 +37611,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/focus/offset-invalid",
- "line": 421
+ "line": 438
},
"provenance": null,
"aliases": [],
@@ -37632,6 +37679,39 @@
"uses": [],
"contrast": []
},
+ "focus.ring-contrast": {
+ "path": "focus.ring-contrast",
+ "group": "focus",
+ "css": "1px dashed #ffa2a7",
+ "variable": "--focus-ring-contrast",
+ "description": "outline where the ordinary red ring would merge with what is under or beside it: controls on a fill and invalid fields beside the danger border; the control ring in the container colour (D-040).",
+ "status": "approved",
+ "deprecated": false,
+ "eligibility": {
+ "action": "historical-only",
+ "reason": "Historical fidelity only; preserve all documented limitations and deprecations.",
+ "decisionIds": []
+ },
+ "source": {
+ "file": "tokens/foundations.tokens.json",
+ "pointer": "/focus/ring-contrast",
+ "line": 405
+ },
+ "provenance": {
+ "status": "approved",
+ "approval": {
+ "decision": "D-040"
+ }
+ },
+ "aliases": [
+ "color.interaction.focus.ring-container",
+ "border.width.default"
+ ],
+ "usedByAliases": [],
+ "unmappedPorts": [],
+ "uses": [],
+ "contrast": []
+ },
"font.family.mono": {
"path": "font.family.mono",
"group": "font",
@@ -38384,7 +38464,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/icon/size/lg",
- "line": 540
+ "line": 557
},
"provenance": null,
"aliases": [],
@@ -38409,7 +38489,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/icon/size/md",
- "line": 534
+ "line": 551
},
"provenance": null,
"aliases": [],
@@ -38437,7 +38517,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/icon/size/sm",
- "line": 528
+ "line": 545
},
"provenance": null,
"aliases": [],
@@ -38462,7 +38542,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/icon/stroke",
- "line": 547
+ "line": 564
},
"provenance": null,
"aliases": [],
@@ -38487,7 +38567,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/layout/app-max",
- "line": 487
+ "line": 504
},
"provenance": null,
"aliases": [],
@@ -38512,7 +38592,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/layout/content-max",
- "line": 479
+ "line": 496
},
"provenance": null,
"aliases": [],
@@ -38537,7 +38617,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/layout/measure",
- "line": 474
+ "line": 491
},
"provenance": null,
"aliases": [],
@@ -38562,7 +38642,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/motion/duration/base",
- "line": 439
+ "line": 456
},
"provenance": null,
"aliases": [],
@@ -38587,7 +38667,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/motion/duration/fast",
- "line": 433
+ "line": 450
},
"provenance": null,
"aliases": [],
@@ -38612,7 +38692,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/motion/duration/slow",
- "line": 445
+ "line": 462
},
"provenance": null,
"aliases": [],
@@ -38682,7 +38762,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/shadow/floating",
- "line": 456
+ "line": 473
},
"provenance": null,
"aliases": [
@@ -39024,7 +39104,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/z/canvas",
- "line": 558
+ "line": 575
},
"provenance": null,
"aliases": [],
@@ -39049,7 +39129,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/z/dialog",
- "line": 570
+ "line": 587
},
"provenance": null,
"aliases": [],
@@ -39076,7 +39156,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/z/drawer",
- "line": 567
+ "line": 584
},
"provenance": null,
"aliases": [],
@@ -39103,7 +39183,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/z/popover",
- "line": 564
+ "line": 581
},
"provenance": null,
"aliases": [],
@@ -39130,7 +39210,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/z/raised",
- "line": 561
+ "line": 578
},
"provenance": null,
"aliases": [],
@@ -39155,7 +39235,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/z/skip-link",
- "line": 576
+ "line": 593
},
"provenance": null,
"aliases": [],
@@ -39180,7 +39260,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/z/toast",
- "line": 573
+ "line": 590
},
"provenance": null,
"aliases": [],
@@ -39217,7 +39297,8 @@
"provenance": null,
"aliases": [],
"usedByAliases": [
- "focus.ring"
+ "focus.ring",
+ "focus.ring-contrast"
],
"unmappedPorts": [],
"uses": [
@@ -39296,7 +39377,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/breakpoint/lg",
- "line": 517
+ "line": 534
},
"provenance": null,
"aliases": [],
@@ -39321,7 +39402,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/breakpoint/md",
- "line": 511
+ "line": 528
},
"provenance": null,
"aliases": [],
@@ -39346,7 +39427,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/breakpoint/sm",
- "line": 505
+ "line": 522
},
"provenance": null,
"aliases": [],
@@ -39371,7 +39452,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/breakpoint/xs",
- "line": 498
+ "line": 515
},
"provenance": null,
"aliases": [],
@@ -41510,7 +41591,7 @@
"group": "code",
"css": "#0c0909",
"variable": "--color-code-bg",
- "description": "Editor background.",
+ "description": "Background inside a code editor, diff view or diagnostics list (D-039).",
"status": "observed",
"deprecated": false,
"eligibility": {
@@ -44291,7 +44372,8 @@
"color.primitive.rose.800"
],
"usedByAliases": [
- "focus.ring-container"
+ "focus.ring-container",
+ "focus.ring-contrast"
],
"unmappedPorts": [],
"uses": [
@@ -49686,7 +49768,7 @@
"group": "surface",
"css": "#000000",
"variable": "--color-surface-code",
- "description": "Editor background.",
+ "description": "Surface a static code block sits on, such as a document's pre: pure black like the canvas (D-023, D-039).",
"status": "approved",
"deprecated": false,
"eligibility": {
@@ -50888,7 +50970,7 @@
"group": "surface",
"css": "#000000",
"variable": "--color-surface-terminal",
- "description": "Terminal background.",
+ "description": "Surface of a pane that hosts a terminal, around its cell grid (D-023, D-039).",
"status": "approved",
"deprecated": false,
"eligibility": {
@@ -51547,7 +51629,7 @@
"group": "terminal",
"css": "#0c0909",
"variable": "--color-terminal-bg",
- "description": "Terminal background.",
+ "description": "Terminal background. It fills a terminal's cell grid and equals ANSI 0 (D-039).",
"status": "observed",
"deprecated": false,
"eligibility": {
@@ -53781,7 +53863,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/focus/offset",
- "line": 405
+ "line": 422
},
"provenance": null,
"aliases": [],
@@ -53826,7 +53908,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/focus/offset-container",
- "line": 413
+ "line": 430
},
"provenance": null,
"aliases": [],
@@ -53851,7 +53933,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/focus/offset-invalid",
- "line": 421
+ "line": 438
},
"provenance": null,
"aliases": [],
@@ -53919,6 +54001,39 @@
"uses": [],
"contrast": []
},
+ "focus.ring-contrast": {
+ "path": "focus.ring-contrast",
+ "group": "focus",
+ "css": "1px dashed #ffa2a7",
+ "variable": "--focus-ring-contrast",
+ "description": "outline where the ordinary red ring would merge with what is under or beside it: controls on a fill and invalid fields beside the danger border; the control ring in the container colour (D-040).",
+ "status": "approved",
+ "deprecated": false,
+ "eligibility": {
+ "action": "blocked",
+ "reason": "Proposed profile: preview only, not downstream delivery.",
+ "decisionIds": []
+ },
+ "source": {
+ "file": "tokens/foundations.tokens.json",
+ "pointer": "/focus/ring-contrast",
+ "line": 405
+ },
+ "provenance": {
+ "status": "approved",
+ "approval": {
+ "decision": "D-040"
+ }
+ },
+ "aliases": [
+ "color.interaction.focus.ring-container",
+ "border.width.default"
+ ],
+ "usedByAliases": [],
+ "unmappedPorts": [],
+ "uses": [],
+ "contrast": []
+ },
"font.family.mono": {
"path": "font.family.mono",
"group": "font",
@@ -54671,7 +54786,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/icon/size/lg",
- "line": 540
+ "line": 557
},
"provenance": null,
"aliases": [],
@@ -54696,7 +54811,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/icon/size/md",
- "line": 534
+ "line": 551
},
"provenance": null,
"aliases": [],
@@ -54724,7 +54839,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/icon/size/sm",
- "line": 528
+ "line": 545
},
"provenance": null,
"aliases": [],
@@ -54749,7 +54864,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/icon/stroke",
- "line": 547
+ "line": 564
},
"provenance": null,
"aliases": [],
@@ -54774,7 +54889,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/layout/app-max",
- "line": 487
+ "line": 504
},
"provenance": null,
"aliases": [],
@@ -54799,7 +54914,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/layout/content-max",
- "line": 479
+ "line": 496
},
"provenance": null,
"aliases": [],
@@ -54824,7 +54939,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/layout/measure",
- "line": 474
+ "line": 491
},
"provenance": null,
"aliases": [],
@@ -54849,7 +54964,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/motion/duration/base",
- "line": 439
+ "line": 456
},
"provenance": null,
"aliases": [],
@@ -54874,7 +54989,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/motion/duration/fast",
- "line": 433
+ "line": 450
},
"provenance": null,
"aliases": [],
@@ -54899,7 +55014,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/motion/duration/slow",
- "line": 445
+ "line": 462
},
"provenance": null,
"aliases": [],
@@ -54969,7 +55084,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/shadow/floating",
- "line": 456
+ "line": 473
},
"provenance": null,
"aliases": [
@@ -55311,7 +55426,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/z/canvas",
- "line": 558
+ "line": 575
},
"provenance": null,
"aliases": [],
@@ -55336,7 +55451,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/z/dialog",
- "line": 570
+ "line": 587
},
"provenance": null,
"aliases": [],
@@ -55363,7 +55478,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/z/drawer",
- "line": 567
+ "line": 584
},
"provenance": null,
"aliases": [],
@@ -55390,7 +55505,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/z/popover",
- "line": 564
+ "line": 581
},
"provenance": null,
"aliases": [],
@@ -55417,7 +55532,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/z/raised",
- "line": 561
+ "line": 578
},
"provenance": null,
"aliases": [],
@@ -55442,7 +55557,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/z/skip-link",
- "line": 576
+ "line": 593
},
"provenance": null,
"aliases": [],
@@ -55467,7 +55582,7 @@
"source": {
"file": "tokens/foundations.tokens.json",
"pointer": "/z/toast",
- "line": 573
+ "line": 590
},
"provenance": null,
"aliases": [],
diff --git a/exports/tokens.css b/exports/tokens.css
index c42ff00ae..de65c19a5 100644
--- a/exports/tokens.css
+++ b/exports/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/exports/tokens.resolved.json b/exports/tokens.resolved.json
index 101fbd04e..72db2660d 100644
--- a/exports/tokens.resolved.json
+++ b/exports/tokens.resolved.json
@@ -2263,7 +2263,7 @@
},
"css": "#000000",
"aliasOf": "color.primitive.ink.0",
- "description": "Editor background.",
+ "description": "Surface a static code block sits on, such as a document's pre: pure black like the canvas (D-023, D-039).",
"status": "approved",
"deprecated": false,
"decisionId": "D-023",
@@ -2287,7 +2287,7 @@
},
"css": "#000000",
"aliasOf": "color.primitive.ink.0",
- "description": "Terminal background.",
+ "description": "Surface of a pane that hosts a terminal, around its cell grid (D-023, D-039).",
"status": "approved",
"deprecated": false,
"decisionId": "D-023",
@@ -4477,7 +4477,7 @@
},
"css": "#0c0909",
"aliasOf": "color.primitive.ink.20",
- "description": "Editor background.",
+ "description": "Background inside a code editor, diff view or diagnostics list (D-039).",
"status": "observed",
"deprecated": false,
"decisionId": null,
@@ -5941,7 +5941,7 @@
},
"css": "#0c0909",
"aliasOf": "color.primitive.ink.20",
- "description": "Terminal background.",
+ "description": "Terminal background. It fills a terminal's cell grid and equals ANSI 0 (D-039).",
"status": "observed",
"deprecated": false,
"decisionId": null,
@@ -7674,6 +7674,37 @@
"decisionIds": []
}
},
+ "focus.ring-contrast": {
+ "type": "border",
+ "value": {
+ "color": {
+ "colorSpace": "srgb",
+ "components": [
+ 1,
+ 0.6353,
+ 0.6549
+ ],
+ "alpha": 1,
+ "hex": "#ffa2a7"
+ },
+ "width": {
+ "value": 1,
+ "unit": "px"
+ },
+ "style": "dashed"
+ },
+ "css": "1px dashed #ffa2a7",
+ "aliasOf": null,
+ "description": "outline where the ordinary red ring would merge with what is under or beside it: controls on a fill and invalid fields beside the danger border; the control ring in the container colour (D-040).",
+ "status": "approved",
+ "deprecated": false,
+ "decisionId": "D-040",
+ "eligibility": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ }
+ },
"focus.offset": {
"type": "dimension",
"value": {
@@ -12591,7 +12622,7 @@
},
"css": "#0c0909",
"aliasOf": "color.primitive.ink.20",
- "description": "Editor background.",
+ "description": "Background inside a code editor, diff view or diagnostics list (D-039).",
"status": "observed",
"deprecated": false,
"decisionId": null,
@@ -14055,7 +14086,7 @@
},
"css": "#0c0909",
"aliasOf": "color.primitive.ink.20",
- "description": "Terminal background.",
+ "description": "Terminal background. It fills a terminal's cell grid and equals ANSI 0 (D-039).",
"status": "observed",
"deprecated": false,
"decisionId": null,
@@ -15788,6 +15819,37 @@
"decisionIds": []
}
},
+ "focus.ring-contrast": {
+ "type": "border",
+ "value": {
+ "color": {
+ "colorSpace": "srgb",
+ "components": [
+ 1,
+ 0.6353,
+ 0.6549
+ ],
+ "alpha": 1,
+ "hex": "#ffa2a7"
+ },
+ "width": {
+ "value": 1,
+ "unit": "px"
+ },
+ "style": "dashed"
+ },
+ "css": "1px dashed #ffa2a7",
+ "aliasOf": null,
+ "description": "outline where the ordinary red ring would merge with what is under or beside it: controls on a fill and invalid fields beside the danger border; the control ring in the container colour (D-040).",
+ "status": "approved",
+ "deprecated": false,
+ "decisionId": "D-040",
+ "eligibility": {
+ "action": "historical-only",
+ "reason": "Historical fidelity only; preserve all documented limitations and deprecations.",
+ "decisionIds": []
+ }
+ },
"focus.offset": {
"type": "dimension",
"value": {
@@ -18493,7 +18555,7 @@
},
"css": "#000000",
"aliasOf": "color.primitive.ink.0",
- "description": "Editor background.",
+ "description": "Surface a static code block sits on, such as a document's pre: pure black like the canvas (D-023, D-039).",
"status": "approved",
"deprecated": false,
"decisionId": "D-023",
@@ -18517,7 +18579,7 @@
},
"css": "#000000",
"aliasOf": "color.primitive.ink.0",
- "description": "Terminal background.",
+ "description": "Surface of a pane that hosts a terminal, around its cell grid (D-023, D-039).",
"status": "approved",
"deprecated": false,
"decisionId": "D-023",
@@ -20707,7 +20769,7 @@
},
"css": "#0c0909",
"aliasOf": "color.primitive.ink.20",
- "description": "Editor background.",
+ "description": "Background inside a code editor, diff view or diagnostics list (D-039).",
"status": "observed",
"deprecated": false,
"decisionId": null,
@@ -22191,7 +22253,7 @@
},
"css": "#0c0909",
"aliasOf": "color.primitive.ink.20",
- "description": "Terminal background.",
+ "description": "Terminal background. It fills a terminal's cell grid and equals ANSI 0 (D-039).",
"status": "observed",
"deprecated": false,
"decisionId": null,
@@ -23962,6 +24024,37 @@
"decisionIds": []
}
},
+ "focus.ring-contrast": {
+ "type": "border",
+ "value": {
+ "color": {
+ "colorSpace": "srgb",
+ "components": [
+ 1,
+ 0.6353,
+ 0.6549
+ ],
+ "alpha": 1,
+ "hex": "#ffa2a7"
+ },
+ "width": {
+ "value": 1,
+ "unit": "px"
+ },
+ "style": "dashed"
+ },
+ "css": "1px dashed #ffa2a7",
+ "aliasOf": null,
+ "description": "outline where the ordinary red ring would merge with what is under or beside it: controls on a fill and invalid fields beside the danger border; the control ring in the container colour (D-040).",
+ "status": "approved",
+ "deprecated": false,
+ "decisionId": "D-040",
+ "eligibility": {
+ "action": "blocked",
+ "reason": "Proposed profile: preview only, not downstream delivery.",
+ "decisionIds": []
+ }
+ },
"focus.offset": {
"type": "dimension",
"value": {
diff --git a/packages/ui/dist/canonical/admin-form.json b/packages/ui/dist/canonical/admin-form.json
index 0283a0047..c3ca72c30 100644
--- a/packages/ui/dist/canonical/admin-form.json
+++ b/packages/ui/dist/canonical/admin-form.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "admin-form",
"family": "composed",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/alert.json b/packages/ui/dist/canonical/alert.json
index 718611e68..eb447e129 100644
--- a/packages/ui/dist/canonical/alert.json
+++ b/packages/ui/dist/canonical/alert.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "alert",
"family": "feedback",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/avatar.json b/packages/ui/dist/canonical/avatar.json
index fb1f97388..c70e2461b 100644
--- a/packages/ui/dist/canonical/avatar.json
+++ b/packages/ui/dist/canonical/avatar.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "avatar",
"family": "display",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/badge.json b/packages/ui/dist/canonical/badge.json
index 106dcc690..8b46a0d23 100644
--- a/packages/ui/dist/canonical/badge.json
+++ b/packages/ui/dist/canonical/badge.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "badge",
"family": "display",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/breadcrumbs.json b/packages/ui/dist/canonical/breadcrumbs.json
index 7e554c729..7006735ce 100644
--- a/packages/ui/dist/canonical/breadcrumbs.json
+++ b/packages/ui/dist/canonical/breadcrumbs.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "breadcrumbs",
"family": "navigation",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/button-group.json b/packages/ui/dist/canonical/button-group.json
index 4c6c97f98..e7948303c 100644
--- a/packages/ui/dist/canonical/button-group.json
+++ b/packages/ui/dist/canonical/button-group.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "button-group",
"family": "actions",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/button.json b/packages/ui/dist/canonical/button.json
index bd4061628..da2ac08c3 100644
--- a/packages/ui/dist/canonical/button.json
+++ b/packages/ui/dist/canonical/button.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "button",
"family": "actions",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/card.json b/packages/ui/dist/canonical/card.json
index ca19cb2fe..7dcd28ee7 100644
--- a/packages/ui/dist/canonical/card.json
+++ b/packages/ui/dist/canonical/card.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "card",
"family": "display",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/chart.json b/packages/ui/dist/canonical/chart.json
index bc347c06c..406eae980 100644
--- a/packages/ui/dist/canonical/chart.json
+++ b/packages/ui/dist/canonical/chart.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "chart",
"family": "display",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/checkbox.json b/packages/ui/dist/canonical/checkbox.json
index b9dadf062..4b0dada64 100644
--- a/packages/ui/dist/canonical/checkbox.json
+++ b/packages/ui/dist/canonical/checkbox.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "checkbox",
"family": "forms-basic",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/chip.json b/packages/ui/dist/canonical/chip.json
index fa03cf653..f47a88575 100644
--- a/packages/ui/dist/canonical/chip.json
+++ b/packages/ui/dist/canonical/chip.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "chip",
"family": "display",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/code-editor.json b/packages/ui/dist/canonical/code-editor.json
index cb0f8c965..fc8944026 100644
--- a/packages/ui/dist/canonical/code-editor.json
+++ b/packages/ui/dist/canonical/code-editor.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "code-editor",
"family": "developer",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/combobox.json b/packages/ui/dist/canonical/combobox.json
index 84a1a1075..1624d5836 100644
--- a/packages/ui/dist/canonical/combobox.json
+++ b/packages/ui/dist/canonical/combobox.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "combobox",
"family": "forms-advanced",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/command-palette.json b/packages/ui/dist/canonical/command-palette.json
index 89d1ec897..4b6359fb4 100644
--- a/packages/ui/dist/canonical/command-palette.json
+++ b/packages/ui/dist/canonical/command-palette.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "command-palette",
"family": "navigation",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/compact-dashboard.json b/packages/ui/dist/canonical/compact-dashboard.json
index 59275306e..13fbcf89c 100644
--- a/packages/ui/dist/canonical/compact-dashboard.json
+++ b/packages/ui/dist/canonical/compact-dashboard.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "compact-dashboard",
"family": "composed",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/data-table.json b/packages/ui/dist/canonical/data-table.json
index 39ae3a675..d0a422186 100644
--- a/packages/ui/dist/canonical/data-table.json
+++ b/packages/ui/dist/canonical/data-table.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "data-table",
"family": "display",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/date-picker.json b/packages/ui/dist/canonical/date-picker.json
index 4bec7eff6..511bd0e30 100644
--- a/packages/ui/dist/canonical/date-picker.json
+++ b/packages/ui/dist/canonical/date-picker.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "date-picker",
"family": "forms-advanced",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/description-list.json b/packages/ui/dist/canonical/description-list.json
index 158805f0e..4ac5514d1 100644
--- a/packages/ui/dist/canonical/description-list.json
+++ b/packages/ui/dist/canonical/description-list.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "description-list",
"family": "display",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/diagnostics.json b/packages/ui/dist/canonical/diagnostics.json
index a44d466f5..75bbe54d8 100644
--- a/packages/ui/dist/canonical/diagnostics.json
+++ b/packages/ui/dist/canonical/diagnostics.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "diagnostics",
"family": "developer",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/dialog.json b/packages/ui/dist/canonical/dialog.json
index 5431a4576..72969f15b 100644
--- a/packages/ui/dist/canonical/dialog.json
+++ b/packages/ui/dist/canonical/dialog.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "dialog",
"family": "feedback",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/diff-view.json b/packages/ui/dist/canonical/diff-view.json
index 61e67eca3..2b8fc3f18 100644
--- a/packages/ui/dist/canonical/diff-view.json
+++ b/packages/ui/dist/canonical/diff-view.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "diff-view",
"family": "developer",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/disclosure.json b/packages/ui/dist/canonical/disclosure.json
index 96d560247..cdbff69c9 100644
--- a/packages/ui/dist/canonical/disclosure.json
+++ b/packages/ui/dist/canonical/disclosure.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "disclosure",
"family": "navigation",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/drawer.json b/packages/ui/dist/canonical/drawer.json
index 693b4d511..409ee154b 100644
--- a/packages/ui/dist/canonical/drawer.json
+++ b/packages/ui/dist/canonical/drawer.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "drawer",
"family": "feedback",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/editor-search.json b/packages/ui/dist/canonical/editor-search.json
index 32124e46b..9443b5f0f 100644
--- a/packages/ui/dist/canonical/editor-search.json
+++ b/packages/ui/dist/canonical/editor-search.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "editor-search",
"family": "developer",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/empty-state.json b/packages/ui/dist/canonical/empty-state.json
index 8cbc9fb6c..33e2a4f85 100644
--- a/packages/ui/dist/canonical/empty-state.json
+++ b/packages/ui/dist/canonical/empty-state.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "empty-state",
"family": "feedback",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/error-state.json b/packages/ui/dist/canonical/error-state.json
index 0c5034cad..398ff9eb1 100644
--- a/packages/ui/dist/canonical/error-state.json
+++ b/packages/ui/dist/canonical/error-state.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "error-state",
"family": "feedback",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/field.json b/packages/ui/dist/canonical/field.json
index 6bf663351..10621a359 100644
--- a/packages/ui/dist/canonical/field.json
+++ b/packages/ui/dist/canonical/field.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "field",
"family": "forms-basic",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/fieldset.json b/packages/ui/dist/canonical/fieldset.json
index 22256fc86..6eea376f9 100644
--- a/packages/ui/dist/canonical/fieldset.json
+++ b/packages/ui/dist/canonical/fieldset.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "fieldset",
"family": "forms-basic",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/file-browser.json b/packages/ui/dist/canonical/file-browser.json
index 2a602cab0..48d7f5a7b 100644
--- a/packages/ui/dist/canonical/file-browser.json
+++ b/packages/ui/dist/canonical/file-browser.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "file-browser",
"family": "composed",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/file-input.json b/packages/ui/dist/canonical/file-input.json
index 092621d2a..1023534b4 100644
--- a/packages/ui/dist/canonical/file-input.json
+++ b/packages/ui/dist/canonical/file-input.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "file-input",
"family": "forms-advanced",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/filterable-table.json b/packages/ui/dist/canonical/filterable-table.json
index 47672643e..1b4025619 100644
--- a/packages/ui/dist/canonical/filterable-table.json
+++ b/packages/ui/dist/canonical/filterable-table.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "filterable-table",
"family": "composed",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/form-builder.json b/packages/ui/dist/canonical/form-builder.json
index fee2fdc75..cde246350 100644
--- a/packages/ui/dist/canonical/form-builder.json
+++ b/packages/ui/dist/canonical/form-builder.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "form-builder",
"family": "forms-advanced",
"maturity": "draft",
diff --git a/packages/ui/dist/canonical/i3-window-frame.json b/packages/ui/dist/canonical/i3-window-frame.json
index 5c9a13fdb..7ee8e7629 100644
--- a/packages/ui/dist/canonical/i3-window-frame.json
+++ b/packages/ui/dist/canonical/i3-window-frame.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "i3-window-frame",
"family": "composed",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/icon-button.json b/packages/ui/dist/canonical/icon-button.json
index 54c4b95d2..60d094ce1 100644
--- a/packages/ui/dist/canonical/icon-button.json
+++ b/packages/ui/dist/canonical/icon-button.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "icon-button",
"family": "actions",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/kbd.json b/packages/ui/dist/canonical/kbd.json
index 1842e98a0..4288b23de 100644
--- a/packages/ui/dist/canonical/kbd.json
+++ b/packages/ui/dist/canonical/kbd.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "kbd",
"family": "display",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/link.json b/packages/ui/dist/canonical/link.json
index 172f73b6a..dcdb2c7a1 100644
--- a/packages/ui/dist/canonical/link.json
+++ b/packages/ui/dist/canonical/link.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "link",
"family": "actions",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/list.json b/packages/ui/dist/canonical/list.json
index 0b40b7264..b35cb4f71 100644
--- a/packages/ui/dist/canonical/list.json
+++ b/packages/ui/dist/canonical/list.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "list",
"family": "display",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/loading-indicator.json b/packages/ui/dist/canonical/loading-indicator.json
index 4248e1107..6301abb96 100644
--- a/packages/ui/dist/canonical/loading-indicator.json
+++ b/packages/ui/dist/canonical/loading-indicator.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "loading-indicator",
"family": "feedback",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/menu.json b/packages/ui/dist/canonical/menu.json
index 759da2894..3c1256854 100644
--- a/packages/ui/dist/canonical/menu.json
+++ b/packages/ui/dist/canonical/menu.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "menu",
"family": "navigation",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/multiselect.json b/packages/ui/dist/canonical/multiselect.json
index 686d488d3..26855b8e7 100644
--- a/packages/ui/dist/canonical/multiselect.json
+++ b/packages/ui/dist/canonical/multiselect.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "multiselect",
"family": "forms-advanced",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/number-field.json b/packages/ui/dist/canonical/number-field.json
index 6bb6373b6..b0d280fd0 100644
--- a/packages/ui/dist/canonical/number-field.json
+++ b/packages/ui/dist/canonical/number-field.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "number-field",
"family": "forms-basic",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/pagination.json b/packages/ui/dist/canonical/pagination.json
index fc277760b..33b19ef7c 100644
--- a/packages/ui/dist/canonical/pagination.json
+++ b/packages/ui/dist/canonical/pagination.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "pagination",
"family": "navigation",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/popover.json b/packages/ui/dist/canonical/popover.json
index 811d70acb..ced3604ad 100644
--- a/packages/ui/dist/canonical/popover.json
+++ b/packages/ui/dist/canonical/popover.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "popover",
"family": "feedback",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/progress.json b/packages/ui/dist/canonical/progress.json
index b96e3feab..fd69c6ca5 100644
--- a/packages/ui/dist/canonical/progress.json
+++ b/packages/ui/dist/canonical/progress.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "progress",
"family": "feedback",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/radio-group.json b/packages/ui/dist/canonical/radio-group.json
index 1d522509e..3cecb1537 100644
--- a/packages/ui/dist/canonical/radio-group.json
+++ b/packages/ui/dist/canonical/radio-group.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "radio-group",
"family": "forms-basic",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/range.json b/packages/ui/dist/canonical/range.json
index 1b72854de..b81edfc3d 100644
--- a/packages/ui/dist/canonical/range.json
+++ b/packages/ui/dist/canonical/range.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "range",
"family": "forms-basic",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/repeater.json b/packages/ui/dist/canonical/repeater.json
index 9dfe509b9..269ade516 100644
--- a/packages/ui/dist/canonical/repeater.json
+++ b/packages/ui/dist/canonical/repeater.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "repeater",
"family": "forms-advanced",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/search-field.json b/packages/ui/dist/canonical/search-field.json
index 0f9a2a7a6..cb544ff82 100644
--- a/packages/ui/dist/canonical/search-field.json
+++ b/packages/ui/dist/canonical/search-field.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "search-field",
"family": "forms-basic",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/segmented-control.json b/packages/ui/dist/canonical/segmented-control.json
index de2b1fe06..87a11f2bb 100644
--- a/packages/ui/dist/canonical/segmented-control.json
+++ b/packages/ui/dist/canonical/segmented-control.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "segmented-control",
"family": "actions",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/select.json b/packages/ui/dist/canonical/select.json
index 250dec3f9..065fa3187 100644
--- a/packages/ui/dist/canonical/select.json
+++ b/packages/ui/dist/canonical/select.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "select",
"family": "forms-basic",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/settings-panel.json b/packages/ui/dist/canonical/settings-panel.json
index b6184e06c..f32ce11f0 100644
--- a/packages/ui/dist/canonical/settings-panel.json
+++ b/packages/ui/dist/canonical/settings-panel.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "settings-panel",
"family": "composed",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/sidebar-nav.json b/packages/ui/dist/canonical/sidebar-nav.json
index b6e3fe8b7..83aafc9ee 100644
--- a/packages/ui/dist/canonical/sidebar-nav.json
+++ b/packages/ui/dist/canonical/sidebar-nav.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "sidebar-nav",
"family": "navigation",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/skeleton.json b/packages/ui/dist/canonical/skeleton.json
index e35e3d103..c65ca0d6c 100644
--- a/packages/ui/dist/canonical/skeleton.json
+++ b/packages/ui/dist/canonical/skeleton.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "skeleton",
"family": "feedback",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/skip-link.json b/packages/ui/dist/canonical/skip-link.json
index d0225bf23..dd427ea2e 100644
--- a/packages/ui/dist/canonical/skip-link.json
+++ b/packages/ui/dist/canonical/skip-link.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "skip-link",
"family": "navigation",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/switch.json b/packages/ui/dist/canonical/switch.json
index 012a70d63..0e3da6a16 100644
--- a/packages/ui/dist/canonical/switch.json
+++ b/packages/ui/dist/canonical/switch.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "switch",
"family": "forms-basic",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/table.json b/packages/ui/dist/canonical/table.json
index fe0110f0f..1056827c6 100644
--- a/packages/ui/dist/canonical/table.json
+++ b/packages/ui/dist/canonical/table.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "table",
"family": "display",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/tabs.json b/packages/ui/dist/canonical/tabs.json
index 8980fbe3d..61f038888 100644
--- a/packages/ui/dist/canonical/tabs.json
+++ b/packages/ui/dist/canonical/tabs.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "tabs",
"family": "navigation",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/terminal.json b/packages/ui/dist/canonical/terminal.json
index 466359d3c..ce0ddf004 100644
--- a/packages/ui/dist/canonical/terminal.json
+++ b/packages/ui/dist/canonical/terminal.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "terminal",
"family": "developer",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/text-field.json b/packages/ui/dist/canonical/text-field.json
index d654df458..5f556805c 100644
--- a/packages/ui/dist/canonical/text-field.json
+++ b/packages/ui/dist/canonical/text-field.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "text-field",
"family": "forms-basic",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/textarea.json b/packages/ui/dist/canonical/textarea.json
index e09fe13b0..4b2dd9971 100644
--- a/packages/ui/dist/canonical/textarea.json
+++ b/packages/ui/dist/canonical/textarea.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "textarea",
"family": "forms-basic",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/time-picker.json b/packages/ui/dist/canonical/time-picker.json
index 29f48b021..6e86cb5ea 100644
--- a/packages/ui/dist/canonical/time-picker.json
+++ b/packages/ui/dist/canonical/time-picker.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "time-picker",
"family": "forms-advanced",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/timeline.json b/packages/ui/dist/canonical/timeline.json
index d85df3434..db2140a60 100644
--- a/packages/ui/dist/canonical/timeline.json
+++ b/packages/ui/dist/canonical/timeline.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "timeline",
"family": "display",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/toast.json b/packages/ui/dist/canonical/toast.json
index 43391e3bb..85bed9bdc 100644
--- a/packages/ui/dist/canonical/toast.json
+++ b/packages/ui/dist/canonical/toast.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "toast",
"family": "feedback",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/toolbar.json b/packages/ui/dist/canonical/toolbar.json
index 7c862698b..311463980 100644
--- a/packages/ui/dist/canonical/toolbar.json
+++ b/packages/ui/dist/canonical/toolbar.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "toolbar",
"family": "navigation",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/tooltip.json b/packages/ui/dist/canonical/tooltip.json
index c459e8d7f..dbdd75ddd 100644
--- a/packages/ui/dist/canonical/tooltip.json
+++ b/packages/ui/dist/canonical/tooltip.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "tooltip",
"family": "feedback",
"maturity": "stable",
@@ -220,7 +220,7 @@
},
{
"state": "hover",
- "visual": "trigger background → {color.action.tertiary.hover-bg}; popup after 300 ms",
+ "visual": "trigger background → {color.action.tertiary.hover-bg}; popup after 300 ms; it hides 300 ms after the pointer leaves trigger and popup",
"channel": "cursor: pointer; the popup",
"tokens": {
"fg": {
@@ -360,7 +360,7 @@
],
"responsive": "The popup is at most 24rem wide and wraps; it flips to the side with room and is never clipped by the viewport; at 320px it is as wide as the viewport minus the gutter. RTL mirrors the placement and keeps the shortcut at the end.",
"portability": {
- "web": "the trigger carries aria-describedby to a
; visibility toggles the hidden attribute after a 300 ms open delay and no close delay; positioned with anchor positioning or a popover at z.popover; the tooltip is never the only place a control's name lives.",
+ "web": "the trigger carries aria-describedby to a
; visibility toggles the hidden attribute after a 300 ms open delay, and hides 300 ms after the pointer leaves trigger and popup; positioned with anchor positioning or a popover at z.popover; the tooltip is never the only place a control's name lives.",
"nativeFallbacks": [
"GTK4 tooltip-text; the host draws it with the overlay border through the tooltip css node.",
"Qt QToolTip stylesheet; border and background from the tokens; no rounded corners.",
diff --git a/packages/ui/dist/canonical/tree.json b/packages/ui/dist/canonical/tree.json
index 31111bfbe..c298cdfff 100644
--- a/packages/ui/dist/canonical/tree.json
+++ b/packages/ui/dist/canonical/tree.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "tree",
"family": "navigation",
"maturity": "stable",
diff --git a/packages/ui/dist/canonical/wizard.json b/packages/ui/dist/canonical/wizard.json
index 286edb722..270932743 100644
--- a/packages/ui/dist/canonical/wizard.json
+++ b/packages/ui/dist/canonical/wizard.json
@@ -9,7 +9,7 @@
"stability": "release",
"policy": "Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens."
},
- "sourceDigest": "sha256-6uRaGQN7UQ/uX3qDHUJuH9NBVBJtjcyePgHd2iIlnYw=",
+ "sourceDigest": "sha256-o4R1QcVREh4X3VMinZljRvfzhRgfN1pUaC1bgNc444o=",
"id": "wizard",
"family": "forms-advanced",
"maturity": "stable",
diff --git a/packages/ui/dist/copy/form-builder/runtime/chunks/form-builder-CqcTkYZe.js b/packages/ui/dist/chunks/form-builder-D-fxaPbt.js
similarity index 99%
rename from packages/ui/dist/copy/form-builder/runtime/chunks/form-builder-CqcTkYZe.js
rename to packages/ui/dist/chunks/form-builder-D-fxaPbt.js
index 25321f36f..cec8ebfdf 100644
--- a/packages/ui/dist/copy/form-builder/runtime/chunks/form-builder-CqcTkYZe.js
+++ b/packages/ui/dist/chunks/form-builder-D-fxaPbt.js
@@ -69,7 +69,7 @@ var identity_default = {
name: "j3w1-theme",
version: "4.0.0",
profile: "default",
- sourceDigest: "sha256-9w2X6Cih03PDyOMVu4XmMrmPqHs2iwGGaq5TvafCIUw="
+ sourceDigest: "sha256-mKTBzdPJfZvkgtYFTGC3tgyX+JltZDoEDZW81bCBleo="
};
//#endregion
//#region packages/ui/src/internal/form-builder.js
diff --git a/packages/ui/dist/chunks/form-builder-BKs59W9y.js b/packages/ui/dist/chunks/form-builder-DVUkImzv.js
similarity index 92%
rename from packages/ui/dist/chunks/form-builder-BKs59W9y.js
rename to packages/ui/dist/chunks/form-builder-DVUkImzv.js
index 106281223..bd98e8ae0 100644
--- a/packages/ui/dist/chunks/form-builder-BKs59W9y.js
+++ b/packages/ui/dist/chunks/form-builder-DVUkImzv.js
@@ -1,5 +1,5 @@
import { t as J3w1Element } from "./element-Dovcr9Ky.js";
-import { t as mountBuilder } from "./form-builder-CqcTkYZe.js";
+import { t as mountBuilder } from "./form-builder-D-fxaPbt.js";
//#region packages/ui/src/behaviors/form-builder.js
function formBuilder(root, { signal }) {
const editor = root.querySelector("[data-builder]");
@@ -22,7 +22,7 @@ function formBuilder(root, { signal }) {
var J3w1FormBuilder = class extends J3w1Element {
static componentId = "form-builder";
static version = "4.0.0";
- static implementationId = "sha256-41YE+uuaHQO+zqvZR2V4/ifVHjcZBY/i/HTBt2PoeK0=";
+ static implementationId = "sha256-phb+B6IwUq9d3zUvRQnfCbfvilFz2dNnAqCe6LX5JOY=";
static connect = formBuilder;
static upgradeProperties = [
"disabled",
diff --git a/packages/ui/dist/copy/chip/runtime/chunks/overlays-Bw8SSDKz.js b/packages/ui/dist/chunks/overlays-BwgpF4jI.js
similarity index 94%
rename from packages/ui/dist/copy/chip/runtime/chunks/overlays-Bw8SSDKz.js
rename to packages/ui/dist/chunks/overlays-BwgpF4jI.js
index 3eeb8ff0d..4b8de2e8b 100644
--- a/packages/ui/dist/copy/chip/runtime/chunks/overlays-Bw8SSDKz.js
+++ b/packages/ui/dist/chunks/overlays-BwgpF4jI.js
@@ -55,9 +55,10 @@ function tooltip(root, { on }) {
if (!trigger || !popup) return {};
identify(root, popup, "tooltip");
trigger.setAttribute("aria-describedby", popup.id);
- let timer, dismissed = false, hovering = false;
+ let timer, hideTimer, dismissed = false, hovering = false;
const stop = () => {
clearTimeout(timer);
+ clearTimeout(hideTimer);
};
const hide = () => {
stop();
@@ -70,18 +71,26 @@ function tooltip(root, { on }) {
place(trigger, popup);
}
};
+ const hideSoon = () => {
+ clearTimeout(timer);
+ clearTimeout(hideTimer);
+ hideTimer = setTimeout(() => {
+ if (!hovering && root.ownerDocument.activeElement !== trigger) hide();
+ }, 300);
+ };
on(trigger, "pointerenter", (event) => {
if (event.pointerType !== "touch") {
hovering = true;
dismissed = false;
- timer = setTimeout(show, 300);
+ clearTimeout(hideTimer);
+ if (popup.hidden) timer = setTimeout(show, 300);
}
});
on(root, "pointerleave", (event) => {
if (!root.contains(event.relatedTarget)) {
hovering = false;
dismissed = false;
- if (root.ownerDocument.activeElement !== trigger) hide();
+ if (root.ownerDocument.activeElement !== trigger) hideSoon();
}
});
on(popup, "pointerenter", () => {
diff --git a/packages/ui/dist/components/alert.js b/packages/ui/dist/components/alert.js
index 6c6db1b50..c434333d3 100644
--- a/packages/ui/dist/components/alert.js
+++ b/packages/ui/dist/components/alert.js
@@ -1,10 +1,10 @@
import { t as J3w1Element } from "../chunks/element-Dovcr9Ky.js";
-import { t as feedback } from "../chunks/overlays-Bw8SSDKz.js";
+import { t as feedback } from "../chunks/overlays-BwgpF4jI.js";
//#region .cache/ui-build/entries/components/alert.js
var J3w1Alert = class extends J3w1Element {
static componentId = "alert";
static version = "4.0.0";
- static implementationId = "sha256-6Wo+BnYA6udYTk6XDw6PR9MtJYx0FznliTgiGt+lVxo=";
+ static implementationId = "sha256-UxXRTp+Yf7lbD/vkY8rJ0A/kKL5Xkg9lnOEAvWcr7OA=";
static connect = feedback;
static upgradeProperties = ["disabled", "name"];
static observedAttributes = [...J3w1Element.observedAttributes, ...["disabled", "loading"]];
diff --git a/packages/ui/dist/components/chip.js b/packages/ui/dist/components/chip.js
index 749a8cf86..e336b104c 100644
--- a/packages/ui/dist/components/chip.js
+++ b/packages/ui/dist/components/chip.js
@@ -1,10 +1,10 @@
import { t as J3w1Element } from "../chunks/element-Dovcr9Ky.js";
-import { t as feedback } from "../chunks/overlays-Bw8SSDKz.js";
+import { t as feedback } from "../chunks/overlays-BwgpF4jI.js";
//#region .cache/ui-build/entries/components/chip.js
var J3w1Chip = class extends J3w1Element {
static componentId = "chip";
static version = "4.0.0";
- static implementationId = "sha256-AQdMwG6TMuURDhU/UWs7oHW2L2skw4ISgrH4cwOomvk=";
+ static implementationId = "sha256-LX8QtUNQgNJe9t+ID6Q+WinGVj68ZHfs0KLKk56qrpw=";
static connect = feedback;
static upgradeProperties = ["disabled", "name"];
static observedAttributes = [...J3w1Element.observedAttributes, ...["disabled", "loading"]];
diff --git a/packages/ui/dist/components/dialog.js b/packages/ui/dist/components/dialog.js
index 831fed823..3cbfc19af 100644
--- a/packages/ui/dist/components/dialog.js
+++ b/packages/ui/dist/components/dialog.js
@@ -1,10 +1,10 @@
import { t as J3w1Element } from "../chunks/element-Dovcr9Ky.js";
-import { n as modal } from "../chunks/overlays-Bw8SSDKz.js";
+import { n as modal } from "../chunks/overlays-BwgpF4jI.js";
//#region .cache/ui-build/entries/components/dialog.js
var J3w1Dialog = class extends J3w1Element {
static componentId = "dialog";
static version = "4.0.0";
- static implementationId = "sha256-mRRuIsoBG3ZepORoxkayVAw92Or7CJEuj6eD9YVaZyw=";
+ static implementationId = "sha256-DxVkWaABviJy7mGLL8EMH80qBAY41vg1uSdV+1wlXPw=";
static connect = modal;
static upgradeProperties = [
"disabled",
diff --git a/packages/ui/dist/components/drawer.js b/packages/ui/dist/components/drawer.js
index 84e74f5d6..bd2cc2719 100644
--- a/packages/ui/dist/components/drawer.js
+++ b/packages/ui/dist/components/drawer.js
@@ -1,10 +1,10 @@
import { t as J3w1Element } from "../chunks/element-Dovcr9Ky.js";
-import { n as modal } from "../chunks/overlays-Bw8SSDKz.js";
+import { n as modal } from "../chunks/overlays-BwgpF4jI.js";
//#region .cache/ui-build/entries/components/drawer.js
var J3w1Drawer = class extends J3w1Element {
static componentId = "drawer";
static version = "4.0.0";
- static implementationId = "sha256-k/ZCI1iewFGM/3Yu72DZfB6MpyHU8aF26giyLMSce+U=";
+ static implementationId = "sha256-yvpVNrlpyZhfuppx1D3pNtgoOjBrDBDX4gavOIbYSWM=";
static connect = modal;
static upgradeProperties = [
"disabled",
diff --git a/packages/ui/dist/components/empty-state.js b/packages/ui/dist/components/empty-state.js
index a2ad90398..8e4944ef3 100644
--- a/packages/ui/dist/components/empty-state.js
+++ b/packages/ui/dist/components/empty-state.js
@@ -1,10 +1,10 @@
import { t as J3w1Element } from "../chunks/element-Dovcr9Ky.js";
-import { t as feedback } from "../chunks/overlays-Bw8SSDKz.js";
+import { t as feedback } from "../chunks/overlays-BwgpF4jI.js";
//#region .cache/ui-build/entries/components/empty-state.js
var J3w1EmptyState = class extends J3w1Element {
static componentId = "empty-state";
static version = "4.0.0";
- static implementationId = "sha256-TjsU1nEvRoXqvqnqWsM2EsMF7pDu5QD94wKIbCronI4=";
+ static implementationId = "sha256-5BgPX4sRhOgm8ZsOZ/51exOqgz9E+QCMS8dKtOj0vGM=";
static connect = feedback;
static upgradeProperties = ["disabled", "name"];
static observedAttributes = [...J3w1Element.observedAttributes, ...["disabled", "loading"]];
diff --git a/packages/ui/dist/components/error-state.js b/packages/ui/dist/components/error-state.js
index 8adf9072e..304fd3e2b 100644
--- a/packages/ui/dist/components/error-state.js
+++ b/packages/ui/dist/components/error-state.js
@@ -1,10 +1,10 @@
import { t as J3w1Element } from "../chunks/element-Dovcr9Ky.js";
-import { t as feedback } from "../chunks/overlays-Bw8SSDKz.js";
+import { t as feedback } from "../chunks/overlays-BwgpF4jI.js";
//#region .cache/ui-build/entries/components/error-state.js
var J3w1ErrorState = class extends J3w1Element {
static componentId = "error-state";
static version = "4.0.0";
- static implementationId = "sha256-NFXjO9uEbTYqbXbZVfFiY8Ge2N54qnmAPnp046iwL4U=";
+ static implementationId = "sha256-tOUjSBC5VAWfv+AicnePxVZaKItd4HUgjbSSn0EAnj4=";
static connect = feedback;
static upgradeProperties = ["disabled", "name"];
static observedAttributes = [...J3w1Element.observedAttributes, ...["disabled", "loading"]];
diff --git a/packages/ui/dist/components/form-builder.js b/packages/ui/dist/components/form-builder.js
index 3461adcd2..ef3c0c12e 100644
--- a/packages/ui/dist/components/form-builder.js
+++ b/packages/ui/dist/components/form-builder.js
@@ -1 +1 @@
-export { t as J3w1FormBuilder } from "../chunks/form-builder-BKs59W9y.js";
+export { t as J3w1FormBuilder } from "../chunks/form-builder-DVUkImzv.js";
diff --git a/packages/ui/dist/components/popover.js b/packages/ui/dist/components/popover.js
index 4ca710f90..cd98bf9db 100644
--- a/packages/ui/dist/components/popover.js
+++ b/packages/ui/dist/components/popover.js
@@ -1,10 +1,10 @@
import { t as J3w1Element } from "../chunks/element-Dovcr9Ky.js";
-import { r as popover } from "../chunks/overlays-Bw8SSDKz.js";
+import { r as popover } from "../chunks/overlays-BwgpF4jI.js";
//#region .cache/ui-build/entries/components/popover.js
var J3w1Popover = class extends J3w1Element {
static componentId = "popover";
static version = "4.0.0";
- static implementationId = "sha256-8KG7XOC5HTOmJW+CysUIXfhkV3COWEwpPzmG6HXdN80=";
+ static implementationId = "sha256-544d7ON825LY8X5xEBzRzpHfZ1h2hjozJQ8CIUd0dwQ=";
static connect = popover;
static upgradeProperties = [
"disabled",
diff --git a/packages/ui/dist/components/toast.js b/packages/ui/dist/components/toast.js
index b400752aa..46f24a535 100644
--- a/packages/ui/dist/components/toast.js
+++ b/packages/ui/dist/components/toast.js
@@ -1,10 +1,10 @@
import { t as J3w1Element } from "../chunks/element-Dovcr9Ky.js";
-import { t as feedback } from "../chunks/overlays-Bw8SSDKz.js";
+import { t as feedback } from "../chunks/overlays-BwgpF4jI.js";
//#region .cache/ui-build/entries/components/toast.js
var J3w1Toast = class extends J3w1Element {
static componentId = "toast";
static version = "4.0.0";
- static implementationId = "sha256-BqW1X3i3Z1X0gaHK/29B1mrUpyhmHpV2a30eW/aK+y4=";
+ static implementationId = "sha256-j9WKre9usZOe/7NyvL2T/LvVxN+aLguS4DKMT0466EQ=";
static connect = feedback;
static upgradeProperties = ["disabled", "name"];
static observedAttributes = [...J3w1Element.observedAttributes, ...["disabled", "loading"]];
diff --git a/packages/ui/dist/components/tooltip.js b/packages/ui/dist/components/tooltip.js
index e641fa5b8..d592891f8 100644
--- a/packages/ui/dist/components/tooltip.js
+++ b/packages/ui/dist/components/tooltip.js
@@ -1,10 +1,10 @@
import { t as J3w1Element } from "../chunks/element-Dovcr9Ky.js";
-import { i as tooltip } from "../chunks/overlays-Bw8SSDKz.js";
+import { i as tooltip } from "../chunks/overlays-BwgpF4jI.js";
//#region .cache/ui-build/entries/components/tooltip.js
var J3w1Tooltip = class extends J3w1Element {
static componentId = "tooltip";
static version = "4.0.0";
- static implementationId = "sha256-GLt9uL8KQ+UknDKUAP+CEU7bTChO5TO3WPwmpJzH62M=";
+ static implementationId = "sha256-lBUCe8gBEWWTZ/ovJn9Q/43pRaM2mAdooaxpLQzBDFE=";
static connect = tooltip;
static upgradeProperties = ["disabled", "name"];
static observedAttributes = [...J3w1Element.observedAttributes, ...["disabled", "loading"]];
diff --git a/packages/ui/dist/contracts/admin-form.json b/packages/ui/dist/contracts/admin-form.json
index 0e7eead0d..cf8c40220 100644
--- a/packages/ui/dist/contracts/admin-form.json
+++ b/packages/ui/dist/contracts/admin-form.json
@@ -221,6 +221,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.caption",
"font.line-height.h2",
@@ -357,6 +358,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.caption",
"font.line-height.h2",
@@ -788,6 +790,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -909,6 +916,6 @@
"copy": {
"directory": "copy/admin-form/",
"manifest": "copy/admin-form/manifest.json",
- "digest": "sha256-0cFh6BAwKorLKq38Qi1CjI8uGgYupJJvet2b/DOatzY="
+ "digest": "sha256-a7m7HYJXxCqHPyqHlBuYm7RbV324XwflktQL/o5zW38="
}
}
diff --git a/packages/ui/dist/contracts/alert.json b/packages/ui/dist/contracts/alert.json
index e8e2eb657..704b843ca 100644
--- a/packages/ui/dist/contracts/alert.json
+++ b/packages/ui/dist/contracts/alert.json
@@ -445,6 +445,6 @@
"copy": {
"directory": "copy/alert/",
"manifest": "copy/alert/manifest.json",
- "digest": "sha256-Xr0PVAQg/cCG1sYsDsG/HtcuGQAX0No2RKYfPdwKhZs="
+ "digest": "sha256-kfLZ6Ed6MWpW/NC7YEPk6XIFGV6XlM2LY2QLRwKNvtU="
}
}
diff --git a/packages/ui/dist/contracts/avatar.json b/packages/ui/dist/contracts/avatar.json
index 5999bc1a6..a04bf258b 100644
--- a/packages/ui/dist/contracts/avatar.json
+++ b/packages/ui/dist/contracts/avatar.json
@@ -275,6 +275,6 @@
"copy": {
"directory": "copy/avatar/",
"manifest": "copy/avatar/manifest.json",
- "digest": "sha256-URCjMYwlCXYlGlrMSk3vrPp/2Oy/ymRJ61Q2YzoRhF8="
+ "digest": "sha256-7cSHC4KBcMxLQPv42ZL0JrpuPhSgty2XcJpMsmLr2EU="
}
}
diff --git a/packages/ui/dist/contracts/badge.json b/packages/ui/dist/contracts/badge.json
index 51c8ef4ae..f29bf8d17 100644
--- a/packages/ui/dist/contracts/badge.json
+++ b/packages/ui/dist/contracts/badge.json
@@ -452,6 +452,6 @@
"copy": {
"directory": "copy/badge/",
"manifest": "copy/badge/manifest.json",
- "digest": "sha256-8m5l7I70X8Z4BjZraEvIuDZcQVsbPpvXOcUrVrXjzGA="
+ "digest": "sha256-lfdKrnKa4SmpXnVTmFFlIibrCBrmmbLJOMw/nQPSK5s="
}
}
diff --git a/packages/ui/dist/contracts/breadcrumbs.json b/packages/ui/dist/contracts/breadcrumbs.json
index b02e5abbf..0019b9063 100644
--- a/packages/ui/dist/contracts/breadcrumbs.json
+++ b/packages/ui/dist/contracts/breadcrumbs.json
@@ -332,6 +332,6 @@
"copy": {
"directory": "copy/breadcrumbs/",
"manifest": "copy/breadcrumbs/manifest.json",
- "digest": "sha256-ueISJuY31tOa5XV3BZcJ0JRiWkClTX+lyFKzdCvc+uc="
+ "digest": "sha256-mFILh4cSbcgJsN9P/3CdWOtO8z6q78BM6xM2IwcDVxs="
}
}
diff --git a/packages/ui/dist/contracts/button-group.json b/packages/ui/dist/contracts/button-group.json
index e715ecd73..6f0994f54 100644
--- a/packages/ui/dist/contracts/button-group.json
+++ b/packages/ui/dist/contracts/button-group.json
@@ -522,6 +522,6 @@
"copy": {
"directory": "copy/button-group/",
"manifest": "copy/button-group/manifest.json",
- "digest": "sha256-InnBod9qxTqZB9qGW3Qa9YX4EcdXhazIz+8TN5ZeN/c="
+ "digest": "sha256-JQVBtidmCqREkFAwcgREaR1FLnmVg1HO0svUHFQ/l/k="
}
}
diff --git a/packages/ui/dist/contracts/button.json b/packages/ui/dist/contracts/button.json
index 7bf3b82f0..9142241ed 100644
--- a/packages/ui/dist/contracts/button.json
+++ b/packages/ui/dist/contracts/button.json
@@ -510,6 +510,6 @@
"copy": {
"directory": "copy/button/",
"manifest": "copy/button/manifest.json",
- "digest": "sha256-fC+Ph4zr0NqxpT/nYbZS8dMMVe6RUzS7yYl7a8ZXfDY="
+ "digest": "sha256-YcqKS0aDPBmhJ0qoRwEOLMuK0mh7IlHcugLEuUwtPFI="
}
}
diff --git a/packages/ui/dist/contracts/card.json b/packages/ui/dist/contracts/card.json
index 070d16806..fc220d2be 100644
--- a/packages/ui/dist/contracts/card.json
+++ b/packages/ui/dist/contracts/card.json
@@ -377,6 +377,6 @@
"copy": {
"directory": "copy/card/",
"manifest": "copy/card/manifest.json",
- "digest": "sha256-3S0KS6wyJ2cEr9p4M5m0cwANysCtMtlatwNGyvFMngc="
+ "digest": "sha256-2XK13WptYfBfmO4zj/H4BcYnoF7mSkyguyevGMBE7NE="
}
}
diff --git a/packages/ui/dist/contracts/chart.json b/packages/ui/dist/contracts/chart.json
index 25e73072e..97dd1f443 100644
--- a/packages/ui/dist/contracts/chart.json
+++ b/packages/ui/dist/contracts/chart.json
@@ -337,6 +337,6 @@
"copy": {
"directory": "copy/chart/",
"manifest": "copy/chart/manifest.json",
- "digest": "sha256-aCdCOmd73xQ4GZ1/TyhtoQ+UDkSqVrV6Otsm8YTPDQY="
+ "digest": "sha256-T8FwAV71C8+glzT5Exdmn5GnPn0OOoUMkBfwSFLEY6w="
}
}
diff --git a/packages/ui/dist/contracts/checkbox.json b/packages/ui/dist/contracts/checkbox.json
index 07729bcb3..2d8601d29 100644
--- a/packages/ui/dist/contracts/checkbox.json
+++ b/packages/ui/dist/contracts/checkbox.json
@@ -200,7 +200,6 @@
"color.border.disabled",
"color.interaction.disabled.bg",
"color.interaction.drop-target",
- "color.interaction.focus.ring-container",
"color.interaction.hover.bg",
"color.interaction.selection.bg",
"color.interaction.selection.text",
@@ -217,6 +216,7 @@
"density.compact.icon",
"focus.offset",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.caption",
"font.line-height.ui-md",
@@ -273,6 +273,7 @@
"density.compact.icon",
"focus.offset",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.caption",
"font.line-height.ui-md",
@@ -335,11 +336,6 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
- "color.interaction.focus.ring-container": {
- "action": "use",
- "reason": "Use within the role's documented scope and restrictions.",
- "decisionIds": []
- },
"color.interaction.hover.bg": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -420,6 +416,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -491,6 +492,6 @@
"copy": {
"directory": "copy/checkbox/",
"manifest": "copy/checkbox/manifest.json",
- "digest": "sha256-niMah9PNNjgBMYDMlSVaCrZ4apFC6fsEJ91RmAgS3jo="
+ "digest": "sha256-DrNs8FzkHoiTZnivTZu/CI9qtZuOifj+iDih3lFeApg="
}
}
diff --git a/packages/ui/dist/contracts/chip.json b/packages/ui/dist/contracts/chip.json
index 2eda05508..1d783303a 100644
--- a/packages/ui/dist/contracts/chip.json
+++ b/packages/ui/dist/contracts/chip.json
@@ -379,6 +379,6 @@
"copy": {
"directory": "copy/chip/",
"manifest": "copy/chip/manifest.json",
- "digest": "sha256-Q8H52ja9lyGWmgJRf4PF5LnCZDnnfHuopw5riaVv39I="
+ "digest": "sha256-jLdxB1l2rwr2aWmhxNSGHq8lnhnkEa0aHplpAqVM+QE="
}
}
diff --git a/packages/ui/dist/contracts/code-editor.json b/packages/ui/dist/contracts/code-editor.json
index ceb72c889..d970711e2 100644
--- a/packages/ui/dist/contracts/code-editor.json
+++ b/packages/ui/dist/contracts/code-editor.json
@@ -531,6 +531,6 @@
"copy": {
"directory": "copy/code-editor/",
"manifest": "copy/code-editor/manifest.json",
- "digest": "sha256-34XB9GRIxMUKi/v1n3Xa3EwEByberTg3XfCVREIe3rw="
+ "digest": "sha256-Gliv62pUcNQZDmCAj3dnM4zd9/wNB22wRElfkFRWlv0="
}
}
diff --git a/packages/ui/dist/contracts/combobox.json b/packages/ui/dist/contracts/combobox.json
index 3561d18a4..bf08cdc42 100644
--- a/packages/ui/dist/contracts/combobox.json
+++ b/packages/ui/dist/contracts/combobox.json
@@ -162,7 +162,6 @@
"color.code.caret",
"color.interaction.disabled.bg",
"color.interaction.drop-target",
- "color.interaction.focus.ring-container",
"color.interaction.hover.bg",
"color.interaction.hover.bg-strong",
"color.interaction.selection.bg",
@@ -190,6 +189,7 @@
"focus.offset",
"focus.offset-invalid",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -262,6 +262,7 @@
"focus.offset",
"focus.offset-invalid",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -342,11 +343,6 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
- "color.interaction.focus.ring-container": {
- "action": "use",
- "reason": "Use within the role's documented scope and restrictions.",
- "decisionIds": []
- },
"color.interaction.hover.bg": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -482,6 +478,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -548,6 +549,6 @@
"copy": {
"directory": "copy/combobox/",
"manifest": "copy/combobox/manifest.json",
- "digest": "sha256-GTacDO1sEuZ7w5WJ08WkaWKjRm36EQJ2SMRHwKQHAWo="
+ "digest": "sha256-RUQ1sIbxefSfJYe8WdBBceDzXOAEpCnRJ+MYzWfZjIo="
}
}
diff --git a/packages/ui/dist/contracts/command-palette.json b/packages/ui/dist/contracts/command-palette.json
index ae2a8315a..178fcd56a 100644
--- a/packages/ui/dist/contracts/command-palette.json
+++ b/packages/ui/dist/contracts/command-palette.json
@@ -630,6 +630,6 @@
"copy": {
"directory": "copy/command-palette/",
"manifest": "copy/command-palette/manifest.json",
- "digest": "sha256-73hcJgww/vreos5t04p67k77Y1tsq1TKj1LfllwbXVU="
+ "digest": "sha256-Wn5fthP2fDEfsVqcBgjyrGiPjPDFsg8Sp5P6ravF3e0="
}
}
diff --git a/packages/ui/dist/contracts/compact-dashboard.json b/packages/ui/dist/contracts/compact-dashboard.json
index e5d170436..78875a6ad 100644
--- a/packages/ui/dist/contracts/compact-dashboard.json
+++ b/packages/ui/dist/contracts/compact-dashboard.json
@@ -653,6 +653,6 @@
"copy": {
"directory": "copy/compact-dashboard/",
"manifest": "copy/compact-dashboard/manifest.json",
- "digest": "sha256-8HPA/m4bQRmM0HaCiKTayXG+ryly96Ex9sR87wOLabM="
+ "digest": "sha256-JTEMxvpXSIhO1mQMc9JTMuqb49eENXelPr3+V5G4dx0="
}
}
diff --git a/packages/ui/dist/contracts/data-table.json b/packages/ui/dist/contracts/data-table.json
index e2b3fda98..859cbbdfa 100644
--- a/packages/ui/dist/contracts/data-table.json
+++ b/packages/ui/dist/contracts/data-table.json
@@ -586,6 +586,6 @@
"copy": {
"directory": "copy/data-table/",
"manifest": "copy/data-table/manifest.json",
- "digest": "sha256-YC+eobPLgAutDoOERX3GiBuOt+tmkwZRHligHoQd8VA="
+ "digest": "sha256-GB6Z2BPXYTzbG+3fpUblyU+U57Oo+t7HMbuDktvyyl8="
}
}
diff --git a/packages/ui/dist/contracts/date-picker.json b/packages/ui/dist/contracts/date-picker.json
index daa95e02b..9dab64968 100644
--- a/packages/ui/dist/contracts/date-picker.json
+++ b/packages/ui/dist/contracts/date-picker.json
@@ -192,7 +192,6 @@
"color.code.caret",
"color.interaction.disabled.bg",
"color.interaction.drop-target",
- "color.interaction.focus.ring-container",
"color.interaction.hover.bg",
"color.interaction.selection.bg",
"color.interaction.selection.text",
@@ -219,6 +218,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -290,6 +290,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -372,11 +373,6 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
- "color.interaction.focus.ring-container": {
- "action": "use",
- "reason": "Use within the role's documented scope and restrictions.",
- "decisionIds": []
- },
"color.interaction.hover.bg": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -507,6 +503,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -583,6 +584,6 @@
"copy": {
"directory": "copy/date-picker/",
"manifest": "copy/date-picker/manifest.json",
- "digest": "sha256-DB3JDMg5IALIVpVXGgw/hVsdY1I2kQ5XHdaNILtk0YM="
+ "digest": "sha256-uB3MfKTg02uq8H1zMmiJcRNfp/M9DM+eb6TOIr3JB8M="
}
}
diff --git a/packages/ui/dist/contracts/description-list.json b/packages/ui/dist/contracts/description-list.json
index ba4b31542..e66e9db57 100644
--- a/packages/ui/dist/contracts/description-list.json
+++ b/packages/ui/dist/contracts/description-list.json
@@ -282,6 +282,6 @@
"copy": {
"directory": "copy/description-list/",
"manifest": "copy/description-list/manifest.json",
- "digest": "sha256-PcJ06FeOmRyLmgzRUIOHECJINDumCczoIN6nZO39PC0="
+ "digest": "sha256-A722d6lpzaaVauj6llNVkcehDCNZ1uJ/VxGPXFh0xBA="
}
}
diff --git a/packages/ui/dist/contracts/diagnostics.json b/packages/ui/dist/contracts/diagnostics.json
index 9d45b19d2..4aebcff33 100644
--- a/packages/ui/dist/contracts/diagnostics.json
+++ b/packages/ui/dist/contracts/diagnostics.json
@@ -562,6 +562,6 @@
"copy": {
"directory": "copy/diagnostics/",
"manifest": "copy/diagnostics/manifest.json",
- "digest": "sha256-n3A7adYFaPqBEZMH83XHNGwVkvhllkBTQV+FLtmNDTs="
+ "digest": "sha256-FFhKEoQxAEz5S+UL0ab9UQn/tr8+G5L0etJw0ucJnfc="
}
}
diff --git a/packages/ui/dist/contracts/dialog.json b/packages/ui/dist/contracts/dialog.json
index ace54ab18..1d39fdccd 100644
--- a/packages/ui/dist/contracts/dialog.json
+++ b/packages/ui/dist/contracts/dialog.json
@@ -702,6 +702,6 @@
"copy": {
"directory": "copy/dialog/",
"manifest": "copy/dialog/manifest.json",
- "digest": "sha256-m5mXloJmQCM08+v8jrBtBzmVjcZabnvryBht9CoJb+g="
+ "digest": "sha256-cQPHWgh7tPBa5qpFPuFVZYw7rUnSd7sGnX3JuT42ugI="
}
}
diff --git a/packages/ui/dist/contracts/diff-view.json b/packages/ui/dist/contracts/diff-view.json
index a1dfc8dd5..a0bafbde1 100644
--- a/packages/ui/dist/contracts/diff-view.json
+++ b/packages/ui/dist/contracts/diff-view.json
@@ -510,6 +510,6 @@
"copy": {
"directory": "copy/diff-view/",
"manifest": "copy/diff-view/manifest.json",
- "digest": "sha256-z+BxcKKq1cJGYRwtESbjQpf5ymqtRempRqMUqEY4kKg="
+ "digest": "sha256-Rdtj4Xs/jYIkUyj0Kq8skspivGcTqjSmvGsvvwj+XH4="
}
}
diff --git a/packages/ui/dist/contracts/disclosure.json b/packages/ui/dist/contracts/disclosure.json
index a59656597..8b6cb16a4 100644
--- a/packages/ui/dist/contracts/disclosure.json
+++ b/packages/ui/dist/contracts/disclosure.json
@@ -305,6 +305,6 @@
"copy": {
"directory": "copy/disclosure/",
"manifest": "copy/disclosure/manifest.json",
- "digest": "sha256-7FeobZEK1MIlzN/Qb/FxsM8X6iVLI3xEmPbgLq93UCc="
+ "digest": "sha256-fT4X4WdaVt8x1AYApDFPMxSnPonv85/tK7zlrSzKP2o="
}
}
diff --git a/packages/ui/dist/contracts/drawer.json b/packages/ui/dist/contracts/drawer.json
index 178d88d4a..7c47bc003 100644
--- a/packages/ui/dist/contracts/drawer.json
+++ b/packages/ui/dist/contracts/drawer.json
@@ -696,6 +696,6 @@
"copy": {
"directory": "copy/drawer/",
"manifest": "copy/drawer/manifest.json",
- "digest": "sha256-O71hKP440tr3Fw93dJfDZGswP4WrnavbuPA4nRoGm6g="
+ "digest": "sha256-GV8Gtw9LhFzPMB2UZc/a1dHPi1zLWQO+YC+I15+X1UY="
}
}
diff --git a/packages/ui/dist/contracts/editor-search.json b/packages/ui/dist/contracts/editor-search.json
index 8c9c2aeb8..b53de81f2 100644
--- a/packages/ui/dist/contracts/editor-search.json
+++ b/packages/ui/dist/contracts/editor-search.json
@@ -579,6 +579,6 @@
"copy": {
"directory": "copy/editor-search/",
"manifest": "copy/editor-search/manifest.json",
- "digest": "sha256-QgKi5Ik6JIx1S6FIW4r5/dlBv+1Vooa/ZbYMOGxydmo="
+ "digest": "sha256-qZ8a2YJlepZESLjviXuJSpOMbWFaQQBqKz1A+fkDFw8="
}
}
diff --git a/packages/ui/dist/contracts/empty-state.json b/packages/ui/dist/contracts/empty-state.json
index 54656895a..13b907921 100644
--- a/packages/ui/dist/contracts/empty-state.json
+++ b/packages/ui/dist/contracts/empty-state.json
@@ -571,6 +571,6 @@
"copy": {
"directory": "copy/empty-state/",
"manifest": "copy/empty-state/manifest.json",
- "digest": "sha256-+coWeqOocevShbs/IcuLNwwM7Z3ICGFK79A8oheiiXo="
+ "digest": "sha256-SwXdWKveR08lq9Winu+ekIGLE2x3MAh7AyCaam3WzhY="
}
}
diff --git a/packages/ui/dist/contracts/error-state.json b/packages/ui/dist/contracts/error-state.json
index b5c5c9967..841850e46 100644
--- a/packages/ui/dist/contracts/error-state.json
+++ b/packages/ui/dist/contracts/error-state.json
@@ -551,6 +551,6 @@
"copy": {
"directory": "copy/error-state/",
"manifest": "copy/error-state/manifest.json",
- "digest": "sha256-JxwbDxIL6bhbIa230xaK7YZG+x1n9Zg8QFq1Ce62q7Q="
+ "digest": "sha256-N+a/GsQDOXw7QW1cFBKBshKD4KXBuAU4VnjFbehtGA4="
}
}
diff --git a/packages/ui/dist/contracts/field.json b/packages/ui/dist/contracts/field.json
index d4990d816..8d0e3e345 100644
--- a/packages/ui/dist/contracts/field.json
+++ b/packages/ui/dist/contracts/field.json
@@ -374,6 +374,6 @@
"copy": {
"directory": "copy/field/",
"manifest": "copy/field/manifest.json",
- "digest": "sha256-LFCmagaJ5RK5WCMosMvlvxKHUHt1uy1/8mZq88cgt9A="
+ "digest": "sha256-yH4em4Bcxsr0yjIE1VH/t4tR4hk+/DwUFyKiq1fcgLU="
}
}
diff --git a/packages/ui/dist/contracts/fieldset.json b/packages/ui/dist/contracts/fieldset.json
index fa25174db..872bcbe3d 100644
--- a/packages/ui/dist/contracts/fieldset.json
+++ b/packages/ui/dist/contracts/fieldset.json
@@ -374,6 +374,6 @@
"copy": {
"directory": "copy/fieldset/",
"manifest": "copy/fieldset/manifest.json",
- "digest": "sha256-vjDOby1AN0RSnUrP4QsHLHcfRJyUbikUNg5PG4OE66s="
+ "digest": "sha256-r7m9/1YlVtiwr0q2D/kUcuUOyR+zBS0gCpQeFJY/T/Q="
}
}
diff --git a/packages/ui/dist/contracts/file-browser.json b/packages/ui/dist/contracts/file-browser.json
index 7195e754b..9f1d6072b 100644
--- a/packages/ui/dist/contracts/file-browser.json
+++ b/packages/ui/dist/contracts/file-browser.json
@@ -628,6 +628,6 @@
"copy": {
"directory": "copy/file-browser/",
"manifest": "copy/file-browser/manifest.json",
- "digest": "sha256-zktP/nyG1VyLCn4r8rZs7H8IW/V4rWVynrIABSSFKoY="
+ "digest": "sha256-sDEb+Xd1fbysaV5VsAF5sETImgwbhiDCMK7Jk1onlMI="
}
}
diff --git a/packages/ui/dist/contracts/file-input.json b/packages/ui/dist/contracts/file-input.json
index 60c23f3c8..e5cdb2856 100644
--- a/packages/ui/dist/contracts/file-input.json
+++ b/packages/ui/dist/contracts/file-input.json
@@ -183,6 +183,7 @@
"focus.offset",
"focus.offset-invalid",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -273,6 +274,7 @@
"focus.offset",
"focus.offset-invalid",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -551,6 +553,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -617,6 +624,6 @@
"copy": {
"directory": "copy/file-input/",
"manifest": "copy/file-input/manifest.json",
- "digest": "sha256-X08YRjuyyMs/lhABC8jyT6hAh4AhRXBy9nRCGzLest8="
+ "digest": "sha256-ZlS6DvxSc1HK7pDLkYkz1tr2T8iyiVuQT+MNAj32HJc="
}
}
diff --git a/packages/ui/dist/contracts/filterable-table.json b/packages/ui/dist/contracts/filterable-table.json
index 349dae71d..80895dfe3 100644
--- a/packages/ui/dist/contracts/filterable-table.json
+++ b/packages/ui/dist/contracts/filterable-table.json
@@ -186,7 +186,6 @@
"color.icon.default",
"color.interaction.disabled.bg",
"color.interaction.drop-target",
- "color.interaction.focus.ring-container",
"color.interaction.hover.bg",
"color.interaction.hover.bg-strong",
"color.interaction.pressed.bg",
@@ -223,6 +222,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -324,6 +324,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -453,11 +454,6 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
- "color.interaction.focus.ring-container": {
- "action": "use",
- "reason": "Use within the role's documented scope and restrictions.",
- "decisionIds": []
- },
"color.interaction.hover.bg": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -638,6 +634,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -749,6 +750,6 @@
"copy": {
"directory": "copy/filterable-table/",
"manifest": "copy/filterable-table/manifest.json",
- "digest": "sha256-2S7hP420pJdNmeeJUc9IqsTnpSHptV2aRy3IL9jjvtQ="
+ "digest": "sha256-F+gdcefkR6/o71zqiIj7kHklf7fCgS0VUCOM2+djzhE="
}
}
diff --git a/packages/ui/dist/contracts/form-builder.json b/packages/ui/dist/contracts/form-builder.json
index e68fe10a3..9af157ce4 100644
--- a/packages/ui/dist/contracts/form-builder.json
+++ b/packages/ui/dist/contracts/form-builder.json
@@ -190,6 +190,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.caption",
"font.line-height.h2",
@@ -326,6 +327,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.caption",
"font.line-height.h2",
@@ -757,6 +759,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -878,6 +885,6 @@
"copy": {
"directory": "copy/form-builder/",
"manifest": "copy/form-builder/manifest.json",
- "digest": "sha256-4eN/Ayvb9g/4CHDNRnxDuFj2QMloNoJZ7DigYbCeyW0="
+ "digest": "sha256-2zG5qboQ6uw/klS7bKck47Ppd6FBnKmrM7PntK2qO5c="
}
}
diff --git a/packages/ui/dist/contracts/i3-window-frame.json b/packages/ui/dist/contracts/i3-window-frame.json
index ef976d71e..008e8787e 100644
--- a/packages/ui/dist/contracts/i3-window-frame.json
+++ b/packages/ui/dist/contracts/i3-window-frame.json
@@ -962,6 +962,6 @@
"copy": {
"directory": "copy/i3-window-frame/",
"manifest": "copy/i3-window-frame/manifest.json",
- "digest": "sha256-RTBwBQLyeV3Z3yztEOFvw2Hk3dWF9jDPNGkIMo8j4MM="
+ "digest": "sha256-ZM6DN1U/QXVv03lE6PE1C3Xo9uvGfOIGOvQZRTRVwhg="
}
}
diff --git a/packages/ui/dist/contracts/icon-button.json b/packages/ui/dist/contracts/icon-button.json
index 0a97dbb60..33113d70f 100644
--- a/packages/ui/dist/contracts/icon-button.json
+++ b/packages/ui/dist/contracts/icon-button.json
@@ -357,6 +357,6 @@
"copy": {
"directory": "copy/icon-button/",
"manifest": "copy/icon-button/manifest.json",
- "digest": "sha256-PtLPNMTcOcV3bfqclq1ktR8kldC1sdwlqBmiOf0F3a4="
+ "digest": "sha256-JQGyXgsAJraZZH9JSTjRekp+eSjUHBd2k3uVOKvRkLs="
}
}
diff --git a/packages/ui/dist/contracts/kbd.json b/packages/ui/dist/contracts/kbd.json
index 53f8ba296..efa594f16 100644
--- a/packages/ui/dist/contracts/kbd.json
+++ b/packages/ui/dist/contracts/kbd.json
@@ -263,6 +263,6 @@
"copy": {
"directory": "copy/kbd/",
"manifest": "copy/kbd/manifest.json",
- "digest": "sha256-ZdQzusLaQI1eqBEb0KGCyUE3p/OohnnnziGlDVCsF30="
+ "digest": "sha256-6C8IudciLXDnk+1aEd4JG6lcXtedYc6WmW2Ty/6aLuE="
}
}
diff --git a/packages/ui/dist/contracts/link.json b/packages/ui/dist/contracts/link.json
index 02b37a46e..dac418f7c 100644
--- a/packages/ui/dist/contracts/link.json
+++ b/packages/ui/dist/contracts/link.json
@@ -322,6 +322,6 @@
"copy": {
"directory": "copy/link/",
"manifest": "copy/link/manifest.json",
- "digest": "sha256-b0MFB2qvm1o9aggqaNrXAQBeleOiTekucpU8MsTxdK8="
+ "digest": "sha256-JGUeXMS30rGMVa06iThss91lAtwn+UWQVV+ExxPjN6A="
}
}
diff --git a/packages/ui/dist/contracts/list.json b/packages/ui/dist/contracts/list.json
index 7c10f5261..c3f306ab4 100644
--- a/packages/ui/dist/contracts/list.json
+++ b/packages/ui/dist/contracts/list.json
@@ -399,6 +399,6 @@
"copy": {
"directory": "copy/list/",
"manifest": "copy/list/manifest.json",
- "digest": "sha256-21rppk20HlB53c9O71xPkVP4mw04fFxgx1lGu5DD0cM="
+ "digest": "sha256-mkuNeFJUVtv/GbnJ/JuE4eLi/KgaHrBIrZYKGKf4EhA="
}
}
diff --git a/packages/ui/dist/contracts/loading-indicator.json b/packages/ui/dist/contracts/loading-indicator.json
index ebfb009bc..266233263 100644
--- a/packages/ui/dist/contracts/loading-indicator.json
+++ b/packages/ui/dist/contracts/loading-indicator.json
@@ -286,6 +286,6 @@
"copy": {
"directory": "copy/loading-indicator/",
"manifest": "copy/loading-indicator/manifest.json",
- "digest": "sha256-cP+54saIGncnKG1Boc+Akr3YR79g3QhGamC6uIhbxPU="
+ "digest": "sha256-511UevIRo1OSrGBkW5Gh4y8RLBGe7H0AcklpfA2gx1w="
}
}
diff --git a/packages/ui/dist/contracts/menu.json b/packages/ui/dist/contracts/menu.json
index c5d70de88..2eaff43bc 100644
--- a/packages/ui/dist/contracts/menu.json
+++ b/packages/ui/dist/contracts/menu.json
@@ -519,6 +519,6 @@
"copy": {
"directory": "copy/menu/",
"manifest": "copy/menu/manifest.json",
- "digest": "sha256-9NHbdHafr9UwBLqJLF5ddS041hMKBftk16inMfQXuP4="
+ "digest": "sha256-7NE3NN6dzqA+fZubsLKGczk7Cdf0i+ZIiYczsBtqLoI="
}
}
diff --git a/packages/ui/dist/contracts/multiselect.json b/packages/ui/dist/contracts/multiselect.json
index 0f8bf3c1f..d2eef3536 100644
--- a/packages/ui/dist/contracts/multiselect.json
+++ b/packages/ui/dist/contracts/multiselect.json
@@ -191,6 +191,7 @@
"density.compact.icon",
"focus.offset",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.caption",
"font.line-height.ui-md",
@@ -283,6 +284,7 @@
"density.compact.icon",
"focus.offset",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.caption",
"font.line-height.ui-md",
@@ -558,6 +560,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -644,6 +651,6 @@
"copy": {
"directory": "copy/multiselect/",
"manifest": "copy/multiselect/manifest.json",
- "digest": "sha256-JO0I7l2R7lmALfslDFelOHRv+78GSN5i+QKxxHtGjqo="
+ "digest": "sha256-WLNk02zbl7ejlxNDb1VMCw8PT1jX0Ms54lwRfvRFp+g="
}
}
diff --git a/packages/ui/dist/contracts/number-field.json b/packages/ui/dist/contracts/number-field.json
index c01927604..96ed2a56e 100644
--- a/packages/ui/dist/contracts/number-field.json
+++ b/packages/ui/dist/contracts/number-field.json
@@ -198,7 +198,6 @@
"color.code.caret",
"color.interaction.disabled.bg",
"color.interaction.drop-target",
- "color.interaction.focus.ring-container",
"color.interaction.hover.bg",
"color.interaction.selection.bg",
"color.interaction.selection.text",
@@ -225,6 +224,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -299,6 +299,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -392,11 +393,6 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
- "color.interaction.focus.ring-container": {
- "action": "use",
- "reason": "Use within the role's documented scope and restrictions.",
- "decisionIds": []
- },
"color.interaction.hover.bg": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -527,6 +523,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -608,6 +609,6 @@
"copy": {
"directory": "copy/number-field/",
"manifest": "copy/number-field/manifest.json",
- "digest": "sha256-bldw1onB88sfmhNs6anlA/PD4j9IKl6aOkPzlAbg1Hc="
+ "digest": "sha256-ssW4yGINr/O3q0aWXy3wkQLPggCSqERnGIEir1WW4c8="
}
}
diff --git a/packages/ui/dist/contracts/pagination.json b/packages/ui/dist/contracts/pagination.json
index 28c178bc0..02406f1c7 100644
--- a/packages/ui/dist/contracts/pagination.json
+++ b/packages/ui/dist/contracts/pagination.json
@@ -377,6 +377,6 @@
"copy": {
"directory": "copy/pagination/",
"manifest": "copy/pagination/manifest.json",
- "digest": "sha256-zDt5OOHa/vu0wBtxh8xWe8JSXUu8J/5evpDRTFQQBps="
+ "digest": "sha256-x1Dl/OiiQvTkRN7T3KeWtti+OiQ4QYdzK9A+meEFUkM="
}
}
diff --git a/packages/ui/dist/contracts/popover.json b/packages/ui/dist/contracts/popover.json
index 4afc42369..956d31a6a 100644
--- a/packages/ui/dist/contracts/popover.json
+++ b/packages/ui/dist/contracts/popover.json
@@ -559,6 +559,6 @@
"copy": {
"directory": "copy/popover/",
"manifest": "copy/popover/manifest.json",
- "digest": "sha256-vLSWeJ0wMVfl/GLXwjSKBXs+QwU7ThdTkO5JaqXyML8="
+ "digest": "sha256-UfxBNstpYhglBHK7OyfQRh4JKRMFL+ebtpX3VJJtlBM="
}
}
diff --git a/packages/ui/dist/contracts/progress.json b/packages/ui/dist/contracts/progress.json
index f75882695..9e3164b24 100644
--- a/packages/ui/dist/contracts/progress.json
+++ b/packages/ui/dist/contracts/progress.json
@@ -298,6 +298,6 @@
"copy": {
"directory": "copy/progress/",
"manifest": "copy/progress/manifest.json",
- "digest": "sha256-JK2iNGnh1IThiaBBVY470y+/lPgXXy7aOJvAGd7Rlcg="
+ "digest": "sha256-ClKitFzbgipEEFoMmP9TCwE3sQcHeF7tZZmaQ4ApCgI="
}
}
diff --git a/packages/ui/dist/contracts/radio-group.json b/packages/ui/dist/contracts/radio-group.json
index 35219e6eb..e623bbd96 100644
--- a/packages/ui/dist/contracts/radio-group.json
+++ b/packages/ui/dist/contracts/radio-group.json
@@ -112,7 +112,6 @@
"color.border.disabled",
"color.interaction.disabled.bg",
"color.interaction.drop-target",
- "color.interaction.focus.ring-container",
"color.interaction.hover.bg",
"color.interaction.selection.bg",
"color.interaction.selection.text",
@@ -132,6 +131,7 @@
"density.compact.icon",
"focus.offset",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -191,6 +191,7 @@
"density.compact.icon",
"focus.offset",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -252,11 +253,6 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
- "color.interaction.focus.ring-container": {
- "action": "use",
- "reason": "Use within the role's documented scope and restrictions.",
- "decisionIds": []
- },
"color.interaction.hover.bg": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -352,6 +348,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -418,6 +419,6 @@
"copy": {
"directory": "copy/radio-group/",
"manifest": "copy/radio-group/manifest.json",
- "digest": "sha256-1LRuVLdz4Be5bPbEaxfo+lZHHjUS9sAWxg1BqbK1c3Y="
+ "digest": "sha256-dlgUm59lsbboiK0rfTEoYEdF37yHJdkm9nWT3ij1b5M="
}
}
diff --git a/packages/ui/dist/contracts/range.json b/packages/ui/dist/contracts/range.json
index 9d4f49736..89c3379d7 100644
--- a/packages/ui/dist/contracts/range.json
+++ b/packages/ui/dist/contracts/range.json
@@ -551,6 +551,6 @@
"copy": {
"directory": "copy/range/",
"manifest": "copy/range/manifest.json",
- "digest": "sha256-fHyq5yxlVPUJAia5dDQw2XSMiqzkabED9NCkkaQYwAw="
+ "digest": "sha256-o2Hwo+ooUG8sME8FECrTFPiwMKQ+pfuzAxM7WzvJYaU="
}
}
diff --git a/packages/ui/dist/contracts/repeater.json b/packages/ui/dist/contracts/repeater.json
index 37e1d5a2e..5432a1608 100644
--- a/packages/ui/dist/contracts/repeater.json
+++ b/packages/ui/dist/contracts/repeater.json
@@ -562,6 +562,6 @@
"copy": {
"directory": "copy/repeater/",
"manifest": "copy/repeater/manifest.json",
- "digest": "sha256-P8lkMtyJPbMWrv+ToSQl2uSJvB45XkEbaJEwGS4Icrw="
+ "digest": "sha256-NrLOtQpkc1mMpis4qt4+A5l1/BbQDwknMjXrmGKQP8s="
}
}
diff --git a/packages/ui/dist/contracts/search-field.json b/packages/ui/dist/contracts/search-field.json
index 6ece2a353..f991c6734 100644
--- a/packages/ui/dist/contracts/search-field.json
+++ b/packages/ui/dist/contracts/search-field.json
@@ -492,6 +492,6 @@
"copy": {
"directory": "copy/search-field/",
"manifest": "copy/search-field/manifest.json",
- "digest": "sha256-MlEA1O4jbGz2/0lXtYTXRhzue/GO0CRrdRQUyq10ZFg="
+ "digest": "sha256-S2bH4AZGq25e1jCO7LjX/5Jh8QxBywXthR1jA/vaBfY="
}
}
diff --git a/packages/ui/dist/contracts/segmented-control.json b/packages/ui/dist/contracts/segmented-control.json
index 369bbe8cd..c78233263 100644
--- a/packages/ui/dist/contracts/segmented-control.json
+++ b/packages/ui/dist/contracts/segmented-control.json
@@ -145,6 +145,7 @@
"density.compact.icon",
"focus.offset",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -207,6 +208,7 @@
"density.compact.icon",
"focus.offset",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -374,6 +376,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -445,6 +452,6 @@
"copy": {
"directory": "copy/segmented-control/",
"manifest": "copy/segmented-control/manifest.json",
- "digest": "sha256-U8QmrR6N2BeyWJK8mugWaa5YUyIDeprteAt3NLlb4o8="
+ "digest": "sha256-G1CXVYEMtIIBQkaQDCMfY8eE3/BTOs1PLkNMfE1S0i8="
}
}
diff --git a/packages/ui/dist/contracts/select.json b/packages/ui/dist/contracts/select.json
index 67d336b06..b4a0e3a62 100644
--- a/packages/ui/dist/contracts/select.json
+++ b/packages/ui/dist/contracts/select.json
@@ -202,7 +202,6 @@
"color.icon.default",
"color.interaction.disabled.bg",
"color.interaction.drop-target",
- "color.interaction.focus.ring-container",
"color.interaction.hover.bg",
"color.interaction.selection.bg",
"color.interaction.selection.text",
@@ -231,6 +230,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -304,6 +304,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -386,11 +387,6 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
- "color.interaction.focus.ring-container": {
- "action": "use",
- "reason": "Use within the role's documented scope and restrictions.",
- "decisionIds": []
- },
"color.interaction.hover.bg": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -531,6 +527,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -607,6 +608,6 @@
"copy": {
"directory": "copy/select/",
"manifest": "copy/select/manifest.json",
- "digest": "sha256-X8ClgBgnj81zkUxVchrAKunE4At1HgKWTlGhDnBa0PA="
+ "digest": "sha256-15UmZVOGe4XAoyY0gzXCk0/0maw9YY0+lFK0S29qyKE="
}
}
diff --git a/packages/ui/dist/contracts/settings-panel.json b/packages/ui/dist/contracts/settings-panel.json
index 921d75f83..1069986b0 100644
--- a/packages/ui/dist/contracts/settings-panel.json
+++ b/packages/ui/dist/contracts/settings-panel.json
@@ -195,6 +195,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.caption",
"font.line-height.h2",
@@ -314,6 +315,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.caption",
"font.line-height.h2",
@@ -691,6 +693,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -817,6 +824,6 @@
"copy": {
"directory": "copy/settings-panel/",
"manifest": "copy/settings-panel/manifest.json",
- "digest": "sha256-WJU4OzQNvp6mP478QOWt8+2mRaVVTuyZocEvRs8BcxQ="
+ "digest": "sha256-glRxHaC4hjeWK5Glb2QiPzfaoCEZGNucJs4m/mFeB9s="
}
}
diff --git a/packages/ui/dist/contracts/sidebar-nav.json b/packages/ui/dist/contracts/sidebar-nav.json
index 4bd89614d..0c977505e 100644
--- a/packages/ui/dist/contracts/sidebar-nav.json
+++ b/packages/ui/dist/contracts/sidebar-nav.json
@@ -425,6 +425,6 @@
"copy": {
"directory": "copy/sidebar-nav/",
"manifest": "copy/sidebar-nav/manifest.json",
- "digest": "sha256-Li6ZjxbsR1RxT5R9/zKwHLZTyxTunFX9jqRIrU0QFb8="
+ "digest": "sha256-Mq8TmmhQW7izdJkcbTYoqpklyKcc0csRynDWThvLjP8="
}
}
diff --git a/packages/ui/dist/contracts/skeleton.json b/packages/ui/dist/contracts/skeleton.json
index bb54855ca..7c3384e57 100644
--- a/packages/ui/dist/contracts/skeleton.json
+++ b/packages/ui/dist/contracts/skeleton.json
@@ -283,6 +283,6 @@
"copy": {
"directory": "copy/skeleton/",
"manifest": "copy/skeleton/manifest.json",
- "digest": "sha256-/IlgtvilSDqgyjMmF2055DmrCe9e27wEIxyPXZ9j6zk="
+ "digest": "sha256-WX4lCvlPYy9qxNWCosEmCWK61baKzKS+k0v8deIIjqQ="
}
}
diff --git a/packages/ui/dist/contracts/skip-link.json b/packages/ui/dist/contracts/skip-link.json
index 0b8f94251..e835ff9a4 100644
--- a/packages/ui/dist/contracts/skip-link.json
+++ b/packages/ui/dist/contracts/skip-link.json
@@ -282,6 +282,6 @@
"copy": {
"directory": "copy/skip-link/",
"manifest": "copy/skip-link/manifest.json",
- "digest": "sha256-Cc64YD+9+04pEDbmTkOYQn2WgXyorjjK3s9dPDl4lZk="
+ "digest": "sha256-1NcW/OlCZEblXgeU6vKlBRBKsbfNs373TU8RZ7wkVS4="
}
}
diff --git a/packages/ui/dist/contracts/switch.json b/packages/ui/dist/contracts/switch.json
index ccb33abf2..057b7fb25 100644
--- a/packages/ui/dist/contracts/switch.json
+++ b/packages/ui/dist/contracts/switch.json
@@ -131,7 +131,6 @@
"color.border.disabled",
"color.interaction.disabled.bg",
"color.interaction.drop-target",
- "color.interaction.focus.ring-container",
"color.interaction.hover.bg",
"color.interaction.selection.bg",
"color.interaction.selection.text",
@@ -144,6 +143,7 @@
"color.text.muted",
"focus.offset",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -197,6 +197,7 @@
"color.text.on-action",
"focus.offset",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -259,11 +260,6 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
- "color.interaction.focus.ring-container": {
- "action": "use",
- "reason": "Use within the role's documented scope and restrictions.",
- "decisionIds": []
- },
"color.interaction.hover.bg": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -324,6 +320,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -395,6 +396,6 @@
"copy": {
"directory": "copy/switch/",
"manifest": "copy/switch/manifest.json",
- "digest": "sha256-azfUWxT0aJAZbSMDC8j+254Za5Ieti9Bg/VERoBvAAo="
+ "digest": "sha256-OFJ24mA3FGRFr6uPfF2LmntQv1DZ3QC6kX3ojsHSbsI="
}
}
diff --git a/packages/ui/dist/contracts/table.json b/packages/ui/dist/contracts/table.json
index cad99306e..39f4598cd 100644
--- a/packages/ui/dist/contracts/table.json
+++ b/packages/ui/dist/contracts/table.json
@@ -422,6 +422,6 @@
"copy": {
"directory": "copy/table/",
"manifest": "copy/table/manifest.json",
- "digest": "sha256-s3K2MnIRnTkfAy1WFKMoL4efHGv8vdQcKCVTR9N5eso="
+ "digest": "sha256-aoOvMgurbkNygqz8bKhJNTPJP69mv2XCbF0vQC6Hj9w="
}
}
diff --git a/packages/ui/dist/contracts/tabs.json b/packages/ui/dist/contracts/tabs.json
index 314b5df7e..d96e9055f 100644
--- a/packages/ui/dist/contracts/tabs.json
+++ b/packages/ui/dist/contracts/tabs.json
@@ -398,6 +398,6 @@
"copy": {
"directory": "copy/tabs/",
"manifest": "copy/tabs/manifest.json",
- "digest": "sha256-h1ykMepGUQPW/IBWeIG3wekA5Ik/VZZGdXW8/5eq0/Y="
+ "digest": "sha256-kVK3I1B40mnDE3HYRpkZoZsMGiQXKNNujC5r2Ein0kk="
}
}
diff --git a/packages/ui/dist/contracts/terminal.json b/packages/ui/dist/contracts/terminal.json
index 4cecefdbb..31d6563de 100644
--- a/packages/ui/dist/contracts/terminal.json
+++ b/packages/ui/dist/contracts/terminal.json
@@ -536,6 +536,6 @@
"copy": {
"directory": "copy/terminal/",
"manifest": "copy/terminal/manifest.json",
- "digest": "sha256-a2ut5/6sI3Hxhu3TSTLIpHNSL+kcEnFLqsiEP36N7H8="
+ "digest": "sha256-neXCFwYNgbQNRYU4N4Hta6zirL1qhtE0fcWeG7fIHqg="
}
}
diff --git a/packages/ui/dist/contracts/text-field.json b/packages/ui/dist/contracts/text-field.json
index 97ae1525a..271e84fb5 100644
--- a/packages/ui/dist/contracts/text-field.json
+++ b/packages/ui/dist/contracts/text-field.json
@@ -216,7 +216,6 @@
"color.code.caret",
"color.interaction.disabled.bg",
"color.interaction.drop-target",
- "color.interaction.focus.ring-container",
"color.interaction.hover.bg",
"color.interaction.selection.bg",
"color.interaction.selection.text",
@@ -238,6 +237,7 @@
"focus.offset",
"focus.offset-invalid",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -299,6 +299,7 @@
"focus.offset",
"focus.offset-invalid",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -370,11 +371,6 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
- "color.interaction.focus.ring-container": {
- "action": "use",
- "reason": "Use within the role's documented scope and restrictions.",
- "decisionIds": []
- },
"color.interaction.hover.bg": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -480,6 +476,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -536,6 +537,6 @@
"copy": {
"directory": "copy/text-field/",
"manifest": "copy/text-field/manifest.json",
- "digest": "sha256-QVFw6clgmhGPRFOGc9gq7zUsnex503DgVurd5gZjUHo="
+ "digest": "sha256-ISX9TwuNxrUUV1ZhCphehotlBfRbmDfSTmMuCCPB9zY="
}
}
diff --git a/packages/ui/dist/contracts/textarea.json b/packages/ui/dist/contracts/textarea.json
index 94b120927..c88bf9201 100644
--- a/packages/ui/dist/contracts/textarea.json
+++ b/packages/ui/dist/contracts/textarea.json
@@ -192,7 +192,6 @@
"color.code.caret",
"color.interaction.disabled.bg",
"color.interaction.drop-target",
- "color.interaction.focus.ring-container",
"color.interaction.hover.bg",
"color.interaction.selection.bg",
"color.interaction.selection.text",
@@ -214,6 +213,7 @@
"focus.offset",
"focus.offset-invalid",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -272,6 +272,7 @@
"focus.offset",
"focus.offset-invalid",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -332,11 +333,6 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
- "color.interaction.focus.ring-container": {
- "action": "use",
- "reason": "Use within the role's documented scope and restrictions.",
- "decisionIds": []
- },
"color.interaction.hover.bg": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -442,6 +438,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -493,6 +494,6 @@
"copy": {
"directory": "copy/textarea/",
"manifest": "copy/textarea/manifest.json",
- "digest": "sha256-9OiLMOutk7sDFK/BKt3rW4+t7B0HZ+lVnlSIJqI0dFc="
+ "digest": "sha256-tAU6bGgIL+sk3VnNhk7sK3BQG92E5syRZ+qsUhl2+uc="
}
}
diff --git a/packages/ui/dist/contracts/time-picker.json b/packages/ui/dist/contracts/time-picker.json
index 87765823b..7c932eaec 100644
--- a/packages/ui/dist/contracts/time-picker.json
+++ b/packages/ui/dist/contracts/time-picker.json
@@ -178,7 +178,6 @@
"color.code.caret",
"color.interaction.disabled.bg",
"color.interaction.drop-target",
- "color.interaction.focus.ring-container",
"color.interaction.hover.bg",
"color.interaction.selection.bg",
"color.interaction.selection.text",
@@ -205,6 +204,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -276,6 +276,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -358,11 +359,6 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
- "color.interaction.focus.ring-container": {
- "action": "use",
- "reason": "Use within the role's documented scope and restrictions.",
- "decisionIds": []
- },
"color.interaction.hover.bg": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -493,6 +489,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -569,6 +570,6 @@
"copy": {
"directory": "copy/time-picker/",
"manifest": "copy/time-picker/manifest.json",
- "digest": "sha256-A8dIwiYn2nlNCuNvQObX2Iws9rBDL/ID3aqTgjN0GjY="
+ "digest": "sha256-ZfgTk+5T5oSgattbFb8EAUkGjjef0FLON6fIE4q4GCw="
}
}
diff --git a/packages/ui/dist/contracts/timeline.json b/packages/ui/dist/contracts/timeline.json
index 5c0d57a1d..56b727d1e 100644
--- a/packages/ui/dist/contracts/timeline.json
+++ b/packages/ui/dist/contracts/timeline.json
@@ -283,6 +283,6 @@
"copy": {
"directory": "copy/timeline/",
"manifest": "copy/timeline/manifest.json",
- "digest": "sha256-9dS8Y09MmdcfilejwoK1Kw46VATPPDKoea3xMoOlyTg="
+ "digest": "sha256-Cp/aX8rCgoWSp/Q+1R94CXURwmtjEdOqpbYjPXwj1mU="
}
}
diff --git a/packages/ui/dist/contracts/toast.json b/packages/ui/dist/contracts/toast.json
index 6da2f432b..b2bcae9a2 100644
--- a/packages/ui/dist/contracts/toast.json
+++ b/packages/ui/dist/contracts/toast.json
@@ -523,6 +523,6 @@
"copy": {
"directory": "copy/toast/",
"manifest": "copy/toast/manifest.json",
- "digest": "sha256-bCWPynWl0C2Bz5UPADBaW4C1eOSMaHaXHhVMpceGiNA="
+ "digest": "sha256-J/MzG6VBxkvJz4mCD/WhkOmjE/OyKSOOaq35OLRHgnI="
}
}
diff --git a/packages/ui/dist/contracts/toolbar.json b/packages/ui/dist/contracts/toolbar.json
index 1c642fc5f..a07a1c5b9 100644
--- a/packages/ui/dist/contracts/toolbar.json
+++ b/packages/ui/dist/contracts/toolbar.json
@@ -518,6 +518,6 @@
"copy": {
"directory": "copy/toolbar/",
"manifest": "copy/toolbar/manifest.json",
- "digest": "sha256-fvYtHYd1COEZj/FavW9Fo5PcEOIaI9yRebWxrwhsUag="
+ "digest": "sha256-53nOpYbwMvj7JwamCeotFOeokndDQ55A3ILDO7DPpGs="
}
}
diff --git a/packages/ui/dist/contracts/tooltip.json b/packages/ui/dist/contracts/tooltip.json
index d56ef4040..1a0d30cb8 100644
--- a/packages/ui/dist/contracts/tooltip.json
+++ b/packages/ui/dist/contracts/tooltip.json
@@ -357,6 +357,6 @@
"copy": {
"directory": "copy/tooltip/",
"manifest": "copy/tooltip/manifest.json",
- "digest": "sha256-jnoOb2I9sRZsUnOtwqqwpg9QyVSFlW3K65GYFix39dc="
+ "digest": "sha256-LgYhebHPFhpFKUfThuI/MIy50Dm4K0sCOohZna+hedw="
}
}
diff --git a/packages/ui/dist/contracts/tree.json b/packages/ui/dist/contracts/tree.json
index 4aa53ed48..c60538ae6 100644
--- a/packages/ui/dist/contracts/tree.json
+++ b/packages/ui/dist/contracts/tree.json
@@ -325,6 +325,6 @@
"copy": {
"directory": "copy/tree/",
"manifest": "copy/tree/manifest.json",
- "digest": "sha256-xJ5YVjzApCdc/f8qc+rs3uRCT9DfNBT1TqPYogGUHJY="
+ "digest": "sha256-YLD7hdWdnhC7if/nXPx4PbvLAVhJzPToi1XtDhnrvik="
}
}
diff --git a/packages/ui/dist/contracts/wizard.json b/packages/ui/dist/contracts/wizard.json
index 139a5d296..cbb8208a3 100644
--- a/packages/ui/dist/contracts/wizard.json
+++ b/packages/ui/dist/contracts/wizard.json
@@ -162,7 +162,6 @@
"color.code.caret",
"color.interaction.disabled.bg",
"color.interaction.drop-target",
- "color.interaction.focus.ring-container",
"color.interaction.hover.bg",
"color.interaction.selection.bg",
"color.interaction.selection.text",
@@ -188,6 +187,7 @@
"focus.offset",
"focus.offset-invalid",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.h3",
"font.line-height.ui-md",
@@ -278,6 +278,7 @@
"focus.offset",
"focus.offset-invalid",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.h3",
"font.line-height.ui-md",
@@ -415,11 +416,6 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
- "color.interaction.focus.ring-container": {
- "action": "use",
- "reason": "Use within the role's documented scope and restrictions.",
- "decisionIds": []
- },
"color.interaction.hover.bg": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -545,6 +541,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -631,6 +632,6 @@
"copy": {
"directory": "copy/wizard/",
"manifest": "copy/wizard/manifest.json",
- "digest": "sha256-YCzSJskJMSjdynux2FW49yDJDlfm4KyiiZo+CbEYtx8="
+ "digest": "sha256-8bKVU+eXIHG9K1SmV490QnI4e1Nh3IvBMLvvtXclExE="
}
}
diff --git a/packages/ui/dist/copy/admin-form/component.css b/packages/ui/dist/copy/admin-form/component.css
index 3109fc6d2..470fbc871 100644
--- a/packages/ui/dist/copy/admin-form/component.css
+++ b/packages/ui/dist/copy/admin-form/component.css
@@ -566,7 +566,7 @@ j3w1-admin-form .text-field:has(.text-field-input[aria-invalid="true"]) .text-fi
}
j3w1-admin-form .text-field-root:has(.text-field-input[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-admin-form .text-field-root:has(.text-field-input:disabled) {
@@ -722,7 +722,7 @@ j3w1-admin-form .checkbox-input:focus-visible {
}
j3w1-admin-form .checkbox-input:checked:focus-visible,
j3w1-admin-form .checkbox-input:indeterminate:focus-visible {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
j3w1-admin-form .checkbox:has(.checkbox-input:required) .checkbox-required {
@@ -873,7 +873,7 @@ j3w1-admin-form .radio-group-input:focus-visible {
outline-offset: var(--focus-offset);
}
j3w1-admin-form .radio-group-input:checked:focus-visible {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
j3w1-admin-form .radio-group:has(.radio-group-input:required) .radio-group-required {
@@ -1101,7 +1101,7 @@ j3w1-admin-form .select:has(.select-control[aria-invalid="true"]) .select-help {
}
j3w1-admin-form .select-root:has(.select-control[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-admin-form .select-root:has(.select-control:disabled) {
@@ -1219,7 +1219,7 @@ j3w1-admin-form .switch:focus-visible .switch-track {
}
j3w1-admin-form .switch[aria-checked="true"]:focus-visible .switch-track {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
j3w1-admin-form .switch:disabled {
@@ -1346,7 +1346,7 @@ j3w1-admin-form .textarea:has(.textarea-input[aria-invalid="true"]) .textarea-he
}
j3w1-admin-form .textarea-root:has(.textarea-input[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-admin-form .textarea-root:has(.textarea-input:disabled) {
diff --git a/packages/ui/dist/copy/admin-form/manifest.json b/packages/ui/dist/copy/admin-form/manifest.json
index d56e94e3b..f1856c8dc 100644
--- a/packages/ui/dist/copy/admin-form/manifest.json
+++ b/packages/ui/dist/copy/admin-form/manifest.json
@@ -30,8 +30,8 @@
"runtime/components/select.js": "sha256-QSO5F4fiwtnnIHZ9/a9n62yVZRlGUIofNkw2oXYIzGY=",
"runtime/components/admin-form.js": "sha256-FVzHg1y71Fg3LptLCSedTH/NQIxijxfYfjfBaYWXGS4=",
"runtime/chunks/forms-CE_hP1hg.js": "sha256-uOnoMuSkUbm9C/GfR+PDLYCykyHOQ1Ni7g59c4YMOS0=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-Aha0xp86OpN6uUIQCjlXTYdzw2u0p0Y/dxNCx+gMC/s=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-N8dnCpPJJWG/StUZN68/NzU+Ag/vEyCPsjoHNJ8SMTI=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-TRLraonRxggrZcfXS9jlN+nTIOpRHiXbMKQNm8NbR2A=",
"index.html": "sha256-fCyv1GPEoas5phPBo4T3EhrTQ5U3/15ks0AZJQawjDc=",
diff --git a/packages/ui/dist/copy/admin-form/tokens.css b/packages/ui/dist/copy/admin-form/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/admin-form/tokens.css
+++ b/packages/ui/dist/copy/admin-form/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/alert/manifest.json b/packages/ui/dist/copy/alert/manifest.json
index c888d255f..d52c4ee3b 100644
--- a/packages/ui/dist/copy/alert/manifest.json
+++ b/packages/ui/dist/copy/alert/manifest.json
@@ -8,15 +8,15 @@
"chunks/element-Dovcr9Ky.js",
"chunks/choice-B7mo5Eq3.js",
"components/alert.js",
- "chunks/overlays-Bw8SSDKz.js"
+ "chunks/overlays-BwgpF4jI.js"
],
"files": {
"runtime/register/alert.js": "sha256-tioVtq6u1i9xQuPnmdCiimbU19h1/epCn1uitDhU938=",
"runtime/chunks/element-Dovcr9Ky.js": "sha256-7tXEQrcJPBXSDlmCqor6zZVtsFMvL54mFXd6XSTVzQA=",
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
- "runtime/components/alert.js": "sha256-viVrXu+dUgCAMDq7iuljYYljZLxreTt4cQ+40NUQ3Js=",
- "runtime/chunks/overlays-Bw8SSDKz.js": "sha256-YrX9CL2A48QwI7COQQ5anYJLPOxpKrIeyz+jtfp+T+I=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "runtime/components/alert.js": "sha256-ipEjIR62L4Lq8O1vkv4IzvYM7kLeFjfhYEw6MSL03pY=",
+ "runtime/chunks/overlays-BwgpF4jI.js": "sha256-NAd99OT4kDsFp8IHscKRus2jY6XRsq+GMzplWbJsY4U=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-5Dd4DFZ5Lg+H5ZcZnWfb8Ommsp9rKKRLJYR0cpgWWpU=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-QUAq9dxIFB1jlxB27CrSrEZKRLa4rC6qRLbWmR2t/ug=",
diff --git a/packages/ui/dist/copy/dialog/runtime/chunks/overlays-Bw8SSDKz.js b/packages/ui/dist/copy/alert/runtime/chunks/overlays-BwgpF4jI.js
similarity index 94%
rename from packages/ui/dist/copy/dialog/runtime/chunks/overlays-Bw8SSDKz.js
rename to packages/ui/dist/copy/alert/runtime/chunks/overlays-BwgpF4jI.js
index 3eeb8ff0d..4b8de2e8b 100644
--- a/packages/ui/dist/copy/dialog/runtime/chunks/overlays-Bw8SSDKz.js
+++ b/packages/ui/dist/copy/alert/runtime/chunks/overlays-BwgpF4jI.js
@@ -55,9 +55,10 @@ function tooltip(root, { on }) {
if (!trigger || !popup) return {};
identify(root, popup, "tooltip");
trigger.setAttribute("aria-describedby", popup.id);
- let timer, dismissed = false, hovering = false;
+ let timer, hideTimer, dismissed = false, hovering = false;
const stop = () => {
clearTimeout(timer);
+ clearTimeout(hideTimer);
};
const hide = () => {
stop();
@@ -70,18 +71,26 @@ function tooltip(root, { on }) {
place(trigger, popup);
}
};
+ const hideSoon = () => {
+ clearTimeout(timer);
+ clearTimeout(hideTimer);
+ hideTimer = setTimeout(() => {
+ if (!hovering && root.ownerDocument.activeElement !== trigger) hide();
+ }, 300);
+ };
on(trigger, "pointerenter", (event) => {
if (event.pointerType !== "touch") {
hovering = true;
dismissed = false;
- timer = setTimeout(show, 300);
+ clearTimeout(hideTimer);
+ if (popup.hidden) timer = setTimeout(show, 300);
}
});
on(root, "pointerleave", (event) => {
if (!root.contains(event.relatedTarget)) {
hovering = false;
dismissed = false;
- if (root.ownerDocument.activeElement !== trigger) hide();
+ if (root.ownerDocument.activeElement !== trigger) hideSoon();
}
});
on(popup, "pointerenter", () => {
diff --git a/packages/ui/dist/copy/alert/runtime/components/alert.js b/packages/ui/dist/copy/alert/runtime/components/alert.js
index 6c6db1b50..c434333d3 100644
--- a/packages/ui/dist/copy/alert/runtime/components/alert.js
+++ b/packages/ui/dist/copy/alert/runtime/components/alert.js
@@ -1,10 +1,10 @@
import { t as J3w1Element } from "../chunks/element-Dovcr9Ky.js";
-import { t as feedback } from "../chunks/overlays-Bw8SSDKz.js";
+import { t as feedback } from "../chunks/overlays-BwgpF4jI.js";
//#region .cache/ui-build/entries/components/alert.js
var J3w1Alert = class extends J3w1Element {
static componentId = "alert";
static version = "4.0.0";
- static implementationId = "sha256-6Wo+BnYA6udYTk6XDw6PR9MtJYx0FznliTgiGt+lVxo=";
+ static implementationId = "sha256-UxXRTp+Yf7lbD/vkY8rJ0A/kKL5Xkg9lnOEAvWcr7OA=";
static connect = feedback;
static upgradeProperties = ["disabled", "name"];
static observedAttributes = [...J3w1Element.observedAttributes, ...["disabled", "loading"]];
diff --git a/packages/ui/dist/copy/alert/tokens.css b/packages/ui/dist/copy/alert/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/alert/tokens.css
+++ b/packages/ui/dist/copy/alert/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/avatar/manifest.json b/packages/ui/dist/copy/avatar/manifest.json
index 46b93ddd0..1a44039d7 100644
--- a/packages/ui/dist/copy/avatar/manifest.json
+++ b/packages/ui/dist/copy/avatar/manifest.json
@@ -16,7 +16,7 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/avatar.js": "sha256-eST4r5/Ji77KAR4qwQ+HUIyQL67gllpCSiBqpODqeW4=",
"runtime/chunks/display-Jm9bAsnb.js": "sha256-qZb1g04piEwY3lfFJwMe+0mXR218ljtVi8mepWxrFv8=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-5uftL4p30t4ItPscyYR/4jS31cRz/VU0Ga2CL/3fjhg=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-R1Q+6UFu76jOlVP9cadBrMxVS3+Yb2JgIDkcnKxWvtk=",
diff --git a/packages/ui/dist/copy/avatar/tokens.css b/packages/ui/dist/copy/avatar/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/avatar/tokens.css
+++ b/packages/ui/dist/copy/avatar/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/badge/manifest.json b/packages/ui/dist/copy/badge/manifest.json
index 1f2ecca07..695d7b1be 100644
--- a/packages/ui/dist/copy/badge/manifest.json
+++ b/packages/ui/dist/copy/badge/manifest.json
@@ -16,7 +16,7 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/badge.js": "sha256-7aVCilfmosfSHQDe+hY74Ms2tAC1jMlxtTExgZ+istY=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-au/P4qbkjvG1QpFUYQDc35IhSbbhmFRxoXhu7zPifn8=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-rXaOLdDbEK5SMtYsw5TegOMtcnLijmgtU07RVrvJx8o=",
diff --git a/packages/ui/dist/copy/badge/tokens.css b/packages/ui/dist/copy/badge/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/badge/tokens.css
+++ b/packages/ui/dist/copy/badge/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/breadcrumbs/manifest.json b/packages/ui/dist/copy/breadcrumbs/manifest.json
index 838c39429..9c80702e4 100644
--- a/packages/ui/dist/copy/breadcrumbs/manifest.json
+++ b/packages/ui/dist/copy/breadcrumbs/manifest.json
@@ -16,7 +16,7 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/breadcrumbs.js": "sha256-DgJ8uy8nkN1QOm3/zq3cYvs7xmhXCyPkXdhu3CDEE00=",
"runtime/chunks/navigation-BfNzDYZB.js": "sha256-OhGJWNOz3aZxPAacBgEhAFmBLRt/BGPr7INBjumqyQo=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-+Zc2EEKW9OfZl8s+wFiHlzjJHlyVTyGwZDbPlyRKx4A=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-W9qk0XtcetNK1me7748lByEMSMUZyP6NT//vet/Kt0I=",
diff --git a/packages/ui/dist/copy/breadcrumbs/tokens.css b/packages/ui/dist/copy/breadcrumbs/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/breadcrumbs/tokens.css
+++ b/packages/ui/dist/copy/breadcrumbs/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/button-group/manifest.json b/packages/ui/dist/copy/button-group/manifest.json
index 2c71a9f2e..a747133a5 100644
--- a/packages/ui/dist/copy/button-group/manifest.json
+++ b/packages/ui/dist/copy/button-group/manifest.json
@@ -16,7 +16,7 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/button-group.js": "sha256-aYOeTtqsQuXqHLxIh17+FGxd0WuETY31YqUOFh32A4A=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-0HQ2nfSUmtlZV8Bwsob1wBnVODkxbeI16OqeME3hc2M=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-4NLobHuAfZnWUQDNQ3ENH9ucyjTTUTD6gk0XV7SHGng=",
diff --git a/packages/ui/dist/copy/button-group/tokens.css b/packages/ui/dist/copy/button-group/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/button-group/tokens.css
+++ b/packages/ui/dist/copy/button-group/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/button/manifest.json b/packages/ui/dist/copy/button/manifest.json
index e79ab2ebf..112a2a97e 100644
--- a/packages/ui/dist/copy/button/manifest.json
+++ b/packages/ui/dist/copy/button/manifest.json
@@ -16,7 +16,7 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/button.js": "sha256-csyoBHNGYp8/JTgXnOjZuGEFG9u6KytBLHY3MtJdxcs=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-3CHgfHOT+xBve253iRY/PvSWDiyrTR4uMxiCy2jC7OQ=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-kLEcMMhF4Tv+byKkImEgGIqqR+QYh6uOOCz/mg5hkPs=",
diff --git a/packages/ui/dist/copy/button/tokens.css b/packages/ui/dist/copy/button/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/button/tokens.css
+++ b/packages/ui/dist/copy/button/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/card/manifest.json b/packages/ui/dist/copy/card/manifest.json
index b80b3780b..c2638b2ae 100644
--- a/packages/ui/dist/copy/card/manifest.json
+++ b/packages/ui/dist/copy/card/manifest.json
@@ -16,7 +16,7 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/card.js": "sha256-CE1Pt81XkHCmaZj7t3LqXTUnuvHd4E3/Od5t2v07ltA=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-FIugfi7dJgtnME2RJdIYZUQl/3O/WVR1fu23onC7U/M=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-Rc0IwITP8X0cKscYMBt4LgzFbntPHkCAdDQ4xLh2LXs=",
diff --git a/packages/ui/dist/copy/card/tokens.css b/packages/ui/dist/copy/card/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/card/tokens.css
+++ b/packages/ui/dist/copy/card/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/chart/manifest.json b/packages/ui/dist/copy/chart/manifest.json
index 7a997d71e..04c5a3cb5 100644
--- a/packages/ui/dist/copy/chart/manifest.json
+++ b/packages/ui/dist/copy/chart/manifest.json
@@ -16,7 +16,7 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/chart.js": "sha256-hVyc1MgrIwRQZWPz61YJX6ScFRhDJTjMKtYEs5Xtxoo=",
"runtime/chunks/display-Jm9bAsnb.js": "sha256-qZb1g04piEwY3lfFJwMe+0mXR218ljtVi8mepWxrFv8=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-bZANhpWKREr2mT2bkDhKqg7tacAvTsBxyTk7F9aojeE=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-Wk7EuPuisom2ohEBkZvcgafrpN7xXzlCUaNrWq7BZEA=",
diff --git a/packages/ui/dist/copy/chart/tokens.css b/packages/ui/dist/copy/chart/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/chart/tokens.css
+++ b/packages/ui/dist/copy/chart/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/checkbox/component.css b/packages/ui/dist/copy/checkbox/component.css
index 798a26875..146420e5f 100644
--- a/packages/ui/dist/copy/checkbox/component.css
+++ b/packages/ui/dist/copy/checkbox/component.css
@@ -138,7 +138,7 @@ j3w1-checkbox .checkbox-input:focus-visible {
}
j3w1-checkbox .checkbox-input:checked:focus-visible,
j3w1-checkbox .checkbox-input:indeterminate:focus-visible {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
j3w1-checkbox .checkbox:has(.checkbox-input:required) .checkbox-required {
diff --git a/packages/ui/dist/copy/checkbox/manifest.json b/packages/ui/dist/copy/checkbox/manifest.json
index 4d8470785..a9f4f3bda 100644
--- a/packages/ui/dist/copy/checkbox/manifest.json
+++ b/packages/ui/dist/copy/checkbox/manifest.json
@@ -16,8 +16,8 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/checkbox.js": "sha256-M4ffC3UZvNt1LaayV7iUubw0dG33RiqLTYcb05lK3N4=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-AK4XY+QZY/YF9sLhWvSFhLzm72MjHWrr+4fVKr5+398=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-UbNMFdu+HW8ujyQExwYwdN9wZDBkKRrgWyLfrTITwec=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-D5pZAWuWF8+C90nVIZnSREv1i0fk6q9L+6SEdvU1Okk=",
"index.html": "sha256-PXIpEMN5ECxZXpbQG1pVzJUZwEslHvYulHsJlfHplz0=",
diff --git a/packages/ui/dist/copy/checkbox/tokens.css b/packages/ui/dist/copy/checkbox/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/checkbox/tokens.css
+++ b/packages/ui/dist/copy/checkbox/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/chip/manifest.json b/packages/ui/dist/copy/chip/manifest.json
index 8d528b3fd..ae8ff26d0 100644
--- a/packages/ui/dist/copy/chip/manifest.json
+++ b/packages/ui/dist/copy/chip/manifest.json
@@ -8,15 +8,15 @@
"chunks/element-Dovcr9Ky.js",
"chunks/choice-B7mo5Eq3.js",
"components/chip.js",
- "chunks/overlays-Bw8SSDKz.js"
+ "chunks/overlays-BwgpF4jI.js"
],
"files": {
"runtime/register/chip.js": "sha256-H45do+W8XNxsOyAgO7vOSM4Wm6HfTun0JETK6F/YGRo=",
"runtime/chunks/element-Dovcr9Ky.js": "sha256-7tXEQrcJPBXSDlmCqor6zZVtsFMvL54mFXd6XSTVzQA=",
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
- "runtime/components/chip.js": "sha256-zqlDj7D8NyN4xQ/pnlXuOTnA8NlRXPBwW6qG+JcjoDY=",
- "runtime/chunks/overlays-Bw8SSDKz.js": "sha256-YrX9CL2A48QwI7COQQ5anYJLPOxpKrIeyz+jtfp+T+I=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "runtime/components/chip.js": "sha256-S45gQt3C5/jkmBzAtETNlZkOIiP4jPQEUcJa7TAulk8=",
+ "runtime/chunks/overlays-BwgpF4jI.js": "sha256-NAd99OT4kDsFp8IHscKRus2jY6XRsq+GMzplWbJsY4U=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-358eNya4c7h47XJC5dFUZncxpjkl0B9HRfRfxwVS8so=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-yjXdYrZ4DqpcZ/ZDGxD0cgfYY/xqj0qeSkX1dJmVhfY=",
diff --git a/packages/ui/dist/chunks/overlays-Bw8SSDKz.js b/packages/ui/dist/copy/chip/runtime/chunks/overlays-BwgpF4jI.js
similarity index 94%
rename from packages/ui/dist/chunks/overlays-Bw8SSDKz.js
rename to packages/ui/dist/copy/chip/runtime/chunks/overlays-BwgpF4jI.js
index 3eeb8ff0d..4b8de2e8b 100644
--- a/packages/ui/dist/chunks/overlays-Bw8SSDKz.js
+++ b/packages/ui/dist/copy/chip/runtime/chunks/overlays-BwgpF4jI.js
@@ -55,9 +55,10 @@ function tooltip(root, { on }) {
if (!trigger || !popup) return {};
identify(root, popup, "tooltip");
trigger.setAttribute("aria-describedby", popup.id);
- let timer, dismissed = false, hovering = false;
+ let timer, hideTimer, dismissed = false, hovering = false;
const stop = () => {
clearTimeout(timer);
+ clearTimeout(hideTimer);
};
const hide = () => {
stop();
@@ -70,18 +71,26 @@ function tooltip(root, { on }) {
place(trigger, popup);
}
};
+ const hideSoon = () => {
+ clearTimeout(timer);
+ clearTimeout(hideTimer);
+ hideTimer = setTimeout(() => {
+ if (!hovering && root.ownerDocument.activeElement !== trigger) hide();
+ }, 300);
+ };
on(trigger, "pointerenter", (event) => {
if (event.pointerType !== "touch") {
hovering = true;
dismissed = false;
- timer = setTimeout(show, 300);
+ clearTimeout(hideTimer);
+ if (popup.hidden) timer = setTimeout(show, 300);
}
});
on(root, "pointerleave", (event) => {
if (!root.contains(event.relatedTarget)) {
hovering = false;
dismissed = false;
- if (root.ownerDocument.activeElement !== trigger) hide();
+ if (root.ownerDocument.activeElement !== trigger) hideSoon();
}
});
on(popup, "pointerenter", () => {
diff --git a/packages/ui/dist/copy/chip/runtime/components/chip.js b/packages/ui/dist/copy/chip/runtime/components/chip.js
index 749a8cf86..e336b104c 100644
--- a/packages/ui/dist/copy/chip/runtime/components/chip.js
+++ b/packages/ui/dist/copy/chip/runtime/components/chip.js
@@ -1,10 +1,10 @@
import { t as J3w1Element } from "../chunks/element-Dovcr9Ky.js";
-import { t as feedback } from "../chunks/overlays-Bw8SSDKz.js";
+import { t as feedback } from "../chunks/overlays-BwgpF4jI.js";
//#region .cache/ui-build/entries/components/chip.js
var J3w1Chip = class extends J3w1Element {
static componentId = "chip";
static version = "4.0.0";
- static implementationId = "sha256-AQdMwG6TMuURDhU/UWs7oHW2L2skw4ISgrH4cwOomvk=";
+ static implementationId = "sha256-LX8QtUNQgNJe9t+ID6Q+WinGVj68ZHfs0KLKk56qrpw=";
static connect = feedback;
static upgradeProperties = ["disabled", "name"];
static observedAttributes = [...J3w1Element.observedAttributes, ...["disabled", "loading"]];
diff --git a/packages/ui/dist/copy/chip/tokens.css b/packages/ui/dist/copy/chip/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/chip/tokens.css
+++ b/packages/ui/dist/copy/chip/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/code-editor/manifest.json b/packages/ui/dist/copy/code-editor/manifest.json
index 724ca6b89..346eaea4a 100644
--- a/packages/ui/dist/copy/code-editor/manifest.json
+++ b/packages/ui/dist/copy/code-editor/manifest.json
@@ -16,7 +16,7 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/code-editor.js": "sha256-MMz8rm+dJT4XahXmR9ftmU0IhNW1NqLIHW7U3STXDPQ=",
"runtime/chunks/display-Jm9bAsnb.js": "sha256-qZb1g04piEwY3lfFJwMe+0mXR218ljtVi8mepWxrFv8=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-aa9zAzIlna+IPd+Xivi0WU385o/+RmhG5pRVR1vsE64=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-yXGoyQ6QC1zx9v7pXmaH1J2StJS/EEc6ZMqWAgdNj6A=",
diff --git a/packages/ui/dist/copy/code-editor/tokens.css b/packages/ui/dist/copy/code-editor/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/code-editor/tokens.css
+++ b/packages/ui/dist/copy/code-editor/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/combobox/component.css b/packages/ui/dist/copy/combobox/component.css
index c2c436f19..1b429494d 100644
--- a/packages/ui/dist/copy/combobox/component.css
+++ b/packages/ui/dist/copy/combobox/component.css
@@ -242,7 +242,7 @@ j3w1-combobox .combobox:has(.combobox-input[aria-invalid="true"]) .combobox-help
}
j3w1-combobox .combobox-root:has(.combobox-input[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-combobox .combobox-root:has(.combobox-input:disabled) {
diff --git a/packages/ui/dist/copy/combobox/manifest.json b/packages/ui/dist/copy/combobox/manifest.json
index 83fa989de..b1bff363d 100644
--- a/packages/ui/dist/copy/combobox/manifest.json
+++ b/packages/ui/dist/copy/combobox/manifest.json
@@ -16,8 +16,8 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/combobox.js": "sha256-7kydwJcVW8U2c0ssJPwbR84tdqvYPN/lFqBuOGeDQpU=",
"runtime/chunks/navigation-BfNzDYZB.js": "sha256-OhGJWNOz3aZxPAacBgEhAFmBLRt/BGPr7INBjumqyQo=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-7Br4xmCcyfgXyjiq25+JY7SY8r5G/VLEzsNt6HBlB7k=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-8Hkgwo0uaQUx8y4ghR6eYfsYL07GWC6VT0p+F/wavGo=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-/SDEtn3D/9kfnULtpHPFEgK1FAkmwe+77gdxlWNewhY=",
"index.html": "sha256-p9Z0Z0qJkFi41Gxp+ZcP2av6zsHe4VtOAtgfxnDq5YE=",
diff --git a/packages/ui/dist/copy/combobox/tokens.css b/packages/ui/dist/copy/combobox/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/combobox/tokens.css
+++ b/packages/ui/dist/copy/combobox/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/command-palette/manifest.json b/packages/ui/dist/copy/command-palette/manifest.json
index 8b1bc356f..d98d4738e 100644
--- a/packages/ui/dist/copy/command-palette/manifest.json
+++ b/packages/ui/dist/copy/command-palette/manifest.json
@@ -18,7 +18,7 @@
"runtime/components/command-palette.js": "sha256-GlMjxlVVzdC74Yr4LjWbLwXWGrHkFnjBaJ4o9rJw9DE=",
"runtime/chunks/advanced-CqBF0dSb.js": "sha256-ozOzkRU6IeVGBqU3XQ0aLledkAi9vcs8dJdMQutVevs=",
"runtime/chunks/markup-DeQ4bEMR.js": "sha256-Eyyx7MKBoqXK4i2HaVUQhKUM066L2wIggABt6jAdgas=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-tiMnZi/dRu4gB3RP0zxXVpTrTvFZsCYaugfulxBVhTk=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-mNRkLE+yYA4PARM4rv5bXDj90Oq8yxQLPgoUW8bX6ns=",
diff --git a/packages/ui/dist/copy/command-palette/tokens.css b/packages/ui/dist/copy/command-palette/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/command-palette/tokens.css
+++ b/packages/ui/dist/copy/command-palette/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/compact-dashboard/manifest.json b/packages/ui/dist/copy/compact-dashboard/manifest.json
index 485139f74..cdc9ebeff 100644
--- a/packages/ui/dist/copy/compact-dashboard/manifest.json
+++ b/packages/ui/dist/copy/compact-dashboard/manifest.json
@@ -24,7 +24,7 @@
"runtime/components/compact-dashboard.js": "sha256-Y2R2ASCxDuMVCbBdUqOGP60JpwtPCK17jCjpQXz1hhE=",
"runtime/chunks/compositions-D57dCsBz.js": "sha256-PEpI/vGgdD+LSznUd0iedSxxVE+5QxIO7BGKeQnCRjo=",
"runtime/chunks/navigation-BfNzDYZB.js": "sha256-OhGJWNOz3aZxPAacBgEhAFmBLRt/BGPr7INBjumqyQo=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-7CRIHJNTDt06T3ztva5EpY4ytKr+vSsMZHxxolQ/+GU=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-I++zY2714BqcfCh02WgcXCFwujrwXLK4TwP9wII+QE4=",
diff --git a/packages/ui/dist/copy/compact-dashboard/tokens.css b/packages/ui/dist/copy/compact-dashboard/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/compact-dashboard/tokens.css
+++ b/packages/ui/dist/copy/compact-dashboard/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/data-table/manifest.json b/packages/ui/dist/copy/data-table/manifest.json
index 620692789..efa9a36c4 100644
--- a/packages/ui/dist/copy/data-table/manifest.json
+++ b/packages/ui/dist/copy/data-table/manifest.json
@@ -22,7 +22,7 @@
"runtime/chunks/navigation-BfNzDYZB.js": "sha256-OhGJWNOz3aZxPAacBgEhAFmBLRt/BGPr7INBjumqyQo=",
"runtime/components/data-table.js": "sha256-Du0JOAv8n9YEK04c217gbbmS25D1Yfx4irEe/DIPLk4=",
"runtime/chunks/tables-Cjr1EIJz.js": "sha256-K6BF6M6xNawgWdL+NIcBRZmY98j45o69tBI034Ks4Bg=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-T5PnYnMx2i60rNgYfN/tfLrncLf9cAlC4gsLpnSw/b4=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-FieIuPCt66UIxpdAH0wuPBOrPEVXUqjJfyWMyCdO9nI=",
diff --git a/packages/ui/dist/copy/data-table/tokens.css b/packages/ui/dist/copy/data-table/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/data-table/tokens.css
+++ b/packages/ui/dist/copy/data-table/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/date-picker/component.css b/packages/ui/dist/copy/date-picker/component.css
index 74ea90ce8..0b0003e49 100644
--- a/packages/ui/dist/copy/date-picker/component.css
+++ b/packages/ui/dist/copy/date-picker/component.css
@@ -244,7 +244,7 @@ j3w1-date-picker .date-picker:has(.date-picker-input[aria-invalid="true"]) .date
}
j3w1-date-picker .date-picker-root:has(.date-picker-input[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-date-picker .date-picker-root:has(.date-picker-input:disabled) {
diff --git a/packages/ui/dist/copy/date-picker/manifest.json b/packages/ui/dist/copy/date-picker/manifest.json
index 44e4a3016..542b06757 100644
--- a/packages/ui/dist/copy/date-picker/manifest.json
+++ b/packages/ui/dist/copy/date-picker/manifest.json
@@ -16,8 +16,8 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/date-picker.js": "sha256-6V4hlflxeVpDoj+uuaVEpTKm1ZKIyCYAiivLhpESyZU=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-cC7XtaKYhgqTcB/ci7nCK8PcvCKw0YeBRbnpCFHJ6ZU=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-17l8tm/NKV8wNhq8EIPnmw9/+K4egrcSbiuLY63EpUs=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-Nho5WRdNWOIx9zrVkZR8s5NrC95hgRBVnvDTdnZ7qoo=",
"index.html": "sha256-SxAGYroKCEemIb+5PImBbe5DAU1pOu9frv+8yu3oY7c=",
diff --git a/packages/ui/dist/copy/date-picker/tokens.css b/packages/ui/dist/copy/date-picker/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/date-picker/tokens.css
+++ b/packages/ui/dist/copy/date-picker/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/description-list/manifest.json b/packages/ui/dist/copy/description-list/manifest.json
index fd7f1e2a5..6691ead0c 100644
--- a/packages/ui/dist/copy/description-list/manifest.json
+++ b/packages/ui/dist/copy/description-list/manifest.json
@@ -16,7 +16,7 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/description-list.js": "sha256-yFwjohrGKRZXL7ylzdMxau2tHWLBEqlCrjhZFLoV5ms=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-rEMzb+R626s/u4B9UVumgQsD0pKkWBBP5+VSfJrPCLM=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-h2HPGz9Kz0LvMiuTC767wAQvYHOVVmffDECwh46tG0c=",
diff --git a/packages/ui/dist/copy/description-list/tokens.css b/packages/ui/dist/copy/description-list/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/description-list/tokens.css
+++ b/packages/ui/dist/copy/description-list/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/diagnostics/manifest.json b/packages/ui/dist/copy/diagnostics/manifest.json
index 63fe76725..4016cb976 100644
--- a/packages/ui/dist/copy/diagnostics/manifest.json
+++ b/packages/ui/dist/copy/diagnostics/manifest.json
@@ -16,7 +16,7 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/diagnostics.js": "sha256-oEE2P+tyCuYFS8Z67kakU24ozr9nPJsXvN7ug/nsESs=",
"runtime/chunks/display-Jm9bAsnb.js": "sha256-qZb1g04piEwY3lfFJwMe+0mXR218ljtVi8mepWxrFv8=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-xWB/G9X0gadCbFJ8yqKBaXbBvMPSKyKrVUQR4dZZs88=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-oPPp/R+dnwC1tnH/Td+Hlrs3CRODUkA4Bvq/HK/fAUU=",
diff --git a/packages/ui/dist/copy/diagnostics/tokens.css b/packages/ui/dist/copy/diagnostics/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/diagnostics/tokens.css
+++ b/packages/ui/dist/copy/diagnostics/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/dialog/manifest.json b/packages/ui/dist/copy/dialog/manifest.json
index 22698e359..64cee9bf2 100644
--- a/packages/ui/dist/copy/dialog/manifest.json
+++ b/packages/ui/dist/copy/dialog/manifest.json
@@ -8,15 +8,15 @@
"chunks/element-Dovcr9Ky.js",
"chunks/choice-B7mo5Eq3.js",
"components/dialog.js",
- "chunks/overlays-Bw8SSDKz.js"
+ "chunks/overlays-BwgpF4jI.js"
],
"files": {
"runtime/register/dialog.js": "sha256-waqEj5W9GRcvFu/OpnJxmONEY3yiBYgB2Fak5uwMsbA=",
"runtime/chunks/element-Dovcr9Ky.js": "sha256-7tXEQrcJPBXSDlmCqor6zZVtsFMvL54mFXd6XSTVzQA=",
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
- "runtime/components/dialog.js": "sha256-mYfz6BnuRAPGKxNiVulnuJ4IEMvqr5BPqrNrZCRR5H8=",
- "runtime/chunks/overlays-Bw8SSDKz.js": "sha256-YrX9CL2A48QwI7COQQ5anYJLPOxpKrIeyz+jtfp+T+I=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "runtime/components/dialog.js": "sha256-zdWNMLxqa07G4DrP8cSpEYY3F05kRGbx8cg0OGyNzbE=",
+ "runtime/chunks/overlays-BwgpF4jI.js": "sha256-NAd99OT4kDsFp8IHscKRus2jY6XRsq+GMzplWbJsY4U=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-PL+Ntvoc1uooINO+TPwR7KzuU7dbER2pJdlz10y0UyY=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-wFFtRxUFWBTzxYOcblp+JjddYxJQF3QKoOb0/hIuSL0=",
diff --git a/packages/ui/dist/copy/alert/runtime/chunks/overlays-Bw8SSDKz.js b/packages/ui/dist/copy/dialog/runtime/chunks/overlays-BwgpF4jI.js
similarity index 94%
rename from packages/ui/dist/copy/alert/runtime/chunks/overlays-Bw8SSDKz.js
rename to packages/ui/dist/copy/dialog/runtime/chunks/overlays-BwgpF4jI.js
index 3eeb8ff0d..4b8de2e8b 100644
--- a/packages/ui/dist/copy/alert/runtime/chunks/overlays-Bw8SSDKz.js
+++ b/packages/ui/dist/copy/dialog/runtime/chunks/overlays-BwgpF4jI.js
@@ -55,9 +55,10 @@ function tooltip(root, { on }) {
if (!trigger || !popup) return {};
identify(root, popup, "tooltip");
trigger.setAttribute("aria-describedby", popup.id);
- let timer, dismissed = false, hovering = false;
+ let timer, hideTimer, dismissed = false, hovering = false;
const stop = () => {
clearTimeout(timer);
+ clearTimeout(hideTimer);
};
const hide = () => {
stop();
@@ -70,18 +71,26 @@ function tooltip(root, { on }) {
place(trigger, popup);
}
};
+ const hideSoon = () => {
+ clearTimeout(timer);
+ clearTimeout(hideTimer);
+ hideTimer = setTimeout(() => {
+ if (!hovering && root.ownerDocument.activeElement !== trigger) hide();
+ }, 300);
+ };
on(trigger, "pointerenter", (event) => {
if (event.pointerType !== "touch") {
hovering = true;
dismissed = false;
- timer = setTimeout(show, 300);
+ clearTimeout(hideTimer);
+ if (popup.hidden) timer = setTimeout(show, 300);
}
});
on(root, "pointerleave", (event) => {
if (!root.contains(event.relatedTarget)) {
hovering = false;
dismissed = false;
- if (root.ownerDocument.activeElement !== trigger) hide();
+ if (root.ownerDocument.activeElement !== trigger) hideSoon();
}
});
on(popup, "pointerenter", () => {
diff --git a/packages/ui/dist/copy/dialog/runtime/components/dialog.js b/packages/ui/dist/copy/dialog/runtime/components/dialog.js
index 831fed823..3cbfc19af 100644
--- a/packages/ui/dist/copy/dialog/runtime/components/dialog.js
+++ b/packages/ui/dist/copy/dialog/runtime/components/dialog.js
@@ -1,10 +1,10 @@
import { t as J3w1Element } from "../chunks/element-Dovcr9Ky.js";
-import { n as modal } from "../chunks/overlays-Bw8SSDKz.js";
+import { n as modal } from "../chunks/overlays-BwgpF4jI.js";
//#region .cache/ui-build/entries/components/dialog.js
var J3w1Dialog = class extends J3w1Element {
static componentId = "dialog";
static version = "4.0.0";
- static implementationId = "sha256-mRRuIsoBG3ZepORoxkayVAw92Or7CJEuj6eD9YVaZyw=";
+ static implementationId = "sha256-DxVkWaABviJy7mGLL8EMH80qBAY41vg1uSdV+1wlXPw=";
static connect = modal;
static upgradeProperties = [
"disabled",
diff --git a/packages/ui/dist/copy/dialog/tokens.css b/packages/ui/dist/copy/dialog/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/dialog/tokens.css
+++ b/packages/ui/dist/copy/dialog/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/diff-view/manifest.json b/packages/ui/dist/copy/diff-view/manifest.json
index 405fd3371..0f50b180d 100644
--- a/packages/ui/dist/copy/diff-view/manifest.json
+++ b/packages/ui/dist/copy/diff-view/manifest.json
@@ -16,7 +16,7 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/diff-view.js": "sha256-mc+zZLXtFDZnF4okQ840vLAw4mC40kkmR920bUXfXfo=",
"runtime/chunks/display-Jm9bAsnb.js": "sha256-qZb1g04piEwY3lfFJwMe+0mXR218ljtVi8mepWxrFv8=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-zQ+2X33S+1rlKgj8VvnNJSfS/ujlxlYAFFAC3vC+8MU=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-t7cx4Y+4qhIPiwFbRPz+6U12N/CFATPTfG7/iZf85zs=",
diff --git a/packages/ui/dist/copy/diff-view/tokens.css b/packages/ui/dist/copy/diff-view/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/diff-view/tokens.css
+++ b/packages/ui/dist/copy/diff-view/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/disclosure/manifest.json b/packages/ui/dist/copy/disclosure/manifest.json
index 7116cf40a..496aad5c5 100644
--- a/packages/ui/dist/copy/disclosure/manifest.json
+++ b/packages/ui/dist/copy/disclosure/manifest.json
@@ -16,7 +16,7 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/disclosure.js": "sha256-+8hk74Zg9ZUq3AstqnrP14hMWYJ2J3MQ8RCtpk4njOs=",
"runtime/chunks/navigation-BfNzDYZB.js": "sha256-OhGJWNOz3aZxPAacBgEhAFmBLRt/BGPr7INBjumqyQo=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-M/UOvBwScEgDLtRZmuBaxCwOBb1g0hkfyHqaxsEDfHk=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-ZbpW/j8ZGKofIgL/uVEO47xXhxXmS2mrK5w32n/BWZA=",
diff --git a/packages/ui/dist/copy/disclosure/tokens.css b/packages/ui/dist/copy/disclosure/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/disclosure/tokens.css
+++ b/packages/ui/dist/copy/disclosure/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/drawer/manifest.json b/packages/ui/dist/copy/drawer/manifest.json
index 3f7cc2628..c7fd15b69 100644
--- a/packages/ui/dist/copy/drawer/manifest.json
+++ b/packages/ui/dist/copy/drawer/manifest.json
@@ -8,15 +8,15 @@
"chunks/element-Dovcr9Ky.js",
"chunks/choice-B7mo5Eq3.js",
"components/drawer.js",
- "chunks/overlays-Bw8SSDKz.js"
+ "chunks/overlays-BwgpF4jI.js"
],
"files": {
"runtime/register/drawer.js": "sha256-rA72wn/EhgwDqOffVBPLtBX9zTwVRgod2uadIlZcLe0=",
"runtime/chunks/element-Dovcr9Ky.js": "sha256-7tXEQrcJPBXSDlmCqor6zZVtsFMvL54mFXd6XSTVzQA=",
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
- "runtime/components/drawer.js": "sha256-jGdxQ8JnwAPl1aTJWnbXrRb0kPIs7kJZo5rIrmfBTF4=",
- "runtime/chunks/overlays-Bw8SSDKz.js": "sha256-YrX9CL2A48QwI7COQQ5anYJLPOxpKrIeyz+jtfp+T+I=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "runtime/components/drawer.js": "sha256-1YuAUa33ScDJX74NBdYbrkllPWZ0abGZL2M1hnFJ7A8=",
+ "runtime/chunks/overlays-BwgpF4jI.js": "sha256-NAd99OT4kDsFp8IHscKRus2jY6XRsq+GMzplWbJsY4U=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-r9vwT85nLqMxpyVzGQDrQIU3bpOdw5TleRvfLX3IVQs=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-RNAiKQJPioHCtfhMtqcsFaQFfwhKvdH+iIfLXOWo6QQ=",
diff --git a/packages/ui/dist/copy/drawer/runtime/chunks/overlays-Bw8SSDKz.js b/packages/ui/dist/copy/drawer/runtime/chunks/overlays-Bw8SSDKz.js
deleted file mode 100644
index 3eeb8ff0d..000000000
--- a/packages/ui/dist/copy/drawer/runtime/chunks/overlays-Bw8SSDKz.js
+++ /dev/null
@@ -1,236 +0,0 @@
-import { d as place, i as all, o as enabled, s as identify } from "./choice-B7mo5Eq3.js";
-//#region packages/ui/src/behaviors/overlays.js
-function modal(root, { on }) {
- const dialog = root.querySelector("dialog");
- if (!dialog) return {};
- let opener = null;
- const show = (trigger = root.ownerDocument.activeElement) => {
- if (dialog.open || root.hasAttribute("disabled")) return;
- opener = trigger;
- dialog.showModal();
- (dialog.querySelector("[autofocus]") ?? dialog.querySelector("button:not(.dialog-button-destructive)"))?.focus();
- root.emit("open", {});
- };
- const close = (value = "") => {
- if (dialog.open) dialog.close(String(value));
- };
- on(root, "click", (event) => {
- const button = event.target.closest("button");
- if (button?.matches("[data-open]")) {
- show(button);
- return;
- }
- if (button && dialog.contains(button) && enabled(button)) {
- if (button.matches("[data-close],.dialog-close,.drawer-close")) close(button.dataset.close ?? "cancel");
- else if (button.dataset.action && root.emit("action", { action: button.dataset.action })) close(button.dataset.action);
- }
- if (root.constructor.componentId === "drawer" && event.target.closest("a[href]") && dialog.contains(event.target)) close("navigate");
- });
- on(dialog, "cancel", (event) => {
- if (!root.emit("cancel", {})) event.preventDefault();
- });
- on(dialog, "close", () => {
- if (opener?.isConnected) opener.focus();
- root.emit("close", { returnValue: dialog.returnValue });
- });
- return {
- show,
- close,
- get open() {
- return dialog.open;
- },
- set open(value) {
- value ? show() : close();
- },
- get returnValue() {
- return dialog.returnValue;
- },
- cleanup() {
- if (dialog.open) dialog.close();
- }
- };
-}
-function tooltip(root, { on }) {
- const trigger = root.querySelector(".tooltip-trigger"), popup = root.querySelector("[role=\"tooltip\"]");
- if (!trigger || !popup) return {};
- identify(root, popup, "tooltip");
- trigger.setAttribute("aria-describedby", popup.id);
- let timer, dismissed = false, hovering = false;
- const stop = () => {
- clearTimeout(timer);
- };
- const hide = () => {
- stop();
- popup.hidden = true;
- };
- const show = () => {
- stop();
- if (!dismissed) {
- popup.hidden = false;
- place(trigger, popup);
- }
- };
- on(trigger, "pointerenter", (event) => {
- if (event.pointerType !== "touch") {
- hovering = true;
- dismissed = false;
- timer = setTimeout(show, 300);
- }
- });
- on(root, "pointerleave", (event) => {
- if (!root.contains(event.relatedTarget)) {
- hovering = false;
- dismissed = false;
- if (root.ownerDocument.activeElement !== trigger) hide();
- }
- });
- on(popup, "pointerenter", () => {
- hovering = true;
- stop();
- });
- on(trigger, "focus", () => {
- dismissed = false;
- show();
- });
- on(trigger, "blur", () => {
- if (!hovering) hide();
- });
- on(trigger, "click", () => {
- dismissed = true;
- hide();
- });
- on(trigger, "pointerdown", (event) => {
- if (event.pointerType === "touch") {
- dismissed = false;
- timer = setTimeout(show, 500);
- }
- });
- on(trigger, "pointerup", stop);
- on(trigger, "pointercancel", stop);
- on(root.ownerDocument, "keydown", (event) => {
- if (event.key === "Escape" && !popup.hidden) {
- event.preventDefault();
- event.stopImmediatePropagation();
- dismissed = true;
- hide();
- }
- }, { capture: true });
- on(root.ownerDocument, "scroll", () => {
- if (!popup.hidden) place(trigger, popup);
- }, { capture: true });
- on(root.ownerDocument.defaultView, "resize", () => {
- if (!popup.hidden) place(trigger, popup);
- });
- hide();
- return {
- show,
- hide,
- get open() {
- return !popup.hidden;
- },
- cleanup: hide
- };
-}
-function popover(root, { on }) {
- const trigger = root.querySelector("[data-popover-trigger]"), panel = root.querySelector("[data-popover-panel]");
- if (!trigger || !panel) return {};
- identify(root, panel, "popover");
- trigger.setAttribute("aria-controls", panel.id);
- const native = typeof panel.showPopover === "function";
- if (native) {
- panel.setAttribute("popover", "auto");
- panel.hidden = false;
- } else panel.hidden = true;
- let open = false;
- const sync = (value) => {
- open = value;
- trigger.setAttribute("aria-expanded", String(value));
- root.emit("toggle", { expanded: value });
- };
- const show = () => {
- if (open || !enabled(trigger)) return;
- native ? panel.showPopover() : panel.hidden = false;
- sync(true);
- place(trigger, panel);
- };
- const hide = (focus = false) => {
- if (!open) return;
- native ? panel.hidePopover() : panel.hidden = true;
- sync(false);
- if (focus) trigger.focus();
- };
- on(trigger, "click", () => open ? hide() : show());
- on(panel, "beforetoggle", (event) => {
- open = event.newState === "open";
- trigger.setAttribute("aria-expanded", String(open));
- });
- on(panel, "click", (event) => {
- if (event.target.closest("[data-close]")) hide(true);
- });
- on(root.ownerDocument, "pointerdown", (event) => {
- if (!native && !root.contains(event.target)) hide();
- });
- on(root, "keydown", (event) => {
- if (event.key === "Escape" && open) {
- event.preventDefault();
- event.stopPropagation();
- hide(true);
- }
- });
- on(root.ownerDocument.defaultView, "resize", () => {
- if (open) place(trigger, panel);
- });
- trigger.setAttribute("aria-expanded", "false");
- return {
- show,
- hide,
- get open() {
- return open;
- },
- set open(value) {
- value ? show() : hide();
- },
- cleanup() {
- hide();
- }
- };
-}
-function feedback(root, { on }) {
- const dismiss = (item) => {
- if (!item || !root.emit("dismiss", { id: item.id })) return;
- const hadFocus = item.contains(root.ownerDocument.activeElement);
- const focusable = all(root.ownerDocument, "button,a[href],input,select,textarea,[tabindex='0']").filter((node) => enabled(node) && !node.closest("[hidden]"));
- const currentIndex = focusable.indexOf(root.ownerDocument.activeElement);
- const next = focusable.slice(currentIndex + 1).find((node) => !item.contains(node)) ?? focusable.slice(0, currentIndex).reverse().find((node) => !item.contains(node));
- item.hidden = true;
- if (hadFocus) next?.focus();
- };
- on(root, "click", (event) => {
- const button = event.target.closest("button");
- if (!button || !enabled(button)) return;
- if (button.matches(".toast-close,.alert-close,.chip-remove,[data-dismiss]")) dismiss(button.closest(".toast,.alert,.chip") ?? root);
- else if (button.matches(".chip-filter")) {
- button.setAttribute("aria-pressed", String(button.getAttribute("aria-pressed") !== "true"));
- root.emit("action", {
- action: button.textContent.trim(),
- pressed: button.getAttribute("aria-pressed") === "true"
- });
- } else if (button.matches("[data-retry]")) root.emit("retry", {});
- else root.emit("action", { action: button.dataset.action ?? button.textContent.trim() });
- });
- on(root, "keydown", (event) => {
- if (event.key === "Escape") {
- const toast = event.target.closest(".toast");
- if (toast) {
- event.preventDefault();
- event.stopPropagation();
- dismiss(toast);
- }
- }
- });
- return { dismiss(id) {
- dismiss(id ? root.querySelector(`#${CSS.escape(id)}`) : root.querySelector(".toast,.alert") ?? root);
- } };
-}
-//#endregion
-export { tooltip as i, modal as n, popover as r, feedback as t };
diff --git a/packages/ui/dist/copy/drawer/runtime/chunks/overlays-BwgpF4jI.js b/packages/ui/dist/copy/drawer/runtime/chunks/overlays-BwgpF4jI.js
new file mode 100644
index 000000000..4b8de2e8b
--- /dev/null
+++ b/packages/ui/dist/copy/drawer/runtime/chunks/overlays-BwgpF4jI.js
@@ -0,0 +1,245 @@
+import { d as place, i as all, o as enabled, s as identify } from "./choice-B7mo5Eq3.js";
+//#region packages/ui/src/behaviors/overlays.js
+function modal(root, { on }) {
+ const dialog = root.querySelector("dialog");
+ if (!dialog) return {};
+ let opener = null;
+ const show = (trigger = root.ownerDocument.activeElement) => {
+ if (dialog.open || root.hasAttribute("disabled")) return;
+ opener = trigger;
+ dialog.showModal();
+ (dialog.querySelector("[autofocus]") ?? dialog.querySelector("button:not(.dialog-button-destructive)"))?.focus();
+ root.emit("open", {});
+ };
+ const close = (value = "") => {
+ if (dialog.open) dialog.close(String(value));
+ };
+ on(root, "click", (event) => {
+ const button = event.target.closest("button");
+ if (button?.matches("[data-open]")) {
+ show(button);
+ return;
+ }
+ if (button && dialog.contains(button) && enabled(button)) {
+ if (button.matches("[data-close],.dialog-close,.drawer-close")) close(button.dataset.close ?? "cancel");
+ else if (button.dataset.action && root.emit("action", { action: button.dataset.action })) close(button.dataset.action);
+ }
+ if (root.constructor.componentId === "drawer" && event.target.closest("a[href]") && dialog.contains(event.target)) close("navigate");
+ });
+ on(dialog, "cancel", (event) => {
+ if (!root.emit("cancel", {})) event.preventDefault();
+ });
+ on(dialog, "close", () => {
+ if (opener?.isConnected) opener.focus();
+ root.emit("close", { returnValue: dialog.returnValue });
+ });
+ return {
+ show,
+ close,
+ get open() {
+ return dialog.open;
+ },
+ set open(value) {
+ value ? show() : close();
+ },
+ get returnValue() {
+ return dialog.returnValue;
+ },
+ cleanup() {
+ if (dialog.open) dialog.close();
+ }
+ };
+}
+function tooltip(root, { on }) {
+ const trigger = root.querySelector(".tooltip-trigger"), popup = root.querySelector("[role=\"tooltip\"]");
+ if (!trigger || !popup) return {};
+ identify(root, popup, "tooltip");
+ trigger.setAttribute("aria-describedby", popup.id);
+ let timer, hideTimer, dismissed = false, hovering = false;
+ const stop = () => {
+ clearTimeout(timer);
+ clearTimeout(hideTimer);
+ };
+ const hide = () => {
+ stop();
+ popup.hidden = true;
+ };
+ const show = () => {
+ stop();
+ if (!dismissed) {
+ popup.hidden = false;
+ place(trigger, popup);
+ }
+ };
+ const hideSoon = () => {
+ clearTimeout(timer);
+ clearTimeout(hideTimer);
+ hideTimer = setTimeout(() => {
+ if (!hovering && root.ownerDocument.activeElement !== trigger) hide();
+ }, 300);
+ };
+ on(trigger, "pointerenter", (event) => {
+ if (event.pointerType !== "touch") {
+ hovering = true;
+ dismissed = false;
+ clearTimeout(hideTimer);
+ if (popup.hidden) timer = setTimeout(show, 300);
+ }
+ });
+ on(root, "pointerleave", (event) => {
+ if (!root.contains(event.relatedTarget)) {
+ hovering = false;
+ dismissed = false;
+ if (root.ownerDocument.activeElement !== trigger) hideSoon();
+ }
+ });
+ on(popup, "pointerenter", () => {
+ hovering = true;
+ stop();
+ });
+ on(trigger, "focus", () => {
+ dismissed = false;
+ show();
+ });
+ on(trigger, "blur", () => {
+ if (!hovering) hide();
+ });
+ on(trigger, "click", () => {
+ dismissed = true;
+ hide();
+ });
+ on(trigger, "pointerdown", (event) => {
+ if (event.pointerType === "touch") {
+ dismissed = false;
+ timer = setTimeout(show, 500);
+ }
+ });
+ on(trigger, "pointerup", stop);
+ on(trigger, "pointercancel", stop);
+ on(root.ownerDocument, "keydown", (event) => {
+ if (event.key === "Escape" && !popup.hidden) {
+ event.preventDefault();
+ event.stopImmediatePropagation();
+ dismissed = true;
+ hide();
+ }
+ }, { capture: true });
+ on(root.ownerDocument, "scroll", () => {
+ if (!popup.hidden) place(trigger, popup);
+ }, { capture: true });
+ on(root.ownerDocument.defaultView, "resize", () => {
+ if (!popup.hidden) place(trigger, popup);
+ });
+ hide();
+ return {
+ show,
+ hide,
+ get open() {
+ return !popup.hidden;
+ },
+ cleanup: hide
+ };
+}
+function popover(root, { on }) {
+ const trigger = root.querySelector("[data-popover-trigger]"), panel = root.querySelector("[data-popover-panel]");
+ if (!trigger || !panel) return {};
+ identify(root, panel, "popover");
+ trigger.setAttribute("aria-controls", panel.id);
+ const native = typeof panel.showPopover === "function";
+ if (native) {
+ panel.setAttribute("popover", "auto");
+ panel.hidden = false;
+ } else panel.hidden = true;
+ let open = false;
+ const sync = (value) => {
+ open = value;
+ trigger.setAttribute("aria-expanded", String(value));
+ root.emit("toggle", { expanded: value });
+ };
+ const show = () => {
+ if (open || !enabled(trigger)) return;
+ native ? panel.showPopover() : panel.hidden = false;
+ sync(true);
+ place(trigger, panel);
+ };
+ const hide = (focus = false) => {
+ if (!open) return;
+ native ? panel.hidePopover() : panel.hidden = true;
+ sync(false);
+ if (focus) trigger.focus();
+ };
+ on(trigger, "click", () => open ? hide() : show());
+ on(panel, "beforetoggle", (event) => {
+ open = event.newState === "open";
+ trigger.setAttribute("aria-expanded", String(open));
+ });
+ on(panel, "click", (event) => {
+ if (event.target.closest("[data-close]")) hide(true);
+ });
+ on(root.ownerDocument, "pointerdown", (event) => {
+ if (!native && !root.contains(event.target)) hide();
+ });
+ on(root, "keydown", (event) => {
+ if (event.key === "Escape" && open) {
+ event.preventDefault();
+ event.stopPropagation();
+ hide(true);
+ }
+ });
+ on(root.ownerDocument.defaultView, "resize", () => {
+ if (open) place(trigger, panel);
+ });
+ trigger.setAttribute("aria-expanded", "false");
+ return {
+ show,
+ hide,
+ get open() {
+ return open;
+ },
+ set open(value) {
+ value ? show() : hide();
+ },
+ cleanup() {
+ hide();
+ }
+ };
+}
+function feedback(root, { on }) {
+ const dismiss = (item) => {
+ if (!item || !root.emit("dismiss", { id: item.id })) return;
+ const hadFocus = item.contains(root.ownerDocument.activeElement);
+ const focusable = all(root.ownerDocument, "button,a[href],input,select,textarea,[tabindex='0']").filter((node) => enabled(node) && !node.closest("[hidden]"));
+ const currentIndex = focusable.indexOf(root.ownerDocument.activeElement);
+ const next = focusable.slice(currentIndex + 1).find((node) => !item.contains(node)) ?? focusable.slice(0, currentIndex).reverse().find((node) => !item.contains(node));
+ item.hidden = true;
+ if (hadFocus) next?.focus();
+ };
+ on(root, "click", (event) => {
+ const button = event.target.closest("button");
+ if (!button || !enabled(button)) return;
+ if (button.matches(".toast-close,.alert-close,.chip-remove,[data-dismiss]")) dismiss(button.closest(".toast,.alert,.chip") ?? root);
+ else if (button.matches(".chip-filter")) {
+ button.setAttribute("aria-pressed", String(button.getAttribute("aria-pressed") !== "true"));
+ root.emit("action", {
+ action: button.textContent.trim(),
+ pressed: button.getAttribute("aria-pressed") === "true"
+ });
+ } else if (button.matches("[data-retry]")) root.emit("retry", {});
+ else root.emit("action", { action: button.dataset.action ?? button.textContent.trim() });
+ });
+ on(root, "keydown", (event) => {
+ if (event.key === "Escape") {
+ const toast = event.target.closest(".toast");
+ if (toast) {
+ event.preventDefault();
+ event.stopPropagation();
+ dismiss(toast);
+ }
+ }
+ });
+ return { dismiss(id) {
+ dismiss(id ? root.querySelector(`#${CSS.escape(id)}`) : root.querySelector(".toast,.alert") ?? root);
+ } };
+}
+//#endregion
+export { tooltip as i, modal as n, popover as r, feedback as t };
diff --git a/packages/ui/dist/copy/drawer/runtime/components/drawer.js b/packages/ui/dist/copy/drawer/runtime/components/drawer.js
index 84e74f5d6..bd2cc2719 100644
--- a/packages/ui/dist/copy/drawer/runtime/components/drawer.js
+++ b/packages/ui/dist/copy/drawer/runtime/components/drawer.js
@@ -1,10 +1,10 @@
import { t as J3w1Element } from "../chunks/element-Dovcr9Ky.js";
-import { n as modal } from "../chunks/overlays-Bw8SSDKz.js";
+import { n as modal } from "../chunks/overlays-BwgpF4jI.js";
//#region .cache/ui-build/entries/components/drawer.js
var J3w1Drawer = class extends J3w1Element {
static componentId = "drawer";
static version = "4.0.0";
- static implementationId = "sha256-k/ZCI1iewFGM/3Yu72DZfB6MpyHU8aF26giyLMSce+U=";
+ static implementationId = "sha256-yvpVNrlpyZhfuppx1D3pNtgoOjBrDBDX4gavOIbYSWM=";
static connect = modal;
static upgradeProperties = [
"disabled",
diff --git a/packages/ui/dist/copy/drawer/tokens.css b/packages/ui/dist/copy/drawer/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/drawer/tokens.css
+++ b/packages/ui/dist/copy/drawer/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/editor-search/manifest.json b/packages/ui/dist/copy/editor-search/manifest.json
index 4fa1c674a..56cd9361a 100644
--- a/packages/ui/dist/copy/editor-search/manifest.json
+++ b/packages/ui/dist/copy/editor-search/manifest.json
@@ -16,7 +16,7 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/editor-search.js": "sha256-aUfiB2u6bRwR1VhsFjANGyo6S0HHuA5lveVDShHVo3c=",
"runtime/chunks/display-Jm9bAsnb.js": "sha256-qZb1g04piEwY3lfFJwMe+0mXR218ljtVi8mepWxrFv8=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-EsEJrsGIZ88TEP4pXc0Jt3WQxhCysigIkd1ddeNbHBM=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-d4aAYzdcDHNmdiry3w1Y3xEHMEA6MELYHpoj25fZY7M=",
diff --git a/packages/ui/dist/copy/editor-search/tokens.css b/packages/ui/dist/copy/editor-search/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/editor-search/tokens.css
+++ b/packages/ui/dist/copy/editor-search/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/empty-state/manifest.json b/packages/ui/dist/copy/empty-state/manifest.json
index 2ac5f1943..fcbb61b4b 100644
--- a/packages/ui/dist/copy/empty-state/manifest.json
+++ b/packages/ui/dist/copy/empty-state/manifest.json
@@ -8,15 +8,15 @@
"chunks/element-Dovcr9Ky.js",
"chunks/choice-B7mo5Eq3.js",
"components/empty-state.js",
- "chunks/overlays-Bw8SSDKz.js"
+ "chunks/overlays-BwgpF4jI.js"
],
"files": {
"runtime/register/empty-state.js": "sha256-O+XPQiZJD3SM6EGCJ9p7Ia3RwHie8uDXVlJd2Vl8f1g=",
"runtime/chunks/element-Dovcr9Ky.js": "sha256-7tXEQrcJPBXSDlmCqor6zZVtsFMvL54mFXd6XSTVzQA=",
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
- "runtime/components/empty-state.js": "sha256-OdxqAGZuSH7KdWGE58jWJBVQnd4azuJVXLqmIEKf/1k=",
- "runtime/chunks/overlays-Bw8SSDKz.js": "sha256-YrX9CL2A48QwI7COQQ5anYJLPOxpKrIeyz+jtfp+T+I=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "runtime/components/empty-state.js": "sha256-+Vgad2O/oKiGnSsGD63zlNKxCzqpHWhZ85dwct4yBx8=",
+ "runtime/chunks/overlays-BwgpF4jI.js": "sha256-NAd99OT4kDsFp8IHscKRus2jY6XRsq+GMzplWbJsY4U=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-BeQzoBMmZ//SCPym1JhwPfMM51a6wiO3oVtwH7lOOpc=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-j6rKuP4LmxmaKm47ZcfAqQ0LKMqN7l90HZwvUydHutQ=",
diff --git a/packages/ui/dist/copy/empty-state/runtime/chunks/overlays-Bw8SSDKz.js b/packages/ui/dist/copy/empty-state/runtime/chunks/overlays-Bw8SSDKz.js
deleted file mode 100644
index 3eeb8ff0d..000000000
--- a/packages/ui/dist/copy/empty-state/runtime/chunks/overlays-Bw8SSDKz.js
+++ /dev/null
@@ -1,236 +0,0 @@
-import { d as place, i as all, o as enabled, s as identify } from "./choice-B7mo5Eq3.js";
-//#region packages/ui/src/behaviors/overlays.js
-function modal(root, { on }) {
- const dialog = root.querySelector("dialog");
- if (!dialog) return {};
- let opener = null;
- const show = (trigger = root.ownerDocument.activeElement) => {
- if (dialog.open || root.hasAttribute("disabled")) return;
- opener = trigger;
- dialog.showModal();
- (dialog.querySelector("[autofocus]") ?? dialog.querySelector("button:not(.dialog-button-destructive)"))?.focus();
- root.emit("open", {});
- };
- const close = (value = "") => {
- if (dialog.open) dialog.close(String(value));
- };
- on(root, "click", (event) => {
- const button = event.target.closest("button");
- if (button?.matches("[data-open]")) {
- show(button);
- return;
- }
- if (button && dialog.contains(button) && enabled(button)) {
- if (button.matches("[data-close],.dialog-close,.drawer-close")) close(button.dataset.close ?? "cancel");
- else if (button.dataset.action && root.emit("action", { action: button.dataset.action })) close(button.dataset.action);
- }
- if (root.constructor.componentId === "drawer" && event.target.closest("a[href]") && dialog.contains(event.target)) close("navigate");
- });
- on(dialog, "cancel", (event) => {
- if (!root.emit("cancel", {})) event.preventDefault();
- });
- on(dialog, "close", () => {
- if (opener?.isConnected) opener.focus();
- root.emit("close", { returnValue: dialog.returnValue });
- });
- return {
- show,
- close,
- get open() {
- return dialog.open;
- },
- set open(value) {
- value ? show() : close();
- },
- get returnValue() {
- return dialog.returnValue;
- },
- cleanup() {
- if (dialog.open) dialog.close();
- }
- };
-}
-function tooltip(root, { on }) {
- const trigger = root.querySelector(".tooltip-trigger"), popup = root.querySelector("[role=\"tooltip\"]");
- if (!trigger || !popup) return {};
- identify(root, popup, "tooltip");
- trigger.setAttribute("aria-describedby", popup.id);
- let timer, dismissed = false, hovering = false;
- const stop = () => {
- clearTimeout(timer);
- };
- const hide = () => {
- stop();
- popup.hidden = true;
- };
- const show = () => {
- stop();
- if (!dismissed) {
- popup.hidden = false;
- place(trigger, popup);
- }
- };
- on(trigger, "pointerenter", (event) => {
- if (event.pointerType !== "touch") {
- hovering = true;
- dismissed = false;
- timer = setTimeout(show, 300);
- }
- });
- on(root, "pointerleave", (event) => {
- if (!root.contains(event.relatedTarget)) {
- hovering = false;
- dismissed = false;
- if (root.ownerDocument.activeElement !== trigger) hide();
- }
- });
- on(popup, "pointerenter", () => {
- hovering = true;
- stop();
- });
- on(trigger, "focus", () => {
- dismissed = false;
- show();
- });
- on(trigger, "blur", () => {
- if (!hovering) hide();
- });
- on(trigger, "click", () => {
- dismissed = true;
- hide();
- });
- on(trigger, "pointerdown", (event) => {
- if (event.pointerType === "touch") {
- dismissed = false;
- timer = setTimeout(show, 500);
- }
- });
- on(trigger, "pointerup", stop);
- on(trigger, "pointercancel", stop);
- on(root.ownerDocument, "keydown", (event) => {
- if (event.key === "Escape" && !popup.hidden) {
- event.preventDefault();
- event.stopImmediatePropagation();
- dismissed = true;
- hide();
- }
- }, { capture: true });
- on(root.ownerDocument, "scroll", () => {
- if (!popup.hidden) place(trigger, popup);
- }, { capture: true });
- on(root.ownerDocument.defaultView, "resize", () => {
- if (!popup.hidden) place(trigger, popup);
- });
- hide();
- return {
- show,
- hide,
- get open() {
- return !popup.hidden;
- },
- cleanup: hide
- };
-}
-function popover(root, { on }) {
- const trigger = root.querySelector("[data-popover-trigger]"), panel = root.querySelector("[data-popover-panel]");
- if (!trigger || !panel) return {};
- identify(root, panel, "popover");
- trigger.setAttribute("aria-controls", panel.id);
- const native = typeof panel.showPopover === "function";
- if (native) {
- panel.setAttribute("popover", "auto");
- panel.hidden = false;
- } else panel.hidden = true;
- let open = false;
- const sync = (value) => {
- open = value;
- trigger.setAttribute("aria-expanded", String(value));
- root.emit("toggle", { expanded: value });
- };
- const show = () => {
- if (open || !enabled(trigger)) return;
- native ? panel.showPopover() : panel.hidden = false;
- sync(true);
- place(trigger, panel);
- };
- const hide = (focus = false) => {
- if (!open) return;
- native ? panel.hidePopover() : panel.hidden = true;
- sync(false);
- if (focus) trigger.focus();
- };
- on(trigger, "click", () => open ? hide() : show());
- on(panel, "beforetoggle", (event) => {
- open = event.newState === "open";
- trigger.setAttribute("aria-expanded", String(open));
- });
- on(panel, "click", (event) => {
- if (event.target.closest("[data-close]")) hide(true);
- });
- on(root.ownerDocument, "pointerdown", (event) => {
- if (!native && !root.contains(event.target)) hide();
- });
- on(root, "keydown", (event) => {
- if (event.key === "Escape" && open) {
- event.preventDefault();
- event.stopPropagation();
- hide(true);
- }
- });
- on(root.ownerDocument.defaultView, "resize", () => {
- if (open) place(trigger, panel);
- });
- trigger.setAttribute("aria-expanded", "false");
- return {
- show,
- hide,
- get open() {
- return open;
- },
- set open(value) {
- value ? show() : hide();
- },
- cleanup() {
- hide();
- }
- };
-}
-function feedback(root, { on }) {
- const dismiss = (item) => {
- if (!item || !root.emit("dismiss", { id: item.id })) return;
- const hadFocus = item.contains(root.ownerDocument.activeElement);
- const focusable = all(root.ownerDocument, "button,a[href],input,select,textarea,[tabindex='0']").filter((node) => enabled(node) && !node.closest("[hidden]"));
- const currentIndex = focusable.indexOf(root.ownerDocument.activeElement);
- const next = focusable.slice(currentIndex + 1).find((node) => !item.contains(node)) ?? focusable.slice(0, currentIndex).reverse().find((node) => !item.contains(node));
- item.hidden = true;
- if (hadFocus) next?.focus();
- };
- on(root, "click", (event) => {
- const button = event.target.closest("button");
- if (!button || !enabled(button)) return;
- if (button.matches(".toast-close,.alert-close,.chip-remove,[data-dismiss]")) dismiss(button.closest(".toast,.alert,.chip") ?? root);
- else if (button.matches(".chip-filter")) {
- button.setAttribute("aria-pressed", String(button.getAttribute("aria-pressed") !== "true"));
- root.emit("action", {
- action: button.textContent.trim(),
- pressed: button.getAttribute("aria-pressed") === "true"
- });
- } else if (button.matches("[data-retry]")) root.emit("retry", {});
- else root.emit("action", { action: button.dataset.action ?? button.textContent.trim() });
- });
- on(root, "keydown", (event) => {
- if (event.key === "Escape") {
- const toast = event.target.closest(".toast");
- if (toast) {
- event.preventDefault();
- event.stopPropagation();
- dismiss(toast);
- }
- }
- });
- return { dismiss(id) {
- dismiss(id ? root.querySelector(`#${CSS.escape(id)}`) : root.querySelector(".toast,.alert") ?? root);
- } };
-}
-//#endregion
-export { tooltip as i, modal as n, popover as r, feedback as t };
diff --git a/packages/ui/dist/copy/empty-state/runtime/chunks/overlays-BwgpF4jI.js b/packages/ui/dist/copy/empty-state/runtime/chunks/overlays-BwgpF4jI.js
new file mode 100644
index 000000000..4b8de2e8b
--- /dev/null
+++ b/packages/ui/dist/copy/empty-state/runtime/chunks/overlays-BwgpF4jI.js
@@ -0,0 +1,245 @@
+import { d as place, i as all, o as enabled, s as identify } from "./choice-B7mo5Eq3.js";
+//#region packages/ui/src/behaviors/overlays.js
+function modal(root, { on }) {
+ const dialog = root.querySelector("dialog");
+ if (!dialog) return {};
+ let opener = null;
+ const show = (trigger = root.ownerDocument.activeElement) => {
+ if (dialog.open || root.hasAttribute("disabled")) return;
+ opener = trigger;
+ dialog.showModal();
+ (dialog.querySelector("[autofocus]") ?? dialog.querySelector("button:not(.dialog-button-destructive)"))?.focus();
+ root.emit("open", {});
+ };
+ const close = (value = "") => {
+ if (dialog.open) dialog.close(String(value));
+ };
+ on(root, "click", (event) => {
+ const button = event.target.closest("button");
+ if (button?.matches("[data-open]")) {
+ show(button);
+ return;
+ }
+ if (button && dialog.contains(button) && enabled(button)) {
+ if (button.matches("[data-close],.dialog-close,.drawer-close")) close(button.dataset.close ?? "cancel");
+ else if (button.dataset.action && root.emit("action", { action: button.dataset.action })) close(button.dataset.action);
+ }
+ if (root.constructor.componentId === "drawer" && event.target.closest("a[href]") && dialog.contains(event.target)) close("navigate");
+ });
+ on(dialog, "cancel", (event) => {
+ if (!root.emit("cancel", {})) event.preventDefault();
+ });
+ on(dialog, "close", () => {
+ if (opener?.isConnected) opener.focus();
+ root.emit("close", { returnValue: dialog.returnValue });
+ });
+ return {
+ show,
+ close,
+ get open() {
+ return dialog.open;
+ },
+ set open(value) {
+ value ? show() : close();
+ },
+ get returnValue() {
+ return dialog.returnValue;
+ },
+ cleanup() {
+ if (dialog.open) dialog.close();
+ }
+ };
+}
+function tooltip(root, { on }) {
+ const trigger = root.querySelector(".tooltip-trigger"), popup = root.querySelector("[role=\"tooltip\"]");
+ if (!trigger || !popup) return {};
+ identify(root, popup, "tooltip");
+ trigger.setAttribute("aria-describedby", popup.id);
+ let timer, hideTimer, dismissed = false, hovering = false;
+ const stop = () => {
+ clearTimeout(timer);
+ clearTimeout(hideTimer);
+ };
+ const hide = () => {
+ stop();
+ popup.hidden = true;
+ };
+ const show = () => {
+ stop();
+ if (!dismissed) {
+ popup.hidden = false;
+ place(trigger, popup);
+ }
+ };
+ const hideSoon = () => {
+ clearTimeout(timer);
+ clearTimeout(hideTimer);
+ hideTimer = setTimeout(() => {
+ if (!hovering && root.ownerDocument.activeElement !== trigger) hide();
+ }, 300);
+ };
+ on(trigger, "pointerenter", (event) => {
+ if (event.pointerType !== "touch") {
+ hovering = true;
+ dismissed = false;
+ clearTimeout(hideTimer);
+ if (popup.hidden) timer = setTimeout(show, 300);
+ }
+ });
+ on(root, "pointerleave", (event) => {
+ if (!root.contains(event.relatedTarget)) {
+ hovering = false;
+ dismissed = false;
+ if (root.ownerDocument.activeElement !== trigger) hideSoon();
+ }
+ });
+ on(popup, "pointerenter", () => {
+ hovering = true;
+ stop();
+ });
+ on(trigger, "focus", () => {
+ dismissed = false;
+ show();
+ });
+ on(trigger, "blur", () => {
+ if (!hovering) hide();
+ });
+ on(trigger, "click", () => {
+ dismissed = true;
+ hide();
+ });
+ on(trigger, "pointerdown", (event) => {
+ if (event.pointerType === "touch") {
+ dismissed = false;
+ timer = setTimeout(show, 500);
+ }
+ });
+ on(trigger, "pointerup", stop);
+ on(trigger, "pointercancel", stop);
+ on(root.ownerDocument, "keydown", (event) => {
+ if (event.key === "Escape" && !popup.hidden) {
+ event.preventDefault();
+ event.stopImmediatePropagation();
+ dismissed = true;
+ hide();
+ }
+ }, { capture: true });
+ on(root.ownerDocument, "scroll", () => {
+ if (!popup.hidden) place(trigger, popup);
+ }, { capture: true });
+ on(root.ownerDocument.defaultView, "resize", () => {
+ if (!popup.hidden) place(trigger, popup);
+ });
+ hide();
+ return {
+ show,
+ hide,
+ get open() {
+ return !popup.hidden;
+ },
+ cleanup: hide
+ };
+}
+function popover(root, { on }) {
+ const trigger = root.querySelector("[data-popover-trigger]"), panel = root.querySelector("[data-popover-panel]");
+ if (!trigger || !panel) return {};
+ identify(root, panel, "popover");
+ trigger.setAttribute("aria-controls", panel.id);
+ const native = typeof panel.showPopover === "function";
+ if (native) {
+ panel.setAttribute("popover", "auto");
+ panel.hidden = false;
+ } else panel.hidden = true;
+ let open = false;
+ const sync = (value) => {
+ open = value;
+ trigger.setAttribute("aria-expanded", String(value));
+ root.emit("toggle", { expanded: value });
+ };
+ const show = () => {
+ if (open || !enabled(trigger)) return;
+ native ? panel.showPopover() : panel.hidden = false;
+ sync(true);
+ place(trigger, panel);
+ };
+ const hide = (focus = false) => {
+ if (!open) return;
+ native ? panel.hidePopover() : panel.hidden = true;
+ sync(false);
+ if (focus) trigger.focus();
+ };
+ on(trigger, "click", () => open ? hide() : show());
+ on(panel, "beforetoggle", (event) => {
+ open = event.newState === "open";
+ trigger.setAttribute("aria-expanded", String(open));
+ });
+ on(panel, "click", (event) => {
+ if (event.target.closest("[data-close]")) hide(true);
+ });
+ on(root.ownerDocument, "pointerdown", (event) => {
+ if (!native && !root.contains(event.target)) hide();
+ });
+ on(root, "keydown", (event) => {
+ if (event.key === "Escape" && open) {
+ event.preventDefault();
+ event.stopPropagation();
+ hide(true);
+ }
+ });
+ on(root.ownerDocument.defaultView, "resize", () => {
+ if (open) place(trigger, panel);
+ });
+ trigger.setAttribute("aria-expanded", "false");
+ return {
+ show,
+ hide,
+ get open() {
+ return open;
+ },
+ set open(value) {
+ value ? show() : hide();
+ },
+ cleanup() {
+ hide();
+ }
+ };
+}
+function feedback(root, { on }) {
+ const dismiss = (item) => {
+ if (!item || !root.emit("dismiss", { id: item.id })) return;
+ const hadFocus = item.contains(root.ownerDocument.activeElement);
+ const focusable = all(root.ownerDocument, "button,a[href],input,select,textarea,[tabindex='0']").filter((node) => enabled(node) && !node.closest("[hidden]"));
+ const currentIndex = focusable.indexOf(root.ownerDocument.activeElement);
+ const next = focusable.slice(currentIndex + 1).find((node) => !item.contains(node)) ?? focusable.slice(0, currentIndex).reverse().find((node) => !item.contains(node));
+ item.hidden = true;
+ if (hadFocus) next?.focus();
+ };
+ on(root, "click", (event) => {
+ const button = event.target.closest("button");
+ if (!button || !enabled(button)) return;
+ if (button.matches(".toast-close,.alert-close,.chip-remove,[data-dismiss]")) dismiss(button.closest(".toast,.alert,.chip") ?? root);
+ else if (button.matches(".chip-filter")) {
+ button.setAttribute("aria-pressed", String(button.getAttribute("aria-pressed") !== "true"));
+ root.emit("action", {
+ action: button.textContent.trim(),
+ pressed: button.getAttribute("aria-pressed") === "true"
+ });
+ } else if (button.matches("[data-retry]")) root.emit("retry", {});
+ else root.emit("action", { action: button.dataset.action ?? button.textContent.trim() });
+ });
+ on(root, "keydown", (event) => {
+ if (event.key === "Escape") {
+ const toast = event.target.closest(".toast");
+ if (toast) {
+ event.preventDefault();
+ event.stopPropagation();
+ dismiss(toast);
+ }
+ }
+ });
+ return { dismiss(id) {
+ dismiss(id ? root.querySelector(`#${CSS.escape(id)}`) : root.querySelector(".toast,.alert") ?? root);
+ } };
+}
+//#endregion
+export { tooltip as i, modal as n, popover as r, feedback as t };
diff --git a/packages/ui/dist/copy/empty-state/runtime/components/empty-state.js b/packages/ui/dist/copy/empty-state/runtime/components/empty-state.js
index a2ad90398..8e4944ef3 100644
--- a/packages/ui/dist/copy/empty-state/runtime/components/empty-state.js
+++ b/packages/ui/dist/copy/empty-state/runtime/components/empty-state.js
@@ -1,10 +1,10 @@
import { t as J3w1Element } from "../chunks/element-Dovcr9Ky.js";
-import { t as feedback } from "../chunks/overlays-Bw8SSDKz.js";
+import { t as feedback } from "../chunks/overlays-BwgpF4jI.js";
//#region .cache/ui-build/entries/components/empty-state.js
var J3w1EmptyState = class extends J3w1Element {
static componentId = "empty-state";
static version = "4.0.0";
- static implementationId = "sha256-TjsU1nEvRoXqvqnqWsM2EsMF7pDu5QD94wKIbCronI4=";
+ static implementationId = "sha256-5BgPX4sRhOgm8ZsOZ/51exOqgz9E+QCMS8dKtOj0vGM=";
static connect = feedback;
static upgradeProperties = ["disabled", "name"];
static observedAttributes = [...J3w1Element.observedAttributes, ...["disabled", "loading"]];
diff --git a/packages/ui/dist/copy/empty-state/tokens.css b/packages/ui/dist/copy/empty-state/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/empty-state/tokens.css
+++ b/packages/ui/dist/copy/empty-state/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/error-state/manifest.json b/packages/ui/dist/copy/error-state/manifest.json
index 4b289575e..ab2800a5a 100644
--- a/packages/ui/dist/copy/error-state/manifest.json
+++ b/packages/ui/dist/copy/error-state/manifest.json
@@ -8,15 +8,15 @@
"chunks/element-Dovcr9Ky.js",
"chunks/choice-B7mo5Eq3.js",
"components/error-state.js",
- "chunks/overlays-Bw8SSDKz.js"
+ "chunks/overlays-BwgpF4jI.js"
],
"files": {
"runtime/register/error-state.js": "sha256-7HAfC906Fv50aD7dtTHvGX8XoxDanaS7Xy+pD6+6JlQ=",
"runtime/chunks/element-Dovcr9Ky.js": "sha256-7tXEQrcJPBXSDlmCqor6zZVtsFMvL54mFXd6XSTVzQA=",
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
- "runtime/components/error-state.js": "sha256-SjO3330quFN81HjlZH31y/z5f1V4MNQewsgHCYnHvA8=",
- "runtime/chunks/overlays-Bw8SSDKz.js": "sha256-YrX9CL2A48QwI7COQQ5anYJLPOxpKrIeyz+jtfp+T+I=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "runtime/components/error-state.js": "sha256-BhughrbljbgIQKlE3iHBAZ5sfaZgHxDG49Pr3eO+qEA=",
+ "runtime/chunks/overlays-BwgpF4jI.js": "sha256-NAd99OT4kDsFp8IHscKRus2jY6XRsq+GMzplWbJsY4U=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-PkulOjRkq7PLGjfU346e4I1xzJqOFRjr9UgXNeugJLY=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-ORjrriOpBHk2VlqSsyeUSEs1medDwB5oaTT4RxrXLFs=",
diff --git a/packages/ui/dist/copy/error-state/runtime/chunks/overlays-Bw8SSDKz.js b/packages/ui/dist/copy/error-state/runtime/chunks/overlays-Bw8SSDKz.js
deleted file mode 100644
index 3eeb8ff0d..000000000
--- a/packages/ui/dist/copy/error-state/runtime/chunks/overlays-Bw8SSDKz.js
+++ /dev/null
@@ -1,236 +0,0 @@
-import { d as place, i as all, o as enabled, s as identify } from "./choice-B7mo5Eq3.js";
-//#region packages/ui/src/behaviors/overlays.js
-function modal(root, { on }) {
- const dialog = root.querySelector("dialog");
- if (!dialog) return {};
- let opener = null;
- const show = (trigger = root.ownerDocument.activeElement) => {
- if (dialog.open || root.hasAttribute("disabled")) return;
- opener = trigger;
- dialog.showModal();
- (dialog.querySelector("[autofocus]") ?? dialog.querySelector("button:not(.dialog-button-destructive)"))?.focus();
- root.emit("open", {});
- };
- const close = (value = "") => {
- if (dialog.open) dialog.close(String(value));
- };
- on(root, "click", (event) => {
- const button = event.target.closest("button");
- if (button?.matches("[data-open]")) {
- show(button);
- return;
- }
- if (button && dialog.contains(button) && enabled(button)) {
- if (button.matches("[data-close],.dialog-close,.drawer-close")) close(button.dataset.close ?? "cancel");
- else if (button.dataset.action && root.emit("action", { action: button.dataset.action })) close(button.dataset.action);
- }
- if (root.constructor.componentId === "drawer" && event.target.closest("a[href]") && dialog.contains(event.target)) close("navigate");
- });
- on(dialog, "cancel", (event) => {
- if (!root.emit("cancel", {})) event.preventDefault();
- });
- on(dialog, "close", () => {
- if (opener?.isConnected) opener.focus();
- root.emit("close", { returnValue: dialog.returnValue });
- });
- return {
- show,
- close,
- get open() {
- return dialog.open;
- },
- set open(value) {
- value ? show() : close();
- },
- get returnValue() {
- return dialog.returnValue;
- },
- cleanup() {
- if (dialog.open) dialog.close();
- }
- };
-}
-function tooltip(root, { on }) {
- const trigger = root.querySelector(".tooltip-trigger"), popup = root.querySelector("[role=\"tooltip\"]");
- if (!trigger || !popup) return {};
- identify(root, popup, "tooltip");
- trigger.setAttribute("aria-describedby", popup.id);
- let timer, dismissed = false, hovering = false;
- const stop = () => {
- clearTimeout(timer);
- };
- const hide = () => {
- stop();
- popup.hidden = true;
- };
- const show = () => {
- stop();
- if (!dismissed) {
- popup.hidden = false;
- place(trigger, popup);
- }
- };
- on(trigger, "pointerenter", (event) => {
- if (event.pointerType !== "touch") {
- hovering = true;
- dismissed = false;
- timer = setTimeout(show, 300);
- }
- });
- on(root, "pointerleave", (event) => {
- if (!root.contains(event.relatedTarget)) {
- hovering = false;
- dismissed = false;
- if (root.ownerDocument.activeElement !== trigger) hide();
- }
- });
- on(popup, "pointerenter", () => {
- hovering = true;
- stop();
- });
- on(trigger, "focus", () => {
- dismissed = false;
- show();
- });
- on(trigger, "blur", () => {
- if (!hovering) hide();
- });
- on(trigger, "click", () => {
- dismissed = true;
- hide();
- });
- on(trigger, "pointerdown", (event) => {
- if (event.pointerType === "touch") {
- dismissed = false;
- timer = setTimeout(show, 500);
- }
- });
- on(trigger, "pointerup", stop);
- on(trigger, "pointercancel", stop);
- on(root.ownerDocument, "keydown", (event) => {
- if (event.key === "Escape" && !popup.hidden) {
- event.preventDefault();
- event.stopImmediatePropagation();
- dismissed = true;
- hide();
- }
- }, { capture: true });
- on(root.ownerDocument, "scroll", () => {
- if (!popup.hidden) place(trigger, popup);
- }, { capture: true });
- on(root.ownerDocument.defaultView, "resize", () => {
- if (!popup.hidden) place(trigger, popup);
- });
- hide();
- return {
- show,
- hide,
- get open() {
- return !popup.hidden;
- },
- cleanup: hide
- };
-}
-function popover(root, { on }) {
- const trigger = root.querySelector("[data-popover-trigger]"), panel = root.querySelector("[data-popover-panel]");
- if (!trigger || !panel) return {};
- identify(root, panel, "popover");
- trigger.setAttribute("aria-controls", panel.id);
- const native = typeof panel.showPopover === "function";
- if (native) {
- panel.setAttribute("popover", "auto");
- panel.hidden = false;
- } else panel.hidden = true;
- let open = false;
- const sync = (value) => {
- open = value;
- trigger.setAttribute("aria-expanded", String(value));
- root.emit("toggle", { expanded: value });
- };
- const show = () => {
- if (open || !enabled(trigger)) return;
- native ? panel.showPopover() : panel.hidden = false;
- sync(true);
- place(trigger, panel);
- };
- const hide = (focus = false) => {
- if (!open) return;
- native ? panel.hidePopover() : panel.hidden = true;
- sync(false);
- if (focus) trigger.focus();
- };
- on(trigger, "click", () => open ? hide() : show());
- on(panel, "beforetoggle", (event) => {
- open = event.newState === "open";
- trigger.setAttribute("aria-expanded", String(open));
- });
- on(panel, "click", (event) => {
- if (event.target.closest("[data-close]")) hide(true);
- });
- on(root.ownerDocument, "pointerdown", (event) => {
- if (!native && !root.contains(event.target)) hide();
- });
- on(root, "keydown", (event) => {
- if (event.key === "Escape" && open) {
- event.preventDefault();
- event.stopPropagation();
- hide(true);
- }
- });
- on(root.ownerDocument.defaultView, "resize", () => {
- if (open) place(trigger, panel);
- });
- trigger.setAttribute("aria-expanded", "false");
- return {
- show,
- hide,
- get open() {
- return open;
- },
- set open(value) {
- value ? show() : hide();
- },
- cleanup() {
- hide();
- }
- };
-}
-function feedback(root, { on }) {
- const dismiss = (item) => {
- if (!item || !root.emit("dismiss", { id: item.id })) return;
- const hadFocus = item.contains(root.ownerDocument.activeElement);
- const focusable = all(root.ownerDocument, "button,a[href],input,select,textarea,[tabindex='0']").filter((node) => enabled(node) && !node.closest("[hidden]"));
- const currentIndex = focusable.indexOf(root.ownerDocument.activeElement);
- const next = focusable.slice(currentIndex + 1).find((node) => !item.contains(node)) ?? focusable.slice(0, currentIndex).reverse().find((node) => !item.contains(node));
- item.hidden = true;
- if (hadFocus) next?.focus();
- };
- on(root, "click", (event) => {
- const button = event.target.closest("button");
- if (!button || !enabled(button)) return;
- if (button.matches(".toast-close,.alert-close,.chip-remove,[data-dismiss]")) dismiss(button.closest(".toast,.alert,.chip") ?? root);
- else if (button.matches(".chip-filter")) {
- button.setAttribute("aria-pressed", String(button.getAttribute("aria-pressed") !== "true"));
- root.emit("action", {
- action: button.textContent.trim(),
- pressed: button.getAttribute("aria-pressed") === "true"
- });
- } else if (button.matches("[data-retry]")) root.emit("retry", {});
- else root.emit("action", { action: button.dataset.action ?? button.textContent.trim() });
- });
- on(root, "keydown", (event) => {
- if (event.key === "Escape") {
- const toast = event.target.closest(".toast");
- if (toast) {
- event.preventDefault();
- event.stopPropagation();
- dismiss(toast);
- }
- }
- });
- return { dismiss(id) {
- dismiss(id ? root.querySelector(`#${CSS.escape(id)}`) : root.querySelector(".toast,.alert") ?? root);
- } };
-}
-//#endregion
-export { tooltip as i, modal as n, popover as r, feedback as t };
diff --git a/packages/ui/dist/copy/error-state/runtime/chunks/overlays-BwgpF4jI.js b/packages/ui/dist/copy/error-state/runtime/chunks/overlays-BwgpF4jI.js
new file mode 100644
index 000000000..4b8de2e8b
--- /dev/null
+++ b/packages/ui/dist/copy/error-state/runtime/chunks/overlays-BwgpF4jI.js
@@ -0,0 +1,245 @@
+import { d as place, i as all, o as enabled, s as identify } from "./choice-B7mo5Eq3.js";
+//#region packages/ui/src/behaviors/overlays.js
+function modal(root, { on }) {
+ const dialog = root.querySelector("dialog");
+ if (!dialog) return {};
+ let opener = null;
+ const show = (trigger = root.ownerDocument.activeElement) => {
+ if (dialog.open || root.hasAttribute("disabled")) return;
+ opener = trigger;
+ dialog.showModal();
+ (dialog.querySelector("[autofocus]") ?? dialog.querySelector("button:not(.dialog-button-destructive)"))?.focus();
+ root.emit("open", {});
+ };
+ const close = (value = "") => {
+ if (dialog.open) dialog.close(String(value));
+ };
+ on(root, "click", (event) => {
+ const button = event.target.closest("button");
+ if (button?.matches("[data-open]")) {
+ show(button);
+ return;
+ }
+ if (button && dialog.contains(button) && enabled(button)) {
+ if (button.matches("[data-close],.dialog-close,.drawer-close")) close(button.dataset.close ?? "cancel");
+ else if (button.dataset.action && root.emit("action", { action: button.dataset.action })) close(button.dataset.action);
+ }
+ if (root.constructor.componentId === "drawer" && event.target.closest("a[href]") && dialog.contains(event.target)) close("navigate");
+ });
+ on(dialog, "cancel", (event) => {
+ if (!root.emit("cancel", {})) event.preventDefault();
+ });
+ on(dialog, "close", () => {
+ if (opener?.isConnected) opener.focus();
+ root.emit("close", { returnValue: dialog.returnValue });
+ });
+ return {
+ show,
+ close,
+ get open() {
+ return dialog.open;
+ },
+ set open(value) {
+ value ? show() : close();
+ },
+ get returnValue() {
+ return dialog.returnValue;
+ },
+ cleanup() {
+ if (dialog.open) dialog.close();
+ }
+ };
+}
+function tooltip(root, { on }) {
+ const trigger = root.querySelector(".tooltip-trigger"), popup = root.querySelector("[role=\"tooltip\"]");
+ if (!trigger || !popup) return {};
+ identify(root, popup, "tooltip");
+ trigger.setAttribute("aria-describedby", popup.id);
+ let timer, hideTimer, dismissed = false, hovering = false;
+ const stop = () => {
+ clearTimeout(timer);
+ clearTimeout(hideTimer);
+ };
+ const hide = () => {
+ stop();
+ popup.hidden = true;
+ };
+ const show = () => {
+ stop();
+ if (!dismissed) {
+ popup.hidden = false;
+ place(trigger, popup);
+ }
+ };
+ const hideSoon = () => {
+ clearTimeout(timer);
+ clearTimeout(hideTimer);
+ hideTimer = setTimeout(() => {
+ if (!hovering && root.ownerDocument.activeElement !== trigger) hide();
+ }, 300);
+ };
+ on(trigger, "pointerenter", (event) => {
+ if (event.pointerType !== "touch") {
+ hovering = true;
+ dismissed = false;
+ clearTimeout(hideTimer);
+ if (popup.hidden) timer = setTimeout(show, 300);
+ }
+ });
+ on(root, "pointerleave", (event) => {
+ if (!root.contains(event.relatedTarget)) {
+ hovering = false;
+ dismissed = false;
+ if (root.ownerDocument.activeElement !== trigger) hideSoon();
+ }
+ });
+ on(popup, "pointerenter", () => {
+ hovering = true;
+ stop();
+ });
+ on(trigger, "focus", () => {
+ dismissed = false;
+ show();
+ });
+ on(trigger, "blur", () => {
+ if (!hovering) hide();
+ });
+ on(trigger, "click", () => {
+ dismissed = true;
+ hide();
+ });
+ on(trigger, "pointerdown", (event) => {
+ if (event.pointerType === "touch") {
+ dismissed = false;
+ timer = setTimeout(show, 500);
+ }
+ });
+ on(trigger, "pointerup", stop);
+ on(trigger, "pointercancel", stop);
+ on(root.ownerDocument, "keydown", (event) => {
+ if (event.key === "Escape" && !popup.hidden) {
+ event.preventDefault();
+ event.stopImmediatePropagation();
+ dismissed = true;
+ hide();
+ }
+ }, { capture: true });
+ on(root.ownerDocument, "scroll", () => {
+ if (!popup.hidden) place(trigger, popup);
+ }, { capture: true });
+ on(root.ownerDocument.defaultView, "resize", () => {
+ if (!popup.hidden) place(trigger, popup);
+ });
+ hide();
+ return {
+ show,
+ hide,
+ get open() {
+ return !popup.hidden;
+ },
+ cleanup: hide
+ };
+}
+function popover(root, { on }) {
+ const trigger = root.querySelector("[data-popover-trigger]"), panel = root.querySelector("[data-popover-panel]");
+ if (!trigger || !panel) return {};
+ identify(root, panel, "popover");
+ trigger.setAttribute("aria-controls", panel.id);
+ const native = typeof panel.showPopover === "function";
+ if (native) {
+ panel.setAttribute("popover", "auto");
+ panel.hidden = false;
+ } else panel.hidden = true;
+ let open = false;
+ const sync = (value) => {
+ open = value;
+ trigger.setAttribute("aria-expanded", String(value));
+ root.emit("toggle", { expanded: value });
+ };
+ const show = () => {
+ if (open || !enabled(trigger)) return;
+ native ? panel.showPopover() : panel.hidden = false;
+ sync(true);
+ place(trigger, panel);
+ };
+ const hide = (focus = false) => {
+ if (!open) return;
+ native ? panel.hidePopover() : panel.hidden = true;
+ sync(false);
+ if (focus) trigger.focus();
+ };
+ on(trigger, "click", () => open ? hide() : show());
+ on(panel, "beforetoggle", (event) => {
+ open = event.newState === "open";
+ trigger.setAttribute("aria-expanded", String(open));
+ });
+ on(panel, "click", (event) => {
+ if (event.target.closest("[data-close]")) hide(true);
+ });
+ on(root.ownerDocument, "pointerdown", (event) => {
+ if (!native && !root.contains(event.target)) hide();
+ });
+ on(root, "keydown", (event) => {
+ if (event.key === "Escape" && open) {
+ event.preventDefault();
+ event.stopPropagation();
+ hide(true);
+ }
+ });
+ on(root.ownerDocument.defaultView, "resize", () => {
+ if (open) place(trigger, panel);
+ });
+ trigger.setAttribute("aria-expanded", "false");
+ return {
+ show,
+ hide,
+ get open() {
+ return open;
+ },
+ set open(value) {
+ value ? show() : hide();
+ },
+ cleanup() {
+ hide();
+ }
+ };
+}
+function feedback(root, { on }) {
+ const dismiss = (item) => {
+ if (!item || !root.emit("dismiss", { id: item.id })) return;
+ const hadFocus = item.contains(root.ownerDocument.activeElement);
+ const focusable = all(root.ownerDocument, "button,a[href],input,select,textarea,[tabindex='0']").filter((node) => enabled(node) && !node.closest("[hidden]"));
+ const currentIndex = focusable.indexOf(root.ownerDocument.activeElement);
+ const next = focusable.slice(currentIndex + 1).find((node) => !item.contains(node)) ?? focusable.slice(0, currentIndex).reverse().find((node) => !item.contains(node));
+ item.hidden = true;
+ if (hadFocus) next?.focus();
+ };
+ on(root, "click", (event) => {
+ const button = event.target.closest("button");
+ if (!button || !enabled(button)) return;
+ if (button.matches(".toast-close,.alert-close,.chip-remove,[data-dismiss]")) dismiss(button.closest(".toast,.alert,.chip") ?? root);
+ else if (button.matches(".chip-filter")) {
+ button.setAttribute("aria-pressed", String(button.getAttribute("aria-pressed") !== "true"));
+ root.emit("action", {
+ action: button.textContent.trim(),
+ pressed: button.getAttribute("aria-pressed") === "true"
+ });
+ } else if (button.matches("[data-retry]")) root.emit("retry", {});
+ else root.emit("action", { action: button.dataset.action ?? button.textContent.trim() });
+ });
+ on(root, "keydown", (event) => {
+ if (event.key === "Escape") {
+ const toast = event.target.closest(".toast");
+ if (toast) {
+ event.preventDefault();
+ event.stopPropagation();
+ dismiss(toast);
+ }
+ }
+ });
+ return { dismiss(id) {
+ dismiss(id ? root.querySelector(`#${CSS.escape(id)}`) : root.querySelector(".toast,.alert") ?? root);
+ } };
+}
+//#endregion
+export { tooltip as i, modal as n, popover as r, feedback as t };
diff --git a/packages/ui/dist/copy/error-state/runtime/components/error-state.js b/packages/ui/dist/copy/error-state/runtime/components/error-state.js
index 8adf9072e..304fd3e2b 100644
--- a/packages/ui/dist/copy/error-state/runtime/components/error-state.js
+++ b/packages/ui/dist/copy/error-state/runtime/components/error-state.js
@@ -1,10 +1,10 @@
import { t as J3w1Element } from "../chunks/element-Dovcr9Ky.js";
-import { t as feedback } from "../chunks/overlays-Bw8SSDKz.js";
+import { t as feedback } from "../chunks/overlays-BwgpF4jI.js";
//#region .cache/ui-build/entries/components/error-state.js
var J3w1ErrorState = class extends J3w1Element {
static componentId = "error-state";
static version = "4.0.0";
- static implementationId = "sha256-NFXjO9uEbTYqbXbZVfFiY8Ge2N54qnmAPnp046iwL4U=";
+ static implementationId = "sha256-tOUjSBC5VAWfv+AicnePxVZaKItd4HUgjbSSn0EAnj4=";
static connect = feedback;
static upgradeProperties = ["disabled", "name"];
static observedAttributes = [...J3w1Element.observedAttributes, ...["disabled", "loading"]];
diff --git a/packages/ui/dist/copy/error-state/tokens.css b/packages/ui/dist/copy/error-state/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/error-state/tokens.css
+++ b/packages/ui/dist/copy/error-state/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/field/manifest.json b/packages/ui/dist/copy/field/manifest.json
index be871bf08..2da1150b7 100644
--- a/packages/ui/dist/copy/field/manifest.json
+++ b/packages/ui/dist/copy/field/manifest.json
@@ -16,7 +16,7 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/field.js": "sha256-ummTNywyrj12MoNMHDD5qiPFCif8xG24RwdhXXF7LnU=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-NdGAWLleLWawKN47P/spgrR/kdjbB/c8l7xBXcLxIoI=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-M+Faw3Q4PMYCRgzzkpyGYO6m3Sefbyj3JZ3/wdlvGPU=",
diff --git a/packages/ui/dist/copy/field/tokens.css b/packages/ui/dist/copy/field/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/field/tokens.css
+++ b/packages/ui/dist/copy/field/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/fieldset/manifest.json b/packages/ui/dist/copy/fieldset/manifest.json
index 65ed40ebc..937181197 100644
--- a/packages/ui/dist/copy/fieldset/manifest.json
+++ b/packages/ui/dist/copy/fieldset/manifest.json
@@ -16,7 +16,7 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/fieldset.js": "sha256-NnApETrqjlE4MbJmLICen1VVGenfbkiqjiNh9jSLgF8=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-8VS+tXfjHW87aIScNUGAXsrsJ0qwScONidsZFMMFNh0=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-Z916I2upHIzzffRAz/6w6FSTBwegAd+L49E9Juck2fo=",
diff --git a/packages/ui/dist/copy/fieldset/tokens.css b/packages/ui/dist/copy/fieldset/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/fieldset/tokens.css
+++ b/packages/ui/dist/copy/fieldset/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/file-browser/manifest.json b/packages/ui/dist/copy/file-browser/manifest.json
index d1dc4f590..7ee033058 100644
--- a/packages/ui/dist/copy/file-browser/manifest.json
+++ b/packages/ui/dist/copy/file-browser/manifest.json
@@ -26,7 +26,7 @@
"runtime/components/file-browser.js": "sha256-rX/Iibk2FD9zA2T7ojRVZgvx3P/v8vt8GOi0X/OOEOY=",
"runtime/chunks/compositions-D57dCsBz.js": "sha256-PEpI/vGgdD+LSznUd0iedSxxVE+5QxIO7BGKeQnCRjo=",
"runtime/chunks/navigation-BfNzDYZB.js": "sha256-OhGJWNOz3aZxPAacBgEhAFmBLRt/BGPr7INBjumqyQo=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-UxawfUHhz140JTldQCb8aDbVaLGRxrgbxNCkmCkXxmM=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-TbSmPr7cV31g3WqgPi6LboOGQdmgxz/89Tf/3ld2pfU=",
diff --git a/packages/ui/dist/copy/file-browser/tokens.css b/packages/ui/dist/copy/file-browser/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/file-browser/tokens.css
+++ b/packages/ui/dist/copy/file-browser/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/file-input/component.css b/packages/ui/dist/copy/file-input/component.css
index ce2a49780..1630ff2db 100644
--- a/packages/ui/dist/copy/file-input/component.css
+++ b/packages/ui/dist/copy/file-input/component.css
@@ -350,7 +350,7 @@ j3w1-file-input .file-input:has(.file-input-native[aria-invalid="true"]) .file-i
clip: rect(0 0 0 0);
}
j3w1-file-input .file-input-root:has(.file-input-native[aria-invalid="true"]:focus-visible) .file-input-button {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-file-input .file-input-root:has(.file-input-native:disabled) .file-input-button {
diff --git a/packages/ui/dist/copy/file-input/manifest.json b/packages/ui/dist/copy/file-input/manifest.json
index e2f9a1ee6..83ab28922 100644
--- a/packages/ui/dist/copy/file-input/manifest.json
+++ b/packages/ui/dist/copy/file-input/manifest.json
@@ -16,8 +16,8 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/file-input.js": "sha256-kE0QDQfY2i/MZLrABzvzfCatNUO8IQsU+q/AXBy6hW4=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-r2nu02Ni7aaSzV1vpVpQpVBMSQlq1Vnl3xedr7c6Xl0=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-39WZRXEdIS4uIHh7bXmFulEjX4bGk2S3+7jZc7VyC/w=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-3MysNuXXyX6HzlWv0wFhnto4CU9Q/n0JHK2wx1ufwbE=",
"index.html": "sha256-Mruf4SRnwaZ2RK7LaKRse5q9c4QKhDHgEgCAG4hyL7s=",
diff --git a/packages/ui/dist/copy/file-input/tokens.css b/packages/ui/dist/copy/file-input/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/file-input/tokens.css
+++ b/packages/ui/dist/copy/file-input/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/filterable-table/component.css b/packages/ui/dist/copy/filterable-table/component.css
index ef665025b..8b8571ee1 100644
--- a/packages/ui/dist/copy/filterable-table/component.css
+++ b/packages/ui/dist/copy/filterable-table/component.css
@@ -839,7 +839,7 @@ j3w1-filterable-table .select:has(.select-control[aria-invalid="true"]) .select-
}
j3w1-filterable-table .select-root:has(.select-control[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-filterable-table .select-root:has(.select-control:disabled) {
diff --git a/packages/ui/dist/copy/filterable-table/manifest.json b/packages/ui/dist/copy/filterable-table/manifest.json
index 6de3f0773..58afc3ae9 100644
--- a/packages/ui/dist/copy/filterable-table/manifest.json
+++ b/packages/ui/dist/copy/filterable-table/manifest.json
@@ -22,8 +22,8 @@
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
"runtime/components/filterable-table.js": "sha256-xbo/MykYle7VwG4ArKqnOAwxD6bA5BruTf9Mi33CxnE=",
"runtime/chunks/tables-Cjr1EIJz.js": "sha256-K6BF6M6xNawgWdL+NIcBRZmY98j45o69tBI034Ks4Bg=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-YC1B05BSsIggrfF5/xkh1/hc/k4XIxz/QKMVNwcSd/Y=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-yuQ4f52VMqzL7ZWwuc/Ln3tYKuwWDma8x9yxx29wwLg=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-3PbF9wWtnKy3q07M9x690D730biEbSwu20wHAcvPPEE=",
"index.html": "sha256-L9dRgFL5Tl9EFw9DuTPQaPstK4H0R/A/bzroaL7tvHk=",
diff --git a/packages/ui/dist/copy/filterable-table/tokens.css b/packages/ui/dist/copy/filterable-table/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/filterable-table/tokens.css
+++ b/packages/ui/dist/copy/filterable-table/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/form-builder/component.css b/packages/ui/dist/copy/form-builder/component.css
index 543ccd27e..bca753649 100644
--- a/packages/ui/dist/copy/form-builder/component.css
+++ b/packages/ui/dist/copy/form-builder/component.css
@@ -392,7 +392,7 @@ j3w1-form-builder .text-field:has(.text-field-input[aria-invalid="true"]) .text-
}
j3w1-form-builder .text-field-root:has(.text-field-input[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-form-builder .text-field-root:has(.text-field-input:disabled) {
@@ -527,7 +527,7 @@ j3w1-form-builder .textarea:has(.textarea-input[aria-invalid="true"]) .textarea-
}
j3w1-form-builder .textarea-root:has(.textarea-input[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-form-builder .textarea-root:has(.textarea-input:disabled) {
@@ -757,7 +757,7 @@ j3w1-form-builder .select:has(.select-control[aria-invalid="true"]) .select-help
}
j3w1-form-builder .select-root:has(.select-control[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-form-builder .select-root:has(.select-control:disabled) {
@@ -898,7 +898,7 @@ j3w1-form-builder .checkbox-input:focus-visible {
}
j3w1-form-builder .checkbox-input:checked:focus-visible,
j3w1-form-builder .checkbox-input:indeterminate:focus-visible {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
j3w1-form-builder .checkbox:has(.checkbox-input:required) .checkbox-required {
@@ -1049,7 +1049,7 @@ j3w1-form-builder .radio-group-input:focus-visible {
outline-offset: var(--focus-offset);
}
j3w1-form-builder .radio-group-input:checked:focus-visible {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
j3w1-form-builder .radio-group:has(.radio-group-input:required) .radio-group-required {
@@ -1689,7 +1689,7 @@ j3w1-form-builder .switch:focus-visible .switch-track {
}
j3w1-form-builder .switch[aria-checked="true"]:focus-visible .switch-track {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
j3w1-form-builder .switch:disabled {
diff --git a/packages/ui/dist/copy/form-builder/manifest.json b/packages/ui/dist/copy/form-builder/manifest.json
index 3b9ed2546..afeacbcd4 100644
--- a/packages/ui/dist/copy/form-builder/manifest.json
+++ b/packages/ui/dist/copy/form-builder/manifest.json
@@ -7,21 +7,21 @@
"register/form-builder.js",
"chunks/element-Dovcr9Ky.js",
"chunks/choice-B7mo5Eq3.js",
- "chunks/form-builder-BKs59W9y.js",
- "chunks/form-builder-CqcTkYZe.js",
+ "chunks/form-builder-DVUkImzv.js",
+ "chunks/form-builder-D-fxaPbt.js",
"chunks/form-workflow-BKRLylvq.js",
"chunks/markup-DeQ4bEMR.js"
],
"files": {
- "runtime/register/form-builder.js": "sha256-AH2z8TKkGbsbFMHajeE4JxTg4tjDr5gEOwjyNAIVZvk=",
+ "runtime/register/form-builder.js": "sha256-uhrQXJfzzRwy/NWlSa8twm1Rtal6DvUNBSVYUjWEPm0=",
"runtime/chunks/element-Dovcr9Ky.js": "sha256-7tXEQrcJPBXSDlmCqor6zZVtsFMvL54mFXd6XSTVzQA=",
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
- "runtime/chunks/form-builder-BKs59W9y.js": "sha256-dY5vxMe1vQGS0OppYA63xRxadXFqVZOczLxh6Cdman8=",
- "runtime/chunks/form-builder-CqcTkYZe.js": "sha256-kRXlrq4rK0PWiZHwFQSLuZftI0JuCq0ooYIuBhJ3L+M=",
+ "runtime/chunks/form-builder-DVUkImzv.js": "sha256-V2ZfoyisXIYzVXpLx4kLWUK2e1Rk1cZBX0LsAXk+zb0=",
+ "runtime/chunks/form-builder-D-fxaPbt.js": "sha256-pGvIRKzGVvB/+f10ioX0JvBxi30Mgfqo/e4iWophf+c=",
"runtime/chunks/form-workflow-BKRLylvq.js": "sha256-LcDxqsGpnid91QErVgWLIaXtB5KQS8Uad6Q2shJ1Ohc=",
"runtime/chunks/markup-DeQ4bEMR.js": "sha256-Eyyx7MKBoqXK4i2HaVUQhKUM066L2wIggABt6jAdgas=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-MnUc6KN0qw+qINoU13CL+UM9TxKE9DfaVaeUs/Fy57E=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-AvaSTsUjkZrvH982LEeySHgVpBYhI16Uh3XGc3F36g4=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-WUjDiy4tZKp/CS/g5I/hIUQY0Mci0zrItPW5k4K7As4=",
"index.html": "sha256-640gpCzARRbVwXUct1TM0s5GcegFiYevcWBsg7VSOqI=",
diff --git a/packages/ui/dist/chunks/form-builder-CqcTkYZe.js b/packages/ui/dist/copy/form-builder/runtime/chunks/form-builder-D-fxaPbt.js
similarity index 99%
rename from packages/ui/dist/chunks/form-builder-CqcTkYZe.js
rename to packages/ui/dist/copy/form-builder/runtime/chunks/form-builder-D-fxaPbt.js
index 25321f36f..cec8ebfdf 100644
--- a/packages/ui/dist/chunks/form-builder-CqcTkYZe.js
+++ b/packages/ui/dist/copy/form-builder/runtime/chunks/form-builder-D-fxaPbt.js
@@ -69,7 +69,7 @@ var identity_default = {
name: "j3w1-theme",
version: "4.0.0",
profile: "default",
- sourceDigest: "sha256-9w2X6Cih03PDyOMVu4XmMrmPqHs2iwGGaq5TvafCIUw="
+ sourceDigest: "sha256-mKTBzdPJfZvkgtYFTGC3tgyX+JltZDoEDZW81bCBleo="
};
//#endregion
//#region packages/ui/src/internal/form-builder.js
diff --git a/packages/ui/dist/copy/form-builder/runtime/chunks/form-builder-BKs59W9y.js b/packages/ui/dist/copy/form-builder/runtime/chunks/form-builder-DVUkImzv.js
similarity index 92%
rename from packages/ui/dist/copy/form-builder/runtime/chunks/form-builder-BKs59W9y.js
rename to packages/ui/dist/copy/form-builder/runtime/chunks/form-builder-DVUkImzv.js
index 106281223..bd98e8ae0 100644
--- a/packages/ui/dist/copy/form-builder/runtime/chunks/form-builder-BKs59W9y.js
+++ b/packages/ui/dist/copy/form-builder/runtime/chunks/form-builder-DVUkImzv.js
@@ -1,5 +1,5 @@
import { t as J3w1Element } from "./element-Dovcr9Ky.js";
-import { t as mountBuilder } from "./form-builder-CqcTkYZe.js";
+import { t as mountBuilder } from "./form-builder-D-fxaPbt.js";
//#region packages/ui/src/behaviors/form-builder.js
function formBuilder(root, { signal }) {
const editor = root.querySelector("[data-builder]");
@@ -22,7 +22,7 @@ function formBuilder(root, { signal }) {
var J3w1FormBuilder = class extends J3w1Element {
static componentId = "form-builder";
static version = "4.0.0";
- static implementationId = "sha256-41YE+uuaHQO+zqvZR2V4/ifVHjcZBY/i/HTBt2PoeK0=";
+ static implementationId = "sha256-phb+B6IwUq9d3zUvRQnfCbfvilFz2dNnAqCe6LX5JOY=";
static connect = formBuilder;
static upgradeProperties = [
"disabled",
diff --git a/packages/ui/dist/copy/form-builder/runtime/register/form-builder.js b/packages/ui/dist/copy/form-builder/runtime/register/form-builder.js
index b4b8405d7..e93a34140 100644
--- a/packages/ui/dist/copy/form-builder/runtime/register/form-builder.js
+++ b/packages/ui/dist/copy/form-builder/runtime/register/form-builder.js
@@ -1,5 +1,5 @@
import { n as registerElement } from "../chunks/element-Dovcr9Ky.js";
-import { t as J3w1FormBuilder } from "../chunks/form-builder-BKs59W9y.js";
+import { t as J3w1FormBuilder } from "../chunks/form-builder-DVUkImzv.js";
//#region .cache/ui-build/entries/register/form-builder.js
var element = registerElement("j3w1-form-builder", J3w1FormBuilder);
//#endregion
diff --git a/packages/ui/dist/copy/form-builder/tokens.css b/packages/ui/dist/copy/form-builder/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/form-builder/tokens.css
+++ b/packages/ui/dist/copy/form-builder/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/i3-window-frame/manifest.json b/packages/ui/dist/copy/i3-window-frame/manifest.json
index 7cd9602ec..aecbca44e 100644
--- a/packages/ui/dist/copy/i3-window-frame/manifest.json
+++ b/packages/ui/dist/copy/i3-window-frame/manifest.json
@@ -18,7 +18,7 @@
"runtime/components/i3-window-frame.js": "sha256-Xeo48w2qLhBiwCVHaA6whyxItZy/aAj1xHVCQHHnGhk=",
"runtime/chunks/compositions-D57dCsBz.js": "sha256-PEpI/vGgdD+LSznUd0iedSxxVE+5QxIO7BGKeQnCRjo=",
"runtime/chunks/navigation-BfNzDYZB.js": "sha256-OhGJWNOz3aZxPAacBgEhAFmBLRt/BGPr7INBjumqyQo=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-j6gn6V0mtTIbd0cJHobuNavfKnCi+dJ0Xg8IoZdHp/U=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-r16RBHw/9BhmfwHsOtPnFIkDRIuIAmlN+RpR9z4LXMU=",
diff --git a/packages/ui/dist/copy/i3-window-frame/tokens.css b/packages/ui/dist/copy/i3-window-frame/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/i3-window-frame/tokens.css
+++ b/packages/ui/dist/copy/i3-window-frame/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/icon-button/manifest.json b/packages/ui/dist/copy/icon-button/manifest.json
index d2fc5d72f..b1122c62a 100644
--- a/packages/ui/dist/copy/icon-button/manifest.json
+++ b/packages/ui/dist/copy/icon-button/manifest.json
@@ -16,7 +16,7 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/icon-button.js": "sha256-vf1OEF/kOZCVO/ZtfRZNwQ9lE6RvDSCB/Ra1MK1iFVI=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-il6XyTxz1/FNWyp/lAP2zeoQKrY/yezCXO7+BWH4SLU=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-Zd5z+/mavK2J24Rl+RQLGhMT+nTLwoOf3bAJevwrz7s=",
diff --git a/packages/ui/dist/copy/icon-button/tokens.css b/packages/ui/dist/copy/icon-button/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/icon-button/tokens.css
+++ b/packages/ui/dist/copy/icon-button/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/kbd/manifest.json b/packages/ui/dist/copy/kbd/manifest.json
index 37887d1a1..6a80d19ab 100644
--- a/packages/ui/dist/copy/kbd/manifest.json
+++ b/packages/ui/dist/copy/kbd/manifest.json
@@ -16,7 +16,7 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/kbd.js": "sha256-lHOj6iq9s2QEMIGqbh8RGMmnU1sbrGNw4+mbuKuvByQ=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-BOKm1Tw9r1muXSVI33rhSJD46PIEFVs790GKSMxz6a8=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-tpH9QDJi6WP1xXEjkGhicB0miKDe2fe69wAALVp2X5A=",
diff --git a/packages/ui/dist/copy/kbd/tokens.css b/packages/ui/dist/copy/kbd/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/kbd/tokens.css
+++ b/packages/ui/dist/copy/kbd/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/link/manifest.json b/packages/ui/dist/copy/link/manifest.json
index ba8b57006..f3afc0465 100644
--- a/packages/ui/dist/copy/link/manifest.json
+++ b/packages/ui/dist/copy/link/manifest.json
@@ -16,7 +16,7 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/link.js": "sha256-bR26HhC67XHGaYwnQAazew60MupqT70YRgV+2U5TNxA=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-uxvP2GjnvVzGp+CHY0D7UPQ+7qXQiFem1DAnSc7jCyY=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-I9IW2mf0VnX5LtCoHDI29AJHW7PXUxnRReiAbsbd094=",
diff --git a/packages/ui/dist/copy/link/tokens.css b/packages/ui/dist/copy/link/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/link/tokens.css
+++ b/packages/ui/dist/copy/link/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/list/manifest.json b/packages/ui/dist/copy/list/manifest.json
index ca9c7a9db..9513e7acd 100644
--- a/packages/ui/dist/copy/list/manifest.json
+++ b/packages/ui/dist/copy/list/manifest.json
@@ -16,7 +16,7 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/list.js": "sha256-X5HE772qpMx/n9b3NU6shv9zZWfmY9cjVn/IPAjFFMY=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-rYecTkHR0B1N85CpEe58zzTavkIhRIQVzj50yKfdefA=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-tiKX+fFUPCsBJEryliaQ7y9RhU4zlh8aEqMJ0aSO8Lk=",
diff --git a/packages/ui/dist/copy/list/tokens.css b/packages/ui/dist/copy/list/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/list/tokens.css
+++ b/packages/ui/dist/copy/list/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/loading-indicator/manifest.json b/packages/ui/dist/copy/loading-indicator/manifest.json
index f5746e904..ed7bae231 100644
--- a/packages/ui/dist/copy/loading-indicator/manifest.json
+++ b/packages/ui/dist/copy/loading-indicator/manifest.json
@@ -16,7 +16,7 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/loading-indicator.js": "sha256-Z0q8XmSpQgrwC0AcFNlCQIZSt8tVvZ/ZF6McNG1rtBo=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-ombtuuRs2PXpBfR+/B6paDohN3ODM1V0aNbRSzOcrmQ=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-yiCrGr/OXo7SakIH4qRV3wDHbj09EqyJ2F7eTQHbnbc=",
diff --git a/packages/ui/dist/copy/loading-indicator/tokens.css b/packages/ui/dist/copy/loading-indicator/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/loading-indicator/tokens.css
+++ b/packages/ui/dist/copy/loading-indicator/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/menu/manifest.json b/packages/ui/dist/copy/menu/manifest.json
index ff2dece12..2a9c41e13 100644
--- a/packages/ui/dist/copy/menu/manifest.json
+++ b/packages/ui/dist/copy/menu/manifest.json
@@ -16,7 +16,7 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/menu.js": "sha256-As/aVex/jKXrmY4x/rG0tVMVUij8ZLPXK0kKS4ZBpSQ=",
"runtime/chunks/navigation-BfNzDYZB.js": "sha256-OhGJWNOz3aZxPAacBgEhAFmBLRt/BGPr7INBjumqyQo=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-k4+o5GOHUM88StftYskfdyFUCI7mkb7z/Q98q6IVoLs=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-0SXVO1pxUxzA5mgZzG5YXw21f3G/n81DtP3vy14Nv5M=",
diff --git a/packages/ui/dist/copy/menu/tokens.css b/packages/ui/dist/copy/menu/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/menu/tokens.css
+++ b/packages/ui/dist/copy/menu/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/multiselect/component.css b/packages/ui/dist/copy/multiselect/component.css
index 82a284ae7..e8f7e60b9 100644
--- a/packages/ui/dist/copy/multiselect/component.css
+++ b/packages/ui/dist/copy/multiselect/component.css
@@ -138,7 +138,7 @@ j3w1-multiselect .checkbox-input:focus-visible {
}
j3w1-multiselect .checkbox-input:checked:focus-visible,
j3w1-multiselect .checkbox-input:indeterminate:focus-visible {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
j3w1-multiselect .checkbox:has(.checkbox-input:required) .checkbox-required {
diff --git a/packages/ui/dist/copy/multiselect/manifest.json b/packages/ui/dist/copy/multiselect/manifest.json
index c129c83c9..669156fc1 100644
--- a/packages/ui/dist/copy/multiselect/manifest.json
+++ b/packages/ui/dist/copy/multiselect/manifest.json
@@ -18,8 +18,8 @@
"runtime/components/multiselect.js": "sha256-MllSXtT35z9jg4cXDS6YzVpSLSEHEdFav9snvf+mVPU=",
"runtime/chunks/advanced-CqBF0dSb.js": "sha256-ozOzkRU6IeVGBqU3XQ0aLledkAi9vcs8dJdMQutVevs=",
"runtime/chunks/markup-DeQ4bEMR.js": "sha256-Eyyx7MKBoqXK4i2HaVUQhKUM066L2wIggABt6jAdgas=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-OdOVY82/KYMEbbzSxLU1DnV9RhLbEXpdY1Sgy6ylGwQ=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-mNyp6sPjM1B458gp8a1MSGzOFHVesIqX8cVV9P3tth0=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-1E4hftJizWZX+Gn6uhOJBXC2VAC62t50q2kwRpgS2pQ=",
"index.html": "sha256-0lrVFcwbFER+XauYVRXJkM2wQcvKcobwcWzQsL4OQM8=",
diff --git a/packages/ui/dist/copy/multiselect/tokens.css b/packages/ui/dist/copy/multiselect/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/multiselect/tokens.css
+++ b/packages/ui/dist/copy/multiselect/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/number-field/component.css b/packages/ui/dist/copy/number-field/component.css
index 6a4c5f21d..898274522 100644
--- a/packages/ui/dist/copy/number-field/component.css
+++ b/packages/ui/dist/copy/number-field/component.css
@@ -261,7 +261,7 @@ j3w1-number-field .number-field:has(.number-field-input[aria-invalid="true"]) .n
}
j3w1-number-field .number-field-root:has(.number-field-input[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-number-field .number-field-root:has(.number-field-input:disabled) {
diff --git a/packages/ui/dist/copy/number-field/manifest.json b/packages/ui/dist/copy/number-field/manifest.json
index 01a2c8957..75e937905 100644
--- a/packages/ui/dist/copy/number-field/manifest.json
+++ b/packages/ui/dist/copy/number-field/manifest.json
@@ -16,8 +16,8 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/number-field.js": "sha256-XejyUXzeklfHnLge+zZzoxBqpQGWSXtTLGhXpkm4Sew=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-NcQq0uVZpogHRNRdmQQtShHxXmwI4M2nuuIY7BYYxhE=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-XO8T0IBA7SNqfrL29Rr4KPOzxW7QYgRQVO5YJ59Rmbc=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-wabUKPjMJ+zn/+oKJMogtcDlppICQ8zTGXEbhGwm+iQ=",
"index.html": "sha256-5LArzp8P8o/Sx/BfjJC3wIFgD1V0XbJ+7wgFK1xiKTY=",
diff --git a/packages/ui/dist/copy/number-field/tokens.css b/packages/ui/dist/copy/number-field/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/number-field/tokens.css
+++ b/packages/ui/dist/copy/number-field/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/pagination/manifest.json b/packages/ui/dist/copy/pagination/manifest.json
index 6495fcae6..c50cddddf 100644
--- a/packages/ui/dist/copy/pagination/manifest.json
+++ b/packages/ui/dist/copy/pagination/manifest.json
@@ -16,7 +16,7 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/pagination.js": "sha256-B00TORk80D679cwO2BDfd3MFyKRhgzAoaWxrqC1AoYs=",
"runtime/chunks/tables-Cjr1EIJz.js": "sha256-K6BF6M6xNawgWdL+NIcBRZmY98j45o69tBI034Ks4Bg=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-Y82QrGBuuCOolKEvjfgUe1uRkUY8RAPoLEiVsEUahxg=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-jp4BjPewAxszUnraKXf7iG6Zty7ZB7J8SdFyHQg7hL4=",
diff --git a/packages/ui/dist/copy/pagination/tokens.css b/packages/ui/dist/copy/pagination/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/pagination/tokens.css
+++ b/packages/ui/dist/copy/pagination/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/popover/manifest.json b/packages/ui/dist/copy/popover/manifest.json
index 1c87b80b8..9a0c0312f 100644
--- a/packages/ui/dist/copy/popover/manifest.json
+++ b/packages/ui/dist/copy/popover/manifest.json
@@ -8,15 +8,15 @@
"chunks/element-Dovcr9Ky.js",
"chunks/choice-B7mo5Eq3.js",
"components/popover.js",
- "chunks/overlays-Bw8SSDKz.js"
+ "chunks/overlays-BwgpF4jI.js"
],
"files": {
"runtime/register/popover.js": "sha256-NDvrOkPFLsVu6H7xsvbIrVzEyB991xTSx7kQeyplwJo=",
"runtime/chunks/element-Dovcr9Ky.js": "sha256-7tXEQrcJPBXSDlmCqor6zZVtsFMvL54mFXd6XSTVzQA=",
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
- "runtime/components/popover.js": "sha256-qVz5uQ2xxsSVcKXfgit5JgjSZ3kzPvm9/Mt3A4X1NEg=",
- "runtime/chunks/overlays-Bw8SSDKz.js": "sha256-YrX9CL2A48QwI7COQQ5anYJLPOxpKrIeyz+jtfp+T+I=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "runtime/components/popover.js": "sha256-JHzjjn0Oz3mo6v5yPi+1LrMA+ii8LIIozp+09bAkaIs=",
+ "runtime/chunks/overlays-BwgpF4jI.js": "sha256-NAd99OT4kDsFp8IHscKRus2jY6XRsq+GMzplWbJsY4U=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-xmMasEZmjEVePt3EbtGTGv48RqUg6XWxZKYkmzUQlQY=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-tBbkSUEedfklBWmTm/lh13o3rlYHe/9AGgvmXp+p/Lo=",
diff --git a/packages/ui/dist/copy/popover/runtime/chunks/overlays-Bw8SSDKz.js b/packages/ui/dist/copy/popover/runtime/chunks/overlays-Bw8SSDKz.js
deleted file mode 100644
index 3eeb8ff0d..000000000
--- a/packages/ui/dist/copy/popover/runtime/chunks/overlays-Bw8SSDKz.js
+++ /dev/null
@@ -1,236 +0,0 @@
-import { d as place, i as all, o as enabled, s as identify } from "./choice-B7mo5Eq3.js";
-//#region packages/ui/src/behaviors/overlays.js
-function modal(root, { on }) {
- const dialog = root.querySelector("dialog");
- if (!dialog) return {};
- let opener = null;
- const show = (trigger = root.ownerDocument.activeElement) => {
- if (dialog.open || root.hasAttribute("disabled")) return;
- opener = trigger;
- dialog.showModal();
- (dialog.querySelector("[autofocus]") ?? dialog.querySelector("button:not(.dialog-button-destructive)"))?.focus();
- root.emit("open", {});
- };
- const close = (value = "") => {
- if (dialog.open) dialog.close(String(value));
- };
- on(root, "click", (event) => {
- const button = event.target.closest("button");
- if (button?.matches("[data-open]")) {
- show(button);
- return;
- }
- if (button && dialog.contains(button) && enabled(button)) {
- if (button.matches("[data-close],.dialog-close,.drawer-close")) close(button.dataset.close ?? "cancel");
- else if (button.dataset.action && root.emit("action", { action: button.dataset.action })) close(button.dataset.action);
- }
- if (root.constructor.componentId === "drawer" && event.target.closest("a[href]") && dialog.contains(event.target)) close("navigate");
- });
- on(dialog, "cancel", (event) => {
- if (!root.emit("cancel", {})) event.preventDefault();
- });
- on(dialog, "close", () => {
- if (opener?.isConnected) opener.focus();
- root.emit("close", { returnValue: dialog.returnValue });
- });
- return {
- show,
- close,
- get open() {
- return dialog.open;
- },
- set open(value) {
- value ? show() : close();
- },
- get returnValue() {
- return dialog.returnValue;
- },
- cleanup() {
- if (dialog.open) dialog.close();
- }
- };
-}
-function tooltip(root, { on }) {
- const trigger = root.querySelector(".tooltip-trigger"), popup = root.querySelector("[role=\"tooltip\"]");
- if (!trigger || !popup) return {};
- identify(root, popup, "tooltip");
- trigger.setAttribute("aria-describedby", popup.id);
- let timer, dismissed = false, hovering = false;
- const stop = () => {
- clearTimeout(timer);
- };
- const hide = () => {
- stop();
- popup.hidden = true;
- };
- const show = () => {
- stop();
- if (!dismissed) {
- popup.hidden = false;
- place(trigger, popup);
- }
- };
- on(trigger, "pointerenter", (event) => {
- if (event.pointerType !== "touch") {
- hovering = true;
- dismissed = false;
- timer = setTimeout(show, 300);
- }
- });
- on(root, "pointerleave", (event) => {
- if (!root.contains(event.relatedTarget)) {
- hovering = false;
- dismissed = false;
- if (root.ownerDocument.activeElement !== trigger) hide();
- }
- });
- on(popup, "pointerenter", () => {
- hovering = true;
- stop();
- });
- on(trigger, "focus", () => {
- dismissed = false;
- show();
- });
- on(trigger, "blur", () => {
- if (!hovering) hide();
- });
- on(trigger, "click", () => {
- dismissed = true;
- hide();
- });
- on(trigger, "pointerdown", (event) => {
- if (event.pointerType === "touch") {
- dismissed = false;
- timer = setTimeout(show, 500);
- }
- });
- on(trigger, "pointerup", stop);
- on(trigger, "pointercancel", stop);
- on(root.ownerDocument, "keydown", (event) => {
- if (event.key === "Escape" && !popup.hidden) {
- event.preventDefault();
- event.stopImmediatePropagation();
- dismissed = true;
- hide();
- }
- }, { capture: true });
- on(root.ownerDocument, "scroll", () => {
- if (!popup.hidden) place(trigger, popup);
- }, { capture: true });
- on(root.ownerDocument.defaultView, "resize", () => {
- if (!popup.hidden) place(trigger, popup);
- });
- hide();
- return {
- show,
- hide,
- get open() {
- return !popup.hidden;
- },
- cleanup: hide
- };
-}
-function popover(root, { on }) {
- const trigger = root.querySelector("[data-popover-trigger]"), panel = root.querySelector("[data-popover-panel]");
- if (!trigger || !panel) return {};
- identify(root, panel, "popover");
- trigger.setAttribute("aria-controls", panel.id);
- const native = typeof panel.showPopover === "function";
- if (native) {
- panel.setAttribute("popover", "auto");
- panel.hidden = false;
- } else panel.hidden = true;
- let open = false;
- const sync = (value) => {
- open = value;
- trigger.setAttribute("aria-expanded", String(value));
- root.emit("toggle", { expanded: value });
- };
- const show = () => {
- if (open || !enabled(trigger)) return;
- native ? panel.showPopover() : panel.hidden = false;
- sync(true);
- place(trigger, panel);
- };
- const hide = (focus = false) => {
- if (!open) return;
- native ? panel.hidePopover() : panel.hidden = true;
- sync(false);
- if (focus) trigger.focus();
- };
- on(trigger, "click", () => open ? hide() : show());
- on(panel, "beforetoggle", (event) => {
- open = event.newState === "open";
- trigger.setAttribute("aria-expanded", String(open));
- });
- on(panel, "click", (event) => {
- if (event.target.closest("[data-close]")) hide(true);
- });
- on(root.ownerDocument, "pointerdown", (event) => {
- if (!native && !root.contains(event.target)) hide();
- });
- on(root, "keydown", (event) => {
- if (event.key === "Escape" && open) {
- event.preventDefault();
- event.stopPropagation();
- hide(true);
- }
- });
- on(root.ownerDocument.defaultView, "resize", () => {
- if (open) place(trigger, panel);
- });
- trigger.setAttribute("aria-expanded", "false");
- return {
- show,
- hide,
- get open() {
- return open;
- },
- set open(value) {
- value ? show() : hide();
- },
- cleanup() {
- hide();
- }
- };
-}
-function feedback(root, { on }) {
- const dismiss = (item) => {
- if (!item || !root.emit("dismiss", { id: item.id })) return;
- const hadFocus = item.contains(root.ownerDocument.activeElement);
- const focusable = all(root.ownerDocument, "button,a[href],input,select,textarea,[tabindex='0']").filter((node) => enabled(node) && !node.closest("[hidden]"));
- const currentIndex = focusable.indexOf(root.ownerDocument.activeElement);
- const next = focusable.slice(currentIndex + 1).find((node) => !item.contains(node)) ?? focusable.slice(0, currentIndex).reverse().find((node) => !item.contains(node));
- item.hidden = true;
- if (hadFocus) next?.focus();
- };
- on(root, "click", (event) => {
- const button = event.target.closest("button");
- if (!button || !enabled(button)) return;
- if (button.matches(".toast-close,.alert-close,.chip-remove,[data-dismiss]")) dismiss(button.closest(".toast,.alert,.chip") ?? root);
- else if (button.matches(".chip-filter")) {
- button.setAttribute("aria-pressed", String(button.getAttribute("aria-pressed") !== "true"));
- root.emit("action", {
- action: button.textContent.trim(),
- pressed: button.getAttribute("aria-pressed") === "true"
- });
- } else if (button.matches("[data-retry]")) root.emit("retry", {});
- else root.emit("action", { action: button.dataset.action ?? button.textContent.trim() });
- });
- on(root, "keydown", (event) => {
- if (event.key === "Escape") {
- const toast = event.target.closest(".toast");
- if (toast) {
- event.preventDefault();
- event.stopPropagation();
- dismiss(toast);
- }
- }
- });
- return { dismiss(id) {
- dismiss(id ? root.querySelector(`#${CSS.escape(id)}`) : root.querySelector(".toast,.alert") ?? root);
- } };
-}
-//#endregion
-export { tooltip as i, modal as n, popover as r, feedback as t };
diff --git a/packages/ui/dist/copy/popover/runtime/chunks/overlays-BwgpF4jI.js b/packages/ui/dist/copy/popover/runtime/chunks/overlays-BwgpF4jI.js
new file mode 100644
index 000000000..4b8de2e8b
--- /dev/null
+++ b/packages/ui/dist/copy/popover/runtime/chunks/overlays-BwgpF4jI.js
@@ -0,0 +1,245 @@
+import { d as place, i as all, o as enabled, s as identify } from "./choice-B7mo5Eq3.js";
+//#region packages/ui/src/behaviors/overlays.js
+function modal(root, { on }) {
+ const dialog = root.querySelector("dialog");
+ if (!dialog) return {};
+ let opener = null;
+ const show = (trigger = root.ownerDocument.activeElement) => {
+ if (dialog.open || root.hasAttribute("disabled")) return;
+ opener = trigger;
+ dialog.showModal();
+ (dialog.querySelector("[autofocus]") ?? dialog.querySelector("button:not(.dialog-button-destructive)"))?.focus();
+ root.emit("open", {});
+ };
+ const close = (value = "") => {
+ if (dialog.open) dialog.close(String(value));
+ };
+ on(root, "click", (event) => {
+ const button = event.target.closest("button");
+ if (button?.matches("[data-open]")) {
+ show(button);
+ return;
+ }
+ if (button && dialog.contains(button) && enabled(button)) {
+ if (button.matches("[data-close],.dialog-close,.drawer-close")) close(button.dataset.close ?? "cancel");
+ else if (button.dataset.action && root.emit("action", { action: button.dataset.action })) close(button.dataset.action);
+ }
+ if (root.constructor.componentId === "drawer" && event.target.closest("a[href]") && dialog.contains(event.target)) close("navigate");
+ });
+ on(dialog, "cancel", (event) => {
+ if (!root.emit("cancel", {})) event.preventDefault();
+ });
+ on(dialog, "close", () => {
+ if (opener?.isConnected) opener.focus();
+ root.emit("close", { returnValue: dialog.returnValue });
+ });
+ return {
+ show,
+ close,
+ get open() {
+ return dialog.open;
+ },
+ set open(value) {
+ value ? show() : close();
+ },
+ get returnValue() {
+ return dialog.returnValue;
+ },
+ cleanup() {
+ if (dialog.open) dialog.close();
+ }
+ };
+}
+function tooltip(root, { on }) {
+ const trigger = root.querySelector(".tooltip-trigger"), popup = root.querySelector("[role=\"tooltip\"]");
+ if (!trigger || !popup) return {};
+ identify(root, popup, "tooltip");
+ trigger.setAttribute("aria-describedby", popup.id);
+ let timer, hideTimer, dismissed = false, hovering = false;
+ const stop = () => {
+ clearTimeout(timer);
+ clearTimeout(hideTimer);
+ };
+ const hide = () => {
+ stop();
+ popup.hidden = true;
+ };
+ const show = () => {
+ stop();
+ if (!dismissed) {
+ popup.hidden = false;
+ place(trigger, popup);
+ }
+ };
+ const hideSoon = () => {
+ clearTimeout(timer);
+ clearTimeout(hideTimer);
+ hideTimer = setTimeout(() => {
+ if (!hovering && root.ownerDocument.activeElement !== trigger) hide();
+ }, 300);
+ };
+ on(trigger, "pointerenter", (event) => {
+ if (event.pointerType !== "touch") {
+ hovering = true;
+ dismissed = false;
+ clearTimeout(hideTimer);
+ if (popup.hidden) timer = setTimeout(show, 300);
+ }
+ });
+ on(root, "pointerleave", (event) => {
+ if (!root.contains(event.relatedTarget)) {
+ hovering = false;
+ dismissed = false;
+ if (root.ownerDocument.activeElement !== trigger) hideSoon();
+ }
+ });
+ on(popup, "pointerenter", () => {
+ hovering = true;
+ stop();
+ });
+ on(trigger, "focus", () => {
+ dismissed = false;
+ show();
+ });
+ on(trigger, "blur", () => {
+ if (!hovering) hide();
+ });
+ on(trigger, "click", () => {
+ dismissed = true;
+ hide();
+ });
+ on(trigger, "pointerdown", (event) => {
+ if (event.pointerType === "touch") {
+ dismissed = false;
+ timer = setTimeout(show, 500);
+ }
+ });
+ on(trigger, "pointerup", stop);
+ on(trigger, "pointercancel", stop);
+ on(root.ownerDocument, "keydown", (event) => {
+ if (event.key === "Escape" && !popup.hidden) {
+ event.preventDefault();
+ event.stopImmediatePropagation();
+ dismissed = true;
+ hide();
+ }
+ }, { capture: true });
+ on(root.ownerDocument, "scroll", () => {
+ if (!popup.hidden) place(trigger, popup);
+ }, { capture: true });
+ on(root.ownerDocument.defaultView, "resize", () => {
+ if (!popup.hidden) place(trigger, popup);
+ });
+ hide();
+ return {
+ show,
+ hide,
+ get open() {
+ return !popup.hidden;
+ },
+ cleanup: hide
+ };
+}
+function popover(root, { on }) {
+ const trigger = root.querySelector("[data-popover-trigger]"), panel = root.querySelector("[data-popover-panel]");
+ if (!trigger || !panel) return {};
+ identify(root, panel, "popover");
+ trigger.setAttribute("aria-controls", panel.id);
+ const native = typeof panel.showPopover === "function";
+ if (native) {
+ panel.setAttribute("popover", "auto");
+ panel.hidden = false;
+ } else panel.hidden = true;
+ let open = false;
+ const sync = (value) => {
+ open = value;
+ trigger.setAttribute("aria-expanded", String(value));
+ root.emit("toggle", { expanded: value });
+ };
+ const show = () => {
+ if (open || !enabled(trigger)) return;
+ native ? panel.showPopover() : panel.hidden = false;
+ sync(true);
+ place(trigger, panel);
+ };
+ const hide = (focus = false) => {
+ if (!open) return;
+ native ? panel.hidePopover() : panel.hidden = true;
+ sync(false);
+ if (focus) trigger.focus();
+ };
+ on(trigger, "click", () => open ? hide() : show());
+ on(panel, "beforetoggle", (event) => {
+ open = event.newState === "open";
+ trigger.setAttribute("aria-expanded", String(open));
+ });
+ on(panel, "click", (event) => {
+ if (event.target.closest("[data-close]")) hide(true);
+ });
+ on(root.ownerDocument, "pointerdown", (event) => {
+ if (!native && !root.contains(event.target)) hide();
+ });
+ on(root, "keydown", (event) => {
+ if (event.key === "Escape" && open) {
+ event.preventDefault();
+ event.stopPropagation();
+ hide(true);
+ }
+ });
+ on(root.ownerDocument.defaultView, "resize", () => {
+ if (open) place(trigger, panel);
+ });
+ trigger.setAttribute("aria-expanded", "false");
+ return {
+ show,
+ hide,
+ get open() {
+ return open;
+ },
+ set open(value) {
+ value ? show() : hide();
+ },
+ cleanup() {
+ hide();
+ }
+ };
+}
+function feedback(root, { on }) {
+ const dismiss = (item) => {
+ if (!item || !root.emit("dismiss", { id: item.id })) return;
+ const hadFocus = item.contains(root.ownerDocument.activeElement);
+ const focusable = all(root.ownerDocument, "button,a[href],input,select,textarea,[tabindex='0']").filter((node) => enabled(node) && !node.closest("[hidden]"));
+ const currentIndex = focusable.indexOf(root.ownerDocument.activeElement);
+ const next = focusable.slice(currentIndex + 1).find((node) => !item.contains(node)) ?? focusable.slice(0, currentIndex).reverse().find((node) => !item.contains(node));
+ item.hidden = true;
+ if (hadFocus) next?.focus();
+ };
+ on(root, "click", (event) => {
+ const button = event.target.closest("button");
+ if (!button || !enabled(button)) return;
+ if (button.matches(".toast-close,.alert-close,.chip-remove,[data-dismiss]")) dismiss(button.closest(".toast,.alert,.chip") ?? root);
+ else if (button.matches(".chip-filter")) {
+ button.setAttribute("aria-pressed", String(button.getAttribute("aria-pressed") !== "true"));
+ root.emit("action", {
+ action: button.textContent.trim(),
+ pressed: button.getAttribute("aria-pressed") === "true"
+ });
+ } else if (button.matches("[data-retry]")) root.emit("retry", {});
+ else root.emit("action", { action: button.dataset.action ?? button.textContent.trim() });
+ });
+ on(root, "keydown", (event) => {
+ if (event.key === "Escape") {
+ const toast = event.target.closest(".toast");
+ if (toast) {
+ event.preventDefault();
+ event.stopPropagation();
+ dismiss(toast);
+ }
+ }
+ });
+ return { dismiss(id) {
+ dismiss(id ? root.querySelector(`#${CSS.escape(id)}`) : root.querySelector(".toast,.alert") ?? root);
+ } };
+}
+//#endregion
+export { tooltip as i, modal as n, popover as r, feedback as t };
diff --git a/packages/ui/dist/copy/popover/runtime/components/popover.js b/packages/ui/dist/copy/popover/runtime/components/popover.js
index 4ca710f90..cd98bf9db 100644
--- a/packages/ui/dist/copy/popover/runtime/components/popover.js
+++ b/packages/ui/dist/copy/popover/runtime/components/popover.js
@@ -1,10 +1,10 @@
import { t as J3w1Element } from "../chunks/element-Dovcr9Ky.js";
-import { r as popover } from "../chunks/overlays-Bw8SSDKz.js";
+import { r as popover } from "../chunks/overlays-BwgpF4jI.js";
//#region .cache/ui-build/entries/components/popover.js
var J3w1Popover = class extends J3w1Element {
static componentId = "popover";
static version = "4.0.0";
- static implementationId = "sha256-8KG7XOC5HTOmJW+CysUIXfhkV3COWEwpPzmG6HXdN80=";
+ static implementationId = "sha256-544d7ON825LY8X5xEBzRzpHfZ1h2hjozJQ8CIUd0dwQ=";
static connect = popover;
static upgradeProperties = [
"disabled",
diff --git a/packages/ui/dist/copy/popover/tokens.css b/packages/ui/dist/copy/popover/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/popover/tokens.css
+++ b/packages/ui/dist/copy/popover/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/progress/manifest.json b/packages/ui/dist/copy/progress/manifest.json
index b879553a0..d70e8facb 100644
--- a/packages/ui/dist/copy/progress/manifest.json
+++ b/packages/ui/dist/copy/progress/manifest.json
@@ -16,7 +16,7 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/progress.js": "sha256-nQLxDlUaGyc+Y+OKp0jTGxlgHN79YT/NpaldZf1fxSY=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-UwXFHO6OA2kZ3cHUZ8xWNx21ZB+espmS0o/GDj19Q4I=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-Bm2XYmsDcMrSYl/yKw1emmfA++ea/EjE5wzSjdg0eyw=",
diff --git a/packages/ui/dist/copy/progress/tokens.css b/packages/ui/dist/copy/progress/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/progress/tokens.css
+++ b/packages/ui/dist/copy/progress/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/radio-group/component.css b/packages/ui/dist/copy/radio-group/component.css
index 7dd7c53a5..f70a51f2f 100644
--- a/packages/ui/dist/copy/radio-group/component.css
+++ b/packages/ui/dist/copy/radio-group/component.css
@@ -187,7 +187,7 @@ j3w1-radio-group .radio-group-input:focus-visible {
outline-offset: var(--focus-offset);
}
j3w1-radio-group .radio-group-input:checked:focus-visible {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
j3w1-radio-group .radio-group:has(.radio-group-input:required) .radio-group-required {
diff --git a/packages/ui/dist/copy/radio-group/manifest.json b/packages/ui/dist/copy/radio-group/manifest.json
index eea3484ca..685bf2550 100644
--- a/packages/ui/dist/copy/radio-group/manifest.json
+++ b/packages/ui/dist/copy/radio-group/manifest.json
@@ -16,8 +16,8 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/radio-group.js": "sha256-2H9k0HsCH7vOePvpZIurg4X8R/tWx69+wbMsKbawdJQ=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-H+SbIsTUcbJYlW9LE6upB3zGttJxr9Wa/0GAcfv9Q6M=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-YV0K4E9IvTApjrBK9vEmi8LtX8q3bUSlq810ysD4Kpk=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-6HA7gvr2JUQeKZ5jWPcVyfSw5t4FmaqlAA/+mhuSJjc=",
"index.html": "sha256-JXkdz3Ty4ygZ8c9K7ftH4J8rbquZw4UXpB47/g2uw1g=",
diff --git a/packages/ui/dist/copy/radio-group/tokens.css b/packages/ui/dist/copy/radio-group/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/radio-group/tokens.css
+++ b/packages/ui/dist/copy/radio-group/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/range/manifest.json b/packages/ui/dist/copy/range/manifest.json
index de1c1eb16..cc92241fb 100644
--- a/packages/ui/dist/copy/range/manifest.json
+++ b/packages/ui/dist/copy/range/manifest.json
@@ -16,7 +16,7 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/range.js": "sha256-UOtb5bcowunT33yEodiHV5YKGl/OTUl5qSsO3xxwSHY=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-4ayZ4hpLNMgckII249GLN4LXptEvABeXopUcVCG8gLc=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-F3TYZf5Pysp2EfVbSAxBHmgiviXyRS3/dKjUdvZrzF0=",
diff --git a/packages/ui/dist/copy/range/tokens.css b/packages/ui/dist/copy/range/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/range/tokens.css
+++ b/packages/ui/dist/copy/range/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/repeater/manifest.json b/packages/ui/dist/copy/repeater/manifest.json
index e634f44b6..6ca1da088 100644
--- a/packages/ui/dist/copy/repeater/manifest.json
+++ b/packages/ui/dist/copy/repeater/manifest.json
@@ -18,7 +18,7 @@
"runtime/components/repeater.js": "sha256-S5GJEE4PdeXjexdZXmIgJnjsOURVZHpQCSJzc+huJXc=",
"runtime/chunks/advanced-CqBF0dSb.js": "sha256-ozOzkRU6IeVGBqU3XQ0aLledkAi9vcs8dJdMQutVevs=",
"runtime/chunks/markup-DeQ4bEMR.js": "sha256-Eyyx7MKBoqXK4i2HaVUQhKUM066L2wIggABt6jAdgas=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-rx26lMPjdf1Z/n5dSt0W680aeH4/Vf/JHj+aVD7Yd0g=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-DSCQzrRbDwFOKtw5YmpR+3oYWMIBJFIPnJpes5bSMPY=",
diff --git a/packages/ui/dist/copy/repeater/tokens.css b/packages/ui/dist/copy/repeater/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/repeater/tokens.css
+++ b/packages/ui/dist/copy/repeater/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/search-field/manifest.json b/packages/ui/dist/copy/search-field/manifest.json
index 870396370..41775f526 100644
--- a/packages/ui/dist/copy/search-field/manifest.json
+++ b/packages/ui/dist/copy/search-field/manifest.json
@@ -16,7 +16,7 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/search-field.js": "sha256-HCnoLO1ZZvDEqeON+Ir7Q+XChuArNr/tJ7H+lnVTJPw=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-wwF2mPKTtvrFcPXYn8OoWoeJPj5KgkmPbjay/kNVq6s=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-HUFhtyi3m/bOmHYH5vU0uD/8e/TFVZ6EmUZzoucKCCM=",
diff --git a/packages/ui/dist/copy/search-field/tokens.css b/packages/ui/dist/copy/search-field/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/search-field/tokens.css
+++ b/packages/ui/dist/copy/search-field/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/segmented-control/component.css b/packages/ui/dist/copy/segmented-control/component.css
index 3c94d95f8..9393cde8e 100644
--- a/packages/ui/dist/copy/segmented-control/component.css
+++ b/packages/ui/dist/copy/segmented-control/component.css
@@ -187,7 +187,7 @@ j3w1-segmented-control .radio-group-input:focus-visible {
outline-offset: var(--focus-offset);
}
j3w1-segmented-control .radio-group-input:checked:focus-visible {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
j3w1-segmented-control .radio-group:has(.radio-group-input:required) .radio-group-required {
diff --git a/packages/ui/dist/copy/segmented-control/manifest.json b/packages/ui/dist/copy/segmented-control/manifest.json
index 2a7b8e658..adfa3bb51 100644
--- a/packages/ui/dist/copy/segmented-control/manifest.json
+++ b/packages/ui/dist/copy/segmented-control/manifest.json
@@ -16,8 +16,8 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/segmented-control.js": "sha256-8hAeFwje9ZkB0c6k2tQrV2hjw4TCznTY3w0tOFD/egQ=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-DOkYci+UZ8ocvIWeqGN9xO6tCAzSiesUej367W8BMAI=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-+okbI0q5jMbA3Dv/3pcbgQ3LJeXS73lSYOUnG9ki9UE=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-/y5XrVYeuiIc2/pZ/wdJWuadUAGF48in7tED7hWQGYI=",
"index.html": "sha256-1knSx3CNDwcXYtsJuGWn26xP1MjuCfSw99/6QgvIyBM=",
diff --git a/packages/ui/dist/copy/segmented-control/tokens.css b/packages/ui/dist/copy/segmented-control/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/segmented-control/tokens.css
+++ b/packages/ui/dist/copy/segmented-control/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/select/component.css b/packages/ui/dist/copy/select/component.css
index 415554828..7e5a31bfa 100644
--- a/packages/ui/dist/copy/select/component.css
+++ b/packages/ui/dist/copy/select/component.css
@@ -266,7 +266,7 @@ j3w1-select .select:has(.select-control[aria-invalid="true"]) .select-help {
}
j3w1-select .select-root:has(.select-control[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-select .select-root:has(.select-control:disabled) {
diff --git a/packages/ui/dist/copy/select/manifest.json b/packages/ui/dist/copy/select/manifest.json
index b7c1b0ad2..02672f1cf 100644
--- a/packages/ui/dist/copy/select/manifest.json
+++ b/packages/ui/dist/copy/select/manifest.json
@@ -16,8 +16,8 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/select.js": "sha256-QSO5F4fiwtnnIHZ9/a9n62yVZRlGUIofNkw2oXYIzGY=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-ThIndr85n+voMGPm5jrL7fIGCICUMso0Ljr2/CRyupI=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-F6DQsNcbPkf+LkJ534A3xYbg7WBsLszKxMa9zap0wK0=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-1rMGJynWvvm/FG3mKaD7Cc+QHA+zhkGFyc7tL4Ul37Q=",
"index.html": "sha256-qUab8G+JxhJZ5W/BmBgl23HVr/q8JLQmyIi5tTTX4JU=",
diff --git a/packages/ui/dist/copy/select/tokens.css b/packages/ui/dist/copy/select/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/select/tokens.css
+++ b/packages/ui/dist/copy/select/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/settings-panel/component.css b/packages/ui/dist/copy/settings-panel/component.css
index 790879fd6..d8ef97a28 100644
--- a/packages/ui/dist/copy/settings-panel/component.css
+++ b/packages/ui/dist/copy/settings-panel/component.css
@@ -589,7 +589,7 @@ j3w1-settings-panel .text-field:has(.text-field-input[aria-invalid="true"]) .tex
}
j3w1-settings-panel .text-field-root:has(.text-field-input[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-settings-panel .text-field-root:has(.text-field-input:disabled) {
@@ -745,7 +745,7 @@ j3w1-settings-panel .checkbox-input:focus-visible {
}
j3w1-settings-panel .checkbox-input:checked:focus-visible,
j3w1-settings-panel .checkbox-input:indeterminate:focus-visible {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
j3w1-settings-panel .checkbox:has(.checkbox-input:required) .checkbox-required {
@@ -896,7 +896,7 @@ j3w1-settings-panel .radio-group-input:focus-visible {
outline-offset: var(--focus-offset);
}
j3w1-settings-panel .radio-group-input:checked:focus-visible {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
j3w1-settings-panel .radio-group:has(.radio-group-input:required) .radio-group-required {
@@ -1124,7 +1124,7 @@ j3w1-settings-panel .select:has(.select-control[aria-invalid="true"]) .select-he
}
j3w1-settings-panel .select-root:has(.select-control[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-settings-panel .select-root:has(.select-control:disabled) {
@@ -1242,7 +1242,7 @@ j3w1-settings-panel .switch:focus-visible .switch-track {
}
j3w1-settings-panel .switch[aria-checked="true"]:focus-visible .switch-track {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
j3w1-settings-panel .switch:disabled {
diff --git a/packages/ui/dist/copy/settings-panel/manifest.json b/packages/ui/dist/copy/settings-panel/manifest.json
index 3c0d701c3..1f9698c06 100644
--- a/packages/ui/dist/copy/settings-panel/manifest.json
+++ b/packages/ui/dist/copy/settings-panel/manifest.json
@@ -22,8 +22,8 @@
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
"runtime/components/settings-panel.js": "sha256-2/vcKktPpt7/9RBfexqEoFAPjNDcISoi6AALg6/CVTw=",
"runtime/chunks/forms-CE_hP1hg.js": "sha256-uOnoMuSkUbm9C/GfR+PDLYCykyHOQ1Ni7g59c4YMOS0=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-KvYopMeuJv2HW0li1RcLpCJp645gkxeby6o5WD+bx8o=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-k+UkB8smqd63SQIr7NXfAoXvhCZooblbGmEzkIW0mz0=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-Z1ZqDdIXySN8gWG0bvhT8iMaa+GaOyHy/vumYpCsYt8=",
"index.html": "sha256-o83BpK03vkko3vqQPfArOayVjD634LtFPrmdQbjqbQ8=",
diff --git a/packages/ui/dist/copy/settings-panel/tokens.css b/packages/ui/dist/copy/settings-panel/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/settings-panel/tokens.css
+++ b/packages/ui/dist/copy/settings-panel/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/sidebar-nav/manifest.json b/packages/ui/dist/copy/sidebar-nav/manifest.json
index 5b35854b3..fe20ad139 100644
--- a/packages/ui/dist/copy/sidebar-nav/manifest.json
+++ b/packages/ui/dist/copy/sidebar-nav/manifest.json
@@ -16,7 +16,7 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/sidebar-nav.js": "sha256-DZRlRYGAhBJm3yZ1nqAoW67+PcYUqE3uCTEEnKa9NFQ=",
"runtime/chunks/navigation-BfNzDYZB.js": "sha256-OhGJWNOz3aZxPAacBgEhAFmBLRt/BGPr7INBjumqyQo=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-LJ8LLDvQsYO50EORdep12yfyTFwnO4BxbDzOwHYpciA=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-LBoiPSLgtVIozM1wEFWbV78DaFWbIW+6OgOjaCSim8g=",
diff --git a/packages/ui/dist/copy/sidebar-nav/tokens.css b/packages/ui/dist/copy/sidebar-nav/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/sidebar-nav/tokens.css
+++ b/packages/ui/dist/copy/sidebar-nav/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/skeleton/manifest.json b/packages/ui/dist/copy/skeleton/manifest.json
index 15d4f79e7..34b1580c3 100644
--- a/packages/ui/dist/copy/skeleton/manifest.json
+++ b/packages/ui/dist/copy/skeleton/manifest.json
@@ -16,7 +16,7 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/skeleton.js": "sha256-WSpVLmYkqKadgGqtEfd4Hma86gL9cG2QQC4FW0BXHKw=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-Fdg05sQx+/Q5Ia/CN1d6mo9ueZkpbJnBwTnVSbNePgA=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-/g7jxryHfbaG3yxoxK8NfCh2k5U92wPPELD/107+2Ps=",
diff --git a/packages/ui/dist/copy/skeleton/tokens.css b/packages/ui/dist/copy/skeleton/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/skeleton/tokens.css
+++ b/packages/ui/dist/copy/skeleton/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/skip-link/manifest.json b/packages/ui/dist/copy/skip-link/manifest.json
index 70c40cce2..80469f884 100644
--- a/packages/ui/dist/copy/skip-link/manifest.json
+++ b/packages/ui/dist/copy/skip-link/manifest.json
@@ -16,7 +16,7 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/skip-link.js": "sha256-MomchP1kmj8/eRX8uVLTPeXPPhyYI18353abxwxtqTo=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-AX9f8HRHYyMt1utmAsrIP+UncKsDILTwMv4qUMxNku0=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-TllH5VfEO0Xn2+KsNK2k/W4RJWPv9CVLWE38btvoOpw=",
diff --git a/packages/ui/dist/copy/skip-link/tokens.css b/packages/ui/dist/copy/skip-link/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/skip-link/tokens.css
+++ b/packages/ui/dist/copy/skip-link/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/switch/component.css b/packages/ui/dist/copy/switch/component.css
index c71e16c18..51806b4cf 100644
--- a/packages/ui/dist/copy/switch/component.css
+++ b/packages/ui/dist/copy/switch/component.css
@@ -115,7 +115,7 @@ j3w1-switch .switch:focus-visible .switch-track {
}
j3w1-switch .switch[aria-checked="true"]:focus-visible .switch-track {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
j3w1-switch .switch:disabled {
diff --git a/packages/ui/dist/copy/switch/manifest.json b/packages/ui/dist/copy/switch/manifest.json
index f6f05163a..8c087b69c 100644
--- a/packages/ui/dist/copy/switch/manifest.json
+++ b/packages/ui/dist/copy/switch/manifest.json
@@ -16,8 +16,8 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/switch.js": "sha256-sdfSvJlKylAeDbhRKPMRUZ+piEOzKs1aV52BDvjOV/o=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-HDlOyl2v6b36H0XdR4UOL3DcPMLKHXlvJ/+7QqF1sVA=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-tykFKJCLb7EnJ9BYN4wbrmCaS+Vo3TtOvIKoQ1viFfI=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-bja8BqOYebPhAJ/84m7EUQysf7pqQJ3wMJ10wj4YBz4=",
"index.html": "sha256-IF4S7//PahcEGINA+vv8hBV9DUViABqK+t6Eyfb0B1Y=",
diff --git a/packages/ui/dist/copy/switch/tokens.css b/packages/ui/dist/copy/switch/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/switch/tokens.css
+++ b/packages/ui/dist/copy/switch/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/table/manifest.json b/packages/ui/dist/copy/table/manifest.json
index bf2f1cdcb..e3eea8b01 100644
--- a/packages/ui/dist/copy/table/manifest.json
+++ b/packages/ui/dist/copy/table/manifest.json
@@ -16,7 +16,7 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/table.js": "sha256-CcoLzw/lwTUDE+3sCYBoQQoZAlE++zhK1ZLZELpyYN4=",
"runtime/chunks/tables-Cjr1EIJz.js": "sha256-K6BF6M6xNawgWdL+NIcBRZmY98j45o69tBI034Ks4Bg=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-FsyIsB3w0mFPeVNG2Yq+D6/h7aeVKJpEALxaD4j3afY=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-eTlfzsTldT7TjA25qNYpX+MAAskuYiA9Y+zZW9/B+MU=",
diff --git a/packages/ui/dist/copy/table/tokens.css b/packages/ui/dist/copy/table/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/table/tokens.css
+++ b/packages/ui/dist/copy/table/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/tabs/manifest.json b/packages/ui/dist/copy/tabs/manifest.json
index 579026708..91c3184a6 100644
--- a/packages/ui/dist/copy/tabs/manifest.json
+++ b/packages/ui/dist/copy/tabs/manifest.json
@@ -16,7 +16,7 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/tabs.js": "sha256-2AWArhhBdqbiE1BHWeiumCgXyKi847dzv/cMGGfCfuA=",
"runtime/chunks/navigation-BfNzDYZB.js": "sha256-OhGJWNOz3aZxPAacBgEhAFmBLRt/BGPr7INBjumqyQo=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-fstv2PtC0k8ABx0bciCb6VX0pPTRl3oa8iGdR+6QR0Y=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-xe4UR+a4C9oNodr9UlW5OGE5DR5R9JErwW0UAalo8oE=",
diff --git a/packages/ui/dist/copy/tabs/tokens.css b/packages/ui/dist/copy/tabs/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/tabs/tokens.css
+++ b/packages/ui/dist/copy/tabs/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/terminal/manifest.json b/packages/ui/dist/copy/terminal/manifest.json
index 2fa16d648..0893de745 100644
--- a/packages/ui/dist/copy/terminal/manifest.json
+++ b/packages/ui/dist/copy/terminal/manifest.json
@@ -16,7 +16,7 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/terminal.js": "sha256-LBmUT0u6uCLNgKHb3qON4Yl1HjbBCYOByCIC8bGXv2c=",
"runtime/chunks/display-Jm9bAsnb.js": "sha256-qZb1g04piEwY3lfFJwMe+0mXR218ljtVi8mepWxrFv8=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-qVvYtOU0V9tpTXLiTfobfn2Bv+Ec58ZxsvFuoOO3zqA=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-WyXNyoxiAXNq3bLZRmrc1qS2XzgHghN+5tO+9HpocVA=",
diff --git a/packages/ui/dist/copy/terminal/tokens.css b/packages/ui/dist/copy/terminal/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/terminal/tokens.css
+++ b/packages/ui/dist/copy/terminal/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/text-field/component.css b/packages/ui/dist/copy/text-field/component.css
index ae3d2440f..b38670677 100644
--- a/packages/ui/dist/copy/text-field/component.css
+++ b/packages/ui/dist/copy/text-field/component.css
@@ -219,7 +219,7 @@ j3w1-text-field .text-field:has(.text-field-input[aria-invalid="true"]) .text-fi
}
j3w1-text-field .text-field-root:has(.text-field-input[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-text-field .text-field-root:has(.text-field-input:disabled) {
diff --git a/packages/ui/dist/copy/text-field/manifest.json b/packages/ui/dist/copy/text-field/manifest.json
index c37892c75..c59c813a1 100644
--- a/packages/ui/dist/copy/text-field/manifest.json
+++ b/packages/ui/dist/copy/text-field/manifest.json
@@ -16,8 +16,8 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/text-field.js": "sha256-4c47ee0iFW2YWW+dVR1PBSJMwOOa5rmKhJSalXzm+Zo=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-LugCfo9ZckPpZogBcNDZlTUOev4kjUm9Et1bzrVzJ+A=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-e3OAwau9F97LYarFVXWbKIfnS2R8w0n/O47hHa1tjco=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-R8UtNVXLOQSMMT+NPAGht8BHx8b1yIjvTii2pQlPs8k=",
"index.html": "sha256-ss2KbC0xuZHLx75wVTAJ1qD3+NlEUPn/1dOG4DGQX1g=",
diff --git a/packages/ui/dist/copy/text-field/tokens.css b/packages/ui/dist/copy/text-field/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/text-field/tokens.css
+++ b/packages/ui/dist/copy/text-field/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/textarea/component.css b/packages/ui/dist/copy/textarea/component.css
index 8597fa1ce..ba6e5d742 100644
--- a/packages/ui/dist/copy/textarea/component.css
+++ b/packages/ui/dist/copy/textarea/component.css
@@ -177,7 +177,7 @@ j3w1-textarea .textarea:has(.textarea-input[aria-invalid="true"]) .textarea-help
}
j3w1-textarea .textarea-root:has(.textarea-input[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-textarea .textarea-root:has(.textarea-input:disabled) {
diff --git a/packages/ui/dist/copy/textarea/manifest.json b/packages/ui/dist/copy/textarea/manifest.json
index 0e2ec271c..a53f73671 100644
--- a/packages/ui/dist/copy/textarea/manifest.json
+++ b/packages/ui/dist/copy/textarea/manifest.json
@@ -16,8 +16,8 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/textarea.js": "sha256-pi3Oj4itdBVYU/EaRSZ64BqAEsBdeUH4LCG2kwSUKfw=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-mb8M4759fIYX3Wie6cMYfT3+8rTtVkhxg9jNUrssylc=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-VB3HAgE+H7HB6tMee0dbFbD3l1YmgFtsLiCzLuvGZzs=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-FrTRU04fY9wZ6rThXepEiAOHAf/WPEcefiPDsYvSLsM=",
"index.html": "sha256-O3FxWIEbLMDDY8Ok2G+bKB16TiTYtpgkOAaF9Q1gYYo=",
diff --git a/packages/ui/dist/copy/textarea/tokens.css b/packages/ui/dist/copy/textarea/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/textarea/tokens.css
+++ b/packages/ui/dist/copy/textarea/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/time-picker/component.css b/packages/ui/dist/copy/time-picker/component.css
index 49984f7e2..3f1acaf1f 100644
--- a/packages/ui/dist/copy/time-picker/component.css
+++ b/packages/ui/dist/copy/time-picker/component.css
@@ -221,7 +221,7 @@ j3w1-time-picker .time-picker:has(.time-picker-input[aria-invalid="true"]) .time
clip: rect(0 0 0 0);
}
j3w1-time-picker .time-picker-root:has(.time-picker-input[aria-invalid="true"]:focus-visible) {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-time-picker .time-picker-root:has(.time-picker-input:disabled) {
diff --git a/packages/ui/dist/copy/time-picker/manifest.json b/packages/ui/dist/copy/time-picker/manifest.json
index 1ea87db8c..4e28c489c 100644
--- a/packages/ui/dist/copy/time-picker/manifest.json
+++ b/packages/ui/dist/copy/time-picker/manifest.json
@@ -16,8 +16,8 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/time-picker.js": "sha256-8R5WT2w1+ieYWJkWby33LbGCbBuQiWHFaETY+vXANpc=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-2s5SaHG9dQPlt9Hz78tPTWZDZz5kXliFR2zE0tmPbus=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-fySG8CnltTPsU5F0+8Cbt+YUVtEAU2AAkDFqezc416I=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-RLfLhDEtkzyeISgOb1Njmp8QsxMKjIUzebwrMAg9GNk=",
"index.html": "sha256-HBltgH+aaDfBk6fcYX4waQKdoApT3zk0+wUOtaTyO0g=",
diff --git a/packages/ui/dist/copy/time-picker/tokens.css b/packages/ui/dist/copy/time-picker/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/time-picker/tokens.css
+++ b/packages/ui/dist/copy/time-picker/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/timeline/manifest.json b/packages/ui/dist/copy/timeline/manifest.json
index e4acf2d6c..5dfe85624 100644
--- a/packages/ui/dist/copy/timeline/manifest.json
+++ b/packages/ui/dist/copy/timeline/manifest.json
@@ -16,7 +16,7 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/timeline.js": "sha256-qOO9Ngp7Zj87zq3HaROWETcECMB8hz5rgR4ryNoEh34=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-Af6JACyiwzdqViRAgkXYbYmHSNOZKW+lyj7uVYBMHkc=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-pj/LmsP7e5l3NZI2ZWOLcerU4j0Vn1w2EloUpExz0nw=",
diff --git a/packages/ui/dist/copy/timeline/tokens.css b/packages/ui/dist/copy/timeline/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/timeline/tokens.css
+++ b/packages/ui/dist/copy/timeline/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/toast/manifest.json b/packages/ui/dist/copy/toast/manifest.json
index a07b1341c..750dedb23 100644
--- a/packages/ui/dist/copy/toast/manifest.json
+++ b/packages/ui/dist/copy/toast/manifest.json
@@ -8,15 +8,15 @@
"chunks/element-Dovcr9Ky.js",
"chunks/choice-B7mo5Eq3.js",
"components/toast.js",
- "chunks/overlays-Bw8SSDKz.js"
+ "chunks/overlays-BwgpF4jI.js"
],
"files": {
"runtime/register/toast.js": "sha256-3boFTJqHNwJ4he43NpdsZK8ttLeqvz9HMoUtwFjVwtk=",
"runtime/chunks/element-Dovcr9Ky.js": "sha256-7tXEQrcJPBXSDlmCqor6zZVtsFMvL54mFXd6XSTVzQA=",
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
- "runtime/components/toast.js": "sha256-WIMDZ+G0PKE8LTL9S9wLE1enIZrIXAt4h0Isi5xnGTU=",
- "runtime/chunks/overlays-Bw8SSDKz.js": "sha256-YrX9CL2A48QwI7COQQ5anYJLPOxpKrIeyz+jtfp+T+I=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "runtime/components/toast.js": "sha256-1dFBmSju1EG6JDJzOQqZ+RK4CzRzFpUX0heoc0jbyF8=",
+ "runtime/chunks/overlays-BwgpF4jI.js": "sha256-NAd99OT4kDsFp8IHscKRus2jY6XRsq+GMzplWbJsY4U=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-uDOVAGMFD+o43PgFLYIr3brOp1t4nrDGrE8jaKF7S2U=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-2DXrOBOlEPzc9p3N5SEbw98qHHSMYTxlOnR6gT91kkU=",
diff --git a/packages/ui/dist/copy/toast/runtime/chunks/overlays-Bw8SSDKz.js b/packages/ui/dist/copy/toast/runtime/chunks/overlays-Bw8SSDKz.js
deleted file mode 100644
index 3eeb8ff0d..000000000
--- a/packages/ui/dist/copy/toast/runtime/chunks/overlays-Bw8SSDKz.js
+++ /dev/null
@@ -1,236 +0,0 @@
-import { d as place, i as all, o as enabled, s as identify } from "./choice-B7mo5Eq3.js";
-//#region packages/ui/src/behaviors/overlays.js
-function modal(root, { on }) {
- const dialog = root.querySelector("dialog");
- if (!dialog) return {};
- let opener = null;
- const show = (trigger = root.ownerDocument.activeElement) => {
- if (dialog.open || root.hasAttribute("disabled")) return;
- opener = trigger;
- dialog.showModal();
- (dialog.querySelector("[autofocus]") ?? dialog.querySelector("button:not(.dialog-button-destructive)"))?.focus();
- root.emit("open", {});
- };
- const close = (value = "") => {
- if (dialog.open) dialog.close(String(value));
- };
- on(root, "click", (event) => {
- const button = event.target.closest("button");
- if (button?.matches("[data-open]")) {
- show(button);
- return;
- }
- if (button && dialog.contains(button) && enabled(button)) {
- if (button.matches("[data-close],.dialog-close,.drawer-close")) close(button.dataset.close ?? "cancel");
- else if (button.dataset.action && root.emit("action", { action: button.dataset.action })) close(button.dataset.action);
- }
- if (root.constructor.componentId === "drawer" && event.target.closest("a[href]") && dialog.contains(event.target)) close("navigate");
- });
- on(dialog, "cancel", (event) => {
- if (!root.emit("cancel", {})) event.preventDefault();
- });
- on(dialog, "close", () => {
- if (opener?.isConnected) opener.focus();
- root.emit("close", { returnValue: dialog.returnValue });
- });
- return {
- show,
- close,
- get open() {
- return dialog.open;
- },
- set open(value) {
- value ? show() : close();
- },
- get returnValue() {
- return dialog.returnValue;
- },
- cleanup() {
- if (dialog.open) dialog.close();
- }
- };
-}
-function tooltip(root, { on }) {
- const trigger = root.querySelector(".tooltip-trigger"), popup = root.querySelector("[role=\"tooltip\"]");
- if (!trigger || !popup) return {};
- identify(root, popup, "tooltip");
- trigger.setAttribute("aria-describedby", popup.id);
- let timer, dismissed = false, hovering = false;
- const stop = () => {
- clearTimeout(timer);
- };
- const hide = () => {
- stop();
- popup.hidden = true;
- };
- const show = () => {
- stop();
- if (!dismissed) {
- popup.hidden = false;
- place(trigger, popup);
- }
- };
- on(trigger, "pointerenter", (event) => {
- if (event.pointerType !== "touch") {
- hovering = true;
- dismissed = false;
- timer = setTimeout(show, 300);
- }
- });
- on(root, "pointerleave", (event) => {
- if (!root.contains(event.relatedTarget)) {
- hovering = false;
- dismissed = false;
- if (root.ownerDocument.activeElement !== trigger) hide();
- }
- });
- on(popup, "pointerenter", () => {
- hovering = true;
- stop();
- });
- on(trigger, "focus", () => {
- dismissed = false;
- show();
- });
- on(trigger, "blur", () => {
- if (!hovering) hide();
- });
- on(trigger, "click", () => {
- dismissed = true;
- hide();
- });
- on(trigger, "pointerdown", (event) => {
- if (event.pointerType === "touch") {
- dismissed = false;
- timer = setTimeout(show, 500);
- }
- });
- on(trigger, "pointerup", stop);
- on(trigger, "pointercancel", stop);
- on(root.ownerDocument, "keydown", (event) => {
- if (event.key === "Escape" && !popup.hidden) {
- event.preventDefault();
- event.stopImmediatePropagation();
- dismissed = true;
- hide();
- }
- }, { capture: true });
- on(root.ownerDocument, "scroll", () => {
- if (!popup.hidden) place(trigger, popup);
- }, { capture: true });
- on(root.ownerDocument.defaultView, "resize", () => {
- if (!popup.hidden) place(trigger, popup);
- });
- hide();
- return {
- show,
- hide,
- get open() {
- return !popup.hidden;
- },
- cleanup: hide
- };
-}
-function popover(root, { on }) {
- const trigger = root.querySelector("[data-popover-trigger]"), panel = root.querySelector("[data-popover-panel]");
- if (!trigger || !panel) return {};
- identify(root, panel, "popover");
- trigger.setAttribute("aria-controls", panel.id);
- const native = typeof panel.showPopover === "function";
- if (native) {
- panel.setAttribute("popover", "auto");
- panel.hidden = false;
- } else panel.hidden = true;
- let open = false;
- const sync = (value) => {
- open = value;
- trigger.setAttribute("aria-expanded", String(value));
- root.emit("toggle", { expanded: value });
- };
- const show = () => {
- if (open || !enabled(trigger)) return;
- native ? panel.showPopover() : panel.hidden = false;
- sync(true);
- place(trigger, panel);
- };
- const hide = (focus = false) => {
- if (!open) return;
- native ? panel.hidePopover() : panel.hidden = true;
- sync(false);
- if (focus) trigger.focus();
- };
- on(trigger, "click", () => open ? hide() : show());
- on(panel, "beforetoggle", (event) => {
- open = event.newState === "open";
- trigger.setAttribute("aria-expanded", String(open));
- });
- on(panel, "click", (event) => {
- if (event.target.closest("[data-close]")) hide(true);
- });
- on(root.ownerDocument, "pointerdown", (event) => {
- if (!native && !root.contains(event.target)) hide();
- });
- on(root, "keydown", (event) => {
- if (event.key === "Escape" && open) {
- event.preventDefault();
- event.stopPropagation();
- hide(true);
- }
- });
- on(root.ownerDocument.defaultView, "resize", () => {
- if (open) place(trigger, panel);
- });
- trigger.setAttribute("aria-expanded", "false");
- return {
- show,
- hide,
- get open() {
- return open;
- },
- set open(value) {
- value ? show() : hide();
- },
- cleanup() {
- hide();
- }
- };
-}
-function feedback(root, { on }) {
- const dismiss = (item) => {
- if (!item || !root.emit("dismiss", { id: item.id })) return;
- const hadFocus = item.contains(root.ownerDocument.activeElement);
- const focusable = all(root.ownerDocument, "button,a[href],input,select,textarea,[tabindex='0']").filter((node) => enabled(node) && !node.closest("[hidden]"));
- const currentIndex = focusable.indexOf(root.ownerDocument.activeElement);
- const next = focusable.slice(currentIndex + 1).find((node) => !item.contains(node)) ?? focusable.slice(0, currentIndex).reverse().find((node) => !item.contains(node));
- item.hidden = true;
- if (hadFocus) next?.focus();
- };
- on(root, "click", (event) => {
- const button = event.target.closest("button");
- if (!button || !enabled(button)) return;
- if (button.matches(".toast-close,.alert-close,.chip-remove,[data-dismiss]")) dismiss(button.closest(".toast,.alert,.chip") ?? root);
- else if (button.matches(".chip-filter")) {
- button.setAttribute("aria-pressed", String(button.getAttribute("aria-pressed") !== "true"));
- root.emit("action", {
- action: button.textContent.trim(),
- pressed: button.getAttribute("aria-pressed") === "true"
- });
- } else if (button.matches("[data-retry]")) root.emit("retry", {});
- else root.emit("action", { action: button.dataset.action ?? button.textContent.trim() });
- });
- on(root, "keydown", (event) => {
- if (event.key === "Escape") {
- const toast = event.target.closest(".toast");
- if (toast) {
- event.preventDefault();
- event.stopPropagation();
- dismiss(toast);
- }
- }
- });
- return { dismiss(id) {
- dismiss(id ? root.querySelector(`#${CSS.escape(id)}`) : root.querySelector(".toast,.alert") ?? root);
- } };
-}
-//#endregion
-export { tooltip as i, modal as n, popover as r, feedback as t };
diff --git a/packages/ui/dist/copy/toast/runtime/chunks/overlays-BwgpF4jI.js b/packages/ui/dist/copy/toast/runtime/chunks/overlays-BwgpF4jI.js
new file mode 100644
index 000000000..4b8de2e8b
--- /dev/null
+++ b/packages/ui/dist/copy/toast/runtime/chunks/overlays-BwgpF4jI.js
@@ -0,0 +1,245 @@
+import { d as place, i as all, o as enabled, s as identify } from "./choice-B7mo5Eq3.js";
+//#region packages/ui/src/behaviors/overlays.js
+function modal(root, { on }) {
+ const dialog = root.querySelector("dialog");
+ if (!dialog) return {};
+ let opener = null;
+ const show = (trigger = root.ownerDocument.activeElement) => {
+ if (dialog.open || root.hasAttribute("disabled")) return;
+ opener = trigger;
+ dialog.showModal();
+ (dialog.querySelector("[autofocus]") ?? dialog.querySelector("button:not(.dialog-button-destructive)"))?.focus();
+ root.emit("open", {});
+ };
+ const close = (value = "") => {
+ if (dialog.open) dialog.close(String(value));
+ };
+ on(root, "click", (event) => {
+ const button = event.target.closest("button");
+ if (button?.matches("[data-open]")) {
+ show(button);
+ return;
+ }
+ if (button && dialog.contains(button) && enabled(button)) {
+ if (button.matches("[data-close],.dialog-close,.drawer-close")) close(button.dataset.close ?? "cancel");
+ else if (button.dataset.action && root.emit("action", { action: button.dataset.action })) close(button.dataset.action);
+ }
+ if (root.constructor.componentId === "drawer" && event.target.closest("a[href]") && dialog.contains(event.target)) close("navigate");
+ });
+ on(dialog, "cancel", (event) => {
+ if (!root.emit("cancel", {})) event.preventDefault();
+ });
+ on(dialog, "close", () => {
+ if (opener?.isConnected) opener.focus();
+ root.emit("close", { returnValue: dialog.returnValue });
+ });
+ return {
+ show,
+ close,
+ get open() {
+ return dialog.open;
+ },
+ set open(value) {
+ value ? show() : close();
+ },
+ get returnValue() {
+ return dialog.returnValue;
+ },
+ cleanup() {
+ if (dialog.open) dialog.close();
+ }
+ };
+}
+function tooltip(root, { on }) {
+ const trigger = root.querySelector(".tooltip-trigger"), popup = root.querySelector("[role=\"tooltip\"]");
+ if (!trigger || !popup) return {};
+ identify(root, popup, "tooltip");
+ trigger.setAttribute("aria-describedby", popup.id);
+ let timer, hideTimer, dismissed = false, hovering = false;
+ const stop = () => {
+ clearTimeout(timer);
+ clearTimeout(hideTimer);
+ };
+ const hide = () => {
+ stop();
+ popup.hidden = true;
+ };
+ const show = () => {
+ stop();
+ if (!dismissed) {
+ popup.hidden = false;
+ place(trigger, popup);
+ }
+ };
+ const hideSoon = () => {
+ clearTimeout(timer);
+ clearTimeout(hideTimer);
+ hideTimer = setTimeout(() => {
+ if (!hovering && root.ownerDocument.activeElement !== trigger) hide();
+ }, 300);
+ };
+ on(trigger, "pointerenter", (event) => {
+ if (event.pointerType !== "touch") {
+ hovering = true;
+ dismissed = false;
+ clearTimeout(hideTimer);
+ if (popup.hidden) timer = setTimeout(show, 300);
+ }
+ });
+ on(root, "pointerleave", (event) => {
+ if (!root.contains(event.relatedTarget)) {
+ hovering = false;
+ dismissed = false;
+ if (root.ownerDocument.activeElement !== trigger) hideSoon();
+ }
+ });
+ on(popup, "pointerenter", () => {
+ hovering = true;
+ stop();
+ });
+ on(trigger, "focus", () => {
+ dismissed = false;
+ show();
+ });
+ on(trigger, "blur", () => {
+ if (!hovering) hide();
+ });
+ on(trigger, "click", () => {
+ dismissed = true;
+ hide();
+ });
+ on(trigger, "pointerdown", (event) => {
+ if (event.pointerType === "touch") {
+ dismissed = false;
+ timer = setTimeout(show, 500);
+ }
+ });
+ on(trigger, "pointerup", stop);
+ on(trigger, "pointercancel", stop);
+ on(root.ownerDocument, "keydown", (event) => {
+ if (event.key === "Escape" && !popup.hidden) {
+ event.preventDefault();
+ event.stopImmediatePropagation();
+ dismissed = true;
+ hide();
+ }
+ }, { capture: true });
+ on(root.ownerDocument, "scroll", () => {
+ if (!popup.hidden) place(trigger, popup);
+ }, { capture: true });
+ on(root.ownerDocument.defaultView, "resize", () => {
+ if (!popup.hidden) place(trigger, popup);
+ });
+ hide();
+ return {
+ show,
+ hide,
+ get open() {
+ return !popup.hidden;
+ },
+ cleanup: hide
+ };
+}
+function popover(root, { on }) {
+ const trigger = root.querySelector("[data-popover-trigger]"), panel = root.querySelector("[data-popover-panel]");
+ if (!trigger || !panel) return {};
+ identify(root, panel, "popover");
+ trigger.setAttribute("aria-controls", panel.id);
+ const native = typeof panel.showPopover === "function";
+ if (native) {
+ panel.setAttribute("popover", "auto");
+ panel.hidden = false;
+ } else panel.hidden = true;
+ let open = false;
+ const sync = (value) => {
+ open = value;
+ trigger.setAttribute("aria-expanded", String(value));
+ root.emit("toggle", { expanded: value });
+ };
+ const show = () => {
+ if (open || !enabled(trigger)) return;
+ native ? panel.showPopover() : panel.hidden = false;
+ sync(true);
+ place(trigger, panel);
+ };
+ const hide = (focus = false) => {
+ if (!open) return;
+ native ? panel.hidePopover() : panel.hidden = true;
+ sync(false);
+ if (focus) trigger.focus();
+ };
+ on(trigger, "click", () => open ? hide() : show());
+ on(panel, "beforetoggle", (event) => {
+ open = event.newState === "open";
+ trigger.setAttribute("aria-expanded", String(open));
+ });
+ on(panel, "click", (event) => {
+ if (event.target.closest("[data-close]")) hide(true);
+ });
+ on(root.ownerDocument, "pointerdown", (event) => {
+ if (!native && !root.contains(event.target)) hide();
+ });
+ on(root, "keydown", (event) => {
+ if (event.key === "Escape" && open) {
+ event.preventDefault();
+ event.stopPropagation();
+ hide(true);
+ }
+ });
+ on(root.ownerDocument.defaultView, "resize", () => {
+ if (open) place(trigger, panel);
+ });
+ trigger.setAttribute("aria-expanded", "false");
+ return {
+ show,
+ hide,
+ get open() {
+ return open;
+ },
+ set open(value) {
+ value ? show() : hide();
+ },
+ cleanup() {
+ hide();
+ }
+ };
+}
+function feedback(root, { on }) {
+ const dismiss = (item) => {
+ if (!item || !root.emit("dismiss", { id: item.id })) return;
+ const hadFocus = item.contains(root.ownerDocument.activeElement);
+ const focusable = all(root.ownerDocument, "button,a[href],input,select,textarea,[tabindex='0']").filter((node) => enabled(node) && !node.closest("[hidden]"));
+ const currentIndex = focusable.indexOf(root.ownerDocument.activeElement);
+ const next = focusable.slice(currentIndex + 1).find((node) => !item.contains(node)) ?? focusable.slice(0, currentIndex).reverse().find((node) => !item.contains(node));
+ item.hidden = true;
+ if (hadFocus) next?.focus();
+ };
+ on(root, "click", (event) => {
+ const button = event.target.closest("button");
+ if (!button || !enabled(button)) return;
+ if (button.matches(".toast-close,.alert-close,.chip-remove,[data-dismiss]")) dismiss(button.closest(".toast,.alert,.chip") ?? root);
+ else if (button.matches(".chip-filter")) {
+ button.setAttribute("aria-pressed", String(button.getAttribute("aria-pressed") !== "true"));
+ root.emit("action", {
+ action: button.textContent.trim(),
+ pressed: button.getAttribute("aria-pressed") === "true"
+ });
+ } else if (button.matches("[data-retry]")) root.emit("retry", {});
+ else root.emit("action", { action: button.dataset.action ?? button.textContent.trim() });
+ });
+ on(root, "keydown", (event) => {
+ if (event.key === "Escape") {
+ const toast = event.target.closest(".toast");
+ if (toast) {
+ event.preventDefault();
+ event.stopPropagation();
+ dismiss(toast);
+ }
+ }
+ });
+ return { dismiss(id) {
+ dismiss(id ? root.querySelector(`#${CSS.escape(id)}`) : root.querySelector(".toast,.alert") ?? root);
+ } };
+}
+//#endregion
+export { tooltip as i, modal as n, popover as r, feedback as t };
diff --git a/packages/ui/dist/copy/toast/runtime/components/toast.js b/packages/ui/dist/copy/toast/runtime/components/toast.js
index b400752aa..46f24a535 100644
--- a/packages/ui/dist/copy/toast/runtime/components/toast.js
+++ b/packages/ui/dist/copy/toast/runtime/components/toast.js
@@ -1,10 +1,10 @@
import { t as J3w1Element } from "../chunks/element-Dovcr9Ky.js";
-import { t as feedback } from "../chunks/overlays-Bw8SSDKz.js";
+import { t as feedback } from "../chunks/overlays-BwgpF4jI.js";
//#region .cache/ui-build/entries/components/toast.js
var J3w1Toast = class extends J3w1Element {
static componentId = "toast";
static version = "4.0.0";
- static implementationId = "sha256-BqW1X3i3Z1X0gaHK/29B1mrUpyhmHpV2a30eW/aK+y4=";
+ static implementationId = "sha256-j9WKre9usZOe/7NyvL2T/LvVxN+aLguS4DKMT0466EQ=";
static connect = feedback;
static upgradeProperties = ["disabled", "name"];
static observedAttributes = [...J3w1Element.observedAttributes, ...["disabled", "loading"]];
diff --git a/packages/ui/dist/copy/toast/tokens.css b/packages/ui/dist/copy/toast/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/toast/tokens.css
+++ b/packages/ui/dist/copy/toast/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/toolbar/manifest.json b/packages/ui/dist/copy/toolbar/manifest.json
index 4e38950b2..d64af1a09 100644
--- a/packages/ui/dist/copy/toolbar/manifest.json
+++ b/packages/ui/dist/copy/toolbar/manifest.json
@@ -20,7 +20,7 @@
"runtime/chunks/navigation-BfNzDYZB.js": "sha256-OhGJWNOz3aZxPAacBgEhAFmBLRt/BGPr7INBjumqyQo=",
"runtime/register/menu.js": "sha256-6CvU7Rei9lC+olXvluxdbCPqh46GrPSvB2MGiudiMTk=",
"runtime/components/menu.js": "sha256-As/aVex/jKXrmY4x/rG0tVMVUij8ZLPXK0kKS4ZBpSQ=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-zD6jRNAjuf7XM9+QaxwzEY+F2cFUrQbgUKNLTCc7Q/Y=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-MRU95stqvOm7gd3wzi8XadrYOLU9MRKqdwFO/bmSaPY=",
diff --git a/packages/ui/dist/copy/toolbar/tokens.css b/packages/ui/dist/copy/toolbar/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/toolbar/tokens.css
+++ b/packages/ui/dist/copy/toolbar/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/tooltip/manifest.json b/packages/ui/dist/copy/tooltip/manifest.json
index 1cddeb32a..3858f783f 100644
--- a/packages/ui/dist/copy/tooltip/manifest.json
+++ b/packages/ui/dist/copy/tooltip/manifest.json
@@ -8,15 +8,15 @@
"chunks/element-Dovcr9Ky.js",
"chunks/choice-B7mo5Eq3.js",
"components/tooltip.js",
- "chunks/overlays-Bw8SSDKz.js"
+ "chunks/overlays-BwgpF4jI.js"
],
"files": {
"runtime/register/tooltip.js": "sha256-G4uAYJmQJk4eTEhF1uHV44mtO+Vefw1Onc1nq3+iWlU=",
"runtime/chunks/element-Dovcr9Ky.js": "sha256-7tXEQrcJPBXSDlmCqor6zZVtsFMvL54mFXd6XSTVzQA=",
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
- "runtime/components/tooltip.js": "sha256-MhBgu8Nu2Vx7dqARBvSKFOY+LCcOut1TAcB/5QSwPPI=",
- "runtime/chunks/overlays-Bw8SSDKz.js": "sha256-YrX9CL2A48QwI7COQQ5anYJLPOxpKrIeyz+jtfp+T+I=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "runtime/components/tooltip.js": "sha256-2j1hr66OBZli855FnMDI/StSj237p3llagSJpYZh1KU=",
+ "runtime/chunks/overlays-BwgpF4jI.js": "sha256-NAd99OT4kDsFp8IHscKRus2jY6XRsq+GMzplWbJsY4U=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-qYB8NrU6j0LSeluhANQt7hX4GwZJkfsCr7sElkRObAs=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-+kSohyFbJg7z8/YUnlkzY1UQAu9ZLX7qE1eFLvk/1hI=",
diff --git a/packages/ui/dist/copy/tooltip/runtime/chunks/overlays-Bw8SSDKz.js b/packages/ui/dist/copy/tooltip/runtime/chunks/overlays-Bw8SSDKz.js
deleted file mode 100644
index 3eeb8ff0d..000000000
--- a/packages/ui/dist/copy/tooltip/runtime/chunks/overlays-Bw8SSDKz.js
+++ /dev/null
@@ -1,236 +0,0 @@
-import { d as place, i as all, o as enabled, s as identify } from "./choice-B7mo5Eq3.js";
-//#region packages/ui/src/behaviors/overlays.js
-function modal(root, { on }) {
- const dialog = root.querySelector("dialog");
- if (!dialog) return {};
- let opener = null;
- const show = (trigger = root.ownerDocument.activeElement) => {
- if (dialog.open || root.hasAttribute("disabled")) return;
- opener = trigger;
- dialog.showModal();
- (dialog.querySelector("[autofocus]") ?? dialog.querySelector("button:not(.dialog-button-destructive)"))?.focus();
- root.emit("open", {});
- };
- const close = (value = "") => {
- if (dialog.open) dialog.close(String(value));
- };
- on(root, "click", (event) => {
- const button = event.target.closest("button");
- if (button?.matches("[data-open]")) {
- show(button);
- return;
- }
- if (button && dialog.contains(button) && enabled(button)) {
- if (button.matches("[data-close],.dialog-close,.drawer-close")) close(button.dataset.close ?? "cancel");
- else if (button.dataset.action && root.emit("action", { action: button.dataset.action })) close(button.dataset.action);
- }
- if (root.constructor.componentId === "drawer" && event.target.closest("a[href]") && dialog.contains(event.target)) close("navigate");
- });
- on(dialog, "cancel", (event) => {
- if (!root.emit("cancel", {})) event.preventDefault();
- });
- on(dialog, "close", () => {
- if (opener?.isConnected) opener.focus();
- root.emit("close", { returnValue: dialog.returnValue });
- });
- return {
- show,
- close,
- get open() {
- return dialog.open;
- },
- set open(value) {
- value ? show() : close();
- },
- get returnValue() {
- return dialog.returnValue;
- },
- cleanup() {
- if (dialog.open) dialog.close();
- }
- };
-}
-function tooltip(root, { on }) {
- const trigger = root.querySelector(".tooltip-trigger"), popup = root.querySelector("[role=\"tooltip\"]");
- if (!trigger || !popup) return {};
- identify(root, popup, "tooltip");
- trigger.setAttribute("aria-describedby", popup.id);
- let timer, dismissed = false, hovering = false;
- const stop = () => {
- clearTimeout(timer);
- };
- const hide = () => {
- stop();
- popup.hidden = true;
- };
- const show = () => {
- stop();
- if (!dismissed) {
- popup.hidden = false;
- place(trigger, popup);
- }
- };
- on(trigger, "pointerenter", (event) => {
- if (event.pointerType !== "touch") {
- hovering = true;
- dismissed = false;
- timer = setTimeout(show, 300);
- }
- });
- on(root, "pointerleave", (event) => {
- if (!root.contains(event.relatedTarget)) {
- hovering = false;
- dismissed = false;
- if (root.ownerDocument.activeElement !== trigger) hide();
- }
- });
- on(popup, "pointerenter", () => {
- hovering = true;
- stop();
- });
- on(trigger, "focus", () => {
- dismissed = false;
- show();
- });
- on(trigger, "blur", () => {
- if (!hovering) hide();
- });
- on(trigger, "click", () => {
- dismissed = true;
- hide();
- });
- on(trigger, "pointerdown", (event) => {
- if (event.pointerType === "touch") {
- dismissed = false;
- timer = setTimeout(show, 500);
- }
- });
- on(trigger, "pointerup", stop);
- on(trigger, "pointercancel", stop);
- on(root.ownerDocument, "keydown", (event) => {
- if (event.key === "Escape" && !popup.hidden) {
- event.preventDefault();
- event.stopImmediatePropagation();
- dismissed = true;
- hide();
- }
- }, { capture: true });
- on(root.ownerDocument, "scroll", () => {
- if (!popup.hidden) place(trigger, popup);
- }, { capture: true });
- on(root.ownerDocument.defaultView, "resize", () => {
- if (!popup.hidden) place(trigger, popup);
- });
- hide();
- return {
- show,
- hide,
- get open() {
- return !popup.hidden;
- },
- cleanup: hide
- };
-}
-function popover(root, { on }) {
- const trigger = root.querySelector("[data-popover-trigger]"), panel = root.querySelector("[data-popover-panel]");
- if (!trigger || !panel) return {};
- identify(root, panel, "popover");
- trigger.setAttribute("aria-controls", panel.id);
- const native = typeof panel.showPopover === "function";
- if (native) {
- panel.setAttribute("popover", "auto");
- panel.hidden = false;
- } else panel.hidden = true;
- let open = false;
- const sync = (value) => {
- open = value;
- trigger.setAttribute("aria-expanded", String(value));
- root.emit("toggle", { expanded: value });
- };
- const show = () => {
- if (open || !enabled(trigger)) return;
- native ? panel.showPopover() : panel.hidden = false;
- sync(true);
- place(trigger, panel);
- };
- const hide = (focus = false) => {
- if (!open) return;
- native ? panel.hidePopover() : panel.hidden = true;
- sync(false);
- if (focus) trigger.focus();
- };
- on(trigger, "click", () => open ? hide() : show());
- on(panel, "beforetoggle", (event) => {
- open = event.newState === "open";
- trigger.setAttribute("aria-expanded", String(open));
- });
- on(panel, "click", (event) => {
- if (event.target.closest("[data-close]")) hide(true);
- });
- on(root.ownerDocument, "pointerdown", (event) => {
- if (!native && !root.contains(event.target)) hide();
- });
- on(root, "keydown", (event) => {
- if (event.key === "Escape" && open) {
- event.preventDefault();
- event.stopPropagation();
- hide(true);
- }
- });
- on(root.ownerDocument.defaultView, "resize", () => {
- if (open) place(trigger, panel);
- });
- trigger.setAttribute("aria-expanded", "false");
- return {
- show,
- hide,
- get open() {
- return open;
- },
- set open(value) {
- value ? show() : hide();
- },
- cleanup() {
- hide();
- }
- };
-}
-function feedback(root, { on }) {
- const dismiss = (item) => {
- if (!item || !root.emit("dismiss", { id: item.id })) return;
- const hadFocus = item.contains(root.ownerDocument.activeElement);
- const focusable = all(root.ownerDocument, "button,a[href],input,select,textarea,[tabindex='0']").filter((node) => enabled(node) && !node.closest("[hidden]"));
- const currentIndex = focusable.indexOf(root.ownerDocument.activeElement);
- const next = focusable.slice(currentIndex + 1).find((node) => !item.contains(node)) ?? focusable.slice(0, currentIndex).reverse().find((node) => !item.contains(node));
- item.hidden = true;
- if (hadFocus) next?.focus();
- };
- on(root, "click", (event) => {
- const button = event.target.closest("button");
- if (!button || !enabled(button)) return;
- if (button.matches(".toast-close,.alert-close,.chip-remove,[data-dismiss]")) dismiss(button.closest(".toast,.alert,.chip") ?? root);
- else if (button.matches(".chip-filter")) {
- button.setAttribute("aria-pressed", String(button.getAttribute("aria-pressed") !== "true"));
- root.emit("action", {
- action: button.textContent.trim(),
- pressed: button.getAttribute("aria-pressed") === "true"
- });
- } else if (button.matches("[data-retry]")) root.emit("retry", {});
- else root.emit("action", { action: button.dataset.action ?? button.textContent.trim() });
- });
- on(root, "keydown", (event) => {
- if (event.key === "Escape") {
- const toast = event.target.closest(".toast");
- if (toast) {
- event.preventDefault();
- event.stopPropagation();
- dismiss(toast);
- }
- }
- });
- return { dismiss(id) {
- dismiss(id ? root.querySelector(`#${CSS.escape(id)}`) : root.querySelector(".toast,.alert") ?? root);
- } };
-}
-//#endregion
-export { tooltip as i, modal as n, popover as r, feedback as t };
diff --git a/packages/ui/dist/copy/tooltip/runtime/chunks/overlays-BwgpF4jI.js b/packages/ui/dist/copy/tooltip/runtime/chunks/overlays-BwgpF4jI.js
new file mode 100644
index 000000000..4b8de2e8b
--- /dev/null
+++ b/packages/ui/dist/copy/tooltip/runtime/chunks/overlays-BwgpF4jI.js
@@ -0,0 +1,245 @@
+import { d as place, i as all, o as enabled, s as identify } from "./choice-B7mo5Eq3.js";
+//#region packages/ui/src/behaviors/overlays.js
+function modal(root, { on }) {
+ const dialog = root.querySelector("dialog");
+ if (!dialog) return {};
+ let opener = null;
+ const show = (trigger = root.ownerDocument.activeElement) => {
+ if (dialog.open || root.hasAttribute("disabled")) return;
+ opener = trigger;
+ dialog.showModal();
+ (dialog.querySelector("[autofocus]") ?? dialog.querySelector("button:not(.dialog-button-destructive)"))?.focus();
+ root.emit("open", {});
+ };
+ const close = (value = "") => {
+ if (dialog.open) dialog.close(String(value));
+ };
+ on(root, "click", (event) => {
+ const button = event.target.closest("button");
+ if (button?.matches("[data-open]")) {
+ show(button);
+ return;
+ }
+ if (button && dialog.contains(button) && enabled(button)) {
+ if (button.matches("[data-close],.dialog-close,.drawer-close")) close(button.dataset.close ?? "cancel");
+ else if (button.dataset.action && root.emit("action", { action: button.dataset.action })) close(button.dataset.action);
+ }
+ if (root.constructor.componentId === "drawer" && event.target.closest("a[href]") && dialog.contains(event.target)) close("navigate");
+ });
+ on(dialog, "cancel", (event) => {
+ if (!root.emit("cancel", {})) event.preventDefault();
+ });
+ on(dialog, "close", () => {
+ if (opener?.isConnected) opener.focus();
+ root.emit("close", { returnValue: dialog.returnValue });
+ });
+ return {
+ show,
+ close,
+ get open() {
+ return dialog.open;
+ },
+ set open(value) {
+ value ? show() : close();
+ },
+ get returnValue() {
+ return dialog.returnValue;
+ },
+ cleanup() {
+ if (dialog.open) dialog.close();
+ }
+ };
+}
+function tooltip(root, { on }) {
+ const trigger = root.querySelector(".tooltip-trigger"), popup = root.querySelector("[role=\"tooltip\"]");
+ if (!trigger || !popup) return {};
+ identify(root, popup, "tooltip");
+ trigger.setAttribute("aria-describedby", popup.id);
+ let timer, hideTimer, dismissed = false, hovering = false;
+ const stop = () => {
+ clearTimeout(timer);
+ clearTimeout(hideTimer);
+ };
+ const hide = () => {
+ stop();
+ popup.hidden = true;
+ };
+ const show = () => {
+ stop();
+ if (!dismissed) {
+ popup.hidden = false;
+ place(trigger, popup);
+ }
+ };
+ const hideSoon = () => {
+ clearTimeout(timer);
+ clearTimeout(hideTimer);
+ hideTimer = setTimeout(() => {
+ if (!hovering && root.ownerDocument.activeElement !== trigger) hide();
+ }, 300);
+ };
+ on(trigger, "pointerenter", (event) => {
+ if (event.pointerType !== "touch") {
+ hovering = true;
+ dismissed = false;
+ clearTimeout(hideTimer);
+ if (popup.hidden) timer = setTimeout(show, 300);
+ }
+ });
+ on(root, "pointerleave", (event) => {
+ if (!root.contains(event.relatedTarget)) {
+ hovering = false;
+ dismissed = false;
+ if (root.ownerDocument.activeElement !== trigger) hideSoon();
+ }
+ });
+ on(popup, "pointerenter", () => {
+ hovering = true;
+ stop();
+ });
+ on(trigger, "focus", () => {
+ dismissed = false;
+ show();
+ });
+ on(trigger, "blur", () => {
+ if (!hovering) hide();
+ });
+ on(trigger, "click", () => {
+ dismissed = true;
+ hide();
+ });
+ on(trigger, "pointerdown", (event) => {
+ if (event.pointerType === "touch") {
+ dismissed = false;
+ timer = setTimeout(show, 500);
+ }
+ });
+ on(trigger, "pointerup", stop);
+ on(trigger, "pointercancel", stop);
+ on(root.ownerDocument, "keydown", (event) => {
+ if (event.key === "Escape" && !popup.hidden) {
+ event.preventDefault();
+ event.stopImmediatePropagation();
+ dismissed = true;
+ hide();
+ }
+ }, { capture: true });
+ on(root.ownerDocument, "scroll", () => {
+ if (!popup.hidden) place(trigger, popup);
+ }, { capture: true });
+ on(root.ownerDocument.defaultView, "resize", () => {
+ if (!popup.hidden) place(trigger, popup);
+ });
+ hide();
+ return {
+ show,
+ hide,
+ get open() {
+ return !popup.hidden;
+ },
+ cleanup: hide
+ };
+}
+function popover(root, { on }) {
+ const trigger = root.querySelector("[data-popover-trigger]"), panel = root.querySelector("[data-popover-panel]");
+ if (!trigger || !panel) return {};
+ identify(root, panel, "popover");
+ trigger.setAttribute("aria-controls", panel.id);
+ const native = typeof panel.showPopover === "function";
+ if (native) {
+ panel.setAttribute("popover", "auto");
+ panel.hidden = false;
+ } else panel.hidden = true;
+ let open = false;
+ const sync = (value) => {
+ open = value;
+ trigger.setAttribute("aria-expanded", String(value));
+ root.emit("toggle", { expanded: value });
+ };
+ const show = () => {
+ if (open || !enabled(trigger)) return;
+ native ? panel.showPopover() : panel.hidden = false;
+ sync(true);
+ place(trigger, panel);
+ };
+ const hide = (focus = false) => {
+ if (!open) return;
+ native ? panel.hidePopover() : panel.hidden = true;
+ sync(false);
+ if (focus) trigger.focus();
+ };
+ on(trigger, "click", () => open ? hide() : show());
+ on(panel, "beforetoggle", (event) => {
+ open = event.newState === "open";
+ trigger.setAttribute("aria-expanded", String(open));
+ });
+ on(panel, "click", (event) => {
+ if (event.target.closest("[data-close]")) hide(true);
+ });
+ on(root.ownerDocument, "pointerdown", (event) => {
+ if (!native && !root.contains(event.target)) hide();
+ });
+ on(root, "keydown", (event) => {
+ if (event.key === "Escape" && open) {
+ event.preventDefault();
+ event.stopPropagation();
+ hide(true);
+ }
+ });
+ on(root.ownerDocument.defaultView, "resize", () => {
+ if (open) place(trigger, panel);
+ });
+ trigger.setAttribute("aria-expanded", "false");
+ return {
+ show,
+ hide,
+ get open() {
+ return open;
+ },
+ set open(value) {
+ value ? show() : hide();
+ },
+ cleanup() {
+ hide();
+ }
+ };
+}
+function feedback(root, { on }) {
+ const dismiss = (item) => {
+ if (!item || !root.emit("dismiss", { id: item.id })) return;
+ const hadFocus = item.contains(root.ownerDocument.activeElement);
+ const focusable = all(root.ownerDocument, "button,a[href],input,select,textarea,[tabindex='0']").filter((node) => enabled(node) && !node.closest("[hidden]"));
+ const currentIndex = focusable.indexOf(root.ownerDocument.activeElement);
+ const next = focusable.slice(currentIndex + 1).find((node) => !item.contains(node)) ?? focusable.slice(0, currentIndex).reverse().find((node) => !item.contains(node));
+ item.hidden = true;
+ if (hadFocus) next?.focus();
+ };
+ on(root, "click", (event) => {
+ const button = event.target.closest("button");
+ if (!button || !enabled(button)) return;
+ if (button.matches(".toast-close,.alert-close,.chip-remove,[data-dismiss]")) dismiss(button.closest(".toast,.alert,.chip") ?? root);
+ else if (button.matches(".chip-filter")) {
+ button.setAttribute("aria-pressed", String(button.getAttribute("aria-pressed") !== "true"));
+ root.emit("action", {
+ action: button.textContent.trim(),
+ pressed: button.getAttribute("aria-pressed") === "true"
+ });
+ } else if (button.matches("[data-retry]")) root.emit("retry", {});
+ else root.emit("action", { action: button.dataset.action ?? button.textContent.trim() });
+ });
+ on(root, "keydown", (event) => {
+ if (event.key === "Escape") {
+ const toast = event.target.closest(".toast");
+ if (toast) {
+ event.preventDefault();
+ event.stopPropagation();
+ dismiss(toast);
+ }
+ }
+ });
+ return { dismiss(id) {
+ dismiss(id ? root.querySelector(`#${CSS.escape(id)}`) : root.querySelector(".toast,.alert") ?? root);
+ } };
+}
+//#endregion
+export { tooltip as i, modal as n, popover as r, feedback as t };
diff --git a/packages/ui/dist/copy/tooltip/runtime/components/tooltip.js b/packages/ui/dist/copy/tooltip/runtime/components/tooltip.js
index e641fa5b8..d592891f8 100644
--- a/packages/ui/dist/copy/tooltip/runtime/components/tooltip.js
+++ b/packages/ui/dist/copy/tooltip/runtime/components/tooltip.js
@@ -1,10 +1,10 @@
import { t as J3w1Element } from "../chunks/element-Dovcr9Ky.js";
-import { i as tooltip } from "../chunks/overlays-Bw8SSDKz.js";
+import { i as tooltip } from "../chunks/overlays-BwgpF4jI.js";
//#region .cache/ui-build/entries/components/tooltip.js
var J3w1Tooltip = class extends J3w1Element {
static componentId = "tooltip";
static version = "4.0.0";
- static implementationId = "sha256-GLt9uL8KQ+UknDKUAP+CEU7bTChO5TO3WPwmpJzH62M=";
+ static implementationId = "sha256-lBUCe8gBEWWTZ/ovJn9Q/43pRaM2mAdooaxpLQzBDFE=";
static connect = tooltip;
static upgradeProperties = ["disabled", "name"];
static observedAttributes = [...J3w1Element.observedAttributes, ...["disabled", "loading"]];
diff --git a/packages/ui/dist/copy/tooltip/tokens.css b/packages/ui/dist/copy/tooltip/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/tooltip/tokens.css
+++ b/packages/ui/dist/copy/tooltip/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/tree/manifest.json b/packages/ui/dist/copy/tree/manifest.json
index db8797fa2..4db27d2bd 100644
--- a/packages/ui/dist/copy/tree/manifest.json
+++ b/packages/ui/dist/copy/tree/manifest.json
@@ -18,7 +18,7 @@
"runtime/components/tree.js": "sha256-mYl4DYRuChSjXkRwM7LaJ31aYQZlvzP0RgTYmuNdC9U=",
"runtime/chunks/advanced-CqBF0dSb.js": "sha256-ozOzkRU6IeVGBqU3XQ0aLledkAi9vcs8dJdMQutVevs=",
"runtime/chunks/markup-DeQ4bEMR.js": "sha256-Eyyx7MKBoqXK4i2HaVUQhKUM066L2wIggABt6jAdgas=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-znFzezcYcv10Qwb2tH/UwaG4XQgCXophAwo2Z8cOiyg=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-F1zSdM5xw3/jlndjR4iQRRyZ7K9gfkgofh1Oin9xUAo=",
diff --git a/packages/ui/dist/copy/tree/tokens.css b/packages/ui/dist/copy/tree/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/tree/tokens.css
+++ b/packages/ui/dist/copy/tree/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/copy/wizard/component.css b/packages/ui/dist/copy/wizard/component.css
index 4edc706e8..f25d75629 100644
--- a/packages/ui/dist/copy/wizard/component.css
+++ b/packages/ui/dist/copy/wizard/component.css
@@ -169,7 +169,7 @@ j3w1-wizard .wizard-back:focus-visible {
}
j3w1-wizard .wizard-next:focus-visible {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
j3w1-wizard .wizard-step-button[aria-current="step"] {
@@ -441,7 +441,7 @@ j3w1-wizard .text-field:has(.text-field-input[aria-invalid="true"]) .text-field-
}
j3w1-wizard .text-field-root:has(.text-field-input[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-wizard .text-field-root:has(.text-field-input:disabled) {
diff --git a/packages/ui/dist/copy/wizard/manifest.json b/packages/ui/dist/copy/wizard/manifest.json
index f79f13ae8..4005dd231 100644
--- a/packages/ui/dist/copy/wizard/manifest.json
+++ b/packages/ui/dist/copy/wizard/manifest.json
@@ -16,8 +16,8 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/wizard.js": "sha256-iMzWia0NibbI8OZR3lt0VNBXQXq/OjK7Mz8n9BHkt5c=",
"runtime/chunks/forms-CE_hP1hg.js": "sha256-uOnoMuSkUbm9C/GfR+PDLYCykyHOQ1Ni7g59c4YMOS0=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-dbs7z77ZMyB5via+UcpI8DKAl1gPwQO5PnMB4GL8ANA=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-DfWE/GpjBHHnAxchKcu5pTgCo39mSS+V9uDHjFqFwmA=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-T5EJ8DcqnD1rFEoCwvdUpmBCh0hH9dJSmq5oOkC+mi4=",
"index.html": "sha256-iWmkWU3qxvtjRPPPDLUFT5Sd9bw1krZug4ntOGEYRIU=",
diff --git a/packages/ui/dist/copy/wizard/tokens.css b/packages/ui/dist/copy/wizard/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/copy/wizard/tokens.css
+++ b/packages/ui/dist/copy/wizard/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/dist/enhance/form-builder.js b/packages/ui/dist/enhance/form-builder.js
index 528377299..ce908347c 100644
--- a/packages/ui/dist/enhance/form-builder.js
+++ b/packages/ui/dist/enhance/form-builder.js
@@ -1 +1 @@
-export { t as mountBuilder } from "../chunks/form-builder-CqcTkYZe.js";
+export { t as mountBuilder } from "../chunks/form-builder-D-fxaPbt.js";
diff --git a/packages/ui/dist/index.js b/packages/ui/dist/index.js
index 07faa7d3c..42c84fefc 100644
--- a/packages/ui/dist/index.js
+++ b/packages/ui/dist/index.js
@@ -21,7 +21,7 @@ import { J3w1TimePicker } from "./components/time-picker.js";
import { J3w1FileInput } from "./components/file-input.js";
import { J3w1Repeater } from "./components/repeater.js";
import { J3w1Wizard } from "./components/wizard.js";
-import { t as J3w1FormBuilder } from "./chunks/form-builder-BKs59W9y.js";
+import { t as J3w1FormBuilder } from "./chunks/form-builder-DVUkImzv.js";
import { J3w1Tabs } from "./components/tabs.js";
import { J3w1Breadcrumbs } from "./components/breadcrumbs.js";
import { J3w1Pagination } from "./components/pagination.js";
diff --git a/packages/ui/dist/manifest.json b/packages/ui/dist/manifest.json
index d5781cac5..3b5951a07 100644
--- a/packages/ui/dist/manifest.json
+++ b/packages/ui/dist/manifest.json
@@ -521,13 +521,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/button.js": "sha256-csyoBHNGYp8/JTgXnOjZuGEFG9u6KytBLHY3MtJdxcs=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-3CHgfHOT+xBve253iRY/PvSWDiyrTR4uMxiCy2jC7OQ=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-kLEcMMhF4Tv+byKkImEgGIqqR+QYh6uOOCz/mg5hkPs=",
"index.html": "sha256-O3BLqD/CIvh8B0MWobTc8e8XgjfKiYym6Ekh+jLDiGU=",
"README.md": "sha256-q0HhyjwcljqPHR5pUVYK1uw9OCz+qKStetrXmYwvBR0=",
- "manifest.json": "sha256-fC+Ph4zr0NqxpT/nYbZS8dMMVe6RUzS7yYl7a8ZXfDY="
+ "manifest.json": "sha256-YcqKS0aDPBmhJ0qoRwEOLMuK0mh7IlHcugLEuUwtPFI="
}
}
},
@@ -895,13 +895,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/icon-button.js": "sha256-vf1OEF/kOZCVO/ZtfRZNwQ9lE6RvDSCB/Ra1MK1iFVI=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-il6XyTxz1/FNWyp/lAP2zeoQKrY/yezCXO7+BWH4SLU=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-Zd5z+/mavK2J24Rl+RQLGhMT+nTLwoOf3bAJevwrz7s=",
"index.html": "sha256-KThGCU4j/urAhf3dBSdh3EZIfGyU5sUJD2tDkaUj7pU=",
"README.md": "sha256-kfL9rqvRiTy+cXrhgmDnHSmrAvPR1uA5rKGMQPP1UIM=",
- "manifest.json": "sha256-PtLPNMTcOcV3bfqclq1ktR8kldC1sdwlqBmiOf0F3a4="
+ "manifest.json": "sha256-JQGyXgsAJraZZH9JSTjRekp+eSjUHBd2k3uVOKvRkLs="
}
}
},
@@ -1234,13 +1234,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/link.js": "sha256-bR26HhC67XHGaYwnQAazew60MupqT70YRgV+2U5TNxA=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-uxvP2GjnvVzGp+CHY0D7UPQ+7qXQiFem1DAnSc7jCyY=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-I9IW2mf0VnX5LtCoHDI29AJHW7PXUxnRReiAbsbd094=",
"index.html": "sha256-3ig1s+AQmoMBXGTeRFYZnQvO+kBuTk2gzuIniK+u1Rc=",
"README.md": "sha256-x8NFY5DSM/rYjOcAeTMFjFuNeI2xoG8yxyGfTnk8/wk=",
- "manifest.json": "sha256-b0MFB2qvm1o9aggqaNrXAQBeleOiTekucpU8MsTxdK8="
+ "manifest.json": "sha256-JGUeXMS30rGMVa06iThss91lAtwn+UWQVV+ExxPjN6A="
}
}
},
@@ -1773,13 +1773,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/button-group.js": "sha256-aYOeTtqsQuXqHLxIh17+FGxd0WuETY31YqUOFh32A4A=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-0HQ2nfSUmtlZV8Bwsob1wBnVODkxbeI16OqeME3hc2M=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-4NLobHuAfZnWUQDNQ3ENH9ucyjTTUTD6gk0XV7SHGng=",
"index.html": "sha256-9LPOwo7I6LrlkFlPCMTTeH5e5/ncW+/6Qpk6VBEoVnI=",
"README.md": "sha256-lxk9uEo0CDVb02dn3zqLATkEEbC7gk0mkkX9yRpWCC8=",
- "manifest.json": "sha256-InnBod9qxTqZB9qGW3Qa9YX4EcdXhazIz+8TN5ZeN/c="
+ "manifest.json": "sha256-JQVBtidmCqREkFAwcgREaR1FLnmVg1HO0svUHFQ/l/k="
}
}
},
@@ -1930,6 +1930,7 @@
"density.compact.icon",
"focus.offset",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -1992,6 +1993,7 @@
"density.compact.icon",
"focus.offset",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -2159,6 +2161,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -2235,13 +2242,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/segmented-control.js": "sha256-8hAeFwje9ZkB0c6k2tQrV2hjw4TCznTY3w0tOFD/egQ=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-DOkYci+UZ8ocvIWeqGN9xO6tCAzSiesUej367W8BMAI=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-+okbI0q5jMbA3Dv/3pcbgQ3LJeXS73lSYOUnG9ki9UE=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-/y5XrVYeuiIc2/pZ/wdJWuadUAGF48in7tED7hWQGYI=",
"index.html": "sha256-1knSx3CNDwcXYtsJuGWn26xP1MjuCfSw99/6QgvIyBM=",
"README.md": "sha256-lEaJfO3PJMUKPPqSK45yRRL6euErAHItarIyeoshEI4=",
- "manifest.json": "sha256-U8QmrR6N2BeyWJK8mugWaa5YUyIDeprteAt3NLlb4o8="
+ "manifest.json": "sha256-G1CXVYEMtIIBQkaQDCMfY8eE3/BTOs1PLkNMfE1S0i8="
}
}
},
@@ -2626,13 +2633,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/field.js": "sha256-ummTNywyrj12MoNMHDD5qiPFCif8xG24RwdhXXF7LnU=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-NdGAWLleLWawKN47P/spgrR/kdjbB/c8l7xBXcLxIoI=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-M+Faw3Q4PMYCRgzzkpyGYO6m3Sefbyj3JZ3/wdlvGPU=",
"index.html": "sha256-9Oc3cWMsPHjFbRxnXV+vSB2DCa377qyZ5xvP9m6Gn3s=",
"README.md": "sha256-AzjdGpWnzYlGi9+vtMZD2GQ180dH8au7cLFaahlKJZw=",
- "manifest.json": "sha256-LFCmagaJ5RK5WCMosMvlvxKHUHt1uy1/8mZq88cgt9A="
+ "manifest.json": "sha256-yH4em4Bcxsr0yjIE1VH/t4tR4hk+/DwUFyKiq1fcgLU="
}
}
},
@@ -2854,7 +2861,6 @@
"color.code.caret",
"color.interaction.disabled.bg",
"color.interaction.drop-target",
- "color.interaction.focus.ring-container",
"color.interaction.hover.bg",
"color.interaction.selection.bg",
"color.interaction.selection.text",
@@ -2876,6 +2882,7 @@
"focus.offset",
"focus.offset-invalid",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -2937,6 +2944,7 @@
"focus.offset",
"focus.offset-invalid",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -3008,11 +3016,6 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
- "color.interaction.focus.ring-container": {
- "action": "use",
- "reason": "Use within the role's documented scope and restrictions.",
- "decisionIds": []
- },
"color.interaction.hover.bg": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -3118,6 +3121,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -3179,13 +3187,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/text-field.js": "sha256-4c47ee0iFW2YWW+dVR1PBSJMwOOa5rmKhJSalXzm+Zo=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-LugCfo9ZckPpZogBcNDZlTUOev4kjUm9Et1bzrVzJ+A=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-e3OAwau9F97LYarFVXWbKIfnS2R8w0n/O47hHa1tjco=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-R8UtNVXLOQSMMT+NPAGht8BHx8b1yIjvTii2pQlPs8k=",
"index.html": "sha256-ss2KbC0xuZHLx75wVTAJ1qD3+NlEUPn/1dOG4DGQX1g=",
"README.md": "sha256-U5UskFkuRc314VHTU09nhnEvLqV//5UXlnD2tS0RftI=",
- "manifest.json": "sha256-QVFw6clgmhGPRFOGc9gq7zUsnex503DgVurd5gZjUHo="
+ "manifest.json": "sha256-ISX9TwuNxrUUV1ZhCphehotlBfRbmDfSTmMuCCPB9zY="
}
}
},
@@ -3383,7 +3391,6 @@
"color.code.caret",
"color.interaction.disabled.bg",
"color.interaction.drop-target",
- "color.interaction.focus.ring-container",
"color.interaction.hover.bg",
"color.interaction.selection.bg",
"color.interaction.selection.text",
@@ -3405,6 +3412,7 @@
"focus.offset",
"focus.offset-invalid",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -3463,6 +3471,7 @@
"focus.offset",
"focus.offset-invalid",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -3523,11 +3532,6 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
- "color.interaction.focus.ring-container": {
- "action": "use",
- "reason": "Use within the role's documented scope and restrictions.",
- "decisionIds": []
- },
"color.interaction.hover.bg": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -3633,6 +3637,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -3689,13 +3698,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/textarea.js": "sha256-pi3Oj4itdBVYU/EaRSZ64BqAEsBdeUH4LCG2kwSUKfw=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-mb8M4759fIYX3Wie6cMYfT3+8rTtVkhxg9jNUrssylc=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-VB3HAgE+H7HB6tMee0dbFbD3l1YmgFtsLiCzLuvGZzs=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-FrTRU04fY9wZ6rThXepEiAOHAf/WPEcefiPDsYvSLsM=",
"index.html": "sha256-O3FxWIEbLMDDY8Ok2G+bKB16TiTYtpgkOAaF9Q1gYYo=",
"README.md": "sha256-F6nGVVbKhFVOmZH/GiI2JV5yeoVGMJCFzjcytVdyGrs=",
- "manifest.json": "sha256-9OiLMOutk7sDFK/BKt3rW4+t7B0HZ+lVnlSIJqI0dFc="
+ "manifest.json": "sha256-tAU6bGgIL+sk3VnNhk7sK3BQG92E5syRZ+qsUhl2+uc="
}
}
},
@@ -3903,7 +3912,6 @@
"color.icon.default",
"color.interaction.disabled.bg",
"color.interaction.drop-target",
- "color.interaction.focus.ring-container",
"color.interaction.hover.bg",
"color.interaction.selection.bg",
"color.interaction.selection.text",
@@ -3932,6 +3940,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -4005,6 +4014,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -4087,11 +4097,6 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
- "color.interaction.focus.ring-container": {
- "action": "use",
- "reason": "Use within the role's documented scope and restrictions.",
- "decisionIds": []
- },
"color.interaction.hover.bg": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -4232,6 +4237,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -4313,13 +4323,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/select.js": "sha256-QSO5F4fiwtnnIHZ9/a9n62yVZRlGUIofNkw2oXYIzGY=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-ThIndr85n+voMGPm5jrL7fIGCICUMso0Ljr2/CRyupI=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-F6DQsNcbPkf+LkJ534A3xYbg7WBsLszKxMa9zap0wK0=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-1rMGJynWvvm/FG3mKaD7Cc+QHA+zhkGFyc7tL4Ul37Q=",
"index.html": "sha256-qUab8G+JxhJZ5W/BmBgl23HVr/q8JLQmyIi5tTTX4JU=",
"README.md": "sha256-MrNAdB126mt16m2mdh0VynM3ujESd5+tjBkbyYHVpQw=",
- "manifest.json": "sha256-X8ClgBgnj81zkUxVchrAKunE4At1HgKWTlGhDnBa0PA="
+ "manifest.json": "sha256-15UmZVOGe4XAoyY0gzXCk0/0maw9YY0+lFK0S29qyKE="
}
}
},
@@ -4525,7 +4535,6 @@
"color.border.disabled",
"color.interaction.disabled.bg",
"color.interaction.drop-target",
- "color.interaction.focus.ring-container",
"color.interaction.hover.bg",
"color.interaction.selection.bg",
"color.interaction.selection.text",
@@ -4542,6 +4551,7 @@
"density.compact.icon",
"focus.offset",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.caption",
"font.line-height.ui-md",
@@ -4598,6 +4608,7 @@
"density.compact.icon",
"focus.offset",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.caption",
"font.line-height.ui-md",
@@ -4660,11 +4671,6 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
- "color.interaction.focus.ring-container": {
- "action": "use",
- "reason": "Use within the role's documented scope and restrictions.",
- "decisionIds": []
- },
"color.interaction.hover.bg": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -4745,6 +4751,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -4821,13 +4832,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/checkbox.js": "sha256-M4ffC3UZvNt1LaayV7iUubw0dG33RiqLTYcb05lK3N4=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-AK4XY+QZY/YF9sLhWvSFhLzm72MjHWrr+4fVKr5+398=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-UbNMFdu+HW8ujyQExwYwdN9wZDBkKRrgWyLfrTITwec=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-D5pZAWuWF8+C90nVIZnSREv1i0fk6q9L+6SEdvU1Okk=",
"index.html": "sha256-PXIpEMN5ECxZXpbQG1pVzJUZwEslHvYulHsJlfHplz0=",
"README.md": "sha256-WEnN989sIQKKMpAjmYvjRbS2hGIBqYi+IEj9c/xhVFs=",
- "manifest.json": "sha256-niMah9PNNjgBMYDMlSVaCrZ4apFC6fsEJ91RmAgS3jo="
+ "manifest.json": "sha256-DrNs8FzkHoiTZnivTZu/CI9qtZuOifj+iDih3lFeApg="
}
}
},
@@ -4945,7 +4956,6 @@
"color.border.disabled",
"color.interaction.disabled.bg",
"color.interaction.drop-target",
- "color.interaction.focus.ring-container",
"color.interaction.hover.bg",
"color.interaction.selection.bg",
"color.interaction.selection.text",
@@ -4965,6 +4975,7 @@
"density.compact.icon",
"focus.offset",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -5024,6 +5035,7 @@
"density.compact.icon",
"focus.offset",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -5085,11 +5097,6 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
- "color.interaction.focus.ring-container": {
- "action": "use",
- "reason": "Use within the role's documented scope and restrictions.",
- "decisionIds": []
- },
"color.interaction.hover.bg": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -5185,6 +5192,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -5256,13 +5268,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/radio-group.js": "sha256-2H9k0HsCH7vOePvpZIurg4X8R/tWx69+wbMsKbawdJQ=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-H+SbIsTUcbJYlW9LE6upB3zGttJxr9Wa/0GAcfv9Q6M=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-YV0K4E9IvTApjrBK9vEmi8LtX8q3bUSlq810ysD4Kpk=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-6HA7gvr2JUQeKZ5jWPcVyfSw5t4FmaqlAA/+mhuSJjc=",
"index.html": "sha256-JXkdz3Ty4ygZ8c9K7ftH4J8rbquZw4UXpB47/g2uw1g=",
"README.md": "sha256-L+Z3W5VfP83lnvB20pwCI2E1gQ/vKF4Yvd/mDw4diyE=",
- "manifest.json": "sha256-1LRuVLdz4Be5bPbEaxfo+lZHHjUS9sAWxg1BqbK1c3Y="
+ "manifest.json": "sha256-dlgUm59lsbboiK0rfTEoYEdF37yHJdkm9nWT3ij1b5M="
}
}
},
@@ -5399,7 +5411,6 @@
"color.border.disabled",
"color.interaction.disabled.bg",
"color.interaction.drop-target",
- "color.interaction.focus.ring-container",
"color.interaction.hover.bg",
"color.interaction.selection.bg",
"color.interaction.selection.text",
@@ -5412,6 +5423,7 @@
"color.text.muted",
"focus.offset",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -5465,6 +5477,7 @@
"color.text.on-action",
"focus.offset",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -5527,11 +5540,6 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
- "color.interaction.focus.ring-container": {
- "action": "use",
- "reason": "Use within the role's documented scope and restrictions.",
- "decisionIds": []
- },
"color.interaction.hover.bg": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -5592,6 +5600,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -5668,13 +5681,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/switch.js": "sha256-sdfSvJlKylAeDbhRKPMRUZ+piEOzKs1aV52BDvjOV/o=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-HDlOyl2v6b36H0XdR4UOL3DcPMLKHXlvJ/+7QqF1sVA=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-tykFKJCLb7EnJ9BYN4wbrmCaS+Vo3TtOvIKoQ1viFfI=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-bja8BqOYebPhAJ/84m7EUQysf7pqQJ3wMJ10wj4YBz4=",
"index.html": "sha256-IF4S7//PahcEGINA+vv8hBV9DUViABqK+t6Eyfb0B1Y=",
"README.md": "sha256-9Yw9PXXsjkMqCnWGR6UbhauQtlI0q6dR39YdGBbG71A=",
- "manifest.json": "sha256-azfUWxT0aJAZbSMDC8j+254Za5Ieti9Bg/VERoBvAAo="
+ "manifest.json": "sha256-OFJ24mA3FGRFr6uPfF2LmntQv1DZ3QC6kX3ojsHSbsI="
}
}
},
@@ -6236,13 +6249,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/range.js": "sha256-UOtb5bcowunT33yEodiHV5YKGl/OTUl5qSsO3xxwSHY=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-4ayZ4hpLNMgckII249GLN4LXptEvABeXopUcVCG8gLc=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-F3TYZf5Pysp2EfVbSAxBHmgiviXyRS3/dKjUdvZrzF0=",
"index.html": "sha256-1VRc632ZL0iJ4ZwPDOH9ZKFqS1JtFx995UBRKpNUDTU=",
"README.md": "sha256-lW1eqkbbrr3cTilmwEqgWHViJTPEMEDqDOHhsAizE1I=",
- "manifest.json": "sha256-fHyq5yxlVPUJAia5dDQw2XSMiqzkabED9NCkkaQYwAw="
+ "manifest.json": "sha256-o2Hwo+ooUG8sME8FECrTFPiwMKQ+pfuzAxM7WzvJYaU="
}
}
},
@@ -6627,13 +6640,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/fieldset.js": "sha256-NnApETrqjlE4MbJmLICen1VVGenfbkiqjiNh9jSLgF8=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-8VS+tXfjHW87aIScNUGAXsrsJ0qwScONidsZFMMFNh0=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-Z916I2upHIzzffRAz/6w6FSTBwegAd+L49E9Juck2fo=",
"index.html": "sha256-FbUV8k7YOMMErf8en/dGZNZE0nkjJvqan+FfQLgevVI=",
"README.md": "sha256-dNh39iesY0kLTE75KP+a0WhhHDQpT+j04MoZgMmV4F8=",
- "manifest.json": "sha256-vjDOby1AN0RSnUrP4QsHLHcfRJyUbikUNg5PG4OE66s="
+ "manifest.json": "sha256-r7m9/1YlVtiwr0q2D/kUcuUOyR+zBS0gCpQeFJY/T/Q="
}
}
},
@@ -6837,7 +6850,6 @@
"color.code.caret",
"color.interaction.disabled.bg",
"color.interaction.drop-target",
- "color.interaction.focus.ring-container",
"color.interaction.hover.bg",
"color.interaction.selection.bg",
"color.interaction.selection.text",
@@ -6864,6 +6876,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -6938,6 +6951,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -7031,11 +7045,6 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
- "color.interaction.focus.ring-container": {
- "action": "use",
- "reason": "Use within the role's documented scope and restrictions.",
- "decisionIds": []
- },
"color.interaction.hover.bg": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -7166,6 +7175,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -7252,13 +7266,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/number-field.js": "sha256-XejyUXzeklfHnLge+zZzoxBqpQGWSXtTLGhXpkm4Sew=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-NcQq0uVZpogHRNRdmQQtShHxXmwI4M2nuuIY7BYYxhE=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-XO8T0IBA7SNqfrL29Rr4KPOzxW7QYgRQVO5YJ59Rmbc=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-wabUKPjMJ+zn/+oKJMogtcDlppICQ8zTGXEbhGwm+iQ=",
"index.html": "sha256-5LArzp8P8o/Sx/BfjJC3wIFgD1V0XbJ+7wgFK1xiKTY=",
"README.md": "sha256-ZNn4SinUkL66soe9hksIPf65yrk5SCJshryFP1N2GnI=",
- "manifest.json": "sha256-bldw1onB88sfmhNs6anlA/PD4j9IKl6aOkPzlAbg1Hc="
+ "manifest.json": "sha256-ssW4yGINr/O3q0aWXy3wkQLPggCSqERnGIEir1WW4c8="
}
}
},
@@ -7761,13 +7775,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/search-field.js": "sha256-HCnoLO1ZZvDEqeON+Ir7Q+XChuArNr/tJ7H+lnVTJPw=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-wwF2mPKTtvrFcPXYn8OoWoeJPj5KgkmPbjay/kNVq6s=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-HUFhtyi3m/bOmHYH5vU0uD/8e/TFVZ6EmUZzoucKCCM=",
"index.html": "sha256-hCiVxJ7XVQjEcEeSYLpYgSmV9Wn9MIgxJm1EWMzoeKo=",
"README.md": "sha256-aDgof37yYQAYKjMAPaaPxNDPtVVxOfCjHh2aT60B4xo=",
- "manifest.json": "sha256-MlEA1O4jbGz2/0lXtYTXRhzue/GO0CRrdRQUyq10ZFg="
+ "manifest.json": "sha256-S2bH4AZGq25e1jCO7LjX/5Jh8QxBywXthR1jA/vaBfY="
}
}
},
@@ -7935,7 +7949,6 @@
"color.code.caret",
"color.interaction.disabled.bg",
"color.interaction.drop-target",
- "color.interaction.focus.ring-container",
"color.interaction.hover.bg",
"color.interaction.hover.bg-strong",
"color.interaction.selection.bg",
@@ -7963,6 +7976,7 @@
"focus.offset",
"focus.offset-invalid",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -8035,6 +8049,7 @@
"focus.offset",
"focus.offset-invalid",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -8115,11 +8130,6 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
- "color.interaction.focus.ring-container": {
- "action": "use",
- "reason": "Use within the role's documented scope and restrictions.",
- "decisionIds": []
- },
"color.interaction.hover.bg": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -8255,6 +8265,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -8326,13 +8341,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/combobox.js": "sha256-7kydwJcVW8U2c0ssJPwbR84tdqvYPN/lFqBuOGeDQpU=",
"runtime/chunks/navigation-BfNzDYZB.js": "sha256-OhGJWNOz3aZxPAacBgEhAFmBLRt/BGPr7INBjumqyQo=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-7Br4xmCcyfgXyjiq25+JY7SY8r5G/VLEzsNt6HBlB7k=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-8Hkgwo0uaQUx8y4ghR6eYfsYL07GWC6VT0p+F/wavGo=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-/SDEtn3D/9kfnULtpHPFEgK1FAkmwe+77gdxlWNewhY=",
"index.html": "sha256-p9Z0Z0qJkFi41Gxp+ZcP2av6zsHe4VtOAtgfxnDq5YE=",
"README.md": "sha256-d6hom7buY1pZpNug4Bx9SqSXvSLDY+cq2xwlZ2Fei/U=",
- "manifest.json": "sha256-GTacDO1sEuZ7w5WJ08WkaWKjRm36EQJ2SMRHwKQHAWo="
+ "manifest.json": "sha256-RUQ1sIbxefSfJYe8WdBBceDzXOAEpCnRJ+MYzWfZjIo="
}
}
},
@@ -8529,6 +8544,7 @@
"density.compact.icon",
"focus.offset",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.caption",
"font.line-height.ui-md",
@@ -8621,6 +8637,7 @@
"density.compact.icon",
"focus.offset",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.caption",
"font.line-height.ui-md",
@@ -8896,6 +8913,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -8988,13 +9010,13 @@
"runtime/components/multiselect.js": "sha256-MllSXtT35z9jg4cXDS6YzVpSLSEHEdFav9snvf+mVPU=",
"runtime/chunks/advanced-CqBF0dSb.js": "sha256-ozOzkRU6IeVGBqU3XQ0aLledkAi9vcs8dJdMQutVevs=",
"runtime/chunks/markup-DeQ4bEMR.js": "sha256-Eyyx7MKBoqXK4i2HaVUQhKUM066L2wIggABt6jAdgas=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-OdOVY82/KYMEbbzSxLU1DnV9RhLbEXpdY1Sgy6ylGwQ=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-mNyp6sPjM1B458gp8a1MSGzOFHVesIqX8cVV9P3tth0=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-1E4hftJizWZX+Gn6uhOJBXC2VAC62t50q2kwRpgS2pQ=",
"index.html": "sha256-0lrVFcwbFER+XauYVRXJkM2wQcvKcobwcWzQsL4OQM8=",
"README.md": "sha256-754Tt+bveWNGF8niAMoHQEB7D8SGYGEJhu6GpbhKpiU=",
- "manifest.json": "sha256-JO0I7l2R7lmALfslDFelOHRv+78GSN5i+QKxxHtGjqo="
+ "manifest.json": "sha256-WLNk02zbl7ejlxNDb1VMCw8PT1jX0Ms54lwRfvRFp+g="
}
}
},
@@ -9192,7 +9214,6 @@
"color.code.caret",
"color.interaction.disabled.bg",
"color.interaction.drop-target",
- "color.interaction.focus.ring-container",
"color.interaction.hover.bg",
"color.interaction.selection.bg",
"color.interaction.selection.text",
@@ -9219,6 +9240,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -9290,6 +9312,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -9372,11 +9395,6 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
- "color.interaction.focus.ring-container": {
- "action": "use",
- "reason": "Use within the role's documented scope and restrictions.",
- "decisionIds": []
- },
"color.interaction.hover.bg": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -9507,6 +9525,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -9588,13 +9611,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/date-picker.js": "sha256-6V4hlflxeVpDoj+uuaVEpTKm1ZKIyCYAiivLhpESyZU=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-cC7XtaKYhgqTcB/ci7nCK8PcvCKw0YeBRbnpCFHJ6ZU=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-17l8tm/NKV8wNhq8EIPnmw9/+K4egrcSbiuLY63EpUs=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-Nho5WRdNWOIx9zrVkZR8s5NrC95hgRBVnvDTdnZ7qoo=",
"index.html": "sha256-SxAGYroKCEemIb+5PImBbe5DAU1pOu9frv+8yu3oY7c=",
"README.md": "sha256-7Nf1YMBxm1cGzO+rzOKvfqWgRfugAjR+6/WjnVo2qpc=",
- "manifest.json": "sha256-DB3JDMg5IALIVpVXGgw/hVsdY1I2kQ5XHdaNILtk0YM="
+ "manifest.json": "sha256-uB3MfKTg02uq8H1zMmiJcRNfp/M9DM+eb6TOIr3JB8M="
}
}
},
@@ -9778,7 +9801,6 @@
"color.code.caret",
"color.interaction.disabled.bg",
"color.interaction.drop-target",
- "color.interaction.focus.ring-container",
"color.interaction.hover.bg",
"color.interaction.selection.bg",
"color.interaction.selection.text",
@@ -9805,6 +9827,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -9876,6 +9899,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -9958,11 +9982,6 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
- "color.interaction.focus.ring-container": {
- "action": "use",
- "reason": "Use within the role's documented scope and restrictions.",
- "decisionIds": []
- },
"color.interaction.hover.bg": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -10093,6 +10112,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -10174,13 +10198,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/time-picker.js": "sha256-8R5WT2w1+ieYWJkWby33LbGCbBuQiWHFaETY+vXANpc=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-2s5SaHG9dQPlt9Hz78tPTWZDZz5kXliFR2zE0tmPbus=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-fySG8CnltTPsU5F0+8Cbt+YUVtEAU2AAkDFqezc416I=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-RLfLhDEtkzyeISgOb1Njmp8QsxMKjIUzebwrMAg9GNk=",
"index.html": "sha256-HBltgH+aaDfBk6fcYX4waQKdoApT3zk0+wUOtaTyO0g=",
"README.md": "sha256-bK7PieiUKZ/3zwSldV/HlWMak7kwtWyvgpYy1YfAmbM=",
- "manifest.json": "sha256-A8dIwiYn2nlNCuNvQObX2Iws9rBDL/ID3aqTgjN0GjY="
+ "manifest.json": "sha256-ZfgTk+5T5oSgattbFb8EAUkGjjef0FLON6fIE4q4GCw="
}
}
},
@@ -10369,6 +10393,7 @@
"focus.offset",
"focus.offset-invalid",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -10459,6 +10484,7 @@
"focus.offset",
"focus.offset-invalid",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -10737,6 +10763,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -10808,13 +10839,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/file-input.js": "sha256-kE0QDQfY2i/MZLrABzvzfCatNUO8IQsU+q/AXBy6hW4=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-r2nu02Ni7aaSzV1vpVpQpVBMSQlq1Vnl3xedr7c6Xl0=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-39WZRXEdIS4uIHh7bXmFulEjX4bGk2S3+7jZc7VyC/w=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-3MysNuXXyX6HzlWv0wFhnto4CU9Q/n0JHK2wx1ufwbE=",
"index.html": "sha256-Mruf4SRnwaZ2RK7LaKRse5q9c4QKhDHgEgCAG4hyL7s=",
"README.md": "sha256-fT5UasqXVH/Um8vNgVGEXNG0Pk7WZ4Aq+K44FBlAdpk=",
- "manifest.json": "sha256-X08YRjuyyMs/lhABC8jyT6hAh4AhRXBy9nRCGzLest8="
+ "manifest.json": "sha256-ZlS6DvxSc1HK7pDLkYkz1tr2T8iyiVuQT+MNAj32HJc="
}
}
},
@@ -11388,13 +11419,13 @@
"runtime/components/repeater.js": "sha256-S5GJEE4PdeXjexdZXmIgJnjsOURVZHpQCSJzc+huJXc=",
"runtime/chunks/advanced-CqBF0dSb.js": "sha256-ozOzkRU6IeVGBqU3XQ0aLledkAi9vcs8dJdMQutVevs=",
"runtime/chunks/markup-DeQ4bEMR.js": "sha256-Eyyx7MKBoqXK4i2HaVUQhKUM066L2wIggABt6jAdgas=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-rx26lMPjdf1Z/n5dSt0W680aeH4/Vf/JHj+aVD7Yd0g=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-DSCQzrRbDwFOKtw5YmpR+3oYWMIBJFIPnJpes5bSMPY=",
"index.html": "sha256-NcmqHhIALqiMTfxl0qPl+bYykJcUXvHzjXqS4Po+QCI=",
"README.md": "sha256-iFFjPHWI+gh/aJ7+flDL4I/Qaclwv1yCfGRuJ06o6tE=",
- "manifest.json": "sha256-P8lkMtyJPbMWrv+ToSQl2uSJvB45XkEbaJEwGS4Icrw="
+ "manifest.json": "sha256-NrLOtQpkc1mMpis4qt4+A5l1/BbQDwknMjXrmGKQP8s="
}
}
},
@@ -11562,7 +11593,6 @@
"color.code.caret",
"color.interaction.disabled.bg",
"color.interaction.drop-target",
- "color.interaction.focus.ring-container",
"color.interaction.hover.bg",
"color.interaction.selection.bg",
"color.interaction.selection.text",
@@ -11588,6 +11618,7 @@
"focus.offset",
"focus.offset-invalid",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.h3",
"font.line-height.ui-md",
@@ -11678,6 +11709,7 @@
"focus.offset",
"focus.offset-invalid",
"focus.ring",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.h3",
"font.line-height.ui-md",
@@ -11815,11 +11847,6 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
- "color.interaction.focus.ring-container": {
- "action": "use",
- "reason": "Use within the role's documented scope and restrictions.",
- "decisionIds": []
- },
"color.interaction.hover.bg": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -11945,6 +11972,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -12036,13 +12068,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/wizard.js": "sha256-iMzWia0NibbI8OZR3lt0VNBXQXq/OjK7Mz8n9BHkt5c=",
"runtime/chunks/forms-CE_hP1hg.js": "sha256-uOnoMuSkUbm9C/GfR+PDLYCykyHOQ1Ni7g59c4YMOS0=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-dbs7z77ZMyB5via+UcpI8DKAl1gPwQO5PnMB4GL8ANA=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-DfWE/GpjBHHnAxchKcu5pTgCo39mSS+V9uDHjFqFwmA=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-T5EJ8DcqnD1rFEoCwvdUpmBCh0hH9dJSmq5oOkC+mi4=",
"index.html": "sha256-iWmkWU3qxvtjRPPPDLUFT5Sd9bw1krZug4ntOGEYRIU=",
"README.md": "sha256-B9klMh35GlqO5l2mxI77I6x2Gwfl8AMNSH6P+up7GdY=",
- "manifest.json": "sha256-YCzSJskJMSjdynux2FW49yDJDlfm4KyiiZo+CbEYtx8="
+ "manifest.json": "sha256-8bKVU+eXIHG9K1SmV490QnI4e1Nh3IvBMLvvtXclExE="
}
}
},
@@ -12238,6 +12270,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.caption",
"font.line-height.h2",
@@ -12374,6 +12407,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.caption",
"font.line-height.h2",
@@ -12805,6 +12839,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -12926,20 +12965,20 @@
"copy": {
"directory": "copy/form-builder/",
"files": {
- "runtime/register/form-builder.js": "sha256-AH2z8TKkGbsbFMHajeE4JxTg4tjDr5gEOwjyNAIVZvk=",
+ "runtime/register/form-builder.js": "sha256-uhrQXJfzzRwy/NWlSa8twm1Rtal6DvUNBSVYUjWEPm0=",
"runtime/chunks/element-Dovcr9Ky.js": "sha256-7tXEQrcJPBXSDlmCqor6zZVtsFMvL54mFXd6XSTVzQA=",
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
- "runtime/chunks/form-builder-BKs59W9y.js": "sha256-dY5vxMe1vQGS0OppYA63xRxadXFqVZOczLxh6Cdman8=",
- "runtime/chunks/form-builder-CqcTkYZe.js": "sha256-kRXlrq4rK0PWiZHwFQSLuZftI0JuCq0ooYIuBhJ3L+M=",
+ "runtime/chunks/form-builder-DVUkImzv.js": "sha256-V2ZfoyisXIYzVXpLx4kLWUK2e1Rk1cZBX0LsAXk+zb0=",
+ "runtime/chunks/form-builder-D-fxaPbt.js": "sha256-pGvIRKzGVvB/+f10ioX0JvBxi30Mgfqo/e4iWophf+c=",
"runtime/chunks/form-workflow-BKRLylvq.js": "sha256-LcDxqsGpnid91QErVgWLIaXtB5KQS8Uad6Q2shJ1Ohc=",
"runtime/chunks/markup-DeQ4bEMR.js": "sha256-Eyyx7MKBoqXK4i2HaVUQhKUM066L2wIggABt6jAdgas=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-MnUc6KN0qw+qINoU13CL+UM9TxKE9DfaVaeUs/Fy57E=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-AvaSTsUjkZrvH982LEeySHgVpBYhI16Uh3XGc3F36g4=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-WUjDiy4tZKp/CS/g5I/hIUQY0Mci0zrItPW5k4K7As4=",
"index.html": "sha256-640gpCzARRbVwXUct1TM0s5GcegFiYevcWBsg7VSOqI=",
"README.md": "sha256-MGlPh4CEW6DLecBSj7Ym9ww3NAGe8r5V9uANRpZLY48=",
- "manifest.json": "sha256-4eN/Ayvb9g/4CHDNRnxDuFj2QMloNoJZ7DigYbCeyW0="
+ "manifest.json": "sha256-2zG5qboQ6uw/klS7bKck47Ppd6FBnKmrM7PntK2qO5c="
}
}
},
@@ -13348,13 +13387,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/tabs.js": "sha256-2AWArhhBdqbiE1BHWeiumCgXyKi847dzv/cMGGfCfuA=",
"runtime/chunks/navigation-BfNzDYZB.js": "sha256-OhGJWNOz3aZxPAacBgEhAFmBLRt/BGPr7INBjumqyQo=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-fstv2PtC0k8ABx0bciCb6VX0pPTRl3oa8iGdR+6QR0Y=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-xe4UR+a4C9oNodr9UlW5OGE5DR5R9JErwW0UAalo8oE=",
"index.html": "sha256-Lg89PWgkBGwJzhoQfiPykrsJ82dYys7yJEdQ1+tHpWM=",
"README.md": "sha256-uBwdwc6EkHrqha/dCs9PWntoU1l7EAJb7Y6nx+zzrqI=",
- "manifest.json": "sha256-h1ykMepGUQPW/IBWeIG3wekA5Ik/VZZGdXW8/5eq0/Y="
+ "manifest.json": "sha256-kVK3I1B40mnDE3HYRpkZoZsMGiQXKNNujC5r2Ein0kk="
}
}
},
@@ -13697,13 +13736,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/breadcrumbs.js": "sha256-DgJ8uy8nkN1QOm3/zq3cYvs7xmhXCyPkXdhu3CDEE00=",
"runtime/chunks/navigation-BfNzDYZB.js": "sha256-OhGJWNOz3aZxPAacBgEhAFmBLRt/BGPr7INBjumqyQo=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-+Zc2EEKW9OfZl8s+wFiHlzjJHlyVTyGwZDbPlyRKx4A=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-W9qk0XtcetNK1me7748lByEMSMUZyP6NT//vet/Kt0I=",
"index.html": "sha256-Q8aZfYganYA/1sF70oMXKr7Fn/icqzSWVNlbxC7x00U=",
"README.md": "sha256-KtiYxcVwfGDIDiTnYI/c2MhmVKez7eLztyU55QJQXgs=",
- "manifest.json": "sha256-ueISJuY31tOa5XV3BZcJ0JRiWkClTX+lyFKzdCvc+uc="
+ "manifest.json": "sha256-mFILh4cSbcgJsN9P/3CdWOtO8z6q78BM6xM2IwcDVxs="
}
}
},
@@ -14091,13 +14130,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/pagination.js": "sha256-B00TORk80D679cwO2BDfd3MFyKRhgzAoaWxrqC1AoYs=",
"runtime/chunks/tables-Cjr1EIJz.js": "sha256-K6BF6M6xNawgWdL+NIcBRZmY98j45o69tBI034Ks4Bg=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-Y82QrGBuuCOolKEvjfgUe1uRkUY8RAPoLEiVsEUahxg=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-jp4BjPewAxszUnraKXf7iG6Zty7ZB7J8SdFyHQg7hL4=",
"index.html": "sha256-QfAgrl9jbgESweQA3i2v7JR2ghU8LgF8X0cY9hqDnWY=",
"README.md": "sha256-CkmYa5gHgFCQLGpkV2WpwdaxjhezkCTRRw8d9KDRUqg=",
- "manifest.json": "sha256-zDt5OOHa/vu0wBtxh8xWe8JSXUu8J/5evpDRTFQQBps="
+ "manifest.json": "sha256-x1Dl/OiiQvTkRN7T3KeWtti+OiQ4QYdzK9A+meEFUkM="
}
}
},
@@ -14533,13 +14572,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/sidebar-nav.js": "sha256-DZRlRYGAhBJm3yZ1nqAoW67+PcYUqE3uCTEEnKa9NFQ=",
"runtime/chunks/navigation-BfNzDYZB.js": "sha256-OhGJWNOz3aZxPAacBgEhAFmBLRt/BGPr7INBjumqyQo=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-LJ8LLDvQsYO50EORdep12yfyTFwnO4BxbDzOwHYpciA=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-LBoiPSLgtVIozM1wEFWbV78DaFWbIW+6OgOjaCSim8g=",
"index.html": "sha256-dOEwMnbaj98YMfD6CXUGCi5NU1carEGBEl7w+wp1Aok=",
"README.md": "sha256-QjtvSq2sHwF8bsMsDu3BpvOyATxZ0oanPWICItjaETU=",
- "manifest.json": "sha256-Li6ZjxbsR1RxT5R9/zKwHLZTyxTunFX9jqRIrU0QFb8="
+ "manifest.json": "sha256-Mq8TmmhQW7izdJkcbTYoqpklyKcc0csRynDWThvLjP8="
}
}
},
@@ -15070,13 +15109,13 @@
"runtime/chunks/navigation-BfNzDYZB.js": "sha256-OhGJWNOz3aZxPAacBgEhAFmBLRt/BGPr7INBjumqyQo=",
"runtime/register/menu.js": "sha256-6CvU7Rei9lC+olXvluxdbCPqh46GrPSvB2MGiudiMTk=",
"runtime/components/menu.js": "sha256-As/aVex/jKXrmY4x/rG0tVMVUij8ZLPXK0kKS4ZBpSQ=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-zD6jRNAjuf7XM9+QaxwzEY+F2cFUrQbgUKNLTCc7Q/Y=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-MRU95stqvOm7gd3wzi8XadrYOLU9MRKqdwFO/bmSaPY=",
"index.html": "sha256-AJ2jXzyPYjQufetc6mGuf1SQv8HGS9+yyaOcQo9pOIQ=",
"README.md": "sha256-jPzt7MdgG4yEEJJ6qWZk3Cgw9KNNNHEKkwz/nnKK3co=",
- "manifest.json": "sha256-fvYtHYd1COEZj/FavW9Fo5PcEOIaI9yRebWxrwhsUag="
+ "manifest.json": "sha256-53nOpYbwMvj7JwamCeotFOeokndDQ55A3ILDO7DPpGs="
}
}
},
@@ -15606,13 +15645,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/menu.js": "sha256-As/aVex/jKXrmY4x/rG0tVMVUij8ZLPXK0kKS4ZBpSQ=",
"runtime/chunks/navigation-BfNzDYZB.js": "sha256-OhGJWNOz3aZxPAacBgEhAFmBLRt/BGPr7INBjumqyQo=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-k4+o5GOHUM88StftYskfdyFUCI7mkb7z/Q98q6IVoLs=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-0SXVO1pxUxzA5mgZzG5YXw21f3G/n81DtP3vy14Nv5M=",
"index.html": "sha256-nXwk+/iADkSMB6qGYcl8yRJh5+nE6XQAdTdECvt4i64=",
"README.md": "sha256-ICc5PzI3f6/Kpyf9KXWame8aNgGPR8JKtgBhHc9HrsE=",
- "manifest.json": "sha256-9NHbdHafr9UwBLqJLF5ddS041hMKBftk16inMfQXuP4="
+ "manifest.json": "sha256-7NE3NN6dzqA+fZubsLKGczk7Cdf0i+ZIiYczsBtqLoI="
}
}
},
@@ -16254,13 +16293,13 @@
"runtime/components/command-palette.js": "sha256-GlMjxlVVzdC74Yr4LjWbLwXWGrHkFnjBaJ4o9rJw9DE=",
"runtime/chunks/advanced-CqBF0dSb.js": "sha256-ozOzkRU6IeVGBqU3XQ0aLledkAi9vcs8dJdMQutVevs=",
"runtime/chunks/markup-DeQ4bEMR.js": "sha256-Eyyx7MKBoqXK4i2HaVUQhKUM066L2wIggABt6jAdgas=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-tiMnZi/dRu4gB3RP0zxXVpTrTvFZsCYaugfulxBVhTk=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-mNRkLE+yYA4PARM4rv5bXDj90Oq8yxQLPgoUW8bX6ns=",
"index.html": "sha256-2yjQF/1liVxnaJ1hZ9hxFhuMt/x3P0EkNlqVnXroNJ0=",
"README.md": "sha256-KLn7bklioLvnV4bRDAgf3A5aqqCSezXa9kKARSYCUcw=",
- "manifest.json": "sha256-73hcJgww/vreos5t04p67k77Y1tsq1TKj1LfllwbXVU="
+ "manifest.json": "sha256-Wn5fthP2fDEfsVqcBgjyrGiPjPDFsg8Sp5P6ravF3e0="
}
}
},
@@ -16597,13 +16636,13 @@
"runtime/components/tree.js": "sha256-mYl4DYRuChSjXkRwM7LaJ31aYQZlvzP0RgTYmuNdC9U=",
"runtime/chunks/advanced-CqBF0dSb.js": "sha256-ozOzkRU6IeVGBqU3XQ0aLledkAi9vcs8dJdMQutVevs=",
"runtime/chunks/markup-DeQ4bEMR.js": "sha256-Eyyx7MKBoqXK4i2HaVUQhKUM066L2wIggABt6jAdgas=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-znFzezcYcv10Qwb2tH/UwaG4XQgCXophAwo2Z8cOiyg=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-F1zSdM5xw3/jlndjR4iQRRyZ7K9gfkgofh1Oin9xUAo=",
"index.html": "sha256-/VmRV653lNaKNt7NO3oiJk/gDJfd6DAwSN1hvX6+viA=",
"README.md": "sha256-rkAg9VO8TxgNCrXXP8dhUJ24Zori5pT/6k3w7gj4ixA=",
- "manifest.json": "sha256-xJ5YVjzApCdc/f8qc+rs3uRCT9DfNBT1TqPYogGUHJY="
+ "manifest.json": "sha256-YLD7hdWdnhC7if/nXPx4PbvLAVhJzPToi1XtDhnrvik="
}
}
},
@@ -16919,13 +16958,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/disclosure.js": "sha256-+8hk74Zg9ZUq3AstqnrP14hMWYJ2J3MQ8RCtpk4njOs=",
"runtime/chunks/navigation-BfNzDYZB.js": "sha256-OhGJWNOz3aZxPAacBgEhAFmBLRt/BGPr7INBjumqyQo=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-M/UOvBwScEgDLtRZmuBaxCwOBb1g0hkfyHqaxsEDfHk=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-ZbpW/j8ZGKofIgL/uVEO47xXhxXmS2mrK5w32n/BWZA=",
"index.html": "sha256-WhPsfoYZDJ7CShvFToWy9ysUDXDtzvu7SXHI+dsddnA=",
"README.md": "sha256-eHT7DdGUFZxUFoiTNsB5j6dKCRG6kf9fT0gY1oSBy/8=",
- "manifest.json": "sha256-7FeobZEK1MIlzN/Qb/FxsM8X6iVLI3xEmPbgLq93UCc="
+ "manifest.json": "sha256-fT4X4WdaVt8x1AYApDFPMxSnPonv85/tK7zlrSzKP2o="
}
}
},
@@ -17218,13 +17257,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/skip-link.js": "sha256-MomchP1kmj8/eRX8uVLTPeXPPhyYI18353abxwxtqTo=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-AX9f8HRHYyMt1utmAsrIP+UncKsDILTwMv4qUMxNku0=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-TllH5VfEO0Xn2+KsNK2k/W4RJWPv9CVLWE38btvoOpw=",
"index.html": "sha256-g9qP8QdXNXioXgABunl8DwcIBtkCTZH2B6+LuBrOPX0=",
"README.md": "sha256-YX3Ch7JuUJRqIpsiYPlIc/09irmjC9OLqMTSPNUidYM=",
- "manifest.json": "sha256-Cc64YD+9+04pEDbmTkOYQn2WgXyorjjK3s9dPDl4lZk="
+ "manifest.json": "sha256-1NcW/OlCZEblXgeU6vKlBRBKsbfNs373TU8RZ7wkVS4="
}
}
},
@@ -17612,13 +17651,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/card.js": "sha256-CE1Pt81XkHCmaZj7t3LqXTUnuvHd4E3/Od5t2v07ltA=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-FIugfi7dJgtnME2RJdIYZUQl/3O/WVR1fu23onC7U/M=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-Rc0IwITP8X0cKscYMBt4LgzFbntPHkCAdDQ4xLh2LXs=",
"index.html": "sha256-2B88t8s0Q7ugu+AiqBFD2B4OGRlJDRiO0Sz6gtWNyJ0=",
"README.md": "sha256-7NvZudM1FuKwW/ZySKs98FmFwxwir6nLM/lGAvvcI+4=",
- "manifest.json": "sha256-3S0KS6wyJ2cEr9p4M5m0cwANysCtMtlatwNGyvFMngc="
+ "manifest.json": "sha256-2XK13WptYfBfmO4zj/H4BcYnoF7mSkyguyevGMBE7NE="
}
}
},
@@ -18028,13 +18067,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/list.js": "sha256-X5HE772qpMx/n9b3NU6shv9zZWfmY9cjVn/IPAjFFMY=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-rYecTkHR0B1N85CpEe58zzTavkIhRIQVzj50yKfdefA=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-tiKX+fFUPCsBJEryliaQ7y9RhU4zlh8aEqMJ0aSO8Lk=",
"index.html": "sha256-w1eB6AWS6U0cM/ElyxhXOk1yDvmU7RDilyxFWSKCjJg=",
"README.md": "sha256-lw1NGV62/UGys6imJuVkK5qPyHaJqiOgSEuHCgehwNc=",
- "manifest.json": "sha256-21rppk20HlB53c9O71xPkVP4mw04fFxgx1lGu5DD0cM="
+ "manifest.json": "sha256-mkuNeFJUVtv/GbnJ/JuE4eLi/KgaHrBIrZYKGKf4EhA="
}
}
},
@@ -18327,13 +18366,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/description-list.js": "sha256-yFwjohrGKRZXL7ylzdMxau2tHWLBEqlCrjhZFLoV5ms=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-rEMzb+R626s/u4B9UVumgQsD0pKkWBBP5+VSfJrPCLM=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-h2HPGz9Kz0LvMiuTC767wAQvYHOVVmffDECwh46tG0c=",
"index.html": "sha256-w9bAryqOwOepebsvi1B9fr1xN+O78bNPFqZgdwfg5do=",
"README.md": "sha256-RrAu5lsq7QsSDTX+KygEzIsHJphBaeLyKmqBc+xa5G0=",
- "manifest.json": "sha256-PcJ06FeOmRyLmgzRUIOHECJINDumCczoIN6nZO39PC0="
+ "manifest.json": "sha256-A722d6lpzaaVauj6llNVkcehDCNZ1uJ/VxGPXFh0xBA="
}
}
},
@@ -18796,13 +18835,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/badge.js": "sha256-7aVCilfmosfSHQDe+hY74Ms2tAC1jMlxtTExgZ+istY=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-au/P4qbkjvG1QpFUYQDc35IhSbbhmFRxoXhu7zPifn8=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-rXaOLdDbEK5SMtYsw5TegOMtcnLijmgtU07RVrvJx8o=",
"index.html": "sha256-vhJcM8fdSzyuaUlcyXa90v3Bjkc89EZicjoRTNChWQM=",
"README.md": "sha256-5TsNDY9d5k6gLYa4KQycTh+1uwvXsoF0XilR9xhKVVw=",
- "manifest.json": "sha256-8m5l7I70X8Z4BjZraEvIuDZcQVsbPpvXOcUrVrXjzGA="
+ "manifest.json": "sha256-lfdKrnKa4SmpXnVTmFFlIibrCBrmmbLJOMw/nQPSK5s="
}
}
},
@@ -19190,15 +19229,15 @@
"runtime/register/chip.js": "sha256-H45do+W8XNxsOyAgO7vOSM4Wm6HfTun0JETK6F/YGRo=",
"runtime/chunks/element-Dovcr9Ky.js": "sha256-7tXEQrcJPBXSDlmCqor6zZVtsFMvL54mFXd6XSTVzQA=",
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
- "runtime/components/chip.js": "sha256-zqlDj7D8NyN4xQ/pnlXuOTnA8NlRXPBwW6qG+JcjoDY=",
- "runtime/chunks/overlays-Bw8SSDKz.js": "sha256-YrX9CL2A48QwI7COQQ5anYJLPOxpKrIeyz+jtfp+T+I=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "runtime/components/chip.js": "sha256-S45gQt3C5/jkmBzAtETNlZkOIiP4jPQEUcJa7TAulk8=",
+ "runtime/chunks/overlays-BwgpF4jI.js": "sha256-NAd99OT4kDsFp8IHscKRus2jY6XRsq+GMzplWbJsY4U=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-358eNya4c7h47XJC5dFUZncxpjkl0B9HRfRfxwVS8so=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-yjXdYrZ4DqpcZ/ZDGxD0cgfYY/xqj0qeSkX1dJmVhfY=",
"index.html": "sha256-k4FZCUqK/d9sBff8dKJJwQW99u70Dw3zXRzcH3da314=",
"README.md": "sha256-Ay+51qOAHcbN22QHsMfcbrA/66D52crp5OlQCHyMYmg=",
- "manifest.json": "sha256-Q8H52ja9lyGWmgJRf4PF5LnCZDnnfHuopw5riaVv39I="
+ "manifest.json": "sha256-jLdxB1l2rwr2aWmhxNSGHq8lnhnkEa0aHplpAqVM+QE="
}
}
},
@@ -19484,13 +19523,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/avatar.js": "sha256-eST4r5/Ji77KAR4qwQ+HUIyQL67gllpCSiBqpODqeW4=",
"runtime/chunks/display-Jm9bAsnb.js": "sha256-qZb1g04piEwY3lfFJwMe+0mXR218ljtVi8mepWxrFv8=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-5uftL4p30t4ItPscyYR/4jS31cRz/VU0Ga2CL/3fjhg=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-R1Q+6UFu76jOlVP9cadBrMxVS3+Yb2JgIDkcnKxWvtk=",
"index.html": "sha256-0+odnlYi/Hd9a2qUTsn5PJwVUk58HsFdCUO9S39AFlg=",
"README.md": "sha256-u+Rv0zskk5yOTH1pAzZ2eB3pId21guCqbzSFwIC5pcw=",
- "manifest.json": "sha256-URCjMYwlCXYlGlrMSk3vrPp/2Oy/ymRJ61Q2YzoRhF8="
+ "manifest.json": "sha256-7cSHC4KBcMxLQPv42ZL0JrpuPhSgty2XcJpMsmLr2EU="
}
}
},
@@ -19923,13 +19962,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/table.js": "sha256-CcoLzw/lwTUDE+3sCYBoQQoZAlE++zhK1ZLZELpyYN4=",
"runtime/chunks/tables-Cjr1EIJz.js": "sha256-K6BF6M6xNawgWdL+NIcBRZmY98j45o69tBI034Ks4Bg=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-FsyIsB3w0mFPeVNG2Yq+D6/h7aeVKJpEALxaD4j3afY=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-eTlfzsTldT7TjA25qNYpX+MAAskuYiA9Y+zZW9/B+MU=",
"index.html": "sha256-A21rR2XTwrPTwfZuz8lsPvFXneXhrFjzL0/Xdpfmo6o=",
"README.md": "sha256-hZvyqPLVQoQuOKc7t2j0cESQRW84E8XfCL/ad6sXIdw=",
- "manifest.json": "sha256-s3K2MnIRnTkfAy1WFKMoL4efHGv8vdQcKCVTR9N5eso="
+ "manifest.json": "sha256-aoOvMgurbkNygqz8bKhJNTPJP69mv2XCbF0vQC6Hj9w="
}
}
},
@@ -20529,13 +20568,13 @@
"runtime/chunks/navigation-BfNzDYZB.js": "sha256-OhGJWNOz3aZxPAacBgEhAFmBLRt/BGPr7INBjumqyQo=",
"runtime/components/data-table.js": "sha256-Du0JOAv8n9YEK04c217gbbmS25D1Yfx4irEe/DIPLk4=",
"runtime/chunks/tables-Cjr1EIJz.js": "sha256-K6BF6M6xNawgWdL+NIcBRZmY98j45o69tBI034Ks4Bg=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-T5PnYnMx2i60rNgYfN/tfLrncLf9cAlC4gsLpnSw/b4=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-FieIuPCt66UIxpdAH0wuPBOrPEVXUqjJfyWMyCdO9nI=",
"index.html": "sha256-mdaJIGJ1LweEct6N9Nr+hCoVjZXODSmyFsSgII8UMzQ=",
"README.md": "sha256-bS0eRb53j0VgRsRbFv81sqclvoIS7Uv4m/FIBGXMqTw=",
- "manifest.json": "sha256-YC+eobPLgAutDoOERX3GiBuOt+tmkwZRHligHoQd8VA="
+ "manifest.json": "sha256-GB6Z2BPXYTzbG+3fpUblyU+U57Oo+t7HMbuDktvyyl8="
}
}
},
@@ -20829,13 +20868,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/timeline.js": "sha256-qOO9Ngp7Zj87zq3HaROWETcECMB8hz5rgR4ryNoEh34=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-Af6JACyiwzdqViRAgkXYbYmHSNOZKW+lyj7uVYBMHkc=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-pj/LmsP7e5l3NZI2ZWOLcerU4j0Vn1w2EloUpExz0nw=",
"index.html": "sha256-8pkUBLof0Lbt5c0AhMfnzIpsfpfVFIObjqvMlRbud38=",
"README.md": "sha256-CNaX7w50n7r2LnTaBiC5oWdtQN0tep2SK/Q0ggYScgo=",
- "manifest.json": "sha256-9dS8Y09MmdcfilejwoK1Kw46VATPPDKoea3xMoOlyTg="
+ "manifest.json": "sha256-Cp/aX8rCgoWSp/Q+1R94CXURwmtjEdOqpbYjPXwj1mU="
}
}
},
@@ -21183,13 +21222,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/chart.js": "sha256-hVyc1MgrIwRQZWPz61YJX6ScFRhDJTjMKtYEs5Xtxoo=",
"runtime/chunks/display-Jm9bAsnb.js": "sha256-qZb1g04piEwY3lfFJwMe+0mXR218ljtVi8mepWxrFv8=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-bZANhpWKREr2mT2bkDhKqg7tacAvTsBxyTk7F9aojeE=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-Wk7EuPuisom2ohEBkZvcgafrpN7xXzlCUaNrWq7BZEA=",
"index.html": "sha256-KOF9gaKfSWYWziOSnbA23zckGFW5yhlPXNWdth61Mc4=",
"README.md": "sha256-AvM1lRutn7M/qWu0sIsbdBF9wn5nT5Ag8avrXpfo9a4=",
- "manifest.json": "sha256-aCdCOmd73xQ4GZ1/TyhtoQ+UDkSqVrV6Otsm8YTPDQY="
+ "manifest.json": "sha256-T8FwAV71C8+glzT5Exdmn5GnPn0OOoUMkBfwSFLEY6w="
}
}
},
@@ -21463,13 +21502,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/kbd.js": "sha256-lHOj6iq9s2QEMIGqbh8RGMmnU1sbrGNw4+mbuKuvByQ=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-BOKm1Tw9r1muXSVI33rhSJD46PIEFVs790GKSMxz6a8=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-tpH9QDJi6WP1xXEjkGhicB0miKDe2fe69wAALVp2X5A=",
"index.html": "sha256-LueXjvAoEkpUVPKmWgpUPrXdj3mYXVoeh7xRosvVy1w=",
"README.md": "sha256-CY2b+9Xug3mHZLhawZDvq8BFYG/fjfij5F7sNanjAy4=",
- "manifest.json": "sha256-ZdQzusLaQI1eqBEb0KGCyUE3p/OohnnnziGlDVCsF30="
+ "manifest.json": "sha256-6C8IudciLXDnk+1aEd4JG6lcXtedYc6WmW2Ty/6aLuE="
}
}
},
@@ -21923,15 +21962,15 @@
"runtime/register/alert.js": "sha256-tioVtq6u1i9xQuPnmdCiimbU19h1/epCn1uitDhU938=",
"runtime/chunks/element-Dovcr9Ky.js": "sha256-7tXEQrcJPBXSDlmCqor6zZVtsFMvL54mFXd6XSTVzQA=",
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
- "runtime/components/alert.js": "sha256-viVrXu+dUgCAMDq7iuljYYljZLxreTt4cQ+40NUQ3Js=",
- "runtime/chunks/overlays-Bw8SSDKz.js": "sha256-YrX9CL2A48QwI7COQQ5anYJLPOxpKrIeyz+jtfp+T+I=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "runtime/components/alert.js": "sha256-ipEjIR62L4Lq8O1vkv4IzvYM7kLeFjfhYEw6MSL03pY=",
+ "runtime/chunks/overlays-BwgpF4jI.js": "sha256-NAd99OT4kDsFp8IHscKRus2jY6XRsq+GMzplWbJsY4U=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-5Dd4DFZ5Lg+H5ZcZnWfb8Ommsp9rKKRLJYR0cpgWWpU=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-QUAq9dxIFB1jlxB27CrSrEZKRLa4rC6qRLbWmR2t/ug=",
"index.html": "sha256-GQ2nYpJKuk1PCqh/falGa06i3ANZHhohF4LRN04wYwk=",
"README.md": "sha256-tx+34leZRjiZARWtxlnmDc9/6JPBGKFZl1od0IYo4kc=",
- "manifest.json": "sha256-Xr0PVAQg/cCG1sYsDsG/HtcuGQAX0No2RKYfPdwKhZs="
+ "manifest.json": "sha256-kfLZ6Ed6MWpW/NC7YEPk6XIFGV6XlM2LY2QLRwKNvtU="
}
}
},
@@ -22463,15 +22502,15 @@
"runtime/register/toast.js": "sha256-3boFTJqHNwJ4he43NpdsZK8ttLeqvz9HMoUtwFjVwtk=",
"runtime/chunks/element-Dovcr9Ky.js": "sha256-7tXEQrcJPBXSDlmCqor6zZVtsFMvL54mFXd6XSTVzQA=",
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
- "runtime/components/toast.js": "sha256-WIMDZ+G0PKE8LTL9S9wLE1enIZrIXAt4h0Isi5xnGTU=",
- "runtime/chunks/overlays-Bw8SSDKz.js": "sha256-YrX9CL2A48QwI7COQQ5anYJLPOxpKrIeyz+jtfp+T+I=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "runtime/components/toast.js": "sha256-1dFBmSju1EG6JDJzOQqZ+RK4CzRzFpUX0heoc0jbyF8=",
+ "runtime/chunks/overlays-BwgpF4jI.js": "sha256-NAd99OT4kDsFp8IHscKRus2jY6XRsq+GMzplWbJsY4U=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-uDOVAGMFD+o43PgFLYIr3brOp1t4nrDGrE8jaKF7S2U=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-2DXrOBOlEPzc9p3N5SEbw98qHHSMYTxlOnR6gT91kkU=",
"index.html": "sha256-pfILKUsTjhG02CF143yBVB1w9s3PoEzh0CXq+YfLKdU=",
"README.md": "sha256-Gqkqv+2L4+y8mTQfPGpUxoV4B+6QJazzN5XtXWfyj4w=",
- "manifest.json": "sha256-bCWPynWl0C2Bz5UPADBaW4C1eOSMaHaXHhVMpceGiNA="
+ "manifest.json": "sha256-J/MzG6VBxkvJz4mCD/WhkOmjE/OyKSOOaq35OLRHgnI="
}
}
},
@@ -22780,13 +22819,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/progress.js": "sha256-nQLxDlUaGyc+Y+OKp0jTGxlgHN79YT/NpaldZf1fxSY=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-UwXFHO6OA2kZ3cHUZ8xWNx21ZB+espmS0o/GDj19Q4I=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-Bm2XYmsDcMrSYl/yKw1emmfA++ea/EjE5wzSjdg0eyw=",
"index.html": "sha256-eR6RiF/n8XvphWFe6R1Htt1DNndZuhW1zRV0M5wb1lM=",
"README.md": "sha256-oXXC+n+f426Xr1+uHSEamfpzBwqmaBbe41P73puQ9p4=",
- "manifest.json": "sha256-JK2iNGnh1IThiaBBVY470y+/lPgXXy7aOJvAGd7Rlcg="
+ "manifest.json": "sha256-ClKitFzbgipEEFoMmP9TCwE3sQcHeF7tZZmaQ4ApCgI="
}
}
},
@@ -23083,13 +23122,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/loading-indicator.js": "sha256-Z0q8XmSpQgrwC0AcFNlCQIZSt8tVvZ/ZF6McNG1rtBo=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-ombtuuRs2PXpBfR+/B6paDohN3ODM1V0aNbRSzOcrmQ=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-yiCrGr/OXo7SakIH4qRV3wDHbj09EqyJ2F7eTQHbnbc=",
"index.html": "sha256-2D4ozePauDWxVekXfRHx66zP4agX8tbRUgjo86Z3WjM=",
"README.md": "sha256-YVFITjZXVN2sAQCTUcMZO5v0Xsc63owlmsQGMTQ42wY=",
- "manifest.json": "sha256-cP+54saIGncnKG1Boc+Akr3YR79g3QhGamC6uIhbxPU="
+ "manifest.json": "sha256-511UevIRo1OSrGBkW5Gh4y8RLBGe7H0AcklpfA2gx1w="
}
}
},
@@ -23383,13 +23422,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/skeleton.js": "sha256-WSpVLmYkqKadgGqtEfd4Hma86gL9cG2QQC4FW0BXHKw=",
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-Fdg05sQx+/Q5Ia/CN1d6mo9ueZkpbJnBwTnVSbNePgA=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-/g7jxryHfbaG3yxoxK8NfCh2k5U92wPPELD/107+2Ps=",
"index.html": "sha256-fI+dNiKndtDjzLJEq6oahe+GPWudTAPb9j0TFGRIf78=",
"README.md": "sha256-nzNnLPK+pu75MG+iTs+EMp/xOyJFTC/9GM9JCwIoCno=",
- "manifest.json": "sha256-/IlgtvilSDqgyjMmF2055DmrCe9e27wEIxyPXZ9j6zk="
+ "manifest.json": "sha256-WX4lCvlPYy9qxNWCosEmCWK61baKzKS+k0v8deIIjqQ="
}
}
},
@@ -23755,15 +23794,15 @@
"runtime/register/tooltip.js": "sha256-G4uAYJmQJk4eTEhF1uHV44mtO+Vefw1Onc1nq3+iWlU=",
"runtime/chunks/element-Dovcr9Ky.js": "sha256-7tXEQrcJPBXSDlmCqor6zZVtsFMvL54mFXd6XSTVzQA=",
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
- "runtime/components/tooltip.js": "sha256-MhBgu8Nu2Vx7dqARBvSKFOY+LCcOut1TAcB/5QSwPPI=",
- "runtime/chunks/overlays-Bw8SSDKz.js": "sha256-YrX9CL2A48QwI7COQQ5anYJLPOxpKrIeyz+jtfp+T+I=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "runtime/components/tooltip.js": "sha256-2j1hr66OBZli855FnMDI/StSj237p3llagSJpYZh1KU=",
+ "runtime/chunks/overlays-BwgpF4jI.js": "sha256-NAd99OT4kDsFp8IHscKRus2jY6XRsq+GMzplWbJsY4U=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-qYB8NrU6j0LSeluhANQt7hX4GwZJkfsCr7sElkRObAs=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-+kSohyFbJg7z8/YUnlkzY1UQAu9ZLX7qE1eFLvk/1hI=",
"index.html": "sha256-H8VqbExkj5zBn+UMGOUurqozbkho78wvT0O1LxdqEXs=",
"README.md": "sha256-gCdLT45+37bldGYfH9LhZjTXGX04d3jZOS7ARTD3bCE=",
- "manifest.json": "sha256-jnoOb2I9sRZsUnOtwqqwpg9QyVSFlW3K65GYFix39dc="
+ "manifest.json": "sha256-LgYhebHPFhpFKUfThuI/MIy50Dm4K0sCOohZna+hedw="
}
}
},
@@ -24331,15 +24370,15 @@
"runtime/register/popover.js": "sha256-NDvrOkPFLsVu6H7xsvbIrVzEyB991xTSx7kQeyplwJo=",
"runtime/chunks/element-Dovcr9Ky.js": "sha256-7tXEQrcJPBXSDlmCqor6zZVtsFMvL54mFXd6XSTVzQA=",
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
- "runtime/components/popover.js": "sha256-qVz5uQ2xxsSVcKXfgit5JgjSZ3kzPvm9/Mt3A4X1NEg=",
- "runtime/chunks/overlays-Bw8SSDKz.js": "sha256-YrX9CL2A48QwI7COQQ5anYJLPOxpKrIeyz+jtfp+T+I=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "runtime/components/popover.js": "sha256-JHzjjn0Oz3mo6v5yPi+1LrMA+ii8LIIozp+09bAkaIs=",
+ "runtime/chunks/overlays-BwgpF4jI.js": "sha256-NAd99OT4kDsFp8IHscKRus2jY6XRsq+GMzplWbJsY4U=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-xmMasEZmjEVePt3EbtGTGv48RqUg6XWxZKYkmzUQlQY=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-tBbkSUEedfklBWmTm/lh13o3rlYHe/9AGgvmXp+p/Lo=",
"index.html": "sha256-EXPyGAfu1NC/kmTVCftVrEr6TsOglaJBB5amGR0C4K0=",
"README.md": "sha256-2w2CMw7jTANV0wE6ux5POoe9QeMf/7BVerq3YrpiziI=",
- "manifest.json": "sha256-vLSWeJ0wMVfl/GLXwjSKBXs+QwU7ThdTkO5JaqXyML8="
+ "manifest.json": "sha256-UfxBNstpYhglBHK7OyfQRh4JKRMFL+ebtpX3VJJtlBM="
}
}
},
@@ -25050,15 +25089,15 @@
"runtime/register/dialog.js": "sha256-waqEj5W9GRcvFu/OpnJxmONEY3yiBYgB2Fak5uwMsbA=",
"runtime/chunks/element-Dovcr9Ky.js": "sha256-7tXEQrcJPBXSDlmCqor6zZVtsFMvL54mFXd6XSTVzQA=",
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
- "runtime/components/dialog.js": "sha256-mYfz6BnuRAPGKxNiVulnuJ4IEMvqr5BPqrNrZCRR5H8=",
- "runtime/chunks/overlays-Bw8SSDKz.js": "sha256-YrX9CL2A48QwI7COQQ5anYJLPOxpKrIeyz+jtfp+T+I=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "runtime/components/dialog.js": "sha256-zdWNMLxqa07G4DrP8cSpEYY3F05kRGbx8cg0OGyNzbE=",
+ "runtime/chunks/overlays-BwgpF4jI.js": "sha256-NAd99OT4kDsFp8IHscKRus2jY6XRsq+GMzplWbJsY4U=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-PL+Ntvoc1uooINO+TPwR7KzuU7dbER2pJdlz10y0UyY=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-wFFtRxUFWBTzxYOcblp+JjddYxJQF3QKoOb0/hIuSL0=",
"index.html": "sha256-Q/j50VjcxyfFKNml07quAEQPOpf3g/BvIyvycnVJuzE=",
"README.md": "sha256-qhTQOsunJthiAQNFRNPTJx74lX2dH6rh6jISELzgD5Q=",
- "manifest.json": "sha256-m5mXloJmQCM08+v8jrBtBzmVjcZabnvryBht9CoJb+g="
+ "manifest.json": "sha256-cQPHWgh7tPBa5qpFPuFVZYw7rUnSd7sGnX3JuT42ugI="
}
}
},
@@ -25763,15 +25802,15 @@
"runtime/register/drawer.js": "sha256-rA72wn/EhgwDqOffVBPLtBX9zTwVRgod2uadIlZcLe0=",
"runtime/chunks/element-Dovcr9Ky.js": "sha256-7tXEQrcJPBXSDlmCqor6zZVtsFMvL54mFXd6XSTVzQA=",
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
- "runtime/components/drawer.js": "sha256-jGdxQ8JnwAPl1aTJWnbXrRb0kPIs7kJZo5rIrmfBTF4=",
- "runtime/chunks/overlays-Bw8SSDKz.js": "sha256-YrX9CL2A48QwI7COQQ5anYJLPOxpKrIeyz+jtfp+T+I=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "runtime/components/drawer.js": "sha256-1YuAUa33ScDJX74NBdYbrkllPWZ0abGZL2M1hnFJ7A8=",
+ "runtime/chunks/overlays-BwgpF4jI.js": "sha256-NAd99OT4kDsFp8IHscKRus2jY6XRsq+GMzplWbJsY4U=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-r9vwT85nLqMxpyVzGQDrQIU3bpOdw5TleRvfLX3IVQs=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-RNAiKQJPioHCtfhMtqcsFaQFfwhKvdH+iIfLXOWo6QQ=",
"index.html": "sha256-E0Z5esPR0fYfy04CP3TuZwrK6CEw4DIxyD9vXPSkZAI=",
"README.md": "sha256-fOfwfTYC9vdlgQFOfWiigzqCKfrU93VWnGHVQW9kH8s=",
- "manifest.json": "sha256-O71hKP440tr3Fw93dJfDZGswP4WrnavbuPA4nRoGm6g="
+ "manifest.json": "sha256-GV8Gtw9LhFzPMB2UZc/a1dHPi1zLWQO+YC+I15+X1UY="
}
}
},
@@ -26351,15 +26390,15 @@
"runtime/register/empty-state.js": "sha256-O+XPQiZJD3SM6EGCJ9p7Ia3RwHie8uDXVlJd2Vl8f1g=",
"runtime/chunks/element-Dovcr9Ky.js": "sha256-7tXEQrcJPBXSDlmCqor6zZVtsFMvL54mFXd6XSTVzQA=",
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
- "runtime/components/empty-state.js": "sha256-OdxqAGZuSH7KdWGE58jWJBVQnd4azuJVXLqmIEKf/1k=",
- "runtime/chunks/overlays-Bw8SSDKz.js": "sha256-YrX9CL2A48QwI7COQQ5anYJLPOxpKrIeyz+jtfp+T+I=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "runtime/components/empty-state.js": "sha256-+Vgad2O/oKiGnSsGD63zlNKxCzqpHWhZ85dwct4yBx8=",
+ "runtime/chunks/overlays-BwgpF4jI.js": "sha256-NAd99OT4kDsFp8IHscKRus2jY6XRsq+GMzplWbJsY4U=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-BeQzoBMmZ//SCPym1JhwPfMM51a6wiO3oVtwH7lOOpc=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-j6rKuP4LmxmaKm47ZcfAqQ0LKMqN7l90HZwvUydHutQ=",
"index.html": "sha256-stJ7LYfCGn32eDmo6PzwFlZwtF8GlPwt4gCAQ4f6EfU=",
"README.md": "sha256-460PP03z7gtyCcQW1opIbUBVyz/wg3Dv8SyzbynmB2E=",
- "manifest.json": "sha256-+coWeqOocevShbs/IcuLNwwM7Z3ICGFK79A8oheiiXo="
+ "manifest.json": "sha256-SwXdWKveR08lq9Winu+ekIGLE2x3MAh7AyCaam3WzhY="
}
}
},
@@ -26919,15 +26958,15 @@
"runtime/register/error-state.js": "sha256-7HAfC906Fv50aD7dtTHvGX8XoxDanaS7Xy+pD6+6JlQ=",
"runtime/chunks/element-Dovcr9Ky.js": "sha256-7tXEQrcJPBXSDlmCqor6zZVtsFMvL54mFXd6XSTVzQA=",
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
- "runtime/components/error-state.js": "sha256-SjO3330quFN81HjlZH31y/z5f1V4MNQewsgHCYnHvA8=",
- "runtime/chunks/overlays-Bw8SSDKz.js": "sha256-YrX9CL2A48QwI7COQQ5anYJLPOxpKrIeyz+jtfp+T+I=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "runtime/components/error-state.js": "sha256-BhughrbljbgIQKlE3iHBAZ5sfaZgHxDG49Pr3eO+qEA=",
+ "runtime/chunks/overlays-BwgpF4jI.js": "sha256-NAd99OT4kDsFp8IHscKRus2jY6XRsq+GMzplWbJsY4U=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-PkulOjRkq7PLGjfU346e4I1xzJqOFRjr9UgXNeugJLY=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-ORjrriOpBHk2VlqSsyeUSEs1medDwB5oaTT4RxrXLFs=",
"index.html": "sha256-oKMXjqXWa3C9B3nx3LWjOjaPYvvFEL4y4yUPyCiyHFI=",
"README.md": "sha256-Dl3lNTMlz4fye9SN1UJc6WVgA6BbWKgqHMIRpH62yOY=",
- "manifest.json": "sha256-JxwbDxIL6bhbIa230xaK7YZG+x1n9Zg8QFq1Ce62q7Q="
+ "manifest.json": "sha256-N+a/GsQDOXw7QW1cFBKBshKD4KXBuAU4VnjFbehtGA4="
}
}
},
@@ -27469,13 +27508,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/code-editor.js": "sha256-MMz8rm+dJT4XahXmR9ftmU0IhNW1NqLIHW7U3STXDPQ=",
"runtime/chunks/display-Jm9bAsnb.js": "sha256-qZb1g04piEwY3lfFJwMe+0mXR218ljtVi8mepWxrFv8=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-aa9zAzIlna+IPd+Xivi0WU385o/+RmhG5pRVR1vsE64=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-yXGoyQ6QC1zx9v7pXmaH1J2StJS/EEc6ZMqWAgdNj6A=",
"index.html": "sha256-2pHlO7mTG0Z1FySFL7jnRFIidQEfcMXdM+OtJBsZeXA=",
"README.md": "sha256-oP4WnaIDAzxwm22ndFvMgchWr7l/DH7YotacPAFZuO8=",
- "manifest.json": "sha256-34XB9GRIxMUKi/v1n3Xa3EwEByberTg3XfCVREIe3rw="
+ "manifest.json": "sha256-Gliv62pUcNQZDmCAj3dnM4zd9/wNB22wRElfkFRWlv0="
}
}
},
@@ -28065,13 +28104,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/editor-search.js": "sha256-aUfiB2u6bRwR1VhsFjANGyo6S0HHuA5lveVDShHVo3c=",
"runtime/chunks/display-Jm9bAsnb.js": "sha256-qZb1g04piEwY3lfFJwMe+0mXR218ljtVi8mepWxrFv8=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-EsEJrsGIZ88TEP4pXc0Jt3WQxhCysigIkd1ddeNbHBM=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-d4aAYzdcDHNmdiry3w1Y3xEHMEA6MELYHpoj25fZY7M=",
"index.html": "sha256-f7NqN883Z+7eUEbHFc9OPrlTwgcg/uxCcMTJm7xVNZ0=",
"README.md": "sha256-uCiQ7xpaMDEYDoL/7zMcafsbXKeQ+tnAyLmxgCMABh8=",
- "manifest.json": "sha256-QgKi5Ik6JIx1S6FIW4r5/dlBv+1Vooa/ZbYMOGxydmo="
+ "manifest.json": "sha256-qZ8a2YJlepZESLjviXuJSpOMbWFaQQBqKz1A+fkDFw8="
}
}
},
@@ -28644,13 +28683,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/diagnostics.js": "sha256-oEE2P+tyCuYFS8Z67kakU24ozr9nPJsXvN7ug/nsESs=",
"runtime/chunks/display-Jm9bAsnb.js": "sha256-qZb1g04piEwY3lfFJwMe+0mXR218ljtVi8mepWxrFv8=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-xWB/G9X0gadCbFJ8yqKBaXbBvMPSKyKrVUQR4dZZs88=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-oPPp/R+dnwC1tnH/Td+Hlrs3CRODUkA4Bvq/HK/fAUU=",
"index.html": "sha256-faTuPIwIaIe118O39CQtFz4nACEFH1MOeuPsBOwpHh0=",
"README.md": "sha256-zoebnEYS306DsFzwTsEnc2EoKA+8Dm/eyz4eTXdSnAs=",
- "manifest.json": "sha256-n3A7adYFaPqBEZMH83XHNGwVkvhllkBTQV+FLtmNDTs="
+ "manifest.json": "sha256-FFhKEoQxAEz5S+UL0ab9UQn/tr8+G5L0etJw0ucJnfc="
}
}
},
@@ -29171,13 +29210,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/diff-view.js": "sha256-mc+zZLXtFDZnF4okQ840vLAw4mC40kkmR920bUXfXfo=",
"runtime/chunks/display-Jm9bAsnb.js": "sha256-qZb1g04piEwY3lfFJwMe+0mXR218ljtVi8mepWxrFv8=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-zQ+2X33S+1rlKgj8VvnNJSfS/ujlxlYAFFAC3vC+8MU=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-t7cx4Y+4qhIPiwFbRPz+6U12N/CFATPTfG7/iZf85zs=",
"index.html": "sha256-qm8fbs91KUEOm2ss0XShYkbQLzgXVk9OpdrVHfg6Wjg=",
"README.md": "sha256-2/6IFU4JJZ25X3ZvCCwHM1P9pvt3nJHAUfxoS/Ubi/0=",
- "manifest.json": "sha256-z+BxcKKq1cJGYRwtESbjQpf5ymqtRempRqMUqEY4kKg="
+ "manifest.json": "sha256-Rdtj4Xs/jYIkUyj0Kq8skspivGcTqjSmvGsvvwj+XH4="
}
}
},
@@ -29724,13 +29763,13 @@
"runtime/chunks/choice-B7mo5Eq3.js": "sha256-hACG+H+nHbUf/wRpyOCQ5RYMwxhd/Fiv+PtEWm0+Bkc=",
"runtime/components/terminal.js": "sha256-LBmUT0u6uCLNgKHb3qON4Yl1HjbBCYOByCIC8bGXv2c=",
"runtime/chunks/display-Jm9bAsnb.js": "sha256-qZb1g04piEwY3lfFJwMe+0mXR218ljtVi8mepWxrFv8=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-qVvYtOU0V9tpTXLiTfobfn2Bv+Ec58ZxsvFuoOO3zqA=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-WyXNyoxiAXNq3bLZRmrc1qS2XzgHghN+5tO+9HpocVA=",
"index.html": "sha256-u2hUMomyNUZvWxfeRu+YXJNwoBZRQAU9c+Wlnmdt/uc=",
"README.md": "sha256-JMb0MyBFXbZ2TBIQrpRDNUjcH0R6qtmsRDfzwcOAY6o=",
- "manifest.json": "sha256-a2ut5/6sI3Hxhu3TSTLIpHNSL+kcEnFLqsiEP36N7H8="
+ "manifest.json": "sha256-neXCFwYNgbQNRYU4N4Hta6zirL1qhtE0fcWeG7fIHqg="
}
}
},
@@ -29931,6 +29970,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.caption",
"font.line-height.h2",
@@ -30050,6 +30090,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.caption",
"font.line-height.h2",
@@ -30427,6 +30468,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -30561,13 +30607,13 @@
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
"runtime/components/settings-panel.js": "sha256-2/vcKktPpt7/9RBfexqEoFAPjNDcISoi6AALg6/CVTw=",
"runtime/chunks/forms-CE_hP1hg.js": "sha256-uOnoMuSkUbm9C/GfR+PDLYCykyHOQ1Ni7g59c4YMOS0=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-KvYopMeuJv2HW0li1RcLpCJp645gkxeby6o5WD+bx8o=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-k+UkB8smqd63SQIr7NXfAoXvhCZooblbGmEzkIW0mz0=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-Z1ZqDdIXySN8gWG0bvhT8iMaa+GaOyHy/vumYpCsYt8=",
"index.html": "sha256-o83BpK03vkko3vqQPfArOayVjD634LtFPrmdQbjqbQ8=",
"README.md": "sha256-Jbd8VDlivmCdwjmixGLdZrE/QQ9xdJyk+UIIOcLDqZE=",
- "manifest.json": "sha256-WJU4OzQNvp6mP478QOWt8+2mRaVVTuyZocEvRs8BcxQ="
+ "manifest.json": "sha256-glRxHaC4hjeWK5Glb2QiPzfaoCEZGNucJs4m/mFeB9s="
}
}
},
@@ -30794,6 +30840,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.caption",
"font.line-height.h2",
@@ -30930,6 +30977,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.caption",
"font.line-height.h2",
@@ -31361,6 +31409,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -31494,13 +31547,13 @@
"runtime/components/select.js": "sha256-QSO5F4fiwtnnIHZ9/a9n62yVZRlGUIofNkw2oXYIzGY=",
"runtime/components/admin-form.js": "sha256-FVzHg1y71Fg3LptLCSedTH/NQIxijxfYfjfBaYWXGS4=",
"runtime/chunks/forms-CE_hP1hg.js": "sha256-uOnoMuSkUbm9C/GfR+PDLYCykyHOQ1Ni7g59c4YMOS0=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-Aha0xp86OpN6uUIQCjlXTYdzw2u0p0Y/dxNCx+gMC/s=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-N8dnCpPJJWG/StUZN68/NzU+Ag/vEyCPsjoHNJ8SMTI=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-TRLraonRxggrZcfXS9jlN+nTIOpRHiXbMKQNm8NbR2A=",
"index.html": "sha256-fCyv1GPEoas5phPBo4T3EhrTQ5U3/15ks0AZJQawjDc=",
"README.md": "sha256-bid+/EA6npftuo0cAZQP6rg+96qu7gNC4h/Klx23PF0=",
- "manifest.json": "sha256-0cFh6BAwKorLKq38Qi1CjI8uGgYupJJvet2b/DOatzY="
+ "manifest.json": "sha256-a7m7HYJXxCqHPyqHlBuYm7RbV324XwflktQL/o5zW38="
}
}
},
@@ -31692,7 +31745,6 @@
"color.icon.default",
"color.interaction.disabled.bg",
"color.interaction.drop-target",
- "color.interaction.focus.ring-container",
"color.interaction.hover.bg",
"color.interaction.hover.bg-strong",
"color.interaction.pressed.bg",
@@ -31729,6 +31781,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -31830,6 +31883,7 @@
"focus.offset-invalid",
"focus.ring",
"focus.ring-container",
+ "focus.ring-contrast",
"font.family.mono",
"font.line-height.ui-md",
"font.line-height.ui-sm",
@@ -31959,11 +32013,6 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
- "color.interaction.focus.ring-container": {
- "action": "use",
- "reason": "Use within the role's documented scope and restrictions.",
- "decisionIds": []
- },
"color.interaction.hover.bg": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -32144,6 +32193,11 @@
"reason": "Use within the role's documented scope and restrictions.",
"decisionIds": []
},
+ "focus.ring-contrast": {
+ "action": "use",
+ "reason": "Use within the role's documented scope and restrictions.",
+ "decisionIds": []
+ },
"font.family.mono": {
"action": "use",
"reason": "Use within the role's documented scope and restrictions.",
@@ -32263,13 +32317,13 @@
"runtime/chunks/native-BjBt1sUh.js": "sha256-UbG+1dCvUgpK1/vnx2xDtwwcG1dueRiV1iBEEt9oP7s=",
"runtime/components/filterable-table.js": "sha256-xbo/MykYle7VwG4ArKqnOAwxD6bA5BruTf9Mi33CxnE=",
"runtime/chunks/tables-Cjr1EIJz.js": "sha256-K6BF6M6xNawgWdL+NIcBRZmY98j45o69tBI034Ks4Bg=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
- "component.css": "sha256-YC1B05BSsIggrfF5/xkh1/hc/k4XIxz/QKMVNwcSd/Y=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
+ "component.css": "sha256-yuQ4f52VMqzL7ZWwuc/Ln3tYKuwWDma8x9yxx29wwLg=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-3PbF9wWtnKy3q07M9x690D730biEbSwu20wHAcvPPEE=",
"index.html": "sha256-L9dRgFL5Tl9EFw9DuTPQaPstK4H0R/A/bzroaL7tvHk=",
"README.md": "sha256-eYSWLSbTgjyr+5CUJR+E3qhY267Qh6rmF+5P40UanuU=",
- "manifest.json": "sha256-2S7hP420pJdNmeeJUc9IqsTnpSHptV2aRy3IL9jjvtQ="
+ "manifest.json": "sha256-F+gdcefkR6/o71zqiIj7kHklf7fCgS0VUCOM2+djzhE="
}
}
},
@@ -33243,13 +33297,13 @@
"runtime/components/i3-window-frame.js": "sha256-Xeo48w2qLhBiwCVHaA6whyxItZy/aAj1xHVCQHHnGhk=",
"runtime/chunks/compositions-D57dCsBz.js": "sha256-PEpI/vGgdD+LSznUd0iedSxxVE+5QxIO7BGKeQnCRjo=",
"runtime/chunks/navigation-BfNzDYZB.js": "sha256-OhGJWNOz3aZxPAacBgEhAFmBLRt/BGPr7INBjumqyQo=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-j6gn6V0mtTIbd0cJHobuNavfKnCi+dJ0Xg8IoZdHp/U=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-r16RBHw/9BhmfwHsOtPnFIkDRIuIAmlN+RpR9z4LXMU=",
"index.html": "sha256-vsi84+uGu4rv5NlM/V/to85JQlSDYVg0XKREuwBARII=",
"README.md": "sha256-C0hpJoSU0W6E5VFxM/5nRjno1clSop0NLti9ZjvJiO0=",
- "manifest.json": "sha256-RTBwBQLyeV3Z3yztEOFvw2Hk3dWF9jDPNGkIMo8j4MM="
+ "manifest.json": "sha256-ZM6DN1U/QXVv03lE6PE1C3Xo9uvGfOIGOvQZRTRVwhg="
}
}
},
@@ -33893,13 +33947,13 @@
"runtime/components/file-browser.js": "sha256-rX/Iibk2FD9zA2T7ojRVZgvx3P/v8vt8GOi0X/OOEOY=",
"runtime/chunks/compositions-D57dCsBz.js": "sha256-PEpI/vGgdD+LSznUd0iedSxxVE+5QxIO7BGKeQnCRjo=",
"runtime/chunks/navigation-BfNzDYZB.js": "sha256-OhGJWNOz3aZxPAacBgEhAFmBLRt/BGPr7INBjumqyQo=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-UxawfUHhz140JTldQCb8aDbVaLGRxrgbxNCkmCkXxmM=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-TbSmPr7cV31g3WqgPi6LboOGQdmgxz/89Tf/3ld2pfU=",
"index.html": "sha256-ghy6Hidly07DbSb9oIl+42dgKaIRi5V0gVlW8uwsoYs=",
"README.md": "sha256-pldg7PuzlPHL6J8L3tFRBhM4Mqi8AlcED3V2DXOXZRU=",
- "manifest.json": "sha256-zktP/nyG1VyLCn4r8rZs7H8IW/V4rWVynrIABSSFKoY="
+ "manifest.json": "sha256-sDEb+Xd1fbysaV5VsAF5sETImgwbhiDCMK7Jk1onlMI="
}
}
},
@@ -34567,13 +34621,13 @@
"runtime/components/compact-dashboard.js": "sha256-Y2R2ASCxDuMVCbBdUqOGP60JpwtPCK17jCjpQXz1hhE=",
"runtime/chunks/compositions-D57dCsBz.js": "sha256-PEpI/vGgdD+LSznUd0iedSxxVE+5QxIO7BGKeQnCRjo=",
"runtime/chunks/navigation-BfNzDYZB.js": "sha256-OhGJWNOz3aZxPAacBgEhAFmBLRt/BGPr7INBjumqyQo=",
- "tokens.css": "sha256-7A9Xv87HbmuVumnQtzllDxHGc2CPnurdpWWuBpEStJg=",
+ "tokens.css": "sha256-5qjJjnkE344w7HqhT83r9IAoE/nAgCcvLWhuvDvtb8A=",
"component.css": "sha256-7CRIHJNTDt06T3ztva5EpY4ytKr+vSsMZHxxolQ/+GU=",
"LICENSE.md": "sha256-qIhhY3s7J0Mo6RsjJ0tLGwDZv4hHq8knuhm+YGjpzh0=",
"element.html": "sha256-I++zY2714BqcfCh02WgcXCFwujrwXLK4TwP9wII+QE4=",
"index.html": "sha256-jCDMPy0iYNKdA2sWCK1pFAeKyhEr/jK4IN0ias0Drlc=",
"README.md": "sha256-6g2tbWoWmdPy5ju9eAR0VdQ5vp0GjEEftnqhmjoP1j4=",
- "manifest.json": "sha256-8HPA/m4bQRmM0HaCiKTayXG+ryly96Ex9sR87wOLabM="
+ "manifest.json": "sha256-JTEMxvpXSIhO1mQMc9JTMuqb49eENXelPr3+V5G4dx0="
}
}
}
diff --git a/packages/ui/dist/register/form-builder.js b/packages/ui/dist/register/form-builder.js
index b4b8405d7..e93a34140 100644
--- a/packages/ui/dist/register/form-builder.js
+++ b/packages/ui/dist/register/form-builder.js
@@ -1,5 +1,5 @@
import { n as registerElement } from "../chunks/element-Dovcr9Ky.js";
-import { t as J3w1FormBuilder } from "../chunks/form-builder-BKs59W9y.js";
+import { t as J3w1FormBuilder } from "../chunks/form-builder-DVUkImzv.js";
//#region .cache/ui-build/entries/register/form-builder.js
var element = registerElement("j3w1-form-builder", J3w1FormBuilder);
//#endregion
diff --git a/packages/ui/dist/styles/admin-form.css b/packages/ui/dist/styles/admin-form.css
index 3109fc6d2..470fbc871 100644
--- a/packages/ui/dist/styles/admin-form.css
+++ b/packages/ui/dist/styles/admin-form.css
@@ -566,7 +566,7 @@ j3w1-admin-form .text-field:has(.text-field-input[aria-invalid="true"]) .text-fi
}
j3w1-admin-form .text-field-root:has(.text-field-input[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-admin-form .text-field-root:has(.text-field-input:disabled) {
@@ -722,7 +722,7 @@ j3w1-admin-form .checkbox-input:focus-visible {
}
j3w1-admin-form .checkbox-input:checked:focus-visible,
j3w1-admin-form .checkbox-input:indeterminate:focus-visible {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
j3w1-admin-form .checkbox:has(.checkbox-input:required) .checkbox-required {
@@ -873,7 +873,7 @@ j3w1-admin-form .radio-group-input:focus-visible {
outline-offset: var(--focus-offset);
}
j3w1-admin-form .radio-group-input:checked:focus-visible {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
j3w1-admin-form .radio-group:has(.radio-group-input:required) .radio-group-required {
@@ -1101,7 +1101,7 @@ j3w1-admin-form .select:has(.select-control[aria-invalid="true"]) .select-help {
}
j3w1-admin-form .select-root:has(.select-control[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-admin-form .select-root:has(.select-control:disabled) {
@@ -1219,7 +1219,7 @@ j3w1-admin-form .switch:focus-visible .switch-track {
}
j3w1-admin-form .switch[aria-checked="true"]:focus-visible .switch-track {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
j3w1-admin-form .switch:disabled {
@@ -1346,7 +1346,7 @@ j3w1-admin-form .textarea:has(.textarea-input[aria-invalid="true"]) .textarea-he
}
j3w1-admin-form .textarea-root:has(.textarea-input[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-admin-form .textarea-root:has(.textarea-input:disabled) {
diff --git a/packages/ui/dist/styles/checkbox.css b/packages/ui/dist/styles/checkbox.css
index 798a26875..146420e5f 100644
--- a/packages/ui/dist/styles/checkbox.css
+++ b/packages/ui/dist/styles/checkbox.css
@@ -138,7 +138,7 @@ j3w1-checkbox .checkbox-input:focus-visible {
}
j3w1-checkbox .checkbox-input:checked:focus-visible,
j3w1-checkbox .checkbox-input:indeterminate:focus-visible {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
j3w1-checkbox .checkbox:has(.checkbox-input:required) .checkbox-required {
diff --git a/packages/ui/dist/styles/combobox.css b/packages/ui/dist/styles/combobox.css
index c2c436f19..1b429494d 100644
--- a/packages/ui/dist/styles/combobox.css
+++ b/packages/ui/dist/styles/combobox.css
@@ -242,7 +242,7 @@ j3w1-combobox .combobox:has(.combobox-input[aria-invalid="true"]) .combobox-help
}
j3w1-combobox .combobox-root:has(.combobox-input[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-combobox .combobox-root:has(.combobox-input:disabled) {
diff --git a/packages/ui/dist/styles/date-picker.css b/packages/ui/dist/styles/date-picker.css
index 74ea90ce8..0b0003e49 100644
--- a/packages/ui/dist/styles/date-picker.css
+++ b/packages/ui/dist/styles/date-picker.css
@@ -244,7 +244,7 @@ j3w1-date-picker .date-picker:has(.date-picker-input[aria-invalid="true"]) .date
}
j3w1-date-picker .date-picker-root:has(.date-picker-input[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-date-picker .date-picker-root:has(.date-picker-input:disabled) {
diff --git a/packages/ui/dist/styles/file-input.css b/packages/ui/dist/styles/file-input.css
index ce2a49780..1630ff2db 100644
--- a/packages/ui/dist/styles/file-input.css
+++ b/packages/ui/dist/styles/file-input.css
@@ -350,7 +350,7 @@ j3w1-file-input .file-input:has(.file-input-native[aria-invalid="true"]) .file-i
clip: rect(0 0 0 0);
}
j3w1-file-input .file-input-root:has(.file-input-native[aria-invalid="true"]:focus-visible) .file-input-button {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-file-input .file-input-root:has(.file-input-native:disabled) .file-input-button {
diff --git a/packages/ui/dist/styles/filterable-table.css b/packages/ui/dist/styles/filterable-table.css
index ef665025b..8b8571ee1 100644
--- a/packages/ui/dist/styles/filterable-table.css
+++ b/packages/ui/dist/styles/filterable-table.css
@@ -839,7 +839,7 @@ j3w1-filterable-table .select:has(.select-control[aria-invalid="true"]) .select-
}
j3w1-filterable-table .select-root:has(.select-control[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-filterable-table .select-root:has(.select-control:disabled) {
diff --git a/packages/ui/dist/styles/form-builder.css b/packages/ui/dist/styles/form-builder.css
index 543ccd27e..bca753649 100644
--- a/packages/ui/dist/styles/form-builder.css
+++ b/packages/ui/dist/styles/form-builder.css
@@ -392,7 +392,7 @@ j3w1-form-builder .text-field:has(.text-field-input[aria-invalid="true"]) .text-
}
j3w1-form-builder .text-field-root:has(.text-field-input[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-form-builder .text-field-root:has(.text-field-input:disabled) {
@@ -527,7 +527,7 @@ j3w1-form-builder .textarea:has(.textarea-input[aria-invalid="true"]) .textarea-
}
j3w1-form-builder .textarea-root:has(.textarea-input[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-form-builder .textarea-root:has(.textarea-input:disabled) {
@@ -757,7 +757,7 @@ j3w1-form-builder .select:has(.select-control[aria-invalid="true"]) .select-help
}
j3w1-form-builder .select-root:has(.select-control[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-form-builder .select-root:has(.select-control:disabled) {
@@ -898,7 +898,7 @@ j3w1-form-builder .checkbox-input:focus-visible {
}
j3w1-form-builder .checkbox-input:checked:focus-visible,
j3w1-form-builder .checkbox-input:indeterminate:focus-visible {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
j3w1-form-builder .checkbox:has(.checkbox-input:required) .checkbox-required {
@@ -1049,7 +1049,7 @@ j3w1-form-builder .radio-group-input:focus-visible {
outline-offset: var(--focus-offset);
}
j3w1-form-builder .radio-group-input:checked:focus-visible {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
j3w1-form-builder .radio-group:has(.radio-group-input:required) .radio-group-required {
@@ -1689,7 +1689,7 @@ j3w1-form-builder .switch:focus-visible .switch-track {
}
j3w1-form-builder .switch[aria-checked="true"]:focus-visible .switch-track {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
j3w1-form-builder .switch:disabled {
diff --git a/packages/ui/dist/styles/multiselect.css b/packages/ui/dist/styles/multiselect.css
index 82a284ae7..e8f7e60b9 100644
--- a/packages/ui/dist/styles/multiselect.css
+++ b/packages/ui/dist/styles/multiselect.css
@@ -138,7 +138,7 @@ j3w1-multiselect .checkbox-input:focus-visible {
}
j3w1-multiselect .checkbox-input:checked:focus-visible,
j3w1-multiselect .checkbox-input:indeterminate:focus-visible {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
j3w1-multiselect .checkbox:has(.checkbox-input:required) .checkbox-required {
diff --git a/packages/ui/dist/styles/number-field.css b/packages/ui/dist/styles/number-field.css
index 6a4c5f21d..898274522 100644
--- a/packages/ui/dist/styles/number-field.css
+++ b/packages/ui/dist/styles/number-field.css
@@ -261,7 +261,7 @@ j3w1-number-field .number-field:has(.number-field-input[aria-invalid="true"]) .n
}
j3w1-number-field .number-field-root:has(.number-field-input[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-number-field .number-field-root:has(.number-field-input:disabled) {
diff --git a/packages/ui/dist/styles/radio-group.css b/packages/ui/dist/styles/radio-group.css
index 7dd7c53a5..f70a51f2f 100644
--- a/packages/ui/dist/styles/radio-group.css
+++ b/packages/ui/dist/styles/radio-group.css
@@ -187,7 +187,7 @@ j3w1-radio-group .radio-group-input:focus-visible {
outline-offset: var(--focus-offset);
}
j3w1-radio-group .radio-group-input:checked:focus-visible {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
j3w1-radio-group .radio-group:has(.radio-group-input:required) .radio-group-required {
diff --git a/packages/ui/dist/styles/segmented-control.css b/packages/ui/dist/styles/segmented-control.css
index 3c94d95f8..9393cde8e 100644
--- a/packages/ui/dist/styles/segmented-control.css
+++ b/packages/ui/dist/styles/segmented-control.css
@@ -187,7 +187,7 @@ j3w1-segmented-control .radio-group-input:focus-visible {
outline-offset: var(--focus-offset);
}
j3w1-segmented-control .radio-group-input:checked:focus-visible {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
j3w1-segmented-control .radio-group:has(.radio-group-input:required) .radio-group-required {
diff --git a/packages/ui/dist/styles/select.css b/packages/ui/dist/styles/select.css
index 415554828..7e5a31bfa 100644
--- a/packages/ui/dist/styles/select.css
+++ b/packages/ui/dist/styles/select.css
@@ -266,7 +266,7 @@ j3w1-select .select:has(.select-control[aria-invalid="true"]) .select-help {
}
j3w1-select .select-root:has(.select-control[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-select .select-root:has(.select-control:disabled) {
diff --git a/packages/ui/dist/styles/settings-panel.css b/packages/ui/dist/styles/settings-panel.css
index 790879fd6..d8ef97a28 100644
--- a/packages/ui/dist/styles/settings-panel.css
+++ b/packages/ui/dist/styles/settings-panel.css
@@ -589,7 +589,7 @@ j3w1-settings-panel .text-field:has(.text-field-input[aria-invalid="true"]) .tex
}
j3w1-settings-panel .text-field-root:has(.text-field-input[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-settings-panel .text-field-root:has(.text-field-input:disabled) {
@@ -745,7 +745,7 @@ j3w1-settings-panel .checkbox-input:focus-visible {
}
j3w1-settings-panel .checkbox-input:checked:focus-visible,
j3w1-settings-panel .checkbox-input:indeterminate:focus-visible {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
j3w1-settings-panel .checkbox:has(.checkbox-input:required) .checkbox-required {
@@ -896,7 +896,7 @@ j3w1-settings-panel .radio-group-input:focus-visible {
outline-offset: var(--focus-offset);
}
j3w1-settings-panel .radio-group-input:checked:focus-visible {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
j3w1-settings-panel .radio-group:has(.radio-group-input:required) .radio-group-required {
@@ -1124,7 +1124,7 @@ j3w1-settings-panel .select:has(.select-control[aria-invalid="true"]) .select-he
}
j3w1-settings-panel .select-root:has(.select-control[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-settings-panel .select-root:has(.select-control:disabled) {
@@ -1242,7 +1242,7 @@ j3w1-settings-panel .switch:focus-visible .switch-track {
}
j3w1-settings-panel .switch[aria-checked="true"]:focus-visible .switch-track {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
j3w1-settings-panel .switch:disabled {
diff --git a/packages/ui/dist/styles/switch.css b/packages/ui/dist/styles/switch.css
index c71e16c18..51806b4cf 100644
--- a/packages/ui/dist/styles/switch.css
+++ b/packages/ui/dist/styles/switch.css
@@ -115,7 +115,7 @@ j3w1-switch .switch:focus-visible .switch-track {
}
j3w1-switch .switch[aria-checked="true"]:focus-visible .switch-track {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
j3w1-switch .switch:disabled {
diff --git a/packages/ui/dist/styles/text-field.css b/packages/ui/dist/styles/text-field.css
index ae3d2440f..b38670677 100644
--- a/packages/ui/dist/styles/text-field.css
+++ b/packages/ui/dist/styles/text-field.css
@@ -219,7 +219,7 @@ j3w1-text-field .text-field:has(.text-field-input[aria-invalid="true"]) .text-fi
}
j3w1-text-field .text-field-root:has(.text-field-input[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-text-field .text-field-root:has(.text-field-input:disabled) {
diff --git a/packages/ui/dist/styles/textarea.css b/packages/ui/dist/styles/textarea.css
index 8597fa1ce..ba6e5d742 100644
--- a/packages/ui/dist/styles/textarea.css
+++ b/packages/ui/dist/styles/textarea.css
@@ -177,7 +177,7 @@ j3w1-textarea .textarea:has(.textarea-input[aria-invalid="true"]) .textarea-help
}
j3w1-textarea .textarea-root:has(.textarea-input[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-textarea .textarea-root:has(.textarea-input:disabled) {
diff --git a/packages/ui/dist/styles/time-picker.css b/packages/ui/dist/styles/time-picker.css
index 49984f7e2..3f1acaf1f 100644
--- a/packages/ui/dist/styles/time-picker.css
+++ b/packages/ui/dist/styles/time-picker.css
@@ -221,7 +221,7 @@ j3w1-time-picker .time-picker:has(.time-picker-input[aria-invalid="true"]) .time
clip: rect(0 0 0 0);
}
j3w1-time-picker .time-picker-root:has(.time-picker-input[aria-invalid="true"]:focus-visible) {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-time-picker .time-picker-root:has(.time-picker-input:disabled) {
diff --git a/packages/ui/dist/styles/wizard.css b/packages/ui/dist/styles/wizard.css
index 4edc706e8..f25d75629 100644
--- a/packages/ui/dist/styles/wizard.css
+++ b/packages/ui/dist/styles/wizard.css
@@ -169,7 +169,7 @@ j3w1-wizard .wizard-back:focus-visible {
}
j3w1-wizard .wizard-next:focus-visible {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
j3w1-wizard .wizard-step-button[aria-current="step"] {
@@ -441,7 +441,7 @@ j3w1-wizard .text-field:has(.text-field-input[aria-invalid="true"]) .text-field-
}
j3w1-wizard .text-field-root:has(.text-field-input[aria-invalid="true"]:focus-visible) {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
j3w1-wizard .text-field-root:has(.text-field-input:disabled) {
diff --git a/packages/ui/dist/tokens.css b/packages/ui/dist/tokens.css
index ff49a74ad..082739c97 100644
--- a/packages/ui/dist/tokens.css
+++ b/packages/ui/dist/tokens.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/packages/ui/src/behaviors/overlays.js b/packages/ui/src/behaviors/overlays.js
index 4feb4e945..2c2ddc0a1 100644
--- a/packages/ui/src/behaviors/overlays.js
+++ b/packages/ui/src/behaviors/overlays.js
@@ -34,12 +34,15 @@ export function tooltip(root, { on }) {
const trigger = root.querySelector(".tooltip-trigger"), popup = root.querySelector('[role="tooltip"]');
if (!trigger || !popup) return {};
identify(root, popup, "tooltip"); trigger.setAttribute("aria-describedby", popup.id);
- let timer, dismissed = false, hovering = false;
- const stop = () => { clearTimeout(timer); };
+ /* WCAG 1.4.13 hoverable: leaving the trigger and popup starts a 300 ms grace
+ period, so a pointer crossing to a popup wider than its trigger keeps it. */
+ let timer, hideTimer, dismissed = false, hovering = false;
+ const stop = () => { clearTimeout(timer); clearTimeout(hideTimer); };
const hide = () => { stop(); popup.hidden = true; };
const show = () => { stop(); if (!dismissed) { popup.hidden = false; place(trigger, popup); } };
- on(trigger, "pointerenter", event => { if (event.pointerType !== "touch") { hovering = true; dismissed = false; timer = setTimeout(show, 300); } });
- on(root, "pointerleave", event => { if (!root.contains(event.relatedTarget)) { hovering = false; dismissed = false; if (root.ownerDocument.activeElement !== trigger) hide(); } });
+ const hideSoon = () => { clearTimeout(timer); clearTimeout(hideTimer); hideTimer = setTimeout(() => { if (!hovering && root.ownerDocument.activeElement !== trigger) hide(); }, 300); };
+ on(trigger, "pointerenter", event => { if (event.pointerType !== "touch") { hovering = true; dismissed = false; clearTimeout(hideTimer); if (popup.hidden) timer = setTimeout(show, 300); } });
+ on(root, "pointerleave", event => { if (!root.contains(event.relatedTarget)) { hovering = false; dismissed = false; if (root.ownerDocument.activeElement !== trigger) hideSoon(); } });
on(popup, "pointerenter", () => { hovering = true; stop(); });
on(trigger, "focus", () => { dismissed = false; show(); });
on(trigger, "blur", () => { if (!hovering) hide(); });
diff --git a/ports/chatgpt/capabilities.json b/ports/chatgpt/capabilities.json
index 65a14d089..32eb78bd1 100644
--- a/ports/chatgpt/capabilities.json
+++ b/ports/chatgpt/capabilities.json
@@ -1514,6 +1514,11 @@
"surface": "geometry",
"reason": "ChatGPT keeps its own geometry; this j3w1 value cannot be set."
},
+ "focus.ring-contrast": {
+ "state": "unsupported",
+ "surface": "geometry",
+ "reason": "ChatGPT keeps its own geometry; this j3w1 value cannot be set."
+ },
"font.family.mono": {
"state": "unsupported",
"surface": "typography",
diff --git a/ports/chatgpt/mapping.json b/ports/chatgpt/mapping.json
index a75d61ada..89e703832 100644
--- a/ports/chatgpt/mapping.json
+++ b/ports/chatgpt/mapping.json
@@ -320,6 +320,7 @@
"focus.offset-invalid": "ChatGPT keeps its own geometry; this j3w1 value cannot be set.",
"focus.ring": "ChatGPT keeps its own geometry; this j3w1 value cannot be set.",
"focus.ring-container": "ChatGPT keeps its own geometry; this j3w1 value cannot be set.",
+ "focus.ring-contrast": "ChatGPT keeps its own geometry; this j3w1 value cannot be set.",
"font.family.mono": "ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).",
"font.letter-spacing.terminal": "ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).",
"font.line-height.caption": "ChatGPT uses its own fonts (the UI and code font can be chosen by name, but the port leaves them as the system default).",
diff --git a/ports/chatgpt/port.json b/ports/chatgpt/port.json
index 976ae8808..fb08f947a 100644
--- a/ports/chatgpt/port.json
+++ b/ports/chatgpt/port.json
@@ -4,7 +4,7 @@
"displayName": "ChatGPT desktop app (Appearance)",
"status": "experimental",
"themeVersion": "4.0.0",
- "tokenDigest": "sha256-RSRMNUXS52R1kup7ka5S96aTGgpzVa7aYPwKQ6W78mU=",
+ "tokenDigest": "sha256-bXayCdQMks1SP9DAswzrBp0H09xuxsAmb1JbTSYceDg=",
"profile": "default",
"format": "chatgpt-appearance",
"targetVersions": [
diff --git a/ports/claude-code/capabilities.json b/ports/claude-code/capabilities.json
index 46408d1e4..5b034f75a 100644
--- a/ports/claude-code/capabilities.json
+++ b/ports/claude-code/capabilities.json
@@ -1490,6 +1490,11 @@
"surface": "outside-claude",
"reason": "Not a colour; a Claude Code theme carries colours only."
},
+ "focus.ring-contrast": {
+ "state": "out-of-scope",
+ "surface": "outside-claude",
+ "reason": "Not a colour; a Claude Code theme carries colours only."
+ },
"font.family.mono": {
"state": "out-of-scope",
"surface": "outside-claude",
diff --git a/ports/claude-code/mapping.json b/ports/claude-code/mapping.json
index 9685d49a5..1debbde1e 100644
--- a/ports/claude-code/mapping.json
+++ b/ports/claude-code/mapping.json
@@ -395,6 +395,7 @@
"focus.offset-invalid": "Not a colour; a Claude Code theme carries colours only.",
"focus.ring": "Not a colour; a Claude Code theme carries colours only.",
"focus.ring-container": "Not a colour; a Claude Code theme carries colours only.",
+ "focus.ring-contrast": "Not a colour; a Claude Code theme carries colours only.",
"font.family.mono": "Not a colour; a Claude Code theme carries colours only.",
"font.letter-spacing.terminal": "Not a colour; a Claude Code theme carries colours only.",
"font.line-height.caption": "Not a colour; a Claude Code theme carries colours only.",
diff --git a/ports/claude-code/port.json b/ports/claude-code/port.json
index 7439642c0..b99c87841 100644
--- a/ports/claude-code/port.json
+++ b/ports/claude-code/port.json
@@ -4,7 +4,7 @@
"displayName": "Claude Code (custom theme)",
"status": "experimental",
"themeVersion": "4.0.0",
- "tokenDigest": "sha256-RSRMNUXS52R1kup7ka5S96aTGgpzVa7aYPwKQ6W78mU=",
+ "tokenDigest": "sha256-bXayCdQMks1SP9DAswzrBp0H09xuxsAmb1JbTSYceDg=",
"profile": "default",
"format": "claude-theme-json",
"targetVersions": [
diff --git a/ports/codex/capabilities.json b/ports/codex/capabilities.json
index a28aef5f5..bd4223162 100644
--- a/ports/codex/capabilities.json
+++ b/ports/codex/capabilities.json
@@ -1494,6 +1494,11 @@
"surface": "outside-codex",
"reason": "Not a colour; a tmTheme carries colours only."
},
+ "focus.ring-contrast": {
+ "state": "out-of-scope",
+ "surface": "outside-codex",
+ "reason": "Not a colour; a tmTheme carries colours only."
+ },
"font.family.mono": {
"state": "out-of-scope",
"surface": "outside-codex",
diff --git a/ports/codex/mapping.json b/ports/codex/mapping.json
index b8200251f..b489ca18e 100644
--- a/ports/codex/mapping.json
+++ b/ports/codex/mapping.json
@@ -341,6 +341,7 @@
"focus.offset-invalid": "Not a colour; a tmTheme carries colours only.",
"focus.ring": "Not a colour; a tmTheme carries colours only.",
"focus.ring-container": "Not a colour; a tmTheme carries colours only.",
+ "focus.ring-contrast": "Not a colour; a tmTheme carries colours only.",
"font.family.mono": "Not a colour; a tmTheme carries colours only.",
"font.letter-spacing.terminal": "Not a colour; a tmTheme carries colours only.",
"font.line-height.caption": "Not a colour; a tmTheme carries colours only.",
diff --git a/ports/codex/port.json b/ports/codex/port.json
index 521242b91..dac8a99ea 100644
--- a/ports/codex/port.json
+++ b/ports/codex/port.json
@@ -4,7 +4,7 @@
"displayName": "Codex CLI (tmTheme)",
"status": "experimental",
"themeVersion": "4.0.0",
- "tokenDigest": "sha256-RSRMNUXS52R1kup7ka5S96aTGgpzVa7aYPwKQ6W78mU=",
+ "tokenDigest": "sha256-bXayCdQMks1SP9DAswzrBp0H09xuxsAmb1JbTSYceDg=",
"profile": "default",
"format": "codex-tmtheme",
"targetVersions": [
diff --git a/ports/ghostty/capabilities.json b/ports/ghostty/capabilities.json
index 9bc326e6e..38090b899 100644
--- a/ports/ghostty/capabilities.json
+++ b/ports/ghostty/capabilities.json
@@ -1494,6 +1494,11 @@
"surface": "outside-terminal",
"reason": "Not a colour; a terminal theme file carries colours only."
},
+ "focus.ring-contrast": {
+ "state": "out-of-scope",
+ "surface": "outside-terminal",
+ "reason": "Not a colour; a terminal theme file carries colours only."
+ },
"font.family.mono": {
"state": "inherited",
"surface": "terminal-font",
diff --git a/ports/ghostty/mapping.json b/ports/ghostty/mapping.json
index 0700eec17..103805d06 100644
--- a/ports/ghostty/mapping.json
+++ b/ports/ghostty/mapping.json
@@ -341,6 +341,7 @@
"focus.offset-invalid": "Not a colour; a terminal theme file carries colours only.",
"focus.ring": "Not a colour; a terminal theme file carries colours only.",
"focus.ring-container": "Not a colour; a terminal theme file carries colours only.",
+ "focus.ring-contrast": "Not a colour; a terminal theme file carries colours only.",
"font.family.mono": "A Ghostty theme carries colours; set font-family in your own config.",
"font.letter-spacing.terminal": "A Ghostty theme carries colours; Ghostty has no letter-spacing key.",
"font.line-height.caption": "Not a colour; a terminal theme file carries colours only.",
diff --git a/ports/ghostty/port.json b/ports/ghostty/port.json
index e6c31d50a..65b556b7b 100644
--- a/ports/ghostty/port.json
+++ b/ports/ghostty/port.json
@@ -4,7 +4,7 @@
"displayName": "Ghostty theme",
"status": "experimental",
"themeVersion": "4.0.0",
- "tokenDigest": "sha256-RSRMNUXS52R1kup7ka5S96aTGgpzVa7aYPwKQ6W78mU=",
+ "tokenDigest": "sha256-bXayCdQMks1SP9DAswzrBp0H09xuxsAmb1JbTSYceDg=",
"profile": "default",
"format": "ghostty-config",
"targetVersions": [
diff --git a/ports/obsidian/capabilities.json b/ports/obsidian/capabilities.json
index abe78d102..ec6bee3c3 100644
--- a/ports/obsidian/capabilities.json
+++ b/ports/obsidian/capabilities.json
@@ -1662,6 +1662,11 @@
"surface": "host-behavior",
"reason": "focus.ring-container: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host."
},
+ "focus.ring-contrast": {
+ "state": "inherited",
+ "surface": "host-behavior",
+ "reason": "focus.ring-contrast: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host."
+ },
"focus.offset": {
"state": "mapped",
"surface": "commands",
diff --git a/ports/obsidian/mapping.json b/ports/obsidian/mapping.json
index f03c74374..76cf5edf5 100644
--- a/ports/obsidian/mapping.json
+++ b/ports/obsidian/mapping.json
@@ -683,6 +683,7 @@
"density.comfortable.icon": "density.comfortable.icon: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.",
"density.comfortable.gap": "density.comfortable.gap: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.",
"focus.ring-container": "focus.ring-container: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.",
+ "focus.ring-contrast": "focus.ring-contrast: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.",
"focus.offset-container": "focus.offset-container: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.",
"focus.offset-invalid": "focus.offset-invalid: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.",
"motion.duration.fast": "motion.duration.fast: preserve user sizes, zoom and native layout/target, motion or focus geometry; the reference metric is not imposed on the host.",
diff --git a/ports/obsidian/port.json b/ports/obsidian/port.json
index 46cd08ca3..90eaac443 100644
--- a/ports/obsidian/port.json
+++ b/ports/obsidian/port.json
@@ -4,7 +4,7 @@
"displayName": "Obsidian theme",
"status": "experimental",
"themeVersion": "4.0.0",
- "tokenDigest": "sha256-RSRMNUXS52R1kup7ka5S96aTGgpzVa7aYPwKQ6W78mU=",
+ "tokenDigest": "sha256-bXayCdQMks1SP9DAswzrBp0H09xuxsAmb1JbTSYceDg=",
"profile": "default",
"format": "obsidian-theme",
"targetVersions": [
diff --git a/ports/orca/capabilities.json b/ports/orca/capabilities.json
index b9736592c..ad51b0de6 100644
--- a/ports/orca/capabilities.json
+++ b/ports/orca/capabilities.json
@@ -1498,6 +1498,11 @@
"surface": "outside-terminal",
"reason": "Not a colour; a terminal theme file carries colours only."
},
+ "focus.ring-contrast": {
+ "state": "out-of-scope",
+ "surface": "outside-terminal",
+ "reason": "Not a colour; a terminal theme file carries colours only."
+ },
"font.family.mono": {
"state": "mapped",
"surface": "terminal-font",
diff --git a/ports/orca/mapping.json b/ports/orca/mapping.json
index 03901f9e1..0a06cd2c3 100644
--- a/ports/orca/mapping.json
+++ b/ports/orca/mapping.json
@@ -347,6 +347,7 @@
"focus.offset-invalid": "Not a colour; a terminal theme file carries colours only.",
"focus.ring": "Not a colour; a terminal theme file carries colours only.",
"focus.ring-container": "Not a colour; a terminal theme file carries colours only.",
+ "focus.ring-contrast": "Not a colour; a terminal theme file carries colours only.",
"font.letter-spacing.terminal": "Neither the Ghostty config nor Orca's import has a letter-spacing key.",
"font.line-height.caption": "Not a colour; a terminal theme file carries colours only.",
"font.line-height.code": "Not a colour; a terminal theme file carries colours only.",
diff --git a/ports/orca/port.json b/ports/orca/port.json
index fb0545bbb..0a138bab1 100644
--- a/ports/orca/port.json
+++ b/ports/orca/port.json
@@ -4,7 +4,7 @@
"displayName": "Orca (Ghostty config import)",
"status": "experimental",
"themeVersion": "4.0.0",
- "tokenDigest": "sha256-RSRMNUXS52R1kup7ka5S96aTGgpzVa7aYPwKQ6W78mU=",
+ "tokenDigest": "sha256-bXayCdQMks1SP9DAswzrBp0H09xuxsAmb1JbTSYceDg=",
"profile": "default",
"format": "ghostty-config",
"targetVersions": [
diff --git a/ports/telegram/capabilities.json b/ports/telegram/capabilities.json
index 3ff7271dc..921c3451d 100644
--- a/ports/telegram/capabilities.json
+++ b/ports/telegram/capabilities.json
@@ -1685,6 +1685,11 @@
"surface": "geometry",
"reason": "Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these."
},
+ "focus.ring-contrast": {
+ "state": "unsupported",
+ "surface": "geometry",
+ "reason": "Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these."
+ },
"focus.offset": {
"state": "unsupported",
"surface": "geometry",
diff --git a/ports/telegram/mapping.json b/ports/telegram/mapping.json
index 7c4bf80f8..0c0062357 100644
--- a/ports/telegram/mapping.json
+++ b/ports/telegram/mapping.json
@@ -1575,6 +1575,7 @@
"density.comfortable.gap": "Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.",
"focus.ring": "Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.",
"focus.ring-container": "Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.",
+ "focus.ring-contrast": "Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.",
"focus.offset": "Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.",
"focus.offset-container": "Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.",
"focus.offset-invalid": "Telegram theme files cannot set geometry, font metrics, layout, motion or focus-ring shape; host settings and accessibility preferences own these.",
diff --git a/ports/telegram/port.json b/ports/telegram/port.json
index e9d19ccfb..3fdeb730c 100644
--- a/ports/telegram/port.json
+++ b/ports/telegram/port.json
@@ -4,7 +4,7 @@
"displayName": "Telegram Android and Desktop",
"status": "experimental",
"themeVersion": "4.0.0",
- "tokenDigest": "sha256-RSRMNUXS52R1kup7ka5S96aTGgpzVa7aYPwKQ6W78mU=",
+ "tokenDigest": "sha256-bXayCdQMks1SP9DAswzrBp0H09xuxsAmb1JbTSYceDg=",
"profile": "default",
"format": "telegram-theme",
"targetVersions": [
diff --git a/ports/warp/capabilities.json b/ports/warp/capabilities.json
index beea1dcc4..0def8d648 100644
--- a/ports/warp/capabilities.json
+++ b/ports/warp/capabilities.json
@@ -1494,6 +1494,11 @@
"surface": "outside-terminal",
"reason": "Not a colour; a terminal theme file carries colours only."
},
+ "focus.ring-contrast": {
+ "state": "out-of-scope",
+ "surface": "outside-terminal",
+ "reason": "Not a colour; a terminal theme file carries colours only."
+ },
"font.family.mono": {
"state": "inherited",
"surface": "terminal-font",
diff --git a/ports/warp/mapping.json b/ports/warp/mapping.json
index a573fb2a2..1143badaf 100644
--- a/ports/warp/mapping.json
+++ b/ports/warp/mapping.json
@@ -336,6 +336,7 @@
"focus.offset-invalid": "Not a colour; a terminal theme file carries colours only.",
"focus.ring": "Not a colour; a terminal theme file carries colours only.",
"focus.ring-container": "Not a colour; a terminal theme file carries colours only.",
+ "focus.ring-contrast": "Not a colour; a terminal theme file carries colours only.",
"font.family.mono": "The application's own terminal font setting.",
"font.letter-spacing.terminal": "The application's own terminal font setting.",
"font.line-height.caption": "Not a colour; a terminal theme file carries colours only.",
diff --git a/ports/warp/port.json b/ports/warp/port.json
index cde42e9e9..6a002cdef 100644
--- a/ports/warp/port.json
+++ b/ports/warp/port.json
@@ -4,7 +4,7 @@
"displayName": "Warp theme YAML (also Orca's Import from YAML)",
"status": "experimental",
"themeVersion": "4.0.0",
- "tokenDigest": "sha256-RSRMNUXS52R1kup7ka5S96aTGgpzVa7aYPwKQ6W78mU=",
+ "tokenDigest": "sha256-bXayCdQMks1SP9DAswzrBp0H09xuxsAmb1JbTSYceDg=",
"profile": "default",
"format": "warp-yaml",
"targetVersions": [
diff --git a/ports/windows/capabilities.json b/ports/windows/capabilities.json
index 10bd61b74..7459f7040 100644
--- a/ports/windows/capabilities.json
+++ b/ports/windows/capabilities.json
@@ -1664,6 +1664,11 @@
"surface": "unsupported",
"reason": "Outside Windows visual adapter scope; preserve host semantics."
},
+ "focus.ring-contrast": {
+ "state": "unsupported",
+ "surface": "unsupported",
+ "reason": "Outside Windows visual adapter scope; preserve host semantics."
+ },
"focus.offset": {
"state": "mapped",
"surface": "shell",
diff --git a/ports/windows/mapping.json b/ports/windows/mapping.json
index b7bd2c3e8..380a7fcbe 100644
--- a/ports/windows/mapping.json
+++ b/ports/windows/mapping.json
@@ -2497,6 +2497,7 @@
"density.comfortable.gap": "Outside Windows visual adapter scope; preserve host semantics.",
"focus.ring": "Outside Windows visual adapter scope; preserve host semantics.",
"focus.ring-container": "Outside Windows visual adapter scope; preserve host semantics.",
+ "focus.ring-contrast": "Outside Windows visual adapter scope; preserve host semantics.",
"focus.offset-invalid": "Outside Windows visual adapter scope; preserve host semantics.",
"motion.duration.fast": "Outside Windows visual adapter scope; preserve host semantics.",
"motion.duration.base": "Outside Windows visual adapter scope; preserve host semantics.",
diff --git a/ports/windows/port.json b/ports/windows/port.json
index d2605f17c..a59b78d72 100644
--- a/ports/windows/port.json
+++ b/ports/windows/port.json
@@ -4,7 +4,7 @@
"displayName": "Windows 11 native and Windhawk theme",
"status": "experimental",
"themeVersion": "4.0.0",
- "tokenDigest": "sha256-RSRMNUXS52R1kup7ka5S96aTGgpzVa7aYPwKQ6W78mU=",
+ "tokenDigest": "sha256-bXayCdQMks1SP9DAswzrBp0H09xuxsAmb1JbTSYceDg=",
"profile": "default",
"format": "windows-theme",
"targetVersions": [
diff --git a/schemas/roles.mjs b/schemas/roles.mjs
index 8ee0f1628..6e596ca3c 100644
--- a/schemas/roles.mjs
+++ b/schemas/roles.mjs
@@ -51,7 +51,7 @@ export const REQUIRED_FOUNDATION_ROLES = [
...under("font.line-height", ["ui-sm", "ui-md", "ui-lg", "reading", "code", "terminal", "display", "title", "h1", "h2", "h3", "caption"]),
"font.letter-spacing.terminal",
...["compact", "comfortable"].flatMap((d) => under(`density.${d}`, ["control-height", "row-height", "control-padding-x", "icon", "gap"])),
- ...under("focus", ["ring", "ring-container", "offset", "offset-container", "offset-invalid"]),
+ ...under("focus", ["ring", "ring-container", "ring-contrast", "offset", "offset-container", "offset-invalid"]),
...under("motion.duration", ["fast", "base", "slow"]),
"shadow.floating",
...under("layout", ["measure", "content-max", "app-max"]),
diff --git a/site/src/scripts/inspector.ts b/site/src/scripts/inspector.ts
index 0b475c886..3562131a1 100644
--- a/site/src/scripts/inspector.ts
+++ b/site/src/scripts/inspector.ts
@@ -33,16 +33,32 @@ export const initInspector = (): void => {
and never touch the edge. A popup opened from the keyboard has no pointer
and anchors to its element instead — see placeByElement. */
const axis = (point: number, size: number, limit: number) => Math.max(8, Math.min(point + 8 + size <= limit - 8 ? point + 8 : point - size - 8, limit - size - 8));
+ /* A fixed popup left near the right edge shrinks to the space left, so
+ measure it at the gutter, where it takes its natural size. */
+ const naturalSize = (popup: HTMLElement) => {
+ popup.style.left = "8px";
+ popup.style.top = "8px";
+ return popup.getBoundingClientRect();
+ };
const placeByPointer = (popup: HTMLElement, at: { x: number; y: number }) => {
- const { width, height } = popup.getBoundingClientRect();
+ const { width, height } = naturalSize(popup);
popup.style.left = `${axis(at.x, width, innerWidth)}px`;
popup.style.top = `${axis(at.y, height, innerHeight)}px`;
};
const placeByElement = (popup: HTMLElement, target: HTMLElement) => {
const rect = target.getBoundingClientRect();
- const width = Math.min(384, innerWidth - 16);
+ const { width, height } = naturalSize(popup);
+ const top = rect.bottom + 6 + height > innerHeight - 8 ? rect.top - height - 6 : rect.bottom + 6;
popup.style.left = `${Math.max(8, Math.min(rect.left, innerWidth - width - 8))}px`;
- popup.style.top = `${rect.bottom + 6 + popup.offsetHeight > innerHeight ? Math.max(8, rect.top - popup.offsetHeight - 6) : rect.bottom + 6}px`;
+ /* Anchored, but never outside the 8px gutter, even when the token scrolls away. */
+ popup.style.top = `${Math.max(8, Math.min(top, innerHeight - height - 8))}px`;
+ };
+ /* Keeps a popup where it is, moved only as far as the gutter requires. */
+ const clampToViewport = (popup: HTMLElement) => {
+ const { left, top } = popup.getBoundingClientRect();
+ const { width, height } = naturalSize(popup);
+ popup.style.left = `${Math.max(8, Math.min(left, innerWidth - width - 8))}px`;
+ popup.style.top = `${Math.max(8, Math.min(top, innerHeight - height - 8))}px`;
};
const placePreview = () => placeByPointer(preview, pointer);
document.addEventListener("pointermove", async (event) => {
@@ -57,7 +73,7 @@ export const initInspector = (): void => {
preview.innerHTML = `
Exact value matches; equality does not assign a role.
${matches.map((match) => `- ${escapeHtml(match.profile)}:
${escapeHtml(match.path)} `).join("")}
`;
circle = target;
}
- box.hidden = true;
+ if (!holdsFocus()) hide();
preview.hidden = false;
placePreview();
});
@@ -84,8 +100,21 @@ export const initInspector = (): void => {
let current: HTMLElement | null = null;
const text = (value: string) => renderHexText(value, data.colorIndex);
+ /* The panel holds links, so it stays reachable (foundations, hover popups;
+ WCAG 1.4.13): leaving the token or the panel starts a short grace period
+ that entering either cancels, and the panel stops following the pointer
+ once the pointer is on it. */
+ const HIDE_DELAY = 300;
+ let hideTimer = 0;
+ let byPointerPlaced = false;
+ const keep = () => { clearTimeout(hideTimer); hideTimer = 0; };
+ const holdsFocus = () => {
+ const active = document.activeElement;
+ return !!active && active !== document.body && (box.contains(active) || !!current?.contains(active));
+ };
const show = async (target: HTMLElement, byPointer = false) => {
if (box.contains(target)) return;
+ keep();
current = target;
try { await load(); } catch { return; }
if (current !== target) return;
@@ -107,30 +136,73 @@ export const initInspector = (): void => {
box.append(link);
}
box.hidden = false;
+ byPointerPlaced = byPointer;
if (byPointer) placeByPointer(box, pointer);
else placeByElement(box, target);
current = target;
};
const hide = () => {
+ keep();
box.hidden = true;
current = null;
};
+ const hideSoon = () => {
+ /* Pointer movement never takes away a panel whose token or content holds
+ keyboard focus, nor cancels its pending keyboard open. */
+ if (holdsFocus()) return;
+ /* Still loading: nothing is shown yet, so leaving cancels the open. */
+ if (box.hidden) { current = null; return; }
+ if (hideTimer) return;
+ hideTimer = window.setTimeout(() => {
+ hideTimer = 0;
+ if (!holdsFocus()) hide();
+ }, HIDE_DELAY);
+ };
+ box.addEventListener("pointerenter", keep);
+ box.addEventListener("focusin", keep);
+ /* The panel moves again on scroll and resize (foundations, hover popups):
+ beside the pointer when the pointer opened it, otherwise anchored to its
+ token, and never outside the viewport gutter. It stays put while the
+ pointer is on it, so the pointer can keep reading. */
+ let placeFrame = 0;
+ const replace = () => {
+ if (box.hidden || !current || placeFrame) return;
+ placeFrame = requestAnimationFrame(() => {
+ placeFrame = 0;
+ if (box.hidden || !current) return;
+ /* Under the pointer the panel stays where the reader is, inside the gutter. */
+ if (box.matches(":hover")) clampToViewport(box);
+ else if (byPointerPlaced) placeByPointer(box, pointer);
+ else placeByElement(box, current);
+ });
+ };
+ document.addEventListener("scroll", (event) => { if (!box.contains(event.target as Node)) replace(); }, { capture: true, passive: true });
+ window.addEventListener("resize", replace);
+ box.addEventListener("pointerleave", (event) => {
+ const to = event.relatedTarget instanceof Element ? event.relatedTarget.closest
("[data-token]") : null;
+ if (to !== current) hideSoon();
+ });
/* Hover follows the pointer, so the panel tracks the cursor across a wide
token table rather than pinning to wherever the row happens to start. */
document.addEventListener("pointermove", (event) => {
if (!["mouse", "pen"].includes(event.pointerType)) return;
+ if (box.contains(event.target as Node)) return;
if ((event.target as HTMLElement).closest(".hex-swatch")) return;
const target = (event.target as HTMLElement).closest("[data-token]");
if (!target) return;
pointer = { x: event.clientX, y: event.clientY };
- if (target === current) placeByPointer(box, pointer);
+ /* Keyboard focus wins: hovering does not take over or move a panel whose
+ token or content holds focus, including one still loading. */
+ if (holdsFocus()) return;
+ if (target === current && !box.hidden) { keep(); placeByPointer(box, pointer); }
else void show(target, true);
});
document.addEventListener("mouseout", (event) => {
const target = (event.target as HTMLElement).closest("[data-token]");
- if (target && target === current && !box.matches(":hover")) hide();
+ const to = event.relatedTarget instanceof Node ? event.relatedTarget : null;
+ if (target && target === current && !(to && (box.contains(to) || target.contains(to)))) hideSoon();
});
document.addEventListener("focusin", (event) => {
const target = (event.target as HTMLElement).closest("[data-token]");
@@ -138,6 +210,17 @@ export const initInspector = (): void => {
if (target) void show(target, false);
else if (!box.contains(event.target as Node)) hide();
});
+ /* Focus that leaves for nothing (a click on the page background) closes a
+ panel the pointer is not on; focus that moves elsewhere is handled above. */
+ document.addEventListener("focusout", (event) => {
+ if (event.relatedTarget) return;
+ queueMicrotask(() => {
+ if (holdsFocus() || box.matches(":hover") || current?.matches(":hover")) return;
+ /* A pending open loses its reason too, so a late load shows nothing. */
+ if (box.hidden) current = null;
+ else hide();
+ });
+ });
document.addEventListener("keydown", (event) => {
if (event.key === "Escape" && !box.hidden) hide();
});
diff --git a/site/src/styles/components/checkbox.css b/site/src/styles/components/checkbox.css
index 644402eed..2de32cd22 100644
--- a/site/src/styles/components/checkbox.css
+++ b/site/src/styles/components/checkbox.css
@@ -143,7 +143,7 @@
.checkbox-input:indeterminate:focus-visible,
[data-state-checked][data-state-focus-visible] .checkbox-input,
[data-state-mixed][data-state-focus-visible] .checkbox-input {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
diff --git a/site/src/styles/components/combobox.css b/site/src/styles/components/combobox.css
index f367798b1..289486563 100644
--- a/site/src/styles/components/combobox.css
+++ b/site/src/styles/components/combobox.css
@@ -195,7 +195,7 @@
.combobox-root:has(.combobox-input[aria-invalid="true"]:focus-visible),
[data-state-invalid][data-state-focus-visible] .combobox-root {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
diff --git a/site/src/styles/components/date-picker.css b/site/src/styles/components/date-picker.css
index 58f8493fe..d76d2f1c1 100644
--- a/site/src/styles/components/date-picker.css
+++ b/site/src/styles/components/date-picker.css
@@ -108,7 +108,7 @@
.date-picker-root:has(.date-picker-input[aria-invalid="true"]:focus-visible),
[data-state-invalid][data-state-focus-visible] .date-picker-root {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
diff --git a/site/src/styles/components/file-input.css b/site/src/styles/components/file-input.css
index 5f5f12510..fdc812372 100644
--- a/site/src/styles/components/file-input.css
+++ b/site/src/styles/components/file-input.css
@@ -183,7 +183,7 @@
/* invalid + focus-visible (not a declared cell; the pair stays honest) */
.file-input-root:has(.file-input-native[aria-invalid="true"]:focus-visible) .file-input-button,
[data-state-invalid][data-state-focus-visible] .file-input-button {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
diff --git a/site/src/styles/components/number-field.css b/site/src/styles/components/number-field.css
index 470dce969..78c4110a6 100644
--- a/site/src/styles/components/number-field.css
+++ b/site/src/styles/components/number-field.css
@@ -129,7 +129,7 @@
.number-field-root:has(.number-field-input[aria-invalid="true"]:focus-visible),
[data-state-invalid][data-state-focus-visible] .number-field-root {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
diff --git a/site/src/styles/components/radio-group.css b/site/src/styles/components/radio-group.css
index 0ee9189c4..c4c8e595e 100644
--- a/site/src/styles/components/radio-group.css
+++ b/site/src/styles/components/radio-group.css
@@ -126,7 +126,7 @@
/* checked + focus-visible: the ring takes the on-fill colour */
.radio-group-input:checked:focus-visible,
[data-state-checked][data-state-focus-visible] .radio-group-input {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
diff --git a/site/src/styles/components/select.css b/site/src/styles/components/select.css
index f22f63f1d..85329a7e6 100644
--- a/site/src/styles/components/select.css
+++ b/site/src/styles/components/select.css
@@ -137,7 +137,7 @@
.select-root:has(.select-control[aria-invalid="true"]:focus-visible),
[data-state-invalid][data-state-focus-visible] .select-root {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
diff --git a/site/src/styles/components/switch.css b/site/src/styles/components/switch.css
index d0b785eb1..2c28e685b 100644
--- a/site/src/styles/components/switch.css
+++ b/site/src/styles/components/switch.css
@@ -113,7 +113,7 @@
.switch[aria-checked="true"]:focus-visible .switch-track,
[data-state-checked][data-state-focus-visible] .switch-track {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
diff --git a/site/src/styles/components/text-field.css b/site/src/styles/components/text-field.css
index d34ced280..b595c2834 100644
--- a/site/src/styles/components/text-field.css
+++ b/site/src/styles/components/text-field.css
@@ -161,7 +161,7 @@
.text-field-root:has(.text-field-input[aria-invalid="true"]:focus-visible),
[data-state-invalid][data-state-focus-visible] .text-field-root {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
diff --git a/site/src/styles/components/textarea.css b/site/src/styles/components/textarea.css
index 241a61d66..cab1d6068 100644
--- a/site/src/styles/components/textarea.css
+++ b/site/src/styles/components/textarea.css
@@ -120,7 +120,7 @@
.textarea-root:has(.textarea-input[aria-invalid="true"]:focus-visible),
[data-state-invalid][data-state-focus-visible] .textarea-root {
border-color: var(--color-status-danger-border);
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
diff --git a/site/src/styles/components/time-picker.css b/site/src/styles/components/time-picker.css
index 709a686c9..733441bd4 100644
--- a/site/src/styles/components/time-picker.css
+++ b/site/src/styles/components/time-picker.css
@@ -86,7 +86,7 @@
/* invalid + focus-visible: the danger border and the inset ring */
.time-picker-root:has(.time-picker-input[aria-invalid="true"]:focus-visible),
[data-state-invalid][data-state-focus-visible] .time-picker-root {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset-invalid);
}
diff --git a/site/src/styles/components/wizard.css b/site/src/styles/components/wizard.css
index c90f53690..652e920d9 100644
--- a/site/src/styles/components/wizard.css
+++ b/site/src/styles/components/wizard.css
@@ -158,7 +158,7 @@
.wizard-next:focus-visible,
[data-state-focus-visible] .wizard-next {
- outline: var(--border-width-default) dashed var(--color-interaction-focus-ring-container);
+ outline: var(--focus-ring-contrast);
outline-offset: var(--focus-offset);
}
diff --git a/site/src/styles/site.css b/site/src/styles/site.css
index a02431221..cc8a38275 100644
--- a/site/src/styles/site.css
+++ b/site/src/styles/site.css
@@ -320,7 +320,7 @@
.inspector {
position: fixed;
z-index: var(--z-popover);
- max-width: 24rem;
+ max-width: min(24rem, calc(100vw - 2 * var(--space-8)));
padding: var(--space-8) var(--space-12);
border: var(--border-width-default) solid var(--color-border-overlay);
background: var(--color-surface-raised);
diff --git a/site/src/styles/tokens.generated.css b/site/src/styles/tokens.generated.css
index ac1182e41..d84279472 100644
--- a/site/src/styles/tokens.generated.css
+++ b/site/src/styles/tokens.generated.css
@@ -334,6 +334,7 @@
--density-comfortable-gap: 4px;
--focus-ring: 1px dashed #e53935;
--focus-ring-container: 2px solid #ffa2a7;
+ --focus-ring-contrast: 1px dashed #ffa2a7;
--focus-offset: -2px;
--focus-offset-container: -3px;
--focus-offset-invalid: -4px;
diff --git a/spec/components/loading-indicator.md b/spec/components/loading-indicator.md
index ffd9a1dad..7150ff7ec 100644
--- a/spec/components/loading-indicator.md
+++ b/spec/components/loading-indicator.md
@@ -87,8 +87,8 @@ the result when it arrives.
## Accessibility
`aria-busy` lets assistive technology wait for the subtree to settle and
-announce the label once. The label names the object ("Loading fonts"); a host
-that must hide it inline keeps it visually hidden, never absent. Nothing
+announce the label once. The label names the object ("Loading fonts") and is
+always visible, inline as in a block; the glyph never appears without it. Nothing
moves, so there is no reduced-motion branch to get wrong. Label and glyph meet
4.5:1.
diff --git a/spec/components/progress.md b/spec/components/progress.md
index a6f518d25..6b1d5e492 100644
--- a/spec/components/progress.md
+++ b/spec/components/progress.md
@@ -108,8 +108,7 @@ set `aria-valuetext` ("Preparing"); the container sets `aria-busy` for the
duration. Completion and failure are announced through a polite live region,
not by the bar. Text meets 4.5:1; the track boundary and error fill 3:1. The
primary fill against the track is waived because the value is stated in
-text; a host that must meet 3:1 graphically raises the track to
-{color.surface.canvas}.
+text.
## Portability
diff --git a/spec/components/tooltip.md b/spec/components/tooltip.md
index 16218e00a..7f8058f2e 100644
--- a/spec/components/tooltip.md
+++ b/spec/components/tooltip.md
@@ -59,7 +59,7 @@ keyboard:
action: Act on the trigger as usual; the tooltip hides on activation.
responsive: The popup is at most 24rem wide and wraps; it flips to the side with room and is never clipped by the viewport; at 320px it is as wide as the viewport minus the gutter. RTL mirrors the placement and keeps the shortcut at the end.
portability:
- web: "the trigger carries aria-describedby to a ; visibility toggles the hidden attribute after a 300 ms open delay and no close delay; positioned with anchor positioning or a popover at z.popover; the tooltip is never the only place a control's name lives."
+ web: "the trigger carries aria-describedby to a
; visibility toggles the hidden attribute after a 300 ms open delay, and hides 300 ms after the pointer leaves trigger and popup; positioned with anchor positioning or a popover at z.popover; the tooltip is never the only place a control's name lives."
nativeFallbacks:
- GTK4 tooltip-text; the host draws it with the overlay border through the tooltip css node.
- Qt QToolTip stylesheet; border and background from the tokens; no rounded corners.
@@ -87,7 +87,7 @@ Parts as listed in the anatomy; no arrow, shadow or radius.
| State | Visual | Non-colour channel |
| --- | --- | --- |
| default | trigger at rest; popup shown for the demonstration | `aria-describedby` on the trigger |
-| hover | trigger background → {color.action.tertiary.hover-bg}; popup after 300 ms | cursor: pointer; the popup |
+| hover | trigger background → {color.action.tertiary.hover-bg}; popup after 300 ms; it hides 300 ms after the pointer leaves trigger and popup | cursor: pointer; the popup |
| focus-visible | 1px dashed {color.interaction.focus.ring} at −2px on the trigger; popup at once | the ring; the popup |
| open | popup visible, 1px {color.border.overlay} on {color.surface.raised} | popup in the accessibility tree |
| closed | popup absent; trigger unchanged | `hidden`; the description is still read from the DOM |
diff --git a/spec/decisions.md b/spec/decisions.md
index 45428d6ed..d6e903cf2 100644
--- a/spec/decisions.md
+++ b/spec/decisions.md
@@ -49,6 +49,7 @@ ordered by topic.
| D-032 | Coral slot 6 and a fixed prompt background | accepted | 2026-09-26 | owner (explicit selection of coral and the PowerShell prompt look) |
| D-035 | An accent surface for the user's own content | accepted | 2026-10-06 | owner (Telegram acceptance: own and other people's messages too similar; chose #3d0c0a from a side-by-side comparison) |
| D-036 | A translucent text-selection tint | accepted | 2026-10-06 | owner (Telegram acceptance: Android text selection barely visible; chose 50% from a side-by-side comparison) |
+| D-039 | Code and terminal backgrounds: two pairs, two scopes | accepted | 2026-10-15 | owner (explicit choice: keep both, scope them) |
### Typography and density
@@ -68,6 +69,7 @@ ordered by topic.
| D-015 | Clarify component mappings exposed by consumption acceptance | proposed | 2026-09-07 | — |
| D-024 | Distinguish links from body text and headings | accepted | 2026-09-08 | owner (explicit preview correction) |
| D-025 | Theme interactive controls throughout the portal and demo | accepted | 2026-09-09 | owner (explicit native-control replacement request) |
+| D-040 | One contrast focus ring for fills and invalid fields | accepted | 2026-10-15 | owner (explicit choice: one role, focus.ring-contrast) |
### Site, tools and distribution
@@ -200,30 +202,9 @@ check); the rules above still hold.
## D-031 Select the checks a change needs; shard the deployment matrix
-**Decision.** CI is `select` → checks → `release-gate`. The rules stay here:
-no spec section or guide owns CI, and `scripts/ci/select.mjs` and `AGENTS.md`
-carry only parts.
-
-- `select` reads the changed paths and `scripts/ci/proofs.json`; a path gets
- cheaper only when a rule claims it. Unclaimed paths and control files
- (workflows, the selector and registry, `package.json`, the lockfile, the
- Playwright configs) run every check. On a pull request the base commit's
- control list also applies, so a change cannot make itself cheaper. A file a
- browser spec imports runs that spec and counts as a site change.
-- A pull request runs only the selected checks, unit tests and build in
- parallel; browser subsets write no evidence (D-028).
-- A push to `main` that changes the site runs the whole matrix in shards
- (desktop in four parts; projects read from the Playwright config), with
- packed consumers in parallel. Blob reports merge once into the evidence
- reporter, which refuses a missing shard or configured test; then the
- verification report and deployment. No site change, no deployment. Changed
- paths count from the last commit that reached Pages.
-- `release-gate`, the only required check, recomputes the plan from Git with
- the same code and checks each job ran as planned and passed.
-- `fullyParallel`, two workers per CI job, zero retries. The page axe scan is
- two tests (colour contrast; every other rule) covering exactly the tagged
- rules. Only an unnarrowed `playwright test`, or the merge of every shard,
- writes evidence.
+**Decision.** CI is `select` → checks → `release-gate`: a change runs the
+checks its changed paths need, and a push to `main` that changes the site
+runs the whole matrix in shards before it deploys. Rules: `docs/ci.md`.
**Why.** `main` ran every check whatever changed: a terminal-kit-only change
took 63 minutes to deploy, and the browser suite ran on one worker for 24.7
@@ -478,6 +459,23 @@ r11 found the over-the-text limit after the owner's choice.
chose 50% from the side-by-side comparison after the review rejected the opaque
fill.
+## D-039 Code and terminal backgrounds: two pairs, two scopes
+
+**Decision.** Both pairs stay, with their values. `surface.code` and
+`surface.terminal` (pure black, D-023) are what a static code block or a
+terminal pane sits on; `code.bg` and `terminal.bg` (`#0c0909`) fill the inside
+of an editor and a terminal's cell grid, where `terminal.bg` equals ANSI 0.
+Rule: `spec/foundations.md`, Code and terminal.
+
+**Why.** Both pairs carried the same descriptions ("Editor background",
+"Terminal background") with different values, so a consumer could not tell
+which to use. Rejected: merging into pure black, which changes the terminal
+background of the four terminal ports (Claude Code, Ghostty, Orca, Warp) and
+Obsidian's code background; merging into `#0c0909`, which partly reverses
+D-023 and changes the code block Windows maps from `surface.code`.
+
+**Status.** accepted · 2026-10-15 · owner, choosing "Keep both, scope them".
+
## D-009 Density modes
**Decision.** Density modes are tokens, set with `data-density` on any
@@ -633,6 +631,22 @@ selection) and one-off dropdowns (duplicate behaviour).
**Status.** accepted · 2026-09-09 · owner.
+## D-040 One contrast focus ring for fills and invalid fields
+
+**Decision.** A composite role, `focus.ring-contrast`: the 1px dashed control
+ring in `interaction.focus.ring-container`. Controls on a fill (checked,
+mixed, primary) and invalid fields beside the danger border use it wherever
+the ordinary red ring would merge with what is under or beside it; containers
+keep `focus.ring-container`. Rendering is unchanged. Rule:
+`spec/foundations.md`, rule 2 and the state table.
+
+**Why.** Twelve component stylesheets wrote the same ring out longhand. A role
+names it once for every consumer and port. Rejected: keeping it written out;
+`focus.ring-on-fill`, which would misname the eight invalid-field uses.
+
+**Status.** accepted · 2026-10-15 · owner, choosing a new role and then the
+name `focus.ring-contrast` for all twelve uses. Builds on D-006 (proposed).
+
## D-016 Pinned release comparison report and historical rendering
**Decision.** A release comparison report (schema version 1) records both
diff --git a/spec/foundations.md b/spec/foundations.md
index 97a19ec7b..764d2ded8 100644
--- a/spec/foundations.md
+++ b/spec/foundations.md
@@ -81,7 +81,7 @@ Every interactive component declares which of these apply and demonstrates every
| selected, container inactive | `interaction.selection.inactive-bg` with `interaction.selection.inactive-text`; no ring | lightness drop between the two fills |
| disabled | `text.disabled`, `border.disabled`, `interaction.disabled.bg`; no hover or pressed styling; still focusable when `aria-disabled` | `disabled` / `aria-disabled`; `cursor: not-allowed` (rule 5) |
| invalid | border → `status.danger.border` at 2px; message in `status.danger.text` with the `✕` glyph; `aria-invalid`; `aria-describedby` | border width 1 → 2px; glyph; message |
-| invalid + focus-visible | the 2px danger border **and** the ring in `interaction.focus.ring-container` at `focus.offset-invalid` | double boundary |
+| invalid + focus-visible | the 2px danger border **and** `focus.ring-contrast` at `focus.offset-invalid` | double boundary |
| read-only | `text.default`; 1px dotted `border.divider` bottom; no fill; focusable; selectable | `readonly`; dotted edge |
| loading | size unchanged; a static `⋯` glyph replaces the leading icon; `aria-busy` | glyph; no animation under reduced motion |
| busy / indeterminate | static 45° stripes of `action.primary.bg` on `interaction.pressed.bg`; `aria-valuetext` | stripes |
@@ -93,7 +93,7 @@ Every interactive component declares which of these apply and demonstrates every
Rules that apply everywhere:
1. **Selection is a fill; focus is a ring.** Neither borrows the other's form. The ring must reach 3:1 on whatever it sits over: `#e53935` falls below it on `action.primary.bg` and `status.danger.fill`, so the ring recolours on those fills; it meets it on `interaction.selection.bg` (D-027), so a selected row keeps the ordinary control ring.
-2. **Focus ring (D-006; component mapping clarification D-015).** Controls and rows: `outline: 1px dashed {color.interaction.focus.ring}; outline-offset: -2px`. Focusable containers (panes, windows, dialogs, cards): `outline: 2px solid {color.interaction.focus.ring-container}; outline-offset: -3px`. On filled surfaces use the component's explicit ring mapping: primary buttons and checked controls use `interaction.focus.ring-container` where declared; destructive buttons use their declared on-fill text role. The selection fill is the exception and takes the ordinary ring, on the measurement in rule 1. Keep the control or container geometry independently of the colour mapping. `:focus:not(:focus-visible)` draws nothing. Forced-colors mode uses `Highlight`. A host focus indicator is never removed without this replacement.
+2. **Focus ring (D-006; component mapping clarification D-015).** Controls and rows: `outline: 1px dashed {color.interaction.focus.ring}; outline-offset: -2px`. Focusable containers (panes, windows, dialogs, cards): `outline: 2px solid {color.interaction.focus.ring-container}; outline-offset: -3px`. On filled surfaces use the component's explicit ring mapping: primary buttons and checked controls use `focus.ring-contrast` (the control ring in `interaction.focus.ring-container`, D-040) where declared; destructive buttons use their declared on-fill text role. The selection fill is the exception and takes the ordinary ring, on the measurement in rule 1. Keep the control or container geometry independently of the colour mapping. `:focus:not(:focus-visible)` draws nothing. Forced-colors mode uses `Highlight`. A host focus indicator is never removed without this replacement.
3. **Never colour-only.** Every state and every status carries a second channel: a glyph (`✕ ! ✓ i ·`), a border width, an underline pattern, or an ARIA state. Charts carry pattern fills.
4. **Hover changes fills and borders, never text colour alone**, and only on hover-capable pointers.
5. **Disabled never uses opacity.** Opacity leaks the background and breaks contrast accounting.
@@ -151,6 +151,11 @@ Always keep textual markers and existing status icons.
## Code and terminal
+Two background pairs (D-039): `surface.code` and `surface.terminal` (pure
+black) are what a static code block or a terminal pane sits on; `code.bg` and
+`terminal.bg` (`#0c0909`) fill the inside of an editor and the cell grid of a
+terminal, where `terminal.bg` equals ANSI 0.
+
Editor surfaces:
- background `code.bg` (`#0c0909`), current line `code.current-line`
@@ -241,7 +246,9 @@ A popup opened by hovering follows the pointer:
- It moves again on pointer move, scroll and resize.
- A popup with nothing to operate takes no pointer events; one with a control
or link stays reachable and open while the pointer is inside it.
-- Either kind closes when the pointer leaves both the trigger and the popup.
+- Either kind closes when the pointer leaves both the trigger and the popup;
+ the reachable kind waits 300 ms first, so the pointer can cross between
+ them, and stays while keyboard focus is on its trigger or inside it.
Opened from the keyboard, the same popup anchors to its trigger: below it, or
above when there is no room below. This is a placement rule only; what opens a
diff --git a/tests/browser/hover-popups.spec.js b/tests/browser/hover-popups.spec.js
new file mode 100644
index 000000000..7756489dc
--- /dev/null
+++ b/tests/browser/hover-popups.spec.js
@@ -0,0 +1,258 @@
+import { test, expect } from "./evidence-fixture.mjs";
+import { verification } from "./verification.mjs";
+import { only } from "./helpers.mjs";
+
+/* Hover popups with something to read or operate stay open while the pointer
+ moves onto them (foundations, hover popups; WCAG 1.4.13), so a reader can
+ reach a long one and scroll it. Each test approaches the popup the way a
+ person does, diagonally and in small steps. The passive hex preview is
+ covered by hex-swatches.spec.js. */
+
+const centre = (box) => ({ x: box.x + box.width / 2, y: box.y + Math.min(box.height / 2, 24) });
+
+test("the token inspector stays open while the pointer moves onto it and scrolls it", verification({ component: "page", category: "enhancements", states: [], variants: [], note: "Token inspector opened by pointer on a component page, reached diagonally and scrolled with the wheel. Pointer only; keyboard opening is covered elsewhere." }), async ({ page }, testInfo) => {
+ test.skip(!only(testInfo, "desktop"), "pointer hover on desktop");
+ await page.setViewportSize({ width: 1200, height: 420 });
+ await page.goto("components/button/", { waitUntil: "networkidle" });
+ const token = page.locator("main [data-token]:not(.hex-swatch)").first();
+ await token.scrollIntoViewIfNeeded();
+ /* Near the top of the viewport the panel opens below the pointer, so the
+ path to it crosses page content that is not the token. */
+ await token.evaluate((el) => window.scrollBy(0, el.getBoundingClientRect().top - 60));
+ const start = await token.boundingBox();
+ await page.mouse.move(start.x + 2, start.y + start.height / 2);
+ await page.mouse.move(start.x + 4, start.y + start.height / 2);
+ const inspector = page.locator("#inspector");
+ await expect(inspector).toBeVisible();
+ expect(await inspector.evaluate((el) => el.scrollHeight > el.clientHeight)).toBe(true);
+ const target = centre(await inspector.boundingBox());
+ await page.mouse.move(target.x, target.y, { steps: 15 });
+ await expect(inspector).toBeVisible();
+ await page.mouse.wheel(0, 120);
+ await expect.poll(() => inspector.evaluate((el) => el.scrollTop)).toBeGreaterThan(0);
+ await expect(inspector).toBeVisible();
+ /* Leaving the popup closes it after the grace period. */
+ await page.mouse.move(2, 2, { steps: 4 });
+ await expect(inspector).toBeHidden();
+});
+
+test("a slow inspector load does not open the panel after the pointer has left", verification({ component: "page", category: "enhancements", states: [], variants: [], note: "The first inspector data request is held while the pointer leaves; releasing it must not open a stale panel. Pointer only." }), async ({ page }, testInfo) => {
+ test.skip(!only(testInfo, "desktop"), "pointer hover on desktop");
+ let release;
+ const held = new Promise((resolve) => { release = resolve; });
+ await page.route("**/tokens/inspector.json", async (route) => { await held; await route.continue(); });
+ await page.goto("components/button/", { waitUntil: "domcontentloaded" });
+ const token = page.locator("main a[data-token]").first();
+ await token.scrollIntoViewIfNeeded();
+ const start = await token.boundingBox();
+ await page.mouse.move(start.x + 2, start.y + start.height / 2);
+ await page.mouse.move(start.x + 4, start.y + start.height / 2);
+ await page.mouse.move(2, 2, { steps: 4 });
+ release();
+ await page.waitForTimeout(600);
+ await expect(page.locator("#inspector")).toBeHidden();
+});
+
+test("returning from a hex swatch to the same token reopens the inspector", verification({ component: "page", category: "enhancements", states: [], variants: [], note: "Token, then the swatch in the same table row (its passive preview takes over), then back to the token within the grace period. Pointer only." }), async ({ page }, testInfo) => {
+ test.skip(!only(testInfo, "desktop"), "pointer hover on desktop");
+ await page.goto("components/button/", { waitUntil: "networkidle" });
+ const token = page.locator("main a[data-token]").first();
+ const swatch = token.locator("xpath=ancestor::tr").locator(".hex-swatch").first();
+ await token.scrollIntoViewIfNeeded();
+ await token.evaluate((el) => window.scrollBy(0, el.getBoundingClientRect().top - 60));
+ const t = await token.boundingBox(), s = await swatch.boundingBox();
+ await page.mouse.move(t.x + 2, t.y + t.height / 2);
+ await page.mouse.move(t.x + 4, t.y + t.height / 2);
+ await expect(page.locator("#inspector")).toBeVisible();
+ await page.mouse.move(s.x + s.width / 2, s.y + s.height / 2);
+ await expect(page.locator("#hex-popup")).toBeVisible();
+ await page.waitForTimeout(30);
+ await page.mouse.move(t.x + 4, t.y + t.height / 2);
+ await expect(page.locator("#inspector")).toBeVisible();
+ await page.waitForTimeout(500);
+ await expect(page.locator("#inspector")).toBeVisible();
+});
+
+test("the inspector stays while keyboard focus is inside it, whatever the pointer does", verification({ component: "page", category: "keyboard", states: ["focus-visible"], variants: [], note: "Inspector opened by focusing a token; focus moves to its details link; the pointer enters and leaves the panel. Focus must stay on the link. Automated Chromium only; no manual keyboard pass." }), async ({ page }, testInfo) => {
+ test.skip(!only(testInfo, "desktop"), "pointer and focus on desktop");
+ await page.goto("components/button/", { waitUntil: "networkidle" });
+ const token = page.locator("main a[data-token]").first();
+ await token.scrollIntoViewIfNeeded();
+ await token.focus();
+ const inspector = page.locator("#inspector");
+ await expect(inspector).toBeVisible();
+ const link = inspector.getByRole("link", { name: "Full usage and source details" });
+ await link.focus();
+ const box = await inspector.boundingBox();
+ await page.mouse.move(box.x + box.width / 2, box.y + Math.min(box.height / 2, 24));
+ await page.mouse.move(2, 2);
+ await page.waitForTimeout(500);
+ await expect(inspector).toBeVisible();
+ await expect(link).toBeFocused();
+ /* The passive hex preview of a swatch in the token's row does not take it away either. */
+ const swatch = token.locator("xpath=ancestor::tr").locator(".hex-swatch").first();
+ const s = await swatch.boundingBox();
+ await page.mouse.move(s.x + s.width / 2, s.y + s.height / 2);
+ await expect(page.locator("#hex-popup")).toBeVisible();
+ await expect(inspector).toBeVisible();
+ await expect(link).toBeFocused();
+});
+
+test("a keyboard open survives the pointer leaving while the inspector data loads", verification({ component: "page", category: "keyboard", states: ["focus-visible"], variants: [], note: "Token hovered, then focused, while the first data request is held; the pointer leaves before the response. The focused token must still get its inspector. Automated Chromium only." }), async ({ page }, testInfo) => {
+ test.skip(!only(testInfo, "desktop"), "pointer and focus on desktop");
+ let release;
+ const held = new Promise((resolve) => { release = resolve; });
+ await page.route("**/tokens/inspector.json", async (route) => { await held; await route.continue(); });
+ await page.goto("components/button/", { waitUntil: "domcontentloaded" });
+ const token = page.locator("main a[data-token]").first();
+ await token.scrollIntoViewIfNeeded();
+ const start = await token.boundingBox();
+ await page.mouse.move(start.x + 2, start.y + start.height / 2);
+ await page.mouse.move(start.x + 4, start.y + start.height / 2);
+ await token.focus();
+ await page.mouse.move(2, 2, { steps: 4 });
+ release();
+ await expect(page.locator("#inspector")).toBeVisible();
+ await expect(token).toBeFocused();
+});
+
+test("a tooltip stays open while the pointer crosses to its popup", verification({ component: "tooltip", category: "enhancements", states: ["hover"], variants: ["default"], note: "First live tooltip on its component page: hover opens it, a diagonal move onto the wider popup keeps it, leaving both closes it. Pointer only." }), async ({ page }, testInfo) => {
+ test.skip(!only(testInfo, "desktop"), "pointer hover on desktop");
+ await page.goto("components/tooltip/", { waitUntil: "networkidle" });
+ const root = page.locator("j3w1-tooltip").first();
+ const trigger = root.locator(".tooltip-trigger"), popup = root.locator('[role="tooltip"]');
+ await trigger.scrollIntoViewIfNeeded();
+ const start = await trigger.boundingBox();
+ await page.mouse.move(start.x + start.width / 2, start.y + start.height / 2);
+ await expect(popup).toBeVisible();
+ const box = await popup.boundingBox();
+ /* The popup is wider than its trigger: aim at its far side, so the path
+ leaves the trigger sideways before it reaches the popup. */
+ await page.mouse.move(box.x + box.width - 8, box.y + box.height / 2, { steps: 12 });
+ await expect(popup).toBeVisible();
+ await page.mouse.move(2, 2, { steps: 4 });
+ await expect(popup).toBeHidden();
+});
+
+test("hovering another token does not take over a panel that keyboard focus holds", verification({ component: "page", category: "keyboard", states: ["focus-visible"], variants: [], note: "Inspector opened by focus on token A with focus moved to its details link, and separately A focused while its data loads; the pointer hovers token B. A's panel and focus must stay. A click on the page background then closes it. Automated Chromium only." }), async ({ page }, testInfo) => {
+ test.skip(!only(testInfo, "desktop"), "pointer and focus on desktop");
+ let release;
+ const held = new Promise((resolve) => { release = resolve; });
+ await page.route("**/tokens/inspector.json", async (route) => { await held; await route.continue(); });
+ await page.goto("components/button/", { waitUntil: "domcontentloaded" });
+ const tokens = page.locator("main a[data-token]");
+ const a = tokens.nth(0), b = tokens.nth(2);
+ const pathA = await a.getAttribute("data-token");
+ await a.scrollIntoViewIfNeeded();
+ /* A is focused while its data loads; the pointer passes over B and away. */
+ await a.focus();
+ const bb = await b.boundingBox();
+ await page.mouse.move(bb.x + 4, bb.y + bb.height / 2);
+ await page.mouse.move(bb.x + 6, bb.y + bb.height / 2);
+ await page.mouse.move(2, 2, { steps: 4 });
+ release();
+ const inspector = page.locator("#inspector");
+ await expect(inspector).toBeVisible();
+ await expect(inspector).toContainText(pathA);
+ /* Focus inside A's panel; hovering a token the panel does not cover neither
+ replaces the panel nor drops focus. */
+ const link = inspector.getByRole("link", { name: "Full usage and source details" });
+ await link.focus();
+ const panel = await inspector.boundingBox();
+ const free = await tokens.evaluateAll((els, { panel, pathA }) => {
+ for (const el of els) {
+ if (el.dataset.token === pathA) continue;
+ const r = el.getBoundingClientRect();
+ const x = r.left + Math.min(6, r.width / 2), y = r.top + r.height / 2;
+ const inside = x >= panel.x && x <= panel.x + panel.width && y >= panel.y && y <= panel.y + panel.height;
+ if (!inside && y > 0 && y < innerHeight && x > 0 && x < innerWidth && document.elementFromPoint(x, y)?.closest("[data-token]") === el) return { x, y };
+ }
+ return null;
+ }, { panel, pathA });
+ expect(free).not.toBeNull();
+ await page.mouse.move(free.x - 1, free.y);
+ await page.mouse.move(free.x, free.y);
+ await page.waitForTimeout(400);
+ await expect(inspector).toContainText(pathA);
+ await expect(link).toBeFocused();
+ /* A click on the page background sends focus nowhere and closes the panel. */
+ await page.mouse.move(2, 2);
+ await page.locator("main h1").first().click();
+ await expect(inspector).toBeHidden();
+});
+
+test("focus leaving for the page background cancels a keyboard open still loading", verification({ component: "page", category: "keyboard", states: ["focus-visible"], variants: [], note: "Token focused while the first data request is held; a click on the page background sends focus nowhere before the response. No inspector may open afterwards. Automated Chromium only." }), async ({ page }, testInfo) => {
+ test.skip(!only(testInfo, "desktop"), "pointer and focus on desktop");
+ let release;
+ const held = new Promise((resolve) => { release = resolve; });
+ await page.route("**/tokens/inspector.json", async (route) => { await held; await route.continue(); });
+ await page.goto("components/button/", { waitUntil: "domcontentloaded" });
+ const token = page.locator("main a[data-token]").first();
+ await token.scrollIntoViewIfNeeded();
+ await token.focus();
+ await page.locator("main h1").first().click();
+ release();
+ await page.waitForTimeout(600);
+ await expect(page.locator("#inspector")).toBeHidden();
+});
+
+test("a keyboard-opened inspector follows its token on scroll and stays inside a narrow viewport", verification({ component: "page", category: "reflow", states: ["focus-visible"], variants: [], note: "Inspector opened by focus, then the page scrolls and the viewport narrows to 360px. The panel must not cover its token and must keep the 8px gutter. Automated Chromium only." }), async ({ page }, testInfo) => {
+ test.skip(!only(testInfo, "desktop"), "focus and resize on desktop");
+ await page.goto("components/button/", { waitUntil: "networkidle" });
+ const token = page.locator("main a[data-token]").first();
+ await token.scrollIntoViewIfNeeded();
+ await token.evaluate((el) => window.scrollBy(0, el.getBoundingClientRect().top - 200));
+ await token.focus();
+ const inspector = page.locator("#inspector");
+ await expect(inspector).toBeVisible();
+ const overlaps = async () => {
+ const [p, t] = [await inspector.boundingBox(), await token.boundingBox()];
+ return p.x < t.x + t.width && t.x < p.x + p.width && p.y < t.y + t.height && t.y < p.y + p.height;
+ };
+ await page.mouse.wheel(0, 120);
+ await expect.poll(overlaps).toBe(false);
+ const inGutter = async (width, height) => {
+ const p = await inspector.boundingBox();
+ return p.x >= 8 && p.x + p.width <= width - 8 && p.y >= 8 && p.y + p.height <= height - 8;
+ };
+ /* The token scrolls out of view above: the panel stays inside the gutter. */
+ await token.evaluate((el) => window.scrollBy(0, el.getBoundingClientRect().bottom + 300));
+ const desk = page.viewportSize();
+ await expect.poll(() => inGutter(desk.width, desk.height)).toBe(true);
+ await token.evaluate((el) => window.scrollBy(0, el.getBoundingClientRect().top - 200));
+ /* At 360px the page reflows and the token moves away: the panel stays inside
+ the gutter; brought back into view, the token is not covered. */
+ await page.setViewportSize({ width: 360, height: 700 });
+ await expect.poll(() => inGutter(360, 700)).toBe(true);
+ await token.scrollIntoViewIfNeeded();
+ await expect.poll(async () => (await inGutter(360, 700)) && !(await overlaps())).toBe(true);
+ await expect(token).toBeFocused();
+});
+
+test("an inspector under the pointer stays inside a viewport that narrows", verification({ component: "page", category: "reflow", states: [], variants: [], note: "Inspector opened by pointer, pointer resting on the panel, viewport narrowed to 360px: the panel stays inside the 8px gutter. Pointer only." }), async ({ page }, testInfo) => {
+ test.skip(!only(testInfo, "desktop"), "pointer hover on desktop");
+ await page.goto("components/button/", { waitUntil: "networkidle" });
+ const token = page.locator("main a[data-token]").first();
+ await token.scrollIntoViewIfNeeded();
+ await token.evaluate((el) => window.scrollBy(0, el.getBoundingClientRect().top - 60));
+ const start = await token.boundingBox();
+ await page.mouse.move(start.x + 2, start.y + start.height / 2);
+ await page.mouse.move(start.x + 4, start.y + start.height / 2);
+ const inspector = page.locator("#inspector");
+ await expect(inspector).toBeVisible();
+ const box = await inspector.boundingBox();
+ await page.mouse.move(box.x + box.width / 2, box.y + Math.min(box.height / 2, 24), { steps: 10 });
+ await page.setViewportSize({ width: 360, height: 700 });
+ /* Right after the resize the panel is clamped inside the gutter, never
+ clipped. The pointer now lies outside the narrower viewport, so the panel
+ then closes after the grace period, as the hover popup rule says. */
+ const inGutterOrClosed = () => inspector.evaluate((el) => {
+ const r = el.getBoundingClientRect();
+ return el.hidden || (r.left >= 8 && r.right <= innerWidth - 8 && r.top >= 8 && r.bottom <= innerHeight - 8);
+ });
+ /* Let the resize event and its repositioning frame run, then sample until
+ the grace period has passed: visible means inside the gutter. */
+ await page.waitForTimeout(100);
+ for (let i = 0; i < 6; i++) { expect(await inGutterOrClosed()).toBe(true); await page.waitForTimeout(60); }
+ await expect(inspector).toBeHidden();
+});
diff --git a/tests/telegram-port.test.js b/tests/telegram-port.test.js
index b90994280..0493b3b95 100644
--- a/tests/telegram-port.test.js
+++ b/tests/telegram-port.test.js
@@ -118,7 +118,7 @@ test("emission is byte-identical across repeats and time zones", () => {
});
test("every token and upstream key has one classification with direct, non-redundant inheritance", () => {
- assert.equal(resolved.size, 356);
+ assert.equal(resolved.size, 357);
assertPortMapping({ ...port, mapping }, resolved.keys());
assertCapabilities({ ...port, mapping }, capabilities);
const keys = Object.values(mapping.mappings).flat(); assert.equal(new Set(keys).size, keys.length);
diff --git a/tokens/foundations.tokens.json b/tokens/foundations.tokens.json
index 73d0a4410..1402584be 100644
--- a/tokens/foundations.tokens.json
+++ b/tokens/foundations.tokens.json
@@ -402,6 +402,23 @@
},
"$description": "outline on focusable containers."
},
+ "ring-contrast": {
+ "$type": "border",
+ "$value": {
+ "color": "{color.interaction.focus.ring-container}",
+ "width": "{border.width.default}",
+ "style": "dashed"
+ },
+ "$description": "outline where the ordinary red ring would merge with what is under or beside it: controls on a fill and invalid fields beside the danger border; the control ring in the container colour (D-040).",
+ "$extensions": {
+ "io.github.j3w1.theme": {
+ "status": "approved",
+ "approval": {
+ "decision": "D-040"
+ }
+ }
+ }
+ },
"offset": {
"$type": "dimension",
"$value": {
diff --git a/tokens/semantic.tokens.json b/tokens/semantic.tokens.json
index 539acbd68..ddc80cfc4 100644
--- a/tokens/semantic.tokens.json
+++ b/tokens/semantic.tokens.json
@@ -113,7 +113,7 @@
},
"code": {
"$value": "{color.primitive.ink.0}",
- "$description": "Editor background.",
+ "$description": "Surface a static code block sits on, such as a document's pre: pure black like the canvas (D-023, D-039).",
"$extensions": {
"io.github.j3w1.theme": {
"status": "approved",
@@ -125,7 +125,7 @@
},
"terminal": {
"$value": "{color.primitive.ink.0}",
- "$description": "Terminal background.",
+ "$description": "Surface of a pane that hosts a terminal, around its cell grid (D-023, D-039).",
"$extensions": {
"io.github.j3w1.theme": {
"status": "approved",
@@ -781,7 +781,7 @@
"code": {
"bg": {
"$value": "{color.primitive.ink.20}",
- "$description": "Editor background."
+ "$description": "Background inside a code editor, diff view or diagnostics list (D-039)."
},
"current-line": {
"$value": "{color.primitive.ink.40}",
@@ -1260,7 +1260,7 @@
"terminal": {
"bg": {
"$value": "{color.primitive.ink.20}",
- "$description": "Terminal background."
+ "$description": "Terminal background. It fills a terminal's cell grid and equals ANSI 0 (D-039)."
},
"fg": {
"$value": "{color.primitive.rose.700}",