simple-table-core 3.8.6 → 3.8.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/src/core/SimpleTableVanilla.d.ts +37 -0
- package/dist/cjs/src/core/api/TableAPIImpl.d.ts +2 -0
- package/dist/cjs/src/core/rendering/RenderOrchestrator.d.ts +6 -0
- package/dist/cjs/src/core/rendering/TableRenderer.d.ts +6 -0
- package/dist/cjs/src/types/HandleResizeStartProps.d.ts +4 -0
- package/dist/cjs/src/types/HeaderObject.d.ts +5 -1
- package/dist/cjs/src/types/SimpleTableConfig.d.ts +7 -0
- package/dist/cjs/src/types/TableAPI.d.ts +6 -1
- package/dist/cjs/src/types/Theme.d.ts +1 -1
- package/dist/cjs/src/utils/charts/createBarChart.d.ts +5 -0
- package/dist/cjs/src/utils/charts/createLineAreaChart.d.ts +8 -0
- package/dist/cjs/src/utils/headerCell/resizing.d.ts +1 -1
- package/dist/cjs/src/utils/headerCell/styling.d.ts +3 -3
- package/dist/cjs/src/utils/headerCell/types.d.ts +4 -0
- package/dist/cjs/src/utils/headerWidthUtils.d.ts +6 -5
- package/dist/cjs/src/utils/resizeUtils/autoExpandResize.d.ts +14 -3
- package/dist/cjs/src/utils/resizeUtils/compensation.d.ts +7 -1
- package/dist/cjs/src/utils/resizeUtils/index.d.ts +6 -2
- package/dist/cjs/stories/examples/music/MusicExample.d.ts +1 -1
- package/dist/cjs/stories/tests/08-ColumnWidthTests.stories.d.ts +6 -2
- package/dist/cjs/stories/tests/32-ThemesTests.stories.d.ts +1 -17
- package/dist/cjs/stories/tests/39-AutoExpandColumnsTests.stories.d.ts +8 -5
- package/dist/cjs/stories/tests/46-AutoSizeColumnsTests.stories.d.ts +53 -0
- package/dist/cjs/stories/tests/49-AutoWidthAutoExpandTests.stories.d.ts +151 -0
- package/dist/cjs/styles.css +1 -1
- package/dist/index.es.js +1 -1
- package/dist/src/core/SimpleTableVanilla.d.ts +37 -0
- package/dist/src/core/api/TableAPIImpl.d.ts +2 -0
- package/dist/src/core/rendering/RenderOrchestrator.d.ts +6 -0
- package/dist/src/core/rendering/TableRenderer.d.ts +6 -0
- package/dist/src/types/HandleResizeStartProps.d.ts +4 -0
- package/dist/src/types/HeaderObject.d.ts +5 -1
- package/dist/src/types/SimpleTableConfig.d.ts +7 -0
- package/dist/src/types/TableAPI.d.ts +6 -1
- package/dist/src/types/Theme.d.ts +1 -1
- package/dist/src/utils/charts/createBarChart.d.ts +5 -0
- package/dist/src/utils/charts/createLineAreaChart.d.ts +8 -0
- package/dist/src/utils/headerCell/resizing.d.ts +1 -1
- package/dist/src/utils/headerCell/styling.d.ts +3 -3
- package/dist/src/utils/headerCell/types.d.ts +4 -0
- package/dist/src/utils/headerWidthUtils.d.ts +6 -5
- package/dist/src/utils/resizeUtils/autoExpandResize.d.ts +14 -3
- package/dist/src/utils/resizeUtils/compensation.d.ts +7 -1
- package/dist/src/utils/resizeUtils/index.d.ts +6 -2
- package/dist/stories/examples/music/MusicExample.d.ts +1 -1
- package/dist/stories/tests/08-ColumnWidthTests.stories.d.ts +6 -2
- package/dist/stories/tests/32-ThemesTests.stories.d.ts +1 -17
- package/dist/stories/tests/39-AutoExpandColumnsTests.stories.d.ts +8 -5
- package/dist/stories/tests/46-AutoSizeColumnsTests.stories.d.ts +53 -0
- package/dist/stories/tests/49-AutoWidthAutoExpandTests.stories.d.ts +151 -0
- package/dist/styles.css +1 -1
- package/package.json +1 -1
- package/src/styles/all-themes.css +0 -4
- package/src/styles/base.css +35 -75
- package/src/styles/themes/dark.css +7 -5
- package/src/styles/themes/light.css +4 -2
- package/src/styles/themes/modern-dark.css +7 -146
- package/src/styles/themes/modern-light.css +11 -138
- package/src/styles/themes/neutral.css +6 -4
- package/src/styles/themes/theme-custom.css +6 -253
- package/src/styles/themes/frost.css +0 -116
- package/src/styles/themes/sky.css +0 -115
- package/src/styles/themes/violet.css +0 -116
package/src/styles/base.css
CHANGED
|
@@ -61,42 +61,10 @@
|
|
|
61
61
|
--st-neutral-800: #262626;
|
|
62
62
|
--st-neutral-900: #171717;
|
|
63
63
|
|
|
64
|
-
/* Stone colors - used in violet theme */
|
|
65
|
-
--st-stone-100: #f5f5f4;
|
|
66
|
-
--st-stone-200: #e7e5e4;
|
|
67
|
-
--st-stone-300: #d6d3d1;
|
|
68
|
-
--st-stone-400: #a8a29e;
|
|
69
|
-
--st-stone-500: #78716c;
|
|
70
|
-
--st-stone-700: #44403c;
|
|
71
|
-
|
|
72
64
|
/* Red colors - used for warnings/errors */
|
|
73
65
|
--st-red-300: #fca5a5;
|
|
74
66
|
--st-red-400: #f87171;
|
|
75
67
|
|
|
76
|
-
/* Orange colors - used in sky theme warnings */
|
|
77
|
-
--st-orange-400: #fb923c;
|
|
78
|
-
|
|
79
|
-
/* Amber colors - used in violet theme */
|
|
80
|
-
--st-amber-50: #fffbeb;
|
|
81
|
-
--st-amber-100: #fef3c7;
|
|
82
|
-
--st-amber-200: #fde68a;
|
|
83
|
-
|
|
84
|
-
/* Emerald colors - used for charts */
|
|
85
|
-
--st-emerald-400: #34d399;
|
|
86
|
-
--st-emerald-500: #10b981;
|
|
87
|
-
--st-emerald-600: #059669;
|
|
88
|
-
|
|
89
|
-
/* Teal colors - used for charts */
|
|
90
|
-
--st-teal-400: #2dd4bf;
|
|
91
|
-
--st-teal-500: #14b8a6;
|
|
92
|
-
--st-teal-600: #0d9488;
|
|
93
|
-
|
|
94
|
-
/* Sky colors - used in sky theme */
|
|
95
|
-
--st-sky-100: #e0f2fe;
|
|
96
|
-
--st-sky-200: #bae6fd;
|
|
97
|
-
--st-sky-300: #7dd3fc;
|
|
98
|
-
--st-sky-400: #38bdf8;
|
|
99
|
-
|
|
100
68
|
/* Blue colors - used across multiple themes */
|
|
101
69
|
--st-blue-50: #eff6ff;
|
|
102
70
|
--st-blue-100: #dbeafe;
|
|
@@ -108,15 +76,6 @@
|
|
|
108
76
|
--st-blue-800: #1e40af;
|
|
109
77
|
--st-blue-900: #1e3a8a;
|
|
110
78
|
--st-blue-950: #172554;
|
|
111
|
-
|
|
112
|
-
/* Violet colors - used in violet theme */
|
|
113
|
-
--st-violet-50: #f5f3ff;
|
|
114
|
-
--st-violet-100: #ede9fe;
|
|
115
|
-
--st-violet-200: #ddd6fe;
|
|
116
|
-
--st-violet-400: #a78bfa;
|
|
117
|
-
--st-violet-500: #8b5cf6;
|
|
118
|
-
--st-violet-600: #7c3aed;
|
|
119
|
-
--st-violet-800: #5b21b6;
|
|
120
79
|
}
|
|
121
80
|
|
|
122
81
|
.simple-table-root * {
|
|
@@ -124,7 +83,6 @@
|
|
|
124
83
|
/* Scrollbar thumb color */
|
|
125
84
|
scrollbar-color: var(--st-scrollbar-thumb-color) var(--st-scrollbar-bg-color);
|
|
126
85
|
scrollbar-width: var(--st-scrollbar-width);
|
|
127
|
-
scrollbar-thumb-border-radius: var(--st-scrollbar-thumb-border-radius);
|
|
128
86
|
font-family: inherit;
|
|
129
87
|
}
|
|
130
88
|
|
|
@@ -364,7 +322,7 @@ input {
|
|
|
364
322
|
align-items: center;
|
|
365
323
|
justify-content: center;
|
|
366
324
|
padding: 48px 24px;
|
|
367
|
-
color: var(--st-header-
|
|
325
|
+
color: var(--st-header-icon-color);
|
|
368
326
|
opacity: 0.6;
|
|
369
327
|
font-size: 0.9em;
|
|
370
328
|
}
|
|
@@ -460,6 +418,7 @@ input {
|
|
|
460
418
|
|
|
461
419
|
.st-cell-content {
|
|
462
420
|
display: flex;
|
|
421
|
+
font-size: 14px;
|
|
463
422
|
}
|
|
464
423
|
|
|
465
424
|
.st-row.odd .st-cell-content {
|
|
@@ -503,7 +462,8 @@ input {
|
|
|
503
462
|
.st-header-cell {
|
|
504
463
|
top: 0;
|
|
505
464
|
background-color: var(--st-header-background-color);
|
|
506
|
-
font-weight:
|
|
465
|
+
font-weight: 500;
|
|
466
|
+
font-size: 14px;
|
|
507
467
|
|
|
508
468
|
display: flex;
|
|
509
469
|
align-items: center;
|
|
@@ -775,11 +735,6 @@ input {
|
|
|
775
735
|
background-color: var(--st-resize-handle-color);
|
|
776
736
|
}
|
|
777
737
|
|
|
778
|
-
/* Add extra padding to the last column when resize handle is hidden (autoExpandColumns) */
|
|
779
|
-
.st-header-cell.st-no-resize {
|
|
780
|
-
padding-right: var(--st-resize-handle-container-width);
|
|
781
|
-
}
|
|
782
|
-
|
|
783
738
|
.st-row-separator {
|
|
784
739
|
position: absolute;
|
|
785
740
|
width: 100%;
|
|
@@ -973,10 +928,10 @@ input {
|
|
|
973
928
|
align-items: center;
|
|
974
929
|
min-height: var(--st-footer-height, 49px);
|
|
975
930
|
background-color: var(--st-footer-background-color);
|
|
976
|
-
padding:
|
|
931
|
+
padding: 12px 16px;
|
|
977
932
|
border-top: var(--st-border-width) solid var(--st-border-color);
|
|
978
933
|
flex-shrink: 0;
|
|
979
|
-
gap:
|
|
934
|
+
gap: 12px;
|
|
980
935
|
}
|
|
981
936
|
|
|
982
937
|
.simple-table-root.st-footer-position-top .st-footer {
|
|
@@ -991,8 +946,8 @@ input {
|
|
|
991
946
|
}
|
|
992
947
|
|
|
993
948
|
.st-footer-results-text {
|
|
994
|
-
color: var(--st-cell-color);
|
|
995
|
-
font-size:
|
|
949
|
+
color: var(--st-footer-text-color, var(--st-cell-color));
|
|
950
|
+
font-size: 14px;
|
|
996
951
|
white-space: nowrap;
|
|
997
952
|
}
|
|
998
953
|
|
|
@@ -1000,13 +955,18 @@ input {
|
|
|
1000
955
|
display: flex;
|
|
1001
956
|
align-items: center;
|
|
1002
957
|
flex-shrink: 0;
|
|
958
|
+
gap: 2px;
|
|
959
|
+
flex-wrap: nowrap;
|
|
960
|
+
overflow: hidden;
|
|
1003
961
|
}
|
|
1004
962
|
|
|
1005
963
|
.st-next-prev-btn {
|
|
1006
964
|
display: flex;
|
|
1007
965
|
align-items: center;
|
|
1008
966
|
justify-content: center;
|
|
1009
|
-
padding:
|
|
967
|
+
padding: 6px 8px;
|
|
968
|
+
margin-left: 4px;
|
|
969
|
+
flex-shrink: 0;
|
|
1010
970
|
cursor: pointer;
|
|
1011
971
|
background-color: transparent;
|
|
1012
972
|
border: none;
|
|
@@ -1031,13 +991,16 @@ input {
|
|
|
1031
991
|
}
|
|
1032
992
|
|
|
1033
993
|
.st-page-btn {
|
|
1034
|
-
|
|
1035
|
-
|
|
994
|
+
padding: 6px 8px;
|
|
995
|
+
min-width: 36px;
|
|
996
|
+
flex-shrink: 0;
|
|
1036
997
|
cursor: pointer;
|
|
1037
998
|
background-color: transparent;
|
|
1038
999
|
color: var(--st-page-btn-color);
|
|
1039
1000
|
border: none;
|
|
1040
1001
|
border-radius: var(--st-border-radius);
|
|
1002
|
+
font-size: 13px;
|
|
1003
|
+
font-weight: 500;
|
|
1041
1004
|
transition: background-color var(--st-transition-duration) var(--st-transition-ease);
|
|
1042
1005
|
display: inline-flex;
|
|
1043
1006
|
align-items: center;
|
|
@@ -1055,7 +1018,8 @@ input {
|
|
|
1055
1018
|
|
|
1056
1019
|
.st-page-btn.active {
|
|
1057
1020
|
background-color: var(--st-button-active-background-color);
|
|
1058
|
-
color: white;
|
|
1021
|
+
color: var(--st-header-selected-label-color, var(--st-white));
|
|
1022
|
+
font-weight: 600;
|
|
1059
1023
|
}
|
|
1060
1024
|
|
|
1061
1025
|
/* Set by createTableFooter when page controls exceed MAX_COMPACT_VISIBLE_PAGE_BUTTONS */
|
|
@@ -1067,10 +1031,9 @@ input {
|
|
|
1067
1031
|
display: inline-flex;
|
|
1068
1032
|
align-items: center;
|
|
1069
1033
|
justify-content: center;
|
|
1070
|
-
padding:
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
font-weight: bold;
|
|
1034
|
+
padding: 0 4px;
|
|
1035
|
+
color: var(--st-next-prev-btn-color);
|
|
1036
|
+
font-weight: 400;
|
|
1074
1037
|
}
|
|
1075
1038
|
|
|
1076
1039
|
.editable-cell-input {
|
|
@@ -1078,7 +1041,7 @@ input {
|
|
|
1078
1041
|
top: 0;
|
|
1079
1042
|
left: 0;
|
|
1080
1043
|
border: var(--st-border-width) solid var(--st-border-color);
|
|
1081
|
-
box-shadow: var(--st-edit-cell-shadow
|
|
1044
|
+
box-shadow: var(--st-edit-cell-shadow);
|
|
1082
1045
|
z-index: 1;
|
|
1083
1046
|
outline: none;
|
|
1084
1047
|
height: 100%;
|
|
@@ -1203,7 +1166,7 @@ input {
|
|
|
1203
1166
|
}
|
|
1204
1167
|
|
|
1205
1168
|
.st-column-editor-reset-btn:hover {
|
|
1206
|
-
background-color: var(--st-hover-background-color);
|
|
1169
|
+
background-color: var(--st-button-hover-background-color);
|
|
1207
1170
|
}
|
|
1208
1171
|
|
|
1209
1172
|
.st-column-pin-btn {
|
|
@@ -1411,9 +1374,9 @@ input {
|
|
|
1411
1374
|
justify-content: center;
|
|
1412
1375
|
min-width: 16px;
|
|
1413
1376
|
min-height: 16px;
|
|
1414
|
-
border:
|
|
1377
|
+
border: 1.5px solid var(--st-checkbox-border-color);
|
|
1415
1378
|
border-radius: var(--st-border-radius);
|
|
1416
|
-
background-color: white;
|
|
1379
|
+
background-color: var(--st-checkbox-background-color, var(--st-white));
|
|
1417
1380
|
transition:
|
|
1418
1381
|
background-color var(--st-transition-duration) var(--st-transition-ease),
|
|
1419
1382
|
border-color var(--st-transition-duration) var(--st-transition-ease);
|
|
@@ -1456,7 +1419,7 @@ input {
|
|
|
1456
1419
|
align-items: center;
|
|
1457
1420
|
border-bottom: var(--st-border-width) solid var(--st-border-color);
|
|
1458
1421
|
color: var(--st-cell-color);
|
|
1459
|
-
font-weight:
|
|
1422
|
+
font-weight: 500;
|
|
1460
1423
|
transition: background-color var(--st-transition-duration) var(--st-transition-ease);
|
|
1461
1424
|
}
|
|
1462
1425
|
|
|
@@ -1480,7 +1443,7 @@ input {
|
|
|
1480
1443
|
}
|
|
1481
1444
|
|
|
1482
1445
|
.st-group-name {
|
|
1483
|
-
font-weight:
|
|
1446
|
+
font-weight: 600;
|
|
1484
1447
|
}
|
|
1485
1448
|
|
|
1486
1449
|
.st-group-count {
|
|
@@ -2193,7 +2156,7 @@ input {
|
|
|
2193
2156
|
color: var(--st-tooltip-text-color);
|
|
2194
2157
|
padding: var(--st-tooltip-padding);
|
|
2195
2158
|
border-radius: var(--st-tooltip-border-radius);
|
|
2196
|
-
font-size:
|
|
2159
|
+
font-size: var(--st-tooltip-font-size, 12px);
|
|
2197
2160
|
line-height: 1.4;
|
|
2198
2161
|
max-width: 300px;
|
|
2199
2162
|
word-wrap: break-word;
|
|
@@ -2244,13 +2207,10 @@ input {
|
|
|
2244
2207
|
/* Chart Styles */
|
|
2245
2208
|
/* ========================================== */
|
|
2246
2209
|
|
|
2247
|
-
/*
|
|
2210
|
+
/* Charts render in pixel space (viewBox matches rendered size), so default
|
|
2211
|
+
anti-aliased rendering stays crisp; avoid crispEdges which jags rounded
|
|
2212
|
+
corners and diagonal lines. */
|
|
2248
2213
|
.st-line-area-chart,
|
|
2249
2214
|
.st-bar-chart {
|
|
2250
|
-
|
|
2251
|
-
image-rendering: crisp-edges;
|
|
2252
|
-
}
|
|
2253
|
-
|
|
2254
|
-
.st-bar-chart rect {
|
|
2255
|
-
shape-rendering: crispEdges;
|
|
2215
|
+
overflow: visible;
|
|
2256
2216
|
}
|
|
@@ -12,17 +12,18 @@
|
|
|
12
12
|
--st-scrollbar-bg-color: var(--st-gray-900);
|
|
13
13
|
--st-scrollbar-thumb-color: var(--st-gray-600);
|
|
14
14
|
--st-scrollbar-width: thin;
|
|
15
|
-
--st-scrollbar-thumb-border-radius: 4px;
|
|
16
15
|
|
|
17
16
|
/* Base/Structural colors */
|
|
18
17
|
--st-border-color: var(--st-gray-700);
|
|
18
|
+
--st-body-background-color: var(--st-gray-900);
|
|
19
19
|
--st-footer-background-color: var(--st-gray-900);
|
|
20
|
+
--st-footer-text-color: var(--st-gray-300);
|
|
20
21
|
--st-last-group-row-separator-border-color: var(--st-gray-500);
|
|
21
22
|
|
|
22
23
|
/* Row colors */
|
|
23
24
|
--st-odd-row-background-color: var(--st-gray-800);
|
|
24
25
|
--st-even-row-background-color: var(--st-gray-900);
|
|
25
|
-
--st-hover-row-background-color: var(--st-gray-
|
|
26
|
+
--st-hover-row-background-color: var(--st-gray-700);
|
|
26
27
|
--st-selected-row-background-color: var(--st-blue-950);
|
|
27
28
|
|
|
28
29
|
/* Column colors */
|
|
@@ -70,6 +71,7 @@
|
|
|
70
71
|
--st-page-btn-hover-background-color: var(--st-gray-600);
|
|
71
72
|
|
|
72
73
|
/* Checkbox colors */
|
|
74
|
+
--st-checkbox-background-color: var(--st-gray-800);
|
|
73
75
|
--st-checkbox-checked-background-color: var(--st-blue-500);
|
|
74
76
|
--st-checkbox-checked-border-color: var(--st-blue-500);
|
|
75
77
|
--st-checkbox-border-color: var(--st-gray-600);
|
|
@@ -86,7 +88,7 @@
|
|
|
86
88
|
--st-filter-button-disabled-text-color: var(--st-gray-500);
|
|
87
89
|
|
|
88
90
|
/* Flash/Animation colors */
|
|
89
|
-
--st-cell-flash-color: var(--st-gray-
|
|
91
|
+
--st-cell-flash-color: var(--st-gray-600);
|
|
90
92
|
--st-copy-flash-color: var(--st-blue-500);
|
|
91
93
|
--st-warning-flash-color: var(--st-red-400);
|
|
92
94
|
|
|
@@ -94,8 +96,8 @@
|
|
|
94
96
|
--st-tooltip-background-color: var(--st-gray-100);
|
|
95
97
|
--st-tooltip-text-color: var(--st-gray-900);
|
|
96
98
|
--st-tooltip-border-radius: 6px;
|
|
97
|
-
--st-tooltip-padding:
|
|
98
|
-
--st-tooltip-font-size:
|
|
99
|
+
--st-tooltip-padding: 6px 10px;
|
|
100
|
+
--st-tooltip-font-size: 12px;
|
|
99
101
|
--st-tooltip-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
|
|
100
102
|
|
|
101
103
|
/* Header selection colors */
|
|
@@ -15,7 +15,9 @@
|
|
|
15
15
|
|
|
16
16
|
/* Base/Structural colors */
|
|
17
17
|
--st-border-color: var(--st-slate-300);
|
|
18
|
+
--st-body-background-color: var(--st-white);
|
|
18
19
|
--st-footer-background-color: var(--st-slate-50);
|
|
20
|
+
--st-footer-text-color: var(--st-slate-600);
|
|
19
21
|
--st-last-group-row-separator-border-color: var(--st-slate-400);
|
|
20
22
|
|
|
21
23
|
/* Row colors */
|
|
@@ -93,8 +95,8 @@
|
|
|
93
95
|
--st-tooltip-background-color: var(--st-slate-900);
|
|
94
96
|
--st-tooltip-text-color: var(--st-white);
|
|
95
97
|
--st-tooltip-border-radius: 6px;
|
|
96
|
-
--st-tooltip-padding:
|
|
97
|
-
--st-tooltip-font-size:
|
|
98
|
+
--st-tooltip-padding: 6px 10px;
|
|
99
|
+
--st-tooltip-font-size: 12px;
|
|
98
100
|
--st-tooltip-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
|
|
99
101
|
|
|
100
102
|
/* Header selection colors */
|
|
@@ -11,6 +11,9 @@
|
|
|
11
11
|
* - Lightweight visual hierarchy
|
|
12
12
|
*
|
|
13
13
|
* Inspired by: GitHub dark mode, VS Code, and modern dark UIs
|
|
14
|
+
*
|
|
15
|
+
* All structural rules (footer, pagination, typography) live in base.css and
|
|
16
|
+
* are driven by these tokens, so this theme is a pure token set.
|
|
14
17
|
*/
|
|
15
18
|
.theme-modern-dark {
|
|
16
19
|
/* Layout/Structure variables - Tighter, more compact */
|
|
@@ -29,12 +32,12 @@
|
|
|
29
32
|
/* Base/Structural colors - Subtle dark borders */
|
|
30
33
|
--st-border-color: #374151;
|
|
31
34
|
--st-footer-background-color: #1f2937;
|
|
35
|
+
--st-footer-text-color: #d1d5db;
|
|
32
36
|
--st-last-group-row-separator-border-color: #4b5563;
|
|
33
37
|
|
|
34
|
-
/* Row colors - Dark background
|
|
35
|
-
* rows lift slightly to keep the table readable on a dark canvas. */
|
|
38
|
+
/* Row colors - Dark background, hover instead of stripes */
|
|
36
39
|
--st-odd-row-background-color: #1f2937;
|
|
37
|
-
--st-even-row-background-color: #
|
|
40
|
+
--st-even-row-background-color: #1f2937;
|
|
38
41
|
--st-hover-row-background-color: #374151;
|
|
39
42
|
--st-selected-row-background-color: #1e3a5f;
|
|
40
43
|
|
|
@@ -83,6 +86,7 @@
|
|
|
83
86
|
--st-page-btn-hover-background-color: #374151;
|
|
84
87
|
|
|
85
88
|
/* Checkbox colors */
|
|
89
|
+
--st-checkbox-background-color: #1f2937;
|
|
86
90
|
--st-checkbox-checked-background-color: #3b82f6;
|
|
87
91
|
--st-checkbox-checked-border-color: #3b82f6;
|
|
88
92
|
--st-checkbox-border-color: #4b5563;
|
|
@@ -129,146 +133,3 @@
|
|
|
129
133
|
/* Body background for state rows */
|
|
130
134
|
--st-body-background-color: #1f2937;
|
|
131
135
|
}
|
|
132
|
-
|
|
133
|
-
/* Modern Dark theme specific overrides for even cleaner look */
|
|
134
|
-
.theme-modern-dark .st-wrapper {
|
|
135
|
-
border: 1px solid #374151;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
/* Subtle header border */
|
|
139
|
-
.theme-modern-dark .st-header-pinned-left,
|
|
140
|
-
.theme-modern-dark .st-header-main,
|
|
141
|
-
.theme-modern-dark .st-header-pinned-right {
|
|
142
|
-
border-bottom: 1px solid #374151;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
/* Remove heavy borders on pinned sections */
|
|
146
|
-
.theme-modern-dark .st-header-pinned-left,
|
|
147
|
-
.theme-modern-dark .st-body-pinned-left {
|
|
148
|
-
border-right: 1px solid #374151;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
.theme-modern-dark .st-header-pinned-right,
|
|
152
|
-
.theme-modern-dark .st-body-pinned-right {
|
|
153
|
-
border-left: 1px solid #374151;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
/* Cleaner row separators */
|
|
157
|
-
.theme-modern-dark .st-row-separator {
|
|
158
|
-
background-color: #374151;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
/* Lighter header cell styling */
|
|
162
|
-
.theme-modern-dark .st-header-cell {
|
|
163
|
-
font-weight: 500;
|
|
164
|
-
font-size: 14px;
|
|
165
|
-
color: #d1d5db;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
/* Cleaner cell text */
|
|
169
|
-
.theme-modern-dark .st-cell-content {
|
|
170
|
-
font-size: 14px;
|
|
171
|
-
color: #f3f4f6;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
/* Subtle hover effect */
|
|
175
|
-
.theme-modern-dark .st-row.hovered {
|
|
176
|
-
transition: background-color 0.15s ease;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
/* Modern footer styling */
|
|
180
|
-
.theme-modern-dark .st-footer {
|
|
181
|
-
border-top: 1px solid #374151;
|
|
182
|
-
background-color: #1f2937;
|
|
183
|
-
padding: 12px 16px;
|
|
184
|
-
gap: 12px;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
/* Footer text color */
|
|
188
|
-
.theme-modern-dark .st-footer-results-text {
|
|
189
|
-
color: #d1d5db;
|
|
190
|
-
font-size: 14px;
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
/* Footer pagination container - hide extra buttons on smaller screens */
|
|
194
|
-
.theme-modern-dark .st-footer-pagination {
|
|
195
|
-
gap: 2px;
|
|
196
|
-
flex-wrap: nowrap;
|
|
197
|
-
overflow: hidden;
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
/* Pagination ellipsis */
|
|
201
|
-
.theme-modern-dark .st-page-ellipsis {
|
|
202
|
-
color: #9ca3af;
|
|
203
|
-
font-weight: 400;
|
|
204
|
-
padding: 0 4px;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
/* Cleaner pagination buttons - more compact */
|
|
208
|
-
.theme-modern-dark .st-page-btn {
|
|
209
|
-
border-radius: 4px;
|
|
210
|
-
font-size: 13px;
|
|
211
|
-
font-weight: 500;
|
|
212
|
-
color: #d1d5db;
|
|
213
|
-
padding: 6px 8px;
|
|
214
|
-
min-width: 36px;
|
|
215
|
-
transition: all 0.15s ease;
|
|
216
|
-
margin-right: 0;
|
|
217
|
-
flex-shrink: 0;
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
.theme-modern-dark .st-page-btn:hover {
|
|
221
|
-
background-color: #374151;
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
.theme-modern-dark .st-page-btn.active {
|
|
225
|
-
background-color: #3b82f6;
|
|
226
|
-
color: white;
|
|
227
|
-
font-weight: 600;
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
/* Next/Prev buttons */
|
|
231
|
-
.theme-modern-dark .st-next-prev-btn {
|
|
232
|
-
padding: 6px 8px;
|
|
233
|
-
border-radius: 4px;
|
|
234
|
-
transition: all 0.15s ease;
|
|
235
|
-
margin-left: 4px;
|
|
236
|
-
flex-shrink: 0;
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
.theme-modern-dark .st-next-prev-btn:not(.disabled):hover {
|
|
240
|
-
background-color: #374151;
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
.theme-modern-dark .st-next-prev-btn.disabled > * {
|
|
244
|
-
fill: #4b5563;
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
/* Modern scrollbar */
|
|
248
|
-
.theme-modern-dark .st-horizontal-scrollbar-container {
|
|
249
|
-
border-top: 1px solid #374151;
|
|
250
|
-
background-color: #111827;
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
/* Cleaner group headers */
|
|
254
|
-
.theme-modern-dark .st-group-header {
|
|
255
|
-
border-bottom: 1px solid #374151;
|
|
256
|
-
font-weight: 500;
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
/* Modern checkbox styling */
|
|
260
|
-
.theme-modern-dark .st-checkbox-custom {
|
|
261
|
-
border-radius: 4px;
|
|
262
|
-
border: 1.5px solid #4b5563;
|
|
263
|
-
background-color: #1f2937;
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
.theme-modern-dark .st-checkbox-custom.st-checked {
|
|
267
|
-
background-color: #3b82f6;
|
|
268
|
-
border-color: #3b82f6;
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
/* Empty state styling */
|
|
272
|
-
.theme-modern-dark .st-empty-state {
|
|
273
|
-
color: #9ca3af;
|
|
274
|
-
}
|
|
@@ -11,8 +11,14 @@
|
|
|
11
11
|
* - Lightweight visual hierarchy
|
|
12
12
|
*
|
|
13
13
|
* Inspired by: Tailwind UI, Shadcn UI, and modern SaaS dashboards
|
|
14
|
+
*
|
|
15
|
+
* `.theme-custom` shares these tokens: it is the baseline for the theme
|
|
16
|
+
* builder (`theme="custom"`), which overrides individual tokens inline.
|
|
17
|
+
* All structural rules (footer, pagination, typography) live in base.css
|
|
18
|
+
* and are driven by these tokens, so themes are pure token sets.
|
|
14
19
|
*/
|
|
15
|
-
.theme-modern-light
|
|
20
|
+
.theme-modern-light,
|
|
21
|
+
.theme-custom {
|
|
16
22
|
/* Layout/Structure variables - Tighter, more compact */
|
|
17
23
|
--st-border-radius: 4px;
|
|
18
24
|
--st-cell-padding: 12px;
|
|
@@ -29,12 +35,12 @@
|
|
|
29
35
|
/* Base/Structural colors - Visible but still light (gray-200) */
|
|
30
36
|
--st-border-color: #e5e7eb;
|
|
31
37
|
--st-footer-background-color: var(--st-white);
|
|
38
|
+
--st-footer-text-color: #6b7280;
|
|
32
39
|
--st-last-group-row-separator-border-color: #e5e7eb;
|
|
33
40
|
|
|
34
|
-
/* Row colors - Clean white background
|
|
35
|
-
* even rows pick up a very subtle off-white band for readable striping. */
|
|
41
|
+
/* Row colors - Clean white background, hover instead of stripes */
|
|
36
42
|
--st-odd-row-background-color: var(--st-white);
|
|
37
|
-
--st-even-row-background-color:
|
|
43
|
+
--st-even-row-background-color: var(--st-white);
|
|
38
44
|
--st-hover-row-background-color: #f3f4f6;
|
|
39
45
|
--st-selected-row-background-color: #eff6ff;
|
|
40
46
|
|
|
@@ -79,7 +85,7 @@
|
|
|
79
85
|
--st-button-active-background-color: #3b82f6;
|
|
80
86
|
--st-next-prev-btn-color: #6b7280;
|
|
81
87
|
--st-next-prev-btn-disabled-color: #d1d5db;
|
|
82
|
-
--st-page-btn-color: #
|
|
88
|
+
--st-page-btn-color: #374151;
|
|
83
89
|
--st-page-btn-hover-background-color: #f3f4f6;
|
|
84
90
|
|
|
85
91
|
/* Checkbox colors */
|
|
@@ -129,136 +135,3 @@
|
|
|
129
135
|
/* Body background for state rows */
|
|
130
136
|
--st-body-background-color: var(--st-white);
|
|
131
137
|
}
|
|
132
|
-
|
|
133
|
-
/* Modern Light theme specific overrides for even cleaner look */
|
|
134
|
-
.theme-modern-light .st-wrapper {
|
|
135
|
-
border: 1px solid var(--st-border-color);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
/* Subtle header border */
|
|
139
|
-
.theme-modern-light .st-header-pinned-left,
|
|
140
|
-
.theme-modern-light .st-header-main,
|
|
141
|
-
.theme-modern-light .st-header-pinned-right {
|
|
142
|
-
border-bottom: 1px solid var(--st-border-color);
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
/* Remove heavy borders on pinned sections */
|
|
146
|
-
.theme-modern-light .st-header-pinned-left,
|
|
147
|
-
.theme-modern-light .st-body-pinned-left {
|
|
148
|
-
border-right: 1px solid var(--st-border-color);
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
.theme-modern-light .st-header-pinned-right,
|
|
152
|
-
.theme-modern-light .st-body-pinned-right {
|
|
153
|
-
border-left: 1px solid var(--st-border-color);
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
/* Row separators — match grid lines for readable horizontal breaks */
|
|
157
|
-
.theme-modern-light .st-row-separator {
|
|
158
|
-
background-color: var(--st-border-color);
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
/* Lighter header cell styling */
|
|
162
|
-
.theme-modern-light .st-header-cell {
|
|
163
|
-
font-weight: 500;
|
|
164
|
-
font-size: 14px;
|
|
165
|
-
color: #6b7280;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
/* Cleaner cell text */
|
|
169
|
-
.theme-modern-light .st-cell-content {
|
|
170
|
-
font-size: 14px;
|
|
171
|
-
color: #111827;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
/* Subtle hover effect */
|
|
175
|
-
.theme-modern-light .st-row.hovered {
|
|
176
|
-
transition: background-color 0.15s ease;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
/* Modern footer styling */
|
|
180
|
-
.theme-modern-light .st-footer {
|
|
181
|
-
border-top: 1px solid var(--st-border-color);
|
|
182
|
-
background-color: var(--st-white);
|
|
183
|
-
padding: 12px 16px;
|
|
184
|
-
gap: 12px;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
/* Footer text styling */
|
|
188
|
-
.theme-modern-light .st-footer-results-text {
|
|
189
|
-
color: #6b7280;
|
|
190
|
-
font-size: 14px;
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
/* Footer pagination container - hide extra buttons on smaller screens */
|
|
194
|
-
.theme-modern-light .st-footer-pagination {
|
|
195
|
-
gap: 2px;
|
|
196
|
-
flex-wrap: nowrap;
|
|
197
|
-
overflow: hidden;
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
/* Pagination ellipsis */
|
|
201
|
-
.theme-modern-light .st-page-ellipsis {
|
|
202
|
-
color: #9ca3af;
|
|
203
|
-
font-weight: 400;
|
|
204
|
-
padding: 0 4px;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
/* Cleaner pagination buttons - more compact */
|
|
208
|
-
.theme-modern-light .st-page-btn {
|
|
209
|
-
border-radius: 4px;
|
|
210
|
-
font-size: 13px;
|
|
211
|
-
font-weight: 500;
|
|
212
|
-
color: #374151;
|
|
213
|
-
padding: 6px 8px;
|
|
214
|
-
min-width: 36px;
|
|
215
|
-
transition: all 0.15s ease;
|
|
216
|
-
margin-right: 0;
|
|
217
|
-
flex-shrink: 0;
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
.theme-modern-light .st-page-btn:hover {
|
|
221
|
-
background-color: #f3f4f6;
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
.theme-modern-light .st-page-btn.active {
|
|
225
|
-
background-color: #3b82f6;
|
|
226
|
-
color: white;
|
|
227
|
-
font-weight: 600;
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
/* Next/Prev buttons */
|
|
231
|
-
.theme-modern-light .st-next-prev-btn {
|
|
232
|
-
padding: 6px 8px;
|
|
233
|
-
border-radius: 4px;
|
|
234
|
-
transition: all 0.15s ease;
|
|
235
|
-
margin-left: 4px;
|
|
236
|
-
flex-shrink: 0;
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
.theme-modern-light .st-next-prev-btn:not(.disabled):hover {
|
|
240
|
-
background-color: #f3f4f6;
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
/* Modern scrollbar */
|
|
244
|
-
.theme-modern-light .st-horizontal-scrollbar-container {
|
|
245
|
-
border-top: 1px solid var(--st-border-color);
|
|
246
|
-
background-color: #fafafa;
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
/* Cleaner group headers */
|
|
250
|
-
.theme-modern-light .st-group-header {
|
|
251
|
-
border-bottom: 1px solid var(--st-border-color);
|
|
252
|
-
font-weight: 500;
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
/* Modern checkbox styling */
|
|
256
|
-
.theme-modern-light .st-checkbox-custom {
|
|
257
|
-
border-radius: 4px;
|
|
258
|
-
border: 1.5px solid #d1d5db;
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
.theme-modern-light .st-checkbox-custom.st-checked {
|
|
262
|
-
background-color: #3b82f6;
|
|
263
|
-
border-color: #3b82f6;
|
|
264
|
-
}
|