@scattered-light/loomiere-base-ui 0.19.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.
Files changed (98) hide show
  1. package/README.md +4 -2
  2. package/dist/{chunk-M7KJASGK.js → chunk-43IJNNXK.js} +86 -3
  3. package/dist/chunk-43IJNNXK.js.map +1 -0
  4. package/dist/{chunk-2BFNETZZ.js → chunk-B5FH3RF5.js} +33 -15
  5. package/dist/chunk-B5FH3RF5.js.map +1 -0
  6. package/dist/chunk-Z6SR3KMB.js +77 -0
  7. package/dist/chunk-Z6SR3KMB.js.map +1 -0
  8. package/dist/custom/collection/index.d.ts +37 -2
  9. package/dist/custom/collection/index.js +70 -5
  10. package/dist/custom/collection/index.js.map +1 -1
  11. package/dist/custom/index.d.ts +1 -1
  12. package/dist/custom/index.js +2 -2
  13. package/dist/design-system/components/CollectionCards/README.md +32 -0
  14. package/dist/design-system/components/CollectionCards/preview.html +2 -2
  15. package/dist/design-system/components/CollectionToolbar/README.md +3 -1
  16. package/dist/design-system/components/PickerButton/README.md +1 -1
  17. package/dist/design-system/components/SplitButton/README.md +26 -0
  18. package/dist/design-system/components/SplitButton/preview.html +19 -0
  19. package/dist/design-system/components/StatCard/README.md +4 -1
  20. package/dist/design-system/components/StatCard/preview.html +1 -1
  21. package/dist/design-system/components/bundle.js +7 -7
  22. package/dist/design-system/components/index.d.ts +1 -1
  23. package/dist/design-system/components/styles.css +178 -67
  24. package/dist/{index-ywBkS0AA.d.ts → index-CB3_OECu.d.ts} +35 -1
  25. package/dist/index.d.ts +1 -1
  26. package/dist/index.js +5 -18
  27. package/dist/index.js.map +1 -1
  28. package/dist/styles/components/Accordion.css +1 -1
  29. package/dist/styles/components/AlertDialog.css +1 -1
  30. package/dist/styles/components/Autocomplete.css +1 -1
  31. package/dist/styles/components/Avatar.css +1 -1
  32. package/dist/styles/components/Button.css +1 -1
  33. package/dist/styles/components/Checkbox.css +1 -1
  34. package/dist/styles/components/CheckboxGroup.css +1 -1
  35. package/dist/styles/components/Collapsible.css +1 -1
  36. package/dist/styles/components/Combobox.css +1 -1
  37. package/dist/styles/components/ContextMenu.css +1 -1
  38. package/dist/styles/components/Dialog.css +1 -1
  39. package/dist/styles/components/Drawer.css +1 -1
  40. package/dist/styles/components/Field.css +1 -1
  41. package/dist/styles/components/Fieldset.css +1 -1
  42. package/dist/styles/components/Form.css +1 -1
  43. package/dist/styles/components/Input.css +1 -1
  44. package/dist/styles/components/Menu.css +1 -1
  45. package/dist/styles/components/Menubar.css +1 -1
  46. package/dist/styles/components/Meter.css +1 -1
  47. package/dist/styles/components/NavigationMenu.css +1 -1
  48. package/dist/styles/components/NumberField.css +1 -1
  49. package/dist/styles/components/OTPField.css +1 -1
  50. package/dist/styles/components/Popover.css +1 -1
  51. package/dist/styles/components/PreviewCard.css +1 -1
  52. package/dist/styles/components/Progress.css +1 -1
  53. package/dist/styles/components/Radio.css +1 -1
  54. package/dist/styles/components/ScrollArea.css +1 -1
  55. package/dist/styles/components/Select.css +1 -1
  56. package/dist/styles/components/Separator.css +1 -1
  57. package/dist/styles/components/Slider.css +1 -1
  58. package/dist/styles/components/Switch.css +1 -1
  59. package/dist/styles/components/Tabs.css +1 -1
  60. package/dist/styles/components/Toast.css +1 -1
  61. package/dist/styles/components/Toggle.css +1 -1
  62. package/dist/styles/components/ToggleGroup.css +1 -1
  63. package/dist/styles/components/Toolbar.css +1 -1
  64. package/dist/styles/components/Tooltip.css +1 -1
  65. package/dist/styles/custom/AppBar.css +1 -1
  66. package/dist/styles/custom/Badge.css +1 -1
  67. package/dist/styles/custom/Collection.css +1 -1
  68. package/dist/styles/custom/CollectionCards.css +1 -1
  69. package/dist/styles/custom/CollectionPagination.css +1 -1
  70. package/dist/styles/custom/CollectionToolbar.css +47 -1
  71. package/dist/styles/custom/DataList.css +1 -1
  72. package/dist/styles/custom/DataTable.css +1 -1
  73. package/dist/styles/custom/DatePicker.css +1 -1
  74. package/dist/styles/custom/DescriptionList.css +1 -1
  75. package/dist/styles/custom/EditableList.css +1 -1
  76. package/dist/styles/custom/EmptyState.css +1 -1
  77. package/dist/styles/custom/ListDetail.css +1 -1
  78. package/dist/styles/custom/MoneyField.css +1 -1
  79. package/dist/styles/custom/PickerButton.css +4 -4
  80. package/dist/styles/custom/PickerSplit.css +2 -2
  81. package/dist/styles/custom/Sheet.css +1 -1
  82. package/dist/styles/custom/SideNav.css +1 -1
  83. package/dist/styles/custom/SplitButton.css +21 -0
  84. package/dist/styles/custom/Splitter.css +1 -1
  85. package/dist/styles/custom/StatCard.css +44 -1
  86. package/dist/styles/custom/StatFigure.css +1 -1
  87. package/dist/styles/custom/Table.css +1 -1
  88. package/dist/styles/index.css +2 -1
  89. package/dist/styles/reset/accessibility.css +1 -1
  90. package/dist/styles/reset/reset-accessibility.css +1 -1
  91. package/dist/styles/reset/reset-tailwind.css +1 -1
  92. package/dist/styles/reset/reset.css +1 -1
  93. package/dist/styles/tailwind.css +2 -1
  94. package/package.json +2 -2
  95. package/dist/chunk-2BFNETZZ.js.map +0 -1
  96. package/dist/chunk-M7KJASGK.js.map +0 -1
  97. package/dist/chunk-Y2CPBMFJ.js +0 -147
  98. package/dist/chunk-Y2CPBMFJ.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  @import url('https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,400,0..1,0');
2
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
2
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
3
3
  /* Loomiere for Base UI: component styles. Brand-free: every value is a --sl- variable from a
4
4
  Loomiere theme. Load the theme first:
5
5
  @import '<your theme>/tokens.css';
@@ -9,7 +9,7 @@
9
9
  /* Document defaults, in the reset layer so any unlayered rule wins over them, and so layered
10
10
  frameworks (Chakra's recipes, Tailwind's utilities) are not undone by them. */
11
11
  @layer reset {
12
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
12
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
13
13
  /* CSS Reset - Mojave Theme */
14
14
 
15
15
  /* ============================================
@@ -453,7 +453,7 @@ hr {
453
453
  }
454
454
  }
455
455
  @layer reset {
456
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
456
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
457
457
  /* Accessibility — base rules (no theme color dependencies). Theme-specific focus/invalid: accessibility-theme.css */
458
458
 
459
459
  /* Remove default focus; keyboard focus styled in accessibility-theme.css */
@@ -566,7 +566,7 @@ main:focus {
566
566
 
567
567
  }
568
568
  @layer reset {
569
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
569
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
570
570
  /* Focus, invalid, contrast — requires theme tokens (after theme-accessibility.css). */
571
571
 
572
572
  :focus-visible {
@@ -634,7 +634,7 @@ button,
634
634
 
635
635
  }
636
636
  /* Component styles */
637
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
637
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
638
638
  /* Accordion - Mojave Theme
639
639
  *
640
640
  * No component tokens. Hover, press, chevron, divider and motion are the disclosure
@@ -755,7 +755,7 @@ button,
755
755
  overflow: hidden;
756
756
  }
757
757
 
758
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
758
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
759
759
  /* Alert Dialog - Mojave Theme
760
760
  *
761
761
  * No component tokens and no rules of its own. An alert dialog looks exactly like a
@@ -764,7 +764,7 @@ button,
764
764
  * cancel quiet, and a destructive one bold with data-color="error".
765
765
  */
766
766
 
767
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
767
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
768
768
  /* Autocomplete - Mojave Theme
769
769
  *
770
770
  * No component tokens. The input is Input (Input.css), the clear button is an icon
@@ -966,7 +966,7 @@ button,
966
966
  (reset-accessibility.css).
967
967
  ============================================ */
968
968
 
969
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
969
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
970
970
  /* Avatar - Mojave Theme
971
971
  *
972
972
  * A round picture with a ring in the page color, so avatars in a group cut out of each other in
@@ -1074,7 +1074,7 @@ button,
1074
1074
  }
1075
1075
  }
1076
1076
 
1077
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
1077
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
1078
1078
  /* Button - Mojave Theme
1079
1079
  *
1080
1080
  * Colors are the brand's emphasis levels, sizes are control.*, text is the trigger
@@ -1224,7 +1224,7 @@ button,
1224
1224
  font-size: var(--sl-icon-size-maximize);
1225
1225
  }
1226
1226
 
1227
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
1227
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
1228
1228
  /* Checkbox - Mojave Theme
1229
1229
  * Sizes follow the label: the box is the icon size one tier above the label's text
1230
1230
  * tier (like a button's icon) and the check mark one tier below it.
@@ -1381,7 +1381,7 @@ button,
1381
1381
  border-radius: var(--sl-radius-pill);
1382
1382
  }
1383
1383
 
1384
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
1384
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
1385
1385
  /* Checkbox Group - Mojave Theme */
1386
1386
 
1387
1387
  /* Each checkbox row is already a full tap target tall, so the rows sit close. */
@@ -1397,7 +1397,7 @@ button,
1397
1397
  pointer-events: none;
1398
1398
  }
1399
1399
 
1400
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
1400
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
1401
1401
  /* Collapsible - Mojave Theme
1402
1402
  *
1403
1403
  * No component tokens. Hover, press, chevron and motion are the disclosure concept
@@ -1513,7 +1513,7 @@ button,
1513
1513
  background: var(--sl-surface-raised);
1514
1514
  }
1515
1515
 
1516
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
1516
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
1517
1517
  /* Combobox - Mojave Theme
1518
1518
  *
1519
1519
  * No component tokens. The input is Input (Input.css); the chips box is a field; the
@@ -1998,7 +1998,7 @@ button,
1998
1998
  color: var(--sl-text-tertiary);
1999
1999
  }
2000
2000
 
2001
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
2001
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
2002
2002
  /* Context Menu - Mojave Theme
2003
2003
  *
2004
2004
  * 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
@@ -2167,7 +2167,7 @@ button,
2167
2167
  stroke-width: var(--sl-stroke-default);
2168
2168
  }
2169
2169
 
2170
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
2170
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
2171
2171
  /* Dialog and Alert dialog - Mojave Theme
2172
2172
  *
2173
2173
  * Both are centered modals built from the modal concept (tokens/semantic/modal.json):
@@ -2313,7 +2313,7 @@ button,
2313
2313
  margin-top: var(--sl-modal-actions-spacing);
2314
2314
  }
2315
2315
 
2316
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
2316
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
2317
2317
  /* Drawer - a panel that slides in from an edge and can be swiped away.
2318
2318
  The surface, scrim, heading and motion are the modal concept's (--sl-modal-*), so a
2319
2319
  drawer reads as a dialog's sibling; only its size and grab bar are its own
@@ -2446,7 +2446,7 @@ button,
2446
2446
  color: var(--sl-modal-description-color);
2447
2447
  }
2448
2448
 
2449
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
2449
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
2450
2450
  /* Field - Mojave Theme
2451
2451
  *
2452
2452
  * Label, control, description and error. No component tokens: spacing is the field
@@ -2507,7 +2507,7 @@ textarea.FieldControl {
2507
2507
  height: auto;
2508
2508
  }
2509
2509
 
2510
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
2510
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
2511
2511
  /* Fieldset - Mojave Theme
2512
2512
  *
2513
2513
  * No component tokens: a titled group of fields, spaced by the stack gaps, with
@@ -2549,7 +2549,7 @@ textarea.FieldControl {
2549
2549
  color: var(--sl-text-secondary);
2550
2550
  }
2551
2551
 
2552
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
2552
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
2553
2553
  /* Form - Mojave Theme
2554
2554
  *
2555
2555
  * No component tokens: fields stack with the large block space, and the action
@@ -2569,7 +2569,7 @@ textarea.FieldControl {
2569
2569
  margin-top: var(--sl-space-block-md);
2570
2570
  }
2571
2571
 
2572
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
2572
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
2573
2573
  /* Input - Mojave Theme
2574
2574
  *
2575
2575
  * No component tokens: the look is the field concept (tokens/semantic/field.json),
@@ -2716,7 +2716,7 @@ textarea.FieldControl {
2716
2716
  padding-inline: var(--sl-control-padding-inline-lg);
2717
2717
  }
2718
2718
 
2719
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
2719
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
2720
2720
  /* Menu - Mojave Theme
2721
2721
  *
2722
2722
  * No component tokens. The trigger is a Button. The popup is the popup concept, rows are item rows at the
@@ -2865,7 +2865,7 @@ textarea.FieldControl {
2865
2865
  color: var(--sl-text-tertiary);
2866
2866
  }
2867
2867
 
2868
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
2868
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
2869
2869
  /* Menubar - Mojave Theme
2870
2870
  *
2871
2871
  * No component tokens. A row of quiet triggers, each opening a menu. The popup is the popup concept, rows are item rows at the
@@ -3058,7 +3058,7 @@ textarea.FieldControl {
3058
3058
  color: var(--sl-text-tertiary);
3059
3059
  }
3060
3060
 
3061
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
3061
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
3062
3062
  /* Meter - Mojave Theme
3063
3063
  *
3064
3064
  * A gauge (tokens/semantic/gauge.json). The fill is the solid color of the scope around it:
@@ -3121,7 +3121,7 @@ textarea.FieldControl {
3121
3121
  height: var(--sl-gauge-height-lg);
3122
3122
  }
3123
3123
 
3124
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
3124
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
3125
3125
  /* Navigation Menu - Mojave Theme
3126
3126
  *
3127
3127
  * The strip is the bar concept, the panel is the popup concept and each link is an item
@@ -3541,7 +3541,7 @@ textarea.FieldControl {
3541
3541
  width: 100%;
3542
3542
  }
3543
3543
 
3544
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
3544
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
3545
3545
  /* Number Field - Mojave Theme
3546
3546
  *
3547
3547
  * No component tokens. The input is Input (Input.css) and the label, description and
@@ -3632,7 +3632,7 @@ textarea.FieldControl {
3632
3632
  user-select: none;
3633
3633
  }
3634
3634
 
3635
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
3635
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
3636
3636
  /* OTP Field - Mojave Theme
3637
3637
  *
3638
3638
  * One-time code entry: a row of single-character inputs. Each slot is the same control as Input
@@ -3695,7 +3695,7 @@ textarea.FieldControl {
3695
3695
  letter-spacing: var(--sl-font-body-magnify-letter-spacing);
3696
3696
  }
3697
3697
 
3698
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
3698
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
3699
3699
  /* Popover - Mojave Theme */
3700
3700
 
3701
3701
  /* ============================================
@@ -3860,7 +3860,7 @@ textarea.FieldControl {
3860
3860
  fill: var(--sl-popup-arrow-stroke);
3861
3861
  }
3862
3862
 
3863
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
3863
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
3864
3864
  /* Preview Card - Mojave Theme
3865
3865
  *
3866
3866
  * The popup concept (surface, arrow, motion) with a title-magnify title and condense
@@ -3977,7 +3977,7 @@ textarea.FieldControl {
3977
3977
  fill: var(--sl-popup-arrow-stroke);
3978
3978
  }
3979
3979
 
3980
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
3980
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
3981
3981
  /* Progress - Mojave Theme
3982
3982
  *
3983
3983
  * A gauge (tokens/semantic/gauge.json), the same bar as Meter. The fill is the solid color of
@@ -4054,7 +4054,7 @@ textarea.FieldControl {
4054
4054
  height: var(--sl-gauge-height-lg);
4055
4055
  }
4056
4056
 
4057
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
4057
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
4058
4058
  /* Radio - Mojave Theme
4059
4059
  * Same box as Checkbox, always round. Sizes follow the label the same way, and the
4060
4060
  * dot is a share of the circle (check.dot-scale).
@@ -4206,7 +4206,7 @@ textarea.FieldControl {
4206
4206
  gap: var(--sl-gap-stack-sm);
4207
4207
  }
4208
4208
 
4209
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
4209
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
4210
4210
  /* Scroll Area - Mojave Theme
4211
4211
  *
4212
4212
  * The scrollbar is the content scrollbar (content.scrollbar-*): a track that stays clear until
@@ -4288,7 +4288,7 @@ textarea.FieldControl {
4288
4288
  background: transparent;
4289
4289
  }
4290
4290
 
4291
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
4291
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
4292
4292
  /* Select - Mojave Theme
4293
4293
  *
4294
4294
  * The trigger is a field (the field pattern, control sizes, the base text style); the
@@ -4573,7 +4573,7 @@ textarea.FieldControl {
4573
4573
  stroke-width: var(--sl-stroke-default);
4574
4574
  }
4575
4575
 
4576
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
4576
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
4577
4577
  /* Separator - Mojave Theme
4578
4578
  *
4579
4579
  * A hairline in the everyday divider color (border.default), one stroke thick, with a step of
@@ -4601,7 +4601,7 @@ textarea.FieldControl {
4601
4601
  margin-inline: var(--sl-space-4);
4602
4602
  }
4603
4603
 
4604
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
4604
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
4605
4605
  /* Slider - Mojave Theme
4606
4606
  *
4607
4607
  * A slider is a gauge you can drag: the track, fill and label row are gauge.* (the same bar as
@@ -4767,7 +4767,7 @@ textarea.FieldControl {
4767
4767
  transform: translate(-50%, 50%);
4768
4768
  }
4769
4769
 
4770
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
4770
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
4771
4771
  /* Switch - Mojave Theme
4772
4772
  * Switch keeps its track sizes. The thumb, its travel and the ON/OFF text are
4773
4773
  * worked out from them: the thumb fills the track's height inside the padding,
@@ -4933,7 +4933,7 @@ textarea.FieldControl {
4933
4933
  color: var(--sl-text-disabled);
4934
4934
  }
4935
4935
 
4936
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
4936
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
4937
4937
  /* Tabs - Mojave Theme
4938
4938
  *
4939
4939
  * No component tokens. The divider, the selected line and color, hover and the disabled
@@ -5069,7 +5069,7 @@ textarea.FieldControl {
5069
5069
  padding: var(--sl-space-6);
5070
5070
  }
5071
5071
 
5072
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
5072
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
5073
5073
  /* Toast - Mojave Theme
5074
5074
  *
5075
5075
  * A toast is a notice (tokens/semantic/notice.json) on the popup surface. A toast whose type
@@ -5305,7 +5305,7 @@ textarea.FieldControl {
5305
5305
  flex-shrink: 0;
5306
5306
  }
5307
5307
 
5308
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
5308
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
5309
5309
  /* Toggle - Mojave Theme
5310
5310
  * A toggle is a button that stays pressed: the same heights, padding, gap and
5311
5311
  * trigger text style as a button of the same size. Pressed, it takes its emphasis level's
@@ -5417,7 +5417,7 @@ textarea.FieldControl {
5417
5417
  height: var(--sl-icon-size-maximize);
5418
5418
  }
5419
5419
 
5420
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
5420
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
5421
5421
  /* Toggle Group - Mojave Theme
5422
5422
  *
5423
5423
  * No component tokens. The strip is the bar concept (tokens/semantic/bar.json); the
@@ -5479,7 +5479,7 @@ textarea.FieldControl {
5479
5479
  outline-offset: var(--sl-focus-outline-offset-inset);
5480
5480
  }
5481
5481
 
5482
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
5482
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
5483
5483
  /* Toolbar - Mojave Theme
5484
5484
  *
5485
5485
  * The strip is the bar concept (tokens/semantic/bar.json). Buttons, toggles, selects
@@ -5541,7 +5541,7 @@ textarea.FieldControl {
5541
5541
  max-width: var(--sl-toolbar-input-max-width);
5542
5542
  }
5543
5543
 
5544
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
5544
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
5545
5545
  /* Tooltip - Mojave Theme
5546
5546
  *
5547
5547
  * The inverse surface (surface.inverse, text.on-inverse-surface) with condense text, so a tooltip
@@ -5602,7 +5602,7 @@ textarea.FieldControl {
5602
5602
  }
5603
5603
 
5604
5604
  /* Custom components: not Base UI parts. Built from existing concepts and tokens. */
5605
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
5605
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
5606
5606
  /* Badge
5607
5607
  *
5608
5608
  * A status or count label. Not a Base UI part, and not interactive: no hover or focus.
@@ -5707,7 +5707,7 @@ textarea.FieldControl {
5707
5707
  height: var(--sl-badge-dot-base);
5708
5708
  }
5709
5709
 
5710
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
5710
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
5711
5711
  /*
5712
5712
  * DatePicker: a field that opens a calendar for one date or a period.
5713
5713
  * Not a Base UI part. The popup is Popover on a wide viewport and Drawer
@@ -6280,7 +6280,7 @@ textarea.FieldControl {
6280
6280
  flex-basis: 100%;
6281
6281
  }
6282
6282
 
6283
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
6283
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
6284
6284
  /* Money field
6285
6285
  *
6286
6286
  * An amount of money, built on Number field. The value is an integer in minor units
@@ -6625,7 +6625,7 @@ textarea.FieldControl {
6625
6625
  letter-spacing: var(--sl-font-body-base-letter-spacing);
6626
6626
  }
6627
6627
 
6628
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
6628
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
6629
6629
  /* ListDetail
6630
6630
  *
6631
6631
  * The detail of one item, next to its list. Not a Base UI part. It is a Splitter
@@ -6752,7 +6752,7 @@ textarea.FieldControl {
6752
6752
  background: transparent;
6753
6753
  }
6754
6754
 
6755
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
6755
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
6756
6756
  /* Splitter
6757
6757
  *
6758
6758
  * Two or more panels and a handle between them. Not a Base UI part. It follows the
@@ -6960,7 +6960,7 @@ textarea.FieldControl {
6960
6960
  background: var(--sl-border-default);
6961
6961
  }
6962
6962
 
6963
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
6963
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
6964
6964
  /* EmptyState
6965
6965
  *
6966
6966
  * The block a page, pane, table, list or popup shows when it has nothing to show.
@@ -7216,7 +7216,7 @@ textarea.FieldControl {
7216
7216
  color: inherit;
7217
7217
  }
7218
7218
 
7219
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
7219
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
7220
7220
  /* Table - Mojave Theme
7221
7221
  *
7222
7222
  * Base UI has no table, so this styles the native <table class="Table"> elements with the
@@ -7493,7 +7493,7 @@ textarea.FieldControl {
7493
7493
  color: inherit;
7494
7494
  }
7495
7495
 
7496
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
7496
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
7497
7497
  /* Collection
7498
7498
  *
7499
7499
  * DataTable, DataList, the toolbar and the pagination, in one place so the two views
@@ -7504,7 +7504,7 @@ textarea.FieldControl {
7504
7504
  * the tabs and the search where they are, so selecting rows does not grow the toolbar.
7505
7505
  */
7506
7506
 
7507
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
7507
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
7508
7508
  /* Collection toolbar
7509
7509
  *
7510
7510
  * The wrap follows the toolbar's own width, not the window: a table in a narrow pane wraps
@@ -7670,7 +7670,53 @@ textarea.FieldControl {
7670
7670
  border-block-end: var(--sl-stroke-default) solid var(--sl-table-border-color);
7671
7671
  }
7672
7672
 
7673
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
7673
+ /* Segmented toolbar: search, then toggle groups, in one wrapping row. `ruled` adds the sheet
7674
+ rule above it. A group marked `end` (and the ones after it) sits at the far end. */
7675
+ .CollectionToolbar[data-segmented] {
7676
+ flex-direction: row;
7677
+ flex-wrap: wrap;
7678
+ align-items: center;
7679
+ column-gap: var(--sl-space-4);
7680
+ row-gap: var(--sl-space-3);
7681
+ }
7682
+
7683
+ .CollectionToolbar[data-segmented][data-ruled] {
7684
+ border-top: var(--sl-sheet-rule-width) solid var(--sl-border-strong, currentColor);
7685
+ padding-top: var(--sl-space-3);
7686
+ }
7687
+
7688
+ .CollectionToolbar[data-segmented] .CollectionSearch {
7689
+ flex: 0 1 var(--sl-collection-search-fixed-width);
7690
+ min-width: 12rem;
7691
+ }
7692
+
7693
+ .CollectionSegment {
7694
+ display: flex;
7695
+ align-items: center;
7696
+ gap: var(--sl-space-2);
7697
+ }
7698
+
7699
+ .CollectionSegment[data-end] {
7700
+ margin-inline-start: auto;
7701
+ }
7702
+
7703
+ .CollectionSegmentLabel {
7704
+ font-family: var(--sl-font-figures-condense-font-family);
7705
+ font-size: var(--sl-font-figures-condense-font-size);
7706
+ font-weight: var(--sl-font-figures-condense-font-weight);
7707
+ line-height: var(--sl-font-figures-condense-line-height);
7708
+ letter-spacing: var(--sl-font-figures-condense-letter-spacing);
7709
+ font-variant-numeric: var(--sl-font-figures-condense-font-variant-numeric);
7710
+ font-weight: 600;
7711
+ text-transform: uppercase;
7712
+ color: var(--sl-text-secondary);
7713
+ }
7714
+
7715
+ .CollectionToolbar[data-segmented] .CollectionToolbarMeta {
7716
+ margin-inline-start: auto;
7717
+ }
7718
+
7719
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
7674
7720
  /* DataTable additions on top of .Table.
7675
7721
  *
7676
7722
  * Sort buttons fill the header cell and inherit its hover, so old aria-sort markup keeps
@@ -7869,7 +7915,7 @@ textarea.FieldControl {
7869
7915
  }
7870
7916
  }
7871
7917
 
7872
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
7918
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
7873
7919
  /* DataList
7874
7920
  *
7875
7921
  * The same rows as the table, in one container with the table's borders, hover, selected
@@ -8011,7 +8057,7 @@ textarea.FieldControl {
8011
8057
  transition: opacity var(--sl-duration-fast) var(--sl-easing-default);
8012
8058
  }
8013
8059
 
8014
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
8060
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
8015
8061
  /* Collection cards
8016
8062
  *
8017
8063
  * The page of a collection as a grid. Columns fill the width, none narrower than
@@ -8036,7 +8082,7 @@ textarea.FieldControl {
8036
8082
  flex: 1 1 auto;
8037
8083
  }
8038
8084
 
8039
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
8085
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
8040
8086
  /* Pagination
8041
8087
  *
8042
8088
  * Not tied to a collection. Anything with a page, a page count and a total can use it.
@@ -8061,7 +8107,7 @@ textarea.FieldControl {
8061
8107
  margin: 0;
8062
8108
  }
8063
8109
 
8064
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
8110
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
8065
8111
  /* EditableList
8066
8112
  *
8067
8113
  * One table at every width, so a field is not submitted twice. Under the stack width each
@@ -8160,7 +8206,7 @@ textarea.FieldControl {
8160
8206
  }
8161
8207
  }
8162
8208
 
8163
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
8209
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
8164
8210
  /* Sheet
8165
8211
  *
8166
8212
  * A working-paper surface: the raised surface with a heavier rule across its top
@@ -8259,7 +8305,7 @@ textarea.FieldControl {
8259
8305
  border-top: 0;
8260
8306
  }
8261
8307
 
8262
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
8308
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
8263
8309
  /* StatFigure
8264
8310
  *
8265
8311
  * One large figure with a caps label above and a caption under it. The label is
@@ -8320,7 +8366,7 @@ textarea.FieldControl {
8320
8366
  color: var(--sl-stat-figure-caption-color);
8321
8367
  }
8322
8368
 
8323
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
8369
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
8324
8370
  /* StatCard
8325
8371
  *
8326
8372
  * A card for one thing a page lists: a name (the heading), a caption, and a row of StatFigures
@@ -8439,7 +8485,50 @@ textarea.FieldControl {
8439
8485
  border-top: var(--sl-stat-card-border-width) solid var(--sl-stat-card-footer-border-color);
8440
8486
  }
8441
8487
 
8442
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
8488
+ /* Detailed card: details (a leader list), a status and actions. The figures sit snug, the list
8489
+ runs with no rules between pairs, and the footer is a column ending in a ruled bar. */
8490
+ .StatCard[data-detailed] {
8491
+ --sl-stat-card-facts-padding-block: var(--sl-space-2);
8492
+ --sl-description-list-row-border-color: transparent;
8493
+ --sl-description-list-row-padding-block: var(--sl-space-1);
8494
+ --sl-stat-card-footer-border-color: var(--sl-stat-card-rule-color);
8495
+ }
8496
+
8497
+ .StatCard[data-detailed] .StatCardFooter {
8498
+ display: flex;
8499
+ flex-direction: column;
8500
+ padding: 0;
8501
+ }
8502
+
8503
+ .StatCard[data-detailed] .DescriptionList {
8504
+ padding-block: var(--sl-space-1);
8505
+ }
8506
+
8507
+ /* The bar sits above the card's link so its buttons stay clickable. */
8508
+ .StatCardBar {
8509
+ position: relative;
8510
+ z-index: 1;
8511
+ display: flex;
8512
+ align-items: center;
8513
+ gap: var(--sl-space-2);
8514
+ margin-top: auto;
8515
+ padding: var(--sl-space-2) var(--sl-stat-card-padding-inline);
8516
+ border-top: var(--sl-stroke-default) solid var(--sl-stat-card-facts-divider-color);
8517
+ background: var(--sl-stat-card-background-hover);
8518
+ }
8519
+
8520
+ .StatCardStatus {
8521
+ font-family: var(--sl-font-body-condense-font-family);
8522
+ font-size: var(--sl-font-body-condense-font-size);
8523
+ font-weight: var(--sl-font-body-condense-font-weight);
8524
+ line-height: var(--sl-font-body-condense-line-height);
8525
+ letter-spacing: var(--sl-font-body-condense-letter-spacing);
8526
+ margin-inline-end: auto;
8527
+ font-weight: 600;
8528
+ white-space: nowrap;
8529
+ }
8530
+
8531
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
8443
8532
  /* DescriptionList
8444
8533
  *
8445
8534
  * Label and value pairs in a native dl, one DescriptionItem (a div holding a dt and a dd)
@@ -8517,7 +8606,7 @@ textarea.FieldControl {
8517
8606
  text-align: end;
8518
8607
  }
8519
8608
 
8520
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
8609
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
8521
8610
  /* AppBar
8522
8611
  *
8523
8612
  * The bar across the top of an app window, one row on a line in the rule color. The line is
@@ -8551,13 +8640,13 @@ textarea.FieldControl {
8551
8640
  background: var(--sl-app-bar-divider-color);
8552
8641
  }
8553
8642
 
8554
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
8643
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
8555
8644
  /* PickerButton
8556
8645
  *
8557
8646
  * A trigger with a caps label before the current choice: CLIENT Alpha Services. The field
8558
8647
  * look and states of a Select trigger; the label is caps-condense in picker-button.label-color,
8559
8648
  * the choice is cut with an ellipsis at picker-button.max-width and the chevron turns while
8560
- * its popup is open. Label and choice share a baseline, so caps beside lowercase read as one line;
8649
+ * 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;
8561
8650
  * picker-button.text-offset nudges both down for a typeface that sits high. Tokens: picker-button.* (tokens/component/picker-button.json) and field.*.
8562
8651
  */
8563
8652
 
@@ -8574,13 +8663,13 @@ textarea.FieldControl {
8574
8663
  font-weight: var(--sl-font-body-base-font-weight);
8575
8664
  line-height: var(--sl-font-body-base-line-height);
8576
8665
  letter-spacing: var(--sl-font-body-base-letter-spacing);
8577
- /* A grid, not a flex row: label and choice share a baseline, and align-content centers that
8666
+ /* A grid, not a flex row: label and choice are centered on the same line, and align-content centers that
8578
8667
  pair in the button's height. The choice column shrinks so a long choice gets its ellipsis. */
8579
8668
  display: inline-grid;
8580
8669
  grid-auto-flow: column;
8581
8670
  grid-template-columns: max-content minmax(0, max-content);
8582
8671
  grid-auto-columns: max-content;
8583
- align-items: baseline;
8672
+ align-items: center;
8584
8673
  align-content: center;
8585
8674
  justify-content: start;
8586
8675
  gap: var(--sl-gap-control);
@@ -8651,7 +8740,7 @@ textarea.FieldControl {
8651
8740
  transform: rotate(180deg);
8652
8741
  }
8653
8742
 
8654
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
8743
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
8655
8744
  /* PickerSplit
8656
8745
  *
8657
8746
  * A PickerButton whose choice is itself a control: the main part (CLIENT Alpha Services) acts,
@@ -8706,7 +8795,7 @@ textarea.FieldControl {
8706
8795
  grid-auto-flow: column;
8707
8796
  grid-template-columns: max-content minmax(0, max-content);
8708
8797
  grid-auto-columns: max-content;
8709
- align-items: baseline;
8798
+ align-items: center;
8710
8799
  align-content: center;
8711
8800
  justify-content: start;
8712
8801
  gap: var(--sl-gap-control);
@@ -8749,7 +8838,29 @@ textarea.FieldControl {
8749
8838
  transform: rotate(180deg);
8750
8839
  }
8751
8840
 
8752
- /* @scattered-light/loomiere-base-ui 0.19.0 · styles for @base-ui/react 1.9.0 */
8841
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
8842
+ /* SplitButton
8843
+ *
8844
+ * A Button and a square Menu trigger side by side, joined into one outline: the inner corners
8845
+ * are square and the trigger overlaps the main part's border by one stroke.
8846
+ */
8847
+
8848
+ .SplitButton {
8849
+ display: inline-flex;
8850
+ }
8851
+
8852
+ .SplitButton > .Button:first-child {
8853
+ border-start-end-radius: 0;
8854
+ border-end-end-radius: 0;
8855
+ }
8856
+
8857
+ .SplitButton > :last-child {
8858
+ border-start-start-radius: 0;
8859
+ border-end-start-radius: 0;
8860
+ margin-inline-start: -1px;
8861
+ }
8862
+
8863
+ /* @scattered-light/loomiere-base-ui 0.20.0 · styles for @base-ui/react 1.9.0 */
8753
8864
  /* SideNav
8754
8865
  *
8755
8866
  * The column of links down the side of a workspace. Rows are ruled apart with a hairline; the