@mkbabb/glass-ui 4.0.0 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (609) hide show
  1. package/README.md +3 -1
  2. package/dist/CardAction-8whJrLWt.js +268 -0
  3. package/dist/{CommandShortcut-DdtWXxOK.js → CommandShortcut-D3yxgHNn.js} +25 -14
  4. package/dist/ConfiguratorRow-CaP7U3ZA.js +143 -0
  5. package/dist/ContextMenuContent-B3ZsheLV.js +90 -0
  6. package/dist/{ContextMenuSubContent-B0Vs6atR.js → ContextMenuSubContent-DDRID3qC.js} +28 -33
  7. package/dist/{DataTable-C464Zbqd.js → DataTable-Bc9kUtu_.js} +4 -4
  8. package/dist/{DialogContent-DDE6pQBU.js → DialogContent-6JtTB5x2.js} +11 -8
  9. package/dist/DialogFooter-9phqcRIS.js +80 -0
  10. package/dist/DialogScrollContent-TTuovQst.js +93 -0
  11. package/dist/{FadingScroll-DwNnvKMs.js → FadingScroll-DLRbH5Xr.js} +1 -1
  12. package/dist/HoverCardContent-Bel1gdLZ.js +88 -0
  13. package/dist/{HoverPopover-Dpzwvc4t.js → HoverPopover-BcIxvyqZ.js} +2 -2
  14. package/dist/{IconChip-BDw1j5mu.js → IconChip-DhbdGdFQ.js} +2 -1
  15. package/dist/{IconTooltip-DSjasZIt.js → IconTooltip-B0zimd2H.js} +1 -1
  16. package/dist/Input-Cg9DF62r.js +57 -0
  17. package/dist/{MetricBadge-BpC0R_Ec.js → MetricBadge-RHdBP72w.js} +1 -1
  18. package/dist/Notification-CphK7AAm.js +43 -0
  19. package/dist/NumberFieldContent-D8cXeyO4.js +140 -0
  20. package/dist/PagerDots-Cjx96la-.js +98 -0
  21. package/dist/{PopoverContent-BTorlp--.js → PopoverContent-DL7E6vJP.js} +4 -4
  22. package/dist/{Progress-hAT4gqGH.js → Progress-CnqB7gLm.js} +4 -4
  23. package/dist/{ScrollingText-CUVFTWk2.js → ScrollingText-CTZbA_cG.js} +2 -2
  24. package/dist/{SelectScrollDownButton-C1jb3b3K.js → SelectScrollDownButton-DAKCBEdW.js} +65 -61
  25. package/dist/{SelectSeparator-DK2y1Bun.js → SelectSeparator-C2UGOkXF.js} +1 -1
  26. package/dist/Separator-DQcwC2TR.js +44 -0
  27. package/dist/Switch-B8RscmRu.js +49 -0
  28. package/dist/Toaster-D9qIHjBI.js +274 -0
  29. package/dist/ToggleGroupItem-BLtr3TJq.js +170 -0
  30. package/dist/TooltipProvider-BJ_Y5EGX.js +109 -0
  31. package/dist/animated-digit.js +2 -2
  32. package/dist/api/index.d.ts +21 -33
  33. package/dist/api/types-extra.d.ts +37 -0
  34. package/dist/api.js +1 -1
  35. package/dist/aurora.js +1231 -260
  36. package/dist/badge.js +1 -1
  37. package/dist/border-progress.d.ts +1 -0
  38. package/dist/border-progress.js +98 -0
  39. package/dist/button-5dY1Dvhd.js +125 -0
  40. package/dist/button.js +1 -1
  41. package/dist/canvas.js +2 -3
  42. package/dist/card.js +2 -2
  43. package/dist/carousel.js +93 -110
  44. package/dist/collapsible.js +1 -1
  45. package/dist/color-Cs0-oxYL.js +116 -0
  46. package/dist/color.js +2 -2
  47. package/dist/command.js +1 -1
  48. package/dist/compile-nZ1xVYTp.js +19 -0
  49. package/dist/completion-seal.d.ts +1 -0
  50. package/dist/completion-seal.js +89 -0
  51. package/dist/components/custom/aurora/Aurora.vue.d.ts +10 -5
  52. package/dist/components/custom/aurora/composables/atoms-fields.d.ts +39 -0
  53. package/dist/components/custom/aurora/composables/auroraFallbackGround.d.ts +108 -0
  54. package/dist/components/custom/aurora/composables/color.d.ts +13 -0
  55. package/dist/components/custom/aurora/composables/frameLoop.d.ts +9 -0
  56. package/dist/components/custom/aurora/composables/runtime.d.ts +31 -0
  57. package/dist/components/custom/aurora/composables/uniformBridge.d.ts +5 -1
  58. package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +60 -0
  59. package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +37 -0
  60. package/dist/components/custom/aurora/constants/budget.d.ts +21 -0
  61. package/dist/components/custom/aurora/constants/presets.d.ts +20 -2
  62. package/dist/components/custom/aurora/constants/renderMode.d.ts +77 -18
  63. package/dist/components/custom/aurora/constants/shaders/aurora-mediums.wgsl.d.ts +1 -0
  64. package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -0
  65. package/dist/components/custom/aurora/constants/shaders/oil-modes.glsl.d.ts +1 -0
  66. package/dist/components/custom/aurora/constants/shaders/procedural-color.wgsl.d.ts +4 -0
  67. package/dist/components/custom/aurora/index.d.ts +2 -1
  68. package/dist/components/custom/border-progress/BorderProgress.vue.d.ts +46 -0
  69. package/dist/components/custom/border-progress/composables/spectrum-walk.d.ts +25 -0
  70. package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +18 -0
  71. package/dist/components/custom/border-progress/constants.d.ts +59 -0
  72. package/dist/components/custom/border-progress/index.d.ts +4 -0
  73. package/dist/components/custom/completion-seal/CompletionSeal.vue.d.ts +21 -0
  74. package/dist/components/custom/completion-seal/composables/useCompletionSeal.d.ts +37 -0
  75. package/dist/components/custom/completion-seal/constants.d.ts +46 -0
  76. package/dist/components/custom/completion-seal/index.d.ts +4 -0
  77. package/dist/components/custom/concentric/Concentric.vue.d.ts +39 -0
  78. package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +18 -0
  79. package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +22 -0
  80. package/dist/components/custom/concentric/composables/ringField.d.ts +85 -0
  81. package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +14 -0
  82. package/dist/components/custom/concentric/composables/useConcentric.d.ts +35 -0
  83. package/dist/components/custom/concentric/constants.d.ts +67 -0
  84. package/dist/components/custom/concentric/index.d.ts +5 -0
  85. package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +4 -0
  86. package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -0
  87. package/dist/components/custom/confirm-dialog/ConfirmDialog.vue.d.ts +3 -3
  88. package/dist/components/custom/constellation/Constellation.vue.d.ts +5 -4
  89. package/dist/components/custom/constellation/composables/constellationGLSetup.d.ts +10 -0
  90. package/dist/components/custom/constellation/composables/constellationWGPUSetup.d.ts +19 -0
  91. package/dist/components/custom/constellation/composables/uniformBridgeWGPU.d.ts +66 -0
  92. package/dist/components/custom/constellation/composables/useConstellation.d.ts +3 -10
  93. package/dist/components/custom/constellation/constants.d.ts +33 -0
  94. package/dist/components/custom/constellation/constellationField.d.ts +31 -1
  95. package/dist/components/custom/constellation/constellationInteraction.d.ts +23 -14
  96. package/dist/components/custom/constellation/constellationRender.d.ts +25 -0
  97. package/dist/components/custom/constellation/constellationTypes.d.ts +38 -0
  98. package/dist/components/custom/constellation/constellationWell.d.ts +15 -0
  99. package/dist/components/custom/constellation/index.d.ts +5 -5
  100. package/dist/components/custom/constellation/shaders/constellation-lines.glsl.d.ts +2 -0
  101. package/dist/components/custom/constellation/shaders/constellation-lines.wgsl.d.ts +1 -0
  102. package/dist/components/custom/constellation/shaders/constellation-points.glsl.d.ts +2 -0
  103. package/dist/components/custom/constellation/shaders/constellation-points.wgsl.d.ts +1 -0
  104. package/dist/components/custom/deck/DeckPager.vue.d.ts +29 -0
  105. package/dist/components/custom/deck/composables/useDeck.d.ts +27 -0
  106. package/dist/components/custom/deck/composables/useDeckKeyboard.d.ts +25 -0
  107. package/dist/components/custom/deck/composables/useDeckSpring.d.ts +22 -0
  108. package/dist/components/custom/deck/constants.d.ts +14 -0
  109. package/dist/components/custom/deck/index.d.ts +8 -0
  110. package/dist/components/custom/dock/DockIconButton.vue.d.ts +25 -4
  111. package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +10 -2
  112. package/dist/components/custom/dock/DockStack.vue.d.ts +65 -0
  113. package/dist/components/custom/dock/GlassDock.vue.d.ts +4 -2
  114. package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +155 -0
  115. package/dist/components/custom/dock/composables/index.d.ts +2 -0
  116. package/dist/components/custom/dock/composables/useDockSearch.d.ts +85 -0
  117. package/dist/components/custom/dock/composables/useDockShellProps.d.ts +11 -0
  118. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +13 -0
  119. package/dist/components/custom/dock/constants.d.ts +18 -14
  120. package/dist/components/custom/dock/index.d.ts +5 -2
  121. package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +42 -0
  122. package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +83 -0
  123. package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +39 -0
  124. package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +35 -0
  125. package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +31 -0
  126. package/dist/components/custom/dot-flow-field/constants.d.ts +69 -0
  127. package/dist/components/custom/dot-flow-field/index.d.ts +5 -0
  128. package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -0
  129. package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +4 -0
  130. package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +1 -0
  131. package/dist/components/custom/dot-matrix/DotMatrix.vue.d.ts +43 -0
  132. package/dist/components/custom/dot-matrix/composables/dotMatrixField.d.ts +89 -0
  133. package/dist/components/custom/dot-matrix/composables/uniformBridgeWGPU.d.ts +52 -0
  134. package/dist/components/custom/dot-matrix/composables/useDotMatrix.d.ts +34 -0
  135. package/dist/components/custom/dot-matrix/composables/useDotSphere.d.ts +27 -0
  136. package/dist/components/custom/dot-matrix/constants.d.ts +58 -0
  137. package/dist/components/custom/dot-matrix/index.d.ts +5 -0
  138. package/dist/components/custom/dot-matrix/shaders/dot-matrix.glsl.d.ts +4 -0
  139. package/dist/components/custom/dot-matrix/shaders/dot-matrix.wgsl.d.ts +1 -0
  140. package/dist/components/custom/easing/EasingConfigurator.vue.d.ts +33 -0
  141. package/dist/components/custom/easing/EasingPicker.vue.d.ts +49 -0
  142. package/dist/components/custom/easing/composables/useEasingPicker.d.ts +80 -0
  143. package/dist/components/custom/easing/constants.d.ts +28 -0
  144. package/dist/components/custom/easing/index.d.ts +3 -0
  145. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +11 -0
  146. package/dist/components/custom/fourier-field/FourierField.vue.d.ts +43 -40
  147. package/dist/components/custom/fourier-field/composables/fourierFieldGLSetup.d.ts +15 -0
  148. package/dist/components/custom/fourier-field/composables/fourierFieldWGPUSetup.d.ts +20 -0
  149. package/dist/components/custom/fourier-field/composables/uniformBridgeWGPU.d.ts +41 -0
  150. package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +42 -0
  151. package/dist/components/custom/fourier-field/constants.d.ts +64 -0
  152. package/dist/components/custom/fourier-field/index.d.ts +23 -18
  153. package/dist/components/custom/fourier-field/shaders/fourier-field.compute.wgsl.d.ts +1 -0
  154. package/dist/components/custom/fourier-field/shaders/fourier-field.glsl.d.ts +4 -0
  155. package/dist/components/custom/fourier-field/shaders/fourier-field.render.wgsl.d.ts +1 -0
  156. package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +1 -1
  157. package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +13 -3
  158. package/dist/components/custom/goo-blob/composables/uniformBridgeWGPU.d.ts +24 -0
  159. package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +18 -11
  160. package/dist/components/custom/goo-blob/composables/wgpuSetup.d.ts +23 -0
  161. package/dist/components/custom/goo-blob/constants.d.ts +1 -1
  162. package/dist/components/custom/goo-blob/index.d.ts +1 -1
  163. package/dist/components/custom/goo-blob/shaders/metaball-noise.wgsl.d.ts +1 -0
  164. package/dist/components/custom/goo-blob/shaders/metaball-palette.wgsl.d.ts +1 -0
  165. package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -1
  166. package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -0
  167. package/dist/components/custom/goo-blob/types.d.ts +36 -0
  168. package/dist/components/custom/goo-dot-matrix/GooDotMatrix.vue.d.ts +49 -0
  169. package/dist/components/custom/goo-dot-matrix/composables/gooDotLattice.d.ts +24 -0
  170. package/dist/components/custom/goo-dot-matrix/composables/gooDotSetup.d.ts +50 -0
  171. package/dist/components/custom/goo-dot-matrix/composables/uniformBridgeWGPU.d.ts +35 -0
  172. package/dist/components/custom/goo-dot-matrix/composables/useGooDotMatrix.d.ts +31 -0
  173. package/dist/components/custom/goo-dot-matrix/constants.d.ts +76 -0
  174. package/dist/components/custom/goo-dot-matrix/index.d.ts +5 -0
  175. package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.frag.d.ts +11 -0
  176. package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.wgsl.d.ts +3 -0
  177. package/dist/components/custom/handmark/HandMark.vue.d.ts +1 -1
  178. package/dist/components/custom/icon-chip/types.d.ts +11 -1
  179. package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +3 -1
  180. package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +21 -2
  181. package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +15 -0
  182. package/dist/components/custom/metric-stack/MetricStack.vue.d.ts +1 -1
  183. package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +9 -0
  184. package/dist/components/custom/pager-dots/index.d.ts +2 -0
  185. package/dist/components/custom/pager-dots/pagerWindow.d.ts +9 -0
  186. package/dist/components/custom/paper-grid/PaperGrid.vue.d.ts +42 -0
  187. package/dist/components/custom/paper-grid/composables/paperGrid.d.ts +90 -0
  188. package/dist/components/custom/paper-grid/composables/paperGridGLSetup.d.ts +16 -0
  189. package/dist/components/custom/paper-grid/composables/paperGridWGPUSetup.d.ts +19 -0
  190. package/dist/components/custom/paper-grid/composables/uniformBridgeWGPU.d.ts +16 -0
  191. package/dist/components/custom/paper-grid/composables/usePaperGrid.d.ts +31 -0
  192. package/dist/components/custom/paper-grid/constants.d.ts +57 -0
  193. package/dist/components/custom/paper-grid/index.d.ts +5 -0
  194. package/dist/components/custom/paper-grid/shaders/paper-grid.glsl.d.ts +4 -0
  195. package/dist/components/custom/paper-grid/shaders/paper-grid.wgsl.d.ts +1 -0
  196. package/dist/components/custom/search/FuzzySearch.vue.d.ts +8 -2
  197. package/dist/components/custom/search/SearchBar.vue.d.ts +8 -0
  198. package/dist/components/custom/search/index.d.ts +2 -0
  199. package/dist/components/custom/search/searchVariants.d.ts +19 -0
  200. package/dist/components/custom/selectable-chip/SelectableChip.vue.d.ts +50 -0
  201. package/dist/components/custom/selectable-chip/index.d.ts +2 -0
  202. package/dist/components/custom/selectable-chip/selectableChipVariants.d.ts +23 -0
  203. package/dist/components/custom/spa-view/SpaView.vue.d.ts +50 -0
  204. package/dist/components/custom/spa-view/index.d.ts +2 -0
  205. package/dist/components/custom/split-chars/SplitChars.vue.d.ts +39 -0
  206. package/dist/components/custom/split-chars/index.d.ts +1 -0
  207. package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +12 -0
  208. package/dist/components/custom/tabs/composables/useTabDragMorph.d.ts +42 -0
  209. package/dist/components/custom/tabs/constants.d.ts +20 -2
  210. package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +30 -17
  211. package/dist/components/custom/watercolor-dot/useWatercolorBlob.d.ts +10 -5
  212. package/dist/components/ui/_shared/index.d.ts +2 -0
  213. package/dist/components/ui/_shared/menuItemVariants.d.ts +1 -1
  214. package/dist/components/ui/_shared/useControlSize.d.ts +46 -0
  215. package/dist/components/ui/badge/index.d.ts +1 -1
  216. package/dist/components/ui/button/Button.vue.d.ts +5 -2
  217. package/dist/components/ui/button/index.d.ts +2 -2
  218. package/dist/components/ui/card/Card.vue.d.ts +79 -4
  219. package/dist/components/ui/card/CardHeader.vue.d.ts +42 -16
  220. package/dist/components/ui/card/ScrollCard.vue.d.ts +33 -0
  221. package/dist/components/ui/card/ScrollCardHeader.vue.d.ts +17 -0
  222. package/dist/components/ui/card/index.d.ts +3 -1
  223. package/dist/components/ui/carousel/CarouselNext.vue.d.ts +2 -2
  224. package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +2 -2
  225. package/dist/components/ui/carousel/GlassCarouselPager.vue.d.ts +2 -2
  226. package/dist/components/ui/command/Command.vue.d.ts +1 -1
  227. package/dist/components/ui/command/CommandDialog.vue.d.ts +9 -3
  228. package/dist/components/ui/command/CommandList.vue.d.ts +3 -0
  229. package/dist/components/ui/context-menu/ContextMenuContent.vue.d.ts +5 -1
  230. package/dist/components/ui/drawer/Drawer.vue.d.ts +46 -33
  231. package/dist/components/ui/drawer/DrawerContent.vue.d.ts +7 -8
  232. package/dist/components/ui/drawer/DrawerDescription.vue.d.ts +2 -2
  233. package/dist/components/ui/drawer/DrawerOverlay.vue.d.ts +1 -1
  234. package/dist/components/ui/drawer/DrawerTitle.vue.d.ts +2 -2
  235. package/dist/components/ui/drawer/composables/drawerSnapContext.d.ts +26 -0
  236. package/dist/components/ui/drawer/composables/useDrawerSnap.d.ts +17 -0
  237. package/dist/components/ui/drawer/constants.d.ts +45 -0
  238. package/dist/components/ui/drawer/index.d.ts +23 -15
  239. package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +4 -0
  240. package/dist/components/ui/focus-scope/FocusScope.vue.d.ts +20 -0
  241. package/dist/components/ui/focus-scope/index.d.ts +2 -0
  242. package/dist/components/ui/hover-card/HoverCardContent.vue.d.ts +3 -0
  243. package/dist/components/ui/index.d.ts +1 -0
  244. package/dist/components/ui/input/Input.vue.d.ts +3 -0
  245. package/dist/components/ui/number-field/NumberFieldInput.vue.d.ts +6 -1
  246. package/dist/components/ui/progress/ProgressDefault.vue.d.ts +3 -2
  247. package/dist/components/ui/select/SelectContent.vue.d.ts +4 -1
  248. package/dist/components/ui/sheet/index.d.ts +1 -1
  249. package/dist/components/ui/switch/Switch.vue.d.ts +2 -0
  250. package/dist/components/ui/tags-input/TagsInput.vue.d.ts +2 -2
  251. package/dist/components/ui/textarea/Textarea.vue.d.ts +3 -0
  252. package/dist/components/ui/toast/Toast.vue.d.ts +5 -2
  253. package/dist/components/ui/toast/use-toast.d.ts +14 -0
  254. package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
  255. package/dist/components/ui/tooltip/TooltipContent.vue.d.ts +3 -0
  256. package/dist/composables/color/index.d.ts +2 -0
  257. package/dist/composables/color/useAccentTone.d.ts +34 -0
  258. package/dist/composables/glass/canvas2d/useCanvas2D.d.ts +13 -6
  259. package/dist/composables/glass/index.d.ts +5 -2
  260. package/dist/composables/glass/useSpecularPointer.d.ts +33 -0
  261. package/dist/composables/glass/useSpecularTracking.d.ts +20 -0
  262. package/dist/composables/glass/useVizChoreography.d.ts +123 -0
  263. package/dist/composables/glass/vSpecular.d.ts +2 -0
  264. package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +10 -0
  265. package/dist/composables/glass/webgl/shaders/flow.glsl.d.ts +1 -0
  266. package/dist/composables/glass/webgl/shaders/flow.wgsl.d.ts +1 -0
  267. package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +16 -0
  268. package/dist/composables/glass/webgpu/index.d.ts +2 -0
  269. package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +75 -0
  270. package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +85 -0
  271. package/dist/composables/glass/webgpu/webgpuDevice.d.ts +42 -0
  272. package/dist/composables/motion/core/index.d.ts +4 -0
  273. package/dist/composables/motion/index.d.ts +4 -0
  274. package/dist/composables/motion/scrollReader.d.ts +25 -0
  275. package/dist/composables/motion/springPresets.d.ts +20 -1
  276. package/dist/composables/motion/useCharStagger.d.ts +44 -0
  277. package/dist/composables/motion/useDockCtaReceive.d.ts +84 -0
  278. package/dist/composables/motion/useDragMorph.d.ts +77 -0
  279. package/dist/composables/motion/useLiquidFlex.d.ts +11 -0
  280. package/dist/composables/motion/useLiquidPress.d.ts +71 -0
  281. package/dist/composables/motion/useLiquidReveal.d.ts +51 -0
  282. package/dist/composables/motion/useNumericTransition.d.ts +3 -3
  283. package/dist/composables/motion/usePointerVelocityField.d.ts +98 -0
  284. package/dist/composables/motion/useScrollChrome.d.ts +58 -0
  285. package/dist/composables/motion/useScrollTrigger.d.ts +67 -0
  286. package/dist/composables/motion/useSpringPress.d.ts +5 -5
  287. package/dist/composables/motion/useStaggerReveal.d.ts +24 -0
  288. package/dist/composables/sidebar/index.d.ts +4 -1
  289. package/dist/composables/sidebar/types.d.ts +68 -3
  290. package/dist/composables/sidebar/useClickDelegate.d.ts +4 -0
  291. package/dist/composables/sidebar/useLazyLoader.d.ts +5 -0
  292. package/dist/composables/sidebar/useScrollTo.d.ts +5 -0
  293. package/dist/composables/virtual/index.d.ts +4 -0
  294. package/dist/composables/virtual/useVirtualSectionWindow.d.ts +72 -0
  295. package/dist/composables/virtual/useWindowedStore.d.ts +43 -0
  296. package/dist/composables/virtual/virtualSectionLayout.d.ts +103 -0
  297. package/dist/concentric.d.ts +1 -0
  298. package/dist/concentric.js +836 -0
  299. package/dist/configurator.js +3 -2
  300. package/dist/confirm-dialog.js +62 -49
  301. package/dist/constellation.js +635 -235
  302. package/dist/context-menu.js +3 -3
  303. package/dist/controls.js +2 -2
  304. package/dist/createCanvasLifecycle-Gh45Ce-p.js +93 -0
  305. package/dist/dark.js +1 -1
  306. package/dist/data-table.js +1 -1
  307. package/dist/deck.d.ts +1 -0
  308. package/dist/deck.js +105 -0
  309. package/dist/dialog.js +4 -3
  310. package/dist/dock.js +819 -568
  311. package/dist/{dockContext-Bu1Avy-a.js → dockContext-BNfyPLe9.js} +1 -1
  312. package/dist/dom.js +5 -5
  313. package/dist/dot-flow-field.d.ts +1 -0
  314. package/dist/dot-flow-field.js +894 -0
  315. package/dist/dot-matrix.d.ts +1 -0
  316. package/dist/dot-matrix.js +630 -0
  317. package/dist/dotMatrixField-D_x9_1qq.js +48 -0
  318. package/dist/drawer.d.ts +1 -0
  319. package/dist/drawer.js +380 -0
  320. package/dist/{dropdown-menu-BJ7E9js_.js → dropdown-menu-aJmV5SqE.js} +82 -79
  321. package/dist/dropdown-menu.js +1 -1
  322. package/dist/easing.d.ts +1 -0
  323. package/dist/easing.js +475 -0
  324. package/dist/expandable-container.js +46 -21
  325. package/dist/fading-scroll.js +1 -1
  326. package/dist/flow.glsl-B2P7e0MT.js +4 -0
  327. package/dist/focus-scope.d.ts +1 -0
  328. package/dist/focus-scope.js +23 -0
  329. package/dist/forms.js +65 -63
  330. package/dist/fourier-field.js +831 -172
  331. package/dist/fourier-math.js +1 -1
  332. package/dist/glass-panel.js +2 -2
  333. package/dist/glass-ui.css +1 -1
  334. package/dist/glass-ui.js +187 -338
  335. package/dist/goo-blob.js +241 -692
  336. package/dist/goo-dot-matrix.d.ts +1 -0
  337. package/dist/goo-dot-matrix.js +591 -0
  338. package/dist/handmark.js +2 -2
  339. package/dist/header-ribbon.js +1 -1
  340. package/dist/hover-card.js +1 -1
  341. package/dist/hover-popover.js +1 -1
  342. package/dist/icon-chip.js +1 -1
  343. package/dist/icon-tooltip.js +1 -1
  344. package/dist/index.d.ts +3 -1
  345. package/dist/instrument-chassis.js +1 -1
  346. package/dist/keyboard.js +1 -1
  347. package/dist/label.js +1 -1
  348. package/dist/labeled-field.js +70 -60
  349. package/dist/metric-badge.js +1 -1
  350. package/dist/metric-cell.js +1 -1
  351. package/dist/metric-stack.js +14 -9
  352. package/dist/motion-core.js +58 -36
  353. package/dist/motion-curves.js +11 -1
  354. package/dist/motion.js +90 -53
  355. package/dist/notification.js +1 -1
  356. package/dist/number-field.js +1 -1
  357. package/dist/pager-dots.js +2 -91
  358. package/dist/paper-backdrop.js +1 -1
  359. package/dist/paper-grid.d.ts +1 -0
  360. package/dist/paper-grid.js +788 -0
  361. package/dist/popover.js +1 -1
  362. package/dist/{presets-BW2b-fr1.js → presets-CvOUqtdY.js} +3 -3
  363. package/dist/{compile-EXXzEr1q.js → procedural-color.wgsl-m7Zgv35j.js} +2 -156
  364. package/dist/progress.js +1 -1
  365. package/dist/pulse.js +2 -2
  366. package/dist/reactive.js +1 -1
  367. package/dist/resolveCanvasColor-yPyIpJt9.js +93 -0
  368. package/dist/scrollReader-DI1NWxUw.js +42 -0
  369. package/dist/scrolling-text.js +1 -1
  370. package/dist/search.js +162 -308
  371. package/dist/select.js +3 -3
  372. package/dist/selectable-chip.d.ts +1 -0
  373. package/dist/selectable-chip.js +65 -0
  374. package/dist/separator.js +1 -1
  375. package/dist/{sheet-CquRYOAw.js → sheet-B2flBfLH.js} +5 -5
  376. package/dist/sheet.js +1 -1
  377. package/dist/sidebar.js +216 -114
  378. package/dist/{slider-DQ95MET2.js → slider-2A0rPn79.js} +3 -3
  379. package/dist/slider.js +1 -1
  380. package/dist/sortable-list.js +2 -2
  381. package/dist/spa-view.d.ts +1 -0
  382. package/dist/spa-view.js +46 -0
  383. package/dist/spectrum-walk-BVzA7Biz.js +33 -0
  384. package/dist/{springPresets-WXaLbu8u.js → springPresets-Ce7OYCm9.js} +12 -6
  385. package/dist/styles/animations.css +46 -12
  386. package/dist/styles/border-progress.css +109 -0
  387. package/dist/styles/cards.css +145 -0
  388. package/dist/styles/completion-seal.css +131 -0
  389. package/dist/styles/components.css +2 -3
  390. package/dist/styles/configurator.css +55 -0
  391. package/dist/styles/critical-partition.mjs +162 -0
  392. package/dist/styles/critical.css +12 -0
  393. package/dist/styles/deferred.css +33 -0
  394. package/dist/styles/dock/cta-seat.css +87 -0
  395. package/dist/styles/dock/density.css +198 -0
  396. package/dist/styles/dock/layers.css +101 -29
  397. package/dist/styles/dock/morph-bridge.css +54 -18
  398. package/dist/styles/dock/morph.css +132 -7
  399. package/dist/styles/dock/overflow.css +28 -2
  400. package/dist/styles/dock/search.css +68 -0
  401. package/dist/styles/dock/shape.css +124 -0
  402. package/dist/styles/dock/shell.css +77 -21
  403. package/dist/styles/dock/stack-rail.css +264 -0
  404. package/dist/styles/dock-controls/dark-mode-toggle.css +17 -4
  405. package/dist/styles/dock-controls/icon-button.css +14 -0
  406. package/dist/styles/dock.css +43 -1
  407. package/dist/styles/drawer.css +81 -35
  408. package/dist/styles/glass/accent-tone.css +66 -0
  409. package/dist/styles/glass/control-surfaces.css +167 -0
  410. package/dist/styles/glass/deep.css +44 -0
  411. package/dist/styles/glass/ladder.css +147 -41
  412. package/dist/styles/glass/material.css +78 -15
  413. package/dist/styles/glass/reveal.css +136 -0
  414. package/dist/styles/glass/rim.css +110 -0
  415. package/dist/styles/glass/surfaces.css +148 -129
  416. package/dist/styles/glass-refract.css +96 -44
  417. package/dist/styles/glass-specular-track.css +7 -0
  418. package/dist/styles/glass.css +13 -0
  419. package/dist/styles/hover-popover.css +7 -6
  420. package/dist/styles/icon-chip.css +77 -15
  421. package/dist/styles/index.css +36 -9
  422. package/dist/styles/instrument-chassis.css +66 -3
  423. package/dist/styles/scroll-choreography.css +300 -0
  424. package/dist/styles/scroll-chrome.css +123 -0
  425. package/dist/styles/scroll-driven.css +38 -0
  426. package/dist/styles/segmented-tabs.css +81 -14
  427. package/dist/styles/theme/bridges.css +33 -0
  428. package/dist/styles/theme/literals.css +11 -2
  429. package/dist/styles/theme/radius.css +24 -2
  430. package/dist/styles/tokens/color-radius.css +13 -3
  431. package/dist/styles/tokens/dark-arm.css +137 -32
  432. package/dist/styles/tokens/glass-deep.css +100 -0
  433. package/dist/styles/tokens/glass-fx.css +376 -0
  434. package/dist/styles/tokens/glass.css +131 -351
  435. package/dist/styles/tokens/light-dark.css +16 -3
  436. package/dist/styles/tokens/offsets.css +143 -0
  437. package/dist/styles/tokens/on-glass-fg.css +39 -0
  438. package/dist/styles/tokens/property-regs.css +260 -0
  439. package/dist/styles/tokens/scale-paper.css +168 -96
  440. package/dist/styles/tokens/scheme-motion.css +114 -38
  441. package/dist/styles/tokens/scroll-tokens.css +123 -0
  442. package/dist/styles/tokens/sizing-config.css +110 -0
  443. package/{src/styles/tokens/offsets-sizing.css → dist/styles/tokens/sizing.css} +92 -204
  444. package/dist/styles/tokens.css +14 -3
  445. package/dist/styles/typography/semantic.css +26 -13
  446. package/dist/styles/typography/utilities.css +22 -7
  447. package/dist/styles/utilities/a11y-overrides.css +20 -5
  448. package/dist/styles/utilities/animate.css +27 -24
  449. package/dist/styles/utilities/base-misc.css +307 -0
  450. package/dist/styles/utilities/base.css +47 -261
  451. package/dist/styles/utilities/btn.css +17 -4
  452. package/dist/styles/utilities/components.css +31 -6
  453. package/dist/styles/utilities/metal.css +215 -0
  454. package/dist/styles/utilities.css +14 -7
  455. package/dist/switch.js +1 -1
  456. package/dist/tabs.js +220 -107
  457. package/dist/timeline.js +2 -2
  458. package/dist/toast.js +1 -1
  459. package/dist/toggle-chip.js +10 -10
  460. package/dist/toggle-group.js +1 -1
  461. package/dist/tooltip.js +1 -1
  462. package/dist/typewriter.js +2 -2
  463. package/dist/uniformBridgeWGPU-CtAKl45L.js +1204 -0
  464. package/dist/{useAnimatedNumber-C_3wZLx4.js → useAnimatedNumber-CLrxicG9.js} +1 -1
  465. package/dist/useConfiguratorState-4xblKfwd.js +162 -0
  466. package/dist/useControlSize-SH1UmJCi.js +9 -0
  467. package/dist/useDockCtaReceive-DfFkmgL1.js +82 -0
  468. package/dist/useDragMorph-BUgAC-zK.js +102 -0
  469. package/dist/useFuzzySearch-DIhcYtcw.js +177 -0
  470. package/dist/useGpuSubstrate-4pTcp6mX.js +294 -0
  471. package/dist/useLiquidPress-BooG97RY.js +39 -0
  472. package/dist/usePointerVelocityField-QLsy3_kv.js +91 -0
  473. package/dist/useScrollChrome-D66AVP7C.js +258 -0
  474. package/dist/useSpring-C0jyvEJB.js +40 -0
  475. package/dist/useSpringMount-BWDnKIwh.js +71 -0
  476. package/dist/useSpringPress-B1-Czp-V.js +36 -0
  477. package/dist/{useTouchGate-28Tk2-t2.js → useTouchGate-CBZTD4SD.js} +1 -1
  478. package/dist/useViewTransition-CUI1nAgn.js +95 -0
  479. package/dist/vSpecular-EX7loENl.js +68 -0
  480. package/dist/vendor-B2qOlYY3.js +239 -0
  481. package/dist/virtual.d.ts +1 -0
  482. package/dist/virtual.js +225 -0
  483. package/dist/watercolor-dot.js +117 -74
  484. package/package.json +252 -28
  485. package/src/styles/animations.css +46 -12
  486. package/src/styles/border-progress.css +109 -0
  487. package/src/styles/cards.css +145 -0
  488. package/src/styles/completion-seal.css +131 -0
  489. package/src/styles/configurator.css +55 -0
  490. package/src/styles/critical-partition.mjs +162 -0
  491. package/src/styles/dock/cta-seat.css +87 -0
  492. package/src/styles/dock/density.css +198 -0
  493. package/src/styles/dock/layers.css +101 -29
  494. package/src/styles/dock/morph-bridge.css +54 -18
  495. package/src/styles/dock/morph.css +132 -7
  496. package/src/styles/dock/overflow.css +28 -2
  497. package/src/styles/dock/search.css +68 -0
  498. package/src/styles/dock/shape.css +124 -0
  499. package/src/styles/dock/shell.css +77 -21
  500. package/src/styles/dock/stack-rail.css +264 -0
  501. package/src/styles/dock-controls/dark-mode-toggle.css +17 -4
  502. package/src/styles/dock-controls/icon-button.css +14 -0
  503. package/src/styles/dock.css +43 -1
  504. package/src/styles/drawer.css +81 -35
  505. package/src/styles/glass/accent-tone.css +66 -0
  506. package/src/styles/glass/control-surfaces.css +167 -0
  507. package/src/styles/glass/deep.css +44 -0
  508. package/src/styles/glass/ladder.css +147 -41
  509. package/src/styles/glass/material.css +78 -15
  510. package/src/styles/glass/reveal.css +136 -0
  511. package/src/styles/glass/rim.css +110 -0
  512. package/src/styles/glass/surfaces.css +148 -129
  513. package/src/styles/glass-refract.css +96 -44
  514. package/src/styles/glass-specular-track.css +7 -0
  515. package/src/styles/glass.css +13 -0
  516. package/src/styles/hover-popover.css +7 -6
  517. package/src/styles/icon-chip.css +77 -15
  518. package/src/styles/index.css +27 -0
  519. package/src/styles/instrument-chassis.css +66 -3
  520. package/src/styles/scroll-choreography.css +300 -0
  521. package/src/styles/scroll-chrome.css +123 -0
  522. package/src/styles/scroll-driven.css +38 -0
  523. package/src/styles/segmented-tabs.css +81 -14
  524. package/src/styles/theme/bridges.css +33 -0
  525. package/src/styles/theme/literals.css +11 -2
  526. package/src/styles/theme/radius.css +24 -2
  527. package/src/styles/tokens/color-radius.css +13 -3
  528. package/src/styles/tokens/dark-arm.css +137 -32
  529. package/src/styles/tokens/glass-deep.css +100 -0
  530. package/src/styles/tokens/glass-fx.css +376 -0
  531. package/src/styles/tokens/glass.css +131 -351
  532. package/src/styles/tokens/light-dark.css +16 -3
  533. package/src/styles/tokens/offsets.css +143 -0
  534. package/src/styles/tokens/on-glass-fg.css +39 -0
  535. package/src/styles/tokens/property-regs.css +260 -0
  536. package/src/styles/tokens/scale-paper.css +168 -96
  537. package/src/styles/tokens/scheme-motion.css +114 -38
  538. package/src/styles/tokens/scroll-tokens.css +123 -0
  539. package/src/styles/tokens/sizing-config.css +110 -0
  540. package/{dist/styles/tokens/offsets-sizing.css → src/styles/tokens/sizing.css} +92 -204
  541. package/src/styles/tokens.css +14 -3
  542. package/src/styles/typography/semantic.css +26 -13
  543. package/src/styles/typography/utilities.css +22 -7
  544. package/src/styles/utilities/a11y-overrides.css +20 -5
  545. package/src/styles/utilities/animate.css +27 -24
  546. package/src/styles/utilities/base-misc.css +307 -0
  547. package/src/styles/utilities/base.css +47 -261
  548. package/src/styles/utilities/btn.css +17 -4
  549. package/src/styles/utilities/components.css +31 -6
  550. package/src/styles/utilities/metal.css +215 -0
  551. package/src/styles/utilities.css +14 -7
  552. package/dist/CardAction-XH4YBVEK.js +0 -158
  553. package/dist/ContextMenuContent-ON3x7cuk.js +0 -85
  554. package/dist/DialogFooter-8eZbdmPc.js +0 -165
  555. package/dist/HoverCardContent-DkMaQzH5.js +0 -83
  556. package/dist/Input-DVG_J0ne.js +0 -55
  557. package/dist/Notification-DKjKsQq8.js +0 -100
  558. package/dist/NumberFieldContent-1VtwDSgf.js +0 -145
  559. package/dist/Separator-BArl4OaB.js +0 -37
  560. package/dist/Switch-Dr--uLGH.js +0 -47
  561. package/dist/Toaster-Bm_HQSpc.js +0 -263
  562. package/dist/ToggleGroupItem-Dzk9hWsF.js +0 -157
  563. package/dist/TooltipProvider-B3MkB_8P.js +0 -104
  564. package/dist/button-BNDWhAZb.js +0 -81
  565. package/dist/check-njhk-vfu.js +0 -7
  566. package/dist/chevron-down-DKkxb4VV.js +0 -7
  567. package/dist/chevron-right-CPXbqQQz.js +0 -7
  568. package/dist/chevron-up-n_24SqI-.js +0 -7
  569. package/dist/color-DweYl7pE.js +0 -86
  570. package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +0 -35
  571. package/dist/components/custom/constellation/constellationDraw.d.ts +0 -30
  572. package/dist/components/custom/dock/DockRail.vue.d.ts +0 -89
  573. package/dist/createLucideIcon-DydS2qgk.js +0 -43
  574. package/dist/minimize-2-BV31Ob_h.js +0 -38
  575. package/dist/resolveCanvasColor-BBiYfp8g.js +0 -11
  576. package/dist/search-BSGrf2Sk.js +0 -12
  577. package/dist/styles/dock/rail-extend.css +0 -397
  578. package/dist/useCanvas2D-ClrQuZtp.js +0 -96
  579. package/dist/useConfiguratorState-kiIlun8I.js +0 -303
  580. package/dist/useRAFLoop-CdwJ7284.js +0 -109
  581. package/dist/useSpecularTracking-Bo5su68i.js +0 -32
  582. package/dist/useSpringMount-CvopqiFr.js +0 -108
  583. package/dist/useViewTransition-COsPjQVZ.js +0 -47
  584. package/dist/x-BUwTKe50.js +0 -10
  585. package/src/styles/dock/rail-extend.css +0 -397
  586. /package/dist/{CollapsibleContent-C_s6fG7r.js → CollapsibleContent-68dEXIAl.js} +0 -0
  587. /package/dist/{InstrumentChassis-UUJX0-mW.js → InstrumentChassis-CxsHSyMj.js} +0 -0
  588. /package/dist/{Label-Ck9SWEKM.js → Label-C2ejNWeC.js} +0 -0
  589. /package/dist/{ModalOverlay-CkPRRgl_.js → ModalOverlay-D1VrWyoi.js} +0 -0
  590. /package/dist/{PaperBackdrop-nBKe0vkB.js → PaperBackdrop-CqwjnfLv.js} +0 -0
  591. /package/dist/{SelectGroup-Dcczq44n.js → SelectGroup-BFiod7X2.js} +0 -0
  592. /package/dist/{_plugin-vue_export-helper-CBt_VvXa.js → _plugin-vue_export-helper-C1je1s0u.js} +0 -0
  593. /package/dist/{badge-UILT_3pZ.js → badge-D9XWW4GT.js} +0 -0
  594. /package/dist/{constants-BPOqYJAm.js → constants--C2DkLW8.js} +0 -0
  595. /package/dist/{createContext-B2RaZ-b8.js → createContext-CpBNTRMI.js} +0 -0
  596. /package/dist/{math-DeuJwLFx.js → math-Eb0w3LqU.js} +0 -0
  597. /package/dist/{menuItemVariants-DWRQXBxJ.js → menuItemVariants-D8VNHq22.js} +0 -0
  598. /package/dist/{prng-Cg22zv8g.js → prng-B-d9eYX8.js} +0 -0
  599. /package/dist/{useGlobalDark-C28t0VWJ.js → useGlobalDark-CmjB9E32.js} +0 -0
  600. /package/dist/{useIntersectionPause-Bj4sPkMh.js → useIntersectionPause-Dbozzjgm.js} +0 -0
  601. /package/dist/{useKeyboardShortcuts-BXWXOZ-9.js → useKeyboardShortcuts-BPRp33Im.js} +0 -0
  602. /package/dist/{useLiquidFlex-C12hXwOZ.js → useLiquidFlex-UmA6LMZu.js} +0 -0
  603. /package/dist/{useResizeObserver-V6nq5gJb.js → useResizeObserver-Bpoi7tRE.js} +0 -0
  604. /package/dist/{useResolveTokenColor-NUG2zYAW.js → useResolveTokenColor-vAylyR0x.js} +0 -0
  605. /package/dist/{useScrollProgress-D7bYU2RK.js → useScrollProgress-c3yxmH6a.js} +0 -0
  606. /package/dist/{useSurfaceAxis-CMnF2zHb.js → useSurfaceAxis-g0NloYEF.js} +0 -0
  607. /package/dist/{useTimer-B_PAasDL.js → useTimer-BHJOKr35.js} +0 -0
  608. /package/dist/{useUserInvalidAria-CDfJuakL.js → useUserInvalidAria-y5namzeE.js} +0 -0
  609. /package/dist/{useViewportReady-CvBcCYDf.js → useViewportReady-anbac3m6.js} +0 -0
@@ -0,0 +1,116 @@
1
+ import { computed as e, toValue as t } from "vue";
2
+ import { OKLCHColor as n, colorUnit2 as r, gamutMapOKLab as i, interpolateHue as a, isInSRGBGamut as o, oklabToLinearSRGB as s, oklabToRgb255 as c, parseCSSColor as l, rawOklabToOklch as u, rawOklchToOklab as d, safeAccentColor as f, srgbToOKLab as p } from "@mkbabb/value.js";
3
+ //#region src/composables/color/useAccentTone.ts
4
+ var m = "hsl(36 48% 97%)", h = 4.5, g = .18;
5
+ function _(e, t, n) {
6
+ let [r] = d(e.L, e.C, e.h), [i] = d(t.L, t.C, t.h);
7
+ return r * (1 - n) + i * n;
8
+ }
9
+ function v(r, i = {}) {
10
+ let a = e(() => {
11
+ let e = t(r) || "var(--primary)";
12
+ if (/var\(/.test(e)) return "";
13
+ i.fillStrength;
14
+ let a = i.bandStrength ?? g, o = i.inkContrast ?? h, s = i.surface || m, c, l;
15
+ try {
16
+ c = S(e), l = S(s);
17
+ } catch {
18
+ return "";
19
+ }
20
+ let u = _(l, c, a);
21
+ return f(new n(c.L, c.C, c.h), u, o * .1).toString();
22
+ });
23
+ return {
24
+ toneStyle: e(() => {
25
+ let e = { "--tone": t(r) || "var(--primary)" }, n = a.value;
26
+ return n && (e["--accent-ink-resolved"] = n), e;
27
+ }),
28
+ ink: a
29
+ };
30
+ }
31
+ //#endregion
32
+ //#region src/composables/color/index.ts
33
+ function y(e) {
34
+ let [t, n, r] = d(e.L, e.C, e.h), [i, a, o] = s(t, n, r);
35
+ return [
36
+ Math.max(0, i),
37
+ Math.max(0, a),
38
+ Math.max(0, o)
39
+ ];
40
+ }
41
+ function b(e, t, n) {
42
+ if (!Number.isFinite(e) || !Number.isFinite(t) || !Number.isFinite(n)) throw Error(`warmCatchLight: non-finite OKLCh anchor (L=${e}, C=${t}, h=${n})`);
43
+ return y({
44
+ L: e,
45
+ C: t,
46
+ h: n
47
+ });
48
+ }
49
+ function x(e) {
50
+ let [t, n, r] = d(e.L, e.C, e.h), [i, a, o] = c(t, n, r), s = (e) => Math.min(1, Math.max(0, e / 255));
51
+ return [
52
+ s(i),
53
+ s(a),
54
+ s(o)
55
+ ];
56
+ }
57
+ function S(e) {
58
+ let t = r(l(e), "rgb").value, [n, i, a] = p(Number(t.r), Number(t.g), Number(t.b)), [o, s, c] = u(n, i, a);
59
+ return {
60
+ L: o,
61
+ C: s,
62
+ h: c
63
+ };
64
+ }
65
+ function C(e) {
66
+ let [t, n, r] = d(e.L, e.C, e.h), [i, a, o] = c(t, n, r), s = (e) => Math.round(e).toString(16).padStart(2, "0");
67
+ return `#${s(i)}${s(a)}${s(o)}`;
68
+ }
69
+ var w = (e) => x(S(e)), T = {
70
+ complementary: "longer",
71
+ "split-complementary": "longer",
72
+ analogous: "shorter",
73
+ monochrome: "shorter",
74
+ triad: "increasing",
75
+ tetradic: "increasing"
76
+ }, E = (e) => (e % 360 + 360) % 360;
77
+ function D(e, t, n, r) {
78
+ let i = T[t], o = (e, t) => E(a(E(e) / 360, E(t) / 360, r, i) * 360);
79
+ switch (t) {
80
+ case "monochrome": return E(e);
81
+ case "complementary": return o(e, e + 180);
82
+ case "split-complementary": return o(e + 150, e + 210);
83
+ case "triad": return o(e, e + 240);
84
+ case "tetradic": return o(e, e + 270);
85
+ default: return o(e - n, e + n);
86
+ }
87
+ }
88
+ function O(e) {
89
+ let [t, n, r] = d(e.L, e.C, e.h), [a, c, l] = i(t, n, r), [f, p, m] = u(a, c, l), h = p;
90
+ for (let e = 0; e < 6; e++) {
91
+ let [e, t, n] = d(f, h, m), [r, i, a] = s(e, t, n);
92
+ if (o(r, i, a)) break;
93
+ h *= .999;
94
+ }
95
+ return {
96
+ L: f,
97
+ C: h,
98
+ h: m
99
+ };
100
+ }
101
+ function k(e, t = {}) {
102
+ let n = typeof e == "string" ? S(e) : e, { stopCount: r = 3, harmony: i = "analogous", lightnessSpread: a = .18, hueSpread: o = 24, chromaBump: s = .03, chromaCeiling: c } = t, l = Math.max(2, Math.min(4, Math.round(r))), u = [];
103
+ for (let e = 0; e < l; e++) {
104
+ let t = l === 1 ? 0 : e / (l - 1), r = n.L - a / 2 + a * t, d = Math.max(0, n.C + s * Math.sin(Math.PI * t));
105
+ c !== void 0 && (d = Math.min(d, c));
106
+ let f = D(n.h, i, o, t);
107
+ u.push(O({
108
+ L: Math.min(.98, Math.max(.05, r)),
109
+ C: d,
110
+ h: f
111
+ }));
112
+ }
113
+ return u;
114
+ }
115
+ //#endregion
116
+ export { O as a, y as c, D as i, b as l, w as n, C as o, k as r, x as s, S as t, v as u };
package/dist/color.js CHANGED
@@ -1,2 +1,2 @@
1
- import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c } from "./color-DweYl7pE.js";
2
- export { c as cssToOklch, i as defaultBlobColorResolver, o as deriveBlobPalette, n as deriveHue, e as gamutMapStop, a as oklchStopToHex, s as oklchToGammaRgb, t as oklchToLinear, r as warmCatchLight };
1
+ import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c, u as l } from "./color-Cs0-oxYL.js";
2
+ export { c as cssToOklch, i as defaultBlobColorResolver, o as deriveBlobPalette, n as deriveHue, e as gamutMapStop, a as oklchStopToHex, s as oklchToGammaRgb, t as oklchToLinear, l as useAccentTone, r as warmCatchLight };
package/dist/command.js CHANGED
@@ -1,2 +1,2 @@
1
- import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c } from "./CommandShortcut-DdtWXxOK.js";
1
+ import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c } from "./CommandShortcut-D3yxgHNn.js";
2
2
  export { r as Command, t as CommandDialog, s as CommandEmpty, a as CommandGroup, e as CommandInput, n as CommandItem, o as CommandList, i as CommandSeparator, c as CommandShortcut };
@@ -0,0 +1,19 @@
1
+ //#region src/composables/glass/webgl/compile.ts
2
+ function e(e, t, n, r = "[glass-ui:webgl]") {
3
+ let i = e.createShader(t);
4
+ if (e.shaderSource(i, n), e.compileShader(i), !e.getShaderParameter(i, e.COMPILE_STATUS)) {
5
+ let t = e.getShaderInfoLog(i) ?? "unknown";
6
+ throw e.deleteShader(i), Error(`${r} shader compile failed:\n${t}`);
7
+ }
8
+ return i;
9
+ }
10
+ function t(e, t, n, r = "[glass-ui:webgl]") {
11
+ let i = e.createProgram();
12
+ if (e.attachShader(i, t), e.attachShader(i, n), e.linkProgram(i), !e.getProgramParameter(i, e.LINK_STATUS)) {
13
+ let t = e.getProgramInfoLog(i) ?? "unknown";
14
+ throw e.deleteProgram(i), Error(`${r} program link failed:\n${t}`);
15
+ }
16
+ return i;
17
+ }
18
+ //#endregion
19
+ export { t as n, e as t };
@@ -0,0 +1 @@
1
+ export * from "./components/custom/completion-seal";
@@ -0,0 +1,89 @@
1
+ import { t as e } from "./cn-DJXf4yaB.js";
2
+ import { computed as t, createCommentVNode as n, createElementBlock as r, defineComponent as i, normalizeClass as a, onMounted as o, openBlock as s, readonly as c, ref as l, toDisplayString as u, toRef as d, unref as f, watch as p } from "vue";
3
+ //#region src/components/custom/completion-seal/composables/useCompletionSeal.ts
4
+ function m() {
5
+ return typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
6
+ }
7
+ function h(e) {
8
+ if (e != null) return typeof e == "function" ? e() : e.value;
9
+ }
10
+ function g(e = {}) {
11
+ let { play: n, respectReducedMotion: r = !0 } = e, i = l(!1), a = l(!1), s = t(() => r && m());
12
+ function u() {
13
+ if (s.value) {
14
+ i.value = !1, a.value = !0;
15
+ return;
16
+ }
17
+ i.value = !1, typeof requestAnimationFrame == "function" ? requestAnimationFrame(() => {
18
+ i.value = !0, a.value = !0;
19
+ }) : (i.value = !0, a.value = !0);
20
+ }
21
+ return n == null ? o(u) : (o(() => {
22
+ h(n) && u();
23
+ }), p(() => h(n), (e, t) => {
24
+ e && !t && u();
25
+ })), {
26
+ playing: c(i),
27
+ drawn: c(a),
28
+ reduced: c(s),
29
+ draw: u
30
+ };
31
+ }
32
+ var _ = "0 0 64 64", v = {
33
+ check: "M16 33 L28 45 L48 19",
34
+ wordmark: "M14 30 L26 42 L50 16 M14 50 L50 50"
35
+ }, y = {
36
+ cx: 32,
37
+ cy: 32,
38
+ r: 24
39
+ }, b = [
40
+ "data-shape",
41
+ "data-play",
42
+ "data-drawn"
43
+ ], x = ["viewBox"], S = [
44
+ "cx",
45
+ "cy",
46
+ "r"
47
+ ], C = ["d"], w = {
48
+ key: 0,
49
+ class: "sr-only"
50
+ }, T = /* @__PURE__ */ i({
51
+ name: "CompletionSeal",
52
+ __name: "CompletionSeal",
53
+ props: {
54
+ shape: {},
55
+ label: {},
56
+ play: { type: Boolean },
57
+ class: {}
58
+ },
59
+ setup(i) {
60
+ let o = i, c = t(() => o.shape ?? "check"), l = t(() => c.value === "wordmark" ? v.wordmark : v.check), { playing: p, drawn: m } = g({ play: o.play === void 0 ? void 0 : d(o, "play") });
61
+ return (t, i) => (s(), r("div", {
62
+ class: a(["completion-seal", f(e)(o.class)]),
63
+ "data-shape": c.value,
64
+ "data-play": f(p) ? "" : void 0,
65
+ "data-drawn": f(m) ? "" : void 0,
66
+ role: "status",
67
+ "aria-live": "polite"
68
+ }, [(s(), r("svg", {
69
+ class: "completion-seal__svg",
70
+ viewBox: f(_),
71
+ "aria-hidden": "true",
72
+ focusable: "false"
73
+ }, [c.value === "ring" ? (s(), r("circle", {
74
+ key: 0,
75
+ class: "completion-seal__mark",
76
+ cx: f(y).cx,
77
+ cy: f(y).cy,
78
+ r: f(y).r,
79
+ pathLength: "100"
80
+ }, null, 8, S)) : (s(), r("path", {
81
+ key: 1,
82
+ class: "completion-seal__mark",
83
+ d: l.value,
84
+ pathLength: "100"
85
+ }, null, 8, C))], 8, x)), o.label ? (s(), r("span", w, u(o.label), 1)) : n("", !0)], 10, b));
86
+ }
87
+ });
88
+ //#endregion
89
+ export { T as CompletionSeal, g as useCompletionSeal };
@@ -52,11 +52,16 @@ type __VLS_Props = {
52
52
  * - `"css"` — never arm WebGL; the `paletteToCssGradient` placeholder
53
53
  * stays the permanent surface (the warm wash composites, it just
54
54
  * does not animate).
55
- * - `"auto"` (default) — resolve to `"css"` on low-power /
56
- * reduced-motion / save-data devices (`hardwareConcurrency <= 4` OR
57
- * `prefers-reduced-motion: reduce` OR `connection.saveData`), else
58
- * `"webgl"`. Resolved once at setup; SSR / missing-API safe (assumes
59
- * capable → `"webgl"` when the probes are unavailable).
55
+ * - `"auto"` (default) — resolves to `"webgl"` on every device EXCEPT a
56
+ * detected SOFTWARE renderer (SwiftShader / llvmpipe / MS Basic Render),
57
+ * which falls to `"css"` (the page-wedging-software-raster guard, the only
58
+ * surviving `"css"` signal). BC.W-VIZ-AURORA (T1) RETIRED the dead-static
59
+ * `hardwareConcurrency <= 4` / `saveData` / `reduced-motion` falls: a
60
+ * 2026-capable low-core / throttled tab no longer gets a frozen gradient
61
+ * (the "renders SLOW" defect root), and reduced-motion is handled SOLELY by
62
+ * the substrate's live `matchMedia` freeze (one static frame then park,
63
+ * re-arms on un-reduce). Resolved once at setup; SSR / missing-API safe
64
+ * (assumes capable → `"webgl"` when the probes are unavailable).
60
65
  */
61
66
  renderMode?: AuroraRenderMode;
62
67
  /**
@@ -0,0 +1,39 @@
1
+ import { type AuroraConfig, type AuroraMedium } from "../constants/presets";
2
+ import type { AuroraMotionAtom } from "./atoms";
3
+ /** Linear interpolation over a co-varying axis (the continuous curve, not a LUT). */
4
+ export declare function lerp(a: number, b: number, t: number): number;
5
+ /** The motion atom → the three motion fields. */
6
+ export interface MotionFields {
7
+ nucleiDrift: number;
8
+ paletteDrift: number;
9
+ warpDrift: number;
10
+ breathDepth: number;
11
+ }
12
+ /** The calm↔vivid poles for each co-varying COLOR-energy axis. */
13
+ export declare const COLOR_ENERGY: {
14
+ readonly saturation: {
15
+ readonly calm: 0.85;
16
+ readonly vivid: 1.2;
17
+ };
18
+ readonly valueVariance: {
19
+ readonly calm: 0.04;
20
+ readonly vivid: 0.14;
21
+ };
22
+ readonly breathDepth: {
23
+ readonly calm: 0.03;
24
+ readonly vivid: 0.08;
25
+ };
26
+ readonly temperatureShift: {
27
+ readonly calm: 0.15;
28
+ readonly vivid: 0.5;
29
+ };
30
+ };
31
+ export declare const MOTION_FIELDS: Record<AuroraMotionAtom, MotionFields>;
32
+ /** The textured medium → its dominant texture knob. Only reached for a textured medium. */
33
+ export declare function applyTexture(cfg: AuroraConfig, medium: Exclude<AuroraMedium, "smooth">, amount: number): void;
34
+ /** Read back the textured medium's dominant texture amount (the applyTexture inverse). */
35
+ export declare function textureAmountFor(cfg: AuroraConfig, kind: Exclude<AuroraMedium, "smooth">): number;
36
+ /** Classify the motion atom from the config's drift fields (the resolveAtoms forward map). */
37
+ export declare function motionFor(cfg: AuroraConfig): AuroraMotionAtom;
38
+ /** Invert a clamped lerp(calm, vivid, t) back to t∈[0,1] (the energy/noise inverses). */
39
+ export declare function unlerp(value: number, lo: number, hi: number): number;
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Aurora luminance-faithful fallback ground (BB.W-AURORA-SWRASTER).
3
+ *
4
+ * The headless / software-raster substrate cannot run the live WebGL field, but
5
+ * speedtest's CI/witness harness must still certify text-on-aurora AA contrast
6
+ * floors HEADLESS (no `--use-gl=angle`). The flat `paletteToCssGradient`
7
+ * placeholder (`color.ts`) is a deliberate "visually-adjacent approximation" — a
8
+ * gamma-sRGB-stop `linear-gradient(135deg, …)` band whose MEAN luminance and
9
+ * SPATIAL distribution both diverge from the shader's nuclei-field composite, so a
10
+ * contrast capture against it certifies the WRONG floor. This module REPLACES it,
11
+ * in the software-raster / capture substrate, with a FIELD-SAMPLED ground derived
12
+ * from the SAME inputs the shader uploads (the palette stops + the nuclei field),
13
+ * matching the composite's mean + per-quadrant luminance within the certify band.
14
+ *
15
+ * THE FIELD MATH IS MIRRORED CPU-SIDE, NOT RE-INVENTED. `sampleAuroraField`
16
+ * reproduces the shader's STATIC (t=0) composite — `composition.glsl.ts`'s
17
+ * `nucleiField` (the softmax-Gaussian over the nuclei → paletteId + valueMod) +
18
+ * `samplePalette` (the linear-sRGB LUT lerp of the CPU-baked endpoints) + the
19
+ * `valueVariance` modulation + the Khronos PBR-Neutral tonemap (`tonemap.glsl.ts`'s
20
+ * `aces()`) + the mandatory `linearToSrgb` OETF (`proof:aurora-space-gamma`). The
21
+ * palette LUT is `oklchToLinear` (the SAME value.js Ottosson bake `flattenPalette`
22
+ * feeds the GPU) — ONE color source, no re-implemented OKLCh math. The
23
+ * between-endpoint interpolation runs in LINEAR (the linear-baked endpoints the
24
+ * shader's LUT also reads); the shader's OKLCh between-stop refinement is a
25
+ * sub-perceptual luminance delta on adjacent stops, well inside the certify band.
26
+ *
27
+ * THE GROUND IS A ONE-SHOT 2D-CANVAS RASTER (the "CSS/2D fallback" the brief names
28
+ * verbatim — option b, the higher-faithfulness path). A low-res `<canvas>` 2D
29
+ * context paints the downsampled nuclei-field raster (each texel its `sampleAuroraField`
30
+ * color), exported ONCE as a `data:` URI and CSS-upscaled (`image-rendering` smooth →
31
+ * bilinear, which preserves the per-quadrant MEAN luminance) — so the painted ground
32
+ * reproduces the composite's SPATIAL luminance, not a partial-alpha approximation. It
33
+ * paints once at mount and parks (no rAF, zero ongoing GPU). When no `document` is
34
+ * available (SSR / happy-dom) it degrades to a deterministic pure-CSS layered
35
+ * `radial-gradient` stack (zero canvas) — the same field samples, the SSR-safe form.
36
+ * The luminance metrics (mean + the 4-quadrant relative luminance) are returned
37
+ * alongside so the gate / π can MEASURE the faithfulness claim rather than assert it.
38
+ */
39
+ import type { AuroraConfig, AuroraNucleus } from "../constants/presets";
40
+ /** A linear-sRGB triple in [0,1]. */
41
+ type Lin = [number, number, number];
42
+ /** Linear-sRGB relative luminance (Rec.709 / WCAG), the contrast-floor metric. */
43
+ export declare function relativeLuminance([r, g, b]: Lin): number;
44
+ /**
45
+ * The static (t=0) nuclei field at normalized `(x, y)` — mirrors
46
+ * `composition.glsl.ts`'s `nucleiField`. At t=0 the drift orbit term vanishes
47
+ * (cos 0 / sin 0 → the nucleus sits at its authored position), so the field is a
48
+ * pure softmax-Gaussian over the static nuclei: `w_i = exp(-β·d2_i/r_i²)`,
49
+ * `paletteId = Σ(w_i·bias_i)/Σw_i`, `valueMod = Σ(w_i·vbias_i)/Σw_i`. The
50
+ * anisotropic-ellipse local-frame rotation (elongation + angle) is reproduced.
51
+ *
52
+ * NOTE the Y convention: the shader flips Y at the uniform boundary
53
+ * (`uniformBridge.flipY`) so a CSS-top-origin `nucleus.y` becomes a shader
54
+ * bottom-origin position, AND the fragment samples `vUv` (bottom-origin). Sampling
55
+ * here in CSS-top-origin against the AUTHORED (un-flipped) positions reproduces the
56
+ * same field in the SAME visual frame — the two Y flips cancel, so the emitted CSS
57
+ * ground (top-origin) matches the rendered surface visually.
58
+ */
59
+ export declare function nucleiFieldStatic(nuclei: readonly AuroraNucleus[], softmaxBeta: number, x: number, y: number): {
60
+ paletteId: number;
61
+ valueMod: number;
62
+ };
63
+ /**
64
+ * Sample the aurora's STATIC composite at normalized `(x, y)` → a gamma-sRGB
65
+ * `[r,g,b]` in [0,1]. The full CPU mirror of the shader main() output transfer:
66
+ * field → linear palette LUT → valueVariance modulation → PBR-Neutral tonemap →
67
+ * the `clamp(col*0.985 + 0.008)` toe → the `linearToSrgb` OETF. The drift / breath
68
+ * / cursor / medium-texture terms are STATIC (t=0, no cursor, the atmospheric
69
+ * smooth pole) — the luminance ground the certify reads, not the live animation.
70
+ */
71
+ export declare function sampleAuroraField(config: AuroraConfig, x: number, y: number): Lin;
72
+ /** The luminance metrics the gate / π MEASURES the faithfulness against. */
73
+ export interface AuroraGroundMetrics {
74
+ /** Mean relative luminance over the sample grid (gamma → relative-luminance). */
75
+ mean: number;
76
+ /** The 4-quadrant mean relative luminance, [topLeft, topRight, bottomLeft, bottomRight]. */
77
+ quadrants: [number, number, number, number];
78
+ }
79
+ export interface AuroraFallbackGroundOptions {
80
+ /** Field-sample grid resolution per axis (default 8 → an 8×8 = 64-sample ground). */
81
+ grid?: number;
82
+ }
83
+ export interface AuroraFallbackGround {
84
+ /** The CSS `background-image` value — a layered radial-gradient nuclei-glow field. */
85
+ backgroundImage: string;
86
+ /** The CSS `background-color` base fill (the field-mean color — the luminance anchor). */
87
+ backgroundColor: string;
88
+ /** The measured luminance metrics (mean + per-quadrant) for the certify band. */
89
+ metrics: AuroraGroundMetrics;
90
+ }
91
+ /**
92
+ * Build the luminance-faithful CSS fallback ground for an aurora config.
93
+ *
94
+ * Samples the static field at a `grid × grid` lattice (the SAME `sampleAuroraField`
95
+ * the gate / π measures), emits a stack of soft `radial-gradient` layers — one per
96
+ * sample cell, centred on the cell, fading to transparent at ~the cell radius — over
97
+ * a base fill at the FIELD-MEAN color. The base fill anchors the global luminance;
98
+ * the radial layers paint the spatial nuclei-glow distribution, so the ground reads
99
+ * as the same atmosphere the composite paints, not a flat diagonal band. Pure CSS,
100
+ * zero canvas, deterministic from the config (palette + nuclei) — a re-run with the
101
+ * same config reproduces it byte-for-byte.
102
+ *
103
+ * The returned `metrics` are computed over the SAME sample lattice the layers paint,
104
+ * so the gate's certify-band assertion measures the ground the consumer actually
105
+ * sees (not a separate idealization).
106
+ */
107
+ export declare function auroraFallbackGround(config: AuroraConfig, options?: AuroraFallbackGroundOptions): AuroraFallbackGround;
108
+ export {};
@@ -60,6 +60,19 @@ export interface DeriveAuroraOptions {
60
60
  * fold that makes the oil/oil-pastel mediums read as mixed paint. Default 0.
61
61
  */
62
62
  temperatureShift?: number;
63
+ /**
64
+ * BC.W-VIZ-AURORA (A7) — the additive DERIVE-path hue-EXCLUSION axis (the
65
+ * speedtest-AX cross-repo fold). Named OKLCh hue bands (each `[startDeg, endDeg]`,
66
+ * wrap-around supported via `start > end`) that EVERY derived stop's hue must fall
67
+ * OUTSIDE. The mechanism that makes "teal-on-navy is GONE" enforceable in the DERIVE
68
+ * path, not just the static default — a consumer deriving a palette FROM any seed
69
+ * can never re-introduce a purged band (e.g. `avoidHues: [[170, 200]]` excludes the
70
+ * teal arc by construction). The exclusion RE-ROUTES the walked hue to the nearest
71
+ * band EDGE (preserving L/C — no chroma flatten); it is NOT a post-hoc desaturate.
72
+ * Additive + default-unset → byte-identical derive (the `WarpMode`-additive-widen
73
+ * precedent: `proof:aurora-atoms-roundtrip` stays GREEN by construction).
74
+ */
75
+ avoidHues?: readonly (readonly [number, number])[];
63
76
  }
64
77
  /**
65
78
  * Seed ONE color into a harmonious, gamut-safe N-stop aurora palette.
@@ -11,6 +11,7 @@
11
11
  import type { UniformLocations } from "./glSetup";
12
12
  import { type CursorState } from "./cursorModel";
13
13
  import type { AuroraConfig } from "../constants/presets";
14
+ import type { UsePointerVelocityField } from "../../../../composables/motion/usePointerVelocityField";
14
15
  export interface FrameLoopDeps {
15
16
  gl: WebGL2RenderingContext;
16
17
  prog: WebGLProgram;
@@ -20,6 +21,14 @@ export interface FrameLoopDeps {
20
21
  getConfig: () => AuroraConfig;
21
22
  /** Reduced-motion intent — parks the loop after one static frame. */
22
23
  getReducedMotion: () => boolean;
24
+ /**
25
+ * BC.W-VIZ-AURORA (T5) — the shared viz-pointer-physics field (BB.B4). FED
26
+ * `tick(deltaMs)` from THIS frame callback (the one-loop discipline — the field owns
27
+ * NO own rAF); the renderer reads `acceleration` for the iOS-27 gel snap-back. The
28
+ * existing cursorModel velocity/burst stays the byte-faithful baseline; the accel
29
+ * term is the additive fold.
30
+ */
31
+ pointerField: UsePointerVelocityField;
23
32
  }
24
33
  export interface FrameLoop {
25
34
  /** Advance the cursor easing THEN draw — the per-frame step. */
@@ -70,8 +70,27 @@ export interface AuroraRuntimeOptions {
70
70
  * NOTE: this is the `useAurora` Vue-wrapper contract surface. The imperative
71
71
  * `createAurora(...)` runtime throws on eager init failure and — for
72
72
  * `instance.arm()` on the deferred path — rethrows from `arm()`.
73
+ *
74
+ * BB.W-AURORA-SWRASTER — a SOFTWARE-RASTER fall is NOT a contract violation:
75
+ * it never reaches `onInitError`. The wedge catch (see {@link createAurora})
76
+ * recognizes the software-raster signal at arm time, leaves the canvas
77
+ * un-armed (the placeholder stays the surface), and returns CLEANLY — so a
78
+ * consumer who pins `mode:"capture"`/`mode:"webgl"` under SwiftShader never
79
+ * has to wire `onInitError` to avoid the hang. The handler is preserved for
80
+ * GENUINE violations (a malformed shader, an OOM, a real link failure).
73
81
  */
74
82
  onInitError?: (err: Error) => void;
83
+ /**
84
+ * BB.W-AURORA-SWRASTER — opt OUT of the runtime software-raster wedge catch.
85
+ * Default `false`: the wedge catch is the safe default — `createAurora`
86
+ * recognizes a software renderer at arm time and falls cleanly to the
87
+ * placeholder rather than arming the page-wedging live GL layer. `true` (the
88
+ * named, recorded escape for a deterministic test that ACCEPTS the cost)
89
+ * arms WebGL even under a detected software renderer. Mirrors the
90
+ * `resolveRenderMode` escape of the same name — ONE consumer-facing flag,
91
+ * threaded through both seams.
92
+ */
93
+ forceWebGLUnderSoftwareRaster?: boolean;
75
94
  }
76
95
  /**
77
96
  * The concrete `createAurora` return shape. It IS an {@link AuroraInstance}
@@ -83,6 +102,18 @@ export interface AuroraRuntimeOptions {
83
102
  export interface AuroraRuntime extends Omit<AuroraInstance, "pause" | "resume"> {
84
103
  pause(reason?: SuspendReason): void;
85
104
  resume(reason?: SuspendReason): void;
105
+ /**
106
+ * BC.W-VIZ-AURORA (T2) — the device-resolved arm PROMISE. On the WebGPU
107
+ * backend `renderAt`/`arm` are NO-OPS until `armAsync()` resolves the async
108
+ * adapter→device→configure→setup prelude (`useGpuSubstrate.armAsync` tries
109
+ * WebGPU then falls to the WebGL2 net). A CAPTURE consumer (`renderAt(t)` +
110
+ * `toDataURL`) MUST `await armAsync()` before the first `renderAt` — the
111
+ * synchronous `arm()` cannot guarantee the WebGPU device is present, so a
112
+ * synchronous `renderAt` right after `createAurora(…,{mode:"capture"})` paints
113
+ * a BLANK frame (the dead-preview defect). Resolves once the backend is armed;
114
+ * the WebGL2 fallback resolves immediately. Idempotent + safe post-dispose.
115
+ */
116
+ armAsync(): Promise<void>;
86
117
  /**
87
118
  * AW.W8.1 — feed a pointer delta into the velocity-reactive flow (a fast flick →
88
119
  * a transient swirl-burst). The PRM early-out lives here: the injection is
@@ -27,6 +27,7 @@ export declare const MEDIUM_ID: {
27
27
  readonly crayon: 4;
28
28
  readonly vangogh: 5;
29
29
  readonly "oil-pastel": 6;
30
+ readonly kuwahara: 7;
30
31
  };
31
32
  export declare const HUE_PATH_ID: {
32
33
  readonly shorter: 0;
@@ -50,6 +51,7 @@ export declare const WARP_ID: {
50
51
  readonly fbm: 0;
51
52
  readonly cellular: 1;
52
53
  readonly hybrid: 2;
54
+ readonly curl: 3;
53
55
  };
54
56
  export declare const STROKE_MODE_ID: {
55
57
  readonly oil: 0;
@@ -81,7 +83,9 @@ export declare function resolveStrokeModeId(cfg: AuroraConfig): number;
81
83
  * `oil-pastel`, `crayon`) FORCE the structure-tensor orientation regardless of the
82
84
  * config's `strokeOrient` field — their marks must hug the color zones (the
83
85
  * congruent-to-real-works contract). Every other medium honors the config's
84
- * `strokeOrient` (default `"flow"`).
86
+ * `strokeOrient` (default `"flow"`). BB.W-AUR-KUWAHARA — `kuwahara` ALSO forces
87
+ * tensor: the anisotropic Kuwahara kernel is squeezed along the structure-tensor
88
+ * minor eigenvector, so the orientation source must be the tensor field.
85
89
  */
86
90
  export declare function resolveStrokeOrientId(cfg: AuroraConfig): number;
87
91
  /**
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Aurora WGSL uniform bridge — the typed-struct SOURCE OF TRUTH for the WebGPU primary.
3
+ *
4
+ * The WGSL `Uniforms` struct (`aurora.wgsl.ts`) and the JS `ArrayBuffer` write offsets
5
+ * are generated from the SAME layout table here, so a std140-vs-WGSL alignment mismatch
6
+ * (the parity-ΔE-blowout trap the wave's §Triumvirate names) is structurally impossible:
7
+ * the field order + the byte offsets are ONE declaration.
8
+ *
9
+ * The struct packs every scalar into a vec4 lane + every per-nucleus row / palette stop
10
+ * into a vec4 so the array stride is the natural 16 bytes (no std140 16-byte-array-stride
11
+ * surprise). The byte layout (all offsets in bytes, std140-compatible — vec4 align 16):
12
+ *
13
+ * scalars0 : vec4<f32> off 0 (uTime, uSoftmaxBeta, uValueVariance, uWarpAmount)
14
+ * scalars1 : vec4<f32> off 16 (uWarpScale, uWarpDrift, uSaturation, uPaperGrain)
15
+ * scalars2 : vec4<f32> off 32 (uAlpha, uNucleiDrift, uPaletteDrift, uBreathDepth)
16
+ * scalars3 : vec4<f32> off 48 (uBreathPeriod, uCursorStrength, uCursorRadius, _)
17
+ * cursor : vec4<f32> off 64 (uCursor.x, uCursor.y, _, _)
18
+ * ints0 : vec4<i32> off 80 (uStopCount, uNucleiCount, uWarpMode, uNoiseOctaves)
19
+ * ints1 : vec4<i32> off 96 (uMedium, uHuePath, _, _)
20
+ * palette : array<vec4<f32>, 8> off 112 (rgb linear-sRGB stop + pad)
21
+ * nuc0 : array<vec4<f32>, 6> off 240 (pos.x, pos.y, radius, paletteBias)
22
+ * nuc1 : array<vec4<f32>, 6> off 336 (valueBias, driftRadius, driftPhase, elong)
23
+ * nuc2 : array<vec4<f32>, 6> off 432 (angle, _, _, _)
24
+ * scalars4 : vec4<f32> off 528 (uStrokeAmount, uStrokeScale, uStrokeAnisotropy, uCanvasGrain)
25
+ * scalars5 : vec4<f32> off 544 (uWetEdge, uGranulation, uBrokenColor, uKuwaharaQ)
26
+ * kuwahara : vec4<f32> off 560 (uKuwaharaRadius, uKuwaharaSectors, _, _)
27
+ * total : 576 bytes (16-aligned)
28
+ *
29
+ * BC.W-VIZ-AURORA (T4) — the painterly-medium scalar lanes (scalars4/scalars5/kuwahara)
30
+ * are APPENDED after the arrays, so EVERY pre-existing offset is byte-identical and the
31
+ * smooth-default parity capture is byte-equivalent (these lanes pack 0 on a smooth config).
32
+ * The WGSL `Uniforms` struct (`aurora.wgsl.ts`) carries the SAME three trailing lanes —
33
+ * the typed-struct lockstep: a one-sided add reds the parity-ΔE.
34
+ *
35
+ * Y-origin: config authoring is CSS-top-origin (0 = top); the bridge flips Y at the
36
+ * uniform boundary (`flipY`), exactly as the GLSL `uniformBridge` does.
37
+ */
38
+ import { type AuroraConfig } from "../constants/presets";
39
+ import type { CursorState } from "./cursorModel";
40
+ /** The total uniform-buffer byte size (16-aligned). */
41
+ export declare const AURORA_WGPU_UNIFORM_BYTES = 576;
42
+ /**
43
+ * The packed scratch buffer + the dual ArrayBuffer views. A slider drag refills this
44
+ * in place (no per-frame allocation) — mirroring the GLSL bridge's pre-allocated
45
+ * upload buffers. The Float32 view writes the float lanes; the Int32 view writes the
46
+ * two int lanes (a WGSL `i32` shares the buffer at the 16-byte-aligned offsets).
47
+ */
48
+ export interface AuroraWGPUUniformScratch {
49
+ buffer: ArrayBuffer;
50
+ f32: Float32Array;
51
+ i32: Int32Array;
52
+ paletteScratch: Float32Array;
53
+ }
54
+ export declare function createAuroraWGPUUniformScratch(): AuroraWGPUUniformScratch;
55
+ /**
56
+ * Pack an {@link AuroraConfig} + the live cursor + the frame time into the uniform
57
+ * scratch buffer. The byte layout mirrors the WGSL `Uniforms` struct EXACTLY. Returns
58
+ * the same scratch (the caller `queue.writeBuffer`s `scratch.buffer`).
59
+ */
60
+ export declare function packAuroraWGPUUniforms(scratch: AuroraWGPUUniformScratch, cfg: AuroraConfig, cursor: CursorState, timeSec: number): AuroraWGPUUniformScratch;
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Aurora WGSL setup seam — the WebGPU twin of `glSetup` + `frameLoop`.
3
+ *
4
+ * `createAuroraWGPUSetup` returns a `setupWGPU(device, context, format)` callback the
5
+ * `useGpuSubstrate` picker invokes on the async arm (AND on every device-restore). It
6
+ * builds the render pipeline (the `aurora.wgsl` full-screen-triangle pass), the uniform
7
+ * buffer (the `uniformBridgeWGPU` typed-struct source-of-truth), and the bind group, then
8
+ * returns the substrate's per-frame hooks (`frame`/`shouldContinue`/`resize`/`time`/
9
+ * `teardown`).
10
+ *
11
+ * The render-demand gate + the cursor-advance + the DPR resize mirror the WebGL2
12
+ * `frameLoop`/`runtime.resize` exactly — the loop is substrate-AGNOSTIC, so the same
13
+ * `getConfig`/`getReducedMotion`/`cursor` closures drive both backends.
14
+ */
15
+ import type { WebGPUCanvasFrame } from "../../../../composables/glass/webgpu/useWebGPUCanvas";
16
+ import { type CursorState } from "./cursorModel";
17
+ import type { AuroraConfig } from "../constants/presets";
18
+ import type { UsePointerVelocityField } from "../../../../composables/motion/usePointerVelocityField";
19
+ export interface AuroraWGPUSetupDeps {
20
+ canvas: HTMLCanvasElement;
21
+ cursor: CursorState;
22
+ getConfig: () => AuroraConfig;
23
+ getReducedMotion: () => boolean;
24
+ /**
25
+ * BC.W-VIZ-AURORA (T5) — the shared viz-pointer-physics field (BB.B4). FED
26
+ * `tick(deltaMs)` from the WGPU frame callback (the SAME field instance the WebGL2
27
+ * loop feeds — one source, no own rAF); the renderer reads `acceleration` for the
28
+ * iOS-27 gel snap-back.
29
+ */
30
+ pointerField: UsePointerVelocityField;
31
+ }
32
+ /**
33
+ * Build the aurora `setupWGPU(device, context, format)` callback. Closes over the
34
+ * aurora-specific state (cursor/config/reduced-motion) the runtime owns — identical to
35
+ * the closures the WebGL2 `setup` threads.
36
+ */
37
+ export declare function createAuroraWGPUSetup(deps: AuroraWGPUSetupDeps): (device: GPUDevice, context: GPUCanvasContext, format: GPUTextureFormat) => WebGPUCanvasFrame;