@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,811 @@
1
+ import { t as e } from "./_plugin-vue_export-helper-gLzyemvl.js";
2
+ import { t } from "./usePointerVelocityField-BrkqZFhj.js";
3
+ import { a as n, t as r } from "./useGpuSubstrate-Ceet70xq.js";
4
+ import { n as i, t as a } from "./compile-INR_tPk_.js";
5
+ import { s as o, t as s } from "./color-B9jZdhJX.js";
6
+ import { t as c } from "./useIntersectionPause-DO8Vl4gs.js";
7
+ import { u as l } from "./dotMatrixField-CRO0ZFk4.js";
8
+ import { a as u, c as d, d as f, i as p, l as m, n as h, o as g, r as _, s as v, t as y, u as b } from "./uniformBridgeWGPU-BCse1SHU.js";
9
+ import { computed as x, createElementBlock as S, createElementVNode as C, defineComponent as w, normalizeStyle as T, onScopeDispose as ee, openBlock as E, ref as D, useTemplateRef as O, watch as k } from "vue";
10
+ //#region src/components/custom/goo-dot-matrix/constants.ts
11
+ var A = 4, j = [
12
+ {
13
+ L: .96,
14
+ C: .13,
15
+ h: 85
16
+ },
17
+ {
18
+ L: .82,
19
+ C: .18,
20
+ h: 45
21
+ },
22
+ {
23
+ L: .72,
24
+ C: .15,
25
+ h: 62
26
+ }
27
+ ], M = {
28
+ variant: "dot-field",
29
+ field: {
30
+ ...f,
31
+ variant: "blob"
32
+ },
33
+ dotPixelSize: 10,
34
+ dotMin: .18,
35
+ dotMax: .42,
36
+ fieldFloor: .06,
37
+ dotBrightFloor: .35,
38
+ presenceFloor: .2,
39
+ weldSwell: .5,
40
+ weldSpecular: .25,
41
+ flowAmt: .35,
42
+ palette: j,
43
+ background: "transparent",
44
+ fieldGround: "transparent",
45
+ interactive: !1,
46
+ pointerMode: "repel",
47
+ pointerRadius: .35,
48
+ respectReducedMotion: !0
49
+ }, N = .1, P = .45, F = {
50
+ s8: 0,
51
+ s9: 4,
52
+ s10: 8,
53
+ s11: 12,
54
+ s12: 16,
55
+ s13: 20
56
+ };
57
+ function I(e) {
58
+ return +(e === "dot-dither");
59
+ }
60
+ function L(e) {
61
+ return e === "attract" ? -1 : 1;
62
+ }
63
+ function R() {
64
+ return {
65
+ x: 0,
66
+ y: 0,
67
+ active: 0,
68
+ bloom: 0,
69
+ timeSec: 0,
70
+ latticeSquash: 1
71
+ };
72
+ }
73
+ function z() {
74
+ let e = /* @__PURE__ */ new ArrayBuffer(96);
75
+ return {
76
+ buffer: e,
77
+ f32: new Float32Array(e)
78
+ };
79
+ }
80
+ function B(e, t, n, r, i) {
81
+ let { f32: a } = e;
82
+ return a[F.s8 + 0] = I(t.variant), a[F.s8 + 1] = Math.max(t.dotPixelSize * r, 4), a[F.s8 + 2] = t.fieldFloor, a[F.s8 + 3] = t.dotBrightFloor, a[F.s9 + 0] = t.dotMin, a[F.s9 + 1] = t.dotMax, a[F.s9 + 2] = t.pointerRadius, a[F.s9 + 3] = L(t.pointerMode), a[F.s10 + 0] = n.w, a[F.s10 + 1] = n.h, a[F.s10 + 2] = r, a[F.s10 + 3] = t.fieldGround === "transparent" ? 0 : 1, a[F.s11 + 0] = t.interactive ? i.active : 0, a[F.s11 + 1] = i.x, a[F.s11 + 2] = i.y, a[F.s11 + 3] = i.bloom, a[F.s12 + 0] = t.presenceFloor, a[F.s12 + 1] = N, a[F.s12 + 2] = P, a[F.s12 + 3] = i.timeSec, a[F.s13 + 0] = t.weldSwell, a[F.s13 + 1] = t.weldSpecular, a[F.s13 + 2] = t.flowAmt, a[F.s13 + 3] = i.latticeSquash, e;
83
+ }
84
+ //#endregion
85
+ //#region src/components/custom/goo-dot-matrix/shaders/goo-dot.wgsl.ts
86
+ var V = p.indexOf("// ── Full-screen triangle vertex stage"), H = `
87
+ ${V >= 0 ? p.slice(0, V) : p}
88
+
89
+ // ── Dot-grid uniforms (the s8–s13 lanes — see uniformBridgeWGPU.ts; the SoT extend) ──
90
+ struct DotUniforms {
91
+ // s8: (uDotMode, uDotPixelSize, uFieldFloor, uDotBrightFloor)
92
+ s8: vec4<f32>,
93
+ // s9: (uDotMin, uDotMax, uPointerRadius, uPointerMode)
94
+ s9: vec4<f32>,
95
+ // s10: (uResX, uResY, uDpr, uShadowGate) — res + the opaque-ground cartoon-shadow gate
96
+ s10: vec4<f32>,
97
+ // s11: (uPointerActive, uPointerX, uPointerY, uBloom) — the dot-cursor influence
98
+ s11: vec4<f32>,
99
+ // s12: (uPresenceFloor, uWeldLo, uWeldHi, uTime) — Move 1 floor + Move 2 weld band + twinkle clock
100
+ s12: vec4<f32>,
101
+ // s13: (uWeldSwell, uWeldSpecular, uFlowAmt, uLatticeSquash) — Move 2 ridge + Move 4b lattice
102
+ s13: vec4<f32>,
103
+ };
104
+ @group(0) @binding(1) var<uniform> dg: DotUniforms;
105
+
106
+ // The classic ordered-dither Bayer macros (Codrops — the §T2 halftone). Bayer8 is the
107
+ // perceptual ceiling ("beyond 8×8 the gain is minimal"). The metaball field already carries
108
+ // the warped-FBM membrane, so the dither inherits the organic edge for free.
109
+ fn bayer2(a0: vec2<f32>) -> f32 {
110
+ let a = floor(a0);
111
+ return fract(a.x / 2.0 + a.y * a.y * 0.75);
112
+ }
113
+ fn bayer4(a: vec2<f32>) -> f32 {
114
+ return bayer2(0.5 * a) * 0.25 + bayer2(a);
115
+ }
116
+ fn bayer8(a: vec2<f32>) -> f32 {
117
+ return bayer4(0.5 * a) * 0.25 + bayer2(a);
118
+ }
119
+
120
+ // ── Register A: the full-screen triangle vertex stage (the metaball idiom — no buffer) ──
121
+ struct DotVSOut {
122
+ @builtin(position) pos: vec4<f32>,
123
+ @location(0) uv: vec2<f32>, // [0,1] across the canvas (the metaball.vert convention)
124
+ };
125
+
126
+ @vertex
127
+ fn vs_main(@builtin(vertex_index) vi: u32) -> DotVSOut {
128
+ var p = vec2<f32>(-1.0, -1.0);
129
+ if (vi == 1u) { p = vec2<f32>(3.0, -1.0); }
130
+ else if (vi == 2u) { p = vec2<f32>(-1.0, 3.0); }
131
+ var out: DotVSOut;
132
+ out.pos = vec4<f32>(p, 0.0, 1.0);
133
+ out.uv = p * 0.5 + 0.5;
134
+ return out;
135
+ }
136
+
137
+ // ── Register A: the dot-stamp fragment (§T1/§T2 — the dot-grid OUTPUT over sceneDistG) ──
138
+ @fragment
139
+ fn fs_main(in: DotVSOut) -> @location(0) vec4<f32> {
140
+ let uDotMode = dg.s8.x; // 0 = smooth field-driven dot, 1 = Bayer dither
141
+ let uDotPixelSize = max(dg.s8.y, 1.0);
142
+ let uFieldFloor = dg.s8.z;
143
+ let uDotBrightFloor = dg.s8.w;
144
+ let uDotMin = dg.s9.x;
145
+ let uDotMax = dg.s9.y;
146
+ let uPointerRadius = max(dg.s9.z, 1e-4);
147
+ let uPointerMode = dg.s9.w; // +1 repel (push out), -1 attract (pull in)
148
+ let uRes = dg.s10.xy;
149
+ let uShadowGate = dg.s10.w; // 1 when an opaque ground is present (cast shadow), else 0
150
+ let pAct = dg.s11.x;
151
+ let cursor = dg.s11.yz; // NDC-ish [-0.5,0.5] (the field's uv space)
152
+ let uBloom = dg.s11.w;
153
+ let uPresenceFloor = dg.s12.x; // Move 1 — the base-lattice floor
154
+ let uWeldLo = dg.s12.y; // Move 2 — the weld band lower fCell
155
+ let uWeldHi = dg.s12.z; // Move 2 — the weld band upper fCell
156
+ let uTime = dg.s12.w; // the φ-twinkle clock (s)
157
+ let uWeldSwell = dg.s13.x; // Move 2 — the neck-ridge radius swell
158
+ let uWeldSpecular = dg.s13.y; // Move 2 — the multiplicative HDR weld pop
159
+ let uFlowAmt = dg.s13.z; // Move 4b — the liquid-lattice advection
160
+ let uLatticeSquash = dg.s13.w; // Move 4b — the volume-preserving squash
161
+
162
+ let bodyR = u.s0.y + breath(u.s0.z) * u.s0.w;
163
+
164
+ // 1. Quantize fragCoord to a dot grid (cell = uDotPixelSize device px). The fragment's
165
+ // pixel coordinate is in.pos.xy (device px).
166
+ let fragCoord = in.pos.xy;
167
+ let cell = floor(fragCoord / uDotPixelSize);
168
+ let cellHalf = uDotPixelSize * 0.5;
169
+ let cellCtr = (cell + 0.5) * uDotPixelSize;
170
+
171
+ // 2. The field AT THE CELL CENTER (so every fragment in a cell agrees on ONE dot). The cell
172
+ // center maps to the field uv = (cellCtr/res - 0.5) — the SAME uv the metaball pass uses.
173
+ let cellCtrUv = cellCtr / uRes - 0.5;
174
+
175
+ // 3. The dot-cursor influence (§T7 — the Metal dotted-bg idiom): dots near the cursor swell
176
+ // + brighten; the cell uv shifts toward/away (attract/repel). The field-lean is carried
177
+ // by the metaball pass's own uPointer deformation inside sceneDistG (KEEP); this is the
178
+ // LOCAL dot influence on TOP.
179
+ let toCursor = cellCtrUv - cursor;
180
+ let cdist = length(toCursor);
181
+ let influence = (1.0 - smoothstep(0.0, uPointerRadius, cdist)) * pAct;
182
+ let cursorUv = cellCtrUv + normalize(toCursor + vec2<f32>(1e-6)) * influence * uPointerMode * 0.03;
183
+
184
+ // MOVE 4b — the LIQUID LATTICE. Probe the field once at the cursor-shifted cell to get the
185
+ // local gradient, then advect the sample DOWN that gradient toward the forming core (the
186
+ // dots migrate INTO the goo, not a screen-locked grid). The volume-preserving squash leans
187
+ // the cell on the pulse + a fast drag (X·Y ≈ 1, a liquid lean not a balloon).
188
+ let probe = sceneDistG(cursorUv);
189
+ let probeF = clamp(-probe.x / max(bodyR, 1e-4), 0.0, 1.0);
190
+ let flowDir = normalize(probe.yz + vec2<f32>(1e-6));
191
+ let sq = max(uLatticeSquash, 1e-3);
192
+ let leanUv = vec2<f32>(cursorUv.x / sq, cursorUv.y * sq); // vol-preserving X·Y ≈ 1
193
+ let sampleUv = leanUv - flowDir * uFlowAmt * probeF * 0.06;
194
+
195
+ // 4. The field value at the cell — thickness = clamp(-d/bodyR, 0, 1) (metaball.wgsl line 500,
196
+ // the one-line re-use). 0 at the silhouette → 1 deep in the core — the goo↔dot bridge.
197
+ let scene = sceneDistG(sampleUv);
198
+ let fCell = clamp(-scene.x / max(bodyR, 1e-4), 0.0, 1.0);
199
+
200
+ // MOVE 1 — the phi-banded PRESENCE FLOOR. band is the meniscus rise the old step() deleted;
201
+ // core is the body rise. present NEVER drops below uPresenceFloor -> a living lattice
202
+ // fills the card corner-to-corner. uPresenceFloor = 0 => byte-identical to the old gate.
203
+ let band = smoothstep(0.0, max(uFieldFloor, 1e-4), fCell);
204
+ let core = smoothstep(uFieldFloor, 1.0, fCell);
205
+ let present = max(uPresenceFloor, band);
206
+
207
+ // MOVE 2 — the NECK-RIDGE. The weld is gated on the rim/iso BAND (where two membranes meet),
208
+ // NOT on core (lower at the waist), AND on a shallow field gradient (a flat welding
209
+ // membrane). At a weld the dots get the field's biggest+brightest swell — the climax.
210
+ let gradMag = length(scene.yz);
211
+ let inBand = smoothstep(uWeldLo, (uWeldLo + uWeldHi) * 0.5, fCell)
212
+ * (1.0 - smoothstep((uWeldLo + uWeldHi) * 0.5, uWeldHi, fCell));
213
+ let weld = inBand * (1.0 - smoothstep(0.0, 0.25, gradMag));
214
+
215
+ // 5. The dot radius (px). The presence floor sets the base; core ramps the body; the weld
216
+ // swells the neck dots ~1+uWeldSwell (pinned sub-cell so they stay ROUND, not clipped
217
+ // squares); the cursor swell + accel bloom ride on top.
218
+ let coreR = (uDotMin + (uDotMax - uDotMin) * core);
219
+ let baseR = mix(uDotMin, coreR, present)
220
+ * (1.0 + uWeldSwell * weld)
221
+ * (1.0 + influence * 0.5 + uBloom * influence);
222
+ let dotR = clamp(baseR, 0.0, 0.98) * cellHalf; // the √φ cell-clip ceiling — round dots
223
+
224
+ var mask = 1.0;
225
+ if (uDotMode > 0.5) {
226
+ // §T2 Register-A dither: ORDERED-dither the field thickness into ON/OFF dots — denser at
227
+ // the core, sparser at the rim (the classic halftone). The dot still AA-stamps below.
228
+ mask = step(0.5, max(uPresenceFloor, fCell) + bayer8(cell) - 0.5);
229
+ }
230
+
231
+ // 6. The antialiased circle at the cell center (the fwidth-feathered Book-of-Shaders dot —
232
+ // the ONE AA canon, ~1px band at any DPR). fwidth lives in fs_main ONLY.
233
+ let pd = length(fragCoord - cellCtr);
234
+ let aa = max(fwidth(pd), 1e-4);
235
+ let dot = (1.0 - smoothstep(dotR - aa, dotR + aa, pd)) * mask;
236
+
237
+ // MOVE 3 — the GATED CARTOON SHADOW. A larger, darker disc UNDER the bright dot, offset by
238
+ // the cursor burst (the velocity tell). GATED on uShadowGate (an opaque ground to cast
239
+ // onto — no dark halos on a light/transparent host). Premultiplied UNDER the dot.
240
+ let twinkle = 0.85 + 0.15 * sin(uTime * 0.6 + hash21(cell) * 6.2831853);
241
+ let shOff = normalize(toCursor + vec2<f32>(1e-6)) * (0.6 + uBloom * 2.2) * uShadowGate;
242
+ let shPd = length(fragCoord - (cellCtr + shOff * cellHalf));
243
+ let shadowR = dotR * 1.45;
244
+ let shadow = (1.0 - smoothstep(shadowR - aa, shadowR + aa, shPd)) * mask
245
+ * uShadowGate * (present * 0.55);
246
+
247
+ // 7. The TECHNICOLOR read (Move 3). The tone maps fCell over the 3-stop warm ramp: deep core
248
+ // = hot butter-gold (stop 0), the weld band = molten coral (stop 1), the base lattice =
249
+ // deep amber (stop 2). On a light host the FLOOR dots read coral/amber (not the L0.96 core
250
+ // stop) so the resting lattice carries chroma. The weld specular is a MULTIPLICATIVE HDR
251
+ // pop that can exceed the core ceiling — the waist is the brightest band.
252
+ let bright = (uDotBrightFloor + (1.0 - uDotBrightFloor) * core + uBloom * influence * 0.6)
253
+ * (1.0 + uWeldSpecular * weld) * twinkle;
254
+ // tone: 0 deep core → 1 base lattice; the weld pulls toward the coral stop (~0.5).
255
+ let tone = clamp(mix(1.0 - core, 0.5, weld), 0.0, 1.0);
256
+ var oklch = samplePaletteOklch(tone);
257
+ oklch.x = clamp(oklch.x * clamp(bright, 0.0, 1.8), 0.0, 1.0);
258
+ let lin = oklabToLinearSrgb(oklchToOklab(gamutClampOklch(oklch)));
259
+ let rgb = clamp(linearToSrgb(lin), vec3<f32>(0.0), vec3<f32>(1.0));
260
+
261
+ let alpha = dot * present * twinkle;
262
+ if (alpha < 0.002 && shadow < 0.002) { discard; }
263
+
264
+ // The cartoon shadow (a warm-dark disc) composited UNDER, then the bright dot OVER. Both
265
+ // premultiplied. The dot wins where it stamps; the shadow shows in the offset crescent.
266
+ let shadowRgb = vec3<f32>(0.10, 0.05, 0.02);
267
+ let outRgb = rgb * alpha + shadowRgb * shadow * (1.0 - alpha);
268
+ let outA = alpha + shadow * (1.0 - alpha);
269
+ return vec4<f32>(outRgb, outA);
270
+ }`, U = "\nstruct GroundUniforms {\n // g0: (uGroundTime, uGroundAspect, _pad, _pad)\n g0: vec4<f32>,\n};\n@group(0) @binding(0) var<uniform> gu: GroundUniforms;\n\nstruct GVSOut {\n @builtin(position) pos: vec4<f32>,\n @location(0) uv: vec2<f32>,\n};\n\n@vertex\nfn vs_main(@builtin(vertex_index) vi: u32) -> GVSOut {\n var p = vec2<f32>(-1.0, -1.0);\n if (vi == 1u) { p = vec2<f32>(3.0, -1.0); }\n else if (vi == 2u) { p = vec2<f32>(-1.0, 3.0); }\n var out: GVSOut;\n out.pos = vec4<f32>(p, 0.0, 1.0);\n out.uv = p * 0.5 + 0.5;\n return out;\n}\n\n@fragment\nfn fs_main(in: GVSOut) -> @location(0) vec4<f32> {\n let t = gu.g0.x;\n let uv = in.uv;\n // Two slow warm drifts — the centroid moves so the ground is LIVING (G3c).\n let d1 = 0.5 + 0.5 * sin(t * 0.11 + uv.x * 2.1);\n let d2 = 0.5 + 0.5 * sin(t * 0.07 - uv.y * 1.7 + 1.3);\n let amber = vec3<f32>(0.99, 0.86, 0.62); // warm gold high\n let coral = vec3<f32>(0.95, 0.62, 0.42); // molten coral mid\n let deep = vec3<f32>(0.86, 0.50, 0.30); // deep amber low\n let g = mix(deep, coral, d1);\n let rgb = mix(g, amber, d2 * (1.0 - uv.y) * 0.8);\n return vec4<f32>(rgb, 1.0);\n}", W = g.indexOf("void main()"), G = W >= 0 ? g.slice(0, W) : g, K = "#version 300 es\nprecision highp float;\nin vec2 aPosition;\nout vec2 vUv;\nvoid main() {\n vUv = aPosition * 0.5 + 0.5;\n gl_Position = vec4(aPosition, 0.0, 1.0);\n}", q = `${G}
271
+
272
+ // ── Dot-grid uniforms (the s8–s13 lanes — see uniformBridgeWGPU.ts; the SoT extend) ──
273
+ // The GLSL twin sets these as N named scalars (the WGSL packs vec4 lanes); a unit asserts the
274
+ // dU.* count == the WGSL lane-field count (a dropped uniform reds parity).
275
+ uniform float uDotMode; // 0 = smooth field-driven dot, 1 = Bayer dither
276
+ uniform float uDotPixelSize; // device-px cell size
277
+ uniform float uFieldFloor; // the meniscus rise begins here
278
+ uniform float uDotBrightFloor; // dim-outside brightness floor
279
+ uniform float uDotMin; // rim dot radius (fraction of the cell)
280
+ uniform float uDotMax; // core dot radius (fraction of the cell)
281
+ uniform float uDotPointerRadius;
282
+ uniform float uDotPointerMode; // +1 repel, -1 attract
283
+ uniform float uDotPointerActive;
284
+ uniform vec2 uDotCursor; // field-uv cursor [-0.5,0.5]
285
+ uniform float uDotBloom; // accel-burst bloom (the velocity tell)
286
+ uniform float uDotShadowGate; // 1 when an opaque ground is present (cast the cartoon shadow)
287
+ uniform float uPresenceFloor; // Move 1 — the base-lattice floor
288
+ uniform float uWeldLo; // Move 2 — the weld band lower fCell
289
+ uniform float uWeldHi; // Move 2 — the weld band upper fCell
290
+ uniform float uDotTime; // the φ-twinkle clock (s)
291
+ uniform float uWeldSwell; // Move 2 — the neck-ridge radius swell
292
+ uniform float uWeldSpecular; // Move 2 — the multiplicative HDR weld pop
293
+ uniform float uFlowAmt; // Move 4b — the liquid-lattice advection
294
+ uniform float uLatticeSquash; // Move 4b — the volume-preserving squash
295
+
296
+ // The Codrops Bayer8 ordered-dither macros (the §T2 halftone).
297
+ float bayer2(vec2 a0){ vec2 a = floor(a0); return fract(a.x / 2.0 + a.y * a.y * 0.75); }
298
+ float bayer4(vec2 a){ return bayer2(0.5 * a) * 0.25 + bayer2(a); }
299
+ float bayer8(vec2 a){ return bayer4(0.5 * a) * 0.25 + bayer2(a); }
300
+
301
+ void main() {
302
+ float bodyR = uBodyRadius + breath(uPulsePhase) * uPulseAmp;
303
+
304
+ // 1. Quantize gl_FragCoord (device px) to a dot grid (cell = uDotPixelSize device px).
305
+ vec2 fragCoord = gl_FragCoord.xy;
306
+ float pix = max(uDotPixelSize, 1.0);
307
+ vec2 cell = floor(fragCoord / pix);
308
+ float cellHalf = pix * 0.5;
309
+ vec2 cellCtr = (cell + 0.5) * pix;
310
+
311
+ // 2. The field uv at the cell center (the SAME uv the metaball pass uses).
312
+ vec2 cellCtrUv = cellCtr / uResolution - 0.5;
313
+
314
+ // 3. The dot-cursor influence (the §T7 local influence on TOP of the field-lean).
315
+ vec2 toCursor = cellCtrUv - uDotCursor;
316
+ float cdist = length(toCursor);
317
+ float influence = (1.0 - smoothstep(0.0, max(uDotPointerRadius, 1e-4), cdist)) * uDotPointerActive;
318
+ vec2 cursorUv = cellCtrUv + normalize(toCursor + vec2(1e-6)) * influence * uDotPointerMode * 0.03;
319
+
320
+ // MOVE 4b — the LIQUID LATTICE. Probe the field, advect down the gradient toward the forming
321
+ // core, lean the cell volume-preservingly (X·Y ≈ 1).
322
+ vec3 probe = sceneDistG(cursorUv);
323
+ float probeF = clamp(-probe.x / max(bodyR, 1e-4), 0.0, 1.0);
324
+ vec2 flowDir = normalize(probe.yz + vec2(1e-6));
325
+ float sq = max(uLatticeSquash, 1e-3);
326
+ vec2 leanUv = vec2(cursorUv.x / sq, cursorUv.y * sq);
327
+ vec2 sampleUv = leanUv - flowDir * uFlowAmt * probeF * 0.06;
328
+
329
+ // 4. The field value at the cell — thickness = clamp(-d/bodyR, 0, 1) (the goo↔dot bridge).
330
+ vec3 scene = sceneDistG(sampleUv);
331
+ float fCell = clamp(-scene.x / max(bodyR, 1e-4), 0.0, 1.0);
332
+
333
+ // MOVE 1 — the φ-banded PRESENCE FLOOR (uPresenceFloor = 0 ⇒ byte-identical to the old gate).
334
+ float band = smoothstep(0.0, max(uFieldFloor, 1e-4), fCell);
335
+ float core = smoothstep(uFieldFloor, 1.0, fCell);
336
+ float present = max(uPresenceFloor, band);
337
+
338
+ // MOVE 2 — the NECK-RIDGE (weld gated on the rim/iso band + a shallow gradient, not on core).
339
+ float gradMag = length(scene.yz);
340
+ float inBand = smoothstep(uWeldLo, (uWeldLo + uWeldHi) * 0.5, fCell)
341
+ * (1.0 - smoothstep((uWeldLo + uWeldHi) * 0.5, uWeldHi, fCell));
342
+ float weld = inBand * (1.0 - smoothstep(0.0, 0.25, gradMag));
343
+
344
+ // 5. The field-driven dot radius (px) + the neck-ridge swell + the cursor swell + accel bloom.
345
+ float coreR = (uDotMin + (uDotMax - uDotMin) * core);
346
+ float baseR = mix(uDotMin, coreR, present)
347
+ * (1.0 + uWeldSwell * weld)
348
+ * (1.0 + influence * 0.5 + uDotBloom * influence);
349
+ float dotR = clamp(baseR, 0.0, 0.98) * cellHalf;
350
+
351
+ float mask = 1.0;
352
+ if (uDotMode > 0.5) {
353
+ mask = step(0.5, max(uPresenceFloor, fCell) + bayer8(cell) - 0.5);
354
+ }
355
+
356
+ // 6. The crisp fwidth-feathered SDF dot (the ONE AA canon, ~1px band at any DPR).
357
+ float pd = length(fragCoord - cellCtr);
358
+ float aa = max(fwidth(pd), 1e-4);
359
+ float dot = (1.0 - smoothstep(dotR - aa, dotR + aa, pd)) * mask;
360
+
361
+ // MOVE 3 — the GATED CARTOON SHADOW (offset by the cursor burst — the velocity tell — gated
362
+ // on uDotShadowGate so no dark halos paint on a light/transparent host).
363
+ float twinkle = 0.85 + 0.15 * sin(uDotTime * 0.6 + hash21(cell) * 6.2831853);
364
+ vec2 shOff = normalize(toCursor + vec2(1e-6)) * (0.6 + uDotBloom * 2.2) * uDotShadowGate;
365
+ float shPd = length(fragCoord - (cellCtr + shOff * cellHalf));
366
+ float shadowR = dotR * 1.45;
367
+ float shadow = (1.0 - smoothstep(shadowR - aa, shadowR + aa, shPd)) * mask
368
+ * uDotShadowGate * (present * 0.55);
369
+
370
+ // 7. The TECHNICOLOR read (Move 3) — core gold, weld coral (the multiplicative HDR specular
371
+ // pop), base lattice amber; the floor dots carry chroma.
372
+ float bright = (uDotBrightFloor + (1.0 - uDotBrightFloor) * core + uDotBloom * influence * 0.6)
373
+ * (1.0 + uWeldSpecular * weld) * twinkle;
374
+ float tone = clamp(mix(1.0 - core, 0.5, weld), 0.0, 1.0);
375
+ vec3 oklch = samplePaletteOklch(tone);
376
+ oklch.x = clamp(oklch.x * clamp(bright, 0.0, 1.8), 0.0, 1.0);
377
+ vec3 lin = oklabToLinearSrgb(oklchToOklab(gamutClampOklch(oklch)));
378
+ vec3 rgb = clamp(linearToSrgb(lin), vec3(0.0), vec3(1.0));
379
+
380
+ float alpha = dot * present * twinkle;
381
+ if (alpha < 0.002 && shadow < 0.002) discard;
382
+
383
+ vec3 shadowRgb = vec3(0.10, 0.05, 0.02);
384
+ vec3 outRgb = rgb * alpha + shadowRgb * shadow * (1.0 - alpha);
385
+ float outA = alpha + shadow * (1.0 - alpha);
386
+ fragColor = vec4(outRgb, outA);
387
+ }`, J = "#version 300 es\nprecision highp float;\nin vec2 aPosition;\nout vec2 vUv;\nvoid main() {\n vUv = aPosition * 0.5 + 0.5;\n gl_Position = vec4(aPosition, 0.0, 1.0);\n}", te = "#version 300 es\nprecision highp float;\nin vec2 vUv;\nout vec4 fragColor;\nuniform float uGroundTime;\nvoid main() {\n float d1 = 0.5 + 0.5 * sin(uGroundTime * 0.11 + vUv.x * 2.1);\n float d2 = 0.5 + 0.5 * sin(uGroundTime * 0.07 - vUv.y * 1.7 + 1.3);\n vec3 amber = vec3(0.99, 0.86, 0.62);\n vec3 coral = vec3(0.95, 0.62, 0.42);\n vec3 deep = vec3(0.86, 0.50, 0.30);\n vec3 g = mix(deep, coral, d1);\n vec3 rgb = mix(g, amber, d2 * (1.0 - vUv.y) * 0.8);\n fragColor = vec4(rgb, 1.0);\n}", Y = 64, X = 8, ne = 1, Z = 2, Q = "[GooDotMatrix]";
388
+ function re(e, t) {
389
+ let n = e.createShaderModule({
390
+ label: `${Q} goo-dot.wgsl`,
391
+ code: H
392
+ }), r = e.createBuffer({
393
+ label: `${Q} field-uniforms`,
394
+ size: y,
395
+ usage: Y | X
396
+ }), i = e.createBuffer({
397
+ label: `${Q} dot-uniforms`,
398
+ size: 96,
399
+ usage: Y | X
400
+ }), a = e.createBindGroupLayout({
401
+ label: `${Q} bgl`,
402
+ entries: [{
403
+ binding: 0,
404
+ visibility: ne | Z,
405
+ buffer: { type: "uniform" }
406
+ }, {
407
+ binding: 1,
408
+ visibility: Z,
409
+ buffer: { type: "uniform" }
410
+ }]
411
+ }), o = e.createRenderPipeline({
412
+ label: `${Q} pipeline`,
413
+ layout: e.createPipelineLayout({ bindGroupLayouts: [a] }),
414
+ vertex: {
415
+ module: n,
416
+ entryPoint: "vs_main"
417
+ },
418
+ fragment: {
419
+ module: n,
420
+ entryPoint: "fs_main",
421
+ targets: [{
422
+ format: t,
423
+ blend: {
424
+ color: {
425
+ srcFactor: "one",
426
+ dstFactor: "one-minus-src-alpha",
427
+ operation: "add"
428
+ },
429
+ alpha: {
430
+ srcFactor: "one",
431
+ dstFactor: "one-minus-src-alpha",
432
+ operation: "add"
433
+ }
434
+ }
435
+ }]
436
+ },
437
+ primitive: { topology: "triangle-list" }
438
+ }), s = e.createBindGroup({
439
+ label: `${Q} bg`,
440
+ layout: a,
441
+ entries: [{
442
+ binding: 0,
443
+ resource: { buffer: r }
444
+ }, {
445
+ binding: 1,
446
+ resource: { buffer: i }
447
+ }]
448
+ }), c = e.createShaderModule({
449
+ label: `${Q} goo-dot-ground.wgsl`,
450
+ code: U
451
+ }), l = e.createBuffer({
452
+ label: `${Q} ground-uniforms`,
453
+ size: 16,
454
+ usage: Y | X
455
+ }), u = e.createBindGroupLayout({
456
+ label: `${Q} ground-bgl`,
457
+ entries: [{
458
+ binding: 0,
459
+ visibility: Z,
460
+ buffer: { type: "uniform" }
461
+ }]
462
+ });
463
+ return {
464
+ pipeline: o,
465
+ bindGroup: s,
466
+ groundPipeline: e.createRenderPipeline({
467
+ label: `${Q} ground-pipeline`,
468
+ layout: e.createPipelineLayout({ bindGroupLayouts: [u] }),
469
+ vertex: {
470
+ module: c,
471
+ entryPoint: "vs_main"
472
+ },
473
+ fragment: {
474
+ module: c,
475
+ entryPoint: "fs_main",
476
+ targets: [{ format: t }]
477
+ },
478
+ primitive: { topology: "triangle-list" }
479
+ }),
480
+ groundBindGroup: e.createBindGroup({
481
+ label: `${Q} ground-bg`,
482
+ layout: u,
483
+ entries: [{
484
+ binding: 0,
485
+ resource: { buffer: l }
486
+ }]
487
+ }),
488
+ groundBuffer: l,
489
+ groundScratch: new Float32Array(16 / 4),
490
+ fieldBuffer: r,
491
+ dotBuffer: i,
492
+ fieldScratch: h(),
493
+ dotScratch: z()
494
+ };
495
+ }
496
+ function ie(e) {
497
+ let t = a(e, e.VERTEX_SHADER, K, Q), n = a(e, e.FRAGMENT_SHADER, q, Q), r = i(e, t, n, Q);
498
+ e.useProgram(r);
499
+ let o = e.createVertexArray();
500
+ e.bindVertexArray(o);
501
+ let s = e.createBuffer();
502
+ e.bindBuffer(e.ARRAY_BUFFER, s), e.bufferData(e.ARRAY_BUFFER, new Float32Array([
503
+ -1,
504
+ -1,
505
+ 1,
506
+ -1,
507
+ -1,
508
+ 1,
509
+ -1,
510
+ 1,
511
+ 1,
512
+ -1,
513
+ 1,
514
+ 1
515
+ ]), e.STATIC_DRAW);
516
+ let c = e.getAttribLocation(r, "aPosition");
517
+ e.enableVertexAttribArray(c), e.vertexAttribPointer(c, 2, e.FLOAT, !1, 0, 0);
518
+ let l = {};
519
+ for (let t of b) l[t] = e.getUniformLocation(r, t);
520
+ let u = [], d = [], f = [];
521
+ for (let t = 0; t < 4; t++) u.push(e.getUniformLocation(r, `uSatPos[${t}]`)), d.push(e.getUniformLocation(r, `uSatRadius[${t}]`)), f.push(e.getUniformLocation(r, `uSatOpacity[${t}]`));
522
+ let p = [], m = [];
523
+ for (let t = 0; t < 15; t++) p.push(e.getUniformLocation(r, `uTrailPos[${t}]`)), m.push(e.getUniformLocation(r, `uTrailRadius[${t}]`));
524
+ let h = [];
525
+ for (let t = 0; t < 4; t++) h.push(e.getUniformLocation(r, `uPalette[${t}]`));
526
+ let g = {
527
+ U: l,
528
+ satPosLocs: u,
529
+ satRadLocs: d,
530
+ satOpLocs: f,
531
+ trailPosLocs: p,
532
+ trailRadLocs: m,
533
+ paletteLocs: h
534
+ }, _ = {
535
+ mode: e.getUniformLocation(r, "uDotMode"),
536
+ pix: e.getUniformLocation(r, "uDotPixelSize"),
537
+ floor: e.getUniformLocation(r, "uFieldFloor"),
538
+ bright: e.getUniformLocation(r, "uDotBrightFloor"),
539
+ min: e.getUniformLocation(r, "uDotMin"),
540
+ max: e.getUniformLocation(r, "uDotMax"),
541
+ pr: e.getUniformLocation(r, "uDotPointerRadius"),
542
+ pm: e.getUniformLocation(r, "uDotPointerMode"),
543
+ pa: e.getUniformLocation(r, "uDotPointerActive"),
544
+ cursor: e.getUniformLocation(r, "uDotCursor"),
545
+ bloom: e.getUniformLocation(r, "uDotBloom"),
546
+ shadowGate: e.getUniformLocation(r, "uDotShadowGate"),
547
+ presenceFloor: e.getUniformLocation(r, "uPresenceFloor"),
548
+ weldLo: e.getUniformLocation(r, "uWeldLo"),
549
+ weldHi: e.getUniformLocation(r, "uWeldHi"),
550
+ time: e.getUniformLocation(r, "uDotTime"),
551
+ weldSwell: e.getUniformLocation(r, "uWeldSwell"),
552
+ weldSpecular: e.getUniformLocation(r, "uWeldSpecular"),
553
+ flowAmt: e.getUniformLocation(r, "uFlowAmt"),
554
+ latticeSquash: e.getUniformLocation(r, "uLatticeSquash")
555
+ }, v = a(e, e.VERTEX_SHADER, J, Q), y = a(e, e.FRAGMENT_SHADER, te, Q), x = i(e, v, y, Q), S = e.createVertexArray();
556
+ e.bindVertexArray(S);
557
+ let C = e.createBuffer();
558
+ e.bindBuffer(e.ARRAY_BUFFER, C), e.bufferData(e.ARRAY_BUFFER, new Float32Array([
559
+ -1,
560
+ -1,
561
+ 1,
562
+ -1,
563
+ -1,
564
+ 1,
565
+ -1,
566
+ 1,
567
+ 1,
568
+ -1,
569
+ 1,
570
+ 1
571
+ ]), e.STATIC_DRAW);
572
+ let w = e.getAttribLocation(x, "aPosition");
573
+ e.enableVertexAttribArray(w), e.vertexAttribPointer(w, 2, e.FLOAT, !1, 0, 0);
574
+ let T = {
575
+ prog: x,
576
+ vs: v,
577
+ fs: y,
578
+ vao: S,
579
+ buf: C,
580
+ uTime: e.getUniformLocation(x, "uGroundTime")
581
+ };
582
+ return e.bindVertexArray(null), e.enable(e.BLEND), e.blendFunc(e.ONE, e.ONE_MINUS_SRC_ALPHA), {
583
+ prog: r,
584
+ vs: t,
585
+ fs: n,
586
+ buf: s,
587
+ vao: o,
588
+ locs: g,
589
+ dU: _,
590
+ ground: T
591
+ };
592
+ }
593
+ //#endregion
594
+ //#region src/components/custom/goo-dot-matrix/composables/useGooDotMatrix.ts
595
+ function ae(e) {
596
+ return .5 + .5 * Math.sin(e / 1e3 * .5);
597
+ }
598
+ var oe = 4200;
599
+ function $(e, i) {
600
+ let { config: a } = i, l = i.mode ?? "live", f = () => a.field, p = a.field, h = D(null), g = m(), y = d(h), b = v(p, "goo-dot"), x = t({ respectReducedMotion: a.respectReducedMotion }), S = R(), C = /* @__PURE__ */ new Map();
601
+ function w(e) {
602
+ let t = C.get(e);
603
+ if (t) return t;
604
+ let n = o(s(e));
605
+ return C.size > 256 && C.clear(), C.set(e, n), n;
606
+ }
607
+ let T = a.palette.map((e) => `oklch(${e.L} ${e.C} ${e.h})`), E = T[T.length - 1] ?? "oklch(0.92 0.03 78)", O = null, k = !1, A = 0, j = 0, M = !1;
608
+ function F(e) {
609
+ let t = A ? (e - A) * 1e3 : 16;
610
+ A = e;
611
+ let n = Math.max(0, Math.min(t, 50)), r = O?.reducedMotion ?? !1, i = r || k ? 0 : f().tempo, o = i * n;
612
+ if (j += o, r && !M && (j = oe, M = !0), r || (M = !1), i > 0 && y.active.value) {
613
+ let e = y.pointer.value;
614
+ x.setPointer(e.x * .5 + .5, e.y * .5 + .5);
615
+ }
616
+ if (x.tick(i === 0 ? 0 : n), r || g.update({
617
+ pointerActive: y.active.value,
618
+ clicked: y.consumeClick(),
619
+ idleMs: y.idleMs()
620
+ }), g.tick(o), r ? y.rest() : y.tick(o), b.tick(j, g.params.value), a.interactive && y.active.value && i > 0) {
621
+ let e = y.pointer.value;
622
+ S.x = e.x * .5, S.y = e.y * .5, S.active += (1 - S.active) * .2, a.pointerMode, S.bloom = Math.max(S.bloom * .9, x.burst.value);
623
+ } else S.active += (0 - S.active) * .12, S.bloom *= .9;
624
+ return S.timeSec = r ? 0 : j / 1e3, S.latticeSquash = 1 + (r ? 0 : ae(j)) * .08 + S.bloom * .18, {
625
+ params: g.params.value,
626
+ rgb: w(E),
627
+ simTimeMs: j,
628
+ timeSec: e,
629
+ resolveColor: w,
630
+ rimColor: f().surface.rimColor,
631
+ paletteStops: T
632
+ };
633
+ }
634
+ function I() {
635
+ return k ? !1 : !g.isSettled() || !y.isAtRest() || !b.isQuiescent() || S.active > .001 || S.bloom > .001;
636
+ }
637
+ function z(e) {
638
+ return function(t, r, i) {
639
+ let o = re(t, i);
640
+ function s() {
641
+ let t = n(), r = e.clientWidth || f().geometry.canvasSize, i = e.clientHeight || f().geometry.canvasSize, a = Math.max(1, Math.round(r * t)), o = Math.max(1, Math.round(i * t));
642
+ (e.width !== a || e.height !== o) && (e.width = a, e.height = o);
643
+ }
644
+ function c(i) {
645
+ let s = F(i);
646
+ _(o.fieldScratch, e, f(), y, b, s), t.queue.writeBuffer(o.fieldBuffer, 0, o.fieldScratch.buffer), B(o.dotScratch, a, {
647
+ w: e.width || 1,
648
+ h: e.height || 1
649
+ }, n(), S), t.queue.writeBuffer(o.dotBuffer, 0, o.dotScratch.buffer);
650
+ let c = a.fieldGround === "warm", l = r.getCurrentTexture().createView(), u = t.createCommandEncoder({ label: `${Q} frame` });
651
+ if (c) {
652
+ o.groundScratch[0] = s.simTimeMs / 1e3, o.groundScratch[1] = (e.width || 1) / (e.height || 1), t.queue.writeBuffer(o.groundBuffer, 0, o.groundScratch.buffer);
653
+ let n = u.beginRenderPass({ colorAttachments: [{
654
+ view: l,
655
+ clearValue: {
656
+ r: 0,
657
+ g: 0,
658
+ b: 0,
659
+ a: 0
660
+ },
661
+ loadOp: "clear",
662
+ storeOp: "store"
663
+ }] });
664
+ n.setPipeline(o.groundPipeline), n.setBindGroup(0, o.groundBindGroup), n.draw(3, 1, 0, 0), n.end();
665
+ }
666
+ let d = u.beginRenderPass({ colorAttachments: [{
667
+ view: l,
668
+ clearValue: {
669
+ r: 0,
670
+ g: 0,
671
+ b: 0,
672
+ a: 0
673
+ },
674
+ loadOp: c ? "load" : "clear",
675
+ storeOp: "store"
676
+ }] });
677
+ d.setPipeline(o.pipeline), d.setBindGroup(0, o.bindGroup), d.draw(3, 1, 0, 0), d.end(), t.queue.submit([u.finish()]);
678
+ }
679
+ return {
680
+ frame: c,
681
+ shouldContinue: I,
682
+ resize: s,
683
+ teardown: () => {
684
+ o.fieldBuffer.destroy(), o.dotBuffer.destroy(), o.groundBuffer.destroy();
685
+ }
686
+ };
687
+ };
688
+ }
689
+ function V(e) {
690
+ return function(t) {
691
+ let r = ie(t), { prog: i, vao: o, locs: s, dU: c } = r;
692
+ function l() {
693
+ let r = n(), i = e.clientWidth || f().geometry.canvasSize, a = e.clientHeight || f().geometry.canvasSize, o = Math.max(1, Math.round(i * r)), s = Math.max(1, Math.round(a * r));
694
+ (e.width !== o || e.height !== s) && (e.width = o, e.height = s), t.viewport(0, 0, e.width, e.height);
695
+ }
696
+ function d(l) {
697
+ let d = F(l), p = a.fieldGround === "warm";
698
+ p && (t.disable(t.BLEND), t.clearColor(0, 0, 0, 0), t.clear(t.COLOR_BUFFER_BIT), t.useProgram(r.ground.prog), t.bindVertexArray(r.ground.vao), t.uniform1f(r.ground.uTime, d.simTimeMs / 1e3), t.drawArrays(t.TRIANGLES, 0, 6), t.bindVertexArray(null), t.enable(t.BLEND), t.blendFunc(t.ONE, t.ONE_MINUS_SRC_ALPHA)), t.useProgram(i);
699
+ let m = n();
700
+ t.uniform1f(c.mode, +(a.variant === "dot-dither")), t.uniform1f(c.pix, Math.max(a.dotPixelSize * m, 4)), t.uniform1f(c.floor, a.fieldFloor), t.uniform1f(c.bright, a.dotBrightFloor), t.uniform1f(c.min, a.dotMin), t.uniform1f(c.max, a.dotMax), t.uniform1f(c.pr, a.pointerRadius), t.uniform1f(c.pm, L(a.pointerMode)), t.uniform1f(c.pa, a.interactive ? S.active : 0), t.uniform2f(c.cursor, S.x, S.y), t.uniform1f(c.bloom, S.bloom), t.uniform1f(c.shadowGate, +!!p), t.uniform1f(c.presenceFloor, a.presenceFloor), t.uniform1f(c.weldLo, N), t.uniform1f(c.weldHi, P), t.uniform1f(c.time, S.timeSec), t.uniform1f(c.weldSwell, a.weldSwell), t.uniform1f(c.weldSpecular, a.weldSpecular), t.uniform1f(c.flowAmt, a.flowAmt), t.uniform1f(c.latticeSquash, S.latticeSquash), u(t, i, o, s, e, f(), y, b, d);
701
+ }
702
+ return {
703
+ frame: d,
704
+ shouldContinue: I,
705
+ resize: l,
706
+ teardown: () => {
707
+ t.deleteProgram(r.prog), t.deleteShader(r.vs), t.deleteShader(r.fs), t.deleteBuffer(r.buf), t.deleteVertexArray(r.vao), t.deleteProgram(r.ground.prog), t.deleteShader(r.ground.vs), t.deleteShader(r.ground.fs), t.deleteBuffer(r.ground.buf), t.deleteVertexArray(r.ground.vao);
708
+ }
709
+ };
710
+ };
711
+ }
712
+ c(e, {
713
+ pause: () => O?.suspend("off-screen-io"),
714
+ resume: () => O?.resume("off-screen-io")
715
+ }, {
716
+ rootMargin: "200px",
717
+ pauseWhenHidden: !1
718
+ });
719
+ let H = () => {
720
+ let t = e.value;
721
+ return t ? (O || (h.value = t.parentElement ?? t, O = r(t, {
722
+ mode: l,
723
+ contextAttrs: {
724
+ alpha: !0,
725
+ premultipliedAlpha: !0,
726
+ antialias: !1,
727
+ preserveDrawingBuffer: !1
728
+ },
729
+ respectReducedMotion: a.respectReducedMotion,
730
+ setupWGPU: z(t),
731
+ setupGL: V(t)
732
+ }), O.armAsync()), O) : null;
733
+ };
734
+ queueMicrotask(() => H());
735
+ let U = {
736
+ get backend() {
737
+ return H()?.backend ?? "webgpu";
738
+ },
739
+ pause: () => {
740
+ k = !0, H()?.suspend("manual");
741
+ },
742
+ resume: () => {
743
+ k = !1, H()?.resume("manual");
744
+ },
745
+ wake: () => H()?.wake(),
746
+ renderAt: (e) => H()?.renderAt(e),
747
+ get reducedMotion() {
748
+ return O?.reducedMotion ?? !1;
749
+ },
750
+ dispose: () => {
751
+ x.dispose(), O?.dispose(), O = null;
752
+ }
753
+ };
754
+ return ee(() => U.dispose()), U;
755
+ }
756
+ //#endregion
757
+ //#region src/components/custom/goo-dot-matrix/GooDotMatrix.vue
758
+ var se = /* @__PURE__ */ e(/* @__PURE__ */ w({
759
+ __name: "GooDotMatrix",
760
+ props: {
761
+ config: { default: () => M },
762
+ paused: {
763
+ type: Boolean,
764
+ default: !1
765
+ }
766
+ },
767
+ emits: ["update:paused"],
768
+ setup(e, { expose: t }) {
769
+ let n = O("canvasRef"), r = $(n, { config: new Proxy({}, {
770
+ get: (t, n) => Reflect.get(e.config, n),
771
+ has: (t, n) => Reflect.has(e.config, n),
772
+ ownKeys: () => Reflect.ownKeys(e.config),
773
+ getOwnPropertyDescriptor: (t, n) => Reflect.getOwnPropertyDescriptor(e.config, n)
774
+ }) });
775
+ k(() => e.config, () => r.wake(), { deep: !0 }), k(() => e.paused, (e) => e ? r.pause() : r.resume(), { immediate: !0 });
776
+ let i = x(() => {
777
+ let t = e.config.background;
778
+ if (t !== "transparent") return `oklch(${t.L} ${t.C} ${t.h})`;
779
+ });
780
+ return t({
781
+ pause: r.pause,
782
+ resume: r.resume,
783
+ wake: r.wake,
784
+ renderAt: r.renderAt
785
+ }), (e, t) => (E(), S("div", {
786
+ class: "goo-dot-matrix-wrapper",
787
+ style: T(i.value ? { background: i.value } : void 0)
788
+ }, [C("canvas", {
789
+ ref_key: "canvasRef",
790
+ ref: n,
791
+ class: "goo-dot-matrix-canvas",
792
+ "aria-hidden": "true",
793
+ "data-testid": "goo-dot-matrix-canvas"
794
+ }, null, 512)], 4));
795
+ }
796
+ }), [["__scopeId", "data-v-8b833d12"]]);
797
+ //#endregion
798
+ //#region src/components/custom/goo-dot-matrix/composables/gooDotLattice.ts
799
+ function ce(e, t, n) {
800
+ let r = Math.max(t, 1), i = e % r, a = Math.floor(e / r), o = (r - 1) / 2;
801
+ return {
802
+ x: (i - o) * n,
803
+ y: (a - o) * n
804
+ };
805
+ }
806
+ function le(e) {
807
+ let t = Math.max(e, 1);
808
+ return t * t;
809
+ }
810
+ //#endregion
811
+ export { M as DEFAULT_GOO_DOT_CONFIG, se as GooDotMatrix, A as MIN_DOT_PIXEL_SIZE, j as WARM_IDENTITY_PALETTE, l as fibonacciDot, ce as gridOrigin, le as latticeInstanceCount, $ as useGooDotMatrix };