@mkbabb/glass-ui 10.1.3 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. package/MIGRATION.md +1024 -1461
  2. package/README.md +2 -2
  3. package/dist/DialogContent-DG5kseRQ.js +159 -0
  4. package/dist/DropdownMenuTrigger-uhSXgEfK.js +76 -0
  5. package/dist/{Surface-1nPoabc3.js → Surface-C7wq2j0A.js} +3 -0
  6. package/dist/aurora.css +1 -0
  7. package/dist/aurora.js +246 -2472
  8. package/dist/auroraImageSource-xNLDUjcy.js +30 -0
  9. package/dist/axes.js +8 -8
  10. package/dist/blob.css +1 -0
  11. package/dist/blob.js +57 -54
  12. package/dist/budget-CJfhLIIV.js +13 -0
  13. package/dist/button-CAKhiOZy.js +113 -0
  14. package/dist/button.js +1 -1
  15. package/dist/{card-ByyqRBvK.js → card-D_uXphvL.js} +4 -1
  16. package/dist/card.js +1 -1
  17. package/dist/carousel.js +3 -2
  18. package/dist/{checkbox-B1qn65se.js → checkbox-COLnvULu.js} +1 -0
  19. package/dist/checkbox.css +1 -0
  20. package/dist/checkbox.js +1 -1
  21. package/dist/{collapsible-DFzK29Oh.js → collapsible-Bd4Et730.js} +1 -0
  22. package/dist/collapsible.css +1 -0
  23. package/dist/collapsible.js +1 -1
  24. package/dist/color-HkUaTAJj.js +270 -0
  25. package/dist/{color.glsl-DTJhdekG.js → color.glsl-bFJm8k5R.js} +4 -16
  26. package/dist/color.wgsl-B-qDJ_OM.js +4 -0
  27. package/dist/{command-CatrAsrl.js → command-BsFOGZwB.js} +3 -2
  28. package/dist/command.css +1 -0
  29. package/dist/command.js +1 -1
  30. package/dist/component-styles.css +0 -1
  31. package/dist/components/_shared/axes.d.ts +7 -0
  32. package/dist/components/_shared/feedback/dot-ring.css +1 -1
  33. package/dist/components/_shared/overlay/focus-return.d.ts +9 -0
  34. package/dist/components/_shared/overlay/index.d.ts +3 -0
  35. package/dist/components/_shared/overlay/root-scroll-lock.d.ts +4 -0
  36. package/dist/components/_shared/overlay/sheet-width.d.ts +2 -0
  37. package/dist/components/_shared/shape/useBarShape.d.ts +4 -0
  38. package/dist/components/aurora/composables/auroraFallbackGround.d.ts +12 -0
  39. package/dist/components/aurora/constants/presets.d.ts +21 -0
  40. package/dist/components/aurora/index.d.ts +2 -2
  41. package/dist/components/button/styles.css +1 -1
  42. package/dist/components/dark-mode-toggle/dark-mode-toggle.css +1 -1
  43. package/dist/components/data-table/composables/useDataTableResponsive.d.ts +2 -0
  44. package/dist/components/deck/styles/capture.css +1 -1
  45. package/dist/components/dialog/DialogContent.vue.d.ts +2 -2
  46. package/dist/components/dialog/ModalOverlay.vue.d.ts +2 -2
  47. package/dist/components/dialog/ModalScrim.vue.d.ts +26 -0
  48. package/dist/components/dialog/styles.css +1 -1
  49. package/dist/components/dock/GlassDock.vue.d.ts +4 -1
  50. package/dist/components/dock/composables/useDockClickIntegrity.d.ts +4 -0
  51. package/dist/components/dock/composables/useDockShellProps.d.ts +34 -2
  52. package/dist/components/dock/composables/useDockState.d.ts +5 -0
  53. package/dist/components/dock/index.d.ts +1 -2
  54. package/dist/components/dock/styles/controls/icon-button.css +1 -1
  55. package/dist/components/dock/styles/controls/tab-button.css +1 -1
  56. package/dist/components/dock/styles/morph.css +1 -1
  57. package/dist/components/dock/styles/run.css +1 -1
  58. package/dist/components/dock/trigger.d.ts +1 -0
  59. package/dist/components/expandable-container/ExpandableContainer.vue.d.ts +30 -29
  60. package/dist/components/menu/ContextMenu.vue.d.ts +27 -0
  61. package/dist/components/menu/DropdownMenu.vue.d.ts +5 -23
  62. package/dist/components/menu/context.d.ts +18 -5
  63. package/dist/components/menu/family-click.d.ts +2 -0
  64. package/dist/components/menu/family-context.d.ts +2 -0
  65. package/dist/components/menu/index.d.ts +1 -1
  66. package/dist/components/sheet/SheetContent.vue.d.ts +2 -2
  67. package/dist/components/sortable-list/styles.css +1 -0
  68. package/dist/components/surface/Surface.vue.d.ts +4 -1
  69. package/dist/components/tabs/composables/useTabDragMorph.d.ts +4 -7
  70. package/dist/components/tabs/styles/segmented.css +1 -1
  71. package/dist/components/tabs/types.d.ts +7 -8
  72. package/dist/composables/dom/useResizeObserver.d.ts +3 -1
  73. package/dist/composables/glass/fieldPaint.d.ts +4 -0
  74. package/dist/composables/glass/useGlassBackdropLuminance.d.ts +7 -6
  75. package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +8 -0
  76. package/dist/composables/motion/core/motionTempo.d.ts +2 -1
  77. package/dist/composables/motion/morph/useDragMorph.d.ts +2 -2
  78. package/dist/composables/motion/morph/useSelectionGroup.d.ts +6 -25
  79. package/dist/composables/motion/morph/useSelectionIndicator.d.ts +8 -54
  80. package/dist/composables/motion/spring/useLiquidFlex.d.ts +3 -5
  81. package/dist/composables/motion/spring/useSpringMount.d.ts +0 -9
  82. package/dist/{configurator-CPxIo3q2.js → configurator-C1ZKEf1b.js} +7 -5
  83. package/dist/configurator.css +1 -0
  84. package/dist/configurator.js +1 -1
  85. package/dist/constants-DfrO-IaH.js +8 -0
  86. package/dist/constellation.css +1 -0
  87. package/dist/constellation.js +2 -1
  88. package/dist/control.css +1 -0
  89. package/dist/{control.css_vue_type_style_index_0_src_true_lang-BIdufaDG.js → control.css_vue_type_style_index_0_src_true_lang-D2hdtjs4.js} +1 -0
  90. package/dist/{createCanvasLifecycle-hJHobVTn.js → createCanvasLifecycle-DS0vEs_G.js} +76 -75
  91. package/dist/dark-mode-toggle.js +1 -1
  92. package/dist/{data-table-Cs93-uY7.js → data-table-lDykVYuo.js} +113 -107
  93. package/dist/data-table.css +1 -0
  94. package/dist/data-table.js +1 -1
  95. package/dist/{deck-Cm_VmyNL.js → deck-Bc-2mEKE.js} +1 -0
  96. package/dist/deck.js +1 -1
  97. package/dist/dialog.js +1 -1
  98. package/dist/dock-trigger.d.ts +1 -0
  99. package/dist/dock-trigger.js +88 -0
  100. package/dist/dock.js +677 -689
  101. package/dist/dom.js +1 -1
  102. package/dist/easing.js +4 -4
  103. package/dist/expandable-container-wS1awXGd.js +135 -0
  104. package/dist/expandable-container.css +1 -0
  105. package/dist/expandable-container.js +1 -1
  106. package/dist/{fading-scroll-CTeW3KNS.js → fading-scroll-D3Y20ibL.js} +2 -2
  107. package/dist/fading-scroll.js +1 -1
  108. package/dist/fieldPaint-Ci77oajZ.js +7 -0
  109. package/dist/fourier-field.css +1 -0
  110. package/dist/fourier-field.js +15 -13
  111. package/dist/glSetup-DMaDgrEj.js +577 -0
  112. package/dist/glass-ui.js +67 -66
  113. package/dist/handmark.css +1 -0
  114. package/dist/handmark.js +82 -71
  115. package/dist/index.css +1 -0
  116. package/dist/index.d.ts +1 -1
  117. package/dist/{input-eLZ_AU7l.js → input-BLF2pMHE.js} +1 -1
  118. package/dist/input.js +1 -1
  119. package/dist/{label-CE03H1KL.js → label-ryNPL7e6.js} +1 -0
  120. package/dist/label.css +1 -0
  121. package/dist/label.js +1 -1
  122. package/dist/labeled-field.css +1 -0
  123. package/dist/labeled-field.js +5 -4
  124. package/dist/{menu-DaYAZiVW.js → menu-C_l2Sslf.js} +162 -112
  125. package/dist/menu.js +3 -3
  126. package/dist/metric.js +1 -0
  127. package/dist/motion-core.js +138 -44
  128. package/dist/motion-lHDAQHEE.js +91 -0
  129. package/dist/motion.js +5 -5
  130. package/dist/motionTempo-DXdVbCWr.js +13 -0
  131. package/dist/music-staff.js +1 -0
  132. package/dist/{number-field-RP89046a.js → number-field-BXFUP49Z.js} +3 -2
  133. package/dist/number-field.css +1 -0
  134. package/dist/number-field.js +1 -1
  135. package/dist/pager-dots.css +1 -0
  136. package/dist/pager-dots.js +4 -3
  137. package/dist/participation-C5y5VZTN.js +52 -0
  138. package/dist/{popover-BdpoE4Ar.js → popover-DQUmwuAa.js} +3 -2
  139. package/dist/popover.js +1 -1
  140. package/dist/{progress-eVa-mc7J.js → progress-BUn0Bw7Z.js} +1 -0
  141. package/dist/progress.css +1 -0
  142. package/dist/progress.js +1 -1
  143. package/dist/{radio-group-B58Bz16F.js → radio-group-xdEy2tdi.js} +1 -0
  144. package/dist/radio-group.css +1 -0
  145. package/dist/radio-group.js +1 -1
  146. package/dist/root-scroll-lock-DJFrQhMa.js +22 -0
  147. package/dist/select-Dt5dXm87.js +309 -0
  148. package/dist/select.js +1 -1
  149. package/dist/{separator-D4EZM10u.js → separator-C4y9p_ky.js} +1 -0
  150. package/dist/separator.css +1 -0
  151. package/dist/separator.js +1 -1
  152. package/dist/sheet-DLqNUIZl.js +347 -0
  153. package/dist/sheet-width-DgXgJNa5.js +18 -0
  154. package/dist/sheet.js +2 -2
  155. package/dist/{slider-5uoY-cLG.js → slider-CZiKrWGg.js} +8 -8
  156. package/dist/slider.js +1 -1
  157. package/dist/sortable-list.js +2 -1
  158. package/dist/{status-dot-W4LFiJps.js → status-dot-BDZKcRxy.js} +2 -1
  159. package/dist/status-dot.css +1 -0
  160. package/dist/status-dot.js +1 -1
  161. package/dist/styles/components.css +1 -1
  162. package/dist/styles/glass/glass-capsule.css +1 -1
  163. package/dist/styles/glass/glass-chip.css +1 -1
  164. package/dist/styles/glass/mark.css +1 -1
  165. package/dist/styles/glass/overlay-plate.css +1 -1
  166. package/dist/styles/glass/surface-axis.css +1 -1
  167. package/dist/styles/index.css +1 -1
  168. package/dist/styles/theme/radius.css +1 -1
  169. package/dist/styles/tokens/color-radius.css +1 -1
  170. package/dist/styles/tokens/manifest.d.ts +1 -1
  171. package/dist/styles/tokens/scale-paper.css +1 -1
  172. package/dist/styles/utilities/base-misc.css +1 -1
  173. package/dist/surface.js +1 -1
  174. package/dist/{switch-BYUZ6g9G.js → switch-DLfGYU35.js} +1 -0
  175. package/dist/switch.css +1 -0
  176. package/dist/switch.js +1 -1
  177. package/dist/tabs-NgTRPGZx.js +229 -0
  178. package/dist/tabs.js +1 -1
  179. package/dist/textarea.js +1 -1
  180. package/dist/timeline.css +1 -0
  181. package/dist/timeline.js +4 -3
  182. package/dist/toggle-group-DgXcJGD6.js +129 -0
  183. package/dist/toggle-group.css +1 -0
  184. package/dist/toggle-group.js +1 -1
  185. package/dist/tokens.js +2 -0
  186. package/dist/{tooltip-CZVubnJf.js → tooltip-Do3qCw0r.js} +1 -1
  187. package/dist/tooltip.js +1 -1
  188. package/dist/typewriter.css +1 -0
  189. package/dist/typewriter.js +1 -0
  190. package/dist/uniformBridge-CJyy7NOn.js +150 -0
  191. package/dist/useBarShape-CmP35Z8o.js +24 -0
  192. package/dist/{useCanvas2D-CQRElMyE.js → useCanvas2D-Bhpwua98.js} +1 -1
  193. package/dist/{useDockCtaReceive-BSSgD6mu.js → useDockCtaReceive-Dn_-paqP.js} +1 -1
  194. package/dist/{useDragMorph-B363RUbF.js → useDragMorph-BEI74U0t.js} +51 -40
  195. package/dist/{color.wgsl-BTszLY39.js → useGpuSubstrate-Y5XAdU8d.js} +7 -7
  196. package/dist/{useLiquidPress-h1scrPtP.js → useLiquidPress-D5mjZC6U.js} +2 -2
  197. package/dist/{useResizeObserver-CdUlm2QZ.js → useResizeObserver-Bv3nN46q.js} +4 -7
  198. package/dist/useScrollChrome-DMP6kDI9.js +67 -0
  199. package/dist/useSelectionGroup-DAQv5Lb5.js +186 -0
  200. package/dist/{useSpring-9u2_shxV.js → useSpring-Aof0nTRt.js} +1 -1
  201. package/dist/useSpringMount-jgNkymRl.js +73 -0
  202. package/dist/wgpuSetup-CFuqd_RP.js +1278 -0
  203. package/package.json +8 -1
  204. package/dist/DialogContent-CwIBvou_.js +0 -157
  205. package/dist/DropdownMenuTrigger-CKRnhDSQ.js +0 -93
  206. package/dist/button-BOFTUPyU.js +0 -110
  207. package/dist/composables/motion/morph/eyeglass.d.ts +0 -141
  208. package/dist/expandable-container-CZUj9BzY.js +0 -142
  209. package/dist/glass-ui.css +0 -2
  210. package/dist/motion-BvV1_24p.js +0 -61
  211. package/dist/motionTempo-tscp92Nm.js +0 -7
  212. package/dist/participation-B7UFdgXB.js +0 -55
  213. package/dist/select-BiF0FCZf.js +0 -292
  214. package/dist/sheet-DmJxgAHc.js +0 -345
  215. package/dist/tabs-C5sC0fBE.js +0 -269
  216. package/dist/toggle-group-CC5b3o1R.js +0 -125
  217. package/dist/useScrollChrome-BJbWV32F.js +0 -162
  218. package/dist/useSelectionGroup-zsEwitF6.js +0 -291
  219. package/dist/useSpringMount-OA-0mTNv.js +0 -73
package/dist/dom.js CHANGED
@@ -1,4 +1,4 @@
1
- import { t as e } from "./useResizeObserver-CdUlm2QZ.js";
1
+ import { t as e } from "./useResizeObserver-Bv3nN46q.js";
2
2
  import { t } from "./useTimer-C3yfti4C.js";
3
3
  import { t as n } from "./useDragVelocity-C5BkKiNf.js";
4
4
  import { n as r, t as i } from "./useResolveTokenColor-B2FfJnd9.js";
package/dist/easing.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import { t as e } from "./class-names-FlXcvRRT.js";
2
2
  import { t } from "./DotRing-Blh4Mc3Q.js";
3
3
  import { n } from "./useReducedMotion-vCXA_vyM.js";
4
- import { t as r } from "./button-BOFTUPyU.js";
4
+ import { t as r } from "./button-CAKhiOZy.js";
5
5
  import { t as i } from "./useClipboard-D36OTaeT.js";
6
- import { a, c as o, l as s, r as c, s as l } from "./select-BiF0FCZf.js";
7
- import { t as u } from "./slider-5uoY-cLG.js";
8
- import { t as d } from "./tabs-C5sC0fBE.js";
6
+ import { a, c as o, l as s, r as c, s as l } from "./select-Dt5dXm87.js";
7
+ import { t as u } from "./slider-CZiKrWGg.js";
8
+ import { t as d } from "./tabs-NgTRPGZx.js";
9
9
  import { Fragment as f, computed as p, createBlock as m, createCommentVNode as h, createElementBlock as g, createElementVNode as _, createTextVNode as v, createVNode as y, defineComponent as b, mergeModels as x, normalizeClass as S, onScopeDispose as C, onUnmounted as ee, openBlock as w, ref as T, renderList as E, toDisplayString as D, unref as O, useId as k, useModel as te, useTemplateRef as A, watch as ne, withCtx as j } from "vue";
10
10
  import { Check as re, Copy as ie, Play as ae, RotateCcw as oe, Square as se } from "@lucide/vue";
11
11
  import { parseTimingFunction as M } from "@mkbabb/value.js/css";
@@ -0,0 +1,135 @@
1
+ import "./expandable-container.css";
2
+ import { n as e, t } from "./root-scroll-lock-DJFrQhMa.js";
3
+ import { registerShortcut as n } from "./keyboard.js";
4
+ import { t as r } from "./focus-Duf7EpUu.js";
5
+ import { Teleport as i, createBlock as a, createElementVNode as o, createVNode as s, defineComponent as c, mergeModels as l, mergeProps as u, nextTick as d, onUnmounted as f, openBlock as p, ref as m, renderSlot as h, unref as g, useModel as _, watch as v, withCtx as y } from "vue";
6
+ import { FocusScope as b } from "reka-ui";
7
+ import { Maximize2 as x, Minimize2 as S } from "@lucide/vue";
8
+ //#region src/components/expandable-container/ExpandableContainer.vue?vue&type=script&setup=true&lang.ts
9
+ var C = [
10
+ "data-state",
11
+ "data-surface",
12
+ "role",
13
+ "aria-label",
14
+ "aria-modal"
15
+ ], w = ["hidden"], T = ["data-position", "aria-label"], E = ["hidden"], D = ["data-position", "aria-label"], O = { "data-part": "panel" }, k = /* @__PURE__ */ c({
16
+ inheritAttrs: !1,
17
+ __name: "ExpandableContainer",
18
+ props: /*@__PURE__*/ l({
19
+ buttonPosition: { default: "right" },
20
+ expandLabel: { default: "Fullscreen" },
21
+ collapseLabel: { default: "Exit fullscreen" },
22
+ surface: { default: "glass" }
23
+ }, {
24
+ open: {
25
+ type: Boolean,
26
+ default: !1
27
+ },
28
+ openModifiers: {}
29
+ }),
30
+ emits: ["update:open"],
31
+ setup(c) {
32
+ let l = _(c, "open"), k = m(null);
33
+ function A() {
34
+ let e = k.value?.$el;
35
+ return e instanceof HTMLElement ? e : null;
36
+ }
37
+ function j() {
38
+ l.value = !0;
39
+ }
40
+ function M() {
41
+ l.value = !1;
42
+ }
43
+ let N = !1, P = null, F = null;
44
+ function I(n) {
45
+ n && !N ? N = t() : !n && N && (e(), N = !1);
46
+ }
47
+ function L() {
48
+ (A()?.querySelector("[autofocus]") ?? A()?.querySelector("[data-mode=\"collapse\"]") ?? A()?.querySelector(r) ?? A())?.focus();
49
+ }
50
+ async function R() {
51
+ await d(), await d(), L();
52
+ }
53
+ let z = ["[data-mode=\"expand\"]", ...r.split(", ").map((e) => `.expandable-container__chrome:not([hidden]) ${e}`)].join(", ");
54
+ function B() {
55
+ let e = F?.isConnected ? F : A()?.querySelector(z);
56
+ F = null, e?.focus();
57
+ }
58
+ function V(e) {
59
+ e.preventDefault();
60
+ }
61
+ return v(l, (e, t) => {
62
+ if (I(e), e && !t) {
63
+ let e = typeof document < "u" ? document.activeElement : null;
64
+ F = e instanceof HTMLElement ? e : null, P = n("Escape", M, {
65
+ label: "Exit fullscreen",
66
+ group: "UI",
67
+ allowInInput: !0
68
+ }), R();
69
+ } else !e && t && (P?.(), P = null, d(B));
70
+ }, { immediate: !0 }), f(() => {
71
+ P?.(), P = null, I(!1);
72
+ }), (e, t) => (p(), a(i, {
73
+ to: "body",
74
+ disabled: !l.value
75
+ }, [s(g(b), {
76
+ ref_key: "scope",
77
+ ref: k,
78
+ "as-child": "",
79
+ loop: l.value,
80
+ trapped: l.value,
81
+ onMountAutoFocus: V
82
+ }, {
83
+ default: y(() => [o("div", u({
84
+ class: "expandable-container",
85
+ "data-state": l.value ? "expanded" : "collapsed",
86
+ "data-surface": l.value ? c.surface : void 0,
87
+ role: l.value ? "dialog" : void 0,
88
+ "aria-label": l.value ? c.expandLabel : void 0,
89
+ "aria-modal": l.value || void 0
90
+ }, e.$attrs), [
91
+ o("div", {
92
+ class: "expandable-container__chrome",
93
+ hidden: l.value
94
+ }, [h(e.$slots, "expand-trigger", {
95
+ expand: j,
96
+ label: c.expandLabel
97
+ }, () => [o("button", {
98
+ type: "button",
99
+ "data-part": "trigger",
100
+ "data-control-target": "",
101
+ "data-mode": "expand",
102
+ "data-position": c.buttonPosition,
103
+ "aria-label": c.expandLabel,
104
+ onClick: j
105
+ }, [s(g(x), {
106
+ class: "expandable-container__icon",
107
+ "aria-hidden": "true"
108
+ })], 8, T)])], 8, w),
109
+ o("div", {
110
+ class: "expandable-container__chrome",
111
+ hidden: !l.value
112
+ }, [h(e.$slots, "fullscreen-chrome", {
113
+ collapse: M,
114
+ label: c.collapseLabel,
115
+ fullscreen: !0
116
+ }, () => [o("button", {
117
+ type: "button",
118
+ "data-part": "trigger",
119
+ "data-control-target": "",
120
+ "data-mode": "collapse",
121
+ "data-position": c.buttonPosition,
122
+ "aria-label": c.collapseLabel,
123
+ onClick: M
124
+ }, [s(g(S), {
125
+ class: "expandable-container__icon",
126
+ "aria-hidden": "true"
127
+ })], 8, D)])], 8, E),
128
+ o("div", O, [h(e.$slots, "default", { fullscreen: l.value })])
129
+ ], 16, C)]),
130
+ _: 3
131
+ }, 8, ["loop", "trapped"])], 8, ["disabled"]));
132
+ }
133
+ });
134
+ //#endregion
135
+ export { k as t };
@@ -0,0 +1 @@
1
+ @layer theme, base, components, utilities;@layer components{.expandable-container{position:relative}.expandable-container[data-state=expanded]{z-index:var(--z-modal);background:var(--overlay-scrim);-webkit-backdrop-filter:none;backdrop-filter:none;flex-direction:column;display:flex;position:fixed;inset:0}.expandable-container[data-state=expanded]>[data-part=panel]{animation:expandable-container-birth var(--spring-dock-duration) var(--spring-dock) both}.expandable-container__chrome{display:contents}.expandable-container__chrome[hidden]{display:none}.expandable-container [data-part=trigger]{z-index:1;min-inline-size:var(--control-h-md);min-block-size:var(--control-h-md);border:1px solid color-mix(in srgb, var(--border) 40%, transparent);border-radius:var(--radius-circle);background:color-mix(in srgb, var(--card) 70%, transparent);color:var(--muted-foreground);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:var(--glass-blur-wash);backdrop-filter:var(--glass-blur-wash);transition:color var(--duration-fast) var(--ease-standard);place-items:center;display:inline-grid;position:absolute;inset-block-start:.5rem}.expandable-container [data-part=trigger][data-position=left]{inset-inline-start:.5rem}.expandable-container [data-part=trigger][data-position=right]{inset-inline-end:.5rem}.expandable-container [data-part=trigger]:hover{color:var(--foreground)}.expandable-container [data-part=trigger]:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px}.expandable-container[data-state=expanded] [data-part=panel]{block-size:100%;min-block-size:0;inline-size:100%}.expandable-container__icon{inline-size:var(--icon-sm);block-size:var(--icon-sm)}@media (prefers-reduced-motion:reduce){.expandable-container [data-part=trigger]{transition:none}.expandable-container[data-state=expanded]>[data-part=panel]{animation:.12s linear both expandable-container-arrive}}}@keyframes expandable-container-birth{0%{opacity:0;scale:.78}to{opacity:1;scale:1}}@keyframes expandable-container-arrive{0%{opacity:0}to{opacity:1}}
@@ -1,2 +1,2 @@
1
- import { t as e } from "./expandable-container-CZUj9BzY.js";
1
+ import { t as e } from "./expandable-container-wS1awXGd.js";
2
2
  export { e as ExpandableContainer };
@@ -1,12 +1,12 @@
1
1
  import { t as e } from "./supportsCssTimeline-Di9gzleG.js";
2
- import { t } from "./useResizeObserver-CdUlm2QZ.js";
2
+ import { t } from "./useResizeObserver-Bv3nN46q.js";
3
3
  import { computed as n, createElementBlock as r, defineComponent as i, normalizeClass as a, onBeforeUnmount as o, onMounted as s, openBlock as c, ref as l, renderSlot as u, toRef as d, unref as f, watch as p } from "vue";
4
4
  //#region src/components/fading-scroll/composables/useFadingScroll.ts
5
5
  var m;
6
6
  function h() {
7
7
  if (m || typeof document > "u") return m ?? "negative";
8
8
  let e = document.createElement("div"), t = document.createElement("div");
9
- return e.dir = "rtl", e.style.cssText = "position:absolute;inset:-9999px auto auto -9999px;width:4px;height:1px;overflow:scroll", t.style.width = "8px", e.append(t), document.body.append(e), e.scrollLeft > 0 ? m = "positive-descending" : (e.scrollLeft = 1, m = e.scrollLeft === 0 ? "negative" : "positive-ascending"), e.remove(), m;
9
+ return e.dir = "rtl", e.style.cssText = "position:absolute;inset:0 auto auto 0;visibility:hidden;width:4px;height:1px;overflow:scroll", t.style.width = "8px", e.append(t), document.body.append(e), e.scrollLeft > 0 ? m = "positive-descending" : (e.scrollLeft = 1, m = e.scrollLeft === 0 ? "negative" : "positive-ascending"), e.remove(), m;
10
10
  }
11
11
  function g(e, t, n, r) {
12
12
  let i = r ?? (n === "rtl" ? h() : void 0), a = n === "rtl" ? i === "negative" ? -e : i === "positive-descending" ? t - e : e : e;
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./fading-scroll-CTeW3KNS.js";
1
+ import { n as e, t } from "./fading-scroll-D3Y20ibL.js";
2
2
  export { t as FadingScroll, e as useFadingScroll };
@@ -0,0 +1,7 @@
1
+ //#region src/composables/glass/fieldPaint.ts
2
+ var e = "glass-field-paint";
3
+ function t(t) {
4
+ t.dispatchEvent(new Event(e));
5
+ }
6
+ //#endregion
7
+ export { t as n, e as t };
@@ -0,0 +1 @@
1
+ @layer theme, base, components, utilities;@layer components{.fourier-field[data-v-017224a9]{z-index:0;pointer-events:none;contain:layout style;content-visibility:auto;contain-intrinsic-size:auto none;position:absolute;inset:0}.fourier-field--interactive[data-v-017224a9]{pointer-events:auto}.fourier-field-canvas[data-v-017224a9]{pointer-events:none;width:100%;height:100%;display:block}}
@@ -1,3 +1,4 @@
1
+ import "./fourier-field.css";
1
2
  import { n as e } from "./springPresets-Cbe0Voqg.js";
2
3
  import { n as t } from "./useResolveTokenColor-B2FfJnd9.js";
3
4
  import { t as n } from "./_plugin-vue_export-helper-B3ysoDQm.js";
@@ -5,9 +6,10 @@ import { t as r } from "./usePointerVelocityField-Lx26_Yap.js";
5
6
  import { i } from "./dark-pONY3x93.js";
6
7
  import { cssToOklch as a, gamutMapStop as o, oklchToLinear as s } from "./color.js";
7
8
  import { FOURIER_FIGURES as c, FOURIER_FIGURE_KEYS as l, comp as u, dftFromPoints as d, makeEllipticSpectrum as f, makeHarmonicFigure as p, partialSumAt as m, positionsAt as h } from "./fourier-math.js";
8
- import { a as g, n as _, r as v } from "./color.wgsl-BTszLY39.js";
9
- import { a as y } from "./rendererStatus-BxUlBLVy.js";
10
- import { n as b, t as x } from "./prng-2uS6J_A1.js";
9
+ import { t as g } from "./useGpuSubstrate-Y5XAdU8d.js";
10
+ import { a as _ } from "./rendererStatus-BxUlBLVy.js";
11
+ import { n as v, t as y } from "./prng-2uS6J_A1.js";
12
+ import { n as b, r as x } from "./color.wgsl-B-qDJ_OM.js";
11
13
  import { computed as S, createElementBlock as C, createElementVNode as w, defineComponent as T, normalizeClass as E, onMounted as D, onScopeDispose as O, openBlock as k, readonly as A, shallowRef as j, useTemplateRef as M, watch as N } from "vue";
12
14
  var P = .5, F = 720;
13
15
  function I(e) {
@@ -149,8 +151,8 @@ struct RenderUniforms {
149
151
  @group(0) @binding(1) var<storage, read> curveSamples: array<vec4<f32>>;
150
152
  @group(0) @binding(2) var<storage, read> chainTips: array<vec4<f32>>;
151
153
 
152
- ${_}
153
- ${v}
154
+ ${b}
155
+ ${x}
154
156
 
155
157
  // Read the CPU-resolved ramp. No colour-space conversion happens here — the LUT already
156
158
  // carries the chroma floor and the gamut map.
@@ -720,20 +722,20 @@ function ke(e, t) {
720
722
  }
721
723
  let h = (e) => {
722
724
  f.onPointerMove(e), s() && C?.wake();
723
- }, _ = () => {
724
- f.onPointerEnter(), s() && C?.wake();
725
725
  }, v = () => {
726
+ f.onPointerEnter(), s() && C?.wake();
727
+ }, y = () => {
726
728
  f.onPointerLeave();
727
729
  }, b = (e) => e.parentElement ?? e;
728
730
  function x(e) {
729
731
  let t = b(e);
730
- t.addEventListener("pointermove", h), t.addEventListener("pointerenter", _), t.addEventListener("pointerleave", v);
732
+ t.addEventListener("pointermove", h), t.addEventListener("pointerenter", v), t.addEventListener("pointerleave", y);
731
733
  }
732
734
  function S(e) {
733
735
  let t = b(e);
734
- t.removeEventListener("pointermove", h), t.removeEventListener("pointerenter", _), t.removeEventListener("pointerleave", v);
736
+ t.removeEventListener("pointermove", h), t.removeEventListener("pointerenter", v), t.removeEventListener("pointerleave", y);
735
737
  }
736
- let C = null, w = j(y("webgpu")), T = (e) => e.engine === "webgpu" ? e : {
738
+ let C = null, w = j(_("webgpu")), T = (e) => e.engine === "webgpu" ? e : {
737
739
  ...e,
738
740
  engine: "webgpu",
739
741
  adapter: "WebGPU unavailable"
@@ -823,8 +825,8 @@ var Ae = [
823
825
  if (s.spectrum && s.spectrum.length > 0) return L(s.spectrum);
824
826
  let e = m.value.source;
825
827
  if (e !== "elliptic" && !(e in c)) throw Error(`[FourierField] unknown source "${String(e)}". Pass "elliptic", a key of FOURIER_FIGURES, or an explicit \`spectrum\`.`);
826
- return L(e === "elliptic" ? f(b(x(`fourier-field/${s.seed}`)), m.value.richness) : p(c[e]));
827
- }), g = () => h.value, _ = S(() => h.value.terms.length), v = S(() => Math.max(1, Math.min(Math.round(m.value.harmonics), _.value))), y = S(() => `N ${v.value}/${_.value}`);
828
+ return L(e === "elliptic" ? f(v(y(`fourier-field/${s.seed}`)), m.value.richness) : p(c[e]));
829
+ }), g = () => h.value, _ = S(() => h.value.terms.length), b = S(() => Math.max(1, Math.min(Math.round(m.value.harmonics), _.value))), x = S(() => `N ${b.value}/${_.value}`);
828
830
  function T(e) {
829
831
  if (!e.includes("var(") && !e.includes("light-dark(")) return e;
830
832
  let n = l.value;
@@ -875,7 +877,7 @@ var Ae = [
875
877
  () => s.getPalette,
876
878
  d
877
879
  ], A, { immediate: !0 }), D(A), N(d, () => P.wake()), N(() => s.freeze, () => P.wake());
878
- let F = j(!1), I = S(() => Number(P.headTLive.value.toFixed(3))), R = S(() => `${y.value} · ${Math.round(P.headTLive.value * 100)}% through the period`);
880
+ let F = j(!1), I = S(() => Number(P.headTLive.value.toFixed(3))), R = S(() => `${x.value} · ${Math.round(P.headTLive.value * 100)}% through the period`);
879
881
  function z(e) {
880
882
  P.setHeadT(P.headT + e);
881
883
  }