@mkbabb/glass-ui 3.7.0 → 3.9.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 (261) hide show
  1. package/README.md +1 -6
  2. package/dist/CardAction-DuArVky-.js +157 -0
  3. package/dist/{CommandShortcut-CY0aQTz5.js → CommandShortcut-CefCj5mt.js} +7 -7
  4. package/dist/{ContextMenuSubContent-BeDz7G6f.js → ContextMenuSubContent-Bhg4f5jX.js} +3 -3
  5. package/dist/{DataTable-gtPOLZvl.js → DataTable-CUHMukiQ.js} +4 -4
  6. package/dist/DeckProgress-Dmk4_AKN.js +23 -0
  7. package/dist/{DialogContent-DG1YMR-P.js → DialogContent-BRkT1cjP.js} +3 -3
  8. package/dist/{DialogFooter-BCIaDP15.js → DialogFooter-Gprw8H_A.js} +1 -1
  9. package/dist/{HoverPopover-DXpOEw1P.js → HoverPopover-2LOIW34a.js} +1 -1
  10. package/dist/{IconTooltip-Cu86JR4e.js → IconTooltip-yefK7cJc.js} +1 -1
  11. package/dist/{MetricBadge-D-bRaQUD.js → MetricBadge-lTc002u2.js} +1 -1
  12. package/dist/{Notification-B5WHP3_1.js → Notification-BxK8LZMw.js} +1 -1
  13. package/dist/{NumberFieldContent-CLNVR1iY.js → NumberFieldContent-BbLOh8RU.js} +2 -2
  14. package/dist/{PopoverContent-F1bWnYoh.js → PopoverContent-BId6ggf_.js} +1 -1
  15. package/dist/{Progress-c4vo4ALi.js → Progress-iEuD9pxG.js} +4 -4
  16. package/dist/{ScrollingText-BEp377U5.js → ScrollingText-BPP84wKo.js} +2 -2
  17. package/dist/{SelectScrollDownButton-DAo5NmY_.js → SelectScrollDownButton-T32cVFeM.js} +4 -4
  18. package/dist/{SelectSeparator-COFMJGng.js → SelectSeparator-C4Ql0gzV.js} +1 -1
  19. package/dist/{TabsList-COqIdW7i.js → TabsList-B8CVOQPC.js} +2 -2
  20. package/dist/{Toaster-BMaeziJJ.js → Toaster-1rYWrmAm.js} +1 -1
  21. package/dist/{ToggleGroupItem-C-AIkBUw.js → ToggleGroupItem-Cev4pOVK.js} +5 -5
  22. package/dist/animated-digit.js +1 -1
  23. package/dist/api/index.d.ts +5 -3
  24. package/dist/aurora.js +339 -408
  25. package/dist/{badge-DHQrc_GQ.js → badge-BvwvT50i.js} +4 -4
  26. package/dist/badge.js +1 -1
  27. package/dist/{button-CAywcrhO.js → button-DN39cGqL.js} +13 -12
  28. package/dist/button.js +1 -1
  29. package/dist/canvas.d.ts +1 -0
  30. package/dist/canvas.js +3 -0
  31. package/dist/card.js +1 -1
  32. package/dist/carousel.js +106 -105
  33. package/dist/collapsible.js +1 -1
  34. package/dist/{color-DjJCAQ6f.js → color-8jBjWiJ6.js} +22 -14
  35. package/dist/color.js +2 -2
  36. package/dist/command.js +1 -1
  37. package/dist/compile-DAjIoEy2.js +158 -0
  38. package/dist/components/custom/aurora/composables/atoms.d.ts +90 -25
  39. package/dist/components/custom/aurora/composables/color.d.ts +0 -12
  40. package/dist/components/custom/aurora/composables/uniformBridge.d.ts +34 -23
  41. package/dist/components/custom/aurora/constants/presets.d.ts +10 -7
  42. package/dist/components/custom/aurora/constants/renderMode.d.ts +22 -0
  43. package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -1
  44. package/dist/components/custom/aurora/constants/shaders/brush.glsl.d.ts +1 -1
  45. package/dist/components/custom/aurora/constants/shaders/composition.glsl.d.ts +1 -1
  46. package/dist/components/custom/aurora/constants/shaders/mediums.glsl.d.ts +1 -1
  47. package/dist/components/custom/aurora/index.d.ts +3 -3
  48. package/dist/components/custom/configurator/ConfiguratorLayer.vue.d.ts +1 -1
  49. package/dist/components/custom/constellation/Constellation.vue.d.ts +40 -5
  50. package/dist/components/custom/constellation/constellationField.d.ts +110 -5
  51. package/dist/components/custom/constellation/index.d.ts +2 -2
  52. package/dist/components/custom/dock/DockSeparator.vue.d.ts +3 -0
  53. package/dist/components/custom/dock/GlassDock.vue.d.ts +57 -67
  54. package/dist/components/custom/dock/composables/dockContext.d.ts +7 -0
  55. package/dist/components/custom/dock/composables/dockMorphContext.d.ts +57 -0
  56. package/dist/components/custom/dock/composables/index.d.ts +3 -0
  57. package/dist/components/custom/dock/composables/useDockHold.d.ts +61 -0
  58. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +13 -59
  59. package/dist/components/custom/dock/index.d.ts +4 -1
  60. package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +13 -0
  61. package/dist/components/custom/goo-blob/composables/useBlobMood.d.ts +23 -5
  62. package/dist/components/custom/goo-blob/composables/useBlobPointer.d.ts +2 -0
  63. package/dist/components/custom/goo-blob/composables/useBlobSatellites.d.ts +2 -0
  64. package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +20 -5
  65. package/dist/components/custom/goo-blob/index.d.ts +1 -1
  66. package/dist/components/custom/goo-blob/shaders/sdf-body.glsl.d.ts +1 -1
  67. package/dist/components/custom/goo-blob/shaders/watercolor-edges.glsl.d.ts +2 -2
  68. package/dist/components/custom/goo-blob/types.d.ts +8 -0
  69. package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +92 -0
  70. package/dist/components/custom/tabs/composables/useTabIndicator.d.ts +49 -0
  71. package/dist/components/custom/tabs/index.d.ts +2 -5
  72. package/dist/components/ui/button/index.d.ts +1 -1
  73. package/dist/components/ui/card/Card.vue.d.ts +28 -10
  74. package/dist/components/ui/card/index.d.ts +1 -1
  75. package/dist/components/ui/carousel/CarouselNext.vue.d.ts +1 -1
  76. package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +1 -1
  77. package/dist/components/ui/carousel/GlassCarouselPager.vue.d.ts +3 -4
  78. package/dist/components/ui/progress/ProgressDefault.vue.d.ts +14 -4
  79. package/dist/components/ui/slider/Slider.vue.d.ts +3 -1
  80. package/dist/components/ui/slider/index.d.ts +14 -7
  81. package/dist/components/ui/tabs/TabsList.vue.d.ts +1 -1
  82. package/dist/composables/color/index.d.ts +19 -0
  83. package/dist/composables/context/createContext.d.ts +1 -1
  84. package/dist/composables/dom/index.d.ts +1 -1
  85. package/dist/composables/dom/useResolveTokenColor.d.ts +27 -0
  86. package/dist/composables/glass/canvas2d/index.d.ts +2 -1
  87. package/dist/composables/glass/canvas2d/resolveCanvasColor.d.ts +20 -0
  88. package/dist/composables/glass/canvas2d/useCanvas2D.d.ts +15 -1
  89. package/dist/composables/glass/index.d.ts +3 -1
  90. package/dist/composables/glass/useSpecularTracking.d.ts +33 -0
  91. package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +1 -1
  92. package/dist/composables/glass/webgl/shaders/procedural-color.glsl.d.ts +4 -0
  93. package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +1 -1
  94. package/dist/composables/motion/core/index.d.ts +1 -0
  95. package/dist/configurator.js +1 -1
  96. package/dist/confirm-dialog.js +2 -2
  97. package/dist/constellation.js +143 -74
  98. package/dist/context-menu.js +2 -2
  99. package/dist/controls.js +1 -1
  100. package/dist/data-table.js +1 -1
  101. package/dist/deck-progress.d.ts +1 -0
  102. package/dist/deck-progress.js +2 -0
  103. package/dist/dialog.js +2 -2
  104. package/dist/dock.js +468 -354
  105. package/dist/{dockContext-DLgrVWsU.js → dockContext-BKeIMmNk.js} +1 -1
  106. package/dist/dom.js +6 -6
  107. package/dist/{dropdown-menu-BWpwutt0.js → dropdown-menu-D77jX6Df.js} +4 -4
  108. package/dist/dropdown-menu.js +1 -1
  109. package/dist/fonts/README.md +26 -18
  110. package/dist/forms.js +5 -5
  111. package/dist/fourier-field.js +35 -35
  112. package/dist/glass-panel.js +7 -7
  113. package/dist/glass-ui.css +1 -1
  114. package/dist/glass-ui.js +154 -169
  115. package/dist/goo-blob.js +361 -274
  116. package/dist/header-ribbon.js +1 -1
  117. package/dist/hover-card.js +1 -1
  118. package/dist/hover-popover.js +1 -1
  119. package/dist/icon-tooltip.js +1 -1
  120. package/dist/index.d.ts +1 -2
  121. package/dist/instrument-chassis.js +1 -1
  122. package/dist/instrument-rail.js +1 -1
  123. package/dist/label.js +1 -1
  124. package/dist/labeled-field.js +5 -5
  125. package/dist/{menuItemVariants-B4eFR5Ix.js → menuItemVariants-CCoBNkU5.js} +1 -1
  126. package/dist/metric-badge.js +1 -1
  127. package/dist/metric-stack.js +1 -1
  128. package/dist/motion-core.js +65 -65
  129. package/dist/motion.js +1 -1
  130. package/dist/notification.js +1 -1
  131. package/dist/number-field.js +1 -1
  132. package/dist/paper-backdrop.js +1 -1
  133. package/dist/popover.js +1 -1
  134. package/dist/progress.js +1 -1
  135. package/dist/pulse.js +2 -2
  136. package/dist/reactive.js +2 -2
  137. package/dist/resolveCanvasColor-BBiYfp8g.js +11 -0
  138. package/dist/scrolling-text.js +1 -1
  139. package/dist/search.js +9 -9
  140. package/dist/select.js +3 -3
  141. package/dist/separator.js +1 -1
  142. package/dist/{sheet-Cv1uO-Gq.js → sheet-VZEtNFvO.js} +2 -2
  143. package/dist/sheet.js +1 -1
  144. package/dist/slider-DC2mwuoe.js +142 -0
  145. package/dist/slider.js +1 -1
  146. package/dist/sortable-list.js +2 -2
  147. package/dist/status-dot.js +17 -16
  148. package/dist/styles/animations.css +6 -2
  149. package/dist/styles/components.css +1 -1
  150. package/dist/styles/dock/density.css +230 -0
  151. package/dist/styles/dock/layer-group.css +263 -0
  152. package/dist/styles/dock/layers.css +355 -0
  153. package/dist/styles/dock/morph.css +244 -0
  154. package/dist/styles/dock/overflow.css +201 -0
  155. package/dist/styles/dock/shell.css +457 -0
  156. package/dist/styles/dock-controls.css +187 -50
  157. package/dist/styles/dock.css +65 -1181
  158. package/dist/styles/fonts.css +0 -25
  159. package/dist/styles/glass.css +482 -102
  160. package/dist/styles/index.css +12 -11
  161. package/dist/styles/theme.css +60 -2
  162. package/dist/styles/tokens.css +625 -72
  163. package/dist/styles/typography.css +52 -69
  164. package/dist/styles/utilities.css +91 -40
  165. package/dist/styles/view-transition.css +12 -40
  166. package/dist/switch.js +1 -1
  167. package/dist/tabs.js +183 -152
  168. package/dist/timeline.js +3 -3
  169. package/dist/toast.js +1 -1
  170. package/dist/toggle-group.js +1 -1
  171. package/dist/tooltip.js +1 -1
  172. package/dist/typewriter.js +1 -1
  173. package/dist/{useCanvas2D-C31yfUGY.js → useCanvas2D-ClrQuZtp.js} +2 -1
  174. package/dist/{useConfiguratorState-B24TcgIn.js → useConfiguratorState-DxAqksK6.js} +24 -13
  175. package/dist/useResolveTokenColor-r9pnNjqK.js +24 -0
  176. package/dist/useSpecularTracking-BVRZsRHA.js +26 -0
  177. package/dist/{useTextHighlight-aMPdEpkq.js → useTextHighlight-DON84L8w.js} +1 -1
  178. package/dist/{useTouchGate-YQRwyUGU.js → useTouchGate-WFyJYsth.js} +1 -1
  179. package/dist/vReveal-CqaCz_mC.js +44 -0
  180. package/dist/watercolor-dot.js +1 -1
  181. package/package.json +67 -36
  182. package/src/fonts/README.md +26 -18
  183. package/src/styles/animations.css +6 -2
  184. package/src/styles/dock/density.css +230 -0
  185. package/src/styles/dock/layer-group.css +263 -0
  186. package/src/styles/dock/layers.css +355 -0
  187. package/src/styles/dock/morph.css +244 -0
  188. package/src/styles/dock/overflow.css +201 -0
  189. package/src/styles/dock/shell.css +457 -0
  190. package/src/styles/dock-controls.css +187 -50
  191. package/src/styles/dock.css +65 -1181
  192. package/src/styles/fonts.css +0 -25
  193. package/src/styles/glass.css +482 -102
  194. package/src/styles/index.css +12 -11
  195. package/src/styles/theme.css +60 -2
  196. package/src/styles/tokens.css +625 -72
  197. package/src/styles/typography.css +52 -69
  198. package/src/styles/utilities.css +91 -40
  199. package/src/styles/view-transition.css +12 -40
  200. package/dist/CardAction-D8nSE62a.js +0 -163
  201. package/dist/DiscoGlyph-ZoBYpoxI.js +0 -132
  202. package/dist/GlyphFace-Ce_oe3tM.js +0 -51
  203. package/dist/UnderlineTabs-D_c1iYo-.js +0 -39
  204. package/dist/compile-iM4IUB66.js +0 -158
  205. package/dist/components/custom/aurora/constants/shaders/painterly.wgsl.d.ts +0 -7
  206. package/dist/components/custom/aurora/constants/shaders/wake.wgsl.d.ts +0 -4
  207. package/dist/components/custom/disco-glyph/DiscoGlyph.vue.d.ts +0 -58
  208. package/dist/components/custom/disco-glyph/index.d.ts +0 -1
  209. package/dist/components/custom/glass-carousel/GlassCarousel.vue.d.ts +0 -36
  210. package/dist/components/custom/glass-carousel/GlassCarouselItem.vue.d.ts +0 -28
  211. package/dist/components/custom/glass-carousel/index.d.ts +0 -4
  212. package/dist/components/custom/glass-carousel/useGlassCarousel.d.ts +0 -30
  213. package/dist/components/custom/glyph-face/GlyphFace.vue.d.ts +0 -64
  214. package/dist/components/custom/glyph-face/index.d.ts +0 -2
  215. package/dist/components/custom/glyph-face/keys.d.ts +0 -9
  216. package/dist/components/custom/responsive-tabs/ResponsiveTabs.vue.d.ts +0 -73
  217. package/dist/components/custom/responsive-tabs/index.d.ts +0 -2
  218. package/dist/components/custom/tabs/BouncyTabs.vue.d.ts +0 -27
  219. package/dist/components/custom/tabs/BouncyToggle.vue.d.ts +0 -60
  220. package/dist/components/custom/tabs/UnderlineTabs.vue.d.ts +0 -20
  221. package/dist/components/custom/tabs/composables/useBouncySlider.d.ts +0 -39
  222. package/dist/disco-glyph.d.ts +0 -1
  223. package/dist/disco-glyph.js +0 -2
  224. package/dist/fonts/fraunces/fraunces-latin.woff2 +0 -0
  225. package/dist/glass-carousel.d.ts +0 -1
  226. package/dist/glass-carousel.js +0 -214
  227. package/dist/glyph-face.d.ts +0 -1
  228. package/dist/glyph-face.js +0 -3
  229. package/dist/keys-Dyf_uTs5.js +0 -9
  230. package/dist/responsive-tabs.d.ts +0 -1
  231. package/dist/responsive-tabs.js +0 -95
  232. package/dist/slider-BA9wIs5e.js +0 -130
  233. package/dist/styles/disco-glyph.css +0 -26
  234. package/dist/styles/glyph-face.css +0 -92
  235. package/dist/useViewTransition-DaN5Zrox.js +0 -21
  236. package/dist/vReveal-BE2TsPoR.js +0 -24
  237. package/src/fonts/fraunces/fraunces-latin.woff2 +0 -0
  238. package/src/styles/disco-glyph.css +0 -26
  239. package/src/styles/glyph-face.css +0 -92
  240. /package/dist/{CollapsibleContent-D7UNsXQr.js → CollapsibleContent-CP9qF1v4.js} +0 -0
  241. /package/dist/{ContextMenuContent-DGKZX1Du.js → ContextMenuContent-DDa0v27s.js} +0 -0
  242. /package/dist/{HoverCardContent-Bn0UBMY9.js → HoverCardContent-B6CcQ8He.js} +0 -0
  243. /package/dist/{InstrumentChassis-BLJBl1BW.js → InstrumentChassis-C2f6cBaQ.js} +0 -0
  244. /package/dist/{InstrumentRail-BElFwKyt.js → InstrumentRail-CUJ05YVG.js} +0 -0
  245. /package/dist/{Label-DBc7bKzZ.js → Label-zRfbQdCn.js} +0 -0
  246. /package/dist/{ModalOverlay-D1VrWyoi.js → ModalOverlay-B1GkAjNb.js} +0 -0
  247. /package/dist/{PaperBackdrop-DCGoGatv.js → PaperBackdrop-CqwjnfLv.js} +0 -0
  248. /package/dist/{SelectGroup-BcaFjvP4.js → SelectGroup-BFiod7X2.js} +0 -0
  249. /package/dist/{Separator-DZyqsCum.js → Separator-D7sD7RKj.js} +0 -0
  250. /package/dist/{Switch-2rsAtDfA.js → Switch-LDKLmmgx.js} +0 -0
  251. /package/dist/{TooltipProvider-CD2IXfRv.js → TooltipProvider-CmZzCuaG.js} +0 -0
  252. /package/dist/{_plugin-vue_export-helper-gLzyemvl.js → _plugin-vue_export-helper-ok8pgSl5.js} +0 -0
  253. /package/dist/composables/{dom → motion}/useTextHighlight.d.ts +0 -0
  254. /package/dist/{createContext-CvNyBk4o.js → createContext-B44Sah_H.js} +0 -0
  255. /package/dist/{useGlassRenderer-HebgSEgN.js → useGlassRenderer-5I0YkI4t.js} +0 -0
  256. /package/dist/{useInterval-D3USn0yc.js → useInterval-Dsmqwi03.js} +0 -0
  257. /package/dist/{useResizeObserver-CSyxGxIX.js → useResizeObserver-CWCbk5Px.js} +0 -0
  258. /package/dist/{useSpringMount-LRZqJTaF.js → useSpringMount-BJSHcLl3.js} +0 -0
  259. /package/dist/{useTimer-DEJonOZa.js → useTimer-3xqf_54b.js} +0 -0
  260. /package/dist/{useUserInvalidAria-CQKjEfwP.js → useUserInvalidAria-DoJKMZ3s.js} +0 -0
  261. /package/dist/{useViewportReady-K96m-Mdv.js → useViewportReady-RIr5Wgkh.js} +0 -0
package/dist/tabs.js CHANGED
@@ -1,78 +1,104 @@
1
1
  import { t as e } from "./cn-DJXf4yaB.js";
2
- import { t } from "./_plugin-vue_export-helper-gLzyemvl.js";
3
- import { i as n, n as r, r as i, t as a } from "./TooltipProvider-CD2IXfRv.js";
4
- import { t as o } from "./UnderlineTabs-D_c1iYo-.js";
5
- import { Fragment as s, computed as c, createBlock as l, createCommentVNode as u, createElementBlock as d, createElementVNode as f, createTextVNode as p, createVNode as m, defineComponent as h, mergeModels as g, nextTick as _, normalizeClass as v, normalizeStyle as y, onMounted as b, onUnmounted as x, openBlock as S, ref as C, renderList as w, renderSlot as T, toDisplayString as E, unref as D, useModel as O, watch as k, withCtx as A } from "vue";
6
- //#region src/components/custom/tabs/composables/useBouncySlider.ts
7
- function j(e) {
8
- let { containerRef: t, buttonRefs: n, options: r, model: i, multiSelect: a, anchorSupported: o, jsSliderActive: s, activeValues: c } = e, l = C({
2
+ import { t } from "./_plugin-vue_export-helper-ok8pgSl5.js";
3
+ import { a as n, i as r, o as i, r as a, s as o } from "./SelectScrollDownButton-T32cVFeM.js";
4
+ import { i as s, n as c, r as l, t as u } from "./TooltipProvider-CmZzCuaG.js";
5
+ import { Fragment as d, computed as f, createBlock as p, createCommentVNode as m, createElementBlock as h, createElementVNode as g, createTextVNode as _, createVNode as v, defineComponent as y, mergeModels as b, mergeProps as x, nextTick as S, normalizeClass as C, normalizeStyle as w, onBeforeUnmount as T, onMounted as E, onUnmounted as D, openBlock as O, ref as k, renderList as A, renderSlot as j, toDisplayString as M, unref as N, useModel as ee, watch as P, withCtx as F } from "vue";
6
+ //#region src/components/custom/tabs/composables/useTabIndicator.ts
7
+ function te(e) {
8
+ let { containerRef: t, indicatorRef: n, buttonRefs: r, options: i, model: a, multiSelect: o, anchorSupported: s, jsSliderActive: c, activeValues: l } = e, u = k({
9
9
  width: "0px",
10
10
  transform: "translateX(0px)",
11
11
  opacity: "0"
12
12
  });
13
- function u() {
14
- if (a.value || o) return;
15
- let e = r.value.findIndex((e) => e.value === i.value);
16
- if (e < 0 || !n.value[e]) return;
17
- let t = n.value[e];
18
- l.value = {
13
+ function d() {
14
+ if (o.value || s) return;
15
+ let e = i.value.findIndex((e) => e.value === a.value);
16
+ if (e < 0 || !r.value[e]) return;
17
+ let t = r.value[e];
18
+ u.value = {
19
19
  width: `${t.offsetWidth}px`,
20
20
  transform: `translateX(${t.offsetLeft}px)`,
21
21
  opacity: "1"
22
22
  };
23
23
  }
24
- let d = C({});
25
- function f() {
26
- if (!a.value) return;
24
+ let f = k({});
25
+ function p() {
26
+ if (!o.value) return;
27
27
  let e = {};
28
- for (let t of c.value) {
29
- let i = r.value.findIndex((e) => e.value === t), a = n.value[i];
28
+ for (let t of l.value) {
29
+ let n = i.value.findIndex((e) => e.value === t), a = r.value[n];
30
30
  a && (e[t] = {
31
31
  width: `${a.offsetWidth}px`,
32
32
  transform: `translateX(${a.offsetLeft}px)`,
33
33
  opacity: "1"
34
34
  });
35
35
  }
36
- d.value = e;
36
+ f.value = e;
37
37
  }
38
- function p() {
39
- a.value ? f() : u();
38
+ function m() {
39
+ o.value ? p() : d();
40
+ }
41
+ let h = -1, g = null;
42
+ function _() {
43
+ return typeof window < "u" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
44
+ }
45
+ function v(e) {
46
+ let i = n.value;
47
+ if (o.value || !i) {
48
+ h = e;
49
+ return;
50
+ }
51
+ if (_()) {
52
+ h = e;
53
+ return;
54
+ }
55
+ let a = r.value[h], s = r.value[e];
56
+ if (h = e, !a || !s) return;
57
+ let c = t.value?.offsetWidth || s.offsetParent?.offsetWidth || 1, l = Math.abs(s.offsetLeft - a.offsetLeft), u = c > 0 ? Math.min(l / c, 1) : 0, d = getComputedStyle(i).getPropertyValue("--tab-indicator-max-stretch").trim(), f = 1 + u * ((Number(d) || 1.08) - 1);
58
+ g && clearTimeout(g), i.style.setProperty("--stretch", String(f)), g = setTimeout(() => {
59
+ i.style.setProperty("--stretch", "1"), g = null;
60
+ }, 60);
40
61
  }
41
- k(() => i.value, () => {
42
- s.value && _(p);
43
- }, { deep: !0 }), k(() => r.value, () => {
44
- s.value && _(p);
62
+ P(() => a.value, () => {
63
+ c.value && S(m);
64
+ }, { deep: !0 }), P(() => i.value, () => {
65
+ c.value && S(m);
45
66
  }, { deep: !0 });
46
- let m = null;
47
- return b(() => {
48
- s.value && (_(p), t.value && (m = new ResizeObserver(() => p()), m.observe(t.value)));
49
- }), x(() => {
50
- m?.disconnect();
67
+ let y = null;
68
+ return E(() => {
69
+ h = i.value.findIndex((e) => l.value.includes(e.value)), c.value && (S(m), t.value && (y = new ResizeObserver(() => m()), y.observe(t.value)));
70
+ }), D(() => {
71
+ y?.disconnect(), g && clearTimeout(g);
51
72
  }), {
52
- singleSliderStyle: l,
53
- multiSliderStyles: d
73
+ singleSliderStyle: u,
74
+ multiSliderStyles: f,
75
+ squishOnTravel: v
54
76
  };
55
77
  }
56
78
  //#endregion
57
- //#region src/components/custom/tabs/BouncyToggle.vue?vue&type=script&setup=true&lang.ts
58
- var M = [
59
- "aria-pressed",
79
+ //#region src/components/custom/tabs/SegmentedTabs.vue?vue&type=script&setup=true&lang.ts
80
+ var ne = ["role"], re = [
81
+ "role",
60
82
  "disabled",
61
83
  "onClick"
62
- ], N = [
63
- "aria-pressed",
84
+ ], ie = [
85
+ "role",
64
86
  "disabled",
65
87
  "onClick"
66
- ], P = /* @__PURE__ */ t(/* @__PURE__ */ h({
67
- __name: "BouncyToggle",
68
- props: /* @__PURE__ */ g({
88
+ ], I = /* @__PURE__ */ t(/* @__PURE__ */ y({
89
+ __name: "SegmentedTabs",
90
+ props: /* @__PURE__ */ b({
69
91
  options: {},
92
+ variant: { default: "segmented" },
70
93
  multiSelect: {
71
94
  type: Boolean,
72
95
  default: !1
73
96
  },
74
- variant: { default: "default" },
75
97
  overflow: { default: "none" },
98
+ responsive: {
99
+ type: [Boolean, Object],
100
+ default: !1
101
+ },
76
102
  class: { type: [
77
103
  Boolean,
78
104
  null,
@@ -86,45 +112,52 @@ var M = [
86
112
  }),
87
113
  emits: ["update:modelValue"],
88
114
  setup(t) {
89
- function o(e, t) {
115
+ function y(e, t) {
90
116
  return typeof document > "u" ? t : getComputedStyle(document.documentElement).getPropertyValue(e).trim() || t;
91
117
  }
92
- let h = t, g = O(t, "modelValue"), x = C(null), k = C([]), P = typeof CSS < "u" && typeof CSS.supports == "function" && CSS.supports("position-anchor", "--x"), F = c(() => h.variant === "pill"), I = c(() => h.overflow === "scroll"), L = c(() => h.overflow === "auto"), R = c(() => {
93
- let e = g.value;
94
- return h.multiSelect && Array.isArray(e) ? e : e == null ? [] : [e];
95
- }), z = (e) => R.value.includes(e), B = c(() => !h.multiSelect && !P), V = c(() => h.multiSelect || !P), { singleSliderStyle: H, multiSliderStyles: U } = j({
96
- containerRef: x,
97
- buttonRefs: k,
98
- options: c(() => h.options),
99
- model: g,
100
- multiSelect: c(() => h.multiSelect),
101
- anchorSupported: P,
102
- jsSliderActive: V,
103
- activeValues: R
118
+ let b = t, D = ee(t, "modelValue"), P = k(null), I = k(null), L = k([]), R = typeof CSS < "u" && typeof CSS.supports == "function" && CSS.supports("position-anchor", "--x"), z = f(() => b.variant === "underline");
119
+ f(() => b.variant === "pill"), f(() => b.variant === "segmented");
120
+ let B = f(() => b.overflow === "scroll"), V = f(() => b.overflow === "auto"), H = f(() => b.multiSelect && !z.value), U = f(() => {
121
+ let e = D.value;
122
+ return H.value && Array.isArray(e) ? e : e == null ? [] : [e];
123
+ }), W = (e) => U.value.includes(e), ae = f(() => (H.value || !R) && !z.value), G = f(() => !H.value && !R && !z.value), K = f(() => b.responsive === !1 ? null : b.responsive === !0 ? {} : b.responsive), oe = f(() => K.value?.breakpoint ?? "640px"), q = f(() => K.value?.desktopOptions ?? b.options), J = k(!0), Y = null;
124
+ function X(e) {
125
+ J.value = e.matches;
126
+ }
127
+ let se = f(() => {
128
+ if (!K.value) return D.value;
129
+ let e = q.value;
130
+ return e.some((e) => e.value === D.value) ? D.value : e[0]?.value ?? D.value;
131
+ }), Z = f(() => K.value ? q.value : b.options), ce = f(() => K.value?.ariaLabel ?? b.options.find((e) => e.value === D.value)?.label ?? "Select"), le = f(() => !!K.value && !J.value), { singleSliderStyle: ue, multiSliderStyles: de, squishOnTravel: fe } = te({
132
+ containerRef: P,
133
+ indicatorRef: I,
134
+ buttonRefs: L,
135
+ options: Z,
136
+ model: f(() => se.value),
137
+ multiSelect: H,
138
+ anchorSupported: R,
139
+ jsSliderActive: ae,
140
+ activeValues: U
104
141
  });
105
- function W(e) {
142
+ function pe(e) {
106
143
  if (typeof window < "u" && window.matchMedia("(prefers-reduced-motion: reduce)").matches) return;
107
144
  e.getAnimations().forEach((e) => e.cancel());
108
- let t = o("--ease-apple-spring", "cubic-bezier(0.175, 0.885, 0.32, 1.275)"), n = o("--scale-press", "0.95"), r = o("--scale-hover", "1.08");
145
+ let t = y("--spring-snappy", "ease"), n = y("--scale-press-btn", "0.97");
109
146
  e.animate([
110
147
  { transform: "scale(1)" },
111
148
  {
112
149
  transform: `scale(${n})`,
113
- offset: .25
114
- },
115
- {
116
- transform: `scale(${r})`,
117
- offset: .7
150
+ offset: .4
118
151
  },
119
152
  { transform: "scale(1)" }
120
153
  ], {
121
- duration: 200,
154
+ duration: 220,
122
155
  easing: t
123
156
  });
124
157
  }
125
- function G(e) {
126
- if (!I.value && !L.value) return;
127
- let t = k.value[e];
158
+ function Q(e) {
159
+ if (!B.value && !V.value) return;
160
+ let t = L.value[e];
128
161
  if (!t) return;
129
162
  let n = typeof window < "u" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
130
163
  t.scrollIntoView({
@@ -133,120 +166,118 @@ var M = [
133
166
  behavior: n ? "auto" : "smooth"
134
167
  });
135
168
  }
136
- function K(e, t) {
137
- if (h.options[t]?.disabled) return;
138
- let n = k.value[t];
139
- if (n && W(n), h.multiSelect) {
140
- let t = [...R.value], n = t.indexOf(e);
141
- n > -1 ? t.length > 1 && t.splice(n, 1) : t.push(e), g.value = t;
142
- } else g.value = e;
143
- G(t);
169
+ function $(e, t) {
170
+ if (Z.value[t]?.disabled) return;
171
+ let n = L.value[t];
172
+ if (n && pe(n), fe(t), H.value) {
173
+ let t = [...U.value], n = t.indexOf(e);
174
+ n > -1 ? t.length > 1 && t.splice(n, 1) : t.push(e), D.value = t;
175
+ } else D.value = e;
176
+ Q(t);
177
+ }
178
+ function me(e) {
179
+ typeof e == "string" && (D.value = e);
144
180
  }
145
- return b(() => {
146
- _(() => {
147
- let e = h.options.findIndex((e) => z(e.value));
148
- e >= 0 && G(e);
181
+ return E(() => {
182
+ K.value && typeof window < "u" && window.matchMedia && (Y = window.matchMedia(`(min-width: ${oe.value})`), J.value = Y.matches, Y.addEventListener("change", X)), S(() => {
183
+ let e = Z.value.findIndex((e) => W(e.value));
184
+ e >= 0 && Q(e);
149
185
  });
150
- }), (o, c) => (S(), d("div", {
186
+ }), T(() => {
187
+ Y?.removeEventListener("change", X), Y = null;
188
+ }), (f, y) => le.value ? (O(), h("div", {
189
+ key: 0,
190
+ class: C(N(e)("segmented-tabs__mobile w-fit", b.class))
191
+ }, [v(N(o), {
192
+ "model-value": D.value,
193
+ "onUpdate:modelValue": me
194
+ }, {
195
+ default: F(() => [v(N(n), {
196
+ "aria-label": ce.value,
197
+ class: C(N(e)("segmented-tabs__trigger text-small w-auto min-w-input-sm", K.value?.triggerClass))
198
+ }, {
199
+ default: F(() => [v(N(i))]),
200
+ _: 1
201
+ }, 8, ["aria-label", "class"]), v(N(r), null, {
202
+ default: F(() => [(O(!0), h(d, null, A(t.options, (e) => (O(), p(N(a), {
203
+ key: e.value,
204
+ value: e.value
205
+ }, {
206
+ default: F(() => [_(M(e.label), 1)]),
207
+ _: 2
208
+ }, 1032, ["value"]))), 128))]),
209
+ _: 1
210
+ })]),
211
+ _: 1
212
+ }, 8, ["model-value"])], 2)) : (O(), h("div", {
213
+ key: 1,
151
214
  ref_key: "containerRef",
152
- ref: x,
153
- class: v(D(e)(F.value ? "bouncy-toggle bouncy-toggle--pill" : "bouncy-toggle", I.value && "bouncy-toggle--scroll scroll-fade-mask scrollbar-hidden", L.value && "bouncy-toggle--auto scrollbar-hidden", h.class))
215
+ ref: P,
216
+ role: z.value ? "tablist" : "group",
217
+ class: C(N(e)("segmented-tabs", `segmented-tabs--${t.variant}`, B.value && "segmented-tabs--scroll scroll-fade-mask scrollbar-hidden", V.value && "segmented-tabs--auto scrollbar-hidden", b.class))
154
218
  }, [
155
- t.multiSelect ? u("", !0) : (S(), d("div", {
219
+ !z.value && !H.value ? (O(), h("div", {
156
220
  key: 0,
157
- class: v([F.value ? "bouncy-slider bouncy-slider--pill" : "bouncy-slider", B.value ? "bouncy-slider--js" : "bouncy-slider--anchor"]),
158
- style: y(B.value ? D(H) : void 0)
159
- }, null, 6)),
160
- t.multiSelect ? (S(!0), d(s, { key: 1 }, w(R.value, (e) => (S(), d("div", {
161
- key: "slider-" + e,
162
- class: v([F.value ? "bouncy-slider bouncy-slider--pill" : "bouncy-slider", "bouncy-slider--js"]),
163
- style: y(D(U)[e] ?? { opacity: "0" })
164
- }, null, 6))), 128)) : u("", !0),
165
- (S(!0), d(s, null, w(t.options, (e, t) => (S(), d(s, { key: e.value }, [e.tooltip ? (S(), l(D(a), {
221
+ ref_key: "indicatorRef",
222
+ ref: I,
223
+ class: C(["segmented-indicator", G.value ? "segmented-indicator--js" : "segmented-indicator--anchor"]),
224
+ style: w(G.value ? N(ue) : void 0)
225
+ }, null, 6)) : m("", !0),
226
+ !z.value && H.value ? (O(!0), h(d, { key: 1 }, A(U.value, (e) => (O(), h("div", {
227
+ key: "indicator-" + e,
228
+ class: "segmented-indicator segmented-indicator--js",
229
+ style: w(N(de)[e] ?? { opacity: "0" })
230
+ }, null, 4))), 128)) : m("", !0),
231
+ (O(!0), h(d, null, A(Z.value, (e, t) => (O(), h(d, { key: e.value }, [e.tooltip ? (O(), p(N(u), {
166
232
  key: 0,
167
233
  "delay-duration": 200
168
234
  }, {
169
- default: A(() => [m(D(n), null, {
170
- default: A(() => [m(D(r), { "as-child": "" }, {
171
- default: A(() => [f("button", {
235
+ default: F(() => [v(N(s), null, {
236
+ default: F(() => [v(N(c), { "as-child": "" }, {
237
+ default: F(() => [g("button", x({
172
238
  ref_for: !0,
173
239
  ref: (e) => {
174
- e && (k.value[t] = e);
240
+ e && (L.value[t] = e);
175
241
  },
176
- class: v([F.value ? "bouncy-btn bouncy-btn--pill" : "bouncy-btn", e.disabled && "is-disabled"]),
177
- "aria-pressed": z(e.value) ? "true" : "false",
242
+ class: "segmented-tab",
243
+ role: z.value ? "tab" : void 0
244
+ }, { ref_for: !0 }, z.value ? { "aria-selected": W(e.value) ? "true" : "false" } : { "aria-pressed": W(e.value) ? "true" : "false" }, {
178
245
  disabled: e.disabled,
179
- onClick: (n) => K(e.value, t)
180
- }, [T(o.$slots, "option", {
246
+ class: e.disabled && "is-disabled",
247
+ onClick: (n) => $(e.value, t)
248
+ }), [j(f.$slots, "option", {
181
249
  option: e,
182
- active: z(e.value)
183
- }, () => [p(E(e.label), 1)], !0)], 10, M)]),
250
+ active: W(e.value)
251
+ }, () => [_(M(e.label), 1)], !0)], 16, re)]),
184
252
  _: 2
185
- }, 1024), m(D(i), {
253
+ }, 1024), v(N(l), {
186
254
  side: "bottom",
187
255
  "side-offset": 8
188
256
  }, {
189
- default: A(() => [p(E(e.tooltip), 1)]),
257
+ default: F(() => [_(M(e.tooltip), 1)]),
190
258
  _: 2
191
259
  }, 1024)]),
192
260
  _: 2
193
261
  }, 1024)]),
194
262
  _: 2
195
- }, 1024)) : (S(), d("button", {
263
+ }, 1024)) : (O(), h("button", x({
196
264
  key: 1,
197
265
  ref_for: !0,
198
266
  ref: (e) => {
199
- e && (k.value[t] = e);
267
+ e && (L.value[t] = e);
200
268
  },
201
- class: v([F.value ? "bouncy-btn bouncy-btn--pill" : "bouncy-btn", e.disabled && "is-disabled"]),
202
- "aria-pressed": z(e.value) ? "true" : "false",
269
+ class: "segmented-tab",
270
+ role: z.value ? "tab" : void 0
271
+ }, { ref_for: !0 }, z.value ? { "aria-selected": W(e.value) ? "true" : "false" } : { "aria-pressed": W(e.value) ? "true" : "false" }, {
203
272
  disabled: e.disabled,
204
- onClick: (n) => K(e.value, t)
205
- }, [T(o.$slots, "option", {
273
+ class: e.disabled && "is-disabled",
274
+ onClick: (n) => $(e.value, t)
275
+ }), [j(f.$slots, "option", {
206
276
  option: e,
207
- active: z(e.value)
208
- }, () => [p(E(e.label), 1)], !0)], 10, N))], 64))), 128))
209
- ], 2));
210
- }
211
- }), [["__scopeId", "data-v-45c0ed13"]]), F = /* @__PURE__ */ h({
212
- __name: "BouncyTabs",
213
- props: /* @__PURE__ */ g({
214
- options: {},
215
- variant: { default: "default" },
216
- overflow: { default: "none" },
217
- class: { type: [
218
- Boolean,
219
- null,
220
- String,
221
- Object,
222
- Array
223
- ] }
224
- }, {
225
- modelValue: { required: !0 },
226
- modelModifiers: {}
227
- }),
228
- emits: ["update:modelValue"],
229
- setup(e) {
230
- let t = e, n = O(e, "modelValue");
231
- function r(e) {
232
- n.value = e;
233
- }
234
- return (i, a) => (S(), l(P, {
235
- options: e.options,
236
- "model-value": n.value,
237
- variant: e.variant,
238
- overflow: e.overflow,
239
- class: v(t.class),
240
- "multi-select": !1,
241
- "onUpdate:modelValue": r
242
- }, null, 8, [
243
- "options",
244
- "model-value",
245
- "variant",
246
- "overflow",
247
- "class"
248
- ]));
277
+ active: W(e.value)
278
+ }, () => [_(M(e.label), 1)], !0)], 16, ie))], 64))), 128))
279
+ ], 10, ne));
249
280
  }
250
- });
281
+ }), [["__scopeId", "data-v-dd84d37c"]]);
251
282
  //#endregion
252
- export { F as BouncyTabs, P as BouncyToggle, o as UnderlineTabs };
283
+ export { I as SegmentedTabs };
package/dist/timeline.js CHANGED
@@ -1,5 +1,5 @@
1
- import { t as e } from "./_plugin-vue_export-helper-gLzyemvl.js";
2
- import { t } from "./HoverPopover-DXpOEw1P.js";
1
+ import { t as e } from "./_plugin-vue_export-helper-ok8pgSl5.js";
2
+ import { t } from "./HoverPopover-2LOIW34a.js";
3
3
  import { Fragment as n, computed as r, createBlock as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, createSlots as c, createVNode as l, defineComponent as u, guardReactiveProps as d, normalizeClass as f, normalizeProps as p, normalizeStyle as m, openBlock as h, ref as g, renderList as _, renderSlot as v, toDisplayString as y, unref as b, withCtx as x } from "vue";
4
4
  //#region src/components/custom/timeline/geometry.ts
5
5
  function S(e) {
@@ -197,7 +197,7 @@ var A = ["aria-label"], j = [
197
197
  _: 2
198
198
  }, 1032, ["class", "onUpdate:open"]))], 4))), 128))], 8, A)) : a("", !0);
199
199
  }
200
- }), [["__scopeId", "data-v-8e53d036"]]), H = [
200
+ }), [["__scopeId", "data-v-54dadfb5"]]), H = [
201
201
  "aria-valuemax",
202
202
  "aria-valuenow",
203
203
  "aria-label"
package/dist/toast.js CHANGED
@@ -1,2 +1,2 @@
1
- import { a as e, c as t, i as n, n as r, o as i, r as a, s as o, t as s } from "./Toaster-BMaeziJJ.js";
1
+ import { a as e, c as t, i as n, n as r, o as i, r as a, s as o, t as s } from "./Toaster-1rYWrmAm.js";
2
2
  export { t as Toast, o as ToastAction, i as ToastClose, e as ToastDescription, n as ToastTitle, s as Toaster, r as toast, a as useToast };
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./ToggleGroupItem-C-AIkBUw.js";
1
+ import { n as e, t } from "./ToggleGroupItem-Cev4pOVK.js";
2
2
  export { e as ToggleGroup, t as ToggleGroupItem };
package/dist/tooltip.js CHANGED
@@ -1,2 +1,2 @@
1
- import { i as e, n as t, r as n, t as r } from "./TooltipProvider-CD2IXfRv.js";
1
+ import { i as e, n as t, r as n, t as r } from "./TooltipProvider-CmZzCuaG.js";
2
2
  export { e as Tooltip, n as TooltipContent, r as TooltipProvider, t as TooltipTrigger };
@@ -1,4 +1,4 @@
1
- import { t as e } from "./_plugin-vue_export-helper-gLzyemvl.js";
1
+ import { t as e } from "./_plugin-vue_export-helper-ok8pgSl5.js";
2
2
  import { Fragment as t, computed as n, createCommentVNode as r, createElementBlock as i, createElementVNode as a, defineComponent as o, normalizeClass as s, onMounted as c, onUnmounted as l, openBlock as u, ref as d, renderList as f, toDisplayString as p, unref as m, watch as h } from "vue";
3
3
  //#region src/components/custom/typewriter/types.ts
4
4
  var g = {
@@ -91,5 +91,6 @@ function i(i) {
91
91
  }
92
92
  };
93
93
  }
94
+ var a = i;
94
95
  //#endregion
95
- export { i as t };
96
+ export { a as n, i as t };
@@ -1,9 +1,9 @@
1
1
  import { t as e } from "./cn-DJXf4yaB.js";
2
2
  import { t } from "./createLucideIcon-B6uNAU9G.js";
3
3
  import { t as n } from "./chevron-down-BSkTP2aL.js";
4
- import { t as r } from "./_plugin-vue_export-helper-gLzyemvl.js";
5
- import { t as i } from "./createContext-CvNyBk4o.js";
6
- import { t as a } from "./Label-DBc7bKzZ.js";
4
+ import { t as r } from "./_plugin-vue_export-helper-ok8pgSl5.js";
5
+ import { t as i } from "./createContext-B44Sah_H.js";
6
+ import { t as a } from "./Label-zRfbQdCn.js";
7
7
  import { Fragment as o, computed as s, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createTextVNode as d, createVNode as f, defineComponent as p, mergeModels as m, normalizeClass as h, normalizeStyle as g, openBlock as _, reactive as v, ref as y, renderList as b, renderSlot as x, toDisplayString as S, toRaw as C, unref as w, useId as T, useModel as E, withCtx as D } from "vue";
8
8
  var O = t("rotate-ccw", [["path", {
9
9
  d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",
@@ -22,7 +22,11 @@ var M = k.use, N = {
22
22
  class: "flex gap-2 overflow-x-auto scroll-fade-mask scrollbar-hidden",
23
23
  role: "tablist",
24
24
  "aria-label": "Presets"
25
- }, F = ["aria-selected", "onClick"], I = { class: "flex flex-col" }, L = {
25
+ }, F = [
26
+ "aria-selected",
27
+ "data-active",
28
+ "onClick"
29
+ ], I = { class: "flex flex-col" }, L = {
26
30
  key: 1,
27
31
  class: "configurator-footer shrink-0 border-t border-border/40 px-3 py-2"
28
32
  }, R = /* @__PURE__ */ p({
@@ -67,6 +71,7 @@ var M = k.use, N = {
67
71
  }
68
72
  });
69
73
  return (n, r) => (_(), l("section", {
74
+ "data-slot": "configurator",
70
75
  class: h(a.value),
71
76
  style: g(d.value)
72
77
  }, [u("div", { class: h(w(e)("configurator-stage relative min-h-0 min-w-0 overflow-hidden", f.value)) }, [x(n.$slots, "stage")], 2), u("aside", { class: h(w(e)("configurator-aside flex min-h-0 min-w-0 flex-col border-t border-border/40 lg:border-t-0", m.value, p.value)) }, [
@@ -77,8 +82,10 @@ var M = k.use, N = {
77
82
  key: n.key,
78
83
  type: "button",
79
84
  role: "tab",
85
+ "data-slot": "configurator-preset",
80
86
  "aria-selected": n.key === t.activePreset,
81
- class: h(w(e)("focus-ring shrink-0 rounded-pill border px-3 py-1 text-xs font-medium transition-colors", n.key === t.activePreset ? "border-foreground/40 bg-foreground text-background" : "border-border/40 bg-card/40 text-foreground hover:bg-card/70")),
87
+ "data-active": n.key === t.activePreset || void 0,
88
+ class: h(w(e)("tap-squish focus-ring transition-control shrink-0 rounded-pill border px-3 py-1 text-xs font-medium", n.key === t.activePreset ? "glass-quiet border-border/50 text-foreground" : "border-border/40 bg-card/40 text-foreground hover:bg-card/70")),
82
89
  onClick: (e) => i("select-preset", n.key)
83
90
  }, S(n.label), 11, F))), 128))])])])) : c("", !0),
84
91
  u("div", { class: h(w(e)("configurator-controls flex-1 min-h-0", v.value)) }, [x(n.$slots, "controls", {
@@ -101,7 +108,7 @@ var M = k.use, N = {
101
108
  "aria-hidden",
102
109
  "inert",
103
110
  "data-state"
104
- ], G = { class: "min-h-0 overflow-hidden" }, K = /* @__PURE__ */ p({
111
+ ], G = { class: "min-h-0 overflow-hidden" }, K = /* @__PURE__ */ r(/* @__PURE__ */ p({
105
112
  __name: "ConfiguratorLayer",
106
113
  props: /* @__PURE__ */ m({
107
114
  label: {},
@@ -143,17 +150,19 @@ var M = k.use, N = {
143
150
  }
144
151
  let p = s(() => i.value ? "open" : "closed");
145
152
  return (a, s) => (_(), l("div", {
153
+ "data-slot": "configurator-layer",
146
154
  class: h(w(e)("configurator-layer border-b border-border/40 last:border-b-0", r.class)),
147
155
  "data-state": p.value
148
156
  }, [u("button", {
149
157
  type: "button",
150
- class: h(w(e)("configurator-layer-trigger", "group flex w-full items-center justify-between gap-2 px-3 py-2", "text-left transition-colors hover:bg-foreground/5 focus-ring")),
158
+ "data-slot": "configurator-layer-trigger",
159
+ class: h(w(e)("configurator-layer-trigger", "group flex w-full items-center justify-between gap-2 px-3 py-2", "tap-squish transition-control text-left hover:bg-foreground/5 focus-ring")),
151
160
  "aria-expanded": i.value,
152
161
  "aria-controls": o.value,
153
162
  "data-state": p.value,
154
163
  onClick: d
155
164
  }, [u("div", V, [u("span", H, S(t.label), 1), t.sub ? (_(), l("span", U, S(t.sub), 1)) : c("", !0)]), f(w(n), {
156
- class: "h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200 group-data-[state=open]:rotate-180",
165
+ class: "configurator-layer-chevron h-4 w-4 shrink-0 text-muted-foreground group-data-[state=open]:rotate-180",
157
166
  "aria-hidden": "true"
158
167
  })], 10, B), u("div", {
159
168
  id: o.value,
@@ -161,11 +170,11 @@ var M = k.use, N = {
161
170
  "aria-hidden": !i.value,
162
171
  inert: !i.value || void 0,
163
172
  "data-state": p.value,
164
- class: "configurator-layer-region grid transition-[grid-template-rows] duration-200 ease-out motion-reduce:transition-none",
173
+ class: "configurator-layer-region grid motion-reduce:transition-none",
165
174
  style: g({ gridTemplateRows: i.value ? "1fr" : "0fr" })
166
- }, [u("div", G, [u("div", { class: h(w(e)("configurator-layer-body px-3 py-2 space-y-2", r.dividers && "[&>*+*]:border-t [&>*+*]:border-border/30 [&>*+*]:pt-2", r.bodyClass)) }, [x(a.$slots, "default")], 2)])], 12, W)], 10, z));
175
+ }, [u("div", G, [u("div", { class: h(w(e)("configurator-layer-body px-3 py-2 space-y-2", r.dividers && "[&>*+*]:border-t [&>*+*]:border-border/30 [&>*+*]:pt-2", r.bodyClass)) }, [x(a.$slots, "default", {}, void 0, !0)], 2)])], 12, W)], 10, z));
167
176
  }
168
- }), q = ["data-density"], J = { class: "flex items-baseline justify-between gap-3" }, Y = { class: "flex min-w-0 items-baseline gap-2" }, X = {
177
+ }), [["__scopeId", "data-v-1e14935d"]]), q = ["data-density"], J = { class: "flex items-baseline justify-between gap-3" }, Y = { class: "flex min-w-0 items-baseline gap-2" }, X = {
169
178
  key: 0,
170
179
  class: "truncate text-micro font-mono text-muted-foreground/70"
171
180
  }, Z = ["aria-label"], Q = { class: "flex items-center" }, $ = {
@@ -191,6 +200,7 @@ var M = k.use, N = {
191
200
  setup(t, { emit: n }) {
192
201
  let r = t, i = n, o = M(), p = s(() => r.density ?? o?.value ?? void 0);
193
202
  return (n, o) => (_(), l("div", {
203
+ "data-slot": "configurator-row",
194
204
  class: h(w(e)("configurator-row flex flex-col gap-1.5 py-2", r.class)),
195
205
  "data-density": p.value
196
206
  }, [
@@ -200,7 +210,8 @@ var M = k.use, N = {
200
210
  }), t.name ? (_(), l("span", X, S(t.name), 1)) : c("", !0)]), t.canReset ? (_(), l("button", {
201
211
  key: 0,
202
212
  type: "button",
203
- class: "focus-ring inline-flex h-6 w-6 items-center justify-center rounded-pill text-muted-foreground/60 transition-colors hover:bg-foreground/5 hover:text-foreground active:scale-[var(--scale-press,0.97)]",
213
+ "data-slot": "configurator-reset",
214
+ class: "tap-squish transition-control focus-ring inline-flex h-6 w-6 items-center justify-center rounded-pill text-muted-foreground/60 hover:bg-foreground/5 hover:text-foreground",
204
215
  "aria-label": `Reset ${t.label}`,
205
216
  onClick: o[0] ||= (e) => i("reset")
206
217
  }, [f(w(O), {
@@ -211,7 +222,7 @@ var M = k.use, N = {
211
222
  t.description ? (_(), l("p", $, S(t.description), 1)) : c("", !0)
212
223
  ], 10, q));
213
224
  }
214
- }), [["__scopeId", "data-v-1b71284c"]]);
225
+ }), [["__scopeId", "data-v-377e5920"]]);
215
226
  //#endregion
216
227
  //#region src/components/custom/configurator/useConfiguratorState.ts
217
228
  function te(e) {
@@ -0,0 +1,24 @@
1
+ //#region src/composables/dom/useResolveTokenColor.ts
2
+ function e(e, t) {
3
+ if (!e.includes("var(") || typeof window > "u" || !t) return e;
4
+ let n = t.style.color;
5
+ t.style.color = e;
6
+ let r = getComputedStyle(t).color;
7
+ return t.style.color = n, r || e;
8
+ }
9
+ function t(t = 256) {
10
+ let n = /* @__PURE__ */ new Map();
11
+ return {
12
+ resolve(r, i) {
13
+ let a = n.get(r);
14
+ if (a !== void 0) return a;
15
+ let o = e(r, i);
16
+ return n.size >= t && n.clear(), n.set(r, o), o;
17
+ },
18
+ invalidate() {
19
+ n.clear();
20
+ }
21
+ };
22
+ }
23
+ //#endregion
24
+ export { e as n, t };