flexlayout-react 0.8.19 → 0.9.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 (77) hide show
  1. package/README.md +144 -206
  2. package/dist/index.js +6463 -6395
  3. package/package.json +21 -24
  4. package/style/_base.scss +108 -33
  5. package/style/_themes.scss +720 -49
  6. package/style/alpha_dark.css +862 -0
  7. package/style/alpha_dark.css.map +1 -0
  8. package/style/alpha_dark.scss +6 -0
  9. package/style/alpha_light.css +856 -0
  10. package/style/alpha_light.css.map +1 -0
  11. package/style/alpha_light.scss +6 -0
  12. package/style/alpha_rounded.css +811 -0
  13. package/style/alpha_rounded.css.map +1 -0
  14. package/style/alpha_rounded.scss +6 -0
  15. package/style/combined.css +568 -44
  16. package/style/combined.css.map +1 -1
  17. package/style/combined.scss +25 -1
  18. package/style/dark.css +94 -22
  19. package/style/dark.css.map +1 -1
  20. package/style/gray.css +95 -23
  21. package/style/gray.css.map +1 -1
  22. package/style/light.css +95 -20
  23. package/style/light.css.map +1 -1
  24. package/style/rounded.css +106 -25
  25. package/style/rounded.css.map +1 -1
  26. package/style/underline.css +98 -22
  27. package/style/underline.css.map +1 -1
  28. package/types/index.d.ts +14 -14
  29. package/types/model/Actions.d.ts +62 -31
  30. package/types/model/Attributes.d.ts +42 -0
  31. package/types/model/BorderNode.d.ts +11 -11
  32. package/types/model/BorderSet.d.ts +2 -2
  33. package/types/{DropInfo.d.ts → model/DropInfo.d.ts} +2 -2
  34. package/types/model/IDropTarget.d.ts +2 -2
  35. package/types/model/IJsonModel.d.ts +70 -48
  36. package/types/model/Layout.d.ts +41 -0
  37. package/types/model/Model.d.ts +30 -25
  38. package/types/model/Node.d.ts +18 -10
  39. package/types/{Rect.d.ts → model/Rect.d.ts} +6 -4
  40. package/types/model/RowNode.d.ts +15 -14
  41. package/types/model/TabNode.d.ts +15 -21
  42. package/types/model/TabSetNode.d.ts +15 -21
  43. package/types/view/BorderButton.d.ts +4 -3
  44. package/types/view/BorderTab.d.ts +3 -3
  45. package/types/view/BorderTabSet.d.ts +3 -3
  46. package/types/{Types.d.ts → view/CSSClassNames.d.ts} +9 -2
  47. package/types/view/DragContainer.d.ts +6 -4
  48. package/types/view/FloatWindow.d.ts +11 -0
  49. package/types/{I18nLabel.d.ts → view/I18nLabel.d.ts} +1 -0
  50. package/types/view/Icons.d.ts +1 -0
  51. package/types/view/Layout.d.ts +34 -212
  52. package/types/view/Overlay.d.ts +2 -2
  53. package/types/view/PopoutWindow.d.ts +6 -6
  54. package/types/view/PopupMenu.d.ts +2 -2
  55. package/types/view/Row.d.ts +3 -3
  56. package/types/view/Splitter.d.ts +2 -4
  57. package/types/view/Tab.d.ts +3 -4
  58. package/types/view/TabButton.d.ts +3 -3
  59. package/types/view/TabButtonStamp.d.ts +3 -3
  60. package/types/view/TabContentRenderer.d.ts +14 -0
  61. package/types/view/TabLayout.d.ts +12 -0
  62. package/types/view/TabOverflowHook.d.ts +3 -3
  63. package/types/view/TabSet.d.ts +3 -3
  64. package/types/view/Utils.d.ts +7 -4
  65. package/types/view/layout/BorderContainer.d.ts +7 -0
  66. package/types/view/layout/DragDropManager.d.ts +48 -0
  67. package/types/view/layout/EdgeIndicators.d.ts +5 -0
  68. package/types/view/layout/FloatingWindowContainer.d.ts +5 -0
  69. package/types/view/layout/LayoutInternal.d.ts +151 -0
  70. package/types/view/layout/LayoutTypes.d.ts +51 -0
  71. package/types/Attribute.d.ts +0 -25
  72. package/types/AttributeDefinitions.d.ts +0 -18
  73. package/types/model/Action.d.ts +0 -5
  74. package/types/model/LayoutWindow.d.ts +0 -44
  75. package/types/view/SizeTracker.d.ts +0 -13
  76. /package/types/{DockLocation.d.ts → model/DockLocation.d.ts} +0 -0
  77. /package/types/{Orientation.d.ts → model/Orientation.d.ts} +0 -0
@@ -15,8 +15,9 @@
15
15
  $color_drag1_background: rgba(95, 134, 196, 0.1) !default;
16
16
  $color_drag2_background: rgba(119, 166, 119, 0.075) !default;
17
17
 
18
- $font-size: medium !default;
19
- $font-family: Roboto, Arial, sans-serif !default;
18
+ $font_size: medium !default;
19
+ $font_family: Roboto, Arial, sans-serif !default;
20
+ $font_weight: normal !default;
20
21
 
21
22
  .flexlayout {
22
23
  &__layout {
@@ -36,6 +37,11 @@
36
37
 
37
38
  --font-size: #{$font_size};
38
39
  --font-family: #{$font_family};
40
+ --font-weight: #{$font_weight};
41
+
42
+ --splitter-size: 8px;
43
+ --splitter-active-size: 8px;
44
+ --splitter-handle-visibility: hidden;
39
45
 
40
46
  --color-overflow: gray;
41
47
  --color-icon: gray;
@@ -45,9 +51,6 @@
45
51
  --color-tabset-background-maximized: var(--color-2);
46
52
  --color-tabset-divider-line: var(--color-4);
47
53
 
48
- --color-tabset-header-background: var(--color-background);
49
- --color-tabset-header: var(--color-text);
50
-
51
54
  --color-border-tab-content: var(--color-background);
52
55
  --color-border-background: var(--color-background);
53
56
  --color-border-divider-line: var(--color-4);
@@ -68,6 +71,7 @@
68
71
  --color-splitter: var(--color-1);
69
72
  --color-splitter-hover: var(--color-4);
70
73
  --color-splitter-drag: var(--color-4);
74
+ --color-splitter-handle: var(--color-3);
71
75
 
72
76
  --color-drag-rect-border: #ccc;
73
77
  --color-drag-rect-background: var(--color-5);
@@ -75,7 +79,7 @@
75
79
 
76
80
  --color-popup-border: var(--color-6);
77
81
  --color-popup-unselected: var(--color-text);
78
- --color-popup-unselected-background: #{$color_background};
82
+ --color-popup-unselected-background: var(--color-background);
79
83
  --color-popup-selected: var(--color-text);
80
84
  --color-popup-selected-background: var(--color-3);
81
85
 
@@ -87,12 +91,13 @@
87
91
  --size-mini-scroll-indicator: 3px;
88
92
 
89
93
  --color-toolbar-button-hover: var(--color-3);
94
+ --color-float-window-header-background: var(--color-tabset-background);
90
95
  }
91
96
  }
92
97
  }
93
98
 
94
99
  @mixin light_theme_overrides {
95
- /*
100
+ /*
96
101
  light theme overrides
97
102
  */
98
103
 
@@ -113,8 +118,9 @@
113
118
  $color_drag1_background: rgba(128, 128, 128, 0.15) !default;
114
119
  $color_drag2_background: rgba(128, 128, 128, 0.15) !default;
115
120
 
116
- $font-size: medium !default;
117
- $font-family: Roboto, Arial, sans-serif !default;
121
+ $font_size: medium !default;
122
+ $font_family: Roboto, Arial, sans-serif !default;
123
+ $font_weight: normal !default;
118
124
 
119
125
  .flexlayout {
120
126
  &__layout {
@@ -134,6 +140,11 @@
134
140
 
135
141
  --font-size: #{$font_size};
136
142
  --font-family: #{$font_family};
143
+ --font-weight: #{$font_weight};
144
+
145
+ --splitter-size: 8px;
146
+ --splitter-active-size: 8px;
147
+ --splitter-handle-visibility: hidden;
137
148
 
138
149
  --color-overflow: gray;
139
150
  --color-icon: gray;
@@ -143,9 +154,6 @@
143
154
  --color-tabset-background-maximized: var(--color-6);
144
155
  --color-tabset-divider-line: var(--color-4);
145
156
 
146
- --color-tabset-header-background: var(--color-1);
147
- --color-tabset-header: var(--color-text);
148
-
149
157
  --color-border-tab-content: var(--color-background);
150
158
  --color-border-background: var(--color-1);
151
159
  --color-border-divider-line: var(--color-4);
@@ -166,6 +174,7 @@
166
174
  --color-splitter: var(--color-2);
167
175
  --color-splitter-hover: var(--color-4);
168
176
  --color-splitter-drag: var(--color-5);
177
+ --color-splitter-handle: var(--color-3);
169
178
 
170
179
  --color-drag-rect-border: var(--color-4);
171
180
  --color-drag-rect-background: var(--color-1);
@@ -185,19 +194,17 @@
185
194
  --size-mini-scroll-indicator: 3px;
186
195
 
187
196
  --color-toolbar-button-hover: var(--color-4);
197
+ --color-float-window-header-background: var(--color-tabset-background);
188
198
  }
189
199
  }
190
200
  }
191
201
 
192
202
  @mixin dark_theme_overrides {
193
- /*
203
+
204
+ /*
194
205
  dark theme overrides
195
206
  */
196
207
  .flexlayout {
197
- &__tabset_header {
198
- box-shadow: inset 0 0 3px 0 rgba(136, 136, 136, 0.54);
199
- }
200
-
201
208
  &__tabset-selected {
202
209
  background-image: linear-gradient(var(--color-background), var(--color-4));
203
210
  }
@@ -241,6 +248,7 @@
241
248
  $color_drag2_background: rgba(119, 166, 119, 0.075) !default;
242
249
  $font_size: medium !default;
243
250
  $font_family: Roboto, Arial, sans-serif !default;
251
+ $font_weight: normal;
244
252
 
245
253
  .flexlayout {
246
254
  &__layout {
@@ -260,6 +268,11 @@
260
268
 
261
269
  --font-size: #{$font_size};
262
270
  --font-family: #{$font_family};
271
+ --font-weight: #{$font_weight};
272
+
273
+ --splitter-size: 8px;
274
+ --splitter-active-size: 8px;
275
+ --splitter-handle-visibility: hidden;
263
276
 
264
277
  --color-overflow: gray;
265
278
  --color-icon: gray;
@@ -269,9 +282,6 @@
269
282
  --color-tabset-background-maximized: var(--color-6);
270
283
  --color-tabset-divider-line: var(--color-3);
271
284
 
272
- --color-tabset-header-background: var(--color-1);
273
- --color-tabset-header: var(--color-text);
274
-
275
285
  --color-border-tab-content: var(--color-background);
276
286
  --color-border-background: var(--color-1);
277
287
  --color-border-divider-line: var(--color-3);
@@ -292,6 +302,7 @@
292
302
  --color-splitter: var(--color-2);
293
303
  --color-splitter-hover: var(--color-4);
294
304
  --color-splitter-drag: var(--color-5);
305
+ --color-splitter-handle: var(--color-3);
295
306
 
296
307
  --color-drag-rect-border: var(--color-4);
297
308
  --color-drag-rect-background: var(--color-3);
@@ -299,7 +310,7 @@
299
310
 
300
311
  --color-popup-border: var(--color-6);
301
312
  --color-popup-unselected: var(--color-text);
302
- --color-popup-unselected-background: #{$color_background};
313
+ --color-popup-unselected-background: var(--color-background);
303
314
  --color-popup-selected: var(--color-text);
304
315
  --color-popup-selected-background: var(--color-3);
305
316
 
@@ -311,23 +322,21 @@
311
322
  --size-mini-scroll-indicator: 3px;
312
323
 
313
324
  --color-toolbar-button-hover: var(--color-4);
325
+ --color-float-window-header-background: var(--color-tabset-background);
314
326
  }
315
327
  }
316
328
  }
317
329
 
318
330
  @mixin gray_theme_overrides {
319
- /*
331
+
332
+ /*
320
333
  gray theme overrides
321
- */
334
+ */
322
335
  .flexlayout {
323
336
  &__tabset-selected {
324
337
  background-image: linear-gradient(var(--color-background), var(--color-4));
325
338
  }
326
339
 
327
- &__tabset_header {
328
- box-shadow: inset 0 0 3px 0 rgba(136, 136, 136, 0.54);
329
- }
330
-
331
340
  &__tabset-selected {
332
341
  background-image: linear-gradient(var(--color-background), var(--color-3));
333
342
  }
@@ -370,8 +379,9 @@
370
379
  $color_drag1_background: rgba(95, 134, 196, 0.1) !default;
371
380
  $color_drag2_background: rgba(119, 166, 119, 0.075) !default;
372
381
 
373
- $font-size: medium !default;
374
- $font-family: Roboto, Arial, sans-serif !default;
382
+ $font_size: medium !default;
383
+ $font_family: Roboto, Arial, sans-serif !default;
384
+ $font_weight: normal !default;
375
385
 
376
386
  .flexlayout {
377
387
  &__layout {
@@ -391,6 +401,11 @@
391
401
 
392
402
  --font-size: #{$font_size};
393
403
  --font-family: #{$font_family};
404
+ --font-weight: #{$font_weight};
405
+
406
+ --splitter-size: 8px;
407
+ --splitter-active-size: 8px;
408
+ --splitter-handle-visibility: hidden;
394
409
 
395
410
  --color-overflow: gray;
396
411
  --color-icon: gray;
@@ -400,9 +415,6 @@
400
415
  --color-tabset-background-maximized: var(--color-6);
401
416
  --color-tabset-divider-line: var(--color-3);
402
417
 
403
- --color-tabset-header-background: var(--color-background);
404
- --color-tabset-header: var(--color-text);
405
-
406
418
  --color-border-tab-content: var(--color-background);
407
419
  --color-border-background: var(--color-background);
408
420
  --color-border-divider-line: var(--color-3);
@@ -423,6 +435,7 @@
423
435
  --color-splitter: var(--color-1);
424
436
  --color-splitter-hover: var(--color-4);
425
437
  --color-splitter-drag: var(--color-4);
438
+ --color-splitter-handle: var(--color-3);
426
439
 
427
440
  --color-drag-rect-border: var(--color-6);
428
441
  --color-drag-rect-background: var(--color-4);
@@ -430,7 +443,7 @@
430
443
 
431
444
  --color-popup-border: var(--color-6);
432
445
  --color-popup-unselected: var(--color-text);
433
- --color-popup-unselected-background: #{$color_background};
446
+ --color-popup-unselected-background: var(--color-background);
434
447
  --color-popup-selected: var(--color-text);
435
448
  --color-popup-selected-background: var(--color-3);
436
449
 
@@ -446,12 +459,14 @@
446
459
  --size-mini-scroll-indicator: 4px;
447
460
 
448
461
  --color-toolbar-button-hover: var(--color-3);
462
+ --color-float-window-header-background: var(--color-tabset-background);
449
463
  }
450
464
  }
451
465
  }
452
466
 
453
467
  @mixin underline_theme_overrides {
454
- /*
468
+
469
+ /*
455
470
  underline theme overrides
456
471
  */
457
472
  .flexlayout {
@@ -483,8 +498,9 @@
483
498
  &__tabset_tab_divider,
484
499
  &__border_tab_divider {
485
500
  width: 1px;
486
- margin: 4px 6px 4px 6px;
487
- border-left: 1px solid #ddd;
501
+ height: .8em;
502
+ margin: 0px 6px 0px 6px;
503
+ background-color: #ddd;
488
504
  }
489
505
 
490
506
  &__tab_button_textbox {
@@ -495,7 +511,7 @@
495
511
 
496
512
  @mixin rounded_theme {
497
513
  $color_text: black !default;
498
- $color_background: #f2f6fb !default;
514
+ $color_background: #e9eef6 !default;
499
515
  $color_base: #f2f6fb !default;
500
516
  $color_1: color.adjust($color_base, $lightness: -3%) !default;
501
517
  $color_2: color.adjust($color_1, $lightness: -3%) !default;
@@ -508,8 +524,9 @@
508
524
  $color_drag1_background: rgba(95, 134, 196, 0.1) !default;
509
525
  $color_drag2_background: rgba(119, 166, 119, 0.075) !default;
510
526
 
511
- $font-size: medium !default;
512
- $font-family: Roboto, Arial, sans-serif !default;
527
+ $font_size: medium !default;
528
+ $font_family: Roboto, Arial, sans-serif !default;
529
+ $font_weight: normal !default;
513
530
 
514
531
  .flexlayout {
515
532
  &__layout {
@@ -524,12 +541,17 @@
524
541
  --color-5: #{$color_5};
525
542
  --color-6: #{$color_6};
526
543
  --color-drag1: #{$color_drag1};
527
- --color-drag2: #{$color_drag1};
544
+ --color-drag2: var(--color-drag1);
528
545
  --color-drag1-background: #{$color_drag1_background};
529
- --color-drag2-background: #{$color_drag1_background};
546
+ --color-drag2-background: var(--color-drag1-background);
530
547
 
531
548
  --font-size: #{$font_size};
532
549
  --font-family: #{$font_family};
550
+ --font-weight: #{$font_weight};
551
+
552
+ --splitter-size: 8px;
553
+ --splitter-active-size: 8px;
554
+ --splitter-handle-visibility: hidden;
533
555
 
534
556
  --color-overflow: #999db2;
535
557
  --color-icon: #999db2;
@@ -539,9 +561,6 @@
539
561
  --color-tabset-background-maximized: white;
540
562
  --color-tabset-divider-line: white;
541
563
 
542
- --color-tabset-header-background: var(--color-background);
543
- --color-tabset-header: var(--color-text);
544
-
545
564
  --color-border-tab-content: white;
546
565
  --color-border-background: var(--color-background);
547
566
  --color-border-divider-line: var(--color-background);
@@ -562,6 +581,7 @@
562
581
  --color-splitter: var(--color-background);
563
582
  --color-splitter-hover: var(--color-2);
564
583
  --color-splitter-drag: var(--color-2);
584
+ --color-splitter-handle: var(--color-3);
565
585
 
566
586
  --color-drag-rect-border: #ccc;
567
587
  --color-drag-rect-background: var(--color-5);
@@ -569,7 +589,7 @@
569
589
 
570
590
  --color-popup-border: var(--color-6);
571
591
  --color-popup-unselected: var(--color-text);
572
- --color-popup-unselected-background: #{$color_background};
592
+ --color-popup-unselected-background: var(--color-background);
573
593
  --color-popup-selected: var(--color-text);
574
594
  --color-popup-selected-background: var(--color-3);
575
595
 
@@ -582,12 +602,16 @@
582
602
  --size-mini-scroll-indicator: 4px;
583
603
 
584
604
  --color-toolbar-button-hover: var(--color-2);
605
+ --tab-button-radius: 10px;
606
+ --border-button-radius: 10px;
607
+ --color-float-window-header-background: var(--color-tabset-background);
585
608
  }
586
609
  }
587
610
  }
588
611
 
589
612
  @mixin rounded_theme_overrides {
590
- /*
613
+
614
+ /*
591
615
  rounded theme overrides
592
616
  */
593
617
  .flexlayout {
@@ -611,9 +635,13 @@
611
635
  border-radius: 10px;
612
636
  }
613
637
 
614
- &__tab_button,
638
+ &__tab_button {
639
+ border-radius: var(--tab-button-radius);
640
+ padding: 2px 0.8em;
641
+ }
642
+
615
643
  &__border_button {
616
- border-radius: 10px;
644
+ border-radius: var(--border-button-radius);
617
645
  padding: 2px 0.8em;
618
646
  }
619
647
 
@@ -637,10 +665,653 @@
637
665
  &__tab_button_trailing:hover {
638
666
  background-color: var(--color-3);
639
667
  }
640
-
668
+
641
669
  &__border_button_trailing:hover {
642
670
  background-color: var(--color-3);
643
671
  }
672
+ }
673
+ }
674
+
675
+ @mixin alpha_light_theme {
676
+ $color_text: black !default; // Gray 900
677
+ $color_background: #ffffff !default;
678
+ $color_base: #f9fafb !default; // Gray 50
679
+ $color_1: #ededee !default; // Gray 100
680
+ $color_2: #e5e7eb !default; // Gray 200
681
+ $color_3: #d1d5db !default; // Gray 300
682
+ $color_4: #9ca3af !default; // Gray 400
683
+ $color_5: #6b7280 !default; // Gray 500
684
+ $color_6: #4b5563 !default; // Gray 600
685
+
686
+ $color_drag1: rgb(95, 134, 196) !default;
687
+ $color_drag2: rgb(119, 166, 119) !default;
688
+
689
+ $color_drag1_background: rgba(59, 130, 246, 0.1) !default;
690
+ $color_drag2_background: rgba(16, 185, 129, 0.075) !default;
691
+
692
+ $font_size: medium !default;
693
+ $font_family: system-ui, -apple-system, Arial, sans-serif !default;
694
+ $font_weight: 500 !default;
695
+
696
+ .flexlayout {
697
+ &__layout {
698
+ --color-text: #{$color_text};
699
+ --color-background: #{$color_background};
700
+ --color-base: #{$color_base};
701
+ --color-1: #{$color_1};
702
+ --color-2: #{$color_2};
703
+ --color-3: #{$color_3};
704
+ --color-4: #{$color_4};
705
+ --color-5: #{$color_5};
706
+ --color-6: #{$color_6};
707
+ --color-drag1: #{$color_drag1};
708
+ --color-drag2: #{$color_drag2};
709
+ --color-drag1-background: #{$color_drag1_background};
710
+ --color-drag2-background: #{$color_drag2_background};
711
+
712
+ --font-size: #{$font_size};
713
+ --font-family: #{$font_family};
714
+ --font-weight: #{$font_weight};
715
+
716
+ --splitter-size: 8px;
717
+ --splitter-active-size: 8px;
718
+ --splitter-handle-visibility: hidden;
719
+
720
+ --color-overflow: var(--color-5);
721
+ --color-icon: var(--color-5);
722
+
723
+ --color-tabset-background: var(--color-1);
724
+ --color-tabset-background-selected: var(--color-1);
725
+ --color-tabset-background-maximized: var(--color-1);
726
+ --color-tabset-divider-line: var(--color-2);
727
+
728
+ --color-border-tab-content: var(--color-1);
729
+ --color-border-background: var(--color-1);
730
+ --color-border-divider-line: var(--color-2);
731
+
732
+ --color-tab-content: var(--color-background);
733
+ --color-tab-selected: #3b7de7;
734
+ --color-tab-selected-background: var(--color-background);
735
+ --color-tab-unselected: var(--color-5);
736
+ --color-tab-unselected-background: transparent;
737
+ --color-tab-textbox: var(--color-text);
738
+ --color-tab-textbox-background: var(--color-background);
739
+
740
+ --color-border-tab-selected: #3b7de7;
741
+ --color-border-tab-selected-background: var(--color-background);
742
+ --color-border-tab-unselected: var(--color-5);
743
+ --color-border-tab-unselected-background: var(--color-1);
744
+
745
+ --color-splitter: var(--color-1);
746
+ --color-splitter-hover: var(--color-4);
747
+ --color-splitter-drag: var(--color-4);
748
+ --color-splitter-handle: var(--color-3);
749
+
750
+ --color-drag-rect-border: var(--color-3);
751
+ --color-drag-rect-background: var(--color-background);
752
+ --color-drag-rect: var(--color-text);
753
+
754
+ --color-popup-border: var(--color-2);
755
+ --color-popup-unselected: var(--color-text);
756
+ --color-popup-unselected-background: var(--color-background);
757
+ --color-popup-selected: var(--color-drag1);
758
+ --color-popup-selected-background: var(--color-1);
759
+
760
+ --color-edge-marker: var(--color-3);
761
+ --color-edge-icon: var(--color-6);
762
+
763
+ --color-mini-scroll-indicator: rgba(0, 0, 0, 0.1);
764
+ --color-mini-scroll-indicator-hovered: rgba(0, 0, 0, 0.3);
765
+ --size-mini-scroll-indicator: 4px;
766
+
767
+ --color-toolbar-button-hover: var(--color-2);
768
+ --tab-button-radius: 10px;
769
+ --border-button-radius: 5px;
770
+ --color-float-window-header-background: var(--color-tabset-background);
771
+ }
772
+ }
773
+ }
774
+
775
+ @mixin alpha_light_theme_overrides {
776
+ .flexlayout {
777
+ &__tab {
778
+ border: 5px solid var(--color-background);
779
+ border-radius: 5px;
780
+ }
781
+
782
+ // &__tab_layout_container {
783
+ // margin:5px;
784
+ // border-radius: 5px;
785
+ // box-shadow: 0px 1px 7px 2px rgb(199 199 199);
786
+ // }
787
+
788
+ &__splitter_border .flexlayout__splitter_handle {
789
+ visibility: visible;
790
+ }
791
+
792
+ &__tabset_tabbar_outer_top {
793
+ border-bottom: unset;
794
+ }
795
+
796
+ &__tabset_tabbar_outer_bottom {
797
+ border-top: unset;
798
+ }
799
+
800
+ &__tab_button {
801
+ border-bottom: 2px solid transparent;
802
+ padding: 4px 12px;
803
+
804
+ &--selected:hover {
805
+ background-color: var(--color-background);
806
+ }
807
+ }
808
+
809
+ &__tabset_tabbar_outer_top .flexlayout__tab_button--selected {
810
+ border-top-left-radius: var(--tab-button-radius);
811
+ border-top-right-radius: var(--tab-button-radius);
812
+ }
813
+
814
+ &__tabset_tabbar_outer_bottom .flexlayout__tab_button--selected {
815
+ border-bottom-left-radius: var(--tab-button-radius);
816
+ border-bottom-right-radius: var(--tab-button-radius);
817
+ }
818
+
819
+ &__tabset_tab_spacer {
820
+ width: 12px;
821
+ }
822
+
823
+ &__tabset_tab_divider,
824
+ &__border_tab_divider {
825
+ width: 2px;
826
+ border-radius: 2px;
827
+ height: .8em;
828
+ margin: 0px 5px 0px 5px;
829
+ background-color: #ddd;
830
+ }
831
+
832
+ &__tabset_tab_divider_selected_before,
833
+ &__tabset_tab_divider_selected_after {
834
+ width: 12px;
835
+ height: 100%;
836
+ margin: unset;
837
+ border-radius: unset;
838
+ background-color: var(--color-tab-selected-background);
839
+ }
840
+
841
+ // Define a shared block for the divider inner elements
842
+ &__tabset_tab_divider_inner {
843
+ height: 100%;
844
+ }
845
+
846
+ // When the tabset is selected, update the variable for all children
847
+ &__tabset-selected {
848
+ --tab-divider-bg: var(--color-tabset-background-selected);
849
+ }
850
+ &__tabset-maximized {
851
+ --tab-divider-bg: var(--color-tabset-background-maximized);
852
+ }
853
+
854
+ // Grouping by Position (Top vs Bottom)
855
+ &__tabset_tabbar_outer {
856
+ &_top {
857
+ .flexlayout__tabset_tab_divider_selected_before .flexlayout__tabset_tab_divider_inner {
858
+ border-bottom-right-radius: var(--tab-button-radius);
859
+ // Use a CSS variable that we'll update based on the tabset state
860
+ background-color: var(--tab-divider-bg, var(--color-tabset-background));
861
+ }
862
+
863
+ .flexlayout__tabset_tab_divider_selected_after .flexlayout__tabset_tab_divider_inner {
864
+ border-bottom-left-radius: var(--tab-button-radius);
865
+ background-color: var(--tab-divider-bg, var(--color-tabset-background));
866
+ }
867
+ }
868
+
869
+ &_bottom {
870
+ .flexlayout__tabset_tab_divider_selected_before .flexlayout__tabset_tab_divider_inner {
871
+ border-top-right-radius: var(--tab-button-radius);
872
+ background-color: var(--tab-divider-bg, var(--color-tabset-background));
873
+ }
874
+
875
+ .flexlayout__tabset_tab_divider_selected_after .flexlayout__tabset_tab_divider_inner {
876
+ border-top-left-radius: var(--tab-button-radius);
877
+ background-color: var(--tab-divider-bg, var(--color-tabset-background));
878
+ }
879
+ }
880
+ }
881
+
882
+ &__border_button {
883
+ border-radius: var(--border-button-radius);
884
+ margin: 3px;
885
+ padding: 3px 8px;
886
+
887
+ &--selected {
888
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
889
+ }
890
+ }
891
+
892
+ &__border_sizer {
893
+ padding-bottom: 8px;
894
+ }
895
+
896
+ &__popup_menu_container {
897
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
898
+ border: 1px solid var(--color-2);
899
+ padding: 4px;
900
+ }
901
+
902
+ &__popup_menu_item {
903
+ border-radius: 4px;
904
+ padding: 6px 8px;
905
+
906
+ &:hover {
907
+ background-color: var(--color-1);
908
+ }
909
+ }
910
+ }
911
+ }
912
+
913
+ @mixin alpha_dark_theme {
914
+ $color_text: white !default; // Gray 200
915
+ $color_background: black !default; // Gray 800-ish (Selected Tab)
916
+ $color_base: #121212 !default; // Gray 950-ish (Layout Background)
917
+ $color_1: #1c1c1c !default; // Gray 900-ish (Tab Bar)
918
+ $color_2: #383838 !default; // Gray 800-ish
919
+ $color_3: #404040 !default; // Gray 700-ish
920
+ $color_4: #525252 !default; // Gray 600-ish
921
+ $color_5: #737373 !default; // Gray 500-ish
922
+ $color_6: #a3a3a3 !default; // Gray 400-ish
923
+
924
+ $color_drag1: #93c5fd !default; // Blue 300
925
+ $color_drag2: #6ee7b7 !default; // Emerald 300
926
+ $color_drag1_background: rgba(147, 197, 253, 0.15) !default;
927
+ $color_drag2_background: rgba(110, 231, 183, 0.1) !default;
928
+
929
+ $font_size: medium !default;
930
+ $font_family: system-ui, -apple-system, Arial, sans-serif !default;
931
+ $font_weight: 500 !default;
932
+
933
+ .flexlayout {
934
+ &__layout {
935
+ --color-text: #{$color_text};
936
+ --color-background: #{$color_background};
937
+ --color-base: #{$color_base};
938
+ --color-1: #{$color_1};
939
+ --color-2: #{$color_2};
940
+ --color-3: #{$color_3};
941
+ --color-4: #{$color_4};
942
+ --color-5: #{$color_5};
943
+ --color-6: #{$color_6};
944
+ --color-drag1: #{$color_drag1};
945
+ --color-drag2: #{$color_drag2};
946
+ --color-drag1-background: #{$color_drag1_background};
947
+ --color-drag2-background: #{$color_drag2_background};
948
+
949
+ --font-size: #{$font_size};
950
+ --font-family: #{$font_family};
951
+ --font-weight: #{$font_weight};
952
+
953
+ --splitter-size: 8px;
954
+ --splitter-active-size: 8px;
955
+ --splitter-handle-visibility: hidden;
956
+
957
+ --color-overflow: gray;
958
+ --color-icon: gray;
959
+
960
+ --color-tabset-background: var(--color-1);
961
+ --color-tabset-background-selected: var(--color-1);
962
+ --color-tabset-background-maximized: var(--color-1);
963
+ --color-tabset-divider-line: var(--color-2);
964
+
965
+ --color-border-tab-content: var(--color-1);
966
+ --color-border-background: var(--color-1);
967
+ --color-border-divider-line: var(--color-2);
968
+
969
+ --color-tab-content: var(--color-background);
970
+ --color-tab-selected: #e5e7eb;
971
+ --color-tab-selected-background: var(--color-background);
972
+ --color-tab-unselected: var(--color-5);
973
+ --color-tab-unselected-background: transparent;
974
+ --color-tab-textbox: var(--color-text);
975
+ --color-tab-textbox-background: var(--color-background);
976
+
977
+ --color-border-tab-selected: #e5e7eb;
978
+ --color-border-tab-selected-background: var(--color-background);
979
+ --color-border-tab-unselected: var(--color-5);
980
+ --color-border-tab-unselected-background: var(--color-1);
981
+
982
+ --color-splitter: var(--color-1);
983
+ --color-splitter-hover: var(--color-3);
984
+ --color-splitter-drag: var(--color-4);
985
+ --color-splitter-handle: var(--color-3);
986
+
987
+ --color-drag-rect-border: var(--color-3);
988
+ --color-drag-rect-background: var(--color-background);
989
+ --color-drag-rect: var(--color-text);
990
+
991
+ --color-popup-border: var(--color-2);
992
+ --color-popup-unselected: var(--color-text);
993
+ --color-popup-unselected-background: var(--color-background);
994
+ --color-popup-selected: #f9fafb;
995
+ --color-popup-selected-background: var(--color-1);
996
+
997
+ --color-edge-marker: var(--color-3);
998
+ --color-edge-icon: gray;
999
+
1000
+ --color-mini-scroll-indicator: rgba(255, 255, 255, 0.1);
1001
+ --color-mini-scroll-indicator-hovered: rgba(255, 255, 255, 0.3);
1002
+ --size-mini-scroll-indicator: 4px;
1003
+
1004
+ --color-toolbar-button-hover: var(--color-2);
1005
+ --tab-button-radius: 10px;
1006
+ --border-button-radius: 5px;
1007
+ --color-float-window-header-background: var(--color-tabset-background);
1008
+ }
1009
+ }
1010
+ }
1011
+
1012
+ @mixin alpha_dark_theme_overrides {
1013
+ .flexlayout {
1014
+ &__tab {
1015
+ border: 5px solid var(--color-background);
1016
+ border-radius: 5px;
1017
+ }
1018
+
1019
+ &__splitter_border .flexlayout__splitter_handle {
1020
+ visibility: visible;
1021
+ }
1022
+
1023
+ &__tabset_tabbar_outer_top {
1024
+ border-bottom: unset;
1025
+ }
1026
+
1027
+ &__tabset_tabbar_outer_bottom {
1028
+ border-top: unset;
1029
+ }
1030
+
1031
+ &__tab_button {
1032
+ border-bottom: 2px solid transparent;
1033
+ padding: 4px 12px;
1034
+
1035
+ &--selected:hover {
1036
+ background-color: var(--color-background);
1037
+ }
1038
+ }
1039
+
1040
+ &__tabset_tabbar_outer_top .flexlayout__tab_button--selected {
1041
+ border-top-left-radius: var(--tab-button-radius);
1042
+ border-top-right-radius: var(--tab-button-radius);
1043
+ }
1044
+
1045
+ &__tabset_tabbar_outer_bottom .flexlayout__tab_button--selected {
1046
+ border-bottom-left-radius: var(--tab-button-radius);
1047
+ border-bottom-right-radius: var(--tab-button-radius);
1048
+ }
1049
+
1050
+ &__tabset_tab_spacer {
1051
+ width: 12px;
1052
+ }
1053
+
1054
+ &__tabset_tab_divider,
1055
+ &__border_tab_divider {
1056
+ width: 2px;
1057
+ border-radius: 2px;
1058
+ height: .8em;
1059
+ margin: 0px 5px 0px 5px;
1060
+ background-color: #333;
1061
+ }
644
1062
 
1063
+ &__tabset_tab_divider_selected_before,
1064
+ &__tabset_tab_divider_selected_after {
1065
+ width: 12px;
1066
+ height: 100%;
1067
+ margin: unset;
1068
+ border-radius: unset;
1069
+ background-color: var(--color-tab-selected-background);
1070
+ }
1071
+
1072
+
1073
+ // Define a shared block for the divider inner elements
1074
+ &__tabset_tab_divider_inner {
1075
+ height: 100%;
1076
+ }
1077
+
1078
+ // When the tabset is selected, update the variable for all children
1079
+ &__tabset-selected {
1080
+ --tab-divider-bg: var(--color-tabset-background-selected);
1081
+ }
1082
+ &__tabset-maximized {
1083
+ --tab-divider-bg: var(--color-tabset-background-maximized);
1084
+ }
1085
+
1086
+ // Grouping by Position (Top vs Bottom)
1087
+ &__tabset_tabbar_outer {
1088
+ &_top {
1089
+ .flexlayout__tabset_tab_divider_selected_before .flexlayout__tabset_tab_divider_inner {
1090
+ border-bottom-right-radius: var(--tab-button-radius);
1091
+ // Use a CSS variable that we'll update based on the tabset state
1092
+ background-color: var(--tab-divider-bg, var(--color-tabset-background));
1093
+ }
1094
+
1095
+ .flexlayout__tabset_tab_divider_selected_after .flexlayout__tabset_tab_divider_inner {
1096
+ border-bottom-left-radius: var(--tab-button-radius);
1097
+ background-color: var(--tab-divider-bg, var(--color-tabset-background));
1098
+ }
1099
+ }
1100
+
1101
+ &_bottom {
1102
+ .flexlayout__tabset_tab_divider_selected_before .flexlayout__tabset_tab_divider_inner {
1103
+ border-top-right-radius: var(--tab-button-radius);
1104
+ background-color: var(--tab-divider-bg, var(--color-tabset-background));
1105
+ }
1106
+
1107
+ .flexlayout__tabset_tab_divider_selected_after .flexlayout__tabset_tab_divider_inner {
1108
+ border-top-left-radius: var(--tab-button-radius);
1109
+ background-color: var(--tab-divider-bg, var(--color-tabset-background));
1110
+ }
1111
+ }
1112
+ }
1113
+
1114
+
1115
+ &__splitter {
1116
+ transition: background-color 0.2s;
1117
+
1118
+ &:hover {
1119
+ border-radius: 0;
1120
+ }
1121
+ }
1122
+
1123
+ &__border_button {
1124
+ border-radius: var(--border-button-radius);
1125
+ margin: 3px;
1126
+ padding: 3px 8px;
1127
+
1128
+ &--selected {
1129
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
1130
+ }
1131
+ }
1132
+
1133
+ &__border_sizer {
1134
+ padding-bottom: 8px;
1135
+ }
1136
+
1137
+ &__popup_menu_container {
1138
+ box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.4), 0 4px 6px -2px rgba(0, 0, 0, 0.2);
1139
+ border: 1px solid var(--color-2);
1140
+ padding: 4px;
1141
+ }
1142
+
1143
+ &__popup_menu_item {
1144
+ border-radius: 4px;
1145
+ padding: 6px 8px;
1146
+
1147
+ &:hover {
1148
+ background-color: var(--color-1);
1149
+ }
1150
+ }
1151
+ }
1152
+ }
1153
+
1154
+ @mixin alpha_rounded_theme {
1155
+ $color_text: black !default; // Slate 800
1156
+ $color_background: #e9eef6 !default; // Slate 50
1157
+ $color_base: #ffffff !default;
1158
+ $color_1: #f1f5f9 !default; // Slate 100
1159
+ $color_2: #e2e8f0 !default; // Slate 200
1160
+ $color_3: #cbd5e1 !default; // Slate 300
1161
+ $color_4: #94a3b8 !default; // Slate 400
1162
+ $color_5: #64748b !default; // Slate 500
1163
+ $color_6: #475569 !default; // Slate 600
1164
+
1165
+ $color_drag1: rgb(95, 134, 196) !default;
1166
+ $color_drag2: rgb(119, 166, 119) !default;
1167
+ $color_drag1_background: rgba(59, 130, 246, 0.1) !default;
1168
+ $color_drag2_background: rgba(16, 185, 129, 0.075) !default;
1169
+
1170
+ $font_size: medium !default;
1171
+ $font_family: system-ui, -apple-system, Arial, sans-serif !default;
1172
+ $font_weight: 500 !default;
1173
+
1174
+ .flexlayout {
1175
+ &__layout {
1176
+
1177
+ --color-text: #{$color_text};
1178
+ --color-background: #{$color_background};
1179
+ --color-base: #{$color_base};
1180
+ --color-1: #{$color_1};
1181
+ --color-2: #{$color_2};
1182
+ --color-3: #{$color_3};
1183
+ --color-4: #{$color_4};
1184
+ --color-5: #{$color_5};
1185
+ --color-6: #{$color_6};
1186
+ --color-drag1: #{$color_drag1};
1187
+ --color-drag2: #{$color_drag2};
1188
+ --color-drag1-background: #{$color_drag1_background};
1189
+ --color-drag2-background: #{$color_drag2_background};
1190
+
1191
+ --font-size: #{$font_size};
1192
+ --font-family: #{$font_family};
1193
+ --font-weight: #{$font_weight};
1194
+
1195
+ --splitter-size: 8px;
1196
+ --splitter-active-size: 8px;
1197
+ --splitter-handle-visibility: hidden;
1198
+
1199
+ --color-overflow: var(--color-4);
1200
+ --color-icon: var(--color-4);
1201
+
1202
+ --color-tabset-background: white;
1203
+ --color-tabset-background-selected: white;
1204
+ --color-tabset-background-maximized: white;
1205
+ --color-tabset-divider-line: white;
1206
+
1207
+ --color-border-tab-content: white;
1208
+ --color-border-background: var(--color-background);
1209
+ --color-border-divider-line: var(--color-background);
1210
+
1211
+ --color-tab-content: white;
1212
+ --color-tab-selected: #3b7de7;
1213
+ --color-tab-selected-background: var(--color-2);
1214
+ --color-tab-unselected: var(--color-4);
1215
+ --color-tab-unselected-background: var(--color-1);
1216
+ --color-tab-textbox: var(--color-text);
1217
+ --color-tab-textbox-background: var(--color-3);
1218
+
1219
+ --color-border-tab-selected: #3b7de7;
1220
+ --color-border-tab-selected-background: var(--color-2);
1221
+ --color-border-tab-unselected: var(--color-4);
1222
+ --color-border-tab-unselected-background: var(--color-1);
1223
+
1224
+ --color-splitter: var(--color-background);
1225
+ --color-splitter-hover: var(--color-3);
1226
+ --color-splitter-drag: var(--color-3);
1227
+ --color-splitter-handle: var(--color-3);
1228
+
1229
+ --color-drag-rect-border: var(--color-3);
1230
+ --color-drag-rect-background: var(--color-base);
1231
+ --color-drag-rect: var(--color-text);
1232
+
1233
+ --color-popup-border: var(--color-2);
1234
+ --color-popup-unselected: var(--color-text);
1235
+ --color-popup-unselected-background: var(--color-base);
1236
+ --color-popup-selected: var(--color-drag1);
1237
+ --color-popup-selected-background: var(--color-1);
1238
+
1239
+ --color-edge-marker: var(--color-3);
1240
+ --color-edge-icon: var(--color-6);
1241
+
1242
+ --color-mini-scroll-indicator: rgba(0, 0, 0, 0.1);
1243
+ --color-mini-scroll-indicator-hovered: rgba(0, 0, 0, 0.2);
1244
+
1245
+ --size-mini-scroll-indicator: 4px;
1246
+
1247
+ --color-toolbar-button-hover: var(--color-1);
1248
+ --color-float-window-header-background: var(--color-tabset-background);
1249
+ --tab-button-radius: 16px;
1250
+ --border-button-radius: 16px;
1251
+ --color-float-window-header-background: var(--color-tabset-background);
1252
+ }
1253
+ }
1254
+ }
1255
+
1256
+ @mixin alpha_rounded_theme_overrides {
1257
+ .flexlayout {
1258
+ &__tabset {
1259
+ padding: 2px;
1260
+ border-radius: 12px;
1261
+ }
1262
+
1263
+ &__splitter_border .flexlayout__splitter_handle {
1264
+ visibility: visible;
1265
+ }
1266
+
1267
+ &__float_window {
1268
+ background-color: var(--color-2);
1269
+ }
1270
+
1271
+ &__float_window_header {
1272
+ background-color: var(--color-2);
1273
+ border-bottom: none;
1274
+ }
1275
+
1276
+ &__tab_border {
1277
+ border-radius: 12px;
1278
+ background-color: var(--color-background);
1279
+ }
1280
+
1281
+ &__border_tab_contents {
1282
+ border-radius: var(--tab-button-radius);
1283
+ }
1284
+
1285
+ &__tab_button {
1286
+ border-radius: var(--tab-button-radius);
1287
+ padding: 4px 12px;
1288
+ margin: 2px;
1289
+ }
1290
+
1291
+ &__border_button {
1292
+ border-radius: var(--border-button-radius);
1293
+ padding: 4px 12px;
1294
+ margin: 2px;
1295
+ }
1296
+
1297
+ &__border_sizer {
1298
+ padding-bottom: 10px;
1299
+ }
1300
+
1301
+ &__popup_menu_container {
1302
+ border-radius: 8px;
1303
+ box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
1304
+ border: 1px solid var(--color-2);
1305
+ padding: 6px;
1306
+ }
1307
+
1308
+ &__popup_menu_item {
1309
+ border-radius: 6px;
1310
+ padding: 8px 12px;
1311
+
1312
+ &:hover {
1313
+ background-color: var(--color-1);
1314
+ }
1315
+ }
645
1316
  }
646
1317
  }