@mkbabb/glass-ui 7.0.0 → 9.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 (918) hide show
  1. package/README.md +4 -3
  2. package/dist/DialogContent-4hzLiaCQ.js +152 -0
  3. package/dist/DotRing-Blh4Mc3Q.js +27 -0
  4. package/dist/{DropdownMenuTrigger-ClIq8RJE.js → DropdownMenuTrigger-8UZsBtZ8.js} +5 -5
  5. package/dist/Surface-i1tWC-Ga.js +48 -0
  6. package/dist/aurora.d.ts +1 -1
  7. package/dist/aurora.js +321 -289
  8. package/dist/axes.d.ts +1 -1
  9. package/dist/axes.js +1 -22
  10. package/dist/badge-owUOaaba.js +63 -0
  11. package/dist/badge.d.ts +1 -1
  12. package/dist/badge.js +2 -2
  13. package/dist/blob-config.d.ts +1 -1
  14. package/dist/blob.d.ts +1 -1
  15. package/dist/blob.js +43 -43
  16. package/dist/button-yvGPb0Bx.js +110 -0
  17. package/dist/button.d.ts +1 -1
  18. package/dist/button.js +1 -1
  19. package/dist/{card-Bk96VI2R.js → card-3HFFpC7_.js} +51 -95
  20. package/dist/card.d.ts +1 -1
  21. package/dist/card.js +2 -2
  22. package/dist/carousel.d.ts +1 -1
  23. package/dist/carousel.js +187 -175
  24. package/dist/checkbox-B1qn65se.js +64 -0
  25. package/dist/checkbox.d.ts +1 -0
  26. package/dist/checkbox.js +2 -0
  27. package/dist/chip.d.ts +1 -1
  28. package/dist/chip.js +129 -2
  29. package/dist/{class-names-Cpy5eaBk.js → class-names-q-UGOkHH.js} +15 -1
  30. package/dist/{collapsible-BAP95XTt.js → collapsible-B7O6m-Ch.js} +2 -2
  31. package/dist/collapsible.d.ts +1 -1
  32. package/dist/collapsible.js +1 -1
  33. package/dist/color.d.ts +1 -1
  34. package/dist/color.glsl-DTJhdekG.js +34 -0
  35. package/dist/color.js +18 -18
  36. package/dist/color.wgsl-BTszLY39.js +398 -0
  37. package/dist/command-tEzAaVY_.js +340 -0
  38. package/dist/command.d.ts +1 -1
  39. package/dist/command.js +1 -1
  40. package/dist/component-styles.css +4 -0
  41. package/dist/components/_shared/axes.d.ts +4 -1
  42. package/dist/components/_shared/class-names.d.ts +1 -1
  43. package/dist/components/_shared/control.d.ts +10 -0
  44. package/dist/components/_shared/feedback/DotRing.vue.d.ts +3 -0
  45. package/dist/components/_shared/feedback/dot-ring.css +1 -0
  46. package/dist/components/_shared/feedback/feedback-tone.css +1 -0
  47. package/dist/components/_shared/{fieldControl.d.ts → field/control.d.ts} +1 -1
  48. package/dist/components/_shared/focus.d.ts +11 -0
  49. package/dist/components/_shared/index.d.ts +1 -2
  50. package/dist/components/_shared/interaction.d.ts +1 -1
  51. package/dist/components/_shared/menu/menu.css +1 -0
  52. package/dist/components/_shared/menu/rowClass.d.ts +2 -0
  53. package/dist/components/_shared/overlay/content.d.ts +40 -0
  54. package/dist/components/_shared/overlay/index.d.ts +12 -0
  55. package/dist/components/{dock/composables → _shared/overlay}/isTeleportedTarget.d.ts +5 -0
  56. package/dist/components/_shared/overlay/participation.d.ts +66 -0
  57. package/dist/components/_shared/overlay/placement.d.ts +22 -0
  58. package/dist/components/_shared/selection.d.ts +39 -0
  59. package/dist/components/_shared/surface/resolve.d.ts +17 -0
  60. package/dist/components/_shared/useMotionAxis.d.ts +1 -7
  61. package/dist/components/accordion/Accordion.vue.d.ts +1 -1
  62. package/dist/components/accordion/index.d.ts +4 -4
  63. package/dist/components/alert/Alert.vue.d.ts +1 -1
  64. package/dist/components/alert/AlertDescription.vue.d.ts +2 -2
  65. package/dist/components/alert/AlertTitle.vue.d.ts +2 -2
  66. package/dist/components/alert/index.d.ts +9 -9
  67. package/dist/components/aurora/Aurora.vue.d.ts +5 -4
  68. package/dist/components/aurora/composables/atoms-fields.d.ts +1 -1
  69. package/dist/components/aurora/composables/atoms.d.ts +3 -3
  70. package/dist/components/aurora/composables/auroraFallbackGround.d.ts +1 -1
  71. package/dist/components/aurora/composables/auroraImageSource.d.ts +2 -2
  72. package/dist/components/aurora/composables/color.d.ts +3 -4
  73. package/dist/components/aurora/composables/frameLoop.d.ts +9 -8
  74. package/dist/components/aurora/composables/glSetup.d.ts +5 -10
  75. package/dist/components/aurora/composables/runtime.d.ts +28 -3
  76. package/dist/{composables/glass → components/aurora/composables}/textureUpload.d.ts +0 -13
  77. package/dist/components/aurora/composables/uniformBridge.d.ts +3 -20
  78. package/dist/components/aurora/composables/uniformBridgeWGPU.d.ts +2 -2
  79. package/dist/components/aurora/composables/uniformBridgeWGPUImage.d.ts +2 -2
  80. package/dist/components/aurora/composables/useAurora.d.ts +32 -4
  81. package/dist/components/aurora/composables/useCursorInteraction.d.ts +2 -2
  82. package/dist/components/aurora/composables/wgpuSetup.d.ts +5 -5
  83. package/dist/components/aurora/constants/budget.d.ts +0 -36
  84. package/dist/components/aurora/constants/presets.d.ts +46 -7
  85. package/dist/components/aurora/constants/shaders/aurora-image.frag.d.ts +0 -2
  86. package/dist/components/aurora/constants/shaders/aurora-image.wgsl.d.ts +0 -2
  87. package/dist/components/aurora/index.d.ts +15 -14
  88. package/dist/components/avatar/AvatarImage.vue.d.ts +1 -6
  89. package/dist/components/avatar/index.d.ts +3 -3
  90. package/dist/components/badge/Badge.vue.d.ts +2 -9
  91. package/dist/components/badge/index.d.ts +12 -11
  92. package/dist/components/blob/Blob.vue.d.ts +4 -4
  93. package/dist/components/blob/composables/blobSimulation.d.ts +5 -5
  94. package/dist/components/blob/composables/buildMetaballProgram.d.ts +1 -1
  95. package/dist/components/blob/composables/resolveBlobSurface.d.ts +1 -1
  96. package/dist/components/blob/composables/satelliteKinematics.d.ts +1 -1
  97. package/dist/components/blob/composables/uniformBridgeWGPU.d.ts +4 -4
  98. package/dist/components/blob/composables/uploadBlobUniforms.d.ts +5 -5
  99. package/dist/components/blob/composables/useBlobMood.d.ts +1 -1
  100. package/dist/components/blob/composables/useBlobPointer.d.ts +0 -3
  101. package/dist/components/blob/composables/useBlobSatellites.d.ts +1 -1
  102. package/dist/components/blob/composables/useMetaballRenderer.d.ts +6 -6
  103. package/dist/components/blob/composables/wgpuSetup.d.ts +5 -5
  104. package/dist/components/blob/config.d.ts +3 -3
  105. package/dist/components/blob/constants.d.ts +1 -3
  106. package/dist/components/blob/index.d.ts +8 -8
  107. package/dist/components/blob/presets.d.ts +1 -1
  108. package/dist/components/button/Button.vue.d.ts +15 -9
  109. package/dist/components/button/index.d.ts +1 -1
  110. package/dist/components/button/styles.css +1 -1
  111. package/dist/components/card/Card.vue.d.ts +20 -23
  112. package/dist/components/card/CardHeader.vue.d.ts +8 -1
  113. package/dist/components/card/index.d.ts +6 -7
  114. package/dist/components/card/scroll.css +1 -0
  115. package/dist/components/card/styles.css +1 -1
  116. package/dist/components/carousel/Carousel.vue.d.ts +14 -19
  117. package/dist/components/carousel/CarouselContent.vue.d.ts +2 -12
  118. package/dist/components/carousel/CarouselItem.vue.d.ts +14 -3
  119. package/dist/components/carousel/CarouselPager.vue.d.ts +2 -2
  120. package/dist/components/carousel/index.d.ts +7 -6
  121. package/dist/components/carousel/projection.d.ts +23 -0
  122. package/dist/components/carousel/styles.css +1 -0
  123. package/dist/components/carousel/types.d.ts +47 -0
  124. package/dist/components/carousel/useCarousel.d.ts +4 -21
  125. package/dist/components/checkbox/Checkbox.vue.d.ts +6 -6
  126. package/dist/components/checkbox/index.d.ts +1 -1
  127. package/dist/components/chip/Chip.vue.d.ts +2 -2
  128. package/dist/components/chip/accent-tone.css +1 -0
  129. package/dist/components/chip/chipVariants.d.ts +1 -1
  130. package/dist/components/chip/index.d.ts +3 -3
  131. package/dist/components/chip/types.d.ts +2 -2
  132. package/dist/components/collapsible/CollapsibleTrigger.vue.d.ts +1 -1
  133. package/dist/components/collapsible/index.d.ts +3 -3
  134. package/dist/components/command/Command.vue.d.ts +5 -3
  135. package/dist/components/command/CommandDialog.vue.d.ts +9 -5
  136. package/dist/components/command/CommandEmpty.vue.d.ts +1 -1
  137. package/dist/components/command/CommandGroup.vue.d.ts +1 -1
  138. package/dist/components/command/CommandInput.vue.d.ts +1 -1
  139. package/dist/components/command/CommandItem.vue.d.ts +3 -3
  140. package/dist/components/command/CommandList.vue.d.ts +8 -8
  141. package/dist/components/command/CommandSeparator.vue.d.ts +1 -1
  142. package/dist/components/command/index.d.ts +11 -10
  143. package/dist/components/command/types.d.ts +8 -3
  144. package/dist/components/configurator/Configurator.vue.d.ts +26 -3
  145. package/dist/components/configurator/ConfiguratorRow.vue.d.ts +5 -3
  146. package/dist/components/configurator/index.d.ts +6 -6
  147. package/dist/components/configurator/styles.css +1 -1
  148. package/dist/components/configurator/useConfiguratorState.d.ts +1 -1
  149. package/dist/components/constellation/Constellation.vue.d.ts +3 -5
  150. package/dist/components/constellation/composables/createConstellationField.d.ts +1 -1
  151. package/dist/components/constellation/composables/useConstellation.d.ts +2 -2
  152. package/dist/components/constellation/constants.d.ts +1 -1
  153. package/dist/components/constellation/constellationField.d.ts +3 -4
  154. package/dist/components/constellation/constellationInteraction.d.ts +1 -5
  155. package/dist/components/constellation/constellationRender.d.ts +1 -3
  156. package/dist/components/constellation/constellationTypes.d.ts +0 -11
  157. package/dist/components/constellation/constellationWell.d.ts +1 -1
  158. package/dist/components/constellation/index.d.ts +8 -6
  159. package/dist/components/dark-mode-toggle/dark-mode-toggle.css +1 -1
  160. package/dist/components/dark-mode-toggle/index.d.ts +2 -2
  161. package/dist/components/data-table/DataTable.vue.d.ts +1 -1
  162. package/dist/components/data-table/composables/useDataTableResponsive.d.ts +1 -1
  163. package/dist/components/data-table/index.d.ts +2 -2
  164. package/dist/components/{number-field/NumberFieldContent.vue.d.ts → deck/DeckSlide.vue.d.ts} +12 -1
  165. package/dist/components/deck/DeckStage.vue.d.ts +36 -0
  166. package/dist/components/deck/composables/useDeck.d.ts +35 -10
  167. package/dist/components/deck/composables/useDeckCapture.d.ts +26 -0
  168. package/dist/components/deck/composables/useDeckHashSync.d.ts +8 -0
  169. package/dist/components/deck/composables/useDeckKeyboard.d.ts +16 -8
  170. package/dist/components/deck/composables/useDeckSnap.d.ts +20 -0
  171. package/dist/components/deck/composables/useDeckSwipe.d.ts +13 -0
  172. package/dist/components/deck/composables/useEdgeZones.d.ts +14 -0
  173. package/dist/components/deck/constants.d.ts +0 -3
  174. package/dist/components/deck/index.d.ts +22 -6
  175. package/dist/components/deck/slideContext.d.ts +21 -0
  176. package/dist/components/deck/styles/capture.css +1 -0
  177. package/dist/components/deck/styles/index.css +1 -0
  178. package/dist/components/deck/styles/reveal.css +1 -0
  179. package/dist/components/deck/styles/stage.css +1 -0
  180. package/dist/components/deck/styles/turn.css +1 -0
  181. package/dist/components/deck/types.d.ts +26 -0
  182. package/dist/components/deck/window.d.ts +27 -0
  183. package/dist/components/dialog/Dialog.vue.d.ts +13 -0
  184. package/dist/components/dialog/DialogContent.vue.d.ts +23 -27
  185. package/dist/components/dialog/DialogFooter.vue.d.ts +2 -2
  186. package/dist/components/dialog/DialogHeader.vue.d.ts +2 -2
  187. package/dist/components/dialog/ModalOverlay.vue.d.ts +44 -23
  188. package/dist/components/dialog/index.d.ts +7 -8
  189. package/dist/components/dialog/styles.css +1 -0
  190. package/dist/components/dock/DockControl.vue.d.ts +8 -4
  191. package/dist/components/dock/DockCrossfade.vue.d.ts +3 -3
  192. package/dist/components/dock/DockLayer.vue.d.ts +1 -1
  193. package/dist/components/dock/DockLayerGroup.vue.d.ts +13 -13
  194. package/dist/components/dock/DockSeparator.vue.d.ts +24 -20
  195. package/dist/components/dock/GlassDock.vue.d.ts +5 -4
  196. package/dist/components/dock/composables/dockContext.d.ts +28 -11
  197. package/dist/components/dock/composables/dockCrossfadeContext.d.ts +5 -5
  198. package/dist/components/dock/composables/dockMorphMeasure.d.ts +0 -1
  199. package/dist/components/dock/composables/dockSwitcherContext.d.ts +29 -0
  200. package/dist/components/dock/composables/index.d.ts +10 -10
  201. package/dist/components/dock/composables/useDockHold.d.ts +21 -6
  202. package/dist/components/dock/composables/useDockRun.d.ts +20 -0
  203. package/dist/components/dock/composables/useDockSearch.d.ts +5 -5
  204. package/dist/components/dock/composables/useDockShellProps.d.ts +21 -128
  205. package/dist/components/dock/composables/useDockState.d.ts +18 -12
  206. package/dist/components/dock/constants.d.ts +32 -3
  207. package/dist/components/dock/index.d.ts +15 -15
  208. package/dist/components/dock/styles/adaptive-legibility.css +1 -1
  209. package/dist/components/dock/styles/controls/icon-button.css +1 -1
  210. package/dist/components/dock/styles/controls/tab-button.css +1 -1
  211. package/dist/components/dock/styles/controls/touch-floor.css +1 -1
  212. package/dist/components/dock/styles/controls/triggers.css +1 -1
  213. package/dist/components/dock/styles/controls.css +1 -1
  214. package/dist/components/dock/styles/crossfade.css +1 -1
  215. package/dist/components/dock/styles/cta-seat.css +1 -1
  216. package/dist/components/dock/styles/density.css +1 -1
  217. package/dist/components/dock/styles/dock.css +1 -1
  218. package/dist/components/dock/styles/index.css +1 -1
  219. package/dist/components/dock/styles/layer-group.css +1 -1
  220. package/dist/components/dock/styles/layers.css +1 -1
  221. package/dist/components/dock/styles/morph.css +1 -1
  222. package/dist/components/dock/styles/run.css +1 -0
  223. package/dist/components/dock/styles/search.css +1 -1
  224. package/dist/components/dock/styles/shape.css +1 -1
  225. package/dist/components/dock/styles/shell-regions.css +1 -1
  226. package/dist/components/dock/styles/shell.css +1 -1
  227. package/dist/components/easing/EasingCurve.vue.d.ts +51 -0
  228. package/dist/components/easing/EasingPicker.vue.d.ts +16 -32
  229. package/dist/components/easing/constants.d.ts +15 -13
  230. package/dist/components/easing/index.d.ts +5 -3
  231. package/dist/components/easing/{composables/useEasingPicker.d.ts → usePicker.d.ts} +27 -23
  232. package/dist/components/expandable-container/ExpandableContainer.vue.d.ts +1 -1
  233. package/dist/components/expandable-container/index.d.ts +1 -1
  234. package/dist/components/fading-scroll/constants.d.ts +2 -9
  235. package/dist/components/fading-scroll/index.d.ts +2 -2
  236. package/dist/components/fourier-field/FourierField.vue.d.ts +31 -30
  237. package/dist/components/fourier-field/clock.d.ts +35 -0
  238. package/dist/components/fourier-field/constants.d.ts +79 -104
  239. package/dist/components/fourier-field/index.d.ts +4 -31
  240. package/dist/components/fourier-field/math.d.ts +69 -77
  241. package/dist/components/fourier-field/renderer/mint.d.ts +50 -0
  242. package/dist/components/fourier-field/renderer/uniforms.d.ts +84 -0
  243. package/dist/components/fourier-field/renderer/wgpu.d.ts +28 -0
  244. package/dist/components/fourier-field/shaders/compute.wgsl.d.ts +1 -0
  245. package/dist/components/fourier-field/shaders/render.wgsl.d.ts +1 -0
  246. package/dist/components/fourier-field/useFourierField.d.ts +49 -0
  247. package/dist/components/handmark/HandMark.vue.d.ts +18 -14
  248. package/dist/components/handmark/index.d.ts +5 -22
  249. package/dist/components/handmark/stroke.d.ts +92 -0
  250. package/dist/components/index.d.ts +30 -32
  251. package/dist/components/infinite-scroll/InfiniteScroll.vue.d.ts +3 -3
  252. package/dist/components/infinite-scroll/composables/index.d.ts +2 -2
  253. package/dist/components/infinite-scroll/composables/useInfiniteScroll.d.ts +1 -1
  254. package/dist/components/infinite-scroll/index.d.ts +2 -2
  255. package/dist/components/input/Input.vue.d.ts +10 -5
  256. package/dist/components/input/index.d.ts +3 -2
  257. package/dist/components/input/types.d.ts +49 -9
  258. package/dist/components/label/index.d.ts +1 -1
  259. package/dist/components/labeled-field/LabeledField.vue.d.ts +4 -4
  260. package/dist/components/labeled-field/LabeledInput.vue.d.ts +1 -1
  261. package/dist/components/labeled-field/LabeledSlider.vue.d.ts +1 -1
  262. package/dist/components/labeled-field/LabeledSwitch.vue.d.ts +1 -1
  263. package/dist/components/labeled-field/index.d.ts +5 -6
  264. package/dist/components/labeled-field/types.d.ts +5 -14
  265. package/dist/components/{dropdown-menu → menu}/DropdownMenu.vue.d.ts +2 -2
  266. package/dist/components/{dropdown-menu → menu}/DropdownMenuCheckboxItem.vue.d.ts +2 -2
  267. package/dist/components/{dropdown-menu → menu}/DropdownMenuContent.vue.d.ts +4 -7
  268. package/dist/components/{dropdown-menu → menu}/DropdownMenuRadioGroup.vue.d.ts +1 -1
  269. package/dist/components/{dropdown-menu → menu}/DropdownMenuRadioItem.vue.d.ts +1 -1
  270. package/dist/components/{dropdown-menu → menu}/DropdownMenuSubContent.vue.d.ts +7 -7
  271. package/dist/components/{dropdown-menu → menu}/DropdownMenuTrigger.vue.d.ts +1 -1
  272. package/dist/components/{dropdown-menu → menu}/index.d.ts +15 -15
  273. package/dist/components/metric/Metric.vue.d.ts +7 -5
  274. package/dist/components/metric/MetricRow.vue.d.ts +4 -12
  275. package/dist/components/metric/MetricStack.vue.d.ts +2 -2
  276. package/dist/components/metric/coalesce-metric.d.ts +30 -2
  277. package/dist/components/metric/index.d.ts +6 -5
  278. package/dist/components/metric/styles.css +1 -1
  279. package/dist/components/metric/types.d.ts +25 -13
  280. package/dist/components/music-staff/MusicStaff.vue.d.ts +22 -0
  281. package/dist/components/music-staff/glyphs.d.ts +74 -0
  282. package/dist/components/music-staff/index.d.ts +4 -0
  283. package/dist/components/music-staff/midiAdapter.d.ts +22 -0
  284. package/dist/components/music-staff/staffGeometry.d.ts +216 -0
  285. package/dist/components/music-staff/styles.css +1 -0
  286. package/dist/components/number-field/NumberField.vue.d.ts +7 -2
  287. package/dist/components/number-field/NumberFieldStep.vue.d.ts +31 -0
  288. package/dist/components/number-field/context.d.ts +4 -0
  289. package/dist/components/number-field/index.d.ts +3 -5
  290. package/dist/components/pager-dots/PagerDots.vue.d.ts +22 -10
  291. package/dist/components/pager-dots/index.d.ts +3 -2
  292. package/dist/components/pager-dots/worm.d.ts +42 -0
  293. package/dist/components/popover/Popover.vue.d.ts +23 -1
  294. package/dist/components/popover/PopoverContent.vue.d.ts +17 -14
  295. package/dist/components/popover/PopoverTrigger.vue.d.ts +1 -1
  296. package/dist/components/popover/index.d.ts +3 -3
  297. package/dist/components/popover/popoverContext.d.ts +10 -0
  298. package/dist/components/progress/Progress.vue.d.ts +5 -5
  299. package/dist/components/progress/index.d.ts +2 -2
  300. package/dist/components/progress/types.d.ts +16 -6
  301. package/dist/components/radio-group/RadioGroup.vue.d.ts +5 -7
  302. package/dist/components/radio-group/RadioGroupItem.vue.d.ts +3 -2
  303. package/dist/components/radio-group/index.d.ts +4 -4
  304. package/dist/components/scroll-progress-rim/ScrollProgressRim.vue.d.ts +2 -14
  305. package/dist/components/scroll-progress-rim/index.d.ts +2 -3
  306. package/dist/components/scroll-progress-rim/styles.css +1 -1
  307. package/dist/components/scroll-progress-rim/types.d.ts +20 -2
  308. package/dist/components/select/Select.vue.d.ts +2 -2
  309. package/dist/components/select/SelectContent.vue.d.ts +4 -9
  310. package/dist/components/select/SelectItem.vue.d.ts +1 -1
  311. package/dist/components/select/SelectScrollButton.vue.d.ts +18 -0
  312. package/dist/components/select/SelectTrigger.vue.d.ts +1 -8
  313. package/dist/components/select/SelectValue.vue.d.ts +4 -6
  314. package/dist/components/select/index.d.ts +18 -16
  315. package/dist/components/separator/Separator.vue.d.ts +1 -1
  316. package/dist/components/separator/index.d.ts +1 -1
  317. package/dist/components/sheet/SheetContent.vue.d.ts +60 -0
  318. package/dist/components/sheet/detents/projection.d.ts +42 -0
  319. package/dist/components/sheet/detents/use.d.ts +27 -0
  320. package/dist/components/sheet/index.d.ts +4 -0
  321. package/dist/components/sheet/motion.d.ts +29 -0
  322. package/dist/components/sheet/styles.css +1 -0
  323. package/dist/components/skeleton/index.d.ts +1 -1
  324. package/dist/components/slider/Slider.vue.d.ts +2 -3
  325. package/dist/components/slider/index.d.ts +2 -2
  326. package/dist/components/slider/styles.css +1 -0
  327. package/dist/components/slider/types.d.ts +13 -4
  328. package/dist/components/sortable-list/SortableItem.vue.d.ts +1 -1
  329. package/dist/components/sortable-list/SortableList.vue.d.ts +1 -2
  330. package/dist/components/sortable-list/context.d.ts +1 -1
  331. package/dist/components/sortable-list/drag.d.ts +52 -0
  332. package/dist/components/sortable-list/ghost.d.ts +40 -0
  333. package/dist/components/sortable-list/index.d.ts +4 -4
  334. package/dist/components/sortable-list/motion.d.ts +75 -0
  335. package/dist/components/sortable-list/resolve.d.ts +56 -0
  336. package/dist/components/sortable-list/{composables/types.d.ts → types.d.ts} +14 -7
  337. package/dist/components/sortable-list/{composables/useSortable.d.ts → useSortable.d.ts} +2 -4
  338. package/dist/components/status-dot/StatusDot.vue.d.ts +10 -3
  339. package/dist/components/status-dot/index.d.ts +3 -2
  340. package/dist/components/status-dot/states.d.ts +4 -0
  341. package/dist/components/surface/Surface.vue.d.ts +31 -14
  342. package/dist/components/surface/index.d.ts +2 -2
  343. package/dist/components/switch/Switch.vue.d.ts +7 -12
  344. package/dist/components/switch/index.d.ts +2 -2
  345. package/dist/components/table/index.d.ts +8 -8
  346. package/dist/components/tabs/SegmentedTabs.vue.d.ts +9 -13
  347. package/dist/components/tabs/composables/useTabDragMorph.d.ts +2 -2
  348. package/dist/components/tabs/composables/useTabResponsive.d.ts +1 -1
  349. package/dist/components/tabs/composables/useTabRovingFocus.d.ts +15 -7
  350. package/dist/components/tabs/index.d.ts +2 -2
  351. package/dist/components/tabs/styles/drag.css +1 -1
  352. package/dist/components/tabs/styles/segmented.css +1 -1
  353. package/dist/components/textarea/Textarea.vue.d.ts +10 -5
  354. package/dist/components/textarea/index.d.ts +2 -2
  355. package/dist/components/textarea/types.d.ts +34 -11
  356. package/dist/components/timeline/Timeline.vue.d.ts +41 -0
  357. package/dist/components/timeline/geometry.d.ts +53 -78
  358. package/dist/components/timeline/index.d.ts +2 -2
  359. package/dist/components/timeline/types.d.ts +42 -42
  360. package/dist/components/toast/Toast.vue.d.ts +3 -3
  361. package/dist/components/toast/index.d.ts +8 -8
  362. package/dist/components/toast/use-toast.d.ts +9 -2
  363. package/dist/components/toggle-group/ToggleGroup.vue.d.ts +29 -40
  364. package/dist/components/toggle-group/ToggleGroupItem.vue.d.ts +7 -7
  365. package/dist/components/toggle-group/context.d.ts +28 -0
  366. package/dist/components/toggle-group/index.d.ts +2 -3
  367. package/dist/components/tooltip/TooltipContent.vue.d.ts +3 -8
  368. package/dist/components/tooltip/TooltipTrigger.vue.d.ts +1 -1
  369. package/dist/components/tooltip/index.d.ts +4 -4
  370. package/dist/components/typewriter/TypewriterText.vue.d.ts +12 -32
  371. package/dist/components/typewriter/composables/useTypewriter.d.ts +1 -1
  372. package/dist/components/typewriter/index.d.ts +7 -7
  373. package/dist/components/typewriter/types.d.ts +1 -1
  374. package/dist/components/typewriter/utils/timing.d.ts +1 -1
  375. package/dist/components/typewriter/utils/typoStateMachine.d.ts +1 -1
  376. package/dist/composables/color/accent-tone-solve.d.ts +1 -1
  377. package/dist/composables/color/index.d.ts +7 -7
  378. package/dist/composables/context/index.d.ts +1 -1
  379. package/dist/composables/dark/darkModeSyncScript.d.ts +19 -0
  380. package/dist/composables/dark/index.d.ts +5 -5
  381. package/dist/composables/dom/index.d.ts +10 -10
  382. package/dist/composables/dom/useDragVelocity.d.ts +7 -0
  383. package/dist/composables/glass/backdropLuminanceSample.d.ts +20 -22
  384. package/dist/composables/glass/backdropSampleMath.d.ts +10 -0
  385. package/dist/composables/glass/canvas2d/index.d.ts +3 -3
  386. package/dist/composables/glass/canvas2d/useCanvas2D.d.ts +2 -10
  387. package/dist/composables/glass/index.d.ts +5 -7
  388. package/dist/composables/glass/useGlassBackdropLuminance.d.ts +3 -4
  389. package/dist/composables/glass/useSpecularTracking.d.ts +1 -1
  390. package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +13 -22
  391. package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +10 -13
  392. package/dist/composables/glass/webgl/visibility.d.ts +1 -1
  393. package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +10 -13
  394. package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +3 -4
  395. package/dist/composables/glass/webgpu/webgpuCanvasTypes.d.ts +9 -11
  396. package/dist/composables/glass/webgpu/webgpuDevice.d.ts +0 -17
  397. package/dist/composables/keyboard/index.d.ts +1 -1
  398. package/dist/composables/motion/core/constants.d.ts +7 -0
  399. package/dist/composables/motion/core/index.d.ts +21 -21
  400. package/dist/composables/motion/core/motionTempo.d.ts +0 -2
  401. package/dist/composables/motion/dissolve/dissolveGrammar.d.ts +88 -0
  402. package/dist/composables/motion/engage/engageEnvelopes.d.ts +45 -0
  403. package/dist/composables/motion/engage/engageLadder.d.ts +86 -0
  404. package/dist/composables/motion/index.d.ts +14 -14
  405. package/dist/composables/motion/morph/eyeglass.d.ts +141 -0
  406. package/dist/composables/motion/morph/useDockCtaReceive.d.ts +6 -6
  407. package/dist/composables/motion/morph/useElementMorph.d.ts +4 -4
  408. package/dist/composables/motion/morph/useLeadTrail.d.ts +30 -28
  409. package/dist/composables/motion/morph/useSelectionGroup.d.ts +61 -23
  410. package/dist/composables/motion/morph/useSelectionIndicator.d.ts +52 -22
  411. package/dist/composables/motion/number/useAnimatedNumberMap.d.ts +1 -1
  412. package/dist/composables/motion/pointer/pointerFieldMappings.d.ts +1 -42
  413. package/dist/composables/motion/pointer/useRoutePointer.d.ts +1 -1
  414. package/dist/composables/motion/reveal/useLiquidReveal.d.ts +7 -6
  415. package/dist/composables/motion/route/routeGrammar.d.ts +60 -0
  416. package/dist/composables/motion/route/useRouteTransition.d.ts +45 -0
  417. package/dist/composables/motion/scroll/useScrollProgress.d.ts +7 -14
  418. package/dist/composables/motion/scroll/useScrollScene.d.ts +5 -4
  419. package/dist/composables/motion/spring/springPresets.d.ts +13 -27
  420. package/dist/composables/motion/spring/springProjection.d.ts +3 -4
  421. package/dist/composables/motion/spring/useLiquidPress.d.ts +2 -2
  422. package/dist/composables/motion/spring/useSpring.d.ts +3 -3
  423. package/dist/composables/motion/spring/useSpringMount.d.ts +6 -3
  424. package/dist/composables/motion/spring/useSpringPress.d.ts +6 -6
  425. package/dist/composables/reactive/index.d.ts +2 -2
  426. package/dist/composables/search/index.d.ts +5 -0
  427. package/dist/{components/search/composables/fuzzySearchIndex.d.ts → composables/search/match.d.ts} +9 -4
  428. package/dist/{components/search/composables → composables/search}/useFuzzySearch.d.ts +1 -1
  429. package/dist/composables/sidebar/index.d.ts +10 -10
  430. package/dist/composables/sidebar/useClickDelegate.d.ts +1 -1
  431. package/dist/composables/sidebar/useLazyLoader.d.ts +1 -1
  432. package/dist/composables/sidebar/useScrollTo.d.ts +1 -1
  433. package/dist/composables/sidebar/useScrollTracker.d.ts +1 -1
  434. package/dist/composables/sidebar/useSidebarState.d.ts +1 -1
  435. package/dist/composables/sidebar/useTreeIndex.d.ts +1 -1
  436. package/dist/configurator-BHJymdrF.js +339 -0
  437. package/dist/configurator.d.ts +1 -1
  438. package/dist/configurator.js +1 -1
  439. package/dist/{constants-nBz23tJE.js → constants-Dk96HZHu.js} +2 -2
  440. package/dist/constellation.d.ts +1 -1
  441. package/dist/constellation.js +137 -136
  442. package/dist/content-CWO-XL7o.js +18 -0
  443. package/dist/control-DJp15L4U.js +7 -0
  444. package/dist/{field-control.css_vue_type_style_index_0_src_true_lang-CeLay9Tk.js → control.css_vue_type_style_index_0_src_true_lang-BIdufaDG.js} +1 -1
  445. package/dist/{createCanvasLifecycle-DbXRwjU_.js → createCanvasLifecycle-hJHobVTn.js} +2 -5
  446. package/dist/{dark-z_P5QwqI.js → dark-CLlmo7dD.js} +2 -2
  447. package/dist/dark-mode-toggle.d.ts +1 -1
  448. package/dist/dark-mode-toggle.js +3 -3
  449. package/dist/dark.d.ts +1 -1
  450. package/dist/dark.js +1 -1
  451. package/dist/data-table-_RrOEdiw.js +493 -0
  452. package/dist/data-table.d.ts +1 -1
  453. package/dist/data-table.js +1 -1
  454. package/dist/deck-Ci6YjB5e.js +453 -0
  455. package/dist/deck.d.ts +1 -1
  456. package/dist/deck.js +2 -94
  457. package/dist/dialog-CbRnTRtg.js +78 -0
  458. package/dist/dialog.d.ts +1 -1
  459. package/dist/dialog.js +3 -2
  460. package/dist/dock.d.ts +1 -1
  461. package/dist/dock.js +873 -620
  462. package/dist/dom.d.ts +1 -1
  463. package/dist/dom.js +141 -37
  464. package/dist/easing.d.ts +1 -1
  465. package/dist/easing.js +686 -515
  466. package/dist/expandable-container-BY1hQXi4.js +142 -0
  467. package/dist/expandable-container.d.ts +1 -1
  468. package/dist/expandable-container.js +2 -140
  469. package/dist/{fading-scroll-DhxXIhm2.js → fading-scroll-CTeW3KNS.js} +30 -30
  470. package/dist/fading-scroll.d.ts +1 -1
  471. package/dist/fading-scroll.js +1 -1
  472. package/dist/focus-Duf7EpUu.js +13 -0
  473. package/dist/fourier-field.d.ts +1 -1
  474. package/dist/fourier-field.js +641 -855
  475. package/dist/fourier-math.d.ts +1 -1
  476. package/dist/fourier-math.js +6 -6
  477. package/dist/glass-ui.css +1 -1
  478. package/dist/glass-ui.js +133 -469
  479. package/dist/handmark.d.ts +1 -1
  480. package/dist/handmark.js +330 -718
  481. package/dist/index.d.ts +41 -42
  482. package/dist/infinite-scroll.d.ts +1 -1
  483. package/dist/infinite-scroll.js +56 -43
  484. package/dist/input-Bls2A4Tt.js +54 -0
  485. package/dist/input.d.ts +1 -0
  486. package/dist/input.js +2 -0
  487. package/dist/keyboard.d.ts +1 -1
  488. package/dist/label-BQEZhnK_.js +53 -0
  489. package/dist/label.d.ts +1 -1
  490. package/dist/label.js +1 -1
  491. package/dist/labeled-field.d.ts +1 -1
  492. package/dist/labeled-field.js +64 -148
  493. package/dist/menu-TDMNtZjG.js +501 -0
  494. package/dist/menu.d.ts +1 -0
  495. package/dist/{dropdown-menu.js → menu.js} +2 -2
  496. package/dist/metric.d.ts +1 -1
  497. package/dist/metric.js +79 -132
  498. package/dist/motion-D4uYE0UM.js +61 -0
  499. package/dist/motion-core.d.ts +1 -1
  500. package/dist/motion-core.js +185 -52
  501. package/dist/motion.d.ts +1 -1
  502. package/dist/motion.js +160 -178
  503. package/dist/music-staff.d.ts +1 -0
  504. package/dist/music-staff.js +915 -0
  505. package/dist/number-field-NFAwQ0HK.js +111 -0
  506. package/dist/number-field.d.ts +1 -1
  507. package/dist/number-field.js +2 -2
  508. package/dist/pager-dots.d.ts +1 -1
  509. package/dist/pager-dots.js +362 -2
  510. package/dist/participation-Di4UHbzk.js +42 -0
  511. package/dist/{pointerFieldMappings-DP5tla5z.js → pointerFieldMappings-DXwlU5uj.js} +7 -23
  512. package/dist/popover-C04Rrdcz.js +181 -0
  513. package/dist/popover.d.ts +1 -1
  514. package/dist/popover.js +1 -1
  515. package/dist/progress-DF8dWZIX.js +74 -0
  516. package/dist/progress.d.ts +1 -1
  517. package/dist/progress.js +1 -1
  518. package/dist/radio-group-BNV7PN1O.js +85 -0
  519. package/dist/radio-group.d.ts +1 -0
  520. package/dist/radio-group.js +2 -0
  521. package/dist/reactive.d.ts +1 -1
  522. package/dist/resolve-DdrNvBby.js +6 -0
  523. package/dist/rowClass-DYOXwxhO.js +10 -0
  524. package/dist/scroll-progress-rim.d.ts +1 -1
  525. package/dist/scroll-progress-rim.js +48 -42
  526. package/dist/select-COox45Kv.js +290 -0
  527. package/dist/select.d.ts +1 -1
  528. package/dist/select.js +2 -2
  529. package/dist/separator-CN11t406.js +73 -0
  530. package/dist/separator.d.ts +1 -1
  531. package/dist/separator.js +1 -1
  532. package/dist/sheet-BEFvnO_u.js +340 -0
  533. package/dist/sheet.d.ts +1 -0
  534. package/dist/sheet.js +3 -0
  535. package/dist/sidebar.d.ts +1 -1
  536. package/dist/slider-5ChjjWSR.js +227 -0
  537. package/dist/slider.d.ts +1 -1
  538. package/dist/slider.js +1 -1
  539. package/dist/sortable-list.d.ts +1 -1
  540. package/dist/sortable-list.js +411 -286
  541. package/dist/springPresets-Cbe0Voqg.js +52 -0
  542. package/dist/status-dot-BpnqOP5N.js +56 -0
  543. package/dist/status-dot.d.ts +1 -1
  544. package/dist/status-dot.js +2 -42
  545. package/dist/styles/accessibility.css +1 -1
  546. package/dist/styles/animations.css +1 -1
  547. package/dist/styles/components.css +1 -1
  548. package/dist/styles/fonts.css +1 -1
  549. package/dist/styles/glass/a11y-fallback.css +1 -1
  550. package/dist/styles/glass/control-bit.css +1 -0
  551. package/dist/styles/glass/control-edge.css +1 -0
  552. package/dist/styles/glass/control-surfaces.css +1 -1
  553. package/dist/styles/glass/deep.css +1 -1
  554. package/dist/styles/glass/defined.css +1 -1
  555. package/dist/styles/glass/dissolve.css +1 -0
  556. package/dist/styles/glass/focus-veil.css +1 -0
  557. package/dist/styles/glass/glass-atom.css +1 -1
  558. package/dist/styles/glass/glass-capsule.css +1 -1
  559. package/dist/styles/glass/glass-chip.css +1 -1
  560. package/dist/styles/glass/grasp.css +1 -0
  561. package/dist/styles/glass/ladder-undershadow.css +1 -1
  562. package/dist/styles/glass/ladder.css +1 -1
  563. package/dist/styles/glass/liquid-enter.css +1 -1
  564. package/dist/styles/glass/liquid-fill.css +1 -1
  565. package/dist/styles/glass/mark.css +1 -0
  566. package/dist/styles/glass/material.css +1 -1
  567. package/dist/styles/glass/overlay-plate.css +1 -0
  568. package/dist/styles/glass/reveal.css +1 -1
  569. package/dist/styles/glass/rim.css +1 -1
  570. package/dist/styles/glass/squircle.css +1 -1
  571. package/dist/styles/glass/surface-axis.css +1 -1
  572. package/dist/styles/glass/surfaces-pager.css +1 -1
  573. package/dist/styles/glass/surfaces.css +1 -1
  574. package/dist/styles/glass/track-flow.css +1 -0
  575. package/dist/styles/glass/value-marks.css +1 -0
  576. package/dist/styles/glass/veil.css +1 -0
  577. package/dist/styles/glass-specular-track.css +1 -1
  578. package/dist/styles/glass.css +1 -1
  579. package/dist/styles/index.css +1 -1
  580. package/dist/styles/paper.css +1 -1
  581. package/dist/styles/scroll-choreography.css +1 -1
  582. package/dist/styles/scroll-chrome.css +1 -1
  583. package/dist/styles/scroll-driven.css +1 -1
  584. package/dist/styles/theme/bridges.css +1 -1
  585. package/dist/styles/theme/dark.css +1 -1
  586. package/dist/styles/theme/literals.css +1 -1
  587. package/dist/styles/theme/radius.css +1 -1
  588. package/dist/styles/theme.css +1 -1
  589. package/dist/styles/tokens/color-radius.css +1 -1
  590. package/dist/styles/tokens/dark-arm-glass.css +1 -1
  591. package/dist/styles/tokens/dark-arm.css +1 -1
  592. package/dist/styles/tokens/glass-deep.css +1 -1
  593. package/dist/styles/tokens/glass-fx.css +1 -1
  594. package/dist/styles/tokens/glass.css +1 -1
  595. package/dist/styles/tokens/light-dark.css +1 -1
  596. package/dist/styles/tokens/manifest.d.ts +4 -4
  597. package/dist/styles/tokens/motion-registers.css +1 -1
  598. package/dist/styles/tokens/offsets.css +1 -1
  599. package/dist/styles/tokens/on-glass-fg.css +1 -1
  600. package/dist/styles/tokens/property-regs-specular.css +1 -1
  601. package/dist/styles/tokens/property-regs.css +1 -1
  602. package/dist/styles/tokens/scale-paper.css +1 -1
  603. package/dist/styles/tokens/scheme-motion.css +1 -1
  604. package/dist/styles/tokens/scheme-spring.css +1 -1
  605. package/dist/styles/tokens/scroll-tokens.css +1 -1
  606. package/dist/styles/tokens/shadow.css +1 -1
  607. package/dist/styles/tokens/sizing-config.css +1 -1
  608. package/dist/styles/tokens/sizing.css +1 -1
  609. package/dist/styles/tokens.css +1 -1
  610. package/dist/styles/tokens.d.ts +2 -2
  611. package/dist/styles/track-well.css +1 -0
  612. package/dist/styles/transitions.css +1 -1
  613. package/dist/styles/typography/scale.css +1 -1
  614. package/dist/styles/typography/semantic.css +1 -1
  615. package/dist/styles/typography/utilities.css +1 -1
  616. package/dist/styles/typography.css +1 -1
  617. package/dist/styles/utilities/a11y-overrides.css +1 -1
  618. package/dist/styles/utilities/base-misc.css +1 -1
  619. package/dist/styles/utilities/base.css +1 -1
  620. package/dist/styles/utilities/btn.css +1 -1
  621. package/dist/styles/utilities/components.css +1 -1
  622. package/dist/styles/utilities/metal.css +1 -1
  623. package/dist/styles/utilities/responsive.css +1 -1
  624. package/dist/styles/utilities.css +1 -1
  625. package/dist/styles/view-transition.css +1 -1
  626. package/dist/styles/viz-reveal.css +1 -1
  627. package/dist/{supportsCssTimeline-C2zyWpl8.js → supportsCssTimeline-Di9gzleG.js} +5 -4
  628. package/dist/surface.d.ts +1 -1
  629. package/dist/surface.js +1 -1
  630. package/dist/switch-lLkbREB-.js +49 -0
  631. package/dist/switch.d.ts +1 -1
  632. package/dist/switch.js +1 -1
  633. package/dist/tabs-DSJMd1Et.js +268 -0
  634. package/dist/tabs.d.ts +1 -1
  635. package/dist/tabs.js +2 -311
  636. package/dist/textarea.d.ts +1 -0
  637. package/dist/textarea.js +58 -0
  638. package/dist/timeline.d.ts +1 -1
  639. package/dist/timeline.js +238 -528
  640. package/dist/{toast-CH5mnsYT.js → toast-9c6Kp58L.js} +52 -50
  641. package/dist/toast.d.ts +1 -1
  642. package/dist/toast.js +1 -1
  643. package/dist/toggle-group-DUcmKnDw.js +125 -0
  644. package/dist/toggle-group.d.ts +1 -1
  645. package/dist/toggle-group.js +1 -1
  646. package/dist/tokens.d.ts +1 -1
  647. package/dist/tokens.js +12 -10
  648. package/dist/tooltip-BKk2qVDn.js +142 -0
  649. package/dist/tooltip.d.ts +1 -1
  650. package/dist/tooltip.js +1 -1
  651. package/dist/typewriter.d.ts +1 -1
  652. package/dist/typewriter.js +10 -32
  653. package/dist/useAccentTone-DFAh1osB.js +47 -0
  654. package/dist/{resolveCanvasColor-DS_6DBxA.js → useCanvas2D-CQRElMyE.js} +2 -13
  655. package/dist/{useDockCtaReceive-DkrOTM0q.js → useDockCtaReceive-BSSgD6mu.js} +2 -2
  656. package/dist/{useDragMorph-BogSV_nv.js → useDragMorph-B363RUbF.js} +59 -59
  657. package/dist/{useDragVelocity-6ONX0sr0.js → useDragVelocity-C5BkKiNf.js} +28 -24
  658. package/dist/useIntersectionPause-CzKR3EyP.js +57 -0
  659. package/dist/useLeadTrail-DQWdpFN1.js +83 -0
  660. package/dist/{useLiquidPress-BOxuDkKa.js → useLiquidPress-h1scrPtP.js} +1 -1
  661. package/dist/useScrollChrome-BJbWV32F.js +162 -0
  662. package/dist/useScrollProgress-Bq-KPaKM.js +41 -0
  663. package/dist/{useScrollTrigger-BDdqptlc.js → useScrollTrigger-Abe5dEeO.js} +25 -26
  664. package/dist/useSelectionGroup-zsEwitF6.js +291 -0
  665. package/dist/{useSpringMount-uQ8QL9Ff.js → useSpringMount-OA-0mTNv.js} +5 -6
  666. package/dist/vReveal-B5WYGofz.js +44 -0
  667. package/dist/{valueDomain-SbVzoHMH.js → valueDomain-DXRzfc8l.js} +1 -1
  668. package/package.json +52 -109
  669. package/dist/FeedbackMark-DZq5001h.js +0 -23
  670. package/dist/Input-9BlLluik.js +0 -77
  671. package/dist/PagerDots-BEq0MgtH.js +0 -311
  672. package/dist/Surface-kFQeYrYv.js +0 -82
  673. package/dist/animated-digit.d.ts +0 -1
  674. package/dist/animated-digit.js +0 -44
  675. package/dist/badge-u65NClWn.js +0 -62
  676. package/dist/button-Bu9F4uU6.js +0 -98
  677. package/dist/canvas.d.ts +0 -1
  678. package/dist/canvas.js +0 -2
  679. package/dist/chip-DFZQr6rV.js +0 -129
  680. package/dist/color.wgsl-Ct5o9dpf.js +0 -411
  681. package/dist/command-SFqDQ65h.js +0 -320
  682. package/dist/compile-D7VYG3gi.js +0 -19
  683. package/dist/completion-seal.d.ts +0 -1
  684. package/dist/completion-seal.js +0 -132
  685. package/dist/components/_shared/FeedbackMark.vue.d.ts +0 -11
  686. package/dist/components/_shared/control-size.d.ts +0 -2
  687. package/dist/components/_shared/disclosure.css +0 -1
  688. package/dist/components/_shared/feedback-tone.css +0 -1
  689. package/dist/components/_shared/feedback.d.ts +0 -7
  690. package/dist/components/_shared/field-control.css +0 -1
  691. package/dist/components/_shared/field-surfaces.css +0 -1
  692. package/dist/components/_shared/floating.d.ts +0 -14
  693. package/dist/components/_shared/menu.css +0 -1
  694. package/dist/components/_shared/menuRowClass.d.ts +0 -2
  695. package/dist/components/_shared/resolveSurfaceClass.d.ts +0 -3
  696. package/dist/components/animated-digit/AnimatedDigit.vue.d.ts +0 -55
  697. package/dist/components/animated-digit/index.d.ts +0 -2
  698. package/dist/components/avatar/styles.css +0 -1
  699. package/dist/components/card/CardAction.vue.d.ts +0 -17
  700. package/dist/components/card/card-scroll.css +0 -1
  701. package/dist/components/carousel/interface.d.ts +0 -22
  702. package/dist/components/checkbox/styles.css +0 -1
  703. package/dist/components/combobox/Combobox.vue.d.ts +0 -22
  704. package/dist/components/combobox/ComboboxAnchor.vue.d.ts +0 -14
  705. package/dist/components/combobox/ComboboxEmpty.vue.d.ts +0 -14
  706. package/dist/components/combobox/ComboboxGroup.vue.d.ts +0 -14
  707. package/dist/components/combobox/ComboboxInput.vue.d.ts +0 -18
  708. package/dist/components/combobox/ComboboxItem.vue.d.ts +0 -18
  709. package/dist/components/combobox/ComboboxItemIndicator.vue.d.ts +0 -14
  710. package/dist/components/combobox/ComboboxList.vue.d.ts +0 -29
  711. package/dist/components/combobox/ComboboxTrigger.vue.d.ts +0 -16
  712. package/dist/components/combobox/index.d.ts +0 -10
  713. package/dist/components/combobox/types.d.ts +0 -87
  714. package/dist/components/command/dialogContext.d.ts +0 -6
  715. package/dist/components/command/styles.css +0 -1
  716. package/dist/components/completion-seal/CompletionSeal.vue.d.ts +0 -28
  717. package/dist/components/completion-seal/composables/useCompletionSeal.d.ts +0 -37
  718. package/dist/components/completion-seal/constants.d.ts +0 -66
  719. package/dist/components/completion-seal/index.d.ts +0 -4
  720. package/dist/components/completion-seal/styles.css +0 -1
  721. package/dist/components/data-table/styles.css +0 -1
  722. package/dist/components/deck/DeckPager.vue.d.ts +0 -29
  723. package/dist/components/dialog/DialogClose.vue.d.ts +0 -16
  724. package/dist/components/dialog/DialogTrigger.vue.d.ts +0 -16
  725. package/dist/components/dialog/dialogStageContext.d.ts +0 -7
  726. package/dist/components/dialog/placement.css +0 -1
  727. package/dist/components/dialog/sheet-motion.d.ts +0 -17
  728. package/dist/components/dock/composables/useDockOverflowFit.d.ts +0 -20
  729. package/dist/components/dock/composables/useDockTouchGate.d.ts +0 -42
  730. package/dist/components/dock/styles/overflow.css +0 -1
  731. package/dist/components/drawer/Drawer.vue.d.ts +0 -82
  732. package/dist/components/drawer/DrawerContent.vue.d.ts +0 -39
  733. package/dist/components/drawer/DrawerDescription.vue.d.ts +0 -17
  734. package/dist/components/drawer/DrawerFooter.vue.d.ts +0 -17
  735. package/dist/components/drawer/DrawerHeader.vue.d.ts +0 -17
  736. package/dist/components/drawer/DrawerOverlay.vue.d.ts +0 -8
  737. package/dist/components/drawer/DrawerTitle.vue.d.ts +0 -17
  738. package/dist/components/drawer/composables/drawerSnapContext.d.ts +0 -34
  739. package/dist/components/drawer/composables/useDrawerSnap.d.ts +0 -26
  740. package/dist/components/drawer/constants.d.ts +0 -32
  741. package/dist/components/drawer/index.d.ts +0 -33
  742. package/dist/components/drawer/styles.css +0 -1
  743. package/dist/components/dropdown-menu/styles.css +0 -1
  744. package/dist/components/easing/EasingConfigurator.vue.d.ts +0 -33
  745. package/dist/components/expandable-container/styles.css +0 -1
  746. package/dist/components/fourier-field/composables/fourierFieldGLSetup.d.ts +0 -24
  747. package/dist/components/fourier-field/composables/fourierFieldWGPUSetup.d.ts +0 -31
  748. package/dist/components/fourier-field/composables/uniformBridgeWGPU.d.ts +0 -41
  749. package/dist/components/fourier-field/composables/useFourierField.d.ts +0 -56
  750. package/dist/components/fourier-field/presets.d.ts +0 -54
  751. package/dist/components/fourier-field/shaders/fourier-field.compute.wgsl.d.ts +0 -1
  752. package/dist/components/fourier-field/shaders/fourier-field.glsl.d.ts +0 -4
  753. package/dist/components/fourier-field/shaders/fourier-field.render.wgsl.d.ts +0 -1
  754. package/dist/components/fourier-field/shaders/fourier-field.ribbon.d.ts +0 -51
  755. package/dist/components/handmark/brush.d.ts +0 -269
  756. package/dist/components/handmark/composables/useHandMark.d.ts +0 -99
  757. package/dist/components/handmark/constants.d.ts +0 -69
  758. package/dist/components/handmark/freehand.d.ts +0 -69
  759. package/dist/components/handmark/geometry.d.ts +0 -65
  760. package/dist/components/handmark/ink.d.ts +0 -11
  761. package/dist/components/handmark/noise.d.ts +0 -30
  762. package/dist/components/handmark/texture.d.ts +0 -39
  763. package/dist/components/handmark/types.d.ts +0 -70
  764. package/dist/components/header-ribbon/HeaderRibbon.vue.d.ts +0 -13
  765. package/dist/components/header-ribbon/index.d.ts +0 -2
  766. package/dist/components/header-ribbon/styles.css +0 -1
  767. package/dist/components/header-ribbon/types.d.ts +0 -10
  768. package/dist/components/instrument-chassis/InstrumentChassis.vue.d.ts +0 -23
  769. package/dist/components/instrument-chassis/index.d.ts +0 -2
  770. package/dist/components/instrument-chassis/styles.css +0 -1
  771. package/dist/components/instrument-chassis/types.d.ts +0 -13
  772. package/dist/components/labeled-field/LabeledSelect.vue.d.ts +0 -20
  773. package/dist/components/liquid-grid/LiquidGrid.vue.d.ts +0 -46
  774. package/dist/components/liquid-grid/composables/liquidGrid.d.ts +0 -113
  775. package/dist/components/liquid-grid/composables/liquidGridGLSetup.d.ts +0 -18
  776. package/dist/components/liquid-grid/composables/liquidGridWGPUSetup.d.ts +0 -21
  777. package/dist/components/liquid-grid/composables/uniformBridgeWGPU.d.ts +0 -16
  778. package/dist/components/liquid-grid/composables/useLiquidGrid.d.ts +0 -32
  779. package/dist/components/liquid-grid/constants.d.ts +0 -92
  780. package/dist/components/liquid-grid/index.d.ts +0 -5
  781. package/dist/components/liquid-grid/shaders/liquid-grid.glsl.d.ts +0 -4
  782. package/dist/components/liquid-grid/shaders/liquid-grid.wgsl.d.ts +0 -1
  783. package/dist/components/metric/MetricCell.vue.d.ts +0 -26
  784. package/dist/components/number-field/NumberFieldDecrement.vue.d.ts +0 -18
  785. package/dist/components/number-field/NumberFieldIncrement.vue.d.ts +0 -18
  786. package/dist/components/number-field/styles.css +0 -1
  787. package/dist/components/pager-dots/composables/usePagerWorm.d.ts +0 -26
  788. package/dist/components/pager-dots/constants.d.ts +0 -14
  789. package/dist/components/pager-dots/pagerWindow.d.ts +0 -9
  790. package/dist/components/paper-backdrop/PaperBackdrop.vue.d.ts +0 -8
  791. package/dist/components/paper-backdrop/index.d.ts +0 -2
  792. package/dist/components/pulse/Pulse.vue.d.ts +0 -14
  793. package/dist/components/pulse/index.d.ts +0 -2
  794. package/dist/components/radio-group/styles.css +0 -1
  795. package/dist/components/search/FuzzySearch.vue.d.ts +0 -24
  796. package/dist/components/search/SearchBar.vue.d.ts +0 -38
  797. package/dist/components/search/composables/index.d.ts +0 -5
  798. package/dist/components/search/index.d.ts +0 -9
  799. package/dist/components/search/searchVariants.d.ts +0 -17
  800. package/dist/components/select/SelectScrollDownButton.vue.d.ts +0 -17
  801. package/dist/components/select/SelectScrollUpButton.vue.d.ts +0 -17
  802. package/dist/components/sortable-list/composables/dragController.d.ts +0 -29
  803. package/dist/components/sortable-list/composables/dropResolver.d.ts +0 -34
  804. package/dist/components/sortable-list/composables/ghostRenderer.d.ts +0 -44
  805. package/dist/components/sortable-list/composables/index.d.ts +0 -1
  806. package/dist/components/sortable-list/composables/touchGate.d.ts +0 -26
  807. package/dist/components/sortable-list/composables/transitionTiming.d.ts +0 -50
  808. package/dist/components/switch/styles.css +0 -1
  809. package/dist/components/tabs/constants.d.ts +0 -1
  810. package/dist/components/tags-input/TagsInput.vue.d.ts +0 -41
  811. package/dist/components/tags-input/TagsInputInput.vue.d.ts +0 -10
  812. package/dist/components/tags-input/TagsInputItem.vue.d.ts +0 -19
  813. package/dist/components/tags-input/TagsInputItemDelete.vue.d.ts +0 -17
  814. package/dist/components/tags-input/TagsInputItemText.vue.d.ts +0 -7
  815. package/dist/components/tags-input/context.d.ts +0 -5
  816. package/dist/components/tags-input/index.d.ts +0 -5
  817. package/dist/components/tags-input/styles.css +0 -1
  818. package/dist/components/timeline/ContinuousMarkers.vue.d.ts +0 -47
  819. package/dist/components/timeline/ContinuousRail.vue.d.ts +0 -23
  820. package/dist/components/timeline/ContinuousTimeline.vue.d.ts +0 -117
  821. package/dist/components/timeline/GlassTimeline.vue.d.ts +0 -113
  822. package/dist/components/timeline/ScrubberTimeline.vue.d.ts +0 -45
  823. package/dist/components/timeline/SegmentedTimeline.vue.d.ts +0 -45
  824. package/dist/components/toggle-group/styles.css +0 -1
  825. package/dist/components/toggle-group/toggleGroupContext.d.ts +0 -9
  826. package/dist/components/typewriter/composables/index.d.ts +0 -1
  827. package/dist/components/watercolor-dot/WatercolorDot.vue.d.ts +0 -61
  828. package/dist/components/watercolor-dot/index.d.ts +0 -3
  829. package/dist/components/watercolor-dot/prng.d.ts +0 -5
  830. package/dist/components/watercolor-dot/useWatercolorBlob.d.ts +0 -28
  831. package/dist/composables/glass/ambientHueHistogram.d.ts +0 -27
  832. package/dist/composables/glass/useSpecularPointer.d.ts +0 -52
  833. package/dist/composables/glass/wave/index.d.ts +0 -4
  834. package/dist/composables/glass/wave/waveField.d.ts +0 -136
  835. package/dist/composables/glass/wave/waveField.glsl.d.ts +0 -1
  836. package/dist/composables/glass/wave/waveField.wgsl.d.ts +0 -1
  837. package/dist/composables/glass/webgpu/index.d.ts +0 -3
  838. package/dist/composables/index.d.ts +0 -9
  839. package/dist/composables/motion/number/useCountup.d.ts +0 -30
  840. package/dist/composables/motion/number/useNumericTransition.d.ts +0 -56
  841. package/dist/composables/motion/reveal/bloomUpField.d.ts +0 -29
  842. package/dist/composables/motion/reveal/useBloomUp.d.ts +0 -33
  843. package/dist/composables/motion/reveal/useStaggerReveal.d.ts +0 -28
  844. package/dist/composables/motion/reveal/useTextHighlight.d.ts +0 -41
  845. package/dist/composables/motion/scroll/useScrollPin.d.ts +0 -49
  846. package/dist/configurator-M5OaIlJd.js +0 -311
  847. package/dist/data-table-BygKg6ZA.js +0 -491
  848. package/dist/dialog-TNRDkcE4.js +0 -385
  849. package/dist/dockContext-BUTlGRNJ.js +0 -13
  850. package/dist/drawer.d.ts +0 -1
  851. package/dist/drawer.js +0 -496
  852. package/dist/dropdown-menu-BlbnvMaZ.js +0 -507
  853. package/dist/dropdown-menu.d.ts +0 -1
  854. package/dist/floating-dB5TD88k.js +0 -7
  855. package/dist/flow.wgsl-Cd2GUkPx.js +0 -4
  856. package/dist/fonts/README.md +0 -120
  857. package/dist/fonts/fira-code/OFL.txt +0 -93
  858. package/dist/fonts/plus-jakarta-sans/OFL.txt +0 -93
  859. package/dist/forms.d.ts +0 -5
  860. package/dist/forms.js +0 -403
  861. package/dist/header-ribbon.d.ts +0 -1
  862. package/dist/header-ribbon.js +0 -43
  863. package/dist/instrument-chassis.d.ts +0 -1
  864. package/dist/instrument-chassis.js +0 -54
  865. package/dist/label-DnMqH7jr.js +0 -55
  866. package/dist/liquid-grid.d.ts +0 -1
  867. package/dist/liquid-grid.js +0 -1065
  868. package/dist/menuRowClass-Nh7CtMON.js +0 -12
  869. package/dist/number-field-Boe09SvX.js +0 -154
  870. package/dist/paper-backdrop.d.ts +0 -1
  871. package/dist/paper-backdrop.js +0 -23
  872. package/dist/popover-BQGYXZyO.js +0 -244
  873. package/dist/progress-DClbhRAT.js +0 -88
  874. package/dist/pulse.d.ts +0 -1
  875. package/dist/pulse.js +0 -42
  876. package/dist/resolveSurfaceClass-DCZ4PZcy.js +0 -6
  877. package/dist/search.d.ts +0 -1
  878. package/dist/search.js +0 -352
  879. package/dist/select-BcBAyLXA.js +0 -336
  880. package/dist/separator-CgZInrX-.js +0 -75
  881. package/dist/slider-DzqeQmMu.js +0 -162
  882. package/dist/springPresets-rCii5KqX.js +0 -52
  883. package/dist/styles/draw-in.css +0 -1
  884. package/dist/styles/glass/accent-tone.css +0 -1
  885. package/dist/styles/glass/grain-overlay.css +0 -1
  886. package/dist/styles/glass/material-roles.css +0 -1
  887. package/dist/styles/glass-refract.css +0 -1
  888. package/dist/styles/tokens/manifest.ts +0 -56
  889. package/dist/styles/tokens.ts +0 -54
  890. package/dist/switch-DZjQuFLa.js +0 -54
  891. package/dist/toggle-group-O6jBo7AE.js +0 -150
  892. package/dist/tooltip-Drx5qnw_.js +0 -148
  893. package/dist/useAccentTone-DyInfHXE.js +0 -23
  894. package/dist/useAnimatedNumber-WPtMz0AN.js +0 -40
  895. package/dist/useDocumentVisibility-Dh_TGXsU.js +0 -21
  896. package/dist/useFuzzySearch-CUnZknpm.js +0 -177
  897. package/dist/useIntersectionPause-B5mAU6XY.js +0 -39
  898. package/dist/useLeadTrail-AW1-zZcd.js +0 -74
  899. package/dist/useRAFLoop-B3YlWK4M.js +0 -98
  900. package/dist/useScrollProgress-CSFYXIZT.js +0 -43
  901. package/dist/useSelectionGroup-B5XplBbo.js +0 -132
  902. package/dist/useTabRovingFocus-YnWh-Ytr.js +0 -169
  903. package/dist/useTextHighlight-mfwNIC1f.js +0 -112
  904. package/dist/useTouchGate-B4mzQcHJ.js +0 -84
  905. package/dist/useUserInvalidAria-0GNrddMX.js +0 -25
  906. package/dist/watercolor-dot.d.ts +0 -1
  907. package/dist/watercolor-dot.js +0 -149
  908. /package/dist/components/_shared/{disclosure-context.d.ts → disclosure/disclosure-context.d.ts} +0 -0
  909. /package/dist/components/_shared/{valueDomain.d.ts → field/valueDomain.d.ts} +0 -0
  910. /package/dist/components/{dropdown-menu → menu}/DropdownMenuGroup.vue.d.ts +0 -0
  911. /package/dist/components/{dropdown-menu → menu}/DropdownMenuItem.vue.d.ts +0 -0
  912. /package/dist/components/{dropdown-menu → menu}/DropdownMenuLabel.vue.d.ts +0 -0
  913. /package/dist/components/{dropdown-menu → menu}/DropdownMenuSeparator.vue.d.ts +0 -0
  914. /package/dist/components/{dropdown-menu → menu}/DropdownMenuShortcut.vue.d.ts +0 -0
  915. /package/dist/components/{dropdown-menu → menu}/DropdownMenuSub.vue.d.ts +0 -0
  916. /package/dist/components/{dropdown-menu → menu}/DropdownMenuSubTrigger.vue.d.ts +0 -0
  917. /package/dist/components/{dropdown-menu/useMenuTrigger.d.ts → menu/context.d.ts} +0 -0
  918. /package/dist/{components/search/composables → composables/search}/types.d.ts +0 -0
@@ -1,134 +1,109 @@
1
- import type { OklchStop } from "../../composables/color";
1
+ import type { OklchStop } from "../../composables/color/index.js";
2
+ import type { FOURIER_FIGURES } from "./math.js";
3
+ /** The palette-stop ceiling — the WGSL `MAX_FOURIER_STOPS` binding size. */
4
+ export declare const MAX_FOURIER_STOPS = 4;
2
5
  /**
3
- * Curve-sampling resolution for the stable view-fit bbox pass — the renderer samples the
4
- * epicycle curve this many times once at mount to size it to the canvas with a fixed
5
- * margin (so the curve never clips and the scale is constant across the run). 720 = one
6
- * sample per half-degree of the unit period.
6
+ * The CPU-resolved OKLab ramp resolution. The palette is sampled into this many entries
7
+ * once per palette change and uploaded as a table, so the shader never runs an OKLab
8
+ * conversion per fragment and the ink, the mark and the head all read ONE ramp.
7
9
  */
8
- export declare const FOURIER_FIT_SAMPLES = 720;
10
+ export declare const FOURIER_LUT_SIZE = 16;
9
11
  /**
10
- * The phasor-table uniform ceiling — the WGSL `MAX_PHASORS` #define. The configurator's
11
- * harmonic count maxes here; a >64-term custom trace books a storage-buffer widen (cheap —
12
- * the flow-field already uses a storage buffer). The curated ℱ/heart/star set + the
13
- * generated elliptic spectrum all sit under it.
12
+ * The tail chroma floor. A ramp that lets chroma fall to zero paints a grey smear at the
13
+ * trail's end — the blob disease. Every LUT entry is floored here.
14
14
  */
15
- export declare const MAX_PHASORS = 64;
15
+ export declare const FOURIER_TAIL_CHROMA_FLOOR = 0.1;
16
16
  /**
17
- * The comet-curve sample ceiling — the storage-buffer array bound. The compute pass
18
- * writes the partial-sum curve point at `M` samples back along the period from the head;
19
- * the render pass reads them as the comet polyline. 384 gives a smooth bold stroke.
17
+ * THE INK STEP. The ink is the mark's own ramp head taken one step DOWN in lightness and
18
+ * then gamut-mapped at fixed L and hue, so it is a real pigment rather than a wash. This
19
+ * is the module's own ramp step, and it is what solves mark:ink into the [1.5, 3.0]:1
20
+ * band in BOTH schemes at once.
20
21
  */
21
- export declare const MAX_CURVE_SAMPLES = 384;
22
- /** The palette-stop ceiling — the WGSL `MAX_FOURIER_STOPS` #define. */
23
- export declare const MAX_FOURIER_STOPS = 4;
22
+ export declare const FOURIER_INK_DELTA_L = 0.22;
24
23
  /**
25
- * The cursor-velocity → head_t clock-coupling gain. Cursor motion (not absolute X)
26
- * nudges the loop clock: a flick fast-
27
- * forwards, a still cursor lets the field drift at its config speed. Velocity-continuous —
28
- * the head never teleports (an absolute-X `headT = pointerX` scrub reads as "not
29
- * following" a 2-D cursor).
24
+ * THE HEAD LIFT. The comet head's core is the ramp head lifted by half the ink step, with
25
+ * chroma preserved. The head is light-led and stays in the palette family — it is never a
26
+ * white specular, which reads as trite and shiny and belongs to no rung.
30
27
  */
31
- export declare const SCRUB_GAIN = 0.15;
28
+ export declare const FOURIER_HEAD_DELTA_L = 0.11;
32
29
  /**
33
- * The comet ribbon's TAIL width as a fraction of the head width (the head→tail taper). At the
34
- * head (age 1) the stroke is the full `trailWidth`; at the tail (age 0) it is `RIBBON_TAIL_FRAC`
35
- * of it. The taper is `f(age) = RIBBON_TAIL_FRAC + (1 − RIBBON_TAIL_FRAC)·age` (LINEAR, so the
36
- * age-0.5 MID-BODY is `RIBBON_TAIL_FRAC + (1 − RIBBON_TAIL_FRAC)·0.5` of the head). Declared
37
- * ONCE here + MIRRORED verbatim as the `RIBBON_TAIL_FRAC` const in BOTH shaders (the GLSL twin
38
- * cannot import a TS constant); keep the three copies equal so the
39
- * mid-body floor below can never drift off the taper.
30
+ * The chain's hue sweep, in radians, ridden symmetrically about the palette hue. Measured
31
+ * swept range 10.3°–50.5° off a warm anchor, which is why the chain cannot reach
32
+ * chartreuse by construction rather than by a clamp.
40
33
  */
41
- export declare const RIBBON_TAIL_FRAC = 0.4;
42
- /** The mid-body taper fraction (age 0.5) — the width the {@link RIBBON_HEAD_FLOOR_PX} floor targets. */
43
- export declare const RIBBON_MID_TAPER_FRAC: number;
34
+ export declare const FOURIER_CHAIN_HUE_SWEEP = 0.35;
35
+ /** The scaffold stroke as a fraction of the mark stroke — the chain is a rung below the curve. */
36
+ export declare const FOURIER_SCAFFOLD_STROKE_FRAC = 0.4;
37
+ /** The three mark-stroke rungs in CSS px. Three rungs, three visibly distinct pictures. */
38
+ export declare const FOURIER_STROKE_RUNGS: readonly [4, 8, 12];
44
39
  /**
45
- * The MID-BODY minimum in CSS px (the B1 "≥2.5px CSS mid-body at every DPR, never a 1px
46
- * hairline polyline" bar). The width is DPR-independent by construction (converted to model
47
- * via `canvasCssMin` = backing ÷ dpr), so a CSS-px floor holds at every DPR.
40
+ * The flick's advance cap in turns. A full flick advances the clock by at most half a
41
+ * figure (`|∫flick| = v/ω² ≤ FOURIER_FLICK_TURNS`), so the machine stays checkable: the
42
+ * reader can always see where the head went.
48
43
  */
49
- export declare const RIBBON_MID_FLOOR_PX = 2.5;
44
+ export declare const FOURIER_FLICK_TURNS = 0.5;
45
+ /** The cursor-velocity → clock-rate scrub gain (turns per second per unit pointer velocity). */
46
+ export declare const FOURIER_SCRUB_GAIN = 0.15;
47
+ /** Base forward period for one full traversal at 1× speed, in seconds. */
48
+ export declare const FOURIER_PERIOD_S = 16;
49
+ /** The keyboard scrub quanta in turns: fine (←/→) and coarse (↑/↓). */
50
+ export declare const FOURIER_QUANTUM_FINE: number;
51
+ export declare const FOURIER_QUANTUM_COARSE: number;
50
52
  /**
51
- * The HEAD-width floor in CSS px (the `trailWidth` clamp in `trailWidthToModel`). Sized so the
52
- * mid-body (head × {@link RIBBON_MID_TAPER_FRAC}) clears {@link RIBBON_MID_FLOOR_PX} — even a
53
- * consumer setting `trailWidth: 1` gets a ≥2.5px mid-body. A hair over the exact quotient for
54
- * float safety.
53
+ * The device-pixel-ratio cap. Consumed locally: the curve is a thin stroke over mostly
54
+ * empty stage, so it is worth resolving sharply, and 2× is where the sharpness stops
55
+ * being visible and starts being fill rate.
55
56
  */
56
- export declare const RIBBON_HEAD_FLOOR_PX: number;
57
+ export declare const FOURIER_DPR_CAP = 2;
58
+ /** The number of curve samples the comet body is built from. */
59
+ export declare const FOURIER_CURVE_SAMPLES = 384;
57
60
  /**
58
- * The degenerate-tangent guard ( §2b). At a cusp the head's instantaneous
59
- * speed `s = length(head − headBack)` collapses to ~0 and the unit tangent `T = d/s` blows
60
- * up; below `FOURIER_TANGENT_EPS` the shaders + the GL CPU bead path all fall back to the
61
- * LAST stable tangent, so `s→0` resolves IDENTICALLY across both engines (the cross-engine
62
- * cusp-parity fence — one shared constant, no per-engine drift).
61
+ * The degenerate-tangent guard. At a cusp the head's instantaneous speed collapses and
62
+ * the unit tangent blows up; below this the shader falls back to the last stable tangent.
63
63
  */
64
64
  export declare const FOURIER_TANGENT_EPS = 0.0001;
65
- /**
66
- * The head squash-and-stretch gain ( §2b). The round head bead becomes a
67
- * volume-preserving anisotropic ellipse: the tangent extent scales `1 + k·ŝ`, the normal
68
- * extent `1/(1 + k·ŝ)`, where `ŝ` is the normalized head speed. The library identity carries
69
- * a SMALL non-zero gain (cartoon-weight at rest — the head is never a dead disc); a consumer
70
- * vivid preset turns it to 11. `0` = the byte-frozen round disc.
71
- */
72
- export declare const FOURIER_SQUASH_GAIN = 0.55;
73
- /**
74
- * The cartoon cel-shadow gain ( §3b). Each chain ring/arm/dot + the comet
75
- * rope paints a second darker copy OFFSET opposite its travel — the 1940s technicolor ink.
76
- * The library identity carries a SMALL non-zero gain (a quiet weight under the chain); a
77
- * consumer vivid preset floors it UP. `0` = no cel pass (byte-frozen). The offset rides the
78
- * head tangent, mirrored on both engines off the SAME `curveSamples` tangent.
79
- */
80
- export declare const FOURIER_CEL_GAIN = 0.35;
65
+ /** The spectrum source: the seeded generator, or a curated closed figure by key. */
66
+ export type FourierSource = "elliptic" | keyof typeof FOURIER_FIGURES;
81
67
  /**
82
68
  * The full author schema — the studio's `useConfiguratorState` model. Every field is a
83
- * tunable the demo configurator drives; the composable resolves it into the uniform table.
69
+ * tunable a control drives, and every one of them changes the picture.
84
70
  */
85
71
  export interface FourierFieldConfig {
86
- /** The active phasor spectrum source key — `"elliptic"` (generated) or a curated shape key. */
87
- source: string;
88
- /** TRUNCATE the partial sum — the harmonic count N (1..min(spectrum.length, MAX_PHASORS)). */
72
+ /** The spectrum source. An unknown key throws at config time rather than painting a default. */
73
+ source: FourierSource;
74
+ /**
75
+ * The partial-sum term count N. Its live domain is `[1, spectrum.length]`, where the
76
+ * length is what the mint emitted — there is no constant maximum anywhere.
77
+ */
89
78
  harmonics: number;
90
- /** Draw the rotating epicycle chain (orthogonal to N). */
91
- showEpicycles: boolean;
92
- /** How many chain arms to draw (1..N; ≤ the harmonic count). */
93
- epicycleArms: number;
94
- /** Paint the chain as a warm-anchored hue sweep vs one analogous hue. */
79
+ /** Draw the machine: the rings, the arms and the joint dots. */
80
+ showMachine: boolean;
81
+ /** Sweep the chain's hue about the palette anchor rather than painting one hue. */
95
82
  rainbowChain: boolean;
96
- /** Comet-body length as a fraction of the period (0.15..1.0). */
83
+ /** Comet-body length as a fraction of the period (0.15..1). */
97
84
  trailArc: number;
98
- /** Comet stroke weight in CSS px (1..6). */
99
- trailWidth: number;
100
- /** Outer loudness envelope (per-layer alpha multiply, 0..2). */
85
+ /** The mark stroke in CSS px — one of {@link FOURIER_STROKE_RUNGS}. */
86
+ markStroke: number;
87
+ /**
88
+ * The ink's offset from its mark, in stroke widths, taken along this segment's own
89
+ * tangent and opposite the travel. Below ½ the ink hides under its mark; above 1 it
90
+ * detaches and reads as a second line.
91
+ */
92
+ inkOffset: number;
93
+ /** The head's squash-and-stretch gain (0..1). 0 is a dead round disc. */
94
+ squash: number;
95
+ /** The head halo's strength (0..0.3). */
96
+ glow: number;
97
+ /** Outer loudness envelope (0..2). Above 1 the pack clamps, and the row says so. */
101
98
  intensity: number;
102
- /** Character of the generated elliptic spectrum (0.05..0.4 — smooth ellipse → crinkled). */
103
- harmonicScale: number;
104
- /** Clock speed multiplier (0.25/0.5/1/2). */
99
+ /** Character of the GENERATED spectrum (0..1). Inert for a curated source. */
100
+ richness: number;
101
+ /** Clock speed multiplier. */
105
102
  speed: number;
106
- /** The curve-color ramp (the library viz palette; warm default). Resolved via the ColorResolver. */
103
+ /** The curve-color ramp. */
107
104
  palette: OklchStop[];
108
- /** ONE static frame then park under `prefers-reduced-motion: reduce`. */
105
+ /** One static frame then park under `prefers-reduced-motion: reduce`. */
109
106
  respectReducedMotion: boolean;
110
- /** Pointer scrubs `head_t` + a flick injects clock momentum (the consume). */
111
- interactive: boolean;
112
- /**
113
- * Head squash-and-stretch gain ( §2b). The head bead stretches along the
114
- * curve tangent on straights, squashes across it on corners (volume-preserving). The
115
- * library identity carries a small non-zero default (cartoon-weight at rest); a vivid
116
- * consumer preset turns it to 11. 0 = the byte-frozen round disc.
117
- */
118
- squashGain: number;
119
- /**
120
- * Cartoon cel-shadow gain ( §3b). A second darker copy of the chain + rope,
121
- * offset opposite the head travel (the technicolor ink). The library identity carries a
122
- * small non-zero default; a vivid consumer preset floors it UP. 0 = no cel pass.
123
- */
124
- celGain: number;
125
107
  }
126
- /**
127
- * The warm-cream identity palette (the library default — NOT teal). A two-stop warm-amber
128
- * ramp over the warm-cream foreground family, resolved via the ColorResolver. The chain's
129
- * rainbow sweep is warm-anchored over THIS base; a consumer (the demo) themes it through a
130
- * preset, never a token edit.
131
- */
132
- export declare const WARM_IDENTITY_PALETTE: OklchStop[];
133
- /** The shipped warm-identity default config. */
108
+ /** The shipped default config. */
134
109
  export declare const DEFAULT_FOURIER_CONFIG: FourierFieldConfig;
@@ -1,31 +1,4 @@
1
- import type { ColorResolver, OklchStop } from "../../composables/color";
2
- import type { FourierFieldConfig } from "./constants";
3
- import type { BasisComponent } from "./math";
4
- export { default as FourierField } from "./FourierField.vue";
5
- export { comp, positionsAt, partialSumAt, dftFromPoints, makeEllipticSpectrum, makeHarmonicFigure, FOURIER_FIGURES, FOURIER_FIGURE_KEYS, type BasisComponent, type EllipticSpectrumOptions, type HarmonicTerm, } from "./math";
6
- export { DEFAULT_FOURIER_CONFIG, WARM_IDENTITY_PALETTE, MAX_PHASORS, MAX_CURVE_SAMPLES, type FourierFieldConfig, } from "./constants";
7
- export { useFourierField, type FourierFieldHandle, type UseFourierFieldOptions, } from "./composables/useFourierField";
8
- /**
9
- * The props a consumer forwards when wrapping `<FourierField>` (the GPU-substrate epicycle
10
- * field; ships via `/fourier-field`). Mirrors the component's inline `defineProps` shape because
11
- * an SFC cannot export its inline props type. Visual bundles live in config presets; the
12
- * renderer is the WGSL-primary GPU substrate.
13
- */
14
- export interface FourierFieldProps {
15
- /** The full author config (the studio's `useConfiguratorState` model). Defaults to the warm identity. */
16
- config?: FourierFieldConfig;
17
- /** An explicit CPU-minted spectrum (a curated shape's DFT). When absent, a seeded elliptic spectrum is generated. */
18
- spectrum?: readonly BasisComponent[];
19
- /** Resolve the curve palette as OKLCh (the studio themes it). */
20
- getPalette?: () => OklchStop[];
21
- /** Ambient-consumer color seam — a `var()`/`light-dark()` token or a literal; derives a warm palette. */
22
- color?: string;
23
- /** The color resolver (the GooBlob/Aurora seam) — required when `color` is a `var()` token. */
24
- colorResolver?: ColorResolver;
25
- /** Extra seed mixed into the generated elliptic spectrum PRNG. Default "". */
26
- seed?: string;
27
- /** Paint ONE static deterministic best-frame and never animate (the capture lever). Default false. */
28
- freeze?: boolean;
29
- /** Outer loudness envelope (scales the per-layer alpha). Overrides `config.intensity` when set; clamped [0, 2]. */
30
- intensity?: number;
31
- }
1
+ export { default as FourierField } from "./FourierField.vue.js";
2
+ export { dftFromPoints, partialSumAt, positionsAt, makeEllipticSpectrum, makeHarmonicFigure, FOURIER_FIGURES, FOURIER_FIGURE_KEYS, type BasisComponent, } from "./math.js";
3
+ export { mintSpectrum, ringsAt, type MintedSpectrum } from "./renderer/mint.js";
4
+ export { DEFAULT_FOURIER_CONFIG, type FourierFieldConfig } from "./constants.js";
@@ -1,8 +1,7 @@
1
1
  /**
2
- * One Fourier phasor. `index` is the integer frequency (a counter-rotating pair
3
- * is `+1` and `-1`); `coefficient` is the complex coefficient `[re, im]`;
4
- * `amplitude`/`phase` are its polar form (carried for callers that prefer the
5
- * polar read — the reconstruction uses the rectangular `coefficient`).
2
+ * One Fourier phasor. `index` is the integer frequency (a counter-rotating pair is `+1`
3
+ * and `-1`); `coefficient` is the complex coefficient `[re, im]`; `amplitude`/`phase` are
4
+ * its polar form (the reconstruction uses the rectangular `coefficient`).
6
5
  */
7
6
  export interface BasisComponent {
8
7
  index: number;
@@ -11,101 +10,94 @@ export interface BasisComponent {
11
10
  phase: number;
12
11
  }
13
12
  /**
14
- * Build a {@link BasisComponent} from a frequency index and its rectangular
15
- * coefficient `(re, im)`, deriving the polar `amplitude`/`phase`.
13
+ * Build a {@link BasisComponent} from a frequency index and its rectangular coefficient,
14
+ * deriving the polar `amplitude`/`phase`.
16
15
  */
17
16
  export declare function comp(index: number, re: number, im: number): BasisComponent;
18
17
  /**
19
- * The epicycle chain at parameter `t`: the running tip of each phasor stacked on
20
- * the last, starting at the origin. `positions[0]` is `[0, 0]`; the final entry
21
- * is the curve point — the inverse-DFT sum `Σ c_k * exp(2*pi*i*k*t)` at the same
22
- * `t`. `maxCircles` truncates the chain (draw fewer arms than the spectrum
23
- * carries).
18
+ * The epicycle chain at parameter `t`: the running tip of each phasor stacked on the
19
+ * last, starting at the origin. `positions[0]` is `[0, 0]`; the final entry is the curve
20
+ * point. `maxCircles` truncates the chain.
24
21
  */
25
- export declare function positionsAt(components: BasisComponent[], t: number, maxCircles?: number): [number, number][];
22
+ export declare function positionsAt(components: readonly BasisComponent[], t: number, maxCircles?: number): [number, number][];
26
23
  /**
27
- * The PARTIAL-SUM curve point at parameter `t` over the FIRST `maxTerms` phasors
28
- * — the inverse-DFT truncated summation `Σ_{k<maxTerms} c_k * exp(2*pi*i*k*t)`.
29
- * It is {@link positionsAt} truncated at `maxTerms` and read at the FINAL tip:
30
- * the single curve POINT (not the whole chain). The truncation axis is the SAME
31
- * one `positionsAt`'s `maxCircles` arg drives — `maxCircles` reads the whole
32
- * chain truncated, `partialSumAt` reads only its endpoint — so the studio's
33
- * N-harmonics slider can draw the assembling chain (`positionsAt(.., N)`) AND the
34
- * resolving curve point (`partialSumAt(.., t, N)`) off the ONE axis. Sweeping `t`
35
- * over `[0,1)` and joining the points traces the partial-sum CURVE: at `maxTerms`
36
- * = 1 a single ellipse, growing toward the full reconstruction as `maxTerms`
37
- * climbs to `components.length` (the reference's "watch it sum" beauty).
38
- *
39
- * `maxTerms` omitted (or ≥ `components.length`) is the full reconstruction — the
40
- * same point `positionsAt(components, t)` returns at its final tip.
24
+ * The PARTIAL-SUM curve point at `t` over the first `maxTerms` phasors — the truncated
25
+ * inverse DFT `Σ_{k<maxTerms} c_k · e^{2πi·k·t}`. It is {@link positionsAt} read at its
26
+ * final tip without building the chain, so the fit pass and the N axis share one
27
+ * evaluator. Sweeping `t` over `[0,1)` traces the partial-sum curve: at `maxTerms = 1` a
28
+ * single ellipse, growing toward the full reconstruction as `maxTerms` climbs.
41
29
  */
42
- export declare function partialSumAt(components: BasisComponent[], t: number, maxTerms?: number): [number, number];
30
+ export declare function partialSumAt(components: readonly BasisComponent[], t: number, maxTerms?: number): [number, number];
43
31
  /**
44
- * The forward DFT — the inverse of {@link positionsAt}. Takes a closed sequence
45
- * of `[x, y]` samples around a curve (treated as the complex signal `x + i·y`,
46
- * uniformly spaced in the parameter `t ∈ [0, 1)`) and returns the
47
- * {@link BasisComponent} spectrum that {@link positionsAt} reconstructs.
48
- *
49
- * Frequencies run symmetrically around 0 — `0, +1, -1, +2, -2, …` up to the
50
- * Nyquist limit — which is the index ordering the epicycle chain wants (the big
51
- * low-order phasors first). The DC term (`index 0`) is the curve's centroid; the
52
- * caller can subtract it (draw the chain centered) or keep it (draw at the
53
- * sampled position).
32
+ * The forward DFT — the inverse of {@link positionsAt}. Takes a closed sequence of
33
+ * `[x, y]` samples around a curve (the complex signal `x + i·y`, uniformly spaced in
34
+ * `t ∈ [0, 1)`) and returns the spectrum {@link positionsAt} reconstructs.
54
35
  *
55
- * General: any point set drives it (a glyph outline, a hand-traced path, a
56
- * digitized signature). It is NOT a special case — it is the literal forward
57
- * transform whose inverse already ships as `positionsAt`.
36
+ * Frequencies run symmetrically around 0 — `0, +1, -1, +2, -2, …` up to Nyquist. The DC
37
+ * term (`index 0`) is the curve's centroid; the mint hoists it out as the fit anchor.
38
+ * Any point set drives it: a glyph outline, a hand-traced path, a digitized signature.
58
39
  */
59
- export declare function dftFromPoints(points: [number, number][]): BasisComponent[];
60
- /** Tuning for {@link makeEllipticSpectrum}. */
61
- export interface EllipticSpectrumOptions {
62
- /**
63
- * How many smaller higher-order harmonics to layer on top of the dominant
64
- * counter-rotating pair (the dominant pair is always present). Default 4.
65
- * The `final` preset passes a larger count for a denser, busier curve.
66
- */
67
- harmonics?: number;
68
- /**
69
- * Peak magnitude of the higher-order harmonics relative to the dominant
70
- * phasor. Smaller keeps the curve a clean, smooth ellipse with a little
71
- * character; larger crinkles it. Default ~0.22.
72
- */
73
- harmonicScale?: number;
74
- }
40
+ export declare function dftFromPoints(points: readonly [number, number][]): BasisComponent[];
75
41
  /**
76
- * Emit a procedural elliptic spectrum: a DOMINANT counter-rotating pair (index
77
- * `+1` and `-1`) of UNEQUAL magnitude — the inequality is what draws a tilted
78
- * ellipse rather than a circle — plus a few smaller higher-order harmonics with
79
- * random small magnitudes and phases for character. Lower orders carry more
80
- * weight (a `1 / order` falloff), so the curve stays large, smooth and
81
- * few-big-phasor; the `harmonics` knob lifts it to the denser `final` look.
42
+ * Emit a procedural elliptic spectrum: a DOMINANT counter-rotating pair (index `+1` and
43
+ * `-1`) of UNEQUAL magnitude — the inequality is what draws a tilted ellipse rather than
44
+ * a circle — plus higher-order harmonics with a `1/order` falloff.
45
+ *
46
+ * `richness` ∈ `[0,1]` is the ONE character knob: 0 is a clean ellipse, 1 a crinkled
47
+ * figure. It drives both how many harmonics are offered and how loud they are; the mint's
48
+ * paint floor then decides how many of them survive, so the axis maximum is honest
49
+ * per-seed rather than pinned to a constant.
82
50
  *
83
- * Deterministic in `rng`: the same seeded `() => number` yields the same
84
- * spectrum, so a frozen frame reproduces exactly.
51
+ * Deterministic in `rng`: the same seeded `() => number` yields the same spectrum.
85
52
  */
86
- export declare function makeEllipticSpectrum(rng: () => number, opts?: EllipticSpectrumOptions): BasisComponent[];
53
+ export declare function makeEllipticSpectrum(rng: () => number, richness?: number): BasisComponent[];
87
54
  /** One integer-index harmonic term of a {@link FOURIER_FIGURES} recipe (polar form). */
88
55
  export interface HarmonicTerm {
89
- /** The INTEGER frequency index (a closed figure requires integers — the period-1 fence). */
56
+ /** The INTEGER frequency index — a closed figure requires integers (the period-1 fence). */
90
57
  index: number;
91
58
  /** The phasor magnitude (relative; the figure is scale-fit at render). */
92
59
  mag: number;
93
- /** The phase offset in turns (0..1 — multiplied by 2π; a phase rotates the figure). */
60
+ /** The phase offset in TURNS (0..1 — multiplied by 2π). */
94
61
  phase: number;
95
62
  }
96
63
  /**
97
- * Build a {@link BasisComponent} spectrum from a closed-figure recipe (a list of integer-index
98
- * {@link HarmonicTerm}s). The recipe's `phase` is in TURNS; the rectangular coefficient is
99
- * `mag·(cos, sin)` at `2π·phase`. The result CLOSES (all indices integer) — feed it straight
100
- * to `partialSumAt`/`positionsAt`.
64
+ * Build a spectrum from a closed-figure recipe. Because every index is an INTEGER,
65
+ * `e^{2πi·k·t}` has period 1, so the sum CLOSES at `t = 1` by construction — no term can
66
+ * leave the figure open. Two counter-rotating integer phasors trace an epicycloid whose
67
+ * symmetry order is `|p − q|`; a third small term adds character without breaking closure.
101
68
  */
102
69
  export declare function makeHarmonicFigure(terms: readonly HarmonicTerm[]): BasisComponent[];
103
70
  /**
104
- * The curated FLOWER / closed-epicycle figure catalogue — few-term integer-ratio harmonic
105
- * stacks, each a deliberate figure (the symmetry order is `|p − q|` for the dominant pair).
106
- * Selectable/cyclable by key; the LIBRARY beauty register the `boring` random ellipse lacked.
107
- * The magnitudes stay large + few-phasor so the figure reads bold, not crinkled.
71
+ * The curated closed-figure catalogue — few-term integer-ratio harmonic stacks, each a
72
+ * deliberate figure (the symmetry order is `|p − q|` for the dominant pair). Every entry
73
+ * states its own honest term count: two terms draw a foil, three draw a spirograph.
108
74
  */
109
- export declare const FOURIER_FIGURES: Record<string, HarmonicTerm[]>;
75
+ export declare const FOURIER_FIGURES: {
76
+ trefoil: {
77
+ index: number;
78
+ mag: number;
79
+ phase: number;
80
+ }[];
81
+ quatrefoil: {
82
+ index: number;
83
+ mag: number;
84
+ phase: number;
85
+ }[];
86
+ pentafoil: {
87
+ index: number;
88
+ mag: number;
89
+ phase: number;
90
+ }[];
91
+ hexafoil: {
92
+ index: number;
93
+ mag: number;
94
+ phase: number;
95
+ }[];
96
+ spiro: {
97
+ index: number;
98
+ mag: number;
99
+ phase: number;
100
+ }[];
101
+ };
110
102
  /** The ordered figure keys (the demo/consumer cycle order). */
111
- export declare const FOURIER_FIGURE_KEYS: string[];
103
+ export declare const FOURIER_FIGURE_KEYS: (keyof typeof FOURIER_FIGURES)[];
@@ -0,0 +1,50 @@
1
+ import { type BasisComponent } from "../math.js";
2
+ /**
3
+ * The reference stage diagonal in device px — the derivation is on the line above. Every
4
+ * axis maximum in the tree is this number's consequence, so it is declared once.
5
+ */
6
+ export declare const FOURIER_REFERENCE_DIAGONAL_PX = 856;
7
+ /** A term survives the mint iff it moves the curve at least this far at the reference stage. */
8
+ export declare const FOURIER_PAINT_FLOOR_PX = 0.5;
9
+ /**
10
+ * A minted spectrum: the DC anchor, the amplitude-ordered surviving terms, and the model
11
+ * geometry the fit and the ring law both read. Immutable and reference-stable — the
12
+ * renderer's re-upload guard is an identity check against this object.
13
+ */
14
+ export interface MintedSpectrum {
15
+ /** The amplitude-ordered, paint-floored terms. `length` IS the N axis maximum. */
16
+ readonly terms: readonly BasisComponent[];
17
+ /** The hoisted DC term (the curve's centroid) — the anchor the scene is centred on. */
18
+ readonly dc: readonly [number, number];
19
+ /** The full reconstruction's bbox half-extents in model units (DC removed). */
20
+ readonly halfSpanX: number;
21
+ readonly halfSpanY: number;
22
+ /** The bbox centre in model units (DC removed) — the fit's centre. */
23
+ readonly centerX: number;
24
+ readonly centerY: number;
25
+ /** The bbox diagonal in model units — the reference-stage mapping's denominator. */
26
+ readonly diagonal: number;
27
+ /** `Σ|c_k|` over the terms — the chain's maximum reach from the centre. */
28
+ readonly chainReach: number;
29
+ }
30
+ /**
31
+ * Mint a raw spectrum into the shipped one. The input is anything `dftFromPoints`,
32
+ * `makeHarmonicFigure` or `makeEllipticSpectrum` produced; the output is what the GPU
33
+ * ever sees.
34
+ *
35
+ * Deterministic: the same input array yields the same output, term for term. An empty or
36
+ * all-sub-floor input still emits its single largest term — a spectrum that draws nothing
37
+ * is not a fallback, it is a blank stage, and the machine must always have one ring.
38
+ */
39
+ export declare function mintSpectrum(raw: readonly BasisComponent[]): MintedSpectrum;
40
+ /**
41
+ * THE RING LAW. A ring is DRAWN iff its own diameter reaches the mark's stroke at the
42
+ * LIVE stage: `2·|c_k| ≥ markStroke`, both sides in device pixels. Below that rung the
43
+ * term is still SUMMED and still CHAINED — the scaffold arm and the joint dot stay — only
44
+ * the circle outline elides, because a circle narrower than the line drawing it is a blob,
45
+ * not a circle.
46
+ *
47
+ * This is why the machine reads at every size with ZERO media queries: the question is
48
+ * asked of the stage the component is actually in.
49
+ */
50
+ export declare function ringsAt(minted: MintedSpectrum, stageDiagonalDevicePx: number, markStrokeDevicePx: number): number;
@@ -0,0 +1,84 @@
1
+ import { type OklchStop } from "../../../composables/color/index.js";
2
+ import type { BasisComponent } from "../math.js";
3
+ import type { MintedSpectrum } from "./mint.js";
4
+ /** One phasor lane in the storage buffer: (re, im, index, _pad). */
5
+ export declare const FOURIER_PHASOR_BYTES = 16;
6
+ export interface FourierUniformScratch {
7
+ buffer: ArrayBuffer;
8
+ f32: Float32Array;
9
+ i32: Int32Array;
10
+ }
11
+ export declare function createFourierComputeScratch(): FourierUniformScratch;
12
+ export declare function packFourierComputeUniforms(scratch: FourierUniformScratch, headT: number, trailArc: number, harmonicN: number, sampleCount: number, termCount: number): FourierUniformScratch;
13
+ export declare function createFourierRenderScratch(): FourierUniformScratch;
14
+ /** The model→clip fit transform — computed once per spectrum, never per N edit. */
15
+ export interface FourierFit {
16
+ centerX: number;
17
+ centerY: number;
18
+ /** The uniform scale s mapping (model − center)·s into clip [-1,1] with margin. */
19
+ scale: number;
20
+ }
21
+ /**
22
+ * The view fit, read straight off the mint. It unions the curve's own bbox with the
23
+ * chain's reach when the machine shows, because a chain that leaves the stage is a
24
+ * machine you cannot check. It is FIXED under N: the mint is the only input, so an N edit
25
+ * never rescales the figure and the "N=1 is genuinely this big" claim stays true.
26
+ */
27
+ export declare function computeFourierFit(minted: MintedSpectrum, showMachine: boolean): FourierFit;
28
+ /**
29
+ * Convert a CSS-px stroke to MODEL units. The fit maps model → clip; clip spans [-1,1]
30
+ * over the min CSS dimension, so cssPx-per-clip is `canvasCssMin/2`.
31
+ */
32
+ export declare function strokeToModel(strokePx: number, scale: number, canvasCssMin: number): number;
33
+ /**
34
+ * The resolved ramp: a linear-sRGB LUT plus the two derived pigments the paint law names.
35
+ * Rebuilt only when the palette itself changes.
36
+ */
37
+ export interface FourierRamp {
38
+ /** `FOURIER_LUT_SIZE` linear-sRGB entries, index 0 the ramp head. */
39
+ readonly lut: Float32Array;
40
+ /** The ink: the ramp head one step DOWN in L, gamut-mapped at fixed L and hue. */
41
+ readonly ink: [number, number, number];
42
+ /** The head core: the ramp head lifted by half a step, chroma preserved. */
43
+ readonly head: [number, number, number];
44
+ }
45
+ /**
46
+ * Resolve a palette into the shipped ramp. Chroma is floored at every entry — a ramp that
47
+ * falls to grey paints a smear where the tail should still be pigment — and every entry
48
+ * is gamut-mapped, so an out-of-gamut author stop becomes a real colour rather than a
49
+ * clipped one.
50
+ */
51
+ export declare function resolveFourierRamp(palette: readonly OklchStop[]): FourierRamp;
52
+ export interface FourierRenderPack {
53
+ fit: FourierFit;
54
+ aspect: number;
55
+ markHalfModel: number;
56
+ inkOffsetStrokes: number;
57
+ scaffoldFrac: number;
58
+ edgeMargin: number;
59
+ peakAlpha: number;
60
+ glow: number;
61
+ squash: number;
62
+ trailFadeExp: number;
63
+ trailFloor: number;
64
+ hueSweep: number;
65
+ ringStrokeModel: number;
66
+ showMachine: boolean;
67
+ rainbowChain: boolean;
68
+ sampleCount: number;
69
+ /** The number of chain arms this frame draws — the hue sweep's denominator. */
70
+ chainCount: number;
71
+ ramp: FourierRamp;
72
+ }
73
+ /**
74
+ * Pack the render uniforms in place. `peakAlpha` arrives already multiplied by the
75
+ * intensity envelope and CLAMPED here — the one place loudness can leave the legal range,
76
+ * closed at pack time so no fragment can composite past 1.
77
+ */
78
+ export declare function packFourierRenderUniforms(scratch: FourierUniformScratch, p: FourierRenderPack): FourierUniformScratch;
79
+ /**
80
+ * Pack the phasor storage table (re, im, index, _pad) from the minted spectrum. The
81
+ * buffer is sized per-spectrum by the caller — there is no table ceiling, so a 61-term ℱ
82
+ * and a 2-term foil each pay for exactly what they carry.
83
+ */
84
+ export declare function packPhasorTable(terms: readonly BasisComponent[]): Float32Array;
@@ -0,0 +1,28 @@
1
+ import type { WebGPUCanvasFrame } from "../../../composables/glass/webgpu/useWebGPUCanvas.js";
2
+ import type { WebGLCanvasFrame } from "../../../composables/glass/webgl/useWebGLCanvas.js";
3
+ import type { OklchStop } from "../../../composables/color/index.js";
4
+ import { type FourierFieldConfig } from "../constants.js";
5
+ import type { MintedSpectrum } from "./mint.js";
6
+ export interface FourierRendererDeps {
7
+ canvas: HTMLCanvasElement;
8
+ config: FourierFieldConfig;
9
+ /** The minted spectrum — re-read each frame; identity change triggers the re-upload. */
10
+ getSpectrum: () => MintedSpectrum;
11
+ /** The resolved palette stops, re-read each frame so a live edit reaches the ramp. */
12
+ getPalette: () => OklchStop[];
13
+ /** The single loop parameter `head_t ∈ [0,1)`. */
14
+ getHeadT: () => number;
15
+ /** Demand-gate (the renderer's quiescence layer). */
16
+ shouldContinue: () => boolean;
17
+ /** The per-frame hook — the clock advances here, inside the substrate's own frame. */
18
+ onFrame?: (timeSec: number) => void;
19
+ }
20
+ /** Build the fourier-field `setupWGPU(device, context, format)` callback. */
21
+ export declare function createFourierWGPUSetup(deps: FourierRendererDeps): (device: GPUDevice, context: GPUCanvasContext, format: GPUTextureFormat) => WebGPUCanvasFrame;
22
+ /**
23
+ * The WebGL2 seam, declared closed. The substrate picker requires a `setupGL`; this one
24
+ * acquires nothing and draws nothing — it throws the sentence above, which the picker
25
+ * surfaces as a renderer error. The result is exactly what the law asks for: no second
26
+ * renderer, zero canvas pixels, and a status a consumer can read and show.
27
+ */
28
+ export declare function createFourierUnsupportedSetup(): (gl: WebGL2RenderingContext) => WebGLCanvasFrame;
@@ -0,0 +1 @@
1
+ export declare const FOURIER_FIELD_COMPUTE_WGSL = "\nconst TAU: f32 = 6.283185307179586;\n\nstruct Phasor {\n // (re, im, index, _pad)\n data: vec4<f32>,\n};\n\nstruct ComputeUniforms {\n // c0: (headT, trailArc, _pad, _pad)\n c0: vec4<f32>,\n // ints: (harmonicN, sampleCount, termCount, _pad)\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) in MODEL space\n@group(0) @binding(2) var<storage, read_write> curveSamples: array<vec4<f32>>;\n// chainTips[k] = (x, y, _pad, _pad) in MODEL space\n@group(0) @binding(3) var<storage, read_write> chainTips: array<vec4<f32>>;\n\n// The truncated inverse DFT at parameter t over the first n terms \u2014 the transcription of\n// math.ts partialSumAt: c += vec2(re*cos - im*sin, re*sin + im*cos), angle = TAU*index*t.\nfn partialSumAt(t: f32, n: i32) -> vec2<f32> {\n var c = vec2<f32>(0.0, 0.0);\n let lim = min(n, i32(arrayLength(&phasors)));\n for (var i = 0; i < lim; i = i + 1) {\n let p = phasors[i].data;\n let angle = TAU * p.z * t;\n let cs = cos(angle);\n let sn = sin(angle);\n c = c + vec2<f32>(p.x * cs - p.y * sn, p.x * sn + p.y * cs);\n }\n return c;\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 sampleCount = u.ints.y;\n\n // \u2500\u2500 The comet body \u2500\u2500\n if (i < sampleCount) {\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 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 // \u2500\u2500 The chain tips (k = 0..N). chainTips[0] is the origin. \u2500\u2500\n if (i <= harmonicN && i < i32(arrayLength(&chainTips))) {\n let tip = partialSumAt(headT, i);\n chainTips[i] = vec4<f32>(tip.x, tip.y, 0.0, 0.0);\n }\n}\n";