@scalewing/react 1.31.0 → 1.32.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.
Files changed (86) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +19 -5
  3. package/dist/components/ActionMenu.d.ts +10 -1
  4. package/dist/components/ActionMenu.js +7 -2
  5. package/dist/components/AppHeader.d.ts +9 -1
  6. package/dist/components/AppHeader.js +6 -2
  7. package/dist/components/Box.d.ts +10 -2
  8. package/dist/components/Button.d.ts +27 -2
  9. package/dist/components/Button.js +5 -3
  10. package/dist/components/ButtonGroup.d.ts +9 -1
  11. package/dist/components/ButtonGroup.js +8 -2
  12. package/dist/components/Combobox.js +2 -2
  13. package/dist/components/DateField.d.ts +9 -1
  14. package/dist/components/DateField.js +4 -3
  15. package/dist/components/DenominationGrid.d.ts +5 -3
  16. package/dist/components/DenominationGrid.js +21 -11
  17. package/dist/components/Dialog.d.ts +9 -1
  18. package/dist/components/Dialog.js +8 -4
  19. package/dist/components/Field.d.ts +8 -0
  20. package/dist/components/Field.js +4 -3
  21. package/dist/components/FieldLabelText.d.ts +21 -3
  22. package/dist/components/FieldLabelText.js +16 -4
  23. package/dist/components/FilterChips.d.ts +9 -1
  24. package/dist/components/FilterChips.js +4 -2
  25. package/dist/components/Nav.d.ts +14 -2
  26. package/dist/components/Nav.js +6 -2
  27. package/dist/components/SegmentedControl.d.ts +5 -2
  28. package/dist/components/SegmentedControl.js +2 -1
  29. package/dist/components/Select.d.ts +9 -1
  30. package/dist/components/Select.js +4 -3
  31. package/dist/components/Stepper.d.ts +13 -0
  32. package/dist/components/Stepper.js +8 -2
  33. package/dist/components/combobox/types.d.ts +8 -0
  34. package/dist/components/denomination-grid/DenominationStrip.d.ts +4 -2
  35. package/dist/components/denomination-grid/DenominationStrip.js +3 -2
  36. package/dist/components/denomination-grid/DenominationTiles.d.ts +1 -1
  37. package/dist/components/denomination-grid/EntryCell.js +1 -1
  38. package/dist/components/denomination-grid/StripRow.js +5 -2
  39. package/dist/components/denomination-grid/types.d.ts +35 -1
  40. package/dist/components/dialog/DialogTitle.d.ts +5 -3
  41. package/dist/components/dialog/DialogTitle.js +4 -4
  42. package/dist/css/css-action-menu-trigger.d.ts +11 -0
  43. package/dist/css/css-action-menu-trigger.js +66 -0
  44. package/dist/css/css-action-menu.js +7 -2
  45. package/dist/css/css-app-header-bar.d.ts +10 -0
  46. package/dist/css/css-app-header-bar.js +26 -0
  47. package/dist/css/css-box-border.d.ts +6 -1
  48. package/dist/css/css-box-border.js +8 -4
  49. package/dist/css/css-button-group-attached.js +5 -2
  50. package/dist/css/css-button-group-track.d.ts +11 -0
  51. package/dist/css/css-button-group-track.js +48 -0
  52. package/dist/css/css-button.d.ts +19 -2
  53. package/dist/css/css-button.js +31 -1
  54. package/dist/css/css-chrome.js +14 -1
  55. package/dist/css/css-combobox.js +2 -1
  56. package/dist/css/css-components.js +3 -0
  57. package/dist/css/css-data.js +3 -2
  58. package/dist/css/css-date-field.js +2 -1
  59. package/dist/css/css-denomination-appearance.d.ts +21 -0
  60. package/dist/css/css-denomination-appearance.js +114 -0
  61. package/dist/css/css-denomination-cell-tones.d.ts +8 -0
  62. package/dist/css/css-denomination-cell-tones.js +20 -1
  63. package/dist/css/css-denomination-grid.js +4 -0
  64. package/dist/css/css-dialog-banded.d.ts +11 -0
  65. package/dist/css/css-dialog-banded.js +84 -0
  66. package/dist/css/css-multi-select.js +2 -1
  67. package/dist/css/css-nav-words.d.ts +13 -0
  68. package/dist/css/css-nav-words.js +51 -0
  69. package/dist/css/css-notice.d.ts +4 -11
  70. package/dist/css/css-notice.js +6 -22
  71. package/dist/css/css-segmented-raised.d.ts +3 -0
  72. package/dist/css/css-segmented-raised.js +72 -0
  73. package/dist/css/css-segmented.js +9 -3
  74. package/dist/css/css-select.js +2 -1
  75. package/dist/css/css-split.js +2 -1
  76. package/dist/css/css-stepper.js +7 -0
  77. package/dist/css/quiet-fill.d.ts +7 -0
  78. package/dist/css/quiet-fill.js +7 -0
  79. package/dist/css/stacking.js +2 -1
  80. package/dist/css/stylesheet.js +2 -0
  81. package/dist/css/tone-tint.d.ts +21 -0
  82. package/dist/css/tone-tint.js +23 -0
  83. package/dist/index.d.ts +11 -9
  84. package/dist/index.js +9 -7
  85. package/dist/styles.css +300 -10
  86. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { ActionMenu, } from './components/ActionMenu.js';
1
+ export { ActionMenu, actionMenuTriggerAppearances, } from './components/ActionMenu.js';
2
2
  export { ActionBar, } from './components/ActionBar.js';
3
3
  export { Accordion } from './components/Accordion.js';
4
4
  export { Switch } from './components/Switch.js';
@@ -12,23 +12,25 @@ export { Progress, progressTones, } from './components/Progress.js';
12
12
  export { Tooltip, } from './components/Tooltip.js';
13
13
  export { InfoTip } from './components/InfoTip.js';
14
14
  export { RadioGroup, } from './components/RadioGroup.js';
15
- export { AppHeader } from './components/AppHeader.js';
15
+ export { AppHeader, appHeaderAppearances, } from './components/AppHeader.js';
16
16
  export { Badge, badgeSizes, badgeTones, } from './components/Badge.js';
17
17
  export { BarChart, barChartTones, } from './components/BarChart.js';
18
18
  export { Button, } from './components/Button.js';
19
+ export { buttonDisabledAppearances, webButtonVariants, } from './css/css-button.js';
19
20
  export { Box, } from './components/Box.js';
20
- export { ButtonGroup, } from './components/ButtonGroup.js';
21
+ export { ButtonGroup, buttonGroupAppearances, } from './components/ButtonGroup.js';
21
22
  export { Card } from './components/Card.js';
22
- export { Dialog, dialogSizes, } from './components/Dialog.js';
23
+ export { Dialog, dialogAppearances, dialogSizes, } from './components/Dialog.js';
23
24
  export { StatTile, statTileTones, } from './components/StatTile.js';
24
25
  export { TabPanel, Tabs, tabId, tabPanelId, } from './components/Tabs.js';
25
26
  export { Toast, toastPlacements, toastTones, } from './components/Toast.js';
26
27
  export { Field, fieldVariants, } from './components/Field.js';
28
+ export { requiredMarks, } from './components/FieldLabelText.js';
27
29
  export { Step, Steps, } from './components/Steps.js';
28
- export { Stepper, } from './components/Stepper.js';
30
+ export { Stepper, stepperLimitAppearances, } from './components/Stepper.js';
29
31
  export { Inline } from './components/Inline.js';
30
32
  export { Split } from './components/Split.js';
31
- export { Nav } from './components/Nav.js';
33
+ export { Nav, navAppearances, } from './components/Nav.js';
32
34
  export { SectionNav, sectionNavAppearances, } from './components/SectionNav.js';
33
35
  export { SegmentedControl, } from './components/SegmentedControl.js';
34
36
  export { Combobox, comboboxSizes, } from './components/Combobox.js';
@@ -43,5 +45,5 @@ export { breakpointQuery } from './css/breakpoints.js';
43
45
  export { Separator } from './components/Separator.js';
44
46
  export { DescriptionItem, DescriptionList, } from './components/DescriptionList.js';
45
47
  export { Grid } from './components/Grid.js';
46
- export { DenominationGrid, denominationLabelAppearances, } from './components/DenominationGrid.js';
48
+ export { DenominationGrid, denominationCellToneAppearances, denominationGridFrames, denominationLabelAppearances, denominationTotalEmphases, } from './components/DenominationGrid.js';
47
49
  export { FilterChips } from './components/FilterChips.js';
package/dist/styles.css CHANGED
@@ -913,6 +913,13 @@ body {
913
913
  .sw-button-tertiary { background: var(--sw-color-tertiary); border-color: transparent; color: var(--sw-color-onTertiary); }
914
914
  .sw-button-ghost { background: transparent; border-color: transparent; color: var(--sw-color-accent); }
915
915
  .sw-button-danger { background: var(--sw-color-danger); border-color: transparent; color: var(--sw-color-onDanger); }
916
+ .sw-button-neutral { background: color-mix(in srgb, var(--sw-color-muted) 16%, transparent); border-color: transparent; color: var(--sw-color-text); }
917
+ .sw-button-disabled-neutral:disabled:not(.sw-button-ghost) {
918
+ background: color-mix(in srgb, var(--sw-color-muted) 16%, transparent);
919
+ border-color: transparent;
920
+ color: color-mix(in srgb, var(--sw-color-muted) 48%, transparent);
921
+ opacity: 1;
922
+ }
916
923
  .sw-button[aria-pressed='true'] { box-shadow: 0 0 0 2px var(--sw-color-background), 0 0 0 4px var(--sw-color-accent); }
917
924
  .sw-button[aria-pressed='true']:focus-visible { outline-offset: calc(var(--sw-focus-ring-offset) + 4px); }
918
925
  @media (forced-colors: active) {
@@ -978,6 +985,30 @@ body {
978
985
  .sw-button-group.sw-button-group-attached > * { width: auto; }
979
986
  }
980
987
 
988
+ .sw-button-group.sw-button-group-attached.sw-button-group-track {
989
+ background: color-mix(in srgb, var(--sw-color-muted) 16%, transparent);
990
+ border-radius: var(--sw-radius-sm);
991
+ }
992
+
993
+ .sw-button-group.sw-button-group-attached.sw-button-group-track > .sw-button {
994
+ background: transparent;
995
+ border-color: transparent;
996
+ color: var(--sw-color-text);
997
+ }
998
+
999
+ .sw-button-group.sw-button-group-attached.sw-button-group-track > .sw-button + .sw-button {
1000
+ border-inline-start-color: var(--sw-color-border);
1001
+ }
1002
+
1003
+ .sw-button-group.sw-button-group-attached.sw-button-group-track > .sw-button:disabled {
1004
+ opacity: var(--sw-disabled-opacity);
1005
+ }
1006
+
1007
+ @media (forced-colors: active) {
1008
+ .sw-button-group.sw-button-group-attached.sw-button-group-track { outline: 1px solid CanvasText; }
1009
+ .sw-button-group.sw-button-group-attached.sw-button-group-track > .sw-button[aria-pressed='true'] { border-color: Highlight; }
1010
+ }
1011
+
981
1012
  .sw-checkbox {
982
1013
  display: flex;
983
1014
  flex-direction: column;
@@ -1319,7 +1350,7 @@ body {
1319
1350
  color: var(--sw-color-warning);
1320
1351
  }
1321
1352
 
1322
- :is(.sw-button-primary, .sw-button-secondary, .sw-button-tertiary, .sw-button-danger) .sw-badge { background: var(--sw-color-surface); color: var(--sw-color-text); }
1353
+ :is(.sw-button-primary, .sw-button-secondary, .sw-button-tertiary, .sw-button-danger, .sw-button-neutral) .sw-badge { background: var(--sw-color-surface); color: var(--sw-color-text); }
1323
1354
 
1324
1355
  .sw-segmented-field {
1325
1356
  display: inline-flex;
@@ -1411,12 +1442,12 @@ body {
1411
1442
  color: var(--sw-color-onAccent);
1412
1443
  }
1413
1444
 
1414
- .sw-segmented.sw-segmented-with-icons:not(.sw-segmented-filled) {
1445
+ .sw-segmented.sw-segmented-with-icons:not(.sw-segmented-filled, .sw-segmented-raised) {
1415
1446
  background: var(--sw-color-subtle);
1416
1447
  border-color: transparent;
1417
1448
  }
1418
1449
 
1419
- .sw-segmented-with-icons:not(.sw-segmented-filled) .sw-segmented-item-selected {
1450
+ .sw-segmented-with-icons:not(.sw-segmented-filled, .sw-segmented-raised) .sw-segmented-item-selected {
1420
1451
  box-shadow: var(--sw-elevation-sm);
1421
1452
  }
1422
1453
 
@@ -1427,7 +1458,7 @@ body {
1427
1458
  justify-content: center;
1428
1459
  }
1429
1460
 
1430
- .sw-segmented-with-icons:not(.sw-segmented-filled) .sw-segmented-item {
1461
+ .sw-segmented-with-icons:not(.sw-segmented-filled, .sw-segmented-raised) .sw-segmented-item {
1431
1462
  font-size: 15px;
1432
1463
  letter-spacing: -0.2px;
1433
1464
  line-height: 20px;
@@ -1445,11 +1476,57 @@ body {
1445
1476
  }
1446
1477
 
1447
1478
  @media (forced-colors: active) {
1448
- .sw-segmented.sw-segmented-with-icons:not(.sw-segmented-filled) { border-color: CanvasText; }
1449
- .sw-segmented-with-icons:not(.sw-segmented-filled) .sw-segmented-item-selected { outline: 2px solid Highlight; }
1479
+ .sw-segmented.sw-segmented-with-icons:not(.sw-segmented-filled, .sw-segmented-raised) { border-color: CanvasText; }
1480
+ .sw-segmented-with-icons:not(.sw-segmented-filled, .sw-segmented-raised) .sw-segmented-item-selected { outline: 2px solid Highlight; }
1450
1481
  .sw-segmented.sw-segmented-with-icons[aria-invalid='true'] { border-color: Mark; }
1451
1482
  }
1452
1483
 
1484
+ .sw-segmented.sw-segmented-raised {
1485
+ background: color-mix(in srgb, var(--sw-color-muted) 16%, transparent);
1486
+ border-color: transparent;
1487
+ border-radius: calc(var(--sw-radius-sm) + 2px);
1488
+ }
1489
+
1490
+ /* Sized to its segments even where the field is stretched (a Stack). */
1491
+ .sw-segmented-field > .sw-segmented.sw-segmented-raised {
1492
+ align-self: flex-start;
1493
+ }
1494
+
1495
+ .sw-segmented.sw-segmented-raised .sw-segmented-item {
1496
+ border-radius: var(--sw-radius-sm);
1497
+ color: var(--sw-color-text);
1498
+ font-size: 15px;
1499
+ font-weight: 500;
1500
+ letter-spacing: -0.2px;
1501
+ line-height: 20px;
1502
+ min-height: var(--sw-control-md-min-height);
1503
+ padding-inline: var(--sw-space-4);
1504
+ }
1505
+
1506
+ .sw-segmented.sw-segmented-raised.sw-segmented-with-icons .sw-segmented-item {
1507
+ padding-inline: var(--sw-space-2) var(--sw-space-3);
1508
+ }
1509
+
1510
+ .sw-segmented.sw-segmented-raised .sw-segmented-item-selected {
1511
+ background: var(--sw-color-surface);
1512
+ box-shadow: var(--sw-elevation-sm);
1513
+ font-weight: 600;
1514
+ }
1515
+
1516
+ [data-theme='dark'] .sw-segmented.sw-segmented-raised .sw-segmented-item-selected {
1517
+ box-shadow: inset 0 0 0 1px var(--sw-color-muted);
1518
+ }
1519
+
1520
+ .sw-segmented.sw-segmented-raised[aria-invalid='true'] {
1521
+ border-color: var(--sw-color-danger);
1522
+ }
1523
+
1524
+ @media (forced-colors: active) {
1525
+ .sw-segmented.sw-segmented-raised { border-color: CanvasText; }
1526
+ .sw-segmented.sw-segmented-raised .sw-segmented-item-selected { outline: 2px solid Highlight; }
1527
+ .sw-segmented.sw-segmented-raised[aria-invalid='true'] { border-color: Mark; }
1528
+ }
1529
+
1453
1530
  .sw-segmented-disabled {
1454
1531
  opacity: var(--sw-disabled-opacity);
1455
1532
  }
@@ -2242,6 +2319,17 @@ body {
2242
2319
  -webkit-backdrop-filter: blur(var(--sw-glass-blur)) saturate(var(--sw-glass-saturate));
2243
2320
  }
2244
2321
 
2322
+ .sw-app-header-bar {
2323
+ backdrop-filter: none;
2324
+ -webkit-backdrop-filter: none;
2325
+ background: var(--sw-color-surface);
2326
+ border-color: var(--sw-color-border);
2327
+ border-radius: 0;
2328
+ border-style: solid;
2329
+ border-width: 0 0 1px;
2330
+ box-shadow: none;
2331
+ }
2332
+
2245
2333
  .sw-app-header-sticky {
2246
2334
  position: sticky;
2247
2335
  top: 0;
@@ -2278,6 +2366,32 @@ body {
2278
2366
  }
2279
2367
  }
2280
2368
 
2369
+ .sw-nav.sw-nav-words :is(a, .sw-button) {
2370
+ background: transparent;
2371
+ border: 1px solid transparent;
2372
+ color: var(--sw-color-muted);
2373
+ font-size: 15px;
2374
+ font-weight: 500;
2375
+ letter-spacing: -0.2px;
2376
+ line-height: 20px;
2377
+ text-decoration: none;
2378
+ }
2379
+
2380
+ @media (hover: hover) {
2381
+ .sw-nav.sw-nav-words :is(a, .sw-button):hover:not(:disabled, [aria-disabled='true']) {
2382
+ color: var(--sw-color-text);
2383
+ }
2384
+ }
2385
+
2386
+ .sw-nav.sw-nav-words :is(a, .sw-button)[aria-current]:not([aria-current='false']) {
2387
+ color: var(--sw-color-text);
2388
+ font-weight: 600;
2389
+ }
2390
+
2391
+ @media (forced-colors: active) {
2392
+ .sw-nav.sw-nav-words :is(a, .sw-button)[aria-current]:not([aria-current='false']) { border-color: Highlight; text-decoration: underline; }
2393
+ }
2394
+
2281
2395
  .sw-field-xs :is(select, input, textarea) {
2282
2396
  font-size: 13px;
2283
2397
  letter-spacing: -0.08px;
@@ -2603,6 +2717,52 @@ body {
2603
2717
  .sw-dialog-footer { border-top-color: CanvasText; }
2604
2718
  }
2605
2719
 
2720
+ .sw-dialog-banded {
2721
+ backdrop-filter: none;
2722
+ -webkit-backdrop-filter: none;
2723
+ background: var(--sw-color-surface);
2724
+ border-color: transparent;
2725
+ box-shadow: var(--sw-elevation-md);
2726
+ }
2727
+
2728
+ .sw-dialog-banded .sw-dialog-header {
2729
+ align-items: center;
2730
+ background: var(--sw-color-surface);
2731
+ border-bottom: 1px solid var(--sw-color-border);
2732
+ margin: calc(-1 * var(--sw-space-5)) calc(-1 * var(--sw-space-5)) 0;
2733
+ padding: var(--sw-space-4) var(--sw-space-5);
2734
+ position: sticky;
2735
+ top: calc(-1 * var(--sw-space-5));
2736
+ z-index: 5;
2737
+ }
2738
+
2739
+ @media not all and (min-width: 48rem) {
2740
+ .sw-dialog-sheet-below-md.sw-dialog-banded .sw-dialog-header {
2741
+ margin-left: calc(-1 * max(var(--sw-space-5), env(safe-area-inset-left, 0px)));
2742
+ margin-right: calc(-1 * max(var(--sw-space-5), env(safe-area-inset-right, 0px)));
2743
+ padding-left: max(var(--sw-space-5), env(safe-area-inset-left, 0px));
2744
+ padding-right: max(var(--sw-space-5), env(safe-area-inset-right, 0px));
2745
+ }
2746
+ }
2747
+
2748
+ .sw-dialog-banded .sw-button.sw-dialog-close {
2749
+ background: color-mix(in srgb, var(--sw-color-muted) 16%, transparent);
2750
+ border-radius: var(--sw-radius-pill);
2751
+ color: var(--sw-color-text);
2752
+ margin: 0;
2753
+ }
2754
+
2755
+ @media (hover: hover) {
2756
+ .sw-dialog-banded .sw-button.sw-dialog-close:hover {
2757
+ background: color-mix(in srgb, var(--sw-color-muted) 24%, transparent);
2758
+ }
2759
+ }
2760
+
2761
+ @media (forced-colors: active) {
2762
+ .sw-dialog-banded { border-color: CanvasText; }
2763
+ .sw-dialog-banded .sw-dialog-header { border-bottom-color: CanvasText; }
2764
+ }
2765
+
2606
2766
  .sw-accordion {
2607
2767
  background: var(--sw-glass-fill);
2608
2768
  border: 1px solid var(--sw-glass-border);
@@ -3020,6 +3180,51 @@ body {
3020
3180
  }
3021
3181
  }
3022
3182
 
3183
+ .sw-action-menu-trigger.sw-action-menu-trigger-text {
3184
+ align-items: center;
3185
+ background: transparent;
3186
+ border-color: transparent;
3187
+ display: inline-flex;
3188
+ font-family: var(--sw-font-sans);
3189
+ font-size: 15px;
3190
+ font-weight: 500;
3191
+ gap: var(--sw-space-2);
3192
+ letter-spacing: -0.2px;
3193
+ line-height: 20px;
3194
+ min-height: var(--sw-control-sm-min-height);
3195
+ padding-inline: var(--sw-space-3) var(--sw-space-2);
3196
+ }
3197
+
3198
+ .sw-action-menu-trigger.sw-action-menu-trigger-text::after {
3199
+ border-bottom: 2px solid var(--sw-color-muted);
3200
+ border-right: 2px solid var(--sw-color-muted);
3201
+ box-sizing: border-box;
3202
+ height: var(--sw-space-2);
3203
+ width: var(--sw-space-2);
3204
+ content: '';
3205
+ flex: none;
3206
+ transform: translateY(-25%) rotate(45deg);
3207
+ }
3208
+
3209
+ .sw-action-menu-trigger.sw-action-menu-trigger-text[aria-expanded='true'] {
3210
+ background: color-mix(in srgb, var(--sw-color-muted) 16%, transparent);
3211
+ }
3212
+
3213
+ @media (hover: hover) {
3214
+ .sw-action-menu-trigger.sw-action-menu-trigger-text:hover:not(:disabled) {
3215
+ background: color-mix(in srgb, var(--sw-color-muted) 16%, transparent);
3216
+ }
3217
+ }
3218
+
3219
+ @media (pointer: coarse) {
3220
+ .sw-action-menu-trigger.sw-action-menu-trigger-text { min-height: var(--sw-control-md-min-height); }
3221
+ }
3222
+
3223
+ @media (forced-colors: active) {
3224
+ .sw-action-menu-trigger.sw-action-menu-trigger-text::after { border-color: CanvasText; }
3225
+ .sw-action-menu-trigger.sw-action-menu-trigger-text[aria-expanded='true'] { border-color: Highlight; }
3226
+ }
3227
+
3023
3228
  .sw-combobox {
3024
3229
  max-width: 100%;
3025
3230
  min-width: 0;
@@ -4393,10 +4598,10 @@ body {
4393
4598
  .sw-denomination-tile-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
4394
4599
  }
4395
4600
 
4396
- .sw-denomination-cell-tone-accent { --sw-denomination-cell-tone: var(--sw-color-accent); }
4397
- .sw-denomination-cell-tone-success { --sw-denomination-cell-tone: var(--sw-color-success); }
4398
- .sw-denomination-cell-tone-danger { --sw-denomination-cell-tone: var(--sw-color-danger); }
4399
- .sw-denomination-cell-tone-warning { --sw-denomination-cell-tone: var(--sw-color-warning); }
4601
+ .sw-denomination-cell-tone-accent { --sw-denomination-cell-tone: var(--sw-color-accent); --sw-denomination-cell-fill: var(--sw-color-accentSubtle); --sw-denomination-cell-ink: color-mix(in srgb, var(--sw-color-accent) 70%, var(--sw-color-text)); }
4602
+ .sw-denomination-cell-tone-success { --sw-denomination-cell-tone: var(--sw-color-success); --sw-denomination-cell-fill: color-mix(in srgb, var(--sw-color-success) 10%, var(--sw-color-surface)); --sw-denomination-cell-ink: color-mix(in srgb, var(--sw-color-success) 70%, var(--sw-color-text)); }
4603
+ .sw-denomination-cell-tone-danger { --sw-denomination-cell-tone: var(--sw-color-danger); --sw-denomination-cell-fill: color-mix(in srgb, var(--sw-color-danger) 10%, var(--sw-color-surface)); --sw-denomination-cell-ink: color-mix(in srgb, var(--sw-color-danger) 70%, var(--sw-color-text)); }
4604
+ .sw-denomination-cell-tone-warning { --sw-denomination-cell-tone: var(--sw-color-warning); --sw-denomination-cell-fill: color-mix(in srgb, var(--sw-color-warning) 10%, var(--sw-color-surface)); --sw-denomination-cell-ink: color-mix(in srgb, var(--sw-color-warning) 70%, var(--sw-color-text)); }
4400
4605
 
4401
4606
  .sw-denomination-grid .sw-denomination-cell.sw-denomination-cell-toned,
4402
4607
  .sw-denomination-grid .sw-denomination-cell-toned .sw-denomination-cell {
@@ -4409,9 +4614,19 @@ body {
4409
4614
  box-shadow: inset 0 0 0 1px var(--sw-denomination-cell-tone);
4410
4615
  }
4411
4616
 
4617
+ /* A pill: the count on its tone's tint, in the tone's ink (a Notice's words: 4.5:1 on the tint unless the palette's own tone is under it). */
4618
+ .sw-denomination-cell-tones-pill .sw-denomination-cell-toned .sw-denomination-cell-value:not(:empty) {
4619
+ background: var(--sw-denomination-cell-fill);
4620
+ border-radius: var(--sw-radius-sm);
4621
+ color: var(--sw-denomination-cell-ink);
4622
+ display: inline-block;
4623
+ padding: calc(var(--sw-space-1) / 2) var(--sw-space-2);
4624
+ }
4625
+
4412
4626
  @media (forced-colors: active) {
4413
4627
  .sw-denomination-grid .sw-denomination-cell-zero.sw-denomination-cell-toned,
4414
4628
  .sw-denomination-grid .sw-denomination-cell-toned .sw-denomination-cell-zero { color: GrayText; }
4629
+ .sw-denomination-cell-tones-pill .sw-denomination-cell-toned .sw-denomination-cell-value:not(:empty) { color: inherit; outline: 1px solid CanvasText; }
4415
4630
  }
4416
4631
 
4417
4632
  .sw-denomination-strip td.sw-denomination-entry {
@@ -4528,6 +4743,74 @@ body {
4528
4743
  .sw-denomination-labels-plain .sw-denomination-label { color: CanvasText; }
4529
4744
  }
4530
4745
 
4746
+ .sw-denomination-scroll-framed {
4747
+ background: var(--sw-color-surface);
4748
+ border: 1px solid var(--sw-color-border);
4749
+ border-radius: var(--sw-radius-sm);
4750
+ box-sizing: border-box;
4751
+ }
4752
+
4753
+ .sw-denomination-strip.sw-denomination-framed :where(th, td) {
4754
+ padding: var(--sw-space-4) var(--sw-space-3);
4755
+ }
4756
+
4757
+ .sw-denomination-strip.sw-denomination-framed thead :where(th, td),
4758
+ .sw-denomination-strip.sw-denomination-framed thead .sw-denomination-corner:first-child {
4759
+ background: var(--sw-color-subtle);
4760
+ padding-block: var(--sw-space-2);
4761
+ }
4762
+
4763
+ .sw-denomination-strip.sw-denomination-framed :is(th, td) + :is(th, td) {
4764
+ border-inline-start: 1px solid var(--sw-color-border);
4765
+ }
4766
+
4767
+ .sw-denomination-strip.sw-denomination-framed :where(.sw-denomination-label) {
4768
+ backdrop-filter: none;
4769
+ -webkit-backdrop-filter: none;
4770
+ background: var(--sw-color-surface);
4771
+ }
4772
+
4773
+ .sw-denomination-strip.sw-denomination-framed .sw-denomination-label {
4774
+ padding-inline: var(--sw-space-3);
4775
+ }
4776
+
4777
+ .sw-denomination-strip.sw-denomination-framed .sw-denomination-head:not(.sw-denomination-total-head),
4778
+ .sw-denomination-strip.sw-denomination-framed .sw-denomination-cell {
4779
+ text-align: center;
4780
+ }
4781
+
4782
+ .sw-denomination-strip.sw-denomination-framed .sw-denomination-cell {
4783
+ font-size: 15px;
4784
+ letter-spacing: -0.2px;
4785
+ line-height: 20px;
4786
+ }
4787
+
4788
+ @media not all and (min-width: 48rem) {
4789
+ .sw-denomination-strip.sw-denomination-framed :where(th, td),
4790
+ .sw-denomination-strip.sw-denomination-framed .sw-denomination-label { padding-inline: var(--sw-space-2); }
4791
+ .sw-denomination-strip.sw-denomination-framed .sw-denomination-total,
4792
+ .sw-denomination-strip.sw-denomination-framed .sw-denomination-total-head { border-inline-start: 0; padding: 0; }
4793
+ }
4794
+
4795
+ @media (forced-colors: active) {
4796
+ .sw-denomination-scroll-framed,
4797
+ .sw-denomination-strip.sw-denomination-framed :is(th, td) + :is(th, td) { border-color: CanvasText; }
4798
+ }
4799
+
4800
+ .sw-denomination-totals-strong .sw-denomination-total {
4801
+ font-size: 15px;
4802
+ font-weight: 700;
4803
+ letter-spacing: -0.2px;
4804
+ line-height: 20px;
4805
+ }
4806
+
4807
+ .sw-denomination-totals-strong .sw-denomination-total-inline { font-weight: 700; }
4808
+
4809
+ .sw-denomination-totals-strong .sw-denomination-row-neutral .sw-denomination-total,
4810
+ .sw-denomination-totals-strong .sw-denomination-row-neutral .sw-denomination-total-inline {
4811
+ color: var(--sw-color-text);
4812
+ }
4813
+
4531
4814
  @media (forced-colors: active) {
4532
4815
  .sw-denomination-label { border-inline-start-color: CanvasText; color: CanvasText; }
4533
4816
  .sw-denomination-strip .sw-denomination-label::before { background: CanvasText; forced-color-adjust: none; }
@@ -4847,6 +5130,12 @@ body {
4847
5130
  background-image: linear-gradient(color-mix(in srgb, var(--sw-color-accent) 12%, transparent), color-mix(in srgb, var(--sw-color-accent) 12%, transparent));
4848
5131
  }
4849
5132
 
5133
+ /* A plain limit: − at min and + at max keep their look, still disabled. */
5134
+ .sw-stepper-limit-plain .sw-stepper-button:disabled {
5135
+ cursor: default;
5136
+ opacity: 1;
5137
+ }
5138
+
4850
5139
  /* Read-only: the buttons keep their room, so the count lines up with an editable one. */
4851
5140
  .sw-stepper-readonly .sw-stepper-button { visibility: hidden; }
4852
5141
 
@@ -5302,6 +5591,7 @@ body {
5302
5591
 
5303
5592
  .sw-border { border: 1px solid var(--sw-color-border); }
5304
5593
  .sw-border-dashed { border: 1px dashed var(--sw-color-border); }
5594
+ .sw-border-bottom { border-width: 0 0 1px; border-style: solid; border-color: var(--sw-color-border); }
5305
5595
 
5306
5596
  @media (prefers-reduced-transparency: reduce) {
5307
5597
  .sw-card-glass,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scalewing/react",
3
- "version": "1.31.0",
3
+ "version": "1.32.0",
4
4
  "description": "Scalewing DOM components and package-owned CSS utilities.",
5
5
  "type": "module",
6
6
  "license": "MIT",