sherick-ui 2.2.0 → 2.4.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 +1 -1
- package/dist/cjs/components/Badge.cjs +1 -1
- package/dist/cjs/components/Badge.cjs.map +1 -1
- package/dist/cjs/components/Button.cjs +11 -2
- package/dist/cjs/components/Button.cjs.map +1 -1
- package/dist/cjs/components/Calendar.cjs +2 -2
- package/dist/cjs/components/Calendar.cjs.map +1 -1
- package/dist/cjs/components/Card.cjs +3 -2
- package/dist/cjs/components/Card.cjs.map +1 -1
- package/dist/cjs/components/Checkbox.cjs +3 -1
- package/dist/cjs/components/Checkbox.cjs.map +1 -1
- package/dist/cjs/components/Chip.cjs +3 -3
- package/dist/cjs/components/Chip.cjs.map +1 -1
- package/dist/cjs/components/Combobox.cjs +1 -1
- package/dist/cjs/components/Combobox.cjs.map +1 -1
- package/dist/cjs/components/Command.cjs +3 -3
- package/dist/cjs/components/Command.cjs.map +1 -1
- package/dist/cjs/components/CommandPalette.cjs +1 -1
- package/dist/cjs/components/CommandPalette.cjs.map +1 -1
- package/dist/cjs/components/DateRangePicker.cjs +1 -1
- package/dist/cjs/components/DateRangePicker.cjs.map +1 -1
- package/dist/cjs/components/DialogHeader.cjs +1 -1
- package/dist/cjs/components/DialogHeader.cjs.map +1 -1
- package/dist/cjs/components/Drawer.cjs +1 -1
- package/dist/cjs/components/Drawer.cjs.map +1 -1
- package/dist/cjs/components/Field.cjs +1 -1
- package/dist/cjs/components/Field.cjs.map +1 -1
- package/dist/cjs/components/FileUpload.cjs +3 -3
- package/dist/cjs/components/FileUpload.cjs.map +1 -1
- package/dist/cjs/components/IconButton.cjs +1 -1
- package/dist/cjs/components/IconButton.cjs.map +1 -1
- package/dist/cjs/components/Input.cjs +1 -1
- package/dist/cjs/components/Input.cjs.map +1 -1
- package/dist/cjs/components/NavItem.cjs +3 -3
- package/dist/cjs/components/NavItem.cjs.map +1 -1
- package/dist/cjs/components/NumberField.cjs +2 -2
- package/dist/cjs/components/NumberField.cjs.map +1 -1
- package/dist/cjs/components/Pagination.cjs +1 -1
- package/dist/cjs/components/Pagination.cjs.map +1 -1
- package/dist/cjs/components/Progress.cjs +7 -4
- package/dist/cjs/components/Progress.cjs.map +1 -1
- package/dist/cjs/components/RadioGroup.cjs +1 -1
- package/dist/cjs/components/RadioGroup.cjs.map +1 -1
- package/dist/cjs/components/Search.cjs +4 -1
- package/dist/cjs/components/Search.cjs.map +1 -1
- package/dist/cjs/components/Select.cjs +1 -1
- package/dist/cjs/components/Select.cjs.map +1 -1
- package/dist/cjs/components/Slider.cjs +1 -1
- package/dist/cjs/components/Slider.cjs.map +1 -1
- package/dist/cjs/components/Stepper.cjs +5 -1
- package/dist/cjs/components/Stepper.cjs.map +1 -1
- package/dist/cjs/components/Table.cjs +1 -1
- package/dist/cjs/components/Table.cjs.map +1 -1
- package/dist/cjs/components/Tabs.cjs +1 -1
- package/dist/cjs/components/Tabs.cjs.map +1 -1
- package/dist/cjs/components/Textarea.cjs +1 -1
- package/dist/cjs/components/Textarea.cjs.map +1 -1
- package/dist/cjs/components/Toast.cjs +5 -2
- package/dist/cjs/components/Toast.cjs.map +1 -1
- package/dist/cjs/components/Tooltip.cjs +1 -1
- package/dist/cjs/components/Tooltip.cjs.map +1 -1
- package/dist/cjs/components/TreeView.cjs +43 -10
- package/dist/cjs/components/TreeView.cjs.map +1 -1
- package/dist/cjs/components/date-field.cjs +2 -2
- package/dist/cjs/components/date-field.cjs.map +1 -1
- package/dist/cjs/components/ui.common.cjs +197 -88
- package/dist/cjs/components/ui.common.cjs.map +1 -1
- package/dist/cjs/components/ui.motion.cjs +43 -14
- package/dist/cjs/components/ui.motion.cjs.map +1 -1
- package/dist/cjs/dev.cjs +10 -0
- package/dist/cjs/dev.cjs.map +1 -1
- package/dist/esm/components/Badge.js +2 -2
- package/dist/esm/components/Badge.js.map +1 -1
- package/dist/esm/components/Button.js +12 -3
- package/dist/esm/components/Button.js.map +1 -1
- package/dist/esm/components/Calendar.js +3 -3
- package/dist/esm/components/Calendar.js.map +1 -1
- package/dist/esm/components/Card.js +4 -3
- package/dist/esm/components/Card.js.map +1 -1
- package/dist/esm/components/Checkbox.js +3 -1
- package/dist/esm/components/Checkbox.js.map +1 -1
- package/dist/esm/components/Chip.js +3 -3
- package/dist/esm/components/Chip.js.map +1 -1
- package/dist/esm/components/CodeBlock.js +5 -4
- package/dist/esm/components/CodeBlock.js.map +1 -1
- package/dist/esm/components/Combobox.js +3 -3
- package/dist/esm/components/Combobox.js.map +1 -1
- package/dist/esm/components/Command.js +4 -4
- package/dist/esm/components/Command.js.map +1 -1
- package/dist/esm/components/CommandPalette.js +2 -2
- package/dist/esm/components/CommandPalette.js.map +1 -1
- package/dist/esm/components/DateRangePicker.js +2 -2
- package/dist/esm/components/DateRangePicker.js.map +1 -1
- package/dist/esm/components/DialogHeader.js +2 -2
- package/dist/esm/components/DialogHeader.js.map +1 -1
- package/dist/esm/components/Drawer.js +2 -2
- package/dist/esm/components/Drawer.js.map +1 -1
- package/dist/esm/components/Field.js +2 -2
- package/dist/esm/components/Field.js.map +1 -1
- package/dist/esm/components/FileUpload.js +4 -4
- package/dist/esm/components/FileUpload.js.map +1 -1
- package/dist/esm/components/IconButton.js +1 -1
- package/dist/esm/components/IconButton.js.map +1 -1
- package/dist/esm/components/Input.js +2 -2
- package/dist/esm/components/Input.js.map +1 -1
- package/dist/esm/components/Markdown.js +3 -2
- package/dist/esm/components/Markdown.js.map +1 -1
- package/dist/esm/components/NavItem.js +5 -5
- package/dist/esm/components/NavItem.js.map +1 -1
- package/dist/esm/components/NumberField.js +3 -3
- package/dist/esm/components/NumberField.js.map +1 -1
- package/dist/esm/components/Pagination.js +2 -2
- package/dist/esm/components/Pagination.js.map +1 -1
- package/dist/esm/components/Progress.js +8 -5
- package/dist/esm/components/Progress.js.map +1 -1
- package/dist/esm/components/RadioGroup.js +2 -2
- package/dist/esm/components/RadioGroup.js.map +1 -1
- package/dist/esm/components/Search.js +5 -2
- package/dist/esm/components/Search.js.map +1 -1
- package/dist/esm/components/Select.js +3 -3
- package/dist/esm/components/Select.js.map +1 -1
- package/dist/esm/components/Slider.js +1 -1
- package/dist/esm/components/Slider.js.map +1 -1
- package/dist/esm/components/Stepper.js +6 -2
- package/dist/esm/components/Stepper.js.map +1 -1
- package/dist/esm/components/Table.js +2 -2
- package/dist/esm/components/Table.js.map +1 -1
- package/dist/esm/components/Tabs.js +2 -2
- package/dist/esm/components/Tabs.js.map +1 -1
- package/dist/esm/components/Textarea.js +2 -2
- package/dist/esm/components/Textarea.js.map +1 -1
- package/dist/esm/components/Toast.js +6 -3
- package/dist/esm/components/Toast.js.map +1 -1
- package/dist/esm/components/Tooltip.js +2 -2
- package/dist/esm/components/Tooltip.js.map +1 -1
- package/dist/esm/components/TreeView.js +45 -12
- package/dist/esm/components/TreeView.js.map +1 -1
- package/dist/esm/components/date-field.js +3 -3
- package/dist/esm/components/date-field.js.map +1 -1
- package/dist/esm/components/ui.common.js +194 -90
- package/dist/esm/components/ui.common.js.map +1 -1
- package/dist/esm/components/ui.motion.js +39 -15
- package/dist/esm/components/ui.motion.js.map +1 -1
- package/dist/esm/dev.js +2 -2
- package/dist/styles.css +339 -110
- package/dist/theme.css +40 -7
- package/dist/types/dev.d.cts +88 -56
- package/dist/types/dev.d.ts +88 -56
- package/package.json +1 -1
package/dist/theme.css
CHANGED
|
@@ -11,9 +11,17 @@
|
|
|
11
11
|
--sui-ink: 0.245 0.018 260;
|
|
12
12
|
--sui-ink-muted: 0.480 0.018 260;
|
|
13
13
|
--sui-detail: 0.600 0.016 258;
|
|
14
|
+
--sui-rim: 0.630 0.016 258;
|
|
14
15
|
--sui-primary: 0.422 0.139 255;
|
|
15
16
|
--sui-primary-strong: 0.402 0.143 257;
|
|
16
|
-
--sui-primary-soft: 0.
|
|
17
|
+
--sui-primary-soft: 0.920 0.035 255;
|
|
18
|
+
--sui-primary-selected: 0.860 0.055 255;
|
|
19
|
+
--sui-danger-soft: 0.930 0.030 18;
|
|
20
|
+
--sui-danger-selected: 0.870 0.050 18;
|
|
21
|
+
--sui-warning-soft: 0.940 0.045 85;
|
|
22
|
+
--sui-warning-selected: 0.885 0.070 82;
|
|
23
|
+
--sui-success-soft: 0.935 0.037 155;
|
|
24
|
+
--sui-success-selected: 0.875 0.055 155;
|
|
17
25
|
--sui-accent: 0.62 0.10 215;
|
|
18
26
|
--sui-danger: 0.439 0.170 25;
|
|
19
27
|
--sui-warning: 0.388 0.082 75;
|
|
@@ -29,12 +37,12 @@
|
|
|
29
37
|
--sui-light-top: 1 0 0;
|
|
30
38
|
--sui-light-bottom: 0.32 0.02 256;
|
|
31
39
|
--sui-elevation-flat: none;
|
|
32
|
-
--sui-elevation-raised: 0 1px 2px oklch(var(--sui-light-bottom) / 0.16), 0
|
|
40
|
+
--sui-elevation-raised: 0 1px 2px oklch(var(--sui-light-bottom) / 0.16), 0 2px 6px oklch(var(--sui-light-bottom) / 0.07);
|
|
33
41
|
--sui-elevation-floating: 0 16px 40px oklch(var(--sui-light-bottom) / 0.20), inset 0 1px 0 oklch(var(--sui-light-top) / 0.70);
|
|
34
42
|
--sui-elevation-control: 0 1px 2px oklch(var(--sui-light-bottom) / 0.19), inset 0 1px 0 oklch(var(--sui-light-top) / 0.55);
|
|
35
43
|
--sui-elevation-recessed: inset 0 1px 3px oklch(var(--sui-light-bottom) / 0.22), inset 0 -1px 0 oklch(var(--sui-light-top) / 0.50);
|
|
36
44
|
--sui-elevation-recessed-top: inset 0 5px 8px -5px oklch(var(--sui-light-bottom) / 0.21);
|
|
37
|
-
--sui-elevation-well: inset 0
|
|
45
|
+
--sui-elevation-well: inset 0 2px 4px oklch(var(--sui-light-bottom) / 0.40), inset 0 -1px 0 oklch(var(--sui-light-top) / 0.50);
|
|
38
46
|
--sui-glass-fill: 0.98;
|
|
39
47
|
--sui-glass-blur: 28px;
|
|
40
48
|
--sui-glass-saturation: 1.06;
|
|
@@ -71,9 +79,17 @@
|
|
|
71
79
|
--sui-ink: 0.94 0.008 255;
|
|
72
80
|
--sui-ink-muted: 0.76 0.014 255;
|
|
73
81
|
--sui-detail: 0.600 0.014 256;
|
|
82
|
+
--sui-rim: 0.555 0.014 256;
|
|
74
83
|
--sui-primary: 0.809 0.098 255;
|
|
75
84
|
--sui-primary-strong: 0.734 0.139 257;
|
|
76
|
-
--sui-primary-soft: 0.
|
|
85
|
+
--sui-primary-soft: 0.325 0.050 257;
|
|
86
|
+
--sui-primary-selected: 0.400 0.075 257;
|
|
87
|
+
--sui-danger-soft: 0.315 0.050 22;
|
|
88
|
+
--sui-danger-selected: 0.395 0.070 22;
|
|
89
|
+
--sui-warning-soft: 0.320 0.045 78;
|
|
90
|
+
--sui-warning-selected: 0.400 0.065 78;
|
|
91
|
+
--sui-success-soft: 0.315 0.045 160;
|
|
92
|
+
--sui-success-selected: 0.395 0.065 160;
|
|
77
93
|
--sui-accent: 0.80 0.08 215;
|
|
78
94
|
--sui-danger: 0.799 0.115 25;
|
|
79
95
|
--sui-warning: 0.82 0.12 80;
|
|
@@ -94,7 +110,7 @@
|
|
|
94
110
|
--sui-elevation-control: 0 1px 2px oklch(var(--sui-light-bottom) / 0.30), inset 0 1px 0 oklch(var(--sui-light-top) / 0.08);
|
|
95
111
|
--sui-elevation-recessed: inset 0 1px 3px oklch(var(--sui-light-bottom) / 0.38), inset 0 -1px 0 oklch(var(--sui-light-top) / 0.06);
|
|
96
112
|
--sui-elevation-recessed-top: inset 0 5px 8px -5px oklch(var(--sui-light-bottom) / 0.36);
|
|
97
|
-
--sui-elevation-well: inset 0
|
|
113
|
+
--sui-elevation-well: inset 0 2px 4px oklch(var(--sui-light-bottom) / 0.60), inset 0 -1px 0 oklch(var(--sui-light-top) / 0.06);
|
|
98
114
|
--sui-glass-fill: 0.98;
|
|
99
115
|
--sui-glass-blur: 32px;
|
|
100
116
|
--sui-glass-saturation: 1.10;
|
|
@@ -132,9 +148,17 @@
|
|
|
132
148
|
--sui-ink: 0.94 0.008 255;
|
|
133
149
|
--sui-ink-muted: 0.76 0.014 255;
|
|
134
150
|
--sui-detail: 0.600 0.014 256;
|
|
151
|
+
--sui-rim: 0.555 0.014 256;
|
|
135
152
|
--sui-primary: 0.809 0.098 255;
|
|
136
153
|
--sui-primary-strong: 0.734 0.139 257;
|
|
137
|
-
--sui-primary-soft: 0.
|
|
154
|
+
--sui-primary-soft: 0.325 0.050 257;
|
|
155
|
+
--sui-primary-selected: 0.400 0.075 257;
|
|
156
|
+
--sui-danger-soft: 0.315 0.050 22;
|
|
157
|
+
--sui-danger-selected: 0.395 0.070 22;
|
|
158
|
+
--sui-warning-soft: 0.320 0.045 78;
|
|
159
|
+
--sui-warning-selected: 0.400 0.065 78;
|
|
160
|
+
--sui-success-soft: 0.315 0.045 160;
|
|
161
|
+
--sui-success-selected: 0.395 0.065 160;
|
|
138
162
|
--sui-accent: 0.80 0.08 215;
|
|
139
163
|
--sui-danger: 0.799 0.115 25;
|
|
140
164
|
--sui-warning: 0.82 0.12 80;
|
|
@@ -155,7 +179,7 @@
|
|
|
155
179
|
--sui-elevation-control: 0 1px 2px oklch(var(--sui-light-bottom) / 0.30), inset 0 1px 0 oklch(var(--sui-light-top) / 0.08);
|
|
156
180
|
--sui-elevation-recessed: inset 0 1px 3px oklch(var(--sui-light-bottom) / 0.38), inset 0 -1px 0 oklch(var(--sui-light-top) / 0.06);
|
|
157
181
|
--sui-elevation-recessed-top: inset 0 5px 8px -5px oklch(var(--sui-light-bottom) / 0.36);
|
|
158
|
-
--sui-elevation-well: inset 0
|
|
182
|
+
--sui-elevation-well: inset 0 2px 4px oklch(var(--sui-light-bottom) / 0.60), inset 0 -1px 0 oklch(var(--sui-light-top) / 0.06);
|
|
159
183
|
--sui-glass-fill: 0.98;
|
|
160
184
|
--sui-glass-blur: 32px;
|
|
161
185
|
--sui-glass-saturation: 1.10;
|
|
@@ -184,11 +208,20 @@
|
|
|
184
208
|
}
|
|
185
209
|
|
|
186
210
|
:root {
|
|
211
|
+
--sui-font-mono: ui-monospace, "SF Mono", SFMono-Regular, "Cascadia Code", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", monospace;
|
|
212
|
+
--sui-rim-dashed: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='100%25' height='100%25' rx='16' fill='none' stroke='%23000' stroke-width='3' stroke-dasharray='7' stroke-linecap='round'/%3E%3C/svg%3E");
|
|
187
213
|
--sui-duration-press: 150ms;
|
|
188
214
|
--sui-duration-release: 200ms;
|
|
215
|
+
--sui-duration-tactile: 80ms;
|
|
189
216
|
--sui-duration-overlay: 240ms;
|
|
190
217
|
--sui-duration-overlay-exit: 160ms;
|
|
218
|
+
--sui-duration-travel: 300ms;
|
|
219
|
+
--sui-duration-sheet: 320ms;
|
|
220
|
+
--sui-duration-sheet-exit: 200ms;
|
|
191
221
|
--sui-duration-activity: 1400ms;
|
|
222
|
+
--sui-duration-spin: 1000ms;
|
|
223
|
+
--sui-duration-pulse: 2000ms;
|
|
224
|
+
--sui-ease-pulse: cubic-bezier(0.4, 0, 0.6, 1);
|
|
192
225
|
--sui-ease-press: cubic-bezier(0.4, 0, 0.2, 1);
|
|
193
226
|
--sui-ease-release: cubic-bezier(0.16, 1, 0.3, 1);
|
|
194
227
|
--sui-ease-exit: cubic-bezier(0.4, 0, 1, 1);
|
package/dist/types/dev.d.cts
CHANGED
|
@@ -17,13 +17,13 @@ declare const elevation: {
|
|
|
17
17
|
};
|
|
18
18
|
declare const recessedTop = "shadow-sherick-recessed-top";
|
|
19
19
|
declare const shape: {
|
|
20
|
-
readonly control: "rounded-[
|
|
21
|
-
readonly mark: "rounded-[0.
|
|
22
|
-
readonly row: "rounded-[0.
|
|
23
|
-
readonly prominent: "rounded-[1.
|
|
24
|
-
readonly surface: "rounded-[1.
|
|
25
|
-
readonly sheet: "rounded-[
|
|
26
|
-
readonly expressive: "rounded-[
|
|
20
|
+
readonly control: "rounded-[1rem]";
|
|
21
|
+
readonly mark: "rounded-[0.375rem]";
|
|
22
|
+
readonly row: "rounded-[0.75rem]";
|
|
23
|
+
readonly prominent: "rounded-[1.25rem]";
|
|
24
|
+
readonly surface: "rounded-[1.5rem]";
|
|
25
|
+
readonly sheet: "rounded-[1rem]";
|
|
26
|
+
readonly expressive: "rounded-[1.75rem]";
|
|
27
27
|
readonly pill: "rounded-full";
|
|
28
28
|
readonly circle: "rounded-full";
|
|
29
29
|
};
|
|
@@ -32,6 +32,13 @@ declare const edgeTone: {
|
|
|
32
32
|
readonly header: "border-sherick-edge/[0.10]";
|
|
33
33
|
readonly rule: "border-sherick-edge/[0.075]";
|
|
34
34
|
};
|
|
35
|
+
declare const rim: {
|
|
36
|
+
readonly field: "border-[1.5px] border-sherick-rim";
|
|
37
|
+
readonly fieldError: "border-[1.5px] border-sherick-danger";
|
|
38
|
+
readonly dashed: string;
|
|
39
|
+
readonly dashedHover: "hover:after:bg-sherick-ink-muted";
|
|
40
|
+
readonly dashedDragging: "data-[dragging]:after:bg-sherick-primary";
|
|
41
|
+
};
|
|
35
42
|
declare const edge: {
|
|
36
43
|
readonly row: string;
|
|
37
44
|
readonly header: string;
|
|
@@ -49,25 +56,27 @@ declare const state: {
|
|
|
49
56
|
readonly text: "cursor-text";
|
|
50
57
|
readonly rowHover: "hover:bg-sherick-ink/[0.05]";
|
|
51
58
|
readonly field: {
|
|
52
|
-
readonly hover: "hover:bg-sherick-
|
|
53
|
-
readonly focus: "focus:bg-sherick-
|
|
54
|
-
readonly focusWithin: "[&&]:focus-within:bg-sherick-
|
|
55
|
-
readonly engaged: "bg-sherick-
|
|
56
|
-
readonly errorHover: "hover:bg-sherick-
|
|
57
|
-
readonly errorFocus: "focus:bg-sherick-
|
|
58
|
-
readonly errorEngaged: "bg-sherick-
|
|
59
|
-
readonly invalid: "data-[invalid]:
|
|
60
|
-
readonly invalidHover: "data-[invalid]:hover:
|
|
61
|
-
readonly invalidEngaged: "data-[invalid]:
|
|
62
|
-
readonly invalidFocusWithin: "[&&]:data-[invalid]:focus-within:
|
|
59
|
+
readonly hover: "hover:bg-sherick-canvas/[0.85] hover:border-sherick-ink-muted";
|
|
60
|
+
readonly focus: "focus:bg-sherick-canvas focus:border-sherick-ink-muted";
|
|
61
|
+
readonly focusWithin: "[&&]:focus-within:bg-sherick-canvas [&&]:focus-within:border-sherick-ink-muted";
|
|
62
|
+
readonly engaged: "bg-sherick-canvas border-sherick-ink-muted";
|
|
63
|
+
readonly errorHover: "hover:bg-sherick-canvas/[0.85]";
|
|
64
|
+
readonly errorFocus: "focus:bg-sherick-canvas";
|
|
65
|
+
readonly errorEngaged: "bg-sherick-canvas";
|
|
66
|
+
readonly invalid: "data-[invalid]:border-sherick-danger";
|
|
67
|
+
readonly invalidHover: "data-[invalid]:hover:border-sherick-danger";
|
|
68
|
+
readonly invalidEngaged: "data-[invalid]:border-sherick-danger";
|
|
69
|
+
readonly invalidFocusWithin: "[&&]:data-[invalid]:focus-within:border-sherick-danger";
|
|
63
70
|
};
|
|
64
71
|
};
|
|
65
72
|
declare const stateLayerQuietComposite: string;
|
|
66
73
|
declare const stateLayer: {
|
|
67
74
|
readonly quiet: string;
|
|
68
75
|
readonly tonal: string;
|
|
76
|
+
readonly tonalNeutral: string;
|
|
69
77
|
readonly filled: string;
|
|
70
78
|
readonly track: string;
|
|
79
|
+
readonly mark: string;
|
|
71
80
|
readonly activeRow: "data-[highlighted]:before:opacity-[0.05]";
|
|
72
81
|
};
|
|
73
82
|
declare const hitArea = "relative after:pointer-events-auto after:absolute after:inset-[min(0px,calc((100%-2.75rem)/2))] after:content-['']";
|
|
@@ -76,8 +85,8 @@ declare const material: {
|
|
|
76
85
|
readonly matteQuiet: "bg-sherick-surface/[0.42] text-sherick-ink";
|
|
77
86
|
readonly matte: "bg-sherick-surface/[0.78] text-sherick-ink";
|
|
78
87
|
readonly matteHigh: "bg-sherick-surface-high/[0.72] text-sherick-ink";
|
|
79
|
-
readonly control: "bg-sherick-
|
|
80
|
-
readonly controlError: "bg-sherick-
|
|
88
|
+
readonly control: "bg-sherick-canvas/[0.7] text-sherick-ink placeholder:text-sherick-ink-muted";
|
|
89
|
+
readonly controlError: "bg-sherick-canvas/[0.7] text-sherick-ink placeholder:text-sherick-danger";
|
|
81
90
|
readonly handle: "bg-sherick-ink-muted text-sherick-canvas";
|
|
82
91
|
readonly acrylic: "bg-sherick-surface-float/[var(--sui-glass-fill)] bg-[image:var(--sui-glass-gradient)] text-sherick-ink backdrop-blur-[var(--sui-glass-blur)] backdrop-saturate-[var(--sui-glass-saturation)] backdrop-brightness-[var(--sui-glass-brightness)]";
|
|
83
92
|
readonly acrylicDense: "bg-sherick-surface-float/[var(--sui-glass-dense-fill)] bg-[image:var(--sui-glass-gradient-dense)] text-sherick-ink backdrop-blur-[var(--sui-glass-dense-blur)] backdrop-saturate-[var(--sui-glass-dense-saturation)] backdrop-brightness-[var(--sui-glass-dense-brightness)]";
|
|
@@ -85,13 +94,31 @@ declare const material: {
|
|
|
85
94
|
};
|
|
86
95
|
declare const mediaCanvas = "bg-sherick-media";
|
|
87
96
|
declare const matteInset = "bg-sherick-surface-high/[0.35] text-sherick-ink";
|
|
97
|
+
declare const type: {
|
|
98
|
+
readonly control: {
|
|
99
|
+
readonly compact: "text-sm";
|
|
100
|
+
readonly normal: "text-[0.9375rem] leading-[1.375rem]";
|
|
101
|
+
readonly prominent: "text-lg";
|
|
102
|
+
};
|
|
103
|
+
readonly supporting: "text-[0.8125rem] leading-5";
|
|
104
|
+
readonly caption: "text-xs leading-4";
|
|
105
|
+
readonly title: "text-[0.9375rem] leading-[1.375rem] font-semibold";
|
|
106
|
+
readonly heading: "text-xl leading-7 font-semibold tracking-[-0.02em]";
|
|
107
|
+
readonly numeric: "tabular-nums";
|
|
108
|
+
};
|
|
88
109
|
declare const density: {
|
|
89
|
-
readonly compact:
|
|
90
|
-
readonly normal:
|
|
91
|
-
readonly prominent:
|
|
110
|
+
readonly compact: string;
|
|
111
|
+
readonly normal: string;
|
|
112
|
+
readonly prominent: string;
|
|
92
113
|
readonly target: "min-h-11 min-w-11";
|
|
93
114
|
readonly part: "min-h-11 min-w-9";
|
|
94
115
|
};
|
|
116
|
+
declare const iconSlot: {
|
|
117
|
+
readonly caption: "inline-flex size-3.5 shrink-0 items-center justify-center [&>svg]:size-3.5";
|
|
118
|
+
readonly compact: "inline-flex size-4 shrink-0 items-center justify-center [&>svg]:size-4";
|
|
119
|
+
readonly normal: "inline-flex size-5 shrink-0 items-center justify-center [&>svg]:size-5";
|
|
120
|
+
readonly prominent: "inline-flex size-6 shrink-0 items-center justify-center [&>svg]:size-6";
|
|
121
|
+
};
|
|
95
122
|
declare const stacking: {
|
|
96
123
|
readonly float: "z-50";
|
|
97
124
|
readonly notification: "z-[60]";
|
|
@@ -168,14 +195,16 @@ declare const tone: {
|
|
|
168
195
|
success: string;
|
|
169
196
|
};
|
|
170
197
|
};
|
|
171
|
-
declare const
|
|
198
|
+
declare const currentDestination = "bg-sherick-primary-soft text-sherick-ink font-medium";
|
|
199
|
+
declare const selectableRowSurface = "has-[[data-checked]]:bg-sherick-primary-selected has-[[data-checked]]:text-sherick-ink has-[[data-checked]]:shadow-sherick-control";
|
|
172
200
|
declare const selectable: {
|
|
173
201
|
readonly surface: string;
|
|
174
202
|
readonly markSurface: string;
|
|
175
203
|
readonly rest: string;
|
|
176
204
|
readonly mark: string;
|
|
177
|
-
readonly selected: "group-data-[checked]:bg-sherick-primary-strong group-data-[checked]:text-sherick-on-primary";
|
|
178
|
-
readonly indeterminate: "group-data-[indeterminate]:bg-sherick-primary-strong group-data-[indeterminate]:text-sherick-on-primary";
|
|
205
|
+
readonly selected: "group-data-[checked]:bg-sherick-primary-strong group-data-[checked]:text-sherick-on-primary group-data-[checked]:shadow-sherick-flat group-data-[checked]:after:opacity-0";
|
|
206
|
+
readonly indeterminate: "group-data-[indeterminate]:bg-sherick-primary-strong group-data-[indeterminate]:text-sherick-on-primary group-data-[indeterminate]:shadow-sherick-flat group-data-[indeterminate]:after:opacity-0";
|
|
207
|
+
readonly thumb: "bg-current";
|
|
179
208
|
};
|
|
180
209
|
declare const recipeAlphas: {
|
|
181
210
|
readonly state: {
|
|
@@ -187,53 +216,45 @@ declare const recipeAlphas: {
|
|
|
187
216
|
readonly hover: number;
|
|
188
217
|
readonly press: number;
|
|
189
218
|
};
|
|
219
|
+
readonly tonalNeutral: {
|
|
220
|
+
readonly hover: number;
|
|
221
|
+
readonly press: number;
|
|
222
|
+
};
|
|
190
223
|
readonly filled: {
|
|
191
224
|
readonly hover: number;
|
|
192
225
|
readonly press: number;
|
|
193
226
|
};
|
|
227
|
+
readonly mark: {
|
|
228
|
+
readonly hover: number;
|
|
229
|
+
};
|
|
194
230
|
};
|
|
195
231
|
readonly tint: {
|
|
196
|
-
readonly
|
|
197
|
-
readonly primary: number;
|
|
198
|
-
readonly danger: number;
|
|
199
|
-
readonly warning: number;
|
|
200
|
-
readonly success: number;
|
|
201
|
-
};
|
|
202
|
-
readonly selected: {
|
|
203
|
-
readonly primary: number;
|
|
204
|
-
readonly danger: number;
|
|
205
|
-
readonly warning: number;
|
|
206
|
-
readonly success: number;
|
|
207
|
-
};
|
|
232
|
+
readonly neutralSoft: number;
|
|
208
233
|
readonly neutralRest: number;
|
|
209
234
|
};
|
|
210
235
|
readonly field: {
|
|
211
236
|
readonly quiet: number;
|
|
212
237
|
readonly card: number;
|
|
238
|
+
readonly groove: number;
|
|
213
239
|
readonly control: number;
|
|
214
240
|
readonly hover: number;
|
|
215
241
|
readonly engaged: number;
|
|
216
|
-
readonly invalid: number;
|
|
217
|
-
readonly invalidHover: number;
|
|
218
|
-
readonly invalidFocus: number;
|
|
219
242
|
};
|
|
220
243
|
};
|
|
221
244
|
declare const fieldLayout = "flex min-w-0 w-full flex-col [overflow-wrap:anywhere]";
|
|
245
|
+
declare const fieldMessage: {
|
|
246
|
+
readonly description: string;
|
|
247
|
+
readonly error: string;
|
|
248
|
+
};
|
|
222
249
|
|
|
223
250
|
type MotionIntent = "feedback" | "tactile" | "arrive" | "orient" | "relocate" | "direct" | "disclose" | "presence" | "activity";
|
|
224
251
|
/** Non-spatial feedback: hover, focus, field tone, a highlighted row, a filled surface.
|
|
225
252
|
* It never translates, scales or resizes; reduced motion simply drops the interpolation
|
|
226
253
|
* and the state still arrives. */
|
|
227
|
-
declare const motionFeedback = "transition-[background-color,color,box-shadow,opacity] duration-press ease-press motion-reduce:transition-none";
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
* press travels is the system's physical character rather than a component's anatomy: a
|
|
232
|
-
* control whose outline is what the user sees compresses 4%, which is about two pixels at the
|
|
233
|
-
* size of the ink it moves. A control whose visible ink is far smaller than the target it is
|
|
234
|
-
* aimed at takes `motionInkPress` on that ink instead, so the target itself never moves. The
|
|
235
|
-
* interpolation and the compression are neutralised together under reduced motion. */
|
|
236
|
-
declare const motionTactile = "transition-[background-color,color,box-shadow,transform,opacity] duration-release ease-release active:duration-press active:ease-press motion-safe:[&:not([data-disabled],:disabled,:has(>[role=combobox][data-disabled]))]:active:scale-[0.96] motion-reduce:transition-none";
|
|
254
|
+
declare const motionFeedback = "transition-[background-color,border-color,color,box-shadow,opacity] duration-press ease-press motion-reduce:transition-none";
|
|
255
|
+
declare const motionTactile: string;
|
|
256
|
+
declare const motionTactileWide: string;
|
|
257
|
+
declare const motionTactileField: string;
|
|
237
258
|
/** The spatial half of a compact press, applied to the *mark* rather than to the control.
|
|
238
259
|
*
|
|
239
260
|
* A control whose visible ink is much smaller than the target it is aimed at — a dialog's close
|
|
@@ -243,7 +264,7 @@ declare const motionTactile = "transition-[background-color,color,box-shadow,tra
|
|
|
243
264
|
* release lands), so the mark takes the twelve percent and the target keeps its geometry. The
|
|
244
265
|
* target still owns the focus ring and the state layer, and still carries the tone and depth
|
|
245
266
|
* response, so the boundary a press happens inside never moves. */
|
|
246
|
-
declare const motionInkPress = "transition-transform duration-release ease-release group-active:duration-
|
|
267
|
+
declare const motionInkPress = "transition-transform duration-release ease-release group-active:duration-tactile group-active:ease-press group-active:scale-[0.88] motion-reduce:transition-none motion-reduce:group-active:scale-100";
|
|
247
268
|
/** A meaningful subordinate part arrives. Spring is reserved for this intent: a mark is
|
|
248
269
|
* made by overshooting the position it lands in. It leaves without the overshoot, and
|
|
249
270
|
* reduced motion lands it in one step — which takes a *state-specific* override, because the
|
|
@@ -260,6 +281,9 @@ declare const motionOrient = "transition-transform duration-release ease-release
|
|
|
260
281
|
* settle together, and an interrupted move retargets from wherever it currently is
|
|
261
282
|
* because it is a transition and not a keyframe. */
|
|
262
283
|
declare const motionRelocate = "transition-[left,inset-inline-start,top,width,height,transform,background-color,color,box-shadow,opacity] duration-release ease-glide motion-reduce:transition-none";
|
|
284
|
+
/** The same travel across a whole track — a tab indicator — on the longer travel timing, so a
|
|
285
|
+
* movement of hundreds of pixels is followed rather than skipped. */
|
|
286
|
+
declare const motionRelocateLong = "transition-[left,inset-inline-start,top,width,height,transform,background-color,color,box-shadow,opacity] duration-travel ease-glide motion-reduce:transition-none";
|
|
263
287
|
/** Direct manipulation: the pointer owns the geometry, so a positional transition would be
|
|
264
288
|
* lag. While the primitive reports a drag, position and size are removed from the
|
|
265
289
|
* transition list and only tone and engagement geometry remain; a keyboard or programmatic
|
|
@@ -284,7 +308,7 @@ declare const motionPresenceTooltip: string;
|
|
|
284
308
|
declare const motionPresenceModal: string;
|
|
285
309
|
/** The plane behind a surface that owns the viewport. Opacity only: a blur or a filter is
|
|
286
310
|
* never animated, so the plane can never animate the page behind it. */
|
|
287
|
-
declare const motionPresenceScrim = "transition-opacity duration-overlay ease-release data-[ending-style]:duration-overlay-exit data-[ending-style]:ease-exit";
|
|
311
|
+
declare const motionPresenceScrim = "transition-opacity duration-overlay ease-release data-[starting-style]:opacity-0 data-[ending-style]:opacity-0 data-[ending-style]:duration-overlay-exit data-[ending-style]:ease-exit";
|
|
288
312
|
/** Continuous activity is a distinct intent, not an exception to interaction motion: it
|
|
289
313
|
* reports work rather than answering an event, and it has no entrance of its own. */
|
|
290
314
|
declare const motionActivitySpin = "animate-spin motion-reduce:animate-none";
|
|
@@ -299,8 +323,16 @@ declare const motionActivityPulse = "animate-pulse motion-reduce:animate-none";
|
|
|
299
323
|
declare const motionActivityIndeterminate = "animate-sherick-indeterminate [[dir=rtl]_&]:[--sui-indeterminate-direction:-1] motion-reduce:animate-none";
|
|
300
324
|
/** The state layer is a composited overlay, so its own opacity is the only thing that
|
|
301
325
|
* moves. Shared here because four interaction states across the library ride it. */
|
|
302
|
-
|
|
303
|
-
|
|
326
|
+
/** A row in a collection moves its highlight rather than fading it: a highlight is where the reader
|
|
327
|
+
* is, and arrowing through a list with a soft fade on every row leaves a smear of half-lit rows.
|
|
328
|
+
* The row's layer therefore changes in one step, for the pointer and the keyboard alike. */
|
|
329
|
+
declare const motionRowLayer = "before:transition-none";
|
|
330
|
+
/** A rim drawn as an overlay of its own — an empty selection mark's lip, a drop target's dashes —
|
|
331
|
+
* carries its own feedback timing: it steps up on hover and fades as a selection fill arrives,
|
|
332
|
+
* on the same press curve as the surface beneath it. */
|
|
333
|
+
declare const motionRim = "after:transition-[background-color,border-color,opacity] after:duration-press after:ease-press motion-reduce:after:transition-none";
|
|
334
|
+
declare const motionStateLayer = "before:transition-opacity before:duration-release before:ease-release active:before:duration-tactile active:before:ease-press group-active:before:duration-tactile group-active:before:ease-press motion-reduce:before:transition-none";
|
|
335
|
+
declare const motionDisclose = "transition-[height] duration-release ease-release data-[starting-style]:h-0 data-[ending-style]:h-0 data-[ending-style]:duration-overlay-exit data-[ending-style]:ease-exit motion-reduce:transition-none";
|
|
304
336
|
declare const motionPresenceSheet: string;
|
|
305
337
|
declare const motionPresenceToast: string;
|
|
306
338
|
|
|
@@ -311,5 +343,5 @@ declare const motionPresenceToast: string;
|
|
|
311
343
|
*/
|
|
312
344
|
declare const cn: (...inputs: ClassValue[]) => string;
|
|
313
345
|
|
|
314
|
-
export { cn, density, detail, disclosure, edge, edgeTone, elevation, fieldLayout, focusRing, focusRingDrag, focusRingHeld, focusRingInset, focusRingWithin, groupFocusRing, hitArea, list, material, matteInset, mediaCanvas, motionActivityIndeterminate, motionActivityPulse, motionActivitySpin, motionArrive, motionDirect, motionDisclose, motionFeedback, motionInkPress, motionOrient, motionPresenceAnchored, motionPresenceModal, motionPresenceScrim, motionPresenceSheet, motionPresenceToast, motionPresenceTooltip, motionRelocate, motionStateLayer, motionTactile, overlay, parentFocusRingInset, recessedTop, recipeAlphas, selectable, selectableRowSurface, shape, stacking, state, stateLayer, stateLayerQuietComposite, text, tone };
|
|
346
|
+
export { cn, currentDestination, density, detail, disclosure, edge, edgeTone, elevation, fieldLayout, fieldMessage, focusRing, focusRingDrag, focusRingHeld, focusRingInset, focusRingWithin, groupFocusRing, hitArea, iconSlot, list, material, matteInset, mediaCanvas, motionActivityIndeterminate, motionActivityPulse, motionActivitySpin, motionArrive, motionDirect, motionDisclose, motionFeedback, motionInkPress, motionOrient, motionPresenceAnchored, motionPresenceModal, motionPresenceScrim, motionPresenceSheet, motionPresenceToast, motionPresenceTooltip, motionRelocate, motionRelocateLong, motionRim, motionRowLayer, motionStateLayer, motionTactile, motionTactileField, motionTactileWide, overlay, parentFocusRingInset, recessedTop, recipeAlphas, rim, selectable, selectableRowSurface, shape, stacking, state, stateLayer, stateLayerQuietComposite, text, tone, type };
|
|
315
347
|
export type { MotionIntent };
|
package/dist/types/dev.d.ts
CHANGED
|
@@ -17,13 +17,13 @@ declare const elevation: {
|
|
|
17
17
|
};
|
|
18
18
|
declare const recessedTop = "shadow-sherick-recessed-top";
|
|
19
19
|
declare const shape: {
|
|
20
|
-
readonly control: "rounded-[
|
|
21
|
-
readonly mark: "rounded-[0.
|
|
22
|
-
readonly row: "rounded-[0.
|
|
23
|
-
readonly prominent: "rounded-[1.
|
|
24
|
-
readonly surface: "rounded-[1.
|
|
25
|
-
readonly sheet: "rounded-[
|
|
26
|
-
readonly expressive: "rounded-[
|
|
20
|
+
readonly control: "rounded-[1rem]";
|
|
21
|
+
readonly mark: "rounded-[0.375rem]";
|
|
22
|
+
readonly row: "rounded-[0.75rem]";
|
|
23
|
+
readonly prominent: "rounded-[1.25rem]";
|
|
24
|
+
readonly surface: "rounded-[1.5rem]";
|
|
25
|
+
readonly sheet: "rounded-[1rem]";
|
|
26
|
+
readonly expressive: "rounded-[1.75rem]";
|
|
27
27
|
readonly pill: "rounded-full";
|
|
28
28
|
readonly circle: "rounded-full";
|
|
29
29
|
};
|
|
@@ -32,6 +32,13 @@ declare const edgeTone: {
|
|
|
32
32
|
readonly header: "border-sherick-edge/[0.10]";
|
|
33
33
|
readonly rule: "border-sherick-edge/[0.075]";
|
|
34
34
|
};
|
|
35
|
+
declare const rim: {
|
|
36
|
+
readonly field: "border-[1.5px] border-sherick-rim";
|
|
37
|
+
readonly fieldError: "border-[1.5px] border-sherick-danger";
|
|
38
|
+
readonly dashed: string;
|
|
39
|
+
readonly dashedHover: "hover:after:bg-sherick-ink-muted";
|
|
40
|
+
readonly dashedDragging: "data-[dragging]:after:bg-sherick-primary";
|
|
41
|
+
};
|
|
35
42
|
declare const edge: {
|
|
36
43
|
readonly row: string;
|
|
37
44
|
readonly header: string;
|
|
@@ -49,25 +56,27 @@ declare const state: {
|
|
|
49
56
|
readonly text: "cursor-text";
|
|
50
57
|
readonly rowHover: "hover:bg-sherick-ink/[0.05]";
|
|
51
58
|
readonly field: {
|
|
52
|
-
readonly hover: "hover:bg-sherick-
|
|
53
|
-
readonly focus: "focus:bg-sherick-
|
|
54
|
-
readonly focusWithin: "[&&]:focus-within:bg-sherick-
|
|
55
|
-
readonly engaged: "bg-sherick-
|
|
56
|
-
readonly errorHover: "hover:bg-sherick-
|
|
57
|
-
readonly errorFocus: "focus:bg-sherick-
|
|
58
|
-
readonly errorEngaged: "bg-sherick-
|
|
59
|
-
readonly invalid: "data-[invalid]:
|
|
60
|
-
readonly invalidHover: "data-[invalid]:hover:
|
|
61
|
-
readonly invalidEngaged: "data-[invalid]:
|
|
62
|
-
readonly invalidFocusWithin: "[&&]:data-[invalid]:focus-within:
|
|
59
|
+
readonly hover: "hover:bg-sherick-canvas/[0.85] hover:border-sherick-ink-muted";
|
|
60
|
+
readonly focus: "focus:bg-sherick-canvas focus:border-sherick-ink-muted";
|
|
61
|
+
readonly focusWithin: "[&&]:focus-within:bg-sherick-canvas [&&]:focus-within:border-sherick-ink-muted";
|
|
62
|
+
readonly engaged: "bg-sherick-canvas border-sherick-ink-muted";
|
|
63
|
+
readonly errorHover: "hover:bg-sherick-canvas/[0.85]";
|
|
64
|
+
readonly errorFocus: "focus:bg-sherick-canvas";
|
|
65
|
+
readonly errorEngaged: "bg-sherick-canvas";
|
|
66
|
+
readonly invalid: "data-[invalid]:border-sherick-danger";
|
|
67
|
+
readonly invalidHover: "data-[invalid]:hover:border-sherick-danger";
|
|
68
|
+
readonly invalidEngaged: "data-[invalid]:border-sherick-danger";
|
|
69
|
+
readonly invalidFocusWithin: "[&&]:data-[invalid]:focus-within:border-sherick-danger";
|
|
63
70
|
};
|
|
64
71
|
};
|
|
65
72
|
declare const stateLayerQuietComposite: string;
|
|
66
73
|
declare const stateLayer: {
|
|
67
74
|
readonly quiet: string;
|
|
68
75
|
readonly tonal: string;
|
|
76
|
+
readonly tonalNeutral: string;
|
|
69
77
|
readonly filled: string;
|
|
70
78
|
readonly track: string;
|
|
79
|
+
readonly mark: string;
|
|
71
80
|
readonly activeRow: "data-[highlighted]:before:opacity-[0.05]";
|
|
72
81
|
};
|
|
73
82
|
declare const hitArea = "relative after:pointer-events-auto after:absolute after:inset-[min(0px,calc((100%-2.75rem)/2))] after:content-['']";
|
|
@@ -76,8 +85,8 @@ declare const material: {
|
|
|
76
85
|
readonly matteQuiet: "bg-sherick-surface/[0.42] text-sherick-ink";
|
|
77
86
|
readonly matte: "bg-sherick-surface/[0.78] text-sherick-ink";
|
|
78
87
|
readonly matteHigh: "bg-sherick-surface-high/[0.72] text-sherick-ink";
|
|
79
|
-
readonly control: "bg-sherick-
|
|
80
|
-
readonly controlError: "bg-sherick-
|
|
88
|
+
readonly control: "bg-sherick-canvas/[0.7] text-sherick-ink placeholder:text-sherick-ink-muted";
|
|
89
|
+
readonly controlError: "bg-sherick-canvas/[0.7] text-sherick-ink placeholder:text-sherick-danger";
|
|
81
90
|
readonly handle: "bg-sherick-ink-muted text-sherick-canvas";
|
|
82
91
|
readonly acrylic: "bg-sherick-surface-float/[var(--sui-glass-fill)] bg-[image:var(--sui-glass-gradient)] text-sherick-ink backdrop-blur-[var(--sui-glass-blur)] backdrop-saturate-[var(--sui-glass-saturation)] backdrop-brightness-[var(--sui-glass-brightness)]";
|
|
83
92
|
readonly acrylicDense: "bg-sherick-surface-float/[var(--sui-glass-dense-fill)] bg-[image:var(--sui-glass-gradient-dense)] text-sherick-ink backdrop-blur-[var(--sui-glass-dense-blur)] backdrop-saturate-[var(--sui-glass-dense-saturation)] backdrop-brightness-[var(--sui-glass-dense-brightness)]";
|
|
@@ -85,13 +94,31 @@ declare const material: {
|
|
|
85
94
|
};
|
|
86
95
|
declare const mediaCanvas = "bg-sherick-media";
|
|
87
96
|
declare const matteInset = "bg-sherick-surface-high/[0.35] text-sherick-ink";
|
|
97
|
+
declare const type: {
|
|
98
|
+
readonly control: {
|
|
99
|
+
readonly compact: "text-sm";
|
|
100
|
+
readonly normal: "text-[0.9375rem] leading-[1.375rem]";
|
|
101
|
+
readonly prominent: "text-lg";
|
|
102
|
+
};
|
|
103
|
+
readonly supporting: "text-[0.8125rem] leading-5";
|
|
104
|
+
readonly caption: "text-xs leading-4";
|
|
105
|
+
readonly title: "text-[0.9375rem] leading-[1.375rem] font-semibold";
|
|
106
|
+
readonly heading: "text-xl leading-7 font-semibold tracking-[-0.02em]";
|
|
107
|
+
readonly numeric: "tabular-nums";
|
|
108
|
+
};
|
|
88
109
|
declare const density: {
|
|
89
|
-
readonly compact:
|
|
90
|
-
readonly normal:
|
|
91
|
-
readonly prominent:
|
|
110
|
+
readonly compact: string;
|
|
111
|
+
readonly normal: string;
|
|
112
|
+
readonly prominent: string;
|
|
92
113
|
readonly target: "min-h-11 min-w-11";
|
|
93
114
|
readonly part: "min-h-11 min-w-9";
|
|
94
115
|
};
|
|
116
|
+
declare const iconSlot: {
|
|
117
|
+
readonly caption: "inline-flex size-3.5 shrink-0 items-center justify-center [&>svg]:size-3.5";
|
|
118
|
+
readonly compact: "inline-flex size-4 shrink-0 items-center justify-center [&>svg]:size-4";
|
|
119
|
+
readonly normal: "inline-flex size-5 shrink-0 items-center justify-center [&>svg]:size-5";
|
|
120
|
+
readonly prominent: "inline-flex size-6 shrink-0 items-center justify-center [&>svg]:size-6";
|
|
121
|
+
};
|
|
95
122
|
declare const stacking: {
|
|
96
123
|
readonly float: "z-50";
|
|
97
124
|
readonly notification: "z-[60]";
|
|
@@ -168,14 +195,16 @@ declare const tone: {
|
|
|
168
195
|
success: string;
|
|
169
196
|
};
|
|
170
197
|
};
|
|
171
|
-
declare const
|
|
198
|
+
declare const currentDestination = "bg-sherick-primary-soft text-sherick-ink font-medium";
|
|
199
|
+
declare const selectableRowSurface = "has-[[data-checked]]:bg-sherick-primary-selected has-[[data-checked]]:text-sherick-ink has-[[data-checked]]:shadow-sherick-control";
|
|
172
200
|
declare const selectable: {
|
|
173
201
|
readonly surface: string;
|
|
174
202
|
readonly markSurface: string;
|
|
175
203
|
readonly rest: string;
|
|
176
204
|
readonly mark: string;
|
|
177
|
-
readonly selected: "group-data-[checked]:bg-sherick-primary-strong group-data-[checked]:text-sherick-on-primary";
|
|
178
|
-
readonly indeterminate: "group-data-[indeterminate]:bg-sherick-primary-strong group-data-[indeterminate]:text-sherick-on-primary";
|
|
205
|
+
readonly selected: "group-data-[checked]:bg-sherick-primary-strong group-data-[checked]:text-sherick-on-primary group-data-[checked]:shadow-sherick-flat group-data-[checked]:after:opacity-0";
|
|
206
|
+
readonly indeterminate: "group-data-[indeterminate]:bg-sherick-primary-strong group-data-[indeterminate]:text-sherick-on-primary group-data-[indeterminate]:shadow-sherick-flat group-data-[indeterminate]:after:opacity-0";
|
|
207
|
+
readonly thumb: "bg-current";
|
|
179
208
|
};
|
|
180
209
|
declare const recipeAlphas: {
|
|
181
210
|
readonly state: {
|
|
@@ -187,53 +216,45 @@ declare const recipeAlphas: {
|
|
|
187
216
|
readonly hover: number;
|
|
188
217
|
readonly press: number;
|
|
189
218
|
};
|
|
219
|
+
readonly tonalNeutral: {
|
|
220
|
+
readonly hover: number;
|
|
221
|
+
readonly press: number;
|
|
222
|
+
};
|
|
190
223
|
readonly filled: {
|
|
191
224
|
readonly hover: number;
|
|
192
225
|
readonly press: number;
|
|
193
226
|
};
|
|
227
|
+
readonly mark: {
|
|
228
|
+
readonly hover: number;
|
|
229
|
+
};
|
|
194
230
|
};
|
|
195
231
|
readonly tint: {
|
|
196
|
-
readonly
|
|
197
|
-
readonly primary: number;
|
|
198
|
-
readonly danger: number;
|
|
199
|
-
readonly warning: number;
|
|
200
|
-
readonly success: number;
|
|
201
|
-
};
|
|
202
|
-
readonly selected: {
|
|
203
|
-
readonly primary: number;
|
|
204
|
-
readonly danger: number;
|
|
205
|
-
readonly warning: number;
|
|
206
|
-
readonly success: number;
|
|
207
|
-
};
|
|
232
|
+
readonly neutralSoft: number;
|
|
208
233
|
readonly neutralRest: number;
|
|
209
234
|
};
|
|
210
235
|
readonly field: {
|
|
211
236
|
readonly quiet: number;
|
|
212
237
|
readonly card: number;
|
|
238
|
+
readonly groove: number;
|
|
213
239
|
readonly control: number;
|
|
214
240
|
readonly hover: number;
|
|
215
241
|
readonly engaged: number;
|
|
216
|
-
readonly invalid: number;
|
|
217
|
-
readonly invalidHover: number;
|
|
218
|
-
readonly invalidFocus: number;
|
|
219
242
|
};
|
|
220
243
|
};
|
|
221
244
|
declare const fieldLayout = "flex min-w-0 w-full flex-col [overflow-wrap:anywhere]";
|
|
245
|
+
declare const fieldMessage: {
|
|
246
|
+
readonly description: string;
|
|
247
|
+
readonly error: string;
|
|
248
|
+
};
|
|
222
249
|
|
|
223
250
|
type MotionIntent = "feedback" | "tactile" | "arrive" | "orient" | "relocate" | "direct" | "disclose" | "presence" | "activity";
|
|
224
251
|
/** Non-spatial feedback: hover, focus, field tone, a highlighted row, a filled surface.
|
|
225
252
|
* It never translates, scales or resizes; reduced motion simply drops the interpolation
|
|
226
253
|
* and the state still arrives. */
|
|
227
|
-
declare const motionFeedback = "transition-[background-color,color,box-shadow,opacity] duration-press ease-press motion-reduce:transition-none";
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
* press travels is the system's physical character rather than a component's anatomy: a
|
|
232
|
-
* control whose outline is what the user sees compresses 4%, which is about two pixels at the
|
|
233
|
-
* size of the ink it moves. A control whose visible ink is far smaller than the target it is
|
|
234
|
-
* aimed at takes `motionInkPress` on that ink instead, so the target itself never moves. The
|
|
235
|
-
* interpolation and the compression are neutralised together under reduced motion. */
|
|
236
|
-
declare const motionTactile = "transition-[background-color,color,box-shadow,transform,opacity] duration-release ease-release active:duration-press active:ease-press motion-safe:[&:not([data-disabled],:disabled,:has(>[role=combobox][data-disabled]))]:active:scale-[0.96] motion-reduce:transition-none";
|
|
254
|
+
declare const motionFeedback = "transition-[background-color,border-color,color,box-shadow,opacity] duration-press ease-press motion-reduce:transition-none";
|
|
255
|
+
declare const motionTactile: string;
|
|
256
|
+
declare const motionTactileWide: string;
|
|
257
|
+
declare const motionTactileField: string;
|
|
237
258
|
/** The spatial half of a compact press, applied to the *mark* rather than to the control.
|
|
238
259
|
*
|
|
239
260
|
* A control whose visible ink is much smaller than the target it is aimed at — a dialog's close
|
|
@@ -243,7 +264,7 @@ declare const motionTactile = "transition-[background-color,color,box-shadow,tra
|
|
|
243
264
|
* release lands), so the mark takes the twelve percent and the target keeps its geometry. The
|
|
244
265
|
* target still owns the focus ring and the state layer, and still carries the tone and depth
|
|
245
266
|
* response, so the boundary a press happens inside never moves. */
|
|
246
|
-
declare const motionInkPress = "transition-transform duration-release ease-release group-active:duration-
|
|
267
|
+
declare const motionInkPress = "transition-transform duration-release ease-release group-active:duration-tactile group-active:ease-press group-active:scale-[0.88] motion-reduce:transition-none motion-reduce:group-active:scale-100";
|
|
247
268
|
/** A meaningful subordinate part arrives. Spring is reserved for this intent: a mark is
|
|
248
269
|
* made by overshooting the position it lands in. It leaves without the overshoot, and
|
|
249
270
|
* reduced motion lands it in one step — which takes a *state-specific* override, because the
|
|
@@ -260,6 +281,9 @@ declare const motionOrient = "transition-transform duration-release ease-release
|
|
|
260
281
|
* settle together, and an interrupted move retargets from wherever it currently is
|
|
261
282
|
* because it is a transition and not a keyframe. */
|
|
262
283
|
declare const motionRelocate = "transition-[left,inset-inline-start,top,width,height,transform,background-color,color,box-shadow,opacity] duration-release ease-glide motion-reduce:transition-none";
|
|
284
|
+
/** The same travel across a whole track — a tab indicator — on the longer travel timing, so a
|
|
285
|
+
* movement of hundreds of pixels is followed rather than skipped. */
|
|
286
|
+
declare const motionRelocateLong = "transition-[left,inset-inline-start,top,width,height,transform,background-color,color,box-shadow,opacity] duration-travel ease-glide motion-reduce:transition-none";
|
|
263
287
|
/** Direct manipulation: the pointer owns the geometry, so a positional transition would be
|
|
264
288
|
* lag. While the primitive reports a drag, position and size are removed from the
|
|
265
289
|
* transition list and only tone and engagement geometry remain; a keyboard or programmatic
|
|
@@ -284,7 +308,7 @@ declare const motionPresenceTooltip: string;
|
|
|
284
308
|
declare const motionPresenceModal: string;
|
|
285
309
|
/** The plane behind a surface that owns the viewport. Opacity only: a blur or a filter is
|
|
286
310
|
* never animated, so the plane can never animate the page behind it. */
|
|
287
|
-
declare const motionPresenceScrim = "transition-opacity duration-overlay ease-release data-[ending-style]:duration-overlay-exit data-[ending-style]:ease-exit";
|
|
311
|
+
declare const motionPresenceScrim = "transition-opacity duration-overlay ease-release data-[starting-style]:opacity-0 data-[ending-style]:opacity-0 data-[ending-style]:duration-overlay-exit data-[ending-style]:ease-exit";
|
|
288
312
|
/** Continuous activity is a distinct intent, not an exception to interaction motion: it
|
|
289
313
|
* reports work rather than answering an event, and it has no entrance of its own. */
|
|
290
314
|
declare const motionActivitySpin = "animate-spin motion-reduce:animate-none";
|
|
@@ -299,8 +323,16 @@ declare const motionActivityPulse = "animate-pulse motion-reduce:animate-none";
|
|
|
299
323
|
declare const motionActivityIndeterminate = "animate-sherick-indeterminate [[dir=rtl]_&]:[--sui-indeterminate-direction:-1] motion-reduce:animate-none";
|
|
300
324
|
/** The state layer is a composited overlay, so its own opacity is the only thing that
|
|
301
325
|
* moves. Shared here because four interaction states across the library ride it. */
|
|
302
|
-
|
|
303
|
-
|
|
326
|
+
/** A row in a collection moves its highlight rather than fading it: a highlight is where the reader
|
|
327
|
+
* is, and arrowing through a list with a soft fade on every row leaves a smear of half-lit rows.
|
|
328
|
+
* The row's layer therefore changes in one step, for the pointer and the keyboard alike. */
|
|
329
|
+
declare const motionRowLayer = "before:transition-none";
|
|
330
|
+
/** A rim drawn as an overlay of its own — an empty selection mark's lip, a drop target's dashes —
|
|
331
|
+
* carries its own feedback timing: it steps up on hover and fades as a selection fill arrives,
|
|
332
|
+
* on the same press curve as the surface beneath it. */
|
|
333
|
+
declare const motionRim = "after:transition-[background-color,border-color,opacity] after:duration-press after:ease-press motion-reduce:after:transition-none";
|
|
334
|
+
declare const motionStateLayer = "before:transition-opacity before:duration-release before:ease-release active:before:duration-tactile active:before:ease-press group-active:before:duration-tactile group-active:before:ease-press motion-reduce:before:transition-none";
|
|
335
|
+
declare const motionDisclose = "transition-[height] duration-release ease-release data-[starting-style]:h-0 data-[ending-style]:h-0 data-[ending-style]:duration-overlay-exit data-[ending-style]:ease-exit motion-reduce:transition-none";
|
|
304
336
|
declare const motionPresenceSheet: string;
|
|
305
337
|
declare const motionPresenceToast: string;
|
|
306
338
|
|
|
@@ -311,5 +343,5 @@ declare const motionPresenceToast: string;
|
|
|
311
343
|
*/
|
|
312
344
|
declare const cn: (...inputs: ClassValue[]) => string;
|
|
313
345
|
|
|
314
|
-
export { cn, density, detail, disclosure, edge, edgeTone, elevation, fieldLayout, focusRing, focusRingDrag, focusRingHeld, focusRingInset, focusRingWithin, groupFocusRing, hitArea, list, material, matteInset, mediaCanvas, motionActivityIndeterminate, motionActivityPulse, motionActivitySpin, motionArrive, motionDirect, motionDisclose, motionFeedback, motionInkPress, motionOrient, motionPresenceAnchored, motionPresenceModal, motionPresenceScrim, motionPresenceSheet, motionPresenceToast, motionPresenceTooltip, motionRelocate, motionStateLayer, motionTactile, overlay, parentFocusRingInset, recessedTop, recipeAlphas, selectable, selectableRowSurface, shape, stacking, state, stateLayer, stateLayerQuietComposite, text, tone };
|
|
346
|
+
export { cn, currentDestination, density, detail, disclosure, edge, edgeTone, elevation, fieldLayout, fieldMessage, focusRing, focusRingDrag, focusRingHeld, focusRingInset, focusRingWithin, groupFocusRing, hitArea, iconSlot, list, material, matteInset, mediaCanvas, motionActivityIndeterminate, motionActivityPulse, motionActivitySpin, motionArrive, motionDirect, motionDisclose, motionFeedback, motionInkPress, motionOrient, motionPresenceAnchored, motionPresenceModal, motionPresenceScrim, motionPresenceSheet, motionPresenceToast, motionPresenceTooltip, motionRelocate, motionRelocateLong, motionRim, motionRowLayer, motionStateLayer, motionTactile, motionTactileField, motionTactileWide, overlay, parentFocusRingInset, recessedTop, recipeAlphas, rim, selectable, selectableRowSurface, shape, stacking, state, stateLayer, stateLayerQuietComposite, text, tone, type };
|
|
315
347
|
export type { MotionIntent };
|