@scalewing/react 1.29.0 → 1.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +54 -0
- package/README.md +13 -3
- package/dist/components/ActionMenu.d.ts +14 -0
- package/dist/components/ActionMenu.js +4 -0
- package/dist/components/ButtonGroup.d.ts +9 -1
- package/dist/components/ButtonGroup.js +2 -2
- package/dist/components/Combobox.d.ts +14 -0
- package/dist/components/Combobox.js +125 -0
- package/dist/components/Field.d.ts +17 -0
- package/dist/components/Field.js +54 -5
- package/dist/components/FilterChips.d.ts +17 -1
- package/dist/components/FilterChips.js +11 -6
- package/dist/components/ScrollRegion.d.ts +6 -2
- package/dist/components/ScrollRegion.js +9 -3
- package/dist/components/SectionNav.d.ts +25 -2
- package/dist/components/SectionNav.js +13 -4
- package/dist/components/Table.d.ts +49 -5
- package/dist/components/Table.js +11 -4
- package/dist/components/action-menu/ActionMenuList.js +7 -7
- package/dist/components/combobox/ComboboxPopup.d.ts +25 -0
- package/dist/components/combobox/ComboboxPopup.js +68 -0
- package/dist/components/combobox/entries.d.ts +18 -0
- package/dist/components/combobox/entries.js +34 -0
- package/dist/components/combobox/types.d.ts +63 -0
- package/dist/components/combobox/types.js +1 -0
- package/dist/components/combobox/validate.d.ts +3 -0
- package/dist/components/combobox/validate.js +44 -0
- package/dist/components/field/SearchFrame.d.ts +16 -0
- package/dist/components/field/SearchFrame.js +32 -0
- package/dist/components/table/TableCell.d.ts +8 -0
- package/dist/components/table/TableCell.js +4 -2
- package/dist/components/table/TableRow.d.ts +39 -0
- package/dist/components/table/TableRow.js +8 -0
- package/dist/components/use-scroll-overflow.d.ts +8 -3
- package/dist/components/use-scroll-overflow.js +15 -4
- package/dist/css/css-action-menu.js +41 -0
- package/dist/css/css-button-group-attached.d.ts +2 -0
- package/dist/css/css-button-group-attached.js +70 -0
- package/dist/css/css-button.js +5 -1
- package/dist/css/css-combobox.d.ts +2 -0
- package/dist/css/css-combobox.js +135 -0
- package/dist/css/css-components.js +4 -0
- package/dist/css/css-field-search.d.ts +2 -0
- package/dist/css/css-field-search.js +118 -0
- package/dist/css/css-field.js +4 -0
- package/dist/css/css-filter-chips.js +26 -0
- package/dist/css/css-section-nav-filled.d.ts +6 -0
- package/dist/css/css-section-nav-filled.js +80 -0
- package/dist/css/css-section-nav.js +4 -0
- package/dist/css/css-table-footer.d.ts +2 -0
- package/dist/css/css-table-footer.js +57 -0
- package/dist/css/css-table-ledger.d.ts +10 -0
- package/dist/css/css-table-ledger.js +122 -0
- package/dist/css/css-table.js +8 -0
- package/dist/css/stacking.d.ts +9 -3
- package/dist/css/stacking.js +28 -8
- package/dist/css/stylesheet.js +2 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.js +4 -3
- package/dist/styles.css +483 -7
- package/package.json +1 -1
package/dist/styles.css
CHANGED
|
@@ -828,10 +828,10 @@ body {
|
|
|
828
828
|
}
|
|
829
829
|
|
|
830
830
|
/* Backdrop blur makes a glass surface its own stacking context, so it lifts while it holds an open popup (see stacking.ts). */
|
|
831
|
-
.sw-card-glass:has(.sw-select-list, .sw-action-menu-list, .sw-multi-select-panel, .sw-tooltip:not([hidden]), .sw-date-field-calendar),
|
|
832
|
-
.sw-accordion:has(.sw-select-list, .sw-action-menu-list, .sw-multi-select-panel, .sw-tooltip:not([hidden]), .sw-date-field-calendar) {
|
|
831
|
+
.sw-card-glass:has(.sw-select-list, .sw-action-menu-list, .sw-multi-select-panel, .sw-combobox-popup, .sw-tooltip:not([hidden]), .sw-date-field-calendar),
|
|
832
|
+
.sw-accordion:has(.sw-select-list, .sw-action-menu-list, .sw-multi-select-panel, .sw-combobox-popup, .sw-tooltip:not([hidden]), .sw-date-field-calendar) {
|
|
833
833
|
position: relative;
|
|
834
|
-
z-index:
|
|
834
|
+
z-index: 4;
|
|
835
835
|
}
|
|
836
836
|
|
|
837
837
|
.sw-card-outlined {
|
|
@@ -931,6 +931,53 @@ body {
|
|
|
931
931
|
.sw-button-group > * { width: 100%; }
|
|
932
932
|
}
|
|
933
933
|
|
|
934
|
+
.sw-button-group.sw-button-group-attached {
|
|
935
|
+
align-items: stretch;
|
|
936
|
+
display: inline-flex;
|
|
937
|
+
flex-wrap: nowrap;
|
|
938
|
+
gap: 0;
|
|
939
|
+
isolation: isolate;
|
|
940
|
+
max-width: 100%;
|
|
941
|
+
width: fit-content;
|
|
942
|
+
}
|
|
943
|
+
|
|
944
|
+
.sw-button-group.sw-button-group-attached > .sw-button {
|
|
945
|
+
border-radius: 0;
|
|
946
|
+
}
|
|
947
|
+
|
|
948
|
+
.sw-button-group.sw-button-group-attached > .sw-button + .sw-button {
|
|
949
|
+
margin-inline-start: -1px;
|
|
950
|
+
}
|
|
951
|
+
|
|
952
|
+
.sw-button-group.sw-button-group-attached > .sw-button:first-child {
|
|
953
|
+
border-end-start-radius: var(--sw-radius-sm);
|
|
954
|
+
border-start-start-radius: var(--sw-radius-sm);
|
|
955
|
+
}
|
|
956
|
+
|
|
957
|
+
.sw-button-group.sw-button-group-attached > .sw-button:last-child {
|
|
958
|
+
border-end-end-radius: var(--sw-radius-sm);
|
|
959
|
+
border-start-end-radius: var(--sw-radius-sm);
|
|
960
|
+
}
|
|
961
|
+
|
|
962
|
+
.sw-button-group.sw-button-group-attached > .sw-button + .sw-button:not(.sw-button-secondary) {
|
|
963
|
+
border-inline-start-color: color-mix(in srgb, currentColor 30%, transparent);
|
|
964
|
+
}
|
|
965
|
+
|
|
966
|
+
.sw-button-group.sw-button-group-attached > .sw-button[aria-pressed='true'] {
|
|
967
|
+
position: relative;
|
|
968
|
+
z-index: 1;
|
|
969
|
+
}
|
|
970
|
+
|
|
971
|
+
.sw-button-group.sw-button-group-attached > .sw-button:focus-visible {
|
|
972
|
+
position: relative;
|
|
973
|
+
z-index: 2;
|
|
974
|
+
}
|
|
975
|
+
|
|
976
|
+
@media not all and (min-width: 48rem) {
|
|
977
|
+
.sw-button-group.sw-button-group-attached { align-items: stretch; flex-direction: row; }
|
|
978
|
+
.sw-button-group.sw-button-group-attached > * { width: auto; }
|
|
979
|
+
}
|
|
980
|
+
|
|
934
981
|
.sw-checkbox {
|
|
935
982
|
display: flex;
|
|
936
983
|
flex-direction: column;
|
|
@@ -1593,6 +1640,118 @@ body {
|
|
|
1593
1640
|
.sw-table-sort-none { opacity: 1; }
|
|
1594
1641
|
}
|
|
1595
1642
|
|
|
1643
|
+
.sw-table .sw-table-tone-success {
|
|
1644
|
+
color: var(--sw-color-success);
|
|
1645
|
+
}
|
|
1646
|
+
|
|
1647
|
+
.sw-table .sw-table-tone-danger {
|
|
1648
|
+
color: var(--sw-color-danger);
|
|
1649
|
+
}
|
|
1650
|
+
|
|
1651
|
+
.sw-table .sw-table-tone-muted {
|
|
1652
|
+
color: var(--sw-color-muted);
|
|
1653
|
+
}
|
|
1654
|
+
|
|
1655
|
+
.sw-table .sw-table-tone-accent {
|
|
1656
|
+
color: var(--sw-color-accent);
|
|
1657
|
+
}
|
|
1658
|
+
|
|
1659
|
+
.sw-table-column-rules :is(th, td) + :is(th, td) {
|
|
1660
|
+
border-inline-start: 1px solid var(--sw-color-border);
|
|
1661
|
+
}
|
|
1662
|
+
|
|
1663
|
+
/* A sticky header cell is positioned, so the next cell's fill covers a
|
|
1664
|
+
collapsed border; its rule is a border on its own ::after instead, so
|
|
1665
|
+
forced colours keep it and the logical inset mirrors it. */
|
|
1666
|
+
.sw-table-sticky.sw-table-column-rules thead :is(th, td) + :is(th, td)::after {
|
|
1667
|
+
border-inline-start: 1px solid var(--sw-color-border);
|
|
1668
|
+
content: '';
|
|
1669
|
+
inset-block: 0;
|
|
1670
|
+
inset-inline-start: 0;
|
|
1671
|
+
pointer-events: none;
|
|
1672
|
+
position: absolute;
|
|
1673
|
+
}
|
|
1674
|
+
|
|
1675
|
+
:where(.sw-table tbody, .sw-table tfoot) th[scope='row'] {
|
|
1676
|
+
color: inherit;
|
|
1677
|
+
font: inherit;
|
|
1678
|
+
letter-spacing: inherit;
|
|
1679
|
+
}
|
|
1680
|
+
|
|
1681
|
+
.sw-table-row-sub > th[scope='row'] {
|
|
1682
|
+
padding-inline-start: calc(var(--sw-space-3) + var(--sw-space-6) + var(--sw-space-3));
|
|
1683
|
+
position: relative;
|
|
1684
|
+
}
|
|
1685
|
+
|
|
1686
|
+
.sw-table-compact .sw-table-row-sub > th[scope='row'] {
|
|
1687
|
+
padding-inline-start: calc(var(--sw-space-2) + var(--sw-space-6) + var(--sw-space-3));
|
|
1688
|
+
}
|
|
1689
|
+
|
|
1690
|
+
.sw-table-row-sub > th[scope='row']::after {
|
|
1691
|
+
block-size: var(--sw-space-5);
|
|
1692
|
+
border-inline-start: 2px solid var(--sw-color-border);
|
|
1693
|
+
content: '';
|
|
1694
|
+
inset-block-start: 50%;
|
|
1695
|
+
inset-inline-start: calc(var(--sw-space-3) + var(--sw-space-6));
|
|
1696
|
+
pointer-events: none;
|
|
1697
|
+
position: absolute;
|
|
1698
|
+
transform: translateY(-50%);
|
|
1699
|
+
}
|
|
1700
|
+
|
|
1701
|
+
.sw-table-compact .sw-table-row-sub > th[scope='row']::after {
|
|
1702
|
+
inset-inline-start: calc(var(--sw-space-2) + var(--sw-space-6));
|
|
1703
|
+
}
|
|
1704
|
+
|
|
1705
|
+
.sw-table .sw-table-row-struck > :is(td, th) {
|
|
1706
|
+
background: var(--sw-color-subtle);
|
|
1707
|
+
color: var(--sw-color-muted);
|
|
1708
|
+
text-decoration: line-through;
|
|
1709
|
+
}
|
|
1710
|
+
|
|
1711
|
+
.sw-table .sw-table-row-struck > [class*='sw-table-tone-'] {
|
|
1712
|
+
color: var(--sw-color-muted);
|
|
1713
|
+
}
|
|
1714
|
+
|
|
1715
|
+
@media (forced-colors: active) {
|
|
1716
|
+
.sw-table-column-rules :is(th, td) + :is(th, td),
|
|
1717
|
+
.sw-table-sticky.sw-table-column-rules thead :is(th, td) + :is(th, td)::after { border-color: CanvasText; }
|
|
1718
|
+
.sw-table-row-sub > th[scope='row']::after { border-color: CanvasText; }
|
|
1719
|
+
}
|
|
1720
|
+
|
|
1721
|
+
.sw-table tfoot :is(th, td) {
|
|
1722
|
+
font-weight: 600;
|
|
1723
|
+
position: relative;
|
|
1724
|
+
}
|
|
1725
|
+
|
|
1726
|
+
.sw-table tfoot > tr:first-child > :is(th, td)::before {
|
|
1727
|
+
border-top: 2px solid var(--sw-color-border);
|
|
1728
|
+
content: '';
|
|
1729
|
+
/* Over the last body row's 1 px border, so the rule reads 2 px. */
|
|
1730
|
+
inset-block-start: -1px;
|
|
1731
|
+
inset-inline: 0;
|
|
1732
|
+
pointer-events: none;
|
|
1733
|
+
position: absolute;
|
|
1734
|
+
}
|
|
1735
|
+
|
|
1736
|
+
.sw-table .sw-table-footer-sticky :is(th, td) {
|
|
1737
|
+
background: var(--sw-glass-fill);
|
|
1738
|
+
backdrop-filter: blur(var(--sw-glass-blur)) saturate(var(--sw-glass-saturate));
|
|
1739
|
+
-webkit-backdrop-filter: blur(var(--sw-glass-blur)) saturate(var(--sw-glass-saturate));
|
|
1740
|
+
bottom: 0;
|
|
1741
|
+
position: sticky;
|
|
1742
|
+
z-index: 2;
|
|
1743
|
+
}
|
|
1744
|
+
|
|
1745
|
+
.sw-table-wrap.sw-scroll-fits:has(> .sw-table > .sw-table-footer-sticky) {
|
|
1746
|
+
overflow: visible;
|
|
1747
|
+
}
|
|
1748
|
+
|
|
1749
|
+
@media (forced-colors: active) {
|
|
1750
|
+
.sw-table tfoot > tr:first-child > :is(th, td)::before { border-color: CanvasText; }
|
|
1751
|
+
.sw-table .sw-table-footer-sticky :is(th, td),
|
|
1752
|
+
.sw-table-sticky thead th { background: Canvas; backdrop-filter: none; -webkit-backdrop-filter: none; }
|
|
1753
|
+
}
|
|
1754
|
+
|
|
1596
1755
|
.sw-table-row-selected > :first-child {
|
|
1597
1756
|
position: relative;
|
|
1598
1757
|
}
|
|
@@ -2086,7 +2245,7 @@ body {
|
|
|
2086
2245
|
.sw-app-header-sticky {
|
|
2087
2246
|
position: sticky;
|
|
2088
2247
|
top: 0;
|
|
2089
|
-
z-index:
|
|
2248
|
+
z-index: 5;
|
|
2090
2249
|
}
|
|
2091
2250
|
|
|
2092
2251
|
.sw-nav {
|
|
@@ -2210,6 +2369,54 @@ body {
|
|
|
2210
2369
|
}
|
|
2211
2370
|
}
|
|
2212
2371
|
|
|
2372
|
+
.sw-section-nav.sw-section-nav-filled .sw-section-nav-list {
|
|
2373
|
+
border-bottom: 0;
|
|
2374
|
+
}
|
|
2375
|
+
|
|
2376
|
+
/* (0,4,0): outranks the underline and the side list's start bar. */
|
|
2377
|
+
[data-theme] .sw-section-nav.sw-section-nav-filled .sw-section-nav-link {
|
|
2378
|
+
border: 2px solid transparent;
|
|
2379
|
+
border-radius: var(--sw-radius-sm);
|
|
2380
|
+
font-weight: 500;
|
|
2381
|
+
margin-bottom: 0;
|
|
2382
|
+
min-height: var(--sw-control-sm-min-height);
|
|
2383
|
+
padding-inline: var(--sw-control-sm-padding-inline);
|
|
2384
|
+
}
|
|
2385
|
+
|
|
2386
|
+
[data-theme] .sw-section-nav.sw-section-nav-filled .sw-section-nav-link[aria-current] {
|
|
2387
|
+
background: color-mix(in srgb, var(--sw-color-muted) 18%, transparent);
|
|
2388
|
+
border-color: transparent;
|
|
2389
|
+
color: var(--sw-color-text);
|
|
2390
|
+
font-weight: 600;
|
|
2391
|
+
}
|
|
2392
|
+
|
|
2393
|
+
[data-theme] .sw-section-nav-count {
|
|
2394
|
+
align-items: center;
|
|
2395
|
+
background: var(--sw-color-danger);
|
|
2396
|
+
border-radius: var(--sw-radius-pill);
|
|
2397
|
+
box-sizing: border-box;
|
|
2398
|
+
color: var(--sw-color-onDanger);
|
|
2399
|
+
display: inline-flex;
|
|
2400
|
+
font-size: 13px;
|
|
2401
|
+
font-variant-numeric: tabular-nums;
|
|
2402
|
+
font-weight: 700;
|
|
2403
|
+
justify-content: center;
|
|
2404
|
+
letter-spacing: -0.08px;
|
|
2405
|
+
line-height: 1;
|
|
2406
|
+
min-height: calc(var(--sw-space-5) - var(--sw-space-1));
|
|
2407
|
+
min-width: calc(var(--sw-space-5) - var(--sw-space-1));
|
|
2408
|
+
padding-inline: var(--sw-space-1);
|
|
2409
|
+
}
|
|
2410
|
+
|
|
2411
|
+
@media (pointer: coarse) {
|
|
2412
|
+
[data-theme] .sw-section-nav.sw-section-nav-filled .sw-section-nav-link { min-height: var(--sw-control-md-min-height); }
|
|
2413
|
+
}
|
|
2414
|
+
|
|
2415
|
+
@media (forced-colors: active) {
|
|
2416
|
+
[data-theme] .sw-section-nav.sw-section-nav-filled .sw-section-nav-link[aria-current] { border-color: Highlight; }
|
|
2417
|
+
[data-theme] .sw-section-nav-count { border: 1px solid CanvasText; }
|
|
2418
|
+
}
|
|
2419
|
+
|
|
2213
2420
|
@media (pointer: coarse) {
|
|
2214
2421
|
[data-theme] .sw-section-nav-link { min-height: var(--sw-control-md-min-height); }
|
|
2215
2422
|
}
|
|
@@ -2760,6 +2967,47 @@ body {
|
|
|
2760
2967
|
color: var(--sw-color-danger);
|
|
2761
2968
|
}
|
|
2762
2969
|
|
|
2970
|
+
/*
|
|
2971
|
+
* A command's detail: its current value at the inline end in the muted
|
|
2972
|
+
* colour, then a chevron pointing to the inline end (mirrored right to
|
|
2973
|
+
* left). A long value wraps between words, never inside one (the command
|
|
2974
|
+
* itself may break anywhere), and the chevron stays last.
|
|
2975
|
+
*/
|
|
2976
|
+
.sw-action-menu-detail {
|
|
2977
|
+
align-items: center;
|
|
2978
|
+
color: var(--sw-color-muted);
|
|
2979
|
+
display: inline-flex;
|
|
2980
|
+
gap: var(--sw-space-2);
|
|
2981
|
+
margin-inline-start: auto;
|
|
2982
|
+
overflow-wrap: normal;
|
|
2983
|
+
padding-inline-start: var(--sw-space-3);
|
|
2984
|
+
text-align: end;
|
|
2985
|
+
}
|
|
2986
|
+
|
|
2987
|
+
.sw-action-menu-chevron {
|
|
2988
|
+
border-bottom: 2px solid var(--sw-color-muted);
|
|
2989
|
+
border-right: 2px solid var(--sw-color-muted);
|
|
2990
|
+
box-sizing: border-box;
|
|
2991
|
+
height: var(--sw-space-2);
|
|
2992
|
+
width: var(--sw-space-2);
|
|
2993
|
+
flex: none;
|
|
2994
|
+
transform: rotate(-45deg);
|
|
2995
|
+
}
|
|
2996
|
+
|
|
2997
|
+
.sw-action-menu-chevron:dir(rtl) {
|
|
2998
|
+
transform: rotate(135deg);
|
|
2999
|
+
}
|
|
3000
|
+
|
|
3001
|
+
/* A hairline that sets a command apart from the ones above. */
|
|
3002
|
+
.sw-action-menu-separator {
|
|
3003
|
+
border-top: 1px solid var(--sw-color-border);
|
|
3004
|
+
margin-block: var(--sw-space-1);
|
|
3005
|
+
}
|
|
3006
|
+
|
|
3007
|
+
@media (forced-colors: active) {
|
|
3008
|
+
.sw-action-menu-chevron { border-color: CanvasText; }
|
|
3009
|
+
}
|
|
3010
|
+
|
|
2763
3011
|
/* A coarse pointer gets the full touch target: the trigger at least square, and every command as tall. */
|
|
2764
3012
|
@media (pointer: coarse) {
|
|
2765
3013
|
.sw-action-menu-trigger {
|
|
@@ -2772,6 +3020,110 @@ body {
|
|
|
2772
3020
|
}
|
|
2773
3021
|
}
|
|
2774
3022
|
|
|
3023
|
+
.sw-combobox {
|
|
3024
|
+
max-width: 100%;
|
|
3025
|
+
min-width: 0;
|
|
3026
|
+
}
|
|
3027
|
+
|
|
3028
|
+
.sw-combobox-popup {
|
|
3029
|
+
background: var(--sw-glass-fill);
|
|
3030
|
+
border: 1px solid var(--sw-glass-border);
|
|
3031
|
+
border-radius: var(--sw-radius-sm);
|
|
3032
|
+
box-shadow: var(--sw-elevation-sm), inset 0 1px 0 var(--sw-glass-specular);
|
|
3033
|
+
backdrop-filter: blur(var(--sw-glass-blur)) saturate(var(--sw-glass-saturate));
|
|
3034
|
+
-webkit-backdrop-filter: blur(var(--sw-glass-blur)) saturate(var(--sw-glass-saturate));
|
|
3035
|
+
box-sizing: border-box;
|
|
3036
|
+
color: var(--sw-color-text);
|
|
3037
|
+
inset: auto;
|
|
3038
|
+
margin: 0;
|
|
3039
|
+
max-height: min(var(--sw-select-max), calc(100% - var(--sw-space-2) - var(--sw-space-2)));
|
|
3040
|
+
max-width: calc(100% - var(--sw-space-2) - var(--sw-space-2));
|
|
3041
|
+
overflow: auto;
|
|
3042
|
+
padding: var(--sw-space-1);
|
|
3043
|
+
position: fixed;
|
|
3044
|
+
z-index: 10;
|
|
3045
|
+
}
|
|
3046
|
+
|
|
3047
|
+
.sw-combobox-heading {
|
|
3048
|
+
color: var(--sw-color-muted);
|
|
3049
|
+
font-family: var(--sw-font-sans);
|
|
3050
|
+
font-size: 13px;
|
|
3051
|
+
font-weight: 600;
|
|
3052
|
+
letter-spacing: -0.08px;
|
|
3053
|
+
line-height: 18px;
|
|
3054
|
+
padding: var(--sw-space-2) var(--sw-space-3) var(--sw-space-1);
|
|
3055
|
+
}
|
|
3056
|
+
|
|
3057
|
+
.sw-combobox-option {
|
|
3058
|
+
align-items: center;
|
|
3059
|
+
border-radius: var(--sw-radius-sm);
|
|
3060
|
+
box-sizing: border-box;
|
|
3061
|
+
column-gap: var(--sw-space-2);
|
|
3062
|
+
cursor: pointer;
|
|
3063
|
+
display: flex;
|
|
3064
|
+
flex-wrap: wrap;
|
|
3065
|
+
font-family: var(--sw-font-sans);
|
|
3066
|
+
font-size: 15px;
|
|
3067
|
+
letter-spacing: -0.2px;
|
|
3068
|
+
line-height: 20px;
|
|
3069
|
+
min-height: var(--sw-control-md-min-height);
|
|
3070
|
+
overflow-wrap: anywhere;
|
|
3071
|
+
padding: var(--sw-space-1) var(--sw-space-3);
|
|
3072
|
+
}
|
|
3073
|
+
|
|
3074
|
+
.sw-combobox-option + .sw-combobox-option {
|
|
3075
|
+
border-top: 1px solid var(--sw-color-border);
|
|
3076
|
+
}
|
|
3077
|
+
|
|
3078
|
+
.sw-combobox-label {
|
|
3079
|
+
font-weight: 600;
|
|
3080
|
+
}
|
|
3081
|
+
|
|
3082
|
+
.sw-combobox-description {
|
|
3083
|
+
color: var(--sw-color-muted);
|
|
3084
|
+
font-size: 13px;
|
|
3085
|
+
letter-spacing: -0.08px;
|
|
3086
|
+
line-height: 18px;
|
|
3087
|
+
}
|
|
3088
|
+
|
|
3089
|
+
.sw-combobox-option[aria-selected='true'] {
|
|
3090
|
+
background: color-mix(in srgb, var(--sw-color-muted) 16%, transparent);
|
|
3091
|
+
}
|
|
3092
|
+
|
|
3093
|
+
.sw-combobox-option[aria-disabled='true'] {
|
|
3094
|
+
cursor: not-allowed;
|
|
3095
|
+
}
|
|
3096
|
+
|
|
3097
|
+
.sw-combobox-option[aria-disabled='true'] .sw-combobox-label {
|
|
3098
|
+
color: var(--sw-color-muted);
|
|
3099
|
+
}
|
|
3100
|
+
|
|
3101
|
+
.sw-combobox-action {
|
|
3102
|
+
border-top: 1px solid var(--sw-color-border);
|
|
3103
|
+
color: var(--sw-color-accent);
|
|
3104
|
+
margin-top: var(--sw-space-1);
|
|
3105
|
+
}
|
|
3106
|
+
|
|
3107
|
+
.sw-combobox-empty,
|
|
3108
|
+
.sw-combobox-note {
|
|
3109
|
+
color: var(--sw-color-muted);
|
|
3110
|
+
font-family: var(--sw-font-sans);
|
|
3111
|
+
font-size: 13px;
|
|
3112
|
+
letter-spacing: -0.08px;
|
|
3113
|
+
line-height: 18px;
|
|
3114
|
+
padding: var(--sw-space-2) var(--sw-space-3);
|
|
3115
|
+
}
|
|
3116
|
+
|
|
3117
|
+
@media (forced-colors: active) {
|
|
3118
|
+
.sw-combobox-popup { border-color: CanvasText; }
|
|
3119
|
+
.sw-combobox-option[aria-selected='true'] { background: Highlight; color: HighlightText; forced-color-adjust: none; }
|
|
3120
|
+
.sw-combobox-option[aria-selected='true'] .sw-combobox-description { color: HighlightText; }
|
|
3121
|
+
.sw-combobox-option[aria-selected='true'] .sw-badge { forced-color-adjust: auto; }
|
|
3122
|
+
.sw-combobox-option[aria-disabled='true'] .sw-combobox-label { color: GrayText; }
|
|
3123
|
+
.sw-combobox-option[aria-selected='true'][aria-disabled='true'] .sw-combobox-label { color: HighlightText; }
|
|
3124
|
+
.sw-combobox-option + .sw-combobox-option { border-color: CanvasText; }
|
|
3125
|
+
.sw-combobox-action { border-color: CanvasText; }
|
|
3126
|
+
}
|
|
2775
3127
|
.sw-multi-select {
|
|
2776
3128
|
display: inline-flex;
|
|
2777
3129
|
max-width: 100%;
|
|
@@ -2995,14 +3347,14 @@ body {
|
|
|
2995
3347
|
.sw-action-bar-sticky {
|
|
2996
3348
|
bottom: calc(var(--sw-space-2) + env(safe-area-inset-bottom, 0px));
|
|
2997
3349
|
position: sticky;
|
|
2998
|
-
z-index:
|
|
3350
|
+
z-index: 3;
|
|
2999
3351
|
}
|
|
3000
3352
|
|
|
3001
3353
|
@media not all and (min-width: 48rem) {
|
|
3002
3354
|
.sw-action-bar-sticky-below-md {
|
|
3003
3355
|
bottom: calc(var(--sw-space-2) + env(safe-area-inset-bottom, 0px));
|
|
3004
3356
|
position: sticky;
|
|
3005
|
-
z-index:
|
|
3357
|
+
z-index: 3;
|
|
3006
3358
|
}
|
|
3007
3359
|
}
|
|
3008
3360
|
|
|
@@ -3577,7 +3929,7 @@ body {
|
|
|
3577
3929
|
-webkit-backdrop-filter: blur(var(--sw-glass-blur)) saturate(var(--sw-glass-saturate));
|
|
3578
3930
|
position: sticky;
|
|
3579
3931
|
top: env(safe-area-inset-top, 0px);
|
|
3580
|
-
z-index:
|
|
3932
|
+
z-index: 5;
|
|
3581
3933
|
}
|
|
3582
3934
|
|
|
3583
3935
|
@media (prefers-reduced-transparency: reduce) {
|
|
@@ -3692,11 +4044,35 @@ body {
|
|
|
3692
4044
|
opacity: var(--sw-disabled-opacity);
|
|
3693
4045
|
}
|
|
3694
4046
|
|
|
4047
|
+
/*
|
|
4048
|
+
* An error: the message under the chips in the danger colour (a polite live
|
|
4049
|
+
* region, out of the layout while empty) and every chip's edge in danger,
|
|
4050
|
+
* the chosen one too (it keeps its accent fill), in normal and forced
|
|
4051
|
+
* colours alike.
|
|
4052
|
+
*/
|
|
4053
|
+
.sw-filter-chips-error {
|
|
4054
|
+
color: var(--sw-color-danger);
|
|
4055
|
+
display: block;
|
|
4056
|
+
font-family: var(--sw-font-sans);
|
|
4057
|
+
font-size: 13px;
|
|
4058
|
+
line-height: 18px;
|
|
4059
|
+
padding-top: var(--sw-space-2);
|
|
4060
|
+
}
|
|
4061
|
+
|
|
4062
|
+
.sw-filter-chips-error:empty { position: absolute; }
|
|
4063
|
+
|
|
4064
|
+
.sw-filter-chips[aria-invalid='true'] .sw-filter-chip-face {
|
|
4065
|
+
border-color: var(--sw-color-danger);
|
|
4066
|
+
}
|
|
4067
|
+
|
|
3695
4068
|
@media (forced-colors: active) {
|
|
3696
4069
|
.sw-filter-chip-face { background: Canvas; border-color: CanvasText; color: CanvasText; }
|
|
4070
|
+
.sw-filter-chips-error { color: Mark; }
|
|
3697
4071
|
.sw-filter-chip-input:checked + .sw-filter-chip-face { background: Highlight; border-color: Highlight; color: HighlightText; }
|
|
3698
4072
|
.sw-filter-chip-input:focus-visible + .sw-filter-chip-face { outline-color: Highlight; }
|
|
3699
4073
|
.sw-filter-chip-count { color: inherit; }
|
|
4074
|
+
/* After the checked rule, so every chip, the chosen one too, takes the edge. */
|
|
4075
|
+
.sw-filter-chips[aria-invalid='true'] .sw-filter-chip-face { border-color: Mark; }
|
|
3700
4076
|
}
|
|
3701
4077
|
|
|
3702
4078
|
.sw-grid {
|
|
@@ -4244,6 +4620,104 @@ body {
|
|
|
4244
4620
|
|
|
4245
4621
|
[data-theme] .sw-field-adorned > input:disabled { background: transparent; }
|
|
4246
4622
|
|
|
4623
|
+
.sw-field-adorned.sw-field-search {
|
|
4624
|
+
gap: var(--sw-space-2);
|
|
4625
|
+
padding-inline-end: 0;
|
|
4626
|
+
}
|
|
4627
|
+
|
|
4628
|
+
.sw-field-search-leading {
|
|
4629
|
+
color: var(--sw-color-muted);
|
|
4630
|
+
display: inline-flex;
|
|
4631
|
+
flex: none;
|
|
4632
|
+
}
|
|
4633
|
+
|
|
4634
|
+
[data-theme] .sw-field-search > input[type='search'] {
|
|
4635
|
+
appearance: none;
|
|
4636
|
+
-webkit-appearance: none;
|
|
4637
|
+
}
|
|
4638
|
+
|
|
4639
|
+
.sw-field-search > input[type='search']::-webkit-search-cancel-button,
|
|
4640
|
+
.sw-field-search > input[type='search']::-webkit-search-decoration {
|
|
4641
|
+
-webkit-appearance: none;
|
|
4642
|
+
appearance: none;
|
|
4643
|
+
display: none;
|
|
4644
|
+
}
|
|
4645
|
+
|
|
4646
|
+
.sw-field-search > input:last-child {
|
|
4647
|
+
margin-inline-end: var(--sw-control-md-padding-inline);
|
|
4648
|
+
}
|
|
4649
|
+
|
|
4650
|
+
.sw-field-search-clear {
|
|
4651
|
+
align-items: center;
|
|
4652
|
+
align-self: stretch;
|
|
4653
|
+
appearance: none;
|
|
4654
|
+
background: transparent;
|
|
4655
|
+
border: 0;
|
|
4656
|
+
border-radius: var(--sw-radius-sm);
|
|
4657
|
+
color: inherit;
|
|
4658
|
+
cursor: pointer;
|
|
4659
|
+
display: inline-flex;
|
|
4660
|
+
flex: none;
|
|
4661
|
+
justify-content: center;
|
|
4662
|
+
margin: 0;
|
|
4663
|
+
min-width: var(--sw-control-xs-min-height);
|
|
4664
|
+
padding: 0 var(--sw-space-2);
|
|
4665
|
+
}
|
|
4666
|
+
|
|
4667
|
+
.sw-field-search-clear:focus-visible {
|
|
4668
|
+
outline: var(--sw-focus-ring-width) solid var(--sw-color-accent);
|
|
4669
|
+
outline-offset: calc(-1 * var(--sw-focus-ring-width));
|
|
4670
|
+
}
|
|
4671
|
+
|
|
4672
|
+
/* One ring at a time: the clear button's own while it has focus. */
|
|
4673
|
+
.sw-field-search:has(.sw-field-search-clear:focus-visible) {
|
|
4674
|
+
outline: none;
|
|
4675
|
+
}
|
|
4676
|
+
|
|
4677
|
+
.sw-field-search-clear:hover .sw-field-search-cross {
|
|
4678
|
+
background: var(--sw-color-text);
|
|
4679
|
+
}
|
|
4680
|
+
|
|
4681
|
+
.sw-field-xs .sw-field-search > input:last-child {
|
|
4682
|
+
margin-inline-end: var(--sw-control-xs-padding-inline);
|
|
4683
|
+
}
|
|
4684
|
+
|
|
4685
|
+
.sw-field-search-cross {
|
|
4686
|
+
background: var(--sw-color-muted);
|
|
4687
|
+
border-radius: var(--sw-radius-pill);
|
|
4688
|
+
display: inline-block;
|
|
4689
|
+
height: var(--sw-space-4);
|
|
4690
|
+
position: relative;
|
|
4691
|
+
width: var(--sw-space-4);
|
|
4692
|
+
}
|
|
4693
|
+
|
|
4694
|
+
.sw-field-search-cross::before,
|
|
4695
|
+
.sw-field-search-cross::after {
|
|
4696
|
+
background: var(--sw-color-surface);
|
|
4697
|
+
border-radius: 1px;
|
|
4698
|
+
content: '';
|
|
4699
|
+
height: 2px;
|
|
4700
|
+
inset: 0;
|
|
4701
|
+
margin: auto;
|
|
4702
|
+
position: absolute;
|
|
4703
|
+
width: calc(var(--sw-space-2) + 2px);
|
|
4704
|
+
}
|
|
4705
|
+
|
|
4706
|
+
.sw-field-search-cross::before { transform: rotate(45deg); }
|
|
4707
|
+
.sw-field-search-cross::after { transform: rotate(-45deg); }
|
|
4708
|
+
|
|
4709
|
+
@media (pointer: coarse) {
|
|
4710
|
+
.sw-field-search-clear { min-width: var(--sw-control-md-min-height); }
|
|
4711
|
+
}
|
|
4712
|
+
|
|
4713
|
+
@media (forced-colors: active) {
|
|
4714
|
+
.sw-field-search-leading { color: FieldText; }
|
|
4715
|
+
/* Backgrounds are forced in this mode; the disc keeps its own system colours. */
|
|
4716
|
+
.sw-field-search-cross { background: ButtonText; forced-color-adjust: none; }
|
|
4717
|
+
.sw-field-search-cross::before,
|
|
4718
|
+
.sw-field-search-cross::after { background: ButtonFace; }
|
|
4719
|
+
}
|
|
4720
|
+
|
|
4247
4721
|
[data-theme] .sw-field-changed > :is(input, select, textarea),
|
|
4248
4722
|
.sw-field-changed .sw-field-adorned {
|
|
4249
4723
|
border-color: var(--sw-color-accent);
|
|
@@ -4837,6 +5311,7 @@ body {
|
|
|
4837
5311
|
.sw-badge-neutral,
|
|
4838
5312
|
.sw-segmented,
|
|
4839
5313
|
.sw-table-sticky thead th,
|
|
5314
|
+
.sw-table .sw-table-footer-sticky :is(th, td),
|
|
4840
5315
|
.sw-denomination-strip .sw-denomination-label,
|
|
4841
5316
|
.sw-denomination-strip thead .sw-denomination-corner:first-child,
|
|
4842
5317
|
.sw-bar-chart-track,
|
|
@@ -4845,6 +5320,7 @@ body {
|
|
|
4845
5320
|
.sw-select-list,
|
|
4846
5321
|
.sw-action-menu-list,
|
|
4847
5322
|
.sw-multi-select-panel,
|
|
5323
|
+
.sw-combobox-popup,
|
|
4848
5324
|
.sw-date-field-calendar,
|
|
4849
5325
|
.sw-toast {
|
|
4850
5326
|
background: var(--sw-color-surface);
|