@scattered-light/loomiere-mojave 0.18.0 → 0.20.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.
@@ -1876,6 +1876,8 @@
1876
1876
  --sl-collection-tree-indent: var(--sl-space-4); /** How far each deeper level steps in, so a child sits under its parent's text. */
1877
1877
  --sl-collection-disclosure-size-small: var(--sl-space-5); /** The expand and collapse button when a table sets disclosure="small", small enough that a parent row keeps its siblings' height. */
1878
1878
  --sl-collection-tree-line-offset: var(--sl-space-2); /** Where a child's elbow starts, from the start of its level's indent. A brand with a wider tree-indent brings it closer to the parent's text. */
1879
+ --sl-collection-cards-min-width: var(--sl-space-80); /** The narrowest a card in CollectionCards gets before the grid drops a column. */
1880
+ --sl-collection-cards-gap: var(--sl-space-4); /** The space between cards in CollectionCards. */
1879
1881
  --sl-collection-search-fixed-width: var(--sl-space-80); /** The search field's width when the toolbar sets searchWidth="fixed", the most it takes, so a count and a sort note can sit beside it. */
1880
1882
  --sl-collection-toolbar-frame-padding: var(--sl-space-3); /** Padding around the toolbar when it is framed, inside a Sheet above a table that runs edge to edge. */
1881
1883
  --sl-collection-list-row-padding-block: var(--sl-space-3); /** Vertical padding of a list row. The row is not a fixed height, because a second line and an extra slot have to fit. */
@@ -6731,7 +6733,7 @@
6731
6733
  }
6732
6734
 
6733
6735
 
6734
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
6736
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
6735
6737
  /* Loomiere for Base UI: component styles. Brand-free: every value is a --sl- variable from a
6736
6738
  Loomiere theme. Load the theme first:
6737
6739
  @import '<your theme>/tokens.css';
@@ -6741,7 +6743,7 @@
6741
6743
  /* Document defaults, in the reset layer so any unlayered rule wins over them, and so layered
6742
6744
  frameworks (Chakra's recipes, Tailwind's utilities) are not undone by them. */
6743
6745
  @layer reset {
6744
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
6746
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
6745
6747
  /* CSS Reset - Mojave Theme */
6746
6748
 
6747
6749
  /* ============================================
@@ -7185,7 +7187,7 @@ hr {
7185
7187
  }
7186
7188
  }
7187
7189
  @layer reset {
7188
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
7190
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
7189
7191
  /* Accessibility — base rules (no theme color dependencies). Theme-specific focus/invalid: accessibility-theme.css */
7190
7192
 
7191
7193
  /* Remove default focus; keyboard focus styled in accessibility-theme.css */
@@ -7298,7 +7300,7 @@ main:focus {
7298
7300
 
7299
7301
  }
7300
7302
  @layer reset {
7301
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
7303
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
7302
7304
  /* Focus, invalid, contrast — requires theme tokens (after theme-accessibility.css). */
7303
7305
 
7304
7306
  :focus-visible {
@@ -7366,7 +7368,7 @@ button,
7366
7368
 
7367
7369
  }
7368
7370
  /* Component styles */
7369
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
7371
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
7370
7372
  /* Accordion - Mojave Theme
7371
7373
  *
7372
7374
  * No component tokens. Hover, press, chevron, divider and motion are the disclosure
@@ -7487,7 +7489,7 @@ button,
7487
7489
  overflow: hidden;
7488
7490
  }
7489
7491
 
7490
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
7492
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
7491
7493
  /* Alert Dialog - Mojave Theme
7492
7494
  *
7493
7495
  * No component tokens and no rules of its own. An alert dialog looks exactly like a
@@ -7496,7 +7498,7 @@ button,
7496
7498
  * cancel quiet, and a destructive one bold with data-color="error".
7497
7499
  */
7498
7500
 
7499
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
7501
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
7500
7502
  /* Autocomplete - Mojave Theme
7501
7503
  *
7502
7504
  * No component tokens. The input is Input (Input.css), the clear button is an icon
@@ -7698,7 +7700,7 @@ button,
7698
7700
  (reset-accessibility.css).
7699
7701
  ============================================ */
7700
7702
 
7701
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
7703
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
7702
7704
  /* Avatar - Mojave Theme
7703
7705
  *
7704
7706
  * A round picture with a ring in the page color, so avatars in a group cut out of each other in
@@ -7806,7 +7808,7 @@ button,
7806
7808
  }
7807
7809
  }
7808
7810
 
7809
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
7811
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
7810
7812
  /* Button - Mojave Theme
7811
7813
  *
7812
7814
  * Colors are the brand's emphasis levels, sizes are control.*, text is the trigger
@@ -7956,7 +7958,7 @@ button,
7956
7958
  font-size: var(--sl-icon-size-maximize);
7957
7959
  }
7958
7960
 
7959
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
7961
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
7960
7962
  /* Checkbox - Mojave Theme
7961
7963
  * Sizes follow the label: the box is the icon size one tier above the label's text
7962
7964
  * tier (like a button's icon) and the check mark one tier below it.
@@ -8113,7 +8115,7 @@ button,
8113
8115
  border-radius: var(--sl-radius-pill);
8114
8116
  }
8115
8117
 
8116
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
8118
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
8117
8119
  /* Checkbox Group - Mojave Theme */
8118
8120
 
8119
8121
  /* Each checkbox row is already a full tap target tall, so the rows sit close. */
@@ -8129,7 +8131,7 @@ button,
8129
8131
  pointer-events: none;
8130
8132
  }
8131
8133
 
8132
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
8134
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
8133
8135
  /* Collapsible - Mojave Theme
8134
8136
  *
8135
8137
  * No component tokens. Hover, press, chevron and motion are the disclosure concept
@@ -8245,7 +8247,7 @@ button,
8245
8247
  background: var(--sl-surface-raised);
8246
8248
  }
8247
8249
 
8248
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
8250
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
8249
8251
  /* Combobox - Mojave Theme
8250
8252
  *
8251
8253
  * No component tokens. The input is Input (Input.css); the chips box is a field; the
@@ -8730,7 +8732,7 @@ button,
8730
8732
  color: var(--sl-text-tertiary);
8731
8733
  }
8732
8734
 
8733
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
8735
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
8734
8736
  /* Context Menu - Mojave Theme
8735
8737
  *
8736
8738
  * 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
@@ -8899,7 +8901,7 @@ button,
8899
8901
  stroke-width: var(--sl-stroke-default);
8900
8902
  }
8901
8903
 
8902
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
8904
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
8903
8905
  /* Dialog and Alert dialog - Mojave Theme
8904
8906
  *
8905
8907
  * Both are centered modals built from the modal concept (tokens/semantic/modal.json):
@@ -9045,7 +9047,7 @@ button,
9045
9047
  margin-top: var(--sl-modal-actions-spacing);
9046
9048
  }
9047
9049
 
9048
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
9050
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
9049
9051
  /* Drawer - a panel that slides in from an edge and can be swiped away.
9050
9052
  The surface, scrim, heading and motion are the modal concept's (--sl-modal-*), so a
9051
9053
  drawer reads as a dialog's sibling; only its size and grab bar are its own
@@ -9178,7 +9180,7 @@ button,
9178
9180
  color: var(--sl-modal-description-color);
9179
9181
  }
9180
9182
 
9181
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
9183
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
9182
9184
  /* Field - Mojave Theme
9183
9185
  *
9184
9186
  * Label, control, description and error. No component tokens: spacing is the field
@@ -9239,7 +9241,7 @@ textarea.FieldControl {
9239
9241
  height: auto;
9240
9242
  }
9241
9243
 
9242
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
9244
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
9243
9245
  /* Fieldset - Mojave Theme
9244
9246
  *
9245
9247
  * No component tokens: a titled group of fields, spaced by the stack gaps, with
@@ -9281,7 +9283,7 @@ textarea.FieldControl {
9281
9283
  color: var(--sl-text-secondary);
9282
9284
  }
9283
9285
 
9284
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
9286
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
9285
9287
  /* Form - Mojave Theme
9286
9288
  *
9287
9289
  * No component tokens: fields stack with the large block space, and the action
@@ -9301,7 +9303,7 @@ textarea.FieldControl {
9301
9303
  margin-top: var(--sl-space-block-md);
9302
9304
  }
9303
9305
 
9304
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
9306
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
9305
9307
  /* Input - Mojave Theme
9306
9308
  *
9307
9309
  * No component tokens: the look is the field concept (tokens/semantic/field.json),
@@ -9448,7 +9450,7 @@ textarea.FieldControl {
9448
9450
  padding-inline: var(--sl-control-padding-inline-lg);
9449
9451
  }
9450
9452
 
9451
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
9453
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
9452
9454
  /* Menu - Mojave Theme
9453
9455
  *
9454
9456
  * No component tokens. The trigger is a Button. The popup is the popup concept, rows are item rows at the
@@ -9597,7 +9599,7 @@ textarea.FieldControl {
9597
9599
  color: var(--sl-text-tertiary);
9598
9600
  }
9599
9601
 
9600
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
9602
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
9601
9603
  /* Menubar - Mojave Theme
9602
9604
  *
9603
9605
  * No component tokens. A row of quiet triggers, each opening a menu. The popup is the popup concept, rows are item rows at the
@@ -9790,7 +9792,7 @@ textarea.FieldControl {
9790
9792
  color: var(--sl-text-tertiary);
9791
9793
  }
9792
9794
 
9793
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
9795
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
9794
9796
  /* Meter - Mojave Theme
9795
9797
  *
9796
9798
  * A gauge (tokens/semantic/gauge.json). The fill is the solid color of the scope around it:
@@ -9853,7 +9855,7 @@ textarea.FieldControl {
9853
9855
  height: var(--sl-gauge-height-lg);
9854
9856
  }
9855
9857
 
9856
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
9858
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
9857
9859
  /* Navigation Menu - Mojave Theme
9858
9860
  *
9859
9861
  * The strip is the bar concept, the panel is the popup concept and each link is an item
@@ -10273,7 +10275,7 @@ textarea.FieldControl {
10273
10275
  width: 100%;
10274
10276
  }
10275
10277
 
10276
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
10278
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
10277
10279
  /* Number Field - Mojave Theme
10278
10280
  *
10279
10281
  * No component tokens. The input is Input (Input.css) and the label, description and
@@ -10364,7 +10366,7 @@ textarea.FieldControl {
10364
10366
  user-select: none;
10365
10367
  }
10366
10368
 
10367
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
10369
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
10368
10370
  /* OTP Field - Mojave Theme
10369
10371
  *
10370
10372
  * One-time code entry: a row of single-character inputs. Each slot is the same control as Input
@@ -10427,7 +10429,7 @@ textarea.FieldControl {
10427
10429
  letter-spacing: var(--sl-font-body-magnify-letter-spacing);
10428
10430
  }
10429
10431
 
10430
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
10432
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
10431
10433
  /* Popover - Mojave Theme */
10432
10434
 
10433
10435
  /* ============================================
@@ -10592,7 +10594,7 @@ textarea.FieldControl {
10592
10594
  fill: var(--sl-popup-arrow-stroke);
10593
10595
  }
10594
10596
 
10595
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
10597
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
10596
10598
  /* Preview Card - Mojave Theme
10597
10599
  *
10598
10600
  * The popup concept (surface, arrow, motion) with a title-magnify title and condense
@@ -10709,7 +10711,7 @@ textarea.FieldControl {
10709
10711
  fill: var(--sl-popup-arrow-stroke);
10710
10712
  }
10711
10713
 
10712
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
10714
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
10713
10715
  /* Progress - Mojave Theme
10714
10716
  *
10715
10717
  * A gauge (tokens/semantic/gauge.json), the same bar as Meter. The fill is the solid color of
@@ -10786,7 +10788,7 @@ textarea.FieldControl {
10786
10788
  height: var(--sl-gauge-height-lg);
10787
10789
  }
10788
10790
 
10789
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
10791
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
10790
10792
  /* Radio - Mojave Theme
10791
10793
  * Same box as Checkbox, always round. Sizes follow the label the same way, and the
10792
10794
  * dot is a share of the circle (check.dot-scale).
@@ -10938,7 +10940,7 @@ textarea.FieldControl {
10938
10940
  gap: var(--sl-gap-stack-sm);
10939
10941
  }
10940
10942
 
10941
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
10943
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
10942
10944
  /* Scroll Area - Mojave Theme
10943
10945
  *
10944
10946
  * The scrollbar is the content scrollbar (content.scrollbar-*): a track that stays clear until
@@ -11020,7 +11022,7 @@ textarea.FieldControl {
11020
11022
  background: transparent;
11021
11023
  }
11022
11024
 
11023
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
11025
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
11024
11026
  /* Select - Mojave Theme
11025
11027
  *
11026
11028
  * The trigger is a field (the field pattern, control sizes, the base text style); the
@@ -11305,7 +11307,7 @@ textarea.FieldControl {
11305
11307
  stroke-width: var(--sl-stroke-default);
11306
11308
  }
11307
11309
 
11308
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
11310
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
11309
11311
  /* Separator - Mojave Theme
11310
11312
  *
11311
11313
  * A hairline in the everyday divider color (border.default), one stroke thick, with a step of
@@ -11333,7 +11335,7 @@ textarea.FieldControl {
11333
11335
  margin-inline: var(--sl-space-4);
11334
11336
  }
11335
11337
 
11336
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
11338
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
11337
11339
  /* Slider - Mojave Theme
11338
11340
  *
11339
11341
  * A slider is a gauge you can drag: the track, fill and label row are gauge.* (the same bar as
@@ -11499,7 +11501,7 @@ textarea.FieldControl {
11499
11501
  transform: translate(-50%, 50%);
11500
11502
  }
11501
11503
 
11502
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
11504
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
11503
11505
  /* Switch - Mojave Theme
11504
11506
  * Switch keeps its track sizes. The thumb, its travel and the ON/OFF text are
11505
11507
  * worked out from them: the thumb fills the track's height inside the padding,
@@ -11665,7 +11667,7 @@ textarea.FieldControl {
11665
11667
  color: var(--sl-text-disabled);
11666
11668
  }
11667
11669
 
11668
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
11670
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
11669
11671
  /* Tabs - Mojave Theme
11670
11672
  *
11671
11673
  * No component tokens. The divider, the selected line and color, hover and the disabled
@@ -11801,7 +11803,7 @@ textarea.FieldControl {
11801
11803
  padding: var(--sl-space-6);
11802
11804
  }
11803
11805
 
11804
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
11806
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
11805
11807
  /* Toast - Mojave Theme
11806
11808
  *
11807
11809
  * A toast is a notice (tokens/semantic/notice.json) on the popup surface. A toast whose type
@@ -12037,7 +12039,7 @@ textarea.FieldControl {
12037
12039
  flex-shrink: 0;
12038
12040
  }
12039
12041
 
12040
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
12042
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
12041
12043
  /* Toggle - Mojave Theme
12042
12044
  * A toggle is a button that stays pressed: the same heights, padding, gap and
12043
12045
  * trigger text style as a button of the same size. Pressed, it takes its emphasis level's
@@ -12149,7 +12151,7 @@ textarea.FieldControl {
12149
12151
  height: var(--sl-icon-size-maximize);
12150
12152
  }
12151
12153
 
12152
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
12154
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
12153
12155
  /* Toggle Group - Mojave Theme
12154
12156
  *
12155
12157
  * No component tokens. The strip is the bar concept (tokens/semantic/bar.json); the
@@ -12211,7 +12213,7 @@ textarea.FieldControl {
12211
12213
  outline-offset: var(--sl-focus-outline-offset-inset);
12212
12214
  }
12213
12215
 
12214
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
12216
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
12215
12217
  /* Toolbar - Mojave Theme
12216
12218
  *
12217
12219
  * The strip is the bar concept (tokens/semantic/bar.json). Buttons, toggles, selects
@@ -12273,7 +12275,7 @@ textarea.FieldControl {
12273
12275
  max-width: var(--sl-toolbar-input-max-width);
12274
12276
  }
12275
12277
 
12276
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
12278
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
12277
12279
  /* Tooltip - Mojave Theme
12278
12280
  *
12279
12281
  * The inverse surface (surface.inverse, text.on-inverse-surface) with condense text, so a tooltip
@@ -12334,7 +12336,7 @@ textarea.FieldControl {
12334
12336
  }
12335
12337
 
12336
12338
  /* Custom components: not Base UI parts. Built from existing concepts and tokens. */
12337
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
12339
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
12338
12340
  /* Badge
12339
12341
  *
12340
12342
  * A status or count label. Not a Base UI part, and not interactive: no hover or focus.
@@ -12439,7 +12441,7 @@ textarea.FieldControl {
12439
12441
  height: var(--sl-badge-dot-base);
12440
12442
  }
12441
12443
 
12442
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
12444
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
12443
12445
  /*
12444
12446
  * DatePicker: a field that opens a calendar for one date or a period.
12445
12447
  * Not a Base UI part. The popup is Popover on a wide viewport and Drawer
@@ -13012,7 +13014,7 @@ textarea.FieldControl {
13012
13014
  flex-basis: 100%;
13013
13015
  }
13014
13016
 
13015
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
13017
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
13016
13018
  /* Money field
13017
13019
  *
13018
13020
  * An amount of money, built on Number field. The value is an integer in minor units
@@ -13357,7 +13359,7 @@ textarea.FieldControl {
13357
13359
  letter-spacing: var(--sl-font-body-base-letter-spacing);
13358
13360
  }
13359
13361
 
13360
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
13362
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
13361
13363
  /* ListDetail
13362
13364
  *
13363
13365
  * The detail of one item, next to its list. Not a Base UI part. It is a Splitter
@@ -13484,7 +13486,7 @@ textarea.FieldControl {
13484
13486
  background: transparent;
13485
13487
  }
13486
13488
 
13487
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
13489
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
13488
13490
  /* Splitter
13489
13491
  *
13490
13492
  * Two or more panels and a handle between them. Not a Base UI part. It follows the
@@ -13692,7 +13694,7 @@ textarea.FieldControl {
13692
13694
  background: var(--sl-border-default);
13693
13695
  }
13694
13696
 
13695
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
13697
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
13696
13698
  /* EmptyState
13697
13699
  *
13698
13700
  * The block a page, pane, table, list or popup shows when it has nothing to show.
@@ -13948,7 +13950,7 @@ textarea.FieldControl {
13948
13950
  color: inherit;
13949
13951
  }
13950
13952
 
13951
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
13953
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
13952
13954
  /* Table - Mojave Theme
13953
13955
  *
13954
13956
  * Base UI has no table, so this styles the native <table class="Table"> elements with the
@@ -14225,7 +14227,7 @@ textarea.FieldControl {
14225
14227
  color: inherit;
14226
14228
  }
14227
14229
 
14228
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
14230
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
14229
14231
  /* Collection
14230
14232
  *
14231
14233
  * DataTable, DataList, the toolbar and the pagination, in one place so the two views
@@ -14236,7 +14238,7 @@ textarea.FieldControl {
14236
14238
  * the tabs and the search where they are, so selecting rows does not grow the toolbar.
14237
14239
  */
14238
14240
 
14239
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
14241
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
14240
14242
  /* Collection toolbar
14241
14243
  *
14242
14244
  * The wrap follows the toolbar's own width, not the window: a table in a narrow pane wraps
@@ -14402,7 +14404,53 @@ textarea.FieldControl {
14402
14404
  border-block-end: var(--sl-stroke-default) solid var(--sl-table-border-color);
14403
14405
  }
14404
14406
 
14405
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
14407
+ /* Segmented toolbar: search, then toggle groups, in one wrapping row. `ruled` adds the sheet
14408
+ rule above it. A group marked `end` (and the ones after it) sits at the far end. */
14409
+ .CollectionToolbar[data-segmented] {
14410
+ flex-direction: row;
14411
+ flex-wrap: wrap;
14412
+ align-items: center;
14413
+ column-gap: var(--sl-space-4);
14414
+ row-gap: var(--sl-space-3);
14415
+ }
14416
+
14417
+ .CollectionToolbar[data-segmented][data-ruled] {
14418
+ border-top: var(--sl-sheet-rule-width) solid var(--sl-border-strong, currentColor);
14419
+ padding-top: var(--sl-space-3);
14420
+ }
14421
+
14422
+ .CollectionToolbar[data-segmented] .CollectionSearch {
14423
+ flex: 0 1 var(--sl-collection-search-fixed-width);
14424
+ min-width: 12rem;
14425
+ }
14426
+
14427
+ .CollectionSegment {
14428
+ display: flex;
14429
+ align-items: center;
14430
+ gap: var(--sl-space-2);
14431
+ }
14432
+
14433
+ .CollectionSegment[data-end] {
14434
+ margin-inline-start: auto;
14435
+ }
14436
+
14437
+ .CollectionSegmentLabel {
14438
+ font-family: var(--sl-font-figures-condense-font-family);
14439
+ font-size: var(--sl-font-figures-condense-font-size);
14440
+ font-weight: var(--sl-font-figures-condense-font-weight);
14441
+ line-height: var(--sl-font-figures-condense-line-height);
14442
+ letter-spacing: var(--sl-font-figures-condense-letter-spacing);
14443
+ font-variant-numeric: var(--sl-font-figures-condense-font-variant-numeric);
14444
+ font-weight: 600;
14445
+ text-transform: uppercase;
14446
+ color: var(--sl-text-secondary);
14447
+ }
14448
+
14449
+ .CollectionToolbar[data-segmented] .CollectionToolbarMeta {
14450
+ margin-inline-start: auto;
14451
+ }
14452
+
14453
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
14406
14454
  /* DataTable additions on top of .Table.
14407
14455
  *
14408
14456
  * Sort buttons fill the header cell and inherit its hover, so old aria-sort markup keeps
@@ -14601,7 +14649,7 @@ textarea.FieldControl {
14601
14649
  }
14602
14650
  }
14603
14651
 
14604
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
14652
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
14605
14653
  /* DataList
14606
14654
  *
14607
14655
  * The same rows as the table, in one container with the table's borders, hover, selected
@@ -14743,7 +14791,32 @@ textarea.FieldControl {
14743
14791
  transition: opacity var(--sl-duration-fast) var(--sl-easing-default);
14744
14792
  }
14745
14793
 
14746
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
14794
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
14795
+ /* Collection cards
14796
+ *
14797
+ * The page of a collection as a grid. Columns fill the width, none narrower than
14798
+ * --sl-collection-cards-min-width. Each card stretches to the row's height.
14799
+ */
14800
+
14801
+ .CollectionCards {
14802
+ display: grid;
14803
+ grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--sl-collection-cards-min-width)), 1fr));
14804
+ gap: var(--sl-collection-cards-gap);
14805
+ margin: 0;
14806
+ padding: 0;
14807
+ list-style: none;
14808
+ }
14809
+
14810
+ .CollectionCards > li {
14811
+ display: flex;
14812
+ min-width: 0;
14813
+ }
14814
+
14815
+ .CollectionCards > li > * {
14816
+ flex: 1 1 auto;
14817
+ }
14818
+
14819
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
14747
14820
  /* Pagination
14748
14821
  *
14749
14822
  * Not tied to a collection. Anything with a page, a page count and a total can use it.
@@ -14768,7 +14841,7 @@ textarea.FieldControl {
14768
14841
  margin: 0;
14769
14842
  }
14770
14843
 
14771
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
14844
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
14772
14845
  /* EditableList
14773
14846
  *
14774
14847
  * One table at every width, so a field is not submitted twice. Under the stack width each
@@ -14867,7 +14940,7 @@ textarea.FieldControl {
14867
14940
  }
14868
14941
  }
14869
14942
 
14870
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
14943
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
14871
14944
  /* Sheet
14872
14945
  *
14873
14946
  * A working-paper surface: the raised surface with a heavier rule across its top
@@ -14966,7 +15039,7 @@ textarea.FieldControl {
14966
15039
  border-top: 0;
14967
15040
  }
14968
15041
 
14969
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
15042
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
14970
15043
  /* StatFigure
14971
15044
  *
14972
15045
  * One large figure with a caps label above and a caption under it. The label is
@@ -15027,7 +15100,7 @@ textarea.FieldControl {
15027
15100
  color: var(--sl-stat-figure-caption-color);
15028
15101
  }
15029
15102
 
15030
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
15103
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
15031
15104
  /* StatCard
15032
15105
  *
15033
15106
  * A card for one thing a page lists: a name (the heading), a caption, and a row of StatFigures
@@ -15146,7 +15219,50 @@ textarea.FieldControl {
15146
15219
  border-top: var(--sl-stat-card-border-width) solid var(--sl-stat-card-footer-border-color);
15147
15220
  }
15148
15221
 
15149
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
15222
+ /* Detailed card: details (a leader list), a status and actions. The figures sit snug, the list
15223
+ runs with no rules between pairs, and the footer is a column ending in a ruled bar. */
15224
+ .StatCard[data-detailed] {
15225
+ --sl-stat-card-facts-padding-block: var(--sl-space-2);
15226
+ --sl-description-list-row-border-color: transparent;
15227
+ --sl-description-list-row-padding-block: var(--sl-space-1);
15228
+ --sl-stat-card-footer-border-color: var(--sl-stat-card-rule-color);
15229
+ }
15230
+
15231
+ .StatCard[data-detailed] .StatCardFooter {
15232
+ display: flex;
15233
+ flex-direction: column;
15234
+ padding: 0;
15235
+ }
15236
+
15237
+ .StatCard[data-detailed] .DescriptionList {
15238
+ padding-block: var(--sl-space-1);
15239
+ }
15240
+
15241
+ /* The bar sits above the card's link so its buttons stay clickable. */
15242
+ .StatCardBar {
15243
+ position: relative;
15244
+ z-index: 1;
15245
+ display: flex;
15246
+ align-items: center;
15247
+ gap: var(--sl-space-2);
15248
+ margin-top: auto;
15249
+ padding: var(--sl-space-2) var(--sl-stat-card-padding-inline);
15250
+ border-top: var(--sl-stroke-default) solid var(--sl-stat-card-facts-divider-color);
15251
+ background: var(--sl-stat-card-background-hover);
15252
+ }
15253
+
15254
+ .StatCardStatus {
15255
+ font-family: var(--sl-font-body-condense-font-family);
15256
+ font-size: var(--sl-font-body-condense-font-size);
15257
+ font-weight: var(--sl-font-body-condense-font-weight);
15258
+ line-height: var(--sl-font-body-condense-line-height);
15259
+ letter-spacing: var(--sl-font-body-condense-letter-spacing);
15260
+ margin-inline-end: auto;
15261
+ font-weight: 600;
15262
+ white-space: nowrap;
15263
+ }
15264
+
15265
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
15150
15266
  /* DescriptionList
15151
15267
  *
15152
15268
  * Label and value pairs in a native dl, one DescriptionItem (a div holding a dt and a dd)
@@ -15224,7 +15340,7 @@ textarea.FieldControl {
15224
15340
  text-align: end;
15225
15341
  }
15226
15342
 
15227
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
15343
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
15228
15344
  /* AppBar
15229
15345
  *
15230
15346
  * The bar across the top of an app window, one row on a line in the rule color. The line is
@@ -15258,13 +15374,13 @@ textarea.FieldControl {
15258
15374
  background: var(--sl-app-bar-divider-color);
15259
15375
  }
15260
15376
 
15261
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
15377
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
15262
15378
  /* PickerButton
15263
15379
  *
15264
15380
  * A trigger with a caps label before the current choice: CLIENT Alpha Services. The field
15265
15381
  * look and states of a Select trigger; the label is caps-condense in picker-button.label-color,
15266
15382
  * the choice is cut with an ellipsis at picker-button.max-width and the chevron turns while
15267
- * its popup is open. Label and choice share a baseline, so caps beside lowercase read as one line;
15383
+ * its popup is open. Label and choice are centered on the control's height, so a caps label and its choice sit level at any font size;
15268
15384
  * picker-button.text-offset nudges both down for a typeface that sits high. Tokens: picker-button.* (tokens/component/picker-button.json) and field.*.
15269
15385
  */
15270
15386
 
@@ -15281,13 +15397,13 @@ textarea.FieldControl {
15281
15397
  font-weight: var(--sl-font-body-base-font-weight);
15282
15398
  line-height: var(--sl-font-body-base-line-height);
15283
15399
  letter-spacing: var(--sl-font-body-base-letter-spacing);
15284
- /* A grid, not a flex row: label and choice share a baseline, and align-content centers that
15400
+ /* A grid, not a flex row: label and choice are centered on the same line, and align-content centers that
15285
15401
  pair in the button's height. The choice column shrinks so a long choice gets its ellipsis. */
15286
15402
  display: inline-grid;
15287
15403
  grid-auto-flow: column;
15288
15404
  grid-template-columns: max-content minmax(0, max-content);
15289
15405
  grid-auto-columns: max-content;
15290
- align-items: baseline;
15406
+ align-items: center;
15291
15407
  align-content: center;
15292
15408
  justify-content: start;
15293
15409
  gap: var(--sl-gap-control);
@@ -15358,7 +15474,7 @@ textarea.FieldControl {
15358
15474
  transform: rotate(180deg);
15359
15475
  }
15360
15476
 
15361
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
15477
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
15362
15478
  /* PickerSplit
15363
15479
  *
15364
15480
  * A PickerButton whose choice is itself a control: the main part (CLIENT Alpha Services) acts,
@@ -15413,7 +15529,7 @@ textarea.FieldControl {
15413
15529
  grid-auto-flow: column;
15414
15530
  grid-template-columns: max-content minmax(0, max-content);
15415
15531
  grid-auto-columns: max-content;
15416
- align-items: baseline;
15532
+ align-items: center;
15417
15533
  align-content: center;
15418
15534
  justify-content: start;
15419
15535
  gap: var(--sl-gap-control);
@@ -15456,7 +15572,29 @@ textarea.FieldControl {
15456
15572
  transform: rotate(180deg);
15457
15573
  }
15458
15574
 
15459
- /* @scattered-light/loomiere-base-ui 0.18.0 · styles for @base-ui/react 1.9.0 */
15575
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
15576
+ /* SplitButton
15577
+ *
15578
+ * A Button and a square Menu trigger side by side, joined into one outline: the inner corners
15579
+ * are square and the trigger overlaps the main part's border by one stroke.
15580
+ */
15581
+
15582
+ .SplitButton {
15583
+ display: inline-flex;
15584
+ }
15585
+
15586
+ .SplitButton > .Button:first-child {
15587
+ border-start-end-radius: 0;
15588
+ border-end-end-radius: 0;
15589
+ }
15590
+
15591
+ .SplitButton > :last-child {
15592
+ border-start-start-radius: 0;
15593
+ border-end-start-radius: 0;
15594
+ margin-inline-start: -1px;
15595
+ }
15596
+
15597
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
15460
15598
  /* SideNav
15461
15599
  *
15462
15600
  * The column of links down the side of a workspace. Rows are ruled apart with a hairline; the