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