@scattered-light/loomiere-mojave 0.6.0 → 0.7.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 (40) hide show
  1. package/dist/exports/AGENTS.md +24 -8
  2. package/dist/exports/catalog.json +21 -0
  3. package/dist/exports/chakra.js +333 -0
  4. package/dist/exports/design-system/README.md +23 -7
  5. package/dist/exports/design-system/components/Badge/README.md +35 -0
  6. package/dist/exports/design-system/components/Badge/preview.html +19 -0
  7. package/dist/exports/design-system/components/Collection/README.md +14 -0
  8. package/dist/exports/design-system/components/CollectionPagination/README.md +15 -0
  9. package/dist/exports/design-system/components/CollectionToolbar/README.md +24 -0
  10. package/dist/exports/design-system/components/DataList/README.md +39 -0
  11. package/dist/exports/design-system/components/DataList/preview.html +475 -0
  12. package/dist/exports/design-system/components/DataTable/README.md +41 -0
  13. package/dist/exports/design-system/components/DataTable/preview.html +475 -0
  14. package/dist/exports/design-system/components/DatePicker/README.md +55 -0
  15. package/dist/exports/design-system/components/DatePicker/preview.html +475 -0
  16. package/dist/exports/design-system/components/EditableList/README.md +33 -0
  17. package/dist/exports/design-system/components/EditableList/preview.html +475 -0
  18. package/dist/exports/design-system/components/EmptyState/README.md +60 -0
  19. package/dist/exports/design-system/components/EmptyState/preview.html +475 -0
  20. package/dist/exports/design-system/components/ListDetail/README.md +43 -0
  21. package/dist/exports/design-system/components/ListDetail/preview.html +475 -0
  22. package/dist/exports/design-system/components/MoneyField/README.md +52 -0
  23. package/dist/exports/design-system/components/MoneyField/preview.html +475 -0
  24. package/dist/exports/design-system/components/Splitter/README.md +42 -0
  25. package/dist/exports/design-system/components/Splitter/preview.html +475 -0
  26. package/dist/exports/design-system/components/Table/README.md +2 -1
  27. package/dist/exports/design-system/components/Table/preview.html +1 -1
  28. package/dist/exports/design-system/components/bundle.css +2377 -190
  29. package/dist/exports/design-system/components/bundle.js +7 -5
  30. package/dist/exports/design-system/components/index.d.ts +3 -21
  31. package/dist/exports/design-system/tokens.json +15 -0
  32. package/dist/exports/figma.json +1 -1
  33. package/dist/exports/mui.js +727 -0
  34. package/dist/exports/tailwind.css +36 -0
  35. package/dist/exports/tokens.dtcg.json +316 -2
  36. package/dist/tokens.css +111 -4
  37. package/dist/tokens.d.ts +93 -0
  38. package/dist/tokens.js +94 -1
  39. package/dist/tokens.json +572 -2
  40. package/package.json +2 -2
package/dist/tokens.json CHANGED
@@ -11789,6 +11789,13 @@
11789
11789
  "value": "0.125em",
11790
11790
  "description": "A slight em-based rounding so inline focus rings hug the text."
11791
11791
  },
11792
+ {
11793
+ "name": "--sl-a11y-min-target",
11794
+ "path": "a11y.min-target",
11795
+ "layer": "semantic",
11796
+ "value": "24px",
11797
+ "description": "Smallest target for a fine pointer (WCAG 2.5.8). A mouse can hit 24px; a finger still needs min-touch-target. The splitter handle uses this so the grab area does not cover the scrollbar beside it."
11798
+ },
11792
11799
  {
11793
11800
  "name": "--sl-a11y-min-touch-target",
11794
11801
  "path": "a11y.min-touch-target",
@@ -11957,6 +11964,132 @@
11957
11964
  "references": "{space.1}",
11958
11965
  "description": "Extra space either side of a divider."
11959
11966
  },
11967
+ {
11968
+ "name": "--sl-calendar-day-size",
11969
+ "path": "calendar.day-size",
11970
+ "layer": "semantic",
11971
+ "type": "dimension",
11972
+ "value": "2.5rem",
11973
+ "references": "{space.10}",
11974
+ "description": "A day cell on a pointer. space.10 keeps seven columns inside a phone; touch layouts raise the cell to the minimum touch target in CSS."
11975
+ },
11976
+ {
11977
+ "name": "--sl-calendar-day-radius",
11978
+ "path": "calendar.day-radius",
11979
+ "layer": "semantic",
11980
+ "type": "dimension",
11981
+ "value": "9999px",
11982
+ "references": "{radius.pill}",
11983
+ "description": "Selected days are circles. The pill radius is the same full radius badges and switches use."
11984
+ },
11985
+ {
11986
+ "name": "--sl-calendar-day-color",
11987
+ "path": "calendar.day-color",
11988
+ "layer": "semantic",
11989
+ "type": "color",
11990
+ "value": "#221928",
11991
+ "references": "{text.primary}",
11992
+ "description": "A day in the month being shown."
11993
+ },
11994
+ {
11995
+ "name": "--sl-calendar-day-color-outside",
11996
+ "path": "calendar.day-color-outside",
11997
+ "layer": "semantic",
11998
+ "type": "color",
11999
+ "value": "#667169",
12000
+ "references": "{text.tertiary}",
12001
+ "description": "A day from the previous or next month, still selectable, drawn back so it does not compete with this month."
12002
+ },
12003
+ {
12004
+ "name": "--sl-calendar-day-color-disabled",
12005
+ "path": "calendar.day-color-disabled",
12006
+ "layer": "semantic",
12007
+ "type": "color",
12008
+ "value": "#bcccc1",
12009
+ "references": "{text.disabled}",
12010
+ "description": "A day outside the allowed period, or one a length rule rejects. It stays in the tab order so the reason can be read."
12011
+ },
12012
+ {
12013
+ "name": "--sl-calendar-day-background-hover",
12014
+ "path": "calendar.day-background-hover",
12015
+ "layer": "semantic",
12016
+ "type": "color",
12017
+ "value": "#f4e7ff",
12018
+ "references": "{item.background-hover}",
12019
+ "description": "The same hover tint as a list item, so a day feels like a choice in a list."
12020
+ },
12021
+ {
12022
+ "name": "--sl-calendar-range-background",
12023
+ "path": "calendar.range-background",
12024
+ "layer": "semantic",
12025
+ "type": "color",
12026
+ "value": "#e6c6ff",
12027
+ "references": "{interactive.tint-active}",
12028
+ "description": "The band between the start and end of a period. Same tint as a selected list item, quieter than the start and end circles."
12029
+ },
12030
+ {
12031
+ "name": "--sl-calendar-range-color",
12032
+ "path": "calendar.range-color",
12033
+ "layer": "semantic",
12034
+ "type": "color",
12035
+ "value": "#371e4a",
12036
+ "references": "{text.on-tint-strong}",
12037
+ "description": "Day numbers that sit on the range band. The on-tint text color is the one that stays readable on interactive.tint-active."
12038
+ },
12039
+ {
12040
+ "name": "--sl-calendar-today-ring",
12041
+ "path": "calendar.today-ring",
12042
+ "layer": "semantic",
12043
+ "type": "color",
12044
+ "value": "#8838c4",
12045
+ "references": "{border.accent}",
12046
+ "description": "An inset ring on today, including when today is also selected, so today is never only a color of the number."
12047
+ },
12048
+ {
12049
+ "name": "--sl-calendar-weekday-color",
12050
+ "path": "calendar.weekday-color",
12051
+ "layer": "semantic",
12052
+ "type": "color",
12053
+ "value": "#667169",
12054
+ "references": "{text.tertiary}",
12055
+ "description": "Weekday initials and week numbers are labels, not choices."
12056
+ },
12057
+ {
12058
+ "name": "--sl-calendar-grid-gap",
12059
+ "path": "calendar.grid-gap",
12060
+ "layer": "semantic",
12061
+ "type": "dimension",
12062
+ "value": "0.125rem",
12063
+ "references": "{space.0-5}",
12064
+ "description": "Space between week rows. Days in a week share an edge, so the range band reads as one shape."
12065
+ },
12066
+ {
12067
+ "name": "--sl-calendar-month-gap",
12068
+ "path": "calendar.month-gap",
12069
+ "layer": "semantic",
12070
+ "type": "dimension",
12071
+ "value": "1rem",
12072
+ "references": "{space.4}",
12073
+ "description": "Space between months shown side by side, the same step as panel padding so the two columns line up."
12074
+ },
12075
+ {
12076
+ "name": "--sl-calendar-header-gap",
12077
+ "path": "calendar.header-gap",
12078
+ "layer": "semantic",
12079
+ "type": "dimension",
12080
+ "value": "0.5rem",
12081
+ "references": "{space.2}",
12082
+ "description": "Space between the month title and the weekday row."
12083
+ },
12084
+ {
12085
+ "name": "--sl-calendar-panel-padding",
12086
+ "path": "calendar.panel-padding",
12087
+ "layer": "semantic",
12088
+ "type": "dimension",
12089
+ "value": "1rem",
12090
+ "references": "{space.4}",
12091
+ "description": "Padding inside the popup. The shared popup padding is one step and is too tight for a calendar."
12092
+ },
11960
12093
  {
11961
12094
  "name": "--sl-check-background",
11962
12095
  "path": "check.background",
@@ -12871,6 +13004,134 @@
12871
13004
  "value": "0 0 0 1px rgba(0, 0, 0, 0.05)",
12872
13005
  "references": "{shadow.xs}"
12873
13006
  },
13007
+ {
13008
+ "name": "--sl-empty-padding-block-compact",
13009
+ "path": "empty.padding-block.compact",
13010
+ "layer": "semantic",
13011
+ "value": "1.5rem",
13012
+ "references": "{space.6}",
13013
+ "description": "24px above and below a compact empty state. The same room a popup already gives a plain 'No results' line, so the two stay one height."
13014
+ },
13015
+ {
13016
+ "name": "--sl-empty-padding-block-standard",
13017
+ "path": "empty.padding-block.standard",
13018
+ "layer": "semantic",
13019
+ "value": "2.5rem",
13020
+ "references": "{space.10}",
13021
+ "description": "40px. A pane or a section needs more air than a table row, or the block looks stuck to the content around it."
13022
+ },
13023
+ {
13024
+ "name": "--sl-empty-padding-block-spacious",
13025
+ "path": "empty.padding-block.spacious",
13026
+ "layer": "semantic",
13027
+ "value": "4rem",
13028
+ "references": "{space.16}",
13029
+ "description": "64px. A page with nothing else on it. The extra space above keeps the block off the top of the viewport."
13030
+ },
13031
+ {
13032
+ "name": "--sl-empty-padding-inline-compact",
13033
+ "path": "empty.padding-inline.compact",
13034
+ "layer": "semantic",
13035
+ "value": "1rem",
13036
+ "references": "{space.4}",
13037
+ "description": "16px. Enough that a compact row doesn't touch the cell or popup edge."
13038
+ },
13039
+ {
13040
+ "name": "--sl-empty-padding-inline-standard",
13041
+ "path": "empty.padding-inline.standard",
13042
+ "layer": "semantic",
13043
+ "value": "1.5rem",
13044
+ "references": "{space.6}",
13045
+ "description": "24px. A pane can be wide; the inline padding keeps the block off the sides before the description's own cap does."
13046
+ },
13047
+ {
13048
+ "name": "--sl-empty-padding-inline-spacious",
13049
+ "path": "empty.padding-inline.spacious",
13050
+ "layer": "semantic",
13051
+ "value": "2rem",
13052
+ "references": "{space.8}",
13053
+ "description": "32px. A full page, a step wider than a pane."
13054
+ },
13055
+ {
13056
+ "name": "--sl-empty-gap-compact",
13057
+ "path": "empty.gap.compact",
13058
+ "layer": "semantic",
13059
+ "value": "0.75rem",
13060
+ "references": "{space.3}",
13061
+ "description": "12px between the icon, the text and the actions in a table row or a popup. Tight, because the row is short."
13062
+ },
13063
+ {
13064
+ "name": "--sl-empty-gap-standard",
13065
+ "path": "empty.gap.standard",
13066
+ "layer": "semantic",
13067
+ "value": "1rem",
13068
+ "references": "{space.4}",
13069
+ "description": "16px. The stack in a pane: media, then words, then actions."
13070
+ },
13071
+ {
13072
+ "name": "--sl-empty-gap-spacious",
13073
+ "path": "empty.gap.spacious",
13074
+ "layer": "semantic",
13075
+ "value": "1.5rem",
13076
+ "references": "{space.6}",
13077
+ "description": "24px. A page-sized stack needs the steps to separate, or the circle sits on the title."
13078
+ },
13079
+ {
13080
+ "name": "--sl-empty-text-gap-compact",
13081
+ "path": "empty.text-gap.compact",
13082
+ "layer": "semantic",
13083
+ "value": "0.25rem",
13084
+ "references": "{space.1}",
13085
+ "description": "4px between the title and the description in a compact row. They read as one message."
13086
+ },
13087
+ {
13088
+ "name": "--sl-empty-text-gap-standard",
13089
+ "path": "empty.text-gap.standard",
13090
+ "layer": "semantic",
13091
+ "value": "0.25rem",
13092
+ "references": "{space.1}",
13093
+ "description": "4px. Same as compact: the description belongs to the title, so it stays close."
13094
+ },
13095
+ {
13096
+ "name": "--sl-empty-text-gap-spacious",
13097
+ "path": "empty.text-gap.spacious",
13098
+ "layer": "semantic",
13099
+ "value": "0.5rem",
13100
+ "references": "{space.2}",
13101
+ "description": "8px. The page title is larger, so the description steps down a little further."
13102
+ },
13103
+ {
13104
+ "name": "--sl-empty-media-size-standard",
13105
+ "path": "empty.media-size.standard",
13106
+ "layer": "semantic",
13107
+ "value": "3rem",
13108
+ "references": "{space.12}",
13109
+ "description": "48px circle around a magnify icon (20px). The icon needs a field, or it reads as a bullet."
13110
+ },
13111
+ {
13112
+ "name": "--sl-empty-media-size-spacious",
13113
+ "path": "empty.media-size.spacious",
13114
+ "layer": "semantic",
13115
+ "value": "4rem",
13116
+ "references": "{space.16}",
13117
+ "description": "64px circle around a maximize icon (24px). A page can carry a larger mark. Compact has no circle: the icon is icon-size.condense on its own."
13118
+ },
13119
+ {
13120
+ "name": "--sl-empty-description-max-width",
13121
+ "path": "empty.description-max-width",
13122
+ "layer": "semantic",
13123
+ "value": "45ch",
13124
+ "references": "{measure.narrow}",
13125
+ "description": "45ch. A description is one sentence. Past a caption's measure it stretches across a wide pane and stops being a sentence."
13126
+ },
13127
+ {
13128
+ "name": "--sl-empty-actions-gap",
13129
+ "path": "empty.actions-gap",
13130
+ "layer": "semantic",
13131
+ "value": "0.5rem",
13132
+ "references": "{space.2}",
13133
+ "description": "8px between actions, the same gap a control uses between its icon and its label. The first action is the main one; the rest sit beside it."
13134
+ },
12874
13135
  {
12875
13136
  "name": "--sl-field-background",
12876
13137
  "path": "field.background",
@@ -13014,6 +13275,14 @@
13014
13275
  "value": "0.6",
13015
13276
  "description": "A disabled field fades as a whole, label included."
13016
13277
  },
13278
+ {
13279
+ "name": "--sl-field-affix-color",
13280
+ "path": "field.affix-color",
13281
+ "layer": "semantic",
13282
+ "value": "#4f5852",
13283
+ "references": "{text.secondary}",
13284
+ "description": "A prefix or suffix drawn inside the field (a currency symbol, a unit). Muted so it reads as part of the control, not as the value."
13285
+ },
13017
13286
  {
13018
13287
  "name": "--sl-gauge-track-color",
13019
13288
  "path": "gauge.track-color",
@@ -13715,8 +13984,8 @@
13715
13984
  "path": "popup.empty-padding-block",
13716
13985
  "layer": "semantic",
13717
13986
  "value": "1.5rem",
13718
- "references": "{space.6}",
13719
- "description": "Room around a 'No results' message, so an empty list doesn't collapse to a sliver."
13987
+ "references": "{empty.padding-block.compact}",
13988
+ "description": "Room around a plain 'No results' line. The same padding as a compact empty state, so a sentence and an EmptyState in that slot take the same space. An EmptyState drops this padding and uses its own."
13720
13989
  },
13721
13990
  {
13722
13991
  "name": "--sl-popup-min-width",
@@ -13977,6 +14246,22 @@
13977
14246
  "references": "{item.background-selected}",
13978
14247
  "description": "Selected rows. Same tint as the chosen menu row."
13979
14248
  },
14249
+ {
14250
+ "name": "--sl-table-row-current",
14251
+ "path": "table.row-current",
14252
+ "layer": "semantic",
14253
+ "value": "#f8fbf9",
14254
+ "references": "{surface.tray}",
14255
+ "description": "The open row beside a detail pane. The tray, a step off the page, so secondary text on it still passes AA in dark. A selected row keeps its own tint, so a checked row and the row you are reading can both show."
14256
+ },
14257
+ {
14258
+ "name": "--sl-table-group-header-background",
14259
+ "path": "table.group-header-background",
14260
+ "layer": "semantic",
14261
+ "value": "#f8fbf9",
14262
+ "references": "{surface.tray}",
14263
+ "description": "A group header. The tray, like the column header, so a group reads as chrome rather than another data row."
14264
+ },
13980
14265
  {
13981
14266
  "name": "--sl-table-column-hover",
13982
14267
  "path": "table.column-hover",
@@ -19556,6 +19841,102 @@
19556
19841
  "references": "{font-size.2xl}",
19557
19842
  "description": "Sized to the avatar, not a text style: initials have to fit inside the circle at each size. The rest of the type is title-base."
19558
19843
  },
19844
+ {
19845
+ "name": "--sl-badge-height-minimize",
19846
+ "path": "badge.height-minimize",
19847
+ "layer": "component",
19848
+ "value": "1.25rem",
19849
+ "references": "{space.5}",
19850
+ "description": "20px. The smallest pill that still holds trigger-minimize."
19851
+ },
19852
+ {
19853
+ "name": "--sl-badge-height-condense",
19854
+ "path": "badge.height-condense",
19855
+ "layer": "component",
19856
+ "value": "1.5rem",
19857
+ "references": "{space.6}",
19858
+ "description": "24px, the default. Sits in a line of text and in dense rows."
19859
+ },
19860
+ {
19861
+ "name": "--sl-badge-height-base",
19862
+ "path": "badge.height-base",
19863
+ "layer": "component",
19864
+ "value": "1.75rem",
19865
+ "references": "{space.7}",
19866
+ "description": "28px, the small control height, for a badge beside base text."
19867
+ },
19868
+ {
19869
+ "name": "--sl-badge-padding-inline-minimize",
19870
+ "path": "badge.padding-inline-minimize",
19871
+ "layer": "component",
19872
+ "value": "0.25rem",
19873
+ "references": "{space.1}",
19874
+ "description": "4px. Tighter than a control so a short label stays a pill, not a button."
19875
+ },
19876
+ {
19877
+ "name": "--sl-badge-padding-inline-condense",
19878
+ "path": "badge.padding-inline-condense",
19879
+ "layer": "component",
19880
+ "value": "0.375rem",
19881
+ "references": "{space.1-5}",
19882
+ "description": "6px, the default."
19883
+ },
19884
+ {
19885
+ "name": "--sl-badge-padding-inline-base",
19886
+ "path": "badge.padding-inline-base",
19887
+ "layer": "component",
19888
+ "value": "0.5rem",
19889
+ "references": "{space.2}",
19890
+ "description": "8px, still inside the small control's inline padding."
19891
+ },
19892
+ {
19893
+ "name": "--sl-badge-gap-minimize",
19894
+ "path": "badge.gap-minimize",
19895
+ "layer": "component",
19896
+ "value": "0.25rem",
19897
+ "references": "{space.1}",
19898
+ "description": "4px between a dot or icon and the label at the smallest size."
19899
+ },
19900
+ {
19901
+ "name": "--sl-badge-gap-condense",
19902
+ "path": "badge.gap-condense",
19903
+ "layer": "component",
19904
+ "value": "0.25rem",
19905
+ "references": "{space.1}",
19906
+ "description": "4px, the default. The same gap as the smallest control."
19907
+ },
19908
+ {
19909
+ "name": "--sl-badge-gap-base",
19910
+ "path": "badge.gap-base",
19911
+ "layer": "component",
19912
+ "value": "0.375rem",
19913
+ "references": "{space.1-5}",
19914
+ "description": "6px, a step wider once the label is base-sized."
19915
+ },
19916
+ {
19917
+ "name": "--sl-badge-dot-minimize",
19918
+ "path": "badge.dot-minimize",
19919
+ "layer": "component",
19920
+ "value": "0.375rem",
19921
+ "references": "{space.1-5}",
19922
+ "description": "6px status dot. Smaller than icon-size-minimize so it reads as a mark, not an icon."
19923
+ },
19924
+ {
19925
+ "name": "--sl-badge-dot-condense",
19926
+ "path": "badge.dot-condense",
19927
+ "layer": "component",
19928
+ "value": "0.5rem",
19929
+ "references": "{space.2}",
19930
+ "description": "8px, the default."
19931
+ },
19932
+ {
19933
+ "name": "--sl-badge-dot-base",
19934
+ "path": "badge.dot-base",
19935
+ "layer": "component",
19936
+ "value": "0.5rem",
19937
+ "references": "{space.2}",
19938
+ "description": "8px. The base badge is taller, but the dot stays a mark."
19939
+ },
19559
19940
  {
19560
19941
  "name": "--sl-button-radius",
19561
19942
  "path": "button.radius",
@@ -19571,6 +19952,94 @@
19571
19952
  "value": "0.5",
19572
19953
  "description": "A disabled button fades as a whole, keeping its shape so the layout doesn't jump."
19573
19954
  },
19955
+ {
19956
+ "name": "--sl-collection-row-height-sm",
19957
+ "path": "collection.row-height-sm",
19958
+ "layer": "component",
19959
+ "value": "2.25rem",
19960
+ "references": "{control.height-sm}",
19961
+ "description": "The dense row, the same height the plain table already uses, so a checkbox fits."
19962
+ },
19963
+ {
19964
+ "name": "--sl-collection-row-height-md",
19965
+ "path": "collection.row-height-md",
19966
+ "layer": "component",
19967
+ "value": "2.75rem",
19968
+ "references": "{control.height-md}",
19969
+ "description": "A roomier row when the collection is the page rather than a dense register."
19970
+ },
19971
+ {
19972
+ "name": "--sl-collection-header-height-sm",
19973
+ "path": "collection.header-height-sm",
19974
+ "layer": "component",
19975
+ "value": "2.75rem",
19976
+ "references": "{control.height-md}",
19977
+ "description": "The dense header, a step above the dense row, matching today's table header."
19978
+ },
19979
+ {
19980
+ "name": "--sl-collection-header-height-md",
19981
+ "path": "collection.header-height-md",
19982
+ "layer": "component",
19983
+ "value": "3.25rem",
19984
+ "references": "{control.height-lg}",
19985
+ "description": "The header for the roomier row."
19986
+ },
19987
+ {
19988
+ "name": "--sl-collection-tree-indent",
19989
+ "path": "collection.tree-indent",
19990
+ "layer": "component",
19991
+ "value": "1rem",
19992
+ "references": "{space.4}",
19993
+ "description": "How far each deeper level steps in, so a child sits under its parent's text."
19994
+ },
19995
+ {
19996
+ "name": "--sl-collection-list-row-padding-block",
19997
+ "path": "collection.list-row-padding-block",
19998
+ "layer": "component",
19999
+ "value": "0.75rem",
20000
+ "references": "{space.3}",
20001
+ "description": "Vertical padding of a list row. The row is not a fixed height, because a second line and an extra slot have to fit."
20002
+ },
20003
+ {
20004
+ "name": "--sl-collection-list-row-gap",
20005
+ "path": "collection.list-row-gap",
20006
+ "layer": "component",
20007
+ "value": "0.5rem",
20008
+ "references": "{space.2}",
20009
+ "description": "Between the checkbox, the text, the amount and the actions in a list row."
20010
+ },
20011
+ {
20012
+ "name": "--sl-collection-toolbar-gap",
20013
+ "path": "collection.toolbar-gap",
20014
+ "layer": "component",
20015
+ "value": "0.5rem",
20016
+ "references": "{space.2}",
20017
+ "description": "Between the search, the filters and the actions."
20018
+ },
20019
+ {
20020
+ "name": "--sl-collection-narrow-width",
20021
+ "path": "collection.narrow-width",
20022
+ "layer": "component",
20023
+ "value": "24rem",
20024
+ "references": "{space.96}",
20025
+ "description": "Below this, a table with narrow=\"list\" becomes a list, and the toolbar's search takes the full width. A 360px pane is under it."
20026
+ },
20027
+ {
20028
+ "name": "--sl-collection-editable-list-stack-width",
20029
+ "path": "collection.editable-list-stack-width",
20030
+ "layer": "component",
20031
+ "value": "20rem",
20032
+ "references": "{space.80}",
20033
+ "description": "Below this, editable rows stack and show their own labels. 320px matches."
20034
+ },
20035
+ {
20036
+ "name": "--sl-collection-selection-column-width",
20037
+ "path": "collection.selection-column-width",
20038
+ "layer": "component",
20039
+ "value": "2.5rem",
20040
+ "references": "{space.10}",
20041
+ "description": "The checkbox column. Wide enough for the control, no wider, so the data keeps the room."
20042
+ },
19574
20043
  {
19575
20044
  "name": "--sl-drawer-popup-size",
19576
20045
  "path": "drawer.popup-size",
@@ -19610,6 +20079,58 @@
19610
20079
  "references": "{space.1}",
19611
20080
  "description": "Grab bar thickness."
19612
20081
  },
20082
+ {
20083
+ "name": "--sl-list-detail-split-min-width",
20084
+ "path": "list-detail.split-min-width",
20085
+ "layer": "component",
20086
+ "value": "720px",
20087
+ "description": "Side by side once this element, not the window, is this wide. Dryden used 1100px of the window. A container needs less: a list around 320px and a form around 400px still read at 720px. Narrower, the detail becomes a drawer or a page."
20088
+ },
20089
+ {
20090
+ "name": "--sl-list-detail-detail-default-size",
20091
+ "path": "list-detail.detail-default-size",
20092
+ "layer": "component",
20093
+ "value": "45%",
20094
+ "description": "The detail's share when it opens. The list fills the rest, about 55%, which is the split Dryden started from."
20095
+ },
20096
+ {
20097
+ "name": "--sl-list-detail-detail-min-size",
20098
+ "path": "list-detail.detail-min-size",
20099
+ "layer": "component",
20100
+ "value": "35%",
20101
+ "description": "The detail cannot be dragged narrower than this, so the form stays readable."
20102
+ },
20103
+ {
20104
+ "name": "--sl-list-detail-detail-max-size",
20105
+ "path": "list-detail.detail-max-size",
20106
+ "layer": "component",
20107
+ "value": "65%",
20108
+ "description": "The detail cannot cover more than this, so the list stays usable. Dryden kept the detail between 35% and 65%."
20109
+ },
20110
+ {
20111
+ "name": "--sl-list-detail-header-gap",
20112
+ "path": "list-detail.header-gap",
20113
+ "layer": "component",
20114
+ "value": "0.75rem",
20115
+ "references": "{space.3}",
20116
+ "description": "Space between the title, the actions and Close."
20117
+ },
20118
+ {
20119
+ "name": "--sl-list-detail-header-padding",
20120
+ "path": "list-detail.header-padding",
20121
+ "layer": "component",
20122
+ "value": "1rem",
20123
+ "references": "{space.4}",
20124
+ "description": "Padding inside the detail header. One step under a dialog, because this is a pane, not a modal."
20125
+ },
20126
+ {
20127
+ "name": "--sl-money-field-picker-min-inline-size",
20128
+ "path": "money-field.picker-min-inline-size",
20129
+ "layer": "component",
20130
+ "value": "14rem",
20131
+ "references": "{space.56}",
20132
+ "description": "The currency list shows a code, a name and a symbol, so the popup is wider than the code trigger inside the field."
20133
+ },
19613
20134
  {
19614
20135
  "name": "--sl-navigation-menu-popup-min-width",
19615
20136
  "path": "navigation-menu.popup-min-width",
@@ -19669,6 +20190,44 @@
19669
20190
  "value": "200px",
19670
20191
  "description": "Default length of a vertical slider."
19671
20192
  },
20193
+ {
20194
+ "name": "--sl-splitter-handle-size",
20195
+ "path": "splitter.handle-size",
20196
+ "layer": "component",
20197
+ "value": "1px",
20198
+ "references": "{stroke.default}",
20199
+ "description": "The visible separator. One stroke, the same hairline as Separator, so a splitter reads as a divider you can grab."
20200
+ },
20201
+ {
20202
+ "name": "--sl-splitter-handle-hit-size",
20203
+ "path": "splitter.handle-hit-size",
20204
+ "layer": "component",
20205
+ "value": "44px",
20206
+ "references": "{a11y.min-touch-target}",
20207
+ "description": "The part a finger grabs. The line stays one stroke. A fine pointer uses a11y.min-target (24px) instead, so the grab area does not cover the panel's scrollbar. Coarse pointers keep this 44px."
20208
+ },
20209
+ {
20210
+ "name": "--sl-splitter-grip-size",
20211
+ "path": "splitter.grip-size",
20212
+ "layer": "component",
20213
+ "value": "0.25rem",
20214
+ "references": "{space.1}",
20215
+ "description": "4px. The diameter of one grip dot. Small enough to sit on the hairline without becoming a second control."
20216
+ },
20217
+ {
20218
+ "name": "--sl-splitter-key-step",
20219
+ "path": "splitter.key-step",
20220
+ "layer": "component",
20221
+ "value": "5%",
20222
+ "description": "One arrow press moves the handle by 5% of the splitter. Dryden used 5%: a nudge you can see, not a jump."
20223
+ },
20224
+ {
20225
+ "name": "--sl-splitter-key-step-large",
20226
+ "path": "splitter.key-step-large",
20227
+ "layer": "component",
20228
+ "value": "10%",
20229
+ "description": "The Shift step. Twice the arrow step, so a few presses cross the panel without holding the key."
20230
+ },
19672
20231
  {
19673
20232
  "name": "--sl-switch-track-width",
19674
20233
  "path": "switch.track-width",
@@ -21005,6 +21564,14 @@
21005
21564
  "--sl-bar-border-color": "#d1f3ff",
21006
21565
  "--sl-bar-radius": "0.375rem",
21007
21566
  "--sl-bar-separator-color": "#d1f3ff",
21567
+ "--sl-calendar-day-color": "#203d48",
21568
+ "--sl-calendar-day-color-outside": "#53737f",
21569
+ "--sl-calendar-day-color-disabled": "#a9d5e5",
21570
+ "--sl-calendar-day-background-hover": "#fedfd7",
21571
+ "--sl-calendar-range-background": "#fedfd7",
21572
+ "--sl-calendar-range-color": "#3b241f",
21573
+ "--sl-calendar-today-ring": "#875549",
21574
+ "--sl-calendar-weekday-color": "#53737f",
21008
21575
  "--sl-check-border-color": "#6b8d99",
21009
21576
  "--sl-check-border-color-hover": "#53737f",
21010
21577
  "--sl-check-background-checked": "#a36759",
@@ -21098,6 +21665,7 @@
21098
21665
  "--sl-field-placeholder-color": "#53737f",
21099
21666
  "--sl-field-shadow-focus": "0 0 0 3px #fedfd7",
21100
21667
  "--sl-field-shadow-focus-error": "0 0 0 3px #e72117",
21668
+ "--sl-field-affix-color": "#3c5a66",
21101
21669
  "--sl-gauge-track-color": "#def6ff",
21102
21670
  "--sl-gauge-label-color": "#203d48",
21103
21671
  "--sl-gauge-value-color": "#3c5a66",
@@ -21132,6 +21700,8 @@
21132
21700
  "--sl-table-row-border-color": "#def6ff",
21133
21701
  "--sl-table-row-hover": "#fedfd7",
21134
21702
  "--sl-table-row-selected": "#fedfd7",
21703
+ "--sl-table-row-current": "#f3fcff",
21704
+ "--sl-table-group-header-background": "#f3fcff",
21135
21705
  "--sl-table-column-hover": "#def6ff",
21136
21706
  "--sl-table-range-background": "#fffaf9",
21137
21707
  "--sl-table-range-border": "#a36759",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scattered-light/loomiere-mojave",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "Mojave, the demo theme for Loomiere: desert stone and purple, built from one brand file.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -62,6 +62,6 @@
62
62
  }
63
63
  },
64
64
  "devDependencies": {
65
- "@scattered-light/loomiere": "0.6.0"
65
+ "@scattered-light/loomiere": "0.7.0"
66
66
  }
67
67
  }