@mkbabb/glass-ui 3.12.0 → 4.0.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 (436) hide show
  1. package/dist/CardAction-XH4YBVEK.js +158 -0
  2. package/dist/{CommandShortcut-CefCj5mt.js → CommandShortcut-DdtWXxOK.js} +58 -53
  3. package/dist/{ContextMenuSubContent-Bhg4f5jX.js → ContextMenuSubContent-B0Vs6atR.js} +4 -4
  4. package/dist/{DataTable-CUHMukiQ.js → DataTable-C464Zbqd.js} +99 -97
  5. package/dist/DialogContent-DDE6pQBU.js +103 -0
  6. package/dist/{DialogFooter-Gprw8H_A.js → DialogFooter-8eZbdmPc.js} +2 -2
  7. package/dist/FadingScroll-DwNnvKMs.js +76 -0
  8. package/dist/{HoverPopover-2LOIW34a.js → HoverPopover-Dpzwvc4t.js} +1 -1
  9. package/dist/IconChip-BDw1j5mu.js +54 -0
  10. package/dist/{IconTooltip-Cus0fvK0.js → IconTooltip-DSjasZIt.js} +1 -1
  11. package/dist/MetricBadge-BpC0R_Ec.js +79 -0
  12. package/dist/{Notification-DLMhblXR.js → Notification-DKjKsQq8.js} +10 -10
  13. package/dist/{NumberFieldContent-BbLOh8RU.js → NumberFieldContent-1VtwDSgf.js} +3 -3
  14. package/dist/PopoverContent-BTorlp--.js +127 -0
  15. package/dist/{Progress-iEuD9pxG.js → Progress-hAT4gqGH.js} +97 -77
  16. package/dist/{ScrollingText-BPP84wKo.js → ScrollingText-CUVFTWk2.js} +2 -2
  17. package/dist/{SelectScrollDownButton-T32cVFeM.js → SelectScrollDownButton-C1jb3b3K.js} +24 -8
  18. package/dist/{Switch-Ch-k3Rv-.js → Switch-Dr--uLGH.js} +2 -2
  19. package/dist/{Toaster-1rYWrmAm.js → Toaster-Bm_HQSpc.js} +55 -52
  20. package/dist/{ToggleGroupItem-COu_4IW4.js → ToggleGroupItem-Dzk9hWsF.js} +18 -22
  21. package/dist/animated-digit.js +3 -3
  22. package/dist/api/index.d.ts +10 -4
  23. package/dist/api.js +1 -1
  24. package/dist/aurora.js +113 -98
  25. package/dist/{badge-CaoFJzRb.js → badge-UILT_3pZ.js} +1 -1
  26. package/dist/badge.js +1 -1
  27. package/dist/{button-DN39cGqL.js → button-BNDWhAZb.js} +12 -12
  28. package/dist/button.js +1 -1
  29. package/dist/card.js +1 -1
  30. package/dist/carousel.d.ts +1 -1
  31. package/dist/carousel.js +101 -145
  32. package/dist/{check-BBKKKSTf.js → check-njhk-vfu.js} +1 -1
  33. package/dist/{chevron-down-BSkTP2aL.js → chevron-down-DKkxb4VV.js} +1 -1
  34. package/dist/{chevron-right-sDM0Yvrf.js → chevron-right-CPXbqQQz.js} +1 -1
  35. package/dist/{chevron-up-CCOD_FTz.js → chevron-up-n_24SqI-.js} +1 -1
  36. package/dist/coalesceMetric-5qIeZnTx.js +13 -0
  37. package/dist/collapsible.js +1 -1
  38. package/dist/{color-C5ls_QF7.js → color-DweYl7pE.js} +9 -7
  39. package/dist/color-swatch.d.ts +1 -0
  40. package/dist/color-swatch.js +47 -0
  41. package/dist/color.js +1 -1
  42. package/dist/command.js +1 -1
  43. package/dist/components/custom/animated-digit/AnimatedDigit.vue.d.ts +8 -0
  44. package/dist/components/custom/aurora/constants/presets.d.ts +16 -45
  45. package/dist/components/custom/aurora/constants/renderMode.d.ts +2 -0
  46. package/dist/components/custom/aurora/constants/shaders/mediums.glsl.d.ts +1 -1
  47. package/dist/components/custom/aurora/constants/shaders/vangogh-medium.glsl.d.ts +1 -0
  48. package/dist/components/custom/color-swatch/ColorSwatch.vue.d.ts +22 -0
  49. package/dist/components/custom/color-swatch/index.d.ts +1 -0
  50. package/dist/components/custom/configurator/Configurator.vue.d.ts +19 -8
  51. package/dist/components/custom/configurator/ConfiguratorRow.vue.d.ts +16 -0
  52. package/dist/components/custom/constellation/Constellation.vue.d.ts +23 -143
  53. package/dist/components/custom/constellation/composables/createConstellationField.d.ts +41 -0
  54. package/dist/components/custom/constellation/composables/useConstellation.d.ts +26 -0
  55. package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +35 -0
  56. package/dist/components/custom/constellation/constants.d.ts +61 -0
  57. package/dist/components/custom/constellation/constellationDraw.d.ts +30 -0
  58. package/dist/components/custom/constellation/constellationField.d.ts +3 -403
  59. package/dist/components/custom/constellation/constellationInteraction.d.ts +132 -0
  60. package/dist/components/custom/constellation/constellationTypes.d.ts +369 -0
  61. package/dist/components/custom/constellation/index.d.ts +5 -2
  62. package/dist/components/custom/controls/DarkModeToggle.vue.d.ts +11 -0
  63. package/dist/components/custom/dock/DockRail.vue.d.ts +89 -0
  64. package/dist/components/custom/dock/DockSection.vue.d.ts +69 -0
  65. package/dist/components/custom/dock/DockSeparator.vue.d.ts +49 -1
  66. package/dist/components/custom/dock/DockTabButton.vue.d.ts +5 -6
  67. package/dist/components/custom/dock/GlassDock.vue.d.ts +5 -118
  68. package/dist/components/custom/dock/composables/dockMorphContext.d.ts +36 -0
  69. package/dist/components/custom/dock/composables/index.d.ts +1 -0
  70. package/dist/components/custom/dock/composables/useDockClickIntegrity.d.ts +23 -0
  71. package/dist/components/custom/dock/composables/useDockMorphWindow.d.ts +15 -0
  72. package/dist/components/custom/dock/composables/useDockOrientationMorph.d.ts +44 -0
  73. package/dist/components/custom/dock/composables/useDockShellProps.d.ts +165 -0
  74. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +44 -0
  75. package/dist/components/custom/dock/constants.d.ts +83 -0
  76. package/dist/components/custom/dock/index.d.ts +5 -0
  77. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +15 -37
  78. package/dist/components/custom/fading-scroll/FadingScroll.vue.d.ts +25 -0
  79. package/dist/components/custom/fading-scroll/composables/useFadingScroll.d.ts +31 -0
  80. package/dist/components/custom/fading-scroll/constants.d.ts +19 -0
  81. package/dist/components/custom/fading-scroll/index.d.ts +2 -0
  82. package/dist/components/custom/fourier-field/FourierField.vue.d.ts +7 -0
  83. package/dist/components/custom/fourier-field/index.d.ts +1 -1
  84. package/dist/components/custom/fourier-field/math.d.ts +34 -0
  85. package/dist/components/custom/fourier-field/presets.d.ts +54 -0
  86. package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +8 -0
  87. package/dist/components/custom/goo-blob/composables/buildMetaballProgram.d.ts +18 -0
  88. package/dist/components/custom/goo-blob/composables/uploadBlobUniforms.d.ts +41 -0
  89. package/dist/components/custom/goo-blob/composables/useBlobPointer.d.ts +4 -3
  90. package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +21 -8
  91. package/dist/components/custom/goo-blob/constants.d.ts +57 -0
  92. package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -0
  93. package/dist/components/custom/handmark/brush.d.ts +33 -6
  94. package/dist/components/custom/handmark/{useHandMark.d.ts → composables/useHandMark.d.ts} +6 -4
  95. package/dist/components/custom/handmark/constants.d.ts +39 -0
  96. package/dist/components/custom/handmark/geometry.d.ts +14 -12
  97. package/dist/components/custom/handmark/index.d.ts +8 -2
  98. package/dist/components/custom/handmark/types.d.ts +9 -0
  99. package/dist/components/custom/icon-chip/IconChip.vue.d.ts +4 -0
  100. package/dist/components/custom/icon-chip/index.d.ts +2 -0
  101. package/dist/components/custom/icon-chip/types.d.ts +72 -0
  102. package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +17 -4
  103. package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +37 -0
  104. package/dist/components/custom/labeled-field/LabeledSelect.vue.d.ts +6 -0
  105. package/dist/components/custom/labeled-field/LabeledSlider.vue.d.ts +6 -0
  106. package/dist/components/custom/labeled-field/LabeledSwitch.vue.d.ts +6 -0
  107. package/dist/components/custom/metric-badge/MetricBadge.vue.d.ts +11 -18
  108. package/dist/components/custom/metric-badge/index.d.ts +1 -0
  109. package/dist/components/custom/metric-cell/MetricCell.vue.d.ts +15 -4
  110. package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +6 -4
  111. package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +39 -0
  112. package/dist/components/custom/pager-dots/index.d.ts +2 -0
  113. package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +20 -25
  114. package/dist/components/custom/tabs/composables/useTabIndicator.d.ts +30 -21
  115. package/dist/components/custom/tabs/constants.d.ts +18 -0
  116. package/dist/components/custom/tabs/index.d.ts +1 -1
  117. package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +14 -0
  118. package/dist/components/ui/_shared/index.d.ts +2 -0
  119. package/dist/components/ui/_shared/menuItemVariants.d.ts +19 -0
  120. package/dist/components/ui/_shared/useSurfaceAxis.d.ts +41 -0
  121. package/dist/components/ui/card/Card.vue.d.ts +16 -4
  122. package/dist/components/ui/carousel/index.d.ts +0 -1
  123. package/dist/components/ui/command/Command.vue.d.ts +3 -0
  124. package/dist/components/ui/dialog/DialogContent.vue.d.ts +8 -3
  125. package/dist/components/ui/drawer/Drawer.vue.d.ts +1 -0
  126. package/dist/components/ui/drawer/DrawerContent.vue.d.ts +5 -0
  127. package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +2 -2
  128. package/dist/components/ui/index.d.ts +0 -1
  129. package/dist/components/ui/metric-pill/MetricPill.vue.d.ts +6 -3
  130. package/dist/components/ui/popover/PopoverContent.vue.d.ts +3 -0
  131. package/dist/components/ui/progress/ProgressSectioned.vue.d.ts +14 -3
  132. package/dist/components/ui/select/SelectTrigger.vue.d.ts +27 -4
  133. package/dist/components/ui/sheet/SheetContent.vue.d.ts +6 -0
  134. package/dist/components/ui/skeleton/Skeleton.vue.d.ts +3 -0
  135. package/dist/components/ui/slider/index.d.ts +22 -19
  136. package/dist/components/ui/tabs/TabsIndicator.vue.d.ts +4 -1
  137. package/dist/components/ui/toast/use-toast.d.ts +2 -2
  138. package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
  139. package/dist/components/ui/toggle/index.d.ts +1 -1
  140. package/dist/components/ui/toggle-group/ToggleGroup.vue.d.ts +1 -7
  141. package/dist/components/ui/toggle-group/ToggleGroupItem.vue.d.ts +1 -3
  142. package/dist/components/ui/toggle-group/toggleGroupContext.d.ts +0 -13
  143. package/dist/composables/color/index.d.ts +12 -0
  144. package/dist/composables/dark/useGlobalDark.d.ts +14 -12
  145. package/dist/composables/glass/index.d.ts +0 -1
  146. package/dist/composables/glass/useGlassBackdropLuminance.d.ts +59 -0
  147. package/dist/composables/glass/useSpecularTracking.d.ts +12 -3
  148. package/dist/composables/motion/core/index.d.ts +1 -1
  149. package/dist/composables/motion/curves.d.ts +48 -0
  150. package/dist/composables/motion/index.d.ts +2 -0
  151. package/dist/composables/motion/springPresets.d.ts +33 -0
  152. package/dist/composables/motion/suite.d.ts +2 -0
  153. package/dist/composables/motion/useLiquidFlex.d.ts +85 -0
  154. package/dist/composables/motion/useSpringMount.d.ts +1 -1
  155. package/dist/composables/motion/useViewTransition.d.ts +36 -1
  156. package/dist/configurator.js +1 -1
  157. package/dist/confirm-dialog.js +3 -3
  158. package/dist/constellation.js +373 -261
  159. package/dist/context-menu.js +2 -2
  160. package/dist/controls.js +48 -14
  161. package/dist/dark.js +1 -1
  162. package/dist/data-table.js +1 -1
  163. package/dist/dialog.js +2 -2
  164. package/dist/dock.js +901 -372
  165. package/dist/dockContext-Bu1Avy-a.js +17 -0
  166. package/dist/dom.js +5 -5
  167. package/dist/{dropdown-menu-D77jX6Df.js → dropdown-menu-BJ7E9js_.js} +11 -8
  168. package/dist/dropdown-menu.js +1 -1
  169. package/dist/expandable-container.js +44 -81
  170. package/dist/fading-scroll.d.ts +1 -0
  171. package/dist/fading-scroll.js +2 -0
  172. package/dist/forms.js +5 -5
  173. package/dist/fourier-field.js +140 -104
  174. package/dist/fourier-math.js +2 -2
  175. package/dist/glass-panel.js +90 -21
  176. package/dist/glass-ui.css +1 -1
  177. package/dist/glass-ui.js +230 -236
  178. package/dist/goo-blob.js +264 -228
  179. package/dist/handmark.js +203 -159
  180. package/dist/header-ribbon.js +1 -1
  181. package/dist/hover-card.js +1 -1
  182. package/dist/hover-popover.js +1 -1
  183. package/dist/icon-chip.d.ts +1 -0
  184. package/dist/icon-chip.js +2 -0
  185. package/dist/icon-tooltip.js +1 -1
  186. package/dist/index.d.ts +3 -5
  187. package/dist/instrument-chassis.js +1 -1
  188. package/dist/keyboard.js +1 -1
  189. package/dist/label.js +1 -1
  190. package/dist/labeled-field.js +28 -18
  191. package/dist/{math-DTpRVC0e.js → math-DeuJwLFx.js} +26 -2
  192. package/dist/{menuItemVariants-CCoBNkU5.js → menuItemVariants-DWRQXBxJ.js} +10 -4
  193. package/dist/metric-badge.js +1 -1
  194. package/dist/metric-cell.js +29 -22
  195. package/dist/metric-stack.js +35 -34
  196. package/dist/{minimize-2-lcXOuc6V.js → minimize-2-BV31Ob_h.js} +1 -1
  197. package/dist/motion-core.js +32 -136
  198. package/dist/motion-curves.d.ts +1 -0
  199. package/dist/motion-curves.js +130 -0
  200. package/dist/motion.js +38 -37
  201. package/dist/notification.js +1 -1
  202. package/dist/number-field.js +1 -1
  203. package/dist/pager-dots.d.ts +1 -0
  204. package/dist/pager-dots.js +91 -0
  205. package/dist/paper-backdrop.js +1 -1
  206. package/dist/popover.js +1 -1
  207. package/dist/progress.js +1 -1
  208. package/dist/pulse.js +1 -1
  209. package/dist/reactive.js +2 -2
  210. package/dist/scrolling-text.js +1 -1
  211. package/dist/{search-nbkvr2dC.js → search-BSGrf2Sk.js} +1 -1
  212. package/dist/search.js +10 -10
  213. package/dist/select.js +3 -3
  214. package/dist/separator.js +1 -1
  215. package/dist/sheet-CquRYOAw.js +218 -0
  216. package/dist/sheet.js +1 -1
  217. package/dist/{slider-ClgpP7EB.js → slider-DQ95MET2.js} +8 -8
  218. package/dist/slider.js +1 -1
  219. package/dist/sortable-list.js +3 -3
  220. package/dist/springPresets-WXaLbu8u.js +40 -0
  221. package/dist/stacked-icons.js +6 -6
  222. package/dist/styles/animations.css +25 -125
  223. package/dist/styles/cards.css +55 -0
  224. package/dist/styles/components.css +4 -1
  225. package/dist/styles/configurator.css +77 -0
  226. package/dist/styles/dock/density.css +19 -0
  227. package/dist/styles/dock/layer-group.css +83 -25
  228. package/dist/styles/dock/layers.css +23 -1
  229. package/dist/styles/dock/morph-bridge.css +123 -0
  230. package/dist/styles/dock/morph.css +175 -45
  231. package/dist/styles/dock/overflow.css +66 -1
  232. package/dist/styles/dock/rail-extend.css +397 -0
  233. package/dist/styles/dock/section.css +59 -0
  234. package/dist/styles/dock/shell.css +97 -110
  235. package/dist/styles/dock-controls/dark-mode-toggle.css +109 -0
  236. package/dist/styles/dock-controls/icon-button.css +143 -0
  237. package/dist/styles/dock-controls/tab-button.css +143 -0
  238. package/dist/styles/dock-controls/touch-floor.css +94 -0
  239. package/dist/styles/dock-controls/triggers.css +135 -0
  240. package/dist/styles/dock-controls.css +30 -595
  241. package/dist/styles/dock.css +8 -3
  242. package/dist/styles/drawer.css +48 -0
  243. package/dist/styles/feedback-tone.css +104 -0
  244. package/dist/styles/floating-panel.css +17 -0
  245. package/dist/styles/glass/a11y-fallback.css +245 -0
  246. package/dist/styles/glass/ladder.css +383 -0
  247. package/dist/styles/glass/material.css +238 -0
  248. package/dist/styles/glass/progress-rail.css +78 -0
  249. package/dist/styles/glass/squircle.css +66 -0
  250. package/dist/styles/glass/surface-axis.css +113 -0
  251. package/dist/styles/glass/surfaces.css +382 -0
  252. package/dist/styles/glass-refract.css +2 -0
  253. package/dist/styles/glass.css +34 -1188
  254. package/dist/styles/hover-popover.css +2 -0
  255. package/dist/styles/icon-chip.css +149 -0
  256. package/dist/styles/index.css +94 -18
  257. package/dist/styles/instrument-chassis.css +46 -0
  258. package/dist/styles/menu.css +127 -0
  259. package/dist/styles/paper.css +2 -68
  260. package/dist/styles/segmented-tabs.css +346 -0
  261. package/dist/styles/select.css +50 -0
  262. package/dist/styles/theme/bridges.css +347 -0
  263. package/dist/styles/theme/dark.css +7 -0
  264. package/dist/styles/theme/literals.css +94 -0
  265. package/dist/styles/theme/radius.css +95 -0
  266. package/dist/styles/theme.css +26 -529
  267. package/dist/styles/tokens/color-radius.css +287 -0
  268. package/dist/styles/tokens/dark-arm.css +308 -0
  269. package/dist/styles/tokens/glass.css +500 -0
  270. package/dist/styles/tokens/light-dark.css +187 -0
  271. package/dist/styles/tokens/offsets-sizing.css +562 -0
  272. package/dist/styles/tokens/property-regs.css +162 -0
  273. package/dist/styles/tokens/scale-paper.css +409 -0
  274. package/dist/styles/tokens/scheme-motion.css +352 -0
  275. package/dist/styles/tokens/shadow.css +166 -0
  276. package/dist/styles/tokens.css +22 -2360
  277. package/dist/styles/transitions.css +7 -7
  278. package/dist/styles/typography/scale.css +153 -0
  279. package/dist/styles/typography/semantic.css +220 -0
  280. package/dist/styles/typography/utilities.css +159 -0
  281. package/dist/styles/typography.css +23 -453
  282. package/dist/styles/utilities/a11y-overrides.css +169 -0
  283. package/dist/styles/utilities/animate.css +26 -0
  284. package/dist/styles/utilities/base.css +541 -0
  285. package/dist/styles/utilities/btn.css +218 -0
  286. package/dist/styles/utilities/components.css +317 -0
  287. package/dist/styles/utilities.css +19 -1318
  288. package/dist/styles/view-transition.css +4 -52
  289. package/dist/switch.js +1 -1
  290. package/dist/tabs.js +161 -181
  291. package/dist/timeline.js +2 -2
  292. package/dist/toast.js +1 -1
  293. package/dist/toggle-chip.js +3 -1
  294. package/dist/toggle-group.js +1 -1
  295. package/dist/tooltip.js +1 -1
  296. package/dist/typewriter.js +1 -1
  297. package/dist/{useAnimatedNumber-Bcpy5Etf.js → useAnimatedNumber-C_3wZLx4.js} +1 -1
  298. package/dist/useConfiguratorState-kiIlun8I.js +303 -0
  299. package/dist/useLiquidFlex-C12hXwOZ.js +30 -0
  300. package/dist/useRAFLoop-CdwJ7284.js +109 -0
  301. package/dist/{useScrollProgress-CffFGLa5.js → useScrollProgress-D7bYU2RK.js} +1 -1
  302. package/dist/useSpecularTracking-Bo5su68i.js +32 -0
  303. package/dist/useSpringMount-CvopqiFr.js +108 -0
  304. package/dist/useSurfaceAxis-CMnF2zHb.js +7 -0
  305. package/dist/{useTouchGate-WFyJYsth.js → useTouchGate-28Tk2-t2.js} +1 -1
  306. package/dist/useViewTransition-COsPjQVZ.js +47 -0
  307. package/dist/utils/coalesceMetric.d.ts +29 -0
  308. package/dist/utils/index.d.ts +1 -0
  309. package/dist/vReveal-D9k0jADx.js +10 -0
  310. package/dist/watercolor-dot.js +22 -13
  311. package/dist/{x-Dfsegz9Y.js → x-BUwTKe50.js} +1 -1
  312. package/package.json +134 -50
  313. package/src/styles/animations.css +25 -125
  314. package/src/styles/cards.css +53 -0
  315. package/src/styles/configurator.css +77 -0
  316. package/src/styles/dock/density.css +19 -0
  317. package/src/styles/dock/layer-group.css +83 -25
  318. package/src/styles/dock/layers.css +23 -1
  319. package/src/styles/dock/morph-bridge.css +123 -0
  320. package/src/styles/dock/morph.css +175 -45
  321. package/src/styles/dock/overflow.css +66 -1
  322. package/src/styles/dock/rail-extend.css +397 -0
  323. package/src/styles/dock/section.css +59 -0
  324. package/src/styles/dock/shell.css +97 -110
  325. package/src/styles/dock-controls/dark-mode-toggle.css +109 -0
  326. package/src/styles/dock-controls/icon-button.css +143 -0
  327. package/src/styles/dock-controls/tab-button.css +143 -0
  328. package/src/styles/dock-controls/touch-floor.css +94 -0
  329. package/src/styles/dock-controls/triggers.css +135 -0
  330. package/src/styles/dock-controls.css +30 -595
  331. package/src/styles/dock.css +8 -3
  332. package/src/styles/drawer.css +42 -0
  333. package/src/styles/feedback-tone.css +104 -0
  334. package/src/styles/floating-panel.css +15 -0
  335. package/src/styles/glass/a11y-fallback.css +245 -0
  336. package/src/styles/glass/ladder.css +383 -0
  337. package/src/styles/glass/material.css +238 -0
  338. package/src/styles/glass/progress-rail.css +78 -0
  339. package/src/styles/glass/squircle.css +66 -0
  340. package/src/styles/glass/surface-axis.css +113 -0
  341. package/src/styles/glass/surfaces.css +382 -0
  342. package/src/styles/glass.css +34 -1188
  343. package/src/styles/icon-chip.css +149 -0
  344. package/src/styles/index.css +93 -17
  345. package/src/styles/instrument-chassis.css +42 -0
  346. package/src/styles/menu.css +127 -0
  347. package/src/styles/paper.css +2 -68
  348. package/src/styles/segmented-tabs.css +340 -0
  349. package/src/styles/select.css +50 -0
  350. package/src/styles/theme/bridges.css +347 -0
  351. package/src/styles/theme/dark.css +7 -0
  352. package/src/styles/theme/literals.css +94 -0
  353. package/src/styles/theme/radius.css +95 -0
  354. package/src/styles/theme.css +26 -529
  355. package/src/styles/tokens/color-radius.css +287 -0
  356. package/src/styles/tokens/dark-arm.css +308 -0
  357. package/src/styles/tokens/glass.css +500 -0
  358. package/src/styles/tokens/light-dark.css +187 -0
  359. package/src/styles/tokens/offsets-sizing.css +562 -0
  360. package/src/styles/tokens/property-regs.css +162 -0
  361. package/src/styles/tokens/scale-paper.css +409 -0
  362. package/src/styles/tokens/scheme-motion.css +352 -0
  363. package/src/styles/tokens/shadow.css +166 -0
  364. package/src/styles/tokens.css +22 -2360
  365. package/src/styles/transitions.css +7 -7
  366. package/src/styles/typography/scale.css +153 -0
  367. package/src/styles/typography/semantic.css +220 -0
  368. package/src/styles/typography/utilities.css +159 -0
  369. package/src/styles/typography.css +23 -453
  370. package/src/styles/utilities/a11y-overrides.css +169 -0
  371. package/src/styles/utilities/animate.css +26 -0
  372. package/src/styles/utilities/base.css +541 -0
  373. package/src/styles/utilities/btn.css +218 -0
  374. package/src/styles/utilities/components.css +317 -0
  375. package/src/styles/utilities.css +19 -1318
  376. package/src/styles/view-transition.css +4 -52
  377. package/dist/CardAction-DuArVky-.js +0 -157
  378. package/dist/DeckProgress-Dmk4_AKN.js +0 -23
  379. package/dist/DialogContent-BRkT1cjP.js +0 -100
  380. package/dist/InstrumentRail-CUJ05YVG.js +0 -44
  381. package/dist/MetricBadge-BZVWIxNy.js +0 -80
  382. package/dist/PopoverContent-BId6ggf_.js +0 -121
  383. package/dist/TabsList-B8CVOQPC.js +0 -101
  384. package/dist/components/custom/deck-progress/DeckProgress.vue.d.ts +0 -27
  385. package/dist/components/custom/deck-progress/index.d.ts +0 -2
  386. package/dist/components/custom/dialog-native/GlassDialogNative.vue.d.ts +0 -57
  387. package/dist/components/custom/dialog-native/index.d.ts +0 -1
  388. package/dist/components/custom/instrument-rail/InstrumentRail.vue.d.ts +0 -91
  389. package/dist/components/custom/instrument-rail/index.d.ts +0 -2
  390. package/dist/components/ui/carousel/CarouselDots.vue.d.ts +0 -4
  391. package/dist/composables/motion/useRouteTransition.d.ts +0 -42
  392. package/dist/deck-progress.d.ts +0 -1
  393. package/dist/deck-progress.js +0 -2
  394. package/dist/dockContext-BKeIMmNk.js +0 -9
  395. package/dist/instrument-rail.d.ts +0 -1
  396. package/dist/instrument-rail.js +0 -2
  397. package/dist/sheet-VZEtNFvO.js +0 -214
  398. package/dist/styles/instrument-rail.css +0 -127
  399. package/dist/useConfiguratorState-DxAqksK6.js +0 -287
  400. package/dist/useGlassRenderer-D7YGOYiM.js +0 -69
  401. package/dist/useSpecularTracking-BVRZsRHA.js +0 -26
  402. package/dist/useSpringMount-BJSHcLl3.js +0 -113
  403. package/dist/useViewTransition-DaN5Zrox.js +0 -21
  404. package/dist/vReveal-zUIQk-rJ.js +0 -53
  405. package/src/styles/instrument-rail.css +0 -127
  406. /package/dist/{CollapsibleContent-CP9qF1v4.js → CollapsibleContent-C_s6fG7r.js} +0 -0
  407. /package/dist/{ContextMenuContent-DDa0v27s.js → ContextMenuContent-ON3x7cuk.js} +0 -0
  408. /package/dist/{HoverCardContent-B6CcQ8He.js → HoverCardContent-DkMaQzH5.js} +0 -0
  409. /package/dist/{Input-xuDwALQR.js → Input-DVG_J0ne.js} +0 -0
  410. /package/dist/{InstrumentChassis-C2f6cBaQ.js → InstrumentChassis-UUJX0-mW.js} +0 -0
  411. /package/dist/{Label-zRfbQdCn.js → Label-Ck9SWEKM.js} +0 -0
  412. /package/dist/{ModalOverlay-B1GkAjNb.js → ModalOverlay-CkPRRgl_.js} +0 -0
  413. /package/dist/{PaperBackdrop-CqwjnfLv.js → PaperBackdrop-nBKe0vkB.js} +0 -0
  414. /package/dist/{SelectGroup-BFiod7X2.js → SelectGroup-Dcczq44n.js} +0 -0
  415. /package/dist/{SelectSeparator-C4Ql0gzV.js → SelectSeparator-DK2y1Bun.js} +0 -0
  416. /package/dist/{Separator-D7sD7RKj.js → Separator-BArl4OaB.js} +0 -0
  417. /package/dist/{TooltipProvider-CmZzCuaG.js → TooltipProvider-B3MkB_8P.js} +0 -0
  418. /package/dist/{_plugin-vue_export-helper-ok8pgSl5.js → _plugin-vue_export-helper-CBt_VvXa.js} +0 -0
  419. /package/dist/{compile-BOXjLUxu.js → compile-EXXzEr1q.js} +0 -0
  420. /package/dist/{constants-yKeKnE84.js → constants-BPOqYJAm.js} +0 -0
  421. /package/dist/{createContext-B44Sah_H.js → createContext-B2RaZ-b8.js} +0 -0
  422. /package/dist/{createLucideIcon-B6uNAU9G.js → createLucideIcon-DydS2qgk.js} +0 -0
  423. /package/dist/{presets-BP_ALM0m.js → presets-BW2b-fr1.js} +0 -0
  424. /package/dist/{prng-D27-B3tK.js → prng-Cg22zv8g.js} +0 -0
  425. /package/dist/{supportsCssTimeline-C5oe0lnD.js → supportsCssTimeline-BWenxvHU.js} +0 -0
  426. /package/dist/{useGlobalDark-CAhOXNLO.js → useGlobalDark-C28t0VWJ.js} +0 -0
  427. /package/dist/{useIntersectionPause-Cck5Uxk8.js → useIntersectionPause-Bj4sPkMh.js} +0 -0
  428. /package/dist/{useInterval-Dsmqwi03.js → useInterval-CNdua40W.js} +0 -0
  429. /package/dist/{useKeyboardShortcuts-CyIYrndH.js → useKeyboardShortcuts-BXWXOZ-9.js} +0 -0
  430. /package/dist/{useResizeObserver-CWCbk5Px.js → useResizeObserver-V6nq5gJb.js} +0 -0
  431. /package/dist/{useResolveTokenColor-r9pnNjqK.js → useResolveTokenColor-NUG2zYAW.js} +0 -0
  432. /package/dist/{useSortable-C8ReQ50P.js → useSortable-BVqlJRBR.js} +0 -0
  433. /package/dist/{useTextHighlight-CWEi25hf.js → useTextHighlight-NmBM5V_4.js} +0 -0
  434. /package/dist/{useTimer-3xqf_54b.js → useTimer-B_PAasDL.js} +0 -0
  435. /package/dist/{useUserInvalidAria-DoJKMZ3s.js → useUserInvalidAria-CDfJuakL.js} +0 -0
  436. /package/dist/{useViewportReady-RIr5Wgkh.js → useViewportReady-CvBcCYDf.js} +0 -0
@@ -1,112 +1,5 @@
1
- type DockDensity = "compact" | "comfortable" | "spacious" | "audacious";
2
- interface DockCommonProps {
3
- fitContent?: boolean;
4
- position?: "fixed" | "inline" | "sticky";
5
- alwaysExpanded?: boolean;
6
- /**
7
- * Corner treatment.
8
- * `"pill"` — the stadium silhouette (default).
9
- * `"rounded"` — a finite rounded radius (`--radius-xl`).
10
- * `"card"` — the AW.W3b big-dock card shell: a finite concentric
11
- * radius (`--dock-card-radius`, default `--radius-3xl`)
12
- * ABOVE 2xl, below pill — does NOT collapse to a stadium.
13
- * Collapsed it returns to a pill; the pill↔card swap
14
- * morphs on the `--dock-motion-resize` spring. AX.W56's
15
- * squircle policy applies `corner-shape:
16
- * var(--corner-shape-bigdock)` here under `@supports
17
- * (corner-shape: superellipse(2))` — the big-dock is the ONE
18
- * surface where the superellipse reads (cards/pills stay
19
- * round); the border-radius arc is the cross-engine contract.
20
- *
21
- * `"pill"`/`"rounded"` previously bound ONLY under the vertical rail
22
- * variant — on a horizontal dock the prop silently no-op'd. AW.W3b adds
23
- * the horizontal-root shape rules (closing that documented-but-dead prop),
24
- * so `shape` now paints on a horizontal dock too.
25
- */
26
- shape?: "pill" | "rounded" | "card";
27
- /**
28
- * Layout axis of the dock. `"horizontal"` (default) lays items out
29
- * left-to-right and animates `width`; `"vertical"` lays items out
30
- * top-to-bottom and animates `height`. IGNORED under `variant="rail"` /
31
- * `"instrument-strip"` (those force vertical by construction).
32
- */
33
- orientation?: "horizontal" | "vertical";
34
- /**
35
- * Density controls dock padding, gaps, layer height, and inherited
36
- * dock control sizing. Root CSS variables can override each density.
37
- */
38
- density?: DockDensity;
39
- /**
40
- * Overflow strategy when the expanded content exceeds the dock's
41
- * axis cap (`--dock-max-inline-size` horizontally,
42
- * `--dock-max-block-size` vertically). The ONE knob governing every
43
- * overflow behaviour (AT.W7-dock-a clean break — collapsed from the
44
- * prior `wrap` boolean + `overflow` pair + `containerName` clip-lift,
45
- * which all touched overflow divergently).
46
- * `"grow"` — content grows to fit then overflows visibly past
47
- * the cap (the default; nothing clips or scrolls).
48
- * `"wrap"` — expanded content wraps to multiple rows via CONTENT-DRIVEN
49
- * intrinsic flex-wrap (the `.dock-overflow-wrap` recipe). The
50
- * dock shrink-wraps to content and caps that intrinsic width
51
- * at `max-inline-size: var(--dock-max-inline-size)`, so the row
52
- * reflows to N rows EXACTLY when its intrinsic width exceeds
53
- * the cap — at ANY viewport width — and collapses to one row
54
- * when it fits (no viewport breakpoint). The wrapped multi-row silhouette lifts
55
- * onto the card/floating shadow tier as the dock expands.
56
- * HORIZONTAL-ONLY: a vertical rail grows-to-fit + clamps via
57
- * `--dock-max-block-size` (its own overflow story), so the
58
- * `.dock-overflow-wrap` class is not emitted for a vertical
59
- * orientation.
60
- * `"scroll"` — the dock becomes the scroll port. Horizontal docks
61
- * scroll the active layer on the inline axis
62
- * (`.dock-scroll-x`); vertical rails scroll on the
63
- * block axis (`.dock-scroll-y`), keeping the
64
- * `max-block-size` cap. The rounded pill masks the
65
- * scroll edge; the scrollbar is hidden. The axis is
66
- * chosen automatically from `orientation`.
67
- */
68
- overflow?: "grow" | "wrap" | "scroll";
69
- /**
70
- * When set, the dock root establishes an inline-size container query
71
- * subject (`container-type: inline-size; container-name: <value>`) so
72
- * descendants can query the named container via `@container <value>
73
- * (...)` rules. ORTHOGONAL to the `overflow` clip: opting into a
74
- * container subject does NOT silently change the dock's clip shell
75
- * (AT.W7-dock-a — the prior clip-lift was folded out; use
76
- * `overflow="wrap"` to allow multi-line content).
77
- *
78
- * T.B audit §1.3 cornerstone: the cluster's container subject must
79
- * live on the dock primitive, never on a descendant whose intrinsic
80
- * size the dock relies on.
81
- */
82
- containerName?: string;
83
- }
84
- interface DockVariantProps extends DockCommonProps {
85
- variant?: "dock";
86
- /** Idle-collapse delay in ms (default 2000). DOCK-ONLY — a rail never collapses. */
87
- collapseDelay?: number;
88
- /** Start in the collapsed state (default true). DOCK-ONLY — a rail is always expanded. */
89
- startCollapsed?: boolean;
90
- /**
91
- * In-cap arrangement. `"linear"` (default) lays the active layer out as a
92
- * linear row/column. `"grid"` makes the active layer a self-wrapping tile
93
- * grid (Launchpad/Stage-Manager track symmetry — `auto-fill` columns of
94
- * `--dock-tile-min`). ORTHOGONAL to `overflow` (the OVER-cap strategy):
95
- * `layout` is the IN-cap arrangement.
96
- *
97
- * Hard contract: a `layout="grid"` dock is `alwaysExpanded` (a 2D panel
98
- * does not read as a collapsible pill, and no width morph means no
99
- * per-frame grid reflow). The canonical pairing is
100
- * `shape="card" layout="grid"` (the props stay independent — no
101
- * auto-implication of `shape`). DOCK-ONLY — the grid is a horizontal big-dock
102
- * arrangement, never a rail's.
103
- */
104
- layout?: "linear" | "grid";
105
- }
106
- interface DockRailProps extends DockCommonProps {
107
- variant: "rail" | "instrument-strip";
108
- }
109
- declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {}, __VLS_7: {}, __VLS_14: {}, __VLS_16: {}, __VLS_18: {};
1
+ import { type DockProps } from "./composables/useDockShellProps";
2
+ declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {}, __VLS_7: {};
110
3
  type __VLS_Slots = {} & {
111
4
  persistent?: (props: typeof __VLS_1) => any;
112
5
  } & {
@@ -114,15 +7,9 @@ type __VLS_Slots = {} & {
114
7
  } & {
115
8
  collapsed?: (props: typeof __VLS_5) => any;
116
9
  } & {
117
- default?: (props: typeof __VLS_7) => any;
118
- } & {
119
- collapsed?: (props: typeof __VLS_14) => any;
120
- } & {
121
- default?: (props: typeof __VLS_16) => any;
122
- } & {
123
- collapsed?: (props: typeof __VLS_18) => any;
10
+ rail?: (props: typeof __VLS_7) => any;
124
11
  };
125
- declare const __VLS_base: import("vue").DefineComponent<DockVariantProps | DockRailProps, {
12
+ declare const __VLS_base: import("vue").DefineComponent<DockProps, {
126
13
  expanded: import("vue").Ref<boolean, boolean>;
127
14
  isPinned: import("vue").Ref<boolean, boolean>;
128
15
  isHeld: import("vue").ComputedRef<boolean>;
@@ -131,7 +18,7 @@ declare const __VLS_base: import("vue").DefineComponent<DockVariantProps | DockR
131
18
  collapse: () => void;
132
19
  keepOpen: () => void;
133
20
  release: () => void;
134
- }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<DockVariantProps | DockRailProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
21
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<DockProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
135
22
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
136
23
  declare const _default: typeof __VLS_export;
137
24
  export default _default;
@@ -1,4 +1,40 @@
1
1
  import type { Ref } from "vue";
2
+ /**
3
+ * AX.W02 — ONE morph orchestrator per dock. The dock is a single morph stack
4
+ * whose active "layer" is `(expandedState × activePane)`: the outer
5
+ * collapse↔expand swap and the inner `<DockLayerGroup>` pane swaps are
6
+ * transitions in the SAME group — ONE spring, ONE scalar (`--dock-morph-t`,
7
+ * established by W01), ONE clock. No second engine.
8
+ *
9
+ * Re-derived from first principles on W01's settled single-scalar substrate:
10
+ * - `--dock-morph-t` is written to the `.glass-dock` root and INHERITS to every
11
+ * descendant (dock.css `@property … inherits:true`), so ONE spring writing
12
+ * that one scalar drives EVERY registered container's size calc at once.
13
+ * - Each morphing container carries its OWN `--dock-morph-from`/`--dock-morph-to`
14
+ * px span (the allowed one-time FLIP measurement) and interpolates it against
15
+ * the shared scalar — `from + (to − from) · t`. So a simultaneous
16
+ * collapse + pane-swap reads as one continuous spring: the box, the nested
17
+ * stack, and every child stagger ramp on the same `t`.
18
+ *
19
+ * The orchestrator OWNS one `SpringProgress`. The OUTER collapse↔expand pair
20
+ * registers as a target; a NESTED `<DockLayerGroup>` registers a SECOND target
21
+ * instead of minting its own `useLayerTransition` engine. A re-toggle mid-flight
22
+ * re-bases the live solver onto the new span from its current velocity (the iOS
23
+ * interruptible-physics contract W01 keeps), so even an interrupted morph stays
24
+ * one continuous trajectory.
25
+ *
26
+ * This is the dock-flavored first instance of the general `MorphGroup` /
27
+ * `GlassEffectContainer` facility (the iOS-26 Liquid-Glass corpus, facet 26 —
28
+ * the `provideMorphGroup` two-part seam: a per-element driver + a provide/inject
29
+ * orchestrator). AX.W42 generalizes it; W02 establishes the seam it builds on.
30
+ *
31
+ * LIGHT-surface only: `SpringProgress` owns its own rAF via `.play(onFrame)` and
32
+ * carries no static value.js edge — never import `AnimationGroup` / `./engine`
33
+ * (that pulls value.js into the dock bundle).
34
+ *
35
+ * The `DOCK_SPRING` tuning this orchestrator drives is the ONE authority shared with
36
+ * `useLayerTransition` — it lives in `../constants` (the feature-dir constants home).
37
+ */
2
38
  export interface DockMorphGroupRegistration {
3
39
  /** The container element owning this group's grid-stacked panes. */
4
40
  containerEl: Ref<HTMLElement | null>;
@@ -8,3 +8,4 @@ export { isTeleportedTarget } from "./isTeleportedTarget";
8
8
  export { provideDockContext, useDockContext, useOptionalDockContext, DOCK_CONTEXT_KEY, type DockContext, type DockOrientation, } from "./dockContext";
9
9
  export { provideDockLayerGroupContext, useDockLayerGroupContext, useOptionalDockLayerGroupContext, DOCK_LAYER_GROUP_KEY, type DockLayerDescriptor, type DockLayerGroupContext, } from "./dockLayerContext";
10
10
  export { useDockMorphOrchestrator, provideDockMorphContext, useOptionalDockMorphContext, DOCK_MORPH_KEY, type DockMorphContext, type DockMorphGroupRegistration, type DockMorphGroupHandle, type UseDockMorphOrchestratorOptions, type UseDockMorphOrchestratorReturn, } from "./dockMorphContext";
11
+ export { useDockOrientationMorph, type DockMorphOrientation, type UseDockOrientationMorphOptions, type UseDockOrientationMorphReturn, } from "./useDockOrientationMorph";
@@ -0,0 +1,23 @@
1
+ import { type Ref } from "vue";
2
+ export interface DockClickIntegrity {
3
+ /** Capture-phase `pointerdown` handler — records the press-time element + state. */
4
+ onPointerDownCapture: (event: PointerEvent) => void;
5
+ /** Capture-phase `click` handler — swallows an identity-changed post-swap click. */
6
+ onClickCapture: (event: MouseEvent) => void;
7
+ /** Mark the collapsed→expanded flip so the settle window opens (call on expand). */
8
+ markExpandFlip: () => void;
9
+ }
10
+ export interface UseDockClickIntegrityOptions {
11
+ /** The dock root element ref — the morph-state owner (`[data-morphing]`). */
12
+ rootEl: Ref<HTMLElement | null>;
13
+ /** `true` whenever the dock is visually expanded (collapsed = !this). */
14
+ visualExpanded: Ref<boolean>;
15
+ }
16
+ /**
17
+ * The dock click-integrity guard (R5-3). Returns the three capture-phase handlers
18
+ * the GlassDock SFC wires onto its root. The guard is a pure DOM-timing concern: it
19
+ * holds the press-time element identity + the settle-window deadline and decides, on
20
+ * the click, whether the click landed on the SAME control it was aimed at. Owns its
21
+ * own unmount cleanup.
22
+ */
23
+ export declare function useDockClickIntegrity(options: UseDockClickIntegrityOptions): DockClickIntegrity;
@@ -0,0 +1,15 @@
1
+ import { type Ref } from "vue";
2
+ /** The morph-window handlers the GlassDock SFC wires. */
3
+ export interface DockMorphWindow {
4
+ markTransitioning: () => void;
5
+ onDockTransitionDone: (event: TransitionEvent) => void;
6
+ clearTransitionTimer: () => void;
7
+ }
8
+ /**
9
+ * Own the `isTransitioning` flag's morph-window lifecycle. `markTransitioning`
10
+ * (every `visualExpanded` flip) bumps a private generation so any in-flight
11
+ * morph's pending timer / `transitionend` self-cancels (the A→B→A no-skip /
12
+ * no-queue invariant); `onDockTransitionDone` resolves the flag on a resize-morph
13
+ * property finishing. Clears its timer on unmount.
14
+ */
15
+ export declare function useDockMorphWindow(dockEl: Ref<HTMLElement | null>, isTransitioning: Ref<boolean>): DockMorphWindow;
@@ -0,0 +1,44 @@
1
+ import { type ComputedRef, type Ref } from "vue";
2
+ export type DockMorphOrientation = "vertical" | "horizontal";
3
+ export interface UseDockOrientationMorphOptions {
4
+ /**
5
+ * The host root the scalar is written to (`--dock-morph-t`). Both docks + the
6
+ * bridge live under it and read the inheriting scalar.
7
+ */
8
+ rootEl: Ref<HTMLElement | null>;
9
+ /** The vertical dock's full (expanded) block size in px — the `t=0` height. */
10
+ verticalSize: number | (() => number);
11
+ /** The horizontal dock's full (expanded) inline size in px — the `t=1` width. */
12
+ horizontalSize: number | (() => number);
13
+ }
14
+ export interface UseDockOrientationMorphReturn {
15
+ /** The current target orientation. Set via `toggle()`/`morphTo()`. */
16
+ orientation: Readonly<Ref<DockMorphOrientation>>;
17
+ /** The live normalized scalar (0 = vertical, 1 = horizontal). */
18
+ t: Readonly<Ref<number>>;
19
+ /** True while the spring is in flight (the host arms `data-morphing`). */
20
+ morphing: Readonly<Ref<boolean>>;
21
+ /** The vertical dock's live height style (`{ height: "Npx" }`), collapsing 0. */
22
+ verticalStyle: ComputedRef<Record<string, string>>;
23
+ /** The horizontal dock's live width style (`{ width: "Npx" }`), growing 0→full. */
24
+ horizontalStyle: ComputedRef<Record<string, string>>;
25
+ /** The vertical dock's crossfade opacity (`{ opacity: "…" }`), 1→0 over the morph. */
26
+ verticalOpacity: ComputedRef<Record<string, string>>;
27
+ /** The horizontal dock's crossfade opacity (`{ opacity: "…" }`), 0→1 over the morph. */
28
+ horizontalOpacity: ComputedRef<Record<string, string>>;
29
+ /** The teardrop squish scalar (the bridge reads it for the liquid swell). */
30
+ stretch: ComputedRef<number>;
31
+ /** Morph to the explicit orientation (a no-op if already there). */
32
+ morphTo(next: DockMorphOrientation): void;
33
+ /** Toggle V↔H. The bidirectional driver — the SAME scalar both ways. */
34
+ toggle(): void;
35
+ /**
36
+ * PIN the morph to an EXACT scalar value (0→1) with NO spring — the deterministic
37
+ * capture seam (HG1). Disposes any live spring, writes the scalar + both flex
38
+ * spans + the crossfade to exactly `value`, so a frame captured at a given `t` is
39
+ * byte-reproducible (no wall-clock, no spring asynchrony). The orientation is set
40
+ * to the side `value` lands on for the inert/a11y contract.
41
+ */
42
+ pin(value: number): void;
43
+ }
44
+ export declare function useDockOrientationMorph(options: UseDockOrientationMorphOptions): UseDockOrientationMorphReturn;
@@ -0,0 +1,165 @@
1
+ import { type ComputedRef } from "vue";
2
+ export type DockDensity = "compact" | "comfortable" | "spacious" | "audacious";
3
+ /**
4
+ * The ONE GlassDock prop shape (AZ.W-DOCK-TAXONOMY — the discriminated union is
5
+ * gone). Every dock — horizontal or vertical — reads the SAME surface; orientation
6
+ * is the single layout axis and the collapse surface applies on both.
7
+ */
8
+ export interface DockProps {
9
+ fitContent?: boolean;
10
+ position?: "fixed" | "inline" | "sticky";
11
+ /**
12
+ * Never collapse — render permanently expanded; the single opt-OUT of the
13
+ * collapse↔expand machinery. Default `false` (every dock is collapsible).
14
+ * AZ.W-DOCK-TAXONOMY — vertical docks are NO LONGER force-pinned here (a
15
+ * vertical dock morphs its height too; the prior `variant="rail"`
16
+ * always-expanded-by-construction is removed). A `layout="grid"` dock is
17
+ * `alwaysExpanded` BY CONTRACT (a 2D tile panel does not read as a collapsible
18
+ * pill). A vertical nav column that wants the static always-expanded look opts
19
+ * in via this prop. (A positive `collapsible` boolean was considered and
20
+ * rejected: Vue coerces an absent boolean prop to `false`, so a `collapsible`
21
+ * defaulting to `true` would need a `withDefaults` second default-path; the
22
+ * existing `alwaysExpanded` opt-out — which correctly defaults `false` — is the
23
+ * one knob, no Vue boolean-trap.)
24
+ */
25
+ alwaysExpanded?: boolean;
26
+ /**
27
+ * Corner treatment.
28
+ * `"pill"` — the stadium silhouette (default).
29
+ * `"rounded"` — a finite rounded radius (`--radius-xl`).
30
+ * `"card"` — the AW.W3b big-dock card shell: a finite concentric
31
+ * radius (`--dock-card-radius`, default `--radius-3xl`)
32
+ * ABOVE 2xl, below pill — does NOT collapse to a stadium.
33
+ * Collapsed it returns to a pill; the pill↔card swap
34
+ * morphs on the `--dock-motion-resize` spring. AX.W56's
35
+ * squircle policy applies `corner-shape:
36
+ * var(--corner-shape-bigdock)` here under `@supports
37
+ * (corner-shape: superellipse(2))` — the big-dock is the ONE
38
+ * surface where the superellipse reads (cards/pills stay
39
+ * round); the border-radius arc is the cross-engine contract.
40
+ *
41
+ * Paints on BOTH orientations (AZ.W-DOCK-TAXONOMY — `shape` is no longer
42
+ * variant-gated; a vertical dock reads `shape="rounded"` for the tool-palette
43
+ * look, a horizontal dock reads `shape="card"` for the big-dock shell).
44
+ */
45
+ shape?: "pill" | "rounded" | "card";
46
+ /**
47
+ * Layout axis of the dock. `"horizontal"` (default) lays items out
48
+ * left-to-right and animates `width`; `"vertical"` lays items out
49
+ * top-to-bottom and animates `height`. This is the SINGLE layout axis — there
50
+ * is no `variant` second-way to express "vertical" (AZ.W-DOCK-TAXONOMY).
51
+ */
52
+ orientation?: "horizontal" | "vertical";
53
+ /**
54
+ * Density controls dock padding, gaps, layer height, and inherited
55
+ * dock control sizing. Root CSS variables can override each density.
56
+ */
57
+ density?: DockDensity;
58
+ /**
59
+ * Overflow strategy when the expanded content exceeds the dock's
60
+ * axis cap (`--dock-max-inline-size` horizontally,
61
+ * `--dock-max-block-size` vertically). The ONE knob governing every
62
+ * overflow behaviour (AT.W7-dock-a clean break — collapsed from the
63
+ * prior `wrap` boolean + `overflow` pair + `containerName` clip-lift,
64
+ * which all touched overflow divergently).
65
+ * `"grow"` — content grows to fit then overflows visibly past
66
+ * the cap (the default; nothing clips or scrolls).
67
+ * `"wrap"` — expanded content wraps to multiple rows via CONTENT-DRIVEN
68
+ * intrinsic flex-wrap (the `.dock-overflow-wrap` recipe). The
69
+ * dock shrink-wraps to content and caps that intrinsic width
70
+ * at `max-inline-size: var(--dock-max-inline-size)`, so the row
71
+ * reflows to N rows EXACTLY when its intrinsic width exceeds
72
+ * the cap — at ANY viewport width — and collapses to one row
73
+ * when it fits (no viewport breakpoint). The wrapped multi-row silhouette lifts
74
+ * onto the card/floating shadow tier as the dock expands.
75
+ * HORIZONTAL-ONLY: a vertical dock grows-to-fit + clamps via
76
+ * `--dock-max-block-size` (its own overflow story), so the
77
+ * `.dock-overflow-wrap` class is not emitted for a vertical
78
+ * orientation.
79
+ * `"scroll"` — the dock becomes the scroll port. Horizontal docks
80
+ * scroll the active layer on the inline axis
81
+ * (`.dock-scroll-x`); vertical docks scroll on the
82
+ * block axis (`.dock-scroll-y`), keeping the
83
+ * `max-block-size` cap. The rounded pill masks the
84
+ * scroll edge; the scrollbar is hidden. The axis is
85
+ * chosen automatically from `orientation`.
86
+ */
87
+ overflow?: "grow" | "wrap" | "scroll";
88
+ /**
89
+ * When set, the dock root establishes an inline-size container query
90
+ * subject (`container-type: inline-size; container-name: <value>`) so
91
+ * descendants can query the named container via `@container <value>
92
+ * (...)` rules. ORTHOGONAL to the `overflow` clip: opting into a
93
+ * container subject does NOT silently change the dock's clip shell
94
+ * (AT.W7-dock-a — the prior clip-lift was folded out; use
95
+ * `overflow="wrap"` to allow multi-line content).
96
+ *
97
+ * ALWAYS-EXPANDED-ONLY (AY.W-DOCK2 §F1): `container-type: inline-size`
98
+ * clamps the box to its contained intrinsic size, so on a COLLAPSIBLE
99
+ * dock the collapse↔expand FLIP measures collapsed→collapsed and the
100
+ * morph FREEZES. A collapsible dock that needs deterministic targeting
101
+ * uses a plain `data-testid` (no layout side-effect).
102
+ */
103
+ containerName?: string;
104
+ /**
105
+ * Idle-collapse delay in ms (default 2000). Inert on an always-expanded dock.
106
+ */
107
+ collapseDelay?: number;
108
+ /**
109
+ * Start in the collapsed state (default true). Applies on BOTH orientations
110
+ * (AZ.W-DOCK-TAXONOMY — a vertical dock starts collapsed and morphs its block
111
+ * axis open too). Inert on an always-expanded dock.
112
+ */
113
+ startCollapsed?: boolean;
114
+ /**
115
+ * In-cap arrangement. `"linear"` (default) lays the active layer out as a
116
+ * linear row/column. `"grid"` makes the active layer a self-wrapping tile
117
+ * grid (Launchpad/Stage-Manager track symmetry — `auto-fill` columns of
118
+ * `--dock-tile-min`). ORTHOGONAL to `overflow` (the OVER-cap strategy):
119
+ * `layout` is the IN-cap arrangement.
120
+ *
121
+ * Hard contract: a `layout="grid"` dock is `alwaysExpanded` (a 2D panel
122
+ * does not read as a collapsible pill, and no width morph means no
123
+ * per-frame grid reflow). The canonical pairing is
124
+ * `shape="card" layout="grid"` (the props stay independent — no
125
+ * auto-implication of `shape`).
126
+ */
127
+ layout?: "linear" | "grid";
128
+ /**
129
+ * AZ.W-ADAPTIVE-AUTO Arm 2 (H3 arm a) — the sampled-luminance observer that
130
+ * DYNAMICALLY refines the W55 declarative bright-bucket darken (the iOS-27
131
+ * "darken dynamically" register). Default `true` (default-ON for the dock — the
132
+ * surface most often over a live/bright backdrop). It REFINES the floor (the
133
+ * unconditional self-engage + the declarative bucket stay the guarantee); a
134
+ * dark-substrate consumer opts out with `:auto-luminance="false"` (or
135
+ * `--glass-tint-strength: 0%` on the dock). The observer is rAF-throttled ≤ 4 Hz,
136
+ * IntersectionObserver-gated, and parks under `prefers-reduced-motion: reduce`.
137
+ */
138
+ autoLuminance?: boolean;
139
+ /**
140
+ * The KNOWN background-layer canvas the dock floats over (an aurora/blob
141
+ * `<canvas>`) — an element, a getter, or a CSS selector. When present, the
142
+ * observer downsamples it under the dock's box each settle (the ANIMATED-backdrop
143
+ * case); absent, it stack-walks the painted page background (the static case).
144
+ */
145
+ backgroundCanvas?: HTMLCanvasElement | (() => HTMLCanvasElement | null) | string | null;
146
+ }
147
+ /** The resolved shell-prop computeds the GlassDock SFC binds. */
148
+ export interface DockShellProps {
149
+ containerStyle: ComputedRef<Record<string, string> | undefined>;
150
+ collapseDelay: ComputedRef<number>;
151
+ startCollapsed: ComputedRef<boolean>;
152
+ layoutValue: ComputedRef<"linear" | "grid">;
153
+ shape: ComputedRef<"pill" | "rounded" | "card">;
154
+ orientation: ComputedRef<"horizontal" | "vertical">;
155
+ density: ComputedRef<DockDensity>;
156
+ scrollClass: ComputedRef<string | null>;
157
+ alwaysExpanded: ComputedRef<boolean>;
158
+ fitContent: ComputedRef<boolean>;
159
+ }
160
+ /**
161
+ * Derive the dock's resolved shell props off the raw `props`. The defaults are
162
+ * applied at each read site via `?? default` (every shared default has exactly one
163
+ * resolution point — the one-path precept).
164
+ */
165
+ export declare function useDockShellProps(props: DockProps): DockShellProps;
@@ -1,4 +1,48 @@
1
1
  import type { Ref } from "vue";
2
+ /**
3
+ * AX.W01 — the dock single-scalar morph: ONE spring, ONE clock, the whole box.
4
+ *
5
+ * Re-derived from first principles (the e8380d7 single-clock high-water; the
6
+ * 479-line VT-fork accretion is gone). The collapse↔expand (and inner pane-swap)
7
+ * morph runs off ONE normalized analytic spring whose progress scalar (0→1) is
8
+ * written once per frame to `--dock-morph-t` on the `.glass-dock` root. EVERY
9
+ * animated axis — inline-size, padding, border-radius, scale, background / border
10
+ * color, AND the child stagger — is a pure `calc()` read off that one scalar in
11
+ * `dock.css`. NO CSS `transition` on the root morph props; NO View-Transitions
12
+ * fork: the live `SpringProgress` ODE is the single authority on every engine, so
13
+ * iOS interruptible-physics + velocity-continuity retarget are universal, not
14
+ * capability-gated.
15
+ *
16
+ * The morph is a FLIP — the from→to size is measured ONCE per swap (the allowed
17
+ * one-time measurement primitive, never a co-driver), written as `--dock-morph-from`
18
+ * / `--dock-morph-to` px vars on the morphing element, and the live scalar
19
+ * interpolates between them in CSS. Content lays out once at natural size;
20
+ * `overflow:clip` on the morph axis (dock.css, gated on `data-morphing`) makes the
21
+ * box the reveal aperture; the spring-keyed stagger fades the children in-step.
22
+ *
23
+ * Velocity-continuity (the ONE load-bearing iOS piece): a re-toggle mid-flight
24
+ * re-bases the live solver onto the new span from its current velocity (the
25
+ * analytic re-seat keyframes.js owns) — inertia carries, no snap-from-rest. The
26
+ * spring constant is the published `--spring-dock` (response 0.32, ζ 0.7, ~+4.6%
27
+ * overshoot), the SAME analytic ODE the build-time linear() token samples.
28
+ *
29
+ * LIGHT-surface only: `SpringProgress` owns its own rAF via `.play(onFrame)` and
30
+ * carries no static value.js edge. NEVER import `AnimationGroup` / the `./engine`
31
+ * boundary — that pulls value.js into the dock bundle.
32
+ *
33
+ * BOOKED: AY.W-GOD1 — the FLIP-engine FOLD. This standalone engine is a
34
+ * near-duplicate of the orchestrator's FLIP-pin-measure-arm dance
35
+ * (`dockMorphContext.ts:onSwap`), which is the SUPERSET (it carries sibling-rebase
36
+ * this copy lacks). W-DOCK2 found the duplication (H-dock §D3) and BOOKED the fold
37
+ * to W-GOD1 (the GlassDock.vue carve touches the same FLIP code, so the carve is
38
+ * cleaner over ONE engine; folding now would also break the `/dock` `useLayerTransition`
39
+ * public re-export an external consumer reads). Until W-GOD1 lands, `proof:dock-orchestrator-single`'s
40
+ * FLIP DRIFT-GUARD asserts this engine and the orchestrator stay byte-faithful on
41
+ * the load-bearing pin-measure-arm markers, so a divergence in the shared dance REDs.
42
+ * The CANONICAL `DOCK_SPRING` authority is `dock/constants.ts` (the colocation home
43
+ * BOTH this engine and the orchestrator import); `proof:spring-tokens-synced` reads
44
+ * it there, NOT a per-composable copy (W-COLOCATE — the dead-witness fix, continued).
45
+ */
2
46
  export interface UseLayerTransitionOptions {
3
47
  /** The container element that owns the stacked layer panes. */
4
48
  containerEl: Ref<HTMLElement | null>;
@@ -0,0 +1,83 @@
1
+ import type { Component } from "vue";
2
+ /**
3
+ * AZ.W-RAIL3 — one `<DockRail>` chip descriptor: the visible facet the floating
4
+ * carousel strip renders (id + label + glyph). A `<script setup>` SFC cannot
5
+ * re-export a named type through the `export { default }` barrel, so the chip
6
+ * descriptor lives here (the colocated types home) and the SFC imports it; the
7
+ * barrel re-exports it for consumers typing their `items` array.
8
+ */
9
+ export interface DockRailItem {
10
+ /** The context id this chip selects (written to `v-model:context`). */
11
+ id: string;
12
+ /** The chip label. */
13
+ label: string;
14
+ /** The chip glyph (a `@lucide/vue` icon or any component). */
15
+ icon?: Component;
16
+ }
17
+ /**
18
+ * BA.W-DOCK-SECTIONS — the three named zone kinds the declarative `<DockSection>`
19
+ * descriptor renders (the R8-9 "rail core + sections + nav" three-zone gestalt):
20
+ * - `"rail-core"` — the leading home/brand region (the ℱ wordmark / category trigger).
21
+ * - `"section"` — a named, divider-demarcated group of controls; a section
22
+ * carrying `layers` composes the existing `DockLayerGroup`/`DockLayer`
23
+ * registry (NOT a parallel layer machine).
24
+ * - `"nav"` — the trailing nav arrows / utility group.
25
+ */
26
+ export type DockSectionKind = "rail-core" | "section" | "nav";
27
+ /**
28
+ * BA.W-DOCK-SECTIONS — one declarative section descriptor. A consumer passes
29
+ * `sections: readonly DockSectionDescriptor[]` to `<DockSection>` and the dock body
30
+ * renders the tripartite silhouette (rail-core | divided named sections | nav)
31
+ * demarcated by `<DockSeparator>` — the IG-A3 / R8-9 "abstract this into a re-usable
32
+ * component for layering" library gap. A `<script setup>` SFC cannot re-export a named
33
+ * type through its default barrel, so the descriptor lives here (the colocated types
34
+ * home, beside `DockRailItem`) and `DockSection.vue` imports it; the barrel re-exports
35
+ * it for consumers typing their `sections` array.
36
+ */
37
+ export interface DockSectionDescriptor {
38
+ /** Which of the three zone kinds this descriptor renders. */
39
+ kind: DockSectionKind;
40
+ /** Stable identifier — the `v-for` key + the layer-context id for a `section`. */
41
+ id: string;
42
+ /** Optional accessible label for the grouped zone. */
43
+ label?: string;
44
+ /**
45
+ * For a `section` kind: the contextual facets this section carries. When present
46
+ * (length > 1) the section's facets are the rail's chips (the W-RAIL3 move OUT of
47
+ * the dock body — the facets ride the seam rail, never re-inflate the box). The
48
+ * descriptor names them; `<DockRail :items>` renders them.
49
+ */
50
+ layers?: readonly DockRailItem[];
51
+ }
52
+ /**
53
+ * The ONE dock-morph spring authority — the iOS-26 interruptible-physics tuning the
54
+ * dock's single `SpringProgress` orchestrator (`dockMorphContext.ts`) AND the
55
+ * `useLayerTransition` engine both read. Co-located here so the `response`/`damping`
56
+ * pair is defined ONCE rather than duplicated at the top of each composable (the two
57
+ * prior copies were a DRY hazard — a re-tune had to touch both).
58
+ */
59
+ export declare const DOCK_SPRING: {
60
+ readonly response: 0.32;
61
+ readonly dampingFraction: 0.7;
62
+ };
63
+ /**
64
+ * The CSS properties whose `transitionend` the dock-morph window watches to know a
65
+ * resize-morph has settled (`useDockMorphWindow.ts`). A `transitionend` on any other
66
+ * property is ignored.
67
+ */
68
+ export declare const RESIZE_MORPH_PROPS: Set<string>;
69
+ /** `Symbol()` label for the `DockContext` injection key (`dockContext.ts`). */
70
+ export declare const DOCK_CONTEXT_LABEL = "glass-ui:dock-context";
71
+ /** `Symbol()` label for the `DockLayerGroupContext` injection key (`dockLayerContext.ts`). */
72
+ export declare const DOCK_LAYER_GROUP_LABEL = "glass-ui:dock-layer-group";
73
+ /** `Symbol()` label for the `DockMorphContext` injection key (`dockMorphContext.ts`). */
74
+ export declare const DOCK_MORPH_LABEL = "glass-ui:dock-morph-context";
75
+ /** AZ.W-DOCK-FLICKER — the hover-hysteresis tuning pair (useDockState).
76
+ * HOVER_INTENT_MS: the intent-dwell before a collapsed→hover expand commits
77
+ * (a sweeping-edge enter is canceled by the chasing leave inside this window).
78
+ * EDGE_BAND_PX: the morphing-edge-sweep recheck band — a mid-morph leave with
79
+ * the pointer still inside (within this band of the moving edge) is the box
80
+ * edge sweeping past the cursor, not a real exit. */
81
+ export declare const HOVER_INTENT_MS = 60;
82
+ export declare const EDGE_BAND_PX = 24;
83
+ export declare const MORPH_SETTLE_MS = 320;
@@ -7,7 +7,12 @@ export { default as DockTabButton } from "./DockTabButton.vue";
7
7
  export { default as DockSelectTrigger } from "./DockSelectTrigger.vue";
8
8
  export { default as DockDropdownTrigger } from "./DockDropdownTrigger.vue";
9
9
  export { default as DockSeparator } from "./DockSeparator.vue";
10
+ export { default as DockRail } from "./DockRail.vue";
11
+ export type { DockRailItem } from "./constants";
12
+ export { default as DockSection } from "./DockSection.vue";
13
+ export type { DockSectionDescriptor, DockSectionKind } from "./constants";
10
14
  export type { UseDockStateOptions, UseDockStateReturn, DockState } from "./composables";
11
15
  export { useLayerTransition } from "./composables";
12
16
  export type { UseLayerTransitionOptions, UseLayerTransitionReturn, } from "./composables";
13
17
  export { DOCK_CONTEXT_KEY, useDockContext, useOptionalDockContext, provideDockContext, type DockContext, type DockOrientation, type DockLayout, } from "./composables/dockContext";
18
+ export { useDockOrientationMorph, type DockMorphOrientation, type UseDockOrientationMorphOptions, type UseDockOrientationMorphReturn, } from "./composables/useDockOrientationMorph";