@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
@@ -0,0 +1,9 @@
1
+ import { n as e } from "./createContext-B44Sah_H.js";
2
+ //#region src/components/custom/dock/composables/dockContext.ts
3
+ var t = e("glass-ui:dock-context", "[glass-ui:dock] useDockContext() called outside <GlassDock>; use useOptionalDockContext() if the primitive may render outside a dock."), n = t.KEY;
4
+ function r(e) {
5
+ t.provide(e);
6
+ }
7
+ var i = t.use, a = t.useOptional;
8
+ //#endregion
9
+ export { a as i, r as n, i as r, n as t };
@@ -2,7 +2,7 @@ import { t as e } from "./cn-DJXf4yaB.js";
2
2
  import { t } from "./check-BBKKKSTf.js";
3
3
  import { t as n } from "./chevron-right-sDM0Yvrf.js";
4
4
  import { t as r } from "./menuItemVariants-CCoBNkU5.js";
5
- import { i } from "./dockContext-bho8B1A4.js";
5
+ import { i } from "./dockContext-BKeIMmNk.js";
6
6
  import { computed as a, createBlock as o, createElementBlock as s, createElementVNode as c, createVNode as l, defineComponent as u, guardReactiveProps as d, mergeProps as f, normalizeClass as p, normalizeProps as m, openBlock as h, renderSlot as g, unref as _, withCtx as v } from "vue";
7
7
  import { DropdownMenuCheckboxItem as y, DropdownMenuContent as b, DropdownMenuGroup as x, DropdownMenuItem as S, DropdownMenuItemIndicator as C, DropdownMenuLabel as w, DropdownMenuPortal as T, DropdownMenuPortal as E, DropdownMenuRadioGroup as D, DropdownMenuRadioItem as O, DropdownMenuRoot as k, DropdownMenuSeparator as A, DropdownMenuSub as j, DropdownMenuSubContent as M, DropdownMenuSubTrigger as N, DropdownMenuTrigger as P, useForwardProps as F, useForwardPropsEmits as I } from "reka-ui";
8
8
  //#endregion
@@ -353,13 +353,10 @@ var L = /* @__PURE__ */ u({
353
353
  let { class: e, ...t } = r;
354
354
  return t;
355
355
  }), i);
356
- return (t, n) => (h(), o(_(T), null, {
357
- default: v(() => [l(_(M), f(_(s), { class: _(e)("dropdown-sub-content z-popover min-w-32 overflow-hidden rounded-panel border glass-floating p-1 text-popover-foreground popover-animate slide-in-from-side", r.class) }), {
358
- default: v(() => [g(t.$slots, "default")]),
359
- _: 3
360
- }, 16, ["class"])]),
356
+ return (t, n) => (h(), o(_(M), f(_(s), { class: _(e)("dropdown-sub-content z-popover min-w-32 overflow-hidden rounded-panel border glass-floating p-1 text-popover-foreground popover-animate slide-in-from-side", r.class) }), {
357
+ default: v(() => [g(t.$slots, "default")]),
361
358
  _: 3
362
- }));
359
+ }, 16, ["class"]));
363
360
  }
364
361
  });
365
362
  //#endregion
@@ -1,2 +1,2 @@
1
- import { a as e, c as t, d as n, f as r, h as i, i as a, l as o, m as s, n as c, o as l, p as u, r as d, s as f, t as p, u as m } from "./dropdown-menu-DVnQcA0E.js";
1
+ import { a as e, c as t, d as n, f as r, h as i, i as a, l as o, m as s, n as c, o as l, p as u, r as d, s as f, t as p, u as m } from "./dropdown-menu-D77jX6Df.js";
2
2
  export { i as DropdownMenu, o as DropdownMenuCheckboxItem, u as DropdownMenuContent, r as DropdownMenuGroup, m as DropdownMenuItem, e as DropdownMenuLabel, p as DropdownMenuPortal, n as DropdownMenuRadioGroup, t as DropdownMenuRadioItem, l as DropdownMenuSeparator, f as DropdownMenuShortcut, a as DropdownMenuSub, c as DropdownMenuSubContent, d as DropdownMenuSubTrigger, s as DropdownMenuTrigger };
@@ -1,26 +1,25 @@
1
1
  import { n as e, t } from "./minimize-2-lcXOuc6V.js";
2
- import { i as n } from "./useKeyboardShortcuts-i8tHd5WO.js";
3
- import { Fragment as r, Teleport as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, createVNode as l, defineComponent as u, mergeModels as d, mergeProps as f, normalizeClass as p, onMounted as m, onUnmounted as h, openBlock as g, renderSlot as _, unref as v, useModel as y, watch as b } from "vue";
2
+ import { t as n } from "./useViewTransition-DaN5Zrox.js";
3
+ import { i as r } from "./useKeyboardShortcuts-CyIYrndH.js";
4
+ import { Teleport as i, computed as a, createBlock as o, createElementBlock as s, createElementVNode as c, createVNode as l, defineComponent as u, mergeModels as d, mergeProps as f, nextTick as p, normalizeClass as m, normalizeStyle as h, onMounted as g, onUnmounted as _, openBlock as v, renderSlot as y, unref as b, useId as x, useModel as S, useTemplateRef as C, watch as w } from "vue";
4
5
  //#region src/components/custom/expandable-container/ExpandableContainer.vue?vue&type=script&setup=true&lang.ts
5
- var x = ["aria-label"], S = {
6
- key: 0,
7
- class: "fixed inset-0 z-modal flex flex-col bg-background"
8
- }, C = ["aria-label"], w = { class: "h-full w-full" }, T = 0, E = null;
9
- function D() {
10
- return typeof document > "u" ? !1 : (T === 0 && (E = document.body.style.overflow, document.body.style.overflow = "hidden"), T += 1, !0);
6
+ var T = ["aria-label"], E = ["aria-label"], D = 0, O = null;
7
+ function k() {
8
+ return typeof document > "u" ? !1 : (D === 0 && (O = document.body.style.overflow, document.body.style.overflow = "hidden"), D += 1, !0);
11
9
  }
12
- function O() {
13
- typeof document > "u" || T === 0 || (--T, T === 0 && (document.body.style.overflow = E ?? "", E = null));
10
+ function A() {
11
+ typeof document > "u" || D === 0 || (--D, D === 0 && (document.body.style.overflow = O ?? "", O = null));
14
12
  }
15
13
  //#endregion
16
14
  //#region src/components/custom/expandable-container/ExpandableContainer.vue
17
- var k = /* @__PURE__ */ u({
15
+ var j = /* @__PURE__ */ u({
18
16
  inheritAttrs: !1,
19
17
  __name: "ExpandableContainer",
20
18
  props: /* @__PURE__ */ d({
21
19
  buttonPosition: { default: "right" },
22
20
  expandLabel: { default: "Fullscreen" },
23
- collapseLabel: { default: "Exit fullscreen" }
21
+ collapseLabel: { default: "Exit fullscreen" },
22
+ viewTransitionName: { default: void 0 }
24
23
  }, {
25
24
  open: {
26
25
  type: Boolean,
@@ -28,43 +27,85 @@ var k = /* @__PURE__ */ u({
28
27
  },
29
28
  openModifiers: {}
30
29
  }),
31
- emits: ["update:open"],
32
- setup(u) {
33
- let d = y(u, "open"), T = !1;
34
- function E(e) {
35
- if (e && !T) {
36
- T = D();
30
+ emits: /* @__PURE__ */ d(["settle"], ["update:open"]),
31
+ setup(u, { expose: d, emit: D }) {
32
+ let O = u, j = S(u, "open"), M = D, N = C("anchorEl"), P = C("surfaceEl"), F = x(), I = a(() => O.viewTransitionName === void 0 ? void 0 : `gl-expand-${O.viewTransitionName}-${F}`), L = a(() => I.value === void 0 ? void 0 : { "view-transition-name": I.value });
33
+ function R() {
34
+ if (I.value === void 0) {
35
+ j.value = !0;
37
36
  return;
38
37
  }
39
- !e && T && (O(), T = !1);
38
+ n(() => {
39
+ j.value = !0;
40
+ });
41
+ }
42
+ function z() {
43
+ if (I.value === void 0) {
44
+ j.value = !1;
45
+ return;
46
+ }
47
+ n(() => {
48
+ j.value = !1;
49
+ });
50
+ }
51
+ let B = !1;
52
+ function V(e) {
53
+ if (e && !B) {
54
+ B = k();
55
+ return;
56
+ }
57
+ !e && B && (A(), B = !1);
40
58
  }
41
- b(d, E, { immediate: !0 });
42
- let k = null;
43
- return m(() => {
44
- k = n("Escape", () => {
45
- d.value &&= !1;
59
+ w(j, V, { immediate: !0 }), w(j, (e) => {
60
+ p(() => M("settle", e));
61
+ });
62
+ let H = null;
63
+ return g(() => {
64
+ H = r("Escape", () => {
65
+ j.value && z();
46
66
  }, {
47
67
  label: "Exit fullscreen",
48
68
  group: "UI",
49
69
  allowInInput: !0
50
70
  });
51
- }), h(() => {
52
- k?.(), E(!1);
53
- }), (n, m) => (g(), s(r, null, [d.value ? o("", !0) : (g(), s("div", f({
71
+ }), _(() => {
72
+ H?.(), V(!1);
73
+ }), d({
74
+ anchorEl: N,
75
+ surfaceEl: P,
76
+ expand: R,
77
+ collapse: z
78
+ }), (n, r) => (v(), s("div", f({
79
+ ref_key: "anchorEl",
80
+ ref: N,
81
+ class: ["expandable-container__anchor relative", { "gl-expand": I.value !== void 0 && !j.value }],
82
+ style: j.value ? void 0 : L.value
83
+ }, n.$attrs), [(v(), o(i, {
84
+ to: "body",
85
+ disabled: !j.value
86
+ }, [c("div", {
87
+ ref_key: "surfaceEl",
88
+ ref: P,
89
+ class: m([
90
+ "expandable-container__surface",
91
+ j.value ? "fixed inset-0 z-modal flex flex-col bg-background" : "relative",
92
+ { "gl-expand": I.value !== void 0 && j.value }
93
+ ]),
94
+ style: h(j.value ? L.value : void 0)
95
+ }, [j.value ? (v(), s("button", {
96
+ key: 1,
97
+ class: m(["expandable-container__trigger absolute z-10 rounded-button bg-card/70 [backdrop-filter:var(--glass-blur-wash)] p-2 text-muted-foreground hover:text-foreground transition-colors shadow-sm border border-border/40", u.buttonPosition === "left" ? "left-3 top-3" : "right-3 top-3"]),
98
+ title: "Exit fullscreen",
99
+ "aria-label": u.collapseLabel,
100
+ onClick: z
101
+ }, [l(b(t), { class: "h-4 w-4" })], 10, E)) : (v(), s("button", {
54
102
  key: 0,
55
- class: "relative"
56
- }, n.$attrs), [c("button", {
57
- class: p(["expandable-container__trigger absolute z-10 rounded-button bg-card/70 [backdrop-filter:var(--glass-blur-wash)] p-1.5 text-muted-foreground hover:text-foreground transition-colors shadow-sm border border-border/40", u.buttonPosition === "left" ? "left-2 top-2" : "right-2 top-2"]),
103
+ class: m(["expandable-container__trigger absolute z-10 rounded-button bg-card/70 [backdrop-filter:var(--glass-blur-wash)] p-1.5 text-muted-foreground hover:text-foreground transition-colors shadow-sm border border-border/40", u.buttonPosition === "left" ? "left-2 top-2" : "right-2 top-2"]),
58
104
  title: "Fullscreen",
59
105
  "aria-label": u.expandLabel,
60
- onClick: m[0] ||= (e) => d.value = !0
61
- }, [l(v(e), { class: "h-4 w-4" })], 10, x), _(n.$slots, "default", { fullscreen: !1 })], 16)), (g(), a(i, { to: "body" }, [d.value ? (g(), s("div", S, [c("button", {
62
- class: p(["expandable-container__trigger absolute z-10 rounded-button bg-card/70 [backdrop-filter:var(--glass-blur-wash)] p-2 text-muted-foreground hover:text-foreground transition-colors shadow-sm border border-border/40", u.buttonPosition === "left" ? "left-3 top-3" : "right-3 top-3"]),
63
- title: "Exit fullscreen",
64
- "aria-label": u.collapseLabel,
65
- onClick: m[1] ||= (e) => d.value = !1
66
- }, [l(v(t), { class: "h-4 w-4" })], 10, C), c("div", w, [_(n.$slots, "default", { fullscreen: !0 })])])) : o("", !0)]))], 64));
106
+ onClick: R
107
+ }, [l(b(e), { class: "h-4 w-4" })], 10, T)), c("div", { class: m(j.value ? "h-full w-full" : "contents") }, [y(n.$slots, "default", { fullscreen: j.value })], 2)], 6)], 8, ["disabled"]))], 16));
67
108
  }
68
109
  });
69
110
  //#endregion
70
- export { k as ExpandableContainer };
111
+ export { j as ExpandableContainer };
package/dist/forms.js CHANGED
@@ -2,7 +2,7 @@ import { t as e } from "./cn-DJXf4yaB.js";
2
2
  import { t } from "./search-nbkvr2dC.js";
3
3
  import { t as n } from "./menuItemVariants-CCoBNkU5.js";
4
4
  import { t as r } from "./useUserInvalidAria-DoJKMZ3s.js";
5
- import { t as i } from "./Input-B-F818RU.js";
5
+ import { t as i } from "./Input-xuDwALQR.js";
6
6
  import { computed as a, createBlock as o, createCommentVNode as s, createElementBlock as c, createTextVNode as l, createVNode as u, defineComponent as d, isRef as f, mergeProps as p, openBlock as m, renderSlot as h, toDisplayString as g, unref as _, vModelText as v, withCtx as y, withDirectives as b } from "vue";
7
7
  import { ComboboxAnchor as x, ComboboxCancel as S, ComboboxContent as C, ComboboxEmpty as w, ComboboxGroup as T, ComboboxInput as E, ComboboxItem as D, ComboboxItemIndicator as O, ComboboxLabel as k, ComboboxPortal as A, ComboboxRoot as j, ComboboxSeparator as M, ComboboxTrigger as N, ComboboxViewport as P, useForwardProps as F, useForwardPropsEmits as I } from "reka-ui";
8
8
  import { reactiveOmit as L, useVModel as R } from "@vueuse/core";
@@ -177,7 +177,7 @@ var z = ["data-autosize"], B = /* @__PURE__ */ d({
177
177
  let i = n, a = r, o = I(L(i, "class"), a);
178
178
  return (n, r) => (m(), c("div", G, [u(_(t), { class: "size-4 shrink-0 opacity-50" }), u(_(E), p({
179
179
  "data-slot": "command-input",
180
- class: _(e)("placeholder:text-muted-foreground flex h-(--dropdown-input-height) w-full rounded-input bg-transparent py-3 text-dropdown outline-hidden disabled:cursor-not-allowed disabled:opacity-disabled aria-invalid:text-destructive aria-invalid:placeholder:text-[color-mix(in_srgb,var(--destructive)_60%,transparent)]", i.class)
180
+ class: _(e)("placeholder:text-muted-foreground flex h-[var(--dropdown-input-height)] w-full rounded-input bg-transparent py-3 text-dropdown outline-hidden disabled:cursor-not-allowed disabled:opacity-disabled aria-invalid:text-destructive aria-invalid:placeholder:text-[color-mix(in_srgb,var(--destructive)_60%,transparent)]", i.class)
181
181
  }, {
182
182
  ..._(o),
183
183
  ...n.$attrs
@@ -1,65 +1,13 @@
1
- import { t as e } from "./useCanvas2D-CSeH8h16.js";
2
- import { t } from "./_plugin-vue_export-helper-DWghtRt7.js";
3
- import { i as n, s as r, t as i } from "./color-B65wWyQz.js";
4
- import { t as a } from "./useGlobalDark-D7R9OypB.js";
5
- import { n as o, t as s } from "./prng-CjVgzjQT.js";
6
- import { i as c, n as l, r as u, t as d } from "./math-BUU9hHID.js";
7
- import { createElementBlock as f, createElementVNode as p, defineComponent as m, onMounted as h, openBlock as g, ref as _, useTemplateRef as v, watch as y } from "vue";
8
- //#region src/components/custom/fourier-field/presets.ts
9
- var b = {
10
- hero: {
11
- harmonics: 5,
12
- harmonicScale: .24,
13
- epicycles: !0,
14
- trailLength: 260,
15
- epicycleHueShift: 42,
16
- durationMs: 16e3,
17
- frozenSeed: "fourier-field/hero",
18
- frozenT: .34,
19
- peakAlpha: .92,
20
- trailWidth: 3,
21
- headGlowAlpha: .95,
22
- headGlowBlur: 18,
23
- headDotRadius: 5,
24
- epicycleRatios: {
25
- circle: .5,
26
- arm: .72
27
- },
28
- epicycleWidths: {
29
- circle: 2.4,
30
- arm: 2
31
- },
32
- epicycleRainbow: !0,
33
- trailFadeExp: 1.35,
34
- trailFloor: .34
35
- },
36
- final: {
37
- harmonics: 11,
38
- harmonicScale: .17,
39
- epicycles: !1,
40
- trailLength: 360,
41
- epicycleHueShift: 36,
42
- durationMs: 21e3,
43
- frozenSeed: "fourier-field/final",
44
- frozenT: .42,
45
- peakAlpha: .88,
46
- trailWidth: 3.2,
47
- headGlowAlpha: .92,
48
- headGlowBlur: 16,
49
- headDotRadius: 4.5,
50
- epicycleRatios: {
51
- circle: 0,
52
- arm: 0
53
- },
54
- epicycleWidths: {
55
- circle: 0,
56
- arm: 0
57
- },
58
- epicycleRainbow: !1,
59
- trailFadeExp: 1.45,
60
- trailFloor: .36
61
- }
62
- }, x = /* @__PURE__ */ t(/* @__PURE__ */ m({
1
+ import { t as e } from "./useCanvas2D-ClrQuZtp.js";
2
+ import { t } from "./_plugin-vue_export-helper-ok8pgSl5.js";
3
+ import { i as n, s as r, t as i } from "./color-C5ls_QF7.js";
4
+ import { t as a } from "./useGlobalDark-D1wgEqfW.js";
5
+ import { n as o, t as s } from "./prng-D27-B3tK.js";
6
+ import { n as c, r as l, t as u } from "./math-DTpRVC0e.js";
7
+ import { createElementBlock as d, createElementVNode as f, defineComponent as p, onMounted as m, openBlock as h, ref as g, useTemplateRef as _, watch as v } from "vue";
8
+ //#endregion
9
+ //#region src/components/custom/fourier-field/FourierField.vue
10
+ var y = /* @__PURE__ */ t(/* @__PURE__ */ p({
63
11
  __name: "FourierField",
64
12
  props: {
65
13
  variant: { default: "hero" },
@@ -73,121 +21,138 @@ var b = {
73
21
  intensity: { default: 1 }
74
22
  },
75
23
  setup(t) {
76
- let l = Math.max(0, Math.min(2, t.intensity)), d = v("hostRef"), m = v("canvasRef"), x = _(t.color), S = _("rgb(0, 0, 0)"), C = _("rgb(0, 0, 0)"), w = _([]);
77
- function T(e) {
24
+ let u = Math.max(0, Math.min(2, t.intensity)), p = {
25
+ hero: {
26
+ harmonics: 4,
27
+ harmonicScale: .22,
28
+ epicycles: !0,
29
+ trailLength: 170,
30
+ epicycleHueShift: 42,
31
+ durationMs: 16e3,
32
+ frozenSeed: "fourier-field/hero",
33
+ frozenT: .18,
34
+ peakAlpha: .55,
35
+ headGlowAlpha: .62,
36
+ headGlowBlur: 16,
37
+ epicycleRatios: {
38
+ circle: .18,
39
+ arm: .3
40
+ },
41
+ trailFadeExp: 1.4,
42
+ trailFloor: .1
43
+ },
44
+ final: {
45
+ harmonics: 9,
46
+ harmonicScale: .16,
47
+ epicycles: !1,
48
+ trailLength: 200,
49
+ epicycleHueShift: 36,
50
+ durationMs: 21e3,
51
+ frozenSeed: "fourier-field/final",
52
+ frozenT: .33,
53
+ peakAlpha: .45,
54
+ headGlowAlpha: .5,
55
+ headGlowBlur: 14,
56
+ epicycleRatios: {
57
+ circle: 0,
58
+ arm: 0
59
+ },
60
+ trailFadeExp: 1.5,
61
+ trailFloor: .08
62
+ }
63
+ }, y = _("hostRef"), b = _("canvasRef"), x = g(t.color), S = g("rgb(0, 0, 0)"), C = g("rgb(0, 0, 0)");
64
+ function w(e) {
78
65
  if (!e.includes("var(") && !e.includes("light-dark(")) return e;
79
- let t = d.value;
66
+ let t = y.value;
80
67
  if (typeof window > "u" || !t) return e;
81
68
  let n = t.style.color;
82
69
  t.style.color = e;
83
70
  let r = getComputedStyle(t).color;
84
71
  return t.style.color = n, r || e;
85
72
  }
86
- let E = b[t.variant], D = 0;
87
- function O() {
88
- x.value = T(t.color);
73
+ let T = p[t.variant];
74
+ function E() {
75
+ x.value = w(t.color);
89
76
  let [e, a, o] = t.colorResolver(x.value).map((e) => Math.round(e * 255));
90
77
  S.value = `rgb(${e}, ${a}, ${o})`;
91
78
  let s = i(x.value), [c, l, u] = r({
92
79
  L: s.L,
93
80
  C: s.C,
94
- h: n(s.h, "analogous", E.epicycleHueShift, 1)
81
+ h: n(s.h, "analogous", T.epicycleHueShift, 1)
95
82
  }).map((e) => Math.round(e * 255));
96
- if (C.value = `rgb(${c}, ${l}, ${u})`, E.epicycleRainbow && D > 0) {
97
- let e = [];
98
- for (let t = 0; t < D; t++) {
99
- let n = D > 1 ? t / (D - 1) : 0, [i, a, o] = r({
100
- L: .62,
101
- C: .17,
102
- h: s.h - 150 + n * 2 * 150
103
- }).map((e) => Math.round(e * 255));
104
- e.push(`rgb(${i}, ${a}, ${o})`);
105
- }
106
- w.value = e;
107
- } else w.value = [];
83
+ C.value = `rgb(${c}, ${l}, ${u})`;
108
84
  }
109
- function k(e) {
110
- return u(o(s((t.freeze ? e.frozenSeed : `${Math.random()}`) + t.seed)), {
85
+ function D(e) {
86
+ return c(o(s((t.freeze ? e.frozenSeed : `${Math.random()}`) + t.seed)), {
111
87
  harmonics: e.harmonics,
112
88
  harmonicScale: e.harmonicScale
113
89
  });
114
90
  }
115
- let { isDark: A } = a();
116
- return h(() => {
117
- let n = m.value;
91
+ let { isDark: O } = a();
92
+ return m(() => {
93
+ let n = b.value;
118
94
  if (!n) return;
119
- let r = b[t.variant], i = k(r), a = [...i].sort((e, t) => t.amplitude - e.amplitude);
120
- D = a.length, O();
121
- let o = Infinity, s = Infinity, u = -Infinity, f = -Infinity;
95
+ let r = p[t.variant], i = D(r), a = [...i].sort((e, t) => t.amplitude - e.amplitude), o = Infinity, s = Infinity, c = -Infinity, d = -Infinity;
122
96
  for (let e = 0; e < 720; e++) {
123
- let t = c(i, e / 720), [n, r] = t[t.length - 1];
124
- n < o && (o = n), r < s && (s = r), n > u && (u = n), r > f && (f = r);
97
+ let t = l(i, e / 720), [n, r] = t[t.length - 1];
98
+ n < o && (o = n), r < s && (s = r), n > c && (c = n), r > d && (d = r);
125
99
  }
126
- let p = Math.max(.001, u - o), h = Math.max(.001, f - s), g = (o + u) / 2, _ = (s + f) / 2, v = [], x = e({
127
- canvas: m,
100
+ let f = Math.max(.001, c - o), m = Math.max(.001, d - s), h = (o + c) / 2, g = (s + d) / 2, _ = [], x = e({
101
+ canvas: b,
128
102
  setup: () => ({ render(e, o) {
129
- let s = n.clientWidth || n.offsetWidth || 0, u = n.clientHeight || n.offsetHeight || 0;
130
- if (!s || !u) return;
131
- let d = .82, f = Math.min(s / p * d, u / h * d), m = s / 2, y = u / 2, b = (e, t) => [m + (e - g) * f, y + (t - _) * f], T = t.freeze || x.reducedMotion ? r.frozenT : o / r.durationMs % 1, E = S.value, D = C.value, O = w.value, k = A.value, j = r.peakAlpha * l, M = r.headGlowAlpha * l;
132
- if (e.clearRect(0, 0, s, u), r.epicycleRatios.arm > 0) {
133
- let t = c(a, T);
134
- e.lineCap = "round", e.lineJoin = "round";
135
- let n = Math.min(1, j * r.epicycleRatios.circle), i = Math.min(1, j * r.epicycleRatios.arm);
136
- for (let a = 1; a < t.length; a++) {
137
- let [o, s] = b(t[a - 1][0], t[a - 1][1]), [c, l] = b(t[a][0], t[a][1]), u = Math.hypot(c - o, l - s), d = O.length > 0 ? O[Math.min(a - 1, O.length - 1)] : D;
138
- e.strokeStyle = d, e.lineWidth = r.epicycleWidths.circle, e.globalAlpha = n, e.beginPath(), e.arc(o, s, u, 0, Math.PI * 2), e.stroke(), e.lineWidth = r.epicycleWidths.arm, e.globalAlpha = i, e.beginPath(), e.moveTo(o, s), e.lineTo(c, l), e.stroke(), e.fillStyle = d, e.globalAlpha = Math.min(1, i * .9), e.beginPath(), e.arc(o, s, Math.max(2, r.epicycleWidths.arm * .9), 0, Math.PI * 2), e.fill();
103
+ let s = n.clientWidth || n.offsetWidth || 0, c = n.clientHeight || n.offsetHeight || 0;
104
+ if (!s || !c) return;
105
+ let d = .82, p = Math.min(s / f * d, c / m * d), v = s / 2, y = c / 2, b = (e, t) => [v + (e - h) * p, y + (t - g) * p], w = t.freeze || x.reducedMotion ? r.frozenT : o / r.durationMs % 1, T = S.value, E = C.value, D = r.peakAlpha * u, k = r.headGlowAlpha * u;
106
+ if (e.clearRect(0, 0, s, c), r.epicycleRatios.arm > 0) {
107
+ let t = l(a, w);
108
+ e.lineWidth = 1, e.strokeStyle = E;
109
+ for (let n = 1; n < t.length; n++) {
110
+ let [i, a] = b(t[n - 1][0], t[n - 1][1]), [o, s] = b(t[n][0], t[n][1]), c = Math.hypot(o - i, s - a);
111
+ e.globalAlpha = D * r.epicycleRatios.circle, e.beginPath(), e.arc(i, a, c, 0, Math.PI * 2), e.stroke(), e.globalAlpha = D * r.epicycleRatios.arm, e.beginPath(), e.moveTo(i, a), e.lineTo(o, s), e.stroke();
139
112
  }
140
113
  e.globalAlpha = 1;
141
114
  }
142
- let N = r.trailLength / 600, P = r.trailLength;
143
- v.length = 0;
144
- for (let e = P; e >= 0; e--) {
145
- let t = c(i, (T - e / P * N + 1) % 1);
146
- v.push(b(t[t.length - 1][0], t[t.length - 1][1]));
147
- }
148
- e.globalCompositeOperation = "source-over", e.strokeStyle = E, e.lineCap = "round", e.lineJoin = "round", e.lineWidth = r.trailWidth;
149
- for (let t = 1; t < v.length; t++) {
150
- let n = j * (t / (v.length - 1)) ** r.trailFadeExp;
151
- n = Math.max(n, j * r.trailFloor), e.globalAlpha = Math.min(1, n), e.beginPath(), e.moveTo(v[t - 1][0], v[t - 1][1]), e.lineTo(v[t][0], v[t][1]), e.stroke();
152
- }
153
- if (e.globalCompositeOperation = A.value ? "lighter" : "source-over", k && v.length >= 4) {
154
- e.strokeStyle = E, e.lineWidth = r.trailWidth;
155
- let t = Math.max(1, Math.floor(v.length * .66));
156
- for (let n = t; n < v.length; n++) {
157
- let r = (n - t) / Math.max(1, v.length - 1 - t);
158
- e.globalAlpha = Math.min(1, .18 * r * l), e.beginPath(), e.moveTo(v[n - 1][0], v[n - 1][1]), e.lineTo(v[n][0], v[n][1]), e.stroke();
115
+ let A = l(i, w), [j, M] = A[A.length - 1], N = b(j, M);
116
+ if (t.freeze || x.reducedMotion) {
117
+ if (_.length === 0) {
118
+ let e = Math.min(r.trailLength, 48);
119
+ for (let t = e; t >= 0; t--) {
120
+ let n = l(i, (w - t / e * .06 + 1) % 1);
121
+ _.push(b(n[n.length - 1][0], n[n.length - 1][1]));
122
+ }
159
123
  }
124
+ } else for (_.push(N); _.length > r.trailLength;) _.shift();
125
+ e.globalCompositeOperation = O.value ? "lighter" : "source-over", e.strokeStyle = T, e.lineCap = "round", e.lineJoin = "round", e.lineWidth = 1.6;
126
+ for (let t = 1; t < _.length; t++) {
127
+ let n = D * (t / (_.length - 1)) ** r.trailFadeExp;
128
+ n = Math.max(n, D * r.trailFloor), e.globalAlpha = n, e.beginPath(), e.moveTo(_[t - 1][0], _[t - 1][1]), e.lineTo(_[t][0], _[t][1]), e.stroke();
160
129
  }
161
- if (v.length >= 2) {
162
- e.save(), e.globalCompositeOperation = "source-over", e.shadowColor = E, e.shadowBlur = r.headGlowBlur, e.globalAlpha = Math.min(1, M), e.strokeStyle = E, e.lineWidth = r.trailWidth + .6;
163
- let t = v.slice(-6);
130
+ if (_.length >= 2) {
131
+ e.save(), e.shadowColor = T, e.shadowBlur = r.headGlowBlur, e.globalAlpha = k, e.lineWidth = 2;
132
+ let t = _.slice(-4);
164
133
  e.beginPath(), e.moveTo(t[0][0], t[0][1]);
165
134
  for (let n = 1; n < t.length; n++) e.lineTo(t[n][0], t[n][1]);
166
135
  e.stroke(), e.restore();
167
136
  }
168
- if (r.headDotRadius > 0 && v.length >= 1) {
169
- let [t, n] = v[v.length - 1];
170
- e.globalCompositeOperation = "source-over", e.globalAlpha = Math.min(1, M * .4), e.fillStyle = E, e.beginPath(), e.arc(t, n, r.headDotRadius * 2.6, 0, Math.PI * 2), e.fill(), e.globalAlpha = Math.min(1, M), e.beginPath(), e.arc(t, n, r.headDotRadius, 0, Math.PI * 2), e.fill(), e.globalAlpha = Math.min(1, M * .95), e.fillStyle = "rgb(255, 255, 255)", e.beginPath(), e.arc(t, n, Math.max(1.2, r.headDotRadius * .38), 0, Math.PI * 2), e.fill();
171
- }
172
137
  e.shadowBlur = 0, e.globalCompositeOperation = "source-over", e.globalAlpha = 1;
173
138
  } })
174
139
  });
175
- y(d, O, { immediate: !0 }), y(() => t.color, () => {
176
- O(), x.wake();
177
- }), y(A, () => {
178
- O(), x.wake();
140
+ v(y, E, { immediate: !0 }), v(() => t.color, () => {
141
+ E(), x.wake();
142
+ }), v(O, () => {
143
+ E(), x.wake();
179
144
  });
180
- }), (e, t) => (g(), f("div", {
145
+ }), (e, t) => (h(), d("div", {
181
146
  ref_key: "hostRef",
182
- ref: d,
147
+ ref: y,
183
148
  class: "fourier-field"
184
- }, [p("canvas", {
149
+ }, [f("canvas", {
185
150
  ref_key: "canvasRef",
186
- ref: m,
151
+ ref: b,
187
152
  class: "fourier-field-canvas",
188
153
  "aria-hidden": "true"
189
154
  }, null, 512)], 512));
190
155
  }
191
- }), [["__scopeId", "data-v-71a17062"]]);
156
+ }), [["__scopeId", "data-v-d56269df"]]);
192
157
  //#endregion
193
- export { x as FourierField, d as comp, l as dftFromPoints, u as makeEllipticSpectrum, c as positionsAt };
158
+ export { y as FourierField, u as comp, c as makeEllipticSpectrum, l as positionsAt };
@@ -1,2 +1,2 @@
1
- import { i as e, n as t, r as n, t as r } from "./math-BUU9hHID.js";
2
- export { r as comp, t as dftFromPoints, n as makeEllipticSpectrum, e as positionsAt };
1
+ import { n as e, r as t, t as n } from "./math-DTpRVC0e.js";
2
+ export { n as comp, e as makeEllipticSpectrum, t as positionsAt };
@@ -0,0 +1 @@
1
+ export * from "./components/custom/glass-panel";
@@ -0,0 +1,44 @@
1
+ import { t as e } from "./cn-DJXf4yaB.js";
2
+ import { n as t, r as n, t as r } from "./useGlassRenderer-D7YGOYiM.js";
3
+ import { t as i } from "./_plugin-vue_export-helper-ok8pgSl5.js";
4
+ import { computed as a, createElementBlock as o, defineComponent as s, normalizeClass as c, onBeforeUnmount as l, onMounted as u, openBlock as d, ref as f, renderSlot as p } from "vue";
5
+ //#region src/components/custom/glass-panel/GlassPanel.vue?vue&type=script&setup=true&lang.ts
6
+ var m = ["data-variant"], h = /* @__PURE__ */ i(/* @__PURE__ */ s({
7
+ __name: "GlassPanel",
8
+ props: {
9
+ tier: {},
10
+ blur: { default: 16 },
11
+ refraction: { default: .3 },
12
+ chromaticAberration: {
13
+ type: Boolean,
14
+ default: !1
15
+ },
16
+ variant: { default: "resting" },
17
+ class: {}
18
+ },
19
+ setup(i) {
20
+ let s = {
21
+ wash: "glass-wash",
22
+ quiet: "glass-quiet",
23
+ resting: "glass-resting",
24
+ floating: "glass-floating",
25
+ overlay: "glass-overlay"
26
+ }, h = i, g = f(null), _ = n({ preferredTier: h.tier }), v = a(() => h.tier ?? _.tier.value), y = a(() => v.value === "svg-filter" ? e("glass-panel glass-panel--svg", h.class) : v.value === "fallback" ? e("glass-panel glass-panel--fallback", h.class) : e("glass-panel", s[h.variant], h.class)), b = null;
27
+ return u(() => {
28
+ g.value && v.value === "svg-filter" && (b = r(g.value, {
29
+ blur: h.blur,
30
+ refraction: h.refraction,
31
+ chromaticAberration: h.chromaticAberration ? .5 : 0
32
+ }));
33
+ }), l(() => {
34
+ b && t(b);
35
+ }), (e, t) => (d(), o("div", {
36
+ ref_key: "panelRef",
37
+ ref: g,
38
+ class: c(y.value),
39
+ "data-variant": h.variant
40
+ }, [p(e.$slots, "default", {}, void 0, !0)], 10, m));
41
+ }
42
+ }), [["__scopeId", "data-v-a674fae3"]]);
43
+ //#endregion
44
+ export { h as GlassPanel };