eidos-ui 2.1.0 → 3.1.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 (56) hide show
  1. package/README.md +66 -16
  2. package/dist/ThemeProvider.types-DgXN0gEH.d.cts +88 -0
  3. package/dist/ThemeProvider.types-DgXN0gEH.d.ts +88 -0
  4. package/dist/chunk-2ZY7M72Q.js +521 -0
  5. package/dist/chunk-2ZY7M72Q.js.map +1 -0
  6. package/dist/{chunk-W6IKHJ76.cjs → chunk-5BX4Q76D.cjs} +134 -126
  7. package/dist/chunk-5BX4Q76D.cjs.map +1 -0
  8. package/dist/{chunk-RAZRQ57B.js → chunk-74MBKLYI.js} +97 -16
  9. package/dist/chunk-74MBKLYI.js.map +1 -0
  10. package/dist/chunk-H5HWFOWZ.js +390 -0
  11. package/dist/chunk-H5HWFOWZ.js.map +1 -0
  12. package/dist/{chunk-VHQTDITV.cjs → chunk-KQD7CQ4Z.cjs} +96 -15
  13. package/dist/chunk-KQD7CQ4Z.cjs.map +1 -0
  14. package/dist/{chunk-JV7Z3D3U.js → chunk-LEMCJW57.js} +134 -126
  15. package/dist/chunk-LEMCJW57.js.map +1 -0
  16. package/dist/chunk-SE7MWOC7.cjs +390 -0
  17. package/dist/chunk-SE7MWOC7.cjs.map +1 -0
  18. package/dist/chunk-U5FHQ73U.cjs +521 -0
  19. package/dist/chunk-U5FHQ73U.cjs.map +1 -0
  20. package/dist/color-picker/index.cjs +2 -2
  21. package/dist/color-picker/index.js +1 -1
  22. package/dist/fonts/JetBrains-Mono-OFL.txt +93 -0
  23. package/dist/fonts/Plus-Jakarta-Sans-OFL.txt +93 -0
  24. package/dist/fonts/jetbrains-mono-latin-ext-wght-normal.woff2 +0 -0
  25. package/dist/fonts/jetbrains-mono-latin-wght-normal.woff2 +0 -0
  26. package/dist/fonts/plus-jakarta-sans-latin-ext-wght-normal.woff2 +0 -0
  27. package/dist/fonts/plus-jakarta-sans-latin-wght-normal.woff2 +0 -0
  28. package/dist/fonts.css +32 -0
  29. package/dist/fonts.css.d.ts +2 -0
  30. package/dist/index.cjs +32 -6
  31. package/dist/index.cjs.map +1 -1
  32. package/dist/index.css +467 -123
  33. package/dist/index.d.cts +3 -0
  34. package/dist/index.d.ts +3 -0
  35. package/dist/index.js +35 -9
  36. package/dist/tabs/index.cjs +2 -2
  37. package/dist/tabs/index.d.cts +11 -0
  38. package/dist/tabs/index.d.ts +11 -0
  39. package/dist/tabs/index.js +1 -1
  40. package/dist/theme-editor/index.cjs +22 -0
  41. package/dist/theme-editor/index.cjs.map +1 -0
  42. package/dist/theme-editor/index.d.cts +65 -0
  43. package/dist/theme-editor/index.d.ts +65 -0
  44. package/dist/theme-editor/index.js +22 -0
  45. package/dist/theme-editor/index.js.map +1 -0
  46. package/dist/theme-provider/index.cjs +27 -0
  47. package/dist/theme-provider/index.cjs.map +1 -0
  48. package/dist/theme-provider/index.d.cts +123 -0
  49. package/dist/theme-provider/index.d.ts +123 -0
  50. package/dist/theme-provider/index.js +27 -0
  51. package/dist/theme-provider/index.js.map +1 -0
  52. package/package.json +13 -3
  53. package/dist/chunk-JV7Z3D3U.js.map +0 -1
  54. package/dist/chunk-RAZRQ57B.js.map +0 -1
  55. package/dist/chunk-VHQTDITV.cjs.map +0 -1
  56. package/dist/chunk-W6IKHJ76.cjs.map +0 -1
package/dist/index.css CHANGED
@@ -1,42 +1,48 @@
1
1
  :root {
2
- --primary-color: #6366f1;
3
- --primary-rgb: 99, 102, 241;
4
- --primary-dark: #4f46e5;
2
+ --primary-color: #5c5de8;
3
+ --primary-rgb: 92, 93, 232;
4
+ --primary-dark: #4a4dba;
5
5
  --primary-light: #a5b4fc;
6
6
  --primary-50: #eef2ff;
7
7
  --primary-100: #e0e7ff;
8
8
  --primary-200: #c7d2fe;
9
9
  --primary-300: #a5b4fc;
10
10
  --primary-400: #818cf8;
11
- --primary-500: #6366f1;
11
+ --primary-500: #5c5de8;
12
12
  --primary-600: #4f46e5;
13
13
  --primary-700: #4338ca;
14
14
  --primary-800: #3730a3;
15
15
  --primary-900: #312e81;
16
- --secondary-color: #64748b;
17
- --secondary-rgb: 100, 116, 139;
18
- --secondary-dark: #475569;
16
+ --secondary-color: #617087;
17
+ --secondary-rgb: 97, 112, 135;
18
+ --secondary-dark: #4d5b71;
19
19
  --secondary-light: #cbd5e1;
20
- --hyperlink-color: #11a2ad;
21
- --hyperlink-rgb: 6, 182, 212;
22
- --hyperlink-dark: #0e919b;
20
+ --hyperlink-color: #007b84;
21
+ --hyperlink-rgb: 0, 123, 132;
22
+ --hyperlink-dark: #00646c;
23
23
  --hyperlink-light: #1fc1cd;
24
- --success-color: #10b981;
25
- --success-rgb: 16, 185, 129;
26
- --success-dark: #059669;
24
+ --success-color: #007f57;
25
+ --success-rgb: 0, 127, 87;
26
+ --success-dark: #046847;
27
27
  --success-light: #6ee7b7;
28
- --danger-color: #ef4444;
29
- --danger-rgb: 239, 68, 68;
30
- --danger-dark: #dc2626;
28
+ --danger-color: #d6272f;
29
+ --danger-rgb: 214, 39, 47;
30
+ --danger-dark: #ac2528;
31
31
  --danger-light: #fca5a5;
32
- --warning-color: #f59e0b;
33
- --warning-rgb: 245, 158, 11;
34
- --warning-dark: #d97706;
32
+ --warning-color: #9c6300;
33
+ --warning-rgb: 156, 99, 0;
34
+ --warning-dark: #7f5003;
35
35
  --warning-light: #fcd34d;
36
- --info-color: #06b6d4;
37
- --info-rgb: 6, 182, 212;
38
- --info-dark: #0891b2;
36
+ --info-color: #007a90;
37
+ --info-rgb: 0, 122, 144;
38
+ --info-dark: #006476;
39
39
  --info-light: #67e8f9;
40
+ --primary-contrast: var(--white);
41
+ --secondary-contrast: var(--white);
42
+ --success-contrast: var(--white);
43
+ --danger-contrast: var(--white);
44
+ --warning-contrast: var(--white);
45
+ --info-contrast: var(--white);
40
46
  --light-color: #f8fafc;
41
47
  --light-rgb: 248, 250, 252;
42
48
  --dark-color: #1e293b;
@@ -107,12 +113,19 @@
107
113
  --navigation-collapsed-width: 64px;
108
114
  --footer-height: 60px;
109
115
  --badge-offset: 0.3em;
116
+ --scrollbar-size: 10px;
117
+ --scrollbar-thumb: var(--primary-color);
110
118
  --z-index-drawer: 1200;
111
119
  --z-index-modal: 1300;
112
120
  --z-index-dropdown: 1400;
113
121
  --z-index-command-palette: 1500;
114
122
  --z-index-snackbar: 1600;
115
123
  --z-index-tooltip: 1700;
124
+ --breakpoint-sm: 640px;
125
+ --breakpoint-md: 768px;
126
+ --breakpoint-lg: 1024px;
127
+ --breakpoint-xl: 1280px;
128
+ --breakpoint-2xl: 1536px;
116
129
  }
117
130
 
118
131
  * {
@@ -123,6 +136,11 @@
123
136
 
124
137
  html,
125
138
  body {
139
+ /* `100%`, not `100vh`: on mobile `100vh` resolves against the *large*
140
+ viewport, so a full-height app shell ends up taller than what is actually
141
+ visible and its bottom chrome hides behind the browser UI. `height: 100%`
142
+ on `html` already resolves against the viewport, and on `body` against
143
+ `html`, so this is the same thing on desktop without that bug. */
126
144
  height: 100%;
127
145
  font-family: var(--font-family-primary);
128
146
  -webkit-font-smoothing: antialiased;
@@ -130,7 +148,6 @@ body {
130
148
  font-feature-settings: "cv02", "cv03", "cv04", "cv11";
131
149
  font-size: 14px;
132
150
  line-height: 1.4;
133
- margin-bottom: var(--spacing-sm);
134
151
  color: var(--dark-color);
135
152
  }
136
153
 
@@ -213,6 +230,44 @@ svg.lucide {
213
230
  height: 1em;
214
231
  }
215
232
 
233
+ /* Scrollbars, WebKit/Blink (Chrome, Brave, Edge, Safari).
234
+ Both dimensions are needed: `width` is the thickness of a *vertical* bar
235
+ only, so setting it alone left every horizontal scroller (`pre`, the
236
+ Table/DataGrid wrappers, Tabs' strip) at the OS default thickness.
237
+ Overridable through the `--scrollbar-*` tokens - see `variables.scss`. */
238
+ *::-webkit-scrollbar {
239
+ width: var(--scrollbar-size);
240
+ height: var(--scrollbar-size);
241
+ }
242
+
243
+ *::-webkit-scrollbar-track {
244
+ background: transparent;
245
+ }
246
+
247
+ *::-webkit-scrollbar-thumb {
248
+ background-color: var(--scrollbar-thumb);
249
+ /* A scrollbar thumb takes no `padding`, so a transparent border plus
250
+ `background-clip: padding-box` is what insets the visible bar from the
251
+ track - the clip does nothing on its own. The thumb still hit-tests over
252
+ its whole border box, so this keeps a slim look without shrinking the
253
+ target to something un-grabbable. */
254
+ border: 3px solid transparent;
255
+ background-clip: padding-box;
256
+ border-radius: var(--scrollbar-size);
257
+ }
258
+
259
+ /* Firefox, which supports neither the pseudo-elements above nor an inset
260
+ thumb - `scrollbar-width`/`scrollbar-color` is its ceiling. Gated behind a
261
+ Firefox-only `@supports` test on purpose: the standard properties take
262
+ precedence over the pseudo-elements wherever both are supported, so
263
+ applying them unconditionally would replace the styling above in Chromium
264
+ with this coarser version. */
265
+ @supports (scrollbar-width: auto) and (-moz-appearance: none) {
266
+ * {
267
+ scrollbar-width: thin;
268
+ scrollbar-color: var(--scrollbar-thumb) transparent;
269
+ }
270
+ }
216
271
  .eidos-accordion {
217
272
  display: flex;
218
273
  flex-direction: column;
@@ -515,22 +570,27 @@ svg.lucide {
515
570
  }
516
571
  .eidos-avatar--primary {
517
572
  background-color: var(--primary-color);
573
+ color: var(--primary-contrast);
518
574
  }
519
575
  .eidos-avatar--secondary {
520
576
  background-color: var(--secondary-color);
577
+ color: var(--secondary-contrast);
521
578
  }
522
579
  .eidos-avatar--success {
523
580
  background-color: var(--success-color);
581
+ color: var(--success-contrast);
524
582
  }
525
583
  .eidos-avatar--danger {
526
584
  background-color: var(--danger-color);
585
+ color: var(--danger-contrast);
527
586
  }
528
587
  .eidos-avatar--warning {
529
588
  background-color: var(--warning-color);
530
- color: var(--dark-color);
589
+ color: var(--warning-contrast);
531
590
  }
532
591
  .eidos-avatar--info {
533
592
  background-color: var(--info-color);
593
+ color: var(--info-contrast);
534
594
  }
535
595
  .eidos-avatar--gray {
536
596
  background-color: var(--gray-400);
@@ -626,22 +686,27 @@ svg.lucide {
626
686
  }
627
687
  .eidos-badge--primary {
628
688
  background-color: var(--primary-color);
689
+ color: var(--primary-contrast);
629
690
  }
630
691
  .eidos-badge--secondary {
631
692
  background-color: var(--secondary-color);
693
+ color: var(--secondary-contrast);
632
694
  }
633
695
  .eidos-badge--success {
634
696
  background-color: var(--success-color);
697
+ color: var(--success-contrast);
635
698
  }
636
699
  .eidos-badge--danger {
637
700
  background-color: var(--danger-color);
701
+ color: var(--danger-contrast);
638
702
  }
639
703
  .eidos-badge--warning {
640
704
  background-color: var(--warning-color);
641
- color: var(--dark-color);
705
+ color: var(--warning-contrast);
642
706
  }
643
707
  .eidos-badge--info {
644
708
  background-color: var(--info-color);
709
+ color: var(--info-contrast);
645
710
  }
646
711
  .eidos-badge--top-right.eidos-badge--rectangular {
647
712
  top: var(--badge-offset);
@@ -696,20 +761,17 @@ svg.lucide {
696
761
  }
697
762
  .eidos-pill--sm {
698
763
  min-width: 16px;
699
- height: 2.2em;
700
764
  padding: var(--spacing-sm) var(--spacing-md);
701
765
  font-size: var(--font-size-xs);
702
766
  }
703
767
  .eidos-pill--md {
704
768
  min-width: 20px;
705
- height: 2.2em;
706
- padding: var(--spacing-md);
769
+ padding: var(--spacing-sm) var(--spacing-md);
707
770
  font-size: var(--font-size-sm);
708
771
  }
709
772
  .eidos-pill--lg {
710
773
  min-width: 24px;
711
- height: 2.2em;
712
- padding: var(--spacing-md) var(--spacing-lg);
774
+ padding: var(--spacing-sm) var(--spacing-md);
713
775
  font-size: var(--font-size-base);
714
776
  }
715
777
  .eidos-pill--dot {
@@ -743,27 +805,27 @@ svg.lucide {
743
805
  }
744
806
  .eidos-pill--filled.eidos-pill--primary {
745
807
  background-color: var(--primary-color);
746
- color: var(--white);
808
+ color: var(--primary-contrast);
747
809
  }
748
810
  .eidos-pill--filled.eidos-pill--secondary {
749
811
  background-color: var(--secondary-color);
750
- color: var(--white);
812
+ color: var(--secondary-contrast);
751
813
  }
752
814
  .eidos-pill--filled.eidos-pill--success {
753
815
  background-color: var(--success-color);
754
- color: var(--white);
816
+ color: var(--success-contrast);
755
817
  }
756
818
  .eidos-pill--filled.eidos-pill--danger {
757
819
  background-color: var(--danger-color);
758
- color: var(--white);
820
+ color: var(--danger-contrast);
759
821
  }
760
822
  .eidos-pill--filled.eidos-pill--warning {
761
823
  background-color: var(--warning-color);
762
- color: var(--white);
824
+ color: var(--warning-contrast);
763
825
  }
764
826
  .eidos-pill--filled.eidos-pill--info {
765
827
  background-color: var(--info-color);
766
- color: var(--white);
828
+ color: var(--info-contrast);
767
829
  }
768
830
  .eidos-pill--outlined {
769
831
  background-color: transparent;
@@ -825,13 +887,13 @@ svg.lucide {
825
887
  list-style: none;
826
888
  margin: 0;
827
889
  padding: 0;
828
- gap: var(--spacing-xs);
890
+ gap: var(--spacing-sm);
829
891
  }
830
892
 
831
893
  .eidos-breadcrumb-item {
832
894
  display: flex;
833
895
  align-items: center;
834
- gap: var(--spacing-xs);
896
+ gap: var(--spacing-sm);
835
897
  line-height: 1;
836
898
  will-change: transform;
837
899
  }
@@ -839,7 +901,7 @@ svg.lucide {
839
901
  .eidos-breadcrumb-link {
840
902
  display: flex;
841
903
  align-items: center;
842
- gap: var(--spacing-xs);
904
+ gap: var(--spacing-sm);
843
905
  font-size: var(--font-size-sm);
844
906
  color: var(--gray-500);
845
907
  text-decoration: none;
@@ -871,7 +933,7 @@ svg.lucide {
871
933
  .eidos-breadcrumb-link--button {
872
934
  display: flex;
873
935
  align-items: center;
874
- gap: var(--spacing-xs);
936
+ gap: var(--spacing-sm);
875
937
  font-size: var(--font-size-sm);
876
938
  color: var(--gray-500);
877
939
  text-decoration: none;
@@ -894,7 +956,7 @@ svg.lucide {
894
956
  .eidos-breadcrumb-current {
895
957
  display: flex;
896
958
  align-items: center;
897
- gap: var(--spacing-xs);
959
+ gap: var(--spacing-sm);
898
960
  font-size: var(--font-size-sm);
899
961
  font-weight: var(--font-weight-medium);
900
962
  color: var(--dark-color);
@@ -913,7 +975,6 @@ svg.lucide {
913
975
  align-items: center;
914
976
  justify-content: center;
915
977
  flex-shrink: 0;
916
- margin-right: 2px;
917
978
  }
918
979
  .eidos-breadcrumb-icon svg {
919
980
  width: 0.875em;
@@ -967,42 +1028,42 @@ svg.lucide {
967
1028
  }
968
1029
  .eidos-button--filled.eidos-button--primary {
969
1030
  background-color: var(--primary-color);
970
- color: var(--white);
1031
+ color: var(--primary-contrast);
971
1032
  }
972
1033
  .eidos-button--filled.eidos-button--primary:hover:not(:disabled) {
973
- background-color: var(--secondary-dark);
1034
+ background-color: var(--primary-dark);
974
1035
  }
975
1036
  .eidos-button--filled.eidos-button--secondary {
976
1037
  background-color: var(--secondary-color);
977
- color: var(--white);
1038
+ color: var(--secondary-contrast);
978
1039
  }
979
1040
  .eidos-button--filled.eidos-button--secondary:hover:not(:disabled) {
980
1041
  background-color: var(--secondary-dark);
981
1042
  }
982
1043
  .eidos-button--filled.eidos-button--success {
983
1044
  background-color: var(--success-color);
984
- color: var(--white);
1045
+ color: var(--success-contrast);
985
1046
  }
986
1047
  .eidos-button--filled.eidos-button--success:hover:not(:disabled) {
987
1048
  background-color: var(--success-dark);
988
1049
  }
989
1050
  .eidos-button--filled.eidos-button--danger {
990
1051
  background-color: var(--danger-color);
991
- color: var(--white);
1052
+ color: var(--danger-contrast);
992
1053
  }
993
1054
  .eidos-button--filled.eidos-button--danger:hover:not(:disabled) {
994
1055
  background-color: var(--danger-dark);
995
1056
  }
996
1057
  .eidos-button--filled.eidos-button--warning {
997
1058
  background-color: var(--warning-color);
998
- color: var(--white);
1059
+ color: var(--warning-contrast);
999
1060
  }
1000
1061
  .eidos-button--filled.eidos-button--warning:hover:not(:disabled) {
1001
1062
  background-color: var(--warning-dark);
1002
1063
  }
1003
1064
  .eidos-button--filled.eidos-button--info {
1004
1065
  background-color: var(--info-color);
1005
- color: var(--white);
1066
+ color: var(--info-contrast);
1006
1067
  }
1007
1068
  .eidos-button--filled.eidos-button--info:hover:not(:disabled) {
1008
1069
  background-color: var(--info-dark);
@@ -1013,7 +1074,7 @@ svg.lucide {
1013
1074
  }
1014
1075
  .eidos-button--outlined:hover:not(:disabled) {
1015
1076
  background-color: var(--primary-color);
1016
- color: var(--white);
1077
+ color: var(--primary-contrast);
1017
1078
  }
1018
1079
  .eidos-button--outlined.eidos-button--primary {
1019
1080
  border-color: var(--primary-color);
@@ -1021,7 +1082,7 @@ svg.lucide {
1021
1082
  }
1022
1083
  .eidos-button--outlined.eidos-button--primary:hover:not(:disabled) {
1023
1084
  background-color: var(--primary-color);
1024
- color: var(--white);
1085
+ color: var(--primary-contrast);
1025
1086
  }
1026
1087
  .eidos-button--outlined.eidos-button--secondary {
1027
1088
  border-color: var(--secondary-color);
@@ -1029,7 +1090,7 @@ svg.lucide {
1029
1090
  }
1030
1091
  .eidos-button--outlined.eidos-button--secondary:hover:not(:disabled) {
1031
1092
  background-color: var(--secondary-color);
1032
- color: var(--white);
1093
+ color: var(--secondary-contrast);
1033
1094
  }
1034
1095
  .eidos-button--outlined.eidos-button--success {
1035
1096
  border-color: var(--success-color);
@@ -1037,7 +1098,7 @@ svg.lucide {
1037
1098
  }
1038
1099
  .eidos-button--outlined.eidos-button--success:hover:not(:disabled) {
1039
1100
  background-color: var(--success-color);
1040
- color: var(--white);
1101
+ color: var(--success-contrast);
1041
1102
  }
1042
1103
  .eidos-button--outlined.eidos-button--danger {
1043
1104
  border-color: var(--danger-color);
@@ -1045,7 +1106,7 @@ svg.lucide {
1045
1106
  }
1046
1107
  .eidos-button--outlined.eidos-button--danger:hover:not(:disabled) {
1047
1108
  background-color: var(--danger-color);
1048
- color: var(--white);
1109
+ color: var(--danger-contrast);
1049
1110
  }
1050
1111
  .eidos-button--outlined.eidos-button--warning {
1051
1112
  border-color: var(--warning-color);
@@ -1053,7 +1114,7 @@ svg.lucide {
1053
1114
  }
1054
1115
  .eidos-button--outlined.eidos-button--warning:hover:not(:disabled) {
1055
1116
  background-color: var(--warning-color);
1056
- color: var(--white);
1117
+ color: var(--warning-contrast);
1057
1118
  }
1058
1119
  .eidos-button--outlined.eidos-button--info {
1059
1120
  border-color: var(--info-color);
@@ -1061,7 +1122,7 @@ svg.lucide {
1061
1122
  }
1062
1123
  .eidos-button--outlined.eidos-button--info:hover:not(:disabled) {
1063
1124
  background-color: var(--info-color);
1064
- color: var(--white);
1125
+ color: var(--info-contrast);
1065
1126
  }
1066
1127
  .eidos-button--text {
1067
1128
  background-color: transparent;
@@ -1290,6 +1351,7 @@ svg.lucide {
1290
1351
  align-items: center;
1291
1352
  cursor: pointer;
1292
1353
  width: fit-content;
1354
+ position: relative;
1293
1355
  }
1294
1356
  .eidos-checkbox-wrapper--disabled {
1295
1357
  cursor: not-allowed;
@@ -1339,6 +1401,7 @@ svg.lucide {
1339
1401
  .eidos-checkbox-wrapper--primary .eidos-checkbox-control--indeterminate {
1340
1402
  background: var(--primary-color);
1341
1403
  border-color: var(--primary-color);
1404
+ color: var(--primary-contrast);
1342
1405
  }
1343
1406
  .eidos-checkbox-wrapper--secondary .eidos-checkbox-input:focus-visible + .eidos-checkbox-control {
1344
1407
  outline: none;
@@ -1348,6 +1411,7 @@ svg.lucide {
1348
1411
  .eidos-checkbox-wrapper--secondary .eidos-checkbox-control--indeterminate {
1349
1412
  background: var(--secondary-color);
1350
1413
  border-color: var(--secondary-color);
1414
+ color: var(--secondary-contrast);
1351
1415
  }
1352
1416
  .eidos-checkbox-wrapper--success .eidos-checkbox-input:focus-visible + .eidos-checkbox-control {
1353
1417
  outline: none;
@@ -1357,6 +1421,7 @@ svg.lucide {
1357
1421
  .eidos-checkbox-wrapper--success .eidos-checkbox-control--indeterminate {
1358
1422
  background: var(--success-color);
1359
1423
  border-color: var(--success-color);
1424
+ color: var(--success-contrast);
1360
1425
  }
1361
1426
  .eidos-checkbox-wrapper--danger .eidos-checkbox-input:focus-visible + .eidos-checkbox-control {
1362
1427
  outline: none;
@@ -1366,6 +1431,7 @@ svg.lucide {
1366
1431
  .eidos-checkbox-wrapper--danger .eidos-checkbox-control--indeterminate {
1367
1432
  background: var(--danger-color);
1368
1433
  border-color: var(--danger-color);
1434
+ color: var(--danger-contrast);
1369
1435
  }
1370
1436
  .eidos-checkbox-wrapper--warning .eidos-checkbox-input:focus-visible + .eidos-checkbox-control {
1371
1437
  outline: none;
@@ -1375,6 +1441,7 @@ svg.lucide {
1375
1441
  .eidos-checkbox-wrapper--warning .eidos-checkbox-control--indeterminate {
1376
1442
  background: var(--warning-color);
1377
1443
  border-color: var(--warning-color);
1444
+ color: var(--warning-contrast);
1378
1445
  }
1379
1446
  .eidos-checkbox-wrapper--info .eidos-checkbox-input:focus-visible + .eidos-checkbox-control {
1380
1447
  outline: none;
@@ -1384,6 +1451,7 @@ svg.lucide {
1384
1451
  .eidos-checkbox-wrapper--info .eidos-checkbox-control--indeterminate {
1385
1452
  background: var(--info-color);
1386
1453
  border-color: var(--info-color);
1454
+ color: var(--info-contrast);
1387
1455
  }
1388
1456
  .eidos-checkbox-wrapper:hover:not(.eidos-checkbox-wrapper--disabled) .eidos-checkbox-control:not(.eidos-checkbox-control--checked):not(.eidos-checkbox-control--indeterminate):not(.eidos-checkbox-control--disabled) {
1389
1457
  border-color: var(--gray-500);
@@ -1422,7 +1490,7 @@ svg.lucide {
1422
1490
  }
1423
1491
 
1424
1492
  .eidos-checkbox-icon {
1425
- color: var(--white);
1493
+ color: inherit;
1426
1494
  flex-shrink: 0;
1427
1495
  }
1428
1496
 
@@ -1498,49 +1566,49 @@ svg.lucide {
1498
1566
  }
1499
1567
  .eidos-chip--filled {
1500
1568
  background-color: var(--primary-color);
1501
- color: var(--white);
1569
+ color: var(--primary-contrast);
1502
1570
  }
1503
1571
  .eidos-chip--filled:hover:not(.eidos-chip--disabled) {
1504
1572
  background-color: var(--primary-dark);
1505
1573
  }
1506
1574
  .eidos-chip--filled.eidos-chip--primary {
1507
1575
  background-color: var(--primary-color);
1508
- color: var(--white);
1576
+ color: var(--primary-contrast);
1509
1577
  }
1510
1578
  .eidos-chip--filled.eidos-chip--primary:hover:not(.eidos-chip--disabled) {
1511
1579
  background-color: var(--primary-dark);
1512
1580
  }
1513
1581
  .eidos-chip--filled.eidos-chip--secondary {
1514
1582
  background-color: var(--secondary-color);
1515
- color: var(--white);
1583
+ color: var(--secondary-contrast);
1516
1584
  }
1517
1585
  .eidos-chip--filled.eidos-chip--secondary:hover:not(.eidos-chip--disabled) {
1518
1586
  background-color: var(--secondary-dark);
1519
1587
  }
1520
1588
  .eidos-chip--filled.eidos-chip--success {
1521
1589
  background-color: var(--success-color);
1522
- color: var(--white);
1590
+ color: var(--success-contrast);
1523
1591
  }
1524
1592
  .eidos-chip--filled.eidos-chip--success:hover:not(.eidos-chip--disabled) {
1525
1593
  background-color: var(--success-dark);
1526
1594
  }
1527
1595
  .eidos-chip--filled.eidos-chip--danger {
1528
1596
  background-color: var(--danger-color);
1529
- color: var(--white);
1597
+ color: var(--danger-contrast);
1530
1598
  }
1531
1599
  .eidos-chip--filled.eidos-chip--danger:hover:not(.eidos-chip--disabled) {
1532
1600
  background-color: var(--danger-dark);
1533
1601
  }
1534
1602
  .eidos-chip--filled.eidos-chip--warning {
1535
1603
  background-color: var(--warning-color);
1536
- color: var(--white);
1604
+ color: var(--warning-contrast);
1537
1605
  }
1538
1606
  .eidos-chip--filled.eidos-chip--warning:hover:not(.eidos-chip--disabled) {
1539
1607
  background-color: var(--warning-dark);
1540
1608
  }
1541
1609
  .eidos-chip--filled.eidos-chip--info {
1542
1610
  background-color: var(--info-color);
1543
- color: var(--white);
1611
+ color: var(--info-contrast);
1544
1612
  }
1545
1613
  .eidos-chip--filled.eidos-chip--info:hover:not(.eidos-chip--disabled) {
1546
1614
  background-color: var(--info-dark);
@@ -1796,14 +1864,15 @@ svg.lucide {
1796
1864
  border-radius: var(--border-radius-sm);
1797
1865
  cursor: crosshair;
1798
1866
  user-select: none;
1867
+ height: 160px;
1799
1868
  }
1800
- .eidos-color-picker--sm .eidos-color-picker-canvas {
1869
+ .eidos-color-picker-panel--sm .eidos-color-picker-canvas {
1801
1870
  height: 120px;
1802
1871
  }
1803
- .eidos-color-picker--md .eidos-color-picker-canvas {
1872
+ .eidos-color-picker-panel--md .eidos-color-picker-canvas {
1804
1873
  height: 160px;
1805
1874
  }
1806
- .eidos-color-picker--lg .eidos-color-picker-canvas {
1875
+ .eidos-color-picker-panel--lg .eidos-color-picker-canvas {
1807
1876
  height: 200px;
1808
1877
  }
1809
1878
 
@@ -1839,6 +1908,7 @@ svg.lucide {
1839
1908
 
1840
1909
  .eidos-color-picker-alpha::-webkit-slider-thumb, .eidos-color-picker-hue::-webkit-slider-thumb {
1841
1910
  -webkit-appearance: none;
1911
+ appearance: none;
1842
1912
  width: 16px;
1843
1913
  height: 16px;
1844
1914
  border-radius: 50%;
@@ -1975,7 +2045,7 @@ svg.lucide {
1975
2045
  }
1976
2046
  .eidos-color-picker-format-btn--active {
1977
2047
  background: var(--primary-color);
1978
- color: var(--white);
2048
+ color: var(--primary-contrast);
1979
2049
  }
1980
2050
  .eidos-color-picker-format-btn:disabled {
1981
2051
  cursor: not-allowed;
@@ -2036,7 +2106,7 @@ svg.lucide {
2036
2106
  .eidos-color-picker-copy--copied {
2037
2107
  background: var(--success-color);
2038
2108
  border-color: var(--success-color);
2039
- color: var(--white);
2109
+ color: var(--success-contrast);
2040
2110
  }
2041
2111
  .eidos-color-picker-copy:disabled {
2042
2112
  opacity: 0.5;
@@ -2889,7 +2959,7 @@ kbd.eidos-cmd-kbd {
2889
2959
  .eidos-data-grid-cell-error {
2890
2960
  position: fixed;
2891
2961
  font-size: 10px;
2892
- color: var(--white);
2962
+ color: var(--danger-contrast);
2893
2963
  background: var(--danger-color);
2894
2964
  white-space: nowrap;
2895
2965
  z-index: var(--z-index-tooltip);
@@ -3529,7 +3599,7 @@ kbd.eidos-cmd-kbd {
3529
3599
  }
3530
3600
  .eidos-calendar-date-cell.eidos-calendar-today.eidos-calendar-selected {
3531
3601
  background-color: var(--primary-600);
3532
- color: var(--white);
3602
+ color: var(--primary-contrast);
3533
3603
  border-color: var(--primary-300);
3534
3604
  }
3535
3605
  .eidos-calendar-date-cell.eidos-calendar-today.eidos-calendar-selected:hover:not(.eidos-calendar-disabled) {
@@ -3546,7 +3616,7 @@ kbd.eidos-cmd-kbd {
3546
3616
  }
3547
3617
  .eidos-calendar-date-cell.eidos-calendar-selected {
3548
3618
  background-color: var(--primary-600);
3549
- color: var(--white);
3619
+ color: var(--primary-contrast);
3550
3620
  font-weight: var(--font-weight-semibold);
3551
3621
  }
3552
3622
  .eidos-calendar-date-cell.eidos-calendar-selected:hover:not(.eidos-calendar-disabled) {
@@ -3563,7 +3633,7 @@ kbd.eidos-cmd-kbd {
3563
3633
  }
3564
3634
  .eidos-calendar-date-cell.eidos-calendar-range-start {
3565
3635
  background-color: var(--primary-600);
3566
- color: var(--white);
3636
+ color: var(--primary-contrast);
3567
3637
  border-top-right-radius: 0;
3568
3638
  border-bottom-right-radius: 0;
3569
3639
  }
@@ -3572,7 +3642,7 @@ kbd.eidos-cmd-kbd {
3572
3642
  }
3573
3643
  .eidos-calendar-date-cell.eidos-calendar-range-end {
3574
3644
  background-color: var(--primary-600);
3575
- color: var(--white);
3645
+ color: var(--primary-contrast);
3576
3646
  border-top-left-radius: 0;
3577
3647
  border-bottom-left-radius: 0;
3578
3648
  }
@@ -5048,6 +5118,7 @@ kbd.eidos-cmd-kbd {
5048
5118
  display: inline-flex;
5049
5119
  flex-direction: column;
5050
5120
  gap: var(--spacing-xs);
5121
+ position: relative;
5051
5122
  }
5052
5123
  .eidos-number-input--fullWidth {
5053
5124
  width: 100%;
@@ -5424,26 +5495,31 @@ kbd.eidos-cmd-kbd {
5424
5495
  }
5425
5496
  .eidos-pagination-page--active {
5426
5497
  border-color: transparent;
5427
- color: var(--white);
5428
5498
  cursor: text;
5429
5499
  }
5430
5500
  .eidos-pagination-page--active.eidos-pagination-page--primary {
5431
5501
  background: var(--primary-color);
5502
+ color: var(--primary-contrast);
5432
5503
  }
5433
5504
  .eidos-pagination-page--active.eidos-pagination-page--secondary {
5434
5505
  background: var(--secondary-color);
5506
+ color: var(--secondary-contrast);
5435
5507
  }
5436
5508
  .eidos-pagination-page--active.eidos-pagination-page--success {
5437
5509
  background: var(--success-color);
5510
+ color: var(--success-contrast);
5438
5511
  }
5439
5512
  .eidos-pagination-page--active.eidos-pagination-page--danger {
5440
5513
  background: var(--danger-color);
5514
+ color: var(--danger-contrast);
5441
5515
  }
5442
5516
  .eidos-pagination-page--active.eidos-pagination-page--warning {
5443
5517
  background: var(--warning-color);
5518
+ color: var(--warning-contrast);
5444
5519
  }
5445
5520
  .eidos-pagination-page--active.eidos-pagination-page--info {
5446
5521
  background: var(--info-color);
5522
+ color: var(--info-contrast);
5447
5523
  }
5448
5524
  .eidos-pagination-page--active:focus {
5449
5525
  box-shadow: 0 0 0 2px rgba(var(--primary-rgb), 0.25);
@@ -5668,6 +5744,7 @@ kbd.eidos-cmd-kbd {
5668
5744
  align-items: center;
5669
5745
  cursor: pointer;
5670
5746
  width: fit-content;
5747
+ position: relative;
5671
5748
  }
5672
5749
  .eidos-radio-wrapper--disabled {
5673
5750
  cursor: not-allowed;
@@ -5716,6 +5793,7 @@ kbd.eidos-cmd-kbd {
5716
5793
  .eidos-radio-wrapper--primary .eidos-radio-control--checked {
5717
5794
  background: var(--primary-color);
5718
5795
  border-color: var(--primary-color);
5796
+ color: var(--primary-contrast);
5719
5797
  }
5720
5798
  .eidos-radio-wrapper--secondary .eidos-radio-input:focus-visible + .eidos-radio-control {
5721
5799
  outline: none;
@@ -5724,6 +5802,7 @@ kbd.eidos-cmd-kbd {
5724
5802
  .eidos-radio-wrapper--secondary .eidos-radio-control--checked {
5725
5803
  background: var(--secondary-color);
5726
5804
  border-color: var(--secondary-color);
5805
+ color: var(--secondary-contrast);
5727
5806
  }
5728
5807
  .eidos-radio-wrapper--success .eidos-radio-input:focus-visible + .eidos-radio-control {
5729
5808
  outline: none;
@@ -5732,6 +5811,7 @@ kbd.eidos-cmd-kbd {
5732
5811
  .eidos-radio-wrapper--success .eidos-radio-control--checked {
5733
5812
  background: var(--success-color);
5734
5813
  border-color: var(--success-color);
5814
+ color: var(--success-contrast);
5735
5815
  }
5736
5816
  .eidos-radio-wrapper--danger .eidos-radio-input:focus-visible + .eidos-radio-control {
5737
5817
  outline: none;
@@ -5740,6 +5820,7 @@ kbd.eidos-cmd-kbd {
5740
5820
  .eidos-radio-wrapper--danger .eidos-radio-control--checked {
5741
5821
  background: var(--danger-color);
5742
5822
  border-color: var(--danger-color);
5823
+ color: var(--danger-contrast);
5743
5824
  }
5744
5825
  .eidos-radio-wrapper--warning .eidos-radio-input:focus-visible + .eidos-radio-control {
5745
5826
  outline: none;
@@ -5748,6 +5829,7 @@ kbd.eidos-cmd-kbd {
5748
5829
  .eidos-radio-wrapper--warning .eidos-radio-control--checked {
5749
5830
  background: var(--warning-color);
5750
5831
  border-color: var(--warning-color);
5832
+ color: var(--warning-contrast);
5751
5833
  }
5752
5834
  .eidos-radio-wrapper--info .eidos-radio-input:focus-visible + .eidos-radio-control {
5753
5835
  outline: none;
@@ -5756,6 +5838,7 @@ kbd.eidos-cmd-kbd {
5756
5838
  .eidos-radio-wrapper--info .eidos-radio-control--checked {
5757
5839
  background: var(--info-color);
5758
5840
  border-color: var(--info-color);
5841
+ color: var(--info-contrast);
5759
5842
  }
5760
5843
  .eidos-radio-wrapper:hover:not(.eidos-radio-wrapper--disabled) .eidos-radio-control:not(.eidos-radio-control--checked):not(.eidos-radio-control--disabled) {
5761
5844
  border-color: var(--gray-500);
@@ -5791,7 +5874,7 @@ kbd.eidos-cmd-kbd {
5791
5874
 
5792
5875
  .eidos-radio-dot {
5793
5876
  border-radius: 50%;
5794
- background: var(--white);
5877
+ background: currentColor;
5795
5878
  flex-shrink: 0;
5796
5879
  transform: scale(0);
5797
5880
  transition: transform 0.2s ease;
@@ -6741,63 +6824,63 @@ kbd.eidos-cmd-kbd {
6741
6824
  .eidos-stepper-step--active.eidos-stepper-step--primary .eidos-stepper-dot {
6742
6825
  background: var(--primary-color);
6743
6826
  border-color: var(--primary-color);
6744
- color: var(--white);
6827
+ color: var(--primary-contrast);
6745
6828
  }
6746
6829
  .eidos-stepper-step--active.eidos-stepper-step--secondary .eidos-stepper-dot {
6747
6830
  background: var(--secondary-color);
6748
6831
  border-color: var(--secondary-color);
6749
- color: var(--white);
6832
+ color: var(--secondary-contrast);
6750
6833
  }
6751
6834
  .eidos-stepper-step--active.eidos-stepper-step--success .eidos-stepper-dot {
6752
6835
  background: var(--success-color);
6753
6836
  border-color: var(--success-color);
6754
- color: var(--white);
6837
+ color: var(--success-contrast);
6755
6838
  }
6756
6839
  .eidos-stepper-step--active.eidos-stepper-step--danger .eidos-stepper-dot {
6757
6840
  background: var(--danger-color);
6758
6841
  border-color: var(--danger-color);
6759
- color: var(--white);
6842
+ color: var(--danger-contrast);
6760
6843
  }
6761
6844
  .eidos-stepper-step--active.eidos-stepper-step--warning .eidos-stepper-dot {
6762
6845
  background: var(--warning-color);
6763
6846
  border-color: var(--warning-color);
6764
- color: var(--white);
6847
+ color: var(--warning-contrast);
6765
6848
  }
6766
6849
  .eidos-stepper-step--active.eidos-stepper-step--info .eidos-stepper-dot {
6767
6850
  background: var(--info-color);
6768
6851
  border-color: var(--info-color);
6769
- color: var(--white);
6852
+ color: var(--info-contrast);
6770
6853
  }
6771
6854
 
6772
6855
  .eidos-stepper-step--completed.eidos-stepper-step--primary .eidos-stepper-dot {
6773
6856
  background: var(--primary-color);
6774
6857
  border-color: var(--primary-color);
6775
- color: var(--white);
6858
+ color: var(--primary-contrast);
6776
6859
  }
6777
6860
  .eidos-stepper-step--completed.eidos-stepper-step--secondary .eidos-stepper-dot {
6778
6861
  background: var(--secondary-color);
6779
6862
  border-color: var(--secondary-color);
6780
- color: var(--white);
6863
+ color: var(--secondary-contrast);
6781
6864
  }
6782
6865
  .eidos-stepper-step--completed.eidos-stepper-step--success .eidos-stepper-dot {
6783
6866
  background: var(--success-color);
6784
6867
  border-color: var(--success-color);
6785
- color: var(--white);
6868
+ color: var(--success-contrast);
6786
6869
  }
6787
6870
  .eidos-stepper-step--completed.eidos-stepper-step--danger .eidos-stepper-dot {
6788
6871
  background: var(--danger-color);
6789
6872
  border-color: var(--danger-color);
6790
- color: var(--white);
6873
+ color: var(--danger-contrast);
6791
6874
  }
6792
6875
  .eidos-stepper-step--completed.eidos-stepper-step--warning .eidos-stepper-dot {
6793
6876
  background: var(--warning-color);
6794
6877
  border-color: var(--warning-color);
6795
- color: var(--white);
6878
+ color: var(--warning-contrast);
6796
6879
  }
6797
6880
  .eidos-stepper-step--completed.eidos-stepper-step--info .eidos-stepper-dot {
6798
6881
  background: var(--info-color);
6799
6882
  border-color: var(--info-color);
6800
- color: var(--white);
6883
+ color: var(--info-contrast);
6801
6884
  }
6802
6885
  .eidos-stepper-step--completed.eidos-stepper-step--primary .eidos-stepper-connector, .eidos-stepper-step--completed.eidos-stepper-step--primary + .eidos-stepper-connector--extend {
6803
6886
  background: var(--primary-color);
@@ -6845,7 +6928,7 @@ kbd.eidos-cmd-kbd {
6845
6928
  .eidos-stepper-step--error .eidos-stepper-dot {
6846
6929
  background: var(--danger-color);
6847
6930
  border-color: var(--danger-color);
6848
- color: var(--white);
6931
+ color: var(--danger-contrast);
6849
6932
  }
6850
6933
 
6851
6934
  .eidos-stepper-label {
@@ -6867,6 +6950,7 @@ kbd.eidos-cmd-kbd {
6867
6950
  align-items: center;
6868
6951
  gap: var(--spacing-sm);
6869
6952
  cursor: pointer;
6953
+ position: relative;
6870
6954
  }
6871
6955
  .eidos-switch-wrapper--disabled {
6872
6956
  cursor: not-allowed;
@@ -6915,36 +6999,42 @@ kbd.eidos-cmd-kbd {
6915
6999
  }
6916
7000
  .eidos-switch-wrapper--primary .eidos-switch-track--checked {
6917
7001
  background: var(--primary-color);
7002
+ color: var(--primary-contrast);
6918
7003
  }
6919
7004
  .eidos-switch-wrapper--primary .eidos-switch-input:focus-visible + .eidos-switch-track {
6920
7005
  box-shadow: 0 0 0 3px rgba(var(--primary-rgb), 0.3);
6921
7006
  }
6922
7007
  .eidos-switch-wrapper--secondary .eidos-switch-track--checked {
6923
7008
  background: var(--secondary-color);
7009
+ color: var(--secondary-contrast);
6924
7010
  }
6925
7011
  .eidos-switch-wrapper--secondary .eidos-switch-input:focus-visible + .eidos-switch-track {
6926
7012
  box-shadow: 0 0 0 3px rgba(var(--secondary-rgb), 0.3);
6927
7013
  }
6928
7014
  .eidos-switch-wrapper--success .eidos-switch-track--checked {
6929
7015
  background: var(--success-color);
7016
+ color: var(--success-contrast);
6930
7017
  }
6931
7018
  .eidos-switch-wrapper--success .eidos-switch-input:focus-visible + .eidos-switch-track {
6932
7019
  box-shadow: 0 0 0 3px rgba(var(--success-rgb), 0.3);
6933
7020
  }
6934
7021
  .eidos-switch-wrapper--danger .eidos-switch-track--checked {
6935
7022
  background: var(--danger-color);
7023
+ color: var(--danger-contrast);
6936
7024
  }
6937
7025
  .eidos-switch-wrapper--danger .eidos-switch-input:focus-visible + .eidos-switch-track {
6938
7026
  box-shadow: 0 0 0 3px rgba(var(--danger-rgb), 0.3);
6939
7027
  }
6940
7028
  .eidos-switch-wrapper--warning .eidos-switch-track--checked {
6941
7029
  background: var(--warning-color);
7030
+ color: var(--warning-contrast);
6942
7031
  }
6943
7032
  .eidos-switch-wrapper--warning .eidos-switch-input:focus-visible + .eidos-switch-track {
6944
7033
  box-shadow: 0 0 0 3px rgba(var(--warning-rgb), 0.3);
6945
7034
  }
6946
7035
  .eidos-switch-wrapper--info .eidos-switch-track--checked {
6947
7036
  background: var(--info-color);
7037
+ color: var(--info-contrast);
6948
7038
  }
6949
7039
  .eidos-switch-wrapper--info .eidos-switch-input:focus-visible + .eidos-switch-track {
6950
7040
  box-shadow: 0 0 0 3px rgba(var(--info-rgb), 0.3);
@@ -6994,6 +7084,9 @@ kbd.eidos-cmd-kbd {
6994
7084
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
6995
7085
  transition: left 0.2s ease;
6996
7086
  }
7087
+ .eidos-switch-track--checked .eidos-switch-thumb {
7088
+ background: currentColor;
7089
+ }
6997
7090
 
6998
7091
  .eidos-table-container {
6999
7092
  background: var(--white);
@@ -7759,13 +7852,21 @@ kbd.eidos-cmd-kbd {
7759
7852
  flex-direction: column;
7760
7853
  }
7761
7854
  .eidos-tabs--line .eidos-tabs-list {
7762
- border-bottom: 2px solid var(--gray-200);
7855
+ padding-bottom: 2px;
7856
+ box-shadow: inset 0 -2px 0 var(--gray-200);
7763
7857
  position: relative;
7764
7858
  gap: 0;
7765
7859
  }
7766
7860
  .eidos-tabs--line .eidos-tab {
7767
7861
  border-radius: 0;
7768
7862
  }
7863
+ .eidos-tabs--enclosed .eidos-tabs-bar {
7864
+ background: var(--gray-100);
7865
+ border-radius: var(--border-radius-md);
7866
+ }
7867
+ .eidos-tabs--enclosed .eidos-tabs-scroll-button:hover {
7868
+ background: var(--gray-200);
7869
+ }
7769
7870
  .eidos-tabs--enclosed .eidos-tabs-list {
7770
7871
  background: var(--gray-100);
7771
7872
  border-radius: var(--border-radius-md);
@@ -7783,11 +7884,73 @@ kbd.eidos-cmd-kbd {
7783
7884
  gap: var(--spacing-xs);
7784
7885
  }
7785
7886
  .eidos-tabs--pills .eidos-tab {
7887
+ height: auto;
7888
+ padding-block: var(--spacing-sm);
7889
+ min-height: 24px;
7786
7890
  border-radius: 9999px;
7787
7891
  }
7788
7892
  .eidos-tabs--pills .eidos-tab--active {
7789
7893
  background: var(--primary-color);
7790
- color: var(--white);
7894
+ color: var(--primary-contrast);
7895
+ }
7896
+
7897
+ .eidos-tabs-bar {
7898
+ display: flex;
7899
+ align-items: stretch;
7900
+ min-width: 0;
7901
+ position: relative;
7902
+ }
7903
+
7904
+ .eidos-tabs-scroll-button {
7905
+ background: none;
7906
+ border: none;
7907
+ padding: 0;
7908
+ margin: 0;
7909
+ font: inherit;
7910
+ cursor: pointer;
7911
+ }
7912
+ .eidos-tabs-scroll-button:focus {
7913
+ outline: none;
7914
+ }
7915
+ .eidos-tabs-scroll-button {
7916
+ display: flex;
7917
+ align-items: center;
7918
+ justify-content: center;
7919
+ position: absolute;
7920
+ top: 50%;
7921
+ transform: translateY(-50%);
7922
+ z-index: 1;
7923
+ padding: var(--spacing-sm);
7924
+ background: rgb(var(--white-rgb), 0.9);
7925
+ border: 1px solid var(--gray-200);
7926
+ border-radius: var(--border-radius-sm);
7927
+ box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
7928
+ color: var(--gray-500);
7929
+ transition: color 0.2s ease, background-color 0.2s ease;
7930
+ }
7931
+ .eidos-tabs-scroll-button--prev {
7932
+ left: 0;
7933
+ }
7934
+ .eidos-tabs-scroll-button--next {
7935
+ right: 0;
7936
+ }
7937
+ .eidos-tabs-scroll-button:hover {
7938
+ color: var(--gray-700);
7939
+ background: var(--gray-100);
7940
+ }
7941
+ .eidos-tabs-scroll-button--sm {
7942
+ font-size: var(--font-size-xs);
7943
+ }
7944
+ .eidos-tabs-scroll-button--md {
7945
+ font-size: var(--font-size-sm);
7946
+ }
7947
+ .eidos-tabs-scroll-button--lg {
7948
+ font-size: var(--font-size-base);
7949
+ }
7950
+
7951
+ .eidos-tabs-scroll-button-icon {
7952
+ width: 1.25em;
7953
+ height: 1.25em;
7791
7954
  }
7792
7955
 
7793
7956
  .eidos-tabs-list {
@@ -7796,9 +7959,24 @@ kbd.eidos-cmd-kbd {
7796
7959
  overflow-x: auto;
7797
7960
  min-width: 0;
7798
7961
  }
7962
+ .eidos-tabs-list--sm {
7963
+ height: var(--component-size-sm);
7964
+ }
7965
+ .eidos-tabs-list--md {
7966
+ height: var(--component-size-md);
7967
+ }
7968
+ .eidos-tabs-list--lg {
7969
+ height: var(--component-size-lg);
7970
+ }
7799
7971
  .eidos-tabs-list--fullWidth .eidos-tab {
7800
7972
  flex: 1;
7801
7973
  }
7974
+ .eidos-tabs-list--hideScrollbar {
7975
+ scrollbar-width: none;
7976
+ }
7977
+ .eidos-tabs-list--hideScrollbar::-webkit-scrollbar {
7978
+ display: none;
7979
+ }
7802
7980
 
7803
7981
  .eidos-tab {
7804
7982
  background: none;
@@ -7819,24 +7997,22 @@ kbd.eidos-cmd-kbd {
7819
7997
  white-space: nowrap;
7820
7998
  color: var(--gray-500);
7821
7999
  font-weight: var(--font-weight-medium);
8000
+ line-height: 1;
7822
8001
  transition: all 0.2s ease;
7823
8002
  border-radius: 0;
7824
- will-change: transform;
8003
+ height: 100%;
7825
8004
  }
7826
8005
  .eidos-tab--sm {
7827
8006
  font-size: var(--font-size-xs);
7828
- padding: var(--spacing-xs) var(--spacing-sm);
7829
- height: var(--component-size-sm);
8007
+ padding-inline: var(--spacing-sm);
7830
8008
  }
7831
8009
  .eidos-tab--md {
7832
8010
  font-size: var(--font-size-sm);
7833
- padding: var(--spacing-xs) var(--spacing-md);
7834
- height: var(--component-size-md);
8011
+ padding-inline: var(--spacing-md);
7835
8012
  }
7836
8013
  .eidos-tab--lg {
7837
8014
  font-size: var(--font-size-base);
7838
- padding: var(--spacing-sm) var(--spacing-md);
7839
- height: var(--component-size-lg);
8015
+ padding-inline: var(--spacing-md);
7840
8016
  }
7841
8017
  .eidos-tab:hover:not(.eidos-tab--disabled):not(.eidos-tab--active) {
7842
8018
  color: var(--gray-700);
@@ -7864,10 +8040,10 @@ kbd.eidos-cmd-kbd {
7864
8040
  }
7865
8041
  .eidos-tabs--primary.eidos-tabs--pills .eidos-tab--active {
7866
8042
  background: var(--primary-color);
7867
- color: var(--white);
8043
+ color: var(--primary-contrast);
7868
8044
  }
7869
8045
  .eidos-tabs--primary .eidos-tab:focus-visible {
7870
- box-shadow: 0 0 0 3px rgba(var(--primary-rgb), 0.3);
8046
+ box-shadow: inset 0 0 0 2px rgba(var(--primary-rgb), 0.5);
7871
8047
  }
7872
8048
 
7873
8049
  .eidos-tabs--secondary .eidos-tab--active {
@@ -7878,10 +8054,10 @@ kbd.eidos-cmd-kbd {
7878
8054
  }
7879
8055
  .eidos-tabs--secondary.eidos-tabs--pills .eidos-tab--active {
7880
8056
  background: var(--secondary-color);
7881
- color: var(--white);
8057
+ color: var(--secondary-contrast);
7882
8058
  }
7883
8059
  .eidos-tabs--secondary .eidos-tab:focus-visible {
7884
- box-shadow: 0 0 0 3px rgba(var(--secondary-rgb), 0.3);
8060
+ box-shadow: inset 0 0 0 2px rgba(var(--secondary-rgb), 0.5);
7885
8061
  }
7886
8062
 
7887
8063
  .eidos-tabs--success .eidos-tab--active {
@@ -7892,10 +8068,10 @@ kbd.eidos-cmd-kbd {
7892
8068
  }
7893
8069
  .eidos-tabs--success.eidos-tabs--pills .eidos-tab--active {
7894
8070
  background: var(--success-color);
7895
- color: var(--white);
8071
+ color: var(--success-contrast);
7896
8072
  }
7897
8073
  .eidos-tabs--success .eidos-tab:focus-visible {
7898
- box-shadow: 0 0 0 3px rgba(var(--success-rgb), 0.3);
8074
+ box-shadow: inset 0 0 0 2px rgba(var(--success-rgb), 0.5);
7899
8075
  }
7900
8076
 
7901
8077
  .eidos-tabs--danger .eidos-tab--active {
@@ -7906,10 +8082,10 @@ kbd.eidos-cmd-kbd {
7906
8082
  }
7907
8083
  .eidos-tabs--danger.eidos-tabs--pills .eidos-tab--active {
7908
8084
  background: var(--danger-color);
7909
- color: var(--white);
8085
+ color: var(--danger-contrast);
7910
8086
  }
7911
8087
  .eidos-tabs--danger .eidos-tab:focus-visible {
7912
- box-shadow: 0 0 0 3px rgba(var(--danger-rgb), 0.3);
8088
+ box-shadow: inset 0 0 0 2px rgba(var(--danger-rgb), 0.5);
7913
8089
  }
7914
8090
 
7915
8091
  .eidos-tabs--warning .eidos-tab--active {
@@ -7920,10 +8096,10 @@ kbd.eidos-cmd-kbd {
7920
8096
  }
7921
8097
  .eidos-tabs--warning.eidos-tabs--pills .eidos-tab--active {
7922
8098
  background: var(--warning-color);
7923
- color: var(--white);
8099
+ color: var(--warning-contrast);
7924
8100
  }
7925
8101
  .eidos-tabs--warning .eidos-tab:focus-visible {
7926
- box-shadow: 0 0 0 3px rgba(var(--warning-rgb), 0.3);
8102
+ box-shadow: inset 0 0 0 2px rgba(var(--warning-rgb), 0.5);
7927
8103
  }
7928
8104
 
7929
8105
  .eidos-tabs--info .eidos-tab--active {
@@ -7934,15 +8110,19 @@ kbd.eidos-cmd-kbd {
7934
8110
  }
7935
8111
  .eidos-tabs--info.eidos-tabs--pills .eidos-tab--active {
7936
8112
  background: var(--info-color);
7937
- color: var(--white);
8113
+ color: var(--info-contrast);
7938
8114
  }
7939
8115
  .eidos-tabs--info .eidos-tab:focus-visible {
7940
- box-shadow: 0 0 0 3px rgba(var(--info-rgb), 0.3);
8116
+ box-shadow: inset 0 0 0 2px rgba(var(--info-rgb), 0.5);
8117
+ }
8118
+
8119
+ .eidos-tabs--pills .eidos-tab--active:focus-visible {
8120
+ box-shadow: inset 0 0 0 2px currentColor;
7941
8121
  }
7942
8122
 
7943
8123
  .eidos-tabs-indicator {
7944
8124
  position: absolute;
7945
- bottom: -2px;
8125
+ bottom: 0;
7946
8126
  left: 0;
7947
8127
  width: 0;
7948
8128
  height: 2px;
@@ -8498,6 +8678,138 @@ kbd.eidos-cmd-kbd {
8498
8678
  border-width: 3px;
8499
8679
  }
8500
8680
  }
8681
+ .eidos-theme-editor {
8682
+ display: flex;
8683
+ flex-direction: column;
8684
+ gap: var(--spacing-md);
8685
+ }
8686
+
8687
+ .eidos-theme-editor-section {
8688
+ display: flex;
8689
+ flex-direction: column;
8690
+ gap: var(--spacing-md);
8691
+ }
8692
+
8693
+ .eidos-theme-editor-section__header {
8694
+ display: flex;
8695
+ flex-direction: column;
8696
+ gap: var(--spacing-xs);
8697
+ }
8698
+
8699
+ .eidos-theme-editor-section__title {
8700
+ font-size: var(--font-size-lg);
8701
+ font-weight: var(--font-weight-semibold);
8702
+ color: var(--dark-color);
8703
+ }
8704
+
8705
+ .eidos-theme-editor-section__hint {
8706
+ font-size: var(--font-size-sm);
8707
+ color: var(--gray-500);
8708
+ }
8709
+ .eidos-theme-editor-section__hint code {
8710
+ font-family: var(--font-family-mono);
8711
+ font-size: var(--font-size-xs);
8712
+ background-color: var(--gray-100);
8713
+ border-radius: var(--border-radius-xs);
8714
+ padding: 0 0.25em;
8715
+ }
8716
+
8717
+ .eidos-theme-editor-rows {
8718
+ display: flex;
8719
+ flex-direction: column;
8720
+ gap: var(--spacing-sm);
8721
+ }
8722
+
8723
+ .eidos-theme-editor-row {
8724
+ display: flex;
8725
+ align-items: center;
8726
+ gap: var(--spacing-md);
8727
+ flex-wrap: wrap;
8728
+ }
8729
+ .eidos-theme-editor-row__label {
8730
+ font-size: var(--font-size-sm);
8731
+ font-weight: var(--font-weight-medium);
8732
+ color: var(--dark-color);
8733
+ flex: 0 0 auto;
8734
+ min-width: 6.5em;
8735
+ }
8736
+ .eidos-theme-editor-row__diagnostics {
8737
+ display: flex;
8738
+ align-items: center;
8739
+ gap: var(--spacing-sm);
8740
+ flex-wrap: wrap;
8741
+ flex: 1 1 auto;
8742
+ min-width: 0;
8743
+ }
8744
+ .eidos-theme-editor-row__actions {
8745
+ display: flex;
8746
+ align-items: center;
8747
+ gap: var(--spacing-xs);
8748
+ flex: 0 0 auto;
8749
+ position: relative;
8750
+ margin-left: auto;
8751
+ }
8752
+ .eidos-theme-editor-row--wide > .eidos-theme-editor-row__control {
8753
+ flex: 1 1 18em;
8754
+ min-width: 0;
8755
+ }
8756
+
8757
+ .eidos-theme-editor-badge {
8758
+ display: inline-flex;
8759
+ align-items: center;
8760
+ gap: var(--spacing-xs);
8761
+ white-space: nowrap;
8762
+ border-radius: 9999px;
8763
+ padding: 0.15em 0.6em;
8764
+ font-size: var(--font-size-xs);
8765
+ font-weight: var(--font-weight-medium);
8766
+ border: 1px solid var(--gray-300);
8767
+ background-color: var(--gray-50);
8768
+ color: var(--gray-700);
8769
+ }
8770
+ .eidos-theme-editor-badge__icon {
8771
+ width: 1em;
8772
+ height: 1em;
8773
+ flex-shrink: 0;
8774
+ }
8775
+ .eidos-theme-editor-badge--aa-large {
8776
+ border-color: var(--gray-400);
8777
+ color: var(--gray-800);
8778
+ }
8779
+ .eidos-theme-editor-badge--fail {
8780
+ border-color: var(--gray-700);
8781
+ background-color: var(--gray-800);
8782
+ color: var(--gray-50);
8783
+ }
8784
+
8785
+ .eidos-theme-editor-file {
8786
+ position: absolute !important;
8787
+ width: 1px !important;
8788
+ height: 1px !important;
8789
+ padding: 0 !important;
8790
+ margin: -1px !important;
8791
+ overflow: hidden !important;
8792
+ clip: rect(0, 0, 0, 0) !important;
8793
+ white-space: nowrap !important;
8794
+ border: 0 !important;
8795
+ }
8796
+
8797
+ .eidos-theme-editor-actions {
8798
+ display: flex;
8799
+ align-items: center;
8800
+ gap: var(--spacing-sm);
8801
+ flex-wrap: wrap;
8802
+ }
8803
+
8804
+ @media (max-width: 767.98px) {
8805
+ .eidos-theme-editor-row {
8806
+ align-items: flex-start;
8807
+ gap: var(--spacing-sm);
8808
+ }
8809
+ .eidos-theme-editor-row__label {
8810
+ min-width: 100%;
8811
+ }
8812
+ }
8501
8813
  .eidos-timeline {
8502
8814
  list-style: none;
8503
8815
  margin: 0;
@@ -8538,22 +8850,22 @@ kbd.eidos-cmd-kbd {
8538
8850
  .eidos-timeline-item--primary .eidos-timeline-dot {
8539
8851
  border-color: var(--primary-color);
8540
8852
  background: var(--primary-color);
8541
- color: var(--white);
8853
+ color: var(--primary-contrast);
8542
8854
  }
8543
8855
  .eidos-timeline-item--secondary .eidos-timeline-dot {
8544
8856
  border-color: var(--secondary-color);
8545
8857
  background: var(--secondary-color);
8546
- color: var(--white);
8858
+ color: var(--secondary-contrast);
8547
8859
  }
8548
8860
  .eidos-timeline-item--success .eidos-timeline-dot {
8549
8861
  border-color: var(--success-color);
8550
8862
  background: var(--success-color);
8551
- color: var(--white);
8863
+ color: var(--success-contrast);
8552
8864
  }
8553
8865
  .eidos-timeline-item--danger .eidos-timeline-dot {
8554
8866
  border-color: var(--danger-color);
8555
8867
  background: var(--danger-color);
8556
- color: var(--white);
8868
+ color: var(--danger-contrast);
8557
8869
  }
8558
8870
  .eidos-timeline-dot::after {
8559
8871
  content: "";
@@ -8872,16 +9184,18 @@ kbd.eidos-cmd-kbd {
8872
9184
  }
8873
9185
  .eidos-pagelayout__content {
8874
9186
  grid-area: content;
8875
- display: grid;
8876
- grid-template-rows: minmax(50px, auto) 1fr auto;
9187
+ display: flex;
9188
+ flex-direction: column;
8877
9189
  background-color: var(--gray-50);
8878
9190
  min-height: 0;
8879
9191
  min-width: 0;
9192
+ overflow: auto;
9193
+ }
9194
+ .eidos-pagelayout__header, .eidos-pagelayout__footer {
9195
+ flex: 0 0 auto;
8880
9196
  }
8881
9197
  .eidos-pagelayout__body {
8882
- overflow: auto;
8883
- min-height: 0;
8884
- min-width: 0;
9198
+ flex: 1 0 auto;
8885
9199
  }
8886
9200
  .eidos-pagelayout__footer.eidos-footer--copyright {
8887
9201
  padding: var(--spacing-md) var(--spacing-xl);
@@ -8889,16 +9203,46 @@ kbd.eidos-cmd-kbd {
8889
9203
  .eidos-pagelayout__header, .eidos-pagelayout__body, .eidos-pagelayout__footer {
8890
9204
  padding: var(--spacing-xl) var(--spacing-xl) 0;
8891
9205
  }
9206
+ @media (max-width: 1279.98px) {
9207
+ .eidos-pagelayout__header, .eidos-pagelayout__body, .eidos-pagelayout__footer {
9208
+ padding: var(--spacing-lg) var(--spacing-lg) 0;
9209
+ }
9210
+ }
9211
+ @media (max-width: 1023.98px) {
9212
+ .eidos-pagelayout__header, .eidos-pagelayout__body, .eidos-pagelayout__footer {
9213
+ padding: var(--spacing-md) var(--spacing-md) 0;
9214
+ }
9215
+ }
9216
+ @media (max-width: 767.98px) {
9217
+ .eidos-pagelayout__header, .eidos-pagelayout__body, .eidos-pagelayout__footer {
9218
+ padding: var(--spacing-sm) var(--spacing-sm) 0;
9219
+ }
9220
+ }
8892
9221
  .eidos-pagelayout__body {
8893
9222
  padding-bottom: var(--spacing-xl);
8894
9223
  }
9224
+ @media (max-width: 1279.98px) {
9225
+ .eidos-pagelayout__body {
9226
+ padding-bottom: var(--spacing-lg);
9227
+ }
9228
+ }
9229
+ @media (max-width: 1023.98px) {
9230
+ .eidos-pagelayout__body {
9231
+ padding-bottom: var(--spacing-md);
9232
+ }
9233
+ }
9234
+ @media (max-width: 767.98px) {
9235
+ .eidos-pagelayout__body {
9236
+ padding-bottom: var(--spacing-sm);
9237
+ }
9238
+ }
8895
9239
 
8896
9240
  .eidos-toolbar {
8897
9241
  display: flex;
8898
9242
  align-items: center;
8899
9243
  justify-content: space-between;
8900
9244
  flex-wrap: wrap;
8901
- row-gap: var(--spacing-xs);
9245
+ gap: var(--spacing-sm) var(--spacing-md);
8902
9246
  padding: var(--spacing-sm) var(--spacing-xl);
8903
9247
  min-height: var(--toolbar-height);
8904
9248
  box-sizing: border-box;
@@ -8920,8 +9264,8 @@ kbd.eidos-cmd-kbd {
8920
9264
  .eidos-toolbar__content {
8921
9265
  display: flex;
8922
9266
  align-items: center;
8923
- gap: var(--spacing-lg);
8924
- flex-shrink: 0;
9267
+ gap: var(--spacing-sm);
9268
+ flex-wrap: wrap;
8925
9269
  }
8926
9270
  .eidos-toolbar__slot {
8927
9271
  display: flex;