@anlyx/ui 0.1.1 → 0.1.3

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 (126) hide show
  1. package/dist/components/AnalysisEvidenceList.d.ts +5 -0
  2. package/dist/components/AnalysisEvidenceList.js +61 -0
  3. package/dist/components/AnlyxAppShell.d.ts +1 -1
  4. package/dist/components/AnlyxAppShell.js +159 -15
  5. package/dist/components/ApiCallList.d.ts +3 -3
  6. package/dist/components/ApiCallList.js +12 -3
  7. package/dist/components/CanvasPlaceholder.d.ts +0 -1
  8. package/dist/components/CanvasPlaceholder.js +0 -1
  9. package/dist/components/CaptureStatusEmptyState.d.ts +0 -1
  10. package/dist/components/CaptureStatusEmptyState.js +5 -4
  11. package/dist/components/EndpointList.d.ts +0 -1
  12. package/dist/components/EndpointList.js +1 -2
  13. package/dist/components/EndpointMapCanvas.d.ts +5 -2
  14. package/dist/components/EndpointMapCanvas.js +93 -13
  15. package/dist/components/FlowLegend.d.ts +4 -2
  16. package/dist/components/FlowLegend.js +4 -2
  17. package/dist/components/FlowNodeCard.d.ts +1 -2
  18. package/dist/components/FlowNodeCard.js +25 -3
  19. package/dist/components/FlowStoryView.d.ts +22 -0
  20. package/dist/components/FlowStoryView.js +117 -0
  21. package/dist/components/InspectorPanel.d.ts +8 -3
  22. package/dist/components/InspectorPanel.js +36 -3
  23. package/dist/components/PageList.d.ts +0 -1
  24. package/dist/components/PageList.js +1 -2
  25. package/dist/components/PageStoryboardCard.d.ts +0 -1
  26. package/dist/components/PageStoryboardCard.js +4 -2
  27. package/dist/components/PageStoryboardView.d.ts +4 -3
  28. package/dist/components/PageStoryboardView.js +13 -3
  29. package/dist/components/ProcessFlowView.d.ts +21 -0
  30. package/dist/components/ProcessFlowView.js +16 -0
  31. package/dist/components/ProcessTimeline.d.ts +9 -0
  32. package/dist/components/ProcessTimeline.js +46 -0
  33. package/dist/components/ReplayControls.d.ts +6 -2
  34. package/dist/components/ReplayControls.js +31 -3
  35. package/dist/components/ScreenshotSegmentCard.d.ts +0 -1
  36. package/dist/components/ScreenshotSegmentCard.js +0 -1
  37. package/dist/components/Sidebar.d.ts +5 -4
  38. package/dist/components/Sidebar.js +19 -4
  39. package/dist/components/StatusBadge.d.ts +0 -1
  40. package/dist/components/StatusBadge.js +0 -1
  41. package/dist/flow/build-react-flow-model.d.ts +6 -2
  42. package/dist/flow/build-react-flow-model.js +15 -18
  43. package/dist/flow/layout/elk-layout.d.ts +7 -0
  44. package/dist/flow/layout/elk-layout.js +74 -0
  45. package/dist/index.d.ts +0 -1
  46. package/dist/index.js +0 -1
  47. package/dist/mock-data.d.ts +0 -1
  48. package/dist/mock-data.js +50 -5
  49. package/dist/overlay/AnlyxFlowEdge.d.ts +2 -0
  50. package/dist/overlay/AnlyxFlowEdge.js +15 -0
  51. package/dist/overlay/AnlyxFlowNode.d.ts +13 -0
  52. package/dist/overlay/AnlyxFlowNode.js +28 -0
  53. package/dist/overlay/FlowDrawer.d.ts +2 -0
  54. package/dist/overlay/FlowDrawer.js +59 -0
  55. package/dist/overlay/MainFlowCanvas.d.ts +20 -0
  56. package/dist/overlay/MainFlowCanvas.js +285 -0
  57. package/dist/overlay/RecentApiEventsTable.d.ts +5 -0
  58. package/dist/overlay/RecentApiEventsTable.js +19 -0
  59. package/dist/overlay/overlay-entry.d.ts +8 -0
  60. package/dist/overlay/overlay-entry.js +14 -0
  61. package/dist/overlay/overlay-ui.css +2 -0
  62. package/dist/overlay/overlay-ui.js +14 -0
  63. package/dist/overlay/types.d.ts +38 -0
  64. package/dist/overlay/types.js +1 -0
  65. package/dist/overlay/ui.d.ts +18 -0
  66. package/dist/overlay/ui.js +13 -0
  67. package/dist/readme-demo/ReadmeDemoApp.d.ts +4 -0
  68. package/dist/readme-demo/ReadmeDemoApp.js +126 -0
  69. package/dist/readme-demo/readme-demo-entry.d.ts +1 -0
  70. package/dist/readme-demo/readme-demo-entry.js +8 -0
  71. package/dist/replay/build-replay-steps.d.ts +0 -1
  72. package/dist/replay/build-replay-steps.js +0 -1
  73. package/dist/replay/use-replay-lite.d.ts +2 -2
  74. package/dist/replay/use-replay-lite.js +1 -1
  75. package/dist/styles.css +2018 -178
  76. package/dist/viewer/ViewerApp.d.ts +0 -1
  77. package/dist/viewer/ViewerApp.js +13 -7
  78. package/dist/viewer/viewer-entry.d.ts +1 -1
  79. package/dist/viewer/viewer-entry.js +1 -1
  80. package/package.json +7 -3
  81. package/dist/components/AnlyxAppShell.d.ts.map +0 -1
  82. package/dist/components/AnlyxAppShell.js.map +0 -1
  83. package/dist/components/ApiCallList.d.ts.map +0 -1
  84. package/dist/components/ApiCallList.js.map +0 -1
  85. package/dist/components/CanvasPlaceholder.d.ts.map +0 -1
  86. package/dist/components/CanvasPlaceholder.js.map +0 -1
  87. package/dist/components/CaptureStatusEmptyState.d.ts.map +0 -1
  88. package/dist/components/CaptureStatusEmptyState.js.map +0 -1
  89. package/dist/components/EndpointList.d.ts.map +0 -1
  90. package/dist/components/EndpointList.js.map +0 -1
  91. package/dist/components/EndpointMapCanvas.d.ts.map +0 -1
  92. package/dist/components/EndpointMapCanvas.js.map +0 -1
  93. package/dist/components/FlowLegend.d.ts.map +0 -1
  94. package/dist/components/FlowLegend.js.map +0 -1
  95. package/dist/components/FlowNodeCard.d.ts.map +0 -1
  96. package/dist/components/FlowNodeCard.js.map +0 -1
  97. package/dist/components/InspectorPanel.d.ts.map +0 -1
  98. package/dist/components/InspectorPanel.js.map +0 -1
  99. package/dist/components/PageList.d.ts.map +0 -1
  100. package/dist/components/PageList.js.map +0 -1
  101. package/dist/components/PageStoryboardCard.d.ts.map +0 -1
  102. package/dist/components/PageStoryboardCard.js.map +0 -1
  103. package/dist/components/PageStoryboardView.d.ts.map +0 -1
  104. package/dist/components/PageStoryboardView.js.map +0 -1
  105. package/dist/components/ReplayControls.d.ts.map +0 -1
  106. package/dist/components/ReplayControls.js.map +0 -1
  107. package/dist/components/ScreenshotSegmentCard.d.ts.map +0 -1
  108. package/dist/components/ScreenshotSegmentCard.js.map +0 -1
  109. package/dist/components/Sidebar.d.ts.map +0 -1
  110. package/dist/components/Sidebar.js.map +0 -1
  111. package/dist/components/StatusBadge.d.ts.map +0 -1
  112. package/dist/components/StatusBadge.js.map +0 -1
  113. package/dist/flow/build-react-flow-model.d.ts.map +0 -1
  114. package/dist/flow/build-react-flow-model.js.map +0 -1
  115. package/dist/index.d.ts.map +0 -1
  116. package/dist/index.js.map +0 -1
  117. package/dist/mock-data.d.ts.map +0 -1
  118. package/dist/mock-data.js.map +0 -1
  119. package/dist/replay/build-replay-steps.d.ts.map +0 -1
  120. package/dist/replay/build-replay-steps.js.map +0 -1
  121. package/dist/replay/use-replay-lite.d.ts.map +0 -1
  122. package/dist/replay/use-replay-lite.js.map +0 -1
  123. package/dist/viewer/ViewerApp.d.ts.map +0 -1
  124. package/dist/viewer/ViewerApp.js.map +0 -1
  125. package/dist/viewer/viewer-entry.d.ts.map +0 -1
  126. package/dist/viewer/viewer-entry.js.map +0 -1
package/dist/styles.css CHANGED
@@ -1,21 +1,30 @@
1
1
  :root {
2
- --anlyx-color-background: #f7f8fb;
2
+ --anlyx-color-background: #f5f7fb;
3
3
  --anlyx-color-panel: #ffffff;
4
- --anlyx-color-canvas: #fafafa;
5
- --anlyx-color-border: #e5e7eb;
6
- --anlyx-color-text-primary: #111827;
7
- --anlyx-color-text-secondary: #6b7280;
8
- --anlyx-color-grid: #e5e7eb;
4
+ --anlyx-color-canvas: #fbfcff;
5
+ --anlyx-color-border: #dfe6f1;
6
+ --anlyx-color-border-strong: #c9d5e6;
7
+ --anlyx-color-text-primary: #0f172a;
8
+ --anlyx-color-text-secondary: #62708a;
9
+ --anlyx-color-text-muted: #8a97ad;
10
+ --anlyx-color-grid: #e8edf5;
9
11
  --anlyx-color-method-get: #10b981;
10
12
  --anlyx-color-method-post: #3b82f6;
11
13
  --anlyx-color-method-update: #f59e0b;
12
14
  --anlyx-color-method-delete: #ef4444;
15
+ --anlyx-color-request: #2563eb;
16
+ --anlyx-color-response: #8b5cf6;
17
+ --anlyx-color-branch: #f97316;
18
+ --anlyx-color-database: #0f766e;
13
19
  --anlyx-color-confidence-high: #16a34a;
14
20
  --anlyx-color-confidence-medium: #d97706;
15
21
  --anlyx-color-confidence-low: #ea580c;
16
22
  --anlyx-color-confidence-unknown: #6b7280;
17
- --anlyx-radius: 8px;
18
- --anlyx-shadow-panel: 0 1px 2px rgb(17 24 39 / 6%);
23
+ --anlyx-radius: 10px;
24
+ --anlyx-radius-sm: 7px;
25
+ --anlyx-shadow-panel: 0 1px 2px rgb(15 23 42 / 6%);
26
+ --anlyx-shadow-card: 0 10px 28px rgb(15 23 42 / 7%);
27
+ --anlyx-shadow-float: 0 18px 46px rgb(15 23 42 / 12%);
19
28
  color: var(--anlyx-color-text-primary);
20
29
  background: var(--anlyx-color-background);
21
30
  font-family:
@@ -29,12 +38,14 @@
29
38
  }
30
39
 
31
40
  body {
41
+ overflow: hidden;
32
42
  margin: 0;
33
43
  background: var(--anlyx-color-background);
34
44
  }
35
45
 
36
46
  #root {
37
- min-height: 100vh;
47
+ height: 100dvh;
48
+ min-height: 0;
38
49
  }
39
50
 
40
51
  .anlyx-viewer-state {
@@ -47,13 +58,60 @@ body {
47
58
  font-size: 14px;
48
59
  }
49
60
 
61
+ .anlyx-viewer-state__card {
62
+ width: min(520px, 100%);
63
+ padding: 26px;
64
+ border: 1px solid var(--anlyx-color-border);
65
+ border-radius: 12px;
66
+ background:
67
+ linear-gradient(180deg, rgb(255 255 255 / 96%), rgb(248 251 255 / 96%)),
68
+ radial-gradient(circle at 0% 0%, rgb(37 99 235 / 10%), transparent 34%);
69
+ box-shadow: var(--anlyx-shadow-panel);
70
+ }
71
+
72
+ .anlyx-viewer-state__eyebrow {
73
+ color: #2563eb;
74
+ font-size: 11px;
75
+ font-weight: 850;
76
+ letter-spacing: 0;
77
+ text-transform: uppercase;
78
+ }
79
+
80
+ .anlyx-viewer-state__card h1 {
81
+ margin: 8px 0 10px;
82
+ color: var(--anlyx-color-text-primary);
83
+ font-size: 22px;
84
+ line-height: 1.2;
85
+ }
86
+
87
+ .anlyx-viewer-state__card p {
88
+ margin: 8px 0 0;
89
+ color: var(--anlyx-color-text-secondary);
90
+ font-size: 13px;
91
+ line-height: 1.55;
92
+ }
93
+
94
+ .anlyx-viewer-state--error .anlyx-viewer-state__card {
95
+ border-color: #fecaca;
96
+ background:
97
+ linear-gradient(180deg, rgb(255 255 255 / 96%), rgb(255 247 247 / 96%)),
98
+ radial-gradient(circle at 0% 0%, rgb(239 68 68 / 9%), transparent 32%);
99
+ }
100
+
101
+ .anlyx-viewer-state--error .anlyx-viewer-state__eyebrow {
102
+ color: #dc2626;
103
+ }
104
+
50
105
  .anlyx-shell {
51
106
  box-sizing: border-box;
52
- display: grid;
53
- grid-template-columns: minmax(260px, 300px) minmax(420px, 1fr) minmax(280px, 340px);
54
- grid-template-rows: minmax(0, 1fr) auto;
55
- min-height: 100vh;
56
- background: var(--anlyx-color-background);
107
+ display: flex;
108
+ height: 100dvh;
109
+ min-height: 0;
110
+ overflow: hidden;
111
+ background:
112
+ radial-gradient(circle at 12% -10%, rgb(37 99 235 / 7%), transparent 28%),
113
+ radial-gradient(circle at 84% 0%, rgb(20 184 166 / 5%), transparent 30%),
114
+ var(--anlyx-color-background);
57
115
  }
58
116
 
59
117
  .anlyx-shell *,
@@ -74,6 +132,20 @@ body {
74
132
  border: 0;
75
133
  }
76
134
 
135
+ .anlyx-panel-group {
136
+ width: 100%;
137
+ height: 100%;
138
+ min-width: 0;
139
+ min-height: 0;
140
+ }
141
+
142
+ .anlyx-panel {
143
+ display: grid;
144
+ overflow: hidden;
145
+ min-width: 0;
146
+ min-height: 0;
147
+ }
148
+
77
149
  .anlyx-sidebar,
78
150
  .anlyx-inspector,
79
151
  .anlyx-workspace,
@@ -83,13 +155,55 @@ body {
83
155
  }
84
156
 
85
157
  .anlyx-sidebar {
86
- grid-row: 1 / span 2;
87
158
  display: flex;
159
+ overflow: hidden;
88
160
  min-width: 0;
161
+ min-height: 0;
89
162
  flex-direction: column;
90
- gap: 20px;
91
- padding: 20px;
163
+ gap: 18px;
164
+ padding: 18px 16px 12px;
92
165
  border-right: 1px solid var(--anlyx-color-border);
166
+ box-shadow: 12px 0 34px rgb(15 23 42 / 3%);
167
+ }
168
+
169
+ .anlyx-resize-handle {
170
+ position: relative;
171
+ z-index: 6;
172
+ display: grid;
173
+ width: 8px;
174
+ min-width: 8px;
175
+ place-items: center;
176
+ background: transparent;
177
+ cursor: col-resize;
178
+ }
179
+
180
+ .anlyx-resize-handle span {
181
+ width: 3px;
182
+ height: 54px;
183
+ border-radius: 999px;
184
+ background: linear-gradient(#d7e2f0, #b9c8dd);
185
+ box-shadow: 0 1px 8px rgb(37 99 235 / 14%);
186
+ opacity: 0.9;
187
+ }
188
+
189
+ .anlyx-resize-handle:hover span {
190
+ background: var(--anlyx-color-request);
191
+ box-shadow: 0 0 0 4px rgb(37 99 235 / 12%);
192
+ }
193
+
194
+ .anlyx-sidebar--collapsed,
195
+ .anlyx-inspector--collapsed {
196
+ align-items: center;
197
+ padding: 12px 8px;
198
+ }
199
+
200
+ .anlyx-collapsed-label {
201
+ writing-mode: vertical-rl;
202
+ color: var(--anlyx-color-text-secondary);
203
+ font-size: 11px;
204
+ font-weight: 800;
205
+ letter-spacing: 0;
206
+ text-transform: uppercase;
93
207
  }
94
208
 
95
209
  .anlyx-brand {
@@ -103,10 +217,12 @@ body {
103
217
  width: 36px;
104
218
  height: 36px;
105
219
  place-items: center;
106
- border: 1px solid var(--anlyx-color-border);
107
- border-radius: var(--anlyx-radius);
108
- background: var(--anlyx-color-canvas);
220
+ border: 1px solid rgb(59 130 246 / 22%);
221
+ border-radius: 9px;
222
+ background: linear-gradient(145deg, #1261f1, #3b82f6);
223
+ color: #ffffff;
109
224
  font-weight: 700;
225
+ box-shadow: 0 10px 22px rgb(37 99 235 / 25%);
110
226
  }
111
227
 
112
228
  .anlyx-brand__name,
@@ -126,30 +242,48 @@ body {
126
242
 
127
243
  .anlyx-tabs {
128
244
  display: grid;
129
- grid-template-columns: repeat(3, minmax(0, 1fr));
130
- gap: 4px;
245
+ grid-template-columns: repeat(4, minmax(0, 1fr));
246
+ gap: 3px;
131
247
  padding: 4px;
132
- border: 1px solid var(--anlyx-color-border);
248
+ border: 1px solid #edf1f7;
133
249
  border-radius: var(--anlyx-radius);
134
- background: var(--anlyx-color-background);
250
+ background: #f7f9fd;
251
+ box-shadow: inset 0 1px 0 rgb(255 255 255 / 82%);
135
252
  }
136
253
 
137
254
  .anlyx-tab,
138
- .anlyx-replay button {
255
+ .anlyx-replay button,
256
+ .anlyx-toolbar-button,
257
+ .anlyx-panel-toggle {
139
258
  min-height: 32px;
140
259
  border: 1px solid transparent;
141
- border-radius: 6px;
260
+ border-radius: var(--anlyx-radius-sm);
142
261
  background: transparent;
143
262
  color: var(--anlyx-color-text-secondary);
144
263
  font: inherit;
145
264
  }
146
265
 
147
266
  .anlyx-tab--active,
148
- .anlyx-replay button {
149
- border-color: var(--anlyx-color-border);
267
+ .anlyx-replay button,
268
+ .anlyx-toolbar-button,
269
+ .anlyx-panel-toggle {
270
+ border-color: #dbe6f5;
150
271
  background: var(--anlyx-color-panel);
151
272
  color: var(--anlyx-color-text-primary);
152
- box-shadow: var(--anlyx-shadow-panel);
273
+ box-shadow:
274
+ 0 1px 2px rgb(15 23 42 / 7%),
275
+ 0 8px 20px rgb(15 23 42 / 4%);
276
+ }
277
+
278
+ .anlyx-tab {
279
+ padding: 0 6px;
280
+ font-size: 12px;
281
+ font-weight: 650;
282
+ white-space: normal;
283
+ }
284
+
285
+ .anlyx-tab--active {
286
+ color: var(--anlyx-color-request);
153
287
  }
154
288
 
155
289
  .anlyx-search {
@@ -157,6 +291,29 @@ body {
157
291
  gap: 6px;
158
292
  }
159
293
 
294
+ .anlyx-project-select {
295
+ display: grid;
296
+ grid-template-columns: auto minmax(0, 1fr);
297
+ align-items: center;
298
+ gap: 9px;
299
+ min-height: 42px;
300
+ padding: 0 12px;
301
+ border: 1px solid var(--anlyx-color-border);
302
+ border-radius: var(--anlyx-radius);
303
+ background: #ffffff;
304
+ color: var(--anlyx-color-text-primary);
305
+ font: inherit;
306
+ font-weight: 700;
307
+ text-align: left;
308
+ box-shadow: var(--anlyx-shadow-panel);
309
+ }
310
+
311
+ .anlyx-project-select span {
312
+ overflow: hidden;
313
+ text-overflow: ellipsis;
314
+ white-space: nowrap;
315
+ }
316
+
160
317
  .anlyx-search__label,
161
318
  .anlyx-section-heading,
162
319
  .anlyx-eyebrow {
@@ -165,35 +322,85 @@ body {
165
322
  text-transform: uppercase;
166
323
  }
167
324
 
168
- .anlyx-search input {
325
+ .anlyx-search__control {
326
+ display: grid;
327
+ grid-template-columns: auto minmax(0, 1fr);
328
+ align-items: center;
329
+ gap: 8px;
169
330
  width: 100%;
170
- min-height: 36px;
171
- padding: 0 10px;
331
+ min-height: 40px;
332
+ padding: 0 12px;
172
333
  border: 1px solid var(--anlyx-color-border);
173
- border-radius: 6px;
334
+ border-radius: var(--anlyx-radius);
335
+ background: #fbfcff;
336
+ color: var(--anlyx-color-text-muted);
337
+ box-shadow: inset 0 1px 0 rgb(255 255 255 / 90%);
338
+ }
339
+
340
+ .anlyx-search input {
341
+ width: 100%;
342
+ min-width: 0;
343
+ padding: 0;
344
+ border: 0;
345
+ outline: 0;
346
+ background: transparent;
174
347
  color: var(--anlyx-color-text-primary);
348
+ font: inherit;
175
349
  }
176
350
 
177
351
  .anlyx-sidebar-section {
178
352
  display: grid;
179
353
  gap: 8px;
354
+ min-height: 0;
355
+ }
356
+
357
+ .anlyx-sidebar__list-region {
358
+ display: grid;
359
+ gap: 16px;
360
+ min-height: 0;
361
+ overflow: auto;
362
+ padding-right: 2px;
180
363
  }
181
364
 
182
365
  .anlyx-list {
183
366
  display: grid;
184
- gap: 8px;
367
+ gap: 9px;
185
368
  padding: 0;
186
369
  margin: 0;
187
370
  list-style: none;
188
371
  }
189
372
 
373
+ .anlyx-list--compact {
374
+ gap: 4px;
375
+ }
376
+
190
377
  .anlyx-list-item {
191
378
  display: grid;
192
- gap: 6px;
193
- padding: 10px;
379
+ gap: 7px;
380
+ padding: 12px;
194
381
  border: 1px solid var(--anlyx-color-border);
195
382
  border-radius: var(--anlyx-radius);
196
- background: var(--anlyx-color-panel);
383
+ background: linear-gradient(180deg, #ffffff, #fbfcff);
384
+ box-shadow: 0 1px 2px rgb(15 23 42 / 4%);
385
+ transition:
386
+ border-color 160ms ease,
387
+ box-shadow 160ms ease,
388
+ background 160ms ease,
389
+ transform 160ms ease;
390
+ }
391
+
392
+ .anlyx-list-item:has([aria-current="true"]) {
393
+ border-color: #4f8df8;
394
+ background: linear-gradient(180deg, #ffffff, #f3f7ff);
395
+ box-shadow:
396
+ inset 3px 0 0 #2563eb,
397
+ 0 10px 24px rgb(37 99 235 / 10%);
398
+ }
399
+
400
+ .anlyx-list-item:hover {
401
+ border-color: #b9c8dd;
402
+ box-shadow: 0 10px 24px rgb(15 23 42 / 7%);
403
+ transform: translateY(-1px);
197
404
  }
198
405
 
199
406
  .anlyx-endpoint-button,
@@ -229,17 +436,53 @@ body {
229
436
  overflow-wrap: anywhere;
230
437
  }
231
438
 
439
+ .anlyx-list-item__primary {
440
+ display: -webkit-box;
441
+ overflow: hidden;
442
+ -webkit-box-orient: vertical;
443
+ -webkit-line-clamp: 2;
444
+ line-height: 1.25;
445
+ }
446
+
447
+ .anlyx-list-item__meta {
448
+ color: var(--anlyx-color-text-secondary);
449
+ font-size: 12px;
450
+ line-height: 1.35;
451
+ }
452
+
453
+ .anlyx-service-row {
454
+ display: grid;
455
+ grid-template-columns: auto minmax(0, 1fr);
456
+ align-items: center;
457
+ gap: 8px;
458
+ min-height: 30px;
459
+ padding: 0 8px;
460
+ color: var(--anlyx-color-text-secondary);
461
+ font-size: 12px;
462
+ }
463
+
464
+ .anlyx-service-row span {
465
+ overflow: hidden;
466
+ text-overflow: ellipsis;
467
+ white-space: nowrap;
468
+ }
469
+
232
470
  .anlyx-main {
233
471
  display: grid;
234
- grid-template-rows: minmax(0, 1fr) auto;
472
+ overflow: hidden;
235
473
  min-width: 0;
236
474
  min-height: 0;
237
475
  }
238
476
 
477
+ .anlyx-main--process {
478
+ grid-template-rows: minmax(0, 1fr);
479
+ }
480
+
239
481
  .anlyx-workspace {
240
482
  display: grid;
241
483
  min-width: 0;
242
484
  min-height: 0;
485
+ overflow: hidden;
243
486
  grid-template-rows: auto minmax(0, 1fr);
244
487
  }
245
488
 
@@ -249,146 +492,1053 @@ body {
249
492
  align-items: flex-start;
250
493
  justify-content: space-between;
251
494
  gap: 16px;
252
- padding: 20px;
495
+ padding: 20px 22px;
253
496
  border-bottom: 1px solid var(--anlyx-color-border);
497
+ background: rgb(255 255 255 / 82%);
498
+ backdrop-filter: blur(14px);
499
+ }
500
+
501
+ .anlyx-workspace-actions,
502
+ .anlyx-toolbar {
503
+ display: flex;
504
+ flex-wrap: wrap;
505
+ align-items: center;
506
+ justify-content: flex-end;
507
+ gap: 8px;
508
+ }
509
+
510
+ .anlyx-toolbar-button {
511
+ min-height: 34px;
512
+ padding: 0 12px;
513
+ cursor: pointer;
514
+ font-weight: 650;
515
+ }
516
+
517
+ .anlyx-toolbar-button:disabled {
518
+ cursor: not-allowed;
519
+ opacity: 0.48;
520
+ }
521
+
522
+ .anlyx-toolbar-select,
523
+ .anlyx-replay select {
524
+ min-height: 30px;
525
+ border: 1px solid var(--anlyx-color-border);
526
+ border-radius: 6px;
527
+ background: var(--anlyx-color-panel);
528
+ color: var(--anlyx-color-text-primary);
529
+ font: inherit;
254
530
  }
255
531
 
256
532
  .anlyx-workspace-header h1,
257
533
  .anlyx-panel-heading h2,
258
534
  .anlyx-canvas-placeholder h2 {
259
535
  margin: 0;
260
- font-size: 20px;
536
+ color: #111827;
537
+ font-size: 22px;
261
538
  line-height: 1.2;
539
+ letter-spacing: 0;
262
540
  }
263
541
 
264
542
  .anlyx-eyebrow {
265
543
  margin: 0 0 6px;
266
544
  }
267
545
 
268
- .anlyx-canvas-placeholder {
546
+ .anlyx-flow-story {
269
547
  display: grid;
270
- min-height: 360px;
271
- place-items: center;
272
- margin: 20px;
273
- border: 1px solid var(--anlyx-color-border);
274
- border-radius: var(--anlyx-radius);
548
+ overflow: hidden;
549
+ min-width: 0;
550
+ min-height: 0;
551
+ grid-template-rows: auto auto minmax(0, 1fr) auto;
275
552
  background:
276
- linear-gradient(var(--anlyx-color-grid) 1px, transparent 1px),
277
- linear-gradient(90deg, var(--anlyx-color-grid) 1px, transparent 1px), var(--anlyx-color-canvas);
278
- background-size: 24px 24px;
279
- }
280
-
281
- .anlyx-canvas-placeholder__content {
282
- padding: 24px;
283
- border: 1px solid var(--anlyx-color-border);
284
- border-radius: var(--anlyx-radius);
285
- background: rgb(255 255 255 / 86%);
286
- text-align: center;
287
- box-shadow: var(--anlyx-shadow-panel);
553
+ linear-gradient(90deg, rgb(37 99 235 / 4%) 1px, transparent 1px),
554
+ linear-gradient(rgb(37 99 235 / 4%) 1px, transparent 1px), #fbfcff;
555
+ background-size: 28px 28px;
288
556
  }
289
557
 
290
- .anlyx-endpoint-map {
291
- position: relative;
292
- min-width: 0;
293
- min-height: 520px;
294
- margin: 20px;
295
- overflow: hidden;
296
- border: 1px solid var(--anlyx-color-border);
297
- border-radius: var(--anlyx-radius);
298
- background:
299
- linear-gradient(var(--anlyx-color-grid) 1px, transparent 1px),
300
- linear-gradient(90deg, var(--anlyx-color-grid) 1px, transparent 1px), var(--anlyx-color-canvas);
301
- background-size: 24px 24px;
558
+ .anlyx-flow-story__header {
559
+ display: flex;
560
+ align-items: center;
561
+ justify-content: space-between;
562
+ gap: 16px;
563
+ padding: 18px 22px;
564
+ border-bottom: 1px solid var(--anlyx-color-border);
565
+ background: rgb(255 255 255 / 88%);
566
+ backdrop-filter: blur(14px);
302
567
  }
303
568
 
304
- .anlyx-react-flow {
305
- min-height: 520px;
569
+ .anlyx-flow-story__header h1 {
570
+ margin: 0;
571
+ color: #111827;
572
+ font-size: 23px;
573
+ line-height: 1.18;
574
+ letter-spacing: 0;
306
575
  }
307
576
 
308
- .anlyx-flow-legend {
309
- position: absolute;
310
- z-index: 4;
311
- top: 12px;
312
- left: 12px;
577
+ .anlyx-flow-story__summary {
313
578
  display: flex;
314
579
  flex-wrap: wrap;
315
- gap: 8px;
316
- padding: 8px;
317
- border: 1px solid var(--anlyx-color-border);
318
- border-radius: 6px;
319
- background: rgb(255 255 255 / 92%);
320
- color: var(--anlyx-color-text-secondary);
321
- font-size: 12px;
322
- box-shadow: var(--anlyx-shadow-panel);
580
+ gap: 7px;
581
+ margin-top: 9px;
323
582
  }
324
583
 
325
- .anlyx-flow-legend span {
584
+ .anlyx-flow-story__summary span {
326
585
  display: inline-flex;
327
586
  align-items: center;
328
- gap: 6px;
329
- }
330
-
331
- .anlyx-flow-legend__mark {
332
- width: 18px;
333
- height: 2px;
334
- background: #2563eb;
587
+ min-height: 24px;
588
+ padding: 0 9px;
589
+ border: 1px solid #dbe7fb;
590
+ border-radius: 999px;
591
+ background: #f8fbff;
592
+ color: #475569;
593
+ font-size: 12px;
594
+ font-weight: 750;
335
595
  }
336
596
 
337
- .anlyx-flow-legend__mark--sub {
338
- background: #7c3aed;
597
+ .anlyx-flow-story__actions {
598
+ display: flex;
599
+ flex-wrap: wrap;
600
+ align-items: center;
601
+ justify-content: flex-end;
602
+ gap: 8px;
339
603
  }
340
604
 
341
- .anlyx-flow-legend__mark--unknown {
342
- background: var(--anlyx-color-confidence-unknown);
605
+ .anlyx-interaction-chain {
606
+ display: grid;
607
+ min-width: 0;
608
+ grid-template-columns: repeat(4, minmax(0, 1fr));
609
+ gap: 10px;
610
+ padding: 12px 22px;
611
+ border-bottom: 1px solid var(--anlyx-color-border);
612
+ background: rgb(248 251 255 / 88%);
343
613
  }
344
614
 
345
- .anlyx-flow-node {
615
+ .anlyx-interaction-chain__item {
346
616
  display: grid;
347
- width: 180px;
348
- min-height: 84px;
349
- gap: 7px;
617
+ align-items: center;
618
+ min-width: 0;
619
+ grid-template-columns: auto minmax(0, 1fr);
620
+ gap: 9px;
350
621
  padding: 10px;
622
+ border: 1px solid #dde8f7;
623
+ border-radius: 8px;
624
+ background: #ffffff;
625
+ box-shadow: 0 8px 18px rgb(15 23 42 / 5%);
626
+ }
627
+
628
+ .anlyx-interaction-chain__icon {
629
+ display: inline-flex;
630
+ align-items: center;
631
+ justify-content: center;
632
+ width: 30px;
633
+ height: 30px;
634
+ border-radius: 8px;
635
+ background: #eff6ff;
636
+ color: #2563eb;
637
+ }
638
+
639
+ .anlyx-interaction-chain__item span:not(.anlyx-interaction-chain__icon) {
640
+ display: block;
641
+ overflow: hidden;
642
+ color: #64748b;
643
+ font-size: 11px;
644
+ font-weight: 800;
645
+ line-height: 1.2;
646
+ text-overflow: ellipsis;
647
+ text-transform: uppercase;
648
+ white-space: nowrap;
649
+ }
650
+
651
+ .anlyx-interaction-chain__item strong {
652
+ display: block;
653
+ overflow: hidden;
654
+ margin-top: 3px;
655
+ color: #111827;
656
+ font-size: 12px;
657
+ line-height: 1.25;
658
+ text-overflow: ellipsis;
659
+ white-space: nowrap;
660
+ }
661
+
662
+ .anlyx-interaction-chain__item--page .anlyx-interaction-chain__icon {
663
+ background: #eff6ff;
664
+ color: #2563eb;
665
+ }
666
+
667
+ .anlyx-interaction-chain__item--api .anlyx-interaction-chain__icon {
668
+ background: #ecfeff;
669
+ color: #0891b2;
670
+ }
671
+
672
+ .anlyx-interaction-chain__item--backend .anlyx-interaction-chain__icon {
673
+ background: #fff7ed;
674
+ color: #ea580c;
675
+ }
676
+
677
+ .anlyx-interaction-chain__item--guard .anlyx-interaction-chain__icon {
678
+ background: #f0fdf4;
679
+ color: #16a34a;
680
+ }
681
+
682
+ .anlyx-flow-story__stage {
683
+ position: relative;
684
+ display: grid;
685
+ overflow: hidden;
686
+ min-width: 0;
687
+ min-height: 0;
688
+ grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);
689
+ align-items: center;
690
+ gap: 28px;
691
+ padding: 30px 26px 26px;
692
+ }
693
+
694
+ .anlyx-page-preview {
695
+ align-self: center;
696
+ overflow: hidden;
697
+ min-width: 0;
698
+ border: 1px solid #dbe5f2;
699
+ border-radius: 12px;
700
+ background: #ffffff;
701
+ box-shadow:
702
+ 0 20px 50px rgb(15 23 42 / 12%),
703
+ var(--anlyx-shadow-panel);
704
+ }
705
+
706
+ .anlyx-page-preview__chrome {
707
+ display: flex;
708
+ align-items: center;
709
+ gap: 8px;
710
+ padding: 12px 14px;
711
+ border-bottom: 1px solid var(--anlyx-color-border);
712
+ background: #fbfcff;
713
+ font-size: 12px;
714
+ }
715
+
716
+ .anlyx-page-preview__chrome span {
717
+ overflow: hidden;
718
+ color: var(--anlyx-color-text-secondary);
719
+ text-overflow: ellipsis;
720
+ white-space: nowrap;
721
+ }
722
+
723
+ .anlyx-page-preview__screen {
724
+ display: grid;
725
+ gap: 13px;
726
+ min-height: 330px;
727
+ padding: 14px;
728
+ background:
729
+ linear-gradient(180deg, rgb(6 78 59 / 4%), transparent 42%),
730
+ linear-gradient(135deg, #f8fafc, #ffffff);
731
+ }
732
+
733
+ .anlyx-page-preview__topbar {
734
+ display: grid;
735
+ align-items: center;
736
+ grid-template-columns: repeat(3, 7px) 1fr;
737
+ gap: 6px;
738
+ min-height: 30px;
739
+ padding: 0 10px;
740
+ border-radius: 8px;
741
+ background: #064e3b;
742
+ color: #ffffff;
743
+ font-size: 10px;
744
+ letter-spacing: 0.08em;
745
+ }
746
+
747
+ .anlyx-page-preview__topbar span {
748
+ width: 7px;
749
+ height: 7px;
750
+ border-radius: 999px;
751
+ background: rgb(255 255 255 / 42%);
752
+ }
753
+
754
+ .anlyx-page-preview__topbar strong {
755
+ justify-self: center;
756
+ font-weight: 900;
757
+ }
758
+
759
+ .anlyx-page-preview__hero {
760
+ display: grid;
761
+ grid-template-columns: 1fr 92px;
762
+ gap: 12px;
763
+ min-height: 126px;
764
+ padding: 16px;
765
+ border-radius: 10px;
766
+ background:
767
+ linear-gradient(135deg, rgb(5 46 22 / 92%), rgb(6 78 59 / 78%)),
768
+ linear-gradient(90deg, #064e3b, #14532d);
769
+ color: #ffffff;
770
+ }
771
+
772
+ .anlyx-page-preview__hero span {
773
+ color: #bbf7d0;
774
+ font-size: 12px;
775
+ font-weight: 800;
776
+ }
777
+
778
+ .anlyx-page-preview__hero strong {
779
+ display: block;
780
+ margin-top: 8px;
781
+ font-size: 22px;
782
+ line-height: 1.05;
783
+ }
784
+
785
+ .anlyx-page-preview__hero p {
786
+ margin: 0;
787
+ margin-top: 8px;
788
+ color: rgb(255 255 255 / 82%);
789
+ font-size: 12px;
790
+ }
791
+
792
+ .anlyx-page-preview__reward {
793
+ display: grid;
794
+ place-items: center;
795
+ align-self: center;
796
+ justify-self: end;
797
+ width: 82px;
798
+ height: 82px;
799
+ border-radius: 18px;
800
+ background: linear-gradient(180deg, #ffffff, #f8fafc);
801
+ color: #064e3b;
802
+ box-shadow: 0 14px 28px rgb(0 0 0 / 18%);
803
+ }
804
+
805
+ .anlyx-page-preview__reward span {
806
+ width: 42px;
807
+ height: 32px;
808
+ border-radius: 999px 999px 8px 8px;
809
+ background: linear-gradient(180deg, #16a34a, #166534);
810
+ }
811
+
812
+ .anlyx-page-preview__reward strong {
813
+ margin-top: -10px;
814
+ font-size: 18px;
815
+ }
816
+
817
+ .anlyx-page-preview__facts,
818
+ .anlyx-page-preview__steps,
819
+ .anlyx-page-preview__api {
820
+ display: grid;
821
+ gap: 8px;
822
+ padding: 12px;
823
+ border: 1px solid #e2e8f0;
824
+ border-radius: 9px;
825
+ background: #ffffff;
826
+ color: #475569;
827
+ font-size: 12px;
828
+ }
829
+
830
+ .anlyx-page-preview__facts {
831
+ grid-template-columns: 1fr 1fr;
832
+ }
833
+
834
+ .anlyx-page-preview__steps span {
835
+ position: relative;
836
+ padding-left: 22px;
837
+ }
838
+
839
+ .anlyx-page-preview__steps span::before {
840
+ position: absolute;
841
+ top: 1px;
842
+ left: 0;
843
+ display: grid;
844
+ width: 15px;
845
+ height: 15px;
846
+ place-items: center;
847
+ border-radius: 999px;
848
+ background: #dcfce7;
849
+ color: #166534;
850
+ content: "";
851
+ }
852
+
853
+ .anlyx-page-preview__api {
854
+ grid-template-columns: auto minmax(0, 1fr);
855
+ align-items: center;
856
+ }
857
+
858
+ .anlyx-page-preview__api strong {
859
+ padding: 3px 7px;
860
+ border-radius: 999px;
861
+ background: #dbeafe;
862
+ color: #1d4ed8;
863
+ font-size: 11px;
864
+ }
865
+
866
+ .anlyx-page-preview__api span {
867
+ overflow: hidden;
868
+ text-overflow: ellipsis;
869
+ white-space: nowrap;
870
+ }
871
+
872
+ .anlyx-page-preview__meta {
873
+ display: flex;
874
+ flex-wrap: wrap;
875
+ align-items: center;
876
+ gap: 8px;
877
+ padding: 10px 14px;
878
+ border-top: 1px solid var(--anlyx-color-border);
879
+ color: var(--anlyx-color-text-secondary);
880
+ font-size: 12px;
881
+ font-weight: 650;
882
+ }
883
+
884
+ .anlyx-flow-story__request {
885
+ position: absolute;
886
+ top: 48%;
887
+ left: min(365px, 32%);
888
+ z-index: 5;
889
+ display: flex;
890
+ align-items: center;
891
+ gap: 7px;
892
+ color: var(--anlyx-color-request);
893
+ font-size: 12px;
894
+ font-weight: 800;
895
+ pointer-events: none;
896
+ }
897
+
898
+ .anlyx-flow-story__request i {
899
+ width: 72px;
900
+ height: 2px;
901
+ background: var(--anlyx-color-request);
902
+ box-shadow: 0 0 14px rgb(37 99 235 / 42%);
903
+ }
904
+
905
+ .anlyx-flow-story__diagram {
906
+ position: relative;
907
+ display: grid;
908
+ align-self: stretch;
909
+ min-width: 0;
910
+ min-height: 480px;
911
+ align-content: center;
912
+ gap: 22px;
913
+ padding: 34px 26px 54px;
914
+ border: 1px solid rgb(223 230 241 / 72%);
915
+ border-radius: 14px;
916
+ background:
917
+ linear-gradient(90deg, rgb(37 99 235 / 3%) 1px, transparent 1px),
918
+ linear-gradient(rgb(37 99 235 / 3%) 1px, transparent 1px), rgb(255 255 255 / 66%);
919
+ background-size: 20px 20px;
920
+ box-shadow: inset 0 1px 0 rgb(255 255 255 / 90%);
921
+ }
922
+
923
+ .anlyx-flow-story__diagram-head {
924
+ display: flex;
925
+ align-items: center;
926
+ justify-content: space-between;
927
+ gap: 12px;
928
+ }
929
+
930
+ .anlyx-flow-story__diagram-head div {
931
+ display: inline-grid;
932
+ gap: 2px;
933
+ padding: 8px 11px;
934
+ border: 1px solid #dbe7fb;
935
+ border-radius: 10px;
936
+ background: rgb(255 255 255 / 82%);
937
+ box-shadow: 0 10px 22px rgb(15 23 42 / 4%);
938
+ }
939
+
940
+ .anlyx-flow-story__diagram-head span {
941
+ color: #64748b;
942
+ font-size: 10px;
943
+ font-weight: 900;
944
+ text-transform: uppercase;
945
+ }
946
+
947
+ .anlyx-flow-story__diagram-head strong {
948
+ color: #0f172a;
949
+ font-size: 13px;
950
+ }
951
+
952
+ .anlyx-flow-story__diagram--empty {
953
+ place-items: center;
954
+ color: var(--anlyx-color-text-secondary);
955
+ }
956
+
957
+ .anlyx-flow-story__lane {
958
+ display: flex;
959
+ align-items: stretch;
960
+ min-width: 0;
961
+ overflow-x: auto;
962
+ padding: 4px 2px 12px;
963
+ }
964
+
965
+ .anlyx-flow-story__step-wrap {
966
+ display: contents;
967
+ }
968
+
969
+ .anlyx-flow-story__step,
970
+ .anlyx-flow-story__support-node {
971
+ position: relative;
972
+ display: grid;
973
+ min-width: 0;
351
974
  border: 1px solid #cbd5e1;
352
- border-left: 4px solid #2563eb;
353
- border-radius: var(--anlyx-radius);
354
975
  background: rgb(255 255 255 / 96%);
355
976
  color: var(--anlyx-color-text-primary);
356
977
  font: inherit;
357
978
  text-align: left;
979
+ cursor: pointer;
980
+ }
981
+
982
+ .anlyx-flow-story__step {
983
+ width: clamp(138px, 13vw, 186px);
984
+ min-height: 140px;
985
+ gap: 8px;
986
+ padding: 14px;
987
+ border-top: 3px solid var(--anlyx-color-request);
988
+ border-radius: 11px;
989
+ box-shadow: 0 16px 34px rgb(15 23 42 / 8%);
990
+ }
991
+
992
+ .anlyx-flow-story__step-number {
993
+ position: absolute;
994
+ top: 11px;
995
+ right: 12px;
996
+ color: #94a3b8;
997
+ font-size: 11px;
998
+ font-weight: 950;
999
+ }
1000
+
1001
+ .anlyx-flow-story__step--service {
1002
+ border-top-color: #6366f1;
1003
+ }
1004
+
1005
+ .anlyx-flow-story__step--repository {
1006
+ border-top-color: #7c3aed;
1007
+ }
1008
+
1009
+ .anlyx-flow-story__step--database {
1010
+ border-top-color: var(--anlyx-color-database);
1011
+ background: linear-gradient(180deg, #ffffff, #f0fdfa);
1012
+ }
1013
+
1014
+ .anlyx-flow-story__step--active,
1015
+ .anlyx-flow-story__support-node--active {
1016
+ box-shadow:
1017
+ 0 0 0 4px rgb(37 99 235 / 12%),
1018
+ 0 18px 38px rgb(37 99 235 / 16%);
1019
+ }
1020
+
1021
+ .anlyx-flow-story__step--selected,
1022
+ .anlyx-flow-story__support-node--selected {
1023
+ outline: 2px solid var(--anlyx-color-request);
1024
+ outline-offset: 2px;
1025
+ }
1026
+
1027
+ .anlyx-flow-story__step-icon {
1028
+ display: grid;
1029
+ width: 26px;
1030
+ height: 26px;
1031
+ place-items: center;
1032
+ border-radius: 8px;
1033
+ background: #eff6ff;
1034
+ color: var(--anlyx-color-request);
1035
+ }
1036
+
1037
+ .anlyx-flow-story__step--service .anlyx-flow-story__step-icon {
1038
+ background: #eef2ff;
1039
+ color: #4f46e5;
1040
+ }
1041
+
1042
+ .anlyx-flow-story__step--repository .anlyx-flow-story__step-icon {
1043
+ background: #f5f3ff;
1044
+ color: #7c3aed;
1045
+ }
1046
+
1047
+ .anlyx-flow-story__step--database .anlyx-flow-story__step-icon {
1048
+ background: #ccfbf1;
1049
+ color: #0f766e;
1050
+ }
1051
+
1052
+ .anlyx-flow-story__step-type,
1053
+ .anlyx-flow-story__support-node span {
1054
+ color: var(--anlyx-color-text-secondary);
1055
+ font-size: 10px;
1056
+ font-weight: 900;
1057
+ text-transform: uppercase;
1058
+ }
1059
+
1060
+ .anlyx-flow-story__step strong,
1061
+ .anlyx-flow-story__support-node strong {
1062
+ overflow: hidden;
1063
+ color: #0f172a;
1064
+ font-size: 12px;
1065
+ line-height: 1.28;
1066
+ overflow-wrap: anywhere;
1067
+ }
1068
+
1069
+ .anlyx-flow-story__step .anlyx-status-badge,
1070
+ .anlyx-flow-story__support-node .anlyx-status-badge {
1071
+ align-self: end;
1072
+ justify-self: start;
1073
+ }
1074
+
1075
+ .anlyx-flow-story__arrow {
1076
+ position: relative;
1077
+ flex: 1 1 28px;
1078
+ min-width: 24px;
1079
+ align-self: center;
1080
+ height: 2px;
1081
+ background: var(--anlyx-color-request);
1082
+ box-shadow: 0 0 12px rgb(37 99 235 / 36%);
1083
+ }
1084
+
1085
+ .anlyx-flow-story__arrow::after {
1086
+ position: absolute;
1087
+ top: -4px;
1088
+ right: -1px;
1089
+ width: 9px;
1090
+ height: 9px;
1091
+ border-top: 2px solid var(--anlyx-color-request);
1092
+ border-right: 2px solid var(--anlyx-color-request);
1093
+ content: "";
1094
+ transform: rotate(45deg);
1095
+ }
1096
+
1097
+ .anlyx-flow-story__support {
1098
+ position: relative;
1099
+ display: grid;
1100
+ max-width: 520px;
1101
+ gap: 10px;
1102
+ margin-left: min(260px, 22vw);
1103
+ padding: 14px;
1104
+ border: 1px dashed rgb(249 115 22 / 58%);
1105
+ border-radius: 14px;
1106
+ background: rgb(255 247 237 / 72%);
1107
+ }
1108
+
1109
+ .anlyx-flow-story__support::before {
1110
+ position: absolute;
1111
+ top: -54px;
1112
+ left: 28px;
1113
+ width: 2px;
1114
+ height: 54px;
1115
+ border-left: 2px dashed var(--anlyx-color-branch);
1116
+ content: "";
1117
+ }
1118
+
1119
+ .anlyx-flow-story__support-heading {
1120
+ display: flex;
1121
+ align-items: center;
1122
+ gap: 7px;
1123
+ color: #c2410c;
1124
+ font-size: 11px;
1125
+ font-weight: 900;
1126
+ text-transform: uppercase;
1127
+ }
1128
+
1129
+ .anlyx-flow-story__support-grid {
1130
+ display: grid;
1131
+ grid-template-columns: repeat(3, minmax(0, 1fr));
1132
+ gap: 10px;
1133
+ }
1134
+
1135
+ .anlyx-flow-story__support-node {
1136
+ gap: 6px;
1137
+ min-height: 100px;
1138
+ padding: 11px;
1139
+ border-color: #fed7aa;
1140
+ border-radius: 10px;
1141
+ background: #ffffff;
1142
+ box-shadow: 0 10px 24px rgb(249 115 22 / 8%);
1143
+ }
1144
+
1145
+ .anlyx-flow-story__support-node svg {
1146
+ color: var(--anlyx-color-branch);
1147
+ }
1148
+
1149
+ .anlyx-flow-story__map {
1150
+ overflow: hidden;
1151
+ min-width: 0;
1152
+ min-height: 0;
1153
+ border: 1px solid rgb(223 230 241 / 74%);
1154
+ border-radius: 10px;
1155
+ background: rgb(255 255 255 / 72%);
1156
+ }
1157
+
1158
+ .anlyx-flow-story__map .anlyx-workspace {
1159
+ height: 100%;
1160
+ background: transparent;
1161
+ }
1162
+
1163
+ .anlyx-flow-story__map .anlyx-workspace-header,
1164
+ .anlyx-flow-story__map .anlyx-flow-legend {
1165
+ display: none;
1166
+ }
1167
+
1168
+ .anlyx-flow-story__map .anlyx-endpoint-map {
1169
+ margin: 0;
1170
+ border: 0;
1171
+ border-radius: 0;
1172
+ background: transparent;
1173
+ box-shadow: none;
1174
+ }
1175
+
1176
+ .anlyx-flow-story__response {
1177
+ position: absolute;
1178
+ right: 52px;
1179
+ bottom: 40px;
1180
+ left: 45%;
1181
+ height: 26px;
1182
+ border-bottom: 2px dashed var(--anlyx-color-response);
1183
+ border-left: 2px dashed var(--anlyx-color-response);
1184
+ border-radius: 0 0 0 14px;
1185
+ color: var(--anlyx-color-response);
1186
+ pointer-events: none;
1187
+ }
1188
+
1189
+ .anlyx-flow-story__response span {
1190
+ position: absolute;
1191
+ right: 45%;
1192
+ bottom: -11px;
1193
+ padding: 2px 8px;
1194
+ border: 1px solid rgb(139 92 246 / 22%);
1195
+ border-radius: 999px;
1196
+ background: #f5f3ff;
1197
+ font-size: 11px;
1198
+ font-weight: 800;
1199
+ }
1200
+
1201
+ @media (max-width: 1320px) {
1202
+ .anlyx-interaction-chain {
1203
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1204
+ }
1205
+
1206
+ .anlyx-flow-story__stage {
1207
+ grid-template-columns: minmax(240px, 320px) minmax(0, 1fr);
1208
+ gap: 20px;
1209
+ padding: 24px 20px 22px;
1210
+ }
1211
+
1212
+ .anlyx-flow-story__step {
1213
+ width: 148px;
1214
+ }
1215
+
1216
+ .anlyx-flow-story__support {
1217
+ margin-left: 180px;
1218
+ }
1219
+ }
1220
+
1221
+ @media (max-width: 1080px) {
1222
+ .anlyx-flow-story {
1223
+ overflow: auto;
1224
+ }
1225
+
1226
+ .anlyx-interaction-chain {
1227
+ grid-template-columns: 1fr;
1228
+ }
1229
+
1230
+ .anlyx-flow-story__stage {
1231
+ grid-template-columns: 1fr;
1232
+ overflow: visible;
1233
+ }
1234
+
1235
+ .anlyx-flow-story__request,
1236
+ .anlyx-flow-story__response {
1237
+ display: none;
1238
+ }
1239
+
1240
+ .anlyx-page-preview {
1241
+ max-width: 420px;
1242
+ }
1243
+
1244
+ .anlyx-flow-story__support {
1245
+ margin-left: 0;
1246
+ }
1247
+
1248
+ .anlyx-flow-story__support::before {
1249
+ display: none;
1250
+ }
1251
+ }
1252
+
1253
+ .anlyx-canvas-placeholder {
1254
+ display: grid;
1255
+ min-height: 360px;
1256
+ place-items: center;
1257
+ margin: 20px;
1258
+ border: 1px solid var(--anlyx-color-border);
1259
+ border-radius: var(--anlyx-radius);
1260
+ background:
1261
+ linear-gradient(var(--anlyx-color-grid) 1px, transparent 1px),
1262
+ linear-gradient(90deg, var(--anlyx-color-grid) 1px, transparent 1px), var(--anlyx-color-canvas);
1263
+ background-size: 24px 24px;
1264
+ }
1265
+
1266
+ .anlyx-canvas-placeholder__content {
1267
+ padding: 24px;
1268
+ border: 1px solid var(--anlyx-color-border);
1269
+ border-radius: var(--anlyx-radius);
1270
+ background: rgb(255 255 255 / 86%);
1271
+ text-align: center;
358
1272
  box-shadow: var(--anlyx-shadow-panel);
1273
+ }
1274
+
1275
+ .anlyx-endpoint-map {
1276
+ position: relative;
1277
+ height: calc(100% - 32px);
1278
+ min-width: 0;
1279
+ min-height: 0;
1280
+ margin: 16px;
1281
+ overflow: hidden;
1282
+ border: 1px solid var(--anlyx-color-border);
1283
+ border-radius: 12px;
1284
+ background:
1285
+ radial-gradient(circle at 50% 42%, rgb(37 99 235 / 4%), transparent 33%),
1286
+ linear-gradient(var(--anlyx-color-grid) 1px, transparent 1px),
1287
+ linear-gradient(90deg, var(--anlyx-color-grid) 1px, transparent 1px), var(--anlyx-color-canvas);
1288
+ background-size:
1289
+ auto,
1290
+ 24px 24px,
1291
+ 24px 24px;
1292
+ box-shadow: inset 0 1px 0 rgb(255 255 255 / 80%);
1293
+ }
1294
+
1295
+ .anlyx-endpoint-map--process {
1296
+ margin-bottom: 12px;
1297
+ border-color: #c7d2fe;
1298
+ background:
1299
+ radial-gradient(circle at 24% 42%, rgb(37 99 235 / 13%), transparent 20%),
1300
+ radial-gradient(circle at 52% 42%, rgb(249 115 22 / 8%), transparent 23%),
1301
+ radial-gradient(circle at 76% 42%, rgb(20 184 166 / 9%), transparent 24%),
1302
+ radial-gradient(circle at 86% 72%, rgb(139 92 246 / 11%), transparent 27%),
1303
+ linear-gradient(var(--anlyx-color-grid) 1px, transparent 1px),
1304
+ linear-gradient(90deg, var(--anlyx-color-grid) 1px, transparent 1px), #fbfdff;
1305
+ background-size:
1306
+ auto,
1307
+ auto,
1308
+ auto,
1309
+ auto,
1310
+ 24px 24px,
1311
+ 24px 24px;
1312
+ }
1313
+
1314
+ .anlyx-react-flow {
1315
+ width: 100%;
1316
+ height: 100%;
1317
+ min-height: 420px;
1318
+ }
1319
+
1320
+ .anlyx-flow-legend {
1321
+ position: absolute;
1322
+ z-index: 4;
1323
+ top: 18px;
1324
+ left: 18px;
1325
+ display: flex;
1326
+ flex-wrap: wrap;
1327
+ gap: 8px;
1328
+ padding: 9px 11px;
1329
+ border: 1px solid var(--anlyx-color-border);
1330
+ border-radius: 9px;
1331
+ background: rgb(255 255 255 / 94%);
1332
+ color: var(--anlyx-color-text-secondary);
1333
+ font-size: 12px;
1334
+ box-shadow: var(--anlyx-shadow-card);
1335
+ backdrop-filter: blur(12px);
1336
+ }
1337
+
1338
+ .anlyx-flow-legend span {
1339
+ display: inline-flex;
1340
+ align-items: center;
1341
+ gap: 6px;
1342
+ }
1343
+
1344
+ .anlyx-flow-legend__mark {
1345
+ width: 18px;
1346
+ height: 2px;
1347
+ background: #2563eb;
1348
+ }
1349
+
1350
+ .anlyx-flow-legend__mark--sub {
1351
+ background: var(--anlyx-color-branch);
1352
+ }
1353
+
1354
+ .anlyx-flow-legend__mark--response {
1355
+ background: var(--anlyx-color-response);
1356
+ }
1357
+
1358
+ .anlyx-flow-legend__mark--unknown {
1359
+ background: var(--anlyx-color-confidence-unknown);
1360
+ }
1361
+
1362
+ .anlyx-flow-node {
1363
+ position: relative;
1364
+ display: grid;
1365
+ width: 206px;
1366
+ min-height: 112px;
1367
+ gap: 9px;
1368
+ padding: 14px;
1369
+ border: 1px solid #cfd9e8;
1370
+ border-top: 3px solid var(--anlyx-color-request);
1371
+ border-left: 1px solid #cfd9e8;
1372
+ border-radius: 10px;
1373
+ background: rgb(255 255 255 / 96%);
1374
+ color: var(--anlyx-color-text-primary);
1375
+ font: inherit;
1376
+ text-align: left;
1377
+ box-shadow:
1378
+ 0 15px 34px rgb(15 23 42 / 8%),
1379
+ var(--anlyx-shadow-panel);
359
1380
  cursor: pointer;
1381
+ isolation: isolate;
1382
+ }
1383
+
1384
+ .anlyx-flow-node::before {
1385
+ position: absolute;
1386
+ top: 14px;
1387
+ bottom: 14px;
1388
+ left: 0;
1389
+ width: 4px;
1390
+ border-radius: 0 999px 999px 0;
1391
+ background: var(--anlyx-color-request);
1392
+ content: "";
1393
+ }
1394
+
1395
+ .anlyx-flow-node--sub {
1396
+ width: 182px;
1397
+ min-height: 86px;
1398
+ border-color: #ead8ff;
1399
+ border-top-color: var(--anlyx-color-branch);
1400
+ background: linear-gradient(180deg, #ffffff, #fff8f1);
1401
+ box-shadow: 0 8px 24px rgb(249 115 22 / 8%);
1402
+ }
1403
+
1404
+ .anlyx-flow-node--service {
1405
+ border-top-color: #6366f1;
1406
+ background: linear-gradient(180deg, #ffffff, #f7f7ff);
1407
+ }
1408
+
1409
+ .anlyx-flow-node--repository {
1410
+ border-top-color: #7c3aed;
1411
+ background: linear-gradient(180deg, #ffffff, #fbf7ff);
1412
+ }
1413
+
1414
+ .anlyx-flow-node--sub::before {
1415
+ background: var(--anlyx-color-branch);
1416
+ }
1417
+
1418
+ .anlyx-flow-node--service::before {
1419
+ background: #6366f1;
1420
+ }
1421
+
1422
+ .anlyx-flow-node--repository::before {
1423
+ background: #7c3aed;
360
1424
  }
361
1425
 
362
- .anlyx-flow-node--sub {
363
- border-left-color: #7c3aed;
364
- background: #fbfaff;
1426
+ .anlyx-flow-node--database::before {
1427
+ background: var(--anlyx-color-database);
365
1428
  }
366
1429
 
367
1430
  .anlyx-flow-node--secondary {
368
- border-left-color: var(--anlyx-color-text-secondary);
1431
+ border-top-color: var(--anlyx-color-text-secondary);
369
1432
  }
370
1433
 
371
1434
  .anlyx-flow-node--database {
372
- border-left-color: #0f766e;
1435
+ border-color: #b8e7dc;
1436
+ border-top-color: var(--anlyx-color-database);
1437
+ background: linear-gradient(180deg, #ffffff, #f3fffb);
1438
+ box-shadow: 0 14px 34px rgb(15 118 110 / 11%);
373
1439
  }
374
1440
 
375
1441
  .anlyx-flow-node--selected {
376
- outline: 2px solid #2563eb;
1442
+ outline: 2px solid #4f8df8;
377
1443
  outline-offset: 2px;
1444
+ box-shadow:
1445
+ 0 0 0 7px rgb(37 99 235 / 11%),
1446
+ 0 18px 44px rgb(37 99 235 / 16%);
378
1447
  }
379
1448
 
380
1449
  .anlyx-flow-node--replay-active {
381
- border-color: #0891b2;
382
- outline: 2px solid #06b6d4;
1450
+ border-color: var(--anlyx-color-request);
1451
+ outline: 2px solid rgb(37 99 235 / 55%);
383
1452
  outline-offset: 3px;
384
1453
  box-shadow:
385
- 0 0 0 4px rgb(6 182 212 / 14%),
1454
+ 0 0 0 6px rgb(37 99 235 / 14%),
1455
+ 0 18px 42px rgb(37 99 235 / 18%),
386
1456
  var(--anlyx-shadow-panel);
1457
+ animation: anlyx-node-pulse 1.1s ease-in-out infinite;
1458
+ }
1459
+
1460
+ .anlyx-flow-node--replay-active::after {
1461
+ position: absolute;
1462
+ z-index: -1;
1463
+ inset: -14px;
1464
+ border-radius: 18px;
1465
+ background: radial-gradient(circle, rgb(37 99 235 / 24%), transparent 62%);
1466
+ content: "";
1467
+ animation: anlyx-ripple 1.35s ease-out infinite;
1468
+ }
1469
+
1470
+ .anlyx-flow-node__pulse {
1471
+ position: absolute;
1472
+ z-index: -1;
1473
+ inset: -8px;
1474
+ border: 1px solid rgb(37 99 235 / 24%);
1475
+ border-radius: 16px;
1476
+ pointer-events: none;
1477
+ }
1478
+
1479
+ .anlyx-flow-node--database.anlyx-flow-node--replay-active::after {
1480
+ background: radial-gradient(circle, rgb(20 184 166 / 26%), transparent 62%);
1481
+ }
1482
+
1483
+ .anlyx-flow-handle {
1484
+ width: 1px;
1485
+ height: 1px;
1486
+ border: 0;
1487
+ background: transparent;
1488
+ opacity: 0;
1489
+ pointer-events: none;
1490
+ }
1491
+
1492
+ .anlyx-flow-node__header {
1493
+ display: flex;
1494
+ align-items: center;
1495
+ gap: 8px;
1496
+ }
1497
+
1498
+ .anlyx-flow-node__icon {
1499
+ display: inline-grid;
1500
+ min-width: 30px;
1501
+ height: 28px;
1502
+ place-items: center;
1503
+ border: 1px solid #dbeafe;
1504
+ border-radius: 8px;
1505
+ background: #eff6ff;
1506
+ color: var(--anlyx-color-request);
1507
+ font-size: 10px;
1508
+ font-weight: 800;
1509
+ }
1510
+
1511
+ .anlyx-flow-node__icon svg {
1512
+ display: block;
1513
+ }
1514
+
1515
+ .anlyx-flow-node--service .anlyx-flow-node__icon {
1516
+ border-color: #e0e7ff;
1517
+ background: #eef2ff;
1518
+ color: #4f46e5;
1519
+ }
1520
+
1521
+ .anlyx-flow-node--repository .anlyx-flow-node__icon {
1522
+ border-color: #ede9fe;
1523
+ background: #f5f3ff;
1524
+ color: #7c3aed;
1525
+ }
1526
+
1527
+ .anlyx-flow-node--database .anlyx-flow-node__icon {
1528
+ border-color: #ccfbf1;
1529
+ background: #ecfdf5;
1530
+ color: var(--anlyx-color-database);
1531
+ }
1532
+
1533
+ .anlyx-flow-node--sub .anlyx-flow-node__icon {
1534
+ border-color: #fed7aa;
1535
+ background: #fff7ed;
1536
+ color: var(--anlyx-color-branch);
387
1537
  }
388
1538
 
389
1539
  .anlyx-flow-node__type {
390
1540
  color: var(--anlyx-color-text-secondary);
391
- font-size: 11px;
1541
+ font-size: 10px;
392
1542
  font-weight: 700;
393
1543
  text-transform: uppercase;
394
1544
  }
@@ -397,31 +1547,100 @@ body {
397
1547
  overflow-wrap: anywhere;
398
1548
  font-size: 13px;
399
1549
  font-weight: 650;
400
- line-height: 1.25;
1550
+ line-height: 1.3;
401
1551
  }
402
1552
 
403
1553
  .anlyx-flow-edge--sub .react-flow__edge-path {
404
- stroke-dasharray: 5 4;
1554
+ stroke-dasharray: 6 5;
1555
+ stroke: var(--anlyx-color-branch);
1556
+ stroke-width: 2px;
1557
+ }
1558
+
1559
+ .anlyx-workspace--process .anlyx-flow-edge--sub .react-flow__edge-path {
1560
+ stroke: var(--anlyx-color-branch);
1561
+ stroke-dasharray: 7 5;
405
1562
  }
406
1563
 
407
1564
  .anlyx-flow-edge--replay-active .react-flow__edge-path {
408
- stroke: #0891b2;
409
- stroke-width: 3px;
1565
+ stroke-width: 4.5px;
1566
+ stroke-dasharray: 14 9;
1567
+ animation: anlyx-flow-travel 0.8s linear infinite;
1568
+ }
1569
+
1570
+ .anlyx-flow-edge--replay-request .react-flow__edge-path {
1571
+ stroke: var(--anlyx-color-request);
1572
+ filter: drop-shadow(0 0 8px rgb(37 99 235 / 58%));
1573
+ }
1574
+
1575
+ .anlyx-flow-edge--replay-response .react-flow__edge-path {
1576
+ stroke: var(--anlyx-color-response);
1577
+ filter: drop-shadow(0 0 8px rgb(139 92 246 / 58%));
1578
+ }
1579
+
1580
+ .anlyx-flow-particle {
1581
+ fill: var(--anlyx-color-request);
1582
+ filter: drop-shadow(0 0 8px rgb(37 99 235 / 75%));
1583
+ pointer-events: none;
1584
+ }
1585
+
1586
+ .anlyx-flow-particle--sub {
1587
+ fill: var(--anlyx-color-branch);
1588
+ filter: drop-shadow(0 0 8px rgb(249 115 22 / 72%));
1589
+ }
1590
+
1591
+ .anlyx-flow-particle--response,
1592
+ .anlyx-flow-particle--secondary {
1593
+ fill: var(--anlyx-color-response);
1594
+ filter: drop-shadow(0 0 8px rgb(139 92 246 / 72%));
410
1595
  }
411
1596
 
412
1597
  .anlyx-endpoint-map-empty {
413
1598
  display: grid;
414
- min-height: 520px;
415
- place-items: center;
1599
+ min-height: 420px;
1600
+ align-content: center;
1601
+ justify-items: center;
1602
+ gap: 8px;
416
1603
  padding: 24px;
417
1604
  color: var(--anlyx-color-text-secondary);
1605
+ text-align: center;
1606
+ }
1607
+
1608
+ .anlyx-endpoint-map-empty span {
1609
+ display: inline-flex;
1610
+ align-items: center;
1611
+ min-height: 24px;
1612
+ padding: 0 9px;
1613
+ border: 1px solid #fed7aa;
1614
+ border-radius: 999px;
1615
+ background: #fff7ed;
1616
+ color: #c2410c;
1617
+ font-size: 11px;
1618
+ font-weight: 850;
1619
+ text-transform: uppercase;
1620
+ }
1621
+
1622
+ .anlyx-endpoint-map-empty h2 {
1623
+ margin: 4px 0 0;
1624
+ color: var(--anlyx-color-text-primary);
1625
+ font-size: 18px;
1626
+ line-height: 1.25;
1627
+ }
1628
+
1629
+ .anlyx-endpoint-map-empty p {
1630
+ max-width: 520px;
1631
+ margin: 0;
1632
+ font-size: 13px;
1633
+ line-height: 1.5;
418
1634
  }
419
1635
 
420
1636
  .anlyx-page-storyboard {
421
1637
  display: grid;
422
- gap: 16px;
1638
+ gap: 18px;
1639
+ overflow: auto;
423
1640
  min-width: 0;
424
- margin: 20px;
1641
+ min-height: 0;
1642
+ margin: 16px;
1643
+ padding-bottom: 24px;
425
1644
  }
426
1645
 
427
1646
  .anlyx-page-summary,
@@ -436,9 +1655,12 @@ body {
436
1655
 
437
1656
  .anlyx-page-summary {
438
1657
  display: grid;
439
- grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.6fr) auto;
1658
+ grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.5fr) auto auto;
440
1659
  gap: 16px;
441
- padding: 16px;
1660
+ padding: 18px;
1661
+ background:
1662
+ linear-gradient(180deg, rgb(255 255 255 / 96%), rgb(251 253 255 / 96%)),
1663
+ radial-gradient(circle at 8% 0%, rgb(37 99 235 / 8%), transparent 28%);
442
1664
  }
443
1665
 
444
1666
  .anlyx-page-summary h2,
@@ -454,16 +1676,144 @@ body {
454
1676
 
455
1677
  .anlyx-storyboard-grid {
456
1678
  display: grid;
457
- grid-template-columns: minmax(0, 1.5fr) minmax(280px, 0.8fr);
1679
+ grid-template-columns: minmax(0, 1.58fr) minmax(300px, 0.82fr);
1680
+ gap: 16px;
1681
+ min-width: 0;
1682
+ }
1683
+
1684
+ .anlyx-page-evidence-board {
1685
+ display: grid;
1686
+ grid-template-columns: minmax(210px, 1.2fr) repeat(3, minmax(150px, 1fr));
1687
+ gap: 10px;
1688
+ align-items: stretch;
1689
+ min-width: 0;
1690
+ padding: 12px;
1691
+ border: 1px solid #cfe0f8;
1692
+ border-radius: var(--anlyx-radius);
1693
+ background:
1694
+ linear-gradient(180deg, rgb(255 255 255 / 94%), rgb(248 251 255 / 92%)),
1695
+ radial-gradient(circle at 0% 0%, rgb(37 99 235 / 12%), transparent 34%);
1696
+ box-shadow: var(--anlyx-shadow-panel);
1697
+ }
1698
+
1699
+ .anlyx-page-evidence-board__intro,
1700
+ .anlyx-page-evidence-metric {
1701
+ display: grid;
1702
+ gap: 5px;
1703
+ min-width: 0;
1704
+ padding: 12px;
1705
+ border: 1px solid rgb(219 231 251 / 88%);
1706
+ border-radius: 9px;
1707
+ background: rgb(255 255 255 / 78%);
1708
+ }
1709
+
1710
+ .anlyx-page-evidence-board__intro {
1711
+ border-left: 4px solid var(--anlyx-color-request);
1712
+ }
1713
+
1714
+ .anlyx-page-evidence-board__intro span,
1715
+ .anlyx-page-evidence-metric span {
1716
+ color: var(--anlyx-color-text-secondary);
1717
+ font-size: 11px;
1718
+ font-weight: 900;
1719
+ text-transform: uppercase;
1720
+ }
1721
+
1722
+ .anlyx-page-evidence-board__intro strong,
1723
+ .anlyx-page-evidence-metric strong {
1724
+ overflow-wrap: anywhere;
1725
+ color: var(--anlyx-color-text-primary);
1726
+ font-size: 18px;
1727
+ line-height: 1.15;
1728
+ }
1729
+
1730
+ .anlyx-page-evidence-metric em {
1731
+ overflow-wrap: anywhere;
1732
+ color: var(--anlyx-color-text-secondary);
1733
+ font-size: 12px;
1734
+ font-style: normal;
1735
+ font-weight: 650;
1736
+ }
1737
+
1738
+ .anlyx-storyboard-side {
1739
+ display: grid;
458
1740
  gap: 16px;
459
1741
  min-width: 0;
460
1742
  }
461
1743
 
1744
+ .anlyx-relationship-list {
1745
+ display: grid;
1746
+ gap: 9px;
1747
+ padding: 0;
1748
+ margin: 0;
1749
+ list-style: none;
1750
+ }
1751
+
1752
+ .anlyx-relationship-list li {
1753
+ position: relative;
1754
+ display: flex;
1755
+ min-width: 0;
1756
+ align-items: center;
1757
+ gap: 8px;
1758
+ padding: 9px 10px;
1759
+ border: 1px solid var(--anlyx-color-border);
1760
+ border-radius: 8px;
1761
+ background: #ffffff;
1762
+ }
1763
+
1764
+ .anlyx-relationship-diagram {
1765
+ display: grid;
1766
+ grid-template-columns: minmax(130px, 0.75fr) minmax(0, 1.3fr);
1767
+ gap: 22px;
1768
+ align-items: center;
1769
+ }
1770
+
1771
+ .anlyx-relationship-source {
1772
+ display: grid;
1773
+ gap: 4px;
1774
+ padding: 14px;
1775
+ border: 1px solid var(--anlyx-color-border);
1776
+ border-radius: var(--anlyx-radius);
1777
+ background: linear-gradient(180deg, #ffffff, #f8fbff);
1778
+ text-align: center;
1779
+ box-shadow: var(--anlyx-shadow-panel);
1780
+ }
1781
+
1782
+ .anlyx-relationship-source span {
1783
+ color: var(--anlyx-color-text-secondary);
1784
+ font-size: 12px;
1785
+ }
1786
+
1787
+ .anlyx-relationship-line {
1788
+ width: 22px;
1789
+ height: 1px;
1790
+ margin-left: -31px;
1791
+ border-top: 1px solid #94a3b8;
1792
+ }
1793
+
1794
+ .anlyx-relationship-line::after {
1795
+ display: block;
1796
+ width: 5px;
1797
+ height: 5px;
1798
+ margin-top: -3px;
1799
+ margin-left: 18px;
1800
+ border-top: 1px solid #94a3b8;
1801
+ border-right: 1px solid #94a3b8;
1802
+ content: "";
1803
+ transform: rotate(45deg);
1804
+ }
1805
+
1806
+ .anlyx-relationship-list span:last-child {
1807
+ overflow-wrap: anywhere;
1808
+ font-weight: 650;
1809
+ }
1810
+
462
1811
  .anlyx-storyboard-panel {
463
1812
  display: grid;
464
1813
  min-width: 0;
465
1814
  gap: 12px;
466
- padding: 16px;
1815
+ padding: 18px;
1816
+ box-shadow: var(--anlyx-shadow-card);
467
1817
  }
468
1818
 
469
1819
  .anlyx-storyboard-section-heading {
@@ -488,7 +1838,7 @@ body {
488
1838
 
489
1839
  .anlyx-segment-grid {
490
1840
  display: grid;
491
- grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
1841
+ grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
492
1842
  gap: 12px;
493
1843
  }
494
1844
 
@@ -499,18 +1849,39 @@ body {
499
1849
  border-left: 4px solid #3b82f6;
500
1850
  border-radius: var(--anlyx-radius);
501
1851
  background: var(--anlyx-color-panel);
1852
+ box-shadow: 0 10px 24px rgb(15 23 42 / 6%);
1853
+ }
1854
+
1855
+ .anlyx-segment-card--placeholder {
1856
+ border-left-color: var(--anlyx-color-method-update);
1857
+ background: linear-gradient(180deg, #ffffff, #fffaf2);
502
1858
  }
503
1859
 
504
1860
  .anlyx-segment-card__image {
505
1861
  display: grid;
506
- min-height: 120px;
1862
+ min-height: 128px;
507
1863
  place-items: center;
508
1864
  overflow: hidden;
509
1865
  border-bottom: 1px solid var(--anlyx-color-border);
510
- background: var(--anlyx-color-background);
1866
+ background:
1867
+ linear-gradient(135deg, rgb(37 99 235 / 8%) 25%, transparent 25%) 0 0 / 18px 18px,
1868
+ linear-gradient(135deg, transparent 75%, rgb(37 99 235 / 8%) 75%) 0 0 / 18px 18px,
1869
+ #f8fafc;
511
1870
  color: var(--anlyx-color-text-secondary);
512
1871
  }
513
1872
 
1873
+ .anlyx-segment-card--placeholder .anlyx-segment-card__image span {
1874
+ display: grid;
1875
+ width: 34px;
1876
+ height: 34px;
1877
+ place-items: center;
1878
+ border-radius: 999px;
1879
+ background: #fff7ed;
1880
+ color: #c2410c;
1881
+ font-weight: 800;
1882
+ box-shadow: 0 0 0 7px rgb(249 115 22 / 10%);
1883
+ }
1884
+
514
1885
  .anlyx-segment-card__image img {
515
1886
  width: 100%;
516
1887
  min-height: 120px;
@@ -528,14 +1899,47 @@ body {
528
1899
  margin: 0;
529
1900
  }
530
1901
 
531
- .anlyx-segment-card__body code,
532
- .anlyx-api-call__endpoint {
1902
+ .anlyx-segment-card__body code {
533
1903
  overflow-wrap: anywhere;
534
1904
  color: var(--anlyx-color-text-secondary);
535
1905
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
536
1906
  font-size: 12px;
537
1907
  }
538
1908
 
1909
+ .anlyx-api-call__endpoint {
1910
+ display: grid;
1911
+ gap: 4px;
1912
+ min-width: 0;
1913
+ padding: 9px;
1914
+ border: 1px dashed #cbd5e1;
1915
+ border-radius: 8px;
1916
+ background: #f8fafc;
1917
+ }
1918
+
1919
+ .anlyx-api-call__endpoint span {
1920
+ color: var(--anlyx-color-text-secondary);
1921
+ font-size: 10px;
1922
+ font-weight: 900;
1923
+ text-transform: uppercase;
1924
+ }
1925
+
1926
+ .anlyx-api-call__endpoint strong,
1927
+ .anlyx-api-call__endpoint em {
1928
+ overflow-wrap: anywhere;
1929
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
1930
+ font-size: 12px;
1931
+ line-height: 1.35;
1932
+ }
1933
+
1934
+ .anlyx-api-call__endpoint strong {
1935
+ color: var(--anlyx-color-text-primary);
1936
+ }
1937
+
1938
+ .anlyx-api-call__endpoint em {
1939
+ color: var(--anlyx-color-text-secondary);
1940
+ font-style: normal;
1941
+ }
1942
+
539
1943
  .anlyx-segment-card__meta,
540
1944
  .anlyx-api-call__meta {
541
1945
  display: flex;
@@ -560,9 +1964,10 @@ body {
560
1964
  .anlyx-api-call {
561
1965
  display: grid;
562
1966
  gap: 8px;
563
- padding: 10px;
1967
+ padding: 11px 12px;
564
1968
  border: 1px solid var(--anlyx-color-border);
565
1969
  border-radius: var(--anlyx-radius);
1970
+ background: linear-gradient(180deg, #ffffff, #fbfcff);
566
1971
  }
567
1972
 
568
1973
  .anlyx-api-call__line {
@@ -577,75 +1982,183 @@ body {
577
1982
  font-weight: 650;
578
1983
  }
579
1984
 
580
- .anlyx-capture-state {
581
- display: grid;
582
- gap: 6px;
583
- padding: 14px 16px;
584
- border-left: 4px solid var(--anlyx-color-method-update);
1985
+ .anlyx-capture-state {
1986
+ display: grid;
1987
+ gap: 8px;
1988
+ padding: 16px 18px;
1989
+ border-left: 4px solid var(--anlyx-color-method-update);
1990
+ background:
1991
+ linear-gradient(180deg, rgb(255 255 255 / 96%), rgb(255 250 242 / 88%)),
1992
+ radial-gradient(circle at 0% 0%, rgb(245 158 11 / 12%), transparent 34%);
1993
+ }
1994
+
1995
+ .anlyx-capture-state--failed {
1996
+ border-left-color: var(--anlyx-color-method-delete);
1997
+ }
1998
+
1999
+ .anlyx-capture-state p {
2000
+ margin: 0;
2001
+ color: var(--anlyx-color-text-secondary);
2002
+ }
2003
+
2004
+ .anlyx-storyboard-empty {
2005
+ display: grid;
2006
+ min-height: 360px;
2007
+ place-items: center;
2008
+ color: var(--anlyx-color-text-secondary);
2009
+ }
2010
+
2011
+ .anlyx-empty-inline {
2012
+ margin: 0;
2013
+ color: var(--anlyx-color-text-secondary);
2014
+ }
2015
+
2016
+ .anlyx-inspector {
2017
+ grid-column: 5;
2018
+ grid-row: 1;
2019
+ overflow: auto;
2020
+ min-width: 0;
2021
+ min-height: 0;
2022
+ border-left: 1px solid var(--anlyx-color-border);
2023
+ background: #fbfcff;
2024
+ box-shadow: -12px 0 34px rgb(15 23 42 / 3%);
2025
+ }
2026
+
2027
+ .anlyx-inspector-stack {
2028
+ display: grid;
2029
+ gap: 12px;
2030
+ padding: 14px;
2031
+ }
2032
+
2033
+ .anlyx-field,
2034
+ .anlyx-inspector-group {
2035
+ display: grid;
2036
+ gap: 8px;
2037
+ }
2038
+
2039
+ .anlyx-inspector-group {
2040
+ padding: 14px;
2041
+ border: 1px solid var(--anlyx-color-border);
2042
+ border-radius: var(--anlyx-radius);
2043
+ background: #ffffff;
2044
+ box-shadow: var(--anlyx-shadow-panel);
2045
+ }
2046
+
2047
+ .anlyx-inspector-group h3,
2048
+ .anlyx-inspector-group p,
2049
+ .anlyx-inspector-group ul {
2050
+ margin: 0;
2051
+ }
2052
+
2053
+ .anlyx-inspector-group h3 {
2054
+ color: #334155;
2055
+ font-size: 13px;
2056
+ font-weight: 800;
2057
+ }
2058
+
2059
+ .anlyx-inspector-group__heading {
2060
+ display: flex;
2061
+ align-items: center;
2062
+ justify-content: space-between;
2063
+ gap: 12px;
2064
+ }
2065
+
2066
+ .anlyx-copy-button {
2067
+ min-height: 26px;
2068
+ padding: 0 9px;
2069
+ border: 1px solid var(--anlyx-color-border);
2070
+ border-radius: 999px;
2071
+ background: #f8fafc;
2072
+ color: var(--anlyx-color-text-secondary);
2073
+ font: inherit;
2074
+ font-size: 12px;
2075
+ font-weight: 700;
2076
+ cursor: pointer;
2077
+ }
2078
+
2079
+ .anlyx-inspector-note {
2080
+ color: var(--anlyx-color-text-secondary);
2081
+ font-size: 12px;
585
2082
  }
586
2083
 
587
- .anlyx-capture-state--failed {
588
- border-left-color: var(--anlyx-color-method-delete);
2084
+ .anlyx-field__value {
2085
+ overflow: hidden;
2086
+ text-overflow: ellipsis;
589
2087
  }
590
2088
 
591
- .anlyx-capture-state p {
592
- margin: 0;
593
- color: var(--anlyx-color-text-secondary);
2089
+ .anlyx-inspector-group ul {
2090
+ padding-left: 18px;
594
2091
  }
595
2092
 
596
- .anlyx-storyboard-empty {
2093
+ .anlyx-evidence-list,
2094
+ .anlyx-call-list {
597
2095
  display: grid;
598
- min-height: 360px;
599
- place-items: center;
600
- color: var(--anlyx-color-text-secondary);
2096
+ gap: 8px;
2097
+ padding: 0;
2098
+ list-style: none;
601
2099
  }
602
2100
 
603
- .anlyx-empty-inline {
604
- margin: 0;
605
- color: var(--anlyx-color-text-secondary);
2101
+ .anlyx-evidence-list li,
2102
+ .anlyx-call-list li {
2103
+ display: grid;
2104
+ grid-template-columns: auto minmax(0, 1fr) auto;
2105
+ align-items: center;
2106
+ gap: 9px;
2107
+ min-width: 0;
2108
+ padding: 9px;
2109
+ border: 1px solid #e7edf6;
2110
+ border-radius: 8px;
2111
+ background: #fbfcff;
606
2112
  }
607
2113
 
608
- .anlyx-inspector {
609
- grid-row: 1 / span 2;
610
- min-width: 0;
611
- border-left: 1px solid var(--anlyx-color-border);
2114
+ .anlyx-evidence-list svg {
2115
+ color: var(--anlyx-color-confidence-high);
612
2116
  }
613
2117
 
614
- .anlyx-inspector-stack {
2118
+ .anlyx-evidence-list span,
2119
+ .anlyx-call-list span {
615
2120
  display: grid;
616
- gap: 14px;
617
- padding: 20px;
2121
+ min-width: 0;
2122
+ gap: 2px;
618
2123
  }
619
2124
 
620
- .anlyx-field,
621
- .anlyx-inspector-group {
622
- display: grid;
623
- gap: 6px;
2125
+ .anlyx-evidence-list strong {
2126
+ overflow: hidden;
2127
+ color: var(--anlyx-color-text-primary);
2128
+ font-size: 12px;
2129
+ text-overflow: ellipsis;
2130
+ white-space: nowrap;
624
2131
  }
625
2132
 
626
- .anlyx-inspector-group {
627
- padding-top: 12px;
628
- border-top: 1px solid var(--anlyx-color-border);
2133
+ .anlyx-evidence-list em {
2134
+ overflow-wrap: anywhere;
2135
+ color: var(--anlyx-color-text-secondary);
2136
+ font-size: 11px;
2137
+ font-style: normal;
2138
+ line-height: 1.35;
629
2139
  }
630
2140
 
631
- .anlyx-inspector-group h3,
632
- .anlyx-inspector-group p,
633
- .anlyx-inspector-group ul {
634
- margin: 0;
2141
+ .anlyx-call-list li {
2142
+ grid-template-columns: minmax(0, 1fr) auto;
635
2143
  }
636
2144
 
637
- .anlyx-inspector-group ul {
638
- padding-left: 18px;
2145
+ .anlyx-call-list span {
2146
+ overflow: hidden;
2147
+ color: var(--anlyx-color-text-primary);
2148
+ font-size: 12px;
2149
+ font-weight: 650;
2150
+ text-overflow: ellipsis;
2151
+ white-space: nowrap;
639
2152
  }
640
2153
 
641
2154
  .anlyx-metadata {
642
2155
  overflow: auto;
643
2156
  max-width: 100%;
644
2157
  margin: 0;
645
- padding: 10px;
2158
+ padding: 12px;
646
2159
  border: 1px solid var(--anlyx-color-border);
647
- border-radius: 6px;
648
- background: var(--anlyx-color-background);
2160
+ border-radius: 8px;
2161
+ background: #f7f9fd;
649
2162
  color: var(--anlyx-color-text-secondary);
650
2163
  font-size: 12px;
651
2164
  }
@@ -656,12 +2169,27 @@ body {
656
2169
  }
657
2170
 
658
2171
  .anlyx-replay {
2172
+ display: grid;
2173
+ gap: 16px;
2174
+ padding: 14px 20px;
2175
+ border-bottom: 1px solid var(--anlyx-color-border);
2176
+ background: rgb(255 255 255 / 86%);
2177
+ backdrop-filter: blur(14px);
2178
+ }
2179
+
2180
+ .anlyx-replay__top {
659
2181
  display: flex;
660
2182
  align-items: center;
661
2183
  justify-content: space-between;
662
2184
  gap: 16px;
663
- padding: 12px 20px;
664
- border-top: 1px solid var(--anlyx-color-border);
2185
+ }
2186
+
2187
+ .anlyx-process-view {
2188
+ display: grid;
2189
+ overflow: hidden;
2190
+ min-width: 0;
2191
+ min-height: 0;
2192
+ grid-template-rows: auto minmax(0, 1fr) auto;
665
2193
  }
666
2194
 
667
2195
  .anlyx-replay__buttons {
@@ -671,7 +2199,26 @@ body {
671
2199
  }
672
2200
 
673
2201
  .anlyx-replay button {
674
- padding: 0 12px;
2202
+ display: inline-flex;
2203
+ align-items: center;
2204
+ justify-content: center;
2205
+ gap: 7px;
2206
+ min-height: 38px;
2207
+ padding: 0 14px;
2208
+ font-weight: 700;
2209
+ }
2210
+
2211
+ .anlyx-replay button svg {
2212
+ flex: 0 0 auto;
2213
+ }
2214
+
2215
+ .anlyx-replay .anlyx-replay__button--primary {
2216
+ border-color: #1d4ed8;
2217
+ background: linear-gradient(180deg, #2f7df4, #125de0);
2218
+ color: #ffffff;
2219
+ box-shadow:
2220
+ 0 12px 24px rgb(37 99 235 / 22%),
2221
+ inset 0 1px 0 rgb(255 255 255 / 22%);
675
2222
  }
676
2223
 
677
2224
  .anlyx-replay button[aria-pressed="true"] {
@@ -689,13 +2236,25 @@ body {
689
2236
  justify-content: flex-end;
690
2237
  color: var(--anlyx-color-text-secondary);
691
2238
  font-size: 12px;
2239
+ font-weight: 700;
2240
+ }
2241
+
2242
+ .anlyx-replay__state label {
2243
+ display: inline-flex;
2244
+ align-items: center;
2245
+ gap: 6px;
2246
+ padding: 4px 8px;
2247
+ border: 1px solid var(--anlyx-color-border);
2248
+ border-radius: 999px;
2249
+ background: #f8fbff;
692
2250
  }
693
2251
 
694
2252
  .anlyx-replay__state span {
695
2253
  padding: 4px 8px;
696
2254
  border: 1px solid var(--anlyx-color-border);
697
2255
  border-radius: 999px;
698
- background: var(--anlyx-color-background);
2256
+ background: #eef5ff;
2257
+ color: #1d4ed8;
699
2258
  }
700
2259
 
701
2260
  .anlyx-replay__empty {
@@ -705,9 +2264,214 @@ body {
705
2264
  font-size: 12px;
706
2265
  }
707
2266
 
2267
+ .anlyx-replay__focus {
2268
+ display: grid;
2269
+ align-items: center;
2270
+ min-width: 0;
2271
+ grid-template-columns: minmax(220px, 0.75fr) minmax(280px, 1fr);
2272
+ gap: 16px;
2273
+ padding: 12px;
2274
+ border: 1px solid #d9e6ff;
2275
+ border-radius: 8px;
2276
+ background:
2277
+ linear-gradient(90deg, rgb(37 99 235 / 8%), rgb(124 58 237 / 5%) 52%, rgb(20 184 166 / 7%)),
2278
+ #ffffff;
2279
+ box-shadow: inset 0 1px 0 rgb(255 255 255 / 70%);
2280
+ }
2281
+
2282
+ .anlyx-replay__focus strong {
2283
+ display: block;
2284
+ overflow: hidden;
2285
+ margin-top: 4px;
2286
+ color: var(--anlyx-color-text-primary);
2287
+ font-size: 13px;
2288
+ text-overflow: ellipsis;
2289
+ white-space: nowrap;
2290
+ }
2291
+
2292
+ .anlyx-replay__focus p {
2293
+ overflow: hidden;
2294
+ margin: 4px 0 0;
2295
+ color: var(--anlyx-color-text-secondary);
2296
+ font-size: 12px;
2297
+ font-weight: 650;
2298
+ line-height: 1.35;
2299
+ text-overflow: ellipsis;
2300
+ white-space: nowrap;
2301
+ }
2302
+
2303
+ .anlyx-replay__phase {
2304
+ color: #1d4ed8;
2305
+ font-size: 11px;
2306
+ font-weight: 800;
2307
+ letter-spacing: 0;
2308
+ text-transform: uppercase;
2309
+ }
2310
+
2311
+ .anlyx-replay__rail {
2312
+ display: grid;
2313
+ align-items: center;
2314
+ min-width: 0;
2315
+ grid-auto-columns: minmax(28px, 1fr);
2316
+ grid-auto-flow: column;
2317
+ gap: 6px;
2318
+ margin: 0;
2319
+ padding: 0;
2320
+ list-style: none;
2321
+ }
2322
+
2323
+ .anlyx-replay__rail li {
2324
+ position: relative;
2325
+ z-index: 0;
2326
+ display: flex;
2327
+ align-items: center;
2328
+ justify-content: center;
2329
+ min-width: 0;
2330
+ height: 24px;
2331
+ border: 1px solid #cbdcf8;
2332
+ border-radius: 999px;
2333
+ background: #f8fbff;
2334
+ color: #64748b;
2335
+ font-size: 10px;
2336
+ font-weight: 800;
2337
+ }
2338
+
2339
+ .anlyx-replay__rail li::before {
2340
+ position: absolute;
2341
+ z-index: 0;
2342
+ right: calc(50% + 12px);
2343
+ left: -10px;
2344
+ height: 2px;
2345
+ background: #dbeafe;
2346
+ content: "";
2347
+ }
2348
+
2349
+ .anlyx-replay__rail li span {
2350
+ position: relative;
2351
+ z-index: 1;
2352
+ }
2353
+
2354
+ .anlyx-replay__rail li:first-child::before {
2355
+ content: none;
2356
+ }
2357
+
2358
+ .anlyx-replay__rail-step--active {
2359
+ border-color: #2563eb !important;
2360
+ background: #2563eb !important;
2361
+ color: #ffffff !important;
2362
+ box-shadow:
2363
+ 0 0 0 4px rgb(37 99 235 / 12%),
2364
+ 0 10px 18px rgb(37 99 235 / 20%);
2365
+ }
2366
+
2367
+ .anlyx-process-timeline {
2368
+ display: grid;
2369
+ gap: 12px;
2370
+ padding: 14px 20px 18px;
2371
+ border-top: 1px solid var(--anlyx-color-border);
2372
+ background: rgb(255 255 255 / 92%);
2373
+ box-shadow: 0 -10px 28px rgb(15 23 42 / 4%);
2374
+ }
2375
+
2376
+ .anlyx-process-timeline__header {
2377
+ display: flex;
2378
+ justify-content: space-between;
2379
+ gap: 16px;
2380
+ color: var(--anlyx-color-text-secondary);
2381
+ font-size: 12px;
2382
+ font-weight: 700;
2383
+ text-transform: uppercase;
2384
+ }
2385
+
2386
+ .anlyx-process-timeline__rail {
2387
+ display: flex;
2388
+ gap: 10px;
2389
+ overflow-x: auto;
2390
+ padding: 0 0 4px;
2391
+ margin: 0;
2392
+ list-style: none;
2393
+ }
2394
+
2395
+ .anlyx-process-step {
2396
+ position: relative;
2397
+ display: grid;
2398
+ min-width: 152px;
2399
+ gap: 4px;
2400
+ padding: 11px 12px;
2401
+ border: 1px solid var(--anlyx-color-border);
2402
+ border-radius: var(--anlyx-radius);
2403
+ background: var(--anlyx-color-panel);
2404
+ color: var(--anlyx-color-text-secondary);
2405
+ }
2406
+
2407
+ .anlyx-process-step--request {
2408
+ border-top: 3px solid var(--anlyx-color-request);
2409
+ }
2410
+
2411
+ .anlyx-process-step--response {
2412
+ border-top: 3px solid var(--anlyx-color-response);
2413
+ }
2414
+
2415
+ .anlyx-process-step--complete-stop {
2416
+ border-top: 3px solid var(--anlyx-color-database);
2417
+ background: linear-gradient(180deg, #ffffff, #f3fffb);
2418
+ }
2419
+
2420
+ .anlyx-process-step--complete {
2421
+ opacity: 0.72;
2422
+ }
2423
+
2424
+ .anlyx-process-step--active {
2425
+ color: var(--anlyx-color-text-primary);
2426
+ border-color: #82aefc;
2427
+ box-shadow:
2428
+ 0 0 0 5px rgb(37 99 235 / 9%),
2429
+ 0 14px 30px rgb(37 99 235 / 14%);
2430
+ transform: translateY(-1px);
2431
+ }
2432
+
2433
+ .anlyx-process-step__dot {
2434
+ position: absolute;
2435
+ top: -8px;
2436
+ left: 12px;
2437
+ display: grid;
2438
+ width: 10px;
2439
+ height: 10px;
2440
+ place-items: center;
2441
+ border-radius: 999px;
2442
+ background: var(--anlyx-color-request);
2443
+ color: #ffffff;
2444
+ box-shadow: 0 0 0 4px rgb(37 99 235 / 14%);
2445
+ }
2446
+
2447
+ .anlyx-process-step--response .anlyx-process-step__dot {
2448
+ background: var(--anlyx-color-response);
2449
+ box-shadow: 0 0 0 4px rgb(139 92 246 / 14%);
2450
+ }
2451
+
2452
+ .anlyx-process-step--active .anlyx-process-step__dot {
2453
+ animation: anlyx-node-pulse 1s ease-in-out infinite;
2454
+ }
2455
+
2456
+ .anlyx-process-step__phase,
2457
+ .anlyx-process-step__label {
2458
+ font-size: 11px;
2459
+ font-weight: 800;
2460
+ text-transform: uppercase;
2461
+ }
2462
+
2463
+ .anlyx-process-step__node {
2464
+ overflow: hidden;
2465
+ color: var(--anlyx-color-text-primary);
2466
+ font-size: 12px;
2467
+ font-weight: 650;
2468
+ text-overflow: ellipsis;
2469
+ white-space: nowrap;
2470
+ }
2471
+
708
2472
  .anlyx-generated-at {
709
2473
  position: fixed;
710
- right: 16px;
2474
+ right: 20px;
711
2475
  bottom: 12px;
712
2476
  font-size: 12px;
713
2477
  pointer-events: none;
@@ -737,10 +2501,14 @@ body {
737
2501
  .anlyx-status-badge--get,
738
2502
  .anlyx-status-badge--success,
739
2503
  .anlyx-status-badge--high {
2504
+ border-color: #b7ead8;
2505
+ background: #eefdf7;
740
2506
  color: var(--anlyx-color-method-get);
741
2507
  }
742
2508
 
743
2509
  .anlyx-status-badge--post {
2510
+ border-color: #bfdbfe;
2511
+ background: #eff6ff;
744
2512
  color: var(--anlyx-color-method-post);
745
2513
  }
746
2514
 
@@ -748,32 +2516,51 @@ body {
748
2516
  .anlyx-status-badge--patch,
749
2517
  .anlyx-status-badge--pending,
750
2518
  .anlyx-status-badge--medium {
2519
+ border-color: #fed7aa;
2520
+ background: #fff7ed;
751
2521
  color: var(--anlyx-color-method-update);
752
2522
  }
753
2523
 
754
2524
  .anlyx-status-badge--delete,
755
2525
  .anlyx-status-badge--failed,
756
2526
  .anlyx-status-badge--low {
2527
+ border-color: #fecaca;
2528
+ background: #fff1f2;
757
2529
  color: var(--anlyx-color-method-delete);
758
2530
  }
759
2531
 
760
2532
  .anlyx-status-badge--unknown {
2533
+ border-color: #d9e1ee;
2534
+ background: #f8fafc;
761
2535
  color: var(--anlyx-color-confidence-unknown);
762
2536
  }
763
2537
 
764
2538
  @media (max-width: 960px) {
765
2539
  .anlyx-shell {
766
- grid-template-columns: 1fr;
767
- grid-template-rows: auto auto auto;
2540
+ grid-template-columns: 1fr !important;
2541
+ grid-template-rows: auto minmax(520px, 1fr) auto;
2542
+ overflow: auto;
768
2543
  }
769
2544
 
770
2545
  .anlyx-sidebar,
771
2546
  .anlyx-inspector {
2547
+ grid-column: auto;
772
2548
  grid-row: auto;
2549
+ overflow: visible;
773
2550
  border-right: 0;
774
2551
  border-left: 0;
775
2552
  }
776
2553
 
2554
+ .anlyx-resize-handle {
2555
+ display: none;
2556
+ }
2557
+
2558
+ .anlyx-sidebar__list-region,
2559
+ .anlyx-page-storyboard,
2560
+ .anlyx-inspector {
2561
+ overflow: visible;
2562
+ }
2563
+
777
2564
  .anlyx-generated-at {
778
2565
  position: static;
779
2566
  padding: 12px 20px;
@@ -783,4 +2570,57 @@ body {
783
2570
  .anlyx-storyboard-grid {
784
2571
  grid-template-columns: 1fr;
785
2572
  }
2573
+
2574
+ .anlyx-page-evidence-board {
2575
+ grid-template-columns: repeat(2, minmax(0, 1fr));
2576
+ }
2577
+
2578
+ .anlyx-replay__top {
2579
+ align-items: flex-start;
2580
+ flex-direction: column;
2581
+ }
2582
+
2583
+ .anlyx-replay__state {
2584
+ justify-content: flex-start;
2585
+ }
2586
+
2587
+ .anlyx-replay__focus {
2588
+ grid-template-columns: 1fr;
2589
+ }
2590
+
2591
+ .anlyx-replay__rail {
2592
+ grid-auto-flow: row;
2593
+ grid-template-columns: repeat(6, minmax(28px, 1fr));
2594
+ }
2595
+ }
2596
+
2597
+ @media (max-width: 760px) {
2598
+ .anlyx-page-evidence-board {
2599
+ grid-template-columns: 1fr;
2600
+ }
2601
+
2602
+ .anlyx-replay__rail {
2603
+ grid-template-columns: repeat(3, minmax(28px, 1fr));
2604
+ }
2605
+ }
2606
+
2607
+ @keyframes anlyx-flow-travel {
2608
+ from {
2609
+ stroke-dashoffset: 18;
2610
+ }
2611
+
2612
+ to {
2613
+ stroke-dashoffset: 0;
2614
+ }
2615
+ }
2616
+
2617
+ @keyframes anlyx-node-pulse {
2618
+ 0%,
2619
+ 100% {
2620
+ transform: scale(1);
2621
+ }
2622
+
2623
+ 50% {
2624
+ transform: scale(1.015);
2625
+ }
786
2626
  }