@elevasis/ui 2.68.0 → 2.69.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 (98) hide show
  1. package/dist/api/index.js +3 -3
  2. package/dist/app/index.d.ts +577 -367
  3. package/dist/app/index.js +12 -21
  4. package/dist/auth/index.css +149 -149
  5. package/dist/auth/index.d.ts +5 -0
  6. package/dist/auth/index.js +7 -7
  7. package/dist/charts/index.css +208 -208
  8. package/dist/charts/index.js +7 -7
  9. package/dist/{chunk-JC5W55J3.js → chunk-26BTE3Z4.js} +1 -1
  10. package/dist/{chunk-ZFISGKYW.js → chunk-4JHLS234.js} +1 -1
  11. package/dist/{chunk-76IVMVI3.js → chunk-6PZFOHJK.js} +3 -3
  12. package/dist/{chunk-WPIASV3H.js → chunk-7WJEPTE7.js} +2 -2
  13. package/dist/{chunk-UFTM5SZZ.js → chunk-AKANHRQ5.js} +9 -3
  14. package/dist/{chunk-NDHMZT2G.js → chunk-C75XWBYZ.js} +1 -1
  15. package/dist/{chunk-R6NMRXNO.js → chunk-FLECOYUS.js} +1 -1
  16. package/dist/{chunk-2MTP3H3A.js → chunk-IRV6KJPV.js} +1 -1
  17. package/dist/{chunk-OOACTYRA.js → chunk-IT7GTJCB.js} +1 -1
  18. package/dist/{chunk-QYI5BZKM.js → chunk-MFLM7BVC.js} +1 -1
  19. package/dist/{chunk-TGPJNKDU.js → chunk-MRVGQLWN.js} +4 -4
  20. package/dist/{chunk-L3HFJFYF.js → chunk-NM4A63KJ.js} +30 -48
  21. package/dist/{chunk-SIVUCZXQ.js → chunk-NU3NBXHP.js} +1 -1
  22. package/dist/{chunk-HJVPVS57.js → chunk-RW64UJWT.js} +5 -5
  23. package/dist/{chunk-5NRJ2BLQ.js → chunk-VDX6DL7Z.js} +1 -1
  24. package/dist/{chunk-ZGCWTWBD.js → chunk-WXHAHKKI.js} +6167 -5883
  25. package/dist/{chunk-75NOC536.js → chunk-XAZR3T6Y.js} +5 -5
  26. package/dist/{chunk-GBXTRSAU.js → chunk-XQ3ILKYN.js} +1 -1
  27. package/dist/{chunk-TYKAKJGW.js → chunk-YCRINA2D.js} +1 -1
  28. package/dist/{chunk-FK3K2VK2.js → chunk-YGCMMOY4.js} +80 -699
  29. package/dist/{chunk-ZWS3TCQR.js → chunk-YNRYIXUT.js} +22 -109
  30. package/dist/{chunk-ZNKZMK2E.js → chunk-ZD6LM53O.js} +5 -5
  31. package/dist/chunk-ZPTEGGKU.js +631 -0
  32. package/dist/components/index.css +208 -208
  33. package/dist/components/index.d.ts +1614 -256
  34. package/dist/components/index.js +31 -30
  35. package/dist/components/navigation/index.css +149 -149
  36. package/dist/components/navigation/index.js +8 -8
  37. package/dist/features/auth/index.css +149 -149
  38. package/dist/features/auth/index.d.ts +457 -163
  39. package/dist/features/auth/index.js +9 -9
  40. package/dist/features/clients/index.css +208 -208
  41. package/dist/features/clients/index.d.ts +39 -1
  42. package/dist/features/clients/index.js +8 -7
  43. package/dist/features/content/index.css +659 -0
  44. package/dist/features/content/index.d.ts +1788 -0
  45. package/dist/features/content/index.js +2180 -0
  46. package/dist/features/crm/index.d.ts +584 -369
  47. package/dist/features/crm/index.js +9 -9
  48. package/dist/features/dashboard/index.d.ts +0 -6
  49. package/dist/features/dashboard/index.js +11 -10
  50. package/dist/features/delivery/index.d.ts +457 -163
  51. package/dist/features/delivery/index.js +8 -8
  52. package/dist/features/knowledge/index.css +149 -149
  53. package/dist/features/knowledge/index.js +7 -7
  54. package/dist/features/lead-gen/index.d.ts +20 -91
  55. package/dist/features/lead-gen/index.js +9 -9
  56. package/dist/features/monitoring/index.js +10 -10
  57. package/dist/features/monitoring/requests/index.js +9 -14
  58. package/dist/features/operations/index.d.ts +0 -84
  59. package/dist/features/operations/index.js +14 -13
  60. package/dist/features/settings/index.d.ts +457 -163
  61. package/dist/features/settings/index.js +10 -10
  62. package/dist/hooks/access/index.css +149 -149
  63. package/dist/hooks/access/index.d.ts +5 -0
  64. package/dist/hooks/access/index.js +7 -7
  65. package/dist/hooks/delivery/index.d.ts +457 -163
  66. package/dist/hooks/delivery/index.js +2 -2
  67. package/dist/hooks/index.d.ts +2190 -237
  68. package/dist/hooks/index.js +7 -7
  69. package/dist/hooks/operations/command-view/utils/transformCommandViewData.d.ts +0 -6
  70. package/dist/hooks/published.d.ts +2190 -237
  71. package/dist/hooks/published.js +7 -7
  72. package/dist/initialization/index.d.ts +464 -164
  73. package/dist/knowledge/index.css +149 -149
  74. package/dist/knowledge/index.d.ts +4 -88
  75. package/dist/knowledge/index.js +3213 -3203
  76. package/dist/{knowledge-search-index-6EZNBNSR.js → knowledge-search-index-LP2WVSQX.js} +689 -695
  77. package/dist/layout/index.css +149 -149
  78. package/dist/layout/index.js +10 -10
  79. package/dist/organization/index.d.ts +7 -1
  80. package/dist/profile/index.d.ts +457 -163
  81. package/dist/provider/index.d.ts +577 -368
  82. package/dist/provider/index.js +7 -7
  83. package/dist/provider/published.css +149 -149
  84. package/dist/provider/published.d.ts +577 -368
  85. package/dist/provider/published.js +7 -7
  86. package/dist/supabase/index.d.ts +906 -339
  87. package/dist/test-utils/index.d.ts +10 -2
  88. package/dist/test-utils/index.js +39 -10
  89. package/dist/theme/index.js +3 -3
  90. package/dist/theme/presets/index.js +1 -1
  91. package/dist/types/index.d.ts +464 -170
  92. package/dist/utils/index.d.ts +0 -6
  93. package/dist/utils/index.js +1 -1
  94. package/dist/vite/index.js +2 -2
  95. package/dist/vite-plugin-knowledge/index.js +1 -1
  96. package/package.json +9 -5
  97. package/src/features/README.md +28 -28
  98. /package/dist/{chunk-RBGVNPA6.js → chunk-XQBURFKM.js} +0 -0
@@ -0,0 +1,659 @@
1
+ /* src/components/display/StatCard.module.css */
2
+ .heroCard {
3
+ background: var(--glass-background);
4
+ backdrop-filter: var(--glass-blur);
5
+ border: 1px solid var(--color-border);
6
+ }
7
+ .iconRing {
8
+ position: relative;
9
+ display: flex;
10
+ align-items: center;
11
+ justify-content: center;
12
+ width: 46px;
13
+ height: 46px;
14
+ border-radius: 50%;
15
+ background: color-mix(in srgb, var(--color-primary) 12%, transparent);
16
+ border: 1px solid color-mix(in srgb, var(--color-primary) 25%, transparent);
17
+ color: var(--color-primary);
18
+ flex-shrink: 0;
19
+ box-shadow: 0 0 12px color-mix(in srgb, var(--color-primary) 15%, transparent);
20
+ }
21
+ .iconRingSm {
22
+ position: relative;
23
+ display: flex;
24
+ align-items: center;
25
+ justify-content: center;
26
+ width: 36px;
27
+ height: 36px;
28
+ border-radius: 50%;
29
+ background: color-mix(in srgb, var(--color-primary) 12%, transparent);
30
+ border: 1px solid color-mix(in srgb, var(--color-primary) 25%, transparent);
31
+ color: var(--color-primary);
32
+ flex-shrink: 0;
33
+ box-shadow: 0 0 8px color-mix(in srgb, var(--color-primary) 12%, transparent);
34
+ }
35
+ .heroValue {
36
+ font-family: var(--elevasis-font-family-subtitle);
37
+ font-size: 1.85rem;
38
+ font-weight: 800;
39
+ line-height: 1;
40
+ letter-spacing: -0.02em;
41
+ font-variant-numeric: tabular-nums;
42
+ }
43
+ [data-mantine-color-scheme=dark] .heroValue {
44
+ text-shadow: 0 0 20px color-mix(in srgb, var(--color-primary) 20%, transparent);
45
+ }
46
+ .heroValueSm {
47
+ font-family: var(--elevasis-font-family-subtitle);
48
+ font-size: 1.35rem;
49
+ font-weight: 700;
50
+ line-height: 1;
51
+ letter-spacing: -0.02em;
52
+ font-variant-numeric: tabular-nums;
53
+ }
54
+ .heroLabel {
55
+ font-size: 0.68rem;
56
+ font-weight: 700;
57
+ text-transform: uppercase;
58
+ letter-spacing: 0.12em;
59
+ color: var(--color-text-dimmed);
60
+ }
61
+ .heroLabelSm {
62
+ font-size: 0.62rem;
63
+ font-weight: 700;
64
+ text-transform: uppercase;
65
+ letter-spacing: 0.12em;
66
+ color: var(--color-text-dimmed);
67
+ }
68
+
69
+ /* src/components/display/ElevasisLoader.module.css */
70
+ .wrapper {
71
+ display: inline-flex;
72
+ align-items: center;
73
+ justify-content: center;
74
+ width: var(--loader-size);
75
+ height: var(--loader-size);
76
+ overflow: visible;
77
+ }
78
+ .loader {
79
+ width: 100%;
80
+ height: 100%;
81
+ display: block;
82
+ overflow: visible;
83
+ }
84
+ .chevron {
85
+ stroke: var(--loader-color);
86
+ stroke-width: 2;
87
+ stroke-linecap: square;
88
+ stroke-linejoin: miter;
89
+ fill: none;
90
+ opacity: 0.15;
91
+ animation: chevronPulse 2s ease-in-out infinite;
92
+ filter: drop-shadow(0 0 1.5px var(--loader-color));
93
+ }
94
+ [data-mantine-color-scheme=light] .chevron {
95
+ filter: none;
96
+ }
97
+ .c1 {
98
+ animation-delay: 0s;
99
+ }
100
+ .c2 {
101
+ animation-delay: 0.2s;
102
+ }
103
+ .c3 {
104
+ animation-delay: 0.4s;
105
+ }
106
+ @keyframes chevronPulse {
107
+ 0%, 100% {
108
+ opacity: 0.12;
109
+ filter: drop-shadow(0 0 1px var(--loader-color));
110
+ }
111
+ 40%, 60% {
112
+ opacity: 1;
113
+ filter: drop-shadow(0 0 3px var(--loader-color));
114
+ }
115
+ }
116
+ [data-mantine-color-scheme=light] .chevron {
117
+ animation-name: chevronPulseLight;
118
+ }
119
+ @keyframes chevronPulseLight {
120
+ 0%, 100% {
121
+ opacity: 0.2;
122
+ }
123
+ 40%, 60% {
124
+ opacity: 1;
125
+ }
126
+ }
127
+
128
+ /* src/graph/Graph.globals.css */
129
+ .elevasis-graph-root .react-flow__node.selected,
130
+ .elevasis-graph-root .react-flow__node:focus,
131
+ .elevasis-graph-root .react-flow__node:focus-visible {
132
+ outline: none !important;
133
+ }
134
+ .elevasis-graph-root .react-flow__node.selected > * {
135
+ box-shadow: none;
136
+ }
137
+
138
+ /* src/graph/Graph.module.css */
139
+ @keyframes edgeFlow {
140
+ 0% {
141
+ stroke-dashoffset: 24;
142
+ }
143
+ 100% {
144
+ stroke-dashoffset: 0;
145
+ }
146
+ }
147
+ @keyframes edgeFlowReverse {
148
+ 0% {
149
+ stroke-dashoffset: 0;
150
+ }
151
+ 100% {
152
+ stroke-dashoffset: 24;
153
+ }
154
+ }
155
+ @keyframes pulse {
156
+ 0%, 100% {
157
+ opacity: 0.6;
158
+ }
159
+ 50% {
160
+ opacity: 1;
161
+ }
162
+ }
163
+ @keyframes livePulse {
164
+ 0%, 100% {
165
+ opacity: 1;
166
+ }
167
+ 50% {
168
+ opacity: 0.6;
169
+ }
170
+ }
171
+ .livePulse {
172
+ animation: livePulse 2s ease-in-out infinite;
173
+ }
174
+ @keyframes glowPulse {
175
+ 0%, 100% {
176
+ box-shadow: 0 0 5px var(--glow-color, color-mix(in srgb, var(--color-primary) 30%, transparent)), 0 0 15px var(--glow-color, color-mix(in srgb, var(--color-primary) 10%, transparent));
177
+ }
178
+ 50% {
179
+ box-shadow: 0 0 10px var(--glow-color, color-mix(in srgb, var(--color-primary) 50%, transparent)), 0 0 20px var(--glow-color, color-mix(in srgb, var(--color-primary) 20%, transparent));
180
+ }
181
+ }
182
+ @keyframes nodeEnter {
183
+ 0% {
184
+ opacity: 0;
185
+ transform: scale(0.8) translateY(10px);
186
+ }
187
+ 100% {
188
+ opacity: 1;
189
+ transform: scale(1) translateY(0);
190
+ }
191
+ }
192
+ @keyframes handlePulse {
193
+ 0%, 100% {
194
+ transform: scale(1);
195
+ box-shadow: 0 0 0 0 var(--handle-color, color-mix(in srgb, var(--color-primary) 40%, transparent));
196
+ }
197
+ 50% {
198
+ transform: scale(1.2);
199
+ box-shadow: 0 0 0 4px var(--handle-color, color-mix(in srgb, var(--color-primary) 0%, transparent));
200
+ }
201
+ }
202
+ @keyframes gridMove {
203
+ 0% {
204
+ background-position: 0 0;
205
+ }
206
+ 100% {
207
+ background-position: 40px 40px;
208
+ }
209
+ }
210
+ @keyframes labelFadeIn {
211
+ 0% {
212
+ opacity: 0;
213
+ transform: translate(-50%, -50%) translate(var(--label-x), var(--label-y)) scale(0.8);
214
+ }
215
+ 100% {
216
+ opacity: 1;
217
+ transform: translate(-50%, -50%) translate(var(--label-x), var(--label-y)) scale(1);
218
+ }
219
+ }
220
+ @keyframes scanLine {
221
+ 0% {
222
+ transform: translateY(-100%);
223
+ opacity: 0;
224
+ }
225
+ 50% {
226
+ opacity: 0.5;
227
+ }
228
+ 100% {
229
+ transform: translateY(100%);
230
+ opacity: 0;
231
+ }
232
+ }
233
+ .graphContainer {
234
+ position: relative;
235
+ background-image:
236
+ linear-gradient(color-mix(in srgb, var(--color-primary) 5%, transparent) 1px, transparent 1px),
237
+ linear-gradient(
238
+ 90deg,
239
+ color-mix(in srgb, var(--color-primary) 5%, transparent) 1px,
240
+ transparent 1px),
241
+ radial-gradient(
242
+ ellipse at 50% 50%,
243
+ color-mix(in srgb, var(--color-primary) 1.25%, transparent) 0%,
244
+ transparent 70%);
245
+ background-color: color-mix(in srgb, var(--color-background) 50%, var(--glass-background));
246
+ backdrop-filter: var(--glass-blur);
247
+ background-size:
248
+ 40px 40px,
249
+ 40px 40px,
250
+ 100% 100%;
251
+ animation: gridMove 20s linear infinite;
252
+ }
253
+ [data-mantine-color-scheme=dark] .graphContainer {
254
+ background-image:
255
+ linear-gradient(color-mix(in srgb, var(--color-primary) 9%, transparent) 1px, transparent 1px),
256
+ linear-gradient(
257
+ 90deg,
258
+ color-mix(in srgb, var(--color-primary) 9%, transparent) 1px,
259
+ transparent 1px),
260
+ radial-gradient(
261
+ ellipse at 50% 50%,
262
+ color-mix(in srgb, var(--color-primary) 2.25%, transparent) 0%,
263
+ transparent 70%);
264
+ background-size:
265
+ 40px 40px,
266
+ 40px 40px,
267
+ 100% 100%;
268
+ }
269
+ .node {
270
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
271
+ position: relative;
272
+ }
273
+ .node:nth-child(1) {
274
+ animation-delay: 0.05s;
275
+ }
276
+ .node:nth-child(2) {
277
+ animation-delay: 0.1s;
278
+ }
279
+ .node:nth-child(3) {
280
+ animation-delay: 0.15s;
281
+ }
282
+ .node:nth-child(4) {
283
+ animation-delay: 0.2s;
284
+ }
285
+ .node:nth-child(5) {
286
+ animation-delay: 0.25s;
287
+ }
288
+ .node:nth-child(6) {
289
+ animation-delay: 0.3s;
290
+ }
291
+ .node:nth-child(7) {
292
+ animation-delay: 0.35s;
293
+ }
294
+ .node:nth-child(8) {
295
+ animation-delay: 0.4s;
296
+ }
297
+ .node:nth-child(9) {
298
+ animation-delay: 0.45s;
299
+ }
300
+ .node:nth-child(10) {
301
+ animation-delay: 0.5s;
302
+ }
303
+ .node:nth-child(11) {
304
+ animation-delay: 0.55s;
305
+ }
306
+ .node:nth-child(12) {
307
+ animation-delay: 0.6s;
308
+ }
309
+ .nodeCard {
310
+ position: relative;
311
+ border-radius: var(--mantine-radius-md);
312
+ overflow: hidden;
313
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
314
+ }
315
+ .nodeCard::before {
316
+ content: "";
317
+ position: absolute;
318
+ inset: 0;
319
+ background:
320
+ linear-gradient(
321
+ 135deg,
322
+ var(--node-color-light, color-mix(in srgb, var(--color-primary) 10%, transparent)) 0%,
323
+ transparent 50%,
324
+ var(--node-color-light, color-mix(in srgb, var(--color-primary) 5%, transparent)) 100%);
325
+ pointer-events: none;
326
+ opacity: 0;
327
+ transition: opacity 0.3s ease;
328
+ }
329
+ .nodeCard::after {
330
+ content: "";
331
+ position: absolute;
332
+ left: 0;
333
+ right: 0;
334
+ height: 30%;
335
+ background:
336
+ linear-gradient(
337
+ 180deg,
338
+ transparent 0%,
339
+ var(--node-color-glow, color-mix(in srgb, var(--color-primary) 10%, transparent)) 50%,
340
+ transparent 100%);
341
+ pointer-events: none;
342
+ opacity: 0;
343
+ }
344
+ .nodeCard:hover::before,
345
+ .nodeCardSelected::before {
346
+ opacity: 1;
347
+ }
348
+ .nodeCard:hover::after,
349
+ .nodeCardSelected::after {
350
+ animation: scanLine 3s ease-in-out infinite;
351
+ }
352
+ .nodeCard:hover {
353
+ transform: translateY(-2px) scale(1.02);
354
+ }
355
+ .nodeCardSelected {
356
+ transform: translateY(-2px) scale(1.02);
357
+ animation: glowPulse 2s ease-in-out infinite;
358
+ }
359
+ .nodeAgent {
360
+ --glow-color: rgba(139, 92, 246, 0.4);
361
+ --node-color-light: rgba(139, 92, 246, 0.1);
362
+ --node-color-glow: rgba(139, 92, 246, 0.15);
363
+ --handle-color: rgba(139, 92, 246, 0.5);
364
+ --gradient-start: rgba(139, 92, 246, 0.15);
365
+ --gradient-end: rgba(139, 92, 246, 0.05);
366
+ }
367
+ .nodeWorkflow {
368
+ --glow-color: rgba(59, 130, 246, 0.4);
369
+ --node-color-light: rgba(59, 130, 246, 0.1);
370
+ --node-color-glow: rgba(59, 130, 246, 0.15);
371
+ --handle-color: rgba(59, 130, 246, 0.5);
372
+ --gradient-start: rgba(59, 130, 246, 0.15);
373
+ --gradient-end: rgba(59, 130, 246, 0.05);
374
+ }
375
+ .nodeTrigger {
376
+ --glow-color: rgba(249, 115, 22, 0.4);
377
+ --node-color-light: rgba(249, 115, 22, 0.1);
378
+ --node-color-glow: rgba(249, 115, 22, 0.15);
379
+ --handle-color: rgba(249, 115, 22, 0.5);
380
+ --gradient-start: rgba(249, 115, 22, 0.15);
381
+ --gradient-end: rgba(249, 115, 22, 0.05);
382
+ }
383
+ .nodeIntegration {
384
+ --glow-color: rgba(20, 184, 166, 0.4);
385
+ --node-color-light: rgba(20, 184, 166, 0.1);
386
+ --node-color-glow: rgba(20, 184, 166, 0.15);
387
+ --handle-color: rgba(20, 184, 166, 0.5);
388
+ --gradient-start: rgba(20, 184, 166, 0.15);
389
+ --gradient-end: rgba(20, 184, 166, 0.05);
390
+ }
391
+ .nodeExternal {
392
+ --glow-color: rgba(107, 114, 128, 0.4);
393
+ --node-color-light: rgba(107, 114, 128, 0.1);
394
+ --node-color-glow: rgba(107, 114, 128, 0.15);
395
+ --handle-color: rgba(107, 114, 128, 0.5);
396
+ --gradient-start: rgba(107, 114, 128, 0.15);
397
+ --gradient-end: rgba(107, 114, 128, 0.05);
398
+ }
399
+ .nodeHuman {
400
+ --glow-color: rgba(245, 158, 11, 0.4);
401
+ --node-color-light: rgba(245, 158, 11, 0.1);
402
+ --node-color-glow: rgba(245, 158, 11, 0.15);
403
+ --handle-color: rgba(245, 158, 11, 0.5);
404
+ --gradient-start: rgba(245, 158, 11, 0.15);
405
+ --gradient-end: rgba(245, 158, 11, 0.05);
406
+ }
407
+ .nodePrimary {
408
+ --glow-color: rgba(37, 99, 235, 0.4);
409
+ --node-color-light: rgba(37, 99, 235, 0.1);
410
+ --node-color-glow: rgba(37, 99, 235, 0.15);
411
+ --handle-color: rgba(37, 99, 235, 0.5);
412
+ --gradient-start: rgba(37, 99, 235, 0.15);
413
+ --gradient-end: rgba(37, 99, 235, 0.05);
414
+ }
415
+ .handle {
416
+ transition: all 0.2s ease;
417
+ }
418
+ .handle:hover {
419
+ animation: handlePulse 1s ease-in-out infinite;
420
+ }
421
+ .nodeIcon {
422
+ transition: all 0.3s ease;
423
+ }
424
+ .badge {
425
+ transition: all 0.2s ease;
426
+ backdrop-filter: blur(4px);
427
+ }
428
+ .nodeCard:hover .badge {
429
+ transform: scale(1.05);
430
+ }
431
+ .badgeProd {
432
+ box-shadow: 0 0 8px rgba(34, 197, 94, 0.3);
433
+ }
434
+ .edge {
435
+ transition: all 0.3s ease;
436
+ }
437
+ .edgeAnimated {
438
+ stroke-dasharray: 8 4;
439
+ animation: edgeFlow 1s linear infinite;
440
+ }
441
+ .edgeGlow {
442
+ filter: drop-shadow(0 0 3px var(--edge-color, color-mix(in srgb, var(--color-primary) 50%, transparent)));
443
+ }
444
+ .edgeHighlighted {
445
+ stroke-width: 3px;
446
+ }
447
+ .edgeLabel {
448
+ backdrop-filter: blur(8px);
449
+ border: 1px solid rgba(255, 255, 255, 0.1);
450
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15), 0 0 20px var(--label-glow, color-mix(in srgb, var(--color-primary) 20%, transparent));
451
+ transition: box-shadow 0.2s ease;
452
+ }
453
+ .edgeLabel:hover {
454
+ box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2), 0 0 30px var(--label-glow, color-mix(in srgb, var(--color-primary) 30%, transparent));
455
+ }
456
+ .legend {
457
+ backdrop-filter: var(--glass-blur);
458
+ background: var(--glass-background);
459
+ border: 1px solid color-mix(in srgb, var(--color-primary) 20%, transparent);
460
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1), 0 0 40px color-mix(in srgb, var(--color-primary) 10%, transparent);
461
+ }
462
+ [data-mantine-color-scheme=dark] .legend {
463
+ border-color: color-mix(in srgb, var(--color-primary) 30%, transparent);
464
+ }
465
+ .legendDot {
466
+ transition: all 0.2s ease;
467
+ box-shadow: 0 0 8px currentColor;
468
+ }
469
+ .legendDot:hover {
470
+ transform: scale(1.3);
471
+ box-shadow: 0 0 12px currentColor;
472
+ }
473
+ .nodeHighlighted .nodeCard {
474
+ transform: translateY(-2px) scale(1.02);
475
+ }
476
+ .nodeHighlighted .nodeCard::before {
477
+ opacity: 1;
478
+ }
479
+ .nodeHighlighted .nodeCard::after {
480
+ animation: scanLine 3s ease-in-out infinite;
481
+ }
482
+ .nodeDimmed {
483
+ opacity: 0.3;
484
+ filter: grayscale(0.5);
485
+ transition: all 0.3s ease;
486
+ }
487
+ .edgeHighlighted {
488
+ stroke-width: 4px !important;
489
+ }
490
+ .edgeDimmed {
491
+ opacity: 0.15;
492
+ transition: all 0.3s ease;
493
+ }
494
+ .edgeLabelDimmed {
495
+ opacity: 0.15;
496
+ transition: opacity 0.3s ease;
497
+ }
498
+ @media (prefers-reduced-motion: reduce) {
499
+ .node,
500
+ .nodeCard::after,
501
+ .edgeAnimated,
502
+ .nodeIcon,
503
+ .handle:hover,
504
+ .graphContainer {
505
+ animation: none;
506
+ }
507
+ .nodeCard:hover {
508
+ transform: none;
509
+ }
510
+ }
511
+
512
+ /* src/theme/custom.css */
513
+ .mantine-Button-root[data-variant=default] {
514
+ background-color: var(--color-surface);
515
+ backdrop-filter: var(--glass-blur);
516
+ -webkit-backdrop-filter: var(--glass-blur);
517
+ border: 1px solid var(--color-border);
518
+ color: var(--color-text);
519
+ }
520
+ .mantine-Button-root[data-variant=default]:hover {
521
+ background-color: var(--color-surface-hover);
522
+ }
523
+ .lead-gen-build-action-button:disabled,
524
+ .lead-gen-build-action-button[data-disabled] {
525
+ background-color: var(--surface-primary-muted) !important;
526
+ border-color: var(--border-primary-subtle) !important;
527
+ color: color-mix(in srgb, var(--color-text-subtle) 88%, var(--color-text-dimmed) 12%) !important;
528
+ opacity: 0.78;
529
+ }
530
+ .lead-gen-build-action-button:disabled:hover,
531
+ .lead-gen-build-action-button[data-disabled]:hover {
532
+ background-color: var(--surface-primary-muted) !important;
533
+ }
534
+ .mantine-Accordion-control:hover {
535
+ background-color: var(--color-surface-hover);
536
+ }
537
+ [data-mantine-color-scheme] .mantine-Accordion-root .mantine-Accordion-item {
538
+ --item-filled-color: var(--color-surface);
539
+ --item-border-color: var(--color-border);
540
+ }
541
+ [data-mantine-color-scheme] .mantine-Accordion-root[data-variant=separated] .mantine-Accordion-item[data-active] {
542
+ background-color: var(--color-surface);
543
+ border-color: var(--color-border);
544
+ }
545
+ .mantine-Menu-item:hover:not([data-disabled]) {
546
+ background-color: var(--color-surface-hover);
547
+ }
548
+ .mantine-Select-option:hover,
549
+ .mantine-MultiSelect-option:hover,
550
+ .mantine-TagsInput-option:hover,
551
+ .mantine-Combobox-option:hover {
552
+ background-color: var(--surface-primary-muted) !important;
553
+ }
554
+ .mantine-Select-option[data-combobox-selected],
555
+ .mantine-MultiSelect-option[data-combobox-selected],
556
+ .mantine-TagsInput-option[data-combobox-selected],
557
+ .mantine-Combobox-option[data-combobox-selected] {
558
+ background-color: var(--surface-primary-subtle) !important;
559
+ color: var(--color-text);
560
+ }
561
+ [data-mantine-color-scheme] .mantine-Tabs-root {
562
+ --tab-border-color: var(--color-border);
563
+ --tab-hover-color: var(--color-surface-hover);
564
+ --tabs-radius: var(--mantine-radius-xs);
565
+ }
566
+ [data-mantine-color-scheme] .mantine-Tabs-root .mantine-Tabs-tab {
567
+ color: var(--color-text);
568
+ }
569
+ [data-mantine-color-scheme] .mantine-Tabs-root .mantine-Tabs-tab:hover {
570
+ background-color: var(--color-surface-hover);
571
+ }
572
+ [data-mantine-color-scheme] .mantine-Tabs-root .mantine-Tabs-tab[data-active] {
573
+ background-color: var(--color-surface-hover);
574
+ border-color: var(--color-primary);
575
+ color: var(--color-text);
576
+ }
577
+ .mantine-Pagination-control:not([data-active]) {
578
+ background: var(--color-surface);
579
+ }
580
+ ::-webkit-scrollbar {
581
+ width: 5px;
582
+ height: 5px;
583
+ }
584
+ ::-webkit-scrollbar-track {
585
+ background: transparent;
586
+ }
587
+ ::-webkit-scrollbar-thumb {
588
+ background: color-mix(in srgb, var(--color-text-subtle) 50%, var(--color-border));
589
+ border-radius: 4px;
590
+ }
591
+ ::-webkit-scrollbar-thumb:hover {
592
+ background: var(--color-text-subtle);
593
+ }
594
+ [data-mantine-color-scheme] .mantine-Checkbox-input:not(:disabled):not(:checked):not([data-indeterminate]) {
595
+ background-color: var(--color-surface);
596
+ border-color: var(--color-border);
597
+ }
598
+ [data-mantine-color-scheme] .mantine-Checkbox-input:checked,
599
+ [data-mantine-color-scheme] .mantine-Checkbox-input[data-indeterminate] {
600
+ background-color: var(--color-primary);
601
+ border-color: var(--color-primary);
602
+ }
603
+ .mantine-Switch-root:has(input:not(:checked)) .mantine-Switch-track {
604
+ background-color: var(--color-surface-hover);
605
+ border-color: var(--color-border);
606
+ }
607
+ .mantine-Timeline-root {
608
+ --tl-color: var(--color-primary);
609
+ }
610
+ .mantine-Timeline-item {
611
+ --item-border-color: var(--color-border);
612
+ }
613
+ .mantine-Timeline-itemBullet {
614
+ border-color: var(--color-border);
615
+ }
616
+ .mantine-Timeline-itemBullet:where([data-with-child]) {
617
+ background-color: var(--color-primary);
618
+ border-color: var(--color-primary);
619
+ }
620
+ .mantine-Tree-node:focus-visible > [data-value] {
621
+ outline: 2px solid color-mix(in srgb, var(--color-primary) 55%, transparent);
622
+ outline-offset: 2px;
623
+ }
624
+ .mantine-Tree-label[data-hovered] {
625
+ background-color: var(--color-surface-hover);
626
+ border-color: var(--color-border);
627
+ }
628
+ .mantine-Tree-label[data-selected] {
629
+ background-color: color-mix(in srgb, var(--color-primary) 12%, transparent);
630
+ border-color: color-mix(in srgb, var(--color-primary) 38%, var(--color-border));
631
+ color: var(--color-primary);
632
+ }
633
+ [data-knowledge-article] pre {
634
+ white-space: pre-wrap;
635
+ word-break: break-word;
636
+ overflow-x: auto;
637
+ max-width: 100%;
638
+ padding: var(--mantine-spacing-sm);
639
+ background-color: var(--color-surface);
640
+ border: 1px solid var(--color-border);
641
+ border-radius: var(--mantine-radius-sm);
642
+ }
643
+ [data-knowledge-article] pre code {
644
+ background: transparent;
645
+ border: none;
646
+ padding: 0;
647
+ white-space: inherit;
648
+ word-break: inherit;
649
+ }
650
+ .recharts-surface:focus {
651
+ outline: none;
652
+ }
653
+ .hide-scrollbar {
654
+ scrollbar-width: none;
655
+ -ms-overflow-style: none;
656
+ }
657
+ .hide-scrollbar::-webkit-scrollbar {
658
+ display: none;
659
+ }