@mkbabb/glass-ui 3.9.0 → 3.10.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 (121) hide show
  1. package/dist/{MetricBadge-lTc002u2.js → MetricBadge-BZVWIxNy.js} +6 -4
  2. package/dist/{Notification-BxK8LZMw.js → Notification-DLMhblXR.js} +2 -2
  3. package/dist/{Switch-LDKLmmgx.js → Switch-Ch-k3Rv-.js} +1 -1
  4. package/dist/animated-digit.js +1 -1
  5. package/dist/api/index.d.ts +1 -0
  6. package/dist/api.js +1 -1
  7. package/dist/aurora.js +236 -545
  8. package/dist/{badge-BvwvT50i.js → badge-CaoFJzRb.js} +1 -1
  9. package/dist/badge.js +1 -1
  10. package/dist/color.js +1 -1
  11. package/dist/{compile-DAjIoEy2.js → compile-BOXjLUxu.js} +23 -23
  12. package/dist/components/custom/aurora/composables/atoms.d.ts +21 -4
  13. package/dist/components/custom/aurora/composables/runtime.d.ts +0 -9
  14. package/dist/components/custom/aurora/composables/uniformBridge.d.ts +0 -11
  15. package/dist/components/custom/aurora/constants/renderMode.d.ts +0 -32
  16. package/dist/components/custom/aurora/constants/shaders/brush.glsl.d.ts +1 -1
  17. package/dist/components/custom/aurora/constants/shaders/mediums.glsl.d.ts +2 -2
  18. package/dist/components/custom/aurora/constants/shaders/tonemap.glsl.d.ts +1 -1
  19. package/dist/components/custom/aurora/index.d.ts +1 -1
  20. package/dist/components/custom/constellation/Constellation.vue.d.ts +73 -1
  21. package/dist/components/custom/constellation/constellationField.d.ts +255 -3
  22. package/dist/components/custom/constellation/index.d.ts +2 -2
  23. package/dist/components/custom/dock/DockTabButton.vue.d.ts +4 -3
  24. package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +29 -0
  25. package/dist/components/custom/fourier-field/FourierField.vue.d.ts +6 -0
  26. package/dist/components/custom/fourier-field/index.d.ts +25 -1
  27. package/dist/components/custom/fourier-field/math.d.ts +3 -8
  28. package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +8 -10
  29. package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +6 -14
  30. package/dist/components/custom/goo-blob/index.d.ts +1 -1
  31. package/dist/components/custom/goo-blob/types.d.ts +59 -25
  32. package/dist/components/custom/handmark/HandMark.vue.d.ts +29 -0
  33. package/dist/components/custom/handmark/brush.d.ts +219 -0
  34. package/dist/components/custom/handmark/freehand.d.ts +69 -0
  35. package/dist/components/custom/handmark/geometry.d.ts +32 -0
  36. package/dist/components/custom/handmark/index.d.ts +21 -0
  37. package/dist/components/custom/handmark/ink.d.ts +11 -0
  38. package/dist/components/custom/handmark/texture.d.ts +39 -0
  39. package/dist/components/custom/handmark/types.d.ts +53 -0
  40. package/dist/components/custom/handmark/useHandMark.d.ts +66 -0
  41. package/dist/components/custom/metric-badge/MetricBadge.vue.d.ts +8 -0
  42. package/dist/components/ui/slider/index.d.ts +20 -16
  43. package/dist/composables/color/index.d.ts +12 -7
  44. package/dist/composables/glass/webgl/shaders/procedural-color.glsl.d.ts +1 -6
  45. package/dist/composables/motion/core/index.d.ts +1 -0
  46. package/dist/composables/motion/useRouteTransition.d.ts +42 -0
  47. package/dist/constellation.js +212 -72
  48. package/dist/controls.js +1 -1
  49. package/dist/dark.js +1 -1
  50. package/dist/dock.js +1 -0
  51. package/dist/expandable-container.js +61 -38
  52. package/dist/forms.js +2 -2
  53. package/dist/fourier-field.js +89 -97
  54. package/dist/fourier-math.d.ts +1 -0
  55. package/dist/fourier-math.js +2 -0
  56. package/dist/glass-panel.js +1 -1
  57. package/dist/glass-ui.css +1 -1
  58. package/dist/glass-ui.js +81 -80
  59. package/dist/goo-blob.js +299 -284
  60. package/dist/handmark.d.ts +1 -0
  61. package/dist/handmark.js +609 -0
  62. package/dist/icon-tooltip.js +1 -1
  63. package/dist/index.d.ts +1 -0
  64. package/dist/keyboard.js +1 -1
  65. package/dist/labeled-field.js +4 -4
  66. package/dist/math-DTpRVC0e.js +27 -0
  67. package/dist/metric-badge.js +1 -1
  68. package/dist/metric-stack.js +1 -1
  69. package/dist/motion-core.js +70 -69
  70. package/dist/motion.js +2 -2
  71. package/dist/notification.js +1 -1
  72. package/dist/search.js +2 -2
  73. package/dist/{slider-DC2mwuoe.js → slider-CyzcxBoh.js} +6 -6
  74. package/dist/slider.js +1 -1
  75. package/dist/styles/animations.css +74 -18
  76. package/dist/styles/cards.css +2 -2
  77. package/dist/styles/components.css +1 -1
  78. package/dist/styles/dock/layer-group.css +16 -4
  79. package/dist/styles/dock-controls.css +39 -23
  80. package/dist/styles/drawer.css +12 -4
  81. package/dist/styles/glass.css +145 -9
  82. package/dist/styles/paper.css +68 -2
  83. package/dist/styles/theme.css +7 -0
  84. package/dist/styles/tokens.css +101 -15
  85. package/dist/styles/transitions.css +20 -2
  86. package/dist/styles/utilities.css +130 -40
  87. package/dist/styles/view-transition.css +51 -0
  88. package/dist/switch.js +1 -1
  89. package/dist/{useAnimatedNumber-C5I3wWd8.js → useAnimatedNumber-Bcpy5Etf.js} +1 -1
  90. package/dist/{useGlassRenderer-5I0YkI4t.js → useGlassRenderer-D7YGOYiM.js} +1 -1
  91. package/dist/useViewTransition-DaN5Zrox.js +21 -0
  92. package/dist/vReveal-zUIQk-rJ.js +53 -0
  93. package/dist/watercolor-dot.js +1 -1
  94. package/package.json +51 -9
  95. package/src/styles/animations.css +74 -18
  96. package/src/styles/cards.css +2 -2
  97. package/src/styles/dock/layer-group.css +16 -4
  98. package/src/styles/dock-controls.css +39 -23
  99. package/src/styles/drawer.css +12 -4
  100. package/src/styles/glass.css +145 -9
  101. package/src/styles/paper.css +68 -2
  102. package/src/styles/theme.css +7 -0
  103. package/src/styles/tokens.css +101 -15
  104. package/src/styles/transitions.css +20 -2
  105. package/src/styles/utilities.css +130 -40
  106. package/src/styles/view-transition.css +51 -0
  107. package/dist/components/custom/aurora/composables/gpuRuntime.d.ts +0 -16
  108. package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +0 -7
  109. package/dist/composables/glass/createGPUCanvas.d.ts +0 -40
  110. package/dist/vReveal-CqaCz_mC.js +0 -44
  111. /package/dist/{IconTooltip-yefK7cJc.js → IconTooltip-Cus0fvK0.js} +0 -0
  112. /package/dist/{Input-DWQQIOC4.js → Input-xuDwALQR.js} +0 -0
  113. /package/dist/{color-8jBjWiJ6.js → color-C5ls_QF7.js} +0 -0
  114. /package/dist/{constants-CS75AWHG.js → constants-yKeKnE84.js} +0 -0
  115. /package/dist/{presets-BKVyQfbt.js → presets-Dkdv55Gt.js} +0 -0
  116. /package/dist/{prng-wHuHlNHE.js → prng-D27-B3tK.js} +0 -0
  117. /package/dist/{useGlobalDark-yhL4Wp-s.js → useGlobalDark-d6waty-X.js} +0 -0
  118. /package/dist/{useIntersectionPause-Cc-H9ees.js → useIntersectionPause-Cck5Uxk8.js} +0 -0
  119. /package/dist/{useKeyboardShortcuts-Be3w_Rwk.js → useKeyboardShortcuts-CyIYrndH.js} +0 -0
  120. /package/dist/{useScrollProgress-CAH8Ofwt.js → useScrollProgress-CffFGLa5.js} +0 -0
  121. /package/dist/{useTextHighlight-DON84L8w.js → useTextHighlight-CWEi25hf.js} +0 -0
@@ -1,14 +1,15 @@
1
- import { i as e, n as t, r as n, t as r } from "./vReveal-CqaCz_mC.js";
1
+ import { i as e, n as t, r as n, t as r } from "./vReveal-zUIQk-rJ.js";
2
2
  import { n as i } from "./supportsCssTimeline-C5oe0lnD.js";
3
- import { t as a } from "./useTextHighlight-DON84L8w.js";
4
- import { n as o, t as s } from "./useIntersectionPause-Cc-H9ees.js";
5
- import { t as c } from "./useScrollProgress-CAH8Ofwt.js";
6
- import { n as l, t as u } from "./constants-CS75AWHG.js";
7
- import { computed as d, getCurrentScope as f, onBeforeUnmount as p, onScopeDispose as m, reactive as h, readonly as g, ref as _, watch as v } from "vue";
3
+ import { n as a, t as o } from "./useViewTransition-DaN5Zrox.js";
4
+ import { t as s } from "./useTextHighlight-CWEi25hf.js";
5
+ import { n as c, t as l } from "./useIntersectionPause-Cck5Uxk8.js";
6
+ import { t as u } from "./useScrollProgress-CffFGLa5.js";
7
+ import { n as d, t as f } from "./constants-yKeKnE84.js";
8
+ import { computed as p, getCurrentScope as m, onBeforeUnmount as h, onScopeDispose as g, reactive as _, readonly as v, ref as y, watch as b } from "vue";
8
9
  //#region src/composables/motion/useStaggerReveal.ts
9
- var y = i();
10
- function b(e = {}) {
11
- let { staggerMs: t = 60, once: n = !0, rootMargin: r = "0px", threshold: i = .15 } = e, a = _([]), o = h({}), s = /* @__PURE__ */ new WeakMap(), c = /* @__PURE__ */ new Set(), l = y || typeof IntersectionObserver > "u" ? null : new IntersectionObserver((e) => {
10
+ var x = i();
11
+ function S(e = {}) {
12
+ let { staggerMs: t = 60, once: n = !0, rootMargin: r = "0px", threshold: i = .15 } = e, a = y([]), o = _({}), s = /* @__PURE__ */ new WeakMap(), c = /* @__PURE__ */ new Set(), l = x || typeof IntersectionObserver > "u" ? null : new IntersectionObserver((e) => {
12
13
  for (let r of e) {
13
14
  let e = r.target, i = s.get(e);
14
15
  if (i !== void 0) if (r.isIntersecting) {
@@ -25,9 +26,9 @@ function b(e = {}) {
25
26
  function u(e, t) {
26
27
  if (!e) return;
27
28
  let n = t ?? a.value.length;
28
- s.has(e) || (s.set(e, n), a.value.push(e), o[n] = y, l?.observe(e));
29
+ s.has(e) || (s.set(e, n), a.value.push(e), o[n] = x, l?.observe(e));
29
30
  }
30
- return p(() => {
31
+ return h(() => {
31
32
  l?.disconnect();
32
33
  for (let e of c) clearTimeout(e);
33
34
  c.clear();
@@ -39,11 +40,11 @@ function b(e = {}) {
39
40
  }
40
41
  //#endregion
41
42
  //#region src/composables/motion/useStagger.ts
42
- function x() {
43
+ function C() {
43
44
  return typeof window > "u" || typeof window.matchMedia != "function" ? !1 : window.matchMedia("(prefers-reduced-motion: reduce)").matches;
44
45
  }
45
- function S(e) {
46
- let t = Math.max(0, Math.floor(e.items)), n = e.delayMs ?? 80, r = e.initialDelayMs ?? 0, i = e.immediate !== !1, a = e.respectReducedMotion !== !1, o = _(Array(t).fill(!1)), s = _(t === 0), c = /* @__PURE__ */ new Set();
46
+ function w(e) {
47
+ let t = Math.max(0, Math.floor(e.items)), n = e.delayMs ?? 80, r = e.initialDelayMs ?? 0, i = e.immediate !== !1, a = e.respectReducedMotion !== !1, o = y(Array(t).fill(!1)), s = y(t === 0), c = /* @__PURE__ */ new Set();
47
48
  function l() {
48
49
  for (let e of c) clearTimeout(e);
49
50
  c.clear();
@@ -59,7 +60,7 @@ function S(e) {
59
60
  s.value = !0;
60
61
  return;
61
62
  }
62
- if (a && x()) {
63
+ if (a && C()) {
63
64
  d();
64
65
  return;
65
66
  }
@@ -71,7 +72,7 @@ function S(e) {
71
72
  c.add(a);
72
73
  }
73
74
  }
74
- return i && f(), m(l), {
75
+ return i && f(), g(l), {
75
76
  revealed: o,
76
77
  start: f,
77
78
  reset: u,
@@ -80,12 +81,12 @@ function S(e) {
80
81
  }
81
82
  //#endregion
82
83
  //#region src/composables/motion/useYieldToMain.ts
83
- function C() {
84
+ function T() {
84
85
  let e = globalThis.scheduler;
85
86
  return typeof e?.yield == "function" ? e.yield.bind(e) : null;
86
87
  }
87
- function w() {
88
- let e = C();
88
+ function E() {
89
+ let e = T();
89
90
  return e ? e() : typeof MessageChannel == "function" ? new Promise((e) => {
90
91
  let t = new MessageChannel();
91
92
  t.port1.onmessage = () => {
@@ -93,60 +94,60 @@ function w() {
93
94
  }, t.port2.postMessage(void 0);
94
95
  }) : new Promise((e) => setTimeout(e, 0));
95
96
  }
96
- function T() {
97
+ function D() {
97
98
  return {
98
- hasNativeYield: C() !== null,
99
- yield: w
99
+ hasNativeYield: T() !== null,
100
+ yield: E
100
101
  };
101
102
  }
102
103
  //#endregion
103
104
  //#region src/composables/motion/useRAFLoop.ts
104
- var E = "(prefers-reduced-motion: reduce)";
105
- function D() {
105
+ var O = "(prefers-reduced-motion: reduce)";
106
+ function k() {
106
107
  return typeof globalThis.requestAnimationFrame == "function" ? globalThis.requestAnimationFrame.bind(globalThis) : null;
107
108
  }
108
- function O() {
109
+ function A() {
109
110
  return typeof globalThis.cancelAnimationFrame == "function" ? globalThis.cancelAnimationFrame.bind(globalThis) : null;
110
111
  }
111
- function k() {
112
+ function j() {
112
113
  return typeof window > "u" ? null : window;
113
114
  }
114
- function A(e, t = {}) {
115
- let { immediate: n = !0, pauseWhenHidden: r = !0, respectReducedMotion: i = !0 } = t, a = _(!1), s = _(!1), c = _(!1), l = _(!1), u = _(!1), p = d(() => l.value && !a.value && (u.value || c.value || i && s.value || !D())), h = null, y = null, b = 0, x = 0, S = !1, C = null;
116
- function T() {
117
- return !S && l.value && !u.value && !c.value && !(i && s.value) && !!D();
115
+ function M(e, t = {}) {
116
+ let { immediate: n = !0, pauseWhenHidden: r = !0, respectReducedMotion: i = !0 } = t, a = y(!1), o = y(!1), s = y(!1), l = y(!1), u = y(!1), d = p(() => l.value && !a.value && (u.value || s.value || i && o.value || !k())), f = null, h = null, _ = 0, x = 0, S = !1, C = null;
117
+ function w() {
118
+ return !S && l.value && !u.value && !s.value && !(i && o.value) && !!k();
118
119
  }
119
- function A() {
120
- h !== null && (O()?.(h), h = null), a.value = !1, y = null;
120
+ function T() {
121
+ f !== null && (A()?.(f), f = null), a.value = !1, h = null;
121
122
  }
122
- function j() {
123
- if (h !== null || !T()) return;
124
- let t = D();
125
- t && (a.value = !0, h = t((t) => {
126
- if (h = null, !T()) {
127
- A();
123
+ function D() {
124
+ if (f !== null || !w()) return;
125
+ let t = k();
126
+ t && (a.value = !0, f = t((t) => {
127
+ if (f = null, !w()) {
128
+ T();
128
129
  return;
129
130
  }
130
- let n = y === null ? 0 : Math.max(0, t - y);
131
- y = t, b += n, e({
131
+ let n = h === null ? 0 : Math.max(0, t - h);
132
+ h = t, _ += n, e({
132
133
  now: t,
133
134
  delta: n,
134
- elapsed: b,
135
+ elapsed: _,
135
136
  frame: x++
136
- }), T() ? j() : A();
137
+ }), w() ? D() : T();
137
138
  }));
138
139
  }
139
140
  function M() {
140
- T() ? j() : A();
141
+ w() ? D() : T();
141
142
  }
142
143
  function N() {
143
- y = null, b = 0, x = 0;
144
+ h = null, _ = 0, x = 0;
144
145
  }
145
146
  function P() {
146
147
  S || (N(), l.value = !0, u.value = !1, M());
147
148
  }
148
149
  function F() {
149
- l.value = !1, u.value = !1, N(), A();
150
+ l.value = !1, u.value = !1, N(), T();
150
151
  }
151
152
  function I() {
152
153
  l.value && (u.value = !0, M());
@@ -155,47 +156,47 @@ function A(e, t = {}) {
155
156
  S || (u.value = !1, M());
156
157
  }
157
158
  if (r) {
158
- let { hidden: e } = o();
159
- c.value = e.value, v(e, (e) => {
160
- c.value = e, M();
159
+ let { hidden: e } = c();
160
+ s.value = e.value, b(e, (e) => {
161
+ s.value = e, M();
161
162
  }, { flush: "sync" });
162
163
  }
163
164
  if (i) {
164
- let e = k(), t = typeof e?.matchMedia == "function" ? e.matchMedia(E) : null;
165
+ let e = j(), t = typeof e?.matchMedia == "function" ? e.matchMedia(O) : null;
165
166
  if (t) {
166
167
  let e = (e) => {
167
- s.value = e.matches, M();
168
+ o.value = e.matches, M();
168
169
  };
169
- s.value = t.matches, typeof t.addEventListener == "function" ? (t.addEventListener("change", e), C = () => t.removeEventListener("change", e)) : typeof t.addListener == "function" && (t.addListener(e), C = () => t.removeListener?.(e));
170
+ o.value = t.matches, typeof t.addEventListener == "function" ? (t.addEventListener("change", e), C = () => t.removeEventListener("change", e)) : typeof t.addListener == "function" && (t.addListener(e), C = () => t.removeListener?.(e));
170
171
  }
171
172
  }
172
173
  function R() {
173
174
  S || (S = !0, F(), C?.(), C = null);
174
175
  }
175
- return f() && m(R), n && P(), {
176
- isActive: g(a),
177
- isPaused: g(p),
178
- isReducedMotion: g(s),
176
+ return m() && g(R), n && P(), {
177
+ isActive: v(a),
178
+ isPaused: v(d),
179
+ isReducedMotion: v(o),
179
180
  start: P,
180
181
  stop: F,
181
182
  pause: I,
182
183
  resume: L,
183
184
  dispose: R,
184
- yieldToMain: w
185
+ yieldToMain: E
185
186
  };
186
187
  }
187
188
  //#endregion
188
189
  //#region src/composables/motion/usePrioritizedTask.ts
189
- function j() {
190
+ function N() {
190
191
  if (!e()) return null;
191
192
  let t = globalThis.scheduler;
192
193
  return t?.postTask?.bind(t) ?? null;
193
194
  }
194
- function M() {
195
+ function P() {
195
196
  let e = /* @__PURE__ */ Error("The task was aborted.");
196
197
  return e.name = "AbortError", e;
197
198
  }
198
- function N(e) {
199
+ function F(e) {
199
200
  let t = e.filter((e) => e != null);
200
201
  if (t.length === 0) return;
201
202
  if (t.length === 1) return t[0];
@@ -210,20 +211,20 @@ function N(e) {
210
211
  }
211
212
  return n.signal;
212
213
  }
213
- function P(e, t = {}) {
214
- let { priority: n, signal: r, delay: i } = t, a = j();
214
+ function I(e, t = {}) {
215
+ let { priority: n, signal: r, delay: i } = t, a = N();
215
216
  return a ? a(e, {
216
217
  priority: n,
217
218
  signal: r,
218
219
  delay: i
219
220
  }) : new Promise((t, n) => {
220
221
  if (r?.aborted) {
221
- n(M());
222
+ n(P());
222
223
  return;
223
224
  }
224
225
  let a = () => {
225
226
  if (r?.aborted) {
226
- n(M());
227
+ n(P());
227
228
  return;
228
229
  }
229
230
  try {
@@ -240,20 +241,20 @@ function P(e, t = {}) {
240
241
  i && i > 0 ? setTimeout(o, i) : o();
241
242
  });
242
243
  }
243
- function F(e) {
244
+ function L(e) {
244
245
  let t = globalThis.TaskController;
245
246
  return typeof t == "function" ? new t(e ? { priority: e } : void 0) : null;
246
247
  }
247
- function I(e) {
248
- let t = F(e);
248
+ function R(e) {
249
+ let t = L(e);
249
250
  return {
250
- postTask: (n, r = {}) => P(n, {
251
+ postTask: (n, r = {}) => I(n, {
251
252
  priority: e,
252
253
  ...r,
253
- signal: N([t?.signal, r.signal])
254
+ signal: F([t?.signal, r.signal])
254
255
  }),
255
256
  abort: (e) => t?.abort(e)
256
257
  };
257
258
  }
258
259
  //#endregion
259
- export { u as DAMPING, l as SNAP_THRESHOLD, P as postTaskSafe, t as startViewTransition, n as supportsViewTransitions, s as useIntersectionPause, I as usePrioritizedTask, A as useRAFLoop, c as useScrollProgress, S as useStagger, b as useStaggerReveal, a as useTextHighlight, T as useYieldToMain, r as vReveal, w as yieldToMain };
260
+ export { f as DAMPING, d as SNAP_THRESHOLD, I as postTaskSafe, o as startViewTransition, t as supportsRouteTransitions, a as supportsViewTransitions, l as useIntersectionPause, R as usePrioritizedTask, M as useRAFLoop, n as useRouteTransition, u as useScrollProgress, w as useStagger, S as useStaggerReveal, s as useTextHighlight, D as useYieldToMain, r as vReveal, E as yieldToMain };
package/dist/motion.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { n as e, t } from "./useSpringMount-BJSHcLl3.js";
2
- import { n, t as r } from "./constants-CS75AWHG.js";
3
- import { t as i } from "./useAnimatedNumber-C5I3wWd8.js";
2
+ import { n, t as r } from "./constants-yKeKnE84.js";
3
+ import { t as i } from "./useAnimatedNumber-Bcpy5Etf.js";
4
4
  import { computed as a, onBeforeUnmount as o, onScopeDispose as s, ref as c, shallowRef as l } from "vue";
5
5
  import { NumericAnimation as u } from "@mkbabb/keyframes.js";
6
6
  //#region src/composables/motion/useSpringPress.ts
@@ -1,2 +1,2 @@
1
- import { t as e } from "./Notification-BxK8LZMw.js";
1
+ import { t as e } from "./Notification-DLMhblXR.js";
2
2
  export { e as Notification };
package/dist/search.js CHANGED
@@ -2,11 +2,11 @@ import { t as e } from "./cn-DJXf4yaB.js";
2
2
  import { n as t, t as n } from "./minimize-2-lcXOuc6V.js";
3
3
  import { t as r } from "./search-nbkvr2dC.js";
4
4
  import { t as i } from "./x-Dfsegz9Y.js";
5
- import { n as a } from "./badge-BvwvT50i.js";
5
+ import { n as a } from "./badge-CaoFJzRb.js";
6
6
  import { n as o } from "./button-DN39cGqL.js";
7
7
  import { n as s, t as c } from "./DialogContent-BRkT1cjP.js";
8
8
  import { n as l, r as u, t as d } from "./PopoverContent-BId6ggf_.js";
9
- import { t as f } from "./useTextHighlight-DON84L8w.js";
9
+ import { t as f } from "./useTextHighlight-CWEi25hf.js";
10
10
  import { Fragment as p, computed as m, createBlock as h, createCommentVNode as g, createElementBlock as _, createElementVNode as v, createTextVNode as y, createVNode as b, defineComponent as x, nextTick as S, normalizeClass as C, onScopeDispose as w, openBlock as T, ref as E, renderList as D, renderSlot as O, resolveDynamicComponent as k, toDisplayString as A, unref as j, watch as M, withCtx as N } from "vue";
11
11
  //#region src/components/custom/search/composables/fuzzySearchIndex.ts
12
12
  function P(e, t) {
@@ -65,7 +65,7 @@ var T = /* @__PURE__ */ t(/* @__PURE__ */ l({
65
65
  setup(t, { emit: l }) {
66
66
  let C = t, T = l, D = a(() => C.variant ?? "standard"), O = a(() => C.size ?? "md"), k = a(() => C.keepDockOpen), A = S(a(() => {
67
67
  let { class: e, variant: t, size: n, keepDockOpen: r, ...i } = C;
68
- return D.value === "spectrum" && !i.thumbAlignment && (i.thumbAlignment = "contain"), i;
68
+ return i.thumbAlignment ||= "contain", i;
69
69
  }), T), j = r(), M = g("sliderRootRef");
70
70
  function N() {
71
71
  let e = M.value;
@@ -110,7 +110,7 @@ var T = /* @__PURE__ */ t(/* @__PURE__ */ l({
110
110
  }), (p(!0), s(i, null, m(t.modelValue, (e, t) => (p(), o(h(b), {
111
111
  key: t,
112
112
  "aria-label": n.$attrs["aria-label"] ?? void 0,
113
- class: "slider-thumb"
113
+ class: "slider-thumb glass-specular-track"
114
114
  }, null, 8, ["aria-label"]))), 128))]),
115
115
  _: 1
116
116
  }, 16, [
@@ -121,16 +121,16 @@ var T = /* @__PURE__ */ t(/* @__PURE__ */ l({
121
121
  "data-touch-active"
122
122
  ]));
123
123
  }
124
- }), [["__scopeId", "data-v-b77dcbae"]]), E = C("glass-slider focus-ring relative flex w-full touch-none select-none items-center transition-colors", {
124
+ }), [["__scopeId", "data-v-aacc4124"]]), E = C("glass-slider focus-ring relative flex w-full touch-none select-none items-center transition-colors", {
125
125
  variants: {
126
126
  variant: {
127
127
  standard: "",
128
128
  spectrum: ""
129
129
  },
130
130
  size: {
131
- sm: "[--slider-track-height:0.25rem] [--slider-thumb-size:0.75rem]",
132
- md: "[--slider-track-height:0.375rem] [--slider-thumb-size:1rem]",
133
- lg: "[--slider-track-height:0.75rem] [--slider-thumb-size:1.5rem]"
131
+ sm: "[--slider-track-height:0.75rem] [--slider-thumb-size:0.5rem]",
132
+ md: "[--slider-track-height:1.25rem] [--slider-thumb-size:1rem]",
133
+ lg: "[--slider-track-height:1.75rem] [--slider-thumb-size:1.5rem]"
134
134
  }
135
135
  },
136
136
  defaultVariants: {
package/dist/slider.js CHANGED
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./slider-DC2mwuoe.js";
1
+ import { n as e, t } from "./slider-CyzcxBoh.js";
2
2
  export { e as Slider, t as sliderVariants };
@@ -141,33 +141,89 @@
141
141
  100% { background-position: -200% 0; }
142
142
  }
143
143
 
144
- /* ── Sparkle sweep: four-point star traverses a surface diagonally ──
144
+ /* ── Crayon-wipe: the scroll-scrubbed draw-on (D6.c M1) ──────────────────────
145
145
  *
146
- * Reserved for the chassis primary-action hover (dock-tab-button[data-tier="primary"])
147
- * and the `Complete!` shimmer cycle. Single keyframe, ~600ms per pass; the
148
- * consumer rule sets the duration and easing. Reduced-motion guard at the
149
- * consumer site (per surface — not all sparkle uses share the same gate).
146
+ * The bidirectional, scroll-scrubbed DRAW-ON of a hand-mark (the crayon/pen
147
+ * underline, a drawn rule). The wipe is a `clip-path: inset()` of the LEFT edge
148
+ * only — the mark draws from inset(0 100% 0 0) (fully clipped from the right, so
149
+ * NOTHING shows) to inset(0) (fully revealed) — so the underline DRAWS as the
150
+ * figure scrolls into view and UN-DRAWS as it scrolls back up. `clip-path` is the
151
+ * compositor-eligible, FILTER-STABLE wipe (the medium's grain `feTurbulence`
152
+ * rasters ONCE and is untouched by the clip — the cardinal "no per-frame raster"
153
+ * discipline ds2-motion-field M1 names): clip-path animates on the compositor and
154
+ * never re-runs the static filter, unlike a `stroke-dashoffset` draw under the
155
+ * grain filter (which re-rasters per frame). The grammar mirrors scroll-driven.css
156
+ * (the `view()`/`scroll()` timeline home): the keyframe lives here (the shared
157
+ * @keyframes register); a consumer binds it to a NAMED `view-timeline` so the
158
+ * draw-on SCRUBS bidirectionally with scroll (forward → draws, back → un-draws),
159
+ * never a one-shot. The `.crayon-wipe` utility below is the binding.
160
+ *
161
+ * The keyframe itself is timeline-agnostic — it is equally a load-clock draw-on
162
+ * (bound to a keyframes.js Sequence) or a scroll scrub (bound to a view-timeline).
163
+ * The DEFAULT consumer is the scroll scrub (the figure-item underline drawing into
164
+ * the lower third), hence the utility's `view()` binding.
165
+ *
166
+ * Reduced-motion: the utility (NOT the keyframe) gates — under PRM the mark is SET
167
+ * to inset(0) (fully drawn, never animated), the correct degrade for a permanent
168
+ * structural draw (information parity: the underline is present, just not drawn).
150
169
  */
151
- @keyframes sparkle-sweep {
152
- 0% {
153
- transform: translate(-30%, -30%) scale(0.5);
154
- opacity: 0;
155
- }
156
- 25% {
157
- opacity: 1;
170
+ @keyframes crayon-wipe {
171
+ from {
172
+ /* clipped from the RIGHT by 100% → the mark is fully hidden (nothing
173
+ drawn yet); the left edge is the pen-tip about to move right. */
174
+ clip-path: inset(0 100% 0 0);
158
175
  }
159
- 100% {
160
- transform: translate(180%, 180%) scale(1.2);
161
- opacity: 0;
176
+ to {
177
+ /* fully revealed — the mark is wholly drawn. */
178
+ clip-path: inset(0 0 0 0);
162
179
  }
163
180
  }
164
181
 
165
- @media (prefers-reduced-motion: reduce) {
166
- @keyframes sparkle-sweep {
167
- 0%, 100% { opacity: 0; transform: none; }
182
+ /* ── .crayon-wipe — bind the wipe to a scroll view-timeline (D6.c M1) ──────────
183
+ * The scroll-scrubbed draw-on utility. A consumer puts `.crayon-wipe` on a
184
+ * hand-mark surface (the underline span, a drawn rule) and the mark draws/un-draws
185
+ * as it scrolls through its OWN `view()` timeline — a bidirectional scrub, free,
186
+ * off the main thread. The animation is `paused` with `animation-timeline: view()`
187
+ * so the scroll position IS the playhead (the native scroll-driven model — the
188
+ * timeline drives the frame, time does not). The named timeline is overridable
189
+ * (`--crayon-wipe-timeline`, default the element's own `view()`) so a consumer can
190
+ * scrub off a SHARED beat timeline (the §--beat-tl the atlas scroll-driven.css
191
+ * names) instead of the per-element view — that is the "named view-timeline so a
192
+ * consumer scrubs a draw-on bidirectionally" contract.
193
+ *
194
+ * @supports-gated + PRM-OUTER-gated, mirroring scroll-driven.css exactly: the
195
+ * whole binding sits under `prefers-reduced-motion: no-preference`, so under PRM
196
+ * the animation never attaches and the mark renders in its terminal `inset(0)`
197
+ * (fully-drawn) state — the static-draw degrade. The draw range is `entry`-keyed
198
+ * (the mark draws as it ENTERS the lower viewport), tunable via
199
+ * `--crayon-wipe-range-{start,end}`. */
200
+ @media (prefers-reduced-motion: no-preference) {
201
+ @supports ((animation-timeline: view()) and (animation-range: entry)) {
202
+ .crayon-wipe {
203
+ animation: crayon-wipe auto linear both;
204
+ animation-timeline: var(--crayon-wipe-timeline, view(block));
205
+ animation-range: var(--crayon-wipe-range-start, entry 0%)
206
+ var(--crayon-wipe-range-end, cover 35%);
207
+ }
168
208
  }
169
209
  }
170
210
 
211
+ /* ── Sparkle sweep: TOMBSTONE (D6.b — the disco-star excision) ──
212
+ *
213
+ * @deprecated 3.10 — DELETE in 3.11. The four-point `✦` star sweep was the one
214
+ * garish gesture in the library; the user named it for removal ("remove the disco
215
+ * star from all glass-ui elements"). Every in-tree consumer is re-homed: the
216
+ * `btn-audacious` hover affirmation now rides the specular catch-light alone; the
217
+ * gold-CTA rides the `btn-gold-bg-sweep` metal-catch; the chassis `complete`
218
+ * celebration re-homes to the `.text-gilt` one-shot (utilities.css). The keyframe
219
+ * body is EMPTIED rather than deleted for ONE minor so any out-of-tree consumer
220
+ * (the slides decks) fails SOFT — a no-op animation, not an unknown-animation
221
+ * error. The `--duration-sparkle` token is `@deprecated` alongside (tokens.css).
222
+ * Full delete (this block + the token + the theme bridge) lands in 3.11. */
223
+ @keyframes sparkle-sweep {
224
+ /* intentionally empty — tombstoned, see deprecation note above */
225
+ }
226
+
171
227
  /* ── Pulse dot bounce: dots variant of <Pulse> ──
172
228
  *
173
229
  * Three-dot loading indicator. Opacity 0.35 ↔ 1, scale 0.8 ↔ 1.2. Consumer
@@ -38,8 +38,8 @@
38
38
  mints the stacking context once. Longhand maps `translate(x, y)` 1:1. */
39
39
  translate: 0;
40
40
  transition:
41
- translate var(--duration-normal) var(--spring-bouncy),
42
- box-shadow var(--duration-normal) var(--ease-apple);
41
+ translate var(--duration-normal) var(--spring-smooth),
42
+ box-shadow var(--duration-normal) var(--ease-standard);
43
43
 
44
44
  &:hover:not(:disabled) {
45
45
  translate: var(--lift-sm) var(--lift-sm);