@mkbabb/glass-ui 4.0.1 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (459) hide show
  1. package/dist/{CardAction-CW7a0m8M.js → CardAction-8whJrLWt.js} +23 -8
  2. package/dist/{CommandShortcut-DvZNQ_HF.js → CommandShortcut-D3yxgHNn.js} +23 -12
  3. package/dist/{ConfiguratorRow-BR4l-ixA.js → ConfiguratorRow-CaP7U3ZA.js} +11 -11
  4. package/dist/ContextMenuContent-B3ZsheLV.js +90 -0
  5. package/dist/{ContextMenuSubContent-xol4sD2q.js → ContextMenuSubContent-DDRID3qC.js} +15 -15
  6. package/dist/{DataTable-CuKwF7wr.js → DataTable-Bc9kUtu_.js} +2 -2
  7. package/dist/{DialogContent-DcKK8k9i.js → DialogContent-6JtTB5x2.js} +8 -5
  8. package/dist/DialogFooter-9phqcRIS.js +80 -0
  9. package/dist/DialogScrollContent-TTuovQst.js +93 -0
  10. package/dist/HoverCardContent-Bel1gdLZ.js +88 -0
  11. package/dist/{IconChip-BTD-nay5.js → IconChip-DhbdGdFQ.js} +1 -1
  12. package/dist/{IconTooltip-Bl8gFZ8d.js → IconTooltip-B0zimd2H.js} +1 -1
  13. package/dist/Input-Cg9DF62r.js +57 -0
  14. package/dist/{Notification-VUwexFUf.js → Notification-CphK7AAm.js} +3 -3
  15. package/dist/NumberFieldContent-D8cXeyO4.js +140 -0
  16. package/dist/PagerDots-Cjx96la-.js +98 -0
  17. package/dist/{SelectScrollDownButton-CrA8F0iV.js → SelectScrollDownButton-DAKCBEdW.js} +62 -57
  18. package/dist/{SelectSeparator-DXswVdRz.js → SelectSeparator-C2UGOkXF.js} +1 -1
  19. package/dist/Separator-DQcwC2TR.js +44 -0
  20. package/dist/Switch-B8RscmRu.js +49 -0
  21. package/dist/{Toaster-Bw4xR8xV.js → Toaster-D9qIHjBI.js} +1 -1
  22. package/dist/{ToggleGroupItem-pEM9vIhs.js → ToggleGroupItem-BLtr3TJq.js} +2 -2
  23. package/dist/TooltipProvider-BJ_Y5EGX.js +109 -0
  24. package/dist/animated-digit.js +1 -1
  25. package/dist/api/index.d.ts +15 -32
  26. package/dist/api/types-extra.d.ts +31 -0
  27. package/dist/api.js +1 -1
  28. package/dist/aurora.js +579 -251
  29. package/dist/border-progress.js +49 -57
  30. package/dist/{button-DYCUa-tH.js → button-5dY1Dvhd.js} +13 -14
  31. package/dist/button.js +1 -1
  32. package/dist/canvas.js +2 -3
  33. package/dist/card.js +1 -1
  34. package/dist/carousel.js +20 -20
  35. package/dist/color-Cs0-oxYL.js +116 -0
  36. package/dist/color.js +2 -2
  37. package/dist/command.js +1 -1
  38. package/dist/completion-seal.d.ts +1 -0
  39. package/dist/completion-seal.js +89 -0
  40. package/dist/components/custom/aurora/Aurora.vue.d.ts +10 -5
  41. package/dist/components/custom/aurora/composables/color.d.ts +13 -0
  42. package/dist/components/custom/aurora/composables/frameLoop.d.ts +9 -0
  43. package/dist/components/custom/aurora/composables/runtime.d.ts +12 -0
  44. package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +11 -2
  45. package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +8 -0
  46. package/dist/components/custom/aurora/constants/presets.d.ts +18 -0
  47. package/dist/components/custom/aurora/constants/renderMode.d.ts +16 -8
  48. package/dist/components/custom/aurora/constants/shaders/aurora-mediums.wgsl.d.ts +1 -0
  49. package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -1
  50. package/dist/components/custom/border-progress/composables/spectrum-walk.d.ts +25 -0
  51. package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +14 -18
  52. package/dist/components/custom/border-progress/index.d.ts +1 -1
  53. package/dist/components/custom/completion-seal/CompletionSeal.vue.d.ts +21 -0
  54. package/dist/components/custom/completion-seal/composables/useCompletionSeal.d.ts +37 -0
  55. package/dist/components/custom/completion-seal/constants.d.ts +46 -0
  56. package/dist/components/custom/completion-seal/index.d.ts +4 -0
  57. package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +7 -0
  58. package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +9 -0
  59. package/dist/components/custom/concentric/composables/ringField.d.ts +57 -16
  60. package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +2 -1
  61. package/dist/components/custom/concentric/composables/useConcentric.d.ts +4 -4
  62. package/dist/components/custom/concentric/constants.d.ts +30 -6
  63. package/dist/components/custom/concentric/index.d.ts +2 -2
  64. package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +2 -2
  65. package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -1
  66. package/dist/components/custom/confirm-dialog/ConfirmDialog.vue.d.ts +3 -3
  67. package/dist/components/custom/constellation/Constellation.vue.d.ts +5 -4
  68. package/dist/components/custom/constellation/composables/constellationGLSetup.d.ts +10 -0
  69. package/dist/components/custom/constellation/composables/constellationWGPUSetup.d.ts +19 -0
  70. package/dist/components/custom/constellation/composables/uniformBridgeWGPU.d.ts +66 -0
  71. package/dist/components/custom/constellation/composables/useConstellation.d.ts +3 -10
  72. package/dist/components/custom/constellation/constants.d.ts +33 -0
  73. package/dist/components/custom/constellation/constellationField.d.ts +31 -1
  74. package/dist/components/custom/constellation/constellationInteraction.d.ts +23 -14
  75. package/dist/components/custom/constellation/constellationRender.d.ts +25 -0
  76. package/dist/components/custom/constellation/constellationTypes.d.ts +38 -0
  77. package/dist/components/custom/constellation/constellationWell.d.ts +15 -0
  78. package/dist/components/custom/constellation/index.d.ts +5 -5
  79. package/dist/components/custom/constellation/shaders/constellation-lines.glsl.d.ts +2 -0
  80. package/dist/components/custom/constellation/shaders/constellation-lines.wgsl.d.ts +1 -0
  81. package/dist/components/custom/constellation/shaders/constellation-points.glsl.d.ts +2 -0
  82. package/dist/components/custom/constellation/shaders/constellation-points.wgsl.d.ts +1 -0
  83. package/dist/components/custom/deck/DeckPager.vue.d.ts +29 -0
  84. package/dist/components/custom/deck/composables/useDeck.d.ts +27 -0
  85. package/dist/components/custom/deck/composables/useDeckKeyboard.d.ts +25 -0
  86. package/dist/components/custom/deck/composables/useDeckSpring.d.ts +22 -0
  87. package/dist/components/custom/deck/constants.d.ts +14 -0
  88. package/dist/components/custom/deck/index.d.ts +8 -0
  89. package/dist/components/custom/dock/DockIconButton.vue.d.ts +12 -0
  90. package/dist/components/custom/dock/DockStack.vue.d.ts +65 -0
  91. package/dist/components/custom/dock/GlassDock.vue.d.ts +4 -2
  92. package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +80 -0
  93. package/dist/components/custom/dock/composables/index.d.ts +2 -0
  94. package/dist/components/custom/dock/composables/useDockSearch.d.ts +85 -0
  95. package/dist/components/custom/dock/composables/useDockShellProps.d.ts +11 -0
  96. package/dist/components/custom/dock/constants.d.ts +18 -14
  97. package/dist/components/custom/dock/index.d.ts +5 -2
  98. package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +15 -11
  99. package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +48 -6
  100. package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +23 -8
  101. package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +6 -5
  102. package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +18 -5
  103. package/dist/components/custom/dot-flow-field/constants.d.ts +42 -21
  104. package/dist/components/custom/dot-flow-field/index.d.ts +2 -2
  105. package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -1
  106. package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +4 -20
  107. package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +1 -1
  108. package/dist/components/custom/dot-matrix/DotMatrix.vue.d.ts +43 -0
  109. package/dist/components/custom/dot-matrix/composables/dotMatrixField.d.ts +89 -0
  110. package/dist/components/custom/dot-matrix/composables/uniformBridgeWGPU.d.ts +52 -0
  111. package/dist/components/custom/dot-matrix/composables/useDotMatrix.d.ts +34 -0
  112. package/dist/components/custom/dot-matrix/composables/useDotSphere.d.ts +27 -0
  113. package/dist/components/custom/dot-matrix/constants.d.ts +58 -0
  114. package/dist/components/custom/dot-matrix/index.d.ts +5 -0
  115. package/dist/components/custom/dot-matrix/shaders/dot-matrix.glsl.d.ts +4 -0
  116. package/dist/components/custom/dot-matrix/shaders/dot-matrix.wgsl.d.ts +1 -0
  117. package/dist/components/custom/easing/EasingPicker.vue.d.ts +2 -2
  118. package/dist/components/custom/easing/composables/useEasingPicker.d.ts +5 -0
  119. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +11 -0
  120. package/dist/components/custom/fourier-field/FourierField.vue.d.ts +40 -47
  121. package/dist/components/custom/fourier-field/composables/fourierFieldGLSetup.d.ts +15 -0
  122. package/dist/components/custom/fourier-field/composables/fourierFieldWGPUSetup.d.ts +20 -0
  123. package/dist/components/custom/fourier-field/composables/uniformBridgeWGPU.d.ts +41 -0
  124. package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +40 -37
  125. package/dist/components/custom/fourier-field/constants.d.ts +61 -4
  126. package/dist/components/custom/fourier-field/index.d.ts +23 -18
  127. package/dist/components/custom/fourier-field/shaders/fourier-field.compute.wgsl.d.ts +1 -0
  128. package/dist/components/custom/fourier-field/shaders/fourier-field.glsl.d.ts +4 -0
  129. package/dist/components/custom/fourier-field/shaders/fourier-field.render.wgsl.d.ts +1 -0
  130. package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +9 -1
  131. package/dist/components/custom/goo-blob/constants.d.ts +1 -1
  132. package/dist/components/custom/goo-blob/index.d.ts +1 -1
  133. package/dist/components/custom/goo-blob/shaders/metaball-noise.wgsl.d.ts +1 -0
  134. package/dist/components/custom/goo-blob/shaders/metaball-palette.wgsl.d.ts +1 -0
  135. package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -1
  136. package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -1
  137. package/dist/components/custom/goo-blob/types.d.ts +36 -0
  138. package/dist/components/custom/goo-dot-matrix/GooDotMatrix.vue.d.ts +49 -0
  139. package/dist/components/custom/goo-dot-matrix/composables/gooDotLattice.d.ts +24 -0
  140. package/dist/components/custom/goo-dot-matrix/composables/gooDotSetup.d.ts +50 -0
  141. package/dist/components/custom/goo-dot-matrix/composables/uniformBridgeWGPU.d.ts +35 -0
  142. package/dist/components/custom/goo-dot-matrix/composables/useGooDotMatrix.d.ts +31 -0
  143. package/dist/components/custom/goo-dot-matrix/constants.d.ts +76 -0
  144. package/dist/components/custom/goo-dot-matrix/index.d.ts +5 -0
  145. package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.frag.d.ts +11 -0
  146. package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.wgsl.d.ts +3 -0
  147. package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +21 -2
  148. package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +15 -0
  149. package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +9 -0
  150. package/dist/components/custom/pager-dots/index.d.ts +2 -0
  151. package/dist/components/custom/pager-dots/pagerWindow.d.ts +9 -0
  152. package/dist/components/custom/paper-grid/PaperGrid.vue.d.ts +42 -0
  153. package/dist/components/custom/paper-grid/composables/paperGrid.d.ts +90 -0
  154. package/dist/components/custom/paper-grid/composables/paperGridGLSetup.d.ts +16 -0
  155. package/dist/components/custom/paper-grid/composables/paperGridWGPUSetup.d.ts +19 -0
  156. package/dist/components/custom/paper-grid/composables/uniformBridgeWGPU.d.ts +16 -0
  157. package/dist/components/custom/paper-grid/composables/usePaperGrid.d.ts +31 -0
  158. package/dist/components/custom/paper-grid/constants.d.ts +57 -0
  159. package/dist/components/custom/paper-grid/index.d.ts +5 -0
  160. package/dist/components/custom/paper-grid/shaders/paper-grid.glsl.d.ts +4 -0
  161. package/dist/components/custom/paper-grid/shaders/paper-grid.wgsl.d.ts +1 -0
  162. package/dist/components/custom/search/FuzzySearch.vue.d.ts +8 -2
  163. package/dist/components/custom/search/SearchBar.vue.d.ts +8 -0
  164. package/dist/components/custom/search/index.d.ts +2 -0
  165. package/dist/components/custom/search/searchVariants.d.ts +19 -0
  166. package/dist/components/custom/selectable-chip/SelectableChip.vue.d.ts +50 -0
  167. package/dist/components/custom/selectable-chip/index.d.ts +2 -0
  168. package/dist/components/custom/selectable-chip/selectableChipVariants.d.ts +23 -0
  169. package/dist/components/custom/split-chars/SplitChars.vue.d.ts +39 -0
  170. package/dist/components/custom/split-chars/index.d.ts +1 -0
  171. package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +8 -6
  172. package/dist/components/custom/tabs/constants.d.ts +20 -2
  173. package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +29 -16
  174. package/dist/components/custom/watercolor-dot/useWatercolorBlob.d.ts +10 -5
  175. package/dist/components/ui/_shared/index.d.ts +2 -0
  176. package/dist/components/ui/_shared/useControlSize.d.ts +46 -0
  177. package/dist/components/ui/button/index.d.ts +1 -1
  178. package/dist/components/ui/card/Card.vue.d.ts +45 -0
  179. package/dist/components/ui/card/index.d.ts +1 -1
  180. package/dist/components/ui/carousel/CarouselNext.vue.d.ts +1 -1
  181. package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +1 -1
  182. package/dist/components/ui/command/CommandDialog.vue.d.ts +9 -3
  183. package/dist/components/ui/command/CommandList.vue.d.ts +3 -0
  184. package/dist/components/ui/context-menu/ContextMenuContent.vue.d.ts +5 -1
  185. package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +4 -0
  186. package/dist/components/ui/hover-card/HoverCardContent.vue.d.ts +3 -0
  187. package/dist/components/ui/input/Input.vue.d.ts +3 -0
  188. package/dist/components/ui/number-field/NumberFieldInput.vue.d.ts +6 -1
  189. package/dist/components/ui/select/SelectContent.vue.d.ts +3 -0
  190. package/dist/components/ui/switch/Switch.vue.d.ts +2 -0
  191. package/dist/components/ui/textarea/Textarea.vue.d.ts +3 -0
  192. package/dist/components/ui/tooltip/TooltipContent.vue.d.ts +3 -0
  193. package/dist/composables/color/index.d.ts +2 -0
  194. package/dist/composables/color/useAccentTone.d.ts +34 -0
  195. package/dist/composables/glass/useVizChoreography.d.ts +123 -0
  196. package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +10 -0
  197. package/dist/composables/glass/webgl/shaders/flow.wgsl.d.ts +1 -0
  198. package/dist/composables/glass/webgpu/index.d.ts +1 -1
  199. package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +28 -7
  200. package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +1 -0
  201. package/dist/composables/glass/webgpu/webgpuDevice.d.ts +42 -0
  202. package/dist/composables/motion/core/index.d.ts +3 -0
  203. package/dist/composables/motion/scrollReader.d.ts +25 -0
  204. package/dist/composables/motion/springPresets.d.ts +20 -1
  205. package/dist/composables/motion/useCharStagger.d.ts +44 -0
  206. package/dist/composables/motion/useDockCtaReceive.d.ts +31 -6
  207. package/dist/composables/motion/useScrollChrome.d.ts +58 -0
  208. package/dist/composables/motion/useScrollTrigger.d.ts +67 -0
  209. package/dist/composables/motion/useSpringPress.d.ts +5 -5
  210. package/dist/composables/motion/useStaggerReveal.d.ts +24 -0
  211. package/dist/composables/sidebar/index.d.ts +4 -1
  212. package/dist/composables/sidebar/types.d.ts +68 -3
  213. package/dist/composables/sidebar/useClickDelegate.d.ts +4 -0
  214. package/dist/composables/sidebar/useLazyLoader.d.ts +5 -0
  215. package/dist/composables/sidebar/useScrollTo.d.ts +5 -0
  216. package/dist/composables/virtual/index.d.ts +4 -0
  217. package/dist/composables/virtual/useVirtualSectionWindow.d.ts +72 -0
  218. package/dist/composables/virtual/useWindowedStore.d.ts +43 -0
  219. package/dist/composables/virtual/virtualSectionLayout.d.ts +103 -0
  220. package/dist/concentric.js +495 -221
  221. package/dist/configurator.js +2 -2
  222. package/dist/confirm-dialog.js +62 -47
  223. package/dist/constellation.js +635 -235
  224. package/dist/context-menu.js +2 -2
  225. package/dist/controls.js +1 -1
  226. package/dist/createCanvasLifecycle-Gh45Ce-p.js +93 -0
  227. package/dist/dark.js +1 -1
  228. package/dist/data-table.js +1 -1
  229. package/dist/deck.d.ts +1 -0
  230. package/dist/deck.js +105 -0
  231. package/dist/dialog.js +4 -3
  232. package/dist/dock.js +602 -458
  233. package/dist/dot-flow-field.js +580 -290
  234. package/dist/dot-matrix.d.ts +1 -0
  235. package/dist/dot-matrix.js +630 -0
  236. package/dist/dotMatrixField-D_x9_1qq.js +48 -0
  237. package/dist/{dropdown-menu-CofSZuk8.js → dropdown-menu-aJmV5SqE.js} +83 -79
  238. package/dist/dropdown-menu.js +1 -1
  239. package/dist/easing.js +188 -176
  240. package/dist/expandable-container.js +42 -20
  241. package/dist/fading-scroll.js +1 -1
  242. package/dist/flow.glsl-B2P7e0MT.js +4 -0
  243. package/dist/forms.js +62 -60
  244. package/dist/fourier-field.js +825 -178
  245. package/dist/fourier-math.js +1 -1
  246. package/dist/glass-ui.css +1 -1
  247. package/dist/glass-ui.js +145 -104
  248. package/dist/goo-blob.js +171 -1228
  249. package/dist/goo-dot-matrix.d.ts +1 -0
  250. package/dist/goo-dot-matrix.js +591 -0
  251. package/dist/handmark.js +1 -1
  252. package/dist/hover-card.js +1 -1
  253. package/dist/hover-popover.js +1 -1
  254. package/dist/icon-chip.js +1 -1
  255. package/dist/icon-tooltip.js +1 -1
  256. package/dist/index.d.ts +2 -0
  257. package/dist/instrument-chassis.js +1 -1
  258. package/dist/keyboard.js +1 -1
  259. package/dist/labeled-field.js +70 -60
  260. package/dist/metric-cell.js +1 -1
  261. package/dist/metric-stack.js +11 -2
  262. package/dist/motion-core.js +54 -32
  263. package/dist/motion-curves.js +11 -1
  264. package/dist/motion.js +46 -111
  265. package/dist/notification.js +1 -1
  266. package/dist/number-field.js +1 -1
  267. package/dist/pager-dots.js +2 -91
  268. package/dist/paper-backdrop.js +1 -1
  269. package/dist/paper-grid.d.ts +1 -0
  270. package/dist/paper-grid.js +788 -0
  271. package/dist/{presets-BW2b-fr1.js → presets-CvOUqtdY.js} +3 -3
  272. package/dist/{procedural-color.glsl-CIFsJhwI.js → procedural-color.wgsl-m7Zgv35j.js} +2 -2
  273. package/dist/progress.js +1 -1
  274. package/dist/pulse.js +1 -1
  275. package/dist/reactive.js +1 -1
  276. package/dist/{useCanvas2D-B8w_E3Rr.js → resolveCanvasColor-yPyIpJt9.js} +12 -2
  277. package/dist/scrollReader-DI1NWxUw.js +42 -0
  278. package/dist/scrolling-text.js +1 -1
  279. package/dist/search.js +160 -304
  280. package/dist/select.js +3 -3
  281. package/dist/selectable-chip.d.ts +1 -0
  282. package/dist/selectable-chip.js +65 -0
  283. package/dist/separator.js +1 -1
  284. package/dist/{sheet-tZMg0E0w.js → sheet-B2flBfLH.js} +2 -2
  285. package/dist/sheet.js +1 -1
  286. package/dist/sidebar.js +216 -114
  287. package/dist/slider.js +1 -1
  288. package/dist/sortable-list.js +1 -1
  289. package/dist/spectrum-walk-BVzA7Biz.js +33 -0
  290. package/dist/{springPresets-CFQGQfdl.js → springPresets-Ce7OYCm9.js} +12 -6
  291. package/dist/styles/animations.css +13 -3
  292. package/dist/styles/cards.css +69 -0
  293. package/dist/styles/completion-seal.css +131 -0
  294. package/dist/styles/components.css +2 -3
  295. package/dist/styles/configurator.css +55 -0
  296. package/dist/styles/critical-partition.mjs +33 -11
  297. package/dist/styles/deferred.css +2 -0
  298. package/dist/styles/dock/cta-seat.css +87 -0
  299. package/dist/styles/dock/density.css +153 -0
  300. package/dist/styles/dock/layers.css +55 -7
  301. package/dist/styles/dock/morph-bridge.css +54 -18
  302. package/dist/styles/dock/morph.css +41 -33
  303. package/dist/styles/dock/overflow.css +12 -0
  304. package/dist/styles/dock/search.css +68 -0
  305. package/dist/styles/dock/shape.css +124 -0
  306. package/dist/styles/dock/shell.css +23 -5
  307. package/dist/styles/dock/stack-rail.css +264 -0
  308. package/dist/styles/dock-controls/dark-mode-toggle.css +17 -4
  309. package/dist/styles/dock-controls/icon-button.css +14 -0
  310. package/dist/styles/dock.css +11 -1
  311. package/dist/styles/glass/accent-tone.css +66 -0
  312. package/dist/styles/glass/control-surfaces.css +167 -0
  313. package/dist/styles/glass/ladder.css +67 -17
  314. package/dist/styles/glass/rim.css +19 -9
  315. package/dist/styles/glass/surfaces.css +69 -148
  316. package/dist/styles/glass.css +10 -0
  317. package/dist/styles/index.css +15 -0
  318. package/dist/styles/scroll-chrome.css +123 -0
  319. package/dist/styles/scroll-driven.css +38 -0
  320. package/dist/styles/segmented-tabs.css +50 -14
  321. package/dist/styles/theme/bridges.css +22 -0
  322. package/dist/styles/theme/radius.css +18 -1
  323. package/dist/styles/tokens/color-radius.css +13 -3
  324. package/dist/styles/tokens/dark-arm.css +39 -6
  325. package/dist/styles/tokens/glass-deep.css +28 -3
  326. package/dist/styles/tokens/glass-fx.css +44 -1
  327. package/dist/styles/tokens/glass.css +91 -31
  328. package/dist/styles/tokens/light-dark.css +1 -1
  329. package/dist/styles/tokens/offsets.css +27 -0
  330. package/dist/styles/tokens/property-regs.css +133 -0
  331. package/dist/styles/tokens/scale-paper.css +73 -29
  332. package/dist/styles/tokens/scheme-motion.css +44 -6
  333. package/dist/styles/tokens/sizing-config.css +110 -0
  334. package/dist/styles/tokens/sizing.css +55 -104
  335. package/dist/styles/tokens.css +5 -0
  336. package/dist/styles/typography/semantic.css +18 -5
  337. package/dist/styles/utilities/a11y-overrides.css +20 -5
  338. package/dist/styles/utilities/base-misc.css +52 -0
  339. package/dist/styles/utilities/btn.css +14 -3
  340. package/dist/styles/utilities/components.css +31 -6
  341. package/dist/styles/utilities/metal.css +26 -0
  342. package/dist/switch.js +1 -1
  343. package/dist/tabs.js +8 -8
  344. package/dist/timeline.js +1 -1
  345. package/dist/toast.js +1 -1
  346. package/dist/toggle-chip.js +10 -10
  347. package/dist/toggle-group.js +1 -1
  348. package/dist/tooltip.js +1 -1
  349. package/dist/typewriter.js +1 -1
  350. package/dist/uniformBridgeWGPU-CtAKl45L.js +1204 -0
  351. package/dist/{useAnimatedNumber-BfUq2bUM.js → useAnimatedNumber-CLrxicG9.js} +1 -1
  352. package/dist/{useConfiguratorState-DNlOh6c8.js → useConfiguratorState-4xblKfwd.js} +25 -24
  353. package/dist/useControlSize-SH1UmJCi.js +9 -0
  354. package/dist/useDockCtaReceive-DfFkmgL1.js +82 -0
  355. package/dist/{useDragMorph-DgxnsVJz.js → useDragMorph-BUgAC-zK.js} +4 -4
  356. package/dist/useFuzzySearch-DIhcYtcw.js +177 -0
  357. package/dist/useGpuSubstrate-4pTcp6mX.js +294 -0
  358. package/dist/{useLiquidPress-kfb4KX79.js → useLiquidPress-BooG97RY.js} +2 -2
  359. package/dist/usePointerVelocityField-QLsy3_kv.js +91 -0
  360. package/dist/useScrollChrome-D66AVP7C.js +258 -0
  361. package/dist/{useSpringMount-q1amq1SJ.js → useSpringMount-BWDnKIwh.js} +1 -1
  362. package/dist/useSpringPress-B1-Czp-V.js +36 -0
  363. package/dist/useViewTransition-CUI1nAgn.js +95 -0
  364. package/dist/{vendor-CKmzio-i.js → vendor-B2qOlYY3.js} +24 -11
  365. package/dist/virtual.d.ts +1 -0
  366. package/dist/virtual.js +225 -0
  367. package/dist/watercolor-dot.js +116 -73
  368. package/package.json +127 -7
  369. package/src/styles/animations.css +13 -3
  370. package/src/styles/cards.css +69 -0
  371. package/src/styles/completion-seal.css +131 -0
  372. package/src/styles/configurator.css +55 -0
  373. package/src/styles/critical-partition.mjs +33 -11
  374. package/src/styles/dock/cta-seat.css +87 -0
  375. package/src/styles/dock/density.css +153 -0
  376. package/src/styles/dock/layers.css +55 -7
  377. package/src/styles/dock/morph-bridge.css +54 -18
  378. package/src/styles/dock/morph.css +41 -33
  379. package/src/styles/dock/overflow.css +12 -0
  380. package/src/styles/dock/search.css +68 -0
  381. package/src/styles/dock/shape.css +124 -0
  382. package/src/styles/dock/shell.css +23 -5
  383. package/src/styles/dock/stack-rail.css +264 -0
  384. package/src/styles/dock-controls/dark-mode-toggle.css +17 -4
  385. package/src/styles/dock-controls/icon-button.css +14 -0
  386. package/src/styles/dock.css +11 -1
  387. package/src/styles/glass/accent-tone.css +66 -0
  388. package/src/styles/glass/control-surfaces.css +167 -0
  389. package/src/styles/glass/ladder.css +67 -17
  390. package/src/styles/glass/rim.css +19 -9
  391. package/src/styles/glass/surfaces.css +69 -148
  392. package/src/styles/glass.css +10 -0
  393. package/src/styles/index.css +15 -0
  394. package/src/styles/scroll-chrome.css +123 -0
  395. package/src/styles/scroll-driven.css +38 -0
  396. package/src/styles/segmented-tabs.css +50 -14
  397. package/src/styles/theme/bridges.css +22 -0
  398. package/src/styles/theme/radius.css +18 -1
  399. package/src/styles/tokens/color-radius.css +13 -3
  400. package/src/styles/tokens/dark-arm.css +39 -6
  401. package/src/styles/tokens/glass-deep.css +28 -3
  402. package/src/styles/tokens/glass-fx.css +44 -1
  403. package/src/styles/tokens/glass.css +91 -31
  404. package/src/styles/tokens/light-dark.css +1 -1
  405. package/src/styles/tokens/offsets.css +27 -0
  406. package/src/styles/tokens/property-regs.css +133 -0
  407. package/src/styles/tokens/scale-paper.css +73 -29
  408. package/src/styles/tokens/scheme-motion.css +44 -6
  409. package/src/styles/tokens/sizing-config.css +110 -0
  410. package/src/styles/tokens/sizing.css +55 -104
  411. package/src/styles/tokens.css +5 -0
  412. package/src/styles/typography/semantic.css +18 -5
  413. package/src/styles/utilities/a11y-overrides.css +20 -5
  414. package/src/styles/utilities/base-misc.css +52 -0
  415. package/src/styles/utilities/btn.css +14 -3
  416. package/src/styles/utilities/components.css +31 -6
  417. package/src/styles/utilities/metal.css +26 -0
  418. package/dist/ContextMenuContent-uWnVxDab.js +0 -85
  419. package/dist/DialogFooter-BZNX5aVr.js +0 -165
  420. package/dist/HoverCardContent-b2uaAMRR.js +0 -83
  421. package/dist/Input-h9v5LeXf.js +0 -55
  422. package/dist/NumberFieldContent-Cq7EzX-U.js +0 -138
  423. package/dist/Separator-pKF0oA4M.js +0 -37
  424. package/dist/Switch-CwYNf8bo.js +0 -47
  425. package/dist/TooltipProvider-rzvnXz60.js +0 -104
  426. package/dist/color-DweYl7pE.js +0 -86
  427. package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +0 -35
  428. package/dist/components/custom/constellation/constellationDraw.d.ts +0 -30
  429. package/dist/components/custom/dock/DockRail.vue.d.ts +0 -89
  430. package/dist/createCanvasLifecycle-CHD5XrDW.js +0 -82
  431. package/dist/procedural-color.wgsl-CToRHugY.js +0 -224
  432. package/dist/resolveCanvasColor-CUyHr5Uu.js +0 -11
  433. package/dist/styles/dock/rail-extend.css +0 -397
  434. package/dist/usePointerVelocityField-JbRd5CrM.js +0 -137
  435. package/dist/useRAFLoop-UYa4zoiN.js +0 -109
  436. package/dist/useSpringPress-BsqPr7FJ.js +0 -34
  437. package/src/styles/dock/rail-extend.css +0 -397
  438. /package/dist/{FadingScroll-DI6hQhT9.js → FadingScroll-DLRbH5Xr.js} +0 -0
  439. /package/dist/{HoverPopover-CbqbNwgU.js → HoverPopover-BcIxvyqZ.js} +0 -0
  440. /package/dist/{InstrumentChassis-Bx0F_q5g.js → InstrumentChassis-CxsHSyMj.js} +0 -0
  441. /package/dist/{PaperBackdrop-Vf3tlpvd.js → PaperBackdrop-CqwjnfLv.js} +0 -0
  442. /package/dist/{Progress-DctG61iZ.js → Progress-CnqB7gLm.js} +0 -0
  443. /package/dist/{ScrollingText-yOpBzFYq.js → ScrollingText-CTZbA_cG.js} +0 -0
  444. /package/dist/{SelectGroup-DwwjicPY.js → SelectGroup-BFiod7X2.js} +0 -0
  445. /package/dist/{compile-CQEFRTmx.js → compile-nZ1xVYTp.js} +0 -0
  446. /package/dist/{constants-BPOqYJAm.js → constants--C2DkLW8.js} +0 -0
  447. /package/dist/{math-BINYmg5z.js → math-Eb0w3LqU.js} +0 -0
  448. /package/dist/{prng-Za0Rmgag.js → prng-B-d9eYX8.js} +0 -0
  449. /package/dist/{slider-DVb4HXU-.js → slider-2A0rPn79.js} +0 -0
  450. /package/dist/{useGlobalDark-C28t0VWJ.js → useGlobalDark-CmjB9E32.js} +0 -0
  451. /package/dist/{useIntersectionPause-Bj4sPkMh.js → useIntersectionPause-Dbozzjgm.js} +0 -0
  452. /package/dist/{useInterval-CvK1mL92.js → useInterval-CNdua40W.js} +0 -0
  453. /package/dist/{useKeyboardShortcuts-BXWXOZ-9.js → useKeyboardShortcuts-BPRp33Im.js} +0 -0
  454. /package/dist/{useLiquidFlex-mZPMiNXh.js → useLiquidFlex-UmA6LMZu.js} +0 -0
  455. /package/dist/{useScrollProgress-D7bYU2RK.js → useScrollProgress-c3yxmH6a.js} +0 -0
  456. /package/dist/{useSortable-DHjtZSEd.js → useSortable-BVqlJRBR.js} +0 -0
  457. /package/dist/{useTextHighlight-CWEi25hf.js → useTextHighlight-NmBM5V_4.js} +0 -0
  458. /package/dist/{vReveal-Czsb7zQC.js → vReveal-D9k0jADx.js} +0 -0
  459. /package/dist/{vSpecular-CQFmLNzA.js → vSpecular-EX7loENl.js} +0 -0
@@ -1,47 +1,32 @@
1
1
  import { t as e } from "./cn-DJXf4yaB.js";
2
- import { o as t, t as n } from "./color-DweYl7pE.js";
3
- import { computed as r, createElementBlock as i, createElementVNode as a, defineComponent as o, normalizeClass as s, normalizeStyle as c, openBlock as l, ref as u, renderSlot as d, unref as f, watch as p } from "vue";
4
- import { interpolateHue as m } from "@mkbabb/value.js";
2
+ import { computed as t, createElementBlock as n, createElementVNode as r, defineComponent as i, normalizeClass as a, normalizeStyle as o, openBlock as s, ref as c, renderSlot as l, unref as u, watch as d } from "vue";
5
3
  //#region src/components/custom/border-progress/constants.ts
6
- var h = [
4
+ var f = [
7
5
  "var(--section-color-0)",
8
6
  "var(--section-color-3)",
9
7
  "var(--section-color-7)",
10
8
  "var(--section-color-12)"
11
- ], g = (e) => e < 0 ? 0 : e > 1 ? 1 : e, _ = (e, t, n) => e + (t - e) * n;
12
- function v(e, t) {
13
- let n = e.length;
14
- if (n === 0) return {
15
- L: .7,
16
- C: 0,
17
- h: 0
18
- };
19
- if (n === 1) return e[0];
20
- let r = g(t) * (n - 1), i = Math.min(n - 2, Math.floor(r)), a = r - i, o = e[i], s = e[i + 1], c = (m((o.h % 360 + 360) % 360 / 360, (s.h % 360 + 360) % 360 / 360, a, "shorter") * 360 % 360 + 360) % 360;
21
- return {
22
- L: _(o.L, s.L, a),
23
- C: _(o.C, s.C, a),
24
- h: c
25
- };
9
+ ], p = (e) => e.some((e) => /var\(/.test(e)), m = /* @__PURE__ */ new Map(), h = (e, t) => `${t}|${e.join("|")}`;
10
+ function g(e) {
11
+ return [...e];
26
12
  }
27
- function y(e, r = 24) {
28
- let i = Math.max(2, Math.round(r));
29
- if (e.some((e) => /var\(/.test(e))) return [...e];
30
- let a = e.map((e) => n(e)), o = [];
31
- for (let e = 0; e < i; e++) {
32
- let n = i === 1 ? 0 : e / (i - 1);
33
- o.push(t(v(a, n)));
34
- }
35
- return o;
13
+ function _(e, t = 24, n) {
14
+ let r = Math.max(2, Math.round(t));
15
+ if (p(e)) return [...e];
16
+ let i = h(e, r);
17
+ return m.get(i) || (n && import("./spectrum-walk-BVzA7Biz.js").then(({ walkConcreteSpectrum: t }) => {
18
+ let a = t(e, r);
19
+ m.set(i, a), n(a);
20
+ }), g(e));
36
21
  }
37
22
  //#endregion
38
23
  //#region src/components/custom/border-progress/BorderProgress.vue?vue&type=script&setup=true&lang.ts
39
- var b = [
24
+ var v = [
40
25
  "data-coverage",
41
26
  "data-milestone",
42
27
  "aria-valuenow",
43
28
  "aria-valuemax"
44
- ], x = { class: "border-progress__content" }, S = /* @__PURE__ */ o({
29
+ ], y = { class: "border-progress__content" }, b = /* @__PURE__ */ i({
45
30
  name: "BorderProgress",
46
31
  __name: "BorderProgress",
47
32
  props: {
@@ -55,52 +40,59 @@ var b = [
55
40
  class: {}
56
41
  },
57
42
  emits: ["milestone"],
58
- setup(t, { emit: n }) {
59
- let o = t, m = n, g = r(() => o.max ?? 1), _ = r(() => {
60
- let e = g.value || 1, t = o.value / e;
43
+ setup(i, { emit: p }) {
44
+ let m = i, h = p, g = t(() => m.max ?? 1), b = t(() => {
45
+ let e = g.value || 1, t = m.value / e;
61
46
  return t < 0 ? 0 : t > 1 ? 1 : t;
62
- }), v = r(() => o.value), S = r(() => y(o.stops ?? h)), C = r(() => {
47
+ }), x = t(() => m.value), S = c([]), C = () => {
48
+ let e = m.stops ?? f;
49
+ S.value = _(e, void 0, (t) => {
50
+ (m.stops ?? f) === e && (S.value = t);
51
+ });
52
+ };
53
+ C(), d(() => m.stops, C);
54
+ let w = t(() => {
63
55
  let e = S.value, t = e.length;
64
56
  return t === 1 ? `${e[0]}, ${e[0]}` : e.map((e, n) => `${e} ${(n / (t - 1) * 100).toFixed(2)}%`).join(", ");
65
- }), w = u(!1), T = u(_.value);
66
- p(_, (e, t) => {
67
- let n = o.milestones;
57
+ }), T = c(!1), E = c(b.value);
58
+ d(b, (e, t) => {
59
+ let n = m.milestones;
68
60
  if (!n || n.length === 0) {
69
- T.value = e;
61
+ E.value = e;
70
62
  return;
71
63
  }
72
64
  let r = g.value || 1;
73
65
  for (let i of n) {
74
66
  let n = i.at / r;
75
- (t < n && e >= n || t > n && e <= n) && (m("milestone", {
67
+ (t < n && e >= n || t > n && e <= n) && (h("milestone", {
76
68
  milestone: i,
77
- value: o.value
78
- }), w.value = !0, requestAnimationFrame(() => {
79
- w.value = !1;
69
+ value: m.value
70
+ }), T.value = !0, requestAnimationFrame(() => {
71
+ T.value = !1;
80
72
  }));
81
73
  }
82
- T.value = e;
74
+ E.value = e;
83
75
  });
84
- let E = r(() => ({
85
- "--border-progress-fill": `${(_.value * 100).toFixed(3)}%`,
86
- "--border-progress-width": `${o.width ?? 12}px`,
87
- "--border-progress-radius": `${o.radius ?? 16}px`,
88
- "--border-progress-spectrum": C.value
76
+ let D = t(() => ({
77
+ "--border-progress-fill": `${(b.value * 100).toFixed(3)}%`,
78
+ "--border-progress-width": `${m.width ?? 12}px`,
79
+ "--border-progress-radius": `${m.radius ?? 16}px`,
80
+ "--border-progress-spectrum": w.value
89
81
  }));
90
- return (t, n) => (l(), i("div", {
91
- class: s(["border-progress", f(e)(o.class)]),
92
- "data-coverage": o.coverage ?? "full-ring",
93
- "data-milestone": w.value ? "" : void 0,
94
- style: c(E.value),
82
+ return (t, i) => (s(), n("div", {
83
+ class: a(["border-progress", u(e)(m.class)]),
84
+ "data-coverage": m.coverage ?? "full-ring",
85
+ "data-milestone": T.value ? "" : void 0,
86
+ style: o(D.value),
95
87
  role: "progressbar",
96
- "aria-valuenow": v.value,
88
+ "aria-valuenow": x.value,
97
89
  "aria-valuemin": "0",
98
90
  "aria-valuemax": g.value
99
- }, [n[0] ||= a("div", {
91
+ }, [i[0] ||= r("div", {
100
92
  class: "border-progress__ring",
101
93
  "aria-hidden": "true"
102
- }, null, -1), a("div", x, [d(t.$slots, "default")])], 14, b));
94
+ }, null, -1), r("div", y, [l(t.$slots, "default")])], 14, v));
103
95
  }
104
96
  });
105
97
  //#endregion
106
- export { S as BorderProgress, v as spectrumAt, y as spectrumStops };
98
+ export { b as BorderProgress, _ as spectrumStops };
@@ -1,7 +1,7 @@
1
1
  import { t as e } from "./cn-DJXf4yaB.js";
2
- import { t } from "./useSpringPress-BsqPr7FJ.js";
3
- import { t as n } from "./useLiquidFlex-mZPMiNXh.js";
4
- import { t as r } from "./vSpecular-CQFmLNzA.js";
2
+ import { t } from "./useSpringPress-B1-Czp-V.js";
3
+ import { t as n } from "./useLiquidFlex-UmA6LMZu.js";
4
+ import { t as r } from "./vSpecular-EX7loENl.js";
5
5
  import { computed as i, createBlock as a, defineComponent as o, mergeProps as s, openBlock as c, renderSlot as l, unref as u, watch as d, withCtx as f, withDirectives as p } from "vue";
6
6
  import { Primitive as m } from "reka-ui";
7
7
  import { cva as h } from "class-variance-authority";
@@ -33,10 +33,7 @@ var g = /* @__PURE__ */ o({
33
33
  })), v = i(() => {
34
34
  if (h.surface === "veil") return "veil-surface";
35
35
  if (h.surface === "opaque") return "glass-opaque";
36
- }), y = t({
37
- response: .25,
38
- dampingFraction: .7
39
- }), b = n({
36
+ }), y = t(), b = n({
40
37
  from: 0,
41
38
  to: 1,
42
39
  axis: "width",
@@ -55,7 +52,10 @@ var g = /* @__PURE__ */ o({
55
52
  "glass",
56
53
  "glass-wash",
57
54
  "primary-audacious",
58
- "gold-audacious"
55
+ "gold-audacious",
56
+ "outline",
57
+ "secondary",
58
+ "accent"
59
59
  ]), C = i(() => S.has(h.variant ?? "default")), w = i(() => ({ ...x.value })), T = i(() => h.liquid ? "glass-lens" : void 0);
60
60
  return (t, n) => p((c(), a(u(m), s({
61
61
  as: o.as,
@@ -94,14 +94,13 @@ var g = /* @__PURE__ */ o({
94
94
  }), _ = h("btn-pill tap-squish focus-ring whitespace-nowrap text-[length:var(--control-text)] font-medium cursor-pointer active:scale-(--scale-press-btn) disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-disabled [&_svg:not([class*=size-])]:size-(--ui-glyph) [&_svg]:shrink-0 [&_svg]:pointer-events-none", {
95
95
  variants: {
96
96
  variant: {
97
- default: "glass-wash btn-glass text-foreground hover:bg-(--glass-bg-resting-tinted) hover:border-(--glass-border-resting) active:bg-(--glass-bg-floating-tinted) active:border-(--glass-border-floating) aria-pressed:bg-[color-mix(in_srgb,var(--foreground)_10%,var(--glass-bg-resting-tinted))]",
98
- solid: "bg-primary text-primary-foreground hover:bg-primary/90 active:bg-primary/80 aria-pressed:bg-primary/85",
99
- "primary-audacious": "glass-wash btn-glass text-foreground hover:bg-(--glass-bg-resting-tinted) hover:border-(--glass-border-resting) active:bg-(--glass-bg-floating-tinted) active:border-(--glass-border-floating) aria-pressed:bg-[color-mix(in_srgb,var(--foreground)_10%,var(--glass-bg-resting-tinted))] hover:scale-(--scale-hover-btn) aria-pressed:scale-(--scale-press-btn)",
97
+ default: "glass-wash btn-glass glass-deep text-foreground hover:bg-(--glass-bg-resting-tinted) hover:border-(--glass-border-resting) active:bg-(--glass-bg-floating-tinted) active:border-(--glass-border-floating) aria-pressed:bg-[color-mix(in_srgb,var(--foreground)_10%,var(--glass-bg-resting-tinted))]",
98
+ "primary-audacious": "glass-wash btn-glass glass-deep text-foreground hover:bg-(--glass-bg-resting-tinted) hover:border-(--glass-border-resting) active:bg-(--glass-bg-floating-tinted) active:border-(--glass-border-floating) aria-pressed:bg-[color-mix(in_srgb,var(--foreground)_10%,var(--glass-bg-resting-tinted))] hover:scale-(--scale-hover-btn) aria-pressed:scale-(--scale-press-btn)",
100
99
  "gold-audacious": "glass-wash btn-glass text-foreground bg-[linear-gradient(135deg,color-mix(in_srgb,var(--color-gold)_10%,transparent),color-mix(in_srgb,var(--color-gold-light)_6%,transparent)_50%,color-mix(in_srgb,var(--color-gold)_10%,transparent))] hover:bg-[linear-gradient(135deg,color-mix(in_srgb,var(--color-gold)_16%,transparent),color-mix(in_srgb,var(--color-gold-light)_10%,transparent)_50%,color-mix(in_srgb,var(--color-gold)_16%,transparent))] hover:scale-(--scale-hover-btn) aria-pressed:scale-(--scale-press-btn)",
101
100
  destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90 active:bg-destructive/80 aria-pressed:bg-destructive/85",
102
- outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground active:bg-accent/80 aria-pressed:bg-accent aria-pressed:text-accent-foreground",
103
- secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80 active:bg-secondary/70 aria-pressed:bg-secondary/60",
104
- accent: "bg-accent text-accent-foreground border border-border/40 hover:bg-accent/80 active:bg-accent/70 aria-pressed:bg-accent/60",
101
+ outline: "glass-wash btn-glass text-foreground border-(--glass-border-floating) hover:bg-(--glass-bg-quiet-tinted) hover:border-(--glass-border-resting) active:bg-(--glass-bg-resting-tinted) active:border-(--glass-border-floating) aria-pressed:bg-(--glass-bg-resting-tinted)",
102
+ secondary: "glass-wash btn-glass text-foreground hover:bg-(--glass-bg-quiet-tinted) hover:border-(--glass-border-resting) active:bg-(--glass-bg-resting-tinted) aria-pressed:bg-(--glass-bg-resting-tinted)",
103
+ accent: "glass-wash btn-glass text-foreground border-(--glass-border-resting) hover:bg-(--glass-bg-resting-tinted) hover:border-(--glass-border-floating) active:bg-(--glass-bg-floating-tinted) aria-pressed:bg-(--glass-bg-resting-tinted)",
105
104
  ghost: "bg-transparent text-foreground/70 hover:bg-foreground/8 hover:text-foreground active:bg-foreground/12 aria-pressed:bg-foreground/10 aria-pressed:text-foreground",
106
105
  glass: "glass-wash btn-glass text-foreground hover:bg-(--glass-bg-resting-tinted) hover:border-(--glass-border-resting) active:bg-(--glass-bg-floating-tinted) active:border-(--glass-border-floating) aria-pressed:bg-[color-mix(in_srgb,var(--foreground)_10%,var(--glass-bg-resting-tinted))]",
107
106
  "glass-wash": "glass-wash btn-glass text-foreground/70 hover:bg-foreground/[0.04] hover:border-(--surface-tint-22) hover:text-foreground active:bg-foreground/[0.08] aria-pressed:bg-foreground/[0.1] aria-pressed:text-foreground",
package/dist/button.js CHANGED
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./button-DYCUa-tH.js";
1
+ import { n as e, t } from "./button-5dY1Dvhd.js";
2
2
  export { e as Button, t as buttonVariants };
package/dist/canvas.js CHANGED
@@ -1,3 +1,2 @@
1
- import { n as e, t } from "./useCanvas2D-B8w_E3Rr.js";
2
- import { t as n } from "./resolveCanvasColor-CUyHr5Uu.js";
3
- export { n as resolveCanvasColor, t as useCanvas2D, e as useCanvasLifecycle };
1
+ import { n as e, r as t, t as n } from "./resolveCanvasColor-yPyIpJt9.js";
2
+ export { n as resolveCanvasColor, e as useCanvas2D, t as useCanvasLifecycle };
package/dist/card.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 "./CardAction-CW7a0m8M.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 "./CardAction-8whJrLWt.js";
2
2
  export { r as Card, c as CardAction, o as CardContent, n as CardDescription, i as CardFooter, t as CardHeader, e as CardTitle, s as ScrollCard, a as ScrollCardHeader };
package/dist/carousel.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { t as e } from "./cn-DJXf4yaB.js";
2
- import { C as t, S as n, _ as r, b as i, v as a, y as o } from "./vendor-CKmzio-i.js";
3
- import { n as s } from "./button-DYCUa-tH.js";
2
+ import { C as t, b as n, v as r, w as i, x as a, y as o } from "./vendor-B2qOlYY3.js";
3
+ import { n as s } from "./button-5dY1Dvhd.js";
4
4
  import { computed as c, createBlock as l, createCommentVNode as u, createElementBlock as d, createElementVNode as f, createVNode as p, defineComponent as m, mergeProps as h, normalizeClass as g, onMounted as _, openBlock as v, ref as y, renderSlot as b, resolveDynamicComponent as x, toDisplayString as S, unref as C, watch as w, withCtx as T } from "vue";
5
5
  import { createInjectionState as E } from "@vueuse/core";
6
6
  import D from "embla-carousel-vue";
@@ -140,17 +140,17 @@ var j = /* @__PURE__ */ m({
140
140
  Array
141
141
  ] }
142
142
  },
143
- setup(t) {
144
- let r = t, { orientation: i, canScrollNext: a, scrollNext: o } = A();
143
+ setup(n) {
144
+ let r = n, { orientation: i, canScrollNext: a, scrollNext: o } = A();
145
145
  return (c, u) => (v(), l(C(s), {
146
146
  "data-slot": "carousel-next",
147
147
  disabled: !C(a),
148
148
  class: g(C(e)("absolute h-(--carousel-nav-size) w-(--carousel-nav-size) rounded-pill", C(i) === "horizontal" ? "top-1/2 -translate-y-1/2 right-[calc(-1*var(--carousel-nav-offset))]" : "left-1/2 -translate-x-1/2 rotate-90 bottom-[calc(-1*var(--carousel-nav-offset))]", r.class)),
149
- variant: t.variant,
150
- size: t.size,
149
+ variant: n.variant,
150
+ size: n.size,
151
151
  onClick: C(o)
152
152
  }, {
153
- default: T(() => [b(c.$slots, "default", {}, () => [p(C(n)), u[0] ||= f("span", { class: "sr-only" }, "Next Slide", -1)])]),
153
+ default: T(() => [b(c.$slots, "default", {}, () => [p(C(t)), u[0] ||= f("span", { class: "sr-only" }, "Next Slide", -1)])]),
154
154
  _: 3
155
155
  }, 8, [
156
156
  "disabled",
@@ -180,7 +180,7 @@ var j = /* @__PURE__ */ m({
180
180
  ] }
181
181
  },
182
182
  setup(t) {
183
- let n = t, { carouselApi: f, canScrollNext: m, canScrollPrev: h, orientation: b, scrollNext: E, scrollPrev: D } = A(), O = y(0), k = y(0);
183
+ let i = t, { carouselApi: f, canScrollNext: m, canScrollPrev: h, orientation: b, scrollNext: E, scrollPrev: D } = A(), O = y(0), k = y(0);
184
184
  function j() {
185
185
  let e = f.value;
186
186
  e && (O.value = e.selectedScrollSnap(), k.value = e.scrollSnapList().length);
@@ -188,10 +188,10 @@ var j = /* @__PURE__ */ m({
188
188
  w(f, (e) => {
189
189
  e && (j(), e.on("select", j), e.on("reInit", j));
190
190
  }, { immediate: !0 }), _(j);
191
- let M = c(() => b === "vertical" ? r : o), N = c(() => b === "vertical" ? i : a);
192
- return (r, i) => (v(), d("div", {
191
+ let M = c(() => b === "vertical" ? r : n), N = c(() => b === "vertical" ? a : o);
192
+ return (n, r) => (v(), d("div", {
193
193
  "data-slot": "carousel-pager",
194
- class: g(C(e)("inline-flex items-center gap-2", C(b) === "vertical" && "flex-col", n.class))
194
+ class: g(C(e)("inline-flex items-center gap-2", C(b) === "vertical" && "flex-col", i.class))
195
195
  }, [
196
196
  p(C(s), {
197
197
  variant: "ghost",
@@ -239,17 +239,17 @@ var j = /* @__PURE__ */ m({
239
239
  Array
240
240
  ] }
241
241
  },
242
- setup(n) {
243
- let r = n, { orientation: i, canScrollPrev: a, scrollPrev: o } = A();
242
+ setup(t) {
243
+ let n = t, { orientation: r, canScrollPrev: a, scrollPrev: o } = A();
244
244
  return (c, u) => (v(), l(C(s), {
245
245
  "data-slot": "carousel-previous",
246
246
  disabled: !C(a),
247
- class: g(C(e)("absolute h-(--carousel-nav-size) w-(--carousel-nav-size) rounded-pill", C(i) === "horizontal" ? "top-1/2 -translate-y-1/2 left-[calc(-1*var(--carousel-nav-offset))]" : "left-1/2 -translate-x-1/2 rotate-90 top-[calc(-1*var(--carousel-nav-offset))]", r.class)),
248
- variant: n.variant,
249
- size: n.size,
247
+ class: g(C(e)("absolute h-(--carousel-nav-size) w-(--carousel-nav-size) rounded-pill", C(r) === "horizontal" ? "top-1/2 -translate-y-1/2 left-[calc(-1*var(--carousel-nav-offset))]" : "left-1/2 -translate-x-1/2 rotate-90 top-[calc(-1*var(--carousel-nav-offset))]", n.class)),
248
+ variant: t.variant,
249
+ size: t.size,
250
250
  onClick: C(o)
251
251
  }, {
252
- default: T(() => [b(c.$slots, "default", {}, () => [p(C(t)), u[0] ||= f("span", { class: "sr-only" }, "Previous Slide", -1)])]),
252
+ default: T(() => [b(c.$slots, "default", {}, () => [p(C(i)), u[0] ||= f("span", { class: "sr-only" }, "Previous Slide", -1)])]),
253
253
  _: 3
254
254
  }, 8, [
255
255
  "disabled",
@@ -290,15 +290,15 @@ var j = /* @__PURE__ */ m({
290
290
  "next",
291
291
  "select"
292
292
  ],
293
- setup(t, { emit: n }) {
294
- let f = t, m = n, h = c(() => f.loop ? f.total > 1 : f.index > 0), _ = c(() => f.loop ? f.total > 1 : f.index < f.total - 1);
293
+ setup(t, { emit: i }) {
294
+ let f = t, m = i, h = c(() => f.loop ? f.total > 1 : f.index > 0), _ = c(() => f.loop ? f.total > 1 : f.index < f.total - 1);
295
295
  function y() {
296
296
  h.value && (f.loop ? m("select", (f.index - 1 + f.total) % f.total) : (m("prev"), m("select", Math.max(0, f.index - 1))));
297
297
  }
298
298
  function w() {
299
299
  _.value && (f.loop ? m("select", (f.index + 1) % f.total) : (m("next"), m("select", Math.min(f.total - 1, f.index + 1))));
300
300
  }
301
- let E = c(() => f.orientation === "vertical" ? r : o), D = c(() => f.orientation === "vertical" ? i : a);
301
+ let E = c(() => f.orientation === "vertical" ? r : n), D = c(() => f.orientation === "vertical" ? a : o);
302
302
  return (n, r) => (v(), d("div", {
303
303
  "data-slot": "glass-carousel-pager",
304
304
  class: g(C(e)("inline-flex items-center gap-2", t.orientation === "vertical" && "flex-col", "max-md:flex-wrap max-md:justify-center max-md:gap-2", f.class))
@@ -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-DvZNQ_HF.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 @@
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
  /**
@@ -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. */
@@ -102,6 +102,18 @@ export interface AuroraRuntimeOptions {
102
102
  export interface AuroraRuntime extends Omit<AuroraInstance, "pause" | "resume"> {
103
103
  pause(reason?: SuspendReason): void;
104
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>;
105
117
  /**
106
118
  * AW.W8.1 — feed a pointer delta into the velocity-reactive flow (a fast flick →
107
119
  * a transient swirl-burst). The PRM early-out lives here: the injection is