@elevasis/ui 2.41.0 → 2.42.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 (95) hide show
  1. package/dist/api/index.js +4 -6
  2. package/dist/app/index.css +384 -0
  3. package/dist/app/index.d.ts +5 -1
  4. package/dist/app/index.js +17 -26
  5. package/dist/auth/index.css +659 -0
  6. package/dist/auth/index.js +19 -5
  7. package/dist/charts/index.css +533 -0
  8. package/dist/charts/index.js +18 -14
  9. package/dist/{chunk-JAN2ZXN5.js → chunk-3MTAHV5M.js} +28535 -18021
  10. package/dist/{chunk-73EWE2EW.js → chunk-EDVZ3AHA.js} +1 -1
  11. package/dist/chunk-GMXGDO3I.js +244 -0
  12. package/dist/{chunk-CXY7FMUM.js → chunk-GUKY77FJ.js} +50 -4
  13. package/dist/{chunk-TE4P6OSJ.js → chunk-MA7YCY7C.js} +1 -1
  14. package/dist/{chunk-5JYKCULK.js → chunk-NZ2F5RQ4.js} +44 -2
  15. package/dist/{chunk-WF7CONXF.js → chunk-OJJK27GC.js} +658 -6
  16. package/dist/chunk-YEGMSADG.js +1781 -0
  17. package/dist/components/chat/index.js +1 -2
  18. package/dist/components/index.css +149 -149
  19. package/dist/components/index.d.ts +5 -1
  20. package/dist/components/index.js +13 -36
  21. package/dist/components/navigation/index.css +659 -0
  22. package/dist/components/navigation/index.js +25 -3
  23. package/dist/features/auth/index.js +14 -37
  24. package/dist/features/clients/index.css +149 -149
  25. package/dist/features/clients/index.js +13 -36
  26. package/dist/features/crm/index.js +13 -36
  27. package/dist/features/dashboard/index.d.ts +5 -1
  28. package/dist/features/dashboard/index.js +13 -36
  29. package/dist/features/delivery/index.js +13 -36
  30. package/dist/features/knowledge/index.css +659 -0
  31. package/dist/features/knowledge/index.js +25 -247
  32. package/dist/features/lead-gen/index.d.ts +5 -1
  33. package/dist/features/lead-gen/index.js +13 -36
  34. package/dist/features/monitoring/index.js +13 -36
  35. package/dist/features/monitoring/requests/index.js +19 -149
  36. package/dist/features/operations/index.d.ts +5 -1
  37. package/dist/features/operations/index.js +13 -36
  38. package/dist/features/seo/index.js +1 -4
  39. package/dist/features/settings/index.js +13 -36
  40. package/dist/hooks/access/index.css +659 -0
  41. package/dist/hooks/access/index.js +19 -4
  42. package/dist/hooks/delivery/index.js +13 -36
  43. package/dist/hooks/index.d.ts +5 -1
  44. package/dist/hooks/index.js +13 -36
  45. package/dist/hooks/operations/command-view/utils/transformCommandViewData.d.ts +5 -1
  46. package/dist/hooks/published.d.ts +5 -1
  47. package/dist/hooks/published.js +13 -36
  48. package/dist/index.d.ts +5 -1
  49. package/dist/index.js +14 -37
  50. package/dist/initialization/index.js +1 -1
  51. package/dist/knowledge/index.css +659 -0
  52. package/dist/knowledge/index.d.ts +5 -1
  53. package/dist/knowledge/index.js +25 -15
  54. package/dist/layout/index.css +659 -0
  55. package/dist/layout/index.js +24 -9
  56. package/dist/organization/index.js +13 -36
  57. package/dist/provider/index.css +384 -0
  58. package/dist/provider/index.d.ts +5 -1
  59. package/dist/provider/index.js +18 -21
  60. package/dist/provider/published.css +533 -0
  61. package/dist/provider/published.d.ts +5 -1
  62. package/dist/provider/published.js +18 -16
  63. package/dist/test-utils/index.js +4 -6
  64. package/dist/theme/index.js +2 -5
  65. package/dist/theme/presets/index.js +1 -2
  66. package/dist/types/index.d.ts +5 -1
  67. package/dist/utils/index.d.ts +5 -1
  68. package/dist/utils/index.js +1 -3
  69. package/package.json +3 -3
  70. package/dist/chunk-3KMDHCAR.js +0 -52
  71. package/dist/chunk-4DRI3G36.js +0 -1016
  72. package/dist/chunk-56O7QQE7.js +0 -356
  73. package/dist/chunk-5EYJ2GIN.js +0 -122
  74. package/dist/chunk-66U7JOWV.js +0 -425
  75. package/dist/chunk-6D4LCJ52.js +0 -10
  76. package/dist/chunk-6ROXVZ3L.js +0 -9
  77. package/dist/chunk-A2XN6PR2.js +0 -111
  78. package/dist/chunk-B2DZLPDL.js +0 -39
  79. package/dist/chunk-CLDCYJQT.js +0 -1
  80. package/dist/chunk-CTJBPF3Z.js +0 -734
  81. package/dist/chunk-DT3QYZVU.js +0 -23
  82. package/dist/chunk-FIMGOWOT.js +0 -3644
  83. package/dist/chunk-IIMU5YAJ.js +0 -53
  84. package/dist/chunk-JHVEA5NE.js +0 -133
  85. package/dist/chunk-L7GXUSCV.js +0 -215
  86. package/dist/chunk-NYBEU5TE.js +0 -118
  87. package/dist/chunk-QVQMOQXB.js +0 -1240
  88. package/dist/chunk-RH5VWWSC.js +0 -624
  89. package/dist/chunk-RXH4D6TY.js +0 -801
  90. package/dist/chunk-S4R2ZQS7.js +0 -2131
  91. package/dist/chunk-TYRUKGGD.js +0 -46
  92. package/dist/chunk-VAAU2Z3S.js +0 -85
  93. package/dist/chunk-WLOQ4IBG.js +0 -654
  94. package/dist/chunk-X4WBGKJQ.js +0 -138
  95. package/dist/chunk-YPWN2WQ3.js +0 -340
@@ -1,7 +1,7 @@
1
- import { AppBackground, AmbientBloomGrid, CyberBackground, WaveBackground, FloatingMotes } from './chunk-WLOQ4IBG.js';
2
1
  import { z } from 'zod';
3
2
  import { createElement, Fragment, useRef, useEffect } from 'react';
4
3
  import { jsxs, Fragment as Fragment$1, jsx } from 'react/jsx-runtime';
4
+ import { useComputedColorScheme } from '@mantine/core';
5
5
 
6
6
  // src/theme/presets/utils.ts
7
7
  function hexToRgb(hex) {
@@ -64,6 +64,410 @@ function generateShades(hex) {
64
64
  ];
65
65
  return targets.map((tl) => hslToHex(h, s, tl));
66
66
  }
67
+ var STYLE = `
68
+ .elevasis-ambient-bloom-grid {
69
+ display: none;
70
+ position: fixed;
71
+ inset: 0;
72
+ pointer-events: none;
73
+ overflow: hidden;
74
+ }
75
+ [data-mantine-color-scheme="dark"] .elevasis-ambient-bloom-grid {
76
+ display: block;
77
+ }
78
+ [data-mantine-color-scheme="dark"] .elevasis-ambient-bloom-grid-lobe {
79
+ mix-blend-mode: screen;
80
+ }
81
+ @keyframes elevasis-ambient-bloom-grid-horizon {
82
+ 0%, 100% { transform: translate(0, 0) scale(1); }
83
+ 50% { transform: translate(0, -1.5%) scale(1.05); }
84
+ }
85
+ @keyframes elevasis-ambient-bloom-grid-rim-left {
86
+ 0%, 100% { transform: rotate(68deg) translate(0, 0) scale(1); }
87
+ 50% { transform: rotate(68deg) translate(-2%, 3%) scale(1.06); }
88
+ }
89
+ @keyframes elevasis-ambient-bloom-grid-rim-right {
90
+ 0%, 100% { transform: rotate(-68deg) translate(0, 0) scale(1); }
91
+ 50% { transform: rotate(-68deg) translate(2%, 3%) scale(1.06); }
92
+ }
93
+ @media (prefers-reduced-motion: reduce) {
94
+ .elevasis-ambient-bloom-grid-lobe { animation: none !important; }
95
+ }
96
+ `;
97
+ var HORIZON = { width: 140, height: 85, bottom: -18, left: -20 };
98
+ var RIM = { width: 160, height: 220, top: -100, offset: -75 };
99
+ function AmbientBloomGrid({
100
+ color = "var(--color-primary)",
101
+ intensity = 0.1,
102
+ size = 1
103
+ }) {
104
+ const horizonPct = `${Math.round(intensity * 100)}%`;
105
+ const rimPct = `${Math.round(intensity * 65)}%`;
106
+ const h = {
107
+ width: `${HORIZON.width * size}%`,
108
+ height: `${HORIZON.height * size}%`,
109
+ bottom: `${HORIZON.bottom * size}%`,
110
+ left: `${HORIZON.left * size}%`
111
+ };
112
+ const r = {
113
+ width: `${RIM.width * size}%`,
114
+ height: `${RIM.height * size}%`,
115
+ top: `${RIM.top * size}%`,
116
+ offset: `${RIM.offset * size}%`
117
+ };
118
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [
119
+ /* @__PURE__ */ jsx("style", { children: STYLE }),
120
+ /* @__PURE__ */ jsxs("div", { className: "elevasis-ambient-bloom-grid", "aria-hidden": "true", children: [
121
+ /* @__PURE__ */ jsx(
122
+ "div",
123
+ {
124
+ className: "elevasis-ambient-bloom-grid-lobe",
125
+ style: {
126
+ position: "absolute",
127
+ bottom: h.bottom,
128
+ left: h.left,
129
+ width: h.width,
130
+ height: h.height,
131
+ background: `radial-gradient(ellipse 55% 55% at 50% 100%, color-mix(in srgb, ${color} ${horizonPct}, transparent) 0%, transparent 65%)`,
132
+ filter: "blur(80px)",
133
+ animation: "elevasis-ambient-bloom-grid-horizon 30s ease-in-out infinite",
134
+ willChange: "transform",
135
+ transformOrigin: "center center"
136
+ }
137
+ }
138
+ ),
139
+ /* @__PURE__ */ jsx(
140
+ "div",
141
+ {
142
+ className: "elevasis-ambient-bloom-grid-lobe",
143
+ style: {
144
+ position: "absolute",
145
+ top: r.top,
146
+ left: r.offset,
147
+ width: r.width,
148
+ height: r.height,
149
+ background: `radial-gradient(ellipse 35% 55% at center, color-mix(in srgb, ${color} ${rimPct}, transparent) 0%, transparent 62%)`,
150
+ filter: "blur(95px)",
151
+ animation: "elevasis-ambient-bloom-grid-rim-left 38s ease-in-out infinite",
152
+ willChange: "transform",
153
+ transformOrigin: "center center"
154
+ }
155
+ }
156
+ ),
157
+ /* @__PURE__ */ jsx(
158
+ "div",
159
+ {
160
+ className: "elevasis-ambient-bloom-grid-lobe",
161
+ style: {
162
+ position: "absolute",
163
+ top: r.top,
164
+ right: r.offset,
165
+ width: r.width,
166
+ height: r.height,
167
+ background: `radial-gradient(ellipse 35% 55% at center, color-mix(in srgb, ${color} ${rimPct}, transparent) 0%, transparent 62%)`,
168
+ filter: "blur(95px)",
169
+ animation: "elevasis-ambient-bloom-grid-rim-right 34s ease-in-out infinite",
170
+ willChange: "transform",
171
+ transformOrigin: "center center"
172
+ }
173
+ }
174
+ )
175
+ ] })
176
+ ] });
177
+ }
178
+ var SUBTLE_DEFAULT_GLOW = "color-mix(in srgb, color-mix(in srgb, var(--color-primary) 20%, var(--color-border)) 30%, transparent)";
179
+ var PROMINENT_DEFAULT_GLOW = "color-mix(in srgb, var(--color-primary) 22%, transparent)";
180
+ function PerspectiveGrid({
181
+ glowColor: glowColorProp,
182
+ lineColor: lineColorProp,
183
+ prominentGlow = false,
184
+ lineIntensity = 100,
185
+ glowIntensity = 100,
186
+ className
187
+ }) {
188
+ const rawLineColor = lineColorProp ?? "color-mix(in srgb, var(--color-text-subtle) 7%, transparent)";
189
+ const lineColor = lineIntensity < 100 ? `color-mix(in srgb, ${rawLineColor} ${lineIntensity}%, transparent)` : rawLineColor;
190
+ const rawGlowColor = glowColorProp ?? (prominentGlow ? PROMINENT_DEFAULT_GLOW : SUBTLE_DEFAULT_GLOW);
191
+ const glowColor = glowIntensity < 100 ? `color-mix(in srgb, ${rawGlowColor} ${glowIntensity}%, transparent)` : rawGlowColor;
192
+ const glowHeight = prominentGlow ? "70%" : "60%";
193
+ const glowGradient = prominentGlow ? `radial-gradient(ellipse 100% 80% at 50% 110%, ${glowColor} -10%, transparent 50%)` : `radial-gradient(ellipse 90% 75% at 50% 112%, ${glowColor} -15%, transparent 45%)`;
194
+ return /* @__PURE__ */ jsxs(
195
+ "div",
196
+ {
197
+ className,
198
+ style: {
199
+ position: "absolute",
200
+ inset: 0,
201
+ pointerEvents: "none",
202
+ overflow: "hidden",
203
+ perspective: "500px"
204
+ },
205
+ children: [
206
+ /* @__PURE__ */ jsx(
207
+ "div",
208
+ {
209
+ style: {
210
+ position: "absolute",
211
+ bottom: 0,
212
+ left: "50%",
213
+ transform: "translateX(-50%)",
214
+ width: "100%",
215
+ height: glowHeight,
216
+ background: glowGradient,
217
+ pointerEvents: "none"
218
+ }
219
+ }
220
+ ),
221
+ /* @__PURE__ */ jsx(
222
+ "div",
223
+ {
224
+ style: {
225
+ position: "absolute",
226
+ left: "-50%",
227
+ right: "-50%",
228
+ bottom: 0,
229
+ height: "70%",
230
+ backgroundImage: `
231
+ linear-gradient(${lineColor} 2px, transparent 1px),
232
+ linear-gradient(90deg, ${lineColor} 2px, transparent 1px)
233
+ `,
234
+ backgroundSize: "120px 100px",
235
+ transform: "rotateX(60deg)",
236
+ transformOrigin: "bottom center",
237
+ maskImage: "linear-gradient(to bottom, transparent 0%, black 100%, black 100%, transparent 100%)",
238
+ WebkitMaskImage: "linear-gradient(to bottom, transparent 0%, black 100%, black 100%, transparent 100%)"
239
+ }
240
+ }
241
+ )
242
+ ]
243
+ }
244
+ );
245
+ }
246
+ var KEYFRAMES = `
247
+ @keyframes elevasis-glow-drift {
248
+ 0% { transform: translateY(0) scale(1); opacity: 1; }
249
+ 20% { transform: translateY(-8%) scale(1.12); opacity: 0.7; }
250
+ 40% { transform: translateY(3%) scale(0.92); opacity: 1; }
251
+ 60% { transform: translateY(5%) scale(1.08); opacity: 0.8; }
252
+ 80% { transform: translateY(-4%) scale(0.95); opacity: 0.9; }
253
+ 100% { transform: translateY(0) scale(1); opacity: 1; }
254
+ }
255
+ @keyframes elevasis-glow-drift-alt {
256
+ 0% { transform: translateY(0) scale(1); opacity: 0.8; }
257
+ 25% { transform: translateY(6%) scale(0.9); opacity: 1; }
258
+ 50% { transform: translateY(-7%) scale(1.15); opacity: 0.7; }
259
+ 75% { transform: translateY(-5%) scale(1.05); opacity: 0.9; }
260
+ 100% { transform: translateY(0) scale(1); opacity: 0.8; }
261
+ }
262
+ @keyframes elevasis-glow-drift-slow {
263
+ 0% { transform: translateY(0) scale(1); opacity: 0.9; }
264
+ 33% { transform: translateY(-4%) scale(1.1); opacity: 0.6; }
265
+ 66% { transform: translateY(6%) scale(0.88); opacity: 1; }
266
+ 100% { transform: translateY(0) scale(1); opacity: 0.9; }
267
+ }
268
+ `;
269
+ function RadiantGlow({
270
+ color = "var(--color-primary)",
271
+ opacity = 1,
272
+ className
273
+ }) {
274
+ return /* @__PURE__ */ jsxs(
275
+ "div",
276
+ {
277
+ className,
278
+ style: {
279
+ position: "absolute",
280
+ inset: 0,
281
+ pointerEvents: "none",
282
+ overflow: "clip",
283
+ opacity
284
+ },
285
+ children: [
286
+ /* @__PURE__ */ jsx("style", { children: KEYFRAMES }),
287
+ /* @__PURE__ */ jsx(
288
+ "div",
289
+ {
290
+ style: {
291
+ position: "absolute",
292
+ top: "-80%",
293
+ left: "50%",
294
+ transform: "translateX(-50%)",
295
+ width: "200%",
296
+ height: "200%",
297
+ background: `radial-gradient(ellipse at center, color-mix(in srgb, ${color} 0.8%, transparent) 0%, transparent 70%)`,
298
+ animation: "elevasis-glow-drift 20s ease-in-out infinite",
299
+ willChange: "transform"
300
+ }
301
+ }
302
+ ),
303
+ /* @__PURE__ */ jsx(
304
+ "div",
305
+ {
306
+ style: {
307
+ position: "absolute",
308
+ bottom: "-70%",
309
+ left: "50%",
310
+ transform: "translateX(-50%)",
311
+ width: "180%",
312
+ height: "180%",
313
+ background: `radial-gradient(ellipse at center, color-mix(in srgb, ${color} 0.6%, transparent) 0%, transparent 65%)`,
314
+ animation: "elevasis-glow-drift-alt 24s ease-in-out infinite",
315
+ willChange: "transform"
316
+ }
317
+ }
318
+ ),
319
+ /* @__PURE__ */ jsx(
320
+ "div",
321
+ {
322
+ style: {
323
+ position: "absolute",
324
+ top: "-20%",
325
+ left: "50%",
326
+ transform: "translateX(-50%)",
327
+ width: "120%",
328
+ height: "120%",
329
+ background: `radial-gradient(ellipse at center, color-mix(in srgb, ${color} 0.6%, transparent) 0%, transparent 60%)`,
330
+ animation: "elevasis-glow-drift-slow 28s ease-in-out infinite",
331
+ willChange: "transform"
332
+ }
333
+ }
334
+ )
335
+ ]
336
+ }
337
+ );
338
+ }
339
+ var KEYFRAMES2 = `
340
+ @keyframes elevasis-orb-float-0 {
341
+ 0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.5; }
342
+ 25% { transform: translate(12vw, -8vh) scale(1.2); opacity: 0.8; }
343
+ 50% { transform: translate(-5vw, -15vh) scale(0.9); opacity: 0.4; }
344
+ 75% { transform: translate(8vw, 5vh) scale(1.1); opacity: 0.7; }
345
+ }
346
+ @keyframes elevasis-orb-float-1 {
347
+ 0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.6; }
348
+ 30% { transform: translate(-10vw, 6vh) scale(0.85); opacity: 0.3; }
349
+ 60% { transform: translate(7vw, 12vh) scale(1.15); opacity: 0.7; }
350
+ }
351
+ @keyframes elevasis-orb-float-2 {
352
+ 0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.4; }
353
+ 20% { transform: translate(6vw, 10vh) scale(1.3); opacity: 0.7; }
354
+ 50% { transform: translate(-8vw, -4vh) scale(0.8); opacity: 0.3; }
355
+ 80% { transform: translate(3vw, -12vh) scale(1.1); opacity: 0.6; }
356
+ }
357
+ `;
358
+ var ORB_CONFIGS = [
359
+ { top: "10%", left: "15%", size: "25vw", anim: "elevasis-orb-float-0", dur: "22s" },
360
+ { top: "60%", left: "70%", size: "30vw", anim: "elevasis-orb-float-1", dur: "28s" },
361
+ { top: "30%", left: "50%", size: "20vw", anim: "elevasis-orb-float-2", dur: "32s" },
362
+ { top: "75%", left: "20%", size: "22vw", anim: "elevasis-orb-float-0", dur: "26s" },
363
+ { top: "5%", left: "75%", size: "18vw", anim: "elevasis-orb-float-1", dur: "30s" },
364
+ { top: "45%", left: "5%", size: "24vw", anim: "elevasis-orb-float-2", dur: "24s" }
365
+ ];
366
+ function FloatingOrbs({
367
+ color = "var(--color-primary)",
368
+ count = 6,
369
+ className
370
+ }) {
371
+ const orbs = ORB_CONFIGS.slice(0, count);
372
+ return /* @__PURE__ */ jsxs(
373
+ "div",
374
+ {
375
+ className,
376
+ style: {
377
+ position: "absolute",
378
+ inset: 0,
379
+ pointerEvents: "none",
380
+ overflow: "clip"
381
+ },
382
+ children: [
383
+ /* @__PURE__ */ jsx("style", { children: KEYFRAMES2 }),
384
+ orbs.map((orb, i) => /* @__PURE__ */ jsx(
385
+ "div",
386
+ {
387
+ style: {
388
+ position: "absolute",
389
+ top: orb.top,
390
+ left: orb.left,
391
+ width: orb.size,
392
+ height: orb.size,
393
+ borderRadius: "50%",
394
+ background: `radial-gradient(circle at center, color-mix(in srgb, ${color} 3%, transparent) 0%, transparent 70%)`,
395
+ filter: "blur(40px)",
396
+ animation: `${orb.anim} ${orb.dur} ease-in-out infinite`,
397
+ willChange: "transform, opacity"
398
+ }
399
+ },
400
+ i
401
+ ))
402
+ ]
403
+ }
404
+ );
405
+ }
406
+ var KEYFRAMES3 = `
407
+ @keyframes elevasis-grain-shift {
408
+ 0%, 100% { transform: translate(0, 0); }
409
+ 10% { transform: translate(-2%, -3%); }
410
+ 20% { transform: translate(3%, 1%); }
411
+ 30% { transform: translate(-1%, 4%); }
412
+ 40% { transform: translate(4%, -2%); }
413
+ 50% { transform: translate(-3%, 2%); }
414
+ 60% { transform: translate(2%, -4%); }
415
+ 70% { transform: translate(-4%, 1%); }
416
+ 80% { transform: translate(1%, 3%); }
417
+ 90% { transform: translate(3%, -1%); }
418
+ }
419
+ `;
420
+ function FilmGrain({ darkOpacity = 0.02, lightOpacity = 0.06, className }) {
421
+ const colorScheme = useComputedColorScheme();
422
+ const opacity = colorScheme === "dark" ? darkOpacity : lightOpacity;
423
+ return /* @__PURE__ */ jsxs(
424
+ "div",
425
+ {
426
+ className,
427
+ style: {
428
+ position: "absolute",
429
+ inset: 0,
430
+ pointerEvents: "none",
431
+ overflow: "clip",
432
+ opacity,
433
+ mixBlendMode: colorScheme === "dark" ? "screen" : "multiply"
434
+ },
435
+ children: [
436
+ /* @__PURE__ */ jsx("style", { children: KEYFRAMES3 }),
437
+ /* @__PURE__ */ jsx("svg", { style: { position: "absolute", width: 0, height: 0 }, children: /* @__PURE__ */ jsx("filter", { id: "elevasis-grain", children: /* @__PURE__ */ jsx("feTurbulence", { type: "fractalNoise", baseFrequency: "0.65", numOctaves: "3", stitchTiles: "stitch" }) }) }),
438
+ /* @__PURE__ */ jsx(
439
+ "div",
440
+ {
441
+ style: {
442
+ position: "absolute",
443
+ inset: "-50%",
444
+ width: "200%",
445
+ height: "200%",
446
+ filter: "url(#elevasis-grain)",
447
+ animation: "elevasis-grain-shift 0.8s steps(4) infinite",
448
+ willChange: "transform"
449
+ }
450
+ }
451
+ )
452
+ ]
453
+ }
454
+ );
455
+ }
456
+ function AppBackground({
457
+ children,
458
+ gridGlowColor,
459
+ gridGlowIntensity
460
+ }) {
461
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [
462
+ /* @__PURE__ */ jsx(PerspectiveGrid, { glowColor: gridGlowColor, glowIntensity: gridGlowIntensity }),
463
+ /* @__PURE__ */ jsx(RadiantGlow, {}),
464
+ /* @__PURE__ */ jsx(FloatingOrbs, {}),
465
+ /* @__PURE__ */ jsx(FilmGrain, {}),
466
+ children
467
+ ] });
468
+ }
469
+
470
+ // src/theme/presets/default.ts
67
471
  var defaultPreset = {
68
472
  subtitleFontFamily: '"Inter", sans-serif',
69
473
  fontImports: ["https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap"],
@@ -264,6 +668,121 @@ var regalPreset = {
264
668
  "https://fonts.googleapis.com/css2?family=Raleway:wght@400;500;600;700&display=swap"
265
669
  ]
266
670
  };
671
+ var MOTE_COUNT = 4;
672
+ var randRange = (min, max) => min + Math.random() * (max - min);
673
+ var MOTES = Array.from({ length: MOTE_COUNT }, () => {
674
+ const size = randRange(2, 16);
675
+ const duration = randRange(50, 90);
676
+ return {
677
+ left: randRange(0, 100),
678
+ size,
679
+ blur: size / 2,
680
+ duration,
681
+ delay: -randRange(0, duration),
682
+ drift: randRange(-22, 22),
683
+ pulse: randRange(3, 9),
684
+ pulseDelay: -randRange(0, 5)
685
+ };
686
+ });
687
+ var STYLE2 = `
688
+ @keyframes elevasis-mote-rise {
689
+ 0% { transform: translate3d(0, 0, 0); opacity: 0; }
690
+ 12% { opacity: 1; }
691
+ 70% { opacity: 0.85; }
692
+ 100% { transform: translate3d(var(--mote-drift, 0px), -85vh, 0); opacity: 0; }
693
+ }
694
+ @keyframes elevasis-mote-pulse {
695
+ 0%, 100% {
696
+ transform: scale(0.75);
697
+ filter: blur(var(--mote-blur, 2px)) brightness(0.8);
698
+ }
699
+ 50% {
700
+ transform: scale(1.35);
701
+ filter: blur(calc(var(--mote-blur, 2px) * 1.4)) brightness(1.4);
702
+ }
703
+ }
704
+ @media (prefers-reduced-motion: reduce) {
705
+ .elevasis-floating-mote,
706
+ .elevasis-floating-mote-inner {
707
+ animation: none;
708
+ }
709
+ .elevasis-floating-mote {
710
+ opacity: 0;
711
+ }
712
+ }
713
+ `;
714
+ function FloatingMotes({
715
+ coreColor = "var(--color-primary)",
716
+ haloColor = "color-mix(in srgb, var(--color-primary) 35%, transparent)",
717
+ bottom = "0"
718
+ }) {
719
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [
720
+ /* @__PURE__ */ jsx("style", { children: STYLE2 }),
721
+ /* @__PURE__ */ jsx("div", { "aria-hidden": "true", style: { position: "absolute", inset: 0, pointerEvents: "none", overflow: "hidden" }, children: MOTES.map((mote, i) => /* @__PURE__ */ jsx(
722
+ "div",
723
+ {
724
+ className: "elevasis-floating-mote",
725
+ style: {
726
+ position: "absolute",
727
+ bottom,
728
+ left: `${mote.left}%`,
729
+ width: `${mote.size}px`,
730
+ height: `${mote.size}px`,
731
+ opacity: 0,
732
+ transform: "translate3d(0, 0, 0)",
733
+ animation: `elevasis-mote-rise ${mote.duration}s ease-in-out infinite`,
734
+ animationDelay: `${mote.delay}s`,
735
+ willChange: "transform, opacity",
736
+ ["--mote-drift"]: `${mote.drift}px`,
737
+ ["--mote-blur"]: `${mote.blur}px`
738
+ },
739
+ children: /* @__PURE__ */ jsx(
740
+ "div",
741
+ {
742
+ className: "elevasis-floating-mote-inner",
743
+ style: {
744
+ width: "100%",
745
+ height: "100%",
746
+ borderRadius: "50%",
747
+ background: `radial-gradient(circle, ${coreColor} 0%, ${haloColor} 45%, transparent 75%)`,
748
+ filter: `blur(${mote.blur}px)`,
749
+ animation: `elevasis-mote-pulse ${mote.pulse}s ease-in-out infinite`,
750
+ animationDelay: `${mote.pulseDelay}s`,
751
+ willChange: "transform, filter"
752
+ }
753
+ }
754
+ )
755
+ },
756
+ i
757
+ )) })
758
+ ] });
759
+ }
760
+ function CyberBackground({
761
+ variant,
762
+ perspectiveGridRadialGlowIntensity,
763
+ perspectiveGridLineIntensity
764
+ }) {
765
+ const defaultIntensity = variant === "chrome" ? 22 : variant === "void" ? 24 : variant === "volt" ? 25 : 28;
766
+ const intensity = perspectiveGridRadialGlowIntensity ?? defaultIntensity;
767
+ const glowColor = `color-mix(in srgb, var(--color-primary) ${intensity}%, transparent)`;
768
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [
769
+ /* @__PURE__ */ jsx(
770
+ PerspectiveGrid,
771
+ {
772
+ lineColor: "var(--color-border)",
773
+ prominentGlow: true,
774
+ glowColor,
775
+ lineIntensity: perspectiveGridLineIntensity
776
+ }
777
+ ),
778
+ /* @__PURE__ */ jsx(RadiantGlow, {}),
779
+ /* @__PURE__ */ jsx(FloatingOrbs, {}),
780
+ /* @__PURE__ */ jsx(FloatingMotes, {}),
781
+ /* @__PURE__ */ jsx(FilmGrain, {})
782
+ ] });
783
+ }
784
+
785
+ // src/theme/presets/cyber-volt.ts
267
786
  var cyberVoltPreset = {
268
787
  background: createElement(
269
788
  Fragment,
@@ -334,7 +853,7 @@ var cyberVoltPreset = {
334
853
  },
335
854
  fontImports: ["https://fonts.googleapis.com/css2?family=Chakra+Petch:wght@400;500;600;700&display=swap"]
336
855
  };
337
- var STYLE = `
856
+ var STYLE3 = `
338
857
  div[style*="var(--color-background)"][style*="100vh"] {
339
858
  background-color: transparent !important;
340
859
  isolation: isolate;
@@ -636,7 +1155,7 @@ function ChromeBackground({ variant, beam }) {
636
1155
  "--chrome-animation-delay": RANDOM_OFFSET
637
1156
  };
638
1157
  return /* @__PURE__ */ jsxs(Fragment$1, { children: [
639
- /* @__PURE__ */ jsx("style", { children: STYLE }),
1158
+ /* @__PURE__ */ jsx("style", { children: STYLE3 }),
640
1159
  /* @__PURE__ */ jsx("div", { className: "chrome-bg-root", "data-variant": variant, style, "aria-hidden": "true", children: /* @__PURE__ */ jsxs("div", { className: "chrome-bg-wrapper", children: [
641
1160
  /* @__PURE__ */ jsx("div", { className: "chrome-bg-beam chrome-bg-beam-1" }),
642
1161
  /* @__PURE__ */ jsx("div", { className: "chrome-bg-beam chrome-bg-beam-2" }),
@@ -939,7 +1458,7 @@ var titaniumPreset = {
939
1458
  }
940
1459
  }
941
1460
  };
942
- var STYLE2 = `
1461
+ var STYLE4 = `
943
1462
  /* NOTE: does not neutralize AppShellContainer's background paint, unlike
944
1463
  ChromeBackground / ConstellationBackground. AmbientBloom is designed to
945
1464
  compose *above* existing background layers (CyberBackground's grid,
@@ -984,7 +1503,7 @@ function AmbientBloom({
984
1503
  const secondaryPct = `${Math.round(intensity * 80)}%`;
985
1504
  const tertiaryPct = `${Math.round(intensity * 60)}%`;
986
1505
  return /* @__PURE__ */ jsxs(Fragment$1, { children: [
987
- /* @__PURE__ */ jsx("style", { children: STYLE2 }),
1506
+ /* @__PURE__ */ jsx("style", { children: STYLE4 }),
988
1507
  /* @__PURE__ */ jsxs("div", { className: "elevasis-ambient-bloom", "aria-hidden": "true", children: [
989
1508
  /* @__PURE__ */ jsx(
990
1509
  "div",
@@ -1040,6 +1559,139 @@ function AmbientBloom({
1040
1559
  ] })
1041
1560
  ] });
1042
1561
  }
1562
+ var STYLE5 = `
1563
+ div[style*="var(--color-background)"][style*="100vh"] {
1564
+ background-color: transparent !important;
1565
+ isolation: isolate;
1566
+ }
1567
+ .wavy-bg-root {
1568
+ position: absolute;
1569
+ inset: 0;
1570
+ z-index: -1;
1571
+ overflow: hidden;
1572
+ pointer-events: none;
1573
+ background: var(--color-background);
1574
+ }
1575
+ /* Variant palettes (light mode defaults) */
1576
+ .wavy-bg-root[data-variant="nirvana"] {
1577
+ --wavy-wave-front: #fde8e0;
1578
+ --wavy-wave-back: #fef2ec;
1579
+ --wavy-mote-core: rgba(253, 205, 170, 0.85);
1580
+ --wavy-mote-halo: rgba(253, 205, 170, 0.3);
1581
+ }
1582
+ .wavy-bg-root[data-variant="wave"] {
1583
+ --wavy-wave-front: #dbeafe;
1584
+ --wavy-wave-back: #eef4ff;
1585
+ --wavy-mote-core: rgba(125, 180, 255, 0.85);
1586
+ --wavy-mote-halo: rgba(125, 180, 255, 0.3);
1587
+ }
1588
+ .wavy-bg-root[data-variant="honey"] {
1589
+ --wavy-wave-front: #fbeed3;
1590
+ --wavy-wave-back: #fdf5e0;
1591
+ --wavy-mote-core: rgba(230, 170, 50, 0.85);
1592
+ --wavy-mote-halo: rgba(230, 170, 50, 0.3);
1593
+ }
1594
+ .wavy-bg-root[data-variant="canopy"] {
1595
+ --wavy-wave-front: #dcebdf;
1596
+ --wavy-wave-back: #e6f0e8;
1597
+ --wavy-mote-core: rgba(140, 205, 155, 0.85);
1598
+ --wavy-mote-halo: rgba(140, 205, 155, 0.3);
1599
+ }
1600
+ .wavy-bg-root[data-variant="quarry"] {
1601
+ --wavy-wave-front: #dde0e4;
1602
+ --wavy-wave-back: #e6e9ed;
1603
+ --wavy-mote-core: rgba(150, 158, 170, 0.85);
1604
+ --wavy-mote-halo: rgba(150, 158, 170, 0.3);
1605
+ }
1606
+ /* Variant palettes (dark mode overrides) */
1607
+ [data-mantine-color-scheme="dark"] .wavy-bg-root[data-variant="nirvana"] {
1608
+ --wavy-wave-front: #140804;
1609
+ --wavy-wave-back: #0a0402;
1610
+ --wavy-mote-core: rgba(180, 110, 70, 0.4);
1611
+ --wavy-mote-halo: rgba(180, 110, 70, 0.12);
1612
+ }
1613
+ [data-mantine-color-scheme="dark"] .wavy-bg-root[data-variant="wave"] {
1614
+ --wavy-wave-front: #050e1c;
1615
+ --wavy-wave-back: #030812;
1616
+ --wavy-mote-core: rgba(90, 160, 230, 0.4);
1617
+ --wavy-mote-halo: rgba(90, 160, 230, 0.12);
1618
+ }
1619
+ [data-mantine-color-scheme="dark"] .wavy-bg-root[data-variant="honey"] {
1620
+ --wavy-wave-front: #120e05;
1621
+ --wavy-wave-back: #080502;
1622
+ --wavy-mote-core: rgba(232, 168, 32, 0.4);
1623
+ --wavy-mote-halo: rgba(232, 168, 32, 0.12);
1624
+ }
1625
+ [data-mantine-color-scheme="dark"] .wavy-bg-root[data-variant="canopy"] {
1626
+ --wavy-wave-front: #060f09;
1627
+ --wavy-wave-back: #030805;
1628
+ --wavy-mote-core: rgba(74, 168, 96, 0.4);
1629
+ --wavy-mote-halo: rgba(74, 168, 96, 0.12);
1630
+ }
1631
+ [data-mantine-color-scheme="dark"] .wavy-bg-root[data-variant="quarry"] {
1632
+ --wavy-wave-front: #0d0c0a;
1633
+ --wavy-wave-back: #070605;
1634
+ --wavy-mote-core: rgba(168, 164, 156, 0.4);
1635
+ --wavy-mote-halo: rgba(168, 164, 156, 0.12);
1636
+ }
1637
+ .wavy-bg-layer {
1638
+ position: absolute;
1639
+ top: 0;
1640
+ left: 0;
1641
+ width: 200%;
1642
+ height: 100%;
1643
+ will-change: transform;
1644
+ }
1645
+ .wavy-bg-layer svg {
1646
+ display: block;
1647
+ width: 100%;
1648
+ height: 100%;
1649
+ }
1650
+ @keyframes wavy-drift {
1651
+ from { transform: translateX(0); }
1652
+ to { transform: translateX(-50%); }
1653
+ }
1654
+ .wavy-bg-layer-back {
1655
+ animation: wavy-drift 105s linear infinite;
1656
+ }
1657
+ .wavy-bg-layer-front {
1658
+ animation: wavy-drift 63s linear infinite;
1659
+ }
1660
+ .wavy-bg-wave-back {
1661
+ fill: var(--wavy-wave-back);
1662
+ }
1663
+ .wavy-bg-wave-front {
1664
+ fill: var(--wavy-wave-front);
1665
+ }
1666
+ @media (prefers-reduced-motion: reduce) {
1667
+ .wavy-bg-layer-back,
1668
+ .wavy-bg-layer-front {
1669
+ animation: none;
1670
+ }
1671
+ }
1672
+ `;
1673
+ function WaveBackground({ variant }) {
1674
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [
1675
+ /* @__PURE__ */ jsx("style", { children: STYLE5 }),
1676
+ /* @__PURE__ */ jsxs("div", { className: "wavy-bg-root", "data-variant": variant, children: [
1677
+ /* @__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(
1678
+ "path",
1679
+ {
1680
+ className: "wavy-bg-wave-back",
1681
+ d: "M0,340 C260,200 520,220 820,340 C1100,480 1340,440 1600,340 C1860,200 2120,220 2420,340 C2700,480 2940,440 3200,340 L3200,900 L0,900 Z"
1682
+ }
1683
+ ) }) }),
1684
+ /* @__PURE__ */ jsx("div", { className: "wavy-bg-layer wavy-bg-layer-front", children: /* @__PURE__ */ jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 3200 900", preserveAspectRatio: "none", children: /* @__PURE__ */ jsx(
1685
+ "path",
1686
+ {
1687
+ className: "wavy-bg-wave-front",
1688
+ 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"
1689
+ }
1690
+ ) }) }),
1691
+ /* @__PURE__ */ jsx(FloatingMotes, { coreColor: "var(--wavy-mote-core)", haloColor: "var(--wavy-mote-halo)", bottom: "18%" })
1692
+ ] })
1693
+ ] });
1694
+ }
1043
1695
  var canopyPreset = {
1044
1696
  subtitleFontFamily: '"Lora", serif',
1045
1697
  fontImports: [
@@ -2462,4 +3114,4 @@ function getPreset(name, presetsMap) {
2462
3114
  return PRESETS[name] ?? PRESETS.default;
2463
3115
  }
2464
3116
 
2465
- export { PRESETS, THEME_PRESETS, ThemePresetEnum, generateShades, getPreset };
3117
+ export { AmbientBloomGrid, AppBackground, CyberBackground, FilmGrain, FloatingMotes, FloatingOrbs, PRESETS, PerspectiveGrid, RadiantGlow, THEME_PRESETS, ThemePresetEnum, WaveBackground, generateShades, getPreset };