@scattered-light/loomiere-mojave 0.15.6 → 0.16.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.
@@ -1456,12 +1456,9 @@
1456
1456
  --sl-focus-outline-offset: var(--sl-a11y-focus-outline-offset); /** Outside ring: a gap between the control and the ring so it never blends into the control border. The default. */
1457
1457
  --sl-focus-outline-offset-inset: calc(-1 * var(--sl-a11y-focus-outline-width)); /** Inset ring: drawn just inside the control's edge, for controls packed into a container (menus, tab lists, steppers) where an outside ring would be clipped or overlap a neighbor. */
1458
1458
  --sl-focus-halo-spread: calc(var(--sl-a11y-focus-outline-offset) + var(--sl-a11y-focus-outline-width) + 2px); /** A soft glow just outside the focus ring: the gap, the ring, then 2px of tint. The ring carries the contrast (WCAG 1.4.11), so the glow can stay pale. */
1459
- --sl-bar-padding: var(--sl-space-1); /** Space between the strip's edge and its controls, small so the controls nearly fill it. */
1460
1459
  --sl-bar-gap: var(--sl-space-1); /** Space between controls in one group. */
1461
- --sl-bar-group-gap: var(--sl-space-2); /** Space between groups in a toolbar, wider than inside a group. */
1462
1460
  --sl-bar-separator-length: var(--sl-space-6); /** Divider height, shorter than the controls so the groups still read as one strip. */
1463
1461
  --sl-bar-separator-spacing: var(--sl-space-1); /** Extra space either side of a divider. */
1464
- --sl-calendar-day-size: var(--sl-space-10); /** A day cell on a pointer. space.10 keeps seven columns inside a phone; touch layouts raise the cell to the minimum touch target in CSS. */
1465
1462
  --sl-calendar-grid-gap: var(--sl-space-0-5); /** Space between week rows. Days in a week share an edge, so the range band reads as one shape. */
1466
1463
  --sl-calendar-month-gap: var(--sl-space-4); /** Space between months shown side by side, the same step as panel padding so the two columns line up. */
1467
1464
  --sl-calendar-header-gap: var(--sl-space-2); /** Space between the month title and the weekday row. */
@@ -1916,6 +1913,10 @@
1916
1913
  --sl-slider-thumb-size: var(--sl-space-5); /** Knob diameter, big enough to grab with a finger on a 4px track. */
1917
1914
  --sl-splitter-handle-hit-size: var(--sl-a11y-min-touch-target); /** The part a finger grabs. The line stays one stroke. A fine pointer uses a11y.min-target (24px) instead, so the grab area does not cover the panel's scrollbar. Coarse pointers keep this 44px. */
1918
1915
  --sl-splitter-grip-size: var(--sl-space-1); /** 4px. The diameter of one grip dot. Small enough to sit on the hairline without becoming a second control. */
1916
+ --sl-stat-card-rule-width: var(--sl-stroke-medium); /** The rule across the top of the card, as on a sheet. */
1917
+ --sl-stat-card-header-padding-block: var(--sl-space-3); /** Space above and below the name and caption. */
1918
+ --sl-stat-card-padding-inline: var(--sl-space-4); /** Space either side of the name, the figures and the footer. */
1919
+ --sl-stat-card-facts-padding-block: var(--sl-space-2-5); /** Space above and below each figure. */
1919
1920
  --sl-stat-figure-figure-font-size: var(--sl-font-size-4xl); /** Size of the figure. Large enough to lead the page, a step under the page title. */
1920
1921
  --sl-stat-figure-figure-font-size-sm: var(--sl-font-size-2xl); /** Size of the figure at size="sm", for a row of figures in a card or a sheet header. */
1921
1922
  --sl-stat-figure-figure-line-height: var(--sl-line-height-4xl); /** Line height paired with figure-font-size. */
@@ -1954,8 +1955,8 @@
1954
1955
  --sl-color-chrome-on-1100: var(--sl-color-neutral-on-1100);
1955
1956
  --sl-color-chrome-on-1200: var(--sl-color-neutral-on-1200);
1956
1957
  --sl-a11y-focus-ring-radius: var(--sl-radius-focus); /** Rounds the focus ring to match the small control radius. */
1958
+ --sl-bar-border-width: var(--sl-stroke-default); /** Strip edge thickness. */
1957
1959
  --sl-bar-radius: var(--sl-radius-surface); /** Strip corners. Controls inside a toggle group take radius.item, so the inner corners follow the outer ones. */
1958
- --sl-calendar-day-radius: var(--sl-radius-pill); /** Selected days are circles. The pill radius is the same full radius badges and switches use. */
1959
1960
  --sl-check-border-width: var(--sl-stroke-default); /** Edge thickness. */
1960
1961
  --sl-check-radius: var(--sl-radius-box); /** Checkbox corners. Radios are always round. */
1961
1962
  --sl-check-transition: var(--sl-transition-input); /** Changes at the same speed as a field. */
@@ -2188,8 +2189,9 @@
2188
2189
  --sl-side-nav-item-height: var(--sl-control-height-md); /** Least height of a row: the regular control height, so a row is as tall as a button. */
2189
2190
  --sl-side-nav-toggle-radius: var(--sl-radius-control); /** The collapse handle's corners. */
2190
2191
  --sl-splitter-handle-size: var(--sl-stroke-default); /** The visible separator. One stroke, the same hairline as Separator, so a splitter reads as a divider you can grab. */
2192
+ --sl-stat-card-border-width: var(--sl-stroke-default); /** Thickness of the sides and bottom. */
2193
+ --sl-stat-card-radius: var(--sl-radius-surface); /** Corners, like any card or panel. */
2191
2194
  --sl-focus-shadow-3px-error: 0 0 0 3px var(--sl-status-error); /** Focus halo for a field with an error. */
2192
- --sl-calendar-day-color: var(--sl-text-primary); /** A day in the month being shown. */
2193
2195
  --sl-border-accent: var(--sl-scope-accent-border); /** Borders that signal selection or the active item. */
2194
2196
  --sl-border-default: var(--sl-scope-chrome-divider); /** Everyday dividers and control outlines. Darkens under prefers-contrast: more. */
2195
2197
  --sl-border-strong: var(--sl-scope-chrome-border-strong); /** Borders that identify a control, such as inputs and unchecked checkboxes. 3:1 against the canvas, as WCAG asks for control boundaries. */
@@ -2204,6 +2206,13 @@
2204
2206
  --sl-interactive-tint-hover: var(--sl-scope-accent-soft-hover); /** Accent wash for a highlighted menu item or a pressed toggle. */
2205
2207
  --sl-interactive-tint-active: var(--sl-scope-accent-soft-active); /** Accent wash for a selected or pressed item: one step past tint-hover. */
2206
2208
  --sl-interactive-tint-strong: var(--sl-scope-accent-soft-strong); /** Strongest accent wash, for hovering an item that is already pressed. */
2209
+ --sl-focus-ring: var(--sl-interactive-default); /** Focus ring color. Uses the interactive accent so focus reads as "this is the thing you can act on". */
2210
+ --sl-focus-outline: var(--sl-a11y-focus-outline-width) solid var(--sl-focus-ring); /** The one keyboard focus ring. Every control uses it, outside or inset. */
2211
+ --sl-bar-padding: var(--sl-space-1); /** Space between the strip's edge and its controls, small so the controls nearly fill it. */
2212
+ --sl-bar-group-gap: var(--sl-space-2); /** Space between groups in a toolbar, wider than inside a group. */
2213
+ --sl-calendar-day-size: var(--sl-space-10); /** A day cell on a pointer. space.10 keeps seven columns inside a phone; touch layouts raise the cell to the minimum touch target in CSS. */
2214
+ --sl-calendar-day-radius: var(--sl-radius-pill); /** Selected days are circles. The pill radius is the same full radius badges and switches use. */
2215
+ --sl-calendar-day-color: var(--sl-text-primary); /** A day in the month being shown. */
2207
2216
  --sl-surface-canvas: var(--sl-scope-chrome-canvas); /** The page itself. Paper in light mode, the darkest neutral in dark mode. */
2208
2217
  --sl-surface-overlay: var(--sl-scope-chrome-overlay); /** Popups, menus and code blocks that sit above raised surfaces. */
2209
2218
  --sl-surface-raised: var(--sl-scope-chrome-raised); /** Cards and panels one level above the canvas. */
@@ -2225,9 +2234,6 @@
2225
2234
  --sl-content-prose-color: var(--sl-text-primary); /** Long-form body text. The same as body text, so prose and UI read as one voice. */
2226
2235
  --sl-content-selection-text: var(--sl-text-primary); /** Selected text stays body text so it reads the same on the tint. */
2227
2236
  --sl-field-border-color-error: var(--sl-status-error); /** Field edge when the value is invalid. */
2228
- --sl-focus-ring: var(--sl-interactive-default); /** Focus ring color. Uses the interactive accent so focus reads as "this is the thing you can act on". */
2229
- --sl-focus-outline: var(--sl-a11y-focus-outline-width) solid var(--sl-focus-ring); /** The one keyboard focus ring. Every control uses it, outside or inset. */
2230
- --sl-bar-border-width: var(--sl-stroke-default); /** Strip edge thickness. */
2231
2237
  --sl-field-color: var(--sl-text-primary); /** The value you typed. */
2232
2238
  --sl-gauge-label-color: var(--sl-text-primary); /** What is being measured. */
2233
2239
  --sl-icon-button-color-hover: var(--sl-text-primary); /** Darkens on hover to confirm it's the target. */
@@ -2399,6 +2405,12 @@
2399
2405
  --sl-side-nav-count-color-quiet: var(--sl-text-secondary); /** A count that is only information (tone="quiet"), such as a total. */
2400
2406
  --sl-side-nav-group-label-color: var(--sl-text-secondary); /** A group heading's caps label. */
2401
2407
  --sl-side-nav-toggle-background: var(--sl-surface-raised); /** The collapse handle's fill. */
2408
+ --sl-stat-card-background: var(--sl-surface-raised); /** The card's fill: the raised surface, like a sheet. */
2409
+ --sl-stat-card-background-hover: var(--sl-fill-subtle); /** The fill under the pointer on a card that opens something. */
2410
+ --sl-stat-card-border-color: var(--sl-border-default); /** The card's sides and bottom. */
2411
+ --sl-stat-card-facts-divider-color: var(--sl-border-subtle); /** The hairline between figures. */
2412
+ --sl-stat-card-caption-color: var(--sl-text-secondary); /** The caption under the name. */
2413
+ --sl-stat-card-footer-border-color: var(--sl-border-subtle); /** The hairline above the footer. */
2402
2414
  --sl-stat-figure-figure-color-accent: var(--sl-text-accent); /** The figure's color at tone="accent", for a figure that asks for action (open questions, items to review). */
2403
2415
  --sl-stat-figure-label-color: var(--sl-text-secondary); /** The caps label above the figure. */
2404
2416
  --sl-stat-figure-caption-color: var(--sl-text-secondary); /** The caption under the figure. */
@@ -2427,6 +2439,7 @@
2427
2439
  --sl-sheet-rule-color: var(--sl-rule-color); /** The top rule's color: the working-paper rule color, so sheets and ruled tables match. */
2428
2440
  --sl-sheet-tab-color: var(--sl-text-on-inverse-surface); /** Text on the tab label. */
2429
2441
  --sl-side-nav-indicator-color: var(--sl-rule-color); /** The current row's line: the working-paper rule color, so the nav and the sheets share one ink. */
2442
+ --sl-stat-card-rule-color: var(--sl-rule-color); /** The top rule's color, and the rule above the figures. */
2430
2443
  --sl-stat-figure-underline-color: var(--sl-rule-color); /** The double underline's color: the working-paper rule color, like a grand total's double rule. */
2431
2444
  --sl-toggle-group-segmented-border-color: var(--sl-rule-color); /** The outline around a segmented group and the line between its toggles. The rule color, so it is a control edge by default and ink with an ink rule. */
2432
2445
  --sl-toggle-group-segmented-pressed-color: var(--sl-text-on-inverse); /** Text on the pressed toggle. */
@@ -5952,6 +5965,13 @@
5952
5965
  --sl-side-nav-group-label-color: var(--sl-text-secondary);
5953
5966
  --sl-side-nav-toggle-background: var(--sl-surface-raised);
5954
5967
  --sl-side-nav-toggle-border-color: var(--sl-text-primary);
5968
+ --sl-stat-card-background: var(--sl-surface-raised);
5969
+ --sl-stat-card-background-hover: var(--sl-fill-subtle);
5970
+ --sl-stat-card-border-color: var(--sl-border-default);
5971
+ --sl-stat-card-rule-color: var(--sl-rule-color);
5972
+ --sl-stat-card-facts-divider-color: var(--sl-border-subtle);
5973
+ --sl-stat-card-caption-color: var(--sl-text-secondary);
5974
+ --sl-stat-card-footer-border-color: var(--sl-border-subtle);
5955
5975
  --sl-stat-figure-figure-color: var(--sl-text-primary);
5956
5976
  --sl-stat-figure-figure-color-accent: var(--sl-text-accent);
5957
5977
  --sl-stat-figure-underline-color: var(--sl-rule-color);
@@ -6142,6 +6162,13 @@
6142
6162
  --sl-side-nav-group-label-color: var(--sl-text-secondary);
6143
6163
  --sl-side-nav-toggle-background: var(--sl-surface-raised);
6144
6164
  --sl-side-nav-toggle-border-color: var(--sl-text-primary);
6165
+ --sl-stat-card-background: var(--sl-surface-raised);
6166
+ --sl-stat-card-background-hover: var(--sl-fill-subtle);
6167
+ --sl-stat-card-border-color: var(--sl-border-default);
6168
+ --sl-stat-card-rule-color: var(--sl-rule-color);
6169
+ --sl-stat-card-facts-divider-color: var(--sl-border-subtle);
6170
+ --sl-stat-card-caption-color: var(--sl-text-secondary);
6171
+ --sl-stat-card-footer-border-color: var(--sl-border-subtle);
6145
6172
  --sl-stat-figure-figure-color: var(--sl-text-primary);
6146
6173
  --sl-stat-figure-figure-color-accent: var(--sl-text-accent);
6147
6174
  --sl-stat-figure-underline-color: var(--sl-rule-color);
@@ -6332,6 +6359,13 @@
6332
6359
  --sl-side-nav-group-label-color: var(--sl-text-secondary);
6333
6360
  --sl-side-nav-toggle-background: var(--sl-surface-raised);
6334
6361
  --sl-side-nav-toggle-border-color: var(--sl-text-primary);
6362
+ --sl-stat-card-background: var(--sl-surface-raised);
6363
+ --sl-stat-card-background-hover: var(--sl-fill-subtle);
6364
+ --sl-stat-card-border-color: var(--sl-border-default);
6365
+ --sl-stat-card-rule-color: var(--sl-rule-color);
6366
+ --sl-stat-card-facts-divider-color: var(--sl-border-subtle);
6367
+ --sl-stat-card-caption-color: var(--sl-text-secondary);
6368
+ --sl-stat-card-footer-border-color: var(--sl-border-subtle);
6335
6369
  --sl-stat-figure-figure-color: var(--sl-text-primary);
6336
6370
  --sl-stat-figure-figure-color-accent: var(--sl-text-accent);
6337
6371
  --sl-stat-figure-underline-color: var(--sl-rule-color);
@@ -6697,7 +6731,7 @@
6697
6731
  }
6698
6732
 
6699
6733
 
6700
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
6734
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
6701
6735
  /* Loomiere for Base UI: component styles. Brand-free: every value is a --sl- variable from a
6702
6736
  Loomiere theme. Load the theme first:
6703
6737
  @import '<your theme>/tokens.css';
@@ -6707,7 +6741,7 @@
6707
6741
  /* Document defaults, in the reset layer so any unlayered rule wins over them, and so layered
6708
6742
  frameworks (Chakra's recipes, Tailwind's utilities) are not undone by them. */
6709
6743
  @layer reset {
6710
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
6744
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
6711
6745
  /* CSS Reset - Mojave Theme */
6712
6746
 
6713
6747
  /* ============================================
@@ -7151,7 +7185,7 @@ hr {
7151
7185
  }
7152
7186
  }
7153
7187
  @layer reset {
7154
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
7188
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
7155
7189
  /* Accessibility — base rules (no theme color dependencies). Theme-specific focus/invalid: accessibility-theme.css */
7156
7190
 
7157
7191
  /* Remove default focus; keyboard focus styled in accessibility-theme.css */
@@ -7264,7 +7298,7 @@ main:focus {
7264
7298
 
7265
7299
  }
7266
7300
  @layer reset {
7267
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
7301
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
7268
7302
  /* Focus, invalid, contrast — requires theme tokens (after theme-accessibility.css). */
7269
7303
 
7270
7304
  :focus-visible {
@@ -7332,7 +7366,7 @@ button,
7332
7366
 
7333
7367
  }
7334
7368
  /* Component styles */
7335
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
7369
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
7336
7370
  /* Accordion - Mojave Theme
7337
7371
  *
7338
7372
  * No component tokens. Hover, press, chevron, divider and motion are the disclosure
@@ -7453,7 +7487,7 @@ button,
7453
7487
  overflow: hidden;
7454
7488
  }
7455
7489
 
7456
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
7490
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
7457
7491
  /* Alert Dialog - Mojave Theme
7458
7492
  *
7459
7493
  * No component tokens and no rules of its own. An alert dialog looks exactly like a
@@ -7462,7 +7496,7 @@ button,
7462
7496
  * cancel quiet, and a destructive one bold with data-color="error".
7463
7497
  */
7464
7498
 
7465
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
7499
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
7466
7500
  /* Autocomplete - Mojave Theme
7467
7501
  *
7468
7502
  * No component tokens. The input is Input (Input.css), the clear button is an icon
@@ -7664,7 +7698,7 @@ button,
7664
7698
  (reset-accessibility.css).
7665
7699
  ============================================ */
7666
7700
 
7667
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
7701
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
7668
7702
  /* Avatar - Mojave Theme
7669
7703
  *
7670
7704
  * A round picture with a ring in the page color, so avatars in a group cut out of each other in
@@ -7772,7 +7806,7 @@ button,
7772
7806
  }
7773
7807
  }
7774
7808
 
7775
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
7809
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
7776
7810
  /* Button - Mojave Theme
7777
7811
  *
7778
7812
  * Colors are the brand's emphasis levels, sizes are control.*, text is the trigger
@@ -7922,7 +7956,7 @@ button,
7922
7956
  font-size: var(--sl-icon-size-maximize);
7923
7957
  }
7924
7958
 
7925
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
7959
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
7926
7960
  /* Checkbox - Mojave Theme
7927
7961
  * Sizes follow the label: the box is the icon size one tier above the label's text
7928
7962
  * tier (like a button's icon) and the check mark one tier below it.
@@ -8079,7 +8113,7 @@ button,
8079
8113
  border-radius: var(--sl-radius-pill);
8080
8114
  }
8081
8115
 
8082
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
8116
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
8083
8117
  /* Checkbox Group - Mojave Theme */
8084
8118
 
8085
8119
  /* Each checkbox row is already a full tap target tall, so the rows sit close. */
@@ -8095,7 +8129,7 @@ button,
8095
8129
  pointer-events: none;
8096
8130
  }
8097
8131
 
8098
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
8132
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
8099
8133
  /* Collapsible - Mojave Theme
8100
8134
  *
8101
8135
  * No component tokens. Hover, press, chevron and motion are the disclosure concept
@@ -8211,7 +8245,7 @@ button,
8211
8245
  background: var(--sl-surface-raised);
8212
8246
  }
8213
8247
 
8214
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
8248
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
8215
8249
  /* Combobox - Mojave Theme
8216
8250
  *
8217
8251
  * No component tokens. The input is Input (Input.css); the chips box is a field; the
@@ -8696,7 +8730,7 @@ button,
8696
8730
  color: var(--sl-text-tertiary);
8697
8731
  }
8698
8732
 
8699
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
8733
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
8700
8734
  /* Context Menu - Mojave Theme
8701
8735
  *
8702
8736
  * No component tokens. Opens on right-click; the trigger area only sets the cursor. The popup is the popup concept, rows are item rows at the
@@ -8865,7 +8899,7 @@ button,
8865
8899
  stroke-width: var(--sl-stroke-default);
8866
8900
  }
8867
8901
 
8868
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
8902
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
8869
8903
  /* Dialog and Alert dialog - Mojave Theme
8870
8904
  *
8871
8905
  * Both are centered modals built from the modal concept (tokens/semantic/modal.json):
@@ -9011,7 +9045,7 @@ button,
9011
9045
  margin-top: var(--sl-modal-actions-spacing);
9012
9046
  }
9013
9047
 
9014
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
9048
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
9015
9049
  /* Drawer - a panel that slides in from an edge and can be swiped away.
9016
9050
  The surface, scrim, heading and motion are the modal concept's (--sl-modal-*), so a
9017
9051
  drawer reads as a dialog's sibling; only its size and grab bar are its own
@@ -9144,7 +9178,7 @@ button,
9144
9178
  color: var(--sl-modal-description-color);
9145
9179
  }
9146
9180
 
9147
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
9181
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
9148
9182
  /* Field - Mojave Theme
9149
9183
  *
9150
9184
  * Label, control, description and error. No component tokens: spacing is the field
@@ -9205,7 +9239,7 @@ textarea.FieldControl {
9205
9239
  height: auto;
9206
9240
  }
9207
9241
 
9208
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
9242
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
9209
9243
  /* Fieldset - Mojave Theme
9210
9244
  *
9211
9245
  * No component tokens: a titled group of fields, spaced by the stack gaps, with
@@ -9247,7 +9281,7 @@ textarea.FieldControl {
9247
9281
  color: var(--sl-text-secondary);
9248
9282
  }
9249
9283
 
9250
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
9284
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
9251
9285
  /* Form - Mojave Theme
9252
9286
  *
9253
9287
  * No component tokens: fields stack with the large block space, and the action
@@ -9267,7 +9301,7 @@ textarea.FieldControl {
9267
9301
  margin-top: var(--sl-space-block-md);
9268
9302
  }
9269
9303
 
9270
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
9304
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
9271
9305
  /* Input - Mojave Theme
9272
9306
  *
9273
9307
  * No component tokens: the look is the field concept (tokens/semantic/field.json),
@@ -9414,7 +9448,7 @@ textarea.FieldControl {
9414
9448
  padding-inline: var(--sl-control-padding-inline-lg);
9415
9449
  }
9416
9450
 
9417
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
9451
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
9418
9452
  /* Menu - Mojave Theme
9419
9453
  *
9420
9454
  * No component tokens. The trigger is a Button. The popup is the popup concept, rows are item rows at the
@@ -9563,7 +9597,7 @@ textarea.FieldControl {
9563
9597
  color: var(--sl-text-tertiary);
9564
9598
  }
9565
9599
 
9566
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
9600
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
9567
9601
  /* Menubar - Mojave Theme
9568
9602
  *
9569
9603
  * No component tokens. A row of quiet triggers, each opening a menu. The popup is the popup concept, rows are item rows at the
@@ -9756,7 +9790,7 @@ textarea.FieldControl {
9756
9790
  color: var(--sl-text-tertiary);
9757
9791
  }
9758
9792
 
9759
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
9793
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
9760
9794
  /* Meter - Mojave Theme
9761
9795
  *
9762
9796
  * A gauge (tokens/semantic/gauge.json). The fill is the solid color of the scope around it:
@@ -9819,7 +9853,7 @@ textarea.FieldControl {
9819
9853
  height: var(--sl-gauge-height-lg);
9820
9854
  }
9821
9855
 
9822
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
9856
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
9823
9857
  /* Navigation Menu - Mojave Theme
9824
9858
  *
9825
9859
  * The strip is the bar concept, the panel is the popup concept and each link is an item
@@ -10239,7 +10273,7 @@ textarea.FieldControl {
10239
10273
  width: 100%;
10240
10274
  }
10241
10275
 
10242
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
10276
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
10243
10277
  /* Number Field - Mojave Theme
10244
10278
  *
10245
10279
  * No component tokens. The input is Input (Input.css) and the label, description and
@@ -10330,7 +10364,7 @@ textarea.FieldControl {
10330
10364
  user-select: none;
10331
10365
  }
10332
10366
 
10333
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
10367
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
10334
10368
  /* OTP Field - Mojave Theme
10335
10369
  *
10336
10370
  * One-time code entry: a row of single-character inputs. Each slot is the same control as Input
@@ -10393,7 +10427,7 @@ textarea.FieldControl {
10393
10427
  letter-spacing: var(--sl-font-body-magnify-letter-spacing);
10394
10428
  }
10395
10429
 
10396
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
10430
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
10397
10431
  /* Popover - Mojave Theme */
10398
10432
 
10399
10433
  /* ============================================
@@ -10558,7 +10592,7 @@ textarea.FieldControl {
10558
10592
  fill: var(--sl-popup-arrow-stroke);
10559
10593
  }
10560
10594
 
10561
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
10595
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
10562
10596
  /* Preview Card - Mojave Theme
10563
10597
  *
10564
10598
  * The popup concept (surface, arrow, motion) with a title-magnify title and condense
@@ -10675,7 +10709,7 @@ textarea.FieldControl {
10675
10709
  fill: var(--sl-popup-arrow-stroke);
10676
10710
  }
10677
10711
 
10678
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
10712
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
10679
10713
  /* Progress - Mojave Theme
10680
10714
  *
10681
10715
  * A gauge (tokens/semantic/gauge.json), the same bar as Meter. The fill is the solid color of
@@ -10752,7 +10786,7 @@ textarea.FieldControl {
10752
10786
  height: var(--sl-gauge-height-lg);
10753
10787
  }
10754
10788
 
10755
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
10789
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
10756
10790
  /* Radio - Mojave Theme
10757
10791
  * Same box as Checkbox, always round. Sizes follow the label the same way, and the
10758
10792
  * dot is a share of the circle (check.dot-scale).
@@ -10904,7 +10938,7 @@ textarea.FieldControl {
10904
10938
  gap: var(--sl-gap-stack-sm);
10905
10939
  }
10906
10940
 
10907
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
10941
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
10908
10942
  /* Scroll Area - Mojave Theme
10909
10943
  *
10910
10944
  * The scrollbar is the content scrollbar (content.scrollbar-*): a track that stays clear until
@@ -10986,7 +11020,7 @@ textarea.FieldControl {
10986
11020
  background: transparent;
10987
11021
  }
10988
11022
 
10989
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
11023
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
10990
11024
  /* Select - Mojave Theme
10991
11025
  *
10992
11026
  * The trigger is a field (the field pattern, control sizes, the base text style); the
@@ -11271,7 +11305,7 @@ textarea.FieldControl {
11271
11305
  stroke-width: var(--sl-stroke-default);
11272
11306
  }
11273
11307
 
11274
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
11308
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
11275
11309
  /* Separator - Mojave Theme
11276
11310
  *
11277
11311
  * A hairline in the everyday divider color (border.default), one stroke thick, with a step of
@@ -11299,7 +11333,7 @@ textarea.FieldControl {
11299
11333
  margin-inline: var(--sl-space-4);
11300
11334
  }
11301
11335
 
11302
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
11336
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
11303
11337
  /* Slider - Mojave Theme
11304
11338
  *
11305
11339
  * A slider is a gauge you can drag: the track, fill and label row are gauge.* (the same bar as
@@ -11465,7 +11499,7 @@ textarea.FieldControl {
11465
11499
  transform: translate(-50%, 50%);
11466
11500
  }
11467
11501
 
11468
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
11502
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
11469
11503
  /* Switch - Mojave Theme
11470
11504
  * Switch keeps its track sizes. The thumb, its travel and the ON/OFF text are
11471
11505
  * worked out from them: the thumb fills the track's height inside the padding,
@@ -11631,7 +11665,7 @@ textarea.FieldControl {
11631
11665
  color: var(--sl-text-disabled);
11632
11666
  }
11633
11667
 
11634
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
11668
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
11635
11669
  /* Tabs - Mojave Theme
11636
11670
  *
11637
11671
  * No component tokens. The divider, the selected line and color, hover and the disabled
@@ -11767,7 +11801,7 @@ textarea.FieldControl {
11767
11801
  padding: var(--sl-space-6);
11768
11802
  }
11769
11803
 
11770
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
11804
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
11771
11805
  /* Toast - Mojave Theme
11772
11806
  *
11773
11807
  * A toast is a notice (tokens/semantic/notice.json) on the popup surface. A toast whose type
@@ -12003,7 +12037,7 @@ textarea.FieldControl {
12003
12037
  flex-shrink: 0;
12004
12038
  }
12005
12039
 
12006
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
12040
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
12007
12041
  /* Toggle - Mojave Theme
12008
12042
  * A toggle is a button that stays pressed: the same heights, padding, gap and
12009
12043
  * trigger text style as a button of the same size. Pressed, it takes its emphasis level's
@@ -12115,7 +12149,7 @@ textarea.FieldControl {
12115
12149
  height: var(--sl-icon-size-maximize);
12116
12150
  }
12117
12151
 
12118
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
12152
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
12119
12153
  /* Toggle Group - Mojave Theme
12120
12154
  *
12121
12155
  * No component tokens. The strip is the bar concept (tokens/semantic/bar.json); the
@@ -12177,7 +12211,7 @@ textarea.FieldControl {
12177
12211
  outline-offset: var(--sl-focus-outline-offset-inset);
12178
12212
  }
12179
12213
 
12180
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
12214
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
12181
12215
  /* Toolbar - Mojave Theme
12182
12216
  *
12183
12217
  * The strip is the bar concept (tokens/semantic/bar.json). Buttons, toggles, selects
@@ -12239,7 +12273,7 @@ textarea.FieldControl {
12239
12273
  max-width: var(--sl-toolbar-input-max-width);
12240
12274
  }
12241
12275
 
12242
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
12276
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
12243
12277
  /* Tooltip - Mojave Theme
12244
12278
  *
12245
12279
  * The inverse surface (surface.inverse, text.on-inverse-surface) with condense text, so a tooltip
@@ -12300,7 +12334,7 @@ textarea.FieldControl {
12300
12334
  }
12301
12335
 
12302
12336
  /* Custom components: not Base UI parts. Built from existing concepts and tokens. */
12303
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
12337
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
12304
12338
  /* Badge
12305
12339
  *
12306
12340
  * A status or count label. Not a Base UI part, and not interactive: no hover or focus.
@@ -12405,7 +12439,7 @@ textarea.FieldControl {
12405
12439
  height: var(--sl-badge-dot-base);
12406
12440
  }
12407
12441
 
12408
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
12442
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
12409
12443
  /*
12410
12444
  * DatePicker: a field that opens a calendar for one date or a period.
12411
12445
  * Not a Base UI part. The popup is Popover on a wide viewport and Drawer
@@ -12978,7 +13012,7 @@ textarea.FieldControl {
12978
13012
  flex-basis: 100%;
12979
13013
  }
12980
13014
 
12981
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
13015
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
12982
13016
  /* Money field
12983
13017
  *
12984
13018
  * An amount of money, built on Number field. The value is an integer in minor units
@@ -13323,7 +13357,7 @@ textarea.FieldControl {
13323
13357
  letter-spacing: var(--sl-font-body-base-letter-spacing);
13324
13358
  }
13325
13359
 
13326
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
13360
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
13327
13361
  /* ListDetail
13328
13362
  *
13329
13363
  * The detail of one item, next to its list. Not a Base UI part. It is a Splitter
@@ -13450,7 +13484,7 @@ textarea.FieldControl {
13450
13484
  background: transparent;
13451
13485
  }
13452
13486
 
13453
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
13487
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
13454
13488
  /* Splitter
13455
13489
  *
13456
13490
  * Two or more panels and a handle between them. Not a Base UI part. It follows the
@@ -13658,7 +13692,7 @@ textarea.FieldControl {
13658
13692
  background: var(--sl-border-default);
13659
13693
  }
13660
13694
 
13661
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
13695
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
13662
13696
  /* EmptyState
13663
13697
  *
13664
13698
  * The block a page, pane, table, list or popup shows when it has nothing to show.
@@ -13914,7 +13948,7 @@ textarea.FieldControl {
13914
13948
  color: inherit;
13915
13949
  }
13916
13950
 
13917
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
13951
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
13918
13952
  /* Table - Mojave Theme
13919
13953
  *
13920
13954
  * Base UI has no table, so this styles the native <table class="Table"> elements with the
@@ -14191,7 +14225,7 @@ textarea.FieldControl {
14191
14225
  color: inherit;
14192
14226
  }
14193
14227
 
14194
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
14228
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
14195
14229
  /* Collection
14196
14230
  *
14197
14231
  * DataTable, DataList, the toolbar and the pagination, in one place so the two views
@@ -14202,7 +14236,7 @@ textarea.FieldControl {
14202
14236
  * the tabs and the search where they are, so selecting rows does not grow the toolbar.
14203
14237
  */
14204
14238
 
14205
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
14239
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
14206
14240
  /* Collection toolbar
14207
14241
  *
14208
14242
  * The wrap follows the toolbar's own width, not the window: a table in a narrow pane wraps
@@ -14368,7 +14402,7 @@ textarea.FieldControl {
14368
14402
  border-block-end: var(--sl-stroke-default) solid var(--sl-table-border-color);
14369
14403
  }
14370
14404
 
14371
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
14405
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
14372
14406
  /* DataTable additions on top of .Table.
14373
14407
  *
14374
14408
  * Sort buttons fill the header cell and inherit its hover, so old aria-sort markup keeps
@@ -14567,7 +14601,7 @@ textarea.FieldControl {
14567
14601
  }
14568
14602
  }
14569
14603
 
14570
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
14604
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
14571
14605
  /* DataList
14572
14606
  *
14573
14607
  * The same rows as the table, in one container with the table's borders, hover, selected
@@ -14709,7 +14743,7 @@ textarea.FieldControl {
14709
14743
  transition: opacity var(--sl-duration-fast) var(--sl-easing-default);
14710
14744
  }
14711
14745
 
14712
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
14746
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
14713
14747
  /* Pagination
14714
14748
  *
14715
14749
  * Not tied to a collection. Anything with a page, a page count and a total can use it.
@@ -14734,7 +14768,7 @@ textarea.FieldControl {
14734
14768
  margin: 0;
14735
14769
  }
14736
14770
 
14737
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
14771
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
14738
14772
  /* EditableList
14739
14773
  *
14740
14774
  * One table at every width, so a field is not submitted twice. Under the stack width each
@@ -14833,7 +14867,7 @@ textarea.FieldControl {
14833
14867
  }
14834
14868
  }
14835
14869
 
14836
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
14870
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
14837
14871
  /* Sheet
14838
14872
  *
14839
14873
  * A working-paper surface: the raised surface with a heavier rule across its top
@@ -14932,7 +14966,7 @@ textarea.FieldControl {
14932
14966
  border-top: 0;
14933
14967
  }
14934
14968
 
14935
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
14969
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
14936
14970
  /* StatFigure
14937
14971
  *
14938
14972
  * One large figure with a caps label above and a caption under it. The label is
@@ -14993,7 +15027,104 @@ textarea.FieldControl {
14993
15027
  color: var(--sl-stat-figure-caption-color);
14994
15028
  }
14995
15029
 
14996
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
15030
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
15031
+ /* StatCard
15032
+ *
15033
+ * A card for one thing a page lists: a name (the heading), a caption, and a row of StatFigures
15034
+ * ruled off under them. With data-interactive the title is a link or a button and its ::after
15035
+ * covers the card, so the whole card is the target and the title names it. The hover fill and
15036
+ * the focus ring follow the card, not just the title.
15037
+ * Tokens: stat-card.* (tokens/component/stat-card.json).
15038
+ */
15039
+
15040
+ .StatCard {
15041
+ position: relative;
15042
+ box-sizing: border-box;
15043
+ display: flex;
15044
+ flex-direction: column;
15045
+ min-width: 0;
15046
+ background: var(--sl-stat-card-background);
15047
+ border: var(--sl-stat-card-border-width) solid var(--sl-stat-card-border-color);
15048
+ border-top: var(--sl-stat-card-rule-width) solid var(--sl-stat-card-rule-color);
15049
+ border-radius: var(--sl-stat-card-radius);
15050
+ }
15051
+
15052
+ .StatCard[data-interactive]:hover {
15053
+ background: var(--sl-stat-card-background-hover);
15054
+ }
15055
+
15056
+ .StatCard[data-interactive]:has(.StatCardLink:focus-visible) {
15057
+ outline: var(--sl-focus-outline);
15058
+ outline-offset: 2px;
15059
+ }
15060
+
15061
+ .StatCardHeader {
15062
+ padding: var(--sl-stat-card-header-padding-block) var(--sl-stat-card-padding-inline);
15063
+ }
15064
+
15065
+ .StatCardTitle {
15066
+ font-family: var(--sl-font-title-magnify-font-family);
15067
+ font-size: var(--sl-font-title-magnify-font-size);
15068
+ font-weight: var(--sl-font-title-magnify-font-weight);
15069
+ line-height: var(--sl-font-title-magnify-line-height);
15070
+ letter-spacing: var(--sl-font-title-magnify-letter-spacing);
15071
+ margin: 0;
15072
+ }
15073
+
15074
+ .StatCardCaption {
15075
+ font-family: var(--sl-font-figures-condense-font-family);
15076
+ font-size: var(--sl-font-figures-condense-font-size);
15077
+ font-weight: var(--sl-font-figures-condense-font-weight);
15078
+ line-height: var(--sl-font-figures-condense-line-height);
15079
+ letter-spacing: var(--sl-font-figures-condense-letter-spacing);
15080
+ font-variant-numeric: var(--sl-font-figures-condense-font-variant-numeric);
15081
+ margin: 0;
15082
+ text-transform: uppercase;
15083
+ color: var(--sl-stat-card-caption-color);
15084
+ }
15085
+
15086
+ /* The title's control: bare text that stretches over the whole card. */
15087
+ .StatCardLink {
15088
+ all: unset;
15089
+ cursor: pointer;
15090
+ }
15091
+
15092
+ .StatCardLink::after {
15093
+ content: '';
15094
+ position: absolute;
15095
+ inset: 0;
15096
+ }
15097
+
15098
+ .StatCardLink:focus-visible {
15099
+ outline: none;
15100
+ }
15101
+
15102
+ .StatCardFacts {
15103
+ display: grid;
15104
+ margin-top: auto;
15105
+ border-top: var(--sl-stat-card-border-width) solid var(--sl-stat-card-rule-color);
15106
+ }
15107
+
15108
+ .StatCardFacts > * {
15109
+ padding: var(--sl-stat-card-facts-padding-block) var(--sl-stat-card-padding-inline);
15110
+ border-inline-start: var(--sl-stat-card-border-width) solid var(--sl-stat-card-facts-divider-color);
15111
+ }
15112
+
15113
+ .StatCardFacts > :first-child {
15114
+ border-inline-start: 0;
15115
+ }
15116
+
15117
+ .StatCardFooter {
15118
+ font-family: var(--sl-font-body-condense-font-family);
15119
+ font-size: var(--sl-font-body-condense-font-size);
15120
+ font-weight: var(--sl-font-body-condense-font-weight);
15121
+ line-height: var(--sl-font-body-condense-line-height);
15122
+ letter-spacing: var(--sl-font-body-condense-letter-spacing);
15123
+ padding: var(--sl-stat-card-header-padding-block) var(--sl-stat-card-padding-inline);
15124
+ border-top: var(--sl-stat-card-border-width) solid var(--sl-stat-card-footer-border-color);
15125
+ }
15126
+
15127
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
14997
15128
  /* DescriptionList
14998
15129
  *
14999
15130
  * Label and value pairs in a native dl, one DescriptionItem (a div holding a dt and a dd)
@@ -15069,7 +15200,7 @@ textarea.FieldControl {
15069
15200
  text-align: end;
15070
15201
  }
15071
15202
 
15072
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
15203
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
15073
15204
  /* AppBar
15074
15205
  *
15075
15206
  * The bar across the top of an app window, one row on a line in the rule color. The line is
@@ -15103,7 +15234,7 @@ textarea.FieldControl {
15103
15234
  background: var(--sl-app-bar-divider-color);
15104
15235
  }
15105
15236
 
15106
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
15237
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
15107
15238
  /* PickerButton
15108
15239
  *
15109
15240
  * A trigger with a caps label before the current choice: CLIENT Alpha Services. The field
@@ -15203,7 +15334,7 @@ textarea.FieldControl {
15203
15334
  transform: rotate(180deg);
15204
15335
  }
15205
15336
 
15206
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
15337
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
15207
15338
  /* PickerSplit
15208
15339
  *
15209
15340
  * A PickerButton whose choice is itself a control: the main part (CLIENT Alpha Services) acts,
@@ -15301,7 +15432,7 @@ textarea.FieldControl {
15301
15432
  transform: rotate(180deg);
15302
15433
  }
15303
15434
 
15304
- /* @scattered-light/loomiere-base-ui 0.15.6 · styles for @base-ui/react 1.9.0 */
15435
+ /* @scattered-light/loomiere-base-ui 0.16.0 · styles for @base-ui/react 1.9.0 */
15305
15436
  /* SideNav
15306
15437
  *
15307
15438
  * The column of links down the side of a workspace. Rows are ruled apart with a hairline; the