@anlyx/ui 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +5 -0
  3. package/dist/components/AnlyxAppShell.d.ts +6 -0
  4. package/dist/components/AnlyxAppShell.d.ts.map +1 -0
  5. package/dist/components/AnlyxAppShell.js +61 -0
  6. package/dist/components/AnlyxAppShell.js.map +1 -0
  7. package/dist/components/ApiCallList.d.ts +6 -0
  8. package/dist/components/ApiCallList.d.ts.map +1 -0
  9. package/dist/components/ApiCallList.js +18 -0
  10. package/dist/components/ApiCallList.js.map +1 -0
  11. package/dist/components/CanvasPlaceholder.d.ts +7 -0
  12. package/dist/components/CanvasPlaceholder.d.ts.map +1 -0
  13. package/dist/components/CanvasPlaceholder.js +6 -0
  14. package/dist/components/CanvasPlaceholder.js.map +1 -0
  15. package/dist/components/CaptureStatusEmptyState.d.ts +7 -0
  16. package/dist/components/CaptureStatusEmptyState.d.ts.map +1 -0
  17. package/dist/components/CaptureStatusEmptyState.js +10 -0
  18. package/dist/components/CaptureStatusEmptyState.js.map +1 -0
  19. package/dist/components/EndpointList.d.ts +9 -0
  20. package/dist/components/EndpointList.d.ts.map +1 -0
  21. package/dist/components/EndpointList.js +12 -0
  22. package/dist/components/EndpointList.js.map +1 -0
  23. package/dist/components/EndpointMapCanvas.d.ts +11 -0
  24. package/dist/components/EndpointMapCanvas.d.ts.map +1 -0
  25. package/dist/components/EndpointMapCanvas.js +47 -0
  26. package/dist/components/EndpointMapCanvas.js.map +1 -0
  27. package/dist/components/FlowLegend.d.ts +2 -0
  28. package/dist/components/FlowLegend.d.ts.map +1 -0
  29. package/dist/components/FlowLegend.js +5 -0
  30. package/dist/components/FlowLegend.js.map +1 -0
  31. package/dist/components/FlowNodeCard.d.ts +4 -0
  32. package/dist/components/FlowNodeCard.d.ts.map +1 -0
  33. package/dist/components/FlowNodeCard.js +13 -0
  34. package/dist/components/FlowNodeCard.js.map +1 -0
  35. package/dist/components/InspectorPanel.d.ts +9 -0
  36. package/dist/components/InspectorPanel.d.ts.map +1 -0
  37. package/dist/components/InspectorPanel.js +19 -0
  38. package/dist/components/InspectorPanel.js.map +1 -0
  39. package/dist/components/PageList.d.ts +9 -0
  40. package/dist/components/PageList.d.ts.map +1 -0
  41. package/dist/components/PageList.js +6 -0
  42. package/dist/components/PageList.js.map +1 -0
  43. package/dist/components/PageStoryboardCard.d.ts +6 -0
  44. package/dist/components/PageStoryboardCard.d.ts.map +1 -0
  45. package/dist/components/PageStoryboardCard.js +6 -0
  46. package/dist/components/PageStoryboardCard.js.map +1 -0
  47. package/dist/components/PageStoryboardView.d.ts +6 -0
  48. package/dist/components/PageStoryboardView.d.ts.map +1 -0
  49. package/dist/components/PageStoryboardView.js +9 -0
  50. package/dist/components/PageStoryboardView.js.map +1 -0
  51. package/dist/components/ReplayControls.d.ts +13 -0
  52. package/dist/components/ReplayControls.d.ts.map +1 -0
  53. package/dist/components/ReplayControls.js +5 -0
  54. package/dist/components/ReplayControls.js.map +1 -0
  55. package/dist/components/ScreenshotSegmentCard.d.ts +6 -0
  56. package/dist/components/ScreenshotSegmentCard.d.ts.map +1 -0
  57. package/dist/components/ScreenshotSegmentCard.js +6 -0
  58. package/dist/components/ScreenshotSegmentCard.js.map +1 -0
  59. package/dist/components/Sidebar.d.ts +13 -0
  60. package/dist/components/Sidebar.d.ts.map +1 -0
  61. package/dist/components/Sidebar.js +7 -0
  62. package/dist/components/Sidebar.js.map +1 -0
  63. package/dist/components/StatusBadge.d.ts +9 -0
  64. package/dist/components/StatusBadge.d.ts.map +1 -0
  65. package/dist/components/StatusBadge.js +5 -0
  66. package/dist/components/StatusBadge.js.map +1 -0
  67. package/dist/flow/build-react-flow-model.d.ts +27 -0
  68. package/dist/flow/build-react-flow-model.d.ts.map +1 -0
  69. package/dist/flow/build-react-flow-model.js +79 -0
  70. package/dist/flow/build-react-flow-model.js.map +1 -0
  71. package/dist/index.d.ts +29 -0
  72. package/dist/index.d.ts.map +1 -0
  73. package/dist/index.js +22 -0
  74. package/dist/index.js.map +1 -0
  75. package/dist/mock-data.d.ts +3 -0
  76. package/dist/mock-data.d.ts.map +1 -0
  77. package/dist/mock-data.js +222 -0
  78. package/dist/mock-data.js.map +1 -0
  79. package/dist/replay/build-replay-steps.d.ts +10 -0
  80. package/dist/replay/build-replay-steps.d.ts.map +1 -0
  81. package/dist/replay/build-replay-steps.js +26 -0
  82. package/dist/replay/build-replay-steps.js.map +1 -0
  83. package/dist/replay/use-replay-lite.d.ts +26 -0
  84. package/dist/replay/use-replay-lite.d.ts.map +1 -0
  85. package/dist/replay/use-replay-lite.js +97 -0
  86. package/dist/replay/use-replay-lite.js.map +1 -0
  87. package/dist/styles.css +786 -0
  88. package/dist/viewer/ViewerApp.d.ts +2 -0
  89. package/dist/viewer/ViewerApp.d.ts.map +1 -0
  90. package/dist/viewer/ViewerApp.js +39 -0
  91. package/dist/viewer/ViewerApp.js.map +1 -0
  92. package/dist/viewer/viewer-entry.d.ts +2 -0
  93. package/dist/viewer/viewer-entry.d.ts.map +1 -0
  94. package/dist/viewer/viewer-entry.js +10 -0
  95. package/dist/viewer/viewer-entry.js.map +1 -0
  96. package/dist/viewer/viewer.html +12 -0
  97. package/package.json +49 -0
@@ -0,0 +1,786 @@
1
+ :root {
2
+ --anlyx-color-background: #f7f8fb;
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;
9
+ --anlyx-color-method-get: #10b981;
10
+ --anlyx-color-method-post: #3b82f6;
11
+ --anlyx-color-method-update: #f59e0b;
12
+ --anlyx-color-method-delete: #ef4444;
13
+ --anlyx-color-confidence-high: #16a34a;
14
+ --anlyx-color-confidence-medium: #d97706;
15
+ --anlyx-color-confidence-low: #ea580c;
16
+ --anlyx-color-confidence-unknown: #6b7280;
17
+ --anlyx-radius: 8px;
18
+ --anlyx-shadow-panel: 0 1px 2px rgb(17 24 39 / 6%);
19
+ color: var(--anlyx-color-text-primary);
20
+ background: var(--anlyx-color-background);
21
+ font-family:
22
+ Inter,
23
+ ui-sans-serif,
24
+ system-ui,
25
+ -apple-system,
26
+ BlinkMacSystemFont,
27
+ "Segoe UI",
28
+ sans-serif;
29
+ }
30
+
31
+ body {
32
+ margin: 0;
33
+ background: var(--anlyx-color-background);
34
+ }
35
+
36
+ #root {
37
+ min-height: 100vh;
38
+ }
39
+
40
+ .anlyx-viewer-state {
41
+ display: grid;
42
+ min-height: 100vh;
43
+ place-items: center;
44
+ padding: 24px;
45
+ color: var(--anlyx-color-text-secondary);
46
+ background: var(--anlyx-color-background);
47
+ font-size: 14px;
48
+ }
49
+
50
+ .anlyx-shell {
51
+ 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);
57
+ }
58
+
59
+ .anlyx-shell *,
60
+ .anlyx-shell *::before,
61
+ .anlyx-shell *::after {
62
+ box-sizing: border-box;
63
+ }
64
+
65
+ .anlyx-sr-only {
66
+ position: absolute;
67
+ width: 1px;
68
+ height: 1px;
69
+ padding: 0;
70
+ margin: -1px;
71
+ overflow: hidden;
72
+ clip: rect(0, 0, 0, 0);
73
+ white-space: nowrap;
74
+ border: 0;
75
+ }
76
+
77
+ .anlyx-sidebar,
78
+ .anlyx-inspector,
79
+ .anlyx-workspace,
80
+ .anlyx-replay {
81
+ background: var(--anlyx-color-panel);
82
+ border-color: var(--anlyx-color-border);
83
+ }
84
+
85
+ .anlyx-sidebar {
86
+ grid-row: 1 / span 2;
87
+ display: flex;
88
+ min-width: 0;
89
+ flex-direction: column;
90
+ gap: 20px;
91
+ padding: 20px;
92
+ border-right: 1px solid var(--anlyx-color-border);
93
+ }
94
+
95
+ .anlyx-brand {
96
+ display: flex;
97
+ align-items: center;
98
+ gap: 12px;
99
+ }
100
+
101
+ .anlyx-brand__mark {
102
+ display: grid;
103
+ width: 36px;
104
+ height: 36px;
105
+ place-items: center;
106
+ border: 1px solid var(--anlyx-color-border);
107
+ border-radius: var(--anlyx-radius);
108
+ background: var(--anlyx-color-canvas);
109
+ font-weight: 700;
110
+ }
111
+
112
+ .anlyx-brand__name,
113
+ .anlyx-list-item__primary,
114
+ .anlyx-field__value {
115
+ color: var(--anlyx-color-text-primary);
116
+ font-weight: 650;
117
+ }
118
+
119
+ .anlyx-brand__project,
120
+ .anlyx-list-item__meta,
121
+ .anlyx-field__label,
122
+ .anlyx-eyebrow,
123
+ .anlyx-generated-at {
124
+ color: var(--anlyx-color-text-secondary);
125
+ }
126
+
127
+ .anlyx-tabs {
128
+ display: grid;
129
+ grid-template-columns: repeat(3, minmax(0, 1fr));
130
+ gap: 4px;
131
+ padding: 4px;
132
+ border: 1px solid var(--anlyx-color-border);
133
+ border-radius: var(--anlyx-radius);
134
+ background: var(--anlyx-color-background);
135
+ }
136
+
137
+ .anlyx-tab,
138
+ .anlyx-replay button {
139
+ min-height: 32px;
140
+ border: 1px solid transparent;
141
+ border-radius: 6px;
142
+ background: transparent;
143
+ color: var(--anlyx-color-text-secondary);
144
+ font: inherit;
145
+ }
146
+
147
+ .anlyx-tab--active,
148
+ .anlyx-replay button {
149
+ border-color: var(--anlyx-color-border);
150
+ background: var(--anlyx-color-panel);
151
+ color: var(--anlyx-color-text-primary);
152
+ box-shadow: var(--anlyx-shadow-panel);
153
+ }
154
+
155
+ .anlyx-search {
156
+ display: grid;
157
+ gap: 6px;
158
+ }
159
+
160
+ .anlyx-search__label,
161
+ .anlyx-section-heading,
162
+ .anlyx-eyebrow {
163
+ font-size: 12px;
164
+ font-weight: 700;
165
+ text-transform: uppercase;
166
+ }
167
+
168
+ .anlyx-search input {
169
+ width: 100%;
170
+ min-height: 36px;
171
+ padding: 0 10px;
172
+ border: 1px solid var(--anlyx-color-border);
173
+ border-radius: 6px;
174
+ color: var(--anlyx-color-text-primary);
175
+ }
176
+
177
+ .anlyx-sidebar-section {
178
+ display: grid;
179
+ gap: 8px;
180
+ }
181
+
182
+ .anlyx-list {
183
+ display: grid;
184
+ gap: 8px;
185
+ padding: 0;
186
+ margin: 0;
187
+ list-style: none;
188
+ }
189
+
190
+ .anlyx-list-item {
191
+ display: grid;
192
+ gap: 6px;
193
+ padding: 10px;
194
+ border: 1px solid var(--anlyx-color-border);
195
+ border-radius: var(--anlyx-radius);
196
+ background: var(--anlyx-color-panel);
197
+ }
198
+
199
+ .anlyx-endpoint-button,
200
+ .anlyx-page-button {
201
+ display: grid;
202
+ width: 100%;
203
+ gap: 6px;
204
+ padding: 0;
205
+ border: 0;
206
+ background: transparent;
207
+ color: inherit;
208
+ font: inherit;
209
+ text-align: left;
210
+ cursor: pointer;
211
+ }
212
+
213
+ .anlyx-endpoint-button[aria-current="true"] .anlyx-list-item__primary,
214
+ .anlyx-page-button[aria-current="true"] .anlyx-list-item__primary {
215
+ color: #1d4ed8;
216
+ }
217
+
218
+ .anlyx-list-item__line,
219
+ .anlyx-list-item__meta,
220
+ .anlyx-replay__state {
221
+ display: flex;
222
+ align-items: center;
223
+ gap: 8px;
224
+ min-width: 0;
225
+ }
226
+
227
+ .anlyx-list-item__primary,
228
+ .anlyx-list-item__meta span {
229
+ overflow-wrap: anywhere;
230
+ }
231
+
232
+ .anlyx-main {
233
+ display: grid;
234
+ grid-template-rows: minmax(0, 1fr) auto;
235
+ min-width: 0;
236
+ min-height: 0;
237
+ }
238
+
239
+ .anlyx-workspace {
240
+ display: grid;
241
+ min-width: 0;
242
+ min-height: 0;
243
+ grid-template-rows: auto minmax(0, 1fr);
244
+ }
245
+
246
+ .anlyx-workspace-header,
247
+ .anlyx-panel-heading {
248
+ display: flex;
249
+ align-items: flex-start;
250
+ justify-content: space-between;
251
+ gap: 16px;
252
+ padding: 20px;
253
+ border-bottom: 1px solid var(--anlyx-color-border);
254
+ }
255
+
256
+ .anlyx-workspace-header h1,
257
+ .anlyx-panel-heading h2,
258
+ .anlyx-canvas-placeholder h2 {
259
+ margin: 0;
260
+ font-size: 20px;
261
+ line-height: 1.2;
262
+ }
263
+
264
+ .anlyx-eyebrow {
265
+ margin: 0 0 6px;
266
+ }
267
+
268
+ .anlyx-canvas-placeholder {
269
+ 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);
275
+ 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);
288
+ }
289
+
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;
302
+ }
303
+
304
+ .anlyx-react-flow {
305
+ min-height: 520px;
306
+ }
307
+
308
+ .anlyx-flow-legend {
309
+ position: absolute;
310
+ z-index: 4;
311
+ top: 12px;
312
+ left: 12px;
313
+ display: flex;
314
+ 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);
323
+ }
324
+
325
+ .anlyx-flow-legend span {
326
+ display: inline-flex;
327
+ align-items: center;
328
+ gap: 6px;
329
+ }
330
+
331
+ .anlyx-flow-legend__mark {
332
+ width: 18px;
333
+ height: 2px;
334
+ background: #2563eb;
335
+ }
336
+
337
+ .anlyx-flow-legend__mark--sub {
338
+ background: #7c3aed;
339
+ }
340
+
341
+ .anlyx-flow-legend__mark--unknown {
342
+ background: var(--anlyx-color-confidence-unknown);
343
+ }
344
+
345
+ .anlyx-flow-node {
346
+ display: grid;
347
+ width: 180px;
348
+ min-height: 84px;
349
+ gap: 7px;
350
+ padding: 10px;
351
+ border: 1px solid #cbd5e1;
352
+ border-left: 4px solid #2563eb;
353
+ border-radius: var(--anlyx-radius);
354
+ background: rgb(255 255 255 / 96%);
355
+ color: var(--anlyx-color-text-primary);
356
+ font: inherit;
357
+ text-align: left;
358
+ box-shadow: var(--anlyx-shadow-panel);
359
+ cursor: pointer;
360
+ }
361
+
362
+ .anlyx-flow-node--sub {
363
+ border-left-color: #7c3aed;
364
+ background: #fbfaff;
365
+ }
366
+
367
+ .anlyx-flow-node--secondary {
368
+ border-left-color: var(--anlyx-color-text-secondary);
369
+ }
370
+
371
+ .anlyx-flow-node--database {
372
+ border-left-color: #0f766e;
373
+ }
374
+
375
+ .anlyx-flow-node--selected {
376
+ outline: 2px solid #2563eb;
377
+ outline-offset: 2px;
378
+ }
379
+
380
+ .anlyx-flow-node--replay-active {
381
+ border-color: #0891b2;
382
+ outline: 2px solid #06b6d4;
383
+ outline-offset: 3px;
384
+ box-shadow:
385
+ 0 0 0 4px rgb(6 182 212 / 14%),
386
+ var(--anlyx-shadow-panel);
387
+ }
388
+
389
+ .anlyx-flow-node__type {
390
+ color: var(--anlyx-color-text-secondary);
391
+ font-size: 11px;
392
+ font-weight: 700;
393
+ text-transform: uppercase;
394
+ }
395
+
396
+ .anlyx-flow-node__label {
397
+ overflow-wrap: anywhere;
398
+ font-size: 13px;
399
+ font-weight: 650;
400
+ line-height: 1.25;
401
+ }
402
+
403
+ .anlyx-flow-edge--sub .react-flow__edge-path {
404
+ stroke-dasharray: 5 4;
405
+ }
406
+
407
+ .anlyx-flow-edge--replay-active .react-flow__edge-path {
408
+ stroke: #0891b2;
409
+ stroke-width: 3px;
410
+ }
411
+
412
+ .anlyx-endpoint-map-empty {
413
+ display: grid;
414
+ min-height: 520px;
415
+ place-items: center;
416
+ padding: 24px;
417
+ color: var(--anlyx-color-text-secondary);
418
+ }
419
+
420
+ .anlyx-page-storyboard {
421
+ display: grid;
422
+ gap: 16px;
423
+ min-width: 0;
424
+ margin: 20px;
425
+ }
426
+
427
+ .anlyx-page-summary,
428
+ .anlyx-storyboard-panel,
429
+ .anlyx-capture-state,
430
+ .anlyx-storyboard-empty {
431
+ border: 1px solid var(--anlyx-color-border);
432
+ border-radius: var(--anlyx-radius);
433
+ background: var(--anlyx-color-panel);
434
+ box-shadow: var(--anlyx-shadow-panel);
435
+ }
436
+
437
+ .anlyx-page-summary {
438
+ display: grid;
439
+ grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.6fr) auto;
440
+ gap: 16px;
441
+ padding: 16px;
442
+ }
443
+
444
+ .anlyx-page-summary h2,
445
+ .anlyx-page-summary p {
446
+ margin: 4px 0 0;
447
+ overflow-wrap: anywhere;
448
+ }
449
+
450
+ .anlyx-page-summary h2 {
451
+ font-size: 18px;
452
+ line-height: 1.25;
453
+ }
454
+
455
+ .anlyx-storyboard-grid {
456
+ display: grid;
457
+ grid-template-columns: minmax(0, 1.5fr) minmax(280px, 0.8fr);
458
+ gap: 16px;
459
+ min-width: 0;
460
+ }
461
+
462
+ .anlyx-storyboard-panel {
463
+ display: grid;
464
+ min-width: 0;
465
+ gap: 12px;
466
+ padding: 16px;
467
+ }
468
+
469
+ .anlyx-storyboard-section-heading {
470
+ display: flex;
471
+ align-items: center;
472
+ justify-content: space-between;
473
+ gap: 12px;
474
+ }
475
+
476
+ .anlyx-storyboard-section-heading h2,
477
+ .anlyx-capture-state h2 {
478
+ margin: 0;
479
+ font-size: 16px;
480
+ line-height: 1.25;
481
+ }
482
+
483
+ .anlyx-storyboard-section-heading span {
484
+ color: var(--anlyx-color-text-secondary);
485
+ font-size: 12px;
486
+ font-weight: 700;
487
+ }
488
+
489
+ .anlyx-segment-grid {
490
+ display: grid;
491
+ grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
492
+ gap: 12px;
493
+ }
494
+
495
+ .anlyx-segment-card {
496
+ display: grid;
497
+ overflow: hidden;
498
+ border: 1px solid var(--anlyx-color-border);
499
+ border-left: 4px solid #3b82f6;
500
+ border-radius: var(--anlyx-radius);
501
+ background: var(--anlyx-color-panel);
502
+ }
503
+
504
+ .anlyx-segment-card__image {
505
+ display: grid;
506
+ min-height: 120px;
507
+ place-items: center;
508
+ overflow: hidden;
509
+ border-bottom: 1px solid var(--anlyx-color-border);
510
+ background: var(--anlyx-color-background);
511
+ color: var(--anlyx-color-text-secondary);
512
+ }
513
+
514
+ .anlyx-segment-card__image img {
515
+ width: 100%;
516
+ min-height: 120px;
517
+ object-fit: cover;
518
+ }
519
+
520
+ .anlyx-segment-card__body {
521
+ display: grid;
522
+ gap: 8px;
523
+ padding: 12px;
524
+ }
525
+
526
+ .anlyx-segment-card__body h3,
527
+ .anlyx-segment-card__body p {
528
+ margin: 0;
529
+ }
530
+
531
+ .anlyx-segment-card__body code,
532
+ .anlyx-api-call__endpoint {
533
+ overflow-wrap: anywhere;
534
+ color: var(--anlyx-color-text-secondary);
535
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
536
+ font-size: 12px;
537
+ }
538
+
539
+ .anlyx-segment-card__meta,
540
+ .anlyx-api-call__meta {
541
+ display: flex;
542
+ flex-wrap: wrap;
543
+ gap: 8px;
544
+ }
545
+
546
+ .anlyx-segment-card__meta span {
547
+ color: var(--anlyx-color-text-secondary);
548
+ font-size: 12px;
549
+ font-weight: 650;
550
+ }
551
+
552
+ .anlyx-api-call-list {
553
+ display: grid;
554
+ gap: 10px;
555
+ padding: 0;
556
+ margin: 0;
557
+ list-style: none;
558
+ }
559
+
560
+ .anlyx-api-call {
561
+ display: grid;
562
+ gap: 8px;
563
+ padding: 10px;
564
+ border: 1px solid var(--anlyx-color-border);
565
+ border-radius: var(--anlyx-radius);
566
+ }
567
+
568
+ .anlyx-api-call__line {
569
+ display: flex;
570
+ align-items: center;
571
+ gap: 8px;
572
+ min-width: 0;
573
+ }
574
+
575
+ .anlyx-api-call__path {
576
+ overflow-wrap: anywhere;
577
+ font-weight: 650;
578
+ }
579
+
580
+ .anlyx-capture-state {
581
+ display: grid;
582
+ gap: 6px;
583
+ padding: 14px 16px;
584
+ border-left: 4px solid var(--anlyx-color-method-update);
585
+ }
586
+
587
+ .anlyx-capture-state--failed {
588
+ border-left-color: var(--anlyx-color-method-delete);
589
+ }
590
+
591
+ .anlyx-capture-state p {
592
+ margin: 0;
593
+ color: var(--anlyx-color-text-secondary);
594
+ }
595
+
596
+ .anlyx-storyboard-empty {
597
+ display: grid;
598
+ min-height: 360px;
599
+ place-items: center;
600
+ color: var(--anlyx-color-text-secondary);
601
+ }
602
+
603
+ .anlyx-empty-inline {
604
+ margin: 0;
605
+ color: var(--anlyx-color-text-secondary);
606
+ }
607
+
608
+ .anlyx-inspector {
609
+ grid-row: 1 / span 2;
610
+ min-width: 0;
611
+ border-left: 1px solid var(--anlyx-color-border);
612
+ }
613
+
614
+ .anlyx-inspector-stack {
615
+ display: grid;
616
+ gap: 14px;
617
+ padding: 20px;
618
+ }
619
+
620
+ .anlyx-field,
621
+ .anlyx-inspector-group {
622
+ display: grid;
623
+ gap: 6px;
624
+ }
625
+
626
+ .anlyx-inspector-group {
627
+ padding-top: 12px;
628
+ border-top: 1px solid var(--anlyx-color-border);
629
+ }
630
+
631
+ .anlyx-inspector-group h3,
632
+ .anlyx-inspector-group p,
633
+ .anlyx-inspector-group ul {
634
+ margin: 0;
635
+ }
636
+
637
+ .anlyx-inspector-group ul {
638
+ padding-left: 18px;
639
+ }
640
+
641
+ .anlyx-metadata {
642
+ overflow: auto;
643
+ max-width: 100%;
644
+ margin: 0;
645
+ padding: 10px;
646
+ border: 1px solid var(--anlyx-color-border);
647
+ border-radius: 6px;
648
+ background: var(--anlyx-color-background);
649
+ color: var(--anlyx-color-text-secondary);
650
+ font-size: 12px;
651
+ }
652
+
653
+ .anlyx-empty {
654
+ padding: 20px;
655
+ color: var(--anlyx-color-text-secondary);
656
+ }
657
+
658
+ .anlyx-replay {
659
+ display: flex;
660
+ align-items: center;
661
+ justify-content: space-between;
662
+ gap: 16px;
663
+ padding: 12px 20px;
664
+ border-top: 1px solid var(--anlyx-color-border);
665
+ }
666
+
667
+ .anlyx-replay__buttons {
668
+ display: flex;
669
+ flex-wrap: wrap;
670
+ gap: 8px;
671
+ }
672
+
673
+ .anlyx-replay button {
674
+ padding: 0 12px;
675
+ }
676
+
677
+ .anlyx-replay button[aria-pressed="true"] {
678
+ border-color: #0891b2;
679
+ color: #0e7490;
680
+ }
681
+
682
+ .anlyx-replay button:disabled {
683
+ cursor: not-allowed;
684
+ opacity: 0.48;
685
+ }
686
+
687
+ .anlyx-replay__state {
688
+ flex-wrap: wrap;
689
+ justify-content: flex-end;
690
+ color: var(--anlyx-color-text-secondary);
691
+ font-size: 12px;
692
+ }
693
+
694
+ .anlyx-replay__state span {
695
+ padding: 4px 8px;
696
+ border: 1px solid var(--anlyx-color-border);
697
+ border-radius: 999px;
698
+ background: var(--anlyx-color-background);
699
+ }
700
+
701
+ .anlyx-replay__empty {
702
+ max-width: 300px;
703
+ margin: 0;
704
+ color: var(--anlyx-color-text-secondary);
705
+ font-size: 12px;
706
+ }
707
+
708
+ .anlyx-generated-at {
709
+ position: fixed;
710
+ right: 16px;
711
+ bottom: 12px;
712
+ font-size: 12px;
713
+ pointer-events: none;
714
+ }
715
+
716
+ .anlyx-status-badge {
717
+ display: inline-flex;
718
+ align-items: center;
719
+ width: fit-content;
720
+ min-height: 22px;
721
+ gap: 4px;
722
+ padding: 2px 7px;
723
+ border: 1px solid var(--anlyx-color-border);
724
+ border-radius: 999px;
725
+ background: var(--anlyx-color-panel);
726
+ color: var(--anlyx-color-text-secondary);
727
+ font-size: 12px;
728
+ font-weight: 700;
729
+ line-height: 1;
730
+ }
731
+
732
+ .anlyx-status-badge__label {
733
+ color: var(--anlyx-color-text-secondary);
734
+ font-weight: 600;
735
+ }
736
+
737
+ .anlyx-status-badge--get,
738
+ .anlyx-status-badge--success,
739
+ .anlyx-status-badge--high {
740
+ color: var(--anlyx-color-method-get);
741
+ }
742
+
743
+ .anlyx-status-badge--post {
744
+ color: var(--anlyx-color-method-post);
745
+ }
746
+
747
+ .anlyx-status-badge--put,
748
+ .anlyx-status-badge--patch,
749
+ .anlyx-status-badge--pending,
750
+ .anlyx-status-badge--medium {
751
+ color: var(--anlyx-color-method-update);
752
+ }
753
+
754
+ .anlyx-status-badge--delete,
755
+ .anlyx-status-badge--failed,
756
+ .anlyx-status-badge--low {
757
+ color: var(--anlyx-color-method-delete);
758
+ }
759
+
760
+ .anlyx-status-badge--unknown {
761
+ color: var(--anlyx-color-confidence-unknown);
762
+ }
763
+
764
+ @media (max-width: 960px) {
765
+ .anlyx-shell {
766
+ grid-template-columns: 1fr;
767
+ grid-template-rows: auto auto auto;
768
+ }
769
+
770
+ .anlyx-sidebar,
771
+ .anlyx-inspector {
772
+ grid-row: auto;
773
+ border-right: 0;
774
+ border-left: 0;
775
+ }
776
+
777
+ .anlyx-generated-at {
778
+ position: static;
779
+ padding: 12px 20px;
780
+ }
781
+
782
+ .anlyx-page-summary,
783
+ .anlyx-storyboard-grid {
784
+ grid-template-columns: 1fr;
785
+ }
786
+ }