@yargram/react 1.0.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 (105) hide show
  1. package/.storybook/main.ts +21 -0
  2. package/.storybook/preview.ts +21 -0
  3. package/dist/components/LogWindow/LogEntryRow.d.ts +8 -0
  4. package/dist/components/LogWindow/LogEntryRow.d.ts.map +1 -0
  5. package/dist/components/LogWindow/LogEntryRow.js +14 -0
  6. package/dist/components/LogWindow/LogWindow.d.ts +41 -0
  7. package/dist/components/LogWindow/LogWindow.d.ts.map +1 -0
  8. package/dist/components/LogWindow/LogWindow.js +144 -0
  9. package/dist/components/LogWindow/LogWindow.stories.d.ts +29 -0
  10. package/dist/components/LogWindow/LogWindow.stories.d.ts.map +1 -0
  11. package/dist/components/LogWindow/LogWindow.stories.js +183 -0
  12. package/dist/components/LogWindow/LogWindow.test.d.ts +2 -0
  13. package/dist/components/LogWindow/LogWindow.test.d.ts.map +1 -0
  14. package/dist/components/LogWindow/LogWindow.test.js +61 -0
  15. package/dist/components/LogWindow/LogWindowEscapeDemo.d.ts +12 -0
  16. package/dist/components/LogWindow/LogWindowEscapeDemo.d.ts.map +1 -0
  17. package/dist/components/LogWindow/LogWindowEscapeDemo.js +56 -0
  18. package/dist/components/LogWindow/NetworkEntryRow.d.ts +8 -0
  19. package/dist/components/LogWindow/NetworkEntryRow.d.ts.map +1 -0
  20. package/dist/components/LogWindow/NetworkEntryRow.js +32 -0
  21. package/dist/components/LogWindow/index.d.ts +7 -0
  22. package/dist/components/LogWindow/index.d.ts.map +1 -0
  23. package/dist/components/LogWindow/index.js +4 -0
  24. package/dist/components/LogWindow/types.d.ts +36 -0
  25. package/dist/components/LogWindow/types.d.ts.map +1 -0
  26. package/dist/components/LogWindow/types.js +1 -0
  27. package/dist/components/LoginWindow/LoginForm.d.ts +11 -0
  28. package/dist/components/LoginWindow/LoginForm.d.ts.map +1 -0
  29. package/dist/components/LoginWindow/LoginForm.js +28 -0
  30. package/dist/components/LoginWindow/LoginForm.test.d.ts +2 -0
  31. package/dist/components/LoginWindow/LoginForm.test.d.ts.map +1 -0
  32. package/dist/components/LoginWindow/LoginForm.test.js +34 -0
  33. package/dist/components/LoginWindow/LoginWindow.d.ts +15 -0
  34. package/dist/components/LoginWindow/LoginWindow.d.ts.map +1 -0
  35. package/dist/components/LoginWindow/LoginWindow.js +27 -0
  36. package/dist/components/LoginWindow/index.d.ts +3 -0
  37. package/dist/components/LoginWindow/index.d.ts.map +1 -0
  38. package/dist/components/LoginWindow/index.js +1 -0
  39. package/dist/contexts/ApiContext.d.ts +35 -0
  40. package/dist/contexts/ApiContext.d.ts.map +1 -0
  41. package/dist/contexts/ApiContext.js +82 -0
  42. package/dist/contexts/ApiContext.test.d.ts +2 -0
  43. package/dist/contexts/ApiContext.test.d.ts.map +1 -0
  44. package/dist/contexts/ApiContext.test.js +45 -0
  45. package/dist/contexts/PrinterContext.d.ts +12 -0
  46. package/dist/contexts/PrinterContext.d.ts.map +1 -0
  47. package/dist/contexts/PrinterContext.js +17 -0
  48. package/dist/contexts/PrinterContext.test.d.ts +2 -0
  49. package/dist/contexts/PrinterContext.test.d.ts.map +1 -0
  50. package/dist/contexts/PrinterContext.test.js +19 -0
  51. package/dist/contexts/YahmanContext.d.ts +69 -0
  52. package/dist/contexts/YahmanContext.d.ts.map +1 -0
  53. package/dist/contexts/YahmanContext.js +414 -0
  54. package/dist/contexts/YahmanContext.stories.d.ts +16 -0
  55. package/dist/contexts/YahmanContext.stories.d.ts.map +1 -0
  56. package/dist/contexts/YahmanContext.stories.js +64 -0
  57. package/dist/contexts/YargramContext.d.ts +69 -0
  58. package/dist/contexts/YargramContext.d.ts.map +1 -0
  59. package/dist/contexts/YargramContext.js +414 -0
  60. package/dist/contexts/YargramContext.stories.d.ts +16 -0
  61. package/dist/contexts/YargramContext.stories.d.ts.map +1 -0
  62. package/dist/contexts/YargramContext.stories.js +64 -0
  63. package/dist/contexts/YargramContext.test.d.ts +2 -0
  64. package/dist/contexts/YargramContext.test.d.ts.map +1 -0
  65. package/dist/contexts/YargramContext.test.js +54 -0
  66. package/dist/hooks/useLogWindowShortcut.d.ts +24 -0
  67. package/dist/hooks/useLogWindowShortcut.d.ts.map +1 -0
  68. package/dist/hooks/useLogWindowShortcut.js +61 -0
  69. package/dist/hooks/useLogWindowShortcut.test.d.ts +2 -0
  70. package/dist/hooks/useLogWindowShortcut.test.d.ts.map +1 -0
  71. package/dist/hooks/useLogWindowShortcut.test.js +93 -0
  72. package/dist/index.d.ts +6 -0
  73. package/dist/index.d.ts.map +1 -0
  74. package/dist/index.js +7 -0
  75. package/dist/test/setup.d.ts +2 -0
  76. package/dist/test/setup.d.ts.map +1 -0
  77. package/dist/test/setup.js +1 -0
  78. package/package.json +49 -0
  79. package/src/components/LogWindow/LogEntryRow.tsx +38 -0
  80. package/src/components/LogWindow/LogWindow.css +614 -0
  81. package/src/components/LogWindow/LogWindow.stories.tsx +206 -0
  82. package/src/components/LogWindow/LogWindow.test.tsx +68 -0
  83. package/src/components/LogWindow/LogWindow.tsx +379 -0
  84. package/src/components/LogWindow/LogWindowEscapeDemo.tsx +100 -0
  85. package/src/components/LogWindow/NetworkEntryRow.tsx +102 -0
  86. package/src/components/LogWindow/index.ts +13 -0
  87. package/src/components/LogWindow/types.ts +40 -0
  88. package/src/components/LoginWindow/LoginForm.test.tsx +38 -0
  89. package/src/components/LoginWindow/LoginForm.tsx +78 -0
  90. package/src/components/LoginWindow/LoginWindow.css +198 -0
  91. package/src/components/LoginWindow/LoginWindow.tsx +90 -0
  92. package/src/components/LoginWindow/index.ts +2 -0
  93. package/src/contexts/ApiContext.test.tsx +68 -0
  94. package/src/contexts/ApiContext.tsx +155 -0
  95. package/src/contexts/PrinterContext.test.tsx +37 -0
  96. package/src/contexts/PrinterContext.tsx +35 -0
  97. package/src/contexts/YargramContext.stories.tsx +148 -0
  98. package/src/contexts/YargramContext.test.tsx +105 -0
  99. package/src/contexts/YargramContext.tsx +676 -0
  100. package/src/hooks/useLogWindowShortcut.test.ts +111 -0
  101. package/src/hooks/useLogWindowShortcut.ts +96 -0
  102. package/src/index.ts +14 -0
  103. package/src/test/setup.ts +1 -0
  104. package/tsconfig.json +16 -0
  105. package/vitest.config.ts +18 -0
@@ -0,0 +1,614 @@
1
+ /* ログウィンドウ表示時のアニメーション(Windows 風スケール+フェードイン) */
2
+ @keyframes logWindowOpenIn {
3
+ from {
4
+ opacity: 0;
5
+ transform: scale(0.92);
6
+ }
7
+ to {
8
+ opacity: 1;
9
+ transform: scale(1);
10
+ }
11
+ }
12
+
13
+ .logWindowOpenAnimation {
14
+ opacity: 0;
15
+ transform: scale(0.92);
16
+ animation: logWindowOpenIn 0.2s ease-out forwards;
17
+ }
18
+
19
+ /* ログウィンドウ閉じる時のアニメーション(スケールダウン+フェードアウト) */
20
+ @keyframes logWindowCloseOut {
21
+ from {
22
+ opacity: 1;
23
+ transform: scale(1);
24
+ }
25
+ to {
26
+ opacity: 0;
27
+ transform: scale(0.92);
28
+ }
29
+ }
30
+
31
+ .logWindowCloseAnimation {
32
+ animation: logWindowCloseOut 0.2s ease-in forwards;
33
+ }
34
+
35
+ /* エクスポートダイアログのフェードイン */
36
+ @keyframes logWindowExportOverlayFadeIn {
37
+ from {
38
+ opacity: 0;
39
+ }
40
+ to {
41
+ opacity: 1;
42
+ }
43
+ }
44
+
45
+ @keyframes logWindowExportDialogFadeIn {
46
+ from {
47
+ opacity: 0;
48
+ transform: scale(0.96);
49
+ }
50
+ to {
51
+ opacity: 1;
52
+ transform: scale(1);
53
+ }
54
+ }
55
+
56
+ /* ログインエラー時: 枠を赤くして震える */
57
+ @keyframes logWindowLoginErrorShake {
58
+ 0%,
59
+ 100% {
60
+ transform: scale(1) translateX(0);
61
+ }
62
+ 10%,
63
+ 30%,
64
+ 50%,
65
+ 70%,
66
+ 90% {
67
+ transform: scale(1) translateX(-4px);
68
+ }
69
+ 20%,
70
+ 40%,
71
+ 60%,
72
+ 80% {
73
+ transform: scale(1) translateX(4px);
74
+ }
75
+ }
76
+
77
+ /* 内側ラッパー(開閉アニメを上書きしないようエラー時の赤枠・震えはここに適用) */
78
+ .logWindowInner {
79
+ flex: 1;
80
+ display: flex;
81
+ flex-direction: column;
82
+ min-height: 0;
83
+ border-radius: 8px;
84
+ border: 2px solid transparent;
85
+ box-sizing: border-box;
86
+ }
87
+
88
+ .logWindowInner.logWindowLoginError {
89
+ border-color: #e53935;
90
+ box-shadow: 0 0 0 1px #e53935;
91
+ animation: logWindowLoginErrorShake 0.5s ease-in-out;
92
+ }
93
+
94
+ .logWindow {
95
+ --logw-bg: linear-gradient(135deg, #1e1e1e 0%, #25252674 100%);
96
+ --logw-header-bg: #252526;
97
+ --logw-tab-active-bg: #2d2d2d;
98
+ --logw-tab-active-border: #3c3c3c;
99
+ --logw-text: #d4d4d4;
100
+ --logw-text-muted: #858585;
101
+ --logw-info-icon: #3794ff;
102
+ --logw-warn-bg: linear-gradient(135deg, #b8951e 0%, #c5a51f00 100%);
103
+ --logw-warn-icon: #cca700;
104
+ --logw-error-bg: linear-gradient(135deg, #5a1d1d 0%, #65252500 100%);
105
+ --logw-error-icon: #f14c4c;
106
+ position: relative;
107
+ width: 696px;
108
+ height: 466px;
109
+ font-family: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, monospace;
110
+ font-size: 12px;
111
+ background: var(--logw-bg);
112
+ border-radius: 8px;
113
+ overflow: hidden;
114
+ box-shadow: 0 4px 24px rgba(0, 0, 0, 0.4);
115
+ display: flex;
116
+ flex-direction: column;
117
+ box-sizing: border-box;
118
+ backdrop-filter: blur(10px);
119
+ }
120
+
121
+ .logWindowHeader {
122
+ display: flex;
123
+ align-items: center;
124
+ gap: 0;
125
+ background: var(--logw-header-bg);
126
+ padding: 0;
127
+ min-height: 36px;
128
+ border-radius: 8px 8px 0 0;
129
+ }
130
+
131
+ .logWindowHeaderDraggable {
132
+ cursor: move;
133
+ user-select: none;
134
+ -webkit-user-select: none;
135
+ }
136
+
137
+ .logWindowHeaderLoginOnly .logWindowHeaderLoginTitle {
138
+ flex: 1;
139
+ padding: 0 12px;
140
+ font-size: 13px;
141
+ font-weight: 600;
142
+ color: var(--logw-text);
143
+ }
144
+
145
+ .logWindowTerminalIcon {
146
+ display: flex;
147
+ align-items: center;
148
+ justify-content: center;
149
+ padding: 0 10px;
150
+ color: var(--logw-text-muted);
151
+ flex-shrink: 0;
152
+ }
153
+
154
+ .logWindowTabs {
155
+ display: flex;
156
+ flex: 1;
157
+ gap: 0;
158
+ }
159
+
160
+ .logWindowTab {
161
+ display: flex;
162
+ align-items: center;
163
+ gap: 6px;
164
+ padding: 8px 14px;
165
+ background: transparent;
166
+ border: none;
167
+ color: var(--logw-text-muted);
168
+ cursor: pointer;
169
+ border-bottom: 2px solid transparent;
170
+ transition: color 0.15s, background 0.15s;
171
+ }
172
+
173
+ .logWindowTab:hover {
174
+ color: var(--logw-text);
175
+ }
176
+
177
+ .logWindowTabActive {
178
+ background: var(--logw-tab-active-bg);
179
+ color: var(--logw-text);
180
+ border-bottom-color: var(--logw-tab-active-border);
181
+ }
182
+
183
+ .logWindowTabBadge {
184
+ display: inline-flex;
185
+ align-items: center;
186
+ justify-content: center;
187
+ min-width: 16px;
188
+ height: 16px;
189
+ padding: 0 4px;
190
+ font-size: 10px;
191
+ font-weight: 600;
192
+ line-height: 1;
193
+ color: #fff;
194
+ background: #f14c4c;
195
+ border-radius: 8px;
196
+ margin-left: 4px;
197
+ box-sizing: border-box;
198
+ }
199
+
200
+ .logWindowTabIcon {
201
+ font-size: 14px;
202
+ opacity: 0.9;
203
+ }
204
+
205
+ .logWindowTabIconWifi {
206
+ display: inline-flex;
207
+ align-items: center;
208
+ justify-content: center;
209
+ }
210
+
211
+ .logWindowIndicator {
212
+ color: #f14c4c;
213
+ margin-right: 12px;
214
+ flex-shrink: 0;
215
+ }
216
+
217
+ .logWindowLogoutButton {
218
+ display: inline-flex;
219
+ align-items: center;
220
+ gap: 6px;
221
+ margin-right: 8px;
222
+ padding: 4px 8px;
223
+ border: none;
224
+ background: none;
225
+ color: var(--logw-text-muted);
226
+ font-size: 12px;
227
+ cursor: pointer;
228
+ flex-shrink: 0;
229
+ border-radius: 4px;
230
+ transition: background 0.15s, color 0.15s;
231
+ }
232
+
233
+ .logWindowLogoutButton:hover {
234
+ background: rgba(255, 255, 255, 0.08);
235
+ color: var(--logw-text);
236
+ }
237
+
238
+ .logWindowCloseButton {
239
+ display: inline-flex;
240
+ align-items: center;
241
+ justify-content: center;
242
+ margin-right: 12px;
243
+ padding: 4px;
244
+ border: none;
245
+ background: none;
246
+ color: #f14c4c;
247
+ cursor: pointer;
248
+ flex-shrink: 0;
249
+ border-radius: 4px;
250
+ transition: background 0.15s, opacity 0.15s;
251
+ }
252
+
253
+ .logWindowCloseButton:hover {
254
+ background: rgba(255, 255, 255, 0.08);
255
+ }
256
+
257
+ .logWindowCloseButton:disabled {
258
+ cursor: default;
259
+ opacity: 0.8;
260
+ }
261
+
262
+ .logWindowBody {
263
+ flex: 1;
264
+ min-height: 0;
265
+ overflow: hidden;
266
+ }
267
+
268
+ .logWindowFooter {
269
+ display: flex;
270
+ align-items: center;
271
+ justify-content: flex-end;
272
+ gap: 8px;
273
+ padding: 8px 14px;
274
+ background: var(--logw-header-bg);
275
+ border-top: 1px solid var(--logw-tab-active-border);
276
+ flex-shrink: 0;
277
+ }
278
+
279
+ .logWindowExportButton {
280
+ display: inline-flex;
281
+ align-items: center;
282
+ gap: 6px;
283
+ padding: 6px 12px;
284
+ font-size: 12px;
285
+ font-family: inherit;
286
+ color: var(--logw-text);
287
+ background: var(--logw-tab-active-bg);
288
+ border: 1px solid var(--logw-tab-active-border);
289
+ border-radius: 6px;
290
+ cursor: pointer;
291
+ transition: background 0.15s, color 0.15s;
292
+ }
293
+
294
+ .logWindowExportButton:hover {
295
+ background: #3c3c3c;
296
+ color: #fff;
297
+ }
298
+
299
+ .logWindowExportOverlay {
300
+ position: absolute;
301
+ inset: 0;
302
+ display: flex;
303
+ align-items: center;
304
+ justify-content: center;
305
+ background: rgba(0, 0, 0, 0.6);
306
+ z-index: 100;
307
+ border-radius: 0 0 8px 8px;
308
+ animation: logWindowExportOverlayFadeIn 0.2s ease-out forwards;
309
+ }
310
+
311
+ .logWindowExportDialog {
312
+ background: var(--logw-header-bg);
313
+ border: 1px solid var(--logw-tab-active-border);
314
+ border-radius: 8px;
315
+ padding: 20px;
316
+ min-width: 280px;
317
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
318
+ animation: logWindowExportDialogFadeIn 0.2s ease-out forwards;
319
+ }
320
+
321
+ .logWindowExportDialogTitle {
322
+ margin: 0 0 8px;
323
+ font-size: 14px;
324
+ font-weight: 600;
325
+ color: var(--logw-text);
326
+ }
327
+
328
+ .logWindowExportDialogDescription {
329
+ margin: 0 0 16px;
330
+ font-size: 12px;
331
+ color: var(--logw-text-muted);
332
+ line-height: 1.4;
333
+ }
334
+
335
+ .logWindowExportDialogActions {
336
+ display: flex;
337
+ gap: 10px;
338
+ margin-bottom: 14px;
339
+ }
340
+
341
+ .logWindowExportFormatButton {
342
+ flex: 1;
343
+ display: inline-flex;
344
+ align-items: center;
345
+ justify-content: center;
346
+ gap: 8px;
347
+ padding: 10px 14px;
348
+ font-size: 12px;
349
+ font-family: inherit;
350
+ color: var(--logw-text);
351
+ background: var(--logw-tab-active-bg);
352
+ border: 1px solid var(--logw-tab-active-border);
353
+ border-radius: 6px;
354
+ cursor: pointer;
355
+ transition: background 0.15s, color 0.15s;
356
+ }
357
+
358
+ .logWindowExportFormatButton:hover {
359
+ background: #3c3c3c;
360
+ color: #fff;
361
+ }
362
+
363
+ .logWindowExportDialogCancel {
364
+ display: block;
365
+ width: 100%;
366
+ padding: 8px;
367
+ font-size: 12px;
368
+ font-family: inherit;
369
+ color: var(--logw-text-muted);
370
+ background: transparent;
371
+ border: none;
372
+ border-radius: 4px;
373
+ cursor: pointer;
374
+ transition: background 0.15s, color 0.15s;
375
+ }
376
+
377
+ .logWindowExportDialogCancel:hover {
378
+ background: rgba(255, 255, 255, 0.06);
379
+ color: var(--logw-text);
380
+ }
381
+
382
+ .logWindowBodySlider {
383
+ display: flex;
384
+ width: 200%;
385
+ height: 100%;
386
+ transition: transform 0.3s ease-in-out;
387
+ }
388
+
389
+ .logWindowBodyPanel {
390
+ flex: 0 0 50%;
391
+ width: 50%;
392
+ min-width: 0;
393
+ overflow-y: auto;
394
+ padding: 8px 0;
395
+ }
396
+
397
+ .logWindowEntry {
398
+ display: flex;
399
+ align-items: center;
400
+ gap: 10px;
401
+ padding: 6px 14px;
402
+ min-height: 28px;
403
+ color: var(--logw-text);
404
+ }
405
+
406
+ .logWindowEntryInfo {
407
+ background: transparent;
408
+ }
409
+
410
+ .logWindowEntryWarn {
411
+ background: var(--logw-warn-bg);
412
+ color: #1e1e1e;
413
+ }
414
+
415
+ .logWindowEntryWarn .logWindowEntrySource {
416
+ color: #fffa65;
417
+ }
418
+
419
+ .logWindowEntryError {
420
+ background: var(--logw-error-bg);
421
+ color: #d4d4d4;
422
+ }
423
+
424
+ .logWindowEntryError .logWindowEntrySource {
425
+ color: #ff8c8c;
426
+ }
427
+
428
+ .logWindowEntryIcon {
429
+ width: 18px;
430
+ height: 18px;
431
+ border-radius: 50%;
432
+ display: inline-flex;
433
+ align-items: center;
434
+ justify-content: center;
435
+ flex-shrink: 0;
436
+ }
437
+
438
+ .logWindowEntryIcon svg {
439
+ width: 12px;
440
+ height: 12px;
441
+ }
442
+
443
+ .logWindowEntryIconInfo {
444
+ background: var(--logw-info-icon);
445
+ color: #fff;
446
+ }
447
+
448
+ .logWindowEntryIconWarn {
449
+ background: var(--logw-warn-icon);
450
+ color: #1e1e1e;
451
+ }
452
+
453
+ .logWindowEntryIconError {
454
+ background: var(--logw-error-icon);
455
+ color: #fff;
456
+ }
457
+
458
+ .logWindowEntryMessage {
459
+ flex: 1;
460
+ white-space: nowrap;
461
+ overflow: hidden;
462
+ text-overflow: ellipsis;
463
+ }
464
+
465
+ .logWindowEntrySource {
466
+ flex-shrink: 0;
467
+ color: rgb(179, 179, 179);
468
+ font-size: 11px;
469
+ }
470
+
471
+ /* Network entries */
472
+ .logWindowNetworkEntryAccordion {
473
+ border-bottom: 1px solid rgba(255, 255, 255, 0.06);
474
+ }
475
+
476
+ .logWindowNetworkEntryAccordion:last-child {
477
+ border-bottom: none;
478
+ }
479
+
480
+ .logWindowNetworkEntry {
481
+ display: flex;
482
+ align-items: center;
483
+ gap: 10px;
484
+ padding: 6px 14px;
485
+ min-height: 28px;
486
+ color: var(--logw-text);
487
+ background: transparent;
488
+ }
489
+
490
+ .logWindowNetworkEntryClickable {
491
+ cursor: pointer;
492
+ }
493
+
494
+ .logWindowNetworkEntryClickable:hover {
495
+ background: rgba(255, 255, 255, 0.04);
496
+ }
497
+
498
+ .logWindowNetworkEntryChevron {
499
+ display: inline-flex;
500
+ align-items: center;
501
+ justify-content: center;
502
+ width: 18px;
503
+ flex-shrink: 0;
504
+ color: var(--logw-text-muted);
505
+ }
506
+
507
+ .logWindowNetworkEntryChevron svg {
508
+ width: 14px;
509
+ height: 14px;
510
+ transition: transform 0.2s ease-out;
511
+ }
512
+
513
+ .logWindowNetworkEntryIcon {
514
+ display: inline-flex;
515
+ align-items: center;
516
+ justify-content: center;
517
+ width: 18px;
518
+ height: 18px;
519
+ flex-shrink: 0;
520
+ color: var(--logw-info-icon);
521
+ }
522
+
523
+ .logWindowNetworkEntryIcon svg {
524
+ width: 12px;
525
+ height: 12px;
526
+ }
527
+
528
+ .logWindowNetworkEntryIconGraphql {
529
+ color: #e10098;
530
+ }
531
+
532
+ .logWindowNetworkEntryMethod,
533
+ .logWindowNetworkEntryOperation {
534
+ flex-shrink: 0;
535
+ width: 56px;
536
+ font-weight: 600;
537
+ font-size: 11px;
538
+ }
539
+
540
+ .logWindowNetworkEntryUrl {
541
+ flex: 1;
542
+ white-space: nowrap;
543
+ overflow: hidden;
544
+ text-overflow: ellipsis;
545
+ color: var(--logw-text-muted);
546
+ font-size: 11px;
547
+ }
548
+
549
+ .logWindowNetworkEntryStatus {
550
+ flex-shrink: 0;
551
+ margin-left: auto;
552
+ font-size: 11px;
553
+ font-weight: 600;
554
+ }
555
+
556
+ /* Network accordion details (Request / Response) - animation wrapper */
557
+ .logWindowNetworkEntryDetailsWrapper {
558
+ display: grid;
559
+ grid-template-rows: 0fr;
560
+ transition: grid-template-rows 0.25s ease-out;
561
+ }
562
+
563
+ .logWindowNetworkEntryDetailsWrapperExpanded {
564
+ grid-template-rows: 1fr;
565
+ }
566
+
567
+ .logWindowNetworkEntryDetails {
568
+ overflow: hidden;
569
+ min-height: 0;
570
+ padding: 0 14px 0 42px;
571
+ background: rgba(0, 0, 0, 0.2);
572
+ transition: opacity 0.2s ease-out;
573
+ }
574
+
575
+ .logWindowNetworkEntryDetailsWrapper:not(.logWindowNetworkEntryDetailsWrapperExpanded) .logWindowNetworkEntryDetails {
576
+ opacity: 0;
577
+ }
578
+
579
+ .logWindowNetworkEntryDetailsWrapperExpanded .logWindowNetworkEntryDetails {
580
+ opacity: 1;
581
+ padding-top: 4px;
582
+ padding-bottom: 10px;
583
+ }
584
+
585
+ .logWindowNetworkEntryDetailSection {
586
+ margin-top: 8px;
587
+ }
588
+
589
+ .logWindowNetworkEntryDetailSection:first-child {
590
+ margin-top: 0;
591
+ }
592
+
593
+ .logWindowNetworkEntryDetailLabel {
594
+ font-size: 10px;
595
+ font-weight: 600;
596
+ color: var(--logw-text-muted);
597
+ text-transform: uppercase;
598
+ letter-spacing: 0.05em;
599
+ margin-bottom: 4px;
600
+ }
601
+
602
+ .logWindowNetworkEntryDetailContent {
603
+ margin: 0;
604
+ padding: 8px 10px;
605
+ font-size: 11px;
606
+ line-height: 1.4;
607
+ color: var(--logw-text);
608
+ background: rgba(0, 0, 0, 0.3);
609
+ border-radius: 4px;
610
+ overflow-x: auto;
611
+ white-space: pre-wrap;
612
+ word-break: break-all;
613
+ font-family: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, monospace;
614
+ }