@maestro-js/components 1.0.0-alpha.0 → 1.0.0-alpha.10
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/commands/add.ts +16 -1
- package/dist/components.json +1 -1
- package/dist/index.js +14 -1
- package/package.json +5 -5
- package/registry.json +610 -802
- package/scripts/build.ts +11 -4
- package/src/components/alert-dialog.tsx +3 -3
- package/src/components/avatar.tsx +1 -1
- package/src/components/button-link.tsx +3 -0
- package/src/components/button.tsx +4 -0
- package/src/components/checkbox.tsx +7 -7
- package/src/components/chip.tsx +7 -7
- package/src/components/container.tsx +3 -3
- package/src/components/date-range.tsx +161 -0
- package/src/components/dialog.tsx +21 -7
- package/src/components/disclosure.tsx +1 -1
- package/src/components/drawer.tsx +19 -5
- package/src/components/form.tsx +27 -5
- package/src/components/helpers/form-field.tsx +7 -8
- package/src/components/helpers/get-button-classes.ts +23 -23
- package/src/components/helpers/headless-button.tsx +1 -1
- package/src/components/inline-alert.tsx +3 -3
- package/src/components/labeled-value.tsx +2 -2
- package/src/components/menu.tsx +60 -26
- package/src/components/month-day-input.tsx +2 -1
- package/src/components/multiselect.tsx +74 -70
- package/src/components/optional-link.tsx +15 -0
- package/src/components/radio.tsx +8 -8
- package/src/components/select.tsx +9 -8
- package/src/components/stepper.tsx +6 -6
- package/src/components/switch.tsx +7 -7
- package/src/components/table/headless-templated-row-table.ts +550 -0
- package/src/components/table/index.tsx +41 -0
- package/src/components/table/server-table.ts +143 -0
- package/src/components/table/table-actions.tsx +76 -0
- package/src/components/table/table-container.tsx +173 -0
- package/src/components/table/table-container.type-test.ts +155 -0
- package/src/components/table/table-filters/date-range-filter.tsx +227 -0
- package/src/components/table/table-filters/select-filter.tsx +211 -0
- package/src/components/table/table-filters/sort.tsx +85 -0
- package/src/components/table/table-primitives.tsx +226 -0
- package/src/components/table/table-toolbar.tsx +300 -0
- package/src/components/table/table-types.ts +61 -0
- package/src/components/table/use-client-table.ts +157 -0
- package/src/components/table/use-client-table.type-test.ts +217 -0
- package/src/components/table/use-server-table.ts +192 -0
- package/src/components/table/use-server-table.type-test.ts +174 -0
- package/src/components/tabs.tsx +1 -1
- package/src/components/tag-field.tsx +3 -3
- package/src/components/text-area.tsx +1 -1
- package/src/components/toast.tsx +6 -6
- package/src/components/toggle-button-group.tsx +2 -2
- package/src/utils/icons.d.ts +2 -1
- package/src/utils/use-query-state.ts +626 -0
- package/src/utils/use-tab-indicator.ts +9 -9
package/registry.json
CHANGED
|
@@ -1,56 +1,248 @@
|
|
|
1
1
|
[
|
|
2
2
|
{
|
|
3
|
-
"name": "
|
|
4
|
-
"title": "
|
|
5
|
-
"description": "
|
|
3
|
+
"name": "tw",
|
|
4
|
+
"title": "TW",
|
|
5
|
+
"description": "Tailwind CSS class merging and render-prop composition utility.",
|
|
6
6
|
"files": [
|
|
7
7
|
{
|
|
8
|
-
"path": "src/
|
|
9
|
-
"type": "
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
"path": "src/utils/tw.ts",
|
|
9
|
+
"type": "utils"
|
|
10
|
+
}
|
|
11
|
+
]
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"name": "compose-refs",
|
|
15
|
+
"title": "Compose Refs",
|
|
16
|
+
"description": "Merges multiple React refs into a single callback ref.",
|
|
17
|
+
"files": [
|
|
15
18
|
{
|
|
16
|
-
"path": "src/
|
|
17
|
-
"type": "
|
|
18
|
-
}
|
|
19
|
+
"path": "src/utils/compose-refs.ts",
|
|
20
|
+
"type": "utils"
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"name": "use-render-props",
|
|
26
|
+
"title": "Use Render Props",
|
|
27
|
+
"description": "Hook for resolving render-prop style className and children.",
|
|
28
|
+
"files": [
|
|
19
29
|
{
|
|
20
|
-
"path": "src/
|
|
21
|
-
"type": "
|
|
22
|
-
}
|
|
30
|
+
"path": "src/utils/use-render-props.ts",
|
|
31
|
+
"type": "utils"
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"name": "colors",
|
|
37
|
+
"title": "Colors",
|
|
38
|
+
"description": "Color constants and variant mapping utilities.",
|
|
39
|
+
"files": [
|
|
23
40
|
{
|
|
24
|
-
"path": "src/
|
|
25
|
-
"type": "
|
|
26
|
-
}
|
|
41
|
+
"path": "src/utils/colors.ts",
|
|
42
|
+
"type": "utils"
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"name": "file-input-utils",
|
|
48
|
+
"title": "File Input Utils",
|
|
49
|
+
"description": "File handling, preview generation, and form submission utilities for file inputs.",
|
|
50
|
+
"files": [
|
|
27
51
|
{
|
|
28
|
-
"path": "src/
|
|
29
|
-
"type": "
|
|
30
|
-
}
|
|
52
|
+
"path": "src/utils/file-input.ts",
|
|
53
|
+
"type": "utils"
|
|
54
|
+
}
|
|
55
|
+
]
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"name": "use-spin-delay",
|
|
59
|
+
"title": "Use Spin Delay",
|
|
60
|
+
"description": "Hook that delays showing a spinner to avoid flashes on fast operations.",
|
|
61
|
+
"files": [
|
|
31
62
|
{
|
|
32
|
-
"path": "src/utils/
|
|
63
|
+
"path": "src/utils/use-spin-delay.ts",
|
|
33
64
|
"type": "utils"
|
|
34
|
-
}
|
|
65
|
+
}
|
|
66
|
+
]
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"name": "use-number-input",
|
|
70
|
+
"title": "Use Number Input",
|
|
71
|
+
"description": "Hook for parsing and formatting numeric input values.",
|
|
72
|
+
"files": [
|
|
35
73
|
{
|
|
36
|
-
"path": "src/utils/
|
|
74
|
+
"path": "src/utils/use-number-input.ts",
|
|
37
75
|
"type": "utils"
|
|
38
|
-
}
|
|
76
|
+
}
|
|
77
|
+
]
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"name": "use-prevent-default",
|
|
81
|
+
"title": "Use Prevent Default",
|
|
82
|
+
"description": "Hook that prevents the default event behavior via a stable callback.",
|
|
83
|
+
"dependencies": [
|
|
84
|
+
"use-stable-accessor"
|
|
85
|
+
],
|
|
86
|
+
"files": [
|
|
39
87
|
{
|
|
40
88
|
"path": "src/utils/use-prevent-default.ts",
|
|
41
89
|
"type": "utils"
|
|
42
|
-
}
|
|
90
|
+
}
|
|
91
|
+
]
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"name": "use-stable-accessor",
|
|
95
|
+
"title": "Use Stable Accessor",
|
|
96
|
+
"description": "Hook that wraps a value in a stable ref-backed accessor function.",
|
|
97
|
+
"files": [
|
|
43
98
|
{
|
|
44
|
-
"path": "src/utils/use-
|
|
99
|
+
"path": "src/utils/use-stable-accessor.ts",
|
|
45
100
|
"type": "utils"
|
|
46
|
-
}
|
|
101
|
+
}
|
|
102
|
+
]
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"name": "use-tab-indicator",
|
|
106
|
+
"title": "Use Tab Indicator",
|
|
107
|
+
"description": "Hook that positions an animated indicator under the active tab.",
|
|
108
|
+
"files": [
|
|
47
109
|
{
|
|
48
|
-
"path": "src/utils/use-
|
|
110
|
+
"path": "src/utils/use-tab-indicator.ts",
|
|
49
111
|
"type": "utils"
|
|
50
|
-
}
|
|
112
|
+
}
|
|
113
|
+
]
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"name": "form-field",
|
|
117
|
+
"title": "Form Field",
|
|
118
|
+
"description": "Label, description, and error message wrapper for form inputs.",
|
|
119
|
+
"dependencies": [
|
|
120
|
+
"tw"
|
|
121
|
+
],
|
|
122
|
+
"files": [
|
|
51
123
|
{
|
|
52
|
-
"path": "src/
|
|
53
|
-
"type": "
|
|
124
|
+
"path": "src/components/helpers/form-field.tsx",
|
|
125
|
+
"type": "components/helpers"
|
|
126
|
+
}
|
|
127
|
+
]
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"name": "animated-popover",
|
|
131
|
+
"title": "Animated Popover",
|
|
132
|
+
"description": "A popover with enter/exit CSS transitions.",
|
|
133
|
+
"dependencies": [
|
|
134
|
+
"tw"
|
|
135
|
+
],
|
|
136
|
+
"files": [
|
|
137
|
+
{
|
|
138
|
+
"path": "src/components/helpers/animated-popover.tsx",
|
|
139
|
+
"type": "components/helpers"
|
|
140
|
+
}
|
|
141
|
+
]
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"name": "headless-button",
|
|
145
|
+
"title": "Headless Button",
|
|
146
|
+
"description": "An unstyled polymorphic button with ref forwarding and render props.",
|
|
147
|
+
"dependencies": [
|
|
148
|
+
"compose-refs",
|
|
149
|
+
"use-render-props"
|
|
150
|
+
],
|
|
151
|
+
"files": [
|
|
152
|
+
{
|
|
153
|
+
"path": "src/components/helpers/headless-button.tsx",
|
|
154
|
+
"type": "components/helpers"
|
|
155
|
+
}
|
|
156
|
+
]
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"name": "get-button-classes",
|
|
160
|
+
"title": "Get Button Classes",
|
|
161
|
+
"description": "Returns Tailwind class strings for button variant, color, size, and shape.",
|
|
162
|
+
"dependencies": [
|
|
163
|
+
"tw"
|
|
164
|
+
],
|
|
165
|
+
"files": [
|
|
166
|
+
{
|
|
167
|
+
"path": "src/components/helpers/get-button-classes.ts",
|
|
168
|
+
"type": "components/helpers"
|
|
169
|
+
}
|
|
170
|
+
]
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"name": "spinner",
|
|
174
|
+
"title": "Spinner",
|
|
175
|
+
"description": "An SVG loading spinner with size and color variants.",
|
|
176
|
+
"dependencies": [
|
|
177
|
+
"tw"
|
|
178
|
+
],
|
|
179
|
+
"files": [
|
|
180
|
+
{
|
|
181
|
+
"path": "src/components/spinner.tsx",
|
|
182
|
+
"type": "components"
|
|
183
|
+
}
|
|
184
|
+
]
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
"name": "button-context",
|
|
188
|
+
"title": "Button Context",
|
|
189
|
+
"description": "React context for sharing button group variant and size to child buttons.",
|
|
190
|
+
"dependencies": [
|
|
191
|
+
"get-button-classes"
|
|
192
|
+
],
|
|
193
|
+
"files": [
|
|
194
|
+
{
|
|
195
|
+
"path": "src/components/helpers/button-context.ts",
|
|
196
|
+
"type": "components/helpers"
|
|
197
|
+
}
|
|
198
|
+
]
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
"name": "calendar-month-year-picker",
|
|
202
|
+
"title": "Calendar Month Year Picker",
|
|
203
|
+
"description": "Month and year navigation controls for date picker calendars.",
|
|
204
|
+
"dependencies": [
|
|
205
|
+
"tw"
|
|
206
|
+
],
|
|
207
|
+
"files": [
|
|
208
|
+
{
|
|
209
|
+
"path": "src/components/helpers/calendar-month-year-picker.tsx",
|
|
210
|
+
"type": "components/helpers"
|
|
211
|
+
}
|
|
212
|
+
]
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"name": "pdf-dist",
|
|
216
|
+
"title": "PDF Dist",
|
|
217
|
+
"description": "Client-side PDF.js worker initialization.",
|
|
218
|
+
"files": [
|
|
219
|
+
{
|
|
220
|
+
"path": "src/components/helpers/pdf-dist.client.ts",
|
|
221
|
+
"type": "components/helpers"
|
|
222
|
+
}
|
|
223
|
+
]
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
"name": "button",
|
|
227
|
+
"title": "Button",
|
|
228
|
+
"description": "A polymorphic button with variants, colors, sizes, shapes, toggle state, and built-in async click handling with a delayed spinner.",
|
|
229
|
+
"dependencies": [
|
|
230
|
+
"tw",
|
|
231
|
+
"spinner",
|
|
232
|
+
"button-context",
|
|
233
|
+
"get-button-classes",
|
|
234
|
+
"headless-button",
|
|
235
|
+
"compose-refs",
|
|
236
|
+
"use-prevent-default",
|
|
237
|
+
"use-render-props",
|
|
238
|
+
"use-spin-delay",
|
|
239
|
+
"use-stable-accessor",
|
|
240
|
+
"icon"
|
|
241
|
+
],
|
|
242
|
+
"files": [
|
|
243
|
+
{
|
|
244
|
+
"path": "src/components/button.tsx",
|
|
245
|
+
"type": "components"
|
|
54
246
|
}
|
|
55
247
|
]
|
|
56
248
|
},
|
|
@@ -69,14 +261,13 @@
|
|
|
69
261
|
"name": "headless-file-input",
|
|
70
262
|
"title": "Headless File Input",
|
|
71
263
|
"description": "A headless file input with drag-and-drop, multiple file support, controlled/uncontrolled state, file preview, and form submission for both files and URLs.",
|
|
264
|
+
"dependencies": [
|
|
265
|
+
"compose-refs"
|
|
266
|
+
],
|
|
72
267
|
"files": [
|
|
73
268
|
{
|
|
74
269
|
"path": "src/components/headless-file-input.tsx",
|
|
75
270
|
"type": "components"
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
"path": "src/utils/compose-refs.ts",
|
|
79
|
-
"type": "utils"
|
|
80
271
|
}
|
|
81
272
|
]
|
|
82
273
|
},
|
|
@@ -84,34 +275,18 @@
|
|
|
84
275
|
"name": "button-link",
|
|
85
276
|
"title": "Button Link",
|
|
86
277
|
"description": "A React Router Link styled as a button with variants, colors, sizes, shapes, and a loading spinner for pending navigation.",
|
|
278
|
+
"dependencies": [
|
|
279
|
+
"tw",
|
|
280
|
+
"spinner",
|
|
281
|
+
"button-context",
|
|
282
|
+
"get-button-classes",
|
|
283
|
+
"use-spin-delay",
|
|
284
|
+
"icon"
|
|
285
|
+
],
|
|
87
286
|
"files": [
|
|
88
287
|
{
|
|
89
288
|
"path": "src/components/button-link.tsx",
|
|
90
289
|
"type": "components"
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
"path": "src/components/icon.tsx",
|
|
94
|
-
"type": "components"
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
"path": "src/components/spinner.tsx",
|
|
98
|
-
"type": "components"
|
|
99
|
-
},
|
|
100
|
-
{
|
|
101
|
-
"path": "src/components/helpers/button-context.ts",
|
|
102
|
-
"type": "components/helpers"
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
"path": "src/components/helpers/get-button-classes.ts",
|
|
106
|
-
"type": "components/helpers"
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
"path": "src/utils/tw.ts",
|
|
110
|
-
"type": "utils"
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
"path": "src/utils/use-spin-delay.ts",
|
|
114
|
-
"type": "utils"
|
|
115
290
|
}
|
|
116
291
|
]
|
|
117
292
|
},
|
|
@@ -119,14 +294,13 @@
|
|
|
119
294
|
"name": "button-group",
|
|
120
295
|
"title": "Button Group",
|
|
121
296
|
"description": "A container for grouping buttons with configurable orientation, alignment, sizing, and full-width support.",
|
|
297
|
+
"dependencies": [
|
|
298
|
+
"tw"
|
|
299
|
+
],
|
|
122
300
|
"files": [
|
|
123
301
|
{
|
|
124
302
|
"path": "src/components/button-group.tsx",
|
|
125
303
|
"type": "components"
|
|
126
|
-
},
|
|
127
|
-
{
|
|
128
|
-
"path": "src/utils/tw.ts",
|
|
129
|
-
"type": "utils"
|
|
130
304
|
}
|
|
131
305
|
]
|
|
132
306
|
},
|
|
@@ -134,18 +308,14 @@
|
|
|
134
308
|
"name": "toggle-button-group",
|
|
135
309
|
"title": "Toggle Button Group",
|
|
136
310
|
"description": "A radio-style group of toggle buttons with horizontal/vertical layout, keyboard navigation, and size variants.",
|
|
311
|
+
"dependencies": [
|
|
312
|
+
"tw",
|
|
313
|
+
"get-button-classes"
|
|
314
|
+
],
|
|
137
315
|
"files": [
|
|
138
316
|
{
|
|
139
317
|
"path": "src/components/toggle-button-group.tsx",
|
|
140
318
|
"type": "components"
|
|
141
|
-
},
|
|
142
|
-
{
|
|
143
|
-
"path": "src/components/helpers/get-button-classes.ts",
|
|
144
|
-
"type": "components/helpers"
|
|
145
|
-
},
|
|
146
|
-
{
|
|
147
|
-
"path": "src/utils/tw.ts",
|
|
148
|
-
"type": "utils"
|
|
149
319
|
}
|
|
150
320
|
]
|
|
151
321
|
},
|
|
@@ -153,30 +323,17 @@
|
|
|
153
323
|
"name": "date-picker",
|
|
154
324
|
"title": "Date Picker",
|
|
155
325
|
"description": "An accessible date picker with calendar popup, month/year navigation, form validation integration, and ISO date string handling.",
|
|
326
|
+
"dependencies": [
|
|
327
|
+
"tw",
|
|
328
|
+
"animated-popover",
|
|
329
|
+
"calendar-month-year-picker",
|
|
330
|
+
"form-field",
|
|
331
|
+
"icon"
|
|
332
|
+
],
|
|
156
333
|
"files": [
|
|
157
334
|
{
|
|
158
335
|
"path": "src/components/date-picker.tsx",
|
|
159
336
|
"type": "components"
|
|
160
|
-
},
|
|
161
|
-
{
|
|
162
|
-
"path": "src/components/icon.tsx",
|
|
163
|
-
"type": "components"
|
|
164
|
-
},
|
|
165
|
-
{
|
|
166
|
-
"path": "src/components/helpers/animated-popover.tsx",
|
|
167
|
-
"type": "components/helpers"
|
|
168
|
-
},
|
|
169
|
-
{
|
|
170
|
-
"path": "src/components/helpers/calendar-month-year-picker.tsx",
|
|
171
|
-
"type": "components/helpers"
|
|
172
|
-
},
|
|
173
|
-
{
|
|
174
|
-
"path": "src/components/helpers/form-field.tsx",
|
|
175
|
-
"type": "components/helpers"
|
|
176
|
-
},
|
|
177
|
-
{
|
|
178
|
-
"path": "src/utils/tw.ts",
|
|
179
|
-
"type": "utils"
|
|
180
337
|
}
|
|
181
338
|
]
|
|
182
339
|
},
|
|
@@ -184,30 +341,17 @@
|
|
|
184
341
|
"name": "text-field",
|
|
185
342
|
"title": "Text Field",
|
|
186
343
|
"description": "A text input with type variants (email, password, url, etc.), trailing addon support, shape options, form validation integration, and accessible labeling.",
|
|
344
|
+
"dependencies": [
|
|
345
|
+
"tw",
|
|
346
|
+
"form-field",
|
|
347
|
+
"headless-button",
|
|
348
|
+
"compose-refs",
|
|
349
|
+
"use-render-props"
|
|
350
|
+
],
|
|
187
351
|
"files": [
|
|
188
352
|
{
|
|
189
353
|
"path": "src/components/text-field.tsx",
|
|
190
354
|
"type": "components"
|
|
191
|
-
},
|
|
192
|
-
{
|
|
193
|
-
"path": "src/components/helpers/form-field.tsx",
|
|
194
|
-
"type": "components/helpers"
|
|
195
|
-
},
|
|
196
|
-
{
|
|
197
|
-
"path": "src/components/helpers/headless-button.tsx",
|
|
198
|
-
"type": "components/helpers"
|
|
199
|
-
},
|
|
200
|
-
{
|
|
201
|
-
"path": "src/utils/compose-refs.ts",
|
|
202
|
-
"type": "utils"
|
|
203
|
-
},
|
|
204
|
-
{
|
|
205
|
-
"path": "src/utils/tw.ts",
|
|
206
|
-
"type": "utils"
|
|
207
|
-
},
|
|
208
|
-
{
|
|
209
|
-
"path": "src/utils/use-render-props.ts",
|
|
210
|
-
"type": "utils"
|
|
211
355
|
}
|
|
212
356
|
]
|
|
213
357
|
},
|
|
@@ -215,18 +359,14 @@
|
|
|
215
359
|
"name": "text-area",
|
|
216
360
|
"title": "Text Area",
|
|
217
361
|
"description": "A multi-line text input with auto-resize, min/max rows, resize control, form validation integration, and accessible labeling.",
|
|
362
|
+
"dependencies": [
|
|
363
|
+
"tw",
|
|
364
|
+
"form-field"
|
|
365
|
+
],
|
|
218
366
|
"files": [
|
|
219
367
|
{
|
|
220
368
|
"path": "src/components/text-area.tsx",
|
|
221
369
|
"type": "components"
|
|
222
|
-
},
|
|
223
|
-
{
|
|
224
|
-
"path": "src/components/helpers/form-field.tsx",
|
|
225
|
-
"type": "components/helpers"
|
|
226
|
-
},
|
|
227
|
-
{
|
|
228
|
-
"path": "src/utils/tw.ts",
|
|
229
|
-
"type": "utils"
|
|
230
370
|
}
|
|
231
371
|
]
|
|
232
372
|
},
|
|
@@ -234,22 +374,15 @@
|
|
|
234
374
|
"name": "number-field",
|
|
235
375
|
"title": "Number Field",
|
|
236
376
|
"description": "A numeric input with min/max/step constraints, Intl.NumberFormat formatting, form validation integration, and accessible labeling.",
|
|
377
|
+
"dependencies": [
|
|
378
|
+
"tw",
|
|
379
|
+
"form-field",
|
|
380
|
+
"use-number-input"
|
|
381
|
+
],
|
|
237
382
|
"files": [
|
|
238
383
|
{
|
|
239
384
|
"path": "src/components/number-field.tsx",
|
|
240
385
|
"type": "components"
|
|
241
|
-
},
|
|
242
|
-
{
|
|
243
|
-
"path": "src/components/helpers/form-field.tsx",
|
|
244
|
-
"type": "components/helpers"
|
|
245
|
-
},
|
|
246
|
-
{
|
|
247
|
-
"path": "src/utils/tw.ts",
|
|
248
|
-
"type": "utils"
|
|
249
|
-
},
|
|
250
|
-
{
|
|
251
|
-
"path": "src/utils/use-number-input.ts",
|
|
252
|
-
"type": "utils"
|
|
253
386
|
}
|
|
254
387
|
]
|
|
255
388
|
},
|
|
@@ -257,22 +390,15 @@
|
|
|
257
390
|
"name": "currency-field",
|
|
258
391
|
"title": "Currency Field",
|
|
259
392
|
"description": "A dollar/cents currency input with Intl.NumberFormat formatting, cents-to-dollars conversion, form validation integration, and accessible labeling.",
|
|
393
|
+
"dependencies": [
|
|
394
|
+
"tw",
|
|
395
|
+
"form-field",
|
|
396
|
+
"use-number-input"
|
|
397
|
+
],
|
|
260
398
|
"files": [
|
|
261
399
|
{
|
|
262
400
|
"path": "src/components/currency-field.tsx",
|
|
263
401
|
"type": "components"
|
|
264
|
-
},
|
|
265
|
-
{
|
|
266
|
-
"path": "src/components/helpers/form-field.tsx",
|
|
267
|
-
"type": "components/helpers"
|
|
268
|
-
},
|
|
269
|
-
{
|
|
270
|
-
"path": "src/utils/tw.ts",
|
|
271
|
-
"type": "utils"
|
|
272
|
-
},
|
|
273
|
-
{
|
|
274
|
-
"path": "src/utils/use-number-input.ts",
|
|
275
|
-
"type": "utils"
|
|
276
402
|
}
|
|
277
403
|
]
|
|
278
404
|
},
|
|
@@ -280,22 +406,15 @@
|
|
|
280
406
|
"name": "percentage-field",
|
|
281
407
|
"title": "Percentage Field",
|
|
282
408
|
"description": "A percentage input with integer/decimal unit conversion, Intl.NumberFormat percent formatting, form validation integration, and accessible labeling.",
|
|
409
|
+
"dependencies": [
|
|
410
|
+
"tw",
|
|
411
|
+
"form-field",
|
|
412
|
+
"use-number-input"
|
|
413
|
+
],
|
|
283
414
|
"files": [
|
|
284
415
|
{
|
|
285
416
|
"path": "src/components/percentage-field.tsx",
|
|
286
417
|
"type": "components"
|
|
287
|
-
},
|
|
288
|
-
{
|
|
289
|
-
"path": "src/components/helpers/form-field.tsx",
|
|
290
|
-
"type": "components/helpers"
|
|
291
|
-
},
|
|
292
|
-
{
|
|
293
|
-
"path": "src/utils/tw.ts",
|
|
294
|
-
"type": "utils"
|
|
295
|
-
},
|
|
296
|
-
{
|
|
297
|
-
"path": "src/utils/use-number-input.ts",
|
|
298
|
-
"type": "utils"
|
|
299
418
|
}
|
|
300
419
|
]
|
|
301
420
|
},
|
|
@@ -303,18 +422,14 @@
|
|
|
303
422
|
"name": "phone-number-field",
|
|
304
423
|
"title": "Phone Number Field",
|
|
305
424
|
"description": "A phone number input with auto-formatting for US/CA/international numbers, form validation integration, and accessible labeling.",
|
|
425
|
+
"dependencies": [
|
|
426
|
+
"tw",
|
|
427
|
+
"form-field"
|
|
428
|
+
],
|
|
306
429
|
"files": [
|
|
307
430
|
{
|
|
308
431
|
"path": "src/components/phone-number-field.tsx",
|
|
309
432
|
"type": "components"
|
|
310
|
-
},
|
|
311
|
-
{
|
|
312
|
-
"path": "src/components/helpers/form-field.tsx",
|
|
313
|
-
"type": "components/helpers"
|
|
314
|
-
},
|
|
315
|
-
{
|
|
316
|
-
"path": "src/utils/tw.ts",
|
|
317
|
-
"type": "utils"
|
|
318
433
|
}
|
|
319
434
|
]
|
|
320
435
|
},
|
|
@@ -322,22 +437,15 @@
|
|
|
322
437
|
"name": "tag-field",
|
|
323
438
|
"title": "Tag Field",
|
|
324
439
|
"description": "A string tag input with custom separators, duplicate prevention, tag validation/transformation, max tag limits, and form integration.",
|
|
440
|
+
"dependencies": [
|
|
441
|
+
"tw",
|
|
442
|
+
"form-field",
|
|
443
|
+
"icon"
|
|
444
|
+
],
|
|
325
445
|
"files": [
|
|
326
446
|
{
|
|
327
447
|
"path": "src/components/tag-field.tsx",
|
|
328
448
|
"type": "components"
|
|
329
|
-
},
|
|
330
|
-
{
|
|
331
|
-
"path": "src/components/icon.tsx",
|
|
332
|
-
"type": "components"
|
|
333
|
-
},
|
|
334
|
-
{
|
|
335
|
-
"path": "src/components/helpers/form-field.tsx",
|
|
336
|
-
"type": "components/helpers"
|
|
337
|
-
},
|
|
338
|
-
{
|
|
339
|
-
"path": "src/utils/tw.ts",
|
|
340
|
-
"type": "utils"
|
|
341
449
|
}
|
|
342
450
|
]
|
|
343
451
|
},
|
|
@@ -345,22 +453,15 @@
|
|
|
345
453
|
"name": "numeric-tag-field",
|
|
346
454
|
"title": "Numeric Tag Field",
|
|
347
455
|
"description": "A tag input for numeric values with min/max bounds, duplicate prevention, tag validation/transformation, and form integration.",
|
|
456
|
+
"dependencies": [
|
|
457
|
+
"tw",
|
|
458
|
+
"form-field",
|
|
459
|
+
"icon"
|
|
460
|
+
],
|
|
348
461
|
"files": [
|
|
349
462
|
{
|
|
350
463
|
"path": "src/components/numeric-tag-field.tsx",
|
|
351
464
|
"type": "components"
|
|
352
|
-
},
|
|
353
|
-
{
|
|
354
|
-
"path": "src/components/icon.tsx",
|
|
355
|
-
"type": "components"
|
|
356
|
-
},
|
|
357
|
-
{
|
|
358
|
-
"path": "src/components/helpers/form-field.tsx",
|
|
359
|
-
"type": "components/helpers"
|
|
360
|
-
},
|
|
361
|
-
{
|
|
362
|
-
"path": "src/utils/tw.ts",
|
|
363
|
-
"type": "utils"
|
|
364
465
|
}
|
|
365
466
|
]
|
|
366
467
|
},
|
|
@@ -368,18 +469,14 @@
|
|
|
368
469
|
"name": "date-input",
|
|
369
470
|
"title": "Date Input",
|
|
370
471
|
"description": "An accessible inline date field (no popup) with min/max constraints, form validation integration, and ISO date string handling.",
|
|
472
|
+
"dependencies": [
|
|
473
|
+
"tw",
|
|
474
|
+
"form-field"
|
|
475
|
+
],
|
|
371
476
|
"files": [
|
|
372
477
|
{
|
|
373
478
|
"path": "src/components/date-input.tsx",
|
|
374
479
|
"type": "components"
|
|
375
|
-
},
|
|
376
|
-
{
|
|
377
|
-
"path": "src/components/helpers/form-field.tsx",
|
|
378
|
-
"type": "components/helpers"
|
|
379
|
-
},
|
|
380
|
-
{
|
|
381
|
-
"path": "src/utils/tw.ts",
|
|
382
|
-
"type": "utils"
|
|
383
480
|
}
|
|
384
481
|
]
|
|
385
482
|
},
|
|
@@ -387,26 +484,16 @@
|
|
|
387
484
|
"name": "date-range-picker",
|
|
388
485
|
"title": "Date Range Picker",
|
|
389
486
|
"description": "An accessible date range picker with dual calendar popover, preset ranges, form validation integration, and ISO date string handling.",
|
|
487
|
+
"dependencies": [
|
|
488
|
+
"tw",
|
|
489
|
+
"animated-popover",
|
|
490
|
+
"form-field",
|
|
491
|
+
"icon"
|
|
492
|
+
],
|
|
390
493
|
"files": [
|
|
391
494
|
{
|
|
392
495
|
"path": "src/components/date-range-picker.tsx",
|
|
393
496
|
"type": "components"
|
|
394
|
-
},
|
|
395
|
-
{
|
|
396
|
-
"path": "src/components/icon.tsx",
|
|
397
|
-
"type": "components"
|
|
398
|
-
},
|
|
399
|
-
{
|
|
400
|
-
"path": "src/components/helpers/animated-popover.tsx",
|
|
401
|
-
"type": "components/helpers"
|
|
402
|
-
},
|
|
403
|
-
{
|
|
404
|
-
"path": "src/components/helpers/form-field.tsx",
|
|
405
|
-
"type": "components/helpers"
|
|
406
|
-
},
|
|
407
|
-
{
|
|
408
|
-
"path": "src/utils/tw.ts",
|
|
409
|
-
"type": "utils"
|
|
410
497
|
}
|
|
411
498
|
]
|
|
412
499
|
},
|
|
@@ -414,30 +501,17 @@
|
|
|
414
501
|
"name": "date-time-picker",
|
|
415
502
|
"title": "Date Time Picker",
|
|
416
503
|
"description": "An accessible combined date and time picker with calendar popup, month/year navigation, 12/24-hour format, form validation integration, and ISO datetime string handling.",
|
|
504
|
+
"dependencies": [
|
|
505
|
+
"tw",
|
|
506
|
+
"animated-popover",
|
|
507
|
+
"calendar-month-year-picker",
|
|
508
|
+
"form-field",
|
|
509
|
+
"icon"
|
|
510
|
+
],
|
|
417
511
|
"files": [
|
|
418
512
|
{
|
|
419
513
|
"path": "src/components/date-time-picker.tsx",
|
|
420
514
|
"type": "components"
|
|
421
|
-
},
|
|
422
|
-
{
|
|
423
|
-
"path": "src/components/icon.tsx",
|
|
424
|
-
"type": "components"
|
|
425
|
-
},
|
|
426
|
-
{
|
|
427
|
-
"path": "src/components/helpers/animated-popover.tsx",
|
|
428
|
-
"type": "components/helpers"
|
|
429
|
-
},
|
|
430
|
-
{
|
|
431
|
-
"path": "src/components/helpers/calendar-month-year-picker.tsx",
|
|
432
|
-
"type": "components/helpers"
|
|
433
|
-
},
|
|
434
|
-
{
|
|
435
|
-
"path": "src/components/helpers/form-field.tsx",
|
|
436
|
-
"type": "components/helpers"
|
|
437
|
-
},
|
|
438
|
-
{
|
|
439
|
-
"path": "src/utils/tw.ts",
|
|
440
|
-
"type": "utils"
|
|
441
515
|
}
|
|
442
516
|
]
|
|
443
517
|
},
|
|
@@ -445,18 +519,14 @@
|
|
|
445
519
|
"name": "time-input",
|
|
446
520
|
"title": "Time Input",
|
|
447
521
|
"description": "An accessible time picker with 12/24-hour format, min/max constraints, form validation integration, and ISO time string handling.",
|
|
522
|
+
"dependencies": [
|
|
523
|
+
"tw",
|
|
524
|
+
"form-field"
|
|
525
|
+
],
|
|
448
526
|
"files": [
|
|
449
527
|
{
|
|
450
528
|
"path": "src/components/time-input.tsx",
|
|
451
529
|
"type": "components"
|
|
452
|
-
},
|
|
453
|
-
{
|
|
454
|
-
"path": "src/components/helpers/form-field.tsx",
|
|
455
|
-
"type": "components/helpers"
|
|
456
|
-
},
|
|
457
|
-
{
|
|
458
|
-
"path": "src/utils/tw.ts",
|
|
459
|
-
"type": "utils"
|
|
460
530
|
}
|
|
461
531
|
]
|
|
462
532
|
},
|
|
@@ -464,18 +534,14 @@
|
|
|
464
534
|
"name": "month-day-input",
|
|
465
535
|
"title": "Month Day Input",
|
|
466
536
|
"description": "An accessible month-day input (--MM-DD format) with year segment hidden, form validation integration, and ISO month-day string handling.",
|
|
537
|
+
"dependencies": [
|
|
538
|
+
"tw",
|
|
539
|
+
"form-field"
|
|
540
|
+
],
|
|
467
541
|
"files": [
|
|
468
542
|
{
|
|
469
543
|
"path": "src/components/month-day-input.tsx",
|
|
470
544
|
"type": "components"
|
|
471
|
-
},
|
|
472
|
-
{
|
|
473
|
-
"path": "src/components/helpers/form-field.tsx",
|
|
474
|
-
"type": "components/helpers"
|
|
475
|
-
},
|
|
476
|
-
{
|
|
477
|
-
"path": "src/utils/tw.ts",
|
|
478
|
-
"type": "utils"
|
|
479
545
|
}
|
|
480
546
|
]
|
|
481
547
|
},
|
|
@@ -483,18 +549,14 @@
|
|
|
483
549
|
"name": "year-month-input",
|
|
484
550
|
"title": "Year Month Input",
|
|
485
551
|
"description": "An accessible year-month input (YYYY-MM format) with day segment hidden, form validation integration, and ISO year-month string handling.",
|
|
552
|
+
"dependencies": [
|
|
553
|
+
"tw",
|
|
554
|
+
"form-field"
|
|
555
|
+
],
|
|
486
556
|
"files": [
|
|
487
557
|
{
|
|
488
558
|
"path": "src/components/year-month-input.tsx",
|
|
489
559
|
"type": "components"
|
|
490
|
-
},
|
|
491
|
-
{
|
|
492
|
-
"path": "src/components/helpers/form-field.tsx",
|
|
493
|
-
"type": "components/helpers"
|
|
494
|
-
},
|
|
495
|
-
{
|
|
496
|
-
"path": "src/utils/tw.ts",
|
|
497
|
-
"type": "utils"
|
|
498
560
|
}
|
|
499
561
|
]
|
|
500
562
|
},
|
|
@@ -502,30 +564,17 @@
|
|
|
502
564
|
"name": "select",
|
|
503
565
|
"title": "Select",
|
|
504
566
|
"description": "A single-select dropdown with colored options, custom rendering, keyboard navigation, form validation integration, and accessible labeling.",
|
|
567
|
+
"dependencies": [
|
|
568
|
+
"tw",
|
|
569
|
+
"animated-popover",
|
|
570
|
+
"form-field",
|
|
571
|
+
"colors",
|
|
572
|
+
"icon"
|
|
573
|
+
],
|
|
505
574
|
"files": [
|
|
506
575
|
{
|
|
507
576
|
"path": "src/components/select.tsx",
|
|
508
577
|
"type": "components"
|
|
509
|
-
},
|
|
510
|
-
{
|
|
511
|
-
"path": "src/components/icon.tsx",
|
|
512
|
-
"type": "components"
|
|
513
|
-
},
|
|
514
|
-
{
|
|
515
|
-
"path": "src/components/helpers/animated-popover.tsx",
|
|
516
|
-
"type": "components/helpers"
|
|
517
|
-
},
|
|
518
|
-
{
|
|
519
|
-
"path": "src/components/helpers/form-field.tsx",
|
|
520
|
-
"type": "components/helpers"
|
|
521
|
-
},
|
|
522
|
-
{
|
|
523
|
-
"path": "src/utils/colors.ts",
|
|
524
|
-
"type": "utils"
|
|
525
|
-
},
|
|
526
|
-
{
|
|
527
|
-
"path": "src/utils/tw.ts",
|
|
528
|
-
"type": "utils"
|
|
529
578
|
}
|
|
530
579
|
]
|
|
531
580
|
},
|
|
@@ -533,34 +582,18 @@
|
|
|
533
582
|
"name": "boolean-select",
|
|
534
583
|
"title": "Boolean Select",
|
|
535
584
|
"description": "A Yes/No dropdown with optional null state, customizable labels, and form validation integration. Built on the Select component.",
|
|
585
|
+
"dependencies": [
|
|
586
|
+
"tw",
|
|
587
|
+
"animated-popover",
|
|
588
|
+
"form-field",
|
|
589
|
+
"colors",
|
|
590
|
+
"icon",
|
|
591
|
+
"select"
|
|
592
|
+
],
|
|
536
593
|
"files": [
|
|
537
594
|
{
|
|
538
595
|
"path": "src/components/boolean-select.tsx",
|
|
539
596
|
"type": "components"
|
|
540
|
-
},
|
|
541
|
-
{
|
|
542
|
-
"path": "src/components/icon.tsx",
|
|
543
|
-
"type": "components"
|
|
544
|
-
},
|
|
545
|
-
{
|
|
546
|
-
"path": "src/components/select.tsx",
|
|
547
|
-
"type": "components"
|
|
548
|
-
},
|
|
549
|
-
{
|
|
550
|
-
"path": "src/components/helpers/animated-popover.tsx",
|
|
551
|
-
"type": "components/helpers"
|
|
552
|
-
},
|
|
553
|
-
{
|
|
554
|
-
"path": "src/components/helpers/form-field.tsx",
|
|
555
|
-
"type": "components/helpers"
|
|
556
|
-
},
|
|
557
|
-
{
|
|
558
|
-
"path": "src/utils/colors.ts",
|
|
559
|
-
"type": "utils"
|
|
560
|
-
},
|
|
561
|
-
{
|
|
562
|
-
"path": "src/utils/tw.ts",
|
|
563
|
-
"type": "utils"
|
|
564
597
|
}
|
|
565
598
|
]
|
|
566
599
|
},
|
|
@@ -568,57 +601,34 @@
|
|
|
568
601
|
"name": "autocomplete",
|
|
569
602
|
"title": "Autocomplete",
|
|
570
603
|
"description": "A searchable single-select dropdown with matchSorter filtering, colored options, custom rendering, form validation integration, and accessible labeling.",
|
|
604
|
+
"dependencies": [
|
|
605
|
+
"tw",
|
|
606
|
+
"animated-popover",
|
|
607
|
+
"form-field",
|
|
608
|
+
"colors",
|
|
609
|
+
"icon"
|
|
610
|
+
],
|
|
571
611
|
"files": [
|
|
572
612
|
{
|
|
573
613
|
"path": "src/components/autocomplete.tsx",
|
|
574
614
|
"type": "components"
|
|
575
|
-
},
|
|
576
|
-
{
|
|
577
|
-
"path": "src/components/icon.tsx",
|
|
578
|
-
"type": "components"
|
|
579
|
-
},
|
|
580
|
-
{
|
|
581
|
-
"path": "src/components/helpers/animated-popover.tsx",
|
|
582
|
-
"type": "components/helpers"
|
|
583
|
-
},
|
|
584
|
-
{
|
|
585
|
-
"path": "src/components/helpers/form-field.tsx",
|
|
586
|
-
"type": "components/helpers"
|
|
587
|
-
},
|
|
588
|
-
{
|
|
589
|
-
"path": "src/utils/colors.ts",
|
|
590
|
-
"type": "utils"
|
|
591
|
-
},
|
|
592
|
-
{
|
|
593
|
-
"path": "src/utils/tw.ts",
|
|
594
|
-
"type": "utils"
|
|
595
615
|
}
|
|
596
616
|
]
|
|
597
617
|
},
|
|
598
618
|
{
|
|
599
619
|
"name": "autosuggest",
|
|
600
|
-
"title": "Autosuggest",
|
|
601
|
-
"description": "A text input with suggestions that allows custom (non-option) values, matchSorter filtering, form validation integration, and accessible labeling.",
|
|
602
|
-
"
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
"type": "components"
|
|
610
|
-
},
|
|
611
|
-
{
|
|
612
|
-
"path": "src/components/helpers/animated-popover.tsx",
|
|
613
|
-
"type": "components/helpers"
|
|
614
|
-
},
|
|
615
|
-
{
|
|
616
|
-
"path": "src/components/helpers/form-field.tsx",
|
|
617
|
-
"type": "components/helpers"
|
|
618
|
-
},
|
|
620
|
+
"title": "Autosuggest",
|
|
621
|
+
"description": "A text input with suggestions that allows custom (non-option) values, matchSorter filtering, form validation integration, and accessible labeling.",
|
|
622
|
+
"dependencies": [
|
|
623
|
+
"tw",
|
|
624
|
+
"animated-popover",
|
|
625
|
+
"form-field",
|
|
626
|
+
"icon"
|
|
627
|
+
],
|
|
628
|
+
"files": [
|
|
619
629
|
{
|
|
620
|
-
"path": "src/
|
|
621
|
-
"type": "
|
|
630
|
+
"path": "src/components/autosuggest.tsx",
|
|
631
|
+
"type": "components"
|
|
622
632
|
}
|
|
623
633
|
]
|
|
624
634
|
},
|
|
@@ -626,35 +636,19 @@
|
|
|
626
636
|
"name": "multiselect",
|
|
627
637
|
"title": "Multiselect",
|
|
628
638
|
"description": "A multi-select dropdown with chip display, optional select all, colored options, custom rendering, form validation integration, and accessible labeling.",
|
|
639
|
+
"dependencies": [
|
|
640
|
+
"tw",
|
|
641
|
+
"animated-popover",
|
|
642
|
+
"form-field",
|
|
643
|
+
"colors",
|
|
644
|
+
"compose-refs",
|
|
645
|
+
"icon"
|
|
646
|
+
],
|
|
629
647
|
"files": [
|
|
630
648
|
{
|
|
631
649
|
"path": "src/components/multiselect.tsx",
|
|
632
650
|
"type": "components"
|
|
633
651
|
},
|
|
634
|
-
{
|
|
635
|
-
"path": "src/components/icon.tsx",
|
|
636
|
-
"type": "components"
|
|
637
|
-
},
|
|
638
|
-
{
|
|
639
|
-
"path": "src/components/helpers/animated-popover.tsx",
|
|
640
|
-
"type": "components/helpers"
|
|
641
|
-
},
|
|
642
|
-
{
|
|
643
|
-
"path": "src/components/helpers/form-field.tsx",
|
|
644
|
-
"type": "components/helpers"
|
|
645
|
-
},
|
|
646
|
-
{
|
|
647
|
-
"path": "src/utils/colors.ts",
|
|
648
|
-
"type": "utils"
|
|
649
|
-
},
|
|
650
|
-
{
|
|
651
|
-
"path": "src/utils/compose-refs.ts",
|
|
652
|
-
"type": "utils"
|
|
653
|
-
},
|
|
654
|
-
{
|
|
655
|
-
"path": "src/utils/tw.ts",
|
|
656
|
-
"type": "utils"
|
|
657
|
-
},
|
|
658
652
|
{
|
|
659
653
|
"path": "src/utils/use-element-size.ts",
|
|
660
654
|
"type": "utils"
|
|
@@ -665,30 +659,17 @@
|
|
|
665
659
|
"name": "multicomplete",
|
|
666
660
|
"title": "Multicomplete",
|
|
667
661
|
"description": "A multi-select with search filtering, colored chips, matchSorter filtering, custom rendering, form validation integration, and accessible labeling.",
|
|
662
|
+
"dependencies": [
|
|
663
|
+
"tw",
|
|
664
|
+
"animated-popover",
|
|
665
|
+
"form-field",
|
|
666
|
+
"colors",
|
|
667
|
+
"icon"
|
|
668
|
+
],
|
|
668
669
|
"files": [
|
|
669
670
|
{
|
|
670
671
|
"path": "src/components/multicomplete.tsx",
|
|
671
672
|
"type": "components"
|
|
672
|
-
},
|
|
673
|
-
{
|
|
674
|
-
"path": "src/components/icon.tsx",
|
|
675
|
-
"type": "components"
|
|
676
|
-
},
|
|
677
|
-
{
|
|
678
|
-
"path": "src/components/helpers/animated-popover.tsx",
|
|
679
|
-
"type": "components/helpers"
|
|
680
|
-
},
|
|
681
|
-
{
|
|
682
|
-
"path": "src/components/helpers/form-field.tsx",
|
|
683
|
-
"type": "components/helpers"
|
|
684
|
-
},
|
|
685
|
-
{
|
|
686
|
-
"path": "src/utils/colors.ts",
|
|
687
|
-
"type": "utils"
|
|
688
|
-
},
|
|
689
|
-
{
|
|
690
|
-
"path": "src/utils/tw.ts",
|
|
691
|
-
"type": "utils"
|
|
692
673
|
}
|
|
693
674
|
]
|
|
694
675
|
},
|
|
@@ -696,26 +677,16 @@
|
|
|
696
677
|
"name": "multisuggest",
|
|
697
678
|
"title": "Multisuggest",
|
|
698
679
|
"description": "A multi-select autocomplete with suggestions that allows adding custom values not in the options list, chip display, matchSorter filtering, form validation integration, and accessible labeling.",
|
|
680
|
+
"dependencies": [
|
|
681
|
+
"tw",
|
|
682
|
+
"animated-popover",
|
|
683
|
+
"form-field",
|
|
684
|
+
"icon"
|
|
685
|
+
],
|
|
699
686
|
"files": [
|
|
700
687
|
{
|
|
701
688
|
"path": "src/components/multisuggest.tsx",
|
|
702
689
|
"type": "components"
|
|
703
|
-
},
|
|
704
|
-
{
|
|
705
|
-
"path": "src/components/icon.tsx",
|
|
706
|
-
"type": "components"
|
|
707
|
-
},
|
|
708
|
-
{
|
|
709
|
-
"path": "src/components/helpers/animated-popover.tsx",
|
|
710
|
-
"type": "components/helpers"
|
|
711
|
-
},
|
|
712
|
-
{
|
|
713
|
-
"path": "src/components/helpers/form-field.tsx",
|
|
714
|
-
"type": "components/helpers"
|
|
715
|
-
},
|
|
716
|
-
{
|
|
717
|
-
"path": "src/utils/tw.ts",
|
|
718
|
-
"type": "utils"
|
|
719
690
|
}
|
|
720
691
|
]
|
|
721
692
|
},
|
|
@@ -723,22 +694,15 @@
|
|
|
723
694
|
"name": "checkbox",
|
|
724
695
|
"title": "Checkbox",
|
|
725
696
|
"description": "A single checkbox with plain and labeled variants, indeterminate state support, form validation integration, and accessible keyboard navigation.",
|
|
697
|
+
"dependencies": [
|
|
698
|
+
"tw",
|
|
699
|
+
"form-field",
|
|
700
|
+
"icon"
|
|
701
|
+
],
|
|
726
702
|
"files": [
|
|
727
703
|
{
|
|
728
704
|
"path": "src/components/checkbox.tsx",
|
|
729
705
|
"type": "components"
|
|
730
|
-
},
|
|
731
|
-
{
|
|
732
|
-
"path": "src/components/icon.tsx",
|
|
733
|
-
"type": "components"
|
|
734
|
-
},
|
|
735
|
-
{
|
|
736
|
-
"path": "src/components/helpers/form-field.tsx",
|
|
737
|
-
"type": "components/helpers"
|
|
738
|
-
},
|
|
739
|
-
{
|
|
740
|
-
"path": "src/utils/tw.ts",
|
|
741
|
-
"type": "utils"
|
|
742
706
|
}
|
|
743
707
|
]
|
|
744
708
|
},
|
|
@@ -746,26 +710,16 @@
|
|
|
746
710
|
"name": "checkbox-group",
|
|
747
711
|
"title": "Checkbox Group",
|
|
748
712
|
"description": "A group of checkboxes with select all, min/max selection constraints, horizontal/vertical orientation, form validation integration, and accessible labeling.",
|
|
713
|
+
"dependencies": [
|
|
714
|
+
"tw",
|
|
715
|
+
"form-field",
|
|
716
|
+
"icon",
|
|
717
|
+
"checkbox"
|
|
718
|
+
],
|
|
749
719
|
"files": [
|
|
750
720
|
{
|
|
751
721
|
"path": "src/components/checkbox-group.tsx",
|
|
752
722
|
"type": "components"
|
|
753
|
-
},
|
|
754
|
-
{
|
|
755
|
-
"path": "src/components/checkbox.tsx",
|
|
756
|
-
"type": "components"
|
|
757
|
-
},
|
|
758
|
-
{
|
|
759
|
-
"path": "src/components/icon.tsx",
|
|
760
|
-
"type": "components"
|
|
761
|
-
},
|
|
762
|
-
{
|
|
763
|
-
"path": "src/components/helpers/form-field.tsx",
|
|
764
|
-
"type": "components/helpers"
|
|
765
|
-
},
|
|
766
|
-
{
|
|
767
|
-
"path": "src/utils/tw.ts",
|
|
768
|
-
"type": "utils"
|
|
769
723
|
}
|
|
770
724
|
]
|
|
771
725
|
},
|
|
@@ -773,14 +727,13 @@
|
|
|
773
727
|
"name": "radio",
|
|
774
728
|
"title": "Radio",
|
|
775
729
|
"description": "A single radio option with plain and labeled variants, optional description text, and accessible keyboard navigation.",
|
|
730
|
+
"dependencies": [
|
|
731
|
+
"tw"
|
|
732
|
+
],
|
|
776
733
|
"files": [
|
|
777
734
|
{
|
|
778
735
|
"path": "src/components/radio.tsx",
|
|
779
736
|
"type": "components"
|
|
780
|
-
},
|
|
781
|
-
{
|
|
782
|
-
"path": "src/utils/tw.ts",
|
|
783
|
-
"type": "utils"
|
|
784
737
|
}
|
|
785
738
|
]
|
|
786
739
|
},
|
|
@@ -788,18 +741,14 @@
|
|
|
788
741
|
"name": "radio-group",
|
|
789
742
|
"title": "Radio Group",
|
|
790
743
|
"description": "A mutually exclusive radio group with horizontal/vertical/grid orientation, form validation integration, and accessible labeling.",
|
|
744
|
+
"dependencies": [
|
|
745
|
+
"tw",
|
|
746
|
+
"form-field"
|
|
747
|
+
],
|
|
791
748
|
"files": [
|
|
792
749
|
{
|
|
793
750
|
"path": "src/components/radio-group.tsx",
|
|
794
751
|
"type": "components"
|
|
795
|
-
},
|
|
796
|
-
{
|
|
797
|
-
"path": "src/components/helpers/form-field.tsx",
|
|
798
|
-
"type": "components/helpers"
|
|
799
|
-
},
|
|
800
|
-
{
|
|
801
|
-
"path": "src/utils/tw.ts",
|
|
802
|
-
"type": "utils"
|
|
803
752
|
}
|
|
804
753
|
]
|
|
805
754
|
},
|
|
@@ -807,18 +756,14 @@
|
|
|
807
756
|
"name": "switch",
|
|
808
757
|
"title": "Switch",
|
|
809
758
|
"description": "A boolean toggle switch with plain and labeled variants, description text, label positioning, form validation integration, and accessible keyboard navigation.",
|
|
759
|
+
"dependencies": [
|
|
760
|
+
"tw",
|
|
761
|
+
"form-field"
|
|
762
|
+
],
|
|
810
763
|
"files": [
|
|
811
764
|
{
|
|
812
765
|
"path": "src/components/switch.tsx",
|
|
813
766
|
"type": "components"
|
|
814
|
-
},
|
|
815
|
-
{
|
|
816
|
-
"path": "src/components/helpers/form-field.tsx",
|
|
817
|
-
"type": "components/helpers"
|
|
818
|
-
},
|
|
819
|
-
{
|
|
820
|
-
"path": "src/utils/tw.ts",
|
|
821
|
-
"type": "utils"
|
|
822
767
|
}
|
|
823
768
|
]
|
|
824
769
|
},
|
|
@@ -826,34 +771,18 @@
|
|
|
826
771
|
"name": "file-input",
|
|
827
772
|
"title": "File Input",
|
|
828
773
|
"description": "A single file upload with drag-and-drop zone, file type and size validation, custom preview rendering, form validation integration, and accessible labeling.",
|
|
774
|
+
"dependencies": [
|
|
775
|
+
"tw",
|
|
776
|
+
"form-field",
|
|
777
|
+
"compose-refs",
|
|
778
|
+
"file-input-utils",
|
|
779
|
+
"icon",
|
|
780
|
+
"headless-file-input"
|
|
781
|
+
],
|
|
829
782
|
"files": [
|
|
830
783
|
{
|
|
831
784
|
"path": "src/components/file-input.tsx",
|
|
832
785
|
"type": "components"
|
|
833
|
-
},
|
|
834
|
-
{
|
|
835
|
-
"path": "src/components/headless-file-input.tsx",
|
|
836
|
-
"type": "components"
|
|
837
|
-
},
|
|
838
|
-
{
|
|
839
|
-
"path": "src/components/icon.tsx",
|
|
840
|
-
"type": "components"
|
|
841
|
-
},
|
|
842
|
-
{
|
|
843
|
-
"path": "src/components/helpers/form-field.tsx",
|
|
844
|
-
"type": "components/helpers"
|
|
845
|
-
},
|
|
846
|
-
{
|
|
847
|
-
"path": "src/utils/compose-refs.ts",
|
|
848
|
-
"type": "utils"
|
|
849
|
-
},
|
|
850
|
-
{
|
|
851
|
-
"path": "src/utils/file-input.ts",
|
|
852
|
-
"type": "utils"
|
|
853
|
-
},
|
|
854
|
-
{
|
|
855
|
-
"path": "src/utils/tw.ts",
|
|
856
|
-
"type": "utils"
|
|
857
786
|
}
|
|
858
787
|
]
|
|
859
788
|
},
|
|
@@ -861,34 +790,18 @@
|
|
|
861
790
|
"name": "multi-file-input",
|
|
862
791
|
"title": "Multi File Input",
|
|
863
792
|
"description": "A multi-file upload with drag-and-drop zone, file list display, per-file type and size validation, max file count, form validation integration, and accessible labeling.",
|
|
793
|
+
"dependencies": [
|
|
794
|
+
"tw",
|
|
795
|
+
"form-field",
|
|
796
|
+
"compose-refs",
|
|
797
|
+
"file-input-utils",
|
|
798
|
+
"icon",
|
|
799
|
+
"headless-file-input"
|
|
800
|
+
],
|
|
864
801
|
"files": [
|
|
865
802
|
{
|
|
866
803
|
"path": "src/components/multi-file-input.tsx",
|
|
867
804
|
"type": "components"
|
|
868
|
-
},
|
|
869
|
-
{
|
|
870
|
-
"path": "src/components/headless-file-input.tsx",
|
|
871
|
-
"type": "components"
|
|
872
|
-
},
|
|
873
|
-
{
|
|
874
|
-
"path": "src/components/icon.tsx",
|
|
875
|
-
"type": "components"
|
|
876
|
-
},
|
|
877
|
-
{
|
|
878
|
-
"path": "src/components/helpers/form-field.tsx",
|
|
879
|
-
"type": "components/helpers"
|
|
880
|
-
},
|
|
881
|
-
{
|
|
882
|
-
"path": "src/utils/compose-refs.ts",
|
|
883
|
-
"type": "utils"
|
|
884
|
-
},
|
|
885
|
-
{
|
|
886
|
-
"path": "src/utils/file-input.ts",
|
|
887
|
-
"type": "utils"
|
|
888
|
-
},
|
|
889
|
-
{
|
|
890
|
-
"path": "src/utils/tw.ts",
|
|
891
|
-
"type": "utils"
|
|
892
805
|
}
|
|
893
806
|
]
|
|
894
807
|
},
|
|
@@ -896,34 +809,18 @@
|
|
|
896
809
|
"name": "image-input",
|
|
897
810
|
"title": "Image Input",
|
|
898
811
|
"description": "A single image upload with drag-and-drop zone, image preview with gradient overlay, file type and size validation, custom preview rendering, form validation integration, and accessible labeling.",
|
|
812
|
+
"dependencies": [
|
|
813
|
+
"tw",
|
|
814
|
+
"form-field",
|
|
815
|
+
"compose-refs",
|
|
816
|
+
"file-input-utils",
|
|
817
|
+
"icon",
|
|
818
|
+
"headless-file-input"
|
|
819
|
+
],
|
|
899
820
|
"files": [
|
|
900
821
|
{
|
|
901
822
|
"path": "src/components/image-input.tsx",
|
|
902
823
|
"type": "components"
|
|
903
|
-
},
|
|
904
|
-
{
|
|
905
|
-
"path": "src/components/headless-file-input.tsx",
|
|
906
|
-
"type": "components"
|
|
907
|
-
},
|
|
908
|
-
{
|
|
909
|
-
"path": "src/components/icon.tsx",
|
|
910
|
-
"type": "components"
|
|
911
|
-
},
|
|
912
|
-
{
|
|
913
|
-
"path": "src/components/helpers/form-field.tsx",
|
|
914
|
-
"type": "components/helpers"
|
|
915
|
-
},
|
|
916
|
-
{
|
|
917
|
-
"path": "src/utils/compose-refs.ts",
|
|
918
|
-
"type": "utils"
|
|
919
|
-
},
|
|
920
|
-
{
|
|
921
|
-
"path": "src/utils/file-input.ts",
|
|
922
|
-
"type": "utils"
|
|
923
|
-
},
|
|
924
|
-
{
|
|
925
|
-
"path": "src/utils/tw.ts",
|
|
926
|
-
"type": "utils"
|
|
927
824
|
}
|
|
928
825
|
]
|
|
929
826
|
},
|
|
@@ -931,81 +828,40 @@
|
|
|
931
828
|
"name": "multi-image-input",
|
|
932
829
|
"title": "Multi Image Input",
|
|
933
830
|
"description": "A multi-image upload with grid display, drag-and-drop, optional reordering, per-image type and size validation, max image count, custom preview rendering, form validation integration, and accessible labeling.",
|
|
831
|
+
"dependencies": [
|
|
832
|
+
"tw",
|
|
833
|
+
"form-field",
|
|
834
|
+
"compose-refs",
|
|
835
|
+
"file-input-utils",
|
|
836
|
+
"icon",
|
|
837
|
+
"headless-file-input"
|
|
838
|
+
],
|
|
934
839
|
"files": [
|
|
935
840
|
{
|
|
936
841
|
"path": "src/components/multi-image-input.tsx",
|
|
937
|
-
"type": "components"
|
|
938
|
-
}
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
"type": "utils"
|
|
958
|
-
},
|
|
959
|
-
{
|
|
960
|
-
"path": "src/utils/tw.ts",
|
|
961
|
-
"type": "utils"
|
|
962
|
-
}
|
|
963
|
-
]
|
|
964
|
-
},
|
|
965
|
-
{
|
|
966
|
-
"name": "pdf-input",
|
|
967
|
-
"title": "PDF Input",
|
|
968
|
-
"description": "A single PDF upload with drag-and-drop zone, PDF preview using the Pdf component, file size validation, custom preview rendering, form validation integration, and accessible labeling.",
|
|
969
|
-
"files": [
|
|
970
|
-
{
|
|
971
|
-
"path": "src/components/pdf-input.tsx",
|
|
972
|
-
"type": "components"
|
|
973
|
-
},
|
|
974
|
-
{
|
|
975
|
-
"path": "src/components/headless-file-input.tsx",
|
|
976
|
-
"type": "components"
|
|
977
|
-
},
|
|
978
|
-
{
|
|
979
|
-
"path": "src/components/icon.tsx",
|
|
980
|
-
"type": "components"
|
|
981
|
-
},
|
|
982
|
-
{
|
|
983
|
-
"path": "src/components/pdf.tsx",
|
|
984
|
-
"type": "components"
|
|
985
|
-
},
|
|
986
|
-
{
|
|
987
|
-
"path": "src/components/helpers/form-field.tsx",
|
|
988
|
-
"type": "components/helpers"
|
|
989
|
-
},
|
|
990
|
-
{
|
|
991
|
-
"path": "src/utils/compose-refs.ts",
|
|
992
|
-
"type": "utils"
|
|
993
|
-
},
|
|
994
|
-
{
|
|
995
|
-
"path": "src/utils/file-input.ts",
|
|
996
|
-
"type": "utils"
|
|
997
|
-
},
|
|
998
|
-
{
|
|
999
|
-
"path": "src/utils/tw.ts",
|
|
1000
|
-
"type": "utils"
|
|
1001
|
-
},
|
|
1002
|
-
{
|
|
1003
|
-
"path": "src/utils/use-pagination.ts",
|
|
1004
|
-
"type": "utils"
|
|
1005
|
-
},
|
|
842
|
+
"type": "components"
|
|
843
|
+
}
|
|
844
|
+
]
|
|
845
|
+
},
|
|
846
|
+
{
|
|
847
|
+
"name": "pdf-input",
|
|
848
|
+
"title": "PDF Input",
|
|
849
|
+
"description": "A single PDF upload with drag-and-drop zone, PDF preview using the Pdf component, file size validation, custom preview rendering, form validation integration, and accessible labeling.",
|
|
850
|
+
"dependencies": [
|
|
851
|
+
"tw",
|
|
852
|
+
"form-field",
|
|
853
|
+
"compose-refs",
|
|
854
|
+
"file-input-utils",
|
|
855
|
+
"pdf-dist",
|
|
856
|
+
"icon",
|
|
857
|
+
"headless-file-input",
|
|
858
|
+
"pdf",
|
|
859
|
+
"use-pagination"
|
|
860
|
+
],
|
|
861
|
+
"files": [
|
|
1006
862
|
{
|
|
1007
|
-
"path": "src/components/
|
|
1008
|
-
"type": "components
|
|
863
|
+
"path": "src/components/pdf-input.tsx",
|
|
864
|
+
"type": "components"
|
|
1009
865
|
}
|
|
1010
866
|
]
|
|
1011
867
|
},
|
|
@@ -1013,30 +869,17 @@
|
|
|
1013
869
|
"name": "dialog",
|
|
1014
870
|
"title": "Dialog",
|
|
1015
871
|
"description": "A centered modal dialog with size variants, animated entry/exit, close button, and accessible keyboard navigation.",
|
|
872
|
+
"dependencies": [
|
|
873
|
+
"tw",
|
|
874
|
+
"headless-button",
|
|
875
|
+
"compose-refs",
|
|
876
|
+
"use-render-props",
|
|
877
|
+
"icon"
|
|
878
|
+
],
|
|
1016
879
|
"files": [
|
|
1017
880
|
{
|
|
1018
881
|
"path": "src/components/dialog.tsx",
|
|
1019
882
|
"type": "components"
|
|
1020
|
-
},
|
|
1021
|
-
{
|
|
1022
|
-
"path": "src/components/icon.tsx",
|
|
1023
|
-
"type": "components"
|
|
1024
|
-
},
|
|
1025
|
-
{
|
|
1026
|
-
"path": "src/components/helpers/headless-button.tsx",
|
|
1027
|
-
"type": "components/helpers"
|
|
1028
|
-
},
|
|
1029
|
-
{
|
|
1030
|
-
"path": "src/utils/compose-refs.ts",
|
|
1031
|
-
"type": "utils"
|
|
1032
|
-
},
|
|
1033
|
-
{
|
|
1034
|
-
"path": "src/utils/tw.ts",
|
|
1035
|
-
"type": "utils"
|
|
1036
|
-
},
|
|
1037
|
-
{
|
|
1038
|
-
"path": "src/utils/use-render-props.ts",
|
|
1039
|
-
"type": "utils"
|
|
1040
883
|
}
|
|
1041
884
|
]
|
|
1042
885
|
},
|
|
@@ -1044,30 +887,17 @@
|
|
|
1044
887
|
"name": "drawer",
|
|
1045
888
|
"title": "Drawer",
|
|
1046
889
|
"description": "A slide-out drawer built on vaul with left/right/top/bottom positioning, drag-to-dismiss, size variants, actions slot, and close button.",
|
|
890
|
+
"dependencies": [
|
|
891
|
+
"tw",
|
|
892
|
+
"headless-button",
|
|
893
|
+
"compose-refs",
|
|
894
|
+
"use-render-props",
|
|
895
|
+
"icon"
|
|
896
|
+
],
|
|
1047
897
|
"files": [
|
|
1048
898
|
{
|
|
1049
899
|
"path": "src/components/drawer.tsx",
|
|
1050
900
|
"type": "components"
|
|
1051
|
-
},
|
|
1052
|
-
{
|
|
1053
|
-
"path": "src/components/icon.tsx",
|
|
1054
|
-
"type": "components"
|
|
1055
|
-
},
|
|
1056
|
-
{
|
|
1057
|
-
"path": "src/components/helpers/headless-button.tsx",
|
|
1058
|
-
"type": "components/helpers"
|
|
1059
|
-
},
|
|
1060
|
-
{
|
|
1061
|
-
"path": "src/utils/compose-refs.ts",
|
|
1062
|
-
"type": "utils"
|
|
1063
|
-
},
|
|
1064
|
-
{
|
|
1065
|
-
"path": "src/utils/tw.ts",
|
|
1066
|
-
"type": "utils"
|
|
1067
|
-
},
|
|
1068
|
-
{
|
|
1069
|
-
"path": "src/utils/use-render-props.ts",
|
|
1070
|
-
"type": "utils"
|
|
1071
901
|
}
|
|
1072
902
|
]
|
|
1073
903
|
},
|
|
@@ -1075,62 +905,25 @@
|
|
|
1075
905
|
"name": "alert-dialog",
|
|
1076
906
|
"title": "Alert Dialog",
|
|
1077
907
|
"description": "An alert modal with 5 variants (info/positive/warning/negative/notice), icon display, animated entry/exit, cancel button, and accessible keyboard navigation.",
|
|
908
|
+
"dependencies": [
|
|
909
|
+
"tw",
|
|
910
|
+
"spinner",
|
|
911
|
+
"button-context",
|
|
912
|
+
"get-button-classes",
|
|
913
|
+
"headless-button",
|
|
914
|
+
"compose-refs",
|
|
915
|
+
"use-prevent-default",
|
|
916
|
+
"use-render-props",
|
|
917
|
+
"use-spin-delay",
|
|
918
|
+
"use-stable-accessor",
|
|
919
|
+
"icon",
|
|
920
|
+
"button-group",
|
|
921
|
+
"button"
|
|
922
|
+
],
|
|
1078
923
|
"files": [
|
|
1079
924
|
{
|
|
1080
925
|
"path": "src/components/alert-dialog.tsx",
|
|
1081
926
|
"type": "components"
|
|
1082
|
-
},
|
|
1083
|
-
{
|
|
1084
|
-
"path": "src/components/button-group.tsx",
|
|
1085
|
-
"type": "components"
|
|
1086
|
-
},
|
|
1087
|
-
{
|
|
1088
|
-
"path": "src/components/button.tsx",
|
|
1089
|
-
"type": "components"
|
|
1090
|
-
},
|
|
1091
|
-
{
|
|
1092
|
-
"path": "src/components/icon.tsx",
|
|
1093
|
-
"type": "components"
|
|
1094
|
-
},
|
|
1095
|
-
{
|
|
1096
|
-
"path": "src/components/spinner.tsx",
|
|
1097
|
-
"type": "components"
|
|
1098
|
-
},
|
|
1099
|
-
{
|
|
1100
|
-
"path": "src/components/helpers/button-context.ts",
|
|
1101
|
-
"type": "components/helpers"
|
|
1102
|
-
},
|
|
1103
|
-
{
|
|
1104
|
-
"path": "src/components/helpers/get-button-classes.ts",
|
|
1105
|
-
"type": "components/helpers"
|
|
1106
|
-
},
|
|
1107
|
-
{
|
|
1108
|
-
"path": "src/components/helpers/headless-button.tsx",
|
|
1109
|
-
"type": "components/helpers"
|
|
1110
|
-
},
|
|
1111
|
-
{
|
|
1112
|
-
"path": "src/utils/compose-refs.ts",
|
|
1113
|
-
"type": "utils"
|
|
1114
|
-
},
|
|
1115
|
-
{
|
|
1116
|
-
"path": "src/utils/tw.ts",
|
|
1117
|
-
"type": "utils"
|
|
1118
|
-
},
|
|
1119
|
-
{
|
|
1120
|
-
"path": "src/utils/use-prevent-default.ts",
|
|
1121
|
-
"type": "utils"
|
|
1122
|
-
},
|
|
1123
|
-
{
|
|
1124
|
-
"path": "src/utils/use-render-props.ts",
|
|
1125
|
-
"type": "utils"
|
|
1126
|
-
},
|
|
1127
|
-
{
|
|
1128
|
-
"path": "src/utils/use-spin-delay.ts",
|
|
1129
|
-
"type": "utils"
|
|
1130
|
-
},
|
|
1131
|
-
{
|
|
1132
|
-
"path": "src/utils/use-stable-accessor.ts",
|
|
1133
|
-
"type": "utils"
|
|
1134
927
|
}
|
|
1135
928
|
]
|
|
1136
929
|
},
|
|
@@ -1138,18 +931,14 @@
|
|
|
1138
931
|
"name": "menu",
|
|
1139
932
|
"title": "Menu",
|
|
1140
933
|
"description": "A dropdown menu with keyboard navigation, groups, link items, separator support, and accessible ARIA attributes.",
|
|
934
|
+
"dependencies": [
|
|
935
|
+
"tw",
|
|
936
|
+
"animated-popover"
|
|
937
|
+
],
|
|
1141
938
|
"files": [
|
|
1142
939
|
{
|
|
1143
940
|
"path": "src/components/menu.tsx",
|
|
1144
941
|
"type": "components"
|
|
1145
|
-
},
|
|
1146
|
-
{
|
|
1147
|
-
"path": "src/components/helpers/animated-popover.tsx",
|
|
1148
|
-
"type": "components/helpers"
|
|
1149
|
-
},
|
|
1150
|
-
{
|
|
1151
|
-
"path": "src/utils/tw.ts",
|
|
1152
|
-
"type": "utils"
|
|
1153
942
|
}
|
|
1154
943
|
]
|
|
1155
944
|
},
|
|
@@ -1157,18 +946,14 @@
|
|
|
1157
946
|
"name": "tabs",
|
|
1158
947
|
"title": "Tabs",
|
|
1159
948
|
"description": "A tab group with animated underline indicator, color variants (blue/forest/sand/dune), keyboard navigation, and accessible ARIA attributes.",
|
|
949
|
+
"dependencies": [
|
|
950
|
+
"tw",
|
|
951
|
+
"use-tab-indicator"
|
|
952
|
+
],
|
|
1160
953
|
"files": [
|
|
1161
954
|
{
|
|
1162
955
|
"path": "src/components/tabs.tsx",
|
|
1163
956
|
"type": "components"
|
|
1164
|
-
},
|
|
1165
|
-
{
|
|
1166
|
-
"path": "src/utils/tw.ts",
|
|
1167
|
-
"type": "utils"
|
|
1168
|
-
},
|
|
1169
|
-
{
|
|
1170
|
-
"path": "src/utils/use-tab-indicator.ts",
|
|
1171
|
-
"type": "utils"
|
|
1172
957
|
}
|
|
1173
958
|
]
|
|
1174
959
|
},
|
|
@@ -1176,18 +961,14 @@
|
|
|
1176
961
|
"name": "link-tabs",
|
|
1177
962
|
"title": "Link Tabs",
|
|
1178
963
|
"description": "Router-based tab navigation with animated underline indicator, color variants (blue/forest/sand/dune), and accessible ARIA attributes.",
|
|
964
|
+
"dependencies": [
|
|
965
|
+
"tw",
|
|
966
|
+
"use-tab-indicator"
|
|
967
|
+
],
|
|
1179
968
|
"files": [
|
|
1180
969
|
{
|
|
1181
970
|
"path": "src/components/link-tabs.tsx",
|
|
1182
971
|
"type": "components"
|
|
1183
|
-
},
|
|
1184
|
-
{
|
|
1185
|
-
"path": "src/utils/tw.ts",
|
|
1186
|
-
"type": "utils"
|
|
1187
|
-
},
|
|
1188
|
-
{
|
|
1189
|
-
"path": "src/utils/use-tab-indicator.ts",
|
|
1190
|
-
"type": "utils"
|
|
1191
972
|
}
|
|
1192
973
|
]
|
|
1193
974
|
},
|
|
@@ -1195,18 +976,14 @@
|
|
|
1195
976
|
"name": "stepper",
|
|
1196
977
|
"title": "Stepper",
|
|
1197
978
|
"description": "A step indicator with horizontal/vertical orientation, error/completed states, connecting lines, and accessible progress semantics.",
|
|
979
|
+
"dependencies": [
|
|
980
|
+
"tw",
|
|
981
|
+
"icon"
|
|
982
|
+
],
|
|
1198
983
|
"files": [
|
|
1199
984
|
{
|
|
1200
985
|
"path": "src/components/stepper.tsx",
|
|
1201
986
|
"type": "components"
|
|
1202
|
-
},
|
|
1203
|
-
{
|
|
1204
|
-
"path": "src/components/icon.tsx",
|
|
1205
|
-
"type": "components"
|
|
1206
|
-
},
|
|
1207
|
-
{
|
|
1208
|
-
"path": "src/utils/tw.ts",
|
|
1209
|
-
"type": "utils"
|
|
1210
987
|
}
|
|
1211
988
|
]
|
|
1212
989
|
},
|
|
@@ -1214,14 +991,13 @@
|
|
|
1214
991
|
"name": "avatar",
|
|
1215
992
|
"title": "Avatar",
|
|
1216
993
|
"description": "A user profile image with initials fallback, shape variants (circle/rounded/square), and error handling for broken image sources.",
|
|
994
|
+
"dependencies": [
|
|
995
|
+
"tw"
|
|
996
|
+
],
|
|
1217
997
|
"files": [
|
|
1218
998
|
{
|
|
1219
999
|
"path": "src/components/avatar.tsx",
|
|
1220
1000
|
"type": "components"
|
|
1221
|
-
},
|
|
1222
|
-
{
|
|
1223
|
-
"path": "src/utils/tw.ts",
|
|
1224
|
-
"type": "utils"
|
|
1225
1001
|
}
|
|
1226
1002
|
]
|
|
1227
1003
|
},
|
|
@@ -1229,18 +1005,14 @@
|
|
|
1229
1005
|
"name": "chip",
|
|
1230
1006
|
"title": "Chip",
|
|
1231
1007
|
"description": "An inline badge with optional remove button, color variants, size options, light/dark color modes, and a clickable ChipButton variant.",
|
|
1008
|
+
"dependencies": [
|
|
1009
|
+
"tw",
|
|
1010
|
+
"icon"
|
|
1011
|
+
],
|
|
1232
1012
|
"files": [
|
|
1233
1013
|
{
|
|
1234
1014
|
"path": "src/components/chip.tsx",
|
|
1235
1015
|
"type": "components"
|
|
1236
|
-
},
|
|
1237
|
-
{
|
|
1238
|
-
"path": "src/components/icon.tsx",
|
|
1239
|
-
"type": "components"
|
|
1240
|
-
},
|
|
1241
|
-
{
|
|
1242
|
-
"path": "src/utils/tw.ts",
|
|
1243
|
-
"type": "utils"
|
|
1244
1016
|
}
|
|
1245
1017
|
]
|
|
1246
1018
|
},
|
|
@@ -1248,30 +1020,20 @@
|
|
|
1248
1020
|
"name": "enum-chip",
|
|
1249
1021
|
"title": "Enum Chip",
|
|
1250
1022
|
"description": "A colored chip for enum values with automatic color assignment based on option index or string hash.",
|
|
1023
|
+
"dependencies": [
|
|
1024
|
+
"tw",
|
|
1025
|
+
"colors",
|
|
1026
|
+
"icon",
|
|
1027
|
+
"chip"
|
|
1028
|
+
],
|
|
1251
1029
|
"files": [
|
|
1252
1030
|
{
|
|
1253
1031
|
"path": "src/components/enum-chip.tsx",
|
|
1254
1032
|
"type": "components"
|
|
1255
1033
|
},
|
|
1256
|
-
{
|
|
1257
|
-
"path": "src/components/chip.tsx",
|
|
1258
|
-
"type": "components"
|
|
1259
|
-
},
|
|
1260
|
-
{
|
|
1261
|
-
"path": "src/components/icon.tsx",
|
|
1262
|
-
"type": "components"
|
|
1263
|
-
},
|
|
1264
|
-
{
|
|
1265
|
-
"path": "src/utils/colors.ts",
|
|
1266
|
-
"type": "utils"
|
|
1267
|
-
},
|
|
1268
1034
|
{
|
|
1269
1035
|
"path": "src/utils/enum-colors.ts",
|
|
1270
1036
|
"type": "utils"
|
|
1271
|
-
},
|
|
1272
|
-
{
|
|
1273
|
-
"path": "src/utils/tw.ts",
|
|
1274
|
-
"type": "utils"
|
|
1275
1037
|
}
|
|
1276
1038
|
]
|
|
1277
1039
|
},
|
|
@@ -1279,14 +1041,13 @@
|
|
|
1279
1041
|
"name": "img",
|
|
1280
1042
|
"title": "Img",
|
|
1281
1043
|
"description": "An image element with object-fit variants (cover, contain, fill, none, scale-down) and shape variants (rounded, rectangle, circle).",
|
|
1044
|
+
"dependencies": [
|
|
1045
|
+
"tw"
|
|
1046
|
+
],
|
|
1282
1047
|
"files": [
|
|
1283
1048
|
{
|
|
1284
1049
|
"path": "src/components/img.tsx",
|
|
1285
1050
|
"type": "components"
|
|
1286
|
-
},
|
|
1287
|
-
{
|
|
1288
|
-
"path": "src/utils/tw.ts",
|
|
1289
|
-
"type": "utils"
|
|
1290
1051
|
}
|
|
1291
1052
|
]
|
|
1292
1053
|
},
|
|
@@ -1294,14 +1055,13 @@
|
|
|
1294
1055
|
"name": "labeled-value",
|
|
1295
1056
|
"title": "Labeled Value",
|
|
1296
1057
|
"description": "A read-only display component with smart type detection for strings, numbers, booleans, dates, times, durations, and ranges, with configurable label orientation and alignment.",
|
|
1058
|
+
"dependencies": [
|
|
1059
|
+
"tw"
|
|
1060
|
+
],
|
|
1297
1061
|
"files": [
|
|
1298
1062
|
{
|
|
1299
1063
|
"path": "src/components/labeled-value.tsx",
|
|
1300
1064
|
"type": "components"
|
|
1301
|
-
},
|
|
1302
|
-
{
|
|
1303
|
-
"path": "src/utils/tw.ts",
|
|
1304
|
-
"type": "utils"
|
|
1305
1065
|
}
|
|
1306
1066
|
]
|
|
1307
1067
|
},
|
|
@@ -1309,18 +1069,14 @@
|
|
|
1309
1069
|
"name": "inline-alert",
|
|
1310
1070
|
"title": "Inline Alert",
|
|
1311
1071
|
"description": "An inline notification with 5 variants (info/positive/warning/negative/notice), default icons per variant, optional title, description, and actions slot.",
|
|
1072
|
+
"dependencies": [
|
|
1073
|
+
"tw",
|
|
1074
|
+
"icon"
|
|
1075
|
+
],
|
|
1312
1076
|
"files": [
|
|
1313
1077
|
{
|
|
1314
1078
|
"path": "src/components/inline-alert.tsx",
|
|
1315
1079
|
"type": "components"
|
|
1316
|
-
},
|
|
1317
|
-
{
|
|
1318
|
-
"path": "src/components/icon.tsx",
|
|
1319
|
-
"type": "components"
|
|
1320
|
-
},
|
|
1321
|
-
{
|
|
1322
|
-
"path": "src/utils/tw.ts",
|
|
1323
|
-
"type": "utils"
|
|
1324
1080
|
}
|
|
1325
1081
|
]
|
|
1326
1082
|
},
|
|
@@ -1328,26 +1084,16 @@
|
|
|
1328
1084
|
"name": "pdf",
|
|
1329
1085
|
"title": "Pdf",
|
|
1330
1086
|
"description": "A PDF viewer with canvas-based rendering via pdfjs-dist, pagination controls with page navigation, and responsive width handling.",
|
|
1087
|
+
"dependencies": [
|
|
1088
|
+
"tw",
|
|
1089
|
+
"pdf-dist",
|
|
1090
|
+
"icon",
|
|
1091
|
+
"use-pagination"
|
|
1092
|
+
],
|
|
1331
1093
|
"files": [
|
|
1332
1094
|
{
|
|
1333
1095
|
"path": "src/components/pdf.tsx",
|
|
1334
1096
|
"type": "components"
|
|
1335
|
-
},
|
|
1336
|
-
{
|
|
1337
|
-
"path": "src/components/icon.tsx",
|
|
1338
|
-
"type": "components"
|
|
1339
|
-
},
|
|
1340
|
-
{
|
|
1341
|
-
"path": "src/utils/tw.ts",
|
|
1342
|
-
"type": "utils"
|
|
1343
|
-
},
|
|
1344
|
-
{
|
|
1345
|
-
"path": "src/utils/use-pagination.ts",
|
|
1346
|
-
"type": "utils"
|
|
1347
|
-
},
|
|
1348
|
-
{
|
|
1349
|
-
"path": "src/components/helpers/pdf-dist.client.ts",
|
|
1350
|
-
"type": "components/helpers"
|
|
1351
1097
|
}
|
|
1352
1098
|
]
|
|
1353
1099
|
},
|
|
@@ -1355,14 +1101,13 @@
|
|
|
1355
1101
|
"name": "container",
|
|
1356
1102
|
"title": "Container",
|
|
1357
1103
|
"description": "A layout wrapper with padding, border, and elevation variants. Includes ContainerSection with label/actions header, and a plain Section component.",
|
|
1104
|
+
"dependencies": [
|
|
1105
|
+
"tw"
|
|
1106
|
+
],
|
|
1358
1107
|
"files": [
|
|
1359
1108
|
{
|
|
1360
1109
|
"path": "src/components/container.tsx",
|
|
1361
1110
|
"type": "components"
|
|
1362
|
-
},
|
|
1363
|
-
{
|
|
1364
|
-
"path": "src/utils/tw.ts",
|
|
1365
|
-
"type": "utils"
|
|
1366
1111
|
}
|
|
1367
1112
|
]
|
|
1368
1113
|
},
|
|
@@ -1370,22 +1115,15 @@
|
|
|
1370
1115
|
"name": "disclosure",
|
|
1371
1116
|
"title": "Disclosure",
|
|
1372
1117
|
"description": "A collapsible section with size variants, animated expand/collapse, chevron indicator, and accordion group support via React Aria.",
|
|
1118
|
+
"dependencies": [
|
|
1119
|
+
"tw",
|
|
1120
|
+
"icon",
|
|
1121
|
+
"container"
|
|
1122
|
+
],
|
|
1373
1123
|
"files": [
|
|
1374
1124
|
{
|
|
1375
1125
|
"path": "src/components/disclosure.tsx",
|
|
1376
1126
|
"type": "components"
|
|
1377
|
-
},
|
|
1378
|
-
{
|
|
1379
|
-
"path": "src/components/container.tsx",
|
|
1380
|
-
"type": "components"
|
|
1381
|
-
},
|
|
1382
|
-
{
|
|
1383
|
-
"path": "src/components/icon.tsx",
|
|
1384
|
-
"type": "components"
|
|
1385
|
-
},
|
|
1386
|
-
{
|
|
1387
|
-
"path": "src/utils/tw.ts",
|
|
1388
|
-
"type": "utils"
|
|
1389
1127
|
}
|
|
1390
1128
|
]
|
|
1391
1129
|
},
|
|
@@ -1415,29 +1153,99 @@
|
|
|
1415
1153
|
"name": "toast",
|
|
1416
1154
|
"title": "Toast",
|
|
1417
1155
|
"description": "A toast notification system with 5 variants (info/positive/warning/negative/notice), auto-dismiss timeout, close button, and slide-in animation. Includes ToastRegion (render once at app root) and showToast function.",
|
|
1156
|
+
"dependencies": [
|
|
1157
|
+
"tw",
|
|
1158
|
+
"headless-button",
|
|
1159
|
+
"compose-refs",
|
|
1160
|
+
"use-render-props",
|
|
1161
|
+
"icon"
|
|
1162
|
+
],
|
|
1418
1163
|
"files": [
|
|
1419
1164
|
{
|
|
1420
1165
|
"path": "src/components/toast.tsx",
|
|
1421
1166
|
"type": "components"
|
|
1167
|
+
}
|
|
1168
|
+
]
|
|
1169
|
+
},
|
|
1170
|
+
{
|
|
1171
|
+
"name": "table",
|
|
1172
|
+
"title": "Table",
|
|
1173
|
+
"description": "Composable data table with client-side and server-side modes, search, filtering, sorting, pagination, and row selection.",
|
|
1174
|
+
"files": [
|
|
1175
|
+
{
|
|
1176
|
+
"path": "src/components/table/index.tsx",
|
|
1177
|
+
"type": "components/table"
|
|
1422
1178
|
},
|
|
1423
1179
|
{
|
|
1424
|
-
"path": "src/components/
|
|
1425
|
-
"type": "components"
|
|
1180
|
+
"path": "src/components/table/table-types.ts",
|
|
1181
|
+
"type": "components/table"
|
|
1426
1182
|
},
|
|
1427
1183
|
{
|
|
1428
|
-
"path": "src/components/
|
|
1429
|
-
"type": "components/
|
|
1184
|
+
"path": "src/components/table/table-primitives.tsx",
|
|
1185
|
+
"type": "components/table"
|
|
1430
1186
|
},
|
|
1431
1187
|
{
|
|
1432
|
-
"path": "src/
|
|
1433
|
-
"type": "
|
|
1188
|
+
"path": "src/components/table/table-actions.tsx",
|
|
1189
|
+
"type": "components/table"
|
|
1434
1190
|
},
|
|
1435
1191
|
{
|
|
1436
|
-
"path": "src/
|
|
1437
|
-
"type": "
|
|
1192
|
+
"path": "src/components/table/table-container.tsx",
|
|
1193
|
+
"type": "components/table"
|
|
1438
1194
|
},
|
|
1439
1195
|
{
|
|
1440
|
-
"path": "src/
|
|
1196
|
+
"path": "src/components/table/table-toolbar.tsx",
|
|
1197
|
+
"type": "components/table"
|
|
1198
|
+
},
|
|
1199
|
+
{
|
|
1200
|
+
"path": "src/components/table/headless-templated-row-table.ts",
|
|
1201
|
+
"type": "components/table"
|
|
1202
|
+
},
|
|
1203
|
+
{
|
|
1204
|
+
"path": "src/components/table/use-client-table.ts",
|
|
1205
|
+
"type": "components/table"
|
|
1206
|
+
},
|
|
1207
|
+
{
|
|
1208
|
+
"path": "src/components/table/use-server-table.ts",
|
|
1209
|
+
"type": "components/table"
|
|
1210
|
+
},
|
|
1211
|
+
{
|
|
1212
|
+
"path": "src/components/table/server-table.ts",
|
|
1213
|
+
"type": "components/table"
|
|
1214
|
+
},
|
|
1215
|
+
{
|
|
1216
|
+
"path": "src/components/table/table-container.type-test.ts",
|
|
1217
|
+
"type": "components/table"
|
|
1218
|
+
},
|
|
1219
|
+
{
|
|
1220
|
+
"path": "src/components/table/use-client-table.type-test.ts",
|
|
1221
|
+
"type": "components/table"
|
|
1222
|
+
},
|
|
1223
|
+
{
|
|
1224
|
+
"path": "src/components/table/use-server-table.type-test.ts",
|
|
1225
|
+
"type": "components/table"
|
|
1226
|
+
},
|
|
1227
|
+
{
|
|
1228
|
+
"path": "src/components/table/table-filters/select-filter.tsx",
|
|
1229
|
+
"type": "components/table/table-filters"
|
|
1230
|
+
},
|
|
1231
|
+
{
|
|
1232
|
+
"path": "src/components/table/table-filters/sort.tsx",
|
|
1233
|
+
"type": "components/table/table-filters"
|
|
1234
|
+
},
|
|
1235
|
+
{
|
|
1236
|
+
"path": "src/components/table/table-filters/date-range-filter.tsx",
|
|
1237
|
+
"type": "components/table/table-filters"
|
|
1238
|
+
},
|
|
1239
|
+
{
|
|
1240
|
+
"path": "src/components/optional-link.tsx",
|
|
1241
|
+
"type": "components"
|
|
1242
|
+
},
|
|
1243
|
+
{
|
|
1244
|
+
"path": "src/components/date-range.tsx",
|
|
1245
|
+
"type": "components"
|
|
1246
|
+
},
|
|
1247
|
+
{
|
|
1248
|
+
"path": "src/utils/use-query-state.ts",
|
|
1441
1249
|
"type": "utils"
|
|
1442
1250
|
}
|
|
1443
1251
|
]
|