@industry-theme/xterm-terminal-panel 0.5.6 → 0.5.8

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.
package/dist/index.css CHANGED
@@ -166,3 +166,1933 @@
166
166
  .terminal-working-overlay.closing {
167
167
  animation: blinds-up .3s ease-in forwards;
168
168
  }
169
+
170
+ /* node_modules/@principal-ade/panels/dist/index.css */
171
+ .animated-resizable-layout {
172
+ position: relative;
173
+ background-color: var(--panel-background);
174
+ width: 100%;
175
+ height: 100%;
176
+ }
177
+
178
+ .hybrid-panel {
179
+ overflow: auto;
180
+ background-color: var(--panel-background);
181
+ height: 100%;
182
+ }
183
+
184
+ .resize-handle {
185
+ background-color: var(--panel-handle);
186
+ display: flex;
187
+ cursor: col-resize;
188
+ position: relative;
189
+ justify-content: center;
190
+ align-items: center;
191
+ width: 8px;
192
+ transition: background-color .2s, opacity .3s, width .3s;
193
+ }
194
+
195
+ .resize-handle.collapsed {
196
+ opacity: 0;
197
+ pointer-events: none;
198
+ }
199
+
200
+ .resize-handle:hover {
201
+ background-color: var(--panel-handle-hover);
202
+ }
203
+
204
+ .resize-handle:active {
205
+ background-color: var(--panel-handle-active);
206
+ }
207
+
208
+ .handle-bar {
209
+ display: flex;
210
+ position: relative;
211
+ justify-content: center;
212
+ align-items: center;
213
+ width: 100%;
214
+ height: 100%;
215
+ }
216
+
217
+ .collapse-toggle {
218
+ position: absolute;
219
+ background: var(--panel-button-bg);
220
+ border: 1px solid var(--panel-button-border);
221
+ cursor: pointer;
222
+ color: var(--panel-button-icon);
223
+ outline: none;
224
+ display: flex;
225
+ z-index: 10;
226
+ border-radius: 4px;
227
+ justify-content: center;
228
+ align-items: center;
229
+ padding: 4px 8px;
230
+ transition: all .2s;
231
+ font-size: 14px;
232
+ box-shadow: 0 2px 4px #0000001a;
233
+ }
234
+
235
+ .animated-vertical-layout {
236
+ position: relative;
237
+ background-color: var(--panel-background);
238
+ width: 100%;
239
+ height: 100%;
240
+ }
241
+
242
+ .vertical-panel {
243
+ overflow: auto;
244
+ background-color: var(--panel-background);
245
+ width: 100%;
246
+ }
247
+
248
+ .panel-content-wrapper {
249
+ overflow: auto;
250
+ width: 100%;
251
+ height: 100%;
252
+ }
253
+
254
+ .vertical-resize-handle {
255
+ background-color: var(--panel-handle);
256
+ display: flex;
257
+ cursor: row-resize;
258
+ position: relative;
259
+ justify-content: center;
260
+ align-items: center;
261
+ height: 8px;
262
+ transition: background-color .2s, opacity .3s, height .3s;
263
+ }
264
+
265
+ .vertical-resize-handle.collapsed {
266
+ opacity: 0;
267
+ pointer-events: none;
268
+ }
269
+
270
+ .vertical-resize-handle:hover {
271
+ background-color: var(--panel-handle-hover);
272
+ }
273
+
274
+ .vertical-resize-handle:active {
275
+ background-color: var(--panel-handle-active);
276
+ }
277
+
278
+ .handle-bar {
279
+ display: flex;
280
+ position: relative;
281
+ justify-content: center;
282
+ align-items: center;
283
+ gap: 8px;
284
+ width: 100%;
285
+ height: 100%;
286
+ }
287
+
288
+ .collapse-toggle {
289
+ background: var(--panel-button-bg);
290
+ border: 1px solid var(--panel-button-border);
291
+ cursor: pointer;
292
+ color: var(--panel-button-icon);
293
+ outline: none;
294
+ display: flex;
295
+ z-index: 10;
296
+ border-radius: 4px;
297
+ justify-content: center;
298
+ align-items: center;
299
+ padding: 4px 8px;
300
+ transition: all .2s;
301
+ font-size: 14px;
302
+ box-shadow: 0 2px 4px #0000001a;
303
+ }
304
+
305
+ .collapse-toggle:hover:not(:disabled) {
306
+ background-color: var(--panel-button-hover);
307
+ box-shadow: 0 2px 6px #00000026;
308
+ }
309
+
310
+ .collapse-toggle:active:not(:disabled) {
311
+ opacity: .8;
312
+ }
313
+
314
+ .collapsible-split-pane {
315
+ position: relative;
316
+ display: flex;
317
+ background-color: var(--panel-background);
318
+ flex-direction: column;
319
+ width: 100%;
320
+ height: 100%;
321
+ }
322
+
323
+ .csp-header {
324
+ display: flex;
325
+ background-color: var(--panel-handle);
326
+ border-bottom: 1px solid var(--panel-border, #80808033);
327
+ -webkit-user-select: none;
328
+ user-select: none;
329
+ flex-shrink: 0;
330
+ align-items: center;
331
+ gap: 8px;
332
+ padding: 0 12px;
333
+ transition: background-color .15s;
334
+ }
335
+
336
+ .csp-header-collapsed {
337
+ cursor: pointer;
338
+ }
339
+
340
+ .csp-header-collapsed:hover {
341
+ background-color: var(--panel-handle-hover);
342
+ }
343
+
344
+ .csp-header-collapsed:focus {
345
+ outline: none;
346
+ box-shadow: inset 0 0 0 2px var(--panel-focus-ring, #3b82f680);
347
+ }
348
+
349
+ .csp-header-icon {
350
+ display: flex;
351
+ color: var(--panel-text-secondary, #888);
352
+ justify-content: center;
353
+ align-items: center;
354
+ font-size: 14px;
355
+ }
356
+
357
+ .csp-header-title {
358
+ color: var(--panel-text, #333);
359
+ white-space: nowrap;
360
+ overflow: hidden;
361
+ text-overflow: ellipsis;
362
+ flex: 1;
363
+ font-size: 12px;
364
+ font-weight: 500;
365
+ }
366
+
367
+ .csp-header-toggle {
368
+ display: flex;
369
+ color: var(--panel-text-secondary, #888);
370
+ cursor: pointer;
371
+ background: none;
372
+ border: none;
373
+ border-radius: 3px;
374
+ justify-content: center;
375
+ align-items: center;
376
+ width: 20px;
377
+ height: 20px;
378
+ padding: 0;
379
+ transition: background-color .15s, color .15s;
380
+ }
381
+
382
+ .csp-header-toggle:hover {
383
+ background-color: var(--panel-button-hover, #80808033);
384
+ color: var(--panel-text, #333);
385
+ }
386
+
387
+ .csp-content-area {
388
+ display: flex;
389
+ flex-direction: column;
390
+ flex: 1;
391
+ min-height: 0;
392
+ }
393
+
394
+ .csp-primary-content-full {
395
+ overflow: hidden;
396
+ flex: 1;
397
+ min-height: 0;
398
+ }
399
+
400
+ .csp-secondary-panel, .csp-primary-panel {
401
+ overflow: hidden;
402
+ background-color: var(--panel-background);
403
+ }
404
+
405
+ .csp-panel-content {
406
+ display: flex;
407
+ overflow: hidden;
408
+ flex-direction: column;
409
+ width: 100%;
410
+ height: 100%;
411
+ }
412
+
413
+ .csp-secondary-body {
414
+ overflow: auto;
415
+ width: 100%;
416
+ height: 100%;
417
+ }
418
+
419
+ .csp-resize-handle {
420
+ background-color: var(--panel-handle);
421
+ display: flex;
422
+ cursor: row-resize;
423
+ position: relative;
424
+ flex-shrink: 0;
425
+ justify-content: center;
426
+ align-items: center;
427
+ height: 6px;
428
+ transition: background-color .15s;
429
+ }
430
+
431
+ .csp-resize-handle:hover {
432
+ background-color: var(--panel-handle-hover);
433
+ }
434
+
435
+ .csp-resize-handle:active {
436
+ background-color: var(--panel-handle-active);
437
+ }
438
+
439
+ .csp-resize-handle-bar {
440
+ background-color: var(--panel-handle-bar, #80808066);
441
+ border-radius: 2px;
442
+ width: 32px;
443
+ height: 3px;
444
+ transition: background-color .15s;
445
+ }
446
+
447
+ .csp-resize-handle:hover .csp-resize-handle-bar {
448
+ background-color: var(--panel-handle-bar-hover, #80808099);
449
+ }
450
+
451
+ .three-panel-layout {
452
+ display: flex;
453
+ position: relative;
454
+ background-color: var(--panel-background);
455
+ box-sizing: border-box;
456
+ flex-direction: column;
457
+ width: 100%;
458
+ height: 100%;
459
+ }
460
+
461
+ .three-panel-item {
462
+ display: flex;
463
+ overflow: hidden;
464
+ position: relative;
465
+ background-color: var(--panel-background);
466
+ box-sizing: border-box;
467
+ flex-direction: column;
468
+ }
469
+
470
+ .three-panel-item[data-edit-mode="true"] {
471
+ background-color: var(--panel-accent-bg);
472
+ border-radius: 12px;
473
+ }
474
+
475
+ .three-panel-item.collapsible-panel {
476
+ will-change: flex;
477
+ }
478
+
479
+ .three-panel-item.collapsible-panel.animating {
480
+ pointer-events: none;
481
+ }
482
+
483
+ .three-panel-item.collapsible-panel.collapsed {
484
+ visibility: hidden;
485
+ overflow: hidden !important;
486
+ flex: 0 !important;
487
+ width: 0 !important;
488
+ min-width: 0 !important;
489
+ max-width: 0 !important;
490
+ }
491
+
492
+ .three-panel-item.middle-panel {
493
+ flex: 1;
494
+ min-width: 200px;
495
+ }
496
+
497
+ .panel-content-wrapper {
498
+ overflow-x: hidden;
499
+ overflow-y: auto;
500
+ will-change: opacity;
501
+ box-sizing: border-box;
502
+ flex: 1;
503
+ }
504
+
505
+ .resize-handle {
506
+ position: relative;
507
+ display: flex;
508
+ cursor: col-resize;
509
+ background: var(--panel-border);
510
+ justify-content: center;
511
+ align-items: center;
512
+ overflow: visible !important;
513
+ width: 1px !important;
514
+ }
515
+
516
+ .resize-handle:before {
517
+ content: "";
518
+ position: absolute;
519
+ background: none;
520
+ inset: 0 -10px;
521
+ }
522
+
523
+ .resize-handle:after {
524
+ content: "";
525
+ position: absolute;
526
+ background: var(--panel-handle);
527
+ opacity: 0;
528
+ z-index: -1;
529
+ transition: opacity .2s;
530
+ inset: 0 -10px;
531
+ }
532
+
533
+ .resize-handle:hover:after {
534
+ opacity: 1;
535
+ }
536
+
537
+ .resize-handle:hover {
538
+ background: var(--panel-handle-hover);
539
+ }
540
+
541
+ .resize-handle:active:after {
542
+ opacity: 1;
543
+ background: var(--panel-handle-active);
544
+ }
545
+
546
+ .resize-handle:active {
547
+ background: var(--panel-handle-active);
548
+ }
549
+
550
+ .resize-handle.collapsed {
551
+ visibility: hidden;
552
+ width: 0 !important;
553
+ }
554
+
555
+ .resize-handle.left-handle.collapsed {
556
+ margin-right: -1px;
557
+ }
558
+
559
+ .resize-handle.right-handle.collapsed {
560
+ margin-left: -1px;
561
+ }
562
+
563
+ .handle-bar {
564
+ position: relative;
565
+ display: flex;
566
+ z-index: 2;
567
+ justify-content: center;
568
+ align-items: center;
569
+ width: 100%;
570
+ height: 100%;
571
+ }
572
+
573
+ .collapse-toggle {
574
+ position: absolute;
575
+ background: var(--panel-button-bg);
576
+ border: 1px solid var(--panel-button-border);
577
+ display: flex;
578
+ cursor: pointer;
579
+ color: var(--panel-button-icon);
580
+ z-index: 10;
581
+ border-radius: 4px;
582
+ justify-content: center;
583
+ align-items: center;
584
+ width: 20px;
585
+ height: 40px;
586
+ padding: 0;
587
+ transition: all .2s;
588
+ font-size: 12px;
589
+ line-height: 1;
590
+ top: 50%;
591
+ left: 50%;
592
+ transform: translate(-50%, -50%);
593
+ }
594
+
595
+ .collapse-toggle:hover {
596
+ background: var(--panel-button-hover);
597
+ }
598
+
599
+ .collapse-toggle:active {
600
+ opacity: .8;
601
+ }
602
+
603
+ .collapse-toggle:disabled {
604
+ opacity: .5;
605
+ cursor: not-allowed;
606
+ }
607
+
608
+ @media (max-width: 768px) {
609
+ .resize-handle:before, .resize-handle:after {
610
+ left: -8px;
611
+ right: -8px;
612
+ }
613
+
614
+ .collapse-toggle {
615
+ width: 24px;
616
+ height: 48px;
617
+ font-size: 14px;
618
+ }
619
+ }
620
+
621
+ @keyframes wiggle {
622
+ 0% {
623
+ transform: rotate(0);
624
+ }
625
+
626
+ 25% {
627
+ transform: rotate(1deg);
628
+ }
629
+
630
+ 50% {
631
+ transform: rotate(0);
632
+ }
633
+
634
+ 75% {
635
+ transform: rotate(-1deg);
636
+ }
637
+
638
+ to {
639
+ transform: rotate(0);
640
+ }
641
+ }
642
+
643
+ @keyframes scaleIn {
644
+ 0% {
645
+ transform: scale(.95);
646
+ opacity: 0;
647
+ }
648
+
649
+ to {
650
+ transform: scale(1);
651
+ opacity: 1;
652
+ }
653
+ }
654
+
655
+ @keyframes pulse {
656
+ 0%, to {
657
+ box-shadow: 0 0 #3b82f666;
658
+ }
659
+
660
+ 50% {
661
+ box-shadow: 0 0 0 8px #3b82f600;
662
+ }
663
+ }
664
+
665
+ .editable-panel-layout {
666
+ position: relative;
667
+ width: 100%;
668
+ height: 100%;
669
+ }
670
+
671
+ .editable-panel-layout.edit-mode-active {
672
+ background: #0000000d;
673
+ }
674
+
675
+ [data-slot][data-edit-mode="true"] {
676
+ transform-origin: center center;
677
+ cursor: grab;
678
+ will-change: transform;
679
+ transition: transform .3s cubic-bezier(.4,0,.2,1);
680
+ transform: scale(.95);
681
+ }
682
+
683
+ [data-slot][data-edit-mode="true"]:active {
684
+ cursor: grabbing;
685
+ }
686
+
687
+ [data-slot][data-dragging="true"] {
688
+ cursor: grabbing !important;
689
+ transition: none !important;
690
+ transform: scale(.95) !important;
691
+ }
692
+
693
+ .edit-mode-active [data-slot][data-edit-mode="true"] {
694
+ transform-origin: center center;
695
+ }
696
+
697
+ .slot-with-overlay {
698
+ position: relative;
699
+ width: 100%;
700
+ height: 100%;
701
+ }
702
+
703
+ .slot-with-overlay.dragging {
704
+ opacity: 0;
705
+ pointer-events: none;
706
+ }
707
+
708
+ .slot-edit-overlay {
709
+ position: absolute;
710
+ pointer-events: auto;
711
+ cursor: grab;
712
+ z-index: 100;
713
+ display: flex;
714
+ background: none;
715
+ border: none;
716
+ flex-direction: column;
717
+ justify-content: center;
718
+ align-items: center;
719
+ inset: 0;
720
+ }
721
+
722
+ .slot-edit-overlay:hover {
723
+ background: #3b82f608;
724
+ }
725
+
726
+ .slot-edit-overlay:active {
727
+ cursor: grabbing;
728
+ }
729
+
730
+ .drag-indicator, .slot-position-label {
731
+ display: none;
732
+ }
733
+
734
+ .edit-mode-toggle {
735
+ position: absolute;
736
+ z-index: 1000;
737
+ color: #374151;
738
+ cursor: pointer;
739
+ background: #fff;
740
+ border: 1px solid #e5e7eb;
741
+ border-radius: 8px;
742
+ padding: 8px 16px;
743
+ transition: all .2s;
744
+ font-size: 14px;
745
+ font-weight: 500;
746
+ top: 16px;
747
+ right: 16px;
748
+ box-shadow: 0 2px 4px #0000001a;
749
+ }
750
+
751
+ .edit-mode-toggle:hover {
752
+ background: #f9fafb;
753
+ box-shadow: 0 4px 6px #0000001a;
754
+ }
755
+
756
+ .edit-mode-toggle.active {
757
+ color: #fff;
758
+ background: #3b82f6;
759
+ border-color: #2563eb;
760
+ }
761
+
762
+ .edit-mode-overlay {
763
+ position: fixed;
764
+ z-index: 998;
765
+ animation: fadeIn .2s ease;
766
+ background: #0000004d;
767
+ inset: 0;
768
+ }
769
+
770
+ @keyframes fadeIn {
771
+ 0% {
772
+ opacity: 0;
773
+ }
774
+
775
+ to {
776
+ opacity: 1;
777
+ }
778
+ }
779
+
780
+ .edit-mode-configurator {
781
+ position: relative;
782
+ z-index: 999;
783
+ animation: scaleIn .3s ease;
784
+ padding: 20px;
785
+ }
786
+
787
+ .panel-slot {
788
+ position: relative;
789
+ border: 2px dashed #0000;
790
+ border-radius: 12px;
791
+ min-height: 120px;
792
+ padding: 12px;
793
+ transition: all .3s;
794
+ }
795
+
796
+ .panel-slot.edit-mode {
797
+ background: #ffffff80;
798
+ border-color: #d1d5db;
799
+ }
800
+
801
+ .panel-slot.drag-over {
802
+ background: #3b82f61a;
803
+ border-color: #3b82f6;
804
+ box-shadow: 0 0 0 4px #3b82f61a;
805
+ }
806
+
807
+ .panel-slot.empty {
808
+ display: flex;
809
+ color: #9ca3af;
810
+ justify-content: center;
811
+ align-items: center;
812
+ font-size: 14px;
813
+ }
814
+
815
+ .draggable-panel {
816
+ position: relative;
817
+ cursor: grab;
818
+ -webkit-user-select: none;
819
+ user-select: none;
820
+ background: #fff;
821
+ border: 1px solid #e5e7eb;
822
+ border-radius: 8px;
823
+ margin: 8px 0;
824
+ padding: 12px 16px;
825
+ transition: all .2s;
826
+ }
827
+
828
+ .draggable-panel:hover {
829
+ border-color: #3b82f6;
830
+ box-shadow: 0 2px 8px #0000001a;
831
+ }
832
+
833
+ .draggable-panel.dragging {
834
+ opacity: .5;
835
+ cursor: grabbing;
836
+ }
837
+
838
+ .draggable-panel.edit-mode {
839
+ animation: wiggle .4s ease-in-out infinite;
840
+ transform-origin: center;
841
+ }
842
+
843
+ .draggable-panel.edit-mode:nth-child(odd) {
844
+ animation-delay: .1s;
845
+ }
846
+
847
+ .draggable-panel.edit-mode:nth-child(2n) {
848
+ animation-delay: .2s;
849
+ }
850
+
851
+ .remove-button {
852
+ position: absolute;
853
+ color: #fff;
854
+ display: flex;
855
+ cursor: pointer;
856
+ opacity: 0;
857
+ z-index: 10;
858
+ background: #ef4444;
859
+ border: 2px solid #fff;
860
+ border-radius: 50%;
861
+ justify-content: center;
862
+ align-items: center;
863
+ width: 20px;
864
+ height: 20px;
865
+ transition: all .2s;
866
+ font-size: 12px;
867
+ font-weight: 700;
868
+ top: -6px;
869
+ right: -6px;
870
+ transform: scale(0);
871
+ box-shadow: 0 2px 4px #0003;
872
+ }
873
+
874
+ .draggable-panel.edit-mode .remove-button {
875
+ opacity: 1;
876
+ animation: pulse 2s infinite;
877
+ transform: scale(1);
878
+ }
879
+
880
+ .remove-button:hover {
881
+ background: #dc2626;
882
+ transform: scale(1.1);
883
+ }
884
+
885
+ .panel-label {
886
+ display: flex;
887
+ color: #374151;
888
+ align-items: center;
889
+ gap: 8px;
890
+ font-size: 14px;
891
+ font-weight: 500;
892
+ }
893
+
894
+ .panel-icon {
895
+ display: flex;
896
+ justify-content: center;
897
+ align-items: center;
898
+ width: 20px;
899
+ height: 20px;
900
+ }
901
+
902
+ .drag-handle {
903
+ display: none;
904
+ opacity: .4;
905
+ cursor: grab;
906
+ width: 24px;
907
+ height: 24px;
908
+ }
909
+
910
+ .edit-mode .drag-handle {
911
+ display: flex;
912
+ justify-content: center;
913
+ align-items: center;
914
+ }
915
+
916
+ .drag-overlay {
917
+ cursor: grabbing;
918
+ opacity: .9;
919
+ background: #fff;
920
+ border: 2px solid #3b82f6;
921
+ border-radius: 8px;
922
+ padding: 12px 16px;
923
+ box-shadow: 0 8px 16px #0003;
924
+ }
925
+
926
+ .panel-group {
927
+ background: #fff;
928
+ border: 2px solid #e5e7eb;
929
+ border-radius: 12px;
930
+ padding: 8px;
931
+ }
932
+
933
+ .panel-group.edit-mode {
934
+ animation: wiggle .5s ease-in-out infinite;
935
+ border-color: #3b82f6;
936
+ }
937
+
938
+ .panel-group-header {
939
+ display: flex;
940
+ border-bottom: 1px solid #e5e7eb;
941
+ justify-content: space-between;
942
+ align-items: center;
943
+ margin-bottom: 8px;
944
+ padding: 8px;
945
+ }
946
+
947
+ .panel-group-title {
948
+ color: #6b7280;
949
+ text-transform: uppercase;
950
+ font-size: 12px;
951
+ font-weight: 600;
952
+ }
953
+
954
+ .available-panels {
955
+ background: #fff;
956
+ border-radius: 12px;
957
+ padding: 16px;
958
+ box-shadow: 0 4px 6px #0000001a;
959
+ }
960
+
961
+ .available-panels-title {
962
+ color: #374151;
963
+ margin-bottom: 12px;
964
+ font-size: 16px;
965
+ font-weight: 600;
966
+ }
967
+
968
+ .available-panels-list {
969
+ display: flex;
970
+ flex-direction: column;
971
+ gap: 8px;
972
+ }
973
+
974
+ .slot-label {
975
+ color: #6b7280;
976
+ text-transform: uppercase;
977
+ display: flex;
978
+ align-items: center;
979
+ gap: 8px;
980
+ margin-bottom: 8px;
981
+ font-size: 12px;
982
+ font-weight: 600;
983
+ }
984
+
985
+ .slot-indicator {
986
+ background: #d1d5db;
987
+ border-radius: 50%;
988
+ width: 8px;
989
+ height: 8px;
990
+ }
991
+
992
+ .slot-indicator.active {
993
+ background: #3b82f6;
994
+ }
995
+
996
+ .action-buttons {
997
+ position: fixed;
998
+ z-index: 1001;
999
+ display: flex;
1000
+ animation: scaleIn .3s ease;
1001
+ background: #fff;
1002
+ border-radius: 12px;
1003
+ gap: 12px;
1004
+ padding: 12px 24px;
1005
+ bottom: 24px;
1006
+ left: 50%;
1007
+ transform: translate(-50%);
1008
+ box-shadow: 0 8px 16px #00000026;
1009
+ }
1010
+
1011
+ .action-button {
1012
+ color: #374151;
1013
+ cursor: pointer;
1014
+ background: #fff;
1015
+ border: 1px solid #e5e7eb;
1016
+ border-radius: 8px;
1017
+ padding: 10px 20px;
1018
+ transition: all .2s;
1019
+ font-size: 14px;
1020
+ font-weight: 500;
1021
+ }
1022
+
1023
+ .action-button:hover {
1024
+ background: #f9fafb;
1025
+ }
1026
+
1027
+ .action-button.primary {
1028
+ color: #fff;
1029
+ background: #3b82f6;
1030
+ border-color: #2563eb;
1031
+ }
1032
+
1033
+ .action-button.primary:hover {
1034
+ background: #2563eb;
1035
+ }
1036
+
1037
+ @media (max-width: 768px) {
1038
+ .edit-mode-toggle {
1039
+ padding: 6px 12px;
1040
+ font-size: 12px;
1041
+ top: 8px;
1042
+ right: 8px;
1043
+ }
1044
+
1045
+ .action-buttons {
1046
+ padding: 10px 16px;
1047
+ bottom: 16px;
1048
+ }
1049
+
1050
+ .action-button {
1051
+ padding: 8px 16px;
1052
+ font-size: 13px;
1053
+ }
1054
+ }
1055
+
1056
+ @media (prefers-color-scheme: dark) {
1057
+ .edit-mode-toggle {
1058
+ color: #f9fafb;
1059
+ background: #1f2937;
1060
+ border-color: #374151;
1061
+ }
1062
+
1063
+ .edit-mode-toggle:hover {
1064
+ background: #374151;
1065
+ }
1066
+
1067
+ .draggable-panel {
1068
+ color: #f9fafb;
1069
+ background: #1f2937;
1070
+ border-color: #374151;
1071
+ }
1072
+
1073
+ .available-panels {
1074
+ background: #1f2937;
1075
+ }
1076
+
1077
+ .panel-label {
1078
+ color: #f9fafb;
1079
+ }
1080
+
1081
+ .action-buttons {
1082
+ background: #1f2937;
1083
+ }
1084
+
1085
+ .action-button {
1086
+ color: #f9fafb;
1087
+ background: #1f2937;
1088
+ border-color: #374151;
1089
+ }
1090
+
1091
+ .action-button:hover {
1092
+ background: #374151;
1093
+ }
1094
+ }
1095
+
1096
+ .panel-configurator {
1097
+ display: flex;
1098
+ background: var(--configurator-bg);
1099
+ border-radius: 8px;
1100
+ flex-direction: column;
1101
+ gap: 2rem;
1102
+ padding: 1.5rem;
1103
+ font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;
1104
+ }
1105
+
1106
+ .configurator-section {
1107
+ display: flex;
1108
+ flex-direction: column;
1109
+ gap: 1rem;
1110
+ }
1111
+
1112
+ .section-title {
1113
+ color: var(--configurator-title);
1114
+ text-transform: uppercase;
1115
+ letter-spacing: .05em;
1116
+ text-align: center;
1117
+ margin: 0;
1118
+ font-size: .875rem;
1119
+ font-weight: 600;
1120
+ }
1121
+
1122
+ .slots-container {
1123
+ display: grid;
1124
+ grid-template-columns: repeat(3, 1fr);
1125
+ align-items: start;
1126
+ gap: 1rem;
1127
+ width: 75%;
1128
+ margin: 0 auto;
1129
+ }
1130
+
1131
+ .slot {
1132
+ position: relative;
1133
+ aspect-ratio: 1 / 1.3;
1134
+ background: var(--slot-bg);
1135
+ border: 2px solid var(--slot-border);
1136
+ cursor: pointer;
1137
+ display: flex;
1138
+ overflow: hidden;
1139
+ box-sizing: border-box;
1140
+ border-radius: 6px;
1141
+ flex-direction: column;
1142
+ gap: .5rem;
1143
+ width: 100%;
1144
+ padding: 2.5rem 1rem 1rem;
1145
+ transition: all .2s;
1146
+ }
1147
+
1148
+ .slot:hover {
1149
+ border-color: var(--slot-border-hover);
1150
+ box-shadow: 0 2px 4px #0000000d;
1151
+ }
1152
+
1153
+ .slot.selected {
1154
+ border-color: var(--slot-border-selected);
1155
+ background: var(--slot-bg-selected);
1156
+ box-shadow: 0 0 0 3px var(--slot-bg-selected);
1157
+ }
1158
+
1159
+ .slot.empty {
1160
+ border-style: dashed;
1161
+ }
1162
+
1163
+ .slot-label {
1164
+ color: var(--slot-label);
1165
+ text-transform: capitalize;
1166
+ text-align: left;
1167
+ font-size: .75rem;
1168
+ font-weight: 600;
1169
+ }
1170
+
1171
+ .slot[data-position="middle"] .slot-label, .slot[data-position="middle"] .slot-panel-name, .slot[data-position="middle"] .slot-empty-state {
1172
+ text-align: center;
1173
+ }
1174
+
1175
+ .slot[data-position="right"] .slot-label, .slot[data-position="right"] .slot-panel-name, .slot[data-position="right"] .slot-empty-state {
1176
+ text-align: right;
1177
+ }
1178
+
1179
+ .slot-content {
1180
+ display: flex;
1181
+ overflow-y: auto;
1182
+ flex-direction: column;
1183
+ flex: 1;
1184
+ gap: .5rem;
1185
+ min-height: 0;
1186
+ }
1187
+
1188
+ .slot-panel-name {
1189
+ color: var(--slot-content-text);
1190
+ font-size: .875rem;
1191
+ font-weight: 600;
1192
+ }
1193
+
1194
+ .slot-preview {
1195
+ display: flex;
1196
+ background: var(--slot-preview-bg);
1197
+ border: 1px solid var(--slot-preview-border);
1198
+ color: var(--slot-preview-text);
1199
+ border-radius: 4px;
1200
+ flex: 1;
1201
+ justify-content: center;
1202
+ align-items: center;
1203
+ padding: .5rem;
1204
+ font-size: .75rem;
1205
+ }
1206
+
1207
+ .slot-empty-state {
1208
+ display: flex;
1209
+ color: var(--slot-empty-text);
1210
+ flex: 1;
1211
+ justify-content: center;
1212
+ align-items: center;
1213
+ min-height: 0;
1214
+ font-size: .875rem;
1215
+ font-style: italic;
1216
+ }
1217
+
1218
+ .slot-clear-btn {
1219
+ position: absolute;
1220
+ background: var(--clear-btn-bg);
1221
+ color: var(--clear-btn-text);
1222
+ cursor: pointer;
1223
+ display: flex;
1224
+ opacity: 0;
1225
+ border: none;
1226
+ border-radius: 4px;
1227
+ justify-content: center;
1228
+ align-items: center;
1229
+ width: 24px;
1230
+ height: 24px;
1231
+ padding: 0;
1232
+ transition: opacity .2s;
1233
+ font-size: 1.25rem;
1234
+ line-height: 1;
1235
+ top: .25rem;
1236
+ right: .25rem;
1237
+ }
1238
+
1239
+ .slot:hover .slot-clear-btn {
1240
+ opacity: 1;
1241
+ }
1242
+
1243
+ .slot-clear-btn:hover {
1244
+ background: var(--clear-btn-hover);
1245
+ transform: scale(1.1);
1246
+ }
1247
+
1248
+ .available-panels {
1249
+ display: grid;
1250
+ grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
1251
+ gap: .75rem;
1252
+ width: 75%;
1253
+ margin: 0 auto;
1254
+ }
1255
+
1256
+ .available-panel {
1257
+ background: var(--panel-bg);
1258
+ border: 2px solid var(--panel-border);
1259
+ cursor: pointer;
1260
+ display: flex;
1261
+ border-radius: 6px;
1262
+ flex-direction: column;
1263
+ gap: .5rem;
1264
+ min-height: 80px;
1265
+ padding: .75rem;
1266
+ transition: all .2s;
1267
+ }
1268
+
1269
+ .available-panel:hover {
1270
+ border-color: var(--panel-border-hover);
1271
+ transform: translateY(-2px);
1272
+ box-shadow: 0 2px 4px #0000000d;
1273
+ }
1274
+
1275
+ .available-panel.selected {
1276
+ border-color: var(--panel-border-selected);
1277
+ background: var(--panel-bg-selected);
1278
+ box-shadow: 0 0 0 3px var(--panel-bg-selected);
1279
+ }
1280
+
1281
+ .available-panel.in-use {
1282
+ opacity: .5;
1283
+ border-style: dashed;
1284
+ }
1285
+
1286
+ .available-panel.in-use:hover {
1287
+ opacity: .6;
1288
+ transform: translateY(0);
1289
+ }
1290
+
1291
+ .panel-label {
1292
+ color: var(--panel-label-text);
1293
+ font-size: .875rem;
1294
+ font-weight: 600;
1295
+ }
1296
+
1297
+ .panel-preview {
1298
+ display: flex;
1299
+ background: var(--panel-preview-bg);
1300
+ color: var(--panel-preview-text);
1301
+ border-radius: 4px;
1302
+ flex: 1;
1303
+ justify-content: center;
1304
+ align-items: center;
1305
+ padding: .5rem;
1306
+ font-size: .75rem;
1307
+ }
1308
+
1309
+ .selection-hint {
1310
+ background: var(--hint-bg);
1311
+ border: 1px solid var(--hint-border);
1312
+ color: var(--hint-text);
1313
+ text-align: center;
1314
+ border-radius: 6px;
1315
+ padding: .75rem 1rem;
1316
+ font-size: .875rem;
1317
+ }
1318
+
1319
+ .available-panel.multi-selected {
1320
+ border-color: var(--panel-border-selected);
1321
+ background: var(--panel-bg-selected);
1322
+ box-shadow: 0 0 0 2px var(--panel-bg-selected);
1323
+ }
1324
+
1325
+ .multi-select-badge {
1326
+ background: var(--panel-border-selected);
1327
+ color: #fff;
1328
+ border-radius: 12px;
1329
+ margin-left: .5rem;
1330
+ padding: .25rem .5rem;
1331
+ font-size: .75rem;
1332
+ font-weight: 400;
1333
+ }
1334
+
1335
+ .multi-select-hint {
1336
+ background: var(--panel-bg-selected);
1337
+ border-color: var(--panel-border-selected);
1338
+ }
1339
+
1340
+ .slot.tab-group {
1341
+ border-style: solid;
1342
+ }
1343
+
1344
+ .group-content {
1345
+ position: relative;
1346
+ overflow-y: auto;
1347
+ min-height: 0;
1348
+ }
1349
+
1350
+ .group-badge {
1351
+ color: var(--panel-border-selected);
1352
+ margin-bottom: .5rem;
1353
+ font-size: .75rem;
1354
+ font-weight: 600;
1355
+ }
1356
+
1357
+ .group-panels {
1358
+ display: flex;
1359
+ overflow-y: auto;
1360
+ flex-direction: column;
1361
+ flex: 1;
1362
+ gap: .25rem;
1363
+ min-height: 0;
1364
+ }
1365
+
1366
+ .group-panel-label {
1367
+ color: var(--slot-content-text);
1368
+ background: var(--slot-preview-bg);
1369
+ border-left: 3px solid var(--panel-border-selected);
1370
+ border-radius: 3px;
1371
+ padding: .25rem .5rem;
1372
+ font-size: .75rem;
1373
+ }
1374
+
1375
+ .slot-panel-label {
1376
+ color: var(--slot-content-text);
1377
+ text-align: center;
1378
+ font-size: .875rem;
1379
+ font-weight: 600;
1380
+ }
1381
+
1382
+ .create-tab-group-btn {
1383
+ background: var(--panel-border-selected);
1384
+ color: #fff;
1385
+ cursor: pointer;
1386
+ border: none;
1387
+ border-radius: 4px;
1388
+ margin-top: .5rem;
1389
+ padding: .5rem .75rem;
1390
+ transition: all .2s;
1391
+ font-size: .75rem;
1392
+ font-weight: 600;
1393
+ }
1394
+
1395
+ .create-tab-group-btn:hover {
1396
+ transform: scale(1.05);
1397
+ box-shadow: 0 2px 4px #0000001a;
1398
+ }
1399
+
1400
+ .tab-mode-toggle {
1401
+ position: absolute;
1402
+ background: var(--slot-bg);
1403
+ border: 1px solid var(--slot-border);
1404
+ cursor: pointer;
1405
+ z-index: 10;
1406
+ opacity: .7;
1407
+ color: var(--slot-content-text);
1408
+ border-radius: 4px;
1409
+ padding: .25rem .5rem;
1410
+ transition: all .2s;
1411
+ font-size: .85rem;
1412
+ top: .5rem;
1413
+ left: .5rem;
1414
+ }
1415
+
1416
+ .tab-mode-toggle svg {
1417
+ display: block;
1418
+ }
1419
+
1420
+ .tab-mode-toggle:hover {
1421
+ opacity: 1;
1422
+ border-color: var(--slot-border-hover);
1423
+ background: var(--slot-preview-bg);
1424
+ }
1425
+
1426
+ .tab-mode-toggle.active {
1427
+ opacity: 1;
1428
+ background: var(--panel-border-selected);
1429
+ color: #fff;
1430
+ border-color: var(--panel-border-selected);
1431
+ }
1432
+
1433
+ .tab-config-controls {
1434
+ margin-bottom: .5rem;
1435
+ }
1436
+
1437
+ .tab-config-label {
1438
+ display: flex;
1439
+ color: var(--slot-label);
1440
+ align-items: center;
1441
+ gap: .5rem;
1442
+ font-size: .75rem;
1443
+ }
1444
+
1445
+ .tab-config-label select {
1446
+ border: 1px solid var(--slot-border);
1447
+ background: var(--slot-bg);
1448
+ color: var(--slot-content-text);
1449
+ cursor: pointer;
1450
+ border-radius: 3px;
1451
+ padding: .25rem .5rem;
1452
+ font-size: .7rem;
1453
+ }
1454
+
1455
+ .group-panel-item {
1456
+ display: flex;
1457
+ background: var(--slot-preview-bg);
1458
+ border-left: 3px solid var(--panel-border-selected);
1459
+ border-radius: 3px;
1460
+ justify-content: space-between;
1461
+ align-items: center;
1462
+ gap: .5rem;
1463
+ padding: .25rem .5rem;
1464
+ }
1465
+
1466
+ .group-panel-label {
1467
+ color: var(--slot-content-text);
1468
+ display: flex;
1469
+ flex: 1;
1470
+ align-items: center;
1471
+ gap: .25rem;
1472
+ font-size: .75rem;
1473
+ }
1474
+
1475
+ .default-badge {
1476
+ color: var(--panel-border-selected);
1477
+ font-size: .9em;
1478
+ }
1479
+
1480
+ .remove-from-group-btn {
1481
+ background: var(--clear-btn-bg);
1482
+ color: var(--clear-btn-text);
1483
+ cursor: pointer;
1484
+ display: flex;
1485
+ opacity: .7;
1486
+ border: none;
1487
+ border-radius: 3px;
1488
+ justify-content: center;
1489
+ align-items: center;
1490
+ width: 18px;
1491
+ height: 18px;
1492
+ padding: 0;
1493
+ transition: all .2s;
1494
+ font-size: 1rem;
1495
+ line-height: 1;
1496
+ }
1497
+
1498
+ .remove-from-group-btn:hover {
1499
+ opacity: 1;
1500
+ transform: scale(1.1);
1501
+ }
1502
+
1503
+ .usage-hint {
1504
+ background: var(--slot-preview-bg);
1505
+ border: 1px solid var(--slot-border);
1506
+ color: var(--hint-text);
1507
+ text-align: center;
1508
+ border-radius: 6px;
1509
+ padding: .75rem 1rem;
1510
+ font-size: .875rem;
1511
+ }
1512
+
1513
+ .tab-group {
1514
+ display: flex;
1515
+ overflow: hidden;
1516
+ width: 100%;
1517
+ height: 100%;
1518
+ }
1519
+
1520
+ .tab-group.tab-position-top, .tab-group.tab-position-bottom {
1521
+ flex-direction: column;
1522
+ }
1523
+
1524
+ .tab-group.tab-position-left, .tab-group.tab-position-right {
1525
+ flex-direction: row;
1526
+ }
1527
+
1528
+ .tab-list {
1529
+ display: flex;
1530
+ background: var(--tab-list-bg, #f5f5f5);
1531
+ border-bottom: 1px solid var(--tab-border, #ddd);
1532
+ overflow-x: auto;
1533
+ overflow-y: hidden;
1534
+ scrollbar-width: none;
1535
+ -ms-overflow-style: none;
1536
+ flex-shrink: 0;
1537
+ gap: 0;
1538
+ padding: 0;
1539
+ }
1540
+
1541
+ .tab-list::-webkit-scrollbar {
1542
+ display: none;
1543
+ }
1544
+
1545
+ .tab-position-top .tab-list, .tab-position-bottom .tab-list {
1546
+ width: 100%;
1547
+ }
1548
+
1549
+ .tab-list.centered {
1550
+ justify-content: flex-start;
1551
+ }
1552
+
1553
+ @media (min-width: 0) {
1554
+ .tab-list.centered {
1555
+ justify-content: center;
1556
+ }
1557
+
1558
+ .tab-list.centered:has(.tab-button:nth-child(n)) {
1559
+ justify-content: flex-start;
1560
+ }
1561
+ }
1562
+
1563
+ .tab-position-bottom .tab-list {
1564
+ border-top: none;
1565
+ border-bottom: none;
1566
+ }
1567
+
1568
+ .tab-position-left .tab-list, .tab-position-right .tab-list {
1569
+ border-bottom: none;
1570
+ border-right: none;
1571
+ flex-direction: column;
1572
+ width: auto;
1573
+ min-width: 120px;
1574
+ }
1575
+
1576
+ .tab-position-top .tab-button, .tab-position-bottom .tab-button {
1577
+ flex: 1 1 0;
1578
+ min-width: 40px;
1579
+ max-width: 100%;
1580
+ }
1581
+
1582
+ .tab-button {
1583
+ background: var(--tab-bg, #fff);
1584
+ border: 1px solid var(--tab-border, #ddd);
1585
+ cursor: pointer;
1586
+ font-family: var(--tab-font-family, inherit);
1587
+ font-size: var(--tab-font-size, 14px);
1588
+ font-weight: var(--tab-font-weight, 500);
1589
+ color: var(--tab-text, #333);
1590
+ white-space: nowrap;
1591
+ display: flex;
1592
+ box-sizing: border-box;
1593
+ container-type: inline-size;
1594
+ border-radius: 0;
1595
+ justify-content: center;
1596
+ align-items: center;
1597
+ gap: 6px;
1598
+ height: 39px;
1599
+ padding: 8px 16px;
1600
+ transition: all .2s;
1601
+ line-height: 1;
1602
+ }
1603
+
1604
+ .tab-position-top .tab-button {
1605
+ border-top: none;
1606
+ border-bottom: none;
1607
+ border-left: none;
1608
+ }
1609
+
1610
+ .tab-position-top .tab-button:last-child {
1611
+ border-right: none;
1612
+ }
1613
+
1614
+ .tab-position-bottom .tab-button {
1615
+ border-top: none;
1616
+ border-bottom: none;
1617
+ border-left: none;
1618
+ }
1619
+
1620
+ .tab-position-bottom .tab-button:last-child {
1621
+ border-right: none;
1622
+ }
1623
+
1624
+ .tab-position-left .tab-button {
1625
+ border-bottom: none;
1626
+ border-right: none;
1627
+ }
1628
+
1629
+ .tab-position-left .tab-button:last-child {
1630
+ border-bottom: 1px solid var(--tab-border, #ddd);
1631
+ }
1632
+
1633
+ .tab-position-right .tab-button {
1634
+ border-bottom: none;
1635
+ border-left: none;
1636
+ }
1637
+
1638
+ .tab-position-right .tab-button:last-child {
1639
+ border-bottom: 1px solid var(--tab-border, #ddd);
1640
+ }
1641
+
1642
+ .tab-icon {
1643
+ display: inline-flex;
1644
+ justify-content: center;
1645
+ align-items: center;
1646
+ }
1647
+
1648
+ .tab-label {
1649
+ display: none;
1650
+ }
1651
+
1652
+ @container (width >= 100px) {
1653
+ .tab-label {
1654
+ display: inline;
1655
+ }
1656
+
1657
+ .tab-icon {
1658
+ display: none;
1659
+ }
1660
+ }
1661
+
1662
+ .tab-button:hover {
1663
+ background: var(--tab-bg-hover, #f9f9f9);
1664
+ }
1665
+
1666
+ .tab-button.active {
1667
+ background: var(--tab-bg-active, #007bff);
1668
+ color: var(--tab-text-active, #fff);
1669
+ border-color: var(--tab-border-active, #007bff);
1670
+ }
1671
+
1672
+ .tab-button:focus-visible {
1673
+ outline: 2px solid var(--tab-focus, #007bff);
1674
+ outline-offset: 2px;
1675
+ }
1676
+
1677
+ .tab-content {
1678
+ overflow: auto;
1679
+ background: var(--tab-content-bg, #fff);
1680
+ flex: 1;
1681
+ }
1682
+
1683
+ .tab-group-empty {
1684
+ display: flex;
1685
+ color: var(--tab-empty-text, #999);
1686
+ justify-content: center;
1687
+ align-items: center;
1688
+ height: 100%;
1689
+ font-style: italic;
1690
+ }
1691
+
1692
+ .snap-carousel-container {
1693
+ display: flex;
1694
+ overflow-x: auto;
1695
+ overflow-y: hidden;
1696
+ scroll-snap-type: x mandatory;
1697
+ scroll-behavior: smooth;
1698
+ gap: var(--snap-carousel-gap, 0px);
1699
+ background-color: var(--panel-background);
1700
+ box-sizing: border-box;
1701
+ position: relative;
1702
+ container-type: inline-size;
1703
+ -ms-overflow-style: none;
1704
+ scrollbar-width: none;
1705
+ width: 100%;
1706
+ height: 100%;
1707
+ margin: 0;
1708
+ padding: 0;
1709
+ left: 0;
1710
+ transform: none;
1711
+ }
1712
+
1713
+ .snap-carousel-container::-webkit-scrollbar {
1714
+ display: none;
1715
+ }
1716
+
1717
+ .snap-carousel-container.swipe-disabled {
1718
+ touch-action: pan-y pinch-zoom;
1719
+ overscroll-behavior-x: none;
1720
+ }
1721
+
1722
+ .snap-carousel-panel {
1723
+ scroll-snap-align: start;
1724
+ scroll-snap-stop: always;
1725
+ width: var(--snap-carousel-panel-width, 33.33%);
1726
+ box-sizing: border-box;
1727
+ overflow: hidden;
1728
+ flex: none;
1729
+ height: 100%;
1730
+ }
1731
+
1732
+ @media (max-width: 540px) {
1733
+ .snap-carousel-panel {
1734
+ min-width: 280px;
1735
+ }
1736
+ }
1737
+
1738
+ .mobile-tab-layout {
1739
+ display: flex;
1740
+ overflow: hidden;
1741
+ flex-direction: column;
1742
+ width: 100%;
1743
+ height: 100%;
1744
+ }
1745
+
1746
+ .mobile-tab-content {
1747
+ overflow: hidden;
1748
+ flex: 1;
1749
+ min-height: 0;
1750
+ }
1751
+
1752
+ .mobile-tab-nav {
1753
+ display: flex;
1754
+ background: var(--tab-list-bg, #f5f5f5);
1755
+ border-top: 1px solid var(--tab-border, #ddd);
1756
+ flex-shrink: 0;
1757
+ margin: 0;
1758
+ padding: 0;
1759
+ }
1760
+
1761
+ .mobile-tab-button {
1762
+ display: flex;
1763
+ padding: 14px 4px;
1764
+ padding-bottom: calc(14px + min(12px, env(safe-area-inset-bottom, 0px)));
1765
+ cursor: pointer;
1766
+ font-family: var(--tab-font-family, inherit);
1767
+ font-size: var(--tab-font-size, 11px);
1768
+ font-weight: var(--tab-font-weight, 500);
1769
+ color: var(--tab-text, #666);
1770
+ background: none;
1771
+ border: none;
1772
+ flex-direction: column;
1773
+ flex: 1;
1774
+ justify-content: center;
1775
+ align-items: center;
1776
+ gap: 6px;
1777
+ min-width: 0;
1778
+ transition: color .2s;
1779
+ }
1780
+
1781
+ .mobile-tab-button:hover {
1782
+ color: var(--tab-text-hover, #333);
1783
+ }
1784
+
1785
+ .mobile-tab-button.active {
1786
+ color: var(--mobile-tab-text-active, #007bff);
1787
+ }
1788
+
1789
+ .mobile-tab-button .tab-icon {
1790
+ display: flex;
1791
+ color: var(--tab-icon-color, #999);
1792
+ justify-content: center;
1793
+ align-items: center;
1794
+ transition: color .2s;
1795
+ font-size: 24px;
1796
+ }
1797
+
1798
+ .mobile-tab-button.active .tab-icon {
1799
+ color: var(--mobile-tab-icon-active, #007bff);
1800
+ }
1801
+
1802
+ .mobile-tab-button .tab-label {
1803
+ display: block;
1804
+ white-space: nowrap;
1805
+ overflow: hidden;
1806
+ text-overflow: ellipsis;
1807
+ color: inherit;
1808
+ opacity: 1;
1809
+ max-width: 100%;
1810
+ font-size: 11px;
1811
+ line-height: 1.2;
1812
+ }
1813
+
1814
+ .mobile-tab-button:focus-visible {
1815
+ outline: 2px solid var(--tab-focus, #007bff);
1816
+ outline-offset: -2px;
1817
+ z-index: 1;
1818
+ }
1819
+
1820
+ :root {
1821
+ --panels-background: #fff;
1822
+ --panels-foreground: #000;
1823
+ --panels-border: #e5e7eb;
1824
+ --panels-handle-bg: #f3f4f6;
1825
+ --panels-handle-hover: #e5e7eb;
1826
+ --panels-handle-active: #d1d5db;
1827
+ --panels-button-bg: #fff;
1828
+ --panels-button-hover: #f9fafb;
1829
+ --panels-button-active: #f3f4f6;
1830
+ --panels-shadow: #0000001a;
1831
+ --panels-animation-duration: .3s;
1832
+ --panels-animation-easing: cubic-bezier(.4, 0, .2, 1);
1833
+ }
1834
+
1835
+ @media (prefers-color-scheme: dark) {
1836
+ :root {
1837
+ --panels-background: #1a1a1a;
1838
+ --panels-foreground: #fff;
1839
+ --panels-border: #404040;
1840
+ --panels-handle-bg: #2a2a2a;
1841
+ --panels-handle-hover: #333;
1842
+ --panels-handle-active: #404040;
1843
+ --panels-button-bg: #2a2a2a;
1844
+ --panels-button-hover: #333;
1845
+ --panels-button-active: #404040;
1846
+ --panels-shadow: #0000004d;
1847
+ }
1848
+ }
1849
+
1850
+ [data-theme="light"] {
1851
+ --panels-background: #fff;
1852
+ --panels-foreground: #000;
1853
+ --panels-border: #e5e7eb;
1854
+ --panels-handle-bg: #f3f4f6;
1855
+ --panels-handle-hover: #e5e7eb;
1856
+ --panels-handle-active: #d1d5db;
1857
+ --panels-button-bg: #fff;
1858
+ --panels-button-hover: #f9fafb;
1859
+ --panels-button-active: #f3f4f6;
1860
+ --panels-shadow: #0000001a;
1861
+ }
1862
+
1863
+ [data-theme="dark"] {
1864
+ --panels-background: #1a1a1a;
1865
+ --panels-foreground: #fff;
1866
+ --panels-border: #404040;
1867
+ --panels-handle-bg: #2a2a2a;
1868
+ --panels-handle-hover: #333;
1869
+ --panels-handle-active: #404040;
1870
+ --panels-button-bg: #2a2a2a;
1871
+ --panels-button-hover: #333;
1872
+ --panels-button-active: #404040;
1873
+ --panels-shadow: #0000004d;
1874
+ }
1875
+
1876
+ .panels-container {
1877
+ display: flex;
1878
+ background-color: var(--panels-background);
1879
+ color: var(--panels-foreground);
1880
+ position: relative;
1881
+ width: 100%;
1882
+ height: 100%;
1883
+ }
1884
+
1885
+ .panels-panel {
1886
+ position: relative;
1887
+ overflow: auto;
1888
+ background-color: var(--panels-background);
1889
+ }
1890
+
1891
+ .panels-handle {
1892
+ background-color: var(--panels-handle-bg);
1893
+ position: relative;
1894
+ z-index: 10;
1895
+ transition: background-color .15s;
1896
+ }
1897
+
1898
+ .panels-handle:hover {
1899
+ background-color: var(--panels-handle-hover);
1900
+ }
1901
+
1902
+ .panels-handle:active {
1903
+ background-color: var(--panels-handle-active);
1904
+ }
1905
+
1906
+ .panels-handle-horizontal {
1907
+ cursor: col-resize;
1908
+ width: 8px;
1909
+ }
1910
+
1911
+ .panels-handle-vertical {
1912
+ cursor: row-resize;
1913
+ height: 8px;
1914
+ }
1915
+
1916
+ .panels-handle-collapsed {
1917
+ pointer-events: none;
1918
+ background-color: var(--panels-border) !important;
1919
+ cursor: default !important;
1920
+ width: 1px !important;
1921
+ min-width: 1px !important;
1922
+ }
1923
+
1924
+ .panels-handle-collapsed .panels-collapse-button {
1925
+ pointer-events: auto;
1926
+ }
1927
+
1928
+ .panels-collapse-button {
1929
+ position: absolute;
1930
+ background-color: var(--panels-button-bg);
1931
+ border: 1px solid var(--panels-border);
1932
+ display: flex;
1933
+ cursor: pointer;
1934
+ box-shadow: 0 1px 3px var(--panels-shadow);
1935
+ z-index: 20;
1936
+ border-radius: 4px;
1937
+ justify-content: center;
1938
+ align-items: center;
1939
+ width: 24px;
1940
+ height: 24px;
1941
+ transition: all .15s;
1942
+ top: 50%;
1943
+ left: 50%;
1944
+ transform: translate(-50%, -50%);
1945
+ }
1946
+
1947
+ .panels-collapse-button:hover {
1948
+ background-color: var(--panels-button-hover);
1949
+ transform: translate(-50%, -50%)scale(1.1);
1950
+ }
1951
+
1952
+ .panels-collapse-button:active {
1953
+ background-color: var(--panels-button-active);
1954
+ transform: translate(-50%, -50%)scale(.95);
1955
+ }
1956
+
1957
+ .panels-collapse-button-floating {
1958
+ position: absolute;
1959
+ z-index: 30;
1960
+ left: -12px;
1961
+ }
1962
+
1963
+ .panels-collapse-icon {
1964
+ stroke: var(--panels-foreground);
1965
+ stroke-width: 2;
1966
+ fill: none;
1967
+ width: 16px;
1968
+ height: 16px;
1969
+ transition: transform .15s;
1970
+ }
1971
+
1972
+ .panels-content-fade {
1973
+ transition: opacity var(--panels-animation-duration) var(--panels-animation-easing);
1974
+ }
1975
+
1976
+ .panels-content-fading {
1977
+ opacity: .3;
1978
+ }
1979
+
1980
+ .panels-content-hidden {
1981
+ opacity: 0;
1982
+ }
1983
+
1984
+ .panels-animating {
1985
+ pointer-events: none;
1986
+ }
1987
+
1988
+ @media (max-width: 768px) {
1989
+ .panels-handle-horizontal {
1990
+ width: 4px;
1991
+ }
1992
+
1993
+ .panels-handle-vertical {
1994
+ height: 4px;
1995
+ }
1996
+
1997
+ .panels-collapse-button {
1998
+ width: 20px;
1999
+ height: 20px;
2000
+ }
2001
+
2002
+ .panels-collapse-icon {
2003
+ width: 12px;
2004
+ height: 12px;
2005
+ }
2006
+ }
2007
+
2008
+ .panels-mobile-stack {
2009
+ display: flex;
2010
+ flex-direction: column;
2011
+ gap: 1rem;
2012
+ padding: 1rem;
2013
+ }
2014
+
2015
+ .panels-mobile-panel {
2016
+ border: 1px solid var(--panels-border);
2017
+ border-radius: 8px;
2018
+ padding: 1rem;
2019
+ }
2020
+
2021
+ .panels-tabs-header {
2022
+ display: flex;
2023
+ border-bottom: 1px solid var(--panels-border);
2024
+ background-color: var(--panels-handle-bg);
2025
+ }
2026
+
2027
+ .panels-tab {
2028
+ color: var(--panels-foreground);
2029
+ cursor: pointer;
2030
+ position: relative;
2031
+ background: none;
2032
+ border: none;
2033
+ flex: 1;
2034
+ padding: .75rem 1rem;
2035
+ transition: background-color .15s;
2036
+ }
2037
+
2038
+ .panels-tab:hover {
2039
+ background-color: var(--panels-handle-hover);
2040
+ }
2041
+
2042
+ .panels-tab-active {
2043
+ background-color: var(--panels-background);
2044
+ }
2045
+
2046
+ .panels-tab-active:after {
2047
+ content: "";
2048
+ position: absolute;
2049
+ background-color: var(--panels-foreground);
2050
+ height: 2px;
2051
+ bottom: -1px;
2052
+ left: 0;
2053
+ right: 0;
2054
+ }
2055
+
2056
+ .panels-drawer-toggle {
2057
+ position: fixed;
2058
+ z-index: 100;
2059
+ background-color: var(--panels-button-bg);
2060
+ border: 1px solid var(--panels-border);
2061
+ display: flex;
2062
+ cursor: pointer;
2063
+ box-shadow: 0 2px 8px var(--panels-shadow);
2064
+ border-radius: 8px;
2065
+ justify-content: center;
2066
+ align-items: center;
2067
+ width: 40px;
2068
+ height: 40px;
2069
+ top: 1rem;
2070
+ left: 1rem;
2071
+ }
2072
+
2073
+ .panels-drawer-icon {
2074
+ width: 24px;
2075
+ height: 24px;
2076
+ }
2077
+
2078
+ .panels-drawer {
2079
+ position: fixed;
2080
+ background-color: var(--panels-background);
2081
+ border-right: 1px solid var(--panels-border);
2082
+ transition: transform var(--panels-animation-duration) var(--panels-animation-easing);
2083
+ z-index: 90;
2084
+ overflow-y: auto;
2085
+ width: 300px;
2086
+ top: 0;
2087
+ bottom: 0;
2088
+ left: 0;
2089
+ transform: translate(-100%);
2090
+ }
2091
+
2092
+ .panels-drawer-open {
2093
+ transform: translate(0);
2094
+ }
2095
+
2096
+ .panels-drawer-panel, .panels-main-panel {
2097
+ padding: 4rem 1rem 1rem;
2098
+ }