@fias/plugin-dev-harness 1.5.2 → 1.5.4

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.
@@ -1,642 +0,0 @@
1
- * {
2
- margin: 0;
3
- padding: 0;
4
- box-sizing: border-box;
5
- }
6
-
7
- body {
8
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
9
- background: #0a0a0f;
10
- color: #e4e4e7;
11
- display: flex;
12
- flex-direction: column;
13
- height: 100vh;
14
- }
15
-
16
- /* Toolbar */
17
- .toolbar {
18
- display: flex;
19
- justify-content: space-between;
20
- align-items: center;
21
- padding: 8px 16px;
22
- background: #18181b;
23
- border-bottom: 1px solid #3f3f46;
24
- flex-shrink: 0;
25
- }
26
-
27
- .toolbar-left,
28
- .toolbar-right {
29
- display: flex;
30
- align-items: center;
31
- gap: 12px;
32
- }
33
-
34
- .logo {
35
- font-weight: 600;
36
- font-size: 14px;
37
- color: #e4e4e7;
38
- }
39
-
40
- /* Environment selector */
41
- .env-selector {
42
- background: #27272a;
43
- color: #a1a1aa;
44
- border: 1px solid #3f3f46;
45
- border-radius: 4px;
46
- padding: 3px 8px;
47
- font-size: 11px;
48
- font-weight: 600;
49
- cursor: pointer;
50
- outline: none;
51
- text-transform: uppercase;
52
- }
53
-
54
- .env-selector:hover {
55
- border-color: #52525b;
56
- }
57
-
58
- .env-selector:focus {
59
- border-color: #a78bfa;
60
- }
61
-
62
- .mode-badge {
63
- padding: 3px 10px;
64
- border-radius: 4px;
65
- font-size: 11px;
66
- font-weight: 600;
67
- text-transform: uppercase;
68
- cursor: pointer;
69
- transition: background 0.15s, border-color 0.15s;
70
- user-select: none;
71
- }
72
-
73
- .mode-badge:hover {
74
- filter: brightness(1.3);
75
- }
76
-
77
- .mode-badge:active {
78
- filter: brightness(0.9);
79
- }
80
-
81
- .mode-mock {
82
- background: #166534;
83
- color: #86efac;
84
- border: 1px solid #22c55e;
85
- }
86
-
87
- .mode-live {
88
- background: #854d0e;
89
- color: #fde047;
90
- border: 1px solid #eab308;
91
- }
92
-
93
- .theme-badge {
94
- padding: 2px 8px;
95
- border-radius: 4px;
96
- font-size: 11px;
97
- font-weight: 600;
98
- text-transform: uppercase;
99
- }
100
-
101
- .theme-dark {
102
- background: #171717;
103
- color: #a6a6a6;
104
- }
105
-
106
- .theme-light {
107
- background: #e5e5e5;
108
- color: #171717;
109
- }
110
-
111
- .credit-balance {
112
- font-size: 12px;
113
- color: #fde047;
114
- }
115
-
116
- .btn-icon {
117
- background: #27272a;
118
- border: 1px solid #3f3f46;
119
- color: #e4e4e7;
120
- padding: 4px 8px;
121
- border-radius: 4px;
122
- cursor: pointer;
123
- font-size: 14px;
124
- }
125
-
126
- .btn-icon:hover {
127
- background: #3f3f46;
128
- }
129
-
130
- /* Login Modal */
131
- .modal-overlay {
132
- position: fixed;
133
- inset: 0;
134
- background: rgba(0, 0, 0, 0.7);
135
- display: flex;
136
- align-items: center;
137
- justify-content: center;
138
- z-index: 1000;
139
- }
140
-
141
- .modal {
142
- background: #27272a;
143
- border: 1px solid #3f3f46;
144
- border-radius: 8px;
145
- padding: 24px;
146
- width: 420px;
147
- max-width: 90vw;
148
- }
149
-
150
- .modal h3 {
151
- font-size: 16px;
152
- color: #e4e4e7;
153
- margin-bottom: 8px;
154
- }
155
-
156
- .modal p {
157
- font-size: 13px;
158
- color: #a1a1aa;
159
- line-height: 1.5;
160
- margin-bottom: 4px;
161
- }
162
-
163
- .modal-hint {
164
- font-size: 12px !important;
165
- color: #6b7280 !important;
166
- margin-bottom: 16px !important;
167
- }
168
-
169
- .modal-input {
170
- width: 100%;
171
- padding: 8px 12px;
172
- background: #18181b;
173
- border: 1px solid #3f3f46;
174
- border-radius: 4px;
175
- color: #e4e4e7;
176
- font-family: 'SF Mono', 'Fira Code', monospace;
177
- font-size: 13px;
178
- margin-bottom: 12px;
179
- outline: none;
180
- }
181
-
182
- .modal-input:focus {
183
- border-color: #a78bfa;
184
- }
185
-
186
- .modal-error {
187
- font-size: 12px;
188
- color: #fca5a5;
189
- margin-bottom: 12px;
190
- }
191
-
192
- .modal-actions {
193
- display: flex;
194
- justify-content: flex-end;
195
- gap: 8px;
196
- }
197
-
198
- .btn-primary {
199
- background: #ffffff;
200
- color: #0a0a0a;
201
- border: none;
202
- padding: 6px 16px;
203
- border-radius: 4px;
204
- cursor: pointer;
205
- font-size: 13px;
206
- font-weight: 500;
207
- }
208
-
209
- .btn-primary:hover {
210
- background: #e5e5e5;
211
- }
212
-
213
- .btn-primary:disabled {
214
- opacity: 0.5;
215
- cursor: not-allowed;
216
- }
217
-
218
- .btn-full {
219
- width: 100%;
220
- padding: 10px 16px;
221
- margin-bottom: 12px;
222
- }
223
-
224
- .btn-secondary {
225
- background: transparent;
226
- color: #a1a1aa;
227
- border: 1px solid #3f3f46;
228
- padding: 6px 16px;
229
- border-radius: 4px;
230
- cursor: pointer;
231
- font-size: 13px;
232
- }
233
-
234
- .btn-secondary:hover {
235
- background: #3f3f46;
236
- }
237
-
238
- .btn-link {
239
- background: none;
240
- border: none;
241
- color: #a78bfa;
242
- cursor: pointer;
243
- font-size: 12px;
244
- padding: 0;
245
- }
246
-
247
- .btn-link:hover {
248
- text-decoration: underline;
249
- }
250
-
251
- .modal-divider {
252
- display: flex;
253
- align-items: center;
254
- gap: 12px;
255
- margin: 12px 0;
256
- color: #6b7280;
257
- font-size: 12px;
258
- }
259
-
260
- .modal-divider::before,
261
- .modal-divider::after {
262
- content: '';
263
- flex: 1;
264
- height: 1px;
265
- background: #3f3f46;
266
- }
267
-
268
- /* Plugin status overlay */
269
- .plugin-status {
270
- flex: 1;
271
- display: flex;
272
- flex-direction: column;
273
- align-items: center;
274
- justify-content: center;
275
- gap: 16px;
276
- color: #a1a1aa;
277
- font-size: 14px;
278
- }
279
-
280
- .plugin-status.hidden {
281
- display: none;
282
- }
283
-
284
- .plugin-status.error {
285
- color: #fca5a5;
286
- }
287
-
288
- .plugin-status p {
289
- max-width: 500px;
290
- text-align: center;
291
- line-height: 1.6;
292
- }
293
-
294
- .plugin-status code {
295
- background: #27272a;
296
- padding: 2px 8px;
297
- border-radius: 4px;
298
- font-family: 'SF Mono', 'Fira Code', monospace;
299
- font-size: 13px;
300
- color: #e4e4e7;
301
- }
302
-
303
- .status-spinner {
304
- width: 24px;
305
- height: 24px;
306
- border: 3px solid #3f3f46;
307
- border-top-color: #a78bfa;
308
- border-radius: 50%;
309
- animation: spin 0.8s linear infinite;
310
- }
311
-
312
- @keyframes spin {
313
- to { transform: rotate(360deg); }
314
- }
315
-
316
- /* Plugin iframe */
317
- #plugin-iframe {
318
- flex: 1;
319
- border: none;
320
- width: 100%;
321
- }
322
-
323
- #plugin-iframe.hidden {
324
- display: none;
325
- }
326
-
327
- /* Dev Console */
328
- .console-panel {
329
- flex-shrink: 0;
330
- border-top: 1px solid #3f3f46;
331
- background: #18181b;
332
- max-height: 250px;
333
- display: flex;
334
- flex-direction: column;
335
- }
336
-
337
- .console-header {
338
- display: flex;
339
- justify-content: space-between;
340
- padding: 6px 16px;
341
- cursor: pointer;
342
- font-size: 12px;
343
- color: #a1a1aa;
344
- border-bottom: 1px solid #27272a;
345
- user-select: none;
346
- }
347
-
348
- .console-header:hover {
349
- background: #1e1e22;
350
- }
351
-
352
- .console-body {
353
- overflow-y: auto;
354
- padding: 8px 16px;
355
- font-family: 'SF Mono', 'Fira Code', monospace;
356
- font-size: 11px;
357
- flex: 1;
358
- display: none;
359
- }
360
-
361
- .console-body.open {
362
- display: block;
363
- }
364
-
365
- .log-entry {
366
- padding: 2px 0;
367
- border-bottom: 1px solid #1e1e22;
368
- }
369
-
370
- .log-info {
371
- color: #93c5fd;
372
- }
373
-
374
- .log-warn {
375
- color: #fde047;
376
- }
377
-
378
- .log-error {
379
- color: #fca5a5;
380
- }
381
-
382
- .log-time {
383
- color: #6b7280;
384
- margin-right: 8px;
385
- }
386
-
387
- .log-cost {
388
- color: #fbbf24;
389
- margin-left: 8px;
390
- }
391
-
392
- /* Publish Wizard */
393
- .publish-modal {
394
- width: 600px;
395
- max-height: 85vh;
396
- display: flex;
397
- flex-direction: column;
398
- }
399
-
400
- .publish-steps {
401
- display: flex;
402
- gap: 4px;
403
- margin-bottom: 16px;
404
- }
405
-
406
- .publish-step {
407
- flex: 1;
408
- padding: 6px 8px;
409
- font-size: 11px;
410
- font-weight: 600;
411
- color: #6b7280;
412
- background: #18181b;
413
- border-radius: 4px;
414
- text-align: center;
415
- }
416
-
417
- .publish-step.active {
418
- color: #a78bfa;
419
- background: #1e1b2e;
420
- }
421
-
422
- .publish-step.completed {
423
- color: #86efac;
424
- background: #0f291e;
425
- }
426
-
427
- .publish-content {
428
- flex: 1;
429
- overflow-y: auto;
430
- max-height: 55vh;
431
- padding: 4px 0;
432
- }
433
-
434
- .publish-form label {
435
- display: block;
436
- font-size: 12px;
437
- color: #a1a1aa;
438
- margin: 8px 0 4px;
439
- }
440
-
441
- .pub-textarea {
442
- resize: vertical;
443
- font-family: inherit;
444
- min-height: 40px;
445
- }
446
-
447
- .pub-tags-container {
448
- margin-bottom: 8px;
449
- }
450
-
451
- .pub-tags-list {
452
- display: flex;
453
- flex-wrap: wrap;
454
- gap: 4px;
455
- margin-bottom: 4px;
456
- }
457
-
458
- .pub-tag {
459
- display: inline-flex;
460
- align-items: center;
461
- gap: 4px;
462
- background: #3f3f46;
463
- color: #e4e4e7;
464
- padding: 2px 8px;
465
- border-radius: 4px;
466
- font-size: 11px;
467
- }
468
-
469
- .pub-tag-remove {
470
- cursor: pointer;
471
- color: #a1a1aa;
472
- border: none;
473
- background: none;
474
- font-size: 14px;
475
- padding: 0 2px;
476
- }
477
-
478
- .pub-permissions {
479
- display: flex;
480
- flex-direction: column;
481
- gap: 6px;
482
- margin-bottom: 12px;
483
- }
484
-
485
- .pub-checkbox {
486
- display: flex;
487
- align-items: center;
488
- gap: 6px;
489
- font-size: 12px;
490
- color: #e4e4e7;
491
- cursor: pointer;
492
- }
493
-
494
- .pub-checkbox input {
495
- accent-color: #a78bfa;
496
- }
497
-
498
- .pub-loading {
499
- display: flex;
500
- flex-direction: column;
501
- align-items: center;
502
- gap: 12px;
503
- padding: 32px 0;
504
- color: #a1a1aa;
505
- }
506
-
507
- .pub-error-item {
508
- color: #fca5a5;
509
- font-size: 12px;
510
- padding: 4px 0;
511
- }
512
-
513
- .pub-error-item::before {
514
- content: '\2715 ';
515
- }
516
-
517
- .pub-warn-item {
518
- color: #fde047;
519
- font-size: 12px;
520
- padding: 4px 0;
521
- }
522
-
523
- .pub-warn-item::before {
524
- content: '\26A0 ';
525
- }
526
-
527
- .pub-valid {
528
- color: #86efac;
529
- font-size: 13px;
530
- font-weight: 500;
531
- margin-bottom: 12px;
532
- }
533
-
534
- .pub-listing-preview {
535
- background: #18181b;
536
- border: 1px solid #3f3f46;
537
- border-radius: 8px;
538
- padding: 16px;
539
- margin-top: 12px;
540
- }
541
-
542
- .pub-listing-name {
543
- font-size: 15px;
544
- font-weight: 600;
545
- color: #e4e4e7;
546
- }
547
-
548
- .pub-listing-desc {
549
- font-size: 12px;
550
- color: #a1a1aa;
551
- margin-top: 4px;
552
- }
553
-
554
- .pub-listing-meta {
555
- font-size: 11px;
556
- color: #6b7280;
557
- margin-top: 8px;
558
- display: flex;
559
- gap: 12px;
560
- }
561
-
562
- .pub-cost-info {
563
- background: #1e1b2e;
564
- border: 1px solid #3b3370;
565
- border-radius: 8px;
566
- padding: 12px;
567
- margin-bottom: 12px;
568
- font-size: 13px;
569
- color: #e4e4e7;
570
- }
571
-
572
- .pub-cost-info strong {
573
- color: #fde047;
574
- }
575
-
576
- .pub-build-output {
577
- background: #0a0a0f;
578
- border: 1px solid #3f3f46;
579
- border-radius: 4px;
580
- padding: 8px 12px;
581
- font-family: 'SF Mono', 'Fira Code', monospace;
582
- font-size: 11px;
583
- max-height: 200px;
584
- overflow-y: auto;
585
- color: #a1a1aa;
586
- white-space: pre-wrap;
587
- display: none;
588
- }
589
-
590
- .pub-phase {
591
- padding: 4px 0;
592
- font-size: 12px;
593
- color: #a1a1aa;
594
- }
595
-
596
- .pub-phase.active {
597
- color: #e4e4e7;
598
- }
599
-
600
- .pub-phase.done {
601
- color: #86efac;
602
- }
603
-
604
- .pub-phase.error {
605
- color: #fca5a5;
606
- }
607
-
608
- .pub-phase::before {
609
- content: '\25CB ';
610
- }
611
-
612
- .pub-phase.active::before {
613
- content: '\25C9 ';
614
- }
615
-
616
- .pub-phase.done::before {
617
- content: '\2713 ';
618
- }
619
-
620
- .pub-phase.error::before {
621
- content: '\2715 ';
622
- }
623
-
624
- .pub-review-status {
625
- text-align: center;
626
- padding: 24px 0;
627
- }
628
-
629
- .pub-congrats {
630
- color: #86efac;
631
- font-size: 16px;
632
- font-weight: 600;
633
- text-align: center;
634
- margin-bottom: 12px;
635
- }
636
-
637
- .pub-rejected {
638
- color: #fca5a5;
639
- font-size: 14px;
640
- font-weight: 500;
641
- margin-bottom: 8px;
642
- }