@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,88 @@
1
+ import { type Component } from "vue";
2
+ import type { DockRailItem } from "./constants";
3
+ /**
4
+ * <DockRail> — AZ.W-RAIL-EXTEND → AZ.W-RAIL3. The hairline-borne, floating
5
+ * CAROUSEL-LIKE chip STRIP: a row/column of detached glass chips that ride a
6
+ * VISIBLE hairline running BEYOND the dock edge, OUTSIDE the dock box. Each chip
7
+ * is one context/facet; clicking it switches the dock's layer context. The strip
8
+ * is rendered in `GlassDock`'s `#rail` slot OUTSIDE the clipped morph aperture (the
9
+ * `.glass-dock-frame` escape), so it NEVER changes the dock's width/height — the
10
+ * dock box is INVIOLATE (R6 §"design REDIRECT" item 1) — and it PERSISTS when the
11
+ * dock collapses (the in-pane switcher rail vanishes on collapse; this one does not).
12
+ *
13
+ * W-RAIL3 EVOLUTION (the third-rail redirect). The prior facility was a single
14
+ * end-icon (one `DockIconButton` cycling `entries` through an invisible list behind
15
+ * a chevron). The contextual facets used to mount as an in-dock `<DockLayerGroup>`,
16
+ * which stretched the dock box ~2× (the R6-1/R6-2 inflation). This wave MOVES the
17
+ * facets OUT of the dock onto THIS rail as the visible chips — "a floating carousel
18
+ * almost" (the user's words). The chips ARE the facets (id + label + icon); the
19
+ * active one is highlighted; when a context carries more chips than fit inline the
20
+ * strip scrolls/cycles (CSS `overflow` + `scroll-snap`).
21
+ *
22
+ * Axis-aware (the `<DockSeparator>` idiom, read via `useOptionalDockContext()`):
23
+ * - column dock (vertical) → the strip hangs BELOW the dock as a horizontal row
24
+ * of chips on a horizontal hairline (the dock is a narrow column; a horizontal
25
+ * chip row reads as the carousel below it).
26
+ * - row dock (horizontal) → the strip runs BELOW the dock's bottom edge as a
27
+ * horizontal row of chips on the connective hairline.
28
+ * The hairline is composed from the `--border-hairline` token pair (the 0.5px
29
+ * catch-light + under-shadow the dock + instrument-chassis already speak) — a
30
+ * whisper, NEVER a hard `1px solid` rule (R3). The beyond-edge overrun is
31
+ * `--dock-rail-extend-length` (a dock-scoped geometry knob, consumer-overridable).
32
+ *
33
+ * The layer-context binding (R2 — one registry, NOT a parallel state path):
34
+ * The chips write the consumer-owned `v-model:context` — the SAME ref the consumer
35
+ * binds to its navigation state (or `<DockLayerGroup v-model:active>`). There is no
36
+ * internal `ref()`/`reactive()` shadow of the active state inside this facility; the
37
+ * context ref lives in the consumer, and `<DockRail>` only writes it. Pass `items`
38
+ * (the facet descriptors → the visible chips); a chip click writes its id AND emits
39
+ * `@advance` with it so a consumer can wire its own selection logic. (The prior
40
+ * single-end-icon `entries?: string[]` prop died with the evolution — a clean
41
+ * break, no alias; every consumer passes `items`.)
42
+ */
43
+ type __VLS_Props = {
44
+ /**
45
+ * `"beyond"` (default) overruns the hairline past the dock content box by
46
+ * `--dock-rail-extend-length`; `"inset"` keeps it flush at the edge (the
47
+ * separator-like length).
48
+ */
49
+ extent?: "beyond" | "inset";
50
+ /** Which dock edge the rail anchors to (the leading/trailing end). */
51
+ position?: "start" | "end";
52
+ /**
53
+ * The chip descriptors — the visible facets the strip renders. When present,
54
+ * the strip is a CAROUSEL of these chips (the W-RAIL3 evolution). The active
55
+ * chip (matching `v-model:context`) is highlighted; a click writes its id.
56
+ */
57
+ items?: readonly DockRailItem[];
58
+ /**
59
+ * The fallback chevron glyph (the cycle end-cap shown when no `items`
60
+ * entry carries an icon). Default: a chevron.
61
+ */
62
+ icon?: Component;
63
+ /** Accessible label for the strip group. */
64
+ iconLabel?: string;
65
+ };
66
+ type __VLS_ModelProps = {
67
+ /**
68
+ * The dock's active layer context — a CONSUMER-OWNED model (the R2 sanctioned seam).
69
+ * The consumer binds the SAME ref here and to its navigation state; this facility
70
+ * owns NO shadow store of the active state. `defineModel` is the consumer's ref
71
+ * reached through the v-model contract, not an internal `ref()`.
72
+ */
73
+ "context"?: string;
74
+ };
75
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
76
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
77
+ advance: (next: string | undefined) => any;
78
+ "update:context": (value: string | undefined) => any;
79
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
80
+ onAdvance?: ((next: string | undefined) => any) | undefined;
81
+ "onUpdate:context"?: ((value: string | undefined) => any) | undefined;
82
+ }>, {
83
+ position: "start" | "end";
84
+ extent: "beyond" | "inset";
85
+ iconLabel: string;
86
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
87
+ declare const _default: typeof __VLS_export;
88
+ export default _default;
@@ -12,10 +12,9 @@ import { type HTMLAttributes } from "vue";
12
12
  *
13
13
  * K.W6 Lane B — when the consumer attaches `data-tier="primary"`, the
14
14
  * button composes the canonical `btn-audacious` utility (the lifted
15
- * disco-grain + specular-highlight recipe at `utilities.css`; the
16
- * sparkle-sweep star was excised at D6 — the gold identity now rides the
17
- * `--gold-rim` gilt edge). `dock.css` retains the dock-local
18
- * phase-tinting + structural shell on top of the canonical recipe.
15
+ * disco-grain + sparkle-sweep + specular-highlight recipe at
16
+ * `utilities.css`). `dock.css` retains the dock-local phase-tinting +
17
+ * structural shell on top of the canonical recipe.
19
18
  */
20
19
  type __VLS_Props = {
21
20
  as?: string;
@@ -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,48 @@
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
+ * The ONE dock-morph spring authority — the iOS-26 interruptible-physics tuning the
19
+ * dock's single `SpringProgress` orchestrator (`dockMorphContext.ts`) AND the
20
+ * `useLayerTransition` engine both read. Co-located here so the `response`/`damping`
21
+ * pair is defined ONCE rather than duplicated at the top of each composable (the two
22
+ * prior copies were a DRY hazard — a re-tune had to touch both).
23
+ */
24
+ export declare const DOCK_SPRING: {
25
+ readonly response: 0.32;
26
+ readonly dampingFraction: 0.7;
27
+ };
28
+ /**
29
+ * The CSS properties whose `transitionend` the dock-morph window watches to know a
30
+ * resize-morph has settled (`useDockMorphWindow.ts`). A `transitionend` on any other
31
+ * property is ignored.
32
+ */
33
+ export declare const RESIZE_MORPH_PROPS: Set<string>;
34
+ /** `Symbol()` label for the `DockContext` injection key (`dockContext.ts`). */
35
+ export declare const DOCK_CONTEXT_LABEL = "glass-ui:dock-context";
36
+ /** `Symbol()` label for the `DockLayerGroupContext` injection key (`dockLayerContext.ts`). */
37
+ export declare const DOCK_LAYER_GROUP_LABEL = "glass-ui:dock-layer-group";
38
+ /** `Symbol()` label for the `DockMorphContext` injection key (`dockMorphContext.ts`). */
39
+ export declare const DOCK_MORPH_LABEL = "glass-ui:dock-morph-context";
40
+ /** AZ.W-DOCK-FLICKER — the hover-hysteresis tuning pair (useDockState).
41
+ * HOVER_INTENT_MS: the intent-dwell before a collapsed→hover expand commits
42
+ * (a sweeping-edge enter is canceled by the chasing leave inside this window).
43
+ * EDGE_BAND_PX: the morphing-edge-sweep recheck band — a mid-morph leave with
44
+ * the pointer still inside (within this band of the moving edge) is the box
45
+ * edge sweeping past the cursor, not a real exit. */
46
+ export declare const HOVER_INTENT_MS = 60;
47
+ export declare const EDGE_BAND_PX = 24;
48
+ export declare const MORPH_SETTLE_MS = 320;