@mkbabb/glass-ui 3.11.2 → 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 +47 -13
  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 -1291
  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 -1291
  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
@@ -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
  }
@@ -0,0 +1,109 @@
1
+ /* dock-controls/dark-mode-toggle.css — the `.dark-mode-toggle-button` control
2
+ family (AZ.W-CARVE partial 2 of 5; carved out of dock-controls.css).
3
+
4
+ The standalone toggle sizes (sm/md/lg/control) + the IN-DOCK glyph-inset
5
+ contract (AY.W-DOCK-CHROME §2 / AX.W06 USF-2 — the toggle glyph routes through
6
+ `--dock-control-glyph-size` so it is optically uniform with the nav glyphs when
7
+ docked). Opens its OWN `@layer components`; @import-ed after icon-button.css. */
8
+
9
+ @layer components {
10
+ .dark-mode-toggle-button {
11
+ width: var(--dark-mode-toggle-size, 2.25rem);
12
+ height: var(--dark-mode-toggle-size, 2.25rem);
13
+ min-width: var(--dark-mode-toggle-size, 2.25rem);
14
+ min-height: var(--dark-mode-toggle-size, 2.25rem);
15
+ max-width: var(--dark-mode-toggle-size, 2.25rem);
16
+ max-height: var(--dark-mode-toggle-size, 2.25rem);
17
+ aspect-ratio: 1;
18
+ padding: var(--dark-mode-toggle-padding, 0.375rem);
19
+ transition:
20
+ opacity var(--dock-motion-standard),
21
+ background-color var(--dock-motion-standard),
22
+ box-shadow var(--dock-motion-fast);
23
+
24
+ & > svg {
25
+ width: 100%;
26
+ height: 100%;
27
+ max-width: 100%;
28
+ max-height: 100%;
29
+ }
30
+
31
+ &:hover,
32
+ &:focus {
33
+ background: var(--surface-tint-10);
34
+ opacity: 1;
35
+ outline: none;
36
+ }
37
+
38
+ &:focus-visible {
39
+ box-shadow: var(--focus-ring-shadow);
40
+ }
41
+
42
+ &[data-size="sm"] {
43
+ --dark-mode-toggle-size: 1.75rem;
44
+ --dark-mode-toggle-padding: 0.25rem;
45
+ }
46
+
47
+ &[data-size="md"] {
48
+ --dark-mode-toggle-size: 2.25rem;
49
+ --dark-mode-toggle-padding: 0.375rem;
50
+ }
51
+
52
+ &[data-size="lg"] {
53
+ --dark-mode-toggle-size: 2.75rem;
54
+ --dark-mode-toggle-padding: 0.5rem;
55
+ }
56
+
57
+ &[data-size="control"] {
58
+ --dark-mode-toggle-size: var(--control-size, 2.25rem);
59
+ --dark-mode-toggle-padding: var(--control-icon-padding, 0.375rem);
60
+ }
61
+ }
62
+
63
+ .dark-mode-toggle-button[data-size="dock"],
64
+ .glass-dock
65
+ .dark-mode-toggle-button:not([data-size="sm"]):not([data-size="lg"]):not(
66
+ [data-size="control"]
67
+ ) {
68
+ --dark-mode-toggle-size: var(--dock-control-size, var(--size-icon-btn));
69
+ /* AY.W-DOCK-CHROME §2 — the in-dock toggle GLYPH insets to the nav-glyph
70
+ register. The toggle SVG carries `h-full w-full` (the utility layer, which
71
+ BEATS the component-layer `> svg { width: --dock-control-glyph-size }` rule
72
+ below), so the glyph fills whatever the PADDED box leaves. Prior the in-dock
73
+ padding fell to `var(--dock-icon-padding, 0)` (the token is never defined →
74
+ 0 pad → the glyph filled the whole 40px box edge-to-edge, ~2.5× the 16-20px
75
+ nav glyphs — the user's "too large" read). Pad the box by HALF the box↔glyph
76
+ difference so the `h-full` SVG lands at exactly `--dock-icon-glyph` (the
77
+ `--dock-scale`-keyed size the nav icons paint) — optically UNIFORM with the
78
+ nav glyphs through the utility-win path, not fighting it. */
79
+ --dark-mode-toggle-padding: calc(
80
+ (
81
+ var(--dock-control-size, var(--size-icon-btn)) -
82
+ var(--dock-icon-glyph, 1.25rem)
83
+ ) / 2
84
+ );
85
+ }
86
+
87
+ /* AX.W06 USF-2 — the dock-control optical-size contract. The
88
+ DarkModeToggle renders its OWN internal SVG `h-full w-full` (it bypasses
89
+ the `--dock-icon-glyph`-sized `> svg` slot the `.dock-icon-button` family
90
+ uses), so IN-DOCK it filled the whole control box edge-to-edge (~2.5× the
91
+ nav glyphs) — `--dock-icon-padding` is NEVER DEFINED, so the
92
+ `--dark-mode-toggle-padding: var(--dock-icon-padding, 0)` above fell to the
93
+ `0` fallback and zero padding let the SVG fill the box. Route the in-dock
94
+ toggle glyph through `--dock-control-glyph-size` (the ONE size the whole
95
+ dock-control family reads, default = `--dock-icon-glyph`, the same
96
+ `--dock-scale`-keyed glyph the nav icons paint), so the toggle is optically
97
+ UNIFORM with the nav glyphs WHEN DOCKED. The `h-full w-full` SVG stays
98
+ correct for the STANDALONE DarkModeToggle sizes (no `.glass-dock`
99
+ ancestor); this rule is scoped to the in-dock path only. Machine-checked by
100
+ the dock-control optical-parity gate, not eyeballed. */
101
+ .glass-dock
102
+ .dark-mode-toggle-button:not([data-size="sm"]):not([data-size="lg"]):not(
103
+ [data-size="control"]
104
+ )
105
+ > svg {
106
+ width: var(--dock-control-glyph-size, var(--dock-icon-glyph, 1.25rem));
107
+ height: var(--dock-control-glyph-size, var(--dock-icon-glyph, 1.25rem));
108
+ }
109
+ }