@mkbabb/glass-ui 4.0.1 → 4.2.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 (606) hide show
  1. package/dist/{CardAction-CW7a0m8M.js → CardAction-DlVP2evz.js} +72 -53
  2. package/dist/{CommandShortcut-DvZNQ_HF.js → CommandShortcut-By-VQcLO.js} +25 -14
  3. package/dist/{ConfiguratorRow-BR4l-ixA.js → ConfiguratorRow-YMXdINHx.js} +14 -14
  4. package/dist/ContextMenuContent-CMWn6huB.js +90 -0
  5. package/dist/{ContextMenuSubContent-xol4sD2q.js → ContextMenuSubContent-DvwWCUc0.js} +16 -16
  6. package/dist/{DataTable-CuKwF7wr.js → DataTable-C4tG3eIJ.js} +4 -4
  7. package/dist/DialogContent-D8U9ZfWS.js +121 -0
  8. package/dist/DialogFooter-DoLy0ewI.js +80 -0
  9. package/dist/DialogScrollContent-BMekN7gq.js +93 -0
  10. package/dist/{FadingScroll-DI6hQhT9.js → FadingScroll-P8B30rAD.js} +1 -1
  11. package/dist/HoverCardContent-DAmGYglo.js +88 -0
  12. package/dist/{HoverPopover-CbqbNwgU.js → HoverPopover-DYpBOzzF.js} +1 -1
  13. package/dist/{IconChip-BTD-nay5.js → IconChip-CQa7XZYc.js} +7 -5
  14. package/dist/{IconTooltip-Bl8gFZ8d.js → IconTooltip-_df8M3xm.js} +1 -1
  15. package/dist/Input-CyU4_hIC.js +57 -0
  16. package/dist/{MetricBadge-RHdBP72w.js → MetricBadge-DQt_dGah.js} +1 -1
  17. package/dist/{Notification-VUwexFUf.js → Notification-BlSPJhtZ.js} +4 -4
  18. package/dist/NumberFieldContent-Z3VxGu_6.js +140 -0
  19. package/dist/PagerDots-CYlqVFd4.js +196 -0
  20. package/dist/PaperBackdrop-DYWgrnh8.js +42 -0
  21. package/dist/{PopoverContent-DL7E6vJP.js → PopoverContent-BuKyHZSz.js} +2 -2
  22. package/dist/{Progress-DctG61iZ.js → Progress-C9SsdwIZ.js} +1 -1
  23. package/dist/{ScrollingText-yOpBzFYq.js → ScrollingText-DY3W1Jfh.js} +2 -2
  24. package/dist/SelectScrollDownButton-3mFHX_R-.js +260 -0
  25. package/dist/{SelectSeparator-DXswVdRz.js → SelectSeparator-CNRGG7Ew.js} +1 -1
  26. package/dist/Separator-Cf9-JFgi.js +44 -0
  27. package/dist/Switch-uf-UKPA2.js +49 -0
  28. package/dist/{Toaster-Bw4xR8xV.js → Toaster-ozrsR4mP.js} +2 -2
  29. package/dist/{ToggleGroupItem-pEM9vIhs.js → ToggleGroupItem-BpzaVzNm.js} +6 -6
  30. package/dist/TooltipProvider-QQVM_80r.js +109 -0
  31. package/dist/animated-digit.js +2 -2
  32. package/dist/api/index.d.ts +16 -32
  33. package/dist/api/types-extra.d.ts +33 -0
  34. package/dist/api.js +2 -2
  35. package/dist/aurora.js +629 -269
  36. package/dist/badge-Bt14yURi.js +72 -0
  37. package/dist/badge.js +1 -1
  38. package/dist/border-progress.js +49 -57
  39. package/dist/button-D1W9PrzI.js +130 -0
  40. package/dist/button.js +1 -1
  41. package/dist/canvas.js +2 -3
  42. package/dist/card.js +1 -1
  43. package/dist/carousel.js +235 -106
  44. package/dist/chipVariants-BJQ0I2kB.js +18 -0
  45. package/dist/collapsible.js +1 -1
  46. package/dist/color-B9jZdhJX.js +116 -0
  47. package/dist/color.js +2 -2
  48. package/dist/command.js +1 -1
  49. package/dist/completion-seal.d.ts +1 -0
  50. package/dist/completion-seal.js +89 -0
  51. package/dist/components/custom/aurora/Aurora.vue.d.ts +10 -5
  52. package/dist/components/custom/aurora/composables/color.d.ts +13 -0
  53. package/dist/components/custom/aurora/composables/frameLoop.d.ts +9 -0
  54. package/dist/components/custom/aurora/composables/glSetup.d.ts +1 -1
  55. package/dist/components/custom/aurora/composables/runtime.d.ts +12 -0
  56. package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +12 -3
  57. package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +8 -0
  58. package/dist/components/custom/aurora/constants/presets.d.ts +47 -0
  59. package/dist/components/custom/aurora/constants/renderMode.d.ts +16 -8
  60. package/dist/components/custom/aurora/constants/shaders/aurora-mediums.wgsl.d.ts +1 -0
  61. package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -1
  62. package/dist/components/custom/aurora/index.d.ts +1 -1
  63. package/dist/components/custom/border-progress/composables/spectrum-walk.d.ts +25 -0
  64. package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +14 -18
  65. package/dist/components/custom/border-progress/index.d.ts +1 -1
  66. package/dist/components/custom/completion-seal/CompletionSeal.vue.d.ts +21 -0
  67. package/dist/components/custom/completion-seal/composables/useCompletionSeal.d.ts +37 -0
  68. package/dist/components/custom/completion-seal/constants.d.ts +46 -0
  69. package/dist/components/custom/completion-seal/index.d.ts +4 -0
  70. package/dist/components/custom/concentric/Concentric.vue.d.ts +15 -12
  71. package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +12 -0
  72. package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +13 -0
  73. package/dist/components/custom/concentric/composables/levelField.d.ts +50 -0
  74. package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +7 -3
  75. package/dist/components/custom/concentric/composables/useConcentric.d.ts +3 -3
  76. package/dist/components/custom/concentric/constants.d.ts +69 -24
  77. package/dist/components/custom/concentric/index.d.ts +2 -2
  78. package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +2 -2
  79. package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -1
  80. package/dist/components/custom/configurator/Configurator.vue.d.ts +23 -2
  81. package/dist/components/custom/configurator/index.d.ts +1 -1
  82. package/dist/components/custom/confirm-dialog/ConfirmDialog.vue.d.ts +3 -3
  83. package/dist/components/custom/constellation/Constellation.vue.d.ts +5 -4
  84. package/dist/components/custom/constellation/composables/constellationGLSetup.d.ts +10 -0
  85. package/dist/components/custom/constellation/composables/constellationWGPUSetup.d.ts +19 -0
  86. package/dist/components/custom/constellation/composables/uniformBridgeWGPU.d.ts +66 -0
  87. package/dist/components/custom/constellation/composables/useConstellation.d.ts +3 -10
  88. package/dist/components/custom/constellation/constants.d.ts +33 -0
  89. package/dist/components/custom/constellation/constellationField.d.ts +31 -1
  90. package/dist/components/custom/constellation/constellationInteraction.d.ts +23 -14
  91. package/dist/components/custom/constellation/constellationRender.d.ts +25 -0
  92. package/dist/components/custom/constellation/constellationTypes.d.ts +38 -0
  93. package/dist/components/custom/constellation/constellationWell.d.ts +15 -0
  94. package/dist/components/custom/constellation/index.d.ts +5 -5
  95. package/dist/components/custom/constellation/shaders/constellation-lines.glsl.d.ts +2 -0
  96. package/dist/components/custom/constellation/shaders/constellation-lines.wgsl.d.ts +1 -0
  97. package/dist/components/custom/constellation/shaders/constellation-points.glsl.d.ts +2 -0
  98. package/dist/components/custom/constellation/shaders/constellation-points.wgsl.d.ts +1 -0
  99. package/dist/components/custom/deck/DeckPager.vue.d.ts +29 -0
  100. package/dist/components/custom/deck/composables/useDeck.d.ts +27 -0
  101. package/dist/components/custom/deck/composables/useDeckKeyboard.d.ts +25 -0
  102. package/dist/components/custom/deck/composables/useDeckSpring.d.ts +22 -0
  103. package/dist/components/custom/deck/constants.d.ts +14 -0
  104. package/dist/components/custom/deck/index.d.ts +8 -0
  105. package/dist/components/custom/dock/DockDropdownTrigger.vue.d.ts +4 -3
  106. package/dist/components/custom/dock/DockIconButton.vue.d.ts +22 -0
  107. package/dist/components/custom/dock/DockPopoverTrigger.vue.d.ts +19 -0
  108. package/dist/components/custom/dock/DockStack.vue.d.ts +78 -0
  109. package/dist/components/custom/dock/GlassDock.vue.d.ts +21 -3
  110. package/dist/components/custom/dock/composables/dockMorphContext.d.ts +18 -32
  111. package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +78 -67
  112. package/dist/components/custom/dock/composables/index.d.ts +3 -0
  113. package/dist/components/custom/dock/composables/railProjection.d.ts +45 -0
  114. package/dist/components/custom/dock/composables/useDockContextSilhouette.d.ts +192 -0
  115. package/dist/components/custom/dock/composables/useDockFission.d.ts +158 -0
  116. package/dist/components/custom/dock/composables/useDockItemDrag.d.ts +18 -0
  117. package/dist/components/custom/dock/composables/useDockSearch.d.ts +85 -0
  118. package/dist/components/custom/dock/composables/useDockShellProps.d.ts +49 -0
  119. package/dist/components/custom/dock/constants.d.ts +32 -17
  120. package/dist/components/custom/dock/index.d.ts +8 -2
  121. package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +15 -11
  122. package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +69 -6
  123. package/dist/components/custom/dot-flow-field/composables/flowGLProgram.d.ts +8 -0
  124. package/dist/components/custom/dot-flow-field/composables/flowSetupGL.d.ts +9 -0
  125. package/dist/components/custom/dot-flow-field/composables/flowSetupGLFlow.d.ts +12 -0
  126. package/dist/components/custom/dot-flow-field/composables/flowSetupWGPU.d.ts +7 -0
  127. package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +50 -9
  128. package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +6 -5
  129. package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +23 -9
  130. package/dist/components/custom/dot-flow-field/constants.d.ts +92 -20
  131. package/dist/components/custom/dot-flow-field/index.d.ts +2 -2
  132. package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -1
  133. package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +31 -18
  134. package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +2 -1
  135. package/dist/components/custom/dot-matrix/DotMatrix.vue.d.ts +43 -0
  136. package/dist/components/custom/dot-matrix/composables/dotMatrixField.d.ts +89 -0
  137. package/dist/components/custom/dot-matrix/composables/uniformBridgeWGPU.d.ts +61 -0
  138. package/dist/components/custom/dot-matrix/composables/useDotMatrix.d.ts +34 -0
  139. package/dist/components/custom/dot-matrix/composables/useDotSphere.d.ts +34 -0
  140. package/dist/components/custom/dot-matrix/constants.d.ts +72 -0
  141. package/dist/components/custom/dot-matrix/index.d.ts +5 -0
  142. package/dist/components/custom/dot-matrix/shaders/dot-matrix.glsl.d.ts +4 -0
  143. package/dist/components/custom/dot-matrix/shaders/dot-matrix.wgsl.d.ts +1 -0
  144. package/dist/components/custom/easing/EasingPicker.vue.d.ts +2 -2
  145. package/dist/components/custom/easing/composables/useEasingPicker.d.ts +5 -0
  146. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +11 -0
  147. package/dist/components/custom/fourier-field/FourierField.vue.d.ts +44 -47
  148. package/dist/components/custom/fourier-field/composables/fourierFieldGLSetup.d.ts +24 -0
  149. package/dist/components/custom/fourier-field/composables/fourierFieldWGPUSetup.d.ts +31 -0
  150. package/dist/components/custom/fourier-field/composables/uniformBridgeWGPU.d.ts +56 -0
  151. package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +61 -37
  152. package/dist/components/custom/fourier-field/constants.d.ts +114 -4
  153. package/dist/components/custom/fourier-field/index.d.ts +23 -18
  154. package/dist/components/custom/fourier-field/shaders/fourier-field.compute.wgsl.d.ts +1 -0
  155. package/dist/components/custom/fourier-field/shaders/fourier-field.glsl.d.ts +4 -0
  156. package/dist/components/custom/fourier-field/shaders/fourier-field.render.wgsl.d.ts +1 -0
  157. package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +9 -1
  158. package/dist/components/custom/goo-blob/composables/easing.d.ts +1 -0
  159. package/dist/components/custom/goo-blob/composables/useBlobSatellites.d.ts +1 -0
  160. package/dist/components/custom/goo-blob/constants.d.ts +26 -1
  161. package/dist/components/custom/goo-blob/index.d.ts +1 -1
  162. package/dist/components/custom/goo-blob/shaders/metaball-noise.wgsl.d.ts +1 -0
  163. package/dist/components/custom/goo-blob/shaders/metaball-palette.wgsl.d.ts +1 -0
  164. package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -1
  165. package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -1
  166. package/dist/components/custom/goo-blob/types.d.ts +86 -1
  167. package/dist/components/custom/goo-dot-matrix/GooDotMatrix.vue.d.ts +49 -0
  168. package/dist/components/custom/goo-dot-matrix/composables/gooDotLattice.d.ts +24 -0
  169. package/dist/components/custom/goo-dot-matrix/composables/gooDotSetup.d.ts +79 -0
  170. package/dist/components/custom/goo-dot-matrix/composables/uniformBridgeWGPU.d.ts +45 -0
  171. package/dist/components/custom/goo-dot-matrix/composables/useGooDotMatrix.d.ts +31 -0
  172. package/dist/components/custom/goo-dot-matrix/constants.d.ts +115 -0
  173. package/dist/components/custom/goo-dot-matrix/index.d.ts +5 -0
  174. package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.frag.d.ts +13 -0
  175. package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.wgsl.d.ts +4 -0
  176. package/dist/components/custom/goo-filter/GooFilter.vue.d.ts +22 -0
  177. package/dist/components/custom/goo-filter/index.d.ts +1 -0
  178. package/dist/components/custom/handmark/brush.d.ts +17 -17
  179. package/dist/components/custom/handmark/constants.d.ts +28 -8
  180. package/dist/components/custom/handmark/geometry.d.ts +34 -1
  181. package/dist/components/custom/handmark/index.d.ts +1 -1
  182. package/dist/components/custom/icon-chip/types.d.ts +10 -0
  183. package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +21 -2
  184. package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +15 -0
  185. package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +9 -0
  186. package/dist/components/custom/pager-dots/index.d.ts +2 -0
  187. package/dist/components/custom/pager-dots/pagerWindow.d.ts +9 -0
  188. package/dist/components/custom/paper-backdrop/PaperBackdrop.vue.d.ts +18 -0
  189. package/dist/components/custom/paper-grid/PaperGrid.vue.d.ts +42 -0
  190. package/dist/components/custom/paper-grid/composables/paperGrid.d.ts +105 -0
  191. package/dist/components/custom/paper-grid/composables/paperGridGLSetup.d.ts +18 -0
  192. package/dist/components/custom/paper-grid/composables/paperGridWGPUSetup.d.ts +21 -0
  193. package/dist/components/custom/paper-grid/composables/uniformBridgeWGPU.d.ts +16 -0
  194. package/dist/components/custom/paper-grid/composables/usePaperGrid.d.ts +31 -0
  195. package/dist/components/custom/paper-grid/constants.d.ts +95 -0
  196. package/dist/components/custom/paper-grid/index.d.ts +5 -0
  197. package/dist/components/custom/paper-grid/shaders/paper-grid.glsl.d.ts +4 -0
  198. package/dist/components/custom/paper-grid/shaders/paper-grid.wgsl.d.ts +1 -0
  199. package/dist/components/custom/search/FuzzySearch.vue.d.ts +8 -2
  200. package/dist/components/custom/search/SearchBar.vue.d.ts +8 -0
  201. package/dist/components/custom/search/index.d.ts +2 -0
  202. package/dist/components/custom/search/searchVariants.d.ts +19 -0
  203. package/dist/components/custom/selectable-chip/SelectableChip.vue.d.ts +50 -0
  204. package/dist/components/custom/selectable-chip/chipVariants.d.ts +39 -0
  205. package/dist/components/custom/selectable-chip/index.d.ts +2 -0
  206. package/dist/components/custom/selectable-chip/selectableChipVariants.d.ts +15 -0
  207. package/dist/components/custom/split-chars/SplitChars.vue.d.ts +39 -0
  208. package/dist/components/custom/split-chars/index.d.ts +1 -0
  209. package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +8 -6
  210. package/dist/components/custom/tabs/constants.d.ts +28 -2
  211. package/dist/components/custom/timeline/ScrubberTimeline.vue.d.ts +16 -0
  212. package/dist/components/custom/timeline/geometry.d.ts +0 -8
  213. package/dist/components/custom/toggle-chip/index.d.ts +15 -4
  214. package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +32 -17
  215. package/dist/components/custom/watercolor-dot/useWatercolorBlob.d.ts +10 -5
  216. package/dist/components/ui/_shared/index.d.ts +2 -0
  217. package/dist/components/ui/_shared/useControlSize.d.ts +46 -0
  218. package/dist/components/ui/_shared/useSurfaceAxis.d.ts +17 -3
  219. package/dist/components/ui/badge/Badge.vue.d.ts +14 -0
  220. package/dist/components/ui/badge/index.d.ts +1 -0
  221. package/dist/components/ui/button/Button.vue.d.ts +1 -0
  222. package/dist/components/ui/button/index.d.ts +1 -1
  223. package/dist/components/ui/card/Card.vue.d.ts +46 -1
  224. package/dist/components/ui/card/ScrollCard.vue.d.ts +1 -1
  225. package/dist/components/ui/card/index.d.ts +1 -1
  226. package/dist/components/ui/carousel/CarouselContent.vue.d.ts +2 -4
  227. package/dist/components/ui/carousel/CarouselNext.vue.d.ts +1 -1
  228. package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +1 -1
  229. package/dist/components/ui/command/CommandDialog.vue.d.ts +9 -3
  230. package/dist/components/ui/command/CommandList.vue.d.ts +3 -0
  231. package/dist/components/ui/context-menu/ContextMenuContent.vue.d.ts +5 -1
  232. package/dist/components/ui/dialog/DialogContent.vue.d.ts +9 -0
  233. package/dist/components/ui/drawer/Drawer.vue.d.ts +33 -14
  234. package/dist/components/ui/drawer/constants.d.ts +8 -6
  235. package/dist/components/ui/drawer/index.d.ts +12 -2
  236. package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +4 -0
  237. package/dist/components/ui/hover-card/HoverCardContent.vue.d.ts +3 -0
  238. package/dist/components/ui/input/Input.vue.d.ts +3 -0
  239. package/dist/components/ui/number-field/NumberFieldInput.vue.d.ts +6 -1
  240. package/dist/components/ui/select/SelectContent.vue.d.ts +12 -0
  241. package/dist/components/ui/slider/Slider.vue.d.ts +9 -0
  242. package/dist/components/ui/switch/Switch.vue.d.ts +2 -0
  243. package/dist/components/ui/textarea/Textarea.vue.d.ts +3 -0
  244. package/dist/components/ui/tooltip/TooltipContent.vue.d.ts +3 -0
  245. package/dist/composables/color/index.d.ts +2 -0
  246. package/dist/composables/color/useAccentTone.d.ts +34 -0
  247. package/dist/composables/dom/index.d.ts +1 -0
  248. package/dist/composables/dom/useDragVelocity.d.ts +46 -0
  249. package/dist/composables/glass/useVizChoreography.d.ts +123 -0
  250. package/dist/composables/glass/wave/index.d.ts +4 -0
  251. package/dist/composables/glass/wave/waveField.d.ts +115 -0
  252. package/dist/composables/glass/wave/waveField.glsl.d.ts +1 -0
  253. package/dist/composables/glass/wave/waveField.wgsl.d.ts +1 -0
  254. package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +105 -2
  255. package/dist/composables/glass/webgl/shaders/flow.wgsl.d.ts +1 -0
  256. package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +40 -2
  257. package/dist/composables/glass/webgpu/index.d.ts +2 -1
  258. package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +65 -7
  259. package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +50 -2
  260. package/dist/composables/glass/webgpu/webgpuDevice.d.ts +42 -0
  261. package/dist/composables/motion/core/index.d.ts +7 -0
  262. package/dist/composables/motion/core/useHaptic.d.ts +48 -0
  263. package/dist/composables/motion/core/writeVelocityWeight.d.ts +31 -0
  264. package/dist/composables/motion/index.d.ts +2 -0
  265. package/dist/composables/motion/scrollReader.d.ts +25 -0
  266. package/dist/composables/motion/springPresets.d.ts +19 -1
  267. package/dist/composables/motion/suite.d.ts +2 -2
  268. package/dist/composables/motion/useBloomUp.d.ts +97 -0
  269. package/dist/composables/motion/useCelebrationBurst.d.ts +50 -0
  270. package/dist/composables/motion/useCharStagger.d.ts +44 -0
  271. package/dist/composables/motion/useDockCtaReceive.d.ts +29 -22
  272. package/dist/composables/motion/useGooMorph.d.ts +72 -0
  273. package/dist/composables/motion/useLiquidFlex.d.ts +18 -0
  274. package/dist/composables/motion/useLiquidMorph.d.ts +108 -0
  275. package/dist/composables/motion/useLiquidPress.d.ts +12 -0
  276. package/dist/composables/motion/useLiquidReveal.d.ts +7 -4
  277. package/dist/composables/motion/useMorphField.d.ts +157 -0
  278. package/dist/composables/motion/useScrollChrome.d.ts +58 -0
  279. package/dist/composables/motion/useScrollPin.d.ts +49 -0
  280. package/dist/composables/motion/useScrollScene.d.ts +67 -0
  281. package/dist/composables/motion/useScrollTrigger.d.ts +67 -0
  282. package/dist/composables/motion/useSpringPress.d.ts +5 -5
  283. package/dist/composables/motion/useStaggerReveal.d.ts +24 -0
  284. package/dist/composables/sidebar/index.d.ts +4 -1
  285. package/dist/composables/sidebar/types.d.ts +68 -3
  286. package/dist/composables/sidebar/useClickDelegate.d.ts +4 -0
  287. package/dist/composables/sidebar/useLazyLoader.d.ts +5 -0
  288. package/dist/composables/sidebar/useScrollTo.d.ts +5 -0
  289. package/dist/composables/virtual/index.d.ts +4 -0
  290. package/dist/composables/virtual/useVirtualSectionWindow.d.ts +72 -0
  291. package/dist/composables/virtual/useWindowedStore.d.ts +43 -0
  292. package/dist/composables/virtual/virtualSectionLayout.d.ts +103 -0
  293. package/dist/concentric.js +552 -309
  294. package/dist/configurator.js +2 -2
  295. package/dist/confirm-dialog.js +62 -47
  296. package/dist/constellation.js +635 -235
  297. package/dist/context-menu.js +2 -2
  298. package/dist/controls.js +2 -2
  299. package/dist/createCanvasLifecycle-CuCrGRfq.js +173 -0
  300. package/dist/dark.js +1 -1
  301. package/dist/data-table.js +1 -1
  302. package/dist/deck.d.ts +1 -0
  303. package/dist/deck.js +105 -0
  304. package/dist/dialog.js +4 -3
  305. package/dist/dock.js +1320 -631
  306. package/dist/dockContext-gFVS2gMg.js +18 -0
  307. package/dist/dom.js +7 -6
  308. package/dist/dot-flow-field.js +1268 -387
  309. package/dist/dot-matrix.d.ts +1 -0
  310. package/dist/dot-matrix.js +774 -0
  311. package/dist/dotMatrixField-CRO0ZFk4.js +48 -0
  312. package/dist/drawer.js +106 -96
  313. package/dist/{dropdown-menu-CofSZuk8.js → dropdown-menu-CCfcCQ68.js} +83 -79
  314. package/dist/dropdown-menu.js +1 -1
  315. package/dist/easing.js +188 -176
  316. package/dist/expandable-container.js +43 -21
  317. package/dist/fading-scroll.js +1 -1
  318. package/dist/flow.glsl-DqEGRpl4.js +4 -0
  319. package/dist/forms.js +64 -62
  320. package/dist/fourier-field.js +1069 -178
  321. package/dist/fourier-math.js +1 -1
  322. package/dist/glass-panel.js +2 -2
  323. package/dist/glass-ui.css +1 -1
  324. package/dist/glass-ui.js +164 -119
  325. package/dist/goo-blob.js +175 -1230
  326. package/dist/goo-dot-matrix.d.ts +1 -0
  327. package/dist/goo-dot-matrix.js +811 -0
  328. package/dist/handmark.js +137 -94
  329. package/dist/header-ribbon.js +1 -1
  330. package/dist/hover-card.js +1 -1
  331. package/dist/hover-popover.js +1 -1
  332. package/dist/icon-chip.js +1 -1
  333. package/dist/icon-tooltip.js +1 -1
  334. package/dist/index.d.ts +5 -0
  335. package/dist/instrument-chassis.js +1 -1
  336. package/dist/keyboard.js +1 -1
  337. package/dist/label.js +1 -1
  338. package/dist/labeled-field.js +70 -60
  339. package/dist/metric-badge.js +1 -1
  340. package/dist/metric-cell.js +1 -1
  341. package/dist/metric-stack.js +12 -3
  342. package/dist/motion-core.js +59 -34
  343. package/dist/motion-curves.js +30 -14
  344. package/dist/motion.js +231 -96
  345. package/dist/notification.js +1 -1
  346. package/dist/number-field.js +1 -1
  347. package/dist/pager-dots.js +2 -91
  348. package/dist/paper-backdrop.js +1 -1
  349. package/dist/paper-grid.d.ts +1 -0
  350. package/dist/paper-grid.js +761 -0
  351. package/dist/paperGrid-CXCSMbZ1.js +191 -0
  352. package/dist/popover.js +1 -1
  353. package/dist/{presets-BW2b-fr1.js → presets-QvYgnFIZ.js} +14 -13
  354. package/dist/{procedural-color.glsl-CIFsJhwI.js → procedural-color.wgsl-C1Y5PkM6.js} +2 -2
  355. package/dist/progress.js +1 -1
  356. package/dist/pulse.js +2 -2
  357. package/dist/reactive.js +2 -2
  358. package/dist/{useCanvas2D-B8w_E3Rr.js → resolveCanvasColor-DsSJk06I.js} +16 -6
  359. package/dist/scrollReader-rc3Ns_NM.js +42 -0
  360. package/dist/scrolling-text.js +1 -1
  361. package/dist/search.js +162 -306
  362. package/dist/select.js +3 -3
  363. package/dist/selectable-chip.d.ts +1 -0
  364. package/dist/selectable-chip.js +48 -0
  365. package/dist/separator.js +1 -1
  366. package/dist/{sheet-tZMg0E0w.js → sheet-DUCIoOe0.js} +4 -4
  367. package/dist/sheet.js +1 -1
  368. package/dist/sidebar.js +216 -114
  369. package/dist/slider-CcICPe3u.js +149 -0
  370. package/dist/slider.js +1 -1
  371. package/dist/sortable-list.js +3 -3
  372. package/dist/spectrum-walk-cBNSx_zm.js +33 -0
  373. package/dist/springPresets-DfoQ6XRY.js +64 -0
  374. package/dist/stacked-icons.js +54 -39
  375. package/dist/styles/animations.css +13 -3
  376. package/dist/styles/cards.css +271 -2
  377. package/dist/styles/completion-seal.css +131 -0
  378. package/dist/styles/components.css +1 -4
  379. package/dist/styles/configurator.css +221 -1
  380. package/dist/styles/critical-partition.mjs +66 -11
  381. package/dist/styles/deferred.css +4 -0
  382. package/dist/styles/dock/adaptive-legibility.css +119 -0
  383. package/dist/styles/dock/cta-seat.css +87 -0
  384. package/dist/styles/dock/density.css +167 -6
  385. package/dist/styles/dock/fission-bridge.css +552 -0
  386. package/dist/styles/dock/layers.css +90 -78
  387. package/dist/styles/dock/morph-bridge.css +67 -18
  388. package/dist/styles/dock/morph.css +57 -118
  389. package/dist/styles/dock/overflow.css +12 -0
  390. package/dist/styles/dock/search.css +68 -0
  391. package/dist/styles/dock/shape.css +250 -0
  392. package/dist/styles/dock/shell.css +24 -8
  393. package/dist/styles/dock/stack-rail.css +352 -0
  394. package/dist/styles/dock-controls/dark-mode-toggle.css +17 -4
  395. package/dist/styles/dock-controls/icon-button.css +46 -0
  396. package/dist/styles/dock-controls/triggers.css +23 -1
  397. package/dist/styles/dock-controls.css +18 -0
  398. package/dist/styles/dock.css +27 -2
  399. package/dist/styles/drawer.css +166 -0
  400. package/dist/styles/glass/accent-tone.css +66 -0
  401. package/dist/styles/glass/control-surfaces.css +167 -0
  402. package/dist/styles/glass/glass-atom.css +244 -0
  403. package/dist/styles/glass/glass-capsule.css +143 -0
  404. package/dist/styles/glass/glass-chip.css +215 -0
  405. package/dist/styles/glass/ladder.css +67 -17
  406. package/dist/styles/glass/liquid-enter.css +252 -0
  407. package/dist/styles/glass/liquid-morph.css +850 -0
  408. package/dist/styles/glass/material.css +70 -1
  409. package/dist/styles/glass/reveal.css +22 -2
  410. package/dist/styles/glass/rim.css +31 -9
  411. package/dist/styles/glass/surfaces.css +81 -150
  412. package/dist/styles/glass.css +21 -0
  413. package/dist/styles/icon-chip.css +45 -0
  414. package/dist/styles/index.css +26 -0
  415. package/dist/styles/jubilance.css +65 -0
  416. package/dist/styles/motion/morph-field.css +229 -0
  417. package/dist/styles/paper.css +230 -14
  418. package/dist/styles/scroll-choreography.css +135 -78
  419. package/dist/styles/scroll-chrome.css +123 -0
  420. package/dist/styles/scroll-driven.css +38 -0
  421. package/dist/styles/segmented-tabs.css +110 -40
  422. package/dist/styles/select.css +151 -0
  423. package/dist/styles/theme/bridges.css +22 -0
  424. package/dist/styles/theme/radius.css +18 -1
  425. package/dist/styles/tokens/color-radius.css +14 -4
  426. package/dist/styles/tokens/dark-arm.css +94 -12
  427. package/dist/styles/tokens/glass-deep.css +33 -4
  428. package/dist/styles/tokens/glass-fx.css +122 -1
  429. package/dist/styles/tokens/glass.css +226 -34
  430. package/dist/styles/tokens/light-dark.css +3 -3
  431. package/dist/styles/tokens/offsets.css +27 -0
  432. package/dist/styles/tokens/property-regs.css +277 -0
  433. package/dist/styles/tokens/scale-paper.css +86 -30
  434. package/dist/styles/tokens/scheme-motion.css +106 -133
  435. package/dist/styles/tokens/scheme-spring.css +239 -0
  436. package/dist/styles/tokens/scroll-tokens.css +15 -15
  437. package/dist/styles/tokens/shadow.css +73 -13
  438. package/dist/styles/tokens/sizing-config.css +110 -0
  439. package/dist/styles/tokens/sizing.css +55 -104
  440. package/dist/styles/tokens.css +14 -2
  441. package/dist/styles/typography/semantic.css +18 -5
  442. package/dist/styles/utilities/a11y-overrides.css +20 -5
  443. package/dist/styles/utilities/base-misc.css +52 -0
  444. package/dist/styles/utilities/btn.css +84 -3
  445. package/dist/styles/utilities/components.css +31 -6
  446. package/dist/styles/utilities/metal.css +26 -0
  447. package/dist/switch.js +1 -1
  448. package/dist/tabs.js +199 -182
  449. package/dist/timeline.js +241 -206
  450. package/dist/toast.js +1 -1
  451. package/dist/toggle-chip.js +14 -41
  452. package/dist/toggle-group.js +1 -1
  453. package/dist/tooltip.js +1 -1
  454. package/dist/typewriter.js +2 -2
  455. package/dist/uniformBridgeWGPU-BCse1SHU.js +1268 -0
  456. package/dist/{useAnimatedNumber-BfUq2bUM.js → useAnimatedNumber-BntskVdQ.js} +1 -1
  457. package/dist/{useConfiguratorState-DNlOh6c8.js → useConfiguratorState-22BcULzF.js} +41 -38
  458. package/dist/useControlSize-DAZ062x7.js +9 -0
  459. package/dist/useDockCtaReceive-DX7RDb6_.js +88 -0
  460. package/dist/{useDragMorph-DgxnsVJz.js → useDragMorph-DGLSewwB.js} +4 -4
  461. package/dist/useDragVelocity-CjcfX3dA.js +57 -0
  462. package/dist/useFuzzySearch-0fTYOhS4.js +177 -0
  463. package/dist/useGooMorph-Cs13NgYL.js +104 -0
  464. package/dist/useGpuSubstrate-Ceet70xq.js +347 -0
  465. package/dist/useHaptic-CPz5BT9I.js +134 -0
  466. package/dist/{useLiquidFlex-mZPMiNXh.js → useLiquidFlex-Cc6PjVJD.js} +8 -3
  467. package/dist/useLiquidPress-CtOQ8Z0_.js +43 -0
  468. package/dist/useMorphField-ogBM7ubT.js +141 -0
  469. package/dist/usePointerVelocityField-BrkqZFhj.js +91 -0
  470. package/dist/useScrollChrome-JuImi1DM.js +258 -0
  471. package/dist/{useSpringMount-q1amq1SJ.js → useSpringMount-DFxtzmkR.js} +1 -1
  472. package/dist/useSpringPress-VM9RgVq3.js +36 -0
  473. package/dist/{useSurfaceAxis-g0NloYEF.js → useSurfaceAxis-Ci7Dnaw2.js} +1 -1
  474. package/dist/{useTouchGate-CBZTD4SD.js → useTouchGate-B1Lf9XqN.js} +1 -1
  475. package/dist/{vendor-CKmzio-i.js → vendor-B2qOlYY3.js} +24 -11
  476. package/dist/virtual.d.ts +1 -0
  477. package/dist/virtual.js +225 -0
  478. package/dist/watercolor-dot.js +107 -74
  479. package/dist/writeVelocityWeight-Bh83xZfs.js +19 -0
  480. package/package.json +140 -9
  481. package/src/styles/animations.css +13 -3
  482. package/src/styles/cards.css +271 -2
  483. package/src/styles/completion-seal.css +131 -0
  484. package/src/styles/configurator.css +221 -1
  485. package/src/styles/critical-partition.mjs +66 -11
  486. package/src/styles/dock/adaptive-legibility.css +119 -0
  487. package/src/styles/dock/cta-seat.css +87 -0
  488. package/src/styles/dock/density.css +167 -6
  489. package/src/styles/dock/fission-bridge.css +552 -0
  490. package/src/styles/dock/layers.css +90 -78
  491. package/src/styles/dock/morph-bridge.css +67 -18
  492. package/src/styles/dock/morph.css +57 -118
  493. package/src/styles/dock/overflow.css +12 -0
  494. package/src/styles/dock/search.css +68 -0
  495. package/src/styles/dock/shape.css +250 -0
  496. package/src/styles/dock/shell.css +24 -8
  497. package/src/styles/dock/stack-rail.css +352 -0
  498. package/src/styles/dock-controls/dark-mode-toggle.css +17 -4
  499. package/src/styles/dock-controls/icon-button.css +46 -0
  500. package/src/styles/dock-controls/triggers.css +23 -1
  501. package/src/styles/dock-controls.css +18 -0
  502. package/src/styles/dock.css +27 -2
  503. package/src/styles/drawer.css +164 -0
  504. package/src/styles/glass/accent-tone.css +66 -0
  505. package/src/styles/glass/control-surfaces.css +167 -0
  506. package/src/styles/glass/glass-atom.css +244 -0
  507. package/src/styles/glass/glass-capsule.css +143 -0
  508. package/src/styles/glass/glass-chip.css +215 -0
  509. package/src/styles/glass/ladder.css +67 -17
  510. package/src/styles/glass/liquid-enter.css +252 -0
  511. package/src/styles/glass/liquid-morph.css +850 -0
  512. package/src/styles/glass/material.css +70 -1
  513. package/src/styles/glass/reveal.css +22 -2
  514. package/src/styles/glass/rim.css +31 -9
  515. package/src/styles/glass/surfaces.css +81 -150
  516. package/src/styles/glass.css +21 -0
  517. package/src/styles/icon-chip.css +45 -0
  518. package/src/styles/index.css +26 -0
  519. package/src/styles/jubilance.css +65 -0
  520. package/src/styles/motion/morph-field.css +229 -0
  521. package/src/styles/paper.css +230 -14
  522. package/src/styles/scroll-choreography.css +135 -78
  523. package/src/styles/scroll-chrome.css +123 -0
  524. package/src/styles/scroll-driven.css +38 -0
  525. package/src/styles/segmented-tabs.css +110 -36
  526. package/src/styles/select.css +151 -0
  527. package/src/styles/theme/bridges.css +22 -0
  528. package/src/styles/theme/radius.css +18 -1
  529. package/src/styles/tokens/color-radius.css +14 -4
  530. package/src/styles/tokens/dark-arm.css +94 -12
  531. package/src/styles/tokens/glass-deep.css +33 -4
  532. package/src/styles/tokens/glass-fx.css +122 -1
  533. package/src/styles/tokens/glass.css +226 -34
  534. package/src/styles/tokens/light-dark.css +3 -3
  535. package/src/styles/tokens/offsets.css +27 -0
  536. package/src/styles/tokens/property-regs.css +277 -0
  537. package/src/styles/tokens/scale-paper.css +86 -30
  538. package/src/styles/tokens/scheme-motion.css +106 -133
  539. package/src/styles/tokens/scheme-spring.css +239 -0
  540. package/src/styles/tokens/scroll-tokens.css +15 -15
  541. package/src/styles/tokens/shadow.css +73 -13
  542. package/src/styles/tokens/sizing-config.css +110 -0
  543. package/src/styles/tokens/sizing.css +55 -104
  544. package/src/styles/tokens.css +14 -2
  545. package/src/styles/typography/semantic.css +18 -5
  546. package/src/styles/utilities/a11y-overrides.css +20 -5
  547. package/src/styles/utilities/base-misc.css +52 -0
  548. package/src/styles/utilities/btn.css +84 -3
  549. package/src/styles/utilities/components.css +31 -6
  550. package/src/styles/utilities/metal.css +26 -0
  551. package/dist/ContextMenuContent-uWnVxDab.js +0 -85
  552. package/dist/DialogContent-DcKK8k9i.js +0 -103
  553. package/dist/DialogFooter-BZNX5aVr.js +0 -165
  554. package/dist/HoverCardContent-b2uaAMRR.js +0 -83
  555. package/dist/Input-h9v5LeXf.js +0 -55
  556. package/dist/NumberFieldContent-Cq7EzX-U.js +0 -138
  557. package/dist/PaperBackdrop-Vf3tlpvd.js +0 -31
  558. package/dist/SelectScrollDownButton-CrA8F0iV.js +0 -252
  559. package/dist/Separator-pKF0oA4M.js +0 -37
  560. package/dist/Switch-CwYNf8bo.js +0 -47
  561. package/dist/TooltipProvider-rzvnXz60.js +0 -104
  562. package/dist/badge-D9XWW4GT.js +0 -53
  563. package/dist/button-DYCUa-tH.js +0 -126
  564. package/dist/color-DweYl7pE.js +0 -86
  565. package/dist/components/custom/concentric/composables/ringField.d.ts +0 -44
  566. package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +0 -35
  567. package/dist/components/custom/constellation/constellationDraw.d.ts +0 -30
  568. package/dist/components/custom/dock/DockRail.vue.d.ts +0 -89
  569. package/dist/createCanvasLifecycle-CHD5XrDW.js +0 -82
  570. package/dist/dockContext-BNfyPLe9.js +0 -17
  571. package/dist/procedural-color.wgsl-CToRHugY.js +0 -224
  572. package/dist/resolveCanvasColor-CUyHr5Uu.js +0 -11
  573. package/dist/slider-DVb4HXU-.js +0 -142
  574. package/dist/springPresets-CFQGQfdl.js +0 -40
  575. package/dist/styles/dock/rail-extend.css +0 -397
  576. package/dist/useLiquidPress-kfb4KX79.js +0 -39
  577. package/dist/usePointerVelocityField-JbRd5CrM.js +0 -137
  578. package/dist/useRAFLoop-UYa4zoiN.js +0 -109
  579. package/dist/useSpringPress-BsqPr7FJ.js +0 -34
  580. package/src/styles/dock/rail-extend.css +0 -397
  581. /package/dist/{CollapsibleContent-68dEXIAl.js → CollapsibleContent-D7UNsXQr.js} +0 -0
  582. /package/dist/{InstrumentChassis-Bx0F_q5g.js → InstrumentChassis-UUJX0-mW.js} +0 -0
  583. /package/dist/{Label-C2ejNWeC.js → Label-B_HPqi_q.js} +0 -0
  584. /package/dist/{ModalOverlay-D1VrWyoi.js → ModalOverlay-DfAf7o15.js} +0 -0
  585. /package/dist/{SelectGroup-DwwjicPY.js → SelectGroup-Dcczq44n.js} +0 -0
  586. /package/dist/{_plugin-vue_export-helper-C1je1s0u.js → _plugin-vue_export-helper-gLzyemvl.js} +0 -0
  587. /package/dist/{compile-CQEFRTmx.js → compile-INR_tPk_.js} +0 -0
  588. /package/dist/{constants-BPOqYJAm.js → constants-BWj7DkMn.js} +0 -0
  589. /package/dist/{createContext-CpBNTRMI.js → createContext-Cd23P9j0.js} +0 -0
  590. /package/dist/{math-BINYmg5z.js → math-5RcIgCB4.js} +0 -0
  591. /package/dist/{menuItemVariants-D8VNHq22.js → menuItemVariants-DAXquKja.js} +0 -0
  592. /package/dist/{prng-Za0Rmgag.js → prng-B5tIXTtj.js} +0 -0
  593. /package/dist/{useGlobalDark-C28t0VWJ.js → useGlobalDark-B4HO9LXG.js} +0 -0
  594. /package/dist/{useIntersectionPause-Bj4sPkMh.js → useIntersectionPause-DO8Vl4gs.js} +0 -0
  595. /package/dist/{useInterval-CvK1mL92.js → useInterval-BVUI-sez.js} +0 -0
  596. /package/dist/{useKeyboardShortcuts-BXWXOZ-9.js → useKeyboardShortcuts-BEut54Tk.js} +0 -0
  597. /package/dist/{useResizeObserver-Bpoi7tRE.js → useResizeObserver-DdEn3v2f.js} +0 -0
  598. /package/dist/{useResolveTokenColor-vAylyR0x.js → useResolveTokenColor-ChOnCckA.js} +0 -0
  599. /package/dist/{useScrollProgress-D7bYU2RK.js → useScrollProgress-A0M6qRl7.js} +0 -0
  600. /package/dist/{useSortable-DHjtZSEd.js → useSortable-DQV_UNDw.js} +0 -0
  601. /package/dist/{useTextHighlight-CWEi25hf.js → useTextHighlight-Bma3UlKA.js} +0 -0
  602. /package/dist/{useTimer-BHJOKr35.js → useTimer-BBLGPXR8.js} +0 -0
  603. /package/dist/{useUserInvalidAria-y5namzeE.js → useUserInvalidAria-EmmwWPOl.js} +0 -0
  604. /package/dist/{useViewportReady-anbac3m6.js → useViewportReady-C9pYnn7K.js} +0 -0
  605. /package/dist/{vReveal-Czsb7zQC.js → vReveal-CT1KtwZA.js} +0 -0
  606. /package/dist/{vSpecular-CQFmLNzA.js → vSpecular-EX7loENl.js} +0 -0
@@ -0,0 +1,19 @@
1
+ import { type ButtonHTMLAttributes, type HTMLAttributes } from "vue";
2
+ import { type PopoverTriggerProps } from "reka-ui";
3
+ type __VLS_Props = PopoverTriggerProps & {
4
+ type?: ButtonHTMLAttributes["type"];
5
+ class?: HTMLAttributes["class"];
6
+ };
7
+ declare var __VLS_8: {};
8
+ type __VLS_Slots = {} & {
9
+ default?: (props: typeof __VLS_8) => any;
10
+ };
11
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
12
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
13
+ declare const _default: typeof __VLS_export;
14
+ export default _default;
15
+ type __VLS_WithSlots<T, S> = T & {
16
+ new (): {
17
+ $slots: S;
18
+ };
19
+ };
@@ -0,0 +1,78 @@
1
+ import { type Component } from "vue";
2
+ import type { DockStackItem } from "./constants";
3
+ /**
4
+ * <DockStack> — BC.W-DOCK-STACK-RAIL + BE.W-DOCK-RAIL-REALIZE. The ONE rail engine on
5
+ * the KEPT `.glass-dock-frame` non-clipping escape, with TWO render modes:
6
+ *
7
+ * • `mode="stack"` (DEFAULT — the BC byte-identical path). The macOS Dock
8
+ * hover-expand STACK: a `core` anchor glyph + N members that FAN OUT on hover/focus
9
+ * beside the rail, each a clear `--glass-bg-floating` glass icon.
10
+ *
11
+ * • `mode="facets"` (BE.W-DOCK-RAIL-REALIZE — the re-instated AZ context carousel).
12
+ * The members render as a CONTEXT CAROUSEL — a flex strip of facet-CHIPS that fans
13
+ * in the SAME gutter, each chip carrying its OWN `--glass-accent` hue (the
14
+ * per-instance chromatic-rim axis), the active facet lit on the selected-as-glass
15
+ * `--dock-control-active-bg` tier. Clicking a chip writes the consumer-owned
16
+ * `v-model:selected`. This is a RENDER MODE, NOT a second component — there is no
17
+ * `DockRail.vue`/`DockFacetRail.vue`; `<DockStack>` owns both modes.
18
+ *
19
+ * THE KEPT ESCAPE (both modes). It renders in `GlassDock`'s `#rail` slot, over the
20
+ * `.glass-dock-frame` shell — a `display:contents`-by-default wrapper that becomes a
21
+ * NON-clipping positioning context only on `data-has-rail`, so the rail extends BEYOND
22
+ * the dock edge into its own gutter WITHOUT touching the dock box (the box-INVIOLATE
23
+ * discipline — `deltaW = deltaH = 0`; the chips feed NO size into the dock's intrinsic
24
+ * box).
25
+ *
26
+ * 3 CONFIGURABLE, SCROLLABLE, N-STACK (both modes). `visibleCount` (default 3) members
27
+ * fan at rest; an >visibleCount set routes the fanned strip through `<FadingScroll>`
28
+ * (the one scroll-fade port) so the n-set is reachable by scrolling the rail, NOT by
29
+ * overflowing the dock box.
30
+ *
31
+ * THE HOVER-HYSTERESIS (REUSED, not re-forked — AZ.W-DOCK-FLICKER). The pointer-enter
32
+ * commits the open only after the `HOVER_INTENT_MS` intent-dwell. Focus opens
33
+ * immediately; blur/leave closes.
34
+ *
35
+ * ONE REGISTRY (R4 KEPT). The members write the consumer-owned `v-model:selected`; this
36
+ * primitive owns NO internal `ref()`/`reactive()` shadow of the active member. The hover
37
+ * `expanded` is a transient UI state (optionally `v-model:expanded` controlled), NOT a
38
+ * selection shadow.
39
+ */
40
+ type __VLS_Props = {
41
+ /** The stack/facet members — the fan-out contents. */
42
+ items: readonly DockStackItem[];
43
+ /**
44
+ * The render mode. `"stack"` (default) = the macOS hover-expand glyph fan (the BC
45
+ * byte-identical path). `"facets"` = the re-instated AZ context carousel of
46
+ * accent-tinted facet chips (each chip writes its own `--glass-accent` hue).
47
+ */
48
+ mode?: "stack" | "facets";
49
+ /** The core anchor glyph (the always-visible dock(1) item). Default: a layers glyph. */
50
+ core?: Component;
51
+ /** The core's accessible label (the stack's name). */
52
+ coreLabel?: string;
53
+ /** Members visible at rest before scrolling (the verbatim "3 configurable"). */
54
+ visibleCount?: number;
55
+ /** Which dock edge the stack anchors to. */
56
+ position?: "start" | "end";
57
+ };
58
+ type __VLS_ModelProps = {
59
+ "selected"?: string;
60
+ "expanded"?: boolean;
61
+ };
62
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
63
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
64
+ select: (id: string) => any;
65
+ "update:selected": (value: string | undefined) => any;
66
+ "update:expanded": (value: boolean) => any;
67
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
68
+ onSelect?: ((id: string) => any) | undefined;
69
+ "onUpdate:selected"?: ((value: string | undefined) => any) | undefined;
70
+ "onUpdate:expanded"?: ((value: boolean) => any) | undefined;
71
+ }>, {
72
+ position: "start" | "end";
73
+ mode: "stack" | "facets";
74
+ visibleCount: number;
75
+ coreLabel: string;
76
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
77
+ declare const _default: typeof __VLS_export;
78
+ export default _default;
@@ -1,5 +1,11 @@
1
1
  import { type DockProps } from "./composables/useDockShellProps";
2
- declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {}, __VLS_7: {};
2
+ /** Imperative split/merge/toggle — re-measure pieces, then run the fission spring. */
3
+ declare function split(): void;
4
+ declare function merge(): void;
5
+ declare function toggleSplit(): void;
6
+ declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {}, __VLS_7: {}, __VLS_9: {
7
+ fissioned: boolean;
8
+ }, __VLS_11: {};
3
9
  type __VLS_Slots = {} & {
4
10
  persistent?: (props: typeof __VLS_1) => any;
5
11
  } & {
@@ -7,7 +13,11 @@ type __VLS_Slots = {} & {
7
13
  } & {
8
14
  collapsed?: (props: typeof __VLS_5) => any;
9
15
  } & {
10
- rail?: (props: typeof __VLS_7) => any;
16
+ search?: (props: typeof __VLS_7) => any;
17
+ } & {
18
+ split?: (props: typeof __VLS_9) => any;
19
+ } & {
20
+ rail?: (props: typeof __VLS_11) => any;
11
21
  };
12
22
  declare const __VLS_base: import("vue").DefineComponent<DockProps, {
13
23
  expanded: import("vue").Ref<boolean, boolean>;
@@ -18,7 +28,15 @@ declare const __VLS_base: import("vue").DefineComponent<DockProps, {
18
28
  collapse: () => void;
19
29
  keepOpen: () => void;
20
30
  release: () => void;
21
- }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<DockProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
31
+ split: typeof split;
32
+ merge: typeof merge;
33
+ toggleSplit: typeof toggleSplit;
34
+ fissioned: Readonly<import("vue").Ref<boolean, boolean>>;
35
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
36
+ "update:order": (from: number, to: number) => any;
37
+ }, string, import("vue").PublicProps, Readonly<DockProps> & Readonly<{
38
+ "onUpdate:order"?: ((from: number, to: number) => any) | undefined;
39
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
22
40
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
23
41
  declare const _default: typeof __VLS_export;
24
42
  export default _default;
@@ -3,37 +3,24 @@ import type { Ref } from "vue";
3
3
  * AX.W02 — ONE morph orchestrator per dock. The dock is a single morph stack
4
4
  * whose active "layer" is `(expandedState × activePane)`: the outer
5
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.
6
+ * transitions in the SAME group — ONE spring, ONE scalar (`--dock-morph-t`),
7
+ * ONE clock. No second engine.
8
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.
9
+ * BD.W-DOCK-CORE (the size re-invent) — the orchestrator no longer MEASURES a
10
+ * per-swap `from/to` span. The visible size is a ratio-free convex blend of two
11
+ * endpoints measured ONCE per content change (`useDockExpandedSize` writes
12
+ * `--dock-expanded-px`/`--dock-collapsed-px`; layers.css blends them on
13
+ * `--dock-morph-t`). So this driver shrinks to its essence: on a layer swap it
14
+ * arms `[data-morphing]`, swaps the crossfade classes (the a11y-006 3-state
15
+ * hit-test contract, LOAD-BEARING — KEPT verbatim), and runs ONE `SpringProgress`
16
+ * gliding `--dock-morph-t` 0→1; on settle it clears the morph state. A re-toggle
17
+ * mid-flight re-bases the live solver onto a fresh spring CARRYING the prior
18
+ * velocity (the iOS interruptible-physics continuity).
30
19
  *
31
20
  * 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).
21
+ * carries no static value.js edge — never import `AnimationGroup` / `./engine`.
34
22
  *
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).
23
+ * `DOCK_SPRING` is byte-fenced — it lives in `../constants`.
37
24
  */
38
25
  export interface DockMorphGroupRegistration {
39
26
  /** The container element owning this group's grid-stacked panes. */
@@ -84,10 +71,9 @@ export interface UseDockMorphOrchestratorReturn {
84
71
  onOuterTransitionEnd(e: TransitionEvent): void;
85
72
  }
86
73
  /**
87
- * The ONE morph engine for a dock instance. Owns a single `SpringProgress`;
88
- * drives the outer collapse↔expand box AND every nested `<DockLayerGroup>`'s
89
- * pane-swap off the one `--dock-morph-t` scalar. Replaces the per-pair
90
- * `useLayerTransition` instantiation (W01's single-scalar primitive) with a
91
- * single multi-target driver, so a nested dock runs ONE engine, not two.
74
+ * The ONE morph engine for a dock instance. Owns a single `SpringProgress` that
75
+ * glides the one `--dock-morph-t` scalar 0→1 on a layer swap; the size is a
76
+ * ratio-free blend of the measure-ONCE endpoints (layers.css). Crossfade classes
77
+ * (the 3-state a11y hit-test contract) swap on the swap; the spring is the clock.
92
78
  */
93
79
  export declare function useDockMorphOrchestrator(options: UseDockMorphOrchestratorOptions): UseDockMorphOrchestratorReturn;
@@ -1,75 +1,86 @@
1
- import type { Ref } from "vue";
1
+ import { type Ref } from "vue";
2
2
  /**
3
- * BB.W-CARVE4 — the dock morph MEASURE/SEAT helpers, carved out of
4
- * `dockMorphContext.ts` to hold the no-god-module bound (the aurora→useAurora /
5
- * goo-blob→useMetaballRenderer / fourier-field→useFourierField colocation pattern).
6
- * The orchestrator stays the morph DRIVER (it owns the `SpringProgress`, the targets
7
- * Set, the per-frame `--dock-morph-t` write); these are the PURE geometry + the
8
- * reserved-footprint measure + the SYNCHRONOUS PRM seat it composes. `DOCK_SPRING` is
9
- * byte-fenced — it lives in `../constants`, never touched here.
3
+ * BD.W-DOCK-CORE (the width-seizure cure) — the dock morph SIZE measure.
10
4
  *
11
- * The functions take their element/axis/target dependencies as explicit params (the
12
- * orchestrator's closures collapse onto this seam) — no module-level state, so the
13
- * extraction is behaviour-identical to the prior inline closures.
5
+ * THE BUG THIS RETIRES (the year-old seizure): the prior pipeline measured a
6
+ * per-swap `from/to` FLIP ratio and drove the visible size by
7
+ * `--dock-root-scale = max(ratio + (1−ratio)·t, 0.06)` — a FLOOR with NO CEILING.
8
+ * When the morph target measured small (a degenerate `to` racing the content
9
+ * layout), `ratio = from/max(to,1px)` ran to ~56 → `scaleX(56)` = a ~2451px
10
+ * detonation on collapse / an inversion at the spring overshoot peak. The
11
+ * `transform-origin: center` kept the centroid clean (`cxRange 0`), which is
12
+ * exactly why every prior judge measuring the centroid PASSED while the WIDTH
13
+ * detonated. The whole measure-and-arm FLIP machinery
14
+ * (`measureAndArmMorph`/`seatTargetSync`/`rebaseSiblingSpans`/
15
+ * `forceNestedMaxContent`/`nestedTargetsWithin`/`measureTo`/`armRootMorphSpan`/
16
+ * `clearRootMorphSpan`/`morphMinFloorPx`/the per-target generation gating) is
17
+ * DELETED — clean break, no legacy, no floor that masks a bad measurement.
18
+ *
19
+ * THE CURE — a ratio-FREE measure-ONCE convex blend. The dock measures its two
20
+ * KNOWN footprints ONCE per content change (a `ResizeObserver`, NOT a per-swap
21
+ * rAF race): `--dock-expanded-px` (the expanded content width, read behind the
22
+ * clip aperture) and `--dock-collapsed-px` (the collapsed summary box). The
23
+ * visible size is the convex blend `--dock-live = collapsed + (expanded −
24
+ * collapsed)·--dock-morph-t` and `--dock-size-scale = --dock-live / expanded`
25
+ * (layers.css). A convex blend of two POSITIVE endpoints can NEVER exceed the
26
+ * larger nor invert below the smaller — BOUNDED by construction, no ratio, no
27
+ * `scaleX` explosion, regardless of spring overshoot (the `clamp(0,t,1)` caps the
28
+ * size term; the >1 excursion routes to the orthogonal punch channel).
29
+ *
30
+ * THE FRESHNESS GUARD (challenge 3·R2): a measure-ONCE endpoint can still be read
31
+ * stale — before `fonts.ready`, before async icon SVGs lay out, on a
32
+ * `display:none`→0 route swap, or on a `content-visibility:auto` parent (the RO
33
+ * fires 0). A 0 expanded would give `collapsed/0 = ∞`. So FLOOR `--dock-expanded-px`
34
+ * at `max(measured, --dock-collapsed-px)` and re-measure on `fonts.ready` + the
35
+ * FIRST non-zero RO callback + visibility-enter. This is NOT the deleted magic
36
+ * floor (which masked a per-frame measurement); it is a one-shot endpoint
37
+ * sanity bound on a value that is otherwise stable across the whole morph.
38
+ *
39
+ * `DOCK_SPRING` is byte-fenced — it lives in `../constants`, never touched here.
14
40
  */
15
- /** The minimal morph-target shape the measure/seat helpers read (the orchestrator's
16
- * full `MorphTarget` structurally satisfies it). */
17
- export interface MorphMeasureTarget {
18
- containerEl: Ref<HTMLElement | null>;
19
- axis: Ref<"horizontal" | "vertical">;
20
- /** PER-TARGET swap generation — the seat gates its pipeline on its own id. */
21
- txId: number;
22
- }
23
41
  export declare function dimOf(axis: "horizontal" | "vertical"): "width" | "height";
24
- export declare function morphAxisProp(axis: "horizontal" | "vertical"): "inline-size" | "block-size";
25
42
  export declare function getSize(el: HTMLElement, axis: "horizontal" | "vertical"): number;
26
- export declare function clearMorphVars(el: HTMLElement): void;
27
- /**
28
- * BA-VJS-1 (valuejs-fold A-1) — the OTHER registered targets whose container is a
29
- * DOM DESCENDANT of `outerEl` (a nested `<DockLayerGroup>` stack inside the outer
30
- * `.dock-layers`). These are the pinned inner spans the outer measure must see at
31
- * their OWN intrinsic `max-content`, not their collapsed pin, or the outer
32
- * shrink-wraps to ~0.
33
- */
34
- export declare function nestedTargetsWithin(outer: MorphMeasureTarget, outerEl: HTMLElement, targets: Iterable<MorphMeasureTarget>): MorphMeasureTarget[];
35
- /**
36
- * BA-VJS-1 — force ONE nested target to its own-axis `max-content` (clearing its
37
- * reserved `--dock-morph-to` footprint so it sizes to content), and return a closure
38
- * that RESTORES its exact prior inline state. The restore re-writes the precise
39
- * prior `inline-size`/`block-size` inline value (or removes it if there was none),
40
- * so the inner's in-flight pin is byte-identical after the outer's measurement —
41
- * the inner target's own spring/pin pipeline is never disturbed.
42
- */
43
- export declare function forceNestedMaxContent(n: MorphMeasureTarget): () => void;
44
- /**
45
- * BB.W-DOCK-MORPH-FAMILY (c) — measure the true `to` for ONE target with the
46
- * morph axis forced to `max-content` (the same circular-measure escape the rAF
47
- * path uses), composing the BA-VJS-1 nested-descendant `max-content` ordering so
48
- * a nested group reads its TRUE intrinsic span (never `to:0`). The element is at
49
- * the live painted geometry on entry; this forces+reads+restores the axis. PURE
50
- * measure — no spring, no pin write.
51
- */
52
- export declare function measureTo(t: MorphMeasureTarget, el: HTMLElement, targets: Iterable<MorphMeasureTarget>): number;
53
- /** The orchestrator settle callbacks the synchronous seat composes (it clears the
54
- * morph vars + nulls the leaving layer, then parks the root/spring once no target
55
- * is morphing). */
56
- export interface MorphSeatCallbacks {
57
- /** Settle ONE target (clear its morph vars + null its leavingLayer). */
58
- settleTarget(t: MorphMeasureTarget): void;
59
- /** Park the shared scalar + spring once NO target is morphing. */
60
- maybeSettleRoot(): void;
43
+ export interface UseDockExpandedSizeOptions {
44
+ /** The `.glass-dock` root the `--dock-expanded-px`/`--dock-collapsed-px` write to. */
45
+ rootEl: Ref<HTMLElement | null>;
46
+ /**
47
+ * The content element whose intrinsic morph-axis span is observed for size
48
+ * changes (the active full-pane container — `.dock-layers`). Its resizes are the
49
+ * RO trigger; the ENDPOINTS are read off the ROOT box (content + chrome), keyed
50
+ * by the dock's at-rest expanded/collapsed state.
51
+ */
52
+ contentEl: Ref<HTMLElement | null>;
53
+ /**
54
+ * The morph axis (a horizontal dock blends width; a vertical dock blends height).
55
+ */
56
+ axis: Ref<"horizontal" | "vertical">;
57
+ /**
58
+ * Whether the dock is currently in its EXPANDED visual state (a `Ref<boolean>`).
59
+ * The endpoint captured at rest is keyed off this: at rest expanded → the root
60
+ * box is the `--dock-expanded-px` endpoint; at rest collapsed → the
61
+ * `--dock-collapsed-px` endpoint. (A reactive read, so a state flip re-captures.)
62
+ */
63
+ expanded: Ref<boolean>;
61
64
  }
62
65
  /**
63
- * BB.W-DOCK-MORPH-FAMILY (c) — the SYNCHRONOUS PRM seat. Under
64
- * `prefers-reduced-motion: reduce` there is NO morph to play, so the geometry +
65
- * the scalar seat at the target in ONE step (the `useDockOrientationMorph.pin()`
66
- * precedent transplanted onto the collapse/expand path): measure the true `to`
67
- * (composing the BA-VJS-1 nested ordering), write the box at `to` (the
68
- * reserved-footprint reads at scale 1), and set `--dock-morph-t` to the endpoint
69
- * for THIS swap — then clear the morph state immediately (no rAF measure-defer,
70
- * no spring, no morph window). The box NEVER paints the collapsed `from` sliver
71
- * with the scalar at 1 (the P0 terminal failure). Endpoint is the per-swap
72
- * incoming-ness `1` (the new pane is fully in; the directional `--dock-expand-t`
73
- * resolves to the class endpoint with `[data-morphing]` cleared).
66
+ * BD.W-DOCK-CORE — capture the two convex-blend endpoints ONCE PER STATE off the
67
+ * ROOT box.
68
+ *
69
+ * The visible morph scales the ROOT (chrome + content), so the two blend endpoints
70
+ * must be the ROOT's OWN expanded/collapsed footprints — NOT the bare content span
71
+ * (which omits the padding/min-width chrome). The endpoints are captured at REST
72
+ * (when `[data-morphing]` is OFF): the dock's settled root box in its current
73
+ * expanded/collapsed state IS that state's endpoint. A `ResizeObserver` on the
74
+ * content re-captures the CURRENT state's endpoint whenever the content reflows
75
+ * (more controls, a font swap), so the blend stays fresh — but it never reads the
76
+ * box MID-MORPH (the scaled box would feed back a degenerate endpoint, the seizure's
77
+ * cousin). The expanded endpoint is FLOORED at `max(captured, collapsed)` — the
78
+ * freshness guard against a 0/degenerate read giving `collapsed/0 = ∞`.
79
+ *
80
+ * The collapsed endpoint starts at the resolved `--dock-morph-min` icon-square floor
81
+ * and is refined to the real collapsed root box the first time the dock rests
82
+ * collapsed; the expanded endpoint is captured the first (and every) time it rests
83
+ * expanded. So the FIRST morph from a freshly-mounted expanded dock already has a
84
+ * real expanded endpoint + a sane collapsed floor — bounded by construction.
74
85
  */
75
- export declare function seatTargetSync(t: MorphMeasureTarget, id: number, root: HTMLElement | null, targets: Iterable<MorphMeasureTarget>, cb: MorphSeatCallbacks): void;
86
+ export declare function useDockExpandedSize(options: UseDockExpandedSizeOptions): void;
@@ -1,5 +1,7 @@
1
1
  export { useDockState } from "./useDockState";
2
2
  export type { UseDockStateOptions, UseDockStateReturn, DockState } from "./useDockState";
3
+ export { useDockSearch } from "./useDockSearch";
4
+ export type { UseDockSearchOptions, UseDockSearchReturn } from "./useDockSearch";
3
5
  export { useLayerTransition } from "./useLayerTransition";
4
6
  export type { UseLayerTransitionOptions, UseLayerTransitionReturn } from "./useLayerTransition";
5
7
  export { useDockHold } from "./useDockHold";
@@ -9,3 +11,4 @@ export { provideDockContext, useDockContext, useOptionalDockContext, DOCK_CONTEX
9
11
  export { provideDockLayerGroupContext, useDockLayerGroupContext, useOptionalDockLayerGroupContext, DOCK_LAYER_GROUP_KEY, type DockLayerDescriptor, type DockLayerGroupContext, } from "./dockLayerContext";
10
12
  export { useDockMorphOrchestrator, provideDockMorphContext, useOptionalDockMorphContext, DOCK_MORPH_KEY, type DockMorphContext, type DockMorphGroupRegistration, type DockMorphGroupHandle, type UseDockMorphOrchestratorOptions, type UseDockMorphOrchestratorReturn, } from "./dockMorphContext";
11
13
  export { useDockOrientationMorph, type DockMorphOrientation, type UseDockOrientationMorphOptions, type UseDockOrientationMorphReturn, } from "./useDockOrientationMorph";
14
+ export { useDockFission, DOCK_SPLIT_SIGNATURES, type DockSplitContext, type DockSplitVector, type DockSplitSquishPeak, type DockSplitSignature, type DockFissionPieceRegistration, type DockFissionPieceHandle, type UseDockFissionOptions, type UseDockFissionReturn, } from "./useDockFission";
@@ -0,0 +1,45 @@
1
+ /** The signed shortest-arc offset on a wrap ring (the "negative-infinity modulus" — a
2
+ * naive `raw % N` breaks the backward wrap). Wraps to `[-N/2, N/2)`. */
3
+ export declare function ringOffset(raw: number, n: number): number;
4
+ /** The φ-tiered slot SPAN to a given absolute slot-distance — the chosen→neighbour gap
5
+ * is wider than the neighbour→far gap (the recession compresses as items recede, the
6
+ * depth read). The tier ratio is EXPRESSED in the accumulation, never a flat resolved
7
+ * rebake (the W-CARD-PAD φ-ladder fence). */
8
+ export declare function tieredSpan(adist: number, base: number, ratio: number): number;
9
+ /** The geometry knobs for the facet carousel — the φ-tier spacing + the fade model. */
10
+ export interface RailProjectionGeometry {
11
+ /** The active→neighbour base slot gap, in px (the tier-0 spacing). Default 44. */
12
+ slotSpacing?: number;
13
+ /** The φ tier ratio — each receding tier compresses by this. Default 1.618. */
14
+ tierRatio?: number;
15
+ /** The slot-distance at which the fade begins (active + immediate neighbour stay
16
+ * full). Default 0.5. */
17
+ fadeStart?: number;
18
+ /** The slot-span the fade runs over. Default 2.5. */
19
+ fadeRange?: number;
20
+ /** The far floor alpha. Default 0. */
21
+ fadeMinAlpha?: number;
22
+ /** The per-slot scale recession (the depth read). Default 0.06. */
23
+ scaleStep?: number;
24
+ /** The max slots the scale recession clamps at. Default 4. */
25
+ scaleClampSlots?: number;
26
+ }
27
+ /** One projected facet — the compositor-only transform tier for the ring item. */
28
+ export interface RailFacetProjection {
29
+ /** The stable ring index `0..count-1` (the `v-for` key). */
30
+ index: number;
31
+ /** The signed shortest-arc slot offset from the active facet. */
32
+ offset: number;
33
+ /** The px translate along the rail's main axis. */
34
+ translate: number;
35
+ /** The faded alpha (0..1). */
36
+ opacity: number;
37
+ /** The recession scale (≤1). */
38
+ scale: number;
39
+ /** Whether this is the active facet (offset 0). */
40
+ active: boolean;
41
+ }
42
+ /** Project the facet ring around the `active` index, fanned by `expand` (0 collapsed → 1
43
+ * fully fanned). Returns the virtualized WINDOW of `±ceil(fadeRange+1)` items, each with
44
+ * its compositor-only `{ translate, opacity, scale }`. PURE — no state, no measure. */
45
+ export declare function projectFacets(count: number, active: number, expand: number, geometry?: RailProjectionGeometry): RailFacetProjection[];
@@ -0,0 +1,192 @@
1
+ import { type MorphRect } from "@mkbabb/keyframes.js";
2
+ import { type Ref } from "vue";
3
+ import { type SpringPresetName } from "../../../../composables/motion/springPresets";
4
+ /** The dock orientation axis (the `dim`-idiom source — slot geometry derives from it). */
5
+ export type SilhouetteOrientation = "horizontal" | "vertical";
6
+ /** The four named silhouette kinds (the descriptor map's contract). */
7
+ export type DockSilhouetteKind = "bar" | "bar+pill" | "split" | "search";
8
+ /**
9
+ * The silhouette spring register — a subset of the named `SPRING_PRESETS` rows matching
10
+ * the `useDockCtaReceive`/`useLiquidReveal` register so every dock morph reads as ONE
11
+ * spring family. `dock` is the default (the dock's own settle clock).
12
+ */
13
+ export type SilhouettePreset = Extract<SpringPresetName, "dock" | "snappy" | "bouncy">;
14
+ /**
15
+ * One named SLOT inside a silhouette — a position keyed by `controlId`. The geometry is
16
+ * ORIENTATION-DERIVED: `main` is the offset along the dock's main axis (the row position
17
+ * horizontal / the column position vertical), `cross` the cross-axis offset, `size` the
18
+ * control's extent. The orchestrator resolves these into a concrete `MorphRect` off the
19
+ * orientation + the dock's measured origin (the `dim`-idiom — never a hardcoded
20
+ * `inline-size`/`block-size` literal, so vertical is the SAME data with `orientation`
21
+ * flipped).
22
+ */
23
+ export interface SilhouetteSlot {
24
+ /** The control this slot positions (the diff key — present-in-both → FLIP). */
25
+ controlId: string;
26
+ /** Offset along the dock's MAIN axis (px from the dock origin). */
27
+ main: number;
28
+ /** Offset along the CROSS axis (px from the dock origin). */
29
+ cross: number;
30
+ /** The control's main-axis extent (px). */
31
+ size: number;
32
+ /** The control's cross-axis extent (px; defaults to `size` for a square control). */
33
+ thickness?: number;
34
+ /**
35
+ * FUSION marker (the `bar+pill` headline): when true, this slot's `to`-rect is the
36
+ * bar's TOP CROWN and the orchestrator drives `--silhouette-fuse-t` so the slotted
37
+ * control (the now-playing pill) DOCKS DOWN and MELDS into the bar as ONE plate. A
38
+ * `bar+pill` descriptor with NO `fuse: true` slot is a pill-ABOVE-bar literal (the
39
+ * C3 anti-evasion — the gate reds it).
40
+ */
41
+ fuse?: boolean;
42
+ }
43
+ /**
44
+ * One declarative silhouette descriptor — a context's whole geometry as DATA (the
45
+ * `DockSectionDescriptor` precedent: data, not code paths). The orchestrator reads the
46
+ * MAP; there is NO per-context hardcoded silhouette literal (the gate's C1 anti-evasion
47
+ * floor).
48
+ */
49
+ export interface DockSilhouetteDescriptor {
50
+ /** Stable identifier — the `setSilhouette` argument + the active-silhouette id. */
51
+ id: string;
52
+ /** Which of the four named kinds this context renders. */
53
+ kind: DockSilhouetteKind;
54
+ /** The named slots (control positions) this silhouette places. */
55
+ slots: readonly SilhouetteSlot[];
56
+ /** This silhouette's spring register (DATA, not an SFC ternary). Default `dock`. */
57
+ preset?: SilhouettePreset;
58
+ /**
59
+ * The neck-hold for any DETACH this transition drives (DATA — fed to `useDockFission`
60
+ * when a control is present-in-from-only). 0 = no hold (immediate release), 1 = full
61
+ * hold (the goo necks late then snaps).
62
+ */
63
+ neckHold?: number;
64
+ }
65
+ /**
66
+ * The DETACH hand-off API the orchestrator drives (BE.W-DOCK-FISSION owns the engine).
67
+ * A control PRESENT-only-in-FROM detaches — the orchestrator registers it as a fission
68
+ * PIECE via `registerPiece` and the fission orchestrator buds it off the body. Defined
69
+ * here per the fission spec (`useDockFission` `registerPiece`); the sibling agent builds
70
+ * it, the orchestrator reconciles the import. The orchestrator never re-implements the
71
+ * detach physics — it CALLS this.
72
+ */
73
+ export interface FissionPieceHandle {
74
+ /** Release the piece (drive its `--dock-split-t` 0→1 detach). */
75
+ detach: () => void;
76
+ /** Re-merge the piece (the bidirectional 1→0). */
77
+ remerge: () => void;
78
+ /** Unregister the piece (cleanup). */
79
+ release: () => void;
80
+ }
81
+ /** The fission registrar the orchestrator composes (BE.W-DOCK-FISSION's `registerPiece`). */
82
+ export type RegisterFissionPiece = (el: HTMLElement, spec: {
83
+ vector: {
84
+ dx: number;
85
+ dy: number;
86
+ };
87
+ rank: number;
88
+ neckHold: number;
89
+ }) => FissionPieceHandle;
90
+ /**
91
+ * The BLOOM-IN hand-off API the orchestrator drives (BE.W-BLOOM-UP owns the engine). A
92
+ * control PRESENT-only-in-TO blooms in — the inverse FLIP. Defined here per the bloom-up
93
+ * spec (`useBloomUp(sourceRef, destRef)`); the orchestrator CALLS it, never re-implements
94
+ * the bloom.
95
+ */
96
+ export type BloomInPiece = (el: HTMLElement, fromRect: MorphRect, toRect: MorphRect) => void;
97
+ export interface UseDockContextSilhouetteOptions {
98
+ /** The declarative silhouette descriptor MAP (the four kinds; net-new DATA). */
99
+ silhouettes: readonly DockSilhouetteDescriptor[];
100
+ /** The id of the silhouette to seat at construction (defaults to the first). */
101
+ initial?: string;
102
+ /** The dock orientation (the `dim`-idiom source). Default `horizontal`. */
103
+ orientation?: SilhouetteOrientation | Ref<SilhouetteOrientation>;
104
+ /**
105
+ * Resolve a control's live element by `controlId` (the orchestrator measures its
106
+ * current rect for the FLIP). The consumer wires this off its slot refs.
107
+ */
108
+ resolveControl: (controlId: string) => HTMLElement | null;
109
+ /**
110
+ * The dock ROOT element — the orchestrator measures its origin (to resolve a slot's
111
+ * orientation-derived `main`/`cross` into a viewport `MorphRect`) AND writes
112
+ * `--silhouette-fuse-t` onto it for the fusion meld. The fused glass plate is the
113
+ * dock body itself (C5 — the detach pieces paint in the non-clipping frame; the fused
114
+ * plate is the dock root).
115
+ */
116
+ dockRoot: Ref<HTMLElement | null>;
117
+ /**
118
+ * The DETACH registrar (BE.W-DOCK-FISSION's `registerPiece`). When absent, a
119
+ * present-in-from-only control is simply removed from the FLIP set (no detach
120
+ * choreography — graceful until fission wires in).
121
+ */
122
+ registerFissionPiece?: RegisterFissionPiece;
123
+ /**
124
+ * The BLOOM-IN driver (BE.W-BLOOM-UP). When absent, a present-in-to-only control
125
+ * snaps in (no bloom choreography — graceful until bloom-up wires in).
126
+ */
127
+ bloomInPiece?: BloomInPiece;
128
+ /** Honor `prefers-reduced-motion: reduce` (seat synchronously). Default true. */
129
+ respectReducedMotion?: boolean;
130
+ /** Fired once when a silhouette transition has settled (the consumer hand-off). */
131
+ onSettled?: (toId: string) => void;
132
+ }
133
+ export interface UseDockContextSilhouetteReturn {
134
+ /** The active silhouette id (reactive — the consumer reads the SHAPE). */
135
+ active: Readonly<Ref<string>>;
136
+ /** The active descriptor (reactive). */
137
+ activeDescriptor: Readonly<Ref<DockSilhouetteDescriptor | null>>;
138
+ /** Whether a transition is in flight (the consumer guards re-entrancy / `[data-morphing]`). */
139
+ transitioning: Readonly<Ref<boolean>>;
140
+ /**
141
+ * Transition to the silhouette `toId` — DIFFs the slots by `controlId`, FLIPs the
142
+ * survivors, detaches the from-only, blooms in the to-only, and drives the fusion
143
+ * meld for a `bar+pill` target. A no-op if `toId` is unknown or already active.
144
+ */
145
+ setSilhouette: (toId: string) => void;
146
+ }
147
+ /**
148
+ * The declarative context→silhouette state machine. Reads a `DockSilhouetteDescriptor[]`
149
+ * MAP; on `setSilhouette` it DIFFs the slots by `controlId` and FLIPs/detaches/blooms via
150
+ * the SHIPPED `ElementMorph` + `springTimingFunction` substrate, ONE `DOCK_SPRING`. The
151
+ * `bar+pill` fusion docks the pill into the bar via `--silhouette-fuse-t`. Compositor-only
152
+ * + PRM-seats. See the module header for the REUSE + the orientation-derived slots + the
153
+ * fusion mechanism.
154
+ *
155
+ * @example
156
+ * ```ts
157
+ * const sil = useDockContextSilhouette({
158
+ * silhouettes: [
159
+ * { id: "nav", kind: "bar", slots: [...] },
160
+ * { id: "media", kind: "bar+pill", slots: [{ controlId: "pill", main: 0, cross: -56, size: 240, fuse: true }, ...] },
161
+ * ],
162
+ * orientation,
163
+ * dockRoot,
164
+ * resolveControl: (id) => slotRefs.value[id] ?? null,
165
+ * })
166
+ * sil.setSilhouette("media") // the pill DOCKS DOWN + MELDS into the bar
167
+ * ```
168
+ */
169
+ export declare function useDockContextSilhouette(options: UseDockContextSilhouetteOptions): UseDockContextSilhouetteReturn;
170
+ /**
171
+ * Compute a detached control's DIRECTION-VECTOR off its slot + the orientation (the
172
+ * fission `vector` — the `dim`-idiom). A control peels along the CROSS axis (the
173
+ * `stack-rail.css` gutter direction the fission media=lateral signature reuses): the sign
174
+ * of `cross` chooses the side, the orientation chooses the axis. This is PURE (exported
175
+ * for the unit test — the slot-diff vector logic is testable without a DOM).
176
+ */
177
+ export declare function detachVector(slot: SilhouetteSlot, orientation: SilhouetteOrientation): {
178
+ dx: number;
179
+ dy: number;
180
+ };
181
+ /**
182
+ * PURE slot-diff — exported for the unit test (the diff logic is testable without a DOM).
183
+ * Classifies each controlId across the from/to slot sets: `survivors` (present-in-both →
184
+ * FLIP), `bloomIns` (to-only → BLOOM), `detaches` (from-only → DETACH). This is the
185
+ * load-bearing classification `setSilhouette` runs; testing it directly proves the
186
+ * descriptor-driven state machine is correct without a browser.
187
+ */
188
+ export declare function diffSilhouetteSlots(from: readonly SilhouetteSlot[], to: readonly SilhouetteSlot[]): {
189
+ survivors: string[];
190
+ bloomIns: string[];
191
+ detaches: string[];
192
+ };