@mkbabb/glass-ui 4.0.1 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (606) hide show
  1. package/dist/{CardAction-CW7a0m8M.js → CardAction-DlVP2evz.js} +72 -53
  2. package/dist/{CommandShortcut-DvZNQ_HF.js → CommandShortcut-By-VQcLO.js} +25 -14
  3. package/dist/{ConfiguratorRow-BR4l-ixA.js → ConfiguratorRow-YMXdINHx.js} +14 -14
  4. package/dist/ContextMenuContent-CMWn6huB.js +90 -0
  5. package/dist/{ContextMenuSubContent-xol4sD2q.js → ContextMenuSubContent-DvwWCUc0.js} +16 -16
  6. package/dist/{DataTable-CuKwF7wr.js → DataTable-C4tG3eIJ.js} +4 -4
  7. package/dist/DialogContent-D8U9ZfWS.js +121 -0
  8. package/dist/DialogFooter-DoLy0ewI.js +80 -0
  9. package/dist/DialogScrollContent-BMekN7gq.js +93 -0
  10. package/dist/{FadingScroll-DI6hQhT9.js → FadingScroll-P8B30rAD.js} +1 -1
  11. package/dist/HoverCardContent-DAmGYglo.js +88 -0
  12. package/dist/{HoverPopover-CbqbNwgU.js → HoverPopover-DYpBOzzF.js} +1 -1
  13. package/dist/{IconChip-BTD-nay5.js → IconChip-CQa7XZYc.js} +7 -5
  14. package/dist/{IconTooltip-Bl8gFZ8d.js → IconTooltip-_df8M3xm.js} +1 -1
  15. package/dist/Input-CyU4_hIC.js +57 -0
  16. package/dist/{MetricBadge-RHdBP72w.js → MetricBadge-DQt_dGah.js} +1 -1
  17. package/dist/{Notification-VUwexFUf.js → Notification-BlSPJhtZ.js} +4 -4
  18. package/dist/NumberFieldContent-Z3VxGu_6.js +140 -0
  19. package/dist/PagerDots-CYlqVFd4.js +196 -0
  20. package/dist/PaperBackdrop-DYWgrnh8.js +42 -0
  21. package/dist/{PopoverContent-DL7E6vJP.js → PopoverContent-BuKyHZSz.js} +2 -2
  22. package/dist/{Progress-DctG61iZ.js → Progress-C9SsdwIZ.js} +1 -1
  23. package/dist/{ScrollingText-yOpBzFYq.js → ScrollingText-DY3W1Jfh.js} +2 -2
  24. package/dist/SelectScrollDownButton-3mFHX_R-.js +260 -0
  25. package/dist/{SelectSeparator-DXswVdRz.js → SelectSeparator-CNRGG7Ew.js} +1 -1
  26. package/dist/Separator-Cf9-JFgi.js +44 -0
  27. package/dist/Switch-uf-UKPA2.js +49 -0
  28. package/dist/{Toaster-Bw4xR8xV.js → Toaster-ozrsR4mP.js} +2 -2
  29. package/dist/{ToggleGroupItem-pEM9vIhs.js → ToggleGroupItem-BpzaVzNm.js} +6 -6
  30. package/dist/TooltipProvider-QQVM_80r.js +109 -0
  31. package/dist/animated-digit.js +2 -2
  32. package/dist/api/index.d.ts +16 -32
  33. package/dist/api/types-extra.d.ts +33 -0
  34. package/dist/api.js +2 -2
  35. package/dist/aurora.js +629 -269
  36. package/dist/badge-Bt14yURi.js +72 -0
  37. package/dist/badge.js +1 -1
  38. package/dist/border-progress.js +49 -57
  39. package/dist/button-D1W9PrzI.js +130 -0
  40. package/dist/button.js +1 -1
  41. package/dist/canvas.js +2 -3
  42. package/dist/card.js +1 -1
  43. package/dist/carousel.js +235 -106
  44. package/dist/chipVariants-BJQ0I2kB.js +18 -0
  45. package/dist/collapsible.js +1 -1
  46. package/dist/color-B9jZdhJX.js +116 -0
  47. package/dist/color.js +2 -2
  48. package/dist/command.js +1 -1
  49. package/dist/completion-seal.d.ts +1 -0
  50. package/dist/completion-seal.js +89 -0
  51. package/dist/components/custom/aurora/Aurora.vue.d.ts +10 -5
  52. package/dist/components/custom/aurora/composables/color.d.ts +13 -0
  53. package/dist/components/custom/aurora/composables/frameLoop.d.ts +9 -0
  54. package/dist/components/custom/aurora/composables/glSetup.d.ts +1 -1
  55. package/dist/components/custom/aurora/composables/runtime.d.ts +12 -0
  56. package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +12 -3
  57. package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +8 -0
  58. package/dist/components/custom/aurora/constants/presets.d.ts +47 -0
  59. package/dist/components/custom/aurora/constants/renderMode.d.ts +16 -8
  60. package/dist/components/custom/aurora/constants/shaders/aurora-mediums.wgsl.d.ts +1 -0
  61. package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -1
  62. package/dist/components/custom/aurora/index.d.ts +1 -1
  63. package/dist/components/custom/border-progress/composables/spectrum-walk.d.ts +25 -0
  64. package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +14 -18
  65. package/dist/components/custom/border-progress/index.d.ts +1 -1
  66. package/dist/components/custom/completion-seal/CompletionSeal.vue.d.ts +21 -0
  67. package/dist/components/custom/completion-seal/composables/useCompletionSeal.d.ts +37 -0
  68. package/dist/components/custom/completion-seal/constants.d.ts +46 -0
  69. package/dist/components/custom/completion-seal/index.d.ts +4 -0
  70. package/dist/components/custom/concentric/Concentric.vue.d.ts +15 -12
  71. package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +12 -0
  72. package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +13 -0
  73. package/dist/components/custom/concentric/composables/levelField.d.ts +50 -0
  74. package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +7 -3
  75. package/dist/components/custom/concentric/composables/useConcentric.d.ts +3 -3
  76. package/dist/components/custom/concentric/constants.d.ts +69 -24
  77. package/dist/components/custom/concentric/index.d.ts +2 -2
  78. package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +2 -2
  79. package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -1
  80. package/dist/components/custom/configurator/Configurator.vue.d.ts +23 -2
  81. package/dist/components/custom/configurator/index.d.ts +1 -1
  82. package/dist/components/custom/confirm-dialog/ConfirmDialog.vue.d.ts +3 -3
  83. package/dist/components/custom/constellation/Constellation.vue.d.ts +5 -4
  84. package/dist/components/custom/constellation/composables/constellationGLSetup.d.ts +10 -0
  85. package/dist/components/custom/constellation/composables/constellationWGPUSetup.d.ts +19 -0
  86. package/dist/components/custom/constellation/composables/uniformBridgeWGPU.d.ts +66 -0
  87. package/dist/components/custom/constellation/composables/useConstellation.d.ts +3 -10
  88. package/dist/components/custom/constellation/constants.d.ts +33 -0
  89. package/dist/components/custom/constellation/constellationField.d.ts +31 -1
  90. package/dist/components/custom/constellation/constellationInteraction.d.ts +23 -14
  91. package/dist/components/custom/constellation/constellationRender.d.ts +25 -0
  92. package/dist/components/custom/constellation/constellationTypes.d.ts +38 -0
  93. package/dist/components/custom/constellation/constellationWell.d.ts +15 -0
  94. package/dist/components/custom/constellation/index.d.ts +5 -5
  95. package/dist/components/custom/constellation/shaders/constellation-lines.glsl.d.ts +2 -0
  96. package/dist/components/custom/constellation/shaders/constellation-lines.wgsl.d.ts +1 -0
  97. package/dist/components/custom/constellation/shaders/constellation-points.glsl.d.ts +2 -0
  98. package/dist/components/custom/constellation/shaders/constellation-points.wgsl.d.ts +1 -0
  99. package/dist/components/custom/deck/DeckPager.vue.d.ts +29 -0
  100. package/dist/components/custom/deck/composables/useDeck.d.ts +27 -0
  101. package/dist/components/custom/deck/composables/useDeckKeyboard.d.ts +25 -0
  102. package/dist/components/custom/deck/composables/useDeckSpring.d.ts +22 -0
  103. package/dist/components/custom/deck/constants.d.ts +14 -0
  104. package/dist/components/custom/deck/index.d.ts +8 -0
  105. package/dist/components/custom/dock/DockDropdownTrigger.vue.d.ts +4 -3
  106. package/dist/components/custom/dock/DockIconButton.vue.d.ts +22 -0
  107. package/dist/components/custom/dock/DockPopoverTrigger.vue.d.ts +19 -0
  108. package/dist/components/custom/dock/DockStack.vue.d.ts +78 -0
  109. package/dist/components/custom/dock/GlassDock.vue.d.ts +21 -3
  110. package/dist/components/custom/dock/composables/dockMorphContext.d.ts +18 -32
  111. package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +78 -67
  112. package/dist/components/custom/dock/composables/index.d.ts +3 -0
  113. package/dist/components/custom/dock/composables/railProjection.d.ts +45 -0
  114. package/dist/components/custom/dock/composables/useDockContextSilhouette.d.ts +192 -0
  115. package/dist/components/custom/dock/composables/useDockFission.d.ts +158 -0
  116. package/dist/components/custom/dock/composables/useDockItemDrag.d.ts +18 -0
  117. package/dist/components/custom/dock/composables/useDockSearch.d.ts +85 -0
  118. package/dist/components/custom/dock/composables/useDockShellProps.d.ts +49 -0
  119. package/dist/components/custom/dock/constants.d.ts +32 -17
  120. package/dist/components/custom/dock/index.d.ts +8 -2
  121. package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +15 -11
  122. package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +69 -6
  123. package/dist/components/custom/dot-flow-field/composables/flowGLProgram.d.ts +8 -0
  124. package/dist/components/custom/dot-flow-field/composables/flowSetupGL.d.ts +9 -0
  125. package/dist/components/custom/dot-flow-field/composables/flowSetupGLFlow.d.ts +12 -0
  126. package/dist/components/custom/dot-flow-field/composables/flowSetupWGPU.d.ts +7 -0
  127. package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +50 -9
  128. package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +6 -5
  129. package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +23 -9
  130. package/dist/components/custom/dot-flow-field/constants.d.ts +92 -20
  131. package/dist/components/custom/dot-flow-field/index.d.ts +2 -2
  132. package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -1
  133. package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +31 -18
  134. package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +2 -1
  135. package/dist/components/custom/dot-matrix/DotMatrix.vue.d.ts +43 -0
  136. package/dist/components/custom/dot-matrix/composables/dotMatrixField.d.ts +89 -0
  137. package/dist/components/custom/dot-matrix/composables/uniformBridgeWGPU.d.ts +61 -0
  138. package/dist/components/custom/dot-matrix/composables/useDotMatrix.d.ts +34 -0
  139. package/dist/components/custom/dot-matrix/composables/useDotSphere.d.ts +34 -0
  140. package/dist/components/custom/dot-matrix/constants.d.ts +72 -0
  141. package/dist/components/custom/dot-matrix/index.d.ts +5 -0
  142. package/dist/components/custom/dot-matrix/shaders/dot-matrix.glsl.d.ts +4 -0
  143. package/dist/components/custom/dot-matrix/shaders/dot-matrix.wgsl.d.ts +1 -0
  144. package/dist/components/custom/easing/EasingPicker.vue.d.ts +2 -2
  145. package/dist/components/custom/easing/composables/useEasingPicker.d.ts +5 -0
  146. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +11 -0
  147. package/dist/components/custom/fourier-field/FourierField.vue.d.ts +44 -47
  148. package/dist/components/custom/fourier-field/composables/fourierFieldGLSetup.d.ts +24 -0
  149. package/dist/components/custom/fourier-field/composables/fourierFieldWGPUSetup.d.ts +31 -0
  150. package/dist/components/custom/fourier-field/composables/uniformBridgeWGPU.d.ts +56 -0
  151. package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +61 -37
  152. package/dist/components/custom/fourier-field/constants.d.ts +114 -4
  153. package/dist/components/custom/fourier-field/index.d.ts +23 -18
  154. package/dist/components/custom/fourier-field/shaders/fourier-field.compute.wgsl.d.ts +1 -0
  155. package/dist/components/custom/fourier-field/shaders/fourier-field.glsl.d.ts +4 -0
  156. package/dist/components/custom/fourier-field/shaders/fourier-field.render.wgsl.d.ts +1 -0
  157. package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +9 -1
  158. package/dist/components/custom/goo-blob/composables/easing.d.ts +1 -0
  159. package/dist/components/custom/goo-blob/composables/useBlobSatellites.d.ts +1 -0
  160. package/dist/components/custom/goo-blob/constants.d.ts +26 -1
  161. package/dist/components/custom/goo-blob/index.d.ts +1 -1
  162. package/dist/components/custom/goo-blob/shaders/metaball-noise.wgsl.d.ts +1 -0
  163. package/dist/components/custom/goo-blob/shaders/metaball-palette.wgsl.d.ts +1 -0
  164. package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -1
  165. package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -1
  166. package/dist/components/custom/goo-blob/types.d.ts +86 -1
  167. package/dist/components/custom/goo-dot-matrix/GooDotMatrix.vue.d.ts +49 -0
  168. package/dist/components/custom/goo-dot-matrix/composables/gooDotLattice.d.ts +24 -0
  169. package/dist/components/custom/goo-dot-matrix/composables/gooDotSetup.d.ts +79 -0
  170. package/dist/components/custom/goo-dot-matrix/composables/uniformBridgeWGPU.d.ts +45 -0
  171. package/dist/components/custom/goo-dot-matrix/composables/useGooDotMatrix.d.ts +31 -0
  172. package/dist/components/custom/goo-dot-matrix/constants.d.ts +115 -0
  173. package/dist/components/custom/goo-dot-matrix/index.d.ts +5 -0
  174. package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.frag.d.ts +13 -0
  175. package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.wgsl.d.ts +4 -0
  176. package/dist/components/custom/goo-filter/GooFilter.vue.d.ts +22 -0
  177. package/dist/components/custom/goo-filter/index.d.ts +1 -0
  178. package/dist/components/custom/handmark/brush.d.ts +17 -17
  179. package/dist/components/custom/handmark/constants.d.ts +28 -8
  180. package/dist/components/custom/handmark/geometry.d.ts +34 -1
  181. package/dist/components/custom/handmark/index.d.ts +1 -1
  182. package/dist/components/custom/icon-chip/types.d.ts +10 -0
  183. package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +21 -2
  184. package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +15 -0
  185. package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +9 -0
  186. package/dist/components/custom/pager-dots/index.d.ts +2 -0
  187. package/dist/components/custom/pager-dots/pagerWindow.d.ts +9 -0
  188. package/dist/components/custom/paper-backdrop/PaperBackdrop.vue.d.ts +18 -0
  189. package/dist/components/custom/paper-grid/PaperGrid.vue.d.ts +42 -0
  190. package/dist/components/custom/paper-grid/composables/paperGrid.d.ts +105 -0
  191. package/dist/components/custom/paper-grid/composables/paperGridGLSetup.d.ts +18 -0
  192. package/dist/components/custom/paper-grid/composables/paperGridWGPUSetup.d.ts +21 -0
  193. package/dist/components/custom/paper-grid/composables/uniformBridgeWGPU.d.ts +16 -0
  194. package/dist/components/custom/paper-grid/composables/usePaperGrid.d.ts +31 -0
  195. package/dist/components/custom/paper-grid/constants.d.ts +95 -0
  196. package/dist/components/custom/paper-grid/index.d.ts +5 -0
  197. package/dist/components/custom/paper-grid/shaders/paper-grid.glsl.d.ts +4 -0
  198. package/dist/components/custom/paper-grid/shaders/paper-grid.wgsl.d.ts +1 -0
  199. package/dist/components/custom/search/FuzzySearch.vue.d.ts +8 -2
  200. package/dist/components/custom/search/SearchBar.vue.d.ts +8 -0
  201. package/dist/components/custom/search/index.d.ts +2 -0
  202. package/dist/components/custom/search/searchVariants.d.ts +19 -0
  203. package/dist/components/custom/selectable-chip/SelectableChip.vue.d.ts +50 -0
  204. package/dist/components/custom/selectable-chip/chipVariants.d.ts +39 -0
  205. package/dist/components/custom/selectable-chip/index.d.ts +2 -0
  206. package/dist/components/custom/selectable-chip/selectableChipVariants.d.ts +15 -0
  207. package/dist/components/custom/split-chars/SplitChars.vue.d.ts +39 -0
  208. package/dist/components/custom/split-chars/index.d.ts +1 -0
  209. package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +8 -6
  210. package/dist/components/custom/tabs/constants.d.ts +28 -2
  211. package/dist/components/custom/timeline/ScrubberTimeline.vue.d.ts +16 -0
  212. package/dist/components/custom/timeline/geometry.d.ts +0 -8
  213. package/dist/components/custom/toggle-chip/index.d.ts +15 -4
  214. package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +32 -17
  215. package/dist/components/custom/watercolor-dot/useWatercolorBlob.d.ts +10 -5
  216. package/dist/components/ui/_shared/index.d.ts +2 -0
  217. package/dist/components/ui/_shared/useControlSize.d.ts +46 -0
  218. package/dist/components/ui/_shared/useSurfaceAxis.d.ts +17 -3
  219. package/dist/components/ui/badge/Badge.vue.d.ts +14 -0
  220. package/dist/components/ui/badge/index.d.ts +1 -0
  221. package/dist/components/ui/button/Button.vue.d.ts +1 -0
  222. package/dist/components/ui/button/index.d.ts +1 -1
  223. package/dist/components/ui/card/Card.vue.d.ts +46 -1
  224. package/dist/components/ui/card/ScrollCard.vue.d.ts +1 -1
  225. package/dist/components/ui/card/index.d.ts +1 -1
  226. package/dist/components/ui/carousel/CarouselContent.vue.d.ts +2 -4
  227. package/dist/components/ui/carousel/CarouselNext.vue.d.ts +1 -1
  228. package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +1 -1
  229. package/dist/components/ui/command/CommandDialog.vue.d.ts +9 -3
  230. package/dist/components/ui/command/CommandList.vue.d.ts +3 -0
  231. package/dist/components/ui/context-menu/ContextMenuContent.vue.d.ts +5 -1
  232. package/dist/components/ui/dialog/DialogContent.vue.d.ts +9 -0
  233. package/dist/components/ui/drawer/Drawer.vue.d.ts +33 -14
  234. package/dist/components/ui/drawer/constants.d.ts +8 -6
  235. package/dist/components/ui/drawer/index.d.ts +12 -2
  236. package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +4 -0
  237. package/dist/components/ui/hover-card/HoverCardContent.vue.d.ts +3 -0
  238. package/dist/components/ui/input/Input.vue.d.ts +3 -0
  239. package/dist/components/ui/number-field/NumberFieldInput.vue.d.ts +6 -1
  240. package/dist/components/ui/select/SelectContent.vue.d.ts +12 -0
  241. package/dist/components/ui/slider/Slider.vue.d.ts +9 -0
  242. package/dist/components/ui/switch/Switch.vue.d.ts +2 -0
  243. package/dist/components/ui/textarea/Textarea.vue.d.ts +3 -0
  244. package/dist/components/ui/tooltip/TooltipContent.vue.d.ts +3 -0
  245. package/dist/composables/color/index.d.ts +2 -0
  246. package/dist/composables/color/useAccentTone.d.ts +34 -0
  247. package/dist/composables/dom/index.d.ts +1 -0
  248. package/dist/composables/dom/useDragVelocity.d.ts +46 -0
  249. package/dist/composables/glass/useVizChoreography.d.ts +123 -0
  250. package/dist/composables/glass/wave/index.d.ts +4 -0
  251. package/dist/composables/glass/wave/waveField.d.ts +115 -0
  252. package/dist/composables/glass/wave/waveField.glsl.d.ts +1 -0
  253. package/dist/composables/glass/wave/waveField.wgsl.d.ts +1 -0
  254. package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +105 -2
  255. package/dist/composables/glass/webgl/shaders/flow.wgsl.d.ts +1 -0
  256. package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +40 -2
  257. package/dist/composables/glass/webgpu/index.d.ts +2 -1
  258. package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +65 -7
  259. package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +50 -2
  260. package/dist/composables/glass/webgpu/webgpuDevice.d.ts +42 -0
  261. package/dist/composables/motion/core/index.d.ts +7 -0
  262. package/dist/composables/motion/core/useHaptic.d.ts +48 -0
  263. package/dist/composables/motion/core/writeVelocityWeight.d.ts +31 -0
  264. package/dist/composables/motion/index.d.ts +2 -0
  265. package/dist/composables/motion/scrollReader.d.ts +25 -0
  266. package/dist/composables/motion/springPresets.d.ts +19 -1
  267. package/dist/composables/motion/suite.d.ts +2 -2
  268. package/dist/composables/motion/useBloomUp.d.ts +97 -0
  269. package/dist/composables/motion/useCelebrationBurst.d.ts +50 -0
  270. package/dist/composables/motion/useCharStagger.d.ts +44 -0
  271. package/dist/composables/motion/useDockCtaReceive.d.ts +29 -22
  272. package/dist/composables/motion/useGooMorph.d.ts +72 -0
  273. package/dist/composables/motion/useLiquidFlex.d.ts +18 -0
  274. package/dist/composables/motion/useLiquidMorph.d.ts +108 -0
  275. package/dist/composables/motion/useLiquidPress.d.ts +12 -0
  276. package/dist/composables/motion/useLiquidReveal.d.ts +7 -4
  277. package/dist/composables/motion/useMorphField.d.ts +157 -0
  278. package/dist/composables/motion/useScrollChrome.d.ts +58 -0
  279. package/dist/composables/motion/useScrollPin.d.ts +49 -0
  280. package/dist/composables/motion/useScrollScene.d.ts +67 -0
  281. package/dist/composables/motion/useScrollTrigger.d.ts +67 -0
  282. package/dist/composables/motion/useSpringPress.d.ts +5 -5
  283. package/dist/composables/motion/useStaggerReveal.d.ts +24 -0
  284. package/dist/composables/sidebar/index.d.ts +4 -1
  285. package/dist/composables/sidebar/types.d.ts +68 -3
  286. package/dist/composables/sidebar/useClickDelegate.d.ts +4 -0
  287. package/dist/composables/sidebar/useLazyLoader.d.ts +5 -0
  288. package/dist/composables/sidebar/useScrollTo.d.ts +5 -0
  289. package/dist/composables/virtual/index.d.ts +4 -0
  290. package/dist/composables/virtual/useVirtualSectionWindow.d.ts +72 -0
  291. package/dist/composables/virtual/useWindowedStore.d.ts +43 -0
  292. package/dist/composables/virtual/virtualSectionLayout.d.ts +103 -0
  293. package/dist/concentric.js +552 -309
  294. package/dist/configurator.js +2 -2
  295. package/dist/confirm-dialog.js +62 -47
  296. package/dist/constellation.js +635 -235
  297. package/dist/context-menu.js +2 -2
  298. package/dist/controls.js +2 -2
  299. package/dist/createCanvasLifecycle-CuCrGRfq.js +173 -0
  300. package/dist/dark.js +1 -1
  301. package/dist/data-table.js +1 -1
  302. package/dist/deck.d.ts +1 -0
  303. package/dist/deck.js +105 -0
  304. package/dist/dialog.js +4 -3
  305. package/dist/dock.js +1320 -631
  306. package/dist/dockContext-gFVS2gMg.js +18 -0
  307. package/dist/dom.js +7 -6
  308. package/dist/dot-flow-field.js +1268 -387
  309. package/dist/dot-matrix.d.ts +1 -0
  310. package/dist/dot-matrix.js +774 -0
  311. package/dist/dotMatrixField-CRO0ZFk4.js +48 -0
  312. package/dist/drawer.js +106 -96
  313. package/dist/{dropdown-menu-CofSZuk8.js → dropdown-menu-CCfcCQ68.js} +83 -79
  314. package/dist/dropdown-menu.js +1 -1
  315. package/dist/easing.js +188 -176
  316. package/dist/expandable-container.js +43 -21
  317. package/dist/fading-scroll.js +1 -1
  318. package/dist/flow.glsl-DqEGRpl4.js +4 -0
  319. package/dist/forms.js +64 -62
  320. package/dist/fourier-field.js +1069 -178
  321. package/dist/fourier-math.js +1 -1
  322. package/dist/glass-panel.js +2 -2
  323. package/dist/glass-ui.css +1 -1
  324. package/dist/glass-ui.js +164 -119
  325. package/dist/goo-blob.js +175 -1230
  326. package/dist/goo-dot-matrix.d.ts +1 -0
  327. package/dist/goo-dot-matrix.js +811 -0
  328. package/dist/handmark.js +137 -94
  329. package/dist/header-ribbon.js +1 -1
  330. package/dist/hover-card.js +1 -1
  331. package/dist/hover-popover.js +1 -1
  332. package/dist/icon-chip.js +1 -1
  333. package/dist/icon-tooltip.js +1 -1
  334. package/dist/index.d.ts +5 -0
  335. package/dist/instrument-chassis.js +1 -1
  336. package/dist/keyboard.js +1 -1
  337. package/dist/label.js +1 -1
  338. package/dist/labeled-field.js +70 -60
  339. package/dist/metric-badge.js +1 -1
  340. package/dist/metric-cell.js +1 -1
  341. package/dist/metric-stack.js +12 -3
  342. package/dist/motion-core.js +59 -34
  343. package/dist/motion-curves.js +30 -14
  344. package/dist/motion.js +231 -96
  345. package/dist/notification.js +1 -1
  346. package/dist/number-field.js +1 -1
  347. package/dist/pager-dots.js +2 -91
  348. package/dist/paper-backdrop.js +1 -1
  349. package/dist/paper-grid.d.ts +1 -0
  350. package/dist/paper-grid.js +761 -0
  351. package/dist/paperGrid-CXCSMbZ1.js +191 -0
  352. package/dist/popover.js +1 -1
  353. package/dist/{presets-BW2b-fr1.js → presets-QvYgnFIZ.js} +14 -13
  354. package/dist/{procedural-color.glsl-CIFsJhwI.js → procedural-color.wgsl-C1Y5PkM6.js} +2 -2
  355. package/dist/progress.js +1 -1
  356. package/dist/pulse.js +2 -2
  357. package/dist/reactive.js +2 -2
  358. package/dist/{useCanvas2D-B8w_E3Rr.js → resolveCanvasColor-DsSJk06I.js} +16 -6
  359. package/dist/scrollReader-rc3Ns_NM.js +42 -0
  360. package/dist/scrolling-text.js +1 -1
  361. package/dist/search.js +162 -306
  362. package/dist/select.js +3 -3
  363. package/dist/selectable-chip.d.ts +1 -0
  364. package/dist/selectable-chip.js +48 -0
  365. package/dist/separator.js +1 -1
  366. package/dist/{sheet-tZMg0E0w.js → sheet-DUCIoOe0.js} +4 -4
  367. package/dist/sheet.js +1 -1
  368. package/dist/sidebar.js +216 -114
  369. package/dist/slider-CcICPe3u.js +149 -0
  370. package/dist/slider.js +1 -1
  371. package/dist/sortable-list.js +3 -3
  372. package/dist/spectrum-walk-cBNSx_zm.js +33 -0
  373. package/dist/springPresets-DfoQ6XRY.js +64 -0
  374. package/dist/stacked-icons.js +54 -39
  375. package/dist/styles/animations.css +13 -3
  376. package/dist/styles/cards.css +271 -2
  377. package/dist/styles/completion-seal.css +131 -0
  378. package/dist/styles/components.css +1 -4
  379. package/dist/styles/configurator.css +221 -1
  380. package/dist/styles/critical-partition.mjs +66 -11
  381. package/dist/styles/deferred.css +4 -0
  382. package/dist/styles/dock/adaptive-legibility.css +119 -0
  383. package/dist/styles/dock/cta-seat.css +87 -0
  384. package/dist/styles/dock/density.css +167 -6
  385. package/dist/styles/dock/fission-bridge.css +552 -0
  386. package/dist/styles/dock/layers.css +90 -78
  387. package/dist/styles/dock/morph-bridge.css +67 -18
  388. package/dist/styles/dock/morph.css +57 -118
  389. package/dist/styles/dock/overflow.css +12 -0
  390. package/dist/styles/dock/search.css +68 -0
  391. package/dist/styles/dock/shape.css +250 -0
  392. package/dist/styles/dock/shell.css +24 -8
  393. package/dist/styles/dock/stack-rail.css +352 -0
  394. package/dist/styles/dock-controls/dark-mode-toggle.css +17 -4
  395. package/dist/styles/dock-controls/icon-button.css +46 -0
  396. package/dist/styles/dock-controls/triggers.css +23 -1
  397. package/dist/styles/dock-controls.css +18 -0
  398. package/dist/styles/dock.css +27 -2
  399. package/dist/styles/drawer.css +166 -0
  400. package/dist/styles/glass/accent-tone.css +66 -0
  401. package/dist/styles/glass/control-surfaces.css +167 -0
  402. package/dist/styles/glass/glass-atom.css +244 -0
  403. package/dist/styles/glass/glass-capsule.css +143 -0
  404. package/dist/styles/glass/glass-chip.css +215 -0
  405. package/dist/styles/glass/ladder.css +67 -17
  406. package/dist/styles/glass/liquid-enter.css +252 -0
  407. package/dist/styles/glass/liquid-morph.css +850 -0
  408. package/dist/styles/glass/material.css +70 -1
  409. package/dist/styles/glass/reveal.css +22 -2
  410. package/dist/styles/glass/rim.css +31 -9
  411. package/dist/styles/glass/surfaces.css +81 -150
  412. package/dist/styles/glass.css +21 -0
  413. package/dist/styles/icon-chip.css +45 -0
  414. package/dist/styles/index.css +26 -0
  415. package/dist/styles/jubilance.css +65 -0
  416. package/dist/styles/motion/morph-field.css +229 -0
  417. package/dist/styles/paper.css +230 -14
  418. package/dist/styles/scroll-choreography.css +135 -78
  419. package/dist/styles/scroll-chrome.css +123 -0
  420. package/dist/styles/scroll-driven.css +38 -0
  421. package/dist/styles/segmented-tabs.css +110 -40
  422. package/dist/styles/select.css +151 -0
  423. package/dist/styles/theme/bridges.css +22 -0
  424. package/dist/styles/theme/radius.css +18 -1
  425. package/dist/styles/tokens/color-radius.css +14 -4
  426. package/dist/styles/tokens/dark-arm.css +94 -12
  427. package/dist/styles/tokens/glass-deep.css +33 -4
  428. package/dist/styles/tokens/glass-fx.css +122 -1
  429. package/dist/styles/tokens/glass.css +226 -34
  430. package/dist/styles/tokens/light-dark.css +3 -3
  431. package/dist/styles/tokens/offsets.css +27 -0
  432. package/dist/styles/tokens/property-regs.css +277 -0
  433. package/dist/styles/tokens/scale-paper.css +86 -30
  434. package/dist/styles/tokens/scheme-motion.css +106 -133
  435. package/dist/styles/tokens/scheme-spring.css +239 -0
  436. package/dist/styles/tokens/scroll-tokens.css +15 -15
  437. package/dist/styles/tokens/shadow.css +73 -13
  438. package/dist/styles/tokens/sizing-config.css +110 -0
  439. package/dist/styles/tokens/sizing.css +55 -104
  440. package/dist/styles/tokens.css +14 -2
  441. package/dist/styles/typography/semantic.css +18 -5
  442. package/dist/styles/utilities/a11y-overrides.css +20 -5
  443. package/dist/styles/utilities/base-misc.css +52 -0
  444. package/dist/styles/utilities/btn.css +84 -3
  445. package/dist/styles/utilities/components.css +31 -6
  446. package/dist/styles/utilities/metal.css +26 -0
  447. package/dist/switch.js +1 -1
  448. package/dist/tabs.js +199 -182
  449. package/dist/timeline.js +241 -206
  450. package/dist/toast.js +1 -1
  451. package/dist/toggle-chip.js +14 -41
  452. package/dist/toggle-group.js +1 -1
  453. package/dist/tooltip.js +1 -1
  454. package/dist/typewriter.js +2 -2
  455. package/dist/uniformBridgeWGPU-BCse1SHU.js +1268 -0
  456. package/dist/{useAnimatedNumber-BfUq2bUM.js → useAnimatedNumber-BntskVdQ.js} +1 -1
  457. package/dist/{useConfiguratorState-DNlOh6c8.js → useConfiguratorState-22BcULzF.js} +41 -38
  458. package/dist/useControlSize-DAZ062x7.js +9 -0
  459. package/dist/useDockCtaReceive-DX7RDb6_.js +88 -0
  460. package/dist/{useDragMorph-DgxnsVJz.js → useDragMorph-DGLSewwB.js} +4 -4
  461. package/dist/useDragVelocity-CjcfX3dA.js +57 -0
  462. package/dist/useFuzzySearch-0fTYOhS4.js +177 -0
  463. package/dist/useGooMorph-Cs13NgYL.js +104 -0
  464. package/dist/useGpuSubstrate-Ceet70xq.js +347 -0
  465. package/dist/useHaptic-CPz5BT9I.js +134 -0
  466. package/dist/{useLiquidFlex-mZPMiNXh.js → useLiquidFlex-Cc6PjVJD.js} +8 -3
  467. package/dist/useLiquidPress-CtOQ8Z0_.js +43 -0
  468. package/dist/useMorphField-ogBM7ubT.js +141 -0
  469. package/dist/usePointerVelocityField-BrkqZFhj.js +91 -0
  470. package/dist/useScrollChrome-JuImi1DM.js +258 -0
  471. package/dist/{useSpringMount-q1amq1SJ.js → useSpringMount-DFxtzmkR.js} +1 -1
  472. package/dist/useSpringPress-VM9RgVq3.js +36 -0
  473. package/dist/{useSurfaceAxis-g0NloYEF.js → useSurfaceAxis-Ci7Dnaw2.js} +1 -1
  474. package/dist/{useTouchGate-CBZTD4SD.js → useTouchGate-B1Lf9XqN.js} +1 -1
  475. package/dist/{vendor-CKmzio-i.js → vendor-B2qOlYY3.js} +24 -11
  476. package/dist/virtual.d.ts +1 -0
  477. package/dist/virtual.js +225 -0
  478. package/dist/watercolor-dot.js +107 -74
  479. package/dist/writeVelocityWeight-Bh83xZfs.js +19 -0
  480. package/package.json +140 -9
  481. package/src/styles/animations.css +13 -3
  482. package/src/styles/cards.css +271 -2
  483. package/src/styles/completion-seal.css +131 -0
  484. package/src/styles/configurator.css +221 -1
  485. package/src/styles/critical-partition.mjs +66 -11
  486. package/src/styles/dock/adaptive-legibility.css +119 -0
  487. package/src/styles/dock/cta-seat.css +87 -0
  488. package/src/styles/dock/density.css +167 -6
  489. package/src/styles/dock/fission-bridge.css +552 -0
  490. package/src/styles/dock/layers.css +90 -78
  491. package/src/styles/dock/morph-bridge.css +67 -18
  492. package/src/styles/dock/morph.css +57 -118
  493. package/src/styles/dock/overflow.css +12 -0
  494. package/src/styles/dock/search.css +68 -0
  495. package/src/styles/dock/shape.css +250 -0
  496. package/src/styles/dock/shell.css +24 -8
  497. package/src/styles/dock/stack-rail.css +352 -0
  498. package/src/styles/dock-controls/dark-mode-toggle.css +17 -4
  499. package/src/styles/dock-controls/icon-button.css +46 -0
  500. package/src/styles/dock-controls/triggers.css +23 -1
  501. package/src/styles/dock-controls.css +18 -0
  502. package/src/styles/dock.css +27 -2
  503. package/src/styles/drawer.css +164 -0
  504. package/src/styles/glass/accent-tone.css +66 -0
  505. package/src/styles/glass/control-surfaces.css +167 -0
  506. package/src/styles/glass/glass-atom.css +244 -0
  507. package/src/styles/glass/glass-capsule.css +143 -0
  508. package/src/styles/glass/glass-chip.css +215 -0
  509. package/src/styles/glass/ladder.css +67 -17
  510. package/src/styles/glass/liquid-enter.css +252 -0
  511. package/src/styles/glass/liquid-morph.css +850 -0
  512. package/src/styles/glass/material.css +70 -1
  513. package/src/styles/glass/reveal.css +22 -2
  514. package/src/styles/glass/rim.css +31 -9
  515. package/src/styles/glass/surfaces.css +81 -150
  516. package/src/styles/glass.css +21 -0
  517. package/src/styles/icon-chip.css +45 -0
  518. package/src/styles/index.css +26 -0
  519. package/src/styles/jubilance.css +65 -0
  520. package/src/styles/motion/morph-field.css +229 -0
  521. package/src/styles/paper.css +230 -14
  522. package/src/styles/scroll-choreography.css +135 -78
  523. package/src/styles/scroll-chrome.css +123 -0
  524. package/src/styles/scroll-driven.css +38 -0
  525. package/src/styles/segmented-tabs.css +110 -36
  526. package/src/styles/select.css +151 -0
  527. package/src/styles/theme/bridges.css +22 -0
  528. package/src/styles/theme/radius.css +18 -1
  529. package/src/styles/tokens/color-radius.css +14 -4
  530. package/src/styles/tokens/dark-arm.css +94 -12
  531. package/src/styles/tokens/glass-deep.css +33 -4
  532. package/src/styles/tokens/glass-fx.css +122 -1
  533. package/src/styles/tokens/glass.css +226 -34
  534. package/src/styles/tokens/light-dark.css +3 -3
  535. package/src/styles/tokens/offsets.css +27 -0
  536. package/src/styles/tokens/property-regs.css +277 -0
  537. package/src/styles/tokens/scale-paper.css +86 -30
  538. package/src/styles/tokens/scheme-motion.css +106 -133
  539. package/src/styles/tokens/scheme-spring.css +239 -0
  540. package/src/styles/tokens/scroll-tokens.css +15 -15
  541. package/src/styles/tokens/shadow.css +73 -13
  542. package/src/styles/tokens/sizing-config.css +110 -0
  543. package/src/styles/tokens/sizing.css +55 -104
  544. package/src/styles/tokens.css +14 -2
  545. package/src/styles/typography/semantic.css +18 -5
  546. package/src/styles/utilities/a11y-overrides.css +20 -5
  547. package/src/styles/utilities/base-misc.css +52 -0
  548. package/src/styles/utilities/btn.css +84 -3
  549. package/src/styles/utilities/components.css +31 -6
  550. package/src/styles/utilities/metal.css +26 -0
  551. package/dist/ContextMenuContent-uWnVxDab.js +0 -85
  552. package/dist/DialogContent-DcKK8k9i.js +0 -103
  553. package/dist/DialogFooter-BZNX5aVr.js +0 -165
  554. package/dist/HoverCardContent-b2uaAMRR.js +0 -83
  555. package/dist/Input-h9v5LeXf.js +0 -55
  556. package/dist/NumberFieldContent-Cq7EzX-U.js +0 -138
  557. package/dist/PaperBackdrop-Vf3tlpvd.js +0 -31
  558. package/dist/SelectScrollDownButton-CrA8F0iV.js +0 -252
  559. package/dist/Separator-pKF0oA4M.js +0 -37
  560. package/dist/Switch-CwYNf8bo.js +0 -47
  561. package/dist/TooltipProvider-rzvnXz60.js +0 -104
  562. package/dist/badge-D9XWW4GT.js +0 -53
  563. package/dist/button-DYCUa-tH.js +0 -126
  564. package/dist/color-DweYl7pE.js +0 -86
  565. package/dist/components/custom/concentric/composables/ringField.d.ts +0 -44
  566. package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +0 -35
  567. package/dist/components/custom/constellation/constellationDraw.d.ts +0 -30
  568. package/dist/components/custom/dock/DockRail.vue.d.ts +0 -89
  569. package/dist/createCanvasLifecycle-CHD5XrDW.js +0 -82
  570. package/dist/dockContext-BNfyPLe9.js +0 -17
  571. package/dist/procedural-color.wgsl-CToRHugY.js +0 -224
  572. package/dist/resolveCanvasColor-CUyHr5Uu.js +0 -11
  573. package/dist/slider-DVb4HXU-.js +0 -142
  574. package/dist/springPresets-CFQGQfdl.js +0 -40
  575. package/dist/styles/dock/rail-extend.css +0 -397
  576. package/dist/useLiquidPress-kfb4KX79.js +0 -39
  577. package/dist/usePointerVelocityField-JbRd5CrM.js +0 -137
  578. package/dist/useRAFLoop-UYa4zoiN.js +0 -109
  579. package/dist/useSpringPress-BsqPr7FJ.js +0 -34
  580. package/src/styles/dock/rail-extend.css +0 -397
  581. /package/dist/{CollapsibleContent-68dEXIAl.js → CollapsibleContent-D7UNsXQr.js} +0 -0
  582. /package/dist/{InstrumentChassis-Bx0F_q5g.js → InstrumentChassis-UUJX0-mW.js} +0 -0
  583. /package/dist/{Label-C2ejNWeC.js → Label-B_HPqi_q.js} +0 -0
  584. /package/dist/{ModalOverlay-D1VrWyoi.js → ModalOverlay-DfAf7o15.js} +0 -0
  585. /package/dist/{SelectGroup-DwwjicPY.js → SelectGroup-Dcczq44n.js} +0 -0
  586. /package/dist/{_plugin-vue_export-helper-C1je1s0u.js → _plugin-vue_export-helper-gLzyemvl.js} +0 -0
  587. /package/dist/{compile-CQEFRTmx.js → compile-INR_tPk_.js} +0 -0
  588. /package/dist/{constants-BPOqYJAm.js → constants-BWj7DkMn.js} +0 -0
  589. /package/dist/{createContext-CpBNTRMI.js → createContext-Cd23P9j0.js} +0 -0
  590. /package/dist/{math-BINYmg5z.js → math-5RcIgCB4.js} +0 -0
  591. /package/dist/{menuItemVariants-D8VNHq22.js → menuItemVariants-DAXquKja.js} +0 -0
  592. /package/dist/{prng-Za0Rmgag.js → prng-B5tIXTtj.js} +0 -0
  593. /package/dist/{useGlobalDark-C28t0VWJ.js → useGlobalDark-B4HO9LXG.js} +0 -0
  594. /package/dist/{useIntersectionPause-Bj4sPkMh.js → useIntersectionPause-DO8Vl4gs.js} +0 -0
  595. /package/dist/{useInterval-CvK1mL92.js → useInterval-BVUI-sez.js} +0 -0
  596. /package/dist/{useKeyboardShortcuts-BXWXOZ-9.js → useKeyboardShortcuts-BEut54Tk.js} +0 -0
  597. /package/dist/{useResizeObserver-Bpoi7tRE.js → useResizeObserver-DdEn3v2f.js} +0 -0
  598. /package/dist/{useResolveTokenColor-vAylyR0x.js → useResolveTokenColor-ChOnCckA.js} +0 -0
  599. /package/dist/{useScrollProgress-D7bYU2RK.js → useScrollProgress-A0M6qRl7.js} +0 -0
  600. /package/dist/{useSortable-DHjtZSEd.js → useSortable-DQV_UNDw.js} +0 -0
  601. /package/dist/{useTextHighlight-CWEi25hf.js → useTextHighlight-Bma3UlKA.js} +0 -0
  602. /package/dist/{useTimer-BHJOKr35.js → useTimer-BBLGPXR8.js} +0 -0
  603. /package/dist/{useUserInvalidAria-y5namzeE.js → useUserInvalidAria-EmmwWPOl.js} +0 -0
  604. /package/dist/{useViewportReady-anbac3m6.js → useViewportReady-C9pYnn7K.js} +0 -0
  605. /package/dist/{vReveal-Czsb7zQC.js → vReveal-CT1KtwZA.js} +0 -0
  606. /package/dist/{vSpecular-CQFmLNzA.js → vSpecular-EX7loENl.js} +0 -0
@@ -0,0 +1,22 @@
1
+ interface GooSpec {
2
+ /** The filter id consumers reference (`url(#<id>)`). */
3
+ id: string;
4
+ /** feGaussianBlur stdDeviation — the alpha-bleed radius (per-scale). */
5
+ blur: number;
6
+ /** feColorMatrix A-channel slope — the threshold steepness (the gooey shoulder). */
7
+ slope: number;
8
+ /** feColorMatrix A-channel offset (negative) — the alpha cut point. */
9
+ offset: number;
10
+ }
11
+ type __VLS_Props = {
12
+ /**
13
+ * Extra bespoke `<filter>` instances beyond the library register (a consumer
14
+ * tuning a one-off scale). Each is the SAME graph at its own knobs.
15
+ */
16
+ extra?: GooSpec[];
17
+ };
18
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
19
+ extra: GooSpec[];
20
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
21
+ declare const _default: typeof __VLS_export;
22
+ export default _default;
@@ -0,0 +1 @@
1
+ export { default as GooFilter } from "./GooFilter.vue";
@@ -10,13 +10,13 @@
10
10
  * Field-count discipline (SPEC §2): resist a 13th scalar per new instrument —
11
11
  * `blend` earned its place only because highlighter genuinely needed `multiply`.
12
12
  *
13
- * The shipped register: PEN is the default (clean ink, grain:0 ⇒ no filter); the
14
- * CRAYON ships as the proven STROKE-crayon (constant-width offset passes + the
15
- * seeded static feTurbulence grain — `ds-crayon-handmark` verdict), i.e.
16
- * `ribbon:'stroke'`. The HIGHLIGHTER (BA.W-HANDMARK C-1) ENGAGES `ribbon:'hull'`
17
- * — the perfect-freehand variable-width slab the atlas's field delta names — so the
18
- * vendored pf body ships whenever the highlighter does (the budget note in the cut
19
- * + a `profile:budget` rebaseline).
13
+ * The shipped register: PEN is the default (clean ink, grain:0 ⇒ no filter, the one
14
+ * `ribbon:'stroke'` clean voice). The variable-width VOICES — boil (the pressured
15
+ * pen-line), crayon (the waxy swell), marker (the juicy core), highlighter (the wide
16
+ * slab) — all ENGAGE `ribbon:'hull'`, the vendored perfect-freehand body, sharing the
17
+ * one curvature-coupled pressure profile (ink.ts `addPressure`). pen/pencil/ring stay
18
+ * `ribbon:'stroke'` by intent (pen clean, pencil's dry tooth-grain is its character,
19
+ * ring a thin whisper). The pf body ships whenever any hull brush does.
20
20
  */
21
21
  export type BlendMode = "source-over" | "multiply" | "darken" | "screen";
22
22
  export interface TaperSpec {
@@ -88,9 +88,9 @@ export interface InkPath {
88
88
  cap?: "round" | "square" | "butt";
89
89
  }
90
90
  /**
91
- * The named points in the continuum. `pen` is the DEFAULT (clean ink, grain:0).
92
- * `crayon` is the SHIPPED stroke-crayon (ribbon:'stroke', the static grain filter);
93
- * `pencil`/`marker`/`highlighter` round out the spanning set.
91
+ * The named points in the continuum. `pen` is the DEFAULT (clean ink, grain:0,
92
+ * `ribbon:'stroke'`). `boil`/`crayon`/`marker`/`highlighter` engage `ribbon:'hull'`
93
+ * (the curvature-coupled variable-width body); `pencil`/`ring` stay clean stroke.
94
94
  */
95
95
  export declare const BRUSHES: {
96
96
  readonly pen: {
@@ -117,15 +117,15 @@ export declare const BRUSHES: {
117
117
  readonly cap: "round";
118
118
  };
119
119
  readonly boil: {
120
- readonly weight: 5;
120
+ readonly weight: 7;
121
121
  readonly weightJitter: 0.12;
122
- readonly thinning: 0.2;
122
+ readonly thinning: 0.55;
123
123
  readonly taper: {
124
- readonly start: 12;
125
- readonly end: 12;
124
+ readonly start: 14;
125
+ readonly end: 18;
126
126
  readonly ease: "out-cubic";
127
127
  };
128
- readonly ribbon: "stroke";
128
+ readonly ribbon: "hull";
129
129
  readonly opacity: 1;
130
130
  readonly blend: "source-over";
131
131
  readonly passes: 1;
@@ -171,7 +171,7 @@ export declare const BRUSHES: {
171
171
  readonly end: 6;
172
172
  readonly ease: "linear";
173
173
  };
174
- readonly ribbon: "stroke";
174
+ readonly ribbon: "hull";
175
175
  readonly opacity: 0.8;
176
176
  readonly blend: "source-over";
177
177
  readonly passes: 2;
@@ -217,7 +217,7 @@ export declare const BRUSHES: {
217
217
  readonly end: 10;
218
218
  readonly ease: "out-cubic";
219
219
  };
220
- readonly ribbon: "stroke";
220
+ readonly ribbon: "hull";
221
221
  readonly opacity: 0.92;
222
222
  readonly blend: "source-over";
223
223
  readonly passes: 1;
@@ -28,12 +28,32 @@ export declare const HIGHLIGHT_RISE = 0.22;
28
28
  /** Pre-measure fallback for the highlight band's low seat (null baselineFrac). */
29
29
  export declare const HIGHLIGHT_FALLBACK_FRAC = 0.66;
30
30
  /**
31
- * Natural-underline morphology (BA.W-HANDMARK C-2). The procedural wobble is
32
- * SCALE-RELATIVE: the amplitude is a fraction of the rendered word width (a long
33
- * word and a short word wobble in proportion, not the viewBox-stretched-constant
34
- * the fork's GlassUnderline shipped). The period count is IRREGULAR — a seeded
35
- * pick in [PERIODS_MIN, PERIODS_MAX] — so two seeds differ in hump count, never
36
- * identical twins.
31
+ * The boil voice — φ-incommensurate fractal value-noise (the masthead morphology).
32
+ * ─────────────────────────────────────────────────────────────────────────────
33
+ * The boil centerline is a 1-D fractal value-noise displacement off the HOUSE
34
+ * `mulberry32`, NOT a seeded sinusoid. A sinusoid (the prior body) self-correlates
35
+ * into a near-period — it reads as a spell-check squiggle and a clean sine fails any
36
+ * honest non-periodicity discriminator (a sine's extrema are near-uniformly spaced).
37
+ * The value-noise sums octaves at φ-stepped frequencies (mutually irrational → the
38
+ * sum NEVER closes into a period); each octave's amplitude decays by 1/φ. The result
39
+ * is a hump-to-hump-IRREGULAR hand line whose inter-extremum spacing-CV is the honest
40
+ * teeth (measured: ~0.41 at the paint's segment count, ~0.71 resampled at RES=64,
41
+ * over 400 seeds — vs the prior sinusoid's ~0.14; a clean separation either side of a
42
+ * 0.30 floor). The amplitude is SCALE-RELATIVE (a fraction of the rendered span), so
43
+ * a long word and a short word wobble in proportion. FILTER-FREE — the wander lives
44
+ * in the control points + the hull width, never a feTurbulence.
45
+ *
46
+ * Constants pinned against a 400-seed spacing-CV spike (NOT the seed-overfit autocorr
47
+ * peak the prior gate keyed — autocorr cannot separate smooth low-frequency value-
48
+ * noise from a sinusoid at any resolution).
37
49
  */
38
- export declare const PERIODS_MIN = 2;
39
- export declare const PERIODS_MAX = 4;
50
+ /** φ — the per-octave frequency step (mutually irrational → never periodic). */
51
+ export declare const NOISE_PHI = 1.618033988749895;
52
+ /** octave count of the fractal value-noise sum. */
53
+ export declare const NOISE_OCTAVES = 4;
54
+ /** base octave frequency (humps across the unit span); octave k rides F0·φ^k. */
55
+ export declare const NOISE_F0 = 2.5;
56
+ /** displacement amplitude as a fraction of the rendered span (scale-relative). */
57
+ export declare const NOISE_AMP_FRAC = 0.05;
58
+ /** endpoint-only cosine taper width (the ends settle to baseline; the BODY stays irregular). */
59
+ export declare const NOISE_EDGE = 0.12;
@@ -30,6 +30,39 @@ export interface ShapeGeom {
30
30
  lines: [number, number][][];
31
31
  closed: boolean;
32
32
  }
33
+ /**
34
+ * The boil voice — φ-incommensurate fractal value-noise (RE-INVENT; the masthead
35
+ * morphology). A 1-D fractal value-noise DISPLACEMENT off the HOUSE `mulberry32`,
36
+ * NOT a seeded sinusoid (the prior body self-correlated into a near-period — a spell-
37
+ * check squiggle):
38
+ *
39
+ * disp(t) = Σ_{k=0..OCT-1} aₖ · vnoiseₖ(t·fₖ + φₖ) normalised by Σaₖ
40
+ * fₖ = NOISE_F0 · φ^k (φ mutually-irrational steps → the sum NEVER closes
41
+ * into a period — the non-periodicity mechanism)
42
+ * aₖ = (1/φ)^k (per-octave decay)
43
+ * φₖ = seeded per-octave phase (house mulberry32)
44
+ * vnoiseₖ = seeded lattice value-noise, smootherstep-faired
45
+ *
46
+ * The four atlas axes:
47
+ * - amplitude SCALES with the rendered span (`(x2−x1) × NOISE_AMP_FRAC`), not a
48
+ * viewBox-stretched constant (a long word and a short word wobble in proportion);
49
+ * - the hump-to-hump spacing is IRREGULAR (the φ-incommensurate octave sum — the
50
+ * honest non-periodicity teeth, spacing-CV ~0.41 at the paint count vs the prior
51
+ * sinusoid's ~0.14, over 400 seeds);
52
+ * - the non-uniform body gives the pf hull a pressure-taper-friendly point stream;
53
+ * - the seed is the HOUSE mulberry32 (determinism + per-seed variation), ZERO
54
+ * pencil-boil `mulberry32` import.
55
+ *
56
+ * ENDPOINT anchor (NOT a body-wide envelope): a narrow cosine taper at the very ends
57
+ * only (`NOISE_EDGE`), so the ends settle to baseline (no draw-on pop) while the BODY
58
+ * amplitude stays irregular hump-to-hump (the prior `sin(π·t)` envelope made the body
59
+ * amplitude smooth-and-uniform — the clean-envelope tell). FILTER-FREE: the wander is
60
+ * in the control points + the hull width, never a feTurbulence.
61
+ *
62
+ * EXPORTED so the measuring gate samples the REAL emitted point-set (never a symbol-
63
+ * presence regex — the W-GATE-TRUTH-AUDIT discipline).
64
+ */
65
+ export declare function naturalUnderlinePoints(x1: number, y: number, x2: number, seed: number, segments: number): [number, number][];
33
66
  /**
34
67
  * Semantic shape → { lines, closed } in the marking space (or a positioned box).
35
68
  *
@@ -41,7 +74,7 @@ export interface ShapeGeom {
41
74
  * back to the legacy `VB_H − 8` constant so first paint (and jsdom/SSR) still renders
42
75
  * a line, replaced the instant the measure lands.
43
76
  *
44
- * `natural` (BA.W-HANDMARK C-2) routes the underline through the procedural
77
+ * `natural` routes the underline through the φ-incommensurate value-noise
45
78
  * `naturalUnderlinePoints` morphology instead of pencil-boil's `wobbleLinePoints`
46
79
  * (the masthead `boil` voice); the default underline keeps the pencil-boil line.
47
80
  */
@@ -19,7 +19,7 @@
19
19
  */
20
20
  export { default as HandMark, default as InkMark } from "./HandMark.vue";
21
21
  export { BRUSHES, resolveBrush, lerpBrush, type Brush, type BrushName, type BlendMode, type TaperSpec, type StampFn, type InkPath, } from "./brush";
22
- export { shapeGeom, serialize, boilLines, VB_W, VB_H, UNDERLINE_GAP, type ShapeGeom, } from "./geometry";
22
+ export { shapeGeom, serialize, boilLines, naturalUnderlinePoints, VB_W, VB_H, UNDERLINE_GAP, type ShapeGeom, } from "./geometry";
23
23
  export { ink, type SVGFragment } from "./ink";
24
24
  export { grainFilter, hasGrain } from "./texture";
25
25
  export { getStroke, getStrokePoints, getSvgPathFromStroke, type StrokeOptions, type InputPoint, } from "./freehand";
@@ -71,6 +71,16 @@ export interface IconChipProps {
71
71
  * untouched. Default `false` (byte-identical to the reference register).
72
72
  */
73
73
  saturated?: boolean;
74
+ /**
75
+ * The QUIET glass register (BD.W-GLASS-ATOM-REGISTER cross-link). The DEFAULT
76
+ * chip keeps its loud `in srgb` brand-overlay plate (AW.W26 fence); this opt-in
77
+ * routes the chip through the shared `.glass-atom` warm-glass capsule instead —
78
+ * a transmissive lozenge with the warm floor + the `--glass-blur-quiet` backdrop
79
+ * + the keyed rim, tinted by `--glass-fill-tint` toward the event hue. Two
80
+ * registers, exactly like Badge: loud brand pop (default) vs quiet glass lens
81
+ * (opt-in). Default `false`.
82
+ */
83
+ glass?: boolean;
74
84
  /**
75
85
  * Entrance choreography — composes the shipped `vReveal` directive. A numeric
76
86
  * value is the `--d` stagger index; `true` is index 0. PRM-gated by `vReveal`'s
@@ -67,16 +67,35 @@ type __VLS_Props = {
67
67
  * (often raw-config-key) label. Default `false` (standalone behavior).
68
68
  */
69
69
  hideLabel?: boolean;
70
+ /**
71
+ * BC.W-CONTROL-SMOOTH move C (kf-G3) — lay the field on the HORIZONTAL axis
72
+ * (label beside control, not above) for dense inline forms. ADDITIVE +
73
+ * default `false`: a bare `<LabeledField>` is byte-identical to HEAD (the
74
+ * stacked label-over-control layout). Pairs with the `#action` slot — a
75
+ * horizontal labeled control carrying a trailing action affordance is the
76
+ * REQ-sec20 horizontal-action case the kf-G3 row booked.
77
+ */
78
+ horizontal?: boolean;
70
79
  };
71
80
  declare var __VLS_7: {
72
81
  errorId: string;
73
82
  controlId: string;
74
83
  labelledBy: string;
75
- }, __VLS_9: {};
84
+ }, __VLS_9: {
85
+ controlId: string;
86
+ }, __VLS_11: {
87
+ errorId: string;
88
+ controlId: string;
89
+ labelledBy: string;
90
+ }, __VLS_13: {};
76
91
  type __VLS_Slots = {} & {
77
92
  default?: (props: typeof __VLS_7) => any;
78
93
  } & {
79
- error?: (props: typeof __VLS_9) => any;
94
+ action?: (props: typeof __VLS_9) => any;
95
+ } & {
96
+ default?: (props: typeof __VLS_11) => any;
97
+ } & {
98
+ error?: (props: typeof __VLS_13) => any;
80
99
  };
81
100
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
82
101
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -72,6 +72,20 @@ export interface MetricRowProps {
72
72
  * this to their active-row gating (e.g. the metric being sampled).
73
73
  */
74
74
  active?: boolean;
75
+ /**
76
+ * BC.W-CONTROL-CUSTOM (CP1, the speedtest-AX `data-protagonist` fold) —
77
+ * marks this row as the ONE focal/protagonist metric per surface. When
78
+ * `true`, the value lifts to the emphasis register (the heavier
79
+ * `--metric-row-value-weight-emphasis` rung) and a `data-protagonist`
80
+ * attribute lands on the row so a consumer can re-tint the focal metric.
81
+ *
82
+ * This is the ONE focal emphasis event per surface (the W-SUFFUSE
83
+ * one-color-event proportion) — exactly one row per <MetricStack> should
84
+ * be the protagonist. The magnitude stays a `--metric-row-*` token read
85
+ * with a fallback, so a `:root`/per-row override of the emphasis weight
86
+ * cascades. A bare (`protagonist`-unset) row is byte-identical.
87
+ */
88
+ protagonist?: boolean;
75
89
  class?: HTMLAttributes["class"];
76
90
  }
77
91
  declare var __VLS_1: {}, __VLS_8: {}, __VLS_10: {}, __VLS_12: {}, __VLS_14: {}, __VLS_16: {};
@@ -94,6 +108,7 @@ declare const __VLS_base: import("vue").DefineComponent<MetricRowProps, {}, {},
94
108
  iconSize: number;
95
109
  digitCount: number;
96
110
  colorTinted: boolean;
111
+ protagonist: boolean;
97
112
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
98
113
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
99
114
  declare const _default: typeof __VLS_export;
@@ -12,6 +12,14 @@ export interface PagerDotsProps {
12
12
  windowFit?: number;
13
13
  /** Encapsulate the rail in the glass pager pill chassis. Default true. */
14
14
  ring?: boolean;
15
+ /**
16
+ * The ARIA register. `"tabs"` (default, byte-identical) is the carousel
17
+ * panel-nav register (`role="tablist"`/`role="tab"` + `aria-selected`);
18
+ * `"group"` is the full-viewport deck PRESENTATION register
19
+ * (`role="group"`/`aria-current`) the `<DeckPager>` selects. ONE windowing
20
+ * oracle, two aria registers — the `pagerWindow` math is NEVER re-forked.
21
+ */
22
+ pattern?: "tabs" | "group";
15
23
  /** Accessible name for the rail group. */
16
24
  ariaLabel?: string;
17
25
  /** Additional classes for the rail root. */
@@ -32,6 +40,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
32
40
  "onUpdate:active"?: ((value: number) => any) | undefined;
33
41
  }>, {
34
42
  orientation: "horizontal" | "vertical";
43
+ pattern: "tabs" | "group";
35
44
  ariaLabel: string;
36
45
  ring: boolean;
37
46
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -1,2 +1,4 @@
1
1
  export { default as PagerDots } from "./PagerDots.vue";
2
2
  export type { PagerDotsProps } from "./PagerDots.vue";
3
+ export { pagerWindow } from "./pagerWindow";
4
+ export type { PagerWindow } from "./pagerWindow";
@@ -0,0 +1,9 @@
1
+ export interface PagerWindow {
2
+ /** The 0-based slide indices to render as dots. */
3
+ shown: number[];
4
+ /** The window is clipped at the start (a dimmed leading edge dot). */
5
+ clippedStart: boolean;
6
+ /** The window is clipped at the end (a dimmed trailing edge dot). */
7
+ clippedEnd: boolean;
8
+ }
9
+ export declare function pagerWindow(total: number, activeIndex: number, fit: number): PagerWindow;
@@ -13,6 +13,24 @@ export interface PaperBackdropProps {
13
13
  opacity?: number | string;
14
14
  /** Override turbulence frequency (advisory only — swaps the texture var). */
15
15
  frequency?: PaperBackdropFrequency;
16
+ /**
17
+ * BD.W-PAGE-FIELD — mount the WARM COLORFUL FIELD plane beneath the grain.
18
+ * When set, a `.paper-field` cel plane (amber→terracotta→sand at FIELD
19
+ * lightness, drifting on the compositor) paints UNDER the grain, so every
20
+ * glass surface over it reads transmissive/warm instead of gray. The grain
21
+ * rides ON TOP at its multiply opacity — one backdrop, two stacked planes.
22
+ * Opt-in (presets-in-consumers demo-chassis contract); the library glass
23
+ * primitive is UNCHANGED.
24
+ */
25
+ field?: boolean;
26
+ /**
27
+ * The warm route hue request (any degree). The field CLAMPS it to the warm
28
+ * band [25,95] IN THE CSS, so a cool/teal value cannot paint cool. Wire
29
+ * `warmFieldHue(category)` here per route.
30
+ */
31
+ fieldHue?: number | string;
32
+ /** The field rung intensity (0.85 ground / 1.0 vivid hero / 0 = neutral). */
33
+ fieldIntensity?: number | string;
16
34
  /** Additional class names. */
17
35
  class?: HTMLAttributes["class"];
18
36
  }
@@ -0,0 +1,42 @@
1
+ import type { PaperGridConfig } from "./constants";
2
+ /**
3
+ * PaperGrid — a liquid AA-grid: evenly-spaced LARGER lines on a slowly breathing
4
+ * curl-flow sheet.
5
+ *
6
+ * A calm engineering-graph-paper grid (evenly-spaced, LARGE cells, a crisp fine rule with
7
+ * a bolder major rule every 5 cells) drawn on a slowly breathing liquid sheet — adjacent
8
+ * lines bow and flow TOGETHER as if the grid is ruled on a gently rippling pond, never a
9
+ * per-line jitter. WebGPU-FIRST: a pure fullscreen fragment pass (the aurora/concentric
10
+ * shape-class) computes the grid at a curl-warped coordinate per pixel via the Ben Golus
11
+ * derivative-AA distance function (constant device-pixel-crisp lines, the CSS-blur kill),
12
+ * the Iñigo Quílez domain warp (the "liquid"), and the Bridson divergence-free curl flow
13
+ * (WHY it's liquid not noise). It composes `usePaperGrid` → the `createGpuSubstrate` picker
14
+ * over the ONE canvas lifecycle leaf (offscreen-pause, live-PRM freeze, consumer-owned DPR)
15
+ * — it never bootstraps its own context.
16
+ *
17
+ * The DEFAULT line ink is the warm-cream `--foreground` library identity (resolved live at
18
+ * mount); the demo themes it through a PRESET (presets-in-consumers — never a library
19
+ * token). The grid suffuses over the page (transparent ground) — teal-on-navy is gone.
20
+ */
21
+ type __VLS_Props = {
22
+ /** The full author schema (the studio's `useConfiguratorState` model). */
23
+ config?: PaperGridConfig;
24
+ /**
25
+ * The declarative WCAG-2.2.2 pause seam. `v-model:paused` parks the render loop
26
+ * (the substrate's `manual` suspend) when `true`. Wire `<DockBackgroundToggle>`'s
27
+ * `@update:paused` to this `v-model`.
28
+ */
29
+ paused?: boolean;
30
+ };
31
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
32
+ pause: () => void;
33
+ resume: () => void;
34
+ wake: () => void;
35
+ renderAt: (timeSec: number) => void;
36
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
37
+ "update:paused": (value: boolean) => any;
38
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
39
+ "onUpdate:paused"?: ((value: boolean) => any) | undefined;
40
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
41
+ declare const _default: typeof __VLS_export;
42
+ export default _default;
@@ -0,0 +1,105 @@
1
+ /** A 2-vector. */
2
+ export interface Vec2 {
3
+ x: number;
4
+ y: number;
5
+ }
6
+ /** The curl central-difference epsilon (matches `flow.glsl.ts` / `flow.wgsl.ts`). */
7
+ export declare const CURL_EPS = 0.012;
8
+ /** A 3-octave scalar fbm potential (the host noise basis the curl operator wraps). */
9
+ export declare function potentialFBM(p: Vec2): number;
10
+ /** The 2D curl of the scalar fbm potential (the JS twin of `curlFBM`). */
11
+ export declare function curlFBM(p: Vec2): Vec2;
12
+ /**
13
+ * The Ben Golus derivative-AA grid line coverage at `g` (grid space). `targetWidth` is the
14
+ * desired line half-width in GRID UNITS (the caller passes `lineWidthPx / minorPitchPx` so
15
+ * the line is N device-pixels wide); `uvDeriv` is the per-axis screen-space derivative of
16
+ * `g` (in the shaders `length(vec2(dFdx(g), dFdy(g)))`; in JS the caller passes it
17
+ * analytically so the path is reproducible). Returns line coverage [0..1].
18
+ *
19
+ * The Golus pipeline (transcribed by the WGSL/GLSL EXACTLY):
20
+ * gridUV = 1 − |fract(g)·2 − 1| (triangle wave: 0 at line, 1 at center)
21
+ * drawW = clamp(targetWidth, uvDeriv, 0.5)
22
+ * lineAA = uvDeriv·1.5
23
+ * grid2 = smoothstep(drawW+lineAA, drawW−lineAA, gridUV)
24
+ * grid2 *= clamp(targetWidth/drawW, 0, 1) (preserve thin-line intensity)
25
+ * grid2 = mix(grid2, targetWidth, clamp(uvDeriv·2−1, 0, 1)) (Moiré suppression)
26
+ * line = max(grid2.x, grid2.y)
27
+ */
28
+ export declare function gridCoverage(g: Vec2, targetWidth: number, uvDeriv: Vec2): number;
29
+ /**
30
+ * The complete paper-grid sample at a domain `uv` (the round-trip anchor). Composes the
31
+ * warp + the bulge + the two-tier Golus coverage EXACTLY as the WGSL/GLSL `fs_main` does,
32
+ * returning the premultiplied-alpha (the page reads through the troughs). `uvDeriv` is the
33
+ * FIXED analytic per-axis derivative (JS has no fragment derivatives); the shaders compute
34
+ * it from `dpdx`/`dpdy`. Returns `{ line, alpha }` — the line coverage + the global alpha.
35
+ */
36
+ export interface PaperGridSampleParams {
37
+ /** The grid scale (view / minorPitch → LARGER cells = smaller scale). */
38
+ gridScale: number;
39
+ /** The traveling-wave front direction. */
40
+ waveDir: Vec2;
41
+ /** The crest-band spatial frequency. */
42
+ waveK: number;
43
+ /** The front speed (ω). */
44
+ waveOmega: number;
45
+ /** The crest-band width. */
46
+ waveSigma: number;
47
+ /** Max per-cell twist angle at the crest (rad). */
48
+ twistMax: number;
49
+ /** Max per-cell shear at the crest. */
50
+ shearMax: number;
51
+ /** The spring-eased envelope amplitude (0..1; PRM snaps to 0). */
52
+ amp: number;
53
+ /** The cursor in GRID space. */
54
+ cursor: Vec2;
55
+ /** The cursor-swirl peak twist (rad). */
56
+ bulgeStrength: number;
57
+ bulgeRadius: number;
58
+ /** +1 repel, −1 attract (signs the swirl). */
59
+ bulgeMode: number;
60
+ /** 1 = cursor swirl on. */
61
+ interactive: number;
62
+ /** Golus target half-widths in grid units (minor + major). */
63
+ targetWidth: number;
64
+ targetWidthMajor: number;
65
+ /** How many minor cells per major rule. */
66
+ majorEvery: number;
67
+ minorAlpha: number;
68
+ majorAlpha: number;
69
+ /** The GLOBAL subtlety knob (suffusion → tiny). */
70
+ fieldAlpha: number;
71
+ /** The FIXED per-axis derivative (the JS round-trip; shaders use dpdx/dpdy). */
72
+ uvDeriv: Vec2;
73
+ /** The filled-FACE opacity (0 → the face evaporates → byte-identical to HEAD). */
74
+ faceAlpha?: number;
75
+ /** The slope-shade ∇H Lambert gain. */
76
+ faceReliefGain?: number;
77
+ /** The volume-preserving squash (the inset retreats at the crest). */
78
+ squashK?: number;
79
+ /** The base inset-square coverage. */
80
+ baseInset?: number;
81
+ /** The fixed cel key-light direction. */
82
+ lightDir?: Vec2;
83
+ }
84
+ /** The face-shade scalars the FACE composite reads (the numeric-parity witness — FOLD B/C/D). */
85
+ export interface PaperGridFace {
86
+ /** The crest envelope at the pre-twist driver cc (FOLD A). */
87
+ env: number;
88
+ /** The sheet height at the driver cc (= env; the named leaf scalar). */
89
+ h: number;
90
+ /** The Lambert slope-shade [0,1] against the fixed key-light. */
91
+ shade: number;
92
+ /** The squashed inset-square face coverage [0,1]. */
93
+ faceCov: number;
94
+ /** The composited face alpha (FOLD D — face·faceAlpha·fieldAlpha, NO h-term). */
95
+ faceA: number;
96
+ /** The ramp parameter mix(shade, h) keying the multi-stop warm-divergent ink (FOLD B). */
97
+ rampT: number;
98
+ }
99
+ export declare function samplePaperGrid(uv: Vec2, t: number, p: PaperGridSampleParams): {
100
+ line: number;
101
+ alpha: number;
102
+ face: PaperGridFace;
103
+ };
104
+ /** The grid scale from the view + minor pitch (LARGER cells = smaller scale). */
105
+ export declare function gridScaleFor(viewExtentPx: number, minorPitchPx: number): number;
@@ -0,0 +1,18 @@
1
+ import type { WebGLCanvasFrame } from "../../../../composables/glass/webgl/useWebGLCanvas";
2
+ import type { PaperGridConfig } from "../constants";
3
+ import { type Vec2 } from "./paperGrid";
4
+ export interface PaperGridGLSetupDeps {
5
+ canvas: HTMLCanvasElement;
6
+ config: PaperGridConfig;
7
+ getCursor: () => Vec2;
8
+ /** The spring-eased traveling-wave envelope amplitude (0..1; PRM → 0). */
9
+ getAmp: () => number;
10
+ shouldContinue: () => boolean;
11
+ /**
12
+ * The per-frame pointer hook — usePaperGrid advances the shared pointer field + derives
13
+ * the transient cursor here (the no-own-rAF discipline). ZERO own rAF.
14
+ */
15
+ onFrame?: (timeSec: number) => void;
16
+ }
17
+ /** Build the `setupGL(gl)` callback the `createGpuSubstrate` WebGL2 path invokes. */
18
+ export declare function createPaperGridGLSetup(deps: PaperGridGLSetupDeps): (gl: WebGL2RenderingContext) => WebGLCanvasFrame;
@@ -0,0 +1,21 @@
1
+ import type { WebGPUCanvasFrame } from "../../../../composables/glass/webgpu/useWebGPUCanvas";
2
+ import type { PaperGridConfig } from "../constants";
3
+ import type { Vec2 } from "./paperGrid";
4
+ export interface PaperGridWGPUSetupDeps {
5
+ canvas: HTMLCanvasElement;
6
+ config: PaperGridConfig;
7
+ /** The transient pointer cursor in GRID space — re-read each frame (the cursor swirl). */
8
+ getCursor: () => Vec2;
9
+ /** The spring-eased traveling-wave envelope amplitude (0..1; PRM → 0). */
10
+ getAmp: () => number;
11
+ /** Demand-gate (the renderer's quiescence layer — substrate-agnostic). */
12
+ shouldContinue: () => boolean;
13
+ /**
14
+ * The per-frame pointer hook — usePaperGrid advances the shared `usePointerVelocityField`
15
+ * here (the no-own-rAF discipline: the renderer's frame loop FEEDS `tick(delta)`) and
16
+ * derives the transient cursor. ZERO own rAF.
17
+ */
18
+ onFrame?: (timeSec: number) => void;
19
+ }
20
+ /** Build the paper-grid `setupWGPU(device, context, format)` callback. */
21
+ export declare function createPaperGridWGPUSetup(deps: PaperGridWGPUSetupDeps): (device: GPUDevice, context: GPUCanvasContext, format: GPUTextureFormat) => WebGPUCanvasFrame;
@@ -0,0 +1,16 @@
1
+ import type { PaperGridConfig } from "../constants";
2
+ import type { Vec2 } from "./paperGrid";
3
+ export declare const PAPER_GRID_UNIFORM_BYTES = 224;
4
+ export interface PaperGridUniformScratch {
5
+ buffer: ArrayBuffer;
6
+ f32: Float32Array;
7
+ }
8
+ export declare function createPaperGridScratch(): PaperGridUniformScratch;
9
+ /**
10
+ * Pack the paper-grid uniforms in place. `viewExtentPx` is the canvas backing-store extent
11
+ * the grid scale derives from (so the cell pitch is honest in device px); `cursor` is the
12
+ * transient pointer in GRID space (the renderer derives it from `usePointerVelocityField`);
13
+ * `aspect` corrects the domain x. The line ink resolves the warm `--foreground` identity
14
+ * (the demo themes it via a preset, never a token edit).
15
+ */
16
+ export declare function packPaperGridUniforms(scratch: PaperGridUniformScratch, config: PaperGridConfig, timeSec: number, aspect: number, viewExtentPx: number, cursor: Vec2, amp: number): PaperGridUniformScratch;
@@ -0,0 +1,31 @@
1
+ import { type Ref } from "vue";
2
+ import { type GpuBackend } from "../../../../composables/glass/webgpu/useGpuSubstrate";
3
+ import type { PaperGridConfig } from "../constants";
4
+ export interface UsePaperGridOptions {
5
+ config: PaperGridConfig;
6
+ /** `"capture"` → renderAt-only (the deterministic π capture path). Default `"live"`. */
7
+ mode?: "live" | "capture";
8
+ }
9
+ /** The uniform handle a consumer wires its lifecycle against (backend-agnostic). */
10
+ export interface PaperGridHandle {
11
+ /** The resolved backend (`"webgpu"` where supported, else the WebGL2 GLSL fallback). */
12
+ readonly backend: GpuBackend;
13
+ /** Park the loop (the WCAG-2.2.2 pause seam — `DockBackgroundToggle` wires this). */
14
+ pause: () => void;
15
+ /** Re-arm the loop. */
16
+ resume: () => void;
17
+ /** Re-arm a parked loop on demand (a pointer that re-introduced motion). */
18
+ wake: () => void;
19
+ /** Draw one frame out-of-loop (capture / thumbnail). */
20
+ renderAt: (timeSec: number) => void;
21
+ /** The live `prefers-reduced-motion: reduce` state. */
22
+ readonly reducedMotion: boolean;
23
+ /** Tear down the renderer + release GPU/GL resources. */
24
+ dispose: () => void;
25
+ }
26
+ /**
27
+ * Mount the paper-grid renderer on `canvasRef`. The WebGPU primary + the WebGL2 fallback are
28
+ * BOTH pure fullscreen fragment passes evaluating the SAME liquid grid (the ONE math source
29
+ * `paperGrid.ts`), so the picker is the only seam. Returns the uniform lifecycle handle.
30
+ */
31
+ export declare function usePaperGrid(canvasRef: Ref<HTMLCanvasElement | null>, options: UsePaperGridOptions): PaperGridHandle;