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