iryx-ui 0.5.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.
- package/README.md +355 -5
- package/dist/component-names.d.ts +1 -1
- package/dist/components/Alert.vue.d.ts +19 -4
- package/dist/components/Badge.vue.d.ts +4 -3
- package/dist/components/Banner.vue.d.ts +81 -0
- package/dist/components/Combobox.vue.d.ts +3 -3
- package/dist/components/DatePicker.vue.d.ts +52 -0
- package/dist/components/DateRangePicker.vue.d.ts +60 -0
- package/dist/components/DropdownMenu.vue.d.ts +1 -1
- package/dist/components/Input.vue.d.ts +39 -1
- package/dist/components/Pagination.vue.d.ts +3 -1
- package/dist/components/PasswordInput.vue.d.ts +54 -0
- package/dist/components/Select.vue.d.ts +2 -2
- package/dist/components/Table.vue.d.ts +131 -0
- package/dist/components/Textarea.vue.d.ts +16 -1
- package/dist/components/index.d.ts +5 -0
- package/dist/composables/data-table.d.ts +93 -0
- package/dist/composables/date.d.ts +21 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +72 -60
- package/dist/node_modules/.pnpm/@hugeicons_core-free-icons@4.2.3/node_modules/@hugeicons/core-free-icons/dist/esm/index.js +104 -7
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.3/node_modules/@internationalized/date/dist/private/CalendarDate.js +122 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.3/node_modules/@internationalized/date/dist/private/DateFormatter.js +84 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.3/node_modules/@internationalized/date/dist/private/calendars/GregorianCalendar.js +91 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.3/node_modules/@internationalized/date/dist/private/conversion.js +107 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.3/node_modules/@internationalized/date/dist/private/manipulation.js +159 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.3/node_modules/@internationalized/date/dist/private/queries.js +29 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.3/node_modules/@internationalized/date/dist/private/string.js +37 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.3/node_modules/@internationalized/date/dist/private/utils.js +6 -0
- package/dist/packages/iryx-ui/src/component-names.js +1 -1
- package/dist/packages/iryx-ui/src/components/Alert.vue_vue_type_script_setup_true_lang.js +51 -35
- package/dist/packages/iryx-ui/src/components/Badge.vue_vue_type_script_setup_true_lang.js +1 -2
- package/dist/packages/iryx-ui/src/components/Banner.js +5 -0
- package/dist/packages/iryx-ui/src/components/Banner.vue_vue_type_script_setup_true_lang.js +93 -0
- package/dist/packages/iryx-ui/src/components/DatePicker.js +5 -0
- package/dist/packages/iryx-ui/src/components/DatePicker.vue_vue_type_script_setup_true_lang.js +186 -0
- package/dist/packages/iryx-ui/src/components/DateRangePicker.js +5 -0
- package/dist/packages/iryx-ui/src/components/DateRangePicker.vue_vue_type_script_setup_true_lang.js +210 -0
- package/dist/packages/iryx-ui/src/components/Input.vue_vue_type_script_setup_true_lang.js +94 -25
- package/dist/packages/iryx-ui/src/components/Pagination.vue_vue_type_script_setup_true_lang.js +5 -1
- package/dist/packages/iryx-ui/src/components/PasswordInput.js +5 -0
- package/dist/packages/iryx-ui/src/components/PasswordInput.vue_vue_type_script_setup_true_lang.js +113 -0
- package/dist/packages/iryx-ui/src/components/Table.js +5 -0
- package/dist/packages/iryx-ui/src/components/Table.vue_vue_type_script_setup_true_lang.js +217 -0
- package/dist/packages/iryx-ui/src/components/Textarea.vue_vue_type_script_setup_true_lang.js +47 -21
- package/dist/packages/iryx-ui/src/components/index.js +68 -58
- package/dist/packages/iryx-ui/src/composables/data-table.js +106 -0
- package/dist/packages/iryx-ui/src/composables/date.js +25 -0
- package/dist/packages/iryx-ui/src/theme/alert.js +10 -21
- package/dist/packages/iryx-ui/src/theme/badge.js +37 -37
- package/dist/packages/iryx-ui/src/theme/banner.js +62 -0
- package/dist/packages/iryx-ui/src/theme/date-picker.js +45 -0
- package/dist/packages/iryx-ui/src/theme/input.js +22 -6
- package/dist/packages/iryx-ui/src/theme/pagination.js +23 -13
- package/dist/packages/iryx-ui/src/theme/password-input.js +22 -0
- package/dist/packages/iryx-ui/src/theme/stat.js +4 -4
- package/dist/packages/iryx-ui/src/theme/table.js +62 -0
- package/dist/packages/iryx-ui/src/theme/toast.js +11 -26
- package/dist/theme/alert.d.ts +6 -12
- package/dist/theme/badge.d.ts +15 -12
- package/dist/theme/banner.d.ts +185 -0
- package/dist/theme/date-picker.d.ts +254 -0
- package/dist/theme/index.d.ts +4 -0
- package/dist/theme/input.d.ts +94 -15
- package/dist/theme/pagination.d.ts +33 -0
- package/dist/theme/password-input.d.ts +79 -0
- package/dist/theme/stat.d.ts +0 -3
- package/dist/theme/table.d.ts +230 -0
- package/dist/theme/toast.d.ts +0 -15
- package/package.json +2 -1
- package/theme.css +10 -0
package/dist/theme/badge.d.ts
CHANGED
|
@@ -6,10 +6,11 @@ export declare const badgeTheme: import("tailwind-variants").TVReturnType<{
|
|
|
6
6
|
danger: {};
|
|
7
7
|
info: {};
|
|
8
8
|
};
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
withDot: {
|
|
10
|
+
true: {
|
|
11
|
+
root: string;
|
|
12
|
+
};
|
|
13
|
+
false: {};
|
|
13
14
|
};
|
|
14
15
|
size: {
|
|
15
16
|
sm: {
|
|
@@ -36,10 +37,11 @@ export declare const badgeTheme: import("tailwind-variants").TVReturnType<{
|
|
|
36
37
|
danger: {};
|
|
37
38
|
info: {};
|
|
38
39
|
};
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
withDot: {
|
|
41
|
+
true: {
|
|
42
|
+
root: string;
|
|
43
|
+
};
|
|
44
|
+
false: {};
|
|
43
45
|
};
|
|
44
46
|
size: {
|
|
45
47
|
sm: {
|
|
@@ -66,10 +68,11 @@ export declare const badgeTheme: import("tailwind-variants").TVReturnType<{
|
|
|
66
68
|
danger: {};
|
|
67
69
|
info: {};
|
|
68
70
|
};
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
withDot: {
|
|
72
|
+
true: {
|
|
73
|
+
root: string;
|
|
74
|
+
};
|
|
75
|
+
false: {};
|
|
73
76
|
};
|
|
74
77
|
size: {
|
|
75
78
|
sm: {
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
export declare const bannerTheme: import("tailwind-variants").TVReturnType<{
|
|
2
|
+
variant: {
|
|
3
|
+
neutral: {
|
|
4
|
+
root: string;
|
|
5
|
+
icon: string;
|
|
6
|
+
};
|
|
7
|
+
info: {
|
|
8
|
+
root: string;
|
|
9
|
+
icon: string;
|
|
10
|
+
};
|
|
11
|
+
success: {
|
|
12
|
+
root: string;
|
|
13
|
+
icon: string;
|
|
14
|
+
};
|
|
15
|
+
warning: {
|
|
16
|
+
root: string;
|
|
17
|
+
icon: string;
|
|
18
|
+
};
|
|
19
|
+
danger: {
|
|
20
|
+
root: string;
|
|
21
|
+
icon: string;
|
|
22
|
+
};
|
|
23
|
+
/** Brand-coloured, for announcements rather than status. */
|
|
24
|
+
primary: {
|
|
25
|
+
root: string;
|
|
26
|
+
icon: string;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
position: {
|
|
30
|
+
static: {};
|
|
31
|
+
/** Sticks under the top of the scroll container. */
|
|
32
|
+
top: {
|
|
33
|
+
root: string;
|
|
34
|
+
};
|
|
35
|
+
/** Pinned to the bottom of the viewport; the rule moves to the top edge. */
|
|
36
|
+
bottom: {
|
|
37
|
+
root: string;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
/** Constrains the text while the fill still spans the viewport. */
|
|
41
|
+
contained: {
|
|
42
|
+
true: {
|
|
43
|
+
container: string;
|
|
44
|
+
};
|
|
45
|
+
false: {};
|
|
46
|
+
};
|
|
47
|
+
align: {
|
|
48
|
+
start: {};
|
|
49
|
+
center: {
|
|
50
|
+
content: string;
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
}, {
|
|
54
|
+
root: string;
|
|
55
|
+
/** Keeps the text off the viewport edge without constraining the fill. */
|
|
56
|
+
container: string;
|
|
57
|
+
icon: string;
|
|
58
|
+
content: string;
|
|
59
|
+
title: string;
|
|
60
|
+
actions: string;
|
|
61
|
+
close: string;
|
|
62
|
+
}, undefined, {
|
|
63
|
+
variant: {
|
|
64
|
+
neutral: {
|
|
65
|
+
root: string;
|
|
66
|
+
icon: string;
|
|
67
|
+
};
|
|
68
|
+
info: {
|
|
69
|
+
root: string;
|
|
70
|
+
icon: string;
|
|
71
|
+
};
|
|
72
|
+
success: {
|
|
73
|
+
root: string;
|
|
74
|
+
icon: string;
|
|
75
|
+
};
|
|
76
|
+
warning: {
|
|
77
|
+
root: string;
|
|
78
|
+
icon: string;
|
|
79
|
+
};
|
|
80
|
+
danger: {
|
|
81
|
+
root: string;
|
|
82
|
+
icon: string;
|
|
83
|
+
};
|
|
84
|
+
/** Brand-coloured, for announcements rather than status. */
|
|
85
|
+
primary: {
|
|
86
|
+
root: string;
|
|
87
|
+
icon: string;
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
position: {
|
|
91
|
+
static: {};
|
|
92
|
+
/** Sticks under the top of the scroll container. */
|
|
93
|
+
top: {
|
|
94
|
+
root: string;
|
|
95
|
+
};
|
|
96
|
+
/** Pinned to the bottom of the viewport; the rule moves to the top edge. */
|
|
97
|
+
bottom: {
|
|
98
|
+
root: string;
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
/** Constrains the text while the fill still spans the viewport. */
|
|
102
|
+
contained: {
|
|
103
|
+
true: {
|
|
104
|
+
container: string;
|
|
105
|
+
};
|
|
106
|
+
false: {};
|
|
107
|
+
};
|
|
108
|
+
align: {
|
|
109
|
+
start: {};
|
|
110
|
+
center: {
|
|
111
|
+
content: string;
|
|
112
|
+
};
|
|
113
|
+
};
|
|
114
|
+
}, {
|
|
115
|
+
root: string;
|
|
116
|
+
/** Keeps the text off the viewport edge without constraining the fill. */
|
|
117
|
+
container: string;
|
|
118
|
+
icon: string;
|
|
119
|
+
content: string;
|
|
120
|
+
title: string;
|
|
121
|
+
actions: string;
|
|
122
|
+
close: string;
|
|
123
|
+
}, import("tailwind-variants").TVReturnType<{
|
|
124
|
+
variant: {
|
|
125
|
+
neutral: {
|
|
126
|
+
root: string;
|
|
127
|
+
icon: string;
|
|
128
|
+
};
|
|
129
|
+
info: {
|
|
130
|
+
root: string;
|
|
131
|
+
icon: string;
|
|
132
|
+
};
|
|
133
|
+
success: {
|
|
134
|
+
root: string;
|
|
135
|
+
icon: string;
|
|
136
|
+
};
|
|
137
|
+
warning: {
|
|
138
|
+
root: string;
|
|
139
|
+
icon: string;
|
|
140
|
+
};
|
|
141
|
+
danger: {
|
|
142
|
+
root: string;
|
|
143
|
+
icon: string;
|
|
144
|
+
};
|
|
145
|
+
/** Brand-coloured, for announcements rather than status. */
|
|
146
|
+
primary: {
|
|
147
|
+
root: string;
|
|
148
|
+
icon: string;
|
|
149
|
+
};
|
|
150
|
+
};
|
|
151
|
+
position: {
|
|
152
|
+
static: {};
|
|
153
|
+
/** Sticks under the top of the scroll container. */
|
|
154
|
+
top: {
|
|
155
|
+
root: string;
|
|
156
|
+
};
|
|
157
|
+
/** Pinned to the bottom of the viewport; the rule moves to the top edge. */
|
|
158
|
+
bottom: {
|
|
159
|
+
root: string;
|
|
160
|
+
};
|
|
161
|
+
};
|
|
162
|
+
/** Constrains the text while the fill still spans the viewport. */
|
|
163
|
+
contained: {
|
|
164
|
+
true: {
|
|
165
|
+
container: string;
|
|
166
|
+
};
|
|
167
|
+
false: {};
|
|
168
|
+
};
|
|
169
|
+
align: {
|
|
170
|
+
start: {};
|
|
171
|
+
center: {
|
|
172
|
+
content: string;
|
|
173
|
+
};
|
|
174
|
+
};
|
|
175
|
+
}, {
|
|
176
|
+
root: string;
|
|
177
|
+
/** Keeps the text off the viewport edge without constraining the fill. */
|
|
178
|
+
container: string;
|
|
179
|
+
icon: string;
|
|
180
|
+
content: string;
|
|
181
|
+
title: string;
|
|
182
|
+
actions: string;
|
|
183
|
+
close: string;
|
|
184
|
+
}, undefined, unknown, unknown, undefined>>;
|
|
185
|
+
export type BannerSlots = keyof ReturnType<typeof bannerTheme>;
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
export declare const datePickerTheme: import("tailwind-variants").TVReturnType<{
|
|
2
|
+
size: {
|
|
3
|
+
sm: {
|
|
4
|
+
trigger: string;
|
|
5
|
+
};
|
|
6
|
+
md: {
|
|
7
|
+
trigger: string;
|
|
8
|
+
};
|
|
9
|
+
lg: {
|
|
10
|
+
trigger: string;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
invalid: {
|
|
14
|
+
true: {
|
|
15
|
+
trigger: string;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* A single date is the whole selection, so it takes the solid fill. In a
|
|
20
|
+
* range only the two endpoints do, and the days between get a flat tint —
|
|
21
|
+
* emphasising all of them equally turns a long span into one solid block
|
|
22
|
+
* that no longer shows where it starts and stops.
|
|
23
|
+
*
|
|
24
|
+
* The middle style excludes the endpoints with `not-*` rather than relying
|
|
25
|
+
* on class order, so the two rules never compete for the background.
|
|
26
|
+
*/
|
|
27
|
+
range: {
|
|
28
|
+
false: {
|
|
29
|
+
cellTrigger: string;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Reka's `data-highlighted` hover preview is deliberately left unstyled:
|
|
33
|
+
* a band that follows the cursor has to reshape its rounded ends on
|
|
34
|
+
* every move, and no combination of transitioning or not transitioning
|
|
35
|
+
* the radius looks right while it does. Only the committed range is
|
|
36
|
+
* drawn, so nothing under the pointer changes shape.
|
|
37
|
+
*
|
|
38
|
+
* The band goes on the cell and the endpoint pills on the trigger, so
|
|
39
|
+
* a single element never has to be both. Only the run's outer edges are
|
|
40
|
+
* rounded, so the days between meet flush.
|
|
41
|
+
*/
|
|
42
|
+
true: {
|
|
43
|
+
cell: string;
|
|
44
|
+
cellTrigger: string;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
}, {
|
|
48
|
+
trigger: string;
|
|
49
|
+
/** Shown in place of the value, so it reads as absent rather than chosen. */
|
|
50
|
+
placeholder: string;
|
|
51
|
+
content: string;
|
|
52
|
+
header: string;
|
|
53
|
+
heading: string;
|
|
54
|
+
nav: string;
|
|
55
|
+
/**
|
|
56
|
+
* `items-start`: flex would otherwise stretch a short month to match a
|
|
57
|
+
* taller neighbour, spreading its rows apart. Paired with `fixed-weeks`
|
|
58
|
+
* on the calendar, which keeps every month six rows tall so the popover
|
|
59
|
+
* does not resize as you page through it.
|
|
60
|
+
*/
|
|
61
|
+
months: string;
|
|
62
|
+
grid: string;
|
|
63
|
+
headCell: string;
|
|
64
|
+
/**
|
|
65
|
+
* The range bands are painted here, not on the trigger — see `range`.
|
|
66
|
+
*
|
|
67
|
+
* `transition-colors` fades the band in and out but deliberately leaves
|
|
68
|
+
* `border-radius` untransitioned: animating the radius morphs the band's
|
|
69
|
+
* shape as the preview moves, which reads as the corners wobbling.
|
|
70
|
+
*/
|
|
71
|
+
cell: string;
|
|
72
|
+
/**
|
|
73
|
+
* `w-full`, not a fixed `size-8`: the table cell is wider than 32px, so a
|
|
74
|
+
* fixed-width pill leaves a gap between consecutive days and a run renders
|
|
75
|
+
* as a chain of lozenges with pinched corners instead of one band.
|
|
76
|
+
*
|
|
77
|
+
* Hover is suppressed on already-selected days so it cannot paint a
|
|
78
|
+
* competing pill over the solid endpoint fill.
|
|
79
|
+
*
|
|
80
|
+
* Selection colour is added by the `range` variant, which differs per mode.
|
|
81
|
+
*/
|
|
82
|
+
cellTrigger: string;
|
|
83
|
+
footer: string;
|
|
84
|
+
action: string;
|
|
85
|
+
}, undefined, {
|
|
86
|
+
size: {
|
|
87
|
+
sm: {
|
|
88
|
+
trigger: string;
|
|
89
|
+
};
|
|
90
|
+
md: {
|
|
91
|
+
trigger: string;
|
|
92
|
+
};
|
|
93
|
+
lg: {
|
|
94
|
+
trigger: string;
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
invalid: {
|
|
98
|
+
true: {
|
|
99
|
+
trigger: string;
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* A single date is the whole selection, so it takes the solid fill. In a
|
|
104
|
+
* range only the two endpoints do, and the days between get a flat tint —
|
|
105
|
+
* emphasising all of them equally turns a long span into one solid block
|
|
106
|
+
* that no longer shows where it starts and stops.
|
|
107
|
+
*
|
|
108
|
+
* The middle style excludes the endpoints with `not-*` rather than relying
|
|
109
|
+
* on class order, so the two rules never compete for the background.
|
|
110
|
+
*/
|
|
111
|
+
range: {
|
|
112
|
+
false: {
|
|
113
|
+
cellTrigger: string;
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* Reka's `data-highlighted` hover preview is deliberately left unstyled:
|
|
117
|
+
* a band that follows the cursor has to reshape its rounded ends on
|
|
118
|
+
* every move, and no combination of transitioning or not transitioning
|
|
119
|
+
* the radius looks right while it does. Only the committed range is
|
|
120
|
+
* drawn, so nothing under the pointer changes shape.
|
|
121
|
+
*
|
|
122
|
+
* The band goes on the cell and the endpoint pills on the trigger, so
|
|
123
|
+
* a single element never has to be both. Only the run's outer edges are
|
|
124
|
+
* rounded, so the days between meet flush.
|
|
125
|
+
*/
|
|
126
|
+
true: {
|
|
127
|
+
cell: string;
|
|
128
|
+
cellTrigger: string;
|
|
129
|
+
};
|
|
130
|
+
};
|
|
131
|
+
}, {
|
|
132
|
+
trigger: string;
|
|
133
|
+
/** Shown in place of the value, so it reads as absent rather than chosen. */
|
|
134
|
+
placeholder: string;
|
|
135
|
+
content: string;
|
|
136
|
+
header: string;
|
|
137
|
+
heading: string;
|
|
138
|
+
nav: string;
|
|
139
|
+
/**
|
|
140
|
+
* `items-start`: flex would otherwise stretch a short month to match a
|
|
141
|
+
* taller neighbour, spreading its rows apart. Paired with `fixed-weeks`
|
|
142
|
+
* on the calendar, which keeps every month six rows tall so the popover
|
|
143
|
+
* does not resize as you page through it.
|
|
144
|
+
*/
|
|
145
|
+
months: string;
|
|
146
|
+
grid: string;
|
|
147
|
+
headCell: string;
|
|
148
|
+
/**
|
|
149
|
+
* The range bands are painted here, not on the trigger — see `range`.
|
|
150
|
+
*
|
|
151
|
+
* `transition-colors` fades the band in and out but deliberately leaves
|
|
152
|
+
* `border-radius` untransitioned: animating the radius morphs the band's
|
|
153
|
+
* shape as the preview moves, which reads as the corners wobbling.
|
|
154
|
+
*/
|
|
155
|
+
cell: string;
|
|
156
|
+
/**
|
|
157
|
+
* `w-full`, not a fixed `size-8`: the table cell is wider than 32px, so a
|
|
158
|
+
* fixed-width pill leaves a gap between consecutive days and a run renders
|
|
159
|
+
* as a chain of lozenges with pinched corners instead of one band.
|
|
160
|
+
*
|
|
161
|
+
* Hover is suppressed on already-selected days so it cannot paint a
|
|
162
|
+
* competing pill over the solid endpoint fill.
|
|
163
|
+
*
|
|
164
|
+
* Selection colour is added by the `range` variant, which differs per mode.
|
|
165
|
+
*/
|
|
166
|
+
cellTrigger: string;
|
|
167
|
+
footer: string;
|
|
168
|
+
action: string;
|
|
169
|
+
}, import("tailwind-variants").TVReturnType<{
|
|
170
|
+
size: {
|
|
171
|
+
sm: {
|
|
172
|
+
trigger: string;
|
|
173
|
+
};
|
|
174
|
+
md: {
|
|
175
|
+
trigger: string;
|
|
176
|
+
};
|
|
177
|
+
lg: {
|
|
178
|
+
trigger: string;
|
|
179
|
+
};
|
|
180
|
+
};
|
|
181
|
+
invalid: {
|
|
182
|
+
true: {
|
|
183
|
+
trigger: string;
|
|
184
|
+
};
|
|
185
|
+
};
|
|
186
|
+
/**
|
|
187
|
+
* A single date is the whole selection, so it takes the solid fill. In a
|
|
188
|
+
* range only the two endpoints do, and the days between get a flat tint —
|
|
189
|
+
* emphasising all of them equally turns a long span into one solid block
|
|
190
|
+
* that no longer shows where it starts and stops.
|
|
191
|
+
*
|
|
192
|
+
* The middle style excludes the endpoints with `not-*` rather than relying
|
|
193
|
+
* on class order, so the two rules never compete for the background.
|
|
194
|
+
*/
|
|
195
|
+
range: {
|
|
196
|
+
false: {
|
|
197
|
+
cellTrigger: string;
|
|
198
|
+
};
|
|
199
|
+
/**
|
|
200
|
+
* Reka's `data-highlighted` hover preview is deliberately left unstyled:
|
|
201
|
+
* a band that follows the cursor has to reshape its rounded ends on
|
|
202
|
+
* every move, and no combination of transitioning or not transitioning
|
|
203
|
+
* the radius looks right while it does. Only the committed range is
|
|
204
|
+
* drawn, so nothing under the pointer changes shape.
|
|
205
|
+
*
|
|
206
|
+
* The band goes on the cell and the endpoint pills on the trigger, so
|
|
207
|
+
* a single element never has to be both. Only the run's outer edges are
|
|
208
|
+
* rounded, so the days between meet flush.
|
|
209
|
+
*/
|
|
210
|
+
true: {
|
|
211
|
+
cell: string;
|
|
212
|
+
cellTrigger: string;
|
|
213
|
+
};
|
|
214
|
+
};
|
|
215
|
+
}, {
|
|
216
|
+
trigger: string;
|
|
217
|
+
/** Shown in place of the value, so it reads as absent rather than chosen. */
|
|
218
|
+
placeholder: string;
|
|
219
|
+
content: string;
|
|
220
|
+
header: string;
|
|
221
|
+
heading: string;
|
|
222
|
+
nav: string;
|
|
223
|
+
/**
|
|
224
|
+
* `items-start`: flex would otherwise stretch a short month to match a
|
|
225
|
+
* taller neighbour, spreading its rows apart. Paired with `fixed-weeks`
|
|
226
|
+
* on the calendar, which keeps every month six rows tall so the popover
|
|
227
|
+
* does not resize as you page through it.
|
|
228
|
+
*/
|
|
229
|
+
months: string;
|
|
230
|
+
grid: string;
|
|
231
|
+
headCell: string;
|
|
232
|
+
/**
|
|
233
|
+
* The range bands are painted here, not on the trigger — see `range`.
|
|
234
|
+
*
|
|
235
|
+
* `transition-colors` fades the band in and out but deliberately leaves
|
|
236
|
+
* `border-radius` untransitioned: animating the radius morphs the band's
|
|
237
|
+
* shape as the preview moves, which reads as the corners wobbling.
|
|
238
|
+
*/
|
|
239
|
+
cell: string;
|
|
240
|
+
/**
|
|
241
|
+
* `w-full`, not a fixed `size-8`: the table cell is wider than 32px, so a
|
|
242
|
+
* fixed-width pill leaves a gap between consecutive days and a run renders
|
|
243
|
+
* as a chain of lozenges with pinched corners instead of one band.
|
|
244
|
+
*
|
|
245
|
+
* Hover is suppressed on already-selected days so it cannot paint a
|
|
246
|
+
* competing pill over the solid endpoint fill.
|
|
247
|
+
*
|
|
248
|
+
* Selection colour is added by the `range` variant, which differs per mode.
|
|
249
|
+
*/
|
|
250
|
+
cellTrigger: string;
|
|
251
|
+
footer: string;
|
|
252
|
+
action: string;
|
|
253
|
+
}, undefined, unknown, unknown, undefined>>;
|
|
254
|
+
export type DatePickerSlots = keyof ReturnType<typeof datePickerTheme>;
|
package/dist/theme/index.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
export * from './alert';
|
|
2
2
|
export * from './badge';
|
|
3
|
+
export * from './banner';
|
|
3
4
|
export * from './breadcrumb';
|
|
4
5
|
export * from './button';
|
|
5
6
|
export * from './button-group';
|
|
6
7
|
export * from './card';
|
|
7
8
|
export * from './checkbox';
|
|
8
9
|
export * from './combobox';
|
|
10
|
+
export * from './date-picker';
|
|
9
11
|
export * from './dialog';
|
|
10
12
|
export * from './dropdown-menu';
|
|
11
13
|
export * from './empty-state';
|
|
@@ -13,6 +15,7 @@ export * from './input';
|
|
|
13
15
|
export * from './label';
|
|
14
16
|
export * from './number-input';
|
|
15
17
|
export * from './pagination';
|
|
18
|
+
export * from './password-input';
|
|
16
19
|
export * from './presets';
|
|
17
20
|
export * from './progress';
|
|
18
21
|
export * from './radio-group';
|
|
@@ -22,6 +25,7 @@ export * from './skeleton';
|
|
|
22
25
|
export * from './stat';
|
|
23
26
|
export * from './stepper';
|
|
24
27
|
export * from './switch';
|
|
28
|
+
export * from './table';
|
|
25
29
|
export * from './tabs';
|
|
26
30
|
export * from './toast';
|
|
27
31
|
export * from './tooltip';
|
package/dist/theme/input.d.ts
CHANGED
|
@@ -1,33 +1,90 @@
|
|
|
1
1
|
/** Shared field chrome for Input, Textarea and the Select trigger. */
|
|
2
2
|
export declare const fieldBase = "w-full rounded-xl border border-border bg-input text-foreground transition-colors outline-none placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-primary/50 disabled:cursor-not-allowed disabled:opacity-50";
|
|
3
|
+
/**
|
|
4
|
+
* The chrome lives on `root`, not on the `<input>`, so leading and trailing
|
|
5
|
+
* content can take real space in a flex row. Reserving room with padding
|
|
6
|
+
* instead would mean guessing the width of arbitrary slot content, and long
|
|
7
|
+
* values would slide underneath it.
|
|
8
|
+
*/
|
|
3
9
|
export declare const inputTheme: import("tailwind-variants").TVReturnType<{
|
|
4
10
|
size: {
|
|
5
|
-
sm:
|
|
6
|
-
|
|
7
|
-
|
|
11
|
+
sm: {
|
|
12
|
+
root: string;
|
|
13
|
+
input: string;
|
|
14
|
+
};
|
|
15
|
+
md: {
|
|
16
|
+
root: string;
|
|
17
|
+
input: string;
|
|
18
|
+
};
|
|
19
|
+
lg: {
|
|
20
|
+
root: string;
|
|
21
|
+
input: string;
|
|
22
|
+
};
|
|
8
23
|
};
|
|
9
24
|
invalid: {
|
|
10
|
-
true:
|
|
25
|
+
true: {
|
|
26
|
+
root: string;
|
|
27
|
+
};
|
|
11
28
|
};
|
|
12
|
-
},
|
|
29
|
+
}, {
|
|
30
|
+
root: string;
|
|
31
|
+
input: string;
|
|
32
|
+
leading: string;
|
|
33
|
+
trailing: string;
|
|
34
|
+
clear: string;
|
|
35
|
+
}, undefined, {
|
|
13
36
|
size: {
|
|
14
|
-
sm:
|
|
15
|
-
|
|
16
|
-
|
|
37
|
+
sm: {
|
|
38
|
+
root: string;
|
|
39
|
+
input: string;
|
|
40
|
+
};
|
|
41
|
+
md: {
|
|
42
|
+
root: string;
|
|
43
|
+
input: string;
|
|
44
|
+
};
|
|
45
|
+
lg: {
|
|
46
|
+
root: string;
|
|
47
|
+
input: string;
|
|
48
|
+
};
|
|
17
49
|
};
|
|
18
50
|
invalid: {
|
|
19
|
-
true:
|
|
51
|
+
true: {
|
|
52
|
+
root: string;
|
|
53
|
+
};
|
|
20
54
|
};
|
|
21
|
-
},
|
|
55
|
+
}, {
|
|
56
|
+
root: string;
|
|
57
|
+
input: string;
|
|
58
|
+
leading: string;
|
|
59
|
+
trailing: string;
|
|
60
|
+
clear: string;
|
|
61
|
+
}, import("tailwind-variants").TVReturnType<{
|
|
22
62
|
size: {
|
|
23
|
-
sm:
|
|
24
|
-
|
|
25
|
-
|
|
63
|
+
sm: {
|
|
64
|
+
root: string;
|
|
65
|
+
input: string;
|
|
66
|
+
};
|
|
67
|
+
md: {
|
|
68
|
+
root: string;
|
|
69
|
+
input: string;
|
|
70
|
+
};
|
|
71
|
+
lg: {
|
|
72
|
+
root: string;
|
|
73
|
+
input: string;
|
|
74
|
+
};
|
|
26
75
|
};
|
|
27
76
|
invalid: {
|
|
28
|
-
true:
|
|
77
|
+
true: {
|
|
78
|
+
root: string;
|
|
79
|
+
};
|
|
29
80
|
};
|
|
30
|
-
},
|
|
81
|
+
}, {
|
|
82
|
+
root: string;
|
|
83
|
+
input: string;
|
|
84
|
+
leading: string;
|
|
85
|
+
trailing: string;
|
|
86
|
+
clear: string;
|
|
87
|
+
}, undefined, unknown, unknown, undefined>>;
|
|
31
88
|
export declare const textareaTheme: import("tailwind-variants").TVReturnType<{
|
|
32
89
|
size: {
|
|
33
90
|
sm: string;
|
|
@@ -37,6 +94,13 @@ export declare const textareaTheme: import("tailwind-variants").TVReturnType<{
|
|
|
37
94
|
invalid: {
|
|
38
95
|
true: string;
|
|
39
96
|
};
|
|
97
|
+
/**
|
|
98
|
+
* The measured height is the whole point, so drop the size variant's
|
|
99
|
+
* `min-h` floor and the drag handle that would fight it.
|
|
100
|
+
*/
|
|
101
|
+
autosize: {
|
|
102
|
+
true: string;
|
|
103
|
+
};
|
|
40
104
|
}, undefined, "block resize-y w-full rounded-xl border border-border bg-input text-foreground transition-colors outline-none placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-primary/50 disabled:cursor-not-allowed disabled:opacity-50", {
|
|
41
105
|
size: {
|
|
42
106
|
sm: string;
|
|
@@ -46,6 +110,13 @@ export declare const textareaTheme: import("tailwind-variants").TVReturnType<{
|
|
|
46
110
|
invalid: {
|
|
47
111
|
true: string;
|
|
48
112
|
};
|
|
113
|
+
/**
|
|
114
|
+
* The measured height is the whole point, so drop the size variant's
|
|
115
|
+
* `min-h` floor and the drag handle that would fight it.
|
|
116
|
+
*/
|
|
117
|
+
autosize: {
|
|
118
|
+
true: string;
|
|
119
|
+
};
|
|
49
120
|
}, undefined, import("tailwind-variants").TVReturnType<{
|
|
50
121
|
size: {
|
|
51
122
|
sm: string;
|
|
@@ -55,6 +126,14 @@ export declare const textareaTheme: import("tailwind-variants").TVReturnType<{
|
|
|
55
126
|
invalid: {
|
|
56
127
|
true: string;
|
|
57
128
|
};
|
|
129
|
+
/**
|
|
130
|
+
* The measured height is the whole point, so drop the size variant's
|
|
131
|
+
* `min-h` floor and the drag handle that would fight it.
|
|
132
|
+
*/
|
|
133
|
+
autosize: {
|
|
134
|
+
true: string;
|
|
135
|
+
};
|
|
58
136
|
}, undefined, "block resize-y w-full rounded-xl border border-border bg-input text-foreground transition-colors outline-none placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-primary/50 disabled:cursor-not-allowed disabled:opacity-50", unknown, unknown, undefined>>;
|
|
59
137
|
export type InputVariants = Parameters<typeof inputTheme>[0];
|
|
138
|
+
export type InputSlots = keyof ReturnType<typeof inputTheme>;
|
|
60
139
|
export type TextareaVariants = Parameters<typeof textareaTheme>[0];
|