@mkbabb/glass-ui 3.12.0 → 3.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (360) hide show
  1. package/dist/{CardAction-DuArVky-.js → CardAction-Cj2eycQ2.js} +2 -2
  2. package/dist/{CommandShortcut-CefCj5mt.js → CommandShortcut-RowNEO6i.js} +4 -4
  3. package/dist/{ContextMenuSubContent-Bhg4f5jX.js → ContextMenuSubContent-BQmxTAdw.js} +4 -4
  4. package/dist/{DataTable-CUHMukiQ.js → DataTable-BCddn3T3.js} +3 -3
  5. package/dist/{DialogContent-BRkT1cjP.js → DialogContent-Dl9WkAoS.js} +3 -3
  6. package/dist/{DialogFooter-Gprw8H_A.js → DialogFooter-Blu4t7tJ.js} +2 -2
  7. package/dist/{HoverPopover-2LOIW34a.js → HoverPopover-CISOJQuZ.js} +1 -1
  8. package/dist/{IconTooltip-Cus0fvK0.js → IconTooltip-DPzE09X9.js} +1 -1
  9. package/dist/MetricBadge-C9QMz1KT.js +79 -0
  10. package/dist/{Notification-DLMhblXR.js → Notification-DdwNxIrI.js} +2 -2
  11. package/dist/{NumberFieldContent-BbLOh8RU.js → NumberFieldContent-CqaN-SvN.js} +3 -3
  12. package/dist/{PopoverContent-BId6ggf_.js → PopoverContent-BYwt2-4x.js} +1 -1
  13. package/dist/{ScrollingText-BPP84wKo.js → ScrollingText-DfFrwSph.js} +1 -1
  14. package/dist/{SelectScrollDownButton-T32cVFeM.js → SelectScrollDownButton-CiDUxfEj.js} +6 -6
  15. package/dist/{Switch-Ch-k3Rv-.js → Switch-CsIuYP_e.js} +1 -1
  16. package/dist/{TabsList-B8CVOQPC.js → TabsList-Dttss653.js} +9 -5
  17. package/dist/{Toaster-1rYWrmAm.js → Toaster-D6q4HtXu.js} +50 -47
  18. package/dist/{ToggleGroupItem-COu_4IW4.js → ToggleGroupItem-D_AHlRw9.js} +18 -22
  19. package/dist/animated-digit.js +2 -2
  20. package/dist/api/index.d.ts +5 -2
  21. package/dist/api.js +2 -2
  22. package/dist/aurora.js +69 -69
  23. package/dist/{badge-CaoFJzRb.js → badge-UILT_3pZ.js} +1 -1
  24. package/dist/badge.js +1 -1
  25. package/dist/{button-DN39cGqL.js → button-ChXMfsud.js} +12 -12
  26. package/dist/button.js +1 -1
  27. package/dist/card.js +1 -1
  28. package/dist/carousel.js +8 -8
  29. package/dist/{check-BBKKKSTf.js → check-njhk-vfu.js} +1 -1
  30. package/dist/{chevron-down-BSkTP2aL.js → chevron-down-DKkxb4VV.js} +1 -1
  31. package/dist/{chevron-right-sDM0Yvrf.js → chevron-right-CPXbqQQz.js} +1 -1
  32. package/dist/{chevron-up-CCOD_FTz.js → chevron-up-n_24SqI-.js} +1 -1
  33. package/dist/coalesceMetric-5qIeZnTx.js +13 -0
  34. package/dist/{color-C5ls_QF7.js → color-CUYeFbgd.js} +9 -7
  35. package/dist/color.js +1 -1
  36. package/dist/command.js +1 -1
  37. package/dist/components/custom/animated-digit/AnimatedDigit.vue.d.ts +8 -0
  38. package/dist/components/custom/aurora/constants/presets.d.ts +5 -62
  39. package/dist/components/custom/aurora/constants/shaders/mediums.glsl.d.ts +1 -1
  40. package/dist/components/custom/aurora/constants/shaders/vangogh-medium.glsl.d.ts +1 -0
  41. package/dist/components/custom/aurora/index.d.ts +1 -1
  42. package/dist/components/custom/configurator/ConfiguratorRow.vue.d.ts +16 -0
  43. package/dist/components/custom/constellation/Constellation.vue.d.ts +74 -6
  44. package/dist/components/custom/constellation/composables/createConstellationField.d.ts +41 -0
  45. package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +35 -0
  46. package/dist/components/custom/constellation/constants.d.ts +61 -0
  47. package/dist/components/custom/constellation/constellationDraw.d.ts +30 -0
  48. package/dist/components/custom/constellation/constellationField.d.ts +116 -149
  49. package/dist/components/custom/constellation/constellationInteraction.d.ts +132 -0
  50. package/dist/components/custom/constellation/index.d.ts +5 -2
  51. package/dist/components/custom/controls/DarkModeToggle.vue.d.ts +11 -0
  52. package/dist/components/custom/dock/DockRail.vue.d.ts +88 -0
  53. package/dist/components/custom/dock/DockTabButton.vue.d.ts +3 -4
  54. package/dist/components/custom/dock/GlassDock.vue.d.ts +5 -118
  55. package/dist/components/custom/dock/composables/dockMorphContext.d.ts +36 -0
  56. package/dist/components/custom/dock/composables/index.d.ts +1 -0
  57. package/dist/components/custom/dock/composables/useDockClickIntegrity.d.ts +23 -0
  58. package/dist/components/custom/dock/composables/useDockMorphWindow.d.ts +15 -0
  59. package/dist/components/custom/dock/composables/useDockOrientationMorph.d.ts +44 -0
  60. package/dist/components/custom/dock/composables/useDockShellProps.d.ts +165 -0
  61. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +44 -0
  62. package/dist/components/custom/dock/constants.d.ts +48 -0
  63. package/dist/components/custom/dock/index.d.ts +3 -0
  64. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +5 -37
  65. package/dist/components/custom/fourier-field/index.d.ts +1 -1
  66. package/dist/components/custom/fourier-field/math.d.ts +17 -0
  67. package/dist/components/custom/fourier-field/presets.d.ts +54 -0
  68. package/dist/components/custom/goo-blob/composables/buildMetaballProgram.d.ts +18 -0
  69. package/dist/components/custom/goo-blob/composables/uploadBlobUniforms.d.ts +41 -0
  70. package/dist/components/custom/goo-blob/composables/useBlobPointer.d.ts +4 -3
  71. package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +11 -8
  72. package/dist/components/custom/goo-blob/constants.d.ts +52 -0
  73. package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -0
  74. package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +2 -2
  75. package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +37 -0
  76. package/dist/components/custom/labeled-field/LabeledSelect.vue.d.ts +6 -0
  77. package/dist/components/custom/labeled-field/LabeledSlider.vue.d.ts +6 -0
  78. package/dist/components/custom/labeled-field/LabeledSwitch.vue.d.ts +6 -0
  79. package/dist/components/custom/metric-badge/MetricBadge.vue.d.ts +11 -18
  80. package/dist/components/custom/metric-badge/index.d.ts +1 -0
  81. package/dist/components/custom/metric-cell/MetricCell.vue.d.ts +15 -4
  82. package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +6 -4
  83. package/dist/components/custom/tabs/constants.d.ts +12 -0
  84. package/dist/components/custom/underline/GlassUnderline.vue.d.ts +84 -0
  85. package/dist/components/custom/underline/index.d.ts +2 -0
  86. package/dist/components/custom/underline/types.d.ts +56 -0
  87. package/dist/components/ui/card/Card.vue.d.ts +15 -3
  88. package/dist/components/ui/drawer/Drawer.vue.d.ts +1 -0
  89. package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +2 -2
  90. package/dist/components/ui/metric-pill/MetricPill.vue.d.ts +6 -3
  91. package/dist/components/ui/slider/index.d.ts +22 -19
  92. package/dist/components/ui/tabs/TabsIndicator.vue.d.ts +4 -1
  93. package/dist/components/ui/toast/use-toast.d.ts +2 -2
  94. package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
  95. package/dist/components/ui/toggle/index.d.ts +1 -1
  96. package/dist/components/ui/toggle-group/ToggleGroup.vue.d.ts +1 -7
  97. package/dist/components/ui/toggle-group/ToggleGroupItem.vue.d.ts +1 -3
  98. package/dist/components/ui/toggle-group/toggleGroupContext.d.ts +0 -13
  99. package/dist/composables/color/index.d.ts +12 -0
  100. package/dist/composables/dark/index.d.ts +1 -1
  101. package/dist/composables/dark/useGlobalDark.d.ts +1 -21
  102. package/dist/composables/glass/index.d.ts +0 -1
  103. package/dist/composables/glass/useGlassBackdropLuminance.d.ts +59 -0
  104. package/dist/composables/glass/useSpecularTracking.d.ts +12 -3
  105. package/dist/composables/motion/core/index.d.ts +1 -1
  106. package/dist/composables/motion/curves.d.ts +48 -0
  107. package/dist/composables/motion/index.d.ts +2 -0
  108. package/dist/composables/motion/springPresets.d.ts +33 -0
  109. package/dist/composables/motion/suite.d.ts +2 -0
  110. package/dist/composables/motion/useLiquidFlex.d.ts +85 -0
  111. package/dist/composables/motion/useSpringMount.d.ts +1 -1
  112. package/dist/configurator.js +1 -1
  113. package/dist/confirm-dialog.js +2 -2
  114. package/dist/constellation.js +336 -222
  115. package/dist/context-menu.js +2 -2
  116. package/dist/controls.js +48 -20
  117. package/dist/dark.d.ts +1 -1
  118. package/dist/dark.js +1 -1
  119. package/dist/data-table.js +1 -1
  120. package/dist/dialog.js +2 -2
  121. package/dist/dock.js +705 -365
  122. package/dist/dockContext-BegmJVmx.js +17 -0
  123. package/dist/dom.js +5 -5
  124. package/dist/{dropdown-menu-D77jX6Df.js → dropdown-menu-DzkkyBwX.js} +11 -8
  125. package/dist/dropdown-menu.js +1 -1
  126. package/dist/expandable-container.js +39 -80
  127. package/dist/forms.js +5 -5
  128. package/dist/fourier-field.js +134 -99
  129. package/dist/fourier-math.js +2 -2
  130. package/dist/glass-panel.js +86 -20
  131. package/dist/glass-ui.css +1 -1
  132. package/dist/glass-ui.js +222 -212
  133. package/dist/goo-blob.js +243 -212
  134. package/dist/hover-card.js +1 -1
  135. package/dist/hover-popover.js +1 -1
  136. package/dist/icon-tooltip.js +1 -1
  137. package/dist/index.d.ts +1 -3
  138. package/dist/instrument-chassis.js +1 -1
  139. package/dist/keyboard.js +1 -1
  140. package/dist/label.js +1 -1
  141. package/dist/labeled-field.js +28 -18
  142. package/dist/{math-DTpRVC0e.js → math-U6-RrLmV.js} +18 -2
  143. package/dist/metric-badge.js +1 -1
  144. package/dist/metric-cell.js +25 -21
  145. package/dist/metric-stack.js +35 -34
  146. package/dist/{minimize-2-lcXOuc6V.js → minimize-2-BV31Ob_h.js} +1 -1
  147. package/dist/motion-core.js +32 -137
  148. package/dist/motion-curves.d.ts +1 -0
  149. package/dist/motion-curves.js +130 -0
  150. package/dist/motion.js +38 -37
  151. package/dist/notification.js +1 -1
  152. package/dist/number-field.js +1 -1
  153. package/dist/paper-backdrop.js +1 -1
  154. package/dist/popover.js +1 -1
  155. package/dist/{presets-BP_ALM0m.js → presets-BKVyQfbt.js} +1 -14
  156. package/dist/progress.js +1 -1
  157. package/dist/reactive.js +2 -2
  158. package/dist/scrolling-text.js +1 -1
  159. package/dist/{search-nbkvr2dC.js → search-BSGrf2Sk.js} +1 -1
  160. package/dist/search.js +9 -9
  161. package/dist/select.js +3 -3
  162. package/dist/separator.js +1 -1
  163. package/dist/{sheet-VZEtNFvO.js → sheet-1fChZjtw.js} +3 -3
  164. package/dist/sheet.js +1 -1
  165. package/dist/{slider-ClgpP7EB.js → slider-B-JP2JlI.js} +4 -4
  166. package/dist/slider.js +1 -1
  167. package/dist/sortable-list.js +2 -2
  168. package/dist/springPresets--YdWTHtm.js +40 -0
  169. package/dist/stacked-icons.js +6 -6
  170. package/dist/styles/animations.css +29 -114
  171. package/dist/styles/cards.css +55 -0
  172. package/dist/styles/components.css +4 -1
  173. package/dist/styles/configurator.css +42 -0
  174. package/dist/styles/dock/layer-group.css +83 -25
  175. package/dist/styles/dock/layers.css +23 -1
  176. package/dist/styles/dock/morph-bridge.css +123 -0
  177. package/dist/styles/dock/morph.css +175 -45
  178. package/dist/styles/dock/overflow.css +51 -1
  179. package/dist/styles/dock/rail-extend.css +300 -0
  180. package/dist/styles/dock/shell.css +63 -105
  181. package/dist/styles/dock-controls/dark-mode-toggle.css +109 -0
  182. package/dist/styles/dock-controls/icon-button.css +133 -0
  183. package/dist/styles/dock-controls/tab-button.css +202 -0
  184. package/dist/styles/dock-controls/touch-floor.css +94 -0
  185. package/dist/styles/dock-controls/triggers.css +128 -0
  186. package/dist/styles/dock-controls.css +30 -595
  187. package/dist/styles/dock.css +2 -0
  188. package/dist/styles/drawer.css +2 -0
  189. package/dist/styles/floating-panel.css +17 -0
  190. package/dist/styles/glass/a11y-fallback.css +245 -0
  191. package/dist/styles/glass/ladder.css +337 -0
  192. package/dist/styles/glass/material.css +238 -0
  193. package/dist/styles/glass/progress-rail.css +78 -0
  194. package/dist/styles/glass/squircle.css +66 -0
  195. package/dist/styles/glass/surfaces.css +306 -0
  196. package/dist/styles/glass-refract.css +2 -0
  197. package/dist/styles/glass.css +31 -1188
  198. package/dist/styles/hover-popover.css +2 -0
  199. package/dist/styles/index.css +28 -14
  200. package/dist/styles/instrument-chassis.css +4 -0
  201. package/dist/styles/paper.css +2 -68
  202. package/dist/styles/segmented-tabs.css +275 -0
  203. package/dist/styles/theme/bridges.css +337 -0
  204. package/dist/styles/theme/dark.css +7 -0
  205. package/dist/styles/theme/literals.css +94 -0
  206. package/dist/styles/theme/radius.css +95 -0
  207. package/dist/styles/theme.css +26 -529
  208. package/dist/styles/tokens/color-radius.css +260 -0
  209. package/dist/styles/tokens/dark-arm.css +200 -0
  210. package/dist/styles/tokens/glass.css +440 -0
  211. package/dist/styles/tokens/light-dark.css +158 -0
  212. package/dist/styles/tokens/offsets-sizing.css +500 -0
  213. package/dist/styles/tokens/property-regs.css +169 -0
  214. package/dist/styles/tokens/scale-paper.css +366 -0
  215. package/dist/styles/tokens/scheme-motion.css +334 -0
  216. package/dist/styles/tokens/shadow.css +166 -0
  217. package/dist/styles/tokens.css +22 -2360
  218. package/dist/styles/typography.css +75 -21
  219. package/dist/styles/utilities/a11y-overrides.css +140 -0
  220. package/dist/styles/utilities/animate.css +26 -0
  221. package/dist/styles/utilities/base.css +365 -0
  222. package/dist/styles/utilities/btn.css +401 -0
  223. package/dist/styles/utilities/components.css +317 -0
  224. package/dist/styles/utilities.css +19 -1318
  225. package/dist/styles/view-transition.css +0 -51
  226. package/dist/switch.js +1 -1
  227. package/dist/tabs.js +91 -82
  228. package/dist/timeline.js +1 -1
  229. package/dist/toast.js +1 -1
  230. package/dist/toggle-group.js +1 -1
  231. package/dist/tooltip.js +1 -1
  232. package/dist/underline.d.ts +1 -0
  233. package/dist/underline.js +85 -0
  234. package/dist/{useAnimatedNumber-Bcpy5Etf.js → useAnimatedNumber-C5I3wWd8.js} +1 -1
  235. package/dist/{useConfiguratorState-DxAqksK6.js → useConfiguratorState-DAoeHVue.js} +8 -8
  236. package/dist/{useGlobalDark-CAhOXNLO.js → useGlobalDark-yhL4Wp-s.js} +3 -22
  237. package/dist/useLiquidFlex-BL0lLLN2.js +30 -0
  238. package/dist/useRAFLoop-Bxv0o6L5.js +109 -0
  239. package/dist/{useScrollProgress-CffFGLa5.js → useScrollProgress-Dlvx-L3v.js} +1 -1
  240. package/dist/useSpecularTracking-Bo5su68i.js +32 -0
  241. package/dist/useSpringMount-CI2jOstM.js +108 -0
  242. package/dist/{useTouchGate-WFyJYsth.js → useTouchGate-Dg7MQI1G.js} +1 -1
  243. package/dist/utils/coalesceMetric.d.ts +29 -0
  244. package/dist/utils/index.d.ts +1 -0
  245. package/dist/vReveal-CqaCz_mC.js +44 -0
  246. package/dist/watercolor-dot.js +11 -9
  247. package/dist/{x-Dfsegz9Y.js → x-BUwTKe50.js} +1 -1
  248. package/package.json +78 -58
  249. package/src/styles/animations.css +29 -114
  250. package/src/styles/cards.css +53 -0
  251. package/src/styles/configurator.css +42 -0
  252. package/src/styles/dock/layer-group.css +83 -25
  253. package/src/styles/dock/layers.css +23 -1
  254. package/src/styles/dock/morph-bridge.css +123 -0
  255. package/src/styles/dock/morph.css +175 -45
  256. package/src/styles/dock/overflow.css +51 -1
  257. package/src/styles/dock/rail-extend.css +300 -0
  258. package/src/styles/dock/shell.css +63 -105
  259. package/src/styles/dock-controls/dark-mode-toggle.css +109 -0
  260. package/src/styles/dock-controls/icon-button.css +133 -0
  261. package/src/styles/dock-controls/tab-button.css +202 -0
  262. package/src/styles/dock-controls/touch-floor.css +94 -0
  263. package/src/styles/dock-controls/triggers.css +128 -0
  264. package/src/styles/dock-controls.css +30 -595
  265. package/src/styles/dock.css +2 -0
  266. package/src/styles/floating-panel.css +15 -0
  267. package/src/styles/glass/a11y-fallback.css +245 -0
  268. package/src/styles/glass/ladder.css +337 -0
  269. package/src/styles/glass/material.css +238 -0
  270. package/src/styles/glass/progress-rail.css +78 -0
  271. package/src/styles/glass/squircle.css +66 -0
  272. package/src/styles/glass/surfaces.css +306 -0
  273. package/src/styles/glass.css +31 -1188
  274. package/src/styles/index.css +28 -14
  275. package/src/styles/paper.css +2 -68
  276. package/src/styles/segmented-tabs.css +271 -0
  277. package/src/styles/theme/bridges.css +337 -0
  278. package/src/styles/theme/dark.css +7 -0
  279. package/src/styles/theme/literals.css +94 -0
  280. package/src/styles/theme/radius.css +95 -0
  281. package/src/styles/theme.css +26 -529
  282. package/src/styles/tokens/color-radius.css +260 -0
  283. package/src/styles/tokens/dark-arm.css +200 -0
  284. package/src/styles/tokens/glass.css +440 -0
  285. package/src/styles/tokens/light-dark.css +158 -0
  286. package/src/styles/tokens/offsets-sizing.css +500 -0
  287. package/src/styles/tokens/property-regs.css +169 -0
  288. package/src/styles/tokens/scale-paper.css +366 -0
  289. package/src/styles/tokens/scheme-motion.css +334 -0
  290. package/src/styles/tokens/shadow.css +166 -0
  291. package/src/styles/tokens.css +22 -2360
  292. package/src/styles/typography.css +75 -21
  293. package/src/styles/utilities/a11y-overrides.css +140 -0
  294. package/src/styles/utilities/animate.css +26 -0
  295. package/src/styles/utilities/base.css +365 -0
  296. package/src/styles/utilities/btn.css +401 -0
  297. package/src/styles/utilities/components.css +317 -0
  298. package/src/styles/utilities.css +19 -1318
  299. package/src/styles/view-transition.css +0 -51
  300. package/dist/DeckProgress-Dmk4_AKN.js +0 -23
  301. package/dist/InstrumentRail-CUJ05YVG.js +0 -44
  302. package/dist/MetricBadge-BZVWIxNy.js +0 -80
  303. package/dist/components/custom/deck-progress/DeckProgress.vue.d.ts +0 -27
  304. package/dist/components/custom/deck-progress/index.d.ts +0 -2
  305. package/dist/components/custom/dialog-native/GlassDialogNative.vue.d.ts +0 -57
  306. package/dist/components/custom/dialog-native/index.d.ts +0 -1
  307. package/dist/components/custom/handmark/HandMark.vue.d.ts +0 -29
  308. package/dist/components/custom/handmark/brush.d.ts +0 -242
  309. package/dist/components/custom/handmark/freehand.d.ts +0 -69
  310. package/dist/components/custom/handmark/geometry.d.ts +0 -50
  311. package/dist/components/custom/handmark/index.d.ts +0 -21
  312. package/dist/components/custom/handmark/ink.d.ts +0 -11
  313. package/dist/components/custom/handmark/texture.d.ts +0 -39
  314. package/dist/components/custom/handmark/types.d.ts +0 -53
  315. package/dist/components/custom/handmark/useHandMark.d.ts +0 -87
  316. package/dist/components/custom/instrument-rail/InstrumentRail.vue.d.ts +0 -91
  317. package/dist/components/custom/instrument-rail/index.d.ts +0 -2
  318. package/dist/composables/motion/useRouteTransition.d.ts +0 -42
  319. package/dist/deck-progress.d.ts +0 -1
  320. package/dist/deck-progress.js +0 -2
  321. package/dist/dockContext-BKeIMmNk.js +0 -9
  322. package/dist/handmark.d.ts +0 -1
  323. package/dist/handmark.js +0 -663
  324. package/dist/instrument-rail.d.ts +0 -1
  325. package/dist/instrument-rail.js +0 -2
  326. package/dist/styles/instrument-rail.css +0 -127
  327. package/dist/useGlassRenderer-D7YGOYiM.js +0 -69
  328. package/dist/useSpecularTracking-BVRZsRHA.js +0 -26
  329. package/dist/useSpringMount-BJSHcLl3.js +0 -113
  330. package/dist/useViewTransition-DaN5Zrox.js +0 -21
  331. package/dist/vReveal-zUIQk-rJ.js +0 -53
  332. package/src/styles/instrument-rail.css +0 -127
  333. /package/dist/{ContextMenuContent-DDa0v27s.js → ContextMenuContent-CT3AS1WX.js} +0 -0
  334. /package/dist/{HoverCardContent-B6CcQ8He.js → HoverCardContent-Csywg3YF.js} +0 -0
  335. /package/dist/{Input-xuDwALQR.js → Input-DWQQIOC4.js} +0 -0
  336. /package/dist/{InstrumentChassis-C2f6cBaQ.js → InstrumentChassis-UUJX0-mW.js} +0 -0
  337. /package/dist/{Label-zRfbQdCn.js → Label-r3WzWrsj.js} +0 -0
  338. /package/dist/{ModalOverlay-B1GkAjNb.js → ModalOverlay-DVLI2VRr.js} +0 -0
  339. /package/dist/{PaperBackdrop-CqwjnfLv.js → PaperBackdrop-DIXTtVq6.js} +0 -0
  340. /package/dist/{Progress-iEuD9pxG.js → Progress-DwlUKGbr.js} +0 -0
  341. /package/dist/{SelectGroup-BFiod7X2.js → SelectGroup-aumMgWLs.js} +0 -0
  342. /package/dist/{SelectSeparator-C4Ql0gzV.js → SelectSeparator-BQ_1Fcbp.js} +0 -0
  343. /package/dist/{Separator-D7sD7RKj.js → Separator-0JE6LtNu.js} +0 -0
  344. /package/dist/{TooltipProvider-CmZzCuaG.js → TooltipProvider-B3MkB_8P.js} +0 -0
  345. /package/dist/{compile-BOXjLUxu.js → compile-B7NGOBcP.js} +0 -0
  346. /package/dist/{constants-yKeKnE84.js → constants-CS75AWHG.js} +0 -0
  347. /package/dist/{createContext-B44Sah_H.js → createContext-BM46COQ-.js} +0 -0
  348. /package/dist/{createLucideIcon-B6uNAU9G.js → createLucideIcon-DydS2qgk.js} +0 -0
  349. /package/dist/{menuItemVariants-CCoBNkU5.js → menuItemVariants-DPiEarb0.js} +0 -0
  350. /package/dist/{supportsCssTimeline-C5oe0lnD.js → supportsCssTimeline-BWenxvHU.js} +0 -0
  351. /package/dist/{useIntersectionPause-Cck5Uxk8.js → useIntersectionPause-Cc-H9ees.js} +0 -0
  352. /package/dist/{useInterval-Dsmqwi03.js → useInterval-iHludrxk.js} +0 -0
  353. /package/dist/{useKeyboardShortcuts-CyIYrndH.js → useKeyboardShortcuts-Be3w_Rwk.js} +0 -0
  354. /package/dist/{useResizeObserver-CWCbk5Px.js → useResizeObserver-BhgdhOIj.js} +0 -0
  355. /package/dist/{useResolveTokenColor-r9pnNjqK.js → useResolveTokenColor-Dvn2RZJW.js} +0 -0
  356. /package/dist/{useSortable-C8ReQ50P.js → useSortable-muI29agz.js} +0 -0
  357. /package/dist/{useTextHighlight-CWEi25hf.js → useTextHighlight-DmRYkOBx.js} +0 -0
  358. /package/dist/{useTimer-3xqf_54b.js → useTimer-Dzarvzuk.js} +0 -0
  359. /package/dist/{useUserInvalidAria-DoJKMZ3s.js → useUserInvalidAria-B2h6jAM_.js} +0 -0
  360. /package/dist/{useViewportReady-RIr5Wgkh.js → useViewportReady-B40FK4Pa.js} +0 -0
@@ -193,9 +193,59 @@
193
193
  the floor so the cascade re-resolves at touch scale. */
194
194
  @media (pointer: coarse) {
195
195
  .glass-dock[data-density] {
196
- --dock-local-scale: var(--dock-mobile-scale, 1);
196
+ /* R5-2 — the coarse-register DEFAULT lives in the FALLBACK, NOT a
197
+ hard-pin. The coarse dock painted ~22% too big (the global
198
+ --ui-coarse-scale 1.5 → an ~80px collapsed pill). The dock-layer
199
+ comfort floors at a TIGHTER coarse register than the global --ui-scale
200
+ (the dock is a dense chrome strip, not a body control): --dock-local-scale
201
+ falls back to --dock-coarse-scale (≈0.78; × the 1.5 global = ~1.17
202
+ effective → a ~60px collapsed pill). The consumer knob --dock-mobile-scale
203
+ WINS the fallback when set on ANY ancestor (inherited in, no specificity
204
+ war against this block — the dead-knob trap a hard `--dock-mobile-scale:
205
+ 0.78` here would re-create), so a consumer who wants the dock to MATCH
206
+ the global comfort sets --dock-mobile-scale: 1; one who wants it larger
207
+ sets >1. The touch floor stays held by the `max(…, --dock-control-floor)`
208
+ clamp in every scaled control-size (the lift just below). */
209
+ --dock-local-scale: var(--dock-mobile-scale, var(--dock-coarse-scale, 0.78));
210
+ /* R5-1 — RE-DECLARE --dock-scale HERE so the consumer knob reaches the
211
+ geometry cascade. The :root definition (offsets-sizing.css) computes
212
+ `calc(var(--ui-scale) * var(--dock-local-scale, 1))` AT :root, where
213
+ --dock-local-scale is the frozen identity 1 — custom-property
214
+ SUBSTITUTION resolves --dock-scale once at its declaring element, so
215
+ the descendant --dock-local-scale lift on THIS block never re-flowed
216
+ into it (the AX.W55 substitution-vs-inheritance trap, 3rd recurrence).
217
+ Re-declaring --dock-scale on the SAME element that lifts
218
+ --dock-local-scale makes the var() resolve against the lifted value, so
219
+ the --dock-mobile-scale / --dock-coarse-scale knobs reach every
220
+ `calc(<base> * --dock-scale)` geometry leg. Identical to the :root
221
+ formula by construction. */
222
+ --dock-scale: calc(var(--ui-scale) * var(--dock-local-scale, 1));
197
223
  --dock-control-floor: var(--dock-touch-target, 2.75rem);
198
224
  --size-icon-btn: var(--dock-touch-target, 2.75rem);
225
+ /* R5-1 SWEEP — the OTHER :root tokens that derive from --dock-scale freeze
226
+ it at the :root value (where --dock-local-scale is the identity 1), so the
227
+ R5-2 dock-local 0.78 register never reaches them: the SAME
228
+ substitution-vs-inheritance trap, one level out. With --dock-scale now
229
+ re-declared ABOVE, RE-RESOLVE each derived token on THIS element so it
230
+ reads the dock-local --dock-scale (else --dock-icon-glyph /
231
+ --dock-collapsed-padding / --dock-layer-tab-size paint at the global 1.5×
232
+ while the density box paints at 1.17× — a desync the R5-2 register would
233
+ introduce). The formulas are IDENTICAL to their :root definitions; only
234
+ the resolution element moves so the lifted --dock-scale flows in. */
235
+ --dock-icon-glyph: calc(1.25rem * var(--dock-scale));
236
+ --dock-collapsed-padding: calc(0.25rem * var(--dock-scale));
237
+ --dock-layer-tab-size: calc(1.75rem * var(--dock-scale));
238
+ /* --dock-collapsed-summary-min-size derives from --dock-layer-height (the
239
+ density-resolved control height on .glass-dock[data-density]) — but its
240
+ :root definition reads --dock-layer-height at :root, where density.css
241
+ never sets it, so it froze at the inline 2.5rem fallback × 0.85 = 34px
242
+ (the pre-existing freeze, independent of R5-2). Re-resolving it HERE reads
243
+ the density-painted --dock-layer-height so the collapsed circle FLOOR
244
+ tracks the dock scale (the "perfect circle" the user named scales on touch
245
+ with the box, not a frozen 34px floor). */
246
+ --dock-collapsed-summary-min-size: calc(
247
+ var(--dock-layer-height, 2.5rem) * 0.85
248
+ );
199
249
  }
200
250
  }
201
251
  }
@@ -0,0 +1,300 @@
1
+ /* AZ.W-RAIL-EXTEND (+ R4-1) — the net-new hairline-rail facility's beyond-edge geometry.
2
+ *
3
+ * THE R4-1 ARCHITECTURE FIX. The `.glass-dock` root carries `contain: paint` +
4
+ * `backdrop-filter` + (on a vertical always-expanded rail) `overflow-y: auto` — ALL
5
+ * THREE hard-clip every descendant to the dock's border box. An absolutely-positioned
6
+ * `#rail` rendered as a dock CHILD could NEVER paint past that box: it was swallowed at
7
+ * the bottom edge (the R4-1 "black blob clipped at the dock edge" the user audited — the
8
+ * dock-icon-button is transparent-at-rest by design, so the clipped half-circle read as
9
+ * a dark blob). The escape: GlassDock now renders `<DockRail>` as a SIBLING of
10
+ * `.glass-dock` inside a `.glass-dock-frame` (a `display:contents` shell that becomes
11
+ * a NON-clipping positioning context only when `data-has-rail`). The `.dock-hairline-slot`
12
+ * is `position: absolute` relative to THAT shell — outside the dock's containment — so the
13
+ * hairline VISIBLY overruns the dock edge and the context end-icon PERSISTS on collapse
14
+ * (G2). No `contain`, no `backdrop-filter`, no `overflow` on the shell → nothing clips it.
15
+ *
16
+ * The hairline is composed from the `--border-hairline` token PAIR (the 0.5px
17
+ * catch-light + under-shadow the dock + instrument-chassis already speak) via
18
+ * `box-shadow` — a whisper, NEVER a hard `1px solid` rule (R1). The hairline OVERRUNS
19
+ * the dock content box by `--dock-rail-extend-length` (R3 — the beyond-edge extent),
20
+ * a dock-scoped geometry knob a consumer overrides.
21
+ *
22
+ * Because the rail is dock CHROME floating OUTSIDE the dock substrate, its end-icon
23
+ * carries its OWN glass-floating register (the dock-surface blur + the floating-tier
24
+ * fill + the edge-light rim) — it cannot borrow the dock's plate the way an in-dock
25
+ * `.dock-icon-button` does (that one is transparent-at-rest, reading the dock beneath).
26
+ *
27
+ * @import-ed by dock.css into the SAME `@layer components` as the other partials.
28
+ */
29
+ @layer components {
30
+ :root {
31
+ /* The beyond-edge overrun length — how far the hairline runs PAST the dock
32
+ content box. A proportioned default (a touch more than a dock control); a
33
+ consumer retunes per-instance. Rides `--dock-scale` so it tracks the
34
+ coarse-pointer density thread the rest of the dock floor speaks. */
35
+ --dock-rail-extend-length: calc(2.5rem * var(--dock-scale, 1));
36
+ }
37
+
38
+ /* The dock-frame wrapper. DEFAULT (`display: contents`) is layout-transparent
39
+ — the dock behaves as if the wrapper is not there (byte-identical no-rail path,
40
+ no positioning context interposed, the dock keeps its own fixed/sticky/inline
41
+ mode). When a `#rail` is authored it lifts to a real NON-clipping positioning
42
+ context so the abs-positioned rail slot anchors to the dock box yet escapes the
43
+ dock's `contain: paint` / `backdrop-filter` / `overflow` clip. */
44
+ .glass-dock-frame {
45
+ display: contents;
46
+ }
47
+ .glass-dock-frame[data-has-rail] {
48
+ display: inline-flex;
49
+ position: relative;
50
+ /* No containment, no overflow, no blur — the WHOLE point: the rail must paint
51
+ beyond the dock box. The wrapper shrink-wraps the dock (inline-flex) so its
52
+ box == the dock box and the rail anchors to the true edge. */
53
+ }
54
+ .glass-dock-frame[data-has-rail].vertical {
55
+ flex-direction: column;
56
+ align-items: stretch;
57
+ }
58
+
59
+ /* The chrome-slot wrapper — a `position: absolute` sibling of `.glass-dock`,
60
+ anchored to the dock-frame (NOT the dock box), so the dock's clip never reaches it.
61
+ It paints nothing itself; `<DockRail>` owns the hairline + icon. */
62
+ .dock-hairline-slot {
63
+ position: absolute;
64
+ display: flex;
65
+ align-items: center;
66
+ justify-content: center;
67
+ pointer-events: none;
68
+ z-index: 1;
69
+ }
70
+ /* The end-icon control re-arms pointer events (the slot is pass-through). */
71
+ .dock-hairline-slot > * {
72
+ pointer-events: auto;
73
+ }
74
+
75
+ /* AZ.W-RAIL3 — the slot hangs the floating carousel BELOW the dock's bottom edge
76
+ for BOTH orientations. The slot's top sits AT the dock's bottom edge
77
+ (`inset-block-start: 100%`) and the strip (a horizontal chip carousel) lives
78
+ wholly BELOW the dock. The slot anchors at the dock's LEADING (inline-start)
79
+ edge but is NOT clamped to the dock's width (`inset-inline-end: auto`), so a
80
+ carousel WIDER than a narrow vertical column overflows past the dock's inline
81
+ extent — the "floating carousel" that overflows OUTSIDE the dock (the box stays
82
+ INVIOLATE because the slot is `position: absolute`, never feeding the dock's
83
+ intrinsic size). The connective hairline (`.dock-hairline-extend::before`) is
84
+ center-aligned over the strip so it reads as a connector from the dock edge. */
85
+ .glass-dock-frame[data-has-rail].vertical .dock-hairline-slot {
86
+ inset-inline-start: 100%;
87
+ /* seat the carousel CENTERED beside the dock column. A top-anchored seat
88
+ collides with the page H1/breadcrumb band at scroll-top (any fixed offset
89
+ from the dock top lands in it at some viewport); the vertical center is
90
+ stable across viewport heights and reads as the carousel riding the dock's
91
+ midline, clear of the title band. */
92
+ inset-block-start: 50%;
93
+ inset-block-end: auto;
94
+ translate: 0 -50%;
95
+ flex-direction: row;
96
+ align-items: flex-start;
97
+ justify-content: flex-start;
98
+ }
99
+ .glass-dock-frame[data-has-rail]:not(.vertical) .dock-hairline-slot {
100
+ inset-block-end: 100%;
101
+ inset-inline-start: 0;
102
+ inset-inline-end: auto;
103
+ flex-direction: column;
104
+ align-items: flex-start;
105
+ justify-content: flex-end;
106
+ }
107
+
108
+ /* AZ.W-RAIL3 — the FLOATING CAROUSEL strip. The hairline element is the wrapper
109
+ that carries (a) a VISIBLE connective hairline running from the dock edge down
110
+ to the strip (the user's "the hairline must visibly connect") and (b) the
111
+ `.dock-hairline-strip` — a flex row of detached glass chips, the floating
112
+ carousel that overflows OUTSIDE the dock box (the third-rail redirect: the
113
+ contextual facets are no longer in-dock layers; they are the rail's content). */
114
+ .dock-hairline-extend {
115
+ position: relative;
116
+ display: flex;
117
+ gap: 0;
118
+ }
119
+ /* Vertical dock — connector (a horizontal line) then the chip COLUMN, left-to-right
120
+ (the carousel rides BESIDE the dock in its trailing gutter). */
121
+ .dock-hairline-extend.vertical {
122
+ flex-direction: row;
123
+ align-items: flex-start;
124
+ }
125
+ /* Horizontal dock — the strip sits ABOVE: stack the chip-row then the connector
126
+ bottom-up (column-reverse puts the first child, the connector, at the BOTTOM,
127
+ nearest the dock's top edge — so a viewport-bottom-anchored dock keeps its
128
+ carousel ON-SCREEN above it). */
129
+ .dock-hairline-extend.horizontal {
130
+ flex-direction: column-reverse;
131
+ align-items: flex-start;
132
+ }
133
+
134
+ /* R3 — the VISIBLE connective hairline. R1 — the `--border-hairline` token pair
135
+ (catch-light + under-shadow) + a faint background fallback so the whisper reads
136
+ even over a busy backdrop (the user audited "NO VISIBLE HAIRLINE"). The line
137
+ overruns by `--dock-rail-extend-length` (the beyond-edge extent); the
138
+ `min-{inline,block}-size` floor is the proof:rail-extend R3 overrun witness. */
139
+ .dock-hairline-extend::before {
140
+ content: "";
141
+ flex: 0 0 auto;
142
+ box-shadow: var(--border-hairline);
143
+ background: var(--dock-layer-rail-divider, color-mix(in srgb, var(--border) 45%, transparent));
144
+ }
145
+ /* Vertical dock connector — a HORIZONTAL line running right from the dock's
146
+ trailing edge to the chip column, seated near the dock's vertical center. */
147
+ .dock-hairline-extend.vertical::before {
148
+ block-size: 1px;
149
+ inline-size: var(--dock-rail-extend-length);
150
+ min-inline-size: var(--dock-rail-extend-length);
151
+ align-self: center;
152
+ margin-inline-end: 0.25rem;
153
+ }
154
+ /* Horizontal dock connector — a VERTICAL line running up from the dock's top
155
+ edge to the chip row, seated near the dock's leading control center. */
156
+ .dock-hairline-extend.horizontal::before {
157
+ inline-size: 1px;
158
+ block-size: var(--dock-rail-extend-length);
159
+ min-block-size: var(--dock-rail-extend-length);
160
+ margin-inline-start: calc(var(--dock-control-size, 1.75rem) * 0.5);
161
+ margin-block-start: 0.25rem;
162
+ }
163
+
164
+ /* `extent="inset"` keeps the connector flush at the edge (no overrun). */
165
+ .dock-hairline-extend.extent-inset.vertical::before {
166
+ inline-size: 0;
167
+ min-inline-size: 0;
168
+ }
169
+ .dock-hairline-extend.extent-inset.horizontal::before {
170
+ block-size: 0;
171
+ min-block-size: 0;
172
+ }
173
+
174
+ /* The carousel strip — a flex run of chips that SCROLLS when the chips exceed the
175
+ budget (the common 2-4-facet case fits with no scroll; a larger set cycles).
176
+ `scroll-snap` gives the carousel detent feel. The strip paints OUTSIDE the dock
177
+ box (it is in the `.dock-hairline-slot`, a `.glass-dock-frame` sibling — R4). */
178
+ .dock-hairline-strip {
179
+ display: flex;
180
+ align-items: flex-start;
181
+ gap: var(--dock-rail-strip-gap, 0.375rem);
182
+ scrollbar-width: none;
183
+ padding: 0.125rem;
184
+ }
185
+ .dock-hairline-strip::-webkit-scrollbar {
186
+ display: none;
187
+ }
188
+ /* Vertical dock → a COLUMN carousel beside the dock, scrolls on the block axis. */
189
+ .dock-hairline-extend.vertical .dock-hairline-strip {
190
+ flex-direction: column;
191
+ max-block-size: var(--dock-rail-strip-max, 60vh);
192
+ overflow-y: auto;
193
+ overflow-x: visible;
194
+ scroll-snap-type: y proximity;
195
+ }
196
+ /* Horizontal dock → a ROW carousel above the dock, scrolls on the inline axis. */
197
+ .dock-hairline-extend.horizontal .dock-hairline-strip {
198
+ flex-direction: row;
199
+ align-items: center;
200
+ max-inline-size: var(--dock-rail-strip-max, 60vw);
201
+ overflow-x: auto;
202
+ overflow-y: visible;
203
+ scroll-snap-type: x proximity;
204
+ }
205
+ .dock-hairline-strip > * {
206
+ scroll-snap-align: start;
207
+ }
208
+
209
+ /* Each chip — a detached FLOATING glass pill (R4-1's register, now a label-bearing
210
+ carousel chip, auto-width). It is chrome OUTSIDE the dock substrate, so it
211
+ carries its OWN glass plate (the floating-tier fill + edge-light rim + soft
212
+ drop) rather than borrowing the transparent in-dock `.dock-icon-button` recipe
213
+ (which would read as a bare dark glyph — the R4-1 blob). Reads the SAME
214
+ `--dock-control-*` / glass tokens the dock speaks, so it re-tints under `.dark`
215
+ + the adaptive bucket for free.
216
+
217
+ SPECIFICITY: the chip composes the `.dock-icon-button` base (the specular-track
218
+ + glass register), which sets a FIXED square `width`/`padding` in
219
+ dock-controls.css — loaded AFTER this partial, so a bare `.dock-hairline-extend-
220
+ chip` (equal specificity) loses the source-order tie. Scoping the sizing/surface
221
+ overrides under `.dock-hairline-strip` (0,2,0) beats the base `.dock-icon-button`
222
+ (0,1,0) without `!important` on the geometry. */
223
+ .dock-hairline-strip .dock-hairline-extend-chip {
224
+ flex-shrink: 0;
225
+ /* override the fixed dock-icon-button square → an auto-width label pill */
226
+ inline-size: auto;
227
+ width: auto;
228
+ min-inline-size: 0;
229
+ block-size: auto;
230
+ height: auto;
231
+ gap: 0.375rem;
232
+ padding-inline: 0.625rem;
233
+ padding-block: 0.3125rem;
234
+ background: var(--glass-bg-floating);
235
+ /* §6 EASING DOCTRINE — the surface channel (bg/border/color/box-shadow) cross-
236
+ fades on `--ease-standard` (a bezier, NO overshoot), NEVER a spring (a
237
+ surface prop wobbling on a spring is the §6 violation). The scale/transform
238
+ stay on the dock-control spring untouched. */
239
+ transition:
240
+ background-color var(--duration-fast) var(--ease-standard),
241
+ box-shadow var(--duration-fast) var(--ease-standard),
242
+ border-color var(--duration-fast) var(--ease-standard),
243
+ color var(--duration-fast) var(--ease-standard);
244
+ backdrop-filter: var(--glass-blur-floating);
245
+ -webkit-backdrop-filter: var(--glass-blur-floating);
246
+ box-shadow:
247
+ var(--glass-edge-light),
248
+ var(--glass-specular),
249
+ 0 2px 6px -2px color-mix(in srgb, var(--shadow-color) 22%, transparent);
250
+ border-radius: var(--radius-pill);
251
+ font-size: 0.75rem;
252
+ font-weight: 500;
253
+ color: color-mix(in srgb, var(--dock-fg-on-aurora, var(--foreground)) 82%, transparent);
254
+ white-space: nowrap;
255
+ }
256
+ .dark .dock-hairline-strip .dock-hairline-extend-chip {
257
+ box-shadow:
258
+ var(--glass-edge-light-dark),
259
+ var(--glass-specular-dark),
260
+ 0 2px 6px -2px color-mix(in srgb, var(--shadow-color) 30%, transparent);
261
+ }
262
+ /* Floor the glyph at the chip's icon scale — the `.dock-icon-button` glyph rule
263
+ (a fixed `--dock-icon-glyph`) would over-size it inside the label pill. */
264
+ .dock-hairline-strip .dock-hairline-extend-chip svg {
265
+ inline-size: 0.875rem;
266
+ width: 0.875rem;
267
+ block-size: 0.875rem;
268
+ height: 0.875rem;
269
+ flex-shrink: 0;
270
+ }
271
+ .dock-hairline-extend-chip-label {
272
+ line-height: 1;
273
+ }
274
+ /* The hover lift — the dock-control register: the floating plate firms, the glyph
275
+ wakes. Rides the surface easing doctrine (§6). */
276
+ .dock-hairline-strip .dock-hairline-extend-chip:hover {
277
+ background: var(--dock-control-hover-bg, var(--glass-bg-resting));
278
+ color: var(--dock-fg-on-aurora, var(--foreground));
279
+ }
280
+ /* The ACTIVE chip — the selected facet reads as a glass tier ABOVE the rest fill
281
+ (the "selected reads as glass" register, the SAME tier `--dock-control-active-bg`
282
+ uses — NOT a saturated brand hue, per W-REGISTER-IOS). The glyph + label firm to
283
+ the full warm-ink. */
284
+ .dock-hairline-strip .dock-hairline-extend-chip.is-active {
285
+ background: var(--dock-control-active-bg, var(--glass-bg-floating));
286
+ color: var(--dock-fg-on-aurora, var(--foreground));
287
+ box-shadow:
288
+ var(--glass-edge-light),
289
+ var(--glass-specular),
290
+ 0 0 0 1px color-mix(in srgb, var(--foreground) 12%, transparent),
291
+ 0 3px 8px -2px color-mix(in srgb, var(--shadow-color) 28%, transparent);
292
+ }
293
+ .dark .dock-hairline-strip .dock-hairline-extend-chip.is-active {
294
+ box-shadow:
295
+ var(--glass-edge-light-dark),
296
+ var(--glass-specular-dark),
297
+ 0 0 0 1px color-mix(in srgb, var(--foreground) 18%, transparent),
298
+ 0 3px 8px -2px color-mix(in srgb, var(--shadow-color) 36%, transparent);
299
+ }
300
+ }
@@ -64,6 +64,23 @@
64
64
  stacking-context guarantee). Covers every dock scale site. */
65
65
  scale: 1;
66
66
  position: relative;
67
+ /* AZ.W-ADAPTIVE-AUTO Arm 1 — the dock self-darkens over light backdrops by
68
+ default via the UNCONDITIONAL `:where(.glass-dock)` self-engage rule in
69
+ dock/morph.css (mirroring the overlay band's `ladder.css:169`): it re-points
70
+ the inheriting `--glass-tint-source`/`--glass-tint-strength` directly on the
71
+ dock root, so the shell + chassis + held/open tiers darken toward warm-ink
72
+ with NO consumer opt-in (a dock floats over arbitrary — frequently light —
73
+ page content). `--glass-backdrop: light` is KEPT here so a consumer's
74
+ DESCENDANT nested-glass inside the dock also reads the bright bucket via the
75
+ ancestor-querying `@container` block in dock/morph.css (CSS style queries
76
+ never self-match, so this declaration alone is inert for the dock's OWN
77
+ plate — the self-engage rule, not this token, darkens the dock). */
78
+ --glass-backdrop: light;
79
+ /* AY.W-A11Y-PERF O-4 — paint containment so the maximal-glass nested
80
+ backdrop-filter sample does not escape the dock box (the standard nested-
81
+ backdrop-cost mitigation; the Button-in-glass-in-dock stack re-samples the
82
+ already-blurred buffer at each level without it). */
83
+ contain: paint;
67
84
  display: inline-flex;
68
85
  align-items: center;
69
86
  /* AW.W1 — the dock does NOT establish a default inline-size container.
@@ -243,27 +260,42 @@
243
260
  scale var(--dock-motion-resize);
244
261
  }
245
262
 
246
- .glass-dock.variant-rail {
263
+ /* AZ.W-DOCK-TAXONOMY — the vertical dock's surface plate (the prior
264
+ `.variant-rail` block; "rail-ness" is now `orientation="vertical"` + a
265
+ shape/density choice, not a variant). */
266
+ .glass-dock.vertical {
247
267
  padding: var(--dock-rail-padding, var(--dock-padding-inline, 0.5rem));
248
- background: var(--glass-bg-dock, var(--glass-bg-wash));
268
+ /* AZ.W-ADAPTIVE-AUTO Arm 1 — the vertical dock threads the SAME element-level
269
+ oklab tint wrapper the shell base carries (NOT the pre-substituted
270
+ `--glass-bg-dock` token alone, whose inner tint baked at the `:root` 0%
271
+ strength before the `:where(.glass-dock)` self-engage re-points the
272
+ inheriting tint tokens — the substitution-vs-inheritance trap §3a names).
273
+ Wrapping HERE lets the self-engage darken reach the vertical dock's OWN
274
+ plate. Zero-delta at the `0%` rest default (the mix is a no-op =
275
+ byte-identical to the flat dock bg). */
276
+ background: color-mix(
277
+ in oklab,
278
+ var(--glass-bg-dock, var(--glass-bg-wash)),
279
+ var(--glass-tint-source) var(--glass-tint-strength)
280
+ );
249
281
  border-color: var(--glass-border-dock, var(--glass-border-wash));
250
282
  }
251
283
 
252
- .glass-dock.variant-rail.shape-pill {
284
+ .glass-dock.vertical.shape-pill {
253
285
  border-radius: var(--radius-pill);
254
286
  }
255
287
 
256
- .glass-dock.variant-rail.shape-rounded {
288
+ .glass-dock.vertical.shape-rounded {
257
289
  border-radius: var(--radius-xl);
258
290
  }
259
291
 
260
- /* AW.W3b — horizontal-root shape rules. The `shape-*` class previously bound
261
- ONLY under `.variant-rail`; on a horizontal `variant-dock` the prop silently
262
- no-op'd (the root hardwired `--radius-dock` = `--radius-pill`). These rules
263
- close that documented-but-dead prop — `shape="rounded"` / `shape="card"` now
264
- paint on a horizontal dock. Scoped to `variant-dock:not(.vertical)` so the
265
- rail + instrument-strip variants (which own their own radius) are untouched. */
266
- .glass-dock.variant-dock:not(.vertical).shape-rounded {
292
+ /* AW.W3b — horizontal-root shape rules. The `shape-*` class once bound ONLY under
293
+ the vertical surface; on a horizontal dock the prop silently no-op'd (the root
294
+ hardwired `--radius-dock` = `--radius-pill`). These rules close that
295
+ documented-but-dead prop — `shape="rounded"` / `shape="card"` now paint on a
296
+ horizontal dock. Scoped to `:not(.vertical)` so the vertical dock (which owns
297
+ its own radius above) is untouched. */
298
+ .glass-dock:not(.vertical).shape-rounded {
267
299
  border-radius: var(--radius-xl);
268
300
  }
269
301
 
@@ -275,7 +307,7 @@
275
307
  prior two discrete `.shape-card` / `.shape-card.collapsed` rules + their
276
308
  reliance on the deleted `border-radius var(--dock-motion-resize)` transition
277
309
  are RETIRED for this single interpolation. */
278
- .glass-dock.variant-dock:not(.vertical).shape-card {
310
+ .glass-dock:not(.vertical).shape-card {
279
311
  border-radius: calc(
280
312
  var(--radius-pill) +
281
313
  (var(--dock-card-radius) - var(--radius-pill)) *
@@ -295,80 +327,18 @@
295
327
  condition tests the LITERAL `superellipse(2)` (a `var()` is not evaluable in
296
328
  an `@supports` query) — the same Chrome-139 feature the token resolves to. */
297
329
  @supports (corner-shape: superellipse(2)) {
298
- .glass-dock.variant-dock:not(.vertical).shape-card {
330
+ .glass-dock:not(.vertical).shape-card {
299
331
  corner-shape: var(--corner-shape-bigdock);
300
332
  }
301
333
  }
302
334
 
303
- /* AJ-W1-δ — `instrument-strip` variant (per G-AJ-D7 Path 1).
304
- *
305
- * The speedtest survey cockpit's vertical rail needs chassis-strip
306
- * aesthetics, not the dock-rail's stadium-pill chrome. Adopts the
307
- * surface vocabulary of the `<InstrumentChassis>` family so the
308
- * strip reads as a journey-station slot — the same surface the
309
- * speedtest + complete + thankyou stations ride.
310
- *
311
- * The variant intentionally inherits the rail variant's vertical
312
- * layout (orientation: vertical; flex-direction: column) — the
313
- * orientation + fitContent computeds in GlassDock.vue branch on
314
- * `variant === "instrument-strip"` alongside the existing rail
315
- * branch. Only the surface vocabulary changes vs the rail:
316
- * - Border-radius drops from `--radius-pill` to `--radius-card`
317
- * (matches `<InstrumentChassis> { border-radius: var(--radius-card) }`).
318
- * - Background plate routes through `--glass-bg-chassis` (0.28α
319
- * per tokens.css §V) instead of `--glass-bg-wash`.
320
- * - Border routes through `--glass-border-quiet` to match the
321
- * chassis primitive's at-rest stroke.
322
- * - Box-shadow routes through `--glass-shadow-quiet` plus the
323
- * inset-bottom hairline matching the chassis primitive
324
- * (instrument-chassis.css:42-45).
325
- *
326
- * The `.shape-pill` / `.shape-rounded` class hooks are still emitted
327
- * by the template but no rule binds them under
328
- * `.variant-instrument-strip` — chassis-strip carries ONE canonical
329
- * border-radius (`--radius-card`), per the chassis family. */
330
- .glass-dock.variant-instrument-strip {
331
- padding: var(
332
- --dock-instrument-strip-padding,
333
- var(--dock-padding-inline, 0.75rem)
334
- );
335
- /* AX.W55 — the chassis-strip threads the SAME oklab tint wrapper the five
336
- rungs + the dock shell (--glass-bg-dock) carry, so the adaptive darken
337
- reaches it. Zero-delta at the `0%` rest default (the mix is 0% toward the
338
- source = byte-identical to the flat `var(--glass-bg-chassis)`); it only
339
- activates under the bright bucket below. */
340
- background: color-mix(
341
- in oklab,
342
- var(--glass-bg-chassis, var(--glass-bg-wash)),
343
- var(--glass-tint-source) var(--glass-tint-strength)
344
- );
345
- border: 1px solid var(--glass-border-quiet, var(--glass-border-resting));
346
- border-radius: var(--radius-card);
347
- box-shadow:
348
- var(--glass-shadow-quiet, var(--shadow-dock)),
349
- inset 0 -0.5px 0 0 rgb(0 0 0 / 0.06);
350
- }
351
-
352
- /* Engraved-bezel inner stroke — matches `<InstrumentChassis>::before`
353
- * (instrument-chassis.css:85-93). The chassis-strip silhouette without
354
- * this stroke reads as a flat plate; with it the strip reads as the
355
- * polished sleeve of an instrument-panel module. The `::before`
356
- * z-index sits above the chassis backdrop but below the slotted
357
- * content (the MetricBadge stack), matching the chassis primitive's
358
- * z-order. The host `.glass-dock` is already `position: relative`. */
359
- .glass-dock.variant-instrument-strip::before {
360
- content: "";
361
- position: absolute;
362
- inset: 0.5px;
363
- border-radius: calc(var(--radius-card) - 0.5px);
364
- border: 1px solid var(--surface-tint-4);
365
- pointer-events: none;
366
- z-index: 1;
367
- }
368
-
369
- .dark .glass-dock.variant-instrument-strip::before {
370
- border-color: var(--surface-tint-6);
371
- }
335
+ /* AZ.W-DOCK-TAXONOMY — the `instrument-strip` chassis-strip variant is RETIRED
336
+ (the ≥2-consumer bar). It carried the vocabulary of the InstrumentRail
337
+ component RETIRED at AY W-IC1; with the `variant` discriminant gone and no
338
+ live `variant="instrument-strip"` call-site in src/ or demo/, the chassis
339
+ paint has zero consumers. The cross-repo speedtest SurveyResultDock cockpit
340
+ re-pins in its own migration (recorded in MIGRATION.md). A consumer needing
341
+ the chassis surface composes `<InstrumentChassis>` directly. */
372
342
 
373
343
  .glass-dock:where(.fixed) {
374
344
  z-index: var(--z-dock);
@@ -426,32 +396,20 @@
426
396
  margin-block-start: var(--dock-layer-gap, 0.375rem);
427
397
  }
428
398
 
429
- /* AX.W45-TUNE C7 — the VERTICAL three-region body. The vertical dock's default
430
- slot is now wrapped in a structural `.dock-layers` column (parity with the
431
- horizontal morph-region container) instead of a bare slot. A vertical dock is
432
- always-expanded (no width morph), so this `.dock-layers` is NOT the grid-stacked
433
- crossfade pair the horizontal `.dock-layers` is — it is a single column stack
434
- carrying the dock's `--dock-layer-gap` rhythm so authored item groups +
435
- `<DockSeparator>` rules read with the correct vertical cadence. The base
436
- `.dock-layers { display: grid }` is re-pointed to a column flex here (the
437
- vertical body is content-stacked, not pane-stacked). */
438
- .glass-dock.vertical .dock-layer--vertical-body {
439
- display: flex;
399
+ /* AZ.W-DOCK-TAXONOMY (move 2) — the VERTICAL dock's layer panes lay their content
400
+ out as a COLUMN. The dock body is now the SAME orientation-agnostic
401
+ `.dock-layers` full/summary morph pair the horizontal dock uses (the prior
402
+ static `.dock-layer--vertical-body` single-stack RETIRED — a vertical dock now
403
+ collapses its block axis too). The base `.dock-layer { display: flex;
404
+ align-items: center }` is row by default; here the full/summary panes flip to a
405
+ stretched column stack carrying the dock's `--dock-layer-gap` rhythm, so
406
+ authored item groups + `<DockSeparator>` rules read with the correct vertical
407
+ cadence. The block-axis morph aperture is owned by `.dock-layers` (layers.css —
408
+ `.glass-dock.vertical[data-morphing] .dock-layers` morphs `block-size`). */
409
+ .glass-dock.vertical .dock-layer {
440
410
  flex-direction: column;
441
411
  align-items: stretch;
442
412
  gap: var(--dock-layer-gap, 0.375rem);
443
413
  min-width: 0;
444
414
  }
445
-
446
- /* The OPTIONAL trailing `#collapsed` section (the vertical analogue of the
447
- horizontal summary pane) — a persistent secondary group below a structural
448
- `<DockSeparator>`, sharing the column's gap rhythm. Renders only when the
449
- consumer authors a `#collapsed` slot (GlassDock.vue guards it), so a vertical
450
- dock with no collapsed slot keeps the prior single-stack body. */
451
- .glass-dock.vertical .dock-layer--vertical-section {
452
- display: flex;
453
- flex-direction: column;
454
- align-items: stretch;
455
- gap: var(--dock-layer-gap, 0.375rem);
456
- }
457
415
  }