@mkbabb/glass-ui 4.2.0 → 5.0.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 (1377) hide show
  1. package/README.md +73 -159
  2. package/dist/CardAction-2uUvjMQK.js +285 -0
  3. package/dist/CollapsibleContent-DiHcB_HH.js +63 -0
  4. package/dist/CommandShortcut-fmdbsEJL.js +302 -0
  5. package/dist/ConfiguratorRow-BV6zPjTM.js +151 -0
  6. package/dist/DataTable-Bxya8nBn.js +518 -0
  7. package/dist/DialogContent-Bl4v10AC.js +192 -0
  8. package/dist/DialogFooter-C0v4Hz2F.js +168 -0
  9. package/dist/FadingScroll-BSRLqQCx.js +76 -0
  10. package/dist/FocusScope-BzKwhsBn.js +23 -0
  11. package/dist/IconChip-CwLmBJ_K.js +57 -0
  12. package/dist/IconTooltip-D9sbK-Mk.js +25 -0
  13. package/dist/Input-DKf-XwUM.js +57 -0
  14. package/dist/InstrumentChassis-Dss5Tjcm.js +65 -0
  15. package/dist/Label-C84TaQiw.js +36 -0
  16. package/dist/Notification-DQv2cOh9.js +43 -0
  17. package/dist/NumberFieldContent-BkE7xPS9.js +140 -0
  18. package/dist/PagerDots-BP6jh7z4.js +279 -0
  19. package/dist/PaperBackdrop-BYwE8_kg.js +31 -0
  20. package/dist/PopoverContent-DOtszFWK.js +251 -0
  21. package/dist/Progress-uWLyXE7J.js +308 -0
  22. package/dist/SelectGroup-BuEptUsa.js +31 -0
  23. package/dist/SelectScrollDownButton-CDtwaWkZ.js +261 -0
  24. package/dist/SelectSeparator-4QGephvr.js +49 -0
  25. package/dist/Separator-DqJ6PfOd.js +44 -0
  26. package/dist/Surface-BWRfwyn8.js +59 -0
  27. package/dist/Switch-BPBfhMU3.js +49 -0
  28. package/dist/Toaster-C_-WeU9W.js +281 -0
  29. package/dist/ToggleGroupItem-DNWx2aSW.js +175 -0
  30. package/dist/TooltipProvider-GtfYdSVf.js +110 -0
  31. package/dist/accent-tone-solve-CBw3L0cy.js +20 -0
  32. package/dist/animated-digit.d.ts +1 -1
  33. package/dist/animated-digit.js +5 -5
  34. package/dist/aurora.d.ts +1 -1
  35. package/dist/aurora.js +1395 -398
  36. package/dist/axes.d.ts +1 -0
  37. package/dist/axes.js +50 -0
  38. package/dist/badge-C0C-rTBu.js +80 -0
  39. package/dist/badge.d.ts +1 -1
  40. package/dist/badge.js +1 -1
  41. package/dist/blob-config.d.ts +5 -0
  42. package/dist/blob-config.js +2 -0
  43. package/dist/blob.d.ts +1 -0
  44. package/dist/blob.js +1582 -0
  45. package/dist/button-BXzhydVB.js +187 -0
  46. package/dist/button.d.ts +1 -1
  47. package/dist/button.js +1 -1
  48. package/dist/canvas.js +1 -1
  49. package/dist/card.d.ts +1 -1
  50. package/dist/card.js +1 -1
  51. package/dist/carousel.d.ts +2 -2
  52. package/dist/carousel.js +165 -248
  53. package/dist/chip.d.ts +10 -0
  54. package/dist/chip.js +81 -0
  55. package/dist/class-names-5jotTFzp.js +97 -0
  56. package/dist/coalesce-metric-B8o7zT9u.js +13 -0
  57. package/dist/collapsible.d.ts +1 -1
  58. package/dist/collapsible.js +1 -1
  59. package/dist/color-Bp5jmv4Z.js +86 -0
  60. package/dist/color-swatch.d.ts +1 -1
  61. package/dist/color-swatch.js +2 -2
  62. package/dist/color.js +3 -2
  63. package/dist/command.d.ts +1 -1
  64. package/dist/command.js +1 -1
  65. package/dist/completion-seal.d.ts +1 -1
  66. package/dist/completion-seal.js +76 -42
  67. package/dist/components/_shared/axes.d.ts +21 -0
  68. package/dist/components/_shared/class-names.d.ts +27 -0
  69. package/dist/components/_shared/index.d.ts +6 -0
  70. package/dist/components/_shared/menuItemVariants.d.ts +51 -0
  71. package/dist/components/_shared/useControlSize.d.ts +46 -0
  72. package/dist/components/_shared/useMotionAxis.d.ts +41 -0
  73. package/dist/components/_shared/useSurfaceAxis.d.ts +64 -0
  74. package/dist/components/alert/Alert.vue.d.ts +19 -0
  75. package/dist/components/alert/index.d.ts +8 -0
  76. package/dist/components/aurora/Aurora.vue.d.ts +104 -0
  77. package/dist/components/aurora/composables/atoms-fields.d.ts +43 -0
  78. package/dist/components/aurora/composables/atoms.d.ts +198 -0
  79. package/dist/components/aurora/composables/auroraImageSource.d.ts +44 -0
  80. package/dist/components/aurora/composables/color.d.ts +111 -0
  81. package/dist/components/aurora/composables/frameLoop.d.ts +66 -0
  82. package/dist/components/aurora/composables/glSetup.d.ts +29 -0
  83. package/dist/components/aurora/composables/runtime.d.ts +140 -0
  84. package/dist/components/aurora/composables/uniformBridge.d.ts +120 -0
  85. package/dist/components/aurora/composables/uniformBridgeWGPU.d.ts +60 -0
  86. package/dist/components/aurora/composables/uniformBridgeWGPUImage.d.ts +39 -0
  87. package/dist/components/aurora/composables/useAurora.d.ts +80 -0
  88. package/dist/components/aurora/composables/useCursorInteraction.d.ts +25 -0
  89. package/dist/components/aurora/composables/wgpuSetup.d.ts +50 -0
  90. package/dist/components/aurora/constants/presets.d.ts +326 -0
  91. package/dist/components/aurora/constants/shaders/aurora-image.frag.d.ts +3 -0
  92. package/dist/components/aurora/constants/shaders/aurora-image.wgsl.d.ts +3 -0
  93. package/dist/components/aurora/constants/shaders/aurora-mediums.wgsl.d.ts +1 -0
  94. package/dist/components/aurora/constants/shaders/aurora.wgsl.d.ts +1 -0
  95. package/dist/components/aurora/constants/shaders/brush.glsl.d.ts +1 -0
  96. package/dist/components/aurora/constants/shaders/flow.glsl.d.ts +1 -0
  97. package/dist/components/aurora/constants/shaders/mediums.glsl.d.ts +2 -0
  98. package/dist/components/aurora/constants/shaders/metal-medium.glsl.d.ts +2 -0
  99. package/dist/components/aurora/index.d.ts +13 -0
  100. package/dist/components/avatar/Avatar.vue.d.ts +23 -0
  101. package/dist/components/avatar/index.d.ts +9 -0
  102. package/dist/components/badge/Badge.vue.d.ts +41 -0
  103. package/dist/components/badge/index.d.ts +9 -0
  104. package/dist/components/blob/Blob.vue.d.ts +72 -0
  105. package/dist/components/blob/composables/satelliteKinematics.d.ts +20 -0
  106. package/dist/components/blob/composables/uploadBlobUniforms.d.ts +51 -0
  107. package/dist/components/blob/composables/useBlobPointer.d.ts +88 -0
  108. package/dist/components/blob/composables/useMetaballRenderer.d.ts +100 -0
  109. package/dist/components/blob/composables/wgpuSetup.d.ts +23 -0
  110. package/dist/components/blob/config.d.ts +3 -0
  111. package/dist/components/blob/constants.d.ts +82 -0
  112. package/dist/components/blob/index.d.ts +8 -0
  113. package/dist/components/blob/presets.d.ts +14 -0
  114. package/dist/components/blob/shaders/metaball-uniforms.glsl.d.ts +1 -0
  115. package/dist/components/blob/types.d.ts +256 -0
  116. package/dist/components/button/Button.vue.d.ts +31 -0
  117. package/dist/components/button/index.d.ts +9 -0
  118. package/dist/components/card/Card.vue.d.ts +180 -0
  119. package/dist/components/card/CardHeader.vue.d.ts +58 -0
  120. package/dist/components/card/ScrollCard.vue.d.ts +33 -0
  121. package/dist/components/carousel/Carousel.vue.d.ts +44 -0
  122. package/dist/components/carousel/CarouselContent.vue.d.ts +24 -0
  123. package/dist/components/carousel/CarouselNext.vue.d.ts +21 -0
  124. package/dist/components/carousel/CarouselPrevious.vue.d.ts +21 -0
  125. package/dist/components/carousel/GlassCarouselPager.vue.d.ts +50 -0
  126. package/dist/components/carousel/useCarousel.d.ts +21 -0
  127. package/dist/components/chip/Chip.vue.d.ts +20 -0
  128. package/dist/components/chip/chipVariants.d.ts +43 -0
  129. package/dist/components/chip/index.d.ts +3 -0
  130. package/dist/components/chip/types.d.ts +38 -0
  131. package/dist/components/combobox/Combobox.vue.d.ts +32 -0
  132. package/dist/components/combobox/ComboboxList.vue.d.ts +32 -0
  133. package/dist/components/command/index.d.ts +10 -0
  134. package/dist/components/completion-seal/CompletionSeal.vue.d.ts +28 -0
  135. package/dist/components/completion-seal/constants.d.ts +66 -0
  136. package/dist/components/configurator/Configurator.vue.d.ts +160 -0
  137. package/dist/components/configurator/ConfiguratorRow.vue.d.ts +96 -0
  138. package/dist/components/configurator/index.d.ts +6 -0
  139. package/dist/components/configurator/size.d.ts +26 -0
  140. package/dist/components/constellation/Constellation.vue.d.ts +34 -0
  141. package/dist/components/constellation/composables/constellationGLSetup.d.ts +10 -0
  142. package/dist/components/constellation/composables/constellationWGPUSetup.d.ts +19 -0
  143. package/dist/components/constellation/composables/useConstellation.d.ts +39 -0
  144. package/dist/components/constellation/constants.d.ts +97 -0
  145. package/dist/components/constellation/constellationTypes.d.ts +420 -0
  146. package/dist/components/dialog/DialogContent.vue.d.ts +115 -0
  147. package/dist/components/dock/DockBackgroundToggle.vue.d.ts +46 -0
  148. package/dist/components/dock/DockControl.vue.d.ts +73 -0
  149. package/dist/components/dock/DockCrossfade.vue.d.ts +50 -0
  150. package/dist/components/dock/DockLayer.vue.d.ts +33 -0
  151. package/dist/components/dock/DockLayerGroup.vue.d.ts +65 -0
  152. package/dist/components/dock/DockStack.vue.d.ts +73 -0
  153. package/dist/components/dock/DockTrigger.vue.d.ts +27 -0
  154. package/dist/components/dock/GlassDock.vue.d.ts +33 -0
  155. package/dist/components/dock/composables/dockContext.d.ts +48 -0
  156. package/dist/components/dock/composables/dockCrossfadeContext.d.ts +57 -0
  157. package/dist/components/dock/composables/dockMorphContext.d.ts +89 -0
  158. package/dist/components/dock/composables/index.d.ts +10 -0
  159. package/dist/components/dock/composables/useDockFisheye.d.ts +24 -0
  160. package/dist/components/dock/composables/useDockOverflowFit.d.ts +22 -0
  161. package/dist/components/dock/composables/useDockPopover.d.ts +68 -0
  162. package/dist/components/dock/composables/useDockSearch.d.ts +85 -0
  163. package/dist/components/dock/composables/useDockShellProps.d.ts +178 -0
  164. package/dist/components/dock/composables/useDockSpring.d.ts +71 -0
  165. package/dist/components/dock/composables/useDockTouchGate.d.ts +51 -0
  166. package/dist/components/dock/constants.d.ts +107 -0
  167. package/dist/components/dock/index.d.ts +19 -0
  168. package/dist/components/drawer/Drawer.vue.d.ts +85 -0
  169. package/dist/components/drawer/DrawerContent.vue.d.ts +40 -0
  170. package/dist/components/drawer/composables/useDrawerSnap.d.ts +24 -0
  171. package/dist/components/drawer/constants.d.ts +50 -0
  172. package/dist/components/drawer/index.d.ts +35 -0
  173. package/dist/components/dropdown-menu/DropdownMenu.vue.d.ts +24 -0
  174. package/dist/components/dropdown-menu/DropdownMenuContent.vue.d.ts +36 -0
  175. package/dist/components/dropdown-menu/index.d.ts +16 -0
  176. package/dist/components/dropdown-menu/useMenuTrigger.d.ts +14 -0
  177. package/dist/components/expandable-container/ExpandableContainer.vue.d.ts +71 -0
  178. package/dist/components/fourier-field/FourierField.vue.d.ts +54 -0
  179. package/dist/components/fourier-field/composables/fourierFieldGLSetup.d.ts +24 -0
  180. package/dist/components/fourier-field/composables/fourierFieldWGPUSetup.d.ts +31 -0
  181. package/dist/components/fourier-field/composables/uniformBridgeWGPU.d.ts +41 -0
  182. package/dist/components/fourier-field/composables/useFourierField.d.ts +55 -0
  183. package/dist/components/fourier-field/constants.d.ts +134 -0
  184. package/dist/components/fourier-field/index.d.ts +31 -0
  185. package/dist/components/fourier-field/math.d.ts +111 -0
  186. package/dist/components/fourier-field/shaders/fourier-field.glsl.d.ts +4 -0
  187. package/dist/components/fourier-field/shaders/fourier-field.render.wgsl.d.ts +1 -0
  188. package/dist/components/fourier-field/shaders/fourier-field.ribbon.d.ts +51 -0
  189. package/dist/components/handmark/composables/useHandMark.d.ts +99 -0
  190. package/dist/components/handmark/constants.d.ts +69 -0
  191. package/dist/components/handmark/geometry.d.ts +65 -0
  192. package/dist/components/handmark/noise.d.ts +30 -0
  193. package/dist/components/handmark/types.d.ts +70 -0
  194. package/dist/components/header-ribbon/HeaderRibbon.vue.d.ts +31 -0
  195. package/dist/components/header-ribbon/index.d.ts +2 -0
  196. package/dist/components/header-ribbon/types.d.ts +7 -0
  197. package/dist/components/index.d.ts +36 -0
  198. package/dist/components/liquid-grid/LiquidGrid.vue.d.ts +42 -0
  199. package/dist/components/liquid-grid/composables/liquidGrid.d.ts +113 -0
  200. package/dist/components/liquid-grid/composables/liquidGridGLSetup.d.ts +18 -0
  201. package/dist/components/liquid-grid/composables/liquidGridWGPUSetup.d.ts +21 -0
  202. package/dist/components/liquid-grid/composables/uniformBridgeWGPU.d.ts +16 -0
  203. package/dist/components/liquid-grid/composables/useLiquidGrid.d.ts +31 -0
  204. package/dist/components/liquid-grid/constants.d.ts +93 -0
  205. package/dist/components/liquid-grid/index.d.ts +5 -0
  206. package/dist/components/liquid-grid/shaders/liquid-grid.glsl.d.ts +4 -0
  207. package/dist/components/liquid-grid/shaders/liquid-grid.wgsl.d.ts +1 -0
  208. package/dist/components/metric-badge/MetricBadge.vue.d.ts +40 -0
  209. package/dist/components/metric-cell/MetricCell.vue.d.ts +108 -0
  210. package/dist/components/metric-stack/MetricRow.vue.d.ts +120 -0
  211. package/dist/components/notification/Notification.vue.d.ts +16 -0
  212. package/dist/components/pager-dots/composables/usePagerWorm.d.ts +26 -0
  213. package/dist/components/pager-dots/constants.d.ts +15 -0
  214. package/dist/components/paper-backdrop/PaperBackdrop.vue.d.ts +21 -0
  215. package/dist/components/popover/Popover.vue.d.ts +54 -0
  216. package/dist/components/popover/PopoverContent.vue.d.ts +53 -0
  217. package/dist/components/popover/PopoverTrigger.vue.d.ts +16 -0
  218. package/dist/components/popover/popoverContext.d.ts +17 -0
  219. package/dist/components/progress/Progress.vue.d.ts +54 -0
  220. package/dist/components/progress/ProgressLiquid.vue.d.ts +21 -0
  221. package/dist/components/progress/index.d.ts +6 -0
  222. package/dist/components/scroll-progress-rim/ScrollProgressRim.vue.d.ts +19 -0
  223. package/dist/components/scroll-progress-rim/index.d.ts +3 -0
  224. package/dist/components/scroll-progress-rim/types.d.ts +2 -0
  225. package/dist/components/search/FuzzySearch.vue.d.ts +22 -0
  226. package/dist/components/search/SearchBar.vue.d.ts +38 -0
  227. package/dist/components/search/searchVariants.d.ts +19 -0
  228. package/dist/components/select/SelectContent.vue.d.ts +42 -0
  229. package/dist/components/slider/Slider.vue.d.ts +40 -0
  230. package/dist/components/slider/index.d.ts +46 -0
  231. package/dist/components/sortable-list/SortableHandle.vue.d.ts +19 -0
  232. package/dist/components/sortable-list/SortableItem.vue.d.ts +22 -0
  233. package/dist/components/sortable-list/SortableList.vue.d.ts +39 -0
  234. package/dist/components/sortable-list/composables/dragController.d.ts +29 -0
  235. package/dist/components/sortable-list/composables/types.d.ts +50 -0
  236. package/dist/components/sortable-list/composables/useSortable.d.ts +5 -0
  237. package/dist/components/sortable-list/context.d.ts +11 -0
  238. package/dist/components/sortable-list/index.d.ts +4 -0
  239. package/dist/components/split-chars/SplitChars.vue.d.ts +53 -0
  240. package/dist/components/stacked-icons/types.d.ts +19 -0
  241. package/dist/components/surface/Surface.vue.d.ts +45 -0
  242. package/dist/components/surface/index.d.ts +2 -0
  243. package/dist/components/tabs/SegmentedTabs.vue.d.ts +101 -0
  244. package/dist/components/tabs/composables/useEyeglassLive.d.ts +17 -0
  245. package/dist/components/tabs/composables/useTabDragMorph.d.ts +42 -0
  246. package/dist/components/tabs/composables/useTabResponsive.d.ts +43 -0
  247. package/dist/components/tabs/composables/useTabRovingFocus.d.ts +51 -0
  248. package/dist/components/tabs/constants.d.ts +1 -0
  249. package/dist/components/timeline/ContinuousMarkers.vue.d.ts +49 -0
  250. package/dist/components/timeline/GlassTimeline.vue.d.ts +114 -0
  251. package/dist/components/toast/Toast.vue.d.ts +107 -0
  252. package/dist/components/toast/index.d.ts +9 -0
  253. package/dist/components/toast/use-toast.d.ts +182 -0
  254. package/dist/components/toggle/Toggle.vue.d.ts +29 -0
  255. package/dist/components/toggle/index.d.ts +26 -0
  256. package/dist/components/watercolor-dot/prng.d.ts +5 -0
  257. package/dist/components/watercolor-dot/useWatercolorBlob.d.ts +31 -0
  258. package/dist/composables/color/accent-tone-solve.d.ts +11 -0
  259. package/dist/composables/color/index.d.ts +18 -1
  260. package/dist/composables/color/useAccentTone.d.ts +6 -8
  261. package/dist/composables/dom/useUserInvalidAria.d.ts +7 -11
  262. package/dist/composables/glass/ambientHueHistogram.d.ts +27 -0
  263. package/dist/composables/glass/backdropLuminanceSample.d.ts +56 -0
  264. package/dist/composables/glass/backdropSampleMath.d.ts +5 -0
  265. package/dist/composables/glass/textureUpload.d.ts +91 -0
  266. package/dist/composables/glass/useGlassBackdropLuminance.d.ts +27 -1
  267. package/dist/composables/glass/useSpecularPointer.d.ts +23 -4
  268. package/dist/composables/glass/useSpecularTracking.d.ts +1 -1
  269. package/dist/composables/glass/wave/waveField.d.ts +22 -1
  270. package/dist/composables/glass/wave/waveField.glsl.d.ts +1 -1
  271. package/dist/composables/glass/wave/waveField.wgsl.d.ts +1 -1
  272. package/dist/composables/glass/webgl/backingSize.d.ts +44 -0
  273. package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +36 -55
  274. package/dist/composables/glass/webgl/shaders/glass-refract.glsl.d.ts +36 -0
  275. package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +1 -1
  276. package/dist/composables/glass/webgl/visibility.d.ts +42 -0
  277. package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +5 -4
  278. package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +3 -111
  279. package/dist/composables/glass/webgpu/webgpuCanvasTypes.d.ts +96 -0
  280. package/dist/composables/glass/webgpu/webgpuDevice.d.ts +30 -0
  281. package/dist/composables/index.d.ts +1 -2
  282. package/dist/composables/motion/bloomUpField.d.ts +29 -0
  283. package/dist/composables/motion/core/index.d.ts +6 -2
  284. package/dist/composables/motion/gooBarbellGeometry.d.ts +79 -0
  285. package/dist/composables/motion/index.d.ts +1 -1
  286. package/dist/composables/motion/morphSignatures.d.ts +88 -0
  287. package/dist/composables/motion/motionTempo.d.ts +9 -0
  288. package/dist/composables/motion/pointerFieldMappings.d.ts +161 -0
  289. package/dist/composables/motion/springPresets.d.ts +17 -23
  290. package/dist/composables/motion/useDockCtaReceive.d.ts +32 -39
  291. package/dist/composables/motion/useElementMorph.d.ts +99 -0
  292. package/dist/composables/motion/useLeadTrail.d.ts +69 -0
  293. package/dist/composables/motion/useLiquidPress.d.ts +9 -0
  294. package/dist/composables/motion/useLiquidReveal.d.ts +15 -29
  295. package/dist/composables/motion/usePointerVelocityField.d.ts +59 -0
  296. package/dist/composables/motion/useRoutePointer.d.ts +41 -0
  297. package/dist/composables/motion/useSelectionGroup.d.ts +83 -0
  298. package/dist/composables/motion/useSelectionIndicator.d.ts +90 -0
  299. package/dist/composables/motion/useSpringPress.d.ts +5 -5
  300. package/dist/configurator.d.ts +1 -1
  301. package/dist/configurator.js +3 -3
  302. package/dist/constellation.d.ts +1 -1
  303. package/dist/constellation.js +292 -255
  304. package/dist/controls.d.ts +1 -1
  305. package/dist/controls.js +5 -5
  306. package/dist/createCanvasLifecycle-DlrcvWbb.js +209 -0
  307. package/dist/dark.js +1 -1
  308. package/dist/data-table.d.ts +1 -1
  309. package/dist/data-table.js +1 -1
  310. package/dist/deck.d.ts +1 -1
  311. package/dist/deck.js +6 -6
  312. package/dist/dialog.d.ts +1 -1
  313. package/dist/dialog.js +3 -4
  314. package/dist/dock.d.ts +1 -1
  315. package/dist/dock.js +1038 -1591
  316. package/dist/dockContext-d-WpJN2Z.js +13 -0
  317. package/dist/dom.js +6 -6
  318. package/dist/drawer.d.ts +1 -1
  319. package/dist/drawer.js +169 -161
  320. package/dist/dropdown-menu-DaGlVdp9.js +421 -0
  321. package/dist/dropdown-menu.d.ts +1 -1
  322. package/dist/dropdown-menu.js +1 -1
  323. package/dist/easing.d.ts +10 -1
  324. package/dist/easing.js +148 -148
  325. package/dist/expandable-container.d.ts +1 -1
  326. package/dist/expandable-container.js +85 -66
  327. package/dist/fading-scroll.d.ts +1 -1
  328. package/dist/fading-scroll.js +1 -1
  329. package/dist/focus-scope.d.ts +1 -1
  330. package/dist/focus-scope.js +2 -23
  331. package/dist/forms.d.ts +4 -3
  332. package/dist/forms.js +75 -66
  333. package/dist/fourier-field.d.ts +1 -1
  334. package/dist/fourier-field.js +608 -554
  335. package/dist/fourier-math.d.ts +7 -1
  336. package/dist/fourier-math.js +2 -2
  337. package/dist/glass-ui.css +1 -1
  338. package/dist/glass-ui.js +192 -340
  339. package/dist/handmark.d.ts +3 -1
  340. package/dist/handmark.js +179 -161
  341. package/dist/header-ribbon.d.ts +1 -1
  342. package/dist/header-ribbon.js +7 -7
  343. package/dist/icon-chip.d.ts +1 -1
  344. package/dist/icon-chip.js +1 -1
  345. package/dist/icon-tooltip.d.ts +1 -1
  346. package/dist/icon-tooltip.js +1 -1
  347. package/dist/index.d.ts +42 -45
  348. package/dist/infinite-scroll.d.ts +2 -2
  349. package/dist/infinite-scroll.js +2 -2
  350. package/dist/instrument-chassis.d.ts +1 -1
  351. package/dist/instrument-chassis.js +1 -1
  352. package/dist/keyboard.js +1 -1
  353. package/dist/label.d.ts +1 -1
  354. package/dist/label.js +1 -1
  355. package/dist/labeled-field.d.ts +1 -1
  356. package/dist/labeled-field.js +13 -13
  357. package/dist/liquid-grid.d.ts +1 -0
  358. package/dist/liquid-grid.js +1064 -0
  359. package/dist/math-CIEcwsYi.js +112 -0
  360. package/dist/menuItemVariants-DbO-Fr74.js +36 -0
  361. package/dist/metric-badge.d.ts +1 -1
  362. package/dist/metric-badge.js +79 -2
  363. package/dist/metric-cell.d.ts +1 -1
  364. package/dist/metric-cell.js +9 -9
  365. package/dist/metric-stack.d.ts +1 -1
  366. package/dist/metric-stack.js +23 -23
  367. package/dist/motion-core.js +48 -42
  368. package/dist/motion-curves.d.ts +20 -0
  369. package/dist/motion-curves.js +2 -2
  370. package/dist/motion.js +94 -210
  371. package/dist/motionTempo-CMS5b0Vu.js +7 -0
  372. package/dist/notification.d.ts +1 -1
  373. package/dist/notification.js +1 -1
  374. package/dist/number-field.d.ts +1 -1
  375. package/dist/number-field.js +1 -1
  376. package/dist/pager-dots.d.ts +1 -1
  377. package/dist/pager-dots.js +1 -1
  378. package/dist/paper-backdrop.d.ts +1 -1
  379. package/dist/paper-backdrop.js +1 -1
  380. package/dist/pointerFieldMappings-4VtmkOWv.js +65 -0
  381. package/dist/popover.d.ts +1 -1
  382. package/dist/popover.js +1 -1
  383. package/dist/presets-B07HzyKd.js +95 -0
  384. package/dist/prng-B0PLRmR6.js +15 -0
  385. package/dist/progress.d.ts +1 -1
  386. package/dist/progress.js +2 -2
  387. package/dist/pulse.d.ts +1 -1
  388. package/dist/pulse.js +4 -4
  389. package/dist/reactive.js +2 -2
  390. package/dist/resolveCanvasColor-B3L-akX0.js +93 -0
  391. package/dist/scroll-progress-rim.d.ts +1 -0
  392. package/dist/scroll-progress-rim.js +61 -0
  393. package/dist/search.d.ts +1 -1
  394. package/dist/search.js +123 -123
  395. package/dist/select.d.ts +1 -1
  396. package/dist/select.js +3 -3
  397. package/dist/separator.d.ts +1 -1
  398. package/dist/separator.js +1 -1
  399. package/dist/sidebar.js +1 -1
  400. package/dist/slider-Cxuj_W_H.js +151 -0
  401. package/dist/slider.d.ts +1 -1
  402. package/dist/slider.js +1 -1
  403. package/dist/sortable-list.d.ts +1 -1
  404. package/dist/sortable-list.js +384 -59
  405. package/dist/spa-view.d.ts +1 -1
  406. package/dist/spa-view.js +1 -1
  407. package/dist/springPresets-h5VKJQqG.js +58 -0
  408. package/dist/stacked-icons.d.ts +1 -1
  409. package/dist/stacked-icons.js +6 -6
  410. package/dist/status-dot.d.ts +1 -1
  411. package/dist/status-dot.js +2 -2
  412. package/dist/styles/animations.css +1 -409
  413. package/dist/styles/card-scroll.css +1 -0
  414. package/dist/styles/cards.css +1 -448
  415. package/dist/styles/completion-seal.css +1 -131
  416. package/dist/styles/components.css +1 -45
  417. package/dist/styles/configurator.css +1 -297
  418. package/dist/styles/dialog-placement.css +1 -0
  419. package/dist/styles/dock/adaptive-legibility.css +1 -119
  420. package/dist/styles/dock/crossfade.css +1 -0
  421. package/dist/styles/dock/cta-seat.css +1 -87
  422. package/dist/styles/dock/density.css +1 -455
  423. package/dist/styles/dock/dock.css +1 -0
  424. package/dist/styles/dock/fisheye.css +1 -0
  425. package/dist/styles/dock/layer-group.css +1 -333
  426. package/dist/styles/dock/layers.css +1 -413
  427. package/dist/styles/dock/morph.css +1 -430
  428. package/dist/styles/dock/overflow.css +1 -292
  429. package/dist/styles/dock/popover.css +1 -0
  430. package/dist/styles/dock/search.css +1 -68
  431. package/dist/styles/dock/section.css +1 -59
  432. package/dist/styles/dock/shape.css +1 -250
  433. package/dist/styles/dock/shell-regions.css +1 -0
  434. package/dist/styles/dock/shell.css +1 -498
  435. package/dist/styles/dock-controls/dark-mode-toggle.css +1 -122
  436. package/dist/styles/dock-controls/icon-button.css +1 -189
  437. package/dist/styles/dock-controls/tab-button.css +1 -143
  438. package/dist/styles/dock-controls/touch-floor.css +1 -94
  439. package/dist/styles/dock-controls/triggers.css +1 -157
  440. package/dist/styles/dock-controls.css +1 -92
  441. package/dist/styles/dock.css +1 -173
  442. package/dist/styles/draw-in.css +1 -0
  443. package/dist/styles/drawer.css +1 -406
  444. package/dist/styles/feedback-tone.css +1 -104
  445. package/dist/styles/fonts.css +1 -143
  446. package/dist/styles/glass/a11y-fallback.css +1 -245
  447. package/dist/styles/glass/accent-tone.css +1 -66
  448. package/dist/styles/glass/control-surfaces.css +1 -167
  449. package/dist/styles/glass/deep.css +1 -44
  450. package/dist/styles/glass/defined.css +1 -0
  451. package/dist/styles/glass/glass-atom.css +1 -244
  452. package/dist/styles/glass/glass-capsule.css +1 -143
  453. package/dist/styles/glass/glass-chip.css +1 -215
  454. package/dist/styles/glass/grain-overlay.css +1 -0
  455. package/dist/styles/glass/ladder-undershadow.css +1 -0
  456. package/dist/styles/glass/ladder.css +1 -489
  457. package/dist/styles/glass/liquid-enter.css +1 -252
  458. package/dist/styles/glass/liquid-fill.css +1 -0
  459. package/dist/styles/glass/material.css +1 -370
  460. package/dist/styles/glass/progress-rail.css +1 -78
  461. package/dist/styles/glass/reveal.css +1 -156
  462. package/dist/styles/glass/rim.css +1 -122
  463. package/dist/styles/glass/squircle.css +1 -66
  464. package/dist/styles/glass/surface-axis.css +1 -113
  465. package/dist/styles/glass/surfaces-pager.css +1 -0
  466. package/dist/styles/glass/surfaces.css +1 -411
  467. package/dist/styles/glass-refract.css +1 -114
  468. package/dist/styles/glass-specular-track.css +1 -74
  469. package/dist/styles/glass.css +1 -77
  470. package/dist/styles/icon-chip.css +1 -256
  471. package/dist/styles/index.css +1 -260
  472. package/dist/styles/instrument-chassis.css +1 -453
  473. package/dist/styles/menu.css +1 -127
  474. package/dist/styles/paper.css +1 -284
  475. package/dist/styles/scroll-choreography.css +1 -357
  476. package/dist/styles/scroll-chrome.css +1 -123
  477. package/dist/styles/scroll-driven.css +1 -110
  478. package/dist/styles/scroll-progress-rim.css +1 -0
  479. package/dist/styles/segmented-tabs.css +1 -447
  480. package/dist/styles/select.css +1 -201
  481. package/dist/styles/tabs/segmented-tabs-drag.css +1 -0
  482. package/dist/styles/theme/bridges.css +1 -380
  483. package/dist/styles/theme/dark.css +1 -7
  484. package/dist/styles/theme/literals.css +1 -103
  485. package/dist/styles/theme/radius.css +1 -117
  486. package/dist/styles/theme.css +1 -33
  487. package/dist/styles/tokens/color-radius.css +1 -297
  488. package/dist/styles/tokens/dark-arm-glass.css +1 -0
  489. package/dist/styles/tokens/dark-arm.css +1 -462
  490. package/dist/styles/tokens/glass-deep.css +1 -104
  491. package/dist/styles/tokens/glass-fx.css +1 -454
  492. package/dist/styles/tokens/glass.css +1 -412
  493. package/dist/styles/tokens/light-dark.css +1 -200
  494. package/dist/styles/tokens/motion-registers.css +1 -0
  495. package/dist/styles/tokens/offsets.css +1 -143
  496. package/dist/styles/tokens/on-glass-fg.css +1 -39
  497. package/dist/styles/tokens/property-regs-specular.css +1 -0
  498. package/dist/styles/tokens/property-regs.css +1 -566
  499. package/dist/styles/tokens/scale-paper.css +1 -493
  500. package/dist/styles/tokens/scheme-motion.css +1 -363
  501. package/dist/styles/tokens/scheme-spring.css +1 -239
  502. package/dist/styles/tokens/scroll-tokens.css +1 -123
  503. package/dist/styles/tokens/shadow.css +1 -226
  504. package/dist/styles/tokens/sizing-config.css +1 -110
  505. package/dist/styles/tokens/sizing.css +1 -450
  506. package/dist/styles/tokens.css +1 -52
  507. package/dist/styles/transitions.css +1 -263
  508. package/dist/styles/typography/scale.css +1 -153
  509. package/dist/styles/typography/semantic.css +1 -233
  510. package/dist/styles/typography/utilities.css +1 -174
  511. package/dist/styles/typography.css +1 -46
  512. package/dist/styles/utilities/a11y-overrides.css +1 -184
  513. package/dist/styles/utilities/animate.css +0 -29
  514. package/dist/styles/utilities/base-misc.css +1 -307
  515. package/dist/styles/utilities/base.css +1 -327
  516. package/dist/styles/utilities/btn.css +1 -301
  517. package/dist/styles/utilities/components.css +1 -342
  518. package/dist/styles/utilities/metal.css +1 -215
  519. package/dist/styles/utilities.css +1 -26
  520. package/dist/styles/view-transition.css +1 -67
  521. package/dist/styles/viz-reveal.css +1 -0
  522. package/dist/surface.d.ts +1 -0
  523. package/dist/surface.js +3 -0
  524. package/dist/switch.d.ts +1 -1
  525. package/dist/switch.js +1 -1
  526. package/dist/tabs.d.ts +1 -1
  527. package/dist/tabs.js +189 -249
  528. package/dist/timeline.d.ts +1 -1
  529. package/dist/timeline.js +199 -183
  530. package/dist/toast.d.ts +1 -1
  531. package/dist/toast.js +1 -1
  532. package/dist/toggle-group.d.ts +1 -1
  533. package/dist/toggle-group.js +1 -1
  534. package/dist/tooltip.d.ts +1 -1
  535. package/dist/tooltip.js +1 -1
  536. package/dist/typewriter.d.ts +1 -1
  537. package/dist/typewriter.js +8 -8
  538. package/dist/useAccentTone-D25DxviG.js +23 -0
  539. package/dist/useAnimatedNumber-2XC4aRB6.js +40 -0
  540. package/dist/useConfiguratorState-Dq35N_7t.js +167 -0
  541. package/dist/useControlSize-DJwe-7ZQ.js +9 -0
  542. package/dist/useDockCtaReceive-BgMmeINo.js +161 -0
  543. package/dist/useDocumentVisibility-CpJGUgcJ.js +17 -0
  544. package/dist/useDragMorph-65ihHePq.js +93 -0
  545. package/dist/useFuzzySearch-KslRxiJY.js +177 -0
  546. package/dist/useGooMorph-CU1pwuC6.js +268 -0
  547. package/dist/useGpuSubstrate-DcY584kE.js +347 -0
  548. package/dist/useIntersectionPause-Cmt5Tnv9.js +39 -0
  549. package/dist/useKeyboardShortcuts-ynVmNFo3.js +104 -0
  550. package/dist/useLeadTrail-DOH4XkL1.js +74 -0
  551. package/dist/useLiquidPress-BXNHydZh.js +40 -0
  552. package/dist/useMotionAxis-DCCXMC-i.js +20 -0
  553. package/dist/usePointerVelocityField-CwXyeW0Z.js +122 -0
  554. package/dist/useRAFLoop-CvOo_kgb.js +109 -0
  555. package/dist/useRoutePointer-DL7I0gY4.js +52 -0
  556. package/dist/useScrollProgress-C-yImzhU.js +35 -0
  557. package/dist/useSelectionGroup-Btpf24aY.js +215 -0
  558. package/dist/useSpring-BBSKFx_0.js +41 -0
  559. package/dist/useSpringMount-CNvvgGiC.js +71 -0
  560. package/dist/useSpringPress-BypV_KO-.js +36 -0
  561. package/dist/useSurfaceAxis-DudiZVOR.js +10 -0
  562. package/dist/useTabRovingFocus-CG1H1k1J.js +143 -0
  563. package/dist/useTouchGate-BlegwvwL.js +84 -0
  564. package/dist/useUserInvalidAria-Bkruei7M.js +25 -0
  565. package/dist/watercolor-dot.d.ts +1 -1
  566. package/dist/watercolor-dot.js +52 -50
  567. package/package.json +386 -827
  568. package/src/styles/animations.css +82 -23
  569. package/src/styles/card-scroll.css +189 -0
  570. package/src/styles/cards.css +45 -6
  571. package/src/styles/completion-seal.css +75 -1
  572. package/src/styles/configurator.css +63 -1
  573. package/src/styles/dialog-placement.css +68 -0
  574. package/src/styles/dock/adaptive-legibility.css +1 -1
  575. package/src/styles/dock/crossfade.css +139 -0
  576. package/src/styles/dock/density.css +16 -13
  577. package/src/styles/dock/dock.css +199 -0
  578. package/src/styles/dock/fisheye.css +81 -0
  579. package/src/styles/dock/layer-group.css +37 -41
  580. package/src/styles/dock/layers.css +46 -21
  581. package/src/styles/dock/morph.css +41 -16
  582. package/src/styles/dock/overflow.css +107 -67
  583. package/src/styles/dock/popover.css +249 -0
  584. package/src/styles/dock/shape.css +77 -139
  585. package/src/styles/dock/shell-regions.css +73 -0
  586. package/src/styles/dock/shell.css +159 -157
  587. package/src/styles/dock-controls/dark-mode-toggle.css +3 -2
  588. package/src/styles/dock-controls/icon-button.css +43 -11
  589. package/src/styles/dock-controls/tab-button.css +2 -2
  590. package/src/styles/dock-controls/touch-floor.css +25 -0
  591. package/src/styles/dock.css +60 -14
  592. package/src/styles/draw-in.css +89 -0
  593. package/src/styles/drawer.css +77 -41
  594. package/src/styles/glass/a11y-fallback.css +19 -76
  595. package/src/styles/glass/control-surfaces.css +20 -16
  596. package/src/styles/glass/deep.css +74 -4
  597. package/src/styles/glass/defined.css +88 -0
  598. package/src/styles/glass/glass-atom.css +23 -20
  599. package/src/styles/glass/glass-capsule.css +32 -0
  600. package/src/styles/glass/glass-chip.css +13 -17
  601. package/src/styles/glass/grain-overlay.css +79 -0
  602. package/src/styles/glass/ladder-undershadow.css +61 -0
  603. package/src/styles/glass/ladder.css +96 -133
  604. package/src/styles/glass/liquid-enter.css +12 -24
  605. package/src/styles/glass/liquid-fill.css +65 -0
  606. package/src/styles/glass/material.css +134 -10
  607. package/src/styles/glass/reveal.css +197 -20
  608. package/src/styles/glass/squircle.css +18 -26
  609. package/src/styles/glass/surface-axis.css +24 -1
  610. package/src/styles/glass/surfaces-pager.css +79 -0
  611. package/src/styles/glass/surfaces.css +121 -98
  612. package/src/styles/glass.css +34 -1
  613. package/src/styles/index.css +54 -26
  614. package/src/styles/menu.css +66 -6
  615. package/src/styles/paper.css +105 -202
  616. package/src/styles/scroll-choreography.css +29 -92
  617. package/src/styles/scroll-driven.css +18 -5
  618. package/src/styles/scroll-progress-rim.css +87 -0
  619. package/src/styles/segmented-tabs.css +67 -88
  620. package/src/styles/tabs/segmented-tabs-drag.css +200 -0
  621. package/src/styles/theme/bridges.css +8 -2
  622. package/src/styles/theme/literals.css +2 -1
  623. package/src/styles/theme/radius.css +43 -12
  624. package/src/styles/tokens/color-radius.css +15 -4
  625. package/src/styles/tokens/dark-arm-glass.css +55 -0
  626. package/src/styles/tokens/dark-arm.css +62 -69
  627. package/src/styles/tokens/glass-deep.css +102 -80
  628. package/src/styles/tokens/glass-fx.css +35 -5
  629. package/src/styles/tokens/glass.css +144 -78
  630. package/src/styles/tokens/light-dark.css +20 -4
  631. package/src/styles/tokens/motion-registers.css +93 -0
  632. package/src/styles/tokens/property-regs-specular.css +160 -0
  633. package/src/styles/tokens/property-regs.css +67 -186
  634. package/src/styles/tokens/scale-paper.css +6 -3
  635. package/src/styles/tokens/scheme-motion.css +59 -0
  636. package/src/styles/tokens/scheme-spring.css +146 -93
  637. package/src/styles/tokens/scroll-tokens.css +25 -11
  638. package/src/styles/tokens/shadow.css +28 -22
  639. package/src/styles/tokens/sizing.css +62 -7
  640. package/src/styles/tokens.css +16 -0
  641. package/src/styles/transitions.css +108 -143
  642. package/src/styles/typography/scale.css +10 -0
  643. package/src/styles/typography/semantic.css +5 -5
  644. package/src/styles/typography/utilities.css +25 -2
  645. package/src/styles/utilities/a11y-overrides.css +2 -2
  646. package/src/styles/utilities/base.css +13 -3
  647. package/src/styles/utilities/btn.css +29 -3
  648. package/src/styles/utilities/components.css +16 -21
  649. package/src/styles/utilities/metal.css +86 -29
  650. package/src/styles/viz-reveal.css +63 -0
  651. package/dist/CardAction-DlVP2evz.js +0 -272
  652. package/dist/CollapsibleContent-D7UNsXQr.js +0 -63
  653. package/dist/CommandShortcut-By-VQcLO.js +0 -302
  654. package/dist/ConfiguratorRow-YMXdINHx.js +0 -143
  655. package/dist/ContextMenuContent-CMWn6huB.js +0 -90
  656. package/dist/ContextMenuSubContent-DvwWCUc0.js +0 -245
  657. package/dist/DataTable-C4tG3eIJ.js +0 -512
  658. package/dist/DialogContent-D8U9ZfWS.js +0 -121
  659. package/dist/DialogFooter-DoLy0ewI.js +0 -80
  660. package/dist/DialogScrollContent-BMekN7gq.js +0 -93
  661. package/dist/FadingScroll-P8B30rAD.js +0 -76
  662. package/dist/HoverCardContent-DAmGYglo.js +0 -88
  663. package/dist/HoverPopover-DYpBOzzF.js +0 -96
  664. package/dist/IconChip-CQa7XZYc.js +0 -57
  665. package/dist/IconTooltip-_df8M3xm.js +0 -25
  666. package/dist/Input-CyU4_hIC.js +0 -57
  667. package/dist/InstrumentChassis-UUJX0-mW.js +0 -65
  668. package/dist/Label-B_HPqi_q.js +0 -36
  669. package/dist/MetricBadge-DQt_dGah.js +0 -79
  670. package/dist/ModalOverlay-DfAf7o15.js +0 -53
  671. package/dist/Notification-BlSPJhtZ.js +0 -43
  672. package/dist/NumberFieldContent-Z3VxGu_6.js +0 -140
  673. package/dist/PagerDots-CYlqVFd4.js +0 -196
  674. package/dist/PaperBackdrop-DYWgrnh8.js +0 -42
  675. package/dist/PopoverContent-BuKyHZSz.js +0 -127
  676. package/dist/Progress-C9SsdwIZ.js +0 -274
  677. package/dist/ScrollingText-DY3W1Jfh.js +0 -40
  678. package/dist/SelectGroup-Dcczq44n.js +0 -31
  679. package/dist/SelectScrollDownButton-3mFHX_R-.js +0 -260
  680. package/dist/SelectSeparator-CNRGG7Ew.js +0 -49
  681. package/dist/Separator-Cf9-JFgi.js +0 -44
  682. package/dist/Switch-uf-UKPA2.js +0 -49
  683. package/dist/Toaster-ozrsR4mP.js +0 -274
  684. package/dist/ToggleGroupItem-BpzaVzNm.js +0 -170
  685. package/dist/TooltipProvider-QQVM_80r.js +0 -109
  686. package/dist/api/index.d.ts +0 -34
  687. package/dist/api/types-extra.d.ts +0 -39
  688. package/dist/api.js +0 -2
  689. package/dist/badge-Bt14yURi.js +0 -72
  690. package/dist/border-progress.d.ts +0 -1
  691. package/dist/border-progress.js +0 -98
  692. package/dist/button-D1W9PrzI.js +0 -130
  693. package/dist/chipVariants-BJQ0I2kB.js +0 -18
  694. package/dist/cn-DJXf4yaB.js +0 -97
  695. package/dist/coalesceMetric-5qIeZnTx.js +0 -13
  696. package/dist/color-B9jZdhJX.js +0 -116
  697. package/dist/components/custom/aurora/Aurora.vue.d.ts +0 -101
  698. package/dist/components/custom/aurora/composables/atoms-fields.d.ts +0 -39
  699. package/dist/components/custom/aurora/composables/atoms.d.ts +0 -142
  700. package/dist/components/custom/aurora/composables/color.d.ts +0 -93
  701. package/dist/components/custom/aurora/composables/cursorModel.d.ts +0 -78
  702. package/dist/components/custom/aurora/composables/frameLoop.d.ts +0 -39
  703. package/dist/components/custom/aurora/composables/glSetup.d.ts +0 -29
  704. package/dist/components/custom/aurora/composables/runtime.d.ts +0 -127
  705. package/dist/components/custom/aurora/composables/uniformBridge.d.ts +0 -100
  706. package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +0 -60
  707. package/dist/components/custom/aurora/composables/useAurora.d.ts +0 -86
  708. package/dist/components/custom/aurora/composables/useCursorInteraction.d.ts +0 -33
  709. package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +0 -37
  710. package/dist/components/custom/aurora/constants/presets.d.ts +0 -258
  711. package/dist/components/custom/aurora/constants/shaders/aurora-mediums.wgsl.d.ts +0 -1
  712. package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +0 -1
  713. package/dist/components/custom/aurora/constants/shaders/brush.glsl.d.ts +0 -1
  714. package/dist/components/custom/aurora/constants/shaders/flow.glsl.d.ts +0 -1
  715. package/dist/components/custom/aurora/constants/shaders/mediums.glsl.d.ts +0 -2
  716. package/dist/components/custom/aurora/index.d.ts +0 -13
  717. package/dist/components/custom/border-progress/BorderProgress.vue.d.ts +0 -46
  718. package/dist/components/custom/border-progress/composables/spectrum-walk.d.ts +0 -25
  719. package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +0 -18
  720. package/dist/components/custom/border-progress/constants.d.ts +0 -59
  721. package/dist/components/custom/border-progress/index.d.ts +0 -4
  722. package/dist/components/custom/completion-seal/CompletionSeal.vue.d.ts +0 -21
  723. package/dist/components/custom/completion-seal/constants.d.ts +0 -46
  724. package/dist/components/custom/concentric/Concentric.vue.d.ts +0 -42
  725. package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +0 -23
  726. package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +0 -26
  727. package/dist/components/custom/concentric/composables/levelField.d.ts +0 -50
  728. package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +0 -17
  729. package/dist/components/custom/concentric/composables/useConcentric.d.ts +0 -35
  730. package/dist/components/custom/concentric/constants.d.ts +0 -88
  731. package/dist/components/custom/concentric/index.d.ts +0 -5
  732. package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +0 -4
  733. package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +0 -1
  734. package/dist/components/custom/configurator/Configurator.vue.d.ts +0 -160
  735. package/dist/components/custom/configurator/ConfiguratorRow.vue.d.ts +0 -79
  736. package/dist/components/custom/configurator/density.d.ts +0 -25
  737. package/dist/components/custom/configurator/index.d.ts +0 -6
  738. package/dist/components/custom/confirm-dialog/ConfirmDialog.vue.d.ts +0 -32
  739. package/dist/components/custom/confirm-dialog/index.d.ts +0 -1
  740. package/dist/components/custom/constellation/Constellation.vue.d.ts +0 -33
  741. package/dist/components/custom/constellation/composables/constellationGLSetup.d.ts +0 -10
  742. package/dist/components/custom/constellation/composables/constellationWGPUSetup.d.ts +0 -19
  743. package/dist/components/custom/constellation/composables/useConstellation.d.ts +0 -19
  744. package/dist/components/custom/constellation/constants.d.ts +0 -94
  745. package/dist/components/custom/constellation/constellationTypes.d.ts +0 -407
  746. package/dist/components/custom/dock/DockBackgroundToggle.vue.d.ts +0 -46
  747. package/dist/components/custom/dock/DockDropdownTrigger.vue.d.ts +0 -30
  748. package/dist/components/custom/dock/DockIconButton.vue.d.ts +0 -72
  749. package/dist/components/custom/dock/DockLayer.vue.d.ts +0 -34
  750. package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +0 -51
  751. package/dist/components/custom/dock/DockPopoverTrigger.vue.d.ts +0 -19
  752. package/dist/components/custom/dock/DockSelectTrigger.vue.d.ts +0 -29
  753. package/dist/components/custom/dock/DockStack.vue.d.ts +0 -78
  754. package/dist/components/custom/dock/DockTabButton.vue.d.ts +0 -39
  755. package/dist/components/custom/dock/GlassDock.vue.d.ts +0 -47
  756. package/dist/components/custom/dock/composables/dockContext.d.ts +0 -47
  757. package/dist/components/custom/dock/composables/dockLayerContext.d.ts +0 -36
  758. package/dist/components/custom/dock/composables/dockMorphContext.d.ts +0 -79
  759. package/dist/components/custom/dock/composables/index.d.ts +0 -14
  760. package/dist/components/custom/dock/composables/railProjection.d.ts +0 -45
  761. package/dist/components/custom/dock/composables/useDockContextSilhouette.d.ts +0 -192
  762. package/dist/components/custom/dock/composables/useDockFission.d.ts +0 -158
  763. package/dist/components/custom/dock/composables/useDockItemDrag.d.ts +0 -18
  764. package/dist/components/custom/dock/composables/useDockMorphWindow.d.ts +0 -15
  765. package/dist/components/custom/dock/composables/useDockOrientationMorph.d.ts +0 -44
  766. package/dist/components/custom/dock/composables/useDockSearch.d.ts +0 -85
  767. package/dist/components/custom/dock/composables/useDockShellProps.d.ts +0 -214
  768. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +0 -90
  769. package/dist/components/custom/dock/constants.d.ts +0 -98
  770. package/dist/components/custom/dock/index.d.ts +0 -24
  771. package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +0 -42
  772. package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +0 -104
  773. package/dist/components/custom/dot-flow-field/composables/flowGLProgram.d.ts +0 -8
  774. package/dist/components/custom/dot-flow-field/composables/flowSetupGL.d.ts +0 -9
  775. package/dist/components/custom/dot-flow-field/composables/flowSetupGLFlow.d.ts +0 -12
  776. package/dist/components/custom/dot-flow-field/composables/flowSetupWGPU.d.ts +0 -7
  777. package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +0 -65
  778. package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +0 -35
  779. package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +0 -32
  780. package/dist/components/custom/dot-flow-field/constants.d.ts +0 -120
  781. package/dist/components/custom/dot-flow-field/index.d.ts +0 -5
  782. package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +0 -1
  783. package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +0 -33
  784. package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +0 -2
  785. package/dist/components/custom/dot-matrix/DotMatrix.vue.d.ts +0 -43
  786. package/dist/components/custom/dot-matrix/composables/dotMatrixField.d.ts +0 -89
  787. package/dist/components/custom/dot-matrix/composables/uniformBridgeWGPU.d.ts +0 -61
  788. package/dist/components/custom/dot-matrix/composables/useDotMatrix.d.ts +0 -34
  789. package/dist/components/custom/dot-matrix/composables/useDotSphere.d.ts +0 -34
  790. package/dist/components/custom/dot-matrix/constants.d.ts +0 -72
  791. package/dist/components/custom/dot-matrix/index.d.ts +0 -5
  792. package/dist/components/custom/dot-matrix/shaders/dot-matrix.glsl.d.ts +0 -4
  793. package/dist/components/custom/dot-matrix/shaders/dot-matrix.wgsl.d.ts +0 -1
  794. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +0 -71
  795. package/dist/components/custom/fourier-field/FourierField.vue.d.ts +0 -58
  796. package/dist/components/custom/fourier-field/composables/fourierFieldGLSetup.d.ts +0 -24
  797. package/dist/components/custom/fourier-field/composables/fourierFieldWGPUSetup.d.ts +0 -31
  798. package/dist/components/custom/fourier-field/composables/uniformBridgeWGPU.d.ts +0 -56
  799. package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +0 -63
  800. package/dist/components/custom/fourier-field/constants.d.ts +0 -117
  801. package/dist/components/custom/fourier-field/index.d.ts +0 -31
  802. package/dist/components/custom/fourier-field/math.d.ts +0 -86
  803. package/dist/components/custom/fourier-field/shaders/fourier-field.glsl.d.ts +0 -4
  804. package/dist/components/custom/fourier-field/shaders/fourier-field.render.wgsl.d.ts +0 -1
  805. package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +0 -49
  806. package/dist/components/custom/glass-panel/index.d.ts +0 -2
  807. package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +0 -71
  808. package/dist/components/custom/goo-blob/composables/uploadBlobUniforms.d.ts +0 -41
  809. package/dist/components/custom/goo-blob/composables/useBlobPointer.d.ts +0 -62
  810. package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +0 -69
  811. package/dist/components/custom/goo-blob/composables/wgpuSetup.d.ts +0 -23
  812. package/dist/components/custom/goo-blob/constants.d.ts +0 -82
  813. package/dist/components/custom/goo-blob/index.d.ts +0 -7
  814. package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +0 -1
  815. package/dist/components/custom/goo-blob/types.d.ts +0 -244
  816. package/dist/components/custom/goo-dot-matrix/GooDotMatrix.vue.d.ts +0 -49
  817. package/dist/components/custom/goo-dot-matrix/composables/gooDotLattice.d.ts +0 -24
  818. package/dist/components/custom/goo-dot-matrix/composables/gooDotSetup.d.ts +0 -79
  819. package/dist/components/custom/goo-dot-matrix/composables/uniformBridgeWGPU.d.ts +0 -45
  820. package/dist/components/custom/goo-dot-matrix/composables/useGooDotMatrix.d.ts +0 -31
  821. package/dist/components/custom/goo-dot-matrix/constants.d.ts +0 -115
  822. package/dist/components/custom/goo-dot-matrix/index.d.ts +0 -5
  823. package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.frag.d.ts +0 -13
  824. package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.wgsl.d.ts +0 -4
  825. package/dist/components/custom/handmark/composables/useHandMark.d.ts +0 -89
  826. package/dist/components/custom/handmark/constants.d.ts +0 -59
  827. package/dist/components/custom/handmark/geometry.d.ts +0 -85
  828. package/dist/components/custom/handmark/types.d.ts +0 -62
  829. package/dist/components/custom/header-ribbon/HeaderRibbon.vue.d.ts +0 -31
  830. package/dist/components/custom/header-ribbon/index.d.ts +0 -2
  831. package/dist/components/custom/header-ribbon/types.d.ts +0 -7
  832. package/dist/components/custom/hover-popover/HoverPopover.vue.d.ts +0 -132
  833. package/dist/components/custom/hover-popover/index.d.ts +0 -1
  834. package/dist/components/custom/metric-badge/MetricBadge.vue.d.ts +0 -40
  835. package/dist/components/custom/metric-cell/MetricCell.vue.d.ts +0 -108
  836. package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +0 -120
  837. package/dist/components/custom/paper-backdrop/PaperBackdrop.vue.d.ts +0 -39
  838. package/dist/components/custom/paper-grid/PaperGrid.vue.d.ts +0 -42
  839. package/dist/components/custom/paper-grid/composables/paperGrid.d.ts +0 -105
  840. package/dist/components/custom/paper-grid/composables/paperGridGLSetup.d.ts +0 -18
  841. package/dist/components/custom/paper-grid/composables/paperGridWGPUSetup.d.ts +0 -21
  842. package/dist/components/custom/paper-grid/composables/uniformBridgeWGPU.d.ts +0 -16
  843. package/dist/components/custom/paper-grid/composables/usePaperGrid.d.ts +0 -31
  844. package/dist/components/custom/paper-grid/constants.d.ts +0 -95
  845. package/dist/components/custom/paper-grid/index.d.ts +0 -5
  846. package/dist/components/custom/paper-grid/shaders/paper-grid.glsl.d.ts +0 -4
  847. package/dist/components/custom/paper-grid/shaders/paper-grid.wgsl.d.ts +0 -1
  848. package/dist/components/custom/scrolling-text/ScrollingText.vue.d.ts +0 -20
  849. package/dist/components/custom/scrolling-text/index.d.ts +0 -1
  850. package/dist/components/custom/search/FuzzySearch.vue.d.ts +0 -22
  851. package/dist/components/custom/search/SearchBar.vue.d.ts +0 -38
  852. package/dist/components/custom/search/searchVariants.d.ts +0 -19
  853. package/dist/components/custom/selectable-chip/SelectableChip.vue.d.ts +0 -50
  854. package/dist/components/custom/selectable-chip/chipVariants.d.ts +0 -39
  855. package/dist/components/custom/selectable-chip/index.d.ts +0 -2
  856. package/dist/components/custom/selectable-chip/selectableChipVariants.d.ts +0 -15
  857. package/dist/components/custom/sortable-list/SortableHandle.vue.d.ts +0 -38
  858. package/dist/components/custom/sortable-list/SortableItem.vue.d.ts +0 -38
  859. package/dist/components/custom/sortable-list/SortableList.vue.d.ts +0 -76
  860. package/dist/components/custom/sortable-list/context.d.ts +0 -25
  861. package/dist/components/custom/sortable-list/index.d.ts +0 -4
  862. package/dist/components/custom/split-chars/SplitChars.vue.d.ts +0 -39
  863. package/dist/components/custom/stacked-icons/types.d.ts +0 -18
  864. package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +0 -99
  865. package/dist/components/custom/tabs/composables/useTabDragMorph.d.ts +0 -42
  866. package/dist/components/custom/tabs/composables/useTabIndicator.d.ts +0 -58
  867. package/dist/components/custom/tabs/constants.d.ts +0 -44
  868. package/dist/components/custom/timeline/ContinuousMarkers.vue.d.ts +0 -49
  869. package/dist/components/custom/timeline/GlassTimeline.vue.d.ts +0 -114
  870. package/dist/components/custom/toggle-chip/ToggleChip.vue.d.ts +0 -41
  871. package/dist/components/custom/toggle-chip/index.d.ts +0 -28
  872. package/dist/components/custom/watercolor-dot/prng.d.ts +0 -5
  873. package/dist/components/custom/watercolor-dot/useWatercolorBlob.d.ts +0 -29
  874. package/dist/components/ui/_shared/index.d.ts +0 -6
  875. package/dist/components/ui/_shared/menuItemVariants.d.ts +0 -51
  876. package/dist/components/ui/_shared/useControlSize.d.ts +0 -46
  877. package/dist/components/ui/_shared/useSurfaceAxis.d.ts +0 -55
  878. package/dist/components/ui/alert/Alert.vue.d.ts +0 -19
  879. package/dist/components/ui/alert/index.d.ts +0 -8
  880. package/dist/components/ui/avatar/Avatar.vue.d.ts +0 -23
  881. package/dist/components/ui/avatar/index.d.ts +0 -9
  882. package/dist/components/ui/badge/Badge.vue.d.ts +0 -34
  883. package/dist/components/ui/badge/index.d.ts +0 -8
  884. package/dist/components/ui/button/Button.vue.d.ts +0 -29
  885. package/dist/components/ui/button/index.d.ts +0 -7
  886. package/dist/components/ui/card/Card.vue.d.ts +0 -168
  887. package/dist/components/ui/card/CardHeader.vue.d.ts +0 -81
  888. package/dist/components/ui/card/ScrollCard.vue.d.ts +0 -33
  889. package/dist/components/ui/carousel/Carousel.vue.d.ts +0 -37
  890. package/dist/components/ui/carousel/CarouselContent.vue.d.ts +0 -14
  891. package/dist/components/ui/carousel/CarouselNext.vue.d.ts +0 -22
  892. package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +0 -22
  893. package/dist/components/ui/carousel/GlassCarouselPager.vue.d.ts +0 -50
  894. package/dist/components/ui/carousel/useCarousel.d.ts +0 -20
  895. package/dist/components/ui/combobox/Combobox.vue.d.ts +0 -29
  896. package/dist/components/ui/combobox/ComboboxList.vue.d.ts +0 -32
  897. package/dist/components/ui/command/index.d.ts +0 -9
  898. package/dist/components/ui/context-menu/ContextMenu.vue.d.ts +0 -18
  899. package/dist/components/ui/context-menu/ContextMenuCheckboxItem.vue.d.ts +0 -24
  900. package/dist/components/ui/context-menu/ContextMenuContent.vue.d.ts +0 -34
  901. package/dist/components/ui/context-menu/ContextMenuItem.vue.d.ts +0 -23
  902. package/dist/components/ui/context-menu/ContextMenuLabel.vue.d.ts +0 -19
  903. package/dist/components/ui/context-menu/ContextMenuRadioGroup.vue.d.ts +0 -18
  904. package/dist/components/ui/context-menu/ContextMenuRadioItem.vue.d.ts +0 -22
  905. package/dist/components/ui/context-menu/ContextMenuSeparator.vue.d.ts +0 -8
  906. package/dist/components/ui/context-menu/ContextMenuShortcut.vue.d.ts +0 -17
  907. package/dist/components/ui/context-menu/ContextMenuSubContent.vue.d.ts +0 -34
  908. package/dist/components/ui/context-menu/ContextMenuSubTrigger.vue.d.ts +0 -19
  909. package/dist/components/ui/context-menu/ContextMenuTrigger.vue.d.ts +0 -14
  910. package/dist/components/ui/context-menu/index.d.ts +0 -12
  911. package/dist/components/ui/dialog/DialogContent.vue.d.ts +0 -93
  912. package/dist/components/ui/drawer/Drawer.vue.d.ts +0 -86
  913. package/dist/components/ui/drawer/DrawerContent.vue.d.ts +0 -47
  914. package/dist/components/ui/drawer/composables/useDrawerSnap.d.ts +0 -17
  915. package/dist/components/ui/drawer/constants.d.ts +0 -47
  916. package/dist/components/ui/drawer/index.d.ts +0 -35
  917. package/dist/components/ui/dropdown-menu/DropdownMenu.vue.d.ts +0 -18
  918. package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +0 -36
  919. package/dist/components/ui/dropdown-menu/index.d.ts +0 -15
  920. package/dist/components/ui/hover-card/HoverCard.vue.d.ts +0 -18
  921. package/dist/components/ui/hover-card/HoverCardContent.vue.d.ts +0 -23
  922. package/dist/components/ui/hover-card/HoverCardTrigger.vue.d.ts +0 -14
  923. package/dist/components/ui/hover-card/index.d.ts +0 -3
  924. package/dist/components/ui/index.d.ts +0 -41
  925. package/dist/components/ui/metric-pill/MetricPill.vue.d.ts +0 -46
  926. package/dist/components/ui/metric-pill/index.d.ts +0 -1
  927. package/dist/components/ui/multi-select/MultiSelect.vue.d.ts +0 -28
  928. package/dist/components/ui/multi-select/index.d.ts +0 -7
  929. package/dist/components/ui/notification/Notification.vue.d.ts +0 -16
  930. package/dist/components/ui/popover/Popover.vue.d.ts +0 -18
  931. package/dist/components/ui/popover/PopoverContent.vue.d.ts +0 -42
  932. package/dist/components/ui/popover/PopoverTrigger.vue.d.ts +0 -14
  933. package/dist/components/ui/progress/Progress.vue.d.ts +0 -49
  934. package/dist/components/ui/progress/index.d.ts +0 -5
  935. package/dist/components/ui/select/SelectContent.vue.d.ts +0 -42
  936. package/dist/components/ui/sheet/Sheet.vue.d.ts +0 -18
  937. package/dist/components/ui/sheet/SheetClose.vue.d.ts +0 -14
  938. package/dist/components/ui/sheet/SheetContent.vue.d.ts +0 -59
  939. package/dist/components/ui/sheet/SheetDescription.vue.d.ts +0 -18
  940. package/dist/components/ui/sheet/SheetFooter.vue.d.ts +0 -17
  941. package/dist/components/ui/sheet/SheetHeader.vue.d.ts +0 -17
  942. package/dist/components/ui/sheet/SheetTitle.vue.d.ts +0 -18
  943. package/dist/components/ui/sheet/SheetTrigger.vue.d.ts +0 -14
  944. package/dist/components/ui/sheet/index.d.ts +0 -13
  945. package/dist/components/ui/slider/Slider.vue.d.ts +0 -37
  946. package/dist/components/ui/slider/index.d.ts +0 -46
  947. package/dist/components/ui/tabs/Tabs.vue.d.ts +0 -19
  948. package/dist/components/ui/tabs/TabsContent.vue.d.ts +0 -18
  949. package/dist/components/ui/tabs/TabsIndicator.vue.d.ts +0 -11
  950. package/dist/components/ui/tabs/TabsList.vue.d.ts +0 -28
  951. package/dist/components/ui/tabs/TabsTrigger.vue.d.ts +0 -18
  952. package/dist/components/ui/tabs/index.d.ts +0 -5
  953. package/dist/components/ui/toast/Toast.vue.d.ts +0 -107
  954. package/dist/components/ui/toast/index.d.ts +0 -9
  955. package/dist/components/ui/toast/use-toast.d.ts +0 -182
  956. package/dist/components/ui/toggle/Toggle.vue.d.ts +0 -29
  957. package/dist/components/ui/toggle/index.d.ts +0 -26
  958. package/dist/composables/glass/useGlassRenderer.d.ts +0 -44
  959. package/dist/composables/glass/useVizChoreography.d.ts +0 -123
  960. package/dist/composables/motion/core/useHaptic.d.ts +0 -48
  961. package/dist/composables/motion/useCelebrationBurst.d.ts +0 -50
  962. package/dist/composables/motion/useLiquidMorph.d.ts +0 -108
  963. package/dist/composables/motion/useMorphField.d.ts +0 -157
  964. package/dist/composables/sortable/dragController.d.ts +0 -44
  965. package/dist/composables/sortable/types.d.ts +0 -133
  966. package/dist/composables/sortable/useSortable.d.ts +0 -34
  967. package/dist/concentric.d.ts +0 -1
  968. package/dist/concentric.js +0 -805
  969. package/dist/confirm-dialog.d.ts +0 -1
  970. package/dist/confirm-dialog.js +0 -82
  971. package/dist/context-menu.d.ts +0 -1
  972. package/dist/context-menu.js +0 -3
  973. package/dist/createCanvasLifecycle-CuCrGRfq.js +0 -173
  974. package/dist/dockContext-gFVS2gMg.js +0 -18
  975. package/dist/dot-flow-field.d.ts +0 -1
  976. package/dist/dot-flow-field.js +0 -1485
  977. package/dist/dot-matrix.d.ts +0 -1
  978. package/dist/dot-matrix.js +0 -774
  979. package/dist/dotMatrixField-CRO0ZFk4.js +0 -48
  980. package/dist/dropdown-menu-CCfcCQ68.js +0 -369
  981. package/dist/glass-panel.d.ts +0 -1
  982. package/dist/glass-panel.js +0 -113
  983. package/dist/goo-blob.d.ts +0 -1
  984. package/dist/goo-blob.js +0 -348
  985. package/dist/goo-dot-matrix.d.ts +0 -1
  986. package/dist/goo-dot-matrix.js +0 -811
  987. package/dist/hover-card.d.ts +0 -1
  988. package/dist/hover-card.js +0 -2
  989. package/dist/hover-popover.d.ts +0 -1
  990. package/dist/hover-popover.js +0 -2
  991. package/dist/math-5RcIgCB4.js +0 -51
  992. package/dist/menuItemVariants-DAXquKja.js +0 -36
  993. package/dist/paper-grid.d.ts +0 -1
  994. package/dist/paper-grid.js +0 -761
  995. package/dist/paperGrid-CXCSMbZ1.js +0 -191
  996. package/dist/presets-QvYgnFIZ.js +0 -85
  997. package/dist/prng-B5tIXTtj.js +0 -15
  998. package/dist/resolveCanvasColor-DsSJk06I.js +0 -93
  999. package/dist/scrolling-text.d.ts +0 -1
  1000. package/dist/scrolling-text.js +0 -2
  1001. package/dist/selectable-chip.d.ts +0 -1
  1002. package/dist/selectable-chip.js +0 -48
  1003. package/dist/sheet-DUCIoOe0.js +0 -218
  1004. package/dist/sheet.d.ts +0 -1
  1005. package/dist/sheet.js +0 -2
  1006. package/dist/slider-CcICPe3u.js +0 -149
  1007. package/dist/spectrum-walk-cBNSx_zm.js +0 -33
  1008. package/dist/springPresets-DfoQ6XRY.js +0 -64
  1009. package/dist/styles/border-progress.css +0 -109
  1010. package/dist/styles/critical-partition.mjs +0 -195
  1011. package/dist/styles/critical.css +0 -12
  1012. package/dist/styles/deferred.css +0 -35
  1013. package/dist/styles/dock/fission-bridge.css +0 -552
  1014. package/dist/styles/dock/morph-bridge.css +0 -172
  1015. package/dist/styles/dock/stack-rail.css +0 -352
  1016. package/dist/styles/floating-panel.css +0 -51
  1017. package/dist/styles/glass/liquid-morph.css +0 -850
  1018. package/dist/styles/hover-popover.css +0 -47
  1019. package/dist/styles/jubilance.css +0 -65
  1020. package/dist/styles/motion/morph-field.css +0 -229
  1021. package/dist/toggle-chip.d.ts +0 -1
  1022. package/dist/toggle-chip.js +0 -46
  1023. package/dist/uniformBridgeWGPU-BCse1SHU.js +0 -1268
  1024. package/dist/useAnimatedNumber-BntskVdQ.js +0 -40
  1025. package/dist/useConfiguratorState-22BcULzF.js +0 -164
  1026. package/dist/useControlSize-DAZ062x7.js +0 -9
  1027. package/dist/useDockCtaReceive-DX7RDb6_.js +0 -88
  1028. package/dist/useDragMorph-DGLSewwB.js +0 -102
  1029. package/dist/useFuzzySearch-0fTYOhS4.js +0 -177
  1030. package/dist/useGooMorph-Cs13NgYL.js +0 -104
  1031. package/dist/useGpuSubstrate-Ceet70xq.js +0 -347
  1032. package/dist/useHaptic-CPz5BT9I.js +0 -134
  1033. package/dist/useIntersectionPause-DO8Vl4gs.js +0 -53
  1034. package/dist/useKeyboardShortcuts-BEut54Tk.js +0 -99
  1035. package/dist/useLiquidPress-CtOQ8Z0_.js +0 -43
  1036. package/dist/useMorphField-ogBM7ubT.js +0 -141
  1037. package/dist/usePointerVelocityField-BrkqZFhj.js +0 -91
  1038. package/dist/useScrollChrome-JuImi1DM.js +0 -258
  1039. package/dist/useScrollProgress-A0M6qRl7.js +0 -35
  1040. package/dist/useSortable-DQV_UNDw.js +0 -246
  1041. package/dist/useSpring-C0jyvEJB.js +0 -40
  1042. package/dist/useSpringMount-DFxtzmkR.js +0 -71
  1043. package/dist/useSpringPress-VM9RgVq3.js +0 -36
  1044. package/dist/useSurfaceAxis-Ci7Dnaw2.js +0 -7
  1045. package/dist/useTouchGate-B1Lf9XqN.js +0 -84
  1046. package/dist/useUserInvalidAria-EmmwWPOl.js +0 -29
  1047. package/dist/utils/cn.d.ts +0 -27
  1048. package/dist/utils/index.d.ts +0 -4
  1049. package/dist/utils/moveBefore.d.ts +0 -15
  1050. package/dist/utils/platformSupport.d.ts +0 -8
  1051. package/dist/vendor-B2qOlYY3.js +0 -239
  1052. package/dist/virtual.d.ts +0 -1
  1053. package/dist/virtual.js +0 -225
  1054. package/src/styles/border-progress.css +0 -109
  1055. package/src/styles/critical-partition.mjs +0 -195
  1056. package/src/styles/dock/fission-bridge.css +0 -552
  1057. package/src/styles/dock/morph-bridge.css +0 -172
  1058. package/src/styles/dock/stack-rail.css +0 -352
  1059. package/src/styles/floating-panel.css +0 -49
  1060. package/src/styles/glass/liquid-morph.css +0 -850
  1061. package/src/styles/hover-popover.css +0 -45
  1062. package/src/styles/jubilance.css +0 -65
  1063. package/src/styles/motion/morph-field.css +0 -229
  1064. /package/dist/{_plugin-vue_export-helper-gLzyemvl.js → _plugin-vue_export-helper-C1je1s0u.js} +0 -0
  1065. /package/dist/{compile-INR_tPk_.js → compile-C55K3P9g.js} +0 -0
  1066. /package/dist/components/{ui/_shared → _shared}/ModalOverlay.vue.d.ts +0 -0
  1067. /package/dist/components/{ui/_shared → _shared}/useStalePropWarning.d.ts +0 -0
  1068. /package/dist/components/{ui/accordion → accordion}/Accordion.vue.d.ts +0 -0
  1069. /package/dist/components/{ui/accordion → accordion}/AccordionContent.vue.d.ts +0 -0
  1070. /package/dist/components/{ui/accordion → accordion}/AccordionItem.vue.d.ts +0 -0
  1071. /package/dist/components/{ui/accordion → accordion}/AccordionTrigger.vue.d.ts +0 -0
  1072. /package/dist/components/{ui/accordion → accordion}/index.d.ts +0 -0
  1073. /package/dist/components/{ui/alert → alert}/AlertDescription.vue.d.ts +0 -0
  1074. /package/dist/components/{ui/alert → alert}/AlertTitle.vue.d.ts +0 -0
  1075. /package/dist/components/{custom/animated-digit → animated-digit}/AnimatedDigit.vue.d.ts +0 -0
  1076. /package/dist/components/{custom/animated-digit → animated-digit}/index.d.ts +0 -0
  1077. /package/dist/components/{custom/aurora → aurora}/composables/auroraFallbackGround.d.ts +0 -0
  1078. /package/dist/components/{custom/aurora → aurora}/composables/configSource.d.ts +0 -0
  1079. /package/dist/components/{custom/aurora → aurora}/constants/budget.d.ts +0 -0
  1080. /package/dist/components/{custom/aurora → aurora}/constants/renderMode.d.ts +0 -0
  1081. /package/dist/components/{custom/aurora → aurora}/constants/shaders/aurora.frag.d.ts +0 -0
  1082. /package/dist/components/{custom/aurora → aurora}/constants/shaders/aurora.vert.d.ts +0 -0
  1083. /package/dist/components/{custom/aurora → aurora}/constants/shaders/composition.glsl.d.ts +0 -0
  1084. /package/dist/components/{custom/aurora → aurora}/constants/shaders/oil-modes.glsl.d.ts +0 -0
  1085. /package/dist/components/{custom/aurora → aurora}/constants/shaders/procedural-color.wgsl.d.ts +0 -0
  1086. /package/dist/components/{custom/aurora → aurora}/constants/shaders/tonemap.glsl.d.ts +0 -0
  1087. /package/dist/components/{custom/aurora → aurora}/constants/shaders/vangogh-medium.glsl.d.ts +0 -0
  1088. /package/dist/components/{ui/avatar → avatar}/AvatarFallback.vue.d.ts +0 -0
  1089. /package/dist/components/{ui/avatar → avatar}/AvatarImage.vue.d.ts +0 -0
  1090. /package/dist/components/{custom/goo-blob → blob}/composables/buildMetaballProgram.d.ts +0 -0
  1091. /package/dist/components/{custom/goo-blob → blob}/composables/easing.d.ts +0 -0
  1092. /package/dist/components/{custom/goo-blob → blob}/composables/uniformBridgeWGPU.d.ts +0 -0
  1093. /package/dist/components/{custom/goo-blob → blob}/composables/useBlobMood.d.ts +0 -0
  1094. /package/dist/components/{custom/goo-blob → blob}/composables/useBlobSatellites.d.ts +0 -0
  1095. /package/dist/components/{custom/goo-blob → blob}/shaders/metaball-noise.wgsl.d.ts +0 -0
  1096. /package/dist/components/{custom/goo-blob → blob}/shaders/metaball-palette.wgsl.d.ts +0 -0
  1097. /package/dist/components/{custom/goo-blob → blob}/shaders/metaball.frag.d.ts +0 -0
  1098. /package/dist/components/{custom/goo-blob → blob}/shaders/metaball.vert.d.ts +0 -0
  1099. /package/dist/components/{custom/goo-blob → blob}/shaders/metaball.wgsl.d.ts +0 -0
  1100. /package/dist/components/{custom/goo-blob → blob}/shaders/oklch-perturb.glsl.d.ts +0 -0
  1101. /package/dist/components/{custom/goo-blob → blob}/shaders/sdf-body.glsl.d.ts +0 -0
  1102. /package/dist/components/{custom/goo-blob → blob}/shaders/watercolor-edges.glsl.d.ts +0 -0
  1103. /package/dist/components/{ui/card → card}/CardAction.vue.d.ts +0 -0
  1104. /package/dist/components/{ui/card → card}/CardContent.vue.d.ts +0 -0
  1105. /package/dist/components/{ui/card → card}/CardDescription.vue.d.ts +0 -0
  1106. /package/dist/components/{ui/card → card}/CardFooter.vue.d.ts +0 -0
  1107. /package/dist/components/{ui/card → card}/CardTitle.vue.d.ts +0 -0
  1108. /package/dist/components/{ui/card → card}/ScrollCardHeader.vue.d.ts +0 -0
  1109. /package/dist/components/{ui/card → card}/index.d.ts +0 -0
  1110. /package/dist/components/{ui/carousel → carousel}/CarouselItem.vue.d.ts +0 -0
  1111. /package/dist/components/{ui/carousel → carousel}/CarouselPager.vue.d.ts +0 -0
  1112. /package/dist/components/{ui/carousel → carousel}/index.d.ts +0 -0
  1113. /package/dist/components/{ui/carousel → carousel}/interface.d.ts +0 -0
  1114. /package/dist/components/{ui/checkbox → checkbox}/Checkbox.vue.d.ts +0 -0
  1115. /package/dist/components/{ui/checkbox → checkbox}/index.d.ts +0 -0
  1116. /package/dist/components/{ui/collapsible → collapsible}/Collapsible.vue.d.ts +0 -0
  1117. /package/dist/components/{ui/collapsible → collapsible}/CollapsibleContent.vue.d.ts +0 -0
  1118. /package/dist/components/{ui/collapsible → collapsible}/CollapsibleTrigger.vue.d.ts +0 -0
  1119. /package/dist/components/{ui/collapsible → collapsible}/index.d.ts +0 -0
  1120. /package/dist/components/{custom/color-swatch → color-swatch}/ColorSwatch.vue.d.ts +0 -0
  1121. /package/dist/components/{custom/color-swatch → color-swatch}/index.d.ts +0 -0
  1122. /package/dist/components/{ui/combobox → combobox}/ComboboxAnchor.vue.d.ts +0 -0
  1123. /package/dist/components/{ui/combobox → combobox}/ComboboxEmpty.vue.d.ts +0 -0
  1124. /package/dist/components/{ui/combobox → combobox}/ComboboxGroup.vue.d.ts +0 -0
  1125. /package/dist/components/{ui/combobox → combobox}/ComboboxInput.vue.d.ts +0 -0
  1126. /package/dist/components/{ui/combobox → combobox}/ComboboxItem.vue.d.ts +0 -0
  1127. /package/dist/components/{ui/combobox → combobox}/ComboboxItemIndicator.vue.d.ts +0 -0
  1128. /package/dist/components/{ui/combobox → combobox}/ComboboxSeparator.vue.d.ts +0 -0
  1129. /package/dist/components/{ui/combobox → combobox}/ComboboxViewport.vue.d.ts +0 -0
  1130. /package/dist/components/{ui/combobox → combobox}/index.d.ts +0 -0
  1131. /package/dist/components/{ui/command → command}/Command.vue.d.ts +0 -0
  1132. /package/dist/components/{ui/command → command}/CommandDialog.vue.d.ts +0 -0
  1133. /package/dist/components/{ui/command → command}/CommandEmpty.vue.d.ts +0 -0
  1134. /package/dist/components/{ui/command → command}/CommandGroup.vue.d.ts +0 -0
  1135. /package/dist/components/{ui/command → command}/CommandInput.vue.d.ts +0 -0
  1136. /package/dist/components/{ui/command → command}/CommandItem.vue.d.ts +0 -0
  1137. /package/dist/components/{ui/command → command}/CommandList.vue.d.ts +0 -0
  1138. /package/dist/components/{ui/command → command}/CommandSeparator.vue.d.ts +0 -0
  1139. /package/dist/components/{ui/command → command}/CommandShortcut.vue.d.ts +0 -0
  1140. /package/dist/components/{custom/completion-seal → completion-seal}/composables/useCompletionSeal.d.ts +0 -0
  1141. /package/dist/components/{custom/completion-seal → completion-seal}/index.d.ts +0 -0
  1142. /package/dist/components/{custom/configurator → configurator}/ConfiguratorLayer.vue.d.ts +0 -0
  1143. /package/dist/components/{custom/configurator → configurator}/useConfiguratorState.d.ts +0 -0
  1144. /package/dist/components/{custom/constellation → constellation}/composables/createConstellationField.d.ts +0 -0
  1145. /package/dist/components/{custom/constellation → constellation}/composables/uniformBridgeWGPU.d.ts +0 -0
  1146. /package/dist/components/{custom/constellation → constellation}/constellationField.d.ts +0 -0
  1147. /package/dist/components/{custom/constellation → constellation}/constellationInteraction.d.ts +0 -0
  1148. /package/dist/components/{custom/constellation → constellation}/constellationRender.d.ts +0 -0
  1149. /package/dist/components/{custom/constellation → constellation}/constellationWell.d.ts +0 -0
  1150. /package/dist/components/{custom/constellation → constellation}/index.d.ts +0 -0
  1151. /package/dist/components/{custom/constellation → constellation}/shaders/constellation-lines.glsl.d.ts +0 -0
  1152. /package/dist/components/{custom/constellation → constellation}/shaders/constellation-lines.wgsl.d.ts +0 -0
  1153. /package/dist/components/{custom/constellation → constellation}/shaders/constellation-points.glsl.d.ts +0 -0
  1154. /package/dist/components/{custom/constellation → constellation}/shaders/constellation-points.wgsl.d.ts +0 -0
  1155. /package/dist/components/{custom/controls → controls}/DarkModeToggle.vue.d.ts +0 -0
  1156. /package/dist/components/{custom/controls → controls}/index.d.ts +0 -0
  1157. /package/dist/components/{ui/data-table → data-table}/DataTable.vue.d.ts +0 -0
  1158. /package/dist/components/{ui/data-table → data-table}/DataTablePagination.vue.d.ts +0 -0
  1159. /package/dist/components/{ui/data-table → data-table}/composables/useDataTableResponsive.d.ts +0 -0
  1160. /package/dist/components/{ui/data-table → data-table}/composables/useDataTableRowIdentity.d.ts +0 -0
  1161. /package/dist/components/{ui/data-table → data-table}/index.d.ts +0 -0
  1162. /package/dist/components/{ui/data-table → data-table}/types.d.ts +0 -0
  1163. /package/dist/components/{custom/deck → deck}/DeckPager.vue.d.ts +0 -0
  1164. /package/dist/components/{custom/deck → deck}/composables/useDeck.d.ts +0 -0
  1165. /package/dist/components/{custom/deck → deck}/composables/useDeckKeyboard.d.ts +0 -0
  1166. /package/dist/components/{custom/deck → deck}/composables/useDeckSpring.d.ts +0 -0
  1167. /package/dist/components/{custom/deck → deck}/constants.d.ts +0 -0
  1168. /package/dist/components/{custom/deck → deck}/index.d.ts +0 -0
  1169. /package/dist/components/{ui/dialog → dialog}/Dialog.vue.d.ts +0 -0
  1170. /package/dist/components/{ui/dialog → dialog}/DialogClose.vue.d.ts +0 -0
  1171. /package/dist/components/{ui/dialog → dialog}/DialogDescription.vue.d.ts +0 -0
  1172. /package/dist/components/{ui/dialog → dialog}/DialogFooter.vue.d.ts +0 -0
  1173. /package/dist/components/{ui/dialog → dialog}/DialogHeader.vue.d.ts +0 -0
  1174. /package/dist/components/{ui/dialog → dialog}/DialogScrollContent.vue.d.ts +0 -0
  1175. /package/dist/components/{ui/dialog → dialog}/DialogTitle.vue.d.ts +0 -0
  1176. /package/dist/components/{ui/dialog → dialog}/DialogTrigger.vue.d.ts +0 -0
  1177. /package/dist/components/{ui/dialog → dialog}/index.d.ts +0 -0
  1178. /package/dist/components/{custom/dock → dock}/DockSection.vue.d.ts +0 -0
  1179. /package/dist/components/{custom/dock → dock}/DockSeparator.vue.d.ts +0 -0
  1180. /package/dist/components/{custom/dock → dock}/composables/dockMorphMeasure.d.ts +0 -0
  1181. /package/dist/components/{custom/dock → dock}/composables/isTeleportedTarget.d.ts +0 -0
  1182. /package/dist/components/{custom/dock → dock}/composables/useDockClickIntegrity.d.ts +0 -0
  1183. /package/dist/components/{custom/dock → dock}/composables/useDockHold.d.ts +0 -0
  1184. /package/dist/components/{custom/dock → dock}/composables/useDockState.d.ts +0 -0
  1185. /package/dist/components/{ui/drawer → drawer}/DrawerDescription.vue.d.ts +0 -0
  1186. /package/dist/components/{ui/drawer → drawer}/DrawerFooter.vue.d.ts +0 -0
  1187. /package/dist/components/{ui/drawer → drawer}/DrawerHeader.vue.d.ts +0 -0
  1188. /package/dist/components/{ui/drawer → drawer}/DrawerOverlay.vue.d.ts +0 -0
  1189. /package/dist/components/{ui/drawer → drawer}/DrawerTitle.vue.d.ts +0 -0
  1190. /package/dist/components/{ui/drawer → drawer}/composables/drawerSnapContext.d.ts +0 -0
  1191. /package/dist/components/{ui/dropdown-menu → dropdown-menu}/DropdownMenuCheckboxItem.vue.d.ts +0 -0
  1192. /package/dist/components/{ui/dropdown-menu → dropdown-menu}/DropdownMenuGroup.vue.d.ts +0 -0
  1193. /package/dist/components/{ui/dropdown-menu → dropdown-menu}/DropdownMenuItem.vue.d.ts +0 -0
  1194. /package/dist/components/{ui/dropdown-menu → dropdown-menu}/DropdownMenuLabel.vue.d.ts +0 -0
  1195. /package/dist/components/{ui/dropdown-menu → dropdown-menu}/DropdownMenuRadioGroup.vue.d.ts +0 -0
  1196. /package/dist/components/{ui/dropdown-menu → dropdown-menu}/DropdownMenuRadioItem.vue.d.ts +0 -0
  1197. /package/dist/components/{ui/dropdown-menu → dropdown-menu}/DropdownMenuSeparator.vue.d.ts +0 -0
  1198. /package/dist/components/{ui/dropdown-menu → dropdown-menu}/DropdownMenuShortcut.vue.d.ts +0 -0
  1199. /package/dist/components/{ui/dropdown-menu → dropdown-menu}/DropdownMenuSub.vue.d.ts +0 -0
  1200. /package/dist/components/{ui/dropdown-menu → dropdown-menu}/DropdownMenuSubContent.vue.d.ts +0 -0
  1201. /package/dist/components/{ui/dropdown-menu → dropdown-menu}/DropdownMenuSubTrigger.vue.d.ts +0 -0
  1202. /package/dist/components/{ui/dropdown-menu → dropdown-menu}/DropdownMenuTrigger.vue.d.ts +0 -0
  1203. /package/dist/components/{custom/easing → easing}/EasingConfigurator.vue.d.ts +0 -0
  1204. /package/dist/components/{custom/easing → easing}/EasingPicker.vue.d.ts +0 -0
  1205. /package/dist/components/{custom/easing → easing}/composables/useEasingPicker.d.ts +0 -0
  1206. /package/dist/components/{custom/easing → easing}/constants.d.ts +0 -0
  1207. /package/dist/components/{custom/easing → easing}/index.d.ts +0 -0
  1208. /package/dist/components/{custom/expandable-container → expandable-container}/index.d.ts +0 -0
  1209. /package/dist/components/{custom/fading-scroll → fading-scroll}/FadingScroll.vue.d.ts +0 -0
  1210. /package/dist/components/{custom/fading-scroll → fading-scroll}/composables/useFadingScroll.d.ts +0 -0
  1211. /package/dist/components/{custom/fading-scroll → fading-scroll}/constants.d.ts +0 -0
  1212. /package/dist/components/{custom/fading-scroll → fading-scroll}/index.d.ts +0 -0
  1213. /package/dist/components/{ui/focus-scope → focus-scope}/FocusScope.vue.d.ts +0 -0
  1214. /package/dist/components/{ui/focus-scope → focus-scope}/index.d.ts +0 -0
  1215. /package/dist/components/{custom/fourier-field → fourier-field}/presets.d.ts +0 -0
  1216. /package/dist/components/{custom/fourier-field → fourier-field}/shaders/fourier-field.compute.wgsl.d.ts +0 -0
  1217. /package/dist/components/{custom/goo-filter → goo-filter}/GooFilter.vue.d.ts +0 -0
  1218. /package/dist/components/{custom/goo-filter → goo-filter}/index.d.ts +0 -0
  1219. /package/dist/components/{custom/handmark → handmark}/HandMark.vue.d.ts +0 -0
  1220. /package/dist/components/{custom/handmark → handmark}/brush.d.ts +0 -0
  1221. /package/dist/components/{custom/handmark → handmark}/freehand.d.ts +0 -0
  1222. /package/dist/components/{custom/handmark → handmark}/index.d.ts +0 -0
  1223. /package/dist/components/{custom/handmark → handmark}/ink.d.ts +0 -0
  1224. /package/dist/components/{custom/handmark → handmark}/texture.d.ts +0 -0
  1225. /package/dist/components/{custom/icon-chip → icon-chip}/IconChip.vue.d.ts +0 -0
  1226. /package/dist/components/{custom/icon-chip → icon-chip}/index.d.ts +0 -0
  1227. /package/dist/components/{custom/icon-chip → icon-chip}/types.d.ts +0 -0
  1228. /package/dist/components/{custom/icon-tooltip → icon-tooltip}/IconTooltip.vue.d.ts +0 -0
  1229. /package/dist/components/{custom/icon-tooltip → icon-tooltip}/index.d.ts +0 -0
  1230. /package/dist/components/{custom/infinite-scroll → infinite-scroll}/InfiniteScroll.vue.d.ts +0 -0
  1231. /package/dist/components/{custom/infinite-scroll → infinite-scroll}/composables/index.d.ts +0 -0
  1232. /package/dist/components/{custom/infinite-scroll → infinite-scroll}/composables/types.d.ts +0 -0
  1233. /package/dist/components/{custom/infinite-scroll → infinite-scroll}/composables/useInfiniteScroll.d.ts +0 -0
  1234. /package/dist/components/{custom/infinite-scroll → infinite-scroll}/index.d.ts +0 -0
  1235. /package/dist/components/{ui/input → input}/Input.vue.d.ts +0 -0
  1236. /package/dist/components/{ui/input → input}/index.d.ts +0 -0
  1237. /package/dist/components/{custom/instrument-chassis → instrument-chassis}/ChassisDivider.vue.d.ts +0 -0
  1238. /package/dist/components/{custom/instrument-chassis → instrument-chassis}/InstrumentChassis.vue.d.ts +0 -0
  1239. /package/dist/components/{custom/instrument-chassis → instrument-chassis}/index.d.ts +0 -0
  1240. /package/dist/components/{ui/label → label}/Label.vue.d.ts +0 -0
  1241. /package/dist/components/{ui/label → label}/index.d.ts +0 -0
  1242. /package/dist/components/{custom/labeled-field → labeled-field}/LabeledField.vue.d.ts +0 -0
  1243. /package/dist/components/{custom/labeled-field → labeled-field}/LabeledInput.vue.d.ts +0 -0
  1244. /package/dist/components/{custom/labeled-field → labeled-field}/LabeledSelect.vue.d.ts +0 -0
  1245. /package/dist/components/{custom/labeled-field → labeled-field}/LabeledSlider.vue.d.ts +0 -0
  1246. /package/dist/components/{custom/labeled-field → labeled-field}/LabeledSwitch.vue.d.ts +0 -0
  1247. /package/dist/components/{custom/labeled-field → labeled-field}/index.d.ts +0 -0
  1248. /package/dist/{utils/coalesceMetric.d.ts → components/metric/coalesce-metric.d.ts} +0 -0
  1249. /package/dist/components/{custom/metric-badge → metric-badge}/index.d.ts +0 -0
  1250. /package/dist/components/{custom/metric-cell → metric-cell}/index.d.ts +0 -0
  1251. /package/dist/components/{custom/metric-stack → metric-stack}/MetricStack.vue.d.ts +0 -0
  1252. /package/dist/components/{custom/metric-stack → metric-stack}/index.d.ts +0 -0
  1253. /package/dist/components/{ui/notification → notification}/index.d.ts +0 -0
  1254. /package/dist/components/{ui/number-field → number-field}/NumberField.vue.d.ts +0 -0
  1255. /package/dist/components/{ui/number-field → number-field}/NumberFieldContent.vue.d.ts +0 -0
  1256. /package/dist/components/{ui/number-field → number-field}/NumberFieldDecrement.vue.d.ts +0 -0
  1257. /package/dist/components/{ui/number-field → number-field}/NumberFieldIncrement.vue.d.ts +0 -0
  1258. /package/dist/components/{ui/number-field → number-field}/NumberFieldInput.vue.d.ts +0 -0
  1259. /package/dist/components/{ui/number-field → number-field}/index.d.ts +0 -0
  1260. /package/dist/components/{custom/pager-dots → pager-dots}/PagerDots.vue.d.ts +0 -0
  1261. /package/dist/components/{custom/pager-dots → pager-dots}/index.d.ts +0 -0
  1262. /package/dist/components/{custom/pager-dots → pager-dots}/pagerWindow.d.ts +0 -0
  1263. /package/dist/components/{custom/paper-backdrop → paper-backdrop}/index.d.ts +0 -0
  1264. /package/dist/components/{ui/popover → popover}/index.d.ts +0 -0
  1265. /package/dist/components/{ui/progress → progress}/ProgressDefault.vue.d.ts +0 -0
  1266. /package/dist/components/{ui/progress → progress}/ProgressGradient.vue.d.ts +0 -0
  1267. /package/dist/components/{ui/progress → progress}/ProgressSectioned.vue.d.ts +0 -0
  1268. /package/dist/components/{ui/progress → progress}/useProgressGeometry.d.ts +0 -0
  1269. /package/dist/components/{custom/pulse → pulse}/Pulse.vue.d.ts +0 -0
  1270. /package/dist/components/{custom/pulse → pulse}/index.d.ts +0 -0
  1271. /package/dist/components/{ui/radio-group → radio-group}/RadioGroup.vue.d.ts +0 -0
  1272. /package/dist/components/{ui/radio-group → radio-group}/RadioGroupItem.vue.d.ts +0 -0
  1273. /package/dist/components/{ui/radio-group → radio-group}/index.d.ts +0 -0
  1274. /package/dist/components/{custom/search → search}/composables/fuzzySearchIndex.d.ts +0 -0
  1275. /package/dist/components/{custom/search → search}/composables/index.d.ts +0 -0
  1276. /package/dist/components/{custom/search → search}/composables/types.d.ts +0 -0
  1277. /package/dist/components/{custom/search → search}/composables/useFuzzySearch.d.ts +0 -0
  1278. /package/dist/components/{custom/search → search}/index.d.ts +0 -0
  1279. /package/dist/components/{ui/section → section}/Section.vue.d.ts +0 -0
  1280. /package/dist/components/{ui/section → section}/index.d.ts +0 -0
  1281. /package/dist/components/{ui/select → select}/Select.vue.d.ts +0 -0
  1282. /package/dist/components/{ui/select → select}/SelectGroup.vue.d.ts +0 -0
  1283. /package/dist/components/{ui/select → select}/SelectItem.vue.d.ts +0 -0
  1284. /package/dist/components/{ui/select → select}/SelectLabel.vue.d.ts +0 -0
  1285. /package/dist/components/{ui/select → select}/SelectScrollDownButton.vue.d.ts +0 -0
  1286. /package/dist/components/{ui/select → select}/SelectScrollUpButton.vue.d.ts +0 -0
  1287. /package/dist/components/{ui/select → select}/SelectSeparator.vue.d.ts +0 -0
  1288. /package/dist/components/{ui/select → select}/SelectTrigger.vue.d.ts +0 -0
  1289. /package/dist/components/{ui/select → select}/SelectValue.vue.d.ts +0 -0
  1290. /package/dist/components/{ui/select → select}/index.d.ts +0 -0
  1291. /package/dist/components/{ui/separator → separator}/Separator.vue.d.ts +0 -0
  1292. /package/dist/components/{ui/separator → separator}/index.d.ts +0 -0
  1293. /package/dist/components/{ui/skeleton → skeleton}/Skeleton.vue.d.ts +0 -0
  1294. /package/dist/components/{ui/skeleton → skeleton}/index.d.ts +0 -0
  1295. /package/dist/{composables/sortable → components/sortable-list/composables}/dropResolver.d.ts +0 -0
  1296. /package/dist/{composables/sortable → components/sortable-list/composables}/ghostRenderer.d.ts +0 -0
  1297. /package/dist/{composables/sortable → components/sortable-list/composables}/index.d.ts +0 -0
  1298. /package/dist/{composables/sortable → components/sortable-list/composables}/touchGate.d.ts +0 -0
  1299. /package/dist/{composables/sortable → components/sortable-list/composables}/transitionTiming.d.ts +0 -0
  1300. /package/dist/components/{custom/spa-view → spa-view}/SpaView.vue.d.ts +0 -0
  1301. /package/dist/components/{custom/spa-view → spa-view}/index.d.ts +0 -0
  1302. /package/dist/components/{custom/split-chars → split-chars}/index.d.ts +0 -0
  1303. /package/dist/components/{custom/stacked-icons → stacked-icons}/StackedIconGroup.vue.d.ts +0 -0
  1304. /package/dist/components/{custom/stacked-icons → stacked-icons}/index.d.ts +0 -0
  1305. /package/dist/components/{custom/status-dot → status-dot}/StatusDot.vue.d.ts +0 -0
  1306. /package/dist/components/{custom/status-dot → status-dot}/index.d.ts +0 -0
  1307. /package/dist/components/{ui/switch → switch}/Switch.vue.d.ts +0 -0
  1308. /package/dist/components/{ui/switch → switch}/index.d.ts +0 -0
  1309. /package/dist/components/{ui/table → table}/Table.vue.d.ts +0 -0
  1310. /package/dist/components/{ui/table → table}/TableBody.vue.d.ts +0 -0
  1311. /package/dist/components/{ui/table → table}/TableCaption.vue.d.ts +0 -0
  1312. /package/dist/components/{ui/table → table}/TableCell.vue.d.ts +0 -0
  1313. /package/dist/components/{ui/table → table}/TableEmpty.vue.d.ts +0 -0
  1314. /package/dist/components/{ui/table → table}/TableHead.vue.d.ts +0 -0
  1315. /package/dist/components/{ui/table → table}/TableHeader.vue.d.ts +0 -0
  1316. /package/dist/components/{ui/table → table}/TableRow.vue.d.ts +0 -0
  1317. /package/dist/components/{ui/table → table}/index.d.ts +0 -0
  1318. /package/dist/components/{custom/tabs → tabs}/index.d.ts +0 -0
  1319. /package/dist/components/{ui/tags-input → tags-input}/TagsInput.vue.d.ts +0 -0
  1320. /package/dist/components/{ui/tags-input → tags-input}/TagsInputInput.vue.d.ts +0 -0
  1321. /package/dist/components/{ui/tags-input → tags-input}/TagsInputItem.vue.d.ts +0 -0
  1322. /package/dist/components/{ui/tags-input → tags-input}/TagsInputItemDelete.vue.d.ts +0 -0
  1323. /package/dist/components/{ui/tags-input → tags-input}/TagsInputItemText.vue.d.ts +0 -0
  1324. /package/dist/components/{ui/tags-input → tags-input}/index.d.ts +0 -0
  1325. /package/dist/components/{ui/textarea → textarea}/Textarea.vue.d.ts +0 -0
  1326. /package/dist/components/{ui/textarea → textarea}/index.d.ts +0 -0
  1327. /package/dist/components/{custom/timeline → timeline}/ContinuousRail.vue.d.ts +0 -0
  1328. /package/dist/components/{custom/timeline → timeline}/ContinuousTimeline.vue.d.ts +0 -0
  1329. /package/dist/components/{custom/timeline → timeline}/ScrubberTimeline.vue.d.ts +0 -0
  1330. /package/dist/components/{custom/timeline → timeline}/SegmentedTimeline.vue.d.ts +0 -0
  1331. /package/dist/components/{custom/timeline → timeline}/geometry.d.ts +0 -0
  1332. /package/dist/components/{custom/timeline → timeline}/index.d.ts +0 -0
  1333. /package/dist/components/{custom/timeline → timeline}/types.d.ts +0 -0
  1334. /package/dist/components/{ui/toast → toast}/ToastAction.vue.d.ts +0 -0
  1335. /package/dist/components/{ui/toast → toast}/ToastClose.vue.d.ts +0 -0
  1336. /package/dist/components/{ui/toast → toast}/ToastDescription.vue.d.ts +0 -0
  1337. /package/dist/components/{ui/toast → toast}/ToastTitle.vue.d.ts +0 -0
  1338. /package/dist/components/{ui/toast → toast}/Toaster.vue.d.ts +0 -0
  1339. /package/dist/components/{ui/toggle-group → toggle-group}/ToggleGroup.vue.d.ts +0 -0
  1340. /package/dist/components/{ui/toggle-group → toggle-group}/ToggleGroupItem.vue.d.ts +0 -0
  1341. /package/dist/components/{ui/toggle-group → toggle-group}/index.d.ts +0 -0
  1342. /package/dist/components/{ui/toggle-group → toggle-group}/toggleGroupContext.d.ts +0 -0
  1343. /package/dist/components/{ui/tooltip → tooltip}/Tooltip.vue.d.ts +0 -0
  1344. /package/dist/components/{ui/tooltip → tooltip}/TooltipContent.vue.d.ts +0 -0
  1345. /package/dist/components/{ui/tooltip → tooltip}/TooltipProvider.vue.d.ts +0 -0
  1346. /package/dist/components/{ui/tooltip → tooltip}/TooltipTrigger.vue.d.ts +0 -0
  1347. /package/dist/components/{ui/tooltip → tooltip}/index.d.ts +0 -0
  1348. /package/dist/components/{custom/typewriter → typewriter}/TypewriterText.vue.d.ts +0 -0
  1349. /package/dist/components/{custom/typewriter → typewriter}/composables/index.d.ts +0 -0
  1350. /package/dist/components/{custom/typewriter → typewriter}/composables/useTypewriter.d.ts +0 -0
  1351. /package/dist/components/{custom/typewriter → typewriter}/index.d.ts +0 -0
  1352. /package/dist/components/{custom/typewriter → typewriter}/types.d.ts +0 -0
  1353. /package/dist/components/{custom/typewriter → typewriter}/utils/keyboard.d.ts +0 -0
  1354. /package/dist/components/{custom/typewriter → typewriter}/utils/pausePatterns.d.ts +0 -0
  1355. /package/dist/components/{custom/typewriter → typewriter}/utils/timing.d.ts +0 -0
  1356. /package/dist/components/{custom/typewriter → typewriter}/utils/typoStateMachine.d.ts +0 -0
  1357. /package/dist/components/{custom/watercolor-dot → watercolor-dot}/WatercolorDot.vue.d.ts +0 -0
  1358. /package/dist/components/{custom/watercolor-dot → watercolor-dot}/index.d.ts +0 -0
  1359. /package/dist/{utils → composables/glass/procedural}/prng.d.ts +0 -0
  1360. /package/dist/{constants-BWj7DkMn.js → constants-D8lSMkOz.js} +0 -0
  1361. /package/dist/{createContext-Cd23P9j0.js → createContext-BQ1Gy_LB.js} +0 -0
  1362. /package/dist/{flow.glsl-DqEGRpl4.js → flow.glsl-CVqPSj8_.js} +0 -0
  1363. /package/dist/{procedural-color.wgsl-C1Y5PkM6.js → procedural-color.wgsl-ByduxnzV.js} +0 -0
  1364. /package/dist/{scrollReader-rc3Ns_NM.js → scrollReader-DzYqPQ6V.js} +0 -0
  1365. /package/dist/{supportsCssTimeline-BWenxvHU.js → supportsCssTimeline-Ie4xJFbD.js} +0 -0
  1366. /package/dist/{useDragVelocity-CjcfX3dA.js → useDragVelocity-BWcNMCux.js} +0 -0
  1367. /package/dist/{useGlobalDark-B4HO9LXG.js → useGlobalDark-DjKMEQE2.js} +0 -0
  1368. /package/dist/{useInterval-BVUI-sez.js → useInterval-ZATRi-1T.js} +0 -0
  1369. /package/dist/{useLiquidFlex-Cc6PjVJD.js → useLiquidFlex-Ch4exNvN.js} +0 -0
  1370. /package/dist/{useResizeObserver-DdEn3v2f.js → useResizeObserver-DDuoBeBo.js} +0 -0
  1371. /package/dist/{useResolveTokenColor-ChOnCckA.js → useResolveTokenColor-DVT5kwv6.js} +0 -0
  1372. /package/dist/{useTextHighlight-Bma3UlKA.js → useTextHighlight-C46Le9u_.js} +0 -0
  1373. /package/dist/{useTimer-BBLGPXR8.js → useTimer-CkDV8SC2.js} +0 -0
  1374. /package/dist/{useViewportReady-C9pYnn7K.js → useViewportReady-c0isoKL8.js} +0 -0
  1375. /package/dist/{vReveal-CT1KtwZA.js → vReveal-DUmiEkX_.js} +0 -0
  1376. /package/dist/{vSpecular-EX7loENl.js → vSpecular-DlYN0UZy.js} +0 -0
  1377. /package/dist/{writeVelocityWeight-Bh83xZfs.js → writeVelocityWeight-D1rvdxJu.js} +0 -0
@@ -1,15 +1,17 @@
1
- import { t as e } from "./_plugin-vue_export-helper-gLzyemvl.js";
2
- import { n as t } from "./useResolveTokenColor-ChOnCckA.js";
3
- import { t as n } from "./usePointerVelocityField-BrkqZFhj.js";
4
- import { n as r, o as i, r as a, s as o } from "./procedural-color.wgsl-C1Y5PkM6.js";
5
- import { a as s, t as c } from "./useGpuSubstrate-Ceet70xq.js";
6
- import { c as l, t as u } from "./color-B9jZdhJX.js";
7
- import { t as d } from "./useGlobalDark-B4HO9LXG.js";
8
- import { n as f, t as p } from "./prng-B5tIXTtj.js";
9
- import { a as m, i as h, n as g, r as _, t as v } from "./math-5RcIgCB4.js";
10
- import { computed as y, createElementBlock as b, createElementVNode as x, defineComponent as S, normalizeClass as C, onMounted as w, onScopeDispose as T, openBlock as E, shallowRef as D, useTemplateRef as O, watch as k } from "vue";
11
- //#region src/components/custom/fourier-field/constants.ts
12
- var A = 64, j = 384, M = .15, N = .12, P = .55, F = .35, I = [{
1
+ import { t as e } from "./_plugin-vue_export-helper-C1je1s0u.js";
2
+ import { n as t } from "./useResolveTokenColor-DVT5kwv6.js";
3
+ import { t as n } from "./usePointerVelocityField-CwXyeW0Z.js";
4
+ import { t as r } from "./useRoutePointer-DL7I0gY4.js";
5
+ import { d as i, u as a } from "./pointerFieldMappings-4VtmkOWv.js";
6
+ import { t as o } from "./useGlobalDark-DjKMEQE2.js";
7
+ import { n as s, o as c, r as l, s as u } from "./procedural-color.wgsl-ByduxnzV.js";
8
+ import { a as d, t as f } from "./useGpuSubstrate-DcY584kE.js";
9
+ import { c as p, t as m } from "./color-Bp5jmv4Z.js";
10
+ import { n as h, t as g } from "./prng-B0PLRmR6.js";
11
+ import { a as _, c as v, i as y, n as b, o as x, r as S, s as C, t as w } from "./math-CIEcwsYi.js";
12
+ import { computed as T, createElementBlock as E, createElementVNode as D, defineComponent as O, normalizeClass as k, onMounted as A, onScopeDispose as j, openBlock as M, shallowRef as N, useTemplateRef as P, watch as F } from "vue";
13
+ //#region src/components/fourier-field/constants.ts
14
+ var I = 64, ee = 384, te = .15, L = .4, R = 2.5 / (L + (1 - L) * .5) + .05, ne = .55, z = .35, re = [{
13
15
  L: .62,
14
16
  C: .19,
15
17
  h: 34
@@ -17,34 +19,38 @@ var A = 64, j = 384, M = .15, N = .12, P = .55, F = .35, I = [{
17
19
  L: .86,
18
20
  C: .06,
19
21
  h: 70
20
- }], L = {
22
+ }], ie = {
21
23
  source: "elliptic",
22
24
  harmonics: 6,
23
25
  showEpicycles: !0,
24
26
  epicycleArms: 6,
25
27
  rainbowChain: !0,
26
28
  trailArc: .43,
27
- trailWidth: 3,
29
+ trailWidth: 5,
28
30
  intensity: 1,
29
31
  harmonicScale: .24,
30
32
  speed: 1,
31
- palette: I,
33
+ palette: re,
32
34
  respectReducedMotion: !0,
33
35
  interactive: !0,
34
- squashGain: P,
35
- celGain: F
36
- }, R = "\nconst MAX_PHASORS: i32 = 64;\nconst TAU: f32 = 6.283185307179586;\n\nstruct Phasor {\n // (re, im, index, _pad)\n data: vec4<f32>,\n};\n\n// ── Compute uniforms (the typed-struct source-of-truth — see uniformBridgeWGPU.ts) ──\nstruct ComputeUniforms {\n // c0: (headT, trailArc, _pad, _pad)\n c0: vec4<f32>,\n // ints: (harmonicN, epicycleArmN, sampleCount, phasorCount)\n ints: vec4<i32>,\n};\n\n@group(0) @binding(0) var<uniform> u: ComputeUniforms;\n@group(0) @binding(1) var<storage, read> phasors: array<Phasor>;\n// curveSamples[i] = (x, y, age, _pad)\n@group(0) @binding(2) var<storage, read_write> curveSamples: array<vec4<f32>>;\n// chainTips[k] = (x, y, _pad, _pad) — the running tip after stacking phasor k\n@group(0) @binding(3) var<storage, read_write> chainTips: array<vec4<f32>>;\n\n// The PARTIAL-SUM curve point at parameter t over the first n phasors — the WGSL\n// transcription of math.ts:78-95 (partialSumAt). EXACTLY:\n// c += vec2(re·cos − im·sin, re·sin + im·cos) with angle = TAU·index·t.\nfn partialSumAt(t: f32, n: i32) -> vec2<f32> {\n var c = vec2<f32>(0.0, 0.0);\n let phasorCount = u.ints.w;\n let lim = min(n, phasorCount);\n for (var i = 0; i < MAX_PHASORS; i = i + 1) {\n if (i >= lim) { break; }\n let p = phasors[i].data;\n let re = p.x;\n let im = p.y;\n let index = p.z;\n let angle = TAU * index * t;\n let cs = cos(angle);\n let sn = sin(angle);\n c = c + vec2<f32>(re * cs - im * sn, re * sn + im * cs);\n }\n return c;\n}\n\n// The epicycle chain tip after stacking the first k phasors at head_t — the WGSL\n// transcription of math.ts:41-60 (positionsAt, read at the running tip). The running tip\n// after phasor (k−1) is exactly the partial sum over the first k terms.\nfn epicycleChainTip(t: f32, k: i32) -> vec2<f32> {\n return partialSumAt(t, k);\n}\n\n@compute @workgroup_size(64)\nfn cs_main(@builtin(global_invocation_id) gid: vec3<u32>) {\n let i = i32(gid.x);\n let headT = u.c0.x;\n let trailArc = u.c0.y;\n let harmonicN = u.ints.x;\n let armN = u.ints.y;\n let sampleCount = u.ints.z;\n\n // ── The comet body samples ──\n if (i < sampleCount) {\n // age: 0 at the oldest tail (i = sampleCount−1), 1 at the head (i = 0).\n let denom = max(f32(sampleCount - 1), 1.0);\n let frac = f32(i) / denom; // 0 = head, 1 = tail\n let age = 1.0 - frac; // 1 = head, 0 = tail\n // sample back along the period from the head by trailArc.\n var t = headT - trailArc * frac;\n t = t - floor(t); // fract → [0,1)\n let pt = partialSumAt(t, harmonicN);\n curveSamples[i] = vec4<f32>(pt.x, pt.y, age, 0.0);\n }\n\n // ── The epicycle chain tips (k = 0..armN, capped to harmonicN) ──\n // chainTips[0] is the origin; chainTips[k] is the tip after phasor (k−1).\n let armLim = min(armN, harmonicN);\n if (i <= armLim && i <= MAX_PHASORS) {\n let tip = epicycleChainTip(headT, i);\n chainTips[i] = vec4<f32>(tip.x, tip.y, 0.0, 0.0);\n }\n}\n", z = `
36
+ squashGain: ne,
37
+ celGain: z
38
+ }, ae = "\nconst MAX_PHASORS: i32 = 64;\nconst TAU: f32 = 6.283185307179586;\n\nstruct Phasor {\n // (re, im, index, _pad)\n data: vec4<f32>,\n};\n\n// ── Compute uniforms (the typed-struct source-of-truth — see uniformBridgeWGPU.ts) ──\nstruct ComputeUniforms {\n // c0: (headT, trailArc, _pad, _pad)\n c0: vec4<f32>,\n // ints: (harmonicN, epicycleArmN, sampleCount, phasorCount)\n ints: vec4<i32>,\n};\n\n@group(0) @binding(0) var<uniform> u: ComputeUniforms;\n@group(0) @binding(1) var<storage, read> phasors: array<Phasor>;\n// curveSamples[i] = (x, y, age, _pad)\n@group(0) @binding(2) var<storage, read_write> curveSamples: array<vec4<f32>>;\n// chainTips[k] = (x, y, _pad, _pad) — the running tip after stacking phasor k\n@group(0) @binding(3) var<storage, read_write> chainTips: array<vec4<f32>>;\n\n// The PARTIAL-SUM curve point at parameter t over the first n phasors — the WGSL\n// transcription of math.ts:78-95 (partialSumAt). EXACTLY:\n// c += vec2(re·cos − im·sin, re·sin + im·cos) with angle = TAU·index·t.\nfn partialSumAt(t: f32, n: i32) -> vec2<f32> {\n var c = vec2<f32>(0.0, 0.0);\n let phasorCount = u.ints.w;\n let lim = min(n, phasorCount);\n for (var i = 0; i < MAX_PHASORS; i = i + 1) {\n if (i >= lim) { break; }\n let p = phasors[i].data;\n let re = p.x;\n let im = p.y;\n let index = p.z;\n let angle = TAU * index * t;\n let cs = cos(angle);\n let sn = sin(angle);\n c = c + vec2<f32>(re * cs - im * sn, re * sn + im * cs);\n }\n return c;\n}\n\n// The epicycle chain tip after stacking the first k phasors at head_t — the WGSL\n// transcription of math.ts:41-60 (positionsAt, read at the running tip). The running tip\n// after phasor (k−1) is exactly the partial sum over the first k terms.\nfn epicycleChainTip(t: f32, k: i32) -> vec2<f32> {\n return partialSumAt(t, k);\n}\n\n@compute @workgroup_size(64)\nfn cs_main(@builtin(global_invocation_id) gid: vec3<u32>) {\n let i = i32(gid.x);\n let headT = u.c0.x;\n let trailArc = u.c0.y;\n let harmonicN = u.ints.x;\n let armN = u.ints.y;\n let sampleCount = u.ints.z;\n\n // ── The comet body samples ──\n if (i < sampleCount) {\n // age: 0 at the oldest tail (i = sampleCount−1), 1 at the head (i = 0).\n let denom = max(f32(sampleCount - 1), 1.0);\n let frac = f32(i) / denom; // 0 = head, 1 = tail\n let age = 1.0 - frac; // 1 = head, 0 = tail\n // sample back along the period from the head by trailArc.\n var t = headT - trailArc * frac;\n t = t - floor(t); // fract → [0,1)\n let pt = partialSumAt(t, harmonicN);\n curveSamples[i] = vec4<f32>(pt.x, pt.y, age, 0.0);\n }\n\n // ── The epicycle chain tips (k = 0..armN, capped to harmonicN) ──\n // chainTips[0] is the origin; chainTips[k] is the tip after phasor (k−1).\n let armLim = min(armN, harmonicN);\n if (i <= armLim && i <= MAX_PHASORS) {\n let tip = epicycleChainTip(headT, i);\n chainTips[i] = vec4<f32>(tip.x, tip.y, 0.0, 0.0);\n }\n}\n", oe = `
39
+ // The instanced-ribbon LAYER selector (a pipeline-overridable constant — 5 pipelines share the
40
+ // ONE module, each specializing this): 0 trail · 1 epicycle · 2 head · 3 cel-rope · 4 cel-arm.
41
+ override LAYER: i32 = 0;
42
+
37
43
  const PI: f32 = 3.141592653589793;
38
- const TAU: f32 = 6.283185307179586;
39
- const MAX_CURVE_SAMPLES: i32 = 384;
40
- const MAX_PHASORS: i32 = 64;
41
- const MAX_FOURIER_STOPS: i32 = 4;
42
44
  // BD.W-FOURIER-LOOM §2b — the degenerate-tangent guard (must equal FOURIER_TANGENT_EPS in
43
45
  // constants.ts + the GL CPU bead path so a cusp resolves IDENTICALLY across both engines).
44
46
  const TANGENT_EPS: f32 = 1e-4;
45
- // The speed yardstick: the head speed (model units between curveSamples[0] and [1]) is
46
- // normalized against this many trail half-widths so ŝ ∈ [0,1] is scale-free + parity-safe.
47
47
  const SPEED_REF_HALFWIDTHS: f32 = 6.0;
48
+ // BG.W-FOURIER-BEAUTY B1 — the THICK luminous RIBBON. RIBBON_TAIL_FRAC is MIRRORED verbatim
49
+ // from constants.ts (the WGSL twin cannot import a TS const); proof:viz FB1 cross-checks the
50
+ // two copies are equal so the mid-body floor (RIBBON_HEAD_FLOOR_PX) can never drift off it.
51
+ const RIBBON_TAIL_FRAC: f32 = 0.4;
52
+ const RIBBON_UNDERGLOW_SCALE: f32 = 2.2;
53
+ const RIBBON_UNDERGLOW_ALPHA: f32 = 0.16;
48
54
 
49
55
  // ── Render uniforms (the typed-struct source-of-truth — see uniformBridgeWGPU.ts) ──
50
56
  struct RenderUniforms {
@@ -54,7 +60,7 @@ struct RenderUniforms {
54
60
  r1: vec4<f32>,
55
61
  // r2: (trailFloor, intensity, showEpicycles, rainbowChain)
56
62
  r2: vec4<f32>,
57
- // r3: (squashGain, celGain, _pad, _pad) — FOURIER-LOOM §2b/§3b
63
+ // r3: (squashGain, celGain, edgeMargin, _pad) — FOURIER-LOOM §2b/§3b + the ribbon bbox slop
58
64
  r3: vec4<f32>,
59
65
  // ints: (sampleCount, armCount, stopCount, _pad)
60
66
  ints: vec4<i32>,
@@ -63,15 +69,14 @@ struct RenderUniforms {
63
69
  };
64
70
 
65
71
  @group(0) @binding(0) var<uniform> u: RenderUniforms;
66
- // curveSamples[i] = (x, y, age, _pad) in MODEL space
72
+ // curveSamples[i] = (x, y, age, _pad) in MODEL space — the render VERTEX-PULLS these.
67
73
  @group(0) @binding(1) var<storage, read> curveSamples: array<vec4<f32>>;
68
- // chainTips[k] = (x, y, _pad, _pad) in MODEL space
74
+ // chainTips[k] = (x, y, _pad, _pad) in MODEL space.
69
75
  @group(0) @binding(2) var<storage, read> chainTips: array<vec4<f32>>;
70
76
 
71
- ${r}
72
- ${a}
77
+ ${s}
78
+ ${l}
73
79
 
74
- // Sample the multi-stop palette (linear-sRGB stops, OKLab mix). t in [0,1].
75
80
  fn samplePaletteLin(t: f32) -> vec3<f32> {
76
81
  let stopCount = u.ints.z;
77
82
  if (stopCount <= 1) { return u.palette[0].rgb; }
@@ -85,21 +90,17 @@ fn samplePaletteLin(t: f32) -> vec3<f32> {
85
90
  return oklabToLinearSrgb(mix(labA, labB, f));
86
91
  }
87
92
 
88
- // A warm-anchored chain hue sweep over the palette base — the rainbow chain register.
89
- // Tilts the base hue by a tight warm-ward band so the chain stays colourful but warm.
90
93
  fn chainColorLin(seg: f32, rainbow: bool) -> vec3<f32> {
91
94
  let baseLin = u.palette[0].rgb;
92
95
  if (!rainbow) { return baseLin; }
93
96
  let lab = LMS_TO_OKLAB * cbrt3(LINEAR_SRGB_TO_LMS * baseLin);
94
97
  let lch = oklabToOklch(lab);
95
- // warm-anchored: a touch cool at the root climbing warm toward the tips.
96
- let hueShift = mix(-0.45, 1.15, clamp(seg, 0.0, 1.0)); // radians (~ -26°..+66°)
98
+ let hueShift = mix(-0.45, 1.15, clamp(seg, 0.0, 1.0));
97
99
  let h = lch.z + hueShift;
98
100
  let lifted = vec3<f32>(0.66, max(lch.y, 0.14), h);
99
101
  return oklabToLinearSrgb(oklchToOklab(lifted));
100
102
  }
101
103
 
102
- // Distance from point p to segment ab (model space).
103
104
  fn segDist(p: vec2<f32>, a: vec2<f32>, b: vec2<f32>) -> f32 {
104
105
  let pa = p - a;
105
106
  let ba = b - a;
@@ -107,9 +108,7 @@ fn segDist(p: vec2<f32>, a: vec2<f32>, b: vec2<f32>) -> f32 {
107
108
  return length(pa - ba * h);
108
109
  }
109
110
 
110
- // BD.W-FOURIER-LOOM §2b — the head travel frame: the unit tangent T from curveSamples[0]
111
- // (head) vs [1] (one step back) + the normalized speed ŝ ∈ [0,1]. The cusp guard returns
112
- // the +x axis as the stable fallback when s ≤ TANGENT_EPS, identical to the GL CPU path.
111
+ // BD.W-FOURIER-LOOM §2b — the head travel frame + the volume-preserving anisotropic distance.
113
112
  struct HeadFrame { T: vec2<f32>, sHat: f32, };
114
113
  fn headFrame(head: vec2<f32>, headBack: vec2<f32>, halfW: f32) -> HeadFrame {
115
114
  let d = head - headBack;
@@ -126,9 +125,6 @@ fn headFrame(head: vec2<f32>, headBack: vec2<f32>, halfW: f32) -> HeadFrame {
126
125
  return out;
127
126
  }
128
127
 
129
- // The volume-preserving anisotropic head distance: project (p − head) onto T and T⊥, stretch
130
- // the tangent extent by (1 + k·ŝ) and squeeze the normal extent by 1/(1 + k·ŝ), then length.
131
- // k = 0 (or ŝ = 0) collapses to the round disc length(p − head) — byte-frozen at rest.
132
128
  fn headAniso(p: vec2<f32>, head: vec2<f32>, fr: HeadFrame, k: f32) -> f32 {
133
129
  let g = 1.0 + k * fr.sHat;
134
130
  let n = vec2<f32>(-fr.T.y, fr.T.x);
@@ -138,165 +134,226 @@ fn headAniso(p: vec2<f32>, head: vec2<f32>, fr: HeadFrame, k: f32) -> f32 {
138
134
  return length(vec2<f32>(along, across));
139
135
  }
140
136
 
137
+ // The cel ink lags behind the travel — the SAME −T·halfW·1.4 offset both engines apply (the
138
+ // head frame is read straight off the compute-filled curveSamples[0]/[1], parity by construction).
139
+ fn celOffset(halfW: f32) -> vec2<f32> {
140
+ let fr = headFrame(curveSamples[0].xy, curveSamples[1].xy, halfW);
141
+ return -fr.T * halfW * 1.4;
142
+ }
143
+
144
+ // The unit quad as two triangles (6 verts) in [0,1]² — the instanced vertex expands it.
145
+ fn quadCorner(vi: u32) -> vec2<f32> {
146
+ var c = array<vec2<f32>, 6>(
147
+ vec2<f32>(0.0, 0.0), vec2<f32>(1.0, 0.0), vec2<f32>(0.0, 1.0),
148
+ vec2<f32>(0.0, 1.0), vec2<f32>(1.0, 0.0), vec2<f32>(1.0, 1.0),
149
+ );
150
+ return c[vi];
151
+ }
152
+
141
153
  struct VSOut {
142
154
  @builtin(position) pos: vec4<f32>,
143
- @location(0) model: vec2<f32>, // model-space coordinate of this fragment
155
+ @location(0) p: vec2<f32>, // model-space fragment coordinate
156
+ @location(1) a: vec2<f32>,
157
+ @location(2) b: vec2<f32>,
158
+ @location(3) segData: vec3<f32>, // (age, strokeHalf, arg2)
144
159
  };
145
160
 
146
161
  @vertex
147
- fn vs_main(@builtin(vertex_index) vi: u32) -> VSOut {
148
- // Full-screen triangle (covers the viewport with 3 verts).
149
- var p = array<vec2<f32>, 3>(
150
- vec2<f32>(-1.0, -3.0), vec2<f32>(-1.0, 1.0), vec2<f32>(3.0, 1.0),
151
- );
152
- let clip = p[vi];
153
- // Inverse of the model→clip fit: clip = (model − center)·scale, aspect-corrected x.
154
- // → model = center + clip·(1/scale), x un-aspect-corrected.
162
+ fn vs_main(@builtin(vertex_index) vi: u32, @builtin(instance_index) inst: u32) -> VSOut {
163
+ let corner = quadCorner(vi);
155
164
  let center = u.r0.xy;
156
165
  let scale = max(u.r0.z, 1e-6);
157
166
  let aspect = max(u.r0.w, 1e-4);
158
- let model = center + vec2<f32>(clip.x * aspect, clip.y) / scale;
167
+ let halfW = u.r1.x * 0.5;
168
+ let margin = u.r3.z;
169
+
170
+ var a: vec2<f32> = vec2<f32>(0.0);
171
+ var b: vec2<f32> = vec2<f32>(0.0);
172
+ var strokeHalf: f32 = halfW;
173
+ var age: f32 = 0.0;
174
+ var arg2: f32 = 0.0;
175
+ var isCapsule: bool = true;
176
+ var ext: f32 = halfW;
177
+
178
+ if (LAYER == 0) {
179
+ // TRAIL — the curve capsule; the covered extent is the head-width under-glow.
180
+ a = curveSamples[inst].xy;
181
+ b = curveSamples[inst + 1u].xy;
182
+ age = max(curveSamples[inst].z, curveSamples[inst + 1u].z);
183
+ ext = halfW * RIBBON_UNDERGLOW_SCALE;
184
+ isCapsule = true;
185
+ } else if (LAYER == 1) {
186
+ // EPICYCLE — the chain AABB around a (radius = |b−a|).
187
+ a = chainTips[inst].xy;
188
+ b = chainTips[inst + 1u].xy;
189
+ arg2 = f32(inst) / max(f32(u.ints.y - 1), 1.0);
190
+ ext = length(b - a) + halfW * 0.7;
191
+ isCapsule = false;
192
+ } else if (LAYER == 2) {
193
+ // HEAD — the comet head at curveSamples[0], AABB by the halo radius.
194
+ a = curveSamples[0].xy;
195
+ b = curveSamples[1].xy;
196
+ ext = halfW * 4.5;
197
+ isCapsule = false;
198
+ } else if (LAYER == 3) {
199
+ // CEL-ROPE — the curve capsule, offset opposite travel; full-width ink.
200
+ let off = celOffset(halfW);
201
+ a = curveSamples[inst].xy + off;
202
+ b = curveSamples[inst + 1u].xy + off;
203
+ arg2 = 1.0;
204
+ ext = halfW;
205
+ isCapsule = true;
206
+ } else {
207
+ // CEL-ARM (LAYER == 4) — the chain capsule, offset; the narrower arm ink (0.55·halfW).
208
+ let off = celOffset(halfW);
209
+ a = chainTips[inst].xy + off;
210
+ b = chainTips[inst + 1u].xy + off;
211
+ strokeHalf = halfW * 0.55;
212
+ arg2 = 0.7;
213
+ ext = halfW * 0.55;
214
+ isCapsule = true;
215
+ }
216
+ ext = ext + margin;
159
217
 
218
+ var pos: vec2<f32>;
219
+ if (isCapsule) {
220
+ let d = b - a;
221
+ let len = length(d);
222
+ var dir = vec2<f32>(1.0, 0.0);
223
+ if (len > 1e-6) { dir = d / len; }
224
+ let perp = vec2<f32>(-dir.y, dir.x);
225
+ let along = mix(a - dir * ext, b + dir * ext, corner.x);
226
+ pos = along + perp * (corner.y * 2.0 - 1.0) * ext;
227
+ } else {
228
+ pos = a + (corner * 2.0 - vec2<f32>(1.0)) * ext;
229
+ }
230
+
231
+ let clipX = (pos.x - center.x) * scale / aspect;
232
+ let clipY = (pos.y - center.y) * scale;
160
233
  var out: VSOut;
161
- out.pos = vec4<f32>(clip, 0.0, 1.0);
162
- out.model = model;
234
+ out.pos = vec4<f32>(clipX, clipY, 0.0, 1.0);
235
+ out.p = pos;
236
+ out.a = a;
237
+ out.b = b;
238
+ out.segData = vec3<f32>(age, strokeHalf, arg2);
163
239
  return out;
164
240
  }
165
241
 
166
242
  @fragment
167
243
  fn fs_main(in: VSOut) -> @location(0) vec4<f32> {
168
- let p = in.model;
169
- // AA feather: one device pixel in model units (fwidth of the model coord).
244
+ let p = in.p;
170
245
  let aa = max(fwidth(p.x) + fwidth(p.y), 1e-5) * 0.75;
171
-
172
- let trailWidth = u.r1.x; // already in model units (packed CPU-side)
173
- let peak = u.r1.y * u.r2.y; // peakAlpha · intensity
246
+ let peak = u.r1.y * u.r2.y;
174
247
  let headGlow = u.r1.z * u.r2.y;
175
248
  let fadeExp = u.r1.w;
176
249
  let trailFloor = u.r2.x;
177
- let sampleCount = u.ints.x;
178
- let armCount = u.ints.y;
179
- let showEpicycles = u.r2.z > 0.5;
180
250
  let rainbow = u.r2.w > 0.5;
181
- let squashGain = u.r3.x; // FOURIER-LOOM §2b
182
- let celGain = u.r3.y; // FOURIER-LOOM §3b
183
- let halfW = trailWidth * 0.5;
184
-
185
- // BD.W-FOURIER-LOOM §2b — the head travel frame (the SAME curveSamples[0]/[1] both engines
186
- // read → parity by construction). The cel offset (§3b) rides −T (opposite travel).
187
- var headFr: HeadFrame;
188
- headFr.T = vec2<f32>(1.0, 0.0);
189
- headFr.sHat = 0.0;
190
- if (sampleCount >= 2) {
191
- headFr = headFrame(curveSamples[0].xy, curveSamples[1].xy, halfW);
192
- }
193
- let celOff = -headFr.T * halfW * 1.4; // the ink lags behind the travel
251
+ let squashGain = u.r3.x;
252
+ let celGain = u.r3.y;
253
+ let halfW = in.segData.y;
254
+ let age = in.segData.x;
255
+ let arg2 = in.segData.z;
256
+ let a = in.a;
257
+ let b = in.b;
194
258
 
195
- var accum = vec4<f32>(0.0); // premultiplied accumulation
196
-
197
- // ── §3b — the cartoon CEL-SHADOW: a darker offset copy of the chain + rope, opposite
198
- // travel, painted FIRST (it sits UNDER the lit chain). PRM-static (the frozen-T travel
199
- // frame is a fixed offset, no live sweep). celGain = 0 → no pass (byte-frozen). ──
200
- if (celGain > 0.001) {
201
- let ink = vec3<f32>(0.0); // pure ink — the technicolor 2-tone shadow
202
- let celA = clamp(celGain, 0.0, 1.0);
203
- // the rope cel (one offset distance-to-curve band).
204
- for (var i = 0; i < MAX_CURVE_SAMPLES; i = i + 1) {
205
- if (i >= sampleCount - 1) { break; }
206
- let sa = curveSamples[i].xy + celOff;
207
- let sb = curveSamples[i + 1].xy + celOff;
208
- let d = segDist(p, sa, sb);
209
- let cover = 1.0 - smoothstep(halfW, halfW + aa, d);
210
- if (cover < 0.002) { continue; }
211
- let m = cover * celA * peak;
212
- accum = vec4<f32>(ink * m, m) + accum * (1.0 - m);
213
- }
214
- // the chain cel (arms only — the bold scaffold ink).
215
- if (showEpicycles && armCount >= 1) {
216
- for (var k = 0; k < MAX_PHASORS; k = k + 1) {
217
- if (k >= armCount) { break; }
218
- let a = chainTips[k].xy + celOff;
219
- let b = chainTips[k + 1].xy + celOff;
220
- let dArm = segDist(p, a, b);
221
- let armMask = 1.0 - smoothstep(halfW * 0.55, halfW * 0.55 + aa, dArm);
222
- let m = armMask * celA * peak * 0.7;
223
- accum = vec4<f32>(ink * m, m) + accum * (1.0 - m);
224
- }
225
- }
226
- }
227
-
228
- // ── Epicycle scaffolding (orbit rings + arms + joint dots) UNDER the curve ──
229
- if (showEpicycles && armCount >= 1) {
230
- for (var k = 0; k < MAX_PHASORS; k = k + 1) {
231
- if (k >= armCount) { break; }
232
- let a = chainTips[k].xy;
233
- let b = chainTips[k + 1].xy;
234
- let seg = f32(k) / max(f32(armCount - 1), 1.0);
235
- let lin = chainColorLin(seg, rainbow);
236
- // orbit RING around a (radius = arm length).
237
- let radius = length(b - a);
238
- let dRing = abs(length(p - a) - radius);
239
- let ringW = max(halfW * 0.45, aa);
240
- let ringMask = (1.0 - smoothstep(ringW, ringW + aa, dRing)) * 0.5;
241
- // ARM segment a→b.
242
- let dArm = segDist(p, a, b);
243
- let armMask = 1.0 - smoothstep(halfW * 0.55, halfW * 0.55 + aa, dArm);
244
- // joint DOT at a.
245
- let dotR = max(halfW * 0.7, aa * 2.0);
246
- let dDot = length(p - a);
247
- let dotMask = 1.0 - smoothstep(dotR, dotR + aa, dDot);
248
- let m = clamp(max(max(ringMask, armMask), dotMask), 0.0, 1.0) * peak * 0.7;
249
- let rgb = clamp(linearToSrgb(lin), vec3<f32>(0.0), vec3<f32>(1.0));
250
- // over-composite (premultiplied).
251
- accum = vec4<f32>(rgb * m, m) + accum * (1.0 - m);
252
- }
253
- }
254
-
255
- // ── The comet TRAIL — min-distance to the curve polyline, per-segment age fade ──
256
- for (var i = 0; i < MAX_CURVE_SAMPLES; i = i + 1) {
257
- if (i >= sampleCount - 1) { break; }
258
- let sa = curveSamples[i];
259
- let sb = curveSamples[i + 1];
260
- let d = segDist(p, sa.xy, sb.xy);
261
- let cover = 1.0 - smoothstep(halfW, halfW + aa, d);
262
- if (cover < 0.002) { continue; }
263
- let age = max(sa.z, sb.z); // 1 at head, 0 at tail
264
- var a = peak * pow(age, fadeExp);
265
- a = max(a, peak * trailFloor);
266
- a = a * cover;
267
- let lin = samplePaletteLin(1.0 - age * 0.4); // warm core, lighter tail
259
+ if (LAYER == 0) {
260
+ // ── TRAIL — the tapered luminous ribbon over its own soft under-glow ──
261
+ let d = segDist(p, a, b);
262
+ let ribbonHalf = halfW * (RIBBON_TAIL_FRAC + (1.0 - RIBBON_TAIL_FRAC) * age);
263
+ let lin = samplePaletteLin(1.0 - age * 0.4);
268
264
  let rgb = clamp(linearToSrgb(lin), vec3<f32>(0.0), vec3<f32>(1.0));
269
- accum = vec4<f32>(rgb * a, a) + accum * (1.0 - a);
270
- }
271
-
272
- // ── The comet HEAD — squash-and-stretch (§2b) halo + saturated core + white specular.
273
- // dHead is the volume-preserving anisotropic distance off the travel frame; at rest
274
- // (sHat=0) or squashGain=0 it collapses to the round disc length(p − head). ──
275
- if (sampleCount >= 1) {
276
- let head = curveSamples[0].xy;
277
- let dHead = headAniso(p, head, headFr, squashGain);
265
+ let glowHalf = ribbonHalf * RIBBON_UNDERGLOW_SCALE;
266
+ let glowCover = 1.0 - smoothstep(glowHalf, glowHalf + aa * 3.0, d);
267
+ let ga = peak * RIBBON_UNDERGLOW_ALPHA * pow(age, fadeExp) * glowCover;
268
+ let cover = 1.0 - smoothstep(ribbonHalf, ribbonHalf + aa, d);
269
+ let ca = max(peak * pow(age, fadeExp), peak * trailFloor) * cover;
270
+ let outA = ca + ga * (1.0 - ca);
271
+ return vec4<f32>(rgb * outA, outA);
272
+ } else if (LAYER == 1) {
273
+ // ── EPICYCLE — orbit RING + ARM + joint DOT union (MAX-blended, no join seam) ──
274
+ let lin = chainColorLin(arg2, rainbow);
275
+ let rgb = clamp(linearToSrgb(lin), vec3<f32>(0.0), vec3<f32>(1.0));
276
+ let radius = length(b - a);
277
+ let dRing = abs(length(p - a) - radius);
278
+ let ringW = max(halfW * 0.45, aa);
279
+ let ringMask = (1.0 - smoothstep(ringW, ringW + aa, dRing)) * 0.5;
280
+ let dArm = segDist(p, a, b);
281
+ let armMask = 1.0 - smoothstep(halfW * 0.55, halfW * 0.55 + aa, dArm);
282
+ let dotR = max(halfW * 0.7, aa * 2.0);
283
+ let dDot = length(p - a);
284
+ let dotMask = 1.0 - smoothstep(dotR, dotR + aa, dDot);
285
+ let m = clamp(max(max(ringMask, armMask), dotMask), 0.0, 1.0) * peak * 0.7;
286
+ return vec4<f32>(rgb * m, m);
287
+ } else if (LAYER == 2) {
288
+ // ── HEAD — squash-and-stretch (§2b): halo + saturated core + white specular ──
289
+ let head = a;
290
+ let headBack = b;
291
+ let fr = headFrame(head, headBack, halfW);
292
+ let dHead = headAniso(p, head, fr, squashGain);
278
293
  let coreR = halfW * 1.5;
279
294
  let haloR = coreR * 3.0;
280
- let headLin = samplePaletteLin(0.0);
281
- let headRgb = clamp(linearToSrgb(headLin), vec3<f32>(0.0), vec3<f32>(1.0));
282
- // soft halo
295
+ let headRgb = clamp(linearToSrgb(samplePaletteLin(0.0)), vec3<f32>(0.0), vec3<f32>(1.0));
283
296
  let halo = (1.0 - smoothstep(0.0, haloR, dHead)) * headGlow * 0.35;
284
- accum = vec4<f32>(headRgb * halo, halo) + accum * (1.0 - halo);
285
- // saturated core
297
+ var accum = vec4<f32>(headRgb * halo, halo);
286
298
  let core = (1.0 - smoothstep(coreR, coreR + aa, dHead)) * headGlow;
287
299
  accum = vec4<f32>(headRgb * core, core) + accum * (1.0 - core);
288
- // white specular
289
300
  let spec = (1.0 - smoothstep(coreR * 0.4, coreR * 0.4 + aa, dHead)) * headGlow * 0.9;
290
301
  accum = vec4<f32>(vec3<f32>(1.0) * spec, spec) + accum * (1.0 - spec);
302
+ return accum;
303
+ } else {
304
+ // ── CEL — the technicolor ink shadow (rope LAYER==3 / arm LAYER==4) ──
305
+ let celA = clamp(celGain, 0.0, 1.0);
306
+ let d = segDist(p, a, b);
307
+ let cover = 1.0 - smoothstep(halfW, halfW + aa, d);
308
+ let m = cover * celA * peak * arg2; // arg2 = celStrength (1.0 rope / 0.7 arm)
309
+ return vec4<f32>(0.0, 0.0, 0.0, m);
291
310
  }
292
-
293
- return accum;
294
311
  }
295
312
  `, B = {
313
+ trail: 0,
314
+ epicycle: 1,
315
+ head: 2,
316
+ "cel-rope": 3,
317
+ "cel-arm": 4
318
+ };
319
+ function se(e) {
320
+ let t = Math.max(0, Math.floor(e.sampleCount) - 1), n = e.showEpicycles ? Math.max(0, Math.floor(e.armCount)) : 0, r = e.celGain > .001, i = [];
321
+ return r && t > 0 && i.push({
322
+ kind: "cel-rope",
323
+ instanceCount: t,
324
+ blend: "over"
325
+ }), r && n > 0 && i.push({
326
+ kind: "cel-arm",
327
+ instanceCount: n,
328
+ blend: "over"
329
+ }), n > 0 && i.push({
330
+ kind: "epicycle",
331
+ instanceCount: n,
332
+ blend: "max"
333
+ }), t > 0 && i.push({
334
+ kind: "trail",
335
+ instanceCount: t,
336
+ blend: "over"
337
+ }), i.push({
338
+ kind: "head",
339
+ instanceCount: 1,
340
+ blend: "over"
341
+ }), i;
342
+ }
343
+ var ce = new Float32Array([
344
+ 0,
345
+ 0,
346
+ 1,
347
+ 0,
348
+ 0,
349
+ 1,
350
+ 1,
351
+ 1
352
+ ]), V = {
296
353
  c0: 0,
297
354
  ints: 4
298
355
  };
299
- function V() {
356
+ function H() {
300
357
  let e = /* @__PURE__ */ new ArrayBuffer(32);
301
358
  return {
302
359
  buffer: e,
@@ -304,11 +361,11 @@ function V() {
304
361
  i32: new Int32Array(e)
305
362
  };
306
363
  }
307
- function H(e, t, n, r, i, a, o) {
364
+ function U(e, t, n, r, i, a, o) {
308
365
  let { f32: s, i32: c } = e;
309
- return s[B.c0 + 0] = t, s[B.c0 + 1] = n, s[B.c0 + 2] = 0, s[B.c0 + 3] = 0, c[B.ints + 0] = r, c[B.ints + 1] = i, c[B.ints + 2] = a, c[B.ints + 3] = o, e;
366
+ return s[V.c0 + 0] = t, s[V.c0 + 1] = n, s[V.c0 + 2] = 0, s[V.c0 + 3] = 0, c[V.ints + 0] = r, c[V.ints + 1] = i, c[V.ints + 2] = a, c[V.ints + 3] = o, e;
310
367
  }
311
- var U = 144, W = {
368
+ var le = 144, W = {
312
369
  r0: 0,
313
370
  r1: 4,
314
371
  r2: 8,
@@ -317,7 +374,7 @@ var U = 144, W = {
317
374
  palette: 20
318
375
  };
319
376
  function G() {
320
- let e = new ArrayBuffer(U);
377
+ let e = new ArrayBuffer(le);
321
378
  return {
322
379
  buffer: e,
323
380
  f32: new Float32Array(e),
@@ -327,7 +384,7 @@ function G() {
327
384
  function K(e) {
328
385
  let t = Infinity, n = Infinity, r = -Infinity, i = -Infinity, a = e;
329
386
  for (let e = 0; e < 720; e++) {
330
- let o = m(a, e / 720), [s, c] = o[o.length - 1];
387
+ let o = v(a, e / 720), [s, c] = o[o.length - 1];
331
388
  s < t && (t = s), c < n && (n = c), s > r && (r = s), c > i && (i = c);
332
389
  }
333
390
  if (!isFinite(t)) return {
@@ -342,29 +399,22 @@ function K(e) {
342
399
  scale: c
343
400
  };
344
401
  }
345
- function ee(e, t, n, r) {
346
- let i = Math.max(r, 1e-4), a = (e - n.centerX) * n.scale / i, o = (t - n.centerY) * n.scale;
347
- return {
348
- x: a * .5 + .5,
349
- y: 1 - (o * .5 + .5)
350
- };
351
- }
352
- function q(e, t, n) {
353
- let r = Math.max(n, 1) / 2;
354
- return e / Math.max(t, 1e-6) / r;
402
+ function ue(e, t, n) {
403
+ let r = Math.max(e, R), i = Math.max(n, 1) / 2;
404
+ return r / Math.max(t, 1e-6) / i;
355
405
  }
356
- function te(e, t, n, r, i, a, o, s, c, u, d, f, p, m, h, g) {
357
- let { f32: _, i32: v } = e;
358
- _[W.r0 + 0] = t.centerX, _[W.r0 + 1] = t.centerY, _[W.r0 + 2] = t.scale, _[W.r0 + 3] = n, _[W.r1 + 0] = r, _[W.r1 + 1] = i, _[W.r1 + 2] = a, _[W.r1 + 3] = o, _[W.r2 + 0] = s, _[W.r2 + 1] = c, _[W.r2 + 2] = +!!u, _[W.r2 + 3] = +!!d, _[W.r3 + 0] = f, _[W.r3 + 1] = p, _[W.r3 + 2] = 0, _[W.r3 + 3] = 0;
359
- let y = Math.min(g.length, 4);
360
- v[W.ints + 0] = m, v[W.ints + 1] = h, v[W.ints + 2] = y, v[W.ints + 3] = 0;
406
+ function de(e, t, n, r, i, a, o, s, c, l, u, d, f, m, h, g, _) {
407
+ let { f32: v, i32: y } = e;
408
+ v[W.r0 + 0] = t.centerX, v[W.r0 + 1] = t.centerY, v[W.r0 + 2] = t.scale, v[W.r0 + 3] = n, v[W.r1 + 0] = r, v[W.r1 + 1] = i, v[W.r1 + 2] = a, v[W.r1 + 3] = o, v[W.r2 + 0] = s, v[W.r2 + 1] = c, v[W.r2 + 2] = +!!l, v[W.r2 + 3] = +!!u, v[W.r3 + 0] = d, v[W.r3 + 1] = f, v[W.r3 + 2] = m, v[W.r3 + 3] = 0;
409
+ let b = Math.min(_.length, 4);
410
+ y[W.ints + 0] = h, y[W.ints + 1] = g, y[W.ints + 2] = b, y[W.ints + 3] = 0;
361
411
  for (let e = 0; e < 4; e++) {
362
- let t = W.palette + e * 4, n = l(g[Math.min(e, y - 1)] ?? g[0]);
363
- _[t + 0] = n[0], _[t + 1] = n[1], _[t + 2] = n[2], _[t + 3] = 0;
412
+ let t = W.palette + e * 4, n = p(_[Math.min(e, b - 1)] ?? _[0]);
413
+ v[t + 0] = n[0], v[t + 1] = n[1], v[t + 2] = n[2], v[t + 3] = 0;
364
414
  }
365
415
  return e;
366
416
  }
367
- function ne(e) {
417
+ function fe(e) {
368
418
  let t = Math.min(e.length, 64), n = new Float32Array(256);
369
419
  for (let r = 0; r < t; r++) {
370
420
  let t = e[r], i = r * 4;
@@ -373,37 +423,37 @@ function ne(e) {
373
423
  return n;
374
424
  }
375
425
  //#endregion
376
- //#region src/components/custom/fourier-field/composables/fourierFieldWGPUSetup.ts
377
- var J = 64, Y = 128, X = 8, re = 1, Z = 2, Q = 4, ie = 64, ae = .92, oe = .95, se = 1.35, ce = .34;
378
- function le(e) {
379
- let { canvas: t, config: n, getSpectrum: r, getPalette: i, getHeadT: a, shouldContinue: o, onFrame: c } = e, l = e.getPointerLean;
380
- return function(e, u, d) {
426
+ //#region src/components/fourier-field/composables/fourierFieldWGPUSetup.ts
427
+ var q = 64, J = 128, Y = 8, X = 1, Z = 2, Q = 4, pe = 64, me = .92, he = .95, ge = 1.35, _e = .34;
428
+ function ve(e) {
429
+ let { canvas: t, config: n, getSpectrum: r, getPalette: i, getHeadT: a, shouldContinue: o, onFrame: s } = e, c = e.getPointerLean;
430
+ return function(e, l, u) {
381
431
  let f = e.createShaderModule({
382
432
  label: "[FourierField] fourier-field.compute.wgsl",
383
- code: R
433
+ code: ae
384
434
  }), p = e.createShaderModule({
385
435
  label: "[FourierField] fourier-field.render.wgsl",
386
- code: z
436
+ code: oe
387
437
  }), m = e.createBuffer({
388
438
  label: "[FourierField] phasors",
389
439
  size: 1024,
390
- usage: Y | X
440
+ usage: J | Y
391
441
  }), h = e.createBuffer({
392
442
  label: "[FourierField] curve-samples",
393
443
  size: 384 * 16,
394
- usage: Y
444
+ usage: J
395
445
  }), g = e.createBuffer({
396
446
  label: "[FourierField] chain-tips",
397
447
  size: 1040,
398
- usage: Y
448
+ usage: J
399
449
  }), _ = e.createBuffer({
400
450
  label: "[FourierField] compute-uniforms",
401
- size: V().buffer.byteLength,
402
- usage: J | X
451
+ size: H().buffer.byteLength,
452
+ usage: q | Y
403
453
  }), v = e.createBuffer({
404
454
  label: "[FourierField] render-uniforms",
405
455
  size: G().buffer.byteLength,
406
- usage: J | X
456
+ usage: q | Y
407
457
  }), y = e.createBindGroupLayout({
408
458
  label: "[FourierField] compute-bgl",
409
459
  entries: [
@@ -461,48 +511,67 @@ function le(e) {
461
511
  entries: [
462
512
  {
463
513
  binding: 0,
464
- visibility: re | Z,
514
+ visibility: X | Z,
465
515
  buffer: { type: "uniform" }
466
516
  },
467
517
  {
468
518
  binding: 1,
469
- visibility: Z,
519
+ visibility: X | Z,
470
520
  buffer: { type: "read-only-storage" }
471
521
  },
472
522
  {
473
523
  binding: 2,
474
- visibility: Z,
524
+ visibility: X | Z,
475
525
  buffer: { type: "read-only-storage" }
476
526
  }
477
527
  ]
478
- }), C = e.createRenderPipeline({
479
- label: "[FourierField] render-pipeline",
480
- layout: e.createPipelineLayout({ bindGroupLayouts: [S] }),
528
+ }), C = e.createPipelineLayout({ bindGroupLayouts: [S] }), w = {
529
+ color: {
530
+ srcFactor: "one",
531
+ dstFactor: "one-minus-src-alpha",
532
+ operation: "add"
533
+ },
534
+ alpha: {
535
+ srcFactor: "one",
536
+ dstFactor: "one-minus-src-alpha",
537
+ operation: "add"
538
+ }
539
+ }, T = {
540
+ color: {
541
+ srcFactor: "one",
542
+ dstFactor: "one",
543
+ operation: "max"
544
+ },
545
+ alpha: {
546
+ srcFactor: "one",
547
+ dstFactor: "one",
548
+ operation: "max"
549
+ }
550
+ }, E = (t, n) => e.createRenderPipeline({
551
+ label: `[FourierField] ribbon-pipeline-L${t}`,
552
+ layout: C,
481
553
  vertex: {
482
554
  module: p,
483
- entryPoint: "vs_main"
555
+ entryPoint: "vs_main",
556
+ constants: { LAYER: t }
484
557
  },
485
558
  fragment: {
486
559
  module: p,
487
560
  entryPoint: "fs_main",
561
+ constants: { LAYER: t },
488
562
  targets: [{
489
- format: d,
490
- blend: {
491
- color: {
492
- srcFactor: "one",
493
- dstFactor: "one-minus-src-alpha",
494
- operation: "add"
495
- },
496
- alpha: {
497
- srcFactor: "one",
498
- dstFactor: "one-minus-src-alpha",
499
- operation: "add"
500
- }
501
- }
563
+ format: u,
564
+ blend: n
502
565
  }]
503
566
  },
504
567
  primitive: { topology: "triangle-list" }
505
- }), w = e.createBindGroup({
568
+ }), D = {
569
+ trail: E(B.trail, w),
570
+ epicycle: E(B.epicycle, T),
571
+ head: E(B.head, w),
572
+ "cel-rope": E(B["cel-rope"], w),
573
+ "cel-arm": E(B["cel-arm"], w)
574
+ }, O = e.createBindGroup({
506
575
  label: "[FourierField] render-bg",
507
576
  layout: S,
508
577
  entries: [
@@ -519,36 +588,33 @@ function le(e) {
519
588
  resource: { buffer: g }
520
589
  }
521
590
  ]
522
- }), T = V(), E = G(), D = null, O = {
591
+ }), k = H(), A = G(), j = null, M = {
523
592
  centerX: 0,
524
593
  centerY: 0,
525
594
  scale: 1
526
- }, k = 0;
527
- function A() {
595
+ }, N = 0;
596
+ function P() {
528
597
  let t = r();
529
- t !== D && (D = t, k = Math.min(t.length, 64), O = K(t), e.queue.writeBuffer(m, 0, ne(t)));
530
- }
531
- function j() {
532
- let e = s(), n = t.clientWidth || 320, r = t.clientHeight || 320, i = Math.max(1, Math.round(n * e)), a = Math.max(1, Math.round(r * e));
533
- (t.width !== i || t.height !== a) && (t.width = i, t.height = a);
598
+ t !== j && (j = t, N = Math.min(t.length, 64), M = K(t), e.queue.writeBuffer(m, 0, fe(t)));
534
599
  }
535
- function M(r) {
536
- c?.(r), A();
537
- let o = a(), s = Math.max(1, Math.min(Math.round(n.harmonics), k)), d = n.showEpicycles ? Math.max(1, Math.min(Math.round(n.epicycleArms), s)) : 0;
538
- H(T, o, n.trailArc, s, d, 384, k), e.queue.writeBuffer(_, 0, T.buffer);
539
- let f = Math.min(t.clientWidth || 320, t.clientHeight || 320), p = (t.clientWidth || 320) / Math.max(t.clientHeight || 320, 1), m = q(n.trailWidth, O.scale, f), h = l?.() ?? {
600
+ function F(e) {}
601
+ function I(r) {
602
+ s?.(r), P();
603
+ let o = a(), u = Math.max(1, Math.min(Math.round(n.harmonics), N)), f = n.showEpicycles ? Math.max(1, Math.min(Math.round(n.epicycleArms), u)) : 0;
604
+ U(k, o, n.trailArc, u, f, 384, N), e.queue.writeBuffer(_, 0, k.buffer);
605
+ let p = Math.min(t.width, t.height) / Math.max(d(), 1), m = t.width / Math.max(t.height, 1), h = ue(n.trailWidth, M.scale, p), g = 12 / (Math.max(M.scale, 1e-6) * Math.max(p, 1)), y = c?.() ?? {
540
606
  x: 0,
541
607
  y: 0
542
608
  };
543
- te(E, h.x !== 0 || h.y !== 0 ? {
544
- ...O,
545
- centerX: O.centerX - h.x,
546
- centerY: O.centerY - h.y
547
- } : O, p, m, ae, oe, se, ce, n.intensity, n.showEpicycles, n.rainbowChain, n.squashGain, n.celGain, 384, d, i()), e.queue.writeBuffer(v, 0, E.buffer);
548
- let g = e.createCommandEncoder({ label: "[FourierField] frame" }), y = g.beginComputePass();
549
- y.setPipeline(b), y.setBindGroup(0, x), y.dispatchWorkgroups(Math.ceil(384 / ie)), y.end();
550
- let S = u.getCurrentTexture().createView(), D = g.beginRenderPass({ colorAttachments: [{
551
- view: S,
609
+ de(A, y.x !== 0 || y.y !== 0 ? {
610
+ ...M,
611
+ centerX: M.centerX - y.x,
612
+ centerY: M.centerY - y.y
613
+ } : M, m, h, me, he, ge, _e, n.intensity, n.showEpicycles, n.rainbowChain, n.squashGain, n.celGain, g, 384, f, i()), e.queue.writeBuffer(v, 0, A.buffer);
614
+ let S = e.createCommandEncoder({ label: "[FourierField] frame" }), C = S.beginComputePass();
615
+ C.setPipeline(b), C.setBindGroup(0, x), C.dispatchWorkgroups(Math.ceil(384 / pe)), C.end();
616
+ let w = l.getCurrentTexture().createView(), T = S.beginRenderPass({ colorAttachments: [{
617
+ view: w,
552
618
  clearValue: {
553
619
  r: 0,
554
620
  g: 0,
@@ -558,12 +624,20 @@ function le(e) {
558
624
  loadOp: "clear",
559
625
  storeOp: "store"
560
626
  }] });
561
- D.setPipeline(C), D.setBindGroup(0, w), D.draw(3, 1, 0, 0), D.end(), e.queue.submit([g.finish()]);
627
+ T.setBindGroup(0, O);
628
+ let E = se({
629
+ sampleCount: 384,
630
+ armCount: f,
631
+ showEpicycles: n.showEpicycles,
632
+ celGain: n.celGain
633
+ });
634
+ for (let e of E) T.setPipeline(D[e.kind]), T.draw(6, e.instanceCount, 0, 0);
635
+ T.end(), e.queue.submit([S.finish()]);
562
636
  }
563
637
  return {
564
- frame: M,
638
+ frame: I,
565
639
  shouldContinue: o,
566
- resize: j,
640
+ resize: F,
567
641
  teardown: () => {
568
642
  m.destroy(), h.destroy(), g.destroy(), _.destroy(), v.destroy();
569
643
  }
@@ -571,35 +645,40 @@ function le(e) {
571
645
  };
572
646
  }
573
647
  //#endregion
574
- //#region src/components/custom/fourier-field/shaders/fourier-field.glsl.ts
575
- var ue = "#version 300 es\nin vec2 aPosition;\nout vec2 vClip;\nvoid main() {\n vClip = aPosition;\n gl_Position = vec4(aPosition, 0.0, 1.0);\n}\n", de = `#version 300 es
648
+ //#region src/components/fourier-field/shaders/fourier-field.glsl.ts
649
+ var ye = "#version 300 es\n// BI.W-FOURIER-RIBBON §2b — MUST equal the WGSL twin + FOURIER_TANGENT_EPS (constants.ts).\n#define RIBBON_UNDERGLOW_SCALE 2.2\n\nin vec2 aCorner; // the unit quad corner ∈ [0,1]²\nin vec4 aSeg; // (ax, ay, bx, by) — segment endpoints in MODEL space\nin vec4 aData; // (age, strokeHalf, arg2, _pad) — strokeHalf/age/arg2 per layer\n\nuniform vec4 uFit; // (centerX, centerY, scale, aspect) — model→clip fit\nuniform int uLayer; // 0 trail · 1 epicycle · 2 head · 3 cel-rope · 4 cel-arm\nuniform float uEdgeMargin; // AA-feather slop in MODEL units (a few CSS px), padding the bbox\n\nout vec2 vP; // the MODEL-space fragment coordinate (the fs runs the SDF on it)\nout vec2 vA;\nout vec2 vB;\nout float vAge;\nout float vHalf;\nout float vArg2;\n\nvoid main() {\n vec2 a = aSeg.xy;\n vec2 b = aSeg.zw;\n float strokeHalf = aData.y;\n vA = a; vB = b; vAge = aData.x; vHalf = strokeHalf; vArg2 = aData.z;\n\n vec2 pos;\n if (uLayer == 1 || uLayer == 2) {\n // AABB around a — the epicycle orbit RING (radius = |b-a|) or the head HALO.\n float ext = (uLayer == 1) ? (length(b - a) + strokeHalf * 0.7) : (strokeHalf * 4.5);\n ext += uEdgeMargin;\n pos = a + (aCorner * 2.0 - 1.0) * ext;\n } else {\n // Capsule along a→b padded by the covered extent (trail under-glow / cel stroke).\n float ext = (uLayer == 0) ? (strokeHalf * RIBBON_UNDERGLOW_SCALE) : strokeHalf;\n ext += uEdgeMargin;\n vec2 d = b - a;\n float len = length(d);\n vec2 dir = len > 1e-6 ? d / len : vec2(1.0, 0.0);\n vec2 perp = vec2(-dir.y, dir.x);\n vec2 along = mix(a - dir * ext, b + dir * ext, aCorner.x);\n pos = along + perp * (aCorner.y * 2.0 - 1.0) * ext;\n }\n\n vP = pos;\n vec2 center = uFit.xy;\n float scale = max(uFit.z, 1e-6);\n float aspect = max(uFit.w, 1e-4);\n // model → clip (the inverse of the fs's p = center + vClip·aspect / scale).\n float clipX = (pos.x - center.x) * scale / aspect;\n float clipY = (pos.y - center.y) * scale;\n gl_Position = vec4(clipX, clipY, 0.0, 1.0);\n}\n", be = `#version 300 es
576
650
  precision highp float;
577
651
 
578
- #define MAX_CURVE_SAMPLES 256
579
- #define MAX_PHASORS 64
652
+ #define MAX_FOURIER_STOPS 4
580
653
  // BD.W-FOURIER-LOOM §2b — MUST equal the WGSL twin + FOURIER_TANGENT_EPS (constants.ts).
581
654
  #define TANGENT_EPS 1e-4
582
655
  #define SPEED_REF_HALFWIDTHS 6.0
656
+ // BG.W-FOURIER-BEAUTY B1 — the THICK luminous RIBBON. RIBBON_TAIL_FRAC is MIRRORED verbatim
657
+ // from constants.ts (the GLSL twin cannot import a TS const); proof:viz FB1 cross-checks the
658
+ // two copies are equal so the mid-body floor (RIBBON_HEAD_FLOOR_PX) can never drift off it.
659
+ #define RIBBON_TAIL_FRAC 0.4
660
+ #define RIBBON_UNDERGLOW_SCALE 2.2
661
+ #define RIBBON_UNDERGLOW_ALPHA 0.16
583
662
 
584
- in vec2 vClip;
663
+ in vec2 vP;
664
+ in vec2 vA;
665
+ in vec2 vB;
666
+ in float vAge;
667
+ in float vHalf;
668
+ in float vArg2;
585
669
  out vec4 fragColor;
586
670
 
587
- uniform vec4 uFit; // (centerX, centerY, scale, aspect)
588
- uniform vec4 uTrail; // (trailWidth, peakAlpha, headGlowAlpha, trailFadeExp)
589
- uniform vec4 uEnv; // (trailFloor, intensity, showEpicycles, rainbowChain)
590
- uniform vec4 uLoom; // (squashGain, celGain, _pad, _pad) — FOURIER-LOOM §2b/§3b
591
- uniform int uSampleCount;
592
- uniform int uArmCount;
671
+ uniform vec4 uTrail; // (trailWidth, peakAlpha, headGlowAlpha, trailFadeExp)
672
+ uniform vec4 uEnv; // (trailFloor, intensity, showEpicycles, rainbowChain)
673
+ uniform vec4 uLoom; // (squashGain, celGain, _pad, _pad) — FOURIER-LOOM §2b/§3b
674
+ uniform int uLayer; // 0 trail · 1 epicycle · 2 head · 3 cel-rope · 4 cel-arm
593
675
  uniform int uStopCount;
594
- uniform vec3 uPalette[4]; // linear-sRGB stops
595
- // curveSamples[i] = (x, y, age) in MODEL space; chainTips[k] = (x, y) in MODEL space.
596
- uniform vec3 uCurve[MAX_CURVE_SAMPLES];
597
- uniform vec2 uChain[MAX_PHASORS];
676
+ uniform vec3 uPalette[MAX_FOURIER_STOPS]; // linear-sRGB stops
598
677
 
599
678
  const float PI = 3.141592653589793;
600
679
 
601
- ${i}
602
- ${o}
680
+ ${c}
681
+ ${u}
603
682
 
604
683
  // Negative-safe cube root (the WGSL chunk's cbrt3 twin; the GLSL chunk inlines it).
605
684
  vec3 cbrt3(vec3 v) { return sign(v) * pow(abs(v), vec3(1.0 / 3.0)); }
@@ -634,8 +713,6 @@ float segDist(vec2 p, vec2 a, vec2 b) {
634
713
  }
635
714
 
636
715
  // BD.W-FOURIER-LOOM §2b — the head travel frame (T, ŝ), the GLSL twin of the WGSL headFrame.
637
- // The cusp guard returns +x as the stable fallback when s ≤ TANGENT_EPS — identical to the
638
- // WGSL twin + the CPU bead path.
639
716
  struct HeadFrame { vec2 T; float sHat; };
640
717
  HeadFrame headFrame(vec2 head, vec2 headBack, float halfW) {
641
718
  vec2 d = head - headBack;
@@ -659,119 +736,78 @@ float headAniso(vec2 p, vec2 head, HeadFrame fr, float k) {
659
736
  }
660
737
 
661
738
  void main() {
662
- vec2 center = uFit.xy;
663
- float scale = max(uFit.z, 1e-6);
664
- float aspect = max(uFit.w, 1e-4);
665
- // clip → model (the inverse of model→clip fit).
666
- vec2 p = center + vec2(vClip.x * aspect, vClip.y) / scale;
667
-
739
+ vec2 p = vP;
668
740
  float aa = max(fwidth(p.x) + fwidth(p.y), 1e-5) * 0.75;
669
- float trailWidth = uTrail.x; // already in model units (packed CPU-side)
670
741
  float peak = uTrail.y * uEnv.y;
671
742
  float headGlow = uTrail.z * uEnv.y;
672
743
  float fadeExp = uTrail.w;
673
744
  float trailFloor = uEnv.x;
674
- bool showEpicycles = uEnv.z > 0.5;
675
745
  bool rainbow = uEnv.w > 0.5;
676
- float squashGain = uLoom.x; // FOURIER-LOOM §2b
677
- float celGain = uLoom.y; // FOURIER-LOOM §3b
678
- float halfW = trailWidth * 0.5;
679
-
680
- // §2b — the head travel frame (SAME uCurve[0]/[1] the WGSL twin reads → parity).
681
- HeadFrame headFr;
682
- headFr.T = vec2(1.0, 0.0);
683
- headFr.sHat = 0.0;
684
- if (uSampleCount >= 2) {
685
- headFr = headFrame(uCurve[0].xy, uCurve[1].xy, halfW);
686
- }
687
- vec2 celOff = -headFr.T * halfW * 1.4;
688
-
689
- vec4 accum = vec4(0.0);
690
-
691
- // §3b — the cartoon CEL-SHADOW: a darker offset copy of the rope + chain, opposite travel,
692
- // painted FIRST (under the lit chain). PRM-static; celGain = 0 → no pass (byte-frozen).
693
- if (celGain > 0.001) {
694
- vec3 ink = vec3(0.0);
695
- float celA = clamp(celGain, 0.0, 1.0);
696
- for (int i = 0; i < MAX_CURVE_SAMPLES; i++) {
697
- if (i >= uSampleCount - 1) break;
698
- vec2 sa = uCurve[i].xy + celOff;
699
- vec2 sb = uCurve[i + 1].xy + celOff;
700
- float d = segDist(p, sa, sb);
701
- float cover = 1.0 - smoothstep(halfW, halfW + aa, d);
702
- if (cover < 0.002) continue;
703
- float m = cover * celA * peak;
704
- accum = vec4(ink * m, m) + accum * (1.0 - m);
705
- }
706
- if (showEpicycles && uArmCount >= 1) {
707
- for (int k = 0; k < MAX_PHASORS; k++) {
708
- if (k >= uArmCount) break;
709
- vec2 a = uChain[k] + celOff;
710
- vec2 b = uChain[k + 1] + celOff;
711
- float dArm = segDist(p, a, b);
712
- float armMask = 1.0 - smoothstep(halfW * 0.55, halfW * 0.55 + aa, dArm);
713
- float m = armMask * celA * peak * 0.7;
714
- accum = vec4(ink * m, m) + accum * (1.0 - m);
715
- }
716
- }
717
- }
746
+ float squashGain = uLoom.x;
747
+ float celGain = uLoom.y;
748
+ float halfW = vHalf;
718
749
 
719
- if (showEpicycles && uArmCount >= 1) {
720
- for (int k = 0; k < MAX_PHASORS; k++) {
721
- if (k >= uArmCount) break;
722
- vec2 a = uChain[k];
723
- vec2 b = uChain[k + 1];
724
- float seg = float(k) / max(float(uArmCount - 1), 1.0);
725
- vec3 lin = chainColorLin(seg, rainbow);
726
- float radius = length(b - a);
727
- float dRing = abs(length(p - a) - radius);
728
- float ringW = max(halfW * 0.45, aa);
729
- float ringMask = (1.0 - smoothstep(ringW, ringW + aa, dRing)) * 0.5;
730
- float dArm = segDist(p, a, b);
731
- float armMask = 1.0 - smoothstep(halfW * 0.55, halfW * 0.55 + aa, dArm);
732
- float dotR = max(halfW * 0.7, aa * 2.0);
733
- float dDot = length(p - a);
734
- float dotMask = 1.0 - smoothstep(dotR, dotR + aa, dDot);
735
- float m = clamp(max(max(ringMask, armMask), dotMask), 0.0, 1.0) * peak * 0.7;
736
- vec3 rgb = clamp(linearToSrgb(lin), vec3(0.0), vec3(1.0));
737
- accum = vec4(rgb * m, m) + accum * (1.0 - m);
738
- }
739
- }
740
-
741
- for (int i = 0; i < MAX_CURVE_SAMPLES; i++) {
742
- if (i >= uSampleCount - 1) break;
743
- vec3 sa = uCurve[i];
744
- vec3 sb = uCurve[i + 1];
745
- float d = segDist(p, sa.xy, sb.xy);
746
- float cover = 1.0 - smoothstep(halfW, halfW + aa, d);
747
- if (cover < 0.002) continue;
748
- float age = max(sa.z, sb.z);
749
- float a = peak * pow(age, fadeExp);
750
- a = max(a, peak * trailFloor) * cover;
750
+ if (uLayer == 0) {
751
+ // ── TRAIL — the tapered luminous ribbon over its own soft under-glow ──
752
+ float age = vAge;
753
+ float d = segDist(p, vA, vB);
754
+ // B1 — the head→tail TAPER: the ribbon half-width scales with age (thick head, thin tail).
755
+ float ribbonHalf = halfW * (RIBBON_TAIL_FRAC + (1.0 - RIBBON_TAIL_FRAC) * age);
751
756
  vec3 lin = samplePaletteLin(1.0 - age * 0.4);
752
757
  vec3 rgb = clamp(linearToSrgb(lin), vec3(0.0), vec3(1.0));
753
- accum = vec4(rgb * a, a) + accum * (1.0 - a);
754
- }
755
-
756
- if (uSampleCount >= 1) {
757
- vec2 head = uCurve[0].xy;
758
- // §2b — the squash-and-stretch anisotropic head (collapses to the round disc at rest).
759
- float dHead = headAniso(p, head, headFr, squashGain);
758
+ // B1 — the soft UNDER-GLOW: a wider, low-alpha copy UNDER the crisp ribbon (ONE color event).
759
+ float glowHalf = ribbonHalf * RIBBON_UNDERGLOW_SCALE;
760
+ float glowCover = 1.0 - smoothstep(glowHalf, glowHalf + aa * 3.0, d);
761
+ float ga = peak * RIBBON_UNDERGLOW_ALPHA * pow(age, fadeExp) * glowCover;
762
+ // the crisp tapered ribbon core.
763
+ float cover = 1.0 - smoothstep(ribbonHalf, ribbonHalf + aa, d);
764
+ float ca = max(peak * pow(age, fadeExp), peak * trailFloor) * cover;
765
+ // core OVER glow OVER transparent (both premultiplied on the SAME rgb → out = rgb·outA).
766
+ float outA = ca + ga * (1.0 - ca);
767
+ fragColor = vec4(rgb * outA, outA);
768
+ } else if (uLayer == 1) {
769
+ // ── EPICYCLE — orbit RING + ARM + joint DOT union (MAX-blended, no join seam) ──
770
+ float seg = vArg2;
771
+ vec3 lin = chainColorLin(seg, rainbow);
772
+ vec3 rgb = clamp(linearToSrgb(lin), vec3(0.0), vec3(1.0));
773
+ float radius = length(vB - vA);
774
+ float dRing = abs(length(p - vA) - radius);
775
+ float ringW = max(halfW * 0.45, aa);
776
+ float ringMask = (1.0 - smoothstep(ringW, ringW + aa, dRing)) * 0.5;
777
+ float dArm = segDist(p, vA, vB);
778
+ float armMask = 1.0 - smoothstep(halfW * 0.55, halfW * 0.55 + aa, dArm);
779
+ float dotR = max(halfW * 0.7, aa * 2.0);
780
+ float dDot = length(p - vA);
781
+ float dotMask = 1.0 - smoothstep(dotR, dotR + aa, dDot);
782
+ float m = clamp(max(max(ringMask, armMask), dotMask), 0.0, 1.0) * peak * 0.7;
783
+ fragColor = vec4(rgb * m, m);
784
+ } else if (uLayer == 2) {
785
+ // ── HEAD — squash-and-stretch (§2b): halo + saturated core + white specular ──
786
+ vec2 head = vA;
787
+ vec2 headBack = vB;
788
+ HeadFrame fr = headFrame(head, headBack, halfW);
789
+ float dHead = headAniso(p, head, fr, squashGain);
760
790
  float coreR = halfW * 1.5;
761
791
  float haloR = coreR * 3.0;
762
792
  vec3 headRgb = clamp(linearToSrgb(samplePaletteLin(0.0)), vec3(0.0), vec3(1.0));
763
793
  float halo = (1.0 - smoothstep(0.0, haloR, dHead)) * headGlow * 0.35;
764
- accum = vec4(headRgb * halo, halo) + accum * (1.0 - halo);
794
+ vec4 accum = vec4(headRgb * halo, halo);
765
795
  float core = (1.0 - smoothstep(coreR, coreR + aa, dHead)) * headGlow;
766
796
  accum = vec4(headRgb * core, core) + accum * (1.0 - core);
767
797
  float spec = (1.0 - smoothstep(coreR * 0.4, coreR * 0.4 + aa, dHead)) * headGlow * 0.9;
768
798
  accum = vec4(vec3(1.0) * spec, spec) + accum * (1.0 - spec);
799
+ fragColor = accum;
800
+ } else {
801
+ // ── CEL — the technicolor ink shadow (rope uLayer==3 / arm uLayer==4) ──
802
+ float celA = clamp(celGain, 0.0, 1.0);
803
+ float d = segDist(p, vA, vB);
804
+ float cover = 1.0 - smoothstep(halfW, halfW + aa, d);
805
+ float m = cover * celA * peak * vArg2; // vArg2 = celStrength (1.0 rope / 0.7 arm)
806
+ fragColor = vec4(0.0, 0.0, 0.0, m);
769
807
  }
770
-
771
- fragColor = accum;
772
808
  }
773
- `, fe = 256, $ = 64, pe = .92, me = .95, he = 1.35, ge = .34;
774
- function _e(e, t, n) {
809
+ `, xe = 256, $ = 64, Se = .92, Ce = .95, we = 1.35, Te = .34;
810
+ function Ee(e, t, n) {
775
811
  let r = e.createShader(t);
776
812
  if (e.shaderSource(r, n), e.compileShader(r), !e.getShaderParameter(r, e.COMPILE_STATUS)) {
777
813
  let t = e.getShaderInfoLog(r);
@@ -779,212 +815,234 @@ function _e(e, t, n) {
779
815
  }
780
816
  return r;
781
817
  }
782
- function ve(e) {
783
- let { canvas: t, config: n, getSpectrum: r, getPalette: i, getHeadT: a, shouldContinue: o, onFrame: c } = e, u = e.getPointerLean;
818
+ function De(e) {
819
+ let { canvas: t, config: n, getSpectrum: r, getPalette: i, getHeadT: a, shouldContinue: o, onFrame: s } = e, c = e.getPointerLean;
784
820
  return function(e) {
785
- let d = _e(e, e.VERTEX_SHADER, ue), f = _e(e, e.FRAGMENT_SHADER, de), p = e.createProgram();
786
- if (e.attachShader(p, d), e.attachShader(p, f), e.linkProgram(p), !e.getProgramParameter(p, e.LINK_STATUS)) throw Error(`[FourierField] link failed: ${e.getProgramInfoLog(p)}`);
787
- e.deleteShader(d), e.deleteShader(f);
821
+ let l = Ee(e, e.VERTEX_SHADER, ye), u = Ee(e, e.FRAGMENT_SHADER, be), f = e.createProgram();
822
+ if (e.attachShader(f, l), e.attachShader(f, u), e.linkProgram(f), !e.getProgramParameter(f, e.LINK_STATUS)) throw Error(`[FourierField] link failed: ${e.getProgramInfoLog(f)}`);
823
+ e.deleteShader(l), e.deleteShader(u);
788
824
  let m = e.createVertexArray();
789
825
  e.bindVertexArray(m);
790
- let g = e.createBuffer();
791
- e.bindBuffer(e.ARRAY_BUFFER, g), e.bufferData(e.ARRAY_BUFFER, new Float32Array([
792
- -1,
793
- -1,
794
- 3,
795
- -1,
796
- -1,
797
- 3
798
- ]), e.STATIC_DRAW);
799
- let _ = e.getAttribLocation(p, "aPosition");
800
- e.enableVertexAttribArray(_), e.vertexAttribPointer(_, 2, e.FLOAT, !1, 0, 0), e.bindVertexArray(null);
801
- let v = (t) => e.getUniformLocation(p, t), y = v("uFit"), b = v("uTrail"), x = v("uEnv"), S = v("uLoom"), C = v("uSampleCount"), w = v("uArmCount"), T = v("uStopCount"), E = v("uPalette[0]"), D = v("uCurve[0]"), O = v("uChain[0]"), k = new Float32Array(fe * 3), A = new Float32Array(($ + 1) * 2), j = new Float32Array(12), M = null, N = {
826
+ let h = e.createBuffer();
827
+ e.bindBuffer(e.ARRAY_BUFFER, h), e.bufferData(e.ARRAY_BUFFER, ce, e.STATIC_DRAW);
828
+ let g = e.getAttribLocation(f, "aCorner");
829
+ e.enableVertexAttribArray(g), e.vertexAttribPointer(g, 2, e.FLOAT, !1, 0, 0), e.vertexAttribDivisor(g, 0);
830
+ let _ = (xe - 1) * 2 + $ * 2 + 1, v = new Float32Array(_ * 8), y = e.createBuffer();
831
+ e.bindBuffer(e.ARRAY_BUFFER, y), e.bufferData(e.ARRAY_BUFFER, v.byteLength, e.DYNAMIC_DRAW);
832
+ let b = e.getAttribLocation(f, "aSeg"), x = e.getAttribLocation(f, "aData");
833
+ e.enableVertexAttribArray(b), e.enableVertexAttribArray(x), e.vertexAttribPointer(b, 4, e.FLOAT, !1, 32, 0), e.vertexAttribPointer(x, 4, e.FLOAT, !1, 32, 16), e.vertexAttribDivisor(b, 1), e.vertexAttribDivisor(x, 1), e.bindVertexArray(null);
834
+ let S = (t) => e.getUniformLocation(f, t), w = S("uFit"), T = S("uTrail"), E = S("uEnv"), D = S("uLoom"), O = S("uLayer"), k = S("uEdgeMargin"), A = S("uStopCount"), j = S("uPalette[0]"), M = new Float32Array(xe * 3), N = new Float32Array(($ + 1) * 2), P = new Float32Array(12), F = null, I = {
802
835
  centerX: 0,
803
836
  centerY: 0,
804
837
  scale: 1
805
- }, P = 0;
806
- function F() {
838
+ }, ee = 0;
839
+ function te() {
807
840
  let e = r();
808
- e !== M && (M = e, P = Math.min(e.length, $), N = K(e));
841
+ e !== F && (F = e, ee = Math.min(e.length, $), I = K(e));
809
842
  }
810
- function I() {
811
- let n = s(), r = t.clientWidth || 320, i = t.clientHeight || 320, a = Math.max(1, Math.round(r * n)), o = Math.max(1, Math.round(i * n));
812
- (t.width !== a || t.height !== o) && (t.width = a, t.height = o), e.viewport(0, 0, t.width, t.height);
843
+ function L(n) {
844
+ e.viewport(0, 0, n?.w ?? t.width, n?.h ?? t.height);
813
845
  }
814
- function L(r) {
815
- c?.(r), F();
816
- let o = M;
846
+ function R(r) {
847
+ s?.(r), te();
848
+ let o = F;
817
849
  if (!o) return;
818
- let s = a(), d = Math.max(1, Math.min(Math.round(n.harmonics), P)), f = n.showEpicycles ? Math.max(1, Math.min(Math.round(n.epicycleArms), d)) : 0, g = fe, _ = Math.max(g - 1, 1);
850
+ let l = a(), u = Math.max(1, Math.min(Math.round(n.harmonics), ee)), h = n.showEpicycles ? Math.max(1, Math.min(Math.round(n.epicycleArms), u)) : 0, g = xe, _ = Math.max(g - 1, 1);
819
851
  for (let e = 0; e < g; e++) {
820
- let t = e / _, r = 1 - t, i = s - n.trailArc * t;
852
+ let t = e / _, r = 1 - t, i = l - n.trailArc * t;
821
853
  i -= Math.floor(i);
822
- let [a, c] = h(o, i, d), l = e * 3;
823
- k[l + 0] = a, k[l + 1] = c, k[l + 2] = r;
854
+ let [a, s] = C(o, i, u), c = e * 3;
855
+ M[c + 0] = a, M[c + 1] = s, M[c + 2] = r;
824
856
  }
825
- let v = Math.min(f, d);
857
+ let S = Math.min(h, u);
826
858
  for (let e = 0; e <= $; e++) {
827
859
  let t = e * 2;
828
- if (e <= v) {
829
- let [n, r] = h(o, s, e);
830
- A[t + 0] = n, A[t + 1] = r;
831
- } else A[t + 0] = 0, A[t + 1] = 0;
860
+ if (e <= S) {
861
+ let [n, r] = C(o, l, e);
862
+ N[t + 0] = n, N[t + 1] = r;
863
+ } else N[t + 0] = 0, N[t + 1] = 0;
864
+ }
865
+ let L = t.width / Math.max(t.height, 1), R = Math.min(t.width, t.height) / Math.max(d(), 1), ne = ue(n.trailWidth, I.scale, R), z = ne * .5, re = 12 / (Math.max(I.scale, 1e-6) * Math.max(R, 1)), ie = M[0], ae = M[1], oe = M[3], ce = M[4], V = ie - oe, H = ae - ce, U = Math.hypot(V, H), le = U > 1e-4 ? V / U : 1, W = U > 1e-4 ? H / U : 0, G = -le * z * 1.4, K = -W * z * 1.4, de = se({
866
+ sampleCount: g,
867
+ armCount: h,
868
+ showEpicycles: n.showEpicycles,
869
+ celGain: n.celGain
870
+ }), fe = /* @__PURE__ */ new Map(), q = 0, J = (e, t, n, r, i, a, o) => {
871
+ v[q++] = e, v[q++] = t, v[q++] = n, v[q++] = r, v[q++] = i, v[q++] = a, v[q++] = o, v[q++] = 0;
872
+ };
873
+ for (let e of de) if (fe.set(e.kind, q), e.kind === "cel-rope") for (let e = 0; e < g - 1; e++) {
874
+ let t = e * 3;
875
+ J(M[t] + G, M[t + 1] + K, M[t + 3] + G, M[t + 4] + K, 0, z, 1);
876
+ }
877
+ else if (e.kind === "cel-arm") for (let e = 0; e < h; e++) {
878
+ let t = e * 2;
879
+ J(N[t] + G, N[t + 1] + K, N[t + 2] + G, N[t + 3] + K, 0, z * .55, .7);
832
880
  }
833
- let I = t.clientWidth || 320, L = t.clientHeight || 320, R = Math.min(I, L), z = I / Math.max(L, 1), B = q(n.trailWidth, N.scale, R), V = i(), H = Math.min(V.length, 4);
881
+ else if (e.kind === "epicycle") {
882
+ let e = Math.max(h - 1, 1);
883
+ for (let t = 0; t < h; t++) {
884
+ let n = t * 2;
885
+ J(N[n], N[n + 1], N[n + 2], N[n + 3], 0, z, t / e);
886
+ }
887
+ } else if (e.kind === "trail") for (let e = 0; e < g - 1; e++) {
888
+ let t = e * 3, n = Math.max(M[t + 2], M[t + 5]);
889
+ J(M[t], M[t + 1], M[t + 3], M[t + 4], n, z, 0);
890
+ }
891
+ else J(M[0], M[1], M[3], M[4], 0, z, 0);
892
+ let Y = q, X = i(), Z = Math.min(X.length, 4);
834
893
  for (let e = 0; e < 4; e++) {
835
- let t = l(V[Math.min(e, H - 1)] ?? V[0]);
836
- j[e * 3 + 0] = t[0], j[e * 3 + 1] = t[1], j[e * 3 + 2] = t[2];
894
+ let t = p(X[Math.min(e, Z - 1)] ?? X[0]);
895
+ P[e * 3 + 0] = t[0], P[e * 3 + 1] = t[1], P[e * 3 + 2] = t[2];
837
896
  }
838
- e.useProgram(p), e.bindVertexArray(m), e.enable(e.BLEND), e.blendFunc(e.ONE, e.ONE_MINUS_SRC_ALPHA), e.clearColor(0, 0, 0, 0), e.clear(e.COLOR_BUFFER_BIT);
839
- let U = u?.() ?? {
897
+ e.useProgram(f), e.bindVertexArray(m), e.enable(e.BLEND), e.clearColor(0, 0, 0, 0), e.clear(e.COLOR_BUFFER_BIT), e.bindBuffer(e.ARRAY_BUFFER, y), e.bufferSubData(e.ARRAY_BUFFER, 0, v.subarray(0, Y));
898
+ let Q = c?.() ?? {
840
899
  x: 0,
841
900
  y: 0
842
901
  };
843
- e.uniform4f(y, N.centerX - U.x, N.centerY - U.y, N.scale, z), e.uniform4f(b, B, pe, me, he), e.uniform4f(x, ge, n.intensity, +!!n.showEpicycles, +!!n.rainbowChain), e.uniform4f(S, n.squashGain, n.celGain, 0, 0), e.uniform1i(C, g), e.uniform1i(w, f), e.uniform1i(T, H), e.uniform3fv(E, j), e.uniform3fv(D, k), e.uniform2fv(O, A), e.drawArrays(e.TRIANGLES, 0, 3);
902
+ e.uniform4f(w, I.centerX - Q.x, I.centerY - Q.y, I.scale, L), e.uniform4f(T, ne, Se, Ce, we), e.uniform4f(E, Te, n.intensity, +!!n.showEpicycles, +!!n.rainbowChain), e.uniform4f(D, n.squashGain, n.celGain, 0, 0), e.uniform1f(k, re), e.uniform1i(A, Z), e.uniform3fv(j, P);
903
+ for (let t of de) {
904
+ let n = (fe.get(t.kind) ?? 0) * 4;
905
+ e.vertexAttribPointer(b, 4, e.FLOAT, !1, 32, n), e.vertexAttribPointer(x, 4, e.FLOAT, !1, 32, n + 16), e.uniform1i(O, B[t.kind]), t.blend === "max" ? (e.blendEquation(e.MAX), e.blendFunc(e.ONE, e.ONE)) : (e.blendEquation(e.FUNC_ADD), e.blendFunc(e.ONE, e.ONE_MINUS_SRC_ALPHA)), e.drawArraysInstanced(e.TRIANGLE_STRIP, 0, 4, t.instanceCount);
906
+ }
907
+ e.blendEquation(e.FUNC_ADD);
844
908
  }
845
909
  return {
846
- frame: L,
910
+ frame: R,
847
911
  shouldContinue: o,
848
- resize: I,
912
+ resize: L,
849
913
  teardown: () => {
850
- e.deleteProgram(p), e.deleteBuffer(g), e.deleteVertexArray(m);
914
+ e.deleteProgram(f), e.deleteBuffer(h), e.deleteBuffer(y), e.deleteVertexArray(m);
851
915
  }
852
916
  };
853
917
  };
854
918
  }
855
919
  //#endregion
856
- //#region src/components/custom/fourier-field/composables/useFourierField.ts
857
- function ye(e, t) {
858
- let { config: r, getSpectrum: i, getPalette: a } = t, o = t.mode ?? "live", s = t.frozenT ?? .34, l = t.periodS ?? 16, u = 0, d = -1, f = 0, p = 0;
859
- function m(e) {
860
- if (f === 0 && p === 0) return;
861
- let t = -64 * f - 2 * .62 * 8 * p;
862
- p += t * e, f += p * e, Math.abs(f) < 1e-4 && Math.abs(p) < 1e-4 && (f = 0, p = 0);
920
+ //#region src/components/fourier-field/composables/useFourierField.ts
921
+ function Oe(e, t) {
922
+ let { config: r, getSpectrum: o, getPalette: s } = t, c = t.mode ?? "live", l = t.frozenT ?? .34, u = t.periodS ?? 16, p = 0, m = -1, h = 0, g = 0;
923
+ function _(e) {
924
+ if (h === 0 && g === 0) return;
925
+ let t = -64 * h - 2 * .62 * 8 * g;
926
+ g += t * e, h += g * e, Math.abs(h) < 1e-4 && Math.abs(g) < 1e-4 && (h = 0, g = 0);
863
927
  }
864
- let g = n({ respectReducedMotion: r.respectReducedMotion }), _ = () => (t.freeze?.() ?? !1) || (F?.reducedMotion ?? !1);
865
- function v(e) {
866
- y(e), t.onHeadFrame?.(E());
928
+ let v = n({ respectReducedMotion: r.respectReducedMotion }), y = () => (t.freeze?.() ?? !1) || (N?.reducedMotion ?? !1);
929
+ function b(e) {
930
+ x(e);
867
931
  }
868
- function y(e) {
869
- let t = d >= 0 ? (e - d) * 1e3 : 16.7;
870
- if (d = e, g.tick(t), _()) {
871
- u = s, f = 0, p = 0;
932
+ function x(e) {
933
+ let n = m >= 0 ? (e - m) * 1e3 : 16.7;
934
+ m = e;
935
+ let i = t.routePointer?.();
936
+ if (i && (v.setActive(i.active), i.active && v.setPointer(i.x, i.y)), v.tick(n), y()) {
937
+ p = l, h = 0, g = 0;
872
938
  return;
873
939
  }
874
- let n = Math.min(Math.max(t / 1e3, 0), .05);
875
- if (r.interactive && g.active.value) {
876
- let e = r.speed / l + g.velocity.value.x * M + f;
877
- u = (u + e * n) % 1, u < 0 && (u += 1);
878
- let t = g.burst.value * 4;
879
- t !== 0 && (f = t, p = 0), m(n);
940
+ let a = Math.min(Math.max(n / 1e3, 0), .05);
941
+ if (r.interactive && v.active.value) {
942
+ let e = r.speed / u + v.velocity.value.x * te + h;
943
+ p = (p + e * a) % 1, p < 0 && (p += 1);
944
+ let t = v.burst.value * 4;
945
+ t !== 0 && (h = t, g = 0), _(a);
880
946
  return;
881
947
  }
882
- let i = r.speed / l + f;
883
- u = (u + i * n) % 1, u < 0 && (u += 1), m(n);
948
+ let o = r.speed / u + h;
949
+ p = (p + o * a) % 1, p < 0 && (p += 1), _(a);
884
950
  }
885
- let b = () => u, x = null, S = {
951
+ let S = () => p, C = null, w = {
886
952
  centerX: 0,
887
953
  centerY: 0,
888
954
  scale: 1
889
- }, C = () => {
890
- let e = i();
891
- return e !== x && (x = e, S = K(e)), S;
892
- }, w = () => {
893
- let e = i(), t = Math.max(1, Math.min(Math.round(r.harmonics), e.length, 64)), [n, a] = h(e, u, t);
894
- return {
895
- x: n,
896
- y: a
897
- };
955
+ }, T = () => {
956
+ let e = o();
957
+ return e !== C && (C = e, w = K(e)), w;
898
958
  }, E = () => {
959
+ if (!r.interactive) return {
960
+ x: 0,
961
+ y: 0
962
+ };
899
963
  let t = e.value;
900
- if (!t) return null;
901
- let n = t.clientWidth || 0, r = t.clientHeight || 0;
902
- if (n <= 0 || r <= 0) return null;
903
- let i = n / r, a = w(), o = C(), s = D(), c = s.x !== 0 || s.y !== 0 ? {
904
- ...o,
905
- centerX: o.centerX - s.x,
906
- centerY: o.centerY - s.y
907
- } : o;
908
- return ee(a.x, a.y, c, i);
909
- }, D = () => {
910
- if (!r.interactive || !g.active.value) return {
964
+ if (!t || !t.width || !t.height) return {
911
965
  x: 0,
912
966
  y: 0
913
967
  };
914
- let e = g.smoothedPosition.value;
968
+ let { leanX: n, leanY: o } = a(i(v), {
969
+ aspect: t.width / t.height,
970
+ scale: Math.max(T().scale, 1e-6)
971
+ });
915
972
  return {
916
- x: (e.x * 2 - 1) * N,
917
- y: (e.y * 2 - 1) * N
973
+ x: n,
974
+ y: o
918
975
  };
919
- }, O = (e) => {
920
- g.onPointerMove(e), r.interactive && F?.wake();
921
- }, k = () => {
922
- g.onPointerEnter(), r.interactive && F?.wake();
923
- }, A = (e) => e.parentElement ?? e;
924
- function j(e) {
925
- let t = A(e);
926
- t.addEventListener("pointermove", O), t.addEventListener("pointerenter", k), t.addEventListener("pointerleave", g.onPointerLeave);
976
+ }, D = (e) => {
977
+ v.onPointerMove(e), r.interactive && N?.wake();
978
+ }, O = () => {
979
+ v.onPointerEnter(), r.interactive && N?.wake();
980
+ }, k = (e) => e.parentElement ?? e;
981
+ function A(e) {
982
+ let t = k(e);
983
+ t.addEventListener("pointermove", D), t.addEventListener("pointerenter", O), t.addEventListener("pointerleave", v.onPointerLeave);
927
984
  }
928
- function P(e) {
929
- let t = A(e);
930
- t.removeEventListener("pointermove", O), t.removeEventListener("pointerenter", k), t.removeEventListener("pointerleave", g.onPointerLeave);
985
+ function M(e) {
986
+ let t = k(e);
987
+ t.removeEventListener("pointermove", D), t.removeEventListener("pointerenter", O), t.removeEventListener("pointerleave", v.onPointerLeave);
931
988
  }
932
- let F = null, I = () => {
989
+ let N = null, P = () => {
933
990
  let t = e.value;
934
- return t ? (F || (j(t), F = c(t, {
935
- mode: o,
991
+ return t ? (N || (A(t), N = f(t, {
992
+ mode: c,
936
993
  respectReducedMotion: r.respectReducedMotion,
937
- setupWGPU: le({
994
+ dprPolicy: d,
995
+ revealBloom: !0,
996
+ setupWGPU: ve({
938
997
  canvas: t,
939
998
  config: r,
940
- getSpectrum: i,
941
- getPalette: a,
942
- getHeadT: b,
999
+ getSpectrum: o,
1000
+ getPalette: s,
1001
+ getHeadT: S,
943
1002
  shouldContinue: () => !0,
944
- onFrame: v,
945
- getPointerLean: D
1003
+ onFrame: b,
1004
+ getPointerLean: E
946
1005
  }),
947
- setupGL: ve({
1006
+ setupGL: De({
948
1007
  canvas: t,
949
1008
  config: r,
950
- getSpectrum: i,
951
- getPalette: a,
952
- getHeadT: b,
1009
+ getSpectrum: o,
1010
+ getPalette: s,
1011
+ getHeadT: S,
953
1012
  shouldContinue: () => !0,
954
- onFrame: v,
955
- getPointerLean: D
1013
+ onFrame: b,
1014
+ getPointerLean: E
956
1015
  })
957
- }), F.armAsync()), F) : null;
1016
+ }), N.armAsync()), N) : null;
958
1017
  };
959
- queueMicrotask(() => I());
960
- let L = {
1018
+ queueMicrotask(() => P());
1019
+ let F = {
961
1020
  get backend() {
962
- return I()?.backend ?? "webgpu";
1021
+ return P()?.backend ?? "webgpu";
963
1022
  },
964
- pause: () => I()?.suspend("manual"),
965
- resume: () => I()?.resume("manual"),
966
- wake: () => I()?.wake(),
967
- renderAt: (e) => I()?.renderAt(e),
1023
+ pause: () => P()?.suspend("manual"),
1024
+ resume: () => P()?.resume("manual"),
1025
+ wake: () => P()?.wake(),
1026
+ renderAt: (e) => P()?.renderAt(e),
968
1027
  get reducedMotion() {
969
- return F?.reducedMotion ?? !1;
1028
+ return N?.reducedMotion ?? !1;
970
1029
  },
971
1030
  get headT() {
972
- return u;
1031
+ return p;
973
1032
  },
974
1033
  setHeadT: (e) => {
975
- u = (e % 1 + 1) % 1, I()?.wake();
1034
+ p = (e % 1 + 1) % 1, P()?.wake();
976
1035
  },
977
- headUnit: E,
978
1036
  dispose: () => {
979
1037
  let t = e.value;
980
- t && P(t), g.dispose(), F?.dispose();
1038
+ t && M(t), v.dispose(), N?.dispose();
981
1039
  }
982
1040
  };
983
- return T(() => L.dispose()), L;
1041
+ return j(() => F.dispose()), F;
984
1042
  }
985
1043
  //#endregion
986
- //#region src/components/custom/fourier-field/FourierField.vue
987
- var be = /* @__PURE__ */ e(/* @__PURE__ */ S({
1044
+ //#region src/components/fourier-field/FourierField.vue
1045
+ var ke = /* @__PURE__ */ e(/* @__PURE__ */ O({
988
1046
  __name: "FourierField",
989
1047
  props: {
990
1048
  config: {},
@@ -1000,38 +1058,46 @@ var be = /* @__PURE__ */ e(/* @__PURE__ */ S({
1000
1058
  intensity: {}
1001
1059
  },
1002
1060
  setup(e, { expose: n }) {
1003
- let r = e, i = O("hostRef"), a = O("canvasRef"), { isDark: o } = d(), s = y(() => {
1004
- let e = r.config ?? L, t = r.intensity == null ? e.intensity : Math.max(0, Math.min(2, r.intensity)), n = r.config ? e.interactive : !1;
1061
+ let i = e, a = P("hostRef"), s = P("canvasRef"), { isDark: c } = o(), l = r(), u = T(() => {
1062
+ let e = i.config ?? ie, t = i.intensity == null ? e.intensity : Math.max(0, Math.min(2, i.intensity)), n = i.config ? e.interactive : !0;
1005
1063
  return {
1006
1064
  ...e,
1007
1065
  intensity: t,
1008
1066
  interactive: n
1009
1067
  };
1010
- }), c = y(() => r.spectrum && r.spectrum.length > 0 ? r.spectrum : _(f(p((r.freeze ? "fourier-field/frozen" : r.seed || "fourier-field") + r.seed)), {
1011
- harmonics: Math.min(s.value.harmonics + 4, 62),
1012
- harmonicScale: s.value.harmonicScale
1013
- })), l = () => c.value;
1014
- function m(e) {
1068
+ }), d = T(() => !!i.config && u.value.interactive), f = i.config ? void 0 : () => ({
1069
+ x: l.pointer.value.x,
1070
+ y: l.pointer.value.y,
1071
+ active: l.active.value
1072
+ }), p = T(() => {
1073
+ if (i.spectrum && i.spectrum.length > 0) return i.spectrum;
1074
+ let e = w[u.value.source];
1075
+ return e ? x(e) : _(h(g((i.freeze ? "fourier-field/frozen" : i.seed || "fourier-field") + i.seed)), {
1076
+ harmonics: Math.min(u.value.harmonics + 4, 62),
1077
+ harmonicScale: u.value.harmonicScale
1078
+ });
1079
+ }), v = () => p.value;
1080
+ function y(e) {
1015
1081
  if (!e.includes("var(") && !e.includes("light-dark(")) return e;
1016
- let n = i.value;
1082
+ let n = a.value;
1017
1083
  if (typeof window > "u" || !n) return e;
1018
1084
  if (e.includes("var(")) return t(e, n);
1019
1085
  let r = n.style.color;
1020
1086
  n.style.color = e;
1021
- let a = getComputedStyle(n).color;
1022
- return n.style.color = r, a || e;
1087
+ let i = getComputedStyle(n).color;
1088
+ return n.style.color = r, i || e;
1023
1089
  }
1024
- let h = D(s.value.palette);
1025
- function g() {
1026
- if (r.getPalette) {
1027
- h.value = r.getPalette();
1090
+ let b = N(u.value.palette);
1091
+ function S() {
1092
+ if (i.getPalette) {
1093
+ b.value = i.getPalette();
1028
1094
  return;
1029
1095
  }
1030
- if (o.value, r.color) {
1031
- let e = m(r.color);
1096
+ if (c.value, i.color) {
1097
+ let e = y(i.color);
1032
1098
  if (e.includes("var(") || e.includes("light-dark(")) return;
1033
- let t = u(e);
1034
- h.value = [{
1099
+ let t = m(e);
1100
+ b.value = [{
1035
1101
  L: Math.max(.5, t.L),
1036
1102
  C: Math.max(.12, t.C),
1037
1103
  h: t.h
@@ -1042,56 +1108,44 @@ var be = /* @__PURE__ */ e(/* @__PURE__ */ S({
1042
1108
  }];
1043
1109
  return;
1044
1110
  }
1045
- h.value = s.value.palette;
1046
- }
1047
- let v = () => h.value, S = new Proxy({}, {
1048
- get: (e, t) => Reflect.get(s.value, t),
1049
- has: (e, t) => Reflect.has(s.value, t),
1050
- ownKeys: () => Reflect.ownKeys(s.value),
1051
- getOwnPropertyDescriptor: (e, t) => Reflect.getOwnPropertyDescriptor(s.value, t)
1052
- });
1053
- function T(e) {
1054
- let t = i.value;
1055
- !t || !e || t.style.setProperty("--ff-head-xy", `${e.x.toFixed(4)} ${e.y.toFixed(4)}`);
1111
+ b.value = u.value.palette;
1056
1112
  }
1057
- let A = ye(a, {
1058
- config: S,
1059
- getSpectrum: l,
1060
- getPalette: v,
1061
- freeze: () => r.freeze,
1062
- onHeadFrame: T
1113
+ let C = Oe(s, {
1114
+ config: new Proxy({}, {
1115
+ get: (e, t) => Reflect.get(u.value, t),
1116
+ has: (e, t) => Reflect.has(u.value, t),
1117
+ ownKeys: () => Reflect.ownKeys(u.value),
1118
+ getOwnPropertyDescriptor: (e, t) => Reflect.getOwnPropertyDescriptor(u.value, t)
1119
+ }),
1120
+ getSpectrum: v,
1121
+ getPalette: () => b.value,
1122
+ freeze: () => i.freeze,
1123
+ routePointer: f
1063
1124
  });
1064
- function j() {
1065
- let e = i.value;
1066
- if (!e) return;
1067
- let t = h.value[0];
1068
- t && e.style.setProperty("--ff-head-hue", `${t.h.toFixed(1)}`);
1069
- }
1070
- return k(() => r.config, () => A.wake(), { deep: !0 }), k([
1071
- () => r.color,
1072
- () => r.getPalette,
1073
- o
1074
- ], g, { immediate: !0 }), k(h, j), w(() => {
1075
- g(), j();
1076
- }), k(o, () => A.wake()), k(() => r.freeze, () => A.wake()), n({
1077
- backend: () => A.backend,
1078
- pause: A.pause,
1079
- resume: A.resume,
1080
- wake: A.wake,
1081
- renderAt: A.renderAt,
1082
- setHeadT: A.setHeadT,
1083
- headUnit: A.headUnit
1084
- }), (e, t) => (E(), b("div", {
1125
+ return F(() => i.config, () => C.wake(), { deep: !0 }), F([
1126
+ () => i.color,
1127
+ () => i.getPalette,
1128
+ c
1129
+ ], S, { immediate: !0 }), A(() => {
1130
+ S();
1131
+ }), F(c, () => C.wake()), F(() => i.freeze, () => C.wake()), n({
1132
+ backend: () => C.backend,
1133
+ pause: C.pause,
1134
+ resume: C.resume,
1135
+ wake: C.wake,
1136
+ renderAt: C.renderAt,
1137
+ setHeadT: C.setHeadT
1138
+ }), (e, t) => (M(), E("div", {
1085
1139
  ref_key: "hostRef",
1086
- ref: i,
1087
- class: C(["fourier-field", { "fourier-field--interactive": s.value.interactive }])
1088
- }, [x("canvas", {
1089
- ref_key: "canvasRef",
1090
1140
  ref: a,
1141
+ class: k(["fourier-field", { "fourier-field--interactive": d.value }])
1142
+ }, [D("canvas", {
1143
+ ref_key: "canvasRef",
1144
+ ref: s,
1091
1145
  class: "fourier-field-canvas",
1092
1146
  "aria-hidden": "true"
1093
1147
  }, null, 512)], 2));
1094
1148
  }
1095
- }), [["__scopeId", "data-v-4914c4f3"]]);
1149
+ }), [["__scopeId", "data-v-2b2aeb28"]]);
1096
1150
  //#endregion
1097
- export { L as DEFAULT_FOURIER_CONFIG, be as FourierField, j as MAX_CURVE_SAMPLES, A as MAX_PHASORS, I as WARM_IDENTITY_PALETTE, v as comp, g as dftFromPoints, _ as makeEllipticSpectrum, h as partialSumAt, m as positionsAt, ye as useFourierField };
1151
+ export { ie as DEFAULT_FOURIER_CONFIG, w as FOURIER_FIGURES, b as FOURIER_FIGURE_KEYS, ke as FourierField, ee as MAX_CURVE_SAMPLES, I as MAX_PHASORS, re as WARM_IDENTITY_PALETTE, S as comp, y as dftFromPoints, _ as makeEllipticSpectrum, x as makeHarmonicFigure, C as partialSumAt, v as positionsAt, Oe as useFourierField };