@workflow/web-shared 4.0.1-beta.5

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 (148) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +76 -0
  3. package/dist/api/workflow-api-client.d.ts +303 -0
  4. package/dist/api/workflow-api-client.d.ts.map +1 -0
  5. package/dist/api/workflow-api-client.js +797 -0
  6. package/dist/api/workflow-api-client.js.map +1 -0
  7. package/dist/api/workflow-server-actions.d.ts +97 -0
  8. package/dist/api/workflow-server-actions.d.ts.map +1 -0
  9. package/dist/api/workflow-server-actions.js +329 -0
  10. package/dist/api/workflow-server-actions.js.map +1 -0
  11. package/dist/components/ui/alert.d.ts +9 -0
  12. package/dist/components/ui/alert.d.ts.map +1 -0
  13. package/dist/components/ui/alert.jsx +22 -0
  14. package/dist/components/ui/alert.jsx.map +1 -0
  15. package/dist/index.d.ts +7 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +5 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/lib/utils.d.ts +11 -0
  20. package/dist/lib/utils.d.ts.map +1 -0
  21. package/dist/lib/utils.js +19 -0
  22. package/dist/lib/utils.js.map +1 -0
  23. package/dist/run-trace-view.d.ts +8 -0
  24. package/dist/run-trace-view.d.ts.map +1 -0
  25. package/dist/run-trace-view.jsx +25 -0
  26. package/dist/run-trace-view.jsx.map +1 -0
  27. package/dist/sidebar/attribute-panel.d.ts +11 -0
  28. package/dist/sidebar/attribute-panel.d.ts.map +1 -0
  29. package/dist/sidebar/attribute-panel.jsx +153 -0
  30. package/dist/sidebar/attribute-panel.jsx.map +1 -0
  31. package/dist/sidebar/detail-card.d.ts +6 -0
  32. package/dist/sidebar/detail-card.d.ts.map +1 -0
  33. package/dist/sidebar/detail-card.jsx +13 -0
  34. package/dist/sidebar/detail-card.jsx.map +1 -0
  35. package/dist/sidebar/events-list.d.ts +8 -0
  36. package/dist/sidebar/events-list.d.ts.map +1 -0
  37. package/dist/sidebar/events-list.jsx +67 -0
  38. package/dist/sidebar/events-list.jsx.map +1 -0
  39. package/dist/sidebar/workflow-detail-panel.d.ts +8 -0
  40. package/dist/sidebar/workflow-detail-panel.d.ts.map +1 -0
  41. package/dist/sidebar/workflow-detail-panel.jsx +59 -0
  42. package/dist/sidebar/workflow-detail-panel.jsx.map +1 -0
  43. package/dist/trace-viewer/components/map.d.ts +8 -0
  44. package/dist/trace-viewer/components/map.d.ts.map +1 -0
  45. package/dist/trace-viewer/components/map.jsx +164 -0
  46. package/dist/trace-viewer/components/map.jsx.map +1 -0
  47. package/dist/trace-viewer/components/markers.d.ts +22 -0
  48. package/dist/trace-viewer/components/markers.d.ts.map +1 -0
  49. package/dist/trace-viewer/components/markers.jsx +400 -0
  50. package/dist/trace-viewer/components/markers.jsx.map +1 -0
  51. package/dist/trace-viewer/components/node.d.ts +31 -0
  52. package/dist/trace-viewer/components/node.d.ts.map +1 -0
  53. package/dist/trace-viewer/components/node.jsx +116 -0
  54. package/dist/trace-viewer/components/node.jsx.map +1 -0
  55. package/dist/trace-viewer/components/search-input.d.ts +9 -0
  56. package/dist/trace-viewer/components/search-input.d.ts.map +1 -0
  57. package/dist/trace-viewer/components/search-input.jsx +16 -0
  58. package/dist/trace-viewer/components/search-input.jsx.map +1 -0
  59. package/dist/trace-viewer/components/search.d.ts +3 -0
  60. package/dist/trace-viewer/components/search.d.ts.map +1 -0
  61. package/dist/trace-viewer/components/search.jsx +27 -0
  62. package/dist/trace-viewer/components/search.jsx.map +1 -0
  63. package/dist/trace-viewer/components/span-detail-panel.d.ts +10 -0
  64. package/dist/trace-viewer/components/span-detail-panel.d.ts.map +1 -0
  65. package/dist/trace-viewer/components/span-detail-panel.jsx +388 -0
  66. package/dist/trace-viewer/components/span-detail-panel.jsx.map +1 -0
  67. package/dist/trace-viewer/components/ui.d.ts +28 -0
  68. package/dist/trace-viewer/components/ui.d.ts.map +1 -0
  69. package/dist/trace-viewer/components/ui.jsx +54 -0
  70. package/dist/trace-viewer/components/ui.jsx.map +1 -0
  71. package/dist/trace-viewer/components/zoom-button.d.ts +3 -0
  72. package/dist/trace-viewer/components/zoom-button.d.ts.map +1 -0
  73. package/dist/trace-viewer/components/zoom-button.jsx +40 -0
  74. package/dist/trace-viewer/components/zoom-button.jsx.map +1 -0
  75. package/dist/trace-viewer/components/zoom-icons.d.ts +11 -0
  76. package/dist/trace-viewer/components/zoom-icons.d.ts.map +1 -0
  77. package/dist/trace-viewer/components/zoom-icons.jsx +23 -0
  78. package/dist/trace-viewer/components/zoom-icons.jsx.map +1 -0
  79. package/dist/trace-viewer/context.d.ts +183 -0
  80. package/dist/trace-viewer/context.d.ts.map +1 -0
  81. package/dist/trace-viewer/context.jsx +326 -0
  82. package/dist/trace-viewer/context.jsx.map +1 -0
  83. package/dist/trace-viewer/index.d.ts +5 -0
  84. package/dist/trace-viewer/index.d.ts.map +1 -0
  85. package/dist/trace-viewer/index.jsx +4 -0
  86. package/dist/trace-viewer/index.jsx.map +1 -0
  87. package/dist/trace-viewer/trace-viewer.d.ts +22 -0
  88. package/dist/trace-viewer/trace-viewer.d.ts.map +1 -0
  89. package/dist/trace-viewer/trace-viewer.jsx +311 -0
  90. package/dist/trace-viewer/trace-viewer.jsx.map +1 -0
  91. package/dist/trace-viewer/trace-viewer.module.css +1275 -0
  92. package/dist/trace-viewer/types.d.ts +201 -0
  93. package/dist/trace-viewer/types.d.ts.map +1 -0
  94. package/dist/trace-viewer/types.js +2 -0
  95. package/dist/trace-viewer/types.js.map +1 -0
  96. package/dist/trace-viewer/util/constants.d.ts +9 -0
  97. package/dist/trace-viewer/util/constants.d.ts.map +1 -0
  98. package/dist/trace-viewer/util/constants.js +9 -0
  99. package/dist/trace-viewer/util/constants.js.map +1 -0
  100. package/dist/trace-viewer/util/scrollbar-width.d.ts +2 -0
  101. package/dist/trace-viewer/util/scrollbar-width.d.ts.map +1 -0
  102. package/dist/trace-viewer/util/scrollbar-width.js +14 -0
  103. package/dist/trace-viewer/util/scrollbar-width.js.map +1 -0
  104. package/dist/trace-viewer/util/timing.d.ts +8 -0
  105. package/dist/trace-viewer/util/timing.d.ts.map +1 -0
  106. package/dist/trace-viewer/util/timing.js +29 -0
  107. package/dist/trace-viewer/util/timing.js.map +1 -0
  108. package/dist/trace-viewer/util/tree.d.ts +13 -0
  109. package/dist/trace-viewer/util/tree.d.ts.map +1 -0
  110. package/dist/trace-viewer/util/tree.js +223 -0
  111. package/dist/trace-viewer/util/tree.js.map +1 -0
  112. package/dist/trace-viewer/util/use-immediate-style.d.ts +15 -0
  113. package/dist/trace-viewer/util/use-immediate-style.d.ts.map +1 -0
  114. package/dist/trace-viewer/util/use-immediate-style.js +22 -0
  115. package/dist/trace-viewer/util/use-immediate-style.js.map +1 -0
  116. package/dist/trace-viewer/util/use-streaming-spans.d.ts +8 -0
  117. package/dist/trace-viewer/util/use-streaming-spans.d.ts.map +1 -0
  118. package/dist/trace-viewer/util/use-streaming-spans.js +332 -0
  119. package/dist/trace-viewer/util/use-streaming-spans.js.map +1 -0
  120. package/dist/trace-viewer/util/use-trackpad-zoom.d.ts +6 -0
  121. package/dist/trace-viewer/util/use-trackpad-zoom.d.ts.map +1 -0
  122. package/dist/trace-viewer/util/use-trackpad-zoom.jsx +38 -0
  123. package/dist/trace-viewer/util/use-trackpad-zoom.jsx.map +1 -0
  124. package/dist/trace-viewer/worker.d.ts +2 -0
  125. package/dist/trace-viewer/worker.d.ts.map +1 -0
  126. package/dist/trace-viewer/worker.js +107 -0
  127. package/dist/trace-viewer/worker.js.map +1 -0
  128. package/dist/workflow-trace-view.d.ts +12 -0
  129. package/dist/workflow-trace-view.d.ts.map +1 -0
  130. package/dist/workflow-trace-view.jsx +129 -0
  131. package/dist/workflow-trace-view.jsx.map +1 -0
  132. package/dist/workflow-traces/event-colors.d.ts +31 -0
  133. package/dist/workflow-traces/event-colors.d.ts.map +1 -0
  134. package/dist/workflow-traces/event-colors.js +68 -0
  135. package/dist/workflow-traces/event-colors.js.map +1 -0
  136. package/dist/workflow-traces/trace-colors.d.ts +15 -0
  137. package/dist/workflow-traces/trace-colors.d.ts.map +1 -0
  138. package/dist/workflow-traces/trace-colors.js +89 -0
  139. package/dist/workflow-traces/trace-colors.js.map +1 -0
  140. package/dist/workflow-traces/trace-span-construction.d.ts +31 -0
  141. package/dist/workflow-traces/trace-span-construction.d.ts.map +1 -0
  142. package/dist/workflow-traces/trace-span-construction.js +173 -0
  143. package/dist/workflow-traces/trace-span-construction.js.map +1 -0
  144. package/dist/workflow-traces/trace-time-utils.d.ts +13 -0
  145. package/dist/workflow-traces/trace-time-utils.d.ts.map +1 -0
  146. package/dist/workflow-traces/trace-time-utils.js +34 -0
  147. package/dist/workflow-traces/trace-time-utils.js.map +1 -0
  148. package/package.json +59 -0
@@ -0,0 +1,1275 @@
1
+ .traceNode {
2
+ position: relative;
3
+ }
4
+
5
+ .childRow {
6
+ display: flex;
7
+ flex-direction: row;
8
+ align-items: flex-start;
9
+ }
10
+
11
+ .spanNode {
12
+ position: absolute;
13
+ display: flex;
14
+ flex-direction: row;
15
+ align-items: center;
16
+ padding: 0;
17
+ background-color: var(--span-background);
18
+ color: var(--span-text);
19
+ border: 1px solid var(--span-border);
20
+ border-radius: 8px;
21
+ text-overflow: ellipsis;
22
+ white-space: nowrap;
23
+ box-shadow: var(--ds-shadow-small);
24
+ overflow: hidden;
25
+ text-overflow: ellipsis;
26
+ content-visibility: auto;
27
+ cursor: pointer;
28
+ user-select: none;
29
+ z-index: 2;
30
+
31
+ &.huge {
32
+ overflow: visible;
33
+
34
+ & .spanName {
35
+ flex: 0 1 auto;
36
+ position: sticky;
37
+ left: 0;
38
+ }
39
+
40
+ & .spanSpacer {
41
+ flex: 1 0 0;
42
+ }
43
+
44
+ & .spanDuration {
45
+ position: sticky;
46
+ right: 0;
47
+ background-color: var(--span-background);
48
+ padding-left: 6px;
49
+ box-shadow: -8px 0 16px 8px var(--span-background);
50
+ }
51
+ }
52
+
53
+ &::after {
54
+ position: absolute;
55
+ left: -1px;
56
+ top: -1px;
57
+ width: var(--span-width);
58
+ height: var(--row-height);
59
+ content: '';
60
+ }
61
+
62
+ &.small:not(.xHover)::after {
63
+ top: -7px;
64
+ }
65
+
66
+ &:hover:not(.selected) {
67
+ filter: brightness(0.95);
68
+ }
69
+
70
+ &.xHover {
71
+ z-index: 3;
72
+ min-width: var(--span-width);
73
+ max-width: 75%;
74
+ background: linear-gradient(
75
+ 90deg,
76
+ var(--span-background) calc(var(--span-width) - 1px),
77
+ var(--span-line),
78
+ var(--geist-background) calc(var(--span-width) + 1px)
79
+ );
80
+
81
+ &[data-right-side='true'] {
82
+ background: linear-gradient(
83
+ 270deg,
84
+ var(--span-background) calc(var(--span-width) - 1px),
85
+ var(--span-line),
86
+ var(--geist-background) calc(var(--span-width) + 1px)
87
+ );
88
+ }
89
+
90
+ & .spanName {
91
+ max-width: max(var(--span-width), 40vw);
92
+ }
93
+
94
+ & .spanDuration {
95
+ background: none;
96
+ box-shadow: none;
97
+ }
98
+ }
99
+
100
+ &.small:not(.xHover) {
101
+ background-color: var(--span-background);
102
+ border-color: var(--span-border);
103
+ border-radius: 4px;
104
+ }
105
+
106
+ &.selected {
107
+ border-width: 2px;
108
+ outline: 2px solid var(--span-border);
109
+ outline-offset: -1px;
110
+
111
+ &:hover {
112
+ filter: brightness(0.95);
113
+ }
114
+ }
115
+ }
116
+
117
+ .spanNodeEvent {
118
+ position: absolute;
119
+ height: var(--row-height);
120
+ pointer-events: none;
121
+ z-index: 4;
122
+
123
+ & .eventDiamond {
124
+ --size: 7px;
125
+ --offset: -4px;
126
+ position: absolute;
127
+ left: var(--offset);
128
+ bottom: calc(var(--offset) + 1px);
129
+ width: var(--size);
130
+ height: var(--size);
131
+ border: 1px solid var(--span-secondary);
132
+ border-radius: 2px;
133
+ background: var(--span-background);
134
+ transform-origin: 50% 50% 0;
135
+ transform: rotate(45deg);
136
+ }
137
+
138
+ /* Workflow-specific: Use custom event color if provided */
139
+ &.customEventColor .eventDiamond {
140
+ border-color: var(--event-color, var(--span-border));
141
+ background: var(--event-color, var(--span-background));
142
+ opacity: 0.8;
143
+ }
144
+ &.customEventColor .hoverInfo {
145
+ border-color: var(--span-border);
146
+ background: var(--span-background);
147
+ }
148
+ &.customEventColor .hoverInfo .eventName {
149
+ color: var(--span-text);
150
+ font-weight: 500;
151
+ }
152
+ &.customEventColor .hoverInfo .eventTimestamp {
153
+ color: var(--span-secondary);
154
+ }
155
+
156
+ & .hoverInfo {
157
+ position: absolute;
158
+ margin-top: -1px;
159
+ top: 100%;
160
+ display: none;
161
+ flex-direction: row;
162
+ align-items: center;
163
+ gap: 6px;
164
+ padding: 3px 6px;
165
+ font-size: 12px;
166
+ line-height: 1;
167
+ background: var(--span-background);
168
+ border: 1px solid var(--span-border);
169
+ border-radius: 6px;
170
+ box-shadow: var(--ds-shadow-small);
171
+ transform: translateY(-50%);
172
+
173
+ &.alignStart {
174
+ left: -10px;
175
+ padding-left: 18px;
176
+ }
177
+ &.alignEnd {
178
+ right: -10px;
179
+ padding-right: 18px;
180
+ }
181
+
182
+ & .eventName {
183
+ color: var(--span-text);
184
+ }
185
+ & .eventTimestamp {
186
+ color: var(--span-secondary);
187
+ font-variant-numeric: tabular-nums;
188
+ }
189
+ }
190
+
191
+ &[data-hovered='true'] {
192
+ z-index: 4;
193
+
194
+ & .eventDiamond {
195
+ background: var(--span-text);
196
+ border-color: var(--span-text);
197
+ }
198
+ & .hoverInfo {
199
+ display: flex;
200
+ }
201
+ }
202
+ }
203
+
204
+ .colorVercel {
205
+ --span-background: var(--ds-background-100);
206
+ --span-border: var(--ds-gray-500);
207
+ --span-line: var(--ds-gray-400);
208
+ --span-text: var(--ds-gray-1000);
209
+ --span-secondary: var(--ds-gray-900);
210
+ --geist-background: var(--ds-gray-100);
211
+ }
212
+ .color0 {
213
+ --span-background: var(--ds-teal-200);
214
+ --span-border: var(--ds-teal-500);
215
+ --span-line: var(--ds-teal-400);
216
+ --span-text: var(--ds-gray-1000);
217
+ --span-secondary: var(--ds-teal-900);
218
+ }
219
+ .color1 {
220
+ --span-background: var(--ds-blue-200);
221
+ --span-border: var(--ds-blue-500);
222
+ --span-line: var(--ds-blue-400);
223
+ --span-text: var(--ds-gray-1000);
224
+ --span-secondary: var(--ds-blue-900);
225
+ }
226
+ .color2 {
227
+ --span-background: var(--ds-green-200);
228
+ --span-border: var(--ds-green-500);
229
+ --span-line: var(--ds-green-400);
230
+ --span-text: var(--ds-gray-1000);
231
+ --span-secondary: var(--ds-green-900);
232
+ }
233
+ .color3 {
234
+ --span-background: var(--ds-purple-200);
235
+ --span-border: var(--ds-purple-500);
236
+ --span-line: var(--ds-purple-400);
237
+ --span-text: var(--ds-gray-1000);
238
+ --span-secondary: var(--ds-purple-900);
239
+ }
240
+ .color4 {
241
+ --span-background: var(--ds-pink-200);
242
+ --span-border: var(--ds-pink-500);
243
+ --span-line: var(--ds-pink-400);
244
+ --span-text: var(--ds-gray-1000);
245
+ --span-secondary: var(--ds-pink-900);
246
+ }
247
+ .colorHighlight {
248
+ --span-background: var(--ds-amber-200);
249
+ --span-border: var(--ds-amber-500);
250
+ --span-line: var(--ds-amber-400);
251
+ --span-text: var(--ds-gray-1000);
252
+ --span-secondary: var(--ds-amber-900);
253
+ }
254
+
255
+ .unlit {
256
+ opacity: 0.3;
257
+ }
258
+
259
+ :global(.dark-theme),
260
+ :global(.dark) {
261
+ & .mapContainer canvas {
262
+ filter: invert(1);
263
+ }
264
+
265
+ & .spanNode.small {
266
+ &.xHover,
267
+ &:focus-visible {
268
+ &::before {
269
+ text-shadow: 0 1px 0 black;
270
+ }
271
+ }
272
+ }
273
+
274
+ & .spanNode:hover:not(.selected) {
275
+ filter: brightness(1.05);
276
+ }
277
+
278
+ & .spanNode.selected:hover {
279
+ filter: brightness(1.05);
280
+ }
281
+ }
282
+
283
+ @media (prefers-color-scheme: dark) {
284
+ :global(:root:not(.light)) {
285
+ & .mapContainer canvas {
286
+ filter: invert(1);
287
+ }
288
+
289
+ & .spanNode.small {
290
+ &.xHover,
291
+ &:focus-visible {
292
+ &::before {
293
+ text-shadow: 0 1px 0 black;
294
+ }
295
+ }
296
+ }
297
+
298
+ & .spanNode:hover:not(.selected) {
299
+ filter: brightness(1.05);
300
+ }
301
+
302
+ & .spanNode.selected:hover {
303
+ filter: brightness(1.05);
304
+ }
305
+ }
306
+ }
307
+
308
+ .spanName {
309
+ flex: 1 1 auto;
310
+ padding-inline: 6px;
311
+ text-align: left;
312
+ overflow: hidden;
313
+ text-overflow: ellipsis;
314
+ }
315
+
316
+ .spanDuration {
317
+ flex: 0 0 auto;
318
+ padding-right: 6px;
319
+ font-variant-numeric: tabular-nums;
320
+ color: var(--span-secondary, var(--ds-gray-alpha-700));
321
+ }
322
+
323
+ /* SPAN DETAIL PANEL */
324
+ .spanDetailPanel {
325
+ display: flex;
326
+ flex-direction: column;
327
+ height: var(--panel-height);
328
+ align-items: stretch;
329
+ justify-content: flex-start;
330
+ flex: 0 1 auto;
331
+ }
332
+
333
+ .spanDetailPanelResizer {
334
+ position: absolute;
335
+ left: 0;
336
+ top: 0;
337
+ width: 20px;
338
+ height: 100%;
339
+ cursor: col-resize;
340
+ z-index: 1;
341
+
342
+ display: none;
343
+ @media (hover: hover) {
344
+ display: block;
345
+ }
346
+ }
347
+
348
+ .spanDetailPanelTop {
349
+ display: flex;
350
+ flex-direction: row;
351
+ align-items: stretch;
352
+ flex: 0 1 auto;
353
+ justify-content: space-between;
354
+ position: relative;
355
+ }
356
+
357
+ .spanDetailPanelBody {
358
+ display: flex;
359
+ flex-direction: column;
360
+ align-items: stretch;
361
+ justify-content: flex-start;
362
+ gap: 12px;
363
+ flex: 0 1 100%;
364
+ padding: 16px 12px 24px;
365
+ overflow-x: hidden;
366
+ overflow-y: auto;
367
+ }
368
+
369
+ .spanDetailPanelTopInfo {
370
+ --row-height: 40px;
371
+ display: flex;
372
+ flex-direction: row;
373
+ align-items: center;
374
+ justify-content: space-between;
375
+ gap: 12px;
376
+ padding: 12px 16px;
377
+ width: 100%;
378
+ font-size: 14px;
379
+ border-bottom: 1px solid var(--border-color);
380
+ flex: 0 1 auto;
381
+ }
382
+
383
+ .spanNameDetailPanel {
384
+ font-size: inherit;
385
+ color: var(--ds-gray-1000);
386
+ word-break: break-word;
387
+ }
388
+
389
+ .spanDetailPanelTruncatedHeading {
390
+ display: flex;
391
+ flex-direction: row;
392
+ align-items: center;
393
+ gap: 12px;
394
+ flex: 0 1 100%;
395
+ overflow: hidden;
396
+ justify-content: flex-start;
397
+ }
398
+
399
+ .spanDetailPanelName {
400
+ flex: 0 1 100%;
401
+ font-size: 14px;
402
+ min-width: 0;
403
+ overflow: hidden;
404
+ text-overflow: ellipsis;
405
+ white-space: nowrap;
406
+ }
407
+
408
+ .spanDetailPanelDuration {
409
+ font-family: var(--font-mono);
410
+ font-size: 13px;
411
+ font-variant-numeric: tabular-nums;
412
+ color: var(--ds-gray-900);
413
+ }
414
+
415
+ .spanDetailPanelCorner {
416
+ display: flex;
417
+ flex-direction: row;
418
+ align-items: center;
419
+ gap: 8px;
420
+ flex: 0 0 auto;
421
+ height: var(--row-height);
422
+ justify-content: flex-start;
423
+ }
424
+
425
+ .spanDetailPanelCornerInner {
426
+ display: flex;
427
+ flex-direction: row;
428
+ align-items: stretch;
429
+ justify-content: flex-start;
430
+ flex: 0 1 auto;
431
+ }
432
+
433
+ .spanDetailPanelCloseVerticalRule {
434
+ border-left: 1px solid var(--accents-2);
435
+ height: var(--geist-space-gap);
436
+ }
437
+
438
+ .spanDetailPanelClose {
439
+ display: flex;
440
+ align-items: center;
441
+ justify-content: center;
442
+ width: 32px;
443
+ height: 32px;
444
+ background: none;
445
+ border: none;
446
+ border-radius: 6px;
447
+ cursor: pointer;
448
+
449
+ &:hover,
450
+ &:focus-visible {
451
+ background-color: var(--ds-gray-200);
452
+ }
453
+ }
454
+
455
+ .spanDetailPanelAttribute {
456
+ margin: 0;
457
+ padding-block: 8px;
458
+ display: flex;
459
+ flex-direction: row;
460
+ align-items: center;
461
+ justify-content: space-between;
462
+ gap: 16px;
463
+ font-size: 14px;
464
+ line-height: 1.4;
465
+ border-bottom: 1px solid var(--border-color);
466
+
467
+ &:last-child {
468
+ border-bottom: none;
469
+ }
470
+ }
471
+
472
+ .spanDetailPanelAttributeKey {
473
+ flex: 0 0 auto;
474
+ margin: 0;
475
+ padding-left: 8px;
476
+ font-size: inherit;
477
+ color: var(--ds-gray-900);
478
+ }
479
+
480
+ .spanDetailPanelAttributeValue {
481
+ flex: 0 1 auto;
482
+ margin: 0;
483
+ padding-right: 8px;
484
+ font-family: var(--font-mono);
485
+ font-size: 13px;
486
+ white-space: nowrap;
487
+ overflow-x: hidden;
488
+ text-overflow: ellipsis;
489
+ }
490
+
491
+ .spanDetailPanelQuickLink {
492
+ color: inherit;
493
+ text-decoration: none;
494
+ &:hover .spanDetailPanelQuickLinkLabel {
495
+ text-decoration: underline;
496
+ }
497
+ }
498
+
499
+ .spanDetailPanelQuickLinkLabel {
500
+ display: flex;
501
+ flex-direction: row;
502
+ align-items: center;
503
+ gap: 8px;
504
+ font: inherit;
505
+ }
506
+
507
+ .detailGroup {
508
+ display: flex;
509
+ flex-direction: column;
510
+ align-items: stretch;
511
+ justify-content: flex-start;
512
+ flex: 0 1 auto;
513
+ &::after {
514
+ margin: 12px -12px 0;
515
+ height: 1px;
516
+ background: var(--border-color);
517
+ content: '';
518
+ }
519
+ }
520
+
521
+ .expanded,
522
+ .collapsed,
523
+ .ancestorGroup {
524
+ /* Explicit class tokens used by TS for CSS Modules */
525
+ }
526
+
527
+ .detailHeading {
528
+ display: flex;
529
+ flex-direction: row;
530
+ justify-content: space-between;
531
+ align-items: center;
532
+ padding: 8px;
533
+ font-family: inherit;
534
+ font-size: 14px;
535
+ font-weight: 500;
536
+ background: none;
537
+ color: var(--ds-gray-1000);
538
+ border: none;
539
+ border-radius: 6px;
540
+ cursor: pointer;
541
+ -webkit-tap-highlight-color: transparent;
542
+
543
+ &:hover,
544
+ &:focus-visible {
545
+ background-color: var(--ds-gray-100);
546
+ }
547
+ }
548
+
549
+ /* Local replacements for external UI */
550
+ .buttonLink {
551
+ display: inline-flex;
552
+ align-items: center;
553
+ gap: 6px;
554
+ padding: 4px 8px;
555
+ font-size: 12px;
556
+ line-height: 1;
557
+ color: var(--ds-gray-1000);
558
+ text-decoration: none;
559
+ background-color: var(--ds-background-100);
560
+ border: 1px solid var(--accents-2);
561
+ border-radius: 6px;
562
+ }
563
+
564
+ .buttonLink:hover,
565
+ .buttonLink:focus-visible {
566
+ background-color: var(--ds-gray-100);
567
+ }
568
+
569
+ .note {
570
+ padding: 8px 10px;
571
+ color: var(--ds-gray-900);
572
+ background-color: var(--ds-background-100);
573
+ border: 1px solid var(--ds-gray-300);
574
+ border-radius: 6px;
575
+ }
576
+
577
+ .skeleton {
578
+ display: inline-block;
579
+ background-color: var(--ds-gray-200);
580
+ border-radius: 4px;
581
+ }
582
+
583
+ .skeletonRounded {
584
+ border-radius: 50%;
585
+ }
586
+
587
+ .detailGroup.collapsed .detailHeadingIcon {
588
+ transform: rotate(-90deg);
589
+ }
590
+
591
+ .infraSpanDescription {
592
+ padding: 8px;
593
+ font-size: 14px;
594
+ line-height: 1.4;
595
+ color: var(--ds-gray-900);
596
+ display: flex;
597
+ flex-direction: column;
598
+ gap: 16px;
599
+ }
600
+
601
+ .ancestorNode {
602
+ padding: 8px 8px 8px;
603
+ font-family: inherit;
604
+ font-size: 13px;
605
+ background: none;
606
+ border: none;
607
+ border-radius: 6px;
608
+ cursor: pointer;
609
+ -webkit-tap-highlight-color: transparent;
610
+
611
+ &:hover,
612
+ &:focus-visible {
613
+ background: var(--ds-gray-100);
614
+ }
615
+ }
616
+
617
+ .ancestorText {
618
+ display: flex;
619
+ flex-direction: row;
620
+ justify-content: space-between;
621
+ align-items: center;
622
+ gap: 4px;
623
+ color: var(--ds-gray-900);
624
+ white-space: nowrap;
625
+ }
626
+
627
+ .ancestorName {
628
+ overflow: hidden;
629
+ text-overflow: ellipsis;
630
+ }
631
+
632
+ .ancestorDuration {
633
+ /* font-family: var(--font-mono); */
634
+ font-variant-numeric: tabular-nums;
635
+ }
636
+
637
+ .ancestorLineContainer {
638
+ position: relative;
639
+ margin-top: 6px;
640
+ display: block;
641
+ width: 100%;
642
+ height: 1px;
643
+ background-color: var(--ds-gray-alpha-400);
644
+
645
+ &::before,
646
+ &::after {
647
+ position: absolute;
648
+ top: -2px;
649
+ width: 1px;
650
+ height: 5px;
651
+ background-color: inherit;
652
+ content: '';
653
+ }
654
+
655
+ &::before {
656
+ left: 0;
657
+ }
658
+
659
+ &::after {
660
+ right: 0;
661
+ }
662
+ }
663
+
664
+ .ancestorLine {
665
+ position: absolute;
666
+ top: -2px;
667
+ height: 5px;
668
+ background-color: var(--span-background);
669
+ border: 1px solid var(--span-line);
670
+ border-radius: 1px;
671
+ }
672
+
673
+ .ancestorNode {
674
+ &:hover,
675
+ &:focus-visible,
676
+ &:last-of-type {
677
+ & .ancestorName {
678
+ color: var(--ds-gray-1000);
679
+ }
680
+
681
+ & .ancestorLine {
682
+ background-color: var(--span-line);
683
+ border-color: var(--span-border);
684
+ }
685
+ }
686
+ }
687
+
688
+ /* ZOOM BUTTON */
689
+ .zoomButtonGroup {
690
+ display: inline-flex;
691
+ flex-direction: row;
692
+ align-items: stretch;
693
+ justify-content: flex-start;
694
+ flex: 0 1 auto;
695
+ background-color: var(--geist-background);
696
+ border-radius: 10ex;
697
+ box-shadow: var(--ds-shadow-small);
698
+ border: 1px solid var(--accents-2);
699
+ animation: zoom-buttons-fade-in 0.3s ease 0.3s backwards;
700
+ }
701
+
702
+ @keyframes zoom-buttons-fade-in {
703
+ from {
704
+ opacity: 0;
705
+ }
706
+ to {
707
+ opacity: 1;
708
+ }
709
+ }
710
+
711
+ .zoomButton {
712
+ display: flex;
713
+ align-items: center;
714
+ justify-content: center;
715
+ padding: 6px;
716
+ height: 32px;
717
+ width: 38px;
718
+ background-color: transparent;
719
+ border: none;
720
+ color: var(--accents-5);
721
+ box-shadow: none !important;
722
+ cursor: pointer;
723
+
724
+ &:hover,
725
+ &:focus-visible {
726
+ color: var(--accents-7);
727
+ }
728
+ }
729
+
730
+ .zoomButton:hover {
731
+ background-color: transparent;
732
+ color: var(--accents-7);
733
+ }
734
+
735
+ .zoomButton:focus-visible {
736
+ /* TODO */
737
+ }
738
+
739
+ .divider {
740
+ width: 1px;
741
+ background-color: var(--accents-2);
742
+ margin: -1px;
743
+ }
744
+
745
+ /* TRACE */
746
+ .markersContainer {
747
+ position: absolute;
748
+ left: -8px;
749
+ top: -8px;
750
+ width: 100%;
751
+ height: calc(100% - var(--scrollbar-width));
752
+ line-height: 1;
753
+ z-index: 4;
754
+ pointer-events: none;
755
+ }
756
+
757
+ .markers {
758
+ position: sticky;
759
+ top: 0;
760
+ display: flex;
761
+ flex-direction: row;
762
+ gap: calc(var(--marker-width) - 1px);
763
+ height: var(--marker-height);
764
+ padding-left: 8px;
765
+ background: var(--ds-background-200);
766
+ overflow: hidden;
767
+ box-shadow: 0 4px 8px 0 var(--ds-background-200);
768
+ border-bottom: 1px solid var(--marker-color);
769
+ }
770
+
771
+ .marker {
772
+ position: relative;
773
+ flex: 0 0 1px;
774
+ border-left: 1px solid var(--marker-color);
775
+ font-size: 10px;
776
+ font-variant-numeric: tabular-nums;
777
+ color: var(--ds-gray-900);
778
+
779
+ height: var(--marker-height);
780
+ &.notch {
781
+ top: calc(var(--marker-height) - var(--marker-notch-height));
782
+ height: var(--marker-notch-height);
783
+ }
784
+ }
785
+
786
+ .markerLabel {
787
+ position: absolute;
788
+ left: 2px;
789
+ bottom: 6px;
790
+ color: var(--ds-gray-900);
791
+ user-select: none;
792
+ }
793
+
794
+ .eventMarkersContainer {
795
+ position: absolute;
796
+ top: -8px;
797
+ width: var(--timeline-scroll-width);
798
+ height: calc(100% - var(--scrollbar-width));
799
+ line-height: 1;
800
+ z-index: 1;
801
+ pointer-events: none;
802
+ }
803
+
804
+ .eventMarkers {
805
+ position: sticky;
806
+ top: 0;
807
+ height: calc(100% + 2 * var(--timeline-padding));
808
+ overflow: hidden;
809
+ }
810
+
811
+ .eventMarker {
812
+ position: absolute;
813
+ border-left: 1px dotted var(--ds-gray-500);
814
+ height: 100%;
815
+ }
816
+
817
+ .cursorMarkerStickyParent {
818
+ position: absolute;
819
+ left: 0;
820
+ top: -8px;
821
+ width: var(--timeline-scroll-width);
822
+ height: calc(100% + 2 * var(--timeline-padding));
823
+ pointer-events: none;
824
+ }
825
+
826
+ .cursorMarkerLabelContainer {
827
+ position: sticky;
828
+ top: 0;
829
+ left: 0;
830
+ display: none;
831
+ width: 1px;
832
+ height: 100%;
833
+ z-index: 5;
834
+ pointer-events: none;
835
+ }
836
+
837
+ .cursorMarkerLabel {
838
+ position: sticky;
839
+ top: 4px;
840
+ width: 1px;
841
+ height: var(--marker-height);
842
+ background-color: var(--marker-color);
843
+
844
+ &[data-text]::before {
845
+ margin: 0;
846
+ position: absolute;
847
+ left: 0;
848
+ top: 0;
849
+ padding: 0 6px;
850
+ height: 18px;
851
+ line-height: 16px;
852
+ transform: translateX(-50%);
853
+ font-size: 10px;
854
+ font-weight: 500;
855
+ font-variant-numeric: tabular-nums;
856
+ background-color: var(--ds-background-100);
857
+ color: var(--ds-gray-900);
858
+ border: 1px solid var(--ds-gray-500);
859
+ border-radius: 10ex;
860
+ box-shadow: var(--ds-shadow-small);
861
+ content: attr(data-text);
862
+ }
863
+
864
+ &[data-align='left']::before {
865
+ left: -6px;
866
+ transform: unset;
867
+ }
868
+
869
+ &[data-align='right']::before {
870
+ left: unset;
871
+ right: -6px;
872
+ transform: unset;
873
+ }
874
+ }
875
+
876
+ .cursorMarkerContainer {
877
+ position: sticky;
878
+ top: 0;
879
+ width: 1px;
880
+ height: 100%;
881
+ pointer-events: none;
882
+ }
883
+
884
+ .cursorMarker {
885
+ position: sticky;
886
+ top: 0;
887
+ width: 1px;
888
+ height: 100%;
889
+ display: none;
890
+ background-color: var(--marker-color);
891
+ z-index: 1;
892
+ }
893
+
894
+ .cursorSelection {
895
+ position: absolute;
896
+ top: 0;
897
+ height: 100%;
898
+ display: none;
899
+ flex-direction: row;
900
+ justify-content: space-between;
901
+ align-items: flex-end;
902
+ gap: 8px;
903
+ background-color: var(--ds-gray-100);
904
+ border-inline: 1px solid var(--ds-gray-300);
905
+
906
+ &::before,
907
+ &::after {
908
+ position: sticky;
909
+ bottom: 8px;
910
+ padding: 0 6px;
911
+ height: 18px;
912
+ line-height: 16px;
913
+ font-size: 10px;
914
+ font-weight: 500;
915
+ font-variant-numeric: tabular-nums;
916
+ background-color: var(--ds-background-100);
917
+ color: var(--ds-gray-900);
918
+ border: 1px solid var(--ds-gray-500);
919
+ border-radius: 10ex;
920
+ box-shadow: var(--ds-shadow-small);
921
+ white-space: nowrap;
922
+ }
923
+
924
+ &::before {
925
+ margin-left: 8px;
926
+ content: attr(data-range);
927
+ }
928
+ &::after {
929
+ margin-right: 8px;
930
+ content: attr(data-duration);
931
+ }
932
+ }
933
+
934
+ @keyframes span-skeleton {
935
+ from {
936
+ opacity: 0.6;
937
+ }
938
+
939
+ to {
940
+ opacity: 0.3;
941
+ }
942
+ }
943
+
944
+ .traceViewer {
945
+ &.skeleton {
946
+ & * {
947
+ pointer-events: none !important;
948
+ }
949
+
950
+ & .mapCanvas {
951
+ display: none;
952
+ }
953
+
954
+ & .markerLabel {
955
+ display: none;
956
+ }
957
+
958
+ & .spanNode {
959
+ animation: span-skeleton 1s infinite alternate;
960
+
961
+ & * {
962
+ display: none;
963
+ }
964
+ }
965
+
966
+ & .zoomButtonTraceViewer {
967
+ display: none;
968
+ }
969
+ }
970
+
971
+ & .markers {
972
+ border-top: 1px solid var(--marker-color);
973
+ border-bottom: none;
974
+ }
975
+
976
+ & .marker.notch {
977
+ top: 0;
978
+ }
979
+
980
+ & .markerLabel {
981
+ bottom: 3px;
982
+ }
983
+
984
+ & .cursorMarkerLabel {
985
+ top: 8px;
986
+ }
987
+ }
988
+
989
+ .timeline:hover {
990
+ & .cursorMarkerLabelContainer,
991
+ & .cursorMarker {
992
+ display: block;
993
+ }
994
+ }
995
+
996
+ /* SEARCH BAR */
997
+ .searchBar {
998
+ position: absolute;
999
+ left: 0;
1000
+ top: var(--search-gap);
1001
+ display: flex;
1002
+ flex-direction: row;
1003
+ gap: var(--search-gap);
1004
+ width: 100%;
1005
+ padding-inline: var(--search-gap);
1006
+ height: var(--search-height);
1007
+ }
1008
+
1009
+ .searchInput {
1010
+ flex: 0 1 100%;
1011
+ position: relative;
1012
+ height: var(--search-height);
1013
+ background: var(--ds-background-100);
1014
+ }
1015
+
1016
+ .searchInputLabel {
1017
+ display: flex;
1018
+ align-items: center;
1019
+ justify-content: center;
1020
+ border-radius: 6px;
1021
+ box-shadow: 0 0 0 1px var(--border-color, var(--ds-gray-alpha-400));
1022
+
1023
+ & input {
1024
+ margin-left: -16px;
1025
+ padding-inline: 12px;
1026
+ font-family: inherit;
1027
+ font-size: 14px;
1028
+ background: transparent;
1029
+ border: none;
1030
+ outline: none;
1031
+
1032
+ &::-webkit-search-decoration,
1033
+ &::-webkit-search-cancel-button,
1034
+ &::-webkit-search-results-button,
1035
+ &::-webkit-search-results-decoration {
1036
+ display: none;
1037
+ }
1038
+ }
1039
+ }
1040
+
1041
+ .searchInputPrefix {
1042
+ width: var(--search-height);
1043
+ height: var(--search-height);
1044
+ display: flex;
1045
+ align-items: center;
1046
+ justify-content: center;
1047
+ color: var(--ds-gray-800);
1048
+ }
1049
+
1050
+ /* MINI MAP */
1051
+ .mapContainer {
1052
+ position: absolute;
1053
+ left: 0;
1054
+ top: calc(var(--search-height) + 2 * var(--search-gap));
1055
+ /* border-bottom: 1px solid var(--border-color); */
1056
+ cursor: move;
1057
+ }
1058
+
1059
+ .mapCanvas {
1060
+ position: absolute;
1061
+ left: 0;
1062
+ top: 0;
1063
+ z-index: 1;
1064
+ pointer-events: none;
1065
+ mix-blend-mode: multiply;
1066
+ }
1067
+
1068
+ :global(.dark-theme) .mapCanvas,
1069
+ :global(.dark) .mapCanvas {
1070
+ mix-blend-mode: screen;
1071
+ }
1072
+
1073
+ @media (prefers-color-scheme: dark) {
1074
+ :global(:root:not(.light)) .mapCanvas {
1075
+ mix-blend-mode: screen;
1076
+ }
1077
+ }
1078
+
1079
+ .mapThumb {
1080
+ position: absolute;
1081
+ top: 0;
1082
+ height: var(--map-height);
1083
+ background: var(--ds-gray-alpha-200);
1084
+ border: 1px solid var(--ds-gray-alpha-400);
1085
+ border-radius: 3px;
1086
+ box-shadow: var(--ds-shadow-small);
1087
+ transform: translateX(var(--timeline-padding));
1088
+ pointer-events: none;
1089
+ }
1090
+
1091
+ /* TRACE VIEWER */
1092
+ .traceViewer,
1093
+ .spanDetailPanelTraceViewer {
1094
+ --border-color: var(--ds-gray-300);
1095
+ --marker-color: var(--ds-gray-300);
1096
+ }
1097
+
1098
+ .traceViewer {
1099
+ --scrollbar-width: 0;
1100
+ position: relative;
1101
+ display: flex;
1102
+ font-family: var(--font-sans);
1103
+ text-rendering: optimizeLegibility;
1104
+ text-size-adjust: 100%;
1105
+ background-color: var(--ds-background-200);
1106
+
1107
+ & button {
1108
+ font-family: inherit;
1109
+ }
1110
+ }
1111
+
1112
+ .traceViewerContent {
1113
+ position: absolute;
1114
+ left: 0;
1115
+ top: calc(var(--search-height) + 3 * var(--search-gap) + var(--map-height));
1116
+ width: calc(var(--timeline-width) + 2 * var(--timeline-padding));
1117
+ height: calc(
1118
+ var(--timeline-height) - 2 * var(--timeline-padding) -
1119
+ var(--scrollbar-width) - var(--marker-height) - var(--search-height)
1120
+ );
1121
+
1122
+ &.inert {
1123
+ display: none;
1124
+ }
1125
+ }
1126
+
1127
+ .timeline {
1128
+ width: calc(var(--timeline-width) + 2 * var(--timeline-padding));
1129
+ height: var(--timeline-height);
1130
+ font-size: 13px;
1131
+ overflow-y: scroll;
1132
+ overflow-x: scroll;
1133
+ -webkit-overflow-scrolling: touch;
1134
+ position: relative;
1135
+ }
1136
+
1137
+ .zoomButtonTraceViewer {
1138
+ position: absolute;
1139
+ bottom: calc(-12px - var(--search-height) - var(--scrollbar-width));
1140
+ right: calc(var(--scrollbar-width) + 12px);
1141
+ z-index: 10;
1142
+ }
1143
+
1144
+ .spanDetailPanelTraceViewer {
1145
+ position: absolute;
1146
+ margin-top: -1px;
1147
+ right: 0;
1148
+ top: calc(var(--search-height) + 2 * var(--search-gap) + var(--map-height) + 9px);
1149
+ width: var(--panel-width);
1150
+ height: var(--panel-height);
1151
+ border-top: 1px solid var(--ds-gray-200);
1152
+ border-left: 1px solid var(--ds-gray-200);
1153
+ background-color: var(--geist-background);
1154
+ z-index: 10;
1155
+
1156
+ &.hidden {
1157
+ display: none;
1158
+ }
1159
+
1160
+ &.mobile {
1161
+ --panel-width: calc(var(--timeline-width) + 2 * var(--timeline-padding));
1162
+ --panel-height: var(--height);
1163
+ top: 0;
1164
+ border-left: none;
1165
+ }
1166
+ }
1167
+
1168
+ /* Workflow-specific styles */
1169
+
1170
+ /* Step statuses */
1171
+ .spanRunning,
1172
+ .spanPending {
1173
+ --span-background: var(--ds-blue-200);
1174
+ --span-border: var(--ds-blue-500);
1175
+ --span-line: var(--ds-blue-400);
1176
+ --span-text: var(--ds-gray-1000);
1177
+ --span-secondary: var(--ds-blue-900);
1178
+ }
1179
+
1180
+ .spanCompleted {
1181
+ --span-background: var(--ds-green-200);
1182
+ --span-border: var(--ds-green-500);
1183
+ --span-line: var(--ds-green-400);
1184
+ --span-text: var(--ds-gray-1000);
1185
+ --span-secondary: var(--ds-green-900);
1186
+ }
1187
+
1188
+ .spanCancelled,
1189
+ .spanPaused {
1190
+ --span-background: var(--ds-amber-200);
1191
+ --span-border: var(--ds-amber-500);
1192
+ --span-line: var(--ds-amber-400);
1193
+ --span-text: var(--ds-gray-1000);
1194
+ --span-secondary: var(--ds-amber-900);
1195
+ }
1196
+
1197
+ .spanFailed {
1198
+ --span-background: var(--ds-red-200);
1199
+ --span-border: var(--ds-red-500);
1200
+ --span-line: var(--ds-red-400);
1201
+ --span-text: var(--ds-gray-1000);
1202
+ --span-secondary: var(--ds-red-900);
1203
+ }
1204
+
1205
+ /* Striped background for pending status */
1206
+ .spanPendingStriped {
1207
+ --span-background: repeating-linear-gradient(
1208
+ 45deg,
1209
+ var(--ds-blue-200),
1210
+ var(--ds-blue-200) 10px,
1211
+ color-mix(in srgb, var(--ds-blue-200) 70%, white) 10px,
1212
+ color-mix(in srgb, var(--ds-blue-200) 70%, white) 20px
1213
+ );
1214
+ --span-border: var(--ds-blue-500);
1215
+ --span-line: var(--ds-blue-400);
1216
+ --span-text: var(--ds-gray-1000);
1217
+ --span-secondary: var(--ds-blue-900);
1218
+ }
1219
+
1220
+ /* Sleep step - light yellow/orange */
1221
+ .spanSleep {
1222
+ --span-background: var(--ds-amber-200);
1223
+ --span-border: var(--ds-amber-500);
1224
+ --span-line: var(--ds-amber-400);
1225
+ --span-text: var(--ds-gray-1000);
1226
+ --span-secondary: var(--ds-amber-900);
1227
+ }
1228
+
1229
+ /* Hooks - gray color scheme */
1230
+ .spanHook {
1231
+ --span-background: var(--ds-gray-200);
1232
+ --span-border: var(--ds-gray-500);
1233
+ --span-line: var(--ds-gray-400);
1234
+ --span-text: var(--ds-gray-1000);
1235
+ --span-secondary: var(--ds-gray-900);
1236
+ }
1237
+
1238
+ /* Event markers */
1239
+
1240
+ /* Failure events - Red */
1241
+ .eventFailed {
1242
+ --event-color: var(--ds-red-600);
1243
+ --span-background: var(--ds-red-100);
1244
+ --span-border: var(--ds-red-500);
1245
+ --span-text: var(--ds-red-900);
1246
+ --span-secondary: var(--ds-red-700);
1247
+ }
1248
+
1249
+ /* Retry events - Orange/Yellow */
1250
+ .eventRetrying {
1251
+ --event-color: var(--ds-amber-600);
1252
+ --span-background: var(--ds-amber-100);
1253
+ --span-border: var(--ds-amber-500);
1254
+ --span-text: var(--ds-amber-900);
1255
+ --span-secondary: var(--ds-amber-700);
1256
+ }
1257
+
1258
+ /* Webhook-related events - Purple */
1259
+ .eventHook {
1260
+ --event-color: var(--ds-purple-600);
1261
+ --span-background: var(--ds-purple-100);
1262
+ --span-border: var(--ds-purple-500);
1263
+ --span-text: var(--ds-purple-900);
1264
+ --span-secondary: var(--ds-purple-700);
1265
+ }
1266
+
1267
+ /* Default event - Blue */
1268
+ .eventDefault {
1269
+ --event-color: var(--ds-blue-600);
1270
+ --span-background: var(--ds-blue-100);
1271
+ --span-border: var(--ds-blue-500);
1272
+ --span-text: var(--ds-blue-900);
1273
+ --span-secondary: var(--ds-blue-700);
1274
+ }
1275
+