@metacells/mcellui-mcp-server 0.1.1 → 0.1.3
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/dist/index.js +14 -3
- package/package.json +5 -3
- package/registry/registry.json +717 -0
- package/registry/ui/accordion.tsx +416 -0
- package/registry/ui/action-sheet.tsx +396 -0
- package/registry/ui/alert-dialog.tsx +355 -0
- package/registry/ui/avatar-stack.tsx +278 -0
- package/registry/ui/avatar.tsx +116 -0
- package/registry/ui/badge.tsx +125 -0
- package/registry/ui/button.tsx +240 -0
- package/registry/ui/card.tsx +675 -0
- package/registry/ui/carousel.tsx +431 -0
- package/registry/ui/checkbox.tsx +252 -0
- package/registry/ui/chip.tsx +271 -0
- package/registry/ui/column.tsx +133 -0
- package/registry/ui/datetime-picker.tsx +578 -0
- package/registry/ui/dialog.tsx +292 -0
- package/registry/ui/fab.tsx +225 -0
- package/registry/ui/form.tsx +323 -0
- package/registry/ui/horizontal-list.tsx +200 -0
- package/registry/ui/icon-button.tsx +244 -0
- package/registry/ui/image-gallery.tsx +455 -0
- package/registry/ui/image.tsx +283 -0
- package/registry/ui/input.tsx +242 -0
- package/registry/ui/label.tsx +99 -0
- package/registry/ui/list.tsx +519 -0
- package/registry/ui/progress.tsx +168 -0
- package/registry/ui/pull-to-refresh.tsx +231 -0
- package/registry/ui/radio-group.tsx +294 -0
- package/registry/ui/rating.tsx +311 -0
- package/registry/ui/row.tsx +136 -0
- package/registry/ui/screen.tsx +153 -0
- package/registry/ui/search-input.tsx +281 -0
- package/registry/ui/section-header.tsx +258 -0
- package/registry/ui/segmented-control.tsx +229 -0
- package/registry/ui/select.tsx +311 -0
- package/registry/ui/separator.tsx +74 -0
- package/registry/ui/sheet.tsx +362 -0
- package/registry/ui/skeleton.tsx +156 -0
- package/registry/ui/slider.tsx +307 -0
- package/registry/ui/spinner.tsx +100 -0
- package/registry/ui/stepper.tsx +314 -0
- package/registry/ui/stories.tsx +463 -0
- package/registry/ui/swipeable-row.tsx +362 -0
- package/registry/ui/switch.tsx +246 -0
- package/registry/ui/tabs.tsx +348 -0
- package/registry/ui/textarea.tsx +265 -0
- package/registry/ui/toast.tsx +316 -0
- package/registry/ui/tooltip.tsx +369 -0
|
@@ -0,0 +1,717 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "./registry.schema.json",
|
|
3
|
+
"name": "nativeui",
|
|
4
|
+
"version": "0.0.1",
|
|
5
|
+
"components": [
|
|
6
|
+
{
|
|
7
|
+
"name": "button",
|
|
8
|
+
"type": "ui",
|
|
9
|
+
"description": "A pressable button component with multiple variants and sizes",
|
|
10
|
+
"category": "Inputs",
|
|
11
|
+
"status": "beta",
|
|
12
|
+
"files": ["ui/button.tsx"],
|
|
13
|
+
"dependencies": [],
|
|
14
|
+
"registryDependencies": []
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"name": "card",
|
|
18
|
+
"type": "ui",
|
|
19
|
+
"description": "A container component with rounded corners and shadow",
|
|
20
|
+
"category": "Layout",
|
|
21
|
+
"status": "beta",
|
|
22
|
+
"files": ["ui/card.tsx"],
|
|
23
|
+
"dependencies": [],
|
|
24
|
+
"registryDependencies": []
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "input",
|
|
28
|
+
"type": "ui",
|
|
29
|
+
"description": "Text input with label, placeholder, and error states",
|
|
30
|
+
"category": "Inputs",
|
|
31
|
+
"status": "beta",
|
|
32
|
+
"files": ["ui/input.tsx"],
|
|
33
|
+
"dependencies": [],
|
|
34
|
+
"registryDependencies": []
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"name": "badge",
|
|
38
|
+
"type": "ui",
|
|
39
|
+
"description": "Small status indicator for labels and counts",
|
|
40
|
+
"category": "Data Display",
|
|
41
|
+
"status": "beta",
|
|
42
|
+
"files": ["ui/badge.tsx"],
|
|
43
|
+
"dependencies": [],
|
|
44
|
+
"registryDependencies": []
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"name": "avatar",
|
|
48
|
+
"type": "ui",
|
|
49
|
+
"description": "User profile picture with fallback initials",
|
|
50
|
+
"category": "Data Display",
|
|
51
|
+
"status": "beta",
|
|
52
|
+
"files": ["ui/avatar.tsx"],
|
|
53
|
+
"dependencies": [],
|
|
54
|
+
"registryDependencies": []
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"name": "checkbox",
|
|
58
|
+
"type": "ui",
|
|
59
|
+
"description": "Accessible checkbox with animated checkmark and indeterminate state",
|
|
60
|
+
"category": "Inputs",
|
|
61
|
+
"status": "beta",
|
|
62
|
+
"files": ["ui/checkbox.tsx"],
|
|
63
|
+
"dependencies": ["react-native-reanimated"],
|
|
64
|
+
"registryDependencies": []
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"name": "switch",
|
|
68
|
+
"type": "ui",
|
|
69
|
+
"description": "iOS-style toggle switch with animated thumb",
|
|
70
|
+
"category": "Inputs",
|
|
71
|
+
"status": "beta",
|
|
72
|
+
"files": ["ui/switch.tsx"],
|
|
73
|
+
"dependencies": ["react-native-reanimated"],
|
|
74
|
+
"registryDependencies": []
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"name": "radio-group",
|
|
78
|
+
"type": "ui",
|
|
79
|
+
"description": "Radio button group for single selection with animated indicator",
|
|
80
|
+
"category": "Inputs",
|
|
81
|
+
"status": "beta",
|
|
82
|
+
"files": ["ui/radio-group.tsx"],
|
|
83
|
+
"dependencies": ["react-native-reanimated"],
|
|
84
|
+
"registryDependencies": []
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"name": "label",
|
|
88
|
+
"type": "ui",
|
|
89
|
+
"description": "Form label with required indicator and size variants",
|
|
90
|
+
"category": "Inputs",
|
|
91
|
+
"status": "beta",
|
|
92
|
+
"files": ["ui/label.tsx"],
|
|
93
|
+
"dependencies": [],
|
|
94
|
+
"registryDependencies": []
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"name": "separator",
|
|
98
|
+
"type": "ui",
|
|
99
|
+
"description": "Visual divider for horizontal or vertical content separation",
|
|
100
|
+
"category": "Layout",
|
|
101
|
+
"status": "beta",
|
|
102
|
+
"files": ["ui/separator.tsx"],
|
|
103
|
+
"dependencies": [],
|
|
104
|
+
"registryDependencies": []
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"name": "spinner",
|
|
108
|
+
"type": "ui",
|
|
109
|
+
"description": "Loading indicator with size and color variants",
|
|
110
|
+
"category": "Feedback",
|
|
111
|
+
"status": "beta",
|
|
112
|
+
"files": ["ui/spinner.tsx"],
|
|
113
|
+
"dependencies": [],
|
|
114
|
+
"registryDependencies": []
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"name": "skeleton",
|
|
118
|
+
"type": "ui",
|
|
119
|
+
"description": "Loading placeholder with shimmer animation",
|
|
120
|
+
"category": "Feedback",
|
|
121
|
+
"status": "beta",
|
|
122
|
+
"files": ["ui/skeleton.tsx"],
|
|
123
|
+
"dependencies": ["react-native-reanimated"],
|
|
124
|
+
"registryDependencies": []
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"name": "progress",
|
|
128
|
+
"type": "ui",
|
|
129
|
+
"description": "Progress bar with animated fill and indeterminate state",
|
|
130
|
+
"category": "Feedback",
|
|
131
|
+
"status": "beta",
|
|
132
|
+
"files": ["ui/progress.tsx"],
|
|
133
|
+
"dependencies": ["react-native-reanimated"],
|
|
134
|
+
"registryDependencies": []
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"name": "sheet",
|
|
138
|
+
"type": "ui",
|
|
139
|
+
"description": "Bottom sheet with snap points and swipe gestures",
|
|
140
|
+
"category": "Overlay",
|
|
141
|
+
"status": "beta",
|
|
142
|
+
"files": ["ui/sheet.tsx"],
|
|
143
|
+
"dependencies": ["react-native-reanimated", "react-native-gesture-handler"],
|
|
144
|
+
"registryDependencies": []
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"name": "dialog",
|
|
148
|
+
"type": "ui",
|
|
149
|
+
"description": "Centered modal dialog with backdrop",
|
|
150
|
+
"category": "Overlay",
|
|
151
|
+
"status": "beta",
|
|
152
|
+
"files": ["ui/dialog.tsx"],
|
|
153
|
+
"dependencies": ["react-native-reanimated"],
|
|
154
|
+
"registryDependencies": []
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"name": "alert-dialog",
|
|
158
|
+
"type": "ui",
|
|
159
|
+
"description": "Confirmation dialog for destructive actions",
|
|
160
|
+
"category": "Overlay",
|
|
161
|
+
"status": "beta",
|
|
162
|
+
"files": ["ui/alert-dialog.tsx"],
|
|
163
|
+
"dependencies": ["react-native-reanimated"],
|
|
164
|
+
"registryDependencies": []
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"name": "toast",
|
|
168
|
+
"type": "ui",
|
|
169
|
+
"description": "Notification system with variants and auto-dismiss",
|
|
170
|
+
"category": "Feedback",
|
|
171
|
+
"status": "beta",
|
|
172
|
+
"files": ["ui/toast.tsx"],
|
|
173
|
+
"dependencies": ["react-native-reanimated", "react-native-safe-area-context"],
|
|
174
|
+
"registryDependencies": []
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
"name": "textarea",
|
|
178
|
+
"type": "ui",
|
|
179
|
+
"description": "Multiline text input with auto-grow and character count",
|
|
180
|
+
"category": "Inputs",
|
|
181
|
+
"status": "beta",
|
|
182
|
+
"files": ["ui/textarea.tsx"],
|
|
183
|
+
"dependencies": ["react-native-reanimated"],
|
|
184
|
+
"registryDependencies": []
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
"name": "select",
|
|
188
|
+
"type": "ui",
|
|
189
|
+
"description": "Bottom sheet picker for selection from options",
|
|
190
|
+
"category": "Inputs",
|
|
191
|
+
"status": "beta",
|
|
192
|
+
"files": ["ui/select.tsx"],
|
|
193
|
+
"dependencies": ["react-native-reanimated"],
|
|
194
|
+
"registryDependencies": ["sheet"]
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
"name": "slider",
|
|
198
|
+
"type": "ui",
|
|
199
|
+
"description": "Value slider with gesture support and step increments",
|
|
200
|
+
"category": "Inputs",
|
|
201
|
+
"status": "beta",
|
|
202
|
+
"files": ["ui/slider.tsx"],
|
|
203
|
+
"dependencies": ["react-native-reanimated", "react-native-gesture-handler"],
|
|
204
|
+
"registryDependencies": []
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"name": "stepper",
|
|
208
|
+
"type": "ui",
|
|
209
|
+
"description": "Quantity input with increment/decrement buttons",
|
|
210
|
+
"category": "Inputs",
|
|
211
|
+
"status": "beta",
|
|
212
|
+
"files": ["ui/stepper.tsx"],
|
|
213
|
+
"dependencies": ["react-native-reanimated"],
|
|
214
|
+
"registryDependencies": []
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
"name": "tabs",
|
|
218
|
+
"type": "ui",
|
|
219
|
+
"description": "Tabbed navigation with animated indicator",
|
|
220
|
+
"category": "Navigation",
|
|
221
|
+
"status": "beta",
|
|
222
|
+
"files": ["ui/tabs.tsx"],
|
|
223
|
+
"dependencies": ["react-native-reanimated"],
|
|
224
|
+
"registryDependencies": []
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
"name": "accordion",
|
|
228
|
+
"type": "ui",
|
|
229
|
+
"description": "Expandable content panels with single or multiple mode",
|
|
230
|
+
"category": "Navigation",
|
|
231
|
+
"status": "beta",
|
|
232
|
+
"files": ["ui/accordion.tsx"],
|
|
233
|
+
"dependencies": ["react-native-reanimated"],
|
|
234
|
+
"registryDependencies": []
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
"name": "segmented-control",
|
|
238
|
+
"type": "ui",
|
|
239
|
+
"description": "iOS-style segmented control for switching views",
|
|
240
|
+
"category": "Navigation",
|
|
241
|
+
"status": "beta",
|
|
242
|
+
"files": ["ui/segmented-control.tsx"],
|
|
243
|
+
"dependencies": ["react-native-reanimated"],
|
|
244
|
+
"registryDependencies": []
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
"name": "pull-to-refresh",
|
|
248
|
+
"type": "ui",
|
|
249
|
+
"description": "Pull-to-refresh wrapper with custom animated indicator",
|
|
250
|
+
"category": "Mobile",
|
|
251
|
+
"status": "beta",
|
|
252
|
+
"files": ["ui/pull-to-refresh.tsx"],
|
|
253
|
+
"dependencies": ["react-native-reanimated"],
|
|
254
|
+
"registryDependencies": []
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
"name": "swipeable-row",
|
|
258
|
+
"type": "ui",
|
|
259
|
+
"description": "Swipeable list row with left and right actions",
|
|
260
|
+
"category": "Mobile",
|
|
261
|
+
"status": "beta",
|
|
262
|
+
"files": ["ui/swipeable-row.tsx"],
|
|
263
|
+
"dependencies": ["react-native-reanimated", "react-native-gesture-handler"],
|
|
264
|
+
"registryDependencies": []
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
"name": "form",
|
|
268
|
+
"type": "ui",
|
|
269
|
+
"description": "Form components with react-hook-form and Zod validation",
|
|
270
|
+
"category": "Forms",
|
|
271
|
+
"status": "beta",
|
|
272
|
+
"files": ["ui/form.tsx"],
|
|
273
|
+
"dependencies": ["react-hook-form", "@hookform/resolvers", "zod"],
|
|
274
|
+
"registryDependencies": []
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
"name": "login-block",
|
|
278
|
+
"type": "block",
|
|
279
|
+
"description": "Complete login screen with email/password form and social login",
|
|
280
|
+
"category": "Authentication",
|
|
281
|
+
"status": "beta",
|
|
282
|
+
"files": ["blocks/login-block.tsx"],
|
|
283
|
+
"dependencies": ["react-hook-form", "@hookform/resolvers", "zod"],
|
|
284
|
+
"registryDependencies": ["button", "input", "form"]
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
"name": "signup-block",
|
|
288
|
+
"type": "block",
|
|
289
|
+
"description": "Complete signup screen with form validation and terms checkbox",
|
|
290
|
+
"category": "Authentication",
|
|
291
|
+
"status": "beta",
|
|
292
|
+
"files": ["blocks/signup-block.tsx"],
|
|
293
|
+
"dependencies": ["react-hook-form", "@hookform/resolvers", "zod"],
|
|
294
|
+
"registryDependencies": ["button", "input", "checkbox", "form"]
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
"name": "settings-list-block",
|
|
298
|
+
"type": "block",
|
|
299
|
+
"description": "Grouped settings list with switches and navigation items",
|
|
300
|
+
"category": "Settings",
|
|
301
|
+
"status": "beta",
|
|
302
|
+
"files": ["blocks/settings-list-block.tsx"],
|
|
303
|
+
"dependencies": [],
|
|
304
|
+
"registryDependencies": ["switch", "separator"]
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
"name": "profile-block",
|
|
308
|
+
"type": "block",
|
|
309
|
+
"description": "User profile header with avatar, stats, and action buttons",
|
|
310
|
+
"category": "Profile",
|
|
311
|
+
"status": "beta",
|
|
312
|
+
"files": ["blocks/profile-block.tsx"],
|
|
313
|
+
"dependencies": [],
|
|
314
|
+
"registryDependencies": ["avatar", "button"]
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
"name": "empty-state-block",
|
|
318
|
+
"type": "block",
|
|
319
|
+
"description": "Empty state placeholder with icon, title, and CTA button",
|
|
320
|
+
"category": "Feedback",
|
|
321
|
+
"status": "beta",
|
|
322
|
+
"files": ["blocks/empty-state-block.tsx"],
|
|
323
|
+
"dependencies": [],
|
|
324
|
+
"registryDependencies": ["button"]
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
"name": "error-state-block",
|
|
328
|
+
"type": "block",
|
|
329
|
+
"description": "Error state display with icon, message, and retry button",
|
|
330
|
+
"category": "Feedback",
|
|
331
|
+
"status": "beta",
|
|
332
|
+
"files": ["blocks/error-state-block.tsx"],
|
|
333
|
+
"dependencies": ["react-native-svg"],
|
|
334
|
+
"registryDependencies": ["button"]
|
|
335
|
+
},
|
|
336
|
+
{
|
|
337
|
+
"name": "search-input",
|
|
338
|
+
"type": "ui",
|
|
339
|
+
"description": "Search input with icon, clear button, and loading state",
|
|
340
|
+
"category": "Inputs",
|
|
341
|
+
"status": "beta",
|
|
342
|
+
"files": ["ui/search-input.tsx"],
|
|
343
|
+
"dependencies": ["react-native-reanimated", "react-native-svg"],
|
|
344
|
+
"registryDependencies": []
|
|
345
|
+
},
|
|
346
|
+
{
|
|
347
|
+
"name": "icon-button",
|
|
348
|
+
"type": "ui",
|
|
349
|
+
"description": "Square or circular icon-only button with multiple variants",
|
|
350
|
+
"category": "Inputs",
|
|
351
|
+
"status": "beta",
|
|
352
|
+
"files": ["ui/icon-button.tsx"],
|
|
353
|
+
"dependencies": ["react-native-reanimated"],
|
|
354
|
+
"registryDependencies": []
|
|
355
|
+
},
|
|
356
|
+
{
|
|
357
|
+
"name": "list",
|
|
358
|
+
"type": "ui",
|
|
359
|
+
"description": "List component with items, left/right slots, chevron, and dividers",
|
|
360
|
+
"category": "Data Display",
|
|
361
|
+
"status": "beta",
|
|
362
|
+
"files": ["ui/list.tsx"],
|
|
363
|
+
"dependencies": ["react-native-reanimated", "react-native-svg"],
|
|
364
|
+
"registryDependencies": []
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
"name": "image",
|
|
368
|
+
"type": "ui",
|
|
369
|
+
"description": "Enhanced image with loading skeleton, error fallback, and fade-in",
|
|
370
|
+
"category": "Media",
|
|
371
|
+
"status": "beta",
|
|
372
|
+
"files": ["ui/image.tsx"],
|
|
373
|
+
"dependencies": ["react-native-reanimated", "react-native-svg"],
|
|
374
|
+
"registryDependencies": []
|
|
375
|
+
},
|
|
376
|
+
{
|
|
377
|
+
"name": "horizontal-list",
|
|
378
|
+
"type": "ui",
|
|
379
|
+
"description": "Horizontal scrolling container with snap-to-item behavior",
|
|
380
|
+
"category": "Layout",
|
|
381
|
+
"status": "beta",
|
|
382
|
+
"files": ["ui/horizontal-list.tsx"],
|
|
383
|
+
"dependencies": [],
|
|
384
|
+
"registryDependencies": []
|
|
385
|
+
},
|
|
386
|
+
{
|
|
387
|
+
"name": "section-header",
|
|
388
|
+
"type": "ui",
|
|
389
|
+
"description": "Section header with title, subtitle, and 'See All' action",
|
|
390
|
+
"category": "Layout",
|
|
391
|
+
"status": "beta",
|
|
392
|
+
"files": ["ui/section-header.tsx"],
|
|
393
|
+
"dependencies": ["react-native-reanimated", "react-native-svg"],
|
|
394
|
+
"registryDependencies": []
|
|
395
|
+
},
|
|
396
|
+
{
|
|
397
|
+
"name": "chip",
|
|
398
|
+
"type": "ui",
|
|
399
|
+
"description": "Selectable filter pills for filtering content or making selections",
|
|
400
|
+
"category": "Inputs",
|
|
401
|
+
"status": "beta",
|
|
402
|
+
"files": ["ui/chip.tsx"],
|
|
403
|
+
"dependencies": ["react-native-reanimated"],
|
|
404
|
+
"registryDependencies": []
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
"name": "fab",
|
|
408
|
+
"type": "ui",
|
|
409
|
+
"description": "Floating action button for primary actions",
|
|
410
|
+
"category": "Inputs",
|
|
411
|
+
"status": "beta",
|
|
412
|
+
"files": ["ui/fab.tsx"],
|
|
413
|
+
"dependencies": ["react-native-reanimated"],
|
|
414
|
+
"registryDependencies": []
|
|
415
|
+
},
|
|
416
|
+
{
|
|
417
|
+
"name": "action-sheet",
|
|
418
|
+
"type": "ui",
|
|
419
|
+
"description": "iOS-style bottom action menu for presenting choices",
|
|
420
|
+
"category": "Overlay",
|
|
421
|
+
"status": "beta",
|
|
422
|
+
"files": ["ui/action-sheet.tsx"],
|
|
423
|
+
"dependencies": ["react-native-reanimated", "react-native-gesture-handler"],
|
|
424
|
+
"registryDependencies": []
|
|
425
|
+
},
|
|
426
|
+
{
|
|
427
|
+
"name": "avatar-stack",
|
|
428
|
+
"type": "ui",
|
|
429
|
+
"description": "Overlapping avatar group for displaying multiple users",
|
|
430
|
+
"category": "Data Display",
|
|
431
|
+
"status": "beta",
|
|
432
|
+
"files": ["ui/avatar-stack.tsx"],
|
|
433
|
+
"dependencies": [],
|
|
434
|
+
"registryDependencies": []
|
|
435
|
+
},
|
|
436
|
+
{
|
|
437
|
+
"name": "rating",
|
|
438
|
+
"type": "ui",
|
|
439
|
+
"description": "Interactive star rating for reviews and feedback",
|
|
440
|
+
"category": "Inputs",
|
|
441
|
+
"status": "beta",
|
|
442
|
+
"files": ["ui/rating.tsx"],
|
|
443
|
+
"dependencies": ["react-native-reanimated"],
|
|
444
|
+
"registryDependencies": []
|
|
445
|
+
},
|
|
446
|
+
{
|
|
447
|
+
"name": "carousel",
|
|
448
|
+
"type": "ui",
|
|
449
|
+
"description": "Auto-playing image/content slideshow with pagination indicators",
|
|
450
|
+
"category": "Media",
|
|
451
|
+
"status": "beta",
|
|
452
|
+
"files": ["ui/carousel.tsx"],
|
|
453
|
+
"dependencies": ["react-native-reanimated"],
|
|
454
|
+
"registryDependencies": []
|
|
455
|
+
},
|
|
456
|
+
{
|
|
457
|
+
"name": "stories",
|
|
458
|
+
"type": "ui",
|
|
459
|
+
"description": "Instagram-style story avatars with gradient ring and add button",
|
|
460
|
+
"category": "Social",
|
|
461
|
+
"status": "beta",
|
|
462
|
+
"files": ["ui/stories.tsx"],
|
|
463
|
+
"dependencies": ["react-native-reanimated", "expo-linear-gradient"],
|
|
464
|
+
"registryDependencies": []
|
|
465
|
+
},
|
|
466
|
+
{
|
|
467
|
+
"name": "datetime-picker",
|
|
468
|
+
"type": "ui",
|
|
469
|
+
"description": "Date and time picker with native platform UI via bottom sheet",
|
|
470
|
+
"category": "Inputs",
|
|
471
|
+
"status": "beta",
|
|
472
|
+
"files": ["ui/datetime-picker.tsx"],
|
|
473
|
+
"dependencies": ["react-native-reanimated", "@react-native-community/datetimepicker"],
|
|
474
|
+
"registryDependencies": []
|
|
475
|
+
},
|
|
476
|
+
{
|
|
477
|
+
"name": "tooltip",
|
|
478
|
+
"type": "ui",
|
|
479
|
+
"description": "Long-press popup for showing contextual information",
|
|
480
|
+
"category": "Overlay",
|
|
481
|
+
"status": "beta",
|
|
482
|
+
"files": ["ui/tooltip.tsx"],
|
|
483
|
+
"dependencies": ["react-native-reanimated"],
|
|
484
|
+
"registryDependencies": []
|
|
485
|
+
},
|
|
486
|
+
{
|
|
487
|
+
"name": "image-gallery",
|
|
488
|
+
"type": "ui",
|
|
489
|
+
"description": "Grid gallery with fullscreen viewer, pinch-to-zoom, and swipe navigation",
|
|
490
|
+
"category": "Media",
|
|
491
|
+
"status": "beta",
|
|
492
|
+
"files": ["ui/image-gallery.tsx"],
|
|
493
|
+
"dependencies": ["react-native-reanimated", "react-native-gesture-handler"],
|
|
494
|
+
"registryDependencies": []
|
|
495
|
+
},
|
|
496
|
+
{
|
|
497
|
+
"name": "notification-item",
|
|
498
|
+
"type": "block",
|
|
499
|
+
"description": "Notification list item with avatar, message, time, and unread indicator",
|
|
500
|
+
"category": "Social",
|
|
501
|
+
"status": "beta",
|
|
502
|
+
"files": ["blocks/notification-item.tsx"],
|
|
503
|
+
"dependencies": ["react-native-reanimated"],
|
|
504
|
+
"registryDependencies": ["avatar"]
|
|
505
|
+
},
|
|
506
|
+
{
|
|
507
|
+
"name": "content-card",
|
|
508
|
+
"type": "block",
|
|
509
|
+
"description": "Large content card with image, title, subtitle, and action button",
|
|
510
|
+
"category": "Content",
|
|
511
|
+
"status": "beta",
|
|
512
|
+
"files": ["blocks/content-card.tsx"],
|
|
513
|
+
"dependencies": ["react-native-reanimated"],
|
|
514
|
+
"registryDependencies": ["button"]
|
|
515
|
+
},
|
|
516
|
+
{
|
|
517
|
+
"name": "feature-card",
|
|
518
|
+
"type": "block",
|
|
519
|
+
"description": "Feature highlight card with icon, title, and description",
|
|
520
|
+
"category": "Marketing",
|
|
521
|
+
"status": "beta",
|
|
522
|
+
"files": ["blocks/feature-card.tsx"],
|
|
523
|
+
"dependencies": ["react-native-reanimated"],
|
|
524
|
+
"registryDependencies": []
|
|
525
|
+
},
|
|
526
|
+
{
|
|
527
|
+
"name": "stats-card",
|
|
528
|
+
"type": "block",
|
|
529
|
+
"description": "Metric display card with value, label, and trend indicator",
|
|
530
|
+
"category": "Dashboard",
|
|
531
|
+
"status": "beta",
|
|
532
|
+
"files": ["blocks/stats-card.tsx"],
|
|
533
|
+
"dependencies": [],
|
|
534
|
+
"registryDependencies": []
|
|
535
|
+
},
|
|
536
|
+
{
|
|
537
|
+
"name": "hero-block",
|
|
538
|
+
"type": "block",
|
|
539
|
+
"description": "Full-width hero section with image/gradient, title, and CTA buttons",
|
|
540
|
+
"category": "Marketing",
|
|
541
|
+
"status": "beta",
|
|
542
|
+
"files": ["blocks/hero-block.tsx"],
|
|
543
|
+
"dependencies": ["expo-linear-gradient"],
|
|
544
|
+
"registryDependencies": ["button"]
|
|
545
|
+
},
|
|
546
|
+
{
|
|
547
|
+
"name": "social-proof-bar",
|
|
548
|
+
"type": "block",
|
|
549
|
+
"description": "Avatar stack with engagement text for social proof",
|
|
550
|
+
"category": "Social",
|
|
551
|
+
"status": "beta",
|
|
552
|
+
"files": ["blocks/social-proof-bar.tsx"],
|
|
553
|
+
"dependencies": [],
|
|
554
|
+
"registryDependencies": []
|
|
555
|
+
},
|
|
556
|
+
{
|
|
557
|
+
"name": "search-header",
|
|
558
|
+
"type": "block",
|
|
559
|
+
"description": "Header with search input, filter button, and user avatar",
|
|
560
|
+
"category": "Navigation",
|
|
561
|
+
"status": "beta",
|
|
562
|
+
"files": ["blocks/search-header.tsx"],
|
|
563
|
+
"dependencies": ["react-native-reanimated", "react-native-svg"],
|
|
564
|
+
"registryDependencies": []
|
|
565
|
+
},
|
|
566
|
+
{
|
|
567
|
+
"name": "onboarding-slide",
|
|
568
|
+
"type": "block",
|
|
569
|
+
"description": "Full-screen onboarding slide with illustration, title, and pagination",
|
|
570
|
+
"category": "Onboarding",
|
|
571
|
+
"status": "beta",
|
|
572
|
+
"files": ["blocks/onboarding-slide.tsx"],
|
|
573
|
+
"dependencies": ["react-native-safe-area-context"],
|
|
574
|
+
"registryDependencies": ["button"]
|
|
575
|
+
},
|
|
576
|
+
{
|
|
577
|
+
"name": "media-item",
|
|
578
|
+
"type": "block",
|
|
579
|
+
"description": "Thumbnail grid item for photos, videos, and files with selection support",
|
|
580
|
+
"category": "Media",
|
|
581
|
+
"status": "beta",
|
|
582
|
+
"files": ["blocks/media-item.tsx"],
|
|
583
|
+
"dependencies": ["react-native-svg"],
|
|
584
|
+
"registryDependencies": ["badge"]
|
|
585
|
+
},
|
|
586
|
+
{
|
|
587
|
+
"name": "feed-post-card",
|
|
588
|
+
"type": "block",
|
|
589
|
+
"description": "Social feed post card with avatar, content, image, and action buttons",
|
|
590
|
+
"category": "Social",
|
|
591
|
+
"status": "beta",
|
|
592
|
+
"files": ["blocks/feed-post-card.tsx"],
|
|
593
|
+
"dependencies": ["react-native-svg"],
|
|
594
|
+
"registryDependencies": ["avatar", "icon-button", "separator"]
|
|
595
|
+
},
|
|
596
|
+
{
|
|
597
|
+
"name": "login-screen",
|
|
598
|
+
"type": "screen",
|
|
599
|
+
"description": "Complete login screen with email/password form, social login, and forgot password",
|
|
600
|
+
"category": "Authentication",
|
|
601
|
+
"status": "beta",
|
|
602
|
+
"files": ["screens/login-screen.tsx"],
|
|
603
|
+
"dependencies": ["react-native-safe-area-context", "react-native-svg"],
|
|
604
|
+
"registryDependencies": ["button", "input", "separator"]
|
|
605
|
+
},
|
|
606
|
+
{
|
|
607
|
+
"name": "signup-screen",
|
|
608
|
+
"type": "screen",
|
|
609
|
+
"description": "Complete sign up screen with form validation, terms checkbox, and social signup",
|
|
610
|
+
"category": "Authentication",
|
|
611
|
+
"status": "beta",
|
|
612
|
+
"files": ["screens/signup-screen.tsx"],
|
|
613
|
+
"dependencies": ["react-native-safe-area-context", "react-native-svg"],
|
|
614
|
+
"registryDependencies": ["button", "input", "checkbox", "separator"]
|
|
615
|
+
},
|
|
616
|
+
{
|
|
617
|
+
"name": "onboarding-screen",
|
|
618
|
+
"type": "screen",
|
|
619
|
+
"description": "Multi-slide onboarding flow with swipeable pages and animated pagination",
|
|
620
|
+
"category": "Onboarding",
|
|
621
|
+
"status": "beta",
|
|
622
|
+
"files": ["screens/onboarding-screen.tsx"],
|
|
623
|
+
"dependencies": ["react-native-safe-area-context", "react-native-reanimated"],
|
|
624
|
+
"registryDependencies": ["button"]
|
|
625
|
+
},
|
|
626
|
+
{
|
|
627
|
+
"name": "profile-screen",
|
|
628
|
+
"type": "screen",
|
|
629
|
+
"description": "User profile screen with avatar, stats, action buttons, and content tabs",
|
|
630
|
+
"category": "Profile",
|
|
631
|
+
"status": "beta",
|
|
632
|
+
"files": ["screens/profile-screen.tsx"],
|
|
633
|
+
"dependencies": ["react-native-safe-area-context", "react-native-svg"],
|
|
634
|
+
"registryDependencies": ["avatar", "button", "icon-button", "badge", "tabs"]
|
|
635
|
+
},
|
|
636
|
+
{
|
|
637
|
+
"name": "settings-screen",
|
|
638
|
+
"type": "screen",
|
|
639
|
+
"description": "Complete settings screen with grouped items, toggles, and navigation rows",
|
|
640
|
+
"category": "Settings",
|
|
641
|
+
"status": "beta",
|
|
642
|
+
"files": ["screens/settings-screen.tsx"],
|
|
643
|
+
"dependencies": ["react-native-safe-area-context", "react-native-svg"],
|
|
644
|
+
"registryDependencies": ["list", "switch", "icon-button"]
|
|
645
|
+
},
|
|
646
|
+
{
|
|
647
|
+
"name": "search-screen",
|
|
648
|
+
"type": "screen",
|
|
649
|
+
"description": "Complete search screen with filters, recent searches, trending, and categorized results",
|
|
650
|
+
"category": "Navigation",
|
|
651
|
+
"status": "beta",
|
|
652
|
+
"files": ["screens/search-screen.tsx"],
|
|
653
|
+
"dependencies": ["react-native-safe-area-context", "react-native-svg"],
|
|
654
|
+
"registryDependencies": ["search-input", "chip", "avatar", "badge", "icon-button"]
|
|
655
|
+
},
|
|
656
|
+
{
|
|
657
|
+
"name": "chat-screen",
|
|
658
|
+
"type": "screen",
|
|
659
|
+
"description": "Complete chat/messaging screen with message bubbles, typing indicator, and input",
|
|
660
|
+
"category": "Messaging",
|
|
661
|
+
"status": "beta",
|
|
662
|
+
"files": ["screens/chat-screen.tsx"],
|
|
663
|
+
"dependencies": ["react-native-safe-area-context", "react-native-svg"],
|
|
664
|
+
"registryDependencies": ["avatar"]
|
|
665
|
+
},
|
|
666
|
+
{
|
|
667
|
+
"name": "notifications-screen",
|
|
668
|
+
"type": "screen",
|
|
669
|
+
"description": "Notifications screen with swipe-to-delete, read/unread states, and pull-to-refresh",
|
|
670
|
+
"category": "Social",
|
|
671
|
+
"status": "beta",
|
|
672
|
+
"files": ["screens/notifications-screen.tsx"],
|
|
673
|
+
"dependencies": ["react-native-safe-area-context", "react-native-svg"],
|
|
674
|
+
"registryDependencies": ["separator", "swipeable-row", "notification-item"]
|
|
675
|
+
},
|
|
676
|
+
{
|
|
677
|
+
"name": "feed-screen",
|
|
678
|
+
"type": "screen",
|
|
679
|
+
"description": "Social feed/timeline screen with posts, likes, comments, and pull-to-refresh",
|
|
680
|
+
"category": "Social",
|
|
681
|
+
"status": "beta",
|
|
682
|
+
"files": ["screens/feed-screen.tsx"],
|
|
683
|
+
"dependencies": ["react-native-safe-area-context", "react-native-svg"],
|
|
684
|
+
"registryDependencies": ["feed-post-card"]
|
|
685
|
+
},
|
|
686
|
+
{
|
|
687
|
+
"name": "row",
|
|
688
|
+
"type": "ui",
|
|
689
|
+
"description": "Horizontal flex container with gap, alignment, and padding props",
|
|
690
|
+
"category": "Layout",
|
|
691
|
+
"status": "beta",
|
|
692
|
+
"files": ["ui/row.tsx"],
|
|
693
|
+
"dependencies": [],
|
|
694
|
+
"registryDependencies": []
|
|
695
|
+
},
|
|
696
|
+
{
|
|
697
|
+
"name": "column",
|
|
698
|
+
"type": "ui",
|
|
699
|
+
"description": "Vertical flex container with gap, alignment, and padding props",
|
|
700
|
+
"category": "Layout",
|
|
701
|
+
"status": "beta",
|
|
702
|
+
"files": ["ui/column.tsx"],
|
|
703
|
+
"dependencies": [],
|
|
704
|
+
"registryDependencies": []
|
|
705
|
+
},
|
|
706
|
+
{
|
|
707
|
+
"name": "screen",
|
|
708
|
+
"type": "ui",
|
|
709
|
+
"description": "Screen container with safe area, scroll support, and background variants",
|
|
710
|
+
"category": "Layout",
|
|
711
|
+
"status": "beta",
|
|
712
|
+
"files": ["ui/screen.tsx"],
|
|
713
|
+
"dependencies": ["react-native-safe-area-context"],
|
|
714
|
+
"registryDependencies": []
|
|
715
|
+
}
|
|
716
|
+
]
|
|
717
|
+
}
|