@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
@@ -19,9 +19,11 @@
19
19
  * the implicit stagger [NO setTimeout], the spring-clocked
20
20
  * coupled transform+opacity build).
21
21
  * .scroll-pin — the fixed-stage-advances-time scroll-pinned register
22
- * (position: sticky stage + a named scroll-timeline linked via
23
- * timeline-scope; the stage's internal phases advance with
24
- * scroll progress, compositor channels only).
22
+ * (position: sticky stage; the stage's internal phases advance
23
+ * against a spring-damped `--pin-t` the keyframes.js scroll spine
24
+ * `useScrollPin` writes per scroll tick — EVERY engine, no
25
+ * `animation-timeline`. The dead `--gl-pin` named scroll-timeline
26
+ * is EXCISED — BD.W-SCROLL-LIQUID-ENGINE).
25
27
  * .smooth-scroll — the native scroll-behavior: smooth opt-in (PRM-gated,
26
28
  * zero runtime — a smooth-scroll under reduce is a vestibular
27
29
  * concern, so the smooth interpolation is dropped under PRM).
@@ -31,9 +33,10 @@
31
33
  * so under PRM no scroll/build animation attaches at all and content renders in
32
34
  * its terminal state (the `from` keyframe never applies because the animation
33
35
  * never binds; the .scroll-pin stage shows its terminal phase, no sweep). The
34
- * scroll-driven recipes sit under a second `@supports (animation-timeline: …)`
35
- * gate so a non-supporting engine gets the STATIC layout (the .scroll-pin stage
36
- * is a correct non-pinned read, never a broken silent stage).
36
+ * `view()`-cascade recipe sits under a second `@supports (animation-timeline: …)`
37
+ * gate so a non-supporting engine gets the STATIC cascade layout. The .scroll-pin
38
+ * register needs NO `@supports` gate — its `--pin-t` is JS-written by `useScrollPin`
39
+ * on every engine; under PRM the composable zeroes the scrub (1:1, no drift).
37
40
  *
38
41
  * COMPOSITOR-ONLY (the proof:no-layout-animation floor BB.W-CARD-COMPOSITE): every
39
42
  * @keyframes step + transition animates ONLY transform/translate/scale/opacity/
@@ -45,6 +48,39 @@
45
48
  * register THREADS them, it never re-tunes a spring value or a duration).
46
49
  */
47
50
 
51
+ /* ─────────────────────────────────────────────────────────────────────────────
52
+ * BD.W-SCROLL-LIQUID-ENGINE — the liquid-weight scroll tokens.
53
+ *
54
+ * The `--ease-scroll-spring` is the compositor spring-scrub the cascade rides
55
+ * (ZERO JS). The pin-phase fractions are the calc-friendly window bounds the
56
+ * `--pin-t` recipes read (a NUMBER, not the `%` the dead `animation-range` used).
57
+ * All golden-proportioned (1/φ family). The liquid-weight scrub itself is a JS-side
58
+ * param of `useScrollScene`/`useScrollPin` (the φ-derived defaults live in the
59
+ * composables, PRM → 0 inside them). The cartoon-punch deps
60
+ * (`--motion-weight`/`--ease-cartoon-punch`/`--shadow-cartoon-md`) SHIP today and are
61
+ * consumed via `var(…, fallback)` so the recipes stay GREEN. */
62
+ :root {
63
+ /* The spring-shaped compositor cascade ease — the `--spring-gentle` twin
64
+ (ζ ≈ 0.85, a `springLinearStops` `linear()` stop-set). Degrades to the
65
+ no-overshoot `--ease-out` where `linear()` is unsupported (Safari < 17.2 —
66
+ the house precedent). `--spring-gentle` SHIPS (scheme-motion.css). */
67
+ --ease-scroll-spring: var(--spring-gentle, var(--ease-out, ease-out));
68
+ /* The pin reveal/expand windows as 0..1 fractions (the `--pin-t` recipes read
69
+ a NUMBER for the calc, not the `%` the dead timeline used). 1/φ² + 0.9. */
70
+ --scroll-pin-phase-reveal-end-frac: 0.382;
71
+ --scroll-pin-phase-expand-end-frac: 0.9;
72
+ /* The volume-preserving squash depth — 1 − 1/φ⁴. */
73
+ --scroll-pin-squash-floor: 0.944;
74
+ }
75
+
76
+ @supports not (animation-timing-function: linear(0, 1)) {
77
+ :root {
78
+ /* Where `linear()` is unsupported the spring twin cannot resolve — fall to
79
+ the no-overshoot settle bezier (a scrubbed spring without the stop-set). */
80
+ --ease-scroll-spring: var(--ease-out, ease-out);
81
+ }
82
+ }
83
+
48
84
  /* ─────────────────────────────────────────────────────────────────────────────
49
85
  * .scroll-build — the route-enter page-build.
50
86
  *
@@ -160,8 +196,15 @@
160
196
  progress map (the spring shaping lives in the section's own settle
161
197
  where the build is mount-driven; a scroll-bound timeline reads
162
198
  1:1 with scroll position — a spring on a scrubbed timeline reads as
163
- a scrubbed spring, which is correct here as the linear progress map). */
164
- animation: gl-cascade-build auto linear both;
199
+ a scrubbed spring, which is correct here as the linear progress map).
200
+
201
+ BD.W-SCROLL-LIQUID-ENGINE: the easing is the spring-shaped
202
+ `--ease-scroll-spring` (a `springLinearStops` `linear()` twin of
203
+ `--spring-gentle`, ζ ≈ 0.85) — each card's scroll-scrubbed entrance
204
+ reads with spring WEIGHT (a hair of overshoot at the end of its
205
+ range), ZERO JS (the platform carries it on the compositor). The
206
+ Safari-degrade-to-cel-slam arm lives in the entrance-reveal scope. */
207
+ animation: gl-cascade-build auto var(--ease-scroll-spring, linear) both;
165
208
  animation-timeline: view(block);
166
209
  animation-range: entry 0% entry var(--scroll-cascade-range-end, 45%);
167
210
  }
@@ -202,83 +245,97 @@
202
245
  }
203
246
 
204
247
  /* ─────────────────────────────────────────────────────────────────────────────
205
- * .scroll-pin — the fixed-stage-advances-time scroll-pinned register.
248
+ * .scroll-pin — the fixed-stage-advances-time scroll-pinned register, RE-INVENTED
249
+ * on a JS-written `--pin-t` (BD.W-SCROLL-LIQUID-ENGINE).
250
+ *
251
+ * THE DEFECT (excised, no alias): the prior register bound the phase reveals to a
252
+ * named `scroll-timeline: --gl-pin` declared on `.scroll-pin` + `timeline-scope:
253
+ * --gl-pin`. A named scroll-timeline measures the DECLARING element's OWN scroll
254
+ * progress — but `.scroll-pin` is `overflow: visible` with zero internal scroll
255
+ * extent, so it is NOT a scroll port: `--gl-pin`'s `currentTime` was permanently
256
+ * `null` and the bound `gl-pin-reveal` animation parked at its `from` keyframe
257
+ * forever (dead on EVERY engine, including those that fully support the native
258
+ * feature — structural deadness, not a Safari degrade).
206
259
  *
207
- * The SOTA "scrolling does not move the scene, it advances time inside it" model:
208
- * a `.scroll-pin` tall container (the `--scroll-pin-stage-height` temporal space)
209
- * holds a `.scroll-pin-stage` `position: sticky` element. The container declares
210
- * a named `scroll-timeline`; the stage's internal phase animations bind to that
211
- * named timeline via `timeline-scope` (so the stage animates against the
212
- * CONTAINER'S scroll progress — the fixed stage advances time). The phase
213
- * animations are compositor-only (transform/opacity/clip-path over the
214
- * `animation-range` phase windows — the Codrops phased sequence: a reveal phase
215
- * 0..45%, an expand phase 45..90%, a settle phase 90..100%).
260
+ * THE FIX (every engine, no `animation-timeline`, no `@supports` gate): the stage
261
+ * is plain `position: sticky` + `contain: layout paint` (bounded recalc); the
262
+ * phases read a SPRING-DAMPED `--pin-t ∈ [0, 1]` that `useScrollPin` (the
263
+ * keyframes.js scroll spine — `SpringProgress` over the ONE `createScrollReader`)
264
+ * writes off the REAL scroll port per coalesced tick. The reveal arrives with
265
+ * inertia, overshoots (ζ ≈ 0.85), then settles — the cartoon-slam felt register.
266
+ * Works on Safari 15+ with no timeline primitive.
216
267
  *
217
- * `timeline-scope` is the newest primitive — the `@supports` gate probes it (NOT
218
- * just `scroll()`), so an engine with `scroll()`/`view()` but not `timeline-scope`
219
- * gets the STATIC layout (a correct non-pinned read: the stage is a plain sticky
220
- * element at its terminal phase, never a broken silent stage). In 2026
221
- * `timeline-scope` ships alongside `scroll()`/`view()` (the universal-support
222
- * convergence), so the CSS-only register is the ship; the JS fallback leaf (mirror
223
- * useScrollProgress's dual-path single-writer) is BOOKED only on a material
224
- * engine-gap reveal (the §Triumvirate support-matrix trigger) — never a JS scroll
225
- * lib (the no-net-dep fence is binding either way).
268
+ * Liquid weight is the DEFAULT here (the §L4 no-stiff-snap law): `useScrollPin`'s
269
+ * `SpringProgress` keeps converging AFTER the finger lifts. PRM zeroes the scrub
270
+ * (the pin scrub → 0 under reduce inside the composable) so `--pin-t` tracks
271
+ * scroll 1:1 with no interpolated drift — the vestibular floor.
226
272
  * ─────────────────────────────────────────────────────────────────────────── */
227
- @media (prefers-reduced-motion: no-preference) {
228
- @supports (animation-timeline: scroll()) and (timeline-scope: --gl-pin) {
229
- @keyframes gl-pin-reveal {
230
- from {
231
- opacity: 0;
232
- transform: translateY(var(--scroll-pin-lift, 2.5rem)) scale(0.96);
233
- }
234
- to {
235
- opacity: 1;
236
- transform: translateY(0) scale(1);
237
- }
238
- }
239
- @keyframes gl-pin-settle {
240
- from {
241
- transform: scale(1);
242
- opacity: 1;
243
- }
244
- to {
245
- /* The settle phase — a gentle compositor drift, never a layout move. */
246
- transform: scale(1.02) translateY(calc(-1 * var(--scroll-pin-lift, 2.5rem)));
247
- opacity: 1;
248
- }
249
- }
250
273
 
251
- /* The tall temporal container declares a named scroll-timeline + exposes it
252
- to descendants via timeline-scope (the fixed-stage-advances-time link). */
253
- .scroll-pin {
254
- position: relative;
255
- block-size: var(--scroll-pin-stage-height, 320vh);
256
- scroll-timeline-name: --gl-pin;
257
- scroll-timeline-axis: block;
258
- timeline-scope: --gl-pin;
259
- }
274
+ /* The typed pin progress register — `inherits: true` so the sticky stage + the
275
+ phase children read the `--pin-t` written on the `.scroll-pin` container; a typed
276
+ `@property` makes the calc cheaper + lets an optional native cosmetic-parallax leg
277
+ composite it. Registered OUTSIDE the PRM gate (a custom property is inert — it only
278
+ drives motion through the recipes below, which ARE PRM-gated). */
279
+ @property --pin-t {
280
+ syntax: "<number>";
281
+ inherits: true;
282
+ initial-value: 0;
283
+ }
260
284
 
261
- /* The sticky stage — pinned to the viewport while the container scrolls
262
- past; its phases advance against the container's --gl-pin timeline. */
263
- .scroll-pin-stage {
264
- position: sticky;
265
- inset-block-start: 0;
266
- }
285
+ .scroll-pin {
286
+ position: relative;
287
+ block-size: var(--scroll-pin-stage-height, 320vh);
288
+ }
267
289
 
268
- /* Phase 1 — the reveal (0..45% of the container scroll). */
269
- .scroll-pin-stage .scroll-pin-phase-reveal {
270
- animation: gl-pin-reveal auto linear both;
271
- animation-timeline: --gl-pin;
272
- animation-range: 0% var(--scroll-pin-phase-reveal-end, 45%);
273
- }
290
+ .scroll-pin-stage {
291
+ position: sticky;
292
+ inset-block-start: 0;
293
+ /* Bounded main-thread recalc — the `--pin-t` write is a style recalc on this
294
+ isolated subtree, NOT a reflow (translate/scale/opacity don't reflow). */
295
+ contain: layout paint;
296
+ }
274
297
 
275
- /* Phase 2 — the settle/expand (the reveal-end..expand-end window). */
276
- .scroll-pin-stage .scroll-pin-phase-settle {
277
- animation: gl-pin-settle auto linear both;
278
- animation-timeline: --gl-pin;
279
- animation-range: var(--scroll-pin-phase-reveal-end, 45%)
280
- var(--scroll-pin-phase-expand-end, 90%);
281
- }
298
+ @media (prefers-reduced-motion: no-preference) {
299
+ /* Phase 1 — the reveal. Reads `--pin-t` mapped across the reveal window
300
+ (0 .. --scroll-pin-phase-reveal-end-frac). The lift + squash ride the
301
+ compositor longhands (`translate`/`scale` — NEVER the `transform` shorthand,
302
+ which would fold a centering translate; the longhands stack independently).
303
+ The squash floor is volume-preserving (a hair of squash on entry). */
304
+ .scroll-pin-stage .scroll-pin-phase-reveal {
305
+ --t: clamp(
306
+ 0,
307
+ calc(var(--pin-t, 0) / var(--scroll-pin-phase-reveal-end-frac, 0.382)),
308
+ 1
309
+ );
310
+ opacity: var(--t);
311
+ translate: 0 calc((1 - var(--t)) * var(--scroll-pin-lift, 2.5rem));
312
+ scale: calc(
313
+ var(--scroll-pin-squash-floor, 0.944) +
314
+ (1 - var(--scroll-pin-squash-floor, 0.944)) * var(--t)
315
+ );
316
+ /* will-change scoped to the active phase — added while the pin is in range,
317
+ never the full 320vh lifetime (the audit's transient-promotion rule). */
318
+ will-change: transform, opacity;
319
+ }
320
+
321
+ /* Phase 2 — the settle/drift. Reads the reveal-end..expand-end window of
322
+ `--pin-t`; a gentle compositor drift as the reader continues past, never a
323
+ layout move. */
324
+ .scroll-pin-stage .scroll-pin-phase-settle {
325
+ --t: clamp(
326
+ 0,
327
+ calc(
328
+ (var(--pin-t, 0) - var(--scroll-pin-phase-reveal-end-frac, 0.382)) /
329
+ (
330
+ var(--scroll-pin-phase-expand-end-frac, 0.9) -
331
+ var(--scroll-pin-phase-reveal-end-frac, 0.382)
332
+ )
333
+ ),
334
+ 1
335
+ );
336
+ opacity: 1;
337
+ translate: 0 calc(var(--t) * -1 * var(--scroll-pin-lift, 2.5rem));
338
+ scale: calc(1 + 0.02 * var(--t));
282
339
  }
283
340
  }
284
341
 
@@ -0,0 +1,123 @@
1
+ /*
2
+ * scroll-chrome.css — the scroll-driven floating-CHROME collapse recipe
3
+ * (BC.W-SCROLL-CHROME).
4
+ *
5
+ * Cascade rung AFTER scroll-choreography.css. Where scroll-choreography.css is the
6
+ * ENTRANCE register (the page-build / section-cascade / scroll-pinned reveals), this is
7
+ * the COLLAPSE-STATE recipe a floating chrome bar (a dock, a header) composes: scroll
8
+ * down and it SHRINKS smoothly into a compact form; scroll up and it EXPANDS back; on
9
+ * scroll-stop it SNAPS to the nearest state (the `useScrollChrome` JS machine owns the
10
+ * snap + the ramp value — this recipe is the compositor paint of `--chrome-collapse-t`).
11
+ *
12
+ * .scroll-chrome — the chrome surface (a dock/header) reads `--chrome-collapse-t`
13
+ * (0 expanded → 1 collapsed; the @property reg in property-regs.css)
14
+ * for the COMPOSITOR shrink/quiet/shadow-lift ramp.
15
+ *
16
+ * COMPOSITOR-ONLY (the proof:no-layout-animation floor — motion-canon P5). The shrink is
17
+ * `transform: scale()/translateY()` — NEVER an animated `height`/`padding`/`width` (the
18
+ * box never reflows per scroll frame; the CDP Layout track stays flat). The quiet is
19
+ * `opacity` BOUNDED above a never-invisible floor (the NN/g pale-fade-into-content trap
20
+ * is the FORBIDDEN direction — the bar reads at EVERY collapse fraction). The
21
+ * SEPARATION/shadow LIFTS as content scrolls under (Apple "as text scrolls underneath,
22
+ * shadows become more prominent") — `box-shadow` is a paint prop, compositor-safe.
23
+ *
24
+ * THE BLUR STAYS CRISP (the W-DOCK-SHRINK-BLUR fence). The chrome's resting
25
+ * `backdrop-filter` blur is NOT animated by `--chrome-collapse-t` — a shrunken bar is
26
+ * crisp glass, not a blurry mess. The recipe touches ONLY transform/opacity/box-shadow;
27
+ * the surface's own `glass-*` tier owns the (untouched) backdrop blur.
28
+ *
29
+ * PERSISTENT BY DEFAULT (the iOS-27 lesson). `--chrome-collapse-t` rests at 0 (the
30
+ * @property initial-value), so a bare `.scroll-chrome` is byte-identical to the expanded
31
+ * chrome — it does NOT collapse until the `useScrollChrome` machine (opted in with
32
+ * `collapseOnScroll: true`) ramps the custom.
33
+ *
34
+ * PRM (the discrete-state-survives model, the useFadingScroll precedent). The transform/
35
+ * opacity RAMP sits inside the `@media (prefers-reduced-motion: no-preference)` outer
36
+ * gate (the scroll-choreography.css discipline) — under reduce the continuous ramp drops;
37
+ * the `useScrollChrome` machine snaps `--chrome-collapse-t` to a discrete 0/1 endpoint, so
38
+ * the DISCRETE collapsed/expanded state stays correct, instant, never half. The shadow
39
+ * lift sits OUTSIDE the gate (a paint cue, not a vestibular motion) so the lifted
40
+ * separation reads even under reduce.
41
+ */
42
+
43
+ /* The tunable depth knobs — a consumer retunes the shrink/fade depth per chrome. */
44
+ :root {
45
+ /* The shrink depth: at fully collapsed the chrome scales to (1 − this). 0.12 → a
46
+ compact 88% bar (a real shrink that still reads as the same bar). */
47
+ --chrome-shrink-depth: 0.12;
48
+ /* The rise (px) the chrome translates toward its anchor edge as it collapses. */
49
+ --chrome-rise-px: 6px;
50
+ /* The fade depth — BOUNDED LOW: at fully collapsed opacity floors at (1 − this).
51
+ 0.28 → a 0.72 floor (the bar quiets but is NEVER invisible — the NN/g pale-fade
52
+ trap forbidden). A consumer that wants no quiet sets it 0. */
53
+ --chrome-fade-depth: 0.28;
54
+ /* The shadow-lift strength — the separation shadow grows from rest → this as content
55
+ scrolls under (Apple shadow-on-scroll). A paint prop, compositor-safe. */
56
+ --chrome-shadow-lift: 18%;
57
+ }
58
+
59
+ /* The shrink/quiet RAMP — the SPATIAL (transform) + the EFFECTS (opacity) channels. It
60
+ rides `--chrome-collapse-t` directly (no CSS transition — the JS scalar already glides
61
+ on the reader's tick; on a native-timeline engine the same custom rides
62
+ `animation-timeline: scroll(self)`, the native-ramp path). Inside the PRM no-preference
63
+ gate: under reduce the ramp drops and the chrome reads its discrete snapped endpoint. */
64
+ @media (prefers-reduced-motion: no-preference) {
65
+ .scroll-chrome {
66
+ /* SPATIAL leg — scale toward the compact size + a small rise toward the anchor
67
+ edge. transform-origin at the top (a header anchors its top; a consumer dock
68
+ re-points the origin to its natural seat). Compositor-only — never height/pad. */
69
+ transform: scale(calc(1 - var(--chrome-collapse-t) * var(--chrome-shrink-depth)))
70
+ translateY(calc(var(--chrome-collapse-t) * var(--chrome-rise-px) * -1));
71
+ transform-origin: top center;
72
+ /* EFFECTS leg — the quiet, BOUNDED above the never-invisible floor (the bar reads
73
+ at every fraction; the `* fade-depth` caps the drop, opacity never reaches 0). */
74
+ opacity: calc(1 - var(--chrome-collapse-t) * var(--chrome-fade-depth));
75
+ /* will-change the compositor channels (NEVER a layout property). */
76
+ will-change: transform, opacity;
77
+ }
78
+ }
79
+
80
+ /* The shadow LIFT — OUTSIDE the PRM gate (a paint cue, not a vestibular motion): the
81
+ separation shadow strengthens as content scrolls under the chrome. `box-shadow` is a
82
+ paint prop (compositor-safe, in the proof:no-layout-animation paint set, NOT the reflow
83
+ set). The lift composes the house `--shadow-color: var(--foreground)` so it re-tints
84
+ light↔dark for free; the strength grows from a whisper at rest → `--chrome-shadow-lift`
85
+ at fully collapsed. */
86
+ .scroll-chrome {
87
+ box-shadow: 0 calc(2px + var(--chrome-collapse-t) * 6px)
88
+ calc(8px + var(--chrome-collapse-t) * 12px)
89
+ color-mix(
90
+ in srgb,
91
+ var(--shadow-color)
92
+ calc(6% + var(--chrome-collapse-t) * var(--chrome-shadow-lift)),
93
+ transparent
94
+ );
95
+ }
96
+
97
+ /* The native-ramp path — on a `scroll()`-supporting engine the consumer can drive
98
+ `--chrome-collapse-t` off `animation-timeline: scroll(self)` directly (the
99
+ `useScrollProgress`/`--scroll-t` native precedent: the JS writer is inert, the CSS owns
100
+ the compositor ramp). The keyframe is the linear 0→1 map over the collapse range; the
101
+ consumer binds it on the chrome with its own `animation-range` (the collapse-px span).
102
+ The SNAP-to-state stays the JS leg (a snap is a discrete commit, not a continuous ramp —
103
+ it rides the `useScrollChrome` scroll-stop tick on every engine). PRM-gated + supports-
104
+ gated (a non-supporting engine reads the JS `collapseT` write, never this keyframe). */
105
+ @media (prefers-reduced-motion: no-preference) {
106
+ @supports (animation-timeline: scroll()) {
107
+ @keyframes gl-chrome-collapse {
108
+ from {
109
+ --chrome-collapse-t: 0;
110
+ }
111
+ to {
112
+ --chrome-collapse-t: 1;
113
+ }
114
+ }
115
+ /* OPT-IN: a consumer adds `.scroll-chrome--native` to ride the compositor ramp
116
+ (it must set `animation-range` for its own collapse-px span; the
117
+ `useScrollChrome` machine's JS write is the cross-engine floor + the snap). */
118
+ .scroll-chrome--native {
119
+ animation: gl-chrome-collapse auto linear both;
120
+ animation-timeline: scroll(self block);
121
+ }
122
+ }
123
+ }
@@ -70,3 +70,41 @@
70
70
  }
71
71
  }
72
72
  }
73
+
74
+ /* ── ONCE latch (the virtualized/teleporting opt-in) — BC.W-MOTION-PRESETS.
75
+ * The continuous `[data-scroll-reveal]` recipe above re-fires its entrance EVERY
76
+ * time a child re-enters the entry range — correct for a calm cascade, WRONG for
77
+ * a virtualized/teleporting list where a row scrolls out + back (it re-plays the
78
+ * fade-lift). A native `view()` timeline cannot latch "play once" (the CSS limit),
79
+ * so `[data-scroll-reveal-once]` swaps the live-range animation for a one-shot
80
+ * `@keyframes` keyed off a `data-revealed` attr a tiny JS-assist IntersectionObserver
81
+ * sets on FIRST cross + then `unobserve`s — the SHIPPED `useStaggerReveal` `once`
82
+ * machinery (its `if (once) observer?.unobserve(el)` leg), reused, not re-authored.
83
+ *
84
+ * SINGLE WRITER — an element is `[data-scroll-reveal]` XOR `[data-scroll-reveal-once]`
85
+ * (never both): the continuous path rides the `view()` timeline, the once path rides
86
+ * the `[data-revealed]` attr. They never both drive the same child.
87
+ *
88
+ * The keyframe is the SAME fade-lift values as `gl-reveal-in` but runs FORWARD
89
+ * (`from` hidden → `to` shown) so the terminal state holds without a timeline; the
90
+ * `--spring-gentle` partial-sum settle is the convergence-reveal register a consumer
91
+ * pairs with `useStagger` for the N-term build-up. Same PRM outer gate as the
92
+ * continuous recipe (a flourish — under reduce the row paints in-place, no entrance). */
93
+ @media (prefers-reduced-motion: no-preference) {
94
+ @keyframes gl-reveal-once {
95
+ from {
96
+ opacity: 0;
97
+ transform: translateY(var(--scroll-reveal-rise, 6px));
98
+ }
99
+ to {
100
+ opacity: 1;
101
+ transform: none;
102
+ }
103
+ }
104
+ [data-scroll-reveal-once] > * {
105
+ opacity: 0;
106
+ }
107
+ [data-scroll-reveal-once] > *[data-revealed] {
108
+ animation: gl-reveal-once var(--spring-gentle-duration) linear both;
109
+ }
110
+ }