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