@mkbabb/glass-ui 2.0.0 → 3.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 (92) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +9 -0
  3. package/dist/{CommandShortcut-_INFUMu6.js → CommandShortcut-BNDzfFnB.js} +2 -2
  4. package/dist/{ContextMenuSubContent-DCkweFW9.js → ContextMenuSubContent-DLEyeqbh.js} +3 -3
  5. package/dist/{DialogContent-CmCijgX9.js → DialogContent-DSo7PKlU.js} +1 -1
  6. package/dist/{DialogFooter-DRdaCok0.js → DialogFooter-D5KY6sCX.js} +1 -1
  7. package/dist/{Notification-DrI1DT2v.js → Notification-D97JO0fK.js} +2 -2
  8. package/dist/{SelectScrollDownButton-yu8EYUnu.js → SelectScrollDownButton-BwTexKeY.js} +2 -2
  9. package/dist/{Toaster-DY8_jtHv.js → Toaster-CY8gJu9E.js} +69 -58
  10. package/dist/animated-digit.js +1 -1
  11. package/dist/aurora.js +100 -87
  12. package/dist/carousel.js +4 -4
  13. package/dist/{check-dwgetki8.js → check-Nuw7H9Yh.js} +1 -1
  14. package/dist/{chevron-down-DILQA1t6.js → chevron-down-Du2b9vY_.js} +1 -1
  15. package/dist/{chevron-right-fS7fal2t.js → chevron-right-CtDxpE3w.js} +1 -1
  16. package/dist/{chevron-up-BtYjYQOS.js → chevron-up-CenYokvI.js} +1 -1
  17. package/dist/command.js +1 -1
  18. package/dist/components/custom/aurora/composables/runtime.d.ts +24 -1
  19. package/dist/components/custom/sortable-list/SortableHandle.vue.d.ts +1 -1
  20. package/dist/components/custom/toggle-chip/ToggleChip.vue.d.ts +6 -4
  21. package/dist/components/custom/typewriter/TypewriterText.vue.d.ts +1 -1
  22. package/dist/components/ui/drawer/Drawer.vue.d.ts +25 -2
  23. package/dist/components/ui/drawer/DrawerContent.vue.d.ts +12 -1
  24. package/dist/components/ui/drawer/index.d.ts +9 -0
  25. package/dist/components/ui/toast/Toaster.vue.d.ts +7 -1
  26. package/dist/components/ui/toast/index.d.ts +1 -0
  27. package/dist/components/ui/toast/use-toast.d.ts +14 -1
  28. package/dist/composables/dark/index.d.ts +1 -0
  29. package/dist/composables/dom/index.d.ts +1 -0
  30. package/dist/composables/dom/useIdleReady.d.ts +63 -0
  31. package/dist/composables/index.d.ts +1 -0
  32. package/dist/composables/motion/core/index.d.ts +6 -0
  33. package/dist/composables/motion/index.d.ts +0 -7
  34. package/dist/configurator.js +1 -1
  35. package/dist/confirm-dialog.js +1 -1
  36. package/dist/constants-D-8FN28s.js +13 -0
  37. package/dist/context-menu.js +1 -1
  38. package/dist/{createLucideIcon-Bn9a1b70.js → createLucideIcon-rHu18UQW.js} +2 -2
  39. package/dist/dark.d.ts +1 -1
  40. package/dist/dark.js +12 -1
  41. package/dist/dialog.js +2 -2
  42. package/dist/dock.js +1 -1
  43. package/dist/dom.js +2 -2
  44. package/dist/{dropdown-menu-2K-SGkZU.js → dropdown-menu-gHSkffW7.js} +2 -2
  45. package/dist/dropdown-menu.js +1 -1
  46. package/dist/expandable-container.js +2 -2
  47. package/dist/forms.js +2 -2
  48. package/dist/glass-ui.css +1 -1
  49. package/dist/glass-ui.js +139 -115
  50. package/dist/icon-tooltip.js +1 -1
  51. package/dist/keyboard.js +1 -1
  52. package/dist/labeled-field.js +3 -3
  53. package/dist/{minimize-2-LsCJ_eNt.js → minimize-2-C_oyKVwZ.js} +1 -1
  54. package/dist/motion-core.d.ts +1 -0
  55. package/dist/motion-core.js +192 -0
  56. package/dist/motion.js +25 -227
  57. package/dist/notification.js +1 -1
  58. package/dist/responsive-tabs.js +1 -1
  59. package/dist/{search-ocd8tmL9.js → search-7XEx_6hq.js} +1 -1
  60. package/dist/search.js +4 -4
  61. package/dist/select.js +1 -1
  62. package/dist/{sheet-CLVkb3AO.js → sheet-BsBdO5jq.js} +1 -1
  63. package/dist/sheet.js +1 -1
  64. package/dist/sortable-list.js +6 -3
  65. package/dist/status-dot.js +16 -13
  66. package/dist/styles/dock.css +72 -95
  67. package/dist/styles/drawer.css +138 -0
  68. package/dist/styles/index.css +18 -2
  69. package/dist/styles/instrument-chassis.css +28 -1
  70. package/dist/styles/theme.css +3 -0
  71. package/dist/styles/tokens.css +109 -266
  72. package/dist/styles/typography.css +44 -131
  73. package/dist/styles/utilities.css +23 -58
  74. package/dist/toast.js +1 -1
  75. package/dist/{useAnimatedNumber-DcvTR9B4.js → useAnimatedNumber-2l13GibX.js} +9 -20
  76. package/dist/{useConfiguratorState-BlaevW0S.js → useConfiguratorState-BpZi8QJu.js} +5 -5
  77. package/dist/{useBreakpoint-BHlX-MhR.js → useIdleReady-DlzJicQH.js} +29 -1
  78. package/dist/{x-cdWAmO-q.js → x-Cb3NE2Ne.js} +1 -1
  79. package/package.json +12 -5
  80. package/src/styles/dock.css +72 -95
  81. package/src/styles/drawer.css +138 -0
  82. package/src/styles/index.css +14 -2
  83. package/src/styles/instrument-chassis.css +28 -1
  84. package/src/styles/theme.css +3 -0
  85. package/src/styles/tokens.css +109 -266
  86. package/src/styles/typography.css +44 -131
  87. package/src/styles/utilities.css +23 -58
  88. package/dist/composables/motion/useSpringOrchestrator.d.ts +0 -15
  89. /package/dist/{IconTooltip-ge_mBSWR.js → IconTooltip-GIeWdo64.js} +0 -0
  90. /package/dist/{Input-CbakTe3B.js → Input-CBvqW8kZ.js} +0 -0
  91. /package/dist/composables/{motion → dark}/installDarkModeSync.d.ts +0 -0
  92. /package/dist/{useKeyboardShortcuts-B1ev1YEC.js → useKeyboardShortcuts-CPO4AhLx.js} +0 -0
package/dist/aurora.js CHANGED
@@ -144,14 +144,14 @@ var R = {
144
144
  knife: 1,
145
145
  crayon: 2,
146
146
  chunky: 3
147
- }, H = .22, U = .18, W = .992;
148
- function G(e) {
147
+ }, H = .22, U = .18, W = .992, G = .001;
148
+ function K(e) {
149
149
  return e.mode === "capture" ? !0 : e.initStrategy === "eager";
150
150
  }
151
- function K(e) {
151
+ function q(e) {
152
152
  return typeof e.preserveDrawingBuffer == "boolean" ? e.preserveDrawingBuffer : e.mode === "capture";
153
153
  }
154
- function q(e, t, n) {
154
+ function J(e, t, n) {
155
155
  let r = e.createShader(t);
156
156
  if (e.shaderSource(r, n), e.compileShader(r), !e.getShaderParameter(r, e.COMPILE_STATUS)) {
157
157
  let t = e.getShaderInfoLog(r) ?? "unknown";
@@ -159,7 +159,7 @@ function q(e, t, n) {
159
159
  }
160
160
  return r;
161
161
  }
162
- function J(e, t, n) {
162
+ function Y(e, t, n) {
163
163
  let r = e.createProgram();
164
164
  if (e.attachShader(r, t), e.attachShader(r, n), e.linkProgram(r), !e.getProgramParameter(r, e.LINK_STATUS)) {
165
165
  let t = e.getProgramInfoLog(r) ?? "unknown";
@@ -167,9 +167,25 @@ function J(e, t, n) {
167
167
  }
168
168
  return r;
169
169
  }
170
- var Y = /* @__PURE__ */ "uTime.uPalette.uStopCount.uNucleiCount.uNucleiPos.uNucleiRadius.uNucleiPaletteBias.uNucleiValueBias.uNucleiDriftRadius.uNucleiDriftPhase.uNucleiElong.uNucleiAngle.uSoftmaxBeta.uValueVariance.uWarpAmount.uWarpScale.uWarpDrift.uWarpMode.uNoiseOctaves.uMedium.uFlowPattern.uFlowFocal.uFlowAngle.uFlowCurl.uCursor.uCursorStrength.uCursorRadius.uStrokeAmount.uStrokeScale.uStrokeAnisotropy.uStrokeLayers.uStrokeMode.uWetEdge.uGranulation.uImpasto.uBrokenColor.uCanvasGrain.uNucleiDrift.uPaletteDrift.uBreathDepth.uBreathPeriod.uSaturation.uPaperGrain.uAlpha".split(".");
170
+ var ee = /* @__PURE__ */ "uTime.uPalette.uStopCount.uNucleiCount.uNucleiPos.uNucleiRadius.uNucleiPaletteBias.uNucleiValueBias.uNucleiDriftRadius.uNucleiDriftPhase.uNucleiElong.uNucleiAngle.uSoftmaxBeta.uValueVariance.uWarpAmount.uWarpScale.uWarpDrift.uWarpMode.uNoiseOctaves.uMedium.uFlowPattern.uFlowFocal.uFlowAngle.uFlowCurl.uCursor.uCursorStrength.uCursorRadius.uStrokeAmount.uStrokeScale.uStrokeAnisotropy.uStrokeLayers.uStrokeMode.uWetEdge.uGranulation.uImpasto.uBrokenColor.uCanvasGrain.uNucleiDrift.uPaletteDrift.uBreathDepth.uBreathPeriod.uSaturation.uPaperGrain.uAlpha".split(".");
171
171
  function X(e, t, n = {}) {
172
- let r = K(n), i = t, a = n.mode !== "capture", o = typeof window < "u" && window.matchMedia ? window.matchMedia("(prefers-reduced-motion: reduce)").matches : !1, s = performance.now(), c = {
172
+ let r = q(n), i = t, a = /* @__PURE__ */ new Set();
173
+ n.mode === "capture" && a.add("manual");
174
+ let o = () => a.size === 0, s = typeof window < "u" && window.matchMedia ? window.matchMedia("(prefers-reduced-motion: reduce)").matches : !1, c = performance.now(), l = 0, u = null;
175
+ function d(e) {
176
+ let t = o();
177
+ a.add(e), t && !o() && (cancelAnimationFrame(l), l = 0);
178
+ }
179
+ function f(e) {
180
+ let t = !o();
181
+ a.delete(e), t && o() && u && (c = performance.now() - 1e3, u());
182
+ }
183
+ let p = typeof document < "u";
184
+ function m() {
185
+ document.hidden ? d("tab-hidden") : f("tab-hidden");
186
+ }
187
+ p && document.addEventListener("visibilitychange", m);
188
+ let h = {
173
189
  x: .5,
174
190
  y: .5,
175
191
  targetX: .5,
@@ -177,21 +193,21 @@ function X(e, t, n = {}) {
177
193
  strength: 0,
178
194
  targetStrength: 0,
179
195
  radius: .25
180
- }, l = null, u = !1;
181
- function d(e, t, n = .8) {
182
- c.targetX = e, c.targetY = t, c.targetStrength = n;
196
+ }, g = null, _ = !1;
197
+ function b(e, t, n = .8) {
198
+ h.targetX = e, h.targetY = t, h.targetStrength = n, g?.wake();
183
199
  }
184
- function f() {
185
- c.targetStrength = 0;
200
+ function x() {
201
+ h.targetStrength = 0, g?.wake();
186
202
  }
187
- function p(e) {
188
- c.radius = e;
203
+ function S(e) {
204
+ h.radius = e, g?.wake();
189
205
  }
190
- function m(e) {
191
- o = e;
206
+ function C(e) {
207
+ s = e, g?.wake();
192
208
  }
193
- function h() {
194
- if (l || u) return;
209
+ function w() {
210
+ if (g || _) return;
195
211
  let t = e.getContext("webgl2", {
196
212
  antialias: !1,
197
213
  alpha: !0,
@@ -199,12 +215,12 @@ function X(e, t, n = {}) {
199
215
  preserveDrawingBuffer: r
200
216
  });
201
217
  if (!t) throw Error("[Aurora] WebGL2 unavailable");
202
- let n = q(t, t.VERTEX_SHADER, v), d = q(t, t.FRAGMENT_SHADER, y), f = J(t, n, d);
203
- t.useProgram(f);
204
- let p = t.createVertexArray();
205
- t.bindVertexArray(p);
206
- let m = t.createBuffer();
207
- t.bindBuffer(t.ARRAY_BUFFER, m), t.bufferData(t.ARRAY_BUFFER, new Float32Array([
218
+ let n = J(t, t.VERTEX_SHADER, v), a = J(t, t.FRAGMENT_SHADER, y), d = Y(t, n, a);
219
+ t.useProgram(d);
220
+ let f = t.createVertexArray();
221
+ t.bindVertexArray(f);
222
+ let p = t.createBuffer();
223
+ t.bindBuffer(t.ARRAY_BUFFER, p), t.bufferData(t.ARRAY_BUFFER, new Float32Array([
208
224
  -1,
209
225
  -1,
210
226
  3,
@@ -212,19 +228,19 @@ function X(e, t, n = {}) {
212
228
  -1,
213
229
  3
214
230
  ]), t.STATIC_DRAW);
215
- let h = t.getAttribLocation(f, "aPos");
216
- t.enableVertexAttribArray(h), t.vertexAttribPointer(h, 2, t.FLOAT, !1, 0, 0);
217
- let g = {};
218
- for (let e of Y) g[e] = t.getUniformLocation(f, e);
219
- function _() {
231
+ let m = t.getAttribLocation(d, "aPos");
232
+ t.enableVertexAttribArray(m), t.vertexAttribPointer(m, 2, t.FLOAT, !1, 0, 0);
233
+ let b = {};
234
+ for (let e of ee) b[e] = t.getUniformLocation(d, e);
235
+ function x() {
220
236
  let n = Math.min(window.devicePixelRatio || 1, 2), r = e.clientWidth || e.parentElement?.clientWidth || 1, i = e.clientHeight || e.parentElement?.clientHeight || 1, a = Math.max(1, Math.floor(r * n)), o = Math.max(1, Math.floor(i * n));
221
- e.width = a, e.height = o, t.viewport(0, 0, a, o), t.useProgram(f);
237
+ e.width = a, e.height = o, t.viewport(0, 0, a, o), t.useProgram(d);
222
238
  }
223
- let b = new ResizeObserver(() => _());
224
- b.observe(e), requestAnimationFrame(() => {
225
- _(), requestAnimationFrame(_);
239
+ let S = new ResizeObserver(() => x());
240
+ S.observe(e), requestAnimationFrame(() => {
241
+ x(), requestAnimationFrame(x);
226
242
  });
227
- let x = {
243
+ let C = {
228
244
  palette: new Float32Array(24),
229
245
  pos: new Float32Array(12),
230
246
  rad: new Float32Array(6),
@@ -235,71 +251,68 @@ function X(e, t, n = {}) {
235
251
  elong: new Float32Array(6),
236
252
  angle: new Float32Array(6)
237
253
  };
238
- function S(e) {
239
- i = e, t.useProgram(f), j(e.palette, 8, x.palette), t.uniform3fv(g.uPalette, x.palette), t.uniform1i(g.uStopCount, Math.min(e.palette.length, 8));
254
+ function w(e) {
255
+ i = e, t.useProgram(d), j(e.palette, 8, C.palette), t.uniform3fv(b.uPalette, C.palette), t.uniform1i(b.uStopCount, Math.min(e.palette.length, 8));
240
256
  let n = Math.min(e.nuclei.length, 6);
241
- t.uniform1i(g.uNucleiCount, n);
257
+ t.uniform1i(b.uNucleiCount, n);
242
258
  for (let t = 0; t < n; t++) {
243
259
  let n = e.nuclei[t];
244
- x.pos[t * 2 + 0] = n.x, x.pos[t * 2 + 1] = 1 - n.y, x.rad[t] = n.radius, x.pb[t] = n.paletteBias, x.vb[t] = n.valueBias, x.dr[t] = n.driftRadius, x.dp[t] = n.driftPhase, x.elong[t] = n.elongation ?? 1, x.angle[t] = -(n.angle ?? 0) * Math.PI / 180;
260
+ C.pos[t * 2 + 0] = n.x, C.pos[t * 2 + 1] = 1 - n.y, C.rad[t] = n.radius, C.pb[t] = n.paletteBias, C.vb[t] = n.valueBias, C.dr[t] = n.driftRadius, C.dp[t] = n.driftPhase, C.elong[t] = n.elongation ?? 1, C.angle[t] = -(n.angle ?? 0) * Math.PI / 180;
245
261
  }
246
- for (let e = n; e < 6; e++) x.pos[e * 2 + 0] = 0, x.pos[e * 2 + 1] = 0, x.rad[e] = 0, x.pb[e] = 0, x.vb[e] = 0, x.dr[e] = 0, x.dp[e] = 0, x.elong[e] = 1, x.angle[e] = 0;
247
- t.uniform2fv(g.uNucleiPos, x.pos), t.uniform1fv(g.uNucleiRadius, x.rad), t.uniform1fv(g.uNucleiPaletteBias, x.pb), t.uniform1fv(g.uNucleiValueBias, x.vb), t.uniform1fv(g.uNucleiDriftRadius, x.dr), t.uniform1fv(g.uNucleiDriftPhase, x.dp), t.uniform1fv(g.uNucleiElong, x.elong), t.uniform1fv(g.uNucleiAngle, x.angle), t.uniform1f(g.uSoftmaxBeta, e.softmaxBeta), t.uniform1f(g.uValueVariance, e.valueVariance), t.uniform1f(g.uWarpAmount, e.warpAmount), t.uniform1f(g.uWarpScale, e.warpScale), t.uniform1f(g.uWarpDrift, e.warpDrift), t.uniform1i(g.uWarpMode, B[e.warpMode]), t.uniform1i(g.uNoiseOctaves, e.noiseOctaves), t.uniform1i(g.uMedium, R[e.medium]), t.uniform1i(g.uFlowPattern, z[e.flow.pattern]), t.uniform2f(g.uFlowFocal, e.flow.focalX, 1 - e.flow.focalY), t.uniform1f(g.uFlowAngle, e.flow.angle), t.uniform1f(g.uFlowCurl, e.flow.curl), t.uniform2f(g.uCursor, c.x, 1 - c.y), t.uniform1f(g.uCursorStrength, c.strength), t.uniform1f(g.uCursorRadius, c.radius), t.uniform1f(g.uStrokeAmount, e.strokeAmount), t.uniform1f(g.uStrokeScale, e.strokeScale), t.uniform1f(g.uStrokeAnisotropy, e.strokeAnisotropy), t.uniform1i(g.uStrokeLayers, e.strokeLayers), t.uniform1i(g.uStrokeMode, V[e.strokeMode]), t.uniform1f(g.uWetEdge, e.wetEdge), t.uniform1f(g.uGranulation, e.granulation), t.uniform1f(g.uImpasto, e.impasto), t.uniform1f(g.uBrokenColor, e.brokenColor), t.uniform1f(g.uCanvasGrain, e.canvasGrain), t.uniform1f(g.uNucleiDrift, e.nucleiDrift), t.uniform1f(g.uPaletteDrift, e.paletteDrift), t.uniform1f(g.uBreathDepth, e.breathDepth), t.uniform1f(g.uBreathPeriod, e.breathPeriod), t.uniform1f(g.uSaturation, e.saturation), t.uniform1f(g.uPaperGrain, e.paperGrain), t.uniform1f(g.uAlpha, e.alpha);
248
- }
249
- S(i), _(), t.clearColor(0, 0, 0, 0), t.disable(t.DEPTH_TEST), t.enable(t.BLEND), t.blendFunc(t.ONE, t.ONE_MINUS_SRC_ALPHA);
250
- let C = 0;
251
- function w() {
252
- c.x += (c.targetX - c.x) * H, c.y += (c.targetY - c.y) * H, c.strength += (c.targetStrength - c.strength) * U, c.targetStrength *= W;
262
+ for (let e = n; e < 6; e++) C.pos[e * 2 + 0] = 0, C.pos[e * 2 + 1] = 0, C.rad[e] = 0, C.pb[e] = 0, C.vb[e] = 0, C.dr[e] = 0, C.dp[e] = 0, C.elong[e] = 1, C.angle[e] = 0;
263
+ t.uniform2fv(b.uNucleiPos, C.pos), t.uniform1fv(b.uNucleiRadius, C.rad), t.uniform1fv(b.uNucleiPaletteBias, C.pb), t.uniform1fv(b.uNucleiValueBias, C.vb), t.uniform1fv(b.uNucleiDriftRadius, C.dr), t.uniform1fv(b.uNucleiDriftPhase, C.dp), t.uniform1fv(b.uNucleiElong, C.elong), t.uniform1fv(b.uNucleiAngle, C.angle), t.uniform1f(b.uSoftmaxBeta, e.softmaxBeta), t.uniform1f(b.uValueVariance, e.valueVariance), t.uniform1f(b.uWarpAmount, e.warpAmount), t.uniform1f(b.uWarpScale, e.warpScale), t.uniform1f(b.uWarpDrift, e.warpDrift), t.uniform1i(b.uWarpMode, B[e.warpMode]), t.uniform1i(b.uNoiseOctaves, e.noiseOctaves), t.uniform1i(b.uMedium, R[e.medium]), t.uniform1i(b.uFlowPattern, z[e.flow.pattern]), t.uniform2f(b.uFlowFocal, e.flow.focalX, 1 - e.flow.focalY), t.uniform1f(b.uFlowAngle, e.flow.angle), t.uniform1f(b.uFlowCurl, e.flow.curl), t.uniform2f(b.uCursor, h.x, 1 - h.y), t.uniform1f(b.uCursorStrength, h.strength), t.uniform1f(b.uCursorRadius, h.radius), t.uniform1f(b.uStrokeAmount, e.strokeAmount), t.uniform1f(b.uStrokeScale, e.strokeScale), t.uniform1f(b.uStrokeAnisotropy, e.strokeAnisotropy), t.uniform1i(b.uStrokeLayers, e.strokeLayers), t.uniform1i(b.uStrokeMode, V[e.strokeMode]), t.uniform1f(b.uWetEdge, e.wetEdge), t.uniform1f(b.uGranulation, e.granulation), t.uniform1f(b.uImpasto, e.impasto), t.uniform1f(b.uBrokenColor, e.brokenColor), t.uniform1f(b.uCanvasGrain, e.canvasGrain), t.uniform1f(b.uNucleiDrift, e.nucleiDrift), t.uniform1f(b.uPaletteDrift, e.paletteDrift), t.uniform1f(b.uBreathDepth, e.breathDepth), t.uniform1f(b.uBreathPeriod, e.breathPeriod), t.uniform1f(b.uSaturation, e.saturation), t.uniform1f(b.uPaperGrain, e.paperGrain), t.uniform1f(b.uAlpha, e.alpha);
253
264
  }
254
- function T(e) {
255
- t.useProgram(f), t.uniform2f(g.uCursor, c.x, 1 - c.y), t.uniform1f(g.uCursorStrength, c.strength), t.uniform1f(g.uCursorRadius, c.radius), t.uniform1f(g.uTime, e), t.clear(t.COLOR_BUFFER_BIT), t.drawArrays(t.TRIANGLES, 0, 3);
265
+ w(i), x(), t.clearColor(0, 0, 0, 0), t.disable(t.DEPTH_TEST), t.enable(t.BLEND), t.blendFunc(t.ONE, t.ONE_MINUS_SRC_ALPHA);
266
+ function T() {
267
+ h.x += (h.targetX - h.x) * H, h.y += (h.targetY - h.y) * H, h.strength += (h.targetStrength - h.strength) * U, h.targetStrength *= W;
256
268
  }
257
- function E() {
258
- if (!a) return;
259
- let e = o ? 3.7 : (performance.now() - s) / 1e3;
260
- w(), T(e), C = requestAnimationFrame(E);
269
+ function E(e) {
270
+ t.useProgram(d), t.uniform2f(b.uCursor, h.x, 1 - h.y), t.uniform1f(b.uCursorStrength, h.strength), t.uniform1f(b.uCursorRadius, h.radius), t.uniform1f(b.uTime, e), t.clear(t.COLOR_BUFFER_BIT), t.drawArrays(t.TRIANGLES, 0, 3);
261
271
  }
262
- a && (C = requestAnimationFrame(E));
263
- function D(e) {
264
- T(e);
272
+ function D() {
273
+ return s ? !1 : i.nucleiDrift !== 0 || i.paletteDrift !== 0 || i.breathDepth !== 0 || i.warpDrift !== 0 ? !0 : h.targetStrength > G || h.strength > G || Math.abs(h.x - h.targetX) > G || Math.abs(h.y - h.targetY) > G;
265
274
  }
266
275
  function O() {
267
- a = !1, cancelAnimationFrame(C);
276
+ if (!o()) return;
277
+ let e = s ? 3.7 : (performance.now() - c) / 1e3;
278
+ T(), E(e), l = D() ? requestAnimationFrame(O) : 0;
268
279
  }
280
+ u = O, o() && (l = requestAnimationFrame(O));
269
281
  function k() {
270
- a || (a = !0, s = performance.now() - 1e3, E());
282
+ o() && !l && (l = requestAnimationFrame(O));
271
283
  }
272
- function A() {
273
- a = !1, cancelAnimationFrame(C), b.disconnect(), t.deleteProgram(f), t.deleteShader(n), t.deleteShader(d), t.deleteBuffer(m), t.deleteVertexArray(p);
284
+ function A(e) {
285
+ E(e);
286
+ }
287
+ function M() {
288
+ cancelAnimationFrame(l), l = 0, u = null, S.disconnect(), t.deleteProgram(d), t.deleteShader(n), t.deleteShader(a), t.deleteBuffer(p), t.deleteVertexArray(f);
274
289
  let e = t.getExtension("WEBGL_lose_context");
275
290
  e && e.loseContext();
276
291
  }
277
- l = {
278
- setConfig: S,
279
- renderAt: D,
280
- pause: O,
281
- resume: k,
282
- dispose: A
292
+ g = {
293
+ setConfig: w,
294
+ renderAt: A,
295
+ wake: k,
296
+ dispose: M
283
297
  };
284
298
  }
285
- return G(n) && h(), {
286
- arm: h,
299
+ function T() {
300
+ p && document.removeEventListener("visibilitychange", m), a.clear();
301
+ }
302
+ return K(n) && w(), {
303
+ arm: w,
287
304
  update: (e) => {
288
- i = e, l?.setConfig(e);
305
+ i = e, g?.setConfig(e), g?.wake();
289
306
  },
290
- setCursor: d,
291
- clearCursor: f,
292
- setCursorRadius: p,
293
- setReducedMotion: m,
294
- pause: () => {
295
- a = !1, l?.pause();
296
- },
297
- resume: () => {
298
- a = !0, l?.resume();
299
- },
300
- renderAt: (e) => l?.renderAt(e),
307
+ setCursor: b,
308
+ clearCursor: x,
309
+ setCursorRadius: S,
310
+ setReducedMotion: C,
311
+ pause: (e = "manual") => d(e),
312
+ resume: (e = "manual") => f(e),
313
+ renderAt: (e) => g?.renderAt(e),
301
314
  dispose: () => {
302
- l ? l.dispose() : u = !0;
315
+ g ? g.dispose() : _ = !0, T();
303
316
  }
304
317
  };
305
318
  }
@@ -310,7 +323,7 @@ function Z(e) {
310
323
  }
311
324
  //#endregion
312
325
  //#region src/components/custom/aurora/composables/useAurora.ts
313
- function ee(e) {
326
+ function te(e) {
314
327
  if (typeof window > "u") return () => {};
315
328
  if (typeof window.requestIdleCallback == "function") {
316
329
  let t = window.requestIdleCallback(() => e(), { timeout: 2e3 });
@@ -369,12 +382,12 @@ function Q(e, t, n = {}, r = {}) {
369
382
  return;
370
383
  }
371
384
  p = i(e, {
372
- pause: () => s?.pause(),
373
- resume: () => s?.resume()
374
- });
385
+ pause: () => s?.pause("off-screen"),
386
+ resume: () => s?.resume("off-screen")
387
+ }, { pauseWhenHidden: !1 });
375
388
  let r = p.isIntersecting;
376
389
  l = _(r, (e) => {
377
- !e || v || u || (u = ee(() => {
390
+ !e || v || u || (u = te(() => {
378
391
  u = null, r.value && C();
379
392
  }));
380
393
  }, { immediate: !0 });
@@ -400,7 +413,7 @@ function $(e) {
400
413
  }
401
414
  //#endregion
402
415
  //#region src/components/custom/aurora/Aurora.vue
403
- var te = /* @__PURE__ */ e(/* @__PURE__ */ c({
416
+ var ne = /* @__PURE__ */ e(/* @__PURE__ */ c({
404
417
  __name: "Aurora",
405
418
  props: {
406
419
  config: { default: () => r },
@@ -441,7 +454,7 @@ var te = /* @__PURE__ */ e(/* @__PURE__ */ c({
441
454
  }), [["__scopeId", "data-v-80ea8f7d"]]);
442
455
  //#endregion
443
456
  //#region src/components/custom/aurora/composables/useCursorInteraction.ts
444
- function ne(e, t, n) {
457
+ function re(e, t, n) {
445
458
  let r = Z(t), i = n.hitFraction ?? .35, a = null, o = null;
446
459
  function s(e, t) {
447
460
  let n = t.getBoundingClientRect();
@@ -538,4 +551,4 @@ function ne(e, t, n) {
538
551
  }), { isDragging: () => a };
539
552
  }
540
553
  //#endregion
541
- export { te as Aurora, r as DEFAULT_AURORA_CONFIG, t as MAX_NUCLEI, n as MAX_STOPS, X as createAurora, L as cssToOklch, j as flattenPalette, P as hexToOklchStop, N as oklchStopToHex, A as oklchToLinear, M as paletteToCssGradient, $ as resolveRenderMode, Q as useAurora, ne as useCursorInteraction };
554
+ export { ne as Aurora, r as DEFAULT_AURORA_CONFIG, t as MAX_NUCLEI, n as MAX_STOPS, X as createAurora, L as cssToOklch, j as flattenPalette, P as hexToOklchStop, N as oklchStopToHex, A as oklchToLinear, M as paletteToCssGradient, $ as resolveRenderMode, Q as useAurora, re as useCursorInteraction };
package/dist/carousel.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { t as e } from "./cn-DJXf4yaB.js";
2
- import { t } from "./createLucideIcon-Bn9a1b70.js";
3
- import { t as n } from "./chevron-down-DILQA1t6.js";
4
- import { t as r } from "./chevron-right-fS7fal2t.js";
5
- import { t as i } from "./chevron-up-BtYjYQOS.js";
2
+ import { t } from "./createLucideIcon-rHu18UQW.js";
3
+ import { t as n } from "./chevron-down-Du2b9vY_.js";
4
+ import { t as r } from "./chevron-right-CtDxpE3w.js";
5
+ import { t as i } from "./chevron-up-CenYokvI.js";
6
6
  import { n as a } from "./button-BlOW34DT.js";
7
7
  import { Fragment as o, computed as s, createBlock as c, createCommentVNode as l, createElementBlock as u, createElementVNode as d, createVNode as f, defineComponent as p, mergeProps as m, normalizeClass as h, onMounted as g, openBlock as _, ref as v, renderList as y, renderSlot as b, resolveDynamicComponent as x, toDisplayString as S, unref as C, watch as w, withCtx as T } from "vue";
8
8
  import { createInjectionState as E } from "@vueuse/core";
@@ -1,4 +1,4 @@
1
- import { t as e } from "./createLucideIcon-Bn9a1b70.js";
1
+ import { t as e } from "./createLucideIcon-rHu18UQW.js";
2
2
  var t = e("check", [["path", {
3
3
  d: "M20 6 9 17l-5-5",
4
4
  key: "1gmf2c"
@@ -1,4 +1,4 @@
1
- import { t as e } from "./createLucideIcon-Bn9a1b70.js";
1
+ import { t as e } from "./createLucideIcon-rHu18UQW.js";
2
2
  var t = e("chevron-down", [["path", {
3
3
  d: "m6 9 6 6 6-6",
4
4
  key: "qrunsl"
@@ -1,4 +1,4 @@
1
- import { t as e } from "./createLucideIcon-Bn9a1b70.js";
1
+ import { t as e } from "./createLucideIcon-rHu18UQW.js";
2
2
  var t = e("chevron-right", [["path", {
3
3
  d: "m9 18 6-6-6-6",
4
4
  key: "mthhwq"
@@ -1,4 +1,4 @@
1
- import { t as e } from "./createLucideIcon-Bn9a1b70.js";
1
+ import { t as e } from "./createLucideIcon-rHu18UQW.js";
2
2
  var t = e("chevron-up", [["path", {
3
3
  d: "m18 15-6-6-6 6",
4
4
  key: "153udz"
package/dist/command.js CHANGED
@@ -1,2 +1,2 @@
1
- import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c } from "./CommandShortcut-_INFUMu6.js";
1
+ import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c } from "./CommandShortcut-BNDzfFnB.js";
2
2
  export { r as Command, t as CommandDialog, s as CommandEmpty, a as CommandGroup, e as CommandInput, n as CommandItem, o as CommandList, i as CommandSeparator, c as CommandShortcut };
@@ -10,6 +10,18 @@
10
10
  */
11
11
  import { type AuroraConfig, type AuroraInstance } from "../presets";
12
12
  export type AuroraRuntimeMode = "live" | "capture";
13
+ /**
14
+ * The three independent reasons the RAF loop may be suspended. The runtime
15
+ * tracks them in a `Set<SuspendReason>` rather than one boolean, so the loop
16
+ * runs IFF the set is empty and each reason is cleared ONLY by the source that
17
+ * set it. This makes resume-while-still-suspended structurally unreachable — a
18
+ * `resume("tab-hidden")` cannot lift an `"off-screen"` suspension.
19
+ *
20
+ * - `"tab-hidden"` — the runtime's own `document.visibilitychange` owner.
21
+ * - `"off-screen"` — viewport-intersection, driven by `useIntersectionPause`.
22
+ * - `"manual"` — the public `pause()`/`resume()` API (and capture-mode seed).
23
+ */
24
+ export type SuspendReason = "tab-hidden" | "off-screen" | "manual";
13
25
  /**
14
26
  * When the expensive WebGL path (context creation, shader compile + GPU link,
15
27
  * first uniform upload, rAF arm) actually runs.
@@ -51,4 +63,15 @@ export interface AuroraRuntimeOptions {
51
63
  */
52
64
  onInitError?: (err: Error) => void;
53
65
  }
54
- export declare function createAurora(canvas: HTMLCanvasElement, initial: AuroraConfig, options?: AuroraRuntimeOptions): AuroraInstance;
66
+ /**
67
+ * The concrete `createAurora` return shape. It IS an {@link AuroraInstance}
68
+ * (structurally assignable — every member matches) but widens `pause`/`resume`
69
+ * to carry an optional {@link SuspendReason}, defaulting to `"manual"`. The
70
+ * Vue wrapper passes `"off-screen"` for the intersection seam; a bare
71
+ * `pause()`/`resume()` reads identically to the `AuroraInstance` contract.
72
+ */
73
+ export interface AuroraRuntime extends Omit<AuroraInstance, "pause" | "resume"> {
74
+ pause(reason?: SuspendReason): void;
75
+ resume(reason?: SuspendReason): void;
76
+ }
77
+ export declare function createAurora(canvas: HTMLCanvasElement, initial: AuroraConfig, options?: AuroraRuntimeOptions): AuroraRuntime;
@@ -10,7 +10,7 @@
10
10
  * The default slot renders inside the handle — typically a
11
11
  * grip glyph like `⋮⋮`.
12
12
  */
13
- import type { Component } from "vue";
13
+ import { type Component } from "vue";
14
14
  type __VLS_Props = {
15
15
  /** Root element tag. Default `"span"`. */
16
16
  as?: string | Component;
@@ -5,13 +5,15 @@
5
5
  * selectors or `variant="cell"` for square icon + label cards.
6
6
  *
7
7
  * Usage:
8
- * <ToggleChip v-model:pressed="isActive" variant="chip">
8
+ * <ToggleChip v-model="isActive" variant="chip">
9
9
  * Label
10
10
  * </ToggleChip>
11
11
  *
12
- * When multiple chips share an exclusive selection, wire them up via
13
- * `pressed` / `@update:pressed` rather than reaching for ToggleGroup —
14
- * this component is deliberately unopinionated about selection mode.
12
+ * The toggle state is the reka-ui Toggle `modelValue` contract bind it via
13
+ * `v-model` (or `:model-value` / `@update:model-value`). When multiple chips
14
+ * share an exclusive selection, wire them up this way rather than reaching for
15
+ * ToggleGroup — this component is deliberately unopinionated about selection
16
+ * mode.
15
17
  */
16
18
  import type { HTMLAttributes } from "vue";
17
19
  import { type ToggleProps } from "reka-ui";
@@ -59,6 +59,7 @@ declare const __VLS_export: import("vue").DefineComponent<Props, {
59
59
  respectReducedMotion: boolean;
60
60
  text: string;
61
61
  loop: boolean;
62
+ interactive: boolean;
62
63
  words: TypewriterWord[];
63
64
  ngramSize: number | {
64
65
  min: number;
@@ -79,7 +80,6 @@ declare const __VLS_export: import("vue").DefineComponent<Props, {
79
80
  pauseAfterDelete: number;
80
81
  deletingSpeed: number;
81
82
  startDelay: number;
82
- interactive: boolean;
83
83
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
84
84
  declare const _default: typeof __VLS_export;
85
85
  export default _default;
@@ -1,16 +1,36 @@
1
1
  import type { DrawerRootProps } from 'vaul-vue';
2
+ import type { DrawerMode } from './index';
3
+ /**
4
+ * `mode` — additive shorthand (AN.W3). `"modal"` (default) keeps the iOS
5
+ * scale-down look: `shouldScaleBackground: true`, `modal: true`. `"live-behind"`
6
+ * bundles the non-modal peek/half/full bottom-sheet contract — `modal: false`
7
+ * (no focus trap, no page `aria-hidden`, page-behind stays interactive),
8
+ * `shouldScaleBackground: false` (page-behind stays at native size), and the
9
+ * default `snapPoints: [0.12, 0.5, 1]` detent ladder. Every prop the mode sets
10
+ * is still overridable by an explicit prop — `mode` only supplies defaults.
11
+ *
12
+ * NOTE: we do NOT route through `useForwardPropsEmits` here. That helper
13
+ * reflects only props the parent vnode actually passed (plus component-declared
14
+ * defaults), so the values our `resolved` computed derives for keys the consumer
15
+ * did NOT pass (e.g. `modal:false` under `mode="live-behind"`) would be dropped.
16
+ * Binding `resolved` directly + merging emit-as-props is the correct shape for a
17
+ * computed-default wrapper.
18
+ */
19
+ type __VLS_Props = DrawerRootProps & {
20
+ mode?: DrawerMode;
21
+ };
2
22
  declare var __VLS_8: {};
3
23
  type __VLS_Slots = {} & {
4
24
  default?: (props: typeof __VLS_8) => any;
5
25
  };
6
- declare const __VLS_base: import("vue").DefineComponent<DrawerRootProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
26
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
7
27
  close: () => any;
8
28
  drag: (percentageDragged: number) => any;
9
29
  "update:open": (open: boolean) => any;
10
30
  release: (open: boolean) => any;
11
31
  animationEnd: (open: boolean) => any;
12
32
  "update:activeSnapPoint": (val: string | number) => any;
13
- }, string, import("vue").PublicProps, Readonly<DrawerRootProps> & Readonly<{
33
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
14
34
  onClose?: (() => any) | undefined;
15
35
  onDrag?: ((percentageDragged: number) => any) | undefined;
16
36
  "onUpdate:open"?: ((open: boolean) => any) | undefined;
@@ -18,7 +38,10 @@ declare const __VLS_base: import("vue").DefineComponent<DrawerRootProps, {}, {},
18
38
  onAnimationEnd?: ((open: boolean) => any) | undefined;
19
39
  "onUpdate:activeSnapPoint"?: ((val: string | number) => any) | undefined;
20
40
  }>, {
41
+ mode: DrawerMode;
42
+ modal: boolean;
21
43
  shouldScaleBackground: boolean;
44
+ snapPoints: (number | string)[];
22
45
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
23
46
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
24
47
  declare const _default: typeof __VLS_export;
@@ -1,7 +1,16 @@
1
1
  import type { DialogContentProps } from 'reka-ui';
2
2
  import type { HtmlHTMLAttributes } from 'vue';
3
+ /**
4
+ * `showOverlay` — render the scrim (AN.W3). Defaults `true` for the modal
5
+ * sheet. The live-behind pattern (`<Drawer mode="live-behind">`) passes
6
+ * `:show-overlay="false"` so the page-behind stays visible AND interactive;
7
+ * vaul-vue's `modal:false` already drops `disableOutsidePointerEvents`, but a
8
+ * painted scrim would still visually occlude the live verdict, so the overlay
9
+ * is opt-out at the content level.
10
+ */
3
11
  type __VLS_Props = DialogContentProps & {
4
12
  class?: HtmlHTMLAttributes['class'];
13
+ showOverlay?: boolean;
5
14
  };
6
15
  declare var __VLS_19: {};
7
16
  type __VLS_Slots = {} & {
@@ -21,7 +30,9 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
21
30
  onInteractOutside?: ((event: import("reka-ui").PointerDownOutsideEvent | import("reka-ui").FocusOutsideEvent) => any) | undefined;
22
31
  onOpenAutoFocus?: ((event: Event) => any) | undefined;
23
32
  onCloseAutoFocus?: ((event: Event) => any) | undefined;
24
- }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
33
+ }>, {
34
+ showOverlay: boolean;
35
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
25
36
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
26
37
  declare const _default: typeof __VLS_export;
27
38
  export default _default;
@@ -1,4 +1,13 @@
1
1
  export { DrawerPortal, DrawerTrigger, DrawerClose } from 'vaul-vue';
2
+ /**
3
+ * Drawer presentation mode (AN.W3). `"modal"` is the default iOS scale-down
4
+ * sheet (focus-trapped, page `aria-hidden`, page-behind scaled). `"live-behind"`
5
+ * is the non-modal peek/half/full bottom sheet — no focus trap, no page
6
+ * `aria-hidden`, page-behind at native size — bundling the
7
+ * `modal:false` + `shouldScaleBackground:false` + `snapPoints:[0.12,0.5,1]`
8
+ * defaults. Explicit props still override the mode's defaults.
9
+ */
10
+ export type DrawerMode = 'modal' | 'live-behind';
2
11
  export { default as Drawer } from './Drawer.vue';
3
12
  export { default as DrawerOverlay } from './DrawerOverlay.vue';
4
13
  export { default as DrawerContent } from './DrawerContent.vue';
@@ -1,3 +1,9 @@
1
- declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
1
+ export type ToasterPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
2
+ type __VLS_Props = {
3
+ position?: ToasterPosition;
4
+ };
5
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
6
+ position: ToasterPosition;
7
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
2
8
  declare const _default: typeof __VLS_export;
3
9
  export default _default;
@@ -6,3 +6,4 @@ export { default as ToastTitle } from './ToastTitle.vue';
6
6
  export { default as Toaster } from './Toaster.vue';
7
7
  export { toast, useToast } from './use-toast';
8
8
  export type { Toast as ToastType, ToastVariant } from './use-toast';
9
+ export type { ToasterPosition } from './Toaster.vue';
@@ -6,6 +6,12 @@ export interface Toast {
6
6
  description?: string;
7
7
  action?: Component | VNode;
8
8
  variant?: ToastVariant;
9
+ /**
10
+ * Auto-dismiss delay in ms, forwarded to reka-ui's `ToastRoot`. Omit to
11
+ * inherit the `ToastProvider` default; `Number.POSITIVE_INFINITY` keeps the
12
+ * toast open until dismissed.
13
+ */
14
+ duration?: number;
9
15
  }
10
16
  type ToasterToast = Toast & {
11
17
  id: string;
@@ -145,7 +151,14 @@ declare function useToast(): {
145
151
  __file?: string | undefined;
146
152
  __name?: string | undefined;
147
153
  } | undefined;
148
- variant?: ToastVariant | undefined;
154
+ variant?: ToastVariant
155
+ /**
156
+ * Auto-dismiss delay in ms, forwarded to reka-ui's `ToastRoot`. Omit to
157
+ * inherit the `ToastProvider` default; `Number.POSITIVE_INFINITY` keeps the
158
+ * toast open until dismissed.
159
+ */
160
+ | undefined;
161
+ duration?: number | undefined;
149
162
  open?: boolean | undefined;
150
163
  onOpenChange?: ((open: boolean) => void) | undefined;
151
164
  }[]>;
@@ -1 +1,2 @@
1
1
  export { useGlobalDark } from "./useGlobalDark";
2
+ export { installDarkModeSync } from "./installDarkModeSync";
@@ -4,3 +4,4 @@ export * from "./useTokenColor";
4
4
  export * from "./useClipboard";
5
5
  export * from "./useViewportReady";
6
6
  export * from "./useBreakpoint";
7
+ export * from "./useIdleReady";