@scalewing/react 1.31.0 → 1.33.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 (92) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/README.md +20 -6
  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 +28 -2
  8. package/dist/components/Box.js +4 -2
  9. package/dist/components/Button.d.ts +27 -2
  10. package/dist/components/Button.js +5 -3
  11. package/dist/components/ButtonGroup.d.ts +9 -1
  12. package/dist/components/ButtonGroup.js +8 -2
  13. package/dist/components/Combobox.js +2 -2
  14. package/dist/components/DateField.d.ts +9 -1
  15. package/dist/components/DateField.js +4 -3
  16. package/dist/components/DenominationGrid.d.ts +5 -3
  17. package/dist/components/DenominationGrid.js +21 -11
  18. package/dist/components/Dialog.d.ts +9 -1
  19. package/dist/components/Dialog.js +8 -4
  20. package/dist/components/Field.d.ts +8 -0
  21. package/dist/components/Field.js +4 -3
  22. package/dist/components/FieldLabelText.d.ts +21 -3
  23. package/dist/components/FieldLabelText.js +16 -4
  24. package/dist/components/FilterChips.d.ts +9 -1
  25. package/dist/components/FilterChips.js +4 -2
  26. package/dist/components/Nav.d.ts +14 -2
  27. package/dist/components/Nav.js +6 -2
  28. package/dist/components/SegmentedControl.d.ts +5 -2
  29. package/dist/components/SegmentedControl.js +2 -1
  30. package/dist/components/Select.d.ts +9 -1
  31. package/dist/components/Select.js +4 -3
  32. package/dist/components/Stepper.d.ts +13 -0
  33. package/dist/components/Stepper.js +8 -2
  34. package/dist/components/combobox/types.d.ts +8 -0
  35. package/dist/components/denomination-grid/DenominationStrip.d.ts +4 -2
  36. package/dist/components/denomination-grid/DenominationStrip.js +3 -2
  37. package/dist/components/denomination-grid/DenominationTiles.d.ts +1 -1
  38. package/dist/components/denomination-grid/EntryCell.js +1 -1
  39. package/dist/components/denomination-grid/StripRow.js +5 -2
  40. package/dist/components/denomination-grid/types.d.ts +35 -1
  41. package/dist/components/dialog/DialogTitle.d.ts +5 -3
  42. package/dist/components/dialog/DialogTitle.js +4 -4
  43. package/dist/css/css-action-menu-trigger.d.ts +11 -0
  44. package/dist/css/css-action-menu-trigger.js +66 -0
  45. package/dist/css/css-action-menu.js +7 -2
  46. package/dist/css/css-app-header-bar.d.ts +10 -0
  47. package/dist/css/css-app-header-bar.js +26 -0
  48. package/dist/css/css-box-border.d.ts +6 -1
  49. package/dist/css/css-box-border.js +8 -4
  50. package/dist/css/css-box-link.d.ts +13 -0
  51. package/dist/css/css-box-link.js +50 -0
  52. package/dist/css/css-button-group-attached.js +5 -2
  53. package/dist/css/css-button-group-track.d.ts +11 -0
  54. package/dist/css/css-button-group-track.js +48 -0
  55. package/dist/css/css-button.d.ts +19 -2
  56. package/dist/css/css-button.js +31 -1
  57. package/dist/css/css-chrome.js +14 -1
  58. package/dist/css/css-combobox.js +2 -1
  59. package/dist/css/css-components.js +3 -0
  60. package/dist/css/css-data.js +3 -2
  61. package/dist/css/css-date-field.js +2 -1
  62. package/dist/css/css-denomination-appearance.d.ts +21 -0
  63. package/dist/css/css-denomination-appearance.js +114 -0
  64. package/dist/css/css-denomination-cell-tones.d.ts +8 -0
  65. package/dist/css/css-denomination-cell-tones.js +20 -1
  66. package/dist/css/css-denomination-grid.js +4 -0
  67. package/dist/css/css-dialog-banded.d.ts +11 -0
  68. package/dist/css/css-dialog-banded.js +84 -0
  69. package/dist/css/css-document.js +3 -0
  70. package/dist/css/css-multi-select.js +2 -1
  71. package/dist/css/css-nav-words.d.ts +13 -0
  72. package/dist/css/css-nav-words.js +51 -0
  73. package/dist/css/css-notice.d.ts +4 -11
  74. package/dist/css/css-notice.js +6 -22
  75. package/dist/css/css-scroll-region.d.ts +7 -3
  76. package/dist/css/css-scroll-region.js +8 -3
  77. package/dist/css/css-segmented-raised.d.ts +3 -0
  78. package/dist/css/css-segmented-raised.js +72 -0
  79. package/dist/css/css-segmented.js +9 -3
  80. package/dist/css/css-select.js +2 -1
  81. package/dist/css/css-split.js +2 -1
  82. package/dist/css/css-stepper.js +7 -0
  83. package/dist/css/quiet-fill.d.ts +7 -0
  84. package/dist/css/quiet-fill.js +7 -0
  85. package/dist/css/stacking.js +2 -1
  86. package/dist/css/stylesheet.js +4 -0
  87. package/dist/css/tone-tint.d.ts +21 -0
  88. package/dist/css/tone-tint.js +23 -0
  89. package/dist/index.d.ts +13 -10
  90. package/dist/index.js +10 -7
  91. package/dist/styles.css +313 -10
  92. package/package.json +1 -1
package/dist/styles.css CHANGED
@@ -628,6 +628,17 @@ body {
628
628
  outline-offset: var(--sw-focus-ring-offset);
629
629
  }
630
630
 
631
+ [data-theme] a.sw-link-quiet {
632
+ color: inherit;
633
+ font-weight: 600;
634
+ }
635
+
636
+ [data-theme] a.sw-link-quiet:hover,
637
+ [data-theme] a.sw-link-quiet:focus-visible {
638
+ color: inherit;
639
+ text-decoration-line: underline;
640
+ }
641
+
631
642
  /*
632
643
  * A programmatic focus target (tabindex="-1": a notice, a card or a heading
633
644
  * that a script focuses after a save) takes the accent ring past the ring
@@ -913,6 +924,13 @@ body {
913
924
  .sw-button-tertiary { background: var(--sw-color-tertiary); border-color: transparent; color: var(--sw-color-onTertiary); }
914
925
  .sw-button-ghost { background: transparent; border-color: transparent; color: var(--sw-color-accent); }
915
926
  .sw-button-danger { background: var(--sw-color-danger); border-color: transparent; color: var(--sw-color-onDanger); }
927
+ .sw-button-neutral { background: color-mix(in srgb, var(--sw-color-muted) 16%, transparent); border-color: transparent; color: var(--sw-color-text); }
928
+ .sw-button-disabled-neutral:disabled:not(.sw-button-ghost) {
929
+ background: color-mix(in srgb, var(--sw-color-muted) 16%, transparent);
930
+ border-color: transparent;
931
+ color: color-mix(in srgb, var(--sw-color-muted) 48%, transparent);
932
+ opacity: 1;
933
+ }
916
934
  .sw-button[aria-pressed='true'] { box-shadow: 0 0 0 2px var(--sw-color-background), 0 0 0 4px var(--sw-color-accent); }
917
935
  .sw-button[aria-pressed='true']:focus-visible { outline-offset: calc(var(--sw-focus-ring-offset) + 4px); }
918
936
  @media (forced-colors: active) {
@@ -978,6 +996,30 @@ body {
978
996
  .sw-button-group.sw-button-group-attached > * { width: auto; }
979
997
  }
980
998
 
999
+ .sw-button-group.sw-button-group-attached.sw-button-group-track {
1000
+ background: color-mix(in srgb, var(--sw-color-muted) 16%, transparent);
1001
+ border-radius: var(--sw-radius-sm);
1002
+ }
1003
+
1004
+ .sw-button-group.sw-button-group-attached.sw-button-group-track > .sw-button {
1005
+ background: transparent;
1006
+ border-color: transparent;
1007
+ color: var(--sw-color-text);
1008
+ }
1009
+
1010
+ .sw-button-group.sw-button-group-attached.sw-button-group-track > .sw-button + .sw-button {
1011
+ border-inline-start-color: var(--sw-color-border);
1012
+ }
1013
+
1014
+ .sw-button-group.sw-button-group-attached.sw-button-group-track > .sw-button:disabled {
1015
+ opacity: var(--sw-disabled-opacity);
1016
+ }
1017
+
1018
+ @media (forced-colors: active) {
1019
+ .sw-button-group.sw-button-group-attached.sw-button-group-track { outline: 1px solid CanvasText; }
1020
+ .sw-button-group.sw-button-group-attached.sw-button-group-track > .sw-button[aria-pressed='true'] { border-color: Highlight; }
1021
+ }
1022
+
981
1023
  .sw-checkbox {
982
1024
  display: flex;
983
1025
  flex-direction: column;
@@ -1319,7 +1361,7 @@ body {
1319
1361
  color: var(--sw-color-warning);
1320
1362
  }
1321
1363
 
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); }
1364
+ :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
1365
 
1324
1366
  .sw-segmented-field {
1325
1367
  display: inline-flex;
@@ -1411,12 +1453,12 @@ body {
1411
1453
  color: var(--sw-color-onAccent);
1412
1454
  }
1413
1455
 
1414
- .sw-segmented.sw-segmented-with-icons:not(.sw-segmented-filled) {
1456
+ .sw-segmented.sw-segmented-with-icons:not(.sw-segmented-filled, .sw-segmented-raised) {
1415
1457
  background: var(--sw-color-subtle);
1416
1458
  border-color: transparent;
1417
1459
  }
1418
1460
 
1419
- .sw-segmented-with-icons:not(.sw-segmented-filled) .sw-segmented-item-selected {
1461
+ .sw-segmented-with-icons:not(.sw-segmented-filled, .sw-segmented-raised) .sw-segmented-item-selected {
1420
1462
  box-shadow: var(--sw-elevation-sm);
1421
1463
  }
1422
1464
 
@@ -1427,7 +1469,7 @@ body {
1427
1469
  justify-content: center;
1428
1470
  }
1429
1471
 
1430
- .sw-segmented-with-icons:not(.sw-segmented-filled) .sw-segmented-item {
1472
+ .sw-segmented-with-icons:not(.sw-segmented-filled, .sw-segmented-raised) .sw-segmented-item {
1431
1473
  font-size: 15px;
1432
1474
  letter-spacing: -0.2px;
1433
1475
  line-height: 20px;
@@ -1445,11 +1487,57 @@ body {
1445
1487
  }
1446
1488
 
1447
1489
  @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; }
1490
+ .sw-segmented.sw-segmented-with-icons:not(.sw-segmented-filled, .sw-segmented-raised) { border-color: CanvasText; }
1491
+ .sw-segmented-with-icons:not(.sw-segmented-filled, .sw-segmented-raised) .sw-segmented-item-selected { outline: 2px solid Highlight; }
1450
1492
  .sw-segmented.sw-segmented-with-icons[aria-invalid='true'] { border-color: Mark; }
1451
1493
  }
1452
1494
 
1495
+ .sw-segmented.sw-segmented-raised {
1496
+ background: color-mix(in srgb, var(--sw-color-muted) 16%, transparent);
1497
+ border-color: transparent;
1498
+ border-radius: calc(var(--sw-radius-sm) + 2px);
1499
+ }
1500
+
1501
+ /* Sized to its segments even where the field is stretched (a Stack). */
1502
+ .sw-segmented-field > .sw-segmented.sw-segmented-raised {
1503
+ align-self: flex-start;
1504
+ }
1505
+
1506
+ .sw-segmented.sw-segmented-raised .sw-segmented-item {
1507
+ border-radius: var(--sw-radius-sm);
1508
+ color: var(--sw-color-text);
1509
+ font-size: 15px;
1510
+ font-weight: 500;
1511
+ letter-spacing: -0.2px;
1512
+ line-height: 20px;
1513
+ min-height: var(--sw-control-md-min-height);
1514
+ padding-inline: var(--sw-space-4);
1515
+ }
1516
+
1517
+ .sw-segmented.sw-segmented-raised.sw-segmented-with-icons .sw-segmented-item {
1518
+ padding-inline: var(--sw-space-2) var(--sw-space-3);
1519
+ }
1520
+
1521
+ .sw-segmented.sw-segmented-raised .sw-segmented-item-selected {
1522
+ background: var(--sw-color-surface);
1523
+ box-shadow: var(--sw-elevation-sm);
1524
+ font-weight: 600;
1525
+ }
1526
+
1527
+ [data-theme='dark'] .sw-segmented.sw-segmented-raised .sw-segmented-item-selected {
1528
+ box-shadow: inset 0 0 0 1px var(--sw-color-muted);
1529
+ }
1530
+
1531
+ .sw-segmented.sw-segmented-raised[aria-invalid='true'] {
1532
+ border-color: var(--sw-color-danger);
1533
+ }
1534
+
1535
+ @media (forced-colors: active) {
1536
+ .sw-segmented.sw-segmented-raised { border-color: CanvasText; }
1537
+ .sw-segmented.sw-segmented-raised .sw-segmented-item-selected { outline: 2px solid Highlight; }
1538
+ .sw-segmented.sw-segmented-raised[aria-invalid='true'] { border-color: Mark; }
1539
+ }
1540
+
1453
1541
  .sw-segmented-disabled {
1454
1542
  opacity: var(--sw-disabled-opacity);
1455
1543
  }
@@ -1460,6 +1548,7 @@ body {
1460
1548
 
1461
1549
  .sw-table-wrap {
1462
1550
  overflow: auto;
1551
+ position: relative;
1463
1552
  width: 100%;
1464
1553
  }
1465
1554
 
@@ -2242,6 +2331,17 @@ body {
2242
2331
  -webkit-backdrop-filter: blur(var(--sw-glass-blur)) saturate(var(--sw-glass-saturate));
2243
2332
  }
2244
2333
 
2334
+ .sw-app-header-bar {
2335
+ backdrop-filter: none;
2336
+ -webkit-backdrop-filter: none;
2337
+ background: var(--sw-color-surface);
2338
+ border-color: var(--sw-color-border);
2339
+ border-radius: 0;
2340
+ border-style: solid;
2341
+ border-width: 0 0 1px;
2342
+ box-shadow: none;
2343
+ }
2344
+
2245
2345
  .sw-app-header-sticky {
2246
2346
  position: sticky;
2247
2347
  top: 0;
@@ -2278,6 +2378,32 @@ body {
2278
2378
  }
2279
2379
  }
2280
2380
 
2381
+ .sw-nav.sw-nav-words :is(a, .sw-button) {
2382
+ background: transparent;
2383
+ border: 1px solid transparent;
2384
+ color: var(--sw-color-muted);
2385
+ font-size: 15px;
2386
+ font-weight: 500;
2387
+ letter-spacing: -0.2px;
2388
+ line-height: 20px;
2389
+ text-decoration: none;
2390
+ }
2391
+
2392
+ @media (hover: hover) {
2393
+ .sw-nav.sw-nav-words :is(a, .sw-button):hover:not(:disabled, [aria-disabled='true']) {
2394
+ color: var(--sw-color-text);
2395
+ }
2396
+ }
2397
+
2398
+ .sw-nav.sw-nav-words :is(a, .sw-button)[aria-current]:not([aria-current='false']) {
2399
+ color: var(--sw-color-text);
2400
+ font-weight: 600;
2401
+ }
2402
+
2403
+ @media (forced-colors: active) {
2404
+ .sw-nav.sw-nav-words :is(a, .sw-button)[aria-current]:not([aria-current='false']) { border-color: Highlight; text-decoration: underline; }
2405
+ }
2406
+
2281
2407
  .sw-field-xs :is(select, input, textarea) {
2282
2408
  font-size: 13px;
2283
2409
  letter-spacing: -0.08px;
@@ -2603,6 +2729,52 @@ body {
2603
2729
  .sw-dialog-footer { border-top-color: CanvasText; }
2604
2730
  }
2605
2731
 
2732
+ .sw-dialog-banded {
2733
+ backdrop-filter: none;
2734
+ -webkit-backdrop-filter: none;
2735
+ background: var(--sw-color-surface);
2736
+ border-color: transparent;
2737
+ box-shadow: var(--sw-elevation-md);
2738
+ }
2739
+
2740
+ .sw-dialog-banded .sw-dialog-header {
2741
+ align-items: center;
2742
+ background: var(--sw-color-surface);
2743
+ border-bottom: 1px solid var(--sw-color-border);
2744
+ margin: calc(-1 * var(--sw-space-5)) calc(-1 * var(--sw-space-5)) 0;
2745
+ padding: var(--sw-space-4) var(--sw-space-5);
2746
+ position: sticky;
2747
+ top: calc(-1 * var(--sw-space-5));
2748
+ z-index: 5;
2749
+ }
2750
+
2751
+ @media not all and (min-width: 48rem) {
2752
+ .sw-dialog-sheet-below-md.sw-dialog-banded .sw-dialog-header {
2753
+ margin-left: calc(-1 * max(var(--sw-space-5), env(safe-area-inset-left, 0px)));
2754
+ margin-right: calc(-1 * max(var(--sw-space-5), env(safe-area-inset-right, 0px)));
2755
+ padding-left: max(var(--sw-space-5), env(safe-area-inset-left, 0px));
2756
+ padding-right: max(var(--sw-space-5), env(safe-area-inset-right, 0px));
2757
+ }
2758
+ }
2759
+
2760
+ .sw-dialog-banded .sw-button.sw-dialog-close {
2761
+ background: color-mix(in srgb, var(--sw-color-muted) 16%, transparent);
2762
+ border-radius: var(--sw-radius-pill);
2763
+ color: var(--sw-color-text);
2764
+ margin: 0;
2765
+ }
2766
+
2767
+ @media (hover: hover) {
2768
+ .sw-dialog-banded .sw-button.sw-dialog-close:hover {
2769
+ background: color-mix(in srgb, var(--sw-color-muted) 24%, transparent);
2770
+ }
2771
+ }
2772
+
2773
+ @media (forced-colors: active) {
2774
+ .sw-dialog-banded { border-color: CanvasText; }
2775
+ .sw-dialog-banded .sw-dialog-header { border-bottom-color: CanvasText; }
2776
+ }
2777
+
2606
2778
  .sw-accordion {
2607
2779
  background: var(--sw-glass-fill);
2608
2780
  border: 1px solid var(--sw-glass-border);
@@ -3020,6 +3192,51 @@ body {
3020
3192
  }
3021
3193
  }
3022
3194
 
3195
+ .sw-action-menu-trigger.sw-action-menu-trigger-text {
3196
+ align-items: center;
3197
+ background: transparent;
3198
+ border-color: transparent;
3199
+ display: inline-flex;
3200
+ font-family: var(--sw-font-sans);
3201
+ font-size: 15px;
3202
+ font-weight: 500;
3203
+ gap: var(--sw-space-2);
3204
+ letter-spacing: -0.2px;
3205
+ line-height: 20px;
3206
+ min-height: var(--sw-control-sm-min-height);
3207
+ padding-inline: var(--sw-space-3) var(--sw-space-2);
3208
+ }
3209
+
3210
+ .sw-action-menu-trigger.sw-action-menu-trigger-text::after {
3211
+ border-bottom: 2px solid var(--sw-color-muted);
3212
+ border-right: 2px solid var(--sw-color-muted);
3213
+ box-sizing: border-box;
3214
+ height: var(--sw-space-2);
3215
+ width: var(--sw-space-2);
3216
+ content: '';
3217
+ flex: none;
3218
+ transform: translateY(-25%) rotate(45deg);
3219
+ }
3220
+
3221
+ .sw-action-menu-trigger.sw-action-menu-trigger-text[aria-expanded='true'] {
3222
+ background: color-mix(in srgb, var(--sw-color-muted) 16%, transparent);
3223
+ }
3224
+
3225
+ @media (hover: hover) {
3226
+ .sw-action-menu-trigger.sw-action-menu-trigger-text:hover:not(:disabled) {
3227
+ background: color-mix(in srgb, var(--sw-color-muted) 16%, transparent);
3228
+ }
3229
+ }
3230
+
3231
+ @media (pointer: coarse) {
3232
+ .sw-action-menu-trigger.sw-action-menu-trigger-text { min-height: var(--sw-control-md-min-height); }
3233
+ }
3234
+
3235
+ @media (forced-colors: active) {
3236
+ .sw-action-menu-trigger.sw-action-menu-trigger-text::after { border-color: CanvasText; }
3237
+ .sw-action-menu-trigger.sw-action-menu-trigger-text[aria-expanded='true'] { border-color: Highlight; }
3238
+ }
3239
+
3023
3240
  .sw-combobox {
3024
3241
  max-width: 100%;
3025
3242
  min-width: 0;
@@ -4143,6 +4360,7 @@ body {
4143
4360
 
4144
4361
  .sw-denomination-scroll {
4145
4362
  overflow: auto;
4363
+ position: relative;
4146
4364
  width: 100%;
4147
4365
  }
4148
4366
 
@@ -4393,10 +4611,10 @@ body {
4393
4611
  .sw-denomination-tile-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
4394
4612
  }
4395
4613
 
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); }
4614
+ .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)); }
4615
+ .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)); }
4616
+ .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)); }
4617
+ .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
4618
 
4401
4619
  .sw-denomination-grid .sw-denomination-cell.sw-denomination-cell-toned,
4402
4620
  .sw-denomination-grid .sw-denomination-cell-toned .sw-denomination-cell {
@@ -4409,9 +4627,19 @@ body {
4409
4627
  box-shadow: inset 0 0 0 1px var(--sw-denomination-cell-tone);
4410
4628
  }
4411
4629
 
4630
+ /* 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). */
4631
+ .sw-denomination-cell-tones-pill .sw-denomination-cell-toned .sw-denomination-cell-value:not(:empty) {
4632
+ background: var(--sw-denomination-cell-fill);
4633
+ border-radius: var(--sw-radius-sm);
4634
+ color: var(--sw-denomination-cell-ink);
4635
+ display: inline-block;
4636
+ padding: calc(var(--sw-space-1) / 2) var(--sw-space-2);
4637
+ }
4638
+
4412
4639
  @media (forced-colors: active) {
4413
4640
  .sw-denomination-grid .sw-denomination-cell-zero.sw-denomination-cell-toned,
4414
4641
  .sw-denomination-grid .sw-denomination-cell-toned .sw-denomination-cell-zero { color: GrayText; }
4642
+ .sw-denomination-cell-tones-pill .sw-denomination-cell-toned .sw-denomination-cell-value:not(:empty) { color: inherit; outline: 1px solid CanvasText; }
4415
4643
  }
4416
4644
 
4417
4645
  .sw-denomination-strip td.sw-denomination-entry {
@@ -4528,6 +4756,74 @@ body {
4528
4756
  .sw-denomination-labels-plain .sw-denomination-label { color: CanvasText; }
4529
4757
  }
4530
4758
 
4759
+ .sw-denomination-scroll-framed {
4760
+ background: var(--sw-color-surface);
4761
+ border: 1px solid var(--sw-color-border);
4762
+ border-radius: var(--sw-radius-sm);
4763
+ box-sizing: border-box;
4764
+ }
4765
+
4766
+ .sw-denomination-strip.sw-denomination-framed :where(th, td) {
4767
+ padding: var(--sw-space-4) var(--sw-space-3);
4768
+ }
4769
+
4770
+ .sw-denomination-strip.sw-denomination-framed thead :where(th, td),
4771
+ .sw-denomination-strip.sw-denomination-framed thead .sw-denomination-corner:first-child {
4772
+ background: var(--sw-color-subtle);
4773
+ padding-block: var(--sw-space-2);
4774
+ }
4775
+
4776
+ .sw-denomination-strip.sw-denomination-framed :is(th, td) + :is(th, td) {
4777
+ border-inline-start: 1px solid var(--sw-color-border);
4778
+ }
4779
+
4780
+ .sw-denomination-strip.sw-denomination-framed :where(.sw-denomination-label) {
4781
+ backdrop-filter: none;
4782
+ -webkit-backdrop-filter: none;
4783
+ background: var(--sw-color-surface);
4784
+ }
4785
+
4786
+ .sw-denomination-strip.sw-denomination-framed .sw-denomination-label {
4787
+ padding-inline: var(--sw-space-3);
4788
+ }
4789
+
4790
+ .sw-denomination-strip.sw-denomination-framed .sw-denomination-head:not(.sw-denomination-total-head),
4791
+ .sw-denomination-strip.sw-denomination-framed .sw-denomination-cell {
4792
+ text-align: center;
4793
+ }
4794
+
4795
+ .sw-denomination-strip.sw-denomination-framed .sw-denomination-cell {
4796
+ font-size: 15px;
4797
+ letter-spacing: -0.2px;
4798
+ line-height: 20px;
4799
+ }
4800
+
4801
+ @media not all and (min-width: 48rem) {
4802
+ .sw-denomination-strip.sw-denomination-framed :where(th, td),
4803
+ .sw-denomination-strip.sw-denomination-framed .sw-denomination-label { padding-inline: var(--sw-space-2); }
4804
+ .sw-denomination-strip.sw-denomination-framed .sw-denomination-total,
4805
+ .sw-denomination-strip.sw-denomination-framed .sw-denomination-total-head { border-inline-start: 0; padding: 0; }
4806
+ }
4807
+
4808
+ @media (forced-colors: active) {
4809
+ .sw-denomination-scroll-framed,
4810
+ .sw-denomination-strip.sw-denomination-framed :is(th, td) + :is(th, td) { border-color: CanvasText; }
4811
+ }
4812
+
4813
+ .sw-denomination-totals-strong .sw-denomination-total {
4814
+ font-size: 15px;
4815
+ font-weight: 700;
4816
+ letter-spacing: -0.2px;
4817
+ line-height: 20px;
4818
+ }
4819
+
4820
+ .sw-denomination-totals-strong .sw-denomination-total-inline { font-weight: 700; }
4821
+
4822
+ .sw-denomination-totals-strong .sw-denomination-row-neutral .sw-denomination-total,
4823
+ .sw-denomination-totals-strong .sw-denomination-row-neutral .sw-denomination-total-inline {
4824
+ color: var(--sw-color-text);
4825
+ }
4826
+
4531
4827
  @media (forced-colors: active) {
4532
4828
  .sw-denomination-label { border-inline-start-color: CanvasText; color: CanvasText; }
4533
4829
  .sw-denomination-strip .sw-denomination-label::before { background: CanvasText; forced-color-adjust: none; }
@@ -4847,6 +5143,12 @@ body {
4847
5143
  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
5144
  }
4849
5145
 
5146
+ /* A plain limit: − at min and + at max keep their look, still disabled. */
5147
+ .sw-stepper-limit-plain .sw-stepper-button:disabled {
5148
+ cursor: default;
5149
+ opacity: 1;
5150
+ }
5151
+
4850
5152
  /* Read-only: the buttons keep their room, so the count lines up with an editable one. */
4851
5153
  .sw-stepper-readonly .sw-stepper-button { visibility: hidden; }
4852
5154
 
@@ -5302,6 +5604,7 @@ body {
5302
5604
 
5303
5605
  .sw-border { border: 1px solid var(--sw-color-border); }
5304
5606
  .sw-border-dashed { border: 1px dashed var(--sw-color-border); }
5607
+ .sw-border-bottom { border-width: 0 0 1px; border-style: solid; border-color: var(--sw-color-border); }
5305
5608
 
5306
5609
  @media (prefers-reduced-transparency: reduce) {
5307
5610
  .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.33.0",
4
4
  "description": "Scalewing DOM components and package-owned CSS utilities.",
5
5
  "type": "module",
6
6
  "license": "MIT",