@mkbabb/glass-ui 3.10.0 → 3.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (269) hide show
  1. package/dist/{CardAction-DuArVky-.js → CardAction-DrAcAV4d.js} +2 -2
  2. package/dist/{CommandShortcut-CefCj5mt.js → CommandShortcut-mV2e1aG6.js} +2 -2
  3. package/dist/{DataTable-CUHMukiQ.js → DataTable-C3E6jZ5B.js} +2 -2
  4. package/dist/{DialogContent-BRkT1cjP.js → DialogContent-BxaaafFi.js} +1 -1
  5. package/dist/{HoverPopover-2LOIW34a.js → HoverPopover-CDA_SaCe.js} +1 -1
  6. package/dist/{MetricBadge-BZVWIxNy.js → MetricBadge-idgrkqoP.js} +5 -7
  7. package/dist/{Notification-DLMhblXR.js → Notification-Cu0nN17_.js} +1 -1
  8. package/dist/{NumberFieldContent-BbLOh8RU.js → NumberFieldContent-CHEWghnY.js} +2 -2
  9. package/dist/{PopoverContent-BId6ggf_.js → PopoverContent-DpUvdYY-.js} +1 -1
  10. package/dist/{Progress-iEuD9pxG.js → Progress-BW-StFw2.js} +1 -1
  11. package/dist/{ScrollingText-BPP84wKo.js → ScrollingText-DruYCni_.js} +1 -1
  12. package/dist/{SelectScrollDownButton-T32cVFeM.js → SelectScrollDownButton-pirzjm--.js} +3 -3
  13. package/dist/{Switch-Ch-k3Rv-.js → Switch-DeAqg6pi.js} +1 -1
  14. package/dist/{TabsList-B8CVOQPC.js → TabsList-BAVzOZpg.js} +2 -2
  15. package/dist/{Toaster-1rYWrmAm.js → Toaster-CvuuW_y9.js} +49 -46
  16. package/dist/{ToggleGroupItem-Cev4pOVK.js → ToggleGroupItem-DtD37b4G.js} +4 -4
  17. package/dist/animated-digit.js +2 -2
  18. package/dist/api/index.d.ts +3 -4
  19. package/dist/api.js +1 -1
  20. package/dist/aurora.js +66 -66
  21. package/dist/{badge-CaoFJzRb.js → badge-NdCQMvvB.js} +1 -1
  22. package/dist/badge.js +1 -1
  23. package/dist/{button-DN39cGqL.js → button-DyiWFAOE.js} +12 -12
  24. package/dist/button.js +1 -1
  25. package/dist/canvas.js +2 -2
  26. package/dist/card.js +1 -1
  27. package/dist/carousel.js +5 -5
  28. package/dist/collapsible.js +1 -1
  29. package/dist/{color-C5ls_QF7.js → color-B65wWyQz.js} +9 -7
  30. package/dist/color.js +1 -1
  31. package/dist/command.js +1 -1
  32. package/dist/components/custom/aurora/constants/shaders/mediums.glsl.d.ts +1 -1
  33. package/dist/components/custom/aurora/constants/shaders/vangogh-medium.glsl.d.ts +1 -0
  34. package/dist/components/custom/constellation/Constellation.vue.d.ts +12 -0
  35. package/dist/components/custom/constellation/composables/createConstellationField.d.ts +35 -0
  36. package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +35 -0
  37. package/dist/components/custom/constellation/constants.d.ts +36 -0
  38. package/dist/components/custom/constellation/constellationDraw.d.ts +18 -0
  39. package/dist/components/custom/constellation/constellationField.d.ts +10 -151
  40. package/dist/components/custom/constellation/constellationInteraction.d.ts +102 -0
  41. package/dist/components/custom/constellation/index.d.ts +3 -1
  42. package/dist/components/custom/controls/DarkModeToggle.vue.d.ts +11 -0
  43. package/dist/components/custom/dock/DockTabButton.vue.d.ts +3 -4
  44. package/dist/components/custom/dock/GlassDock.vue.d.ts +2 -110
  45. package/dist/components/custom/dock/composables/dockMorphContext.d.ts +36 -0
  46. package/dist/components/custom/dock/composables/useDockMorphWindow.d.ts +15 -0
  47. package/dist/components/custom/dock/composables/useDockShellProps.d.ts +131 -0
  48. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +44 -0
  49. package/dist/components/custom/dock/constants.d.ts +23 -0
  50. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +0 -29
  51. package/dist/components/custom/fourier-field/index.d.ts +1 -1
  52. package/dist/components/custom/fourier-field/math.d.ts +17 -0
  53. package/dist/components/custom/fourier-field/presets.d.ts +54 -0
  54. package/dist/components/custom/goo-blob/composables/buildMetaballProgram.d.ts +18 -0
  55. package/dist/components/custom/goo-blob/composables/uploadBlobUniforms.d.ts +41 -0
  56. package/dist/components/custom/goo-blob/composables/useBlobPointer.d.ts +4 -3
  57. package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +11 -8
  58. package/dist/components/custom/goo-blob/constants.d.ts +52 -0
  59. package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -0
  60. package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +2 -2
  61. package/dist/components/custom/metric-badge/MetricBadge.vue.d.ts +0 -8
  62. package/dist/components/custom/tabs/constants.d.ts +12 -0
  63. package/dist/components/custom/underline/GlassUnderline.vue.d.ts +84 -0
  64. package/dist/components/custom/underline/index.d.ts +2 -0
  65. package/dist/components/custom/underline/types.d.ts +56 -0
  66. package/dist/components/ui/drawer/Drawer.vue.d.ts +1 -0
  67. package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +2 -2
  68. package/dist/components/ui/slider/index.d.ts +22 -19
  69. package/dist/components/ui/toast/use-toast.d.ts +2 -2
  70. package/dist/composables/color/index.d.ts +12 -0
  71. package/dist/composables/glass/useSpecularTracking.d.ts +12 -3
  72. package/dist/composables/motion/core/index.d.ts +0 -1
  73. package/dist/composables/motion/curves.d.ts +48 -0
  74. package/dist/composables/motion/index.d.ts +2 -0
  75. package/dist/composables/motion/springPresets.d.ts +33 -0
  76. package/dist/composables/motion/suite.d.ts +2 -0
  77. package/dist/composables/motion/useSpringMount.d.ts +1 -1
  78. package/dist/configurator.js +1 -1
  79. package/dist/confirm-dialog.js +2 -2
  80. package/dist/constellation.js +260 -225
  81. package/dist/controls.js +48 -14
  82. package/dist/dark.js +1 -1
  83. package/dist/data-table.js +1 -1
  84. package/dist/dialog.js +2 -2
  85. package/dist/dock.js +339 -327
  86. package/dist/dockContext-bho8B1A4.js +17 -0
  87. package/dist/{dropdown-menu-D77jX6Df.js → dropdown-menu-DVnQcA0E.js} +7 -4
  88. package/dist/dropdown-menu.js +1 -1
  89. package/dist/expandable-container.js +38 -61
  90. package/dist/forms.js +2 -2
  91. package/dist/fourier-field.js +137 -102
  92. package/dist/fourier-math.js +2 -2
  93. package/dist/glass-ui.css +1 -1
  94. package/dist/glass-ui.js +287 -209
  95. package/dist/goo-blob.js +243 -212
  96. package/dist/hover-popover.js +1 -1
  97. package/dist/icon-tooltip.js +1 -1
  98. package/dist/index.d.ts +0 -3
  99. package/dist/keyboard.js +1 -1
  100. package/dist/labeled-field.js +5 -5
  101. package/dist/{math-DTpRVC0e.js → math-BUU9hHID.js} +18 -2
  102. package/dist/metric-badge.js +1 -1
  103. package/dist/metric-stack.js +1 -1
  104. package/dist/motion-core.js +69 -70
  105. package/dist/motion-curves.d.ts +1 -0
  106. package/dist/motion-curves.js +130 -0
  107. package/dist/motion.js +38 -37
  108. package/dist/notification.js +1 -1
  109. package/dist/number-field.js +1 -1
  110. package/dist/popover.js +1 -1
  111. package/dist/progress.js +1 -1
  112. package/dist/pulse.js +1 -1
  113. package/dist/reactive.js +1 -1
  114. package/dist/scrolling-text.js +1 -1
  115. package/dist/search.js +6 -6
  116. package/dist/select.js +1 -1
  117. package/dist/{sheet-VZEtNFvO.js → sheet-ChSXcJpU.js} +1 -1
  118. package/dist/sheet.js +1 -1
  119. package/dist/{slider-CyzcxBoh.js → slider-sfl8gFDD.js} +4 -4
  120. package/dist/slider.js +1 -1
  121. package/dist/sortable-list.js +2 -2
  122. package/dist/springPresets-aRSm-4_k.js +40 -0
  123. package/dist/stacked-icons.js +6 -6
  124. package/dist/styles/animations.css +18 -74
  125. package/dist/styles/components.css +1 -1
  126. package/dist/styles/dock/layer-group.css +22 -0
  127. package/dist/styles/dock/layers.css +11 -1
  128. package/dist/styles/dock/morph.css +95 -19
  129. package/dist/styles/dock/shell.css +12 -0
  130. package/dist/styles/dock-controls.css +28 -31
  131. package/dist/styles/drawer.css +2 -0
  132. package/dist/styles/floating-panel.css +2 -0
  133. package/dist/styles/glass/a11y-fallback.css +245 -0
  134. package/dist/styles/glass/ladder.css +304 -0
  135. package/dist/styles/glass/material.css +238 -0
  136. package/dist/styles/glass/progress-rail.css +78 -0
  137. package/dist/styles/glass/squircle.css +66 -0
  138. package/dist/styles/glass/surfaces.css +306 -0
  139. package/dist/styles/glass-refract.css +2 -0
  140. package/dist/styles/glass.css +31 -1188
  141. package/dist/styles/hover-popover.css +2 -0
  142. package/dist/styles/index.css +24 -6
  143. package/dist/styles/instrument-chassis.css +4 -0
  144. package/dist/styles/paper.css +2 -68
  145. package/dist/styles/theme.css +13 -20
  146. package/dist/styles/tokens/color-radius.css +250 -0
  147. package/dist/styles/tokens/dark-arm.css +194 -0
  148. package/dist/styles/tokens/glass.css +413 -0
  149. package/dist/styles/tokens/light-dark.css +158 -0
  150. package/dist/styles/tokens/offsets-sizing.css +406 -0
  151. package/dist/styles/tokens/property-regs.css +169 -0
  152. package/dist/styles/tokens/scale-paper.css +361 -0
  153. package/dist/styles/tokens/scheme-motion.css +334 -0
  154. package/dist/styles/tokens/shadow.css +132 -0
  155. package/dist/styles/tokens.css +22 -2355
  156. package/dist/styles/typography.css +18 -6
  157. package/dist/styles/utilities/a11y-overrides.css +140 -0
  158. package/dist/styles/utilities/animate.css +26 -0
  159. package/dist/styles/utilities/base.css +365 -0
  160. package/dist/styles/utilities/btn.css +399 -0
  161. package/dist/styles/utilities/components.css +317 -0
  162. package/dist/styles/utilities.css +19 -1260
  163. package/dist/styles/view-transition.css +0 -51
  164. package/dist/switch.js +1 -1
  165. package/dist/tabs.js +98 -98
  166. package/dist/timeline.js +2 -2
  167. package/dist/toast.js +1 -1
  168. package/dist/toggle-group.js +1 -1
  169. package/dist/typewriter.js +1 -1
  170. package/dist/underline.d.ts +1 -0
  171. package/dist/underline.js +85 -0
  172. package/dist/{useAnimatedNumber-Bcpy5Etf.js → useAnimatedNumber-DfVgP4te.js} +1 -1
  173. package/dist/{useConfiguratorState-DxAqksK6.js → useConfiguratorState-BdQXh9ie.js} +1 -1
  174. package/dist/useSpecularTracking-DFK_fhpG.js +32 -0
  175. package/dist/useSpringMount-DXUzxBjV.js +108 -0
  176. package/dist/vReveal-CqaCz_mC.js +44 -0
  177. package/dist/watercolor-dot.js +2 -2
  178. package/package.json +34 -52
  179. package/src/styles/animations.css +18 -74
  180. package/src/styles/dock/layer-group.css +22 -0
  181. package/src/styles/dock/layers.css +11 -1
  182. package/src/styles/dock/morph.css +95 -19
  183. package/src/styles/dock/shell.css +12 -0
  184. package/src/styles/dock-controls.css +28 -31
  185. package/src/styles/glass/a11y-fallback.css +245 -0
  186. package/src/styles/glass/ladder.css +304 -0
  187. package/src/styles/glass/material.css +238 -0
  188. package/src/styles/glass/progress-rail.css +78 -0
  189. package/src/styles/glass/squircle.css +66 -0
  190. package/src/styles/glass/surfaces.css +306 -0
  191. package/src/styles/glass.css +31 -1188
  192. package/src/styles/index.css +24 -6
  193. package/src/styles/paper.css +2 -68
  194. package/src/styles/theme.css +13 -20
  195. package/src/styles/tokens/color-radius.css +250 -0
  196. package/src/styles/tokens/dark-arm.css +194 -0
  197. package/src/styles/tokens/glass.css +413 -0
  198. package/src/styles/tokens/light-dark.css +158 -0
  199. package/src/styles/tokens/offsets-sizing.css +406 -0
  200. package/src/styles/tokens/property-regs.css +169 -0
  201. package/src/styles/tokens/scale-paper.css +361 -0
  202. package/src/styles/tokens/scheme-motion.css +334 -0
  203. package/src/styles/tokens/shadow.css +132 -0
  204. package/src/styles/tokens.css +22 -2355
  205. package/src/styles/typography.css +18 -6
  206. package/src/styles/utilities/a11y-overrides.css +140 -0
  207. package/src/styles/utilities/animate.css +26 -0
  208. package/src/styles/utilities/base.css +365 -0
  209. package/src/styles/utilities/btn.css +399 -0
  210. package/src/styles/utilities/components.css +317 -0
  211. package/src/styles/utilities.css +19 -1260
  212. package/src/styles/view-transition.css +0 -51
  213. package/dist/DeckProgress-Dmk4_AKN.js +0 -23
  214. package/dist/InstrumentRail-CUJ05YVG.js +0 -44
  215. package/dist/components/custom/deck-progress/DeckProgress.vue.d.ts +0 -27
  216. package/dist/components/custom/deck-progress/index.d.ts +0 -2
  217. package/dist/components/custom/dialog-native/GlassDialogNative.vue.d.ts +0 -57
  218. package/dist/components/custom/dialog-native/index.d.ts +0 -1
  219. package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +0 -41
  220. package/dist/components/custom/glass-panel/index.d.ts +0 -2
  221. package/dist/components/custom/handmark/HandMark.vue.d.ts +0 -29
  222. package/dist/components/custom/handmark/brush.d.ts +0 -219
  223. package/dist/components/custom/handmark/freehand.d.ts +0 -69
  224. package/dist/components/custom/handmark/geometry.d.ts +0 -32
  225. package/dist/components/custom/handmark/index.d.ts +0 -21
  226. package/dist/components/custom/handmark/ink.d.ts +0 -11
  227. package/dist/components/custom/handmark/texture.d.ts +0 -39
  228. package/dist/components/custom/handmark/types.d.ts +0 -53
  229. package/dist/components/custom/handmark/useHandMark.d.ts +0 -66
  230. package/dist/components/custom/header-ribbon/HeaderRibbon.vue.d.ts +0 -31
  231. package/dist/components/custom/header-ribbon/index.d.ts +0 -2
  232. package/dist/components/custom/header-ribbon/types.d.ts +0 -7
  233. package/dist/components/custom/instrument-rail/InstrumentRail.vue.d.ts +0 -91
  234. package/dist/components/custom/instrument-rail/index.d.ts +0 -2
  235. package/dist/composables/motion/useRouteTransition.d.ts +0 -42
  236. package/dist/deck-progress.d.ts +0 -1
  237. package/dist/deck-progress.js +0 -2
  238. package/dist/dockContext-BKeIMmNk.js +0 -9
  239. package/dist/glass-panel.d.ts +0 -1
  240. package/dist/glass-panel.js +0 -44
  241. package/dist/handmark.d.ts +0 -1
  242. package/dist/handmark.js +0 -609
  243. package/dist/header-ribbon.d.ts +0 -1
  244. package/dist/header-ribbon.js +0 -63
  245. package/dist/instrument-rail.d.ts +0 -1
  246. package/dist/instrument-rail.js +0 -2
  247. package/dist/useGlassRenderer-D7YGOYiM.js +0 -69
  248. package/dist/useSpecularTracking-BVRZsRHA.js +0 -26
  249. package/dist/useSpringMount-BJSHcLl3.js +0 -113
  250. package/dist/useViewTransition-DaN5Zrox.js +0 -21
  251. package/dist/vReveal-zUIQk-rJ.js +0 -53
  252. /package/dist/{CollapsibleContent-CP9qF1v4.js → CollapsibleContent-Drow5WkV.js} +0 -0
  253. /package/dist/{DialogFooter-Gprw8H_A.js → DialogFooter-DufLHi0y.js} +0 -0
  254. /package/dist/{IconTooltip-Cus0fvK0.js → IconTooltip-BrQ5p181.js} +0 -0
  255. /package/dist/{Input-xuDwALQR.js → Input-B-F818RU.js} +0 -0
  256. /package/dist/{_plugin-vue_export-helper-ok8pgSl5.js → _plugin-vue_export-helper-DWghtRt7.js} +0 -0
  257. /package/dist/{compile-BOXjLUxu.js → compile-Ce_V55zi.js} +0 -0
  258. /package/dist/{constants-yKeKnE84.js → constants-C8NMonuo.js} +0 -0
  259. /package/dist/{presets-Dkdv55Gt.js → presets-1OhFpaIC.js} +0 -0
  260. /package/dist/{prng-D27-B3tK.js → prng-CjVgzjQT.js} +0 -0
  261. /package/dist/{resolveCanvasColor-BBiYfp8g.js → resolveCanvasColor-CRvVzOvP.js} +0 -0
  262. /package/dist/{useCanvas2D-ClrQuZtp.js → useCanvas2D-CSeH8h16.js} +0 -0
  263. /package/dist/{useGlobalDark-d6waty-X.js → useGlobalDark-D7R9OypB.js} +0 -0
  264. /package/dist/{useIntersectionPause-Cck5Uxk8.js → useIntersectionPause-DAdVPVp4.js} +0 -0
  265. /package/dist/{useInterval-Dsmqwi03.js → useInterval-D3USn0yc.js} +0 -0
  266. /package/dist/{useKeyboardShortcuts-CyIYrndH.js → useKeyboardShortcuts-i8tHd5WO.js} +0 -0
  267. /package/dist/{useScrollProgress-CffFGLa5.js → useScrollProgress-CcgmgMQt.js} +0 -0
  268. /package/dist/{useSortable-C8ReQ50P.js → useSortable-DnyGXKKY.js} +0 -0
  269. /package/dist/{useTextHighlight-CWEi25hf.js → useTextHighlight-B3b10W6r.js} +0 -0
@@ -60,56 +60,5 @@
60
60
  @keyframes gl-vt-slide-in { from { opacity: 0; translate: 0 var(--vt-rise, 8px); } }
61
61
  @keyframes gl-vt-slide-out { to { opacity: 0; translate: 0 var(--vt-rise, 8px); } }
62
62
 
63
- /* ── gl-shared-element — the named-pair MORPH group (D6.c M6) ──────────────────
64
- * Distinct from `.gl-list-item` (a cross-fade of MANY members in a re-rank): a
65
- * shared-element morph is ONE element that exists in BOTH the old and new states
66
- * under the SAME `view-transition-name`, so the browser MORPHS it in place — the
67
- * group interpolates its size+position (transform) while old/new cross-fade. The
68
- * editorial case: the gallery card's title IS the dashboard masthead's title, so
69
- * the name you clicked GROWS into the name you read (the card → masthead route
70
- * morph). The consumer adds `view-transition-class: gl-shared-element` plus a
71
- * MATCHED `view-transition-name: <id>` on BOTH the source and destination element
72
- * (the MANDATORY runtime rule — ≤1 element per name per state, else the morph is
73
- * skipped silently), and wraps the navigation in `useRouteTransition` /
74
- * `startViewTransition`.
75
- *
76
- * The morph rides the SMOOTH register (the 700ms-class spring, C-ANIM-VIZ-MAP T1
77
- * §7) — a longer, gentler curve than the list-item cross-fade, because a morph
78
- * that travels across the viewport wants room to read. The old/new cross-fade is
79
- * softened so the morphing GROUP is the figure and the rest recedes. */
80
- ::view-transition-group(.gl-shared-element) {
81
- animation-duration: var(--vt-morph-duration, var(--duration-slow, 500ms));
82
- animation-timing-function: var(--vt-morph-ease, var(--spring-smooth, ease-in-out));
83
- }
84
- ::view-transition-old(.gl-shared-element),
85
- ::view-transition-new(.gl-shared-element) {
86
- /* The image pair cross-fades UNDER the group's size/position morph — softer
87
- than the group curve so the morph (the size/position travel) is the figure
88
- and the pixel cross-fade is the recessive fill. */
89
- animation-duration: var(--vt-morph-duration, var(--duration-slow, 500ms));
90
- animation-timing-function: var(--vt-ease, var(--spring-smooth, ease-in-out));
91
- }
92
-
93
- /* ── gl-expand — the plate → fullscreen MORPH recipe (D6.c M7) ─────────────────
94
- * The expand verb (a plate growing to fullscreen) is a SHARED-ELEMENT morph, not
95
- * an opacity jump-cut: the plate IS the fullscreen surface, growing. It is a
96
- * specialization of `gl-shared-element` — the SAME named-pair morph, with the
97
- * expand register (a touch snappier than a route morph, because the surface stays
98
- * in place and only the rect grows, so it wants less travel-room). `ExpandableContainer`
99
- * wires the `view-transition-name` plumbing on its plate↔fullscreen surfaces (an
100
- * opt-in `viewTransitionName` prop), so a consumer opts in and the open/close
101
- * mutation — wrapped in `startViewTransition` — morphs the plate's rect to the
102
- * fullscreen rect and back. The named pair is the SAME element across states
103
- * (the slot content), so the browser captures one group and grows it. */
104
- ::view-transition-group(.gl-expand) {
105
- animation-duration: var(--vt-expand-duration, var(--duration-normal, 240ms));
106
- animation-timing-function: var(--vt-expand-ease, var(--spring-bouncy, ease-out));
107
- }
108
- ::view-transition-old(.gl-expand),
109
- ::view-transition-new(.gl-expand) {
110
- animation-duration: var(--vt-expand-duration, var(--duration-normal, 240ms));
111
- animation-timing-function: var(--vt-ease, var(--spring-bouncy, ease-out));
112
- }
113
-
114
63
  /* Keep the non-transitioned UI interactive while the snapshot animates. */
115
64
  ::view-transition { pointer-events: none; }
package/dist/switch.js CHANGED
@@ -1,2 +1,2 @@
1
- import { t as e } from "./Switch-Ch-k3Rv-.js";
1
+ import { t as e } from "./Switch-DeAqg6pi.js";
2
2
  export { e as Switch };
package/dist/tabs.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import { t as e } from "./cn-DJXf4yaB.js";
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";
2
+ import { a as t, i as n, o as r, r as i, s as a } from "./SelectScrollDownButton-pirzjm--.js";
3
+ import { i as o, n as s, r as c, t as l } from "./TooltipProvider-CmZzCuaG.js";
4
+ import { Fragment as u, computed as d, createBlock as f, createCommentVNode as p, createElementBlock as m, createElementVNode as h, createTextVNode as g, createVNode as _, defineComponent as v, mergeModels as y, mergeProps as b, nextTick as x, normalizeClass as S, normalizeStyle as C, onBeforeUnmount as ee, onMounted as w, onUnmounted as T, openBlock as E, ref as D, renderList as O, renderSlot as k, toDisplayString as A, unref as j, useModel as te, watch as M, withCtx as N } from "vue";
5
+ //#endregion
6
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({
7
+ function ne(e) {
8
+ let { containerRef: t, indicatorRef: n, buttonRefs: r, options: i, model: a, multiSelect: o, anchorSupported: s, jsSliderActive: c, activeValues: l } = e, u = D({
9
9
  width: "0px",
10
10
  transform: "translateX(0px)",
11
11
  opacity: "0"
@@ -21,7 +21,7 @@ function te(e) {
21
21
  opacity: "1"
22
22
  };
23
23
  }
24
- let f = k({});
24
+ let f = D({});
25
25
  function p() {
26
26
  if (!o.value) return;
27
27
  let e = {};
@@ -59,15 +59,15 @@ function te(e) {
59
59
  i.style.setProperty("--stretch", "1"), g = null;
60
60
  }, 60);
61
61
  }
62
- P(() => a.value, () => {
63
- c.value && S(m);
64
- }, { deep: !0 }), P(() => i.value, () => {
65
- c.value && S(m);
62
+ M(() => a.value, () => {
63
+ c.value && x(m);
64
+ }, { deep: !0 }), M(() => i.value, () => {
65
+ c.value && x(m);
66
66
  }, { deep: !0 });
67
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(() => {
68
+ return w(() => {
69
+ h = i.value.findIndex((e) => l.value.includes(e.value)), c.value && (x(m), t.value && (y = new ResizeObserver(() => m()), y.observe(t.value)));
70
+ }), T(() => {
71
71
  y?.disconnect(), g && clearTimeout(g);
72
72
  }), {
73
73
  singleSliderStyle: u,
@@ -77,17 +77,17 @@ function te(e) {
77
77
  }
78
78
  //#endregion
79
79
  //#region src/components/custom/tabs/SegmentedTabs.vue?vue&type=script&setup=true&lang.ts
80
- var ne = ["role"], re = [
80
+ var re = ["role"], ie = [
81
81
  "role",
82
82
  "disabled",
83
83
  "onClick"
84
- ], ie = [
84
+ ], ae = [
85
85
  "role",
86
86
  "disabled",
87
87
  "onClick"
88
- ], I = /* @__PURE__ */ t(/* @__PURE__ */ y({
88
+ ], P = /* @__PURE__ */ v({
89
89
  __name: "SegmentedTabs",
90
- props: /* @__PURE__ */ b({
90
+ props: /* @__PURE__ */ y({
91
91
  options: {},
92
92
  variant: { default: "segmented" },
93
93
  multiSelect: {
@@ -111,33 +111,33 @@ var ne = ["role"], re = [
111
111
  modelModifiers: {}
112
112
  }),
113
113
  emits: ["update:modelValue"],
114
- setup(t) {
114
+ setup(v) {
115
115
  function y(e, t) {
116
116
  return typeof document > "u" ? t : getComputedStyle(document.documentElement).getPropertyValue(e).trim() || t;
117
117
  }
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;
118
+ let T = v, M = te(v, "modelValue"), P = D(null), F = D(null), I = D([]), L = typeof CSS < "u" && typeof CSS.supports == "function" && CSS.supports("position-anchor", "--x"), R = d(() => T.variant === "underline");
119
+ d(() => T.variant === "pill"), d(() => T.variant === "segmented");
120
+ let z = d(() => T.overflow === "scroll"), B = d(() => T.overflow === "auto"), V = d(() => T.multiSelect && !R.value), H = d(() => {
121
+ let e = M.value;
122
+ return V.value && Array.isArray(e) ? e : e == null ? [] : [e];
123
+ }), U = (e) => H.value.includes(e), oe = d(() => (V.value || !L) && !R.value), W = d(() => !V.value && !L && !R.value), G = d(() => T.responsive === !1 ? null : T.responsive === !0 ? {} : T.responsive), se = d(() => G.value?.breakpoint ?? "640px"), K = d(() => G.value?.desktopOptions ?? T.options), q = D(!0), J = null;
124
+ function Y(e) {
125
+ q.value = e.matches;
126
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({
127
+ let ce = d(() => {
128
+ if (!G.value) return M.value;
129
+ let e = K.value;
130
+ return e.some((e) => e.value === M.value) ? M.value : e[0]?.value ?? M.value;
131
+ }), X = d(() => G.value ? K.value : T.options), le = d(() => G.value?.ariaLabel ?? T.options.find((e) => e.value === M.value)?.label ?? "Select"), ue = d(() => !!G.value && !q.value), { singleSliderStyle: de, multiSliderStyles: Z, squishOnTravel: fe } = ne({
132
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
133
+ indicatorRef: F,
134
+ buttonRefs: I,
135
+ options: X,
136
+ model: d(() => ce.value),
137
+ multiSelect: V,
138
+ anchorSupported: L,
139
+ jsSliderActive: oe,
140
+ activeValues: H
141
141
  });
142
142
  function pe(e) {
143
143
  if (typeof window < "u" && window.matchMedia("(prefers-reduced-motion: reduce)").matches) return;
@@ -156,8 +156,8 @@ var ne = ["role"], re = [
156
156
  });
157
157
  }
158
158
  function Q(e) {
159
- if (!B.value && !V.value) return;
160
- let t = L.value[e];
159
+ if (!z.value && !B.value) return;
160
+ let t = I.value[e];
161
161
  if (!t) return;
162
162
  let n = typeof window < "u" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
163
163
  t.scrollIntoView({
@@ -167,117 +167,117 @@ var ne = ["role"], re = [
167
167
  });
168
168
  }
169
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;
170
+ if (X.value[t]?.disabled) return;
171
+ let n = I.value[t];
172
+ if (n && pe(n), fe(t), V.value) {
173
+ let t = [...H.value], n = t.indexOf(e);
174
+ n > -1 ? t.length > 1 && t.splice(n, 1) : t.push(e), M.value = t;
175
+ } else M.value = e;
176
176
  Q(t);
177
177
  }
178
178
  function me(e) {
179
- typeof e == "string" && (D.value = e);
179
+ typeof e == "string" && (M.value = e);
180
180
  }
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));
181
+ return w(() => {
182
+ G.value && typeof window < "u" && window.matchMedia && (J = window.matchMedia(`(min-width: ${se.value})`), q.value = J.matches, J.addEventListener("change", Y)), x(() => {
183
+ let e = X.value.findIndex((e) => U(e.value));
184
184
  e >= 0 && Q(e);
185
185
  });
186
- }), T(() => {
187
- Y?.removeEventListener("change", X), Y = null;
188
- }), (f, y) => le.value ? (O(), h("div", {
186
+ }), ee(() => {
187
+ J?.removeEventListener("change", Y), J = null;
188
+ }), (d, y) => ue.value ? (E(), m("div", {
189
189
  key: 0,
190
- class: C(N(e)("segmented-tabs__mobile w-fit", b.class))
191
- }, [v(N(o), {
192
- "model-value": D.value,
190
+ class: S(j(e)("segmented-tabs__mobile w-fit", T.class))
191
+ }, [_(j(a), {
192
+ "model-value": M.value,
193
193
  "onUpdate:modelValue": me
194
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))
195
+ default: N(() => [_(j(t), {
196
+ "aria-label": le.value,
197
+ class: S(j(e)("segmented-tabs__trigger text-small w-auto min-w-input-sm", G.value?.triggerClass))
198
198
  }, {
199
- default: F(() => [v(N(i))]),
199
+ default: N(() => [_(j(r))]),
200
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), {
201
+ }, 8, ["aria-label", "class"]), _(j(n), null, {
202
+ default: N(() => [(E(!0), m(u, null, O(v.options, (e) => (E(), f(j(i), {
203
203
  key: e.value,
204
204
  value: e.value
205
205
  }, {
206
- default: F(() => [_(M(e.label), 1)]),
206
+ default: N(() => [g(A(e.label), 1)]),
207
207
  _: 2
208
208
  }, 1032, ["value"]))), 128))]),
209
209
  _: 1
210
210
  })]),
211
211
  _: 1
212
- }, 8, ["model-value"])], 2)) : (O(), h("div", {
212
+ }, 8, ["model-value"])], 2)) : (E(), m("div", {
213
213
  key: 1,
214
214
  ref_key: "containerRef",
215
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))
216
+ role: R.value ? "tablist" : "group",
217
+ class: S(j(e)("segmented-tabs", `segmented-tabs--${v.variant}`, z.value && "segmented-tabs--scroll scroll-fade-mask scrollbar-hidden", B.value && "segmented-tabs--auto scrollbar-hidden", T.class))
218
218
  }, [
219
- !z.value && !H.value ? (O(), h("div", {
219
+ !R.value && !V.value ? (E(), m("div", {
220
220
  key: 0,
221
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", {
222
+ ref: F,
223
+ class: S(["segmented-indicator", W.value ? "segmented-indicator--js" : "segmented-indicator--anchor"]),
224
+ style: C(W.value ? j(de) : void 0)
225
+ }, null, 6)) : p("", !0),
226
+ !R.value && V.value ? (E(!0), m(u, { key: 1 }, O(H.value, (e) => (E(), m("div", {
227
227
  key: "indicator-" + e,
228
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), {
229
+ style: C(j(Z)[e] ?? { opacity: "0" })
230
+ }, null, 4))), 128)) : p("", !0),
231
+ (E(!0), m(u, null, O(X.value, (e, t) => (E(), m(u, { key: e.value }, [e.tooltip ? (E(), f(j(l), {
232
232
  key: 0,
233
233
  "delay-duration": 200
234
234
  }, {
235
- default: F(() => [v(N(s), null, {
236
- default: F(() => [v(N(c), { "as-child": "" }, {
237
- default: F(() => [g("button", x({
235
+ default: N(() => [_(j(o), null, {
236
+ default: N(() => [_(j(s), { "as-child": "" }, {
237
+ default: N(() => [h("button", b({
238
238
  ref_for: !0,
239
239
  ref: (e) => {
240
- e && (L.value[t] = e);
240
+ e && (I.value[t] = e);
241
241
  },
242
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" }, {
243
+ role: R.value ? "tab" : void 0
244
+ }, { ref_for: !0 }, R.value ? { "aria-selected": U(e.value) ? "true" : "false" } : { "aria-pressed": U(e.value) ? "true" : "false" }, {
245
245
  disabled: e.disabled,
246
246
  class: e.disabled && "is-disabled",
247
247
  onClick: (n) => $(e.value, t)
248
- }), [j(f.$slots, "option", {
248
+ }), [k(d.$slots, "option", {
249
249
  option: e,
250
- active: W(e.value)
251
- }, () => [_(M(e.label), 1)], !0)], 16, re)]),
250
+ active: U(e.value)
251
+ }, () => [g(A(e.label), 1)])], 16, ie)]),
252
252
  _: 2
253
- }, 1024), v(N(l), {
253
+ }, 1024), _(j(c), {
254
254
  side: "bottom",
255
255
  "side-offset": 8
256
256
  }, {
257
- default: F(() => [_(M(e.tooltip), 1)]),
257
+ default: N(() => [g(A(e.tooltip), 1)]),
258
258
  _: 2
259
259
  }, 1024)]),
260
260
  _: 2
261
261
  }, 1024)]),
262
262
  _: 2
263
- }, 1024)) : (O(), h("button", x({
263
+ }, 1024)) : (E(), m("button", b({
264
264
  key: 1,
265
265
  ref_for: !0,
266
266
  ref: (e) => {
267
- e && (L.value[t] = e);
267
+ e && (I.value[t] = e);
268
268
  },
269
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" }, {
270
+ role: R.value ? "tab" : void 0
271
+ }, { ref_for: !0 }, R.value ? { "aria-selected": U(e.value) ? "true" : "false" } : { "aria-pressed": U(e.value) ? "true" : "false" }, {
272
272
  disabled: e.disabled,
273
273
  class: e.disabled && "is-disabled",
274
274
  onClick: (n) => $(e.value, t)
275
- }), [j(f.$slots, "option", {
275
+ }), [k(d.$slots, "option", {
276
276
  option: e,
277
- active: W(e.value)
278
- }, () => [_(M(e.label), 1)], !0)], 16, ie))], 64))), 128))
279
- ], 10, ne));
277
+ active: U(e.value)
278
+ }, () => [g(A(e.label), 1)])], 16, ae))], 64))), 128))
279
+ ], 10, re));
280
280
  }
281
- }), [["__scopeId", "data-v-dd84d37c"]]);
281
+ });
282
282
  //#endregion
283
- export { I as SegmentedTabs };
283
+ export { P as SegmentedTabs };
package/dist/timeline.js CHANGED
@@ -1,5 +1,5 @@
1
- import { t as e } from "./_plugin-vue_export-helper-ok8pgSl5.js";
2
- import { t } from "./HoverPopover-2LOIW34a.js";
1
+ import { t as e } from "./_plugin-vue_export-helper-DWghtRt7.js";
2
+ import { t } from "./HoverPopover-CDA_SaCe.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) {
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-1rYWrmAm.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-CvuuW_y9.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-Cev4pOVK.js";
1
+ import { n as e, t } from "./ToggleGroupItem-DtD37b4G.js";
2
2
  export { e as ToggleGroup, t as ToggleGroupItem };
@@ -1,4 +1,4 @@
1
- import { t as e } from "./_plugin-vue_export-helper-ok8pgSl5.js";
1
+ import { t as e } from "./_plugin-vue_export-helper-DWghtRt7.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 = {
@@ -0,0 +1 @@
1
+ export * from "./components/custom/underline";
@@ -0,0 +1,85 @@
1
+ import { t as e } from "./_plugin-vue_export-helper-DWghtRt7.js";
2
+ import { computed as t, createElementBlock as n, createElementVNode as r, defineComponent as i, normalizeStyle as a, onMounted as o, openBlock as s, ref as c, renderSlot as l, unref as u, useCssVars as d, useId as f, watch as p } from "vue";
3
+ import { NumericAnimation as m } from "@mkbabb/keyframes.js";
4
+ import { easeOutCubic as h } from "@mkbabb/value.js";
5
+ //#region src/components/custom/underline/GlassUnderline.vue?vue&type=script&setup=true&lang.ts
6
+ var g = ["data-gu-clock", "data-gu-variant"], _ = ["viewBox"], v = ["id", "d"], y = ["d"], b = 120, x = "M1,6 C18,3 30,8 48,5 S78,3 99,6", S = "M1,7.1 C20,5 32,9 50,6.2 S80,5 99,7", C = /* @__PURE__ */ e(/* @__PURE__ */ i({
7
+ __name: "GlassUnderline",
8
+ props: {
9
+ clock: { default: "load" },
10
+ variant: { default: "pen" },
11
+ color: { default: void 0 },
12
+ drawMs: { default: 700 },
13
+ easing: {
14
+ type: Function,
15
+ default: void 0
16
+ },
17
+ timeline: { default: void 0 },
18
+ active: {
19
+ type: Boolean,
20
+ default: void 0
21
+ },
22
+ paths: { default: void 0 }
23
+ },
24
+ setup(e, { expose: i }) {
25
+ d((e) => ({ v237e7abc: C.color ?? "var(--primary)" }));
26
+ let C = e;
27
+ function w() {
28
+ return typeof window > "u" || typeof window.matchMedia != "function" ? !1 : window.matchMedia("(prefers-reduced-motion: reduce)").matches;
29
+ }
30
+ let T = w(), E = t(() => C.paths?.stroke ?? x), D = t(() => C.paths?.ghost ?? S), O = t(() => C.paths?.viewBox ?? "0 0 100 10"), k = t(() => C.paths?.len ?? b), A = f(), j = t(() => C.clock === "scroll" ? T ? "static" : "scroll" : C.clock === "static" ? "static" : "load"), M = c(C.clock === "load" && !T && C.active !== !0 ? k.value : 0), N = null;
31
+ async function P() {
32
+ if (C.clock === "load") {
33
+ if (T) {
34
+ M.value = 0;
35
+ return;
36
+ }
37
+ N?.stop(), M.value = k.value, N = new m([{ off: k.value }, { off: 0 }], {
38
+ duration: C.drawMs,
39
+ timingFunction: C.easing ?? h,
40
+ respectReducedMotion: !0
41
+ }), await N.play((e) => {
42
+ M.value = e.off;
43
+ });
44
+ }
45
+ }
46
+ function F() {
47
+ N?.stop(), M.value = 0;
48
+ }
49
+ function I() {
50
+ N?.stop(), M.value = C.clock === "load" && !T ? k.value : 0;
51
+ }
52
+ return p(() => C.active, (e, t) => {
53
+ C.clock === "load" && (e === !0 && t !== !0 ? T ? F() : P() : e === !1 && t === !0 && I());
54
+ }), o(() => {
55
+ C.clock === "load" && C.active === !0 && (T ? F() : P());
56
+ }), i({
57
+ play: P,
58
+ snap: F
59
+ }), (t, i) => (s(), n("span", {
60
+ class: "glass-underline",
61
+ "data-gu-clock": j.value,
62
+ "data-gu-variant": e.variant,
63
+ style: a(e.timeline ? { "--gu-timeline": e.timeline } : void 0)
64
+ }, [l(t.$slots, "default", {}, void 0, !0), (s(), n("svg", {
65
+ class: "glass-underline__ink",
66
+ viewBox: O.value,
67
+ preserveAspectRatio: "none",
68
+ "aria-hidden": "true",
69
+ focusable: "false",
70
+ style: a({
71
+ "--gu-off": String(M.value),
72
+ "--gu-len": String(k.value)
73
+ })
74
+ }, [r("path", {
75
+ id: `gu-stroke-${u(A)}`,
76
+ class: "glass-underline__stroke",
77
+ d: E.value
78
+ }, null, 8, v), r("path", {
79
+ class: "glass-underline__stroke glass-underline__stroke--ghost",
80
+ d: D.value
81
+ }, null, 8, y)], 12, _))], 12, g));
82
+ }
83
+ }), [["__scopeId", "data-v-20b5d619"]]);
84
+ //#endregion
85
+ export { C as GlassUnderline };
@@ -1,4 +1,4 @@
1
- import { n as e, t } from "./constants-yKeKnE84.js";
1
+ import { n as e, t } from "./constants-C8NMonuo.js";
2
2
  import { getCurrentScope as n, onScopeDispose as r, readonly as i, ref as a, shallowRef as o, toValue as s, watch as c } from "vue";
3
3
  import { SmoothProgress as l } from "@mkbabb/keyframes.js";
4
4
  //#region src/composables/motion/useAnimatedNumber.ts
@@ -1,7 +1,7 @@
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-ok8pgSl5.js";
4
+ import { t as r } from "./_plugin-vue_export-helper-DWghtRt7.js";
5
5
  import { t as i } from "./createContext-B44Sah_H.js";
6
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";
@@ -0,0 +1,32 @@
1
+ import { onScopeDispose as e, ref as t } from "vue";
2
+ //#region src/composables/glass/useSpecularTracking.ts
3
+ function n() {
4
+ let n = t({}), r = typeof window < "u" && typeof window.matchMedia == "function" ? window.matchMedia("(prefers-reduced-motion: reduce)") : null, i = r?.matches ?? !1, a = (e) => {
5
+ i = e.matches;
6
+ };
7
+ r?.addEventListener("change", a);
8
+ let o = null, s = 0, c = 0, l = 0;
9
+ function u() {
10
+ l = 0;
11
+ let e = o;
12
+ if (o = null, !e) return;
13
+ let t = e.getBoundingClientRect();
14
+ if (t.width === 0 || t.height === 0) return;
15
+ let r = (s - t.left) / t.width * 100, i = (c - t.top) / t.height * 100;
16
+ n.value = {
17
+ "--mouse-x": `${r.toFixed(2)}%`,
18
+ "--mouse-y": `${i.toFixed(2)}%`
19
+ };
20
+ }
21
+ function d(e) {
22
+ i || (o = e.currentTarget, s = e.clientX, c = e.clientY, l === 0 && (typeof requestAnimationFrame == "function" ? l = requestAnimationFrame(u) : u()));
23
+ }
24
+ return e(() => {
25
+ l !== 0 && typeof cancelAnimationFrame == "function" && cancelAnimationFrame(l), l = 0, o = null, r?.removeEventListener("change", a);
26
+ }), {
27
+ specularStyle: n,
28
+ onPointerMove: d
29
+ };
30
+ }
31
+ //#endregion
32
+ export { n as t };