@mkbabb/glass-ui 3.13.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 (507) hide show
  1. package/README.md +3 -1
  2. package/dist/CardAction-CW7a0m8M.js +253 -0
  3. package/dist/{CommandShortcut-RowNEO6i.js → CommandShortcut-DvZNQ_HF.js} +58 -53
  4. package/dist/ConfiguratorRow-BR4l-ixA.js +143 -0
  5. package/dist/{ContextMenuContent-CT3AS1WX.js → ContextMenuContent-uWnVxDab.js} +1 -1
  6. package/dist/{ContextMenuSubContent-BQmxTAdw.js → ContextMenuSubContent-xol4sD2q.js} +32 -37
  7. package/dist/{DataTable-BCddn3T3.js → DataTable-CuKwF7wr.js} +99 -97
  8. package/dist/DialogContent-DcKK8k9i.js +103 -0
  9. package/dist/{DialogFooter-Blu4t7tJ.js → DialogFooter-BZNX5aVr.js} +3 -3
  10. package/dist/FadingScroll-DI6hQhT9.js +76 -0
  11. package/dist/{HoverCardContent-Csywg3YF.js → HoverCardContent-b2uaAMRR.js} +1 -1
  12. package/dist/{HoverPopover-CISOJQuZ.js → HoverPopover-CbqbNwgU.js} +2 -2
  13. package/dist/IconChip-BTD-nay5.js +55 -0
  14. package/dist/{IconTooltip-DPzE09X9.js → IconTooltip-Bl8gFZ8d.js} +1 -1
  15. package/dist/{Input-DWQQIOC4.js → Input-h9v5LeXf.js} +1 -1
  16. package/dist/{MetricBadge-C9QMz1KT.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-DL7E6vJP.js +127 -0
  20. package/dist/{Progress-DwlUKGbr.js → Progress-DctG61iZ.js} +98 -78
  21. package/dist/{ScrollingText-DfFrwSph.js → ScrollingText-yOpBzFYq.js} +2 -2
  22. package/dist/{SelectScrollDownButton-CiDUxfEj.js → SelectScrollDownButton-CrA8F0iV.js} +35 -20
  23. package/dist/{Switch-CsIuYP_e.js → Switch-CwYNf8bo.js} +1 -1
  24. package/dist/Toaster-Bw4xR8xV.js +274 -0
  25. package/dist/{ToggleGroupItem-D_AHlRw9.js → ToggleGroupItem-pEM9vIhs.js} +50 -37
  26. package/dist/{TooltipProvider-B3MkB_8P.js → TooltipProvider-rzvnXz60.js} +1 -1
  27. package/dist/animated-digit.js +2 -2
  28. package/dist/api/index.d.ts +16 -8
  29. package/dist/api/types-extra.d.ts +6 -0
  30. package/dist/api.js +2 -2
  31. package/dist/aurora.js +888 -230
  32. package/dist/badge.js +1 -1
  33. package/dist/border-progress.d.ts +1 -0
  34. package/dist/border-progress.js +106 -0
  35. package/dist/button-DYCUa-tH.js +126 -0
  36. package/dist/button.js +1 -1
  37. package/dist/canvas.js +2 -2
  38. package/dist/card.js +2 -2
  39. package/dist/carousel.d.ts +1 -1
  40. package/dist/carousel.js +90 -151
  41. package/dist/collapsible.js +1 -1
  42. package/dist/color-swatch.d.ts +1 -0
  43. package/dist/color-swatch.js +47 -0
  44. package/dist/color.js +1 -1
  45. package/dist/command.js +1 -1
  46. package/dist/compile-CQEFRTmx.js +19 -0
  47. package/dist/components/custom/aurora/composables/atoms-fields.d.ts +39 -0
  48. package/dist/components/custom/aurora/composables/auroraFallbackGround.d.ts +108 -0
  49. package/dist/components/custom/aurora/composables/runtime.d.ts +19 -0
  50. package/dist/components/custom/aurora/composables/uniformBridge.d.ts +5 -1
  51. package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +51 -0
  52. package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +29 -0
  53. package/dist/components/custom/aurora/constants/budget.d.ts +21 -0
  54. package/dist/components/custom/aurora/constants/presets.d.ts +30 -2
  55. package/dist/components/custom/aurora/constants/renderMode.d.ts +63 -10
  56. package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -0
  57. package/dist/components/custom/aurora/constants/shaders/oil-modes.glsl.d.ts +1 -0
  58. package/dist/components/custom/aurora/constants/shaders/procedural-color.wgsl.d.ts +4 -0
  59. package/dist/components/custom/aurora/index.d.ts +3 -2
  60. package/dist/components/custom/border-progress/BorderProgress.vue.d.ts +46 -0
  61. package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +22 -0
  62. package/dist/components/custom/border-progress/constants.d.ts +59 -0
  63. package/dist/components/custom/border-progress/index.d.ts +4 -0
  64. package/dist/components/custom/color-swatch/ColorSwatch.vue.d.ts +22 -0
  65. package/dist/components/custom/color-swatch/index.d.ts +1 -0
  66. package/dist/components/custom/concentric/Concentric.vue.d.ts +39 -0
  67. package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +11 -0
  68. package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +13 -0
  69. package/dist/components/custom/concentric/composables/ringField.d.ts +44 -0
  70. package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +13 -0
  71. package/dist/components/custom/concentric/composables/useConcentric.d.ts +35 -0
  72. package/dist/components/custom/concentric/constants.d.ts +43 -0
  73. package/dist/components/custom/concentric/index.d.ts +5 -0
  74. package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +4 -0
  75. package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -0
  76. package/dist/components/custom/configurator/Configurator.vue.d.ts +19 -8
  77. package/dist/components/custom/constellation/Constellation.vue.d.ts +18 -206
  78. package/dist/components/custom/constellation/composables/useConstellation.d.ts +26 -0
  79. package/dist/components/custom/constellation/constellationField.d.ts +2 -369
  80. package/dist/components/custom/constellation/constellationTypes.d.ts +369 -0
  81. package/dist/components/custom/constellation/index.d.ts +1 -1
  82. package/dist/components/custom/dock/DockIconButton.vue.d.ts +13 -4
  83. package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +10 -2
  84. package/dist/components/custom/dock/DockRail.vue.d.ts +17 -16
  85. package/dist/components/custom/dock/DockSection.vue.d.ts +69 -0
  86. package/dist/components/custom/dock/DockSeparator.vue.d.ts +49 -1
  87. package/dist/components/custom/dock/DockTabButton.vue.d.ts +5 -5
  88. package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +75 -0
  89. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +13 -0
  90. package/dist/components/custom/dock/constants.d.ts +35 -0
  91. package/dist/components/custom/dock/index.d.ts +2 -0
  92. package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +38 -0
  93. package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +41 -0
  94. package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +24 -0
  95. package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +34 -0
  96. package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +18 -0
  97. package/dist/components/custom/dot-flow-field/constants.d.ts +48 -0
  98. package/dist/components/custom/dot-flow-field/index.d.ts +5 -0
  99. package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -0
  100. package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +20 -0
  101. package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +1 -0
  102. package/dist/components/custom/easing/EasingConfigurator.vue.d.ts +33 -0
  103. package/dist/components/custom/easing/EasingPicker.vue.d.ts +49 -0
  104. package/dist/components/custom/easing/composables/useEasingPicker.d.ts +75 -0
  105. package/dist/components/custom/easing/constants.d.ts +28 -0
  106. package/dist/components/custom/easing/index.d.ts +3 -0
  107. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +10 -0
  108. package/dist/components/custom/fading-scroll/FadingScroll.vue.d.ts +25 -0
  109. package/dist/components/custom/fading-scroll/composables/useFadingScroll.d.ts +31 -0
  110. package/dist/components/custom/fading-scroll/constants.d.ts +19 -0
  111. package/dist/components/custom/fading-scroll/index.d.ts +2 -0
  112. package/dist/components/custom/fourier-field/FourierField.vue.d.ts +19 -2
  113. package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +39 -0
  114. package/dist/components/custom/fourier-field/constants.d.ts +7 -0
  115. package/dist/components/custom/fourier-field/index.d.ts +1 -1
  116. package/dist/components/custom/fourier-field/math.d.ts +17 -0
  117. package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +9 -1
  118. package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +4 -2
  119. package/dist/components/custom/goo-blob/composables/uniformBridgeWGPU.d.ts +24 -0
  120. package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +29 -12
  121. package/dist/components/custom/goo-blob/composables/wgpuSetup.d.ts +23 -0
  122. package/dist/components/custom/goo-blob/constants.d.ts +6 -1
  123. package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -0
  124. package/dist/components/custom/handmark/HandMark.vue.d.ts +29 -0
  125. package/dist/components/custom/handmark/brush.d.ts +269 -0
  126. package/dist/components/custom/handmark/composables/useHandMark.d.ts +89 -0
  127. package/dist/components/custom/handmark/constants.d.ts +39 -0
  128. package/dist/components/custom/handmark/freehand.d.ts +69 -0
  129. package/dist/components/custom/handmark/geometry.d.ts +52 -0
  130. package/dist/components/custom/handmark/index.d.ts +27 -0
  131. package/dist/components/custom/handmark/ink.d.ts +11 -0
  132. package/dist/components/custom/handmark/texture.d.ts +39 -0
  133. package/dist/components/custom/handmark/types.d.ts +62 -0
  134. package/dist/components/custom/icon-chip/IconChip.vue.d.ts +4 -0
  135. package/dist/components/custom/icon-chip/index.d.ts +2 -0
  136. package/dist/components/custom/icon-chip/types.d.ts +82 -0
  137. package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +17 -2
  138. package/dist/components/custom/metric-stack/MetricStack.vue.d.ts +1 -1
  139. package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +39 -0
  140. package/dist/components/custom/pager-dots/index.d.ts +2 -0
  141. package/dist/components/custom/spa-view/SpaView.vue.d.ts +50 -0
  142. package/dist/components/custom/spa-view/index.d.ts +2 -0
  143. package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +29 -24
  144. package/dist/components/custom/tabs/composables/useTabDragMorph.d.ts +42 -0
  145. package/dist/components/custom/tabs/composables/useTabIndicator.d.ts +30 -21
  146. package/dist/components/custom/tabs/constants.d.ts +9 -3
  147. package/dist/components/custom/tabs/index.d.ts +1 -1
  148. package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +15 -1
  149. package/dist/components/ui/_shared/index.d.ts +2 -0
  150. package/dist/components/ui/_shared/menuItemVariants.d.ts +19 -0
  151. package/dist/components/ui/_shared/useSurfaceAxis.d.ts +41 -0
  152. package/dist/components/ui/badge/index.d.ts +1 -1
  153. package/dist/components/ui/button/Button.vue.d.ts +5 -2
  154. package/dist/components/ui/button/index.d.ts +2 -2
  155. package/dist/components/ui/card/Card.vue.d.ts +34 -4
  156. package/dist/components/ui/card/CardHeader.vue.d.ts +42 -16
  157. package/dist/components/ui/card/ScrollCard.vue.d.ts +33 -0
  158. package/dist/components/ui/card/ScrollCardHeader.vue.d.ts +17 -0
  159. package/dist/components/ui/card/index.d.ts +2 -0
  160. package/dist/components/ui/carousel/CarouselNext.vue.d.ts +2 -2
  161. package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +2 -2
  162. package/dist/components/ui/carousel/GlassCarouselPager.vue.d.ts +2 -2
  163. package/dist/components/ui/carousel/index.d.ts +0 -1
  164. package/dist/components/ui/command/Command.vue.d.ts +4 -1
  165. package/dist/components/ui/dialog/DialogContent.vue.d.ts +8 -3
  166. package/dist/components/ui/drawer/Drawer.vue.d.ts +46 -33
  167. package/dist/components/ui/drawer/DrawerContent.vue.d.ts +12 -8
  168. package/dist/components/ui/drawer/DrawerDescription.vue.d.ts +2 -2
  169. package/dist/components/ui/drawer/DrawerOverlay.vue.d.ts +1 -1
  170. package/dist/components/ui/drawer/DrawerTitle.vue.d.ts +2 -2
  171. package/dist/components/ui/drawer/composables/drawerSnapContext.d.ts +26 -0
  172. package/dist/components/ui/drawer/composables/useDrawerSnap.d.ts +17 -0
  173. package/dist/components/ui/drawer/constants.d.ts +45 -0
  174. package/dist/components/ui/drawer/index.d.ts +23 -15
  175. package/dist/components/ui/focus-scope/FocusScope.vue.d.ts +20 -0
  176. package/dist/components/ui/focus-scope/index.d.ts +2 -0
  177. package/dist/components/ui/index.d.ts +1 -1
  178. package/dist/components/ui/popover/PopoverContent.vue.d.ts +3 -0
  179. package/dist/components/ui/progress/ProgressDefault.vue.d.ts +3 -2
  180. package/dist/components/ui/progress/ProgressSectioned.vue.d.ts +14 -3
  181. package/dist/components/ui/select/SelectContent.vue.d.ts +1 -1
  182. package/dist/components/ui/select/SelectTrigger.vue.d.ts +27 -4
  183. package/dist/components/ui/sheet/SheetContent.vue.d.ts +6 -0
  184. package/dist/components/ui/sheet/index.d.ts +1 -1
  185. package/dist/components/ui/skeleton/Skeleton.vue.d.ts +3 -0
  186. package/dist/components/ui/tags-input/TagsInput.vue.d.ts +2 -2
  187. package/dist/components/ui/toast/Toast.vue.d.ts +5 -2
  188. package/dist/components/ui/toast/use-toast.d.ts +14 -0
  189. package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
  190. package/dist/composables/dark/index.d.ts +1 -1
  191. package/dist/composables/dark/useGlobalDark.d.ts +23 -1
  192. package/dist/composables/glass/canvas2d/useCanvas2D.d.ts +13 -6
  193. package/dist/composables/glass/index.d.ts +5 -2
  194. package/dist/composables/glass/useSpecularPointer.d.ts +33 -0
  195. package/dist/composables/glass/useSpecularTracking.d.ts +20 -0
  196. package/dist/composables/glass/vSpecular.d.ts +2 -0
  197. package/dist/composables/glass/webgl/shaders/flow.glsl.d.ts +1 -0
  198. package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +16 -0
  199. package/dist/composables/glass/webgpu/index.d.ts +2 -0
  200. package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +54 -0
  201. package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +84 -0
  202. package/dist/composables/motion/core/index.d.ts +1 -0
  203. package/dist/composables/motion/index.d.ts +4 -0
  204. package/dist/composables/motion/useDockCtaReceive.d.ts +59 -0
  205. package/dist/composables/motion/useDragMorph.d.ts +77 -0
  206. package/dist/composables/motion/useLiquidFlex.d.ts +11 -0
  207. package/dist/composables/motion/useLiquidPress.d.ts +71 -0
  208. package/dist/composables/motion/useLiquidReveal.d.ts +51 -0
  209. package/dist/composables/motion/useNumericTransition.d.ts +3 -3
  210. package/dist/composables/motion/usePointerVelocityField.d.ts +98 -0
  211. package/dist/composables/motion/useViewTransition.d.ts +36 -1
  212. package/dist/concentric.d.ts +1 -0
  213. package/dist/concentric.js +562 -0
  214. package/dist/configurator.js +3 -2
  215. package/dist/confirm-dialog.js +22 -24
  216. package/dist/constellation.js +93 -95
  217. package/dist/context-menu.js +3 -3
  218. package/dist/controls.js +10 -4
  219. package/dist/createCanvasLifecycle-CHD5XrDW.js +82 -0
  220. package/dist/dark.d.ts +1 -1
  221. package/dist/dark.js +1 -1
  222. package/dist/data-table.js +1 -1
  223. package/dist/dialog.js +2 -2
  224. package/dist/dock.js +738 -442
  225. package/dist/{dockContext-BegmJVmx.js → dockContext-BNfyPLe9.js} +1 -1
  226. package/dist/dom.js +5 -5
  227. package/dist/dot-flow-field.d.ts +1 -0
  228. package/dist/dot-flow-field.js +604 -0
  229. package/dist/drawer.d.ts +1 -0
  230. package/dist/drawer.js +380 -0
  231. package/dist/{dropdown-menu-DzkkyBwX.js → dropdown-menu-CofSZuk8.js} +14 -15
  232. package/dist/dropdown-menu.js +1 -1
  233. package/dist/easing.d.ts +1 -0
  234. package/dist/easing.js +463 -0
  235. package/dist/expandable-container.js +45 -38
  236. package/dist/fading-scroll.d.ts +1 -0
  237. package/dist/fading-scroll.js +2 -0
  238. package/dist/focus-scope.d.ts +1 -0
  239. package/dist/focus-scope.js +23 -0
  240. package/dist/forms.js +7 -7
  241. package/dist/fourier-field.js +135 -122
  242. package/dist/fourier-math.js +2 -2
  243. package/dist/glass-panel.js +39 -36
  244. package/dist/glass-ui.css +1 -1
  245. package/dist/glass-ui.js +154 -362
  246. package/dist/goo-blob.js +838 -227
  247. package/dist/handmark.d.ts +1 -0
  248. package/dist/handmark.js +707 -0
  249. package/dist/header-ribbon.js +1 -1
  250. package/dist/hover-card.js +1 -1
  251. package/dist/hover-popover.js +1 -1
  252. package/dist/icon-chip.d.ts +1 -0
  253. package/dist/icon-chip.js +2 -0
  254. package/dist/icon-tooltip.js +1 -1
  255. package/dist/index.d.ts +3 -3
  256. package/dist/instrument-chassis.js +1 -1
  257. package/dist/keyboard.js +1 -1
  258. package/dist/label.js +1 -1
  259. package/dist/labeled-field.js +6 -6
  260. package/dist/{math-U6-RrLmV.js → math-BINYmg5z.js} +11 -3
  261. package/dist/{menuItemVariants-DPiEarb0.js → menuItemVariants-D8VNHq22.js} +10 -4
  262. package/dist/metric-badge.js +1 -1
  263. package/dist/metric-cell.js +25 -22
  264. package/dist/metric-stack.js +4 -8
  265. package/dist/motion-core.js +36 -35
  266. package/dist/motion-curves.js +1 -1
  267. package/dist/motion.js +157 -55
  268. package/dist/notification.js +1 -1
  269. package/dist/number-field.js +1 -1
  270. package/dist/pager-dots.d.ts +1 -0
  271. package/dist/pager-dots.js +91 -0
  272. package/dist/paper-backdrop.js +1 -1
  273. package/dist/popover.js +1 -1
  274. package/dist/{presets-BKVyQfbt.js → presets-BW2b-fr1.js} +14 -1
  275. package/dist/{compile-B7NGOBcP.js → procedural-color.glsl-CIFsJhwI.js} +1 -155
  276. package/dist/procedural-color.wgsl-CToRHugY.js +224 -0
  277. package/dist/progress.js +1 -1
  278. package/dist/pulse.js +1 -1
  279. package/dist/reactive.js +2 -2
  280. package/dist/scrolling-text.js +1 -1
  281. package/dist/search.js +10 -12
  282. package/dist/select.js +3 -3
  283. package/dist/separator.js +1 -1
  284. package/dist/sheet-tZMg0E0w.js +218 -0
  285. package/dist/sheet.js +1 -1
  286. package/dist/{slider-B-JP2JlI.js → slider-DVb4HXU-.js} +7 -7
  287. package/dist/slider.js +1 -1
  288. package/dist/sortable-list.js +3 -3
  289. package/dist/spa-view.d.ts +1 -0
  290. package/dist/spa-view.js +46 -0
  291. package/dist/styles/animations.css +40 -31
  292. package/dist/styles/border-progress.css +109 -0
  293. package/dist/styles/cards.css +76 -0
  294. package/dist/styles/components.css +1 -1
  295. package/dist/styles/configurator.css +35 -0
  296. package/dist/styles/critical-partition.mjs +140 -0
  297. package/dist/styles/critical.css +12 -0
  298. package/dist/styles/deferred.css +31 -0
  299. package/dist/styles/dock/density.css +64 -0
  300. package/dist/styles/dock/layers.css +54 -30
  301. package/dist/styles/dock/morph.css +124 -7
  302. package/dist/styles/dock/overflow.css +31 -2
  303. package/dist/styles/dock/rail-extend.css +168 -71
  304. package/dist/styles/dock/section.css +59 -0
  305. package/dist/styles/dock/shell.css +83 -16
  306. package/dist/styles/dock-controls/icon-button.css +11 -1
  307. package/dist/styles/dock-controls/tab-button.css +24 -83
  308. package/dist/styles/dock-controls/triggers.css +7 -0
  309. package/dist/styles/dock.css +38 -3
  310. package/dist/styles/drawer.css +127 -35
  311. package/dist/styles/feedback-tone.css +104 -0
  312. package/dist/styles/glass/deep.css +44 -0
  313. package/dist/styles/glass/ladder.css +154 -52
  314. package/dist/styles/glass/material.css +78 -15
  315. package/dist/styles/glass/reveal.css +136 -0
  316. package/dist/styles/glass/rim.css +100 -0
  317. package/dist/styles/glass/surface-axis.css +113 -0
  318. package/dist/styles/glass/surfaces.css +189 -15
  319. package/dist/styles/glass-refract.css +96 -44
  320. package/dist/styles/glass-specular-track.css +7 -0
  321. package/dist/styles/glass.css +8 -2
  322. package/dist/styles/hover-popover.css +7 -6
  323. package/dist/styles/icon-chip.css +211 -0
  324. package/dist/styles/index.css +78 -4
  325. package/dist/styles/instrument-chassis.css +107 -2
  326. package/dist/styles/menu.css +127 -0
  327. package/dist/styles/scroll-choreography.css +300 -0
  328. package/dist/styles/segmented-tabs.css +188 -86
  329. package/dist/styles/select.css +50 -0
  330. package/dist/styles/theme/bridges.css +22 -1
  331. package/dist/styles/theme/literals.css +11 -2
  332. package/dist/styles/theme/radius.css +6 -1
  333. package/dist/styles/tokens/color-radius.css +40 -13
  334. package/dist/styles/tokens/dark-arm.css +200 -20
  335. package/dist/styles/tokens/glass-deep.css +75 -0
  336. package/dist/styles/tokens/glass-fx.css +333 -0
  337. package/dist/styles/tokens/glass.css +95 -315
  338. package/dist/styles/tokens/light-dark.css +64 -22
  339. package/dist/styles/tokens/offsets.css +116 -0
  340. package/dist/styles/tokens/on-glass-fg.css +39 -0
  341. package/dist/styles/tokens/property-regs.css +130 -10
  342. package/dist/styles/tokens/scale-paper.css +155 -84
  343. package/dist/styles/tokens/scheme-motion.css +102 -46
  344. package/dist/styles/tokens/scroll-tokens.css +123 -0
  345. package/dist/styles/tokens/{offsets-sizing.css → sizing.css} +88 -89
  346. package/dist/styles/tokens.css +9 -3
  347. package/dist/styles/transitions.css +7 -7
  348. package/dist/styles/typography/scale.css +153 -0
  349. package/dist/styles/typography/semantic.css +220 -0
  350. package/dist/styles/typography/utilities.css +174 -0
  351. package/dist/styles/typography.css +23 -507
  352. package/dist/styles/utilities/a11y-overrides.css +33 -4
  353. package/dist/styles/utilities/animate.css +27 -24
  354. package/dist/styles/utilities/base-misc.css +255 -0
  355. package/dist/styles/utilities/base.css +100 -138
  356. package/dist/styles/utilities/btn.css +21 -202
  357. package/dist/styles/utilities/metal.css +189 -0
  358. package/dist/styles/utilities.css +14 -7
  359. package/dist/styles/view-transition.css +4 -1
  360. package/dist/switch.js +1 -1
  361. package/dist/tabs.js +275 -191
  362. package/dist/timeline.js +2 -2
  363. package/dist/toast.js +1 -1
  364. package/dist/toggle-chip.js +3 -1
  365. package/dist/toggle-group.js +1 -1
  366. package/dist/tooltip.js +1 -1
  367. package/dist/typewriter.js +1 -1
  368. package/dist/{useAnimatedNumber-C5I3wWd8.js → useAnimatedNumber-BfUq2bUM.js} +1 -1
  369. package/dist/useCanvas2D-B8w_E3Rr.js +83 -0
  370. package/dist/useConfiguratorState-DNlOh6c8.js +161 -0
  371. package/dist/useDragMorph-DgxnsVJz.js +102 -0
  372. package/dist/{useGlobalDark-yhL4Wp-s.js → useGlobalDark-C28t0VWJ.js} +22 -3
  373. package/dist/useLiquidPress-kfb4KX79.js +39 -0
  374. package/dist/usePointerVelocityField-JbRd5CrM.js +137 -0
  375. package/dist/{useRAFLoop-Bxv0o6L5.js → useRAFLoop-UYa4zoiN.js} +1 -1
  376. package/dist/useSpring-C0jyvEJB.js +40 -0
  377. package/dist/useSpringMount-q1amq1SJ.js +71 -0
  378. package/dist/useSpringPress-BsqPr7FJ.js +34 -0
  379. package/dist/useSurfaceAxis-g0NloYEF.js +7 -0
  380. package/dist/{useTouchGate-Dg7MQI1G.js → useTouchGate-CBZTD4SD.js} +1 -1
  381. package/dist/vReveal-Czsb7zQC.js +10 -0
  382. package/dist/vSpecular-CQFmLNzA.js +68 -0
  383. package/dist/vendor-CKmzio-i.js +226 -0
  384. package/dist/watercolor-dot.js +12 -5
  385. package/package.json +193 -25
  386. package/src/styles/animations.css +40 -31
  387. package/src/styles/border-progress.css +109 -0
  388. package/src/styles/cards.css +76 -0
  389. package/src/styles/configurator.css +35 -0
  390. package/src/styles/critical-partition.mjs +140 -0
  391. package/src/styles/dock/density.css +64 -0
  392. package/src/styles/dock/layers.css +54 -30
  393. package/src/styles/dock/morph.css +124 -7
  394. package/src/styles/dock/overflow.css +31 -2
  395. package/src/styles/dock/rail-extend.css +168 -71
  396. package/src/styles/dock/section.css +59 -0
  397. package/src/styles/dock/shell.css +83 -16
  398. package/src/styles/dock-controls/icon-button.css +11 -1
  399. package/src/styles/dock-controls/tab-button.css +24 -83
  400. package/src/styles/dock-controls/triggers.css +7 -0
  401. package/src/styles/dock.css +38 -3
  402. package/src/styles/drawer.css +123 -35
  403. package/src/styles/feedback-tone.css +104 -0
  404. package/src/styles/glass/deep.css +44 -0
  405. package/src/styles/glass/ladder.css +154 -52
  406. package/src/styles/glass/material.css +78 -15
  407. package/src/styles/glass/reveal.css +136 -0
  408. package/src/styles/glass/rim.css +100 -0
  409. package/src/styles/glass/surface-axis.css +113 -0
  410. package/src/styles/glass/surfaces.css +189 -15
  411. package/src/styles/glass-refract.css +96 -44
  412. package/src/styles/glass-specular-track.css +7 -0
  413. package/src/styles/glass.css +8 -2
  414. package/src/styles/hover-popover.css +7 -6
  415. package/src/styles/icon-chip.css +211 -0
  416. package/src/styles/index.css +78 -4
  417. package/src/styles/instrument-chassis.css +107 -2
  418. package/src/styles/menu.css +127 -0
  419. package/src/styles/scroll-choreography.css +300 -0
  420. package/src/styles/segmented-tabs.css +184 -84
  421. package/src/styles/select.css +50 -0
  422. package/src/styles/theme/bridges.css +22 -1
  423. package/src/styles/theme/literals.css +11 -2
  424. package/src/styles/theme/radius.css +6 -1
  425. package/src/styles/tokens/color-radius.css +40 -13
  426. package/src/styles/tokens/dark-arm.css +200 -20
  427. package/src/styles/tokens/glass-deep.css +75 -0
  428. package/src/styles/tokens/glass-fx.css +333 -0
  429. package/src/styles/tokens/glass.css +95 -315
  430. package/src/styles/tokens/light-dark.css +64 -22
  431. package/src/styles/tokens/offsets.css +116 -0
  432. package/src/styles/tokens/on-glass-fg.css +39 -0
  433. package/src/styles/tokens/property-regs.css +130 -10
  434. package/src/styles/tokens/scale-paper.css +155 -84
  435. package/src/styles/tokens/scheme-motion.css +102 -46
  436. package/src/styles/tokens/scroll-tokens.css +123 -0
  437. package/src/styles/tokens/{offsets-sizing.css → sizing.css} +88 -89
  438. package/src/styles/tokens.css +9 -3
  439. package/src/styles/transitions.css +7 -7
  440. package/src/styles/typography/scale.css +153 -0
  441. package/src/styles/typography/semantic.css +220 -0
  442. package/src/styles/typography/utilities.css +174 -0
  443. package/src/styles/typography.css +23 -507
  444. package/src/styles/utilities/a11y-overrides.css +33 -4
  445. package/src/styles/utilities/animate.css +27 -24
  446. package/src/styles/utilities/base-misc.css +255 -0
  447. package/src/styles/utilities/base.css +100 -138
  448. package/src/styles/utilities/btn.css +21 -202
  449. package/src/styles/utilities/metal.css +189 -0
  450. package/src/styles/utilities.css +14 -7
  451. package/src/styles/view-transition.css +4 -1
  452. package/dist/CardAction-Cj2eycQ2.js +0 -157
  453. package/dist/DialogContent-Dl9WkAoS.js +0 -100
  454. package/dist/Notification-DdwNxIrI.js +0 -100
  455. package/dist/NumberFieldContent-CqaN-SvN.js +0 -145
  456. package/dist/PopoverContent-BYwt2-4x.js +0 -121
  457. package/dist/TabsList-Dttss653.js +0 -105
  458. package/dist/Toaster-D6q4HtXu.js +0 -263
  459. package/dist/button-ChXMfsud.js +0 -81
  460. package/dist/check-njhk-vfu.js +0 -7
  461. package/dist/chevron-down-DKkxb4VV.js +0 -7
  462. package/dist/chevron-right-CPXbqQQz.js +0 -7
  463. package/dist/chevron-up-n_24SqI-.js +0 -7
  464. package/dist/components/custom/underline/GlassUnderline.vue.d.ts +0 -84
  465. package/dist/components/custom/underline/index.d.ts +0 -2
  466. package/dist/components/custom/underline/types.d.ts +0 -56
  467. package/dist/components/ui/carousel/CarouselDots.vue.d.ts +0 -4
  468. package/dist/createLucideIcon-DydS2qgk.js +0 -43
  469. package/dist/minimize-2-BV31Ob_h.js +0 -38
  470. package/dist/search-BSGrf2Sk.js +0 -12
  471. package/dist/sheet-1fChZjtw.js +0 -214
  472. package/dist/underline.d.ts +0 -1
  473. package/dist/underline.js +0 -85
  474. package/dist/useCanvas2D-ClrQuZtp.js +0 -96
  475. package/dist/useConfiguratorState-DAoeHVue.js +0 -287
  476. package/dist/useSpecularTracking-Bo5su68i.js +0 -32
  477. package/dist/useSpringMount-CI2jOstM.js +0 -108
  478. package/dist/vReveal-CqaCz_mC.js +0 -44
  479. package/dist/x-BUwTKe50.js +0 -10
  480. /package/dist/{CollapsibleContent-CP9qF1v4.js → CollapsibleContent-68dEXIAl.js} +0 -0
  481. /package/dist/{InstrumentChassis-UUJX0-mW.js → InstrumentChassis-Bx0F_q5g.js} +0 -0
  482. /package/dist/{Label-r3WzWrsj.js → Label-C2ejNWeC.js} +0 -0
  483. /package/dist/{ModalOverlay-DVLI2VRr.js → ModalOverlay-D1VrWyoi.js} +0 -0
  484. /package/dist/{PaperBackdrop-DIXTtVq6.js → PaperBackdrop-Vf3tlpvd.js} +0 -0
  485. /package/dist/{SelectGroup-aumMgWLs.js → SelectGroup-DwwjicPY.js} +0 -0
  486. /package/dist/{SelectSeparator-BQ_1Fcbp.js → SelectSeparator-DXswVdRz.js} +0 -0
  487. /package/dist/{Separator-0JE6LtNu.js → Separator-pKF0oA4M.js} +0 -0
  488. /package/dist/{_plugin-vue_export-helper-ok8pgSl5.js → _plugin-vue_export-helper-C1je1s0u.js} +0 -0
  489. /package/dist/{badge-UILT_3pZ.js → badge-D9XWW4GT.js} +0 -0
  490. /package/dist/{color-CUYeFbgd.js → color-DweYl7pE.js} +0 -0
  491. /package/dist/{constants-CS75AWHG.js → constants-BPOqYJAm.js} +0 -0
  492. /package/dist/{createContext-BM46COQ-.js → createContext-CpBNTRMI.js} +0 -0
  493. /package/dist/{prng-D27-B3tK.js → prng-Za0Rmgag.js} +0 -0
  494. /package/dist/{resolveCanvasColor-BBiYfp8g.js → resolveCanvasColor-CUyHr5Uu.js} +0 -0
  495. /package/dist/{springPresets--YdWTHtm.js → springPresets-CFQGQfdl.js} +0 -0
  496. /package/dist/{useIntersectionPause-Cc-H9ees.js → useIntersectionPause-Bj4sPkMh.js} +0 -0
  497. /package/dist/{useInterval-iHludrxk.js → useInterval-CvK1mL92.js} +0 -0
  498. /package/dist/{useKeyboardShortcuts-Be3w_Rwk.js → useKeyboardShortcuts-BXWXOZ-9.js} +0 -0
  499. /package/dist/{useLiquidFlex-BL0lLLN2.js → useLiquidFlex-mZPMiNXh.js} +0 -0
  500. /package/dist/{useResizeObserver-BhgdhOIj.js → useResizeObserver-Bpoi7tRE.js} +0 -0
  501. /package/dist/{useResolveTokenColor-Dvn2RZJW.js → useResolveTokenColor-vAylyR0x.js} +0 -0
  502. /package/dist/{useScrollProgress-Dlvx-L3v.js → useScrollProgress-D7bYU2RK.js} +0 -0
  503. /package/dist/{useSortable-muI29agz.js → useSortable-DHjtZSEd.js} +0 -0
  504. /package/dist/{useTextHighlight-DmRYkOBx.js → useTextHighlight-CWEi25hf.js} +0 -0
  505. /package/dist/{useTimer-Dzarvzuk.js → useTimer-BHJOKr35.js} +0 -0
  506. /package/dist/{useUserInvalidAria-B2h6jAM_.js → useUserInvalidAria-y5namzeE.js} +0 -0
  507. /package/dist/{useViewportReady-B40FK4Pa.js → useViewportReady-anbac3m6.js} +0 -0
package/dist/carousel.js CHANGED
@@ -1,30 +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-ChXMfsud.js";
7
- import { t as o } from "./_plugin-vue_export-helper-ok8pgSl5.js";
8
- import { Fragment as s, 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, renderList as b, renderSlot as x, resolveDynamicComponent as S, toDisplayString as C, unref as w, watch as T, withCtx as E } from "vue";
9
- import { createInjectionState as D } from "@vueuse/core";
10
- import O from "embla-carousel-vue";
11
- var k = t("arrow-left", [["path", {
12
- d: "m12 19-7-7 7-7",
13
- key: "1l729n"
14
- }], ["path", {
15
- d: "M19 12H5",
16
- key: "x3x0zl"
17
- }]]), A = t("arrow-right", [["path", {
18
- d: "M5 12h14",
19
- key: "1ays0h"
20
- }], ["path", {
21
- d: "m12 5 7 7-7 7",
22
- key: "xquz4c"
23
- }]]), j = t("chevron-left", [["path", {
24
- d: "m15 18-6-6 6-6",
25
- key: "1wnfg3"
26
- }]]), [M, N] = D(({ opts: e, orientation: t, plugins: n }, r) => {
27
- let [i, a] = O({
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({
28
10
  ...e,
29
11
  axis: t === "horizontal" ? "x" : "y"
30
12
  }, n);
@@ -50,14 +32,14 @@ var k = t("arrow-left", [["path", {
50
32
  orientation: t
51
33
  };
52
34
  });
53
- function P() {
54
- let e = N();
35
+ function A() {
36
+ let e = k();
55
37
  if (!e) throw Error("useCarousel must be used within a <Carousel />");
56
38
  return e;
57
39
  }
58
40
  //#endregion
59
41
  //#region src/components/ui/carousel/Carousel.vue
60
- var F = /* @__PURE__ */ m({
42
+ var j = /* @__PURE__ */ m({
61
43
  __name: "Carousel",
62
44
  props: {
63
45
  opts: {},
@@ -73,7 +55,7 @@ var F = /* @__PURE__ */ m({
73
55
  },
74
56
  emits: ["init-api"],
75
57
  setup(t, { expose: n, emit: r }) {
76
- let i = t, { canScrollNext: a, canScrollPrev: o, carouselApi: s, carouselRef: c, orientation: l, scrollNext: u, scrollPrev: f } = M(i, r);
58
+ let i = t, { canScrollNext: a, canScrollPrev: o, carouselApi: s, carouselRef: c, orientation: l, scrollNext: u, scrollPrev: f } = O(i, r);
77
59
  n({
78
60
  canScrollNext: a,
79
61
  canScrollPrev: o,
@@ -93,22 +75,22 @@ var F = /* @__PURE__ */ m({
93
75
  }
94
76
  return (t, n) => (v(), d("div", {
95
77
  "data-slot": "carousel",
96
- class: g(w(e)("relative", i.class)),
78
+ class: g(C(e)("relative", i.class)),
97
79
  role: "region",
98
80
  "aria-roledescription": "carousel",
99
81
  tabindex: "0",
100
82
  onKeydown: p
101
- }, [x(t.$slots, "default", {
102
- canScrollNext: w(a),
103
- canScrollPrev: w(o),
104
- carouselApi: w(s),
105
- carouselRef: w(c),
106
- orientation: w(l),
107
- scrollNext: w(u),
108
- scrollPrev: w(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)
109
91
  })], 34));
110
92
  }
111
- }), I = /* @__PURE__ */ m({
93
+ }), M = /* @__PURE__ */ m({
112
94
  inheritAttrs: !1,
113
95
  __name: "CarouselContent",
114
96
  props: { class: { type: [
@@ -119,58 +101,15 @@ var F = /* @__PURE__ */ m({
119
101
  Array
120
102
  ] } },
121
103
  setup(t, { expose: n }) {
122
- let r = t, { carouselRef: i, orientation: a } = P();
104
+ let r = t, { carouselRef: i, orientation: a } = A();
123
105
  return n({ carouselRef: i }), (t, n) => (v(), d("div", {
124
106
  ref_key: "carouselRef",
125
107
  ref: i,
126
108
  "data-slot": "carousel-content",
127
109
  class: "overflow-hidden"
128
- }, [f("div", h({ class: w(e)("flex", w(a) === "horizontal" ? "-ml-4" : "-mt-4 flex-col", r.class) }, t.$attrs), [x(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));
129
111
  }
130
- }), L = ["aria-orientation"], R = [
131
- "aria-selected",
132
- "aria-label",
133
- "data-active",
134
- "onClick"
135
- ], z = /* @__PURE__ */ o(/* @__PURE__ */ m({
136
- __name: "CarouselDots",
137
- props: { class: { type: [
138
- Boolean,
139
- null,
140
- String,
141
- Object,
142
- Array
143
- ] } },
144
- setup(t) {
145
- let n = t, { carouselApi: r, orientation: i } = P(), a = y(0), o = y(0);
146
- function c() {
147
- let e = r.value;
148
- e && (a.value = e.selectedScrollSnap(), o.value = e.scrollSnapList().length);
149
- }
150
- function l(e) {
151
- r.value?.scrollTo(e);
152
- }
153
- return T(r, (e) => {
154
- e && (c(), e.on("select", c), e.on("reInit", c));
155
- }, { immediate: !0 }), _(c), (t, r) => o.value > 0 ? (v(), d("div", {
156
- key: 0,
157
- "data-slot": "carousel-dots",
158
- role: "tablist",
159
- "aria-orientation": w(i),
160
- class: g(w(e)("carousel-dots inline-flex items-center justify-center gap-1.5", w(i) === "vertical" && "flex-col", n.class))
161
- }, [(v(!0), d(s, null, b(o.value, (e) => (v(), d("button", {
162
- key: e - 1,
163
- type: "button",
164
- role: "tab",
165
- "aria-selected": e - 1 === a.value,
166
- "aria-label": `Go to slide ${e}`,
167
- "data-active": e - 1 === a.value ? "" : void 0,
168
- "data-slot": "carousel-dot",
169
- class: "carousel-dot focus-ring tap-squish",
170
- onClick: (t) => l(e - 1)
171
- }, null, 8, R))), 128))], 10, L)) : u("", !0);
172
- }
173
- }), [["__scopeId", "data-v-e87db23f"]]), B = /* @__PURE__ */ m({
112
+ }), N = /* @__PURE__ */ m({
174
113
  __name: "CarouselItem",
175
114
  props: { class: { type: [
176
115
  Boolean,
@@ -180,15 +119,15 @@ var F = /* @__PURE__ */ m({
180
119
  Array
181
120
  ] } },
182
121
  setup(t) {
183
- let n = t, { orientation: r } = P();
122
+ let n = t, { orientation: r } = A();
184
123
  return (t, i) => (v(), d("div", {
185
124
  "data-slot": "carousel-item",
186
125
  role: "group",
187
126
  "aria-roledescription": "slide",
188
- class: g(w(e)("min-w-0 shrink-0 grow-0 basis-full", w(r) === "horizontal" ? "pl-4" : "pt-4", n.class))
189
- }, [x(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));
190
129
  }
191
- }), V = /* @__PURE__ */ m({
130
+ }), P = /* @__PURE__ */ m({
192
131
  __name: "CarouselNext",
193
132
  props: {
194
133
  variant: { default: "outline" },
@@ -202,16 +141,16 @@ var F = /* @__PURE__ */ m({
202
141
  ] }
203
142
  },
204
143
  setup(t) {
205
- let n = t, { orientation: r, canScrollNext: i, scrollNext: o } = P();
206
- return (s, c) => (v(), l(w(a), {
144
+ let r = t, { orientation: i, canScrollNext: a, scrollNext: o } = A();
145
+ return (c, u) => (v(), l(C(s), {
207
146
  "data-slot": "carousel-next",
208
- disabled: !w(i),
209
- class: g(w(e)("absolute h-(--carousel-nav-size) w-(--carousel-nav-size) rounded-pill", w(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)),
210
149
  variant: t.variant,
211
150
  size: t.size,
212
- onClick: w(o)
151
+ onClick: C(o)
213
152
  }, {
214
- default: E(() => [x(s.$slots, "default", {}, () => [p(w(A)), c[0] ||= f("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)])]),
215
154
  _: 3
216
155
  }, 8, [
217
156
  "disabled",
@@ -221,11 +160,11 @@ var F = /* @__PURE__ */ m({
221
160
  "onClick"
222
161
  ]));
223
162
  }
224
- }), H = {
163
+ }), F = {
225
164
  key: 0,
226
165
  "data-slot": "carousel-pager-counter",
227
- class: "rounded-pill border border-border bg-card px-3 py-1 text-mono-caption tabular-nums"
228
- }, U = /* @__PURE__ */ m({
166
+ class: "glass-pager-ring text-mono-caption tabular-nums"
167
+ }, I = /* @__PURE__ */ m({
229
168
  __name: "CarouselPager",
230
169
  props: {
231
170
  showCounter: {
@@ -241,44 +180,44 @@ var F = /* @__PURE__ */ m({
241
180
  ] }
242
181
  },
243
182
  setup(t) {
244
- let o = t, { carouselApi: s, canScrollNext: f, canScrollPrev: m, orientation: h, scrollNext: b, scrollPrev: x } = P(), D = y(0), O = y(0);
245
- function k() {
246
- let e = s.value;
247
- e && (D.value = e.selectedScrollSnap(), O.value = e.scrollSnapList().length);
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() {
185
+ let e = f.value;
186
+ e && (O.value = e.selectedScrollSnap(), k.value = e.scrollSnapList().length);
248
187
  }
249
- T(s, (e) => {
250
- e && (k(), e.on("select", k), e.on("reInit", k));
251
- }, { immediate: !0 }), _(k);
252
- let A = c(() => h === "vertical" ? i : j), M = c(() => h === "vertical" ? n : r);
253
- return (n, r) => (v(), d("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", {
254
193
  "data-slot": "carousel-pager",
255
- class: g(w(e)("inline-flex items-center gap-2", w(h) === "vertical" && "flex-col", o.class))
194
+ class: g(C(e)("inline-flex items-center gap-2", C(b) === "vertical" && "flex-col", n.class))
256
195
  }, [
257
- p(w(a), {
196
+ p(C(s), {
258
197
  variant: "ghost",
259
198
  size: "icon",
260
- disabled: !w(m),
261
- "aria-label": w(h) === "vertical" ? "Previous slide (up)" : "Previous slide",
199
+ disabled: !C(h),
200
+ "aria-label": C(b) === "vertical" ? "Previous slide (up)" : "Previous slide",
262
201
  "data-slot": "carousel-pager-prev",
263
- onClick: w(x)
202
+ onClick: C(D)
264
203
  }, {
265
- default: E(() => [(v(), l(S(A.value), { class: "size-4" }))]),
204
+ default: T(() => [(v(), l(x(M.value), { class: "size-4" }))]),
266
205
  _: 1
267
206
  }, 8, [
268
207
  "disabled",
269
208
  "aria-label",
270
209
  "onClick"
271
210
  ]),
272
- t.showCounter && O.value > 0 ? (v(), d("span", H, C(D.value + 1) + " / " + C(O.value), 1)) : u("", !0),
273
- p(w(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), {
274
213
  variant: "ghost",
275
214
  size: "icon",
276
- disabled: !w(f),
277
- "aria-label": w(h) === "vertical" ? "Next slide (down)" : "Next slide",
215
+ disabled: !C(m),
216
+ "aria-label": C(b) === "vertical" ? "Next slide (down)" : "Next slide",
278
217
  "data-slot": "carousel-pager-next",
279
- onClick: w(b)
218
+ onClick: C(E)
280
219
  }, {
281
- default: E(() => [(v(), l(S(M.value), { class: "size-4" }))]),
220
+ default: T(() => [(v(), l(x(N.value), { class: "size-4" }))]),
282
221
  _: 1
283
222
  }, 8, [
284
223
  "disabled",
@@ -287,7 +226,7 @@ var F = /* @__PURE__ */ m({
287
226
  ])
288
227
  ], 2));
289
228
  }
290
- }), W = /* @__PURE__ */ m({
229
+ }), L = /* @__PURE__ */ m({
291
230
  __name: "CarouselPrevious",
292
231
  props: {
293
232
  variant: { default: "outline" },
@@ -300,17 +239,17 @@ var F = /* @__PURE__ */ m({
300
239
  Array
301
240
  ] }
302
241
  },
303
- setup(t) {
304
- let n = t, { orientation: r, canScrollPrev: i, scrollPrev: o } = P();
305
- return (s, c) => (v(), l(w(a), {
242
+ setup(n) {
243
+ let r = n, { orientation: i, canScrollPrev: a, scrollPrev: o } = A();
244
+ return (c, u) => (v(), l(C(s), {
306
245
  "data-slot": "carousel-previous",
307
- disabled: !w(i),
308
- class: g(w(e)("absolute h-(--carousel-nav-size) w-(--carousel-nav-size) rounded-pill", w(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)),
309
- variant: t.variant,
310
- size: t.size,
311
- onClick: w(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)
312
251
  }, {
313
- default: E(() => [x(s.$slots, "default", {}, () => [p(w(k)), c[0] ||= f("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)])]),
314
253
  _: 3
315
254
  }, 8, [
316
255
  "disabled",
@@ -320,11 +259,11 @@ var F = /* @__PURE__ */ m({
320
259
  "onClick"
321
260
  ]));
322
261
  }
323
- }), G = {
262
+ }), R = {
324
263
  key: 0,
325
264
  "data-slot": "glass-carousel-pager-counter",
326
265
  class: "rounded-pill border border-border bg-card px-3 py-1 text-mono-caption tabular-nums shadow-cartoon-sm"
327
- }, K = /* @__PURE__ */ m({
266
+ }, z = /* @__PURE__ */ m({
328
267
  __name: "GlassCarouselPager",
329
268
  props: {
330
269
  index: {},
@@ -351,45 +290,45 @@ var F = /* @__PURE__ */ m({
351
290
  "next",
352
291
  "select"
353
292
  ],
354
- setup(t, { emit: o }) {
355
- let s = t, f = o, m = c(() => s.loop ? s.total > 1 : s.index > 0), h = c(() => s.loop ? s.total > 1 : s.index < s.total - 1);
356
- function _() {
357
- m.value && (s.loop ? f("select", (s.index - 1 + s.total) % s.total) : (f("prev"), f("select", Math.max(0, s.index - 1))));
358
- }
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);
359
295
  function y() {
360
- h.value && (s.loop ? f("select", (s.index + 1) % s.total) : (f("next"), f("select", Math.min(s.total - 1, s.index + 1))));
296
+ h.value && (f.loop ? m("select", (f.index - 1 + f.total) % f.total) : (m("prev"), m("select", Math.max(0, f.index - 1))));
361
297
  }
362
- let b = c(() => s.orientation === "vertical" ? i : j), T = c(() => s.orientation === "vertical" ? n : r);
298
+ function w() {
299
+ _.value && (f.loop ? m("select", (f.index + 1) % f.total) : (m("next"), m("select", Math.min(f.total - 1, f.index + 1))));
300
+ }
301
+ let E = c(() => f.orientation === "vertical" ? r : o), D = c(() => f.orientation === "vertical" ? i : a);
363
302
  return (n, r) => (v(), d("div", {
364
303
  "data-slot": "glass-carousel-pager",
365
- class: g(w(e)("inline-flex items-center gap-2", t.orientation === "vertical" && "flex-col", "max-md:flex-wrap max-md:justify-center max-md:gap-2", s.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))
366
305
  }, [
367
- p(w(a), {
306
+ p(C(s), {
368
307
  variant: "outline",
369
308
  size: "icon",
370
- disabled: !m.value,
309
+ disabled: !h.value,
371
310
  "aria-label": t.orientation === "vertical" ? "Previous slide (up)" : "Previous slide",
372
311
  "data-slot": "glass-carousel-pager-prev",
373
- onClick: _
312
+ onClick: y
374
313
  }, {
375
- default: E(() => [(v(), l(S(b.value), { class: "size-4" }))]),
314
+ default: T(() => [(v(), l(x(E.value), { class: "size-4" }))]),
376
315
  _: 1
377
316
  }, 8, ["disabled", "aria-label"]),
378
- t.showCounter && t.total > 0 ? (v(), d("span", G, C(t.index + 1) + " / " + C(t.total), 1)) : u("", !0),
379
- p(w(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), {
380
319
  variant: "outline",
381
320
  size: "icon",
382
- disabled: !h.value,
321
+ disabled: !_.value,
383
322
  "aria-label": t.orientation === "vertical" ? "Next slide (down)" : "Next slide",
384
323
  "data-slot": "glass-carousel-pager-next",
385
- onClick: y
324
+ onClick: w
386
325
  }, {
387
- default: E(() => [(v(), l(S(T.value), { class: "size-4" }))]),
326
+ default: T(() => [(v(), l(x(D.value), { class: "size-4" }))]),
388
327
  _: 1
389
328
  }, 8, ["disabled", "aria-label"]),
390
- x(n.$slots, "trailing")
329
+ b(n.$slots, "trailing")
391
330
  ], 2));
392
331
  }
393
332
  });
394
333
  //#endregion
395
- export { F as Carousel, I as CarouselContent, z as CarouselDots, B as CarouselItem, V as CarouselNext, U as CarouselPager, W as CarouselPrevious, K as GlassCarouselPager, P 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-CP9qF1v4.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 };
@@ -0,0 +1 @@
1
+ export * from "./components/custom/color-swatch";
@@ -0,0 +1,47 @@
1
+ import { t as e } from "./cn-DJXf4yaB.js";
2
+ import { computed as t, createCommentVNode as n, createElementBlock as r, createElementVNode as i, defineComponent as a, mergeModels as o, mergeProps as s, normalizeClass as c, normalizeStyle as l, openBlock as u, toDisplayString as d, unref as f, useModel as p } from "vue";
3
+ //#region src/components/custom/color-swatch/ColorSwatch.vue?vue&type=script&setup=true&lang.ts
4
+ var m = ["value"], h = {
5
+ key: 0,
6
+ class: "color-swatch__hex text-mono-caption tabular-nums uppercase text-muted-foreground"
7
+ }, g = /* @__PURE__ */ a({
8
+ name: "ColorSwatch",
9
+ inheritAttrs: !1,
10
+ __name: "ColorSwatch",
11
+ props: /* @__PURE__ */ o({
12
+ size: { default: "md" },
13
+ showHex: {
14
+ type: Boolean,
15
+ default: !1
16
+ },
17
+ class: { type: [
18
+ Boolean,
19
+ null,
20
+ String,
21
+ Object,
22
+ Array
23
+ ] }
24
+ }, {
25
+ modelValue: { default: "#000000" },
26
+ modelModifiers: {}
27
+ }),
28
+ emits: ["update:modelValue"],
29
+ setup(a) {
30
+ let o = a, g = p(a, "modelValue"), _ = t(() => o.size === "sm" ? "h-7 w-7" : "h-8 w-8"), v = t(() => g.value.toUpperCase());
31
+ function y(e) {
32
+ g.value = e.target.value;
33
+ }
34
+ return (t, p) => (u(), r("span", { class: c(f(e)("color-swatch inline-flex items-center gap-2 align-middle", o.class)) }, [i("span", {
35
+ class: c(["color-swatch__chip relative inline-flex shrink-0 cursor-pointer overflow-hidden rounded-control border border-(--configurator-divider-section)", _.value]),
36
+ style: l({ backgroundColor: g.value })
37
+ }, [i("input", s({
38
+ type: "color",
39
+ value: g.value
40
+ }, t.$attrs, {
41
+ class: "color-swatch__input absolute inset-0 h-full w-full cursor-pointer appearance-none border-0 bg-transparent p-0 opacity-0",
42
+ onInput: y
43
+ }), null, 16, m)], 6), a.showHex ? (u(), r("code", h, d(v.value), 1)) : n("", !0)], 2));
44
+ }
45
+ });
46
+ //#endregion
47
+ export { g as ColorSwatch };
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-CUYeFbgd.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 "./color-DweYl7pE.js";
2
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 };
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-RowNEO6i.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 {};