@mkbabb/glass-ui 4.0.1 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (459) hide show
  1. package/dist/{CardAction-CW7a0m8M.js → CardAction-8whJrLWt.js} +23 -8
  2. package/dist/{CommandShortcut-DvZNQ_HF.js → CommandShortcut-D3yxgHNn.js} +23 -12
  3. package/dist/{ConfiguratorRow-BR4l-ixA.js → ConfiguratorRow-CaP7U3ZA.js} +11 -11
  4. package/dist/ContextMenuContent-B3ZsheLV.js +90 -0
  5. package/dist/{ContextMenuSubContent-xol4sD2q.js → ContextMenuSubContent-DDRID3qC.js} +15 -15
  6. package/dist/{DataTable-CuKwF7wr.js → DataTable-Bc9kUtu_.js} +2 -2
  7. package/dist/{DialogContent-DcKK8k9i.js → DialogContent-6JtTB5x2.js} +8 -5
  8. package/dist/DialogFooter-9phqcRIS.js +80 -0
  9. package/dist/DialogScrollContent-TTuovQst.js +93 -0
  10. package/dist/HoverCardContent-Bel1gdLZ.js +88 -0
  11. package/dist/{IconChip-BTD-nay5.js → IconChip-DhbdGdFQ.js} +1 -1
  12. package/dist/{IconTooltip-Bl8gFZ8d.js → IconTooltip-B0zimd2H.js} +1 -1
  13. package/dist/Input-Cg9DF62r.js +57 -0
  14. package/dist/{Notification-VUwexFUf.js → Notification-CphK7AAm.js} +3 -3
  15. package/dist/NumberFieldContent-D8cXeyO4.js +140 -0
  16. package/dist/PagerDots-Cjx96la-.js +98 -0
  17. package/dist/{SelectScrollDownButton-CrA8F0iV.js → SelectScrollDownButton-DAKCBEdW.js} +62 -57
  18. package/dist/{SelectSeparator-DXswVdRz.js → SelectSeparator-C2UGOkXF.js} +1 -1
  19. package/dist/Separator-DQcwC2TR.js +44 -0
  20. package/dist/Switch-B8RscmRu.js +49 -0
  21. package/dist/{Toaster-Bw4xR8xV.js → Toaster-D9qIHjBI.js} +1 -1
  22. package/dist/{ToggleGroupItem-pEM9vIhs.js → ToggleGroupItem-BLtr3TJq.js} +2 -2
  23. package/dist/TooltipProvider-BJ_Y5EGX.js +109 -0
  24. package/dist/animated-digit.js +1 -1
  25. package/dist/api/index.d.ts +15 -32
  26. package/dist/api/types-extra.d.ts +31 -0
  27. package/dist/api.js +1 -1
  28. package/dist/aurora.js +579 -251
  29. package/dist/border-progress.js +49 -57
  30. package/dist/{button-DYCUa-tH.js → button-5dY1Dvhd.js} +13 -14
  31. package/dist/button.js +1 -1
  32. package/dist/canvas.js +2 -3
  33. package/dist/card.js +1 -1
  34. package/dist/carousel.js +20 -20
  35. package/dist/color-Cs0-oxYL.js +116 -0
  36. package/dist/color.js +2 -2
  37. package/dist/command.js +1 -1
  38. package/dist/completion-seal.d.ts +1 -0
  39. package/dist/completion-seal.js +89 -0
  40. package/dist/components/custom/aurora/Aurora.vue.d.ts +10 -5
  41. package/dist/components/custom/aurora/composables/color.d.ts +13 -0
  42. package/dist/components/custom/aurora/composables/frameLoop.d.ts +9 -0
  43. package/dist/components/custom/aurora/composables/runtime.d.ts +12 -0
  44. package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +11 -2
  45. package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +8 -0
  46. package/dist/components/custom/aurora/constants/presets.d.ts +18 -0
  47. package/dist/components/custom/aurora/constants/renderMode.d.ts +16 -8
  48. package/dist/components/custom/aurora/constants/shaders/aurora-mediums.wgsl.d.ts +1 -0
  49. package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -1
  50. package/dist/components/custom/border-progress/composables/spectrum-walk.d.ts +25 -0
  51. package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +14 -18
  52. package/dist/components/custom/border-progress/index.d.ts +1 -1
  53. package/dist/components/custom/completion-seal/CompletionSeal.vue.d.ts +21 -0
  54. package/dist/components/custom/completion-seal/composables/useCompletionSeal.d.ts +37 -0
  55. package/dist/components/custom/completion-seal/constants.d.ts +46 -0
  56. package/dist/components/custom/completion-seal/index.d.ts +4 -0
  57. package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +7 -0
  58. package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +9 -0
  59. package/dist/components/custom/concentric/composables/ringField.d.ts +57 -16
  60. package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +2 -1
  61. package/dist/components/custom/concentric/composables/useConcentric.d.ts +4 -4
  62. package/dist/components/custom/concentric/constants.d.ts +30 -6
  63. package/dist/components/custom/concentric/index.d.ts +2 -2
  64. package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +2 -2
  65. package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -1
  66. package/dist/components/custom/confirm-dialog/ConfirmDialog.vue.d.ts +3 -3
  67. package/dist/components/custom/constellation/Constellation.vue.d.ts +5 -4
  68. package/dist/components/custom/constellation/composables/constellationGLSetup.d.ts +10 -0
  69. package/dist/components/custom/constellation/composables/constellationWGPUSetup.d.ts +19 -0
  70. package/dist/components/custom/constellation/composables/uniformBridgeWGPU.d.ts +66 -0
  71. package/dist/components/custom/constellation/composables/useConstellation.d.ts +3 -10
  72. package/dist/components/custom/constellation/constants.d.ts +33 -0
  73. package/dist/components/custom/constellation/constellationField.d.ts +31 -1
  74. package/dist/components/custom/constellation/constellationInteraction.d.ts +23 -14
  75. package/dist/components/custom/constellation/constellationRender.d.ts +25 -0
  76. package/dist/components/custom/constellation/constellationTypes.d.ts +38 -0
  77. package/dist/components/custom/constellation/constellationWell.d.ts +15 -0
  78. package/dist/components/custom/constellation/index.d.ts +5 -5
  79. package/dist/components/custom/constellation/shaders/constellation-lines.glsl.d.ts +2 -0
  80. package/dist/components/custom/constellation/shaders/constellation-lines.wgsl.d.ts +1 -0
  81. package/dist/components/custom/constellation/shaders/constellation-points.glsl.d.ts +2 -0
  82. package/dist/components/custom/constellation/shaders/constellation-points.wgsl.d.ts +1 -0
  83. package/dist/components/custom/deck/DeckPager.vue.d.ts +29 -0
  84. package/dist/components/custom/deck/composables/useDeck.d.ts +27 -0
  85. package/dist/components/custom/deck/composables/useDeckKeyboard.d.ts +25 -0
  86. package/dist/components/custom/deck/composables/useDeckSpring.d.ts +22 -0
  87. package/dist/components/custom/deck/constants.d.ts +14 -0
  88. package/dist/components/custom/deck/index.d.ts +8 -0
  89. package/dist/components/custom/dock/DockIconButton.vue.d.ts +12 -0
  90. package/dist/components/custom/dock/DockStack.vue.d.ts +65 -0
  91. package/dist/components/custom/dock/GlassDock.vue.d.ts +4 -2
  92. package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +80 -0
  93. package/dist/components/custom/dock/composables/index.d.ts +2 -0
  94. package/dist/components/custom/dock/composables/useDockSearch.d.ts +85 -0
  95. package/dist/components/custom/dock/composables/useDockShellProps.d.ts +11 -0
  96. package/dist/components/custom/dock/constants.d.ts +18 -14
  97. package/dist/components/custom/dock/index.d.ts +5 -2
  98. package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +15 -11
  99. package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +48 -6
  100. package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +23 -8
  101. package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +6 -5
  102. package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +18 -5
  103. package/dist/components/custom/dot-flow-field/constants.d.ts +42 -21
  104. package/dist/components/custom/dot-flow-field/index.d.ts +2 -2
  105. package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -1
  106. package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +4 -20
  107. package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +1 -1
  108. package/dist/components/custom/dot-matrix/DotMatrix.vue.d.ts +43 -0
  109. package/dist/components/custom/dot-matrix/composables/dotMatrixField.d.ts +89 -0
  110. package/dist/components/custom/dot-matrix/composables/uniformBridgeWGPU.d.ts +52 -0
  111. package/dist/components/custom/dot-matrix/composables/useDotMatrix.d.ts +34 -0
  112. package/dist/components/custom/dot-matrix/composables/useDotSphere.d.ts +27 -0
  113. package/dist/components/custom/dot-matrix/constants.d.ts +58 -0
  114. package/dist/components/custom/dot-matrix/index.d.ts +5 -0
  115. package/dist/components/custom/dot-matrix/shaders/dot-matrix.glsl.d.ts +4 -0
  116. package/dist/components/custom/dot-matrix/shaders/dot-matrix.wgsl.d.ts +1 -0
  117. package/dist/components/custom/easing/EasingPicker.vue.d.ts +2 -2
  118. package/dist/components/custom/easing/composables/useEasingPicker.d.ts +5 -0
  119. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +11 -0
  120. package/dist/components/custom/fourier-field/FourierField.vue.d.ts +40 -47
  121. package/dist/components/custom/fourier-field/composables/fourierFieldGLSetup.d.ts +15 -0
  122. package/dist/components/custom/fourier-field/composables/fourierFieldWGPUSetup.d.ts +20 -0
  123. package/dist/components/custom/fourier-field/composables/uniformBridgeWGPU.d.ts +41 -0
  124. package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +40 -37
  125. package/dist/components/custom/fourier-field/constants.d.ts +61 -4
  126. package/dist/components/custom/fourier-field/index.d.ts +23 -18
  127. package/dist/components/custom/fourier-field/shaders/fourier-field.compute.wgsl.d.ts +1 -0
  128. package/dist/components/custom/fourier-field/shaders/fourier-field.glsl.d.ts +4 -0
  129. package/dist/components/custom/fourier-field/shaders/fourier-field.render.wgsl.d.ts +1 -0
  130. package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +9 -1
  131. package/dist/components/custom/goo-blob/constants.d.ts +1 -1
  132. package/dist/components/custom/goo-blob/index.d.ts +1 -1
  133. package/dist/components/custom/goo-blob/shaders/metaball-noise.wgsl.d.ts +1 -0
  134. package/dist/components/custom/goo-blob/shaders/metaball-palette.wgsl.d.ts +1 -0
  135. package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -1
  136. package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -1
  137. package/dist/components/custom/goo-blob/types.d.ts +36 -0
  138. package/dist/components/custom/goo-dot-matrix/GooDotMatrix.vue.d.ts +49 -0
  139. package/dist/components/custom/goo-dot-matrix/composables/gooDotLattice.d.ts +24 -0
  140. package/dist/components/custom/goo-dot-matrix/composables/gooDotSetup.d.ts +50 -0
  141. package/dist/components/custom/goo-dot-matrix/composables/uniformBridgeWGPU.d.ts +35 -0
  142. package/dist/components/custom/goo-dot-matrix/composables/useGooDotMatrix.d.ts +31 -0
  143. package/dist/components/custom/goo-dot-matrix/constants.d.ts +76 -0
  144. package/dist/components/custom/goo-dot-matrix/index.d.ts +5 -0
  145. package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.frag.d.ts +11 -0
  146. package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.wgsl.d.ts +3 -0
  147. package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +21 -2
  148. package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +15 -0
  149. package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +9 -0
  150. package/dist/components/custom/pager-dots/index.d.ts +2 -0
  151. package/dist/components/custom/pager-dots/pagerWindow.d.ts +9 -0
  152. package/dist/components/custom/paper-grid/PaperGrid.vue.d.ts +42 -0
  153. package/dist/components/custom/paper-grid/composables/paperGrid.d.ts +90 -0
  154. package/dist/components/custom/paper-grid/composables/paperGridGLSetup.d.ts +16 -0
  155. package/dist/components/custom/paper-grid/composables/paperGridWGPUSetup.d.ts +19 -0
  156. package/dist/components/custom/paper-grid/composables/uniformBridgeWGPU.d.ts +16 -0
  157. package/dist/components/custom/paper-grid/composables/usePaperGrid.d.ts +31 -0
  158. package/dist/components/custom/paper-grid/constants.d.ts +57 -0
  159. package/dist/components/custom/paper-grid/index.d.ts +5 -0
  160. package/dist/components/custom/paper-grid/shaders/paper-grid.glsl.d.ts +4 -0
  161. package/dist/components/custom/paper-grid/shaders/paper-grid.wgsl.d.ts +1 -0
  162. package/dist/components/custom/search/FuzzySearch.vue.d.ts +8 -2
  163. package/dist/components/custom/search/SearchBar.vue.d.ts +8 -0
  164. package/dist/components/custom/search/index.d.ts +2 -0
  165. package/dist/components/custom/search/searchVariants.d.ts +19 -0
  166. package/dist/components/custom/selectable-chip/SelectableChip.vue.d.ts +50 -0
  167. package/dist/components/custom/selectable-chip/index.d.ts +2 -0
  168. package/dist/components/custom/selectable-chip/selectableChipVariants.d.ts +23 -0
  169. package/dist/components/custom/split-chars/SplitChars.vue.d.ts +39 -0
  170. package/dist/components/custom/split-chars/index.d.ts +1 -0
  171. package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +8 -6
  172. package/dist/components/custom/tabs/constants.d.ts +20 -2
  173. package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +29 -16
  174. package/dist/components/custom/watercolor-dot/useWatercolorBlob.d.ts +10 -5
  175. package/dist/components/ui/_shared/index.d.ts +2 -0
  176. package/dist/components/ui/_shared/useControlSize.d.ts +46 -0
  177. package/dist/components/ui/button/index.d.ts +1 -1
  178. package/dist/components/ui/card/Card.vue.d.ts +45 -0
  179. package/dist/components/ui/card/index.d.ts +1 -1
  180. package/dist/components/ui/carousel/CarouselNext.vue.d.ts +1 -1
  181. package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +1 -1
  182. package/dist/components/ui/command/CommandDialog.vue.d.ts +9 -3
  183. package/dist/components/ui/command/CommandList.vue.d.ts +3 -0
  184. package/dist/components/ui/context-menu/ContextMenuContent.vue.d.ts +5 -1
  185. package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +4 -0
  186. package/dist/components/ui/hover-card/HoverCardContent.vue.d.ts +3 -0
  187. package/dist/components/ui/input/Input.vue.d.ts +3 -0
  188. package/dist/components/ui/number-field/NumberFieldInput.vue.d.ts +6 -1
  189. package/dist/components/ui/select/SelectContent.vue.d.ts +3 -0
  190. package/dist/components/ui/switch/Switch.vue.d.ts +2 -0
  191. package/dist/components/ui/textarea/Textarea.vue.d.ts +3 -0
  192. package/dist/components/ui/tooltip/TooltipContent.vue.d.ts +3 -0
  193. package/dist/composables/color/index.d.ts +2 -0
  194. package/dist/composables/color/useAccentTone.d.ts +34 -0
  195. package/dist/composables/glass/useVizChoreography.d.ts +123 -0
  196. package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +10 -0
  197. package/dist/composables/glass/webgl/shaders/flow.wgsl.d.ts +1 -0
  198. package/dist/composables/glass/webgpu/index.d.ts +1 -1
  199. package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +28 -7
  200. package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +1 -0
  201. package/dist/composables/glass/webgpu/webgpuDevice.d.ts +42 -0
  202. package/dist/composables/motion/core/index.d.ts +3 -0
  203. package/dist/composables/motion/scrollReader.d.ts +25 -0
  204. package/dist/composables/motion/springPresets.d.ts +20 -1
  205. package/dist/composables/motion/useCharStagger.d.ts +44 -0
  206. package/dist/composables/motion/useDockCtaReceive.d.ts +31 -6
  207. package/dist/composables/motion/useScrollChrome.d.ts +58 -0
  208. package/dist/composables/motion/useScrollTrigger.d.ts +67 -0
  209. package/dist/composables/motion/useSpringPress.d.ts +5 -5
  210. package/dist/composables/motion/useStaggerReveal.d.ts +24 -0
  211. package/dist/composables/sidebar/index.d.ts +4 -1
  212. package/dist/composables/sidebar/types.d.ts +68 -3
  213. package/dist/composables/sidebar/useClickDelegate.d.ts +4 -0
  214. package/dist/composables/sidebar/useLazyLoader.d.ts +5 -0
  215. package/dist/composables/sidebar/useScrollTo.d.ts +5 -0
  216. package/dist/composables/virtual/index.d.ts +4 -0
  217. package/dist/composables/virtual/useVirtualSectionWindow.d.ts +72 -0
  218. package/dist/composables/virtual/useWindowedStore.d.ts +43 -0
  219. package/dist/composables/virtual/virtualSectionLayout.d.ts +103 -0
  220. package/dist/concentric.js +495 -221
  221. package/dist/configurator.js +2 -2
  222. package/dist/confirm-dialog.js +62 -47
  223. package/dist/constellation.js +635 -235
  224. package/dist/context-menu.js +2 -2
  225. package/dist/controls.js +1 -1
  226. package/dist/createCanvasLifecycle-Gh45Ce-p.js +93 -0
  227. package/dist/dark.js +1 -1
  228. package/dist/data-table.js +1 -1
  229. package/dist/deck.d.ts +1 -0
  230. package/dist/deck.js +105 -0
  231. package/dist/dialog.js +4 -3
  232. package/dist/dock.js +602 -458
  233. package/dist/dot-flow-field.js +580 -290
  234. package/dist/dot-matrix.d.ts +1 -0
  235. package/dist/dot-matrix.js +630 -0
  236. package/dist/dotMatrixField-D_x9_1qq.js +48 -0
  237. package/dist/{dropdown-menu-CofSZuk8.js → dropdown-menu-aJmV5SqE.js} +83 -79
  238. package/dist/dropdown-menu.js +1 -1
  239. package/dist/easing.js +188 -176
  240. package/dist/expandable-container.js +42 -20
  241. package/dist/fading-scroll.js +1 -1
  242. package/dist/flow.glsl-B2P7e0MT.js +4 -0
  243. package/dist/forms.js +62 -60
  244. package/dist/fourier-field.js +825 -178
  245. package/dist/fourier-math.js +1 -1
  246. package/dist/glass-ui.css +1 -1
  247. package/dist/glass-ui.js +145 -104
  248. package/dist/goo-blob.js +171 -1228
  249. package/dist/goo-dot-matrix.d.ts +1 -0
  250. package/dist/goo-dot-matrix.js +591 -0
  251. package/dist/handmark.js +1 -1
  252. package/dist/hover-card.js +1 -1
  253. package/dist/hover-popover.js +1 -1
  254. package/dist/icon-chip.js +1 -1
  255. package/dist/icon-tooltip.js +1 -1
  256. package/dist/index.d.ts +2 -0
  257. package/dist/instrument-chassis.js +1 -1
  258. package/dist/keyboard.js +1 -1
  259. package/dist/labeled-field.js +70 -60
  260. package/dist/metric-cell.js +1 -1
  261. package/dist/metric-stack.js +11 -2
  262. package/dist/motion-core.js +54 -32
  263. package/dist/motion-curves.js +11 -1
  264. package/dist/motion.js +46 -111
  265. package/dist/notification.js +1 -1
  266. package/dist/number-field.js +1 -1
  267. package/dist/pager-dots.js +2 -91
  268. package/dist/paper-backdrop.js +1 -1
  269. package/dist/paper-grid.d.ts +1 -0
  270. package/dist/paper-grid.js +788 -0
  271. package/dist/{presets-BW2b-fr1.js → presets-CvOUqtdY.js} +3 -3
  272. package/dist/{procedural-color.glsl-CIFsJhwI.js → procedural-color.wgsl-m7Zgv35j.js} +2 -2
  273. package/dist/progress.js +1 -1
  274. package/dist/pulse.js +1 -1
  275. package/dist/reactive.js +1 -1
  276. package/dist/{useCanvas2D-B8w_E3Rr.js → resolveCanvasColor-yPyIpJt9.js} +12 -2
  277. package/dist/scrollReader-DI1NWxUw.js +42 -0
  278. package/dist/scrolling-text.js +1 -1
  279. package/dist/search.js +160 -304
  280. package/dist/select.js +3 -3
  281. package/dist/selectable-chip.d.ts +1 -0
  282. package/dist/selectable-chip.js +65 -0
  283. package/dist/separator.js +1 -1
  284. package/dist/{sheet-tZMg0E0w.js → sheet-B2flBfLH.js} +2 -2
  285. package/dist/sheet.js +1 -1
  286. package/dist/sidebar.js +216 -114
  287. package/dist/slider.js +1 -1
  288. package/dist/sortable-list.js +1 -1
  289. package/dist/spectrum-walk-BVzA7Biz.js +33 -0
  290. package/dist/{springPresets-CFQGQfdl.js → springPresets-Ce7OYCm9.js} +12 -6
  291. package/dist/styles/animations.css +13 -3
  292. package/dist/styles/cards.css +69 -0
  293. package/dist/styles/completion-seal.css +131 -0
  294. package/dist/styles/components.css +2 -3
  295. package/dist/styles/configurator.css +55 -0
  296. package/dist/styles/critical-partition.mjs +33 -11
  297. package/dist/styles/deferred.css +2 -0
  298. package/dist/styles/dock/cta-seat.css +87 -0
  299. package/dist/styles/dock/density.css +153 -0
  300. package/dist/styles/dock/layers.css +55 -7
  301. package/dist/styles/dock/morph-bridge.css +54 -18
  302. package/dist/styles/dock/morph.css +41 -33
  303. package/dist/styles/dock/overflow.css +12 -0
  304. package/dist/styles/dock/search.css +68 -0
  305. package/dist/styles/dock/shape.css +124 -0
  306. package/dist/styles/dock/shell.css +23 -5
  307. package/dist/styles/dock/stack-rail.css +264 -0
  308. package/dist/styles/dock-controls/dark-mode-toggle.css +17 -4
  309. package/dist/styles/dock-controls/icon-button.css +14 -0
  310. package/dist/styles/dock.css +11 -1
  311. package/dist/styles/glass/accent-tone.css +66 -0
  312. package/dist/styles/glass/control-surfaces.css +167 -0
  313. package/dist/styles/glass/ladder.css +67 -17
  314. package/dist/styles/glass/rim.css +19 -9
  315. package/dist/styles/glass/surfaces.css +69 -148
  316. package/dist/styles/glass.css +10 -0
  317. package/dist/styles/index.css +15 -0
  318. package/dist/styles/scroll-chrome.css +123 -0
  319. package/dist/styles/scroll-driven.css +38 -0
  320. package/dist/styles/segmented-tabs.css +50 -14
  321. package/dist/styles/theme/bridges.css +22 -0
  322. package/dist/styles/theme/radius.css +18 -1
  323. package/dist/styles/tokens/color-radius.css +13 -3
  324. package/dist/styles/tokens/dark-arm.css +39 -6
  325. package/dist/styles/tokens/glass-deep.css +28 -3
  326. package/dist/styles/tokens/glass-fx.css +44 -1
  327. package/dist/styles/tokens/glass.css +91 -31
  328. package/dist/styles/tokens/light-dark.css +1 -1
  329. package/dist/styles/tokens/offsets.css +27 -0
  330. package/dist/styles/tokens/property-regs.css +133 -0
  331. package/dist/styles/tokens/scale-paper.css +73 -29
  332. package/dist/styles/tokens/scheme-motion.css +44 -6
  333. package/dist/styles/tokens/sizing-config.css +110 -0
  334. package/dist/styles/tokens/sizing.css +55 -104
  335. package/dist/styles/tokens.css +5 -0
  336. package/dist/styles/typography/semantic.css +18 -5
  337. package/dist/styles/utilities/a11y-overrides.css +20 -5
  338. package/dist/styles/utilities/base-misc.css +52 -0
  339. package/dist/styles/utilities/btn.css +14 -3
  340. package/dist/styles/utilities/components.css +31 -6
  341. package/dist/styles/utilities/metal.css +26 -0
  342. package/dist/switch.js +1 -1
  343. package/dist/tabs.js +8 -8
  344. package/dist/timeline.js +1 -1
  345. package/dist/toast.js +1 -1
  346. package/dist/toggle-chip.js +10 -10
  347. package/dist/toggle-group.js +1 -1
  348. package/dist/tooltip.js +1 -1
  349. package/dist/typewriter.js +1 -1
  350. package/dist/uniformBridgeWGPU-CtAKl45L.js +1204 -0
  351. package/dist/{useAnimatedNumber-BfUq2bUM.js → useAnimatedNumber-CLrxicG9.js} +1 -1
  352. package/dist/{useConfiguratorState-DNlOh6c8.js → useConfiguratorState-4xblKfwd.js} +25 -24
  353. package/dist/useControlSize-SH1UmJCi.js +9 -0
  354. package/dist/useDockCtaReceive-DfFkmgL1.js +82 -0
  355. package/dist/{useDragMorph-DgxnsVJz.js → useDragMorph-BUgAC-zK.js} +4 -4
  356. package/dist/useFuzzySearch-DIhcYtcw.js +177 -0
  357. package/dist/useGpuSubstrate-4pTcp6mX.js +294 -0
  358. package/dist/{useLiquidPress-kfb4KX79.js → useLiquidPress-BooG97RY.js} +2 -2
  359. package/dist/usePointerVelocityField-QLsy3_kv.js +91 -0
  360. package/dist/useScrollChrome-D66AVP7C.js +258 -0
  361. package/dist/{useSpringMount-q1amq1SJ.js → useSpringMount-BWDnKIwh.js} +1 -1
  362. package/dist/useSpringPress-B1-Czp-V.js +36 -0
  363. package/dist/useViewTransition-CUI1nAgn.js +95 -0
  364. package/dist/{vendor-CKmzio-i.js → vendor-B2qOlYY3.js} +24 -11
  365. package/dist/virtual.d.ts +1 -0
  366. package/dist/virtual.js +225 -0
  367. package/dist/watercolor-dot.js +116 -73
  368. package/package.json +127 -7
  369. package/src/styles/animations.css +13 -3
  370. package/src/styles/cards.css +69 -0
  371. package/src/styles/completion-seal.css +131 -0
  372. package/src/styles/configurator.css +55 -0
  373. package/src/styles/critical-partition.mjs +33 -11
  374. package/src/styles/dock/cta-seat.css +87 -0
  375. package/src/styles/dock/density.css +153 -0
  376. package/src/styles/dock/layers.css +55 -7
  377. package/src/styles/dock/morph-bridge.css +54 -18
  378. package/src/styles/dock/morph.css +41 -33
  379. package/src/styles/dock/overflow.css +12 -0
  380. package/src/styles/dock/search.css +68 -0
  381. package/src/styles/dock/shape.css +124 -0
  382. package/src/styles/dock/shell.css +23 -5
  383. package/src/styles/dock/stack-rail.css +264 -0
  384. package/src/styles/dock-controls/dark-mode-toggle.css +17 -4
  385. package/src/styles/dock-controls/icon-button.css +14 -0
  386. package/src/styles/dock.css +11 -1
  387. package/src/styles/glass/accent-tone.css +66 -0
  388. package/src/styles/glass/control-surfaces.css +167 -0
  389. package/src/styles/glass/ladder.css +67 -17
  390. package/src/styles/glass/rim.css +19 -9
  391. package/src/styles/glass/surfaces.css +69 -148
  392. package/src/styles/glass.css +10 -0
  393. package/src/styles/index.css +15 -0
  394. package/src/styles/scroll-chrome.css +123 -0
  395. package/src/styles/scroll-driven.css +38 -0
  396. package/src/styles/segmented-tabs.css +50 -14
  397. package/src/styles/theme/bridges.css +22 -0
  398. package/src/styles/theme/radius.css +18 -1
  399. package/src/styles/tokens/color-radius.css +13 -3
  400. package/src/styles/tokens/dark-arm.css +39 -6
  401. package/src/styles/tokens/glass-deep.css +28 -3
  402. package/src/styles/tokens/glass-fx.css +44 -1
  403. package/src/styles/tokens/glass.css +91 -31
  404. package/src/styles/tokens/light-dark.css +1 -1
  405. package/src/styles/tokens/offsets.css +27 -0
  406. package/src/styles/tokens/property-regs.css +133 -0
  407. package/src/styles/tokens/scale-paper.css +73 -29
  408. package/src/styles/tokens/scheme-motion.css +44 -6
  409. package/src/styles/tokens/sizing-config.css +110 -0
  410. package/src/styles/tokens/sizing.css +55 -104
  411. package/src/styles/tokens.css +5 -0
  412. package/src/styles/typography/semantic.css +18 -5
  413. package/src/styles/utilities/a11y-overrides.css +20 -5
  414. package/src/styles/utilities/base-misc.css +52 -0
  415. package/src/styles/utilities/btn.css +14 -3
  416. package/src/styles/utilities/components.css +31 -6
  417. package/src/styles/utilities/metal.css +26 -0
  418. package/dist/ContextMenuContent-uWnVxDab.js +0 -85
  419. package/dist/DialogFooter-BZNX5aVr.js +0 -165
  420. package/dist/HoverCardContent-b2uaAMRR.js +0 -83
  421. package/dist/Input-h9v5LeXf.js +0 -55
  422. package/dist/NumberFieldContent-Cq7EzX-U.js +0 -138
  423. package/dist/Separator-pKF0oA4M.js +0 -37
  424. package/dist/Switch-CwYNf8bo.js +0 -47
  425. package/dist/TooltipProvider-rzvnXz60.js +0 -104
  426. package/dist/color-DweYl7pE.js +0 -86
  427. package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +0 -35
  428. package/dist/components/custom/constellation/constellationDraw.d.ts +0 -30
  429. package/dist/components/custom/dock/DockRail.vue.d.ts +0 -89
  430. package/dist/createCanvasLifecycle-CHD5XrDW.js +0 -82
  431. package/dist/procedural-color.wgsl-CToRHugY.js +0 -224
  432. package/dist/resolveCanvasColor-CUyHr5Uu.js +0 -11
  433. package/dist/styles/dock/rail-extend.css +0 -397
  434. package/dist/usePointerVelocityField-JbRd5CrM.js +0 -137
  435. package/dist/useRAFLoop-UYa4zoiN.js +0 -109
  436. package/dist/useSpringPress-BsqPr7FJ.js +0 -34
  437. package/src/styles/dock/rail-extend.css +0 -397
  438. /package/dist/{FadingScroll-DI6hQhT9.js → FadingScroll-DLRbH5Xr.js} +0 -0
  439. /package/dist/{HoverPopover-CbqbNwgU.js → HoverPopover-BcIxvyqZ.js} +0 -0
  440. /package/dist/{InstrumentChassis-Bx0F_q5g.js → InstrumentChassis-CxsHSyMj.js} +0 -0
  441. /package/dist/{PaperBackdrop-Vf3tlpvd.js → PaperBackdrop-CqwjnfLv.js} +0 -0
  442. /package/dist/{Progress-DctG61iZ.js → Progress-CnqB7gLm.js} +0 -0
  443. /package/dist/{ScrollingText-yOpBzFYq.js → ScrollingText-CTZbA_cG.js} +0 -0
  444. /package/dist/{SelectGroup-DwwjicPY.js → SelectGroup-BFiod7X2.js} +0 -0
  445. /package/dist/{compile-CQEFRTmx.js → compile-nZ1xVYTp.js} +0 -0
  446. /package/dist/{constants-BPOqYJAm.js → constants--C2DkLW8.js} +0 -0
  447. /package/dist/{math-BINYmg5z.js → math-Eb0w3LqU.js} +0 -0
  448. /package/dist/{prng-Za0Rmgag.js → prng-B-d9eYX8.js} +0 -0
  449. /package/dist/{slider-DVb4HXU-.js → slider-2A0rPn79.js} +0 -0
  450. /package/dist/{useGlobalDark-C28t0VWJ.js → useGlobalDark-CmjB9E32.js} +0 -0
  451. /package/dist/{useIntersectionPause-Bj4sPkMh.js → useIntersectionPause-Dbozzjgm.js} +0 -0
  452. /package/dist/{useInterval-CvK1mL92.js → useInterval-CNdua40W.js} +0 -0
  453. /package/dist/{useKeyboardShortcuts-BXWXOZ-9.js → useKeyboardShortcuts-BPRp33Im.js} +0 -0
  454. /package/dist/{useLiquidFlex-mZPMiNXh.js → useLiquidFlex-UmA6LMZu.js} +0 -0
  455. /package/dist/{useScrollProgress-D7bYU2RK.js → useScrollProgress-c3yxmH6a.js} +0 -0
  456. /package/dist/{useSortable-DHjtZSEd.js → useSortable-BVqlJRBR.js} +0 -0
  457. /package/dist/{useTextHighlight-CWEi25hf.js → useTextHighlight-NmBM5V_4.js} +0 -0
  458. /package/dist/{vReveal-Czsb7zQC.js → vReveal-D9k0jADx.js} +0 -0
  459. /package/dist/{vSpecular-CQFmLNzA.js → vSpecular-EX7loENl.js} +0 -0
@@ -0,0 +1 @@
1
+ export * from "./components/custom/goo-dot-matrix";
@@ -0,0 +1,591 @@
1
+ import { t as e } from "./_plugin-vue_export-helper-C1je1s0u.js";
2
+ import { t } from "./usePointerVelocityField-QLsy3_kv.js";
3
+ import { a as n, t as r } from "./useGpuSubstrate-4pTcp6mX.js";
4
+ import { n as i, t as a } from "./compile-nZ1xVYTp.js";
5
+ import { s as o, t as s } from "./color-Cs0-oxYL.js";
6
+ import { t as c } from "./useIntersectionPause-Dbozzjgm.js";
7
+ import { u as l } from "./dotMatrixField-D_x9_1qq.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-CtAKl45L.js";
9
+ import { computed as x, createElementBlock as S, createElementVNode as C, defineComponent as w, normalizeStyle as T, onScopeDispose as E, openBlock as D, ref as ee, useTemplateRef as O, watch as k } from "vue";
10
+ //#region src/components/custom/goo-dot-matrix/constants.ts
11
+ var A = 4, j = 96, M = [{
12
+ L: .92,
13
+ C: .03,
14
+ h: 78
15
+ }, {
16
+ L: .84,
17
+ C: .07,
18
+ h: 62
19
+ }], N = {
20
+ variant: "dot-field",
21
+ field: {
22
+ ...f,
23
+ variant: "blob"
24
+ },
25
+ dotPixelSize: 10,
26
+ dotMin: .18,
27
+ dotMax: .42,
28
+ fieldFloor: .06,
29
+ dotBrightFloor: .35,
30
+ cols: 56,
31
+ flowAmt: .35,
32
+ palette: M,
33
+ background: "transparent",
34
+ interactive: !1,
35
+ pointerMode: "repel",
36
+ pointerRadius: .35,
37
+ respectReducedMotion: !0
38
+ }, P = {
39
+ s8: 0,
40
+ s9: 4,
41
+ s10: 8,
42
+ s11: 12
43
+ };
44
+ function F(e) {
45
+ return +(e === "dot-dither");
46
+ }
47
+ function I(e) {
48
+ return e === "attract" ? -1 : 1;
49
+ }
50
+ function L() {
51
+ return {
52
+ x: 0,
53
+ y: 0,
54
+ active: 0,
55
+ bloom: 0
56
+ };
57
+ }
58
+ function R() {
59
+ let e = /* @__PURE__ */ new ArrayBuffer(64);
60
+ return {
61
+ buffer: e,
62
+ f32: new Float32Array(e)
63
+ };
64
+ }
65
+ function z(e, t, n, r, i) {
66
+ let { f32: a } = e;
67
+ return a[P.s8 + 0] = F(t.variant), a[P.s8 + 1] = Math.max(t.dotPixelSize * r, 4), a[P.s8 + 2] = t.fieldFloor, a[P.s8 + 3] = t.dotBrightFloor, a[P.s9 + 0] = t.dotMin, a[P.s9 + 1] = t.dotMax, a[P.s9 + 2] = t.pointerRadius, a[P.s9 + 3] = I(t.pointerMode), a[P.s10 + 0] = n.w, a[P.s10 + 1] = n.h, a[P.s10 + 2] = r, a[P.s10 + 3] = 0, a[P.s11 + 0] = t.interactive ? i.active : 0, a[P.s11 + 1] = i.x, a[P.s11 + 2] = i.y, a[P.s11 + 3] = i.bloom, e;
68
+ }
69
+ //#endregion
70
+ //#region src/components/custom/goo-dot-matrix/shaders/goo-dot.wgsl.ts
71
+ var B = p.indexOf("// ── Full-screen triangle vertex stage"), V = `
72
+ ${B >= 0 ? p.slice(0, B) : p}
73
+
74
+ // ── Dot-grid uniforms (the s8/s9 lanes — see uniformBridgeWGPU.ts; the SoT extend) ──
75
+ struct DotUniforms {
76
+ // s8: (uDotMode, uDotPixelSize, uFieldFloor, uDotBrightFloor)
77
+ s8: vec4<f32>,
78
+ // s9: (uDotMin, uDotMax, uPointerRadius, uPointerMode)
79
+ s9: vec4<f32>,
80
+ // s10: (uResX, uResY, uDpr, _pad) — the device-px resolution the cell grid quantizes to
81
+ s10: vec4<f32>,
82
+ // s11: (uPointerActive, uPointerX, uPointerY, uBloom) — the dot-cursor influence
83
+ s11: vec4<f32>,
84
+ };
85
+ @group(0) @binding(1) var<uniform> dg: DotUniforms;
86
+
87
+ // The classic ordered-dither Bayer macros (Codrops — the §T2 halftone). Bayer8 is the
88
+ // perceptual ceiling ("beyond 8×8 the gain is minimal"). The metaball field already carries
89
+ // the warped-FBM membrane, so the dither inherits the organic edge for free.
90
+ fn bayer2(a0: vec2<f32>) -> f32 {
91
+ let a = floor(a0);
92
+ return fract(a.x / 2.0 + a.y * a.y * 0.75);
93
+ }
94
+ fn bayer4(a: vec2<f32>) -> f32 {
95
+ return bayer2(0.5 * a) * 0.25 + bayer2(a);
96
+ }
97
+ fn bayer8(a: vec2<f32>) -> f32 {
98
+ return bayer4(0.5 * a) * 0.25 + bayer2(a);
99
+ }
100
+
101
+ // ── Register A: the full-screen triangle vertex stage (the metaball idiom — no buffer) ──
102
+ struct DotVSOut {
103
+ @builtin(position) pos: vec4<f32>,
104
+ @location(0) uv: vec2<f32>, // [0,1] across the canvas (the metaball.vert convention)
105
+ };
106
+
107
+ @vertex
108
+ fn vs_main(@builtin(vertex_index) vi: u32) -> DotVSOut {
109
+ var p = vec2<f32>(-1.0, -1.0);
110
+ if (vi == 1u) { p = vec2<f32>(3.0, -1.0); }
111
+ else if (vi == 2u) { p = vec2<f32>(-1.0, 3.0); }
112
+ var out: DotVSOut;
113
+ out.pos = vec4<f32>(p, 0.0, 1.0);
114
+ out.uv = p * 0.5 + 0.5;
115
+ return out;
116
+ }
117
+
118
+ // ── Register A: the dot-stamp fragment (§T1/§T2 — the dot-grid OUTPUT over sceneDistG) ──
119
+ @fragment
120
+ fn fs_main(in: DotVSOut) -> @location(0) vec4<f32> {
121
+ let uDotMode = dg.s8.x; // 0 = smooth field-driven dot, 1 = Bayer dither
122
+ let uDotPixelSize = max(dg.s8.y, 1.0);
123
+ let uFieldFloor = dg.s8.z;
124
+ let uDotBrightFloor = dg.s8.w;
125
+ let uDotMin = dg.s9.x;
126
+ let uDotMax = dg.s9.y;
127
+ let uPointerRadius = max(dg.s9.z, 1e-4);
128
+ let uPointerMode = dg.s9.w; // +1 repel (push out), -1 attract (pull in)
129
+ let uRes = dg.s10.xy;
130
+ let pAct = dg.s11.x;
131
+ let cursor = dg.s11.yz; // NDC-ish [-0.5,0.5] (the field's uv space)
132
+ let uBloom = dg.s11.w;
133
+
134
+ let bodyR = u.s0.y + breath(u.s0.z) * u.s0.w;
135
+
136
+ // 1. Quantize fragCoord to a dot grid (cell = uDotPixelSize device px). The fragment's
137
+ // pixel coordinate is in.pos.xy (device px).
138
+ let fragCoord = in.pos.xy;
139
+ let cell = floor(fragCoord / uDotPixelSize);
140
+ let cellCtr = (cell + 0.5) * uDotPixelSize;
141
+
142
+ // 2. The field AT THE CELL CENTER (so every fragment in a cell agrees on ONE dot). The cell
143
+ // center maps to the field uv = (cellCtr/res - 0.5) — the SAME uv the metaball pass uses.
144
+ let cellCtrUv = cellCtr / uRes - 0.5;
145
+
146
+ // 3. The dot-cursor influence (§T7 — the Metal dotted-bg idiom): dots near the cursor swell
147
+ // + brighten; the cell uv shifts toward/away (attract/repel). The field-lean is carried
148
+ // by the metaball pass's own uPointer deformation inside sceneDistG (KEEP); this is the
149
+ // LOCAL dot influence on TOP.
150
+ let toCursor = cellCtrUv - cursor;
151
+ let cdist = length(toCursor);
152
+ let influence = (1.0 - smoothstep(0.0, uPointerRadius, cdist)) * pAct;
153
+ let sampleUv = cellCtrUv + normalize(toCursor + vec2<f32>(1e-6)) * influence * uPointerMode * 0.03;
154
+
155
+ // 4. The field value at the cell — thickness = clamp(-d/bodyR, 0, 1) (metaball.wgsl line 500,
156
+ // the one-line re-use). 0 at the silhouette → 1 deep in the core — the goo↔dot bridge.
157
+ let scene = sceneDistG(sampleUv);
158
+ let fCell = clamp(-scene.x / max(bodyR, 1e-4), 0.0, 1.0);
159
+
160
+ // 5. The dot radius (px) — field-driven: dense+big inside, small at the rim, 0 outside the
161
+ // floor. The cursor swells the near-cursor dots (mix toward 1.5× + the accel bloom).
162
+ let cellHalf = uDotPixelSize * 0.5;
163
+ let baseR = (uDotMin + (uDotMax - uDotMin) * smoothstep(uFieldFloor, 1.0, fCell)) * cellHalf;
164
+ let dotR = baseR * (1.0 + influence * 0.5 + uBloom * influence);
165
+
166
+ var mask = 1.0;
167
+ if (uDotMode > 0.5) {
168
+ // §T2 Register-A dither: ORDERED-dither the field thickness into ON/OFF dots — denser at
169
+ // the core, sparser at the rim (the classic halftone). The dot still AA-stamps below.
170
+ mask = step(0.5, fCell + bayer8(cell) - 0.5);
171
+ }
172
+
173
+ // 6. The antialiased circle at the cell center (the fwidth-feathered Book-of-Shaders dot —
174
+ // the ONE AA canon, ~1px band at any DPR). fwidth lives in fs_main ONLY.
175
+ let pd = length(fragCoord - cellCtr);
176
+ let aa = max(fwidth(pd), 1e-4);
177
+ let dot = (1.0 - smoothstep(dotR - aa, dotR + aa, pd)) * mask;
178
+
179
+ // 7. The brightness/color ALSO reads fCell (dim outside, bright inside) on the SAME OKLCh
180
+ // ramp the metaball pass samples (the ONE color source). The tone reads DEPTH (the core
181
+ // is the bright cream stop, the rim the amber stop) so the field reads TONALLY on both
182
+ // grounds; the brightness multiplies the sampled stop's luminance.
183
+ let bright = uDotBrightFloor + (1.0 - uDotBrightFloor) * fCell + uBloom * influence * 0.6;
184
+ let tone = clamp(1.0 - fCell, 0.0, 1.0);
185
+ var oklch = samplePaletteOklch(tone);
186
+ oklch.x = clamp(oklch.x * clamp(bright, 0.0, 1.6), 0.0, 1.0);
187
+ let lin = oklabToLinearSrgb(oklchToOklab(gamutClampOklch(oklch)));
188
+ let rgb = clamp(linearToSrgb(lin), vec3<f32>(0.0), vec3<f32>(1.0));
189
+
190
+ // No dot where the field is below the floor (the dots stop at the silhouette band).
191
+ let alpha = dot * step(uFieldFloor, fCell);
192
+ if (alpha < 0.002) { discard; }
193
+
194
+ // Premultiplied-alpha output (the warm-cream dots additive over the clear).
195
+ return vec4<f32>(rgb * alpha, alpha);
196
+ }
197
+ `, H = g.indexOf("void main()"), U = H >= 0 ? g.slice(0, H) : g, W = "#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}", G = `${U}
198
+
199
+ // ── Dot-grid uniforms (the s8/s9 lanes — see uniformBridgeWGPU.ts; the SoT extend) ──
200
+ uniform float uDotMode; // 0 = smooth field-driven dot, 1 = Bayer dither
201
+ uniform float uDotPixelSize; // device-px cell size
202
+ uniform float uFieldFloor; // no dot below this field value
203
+ uniform float uDotBrightFloor; // dim-outside brightness floor
204
+ uniform float uDotMin; // rim dot radius (fraction of the cell)
205
+ uniform float uDotMax; // core dot radius (fraction of the cell)
206
+ uniform float uDotPointerRadius;
207
+ uniform float uDotPointerMode; // +1 repel, -1 attract
208
+ uniform float uDotPointerActive;
209
+ uniform vec2 uDotCursor; // field-uv cursor [-0.5,0.5]
210
+ uniform float uDotBloom; // accel-burst bloom
211
+
212
+ // The Codrops Bayer8 ordered-dither macros (the §T2 halftone).
213
+ float bayer2(vec2 a0){ vec2 a = floor(a0); return fract(a.x / 2.0 + a.y * a.y * 0.75); }
214
+ float bayer4(vec2 a){ return bayer2(0.5 * a) * 0.25 + bayer2(a); }
215
+ float bayer8(vec2 a){ return bayer4(0.5 * a) * 0.25 + bayer2(a); }
216
+
217
+ void main() {
218
+ float bodyR = uBodyRadius + breath(uPulsePhase) * uPulseAmp;
219
+
220
+ // 1. Quantize gl_FragCoord (device px) to a dot grid (cell = uDotPixelSize device px).
221
+ vec2 fragCoord = gl_FragCoord.xy;
222
+ float pix = max(uDotPixelSize, 1.0);
223
+ vec2 cell = floor(fragCoord / pix);
224
+ vec2 cellCtr = (cell + 0.5) * pix;
225
+
226
+ // 2. The field uv at the cell center (the SAME uv the metaball pass uses).
227
+ vec2 cellCtrUv = cellCtr / uResolution - 0.5;
228
+
229
+ // 3. The dot-cursor influence (the §T7 local influence on TOP of the field-lean).
230
+ vec2 toCursor = cellCtrUv - uDotCursor;
231
+ float cdist = length(toCursor);
232
+ float influence = (1.0 - smoothstep(0.0, max(uDotPointerRadius, 1e-4), cdist)) * uDotPointerActive;
233
+ vec2 sampleUv = cellCtrUv + normalize(toCursor + vec2(1e-6)) * influence * uDotPointerMode * 0.03;
234
+
235
+ // 4. The field value at the cell — thickness = clamp(-d/bodyR, 0, 1) (the goo↔dot bridge).
236
+ vec3 scene = sceneDistG(sampleUv);
237
+ float fCell = clamp(-scene.x / max(bodyR, 1e-4), 0.0, 1.0);
238
+
239
+ // 5. The field-driven dot radius (px) + the cursor swell + the accel bloom.
240
+ float cellHalf = pix * 0.5;
241
+ float baseR = (uDotMin + (uDotMax - uDotMin) * smoothstep(uFieldFloor, 1.0, fCell)) * cellHalf;
242
+ float dotR = baseR * (1.0 + influence * 0.5 + uDotBloom * influence);
243
+
244
+ float mask = 1.0;
245
+ if (uDotMode > 0.5) {
246
+ mask = step(0.5, fCell + bayer8(cell) - 0.5);
247
+ }
248
+
249
+ // 6. The crisp fwidth-feathered SDF dot (the ONE AA canon, ~1px band at any DPR).
250
+ float pd = length(fragCoord - cellCtr);
251
+ float aa = max(fwidth(pd), 1e-4);
252
+ float dot = (1.0 - smoothstep(dotR - aa, dotR + aa, pd)) * mask;
253
+
254
+ // 7. The brightness/color reads fCell on the SAME OKLCh ramp (the ONE color source).
255
+ float bright = uDotBrightFloor + (1.0 - uDotBrightFloor) * fCell + uDotBloom * influence * 0.6;
256
+ float tone = clamp(1.0 - fCell, 0.0, 1.0);
257
+ vec3 oklch = samplePaletteOklch(tone);
258
+ oklch.x = clamp(oklch.x * clamp(bright, 0.0, 1.6), 0.0, 1.0);
259
+ vec3 lin = oklabToLinearSrgb(oklchToOklab(gamutClampOklch(oklch)));
260
+ vec3 rgb = clamp(linearToSrgb(lin), vec3(0.0), vec3(1.0));
261
+
262
+ float alpha = dot * step(uFieldFloor, fCell);
263
+ if (alpha < 0.002) discard;
264
+
265
+ fragColor = vec4(rgb * alpha, alpha);
266
+ }`, K = 64, q = 8, J = 1, Y = 2, X = "[GooDotMatrix]";
267
+ function Z(e, t) {
268
+ let n = e.createShaderModule({
269
+ label: `${X} goo-dot.wgsl`,
270
+ code: V
271
+ }), r = e.createBuffer({
272
+ label: `${X} field-uniforms`,
273
+ size: y,
274
+ usage: K | q
275
+ }), i = e.createBuffer({
276
+ label: `${X} dot-uniforms`,
277
+ size: 64,
278
+ usage: K | q
279
+ }), a = e.createBindGroupLayout({
280
+ label: `${X} bgl`,
281
+ entries: [{
282
+ binding: 0,
283
+ visibility: J | Y,
284
+ buffer: { type: "uniform" }
285
+ }, {
286
+ binding: 1,
287
+ visibility: Y,
288
+ buffer: { type: "uniform" }
289
+ }]
290
+ });
291
+ return {
292
+ pipeline: e.createRenderPipeline({
293
+ label: `${X} pipeline`,
294
+ layout: e.createPipelineLayout({ bindGroupLayouts: [a] }),
295
+ vertex: {
296
+ module: n,
297
+ entryPoint: "vs_main"
298
+ },
299
+ fragment: {
300
+ module: n,
301
+ entryPoint: "fs_main",
302
+ targets: [{
303
+ format: t,
304
+ blend: {
305
+ color: {
306
+ srcFactor: "one",
307
+ dstFactor: "one-minus-src-alpha",
308
+ operation: "add"
309
+ },
310
+ alpha: {
311
+ srcFactor: "one",
312
+ dstFactor: "one-minus-src-alpha",
313
+ operation: "add"
314
+ }
315
+ }
316
+ }]
317
+ },
318
+ primitive: { topology: "triangle-list" }
319
+ }),
320
+ bindGroup: e.createBindGroup({
321
+ label: `${X} bg`,
322
+ layout: a,
323
+ entries: [{
324
+ binding: 0,
325
+ resource: { buffer: r }
326
+ }, {
327
+ binding: 1,
328
+ resource: { buffer: i }
329
+ }]
330
+ }),
331
+ fieldBuffer: r,
332
+ dotBuffer: i,
333
+ fieldScratch: h(),
334
+ dotScratch: R()
335
+ };
336
+ }
337
+ function Q(e) {
338
+ let t = a(e, e.VERTEX_SHADER, W, X), n = a(e, e.FRAGMENT_SHADER, G, X), r = i(e, t, n, X);
339
+ e.useProgram(r);
340
+ let o = e.createVertexArray();
341
+ e.bindVertexArray(o);
342
+ let s = e.createBuffer();
343
+ e.bindBuffer(e.ARRAY_BUFFER, s), e.bufferData(e.ARRAY_BUFFER, new Float32Array([
344
+ -1,
345
+ -1,
346
+ 1,
347
+ -1,
348
+ -1,
349
+ 1,
350
+ -1,
351
+ 1,
352
+ 1,
353
+ -1,
354
+ 1,
355
+ 1
356
+ ]), e.STATIC_DRAW);
357
+ let c = e.getAttribLocation(r, "aPosition");
358
+ e.enableVertexAttribArray(c), e.vertexAttribPointer(c, 2, e.FLOAT, !1, 0, 0);
359
+ let l = {};
360
+ for (let t of b) l[t] = e.getUniformLocation(r, t);
361
+ let u = [], d = [], f = [];
362
+ 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}]`));
363
+ let p = [], m = [];
364
+ for (let t = 0; t < 15; t++) p.push(e.getUniformLocation(r, `uTrailPos[${t}]`)), m.push(e.getUniformLocation(r, `uTrailRadius[${t}]`));
365
+ let h = [];
366
+ for (let t = 0; t < 4; t++) h.push(e.getUniformLocation(r, `uPalette[${t}]`));
367
+ let g = {
368
+ U: l,
369
+ satPosLocs: u,
370
+ satRadLocs: d,
371
+ satOpLocs: f,
372
+ trailPosLocs: p,
373
+ trailRadLocs: m,
374
+ paletteLocs: h
375
+ }, _ = {
376
+ mode: e.getUniformLocation(r, "uDotMode"),
377
+ pix: e.getUniformLocation(r, "uDotPixelSize"),
378
+ floor: e.getUniformLocation(r, "uFieldFloor"),
379
+ bright: e.getUniformLocation(r, "uDotBrightFloor"),
380
+ min: e.getUniformLocation(r, "uDotMin"),
381
+ max: e.getUniformLocation(r, "uDotMax"),
382
+ pr: e.getUniformLocation(r, "uDotPointerRadius"),
383
+ pm: e.getUniformLocation(r, "uDotPointerMode"),
384
+ pa: e.getUniformLocation(r, "uDotPointerActive"),
385
+ cursor: e.getUniformLocation(r, "uDotCursor"),
386
+ bloom: e.getUniformLocation(r, "uDotBloom")
387
+ };
388
+ return e.enable(e.BLEND), e.blendFunc(e.ONE, e.ONE_MINUS_SRC_ALPHA), {
389
+ prog: r,
390
+ vs: t,
391
+ fs: n,
392
+ buf: s,
393
+ vao: o,
394
+ locs: g,
395
+ dU: _
396
+ };
397
+ }
398
+ //#endregion
399
+ //#region src/components/custom/goo-dot-matrix/composables/useGooDotMatrix.ts
400
+ function $(e, i) {
401
+ let { config: a } = i, l = i.mode ?? "live", f = a.field, p = ee(null), h = m(), g = d(p), y = v(f, "goo-dot"), b = t({ respectReducedMotion: a.respectReducedMotion }), x = L(), S = /* @__PURE__ */ new Map();
402
+ function C(e) {
403
+ let t = S.get(e);
404
+ if (t) return t;
405
+ let n = o(s(e));
406
+ return S.size > 256 && S.clear(), S.set(e, n), n;
407
+ }
408
+ let w = a.palette.map((e) => `oklch(${e.L} ${e.C} ${e.h})`), T = w[w.length - 1] ?? "oklch(0.92 0.03 78)", D = null, O = !1, k = 0, A = 0;
409
+ function j(e) {
410
+ let t = k ? (e - k) * 1e3 : 16;
411
+ k = e;
412
+ let n = Math.max(0, Math.min(t, 50)), r = D?.reducedMotion ?? !1, i = r || O ? 0 : f.tempo, o = i * n;
413
+ if (A += o, i > 0 && g.active.value) {
414
+ let e = g.pointer.value;
415
+ b.setPointer(e.x * .5 + .5, e.y * .5 + .5);
416
+ }
417
+ if (b.tick(i === 0 ? 0 : n), r || h.update({
418
+ pointerActive: g.active.value,
419
+ clicked: g.consumeClick(),
420
+ idleMs: g.idleMs()
421
+ }), h.tick(o), r ? g.rest() : g.tick(o), y.tick(A, h.params.value), a.interactive && g.active.value && i > 0) {
422
+ let e = g.pointer.value;
423
+ x.x = e.x * .5, x.y = e.y * .5, x.active += (1 - x.active) * .2, a.pointerMode, x.bloom = Math.max(x.bloom * .9, b.burst.value);
424
+ } else x.active += (0 - x.active) * .12, x.bloom *= .9;
425
+ return {
426
+ params: h.params.value,
427
+ rgb: C(T),
428
+ simTimeMs: A,
429
+ timeSec: e,
430
+ resolveColor: C,
431
+ rimColor: f.surface.rimColor,
432
+ paletteStops: w
433
+ };
434
+ }
435
+ function M() {
436
+ return O ? !1 : !h.isSettled() || !g.isAtRest() || !y.isQuiescent() || x.active > .001 || x.bloom > .001;
437
+ }
438
+ function N(e) {
439
+ return function(t, r, i) {
440
+ let o = Z(t, i);
441
+ function s() {
442
+ 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));
443
+ (e.width !== a || e.height !== o) && (e.width = a, e.height = o);
444
+ }
445
+ function c(i) {
446
+ let s = j(i);
447
+ _(o.fieldScratch, e, f, g, y, s), t.queue.writeBuffer(o.fieldBuffer, 0, o.fieldScratch.buffer), z(o.dotScratch, a, {
448
+ w: e.width || 1,
449
+ h: e.height || 1
450
+ }, n(), x), t.queue.writeBuffer(o.dotBuffer, 0, o.dotScratch.buffer);
451
+ let c = r.getCurrentTexture().createView(), l = t.createCommandEncoder({ label: `${X} frame` }), u = l.beginRenderPass({ colorAttachments: [{
452
+ view: c,
453
+ clearValue: {
454
+ r: 0,
455
+ g: 0,
456
+ b: 0,
457
+ a: 0
458
+ },
459
+ loadOp: "clear",
460
+ storeOp: "store"
461
+ }] });
462
+ u.setPipeline(o.pipeline), u.setBindGroup(0, o.bindGroup), u.draw(3, 1, 0, 0), u.end(), t.queue.submit([l.finish()]);
463
+ }
464
+ return {
465
+ frame: c,
466
+ shouldContinue: M,
467
+ resize: s,
468
+ teardown: () => {
469
+ o.fieldBuffer.destroy(), o.dotBuffer.destroy();
470
+ }
471
+ };
472
+ };
473
+ }
474
+ function P(e) {
475
+ return function(t) {
476
+ let r = Q(t), { prog: i, vao: o, locs: s, dU: c } = r;
477
+ function l() {
478
+ 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));
479
+ (e.width !== o || e.height !== s) && (e.width = o, e.height = s), t.viewport(0, 0, e.width, e.height);
480
+ }
481
+ function d(r) {
482
+ let l = j(r);
483
+ t.useProgram(i);
484
+ let d = n();
485
+ t.uniform1f(c.mode, +(a.variant === "dot-dither")), t.uniform1f(c.pix, Math.max(a.dotPixelSize * d, 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, I(a.pointerMode)), t.uniform1f(c.pa, a.interactive ? x.active : 0), t.uniform2f(c.cursor, x.x, x.y), t.uniform1f(c.bloom, x.bloom), u(t, i, o, s, e, f, g, y, l);
486
+ }
487
+ return {
488
+ frame: d,
489
+ shouldContinue: M,
490
+ resize: l,
491
+ teardown: () => {
492
+ t.deleteProgram(r.prog), t.deleteShader(r.vs), t.deleteShader(r.fs), t.deleteBuffer(r.buf), t.deleteVertexArray(r.vao);
493
+ }
494
+ };
495
+ };
496
+ }
497
+ c(e, {
498
+ pause: () => D?.suspend("off-screen-io"),
499
+ resume: () => D?.resume("off-screen-io")
500
+ }, {
501
+ rootMargin: "200px",
502
+ pauseWhenHidden: !1
503
+ });
504
+ let F = () => {
505
+ let t = e.value;
506
+ return t ? (D || (p.value = t.parentElement ?? t, D = r(t, {
507
+ mode: l,
508
+ contextAttrs: {
509
+ alpha: !0,
510
+ premultipliedAlpha: !0,
511
+ antialias: !1,
512
+ preserveDrawingBuffer: !1
513
+ },
514
+ respectReducedMotion: a.respectReducedMotion,
515
+ setupWGPU: N(t),
516
+ setupGL: P(t)
517
+ }), D.armAsync()), D) : null;
518
+ };
519
+ queueMicrotask(() => F());
520
+ let R = {
521
+ get backend() {
522
+ return F()?.backend ?? "webgpu";
523
+ },
524
+ pause: () => {
525
+ O = !0, F()?.suspend("manual");
526
+ },
527
+ resume: () => {
528
+ O = !1, F()?.resume("manual");
529
+ },
530
+ wake: () => F()?.wake(),
531
+ renderAt: (e) => F()?.renderAt(e),
532
+ get reducedMotion() {
533
+ return D?.reducedMotion ?? !1;
534
+ },
535
+ dispose: () => {
536
+ b.dispose(), D?.dispose(), D = null;
537
+ }
538
+ };
539
+ return E(() => R.dispose()), R;
540
+ }
541
+ //#endregion
542
+ //#region src/components/custom/goo-dot-matrix/GooDotMatrix.vue
543
+ var te = /* @__PURE__ */ e(/* @__PURE__ */ w({
544
+ __name: "GooDotMatrix",
545
+ props: {
546
+ config: { default: () => N },
547
+ paused: {
548
+ type: Boolean,
549
+ default: !1
550
+ }
551
+ },
552
+ emits: ["update:paused"],
553
+ setup(e, { expose: t }) {
554
+ let n = O("canvasRef"), r = $(n, { config: e.config });
555
+ k(() => e.paused, (e) => e ? r.pause() : r.resume(), { immediate: !0 });
556
+ let i = x(() => {
557
+ let t = e.config.background;
558
+ if (t !== "transparent") return `oklch(${t.L} ${t.C} ${t.h})`;
559
+ });
560
+ return t({
561
+ pause: r.pause,
562
+ resume: r.resume,
563
+ wake: r.wake,
564
+ renderAt: r.renderAt
565
+ }), (e, t) => (D(), S("div", {
566
+ class: "goo-dot-matrix-wrapper",
567
+ style: T(i.value ? { background: i.value } : void 0)
568
+ }, [C("canvas", {
569
+ ref_key: "canvasRef",
570
+ ref: n,
571
+ class: "goo-dot-matrix-canvas",
572
+ "aria-hidden": "true",
573
+ "data-testid": "goo-dot-matrix-canvas"
574
+ }, null, 512)], 4));
575
+ }
576
+ }), [["__scopeId", "data-v-2580c8f0"]]);
577
+ //#endregion
578
+ //#region src/components/custom/goo-dot-matrix/composables/gooDotLattice.ts
579
+ function ne(e, t, n) {
580
+ let r = Math.max(t, 1), i = e % r, a = Math.floor(e / r), o = (r - 1) / 2;
581
+ return {
582
+ x: (i - o) * n,
583
+ y: (a - o) * n
584
+ };
585
+ }
586
+ function re(e) {
587
+ let t = Math.max(e, 1);
588
+ return t * t;
589
+ }
590
+ //#endregion
591
+ export { N as DEFAULT_GOO_DOT_CONFIG, te as GooDotMatrix, j as MAX_LATTICE_COLS, A as MIN_DOT_PIXEL_SIZE, M as WARM_IDENTITY_PALETTE, l as fibonacciDot, ne as gridOrigin, re as latticeInstanceCount, $ as useGooDotMatrix };
package/dist/handmark.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./_plugin-vue_export-helper-C1je1s0u.js";
2
- import { n as t } from "./prng-Za0Rmgag.js";
2
+ import { n as t } from "./prng-B-d9eYX8.js";
3
3
  import { Fragment as n, computed as r, createCommentVNode as i, createElementBlock as a, defineComponent as o, normalizeClass as s, normalizeStyle as c, onBeforeUnmount as l, onMounted as u, openBlock as d, ref as f, renderList as p, renderSlot as m, unref as h, useId as g, watch as _ } from "vue";
4
4
  import { catmullRomToBezier as v, ellipsePoints as y, perturbPoints as b, perturbPointsClosed as x, pointsToLinear as S, useLineBoil as C, wobbleLinePoints as w } from "@mkbabb/pencil-boil";
5
5
  //#region src/components/custom/handmark/brush.ts
@@ -1,2 +1,2 @@
1
- import { n as e, r as t, t as n } from "./HoverCardContent-b2uaAMRR.js";
1
+ import { n as e, r as t, t as n } from "./HoverCardContent-Bel1gdLZ.js";
2
2
  export { t as HoverCard, n as HoverCardContent, e as HoverCardTrigger };
@@ -1,2 +1,2 @@
1
- import { t as e } from "./HoverPopover-CbqbNwgU.js";
1
+ import { t as e } from "./HoverPopover-BcIxvyqZ.js";
2
2
  export { e as HoverPopover };
package/dist/icon-chip.js CHANGED
@@ -1,2 +1,2 @@
1
- import { t as e } from "./IconChip-BTD-nay5.js";
1
+ import { t as e } from "./IconChip-DhbdGdFQ.js";
2
2
  export { e as IconChip };
@@ -1,2 +1,2 @@
1
- import { t as e } from "./IconTooltip-Bl8gFZ8d.js";
1
+ import { t as e } from "./IconTooltip-B0zimd2H.js";
2
2
  export { e as IconTooltip };
package/dist/index.d.ts CHANGED
@@ -38,6 +38,7 @@ export * from "./components/custom/hover-popover";
38
38
  export * from "./components/custom/configurator";
39
39
  export * from "./components/custom/scrolling-text";
40
40
  export * from "./components/custom/icon-chip";
41
+ export * from "./components/custom/split-chars";
41
42
  export * from "./composables/reactive";
42
43
  export * from "./composables/dom";
43
44
  export * from "./composables/glass";
@@ -47,4 +48,5 @@ export { vReveal } from "./composables/motion/vReveal";
47
48
  export { useTextHighlight, type HighlightMatcher, type UseTextHighlightControls, } from "./composables/motion/useTextHighlight";
48
49
  export { useLiquidFlex, type LiquidFlexAxis, type UseLiquidFlexParams, type UseLiquidFlexReturn, } from "./composables/motion/useLiquidFlex";
49
50
  export { usePointerVelocityField, type PointerVec2, type UsePointerVelocityField, type UsePointerVelocityFieldOptions, } from "./composables/motion/usePointerVelocityField";
51
+ export { useCharStagger, type UseCharStaggerOptions, type UseCharStaggerReturn, } from "./composables/motion/useCharStagger";
50
52
  export * from "./utils";
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./InstrumentChassis-Bx0F_q5g.js";
1
+ import { n as e, t } from "./InstrumentChassis-CxsHSyMj.js";
2
2
  export { e as ChassisDivider, t as InstrumentChassis };
package/dist/keyboard.js CHANGED
@@ -1,2 +1,2 @@
1
- import { a as e, i as t, n, r, t as i } from "./useKeyboardShortcuts-BXWXOZ-9.js";
1
+ import { a as e, i as t, n, r, t as i } from "./useKeyboardShortcuts-BPRp33Im.js";
2
2
  export { i as formatCombo, n as formatComboParts, r as isMac, t as registerShortcut, e as useRegisteredShortcuts };