@scattered-light/loomiere-base-ui 0.9.0 → 0.10.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.
- package/README.md +16 -1
- package/dist/{chunk-LQWPDLLQ.js → chunk-PV5YOQMN.js} +54 -3
- package/dist/chunk-PV5YOQMN.js.map +1 -0
- package/dist/custom/index.d.ts +1 -1
- package/dist/custom/index.js +1 -1
- package/dist/design-system/components/SideNav/README.md +73 -0
- package/dist/design-system/components/SideNav/preview.html +19 -0
- package/dist/design-system/components/bundle.js +7 -7
- package/dist/design-system/components/index.d.ts +1 -1
- package/dist/design-system/components/styles.css +241 -59
- package/dist/{index-DdHpYalU.d.ts → index-D88kSSlM.d.ts} +49 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/styles/components/Accordion.css +1 -1
- package/dist/styles/components/AlertDialog.css +1 -1
- package/dist/styles/components/Autocomplete.css +1 -1
- package/dist/styles/components/Avatar.css +1 -1
- package/dist/styles/components/Button.css +1 -1
- package/dist/styles/components/Checkbox.css +1 -1
- package/dist/styles/components/CheckboxGroup.css +1 -1
- package/dist/styles/components/Collapsible.css +1 -1
- package/dist/styles/components/Combobox.css +1 -1
- package/dist/styles/components/ContextMenu.css +1 -1
- package/dist/styles/components/Dialog.css +1 -1
- package/dist/styles/components/Drawer.css +1 -1
- package/dist/styles/components/Field.css +1 -1
- package/dist/styles/components/Fieldset.css +1 -1
- package/dist/styles/components/Form.css +1 -1
- package/dist/styles/components/Input.css +1 -1
- package/dist/styles/components/Menu.css +1 -1
- package/dist/styles/components/Menubar.css +1 -1
- package/dist/styles/components/Meter.css +1 -1
- package/dist/styles/components/NavigationMenu.css +1 -1
- package/dist/styles/components/NumberField.css +1 -1
- package/dist/styles/components/OTPField.css +1 -1
- package/dist/styles/components/Popover.css +1 -1
- package/dist/styles/components/PreviewCard.css +1 -1
- package/dist/styles/components/Progress.css +1 -1
- package/dist/styles/components/Radio.css +1 -1
- package/dist/styles/components/ScrollArea.css +1 -1
- package/dist/styles/components/Select.css +1 -1
- package/dist/styles/components/Separator.css +1 -1
- package/dist/styles/components/Slider.css +1 -1
- package/dist/styles/components/Switch.css +1 -1
- package/dist/styles/components/Tabs.css +1 -1
- package/dist/styles/components/Toast.css +1 -1
- package/dist/styles/components/Toggle.css +1 -1
- package/dist/styles/components/ToggleGroup.css +1 -1
- package/dist/styles/components/Toolbar.css +1 -1
- package/dist/styles/components/Tooltip.css +1 -1
- package/dist/styles/custom/AppBar.css +1 -1
- package/dist/styles/custom/Badge.css +1 -1
- package/dist/styles/custom/Collection.css +1 -1
- package/dist/styles/custom/CollectionPagination.css +1 -1
- package/dist/styles/custom/CollectionToolbar.css +1 -1
- package/dist/styles/custom/DataList.css +1 -1
- package/dist/styles/custom/DataTable.css +1 -1
- package/dist/styles/custom/DatePicker.css +1 -1
- package/dist/styles/custom/DescriptionList.css +1 -1
- package/dist/styles/custom/EditableList.css +1 -1
- package/dist/styles/custom/EmptyState.css +1 -1
- package/dist/styles/custom/ListDetail.css +1 -1
- package/dist/styles/custom/MoneyField.css +1 -1
- package/dist/styles/custom/PickerButton.css +1 -1
- package/dist/styles/custom/Sheet.css +1 -1
- package/dist/styles/custom/SideNav.css +181 -0
- package/dist/styles/custom/Splitter.css +1 -1
- package/dist/styles/custom/StatFigure.css +1 -1
- package/dist/styles/custom/Table.css +1 -1
- package/dist/styles/index.css +2 -1
- package/dist/styles/reset/accessibility.css +1 -1
- package/dist/styles/reset/reset-accessibility.css +1 -1
- package/dist/styles/reset/reset-tailwind.css +1 -1
- package/dist/styles/reset/reset.css +1 -1
- package/dist/styles/tailwind.css +2 -1
- package/package.json +2 -2
- package/dist/chunk-LQWPDLLQ.js.map +0 -1
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/* @scattered-light/loomiere-base-ui 0.10.0 · styles for @base-ui/react 1.9.0 */
|
|
2
|
+
/* SideNav
|
|
3
|
+
*
|
|
4
|
+
* The column of links down the side of a workspace. Rows are ruled apart with a hairline; the
|
|
5
|
+
* current row (aria-current="page") sits on the raised surface with a rule under it in the
|
|
6
|
+
* working-paper ink; counts are figures; group headings are caps labels. SideNavToggle is a
|
|
7
|
+
* small round button on the column's edge, whose chevron turns with the state. The parent
|
|
8
|
+
* sets the width and must not clip the toggle (overflow: visible), since it hangs over the edge.
|
|
9
|
+
* Tokens: side-nav.* (tokens/component/side-nav.json).
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
.SideNav {
|
|
13
|
+
position: relative;
|
|
14
|
+
box-sizing: border-box;
|
|
15
|
+
display: flex;
|
|
16
|
+
flex-direction: column;
|
|
17
|
+
height: 100%;
|
|
18
|
+
min-width: 0;
|
|
19
|
+
padding-block: var(--sl-space-4);
|
|
20
|
+
background: var(--sl-side-nav-background);
|
|
21
|
+
border-inline-end: var(--sl-stroke-default) solid var(--sl-side-nav-border-color);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.SideNav[data-collapsed] {
|
|
25
|
+
min-width: var(--sl-side-nav-collapsed-width);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/* Collapsed: only the toggle stays. */
|
|
29
|
+
.SideNav[data-collapsed] > :not(.SideNavToggle) {
|
|
30
|
+
display: none;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.SideNavItem {
|
|
34
|
+
font-family: var(--sl-font-body-base-font-family);
|
|
35
|
+
font-size: var(--sl-font-body-base-font-size);
|
|
36
|
+
font-weight: var(--sl-font-body-base-font-weight);
|
|
37
|
+
line-height: var(--sl-font-body-base-line-height);
|
|
38
|
+
letter-spacing: var(--sl-font-body-base-letter-spacing);
|
|
39
|
+
box-sizing: border-box;
|
|
40
|
+
display: flex;
|
|
41
|
+
align-items: center;
|
|
42
|
+
justify-content: space-between;
|
|
43
|
+
gap: var(--sl-side-nav-item-gap);
|
|
44
|
+
min-height: var(--sl-side-nav-item-height);
|
|
45
|
+
padding-inline: var(--sl-side-nav-item-padding-inline);
|
|
46
|
+
color: var(--sl-side-nav-item-color);
|
|
47
|
+
text-decoration: none;
|
|
48
|
+
border-bottom: var(--sl-stroke-default) solid var(--sl-side-nav-item-divider-color);
|
|
49
|
+
cursor: pointer;
|
|
50
|
+
transition: background var(--sl-duration-fast) var(--sl-easing-default);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.SideNavItemText {
|
|
54
|
+
display: flex;
|
|
55
|
+
flex-direction: column;
|
|
56
|
+
min-width: 0;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.SideNavItemLabel {
|
|
60
|
+
overflow: hidden;
|
|
61
|
+
text-overflow: ellipsis;
|
|
62
|
+
white-space: nowrap;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.SideNavItemHint {
|
|
66
|
+
font-family: var(--sl-font-body-minimize-font-family);
|
|
67
|
+
font-size: var(--sl-font-body-minimize-font-size);
|
|
68
|
+
font-weight: var(--sl-font-body-minimize-font-weight);
|
|
69
|
+
line-height: var(--sl-font-body-minimize-line-height);
|
|
70
|
+
letter-spacing: var(--sl-font-body-minimize-letter-spacing);
|
|
71
|
+
color: var(--sl-side-nav-item-color-disabled);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.SideNavItem:hover:not([data-current]):not([data-disabled]) {
|
|
75
|
+
background: var(--sl-side-nav-item-background-hover);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.SideNavItem:focus-visible {
|
|
79
|
+
outline: var(--sl-focus-outline);
|
|
80
|
+
outline-offset: var(--sl-focus-outline-offset-inset);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.SideNavItem[data-current] {
|
|
84
|
+
background: var(--sl-side-nav-item-background-current);
|
|
85
|
+
font-weight: var(--sl-font-weight-semibold);
|
|
86
|
+
box-shadow: inset 0 calc(-1 * var(--sl-side-nav-indicator-width)) 0 var(--sl-side-nav-indicator-color);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.SideNavItem[data-disabled] {
|
|
90
|
+
color: var(--sl-side-nav-item-color-disabled);
|
|
91
|
+
cursor: default;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.SideNavItemCount {
|
|
95
|
+
flex: none;
|
|
96
|
+
font-family: var(--sl-font-figures-condense-font-family);
|
|
97
|
+
font-variant-numeric: var(--sl-font-figures-condense-font-variant-numeric);
|
|
98
|
+
font-size: var(--sl-font-figures-condense-font-size);
|
|
99
|
+
font-weight: var(--sl-font-weight-semibold);
|
|
100
|
+
line-height: var(--sl-font-figures-condense-line-height);
|
|
101
|
+
color: var(--sl-side-nav-count-color);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.SideNavItemCount[data-tone='quiet'] {
|
|
105
|
+
color: var(--sl-side-nav-count-color-quiet);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.SideNavGroupLabel {
|
|
109
|
+
font-family: var(--sl-font-caps-condense-font-family);
|
|
110
|
+
font-size: var(--sl-font-caps-condense-font-size);
|
|
111
|
+
font-weight: var(--sl-font-caps-condense-font-weight);
|
|
112
|
+
line-height: var(--sl-font-caps-condense-line-height);
|
|
113
|
+
letter-spacing: var(--sl-font-caps-condense-letter-spacing);
|
|
114
|
+
text-transform: var(--sl-font-caps-condense-text-transform);
|
|
115
|
+
padding-top: var(--sl-side-nav-group-padding-top);
|
|
116
|
+
padding-bottom: var(--sl-space-1-5);
|
|
117
|
+
padding-inline: var(--sl-side-nav-item-padding-inline);
|
|
118
|
+
color: var(--sl-side-nav-group-label-color);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/* ============================================
|
|
122
|
+
COLLAPSE BUTTON
|
|
123
|
+
============================================ */
|
|
124
|
+
|
|
125
|
+
.SideNavToggle {
|
|
126
|
+
all: unset;
|
|
127
|
+
box-sizing: border-box;
|
|
128
|
+
position: absolute;
|
|
129
|
+
z-index: 1;
|
|
130
|
+
top: var(--sl-side-nav-toggle-offset);
|
|
131
|
+
inset-inline-end: calc(-0.5 * var(--sl-side-nav-toggle-size));
|
|
132
|
+
display: inline-flex;
|
|
133
|
+
align-items: center;
|
|
134
|
+
justify-content: center;
|
|
135
|
+
width: var(--sl-side-nav-toggle-size);
|
|
136
|
+
height: var(--sl-side-nav-toggle-size);
|
|
137
|
+
border-radius: var(--sl-radius-pill);
|
|
138
|
+
background: var(--sl-side-nav-toggle-background);
|
|
139
|
+
border: var(--sl-stroke-default) solid var(--sl-side-nav-toggle-border-color);
|
|
140
|
+
color: var(--sl-text-secondary);
|
|
141
|
+
cursor: pointer;
|
|
142
|
+
transition: color var(--sl-duration-fast) var(--sl-easing-default),
|
|
143
|
+
border-color var(--sl-duration-fast) var(--sl-easing-default);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.SideNavToggle:hover {
|
|
147
|
+
color: var(--sl-text-primary);
|
|
148
|
+
border-color: var(--sl-text-primary);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.SideNavToggle:focus-visible {
|
|
152
|
+
outline: var(--sl-focus-outline);
|
|
153
|
+
outline-offset: var(--sl-focus-outline-offset);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
.SideNavToggleIcon {
|
|
157
|
+
width: var(--sl-icon-size-minimize);
|
|
158
|
+
height: var(--sl-icon-size-minimize);
|
|
159
|
+
transition: transform var(--sl-duration-normal) var(--sl-easing-default);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/* The chevron points the way the column will go: left to collapse, right to expand. */
|
|
163
|
+
.SideNavToggle[aria-expanded='false'] .SideNavToggleIcon {
|
|
164
|
+
transform: rotate(180deg);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
[dir='rtl'] .SideNavToggleIcon {
|
|
168
|
+
transform: scaleX(-1);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
[dir='rtl'] .SideNavToggle[aria-expanded='false'] .SideNavToggleIcon {
|
|
172
|
+
transform: scaleX(-1) rotate(180deg);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
@media (prefers-reduced-motion: reduce) {
|
|
176
|
+
.SideNavToggleIcon,
|
|
177
|
+
.SideNavItem,
|
|
178
|
+
.SideNavToggle {
|
|
179
|
+
transition: none;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
1
|
+
/* @scattered-light/loomiere-base-ui 0.10.0 · styles for @base-ui/react 1.9.0 */
|
|
2
2
|
/* Table - Mojave Theme
|
|
3
3
|
*
|
|
4
4
|
* Base UI has no table, so this styles the native <table class="Table"> elements with the
|
package/dist/styles/index.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
1
|
+
/* @scattered-light/loomiere-base-ui 0.10.0 · styles for @base-ui/react 1.9.0 */
|
|
2
2
|
/* Loomiere for Base UI: component styles. Brand-free: every value is a --sl- variable from a
|
|
3
3
|
Loomiere theme. Load the theme first:
|
|
4
4
|
@import '<your theme>/tokens.css';
|
|
@@ -66,3 +66,4 @@
|
|
|
66
66
|
@import './custom/DescriptionList.css';
|
|
67
67
|
@import './custom/AppBar.css';
|
|
68
68
|
@import './custom/PickerButton.css';
|
|
69
|
+
@import './custom/SideNav.css';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
1
|
+
/* @scattered-light/loomiere-base-ui 0.10.0 · styles for @base-ui/react 1.9.0 */
|
|
2
2
|
/* Focus, invalid, contrast — requires theme tokens (after theme-accessibility.css). */
|
|
3
3
|
|
|
4
4
|
:focus-visible {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
1
|
+
/* @scattered-light/loomiere-base-ui 0.10.0 · styles for @base-ui/react 1.9.0 */
|
|
2
2
|
/* Accessibility — base rules (no theme color dependencies). Theme-specific focus/invalid: accessibility-theme.css */
|
|
3
3
|
|
|
4
4
|
/* Remove default focus; keyboard focus styled in accessibility-theme.css */
|
package/dist/styles/tailwind.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* @scattered-light/loomiere-base-ui 0.
|
|
1
|
+
/* @scattered-light/loomiere-base-ui 0.10.0 · styles for @base-ui/react 1.9.0 */
|
|
2
2
|
/* Loomiere for Base UI: component styles for Tailwind CSS v4. Load Tailwind and the theme first:
|
|
3
3
|
@import 'tailwindcss';
|
|
4
4
|
@import '<your theme>/tokens.css';
|
|
@@ -69,3 +69,4 @@
|
|
|
69
69
|
@import './custom/DescriptionList.css' layer(components);
|
|
70
70
|
@import './custom/AppBar.css' layer(components);
|
|
71
71
|
@import './custom/PickerButton.css' layer(components);
|
|
72
|
+
@import './custom/SideNav.css' layer(components);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scattered-light/loomiere-base-ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "Base UI components styled by any Loomiere theme. Brand-free: every value is a --sl- variable.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"base-ui",
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
}
|
|
77
77
|
},
|
|
78
78
|
"devDependencies": {
|
|
79
|
-
"@scattered-light/loomiere": "0.
|
|
79
|
+
"@scattered-light/loomiere": "0.10.0",
|
|
80
80
|
"@tanstack/react-table": "^9.3.1"
|
|
81
81
|
}
|
|
82
82
|
}
|