simple-table-core 3.8.5 → 3.8.7
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 +19 -0
- package/dist/cjs/src/core/api/TableAPIImpl.d.ts +2 -0
- package/dist/cjs/src/core/rendering/RenderOrchestrator.d.ts +3 -0
- package/dist/cjs/src/core/rendering/SectionRenderer.d.ts +8 -0
- package/dist/cjs/src/core/rendering/TableRenderer.d.ts +3 -0
- package/dist/cjs/src/managers/AnimationCoordinator.d.ts +44 -0
- package/dist/cjs/src/types/SimpleTableConfig.d.ts +10 -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/bodyCell/eventTracking.d.ts +1 -1
- package/dist/cjs/src/utils/bodyCell/types.d.ts +8 -0
- 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/headerWidthUtils.d.ts +6 -0
- package/dist/cjs/stories/examples/music/MusicExample.d.ts +1 -1
- package/dist/cjs/stories/tests/32-ThemesTests.stories.d.ts +1 -17
- package/dist/cjs/stories/tests/46-AutoSizeColumnsTests.stories.d.ts +53 -0
- package/dist/cjs/styles.css +1 -1
- package/dist/index.es.js +1 -1
- package/dist/src/core/SimpleTableVanilla.d.ts +19 -0
- package/dist/src/core/api/TableAPIImpl.d.ts +2 -0
- package/dist/src/core/rendering/RenderOrchestrator.d.ts +3 -0
- package/dist/src/core/rendering/SectionRenderer.d.ts +8 -0
- package/dist/src/core/rendering/TableRenderer.d.ts +3 -0
- package/dist/src/managers/AnimationCoordinator.d.ts +44 -0
- package/dist/src/types/SimpleTableConfig.d.ts +10 -0
- package/dist/src/types/TableAPI.d.ts +6 -1
- package/dist/src/types/Theme.d.ts +1 -1
- package/dist/src/utils/bodyCell/eventTracking.d.ts +1 -1
- package/dist/src/utils/bodyCell/types.d.ts +8 -0
- package/dist/src/utils/charts/createBarChart.d.ts +5 -0
- package/dist/src/utils/charts/createLineAreaChart.d.ts +8 -0
- package/dist/src/utils/headerWidthUtils.d.ts +6 -0
- package/dist/stories/examples/music/MusicExample.d.ts +1 -1
- package/dist/stories/tests/32-ThemesTests.stories.d.ts +1 -17
- package/dist/stories/tests/46-AutoSizeColumnsTests.stories.d.ts +53 -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 +47 -70
- 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
|
|
|
@@ -199,6 +157,18 @@ input {
|
|
|
199
157
|
top: calc(var(--st-calculated-header-height, 0px) - var(--st-external-scroll-padding-top, 0px));
|
|
200
158
|
}
|
|
201
159
|
|
|
160
|
+
/* External scroll mode: pin the column editor's vertical label to the top of
|
|
161
|
+
the scroll viewport so it stays visible as the page scrolls (mirrors the
|
|
162
|
+
sticky header). The label normally stretches the full bar height
|
|
163
|
+
(flex-grow), which leaves sticky no travel room — collapse it to its content
|
|
164
|
+
height and align to the top so it has the full bar height to stick within. */
|
|
165
|
+
.simple-table-root.st-external-scroll .st-column-editor-text {
|
|
166
|
+
position: sticky;
|
|
167
|
+
top: calc(-1 * var(--st-external-scroll-padding-top, 0px));
|
|
168
|
+
align-self: flex-start;
|
|
169
|
+
flex-grow: 0;
|
|
170
|
+
}
|
|
171
|
+
|
|
202
172
|
.st-wrapper-container {
|
|
203
173
|
position: relative;
|
|
204
174
|
display: flex;
|
|
@@ -352,7 +322,7 @@ input {
|
|
|
352
322
|
align-items: center;
|
|
353
323
|
justify-content: center;
|
|
354
324
|
padding: 48px 24px;
|
|
355
|
-
color: var(--st-header-
|
|
325
|
+
color: var(--st-header-icon-color);
|
|
356
326
|
opacity: 0.6;
|
|
357
327
|
font-size: 0.9em;
|
|
358
328
|
}
|
|
@@ -448,6 +418,7 @@ input {
|
|
|
448
418
|
|
|
449
419
|
.st-cell-content {
|
|
450
420
|
display: flex;
|
|
421
|
+
font-size: 14px;
|
|
451
422
|
}
|
|
452
423
|
|
|
453
424
|
.st-row.odd .st-cell-content {
|
|
@@ -491,7 +462,8 @@ input {
|
|
|
491
462
|
.st-header-cell {
|
|
492
463
|
top: 0;
|
|
493
464
|
background-color: var(--st-header-background-color);
|
|
494
|
-
font-weight:
|
|
465
|
+
font-weight: 500;
|
|
466
|
+
font-size: 14px;
|
|
495
467
|
|
|
496
468
|
display: flex;
|
|
497
469
|
align-items: center;
|
|
@@ -961,10 +933,10 @@ input {
|
|
|
961
933
|
align-items: center;
|
|
962
934
|
min-height: var(--st-footer-height, 49px);
|
|
963
935
|
background-color: var(--st-footer-background-color);
|
|
964
|
-
padding:
|
|
936
|
+
padding: 12px 16px;
|
|
965
937
|
border-top: var(--st-border-width) solid var(--st-border-color);
|
|
966
938
|
flex-shrink: 0;
|
|
967
|
-
gap:
|
|
939
|
+
gap: 12px;
|
|
968
940
|
}
|
|
969
941
|
|
|
970
942
|
.simple-table-root.st-footer-position-top .st-footer {
|
|
@@ -979,8 +951,8 @@ input {
|
|
|
979
951
|
}
|
|
980
952
|
|
|
981
953
|
.st-footer-results-text {
|
|
982
|
-
color: var(--st-cell-color);
|
|
983
|
-
font-size:
|
|
954
|
+
color: var(--st-footer-text-color, var(--st-cell-color));
|
|
955
|
+
font-size: 14px;
|
|
984
956
|
white-space: nowrap;
|
|
985
957
|
}
|
|
986
958
|
|
|
@@ -988,13 +960,18 @@ input {
|
|
|
988
960
|
display: flex;
|
|
989
961
|
align-items: center;
|
|
990
962
|
flex-shrink: 0;
|
|
963
|
+
gap: 2px;
|
|
964
|
+
flex-wrap: nowrap;
|
|
965
|
+
overflow: hidden;
|
|
991
966
|
}
|
|
992
967
|
|
|
993
968
|
.st-next-prev-btn {
|
|
994
969
|
display: flex;
|
|
995
970
|
align-items: center;
|
|
996
971
|
justify-content: center;
|
|
997
|
-
padding:
|
|
972
|
+
padding: 6px 8px;
|
|
973
|
+
margin-left: 4px;
|
|
974
|
+
flex-shrink: 0;
|
|
998
975
|
cursor: pointer;
|
|
999
976
|
background-color: transparent;
|
|
1000
977
|
border: none;
|
|
@@ -1019,13 +996,16 @@ input {
|
|
|
1019
996
|
}
|
|
1020
997
|
|
|
1021
998
|
.st-page-btn {
|
|
1022
|
-
|
|
1023
|
-
|
|
999
|
+
padding: 6px 8px;
|
|
1000
|
+
min-width: 36px;
|
|
1001
|
+
flex-shrink: 0;
|
|
1024
1002
|
cursor: pointer;
|
|
1025
1003
|
background-color: transparent;
|
|
1026
1004
|
color: var(--st-page-btn-color);
|
|
1027
1005
|
border: none;
|
|
1028
1006
|
border-radius: var(--st-border-radius);
|
|
1007
|
+
font-size: 13px;
|
|
1008
|
+
font-weight: 500;
|
|
1029
1009
|
transition: background-color var(--st-transition-duration) var(--st-transition-ease);
|
|
1030
1010
|
display: inline-flex;
|
|
1031
1011
|
align-items: center;
|
|
@@ -1043,7 +1023,8 @@ input {
|
|
|
1043
1023
|
|
|
1044
1024
|
.st-page-btn.active {
|
|
1045
1025
|
background-color: var(--st-button-active-background-color);
|
|
1046
|
-
color: white;
|
|
1026
|
+
color: var(--st-header-selected-label-color, var(--st-white));
|
|
1027
|
+
font-weight: 600;
|
|
1047
1028
|
}
|
|
1048
1029
|
|
|
1049
1030
|
/* Set by createTableFooter when page controls exceed MAX_COMPACT_VISIBLE_PAGE_BUTTONS */
|
|
@@ -1055,10 +1036,9 @@ input {
|
|
|
1055
1036
|
display: inline-flex;
|
|
1056
1037
|
align-items: center;
|
|
1057
1038
|
justify-content: center;
|
|
1058
|
-
padding:
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
font-weight: bold;
|
|
1039
|
+
padding: 0 4px;
|
|
1040
|
+
color: var(--st-next-prev-btn-color);
|
|
1041
|
+
font-weight: 400;
|
|
1062
1042
|
}
|
|
1063
1043
|
|
|
1064
1044
|
.editable-cell-input {
|
|
@@ -1066,7 +1046,7 @@ input {
|
|
|
1066
1046
|
top: 0;
|
|
1067
1047
|
left: 0;
|
|
1068
1048
|
border: var(--st-border-width) solid var(--st-border-color);
|
|
1069
|
-
box-shadow: var(--st-edit-cell-shadow
|
|
1049
|
+
box-shadow: var(--st-edit-cell-shadow);
|
|
1070
1050
|
z-index: 1;
|
|
1071
1051
|
outline: none;
|
|
1072
1052
|
height: 100%;
|
|
@@ -1191,7 +1171,7 @@ input {
|
|
|
1191
1171
|
}
|
|
1192
1172
|
|
|
1193
1173
|
.st-column-editor-reset-btn:hover {
|
|
1194
|
-
background-color: var(--st-hover-background-color);
|
|
1174
|
+
background-color: var(--st-button-hover-background-color);
|
|
1195
1175
|
}
|
|
1196
1176
|
|
|
1197
1177
|
.st-column-pin-btn {
|
|
@@ -1399,9 +1379,9 @@ input {
|
|
|
1399
1379
|
justify-content: center;
|
|
1400
1380
|
min-width: 16px;
|
|
1401
1381
|
min-height: 16px;
|
|
1402
|
-
border:
|
|
1382
|
+
border: 1.5px solid var(--st-checkbox-border-color);
|
|
1403
1383
|
border-radius: var(--st-border-radius);
|
|
1404
|
-
background-color: white;
|
|
1384
|
+
background-color: var(--st-checkbox-background-color, var(--st-white));
|
|
1405
1385
|
transition:
|
|
1406
1386
|
background-color var(--st-transition-duration) var(--st-transition-ease),
|
|
1407
1387
|
border-color var(--st-transition-duration) var(--st-transition-ease);
|
|
@@ -1444,7 +1424,7 @@ input {
|
|
|
1444
1424
|
align-items: center;
|
|
1445
1425
|
border-bottom: var(--st-border-width) solid var(--st-border-color);
|
|
1446
1426
|
color: var(--st-cell-color);
|
|
1447
|
-
font-weight:
|
|
1427
|
+
font-weight: 500;
|
|
1448
1428
|
transition: background-color var(--st-transition-duration) var(--st-transition-ease);
|
|
1449
1429
|
}
|
|
1450
1430
|
|
|
@@ -1468,7 +1448,7 @@ input {
|
|
|
1468
1448
|
}
|
|
1469
1449
|
|
|
1470
1450
|
.st-group-name {
|
|
1471
|
-
font-weight:
|
|
1451
|
+
font-weight: 600;
|
|
1472
1452
|
}
|
|
1473
1453
|
|
|
1474
1454
|
.st-group-count {
|
|
@@ -2181,7 +2161,7 @@ input {
|
|
|
2181
2161
|
color: var(--st-tooltip-text-color);
|
|
2182
2162
|
padding: var(--st-tooltip-padding);
|
|
2183
2163
|
border-radius: var(--st-tooltip-border-radius);
|
|
2184
|
-
font-size:
|
|
2164
|
+
font-size: var(--st-tooltip-font-size, 12px);
|
|
2185
2165
|
line-height: 1.4;
|
|
2186
2166
|
max-width: 300px;
|
|
2187
2167
|
word-wrap: break-word;
|
|
@@ -2232,13 +2212,10 @@ input {
|
|
|
2232
2212
|
/* Chart Styles */
|
|
2233
2213
|
/* ========================================== */
|
|
2234
2214
|
|
|
2235
|
-
/*
|
|
2215
|
+
/* Charts render in pixel space (viewBox matches rendered size), so default
|
|
2216
|
+
anti-aliased rendering stays crisp; avoid crispEdges which jags rounded
|
|
2217
|
+
corners and diagonal lines. */
|
|
2236
2218
|
.st-line-area-chart,
|
|
2237
2219
|
.st-bar-chart {
|
|
2238
|
-
|
|
2239
|
-
image-rendering: crisp-edges;
|
|
2240
|
-
}
|
|
2241
|
-
|
|
2242
|
-
.st-bar-chart rect {
|
|
2243
|
-
shape-rendering: crispEdges;
|
|
2220
|
+
overflow: visible;
|
|
2244
2221
|
}
|
|
@@ -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
|
-
}
|