@mkbabb/glass-ui 4.0.0 → 4.1.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 (609) hide show
  1. package/README.md +3 -1
  2. package/dist/CardAction-8whJrLWt.js +268 -0
  3. package/dist/{CommandShortcut-DdtWXxOK.js → CommandShortcut-D3yxgHNn.js} +25 -14
  4. package/dist/ConfiguratorRow-CaP7U3ZA.js +143 -0
  5. package/dist/ContextMenuContent-B3ZsheLV.js +90 -0
  6. package/dist/{ContextMenuSubContent-B0Vs6atR.js → ContextMenuSubContent-DDRID3qC.js} +28 -33
  7. package/dist/{DataTable-C464Zbqd.js → DataTable-Bc9kUtu_.js} +4 -4
  8. package/dist/{DialogContent-DDE6pQBU.js → DialogContent-6JtTB5x2.js} +11 -8
  9. package/dist/DialogFooter-9phqcRIS.js +80 -0
  10. package/dist/DialogScrollContent-TTuovQst.js +93 -0
  11. package/dist/{FadingScroll-DwNnvKMs.js → FadingScroll-DLRbH5Xr.js} +1 -1
  12. package/dist/HoverCardContent-Bel1gdLZ.js +88 -0
  13. package/dist/{HoverPopover-Dpzwvc4t.js → HoverPopover-BcIxvyqZ.js} +2 -2
  14. package/dist/{IconChip-BDw1j5mu.js → IconChip-DhbdGdFQ.js} +2 -1
  15. package/dist/{IconTooltip-DSjasZIt.js → IconTooltip-B0zimd2H.js} +1 -1
  16. package/dist/Input-Cg9DF62r.js +57 -0
  17. package/dist/{MetricBadge-BpC0R_Ec.js → MetricBadge-RHdBP72w.js} +1 -1
  18. package/dist/Notification-CphK7AAm.js +43 -0
  19. package/dist/NumberFieldContent-D8cXeyO4.js +140 -0
  20. package/dist/PagerDots-Cjx96la-.js +98 -0
  21. package/dist/{PopoverContent-BTorlp--.js → PopoverContent-DL7E6vJP.js} +4 -4
  22. package/dist/{Progress-hAT4gqGH.js → Progress-CnqB7gLm.js} +4 -4
  23. package/dist/{ScrollingText-CUVFTWk2.js → ScrollingText-CTZbA_cG.js} +2 -2
  24. package/dist/{SelectScrollDownButton-C1jb3b3K.js → SelectScrollDownButton-DAKCBEdW.js} +65 -61
  25. package/dist/{SelectSeparator-DK2y1Bun.js → SelectSeparator-C2UGOkXF.js} +1 -1
  26. package/dist/Separator-DQcwC2TR.js +44 -0
  27. package/dist/Switch-B8RscmRu.js +49 -0
  28. package/dist/Toaster-D9qIHjBI.js +274 -0
  29. package/dist/ToggleGroupItem-BLtr3TJq.js +170 -0
  30. package/dist/TooltipProvider-BJ_Y5EGX.js +109 -0
  31. package/dist/animated-digit.js +2 -2
  32. package/dist/api/index.d.ts +21 -33
  33. package/dist/api/types-extra.d.ts +37 -0
  34. package/dist/api.js +1 -1
  35. package/dist/aurora.js +1231 -260
  36. package/dist/badge.js +1 -1
  37. package/dist/border-progress.d.ts +1 -0
  38. package/dist/border-progress.js +98 -0
  39. package/dist/button-5dY1Dvhd.js +125 -0
  40. package/dist/button.js +1 -1
  41. package/dist/canvas.js +2 -3
  42. package/dist/card.js +2 -2
  43. package/dist/carousel.js +93 -110
  44. package/dist/collapsible.js +1 -1
  45. package/dist/color-Cs0-oxYL.js +116 -0
  46. package/dist/color.js +2 -2
  47. package/dist/command.js +1 -1
  48. package/dist/compile-nZ1xVYTp.js +19 -0
  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/atoms-fields.d.ts +39 -0
  53. package/dist/components/custom/aurora/composables/auroraFallbackGround.d.ts +108 -0
  54. package/dist/components/custom/aurora/composables/color.d.ts +13 -0
  55. package/dist/components/custom/aurora/composables/frameLoop.d.ts +9 -0
  56. package/dist/components/custom/aurora/composables/runtime.d.ts +31 -0
  57. package/dist/components/custom/aurora/composables/uniformBridge.d.ts +5 -1
  58. package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +60 -0
  59. package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +37 -0
  60. package/dist/components/custom/aurora/constants/budget.d.ts +21 -0
  61. package/dist/components/custom/aurora/constants/presets.d.ts +20 -2
  62. package/dist/components/custom/aurora/constants/renderMode.d.ts +77 -18
  63. package/dist/components/custom/aurora/constants/shaders/aurora-mediums.wgsl.d.ts +1 -0
  64. package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -0
  65. package/dist/components/custom/aurora/constants/shaders/oil-modes.glsl.d.ts +1 -0
  66. package/dist/components/custom/aurora/constants/shaders/procedural-color.wgsl.d.ts +4 -0
  67. package/dist/components/custom/aurora/index.d.ts +2 -1
  68. package/dist/components/custom/border-progress/BorderProgress.vue.d.ts +46 -0
  69. package/dist/components/custom/border-progress/composables/spectrum-walk.d.ts +25 -0
  70. package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +18 -0
  71. package/dist/components/custom/border-progress/constants.d.ts +59 -0
  72. package/dist/components/custom/border-progress/index.d.ts +4 -0
  73. package/dist/components/custom/completion-seal/CompletionSeal.vue.d.ts +21 -0
  74. package/dist/components/custom/completion-seal/composables/useCompletionSeal.d.ts +37 -0
  75. package/dist/components/custom/completion-seal/constants.d.ts +46 -0
  76. package/dist/components/custom/completion-seal/index.d.ts +4 -0
  77. package/dist/components/custom/concentric/Concentric.vue.d.ts +39 -0
  78. package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +18 -0
  79. package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +22 -0
  80. package/dist/components/custom/concentric/composables/ringField.d.ts +85 -0
  81. package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +14 -0
  82. package/dist/components/custom/concentric/composables/useConcentric.d.ts +35 -0
  83. package/dist/components/custom/concentric/constants.d.ts +67 -0
  84. package/dist/components/custom/concentric/index.d.ts +5 -0
  85. package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +4 -0
  86. package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -0
  87. package/dist/components/custom/confirm-dialog/ConfirmDialog.vue.d.ts +3 -3
  88. package/dist/components/custom/constellation/Constellation.vue.d.ts +5 -4
  89. package/dist/components/custom/constellation/composables/constellationGLSetup.d.ts +10 -0
  90. package/dist/components/custom/constellation/composables/constellationWGPUSetup.d.ts +19 -0
  91. package/dist/components/custom/constellation/composables/uniformBridgeWGPU.d.ts +66 -0
  92. package/dist/components/custom/constellation/composables/useConstellation.d.ts +3 -10
  93. package/dist/components/custom/constellation/constants.d.ts +33 -0
  94. package/dist/components/custom/constellation/constellationField.d.ts +31 -1
  95. package/dist/components/custom/constellation/constellationInteraction.d.ts +23 -14
  96. package/dist/components/custom/constellation/constellationRender.d.ts +25 -0
  97. package/dist/components/custom/constellation/constellationTypes.d.ts +38 -0
  98. package/dist/components/custom/constellation/constellationWell.d.ts +15 -0
  99. package/dist/components/custom/constellation/index.d.ts +5 -5
  100. package/dist/components/custom/constellation/shaders/constellation-lines.glsl.d.ts +2 -0
  101. package/dist/components/custom/constellation/shaders/constellation-lines.wgsl.d.ts +1 -0
  102. package/dist/components/custom/constellation/shaders/constellation-points.glsl.d.ts +2 -0
  103. package/dist/components/custom/constellation/shaders/constellation-points.wgsl.d.ts +1 -0
  104. package/dist/components/custom/deck/DeckPager.vue.d.ts +29 -0
  105. package/dist/components/custom/deck/composables/useDeck.d.ts +27 -0
  106. package/dist/components/custom/deck/composables/useDeckKeyboard.d.ts +25 -0
  107. package/dist/components/custom/deck/composables/useDeckSpring.d.ts +22 -0
  108. package/dist/components/custom/deck/constants.d.ts +14 -0
  109. package/dist/components/custom/deck/index.d.ts +8 -0
  110. package/dist/components/custom/dock/DockIconButton.vue.d.ts +25 -4
  111. package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +10 -2
  112. package/dist/components/custom/dock/DockStack.vue.d.ts +65 -0
  113. package/dist/components/custom/dock/GlassDock.vue.d.ts +4 -2
  114. package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +155 -0
  115. package/dist/components/custom/dock/composables/index.d.ts +2 -0
  116. package/dist/components/custom/dock/composables/useDockSearch.d.ts +85 -0
  117. package/dist/components/custom/dock/composables/useDockShellProps.d.ts +11 -0
  118. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +13 -0
  119. package/dist/components/custom/dock/constants.d.ts +18 -14
  120. package/dist/components/custom/dock/index.d.ts +5 -2
  121. package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +42 -0
  122. package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +83 -0
  123. package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +39 -0
  124. package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +35 -0
  125. package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +31 -0
  126. package/dist/components/custom/dot-flow-field/constants.d.ts +69 -0
  127. package/dist/components/custom/dot-flow-field/index.d.ts +5 -0
  128. package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -0
  129. package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +4 -0
  130. package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +1 -0
  131. package/dist/components/custom/dot-matrix/DotMatrix.vue.d.ts +43 -0
  132. package/dist/components/custom/dot-matrix/composables/dotMatrixField.d.ts +89 -0
  133. package/dist/components/custom/dot-matrix/composables/uniformBridgeWGPU.d.ts +52 -0
  134. package/dist/components/custom/dot-matrix/composables/useDotMatrix.d.ts +34 -0
  135. package/dist/components/custom/dot-matrix/composables/useDotSphere.d.ts +27 -0
  136. package/dist/components/custom/dot-matrix/constants.d.ts +58 -0
  137. package/dist/components/custom/dot-matrix/index.d.ts +5 -0
  138. package/dist/components/custom/dot-matrix/shaders/dot-matrix.glsl.d.ts +4 -0
  139. package/dist/components/custom/dot-matrix/shaders/dot-matrix.wgsl.d.ts +1 -0
  140. package/dist/components/custom/easing/EasingConfigurator.vue.d.ts +33 -0
  141. package/dist/components/custom/easing/EasingPicker.vue.d.ts +49 -0
  142. package/dist/components/custom/easing/composables/useEasingPicker.d.ts +80 -0
  143. package/dist/components/custom/easing/constants.d.ts +28 -0
  144. package/dist/components/custom/easing/index.d.ts +3 -0
  145. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +11 -0
  146. package/dist/components/custom/fourier-field/FourierField.vue.d.ts +43 -40
  147. package/dist/components/custom/fourier-field/composables/fourierFieldGLSetup.d.ts +15 -0
  148. package/dist/components/custom/fourier-field/composables/fourierFieldWGPUSetup.d.ts +20 -0
  149. package/dist/components/custom/fourier-field/composables/uniformBridgeWGPU.d.ts +41 -0
  150. package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +42 -0
  151. package/dist/components/custom/fourier-field/constants.d.ts +64 -0
  152. package/dist/components/custom/fourier-field/index.d.ts +23 -18
  153. package/dist/components/custom/fourier-field/shaders/fourier-field.compute.wgsl.d.ts +1 -0
  154. package/dist/components/custom/fourier-field/shaders/fourier-field.glsl.d.ts +4 -0
  155. package/dist/components/custom/fourier-field/shaders/fourier-field.render.wgsl.d.ts +1 -0
  156. package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +1 -1
  157. package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +13 -3
  158. package/dist/components/custom/goo-blob/composables/uniformBridgeWGPU.d.ts +24 -0
  159. package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +18 -11
  160. package/dist/components/custom/goo-blob/composables/wgpuSetup.d.ts +23 -0
  161. package/dist/components/custom/goo-blob/constants.d.ts +1 -1
  162. package/dist/components/custom/goo-blob/index.d.ts +1 -1
  163. package/dist/components/custom/goo-blob/shaders/metaball-noise.wgsl.d.ts +1 -0
  164. package/dist/components/custom/goo-blob/shaders/metaball-palette.wgsl.d.ts +1 -0
  165. package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -1
  166. package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -0
  167. package/dist/components/custom/goo-blob/types.d.ts +36 -0
  168. package/dist/components/custom/goo-dot-matrix/GooDotMatrix.vue.d.ts +49 -0
  169. package/dist/components/custom/goo-dot-matrix/composables/gooDotLattice.d.ts +24 -0
  170. package/dist/components/custom/goo-dot-matrix/composables/gooDotSetup.d.ts +50 -0
  171. package/dist/components/custom/goo-dot-matrix/composables/uniformBridgeWGPU.d.ts +35 -0
  172. package/dist/components/custom/goo-dot-matrix/composables/useGooDotMatrix.d.ts +31 -0
  173. package/dist/components/custom/goo-dot-matrix/constants.d.ts +76 -0
  174. package/dist/components/custom/goo-dot-matrix/index.d.ts +5 -0
  175. package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.frag.d.ts +11 -0
  176. package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.wgsl.d.ts +3 -0
  177. package/dist/components/custom/handmark/HandMark.vue.d.ts +1 -1
  178. package/dist/components/custom/icon-chip/types.d.ts +11 -1
  179. package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +3 -1
  180. package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +21 -2
  181. package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +15 -0
  182. package/dist/components/custom/metric-stack/MetricStack.vue.d.ts +1 -1
  183. package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +9 -0
  184. package/dist/components/custom/pager-dots/index.d.ts +2 -0
  185. package/dist/components/custom/pager-dots/pagerWindow.d.ts +9 -0
  186. package/dist/components/custom/paper-grid/PaperGrid.vue.d.ts +42 -0
  187. package/dist/components/custom/paper-grid/composables/paperGrid.d.ts +90 -0
  188. package/dist/components/custom/paper-grid/composables/paperGridGLSetup.d.ts +16 -0
  189. package/dist/components/custom/paper-grid/composables/paperGridWGPUSetup.d.ts +19 -0
  190. package/dist/components/custom/paper-grid/composables/uniformBridgeWGPU.d.ts +16 -0
  191. package/dist/components/custom/paper-grid/composables/usePaperGrid.d.ts +31 -0
  192. package/dist/components/custom/paper-grid/constants.d.ts +57 -0
  193. package/dist/components/custom/paper-grid/index.d.ts +5 -0
  194. package/dist/components/custom/paper-grid/shaders/paper-grid.glsl.d.ts +4 -0
  195. package/dist/components/custom/paper-grid/shaders/paper-grid.wgsl.d.ts +1 -0
  196. package/dist/components/custom/search/FuzzySearch.vue.d.ts +8 -2
  197. package/dist/components/custom/search/SearchBar.vue.d.ts +8 -0
  198. package/dist/components/custom/search/index.d.ts +2 -0
  199. package/dist/components/custom/search/searchVariants.d.ts +19 -0
  200. package/dist/components/custom/selectable-chip/SelectableChip.vue.d.ts +50 -0
  201. package/dist/components/custom/selectable-chip/index.d.ts +2 -0
  202. package/dist/components/custom/selectable-chip/selectableChipVariants.d.ts +23 -0
  203. package/dist/components/custom/spa-view/SpaView.vue.d.ts +50 -0
  204. package/dist/components/custom/spa-view/index.d.ts +2 -0
  205. package/dist/components/custom/split-chars/SplitChars.vue.d.ts +39 -0
  206. package/dist/components/custom/split-chars/index.d.ts +1 -0
  207. package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +12 -0
  208. package/dist/components/custom/tabs/composables/useTabDragMorph.d.ts +42 -0
  209. package/dist/components/custom/tabs/constants.d.ts +20 -2
  210. package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +30 -17
  211. package/dist/components/custom/watercolor-dot/useWatercolorBlob.d.ts +10 -5
  212. package/dist/components/ui/_shared/index.d.ts +2 -0
  213. package/dist/components/ui/_shared/menuItemVariants.d.ts +1 -1
  214. package/dist/components/ui/_shared/useControlSize.d.ts +46 -0
  215. package/dist/components/ui/badge/index.d.ts +1 -1
  216. package/dist/components/ui/button/Button.vue.d.ts +5 -2
  217. package/dist/components/ui/button/index.d.ts +2 -2
  218. package/dist/components/ui/card/Card.vue.d.ts +79 -4
  219. package/dist/components/ui/card/CardHeader.vue.d.ts +42 -16
  220. package/dist/components/ui/card/ScrollCard.vue.d.ts +33 -0
  221. package/dist/components/ui/card/ScrollCardHeader.vue.d.ts +17 -0
  222. package/dist/components/ui/card/index.d.ts +3 -1
  223. package/dist/components/ui/carousel/CarouselNext.vue.d.ts +2 -2
  224. package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +2 -2
  225. package/dist/components/ui/carousel/GlassCarouselPager.vue.d.ts +2 -2
  226. package/dist/components/ui/command/Command.vue.d.ts +1 -1
  227. package/dist/components/ui/command/CommandDialog.vue.d.ts +9 -3
  228. package/dist/components/ui/command/CommandList.vue.d.ts +3 -0
  229. package/dist/components/ui/context-menu/ContextMenuContent.vue.d.ts +5 -1
  230. package/dist/components/ui/drawer/Drawer.vue.d.ts +46 -33
  231. package/dist/components/ui/drawer/DrawerContent.vue.d.ts +7 -8
  232. package/dist/components/ui/drawer/DrawerDescription.vue.d.ts +2 -2
  233. package/dist/components/ui/drawer/DrawerOverlay.vue.d.ts +1 -1
  234. package/dist/components/ui/drawer/DrawerTitle.vue.d.ts +2 -2
  235. package/dist/components/ui/drawer/composables/drawerSnapContext.d.ts +26 -0
  236. package/dist/components/ui/drawer/composables/useDrawerSnap.d.ts +17 -0
  237. package/dist/components/ui/drawer/constants.d.ts +45 -0
  238. package/dist/components/ui/drawer/index.d.ts +23 -15
  239. package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +4 -0
  240. package/dist/components/ui/focus-scope/FocusScope.vue.d.ts +20 -0
  241. package/dist/components/ui/focus-scope/index.d.ts +2 -0
  242. package/dist/components/ui/hover-card/HoverCardContent.vue.d.ts +3 -0
  243. package/dist/components/ui/index.d.ts +1 -0
  244. package/dist/components/ui/input/Input.vue.d.ts +3 -0
  245. package/dist/components/ui/number-field/NumberFieldInput.vue.d.ts +6 -1
  246. package/dist/components/ui/progress/ProgressDefault.vue.d.ts +3 -2
  247. package/dist/components/ui/select/SelectContent.vue.d.ts +4 -1
  248. package/dist/components/ui/sheet/index.d.ts +1 -1
  249. package/dist/components/ui/switch/Switch.vue.d.ts +2 -0
  250. package/dist/components/ui/tags-input/TagsInput.vue.d.ts +2 -2
  251. package/dist/components/ui/textarea/Textarea.vue.d.ts +3 -0
  252. package/dist/components/ui/toast/Toast.vue.d.ts +5 -2
  253. package/dist/components/ui/toast/use-toast.d.ts +14 -0
  254. package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
  255. package/dist/components/ui/tooltip/TooltipContent.vue.d.ts +3 -0
  256. package/dist/composables/color/index.d.ts +2 -0
  257. package/dist/composables/color/useAccentTone.d.ts +34 -0
  258. package/dist/composables/glass/canvas2d/useCanvas2D.d.ts +13 -6
  259. package/dist/composables/glass/index.d.ts +5 -2
  260. package/dist/composables/glass/useSpecularPointer.d.ts +33 -0
  261. package/dist/composables/glass/useSpecularTracking.d.ts +20 -0
  262. package/dist/composables/glass/useVizChoreography.d.ts +123 -0
  263. package/dist/composables/glass/vSpecular.d.ts +2 -0
  264. package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +10 -0
  265. package/dist/composables/glass/webgl/shaders/flow.glsl.d.ts +1 -0
  266. package/dist/composables/glass/webgl/shaders/flow.wgsl.d.ts +1 -0
  267. package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +16 -0
  268. package/dist/composables/glass/webgpu/index.d.ts +2 -0
  269. package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +75 -0
  270. package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +85 -0
  271. package/dist/composables/glass/webgpu/webgpuDevice.d.ts +42 -0
  272. package/dist/composables/motion/core/index.d.ts +4 -0
  273. package/dist/composables/motion/index.d.ts +4 -0
  274. package/dist/composables/motion/scrollReader.d.ts +25 -0
  275. package/dist/composables/motion/springPresets.d.ts +20 -1
  276. package/dist/composables/motion/useCharStagger.d.ts +44 -0
  277. package/dist/composables/motion/useDockCtaReceive.d.ts +84 -0
  278. package/dist/composables/motion/useDragMorph.d.ts +77 -0
  279. package/dist/composables/motion/useLiquidFlex.d.ts +11 -0
  280. package/dist/composables/motion/useLiquidPress.d.ts +71 -0
  281. package/dist/composables/motion/useLiquidReveal.d.ts +51 -0
  282. package/dist/composables/motion/useNumericTransition.d.ts +3 -3
  283. package/dist/composables/motion/usePointerVelocityField.d.ts +98 -0
  284. package/dist/composables/motion/useScrollChrome.d.ts +58 -0
  285. package/dist/composables/motion/useScrollTrigger.d.ts +67 -0
  286. package/dist/composables/motion/useSpringPress.d.ts +5 -5
  287. package/dist/composables/motion/useStaggerReveal.d.ts +24 -0
  288. package/dist/composables/sidebar/index.d.ts +4 -1
  289. package/dist/composables/sidebar/types.d.ts +68 -3
  290. package/dist/composables/sidebar/useClickDelegate.d.ts +4 -0
  291. package/dist/composables/sidebar/useLazyLoader.d.ts +5 -0
  292. package/dist/composables/sidebar/useScrollTo.d.ts +5 -0
  293. package/dist/composables/virtual/index.d.ts +4 -0
  294. package/dist/composables/virtual/useVirtualSectionWindow.d.ts +72 -0
  295. package/dist/composables/virtual/useWindowedStore.d.ts +43 -0
  296. package/dist/composables/virtual/virtualSectionLayout.d.ts +103 -0
  297. package/dist/concentric.d.ts +1 -0
  298. package/dist/concentric.js +836 -0
  299. package/dist/configurator.js +3 -2
  300. package/dist/confirm-dialog.js +62 -49
  301. package/dist/constellation.js +635 -235
  302. package/dist/context-menu.js +3 -3
  303. package/dist/controls.js +2 -2
  304. package/dist/createCanvasLifecycle-Gh45Ce-p.js +93 -0
  305. package/dist/dark.js +1 -1
  306. package/dist/data-table.js +1 -1
  307. package/dist/deck.d.ts +1 -0
  308. package/dist/deck.js +105 -0
  309. package/dist/dialog.js +4 -3
  310. package/dist/dock.js +819 -568
  311. package/dist/{dockContext-Bu1Avy-a.js → dockContext-BNfyPLe9.js} +1 -1
  312. package/dist/dom.js +5 -5
  313. package/dist/dot-flow-field.d.ts +1 -0
  314. package/dist/dot-flow-field.js +894 -0
  315. package/dist/dot-matrix.d.ts +1 -0
  316. package/dist/dot-matrix.js +630 -0
  317. package/dist/dotMatrixField-D_x9_1qq.js +48 -0
  318. package/dist/drawer.d.ts +1 -0
  319. package/dist/drawer.js +380 -0
  320. package/dist/{dropdown-menu-BJ7E9js_.js → dropdown-menu-aJmV5SqE.js} +82 -79
  321. package/dist/dropdown-menu.js +1 -1
  322. package/dist/easing.d.ts +1 -0
  323. package/dist/easing.js +475 -0
  324. package/dist/expandable-container.js +46 -21
  325. package/dist/fading-scroll.js +1 -1
  326. package/dist/flow.glsl-B2P7e0MT.js +4 -0
  327. package/dist/focus-scope.d.ts +1 -0
  328. package/dist/focus-scope.js +23 -0
  329. package/dist/forms.js +65 -63
  330. package/dist/fourier-field.js +831 -172
  331. package/dist/fourier-math.js +1 -1
  332. package/dist/glass-panel.js +2 -2
  333. package/dist/glass-ui.css +1 -1
  334. package/dist/glass-ui.js +187 -338
  335. package/dist/goo-blob.js +241 -692
  336. package/dist/goo-dot-matrix.d.ts +1 -0
  337. package/dist/goo-dot-matrix.js +591 -0
  338. package/dist/handmark.js +2 -2
  339. package/dist/header-ribbon.js +1 -1
  340. package/dist/hover-card.js +1 -1
  341. package/dist/hover-popover.js +1 -1
  342. package/dist/icon-chip.js +1 -1
  343. package/dist/icon-tooltip.js +1 -1
  344. package/dist/index.d.ts +3 -1
  345. package/dist/instrument-chassis.js +1 -1
  346. package/dist/keyboard.js +1 -1
  347. package/dist/label.js +1 -1
  348. package/dist/labeled-field.js +70 -60
  349. package/dist/metric-badge.js +1 -1
  350. package/dist/metric-cell.js +1 -1
  351. package/dist/metric-stack.js +14 -9
  352. package/dist/motion-core.js +58 -36
  353. package/dist/motion-curves.js +11 -1
  354. package/dist/motion.js +90 -53
  355. package/dist/notification.js +1 -1
  356. package/dist/number-field.js +1 -1
  357. package/dist/pager-dots.js +2 -91
  358. package/dist/paper-backdrop.js +1 -1
  359. package/dist/paper-grid.d.ts +1 -0
  360. package/dist/paper-grid.js +788 -0
  361. package/dist/popover.js +1 -1
  362. package/dist/{presets-BW2b-fr1.js → presets-CvOUqtdY.js} +3 -3
  363. package/dist/{compile-EXXzEr1q.js → procedural-color.wgsl-m7Zgv35j.js} +2 -156
  364. package/dist/progress.js +1 -1
  365. package/dist/pulse.js +2 -2
  366. package/dist/reactive.js +1 -1
  367. package/dist/resolveCanvasColor-yPyIpJt9.js +93 -0
  368. package/dist/scrollReader-DI1NWxUw.js +42 -0
  369. package/dist/scrolling-text.js +1 -1
  370. package/dist/search.js +162 -308
  371. package/dist/select.js +3 -3
  372. package/dist/selectable-chip.d.ts +1 -0
  373. package/dist/selectable-chip.js +65 -0
  374. package/dist/separator.js +1 -1
  375. package/dist/{sheet-CquRYOAw.js → sheet-B2flBfLH.js} +5 -5
  376. package/dist/sheet.js +1 -1
  377. package/dist/sidebar.js +216 -114
  378. package/dist/{slider-DQ95MET2.js → slider-2A0rPn79.js} +3 -3
  379. package/dist/slider.js +1 -1
  380. package/dist/sortable-list.js +2 -2
  381. package/dist/spa-view.d.ts +1 -0
  382. package/dist/spa-view.js +46 -0
  383. package/dist/spectrum-walk-BVzA7Biz.js +33 -0
  384. package/dist/{springPresets-WXaLbu8u.js → springPresets-Ce7OYCm9.js} +12 -6
  385. package/dist/styles/animations.css +46 -12
  386. package/dist/styles/border-progress.css +109 -0
  387. package/dist/styles/cards.css +145 -0
  388. package/dist/styles/completion-seal.css +131 -0
  389. package/dist/styles/components.css +2 -3
  390. package/dist/styles/configurator.css +55 -0
  391. package/dist/styles/critical-partition.mjs +162 -0
  392. package/dist/styles/critical.css +12 -0
  393. package/dist/styles/deferred.css +33 -0
  394. package/dist/styles/dock/cta-seat.css +87 -0
  395. package/dist/styles/dock/density.css +198 -0
  396. package/dist/styles/dock/layers.css +101 -29
  397. package/dist/styles/dock/morph-bridge.css +54 -18
  398. package/dist/styles/dock/morph.css +132 -7
  399. package/dist/styles/dock/overflow.css +28 -2
  400. package/dist/styles/dock/search.css +68 -0
  401. package/dist/styles/dock/shape.css +124 -0
  402. package/dist/styles/dock/shell.css +77 -21
  403. package/dist/styles/dock/stack-rail.css +264 -0
  404. package/dist/styles/dock-controls/dark-mode-toggle.css +17 -4
  405. package/dist/styles/dock-controls/icon-button.css +14 -0
  406. package/dist/styles/dock.css +43 -1
  407. package/dist/styles/drawer.css +81 -35
  408. package/dist/styles/glass/accent-tone.css +66 -0
  409. package/dist/styles/glass/control-surfaces.css +167 -0
  410. package/dist/styles/glass/deep.css +44 -0
  411. package/dist/styles/glass/ladder.css +147 -41
  412. package/dist/styles/glass/material.css +78 -15
  413. package/dist/styles/glass/reveal.css +136 -0
  414. package/dist/styles/glass/rim.css +110 -0
  415. package/dist/styles/glass/surfaces.css +148 -129
  416. package/dist/styles/glass-refract.css +96 -44
  417. package/dist/styles/glass-specular-track.css +7 -0
  418. package/dist/styles/glass.css +13 -0
  419. package/dist/styles/hover-popover.css +7 -6
  420. package/dist/styles/icon-chip.css +77 -15
  421. package/dist/styles/index.css +36 -9
  422. package/dist/styles/instrument-chassis.css +66 -3
  423. package/dist/styles/scroll-choreography.css +300 -0
  424. package/dist/styles/scroll-chrome.css +123 -0
  425. package/dist/styles/scroll-driven.css +38 -0
  426. package/dist/styles/segmented-tabs.css +81 -14
  427. package/dist/styles/theme/bridges.css +33 -0
  428. package/dist/styles/theme/literals.css +11 -2
  429. package/dist/styles/theme/radius.css +24 -2
  430. package/dist/styles/tokens/color-radius.css +13 -3
  431. package/dist/styles/tokens/dark-arm.css +137 -32
  432. package/dist/styles/tokens/glass-deep.css +100 -0
  433. package/dist/styles/tokens/glass-fx.css +376 -0
  434. package/dist/styles/tokens/glass.css +131 -351
  435. package/dist/styles/tokens/light-dark.css +16 -3
  436. package/dist/styles/tokens/offsets.css +143 -0
  437. package/dist/styles/tokens/on-glass-fg.css +39 -0
  438. package/dist/styles/tokens/property-regs.css +260 -0
  439. package/dist/styles/tokens/scale-paper.css +168 -96
  440. package/dist/styles/tokens/scheme-motion.css +114 -38
  441. package/dist/styles/tokens/scroll-tokens.css +123 -0
  442. package/dist/styles/tokens/sizing-config.css +110 -0
  443. package/{src/styles/tokens/offsets-sizing.css → dist/styles/tokens/sizing.css} +92 -204
  444. package/dist/styles/tokens.css +14 -3
  445. package/dist/styles/typography/semantic.css +26 -13
  446. package/dist/styles/typography/utilities.css +22 -7
  447. package/dist/styles/utilities/a11y-overrides.css +20 -5
  448. package/dist/styles/utilities/animate.css +27 -24
  449. package/dist/styles/utilities/base-misc.css +307 -0
  450. package/dist/styles/utilities/base.css +47 -261
  451. package/dist/styles/utilities/btn.css +17 -4
  452. package/dist/styles/utilities/components.css +31 -6
  453. package/dist/styles/utilities/metal.css +215 -0
  454. package/dist/styles/utilities.css +14 -7
  455. package/dist/switch.js +1 -1
  456. package/dist/tabs.js +220 -107
  457. package/dist/timeline.js +2 -2
  458. package/dist/toast.js +1 -1
  459. package/dist/toggle-chip.js +10 -10
  460. package/dist/toggle-group.js +1 -1
  461. package/dist/tooltip.js +1 -1
  462. package/dist/typewriter.js +2 -2
  463. package/dist/uniformBridgeWGPU-CtAKl45L.js +1204 -0
  464. package/dist/{useAnimatedNumber-C_3wZLx4.js → useAnimatedNumber-CLrxicG9.js} +1 -1
  465. package/dist/useConfiguratorState-4xblKfwd.js +162 -0
  466. package/dist/useControlSize-SH1UmJCi.js +9 -0
  467. package/dist/useDockCtaReceive-DfFkmgL1.js +82 -0
  468. package/dist/useDragMorph-BUgAC-zK.js +102 -0
  469. package/dist/useFuzzySearch-DIhcYtcw.js +177 -0
  470. package/dist/useGpuSubstrate-4pTcp6mX.js +294 -0
  471. package/dist/useLiquidPress-BooG97RY.js +39 -0
  472. package/dist/usePointerVelocityField-QLsy3_kv.js +91 -0
  473. package/dist/useScrollChrome-D66AVP7C.js +258 -0
  474. package/dist/useSpring-C0jyvEJB.js +40 -0
  475. package/dist/useSpringMount-BWDnKIwh.js +71 -0
  476. package/dist/useSpringPress-B1-Czp-V.js +36 -0
  477. package/dist/{useTouchGate-28Tk2-t2.js → useTouchGate-CBZTD4SD.js} +1 -1
  478. package/dist/useViewTransition-CUI1nAgn.js +95 -0
  479. package/dist/vSpecular-EX7loENl.js +68 -0
  480. package/dist/vendor-B2qOlYY3.js +239 -0
  481. package/dist/virtual.d.ts +1 -0
  482. package/dist/virtual.js +225 -0
  483. package/dist/watercolor-dot.js +117 -74
  484. package/package.json +252 -28
  485. package/src/styles/animations.css +46 -12
  486. package/src/styles/border-progress.css +109 -0
  487. package/src/styles/cards.css +145 -0
  488. package/src/styles/completion-seal.css +131 -0
  489. package/src/styles/configurator.css +55 -0
  490. package/src/styles/critical-partition.mjs +162 -0
  491. package/src/styles/dock/cta-seat.css +87 -0
  492. package/src/styles/dock/density.css +198 -0
  493. package/src/styles/dock/layers.css +101 -29
  494. package/src/styles/dock/morph-bridge.css +54 -18
  495. package/src/styles/dock/morph.css +132 -7
  496. package/src/styles/dock/overflow.css +28 -2
  497. package/src/styles/dock/search.css +68 -0
  498. package/src/styles/dock/shape.css +124 -0
  499. package/src/styles/dock/shell.css +77 -21
  500. package/src/styles/dock/stack-rail.css +264 -0
  501. package/src/styles/dock-controls/dark-mode-toggle.css +17 -4
  502. package/src/styles/dock-controls/icon-button.css +14 -0
  503. package/src/styles/dock.css +43 -1
  504. package/src/styles/drawer.css +81 -35
  505. package/src/styles/glass/accent-tone.css +66 -0
  506. package/src/styles/glass/control-surfaces.css +167 -0
  507. package/src/styles/glass/deep.css +44 -0
  508. package/src/styles/glass/ladder.css +147 -41
  509. package/src/styles/glass/material.css +78 -15
  510. package/src/styles/glass/reveal.css +136 -0
  511. package/src/styles/glass/rim.css +110 -0
  512. package/src/styles/glass/surfaces.css +148 -129
  513. package/src/styles/glass-refract.css +96 -44
  514. package/src/styles/glass-specular-track.css +7 -0
  515. package/src/styles/glass.css +13 -0
  516. package/src/styles/hover-popover.css +7 -6
  517. package/src/styles/icon-chip.css +77 -15
  518. package/src/styles/index.css +27 -0
  519. package/src/styles/instrument-chassis.css +66 -3
  520. package/src/styles/scroll-choreography.css +300 -0
  521. package/src/styles/scroll-chrome.css +123 -0
  522. package/src/styles/scroll-driven.css +38 -0
  523. package/src/styles/segmented-tabs.css +81 -14
  524. package/src/styles/theme/bridges.css +33 -0
  525. package/src/styles/theme/literals.css +11 -2
  526. package/src/styles/theme/radius.css +24 -2
  527. package/src/styles/tokens/color-radius.css +13 -3
  528. package/src/styles/tokens/dark-arm.css +137 -32
  529. package/src/styles/tokens/glass-deep.css +100 -0
  530. package/src/styles/tokens/glass-fx.css +376 -0
  531. package/src/styles/tokens/glass.css +131 -351
  532. package/src/styles/tokens/light-dark.css +16 -3
  533. package/src/styles/tokens/offsets.css +143 -0
  534. package/src/styles/tokens/on-glass-fg.css +39 -0
  535. package/src/styles/tokens/property-regs.css +260 -0
  536. package/src/styles/tokens/scale-paper.css +168 -96
  537. package/src/styles/tokens/scheme-motion.css +114 -38
  538. package/src/styles/tokens/scroll-tokens.css +123 -0
  539. package/src/styles/tokens/sizing-config.css +110 -0
  540. package/{dist/styles/tokens/offsets-sizing.css → src/styles/tokens/sizing.css} +92 -204
  541. package/src/styles/tokens.css +14 -3
  542. package/src/styles/typography/semantic.css +26 -13
  543. package/src/styles/typography/utilities.css +22 -7
  544. package/src/styles/utilities/a11y-overrides.css +20 -5
  545. package/src/styles/utilities/animate.css +27 -24
  546. package/src/styles/utilities/base-misc.css +307 -0
  547. package/src/styles/utilities/base.css +47 -261
  548. package/src/styles/utilities/btn.css +17 -4
  549. package/src/styles/utilities/components.css +31 -6
  550. package/src/styles/utilities/metal.css +215 -0
  551. package/src/styles/utilities.css +14 -7
  552. package/dist/CardAction-XH4YBVEK.js +0 -158
  553. package/dist/ContextMenuContent-ON3x7cuk.js +0 -85
  554. package/dist/DialogFooter-8eZbdmPc.js +0 -165
  555. package/dist/HoverCardContent-DkMaQzH5.js +0 -83
  556. package/dist/Input-DVG_J0ne.js +0 -55
  557. package/dist/Notification-DKjKsQq8.js +0 -100
  558. package/dist/NumberFieldContent-1VtwDSgf.js +0 -145
  559. package/dist/Separator-BArl4OaB.js +0 -37
  560. package/dist/Switch-Dr--uLGH.js +0 -47
  561. package/dist/Toaster-Bm_HQSpc.js +0 -263
  562. package/dist/ToggleGroupItem-Dzk9hWsF.js +0 -157
  563. package/dist/TooltipProvider-B3MkB_8P.js +0 -104
  564. package/dist/button-BNDWhAZb.js +0 -81
  565. package/dist/check-njhk-vfu.js +0 -7
  566. package/dist/chevron-down-DKkxb4VV.js +0 -7
  567. package/dist/chevron-right-CPXbqQQz.js +0 -7
  568. package/dist/chevron-up-n_24SqI-.js +0 -7
  569. package/dist/color-DweYl7pE.js +0 -86
  570. package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +0 -35
  571. package/dist/components/custom/constellation/constellationDraw.d.ts +0 -30
  572. package/dist/components/custom/dock/DockRail.vue.d.ts +0 -89
  573. package/dist/createLucideIcon-DydS2qgk.js +0 -43
  574. package/dist/minimize-2-BV31Ob_h.js +0 -38
  575. package/dist/resolveCanvasColor-BBiYfp8g.js +0 -11
  576. package/dist/search-BSGrf2Sk.js +0 -12
  577. package/dist/styles/dock/rail-extend.css +0 -397
  578. package/dist/useCanvas2D-ClrQuZtp.js +0 -96
  579. package/dist/useConfiguratorState-kiIlun8I.js +0 -303
  580. package/dist/useRAFLoop-CdwJ7284.js +0 -109
  581. package/dist/useSpecularTracking-Bo5su68i.js +0 -32
  582. package/dist/useSpringMount-CvopqiFr.js +0 -108
  583. package/dist/useViewTransition-COsPjQVZ.js +0 -47
  584. package/dist/x-BUwTKe50.js +0 -10
  585. package/src/styles/dock/rail-extend.css +0 -397
  586. /package/dist/{CollapsibleContent-C_s6fG7r.js → CollapsibleContent-68dEXIAl.js} +0 -0
  587. /package/dist/{InstrumentChassis-UUJX0-mW.js → InstrumentChassis-CxsHSyMj.js} +0 -0
  588. /package/dist/{Label-Ck9SWEKM.js → Label-C2ejNWeC.js} +0 -0
  589. /package/dist/{ModalOverlay-CkPRRgl_.js → ModalOverlay-D1VrWyoi.js} +0 -0
  590. /package/dist/{PaperBackdrop-nBKe0vkB.js → PaperBackdrop-CqwjnfLv.js} +0 -0
  591. /package/dist/{SelectGroup-Dcczq44n.js → SelectGroup-BFiod7X2.js} +0 -0
  592. /package/dist/{_plugin-vue_export-helper-CBt_VvXa.js → _plugin-vue_export-helper-C1je1s0u.js} +0 -0
  593. /package/dist/{badge-UILT_3pZ.js → badge-D9XWW4GT.js} +0 -0
  594. /package/dist/{constants-BPOqYJAm.js → constants--C2DkLW8.js} +0 -0
  595. /package/dist/{createContext-B2RaZ-b8.js → createContext-CpBNTRMI.js} +0 -0
  596. /package/dist/{math-DeuJwLFx.js → math-Eb0w3LqU.js} +0 -0
  597. /package/dist/{menuItemVariants-DWRQXBxJ.js → menuItemVariants-D8VNHq22.js} +0 -0
  598. /package/dist/{prng-Cg22zv8g.js → prng-B-d9eYX8.js} +0 -0
  599. /package/dist/{useGlobalDark-C28t0VWJ.js → useGlobalDark-CmjB9E32.js} +0 -0
  600. /package/dist/{useIntersectionPause-Bj4sPkMh.js → useIntersectionPause-Dbozzjgm.js} +0 -0
  601. /package/dist/{useKeyboardShortcuts-BXWXOZ-9.js → useKeyboardShortcuts-BPRp33Im.js} +0 -0
  602. /package/dist/{useLiquidFlex-C12hXwOZ.js → useLiquidFlex-UmA6LMZu.js} +0 -0
  603. /package/dist/{useResizeObserver-V6nq5gJb.js → useResizeObserver-Bpoi7tRE.js} +0 -0
  604. /package/dist/{useResolveTokenColor-NUG2zYAW.js → useResolveTokenColor-vAylyR0x.js} +0 -0
  605. /package/dist/{useScrollProgress-D7bYU2RK.js → useScrollProgress-c3yxmH6a.js} +0 -0
  606. /package/dist/{useSurfaceAxis-CMnF2zHb.js → useSurfaceAxis-g0NloYEF.js} +0 -0
  607. /package/dist/{useTimer-B_PAasDL.js → useTimer-BHJOKr35.js} +0 -0
  608. /package/dist/{useUserInvalidAria-CDfJuakL.js → useUserInvalidAria-y5namzeE.js} +0 -0
  609. /package/dist/{useViewportReady-CvBcCYDf.js → useViewportReady-anbac3m6.js} +0 -0
@@ -0,0 +1,67 @@
1
+ import { type MaybeRefOrGetter, type Ref } from "vue";
2
+ /**
3
+ * A declared trigger-point on the scroll source: a pixel offset, a 0..1 progress
4
+ * fraction (resolved against the source's scrollable extent), or a named element
5
+ * whose top crosses the source.
6
+ */
7
+ export interface TriggerPoint {
8
+ /**
9
+ * A pixel offset on the scroll source, OR a 0..1 progress fraction (resolved
10
+ * against the source's scrollable extent), OR a named element whose top crosses
11
+ * the source.
12
+ */
13
+ at: number | {
14
+ fraction: number;
15
+ } | {
16
+ element: MaybeRefOrGetter<HTMLElement | null>;
17
+ };
18
+ /** Fire on which crossing direction. Default "both". */
19
+ direction?: "down" | "up" | "both";
20
+ /** Stable id for the event payload + de-dup. */
21
+ id?: string;
22
+ }
23
+ export interface UseScrollTriggerOptions {
24
+ triggers?: TriggerPoint[];
25
+ /**
26
+ * The flip-delta debounce (px) before a DIRECTION flip commits — the anti-thrash,
27
+ * mirroring the dock's HOVER_INTENT_MS=60ms hysteresis. Default 8 (the RN
28
+ * reference).
29
+ */
30
+ flipDeltaPx?: number;
31
+ /** Resolve the continuous `progress` ref against the source (0..1). Default true. */
32
+ trackProgress?: boolean;
33
+ /** Honor `prefers-reduced-motion: reduce` (snap `progress` to discrete endpoints). Default true. */
34
+ respectReducedMotion?: boolean;
35
+ /** Crossed a trigger in the committed direction (fires ONCE per crossing). */
36
+ onCross?: (id: string, dir: "down" | "up", scrollPos: number) => void;
37
+ /** Crossed a trigger scrolling INTO its region (past it, in `down`). */
38
+ onEnter?: (id: string) => void;
39
+ /** Crossed OUT of a trigger's region (back before it, in `up`). */
40
+ onLeave?: (id: string) => void;
41
+ }
42
+ export interface UseScrollTriggerReturn {
43
+ /** Continuous 0..1 scroll progress off the SAME rAF read (native-timeline-gated). */
44
+ progress: Ref<number>;
45
+ /** Current scroll direction (committed past flipDeltaPx). */
46
+ direction: Ref<"down" | "up" | null>;
47
+ /** Current scroll velocity (px/s, framerate-independent — Δpos / Δt). */
48
+ velocity: Ref<number>;
49
+ /** Force a re-read + re-evaluate every trigger (post-resize/layout). */
50
+ recalculate: () => void;
51
+ }
52
+ /**
53
+ * The ONE scroll reader. Composes `createScrollReader` (the shared rAF-coalesced
54
+ * core); resolves triggers to px; emits direction/velocity/crossing; native-timeline-
55
+ * gated continuous ramp.
56
+ *
57
+ * @example
58
+ * ```ts
59
+ * const { progress, direction, velocity } = useScrollTrigger(() => window, {
60
+ * triggers: [{ at: 120, id: "shrink", direction: "down" }],
61
+ * onCross(id, dir, pos) { // fires once when crossing 120px scrolling down
62
+ * if (id === "shrink" && dir === "down") collapseChrome()
63
+ * },
64
+ * })
65
+ * ```
66
+ */
67
+ export declare function useScrollTrigger(scrollSource: MaybeRefOrGetter<HTMLElement | Window | null>, opts?: UseScrollTriggerOptions): UseScrollTriggerReturn;
@@ -1,14 +1,14 @@
1
1
  import { type UseSpringOptions, type SpringRef } from "./useSpring";
2
2
  export interface UseSpringPressOptions extends UseSpringOptions {
3
3
  /**
4
- * Spring `response`. Default 0.25s (iOS tap-press canonical; faster
5
- * than the default `useSpring` 0.5s to keep press feedback under the
6
- * 100ms perception threshold).
4
+ * Spring `response`. Default `0.15s` — the `press` SPRING_PRESETS row (the
5
+ * Apple `interactiveSpring`): the sub-100ms iOS tap-press window, faster than
6
+ * the generic `useSpring` 0.5s so the feedback lands under the 100ms threshold.
7
7
  */
8
8
  response?: number;
9
9
  /**
10
- * Spring `dampingFraction`. Default 0.7 (overshoots ~5% — feels
11
- * springy but doesn't ring).
10
+ * Spring `dampingFraction`. Default `0.86` — the `press` row's ζ: a tiny
11
+ * sub-perceptual rebound (springy/alive) that does NOT ring.
12
12
  */
13
13
  dampingFraction?: number;
14
14
  }
@@ -25,4 +25,28 @@ export declare function useStaggerReveal(options?: StaggerRevealConfig): {
25
25
  register: (el: HTMLElement | null, index?: number) => void;
26
26
  revealed: Record<number, boolean>;
27
27
  };
28
+ /**
29
+ * The `[data-scroll-reveal-once]` latch — BC.W-MOTION-PRESETS.
30
+ *
31
+ * The `scroll-driven.css` `[data-scroll-reveal]` recipe rides a native `view()`
32
+ * timeline that RE-FIRES its entrance every time a child re-enters the entry range
33
+ * — wrong for a virtualized/teleporting list (a row scrolls out + back and re-plays
34
+ * the fade-lift). A `view()` timeline cannot latch "play once" (the CSS limit), so
35
+ * the `[data-scroll-reveal-once]` opt-in plays the entrance ONCE: this directive
36
+ * adds `data-revealed=""` to each child on its FIRST cross and `unobserve`s it (the
37
+ * SAME `once: true` discipline `useStaggerReveal` runs above — `if (once)
38
+ * observer?.unobserve(el)`); the CSS plays the one-shot `gl-reveal-once` keyframe
39
+ * keyed off `[data-revealed]`, NOT the live `view()` range. NO second observer
40
+ * engine — the same `IntersectionObserver` the composable speaks for the `once`
41
+ * case, packaged as a Vue directive a consumer binds on the scroller.
42
+ *
43
+ * On an engine without `IntersectionObserver` (SSR/old) it reveals immediately so
44
+ * the terminal state is correct (the CSS animation simply never plays). Under PRM
45
+ * the scroll-driven.css `@media` outer gate drops the entrance and the row paints
46
+ * in-place (a flourish — the reveal carve, not a legibility cue).
47
+ */
48
+ export declare const vScrollRevealOnce: {
49
+ mounted(scroller: HTMLElement): void;
50
+ unmounted(scroller: HTMLElement): void;
51
+ };
28
52
  export {};
@@ -4,4 +4,7 @@ export type { SidebarFollowOptions } from "./useSidebarFollow";
4
4
  export { useSidebarState } from "./useSidebarState";
5
5
  export type { UseSidebarStateOptions, GenericSidebarState } from "./useSidebarState";
6
6
  export { useTreeIndex, buildTreeIndex, isActive, isInActiveChain } from "./useTreeIndex";
7
- export type { TreeNode, TreeIndexEntry, SidebarSection, SidebarIndexEntry, SidebarState, ScrollTrackerOptions, } from "./types";
7
+ export { useScrollTo } from "./useScrollTo";
8
+ export { useClickDelegate } from "./useClickDelegate";
9
+ export { useLazyLoader } from "./useLazyLoader";
10
+ export type { TreeNode, TreeIndexEntry, SidebarSection, SidebarIndexEntry, SidebarState, ScrollTrackerOptions, ScrollToOptions, ClickDelegateOptions, LazyLoaderOptions, } from "./types";
@@ -4,9 +4,13 @@ export interface TreeNode {
4
4
  id: string;
5
5
  children?: TreeNode[];
6
6
  }
7
- /** Generic flat index entry for a tree node. */
8
- export interface TreeIndexEntry<T extends TreeNode = TreeNode> {
9
- node: T;
7
+ /**
8
+ * The flat-hierarchy fields shared by every flattened tree row. Both the
9
+ * sidebar's `TreeIndexEntry` and the virtual-windowing `FlatSection`
10
+ * (`composables/virtual`) extend this — the four fields are declared ONCE,
11
+ * not redeclared independently (BC.W-VIRTUAL-WINDOW type-reconcile).
12
+ */
13
+ export interface SectionHierarchy {
10
14
  depth: number;
11
15
  /** ID of the root-level ancestor (self.id when depth === 0). */
12
16
  rootId: string;
@@ -15,6 +19,10 @@ export interface TreeIndexEntry<T extends TreeNode = TreeNode> {
15
19
  /** Index within root-level nodes. */
16
20
  rootIndex: number;
17
21
  }
22
+ /** Generic flat index entry for a tree node. */
23
+ export interface TreeIndexEntry<T extends TreeNode = TreeNode> extends SectionHierarchy {
24
+ node: T;
25
+ }
18
26
  /** A section in the sidebar tree. */
19
27
  export interface SidebarSection extends TreeNode {
20
28
  title: string;
@@ -29,6 +37,63 @@ export interface ScrollTrackerOptions {
29
37
  rootMargin?: string;
30
38
  threshold?: number;
31
39
  }
40
+ /**
41
+ * Options for `useScrollTo` — the rAF-retry scroll-to-id + treeIndex-aware
42
+ * partial-load (the ToC-click → virtual-window warm bridge).
43
+ *
44
+ * GENERIC-count-sourced: `totalCount`/`visibleCount` are plain params, NEVER a
45
+ * consumer type. When a `treeIndex` is passed, `ensureTargetLoaded` loads only
46
+ * up to the target section's `rootIndex + 2` (the partial-load) instead of
47
+ * force-loading everything.
48
+ */
49
+ export interface ScrollToOptions {
50
+ /** The scroll container element to scroll within. */
51
+ scrollContainer: Ref<HTMLElement | null>;
52
+ /** Total number of items/sections (the generic count ceiling). */
53
+ totalCount: number;
54
+ /** The progressively-rendered count this leaf writes the partial-load into. */
55
+ visibleCount: Ref<number>;
56
+ /** Pixel offset from the container top. Default: 16 */
57
+ scrollOffset?: number;
58
+ /** Max rAF retry attempts before bailing. Default: 60 */
59
+ maxAttempts?: number;
60
+ /**
61
+ * Tree index for resolving a target id to its root section index. When
62
+ * provided, `scrollTo` loads only up to the target's root section + buffer
63
+ * (`rootIndex + 2`) instead of all content. Shares the same `TreeIndexEntry`
64
+ * the windowing `FlatSection` hierarchy fields reconcile with.
65
+ */
66
+ treeIndex?: Map<string, TreeIndexEntry>;
67
+ }
68
+ /**
69
+ * Options for `useClickDelegate` — the ONE delegated `[data-scroll-target]`
70
+ * click→scroll handler for an entire ToC (not N per-link listeners).
71
+ */
72
+ export interface ClickDelegateOptions {
73
+ /** Container element to attach the single delegated listener to. */
74
+ container: Ref<HTMLElement | null>;
75
+ /** CSS selector for clickable elements. Default: "[data-scroll-target]" */
76
+ selector?: string;
77
+ /** Attribute to read the target id from. Default: "data-scroll-target" */
78
+ attribute?: string;
79
+ /** Maps the attribute value to a scroll-target id. Return null to skip. */
80
+ resolve: (value: string) => string | null;
81
+ /** Called with the resolved id (typically `useScrollTo`'s `scrollTo`). */
82
+ scrollTo: (id: string) => void;
83
+ }
84
+ /**
85
+ * Options for `useLazyLoader` — the progressive batch-render count. Distinct
86
+ * from `useInfiniteScroll` (which fires a data-fetch `onLoadMore` trigger):
87
+ * the lazy-loader grows a RENDER-MOUNT count over an already-loaded list.
88
+ */
89
+ export interface LazyLoaderOptions {
90
+ /** Sections rendered per batch. Default: 2 */
91
+ batchSize?: number;
92
+ /** IntersectionObserver rootMargin for the bottom sentinel. Default: "0px 0px 600px 0px" */
93
+ rootMargin?: string;
94
+ /** Scroll container for the fast-drag scroll fallback. Falls back to document. */
95
+ scrollContainer?: Ref<HTMLElement | null>;
96
+ }
32
97
  /** Reactive state returned by `useSidebarState`. */
33
98
  export interface SidebarState {
34
99
  sections: SidebarSection[];
@@ -0,0 +1,4 @@
1
+ import type { ClickDelegateOptions } from "./types";
2
+ export declare function useClickDelegate(options: ClickDelegateOptions): {
3
+ handleClick: (e: MouseEvent) => void;
4
+ };
@@ -0,0 +1,5 @@
1
+ import type { LazyLoaderOptions } from "./types";
2
+ export declare function useLazyLoader(totalCount: number, options?: LazyLoaderOptions): {
3
+ visibleCount: import("vue").Ref<number, number>;
4
+ loadSentinel: import("vue").Ref<HTMLElement | null, HTMLElement | null>;
5
+ };
@@ -0,0 +1,5 @@
1
+ import type { ScrollToOptions } from "./types";
2
+ export declare function useScrollTo(options: ScrollToOptions): {
3
+ scrollTo: (id: string) => void;
4
+ cancel: () => void;
5
+ };
@@ -0,0 +1,4 @@
1
+ export { useVirtualSectionWindow, clearSessionHeightCache, } from "./useVirtualSectionWindow";
2
+ export { useWindowedStore } from "./useWindowedStore";
3
+ export { buildSectionLayout, findSectionOffset, resolveActiveSection, resolveSectionWindow, } from "./virtualSectionLayout";
4
+ export type { FlatSection, SectionLayout, SectionWindowRange, ForcedSectionWindowRange, } from "./virtualSectionLayout";
@@ -0,0 +1,72 @@
1
+ import { type MaybeRefOrGetter, type Ref } from "vue";
2
+ import type { FlatSection } from "./virtualSectionLayout";
3
+ /**
4
+ * Lineage: a glass-ui primitive at v0.9.4, retired at v1.0 (MIGRATION.md §3.2),
5
+ * carried on as a verbatim transposed copy in the words app, and HOME again at
6
+ * BC (the live words consumer + the dock-search results list overturn the
7
+ * no-consumer retirement verdict). Byte-faithful to the proven words copy save
8
+ * the recorded refinements: the container/content ResizeObservers route through
9
+ * the house `useResizeObserver` leaf (cleanup discipline) instead of raw
10
+ * `new ResizeObserver`, and `findSectionOffset` is the binary-search variant.
11
+ */
12
+ interface VirtualWindowConfig<T extends FlatSection = FlatSection> {
13
+ /** The flat list of section items to virtualize. */
14
+ items: MaybeRefOrGetter<readonly T[]>;
15
+ /**
16
+ * The element whose scroll position drives the window.
17
+ * `null` = use `window` / document scroll.
18
+ */
19
+ scrollContainer: Ref<HTMLElement | null>;
20
+ /**
21
+ * The wrapper element around the virtualized content.
22
+ * When provided, scroll offset is computed relative to this element's
23
+ * position in the page, so content above it (headers, images, etc.)
24
+ * is correctly excluded from the layout calculation.
25
+ */
26
+ contentEl?: Ref<HTMLElement | null>;
27
+ /** Overscan before the viewport in pixels. Default: viewport height. */
28
+ overscanBeforePx?: number;
29
+ /** Overscan after the viewport in pixels. Default: 2x viewport height. */
30
+ overscanAfterPx?: number;
31
+ /** Number of items to warm before a target when using `ensureTargetWindow`. Default: 2. */
32
+ warmTargetBefore?: number;
33
+ /** Number of items to warm after a target when using `ensureTargetWindow`. Default: 3. */
34
+ warmTargetAfter?: number;
35
+ }
36
+ /**
37
+ * Evict every cached measured section height. The documented escape for a
38
+ * consumer that wants to drop the module-global `SESSION_HEIGHT_CACHE` (a
39
+ * font-size change, a layout reflow that invalidates prior measurements).
40
+ */
41
+ export declare function clearSessionHeightCache(): void;
42
+ /**
43
+ * Scroll-based virtual windowing composable for section lists.
44
+ *
45
+ * Renders only the items visible in (or near) the scroll viewport,
46
+ * using spacer divs to maintain correct scroll height. Supports:
47
+ *
48
+ * - Measured heights: call `measureSection(id, el)` from a template ref
49
+ * to replace estimated heights with real DOM measurements.
50
+ * - Warm targeting: call `ensureTargetWindow(id)` to force an item into
51
+ * the render window before scrolling to it (auto-releases after 320ms).
52
+ * - Active tracking: `activeId` / `activeRootId` report which section
53
+ * is currently at the 20% viewport mark. NOTE — this is the windowing-LOCAL
54
+ * render-active reader; a ToC/sidebar consumer reads `useScrollTracker`'s
55
+ * `activeId` (the deepest-visible reader) for the binding highlight. The two
56
+ * serve distinct concerns and are deliberately NOT one function
57
+ * (BC.W-VIRTUAL-WINDOW active-section reconcile).
58
+ * - Content offset: provide `contentEl` to correctly handle non-virtualized
59
+ * content (headers, banners) above the virtual list.
60
+ */
61
+ export declare function useVirtualSectionWindow<T extends FlatSection>(options: VirtualWindowConfig<T>): {
62
+ visibleItems: import("vue").ComputedRef<T[]>;
63
+ topSpacerPx: import("vue").ComputedRef<number>;
64
+ bottomSpacerPx: import("vue").ComputedRef<number>;
65
+ measureSection: (id: string, el: HTMLElement | null) => void;
66
+ ensureTargetWindow: (id: string) => void;
67
+ getOffsetFor: (id: string) => number | null;
68
+ activeId: import("vue").ComputedRef<any>;
69
+ activeRootId: import("vue").ComputedRef<any>;
70
+ recalculate: () => void;
71
+ };
72
+ export {};
@@ -0,0 +1,43 @@
1
+ import { type Ref, type ShallowRef } from "vue";
2
+ /**
3
+ * Lineage: a glass-ui primitive at v0.9.4, retired at v1.0 (MIGRATION.md §3.3),
4
+ * carried on as a verbatim transposed copy in the words app, and HOME again at
5
+ * BC (the words wordlist store is the live consumer the no-consumer retirement
6
+ * verdict missed). Byte-faithful to the proven words copy — the
7
+ * generation-counter stale-append rejection is the load-bearing concurrency
8
+ * primitive, preserved verbatim.
9
+ */
10
+ interface ResidentWindowConfig {
11
+ /** Maximum items to keep in memory. Default: 200. */
12
+ maxResident?: number;
13
+ }
14
+ interface ResidentWindowState<T> {
15
+ /** Currently loaded items (a sliding window of the full list). */
16
+ items: ShallowRef<T[]>;
17
+ /** Logical offset of `items[0]` in the full list. */
18
+ windowStart: Ref<number>;
19
+ /** Generation counter -- increments on each reset. Used to reject stale appends. */
20
+ generation: Ref<number>;
21
+ /** Append or replace items. `replace=true` resets window; `replace=false` appends with eviction from front. */
22
+ set(newItems: T[], replace?: boolean): void;
23
+ /** Prepend items before the current window. Evicts from the end if over `maxResident`. */
24
+ prepend(newItems: T[], newWindowStart: number): void;
25
+ /** Clear all items and reset window. */
26
+ clear(): void;
27
+ /**
28
+ * Append items only if the generation matches (i.e., no reset happened since the fetch started).
29
+ * Returns `true` if the append was accepted, `false` if rejected (stale).
30
+ */
31
+ appendIfCurrent(newItems: T[], expectedGeneration: number): boolean;
32
+ }
33
+ /**
34
+ * Sliding-window store primitive for paginated / infinite-scroll data.
35
+ *
36
+ * Supports both forward (append) and backward (prepend) loading.
37
+ * When items exceed `maxResident`, trims from the opposite end.
38
+ *
39
+ * Uses a generation counter to reject stale appends after a backward reset,
40
+ * preventing race conditions between concurrent page fetches.
41
+ */
42
+ export declare function useWindowedStore<T>(options?: ResidentWindowConfig): ResidentWindowState<T>;
43
+ export {};
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Pure layout computation functions for virtual section scrolling.
3
+ *
4
+ * These are stateless — they take data in, return layout info out.
5
+ * No Vue reactivity, no DOM access.
6
+ *
7
+ * Lineage: this engine was a glass-ui primitive at v0.9.4, retired at v1.0
8
+ * (MIGRATION.md §3.4 — "0 production consumers, demo-only"), and lived on as
9
+ * a verbatim transposed copy in the words app. The retirement is REVERSED at
10
+ * BC: the live words consumer + the dock-search results list overturn the
11
+ * no-consumer verdict, so the windowing engine comes HOME. Byte-faithful to
12
+ * the proven words copy except the one functional refinement recorded below
13
+ * (`findSectionOffset` binary search) and the shared-hierarchy type-reconcile.
14
+ */
15
+ import type { SectionHierarchy } from "../sidebar/types";
16
+ /**
17
+ * A flattened section item with hierarchy metadata for virtual scrolling.
18
+ *
19
+ * The four hierarchy fields (`depth`/`rootId`/`parentId`/`rootIndex`) come
20
+ * from the shared `SectionHierarchy` base (`composables/sidebar/types`) — the
21
+ * same fields the sidebar's `TreeIndexEntry` carries, declared ONCE. The
22
+ * producer (`flattenPaperSections` in latex-paper, the dock-search result
23
+ * flattener) builds these in the consumer; glass-ui owns only the contract.
24
+ */
25
+ export interface FlatSection extends SectionHierarchy {
26
+ id: string;
27
+ index: number;
28
+ estimatedHeight: number;
29
+ }
30
+ /** A single entry in a computed section layout with resolved position. */
31
+ interface VirtualLayoutEntry<T extends FlatSection = FlatSection> {
32
+ item: T;
33
+ height: number;
34
+ top: number;
35
+ bottom: number;
36
+ }
37
+ /** Complete layout for a list of sections — entries plus total height. */
38
+ export interface SectionLayout<T extends FlatSection = FlatSection> {
39
+ entries: VirtualLayoutEntry<T>[];
40
+ totalHeight: number;
41
+ /**
42
+ * Entry slots sorted ascending by `item.id`, so `findSectionOffset` can
43
+ * binary-search an arbitrary string id in O(log n) (the words copy
44
+ * linear-scanned `entries` — `virtualSectionLayout.ts:244-252`). Built
45
+ * once in `buildSectionLayout`; the `top` is read straight off the matched
46
+ * entry, so the offset answer is byte-identical to the linear scan.
47
+ */
48
+ byId: VirtualLayoutEntry<T>[];
49
+ }
50
+ /** The visible window range with spacer sizes for virtual scrolling. */
51
+ export interface SectionWindowRange {
52
+ startIndex: number;
53
+ endIndex: number;
54
+ topSpacerPx: number;
55
+ bottomSpacerPx: number;
56
+ }
57
+ /** A forced index range that must be included in the visible window. */
58
+ export interface ForcedSectionWindowRange {
59
+ startIndex: number;
60
+ endIndex: number;
61
+ }
62
+ /**
63
+ * Build a layout from a flat list of sections using a height resolver.
64
+ *
65
+ * Each entry gets an absolute `top` and `bottom` offset in pixels,
66
+ * computed sequentially from index 0. Heights are rounded and clamped >= 1.
67
+ */
68
+ export declare function buildSectionLayout<T extends FlatSection>(items: readonly T[], getHeight: (item: T) => number): SectionLayout<T>;
69
+ /**
70
+ * Resolve which section indices are visible given scroll state.
71
+ *
72
+ * Uses binary search for O(log n) lookup. Overscan extends the window
73
+ * before and after the viewport. An optional `forcedRange` guarantees
74
+ * certain indices are always included (used for warm-up targeting).
75
+ */
76
+ export declare function resolveSectionWindow<T extends FlatSection>(layout: SectionLayout<T>, scrollTopPx: number, viewportHeightPx: number, overscanBeforePx: number, overscanAfterPx: number, forcedRange?: ForcedSectionWindowRange | null): SectionWindowRange;
77
+ /**
78
+ * Find the section that is "active" at a given scroll offset.
79
+ *
80
+ * Returns the last section whose top edge is at or before `activeOffsetPx`.
81
+ *
82
+ * NOTE — this is the windowing-LOCAL render-active reader (the section at the
83
+ * 20%-viewport mark, used to label the current render window). It is NOT the
84
+ * ToC's binding active-section reader: a sidebar/ToC consumer reads
85
+ * `useScrollTracker.activeId` (the deepest-visible reader) for the highlight.
86
+ * The two serve distinct concerns and are deliberately NOT one function
87
+ * (BC.W-VIRTUAL-WINDOW active-section reconcile).
88
+ */
89
+ export declare function resolveActiveSection<T extends FlatSection>(layout: SectionLayout<T>, activeOffsetPx: number): T | null;
90
+ /**
91
+ * Find the pixel offset of a section by its `id`.
92
+ * Returns `null` if the section is not in the layout.
93
+ *
94
+ * REFINEMENT (BC.W-VIRTUAL-WINDOW): the words copy linear-scans `entries`
95
+ * matching on `id` (O(n), `virtualSectionLayout.ts:244-252`). Here we binary
96
+ * search `layout.byId` — the entries sorted ascending by `item.id` in
97
+ * `buildSectionLayout` — which is a total order over the string ids, so the
98
+ * search is correct + O(log n). The `top` is read straight off the matched
99
+ * entry, so the answer is byte-identical to the linear scan (the fixture pins
100
+ * this over a 1000-item layout).
101
+ */
102
+ export declare function findSectionOffset<T extends FlatSection>(layout: SectionLayout<T>, id: string): number | null;
103
+ export {};
@@ -0,0 +1 @@
1
+ export * from "./components/custom/concentric";