@screenbook/ui 0.0.1

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 (101) hide show
  1. package/.astro/content-assets.mjs +1 -0
  2. package/.astro/content-modules.mjs +1 -0
  3. package/.astro/content.d.ts +199 -0
  4. package/.astro/data-store.json +1 -0
  5. package/.astro/settings.json +5 -0
  6. package/.astro/types.d.ts +2 -0
  7. package/.prettierrc +15 -0
  8. package/.screenbook/coverage.json +37 -0
  9. package/.screenbook/screens.json +90 -0
  10. package/LICENSE +21 -0
  11. package/astro.config.mjs +18 -0
  12. package/dist/client/_astro/_baseUniq.BGai4mcc.js +1 -0
  13. package/dist/client/_astro/arc.DUp0dfXj.js +1 -0
  14. package/dist/client/_astro/architectureDiagram-VXUJARFQ.De_Gt-YC.js +36 -0
  15. package/dist/client/_astro/blockDiagram-VD42YOAC.BBt_VNhR.js +122 -0
  16. package/dist/client/_astro/c4Diagram-YG6GDRKO.DfgUlHvt.js +10 -0
  17. package/dist/client/_astro/channel.CNyr52v1.js +1 -0
  18. package/dist/client/_astro/chunk-4BX2VUAB.BL0ar6du.js +1 -0
  19. package/dist/client/_astro/chunk-55IACEB6.CI6SkZkY.js +1 -0
  20. package/dist/client/_astro/chunk-B4BG7PRW.Z25N80K6.js +165 -0
  21. package/dist/client/_astro/chunk-DI55MBZ5.BqjPVmi1.js +220 -0
  22. package/dist/client/_astro/chunk-FMBD7UC4.bZ9DWnFm.js +15 -0
  23. package/dist/client/_astro/chunk-QN33PNHL.BkzuUgWB.js +1 -0
  24. package/dist/client/_astro/chunk-QZHKN3VN.C__d68N_.js +1 -0
  25. package/dist/client/_astro/chunk-TZMSLE5B.BIpu8bMn.js +1 -0
  26. package/dist/client/_astro/classDiagram-2ON5EDUG.CxT3aW-h.js +1 -0
  27. package/dist/client/_astro/classDiagram-v2-WZHVMYZB.CxT3aW-h.js +1 -0
  28. package/dist/client/_astro/clone.U_lSZ6fe.js +1 -0
  29. package/dist/client/_astro/cose-bilkent-S5V4N54A.D48yfMll.js +1 -0
  30. package/dist/client/_astro/coverage.CKIVg4LY.css +1 -0
  31. package/dist/client/_astro/coverage.DDJMzKCq.css +1 -0
  32. package/dist/client/_astro/cytoscape.esm.DtBltrT8.js +331 -0
  33. package/dist/client/_astro/dagre-6UL2VRFP.LKVH7b30.js +4 -0
  34. package/dist/client/_astro/defaultLocale.C4B-KCzX.js +1 -0
  35. package/dist/client/_astro/diagram-PSM6KHXK.AHgUjH56.js +24 -0
  36. package/dist/client/_astro/diagram-QEK2KX5R.DvS33xWZ.js +43 -0
  37. package/dist/client/_astro/diagram-S2PKOQOG.BWisaYrQ.js +24 -0
  38. package/dist/client/_astro/erDiagram-Q2GNP2WA.B7oID6oT.js +60 -0
  39. package/dist/client/_astro/flowDiagram-NV44I4VS.Bb1qJLxr.js +162 -0
  40. package/dist/client/_astro/ganttDiagram-JELNMOA3.3vGHETyo.js +267 -0
  41. package/dist/client/_astro/gitGraphDiagram-NY62KEGX.Co2SKcif.js +65 -0
  42. package/dist/client/_astro/graph.B5fevUwB.js +1 -0
  43. package/dist/client/_astro/graph.astro_astro_type_script_index_0_lang.1HlATQ1g.js +1 -0
  44. package/dist/client/_astro/impact.Cvhl64u1.css +1 -0
  45. package/dist/client/_astro/impact.astro_astro_type_script_index_0_lang.D4cAR9AL.js +6 -0
  46. package/dist/client/_astro/infoDiagram-WHAUD3N6.B6ULtps1.js +2 -0
  47. package/dist/client/_astro/init.Gi6I4Gst.js +1 -0
  48. package/dist/client/_astro/journeyDiagram-XKPGCS4Q.BSOCzWmw.js +139 -0
  49. package/dist/client/_astro/kanban-definition-3W4ZIXB7.D8KKGc1o.js +89 -0
  50. package/dist/client/_astro/katex.XbL3y5x-.js +261 -0
  51. package/dist/client/_astro/layout.8vv24qEg.js +1 -0
  52. package/dist/client/_astro/linear.B6O9ymuK.js +1 -0
  53. package/dist/client/_astro/mermaid.core.CReXU7YN.js +256 -0
  54. package/dist/client/_astro/min.CdGMGVU0.js +1 -0
  55. package/dist/client/_astro/mindmap-definition-VGOIOE7T.G14HgtDw.js +68 -0
  56. package/dist/client/_astro/ordinal.BYWQX77i.js +1 -0
  57. package/dist/client/_astro/pieDiagram-ADFJNKIX.bC2VkyoW.js +30 -0
  58. package/dist/client/_astro/quadrantDiagram-AYHSOK5B.BlLaQQxO.js +7 -0
  59. package/dist/client/_astro/requirementDiagram-UZGBJVZJ.DHRnMofO.js +64 -0
  60. package/dist/client/_astro/sankeyDiagram-TZEHDZUN.BMuaJBmt.js +10 -0
  61. package/dist/client/_astro/sequenceDiagram-WL72ISMW.CnU62wqy.js +145 -0
  62. package/dist/client/_astro/stateDiagram-FKZM4ZOC.CewI55YO.js +1 -0
  63. package/dist/client/_astro/stateDiagram-v2-4FDKWEC3.7xUQqoNr.js +1 -0
  64. package/dist/client/_astro/timeline-definition-IT6M3QCI.D1PLRwss.js +61 -0
  65. package/dist/client/_astro/treemap-KMMF4GRG.D3VNVvXF.js +128 -0
  66. package/dist/client/_astro/xychartDiagram-PRI3JC2R.CQex0-ul.js +7 -0
  67. package/dist/client/logo.svg +5 -0
  68. package/dist/server/_@astrojs-ssr-adapter.mjs +1 -0
  69. package/dist/server/_noop-middleware.mjs +3 -0
  70. package/dist/server/chunks/_@astrojs-ssr-adapter_DgsYudHz.mjs +4385 -0
  71. package/dist/server/chunks/astro/server_m7yT4wCr.mjs +2787 -0
  72. package/dist/server/chunks/astro-designed-error-pages_BvPhMmw0.mjs +364 -0
  73. package/dist/server/chunks/fs-lite_COtHaKzy.mjs +157 -0
  74. package/dist/server/chunks/impactAnalysis_Bz5lMdmy.mjs +188 -0
  75. package/dist/server/chunks/loadScreens_DJf-tycc.mjs +39 -0
  76. package/dist/server/chunks/node_DoTkMCOi.mjs +1673 -0
  77. package/dist/server/chunks/remote_B3W5fv4r.mjs +188 -0
  78. package/dist/server/chunks/sharp_DHNfMLYY.mjs +99 -0
  79. package/dist/server/entry.mjs +47 -0
  80. package/dist/server/manifest_-V1HEnR8.mjs +101 -0
  81. package/dist/server/noop-entrypoint.mjs +3 -0
  82. package/dist/server/pages/_image.astro.mjs +2 -0
  83. package/dist/server/pages/coverage.astro.mjs +65 -0
  84. package/dist/server/pages/graph.astro.mjs +107 -0
  85. package/dist/server/pages/impact.astro.mjs +52 -0
  86. package/dist/server/pages/index.astro.mjs +28 -0
  87. package/dist/server/pages/screen/_id_.astro.mjs +52 -0
  88. package/dist/server/renderers.mjs +3 -0
  89. package/package.json +42 -0
  90. package/public/logo.svg +5 -0
  91. package/src/layouts/Layout.astro +60 -0
  92. package/src/pages/coverage.astro +399 -0
  93. package/src/pages/graph.astro +330 -0
  94. package/src/pages/impact.astro +459 -0
  95. package/src/pages/index.astro +167 -0
  96. package/src/pages/screen/[id].astro +186 -0
  97. package/src/styles/global.css +862 -0
  98. package/src/utils/impactAnalysis.ts +297 -0
  99. package/src/utils/loadCoverage.ts +30 -0
  100. package/src/utils/loadScreens.ts +18 -0
  101. package/tsconfig.json +9 -0
@@ -0,0 +1,862 @@
1
+ @import "tailwindcss";
2
+
3
+ /* Screenbook - Documentation Style Design System */
4
+ @theme {
5
+ /* Color Palette - Neutral & Calm */
6
+ --color-bg: #111111;
7
+ --color-bg-soft: #1a1a1a;
8
+ --color-bg-muted: #222222;
9
+
10
+ --color-surface: #1a1a1a;
11
+ --color-surface-hover: #252525;
12
+
13
+ --color-border: #2e2e2e;
14
+ --color-border-hover: #3a3a3a;
15
+
16
+ --color-text: #eeeeee;
17
+ --color-text-secondary: #a0a0a0;
18
+ --color-text-muted: #707070;
19
+
20
+ /* Accent - Subtle Teal */
21
+ --color-accent: #5eead4;
22
+ --color-accent-hover: #99f6e4;
23
+ --color-accent-bg: rgba(94, 234, 212, 0.1);
24
+
25
+ /* Semantic */
26
+ --color-success: #4ade80;
27
+ --color-warning: #fbbf24;
28
+ --color-error: #f87171;
29
+
30
+ /* Spacing */
31
+ --spacing-page-x: max(24px, calc((100vw - 1200px) / 2));
32
+ --spacing-page-y: 48px;
33
+
34
+ /* Typography */
35
+ --text-xs: 0.75rem;
36
+ --text-sm: 0.875rem;
37
+ --text-base: 1rem;
38
+ --text-lg: 1.125rem;
39
+ --text-xl: 1.25rem;
40
+ --text-2xl: 1.5rem;
41
+ --text-3xl: 2rem;
42
+
43
+ /* Radius */
44
+ --radius-sm: 6px;
45
+ --radius-md: 8px;
46
+ --radius-lg: 12px;
47
+
48
+ /* Shadows */
49
+ --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.2);
50
+ --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.15);
51
+ }
52
+
53
+ /* Base */
54
+ * {
55
+ margin: 0;
56
+ padding: 0;
57
+ box-sizing: border-box;
58
+ }
59
+
60
+ html {
61
+ -webkit-font-smoothing: antialiased;
62
+ scroll-behavior: smooth;
63
+ }
64
+
65
+ body {
66
+ font-family:
67
+ system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
68
+ background: var(--color-bg);
69
+ color: var(--color-text);
70
+ font-size: var(--text-base);
71
+ line-height: 1.6;
72
+ }
73
+
74
+ /* Typography */
75
+ h1,
76
+ h2,
77
+ h3,
78
+ h4 {
79
+ font-weight: 600;
80
+ line-height: 1.3;
81
+ color: var(--color-text);
82
+ }
83
+
84
+ h1 {
85
+ font-size: var(--text-3xl);
86
+ }
87
+ h2 {
88
+ font-size: var(--text-2xl);
89
+ }
90
+ h3 {
91
+ font-size: var(--text-xl);
92
+ }
93
+ h4 {
94
+ font-size: var(--text-lg);
95
+ }
96
+
97
+ p {
98
+ color: var(--color-text-secondary);
99
+ }
100
+
101
+ a {
102
+ color: var(--color-accent);
103
+ text-decoration: none;
104
+ }
105
+
106
+ a:hover {
107
+ color: var(--color-accent-hover);
108
+ }
109
+
110
+ code {
111
+ font-family: ui-monospace, "SF Mono", Menlo, Monaco, monospace;
112
+ font-size: 0.9em;
113
+ background: var(--color-bg-muted);
114
+ padding: 0.2em 0.4em;
115
+ border-radius: var(--radius-sm);
116
+ }
117
+
118
+ /* Selection */
119
+ ::selection {
120
+ background: rgba(94, 234, 212, 0.2);
121
+ }
122
+
123
+ /* Scrollbar */
124
+ ::-webkit-scrollbar {
125
+ width: 8px;
126
+ height: 8px;
127
+ }
128
+
129
+ ::-webkit-scrollbar-track {
130
+ background: transparent;
131
+ }
132
+
133
+ ::-webkit-scrollbar-thumb {
134
+ background: var(--color-border);
135
+ border-radius: 4px;
136
+ }
137
+
138
+ ::-webkit-scrollbar-thumb:hover {
139
+ background: var(--color-border-hover);
140
+ }
141
+
142
+ /* Layout */
143
+ .container {
144
+ max-width: 1200px;
145
+ margin: 0 auto;
146
+ padding: 0 24px;
147
+ }
148
+
149
+ /* Header */
150
+ .header {
151
+ border-bottom: 1px solid var(--color-border);
152
+ padding: 16px 0;
153
+ background: var(--color-bg);
154
+ position: sticky;
155
+ top: 0;
156
+ z-index: 100;
157
+ }
158
+
159
+ .header-content {
160
+ display: flex;
161
+ align-items: center;
162
+ justify-content: space-between;
163
+ gap: 24px;
164
+ }
165
+
166
+ .logo {
167
+ display: flex;
168
+ align-items: center;
169
+ gap: 10px;
170
+ font-weight: 600;
171
+ font-size: var(--text-lg);
172
+ color: var(--color-text);
173
+ }
174
+
175
+ .logo:hover {
176
+ color: var(--color-text);
177
+ }
178
+
179
+ .logo-icon {
180
+ width: 28px;
181
+ height: 28px;
182
+ color: var(--color-accent);
183
+ }
184
+
185
+ /* Navigation */
186
+ .nav {
187
+ display: flex;
188
+ align-items: center;
189
+ gap: 4px;
190
+ }
191
+
192
+ .nav-link {
193
+ display: flex;
194
+ align-items: center;
195
+ gap: 6px;
196
+ padding: 8px 14px;
197
+ font-size: var(--text-sm);
198
+ font-weight: 500;
199
+ color: var(--color-text-secondary);
200
+ border-radius: var(--radius-md);
201
+ transition: all 0.15s ease;
202
+ }
203
+
204
+ .nav-link:hover {
205
+ color: var(--color-text);
206
+ background: var(--color-surface-hover);
207
+ }
208
+
209
+ .nav-link.active {
210
+ color: var(--color-accent);
211
+ background: var(--color-accent-bg);
212
+ }
213
+
214
+ .nav-link svg {
215
+ width: 16px;
216
+ height: 16px;
217
+ }
218
+
219
+ /* Page Header */
220
+ .page-header {
221
+ padding: 48px 0 32px;
222
+ }
223
+
224
+ .page-title {
225
+ margin-bottom: 8px;
226
+ }
227
+
228
+ .page-description {
229
+ font-size: var(--text-lg);
230
+ color: var(--color-text-muted);
231
+ max-width: 600px;
232
+ }
233
+
234
+ /* Search */
235
+ .search-wrapper {
236
+ position: relative;
237
+ max-width: 400px;
238
+ margin-bottom: 32px;
239
+ }
240
+
241
+ .search-icon {
242
+ position: absolute;
243
+ left: 14px;
244
+ top: 50%;
245
+ transform: translateY(-50%);
246
+ width: 18px;
247
+ height: 18px;
248
+ color: var(--color-text-muted);
249
+ pointer-events: none;
250
+ }
251
+
252
+ .search-input {
253
+ width: 100%;
254
+ padding: 10px 14px 10px 42px;
255
+ font-size: var(--text-sm);
256
+ color: var(--color-text);
257
+ background: var(--color-surface);
258
+ border: 1px solid var(--color-border);
259
+ border-radius: var(--radius-md);
260
+ outline: none;
261
+ transition: border-color 0.15s ease;
262
+ }
263
+
264
+ .search-input::placeholder {
265
+ color: var(--color-text-muted);
266
+ }
267
+
268
+ .search-input:focus {
269
+ border-color: var(--color-accent);
270
+ }
271
+
272
+ /* Tags */
273
+ .tags {
274
+ display: flex;
275
+ flex-wrap: wrap;
276
+ gap: 8px;
277
+ margin-bottom: 32px;
278
+ }
279
+
280
+ .tag {
281
+ display: inline-flex;
282
+ align-items: center;
283
+ padding: 5px 12px;
284
+ font-size: var(--text-xs);
285
+ font-weight: 500;
286
+ color: var(--color-text-secondary);
287
+ background: var(--color-surface);
288
+ border: 1px solid var(--color-border);
289
+ border-radius: 9999px;
290
+ cursor: pointer;
291
+ transition: all 0.15s ease;
292
+ }
293
+
294
+ .tag:hover {
295
+ border-color: var(--color-border-hover);
296
+ color: var(--color-text);
297
+ }
298
+
299
+ .tag.active {
300
+ background: var(--color-accent-bg);
301
+ border-color: var(--color-accent);
302
+ color: var(--color-accent);
303
+ }
304
+
305
+ /* Card */
306
+ .card {
307
+ background: var(--color-surface);
308
+ border: 1px solid var(--color-border);
309
+ border-radius: var(--radius-lg);
310
+ padding: 20px;
311
+ transition: border-color 0.15s ease;
312
+ }
313
+
314
+ .card-link {
315
+ display: block;
316
+ color: inherit;
317
+ }
318
+
319
+ .card-link:hover {
320
+ color: inherit;
321
+ }
322
+
323
+ .card-link:hover .card {
324
+ border-color: var(--color-border-hover);
325
+ }
326
+
327
+ .card-link:hover .card-title {
328
+ color: var(--color-accent);
329
+ }
330
+
331
+ .card-title {
332
+ font-size: var(--text-base);
333
+ font-weight: 600;
334
+ margin-bottom: 4px;
335
+ transition: color 0.15s ease;
336
+ }
337
+
338
+ .card-route {
339
+ font-family: ui-monospace, monospace;
340
+ font-size: var(--text-sm);
341
+ color: var(--color-text-muted);
342
+ margin-bottom: 12px;
343
+ }
344
+
345
+ .card-meta {
346
+ display: flex;
347
+ flex-wrap: wrap;
348
+ gap: 12px;
349
+ font-size: var(--text-xs);
350
+ color: var(--color-text-muted);
351
+ margin-bottom: 12px;
352
+ }
353
+
354
+ .card-meta-item {
355
+ display: flex;
356
+ align-items: center;
357
+ gap: 4px;
358
+ }
359
+
360
+ .card-meta-item svg {
361
+ width: 14px;
362
+ height: 14px;
363
+ }
364
+
365
+ .card-tags {
366
+ display: flex;
367
+ flex-wrap: wrap;
368
+ gap: 6px;
369
+ }
370
+
371
+ .card-tag {
372
+ font-size: var(--text-xs);
373
+ padding: 3px 8px;
374
+ background: var(--color-bg-muted);
375
+ border-radius: 4px;
376
+ color: var(--color-text-secondary);
377
+ }
378
+
379
+ /* Screen Grid */
380
+ .screen-grid {
381
+ display: grid;
382
+ grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
383
+ gap: 16px;
384
+ }
385
+
386
+ /* Section */
387
+ .section {
388
+ margin-bottom: 32px;
389
+ }
390
+
391
+ .section-title {
392
+ font-size: var(--text-sm);
393
+ font-weight: 600;
394
+ color: var(--color-text-muted);
395
+ text-transform: uppercase;
396
+ letter-spacing: 0.05em;
397
+ margin-bottom: 16px;
398
+ padding-bottom: 8px;
399
+ border-bottom: 1px solid var(--color-border);
400
+ }
401
+
402
+ /* Detail Page */
403
+ .detail-header {
404
+ padding: 32px 0;
405
+ border-bottom: 1px solid var(--color-border);
406
+ margin-bottom: 32px;
407
+ }
408
+
409
+ .detail-title {
410
+ font-size: var(--text-2xl);
411
+ margin-bottom: 8px;
412
+ }
413
+
414
+ .detail-route {
415
+ display: inline-flex;
416
+ align-items: center;
417
+ gap: 8px;
418
+ font-family: ui-monospace, monospace;
419
+ font-size: var(--text-sm);
420
+ color: var(--color-accent);
421
+ background: var(--color-accent-bg);
422
+ padding: 6px 12px;
423
+ border-radius: var(--radius-md);
424
+ }
425
+
426
+ .detail-route svg {
427
+ width: 16px;
428
+ height: 16px;
429
+ }
430
+
431
+ .detail-content {
432
+ display: grid;
433
+ grid-template-columns: 1fr 320px;
434
+ gap: 48px;
435
+ }
436
+
437
+ @media (max-width: 900px) {
438
+ .detail-content {
439
+ grid-template-columns: 1fr;
440
+ gap: 32px;
441
+ }
442
+ }
443
+
444
+ /* Info List */
445
+ .info-list {
446
+ display: flex;
447
+ flex-direction: column;
448
+ gap: 16px;
449
+ }
450
+
451
+ .info-item {
452
+ display: flex;
453
+ gap: 16px;
454
+ }
455
+
456
+ .info-label {
457
+ width: 100px;
458
+ flex-shrink: 0;
459
+ font-size: var(--text-sm);
460
+ color: var(--color-text-muted);
461
+ }
462
+
463
+ .info-value {
464
+ font-size: var(--text-sm);
465
+ color: var(--color-text);
466
+ }
467
+
468
+ /* Dependency List */
469
+ .dep-list {
470
+ display: flex;
471
+ flex-direction: column;
472
+ gap: 8px;
473
+ }
474
+
475
+ .dep-item {
476
+ display: flex;
477
+ align-items: center;
478
+ gap: 10px;
479
+ padding: 10px 12px;
480
+ background: var(--color-bg-muted);
481
+ border-radius: var(--radius-md);
482
+ font-family: ui-monospace, monospace;
483
+ font-size: var(--text-sm);
484
+ }
485
+
486
+ .dep-item svg {
487
+ width: 16px;
488
+ height: 16px;
489
+ color: var(--color-text-muted);
490
+ }
491
+
492
+ .dep-item-link {
493
+ display: flex;
494
+ justify-content: space-between;
495
+ align-items: center;
496
+ text-decoration: none;
497
+ color: inherit;
498
+ transition: all 0.15s ease;
499
+ }
500
+
501
+ .dep-item-link:hover {
502
+ background: var(--color-surface-hover);
503
+ color: inherit;
504
+ }
505
+
506
+ .dep-item-main {
507
+ display: flex;
508
+ align-items: center;
509
+ gap: 10px;
510
+ }
511
+
512
+ .dep-item-meta {
513
+ display: flex;
514
+ align-items: center;
515
+ gap: 8px;
516
+ }
517
+
518
+ .dep-count {
519
+ font-size: var(--text-xs);
520
+ color: var(--color-text-muted);
521
+ padding: 2px 8px;
522
+ background: var(--color-bg);
523
+ border-radius: var(--radius-sm);
524
+ }
525
+
526
+ .dep-arrow {
527
+ width: 14px;
528
+ height: 14px;
529
+ color: var(--color-accent);
530
+ opacity: 0;
531
+ transition: opacity 0.15s ease;
532
+ }
533
+
534
+ .dep-item-link:hover .dep-arrow {
535
+ opacity: 1;
536
+ }
537
+
538
+ /* Screen Link List */
539
+ .screen-link-list {
540
+ display: flex;
541
+ flex-direction: column;
542
+ gap: 8px;
543
+ }
544
+
545
+ .screen-link {
546
+ display: flex;
547
+ align-items: center;
548
+ justify-content: space-between;
549
+ padding: 12px;
550
+ background: var(--color-bg-muted);
551
+ border-radius: var(--radius-md);
552
+ color: var(--color-text);
553
+ transition: background 0.15s ease;
554
+ }
555
+
556
+ .screen-link:hover {
557
+ background: var(--color-surface-hover);
558
+ color: var(--color-text);
559
+ }
560
+
561
+ .screen-link-info {
562
+ display: flex;
563
+ flex-direction: column;
564
+ gap: 2px;
565
+ }
566
+
567
+ .screen-link-title {
568
+ font-size: var(--text-sm);
569
+ font-weight: 500;
570
+ }
571
+
572
+ .screen-link-id {
573
+ font-size: var(--text-xs);
574
+ font-family: ui-monospace, monospace;
575
+ color: var(--color-text-muted);
576
+ }
577
+
578
+ .screen-link-arrow {
579
+ width: 16px;
580
+ height: 16px;
581
+ color: var(--color-text-muted);
582
+ }
583
+
584
+ /* Sidebar Card */
585
+ .sidebar-card {
586
+ background: var(--color-surface);
587
+ border: 1px solid var(--color-border);
588
+ border-radius: var(--radius-lg);
589
+ padding: 20px;
590
+ margin-bottom: 16px;
591
+ }
592
+
593
+ .sidebar-card-title {
594
+ font-size: var(--text-sm);
595
+ font-weight: 600;
596
+ color: var(--color-text-muted);
597
+ margin-bottom: 16px;
598
+ display: flex;
599
+ align-items: center;
600
+ gap: 8px;
601
+ }
602
+
603
+ .sidebar-card-title svg {
604
+ width: 16px;
605
+ height: 16px;
606
+ }
607
+
608
+ /* Graph */
609
+ .graph-container {
610
+ background: var(--color-surface);
611
+ border: 1px solid var(--color-border);
612
+ border-radius: var(--radius-lg);
613
+ padding: 32px;
614
+ min-height: 400px;
615
+ display: flex;
616
+ justify-content: center;
617
+ align-items: center;
618
+ }
619
+
620
+ .graph-legend {
621
+ display: flex;
622
+ justify-content: center;
623
+ gap: 32px;
624
+ margin-top: 24px;
625
+ font-size: var(--text-sm);
626
+ color: var(--color-text-muted);
627
+ }
628
+
629
+ .graph-legend-item {
630
+ display: flex;
631
+ align-items: center;
632
+ gap: 8px;
633
+ }
634
+
635
+ .legend-node {
636
+ width: 32px;
637
+ height: 20px;
638
+ background: var(--color-bg-muted);
639
+ border: 1px solid var(--color-border-hover);
640
+ border-radius: 4px;
641
+ }
642
+
643
+ .legend-edge {
644
+ width: 32px;
645
+ height: 2px;
646
+ background: var(--color-accent);
647
+ }
648
+
649
+ /* Empty State */
650
+ .empty-state {
651
+ text-align: center;
652
+ padding: 64px 24px;
653
+ max-width: 400px;
654
+ margin: 0 auto;
655
+ }
656
+
657
+ .empty-state-icon {
658
+ width: 48px;
659
+ height: 48px;
660
+ color: var(--color-text-muted);
661
+ margin: 0 auto 16px;
662
+ }
663
+
664
+ .empty-state-title {
665
+ font-size: var(--text-lg);
666
+ margin-bottom: 8px;
667
+ }
668
+
669
+ .empty-state-description {
670
+ color: var(--color-text-muted);
671
+ margin-bottom: 24px;
672
+ }
673
+
674
+ .empty-state-code {
675
+ display: inline-flex;
676
+ align-items: center;
677
+ gap: 8px;
678
+ padding: 12px 20px;
679
+ background: var(--color-surface);
680
+ border: 1px solid var(--color-border);
681
+ border-radius: var(--radius-md);
682
+ font-family: ui-monospace, monospace;
683
+ font-size: var(--text-sm);
684
+ }
685
+
686
+ .empty-state-code .prompt {
687
+ color: var(--color-text-muted);
688
+ }
689
+
690
+ .empty-state-steps {
691
+ display: flex;
692
+ flex-direction: column;
693
+ gap: 16px;
694
+ margin: 32px 0;
695
+ text-align: left;
696
+ }
697
+
698
+ .empty-state-step {
699
+ display: flex;
700
+ align-items: flex-start;
701
+ gap: 16px;
702
+ padding: 16px;
703
+ background: var(--color-surface);
704
+ border: 1px solid var(--color-border);
705
+ border-radius: var(--radius-md);
706
+ }
707
+
708
+ .step-number {
709
+ display: flex;
710
+ align-items: center;
711
+ justify-content: center;
712
+ width: 28px;
713
+ height: 28px;
714
+ background: var(--color-accent-bg);
715
+ color: var(--color-accent);
716
+ border-radius: 50%;
717
+ font-size: var(--text-sm);
718
+ font-weight: 600;
719
+ flex-shrink: 0;
720
+ }
721
+
722
+ .step-content {
723
+ flex: 1;
724
+ }
725
+
726
+ .step-title {
727
+ font-size: var(--text-sm);
728
+ color: var(--color-text);
729
+ margin-bottom: 4px;
730
+ }
731
+
732
+ .step-code {
733
+ font-family: ui-monospace, monospace;
734
+ font-size: var(--text-sm);
735
+ color: var(--color-text-secondary);
736
+ background: var(--color-bg);
737
+ padding: 4px 8px;
738
+ border-radius: var(--radius-sm);
739
+ }
740
+
741
+ .empty-state-features {
742
+ margin-top: 32px;
743
+ padding: 20px;
744
+ background: var(--color-surface);
745
+ border: 1px solid var(--color-border);
746
+ border-radius: var(--radius-md);
747
+ text-align: left;
748
+ }
749
+
750
+ .features-title {
751
+ font-size: var(--text-sm);
752
+ color: var(--color-text);
753
+ margin-bottom: 12px;
754
+ font-weight: 500;
755
+ }
756
+
757
+ .features-list {
758
+ list-style: none;
759
+ padding: 0;
760
+ margin: 0;
761
+ }
762
+
763
+ .features-list li {
764
+ font-size: var(--text-sm);
765
+ color: var(--color-text-secondary);
766
+ padding: 6px 0;
767
+ padding-left: 20px;
768
+ position: relative;
769
+ }
770
+
771
+ .features-list li::before {
772
+ content: "";
773
+ position: absolute;
774
+ left: 0;
775
+ top: 12px;
776
+ width: 6px;
777
+ height: 6px;
778
+ background: var(--color-accent);
779
+ border-radius: 50%;
780
+ }
781
+
782
+ /* Back Link */
783
+ .back-link {
784
+ display: inline-flex;
785
+ align-items: center;
786
+ gap: 6px;
787
+ font-size: var(--text-sm);
788
+ color: var(--color-text-muted);
789
+ margin-bottom: 24px;
790
+ }
791
+
792
+ .back-link:hover {
793
+ color: var(--color-text);
794
+ }
795
+
796
+ .back-link svg {
797
+ width: 16px;
798
+ height: 16px;
799
+ }
800
+
801
+ /* Stats */
802
+ .stats {
803
+ display: flex;
804
+ gap: 24px;
805
+ }
806
+
807
+ .stat {
808
+ text-align: center;
809
+ }
810
+
811
+ .stat-value {
812
+ font-size: var(--text-2xl);
813
+ font-weight: 600;
814
+ color: var(--color-text);
815
+ }
816
+
817
+ .stat-label {
818
+ font-size: var(--text-xs);
819
+ color: var(--color-text-muted);
820
+ text-transform: uppercase;
821
+ letter-spacing: 0.05em;
822
+ }
823
+
824
+ /* Mermaid */
825
+ .mermaid {
826
+ background: transparent !important;
827
+ }
828
+
829
+ .mermaid .node rect {
830
+ fill: var(--color-bg-muted) !important;
831
+ stroke: var(--color-border-hover) !important;
832
+ stroke-width: 1px !important;
833
+ rx: 6px !important;
834
+ }
835
+
836
+ .mermaid .nodeLabel {
837
+ color: var(--color-text) !important;
838
+ font-family: system-ui, sans-serif !important;
839
+ font-size: 13px !important;
840
+ }
841
+
842
+ .mermaid .edgePath .path {
843
+ stroke: var(--color-accent) !important;
844
+ stroke-width: 1.5px !important;
845
+ }
846
+
847
+ .mermaid .edgeLabel {
848
+ background: var(--color-bg) !important;
849
+ color: var(--color-text-muted) !important;
850
+ }
851
+
852
+ /* Utility */
853
+ .sr-only {
854
+ position: absolute;
855
+ width: 1px;
856
+ height: 1px;
857
+ padding: 0;
858
+ margin: -1px;
859
+ overflow: hidden;
860
+ clip: rect(0, 0, 0, 0);
861
+ border: 0;
862
+ }