@smicolon/fasla-ui 0.2.3 → 0.2.4
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/package.json
CHANGED
|
@@ -53,7 +53,7 @@ export function TypewriterText({
|
|
|
53
53
|
return
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
let timeoutId:
|
|
56
|
+
let timeoutId: ReturnType<typeof setTimeout>
|
|
57
57
|
let charIndex = 0
|
|
58
58
|
setIsTyping(true)
|
|
59
59
|
|
|
@@ -156,7 +156,7 @@ export function TypewriterWords({
|
|
|
156
156
|
}
|
|
157
157
|
|
|
158
158
|
const currentWord = words[wordIndex] ?? ""
|
|
159
|
-
let timeoutId:
|
|
159
|
+
let timeoutId: ReturnType<typeof setTimeout>
|
|
160
160
|
|
|
161
161
|
if (!isDeleting) {
|
|
162
162
|
// Typing
|
package/registry.json
CHANGED
|
@@ -4,59 +4,74 @@
|
|
|
4
4
|
"homepage": "https://ui.smicolon.com",
|
|
5
5
|
"items": [
|
|
6
6
|
{
|
|
7
|
-
"name": "
|
|
7
|
+
"name": "animated-gradient",
|
|
8
8
|
"type": "registry:ui",
|
|
9
|
-
"title": "
|
|
10
|
-
"description": "
|
|
11
|
-
"dependencies": [
|
|
9
|
+
"title": "Animated Gradient",
|
|
10
|
+
"description": "Animated gradient background and text effects.",
|
|
11
|
+
"dependencies": [
|
|
12
|
+
"framer-motion"
|
|
13
|
+
],
|
|
12
14
|
"registryDependencies": [],
|
|
13
15
|
"files": [
|
|
14
16
|
{
|
|
15
|
-
"path": "registry/
|
|
17
|
+
"path": "registry/effects/animated-gradient/animated-gradient.tsx",
|
|
16
18
|
"type": "registry:ui",
|
|
17
|
-
"target": "components/ui/
|
|
19
|
+
"target": "components/ui/animated-gradient.tsx"
|
|
18
20
|
}
|
|
19
21
|
],
|
|
20
|
-
"categories": [
|
|
22
|
+
"categories": [
|
|
23
|
+
"effects",
|
|
24
|
+
"backgrounds"
|
|
25
|
+
]
|
|
21
26
|
},
|
|
22
27
|
{
|
|
23
|
-
"name": "
|
|
24
|
-
"type": "registry:
|
|
25
|
-
"title": "
|
|
26
|
-
"description": "
|
|
27
|
-
"dependencies": [
|
|
28
|
+
"name": "app-shell",
|
|
29
|
+
"type": "registry:block",
|
|
30
|
+
"title": "App Shell",
|
|
31
|
+
"description": "Application shell with sidebar, header, and content area.",
|
|
32
|
+
"dependencies": [],
|
|
28
33
|
"registryDependencies": [],
|
|
29
34
|
"files": [
|
|
30
35
|
{
|
|
31
|
-
"path": "registry/
|
|
32
|
-
"type": "registry:
|
|
33
|
-
"target": "components/
|
|
36
|
+
"path": "registry/blocks/app-shell/AppShell.tsx",
|
|
37
|
+
"type": "registry:block",
|
|
38
|
+
"target": "components/blocks/app-shell.tsx"
|
|
34
39
|
}
|
|
35
40
|
],
|
|
36
|
-
"categories": [
|
|
41
|
+
"categories": [
|
|
42
|
+
"layout",
|
|
43
|
+
"application"
|
|
44
|
+
]
|
|
37
45
|
},
|
|
38
46
|
{
|
|
39
|
-
"name": "
|
|
47
|
+
"name": "avatar",
|
|
40
48
|
"type": "registry:ui",
|
|
41
|
-
"title": "
|
|
42
|
-
"description": "
|
|
43
|
-
"dependencies": [
|
|
49
|
+
"title": "Avatar",
|
|
50
|
+
"description": "Represent users with images, fallback content, and grouping.",
|
|
51
|
+
"dependencies": [
|
|
52
|
+
"class-variance-authority"
|
|
53
|
+
],
|
|
44
54
|
"registryDependencies": [],
|
|
45
55
|
"files": [
|
|
46
56
|
{
|
|
47
|
-
"path": "registry/ui/
|
|
57
|
+
"path": "registry/ui/avatar/avatar.tsx",
|
|
48
58
|
"type": "registry:ui",
|
|
49
|
-
"target": "components/ui/
|
|
59
|
+
"target": "components/ui/avatar.tsx"
|
|
50
60
|
}
|
|
51
61
|
],
|
|
52
|
-
"categories": [
|
|
62
|
+
"categories": [
|
|
63
|
+
"primitives",
|
|
64
|
+
"data-display"
|
|
65
|
+
]
|
|
53
66
|
},
|
|
54
67
|
{
|
|
55
68
|
"name": "badge",
|
|
56
69
|
"type": "registry:ui",
|
|
57
70
|
"title": "Badge",
|
|
58
71
|
"description": "A badge component for status indicators with multiple variants.",
|
|
59
|
-
"dependencies": [
|
|
72
|
+
"dependencies": [
|
|
73
|
+
"class-variance-authority"
|
|
74
|
+
],
|
|
60
75
|
"registryDependencies": [],
|
|
61
76
|
"files": [
|
|
62
77
|
{
|
|
@@ -65,55 +80,129 @@
|
|
|
65
80
|
"target": "components/ui/badge.tsx"
|
|
66
81
|
}
|
|
67
82
|
],
|
|
68
|
-
"categories": [
|
|
83
|
+
"categories": [
|
|
84
|
+
"primitives",
|
|
85
|
+
"data-display"
|
|
86
|
+
]
|
|
69
87
|
},
|
|
70
88
|
{
|
|
71
|
-
"name": "
|
|
89
|
+
"name": "border-beam",
|
|
72
90
|
"type": "registry:ui",
|
|
73
|
-
"title": "
|
|
74
|
-
"description": "
|
|
91
|
+
"title": "Border Beam",
|
|
92
|
+
"description": "Animated border beam and glowing border effects.",
|
|
93
|
+
"dependencies": [
|
|
94
|
+
"framer-motion"
|
|
95
|
+
],
|
|
96
|
+
"registryDependencies": [],
|
|
97
|
+
"files": [
|
|
98
|
+
{
|
|
99
|
+
"path": "registry/effects/border-beam/border-beam.tsx",
|
|
100
|
+
"type": "registry:ui",
|
|
101
|
+
"target": "components/ui/border-beam.tsx"
|
|
102
|
+
}
|
|
103
|
+
],
|
|
104
|
+
"categories": [
|
|
105
|
+
"effects",
|
|
106
|
+
"borders"
|
|
107
|
+
]
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"name": "button",
|
|
111
|
+
"type": "registry:ui",
|
|
112
|
+
"title": "Button",
|
|
113
|
+
"description": "A button component with multiple variants, sizes, and loading state.",
|
|
114
|
+
"dependencies": [
|
|
115
|
+
"@radix-ui/react-slot",
|
|
116
|
+
"class-variance-authority"
|
|
117
|
+
],
|
|
118
|
+
"registryDependencies": [],
|
|
119
|
+
"files": [
|
|
120
|
+
{
|
|
121
|
+
"path": "registry/ui/button/button.tsx",
|
|
122
|
+
"type": "registry:ui",
|
|
123
|
+
"target": "components/ui/button.tsx"
|
|
124
|
+
}
|
|
125
|
+
],
|
|
126
|
+
"categories": [
|
|
127
|
+
"primitives",
|
|
128
|
+
"forms"
|
|
129
|
+
]
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"name": "card",
|
|
133
|
+
"type": "registry:ui",
|
|
134
|
+
"title": "Card",
|
|
135
|
+
"description": "A card component with header, content, and footer sections.",
|
|
75
136
|
"dependencies": [],
|
|
76
137
|
"registryDependencies": [],
|
|
77
138
|
"files": [
|
|
78
139
|
{
|
|
79
|
-
"path": "registry/ui/
|
|
140
|
+
"path": "registry/ui/card/card.tsx",
|
|
80
141
|
"type": "registry:ui",
|
|
81
|
-
"target": "components/ui/
|
|
142
|
+
"target": "components/ui/card.tsx"
|
|
82
143
|
}
|
|
83
144
|
],
|
|
84
|
-
"categories": [
|
|
145
|
+
"categories": [
|
|
146
|
+
"primitives",
|
|
147
|
+
"layout"
|
|
148
|
+
]
|
|
85
149
|
},
|
|
86
150
|
{
|
|
87
|
-
"name": "
|
|
88
|
-
"type": "registry:
|
|
89
|
-
"title": "
|
|
90
|
-
"description": "
|
|
151
|
+
"name": "checkbox",
|
|
152
|
+
"type": "registry:ui",
|
|
153
|
+
"title": "Checkbox",
|
|
154
|
+
"description": "An accessible checkbox for binary selections with controlled state.",
|
|
91
155
|
"dependencies": [],
|
|
92
156
|
"registryDependencies": [],
|
|
93
157
|
"files": [
|
|
94
158
|
{
|
|
95
|
-
"path": "registry/
|
|
96
|
-
"type": "registry:
|
|
97
|
-
"target": "components/
|
|
159
|
+
"path": "registry/ui/checkbox/checkbox.tsx",
|
|
160
|
+
"type": "registry:ui",
|
|
161
|
+
"target": "components/ui/checkbox.tsx"
|
|
98
162
|
}
|
|
99
163
|
],
|
|
100
|
-
"categories": [
|
|
164
|
+
"categories": [
|
|
165
|
+
"primitives",
|
|
166
|
+
"forms"
|
|
167
|
+
]
|
|
101
168
|
},
|
|
102
169
|
{
|
|
103
|
-
"name": "
|
|
170
|
+
"name": "combobox",
|
|
171
|
+
"type": "registry:ui",
|
|
172
|
+
"title": "Combobox",
|
|
173
|
+
"description": "A searchable combobox with single or multiple selection.",
|
|
174
|
+
"dependencies": [],
|
|
175
|
+
"registryDependencies": [],
|
|
176
|
+
"files": [
|
|
177
|
+
{
|
|
178
|
+
"path": "registry/ui/combobox/combobox.tsx",
|
|
179
|
+
"type": "registry:ui",
|
|
180
|
+
"target": "components/ui/combobox.tsx"
|
|
181
|
+
}
|
|
182
|
+
],
|
|
183
|
+
"categories": [
|
|
184
|
+
"primitives",
|
|
185
|
+
"forms"
|
|
186
|
+
]
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
"name": "data-table",
|
|
104
190
|
"type": "registry:block",
|
|
105
|
-
"title": "
|
|
106
|
-
"description": "
|
|
191
|
+
"title": "Data Table",
|
|
192
|
+
"description": "Data table with sorting, pagination, and custom cell rendering.",
|
|
107
193
|
"dependencies": [],
|
|
108
194
|
"registryDependencies": [],
|
|
109
195
|
"files": [
|
|
110
196
|
{
|
|
111
|
-
"path": "registry/blocks/
|
|
197
|
+
"path": "registry/blocks/data-table/DataTable.tsx",
|
|
112
198
|
"type": "registry:block",
|
|
113
|
-
"target": "components/blocks/
|
|
199
|
+
"target": "components/blocks/data-table.tsx"
|
|
114
200
|
}
|
|
115
201
|
],
|
|
116
|
-
"categories": [
|
|
202
|
+
"categories": [
|
|
203
|
+
"data-display",
|
|
204
|
+
"tables"
|
|
205
|
+
]
|
|
117
206
|
},
|
|
118
207
|
{
|
|
119
208
|
"name": "empty-state",
|
|
@@ -129,7 +218,10 @@
|
|
|
129
218
|
"target": "components/blocks/empty-state.tsx"
|
|
130
219
|
}
|
|
131
220
|
],
|
|
132
|
-
"categories": [
|
|
221
|
+
"categories": [
|
|
222
|
+
"feedback",
|
|
223
|
+
"data-display"
|
|
224
|
+
]
|
|
133
225
|
},
|
|
134
226
|
{
|
|
135
227
|
"name": "form-section",
|
|
@@ -145,30 +237,116 @@
|
|
|
145
237
|
"target": "components/blocks/form-section.tsx"
|
|
146
238
|
}
|
|
147
239
|
],
|
|
148
|
-
"categories": [
|
|
240
|
+
"categories": [
|
|
241
|
+
"forms",
|
|
242
|
+
"layout"
|
|
243
|
+
]
|
|
149
244
|
},
|
|
150
245
|
{
|
|
151
|
-
"name": "
|
|
246
|
+
"name": "glow-card",
|
|
247
|
+
"type": "registry:ui",
|
|
248
|
+
"title": "Glow Card",
|
|
249
|
+
"description": "Card with a cursor-following glow on hover.",
|
|
250
|
+
"dependencies": [],
|
|
251
|
+
"registryDependencies": [],
|
|
252
|
+
"files": [
|
|
253
|
+
{
|
|
254
|
+
"path": "registry/effects/glow-card/glow-card.tsx",
|
|
255
|
+
"type": "registry:ui",
|
|
256
|
+
"target": "components/ui/glow-card.tsx"
|
|
257
|
+
}
|
|
258
|
+
],
|
|
259
|
+
"categories": [
|
|
260
|
+
"effects",
|
|
261
|
+
"interactive"
|
|
262
|
+
]
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
"name": "input",
|
|
266
|
+
"type": "registry:ui",
|
|
267
|
+
"title": "Input",
|
|
268
|
+
"description": "An input component with variants for validation states and icon support.",
|
|
269
|
+
"dependencies": [
|
|
270
|
+
"class-variance-authority"
|
|
271
|
+
],
|
|
272
|
+
"registryDependencies": [],
|
|
273
|
+
"files": [
|
|
274
|
+
{
|
|
275
|
+
"path": "registry/ui/input/input.tsx",
|
|
276
|
+
"type": "registry:ui",
|
|
277
|
+
"target": "components/ui/input.tsx"
|
|
278
|
+
}
|
|
279
|
+
],
|
|
280
|
+
"categories": [
|
|
281
|
+
"primitives",
|
|
282
|
+
"forms"
|
|
283
|
+
]
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
"name": "navbar",
|
|
152
287
|
"type": "registry:block",
|
|
153
|
-
"title": "
|
|
154
|
-
"description": "
|
|
288
|
+
"title": "Navbar",
|
|
289
|
+
"description": "Responsive navigation bar with desktop links and mobile menu.",
|
|
155
290
|
"dependencies": [],
|
|
156
291
|
"registryDependencies": [],
|
|
157
292
|
"files": [
|
|
158
293
|
{
|
|
159
|
-
"path": "registry/blocks/
|
|
294
|
+
"path": "registry/blocks/navbar/Navbar.tsx",
|
|
160
295
|
"type": "registry:block",
|
|
161
|
-
"target": "components/blocks/
|
|
296
|
+
"target": "components/blocks/navbar.tsx"
|
|
297
|
+
}
|
|
298
|
+
],
|
|
299
|
+
"categories": [
|
|
300
|
+
"navigation",
|
|
301
|
+
"layout"
|
|
302
|
+
]
|
|
303
|
+
},
|
|
304
|
+
{
|
|
305
|
+
"name": "page-header",
|
|
306
|
+
"type": "registry:block",
|
|
307
|
+
"title": "Page Header",
|
|
308
|
+
"description": "Page header with title, breadcrumb, description, and actions.",
|
|
309
|
+
"dependencies": [],
|
|
310
|
+
"registryDependencies": [],
|
|
311
|
+
"files": [
|
|
312
|
+
{
|
|
313
|
+
"path": "registry/blocks/page-header/PageHeader.tsx",
|
|
314
|
+
"type": "registry:block",
|
|
315
|
+
"target": "components/blocks/page-header.tsx"
|
|
316
|
+
}
|
|
317
|
+
],
|
|
318
|
+
"categories": [
|
|
319
|
+
"layout",
|
|
320
|
+
"navigation"
|
|
321
|
+
]
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
"name": "select",
|
|
325
|
+
"type": "registry:ui",
|
|
326
|
+
"title": "Select",
|
|
327
|
+
"description": "A select control for choosing one option from a list.",
|
|
328
|
+
"dependencies": [],
|
|
329
|
+
"registryDependencies": [],
|
|
330
|
+
"files": [
|
|
331
|
+
{
|
|
332
|
+
"path": "registry/ui/select/select.tsx",
|
|
333
|
+
"type": "registry:ui",
|
|
334
|
+
"target": "components/ui/select.tsx"
|
|
162
335
|
}
|
|
163
336
|
],
|
|
164
|
-
"categories": [
|
|
337
|
+
"categories": [
|
|
338
|
+
"primitives",
|
|
339
|
+
"forms"
|
|
340
|
+
]
|
|
165
341
|
},
|
|
166
342
|
{
|
|
167
343
|
"name": "shimmer-button",
|
|
168
344
|
"type": "registry:ui",
|
|
169
345
|
"title": "Shimmer Button",
|
|
170
346
|
"description": "A button with animated shimmer effect.",
|
|
171
|
-
"dependencies": [
|
|
347
|
+
"dependencies": [
|
|
348
|
+
"framer-motion"
|
|
349
|
+
],
|
|
172
350
|
"registryDependencies": [],
|
|
173
351
|
"files": [
|
|
174
352
|
{
|
|
@@ -177,30 +355,135 @@
|
|
|
177
355
|
"target": "components/ui/shimmer-button.tsx"
|
|
178
356
|
}
|
|
179
357
|
],
|
|
180
|
-
"categories": [
|
|
358
|
+
"categories": [
|
|
359
|
+
"effects",
|
|
360
|
+
"buttons"
|
|
361
|
+
]
|
|
181
362
|
},
|
|
182
363
|
{
|
|
183
|
-
"name": "
|
|
364
|
+
"name": "sidebar",
|
|
365
|
+
"type": "registry:block",
|
|
366
|
+
"title": "Sidebar",
|
|
367
|
+
"description": "Responsive sidebar navigation with collapsible structure.",
|
|
368
|
+
"dependencies": [],
|
|
369
|
+
"registryDependencies": [],
|
|
370
|
+
"files": [
|
|
371
|
+
{
|
|
372
|
+
"path": "registry/blocks/sidebar/Sidebar.tsx",
|
|
373
|
+
"type": "registry:block",
|
|
374
|
+
"target": "components/blocks/sidebar.tsx"
|
|
375
|
+
}
|
|
376
|
+
],
|
|
377
|
+
"categories": [
|
|
378
|
+
"navigation",
|
|
379
|
+
"layout"
|
|
380
|
+
]
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
"name": "skeleton",
|
|
184
384
|
"type": "registry:ui",
|
|
185
|
-
"title": "
|
|
186
|
-
"description": "
|
|
187
|
-
"dependencies": [
|
|
385
|
+
"title": "Skeleton",
|
|
386
|
+
"description": "Loading skeleton placeholders with pre-built variants for text, avatars, and cards.",
|
|
387
|
+
"dependencies": [],
|
|
188
388
|
"registryDependencies": [],
|
|
189
389
|
"files": [
|
|
190
390
|
{
|
|
191
|
-
"path": "registry/
|
|
391
|
+
"path": "registry/ui/skeleton/skeleton.tsx",
|
|
192
392
|
"type": "registry:ui",
|
|
193
|
-
"target": "components/ui/
|
|
393
|
+
"target": "components/ui/skeleton.tsx"
|
|
394
|
+
}
|
|
395
|
+
],
|
|
396
|
+
"categories": [
|
|
397
|
+
"primitives",
|
|
398
|
+
"feedback"
|
|
399
|
+
]
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
"name": "spotlight",
|
|
403
|
+
"type": "registry:ui",
|
|
404
|
+
"title": "Spotlight",
|
|
405
|
+
"description": "Cursor-following spotlight effect.",
|
|
406
|
+
"dependencies": [
|
|
407
|
+
"framer-motion"
|
|
408
|
+
],
|
|
409
|
+
"registryDependencies": [],
|
|
410
|
+
"files": [
|
|
411
|
+
{
|
|
412
|
+
"path": "registry/effects/spotlight/spotlight.tsx",
|
|
413
|
+
"type": "registry:ui",
|
|
414
|
+
"target": "components/ui/spotlight.tsx"
|
|
194
415
|
}
|
|
195
416
|
],
|
|
196
|
-
"categories": [
|
|
417
|
+
"categories": [
|
|
418
|
+
"effects",
|
|
419
|
+
"interactive"
|
|
420
|
+
]
|
|
421
|
+
},
|
|
422
|
+
{
|
|
423
|
+
"name": "stats-card",
|
|
424
|
+
"type": "registry:block",
|
|
425
|
+
"title": "Stats Card",
|
|
426
|
+
"description": "Display a metric with trend, icon, and supporting label.",
|
|
427
|
+
"dependencies": [],
|
|
428
|
+
"registryDependencies": [],
|
|
429
|
+
"files": [
|
|
430
|
+
{
|
|
431
|
+
"path": "registry/blocks/stats-card/StatsCard.tsx",
|
|
432
|
+
"type": "registry:block",
|
|
433
|
+
"target": "components/blocks/stats-card.tsx"
|
|
434
|
+
}
|
|
435
|
+
],
|
|
436
|
+
"categories": [
|
|
437
|
+
"data-display",
|
|
438
|
+
"application"
|
|
439
|
+
]
|
|
440
|
+
},
|
|
441
|
+
{
|
|
442
|
+
"name": "switch",
|
|
443
|
+
"type": "registry:ui",
|
|
444
|
+
"title": "Switch",
|
|
445
|
+
"description": "An accessible switch for on-off settings.",
|
|
446
|
+
"dependencies": [],
|
|
447
|
+
"registryDependencies": [],
|
|
448
|
+
"files": [
|
|
449
|
+
{
|
|
450
|
+
"path": "registry/ui/switch/switch.tsx",
|
|
451
|
+
"type": "registry:ui",
|
|
452
|
+
"target": "components/ui/switch.tsx"
|
|
453
|
+
}
|
|
454
|
+
],
|
|
455
|
+
"categories": [
|
|
456
|
+
"primitives",
|
|
457
|
+
"forms"
|
|
458
|
+
]
|
|
459
|
+
},
|
|
460
|
+
{
|
|
461
|
+
"name": "tabs",
|
|
462
|
+
"type": "registry:ui",
|
|
463
|
+
"title": "Tabs",
|
|
464
|
+
"description": "Accessible tab lists, triggers, and keyboard-navigable panels.",
|
|
465
|
+
"dependencies": [],
|
|
466
|
+
"registryDependencies": [],
|
|
467
|
+
"files": [
|
|
468
|
+
{
|
|
469
|
+
"path": "registry/ui/tabs/tabs.tsx",
|
|
470
|
+
"type": "registry:ui",
|
|
471
|
+
"target": "components/ui/tabs.tsx"
|
|
472
|
+
}
|
|
473
|
+
],
|
|
474
|
+
"categories": [
|
|
475
|
+
"primitives",
|
|
476
|
+
"navigation"
|
|
477
|
+
]
|
|
197
478
|
},
|
|
198
479
|
{
|
|
199
480
|
"name": "text-reveal",
|
|
200
481
|
"type": "registry:ui",
|
|
201
482
|
"title": "Text Reveal",
|
|
202
483
|
"description": "Character and word reveal animations.",
|
|
203
|
-
"dependencies": [
|
|
484
|
+
"dependencies": [
|
|
485
|
+
"framer-motion"
|
|
486
|
+
],
|
|
204
487
|
"registryDependencies": [],
|
|
205
488
|
"files": [
|
|
206
489
|
{
|
|
@@ -209,39 +492,50 @@
|
|
|
209
492
|
"target": "components/ui/text-reveal.tsx"
|
|
210
493
|
}
|
|
211
494
|
],
|
|
212
|
-
"categories": [
|
|
495
|
+
"categories": [
|
|
496
|
+
"effects",
|
|
497
|
+
"text"
|
|
498
|
+
]
|
|
213
499
|
},
|
|
214
500
|
{
|
|
215
|
-
"name": "
|
|
501
|
+
"name": "textarea",
|
|
216
502
|
"type": "registry:ui",
|
|
217
|
-
"title": "
|
|
218
|
-
"description": "
|
|
219
|
-
"dependencies": [
|
|
503
|
+
"title": "Textarea",
|
|
504
|
+
"description": "A multi-line text input with character counting and resize options.",
|
|
505
|
+
"dependencies": [
|
|
506
|
+
"class-variance-authority"
|
|
507
|
+
],
|
|
220
508
|
"registryDependencies": [],
|
|
221
509
|
"files": [
|
|
222
510
|
{
|
|
223
|
-
"path": "registry/
|
|
511
|
+
"path": "registry/ui/textarea/textarea.tsx",
|
|
224
512
|
"type": "registry:ui",
|
|
225
|
-
"target": "components/ui/
|
|
513
|
+
"target": "components/ui/textarea.tsx"
|
|
226
514
|
}
|
|
227
515
|
],
|
|
228
|
-
"categories": [
|
|
516
|
+
"categories": [
|
|
517
|
+
"primitives",
|
|
518
|
+
"forms"
|
|
519
|
+
]
|
|
229
520
|
},
|
|
230
521
|
{
|
|
231
|
-
"name": "
|
|
522
|
+
"name": "typewriter-text",
|
|
232
523
|
"type": "registry:ui",
|
|
233
|
-
"title": "
|
|
234
|
-
"description": "
|
|
235
|
-
"dependencies": [
|
|
524
|
+
"title": "Typewriter Text",
|
|
525
|
+
"description": "Text that types itself out, one character at a time.",
|
|
526
|
+
"dependencies": [],
|
|
236
527
|
"registryDependencies": [],
|
|
237
528
|
"files": [
|
|
238
529
|
{
|
|
239
|
-
"path": "registry/effects/
|
|
530
|
+
"path": "registry/effects/typewriter-text/typewriter-text.tsx",
|
|
240
531
|
"type": "registry:ui",
|
|
241
|
-
"target": "components/ui/
|
|
532
|
+
"target": "components/ui/typewriter-text.tsx"
|
|
242
533
|
}
|
|
243
534
|
],
|
|
244
|
-
"categories": [
|
|
535
|
+
"categories": [
|
|
536
|
+
"effects",
|
|
537
|
+
"text"
|
|
538
|
+
]
|
|
245
539
|
}
|
|
246
540
|
]
|
|
247
541
|
}
|