@scalewing/react 1.38.0 → 1.40.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 (162) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +155 -1
  3. package/dist/calendar-month.d.ts +6 -0
  4. package/dist/calendar-month.js +15 -0
  5. package/dist/chart-axis.d.ts +61 -0
  6. package/dist/chart-axis.js +83 -0
  7. package/dist/chart-dates.d.ts +6 -0
  8. package/dist/chart-dates.js +15 -0
  9. package/dist/chart-metrics.d.ts +40 -0
  10. package/dist/chart-metrics.js +48 -0
  11. package/dist/chart-scale.d.ts +48 -0
  12. package/dist/chart-scale.js +116 -0
  13. package/dist/chart-table-rows.d.ts +8 -0
  14. package/dist/chart-table-rows.js +1 -0
  15. package/dist/column-chart-bars.d.ts +38 -0
  16. package/dist/column-chart-bars.js +82 -0
  17. package/dist/column-chart-callouts.d.ts +48 -0
  18. package/dist/column-chart-callouts.js +54 -0
  19. package/dist/column-chart-input.d.ts +40 -0
  20. package/dist/column-chart-input.js +60 -0
  21. package/dist/column-chart-layout.d.ts +63 -0
  22. package/dist/column-chart-layout.js +97 -0
  23. package/dist/components/BarChart.d.ts +1 -1
  24. package/dist/components/BarChart.js +1 -1
  25. package/dist/components/ChartLegend.d.ts +38 -0
  26. package/dist/components/ChartLegend.js +32 -0
  27. package/dist/components/ColumnChart.d.ts +72 -0
  28. package/dist/components/ColumnChart.js +71 -0
  29. package/dist/components/DataBar.d.ts +6 -6
  30. package/dist/components/DateRangeButton.d.ts +65 -0
  31. package/dist/components/DateRangeButton.js +54 -0
  32. package/dist/components/LineChart.d.ts +83 -0
  33. package/dist/components/LineChart.js +77 -0
  34. package/dist/components/ListGroup.d.ts +33 -0
  35. package/dist/components/ListGroup.js +19 -0
  36. package/dist/components/ListRow.d.ts +51 -0
  37. package/dist/components/ListRow.js +59 -0
  38. package/dist/components/NavCount.d.ts +21 -0
  39. package/dist/components/NavCount.js +23 -0
  40. package/dist/components/SectionNav.js +1 -8
  41. package/dist/components/StatTile.d.ts +11 -4
  42. package/dist/components/StatTile.js +11 -4
  43. package/dist/components/{date-field → calendar}/CalendarGrid.d.ts +17 -2
  44. package/dist/components/{date-field → calendar}/CalendarGrid.js +11 -3
  45. package/dist/components/calendar/CalendarPopover.d.ts +25 -0
  46. package/dist/components/calendar/CalendarPopover.js +22 -0
  47. package/dist/components/calendar/MonthStep.d.ts +16 -0
  48. package/dist/components/calendar/MonthStep.js +17 -0
  49. package/dist/components/calendar/use-grid-focus.d.ts +18 -0
  50. package/dist/components/calendar/use-grid-focus.js +35 -0
  51. package/dist/components/calendar/wrap-tab.d.ts +7 -0
  52. package/dist/components/calendar/wrap-tab.js +29 -0
  53. package/dist/components/chart/ChartTable.d.ts +16 -0
  54. package/dist/components/chart/ChartTable.js +12 -0
  55. package/dist/components/chart/ChartValueAxis.d.ts +14 -0
  56. package/dist/components/chart/ChartValueAxis.js +11 -0
  57. package/dist/components/chart/use-chart-width.d.ts +8 -0
  58. package/dist/components/chart/use-chart-width.js +34 -0
  59. package/dist/components/column-chart/ChartCalloutList.d.ts +16 -0
  60. package/dist/components/column-chart/ChartCalloutList.js +13 -0
  61. package/dist/components/column-chart/ColumnChartDrawing.d.ts +17 -0
  62. package/dist/components/column-chart/ColumnChartDrawing.js +18 -0
  63. package/dist/components/date-field/CalendarDialog.js +9 -67
  64. package/dist/components/date-field/CalendarHeader.js +2 -11
  65. package/dist/components/date-range/DateRangePopover.d.ts +7 -0
  66. package/dist/components/date-range/DateRangePopover.js +17 -0
  67. package/dist/components/date-range/DateRangeSheet.d.ts +7 -0
  68. package/dist/components/date-range/DateRangeSheet.js +15 -0
  69. package/dist/components/date-range/RangeMonths.d.ts +28 -0
  70. package/dist/components/date-range/RangeMonths.js +50 -0
  71. package/dist/components/date-range/RangePresets.d.ts +16 -0
  72. package/dist/components/date-range/RangePresets.js +10 -0
  73. package/dist/components/date-range/RangeSummary.d.ts +15 -0
  74. package/dist/components/date-range/RangeSummary.js +11 -0
  75. package/dist/components/date-range/range-panel-props.d.ts +31 -0
  76. package/dist/components/date-range/range-panel-props.js +1 -0
  77. package/dist/components/date-range/use-range-popup.d.ts +21 -0
  78. package/dist/components/date-range/use-range-popup.js +53 -0
  79. package/dist/components/line-chart/LineChartDrawing.d.ts +17 -0
  80. package/dist/components/line-chart/LineChartDrawing.js +16 -0
  81. package/dist/components/link-press.d.ts +7 -0
  82. package/dist/components/link-press.js +13 -0
  83. package/dist/components/list/ListRowAccessoryMark.d.ts +5 -0
  84. package/dist/components/list/ListRowAccessoryMark.js +7 -0
  85. package/dist/components/list/ListRowContent.d.ts +20 -0
  86. package/dist/components/list/ListRowContent.js +10 -0
  87. package/dist/components/list/list-row-container.d.ts +5 -0
  88. package/dist/components/list/list-row-container.js +6 -0
  89. package/dist/components/use-media-query.d.ts +5 -0
  90. package/dist/components/use-media-query.js +18 -0
  91. package/dist/css/chart-marks.d.ts +10 -0
  92. package/dist/css/chart-marks.js +15 -0
  93. package/dist/css/chart-tones.d.ts +68 -0
  94. package/dist/css/chart-tones.js +130 -0
  95. package/dist/css/chevron.d.ts +6 -0
  96. package/dist/css/chevron.js +14 -0
  97. package/dist/css/{css-chart.d.ts → css-bar-chart.d.ts} +2 -2
  98. package/dist/css/{css-chart.js → css-bar-chart.js} +2 -2
  99. package/dist/css/css-button-group-attached.js +8 -4
  100. package/dist/css/css-button-group-track.js +1 -1
  101. package/dist/css/css-chart-legend.d.ts +5 -0
  102. package/dist/css/css-chart-legend.js +102 -0
  103. package/dist/css/css-chart-plot.d.ts +2 -0
  104. package/dist/css/css-chart-plot.js +170 -0
  105. package/dist/css/css-checkbox.js +2 -2
  106. package/dist/css/css-components.js +23 -2
  107. package/dist/css/css-count-pill.d.ts +2 -0
  108. package/dist/css/css-count-pill.js +54 -0
  109. package/dist/css/css-data-bar.d.ts +4 -9
  110. package/dist/css/css-data-bar.js +15 -31
  111. package/dist/css/css-date-field.js +3 -2
  112. package/dist/css/css-date-range-presets.d.ts +2 -0
  113. package/dist/css/css-date-range-presets.js +109 -0
  114. package/dist/css/css-date-range.d.ts +2 -0
  115. package/dist/css/css-date-range.js +197 -0
  116. package/dist/css/css-line-chart.d.ts +2 -0
  117. package/dist/css/css-line-chart.js +31 -0
  118. package/dist/css/css-list-row.d.ts +2 -0
  119. package/dist/css/css-list-row.js +193 -0
  120. package/dist/css/css-list.d.ts +3 -0
  121. package/dist/css/css-list.js +85 -0
  122. package/dist/css/css-scroll-region.d.ts +18 -0
  123. package/dist/css/css-scroll-region.js +41 -0
  124. package/dist/css/css-section-nav-filled.js +2 -25
  125. package/dist/css/css-stat-tile.d.ts +7 -0
  126. package/dist/css/css-stat-tile.js +16 -0
  127. package/dist/css/css-steps.js +2 -2
  128. package/dist/css/css-table-bounded-edges.js +4 -27
  129. package/dist/css/range-band.d.ts +2 -0
  130. package/dist/css/range-band.js +7 -0
  131. package/dist/css/stacking.js +2 -2
  132. package/dist/css/stylesheet.js +16 -2
  133. package/dist/date-range-draft.d.ts +26 -0
  134. package/dist/date-range-draft.js +36 -0
  135. package/dist/date-range-input.d.ts +26 -0
  136. package/dist/date-range-input.js +58 -0
  137. package/dist/date-range-labels.d.ts +22 -0
  138. package/dist/date-range-labels.js +26 -0
  139. package/dist/date-range-view.d.ts +12 -0
  140. package/dist/date-range-view.js +29 -0
  141. package/dist/date-range-words.d.ts +11 -0
  142. package/dist/date-range-words.js +40 -0
  143. package/dist/index.d.ts +9 -1
  144. package/dist/index.js +9 -1
  145. package/dist/is-one-of.d.ts +5 -0
  146. package/dist/is-one-of.js +7 -0
  147. package/dist/line-chart-input.d.ts +39 -0
  148. package/dist/line-chart-input.js +70 -0
  149. package/dist/line-chart-layout.d.ts +68 -0
  150. package/dist/line-chart-layout.js +99 -0
  151. package/dist/line-chart-markers.d.ts +29 -0
  152. package/dist/line-chart-markers.js +57 -0
  153. package/dist/line-chart-path.d.ts +18 -0
  154. package/dist/line-chart-path.js +33 -0
  155. package/dist/line-chart-points.d.ts +6 -0
  156. package/dist/line-chart-points.js +8 -0
  157. package/dist/line-chart-table.d.ts +15 -0
  158. package/dist/line-chart-table.js +29 -0
  159. package/dist/list-options.d.ts +70 -0
  160. package/dist/list-options.js +77 -0
  161. package/dist/styles.css +726 -26
  162. package/package.json +1 -1
package/dist/styles.css CHANGED
@@ -970,21 +970,21 @@ body {
970
970
  border-radius: 0;
971
971
  }
972
972
 
973
- .sw-button-group.sw-button-group-attached > .sw-button + .sw-button {
973
+ .sw-button-group.sw-button-group-attached > .sw-button ~ .sw-button {
974
974
  margin-inline-start: -1px;
975
975
  }
976
976
 
977
- .sw-button-group.sw-button-group-attached > .sw-button:first-child {
977
+ .sw-button-group.sw-button-group-attached > .sw-button:first-of-type {
978
978
  border-end-start-radius: var(--sw-radius-sm);
979
979
  border-start-start-radius: var(--sw-radius-sm);
980
980
  }
981
981
 
982
- .sw-button-group.sw-button-group-attached > .sw-button:last-child {
982
+ .sw-button-group.sw-button-group-attached > .sw-button:last-of-type {
983
983
  border-end-end-radius: var(--sw-radius-sm);
984
984
  border-start-end-radius: var(--sw-radius-sm);
985
985
  }
986
986
 
987
- .sw-button-group.sw-button-group-attached > .sw-button + .sw-button:not(.sw-button-secondary) {
987
+ .sw-button-group.sw-button-group-attached > .sw-button ~ .sw-button:not(.sw-button-secondary) {
988
988
  border-inline-start-color: color-mix(in srgb, currentColor 30%, transparent);
989
989
  }
990
990
 
@@ -1014,7 +1014,7 @@ body {
1014
1014
  color: var(--sw-color-text);
1015
1015
  }
1016
1016
 
1017
- .sw-button-group.sw-button-group-attached.sw-button-group-track > .sw-button + .sw-button {
1017
+ .sw-button-group.sw-button-group-attached.sw-button-group-track > .sw-button ~ .sw-button {
1018
1018
  border-inline-start-color: var(--sw-color-border);
1019
1019
  }
1020
1020
 
@@ -1952,13 +1952,16 @@ body {
1952
1952
  }
1953
1953
 
1954
1954
  @media (forced-colors: active) {
1955
- .sw-table-bounded.sw-scroll-more-top > .sw-table-sticky > thead > tr:last-child > :is(th, td)::before,
1956
- .sw-table-bounded.sw-scroll-more-bottom > .sw-table > .sw-table-footer-sticky > tr:first-child > :is(th, td)::before { background: none; border-color: CanvasText; }
1957
1955
  .sw-table-bounded.sw-scroll-more-top:not(:has(> .sw-table > thead)),
1958
1956
  .sw-table-bounded.sw-scroll-more-bottom:not(:has(> .sw-table > .sw-table-footer-sticky)),
1959
1957
  .sw-table-bounded.sw-scroll-more-top.sw-scroll-more-bottom:not(:has(> .sw-table > thead)):not(:has(> .sw-table > .sw-table-footer-sticky)) { background-image: none; }
1960
1958
  }
1961
1959
 
1960
+ @media (forced-colors: active) {
1961
+ .sw-table-bounded.sw-scroll-more-top > .sw-table-sticky > thead > tr:last-child > :is(th, td)::before,
1962
+ .sw-table-bounded.sw-scroll-more-bottom > .sw-table > .sw-table-footer-sticky > tr:first-child > :is(th, td)::before { background: none; border-color: CanvasText; }
1963
+ }
1964
+
1962
1965
  .sw-table-bounded:focus-visible > .sw-table-sticky > thead > tr > :is(th, td),
1963
1966
  .sw-table-bounded:focus-visible > .sw-table > .sw-table-footer-sticky > tr > :is(th, td) {
1964
1967
  box-shadow: var(--sw-table-ring-block, 0 0 transparent), var(--sw-table-ring-start, 0 0 transparent), var(--sw-table-ring-end, 0 0 transparent);
@@ -2408,6 +2411,494 @@ body {
2408
2411
  width: var(--sw-space-4);
2409
2412
  }
2410
2413
 
2414
+ .sw-date-range-button {
2415
+ font-variant-numeric: tabular-nums;
2416
+ white-space: nowrap;
2417
+ }
2418
+
2419
+ .sw-date-range-button:not(.sw-button-md) .sw-date-field-glyph {
2420
+ height: var(--sw-space-4);
2421
+ width: var(--sw-space-4);
2422
+ }
2423
+
2424
+ @media (pointer: coarse) {
2425
+ .sw-button.sw-date-range-button,
2426
+ .sw-date-range-actions > .sw-button { min-height: var(--sw-control-md-min-height); }
2427
+ }
2428
+
2429
+ .sw-date-field-calendar.sw-date-range-popover {
2430
+ gap: 0;
2431
+ padding: 0;
2432
+ }
2433
+
2434
+ .sw-date-range-body {
2435
+ display: flex;
2436
+ flex-direction: column;
2437
+ }
2438
+
2439
+ @media (min-width: 64rem) {
2440
+ .sw-date-range-body { flex-direction: row; }
2441
+ }
2442
+
2443
+ .sw-date-range-footer {
2444
+ align-items: center;
2445
+ border-top: 1px solid var(--sw-color-border);
2446
+ contain: inline-size;
2447
+ display: flex;
2448
+ flex-wrap: wrap;
2449
+ gap: var(--sw-space-2) var(--sw-space-4);
2450
+ padding: var(--sw-space-3);
2451
+ }
2452
+
2453
+ .sw-date-range-summary {
2454
+ color: var(--sw-color-muted);
2455
+ flex: 1 1 auto;
2456
+ font-size: 13px;
2457
+ line-height: 18px;
2458
+ min-width: 0;
2459
+ }
2460
+
2461
+ .sw-date-range-status { display: inline; }
2462
+
2463
+ .sw-date-range-line {
2464
+ color: var(--sw-color-text);
2465
+ display: block;
2466
+ font-size: 15px;
2467
+ font-weight: 600;
2468
+ line-height: 20px;
2469
+ }
2470
+
2471
+ .sw-date-range-actions {
2472
+ display: flex;
2473
+ gap: var(--sw-space-2);
2474
+ margin-inline-start: auto;
2475
+ }
2476
+
2477
+ .sw-date-range-months {
2478
+ display: flex;
2479
+ gap: var(--sw-space-5);
2480
+ justify-content: center;
2481
+ padding: var(--sw-space-3);
2482
+ }
2483
+
2484
+ .sw-date-range-month {
2485
+ display: flex;
2486
+ flex-direction: column;
2487
+ gap: var(--sw-space-1);
2488
+ }
2489
+
2490
+ .sw-date-range-month-header {
2491
+ align-items: center;
2492
+ display: grid;
2493
+ grid-template-columns: var(--sw-control-md-min-height) 1fr var(--sw-control-md-min-height);
2494
+ min-height: var(--sw-control-md-min-height);
2495
+ }
2496
+
2497
+ .sw-date-range-month-title {
2498
+ font-size: 15px;
2499
+ font-weight: 600;
2500
+ grid-column: 2;
2501
+ line-height: 20px;
2502
+ text-align: center;
2503
+ }
2504
+
2505
+ .sw-date-range-months .sw-date-field-day-in-range[aria-selected='true']:not(.sw-date-field-day-range-start, .sw-date-field-day-range-end) {
2506
+ background: color-mix(in srgb, var(--sw-color-accent) 16%, transparent);
2507
+ border-color: transparent;
2508
+ border-radius: 0;
2509
+ color: var(--sw-color-text);
2510
+ font-weight: inherit;
2511
+ }
2512
+
2513
+ .sw-date-range-months .sw-date-field-day-in-range[aria-selected='true']:not(.sw-date-field-day-range-start, .sw-date-field-day-range-end):hover:not([aria-disabled='true']) { background: color-mix(in srgb, var(--sw-color-accent) 24%, transparent); }
2514
+
2515
+ .sw-date-range-months .sw-date-field-day-in-range[aria-selected='true']:not(.sw-date-field-day-range-start, .sw-date-field-day-range-end)[aria-current='date'] { border-color: var(--sw-color-accent); }
2516
+
2517
+ .sw-date-range-sheet .sw-date-range-months { padding: 0; }
2518
+
2519
+ .sw-date-range-sheet .sw-dialog-footer-actions {
2520
+ flex: 1 1 100%;
2521
+ margin-inline-start: 0;
2522
+ }
2523
+
2524
+ .sw-date-range-sheet-footer {
2525
+ display: flex;
2526
+ flex: 1 1 100%;
2527
+ flex-direction: column;
2528
+ gap: var(--sw-space-2);
2529
+ }
2530
+
2531
+ .sw-date-range-sheet-footer .sw-date-range-hint {
2532
+ color: var(--sw-color-muted);
2533
+ font-size: 13px;
2534
+ line-height: 18px;
2535
+ }
2536
+
2537
+ .sw-date-range-sheet-footer .sw-date-range-actions {
2538
+ display: grid;
2539
+ grid-template-columns: 1fr 2fr;
2540
+ margin-inline-start: 0;
2541
+ }
2542
+
2543
+ .sw-date-range-presets {
2544
+ contain: inline-size;
2545
+ display: flex;
2546
+ flex-wrap: wrap;
2547
+ gap: var(--sw-space-1);
2548
+ padding: var(--sw-space-3) var(--sw-space-3) 0;
2549
+ }
2550
+
2551
+ @media (min-width: 64rem) {
2552
+ .sw-date-range-presets:not(.sw-date-range-presets-row) {
2553
+ border-inline-end: 1px solid var(--sw-color-border);
2554
+ contain: none;
2555
+ flex-direction: column;
2556
+ flex-wrap: nowrap;
2557
+ padding: var(--sw-space-3) var(--sw-space-2);
2558
+ }
2559
+ }
2560
+
2561
+ .sw-date-range-preset {
2562
+ appearance: none;
2563
+ background: transparent;
2564
+ border: 1px solid transparent;
2565
+ border-radius: var(--sw-radius-sm);
2566
+ box-sizing: border-box;
2567
+ color: var(--sw-color-text);
2568
+ cursor: pointer;
2569
+ flex: none;
2570
+ font-family: var(--sw-font-sans);
2571
+ font-size: 15px;
2572
+ font-weight: 400;
2573
+ line-height: 20px;
2574
+ margin: 0;
2575
+ min-height: var(--sw-control-sm-min-height);
2576
+ padding: 0 var(--sw-control-sm-padding-inline);
2577
+ text-align: start;
2578
+ white-space: nowrap;
2579
+ }
2580
+
2581
+ .sw-date-range-preset:hover,
2582
+ .sw-date-range-preset[aria-pressed='true'] {
2583
+ background: color-mix(in srgb, var(--sw-color-muted) 16%, transparent);
2584
+ }
2585
+
2586
+ .sw-date-range-preset[aria-pressed='true'] {
2587
+ font-weight: 600;
2588
+ }
2589
+
2590
+ .sw-date-range-preset:focus { outline: none; }
2591
+
2592
+ .sw-date-range-preset:focus-visible {
2593
+ outline: var(--sw-focus-ring-width) solid var(--sw-color-accent);
2594
+ outline-offset: var(--sw-focus-ring-offset);
2595
+ }
2596
+
2597
+ .sw-date-range-presets-row {
2598
+ contain: none;
2599
+ flex-wrap: nowrap;
2600
+ gap: var(--sw-space-2);
2601
+ overflow-x: auto;
2602
+ padding: var(--sw-focus-ring-width) var(--sw-focus-ring-offset);
2603
+ }
2604
+
2605
+ .sw-date-range-presets-row .sw-date-range-preset {
2606
+ background: color-mix(in srgb, var(--sw-color-muted) 16%, transparent);
2607
+ border-radius: var(--sw-radius-pill);
2608
+ }
2609
+
2610
+ .sw-date-range-presets-row .sw-date-range-preset[aria-pressed='true'] {
2611
+ background: var(--sw-color-text);
2612
+ color: var(--sw-color-surface);
2613
+ }
2614
+
2615
+ @media (pointer: coarse) {
2616
+ .sw-date-range-preset { min-height: var(--sw-control-md-min-height); }
2617
+ }
2618
+
2619
+ @media (forced-colors: active) {
2620
+ .sw-date-range-presets { border-color: CanvasText; }
2621
+ .sw-date-range-presets-row .sw-date-range-preset { border-color: ButtonText; }
2622
+ .sw-date-range-preset[aria-pressed='true'],
2623
+ .sw-date-range-presets-row .sw-date-range-preset[aria-pressed='true'] {
2624
+ background: Highlight;
2625
+ color: HighlightText;
2626
+ forced-color-adjust: none;
2627
+ }
2628
+ }
2629
+
2630
+ @media (forced-colors: active) {
2631
+ .sw-date-range-footer { border-top-color: CanvasText; }
2632
+ .sw-date-range-months .sw-date-field-day-in-range[aria-selected='true']:not(.sw-date-field-day-range-start, .sw-date-field-day-range-end),
2633
+ .sw-date-range-months .sw-date-field-day-in-range[aria-selected='true']:not(.sw-date-field-day-range-start, .sw-date-field-day-range-end):hover:not([aria-disabled='true']) {
2634
+ background: Mark;
2635
+ color: MarkText;
2636
+ forced-color-adjust: none;
2637
+ }
2638
+ }
2639
+
2640
+ .sw-list {
2641
+ list-style: none;
2642
+ margin: 0;
2643
+ padding: 0;
2644
+ }
2645
+
2646
+ .sw-list > .sw-list-item + .sw-list-item,
2647
+ .sw-list-group-plain .sw-list > .sw-list-item:first-child,
2648
+ .sw-list-group-footer {
2649
+ border-top: 1px solid var(--sw-color-border);
2650
+ }
2651
+
2652
+ .sw-list-group-panel {
2653
+ background: var(--sw-color-surface);
2654
+ border: 1px solid var(--sw-color-border);
2655
+ border-radius: var(--sw-radius-md);
2656
+ overflow: clip;
2657
+ }
2658
+
2659
+ .sw-list-group-scroll {
2660
+ overflow: auto;
2661
+ position: relative;
2662
+ width: 100%;
2663
+ }
2664
+
2665
+ .sw-list-group-scroll:focus-visible {
2666
+ outline: var(--sw-focus-ring-width) solid var(--sw-color-accent);
2667
+ outline-offset: calc(-1 * var(--sw-focus-ring-width));
2668
+ }
2669
+
2670
+ .sw-list-group-scroll.sw-scroll-more-start { box-shadow: inset var(--sw-space-6) 0 var(--sw-space-5) calc(-1 * var(--sw-space-5)) color-mix(in srgb, var(--sw-color-text) 28%, transparent); }
2671
+ .sw-list-group-scroll.sw-scroll-more-end { box-shadow: inset calc(-1 * var(--sw-space-6)) 0 var(--sw-space-5) calc(-1 * var(--sw-space-5)) color-mix(in srgb, var(--sw-color-text) 28%, transparent); }
2672
+ .sw-list-group-scroll.sw-scroll-more-start:dir(rtl) { box-shadow: inset calc(-1 * var(--sw-space-6)) 0 var(--sw-space-5) calc(-1 * var(--sw-space-5)) color-mix(in srgb, var(--sw-color-text) 28%, transparent); }
2673
+ .sw-list-group-scroll.sw-scroll-more-end:dir(rtl) { box-shadow: inset var(--sw-space-6) 0 var(--sw-space-5) calc(-1 * var(--sw-space-5)) color-mix(in srgb, var(--sw-color-text) 28%, transparent); }
2674
+ .sw-list-group-scroll.sw-scroll-more-start.sw-scroll-more-end { box-shadow: inset var(--sw-space-6) 0 var(--sw-space-5) calc(-1 * var(--sw-space-5)) color-mix(in srgb, var(--sw-color-text) 28%, transparent), inset calc(-1 * var(--sw-space-6)) 0 var(--sw-space-5) calc(-1 * var(--sw-space-5)) color-mix(in srgb, var(--sw-color-text) 28%, transparent); }
2675
+
2676
+ .sw-list-group-scroll {
2677
+ max-height: calc(var(--sw-list-max-rows) * (2 * var(--sw-space-3) + 20px + 18px + 1px));
2678
+ }
2679
+
2680
+ .sw-list-group-scroll.sw-scroll-more-top,
2681
+ .sw-list-group-scroll.sw-scroll-more-bottom {
2682
+ background-repeat: no-repeat;
2683
+ background-size: 100% var(--sw-space-5);
2684
+ }
2685
+
2686
+ .sw-list-group-scroll.sw-scroll-more-top {
2687
+ background-image: linear-gradient(to bottom, color-mix(in srgb, var(--sw-color-text) 28%, transparent), transparent);
2688
+ background-position: top;
2689
+ }
2690
+
2691
+ .sw-list-group-scroll.sw-scroll-more-bottom {
2692
+ background-image: linear-gradient(to top, color-mix(in srgb, var(--sw-color-text) 28%, transparent), transparent);
2693
+ background-position: bottom;
2694
+ }
2695
+
2696
+ .sw-list-group-scroll.sw-scroll-more-top.sw-scroll-more-bottom {
2697
+ background-image: linear-gradient(to bottom, color-mix(in srgb, var(--sw-color-text) 28%, transparent), transparent), linear-gradient(to top, color-mix(in srgb, var(--sw-color-text) 28%, transparent), transparent);
2698
+ background-position: top, bottom;
2699
+ }
2700
+
2701
+ @media (forced-colors: active) {
2702
+ .sw-list-group-scroll.sw-scroll-more-top,
2703
+ .sw-list-group-scroll.sw-scroll-more-bottom,
2704
+ .sw-list-group-scroll.sw-scroll-more-top.sw-scroll-more-bottom { background-image: none; }
2705
+ }
2706
+
2707
+ @media (forced-colors: active) {
2708
+ .sw-list > .sw-list-item + .sw-list-item,
2709
+ .sw-list-group-plain .sw-list > .sw-list-item:first-child,
2710
+ .sw-list-group-footer,
2711
+ .sw-list-group-panel { border-color: CanvasText; }
2712
+ }
2713
+
2714
+ @media print {
2715
+ .sw-list-group-scroll { max-height: none; }
2716
+ }
2717
+
2718
+ .sw-list-row {
2719
+ align-items: flex-start;
2720
+ appearance: none;
2721
+ background: transparent;
2722
+ border: 0;
2723
+ box-sizing: border-box;
2724
+ color: var(--sw-color-text);
2725
+ display: flex;
2726
+ font-family: var(--sw-font-sans);
2727
+ font-size: 15px;
2728
+ gap: var(--sw-space-3);
2729
+ line-height: 20px;
2730
+ margin: 0;
2731
+ padding: var(--sw-space-3) var(--sw-space-4);
2732
+ text-align: start;
2733
+ text-decoration: none;
2734
+ width: 100%;
2735
+ }
2736
+
2737
+ .sw-list-group-plain .sw-list-row { padding-inline: 0; }
2738
+
2739
+ .sw-list-row-pressable { cursor: pointer; }
2740
+
2741
+ @media (hover: hover) {
2742
+ .sw-list-row-pressable:hover:not(.sw-list-row-disabled) { background: color-mix(in srgb, var(--sw-color-muted) 16%, transparent); }
2743
+ }
2744
+
2745
+ .sw-list-row-pressable:active:not(.sw-list-row-disabled) { background: color-mix(in srgb, var(--sw-color-muted) 16%, transparent); }
2746
+
2747
+ .sw-list-row-pressable:focus { outline: none; }
2748
+
2749
+ .sw-list-row-pressable:focus-visible {
2750
+ outline: var(--sw-focus-ring-width) solid var(--sw-color-accent);
2751
+ outline-offset: calc(-1 * var(--sw-focus-ring-width));
2752
+ }
2753
+
2754
+ /* A link row keeps the text colour and the inset ring over the canvas link rules. */
2755
+ [data-theme] a.sw-list-row,
2756
+ [data-theme] a.sw-list-row:hover {
2757
+ color: var(--sw-color-text);
2758
+ }
2759
+
2760
+ [data-theme] a.sw-list-row:focus-visible {
2761
+ outline-offset: calc(-1 * var(--sw-focus-ring-width));
2762
+ }
2763
+
2764
+ .sw-list-row-disabled {
2765
+ cursor: not-allowed;
2766
+ opacity: var(--sw-disabled-opacity);
2767
+ }
2768
+
2769
+ @media (pointer: coarse) {
2770
+ .sw-list-row-pressable { min-height: var(--sw-control-md-min-height); }
2771
+ }
2772
+
2773
+ /* Forced colours drop the fill, so a hovered row is outlined instead, as a pressable table row is. */
2774
+ @media (forced-colors: active) {
2775
+ .sw-list-row-pressable:hover:not(.sw-list-row-disabled) {
2776
+ outline: var(--sw-focus-ring-width) solid Highlight;
2777
+ outline-offset: calc(-1 * var(--sw-focus-ring-width));
2778
+ }
2779
+ }
2780
+
2781
+ .sw-list-row-leading {
2782
+ align-items: center;
2783
+ display: flex;
2784
+ flex: none;
2785
+ height: 20px;
2786
+ }
2787
+
2788
+ .sw-list-row-label,
2789
+ .sw-list-row-end {
2790
+ display: flex;
2791
+ flex-direction: column;
2792
+ min-width: 0;
2793
+ }
2794
+
2795
+ .sw-list-row-label { flex: 1 1 auto; }
2796
+
2797
+ .sw-list-row-end {
2798
+ align-items: flex-end;
2799
+ flex: none;
2800
+ max-width: 50%;
2801
+ text-align: end;
2802
+ }
2803
+
2804
+ .sw-list-row-title {
2805
+ font-weight: 600;
2806
+ overflow-wrap: anywhere;
2807
+ }
2808
+
2809
+ .sw-list-row-title-plain { font-weight: 400; }
2810
+
2811
+ .sw-list-row-title-danger { color: var(--sw-color-danger); }
2812
+
2813
+ .sw-list-row-detail,
2814
+ .sw-list-row-value-detail {
2815
+ color: var(--sw-color-muted);
2816
+ font-size: 13px;
2817
+ line-height: 18px;
2818
+ }
2819
+
2820
+ /* The label takes the wrap; the end keeps its words whole up to half the row. */
2821
+ .sw-list-row-detail { overflow-wrap: anywhere; }
2822
+
2823
+ .sw-list-row-value,
2824
+ .sw-list-row-value-detail { font-variant-numeric: tabular-nums; }
2825
+
2826
+ .sw-list-row-value { font-weight: 600; }
2827
+
2828
+ .sw-list-row-value-success { color: var(--sw-color-success); }
2829
+ .sw-list-row-value-danger { color: var(--sw-color-danger); }
2830
+ .sw-list-row-value-muted { color: var(--sw-color-muted); }
2831
+ .sw-list-row-value-accent { color: var(--sw-color-accent); }
2832
+
2833
+ .sw-list-row-chevron {
2834
+ border-bottom: 2px solid var(--sw-color-muted);
2835
+ border-right: 2px solid var(--sw-color-muted);
2836
+ box-sizing: border-box;
2837
+ height: var(--sw-space-2);
2838
+ width: var(--sw-space-2);
2839
+ flex: none;
2840
+ margin-block-start: calc((20px - var(--sw-space-2)) / 2);
2841
+ margin-inline-end: var(--sw-space-1);
2842
+ transform: rotate(-45deg);
2843
+ }
2844
+
2845
+ .sw-list-row-chevron:dir(rtl) { transform: rotate(135deg); }
2846
+
2847
+ .sw-list-row-check {
2848
+ border-bottom: 2px solid var(--sw-color-accent);
2849
+ border-right: 2px solid var(--sw-color-accent);
2850
+ box-sizing: border-box;
2851
+ flex: none;
2852
+ height: var(--sw-space-3);
2853
+ margin-block-start: calc((20px - var(--sw-space-3)) / 2);
2854
+ margin-inline-end: var(--sw-space-1);
2855
+ transform: rotate(45deg);
2856
+ width: var(--sw-space-2);
2857
+ }
2858
+
2859
+ @media (forced-colors: active) {
2860
+ .sw-list-row-check { border-color: CanvasText; }
2861
+ }
2862
+
2863
+ [data-theme] .sw-section-nav-count,
2864
+ [data-theme] .sw-nav-count {
2865
+ align-items: center;
2866
+ background: var(--sw-color-danger);
2867
+ border-radius: var(--sw-radius-pill);
2868
+ box-sizing: border-box;
2869
+ color: var(--sw-color-onDanger);
2870
+ display: inline-flex;
2871
+ font-size: 13px;
2872
+ font-variant-numeric: tabular-nums;
2873
+ font-weight: 700;
2874
+ justify-content: center;
2875
+ letter-spacing: -0.08px;
2876
+ line-height: 1;
2877
+ min-height: calc(var(--sw-space-5) - var(--sw-space-1));
2878
+ min-width: calc(var(--sw-space-5) - var(--sw-space-1));
2879
+ padding-inline: var(--sw-space-1);
2880
+ }
2881
+
2882
+ /*
2883
+ * A Nav link holding a count lays out as SectionNav's link does: the words
2884
+ * and the pill centred on one line a space-2 apart (the space text node
2885
+ * that keeps the name collapses), so the link is as tall as its siblings
2886
+ * and its words stay level with theirs. A Button already does this. At
2887
+ * zero specificity, so a link's `hideBelow` or `hideFrom` still hides it.
2888
+ * In forced colours a current link's underline runs under the pill's
2889
+ * figure too, as the pill is a flex item of the link.
2890
+ */
2891
+ :where(.sw-nav a:has(> .sw-nav-count)) {
2892
+ align-items: center;
2893
+ display: inline-flex;
2894
+ gap: var(--sw-space-2);
2895
+ }
2896
+
2897
+ @media (forced-colors: active) {
2898
+ [data-theme] .sw-section-nav-count,
2899
+ [data-theme] .sw-nav-count { border: 1px solid CanvasText; }
2900
+ }
2901
+
2411
2902
  .sw-bar-chart {
2412
2903
  display: grid;
2413
2904
  gap: var(--sw-space-2);
@@ -2550,6 +3041,7 @@ body {
2550
3041
  .sw-data-bar-muted > .sw-data-bar-fill { background: color-mix(in srgb, var(--sw-color-muted) 35%, var(--sw-color-surface)); }
2551
3042
  .sw-data-bar-strong > .sw-data-bar-fill { background: color-mix(in srgb, var(--sw-color-text) 85%, var(--sw-color-surface)); }
2552
3043
  .sw-data-bar-accent > .sw-data-bar-fill { background: var(--sw-color-accent); }
3044
+ .sw-data-bar-danger > .sw-data-bar-fill { background: color-mix(in srgb, var(--sw-color-danger) 40%, var(--sw-color-surface)); }
2553
3045
 
2554
3046
  .sw-data-bar-diverging::before {
2555
3047
  background: var(--sw-color-border);
@@ -2577,6 +3069,224 @@ body {
2577
3069
  .sw-data-bar-diverging::before { background: CanvasText; }
2578
3070
  }
2579
3071
 
3072
+ .sw-chart-tone-green { --sw-chart-fill: color-mix(in srgb, var(--sw-categorical-green) 72%, var(--sw-color-surface)); --sw-chart-ink: color-mix(in srgb, var(--sw-categorical-green) 30%, var(--sw-color-text)); }
3073
+ .sw-chart-tone-blue { --sw-chart-fill: color-mix(in srgb, var(--sw-categorical-blue) 72%, var(--sw-color-surface)); --sw-chart-ink: color-mix(in srgb, var(--sw-categorical-blue) 30%, var(--sw-color-text)); }
3074
+ .sw-chart-tone-orange { --sw-chart-fill: color-mix(in srgb, var(--sw-categorical-orange) 72%, var(--sw-color-surface)); --sw-chart-ink: color-mix(in srgb, var(--sw-categorical-orange) 30%, var(--sw-color-text)); }
3075
+ .sw-chart-tone-purple { --sw-chart-fill: color-mix(in srgb, var(--sw-categorical-purple) 72%, var(--sw-color-surface)); --sw-chart-ink: color-mix(in srgb, var(--sw-categorical-purple) 30%, var(--sw-color-text)); }
3076
+ .sw-chart-tone-teal { --sw-chart-fill: color-mix(in srgb, var(--sw-categorical-teal) 72%, var(--sw-color-surface)); --sw-chart-ink: color-mix(in srgb, var(--sw-categorical-teal) 30%, var(--sw-color-text)); }
3077
+ .sw-chart-tone-rose { --sw-chart-fill: color-mix(in srgb, var(--sw-categorical-rose) 72%, var(--sw-color-surface)); --sw-chart-ink: color-mix(in srgb, var(--sw-categorical-rose) 30%, var(--sw-color-text)); }
3078
+ .sw-chart-tone-neutral { --sw-chart-fill: color-mix(in srgb, var(--sw-color-muted) 65%, var(--sw-color-surface)); --sw-chart-stroke: var(--sw-color-muted); --sw-chart-ink: var(--sw-color-muted); }
3079
+ .sw-chart-tone-success { --sw-chart-fill: color-mix(in srgb, var(--sw-color-success) 55%, var(--sw-color-surface)); --sw-chart-stroke: var(--sw-color-success); --sw-chart-ink: color-mix(in srgb, var(--sw-color-success) 50%, var(--sw-color-text)); }
3080
+ .sw-chart-tone-muted { --sw-chart-fill: color-mix(in srgb, var(--sw-color-muted) 35%, var(--sw-color-surface)); }
3081
+ .sw-chart-tone-strong { --sw-chart-fill: color-mix(in srgb, var(--sw-color-text) 85%, var(--sw-color-surface)); }
3082
+ .sw-chart-tone-accent { --sw-chart-fill: var(--sw-color-accent); --sw-chart-stroke: var(--sw-color-accent); --sw-chart-ink: color-mix(in srgb, var(--sw-color-accent) 50%, var(--sw-color-text)); }
3083
+ .sw-chart-tone-danger { --sw-chart-fill: color-mix(in srgb, var(--sw-color-danger) 40%, var(--sw-color-surface)); --sw-chart-stroke: var(--sw-color-danger); --sw-chart-ink: color-mix(in srgb, var(--sw-color-danger) 50%, var(--sw-color-text)); }
3084
+ .sw-chart-tone-warning { --sw-chart-stroke: var(--sw-color-warning); --sw-chart-ink: color-mix(in srgb, var(--sw-color-warning) 50%, var(--sw-color-text)); }
3085
+
3086
+ .sw-chart-legend {
3087
+ color: var(--sw-color-text);
3088
+ column-gap: var(--sw-space-5);
3089
+ display: flex;
3090
+ flex-wrap: wrap;
3091
+ font-family: var(--sw-font-sans);
3092
+ font-size: 13px;
3093
+ font-weight: 400;
3094
+ letter-spacing: -0.08px;
3095
+ line-height: 18px;
3096
+ list-style: none;
3097
+ margin: 0;
3098
+ padding: 0;
3099
+ row-gap: var(--sw-space-2);
3100
+ }
3101
+
3102
+ .sw-chart-legend-item {
3103
+ align-items: flex-start;
3104
+ display: inline-flex;
3105
+ gap: var(--sw-space-2);
3106
+ min-width: 0;
3107
+ }
3108
+
3109
+ .sw-chart-legend-swatch {
3110
+ display: block;
3111
+ flex: none;
3112
+ /* Centred on the first line of the words, however many lines they wrap to. */
3113
+ margin-block-start: calc((18px - var(--sw-space-3)) / 2);
3114
+ }
3115
+
3116
+ .sw-chart-legend-line {
3117
+ margin-block-start: calc((18px - 2px) / 2);
3118
+ }
3119
+
3120
+ .sw-chart-legend-bar {
3121
+ background: var(--sw-chart-fill);
3122
+ border-radius: calc(var(--sw-radius-sm) / 4);
3123
+ height: var(--sw-space-3);
3124
+ width: var(--sw-space-3);
3125
+ }
3126
+
3127
+ .sw-chart-legend-line {
3128
+ background: var(--sw-chart-stroke);
3129
+ border-radius: var(--sw-radius-pill);
3130
+ height: 2px;
3131
+ width: var(--sw-space-4);
3132
+ }
3133
+
3134
+ .sw-chart-legend-marker {
3135
+ background: var(--sw-chart-stroke);
3136
+ clip-path: polygon(0 0, 100% 0, 50% 100%);
3137
+ height: var(--sw-space-3);
3138
+ width: var(--sw-space-3);
3139
+ }
3140
+
3141
+ .sw-chart-legend-box {
3142
+ border: 1px dashed var(--sw-chart-stroke);
3143
+ border-radius: calc(var(--sw-radius-sm) / 2);
3144
+ box-sizing: border-box;
3145
+ height: var(--sw-space-3);
3146
+ width: var(--sw-space-4);
3147
+ }
3148
+
3149
+ @media (forced-colors: active) {
3150
+ .sw-chart-legend-bar,
3151
+ .sw-chart-legend-line,
3152
+ .sw-chart-legend-marker { background: CanvasText; }
3153
+ .sw-chart-legend-box { border-color: CanvasText; }
3154
+ }
3155
+
3156
+ .sw-chart {
3157
+ display: grid;
3158
+ gap: var(--sw-space-2);
3159
+ min-width: 0;
3160
+ }
3161
+
3162
+ .sw-chart-svg {
3163
+ display: block;
3164
+ font-family: var(--sw-font-sans);
3165
+ font-size: 13px;
3166
+ height: auto;
3167
+ letter-spacing: -0.08px;
3168
+ max-width: 100%;
3169
+ overflow: visible;
3170
+ width: 100%;
3171
+ }
3172
+
3173
+ .sw-chart-tick,
3174
+ .sw-chart-category {
3175
+ fill: var(--sw-color-muted);
3176
+ font-variant-numeric: tabular-nums;
3177
+ }
3178
+
3179
+ .sw-chart-tick-line { fill: var(--sw-chart-ink); }
3180
+
3181
+ .sw-chart-grid {
3182
+ stroke: var(--sw-color-border);
3183
+ stroke-width: 1;
3184
+ }
3185
+
3186
+ .sw-chart-zero {
3187
+ stroke: var(--sw-color-muted);
3188
+ stroke-width: 1;
3189
+ }
3190
+
3191
+ .sw-chart-highlight {
3192
+ fill: none;
3193
+ stroke: var(--sw-chart-stroke);
3194
+ stroke-dasharray: 3 3;
3195
+ stroke-width: 1;
3196
+ }
3197
+
3198
+ .sw-chart-line {
3199
+ fill: none;
3200
+ stroke: var(--sw-chart-stroke);
3201
+ stroke-linecap: round;
3202
+ stroke-linejoin: round;
3203
+ stroke-width: 2;
3204
+ }
3205
+
3206
+ .sw-chart-dot { fill: var(--sw-chart-stroke); }
3207
+
3208
+ .sw-chart-end-label {
3209
+ fill: var(--sw-chart-ink);
3210
+ font-variant-numeric: tabular-nums;
3211
+ font-weight: 600;
3212
+ }
3213
+
3214
+ .sw-chart-leader {
3215
+ stroke: var(--sw-chart-ink, var(--sw-color-text));
3216
+ stroke-dasharray: 2 2;
3217
+ stroke-width: 1;
3218
+ }
3219
+
3220
+ .sw-chart-callout-text {
3221
+ fill: var(--sw-chart-ink, var(--sw-color-text));
3222
+ font-weight: 600;
3223
+ }
3224
+
3225
+ .sw-chart-column { fill: var(--sw-chart-fill); }
3226
+
3227
+ .sw-chart-callouts {
3228
+ display: grid;
3229
+ font-family: var(--sw-font-sans);
3230
+ font-size: 13px;
3231
+ gap: var(--sw-space-1);
3232
+ letter-spacing: -0.08px;
3233
+ line-height: 18px;
3234
+ list-style: none;
3235
+ margin: 0;
3236
+ padding: 0;
3237
+ }
3238
+
3239
+ .sw-chart-callout {
3240
+ align-items: flex-start;
3241
+ color: var(--sw-chart-ink, var(--sw-color-text));
3242
+ display: flex;
3243
+ font-weight: 600;
3244
+ gap: var(--sw-space-2);
3245
+ }
3246
+
3247
+ .sw-chart-callout-dot {
3248
+ background: var(--sw-chart-fill, currentColor);
3249
+ border-radius: var(--sw-radius-pill);
3250
+ flex: none;
3251
+ height: var(--sw-space-2);
3252
+ margin-block-start: calc((18px - var(--sw-space-2)) / 2);
3253
+ width: var(--sw-space-2);
3254
+ }
3255
+
3256
+ @media (forced-colors: active) {
3257
+ .sw-chart-column { fill: CanvasText; stroke: Canvas; }
3258
+ .sw-chart-grid { stroke: GrayText; }
3259
+ .sw-chart-zero,
3260
+ .sw-chart-highlight,
3261
+ .sw-chart-leader { stroke: CanvasText; }
3262
+ .sw-chart-line { stroke: Highlight; }
3263
+ .sw-chart-dot,
3264
+ .sw-chart-end-label { fill: Highlight; }
3265
+ .sw-chart-tick,
3266
+ .sw-chart-category,
3267
+ .sw-chart-callout-text { fill: CanvasText; }
3268
+ .sw-chart-callout { color: CanvasText; }
3269
+ .sw-chart-callout-dot { background: CanvasText; }
3270
+ }
3271
+
3272
+ .sw-chart-area {
3273
+ fill: color-mix(in srgb, var(--sw-chart-stroke) 12%, transparent);
3274
+ }
3275
+
3276
+ .sw-chart-marker { fill: var(--sw-chart-stroke); }
3277
+
3278
+ .sw-chart-marker-label {
3279
+ fill: var(--sw-chart-ink);
3280
+ font-variant-numeric: tabular-nums;
3281
+ font-weight: 600;
3282
+ }
3283
+
3284
+ @media (forced-colors: active) {
3285
+ .sw-chart-area { fill: none; }
3286
+ .sw-chart-marker,
3287
+ .sw-chart-marker-label { fill: CanvasText; }
3288
+ }
3289
+
2580
3290
  .sw-pagination {
2581
3291
  align-items: center;
2582
3292
  display: flex;
@@ -2822,31 +3532,12 @@ body {
2822
3532
  font-weight: 600;
2823
3533
  }
2824
3534
 
2825
- [data-theme] .sw-section-nav-count {
2826
- align-items: center;
2827
- background: var(--sw-color-danger);
2828
- border-radius: var(--sw-radius-pill);
2829
- box-sizing: border-box;
2830
- color: var(--sw-color-onDanger);
2831
- display: inline-flex;
2832
- font-size: 13px;
2833
- font-variant-numeric: tabular-nums;
2834
- font-weight: 700;
2835
- justify-content: center;
2836
- letter-spacing: -0.08px;
2837
- line-height: 1;
2838
- min-height: calc(var(--sw-space-5) - var(--sw-space-1));
2839
- min-width: calc(var(--sw-space-5) - var(--sw-space-1));
2840
- padding-inline: var(--sw-space-1);
2841
- }
2842
-
2843
3535
  @media (pointer: coarse) {
2844
3536
  [data-theme] .sw-section-nav.sw-section-nav-filled .sw-section-nav-link { min-height: var(--sw-control-md-min-height); }
2845
3537
  }
2846
3538
 
2847
3539
  @media (forced-colors: active) {
2848
3540
  [data-theme] .sw-section-nav.sw-section-nav-filled .sw-section-nav-link[aria-current] { border-color: Highlight; }
2849
- [data-theme] .sw-section-nav-count { border: 1px solid CanvasText; }
2850
3541
  }
2851
3542
 
2852
3543
  @media (pointer: coarse) {
@@ -4328,6 +5019,15 @@ body {
4328
5019
  overflow-wrap: anywhere;
4329
5020
  }
4330
5021
 
5022
+ /* A plain tile is its figure alone, top-aligned, inside the card around it. */
5023
+ .sw-stat-tile-plain {
5024
+ align-items: flex-start;
5025
+ background: transparent;
5026
+ border: 0;
5027
+ border-radius: 0;
5028
+ padding: 0;
5029
+ }
5030
+
4331
5031
  .sw-stat-tile-primary {
4332
5032
  background: var(--sw-color-accent);
4333
5033
  border-color: transparent;