@mkbabb/glass-ui 3.13.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (304) hide show
  1. package/dist/CardAction-XH4YBVEK.js +158 -0
  2. package/dist/{CommandShortcut-RowNEO6i.js → CommandShortcut-DdtWXxOK.js} +57 -52
  3. package/dist/{ContextMenuSubContent-BQmxTAdw.js → ContextMenuSubContent-B0Vs6atR.js} +1 -1
  4. package/dist/{DataTable-BCddn3T3.js → DataTable-C464Zbqd.js} +99 -97
  5. package/dist/DialogContent-DDE6pQBU.js +103 -0
  6. package/dist/{DialogFooter-Blu4t7tJ.js → DialogFooter-8eZbdmPc.js} +1 -1
  7. package/dist/FadingScroll-DwNnvKMs.js +76 -0
  8. package/dist/{HoverPopover-CISOJQuZ.js → HoverPopover-Dpzwvc4t.js} +1 -1
  9. package/dist/IconChip-BDw1j5mu.js +54 -0
  10. package/dist/{MetricBadge-C9QMz1KT.js → MetricBadge-BpC0R_Ec.js} +1 -1
  11. package/dist/{Notification-DdwNxIrI.js → Notification-DKjKsQq8.js} +8 -8
  12. package/dist/{NumberFieldContent-CqaN-SvN.js → NumberFieldContent-1VtwDSgf.js} +1 -1
  13. package/dist/PopoverContent-BTorlp--.js +127 -0
  14. package/dist/{Progress-DwlUKGbr.js → Progress-hAT4gqGH.js} +97 -77
  15. package/dist/{ScrollingText-DfFrwSph.js → ScrollingText-CUVFTWk2.js} +2 -2
  16. package/dist/{SelectScrollDownButton-CiDUxfEj.js → SelectScrollDownButton-C1jb3b3K.js} +22 -6
  17. package/dist/{Switch-CsIuYP_e.js → Switch-Dr--uLGH.js} +1 -1
  18. package/dist/{Toaster-D6q4HtXu.js → Toaster-Bm_HQSpc.js} +6 -6
  19. package/dist/{ToggleGroupItem-D_AHlRw9.js → ToggleGroupItem-Dzk9hWsF.js} +1 -1
  20. package/dist/animated-digit.js +2 -2
  21. package/dist/api/index.d.ts +8 -5
  22. package/dist/api.js +2 -2
  23. package/dist/aurora.js +132 -117
  24. package/dist/{button-ChXMfsud.js → button-BNDWhAZb.js} +2 -2
  25. package/dist/button.js +1 -1
  26. package/dist/card.js +1 -1
  27. package/dist/carousel.d.ts +1 -1
  28. package/dist/carousel.js +97 -141
  29. package/dist/collapsible.js +1 -1
  30. package/dist/color-swatch.d.ts +1 -0
  31. package/dist/color-swatch.js +47 -0
  32. package/dist/color.js +1 -1
  33. package/dist/command.js +1 -1
  34. package/dist/components/custom/aurora/constants/presets.d.ts +28 -0
  35. package/dist/components/custom/aurora/constants/renderMode.d.ts +2 -0
  36. package/dist/components/custom/aurora/index.d.ts +1 -1
  37. package/dist/components/custom/color-swatch/ColorSwatch.vue.d.ts +22 -0
  38. package/dist/components/custom/color-swatch/index.d.ts +1 -0
  39. package/dist/components/custom/configurator/Configurator.vue.d.ts +19 -8
  40. package/dist/components/custom/constellation/Constellation.vue.d.ts +18 -206
  41. package/dist/components/custom/constellation/composables/useConstellation.d.ts +26 -0
  42. package/dist/components/custom/constellation/constellationField.d.ts +2 -369
  43. package/dist/components/custom/constellation/constellationTypes.d.ts +369 -0
  44. package/dist/components/custom/constellation/index.d.ts +1 -1
  45. package/dist/components/custom/dock/DockRail.vue.d.ts +17 -16
  46. package/dist/components/custom/dock/DockSection.vue.d.ts +69 -0
  47. package/dist/components/custom/dock/DockSeparator.vue.d.ts +49 -1
  48. package/dist/components/custom/dock/DockTabButton.vue.d.ts +5 -5
  49. package/dist/components/custom/dock/constants.d.ts +35 -0
  50. package/dist/components/custom/dock/index.d.ts +2 -0
  51. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +10 -0
  52. package/dist/components/custom/fading-scroll/FadingScroll.vue.d.ts +25 -0
  53. package/dist/components/custom/fading-scroll/composables/useFadingScroll.d.ts +31 -0
  54. package/dist/components/custom/fading-scroll/constants.d.ts +19 -0
  55. package/dist/components/custom/fading-scroll/index.d.ts +2 -0
  56. package/dist/components/custom/fourier-field/FourierField.vue.d.ts +7 -0
  57. package/dist/components/custom/fourier-field/index.d.ts +1 -1
  58. package/dist/components/custom/fourier-field/math.d.ts +17 -0
  59. package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +8 -0
  60. package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +11 -1
  61. package/dist/components/custom/goo-blob/constants.d.ts +6 -1
  62. package/dist/components/custom/handmark/HandMark.vue.d.ts +29 -0
  63. package/dist/components/custom/handmark/brush.d.ts +269 -0
  64. package/dist/components/custom/handmark/composables/useHandMark.d.ts +89 -0
  65. package/dist/components/custom/handmark/constants.d.ts +39 -0
  66. package/dist/components/custom/handmark/freehand.d.ts +69 -0
  67. package/dist/components/custom/handmark/geometry.d.ts +52 -0
  68. package/dist/components/custom/handmark/index.d.ts +27 -0
  69. package/dist/components/custom/handmark/ink.d.ts +11 -0
  70. package/dist/components/custom/handmark/texture.d.ts +39 -0
  71. package/dist/components/custom/handmark/types.d.ts +62 -0
  72. package/dist/components/custom/icon-chip/IconChip.vue.d.ts +4 -0
  73. package/dist/components/custom/icon-chip/index.d.ts +2 -0
  74. package/dist/components/custom/icon-chip/types.d.ts +72 -0
  75. package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +15 -2
  76. package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +39 -0
  77. package/dist/components/custom/pager-dots/index.d.ts +2 -0
  78. package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +20 -25
  79. package/dist/components/custom/tabs/composables/useTabIndicator.d.ts +30 -21
  80. package/dist/components/custom/tabs/constants.d.ts +9 -3
  81. package/dist/components/custom/tabs/index.d.ts +1 -1
  82. package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +14 -0
  83. package/dist/components/ui/_shared/index.d.ts +2 -0
  84. package/dist/components/ui/_shared/menuItemVariants.d.ts +19 -0
  85. package/dist/components/ui/_shared/useSurfaceAxis.d.ts +41 -0
  86. package/dist/components/ui/card/Card.vue.d.ts +1 -1
  87. package/dist/components/ui/carousel/index.d.ts +0 -1
  88. package/dist/components/ui/command/Command.vue.d.ts +3 -0
  89. package/dist/components/ui/dialog/DialogContent.vue.d.ts +8 -3
  90. package/dist/components/ui/drawer/DrawerContent.vue.d.ts +5 -0
  91. package/dist/components/ui/index.d.ts +0 -1
  92. package/dist/components/ui/popover/PopoverContent.vue.d.ts +3 -0
  93. package/dist/components/ui/progress/ProgressSectioned.vue.d.ts +14 -3
  94. package/dist/components/ui/select/SelectTrigger.vue.d.ts +27 -4
  95. package/dist/components/ui/sheet/SheetContent.vue.d.ts +6 -0
  96. package/dist/components/ui/skeleton/Skeleton.vue.d.ts +3 -0
  97. package/dist/composables/dark/index.d.ts +1 -1
  98. package/dist/composables/dark/useGlobalDark.d.ts +23 -1
  99. package/dist/composables/motion/useViewTransition.d.ts +36 -1
  100. package/dist/configurator.js +1 -1
  101. package/dist/confirm-dialog.js +2 -2
  102. package/dist/constellation.js +92 -94
  103. package/dist/context-menu.js +2 -2
  104. package/dist/controls.js +10 -4
  105. package/dist/dark.d.ts +1 -1
  106. package/dist/dark.js +1 -1
  107. package/dist/data-table.js +1 -1
  108. package/dist/dialog.js +2 -2
  109. package/dist/dock.js +510 -321
  110. package/dist/{dockContext-BegmJVmx.js → dockContext-Bu1Avy-a.js} +1 -1
  111. package/dist/dom.js +5 -5
  112. package/dist/{dropdown-menu-DzkkyBwX.js → dropdown-menu-BJ7E9js_.js} +2 -2
  113. package/dist/dropdown-menu.js +1 -1
  114. package/dist/expandable-container.js +42 -38
  115. package/dist/fading-scroll.d.ts +1 -0
  116. package/dist/fading-scroll.js +2 -0
  117. package/dist/forms.js +3 -3
  118. package/dist/fourier-field.js +38 -37
  119. package/dist/fourier-math.js +2 -2
  120. package/dist/glass-panel.js +39 -36
  121. package/dist/glass-ui.css +1 -1
  122. package/dist/glass-ui.js +129 -145
  123. package/dist/goo-blob.js +86 -81
  124. package/dist/handmark.d.ts +1 -0
  125. package/dist/handmark.js +707 -0
  126. package/dist/header-ribbon.js +1 -1
  127. package/dist/hover-card.js +1 -1
  128. package/dist/hover-popover.js +1 -1
  129. package/dist/icon-chip.d.ts +1 -0
  130. package/dist/icon-chip.js +2 -0
  131. package/dist/icon-tooltip.js +1 -1
  132. package/dist/index.d.ts +2 -2
  133. package/dist/keyboard.js +1 -1
  134. package/dist/label.js +1 -1
  135. package/dist/labeled-field.js +6 -6
  136. package/dist/{math-U6-RrLmV.js → math-DeuJwLFx.js} +11 -3
  137. package/dist/{menuItemVariants-DPiEarb0.js → menuItemVariants-DWRQXBxJ.js} +10 -4
  138. package/dist/metric-badge.js +1 -1
  139. package/dist/metric-cell.js +25 -22
  140. package/dist/metric-stack.js +1 -1
  141. package/dist/motion-core.js +33 -32
  142. package/dist/motion-curves.js +1 -1
  143. package/dist/motion.js +4 -4
  144. package/dist/notification.js +1 -1
  145. package/dist/number-field.js +1 -1
  146. package/dist/pager-dots.d.ts +1 -0
  147. package/dist/pager-dots.js +91 -0
  148. package/dist/paper-backdrop.js +1 -1
  149. package/dist/popover.js +1 -1
  150. package/dist/{presets-BKVyQfbt.js → presets-BW2b-fr1.js} +14 -1
  151. package/dist/progress.js +1 -1
  152. package/dist/pulse.js +1 -1
  153. package/dist/reactive.js +2 -2
  154. package/dist/scrolling-text.js +1 -1
  155. package/dist/search.js +5 -5
  156. package/dist/select.js +3 -3
  157. package/dist/separator.js +1 -1
  158. package/dist/{sheet-1fChZjtw.js → sheet-CquRYOAw.js} +59 -55
  159. package/dist/sheet.js +1 -1
  160. package/dist/{slider-B-JP2JlI.js → slider-DQ95MET2.js} +7 -7
  161. package/dist/slider.js +1 -1
  162. package/dist/sortable-list.js +3 -3
  163. package/dist/styles/animations.css +11 -26
  164. package/dist/styles/components.css +1 -1
  165. package/dist/styles/configurator.css +35 -0
  166. package/dist/styles/dock/density.css +19 -0
  167. package/dist/styles/dock/overflow.css +15 -0
  168. package/dist/styles/dock/rail-extend.css +168 -71
  169. package/dist/styles/dock/section.css +59 -0
  170. package/dist/styles/dock/shell.css +34 -5
  171. package/dist/styles/dock-controls/icon-button.css +11 -1
  172. package/dist/styles/dock-controls/tab-button.css +24 -83
  173. package/dist/styles/dock-controls/triggers.css +7 -0
  174. package/dist/styles/dock.css +6 -3
  175. package/dist/styles/drawer.css +46 -0
  176. package/dist/styles/feedback-tone.css +104 -0
  177. package/dist/styles/glass/ladder.css +68 -22
  178. package/dist/styles/glass/surface-axis.css +113 -0
  179. package/dist/styles/glass/surfaces.css +88 -12
  180. package/dist/styles/glass.css +5 -2
  181. package/dist/styles/icon-chip.css +149 -0
  182. package/dist/styles/index.css +67 -5
  183. package/dist/styles/instrument-chassis.css +42 -0
  184. package/dist/styles/menu.css +127 -0
  185. package/dist/styles/segmented-tabs.css +160 -89
  186. package/dist/styles/select.css +50 -0
  187. package/dist/styles/theme/bridges.css +11 -1
  188. package/dist/styles/tokens/color-radius.css +40 -13
  189. package/dist/styles/tokens/dark-arm.css +124 -16
  190. package/dist/styles/tokens/glass.css +83 -23
  191. package/dist/styles/tokens/light-dark.css +48 -19
  192. package/dist/styles/tokens/offsets-sizing.css +62 -0
  193. package/dist/styles/tokens/property-regs.css +3 -10
  194. package/dist/styles/tokens/scale-paper.css +45 -2
  195. package/dist/styles/tokens/scheme-motion.css +32 -14
  196. package/dist/styles/transitions.css +7 -7
  197. package/dist/styles/typography/scale.css +153 -0
  198. package/dist/styles/typography/semantic.css +220 -0
  199. package/dist/styles/typography/utilities.css +159 -0
  200. package/dist/styles/typography.css +23 -507
  201. package/dist/styles/utilities/a11y-overrides.css +33 -4
  202. package/dist/styles/utilities/base.css +177 -1
  203. package/dist/styles/utilities/btn.css +18 -201
  204. package/dist/styles/view-transition.css +4 -1
  205. package/dist/switch.js +1 -1
  206. package/dist/tabs.js +154 -183
  207. package/dist/timeline.js +2 -2
  208. package/dist/toast.js +1 -1
  209. package/dist/toggle-chip.js +3 -1
  210. package/dist/toggle-group.js +1 -1
  211. package/dist/typewriter.js +1 -1
  212. package/dist/{useAnimatedNumber-C5I3wWd8.js → useAnimatedNumber-C_3wZLx4.js} +1 -1
  213. package/dist/useConfiguratorState-kiIlun8I.js +303 -0
  214. package/dist/{useGlobalDark-yhL4Wp-s.js → useGlobalDark-C28t0VWJ.js} +22 -3
  215. package/dist/{useRAFLoop-Bxv0o6L5.js → useRAFLoop-CdwJ7284.js} +1 -1
  216. package/dist/{useSpringMount-CI2jOstM.js → useSpringMount-CvopqiFr.js} +1 -1
  217. package/dist/useSurfaceAxis-CMnF2zHb.js +7 -0
  218. package/dist/{useTouchGate-Dg7MQI1G.js → useTouchGate-28Tk2-t2.js} +1 -1
  219. package/dist/{vReveal-CqaCz_mC.js → useViewTransition-COsPjQVZ.js} +15 -12
  220. package/dist/vReveal-D9k0jADx.js +10 -0
  221. package/dist/watercolor-dot.js +12 -5
  222. package/package.json +71 -7
  223. package/src/styles/animations.css +11 -26
  224. package/src/styles/configurator.css +35 -0
  225. package/src/styles/dock/density.css +19 -0
  226. package/src/styles/dock/overflow.css +15 -0
  227. package/src/styles/dock/rail-extend.css +168 -71
  228. package/src/styles/dock/section.css +59 -0
  229. package/src/styles/dock/shell.css +34 -5
  230. package/src/styles/dock-controls/icon-button.css +11 -1
  231. package/src/styles/dock-controls/tab-button.css +24 -83
  232. package/src/styles/dock-controls/triggers.css +7 -0
  233. package/src/styles/dock.css +6 -3
  234. package/src/styles/drawer.css +42 -0
  235. package/src/styles/feedback-tone.css +104 -0
  236. package/src/styles/glass/ladder.css +68 -22
  237. package/src/styles/glass/surface-axis.css +113 -0
  238. package/src/styles/glass/surfaces.css +88 -12
  239. package/src/styles/glass.css +5 -2
  240. package/src/styles/icon-chip.css +149 -0
  241. package/src/styles/index.css +66 -4
  242. package/src/styles/instrument-chassis.css +42 -0
  243. package/src/styles/menu.css +127 -0
  244. package/src/styles/segmented-tabs.css +156 -87
  245. package/src/styles/select.css +50 -0
  246. package/src/styles/theme/bridges.css +11 -1
  247. package/src/styles/tokens/color-radius.css +40 -13
  248. package/src/styles/tokens/dark-arm.css +124 -16
  249. package/src/styles/tokens/glass.css +83 -23
  250. package/src/styles/tokens/light-dark.css +48 -19
  251. package/src/styles/tokens/offsets-sizing.css +62 -0
  252. package/src/styles/tokens/property-regs.css +3 -10
  253. package/src/styles/tokens/scale-paper.css +45 -2
  254. package/src/styles/tokens/scheme-motion.css +32 -14
  255. package/src/styles/transitions.css +7 -7
  256. package/src/styles/typography/scale.css +153 -0
  257. package/src/styles/typography/semantic.css +220 -0
  258. package/src/styles/typography/utilities.css +159 -0
  259. package/src/styles/typography.css +23 -507
  260. package/src/styles/utilities/a11y-overrides.css +33 -4
  261. package/src/styles/utilities/base.css +177 -1
  262. package/src/styles/utilities/btn.css +18 -201
  263. package/src/styles/view-transition.css +4 -1
  264. package/dist/CardAction-Cj2eycQ2.js +0 -157
  265. package/dist/DialogContent-Dl9WkAoS.js +0 -100
  266. package/dist/PopoverContent-BYwt2-4x.js +0 -121
  267. package/dist/TabsList-Dttss653.js +0 -105
  268. package/dist/components/custom/underline/GlassUnderline.vue.d.ts +0 -84
  269. package/dist/components/custom/underline/index.d.ts +0 -2
  270. package/dist/components/custom/underline/types.d.ts +0 -56
  271. package/dist/components/ui/carousel/CarouselDots.vue.d.ts +0 -4
  272. package/dist/underline.d.ts +0 -1
  273. package/dist/underline.js +0 -85
  274. package/dist/useConfiguratorState-DAoeHVue.js +0 -287
  275. /package/dist/{CollapsibleContent-CP9qF1v4.js → CollapsibleContent-C_s6fG7r.js} +0 -0
  276. /package/dist/{ContextMenuContent-CT3AS1WX.js → ContextMenuContent-ON3x7cuk.js} +0 -0
  277. /package/dist/{HoverCardContent-Csywg3YF.js → HoverCardContent-DkMaQzH5.js} +0 -0
  278. /package/dist/{IconTooltip-DPzE09X9.js → IconTooltip-DSjasZIt.js} +0 -0
  279. /package/dist/{Input-DWQQIOC4.js → Input-DVG_J0ne.js} +0 -0
  280. /package/dist/{Label-r3WzWrsj.js → Label-Ck9SWEKM.js} +0 -0
  281. /package/dist/{ModalOverlay-DVLI2VRr.js → ModalOverlay-CkPRRgl_.js} +0 -0
  282. /package/dist/{PaperBackdrop-DIXTtVq6.js → PaperBackdrop-nBKe0vkB.js} +0 -0
  283. /package/dist/{SelectGroup-aumMgWLs.js → SelectGroup-Dcczq44n.js} +0 -0
  284. /package/dist/{SelectSeparator-BQ_1Fcbp.js → SelectSeparator-DK2y1Bun.js} +0 -0
  285. /package/dist/{Separator-0JE6LtNu.js → Separator-BArl4OaB.js} +0 -0
  286. /package/dist/{_plugin-vue_export-helper-ok8pgSl5.js → _plugin-vue_export-helper-CBt_VvXa.js} +0 -0
  287. /package/dist/{color-CUYeFbgd.js → color-DweYl7pE.js} +0 -0
  288. /package/dist/{compile-B7NGOBcP.js → compile-EXXzEr1q.js} +0 -0
  289. /package/dist/{constants-CS75AWHG.js → constants-BPOqYJAm.js} +0 -0
  290. /package/dist/{createContext-BM46COQ-.js → createContext-B2RaZ-b8.js} +0 -0
  291. /package/dist/{prng-D27-B3tK.js → prng-Cg22zv8g.js} +0 -0
  292. /package/dist/{springPresets--YdWTHtm.js → springPresets-WXaLbu8u.js} +0 -0
  293. /package/dist/{useIntersectionPause-Cc-H9ees.js → useIntersectionPause-Bj4sPkMh.js} +0 -0
  294. /package/dist/{useInterval-iHludrxk.js → useInterval-CNdua40W.js} +0 -0
  295. /package/dist/{useKeyboardShortcuts-Be3w_Rwk.js → useKeyboardShortcuts-BXWXOZ-9.js} +0 -0
  296. /package/dist/{useLiquidFlex-BL0lLLN2.js → useLiquidFlex-C12hXwOZ.js} +0 -0
  297. /package/dist/{useResizeObserver-BhgdhOIj.js → useResizeObserver-V6nq5gJb.js} +0 -0
  298. /package/dist/{useResolveTokenColor-Dvn2RZJW.js → useResolveTokenColor-NUG2zYAW.js} +0 -0
  299. /package/dist/{useScrollProgress-Dlvx-L3v.js → useScrollProgress-D7bYU2RK.js} +0 -0
  300. /package/dist/{useSortable-muI29agz.js → useSortable-BVqlJRBR.js} +0 -0
  301. /package/dist/{useTextHighlight-DmRYkOBx.js → useTextHighlight-NmBM5V_4.js} +0 -0
  302. /package/dist/{useTimer-Dzarvzuk.js → useTimer-B_PAasDL.js} +0 -0
  303. /package/dist/{useUserInvalidAria-B2h6jAM_.js → useUserInvalidAria-CDfJuakL.js} +0 -0
  304. /package/dist/{useViewportReady-B40FK4Pa.js → useViewportReady-CvBcCYDf.js} +0 -0
@@ -1,2 +1,4 @@
1
1
  export { menuItemVariants } from "./menuItemVariants";
2
2
  export type { MenuItemVariants } from "./menuItemVariants";
3
+ export { surfaceClass } from "./useSurfaceAxis";
4
+ export type { Surface, SurfaceTier } from "./useSurfaceAxis";
@@ -24,8 +24,27 @@ import { type VariantProps } from "class-variance-authority";
24
24
  *
25
25
  * Indicator slot variants reserve the gutter for radio-dot / check / chevron
26
26
  * indicator spans the consumer SFCs render absolutely-positioned.
27
+ *
28
+ * Surface axis (BA.W-MENU-GLASS) — the menu-row's MATERIAL register, an
29
+ * EXPRESSION of the shared {glass·veil·opaque} surface-decoration axis
30
+ * (`_shared/useSurfaceAxis.ts` / `glass/surface-axis.css`), NOT a second axis:
31
+ * - `glass` (DEFAULT, glass-first canon AX.W54) — the `.glass-menu-row` recipe
32
+ * (`src/styles/menu.css`): the hover / focus / `data-highlighted` / open states
33
+ * paint the ELEMENT-LEVEL glass-quiet oklab tint (so the row darkens-over-light
34
+ * AND lifts-over-dark per W-DARK-MATERIAL's tint arm) + a PRM-gated `translateY`
35
+ * hover-lift, the 44px touch floor, the iOS-grade glassy hover-lift plate. The
36
+ * flat `bg-accent` utilities are DROPPED on this arm — the cascade-trap-safe
37
+ * shape: with no unlayered `hover:bg-accent` utility the ONLY background-painters
38
+ * are the `@layer components` `.interactive-item:hover` accent rule and the
39
+ * `.glass-menu-row` recipe (imported AFTER utilities.css so it source-order-wins
40
+ * at equal specificity+layer — the AZ dock-rail `@layer`-loses-to-utility trap
41
+ * pre-empted: never re-add an unlayered flat-accent utility here).
42
+ * - `accent` — the EXPLICIT flat-accent escape (the prior default's look). A clean
43
+ * break, NOT a back-compat alias (BA inv-7): a consumer that wants the flat fill
44
+ * opts in via `surface="accent"`.
27
45
  */
28
46
  export declare const menuItemVariants: (props?: ({
47
+ surface?: "accent" | "glass" | null | undefined;
29
48
  indicator?: "start" | "none" | "start-wide" | null | undefined;
30
49
  density?: "comfortable" | "audacious" | null | undefined;
31
50
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
@@ -0,0 +1,41 @@
1
+ /**
2
+ * The shared surface-decoration axis — three rungs, ONE grammar.
3
+ *
4
+ * glass — the resolved tier's plain glass rung (default). The translucent
5
+ * blur surface, the maximal glass-first register.
6
+ * veil — the borderless/rimless text-legibility plate: the `--glass-bg-quiet`
7
+ * fill + blur with the box border AND rim STRIPPED (the boxed look
8
+ * reads as a dividing line on a text plate). Reads the same `--glass-*`
9
+ * ladder + W55 `--glass-tint-*` seam, so `--glass-level` / the bright
10
+ * bucket retune it in lockstep with every glass surface.
11
+ * opaque — the `--glass-level:0` solid-card escape: solid `--card` + `blur(0)`
12
+ * through the ONE level knob. The explicit opt-out from the maximal
13
+ * glass default.
14
+ */
15
+ export type Surface = "glass" | "veil" | "opaque";
16
+ /**
17
+ * The 5-rung glass-ladder tier the surface paints its base over. Mirrors the
18
+ * `.glass-{wash,quiet,resting,floating,overlay}` ladder. A surface passes the rung
19
+ * it already paints (Card's `resting`, Dialog/Sheet/Popover's `floating`); the
20
+ * resolver maps it to the `glass-${tier}` base class. `opaque` is NOT a ladder
21
+ * rung here — it is a decoration on TOP of a base tier (the `.glass-opaque`
22
+ * escape keeps the tier's edge/rim), exactly as Card composes it.
23
+ */
24
+ export type SurfaceTier = "wash" | "quiet" | "resting" | "floating" | "overlay";
25
+ /**
26
+ * Resolve a (surface, tier) pair to the class string a surface composes. Pairs
27
+ * with a `:data-surface="surface"` attribute binding on the same element — the
28
+ * CSS seam (`surface-axis.css`) reads the attr to apply the veil/opaque
29
+ * decoration UNIFORMLY, while this resolver emits the back-compat decoration
30
+ * classes (`veil-surface` / `glass-opaque`) so Card's three shared rungs stay
31
+ * byte-identical and a surface composing the class set alone (no attr) still
32
+ * paints correctly.
33
+ *
34
+ * surfaceClass("glass", "floating") → "glass-floating"
35
+ * surfaceClass("veil", "floating") → "glass-floating veil-surface"
36
+ * surfaceClass("opaque", "floating") → "glass-floating glass-opaque"
37
+ *
38
+ * @param surface the decoration rung (`glass` default · `veil` · `opaque`)
39
+ * @param tier the base ladder rung (default `resting`)
40
+ */
41
+ export declare function surfaceClass(surface?: Surface, tier?: SurfaceTier): string;
@@ -78,8 +78,8 @@ type __VLS_Slots = {} & {
78
78
  declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
79
79
  shadow: boolean;
80
80
  as: import("reka-ui").AsTag | import("vue").Component;
81
- tier: CardTier;
82
81
  surface: CardSurface;
82
+ tier: CardTier;
83
83
  grain: boolean;
84
84
  specular: CardSpecular;
85
85
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -1,6 +1,5 @@
1
1
  export { default as Carousel } from './Carousel.vue';
2
2
  export { default as CarouselContent } from './CarouselContent.vue';
3
- export { default as CarouselDots } from './CarouselDots.vue';
4
3
  export { default as CarouselItem } from './CarouselItem.vue';
5
4
  export { default as CarouselNext } from './CarouselNext.vue';
6
5
  export { default as CarouselPager } from './CarouselPager.vue';
@@ -1,7 +1,9 @@
1
1
  import { type HTMLAttributes } from 'vue';
2
2
  import type { ComboboxRootProps } from 'reka-ui';
3
+ import { type Surface } from '../_shared/useSurfaceAxis';
3
4
  type __VLS_Props = ComboboxRootProps & {
4
5
  class?: HTMLAttributes['class'];
6
+ surface?: Surface;
5
7
  };
6
8
  declare var __VLS_8: {};
7
9
  type __VLS_Slots = {} & {
@@ -24,6 +26,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
24
26
  }>, {
25
27
  modelValue: import("reka-ui").AcceptableValue | import("reka-ui").AcceptableValue[];
26
28
  open: boolean;
29
+ surface: Surface;
27
30
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
28
31
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
29
32
  declare const _default: typeof __VLS_export;
@@ -1,10 +1,15 @@
1
1
  import { type HTMLAttributes } from 'vue';
2
2
  import { type DialogContentProps } from 'reka-ui';
3
3
  import { type SpringPreset } from '../../../composables/motion/useSpringMount';
4
+ import { type Surface } from '../_shared/useSurfaceAxis';
4
5
  type __VLS_Props = DialogContentProps & {
5
6
  class?: HTMLAttributes['class'];
6
- /** Visual variant: "glass" (translucent blur, default) or "opaque" (solid background). */
7
- variant?: 'glass' | 'opaque';
7
+ /** Surface decoration register (BA.W-SURFACE-AXIS) — the SHARED
8
+ * {glass·veil·opaque} axis. `glass` (translucent blur, default) renders the
9
+ * floating glass tier; `veil` overlays the borderless/rimless text-legibility
10
+ * plate; `opaque` sets `--glass-level:0` (the solid-card escape). Replaces the
11
+ * retired binary `variant: glass|opaque` (clean break). */
12
+ surface?: Surface;
8
13
  /**
9
14
  * Optional CSS `animation` shorthand forwarded to the portaled scrim
10
15
  * via the `--scrim-animation` typed cascade variable. reka-ui's
@@ -66,7 +71,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
66
71
  onOpenAutoFocus?: ((event: Event) => any) | undefined;
67
72
  onCloseAutoFocus?: ((event: Event) => any) | undefined;
68
73
  }>, {
69
- variant: "glass" | "opaque";
74
+ surface: Surface;
70
75
  showClose: boolean;
71
76
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
72
77
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -1,5 +1,6 @@
1
1
  import type { DialogContentProps } from 'reka-ui';
2
2
  import type { HtmlHTMLAttributes } from 'vue';
3
+ import { type Surface } from '../_shared/useSurfaceAxis';
3
4
  /**
4
5
  * `showOverlay` — render the scrim (AN.W3). Defaults `true` for the modal
5
6
  * sheet. The live-behind pattern (`<Drawer mode="live-behind">`) passes
@@ -11,6 +12,9 @@ import type { HtmlHTMLAttributes } from 'vue';
11
12
  type __VLS_Props = DialogContentProps & {
12
13
  class?: HtmlHTMLAttributes['class'];
13
14
  showOverlay?: boolean;
15
+ /** Surface decoration register (BA.W-SURFACE-AXIS) — the SHARED
16
+ * {glass·veil·opaque} axis on top of the `.glass-drawer` recipe. */
17
+ surface?: Surface;
14
18
  };
15
19
  declare var __VLS_19: {};
16
20
  type __VLS_Slots = {} & {
@@ -31,6 +35,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
31
35
  onOpenAutoFocus?: ((event: Event) => any) | undefined;
32
36
  onCloseAutoFocus?: ((event: Event) => any) | undefined;
33
37
  }>, {
38
+ surface: Surface;
34
39
  showOverlay: boolean;
35
40
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
36
41
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -32,7 +32,6 @@ export * from "./skeleton";
32
32
  export * from "./slider";
33
33
  export * from "./switch";
34
34
  export * from "./table";
35
- export * from "./tabs";
36
35
  export * from "./tags-input";
37
36
  export * from "./textarea";
38
37
  export * from "./toast";
@@ -1,8 +1,10 @@
1
1
  import { type HTMLAttributes } from 'vue';
2
2
  import { type PopoverContentProps } from 'reka-ui';
3
+ import { type Surface } from '../_shared/useSurfaceAxis';
3
4
  type __VLS_Props = PopoverContentProps & {
4
5
  class?: HTMLAttributes['class'];
5
6
  portal?: boolean;
7
+ surface?: Surface;
6
8
  };
7
9
  declare var __VLS_14: {}, __VLS_23: {};
8
10
  type __VLS_Slots = {} & {
@@ -26,6 +28,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
26
28
  onCloseAutoFocus?: ((event: Event) => any) | undefined;
27
29
  }>, {
28
30
  align: "start" | "center" | "end";
31
+ surface: Surface;
29
32
  sideOffset: number;
30
33
  portal: boolean;
31
34
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -2,9 +2,20 @@ import { type HTMLAttributes } from "vue";
2
2
  import { type ProgressRootProps } from "reka-ui";
3
3
  import { type ProgressSegment } from "./useProgressGeometry";
4
4
  /**
5
- * Sectioned progress variant — the phase-bus (AB.W3.T2). Renders N colour-coded
6
- * cells with gradient seams between siblings; the active cell carries a spring
7
- * fill driven by `activeProgress` and a living catch-light sweep.
5
+ * Sectioned progress variant — the phase-bus (AB.W3.T2; rebuilt on a SINGLE-FILL
6
+ * gradient paint model at BA.W-PROGRESS-GRADIENT). The bar reads as ONE continuous
7
+ * blended liquid filling a frosted recessed glass channel: segment colours hold
8
+ * their identity across their span and blend over short transition zones at the
9
+ * boundaries, the active front carries the single pill cap + catch-light, and
10
+ * pending phases keep their real hue as a faint ghost on the track.
11
+ *
12
+ * The paint is NOT per-cell rectangles. ONE `.progress-sectioned-flow` element
13
+ * spans the cumulative filled extent (`filledExtentPct`, derived off the same
14
+ * `useProgressGeometry` cells[]) and paints ONE `linear-gradient` whose stops are
15
+ * the segment colours (hard stop-pairs hold each hue crisp; short soft zones at
16
+ * the boundaries give the blend). No screen-seam band, no internal pill caps, no
17
+ * dead notch. The pending remainder of the recessed track carries a faint
18
+ * phase-tinted ghost gradient built from the pending cells' own colours.
8
19
  *
9
20
  * The single `modelValue` is NOT the truth here — the per-cell state map is. The
10
21
  * underlying `[role="progressbar"]` reports a numeric `aria-valuenow` derived from
@@ -2,17 +2,40 @@ import { type HTMLAttributes } from 'vue';
2
2
  import { type SelectTriggerProps } from 'reka-ui';
3
3
  type __VLS_Props = SelectTriggerProps & {
4
4
  class?: HTMLAttributes['class'];
5
- /** 'default' = glass bg; 'ghost' = transparent, no border/shadow */
5
+ /** 'default' = the shared control REST surface (BA.W-SURFACE-AXIS scope 7 —
6
+ * the `.control-surface` register every form control reads at rest, off the
7
+ * prior `glass-wash` gray fork); 'ghost' = transparent, no border/shadow */
6
8
  variant?: 'default' | 'ghost';
7
- /** Height register: 'default' = h-10 (byte-identical), 'sm' = h-9 (compact controls) */
8
- size?: 'sm' | 'default';
9
+ /**
10
+ * The trigger register — a TWO-RANGE axis (BA.W-MENU-GLASS / BA-VJS-4 WO-3):
11
+ * • HEIGHT tiers (`sm` | `default`) ride the `--control-h-*` comfort cohort
12
+ * (h-9 / h-10), byte-identical to today.
13
+ * • FONT-RUNG tiers (`display` | `audacious`) WRITE the shared picker-family
14
+ * `--dropdown-text` token on the Select SCOPE (inline style), so the
15
+ * trigger, the SelectValue, AND the item rows re-resolve at ONE scale off
16
+ * the ONE documented lever (`offsets-sizing.css` — the items read
17
+ * `--dropdown-text` via `menuItemVariants`' `text-dropdown` base). This is
18
+ * the fix for the value.js trigger-only `text-display` desync (a 1.59×
19
+ * trigger/items break): a consumer scaling the picker font reaches for the
20
+ * PROP, which sets the FAMILY token, NOT a trigger-local `text-*` class that
21
+ * leaves the items behind. The font rung carries a height too so the box
22
+ * grows with the type. The height tiers stay; the font rung is ADDITIVE
23
+ * (a consumer who never sets it keeps today's resolved sizes).
24
+ *
25
+ * NOTE on the portal: `<SelectContent>` PORTALS to body, so the inline
26
+ * `--dropdown-text` on the trigger reaches the trigger/value/chevron directly;
27
+ * the items re-resolve when the consumer also threads the rung on the shared
28
+ * Select scope (the documented family lever). For a single self-scaling
29
+ * trigger the rung scales the visible trigger silhouette.
30
+ */
31
+ size?: 'sm' | 'default' | 'display' | 'audacious';
9
32
  };
10
33
  declare var __VLS_8: {};
11
34
  type __VLS_Slots = {} & {
12
35
  default?: (props: typeof __VLS_8) => any;
13
36
  };
14
37
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
15
- size: "sm" | "default";
38
+ size: "sm" | "default" | "display" | "audacious";
16
39
  variant: "default" | "ghost";
17
40
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
18
41
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -2,9 +2,15 @@ import { type HTMLAttributes } from 'vue';
2
2
  import { type DialogContentProps } from 'reka-ui';
3
3
  import { type SheetVariants } from '.';
4
4
  import { type SpringPreset } from '../../../composables/motion/useSpringMount';
5
+ import { type Surface } from '../_shared/useSurfaceAxis';
5
6
  interface SheetContentProps extends DialogContentProps {
6
7
  class?: HTMLAttributes['class'];
7
8
  side?: SheetVariants['side'];
9
+ /** Surface decoration register (BA.W-SURFACE-AXIS) — the SHARED
10
+ * {glass·veil·opaque} axis. `glass` (default) renders the floating glass tier
11
+ * sheetVariants already bakes; `veil` overlays the borderless text-legibility
12
+ * plate; `opaque` sets `--glass-level:0` (the solid-card escape). */
13
+ surface?: Surface;
8
14
  /**
9
15
  * Opt into iOS spring-physics entrance via `useSpringMount` (W13). When
10
16
  * truthy, the sheet slides from off-edge via a `useSpring`-driven
@@ -21,12 +21,15 @@ import type { HTMLAttributes } from 'vue';
21
21
  * (opacity-min) — the surface still reads but no longer cycles.
22
22
  */
23
23
  type SkeletonVariant = 'pulse' | 'shimmer' | 'breath';
24
+ type SkeletonSurface = 'glass' | 'opaque';
24
25
  type __VLS_Props = {
25
26
  variant?: SkeletonVariant;
27
+ surface?: SkeletonSurface;
26
28
  class?: HTMLAttributes['class'];
27
29
  };
28
30
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
29
31
  variant: SkeletonVariant;
32
+ surface: SkeletonSurface;
30
33
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
31
34
  declare const _default: typeof __VLS_export;
32
35
  export default _default;
@@ -1,5 +1,5 @@
1
1
  export { useGlobalDark } from "./useGlobalDark";
2
- export type { UseGlobalDarkOptions } from "./useGlobalDark";
2
+ export type { UseGlobalDarkOptions, UseGlobalDarkReturn, DarkFlipSettledCallback, } from "./useGlobalDark";
3
3
  export { installDarkModeSync } from "./installDarkModeSync";
4
4
  export { darkModeSyncScript, DARK_MODE_STORAGE_KEY } from "./darkModeSyncScript";
5
5
  export type { DarkModeSyncScriptOptions } from "./darkModeSyncScript";
@@ -1,9 +1,15 @@
1
1
  import type { BasicColorSchema } from "@vueuse/core";
2
2
  import { type Ref, type WritableComputedRef } from "vue";
3
+ /**
4
+ * A post-flip settle callback. Receives the dark-mode flag's NEW value. Runs in
5
+ * the single coalesced post-flip task (see `onFlipSettled`).
6
+ */
7
+ export type DarkFlipSettledCallback = (isDark: boolean) => void;
3
8
  /**
4
9
  * The `useGlobalDark` return shape (AW.W15 — named `Use<Name>Return`). The
5
10
  * single shared dark-mode instance: the reactive `isDark` flag, a `toggleDark`
6
- * that optionally suppresses transitions, and the transition-suppression switch.
11
+ * that optionally suppresses transitions, the transition-suppression switch, and
12
+ * the post-flip settle hook (BA.W-ATLAS-RECONCILE A-1 — d6 9467bd16 adopt).
7
13
  */
8
14
  export interface UseGlobalDarkReturn {
9
15
  /** Reactive dark-mode flag (vueuse `useDark` ref — writable). */
@@ -14,6 +20,22 @@ export interface UseGlobalDarkReturn {
14
20
  disableTransitions: Ref<boolean>;
15
21
  /** Configure transition suppression during the dark-mode toggle. */
16
22
  setDisableTransitions: (value: boolean) => void;
23
+ /**
24
+ * BA.W-ATLAS-RECONCILE A-1 — the post-flip SETTLE hook. Register a callback
25
+ * that runs in ONE coalesced task AFTER each dark↔light flip's instant chrome
26
+ * paint, so consumers BATCH N expensive re-theme operations (e.g. the atlas's
27
+ * palette memo + N-chart `merge-setOption` palette tween + aurora
28
+ * re-derivation) into a single beat instead of N watchers firing in N
29
+ * sequential storms on the critical frame. The class toggle is synchronous
30
+ * (chrome flips instantly); the batch drains one frame later via a single
31
+ * `requestAnimationFrame` (an SSR/no-rAF env falls back to a macrotask).
32
+ * EVERY registered callback shares that ONE task — no per-subscriber
33
+ * scheduling. No View Transition is involved anywhere in this path (PRM-safe
34
+ * by construction — a flip is a CSS-class swap, not a DOM mutation to
35
+ * snapshot). Returns an unsubscribe function. Idempotent re-registration of
36
+ * the same callback is a no-op.
37
+ */
38
+ onFlipSettled: (callback: DarkFlipSettledCallback) => () => void;
17
39
  }
18
40
  export interface UseGlobalDarkOptions {
19
41
  /**
@@ -5,6 +5,17 @@
5
5
  * (one symmetric curve), which is functionally identical (the swap still runs). */
6
6
  export interface ViewTransitionOptions {
7
7
  types?: string[];
8
+ /**
9
+ * BA.W-ATLAS-RECONCILE A-4b — take the JS-level INSTANT path under
10
+ * `prefers-reduced-motion: reduce` (run `mutate` directly, NO snapshot
11
+ * captured). The HEAD default pushes PRM to CSS only (`view-transition.css`
12
+ * sets `animation: none` on the VT pseudos) — but that STILL captures a
13
+ * snapshot. For the navigation case a reduced-motion user wants the swap to
14
+ * happen with no transition machinery at all; `navigate()` sets this true.
15
+ * Defaults to `false` so the existing sync-VT consumers (muster J.W5 row
16
+ * re-rank) keep their exact CSS-handled PRM behaviour. @default false
17
+ */
18
+ instantUnderReducedMotion?: boolean;
8
19
  }
9
20
  export interface ViewTransitionResult {
10
21
  /**
@@ -43,4 +54,28 @@ export declare function supportsViewTransitions(): boolean;
43
54
  * // directional intent — snappier exit on collapse, softer entry on expand
44
55
  * startViewTransition(() => mutate(), { types: ["dock-expand"] });
45
56
  */
46
- export declare function startViewTransition(mutate: () => void, options?: ViewTransitionOptions): ViewTransitionResult;
57
+ export declare function startViewTransition(mutate: () => void | Promise<void>, options?: ViewTransitionOptions): ViewTransitionResult;
58
+ /** Options for `navigate` — the directional transition `types` (Chrome 140+,
59
+ * feature-detected; tag `["forward"]`/`["back"]` off the navigation direction). */
60
+ export type NavigateOptions = ViewTransitionOptions;
61
+ /**
62
+ * Run a (possibly ASYNC) navigation callback wrapped in a View Transition, with
63
+ * the reduced-motion + unsupported instant-paths. The navigation ALWAYS runs
64
+ * (awaited); the morph is conditional on support + motion preference. Returns the
65
+ * same `{ finished, transitioned }` contract — `await navigate(go).finished` then
66
+ * route focus (the a11y MANDATORY).
67
+ *
68
+ * @example the card → masthead route morph
69
+ * // both the card title + masthead title carry
70
+ * // view-transition-class: gl-shared-element; view-transition-name: dash-title
71
+ * await navigate(() => router.push(`/${slug}`), { types: ["forward"] }).finished;
72
+ * mastheadTitle.value?.focus();
73
+ */
74
+ export declare function navigate(nav: () => void | Promise<void>, options?: NavigateOptions): ViewTransitionResult;
75
+ /**
76
+ * True when the route-transition morph can run (native VT available). A consumer
77
+ * gates VT-only navigation styling on this (alias of `supportsViewTransitions`
78
+ * named for the navigation call site). Under reduced motion the `navigate` helper
79
+ * still takes the instant path even when this is `true`.
80
+ */
81
+ export declare function supportsRouteTransitions(): boolean;
@@ -1,2 +1,2 @@
1
- import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "./useConfiguratorState-DAoeHVue.js";
1
+ import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "./useConfiguratorState-kiIlun8I.js";
2
2
  export { e as CONFIGURATOR_DENSITY_KEY, t as Configurator, i as ConfiguratorLayer, n as ConfiguratorRow, r as provideConfiguratorDensity, o as useConfiguratorState, a as useOptionalConfiguratorDensity };
@@ -1,6 +1,6 @@
1
1
  import { t as e } from "./createLucideIcon-DydS2qgk.js";
2
- import { n as t } from "./button-ChXMfsud.js";
3
- import { t as n } from "./_plugin-vue_export-helper-ok8pgSl5.js";
2
+ import { n as t } from "./button-BNDWhAZb.js";
3
+ import { t as n } from "./_plugin-vue_export-helper-CBt_VvXa.js";
4
4
  import { Transition as r, createBlock as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, createTextVNode as c, createVNode as l, defineComponent as u, mergeModels as d, openBlock as f, renderSlot as p, toDisplayString as m, unref as h, useModel as g, withCtx as _, withKeys as v, withModifiers as y } from "vue";
5
5
  var b = e("loader-circle", [["path", {
6
6
  d: "M21 12a9 9 0 1 1-6.219-8.56",
@@ -1,7 +1,7 @@
1
1
  import { t as e } from "./cn-DJXf4yaB.js";
2
2
  import { t } from "./useCanvas2D-ClrQuZtp.js";
3
- import { t as n } from "./_plugin-vue_export-helper-ok8pgSl5.js";
4
- import { n as r, t as i } from "./prng-D27-B3tK.js";
3
+ import { t as n } from "./_plugin-vue_export-helper-CBt_VvXa.js";
4
+ import { n as r, t as i } from "./prng-Cg22zv8g.js";
5
5
  import { computed as a, createElementBlock as o, createElementVNode as s, defineComponent as c, getCurrentInstance as l, normalizeClass as u, onMounted as d, openBlock as f, ref as p, unref as m, useTemplateRef as h } from "vue";
6
6
  //#region src/components/custom/constellation/constants.ts
7
7
  var g = 1280, _ = {
@@ -361,8 +361,87 @@ function te(e, t, n = !1, r = !1, i = !1) {
361
361
  };
362
362
  }
363
363
  //#endregion
364
- //#region src/components/custom/constellation/Constellation.vue?vue&type=script&setup=true&lang.ts
365
- var ne = 0, re = /* @__PURE__ */ n(/* @__PURE__ */ c({
364
+ //#region src/components/custom/constellation/composables/useConstellation.ts
365
+ function ne(e, n, o) {
366
+ let s = e.count ?? 64, c = e.link ?? 132, u = e.speed ?? .16, f = e.seed, m = e.warpOnClick ?? !1, h = e.wander ?? !1, v = e.gravityWell ?? !1, y = e.pinned ?? !1, b = e.pinnedDrift ?? !1, x = e.warpAutoRelease ?? !1, S = a(() => f === void 0 ? Math.random : r(typeof f == "string" ? i(f) : f)), C = () => typeof window < "u" && /[?&](export|print|freeze)\b/.test(window.location.search), w = l()?.vnode.props?.freeze, T = a(() => w === void 0 ? C() : w === !0 || w === ""), { field: E, wanderOverride: D, wellOverride: k } = te(h, v, y, b, x), A = {
367
+ x: -1,
368
+ y: -1
369
+ }, j = [], M = { ..._ }, N = -1, P = !1, F = p(null);
370
+ return d(() => {
371
+ let r = o.value;
372
+ if (!r) return;
373
+ let i = t({
374
+ canvas: o,
375
+ setup: () => ({ render(t, n) {
376
+ let a = r.clientWidth || r.offsetWidth || 1280, o = r.clientHeight || r.offsetHeight || 720, l = a / g;
377
+ E.canvas = r;
378
+ let d = parseFloat(getComputedStyle(r).getPropertyValue("--constellation-k-floor"));
379
+ if (E.kFloor = Number.isFinite(d) ? d : void 0, E.dpr = Math.min(typeof window < "u" && window.devicePixelRatio || 1, 2), E.w !== a || E.h !== o) {
380
+ let e = E.w, t = E.h;
381
+ if (E.w = a, E.h = o, E.k = l, E.nodes.length ? K(E, e, t) : (E.nodes = G(S.value, s, a, o, u), E.warp.x = a / 2, E.warp.y = o / 2), M = Y(r), !P) {
382
+ P = !0;
383
+ let e = O(r);
384
+ E.warpCfg = e.warp, E.well && (E.well.cfg = {
385
+ ...e.well,
386
+ ...k
387
+ }), E.wander && (E.wander.minIdle = D.minIdle ?? e.wander.minIdle, E.wander.jitter = D.jitter ?? e.wander.jitter);
388
+ }
389
+ }
390
+ E.k = l;
391
+ let f = N < 0 ? 0 : (n - N) / 1e3;
392
+ N = n;
393
+ let p = T.value || i.reducedMotion;
394
+ p && E.well && (E.well.strength = 0, E.well.target = 0, E.well.x = -1, E.well.y = -1);
395
+ let m = e.pointerReactive ?? !0, h = e.opacityCeiling ?? 1, _ = e.accentEdges ?? !1, v = e.drawOverlay;
396
+ p || q(E, l, u, m ? A : null, f, n, S.value), t.clearRect(0, 0, a, o);
397
+ let y = _ ? E.pinnedIndex >= 0 ? E.pinnedIndex : E.focalIndex : -1;
398
+ X(t, E, c, M, h, y), Z(t, E, M, h), m && !p && (Q(t, E, c, M, A, h), $(t, E, n, j, M, h)), v?.(t, E, p ? 0 : n);
399
+ } })
400
+ });
401
+ ee({
402
+ host: n.value,
403
+ canvas: r,
404
+ field: E,
405
+ pointer: A,
406
+ ripples: j,
407
+ handle: i,
408
+ toLocalRef: F,
409
+ pointerReactive: e.pointerReactive ?? !0,
410
+ warpOnClick: m,
411
+ gravityWell: !!v,
412
+ isFrozen: T.value
413
+ });
414
+ }), {
415
+ field: E,
416
+ isFrozen: T,
417
+ warpTo(e, t) {
418
+ if (typeof e == "number" && typeof t == "number") {
419
+ let n = F.value?.({
420
+ clientX: e,
421
+ clientY: t
422
+ });
423
+ return n ? R(E, n.x, n.y) : -1;
424
+ }
425
+ let n = e;
426
+ return R(E, n.x, n.y);
427
+ },
428
+ holdWellAt(e, t) {
429
+ return E.well ? (E.well.x = e, E.well.y = t, E.well.target = 1, !0) : !1;
430
+ },
431
+ releaseWell() {
432
+ E.well && (E.well.target = 0);
433
+ },
434
+ warpSettled() {
435
+ return B(E);
436
+ },
437
+ pinNode(e) {
438
+ E.pinnedIndex = e, E.pinnedDrift && (E.pinnedDrift.nextAt = -1);
439
+ }
440
+ };
441
+ }
442
+ //#endregion
443
+ //#region src/components/custom/constellation/Constellation.vue
444
+ var re = /* @__PURE__ */ n(/* @__PURE__ */ c({
366
445
  __name: "Constellation",
367
446
  props: {
368
447
  count: { default: 64 },
@@ -403,103 +482,22 @@ var ne = 0, re = /* @__PURE__ */ n(/* @__PURE__ */ c({
403
482
  default: !1
404
483
  },
405
484
  freeze: { type: Boolean },
406
- class: { type: [
407
- Boolean,
408
- null,
409
- String,
410
- Object,
411
- Array
412
- ] },
413
- drawOverlay: { type: Function }
485
+ class: {},
486
+ drawOverlay: {}
414
487
  },
415
- setup(n, { expose: c }) {
416
- let v = h("hostRef"), y = h("canvasRef"), b = a(() => n.seed === void 0 ? Math.random : r(typeof n.seed == "string" ? i(n.seed) : n.seed)), x = () => typeof window < "u" && /[?&](export|print|freeze)\b/.test(window.location.search), S = l()?.vnode.props?.freeze, C = a(() => S === void 0 ? x() : S === !0 || S === ""), { field: w, wanderOverride: T, wellOverride: E } = te(n.wander, n.gravityWell, n.pinned, n.pinnedDrift, n.warpAutoRelease), D = {
417
- x: -1,
418
- y: -1
419
- }, k = [], A = { ..._ }, j = -1, M = !1, N = p(null);
420
- return d(() => {
421
- let e = y.value;
422
- if (!e) return;
423
- let r = t({
424
- canvas: y,
425
- setup: (t) => ({ render(t, i) {
426
- let a = e.clientWidth || e.offsetWidth || 1280, o = e.clientHeight || e.offsetHeight || 720, s = a / g;
427
- w.canvas = e;
428
- let c = parseFloat(getComputedStyle(e).getPropertyValue("--constellation-k-floor"));
429
- if (w.kFloor = Number.isFinite(c) ? c : void 0, w.dpr = Math.min(typeof window < "u" && window.devicePixelRatio || 1, 2), w.w !== a || w.h !== o) {
430
- let t = w.w, r = w.h;
431
- if (w.w = a, w.h = o, w.k = s, w.nodes.length ? K(w, t, r) : (w.nodes = G(b.value, n.count, a, o, n.speed), w.warp.x = a / 2, w.warp.y = o / 2), A = Y(e), !M) {
432
- M = !0;
433
- let t = O(e);
434
- w.warpCfg = t.warp, w.well && (w.well.cfg = {
435
- ...t.well,
436
- ...E
437
- }), w.wander && (w.wander.minIdle = T.minIdle ?? t.wander.minIdle, w.wander.jitter = T.jitter ?? t.wander.jitter);
438
- }
439
- }
440
- w.k = s;
441
- let l = j < 0 ? 0 : (i - j) / 1e3;
442
- j = i;
443
- let u = C.value || r.reducedMotion;
444
- if (u && w.well && (w.well.strength = 0, w.well.target = 0, w.well.x = -1, w.well.y = -1), !u) {
445
- let e = n.pointerReactive ? D : null;
446
- q(w, s, n.speed, e, l, i, b.value);
447
- }
448
- t.clearRect(0, 0, a, o);
449
- let d = n.accentEdges ? w.pinnedIndex >= 0 ? w.pinnedIndex : w.focalIndex : -1;
450
- X(t, w, n.link, A, n.opacityCeiling, d), Z(t, w, A, n.opacityCeiling), n.pointerReactive && !u && (Q(t, w, n.link, A, D, n.opacityCeiling), $(t, w, i, k, A, n.opacityCeiling)), n.drawOverlay?.(t, w, u ? ne : i);
451
- } })
452
- });
453
- ee({
454
- host: v.value,
455
- canvas: e,
456
- field: w,
457
- pointer: D,
458
- ripples: k,
459
- handle: r,
460
- toLocalRef: N,
461
- pointerReactive: n.pointerReactive,
462
- warpOnClick: n.warpOnClick,
463
- gravityWell: !!n.gravityWell,
464
- isFrozen: C.value
465
- });
466
- }), c({
467
- field: w,
468
- isFrozen: C,
469
- warpTo(e, t) {
470
- if (typeof e == "number" && typeof t == "number") {
471
- let n = N.value?.({
472
- clientX: e,
473
- clientY: t
474
- });
475
- return n ? R(w, n.x, n.y) : -1;
476
- }
477
- let n = e;
478
- return R(w, n.x, n.y);
479
- },
480
- holdWellAt(e, t) {
481
- return w.well ? (w.well.x = e, w.well.y = t, w.well.target = 1, !0) : !1;
482
- },
483
- releaseWell() {
484
- w.well && (w.well.target = 0);
485
- },
486
- warpSettled() {
487
- return B(w);
488
- },
489
- pinNode(e) {
490
- w.pinnedIndex = e, w.pinnedDrift && (w.pinnedDrift.nextAt = -1);
491
- }
492
- }), (t, r) => (f(), o("div", {
488
+ setup(t, { expose: n }) {
489
+ let r = t, i = h("hostRef"), a = h("canvasRef");
490
+ return n(ne(r, i, a)), (t, n) => (f(), o("div", {
493
491
  ref_key: "hostRef",
494
- ref: v,
495
- class: u(m(e)("constellation", n.class))
492
+ ref: i,
493
+ class: u(m(e)("constellation", r.class))
496
494
  }, [s("canvas", {
497
495
  ref_key: "canvasRef",
498
- ref: y,
496
+ ref: a,
499
497
  class: "constellation-canvas",
500
498
  "aria-hidden": "true"
501
499
  }, null, 512)], 2));
502
500
  }
503
- }), [["__scopeId", "data-v-a4c10474"]]);
501
+ }), [["__scopeId", "data-v-2ada60ff"]]);
504
502
  //#endregion
505
503
  export { g as BASE_WIDTH, re as Constellation, D as DEFAULT_K_FLOOR, _ as DEFAULT_PALETTE, w as DEFAULT_PINNED_DRIFT_DUR, C as DEFAULT_PINNED_DRIFT_FRAC, T as DEFAULT_PINNED_DRIFT_IDLE, E as DEFAULT_PINNED_DRIFT_JITTER, x as DEFAULT_WANDER_IDLE, S as DEFAULT_WANDER_JITTER, b as DEFAULT_WELL_CONFIG, v as WARP_RESPONSE, y as WARP_ZETA, X as drawEdges, Z as drawNodes, Q as drawPointerWeb, $ as drawRipples, J as kVisOf, H as makePinnedDrift, F as nearestNode, V as pickWanderTarget, O as readInteractionConfig, Y as readPalette, K as refitField, G as seedField, L as setWarpTarget, q as stepField, W as stepPinnedDrift, N as stepWell, B as warpSettled, I as warpStep, R as warpTo };
@@ -1,3 +1,3 @@
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 "./ContextMenuSubContent-BQmxTAdw.js";
2
- import { n as l, r as u, t as d } from "./ContextMenuContent-CT3AS1WX.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 "./ContextMenuSubContent-B0Vs6atR.js";
2
+ import { n as l, r as u, t as d } from "./ContextMenuContent-ON3x7cuk.js";
3
3
  export { u as ContextMenu, s as ContextMenuCheckboxItem, d as ContextMenuContent, t as ContextMenuItem, o as ContextMenuLabel, r as ContextMenuRadioGroup, a as ContextMenuRadioItem, n as ContextMenuSeparator, e as ContextMenuShortcut, c as ContextMenuSubContent, i as ContextMenuSubTrigger, l as ContextMenuTrigger };