@scattered-light/loomiere-base-ui 0.7.1 → 0.9.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 (99) hide show
  1. package/README.md +53 -2
  2. package/dist/{chunk-JUUPOOQQ.js → chunk-LQWPDLLQ.js} +66 -3
  3. package/dist/chunk-LQWPDLLQ.js.map +1 -0
  4. package/dist/custom/collection/index.d.ts +6 -1
  5. package/dist/custom/collection/index.js +18 -12
  6. package/dist/custom/collection/index.js.map +1 -1
  7. package/dist/custom/index.d.ts +1 -1
  8. package/dist/custom/index.js +1 -1
  9. package/dist/design-system/components/AppBar/README.md +58 -0
  10. package/dist/design-system/components/AppBar/preview.html +19 -0
  11. package/dist/design-system/components/ContextMenu/README.md +1 -1
  12. package/dist/design-system/components/ContextMenu/preview.html +1 -1
  13. package/dist/design-system/components/DataList/README.md +1 -1
  14. package/dist/design-system/components/DataList/preview.html +1 -1
  15. package/dist/design-system/components/DataTable/README.md +1 -1
  16. package/dist/design-system/components/DataTable/preview.html +38 -38
  17. package/dist/design-system/components/DescriptionList/README.md +41 -0
  18. package/dist/design-system/components/DescriptionList/preview.html +19 -0
  19. package/dist/design-system/components/Drawer/README.md +1 -1
  20. package/dist/design-system/components/PickerButton/README.md +56 -0
  21. package/dist/design-system/components/PickerButton/preview.html +19 -0
  22. package/dist/design-system/components/ScrollArea/preview.html +2 -2
  23. package/dist/design-system/components/Sheet/README.md +46 -0
  24. package/dist/design-system/components/Sheet/preview.html +19 -0
  25. package/dist/design-system/components/StatFigure/README.md +38 -0
  26. package/dist/design-system/components/StatFigure/preview.html +19 -0
  27. package/dist/design-system/components/Table/README.md +2 -2
  28. package/dist/design-system/components/Table/preview.html +2 -2
  29. package/dist/design-system/components/ToggleGroup/README.md +2 -2
  30. package/dist/design-system/components/ToggleGroup/preview.html +1 -1
  31. package/dist/design-system/components/bundle.js +7 -7
  32. package/dist/design-system/components/index.d.ts +1 -1
  33. package/dist/design-system/components/styles.css +531 -56
  34. package/dist/{index-ChJXlxzq.d.ts → index-DdHpYalU.d.ts} +84 -1
  35. package/dist/index.d.ts +1 -1
  36. package/dist/index.js +1 -1
  37. package/dist/styles/components/Accordion.css +1 -1
  38. package/dist/styles/components/AlertDialog.css +1 -1
  39. package/dist/styles/components/Autocomplete.css +1 -1
  40. package/dist/styles/components/Avatar.css +1 -1
  41. package/dist/styles/components/Button.css +1 -1
  42. package/dist/styles/components/Checkbox.css +1 -1
  43. package/dist/styles/components/CheckboxGroup.css +1 -1
  44. package/dist/styles/components/Collapsible.css +1 -1
  45. package/dist/styles/components/Combobox.css +1 -1
  46. package/dist/styles/components/ContextMenu.css +1 -1
  47. package/dist/styles/components/Dialog.css +1 -1
  48. package/dist/styles/components/Drawer.css +8 -2
  49. package/dist/styles/components/Field.css +1 -1
  50. package/dist/styles/components/Fieldset.css +1 -1
  51. package/dist/styles/components/Form.css +1 -1
  52. package/dist/styles/components/Input.css +1 -1
  53. package/dist/styles/components/Menu.css +1 -1
  54. package/dist/styles/components/Menubar.css +1 -1
  55. package/dist/styles/components/Meter.css +1 -1
  56. package/dist/styles/components/NavigationMenu.css +1 -1
  57. package/dist/styles/components/NumberField.css +1 -1
  58. package/dist/styles/components/OTPField.css +1 -1
  59. package/dist/styles/components/Popover.css +1 -1
  60. package/dist/styles/components/PreviewCard.css +1 -1
  61. package/dist/styles/components/Progress.css +1 -1
  62. package/dist/styles/components/Radio.css +1 -1
  63. package/dist/styles/components/ScrollArea.css +1 -1
  64. package/dist/styles/components/Select.css +1 -1
  65. package/dist/styles/components/Separator.css +1 -1
  66. package/dist/styles/components/Slider.css +1 -1
  67. package/dist/styles/components/Switch.css +1 -1
  68. package/dist/styles/components/Tabs.css +1 -1
  69. package/dist/styles/components/Toast.css +1 -1
  70. package/dist/styles/components/Toggle.css +1 -1
  71. package/dist/styles/components/ToggleGroup.css +42 -1
  72. package/dist/styles/components/Toolbar.css +1 -1
  73. package/dist/styles/components/Tooltip.css +1 -1
  74. package/dist/styles/custom/AppBar.css +33 -0
  75. package/dist/styles/custom/Badge.css +1 -1
  76. package/dist/styles/custom/Collection.css +1 -1
  77. package/dist/styles/custom/CollectionPagination.css +1 -1
  78. package/dist/styles/custom/CollectionToolbar.css +1 -1
  79. package/dist/styles/custom/DataList.css +19 -1
  80. package/dist/styles/custom/DataTable.css +1 -1
  81. package/dist/styles/custom/DatePicker.css +1 -1
  82. package/dist/styles/custom/DescriptionList.css +75 -0
  83. package/dist/styles/custom/EditableList.css +1 -1
  84. package/dist/styles/custom/EmptyState.css +1 -1
  85. package/dist/styles/custom/ListDetail.css +1 -1
  86. package/dist/styles/custom/MoneyField.css +1 -1
  87. package/dist/styles/custom/PickerButton.css +85 -0
  88. package/dist/styles/custom/Sheet.css +90 -0
  89. package/dist/styles/custom/Splitter.css +1 -1
  90. package/dist/styles/custom/StatFigure.css +60 -0
  91. package/dist/styles/custom/Table.css +63 -1
  92. package/dist/styles/index.css +6 -1
  93. package/dist/styles/reset/accessibility.css +1 -1
  94. package/dist/styles/reset/reset-accessibility.css +1 -1
  95. package/dist/styles/reset/reset-tailwind.css +2 -2
  96. package/dist/styles/reset/reset.css +2 -2
  97. package/dist/styles/tailwind.css +6 -1
  98. package/package.json +2 -2
  99. package/dist/chunk-JUUPOOQQ.js.map +0 -1
@@ -732,6 +732,89 @@ declare const EmptyState: React.ForwardRefExoticComponent<Omit<EmptyStateProps,
732
732
  Actions: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
733
733
  };
734
734
 
735
+ type SheetProps = Omit<React.ComponentProps<'section'>, 'title'> & {
736
+ /** The tab label that sits on the top rule, set in caps. It also names the section. */
737
+ label?: React.ReactNode;
738
+ /** Something at the end of the header row, beside the tab label: an Edit link, a count. */
739
+ action?: React.ReactNode;
740
+ /** Pad the content by sheet.padding. Leave it off when rows or a table inside run edge to edge. */
741
+ inset?: boolean;
742
+ };
743
+ /**
744
+ * A working-paper surface: a raised panel with a heavier rule across its top (sheet.rule-*),
745
+ * and an optional tab label sitting on that rule. A section, named by its label; without
746
+ * a label, give it an `aria-label`. Not a Base UI part, so it does not take `render`.
747
+ */
748
+ declare const Sheet: React.ForwardRefExoticComponent<Omit<SheetProps, "ref"> & React.RefAttributes<HTMLElement>>;
749
+
750
+ type StatFigureProps = Omit<React.ComponentProps<'div'>, 'children'> & {
751
+ /** The caps label above the figure: "Book balance", "Open questions". */
752
+ label: React.ReactNode;
753
+ /** The figure itself, already formatted: "1,318.22", "(40.00)", "3". */
754
+ value: React.ReactNode;
755
+ /** A short line under the figure: "on client", "DR · Oct 29". */
756
+ caption?: React.ReactNode;
757
+ /** "double" draws the accountant's double underline, for a final total. Default none. */
758
+ underline?: 'none' | 'double';
759
+ /** "accent" colors the figure as a call to act on it. Default is the text color. */
760
+ tone?: 'default' | 'accent';
761
+ /** "sm" for a row of figures in a card or header. Default "md". */
762
+ size?: 'sm' | 'md';
763
+ };
764
+ /**
765
+ * One large figure with a caps label and an optional caption. The label, figure and caption
766
+ * are read in that order. Not interactive: wrap it in a link to make it one.
767
+ * Not a Base UI part, so it does not take `render`.
768
+ */
769
+ declare const StatFigure: React.ForwardRefExoticComponent<Omit<StatFigureProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
770
+
771
+ type DescriptionListProps = React.ComponentProps<'dl'> & {
772
+ /**
773
+ * "columns" (the default) sets labels in a column beside their values. "leader" runs a dotted
774
+ * leader from each label to its value, which sits at the end of the row.
775
+ */
776
+ variant?: 'columns' | 'leader';
777
+ };
778
+ /** Label and value pairs. Children are DescriptionItems. */
779
+ declare const DescriptionList: React.ForwardRefExoticComponent<Omit<DescriptionListProps, "ref"> & React.RefAttributes<HTMLDListElement>>;
780
+ type DescriptionItemProps = Omit<React.ComponentProps<'div'>, 'children'> & {
781
+ /** The term: "Legal name", "Fiscal year". */
782
+ label: React.ReactNode;
783
+ /** The value. */
784
+ children?: React.ReactNode;
785
+ };
786
+ /** One pair: a dt and its dd, grouped in a div as HTML allows inside a dl. */
787
+ declare const DescriptionItem: React.ForwardRefExoticComponent<Omit<DescriptionItemProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
788
+
789
+ type AppBarProps = React.ComponentProps<'header'>;
790
+ /**
791
+ * The bar across the top of an app window: wordmark, context pickers, a module switch and
792
+ * icon actions in one row, on a line in the rule color (app-bar.*). A `header`, so it is the
793
+ * page's banner landmark when it sits outside `main`. Put an {@link AppBarSpacer} where the
794
+ * row should split, and a vertical Separator between groups of icon actions.
795
+ * Not a Base UI part, so it does not take `render`.
796
+ */
797
+ declare const AppBar: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
798
+ type AppBarSpacerProps = Omit<React.ComponentProps<'div'>, 'children'>;
799
+ /** Takes the free space in an AppBar, pushing what follows it to the end of the row. */
800
+ declare const AppBarSpacer: React.ForwardRefExoticComponent<Omit<AppBarSpacerProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
801
+
802
+ type PickerButtonProps = Omit<React.ComponentProps<'button'>, 'value'> & {
803
+ /** What the button picks, set in caps before the choice: "Client", "Entity". */
804
+ label: React.ReactNode;
805
+ /** The current choice. Cut with an ellipsis when it is long. */
806
+ value?: React.ReactNode;
807
+ /** Shown in place of the value while nothing is chosen. */
808
+ placeholder?: React.ReactNode;
809
+ };
810
+ /**
811
+ * A trigger that names what it picks with a caps label before the current choice, in the
812
+ * field look of a Select trigger. It opens nothing itself: render it as a Menu, Popover or
813
+ * Select trigger, `<Menu.Trigger render={(props) => <PickerButton {...props} label="Entity" value={name} />} />`.
814
+ * The label and the choice are both read as its name.
815
+ */
816
+ declare const PickerButton: React.ForwardRefExoticComponent<Omit<PickerButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
817
+
735
818
  interface EditableListApi<T> {
736
819
  update: (patch: Partial<T>) => void;
737
820
  remove: () => void;
@@ -806,4 +889,4 @@ declare const EditableList: {
806
889
  Balance: typeof EditableListBalance;
807
890
  };
808
891
 
809
- export { nextMonth as $, addMonths as A, Badge as B, Calendar as C, DatePicker as D, EditableList as E, builtinPresets as F, clampDate as G, daysInMonth as H, defaultPresets as I, defaultWeekStartsOn as J, endOfWeek as K, ListDetail as L, MoneyField as M, NumberField as N, formatMoney as O, type Preset as P, fromMinorUnits as Q, getCurrencyDigits as R, Splitter as S, inclusiveDays as T, isValidCurrency as U, isoWeek as V, last30Days as W, last7Days as X, lastMonth as Y, lastWeek as Z, lengthBlockReason as _, type BadgeProps as a, roundingChangesValue as a$, nextWeek as a0, orderRange as a1, parseDecimalString as a2, resolvePreset as a3, startOfWeek as a4, thisMonth as a5, thisQuarter as a6, thisWeek as a7, toDecimalString as a8, toMinorUnits as a9, type SplitterKey as aA, SplitterPanel as aB, SplitterRoot as aC, type StoredLayout as aD, type StoredPanel as aE, affixSide as aF, applyKey as aG, applyStored as aH, ariaPercents as aI, createPanels as aJ, cssSize as aK, currencyName as aL, currencySymbol as aM, formatDay as aN, formatFull as aO, handleTarget as aP, layoutOf as aQ, measure as aR, monthCells as aS, moveFocusDate as aT, normalizePaste as aU, parseDate as aV, parseSize as aW, presetInBounds as aX, resetToDefault as aY, resizeByDelta as aZ, roundHalfExpand as a_, today as aa, todayDate as ab, tomorrow as ac, useListDetail as ad, yearToDate as ae, yesterday as af, CURRENCY_SEARCH_THRESHOLD as ag, CurrencySelect as ah, type KeyOptions as ai, ListDetailDetail as aj, ListDetailList as ak, ListDetailRoot as al, MAX_MINOR_UNITS as am, type MoneyChangeDetails as an, type MoneyDisplay as ao, MoneyFieldAffix as ap, MoneyFieldGroup as aq, MoneyFieldInput as ar, MoneyFieldRoot as as, type MoneyFieldSteps as at, type NormalizedPaste as au, type PanelSpec as av, type RuntimePanel as aw, type Size as ax, type SizeInput as ay, SplitterHandle as az, type CalendarProps as b, sameSelection as b0, serializeSize as b1, settle as b2, sizeText as b3, syncPanels as b4, toggleCollapsed as b5, valueText as b6, type CurrencyCode as c, type DatePickerProps as d, DatePresets as e, type DatePresetsProps as f, type DateRange as g, type DateValue as h, type EditableListApi as i, type EditableListRootProps as j, EmptyState as k, type EmptyStateKind as l, type EmptyStateProps as m, type ListDetailCloseReason as n, type ListDetailDetailProps as o, type ListDetailLayout as p, type ListDetailRootProps as q, type ListDetailValue as r, type MoneyFieldProps as s, type MoneyFieldRootProps as t, type NumberFieldLabelProps as u, type PresetValue as v, type SplitterHandleProps as w, type SplitterPanelProps as x, type SplitterRootProps as y, addDays as z };
892
+ export { defaultPresets as $, AppBar as A, Badge as B, Calendar as C, DatePicker as D, EditableList as E, type MoneyFieldRootProps as F, type NumberFieldLabelProps as G, type PickerButtonProps as H, type Preset as I, type PresetValue as J, type SheetProps as K, ListDetail as L, MoneyField as M, NumberField as N, Splitter as O, PickerButton as P, type SplitterHandleProps as Q, type SplitterPanelProps as R, Sheet as S, type SplitterRootProps as T, StatFigure as U, type StatFigureProps as V, addDays as W, addMonths as X, builtinPresets as Y, clampDate as Z, daysInMonth as _, type AppBarProps as a, formatDay as a$, defaultWeekStartsOn as a0, endOfWeek as a1, formatMoney as a2, fromMinorUnits as a3, getCurrencyDigits as a4, inclusiveDays as a5, isValidCurrency as a6, isoWeek as a7, last30Days as a8, last7Days as a9, MAX_MINOR_UNITS as aA, type MoneyChangeDetails as aB, type MoneyDisplay as aC, MoneyFieldAffix as aD, MoneyFieldGroup as aE, MoneyFieldInput as aF, MoneyFieldRoot as aG, type MoneyFieldSteps as aH, type NormalizedPaste as aI, type PanelSpec as aJ, type RuntimePanel as aK, type Size as aL, type SizeInput as aM, SplitterHandle as aN, type SplitterKey as aO, SplitterPanel as aP, SplitterRoot as aQ, type StoredLayout as aR, type StoredPanel as aS, affixSide as aT, applyKey as aU, applyStored as aV, ariaPercents as aW, createPanels as aX, cssSize as aY, currencyName as aZ, currencySymbol as a_, lastMonth as aa, lastWeek as ab, lengthBlockReason as ac, nextMonth as ad, nextWeek as ae, orderRange as af, parseDecimalString as ag, resolvePreset as ah, startOfWeek as ai, thisMonth as aj, thisQuarter as ak, thisWeek as al, toDecimalString as am, toMinorUnits as an, today as ao, todayDate as ap, tomorrow as aq, useListDetail as ar, yearToDate as as, yesterday as at, CURRENCY_SEARCH_THRESHOLD as au, CurrencySelect as av, type KeyOptions as aw, ListDetailDetail as ax, ListDetailList as ay, ListDetailRoot as az, AppBarSpacer as b, formatFull as b0, handleTarget as b1, layoutOf as b2, measure as b3, monthCells as b4, moveFocusDate as b5, normalizePaste as b6, parseDate as b7, parseSize as b8, presetInBounds as b9, resetToDefault as ba, resizeByDelta as bb, roundHalfExpand as bc, roundingChangesValue as bd, sameSelection as be, serializeSize as bf, settle as bg, sizeText as bh, syncPanels as bi, toggleCollapsed as bj, valueText as bk, type AppBarSpacerProps as c, type BadgeProps as d, type CalendarProps as e, type CurrencyCode as f, type DatePickerProps as g, DatePresets as h, type DatePresetsProps as i, type DateRange as j, type DateValue as k, DescriptionItem as l, type DescriptionItemProps as m, DescriptionList as n, type DescriptionListProps as o, type EditableListApi as p, type EditableListRootProps as q, EmptyState as r, type EmptyStateKind as s, type EmptyStateProps as t, type ListDetailCloseReason as u, type ListDetailDetailProps as v, type ListDetailLayout as w, type ListDetailRootProps as x, type ListDetailValue as y, type MoneyFieldProps as z };
package/dist/index.d.ts CHANGED
@@ -7,7 +7,7 @@ import { Fieldset as Fieldset$1 } from '@base-ui/react/fieldset';
7
7
  import { Form as Form$1 } from '@base-ui/react/form';
8
8
  import { NavigationMenu as NavigationMenu$1 } from '@base-ui/react/navigation-menu';
9
9
  import { Select as Select$1 } from '@base-ui/react/select';
10
- export { B as Badge, a as BadgeProps, C as Calendar, b as CalendarProps, c as CurrencyCode, D as DatePicker, d as DatePickerProps, e as DatePresets, f as DatePresetsProps, g as DateRange, h as DateValue, E as EditableList, i as EditableListApi, j as EditableListRootProps, k as EmptyState, l as EmptyStateKind, m as EmptyStateProps, L as ListDetail, n as ListDetailCloseReason, o as ListDetailDetailProps, p as ListDetailLayout, q as ListDetailRootProps, r as ListDetailValue, M as MoneyField, s as MoneyFieldProps, t as MoneyFieldRootProps, N as NumberField, u as NumberFieldLabelProps, P as Preset, v as PresetValue, S as Splitter, w as SplitterHandleProps, x as SplitterPanelProps, y as SplitterRootProps, z as addDays, A as addMonths, F as builtinPresets, G as clampDate, H as daysInMonth, I as defaultPresets, J as defaultWeekStartsOn, K as endOfWeek, O as formatMoney, Q as fromMinorUnits, R as getCurrencyDigits, T as inclusiveDays, U as isValidCurrency, V as isoWeek, W as last30Days, X as last7Days, Y as lastMonth, Z as lastWeek, _ as lengthBlockReason, $ as nextMonth, a0 as nextWeek, a1 as orderRange, a2 as parseDecimalString, a3 as resolvePreset, a4 as startOfWeek, a5 as thisMonth, a6 as thisQuarter, a7 as thisWeek, a8 as toDecimalString, a9 as toMinorUnits, aa as today, ab as todayDate, ac as tomorrow, ad as useListDetail, ae as yearToDate, af as yesterday } from './index-ChJXlxzq.js';
10
+ export { A as AppBar, a as AppBarProps, b as AppBarSpacer, c as AppBarSpacerProps, B as Badge, d as BadgeProps, C as Calendar, e as CalendarProps, f as CurrencyCode, D as DatePicker, g as DatePickerProps, h as DatePresets, i as DatePresetsProps, j as DateRange, k as DateValue, l as DescriptionItem, m as DescriptionItemProps, n as DescriptionList, o as DescriptionListProps, E as EditableList, p as EditableListApi, q as EditableListRootProps, r as EmptyState, s as EmptyStateKind, t as EmptyStateProps, L as ListDetail, u as ListDetailCloseReason, v as ListDetailDetailProps, w as ListDetailLayout, x as ListDetailRootProps, y as ListDetailValue, M as MoneyField, z as MoneyFieldProps, F as MoneyFieldRootProps, N as NumberField, G as NumberFieldLabelProps, P as PickerButton, H as PickerButtonProps, I as Preset, J as PresetValue, S as Sheet, K as SheetProps, O as Splitter, Q as SplitterHandleProps, R as SplitterPanelProps, T as SplitterRootProps, U as StatFigure, V as StatFigureProps, W as addDays, X as addMonths, Y as builtinPresets, Z as clampDate, _ as daysInMonth, $ as defaultPresets, a0 as defaultWeekStartsOn, a1 as endOfWeek, a2 as formatMoney, a3 as fromMinorUnits, a4 as getCurrencyDigits, a5 as inclusiveDays, a6 as isValidCurrency, a7 as isoWeek, a8 as last30Days, a9 as last7Days, aa as lastMonth, ab as lastWeek, ac as lengthBlockReason, ad as nextMonth, ae as nextWeek, af as orderRange, ag as parseDecimalString, ah as resolvePreset, ai as startOfWeek, aj as thisMonth, ak as thisQuarter, al as thisWeek, am as toDecimalString, an as toMinorUnits, ao as today, ap as todayDate, aq as tomorrow, ar as useListDetail, as as yearToDate, at as yesterday } from './index-DdHpYalU.js';
11
11
  import * as _base_ui_react_internals_filter from '@base-ui/react/internals/filter';
12
12
  import { AutocompleteRootProps, Autocomplete as Autocomplete$1 } from '@base-ui/react/autocomplete';
13
13
  import { ComboboxRootProps, Combobox as Combobox$1 } from '@base-ui/react/combobox';
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { Badge, Calendar, DatePicker, DatePresets, Drawer, EditableList, Field, ListDetail, MoneyField, NumberField, Popover, Splitter, addDays, addMonths, builtinPresets, clampDate, daysInMonth, defaultPresets, defaultWeekStartsOn, endOfWeek, formatMoney, fromMinorUnits, getCurrencyDigits, inclusiveDays, isValidCurrency, isoWeek, last30Days, last7Days, lastMonth, lastWeek, lengthBlockReason, nextMonth, nextWeek, orderRange, parseDecimalString, resolvePreset, startOfWeek, thisMonth, thisQuarter, thisWeek, toDecimalString, toMinorUnits, today, todayDate, tomorrow, useListDetail, yearToDate, yesterday } from './chunk-JUUPOOQQ.js';
1
+ export { AppBar, AppBarSpacer, Badge, Calendar, DatePicker, DatePresets, DescriptionItem, DescriptionList, Drawer, EditableList, Field, ListDetail, MoneyField, NumberField, PickerButton, Popover, Sheet, Splitter, StatFigure, addDays, addMonths, builtinPresets, clampDate, daysInMonth, defaultPresets, defaultWeekStartsOn, endOfWeek, formatMoney, fromMinorUnits, getCurrencyDigits, inclusiveDays, isValidCurrency, isoWeek, last30Days, last7Days, lastMonth, lastWeek, lengthBlockReason, nextMonth, nextWeek, orderRange, parseDecimalString, resolvePreset, startOfWeek, thisMonth, thisQuarter, thisWeek, toDecimalString, toMinorUnits, today, todayDate, tomorrow, useListDetail, yearToDate, yesterday } from './chunk-LQWPDLLQ.js';
2
2
  export { Checkbox, CheckboxLabel, Input, Menu, Tabs } from './chunk-Y2CPBMFJ.js';
3
3
  import { cnState, styledPart, styledPartUnless, buttonPart, cn } from './chunk-M7KJASGK.js';
4
4
  export { Button, Combobox, EmptyState, Select, cn, cnState } from './chunk-M7KJASGK.js';
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Accordion - Mojave Theme
3
3
  *
4
4
  * No component tokens. Hover, press, chevron, divider and motion are the disclosure
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Alert Dialog - Mojave Theme
3
3
  *
4
4
  * No component tokens and no rules of its own. An alert dialog looks exactly like a
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Autocomplete - Mojave Theme
3
3
  *
4
4
  * No component tokens. The input is Input (Input.css), the clear button is an icon
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Avatar - Mojave Theme
3
3
  *
4
4
  * A round picture with a ring in the page color, so avatars in a group cut out of each other in
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Button - Mojave Theme
3
3
  *
4
4
  * Colors are the brand's emphasis levels, sizes are control.*, text is the trigger
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Checkbox - Mojave Theme
3
3
  * Sizes follow the label: the box is the icon size one tier above the label's text
4
4
  * tier (like a button's icon) and the check mark one tier below it.
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Checkbox Group - Mojave Theme */
3
3
 
4
4
  /* Each checkbox row is already a full tap target tall, so the rows sit close. */
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Collapsible - Mojave Theme
3
3
  *
4
4
  * No component tokens. Hover, press, chevron and motion are the disclosure concept
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Combobox - Mojave Theme
3
3
  *
4
4
  * No component tokens. The input is Input (Input.css); the chips box is a field; the
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Context Menu - Mojave Theme
3
3
  *
4
4
  * 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
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Dialog and Alert dialog - Mojave Theme
3
3
  *
4
4
  * Both are centered modals built from the modal concept (tokens/semantic/modal.json):
@@ -1,9 +1,11 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Drawer - a panel that slides in from an edge and can be swiped away.
3
3
  The surface, scrim, heading and motion are the modal concept's (--sl-modal-*), so a
4
4
  drawer reads as a dialog's sibling; only its size and grab bar are its own
5
5
  (--sl-drawer-*). Base UI supplies the swipe through
6
- --drawer-swipe-movement-x/y and data-swipe-direction on the popup. */
6
+ --drawer-swipe-movement-x/y and data-swipe-direction on the popup.
7
+ The working-paper rule (rule.width, 0 by default) replaces the top border with a heavier
8
+ line in rule.color. It is an inset shadow, so it stays put while the drawer scrolls. */
7
9
 
8
10
  .DrawerBackdrop {
9
11
  position: fixed;
@@ -40,6 +42,8 @@
40
42
  overflow-y: auto;
41
43
  overscroll-behavior: contain;
42
44
  pointer-events: auto;
45
+ border-top-width: max(0px, var(--sl-modal-border-width) - var(--sl-rule-width) * 1000);
46
+ box-shadow: inset 0 var(--sl-rule-width) 0 0 var(--sl-rule-color), var(--sl-modal-shadow);
43
47
  transform: translate(var(--drawer-swipe-movement-x, 0px), var(--drawer-swipe-movement-y, 0px));
44
48
  transition: transform calc(var(--sl-modal-animation-duration) * var(--drawer-swipe-strength, 1)) var(--sl-modal-animation-easing);
45
49
  }
@@ -70,6 +74,8 @@
70
74
  max-height: var(--sl-drawer-popup-max-size);
71
75
  border-top: 0;
72
76
  border-radius: 0 0 var(--sl-modal-radius) var(--sl-modal-radius);
77
+ /* Its top edge is the screen's, so no rule. */
78
+ box-shadow: var(--sl-modal-shadow);
73
79
  }
74
80
 
75
81
  .DrawerPopup[data-swipe-direction='right'] {
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Field - Mojave Theme
3
3
  *
4
4
  * Label, control, description and error. No component tokens: spacing is the field
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Fieldset - Mojave Theme
3
3
  *
4
4
  * No component tokens: a titled group of fields, spaced by the stack gaps, with
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Form - Mojave Theme
3
3
  *
4
4
  * No component tokens: fields stack with the large block space, and the action
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Input - Mojave Theme
3
3
  *
4
4
  * No component tokens: the look is the field concept (tokens/semantic/field.json),
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Menu - Mojave Theme
3
3
  *
4
4
  * No component tokens. The trigger is a Button. The popup is the popup concept, rows are item rows at the
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Menubar - Mojave Theme
3
3
  *
4
4
  * No component tokens. A row of quiet triggers, each opening a menu. The popup is the popup concept, rows are item rows at the
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Meter - Mojave Theme
3
3
  *
4
4
  * A gauge (tokens/semantic/gauge.json). The fill is the solid color of the scope around it:
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Navigation Menu - Mojave Theme
3
3
  *
4
4
  * The strip is the bar concept, the panel is the popup concept and each link is an item
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Number Field - Mojave Theme
3
3
  *
4
4
  * No component tokens. The input is Input (Input.css) and the label, description and
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* OTP Field - Mojave Theme
3
3
  *
4
4
  * One-time code entry: a row of single-character inputs. Each slot is the same control as Input
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Popover - Mojave Theme */
3
3
 
4
4
  /* ============================================
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Preview Card - Mojave Theme
3
3
  *
4
4
  * The popup concept (surface, arrow, motion) with a title-magnify title and condense
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Progress - Mojave Theme
3
3
  *
4
4
  * A gauge (tokens/semantic/gauge.json), the same bar as Meter. The fill is the solid color of
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Radio - Mojave Theme
3
3
  * Same box as Checkbox, always round. Sizes follow the label the same way, and the
4
4
  * dot is a share of the circle (check.dot-scale).
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Scroll Area - Mojave Theme
3
3
  *
4
4
  * The scrollbar is the content scrollbar (content.scrollbar-*): a track that stays clear until
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Select - Mojave Theme
3
3
  *
4
4
  * The trigger is a field (the field pattern, control sizes, the base text style); the
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Separator - Mojave Theme
3
3
  *
4
4
  * A hairline in the everyday divider color (border.default), one stroke thick, with a step of
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Slider - Mojave Theme
3
3
  *
4
4
  * A slider is a gauge you can drag: the track, fill and label row are gauge.* (the same bar as
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Switch - Mojave Theme
3
3
  * Switch keeps its track sizes. The thumb, its travel and the ON/OFF text are
4
4
  * worked out from them: the thumb fills the track's height inside the padding,
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Tabs - Mojave Theme
3
3
  *
4
4
  * No component tokens. The divider, the selected line and color, hover and the disabled
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Toast - Mojave Theme
3
3
  *
4
4
  * A toast is a notice (tokens/semantic/notice.json) on the popup surface. A toast whose type
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Toggle - Mojave Theme
3
3
  * A toggle is a button that stays pressed: the same heights, padding, gap and
4
4
  * trigger text style as a button of the same size. Pressed, it takes its emphasis level's
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Toggle Group - Mojave Theme
3
3
  *
4
4
  * No component tokens. The strip is the bar concept (tokens/semantic/bar.json); the
@@ -18,3 +18,44 @@
18
18
  .ToggleGroup .Toggle {
19
19
  border-radius: var(--sl-radius-item);
20
20
  }
21
+
22
+ /* ============================================
23
+ SEGMENTED (data-variant="segmented")
24
+ Joined toggles in one outline, the pressed one filled solid: a switch between a few
25
+ views or modules. Tokens: toggle-group.segmented-* (tokens/component/toggle-group.json).
26
+ ============================================ */
27
+
28
+ .ToggleGroup[data-variant='segmented'] {
29
+ padding: 0;
30
+ gap: 0;
31
+ background: var(--sl-toggle-group-segmented-background);
32
+ border: var(--sl-stroke-default) solid var(--sl-toggle-group-segmented-border-color);
33
+ border-radius: var(--sl-radius-chrome);
34
+ overflow: hidden;
35
+ }
36
+
37
+ .ToggleGroup[data-variant='segmented'] .Toggle {
38
+ height: calc(var(--sl-control-height-md) - 2 * var(--sl-stroke-default));
39
+ border: 0;
40
+ border-radius: 0;
41
+ background: transparent;
42
+ color: var(--sl-text-primary);
43
+ }
44
+
45
+ .ToggleGroup[data-variant='segmented'] .Toggle + .Toggle {
46
+ border-inline-start: var(--sl-stroke-default) solid var(--sl-toggle-group-segmented-border-color);
47
+ }
48
+
49
+ .ToggleGroup[data-variant='segmented'] .Toggle:hover:not([data-disabled]):not(:disabled) {
50
+ background: var(--sl-fill-subtle);
51
+ }
52
+
53
+ .ToggleGroup[data-variant='segmented'] .Toggle[data-pressed],
54
+ .ToggleGroup[data-variant='segmented'] .Toggle[data-pressed]:hover:not([data-disabled]):not(:disabled) {
55
+ background: var(--sl-toggle-group-segmented-pressed-background);
56
+ color: var(--sl-toggle-group-segmented-pressed-color);
57
+ }
58
+
59
+ .ToggleGroup[data-variant='segmented'] .Toggle:focus-visible {
60
+ outline-offset: var(--sl-focus-outline-offset-inset);
61
+ }
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Toolbar - Mojave Theme
3
3
  *
4
4
  * The strip is the bar concept (tokens/semantic/bar.json). Buttons, toggles, selects
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Tooltip - Mojave Theme
3
3
  *
4
4
  * The inverse surface (surface.inverse, text.on-inverse-surface) with condense text, so a tooltip
@@ -0,0 +1,33 @@
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
+ /* AppBar
3
+ *
4
+ * The bar across the top of an app window, one row on a line in the rule color. The line is
5
+ * app-bar.border-width while rule.width is 0, and the thicker of the two once a brand turns the
6
+ * rule on, so an ink-rule brand gets the working-paper rule under its app bar.
7
+ * AppBarSpacer pushes what follows it to the end. A vertical Separator inside is a short
8
+ * divider between groups of icon actions. Tokens: app-bar.* (tokens/component/app-bar.json).
9
+ */
10
+
11
+ .AppBar {
12
+ box-sizing: border-box;
13
+ display: flex;
14
+ align-items: center;
15
+ gap: var(--sl-app-bar-gap);
16
+ min-height: var(--sl-app-bar-height);
17
+ padding-inline: var(--sl-app-bar-padding-inline);
18
+ padding-block: var(--sl-space-2);
19
+ background: var(--sl-app-bar-background);
20
+ border-bottom: max(var(--sl-app-bar-border-width), var(--sl-rule-width)) solid var(--sl-app-bar-border-color);
21
+ min-width: 0;
22
+ }
23
+
24
+ .AppBarSpacer {
25
+ flex: 1 1 var(--sl-space-4);
26
+ min-width: 0;
27
+ }
28
+
29
+ .AppBar .Separator[data-orientation='vertical'] {
30
+ height: var(--sl-app-bar-divider-height);
31
+ margin-inline: var(--sl-space-1);
32
+ background: var(--sl-app-bar-divider-color);
33
+ }
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Badge
3
3
  *
4
4
  * A status or count label. Not a Base UI part, and not interactive: no hover or focus.
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Collection
3
3
  *
4
4
  * DataTable, DataList, the toolbar and the pagination, in one place so the two views
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Pagination
3
3
  *
4
4
  * Not tied to a collection. Anything with a page, a page count and a total can use it.
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* Collection toolbar
3
3
  *
4
4
  * The wrap follows the toolbar's own width, not the window: a table in a narrow pane wraps
@@ -1,9 +1,12 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* DataList
3
3
  *
4
4
  * The same rows as the table, in one container with the table's borders, hover, selected
5
5
  * and current states. Not a stack of floating cards: the two views should read as one family.
6
6
  * variant=cards adds the surface radius and a gap when a queue should read as separate items.
7
+ *
8
+ * The working-paper rule (rule.width, 0 by default) replaces the top border with a heavier
9
+ * line in rule.color: on the first row, or on each card's top edge.
7
10
  */
8
11
 
9
12
  .DataList {
@@ -22,6 +25,13 @@
22
25
  background: var(--sl-table-background);
23
26
  border: var(--sl-stroke-default) solid var(--sl-table-border-color);
24
27
  border-radius: var(--sl-table-radius);
28
+ /* The top border steps aside while the working-paper rule is on (any rule.width above 0). */
29
+ border-top-width: max(0px, var(--sl-stroke-default) - var(--sl-rule-width) * 1000);
30
+ }
31
+
32
+ /* The working-paper rule on the first row. At rule.width 0 this is no border at all. */
33
+ .DataList ul > li:first-child {
34
+ border-top: var(--sl-rule-width) solid var(--sl-rule-color);
25
35
  }
26
36
 
27
37
  .DataList li {
@@ -115,6 +125,14 @@
115
125
  background: var(--sl-table-background);
116
126
  border: var(--sl-stroke-default) solid var(--sl-table-border-color);
117
127
  border-radius: var(--sl-table-radius);
128
+ border-top-width: max(0px, var(--sl-stroke-default) - var(--sl-rule-width) * 1000);
129
+ box-shadow: inset 0 var(--sl-rule-width) 0 0 var(--sl-rule-color);
130
+ }
131
+
132
+ .DataList[data-variant='cards'] li[aria-current='true'] {
133
+ box-shadow:
134
+ inset var(--sl-stroke-strong) 0 0 0 var(--sl-border-accent),
135
+ inset 0 var(--sl-rule-width) 0 0 var(--sl-rule-color);
118
136
  }
119
137
 
120
138
  .DataList[data-loading] ul {
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /* DataTable additions on top of .Table.
3
3
  *
4
4
  * Sort buttons fill the header cell and inherit its hover, so old aria-sort markup keeps
@@ -1,4 +1,4 @@
1
- /* @scattered-light/loomiere-base-ui 0.7.1 · styles for @base-ui/react 1.9.0 */
1
+ /* @scattered-light/loomiere-base-ui 0.9.0 · styles for @base-ui/react 1.9.0 */
2
2
  /*
3
3
  * DatePicker: a field that opens a calendar for one date or a period.
4
4
  * Not a Base UI part. The popup is Popover on a wide viewport and Drawer