@elevasis/ui 1.24.2 → 1.25.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 (42) hide show
  1. package/dist/charts/index.js +2 -2
  2. package/dist/{chunk-HOYZWSNV.js → chunk-3EVTCVKR.js} +2 -2
  3. package/dist/{chunk-7TLPKXC2.js → chunk-7RS6VTAV.js} +57 -58
  4. package/dist/{chunk-TQBM3OEW.js → chunk-BS4J2LAW.js} +1 -1
  5. package/dist/{chunk-JR2C4XAN.js → chunk-CYXZHBP4.js} +202 -295
  6. package/dist/{chunk-OH74INP2.js → chunk-FEZZ3IDU.js} +434 -314
  7. package/dist/{chunk-IAZT3VO6.js → chunk-G25YWGUL.js} +4 -1
  8. package/dist/{chunk-KLZB3MNC.js → chunk-HYYI4ZFT.js} +6 -252
  9. package/dist/{chunk-CTF6FS2M.js → chunk-L3GVDMCA.js} +211 -1
  10. package/dist/{chunk-EDAYKRPJ.js → chunk-QDO6NF2I.js} +28 -1
  11. package/dist/{chunk-RNL2IC2Y.js → chunk-QNABH7YG.js} +3 -3
  12. package/dist/{chunk-FATKFO7X.js → chunk-R565P6XC.js} +691 -2
  13. package/dist/{chunk-5266RV46.js → chunk-RIL2CDFE.js} +3 -3
  14. package/dist/{chunk-TML32XBW.js → chunk-RMPXGBNI.js} +2 -2
  15. package/dist/{chunk-N5SDJP44.js → chunk-US4JUSI3.js} +4 -4
  16. package/dist/components/index.d.ts +3006 -193
  17. package/dist/components/index.js +1541 -26
  18. package/dist/features/auth/index.d.ts +108 -9
  19. package/dist/features/dashboard/index.js +8 -8
  20. package/dist/features/monitoring/index.js +19 -9
  21. package/dist/features/operations/index.d.ts +74 -10
  22. package/dist/features/operations/index.js +236 -53
  23. package/dist/features/settings/index.d.ts +108 -9
  24. package/dist/features/settings/index.js +28 -11
  25. package/dist/hooks/index.d.ts +3303 -193
  26. package/dist/hooks/index.js +5 -5
  27. package/dist/hooks/published.d.ts +134 -19
  28. package/dist/hooks/published.js +4 -4
  29. package/dist/index.d.ts +3309 -195
  30. package/dist/index.js +6 -6
  31. package/dist/initialization/index.d.ts +108 -9
  32. package/dist/layout/index.d.ts +60 -3
  33. package/dist/layout/index.js +2 -2
  34. package/dist/profile/index.d.ts +108 -9
  35. package/dist/provider/index.d.ts +6 -2
  36. package/dist/provider/index.js +3 -3
  37. package/dist/provider/published.d.ts +6 -2
  38. package/dist/supabase/index.d.ts +210 -18
  39. package/dist/theme/index.d.ts +6 -2
  40. package/dist/theme/index.js +3 -3
  41. package/dist/types/index.d.ts +108 -9
  42. package/package.json +3 -3
@@ -1,7 +1,118 @@
1
- import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
1
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
2
  import { useComputedColorScheme } from '@mantine/core';
3
3
 
4
- // src/components/layout/backgrounds/PerspectiveGrid.tsx
4
+ // src/components/layout/backgrounds/AmbientBloomGrid.tsx
5
+ var STYLE = `
6
+ .elevasis-ambient-bloom-grid {
7
+ display: none;
8
+ position: fixed;
9
+ inset: 0;
10
+ pointer-events: none;
11
+ overflow: hidden;
12
+ }
13
+ [data-mantine-color-scheme="dark"] .elevasis-ambient-bloom-grid {
14
+ display: block;
15
+ }
16
+ [data-mantine-color-scheme="dark"] .elevasis-ambient-bloom-grid-lobe {
17
+ mix-blend-mode: screen;
18
+ }
19
+ @keyframes elevasis-ambient-bloom-grid-horizon {
20
+ 0%, 100% { transform: translate(0, 0) scale(1); }
21
+ 50% { transform: translate(0, -1.5%) scale(1.05); }
22
+ }
23
+ @keyframes elevasis-ambient-bloom-grid-rim-left {
24
+ 0%, 100% { transform: rotate(68deg) translate(0, 0) scale(1); }
25
+ 50% { transform: rotate(68deg) translate(-2%, 3%) scale(1.06); }
26
+ }
27
+ @keyframes elevasis-ambient-bloom-grid-rim-right {
28
+ 0%, 100% { transform: rotate(-68deg) translate(0, 0) scale(1); }
29
+ 50% { transform: rotate(-68deg) translate(2%, 3%) scale(1.06); }
30
+ }
31
+ @media (prefers-reduced-motion: reduce) {
32
+ .elevasis-ambient-bloom-grid-lobe { animation: none !important; }
33
+ }
34
+ `;
35
+ var HORIZON = { width: 140, height: 85, bottom: -18, left: -20 };
36
+ var RIM = { width: 160, height: 220, top: -100, offset: -75 };
37
+ function AmbientBloomGrid({
38
+ color = "var(--color-primary)",
39
+ intensity = 0.1,
40
+ size = 1
41
+ }) {
42
+ const horizonPct = `${Math.round(intensity * 100)}%`;
43
+ const rimPct = `${Math.round(intensity * 65)}%`;
44
+ const h = {
45
+ width: `${HORIZON.width * size}%`,
46
+ height: `${HORIZON.height * size}%`,
47
+ bottom: `${HORIZON.bottom * size}%`,
48
+ left: `${HORIZON.left * size}%`
49
+ };
50
+ const r = {
51
+ width: `${RIM.width * size}%`,
52
+ height: `${RIM.height * size}%`,
53
+ top: `${RIM.top * size}%`,
54
+ offset: `${RIM.offset * size}%`
55
+ };
56
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
57
+ /* @__PURE__ */ jsx("style", { children: STYLE }),
58
+ /* @__PURE__ */ jsxs("div", { className: "elevasis-ambient-bloom-grid", "aria-hidden": "true", children: [
59
+ /* @__PURE__ */ jsx(
60
+ "div",
61
+ {
62
+ className: "elevasis-ambient-bloom-grid-lobe",
63
+ style: {
64
+ position: "absolute",
65
+ bottom: h.bottom,
66
+ left: h.left,
67
+ width: h.width,
68
+ height: h.height,
69
+ background: `radial-gradient(ellipse 55% 55% at 50% 100%, color-mix(in srgb, ${color} ${horizonPct}, transparent) 0%, transparent 65%)`,
70
+ filter: "blur(80px)",
71
+ animation: "elevasis-ambient-bloom-grid-horizon 30s ease-in-out infinite",
72
+ willChange: "transform",
73
+ transformOrigin: "center center"
74
+ }
75
+ }
76
+ ),
77
+ /* @__PURE__ */ jsx(
78
+ "div",
79
+ {
80
+ className: "elevasis-ambient-bloom-grid-lobe",
81
+ style: {
82
+ position: "absolute",
83
+ top: r.top,
84
+ left: r.offset,
85
+ width: r.width,
86
+ height: r.height,
87
+ background: `radial-gradient(ellipse 35% 55% at center, color-mix(in srgb, ${color} ${rimPct}, transparent) 0%, transparent 62%)`,
88
+ filter: "blur(95px)",
89
+ animation: "elevasis-ambient-bloom-grid-rim-left 38s ease-in-out infinite",
90
+ willChange: "transform",
91
+ transformOrigin: "center center"
92
+ }
93
+ }
94
+ ),
95
+ /* @__PURE__ */ jsx(
96
+ "div",
97
+ {
98
+ className: "elevasis-ambient-bloom-grid-lobe",
99
+ style: {
100
+ position: "absolute",
101
+ top: r.top,
102
+ right: r.offset,
103
+ width: r.width,
104
+ height: r.height,
105
+ background: `radial-gradient(ellipse 35% 55% at center, color-mix(in srgb, ${color} ${rimPct}, transparent) 0%, transparent 62%)`,
106
+ filter: "blur(95px)",
107
+ animation: "elevasis-ambient-bloom-grid-rim-right 34s ease-in-out infinite",
108
+ willChange: "transform",
109
+ transformOrigin: "center center"
110
+ }
111
+ }
112
+ )
113
+ ] })
114
+ ] });
115
+ }
5
116
  var SUBTLE_DEFAULT_GLOW = "color-mix(in srgb, color-mix(in srgb, var(--color-primary) 20%, var(--color-border)) 30%, transparent)";
6
117
  var PROMINENT_DEFAULT_GLOW = "color-mix(in srgb, var(--color-primary) 22%, transparent)";
7
118
  function PerspectiveGrid({
@@ -285,238 +396,111 @@ function AppBackground({ children }) {
285
396
  children
286
397
  ] });
287
398
  }
399
+ var MOTE_COUNT = 4;
288
400
  var randRange = (min, max) => min + Math.random() * (max - min);
289
- var FLUX_SPARKS = Array.from({ length: 30 }, () => {
290
- const duration = randRange(12, 70);
291
- const pulse = randRange(0.8, 2.2);
401
+ var MOTES = Array.from({ length: MOTE_COUNT }, () => {
402
+ const size = randRange(2, 16);
403
+ const duration = randRange(50, 90);
292
404
  return {
293
405
  left: randRange(0, 100),
294
- size: randRange(1.5, 4.2),
295
- duration,
296
- delay: -randRange(0, duration),
297
- drift: randRange(-35, 35),
298
- peak: randRange(0.18, 0.5),
299
- pulse,
300
- pulseDelay: -randRange(0, pulse)
301
- };
302
- });
303
- var FLUX_MOTES = Array.from({ length: 18 }, () => {
304
- const duration = randRange(18, 90);
305
- const pulse = randRange(1.6, 4);
306
- return {
307
- left: randRange(-2, 102),
308
- size: randRange(3.5, 10),
309
- duration,
310
- delay: -randRange(0, duration),
311
- drift: randRange(-55, 55),
312
- blur: randRange(1.5, 5),
313
- peak: randRange(0.22, 0.55),
314
- pulse,
315
- pulseDelay: -randRange(0, pulse)
316
- };
317
- });
318
- var FLUX_GLOWS = Array.from({ length: 10 }, () => {
319
- const duration = randRange(25, 130);
320
- const pulse = randRange(3.5, 7);
321
- return {
322
- left: randRange(-5, 105),
323
- size: randRange(3, 22),
406
+ size,
407
+ blur: size / 2,
324
408
  duration,
325
409
  delay: -randRange(0, duration),
326
- drift: randRange(-80, 80),
327
- blur: randRange(6, 16),
328
- opacity: randRange(0.18, 0.42),
329
- pulse,
330
- pulseDelay: -randRange(0, pulse)
410
+ drift: randRange(-22, 22),
411
+ pulse: randRange(3, 9),
412
+ pulseDelay: -randRange(0, 5)
331
413
  };
332
414
  });
333
- var KEYFRAMES4 = `
334
- @keyframes elevasis-cyber-spark-rise {
335
- 0% { transform: translate3d(0, 0, 0); opacity: 0; }
336
- 10% { opacity: var(--cy-peak, 1); }
337
- 85% { opacity: calc(var(--cy-peak, 1) * 0.9); }
338
- 100% { transform: translate3d(var(--cy-drift, 0px), -112vh, 0); opacity: 0; }
339
- }
340
- @keyframes elevasis-cyber-spark-pulse {
341
- 0%, 100% { filter: brightness(0.55); transform: scale(0.8); }
342
- 50% { filter: brightness(1.7); transform: scale(1.25); }
343
- }
344
- @keyframes elevasis-cyber-glow-pulse {
345
- 0%, 100% { transform: scale(0.85); }
346
- 50% { transform: scale(1.2); }
347
- }
348
- @media (prefers-reduced-motion: reduce) {
349
- .elevasis-cyber-spark,
350
- .elevasis-cyber-spark-inner,
351
- .elevasis-cyber-glow,
352
- .elevasis-cyber-glow-inner {
353
- animation: none !important;
415
+ var STYLE2 = `
416
+ @keyframes elevasis-mote-rise {
417
+ 0% { transform: translate3d(0, 0, 0); opacity: 0; }
418
+ 12% { opacity: 1; }
419
+ 70% { opacity: 0.85; }
420
+ 100% { transform: translate3d(var(--mote-drift, 0px), -85vh, 0); opacity: 0; }
421
+ }
422
+ @keyframes elevasis-mote-pulse {
423
+ 0%, 100% {
424
+ transform: scale(0.75);
425
+ filter: blur(var(--mote-blur, 2px)) brightness(0.8);
426
+ }
427
+ 50% {
428
+ transform: scale(1.35);
429
+ filter: blur(calc(var(--mote-blur, 2px) * 1.4)) brightness(1.4);
430
+ }
354
431
  }
355
- .elevasis-cyber-spark,
356
- .elevasis-cyber-glow {
357
- opacity: 0 !important;
432
+ @media (prefers-reduced-motion: reduce) {
433
+ .elevasis-floating-mote,
434
+ .elevasis-floating-mote-inner {
435
+ animation: none;
436
+ }
437
+ .elevasis-floating-mote {
438
+ opacity: 0;
439
+ }
358
440
  }
359
- }
360
441
  `;
361
- function FluxGlows() {
362
- return /* @__PURE__ */ jsx(Fragment, { children: FLUX_GLOWS.map((g, i) => /* @__PURE__ */ jsx(
363
- "div",
364
- {
365
- className: "elevasis-cyber-glow",
366
- style: {
367
- position: "absolute",
368
- bottom: "-5%",
369
- left: `${g.left}%`,
370
- width: `${g.size}px`,
371
- height: `${g.size}px`,
372
- filter: `blur(${g.blur}px)`,
373
- animation: `elevasis-cyber-spark-rise ${g.duration}s linear infinite`,
374
- animationDelay: `${g.delay}s`,
375
- ["--cy-drift"]: `${g.drift}px`,
376
- ["--cy-peak"]: `${g.opacity}`,
377
- willChange: "transform, opacity"
378
- },
379
- children: /* @__PURE__ */ jsx(
380
- "div",
381
- {
382
- className: "elevasis-cyber-glow-inner",
383
- style: {
384
- width: "100%",
385
- height: "100%",
386
- borderRadius: "50%",
387
- background: `radial-gradient(circle, var(--color-primary) 0%, color-mix(in srgb, var(--color-primary) 60%, transparent) 45%, transparent 75%)`,
388
- animation: `elevasis-cyber-glow-pulse ${g.pulse}s ease-in-out infinite`,
389
- animationDelay: `${g.pulseDelay}s`,
390
- willChange: "transform"
391
- }
392
- }
393
- )
394
- },
395
- i
396
- )) });
397
- }
398
- function FluxMotes() {
399
- return /* @__PURE__ */ jsx(Fragment, { children: FLUX_MOTES.map((m, i) => /* @__PURE__ */ jsx(
400
- "div",
401
- {
402
- className: "elevasis-cyber-spark",
403
- style: {
404
- position: "absolute",
405
- bottom: "-3%",
406
- left: `${m.left}%`,
407
- width: `${m.size}px`,
408
- height: `${m.size}px`,
409
- filter: `blur(${m.blur}px)`,
410
- animation: `elevasis-cyber-spark-rise ${m.duration}s linear infinite`,
411
- animationDelay: `${m.delay}s`,
412
- ["--cy-drift"]: `${m.drift}px`,
413
- ["--cy-peak"]: `${m.peak}`,
414
- willChange: "transform, opacity"
415
- },
416
- children: /* @__PURE__ */ jsx(
417
- "div",
418
- {
419
- className: "elevasis-cyber-spark-inner",
420
- style: {
421
- width: "100%",
422
- height: "100%",
423
- borderRadius: "50%",
424
- background: `radial-gradient(circle, var(--color-primary) 0%, color-mix(in srgb, var(--color-primary) 70%, transparent) 55%, transparent 90%)`,
425
- boxShadow: `0 0 ${m.size * 1.2}px color-mix(in srgb, var(--color-primary) 40%, transparent)`,
426
- animation: `elevasis-cyber-spark-pulse ${m.pulse}s ease-in-out infinite`,
427
- animationDelay: `${m.pulseDelay}s`,
428
- willChange: "transform, filter"
429
- }
430
- }
431
- )
432
- },
433
- i
434
- )) });
435
- }
436
- function FluxSparks() {
437
- return /* @__PURE__ */ jsx(Fragment, { children: FLUX_SPARKS.map((s, i) => /* @__PURE__ */ jsx(
438
- "div",
439
- {
440
- className: "elevasis-cyber-spark",
441
- style: {
442
- position: "absolute",
443
- bottom: "-2%",
444
- left: `${s.left}%`,
445
- width: `${s.size}px`,
446
- height: `${s.size}px`,
447
- animation: `elevasis-cyber-spark-rise ${s.duration}s linear infinite`,
448
- animationDelay: `${s.delay}s`,
449
- ["--cy-drift"]: `${s.drift}px`,
450
- ["--cy-peak"]: `${s.peak}`,
451
- willChange: "transform, opacity"
452
- },
453
- children: /* @__PURE__ */ jsx(
454
- "div",
455
- {
456
- className: "elevasis-cyber-spark-inner",
457
- style: {
458
- width: "100%",
459
- height: "100%",
460
- borderRadius: "50%",
461
- background: "var(--color-primary)",
462
- boxShadow: `0 0 ${s.size * 2.5}px var(--color-primary), 0 0 ${s.size * 5}px color-mix(in srgb, var(--color-primary) 50%, transparent)`,
463
- animation: `elevasis-cyber-spark-pulse ${s.pulse}s ease-in-out infinite`,
464
- animationDelay: `${s.pulseDelay}s`,
465
- willChange: "transform, filter"
442
+ function FloatingMotes({
443
+ coreColor = "var(--color-primary)",
444
+ haloColor = "color-mix(in srgb, var(--color-primary) 35%, transparent)",
445
+ bottom = "0"
446
+ }) {
447
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
448
+ /* @__PURE__ */ jsx("style", { children: STYLE2 }),
449
+ /* @__PURE__ */ jsx("div", { "aria-hidden": "true", style: { position: "absolute", inset: 0, pointerEvents: "none", overflow: "hidden" }, children: MOTES.map((mote, i) => /* @__PURE__ */ jsx(
450
+ "div",
451
+ {
452
+ className: "elevasis-floating-mote",
453
+ style: {
454
+ position: "absolute",
455
+ bottom,
456
+ left: `${mote.left}%`,
457
+ width: `${mote.size}px`,
458
+ height: `${mote.size}px`,
459
+ opacity: 0,
460
+ transform: "translate3d(0, 0, 0)",
461
+ animation: `elevasis-mote-rise ${mote.duration}s ease-in-out infinite`,
462
+ animationDelay: `${mote.delay}s`,
463
+ willChange: "transform, opacity",
464
+ ["--mote-drift"]: `${mote.drift}px`,
465
+ ["--mote-blur"]: `${mote.blur}px`
466
+ },
467
+ children: /* @__PURE__ */ jsx(
468
+ "div",
469
+ {
470
+ className: "elevasis-floating-mote-inner",
471
+ style: {
472
+ width: "100%",
473
+ height: "100%",
474
+ borderRadius: "50%",
475
+ background: `radial-gradient(circle, ${coreColor} 0%, ${haloColor} 45%, transparent 75%)`,
476
+ filter: `blur(${mote.blur}px)`,
477
+ animation: `elevasis-mote-pulse ${mote.pulse}s ease-in-out infinite`,
478
+ animationDelay: `${mote.pulseDelay}s`,
479
+ willChange: "transform, filter"
480
+ }
466
481
  }
467
- }
468
- )
469
- },
470
- i
471
- )) });
472
- }
473
- function CyberParticles({ variant: _variant, className }) {
474
- return /* @__PURE__ */ jsxs(
475
- "div",
476
- {
477
- className,
478
- "aria-hidden": "true",
479
- style: {
480
- position: "absolute",
481
- inset: 0,
482
- pointerEvents: "none",
483
- overflow: "hidden"
482
+ )
484
483
  },
485
- children: [
486
- /* @__PURE__ */ jsx("style", { children: KEYFRAMES4 }),
487
- /* @__PURE__ */ jsx(FluxGlows, {}),
488
- /* @__PURE__ */ jsx(FluxMotes, {}),
489
- /* @__PURE__ */ jsx(FluxSparks, {})
490
- ]
491
- }
492
- );
484
+ i
485
+ )) })
486
+ ] });
493
487
  }
494
- function CyberBackground({ variant }) {
495
- const glowColor = variant === "chrome" ? void 0 : variant === "volt" || variant === "void" ? "color-mix(in srgb, var(--color-primary) 25%, transparent)" : "color-mix(in srgb, var(--color-primary) 35%, transparent)";
488
+ function CyberBackground({
489
+ variant,
490
+ perspectiveGridRadialGlowIntensity
491
+ }) {
492
+ const defaultIntensity = variant === "chrome" ? 22 : variant === "void" ? 24 : variant === "volt" ? 25 : 28;
493
+ const intensity = perspectiveGridRadialGlowIntensity ?? defaultIntensity;
494
+ const glowColor = `color-mix(in srgb, var(--color-primary) ${intensity}%, transparent)`;
496
495
  return /* @__PURE__ */ jsxs(Fragment, { children: [
497
496
  /* @__PURE__ */ jsx(PerspectiveGrid, { lineColor: "var(--color-border)", prominentGlow: true, glowColor }),
498
497
  /* @__PURE__ */ jsx(RadiantGlow, {}),
499
498
  /* @__PURE__ */ jsx(FloatingOrbs, {}),
500
- /* @__PURE__ */ jsx(CyberParticles, { variant }),
499
+ /* @__PURE__ */ jsx(FloatingMotes, {}),
501
500
  /* @__PURE__ */ jsx(FilmGrain, {})
502
501
  ] });
503
502
  }
504
- var MOTE_COUNT = 24;
505
- var randRange2 = (min, max) => min + Math.random() * (max - min);
506
- var MOTES = Array.from({ length: MOTE_COUNT }, () => {
507
- const size = randRange2(2, 16);
508
- return {
509
- left: randRange2(0, 100),
510
- size,
511
- blur: size / 2,
512
- duration: randRange2(28, 52),
513
- delay: -randRange2(0, 35),
514
- drift: randRange2(-22, 22),
515
- pulse: randRange2(3, 9),
516
- pulseDelay: -randRange2(0, 5)
517
- };
518
- });
519
- var STYLE = `
503
+ var STYLE3 = `
520
504
  div[style*="var(--color-background)"][style*="100vh"] {
521
505
  background-color: transparent !important;
522
506
  isolation: isolate;
@@ -620,76 +604,16 @@ var STYLE = `
620
604
  .wavy-bg-wave-front {
621
605
  fill: var(--wavy-wave-front);
622
606
  }
623
- .wavy-bg-motes {
624
- position: absolute;
625
- inset: 0;
626
- pointer-events: none;
627
- }
628
- .wavy-bg-mote {
629
- position: absolute;
630
- bottom: 18%;
631
- opacity: 0;
632
- transform: translate3d(0, 0, 0);
633
- animation: wavy-mote-rise var(--mote-duration, 32s) ease-in-out infinite;
634
- animation-delay: var(--mote-delay, 0s);
635
- will-change: transform, opacity;
636
- }
637
- .wavy-bg-mote-inner {
638
- width: var(--mote-size, 4px);
639
- height: var(--mote-size, 4px);
640
- border-radius: 50%;
641
- background: radial-gradient(
642
- circle,
643
- var(--wavy-mote-core) 0%,
644
- var(--wavy-mote-halo) 45%,
645
- transparent 75%
646
- );
647
- filter: blur(var(--mote-blur, 2px));
648
- animation: wavy-mote-pulse var(--mote-pulse, 5s) ease-in-out infinite;
649
- animation-delay: var(--mote-pulse-delay, 0s);
650
- will-change: transform, filter;
651
- }
652
- @keyframes wavy-mote-rise {
653
- 0% {
654
- transform: translate3d(0, 0, 0);
655
- opacity: 0;
656
- }
657
- 12% {
658
- opacity: 1;
659
- }
660
- 70% {
661
- opacity: 0.85;
662
- }
663
- 100% {
664
- transform: translate3d(var(--mote-drift, 0px), -85vh, 0);
665
- opacity: 0;
666
- }
667
- }
668
- @keyframes wavy-mote-pulse {
669
- 0%, 100% {
670
- transform: scale(0.75);
671
- filter: blur(var(--mote-blur, 2px)) brightness(0.8);
672
- }
673
- 50% {
674
- transform: scale(1.35);
675
- filter: blur(calc(var(--mote-blur, 2px) * 1.4)) brightness(1.4);
676
- }
677
- }
678
607
  @media (prefers-reduced-motion: reduce) {
679
608
  .wavy-bg-layer-back,
680
- .wavy-bg-layer-front,
681
- .wavy-bg-mote,
682
- .wavy-bg-mote-inner {
609
+ .wavy-bg-layer-front {
683
610
  animation: none;
684
611
  }
685
- .wavy-bg-mote {
686
- opacity: 0;
687
- }
688
612
  }
689
613
  `;
690
614
  function WaveBackground({ variant }) {
691
615
  return /* @__PURE__ */ jsxs(Fragment, { children: [
692
- /* @__PURE__ */ jsx("style", { children: STYLE }),
616
+ /* @__PURE__ */ jsx("style", { children: STYLE3 }),
693
617
  /* @__PURE__ */ jsxs("div", { className: "wavy-bg-root", "data-variant": variant, children: [
694
618
  /* @__PURE__ */ jsx("div", { className: "wavy-bg-layer wavy-bg-layer-back", children: /* @__PURE__ */ jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 3200 900", preserveAspectRatio: "none", children: /* @__PURE__ */ jsx(
695
619
  "path",
@@ -705,26 +629,9 @@ function WaveBackground({ variant }) {
705
629
  d: "M0,640 C280,540 520,560 820,680 C1100,790 1340,760 1600,640 C1880,540 2120,560 2420,680 C2700,790 2940,760 3200,640 L3200,900 L0,900 Z"
706
630
  }
707
631
  ) }) }),
708
- /* @__PURE__ */ jsx("div", { className: "wavy-bg-motes", "aria-hidden": "true", children: MOTES.map((mote, i) => /* @__PURE__ */ jsx(
709
- "div",
710
- {
711
- className: "wavy-bg-mote",
712
- style: {
713
- left: `${mote.left}%`,
714
- ["--mote-size"]: `${mote.size}px`,
715
- ["--mote-blur"]: `${mote.blur}px`,
716
- ["--mote-duration"]: `${mote.duration}s`,
717
- ["--mote-delay"]: `${mote.delay}s`,
718
- ["--mote-drift"]: `${mote.drift}px`,
719
- ["--mote-pulse"]: `${mote.pulse}s`,
720
- ["--mote-pulse-delay"]: `${mote.pulseDelay}s`
721
- },
722
- children: /* @__PURE__ */ jsx("div", { className: "wavy-bg-mote-inner" })
723
- },
724
- i
725
- )) })
632
+ /* @__PURE__ */ jsx(FloatingMotes, { coreColor: "var(--wavy-mote-core)", haloColor: "var(--wavy-mote-halo)", bottom: "18%" })
726
633
  ] })
727
634
  ] });
728
635
  }
729
636
 
730
- export { AppBackground, CyberBackground, CyberParticles, FilmGrain, FloatingOrbs, PerspectiveGrid, RadiantGlow, WaveBackground };
637
+ export { AmbientBloomGrid, AppBackground, CyberBackground, FilmGrain, FloatingMotes, FloatingOrbs, PerspectiveGrid, RadiantGlow, WaveBackground };