@scalewing/react 1.27.0 → 1.29.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 +60 -0
- package/README.md +99 -3
- package/dist/components/Checkbox.js +5 -4
- package/dist/components/DenominationGrid.d.ts +4 -1
- package/dist/components/DenominationGrid.js +8 -3
- package/dist/components/Dialog.d.ts +28 -4
- package/dist/components/Dialog.js +20 -2
- package/dist/components/GlyphTile.d.ts +21 -0
- package/dist/components/GlyphTile.js +17 -0
- package/dist/components/MultiSelect.d.ts +10 -0
- package/dist/components/MultiSelect.js +62 -0
- package/dist/components/Notice.d.ts +69 -0
- package/dist/components/Notice.js +48 -0
- package/dist/components/Progress.d.ts +3 -1
- package/dist/components/Progress.js +4 -0
- package/dist/components/SegmentedControl.d.ts +8 -0
- package/dist/components/SegmentedControl.js +4 -3
- package/dist/components/Toast.d.ts +20 -4
- package/dist/components/Toast.js +44 -21
- package/dist/components/checkbox/CheckboxControl.d.ts +9 -0
- package/dist/components/checkbox/CheckboxControl.js +9 -0
- package/dist/components/denomination-grid/DenominationStrip.d.ts +5 -2
- package/dist/components/denomination-grid/DenominationStrip.js +2 -2
- package/dist/components/denomination-grid/DenominationTiles.d.ts +5 -2
- package/dist/components/denomination-grid/DenominationTiles.js +2 -2
- package/dist/components/denomination-grid/types.d.ts +9 -0
- package/dist/components/dialog/DialogFooter.d.ts +14 -0
- package/dist/components/dialog/DialogFooter.js +11 -0
- package/dist/components/dialog/DialogTitle.d.ts +11 -4
- package/dist/components/dialog/DialogTitle.js +8 -6
- package/dist/components/multi-select/MultiSelectPanel.d.ts +25 -0
- package/dist/components/multi-select/MultiSelectPanel.js +41 -0
- package/dist/components/multi-select/types.d.ts +35 -0
- package/dist/components/multi-select/types.js +1 -0
- package/dist/components/multi-select/validate.d.ts +3 -0
- package/dist/components/multi-select/validate.js +25 -0
- package/dist/components/toast/ToastContent.d.ts +22 -0
- package/dist/components/toast/ToastContent.js +21 -0
- package/dist/components/toast/use-toast-hold.d.ts +28 -0
- package/dist/components/toast/use-toast-hold.js +53 -0
- package/dist/components/toast/use-toast-timer.d.ts +15 -0
- package/dist/components/toast/use-toast-timer.js +34 -0
- package/dist/css/css-components.js +16 -0
- package/dist/css/css-denomination-grid.js +4 -0
- package/dist/css/css-denomination-label.d.ts +10 -0
- package/dist/css/css-denomination-label.js +36 -0
- package/dist/css/css-dialog-frame.d.ts +2 -0
- package/dist/css/css-dialog-frame.js +83 -0
- package/dist/css/css-dialog.js +20 -4
- package/dist/css/css-glyph-tile.d.ts +5 -0
- package/dist/css/css-glyph-tile.js +57 -0
- package/dist/css/css-multi-select.d.ts +2 -0
- package/dist/css/css-multi-select.js +156 -0
- package/dist/css/css-notice.d.ts +22 -0
- package/dist/css/css-notice.js +168 -0
- package/dist/css/css-progress.d.ts +3 -0
- package/dist/css/css-progress.js +13 -6
- package/dist/css/css-segmented.js +58 -0
- package/dist/css/css-toast-card.d.ts +5 -0
- package/dist/css/css-toast-card.js +122 -0
- package/dist/css/css-variables.js +12 -1
- package/dist/css/stacking.js +5 -2
- package/dist/css/stylesheet.js +10 -0
- package/dist/index.d.ts +8 -5
- package/dist/index.js +7 -4
- package/dist/styles.css +522 -3
- package/package.json +2 -2
package/dist/styles.css
CHANGED
|
@@ -19,6 +19,14 @@
|
|
|
19
19
|
--sw-color-warning: #B54708;
|
|
20
20
|
--sw-color-border: #D2D2D7;
|
|
21
21
|
--sw-button-secondary-border: #D2D2D7;
|
|
22
|
+
--sw-categorical-green: #2E8F47;
|
|
23
|
+
--sw-categorical-blue: #0A7AFF;
|
|
24
|
+
--sw-categorical-orange: #D57F00;
|
|
25
|
+
--sw-categorical-purple: #8E5CD9;
|
|
26
|
+
--sw-categorical-teal: #1A96AD;
|
|
27
|
+
--sw-categorical-rose: #C2415D;
|
|
28
|
+
--sw-categorical-neutral: #8E8E93;
|
|
29
|
+
--sw-categorical-on: #FFFFFF;
|
|
22
30
|
--sw-space-0: 0px;
|
|
23
31
|
--sw-space-1: 4px;
|
|
24
32
|
--sw-space-2: 8px;
|
|
@@ -48,6 +56,7 @@
|
|
|
48
56
|
--sw-container-max: 72rem;
|
|
49
57
|
--sw-dialog-max: 32rem;
|
|
50
58
|
--sw-dialog-max-lg: 56rem;
|
|
59
|
+
--sw-dialog-max-xl: 65rem;
|
|
51
60
|
--sw-select-max: 16rem;
|
|
52
61
|
--sw-split-min: 14rem;
|
|
53
62
|
--sw-split-size: 22rem;
|
|
@@ -83,6 +92,14 @@
|
|
|
83
92
|
--sw-color-warning: #FDB022;
|
|
84
93
|
--sw-color-border: #3A3A3C;
|
|
85
94
|
--sw-button-secondary-border: #3A3A3C;
|
|
95
|
+
--sw-categorical-green: #2E8F47;
|
|
96
|
+
--sw-categorical-blue: #0A7AFF;
|
|
97
|
+
--sw-categorical-orange: #D57F00;
|
|
98
|
+
--sw-categorical-purple: #8E5CD9;
|
|
99
|
+
--sw-categorical-teal: #1A96AD;
|
|
100
|
+
--sw-categorical-rose: #C2415D;
|
|
101
|
+
--sw-categorical-neutral: #8E8E93;
|
|
102
|
+
--sw-categorical-on: #FFFFFF;
|
|
86
103
|
--sw-space-0: 0px;
|
|
87
104
|
--sw-space-1: 4px;
|
|
88
105
|
--sw-space-2: 8px;
|
|
@@ -112,6 +129,7 @@
|
|
|
112
129
|
--sw-container-max: 72rem;
|
|
113
130
|
--sw-dialog-max: 32rem;
|
|
114
131
|
--sw-dialog-max-lg: 56rem;
|
|
132
|
+
--sw-dialog-max-xl: 65rem;
|
|
115
133
|
--sw-select-max: 16rem;
|
|
116
134
|
--sw-split-min: 14rem;
|
|
117
135
|
--sw-split-size: 22rem;
|
|
@@ -810,8 +828,8 @@ body {
|
|
|
810
828
|
}
|
|
811
829
|
|
|
812
830
|
/* Backdrop blur makes a glass surface its own stacking context, so it lifts while it holds an open popup (see stacking.ts). */
|
|
813
|
-
.sw-card-glass:has(.sw-select-list, .sw-action-menu-list, .sw-tooltip:not([hidden]), .sw-date-field-calendar),
|
|
814
|
-
.sw-accordion:has(.sw-select-list, .sw-action-menu-list, .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-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) {
|
|
815
833
|
position: relative;
|
|
816
834
|
z-index: 3;
|
|
817
835
|
}
|
|
@@ -1346,6 +1364,45 @@ body {
|
|
|
1346
1364
|
color: var(--sw-color-onAccent);
|
|
1347
1365
|
}
|
|
1348
1366
|
|
|
1367
|
+
.sw-segmented.sw-segmented-with-icons:not(.sw-segmented-filled) {
|
|
1368
|
+
background: var(--sw-color-subtle);
|
|
1369
|
+
border-color: transparent;
|
|
1370
|
+
}
|
|
1371
|
+
|
|
1372
|
+
.sw-segmented-with-icons:not(.sw-segmented-filled) .sw-segmented-item-selected {
|
|
1373
|
+
box-shadow: var(--sw-elevation-sm);
|
|
1374
|
+
}
|
|
1375
|
+
|
|
1376
|
+
.sw-segmented-with-icons .sw-segmented-item {
|
|
1377
|
+
align-items: center;
|
|
1378
|
+
display: inline-flex;
|
|
1379
|
+
gap: var(--sw-space-2);
|
|
1380
|
+
justify-content: center;
|
|
1381
|
+
}
|
|
1382
|
+
|
|
1383
|
+
.sw-segmented-with-icons:not(.sw-segmented-filled) .sw-segmented-item {
|
|
1384
|
+
font-size: 15px;
|
|
1385
|
+
letter-spacing: -0.2px;
|
|
1386
|
+
line-height: 20px;
|
|
1387
|
+
min-height: var(--sw-control-md-min-height);
|
|
1388
|
+
padding-inline: var(--sw-space-2) var(--sw-space-3);
|
|
1389
|
+
}
|
|
1390
|
+
|
|
1391
|
+
.sw-segmented-item-icon {
|
|
1392
|
+
display: inline-flex;
|
|
1393
|
+
flex: none;
|
|
1394
|
+
}
|
|
1395
|
+
|
|
1396
|
+
.sw-segmented.sw-segmented-with-icons[aria-invalid='true'] {
|
|
1397
|
+
border-color: var(--sw-color-danger);
|
|
1398
|
+
}
|
|
1399
|
+
|
|
1400
|
+
@media (forced-colors: active) {
|
|
1401
|
+
.sw-segmented.sw-segmented-with-icons:not(.sw-segmented-filled) { border-color: CanvasText; }
|
|
1402
|
+
.sw-segmented-with-icons:not(.sw-segmented-filled) .sw-segmented-item-selected { outline: 2px solid Highlight; }
|
|
1403
|
+
.sw-segmented.sw-segmented-with-icons[aria-invalid='true'] { border-color: Mark; }
|
|
1404
|
+
}
|
|
1405
|
+
|
|
1349
1406
|
.sw-segmented-disabled {
|
|
1350
1407
|
opacity: var(--sw-disabled-opacity);
|
|
1351
1408
|
}
|
|
@@ -2182,6 +2239,10 @@ body {
|
|
|
2182
2239
|
max-width: min(var(--sw-dialog-max-lg), calc(100vw - var(--sw-space-8)));
|
|
2183
2240
|
}
|
|
2184
2241
|
|
|
2242
|
+
.sw-dialog-xl {
|
|
2243
|
+
max-width: min(var(--sw-dialog-max-xl), calc(100vw - var(--sw-space-8)));
|
|
2244
|
+
}
|
|
2245
|
+
|
|
2185
2246
|
@media not all and (min-width: 48rem) {
|
|
2186
2247
|
.sw-dialog-sheet-below-md {
|
|
2187
2248
|
border-radius: var(--sw-radius-lg) var(--sw-radius-lg) 0 0;
|
|
@@ -2198,6 +2259,12 @@ body {
|
|
|
2198
2259
|
.sw-dialog-sheet-below-md[open] {
|
|
2199
2260
|
animation: sw-dialog-sheet-in var(--sw-motion-default) var(--sw-motion-easing);
|
|
2200
2261
|
}
|
|
2262
|
+
|
|
2263
|
+
.sw-dialog-sheet-below-md .sw-dialog-footer {
|
|
2264
|
+
bottom: calc(-1 * (var(--sw-space-5) + env(safe-area-inset-bottom, 0px)));
|
|
2265
|
+
margin-bottom: calc(-1 * (var(--sw-space-5) + env(safe-area-inset-bottom, 0px)));
|
|
2266
|
+
padding-bottom: calc(var(--sw-space-3) + env(safe-area-inset-bottom, 0px));
|
|
2267
|
+
}
|
|
2201
2268
|
}
|
|
2202
2269
|
|
|
2203
2270
|
@keyframes sw-dialog-sheet-in {
|
|
@@ -2223,7 +2290,8 @@ body {
|
|
|
2223
2290
|
gap: var(--sw-space-2);
|
|
2224
2291
|
}
|
|
2225
2292
|
|
|
2226
|
-
.sw-dialog-header > :
|
|
2293
|
+
.sw-dialog-header > :is(h2, h3),
|
|
2294
|
+
.sw-dialog-titles {
|
|
2227
2295
|
flex: 1 1 auto;
|
|
2228
2296
|
min-width: 0;
|
|
2229
2297
|
}
|
|
@@ -2270,6 +2338,64 @@ body {
|
|
|
2270
2338
|
.sw-dialog-close-glyph::before { transform: rotate(45deg); }
|
|
2271
2339
|
.sw-dialog-close-glyph::after { transform: rotate(-45deg); }
|
|
2272
2340
|
|
|
2341
|
+
.sw-dialog-header-framed {
|
|
2342
|
+
align-items: center;
|
|
2343
|
+
gap: var(--sw-space-3);
|
|
2344
|
+
}
|
|
2345
|
+
|
|
2346
|
+
.sw-dialog-icon {
|
|
2347
|
+
display: inline-flex;
|
|
2348
|
+
flex: none;
|
|
2349
|
+
}
|
|
2350
|
+
|
|
2351
|
+
.sw-dialog-description { margin: 0; }
|
|
2352
|
+
|
|
2353
|
+
.sw-dialog-footer {
|
|
2354
|
+
align-items: center;
|
|
2355
|
+
background: var(--sw-color-surface);
|
|
2356
|
+
border-top: 1px solid var(--sw-color-border);
|
|
2357
|
+
/* Sticky insets count from the scrollport's padding edge: step past the
|
|
2358
|
+
dialog's own padding to sit on its bottom edge. */
|
|
2359
|
+
bottom: calc(-1 * var(--sw-space-5));
|
|
2360
|
+
box-sizing: border-box;
|
|
2361
|
+
display: flex;
|
|
2362
|
+
flex-wrap: wrap;
|
|
2363
|
+
gap: var(--sw-space-2) var(--sw-space-4);
|
|
2364
|
+
margin: 0 calc(-1 * var(--sw-space-5)) calc(-1 * var(--sw-space-5));
|
|
2365
|
+
padding: var(--sw-space-3) var(--sw-space-5);
|
|
2366
|
+
position: sticky;
|
|
2367
|
+
}
|
|
2368
|
+
|
|
2369
|
+
.sw-dialog-footer-status {
|
|
2370
|
+
align-items: center;
|
|
2371
|
+
display: flex;
|
|
2372
|
+
flex: 1 1 auto;
|
|
2373
|
+
min-width: 0;
|
|
2374
|
+
}
|
|
2375
|
+
|
|
2376
|
+
/* With no summary the live region stays in the dialog, so a first figure
|
|
2377
|
+
is still announced, but it takes no room in the footer. */
|
|
2378
|
+
.sw-dialog-footer-status:empty {
|
|
2379
|
+
clip-path: inset(50%);
|
|
2380
|
+
height: 1px;
|
|
2381
|
+
overflow: hidden;
|
|
2382
|
+
position: absolute;
|
|
2383
|
+
width: 1px;
|
|
2384
|
+
}
|
|
2385
|
+
|
|
2386
|
+
.sw-dialog-footer-actions {
|
|
2387
|
+
display: flex;
|
|
2388
|
+
flex: 0 1 auto;
|
|
2389
|
+
flex-wrap: wrap;
|
|
2390
|
+
gap: var(--sw-space-2);
|
|
2391
|
+
justify-content: flex-end;
|
|
2392
|
+
margin-inline-start: auto;
|
|
2393
|
+
}
|
|
2394
|
+
|
|
2395
|
+
@media (forced-colors: active) {
|
|
2396
|
+
.sw-dialog-footer { border-top-color: CanvasText; }
|
|
2397
|
+
}
|
|
2398
|
+
|
|
2273
2399
|
.sw-accordion {
|
|
2274
2400
|
background: var(--sw-glass-fill);
|
|
2275
2401
|
border: 1px solid var(--sw-glass-border);
|
|
@@ -2646,6 +2772,138 @@ body {
|
|
|
2646
2772
|
}
|
|
2647
2773
|
}
|
|
2648
2774
|
|
|
2775
|
+
.sw-multi-select {
|
|
2776
|
+
display: inline-flex;
|
|
2777
|
+
max-width: 100%;
|
|
2778
|
+
}
|
|
2779
|
+
|
|
2780
|
+
.sw-multi-select-trigger {
|
|
2781
|
+
align-items: center;
|
|
2782
|
+
appearance: none;
|
|
2783
|
+
background-color: var(--sw-glass-fill);
|
|
2784
|
+
border: 1px solid var(--sw-color-border);
|
|
2785
|
+
border-radius: var(--sw-radius-sm);
|
|
2786
|
+
box-sizing: border-box;
|
|
2787
|
+
color: var(--sw-color-text);
|
|
2788
|
+
column-gap: var(--sw-space-2);
|
|
2789
|
+
cursor: pointer;
|
|
2790
|
+
display: inline-flex;
|
|
2791
|
+
font-family: var(--sw-font-sans);
|
|
2792
|
+
font-size: 15px;
|
|
2793
|
+
font-weight: 600;
|
|
2794
|
+
letter-spacing: -0.2px;
|
|
2795
|
+
line-height: 20px;
|
|
2796
|
+
margin: 0;
|
|
2797
|
+
max-width: 100%;
|
|
2798
|
+
min-height: var(--sw-control-md-min-height);
|
|
2799
|
+
padding-inline: var(--sw-control-md-padding-inline);
|
|
2800
|
+
}
|
|
2801
|
+
|
|
2802
|
+
.sw-multi-select-trigger::after {
|
|
2803
|
+
border-bottom: 2px solid var(--sw-color-muted);
|
|
2804
|
+
border-right: 2px solid var(--sw-color-muted);
|
|
2805
|
+
box-sizing: border-box;
|
|
2806
|
+
height: var(--sw-space-2);
|
|
2807
|
+
width: var(--sw-space-2);
|
|
2808
|
+
content: '';
|
|
2809
|
+
flex: none;
|
|
2810
|
+
margin-inline-start: var(--sw-space-2);
|
|
2811
|
+
transform: translateY(-25%) rotate(45deg);
|
|
2812
|
+
}
|
|
2813
|
+
|
|
2814
|
+
.sw-multi-select-trigger:focus-visible {
|
|
2815
|
+
outline: var(--sw-focus-ring-width) solid var(--sw-color-accent);
|
|
2816
|
+
outline-offset: var(--sw-focus-ring-offset);
|
|
2817
|
+
}
|
|
2818
|
+
|
|
2819
|
+
.sw-multi-select-trigger:disabled {
|
|
2820
|
+
cursor: not-allowed;
|
|
2821
|
+
opacity: var(--sw-disabled-opacity);
|
|
2822
|
+
}
|
|
2823
|
+
|
|
2824
|
+
.sw-multi-select-label {
|
|
2825
|
+
color: var(--sw-color-muted);
|
|
2826
|
+
font-weight: 500;
|
|
2827
|
+
}
|
|
2828
|
+
|
|
2829
|
+
.sw-multi-select-summary {
|
|
2830
|
+
min-width: 0;
|
|
2831
|
+
overflow: hidden;
|
|
2832
|
+
text-overflow: ellipsis;
|
|
2833
|
+
white-space: nowrap;
|
|
2834
|
+
}
|
|
2835
|
+
|
|
2836
|
+
.sw-multi-select-panel {
|
|
2837
|
+
background: var(--sw-glass-fill);
|
|
2838
|
+
border: 1px solid var(--sw-glass-border);
|
|
2839
|
+
border-radius: var(--sw-radius-sm);
|
|
2840
|
+
box-shadow: var(--sw-elevation-sm), inset 0 1px 0 var(--sw-glass-specular);
|
|
2841
|
+
backdrop-filter: blur(var(--sw-glass-blur)) saturate(var(--sw-glass-saturate));
|
|
2842
|
+
-webkit-backdrop-filter: blur(var(--sw-glass-blur)) saturate(var(--sw-glass-saturate));
|
|
2843
|
+
box-sizing: border-box;
|
|
2844
|
+
color: var(--sw-color-text);
|
|
2845
|
+
display: flex;
|
|
2846
|
+
flex-direction: column;
|
|
2847
|
+
inset: auto;
|
|
2848
|
+
margin: 0;
|
|
2849
|
+
/* The viewport, not --sw-select-max: the list is short and should show
|
|
2850
|
+
whole rather than scroll inside a 22rem cap. */
|
|
2851
|
+
max-height: calc(100% - var(--sw-space-2) - var(--sw-space-2));
|
|
2852
|
+
max-width: calc(100% - var(--sw-space-2) - var(--sw-space-2));
|
|
2853
|
+
min-width: var(--sw-select-max);
|
|
2854
|
+
overflow: auto;
|
|
2855
|
+
padding: var(--sw-space-1);
|
|
2856
|
+
position: fixed;
|
|
2857
|
+
width: max-content;
|
|
2858
|
+
z-index: 10;
|
|
2859
|
+
}
|
|
2860
|
+
|
|
2861
|
+
.sw-multi-select-commands {
|
|
2862
|
+
border-bottom: 1px solid var(--sw-color-border);
|
|
2863
|
+
display: flex;
|
|
2864
|
+
justify-content: space-between;
|
|
2865
|
+
margin-bottom: var(--sw-space-1);
|
|
2866
|
+
padding-bottom: var(--sw-space-1);
|
|
2867
|
+
}
|
|
2868
|
+
|
|
2869
|
+
.sw-multi-select-row-separated {
|
|
2870
|
+
border-top: 1px solid var(--sw-color-border);
|
|
2871
|
+
margin-top: var(--sw-space-1);
|
|
2872
|
+
padding-top: var(--sw-space-1);
|
|
2873
|
+
}
|
|
2874
|
+
|
|
2875
|
+
.sw-checkbox-label.sw-multi-select-option {
|
|
2876
|
+
border-radius: var(--sw-radius-sm);
|
|
2877
|
+
box-sizing: border-box;
|
|
2878
|
+
font-family: var(--sw-font-sans);
|
|
2879
|
+
font-size: 15px;
|
|
2880
|
+
font-weight: 400;
|
|
2881
|
+
letter-spacing: -0.2px;
|
|
2882
|
+
line-height: 20px;
|
|
2883
|
+
padding-inline: var(--sw-space-2);
|
|
2884
|
+
width: 100%;
|
|
2885
|
+
}
|
|
2886
|
+
|
|
2887
|
+
.sw-multi-select-option:hover {
|
|
2888
|
+
background: color-mix(in srgb, var(--sw-color-muted) 16%, transparent);
|
|
2889
|
+
}
|
|
2890
|
+
|
|
2891
|
+
.sw-multi-select-icon {
|
|
2892
|
+
display: inline-flex;
|
|
2893
|
+
flex: none;
|
|
2894
|
+
}
|
|
2895
|
+
|
|
2896
|
+
.sw-multi-select-text {
|
|
2897
|
+
min-width: 0;
|
|
2898
|
+
}
|
|
2899
|
+
|
|
2900
|
+
@media (forced-colors: active) {
|
|
2901
|
+
.sw-multi-select-trigger::after { border-color: CanvasText; }
|
|
2902
|
+
.sw-multi-select-panel { border-color: CanvasText; }
|
|
2903
|
+
.sw-multi-select-commands,
|
|
2904
|
+
.sw-multi-select-row-separated { border-color: CanvasText; }
|
|
2905
|
+
}
|
|
2906
|
+
|
|
2649
2907
|
.sw-action-bar {
|
|
2650
2908
|
align-items: center;
|
|
2651
2909
|
background: var(--sw-glass-fill);
|
|
@@ -2893,6 +3151,7 @@ body {
|
|
|
2893
3151
|
|
|
2894
3152
|
.sw-progress-accent { --sw-progress-color: var(--sw-color-accent); }
|
|
2895
3153
|
.sw-progress-success { --sw-progress-color: var(--sw-color-success); }
|
|
3154
|
+
.sw-progress-warning { --sw-progress-color: var(--sw-color-warning); }
|
|
2896
3155
|
.sw-progress-danger { --sw-progress-color: var(--sw-color-danger); }
|
|
2897
3156
|
|
|
2898
3157
|
.sw-progress-heading {
|
|
@@ -2943,6 +3202,150 @@ body {
|
|
|
2943
3202
|
.sw-progress-bar::-moz-progress-bar { background: Highlight; }
|
|
2944
3203
|
}
|
|
2945
3204
|
|
|
3205
|
+
.sw-notice-info { --sw-notice-fill: var(--sw-color-accentSubtle); --sw-notice-ink: color-mix(in srgb, var(--sw-color-accent) 70%, var(--sw-color-text)); }
|
|
3206
|
+
.sw-notice-success { --sw-notice-fill: color-mix(in srgb, var(--sw-color-success) 10%, var(--sw-color-surface)); --sw-notice-ink: color-mix(in srgb, var(--sw-color-success) 70%, var(--sw-color-text)); }
|
|
3207
|
+
.sw-notice-warning { --sw-notice-fill: color-mix(in srgb, var(--sw-color-warning) 10%, var(--sw-color-surface)); --sw-notice-ink: color-mix(in srgb, var(--sw-color-warning) 70%, var(--sw-color-text)); }
|
|
3208
|
+
.sw-notice-danger { --sw-notice-fill: color-mix(in srgb, var(--sw-color-danger) 10%, var(--sw-color-surface)); --sw-notice-ink: color-mix(in srgb, var(--sw-color-danger) 70%, var(--sw-color-text)); }
|
|
3209
|
+
|
|
3210
|
+
.sw-notice {
|
|
3211
|
+
align-items: flex-start;
|
|
3212
|
+
background: var(--sw-notice-fill);
|
|
3213
|
+
border-radius: var(--sw-radius-sm);
|
|
3214
|
+
box-sizing: border-box;
|
|
3215
|
+
color: var(--sw-notice-ink);
|
|
3216
|
+
column-gap: var(--sw-space-2);
|
|
3217
|
+
display: flex;
|
|
3218
|
+
flex-wrap: wrap;
|
|
3219
|
+
font-family: var(--sw-font-sans);
|
|
3220
|
+
font-size: 15px;
|
|
3221
|
+
letter-spacing: -0.2px;
|
|
3222
|
+
line-height: 20px;
|
|
3223
|
+
min-width: 0;
|
|
3224
|
+
padding: var(--sw-space-2) var(--sw-space-3);
|
|
3225
|
+
row-gap: var(--sw-space-2);
|
|
3226
|
+
/* Muted words of a control inside (a field's or a checkbox's
|
|
3227
|
+
description) take the ink, which keeps 4.5:1 on the fill. */
|
|
3228
|
+
--sw-color-muted: var(--sw-notice-ink);
|
|
3229
|
+
}
|
|
3230
|
+
|
|
3231
|
+
.sw-notice-icon {
|
|
3232
|
+
display: inline-flex;
|
|
3233
|
+
flex: none;
|
|
3234
|
+
min-height: 20px;
|
|
3235
|
+
align-items: center;
|
|
3236
|
+
}
|
|
3237
|
+
|
|
3238
|
+
.sw-notice-content {
|
|
3239
|
+
align-items: baseline;
|
|
3240
|
+
column-gap: var(--sw-space-2);
|
|
3241
|
+
display: flex;
|
|
3242
|
+
flex: 1 1 16rem;
|
|
3243
|
+
flex-wrap: wrap;
|
|
3244
|
+
min-width: 0;
|
|
3245
|
+
row-gap: var(--sw-space-1);
|
|
3246
|
+
}
|
|
3247
|
+
|
|
3248
|
+
.sw-notice-stacked {
|
|
3249
|
+
align-items: stretch;
|
|
3250
|
+
flex-direction: column;
|
|
3251
|
+
row-gap: var(--sw-space-2);
|
|
3252
|
+
}
|
|
3253
|
+
|
|
3254
|
+
.sw-notice-title {
|
|
3255
|
+
font-weight: 600;
|
|
3256
|
+
min-width: 0;
|
|
3257
|
+
}
|
|
3258
|
+
|
|
3259
|
+
.sw-notice-body {
|
|
3260
|
+
flex: 1 1 auto;
|
|
3261
|
+
font-weight: 400;
|
|
3262
|
+
min-width: 0;
|
|
3263
|
+
}
|
|
3264
|
+
|
|
3265
|
+
.sw-notice-action {
|
|
3266
|
+
align-items: center;
|
|
3267
|
+
align-self: flex-start;
|
|
3268
|
+
display: inline-flex;
|
|
3269
|
+
flex: none;
|
|
3270
|
+
min-height: 20px;
|
|
3271
|
+
}
|
|
3272
|
+
|
|
3273
|
+
/* A small Button keeps the note one text line tall: it overhangs the
|
|
3274
|
+
padding evenly instead of growing the row. */
|
|
3275
|
+
.sw-notice-action > .sw-button {
|
|
3276
|
+
margin-block: calc((20px - var(--sw-control-sm-min-height)) / 2);
|
|
3277
|
+
}
|
|
3278
|
+
|
|
3279
|
+
/* A band across the page's full width, such as an environment strip
|
|
3280
|
+
above the app header: square, the xs control height, caption type,
|
|
3281
|
+
its words centered on one line that wraps on a phone. A glyph or an
|
|
3282
|
+
action stays on the words' row (no wrap): the words wrap instead. */
|
|
3283
|
+
.sw-notice-band {
|
|
3284
|
+
align-items: center;
|
|
3285
|
+
border-radius: 0;
|
|
3286
|
+
flex-wrap: nowrap;
|
|
3287
|
+
font-size: 13px;
|
|
3288
|
+
justify-content: center;
|
|
3289
|
+
letter-spacing: -0.08px;
|
|
3290
|
+
line-height: 18px;
|
|
3291
|
+
min-height: var(--sw-control-xs-min-height);
|
|
3292
|
+
padding: var(--sw-space-1) var(--sw-space-4);
|
|
3293
|
+
text-align: center;
|
|
3294
|
+
width: 100%;
|
|
3295
|
+
}
|
|
3296
|
+
|
|
3297
|
+
.sw-notice-band .sw-notice-content {
|
|
3298
|
+
flex: 0 1 auto;
|
|
3299
|
+
justify-content: center;
|
|
3300
|
+
}
|
|
3301
|
+
|
|
3302
|
+
.sw-notice-band .sw-notice-icon,
|
|
3303
|
+
.sw-notice-band .sw-notice-action { min-height: 18px; }
|
|
3304
|
+
|
|
3305
|
+
.sw-notice-band .sw-notice-action { align-self: center; }
|
|
3306
|
+
|
|
3307
|
+
.sw-notice-band .sw-notice-action > .sw-button {
|
|
3308
|
+
margin-block: calc((18px - var(--sw-control-sm-min-height)) / 2);
|
|
3309
|
+
}
|
|
3310
|
+
|
|
3311
|
+
@media (forced-colors: active) {
|
|
3312
|
+
.sw-notice { border: 1px solid CanvasText; }
|
|
3313
|
+
.sw-notice-band { border-width: 0 0 1px; }
|
|
3314
|
+
}
|
|
3315
|
+
|
|
3316
|
+
.sw-glyph-tile {
|
|
3317
|
+
align-items: center;
|
|
3318
|
+
background: var(--sw-glyph-tile-fill);
|
|
3319
|
+
border-radius: var(--sw-radius-sm);
|
|
3320
|
+
box-sizing: border-box;
|
|
3321
|
+
color: var(--sw-categorical-on);
|
|
3322
|
+
display: inline-flex;
|
|
3323
|
+
flex: none;
|
|
3324
|
+
justify-content: center;
|
|
3325
|
+
}
|
|
3326
|
+
|
|
3327
|
+
.sw-glyph-tile > svg {
|
|
3328
|
+
flex: none;
|
|
3329
|
+
height: var(--sw-space-4);
|
|
3330
|
+
width: var(--sw-space-4);
|
|
3331
|
+
}
|
|
3332
|
+
|
|
3333
|
+
.sw-glyph-tile-green { --sw-glyph-tile-fill: var(--sw-categorical-green); }
|
|
3334
|
+
.sw-glyph-tile-blue { --sw-glyph-tile-fill: var(--sw-categorical-blue); }
|
|
3335
|
+
.sw-glyph-tile-orange { --sw-glyph-tile-fill: var(--sw-categorical-orange); }
|
|
3336
|
+
.sw-glyph-tile-purple { --sw-glyph-tile-fill: var(--sw-categorical-purple); }
|
|
3337
|
+
.sw-glyph-tile-teal { --sw-glyph-tile-fill: var(--sw-categorical-teal); }
|
|
3338
|
+
.sw-glyph-tile-rose { --sw-glyph-tile-fill: var(--sw-categorical-rose); }
|
|
3339
|
+
.sw-glyph-tile-neutral { --sw-glyph-tile-fill: var(--sw-categorical-neutral); }
|
|
3340
|
+
|
|
3341
|
+
.sw-glyph-tile-sm { height: var(--sw-space-5); width: var(--sw-space-5); }
|
|
3342
|
+
.sw-glyph-tile-md { height: var(--sw-control-xs-min-height); width: var(--sw-control-xs-min-height); }
|
|
3343
|
+
.sw-glyph-tile-lg { height: var(--sw-space-6); width: var(--sw-space-6); }
|
|
3344
|
+
|
|
3345
|
+
@media (forced-colors: active) {
|
|
3346
|
+
.sw-glyph-tile { border: 1px solid CanvasText; color: CanvasText; }
|
|
3347
|
+
}
|
|
3348
|
+
|
|
2946
3349
|
.sw-tooltip-anchor {
|
|
2947
3350
|
display: inline-flex;
|
|
2948
3351
|
position: relative;
|
|
@@ -3727,6 +4130,28 @@ body {
|
|
|
3727
4130
|
.sw-denomination-strip-aligned .sw-denomination-total-head { width: 0; }
|
|
3728
4131
|
}
|
|
3729
4132
|
|
|
4133
|
+
.sw-denomination-labels-plain .sw-denomination-label {
|
|
4134
|
+
border-inline-start: 0;
|
|
4135
|
+
color: var(--sw-color-text);
|
|
4136
|
+
}
|
|
4137
|
+
|
|
4138
|
+
/* The total under a phone's label keeps its row's tone. */
|
|
4139
|
+
.sw-denomination-labels-plain .sw-denomination-total-inline { color: var(--sw-denomination-tone); }
|
|
4140
|
+
|
|
4141
|
+
.sw-denomination-strip.sw-denomination-labels-plain .sw-denomination-label {
|
|
4142
|
+
padding-inline-start: var(--sw-space-2);
|
|
4143
|
+
}
|
|
4144
|
+
|
|
4145
|
+
.sw-denomination-strip.sw-denomination-labels-plain .sw-denomination-label::before { content: none; }
|
|
4146
|
+
|
|
4147
|
+
@media not all and (min-width: 48rem) {
|
|
4148
|
+
.sw-denomination-strip.sw-denomination-labels-plain .sw-denomination-label { padding-inline-start: var(--sw-space-1); }
|
|
4149
|
+
}
|
|
4150
|
+
|
|
4151
|
+
@media (forced-colors: active) {
|
|
4152
|
+
.sw-denomination-labels-plain .sw-denomination-label { color: CanvasText; }
|
|
4153
|
+
}
|
|
4154
|
+
|
|
3730
4155
|
@media (forced-colors: active) {
|
|
3731
4156
|
.sw-denomination-label { border-inline-start-color: CanvasText; color: CanvasText; }
|
|
3732
4157
|
.sw-denomination-strip .sw-denomination-label::before { background: CanvasText; forced-color-adjust: none; }
|
|
@@ -4292,6 +4717,99 @@ body {
|
|
|
4292
4717
|
}
|
|
4293
4718
|
}
|
|
4294
4719
|
|
|
4720
|
+
.sw-toast-title {
|
|
4721
|
+
display: block;
|
|
4722
|
+
font-size: 15px;
|
|
4723
|
+
font-weight: 600;
|
|
4724
|
+
letter-spacing: -0.2px;
|
|
4725
|
+
line-height: 20px;
|
|
4726
|
+
}
|
|
4727
|
+
|
|
4728
|
+
.sw-toast-detail {
|
|
4729
|
+
color: var(--sw-color-muted);
|
|
4730
|
+
font-size: 15px;
|
|
4731
|
+
font-weight: 400;
|
|
4732
|
+
letter-spacing: -0.2px;
|
|
4733
|
+
line-height: 20px;
|
|
4734
|
+
}
|
|
4735
|
+
|
|
4736
|
+
.sw-toast-row:has(.sw-toast-title) { align-items: flex-start; }
|
|
4737
|
+
|
|
4738
|
+
.sw-toast-row .sw-toast-body { flex: 1 1 auto; }
|
|
4739
|
+
|
|
4740
|
+
.sw-button.sw-toast-action {
|
|
4741
|
+
flex: none;
|
|
4742
|
+
margin-block: calc((20px - var(--sw-control-sm-min-height)) / 2);
|
|
4743
|
+
}
|
|
4744
|
+
|
|
4745
|
+
.sw-toast-interactive { pointer-events: auto; }
|
|
4746
|
+
|
|
4747
|
+
.sw-toast-top-end {
|
|
4748
|
+
bottom: auto;
|
|
4749
|
+
left: auto;
|
|
4750
|
+
max-width: min(var(--sw-dialog-max), calc(100% - var(--sw-space-4) - var(--sw-space-4)));
|
|
4751
|
+
right: max(var(--sw-space-4), env(safe-area-inset-right, 0px));
|
|
4752
|
+
top: max(var(--sw-space-4), env(safe-area-inset-top, 0px));
|
|
4753
|
+
translate: none;
|
|
4754
|
+
}
|
|
4755
|
+
|
|
4756
|
+
.sw-toast-top-end:dir(rtl) {
|
|
4757
|
+
left: max(var(--sw-space-4), env(safe-area-inset-left, 0px));
|
|
4758
|
+
right: auto;
|
|
4759
|
+
}
|
|
4760
|
+
|
|
4761
|
+
.sw-toast-top-end:popover-open {
|
|
4762
|
+
animation: sw-toast-drop var(--sw-motion-default) var(--sw-motion-easing);
|
|
4763
|
+
}
|
|
4764
|
+
|
|
4765
|
+
@keyframes sw-toast-drop {
|
|
4766
|
+
from {
|
|
4767
|
+
opacity: 0;
|
|
4768
|
+
translate: 0 calc(-1 * var(--sw-space-3));
|
|
4769
|
+
}
|
|
4770
|
+
to {
|
|
4771
|
+
opacity: 1;
|
|
4772
|
+
translate: none;
|
|
4773
|
+
}
|
|
4774
|
+
}
|
|
4775
|
+
|
|
4776
|
+
.sw-toast-remaining {
|
|
4777
|
+
background: var(--sw-color-border);
|
|
4778
|
+
border-radius: var(--sw-radius-pill);
|
|
4779
|
+
display: block;
|
|
4780
|
+
height: var(--sw-space-1);
|
|
4781
|
+
margin-top: var(--sw-space-2);
|
|
4782
|
+
overflow: hidden;
|
|
4783
|
+
position: relative;
|
|
4784
|
+
}
|
|
4785
|
+
|
|
4786
|
+
.sw-toast-remaining::after {
|
|
4787
|
+
animation: sw-toast-remaining var(--sw-toast-duration, 0ms) linear forwards;
|
|
4788
|
+
background: var(--sw-toast-tone, var(--sw-color-accent));
|
|
4789
|
+
content: '';
|
|
4790
|
+
inset: 0;
|
|
4791
|
+
position: absolute;
|
|
4792
|
+
transform-origin: left center;
|
|
4793
|
+
}
|
|
4794
|
+
|
|
4795
|
+
.sw-toast-remaining:dir(rtl)::after { transform-origin: right center; }
|
|
4796
|
+
|
|
4797
|
+
.sw-toast-paused .sw-toast-remaining::after { animation-play-state: paused; }
|
|
4798
|
+
|
|
4799
|
+
@keyframes sw-toast-remaining {
|
|
4800
|
+
from { transform: scaleX(1); }
|
|
4801
|
+
to { transform: scaleX(0); }
|
|
4802
|
+
}
|
|
4803
|
+
|
|
4804
|
+
@media (prefers-reduced-motion: reduce) {
|
|
4805
|
+
.sw-toast-top-end:popover-open { animation: none; }
|
|
4806
|
+
}
|
|
4807
|
+
|
|
4808
|
+
@media (forced-colors: active) {
|
|
4809
|
+
.sw-toast-remaining { background: Canvas; border: 1px solid CanvasText; }
|
|
4810
|
+
.sw-toast-remaining::after { background: CanvasText; }
|
|
4811
|
+
}
|
|
4812
|
+
|
|
4295
4813
|
@media (min-width: 48rem) {
|
|
4296
4814
|
.sw-hide-from-md { display: none; }
|
|
4297
4815
|
}
|
|
@@ -4326,6 +4844,7 @@ body {
|
|
|
4326
4844
|
.sw-accordion,
|
|
4327
4845
|
.sw-select-list,
|
|
4328
4846
|
.sw-action-menu-list,
|
|
4847
|
+
.sw-multi-select-panel,
|
|
4329
4848
|
.sw-date-field-calendar,
|
|
4330
4849
|
.sw-toast {
|
|
4331
4850
|
background: var(--sw-color-surface);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scalewing/react",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.29.0",
|
|
4
4
|
"description": "Scalewing DOM components and package-owned CSS utilities.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"README.md"
|
|
39
39
|
],
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@scalewing/tokens": "^1.
|
|
41
|
+
"@scalewing/tokens": "^1.5.0"
|
|
42
42
|
},
|
|
43
43
|
"peerDependencies": {
|
|
44
44
|
"react": "^19.0.0",
|