@elevasis/ui 2.30.0 → 2.32.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 (130) hide show
  1. package/dist/api/index.js +2 -2
  2. package/dist/app/index.css +38 -0
  3. package/dist/app/index.d.ts +190 -9
  4. package/dist/app/index.js +7 -6
  5. package/dist/charts/index.js +4 -5
  6. package/dist/{chunk-HXZQWMKE.js → chunk-2RJMVWFJ.js} +1 -6
  7. package/dist/{chunk-4VQ2PXMI.js → chunk-3FV6HBXS.js} +4 -4
  8. package/dist/{chunk-CW3UNAF2.js → chunk-4DYOXEH6.js} +410 -5
  9. package/dist/{chunk-JKTPRYGV.js → chunk-4MFNGNHF.js} +123 -192
  10. package/dist/{chunk-HYLERWRO.js → chunk-4QK76KIF.js} +7 -7
  11. package/dist/chunk-5FJJ72HU.js +13 -0
  12. package/dist/chunk-5J4PDX26.js +112 -0
  13. package/dist/{chunk-4SY6BTVZ.js → chunk-6DWD423K.js} +12 -9
  14. package/dist/{chunk-3GV5NHSS.js → chunk-7KZINJLP.js} +78 -232
  15. package/dist/{chunk-6WXDE5LZ.js → chunk-EPTHX4VZ.js} +1 -1
  16. package/dist/{chunk-6EFVZV6X.js → chunk-GCOQ3TBG.js} +243 -254
  17. package/dist/{chunk-LRZFLK2F.js → chunk-IQHU7O5Y.js} +4 -4
  18. package/dist/{chunk-X2SUMO3P.js → chunk-IZWTVFJ2.js} +16 -3
  19. package/dist/{chunk-IKQ42WHU.js → chunk-JFL3GRD4.js} +1 -1
  20. package/dist/{chunk-4FZYEEPK.js → chunk-LLRXA7D7.js} +5 -6
  21. package/dist/chunk-MOY4VOHF.js +347 -0
  22. package/dist/{chunk-XQQEKWTL.js → chunk-N55DVMAG.js} +6 -2
  23. package/dist/{chunk-7E3FUTND.js → chunk-ND5TDV2J.js} +1 -1
  24. package/dist/{chunk-WF227UBV.js → chunk-QQHOKTJA.js} +4 -4
  25. package/dist/{chunk-A7B7HLDF.js → chunk-QTI3KC7D.js} +5884 -515
  26. package/dist/chunk-QXCDKE2O.js +486 -0
  27. package/dist/chunk-R2XR4FCV.js +48 -0
  28. package/dist/chunk-R66W5UDG.js +26 -0
  29. package/dist/{chunk-T5Z7G2J2.js → chunk-RQA2EVN3.js} +6 -16
  30. package/dist/{chunk-SKXXT3E2.js → chunk-RQTWIXJ5.js} +4 -4
  31. package/dist/chunk-T35FWDAB.js +4342 -0
  32. package/dist/{chunk-DWK2QIAK.js → chunk-TYRUKGGD.js} +1 -1
  33. package/dist/{chunk-CN2HC4D4.js → chunk-UFTM5SZZ.js} +2 -2
  34. package/dist/{chunk-JCGD4GM6.js → chunk-UROTM5OR.js} +14 -1
  35. package/dist/{chunk-6YT4IKJ7.js → chunk-VNAZTCHA.js} +15 -0
  36. package/dist/{chunk-KVJ3LFH2.js → chunk-VNFR57DF.js} +4 -24
  37. package/dist/{chunk-SBCIB5TZ.js → chunk-VRNMNB3O.js} +6 -7
  38. package/dist/chunk-WQPX44YM.js +1626 -0
  39. package/dist/{chunk-T2PAD63Y.js → chunk-XZGSCABI.js} +1 -1
  40. package/dist/chunk-YLQEVSOR.js +299 -0
  41. package/dist/{chunk-P5WYW2GI.js → chunk-ZQOKIGZP.js} +152 -306
  42. package/dist/components/index.css +38 -0
  43. package/dist/components/index.d.ts +334 -38
  44. package/dist/components/index.js +42 -42
  45. package/dist/components/navigation/index.css +38 -0
  46. package/dist/components/navigation/index.js +3 -2
  47. package/dist/execution/index.d.ts +9 -3
  48. package/dist/features/auth/index.css +38 -0
  49. package/dist/features/auth/index.d.ts +212 -14
  50. package/dist/features/auth/index.js +41 -9
  51. package/dist/features/clients/index.css +649 -0
  52. package/dist/features/clients/index.d.ts +86 -0
  53. package/dist/features/clients/index.js +720 -0
  54. package/dist/features/crm/index.css +38 -0
  55. package/dist/features/crm/index.d.ts +228 -20
  56. package/dist/features/crm/index.js +20 -17
  57. package/dist/features/dashboard/index.css +38 -0
  58. package/dist/features/dashboard/index.d.ts +78 -3
  59. package/dist/features/dashboard/index.js +16 -16
  60. package/dist/features/delivery/index.css +38 -0
  61. package/dist/features/delivery/index.d.ts +201 -18
  62. package/dist/features/delivery/index.js +20 -18
  63. package/dist/features/knowledge/index.css +38 -0
  64. package/dist/features/knowledge/index.d.ts +20 -18
  65. package/dist/features/knowledge/index.js +116 -578
  66. package/dist/features/lead-gen/index.css +38 -0
  67. package/dist/features/lead-gen/index.d.ts +59 -51
  68. package/dist/features/lead-gen/index.js +20 -18
  69. package/dist/features/monitoring/index.css +38 -0
  70. package/dist/features/monitoring/index.d.ts +20 -18
  71. package/dist/features/monitoring/index.js +19 -18
  72. package/dist/features/monitoring/requests/index.css +38 -0
  73. package/dist/features/monitoring/requests/index.d.ts +21 -19
  74. package/dist/features/monitoring/requests/index.js +17 -15
  75. package/dist/features/operations/index.css +38 -0
  76. package/dist/features/operations/index.d.ts +945 -45
  77. package/dist/features/operations/index.js +24 -26
  78. package/dist/features/seo/index.d.ts +20 -18
  79. package/dist/features/seo/index.js +1 -1
  80. package/dist/features/settings/index.css +38 -0
  81. package/dist/features/settings/index.d.ts +201 -18
  82. package/dist/features/settings/index.js +18 -16
  83. package/dist/hooks/delivery/index.css +38 -0
  84. package/dist/hooks/delivery/index.d.ts +200 -0
  85. package/dist/hooks/delivery/index.js +2 -2
  86. package/dist/hooks/index.css +38 -0
  87. package/dist/hooks/index.d.ts +825 -47
  88. package/dist/hooks/index.js +14 -13
  89. package/dist/hooks/operations/command-view/utils/transformCommandViewData.d.ts +194 -3
  90. package/dist/hooks/published.css +38 -0
  91. package/dist/hooks/published.d.ts +825 -47
  92. package/dist/hooks/published.js +14 -13
  93. package/dist/index.css +38 -0
  94. package/dist/index.d.ts +1506 -1212
  95. package/dist/index.js +15 -14
  96. package/dist/initialization/index.d.ts +181 -0
  97. package/dist/knowledge/index.d.ts +813 -1068
  98. package/dist/knowledge/index.js +7370 -2869
  99. package/dist/{chunk-CLUP5H3C.js → knowledge-search-index-5KYPO746.js} +441 -963
  100. package/dist/layout/index.d.ts +6 -0
  101. package/dist/layout/index.js +4 -5
  102. package/dist/organization/index.css +38 -0
  103. package/dist/profile/index.d.ts +181 -0
  104. package/dist/provider/index.css +38 -0
  105. package/dist/provider/index.d.ts +909 -1156
  106. package/dist/provider/index.js +11 -10
  107. package/dist/provider/published.css +38 -0
  108. package/dist/provider/published.d.ts +906 -1153
  109. package/dist/provider/published.js +7 -6
  110. package/dist/supabase/index.d.ts +349 -0
  111. package/dist/test-utils/index.d.ts +16 -9
  112. package/dist/test-utils/index.js +39 -32
  113. package/dist/test-utils/setup.js +1 -1
  114. package/dist/theme/index.js +3 -3
  115. package/dist/theme/presets/index.js +1 -1
  116. package/dist/types/index.d.ts +378 -5
  117. package/dist/utils/index.d.ts +78 -3
  118. package/dist/utils/index.js +1 -1
  119. package/dist/vite/index.js +2 -2
  120. package/dist/vite-plugin-knowledge/index.js +1 -1
  121. package/package.json +47 -37
  122. package/src/provider/README.md +5 -5
  123. package/dist/chunk-2DIYILF7.js +0 -413
  124. package/dist/chunk-3MDNBHVB.js +0 -3868
  125. package/dist/chunk-6IXOKUBC.js +0 -347
  126. package/dist/chunk-AKOD52HS.js +0 -739
  127. package/dist/chunk-ECNNI3NT.js +0 -6
  128. package/dist/chunk-JDNEWB5F.js +0 -10
  129. package/dist/chunk-NITGGYH2.js +0 -476
  130. package/dist/chunk-OAVTMITG.js +0 -13
@@ -0,0 +1,649 @@
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=dark] .mantine-Tabs-root {
562
+ --tab-border-color: var(--color-border);
563
+ }
564
+ .mantine-Tabs-tab:hover {
565
+ background-color: var(--color-surface-hover);
566
+ }
567
+ .mantine-Pagination-control:not([data-active]) {
568
+ background: var(--color-surface);
569
+ }
570
+ ::-webkit-scrollbar {
571
+ width: 5px;
572
+ height: 5px;
573
+ }
574
+ ::-webkit-scrollbar-track {
575
+ background: transparent;
576
+ }
577
+ ::-webkit-scrollbar-thumb {
578
+ background: color-mix(in srgb, var(--color-text-subtle) 50%, var(--color-border));
579
+ border-radius: 4px;
580
+ }
581
+ ::-webkit-scrollbar-thumb:hover {
582
+ background: var(--color-text-subtle);
583
+ }
584
+ [data-mantine-color-scheme] .mantine-Checkbox-input:not(:disabled):not(:checked):not([data-indeterminate]) {
585
+ background-color: var(--color-surface);
586
+ border-color: var(--color-border);
587
+ }
588
+ [data-mantine-color-scheme] .mantine-Checkbox-input:checked,
589
+ [data-mantine-color-scheme] .mantine-Checkbox-input[data-indeterminate] {
590
+ background-color: var(--color-primary);
591
+ border-color: var(--color-primary);
592
+ }
593
+ .mantine-Switch-root:has(input:not(:checked)) .mantine-Switch-track {
594
+ background-color: var(--color-surface-hover);
595
+ border-color: var(--color-border);
596
+ }
597
+ .mantine-Timeline-root {
598
+ --tl-color: var(--color-primary);
599
+ }
600
+ .mantine-Timeline-item {
601
+ --item-border-color: var(--color-border);
602
+ }
603
+ .mantine-Timeline-itemBullet {
604
+ border-color: var(--color-border);
605
+ }
606
+ .mantine-Timeline-itemBullet:where([data-with-child]) {
607
+ background-color: var(--color-primary);
608
+ border-color: var(--color-primary);
609
+ }
610
+ .mantine-Tree-node:focus-visible > [data-value] {
611
+ outline: 2px solid color-mix(in srgb, var(--color-primary) 55%, transparent);
612
+ outline-offset: 2px;
613
+ }
614
+ .mantine-Tree-label[data-hovered] {
615
+ background-color: var(--color-surface-hover);
616
+ border-color: var(--color-border);
617
+ }
618
+ .mantine-Tree-label[data-selected] {
619
+ background-color: color-mix(in srgb, var(--color-primary) 12%, transparent);
620
+ border-color: color-mix(in srgb, var(--color-primary) 38%, var(--color-border));
621
+ color: var(--color-primary);
622
+ }
623
+ [data-knowledge-article] pre {
624
+ white-space: pre-wrap;
625
+ word-break: break-word;
626
+ overflow-x: auto;
627
+ max-width: 100%;
628
+ padding: var(--mantine-spacing-sm);
629
+ background-color: var(--color-surface);
630
+ border: 1px solid var(--color-border);
631
+ border-radius: var(--mantine-radius-sm);
632
+ }
633
+ [data-knowledge-article] pre code {
634
+ background: transparent;
635
+ border: none;
636
+ padding: 0;
637
+ white-space: inherit;
638
+ word-break: inherit;
639
+ }
640
+ .recharts-surface:focus {
641
+ outline: none;
642
+ }
643
+ .hide-scrollbar {
644
+ scrollbar-width: none;
645
+ -ms-overflow-style: none;
646
+ }
647
+ .hide-scrollbar::-webkit-scrollbar {
648
+ display: none;
649
+ }