@mkbabb/glass-ui 3.10.1 → 3.11.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 (279) hide show
  1. package/dist/{CardAction-DrAcAV4d.js → CardAction-DuArVky-.js} +2 -2
  2. package/dist/{CommandShortcut-mV2e1aG6.js → CommandShortcut-CefCj5mt.js} +2 -2
  3. package/dist/{DataTable-C3E6jZ5B.js → DataTable-CUHMukiQ.js} +2 -2
  4. package/dist/DeckProgress-Dmk4_AKN.js +23 -0
  5. package/dist/{DialogContent-BxaaafFi.js → DialogContent-BRkT1cjP.js} +1 -1
  6. package/dist/{HoverPopover-CDA_SaCe.js → HoverPopover-2LOIW34a.js} +1 -1
  7. package/dist/InstrumentRail-CUJ05YVG.js +44 -0
  8. package/dist/{MetricBadge-idgrkqoP.js → MetricBadge-BZVWIxNy.js} +7 -5
  9. package/dist/{Notification-Cu0nN17_.js → Notification-DLMhblXR.js} +1 -1
  10. package/dist/{NumberFieldContent-CHEWghnY.js → NumberFieldContent-BbLOh8RU.js} +2 -2
  11. package/dist/{PopoverContent-DpUvdYY-.js → PopoverContent-BId6ggf_.js} +1 -1
  12. package/dist/{Progress-BW-StFw2.js → Progress-iEuD9pxG.js} +1 -1
  13. package/dist/{ScrollingText-DruYCni_.js → ScrollingText-BPP84wKo.js} +1 -1
  14. package/dist/{SelectScrollDownButton-pirzjm--.js → SelectScrollDownButton-T32cVFeM.js} +3 -3
  15. package/dist/{Switch-DeAqg6pi.js → Switch-Ch-k3Rv-.js} +1 -1
  16. package/dist/{TabsList-BAVzOZpg.js → TabsList-B8CVOQPC.js} +2 -2
  17. package/dist/{Toaster-CvuuW_y9.js → Toaster-1rYWrmAm.js} +46 -49
  18. package/dist/{ToggleGroupItem-DtD37b4G.js → ToggleGroupItem-COu_4IW4.js} +21 -17
  19. package/dist/animated-digit.js +2 -2
  20. package/dist/api/index.d.ts +5 -4
  21. package/dist/api.js +2 -2
  22. package/dist/aurora.js +70 -70
  23. package/dist/{badge-NdCQMvvB.js → badge-CaoFJzRb.js} +1 -1
  24. package/dist/badge.js +1 -1
  25. package/dist/{button-DyiWFAOE.js → button-DN39cGqL.js} +12 -12
  26. package/dist/button.js +1 -1
  27. package/dist/canvas.js +2 -2
  28. package/dist/card.js +1 -1
  29. package/dist/carousel.js +5 -5
  30. package/dist/collapsible.js +1 -1
  31. package/dist/{color-B65wWyQz.js → color-C5ls_QF7.js} +7 -9
  32. package/dist/color.js +1 -1
  33. package/dist/command.js +1 -1
  34. package/dist/components/custom/aurora/constants/presets.d.ts +62 -5
  35. package/dist/components/custom/aurora/constants/shaders/mediums.glsl.d.ts +1 -1
  36. package/dist/components/custom/aurora/index.d.ts +1 -1
  37. package/dist/components/custom/constellation/Constellation.vue.d.ts +0 -12
  38. package/dist/components/custom/constellation/constellationField.d.ts +151 -10
  39. package/dist/components/custom/constellation/index.d.ts +1 -3
  40. package/dist/components/custom/controls/DarkModeToggle.vue.d.ts +0 -11
  41. package/dist/components/custom/deck-progress/DeckProgress.vue.d.ts +27 -0
  42. package/dist/components/custom/deck-progress/index.d.ts +2 -0
  43. package/dist/components/custom/dialog-native/GlassDialogNative.vue.d.ts +57 -0
  44. package/dist/components/custom/dialog-native/index.d.ts +1 -0
  45. package/dist/components/custom/dock/DockTabButton.vue.d.ts +4 -3
  46. package/dist/components/custom/dock/GlassDock.vue.d.ts +115 -3
  47. package/dist/components/custom/dock/composables/dockMorphContext.d.ts +0 -36
  48. package/dist/components/custom/dock/composables/useLayerTransition.d.ts +0 -44
  49. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +37 -5
  50. package/dist/components/custom/fourier-field/index.d.ts +1 -1
  51. package/dist/components/custom/fourier-field/math.d.ts +0 -17
  52. package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +41 -0
  53. package/dist/components/custom/glass-panel/index.d.ts +2 -0
  54. package/dist/components/custom/goo-blob/composables/useBlobPointer.d.ts +3 -4
  55. package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +8 -11
  56. package/dist/components/custom/handmark/HandMark.vue.d.ts +29 -0
  57. package/dist/components/custom/handmark/brush.d.ts +242 -0
  58. package/dist/components/custom/handmark/freehand.d.ts +69 -0
  59. package/dist/components/custom/handmark/geometry.d.ts +50 -0
  60. package/dist/components/custom/handmark/index.d.ts +21 -0
  61. package/dist/components/custom/handmark/ink.d.ts +11 -0
  62. package/dist/components/custom/handmark/texture.d.ts +39 -0
  63. package/dist/components/custom/handmark/types.d.ts +53 -0
  64. package/dist/components/custom/handmark/useHandMark.d.ts +87 -0
  65. package/dist/components/custom/header-ribbon/HeaderRibbon.vue.d.ts +31 -0
  66. package/dist/components/custom/header-ribbon/index.d.ts +2 -0
  67. package/dist/components/custom/header-ribbon/types.d.ts +7 -0
  68. package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +2 -2
  69. package/dist/components/custom/instrument-rail/InstrumentRail.vue.d.ts +91 -0
  70. package/dist/components/custom/instrument-rail/index.d.ts +2 -0
  71. package/dist/components/custom/metric-badge/MetricBadge.vue.d.ts +8 -0
  72. package/dist/components/ui/drawer/Drawer.vue.d.ts +0 -1
  73. package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +2 -2
  74. package/dist/components/ui/slider/index.d.ts +19 -22
  75. package/dist/components/ui/toast/use-toast.d.ts +2 -2
  76. package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
  77. package/dist/components/ui/toggle/index.d.ts +1 -1
  78. package/dist/components/ui/toggle-group/ToggleGroup.vue.d.ts +7 -1
  79. package/dist/components/ui/toggle-group/ToggleGroupItem.vue.d.ts +3 -1
  80. package/dist/components/ui/toggle-group/toggleGroupContext.d.ts +13 -0
  81. package/dist/composables/color/index.d.ts +0 -12
  82. package/dist/composables/dark/index.d.ts +1 -1
  83. package/dist/composables/dark/useGlobalDark.d.ts +21 -1
  84. package/dist/composables/glass/useSpecularTracking.d.ts +3 -12
  85. package/dist/composables/motion/core/index.d.ts +1 -0
  86. package/dist/composables/motion/index.d.ts +0 -2
  87. package/dist/composables/motion/useRouteTransition.d.ts +42 -0
  88. package/dist/composables/motion/useSpringMount.d.ts +1 -1
  89. package/dist/configurator.js +1 -1
  90. package/dist/confirm-dialog.js +2 -2
  91. package/dist/constellation.js +225 -260
  92. package/dist/controls.js +14 -48
  93. package/dist/dark.d.ts +1 -1
  94. package/dist/dark.js +1 -1
  95. package/dist/data-table.js +1 -1
  96. package/dist/deck-progress.d.ts +1 -0
  97. package/dist/deck-progress.js +2 -0
  98. package/dist/dialog.js +2 -2
  99. package/dist/dock.js +345 -340
  100. package/dist/dockContext-BKeIMmNk.js +9 -0
  101. package/dist/{dropdown-menu-DVnQcA0E.js → dropdown-menu-D77jX6Df.js} +4 -7
  102. package/dist/dropdown-menu.js +1 -1
  103. package/dist/expandable-container.js +79 -38
  104. package/dist/forms.js +2 -2
  105. package/dist/fourier-field.js +102 -137
  106. package/dist/fourier-math.js +2 -2
  107. package/dist/glass-panel.d.ts +1 -0
  108. package/dist/glass-panel.js +44 -0
  109. package/dist/glass-ui.css +1 -1
  110. package/dist/glass-ui.js +209 -287
  111. package/dist/goo-blob.js +212 -243
  112. package/dist/handmark.d.ts +1 -0
  113. package/dist/handmark.js +662 -0
  114. package/dist/header-ribbon.d.ts +1 -0
  115. package/dist/header-ribbon.js +63 -0
  116. package/dist/hover-popover.js +1 -1
  117. package/dist/icon-tooltip.js +1 -1
  118. package/dist/index.d.ts +3 -0
  119. package/dist/instrument-rail.d.ts +1 -0
  120. package/dist/instrument-rail.js +2 -0
  121. package/dist/keyboard.js +1 -1
  122. package/dist/labeled-field.js +5 -5
  123. package/dist/{math-BUU9hHID.js → math-DTpRVC0e.js} +2 -18
  124. package/dist/metric-badge.js +1 -1
  125. package/dist/metric-stack.js +1 -1
  126. package/dist/motion-core.js +70 -69
  127. package/dist/motion.js +37 -38
  128. package/dist/notification.js +1 -1
  129. package/dist/number-field.js +1 -1
  130. package/dist/popover.js +1 -1
  131. package/dist/{presets-1OhFpaIC.js → presets-BP_ALM0m.js} +14 -1
  132. package/dist/progress.js +1 -1
  133. package/dist/pulse.js +1 -1
  134. package/dist/reactive.js +1 -1
  135. package/dist/scrolling-text.js +1 -1
  136. package/dist/search.js +6 -6
  137. package/dist/select.js +1 -1
  138. package/dist/{sheet-ChSXcJpU.js → sheet-VZEtNFvO.js} +1 -1
  139. package/dist/sheet.js +1 -1
  140. package/dist/{slider-sfl8gFDD.js → slider-ClgpP7EB.js} +4 -4
  141. package/dist/slider.js +1 -1
  142. package/dist/sortable-list.js +2 -2
  143. package/dist/stacked-icons.js +6 -6
  144. package/dist/styles/animations.css +111 -15
  145. package/dist/styles/components.css +1 -1
  146. package/dist/styles/dock/layer-group.css +0 -22
  147. package/dist/styles/dock/layers.css +1 -11
  148. package/dist/styles/dock/morph.css +19 -95
  149. package/dist/styles/dock/shell.css +0 -12
  150. package/dist/styles/dock-controls.css +31 -28
  151. package/dist/styles/drawer.css +0 -2
  152. package/dist/styles/floating-panel.css +0 -2
  153. package/dist/styles/glass-refract.css +0 -2
  154. package/dist/styles/glass.css +1188 -31
  155. package/dist/styles/hover-popover.css +0 -2
  156. package/dist/styles/index.css +6 -24
  157. package/dist/styles/instrument-chassis.css +0 -4
  158. package/dist/styles/paper.css +68 -2
  159. package/dist/styles/theme.css +20 -13
  160. package/dist/styles/tokens.css +2360 -22
  161. package/dist/styles/typography.css +6 -18
  162. package/dist/styles/utilities.css +1291 -19
  163. package/dist/styles/view-transition.css +51 -0
  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/{useAnimatedNumber-DfVgP4te.js → useAnimatedNumber-Bcpy5Etf.js} +1 -1
  171. package/dist/{useConfiguratorState-BdQXh9ie.js → useConfiguratorState-DxAqksK6.js} +1 -1
  172. package/dist/useGlassRenderer-D7YGOYiM.js +69 -0
  173. package/dist/{useGlobalDark-D7R9OypB.js → useGlobalDark-D1wgEqfW.js} +21 -2
  174. package/dist/useSpecularTracking-BVRZsRHA.js +26 -0
  175. package/dist/useSpringMount-BJSHcLl3.js +113 -0
  176. package/dist/useViewTransition-DaN5Zrox.js +21 -0
  177. package/dist/vReveal-zUIQk-rJ.js +53 -0
  178. package/dist/watercolor-dot.js +2 -2
  179. package/package.json +57 -33
  180. package/src/styles/animations.css +111 -15
  181. package/src/styles/dock/layer-group.css +0 -22
  182. package/src/styles/dock/layers.css +1 -11
  183. package/src/styles/dock/morph.css +19 -95
  184. package/src/styles/dock/shell.css +0 -12
  185. package/src/styles/dock-controls.css +31 -28
  186. package/src/styles/glass.css +1188 -31
  187. package/src/styles/index.css +6 -24
  188. package/src/styles/paper.css +68 -2
  189. package/src/styles/theme.css +20 -13
  190. package/src/styles/tokens.css +2360 -22
  191. package/src/styles/typography.css +6 -18
  192. package/src/styles/utilities.css +1291 -19
  193. package/src/styles/view-transition.css +51 -0
  194. package/dist/components/custom/aurora/constants/shaders/vangogh-medium.glsl.d.ts +0 -1
  195. package/dist/components/custom/constellation/composables/createConstellationField.d.ts +0 -35
  196. package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +0 -35
  197. package/dist/components/custom/constellation/constants.d.ts +0 -36
  198. package/dist/components/custom/constellation/constellationDraw.d.ts +0 -18
  199. package/dist/components/custom/constellation/constellationInteraction.d.ts +0 -102
  200. package/dist/components/custom/dock/composables/useDockMorphWindow.d.ts +0 -15
  201. package/dist/components/custom/dock/composables/useDockShellProps.d.ts +0 -131
  202. package/dist/components/custom/dock/constants.d.ts +0 -23
  203. package/dist/components/custom/fourier-field/presets.d.ts +0 -54
  204. package/dist/components/custom/goo-blob/composables/buildMetaballProgram.d.ts +0 -18
  205. package/dist/components/custom/goo-blob/composables/uploadBlobUniforms.d.ts +0 -41
  206. package/dist/components/custom/goo-blob/constants.d.ts +0 -52
  207. package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +0 -1
  208. package/dist/components/custom/tabs/constants.d.ts +0 -12
  209. package/dist/components/custom/underline/GlassUnderline.vue.d.ts +0 -84
  210. package/dist/components/custom/underline/index.d.ts +0 -2
  211. package/dist/components/custom/underline/types.d.ts +0 -56
  212. package/dist/composables/motion/curves.d.ts +0 -48
  213. package/dist/composables/motion/springPresets.d.ts +0 -33
  214. package/dist/composables/motion/suite.d.ts +0 -2
  215. package/dist/dockContext-bho8B1A4.js +0 -17
  216. package/dist/motion-curves.d.ts +0 -1
  217. package/dist/motion-curves.js +0 -130
  218. package/dist/springPresets-aRSm-4_k.js +0 -40
  219. package/dist/styles/glass/a11y-fallback.css +0 -245
  220. package/dist/styles/glass/ladder.css +0 -304
  221. package/dist/styles/glass/material.css +0 -238
  222. package/dist/styles/glass/progress-rail.css +0 -78
  223. package/dist/styles/glass/squircle.css +0 -66
  224. package/dist/styles/glass/surfaces.css +0 -306
  225. package/dist/styles/tokens/color-radius.css +0 -250
  226. package/dist/styles/tokens/dark-arm.css +0 -194
  227. package/dist/styles/tokens/glass.css +0 -413
  228. package/dist/styles/tokens/light-dark.css +0 -158
  229. package/dist/styles/tokens/offsets-sizing.css +0 -406
  230. package/dist/styles/tokens/property-regs.css +0 -169
  231. package/dist/styles/tokens/scale-paper.css +0 -361
  232. package/dist/styles/tokens/scheme-motion.css +0 -334
  233. package/dist/styles/tokens/shadow.css +0 -132
  234. package/dist/styles/utilities/a11y-overrides.css +0 -140
  235. package/dist/styles/utilities/animate.css +0 -26
  236. package/dist/styles/utilities/base.css +0 -365
  237. package/dist/styles/utilities/btn.css +0 -399
  238. package/dist/styles/utilities/components.css +0 -317
  239. package/dist/underline.d.ts +0 -1
  240. package/dist/underline.js +0 -85
  241. package/dist/useSpecularTracking-DFK_fhpG.js +0 -32
  242. package/dist/useSpringMount-DXUzxBjV.js +0 -108
  243. package/dist/vReveal-CqaCz_mC.js +0 -44
  244. package/src/styles/glass/a11y-fallback.css +0 -245
  245. package/src/styles/glass/ladder.css +0 -304
  246. package/src/styles/glass/material.css +0 -238
  247. package/src/styles/glass/progress-rail.css +0 -78
  248. package/src/styles/glass/squircle.css +0 -66
  249. package/src/styles/glass/surfaces.css +0 -306
  250. package/src/styles/tokens/color-radius.css +0 -250
  251. package/src/styles/tokens/dark-arm.css +0 -194
  252. package/src/styles/tokens/glass.css +0 -413
  253. package/src/styles/tokens/light-dark.css +0 -158
  254. package/src/styles/tokens/offsets-sizing.css +0 -406
  255. package/src/styles/tokens/property-regs.css +0 -169
  256. package/src/styles/tokens/scale-paper.css +0 -361
  257. package/src/styles/tokens/scheme-motion.css +0 -334
  258. package/src/styles/tokens/shadow.css +0 -132
  259. package/src/styles/utilities/a11y-overrides.css +0 -140
  260. package/src/styles/utilities/animate.css +0 -26
  261. package/src/styles/utilities/base.css +0 -365
  262. package/src/styles/utilities/btn.css +0 -399
  263. package/src/styles/utilities/components.css +0 -317
  264. /package/dist/{CollapsibleContent-Drow5WkV.js → CollapsibleContent-CP9qF1v4.js} +0 -0
  265. /package/dist/{DialogFooter-DufLHi0y.js → DialogFooter-Gprw8H_A.js} +0 -0
  266. /package/dist/{IconTooltip-BrQ5p181.js → IconTooltip-Cus0fvK0.js} +0 -0
  267. /package/dist/{Input-B-F818RU.js → Input-xuDwALQR.js} +0 -0
  268. /package/dist/{_plugin-vue_export-helper-DWghtRt7.js → _plugin-vue_export-helper-ok8pgSl5.js} +0 -0
  269. /package/dist/{compile-Ce_V55zi.js → compile-BOXjLUxu.js} +0 -0
  270. /package/dist/{constants-C8NMonuo.js → constants-yKeKnE84.js} +0 -0
  271. /package/dist/{prng-CjVgzjQT.js → prng-D27-B3tK.js} +0 -0
  272. /package/dist/{resolveCanvasColor-CRvVzOvP.js → resolveCanvasColor-BBiYfp8g.js} +0 -0
  273. /package/dist/{useCanvas2D-CSeH8h16.js → useCanvas2D-ClrQuZtp.js} +0 -0
  274. /package/dist/{useIntersectionPause-DAdVPVp4.js → useIntersectionPause-Cck5Uxk8.js} +0 -0
  275. /package/dist/{useInterval-D3USn0yc.js → useInterval-Dsmqwi03.js} +0 -0
  276. /package/dist/{useKeyboardShortcuts-i8tHd5WO.js → useKeyboardShortcuts-CyIYrndH.js} +0 -0
  277. /package/dist/{useScrollProgress-CcgmgMQt.js → useScrollProgress-CffFGLa5.js} +0 -0
  278. /package/dist/{useSortable-DnyGXKKY.js → useSortable-C8ReQ50P.js} +0 -0
  279. /package/dist/{useTextHighlight-B3b10W6r.js → useTextHighlight-CWEi25hf.js} +0 -0
@@ -60,5 +60,56 @@
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
+
63
114
  /* Keep the non-transitioned UI interactive while the snapshot animates. */
64
115
  ::view-transition { pointer-events: none; }
package/dist/switch.js CHANGED
@@ -1,2 +1,2 @@
1
- import { t as e } from "./Switch-DeAqg6pi.js";
1
+ import { t as e } from "./Switch-Ch-k3Rv-.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 { 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
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
6
  //#region src/components/custom/tabs/composables/useTabIndicator.ts
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({
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"
@@ -21,7 +21,7 @@ function ne(e) {
21
21
  opacity: "1"
22
22
  };
23
23
  }
24
- let f = D({});
24
+ let f = k({});
25
25
  function p() {
26
26
  if (!o.value) return;
27
27
  let e = {};
@@ -59,15 +59,15 @@ function ne(e) {
59
59
  i.style.setProperty("--stretch", "1"), g = null;
60
60
  }, 60);
61
61
  }
62
- M(() => a.value, () => {
63
- c.value && x(m);
64
- }, { deep: !0 }), M(() => i.value, () => {
65
- c.value && x(m);
62
+ P(() => a.value, () => {
63
+ c.value && S(m);
64
+ }, { deep: !0 }), P(() => i.value, () => {
65
+ c.value && S(m);
66
66
  }, { deep: !0 });
67
67
  let y = null;
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(() => {
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
71
  y?.disconnect(), g && clearTimeout(g);
72
72
  }), {
73
73
  singleSliderStyle: u,
@@ -77,17 +77,17 @@ function ne(e) {
77
77
  }
78
78
  //#endregion
79
79
  //#region src/components/custom/tabs/SegmentedTabs.vue?vue&type=script&setup=true&lang.ts
80
- var re = ["role"], ie = [
80
+ var ne = ["role"], re = [
81
81
  "role",
82
82
  "disabled",
83
83
  "onClick"
84
- ], ae = [
84
+ ], ie = [
85
85
  "role",
86
86
  "disabled",
87
87
  "onClick"
88
- ], P = /* @__PURE__ */ v({
88
+ ], I = /* @__PURE__ */ t(/* @__PURE__ */ y({
89
89
  __name: "SegmentedTabs",
90
- props: /* @__PURE__ */ y({
90
+ props: /* @__PURE__ */ b({
91
91
  options: {},
92
92
  variant: { default: "segmented" },
93
93
  multiSelect: {
@@ -111,33 +111,33 @@ var re = ["role"], ie = [
111
111
  modelModifiers: {}
112
112
  }),
113
113
  emits: ["update:modelValue"],
114
- setup(v) {
114
+ setup(t) {
115
115
  function y(e, t) {
116
116
  return typeof document > "u" ? t : getComputedStyle(document.documentElement).getPropertyValue(e).trim() || t;
117
117
  }
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;
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
126
  }
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({
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
132
  containerRef: P,
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
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
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 re = ["role"], ie = [
156
156
  });
157
157
  }
158
158
  function Q(e) {
159
- if (!z.value && !B.value) return;
160
- let t = I.value[e];
159
+ if (!B.value && !V.value) return;
160
+ let t = L.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 re = ["role"], ie = [
167
167
  });
168
168
  }
169
169
  function $(e, t) {
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;
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
176
  Q(t);
177
177
  }
178
178
  function me(e) {
179
- typeof e == "string" && (M.value = e);
179
+ typeof e == "string" && (D.value = e);
180
180
  }
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));
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
184
  e >= 0 && Q(e);
185
185
  });
186
- }), ee(() => {
187
- J?.removeEventListener("change", Y), J = null;
188
- }), (d, y) => ue.value ? (E(), m("div", {
186
+ }), T(() => {
187
+ Y?.removeEventListener("change", X), Y = null;
188
+ }), (f, y) => le.value ? (O(), h("div", {
189
189
  key: 0,
190
- class: S(j(e)("segmented-tabs__mobile w-fit", T.class))
191
- }, [_(j(a), {
192
- "model-value": M.value,
190
+ class: C(N(e)("segmented-tabs__mobile w-fit", b.class))
191
+ }, [v(N(o), {
192
+ "model-value": D.value,
193
193
  "onUpdate:modelValue": me
194
194
  }, {
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))
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
198
  }, {
199
- default: N(() => [_(j(r))]),
199
+ default: F(() => [v(N(i))]),
200
200
  _: 1
201
- }, 8, ["aria-label", "class"]), _(j(n), null, {
202
- default: N(() => [(E(!0), m(u, null, O(v.options, (e) => (E(), f(j(i), {
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
203
  key: e.value,
204
204
  value: e.value
205
205
  }, {
206
- default: N(() => [g(A(e.label), 1)]),
206
+ default: F(() => [_(M(e.label), 1)]),
207
207
  _: 2
208
208
  }, 1032, ["value"]))), 128))]),
209
209
  _: 1
210
210
  })]),
211
211
  _: 1
212
- }, 8, ["model-value"])], 2)) : (E(), m("div", {
212
+ }, 8, ["model-value"])], 2)) : (O(), h("div", {
213
213
  key: 1,
214
214
  ref_key: "containerRef",
215
215
  ref: P,
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))
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))
218
218
  }, [
219
- !R.value && !V.value ? (E(), m("div", {
219
+ !z.value && !H.value ? (O(), h("div", {
220
220
  key: 0,
221
221
  ref_key: "indicatorRef",
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", {
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
227
  key: "indicator-" + e,
228
228
  class: "segmented-indicator segmented-indicator--js",
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), {
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), {
232
232
  key: 0,
233
233
  "delay-duration": 200
234
234
  }, {
235
- default: N(() => [_(j(o), null, {
236
- default: N(() => [_(j(s), { "as-child": "" }, {
237
- default: N(() => [h("button", b({
235
+ default: F(() => [v(N(s), null, {
236
+ default: F(() => [v(N(c), { "as-child": "" }, {
237
+ default: F(() => [g("button", x({
238
238
  ref_for: !0,
239
239
  ref: (e) => {
240
- e && (I.value[t] = e);
240
+ e && (L.value[t] = e);
241
241
  },
242
242
  class: "segmented-tab",
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" }, {
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" }, {
245
245
  disabled: e.disabled,
246
246
  class: e.disabled && "is-disabled",
247
247
  onClick: (n) => $(e.value, t)
248
- }), [k(d.$slots, "option", {
248
+ }), [j(f.$slots, "option", {
249
249
  option: e,
250
- active: U(e.value)
251
- }, () => [g(A(e.label), 1)])], 16, ie)]),
250
+ active: W(e.value)
251
+ }, () => [_(M(e.label), 1)], !0)], 16, re)]),
252
252
  _: 2
253
- }, 1024), _(j(c), {
253
+ }, 1024), v(N(l), {
254
254
  side: "bottom",
255
255
  "side-offset": 8
256
256
  }, {
257
- default: N(() => [g(A(e.tooltip), 1)]),
257
+ default: F(() => [_(M(e.tooltip), 1)]),
258
258
  _: 2
259
259
  }, 1024)]),
260
260
  _: 2
261
261
  }, 1024)]),
262
262
  _: 2
263
- }, 1024)) : (E(), m("button", b({
263
+ }, 1024)) : (O(), h("button", x({
264
264
  key: 1,
265
265
  ref_for: !0,
266
266
  ref: (e) => {
267
- e && (I.value[t] = e);
267
+ e && (L.value[t] = e);
268
268
  },
269
269
  class: "segmented-tab",
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" }, {
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" }, {
272
272
  disabled: e.disabled,
273
273
  class: e.disabled && "is-disabled",
274
274
  onClick: (n) => $(e.value, t)
275
- }), [k(d.$slots, "option", {
275
+ }), [j(f.$slots, "option", {
276
276
  option: e,
277
- active: U(e.value)
278
- }, () => [g(A(e.label), 1)])], 16, ae))], 64))), 128))
279
- ], 10, re));
277
+ active: W(e.value)
278
+ }, () => [_(M(e.label), 1)], !0)], 16, ie))], 64))), 128))
279
+ ], 10, ne));
280
280
  }
281
- });
281
+ }), [["__scopeId", "data-v-dd84d37c"]]);
282
282
  //#endregion
283
- export { P as SegmentedTabs };
283
+ export { I as SegmentedTabs };
package/dist/timeline.js CHANGED
@@ -1,5 +1,5 @@
1
- import { t as e } from "./_plugin-vue_export-helper-DWghtRt7.js";
2
- import { t } from "./HoverPopover-CDA_SaCe.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) {
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-CvuuW_y9.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-DtD37b4G.js";
1
+ import { n as e, t } from "./ToggleGroupItem-COu_4IW4.js";
2
2
  export { e as ToggleGroup, t as ToggleGroupItem };
@@ -1,4 +1,4 @@
1
- import { t as e } from "./_plugin-vue_export-helper-DWghtRt7.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 = {
@@ -1,4 +1,4 @@
1
- import { n as e, t } from "./constants-C8NMonuo.js";
1
+ import { n as e, t } from "./constants-yKeKnE84.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-DWghtRt7.js";
4
+ import { t as r } from "./_plugin-vue_export-helper-ok8pgSl5.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,69 @@
1
+ import { onMounted as e, ref as t } from "vue";
2
+ //#region src/composables/glass/useGlassRenderer.ts
3
+ function n() {
4
+ return window.chrome && CSS.supports("backdrop-filter", "url(#x) blur(1px)") ? "svg-filter" : CSS.supports("backdrop-filter", "blur(1px)") || CSS.supports("-webkit-backdrop-filter", "blur(1px)") ? "css" : "fallback";
5
+ }
6
+ function r(e, t, n, r) {
7
+ e.width = t, e.height = n;
8
+ let i = e.getContext("2d"), a = i.createImageData(t, n), o = a.data, s = t / 2, c = n / 2;
9
+ for (let e = 0; e < n; e++) for (let n = 0; n < t; n++) {
10
+ let i = (n - s) / s, a = (e - c) / c, l = Math.sqrt(i * i + a * a), u = l * (1 - l * .3) * r, d = -i * u, f = -a * u, p = (e * t + n) * 4;
11
+ o[p] = Math.round(128 + d * 127), o[p + 1] = Math.round(128 + f * 127), o[p + 2] = 128, o[p + 3] = 255;
12
+ }
13
+ i.putImageData(a, 0, 0);
14
+ }
15
+ function i(e, t, n) {
16
+ e.width = t, e.height = n;
17
+ let r = e.getContext("2d"), i = t / 2, a = n / 2, o = Math.max(i, a), s = r.createRadialGradient(i, a, 0, i, a, o);
18
+ s.addColorStop(0, "rgba(255,255,255,0)"), s.addColorStop(.5, "rgba(255,255,255,0.02)"), s.addColorStop(.8, "rgba(255,255,255,0.06)"), s.addColorStop(1, "rgba(255,255,255,0.12)"), r.fillStyle = s, r.fillRect(0, 0, t, n);
19
+ let c = r.createLinearGradient(0, 0, t, 0);
20
+ c.addColorStop(0, "rgba(255,255,255,0)"), c.addColorStop(.3, "rgba(255,255,255,0.15)"), c.addColorStop(.5, "rgba(255,255,255,0.25)"), c.addColorStop(.7, "rgba(255,255,255,0.15)"), c.addColorStop(1, "rgba(255,255,255,0)"), r.fillStyle = c, r.fillRect(0, 0, t, 2);
21
+ }
22
+ var a = 0;
23
+ function o(e, t = {}) {
24
+ let n = `glass-refract-${a++}`, o = t.blur ?? 16, s = t.refraction ?? .3, c = document.createElement("canvas");
25
+ c.style.display = "none", document.body.appendChild(c);
26
+ let l = document.createElement("canvas");
27
+ l.style.display = "none", document.body.appendChild(l);
28
+ let u = e.getBoundingClientRect(), d = Math.max(Math.ceil(u.width / 4), 32), f = Math.max(Math.ceil(u.height / 4), 32);
29
+ r(c, d, f, s), i(l, d, f);
30
+ let p = document.createElementNS("http://www.w3.org/2000/svg", "svg");
31
+ p.setAttribute("width", "0"), p.setAttribute("height", "0"), p.style.position = "absolute", p.style.pointerEvents = "none";
32
+ let m = s * 30;
33
+ p.innerHTML = `
34
+ <filter id="${n}" x="0%" y="0%" width="100%" height="100%" color-interpolation-filters="sRGB">
35
+ <feImage href="${c.toDataURL()}" result="dispMap"
36
+ preserveAspectRatio="none" x="0%" y="0%" width="100%" height="100%" />
37
+ <feDisplacementMap in="SourceGraphic" in2="dispMap" result="refracted"
38
+ scale="${m}" xChannelSelector="R" yChannelSelector="G" />
39
+ <feGaussianBlur in="refracted" stdDeviation="${o * .3}" result="blurred" />
40
+ <feImage href="${l.toDataURL()}" result="specular"
41
+ preserveAspectRatio="none" x="0%" y="0%" width="100%" height="100%" />
42
+ <feBlend in="blurred" in2="specular" mode="screen" result="final" />
43
+ </filter>
44
+ `, document.body.appendChild(p), e.style.backdropFilter = `url(#${n}) blur(${o * .15}px) saturate(var(--glass-saturate, 1.6)) brightness(1.05)`, e.style.setProperty("-webkit-backdrop-filter", e.style.backdropFilter), e.style.border = "1px solid var(--glass-border-floating)", e.style.boxShadow = "var(--glass-material-rim), var(--glass-shadow-floating)";
45
+ let h = new ResizeObserver(() => {
46
+ let t = e.getBoundingClientRect(), n = Math.max(Math.ceil(t.width / 4), 32), a = Math.max(Math.ceil(t.height / 4), 32);
47
+ r(c, n, a, s), i(l, n, a);
48
+ let o = p.querySelectorAll("feImage");
49
+ o[0] && o[0].setAttribute("href", c.toDataURL()), o[1] && o[1].setAttribute("href", l.toDataURL());
50
+ });
51
+ return h.observe(e), {
52
+ filterId: n,
53
+ svgEl: p,
54
+ dispCanvas: c,
55
+ specCanvas: l,
56
+ observer: h
57
+ };
58
+ }
59
+ function s(e) {
60
+ e.observer?.disconnect(), e.svgEl.remove(), e.dispCanvas.remove(), e.specCanvas.remove();
61
+ }
62
+ function c(r) {
63
+ let i = t(r?.preferredTier ?? "css");
64
+ return e(() => {
65
+ r?.preferredTier || (i.value = n());
66
+ }), { tier: i };
67
+ }
68
+ //#endregion
69
+ export { s as n, c as r, o as t };
@@ -14,13 +14,32 @@ var a, o = n(() => {
14
14
  function l(e) {
15
15
  s.value = e;
16
16
  }
17
+ let u = /* @__PURE__ */ new Set(), d = !1, f = !1;
18
+ function p(e) {
19
+ if (u.size === 0 || (f = e, d)) return;
20
+ d = !0;
21
+ let t = () => {
22
+ d = !1;
23
+ let e = f;
24
+ for (let t of [...u]) t(e);
25
+ };
26
+ typeof requestAnimationFrame == "function" ? requestAnimationFrame(t) : setTimeout(t, 0);
27
+ }
28
+ function m(e) {
29
+ return u.add(e), () => {
30
+ u.delete(e);
31
+ };
32
+ }
17
33
  return t(n, (e) => {
18
34
  document.documentElement.style.colorScheme = e ? "dark" : "light";
19
- }, { immediate: !0 }), {
35
+ }, { immediate: !0 }), t(n, (e) => {
36
+ p(e);
37
+ }), {
20
38
  isDark: n,
21
39
  toggleDark: c,
22
40
  disableTransitions: s,
23
- setDisableTransitions: l
41
+ setDisableTransitions: l,
42
+ onFlipSettled: m
24
43
  };
25
44
  });
26
45
  function s(e) {
@@ -0,0 +1,26 @@
1
+ import { ref as e } from "vue";
2
+ //#region src/composables/glass/useSpecularTracking.ts
3
+ function t() {
4
+ return typeof window > "u" || typeof window.matchMedia != "function" ? !1 : window.matchMedia("(prefers-reduced-motion: reduce)").matches;
5
+ }
6
+ function n() {
7
+ let n = e({});
8
+ function r(e) {
9
+ if (t()) return;
10
+ let r = e.currentTarget;
11
+ if (!r) return;
12
+ let i = r.getBoundingClientRect();
13
+ if (i.width === 0 || i.height === 0) return;
14
+ let a = (e.clientX - i.left) / i.width * 100, o = (e.clientY - i.top) / i.height * 100;
15
+ n.value = {
16
+ "--mouse-x": `${a.toFixed(2)}%`,
17
+ "--mouse-y": `${o.toFixed(2)}%`
18
+ };
19
+ }
20
+ return {
21
+ specularStyle: n,
22
+ onPointerMove: r
23
+ };
24
+ }
25
+ //#endregion
26
+ export { n as t };