@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,158 @@
1
+ import { type Ref } from "vue";
2
+ /** The three named fission CONTEXTS — each maps to a goo signature (F3). */
3
+ export type DockSplitContext = "search" | "media" | "nav";
4
+ /** The detach vector family a context selects. */
5
+ export type DockSplitVector = "radial" | "lateral" | "inward-merge";
6
+ /**
7
+ * BD.W-DOCK-CORE (II.2 — F-1 the headline fix). The placement axis the detached
8
+ * pieces TRAVEL ALONG to form the sibling island dock. The prior build let each
9
+ * piece scatter on its own radial center → it read as inline jitter inside the one
10
+ * pill, NOT a detach. A single COHERENT placement vector flies the whole piece
11
+ * cluster off the source plate so a second dock visibly materializes beside/above/
12
+ * below (the iOS-27 split read).
13
+ */
14
+ export type DockSplitPlacement = "beside" | "above" | "below";
15
+ /** The unit placement vector each `splitPlacement` flies the cluster along. */
16
+ export declare const PLACEMENT_VECTOR: Readonly<Record<DockSplitPlacement, {
17
+ dx: number;
18
+ dy: number;
19
+ }>>;
20
+ /** The squish-peak register — WHEN the `useLiquidFlex` swell peaks in the travel. */
21
+ export type DockSplitSquishPeak = "late" | "long" | "coalesce";
22
+ /**
23
+ * The per-context goo-SIGNATURE descriptor (F3 — the FLOOR, DATA not three code paths).
24
+ * The orchestrator reads this to compute each piece's vector + stagger + neck phase; the
25
+ * ONE `fission-bridge.css` recipe paints whatever the pieces carry.
26
+ */
27
+ export interface DockSplitSignature {
28
+ /** The context this signature serves. */
29
+ context: DockSplitContext;
30
+ /** The detach-vector family. */
31
+ vector: DockSplitVector;
32
+ /**
33
+ * How long the goo neck HOLDS before it snaps (0..1 of `--split-t`). High = the
34
+ * tense radial pop (neck holds to ~0.55 then snaps); the neck-break offset.
35
+ */
36
+ neckHold: number;
37
+ /**
38
+ * The per-piece stagger-rank resolver — returns piece `i`'s ordinal in the break
39
+ * SEQUENCE (innermost-first for radial, outside-in for lateral). The orchestrator
40
+ * phase-shifts each piece's `--neck-t` by `staggerStep * rank` so the N necks break
41
+ * in sequence, never simultaneously (the `--split-stagger * rank(i)` idiom).
42
+ */
43
+ staggerRank: (i: number, count: number) => number;
44
+ /** WHEN the `useLiquidFlex` squish swell peaks across the travel. */
45
+ squishPeak: DockSplitSquishPeak;
46
+ }
47
+ /** The canonical per-context signature MAP (F3 — search/media/nav, descriptor-driven). */
48
+ export declare const DOCK_SPLIT_SIGNATURES: Readonly<Record<DockSplitContext, DockSplitSignature>>;
49
+ /** The per-piece DIRECTION-VECTOR + rank a control registers (the MorphTarget twin). */
50
+ export interface DockFissionPieceRegistration {
51
+ /** The detaching control element (its `--split-*`/`--neck-t` vars are written here). */
52
+ el: Ref<HTMLElement | null>;
53
+ /**
54
+ * The detach DIRECTION as a unit-ish vector in dock-local space (the bloom/peel
55
+ * direction). `radial` blooms `(cx_i − cx_dock)`-ward; `lateral` peels cross-axis;
56
+ * `inward-merge` is the negative radial. May be a getter so a live re-measure
57
+ * (the FLIP-measured center) re-resolves per read.
58
+ */
59
+ vector: {
60
+ dx: number;
61
+ dy: number;
62
+ } | (() => {
63
+ dx: number;
64
+ dy: number;
65
+ });
66
+ /**
67
+ * The piece's ordinal in the registration order (the `--i` the bridge reads + the
68
+ * input to the signature's `staggerRank`). Stable per piece.
69
+ */
70
+ rank: number;
71
+ }
72
+ /** The handle a registered piece holds (detach on unmount). */
73
+ export interface DockFissionPieceHandle {
74
+ /** Detach this piece from the orchestrator (on the control's unmount). */
75
+ release(): void;
76
+ }
77
+ export interface UseDockFissionOptions {
78
+ /** The `.glass-dock` root (or the fission scope) the shared `--dock-split-t` writes to. */
79
+ rootEl: Ref<HTMLElement | null>;
80
+ /**
81
+ * The active signature (the context the dock is fissioning under). A `Ref` so a
82
+ * consumer can swap contexts; the orchestrator reads `.value` at split time.
83
+ */
84
+ signature: Ref<DockSplitSignature>;
85
+ /**
86
+ * BD.W-DOCK-CORE (II.2 — F-1). The placement the detached pieces fly to form the
87
+ * sibling island. A `Ref` so a consumer can swap placement. The orchestrator writes
88
+ * the per-piece travel along this ONE coherent vector (not per-piece radial scatter)
89
+ * so the cluster reads as a real detach into a second dock beside/above/below.
90
+ * Defaults to `"beside"`.
91
+ */
92
+ placement?: Ref<DockSplitPlacement>;
93
+ /**
94
+ * The LOW squish cap the `useLiquidFlex` recoil saturates at (≤1.08 — the anti-taffy
95
+ * fence). May be a getter so a live `--*-max-stretch` cascade override re-resolves.
96
+ * Defaults to 1.08 (the `useLiquidFlex` register).
97
+ */
98
+ maxStretch?: number | (() => number);
99
+ /**
100
+ * The seam-tension cap (F4 — kept LOW ≈0.12, the `useLiquidFlex` maxStretch
101
+ * register). A fast pull THINS the neck via the existing `clip-path` channel up to
102
+ * this cap, saturating — never a taffy-pull.
103
+ */
104
+ seamTensionCap?: number;
105
+ /**
106
+ * The seam-tension velocity gain `k` — `--seam-tension = clamp(0, speed·k, cap)`.
107
+ * Defaults to 0.6 (a calm gain over the normalized-host velocity).
108
+ */
109
+ seamTensionGain?: number;
110
+ /**
111
+ * The per-rank stagger STEP — the `--neck-t` phase shift per stagger-rank so the N
112
+ * necks break in sequence (the `--split-stagger * rank` idiom). Defaults to 0.08.
113
+ */
114
+ staggerStep?: number;
115
+ /** Honor `prefers-reduced-motion: reduce` → instant sync-seat (F5). Default true. */
116
+ respectReducedMotion?: boolean;
117
+ }
118
+ export interface UseDockFissionReturn {
119
+ /** The live split scalar (0 rest → 1 fissioned), the last value the spring wrote. */
120
+ readonly t: Readonly<Ref<number>>;
121
+ /** True while the dock is fissioned (or mid-fission past the threshold). */
122
+ readonly fissioned: Readonly<Ref<boolean>>;
123
+ /**
124
+ * Register a surviving control as a fission PIECE (the `Set<MorphTarget>` pattern).
125
+ * The piece carries its DIRECTION-VECTOR + rank; the orchestrator writes its
126
+ * `--split-dx`/`--split-dy`/`--i`/`--neck-t` off the active signature.
127
+ */
128
+ registerPiece(reg: DockFissionPieceRegistration): DockFissionPieceHandle;
129
+ /** SPLIT — run the scalar 0→1 (carve the pill into the N pieces). */
130
+ split(): void;
131
+ /** RE-MERGE — run the scalar 1→0 (the SAME loop, target flipped — F2 bidirectional). */
132
+ merge(): void;
133
+ /** Toggle split↔merge from the current state. */
134
+ toggle(): void;
135
+ /**
136
+ * The `@pointermove` handler the consumer binds on the dock host — feeds the raw
137
+ * pointer to the velocity field (the field is ticked from INSIDE the driver loop).
138
+ * PRM-gated by the field itself.
139
+ */
140
+ onPointerMove(event: PointerEvent): void;
141
+ /** Tear down the spring + the field listener (auto-run on scope dispose). */
142
+ dispose(): void;
143
+ }
144
+ /**
145
+ * The n-ary detach orchestrator. ONE `SpringProgress` on `DOCK_SPRING` writing
146
+ * `--dock-split-t` + per-piece `--split-dx`/`--split-dy`/`--i`/`--neck-t` off the active
147
+ * `DockSplitSignature`, the snap-recoil on `useLiquidFlex`, the seam-tension on
148
+ * `usePointerVelocityField` (fed from inside the ONE loop), PRM sync-seated. See the
149
+ * module header for the load-bearing-reuse + box-inviolate rationale.
150
+ *
151
+ * @example
152
+ * ```ts
153
+ * const fission = useDockFission({ rootEl, signature })
154
+ * const h = fission.registerPiece({ el: searchIconRef, vector: { dx: -1, dy: 0 }, rank: 0 })
155
+ * fission.split() // the pill carves into the pieces along the signature
156
+ * ```
157
+ */
158
+ export declare function useDockFission(options: UseDockFissionOptions): UseDockFissionReturn;
@@ -0,0 +1,18 @@
1
+ import { type Ref } from "vue";
2
+ export interface UseDockItemDragParams {
3
+ /** The dock root element (the items live in its active layer). */
4
+ rootEl: Ref<HTMLElement | null>;
5
+ /** Whether the axis is armed (the `:draggable-items` prop). May be a getter. */
6
+ enabled: () => boolean;
7
+ /** The morph axis (`"x"` horizontal · `"y"` vertical). A getter (orientation flips). */
8
+ axis: () => "x" | "y";
9
+ /** Fired once on settle with the committed (from, to) item indices. */
10
+ onReorder?: (from: number, to: number) => void;
11
+ }
12
+ export interface UseDockItemDragReturn {
13
+ /** True while a dock item is being dragged. */
14
+ dragging: Readonly<Ref<boolean>>;
15
+ /** Tear down the gesture + listeners. */
16
+ detach: () => void;
17
+ }
18
+ export declare function useDockItemDrag(params: UseDockItemDragParams): UseDockItemDragReturn;
@@ -0,0 +1,85 @@
1
+ import { type MaybeRefOrGetter, type Ref } from "vue";
2
+ import type { UseDockStateReturn } from "./useDockState";
3
+ import { type FuzzySearchState, type SearchableItem, type SearchResult } from "../../search/composables";
4
+ import { type UseScrollChromeReturn } from "../../../../composables/motion/useScrollChrome";
5
+ export interface UseDockSearchOptions<T extends SearchableItem = SearchableItem> {
6
+ /** Composes the existing dock state machine (no fork) — `armSearch`/`disarmSearch`
7
+ ride its `onClickCollapsed`/`keepOpen`/`release`. */
8
+ dockState: UseDockStateReturn;
9
+ /**
10
+ * The search items (sync) — a static array or a getter. Drives the composed
11
+ * `useFuzzySearch` matcher. MUTUALLY EXCLUSIVE with `onSearch` (sync XOR async).
12
+ */
13
+ items?: T[] | (() => T[]);
14
+ /**
15
+ * The pluggable async data source (the words network case). The consumer owns the
16
+ * abort/network race-guard; the dock owns the gesture/shrink/dropdown. When set, the
17
+ * dock awaits the source on each query, cancelling the prior request's
18
+ * `AbortController` (the generic thin abort). MUTUALLY EXCLUSIVE with `items`.
19
+ */
20
+ onSearch?: (query: string, signal: AbortSignal) => Promise<T[]>;
21
+ /** Debounce delay in ms forwarded to the matcher / the async source. Default 120. */
22
+ debounceMs?: number;
23
+ /** Maximum results forwarded to the matcher. Default 30. */
24
+ maxResults?: number;
25
+ /**
26
+ * Opt-in collapse-on-scroll — composes `useScrollChrome` (persistent-default, the
27
+ * iOS-27 lesson). DEFAULT FALSE: the dock is PERSISTENT; the morph fires on user
28
+ * intent (tap/focus), never a passive scroll. When true the chrome shrinks+fades on
29
+ * scroll-down + expands on scroll-up (the transform-only `--chrome-collapse-t` ramp).
30
+ */
31
+ collapseOnScroll?: boolean;
32
+ /** The scroll source for the optional collapse-on-scroll (a container or window). */
33
+ scrollContainer?: MaybeRefOrGetter<HTMLElement | Window | null>;
34
+ /** The dock element the collapse-on-scroll writes `--chrome-collapse-t` onto. */
35
+ chromeRef?: MaybeRefOrGetter<HTMLElement | null>;
36
+ /**
37
+ * Result-select hook — wires the ToC subsume: `ensureTargetWindow(id)` (warm the
38
+ * window so the target renders) + `scrollTo(id)` (the rAF-retry scroll-to-and-land).
39
+ * The dock owns the gesture; the consumer passes the two leaves' bound functions.
40
+ */
41
+ onResultSelect?: (result: SearchResult<T>) => void;
42
+ /**
43
+ * The virtual-window warm step (composed `useVirtualSectionWindow.ensureTargetWindow`).
44
+ * Called BEFORE `scrollTo` on a result-select so the windowed target is rendered.
45
+ */
46
+ ensureTargetWindow?: (id: string) => void;
47
+ /**
48
+ * The ToC scroll-to (composed `useScrollTo.scrollTo`) — the rAF-retry scroll-to-id.
49
+ * Called AFTER the warm step on a result-select.
50
+ */
51
+ scrollTo?: (id: string) => void;
52
+ }
53
+ export interface UseDockSearchReturn<T extends SearchableItem = SearchableItem> {
54
+ /** The composed `useFuzzySearch` handle (query/results/selectedIndex/onKeydown/…). */
55
+ fuzzy: FuzzySearchState<T>;
56
+ /** The ghost-text top-match completion (the unmatched suffix of `results[0].label`). */
57
+ autocompleteText: Ref<string>;
58
+ /** The optional collapse-on-scroll machine (null when `collapseOnScroll` is false). */
59
+ scrollChrome: UseScrollChromeReturn | null;
60
+ /** Tap/focus → expand + hold (composes `onClickCollapsed` + `keepOpen`). */
61
+ armSearch: () => void;
62
+ /** Close → release the hold (composes `release`) + close the fuzzy surface. */
63
+ disarmSearch: () => void;
64
+ /** Tab/Space/ArrowRight → fill the ghost-text into the query. */
65
+ acceptAutocomplete: () => void;
66
+ /** True while the search field is the armed/morphed surface. */
67
+ isSearchArmed: Ref<boolean>;
68
+ }
69
+ /**
70
+ * The dock-search seam — composes `useDockState` + `useFuzzySearch` (+ optional
71
+ * `useScrollChrome`); the `armSearch`/`disarmSearch`/`autocompleteText`/
72
+ * `acceptAutocomplete` surface; the async `onSearch` adapter; the `onResultSelect` →
73
+ * `ensureTargetWindow` + `scrollTo` wire. Does NOT edit the morph engine
74
+ * (`dockMorphContext`/`DOCK_SPRING` byte-untouched — the box-inviolate fence); the
75
+ * pill→field morph is the dock's OWN `--dock-morph-t` glide + the `morph-bridge.css`
76
+ * metaball.
77
+ *
78
+ * @example
79
+ * ```ts
80
+ * const dockState = useDockState({ rootEl });
81
+ * const search = useDockSearch({ dockState, items: () => sections.value });
82
+ * // armSearch() on tap → the pill morphs into the field; type → fuzzy dropdown ranks.
83
+ * ```
84
+ */
85
+ export declare function useDockSearch<T extends SearchableItem = SearchableItem>(options: UseDockSearchOptions<T>): UseDockSearchReturn<T>;
@@ -143,6 +143,55 @@ export interface DockProps {
143
143
  * case); absent, it stack-walks the painted page background (the static case).
144
144
  */
145
145
  backgroundCanvas?: HTMLCanvasElement | (() => HTMLCanvasElement | null) | string | null;
146
+ /**
147
+ * BC.W-DOCK-SEARCH — the dock-as-native-dynamic-search-bar MODE (additive,
148
+ * default `false`). When true the dock stamps `[data-search]` (the CSS hook the
149
+ * `dock/search.css` active-field tint seam + the `.glass-menu-row` result rows
150
+ * target) and renders the `#search` slot INSIDE the existing morph aperture — the
151
+ * consumer composes `useDockSearch` (the gesture/shrink/dropdown seam) and slots
152
+ * its search field + fuzzy dropdown there. The pill→field morph is the dock's OWN
153
+ * `--dock-morph-t` glide (box-inviolate — no second engine). A non-search dock is
154
+ * byte-identical to HEAD (the slot + the data-attr are present only when authored).
155
+ */
156
+ search?: boolean;
157
+ /**
158
+ * BD.W-DOCK-CORE (A13 / II.2) — arm the SHIPPED fission seam (additive, default
159
+ * `false`). When true the dock composes `useDockFission` (the n-ary detach
160
+ * orchestrator on the SAME `DOCK_SPRING` clock, BESIDE the morph engine — box-
161
+ * INVIOLATE, never editing `dockMorphContext`), auto-registers every child marked
162
+ * `data-dock-splittable` as a fission PIECE (its detach vector derived from its
163
+ * FLIP-measured center relative to the dock center), feeds the seam-tension on
164
+ * `@pointermove`, and exposes `split()`/`merge()`/`toggle()` via `defineExpose`. A
165
+ * non-splittable dock is byte-identical to HEAD. The ONE `<GooFilter>` mount must be mounted
166
+ * once at the app root (the goo `<filter>` the necks reference).
167
+ */
168
+ splittable?: boolean;
169
+ /**
170
+ * BD.W-DOCK-CORE (A13) — the fission CONTEXT (the `DOCK_SPLIT_SIGNATURES` row): the
171
+ * detach-vector family + neck stagger. `"nav"` (default) is inward-merge; `"search"`
172
+ * is a radial bloom; `"media"` is a lateral peel.
173
+ */
174
+ splitContext?: "search" | "media" | "nav";
175
+ /**
176
+ * BD.W-DOCK-CORE (A13) — where the detached sibling dock lands (reads the split
177
+ * vector). `"beside"` (default) is the radial/lateral lateral landing; `"above"`/
178
+ * `"below"` are the V-axis landings.
179
+ */
180
+ splitPlacement?: "beside" | "above" | "below";
181
+ /**
182
+ * BD.W-DOCK-CORE (A12) — arm the draggable-ITEMS axis (additive, default `false`).
183
+ * When true every child marked `data-dock-draggable` (or, lacking marks, every
184
+ * `.dock-icon-button` in the active layer) becomes GRABBABLE: a pointer-capture grab
185
+ * lets the user pull a dock item and the gesture follows ~1:1 with a volume-preserving
186
+ * gel-squish (the SHIPPED `useDragMorph` composing kf `Draggable` + `useLiquidFlex`
187
+ * "tanh" velocity-squish — NO second drag engine), then flings velocity-continuously to
188
+ * the nearest slot, committing a REORDER via `update:order`. Compositor-only
189
+ * (`transform: translate` — never a layout property); PRM-safe (the gesture still
190
+ * functions, the squish off, the release an instant nearest-snap); the roving-tabindex
191
+ * keyboard contract on the dock controls is preserved (a draggable strip that is
192
+ * keyboard-dead is the worse failure). A non-draggable dock is byte-identical to HEAD.
193
+ */
194
+ draggableItems?: boolean;
146
195
  }
147
196
  /** The resolved shell-prop computeds the GlassDock SFC binds. */
148
197
  export interface DockShellProps {
@@ -1,18 +1,33 @@
1
1
  import type { Component } from "vue";
2
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.
3
+ * BC.W-DOCK-STACK-RAIL — one `<DockStack>` member descriptor: a stack member that fans
4
+ * OUT of the macOS hover-expand stack (id + label + glyph + optional select handler).
5
+ * A `<script setup>` SFC cannot re-export a named type through the `export { default }`
6
+ * barrel, so the descriptor lives here (the colocated types home) and the SFC imports
7
+ * it; the barrel re-exports it for consumers typing their `items` array. This is the
8
+ * stack's MEMBER, not a facet chip — the divider-carousel `DockRailItem` is RETIRED
9
+ * (clean break, no alias).
8
10
  */
9
- export interface DockRailItem {
10
- /** The context id this chip selects (written to `v-model:context`). */
11
+ export interface DockStackItem {
12
+ /** Stable identifier — the `v-for` key + the selected-member id. */
11
13
  id: string;
12
- /** The chip label. */
14
+ /** The member's accessible label (the `aria-label` + tooltip). */
13
15
  label: string;
14
- /** The chip glyph (a `@lucide/vue` icon or any component). */
16
+ /** The member glyph (a `@lucide/vue` icon or any component). */
15
17
  icon?: Component;
18
+ /** Optional per-member select handler (fired alongside the model write). */
19
+ onSelect?: () => void;
20
+ /**
21
+ * BE.W-DOCK-RAIL-REALIZE — the per-FACET accent hue (the `mode="facets"` context
22
+ * carousel only — IGNORED by the macOS `mode="stack"` glyph fan). A complete
23
+ * `<color>` (a consumer DATA/context hue) written to the chip's `--glass-accent`
24
+ * (the BB.W-GLASS-ACCENT per-instance chromatic-rim axis, `rim.css`/`material.css`),
25
+ * so each context facet carries its OWN rim+glint hue — the AZ context-carousel
26
+ * identity. Unset ⇒ the neutral warm-cream rim (the `--glass-accent: transparent`
27
+ * no-op floor). NOT a plate-background fill (the accent rides the THIN rim/glint;
28
+ * presets-in-consumers — no consumer hue enters a library token).
29
+ */
30
+ accent?: string;
16
31
  }
17
32
  /**
18
33
  * BA.W-DOCK-SECTIONS — the three named zone kinds the declarative `<DockSection>`
@@ -42,12 +57,12 @@ export interface DockSectionDescriptor {
42
57
  /** Optional accessible label for the grouped zone. */
43
58
  label?: string;
44
59
  /**
45
- * For a `section` kind: the contextual facets this section carries. When present
46
- * (length > 1) the section's facets are the rail's chips (the W-RAIL3 move OUT of
47
- * the dock body — the facets ride the seam rail, never re-inflate the box). The
48
- * descriptor names them; `<DockRail :items>` renders them.
60
+ * For a `section` kind: the stack members this section carries. When present
61
+ * (length > 1) the members ride the dock's `#rail` stack (the macOS hover-expand
62
+ * stack, OUTSIDE the dock box — never re-inflating it). The descriptor names them;
63
+ * `<DockStack :items>` fans them out.
49
64
  */
50
- layers?: readonly DockRailItem[];
65
+ layers?: readonly DockStackItem[];
51
66
  }
52
67
  /**
53
68
  * The ONE dock-morph spring authority — the iOS-26 interruptible-physics tuning the
@@ -57,8 +72,8 @@ export interface DockSectionDescriptor {
57
72
  * prior copies were a DRY hazard — a re-tune had to touch both).
58
73
  */
59
74
  export declare const DOCK_SPRING: {
60
- readonly response: 0.32;
61
- readonly dampingFraction: 0.7;
75
+ readonly response: number;
76
+ readonly dampingFraction: number;
62
77
  };
63
78
  /**
64
79
  * The CSS properties whose `transitionend` the dock-morph window watches to know a
@@ -80,4 +95,4 @@ export declare const DOCK_MORPH_LABEL = "glass-ui:dock-morph-context";
80
95
  * edge sweeping past the cursor, not a real exit. */
81
96
  export declare const HOVER_INTENT_MS = 60;
82
97
  export declare const EDGE_BAND_PX = 24;
83
- export declare const MORPH_SETTLE_MS = 320;
98
+ export declare const MORPH_SETTLE_MS = 840;
@@ -6,9 +6,10 @@ export { default as DockBackgroundToggle } from "./DockBackgroundToggle.vue";
6
6
  export { default as DockTabButton } from "./DockTabButton.vue";
7
7
  export { default as DockSelectTrigger } from "./DockSelectTrigger.vue";
8
8
  export { default as DockDropdownTrigger } from "./DockDropdownTrigger.vue";
9
+ export { default as DockPopoverTrigger } from "./DockPopoverTrigger.vue";
9
10
  export { default as DockSeparator } from "./DockSeparator.vue";
10
- export { default as DockRail } from "./DockRail.vue";
11
- export type { DockRailItem } from "./constants";
11
+ export { default as DockStack } from "./DockStack.vue";
12
+ export type { DockStackItem } from "./constants";
12
13
  export { default as DockSection } from "./DockSection.vue";
13
14
  export type { DockSectionDescriptor, DockSectionKind } from "./constants";
14
15
  export type { UseDockStateOptions, UseDockStateReturn, DockState } from "./composables";
@@ -16,3 +17,8 @@ export { useLayerTransition } from "./composables";
16
17
  export type { UseLayerTransitionOptions, UseLayerTransitionReturn, } from "./composables";
17
18
  export { DOCK_CONTEXT_KEY, useDockContext, useOptionalDockContext, provideDockContext, type DockContext, type DockOrientation, type DockLayout, } from "./composables/dockContext";
18
19
  export { useDockOrientationMorph, type DockMorphOrientation, type UseDockOrientationMorphOptions, type UseDockOrientationMorphReturn, } from "./composables/useDockOrientationMorph";
20
+ export { useDockCtaReceive, type UseDockCtaReceiveOptions, type UseDockCtaReceiveReturn, type DockCtaReceivePreset, } from "../../../composables/motion/useDockCtaReceive";
21
+ export { useDockSearch } from "./composables";
22
+ export type { UseDockSearchOptions, UseDockSearchReturn } from "./composables";
23
+ export { GooFilter } from "../goo-filter";
24
+ export { useDockFission, DOCK_SPLIT_SIGNATURES, type DockSplitContext, type DockSplitVector, type DockSplitSquishPeak, type DockSplitSignature, type DockFissionPieceRegistration, type DockFissionPieceHandle, type UseDockFissionOptions, type UseDockFissionReturn, } from "./composables/useDockFission";
@@ -1,18 +1,22 @@
1
1
  import type { FlowFieldConfig } from "./constants";
2
2
  /**
3
- * DotFlowField — small dots seeded along undulating streamlines, rippling in waves.
3
+ * DotFlowField — a calm anchored dot-matrix a slow LARGE wave sweeps through
4
+ * (BC.W-VIZ-DOTFLOW retopology — NOT the BB free-advecting particle cloud).
4
5
  *
5
- * A curl-noise flow field traced by advected particles, where the scalar potential
6
- * undulates as a Gerstner/Tessendorf sum-of-sines water-wave field (the cited SOTA
7
- * math — `composables/flowField.ts`). WebGPU-FIRST: the compute pass advects N
8
- * particles through the analytic ∇⊥ψ velocity, the render pass draws instanced
9
- * billboard quads; a Canvas2D point-cloud fallback steps the SAME evaluator where
10
- * WebGPU is absent (the ~5-10% tail). It composes `useDotFlowField` → the
11
- * `createGpuSubstrate` picker over the ONE canvas lifecycle leaf (offscreen-pause,
12
- * live-PRM freeze, consumer-owned DPR) — it never bootstraps its own context.
6
+ * Each dot is anchored to a deterministic lattice cell and eases toward its sub-cell
7
+ * displacement target with a restoring spring (no advection, no re-seed); a broad
8
+ * bright iso-band sweeps the lattice, lighting the dots it passes — the low-frequency
9
+ * Gerstner/Tessendorf sum-of-sines height (`composables/flowField.ts`). WebGPU-FIRST:
10
+ * the compute pass pulls the lattice to its target, the render pass draws instanced
11
+ * billboard quads lit by the sweeping band; a pure WebGL2 FRAGMENT fallback evaluates
12
+ * the SAME field where WebGPU is absent (no Canvas2D — the §E "no canvas" mandate). It
13
+ * composes `useDotFlowField` → the `createGpuSubstrate` picker over the ONE canvas
14
+ * lifecycle leaf (offscreen-pause, live-PRM freeze, the shared pointer field) — it never
15
+ * bootstraps its own context.
13
16
  *
14
- * The DEFAULT palette is the warm-cream library identity; the reference teal-on-navy
15
- * is a DEMO preset (presets-in-consumers — never a library token).
17
+ * The DEFAULT palette is the warm-cream library identity; the mono-dim-on-near-black
18
+ * reference + the globe mask are DEMO presets (presets-in-consumers — never a library
19
+ * token). The teal-on-navy is GONE entirely (clean break).
16
20
  */
17
21
  type __VLS_Props = {
18
22
  /** The full author schema (the studio's `useConfiguratorState` model). */
@@ -29,13 +29,76 @@ export declare function curlFBM(p: Vec2): Vec2;
29
29
  /**
30
30
  * The COMPOSITE flow velocity v(p,t): the Gerstner sum-of-sines analytic ∇⊥h PLUS the
31
31
  * `curlStrength`-weighted fbm curl-noise braiding term. The SINGLE math source the WGSL
32
- * compute kernel transcribes; `proof:flow-field` clause 3 round-trips the two paths.
32
+ * compute kernel transcribes; `proof:viz-dotflow` clause F3 round-trips the two paths.
33
+ *
34
+ * RETOPOLOGY (BC.W-VIZ-DOTFLOW). The curl domain-scale dropped 1.7→0.55 (coarse braiding,
35
+ * not fine chatter) per the §3.2 regime inversion. The velocity is no longer an advection
36
+ * integrand (the lattice does not advect) — it is the DISPLACEMENT field's perp-gradient
37
+ * source. `sampleDisplacement` is the per-frame sub-cell offset; `sampleVelocity` stays as
38
+ * the round-trip anchor + the analytic ∇⊥h the displacement reads.
33
39
  */
34
40
  export declare function sampleVelocity(p: Vec2, timeSec: number, waves: readonly WaveComponent[], windSpeed: number, curlStrength: number): Vec2;
41
+ /** The cursor-vortex lever set (the √φ-laddered radius + the spin/drag/burst gains). */
42
+ export interface VortexParams {
43
+ cursor: Vec2;
44
+ /** Pointer velocity (domain units / sec). */
45
+ pointerVel: Vec2;
46
+ /** Flick-burst impulse 0..1. */
47
+ burst: number;
48
+ /** Pointer active? (inert when false — the vortex is off). */
49
+ active: boolean;
50
+ radius: number;
51
+ spin: number;
52
+ dragGain: number;
53
+ burstShove: number;
54
+ }
55
+ /**
56
+ * The velocity the cursor injects at `p` — the perturbation `cs_flow` adds to the curl
57
+ * current. A true tangential vortex (∇⊥ of the radial), plus a drag-along (the streamlines
58
+ * follow the gesture) and a radial flick shove (the shockwave), all gaussian-falling off the
59
+ * vortex radius. Returns the un-normalized perturbation in domain/sec.
60
+ */
61
+ export declare function pointerVortex(p: Vec2, v: VortexParams): Vec2;
62
+ /** The shipped domain half-extent (the lattice is laid out over [-half, half]²). */
63
+ export declare const FLOW_DOMAIN_HALF = 0.85;
64
+ /**
65
+ * The deterministic lattice origin for a particle index — the WGSL `instance_index →
66
+ * origin` mapping matches this EXACTLY (the F3 round-trip anchor). `cols` columns, square
67
+ * pitch in DOMAIN units; the grid is centered on the origin so the field reads symmetric.
68
+ * Index `i` walks row-major (`col = i % cols`, `row = floor(i / cols)`).
69
+ */
70
+ export declare function gridOrigin(index: number, cols: number, pitch: number): Vec2;
71
+ /**
72
+ * The scalar Gerstner HEIGHT at an origin — the brightness driver (the moving bright
73
+ * stripe the lattice paints). `h(o,t) = Σ_i A_i·sin(k_i·(D_i·o) − ω_i·t + φ_i)`, the SAME
74
+ * sum the velocity derives from (no second wave table). The brightness field reads at the
75
+ * ANCHOR (`o`), not the live position, so the sweep is stable + low-frequency.
76
+ */
77
+ export declare function sampleHeight(o: Vec2, timeSec: number, waves: readonly WaveComponent[], windSpeed: number): number;
78
+ /**
79
+ * The sub-cell DISPLACEMENT for an origin — the divergence-free ∇⊥h (the Gerstner perp-
80
+ * gradient) PLUS a faint coarse curl break. The dot eases toward `o + disp·displaceAmp`
81
+ * (the restoring spring lives in the kernel); this is the target offset, NOT an advection
82
+ * step. Capped LOW by `displaceAmp` so the dot never leaves its cell by > ~0.5 pitch.
83
+ */
84
+ export declare function sampleDisplacement(o: Vec2, timeSec: number, waves: readonly WaveComponent[], windSpeed: number, curlStrength: number): Vec2;
85
+ /**
86
+ * The sweeping bright-stripe band: a `smoothstep` band centered `center` width `width`
87
+ * over the normalized height — the moving iso-band that lights the dots it passes. The
88
+ * band is symmetric about the center (a soft ridge crossing the lattice as `h` sweeps).
89
+ */
90
+ export declare function waveBand(h: number, center: number, width: number): number;
35
91
  /**
36
- * Build the default 6-octave Phillips-spectrum wave ladder about a dominant wind
37
- * direction. Amplitudes follow `A_i ∝ exp(−1/(k_i·L)²) / k_i²` (Tessendorf §4), so the
38
- * field is energy-realistic. The directions spread about `windDirection` so the
39
- * streamlines braid like a river delta (not a flat band).
92
+ * Build the wave ladder about a dominant wind direction. BC.W-VIZ-DOTFLOW REGIME
93
+ * INVERSION (research/viz/dot-flow-field.md §3.2): the LOW-frequency coherent regime — a
94
+ * LARGE base wavelength (≈½–1 period across the view → ONE dominant sweeping wave), 2-3
95
+ * octaves (no fine chatter), a steep amplitude persistence (×0.38 → the base wave
96
+ * dominates, detail a whisper), the λ falloff floored so the finest λ ≥ ~⅓ view. The
97
+ * directions spread MODESTLY about `windDirection` (the sweep reads as ONE coherent form,
98
+ * not a braided delta).
99
+ *
100
+ * `lambda0Mul` is λ₀ as a MULTIPLE of the domain extent (default 2.5 — the §1 target);
101
+ * `octaves` is 2-3 (the coherent band). Amplitudes follow the Phillips falloff × the
102
+ * per-octave persistence so the field stays energy-realistic.
40
103
  */
41
- export declare function buildWaveLadder(windDirection: number, octaves?: number): WaveComponent[];
104
+ export declare function buildWaveLadder(windDirection: number, octaves?: number, lambda0Mul?: number): WaveComponent[];
@@ -0,0 +1,8 @@
1
+ export declare function compileGL(gl: WebGL2RenderingContext, type: number, src: string): WebGLShader;
2
+ export declare function linkGL(gl: WebGL2RenderingContext, vsSrc: string, fsSrc: string): WebGLProgram;
3
+ /** Probe whether an internal format is color-renderable as a float FBO target (R-A). */
4
+ export declare function probeRenderable(gl: WebGL2RenderingContext, internal: number, type: number): boolean;
5
+ /** Pack a Float32Array to half-float (RGBA16F upload) — the RGBA32F-absent fallback (R-A). */
6
+ export declare function float32ToHalf(src: Float32Array): Uint16Array;
7
+ /** IEEE-754 float32 → float16 bits (the standard round-to-nearest packing). */
8
+ export declare function f32ToF16(val: number): number;
@@ -0,0 +1,9 @@
1
+ import type { WebGLCanvasFrame } from "../../../../composables/glass/webgl/useWebGLCanvas";
2
+ import { type FlowSetupDeps } from "./useFlowParticles";
3
+ /**
4
+ * Build the `setupGL(gl)` callback the picker invokes on the WebGL2 path (the LIVE path).
5
+ * `field` is the kept fullscreen-fragment dot-lattice; `flow` routes to the state-texture
6
+ * GPGPU + two-FBO trail + point-sprite motes + present composite (flowSetupGLFlow) — the SAME
7
+ * advected-population gestalt as the WGPU compute path (the ONE math source via the GLSL chunk).
8
+ */
9
+ export declare function createFlowGLSetup(deps: FlowSetupDeps): (gl: WebGL2RenderingContext) => WebGLCanvasFrame;
@@ -0,0 +1,12 @@
1
+ import type { WebGLCanvasFrame } from "../../../../composables/glass/webgl/useWebGLCanvas";
2
+ import { type FlowSetupDeps } from "./useFlowParticles";
3
+ /**
4
+ * The `flow` WebGL2 channel — the AURORA CURRENT, made real + measurable + equal-gestalt:
5
+ * 1. STATE-TEXTURE GPGPU advect pass (one texel per mote; pos/speed/life ping-pong),
6
+ * 2. TRAIL decay-blit (prev → cur at the derived α) on a two-FBO RGBA16F ping-pong,
7
+ * 3. MOTE point-sprite draw (additive into the trail; speed→hue/brightness),
8
+ * 4. PRESENT composite (trail over the warm floor + corner-bloom → the swapchain).
9
+ * The float state/trail RTs fall RGBA32F→RGBA16F where the render extension is absent (R-A);
10
+ * the trail is pinned NEAREST (no half-float-linear extension dependency).
11
+ */
12
+ export declare function createFlowGLFlow(deps: FlowSetupDeps): (gl: WebGL2RenderingContext) => WebGLCanvasFrame;
@@ -0,0 +1,7 @@
1
+ import type { WebGPUCanvasFrame } from "../../../../composables/glass/webgpu/useWebGPUCanvas";
2
+ import { type FlowSetupDeps } from "./useFlowParticles";
3
+ /**
4
+ * Build the dot-flow-field `setupWGPU(device, context, format)` callback. Closes over the
5
+ * config/palette getters + the renderer's demand gate + the pointer `onFrame`/`getPointer`.
6
+ */
7
+ export declare function createFlowWGPUSetup(deps: FlowSetupDeps): (device: GPUDevice, context: GPUCanvasContext, format: GPUTextureFormat) => WebGPUCanvasFrame;