@mkbabb/glass-ui 4.0.0 → 4.0.1

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 (394) hide show
  1. package/README.md +3 -1
  2. package/dist/CardAction-CW7a0m8M.js +253 -0
  3. package/dist/{CommandShortcut-DdtWXxOK.js → CommandShortcut-DvZNQ_HF.js} +4 -4
  4. package/dist/ConfiguratorRow-BR4l-ixA.js +143 -0
  5. package/dist/{ContextMenuContent-ON3x7cuk.js → ContextMenuContent-uWnVxDab.js} +1 -1
  6. package/dist/{ContextMenuSubContent-B0Vs6atR.js → ContextMenuSubContent-xol4sD2q.js} +32 -37
  7. package/dist/{DataTable-C464Zbqd.js → DataTable-CuKwF7wr.js} +4 -4
  8. package/dist/{DialogContent-DDE6pQBU.js → DialogContent-DcKK8k9i.js} +5 -5
  9. package/dist/{DialogFooter-8eZbdmPc.js → DialogFooter-BZNX5aVr.js} +3 -3
  10. package/dist/{FadingScroll-DwNnvKMs.js → FadingScroll-DI6hQhT9.js} +1 -1
  11. package/dist/{HoverCardContent-DkMaQzH5.js → HoverCardContent-b2uaAMRR.js} +1 -1
  12. package/dist/{HoverPopover-Dpzwvc4t.js → HoverPopover-CbqbNwgU.js} +2 -2
  13. package/dist/{IconChip-BDw1j5mu.js → IconChip-BTD-nay5.js} +3 -2
  14. package/dist/{IconTooltip-DSjasZIt.js → IconTooltip-Bl8gFZ8d.js} +1 -1
  15. package/dist/{Input-DVG_J0ne.js → Input-h9v5LeXf.js} +1 -1
  16. package/dist/{MetricBadge-BpC0R_Ec.js → MetricBadge-RHdBP72w.js} +1 -1
  17. package/dist/Notification-VUwexFUf.js +43 -0
  18. package/dist/NumberFieldContent-Cq7EzX-U.js +138 -0
  19. package/dist/{PopoverContent-BTorlp--.js → PopoverContent-DL7E6vJP.js} +4 -4
  20. package/dist/{Progress-hAT4gqGH.js → Progress-DctG61iZ.js} +4 -4
  21. package/dist/{ScrollingText-CUVFTWk2.js → ScrollingText-yOpBzFYq.js} +2 -2
  22. package/dist/{SelectScrollDownButton-C1jb3b3K.js → SelectScrollDownButton-CrA8F0iV.js} +18 -19
  23. package/dist/Toaster-Bw4xR8xV.js +274 -0
  24. package/dist/{ToggleGroupItem-Dzk9hWsF.js → ToggleGroupItem-pEM9vIhs.js} +50 -37
  25. package/dist/{TooltipProvider-B3MkB_8P.js → TooltipProvider-rzvnXz60.js} +1 -1
  26. package/dist/animated-digit.js +2 -2
  27. package/dist/api/index.d.ts +8 -3
  28. package/dist/api/types-extra.d.ts +6 -0
  29. package/dist/aurora.js +885 -242
  30. package/dist/badge.js +1 -1
  31. package/dist/border-progress.d.ts +1 -0
  32. package/dist/border-progress.js +106 -0
  33. package/dist/{button-BNDWhAZb.js → button-DYCUa-tH.js} +71 -26
  34. package/dist/button.js +1 -1
  35. package/dist/canvas.js +2 -2
  36. package/dist/card.js +2 -2
  37. package/dist/carousel.js +93 -110
  38. package/dist/collapsible.js +1 -1
  39. package/dist/command.js +1 -1
  40. package/dist/compile-CQEFRTmx.js +19 -0
  41. package/dist/components/custom/aurora/composables/atoms-fields.d.ts +39 -0
  42. package/dist/components/custom/aurora/composables/auroraFallbackGround.d.ts +108 -0
  43. package/dist/components/custom/aurora/composables/runtime.d.ts +19 -0
  44. package/dist/components/custom/aurora/composables/uniformBridge.d.ts +5 -1
  45. package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +51 -0
  46. package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +29 -0
  47. package/dist/components/custom/aurora/constants/budget.d.ts +21 -0
  48. package/dist/components/custom/aurora/constants/presets.d.ts +2 -2
  49. package/dist/components/custom/aurora/constants/renderMode.d.ts +63 -12
  50. package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -0
  51. package/dist/components/custom/aurora/constants/shaders/oil-modes.glsl.d.ts +1 -0
  52. package/dist/components/custom/aurora/constants/shaders/procedural-color.wgsl.d.ts +4 -0
  53. package/dist/components/custom/aurora/index.d.ts +2 -1
  54. package/dist/components/custom/border-progress/BorderProgress.vue.d.ts +46 -0
  55. package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +22 -0
  56. package/dist/components/custom/border-progress/constants.d.ts +59 -0
  57. package/dist/components/custom/border-progress/index.d.ts +4 -0
  58. package/dist/components/custom/concentric/Concentric.vue.d.ts +39 -0
  59. package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +11 -0
  60. package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +13 -0
  61. package/dist/components/custom/concentric/composables/ringField.d.ts +44 -0
  62. package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +13 -0
  63. package/dist/components/custom/concentric/composables/useConcentric.d.ts +35 -0
  64. package/dist/components/custom/concentric/constants.d.ts +43 -0
  65. package/dist/components/custom/concentric/index.d.ts +5 -0
  66. package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +4 -0
  67. package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -0
  68. package/dist/components/custom/dock/DockIconButton.vue.d.ts +13 -4
  69. package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +10 -2
  70. package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +75 -0
  71. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +13 -0
  72. package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +38 -0
  73. package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +41 -0
  74. package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +24 -0
  75. package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +34 -0
  76. package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +18 -0
  77. package/dist/components/custom/dot-flow-field/constants.d.ts +48 -0
  78. package/dist/components/custom/dot-flow-field/index.d.ts +5 -0
  79. package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -0
  80. package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +20 -0
  81. package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +1 -0
  82. package/dist/components/custom/easing/EasingConfigurator.vue.d.ts +33 -0
  83. package/dist/components/custom/easing/EasingPicker.vue.d.ts +49 -0
  84. package/dist/components/custom/easing/composables/useEasingPicker.d.ts +75 -0
  85. package/dist/components/custom/easing/constants.d.ts +28 -0
  86. package/dist/components/custom/easing/index.d.ts +3 -0
  87. package/dist/components/custom/fourier-field/FourierField.vue.d.ts +12 -2
  88. package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +39 -0
  89. package/dist/components/custom/fourier-field/constants.d.ts +7 -0
  90. package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +1 -1
  91. package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +4 -2
  92. package/dist/components/custom/goo-blob/composables/uniformBridgeWGPU.d.ts +24 -0
  93. package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +18 -11
  94. package/dist/components/custom/goo-blob/composables/wgpuSetup.d.ts +23 -0
  95. package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -0
  96. package/dist/components/custom/handmark/HandMark.vue.d.ts +1 -1
  97. package/dist/components/custom/icon-chip/types.d.ts +11 -1
  98. package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +3 -1
  99. package/dist/components/custom/metric-stack/MetricStack.vue.d.ts +1 -1
  100. package/dist/components/custom/spa-view/SpaView.vue.d.ts +50 -0
  101. package/dist/components/custom/spa-view/index.d.ts +2 -0
  102. package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +10 -0
  103. package/dist/components/custom/tabs/composables/useTabDragMorph.d.ts +42 -0
  104. package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +1 -1
  105. package/dist/components/ui/_shared/menuItemVariants.d.ts +1 -1
  106. package/dist/components/ui/badge/index.d.ts +1 -1
  107. package/dist/components/ui/button/Button.vue.d.ts +5 -2
  108. package/dist/components/ui/button/index.d.ts +2 -2
  109. package/dist/components/ui/card/Card.vue.d.ts +34 -4
  110. package/dist/components/ui/card/CardHeader.vue.d.ts +42 -16
  111. package/dist/components/ui/card/ScrollCard.vue.d.ts +33 -0
  112. package/dist/components/ui/card/ScrollCardHeader.vue.d.ts +17 -0
  113. package/dist/components/ui/card/index.d.ts +2 -0
  114. package/dist/components/ui/carousel/CarouselNext.vue.d.ts +2 -2
  115. package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +2 -2
  116. package/dist/components/ui/carousel/GlassCarouselPager.vue.d.ts +2 -2
  117. package/dist/components/ui/command/Command.vue.d.ts +1 -1
  118. package/dist/components/ui/drawer/Drawer.vue.d.ts +46 -33
  119. package/dist/components/ui/drawer/DrawerContent.vue.d.ts +7 -8
  120. package/dist/components/ui/drawer/DrawerDescription.vue.d.ts +2 -2
  121. package/dist/components/ui/drawer/DrawerOverlay.vue.d.ts +1 -1
  122. package/dist/components/ui/drawer/DrawerTitle.vue.d.ts +2 -2
  123. package/dist/components/ui/drawer/composables/drawerSnapContext.d.ts +26 -0
  124. package/dist/components/ui/drawer/composables/useDrawerSnap.d.ts +17 -0
  125. package/dist/components/ui/drawer/constants.d.ts +45 -0
  126. package/dist/components/ui/drawer/index.d.ts +23 -15
  127. package/dist/components/ui/focus-scope/FocusScope.vue.d.ts +20 -0
  128. package/dist/components/ui/focus-scope/index.d.ts +2 -0
  129. package/dist/components/ui/index.d.ts +1 -0
  130. package/dist/components/ui/progress/ProgressDefault.vue.d.ts +3 -2
  131. package/dist/components/ui/select/SelectContent.vue.d.ts +1 -1
  132. package/dist/components/ui/sheet/index.d.ts +1 -1
  133. package/dist/components/ui/tags-input/TagsInput.vue.d.ts +2 -2
  134. package/dist/components/ui/toast/Toast.vue.d.ts +5 -2
  135. package/dist/components/ui/toast/use-toast.d.ts +14 -0
  136. package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
  137. package/dist/composables/glass/canvas2d/useCanvas2D.d.ts +13 -6
  138. package/dist/composables/glass/index.d.ts +5 -2
  139. package/dist/composables/glass/useSpecularPointer.d.ts +33 -0
  140. package/dist/composables/glass/useSpecularTracking.d.ts +20 -0
  141. package/dist/composables/glass/vSpecular.d.ts +2 -0
  142. package/dist/composables/glass/webgl/shaders/flow.glsl.d.ts +1 -0
  143. package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +16 -0
  144. package/dist/composables/glass/webgpu/index.d.ts +2 -0
  145. package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +54 -0
  146. package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +84 -0
  147. package/dist/composables/motion/core/index.d.ts +1 -0
  148. package/dist/composables/motion/index.d.ts +4 -0
  149. package/dist/composables/motion/useDockCtaReceive.d.ts +59 -0
  150. package/dist/composables/motion/useDragMorph.d.ts +77 -0
  151. package/dist/composables/motion/useLiquidFlex.d.ts +11 -0
  152. package/dist/composables/motion/useLiquidPress.d.ts +71 -0
  153. package/dist/composables/motion/useLiquidReveal.d.ts +51 -0
  154. package/dist/composables/motion/useNumericTransition.d.ts +3 -3
  155. package/dist/composables/motion/usePointerVelocityField.d.ts +98 -0
  156. package/dist/concentric.d.ts +1 -0
  157. package/dist/concentric.js +562 -0
  158. package/dist/configurator.js +3 -2
  159. package/dist/confirm-dialog.js +22 -24
  160. package/dist/constellation.js +11 -11
  161. package/dist/context-menu.js +3 -3
  162. package/dist/controls.js +1 -1
  163. package/dist/createCanvasLifecycle-CHD5XrDW.js +82 -0
  164. package/dist/data-table.js +1 -1
  165. package/dist/dialog.js +2 -2
  166. package/dist/dock.js +564 -457
  167. package/dist/{dockContext-Bu1Avy-a.js → dockContext-BNfyPLe9.js} +1 -1
  168. package/dist/dom.js +5 -5
  169. package/dist/dot-flow-field.d.ts +1 -0
  170. package/dist/dot-flow-field.js +604 -0
  171. package/dist/drawer.d.ts +1 -0
  172. package/dist/drawer.js +380 -0
  173. package/dist/{dropdown-menu-BJ7E9js_.js → dropdown-menu-CofSZuk8.js} +14 -15
  174. package/dist/dropdown-menu.js +1 -1
  175. package/dist/easing.d.ts +1 -0
  176. package/dist/easing.js +463 -0
  177. package/dist/expandable-container.js +7 -4
  178. package/dist/fading-scroll.js +1 -1
  179. package/dist/focus-scope.d.ts +1 -0
  180. package/dist/focus-scope.js +23 -0
  181. package/dist/forms.js +7 -7
  182. package/dist/fourier-field.js +128 -116
  183. package/dist/fourier-math.js +1 -1
  184. package/dist/glass-panel.js +2 -2
  185. package/dist/glass-ui.css +1 -1
  186. package/dist/glass-ui.js +149 -341
  187. package/dist/goo-blob.js +830 -224
  188. package/dist/handmark.js +2 -2
  189. package/dist/header-ribbon.js +1 -1
  190. package/dist/hover-card.js +1 -1
  191. package/dist/hover-popover.js +1 -1
  192. package/dist/icon-chip.js +1 -1
  193. package/dist/icon-tooltip.js +1 -1
  194. package/dist/index.d.ts +1 -1
  195. package/dist/instrument-chassis.js +1 -1
  196. package/dist/label.js +1 -1
  197. package/dist/labeled-field.js +6 -6
  198. package/dist/metric-badge.js +1 -1
  199. package/dist/metric-cell.js +1 -1
  200. package/dist/metric-stack.js +4 -8
  201. package/dist/motion-core.js +36 -36
  202. package/dist/motion-curves.js +1 -1
  203. package/dist/motion.js +157 -55
  204. package/dist/notification.js +1 -1
  205. package/dist/number-field.js +1 -1
  206. package/dist/pager-dots.js +1 -1
  207. package/dist/paper-backdrop.js +1 -1
  208. package/dist/popover.js +1 -1
  209. package/dist/{compile-EXXzEr1q.js → procedural-color.glsl-CIFsJhwI.js} +1 -155
  210. package/dist/procedural-color.wgsl-CToRHugY.js +224 -0
  211. package/dist/progress.js +1 -1
  212. package/dist/pulse.js +1 -1
  213. package/dist/reactive.js +2 -2
  214. package/dist/scrolling-text.js +1 -1
  215. package/dist/search.js +9 -11
  216. package/dist/select.js +3 -3
  217. package/dist/separator.js +1 -1
  218. package/dist/{sheet-CquRYOAw.js → sheet-tZMg0E0w.js} +5 -5
  219. package/dist/sheet.js +1 -1
  220. package/dist/{slider-DQ95MET2.js → slider-DVb4HXU-.js} +3 -3
  221. package/dist/slider.js +1 -1
  222. package/dist/sortable-list.js +3 -3
  223. package/dist/spa-view.d.ts +1 -0
  224. package/dist/spa-view.js +46 -0
  225. package/dist/styles/animations.css +33 -9
  226. package/dist/styles/border-progress.css +109 -0
  227. package/dist/styles/cards.css +76 -0
  228. package/dist/styles/components.css +1 -1
  229. package/dist/styles/critical-partition.mjs +140 -0
  230. package/dist/styles/critical.css +12 -0
  231. package/dist/styles/deferred.css +31 -0
  232. package/dist/styles/dock/density.css +45 -0
  233. package/dist/styles/dock/layers.css +54 -30
  234. package/dist/styles/dock/morph.css +124 -7
  235. package/dist/styles/dock/overflow.css +16 -2
  236. package/dist/styles/dock/shell.css +54 -16
  237. package/dist/styles/dock.css +32 -0
  238. package/dist/styles/drawer.css +81 -35
  239. package/dist/styles/glass/deep.css +44 -0
  240. package/dist/styles/glass/ladder.css +87 -31
  241. package/dist/styles/glass/material.css +78 -15
  242. package/dist/styles/glass/reveal.css +136 -0
  243. package/dist/styles/glass/rim.css +100 -0
  244. package/dist/styles/glass/surfaces.css +101 -3
  245. package/dist/styles/glass-refract.css +96 -44
  246. package/dist/styles/glass-specular-track.css +7 -0
  247. package/dist/styles/glass.css +3 -0
  248. package/dist/styles/hover-popover.css +7 -6
  249. package/dist/styles/icon-chip.css +77 -15
  250. package/dist/styles/index.css +21 -9
  251. package/dist/styles/instrument-chassis.css +66 -3
  252. package/dist/styles/scroll-choreography.css +300 -0
  253. package/dist/styles/segmented-tabs.css +31 -0
  254. package/dist/styles/theme/bridges.css +11 -0
  255. package/dist/styles/theme/literals.css +11 -2
  256. package/dist/styles/theme/radius.css +6 -1
  257. package/dist/styles/tokens/dark-arm.css +98 -26
  258. package/dist/styles/tokens/glass-deep.css +75 -0
  259. package/dist/styles/tokens/glass-fx.css +333 -0
  260. package/dist/styles/tokens/glass.css +39 -319
  261. package/dist/styles/tokens/light-dark.css +15 -2
  262. package/dist/styles/tokens/offsets.css +116 -0
  263. package/dist/styles/tokens/on-glass-fg.css +39 -0
  264. package/dist/styles/tokens/property-regs.css +127 -0
  265. package/dist/styles/tokens/scale-paper.css +117 -89
  266. package/dist/styles/tokens/scheme-motion.css +70 -32
  267. package/dist/styles/tokens/scroll-tokens.css +123 -0
  268. package/dist/styles/tokens/{offsets-sizing.css → sizing.css} +37 -100
  269. package/dist/styles/tokens.css +9 -3
  270. package/dist/styles/typography/semantic.css +8 -8
  271. package/dist/styles/typography/utilities.css +22 -7
  272. package/dist/styles/utilities/animate.css +27 -24
  273. package/dist/styles/utilities/base-misc.css +255 -0
  274. package/dist/styles/utilities/base.css +47 -261
  275. package/dist/styles/utilities/btn.css +3 -1
  276. package/dist/styles/utilities/metal.css +189 -0
  277. package/dist/styles/utilities.css +14 -7
  278. package/dist/switch.js +1 -1
  279. package/dist/tabs.js +220 -107
  280. package/dist/timeline.js +2 -2
  281. package/dist/toast.js +1 -1
  282. package/dist/toggle-group.js +1 -1
  283. package/dist/tooltip.js +1 -1
  284. package/dist/typewriter.js +1 -1
  285. package/dist/useCanvas2D-B8w_E3Rr.js +83 -0
  286. package/dist/useConfiguratorState-DNlOh6c8.js +161 -0
  287. package/dist/useDragMorph-DgxnsVJz.js +102 -0
  288. package/dist/useLiquidPress-kfb4KX79.js +39 -0
  289. package/dist/usePointerVelocityField-JbRd5CrM.js +137 -0
  290. package/dist/useSpring-C0jyvEJB.js +40 -0
  291. package/dist/useSpringMount-q1amq1SJ.js +71 -0
  292. package/dist/useSpringPress-BsqPr7FJ.js +34 -0
  293. package/dist/{useTouchGate-28Tk2-t2.js → useTouchGate-CBZTD4SD.js} +1 -1
  294. package/dist/vSpecular-CQFmLNzA.js +68 -0
  295. package/dist/vendor-CKmzio-i.js +226 -0
  296. package/dist/watercolor-dot.js +2 -2
  297. package/package.json +126 -22
  298. package/src/styles/animations.css +33 -9
  299. package/src/styles/border-progress.css +109 -0
  300. package/src/styles/cards.css +76 -0
  301. package/src/styles/critical-partition.mjs +140 -0
  302. package/src/styles/dock/density.css +45 -0
  303. package/src/styles/dock/layers.css +54 -30
  304. package/src/styles/dock/morph.css +124 -7
  305. package/src/styles/dock/overflow.css +16 -2
  306. package/src/styles/dock/shell.css +54 -16
  307. package/src/styles/dock.css +32 -0
  308. package/src/styles/drawer.css +81 -35
  309. package/src/styles/glass/deep.css +44 -0
  310. package/src/styles/glass/ladder.css +87 -31
  311. package/src/styles/glass/material.css +78 -15
  312. package/src/styles/glass/reveal.css +136 -0
  313. package/src/styles/glass/rim.css +100 -0
  314. package/src/styles/glass/surfaces.css +101 -3
  315. package/src/styles/glass-refract.css +96 -44
  316. package/src/styles/glass-specular-track.css +7 -0
  317. package/src/styles/glass.css +3 -0
  318. package/src/styles/hover-popover.css +7 -6
  319. package/src/styles/icon-chip.css +77 -15
  320. package/src/styles/index.css +12 -0
  321. package/src/styles/instrument-chassis.css +66 -3
  322. package/src/styles/scroll-choreography.css +300 -0
  323. package/src/styles/segmented-tabs.css +31 -0
  324. package/src/styles/theme/bridges.css +11 -0
  325. package/src/styles/theme/literals.css +11 -2
  326. package/src/styles/theme/radius.css +6 -1
  327. package/src/styles/tokens/dark-arm.css +98 -26
  328. package/src/styles/tokens/glass-deep.css +75 -0
  329. package/src/styles/tokens/glass-fx.css +333 -0
  330. package/src/styles/tokens/glass.css +39 -319
  331. package/src/styles/tokens/light-dark.css +15 -2
  332. package/src/styles/tokens/offsets.css +116 -0
  333. package/src/styles/tokens/on-glass-fg.css +39 -0
  334. package/src/styles/tokens/property-regs.css +127 -0
  335. package/src/styles/tokens/scale-paper.css +117 -89
  336. package/src/styles/tokens/scheme-motion.css +70 -32
  337. package/src/styles/tokens/scroll-tokens.css +123 -0
  338. package/src/styles/tokens/{offsets-sizing.css → sizing.css} +37 -100
  339. package/src/styles/tokens.css +9 -3
  340. package/src/styles/typography/semantic.css +8 -8
  341. package/src/styles/typography/utilities.css +22 -7
  342. package/src/styles/utilities/animate.css +27 -24
  343. package/src/styles/utilities/base-misc.css +255 -0
  344. package/src/styles/utilities/base.css +47 -261
  345. package/src/styles/utilities/btn.css +3 -1
  346. package/src/styles/utilities/metal.css +189 -0
  347. package/src/styles/utilities.css +14 -7
  348. package/dist/CardAction-XH4YBVEK.js +0 -158
  349. package/dist/Notification-DKjKsQq8.js +0 -100
  350. package/dist/NumberFieldContent-1VtwDSgf.js +0 -145
  351. package/dist/Toaster-Bm_HQSpc.js +0 -263
  352. package/dist/check-njhk-vfu.js +0 -7
  353. package/dist/chevron-down-DKkxb4VV.js +0 -7
  354. package/dist/chevron-right-CPXbqQQz.js +0 -7
  355. package/dist/chevron-up-n_24SqI-.js +0 -7
  356. package/dist/createLucideIcon-DydS2qgk.js +0 -43
  357. package/dist/minimize-2-BV31Ob_h.js +0 -38
  358. package/dist/search-BSGrf2Sk.js +0 -12
  359. package/dist/useCanvas2D-ClrQuZtp.js +0 -96
  360. package/dist/useConfiguratorState-kiIlun8I.js +0 -303
  361. package/dist/useSpecularTracking-Bo5su68i.js +0 -32
  362. package/dist/useSpringMount-CvopqiFr.js +0 -108
  363. package/dist/useViewTransition-COsPjQVZ.js +0 -47
  364. package/dist/x-BUwTKe50.js +0 -10
  365. /package/dist/{CollapsibleContent-C_s6fG7r.js → CollapsibleContent-68dEXIAl.js} +0 -0
  366. /package/dist/{InstrumentChassis-UUJX0-mW.js → InstrumentChassis-Bx0F_q5g.js} +0 -0
  367. /package/dist/{Label-Ck9SWEKM.js → Label-C2ejNWeC.js} +0 -0
  368. /package/dist/{ModalOverlay-CkPRRgl_.js → ModalOverlay-D1VrWyoi.js} +0 -0
  369. /package/dist/{PaperBackdrop-nBKe0vkB.js → PaperBackdrop-Vf3tlpvd.js} +0 -0
  370. /package/dist/{SelectGroup-Dcczq44n.js → SelectGroup-DwwjicPY.js} +0 -0
  371. /package/dist/{SelectSeparator-DK2y1Bun.js → SelectSeparator-DXswVdRz.js} +0 -0
  372. /package/dist/{Separator-BArl4OaB.js → Separator-pKF0oA4M.js} +0 -0
  373. /package/dist/{Switch-Dr--uLGH.js → Switch-CwYNf8bo.js} +0 -0
  374. /package/dist/{_plugin-vue_export-helper-CBt_VvXa.js → _plugin-vue_export-helper-C1je1s0u.js} +0 -0
  375. /package/dist/{badge-UILT_3pZ.js → badge-D9XWW4GT.js} +0 -0
  376. /package/dist/{createContext-B2RaZ-b8.js → createContext-CpBNTRMI.js} +0 -0
  377. /package/dist/{math-DeuJwLFx.js → math-BINYmg5z.js} +0 -0
  378. /package/dist/{menuItemVariants-DWRQXBxJ.js → menuItemVariants-D8VNHq22.js} +0 -0
  379. /package/dist/{prng-Cg22zv8g.js → prng-Za0Rmgag.js} +0 -0
  380. /package/dist/{resolveCanvasColor-BBiYfp8g.js → resolveCanvasColor-CUyHr5Uu.js} +0 -0
  381. /package/dist/{springPresets-WXaLbu8u.js → springPresets-CFQGQfdl.js} +0 -0
  382. /package/dist/{useAnimatedNumber-C_3wZLx4.js → useAnimatedNumber-BfUq2bUM.js} +0 -0
  383. /package/dist/{useInterval-CNdua40W.js → useInterval-CvK1mL92.js} +0 -0
  384. /package/dist/{useLiquidFlex-C12hXwOZ.js → useLiquidFlex-mZPMiNXh.js} +0 -0
  385. /package/dist/{useRAFLoop-CdwJ7284.js → useRAFLoop-UYa4zoiN.js} +0 -0
  386. /package/dist/{useResizeObserver-V6nq5gJb.js → useResizeObserver-Bpoi7tRE.js} +0 -0
  387. /package/dist/{useResolveTokenColor-NUG2zYAW.js → useResolveTokenColor-vAylyR0x.js} +0 -0
  388. /package/dist/{useSortable-BVqlJRBR.js → useSortable-DHjtZSEd.js} +0 -0
  389. /package/dist/{useSurfaceAxis-CMnF2zHb.js → useSurfaceAxis-g0NloYEF.js} +0 -0
  390. /package/dist/{useTextHighlight-NmBM5V_4.js → useTextHighlight-CWEi25hf.js} +0 -0
  391. /package/dist/{useTimer-B_PAasDL.js → useTimer-BHJOKr35.js} +0 -0
  392. /package/dist/{useUserInvalidAria-CDfJuakL.js → useUserInvalidAria-y5namzeE.js} +0 -0
  393. /package/dist/{useViewportReady-CvBcCYDf.js → useViewportReady-anbac3m6.js} +0 -0
  394. /package/dist/{vReveal-D9k0jADx.js → vReveal-Czsb7zQC.js} +0 -0
package/dist/carousel.js CHANGED
@@ -1,29 +1,12 @@
1
1
  import { t as e } from "./cn-DJXf4yaB.js";
2
- import { t } from "./createLucideIcon-DydS2qgk.js";
3
- import { t as n } from "./chevron-down-DKkxb4VV.js";
4
- import { t as r } from "./chevron-right-CPXbqQQz.js";
5
- import { t as i } from "./chevron-up-n_24SqI-.js";
6
- import { n as a } from "./button-BNDWhAZb.js";
7
- import { computed as o, createBlock as s, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createVNode as d, defineComponent as f, mergeProps as p, normalizeClass as m, onMounted as h, openBlock as g, ref as _, renderSlot as v, resolveDynamicComponent as y, toDisplayString as b, unref as x, watch as S, withCtx as C } from "vue";
8
- import { createInjectionState as w } from "@vueuse/core";
9
- import T from "embla-carousel-vue";
10
- var E = t("arrow-left", [["path", {
11
- d: "m12 19-7-7 7-7",
12
- key: "1l729n"
13
- }], ["path", {
14
- d: "M19 12H5",
15
- key: "x3x0zl"
16
- }]]), D = t("arrow-right", [["path", {
17
- d: "M5 12h14",
18
- key: "1ays0h"
19
- }], ["path", {
20
- d: "m12 5 7 7-7 7",
21
- key: "xquz4c"
22
- }]]), O = t("chevron-left", [["path", {
23
- d: "m15 18-6-6 6-6",
24
- key: "1wnfg3"
25
- }]]), [k, A] = w(({ opts: e, orientation: t, plugins: n }, r) => {
26
- let [i, a] = T({
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";
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
+ import { createInjectionState as E } from "@vueuse/core";
6
+ import D from "embla-carousel-vue";
7
+ //#region src/components/ui/carousel/useCarousel.ts
8
+ var [O, k] = E(({ opts: e, orientation: t, plugins: n }, r) => {
9
+ let [i, a] = D({
27
10
  ...e,
28
11
  axis: t === "horizontal" ? "x" : "y"
29
12
  }, n);
@@ -33,11 +16,11 @@ var E = t("arrow-left", [["path", {
33
16
  function s() {
34
17
  a.value?.scrollNext();
35
18
  }
36
- let c = _(!1), l = _(!1);
19
+ let c = y(!1), l = y(!1);
37
20
  function u(e) {
38
21
  c.value = e?.canScrollNext() || !1, l.value = e?.canScrollPrev() || !1;
39
22
  }
40
- return h(() => {
23
+ return _(() => {
41
24
  a.value && (a.value?.on("init", u), a.value?.on("reInit", u), a.value?.on("select", u), r("init-api", a.value));
42
25
  }), {
43
26
  carouselRef: i,
@@ -49,14 +32,14 @@ var E = t("arrow-left", [["path", {
49
32
  orientation: t
50
33
  };
51
34
  });
52
- function j() {
53
- let e = A();
35
+ function A() {
36
+ let e = k();
54
37
  if (!e) throw Error("useCarousel must be used within a <Carousel />");
55
38
  return e;
56
39
  }
57
40
  //#endregion
58
41
  //#region src/components/ui/carousel/Carousel.vue
59
- var M = /* @__PURE__ */ f({
42
+ var j = /* @__PURE__ */ m({
60
43
  __name: "Carousel",
61
44
  props: {
62
45
  opts: {},
@@ -72,14 +55,14 @@ var M = /* @__PURE__ */ f({
72
55
  },
73
56
  emits: ["init-api"],
74
57
  setup(t, { expose: n, emit: r }) {
75
- let i = t, { canScrollNext: a, canScrollPrev: o, carouselApi: s, carouselRef: c, orientation: u, scrollNext: d, scrollPrev: f } = k(i, r);
58
+ let i = t, { canScrollNext: a, canScrollPrev: o, carouselApi: s, carouselRef: c, orientation: l, scrollNext: u, scrollPrev: f } = O(i, r);
76
59
  n({
77
60
  canScrollNext: a,
78
61
  canScrollPrev: o,
79
62
  carouselApi: s,
80
63
  carouselRef: c,
81
- orientation: u,
82
- scrollNext: d,
64
+ orientation: l,
65
+ scrollNext: u,
83
66
  scrollPrev: f
84
67
  });
85
68
  function p(e) {
@@ -88,26 +71,26 @@ var M = /* @__PURE__ */ f({
88
71
  e.preventDefault(), f();
89
72
  return;
90
73
  }
91
- e.key === n && (e.preventDefault(), d());
74
+ e.key === n && (e.preventDefault(), u());
92
75
  }
93
- return (t, n) => (g(), l("div", {
76
+ return (t, n) => (v(), d("div", {
94
77
  "data-slot": "carousel",
95
- class: m(x(e)("relative", i.class)),
78
+ class: g(C(e)("relative", i.class)),
96
79
  role: "region",
97
80
  "aria-roledescription": "carousel",
98
81
  tabindex: "0",
99
82
  onKeydown: p
100
- }, [v(t.$slots, "default", {
101
- canScrollNext: x(a),
102
- canScrollPrev: x(o),
103
- carouselApi: x(s),
104
- carouselRef: x(c),
105
- orientation: x(u),
106
- scrollNext: x(d),
107
- scrollPrev: x(f)
83
+ }, [b(t.$slots, "default", {
84
+ canScrollNext: C(a),
85
+ canScrollPrev: C(o),
86
+ carouselApi: C(s),
87
+ carouselRef: C(c),
88
+ orientation: C(l),
89
+ scrollNext: C(u),
90
+ scrollPrev: C(f)
108
91
  })], 34));
109
92
  }
110
- }), N = /* @__PURE__ */ f({
93
+ }), M = /* @__PURE__ */ m({
111
94
  inheritAttrs: !1,
112
95
  __name: "CarouselContent",
113
96
  props: { class: { type: [
@@ -118,15 +101,15 @@ var M = /* @__PURE__ */ f({
118
101
  Array
119
102
  ] } },
120
103
  setup(t, { expose: n }) {
121
- let r = t, { carouselRef: i, orientation: a } = j();
122
- return n({ carouselRef: i }), (t, n) => (g(), l("div", {
104
+ let r = t, { carouselRef: i, orientation: a } = A();
105
+ return n({ carouselRef: i }), (t, n) => (v(), d("div", {
123
106
  ref_key: "carouselRef",
124
107
  ref: i,
125
108
  "data-slot": "carousel-content",
126
109
  class: "overflow-hidden"
127
- }, [u("div", p({ class: x(e)("flex", x(a) === "horizontal" ? "-ml-4" : "-mt-4 flex-col", r.class) }, t.$attrs), [v(t.$slots, "default")], 16)], 512));
110
+ }, [f("div", h({ class: C(e)("flex", C(a) === "horizontal" ? "-ml-4" : "-mt-4 flex-col", r.class) }, t.$attrs), [b(t.$slots, "default")], 16)], 512));
128
111
  }
129
- }), P = /* @__PURE__ */ f({
112
+ }), N = /* @__PURE__ */ m({
130
113
  __name: "CarouselItem",
131
114
  props: { class: { type: [
132
115
  Boolean,
@@ -136,15 +119,15 @@ var M = /* @__PURE__ */ f({
136
119
  Array
137
120
  ] } },
138
121
  setup(t) {
139
- let n = t, { orientation: r } = j();
140
- return (t, i) => (g(), l("div", {
122
+ let n = t, { orientation: r } = A();
123
+ return (t, i) => (v(), d("div", {
141
124
  "data-slot": "carousel-item",
142
125
  role: "group",
143
126
  "aria-roledescription": "slide",
144
- class: m(x(e)("min-w-0 shrink-0 grow-0 basis-full", x(r) === "horizontal" ? "pl-4" : "pt-4", n.class))
145
- }, [v(t.$slots, "default")], 2));
127
+ class: g(C(e)("min-w-0 shrink-0 grow-0 basis-full", C(r) === "horizontal" ? "pl-4" : "pt-4", n.class))
128
+ }, [b(t.$slots, "default")], 2));
146
129
  }
147
- }), F = /* @__PURE__ */ f({
130
+ }), P = /* @__PURE__ */ m({
148
131
  __name: "CarouselNext",
149
132
  props: {
150
133
  variant: { default: "outline" },
@@ -158,16 +141,16 @@ var M = /* @__PURE__ */ f({
158
141
  ] }
159
142
  },
160
143
  setup(t) {
161
- let n = t, { orientation: r, canScrollNext: i, scrollNext: o } = j();
162
- return (c, l) => (g(), s(x(a), {
144
+ let r = t, { orientation: i, canScrollNext: a, scrollNext: o } = A();
145
+ return (c, u) => (v(), l(C(s), {
163
146
  "data-slot": "carousel-next",
164
- disabled: !x(i),
165
- class: m(x(e)("absolute h-(--carousel-nav-size) w-(--carousel-nav-size) rounded-pill", x(r) === "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))]", n.class)),
147
+ disabled: !C(a),
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)),
166
149
  variant: t.variant,
167
150
  size: t.size,
168
- onClick: x(o)
151
+ onClick: C(o)
169
152
  }, {
170
- default: C(() => [v(c.$slots, "default", {}, () => [d(x(D)), l[0] ||= u("span", { class: "sr-only" }, "Next Slide", -1)])]),
153
+ default: T(() => [b(c.$slots, "default", {}, () => [p(C(n)), u[0] ||= f("span", { class: "sr-only" }, "Next Slide", -1)])]),
171
154
  _: 3
172
155
  }, 8, [
173
156
  "disabled",
@@ -177,11 +160,11 @@ var M = /* @__PURE__ */ f({
177
160
  "onClick"
178
161
  ]));
179
162
  }
180
- }), I = {
163
+ }), F = {
181
164
  key: 0,
182
165
  "data-slot": "carousel-pager-counter",
183
166
  class: "glass-pager-ring text-mono-caption tabular-nums"
184
- }, L = /* @__PURE__ */ f({
167
+ }, I = /* @__PURE__ */ m({
185
168
  __name: "CarouselPager",
186
169
  props: {
187
170
  showCounter: {
@@ -197,44 +180,44 @@ var M = /* @__PURE__ */ f({
197
180
  ] }
198
181
  },
199
182
  setup(t) {
200
- let u = t, { carouselApi: f, canScrollNext: p, canScrollPrev: v, orientation: w, scrollNext: T, scrollPrev: E } = j(), D = _(0), k = _(0);
201
- function A() {
183
+ let n = t, { carouselApi: f, canScrollNext: m, canScrollPrev: h, orientation: b, scrollNext: E, scrollPrev: D } = A(), O = y(0), k = y(0);
184
+ function j() {
202
185
  let e = f.value;
203
- e && (D.value = e.selectedScrollSnap(), k.value = e.scrollSnapList().length);
186
+ e && (O.value = e.selectedScrollSnap(), k.value = e.scrollSnapList().length);
204
187
  }
205
- S(f, (e) => {
206
- e && (A(), e.on("select", A), e.on("reInit", A));
207
- }, { immediate: !0 }), h(A);
208
- let M = o(() => w === "vertical" ? i : O), N = o(() => w === "vertical" ? n : r);
209
- return (n, r) => (g(), l("div", {
188
+ w(f, (e) => {
189
+ e && (j(), e.on("select", j), e.on("reInit", j));
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", {
210
193
  "data-slot": "carousel-pager",
211
- class: m(x(e)("inline-flex items-center gap-2", x(w) === "vertical" && "flex-col", u.class))
194
+ class: g(C(e)("inline-flex items-center gap-2", C(b) === "vertical" && "flex-col", n.class))
212
195
  }, [
213
- d(x(a), {
196
+ p(C(s), {
214
197
  variant: "ghost",
215
198
  size: "icon",
216
- disabled: !x(v),
217
- "aria-label": x(w) === "vertical" ? "Previous slide (up)" : "Previous slide",
199
+ disabled: !C(h),
200
+ "aria-label": C(b) === "vertical" ? "Previous slide (up)" : "Previous slide",
218
201
  "data-slot": "carousel-pager-prev",
219
- onClick: x(E)
202
+ onClick: C(D)
220
203
  }, {
221
- default: C(() => [(g(), s(y(M.value), { class: "size-4" }))]),
204
+ default: T(() => [(v(), l(x(M.value), { class: "size-4" }))]),
222
205
  _: 1
223
206
  }, 8, [
224
207
  "disabled",
225
208
  "aria-label",
226
209
  "onClick"
227
210
  ]),
228
- t.showCounter && k.value > 0 ? (g(), l("span", I, b(D.value + 1) + " / " + b(k.value), 1)) : c("", !0),
229
- d(x(a), {
211
+ t.showCounter && k.value > 0 ? (v(), d("span", F, S(O.value + 1) + " / " + S(k.value), 1)) : u("", !0),
212
+ p(C(s), {
230
213
  variant: "ghost",
231
214
  size: "icon",
232
- disabled: !x(p),
233
- "aria-label": x(w) === "vertical" ? "Next slide (down)" : "Next slide",
215
+ disabled: !C(m),
216
+ "aria-label": C(b) === "vertical" ? "Next slide (down)" : "Next slide",
234
217
  "data-slot": "carousel-pager-next",
235
- onClick: x(T)
218
+ onClick: C(E)
236
219
  }, {
237
- default: C(() => [(g(), s(y(N.value), { class: "size-4" }))]),
220
+ default: T(() => [(v(), l(x(N.value), { class: "size-4" }))]),
238
221
  _: 1
239
222
  }, 8, [
240
223
  "disabled",
@@ -243,7 +226,7 @@ var M = /* @__PURE__ */ f({
243
226
  ])
244
227
  ], 2));
245
228
  }
246
- }), R = /* @__PURE__ */ f({
229
+ }), L = /* @__PURE__ */ m({
247
230
  __name: "CarouselPrevious",
248
231
  props: {
249
232
  variant: { default: "outline" },
@@ -256,17 +239,17 @@ var M = /* @__PURE__ */ f({
256
239
  Array
257
240
  ] }
258
241
  },
259
- setup(t) {
260
- let n = t, { orientation: r, canScrollPrev: i, scrollPrev: o } = j();
261
- return (c, l) => (g(), s(x(a), {
242
+ setup(n) {
243
+ let r = n, { orientation: i, canScrollPrev: a, scrollPrev: o } = A();
244
+ return (c, u) => (v(), l(C(s), {
262
245
  "data-slot": "carousel-previous",
263
- disabled: !x(i),
264
- class: m(x(e)("absolute h-(--carousel-nav-size) w-(--carousel-nav-size) rounded-pill", x(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)),
265
- variant: t.variant,
266
- size: t.size,
267
- onClick: x(o)
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,
250
+ onClick: C(o)
268
251
  }, {
269
- default: C(() => [v(c.$slots, "default", {}, () => [d(x(E)), l[0] ||= u("span", { class: "sr-only" }, "Previous Slide", -1)])]),
252
+ default: T(() => [b(c.$slots, "default", {}, () => [p(C(t)), u[0] ||= f("span", { class: "sr-only" }, "Previous Slide", -1)])]),
270
253
  _: 3
271
254
  }, 8, [
272
255
  "disabled",
@@ -276,11 +259,11 @@ var M = /* @__PURE__ */ f({
276
259
  "onClick"
277
260
  ]));
278
261
  }
279
- }), z = {
262
+ }), R = {
280
263
  key: 0,
281
264
  "data-slot": "glass-carousel-pager-counter",
282
265
  class: "rounded-pill border border-border bg-card px-3 py-1 text-mono-caption tabular-nums shadow-cartoon-sm"
283
- }, B = /* @__PURE__ */ f({
266
+ }, z = /* @__PURE__ */ m({
284
267
  __name: "GlassCarouselPager",
285
268
  props: {
286
269
  index: {},
@@ -307,32 +290,32 @@ var M = /* @__PURE__ */ f({
307
290
  "next",
308
291
  "select"
309
292
  ],
310
- setup(t, { emit: u }) {
311
- let f = t, p = u, h = o(() => f.loop ? f.total > 1 : f.index > 0), _ = o(() => f.loop ? f.total > 1 : f.index < f.total - 1);
312
- function S() {
313
- h.value && (f.loop ? p("select", (f.index - 1 + f.total) % f.total) : (p("prev"), p("select", Math.max(0, f.index - 1))));
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);
295
+ function y() {
296
+ h.value && (f.loop ? m("select", (f.index - 1 + f.total) % f.total) : (m("prev"), m("select", Math.max(0, f.index - 1))));
314
297
  }
315
298
  function w() {
316
- _.value && (f.loop ? p("select", (f.index + 1) % f.total) : (p("next"), p("select", Math.min(f.total - 1, f.index + 1))));
299
+ _.value && (f.loop ? m("select", (f.index + 1) % f.total) : (m("next"), m("select", Math.min(f.total - 1, f.index + 1))));
317
300
  }
318
- let T = o(() => f.orientation === "vertical" ? i : O), E = o(() => f.orientation === "vertical" ? n : r);
319
- return (n, r) => (g(), l("div", {
301
+ let E = c(() => f.orientation === "vertical" ? r : o), D = c(() => f.orientation === "vertical" ? i : a);
302
+ return (n, r) => (v(), d("div", {
320
303
  "data-slot": "glass-carousel-pager",
321
- class: m(x(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))
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))
322
305
  }, [
323
- d(x(a), {
306
+ p(C(s), {
324
307
  variant: "outline",
325
308
  size: "icon",
326
309
  disabled: !h.value,
327
310
  "aria-label": t.orientation === "vertical" ? "Previous slide (up)" : "Previous slide",
328
311
  "data-slot": "glass-carousel-pager-prev",
329
- onClick: S
312
+ onClick: y
330
313
  }, {
331
- default: C(() => [(g(), s(y(T.value), { class: "size-4" }))]),
314
+ default: T(() => [(v(), l(x(E.value), { class: "size-4" }))]),
332
315
  _: 1
333
316
  }, 8, ["disabled", "aria-label"]),
334
- t.showCounter && t.total > 0 ? (g(), l("span", z, b(t.index + 1) + " / " + b(t.total), 1)) : c("", !0),
335
- d(x(a), {
317
+ t.showCounter && t.total > 0 ? (v(), d("span", R, S(t.index + 1) + " / " + S(t.total), 1)) : u("", !0),
318
+ p(C(s), {
336
319
  variant: "outline",
337
320
  size: "icon",
338
321
  disabled: !_.value,
@@ -340,12 +323,12 @@ var M = /* @__PURE__ */ f({
340
323
  "data-slot": "glass-carousel-pager-next",
341
324
  onClick: w
342
325
  }, {
343
- default: C(() => [(g(), s(y(E.value), { class: "size-4" }))]),
326
+ default: T(() => [(v(), l(x(D.value), { class: "size-4" }))]),
344
327
  _: 1
345
328
  }, 8, ["disabled", "aria-label"]),
346
- v(n.$slots, "trailing")
329
+ b(n.$slots, "trailing")
347
330
  ], 2));
348
331
  }
349
332
  });
350
333
  //#endregion
351
- export { M as Carousel, N as CarouselContent, P as CarouselItem, F as CarouselNext, L as CarouselPager, R as CarouselPrevious, B as GlassCarouselPager, j as useCarousel };
334
+ export { j as Carousel, M as CarouselContent, N as CarouselItem, P as CarouselNext, I as CarouselPager, L as CarouselPrevious, z as GlassCarouselPager, A as useCarousel };
@@ -1,2 +1,2 @@
1
- import { n as e, r as t, t as n } from "./CollapsibleContent-C_s6fG7r.js";
1
+ import { n as e, r as t, t as n } from "./CollapsibleContent-68dEXIAl.js";
2
2
  export { t as Collapsible, n as CollapsibleContent, e as CollapsibleTrigger };
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-DvZNQ_HF.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,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 {};
@@ -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}
@@ -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
  /**