flexdesk 0.17.9 → 0.17.11
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/CHANGELOG.md +42 -0
- package/css/base.css +83 -83
- package/css/flexdesk.css +123 -123
- package/css/overrides.css +19 -19
- package/css/tokens.css +16 -2
- package/dist/flexdesk.css +123 -123
- package/dist/tokens.css +16 -2
- package/docs/concepts/styling.md +134 -0
- package/package.json +1 -1
package/css/flexdesk.css
CHANGED
|
@@ -734,7 +734,7 @@ body.twm-dt-col-resizing {
|
|
|
734
734
|
second keeps the readonly tables, which hover never claimed, working. */
|
|
735
735
|
.twm-preview-table:not(.twm-preview-table--readonly) tbody tr.selected td,
|
|
736
736
|
.twm-preview-table tbody tr.selected td {
|
|
737
|
-
background: var(--state-selected
|
|
737
|
+
background: var(--state-selected);
|
|
738
738
|
}
|
|
739
739
|
/* ── 0.5.0 DataTable options. Each rule below matches only a class or an
|
|
740
740
|
* attribute a 0.5.0 option sets, so a table that asks for none of them is
|
|
@@ -785,7 +785,7 @@ body.twm-dt-col-resizing {
|
|
|
785
785
|
/* `activeRow` — the row that is OPEN. A left edge, not a background: hover
|
|
786
786
|
* and selection keep theirs. */
|
|
787
787
|
.twm-preview-table tbody tr.twm-dt-row--active > td:first-child {
|
|
788
|
-
box-shadow: inset 2px 0 0 0 var(--accent-bright
|
|
788
|
+
box-shadow: inset 2px 0 0 0 var(--accent-bright);
|
|
789
789
|
}
|
|
790
790
|
/* STORY-0016 `selectToggle` / `selectMode` — the select column. Narrow, never
|
|
791
791
|
* the time column (it is the first child, so the time rules reach it: (0,3,2)
|
|
@@ -853,17 +853,17 @@ body.twm-dt-col-resizing {
|
|
|
853
853
|
}
|
|
854
854
|
.twm-preview-table.twm-dt--select th.twm-dt-select-cell .twm-dt-select-toggle:focus-visible {
|
|
855
855
|
opacity: 1;
|
|
856
|
-
outline: 1px solid var(--accent-bright
|
|
856
|
+
outline: 1px solid var(--accent-bright);
|
|
857
857
|
}
|
|
858
858
|
/* STORY-0003 `selectionMode: 'cells'` — the range is a tint on its cells, the
|
|
859
859
|
* cursor a ring inside its cell (inset, so it moves no column by a pixel). A
|
|
860
860
|
* cell being edited gives its padding to the editor; a commit still out is
|
|
861
861
|
* dimmed, and a refused one carries a red ring and its message as the title. */
|
|
862
862
|
.twm-preview-table.twm-dt--cells tbody td.twm-dt-cell--selected {
|
|
863
|
-
background: var(--state-selected
|
|
863
|
+
background: var(--state-selected);
|
|
864
864
|
}
|
|
865
865
|
.twm-preview-table.twm-dt--cells tbody td.twm-dt-cell--cursor {
|
|
866
|
-
box-shadow: inset 0 0 0 2px var(--accent-bright
|
|
866
|
+
box-shadow: inset 0 0 0 2px var(--accent-bright);
|
|
867
867
|
}
|
|
868
868
|
.twm-preview-table.twm-dt--cells:focus {
|
|
869
869
|
outline: none;
|
|
@@ -878,7 +878,7 @@ body.twm-dt-col-resizing {
|
|
|
878
878
|
margin: 0;
|
|
879
879
|
padding: 2px 6px;
|
|
880
880
|
border: 0;
|
|
881
|
-
outline: 2px solid var(--accent-bright
|
|
881
|
+
outline: 2px solid var(--accent-bright);
|
|
882
882
|
outline-offset: -2px;
|
|
883
883
|
background: var(--surface-well, #1e1e1e);
|
|
884
884
|
color: inherit;
|
|
@@ -905,7 +905,7 @@ body.twm-dt-col-resizing {
|
|
|
905
905
|
}
|
|
906
906
|
/* STORY-0088 `staged`: a value typed and not yet committed. */
|
|
907
907
|
.twm-preview-table.twm-dt--cells tbody td.twm-dt-cell--staged {
|
|
908
|
-
background: color-mix(in srgb, var(--accent-bright
|
|
908
|
+
background: color-mix(in srgb, var(--accent-bright) 16%, transparent);
|
|
909
909
|
}
|
|
910
910
|
/* STORY-0089 `fillHandle`: a square on the range's corner cell, the cells a
|
|
911
911
|
* drag covers dashed, and a cell the fill skipped (not editable) hatched. */
|
|
@@ -919,14 +919,14 @@ body.twm-dt-col-resizing {
|
|
|
919
919
|
width: 7px;
|
|
920
920
|
height: 7px;
|
|
921
921
|
box-sizing: border-box;
|
|
922
|
-
background: var(--accent-bright
|
|
922
|
+
background: var(--accent-bright);
|
|
923
923
|
border: 1px solid var(--surface-well, #1e1e1e);
|
|
924
924
|
cursor: crosshair;
|
|
925
925
|
z-index: 1;
|
|
926
926
|
touch-action: none;
|
|
927
927
|
}
|
|
928
928
|
.twm-preview-table.twm-dt--cells tbody td.twm-dt-cell--fill-preview {
|
|
929
|
-
outline: 1px dashed var(--accent-bright
|
|
929
|
+
outline: 1px dashed var(--accent-bright);
|
|
930
930
|
outline-offset: -1px;
|
|
931
931
|
}
|
|
932
932
|
.twm-preview-table.twm-dt--cells tbody td.twm-dt-cell--fill-skipped {
|
|
@@ -963,10 +963,10 @@ body.twm-dt-col-resizing {
|
|
|
963
963
|
opacity: 0.5;
|
|
964
964
|
}
|
|
965
965
|
.twm-preview-table th.twm-dt-col--drop {
|
|
966
|
-
box-shadow: inset 2px 0 0 0 var(--accent-bright
|
|
966
|
+
box-shadow: inset 2px 0 0 0 var(--accent-bright);
|
|
967
967
|
}
|
|
968
968
|
.twm-preview-table th.twm-dt-col--drop.twm-dt-col--drop-after {
|
|
969
|
-
box-shadow: inset -2px 0 0 0 var(--accent-bright
|
|
969
|
+
box-shadow: inset -2px 0 0 0 var(--accent-bright);
|
|
970
970
|
}
|
|
971
971
|
/* STORY-0066 `columnGroups` — the group row is a table of its own above the
|
|
972
972
|
* header table (`twm-dt-groups`), its `<col>`s copied from the header's widths;
|
|
@@ -1029,7 +1029,7 @@ body.twm-dt-col-resizing {
|
|
|
1029
1029
|
.twm-preview-table .twm-dt-group__action:focus-visible,
|
|
1030
1030
|
.twm-preview-table .twm-dt-col-action:focus-visible {
|
|
1031
1031
|
opacity: 1;
|
|
1032
|
-
outline: 1px solid var(--accent-bright
|
|
1032
|
+
outline: 1px solid var(--accent-bright);
|
|
1033
1033
|
}
|
|
1034
1034
|
.twm-preview-table th.twm-dt-col--placeholder,
|
|
1035
1035
|
.twm-preview-table td.twm-dt-cell--placeholder {
|
|
@@ -1095,16 +1095,16 @@ body.twm-dt-col-resizing {
|
|
|
1095
1095
|
}
|
|
1096
1096
|
.twm-preview-table.twm-dt-crosstab:not(.twm-preview-table--readonly) tbody tr.selected td.twm-dt-pin,
|
|
1097
1097
|
.twm-preview-table.twm-dt-crosstab tbody tr.selected td.twm-dt-pin {
|
|
1098
|
-
--twm-dt-pin-state: linear-gradient(var(--state-selected
|
|
1098
|
+
--twm-dt-pin-state: linear-gradient(var(--state-selected), var(--state-selected));
|
|
1099
1099
|
}
|
|
1100
1100
|
.twm-preview-table.twm-dt-crosstab.twm-dt--clickable tbody tr:not(.twm-dt-spacer):not(.data-table__empty-row):not(.selected):hover td.twm-dt-pin {
|
|
1101
1101
|
--twm-dt-pin-state: linear-gradient(var(--state-hover, rgba(255, 255, 255, 0.05)), var(--state-hover, rgba(255, 255, 255, 0.05)));
|
|
1102
1102
|
}
|
|
1103
1103
|
.twm-preview-table.twm-dt-crosstab.twm-dt--cells tbody td.twm-dt-pin.twm-dt-cell--selected {
|
|
1104
|
-
--twm-dt-pin-state: linear-gradient(var(--state-selected
|
|
1104
|
+
--twm-dt-pin-state: linear-gradient(var(--state-selected), var(--state-selected));
|
|
1105
1105
|
}
|
|
1106
1106
|
.twm-preview-table.twm-dt-crosstab.twm-dt--cells tbody td.twm-dt-pin.twm-dt-cell--staged {
|
|
1107
|
-
--twm-dt-pin-state: linear-gradient(color-mix(in srgb, var(--accent-bright
|
|
1107
|
+
--twm-dt-pin-state: linear-gradient(color-mix(in srgb, var(--accent-bright) 16%, transparent), color-mix(in srgb, var(--accent-bright) 16%, transparent));
|
|
1108
1108
|
}
|
|
1109
1109
|
.twm-preview-table.twm-dt-crosstab.twm-dt--cells tbody td.twm-dt-pin.twm-dt-cell--fill-skipped {
|
|
1110
1110
|
--twm-dt-pin-mark: repeating-linear-gradient(45deg,
|
|
@@ -1135,7 +1135,7 @@ body.twm-dt-col-resizing {
|
|
|
1135
1135
|
--twm-dt-pin-state: linear-gradient(rgba(255,255,255,0.04), rgba(255,255,255,0.04));
|
|
1136
1136
|
}
|
|
1137
1137
|
@keyframes twm-dt-pin-new {
|
|
1138
|
-
from { --twm-dt-pin-new: var(--twm-dt-new-bg
|
|
1138
|
+
from { --twm-dt-pin-new: var(--twm-dt-new-bg); }
|
|
1139
1139
|
to { --twm-dt-pin-new: transparent; }
|
|
1140
1140
|
}
|
|
1141
1141
|
.twm-preview-table.twm-dt-crosstab tbody tr.twm-dt-row--new > td.twm-dt-pin {
|
|
@@ -1151,7 +1151,7 @@ body.twm-dt-col-resizing {
|
|
|
1151
1151
|
cursor: pointer;
|
|
1152
1152
|
}
|
|
1153
1153
|
.twm-preview-table.twm-dt--selecting tbody tr.twm-dt-row--cursor > td {
|
|
1154
|
-
box-shadow: inset 0 1px 0 0 var(--accent-bright
|
|
1154
|
+
box-shadow: inset 0 1px 0 0 var(--accent-bright), inset 0 -1px 0 0 var(--accent-bright);
|
|
1155
1155
|
}
|
|
1156
1156
|
/* `rowIcon` — drawn from `data-twm-icon` so the icon's NAME is not cell
|
|
1157
1157
|
* text (not in a copy, not in the clipped-cell tooltip). The span carries the
|
|
@@ -1298,7 +1298,7 @@ body.twm-dt-col-resizing {
|
|
|
1298
1298
|
}
|
|
1299
1299
|
.twm-preview-table td .twm-dt-detail-toggle:focus-visible {
|
|
1300
1300
|
opacity: 1;
|
|
1301
|
-
outline: 1px solid var(--accent-bright
|
|
1301
|
+
outline: 1px solid var(--accent-bright);
|
|
1302
1302
|
}
|
|
1303
1303
|
/* The detail's row: one cell across every column. It is often the body's
|
|
1304
1304
|
* FIRST cell of its row, so the time column's rules reach it (see the note
|
|
@@ -1331,7 +1331,7 @@ body.twm-dt-col-resizing {
|
|
|
1331
1331
|
}
|
|
1332
1332
|
/* `follow` / `refresh()` — a row the last answer did not have, for a moment. */
|
|
1333
1333
|
@keyframes twm-dt-row-new {
|
|
1334
|
-
from { background: var(--twm-dt-new-bg
|
|
1334
|
+
from { background: var(--twm-dt-new-bg); }
|
|
1335
1335
|
to { background: transparent; }
|
|
1336
1336
|
}
|
|
1337
1337
|
.twm-preview-table tbody tr.twm-dt-row--new > td {
|
|
@@ -1375,11 +1375,11 @@ body.twm-dt-col-resizing {
|
|
|
1375
1375
|
background: rgba(255, 255, 255, 0.06);
|
|
1376
1376
|
}
|
|
1377
1377
|
.twm-dt-filter-chip:focus-visible {
|
|
1378
|
-
outline: 1px solid var(--accent-bright
|
|
1378
|
+
outline: 1px solid var(--accent-bright);
|
|
1379
1379
|
}
|
|
1380
1380
|
.twm-dt-filter-chip.twm-dt-filter-chip--on {
|
|
1381
|
-
border-color: var(--accent-bright
|
|
1382
|
-
background:
|
|
1381
|
+
border-color: var(--accent-bright);
|
|
1382
|
+
background: color-mix(in srgb, var(--accent-bright) 18%, transparent);
|
|
1383
1383
|
color: #ddd;
|
|
1384
1384
|
}
|
|
1385
1385
|
.twm-dt-filter-chip.twm-dt-filter-chip--empty {
|
|
@@ -1449,14 +1449,14 @@ body.twm-dt-col-resizing {
|
|
|
1449
1449
|
width: 16px;
|
|
1450
1450
|
height: 16px;
|
|
1451
1451
|
border-radius: 50%;
|
|
1452
|
-
background:
|
|
1452
|
+
background: var(--accent-light);
|
|
1453
1453
|
margin-top: -5px;
|
|
1454
1454
|
cursor: grab;
|
|
1455
1455
|
border: 2px solid var(--surface-0);
|
|
1456
1456
|
}
|
|
1457
1457
|
.twm-slider-field__input::-webkit-slider-thumb:active {
|
|
1458
1458
|
cursor: grabbing;
|
|
1459
|
-
background:
|
|
1459
|
+
background: var(--accent-lighter);
|
|
1460
1460
|
}
|
|
1461
1461
|
.twm-slider-field__input::-moz-range-track {
|
|
1462
1462
|
height: 6px;
|
|
@@ -1468,7 +1468,7 @@ body.twm-dt-col-resizing {
|
|
|
1468
1468
|
width: 16px;
|
|
1469
1469
|
height: 16px;
|
|
1470
1470
|
border-radius: 50%;
|
|
1471
|
-
background:
|
|
1471
|
+
background: var(--accent-light);
|
|
1472
1472
|
cursor: grab;
|
|
1473
1473
|
border: 2px solid var(--surface-0);
|
|
1474
1474
|
}
|
|
@@ -1591,7 +1591,7 @@ body.twm-dt-col-resizing {
|
|
|
1591
1591
|
.twm-sortable-list__drop {
|
|
1592
1592
|
height: 2px;
|
|
1593
1593
|
margin: 1px 0;
|
|
1594
|
-
background:
|
|
1594
|
+
background: var(--accent-light);
|
|
1595
1595
|
pointer-events: none;
|
|
1596
1596
|
}
|
|
1597
1597
|
.twm-sortable-list__content {
|
|
@@ -1638,12 +1638,12 @@ body.twm-dt-col-resizing {
|
|
|
1638
1638
|
margin-top: var(--space-md);
|
|
1639
1639
|
}
|
|
1640
1640
|
.twm-sortable-list__add:hover {
|
|
1641
|
-
border-color:
|
|
1642
|
-
color:
|
|
1643
|
-
background:
|
|
1641
|
+
border-color: var(--accent-light);
|
|
1642
|
+
color: var(--accent-light);
|
|
1643
|
+
background: color-mix(in srgb, var(--accent-light) 12%, transparent);
|
|
1644
1644
|
}
|
|
1645
1645
|
.twm-sortable-list__add:active {
|
|
1646
|
-
background:
|
|
1646
|
+
background: color-mix(in srgb, var(--accent-light) 20%, transparent);
|
|
1647
1647
|
}
|
|
1648
1648
|
.twm-sortable-list__empty {
|
|
1649
1649
|
padding: var(--space-xl);
|
|
@@ -1668,7 +1668,7 @@ body.twm-dt-col-resizing {
|
|
|
1668
1668
|
}
|
|
1669
1669
|
.twm-sortable-list__input:focus {
|
|
1670
1670
|
outline: none;
|
|
1671
|
-
border-color:
|
|
1671
|
+
border-color: var(--accent-light);
|
|
1672
1672
|
}
|
|
1673
1673
|
/* Global Top Bar (fixed at top) */
|
|
1674
1674
|
.twm-global-top-bar {
|
|
@@ -2142,19 +2142,19 @@ body.twm-dt-col-resizing {
|
|
|
2142
2142
|
padding: var(--space-xxs) 8px;
|
|
2143
2143
|
font-size: var(--font-size-xs);
|
|
2144
2144
|
color: #c7f1ff;
|
|
2145
|
-
background:
|
|
2146
|
-
border: 1px solid
|
|
2145
|
+
background: color-mix(in srgb, var(--accent-bright) 18%, transparent);
|
|
2146
|
+
border: 1px solid color-mix(in srgb, var(--accent-bright) 35%, transparent);
|
|
2147
2147
|
border-radius: var(--radius-pill);
|
|
2148
2148
|
white-space: nowrap;
|
|
2149
2149
|
text-transform: none;
|
|
2150
2150
|
cursor: default;
|
|
2151
|
-
box-shadow: inset 0 0 0 1px
|
|
2151
|
+
box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent-bright) 15%, transparent);
|
|
2152
2152
|
}
|
|
2153
2153
|
.twm-autocomplete-field__namespace--toggle {
|
|
2154
2154
|
cursor: pointer;
|
|
2155
|
-
background: linear-gradient(90deg,
|
|
2155
|
+
background: linear-gradient(90deg, color-mix(in srgb, var(--accent-bright) 24%, transparent) 0%, color-mix(in srgb, var(--accent-bright) 12%, transparent) 100%);
|
|
2156
2156
|
transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
|
|
2157
|
-
border: 1px solid
|
|
2157
|
+
border: 1px solid color-mix(in srgb, var(--accent-bright) 50%, transparent);
|
|
2158
2158
|
color: #e7f5ff;
|
|
2159
2159
|
outline: none;
|
|
2160
2160
|
}
|
|
@@ -2197,8 +2197,8 @@ body.twm-dt-col-resizing {
|
|
|
2197
2197
|
is the keyboard's, and it is deliberately the stronger of the two so that
|
|
2198
2198
|
moving the pointer across the list does not hide where the cursor is. */
|
|
2199
2199
|
.twm-autocomplete-field__item.active {
|
|
2200
|
-
background-color: var(--state-selected
|
|
2201
|
-
box-shadow: inset 2px 0 0 var(--accent-bright
|
|
2200
|
+
background-color: var(--state-selected);
|
|
2201
|
+
box-shadow: inset 2px 0 0 var(--accent-bright);
|
|
2202
2202
|
}
|
|
2203
2203
|
.twm-autocomplete-field__item {
|
|
2204
2204
|
display: flex;
|
|
@@ -2588,7 +2588,7 @@ body.twm-window-maximized .twm-resize-handle {
|
|
|
2588
2588
|
box-sizing: border-box;
|
|
2589
2589
|
}
|
|
2590
2590
|
.twm-data-table__filter-input:focus {
|
|
2591
|
-
border-color:
|
|
2591
|
+
border-color: var(--accent-light);
|
|
2592
2592
|
background: #252525;
|
|
2593
2593
|
}
|
|
2594
2594
|
.twm-data-table__filter-input::placeholder {
|
|
@@ -2649,7 +2649,7 @@ body.twm-window-maximized .twm-resize-handle {
|
|
|
2649
2649
|
}
|
|
2650
2650
|
.twm-data-table__filter-dropdown-select:focus,
|
|
2651
2651
|
.twm-data-table__filter-dropdown-input:focus {
|
|
2652
|
-
border-color:
|
|
2652
|
+
border-color: var(--accent-light);
|
|
2653
2653
|
}
|
|
2654
2654
|
.twm-data-table__filter-dropdown-select {
|
|
2655
2655
|
appearance: auto;
|
|
@@ -2999,11 +2999,11 @@ body.twm-window-maximized .twm-resize-handle {
|
|
|
2999
2999
|
color: var(--text-bright);
|
|
3000
3000
|
}
|
|
3001
3001
|
.twm-plot-window-toolbar .twm-btn-icon.twm-is-active {
|
|
3002
|
-
color:
|
|
3003
|
-
background:
|
|
3002
|
+
color: color-mix(in srgb, var(--accent-bright) 80%, white);
|
|
3003
|
+
background: color-mix(in srgb, color-mix(in srgb, var(--accent-bright) 80%, white) 15%, transparent);
|
|
3004
3004
|
}
|
|
3005
3005
|
.twm-plot-window-toolbar .twm-btn-icon.twm-is-active:hover {
|
|
3006
|
-
background:
|
|
3006
|
+
background: color-mix(in srgb, color-mix(in srgb, var(--accent-bright) 80%, white) 25%, transparent);
|
|
3007
3007
|
}
|
|
3008
3008
|
.twm-plot-window-content {
|
|
3009
3009
|
flex: 1;
|
|
@@ -3074,7 +3074,7 @@ body.twm-window-maximized .twm-resize-handle {
|
|
|
3074
3074
|
background: rgba(255, 255, 255, 0.02);
|
|
3075
3075
|
}
|
|
3076
3076
|
.twm-plot-window-container .twm-plot-tab-content .twm-preview-table tbody tr:hover {
|
|
3077
|
-
background:
|
|
3077
|
+
background: color-mix(in srgb, color-mix(in srgb, var(--accent-bright) 80%, white) 10%, transparent);
|
|
3078
3078
|
}
|
|
3079
3079
|
.twm-plot-window-container .twm-plot-tab-content .twm-preview-table td {
|
|
3080
3080
|
color: #aaa;
|
|
@@ -3147,7 +3147,7 @@ body.twm-window-maximized .twm-resize-handle {
|
|
|
3147
3147
|
background: rgba(255, 255, 255, 0.05);
|
|
3148
3148
|
}
|
|
3149
3149
|
.twm-plot-series-toggle-panel__item input[type="checkbox"] {
|
|
3150
|
-
accent-color:
|
|
3150
|
+
accent-color: color-mix(in srgb, var(--accent-bright) 87%, white);
|
|
3151
3151
|
flex-shrink: 0;
|
|
3152
3152
|
}
|
|
3153
3153
|
.twm-plot-series-toggle-panel__line-indicator {
|
|
@@ -3256,7 +3256,7 @@ body.twm-window-maximized .twm-resize-handle {
|
|
|
3256
3256
|
outline: none;
|
|
3257
3257
|
}
|
|
3258
3258
|
.twm-data-series-plot-config select:focus {
|
|
3259
|
-
border-color:
|
|
3259
|
+
border-color: color-mix(in srgb, var(--accent-bright) 87%, white);
|
|
3260
3260
|
}
|
|
3261
3261
|
.twm-data-series-plot-config__columns {
|
|
3262
3262
|
max-height: 200px;
|
|
@@ -3298,7 +3298,7 @@ body.twm-window-maximized .twm-resize-handle {
|
|
|
3298
3298
|
border-radius: 1px;
|
|
3299
3299
|
}
|
|
3300
3300
|
.twm-data-series-plot-config input[type="checkbox"] {
|
|
3301
|
-
accent-color:
|
|
3301
|
+
accent-color: color-mix(in srgb, var(--accent-bright) 87%, white);
|
|
3302
3302
|
flex-shrink: 0;
|
|
3303
3303
|
}
|
|
3304
3304
|
/* Computing Status Window */
|
|
@@ -3315,7 +3315,7 @@ body.twm-window-maximized .twm-resize-handle {
|
|
|
3315
3315
|
width: 32px;
|
|
3316
3316
|
height: 32px;
|
|
3317
3317
|
border: 3px solid #333;
|
|
3318
|
-
border-top-color:
|
|
3318
|
+
border-top-color: color-mix(in srgb, var(--accent-bright) 80%, white);
|
|
3319
3319
|
border-radius: 50%;
|
|
3320
3320
|
animation: computing-spin 0.8s linear infinite;
|
|
3321
3321
|
}
|
|
@@ -3748,14 +3748,14 @@ body.twm-window-maximized .twm-resize-handle {
|
|
|
3748
3748
|
/* Add Widget is the toolbar's one primary verb, so it is the one that carries
|
|
3749
3749
|
the accent. */
|
|
3750
3750
|
.add-widget-btn {
|
|
3751
|
-
background:
|
|
3752
|
-
border-color:
|
|
3751
|
+
background: color-mix(in srgb, var(--accent-bright) 15%, transparent);
|
|
3752
|
+
border-color: color-mix(in srgb, var(--accent-bright) 30%, transparent);
|
|
3753
3753
|
color: var(--text-bright);
|
|
3754
3754
|
}
|
|
3755
3755
|
|
|
3756
3756
|
.add-widget-btn:hover {
|
|
3757
|
-
background:
|
|
3758
|
-
border-color:
|
|
3757
|
+
background: color-mix(in srgb, var(--accent-bright) 25%, transparent);
|
|
3758
|
+
border-color: color-mix(in srgb, var(--accent-bright) 50%, transparent);
|
|
3759
3759
|
}
|
|
3760
3760
|
|
|
3761
3761
|
/* The other two are secondary — Export is an aside and Reset Layout throws the
|
|
@@ -3804,24 +3804,25 @@ body.twm-window-maximized .twm-resize-handle {
|
|
|
3804
3804
|
.tile.resizing {
|
|
3805
3805
|
z-index: var(--z-dropdown);
|
|
3806
3806
|
border-color: var(--accent-bright);
|
|
3807
|
-
box-shadow: 0 0 0 2px
|
|
3807
|
+
box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent-bright) 30%, transparent);
|
|
3808
3808
|
}
|
|
3809
3809
|
|
|
3810
3810
|
/* Selected — set by `_onConfigClick()` while the config dialog is open, and
|
|
3811
|
-
cleared from every sibling by the same handler.
|
|
3812
|
-
|
|
3813
|
-
|
|
3811
|
+
cleared from every sibling by the same handler. It reads `--accent-lighter`
|
|
3812
|
+
(BUG-0045): `--accent-bright` is a border colour on this background and not
|
|
3813
|
+
a text one. It was #78b9ff, which no mix of `--accent-bright` with white
|
|
3814
|
+
gives exactly; `--accent-lighter` (about #73b6e3) is the nearest. */
|
|
3814
3815
|
.tile.tile--selected {
|
|
3815
|
-
border-color:
|
|
3816
|
-
box-shadow: 0 0 0 2px
|
|
3816
|
+
border-color: var(--accent-lighter);
|
|
3817
|
+
box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent-lighter) 30%, transparent), var(--shadow-md);
|
|
3817
3818
|
}
|
|
3818
3819
|
|
|
3819
3820
|
.tile.tile--selected .tile-header {
|
|
3820
|
-
background:
|
|
3821
|
+
background: color-mix(in srgb, var(--accent-lighter) 10%, transparent);
|
|
3821
3822
|
}
|
|
3822
3823
|
|
|
3823
3824
|
.tile.tile--selected .tile-title {
|
|
3824
|
-
color:
|
|
3825
|
+
color: var(--accent-lighter);
|
|
3825
3826
|
}
|
|
3826
3827
|
|
|
3827
3828
|
/* Read-only. `_buildChrome()`'s read-only branch emits no drag handle, no
|
|
@@ -3924,7 +3925,7 @@ body.twm-window-maximized .twm-resize-handle {
|
|
|
3924
3925
|
.tile-menu-btn:hover,
|
|
3925
3926
|
.tile-expand-btn:hover {
|
|
3926
3927
|
background: var(--state-hover);
|
|
3927
|
-
color:
|
|
3928
|
+
color: var(--accent-lighter);
|
|
3928
3929
|
}
|
|
3929
3930
|
|
|
3930
3931
|
.tile-remove-btn:hover {
|
|
@@ -4012,7 +4013,7 @@ body.twm-window-maximized .twm-resize-handle {
|
|
|
4012
4013
|
}
|
|
4013
4014
|
|
|
4014
4015
|
.tile-menu-item:hover .material-symbols-outlined {
|
|
4015
|
-
color:
|
|
4016
|
+
color: var(--accent-lighter);
|
|
4016
4017
|
}
|
|
4017
4018
|
|
|
4018
4019
|
/* ── the content area ────────────────────────────────────────────────── */
|
|
@@ -4081,8 +4082,8 @@ body.twm-window-maximized .twm-resize-handle {
|
|
|
4081
4082
|
/* The drop preview, positioned by `_updateGhost()` in grid coordinates. */
|
|
4082
4083
|
.tile-ghost {
|
|
4083
4084
|
position: absolute;
|
|
4084
|
-
background:
|
|
4085
|
-
border: 2px dashed
|
|
4085
|
+
background: color-mix(in srgb, var(--accent-bright) 15%, transparent);
|
|
4086
|
+
border: 2px dashed color-mix(in srgb, var(--accent-bright) 50%, transparent);
|
|
4086
4087
|
border-radius: var(--radius-sm);
|
|
4087
4088
|
pointer-events: none;
|
|
4088
4089
|
z-index: 50;
|
|
@@ -4526,12 +4527,12 @@ body.twm-window-maximized .twm-resize-handle {
|
|
|
4526
4527
|
}
|
|
4527
4528
|
.twm-action-dropdown-option .twm-option-icon {
|
|
4528
4529
|
font-size: 20px;
|
|
4529
|
-
color:
|
|
4530
|
+
color: var(--accent-lighter);
|
|
4530
4531
|
flex-shrink: 0;
|
|
4531
4532
|
}
|
|
4532
4533
|
.twm-action-dropdown-option:hover .twm-option-icon,
|
|
4533
4534
|
.twm-action-dropdown-option:focus .twm-option-icon {
|
|
4534
|
-
color:
|
|
4535
|
+
color: var(--accent-lightest);
|
|
4535
4536
|
}
|
|
4536
4537
|
.twm-action-dropdown-option .twm-option-label {
|
|
4537
4538
|
font-weight: 500;
|
|
@@ -4690,7 +4691,7 @@ body.twm-window-maximized .twm-resize-handle {
|
|
|
4690
4691
|
position: absolute;
|
|
4691
4692
|
z-index: 5999;
|
|
4692
4693
|
pointer-events: none;
|
|
4693
|
-
background:
|
|
4694
|
+
background: color-mix(in srgb, var(--accent-hover) 18%, transparent);
|
|
4694
4695
|
border: 1px solid var(--accent-bright);
|
|
4695
4696
|
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
|
|
4696
4697
|
transition: left 0.09s ease, top 0.09s ease, width 0.09s ease, height 0.09s ease;
|
|
@@ -4984,12 +4985,11 @@ button.twm-managed-window__btn svg rect {
|
|
|
4984
4985
|
transition: background-color 0.1s, color 0.1s;
|
|
4985
4986
|
}
|
|
4986
4987
|
.twm-bar-windows__item:hover {
|
|
4987
|
-
|
|
4988
|
-
background: #268bd2;
|
|
4988
|
+
background: var(--accent-bright-hover);
|
|
4989
4989
|
color: var(--text-bright);
|
|
4990
4990
|
}
|
|
4991
4991
|
.twm-bar-windows__item:active {
|
|
4992
|
-
background:
|
|
4992
|
+
background: var(--accent-pressed);
|
|
4993
4993
|
}
|
|
4994
4994
|
/* Compounded for the Material Symbols tie — see `.twm-leaf__icon`. */
|
|
4995
4995
|
.twm-bar-windows__item-icon,
|
|
@@ -5591,12 +5591,12 @@ button.twm-about-dialog__btn--close:focus {
|
|
|
5591
5591
|
/* ─── Autocomplete field — notebook variant ──────────────── */
|
|
5592
5592
|
|
|
5593
5593
|
.twm-autocomplete-field--notebook .twm-autocomplete-field__input-wrapper {
|
|
5594
|
-
border: 1px solid
|
|
5594
|
+
border: 1px solid var(--accent-light);
|
|
5595
5595
|
font-size: var(--font-size-sm);
|
|
5596
5596
|
}
|
|
5597
5597
|
.twm-autocomplete-field--notebook .twm-autocomplete-field__input-wrapper:focus-within {
|
|
5598
|
-
border-color:
|
|
5599
|
-
box-shadow: 0 0 3px
|
|
5598
|
+
border-color: var(--accent-lighter);
|
|
5599
|
+
box-shadow: 0 0 3px color-mix(in srgb, var(--accent-light) 30%, transparent);
|
|
5600
5600
|
}
|
|
5601
5601
|
.twm-autocomplete-field--notebook .twm-autocomplete-field__input {
|
|
5602
5602
|
font-family: 'Courier New', Courier, monospace;
|
|
@@ -5913,8 +5913,8 @@ button.twm-about-dialog__btn--close:focus {
|
|
|
5913
5913
|
color: var(--text-bright);
|
|
5914
5914
|
}
|
|
5915
5915
|
.twm-btn--primary:hover:not(:disabled) {
|
|
5916
|
-
background:
|
|
5917
|
-
border-color:
|
|
5916
|
+
background: var(--accent-bright-hover);
|
|
5917
|
+
border-color: var(--accent-bright-hover);
|
|
5918
5918
|
}
|
|
5919
5919
|
/* Context menu separator (matches Ecosim's .twm-context-menu look). */
|
|
5920
5920
|
.twm-context-menu__separator {
|
|
@@ -6299,7 +6299,7 @@ button.twm-about-dialog__btn--close:focus {
|
|
|
6299
6299
|
}
|
|
6300
6300
|
.twm-color-field__preset:hover,
|
|
6301
6301
|
.twm-color-field__preset:focus-visible {
|
|
6302
|
-
outline: 1px solid var(--ea-accent
|
|
6302
|
+
outline: 1px solid var(--ea-accent);
|
|
6303
6303
|
outline-offset: 1px;
|
|
6304
6304
|
}
|
|
6305
6305
|
/* Colour list: a SortableList whose rows are a colour field + move buttons. */
|
|
@@ -6325,7 +6325,7 @@ button.twm-about-dialog__btn--close:focus {
|
|
|
6325
6325
|
cursor: pointer;
|
|
6326
6326
|
}
|
|
6327
6327
|
.twm-color-list__move:hover:not(:disabled) {
|
|
6328
|
-
color: var(--ea-accent
|
|
6328
|
+
color: var(--ea-accent);
|
|
6329
6329
|
}
|
|
6330
6330
|
.twm-color-list__move:disabled {
|
|
6331
6331
|
opacity: 0.3;
|
|
@@ -6436,8 +6436,8 @@ button.twm-about-dialog__btn--close:focus {
|
|
|
6436
6436
|
font-weight: 600;
|
|
6437
6437
|
}
|
|
6438
6438
|
.twm-managed-window--modal .twm-modal__actions .twm-btn--primary:hover:not(:disabled) {
|
|
6439
|
-
background:
|
|
6440
|
-
border-color:
|
|
6439
|
+
background: var(--accent-bright-hover);
|
|
6440
|
+
border-color: var(--accent-bright-hover);
|
|
6441
6441
|
}
|
|
6442
6442
|
.twm-managed-window--modal .twm-modal__actions .twm-btn--danger {
|
|
6443
6443
|
background: #8b2a2a;
|
|
@@ -6703,7 +6703,7 @@ button.twm-about-dialog__btn--close:focus {
|
|
|
6703
6703
|
font-size: 10px;
|
|
6704
6704
|
}
|
|
6705
6705
|
.twm-landing__pane--focused .twm-landing__pane-head {
|
|
6706
|
-
background:
|
|
6706
|
+
background: color-mix(in srgb, var(--accent-hover) 10%, transparent);
|
|
6707
6707
|
}
|
|
6708
6708
|
.twm-landing__pane--focused .twm-landing__pane-title {
|
|
6709
6709
|
color: var(--ea-accent);
|
|
@@ -6736,7 +6736,7 @@ button.twm-about-dialog__btn--close:focus {
|
|
|
6736
6736
|
}
|
|
6737
6737
|
.twm-entity-header__field select:focus {
|
|
6738
6738
|
outline: none;
|
|
6739
|
-
border-color: var(--ea-accent
|
|
6739
|
+
border-color: var(--ea-accent);
|
|
6740
6740
|
}
|
|
6741
6741
|
.twm-entity-header__field select option { background: var(--ea-input-bg, #1e1e1e); color: var(--ea-text, #ddd); }
|
|
6742
6742
|
.twm-landing__table table {
|
|
@@ -6755,7 +6755,7 @@ button.twm-about-dialog__btn--close:focus {
|
|
|
6755
6755
|
so the same arrow-key affordance reads identically across modes. */
|
|
6756
6756
|
.twm-row-cursor {
|
|
6757
6757
|
box-shadow: inset 2px 0 0 var(--ea-accent);
|
|
6758
|
-
background:
|
|
6758
|
+
background: color-mix(in srgb, var(--accent-hover) 12%, transparent) !important;
|
|
6759
6759
|
}
|
|
6760
6760
|
/* Quick-action strip — horizontal bar below the tables. Same chrome
|
|
6761
6761
|
tone as `.twm-entity-header` so the page reads as a single stack:
|
|
@@ -6795,7 +6795,7 @@ button.twm-about-dialog__btn--close:focus {
|
|
|
6795
6795
|
}
|
|
6796
6796
|
.twm-action-btn:hover {
|
|
6797
6797
|
border-color: var(--ea-accent);
|
|
6798
|
-
background:
|
|
6798
|
+
background: color-mix(in srgb, var(--accent-hover) 8%, transparent);
|
|
6799
6799
|
}
|
|
6800
6800
|
.twm-action-btn:disabled,
|
|
6801
6801
|
.twm-action-btn[aria-disabled="true"] {
|
|
@@ -6980,7 +6980,7 @@ body.twm-dragging * { user-select: none; }
|
|
|
6980
6980
|
}
|
|
6981
6981
|
.twm-leaf--focused {
|
|
6982
6982
|
border-color: var(--accent-bright);
|
|
6983
|
-
box-shadow: 0 0 0 1px
|
|
6983
|
+
box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent-bright) 25%, transparent) inset;
|
|
6984
6984
|
}
|
|
6985
6985
|
.twm-leaf__chrome {
|
|
6986
6986
|
display: flex;
|
|
@@ -7190,15 +7190,15 @@ body.twm-dragging * { user-select: none; }
|
|
|
7190
7190
|
* border, because a border changes the box and every tile in the row would
|
|
7191
7191
|
* reflow by a pixel as the pointer crossed between them. */
|
|
7192
7192
|
.twm-leaf--drop-target {
|
|
7193
|
-
outline: 2px solid var(--accent-bright
|
|
7193
|
+
outline: 2px solid var(--accent-bright);
|
|
7194
7194
|
outline-offset: -2px;
|
|
7195
7195
|
}
|
|
7196
7196
|
|
|
7197
7197
|
/* A STRIP ARMED TO RECEIVE — the drop that adds the tab at the end of this
|
|
7198
7198
|
* tile's list rather than into a zone of its body. */
|
|
7199
7199
|
.twm-leaf__tabbar--drop-target {
|
|
7200
|
-
background: color-mix(in srgb, var(--accent-bright
|
|
7201
|
-
box-shadow: inset 0 0 0 1px var(--accent-bright
|
|
7200
|
+
background: color-mix(in srgb, var(--accent-bright) 18%, transparent);
|
|
7201
|
+
box-shadow: inset 0 0 0 1px var(--accent-bright);
|
|
7202
7202
|
}
|
|
7203
7203
|
|
|
7204
7204
|
/* THE TAB BEING CARRIED. `DragReorder` has put `.dragging` on the TOP strip's
|
|
@@ -7279,7 +7279,7 @@ body.twm-dragging * { user-select: none; }
|
|
|
7279
7279
|
position: absolute;
|
|
7280
7280
|
inset: 0;
|
|
7281
7281
|
pointer-events: none;
|
|
7282
|
-
border-top: 1px solid var(--accent-bright
|
|
7282
|
+
border-top: 1px solid var(--accent-bright);
|
|
7283
7283
|
clip-path: polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
|
|
7284
7284
|
}
|
|
7285
7285
|
/* Lower-casing removed here too — a tab label is the same embedder-supplied
|
|
@@ -7492,7 +7492,7 @@ body.twm-dragging * { user-select: none; }
|
|
|
7492
7492
|
inset: 0 0 auto 0;
|
|
7493
7493
|
height: 2px;
|
|
7494
7494
|
pointer-events: none;
|
|
7495
|
-
background: var(--accent-bright
|
|
7495
|
+
background: var(--accent-bright);
|
|
7496
7496
|
}
|
|
7497
7497
|
/* A PREVIEW tab — opened by a single click and replaced by the next one.
|
|
7498
7498
|
* Italic is the convention every editor uses for "this one is not staying". */
|
|
@@ -7544,7 +7544,7 @@ body.twm-dragging * { user-select: none; }
|
|
|
7544
7544
|
flex: 0 0 auto;
|
|
7545
7545
|
font-size: 9px;
|
|
7546
7546
|
line-height: 1;
|
|
7547
|
-
color: var(--accent-bright
|
|
7547
|
+
color: var(--accent-bright);
|
|
7548
7548
|
}
|
|
7549
7549
|
.notebook-tabs .twm-tab-close {
|
|
7550
7550
|
flex: 0 0 auto;
|
|
@@ -7582,7 +7582,7 @@ body.twm-dragging * { user-select: none; }
|
|
|
7582
7582
|
flex: 0 0 auto;
|
|
7583
7583
|
align-self: stretch;
|
|
7584
7584
|
width: 2px;
|
|
7585
|
-
background: var(--accent-bright
|
|
7585
|
+
background: var(--accent-bright);
|
|
7586
7586
|
pointer-events: none;
|
|
7587
7587
|
}
|
|
7588
7588
|
|
|
@@ -7604,8 +7604,8 @@ body.twm-dragging * { user-select: none; }
|
|
|
7604
7604
|
* mean "let go here and this list takes it" should look like one thing. */
|
|
7605
7605
|
.notebook-tabs--drop-target,
|
|
7606
7606
|
.notebook-editor-container--drop-target {
|
|
7607
|
-
background: color-mix(in srgb, var(--accent-bright
|
|
7608
|
-
box-shadow: inset 0 0 0 1px var(--accent-bright
|
|
7607
|
+
background: color-mix(in srgb, var(--accent-bright) 18%, transparent);
|
|
7608
|
+
box-shadow: inset 0 0 0 1px var(--accent-bright);
|
|
7609
7609
|
}
|
|
7610
7610
|
/* ── The tab bar's own context menu ──────────────────────────────────
|
|
7611
7611
|
* Reached only by a consumer that lets the component open it — the tile
|
|
@@ -7743,7 +7743,7 @@ body.twm-dragging * { user-select: none; }
|
|
|
7743
7743
|
}
|
|
7744
7744
|
.split-pane-divider:hover,
|
|
7745
7745
|
.split-pane-divider--active {
|
|
7746
|
-
background: var(--accent-bright
|
|
7746
|
+
background: var(--accent-bright);
|
|
7747
7747
|
}
|
|
7748
7748
|
/* A pane is its tab bar over its body. The tab bar's own rule says
|
|
7749
7749
|
* `height: 100%` (it fills a tile's strip); here it is a fixed 26px row, the
|
|
@@ -7766,7 +7766,7 @@ body.twm-dragging * { user-select: none; }
|
|
|
7766
7766
|
* `setPanes()`, which is why `SplitPaneContainer` ADDS `.split-pane` to a
|
|
7767
7767
|
* pane instead of replacing its classes with it. */
|
|
7768
7768
|
.split-pane-container--split .editor-pane--focused > .tabs.notebook-tabs {
|
|
7769
|
-
box-shadow: inset 0 -1px 0 var(--accent-bright
|
|
7769
|
+
box-shadow: inset 0 -1px 0 var(--accent-bright);
|
|
7770
7770
|
}
|
|
7771
7771
|
/* The body is the positioning anchor; the editor container fills it
|
|
7772
7772
|
* absolutely, so its height is the body's whatever its content is and the
|
|
@@ -7829,7 +7829,7 @@ body.twm-dragging * { user-select: none; }
|
|
|
7829
7829
|
font: inherit;
|
|
7830
7830
|
outline: none;
|
|
7831
7831
|
}
|
|
7832
|
-
.nb-search-bar__input:focus { border-color: var(--accent-bright
|
|
7832
|
+
.nb-search-bar__input:focus { border-color: var(--accent-bright); }
|
|
7833
7833
|
.nb-search-bar__match-info {
|
|
7834
7834
|
min-width: 64px;
|
|
7835
7835
|
color: var(--text-muted);
|
|
@@ -7862,7 +7862,7 @@ body.twm-dragging * { user-select: none; }
|
|
|
7862
7862
|
.nb-search-bar__btn--active,
|
|
7863
7863
|
.nb-search-bar__btn--active:hover {
|
|
7864
7864
|
background: var(--state-selected);
|
|
7865
|
-
border-color: var(--accent-bright
|
|
7865
|
+
border-color: var(--accent-bright);
|
|
7866
7866
|
color: var(--text-bright);
|
|
7867
7867
|
}
|
|
7868
7868
|
/* Two classes, for the Material Symbols tie — see `.twm-leaf__icon`. */
|
|
@@ -8002,7 +8002,7 @@ body.twm-dragging * { user-select: none; }
|
|
|
8002
8002
|
.twm-tile-tabmenu__item--cursor {
|
|
8003
8003
|
/* Keyboard cursor reads slightly heavier than hover so a
|
|
8004
8004
|
* mouse-cursor-on-a-different-row state is still legible. */
|
|
8005
|
-
outline: 1px solid var(--accent-bright
|
|
8005
|
+
outline: 1px solid var(--accent-bright);
|
|
8006
8006
|
outline-offset: -1px;
|
|
8007
8007
|
}
|
|
8008
8008
|
.twm-tile-tabmenu__item-hint {
|
|
@@ -8091,13 +8091,13 @@ body.twm-dragging * { user-select: none; }
|
|
|
8091
8091
|
color: var(--text-bright);
|
|
8092
8092
|
}
|
|
8093
8093
|
.twm-tile-tabswitch__item--cursor {
|
|
8094
|
-
outline: 1px solid var(--accent-bright
|
|
8094
|
+
outline: 1px solid var(--accent-bright);
|
|
8095
8095
|
outline-offset: -1px;
|
|
8096
8096
|
}
|
|
8097
8097
|
.twm-tile-tabswitch__item--on { color: var(--text-bright); }
|
|
8098
8098
|
/* Compounded for the Material Symbols tie — see `.twm-leaf__icon`. */
|
|
8099
8099
|
.twm-tile-tabswitch__check,
|
|
8100
|
-
.twm-tile-tabswitch__check.material-symbols-outlined { font-size: 14px; color: var(--accent-bright
|
|
8100
|
+
.twm-tile-tabswitch__check.material-symbols-outlined { font-size: 14px; color: var(--accent-bright); }
|
|
8101
8101
|
.twm-tile-tabswitch__label {
|
|
8102
8102
|
overflow: hidden;
|
|
8103
8103
|
text-overflow: ellipsis;
|
|
@@ -8149,8 +8149,8 @@ body.twm-dragging * { user-select: none; }
|
|
|
8149
8149
|
align-items: center;
|
|
8150
8150
|
gap: var(--space-xs);
|
|
8151
8151
|
padding: 2px 4px 2px 8px;
|
|
8152
|
-
background: var(--state-selected
|
|
8153
|
-
border: 1px solid var(--accent-bright
|
|
8152
|
+
background: var(--state-selected);
|
|
8153
|
+
border: 1px solid var(--accent-bright);
|
|
8154
8154
|
border-radius: 2px;
|
|
8155
8155
|
color: var(--text-bright, #fff);
|
|
8156
8156
|
font-size: var(--font-size-xs);
|
|
@@ -8809,7 +8809,7 @@ tr:hover .twm-row-action { opacity: 1; }
|
|
|
8809
8809
|
}
|
|
8810
8810
|
.twm-data-table-component--compact .twm-pagination-controls .twm-pagination-btn:hover:not(:disabled) {
|
|
8811
8811
|
color: var(--ea-text, #ddd) !important;
|
|
8812
|
-
border-color: var(--ea-accent
|
|
8812
|
+
border-color: var(--ea-accent) !important;
|
|
8813
8813
|
}
|
|
8814
8814
|
/* Text labels inside the pager — the "Rows X–Y of Z" and "Page X of
|
|
8815
8815
|
* Y" spans don't have classes (just inline style), so target every
|
|
@@ -8838,7 +8838,7 @@ tr:hover .twm-row-action { opacity: 1; }
|
|
|
8838
8838
|
width: 28px;
|
|
8839
8839
|
height: 28px;
|
|
8840
8840
|
border: 2px solid rgba(255, 255, 255, 0.18);
|
|
8841
|
-
border-top-color: var(--ea-accent
|
|
8841
|
+
border-top-color: var(--ea-accent);
|
|
8842
8842
|
border-radius: 50%;
|
|
8843
8843
|
animation: data-table__spin 0.7s linear infinite;
|
|
8844
8844
|
}
|
|
@@ -9015,7 +9015,7 @@ tr:hover .twm-row-action { opacity: 1; }
|
|
|
9015
9015
|
width: 18px;
|
|
9016
9016
|
height: 18px;
|
|
9017
9017
|
border: 2px solid var(--ea-border, #333);
|
|
9018
|
-
border-top-color: var(--accent
|
|
9018
|
+
border-top-color: var(--accent);
|
|
9019
9019
|
border-radius: 50%;
|
|
9020
9020
|
animation: twm-tile-loading-spin 0.7s linear infinite;
|
|
9021
9021
|
}
|
|
@@ -9239,7 +9239,7 @@ tr:hover .twm-row-action { opacity: 1; }
|
|
|
9239
9239
|
cursor: pointer;
|
|
9240
9240
|
}
|
|
9241
9241
|
.twm-tabs__tab:hover { background: var(--surface-2); color: var(--text-primary); }
|
|
9242
|
-
.twm-tabs__tab:focus-visible { outline: 1px solid var(--accent-bright
|
|
9242
|
+
.twm-tabs__tab:focus-visible { outline: 1px solid var(--accent-bright); outline-offset: -1px; }
|
|
9243
9243
|
.twm-tabs__tab--on { background: var(--surface-0); color: var(--text-bright); }
|
|
9244
9244
|
.twm-tabs__tab--on::before {
|
|
9245
9245
|
content: '';
|
|
@@ -9247,7 +9247,7 @@ tr:hover .twm-row-action { opacity: 1; }
|
|
|
9247
9247
|
inset: 0 0 auto 0;
|
|
9248
9248
|
height: 2px;
|
|
9249
9249
|
pointer-events: none;
|
|
9250
|
-
background: var(--accent-bright
|
|
9250
|
+
background: var(--accent-bright);
|
|
9251
9251
|
}
|
|
9252
9252
|
.twm-tabs__label { overflow: hidden; text-overflow: ellipsis; }
|
|
9253
9253
|
/* Two classes: Google's `.material-symbols-outlined { font-size: 24px }` loads
|
|
@@ -9782,12 +9782,12 @@ button.twm-alerts__ref:hover { text-decoration: underline; }
|
|
|
9782
9782
|
.twm-record--state-error { box-shadow: inset 2px 0 0 0 var(--color-danger, #c74e4e); }
|
|
9783
9783
|
/* `activeKey` — the record that is OPEN: the accent on the left edge, as
|
|
9784
9784
|
* DataTable's `twm-dt-row--active`. It wins over a state's edge. */
|
|
9785
|
-
.twm-record.twm-record--active { box-shadow: inset 2px 0 0 0 var(--accent-bright
|
|
9785
|
+
.twm-record.twm-record--active { box-shadow: inset 2px 0 0 0 var(--accent-bright); }
|
|
9786
9786
|
.twm-record-list--clickable .twm-record { cursor: pointer; }
|
|
9787
9787
|
.twm-record-list--clickable .twm-record:hover { background: var(--state-hover, rgba(255, 255, 255, 0.05)); }
|
|
9788
9788
|
.twm-record:focus { outline: none; }
|
|
9789
9789
|
.twm-record:focus-visible {
|
|
9790
|
-
outline: 1px solid var(--accent-bright
|
|
9790
|
+
outline: 1px solid var(--accent-bright);
|
|
9791
9791
|
outline-offset: -1px;
|
|
9792
9792
|
}
|
|
9793
9793
|
.twm-record-list__empty {
|
|
@@ -10713,7 +10713,7 @@ button.twm-alerts__ref:hover { text-decoration: underline; }
|
|
|
10713
10713
|
cursor: pointer;
|
|
10714
10714
|
}
|
|
10715
10715
|
.twm-doc-outline__link:hover { background: var(--state-hover, rgba(255, 255, 255, 0.05)); color: var(--text-primary, #e0e0e0); }
|
|
10716
|
-
.twm-doc-outline__link:focus-visible { outline: 1px solid var(--accent-bright
|
|
10716
|
+
.twm-doc-outline__link:focus-visible { outline: 1px solid var(--accent-bright); outline-offset: -1px; }
|
|
10717
10717
|
.twm-doc-outline__item--level-1 > .twm-doc-outline__link { color: var(--text-primary, #e0e0e0); }
|
|
10718
10718
|
.twm-doc-outline__number {
|
|
10719
10719
|
flex: 0 0 auto;
|
|
@@ -10728,8 +10728,8 @@ button.twm-alerts__ref:hover { text-decoration: underline; }
|
|
|
10728
10728
|
white-space: nowrap;
|
|
10729
10729
|
}
|
|
10730
10730
|
.twm-doc-outline__item.twm-doc-outline__item--active > .twm-doc-outline__link {
|
|
10731
|
-
border-left-color: var(--accent-bright
|
|
10732
|
-
background:
|
|
10731
|
+
border-left-color: var(--accent-bright);
|
|
10732
|
+
background: color-mix(in srgb, var(--accent-bright) 15%, transparent);
|
|
10733
10733
|
color: var(--text-primary, #e0e0e0);
|
|
10734
10734
|
}
|
|
10735
10735
|
/* Listed, but nothing in the document answers to it. */
|
|
@@ -10757,7 +10757,7 @@ button.twm-alerts__ref:hover { text-decoration: underline; }
|
|
|
10757
10757
|
border-radius: var(--radius-sm, 4px);
|
|
10758
10758
|
cursor: text;
|
|
10759
10759
|
}
|
|
10760
|
-
.twm-tag-input:focus-within { border-color: var(--accent-bright
|
|
10760
|
+
.twm-tag-input:focus-within { border-color: var(--accent-bright); }
|
|
10761
10761
|
.twm-tag-input--readonly {
|
|
10762
10762
|
background: transparent;
|
|
10763
10763
|
border-color: transparent;
|
|
@@ -12282,7 +12282,7 @@ button.twm-alerts__ref:hover { text-decoration: underline; }
|
|
|
12282
12282
|
position: absolute;
|
|
12283
12283
|
pointer-events: none;
|
|
12284
12284
|
border: 1px solid var(--accent-bright);
|
|
12285
|
-
background:
|
|
12285
|
+
background: color-mix(in srgb, var(--accent-bright) 12%, transparent);
|
|
12286
12286
|
}
|
|
12287
12287
|
.twm-canvas__marquee[hidden] { display: none; }
|
|
12288
12288
|
|
|
@@ -12775,7 +12775,7 @@ button.twm-alerts__ref:hover { text-decoration: underline; }
|
|
|
12775
12775
|
.twm-flow-graph__port--data .twm-flow-graph__port-dot { border-color: #8a8f98; border-radius: 2px; }
|
|
12776
12776
|
.twm-flow-graph--connecting .twm-flow-graph__port--in:not(:disabled) .twm-flow-graph__port-dot {
|
|
12777
12777
|
background: var(--twm-flow-focus);
|
|
12778
|
-
box-shadow: 0 0 0 3px
|
|
12778
|
+
box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-bright) 35%, transparent);
|
|
12779
12779
|
}
|
|
12780
12780
|
.twm-flow-graph__port--taken .twm-flow-graph__port-dot { border-color: var(--twm-flow-ok); background: var(--twm-flow-ok); }
|
|
12781
12781
|
.twm-flow-graph__port--taken .twm-flow-graph__port-count { color: var(--twm-flow-ok); }
|
|
@@ -12787,7 +12787,7 @@ button.twm-alerts__ref:hover { text-decoration: underline; }
|
|
|
12787
12787
|
}
|
|
12788
12788
|
.twm-flow-graph__port--can-drop .twm-flow-graph__port-dot {
|
|
12789
12789
|
background: var(--twm-flow-focus);
|
|
12790
|
-
box-shadow: 0 0 0 3px
|
|
12790
|
+
box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-bright) 35%, transparent);
|
|
12791
12791
|
}
|
|
12792
12792
|
|
|
12793
12793
|
/* ── a line ─────────────────────────────────────────────────────────── */
|
|
@@ -13604,9 +13604,9 @@ button.twm-alerts__ref:hover { text-decoration: underline; }
|
|
|
13604
13604
|
display: none !important;
|
|
13605
13605
|
}
|
|
13606
13606
|
.twm-flow-lanes {
|
|
13607
|
-
--twm-lanes-wire:
|
|
13607
|
+
--twm-lanes-wire: var(--accent-light);
|
|
13608
13608
|
--twm-lanes-surface: #1b1b1c;
|
|
13609
|
-
--twm-lanes-ring:
|
|
13609
|
+
--twm-lanes-ring: var(--accent-bright-hover);
|
|
13610
13610
|
display: flex;
|
|
13611
13611
|
flex-direction: column;
|
|
13612
13612
|
box-sizing: border-box;
|
|
@@ -13729,7 +13729,7 @@ button.twm-alerts__ref:hover { text-decoration: underline; }
|
|
|
13729
13729
|
border-left: 1px solid var(--surface-3);
|
|
13730
13730
|
}
|
|
13731
13731
|
.twm-flow-lanes__show-btn[aria-pressed="true"] {
|
|
13732
|
-
background:
|
|
13732
|
+
background: var(--accent-pressed);
|
|
13733
13733
|
color: var(--text-bright);
|
|
13734
13734
|
}
|
|
13735
13735
|
.twm-flow-lanes__show-btn:focus-visible,
|
|
@@ -13972,7 +13972,7 @@ button.twm-alerts__ref:hover { text-decoration: underline; }
|
|
|
13972
13972
|
.twm-flow-lanes__node--selected .twm-flow-lanes__card,
|
|
13973
13973
|
.twm-flow-lanes__card:focus-visible {
|
|
13974
13974
|
filter: drop-shadow(0 0 1px var(--twm-lanes-ring)) drop-shadow(0 0 1px var(--twm-lanes-ring))
|
|
13975
|
-
drop-shadow(0 0 5px
|
|
13975
|
+
drop-shadow(0 0 5px color-mix(in srgb, var(--twm-lanes-ring) 80%, transparent));
|
|
13976
13976
|
}
|
|
13977
13977
|
.twm-flow-lanes__card:hover .twm-flow-lanes__body {
|
|
13978
13978
|
filter: brightness(1.12);
|
|
@@ -14295,7 +14295,7 @@ button.twm-alerts__ref:hover { text-decoration: underline; }
|
|
|
14295
14295
|
}
|
|
14296
14296
|
.twm-flow-lanes__cell--new,
|
|
14297
14297
|
.twm-flow-lanes__cell--changed {
|
|
14298
|
-
background:
|
|
14298
|
+
background: color-mix(in srgb, var(--twm-lanes-ring) 7%, transparent);
|
|
14299
14299
|
}
|
|
14300
14300
|
.twm-flow-lanes__error {
|
|
14301
14301
|
flex: 0 0 auto;
|
|
@@ -14329,7 +14329,7 @@ button.twm-alerts__ref:hover { text-decoration: underline; }
|
|
|
14329
14329
|
}
|
|
14330
14330
|
.twm-flow-lanes__column--new,
|
|
14331
14331
|
.twm-flow-lanes__column--changed {
|
|
14332
|
-
background:
|
|
14332
|
+
background: color-mix(in srgb, var(--twm-lanes-ring) 14%, transparent);
|
|
14333
14333
|
}
|
|
14334
14334
|
.twm-flow-lanes__column-name {
|
|
14335
14335
|
font-family: var(--font-family-mono);
|
|
@@ -14342,7 +14342,7 @@ button.twm-alerts__ref:hover { text-decoration: underline; }
|
|
|
14342
14342
|
}
|
|
14343
14343
|
.twm-flow-lanes__column--new .twm-flow-lanes__column-type,
|
|
14344
14344
|
.twm-flow-lanes__column--changed .twm-flow-lanes__column-type {
|
|
14345
|
-
color:
|
|
14345
|
+
color: var(--accent-lightest);
|
|
14346
14346
|
}
|
|
14347
14347
|
.twm-flow-lanes__column-origin {
|
|
14348
14348
|
margin-left: auto;
|