create-auto-app 1.35.0 → 1.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4006 +0,0 @@
1
- [
2
- {
3
- "id": "ui-components-accordion",
4
- "name": "Accordion",
5
- "path": "./src/components/ui/Accordion.stories.tsx",
6
- "stories": [
7
- {
8
- "name": "Default",
9
- "snippet": "const Default = () => (\n <Accordion type=\"single\" collapsible className=\"w-full max-w-md\">\n <AccordionItem value=\"item-1\">\n <AccordionTrigger>Is it accessible?</AccordionTrigger>\n <AccordionContent>Yes. It adheres to the WAI-ARIA design pattern for accordions.</AccordionContent>\n </AccordionItem>\n <AccordionItem value=\"item-2\">\n <AccordionTrigger>Is it styled?</AccordionTrigger>\n <AccordionContent>Yes. It comes with default styles that match the other components.</AccordionContent>\n </AccordionItem>\n <AccordionItem value=\"item-3\">\n <AccordionTrigger>Is it animated?</AccordionTrigger>\n <AccordionContent>Yes. It uses CSS animations for smooth open and close transitions.</AccordionContent>\n </AccordionItem>\n </Accordion>\n);",
10
- "description": "Shows the accordion in single-select mode where only one item can be open at a time, with collapsible behavior.",
11
- "id": "ui-components-accordion--default",
12
- "exportName": "Default",
13
- "type": "story",
14
- "subtype": "story"
15
- },
16
- {
17
- "name": "Multiple",
18
- "snippet": "const Multiple = () => (\n <Accordion type=\"multiple\" className=\"w-full max-w-md\">\n <AccordionItem value=\"item-1\">\n <AccordionTrigger>First section</AccordionTrigger>\n <AccordionContent>Content for the first section. Multiple items can be open at once.</AccordionContent>\n </AccordionItem>\n <AccordionItem value=\"item-2\">\n <AccordionTrigger>Second section</AccordionTrigger>\n <AccordionContent>Content for the second section. Try opening multiple items.</AccordionContent>\n </AccordionItem>\n <AccordionItem value=\"item-3\">\n <AccordionTrigger>Third section</AccordionTrigger>\n <AccordionContent>Content for the third section. All three can be open simultaneously.</AccordionContent>\n </AccordionItem>\n </Accordion>\n);",
19
- "description": "Demonstrates multiple panels open simultaneously using `type=\"multiple\"`.",
20
- "id": "ui-components-accordion--multiple",
21
- "exportName": "Multiple",
22
- "type": "story",
23
- "subtype": "story"
24
- }
25
- ],
26
- "import": "import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from \"react-client\";",
27
- "jsDocTags": {},
28
- "description": "Expandable content sections. Use `type=\"single\"` for one open at a time, `type=\"multiple\"` for many.",
29
- "reactDocgen": {
30
- "description": "Expandable content sections. Use `type=\"single\"` for one open at a time, `type=\"multiple\"` for many.",
31
- "methods": [],
32
- "displayName": "Accordion",
33
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Accordion.tsx",
34
- "actualName": "Accordion",
35
- "exportName": "Accordion"
36
- },
37
- "componentPath": "./src/components/ui/Accordion.tsx",
38
- "title": "UI Components/Accordion",
39
- "tags": [
40
- "dev",
41
- "test",
42
- "manifest",
43
- "autodocs"
44
- ],
45
- "docs": {
46
- "id": "ui-components-accordion--docs",
47
- "title": "UI Components/Accordion",
48
- "name": "Docs",
49
- "importPath": "./src/components/ui/Accordion.stories.tsx",
50
- "type": "docs",
51
- "tags": [
52
- "dev",
53
- "test",
54
- "manifest",
55
- "autodocs"
56
- ],
57
- "storiesImports": []
58
- }
59
- },
60
- {
61
- "id": "ui-components-alert",
62
- "name": "Alert",
63
- "path": "./src/components/ui/Alert.stories.tsx",
64
- "stories": [
65
- {
66
- "name": "Default",
67
- "snippet": "const Default = () => (\n <Alert>\n <AlertTitle>Heads up!</AlertTitle>\n <AlertDescription>You can add components to your app using the CLI.</AlertDescription>\n </Alert>\n);",
68
- "description": "Shows the default informational alert variant with a title and description.",
69
- "id": "ui-components-alert--default",
70
- "exportName": "Default",
71
- "type": "story",
72
- "subtype": "story"
73
- },
74
- {
75
- "name": "Destructive",
76
- "snippet": "const Destructive = () => (\n <Alert variant=\"destructive\">\n <AlertTitle>Error</AlertTitle>\n <AlertDescription>Your session has expired. Please log in again.</AlertDescription>\n </Alert>\n);",
77
- "description": "Shows the destructive variant used for error or warning messages.",
78
- "id": "ui-components-alert--destructive",
79
- "exportName": "Destructive",
80
- "type": "story",
81
- "subtype": "story"
82
- }
83
- ],
84
- "import": "import { Alert, AlertDescription, AlertTitle } from \"react-client\";",
85
- "jsDocTags": {},
86
- "description": "Displays a callout message to attract user attention. Supports `default` and `destructive` variants. Compose with AlertTitle and AlertDescription. An optional leading SVG icon is automatically laid out in a grid column.",
87
- "reactDocgen": {
88
- "description": "Displays a callout message to attract user attention.\nSupports `default` and `destructive` variants. Compose with AlertTitle and AlertDescription.\nAn optional leading SVG icon is automatically laid out in a grid column.",
89
- "methods": [],
90
- "displayName": "Alert",
91
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Alert.tsx",
92
- "actualName": "Alert",
93
- "exportName": "Alert"
94
- },
95
- "componentPath": "./src/components/ui/Alert.tsx",
96
- "title": "UI Components/Alert",
97
- "tags": [
98
- "dev",
99
- "test",
100
- "manifest",
101
- "autodocs"
102
- ],
103
- "docs": {
104
- "id": "ui-components-alert--docs",
105
- "title": "UI Components/Alert",
106
- "name": "Docs",
107
- "importPath": "./src/components/ui/Alert.stories.tsx",
108
- "type": "docs",
109
- "tags": [
110
- "dev",
111
- "test",
112
- "manifest",
113
- "autodocs"
114
- ],
115
- "storiesImports": []
116
- }
117
- },
118
- {
119
- "id": "ui-components-alertdialog",
120
- "name": "AlertDialog",
121
- "path": "./src/components/ui/AlertDialog.stories.tsx",
122
- "stories": [
123
- {
124
- "name": "Default",
125
- "snippet": "const Default = () => (\n <AlertDialog>\n <AlertDialogTrigger asChild>\n <Button variant=\"outline\">Delete Account</Button>\n </AlertDialogTrigger>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>Are you absolutely sure?</AlertDialogTitle>\n <AlertDialogDescription>\n This action cannot be undone. This will permanently delete your account and remove your data from our\n servers.\n </AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel>Cancel</AlertDialogCancel>\n <AlertDialogAction>Continue</AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n);",
126
- "description": "Shows a standard confirmation dialog with cancel and continue actions.",
127
- "id": "ui-components-alertdialog--default",
128
- "exportName": "Default",
129
- "type": "story",
130
- "subtype": "story"
131
- },
132
- {
133
- "name": "DestructiveAction",
134
- "snippet": "const DestructiveAction = () => (\n <AlertDialog>\n <AlertDialogTrigger asChild>\n <Button variant=\"destructive\">Delete Item</Button>\n </AlertDialogTrigger>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>Delete this item?</AlertDialogTitle>\n <AlertDialogDescription>\n This item will be permanently removed. This action cannot be undone.\n </AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel>Cancel</AlertDialogCancel>\n <AlertDialogAction variant=\"destructive\">Delete</AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n);",
135
- "description": "Demonstrates a destructive confirmation using the destructive button variant for dangerous actions like deletion."
136
- }
137
- ],
138
- "import": "import {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n AlertDialogTrigger,\n Button,\n} from \"react-client\";",
139
- "jsDocTags": {},
140
- "description": "A confirmation modal requiring explicit user action. Unlike Dialog, cannot be dismissed by clicking outside.",
141
- "reactDocgen": {
142
- "description": "A confirmation modal requiring explicit user action. Unlike Dialog, cannot be dismissed by clicking outside.",
143
- "methods": [],
144
- "displayName": "AlertDialog",
145
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/AlertDialog.tsx",
146
- "actualName": "AlertDialog",
147
- "exportName": "AlertDialog"
148
- },
149
- "componentPath": "./src/components/ui/AlertDialog.tsx",
150
- "title": "UI Components/AlertDialog",
151
- "tags": [
152
- "dev",
153
- "test",
154
- "manifest",
155
- "autodocs"
156
- ],
157
- "docs": {
158
- "id": "ui-components-alertdialog--docs",
159
- "title": "UI Components/AlertDialog",
160
- "name": "Docs",
161
- "importPath": "./src/components/ui/AlertDialog.stories.tsx",
162
- "type": "docs",
163
- "tags": [
164
- "dev",
165
- "test",
166
- "manifest",
167
- "autodocs"
168
- ],
169
- "storiesImports": []
170
- }
171
- },
172
- {
173
- "id": "ui-components-aspectratio",
174
- "name": "AspectRatio",
175
- "path": "./src/components/ui/AspectRatio.stories.tsx",
176
- "stories": [
177
- {
178
- "name": "Default",
179
- "snippet": "const Default = () => (\n <div className=\"w-[450px]\">\n <AspectRatio ratio={16 / 9}>\n <div className=\"flex h-full w-full items-center justify-center rounded-md bg-slate-200 dark:bg-slate-800\">\n <span className=\"text-sm text-slate-500\">16:9 Aspect Ratio</span>\n </div>\n </AspectRatio>\n </div>\n);",
180
- "description": "Shows a 16:9 widescreen aspect ratio container.",
181
- "id": "ui-components-aspectratio--default",
182
- "exportName": "Default",
183
- "type": "story",
184
- "subtype": "story"
185
- },
186
- {
187
- "name": "Square",
188
- "snippet": "const Square = () => (\n <div className=\"w-[300px]\">\n <AspectRatio ratio={1}>\n <div className=\"flex h-full w-full items-center justify-center rounded-md bg-slate-200 dark:bg-slate-800\">\n <span className=\"text-sm text-slate-500\">1:1 Square</span>\n </div>\n </AspectRatio>\n </div>\n);",
189
- "description": "Shows a 1:1 square aspect ratio container.",
190
- "id": "ui-components-aspectratio--square",
191
- "exportName": "Square",
192
- "type": "story",
193
- "subtype": "story"
194
- }
195
- ],
196
- "import": "import { AspectRatio } from \"react-client\";",
197
- "jsDocTags": {},
198
- "description": "Constrains its child element to a specified width-to-height ratio (e.g., 16/9, 1/1). Useful for responsive images, videos, and media containers that must maintain proportions.",
199
- "reactDocgen": {
200
- "description": "Constrains its child element to a specified width-to-height ratio (e.g., 16/9, 1/1).\nUseful for responsive images, videos, and media containers that must maintain proportions.",
201
- "methods": [],
202
- "displayName": "AspectRatio",
203
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/AspectRatio.tsx",
204
- "actualName": "AspectRatio",
205
- "exportName": "AspectRatio"
206
- },
207
- "componentPath": "./src/components/ui/AspectRatio.tsx",
208
- "title": "UI Components/AspectRatio",
209
- "tags": [
210
- "dev",
211
- "test",
212
- "manifest",
213
- "autodocs"
214
- ],
215
- "docs": {
216
- "id": "ui-components-aspectratio--docs",
217
- "title": "UI Components/AspectRatio",
218
- "name": "Docs",
219
- "importPath": "./src/components/ui/AspectRatio.stories.tsx",
220
- "type": "docs",
221
- "tags": [
222
- "dev",
223
- "test",
224
- "manifest",
225
- "autodocs"
226
- ],
227
- "storiesImports": []
228
- }
229
- },
230
- {
231
- "id": "ui-components-avatar",
232
- "name": "Avatar",
233
- "path": "./src/components/ui/Avatar.stories.tsx",
234
- "stories": [
235
- {
236
- "name": "WithImage",
237
- "snippet": "const WithImage = () => (\n <Avatar>\n <AvatarImage src=\"https://github.com/shadcn.png\" alt=\"@shadcn\" />\n <AvatarFallback>CN</AvatarFallback>\n </Avatar>\n);",
238
- "description": "Shows an avatar with a loaded profile image and fallback initials."
239
- },
240
- {
241
- "name": "FallbackOnly",
242
- "snippet": "const FallbackOnly = () => (\n <Avatar>\n <AvatarFallback>AB</AvatarFallback>\n </Avatar>\n);",
243
- "description": "Shows an avatar displaying only fallback initials without an image."
244
- },
245
- {
246
- "name": "Sizes",
247
- "snippet": "const Sizes = () => (\n <div className=\"flex items-center gap-4\">\n <Avatar size=\"sm\">\n <AvatarFallback>SM</AvatarFallback>\n </Avatar>\n <Avatar size=\"default\">\n <AvatarFallback>MD</AvatarFallback>\n </Avatar>\n <Avatar size=\"lg\">\n <AvatarFallback>LG</AvatarFallback>\n </Avatar>\n </div>\n);",
248
- "description": "Demonstrates the three available avatar sizes: sm, default, and lg.",
249
- "id": "ui-components-avatar--sizes",
250
- "exportName": "Sizes",
251
- "type": "story",
252
- "subtype": "story"
253
- }
254
- ],
255
- "import": "import { Avatar, AvatarFallback, AvatarImage } from \"react-client\";",
256
- "jsDocTags": {},
257
- "description": "Displays a user profile image with a fallback for missing photos. Compose with AvatarImage, AvatarFallback, and optionally AvatarBadge. Use AvatarGroup to render overlapping stacks of avatars.",
258
- "reactDocgen": {
259
- "description": "Displays a user profile image with a fallback for missing photos.\nCompose with AvatarImage, AvatarFallback, and optionally AvatarBadge.\nUse AvatarGroup to render overlapping stacks of avatars.",
260
- "methods": [],
261
- "displayName": "Avatar",
262
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Avatar.tsx",
263
- "actualName": "Avatar",
264
- "exportName": "Avatar",
265
- "props": {
266
- "size": {
267
- "required": false,
268
- "tsType": {
269
- "name": "union",
270
- "raw": "'default' | 'sm' | 'lg'",
271
- "elements": [
272
- {
273
- "name": "literal",
274
- "value": "'default'"
275
- },
276
- {
277
- "name": "literal",
278
- "value": "'sm'"
279
- },
280
- {
281
- "name": "literal",
282
- "value": "'lg'"
283
- }
284
- ]
285
- },
286
- "description": "",
287
- "defaultValue": {
288
- "value": "'default'",
289
- "computed": false
290
- }
291
- }
292
- }
293
- },
294
- "componentPath": "./src/components/ui/Avatar.tsx",
295
- "title": "UI Components/Avatar",
296
- "tags": [
297
- "dev",
298
- "test",
299
- "manifest",
300
- "autodocs"
301
- ],
302
- "docs": {
303
- "id": "ui-components-avatar--docs",
304
- "title": "UI Components/Avatar",
305
- "name": "Docs",
306
- "importPath": "./src/components/ui/Avatar.stories.tsx",
307
- "type": "docs",
308
- "tags": [
309
- "dev",
310
- "test",
311
- "manifest",
312
- "autodocs"
313
- ],
314
- "storiesImports": []
315
- }
316
- },
317
- {
318
- "id": "ui-components-badge",
319
- "name": "Badge",
320
- "path": "./src/components/ui/Badge.stories.tsx",
321
- "stories": [
322
- {
323
- "name": "Default",
324
- "snippet": "const Default = () => <Badge>Default</Badge>;",
325
- "description": "Shows the primary filled badge variant.",
326
- "id": "ui-components-badge--default",
327
- "exportName": "Default",
328
- "type": "story",
329
- "subtype": "story"
330
- },
331
- {
332
- "name": "Secondary",
333
- "snippet": "const Secondary = () => <Badge variant=\"secondary\">Secondary</Badge>;",
334
- "description": "Shows the secondary badge variant with muted background.",
335
- "id": "ui-components-badge--secondary",
336
- "exportName": "Secondary",
337
- "type": "story",
338
- "subtype": "story"
339
- },
340
- {
341
- "name": "Destructive",
342
- "snippet": "const Destructive = () => <Badge variant=\"destructive\">Destructive</Badge>;",
343
- "description": "Shows the destructive badge variant for error or warning indicators.",
344
- "id": "ui-components-badge--destructive",
345
- "exportName": "Destructive",
346
- "type": "story",
347
- "subtype": "story"
348
- },
349
- {
350
- "name": "Outline",
351
- "snippet": "const Outline = () => <Badge variant=\"outline\">Outline</Badge>;",
352
- "description": "Shows the outline badge variant with a visible border and no fill.",
353
- "id": "ui-components-badge--outline",
354
- "exportName": "Outline",
355
- "type": "story",
356
- "subtype": "story"
357
- },
358
- {
359
- "name": "AllVariants",
360
- "snippet": "const AllVariants = () => (\n <div className=\"flex flex-wrap gap-2\">\n <Badge variant=\"default\">Default</Badge>\n <Badge variant=\"secondary\">Secondary</Badge>\n <Badge variant=\"destructive\">Destructive</Badge>\n <Badge variant=\"outline\">Outline</Badge>\n </div>\n);",
361
- "description": "Displays all badge variants side by side for visual comparison."
362
- }
363
- ],
364
- "import": "import { Badge } from \"react-client\";",
365
- "jsDocTags": {},
366
- "description": "A small label used to highlight status, category, or count. Supports multiple visual variants: default, secondary, destructive, outline, ghost, and link.",
367
- "reactDocgen": {
368
- "description": "A small label used to highlight status, category, or count.\nSupports multiple visual variants: default, secondary, destructive, outline, ghost, and link.",
369
- "methods": [],
370
- "displayName": "Badge",
371
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Badge.tsx",
372
- "actualName": "Badge",
373
- "exportName": "Badge",
374
- "props": {
375
- "asChild": {
376
- "required": false,
377
- "tsType": {
378
- "name": "boolean"
379
- },
380
- "description": "",
381
- "defaultValue": {
382
- "value": "false",
383
- "computed": false
384
- }
385
- },
386
- "variant": {
387
- "defaultValue": {
388
- "value": "'default'",
389
- "computed": false
390
- },
391
- "required": false
392
- }
393
- }
394
- },
395
- "componentPath": "./src/components/ui/Badge.tsx",
396
- "title": "UI Components/Badge",
397
- "tags": [
398
- "dev",
399
- "test",
400
- "manifest",
401
- "autodocs"
402
- ],
403
- "docs": {
404
- "id": "ui-components-badge--docs",
405
- "title": "UI Components/Badge",
406
- "name": "Docs",
407
- "importPath": "./src/components/ui/Badge.stories.tsx",
408
- "type": "docs",
409
- "tags": [
410
- "dev",
411
- "test",
412
- "manifest",
413
- "autodocs"
414
- ],
415
- "storiesImports": []
416
- }
417
- },
418
- {
419
- "id": "ui-components-breadcrumb",
420
- "name": "Breadcrumb",
421
- "path": "./src/components/ui/Breadcrumb.stories.tsx",
422
- "stories": [
423
- {
424
- "name": "Default",
425
- "snippet": "const Default = () => (\n <Breadcrumb>\n <BreadcrumbList>\n <BreadcrumbItem>\n <BreadcrumbLink href=\"/\">Home</BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator />\n <BreadcrumbItem>\n <BreadcrumbLink href=\"/components\">Components</BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator />\n <BreadcrumbItem>\n <BreadcrumbPage>Breadcrumb</BreadcrumbPage>\n </BreadcrumbItem>\n </BreadcrumbList>\n </Breadcrumb>\n);",
426
- "description": "Shows a three-level breadcrumb trail with home, category, and current page.",
427
- "id": "ui-components-breadcrumb--default",
428
- "exportName": "Default",
429
- "type": "story",
430
- "subtype": "story"
431
- },
432
- {
433
- "name": "TwoLevels",
434
- "snippet": "const TwoLevels = () => (\n <Breadcrumb>\n <BreadcrumbList>\n <BreadcrumbItem>\n <BreadcrumbLink href=\"/\">Dashboard</BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator />\n <BreadcrumbItem>\n <BreadcrumbPage>Settings</BreadcrumbPage>\n </BreadcrumbItem>\n </BreadcrumbList>\n </Breadcrumb>\n);",
435
- "description": "Shows a minimal two-level breadcrumb with just a parent link and current page."
436
- }
437
- ],
438
- "import": "import {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"react-client\";",
439
- "jsDocTags": {},
440
- "description": "A navigation aid that shows the user's current location within a site hierarchy. Compose with BreadcrumbList, BreadcrumbItem, BreadcrumbLink, BreadcrumbPage, and BreadcrumbSeparator. Renders as a `<nav>` with `aria-label=\"breadcrumb\"` for accessibility.",
441
- "reactDocgen": {
442
- "description": "A navigation aid that shows the user's current location within a site hierarchy.\nCompose with BreadcrumbList, BreadcrumbItem, BreadcrumbLink, BreadcrumbPage, and BreadcrumbSeparator.\nRenders as a `<nav>` with `aria-label=\"breadcrumb\"` for accessibility.",
443
- "methods": [],
444
- "displayName": "Breadcrumb",
445
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Breadcrumb.tsx",
446
- "actualName": "Breadcrumb",
447
- "exportName": "Breadcrumb"
448
- },
449
- "componentPath": "./src/components/ui/Breadcrumb.tsx",
450
- "title": "UI Components/Breadcrumb",
451
- "tags": [
452
- "dev",
453
- "test",
454
- "manifest",
455
- "autodocs"
456
- ],
457
- "docs": {
458
- "id": "ui-components-breadcrumb--docs",
459
- "title": "UI Components/Breadcrumb",
460
- "name": "Docs",
461
- "importPath": "./src/components/ui/Breadcrumb.stories.tsx",
462
- "type": "docs",
463
- "tags": [
464
- "dev",
465
- "test",
466
- "manifest",
467
- "autodocs"
468
- ],
469
- "storiesImports": []
470
- }
471
- },
472
- {
473
- "id": "ui-components-button",
474
- "name": "Button",
475
- "path": "./src/components/ui/Button.stories.tsx",
476
- "stories": [
477
- {
478
- "name": "Default",
479
- "snippet": "const Default = () => <Button>Button</Button>;",
480
- "description": "Shows the primary filled button variant.",
481
- "id": "ui-components-button--default",
482
- "exportName": "Default",
483
- "type": "story",
484
- "subtype": "story"
485
- },
486
- {
487
- "name": "Secondary",
488
- "snippet": "const Secondary = () => <Button variant=\"secondary\">Secondary</Button>;",
489
- "description": "Shows the secondary button variant with muted styling.",
490
- "id": "ui-components-button--secondary",
491
- "exportName": "Secondary",
492
- "type": "story",
493
- "subtype": "story"
494
- },
495
- {
496
- "name": "Destructive",
497
- "snippet": "const Destructive = () => <Button variant=\"destructive\">Destructive</Button>;",
498
- "description": "Shows the destructive button variant for dangerous actions like delete.",
499
- "id": "ui-components-button--destructive",
500
- "exportName": "Destructive",
501
- "type": "story",
502
- "subtype": "story"
503
- },
504
- {
505
- "name": "Outline",
506
- "snippet": "const Outline = () => <Button variant=\"outline\">Outline</Button>;",
507
- "description": "Shows the outline button variant with a border and transparent background.",
508
- "id": "ui-components-button--outline",
509
- "exportName": "Outline",
510
- "type": "story",
511
- "subtype": "story"
512
- },
513
- {
514
- "name": "Ghost",
515
- "snippet": "const Ghost = () => <Button variant=\"ghost\">Ghost</Button>;",
516
- "description": "Shows the ghost button variant with no background until hovered.",
517
- "id": "ui-components-button--ghost",
518
- "exportName": "Ghost",
519
- "type": "story",
520
- "subtype": "story"
521
- },
522
- {
523
- "name": "Link",
524
- "snippet": "const Link = () => <Button variant=\"link\">Link</Button>;",
525
- "description": "Shows the link button variant styled as an inline text link with underline on hover.",
526
- "id": "ui-components-button--link",
527
- "exportName": "Link",
528
- "type": "story",
529
- "subtype": "story"
530
- },
531
- {
532
- "name": "Small",
533
- "snippet": "const Small = () => <Button size=\"sm\">Small</Button>;",
534
- "description": "Shows a compact small-sized button.",
535
- "id": "ui-components-button--small",
536
- "exportName": "Small",
537
- "type": "story",
538
- "subtype": "story"
539
- },
540
- {
541
- "name": "Large",
542
- "snippet": "const Large = () => <Button size=\"lg\">Large</Button>;",
543
- "description": "Shows a larger button with more padding.",
544
- "id": "ui-components-button--large",
545
- "exportName": "Large",
546
- "type": "story",
547
- "subtype": "story"
548
- },
549
- {
550
- "name": "Icon",
551
- "snippet": "const Icon = () => <Button size=\"icon\">X</Button>;",
552
- "description": "Shows an icon-only square button.",
553
- "id": "ui-components-button--icon",
554
- "exportName": "Icon",
555
- "type": "story",
556
- "subtype": "story"
557
- },
558
- {
559
- "name": "AllVariants",
560
- "snippet": "const AllVariants = () => (\n <div className=\"flex flex-col gap-4\">\n <div className=\"flex flex-wrap items-center gap-2\">\n <Button variant=\"default\">Default</Button>\n <Button variant=\"secondary\">Secondary</Button>\n <Button variant=\"destructive\">Destructive</Button>\n <Button variant=\"outline\">Outline</Button>\n <Button variant=\"ghost\">Ghost</Button>\n <Button variant=\"link\">Link</Button>\n </div>\n <div className=\"flex flex-wrap items-center gap-2\">\n <Button size=\"sm\">Small</Button>\n <Button size=\"default\">Default</Button>\n <Button size=\"lg\">Large</Button>\n <Button size=\"icon\">X</Button>\n </div>\n </div>\n);",
561
- "description": "Displays all button variants and sizes side by side for visual comparison."
562
- }
563
- ],
564
- "import": "import { Button } from \"react-client\";",
565
- "jsDocTags": {},
566
- "description": "A clickable element that triggers an action or navigation. Supports six visual variants (default, secondary, destructive, outline, ghost, link) and multiple sizes including icon-only modes.",
567
- "reactDocgen": {
568
- "description": "A clickable element that triggers an action or navigation.\nSupports six visual variants (default, secondary, destructive, outline, ghost, link) and multiple sizes including icon-only modes.",
569
- "methods": [],
570
- "displayName": "Button",
571
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Button.tsx",
572
- "actualName": "Button",
573
- "exportName": "Button",
574
- "props": {
575
- "asChild": {
576
- "required": false,
577
- "tsType": {
578
- "name": "boolean"
579
- },
580
- "description": "",
581
- "defaultValue": {
582
- "value": "false",
583
- "computed": false
584
- }
585
- },
586
- "variant": {
587
- "defaultValue": {
588
- "value": "'default'",
589
- "computed": false
590
- },
591
- "required": false
592
- },
593
- "size": {
594
- "defaultValue": {
595
- "value": "'default'",
596
- "computed": false
597
- },
598
- "required": false
599
- }
600
- }
601
- },
602
- "componentPath": "./src/components/ui/Button.tsx",
603
- "title": "UI Components/Button",
604
- "tags": [
605
- "dev",
606
- "test",
607
- "manifest",
608
- "autodocs"
609
- ],
610
- "docs": {
611
- "id": "ui-components-button--docs",
612
- "title": "UI Components/Button",
613
- "name": "Docs",
614
- "importPath": "./src/components/ui/Button.stories.tsx",
615
- "type": "docs",
616
- "tags": [
617
- "dev",
618
- "test",
619
- "manifest",
620
- "autodocs"
621
- ],
622
- "storiesImports": []
623
- }
624
- },
625
- {
626
- "id": "ui-components-buttongroup",
627
- "name": "ButtonGroup",
628
- "path": "./src/components/ui/ButtonGroup.stories.tsx",
629
- "stories": [
630
- {
631
- "name": "Default",
632
- "snippet": "const Default = () => (\n <ButtonGroup>\n <Button variant=\"outline\">Left</Button>\n <Button variant=\"outline\">Center</Button>\n <Button variant=\"outline\">Right</Button>\n </ButtonGroup>\n);",
633
- "description": "Shows a horizontal group of three outline buttons with connected borders.",
634
- "id": "ui-components-buttongroup--default",
635
- "exportName": "Default",
636
- "type": "story",
637
- "subtype": "story"
638
- },
639
- {
640
- "name": "Vertical",
641
- "snippet": "const Vertical = () => (\n <ButtonGroup orientation=\"vertical\">\n <Button variant=\"outline\">Top</Button>\n <Button variant=\"outline\">Middle</Button>\n <Button variant=\"outline\">Bottom</Button>\n </ButtonGroup>\n);",
642
- "description": "Shows a vertically stacked button group.",
643
- "id": "ui-components-buttongroup--vertical",
644
- "exportName": "Vertical",
645
- "type": "story",
646
- "subtype": "story"
647
- }
648
- ],
649
- "import": "import { Button, ButtonGroup } from \"react-client\";",
650
- "jsDocTags": {},
651
- "description": "Groups multiple Buttons together with connected borders, removing inner border-radius between siblings. Supports horizontal (default) and vertical orientation.",
652
- "reactDocgen": {
653
- "description": "Groups multiple Buttons together with connected borders, removing inner border-radius between siblings.\nSupports horizontal (default) and vertical orientation.",
654
- "methods": [],
655
- "displayName": "ButtonGroup",
656
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/ButtonGroup.tsx",
657
- "actualName": "ButtonGroup",
658
- "exportName": "ButtonGroup"
659
- },
660
- "componentPath": "./src/components/ui/ButtonGroup.tsx",
661
- "title": "UI Components/ButtonGroup",
662
- "tags": [
663
- "dev",
664
- "test",
665
- "manifest",
666
- "autodocs"
667
- ],
668
- "docs": {
669
- "id": "ui-components-buttongroup--docs",
670
- "title": "UI Components/ButtonGroup",
671
- "name": "Docs",
672
- "importPath": "./src/components/ui/ButtonGroup.stories.tsx",
673
- "type": "docs",
674
- "tags": [
675
- "dev",
676
- "test",
677
- "manifest",
678
- "autodocs"
679
- ],
680
- "storiesImports": []
681
- }
682
- },
683
- {
684
- "id": "ui-components-calendar",
685
- "name": "Calendar",
686
- "path": "./src/components/ui/Calendar.stories.tsx",
687
- "stories": [
688
- {
689
- "name": "Default",
690
- "snippet": "const Default = () => <CalendarDemo />;",
691
- "description": "Shows a single-date selection calendar with controlled state.",
692
- "id": "ui-components-calendar--default",
693
- "exportName": "Default",
694
- "type": "story",
695
- "subtype": "story"
696
- },
697
- {
698
- "name": "RangeSelection",
699
- "snippet": "const RangeSelection = () => <CalendarRangeDemo />;",
700
- "description": "Demonstrates date range selection across two side-by-side months."
701
- }
702
- ],
703
- "import": "import { Calendar } from \"react-client\";",
704
- "jsDocTags": {},
705
- "description": "A date picker component built on react-day-picker supporting single date, multiple date, and date range selection. Supports month/year dropdowns, outside days visibility, keyboard navigation, and multi-month layouts.",
706
- "reactDocgen": {
707
- "description": "A date picker component built on react-day-picker supporting single date, multiple date, and date range selection.\nSupports month/year dropdowns, outside days visibility, keyboard navigation, and multi-month layouts.",
708
- "methods": [],
709
- "displayName": "Calendar",
710
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Calendar.tsx",
711
- "actualName": "Calendar",
712
- "exportName": "Calendar",
713
- "props": {
714
- "buttonVariant": {
715
- "required": false,
716
- "tsType": {
717
- "name": "ReactComponentProps['variant']",
718
- "raw": "React.ComponentProps<typeof Button>['variant']"
719
- },
720
- "description": "",
721
- "defaultValue": {
722
- "value": "'ghost'",
723
- "computed": false
724
- }
725
- },
726
- "showOutsideDays": {
727
- "defaultValue": {
728
- "value": "true",
729
- "computed": false
730
- },
731
- "required": false
732
- },
733
- "captionLayout": {
734
- "defaultValue": {
735
- "value": "'label'",
736
- "computed": false
737
- },
738
- "required": false
739
- }
740
- }
741
- },
742
- "componentPath": "./src/components/ui/Calendar.tsx",
743
- "title": "UI Components/Calendar",
744
- "tags": [
745
- "dev",
746
- "test",
747
- "manifest",
748
- "autodocs"
749
- ],
750
- "docs": {
751
- "id": "ui-components-calendar--docs",
752
- "title": "UI Components/Calendar",
753
- "name": "Docs",
754
- "importPath": "./src/components/ui/Calendar.stories.tsx",
755
- "type": "docs",
756
- "tags": [
757
- "dev",
758
- "test",
759
- "manifest",
760
- "autodocs"
761
- ],
762
- "storiesImports": []
763
- }
764
- },
765
- {
766
- "id": "ui-components-card",
767
- "name": "Card",
768
- "path": "./src/components/ui/Card.stories.tsx",
769
- "stories": [
770
- {
771
- "name": "Default",
772
- "snippet": "const Default = () => (\n <Card className=\"w-[350px]\">\n <CardHeader>\n <CardTitle>Card Title</CardTitle>\n <CardDescription>Card description goes here.</CardDescription>\n </CardHeader>\n <CardContent>\n <p>Card content with some example text to demonstrate the layout.</p>\n </CardContent>\n <CardFooter className=\"flex justify-between\">\n <Button variant=\"outline\">Cancel</Button>\n <Button>Deploy</Button>\n </CardFooter>\n </Card>\n);",
773
- "description": "Shows a full card with header, content, and footer containing action buttons.",
774
- "id": "ui-components-card--default",
775
- "exportName": "Default",
776
- "type": "story",
777
- "subtype": "story"
778
- },
779
- {
780
- "name": "Simple",
781
- "snippet": "const Simple = () => (\n <Card className=\"w-[350px]\">\n <CardHeader>\n <CardTitle>Notifications</CardTitle>\n <CardDescription>You have 3 unread messages.</CardDescription>\n </CardHeader>\n <CardContent>\n <p className=\"text-sm text-muted-foreground\">Check your inbox for the latest updates.</p>\n </CardContent>\n </Card>\n);",
782
- "description": "Shows a minimal card with only a header and content, without a footer.",
783
- "id": "ui-components-card--simple",
784
- "exportName": "Simple",
785
- "type": "story",
786
- "subtype": "story"
787
- }
788
- ],
789
- "import": "import {\n Button,\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"react-client\";",
790
- "jsDocTags": {},
791
- "description": "A flexible container for grouping related content with a border, shadow, and rounded corners. Compose with CardHeader, CardTitle, CardDescription, CardContent, CardFooter, and CardAction.",
792
- "reactDocgen": {
793
- "description": "A flexible container for grouping related content with a border, shadow, and rounded corners.\nCompose with CardHeader, CardTitle, CardDescription, CardContent, CardFooter, and CardAction.",
794
- "methods": [],
795
- "displayName": "Card",
796
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Card.tsx",
797
- "actualName": "Card",
798
- "exportName": "Card"
799
- },
800
- "componentPath": "./src/components/ui/Card.tsx",
801
- "title": "UI Components/Card",
802
- "tags": [
803
- "dev",
804
- "test",
805
- "manifest",
806
- "autodocs"
807
- ],
808
- "docs": {
809
- "id": "ui-components-card--docs",
810
- "title": "UI Components/Card",
811
- "name": "Docs",
812
- "importPath": "./src/components/ui/Card.stories.tsx",
813
- "type": "docs",
814
- "tags": [
815
- "dev",
816
- "test",
817
- "manifest",
818
- "autodocs"
819
- ],
820
- "storiesImports": []
821
- }
822
- },
823
- {
824
- "id": "ui-components-carousel",
825
- "name": "Carousel",
826
- "path": "./src/components/ui/Carousel.stories.tsx",
827
- "stories": [
828
- {
829
- "name": "Default",
830
- "snippet": "const Default = () => (\n <div className=\"w-full max-w-xs mx-auto\">\n <Carousel>\n <CarouselContent>\n {Array.from({ length: 5 }).map((_, index) => (\n <CarouselItem key={index}>\n <Card>\n <CardContent className=\"flex aspect-square items-center justify-center p-6\">\n <span className=\"text-4xl font-semibold\">{index + 1}</span>\n </CardContent>\n </Card>\n </CarouselItem>\n ))}\n </CarouselContent>\n <CarouselPrevious />\n <CarouselNext />\n </Carousel>\n </div>\n);",
831
- "description": "Shows a basic carousel with one full-width slide visible at a time and navigation arrows.",
832
- "id": "ui-components-carousel--default",
833
- "exportName": "Default",
834
- "type": "story",
835
- "subtype": "story"
836
- },
837
- {
838
- "name": "ThirdWidth",
839
- "snippet": "const ThirdWidth = () => (\n <div className=\"w-full max-w-sm mx-auto\">\n <Carousel>\n <CarouselContent>\n {Array.from({ length: 5 }).map((_, index) => (\n <CarouselItem key={index} className=\"basis-1/3\">\n <Card>\n <CardContent className=\"flex aspect-square items-center justify-center p-2\">\n <span className=\"text-2xl font-semibold\">{index + 1}</span>\n </CardContent>\n </Card>\n </CarouselItem>\n ))}\n </CarouselContent>\n <CarouselPrevious />\n <CarouselNext />\n </Carousel>\n </div>\n);",
840
- "description": "Demonstrates showing three slides simultaneously using `basis-1/3` on each CarouselItem."
841
- }
842
- ],
843
- "import": "import {\n Card,\n CardContent,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n} from \"react-client\";",
844
- "jsDocTags": {},
845
- "description": "A slideshow component for cycling through content panels with arrow-key navigation. Built on Embla Carousel. Compose with CarouselContent, CarouselItem, CarouselPrevious, and CarouselNext. Supports horizontal and vertical orientation, and accepts Embla plugins (e.g., autoplay).",
846
- "reactDocgen": {
847
- "description": "A slideshow component for cycling through content panels with arrow-key navigation.\nBuilt on Embla Carousel. Compose with CarouselContent, CarouselItem, CarouselPrevious, and CarouselNext.\nSupports horizontal and vertical orientation, and accepts Embla plugins (e.g., autoplay).",
848
- "methods": [],
849
- "displayName": "Carousel",
850
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Carousel.tsx",
851
- "actualName": "Carousel",
852
- "exportName": "Carousel",
853
- "props": {
854
- "opts": {
855
- "required": false,
856
- "tsType": {
857
- "name": "Parameters[0]",
858
- "raw": "UseCarouselParameters[0]"
859
- },
860
- "description": ""
861
- },
862
- "plugins": {
863
- "required": false,
864
- "tsType": {
865
- "name": "Parameters[1]",
866
- "raw": "UseCarouselParameters[1]"
867
- },
868
- "description": ""
869
- },
870
- "orientation": {
871
- "required": false,
872
- "tsType": {
873
- "name": "union",
874
- "raw": "'horizontal' | 'vertical'",
875
- "elements": [
876
- {
877
- "name": "literal",
878
- "value": "'horizontal'"
879
- },
880
- {
881
- "name": "literal",
882
- "value": "'vertical'"
883
- }
884
- ]
885
- },
886
- "description": "",
887
- "defaultValue": {
888
- "value": "'horizontal'",
889
- "computed": false
890
- }
891
- },
892
- "setApi": {
893
- "required": false,
894
- "tsType": {
895
- "name": "signature",
896
- "type": "function",
897
- "raw": "(api: CarouselApi) => void",
898
- "signature": {
899
- "arguments": [
900
- {
901
- "type": {
902
- "name": "UseEmblaCarouselType[1]",
903
- "raw": "UseEmblaCarouselType[1]"
904
- },
905
- "name": "api"
906
- }
907
- ],
908
- "return": {
909
- "name": "void"
910
- }
911
- }
912
- },
913
- "description": ""
914
- }
915
- }
916
- },
917
- "componentPath": "./src/components/ui/Carousel.tsx",
918
- "title": "UI Components/Carousel",
919
- "tags": [
920
- "dev",
921
- "test",
922
- "manifest",
923
- "autodocs"
924
- ],
925
- "docs": {
926
- "id": "ui-components-carousel--docs",
927
- "title": "UI Components/Carousel",
928
- "name": "Docs",
929
- "importPath": "./src/components/ui/Carousel.stories.tsx",
930
- "type": "docs",
931
- "tags": [
932
- "dev",
933
- "test",
934
- "manifest",
935
- "autodocs"
936
- ],
937
- "storiesImports": []
938
- }
939
- },
940
- {
941
- "id": "ui-components-chart",
942
- "name": "ChartContainer",
943
- "path": "./src/components/ui/Chart.stories.tsx",
944
- "stories": [
945
- {
946
- "name": "Default",
947
- "snippet": "const Default = () => (\n <ChartContainer config={chartConfig} className=\"min-h-[200px] w-full\">\n <BarChart data={chartData}>\n <XAxis dataKey=\"month\" />\n <YAxis />\n <ChartTooltip content={<ChartTooltipContent />} />\n <Bar dataKey=\"desktop\" fill=\"var(--color-desktop)\" radius={4} />\n <Bar dataKey=\"mobile\" fill=\"var(--color-mobile)\" radius={4} />\n </BarChart>\n </ChartContainer>\n);",
948
- "description": "Shows a grouped bar chart with desktop and mobile data series, tooltips, and themed colors.",
949
- "id": "ui-components-chart--default",
950
- "exportName": "Default",
951
- "type": "story",
952
- "subtype": "story"
953
- }
954
- ],
955
- "import": "import { Bar, BarChart, XAxis, YAxis } from \"recharts\";\nimport { ChartContainer, ChartTooltip, ChartTooltipContent } from \"react-client\";",
956
- "jsDocTags": {},
957
- "description": "A themed wrapper for Recharts charts that provides responsive sizing, CSS custom property-based color theming, and a chart context for tooltips and legends. Pass a `config` object mapping data keys to labels, colors, and optional icons.",
958
- "reactDocgen": {
959
- "description": "A themed wrapper for Recharts charts that provides responsive sizing, CSS custom property-based color theming, and a chart context for tooltips and legends.\nPass a `config` object mapping data keys to labels, colors, and optional icons.",
960
- "methods": [],
961
- "displayName": "ChartContainer",
962
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Chart.tsx",
963
- "actualName": "ChartContainer",
964
- "exportName": "ChartContainer",
965
- "props": {
966
- "config": {
967
- "required": true,
968
- "tsType": {
969
- "name": "signature",
970
- "type": "object",
971
- "raw": "{\n [k in string]: {\n label?: React.ReactNode;\n icon?: React.ComponentType;\n } & ({ color?: string; theme?: never } | { color?: never; theme: Record<keyof typeof THEMES, string> });\n}",
972
- "signature": {
973
- "properties": [
974
- {
975
- "key": {
976
- "name": "string",
977
- "required": true
978
- },
979
- "value": {
980
- "name": "intersection",
981
- "raw": "{\n label?: React.ReactNode;\n icon?: React.ComponentType;\n} & ({ color?: string; theme?: never } | { color?: never; theme: Record<keyof typeof THEMES, string> })",
982
- "elements": [
983
- {
984
- "name": "signature",
985
- "type": "object",
986
- "raw": "{\n label?: React.ReactNode;\n icon?: React.ComponentType;\n}",
987
- "signature": {
988
- "properties": [
989
- {
990
- "key": "label",
991
- "value": {
992
- "name": "ReactReactNode",
993
- "raw": "React.ReactNode",
994
- "required": false
995
- }
996
- },
997
- {
998
- "key": "icon",
999
- "value": {
1000
- "name": "ReactComponentType",
1001
- "raw": "React.ComponentType",
1002
- "required": false
1003
- }
1004
- }
1005
- ]
1006
- }
1007
- },
1008
- {
1009
- "name": "unknown"
1010
- }
1011
- ]
1012
- }
1013
- }
1014
- ]
1015
- }
1016
- },
1017
- "description": ""
1018
- },
1019
- "children": {
1020
- "required": true,
1021
- "tsType": {
1022
- "name": "ReactComponentProps['children']",
1023
- "raw": "React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>['children']"
1024
- },
1025
- "description": ""
1026
- }
1027
- }
1028
- },
1029
- "componentPath": "./src/components/ui/Chart.tsx",
1030
- "title": "UI Components/Chart",
1031
- "tags": [
1032
- "dev",
1033
- "test",
1034
- "manifest",
1035
- "autodocs"
1036
- ],
1037
- "docs": {
1038
- "id": "ui-components-chart--docs",
1039
- "title": "UI Components/Chart",
1040
- "name": "Docs",
1041
- "importPath": "./src/components/ui/Chart.stories.tsx",
1042
- "type": "docs",
1043
- "tags": [
1044
- "dev",
1045
- "test",
1046
- "manifest",
1047
- "autodocs"
1048
- ],
1049
- "storiesImports": []
1050
- }
1051
- },
1052
- {
1053
- "id": "ui-components-checkbox",
1054
- "name": "Checkbox",
1055
- "path": "./src/components/ui/Checkbox.stories.tsx",
1056
- "stories": [
1057
- {
1058
- "name": "Default",
1059
- "snippet": "const Default = () => <Checkbox />;",
1060
- "description": "Shows an unchecked checkbox in its default state.",
1061
- "id": "ui-components-checkbox--default",
1062
- "exportName": "Default",
1063
- "type": "story",
1064
- "subtype": "story"
1065
- },
1066
- {
1067
- "name": "Checked",
1068
- "snippet": "const Checked = () => <Checkbox defaultChecked />;",
1069
- "description": "Shows a checkbox that starts in the checked state.",
1070
- "id": "ui-components-checkbox--checked",
1071
- "exportName": "Checked",
1072
- "type": "story",
1073
- "subtype": "story"
1074
- },
1075
- {
1076
- "name": "Disabled",
1077
- "snippet": "const Disabled = () => <Checkbox disabled />;",
1078
- "description": "Shows a disabled checkbox that cannot be interacted with.",
1079
- "id": "ui-components-checkbox--disabled",
1080
- "exportName": "Disabled",
1081
- "type": "story",
1082
- "subtype": "story"
1083
- },
1084
- {
1085
- "name": "WithLabel",
1086
- "snippet": "const WithLabel = () => (\n <div className=\"flex items-center space-x-2\">\n <Checkbox id=\"terms\" />\n <Label htmlFor=\"terms\">Accept terms and conditions</Label>\n </div>\n);",
1087
- "description": "Shows a checkbox paired with a Label component for accessible form usage."
1088
- }
1089
- ],
1090
- "import": "import { Checkbox, Label } from \"react-client\";",
1091
- "jsDocTags": {},
1092
- "description": "A toggleable boolean input with check icon. Supports checked, unchecked, and indeterminate states. Pair with Label for forms.",
1093
- "reactDocgen": {
1094
- "description": "A toggleable boolean input with check icon. Supports checked, unchecked, and indeterminate states. Pair with Label for forms.",
1095
- "methods": [],
1096
- "displayName": "Checkbox",
1097
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Checkbox.tsx",
1098
- "actualName": "Checkbox",
1099
- "exportName": "Checkbox"
1100
- },
1101
- "componentPath": "./src/components/ui/Checkbox.tsx",
1102
- "title": "UI Components/Checkbox",
1103
- "tags": [
1104
- "dev",
1105
- "test",
1106
- "manifest",
1107
- "autodocs"
1108
- ],
1109
- "docs": {
1110
- "id": "ui-components-checkbox--docs",
1111
- "title": "UI Components/Checkbox",
1112
- "name": "Docs",
1113
- "importPath": "./src/components/ui/Checkbox.stories.tsx",
1114
- "type": "docs",
1115
- "tags": [
1116
- "dev",
1117
- "test",
1118
- "manifest",
1119
- "autodocs"
1120
- ],
1121
- "storiesImports": []
1122
- }
1123
- },
1124
- {
1125
- "id": "ui-components-collapsible",
1126
- "name": "Collapsible",
1127
- "path": "./src/components/ui/Collapsible.stories.tsx",
1128
- "stories": [
1129
- {
1130
- "name": "Default",
1131
- "snippet": "const Default = () => <CollapsibleDemo />;",
1132
- "description": "Shows a controlled collapsible section that starts closed and can be toggled with a button.",
1133
- "id": "ui-components-collapsible--default",
1134
- "exportName": "Default",
1135
- "type": "story",
1136
- "subtype": "story"
1137
- },
1138
- {
1139
- "name": "DefaultOpen",
1140
- "snippet": "const DefaultOpen = () => (\n <Collapsible defaultOpen className=\"w-[350px] space-y-2\">\n <div className=\"flex items-center justify-between space-x-4 px-4\">\n <h4 className=\"text-sm font-semibold\">Additional details</h4>\n <CollapsibleTrigger asChild>\n <Button variant=\"ghost\" size=\"sm\">\n Toggle\n </Button>\n </CollapsibleTrigger>\n </div>\n <CollapsibleContent className=\"space-y-2\">\n <div className=\"rounded-md border px-4 py-2 text-sm shadow-sm\">\n This section is open by default and can be collapsed.\n </div>\n </CollapsibleContent>\n </Collapsible>\n);",
1141
- "description": "Shows a collapsible section that starts in the open state using `defaultOpen`."
1142
- }
1143
- ],
1144
- "import": "import { Button, Collapsible, CollapsibleContent, CollapsibleTrigger } from \"react-client\";",
1145
- "jsDocTags": {},
1146
- "description": "A disclosure widget that toggles content visibility. Compose with CollapsibleTrigger and CollapsibleContent.",
1147
- "reactDocgen": {
1148
- "description": "A disclosure widget that toggles content visibility. Compose with CollapsibleTrigger and CollapsibleContent.",
1149
- "methods": [],
1150
- "displayName": "Collapsible",
1151
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Collapsible.tsx",
1152
- "actualName": "Collapsible",
1153
- "exportName": "Collapsible"
1154
- },
1155
- "componentPath": "./src/components/ui/Collapsible.tsx",
1156
- "title": "UI Components/Collapsible",
1157
- "tags": [
1158
- "dev",
1159
- "test",
1160
- "manifest",
1161
- "autodocs"
1162
- ],
1163
- "docs": {
1164
- "id": "ui-components-collapsible--docs",
1165
- "title": "UI Components/Collapsible",
1166
- "name": "Docs",
1167
- "importPath": "./src/components/ui/Collapsible.stories.tsx",
1168
- "type": "docs",
1169
- "tags": [
1170
- "dev",
1171
- "test",
1172
- "manifest",
1173
- "autodocs"
1174
- ],
1175
- "storiesImports": []
1176
- }
1177
- },
1178
- {
1179
- "id": "ui-components-combobox",
1180
- "name": "ComboboxInput",
1181
- "path": "./src/components/ui/Combobox.stories.tsx",
1182
- "stories": [
1183
- {
1184
- "name": "Default",
1185
- "snippet": "const Default = () => <SearchableCombobox />;",
1186
- "description": "Shows a searchable combobox with type-ahead filtering of framework options.",
1187
- "id": "ui-components-combobox--default",
1188
- "exportName": "Default",
1189
- "type": "story",
1190
- "subtype": "story"
1191
- },
1192
- {
1193
- "name": "WithClear",
1194
- "snippet": "const WithClear = () => <ClearableCombobox />;",
1195
- "description": "Demonstrates the combobox with a clear button that resets the selection."
1196
- }
1197
- ],
1198
- "import": "import {\n Combobox,\n ComboboxContent,\n ComboboxEmpty,\n ComboboxInput,\n ComboboxItem,\n ComboboxList,\n} from \"react-client\";",
1199
- "jsDocTags": {},
1200
- "description": "Text input for filtering combobox options, wrapped in an InputGroup with optional trigger and clear buttons.",
1201
- "reactDocgen": {
1202
- "description": "Text input for filtering combobox options, wrapped in an InputGroup with optional trigger and clear buttons.",
1203
- "methods": [],
1204
- "displayName": "ComboboxInput",
1205
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Combobox.tsx",
1206
- "actualName": "ComboboxInput",
1207
- "exportName": "ComboboxInput",
1208
- "props": {
1209
- "showTrigger": {
1210
- "required": false,
1211
- "tsType": {
1212
- "name": "boolean"
1213
- },
1214
- "description": "",
1215
- "defaultValue": {
1216
- "value": "true",
1217
- "computed": false
1218
- }
1219
- },
1220
- "showClear": {
1221
- "required": false,
1222
- "tsType": {
1223
- "name": "boolean"
1224
- },
1225
- "description": "",
1226
- "defaultValue": {
1227
- "value": "false",
1228
- "computed": false
1229
- }
1230
- },
1231
- "disabled": {
1232
- "defaultValue": {
1233
- "value": "false",
1234
- "computed": false
1235
- },
1236
- "required": false
1237
- }
1238
- }
1239
- },
1240
- "componentPath": "./src/components/ui/Combobox.tsx",
1241
- "title": "UI Components/Combobox",
1242
- "tags": [
1243
- "dev",
1244
- "test",
1245
- "manifest",
1246
- "autodocs"
1247
- ],
1248
- "docs": {
1249
- "id": "ui-components-combobox--docs",
1250
- "title": "UI Components/Combobox",
1251
- "name": "Docs",
1252
- "importPath": "./src/components/ui/Combobox.stories.tsx",
1253
- "type": "docs",
1254
- "tags": [
1255
- "dev",
1256
- "test",
1257
- "manifest",
1258
- "autodocs"
1259
- ],
1260
- "storiesImports": []
1261
- }
1262
- },
1263
- {
1264
- "id": "ui-components-command",
1265
- "name": "Command",
1266
- "path": "./src/components/ui/Command.stories.tsx",
1267
- "stories": [
1268
- {
1269
- "name": "Default",
1270
- "snippet": "const Default = () => (\n <Command className=\"rounded-lg border shadow-md md:min-w-[450px]\">\n <CommandInput placeholder=\"Type a command or search...\" />\n <CommandList>\n <CommandEmpty>No results found.</CommandEmpty>\n <CommandGroup heading=\"Suggestions\">\n <CommandItem>\n <CalendarIcon />\n <span>Calendar</span>\n </CommandItem>\n <CommandItem>\n <MailIcon />\n <span>Mail</span>\n </CommandItem>\n </CommandGroup>\n <CommandSeparator />\n <CommandGroup heading=\"Settings\">\n <CommandItem>\n <UserIcon />\n <span>Profile</span>\n <CommandShortcut>Ctrl+P</CommandShortcut>\n </CommandItem>\n <CommandItem>\n <CreditCardIcon />\n <span>Billing</span>\n <CommandShortcut>Ctrl+B</CommandShortcut>\n </CommandItem>\n <CommandItem>\n <SettingsIcon />\n <span>Settings</span>\n <CommandShortcut>Ctrl+S</CommandShortcut>\n </CommandItem>\n </CommandGroup>\n </CommandList>\n </Command>\n);",
1271
- "description": "Shows the command palette with grouped items, icons, keyboard shortcuts, and a search input.",
1272
- "id": "ui-components-command--default",
1273
- "exportName": "Default",
1274
- "type": "story",
1275
- "subtype": "story"
1276
- },
1277
- {
1278
- "name": "WithNoResults",
1279
- "snippet": "const WithNoResults = () => (\n <Command className=\"rounded-lg border shadow-md md:min-w-[450px]\">\n <CommandInput placeholder=\"Search...\" />\n <CommandList>\n <CommandEmpty>No results found.</CommandEmpty>\n </CommandList>\n </Command>\n);",
1280
- "description": "Shows the empty state when no items match the search query."
1281
- }
1282
- ],
1283
- "import": "import { CalendarIcon, CreditCardIcon, MailIcon, SettingsIcon, UserIcon } from \"lucide-react\";\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n CommandShortcut,\n} from \"react-client\";",
1284
- "jsDocTags": {},
1285
- "description": "A command palette / search interface for filtering and selecting from a list of actions or items. Built on cmdk with keyboard navigation, grouping, and search filtering. Compose with CommandInput, CommandList, CommandGroup, CommandItem, and CommandEmpty.",
1286
- "reactDocgen": {
1287
- "description": "A command palette / search interface for filtering and selecting from a list of actions or items.\nBuilt on cmdk with keyboard navigation, grouping, and search filtering.\n\nCompose with CommandInput, CommandList, CommandGroup, CommandItem, and CommandEmpty.",
1288
- "methods": [],
1289
- "displayName": "Command",
1290
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Command.tsx",
1291
- "actualName": "Command",
1292
- "exportName": "Command"
1293
- },
1294
- "componentPath": "./src/components/ui/Command.tsx",
1295
- "title": "UI Components/Command",
1296
- "tags": [
1297
- "dev",
1298
- "test",
1299
- "manifest",
1300
- "autodocs"
1301
- ],
1302
- "docs": {
1303
- "id": "ui-components-command--docs",
1304
- "title": "UI Components/Command",
1305
- "name": "Docs",
1306
- "importPath": "./src/components/ui/Command.stories.tsx",
1307
- "type": "docs",
1308
- "tags": [
1309
- "dev",
1310
- "test",
1311
- "manifest",
1312
- "autodocs"
1313
- ],
1314
- "storiesImports": []
1315
- }
1316
- },
1317
- {
1318
- "id": "ui-components-contextmenu",
1319
- "name": "ContextMenu",
1320
- "path": "./src/components/ui/ContextMenu.stories.tsx",
1321
- "stories": [
1322
- {
1323
- "name": "Default",
1324
- "snippet": "const Default = () => (\n <ContextMenu>\n <ContextMenuTrigger className=\"flex h-[150px] w-[300px] items-center justify-center rounded-md border border-dashed text-sm\">\n Right click here\n </ContextMenuTrigger>\n <ContextMenuContent className=\"w-64\">\n <ContextMenuItem>\n Back <ContextMenuShortcut>Ctrl+[</ContextMenuShortcut>\n </ContextMenuItem>\n <ContextMenuItem>\n Forward <ContextMenuShortcut>Ctrl+]</ContextMenuShortcut>\n </ContextMenuItem>\n <ContextMenuItem>\n Reload <ContextMenuShortcut>Ctrl+R</ContextMenuShortcut>\n </ContextMenuItem>\n <ContextMenuSeparator />\n <ContextMenuSub>\n <ContextMenuSubTrigger>More Tools</ContextMenuSubTrigger>\n <ContextMenuSubContent className=\"w-48\">\n <ContextMenuItem>Save Page As...</ContextMenuItem>\n <ContextMenuItem>Create Shortcut...</ContextMenuItem>\n <ContextMenuItem>Developer Tools</ContextMenuItem>\n </ContextMenuSubContent>\n </ContextMenuSub>\n <ContextMenuSeparator />\n <ContextMenuItem variant=\"destructive\">Delete</ContextMenuItem>\n </ContextMenuContent>\n </ContextMenu>\n);",
1325
- "description": "Shows a context menu with shortcuts, submenus, separators, and a destructive action.",
1326
- "id": "ui-components-contextmenu--default",
1327
- "exportName": "Default",
1328
- "type": "story",
1329
- "subtype": "story"
1330
- },
1331
- {
1332
- "name": "Simple",
1333
- "snippet": "const Simple = () => (\n <ContextMenu>\n <ContextMenuTrigger className=\"flex h-[150px] w-[300px] items-center justify-center rounded-md border border-dashed text-sm\">\n Right click here\n </ContextMenuTrigger>\n <ContextMenuContent>\n <ContextMenuItem>Cut</ContextMenuItem>\n <ContextMenuItem>Copy</ContextMenuItem>\n <ContextMenuItem>Paste</ContextMenuItem>\n </ContextMenuContent>\n </ContextMenu>\n);",
1334
- "description": "Shows a minimal context menu with basic cut/copy/paste actions.",
1335
- "id": "ui-components-contextmenu--simple",
1336
- "exportName": "Simple",
1337
- "type": "story",
1338
- "subtype": "story"
1339
- }
1340
- ],
1341
- "import": "import {\n ContextMenu,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuTrigger,\n} from \"react-client\";",
1342
- "jsDocTags": {},
1343
- "description": "Right-click menu with keyboard navigation. Supports submenus, checkbox/radio items, separators, and shortcuts.",
1344
- "reactDocgen": {
1345
- "description": "Right-click menu with keyboard navigation. Supports submenus, checkbox/radio items, separators, and shortcuts.",
1346
- "methods": [],
1347
- "displayName": "ContextMenu",
1348
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/ContextMenu.tsx",
1349
- "actualName": "ContextMenu",
1350
- "exportName": "ContextMenu"
1351
- },
1352
- "componentPath": "./src/components/ui/ContextMenu.tsx",
1353
- "title": "UI Components/ContextMenu",
1354
- "tags": [
1355
- "dev",
1356
- "test",
1357
- "manifest",
1358
- "autodocs"
1359
- ],
1360
- "docs": {
1361
- "id": "ui-components-contextmenu--docs",
1362
- "title": "UI Components/ContextMenu",
1363
- "name": "Docs",
1364
- "importPath": "./src/components/ui/ContextMenu.stories.tsx",
1365
- "type": "docs",
1366
- "tags": [
1367
- "dev",
1368
- "test",
1369
- "manifest",
1370
- "autodocs"
1371
- ],
1372
- "storiesImports": []
1373
- }
1374
- },
1375
- {
1376
- "id": "ui-components-dialog",
1377
- "name": "Dialog",
1378
- "path": "./src/components/ui/Dialog.stories.tsx",
1379
- "stories": [
1380
- {
1381
- "name": "Default",
1382
- "snippet": "const Default = () => (\n <Dialog>\n <DialogTrigger asChild>\n <Button variant=\"outline\">Edit Profile</Button>\n </DialogTrigger>\n <DialogContent className=\"sm:max-w-[425px]\">\n <DialogHeader>\n <DialogTitle>Edit profile</DialogTitle>\n <DialogDescription>Make changes to your profile here. Click save when you are done.</DialogDescription>\n </DialogHeader>\n <div className=\"grid gap-4 py-4\">\n <div className=\"grid grid-cols-4 items-center gap-4\">\n <Label htmlFor=\"name\" className=\"text-right\">\n Name\n </Label>\n <Input id=\"name\" defaultValue=\"John Doe\" className=\"col-span-3\" />\n </div>\n <div className=\"grid grid-cols-4 items-center gap-4\">\n <Label htmlFor=\"username\" className=\"text-right\">\n Username\n </Label>\n <Input id=\"username\" defaultValue=\"@johndoe\" className=\"col-span-3\" />\n </div>\n </div>\n <DialogFooter>\n <Button type=\"submit\">Save changes</Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n);",
1383
- "description": "Shows a dialog with a form for editing profile information.",
1384
- "id": "ui-components-dialog--default",
1385
- "exportName": "Default",
1386
- "type": "story",
1387
- "subtype": "story"
1388
- },
1389
- {
1390
- "name": "WithCloseButton",
1391
- "snippet": "const WithCloseButton = () => (\n <Dialog>\n <DialogTrigger asChild>\n <Button variant=\"outline\">Open Dialog</Button>\n </DialogTrigger>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Confirm Action</DialogTitle>\n <DialogDescription>Are you sure you want to proceed? This action cannot be undone.</DialogDescription>\n </DialogHeader>\n <DialogFooter showCloseButton>\n <Button variant=\"destructive\">Confirm</Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n);",
1392
- "description": "Shows a confirmation dialog with a footer close button and a destructive action."
1393
- }
1394
- ],
1395
- "import": "import {\n Button,\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n Input,\n Label,\n} from \"react-client\";",
1396
- "jsDocTags": {},
1397
- "description": "A modal overlay with focus trapping and scroll locking. Click outside or press Escape to close.",
1398
- "reactDocgen": {
1399
- "description": "A modal overlay with focus trapping and scroll locking. Click outside or press Escape to close.",
1400
- "methods": [],
1401
- "displayName": "Dialog",
1402
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Dialog.tsx",
1403
- "actualName": "Dialog",
1404
- "exportName": "Dialog"
1405
- },
1406
- "componentPath": "./src/components/ui/Dialog.tsx",
1407
- "title": "UI Components/Dialog",
1408
- "tags": [
1409
- "dev",
1410
- "test",
1411
- "manifest",
1412
- "autodocs"
1413
- ],
1414
- "docs": {
1415
- "id": "ui-components-dialog--docs",
1416
- "title": "UI Components/Dialog",
1417
- "name": "Docs",
1418
- "importPath": "./src/components/ui/Dialog.stories.tsx",
1419
- "type": "docs",
1420
- "tags": [
1421
- "dev",
1422
- "test",
1423
- "manifest",
1424
- "autodocs"
1425
- ],
1426
- "storiesImports": []
1427
- }
1428
- },
1429
- {
1430
- "id": "ui-components-direction",
1431
- "name": "DirectionProvider",
1432
- "path": "./src/components/ui/Direction.stories.tsx",
1433
- "stories": [
1434
- {
1435
- "name": "LTR",
1436
- "snippet": "const LTR = () => (\n <DirectionProvider dir=\"ltr\">\n <div className=\"space-y-2\">\n <DirectionDisplay />\n <p>This content is rendered in a left-to-right context.</p>\n </div>\n </DirectionProvider>\n);",
1437
- "description": "Shows the DirectionProvider in left-to-right mode.",
1438
- "id": "ui-components-direction--ltr",
1439
- "exportName": "LTR",
1440
- "type": "story",
1441
- "subtype": "story"
1442
- },
1443
- {
1444
- "name": "RTL",
1445
- "snippet": "const RTL = () => (\n <DirectionProvider dir=\"rtl\">\n <div className=\"space-y-2\" dir=\"rtl\">\n <DirectionDisplay />\n <p>This content is rendered in a right-to-left context.</p>\n </div>\n </DirectionProvider>\n);",
1446
- "description": "Shows the DirectionProvider in right-to-left mode for internationalization support.",
1447
- "id": "ui-components-direction--rtl",
1448
- "exportName": "RTL",
1449
- "type": "story",
1450
- "subtype": "story"
1451
- }
1452
- ],
1453
- "import": "import { DirectionProvider } from \"react-client\";",
1454
- "jsDocTags": {},
1455
- "description": "Provides text direction (LTR/RTL) context to all descendant Radix UI components. Accepts either `dir` or `direction` prop for convenience.",
1456
- "reactDocgen": {
1457
- "description": "Provides text direction (LTR/RTL) context to all descendant Radix UI components.\nAccepts either `dir` or `direction` prop for convenience.",
1458
- "methods": [],
1459
- "displayName": "DirectionProvider",
1460
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Direction.tsx",
1461
- "actualName": "DirectionProvider",
1462
- "exportName": "DirectionProvider",
1463
- "props": {
1464
- "direction": {
1465
- "required": false,
1466
- "tsType": {
1467
- "name": "ReactComponentProps['dir']",
1468
- "raw": "React.ComponentProps<typeof Direction.DirectionProvider>['dir']"
1469
- },
1470
- "description": ""
1471
- }
1472
- }
1473
- },
1474
- "componentPath": "./src/components/ui/Direction.tsx",
1475
- "title": "UI Components/Direction",
1476
- "tags": [
1477
- "dev",
1478
- "test",
1479
- "manifest",
1480
- "autodocs"
1481
- ],
1482
- "docs": {
1483
- "id": "ui-components-direction--docs",
1484
- "title": "UI Components/Direction",
1485
- "name": "Docs",
1486
- "importPath": "./src/components/ui/Direction.stories.tsx",
1487
- "type": "docs",
1488
- "tags": [
1489
- "dev",
1490
- "test",
1491
- "manifest",
1492
- "autodocs"
1493
- ],
1494
- "storiesImports": []
1495
- }
1496
- },
1497
- {
1498
- "id": "ui-components-drawer",
1499
- "name": "Drawer",
1500
- "path": "./src/components/ui/Drawer.stories.tsx",
1501
- "stories": [
1502
- {
1503
- "name": "Default",
1504
- "snippet": "const Default = () => (\n <Drawer>\n <DrawerTrigger asChild>\n <Button variant=\"outline\">Open Drawer</Button>\n </DrawerTrigger>\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>Move Goal</DrawerTitle>\n <DrawerDescription>Set your daily activity goal.</DrawerDescription>\n </DrawerHeader>\n <div className=\"p-4\">\n <p className=\"text-muted-foreground text-sm\">Adjust the settings below to configure your preferences.</p>\n </div>\n <DrawerFooter>\n <Button>Submit</Button>\n <DrawerClose asChild>\n <Button variant=\"outline\">Cancel</Button>\n </DrawerClose>\n </DrawerFooter>\n </DrawerContent>\n </Drawer>\n);",
1505
- "description": "Shows a bottom drawer with a title, description, body content, and action buttons.",
1506
- "id": "ui-components-drawer--default",
1507
- "exportName": "Default",
1508
- "type": "story",
1509
- "subtype": "story"
1510
- },
1511
- {
1512
- "name": "RightSide",
1513
- "snippet": "const RightSide = () => (\n <Drawer direction=\"right\">\n <DrawerTrigger asChild>\n <Button variant=\"outline\">Open Right Drawer</Button>\n </DrawerTrigger>\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>Side Panel</DrawerTitle>\n <DrawerDescription>This drawer opens from the right side.</DrawerDescription>\n </DrawerHeader>\n <div className=\"p-4\">\n <p className=\"text-muted-foreground text-sm\">Content goes here.</p>\n </div>\n <DrawerFooter>\n <DrawerClose asChild>\n <Button variant=\"outline\">Close</Button>\n </DrawerClose>\n </DrawerFooter>\n </DrawerContent>\n </Drawer>\n);",
1514
- "description": "Shows a drawer sliding in from the right side, useful for side panels and detail views."
1515
- }
1516
- ],
1517
- "import": "import {\n Button,\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerDescription,\n DrawerFooter,\n DrawerHeader,\n DrawerTitle,\n DrawerTrigger,\n} from \"react-client\";",
1518
- "jsDocTags": {},
1519
- "description": "A panel that slides in from the edge of the screen, ideal for mobile-friendly interactions. Built on Vaul with swipe-to-dismiss gestures. Supports top, bottom, left, and right directions. Compose with DrawerTrigger, DrawerContent, DrawerHeader, DrawerTitle, DrawerDescription, and DrawerFooter.",
1520
- "reactDocgen": {
1521
- "description": "A panel that slides in from the edge of the screen, ideal for mobile-friendly interactions.\nBuilt on Vaul with swipe-to-dismiss gestures. Supports top, bottom, left, and right directions.\n\nCompose with DrawerTrigger, DrawerContent, DrawerHeader, DrawerTitle, DrawerDescription, and DrawerFooter.",
1522
- "methods": [],
1523
- "displayName": "Drawer",
1524
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Drawer.tsx",
1525
- "actualName": "Drawer",
1526
- "exportName": "Drawer"
1527
- },
1528
- "componentPath": "./src/components/ui/Drawer.tsx",
1529
- "title": "UI Components/Drawer",
1530
- "tags": [
1531
- "dev",
1532
- "test",
1533
- "manifest",
1534
- "autodocs"
1535
- ],
1536
- "docs": {
1537
- "id": "ui-components-drawer--docs",
1538
- "title": "UI Components/Drawer",
1539
- "name": "Docs",
1540
- "importPath": "./src/components/ui/Drawer.stories.tsx",
1541
- "type": "docs",
1542
- "tags": [
1543
- "dev",
1544
- "test",
1545
- "manifest",
1546
- "autodocs"
1547
- ],
1548
- "storiesImports": []
1549
- }
1550
- },
1551
- {
1552
- "id": "ui-components-dropdownmenu",
1553
- "name": "DropdownMenu",
1554
- "path": "./src/components/ui/DropdownMenu.stories.tsx",
1555
- "stories": [
1556
- {
1557
- "name": "Default",
1558
- "snippet": "const Default = () => (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"outline\">Open Menu</Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent className=\"w-56\">\n <DropdownMenuLabel>My Account</DropdownMenuLabel>\n <DropdownMenuSeparator />\n <DropdownMenuGroup>\n <DropdownMenuItem>\n <UserIcon />\n <span>Profile</span>\n <DropdownMenuShortcut>Ctrl+P</DropdownMenuShortcut>\n </DropdownMenuItem>\n <DropdownMenuItem>\n <CreditCardIcon />\n <span>Billing</span>\n <DropdownMenuShortcut>Ctrl+B</DropdownMenuShortcut>\n </DropdownMenuItem>\n <DropdownMenuItem>\n <SettingsIcon />\n <span>Settings</span>\n <DropdownMenuShortcut>Ctrl+S</DropdownMenuShortcut>\n </DropdownMenuItem>\n </DropdownMenuGroup>\n <DropdownMenuSeparator />\n <DropdownMenuItem variant=\"destructive\">\n <LogOutIcon />\n <span>Log out</span>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n);",
1559
- "description": "Shows a dropdown menu with grouped items, icons, keyboard shortcuts, and a destructive logout action.",
1560
- "id": "ui-components-dropdownmenu--default",
1561
- "exportName": "Default",
1562
- "type": "story",
1563
- "subtype": "story"
1564
- },
1565
- {
1566
- "name": "Simple",
1567
- "snippet": "const Simple = () => (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"outline\">Actions</Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent>\n <DropdownMenuItem>Edit</DropdownMenuItem>\n <DropdownMenuItem>Duplicate</DropdownMenuItem>\n <DropdownMenuSeparator />\n <DropdownMenuItem variant=\"destructive\">Delete</DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n);",
1568
- "description": "Shows a minimal dropdown menu with basic edit/duplicate/delete actions.",
1569
- "id": "ui-components-dropdownmenu--simple",
1570
- "exportName": "Simple",
1571
- "type": "story",
1572
- "subtype": "story"
1573
- }
1574
- ],
1575
- "import": "import {\n Button,\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuTrigger,\n} from \"react-client\";\nimport { CreditCardIcon, LogOutIcon, SettingsIcon, UserIcon } from \"lucide-react\";",
1576
- "jsDocTags": {},
1577
- "description": "Action menu triggered by a button click. Supports submenus, checkbox/radio items, and keyboard shortcuts.",
1578
- "reactDocgen": {
1579
- "description": "Action menu triggered by a button click. Supports submenus, checkbox/radio items, and keyboard shortcuts.",
1580
- "methods": [],
1581
- "displayName": "DropdownMenu",
1582
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/DropdownMenu.tsx",
1583
- "actualName": "DropdownMenu",
1584
- "exportName": "DropdownMenu"
1585
- },
1586
- "componentPath": "./src/components/ui/DropdownMenu.tsx",
1587
- "title": "UI Components/DropdownMenu",
1588
- "tags": [
1589
- "dev",
1590
- "test",
1591
- "manifest",
1592
- "autodocs"
1593
- ],
1594
- "docs": {
1595
- "id": "ui-components-dropdownmenu--docs",
1596
- "title": "UI Components/DropdownMenu",
1597
- "name": "Docs",
1598
- "importPath": "./src/components/ui/DropdownMenu.stories.tsx",
1599
- "type": "docs",
1600
- "tags": [
1601
- "dev",
1602
- "test",
1603
- "manifest",
1604
- "autodocs"
1605
- ],
1606
- "storiesImports": []
1607
- }
1608
- },
1609
- {
1610
- "id": "ui-components-empty",
1611
- "name": "Empty",
1612
- "path": "./src/components/ui/Empty.stories.tsx",
1613
- "stories": [
1614
- {
1615
- "name": "Default",
1616
- "snippet": "const Default = () => (\n <Empty>\n <EmptyHeader>\n <EmptyTitle>No results found</EmptyTitle>\n <EmptyDescription>Try adjusting your search or filter to find what you are looking for.</EmptyDescription>\n </EmptyHeader>\n </Empty>\n);",
1617
- "description": "Shows a basic empty state with a title and description text.",
1618
- "id": "ui-components-empty--default",
1619
- "exportName": "Default",
1620
- "type": "story",
1621
- "subtype": "story"
1622
- },
1623
- {
1624
- "name": "WithIcon",
1625
- "snippet": "const WithIcon = () => (\n <Empty>\n <EmptyHeader>\n <EmptyMedia variant=\"icon\">\n <InboxIcon />\n </EmptyMedia>\n <EmptyTitle>Your inbox is empty</EmptyTitle>\n <EmptyDescription>New messages will appear here when you receive them.</EmptyDescription>\n </EmptyHeader>\n </Empty>\n);",
1626
- "description": "Shows an empty state with a styled icon container above the title and description."
1627
- }
1628
- ],
1629
- "import": "import { Empty, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle } from \"react-client\";\nimport { InboxIcon } from \"lucide-react\";",
1630
- "jsDocTags": {},
1631
- "description": "A placeholder component for empty states, such as no search results or empty inboxes. Compose with EmptyHeader, EmptyMedia, EmptyTitle, EmptyDescription, and EmptyContent to build structured empty state layouts with icons and call-to-action areas.",
1632
- "reactDocgen": {
1633
- "description": "A placeholder component for empty states, such as no search results or empty inboxes.\nCompose with EmptyHeader, EmptyMedia, EmptyTitle, EmptyDescription, and EmptyContent\nto build structured empty state layouts with icons and call-to-action areas.",
1634
- "methods": [],
1635
- "displayName": "Empty",
1636
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Empty.tsx",
1637
- "actualName": "Empty",
1638
- "exportName": "Empty"
1639
- },
1640
- "componentPath": "./src/components/ui/Empty.tsx",
1641
- "title": "UI Components/Empty",
1642
- "tags": [
1643
- "dev",
1644
- "test",
1645
- "manifest",
1646
- "autodocs"
1647
- ],
1648
- "docs": {
1649
- "id": "ui-components-empty--docs",
1650
- "title": "UI Components/Empty",
1651
- "name": "Docs",
1652
- "importPath": "./src/components/ui/Empty.stories.tsx",
1653
- "type": "docs",
1654
- "tags": [
1655
- "dev",
1656
- "test",
1657
- "manifest",
1658
- "autodocs"
1659
- ],
1660
- "storiesImports": []
1661
- }
1662
- },
1663
- {
1664
- "id": "ui-components-field",
1665
- "name": "Field",
1666
- "path": "./src/components/ui/Field.stories.tsx",
1667
- "stories": [
1668
- {
1669
- "name": "Default",
1670
- "snippet": "const Default = () => (\n <Field>\n <FieldLabel htmlFor=\"email\">Email</FieldLabel>\n <FieldContent>\n <Input id=\"email\" type=\"email\" placeholder=\"you@example.com\" />\n <FieldDescription>We will never share your email.</FieldDescription>\n </FieldContent>\n </Field>\n);",
1671
- "description": "Shows a vertical form field with label, input, and helper description text.",
1672
- "id": "ui-components-field--default",
1673
- "exportName": "Default",
1674
- "type": "story",
1675
- "subtype": "story"
1676
- },
1677
- {
1678
- "name": "WithError",
1679
- "snippet": "const WithError = () => (\n <Field data-invalid=\"true\">\n <FieldLabel htmlFor=\"email-err\">Email</FieldLabel>\n <FieldContent>\n <Input id=\"email-err\" type=\"email\" defaultValue=\"invalid-email\" aria-invalid=\"true\" />\n <FieldDescription>Enter a valid email address.</FieldDescription>\n <FieldError>Please enter a valid email address.</FieldError>\n </FieldContent>\n </Field>\n);",
1680
- "description": "Shows a field in an invalid state with error styling and a validation error message."
1681
- },
1682
- {
1683
- "name": "Horizontal",
1684
- "snippet": "const Horizontal = () => (\n <Field orientation=\"horizontal\">\n <FieldLabel htmlFor=\"name-h\">Full Name</FieldLabel>\n <FieldContent>\n <Input id=\"name-h\" placeholder=\"John Doe\" />\n <FieldDescription>Your first and last name.</FieldDescription>\n </FieldContent>\n </Field>\n);",
1685
- "description": "Shows a field with horizontal orientation where the label and input are side by side.",
1686
- "id": "ui-components-field--horizontal",
1687
- "exportName": "Horizontal",
1688
- "type": "story",
1689
- "subtype": "story"
1690
- }
1691
- ],
1692
- "import": "import { Field, FieldContent, FieldDescription, FieldError, FieldLabel, Input } from \"react-client\";",
1693
- "jsDocTags": {},
1694
- "description": "A form field wrapper that pairs a label with an input and optional description/error. Supports vertical, horizontal, and responsive orientations. Set data-invalid=\"true\" to apply error styling.",
1695
- "reactDocgen": {
1696
- "description": "A form field wrapper that pairs a label with an input and optional description/error.\nSupports vertical, horizontal, and responsive orientations.\nSet data-invalid=\"true\" to apply error styling.",
1697
- "methods": [],
1698
- "displayName": "Field",
1699
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Field.tsx",
1700
- "actualName": "Field",
1701
- "exportName": "Field",
1702
- "props": {
1703
- "orientation": {
1704
- "defaultValue": {
1705
- "value": "'vertical'",
1706
- "computed": false
1707
- },
1708
- "required": false
1709
- }
1710
- }
1711
- },
1712
- "componentPath": "./src/components/ui/Field.tsx",
1713
- "title": "UI Components/Field",
1714
- "tags": [
1715
- "dev",
1716
- "test",
1717
- "manifest",
1718
- "autodocs"
1719
- ],
1720
- "docs": {
1721
- "id": "ui-components-field--docs",
1722
- "title": "UI Components/Field",
1723
- "name": "Docs",
1724
- "importPath": "./src/components/ui/Field.stories.tsx",
1725
- "type": "docs",
1726
- "tags": [
1727
- "dev",
1728
- "test",
1729
- "manifest",
1730
- "autodocs"
1731
- ],
1732
- "storiesImports": []
1733
- }
1734
- },
1735
- {
1736
- "id": "ui-components-form",
1737
- "name": "Form",
1738
- "path": "./src/components/ui/Form.stories.tsx",
1739
- "stories": [
1740
- {
1741
- "name": "Default",
1742
- "snippet": "const Default = () => <FormDemo />;",
1743
- "description": "Demonstrates a complete form field with label, input, description, and validation message wiring.",
1744
- "id": "ui-components-form--default",
1745
- "exportName": "Default",
1746
- "type": "story",
1747
- "subtype": "story"
1748
- }
1749
- ],
1750
- "import": "import {\n Button,\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n Input,\n} from \"react-client\";",
1751
- "jsDocTags": {},
1752
- "description": "Form context provider that wraps react-hook-form's FormProvider. Use with FormField, FormItem, FormLabel, FormControl, FormDescription, and FormMessage for accessible form layouts with validation.",
1753
- "reactDocgen": {
1754
- "description": "Form context provider that wraps react-hook-form's FormProvider.\nUse with FormField, FormItem, FormLabel, FormControl, FormDescription, and FormMessage for accessible form layouts with validation.",
1755
- "methods": [],
1756
- "displayName": "Form",
1757
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Form.tsx",
1758
- "actualName": "Form",
1759
- "exportName": "Form"
1760
- },
1761
- "componentPath": "./src/components/ui/Form.tsx",
1762
- "title": "UI Components/Form",
1763
- "tags": [
1764
- "dev",
1765
- "test",
1766
- "manifest",
1767
- "autodocs"
1768
- ],
1769
- "docs": {
1770
- "id": "ui-components-form--docs",
1771
- "title": "UI Components/Form",
1772
- "name": "Docs",
1773
- "importPath": "./src/components/ui/Form.stories.tsx",
1774
- "type": "docs",
1775
- "tags": [
1776
- "dev",
1777
- "test",
1778
- "manifest",
1779
- "autodocs"
1780
- ],
1781
- "storiesImports": []
1782
- }
1783
- },
1784
- {
1785
- "id": "ui-components-hovercard",
1786
- "name": "HoverCard",
1787
- "path": "./src/components/ui/HoverCard.stories.tsx",
1788
- "stories": [
1789
- {
1790
- "name": "Default",
1791
- "snippet": "const Default = () => (\n <HoverCard>\n <HoverCardTrigger asChild>\n <a href=\"#\" className=\"text-sm font-medium underline underline-offset-4\">\n @nextjs\n </a>\n </HoverCardTrigger>\n <HoverCardContent className=\"w-80\">\n <div className=\"flex justify-between space-x-4\">\n <div className=\"space-y-1\">\n <h4 className=\"text-sm font-semibold\">@nextjs</h4>\n <p className=\"text-sm\">The React Framework for the Web. Created and maintained by @vercel.</p>\n <div className=\"flex items-center pt-2\">\n <CalendarDaysIcon className=\"text-muted-foreground mr-2 h-4 w-4\" />\n <span className=\"text-muted-foreground text-xs\">Joined December 2021</span>\n </div>\n </div>\n </div>\n </HoverCardContent>\n </HoverCard>\n);",
1792
- "description": "Shows a user profile preview card triggered by hovering over a username link.",
1793
- "id": "ui-components-hovercard--default",
1794
- "exportName": "Default",
1795
- "type": "story",
1796
- "subtype": "story"
1797
- },
1798
- {
1799
- "name": "Simple",
1800
- "snippet": "const Simple = () => (\n <HoverCard>\n <HoverCardTrigger asChild>\n <span className=\"cursor-pointer text-sm font-medium underline underline-offset-4\">Hover me</span>\n </HoverCardTrigger>\n <HoverCardContent>\n <p className=\"text-sm\">This is a simple hover card with some text content.</p>\n </HoverCardContent>\n </HoverCard>\n);",
1801
- "description": "Minimal hover card with just text content.",
1802
- "id": "ui-components-hovercard--simple",
1803
- "exportName": "Simple",
1804
- "type": "story",
1805
- "subtype": "story"
1806
- }
1807
- ],
1808
- "import": "import { CalendarDaysIcon } from \"lucide-react\";\nimport { HoverCard, HoverCardContent, HoverCardTrigger } from \"react-client\";",
1809
- "jsDocTags": {},
1810
- "description": "A popup card that appears when hovering over a trigger element. Ideal for previewing content like user profiles or link destinations.",
1811
- "reactDocgen": {
1812
- "description": "A popup card that appears when hovering over a trigger element. Ideal for previewing content like user profiles or link destinations.",
1813
- "methods": [],
1814
- "displayName": "HoverCard",
1815
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/HoverCard.tsx",
1816
- "actualName": "HoverCard",
1817
- "exportName": "HoverCard"
1818
- },
1819
- "componentPath": "./src/components/ui/HoverCard.tsx",
1820
- "title": "UI Components/HoverCard",
1821
- "tags": [
1822
- "dev",
1823
- "test",
1824
- "manifest",
1825
- "autodocs"
1826
- ],
1827
- "docs": {
1828
- "id": "ui-components-hovercard--docs",
1829
- "title": "UI Components/HoverCard",
1830
- "name": "Docs",
1831
- "importPath": "./src/components/ui/HoverCard.stories.tsx",
1832
- "type": "docs",
1833
- "tags": [
1834
- "dev",
1835
- "test",
1836
- "manifest",
1837
- "autodocs"
1838
- ],
1839
- "storiesImports": []
1840
- }
1841
- },
1842
- {
1843
- "id": "ui-components-input",
1844
- "name": "Input",
1845
- "path": "./src/components/ui/Input.stories.tsx",
1846
- "stories": [
1847
- {
1848
- "name": "Default",
1849
- "snippet": "const Default = () => <Input />;",
1850
- "description": "Basic empty input field.",
1851
- "id": "ui-components-input--default",
1852
- "exportName": "Default",
1853
- "type": "story",
1854
- "subtype": "story"
1855
- },
1856
- {
1857
- "name": "WithPlaceholder",
1858
- "snippet": "const WithPlaceholder = () => <Input placeholder=\"Enter your email...\" type=\"email\" />;",
1859
- "description": "Email input with placeholder text."
1860
- },
1861
- {
1862
- "name": "Disabled",
1863
- "snippet": "const Disabled = () => <Input placeholder=\"Disabled input\" disabled defaultValue=\"Cannot edit this\" />;",
1864
- "description": "Disabled input that cannot be edited.",
1865
- "id": "ui-components-input--disabled",
1866
- "exportName": "Disabled",
1867
- "type": "story",
1868
- "subtype": "story"
1869
- },
1870
- {
1871
- "name": "WithLabel",
1872
- "snippet": "const WithLabel = () => (\n <div className=\"grid w-full max-w-sm items-center gap-1.5\">\n <Label htmlFor=\"email-input\">Email</Label>\n <Input type=\"email\" id=\"email-input\" placeholder=\"Email\" />\n </div>\n);",
1873
- "description": "Input paired with a label for accessibility."
1874
- }
1875
- ],
1876
- "import": "import { Input, Label } from \"react-client\";",
1877
- "jsDocTags": {},
1878
- "description": "A styled text input field. Supports all native input types including file uploads. Shows validation error styling via aria-invalid.",
1879
- "reactDocgen": {
1880
- "description": "A styled text input field. Supports all native input types including file uploads. Shows validation error styling via aria-invalid.",
1881
- "methods": [],
1882
- "displayName": "Input",
1883
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Input.tsx",
1884
- "actualName": "Input",
1885
- "exportName": "Input"
1886
- },
1887
- "componentPath": "./src/components/ui/Input.tsx",
1888
- "title": "UI Components/Input",
1889
- "tags": [
1890
- "dev",
1891
- "test",
1892
- "manifest",
1893
- "autodocs"
1894
- ],
1895
- "docs": {
1896
- "id": "ui-components-input--docs",
1897
- "title": "UI Components/Input",
1898
- "name": "Docs",
1899
- "importPath": "./src/components/ui/Input.stories.tsx",
1900
- "type": "docs",
1901
- "tags": [
1902
- "dev",
1903
- "test",
1904
- "manifest",
1905
- "autodocs"
1906
- ],
1907
- "storiesImports": []
1908
- }
1909
- },
1910
- {
1911
- "id": "ui-components-inputgroup",
1912
- "name": "InputGroup",
1913
- "path": "./src/components/ui/InputGroup.stories.tsx",
1914
- "stories": [
1915
- {
1916
- "name": "Default",
1917
- "snippet": "const Default = () => (\n <InputGroup className=\"max-w-sm\">\n <InputGroupAddon align=\"inline-start\">\n <InputGroupText>\n <MailIcon />\n </InputGroupText>\n </InputGroupAddon>\n <InputGroupInput placeholder=\"you@example.com\" />\n </InputGroup>\n);",
1918
- "description": "Input with a leading email icon addon.",
1919
- "id": "ui-components-inputgroup--default",
1920
- "exportName": "Default",
1921
- "type": "story",
1922
- "subtype": "story"
1923
- },
1924
- {
1925
- "name": "WithPrefixAndSuffix",
1926
- "snippet": "const WithPrefixAndSuffix = () => (\n <InputGroup className=\"max-w-sm\">\n <InputGroupAddon align=\"inline-start\">\n <InputGroupText>https://</InputGroupText>\n </InputGroupAddon>\n <InputGroupInput placeholder=\"example.com\" />\n <InputGroupAddon align=\"inline-end\">\n <InputGroupText>.com</InputGroupText>\n </InputGroupAddon>\n </InputGroup>\n);",
1927
- "description": "URL input with text addons on both sides."
1928
- },
1929
- {
1930
- "name": "SearchInput",
1931
- "snippet": "const SearchInput = () => (\n <InputGroup className=\"max-w-sm\">\n <InputGroupAddon align=\"inline-start\">\n <InputGroupText>\n <SearchIcon />\n </InputGroupText>\n </InputGroupAddon>\n <InputGroupInput placeholder=\"Search...\" />\n </InputGroup>\n);",
1932
- "description": "Search input with a magnifying glass icon."
1933
- }
1934
- ],
1935
- "import": "import { InputGroup, InputGroupAddon, InputGroupInput, InputGroupText } from \"react-client\";\nimport { MailIcon, SearchIcon } from \"lucide-react\";",
1936
- "jsDocTags": {},
1937
- "description": "Container that combines an input with addons like icons, buttons, or text. Supports inline and block-positioned addons.",
1938
- "reactDocgen": {
1939
- "description": "Container that combines an input with addons like icons, buttons, or text. Supports inline and block-positioned addons.",
1940
- "methods": [],
1941
- "displayName": "InputGroup",
1942
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/InputGroup.tsx",
1943
- "actualName": "InputGroup",
1944
- "exportName": "InputGroup"
1945
- },
1946
- "componentPath": "./src/components/ui/InputGroup.tsx",
1947
- "title": "UI Components/InputGroup",
1948
- "tags": [
1949
- "dev",
1950
- "test",
1951
- "manifest",
1952
- "autodocs"
1953
- ],
1954
- "docs": {
1955
- "id": "ui-components-inputgroup--docs",
1956
- "title": "UI Components/InputGroup",
1957
- "name": "Docs",
1958
- "importPath": "./src/components/ui/InputGroup.stories.tsx",
1959
- "type": "docs",
1960
- "tags": [
1961
- "dev",
1962
- "test",
1963
- "manifest",
1964
- "autodocs"
1965
- ],
1966
- "storiesImports": []
1967
- }
1968
- },
1969
- {
1970
- "id": "ui-components-inputotp",
1971
- "name": "InputOTP",
1972
- "path": "./src/components/ui/InputOTP.stories.tsx",
1973
- "stories": [
1974
- {
1975
- "name": "Default",
1976
- "snippet": "const Default = () => (\n <InputOTP maxLength={6}>\n <InputOTPGroup>\n <InputOTPSlot index={0} />\n <InputOTPSlot index={1} />\n <InputOTPSlot index={2} />\n </InputOTPGroup>\n <InputOTPSeparator />\n <InputOTPGroup>\n <InputOTPSlot index={3} />\n <InputOTPSlot index={4} />\n <InputOTPSlot index={5} />\n </InputOTPGroup>\n </InputOTP>\n);",
1977
- "description": "6-digit OTP input split into two groups of three with a separator.",
1978
- "id": "ui-components-inputotp--default",
1979
- "exportName": "Default",
1980
- "type": "story",
1981
- "subtype": "story"
1982
- },
1983
- {
1984
- "name": "FourDigits",
1985
- "snippet": "const FourDigits = () => (\n <InputOTP maxLength={4}>\n <InputOTPGroup>\n <InputOTPSlot index={0} />\n <InputOTPSlot index={1} />\n <InputOTPSlot index={2} />\n <InputOTPSlot index={3} />\n </InputOTPGroup>\n </InputOTP>\n);",
1986
- "description": "Compact 4-digit PIN input without separator."
1987
- }
1988
- ],
1989
- "import": "import { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot } from \"react-client\";",
1990
- "jsDocTags": {},
1991
- "description": "One-time password input with individual digit slots. Handles paste, backspace, and arrow key navigation automatically.",
1992
- "reactDocgen": {
1993
- "description": "One-time password input with individual digit slots. Handles paste, backspace, and arrow key navigation automatically.",
1994
- "methods": [],
1995
- "displayName": "InputOTP",
1996
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/InputOTP.tsx",
1997
- "actualName": "InputOTP",
1998
- "exportName": "InputOTP",
1999
- "props": {
2000
- "containerClassName": {
2001
- "required": false,
2002
- "tsType": {
2003
- "name": "string"
2004
- },
2005
- "description": ""
2006
- }
2007
- }
2008
- },
2009
- "componentPath": "./src/components/ui/InputOTP.tsx",
2010
- "title": "UI Components/InputOTP",
2011
- "tags": [
2012
- "dev",
2013
- "test",
2014
- "manifest",
2015
- "autodocs"
2016
- ],
2017
- "docs": {
2018
- "id": "ui-components-inputotp--docs",
2019
- "title": "UI Components/InputOTP",
2020
- "name": "Docs",
2021
- "importPath": "./src/components/ui/InputOTP.stories.tsx",
2022
- "type": "docs",
2023
- "tags": [
2024
- "dev",
2025
- "test",
2026
- "manifest",
2027
- "autodocs"
2028
- ],
2029
- "storiesImports": []
2030
- }
2031
- },
2032
- {
2033
- "id": "ui-components-item",
2034
- "name": "Item",
2035
- "path": "./src/components/ui/Item.stories.tsx",
2036
- "stories": [
2037
- {
2038
- "name": "Default",
2039
- "snippet": "const Default = () => (\n <Item>\n <ItemContent>\n <ItemTitle>Item Title</ItemTitle>\n <ItemDescription>This is a description of the item with some details.</ItemDescription>\n </ItemContent>\n <ItemActions>\n <Button variant=\"outline\" size=\"sm\">\n Edit\n </Button>\n <Button variant=\"ghost\" size=\"sm\">\n Delete\n </Button>\n </ItemActions>\n </Item>\n);",
2040
- "description": "Standard item with title, description, and action buttons.",
2041
- "id": "ui-components-item--default",
2042
- "exportName": "Default",
2043
- "type": "story",
2044
- "subtype": "story"
2045
- },
2046
- {
2047
- "name": "OutlineVariant",
2048
- "snippet": "const OutlineVariant = () => (\n <Item variant=\"outline\">\n <ItemContent>\n <ItemTitle>Outline Item</ItemTitle>\n <ItemDescription>An item displayed with the outline variant and a visible border.</ItemDescription>\n </ItemContent>\n <ItemActions>\n <Button variant=\"outline\" size=\"sm\">\n View\n </Button>\n </ItemActions>\n </Item>\n);",
2049
- "description": "Item with visible border using the outline variant."
2050
- },
2051
- {
2052
- "name": "SmallSize",
2053
- "snippet": "const SmallSize = () => (\n <Item size=\"sm\">\n <ItemContent>\n <ItemTitle>Small Item</ItemTitle>\n <ItemDescription>Compact item with reduced padding.</ItemDescription>\n </ItemContent>\n <ItemActions>\n <Button variant=\"ghost\" size=\"sm\">\n Action\n </Button>\n </ItemActions>\n </Item>\n);",
2054
- "description": "Compact item with reduced padding for dense lists."
2055
- }
2056
- ],
2057
- "import": "import { Button, Item, ItemActions, ItemContent, ItemDescription, ItemTitle } from \"react-client\";",
2058
- "jsDocTags": {},
2059
- "description": "A flexible list item for displaying structured content like notifications, settings rows, or search results. Compose with ItemMedia, ItemContent, ItemTitle, ItemDescription, and ItemActions.",
2060
- "reactDocgen": {
2061
- "description": "A flexible list item for displaying structured content like notifications, settings rows, or search results. Compose with ItemMedia, ItemContent, ItemTitle, ItemDescription, and ItemActions.",
2062
- "methods": [],
2063
- "displayName": "Item",
2064
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Item.tsx",
2065
- "actualName": "Item",
2066
- "exportName": "Item",
2067
- "props": {
2068
- "asChild": {
2069
- "required": false,
2070
- "tsType": {
2071
- "name": "boolean"
2072
- },
2073
- "description": "",
2074
- "defaultValue": {
2075
- "value": "false",
2076
- "computed": false
2077
- }
2078
- },
2079
- "variant": {
2080
- "defaultValue": {
2081
- "value": "'default'",
2082
- "computed": false
2083
- },
2084
- "required": false
2085
- },
2086
- "size": {
2087
- "defaultValue": {
2088
- "value": "'default'",
2089
- "computed": false
2090
- },
2091
- "required": false
2092
- }
2093
- }
2094
- },
2095
- "componentPath": "./src/components/ui/Item.tsx",
2096
- "title": "UI Components/Item",
2097
- "tags": [
2098
- "dev",
2099
- "test",
2100
- "manifest",
2101
- "autodocs"
2102
- ],
2103
- "docs": {
2104
- "id": "ui-components-item--docs",
2105
- "title": "UI Components/Item",
2106
- "name": "Docs",
2107
- "importPath": "./src/components/ui/Item.stories.tsx",
2108
- "type": "docs",
2109
- "tags": [
2110
- "dev",
2111
- "test",
2112
- "manifest",
2113
- "autodocs"
2114
- ],
2115
- "storiesImports": []
2116
- }
2117
- },
2118
- {
2119
- "id": "ui-components-kbd",
2120
- "name": "Kbd",
2121
- "path": "./src/components/ui/Kbd.stories.tsx",
2122
- "stories": [
2123
- {
2124
- "name": "Default",
2125
- "snippet": "const Default = () => <Kbd>⌘K</Kbd>;",
2126
- "description": "Shows a single keyboard key shortcut.",
2127
- "id": "ui-components-kbd--default",
2128
- "exportName": "Default",
2129
- "type": "story",
2130
- "subtype": "story"
2131
- },
2132
- {
2133
- "name": "WithText",
2134
- "snippet": "const WithText = () => <Kbd>Ctrl</Kbd>;",
2135
- "description": "Shows a key with a text label like \"Ctrl\"."
2136
- },
2137
- {
2138
- "name": "ArrowKeys",
2139
- "snippet": "const ArrowKeys = () => <Kbd>→</Kbd>;",
2140
- "description": "Shows a key with an arrow symbol."
2141
- },
2142
- {
2143
- "name": "Multiple",
2144
- "snippet": "const Multiple = () => (\n <div className=\"flex gap-2 items-center\">\n <Kbd>⌘</Kbd>\n <span>+</span>\n <Kbd>K</Kbd>\n </div>\n);",
2145
- "description": "Shows two keys composed together to represent a shortcut combination.",
2146
- "id": "ui-components-kbd--multiple",
2147
- "exportName": "Multiple",
2148
- "type": "story",
2149
- "subtype": "story"
2150
- },
2151
- {
2152
- "name": "Combination",
2153
- "snippet": "const Combination = () => (\n <div className=\"flex gap-2 items-center\">\n <Kbd>Ctrl</Kbd>\n <span>+</span>\n <Kbd>Shift</Kbd>\n <span>+</span>\n <Kbd>P</Kbd>\n </div>\n);",
2154
- "description": "Shows a three-key combination shortcut.",
2155
- "id": "ui-components-kbd--combination",
2156
- "exportName": "Combination",
2157
- "type": "story",
2158
- "subtype": "story"
2159
- }
2160
- ],
2161
- "import": "import { Kbd } from \"react-client\";",
2162
- "jsDocTags": {},
2163
- "description": "Renders inline keyboard key indicators, styled to look like physical keys. Use to display keyboard shortcuts or key combinations in documentation and UI hints.",
2164
- "reactDocgen": {
2165
- "description": "Renders inline keyboard key indicators, styled to look like physical keys.\nUse to display keyboard shortcuts or key combinations in documentation and UI hints.",
2166
- "methods": [],
2167
- "displayName": "Kbd",
2168
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Kbd.tsx",
2169
- "actualName": "Kbd",
2170
- "exportName": "Kbd",
2171
- "props": {
2172
- "children": {
2173
- "required": true,
2174
- "tsType": {
2175
- "name": "ReactReactNode",
2176
- "raw": "React.ReactNode"
2177
- },
2178
- "description": ""
2179
- },
2180
- "className": {
2181
- "required": false,
2182
- "tsType": {
2183
- "name": "string"
2184
- },
2185
- "description": ""
2186
- }
2187
- }
2188
- },
2189
- "componentPath": "./src/components/ui/Kbd.tsx",
2190
- "title": "UI Components/Kbd",
2191
- "tags": [
2192
- "dev",
2193
- "test",
2194
- "manifest",
2195
- "autodocs"
2196
- ],
2197
- "docs": {
2198
- "id": "ui-components-kbd--docs",
2199
- "title": "UI Components/Kbd",
2200
- "name": "Docs",
2201
- "importPath": "./src/components/ui/Kbd.stories.tsx",
2202
- "type": "docs",
2203
- "tags": [
2204
- "dev",
2205
- "test",
2206
- "manifest",
2207
- "autodocs"
2208
- ],
2209
- "storiesImports": []
2210
- }
2211
- },
2212
- {
2213
- "id": "ui-components-label",
2214
- "name": "Label",
2215
- "path": "./src/components/ui/Label.stories.tsx",
2216
- "stories": [
2217
- {
2218
- "name": "Default",
2219
- "snippet": "const Default = () => <Label htmlFor=\"email\">Email address</Label>;",
2220
- "description": "Shows a basic label associated with a form field.",
2221
- "id": "ui-components-label--default",
2222
- "exportName": "Default",
2223
- "type": "story",
2224
- "subtype": "story"
2225
- },
2226
- {
2227
- "name": "Required",
2228
- "snippet": "const Required = () => <Label htmlFor=\"email\" required>Email address</Label>;",
2229
- "description": "Shows the label with the required prop, which appends a red asterisk.",
2230
- "id": "ui-components-label--required",
2231
- "exportName": "Required",
2232
- "type": "story",
2233
- "subtype": "story"
2234
- },
2235
- {
2236
- "name": "RequiredVariant",
2237
- "snippet": "const RequiredVariant = () => <Label htmlFor=\"email\" variant=\"required\">Email address</Label>;",
2238
- "description": "Shows the label using the \"required\" variant prop directly."
2239
- },
2240
- {
2241
- "name": "WithForm",
2242
- "snippet": "const WithForm = (args) => (\n <div className=\"space-y-2\">\n <Label htmlFor=\"example-input\" required>\n Example Field\n </Label>\n <input\n id=\"example-input\"\n type=\"text\"\n className=\"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\"\n placeholder=\"Enter value...\"\n />\n </div>\n);",
2243
- "description": "Shows the label paired with a text input in a form layout."
2244
- },
2245
- {
2246
- "name": "DisabledField",
2247
- "snippet": "const DisabledField = (args) => (\n <div className=\"space-y-2\">\n <Label htmlFor=\"disabled-input\" required>\n Disabled Field\n </Label>\n <input\n id=\"disabled-input\"\n type=\"text\"\n disabled\n className=\"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\"\n placeholder=\"Disabled input...\"\n />\n </div>\n);",
2248
- "description": "Demonstrates the dimmed appearance when the associated input is disabled."
2249
- }
2250
- ],
2251
- "import": "import { Label } from \"react-client\";",
2252
- "jsDocTags": {},
2253
- "description": "An accessible label associated with a form control via the htmlFor prop. Supports a \"required\" variant that appends a red asterisk, and automatically dims when its peer input is disabled.",
2254
- "reactDocgen": {
2255
- "description": "An accessible label associated with a form control via the htmlFor prop.\nSupports a \"required\" variant that appends a red asterisk, and automatically dims when its peer input is disabled.",
2256
- "methods": [],
2257
- "displayName": "Label",
2258
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Label.tsx",
2259
- "actualName": "Label",
2260
- "exportName": "Label",
2261
- "props": {
2262
- "htmlFor": {
2263
- "required": false,
2264
- "tsType": {
2265
- "name": "string"
2266
- },
2267
- "description": ""
2268
- },
2269
- "required": {
2270
- "required": false,
2271
- "tsType": {
2272
- "name": "boolean"
2273
- },
2274
- "description": ""
2275
- },
2276
- "children": {
2277
- "required": false,
2278
- "tsType": {
2279
- "name": "ReactReactNode",
2280
- "raw": "React.ReactNode"
2281
- },
2282
- "description": ""
2283
- }
2284
- },
2285
- "composes": [
2286
- "VariantProps"
2287
- ]
2288
- },
2289
- "componentPath": "./src/components/ui/Label.tsx",
2290
- "title": "UI Components/Label",
2291
- "tags": [
2292
- "dev",
2293
- "test",
2294
- "manifest",
2295
- "autodocs"
2296
- ],
2297
- "docs": {
2298
- "id": "ui-components-label--docs",
2299
- "title": "UI Components/Label",
2300
- "name": "Docs",
2301
- "importPath": "./src/components/ui/Label.stories.tsx",
2302
- "type": "docs",
2303
- "tags": [
2304
- "dev",
2305
- "test",
2306
- "manifest",
2307
- "autodocs"
2308
- ],
2309
- "storiesImports": []
2310
- }
2311
- },
2312
- {
2313
- "id": "ui-components-menubar",
2314
- "name": "Menubar",
2315
- "path": "./src/components/ui/Menubar.stories.tsx",
2316
- "stories": [
2317
- {
2318
- "name": "Default",
2319
- "snippet": "const Default = () => (\n <Menubar>\n <MenubarMenu>\n <MenubarTrigger>File</MenubarTrigger>\n <MenubarContent>\n <MenubarItem>\n New Tab <MenubarShortcut>Ctrl+T</MenubarShortcut>\n </MenubarItem>\n <MenubarItem>\n New Window <MenubarShortcut>Ctrl+N</MenubarShortcut>\n </MenubarItem>\n <MenubarSeparator />\n <MenubarItem>\n Save <MenubarShortcut>Ctrl+S</MenubarShortcut>\n </MenubarItem>\n <MenubarSeparator />\n <MenubarItem>Exit</MenubarItem>\n </MenubarContent>\n </MenubarMenu>\n <MenubarMenu>\n <MenubarTrigger>Edit</MenubarTrigger>\n <MenubarContent>\n <MenubarItem>\n Undo <MenubarShortcut>Ctrl+Z</MenubarShortcut>\n </MenubarItem>\n <MenubarItem>\n Redo <MenubarShortcut>Ctrl+Y</MenubarShortcut>\n </MenubarItem>\n <MenubarSeparator />\n <MenubarItem>Cut</MenubarItem>\n <MenubarItem>Copy</MenubarItem>\n <MenubarItem>Paste</MenubarItem>\n </MenubarContent>\n </MenubarMenu>\n </Menubar>\n);",
2320
- "description": "Shows a menubar with File and Edit menus containing items and keyboard shortcuts.",
2321
- "id": "ui-components-menubar--default",
2322
- "exportName": "Default",
2323
- "type": "story",
2324
- "subtype": "story"
2325
- },
2326
- {
2327
- "name": "WithLabels",
2328
- "snippet": "const WithLabels = () => (\n <Menubar>\n <MenubarMenu>\n <MenubarTrigger>View</MenubarTrigger>\n <MenubarContent>\n <MenubarLabel>Appearance</MenubarLabel>\n <MenubarItem>Zoom In</MenubarItem>\n <MenubarItem>Zoom Out</MenubarItem>\n <MenubarSeparator />\n <MenubarLabel>Layout</MenubarLabel>\n <MenubarItem>Full Screen</MenubarItem>\n <MenubarItem>Side by Side</MenubarItem>\n </MenubarContent>\n </MenubarMenu>\n </Menubar>\n);",
2329
- "description": "Demonstrates menu sections organized with labels to group related items."
2330
- }
2331
- ],
2332
- "import": "import {\n Menubar,\n MenubarContent,\n MenubarItem,\n MenubarLabel,\n MenubarMenu,\n MenubarSeparator,\n MenubarShortcut,\n MenubarTrigger,\n} from \"react-client\";",
2333
- "jsDocTags": {},
2334
- "description": "A horizontal menu bar for desktop applications, built on Radix UI Menubar primitive. Compose with MenubarMenu, MenubarTrigger, and MenubarContent to create top-level menu groups with keyboard navigation.",
2335
- "reactDocgen": {
2336
- "description": "A horizontal menu bar for desktop applications, built on Radix UI Menubar primitive.\nCompose with MenubarMenu, MenubarTrigger, and MenubarContent to create top-level menu groups with keyboard navigation.",
2337
- "methods": [],
2338
- "displayName": "Menubar",
2339
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Menubar.tsx",
2340
- "actualName": "Menubar",
2341
- "exportName": "Menubar"
2342
- },
2343
- "componentPath": "./src/components/ui/Menubar.tsx",
2344
- "title": "UI Components/Menubar",
2345
- "tags": [
2346
- "dev",
2347
- "test",
2348
- "manifest",
2349
- "autodocs"
2350
- ],
2351
- "docs": {
2352
- "id": "ui-components-menubar--docs",
2353
- "title": "UI Components/Menubar",
2354
- "name": "Docs",
2355
- "importPath": "./src/components/ui/Menubar.stories.tsx",
2356
- "type": "docs",
2357
- "tags": [
2358
- "dev",
2359
- "test",
2360
- "manifest",
2361
- "autodocs"
2362
- ],
2363
- "storiesImports": []
2364
- }
2365
- },
2366
- {
2367
- "id": "ui-components-nativeselect",
2368
- "name": "NativeSelect",
2369
- "path": "./src/components/ui/NativeSelect.stories.tsx",
2370
- "stories": [
2371
- {
2372
- "name": "Default",
2373
- "snippet": "const Default = () => (\n <NativeSelect defaultValue=\"react\">\n <NativeSelectOption value=\"react\">React</NativeSelectOption>\n <NativeSelectOption value=\"vue\">Vue</NativeSelectOption>\n <NativeSelectOption value=\"angular\">Angular</NativeSelectOption>\n <NativeSelectOption value=\"svelte\">Svelte</NativeSelectOption>\n </NativeSelect>\n);",
2374
- "description": "Shows a native select with pre-selected value and several options.",
2375
- "id": "ui-components-nativeselect--default",
2376
- "exportName": "Default",
2377
- "type": "story",
2378
- "subtype": "story"
2379
- },
2380
- {
2381
- "name": "Small",
2382
- "snippet": "const Small = () => (\n <NativeSelect size=\"sm\" defaultValue=\"\">\n <NativeSelectOption value=\"\" disabled>\n Select a fruit...\n </NativeSelectOption>\n <NativeSelectOption value=\"apple\">Apple</NativeSelectOption>\n <NativeSelectOption value=\"banana\">Banana</NativeSelectOption>\n <NativeSelectOption value=\"cherry\">Cherry</NativeSelectOption>\n </NativeSelect>\n);",
2383
- "description": "Shows the compact size variant with a disabled placeholder option.",
2384
- "id": "ui-components-nativeselect--small",
2385
- "exportName": "Small",
2386
- "type": "story",
2387
- "subtype": "story"
2388
- },
2389
- {
2390
- "name": "Disabled",
2391
- "snippet": "const Disabled = () => (\n <NativeSelect disabled defaultValue=\"react\">\n <NativeSelectOption value=\"react\">React</NativeSelectOption>\n <NativeSelectOption value=\"vue\">Vue</NativeSelectOption>\n </NativeSelect>\n);",
2392
- "description": "Shows the select in a disabled state.",
2393
- "id": "ui-components-nativeselect--disabled",
2394
- "exportName": "Disabled",
2395
- "type": "story",
2396
- "subtype": "story"
2397
- }
2398
- ],
2399
- "import": "import { NativeSelect, NativeSelectOption } from \"react-client\";",
2400
- "jsDocTags": {},
2401
- "description": "A styled wrapper around the browser's native <select> element. Use instead of the custom Select component when native mobile pickers or simpler accessibility is preferred.",
2402
- "reactDocgen": {
2403
- "description": "A styled wrapper around the browser's native <select> element.\nUse instead of the custom Select component when native mobile pickers or simpler accessibility is preferred.",
2404
- "methods": [],
2405
- "displayName": "NativeSelect",
2406
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/NativeSelect.tsx",
2407
- "actualName": "NativeSelect",
2408
- "exportName": "NativeSelect",
2409
- "props": {
2410
- "size": {
2411
- "required": false,
2412
- "tsType": {
2413
- "name": "union",
2414
- "raw": "'sm' | 'default'",
2415
- "elements": [
2416
- {
2417
- "name": "literal",
2418
- "value": "'sm'"
2419
- },
2420
- {
2421
- "name": "literal",
2422
- "value": "'default'"
2423
- }
2424
- ]
2425
- },
2426
- "description": "",
2427
- "defaultValue": {
2428
- "value": "'default'",
2429
- "computed": false
2430
- }
2431
- }
2432
- }
2433
- },
2434
- "componentPath": "./src/components/ui/NativeSelect.tsx",
2435
- "title": "UI Components/NativeSelect",
2436
- "tags": [
2437
- "dev",
2438
- "test",
2439
- "manifest",
2440
- "autodocs"
2441
- ],
2442
- "docs": {
2443
- "id": "ui-components-nativeselect--docs",
2444
- "title": "UI Components/NativeSelect",
2445
- "name": "Docs",
2446
- "importPath": "./src/components/ui/NativeSelect.stories.tsx",
2447
- "type": "docs",
2448
- "tags": [
2449
- "dev",
2450
- "test",
2451
- "manifest",
2452
- "autodocs"
2453
- ],
2454
- "storiesImports": []
2455
- }
2456
- },
2457
- {
2458
- "id": "ui-components-navigationmenu",
2459
- "name": "NavigationMenu",
2460
- "path": "./src/components/ui/NavigationMenu.stories.tsx",
2461
- "stories": [
2462
- {
2463
- "name": "Default",
2464
- "snippet": "const Default = () => (\n <NavigationMenu>\n <NavigationMenuList>\n <NavigationMenuItem>\n <NavigationMenuTrigger>Getting Started</NavigationMenuTrigger>\n <NavigationMenuContent>\n <div className=\"grid w-[400px] gap-3 p-4\">\n <NavigationMenuLink href=\"#\">\n <div className=\"font-medium\">Introduction</div>\n <p className=\"text-muted-foreground text-sm\">Learn the basics and get up and running quickly.</p>\n </NavigationMenuLink>\n <NavigationMenuLink href=\"#\">\n <div className=\"font-medium\">Installation</div>\n <p className=\"text-muted-foreground text-sm\">Step-by-step guide to installing dependencies.</p>\n </NavigationMenuLink>\n </div>\n </NavigationMenuContent>\n </NavigationMenuItem>\n <NavigationMenuItem>\n <NavigationMenuTrigger>Components</NavigationMenuTrigger>\n <NavigationMenuContent>\n <div className=\"grid w-[400px] gap-3 p-4\">\n <NavigationMenuLink href=\"#\">\n <div className=\"font-medium\">Button</div>\n <p className=\"text-muted-foreground text-sm\">\n Displays a button or a component that looks like a button.\n </p>\n </NavigationMenuLink>\n <NavigationMenuLink href=\"#\">\n <div className=\"font-medium\">Dialog</div>\n <p className=\"text-muted-foreground text-sm\">A modal dialog that interrupts the user.</p>\n </NavigationMenuLink>\n </div>\n </NavigationMenuContent>\n </NavigationMenuItem>\n <NavigationMenuItem>\n <NavigationMenuLink href=\"#\">Documentation</NavigationMenuLink>\n </NavigationMenuItem>\n </NavigationMenuList>\n </NavigationMenu>\n);",
2465
- "description": "Shows a navigation menu with dropdown content panels and a direct link item.",
2466
- "id": "ui-components-navigationmenu--default",
2467
- "exportName": "Default",
2468
- "type": "story",
2469
- "subtype": "story"
2470
- },
2471
- {
2472
- "name": "SimpleLinks",
2473
- "snippet": "const SimpleLinks = () => (\n <NavigationMenu>\n <NavigationMenuList>\n <NavigationMenuItem>\n <NavigationMenuLink href=\"#\">Home</NavigationMenuLink>\n </NavigationMenuItem>\n <NavigationMenuItem>\n <NavigationMenuLink href=\"#\">About</NavigationMenuLink>\n </NavigationMenuItem>\n <NavigationMenuItem>\n <NavigationMenuLink href=\"#\">Contact</NavigationMenuLink>\n </NavigationMenuItem>\n </NavigationMenuList>\n </NavigationMenu>\n);",
2474
- "description": "Shows a flat navigation menu with simple link items and no dropdowns."
2475
- }
2476
- ],
2477
- "import": "import {\n NavigationMenu,\n NavigationMenuContent,\n NavigationMenuItem,\n NavigationMenuLink,\n NavigationMenuList,\n NavigationMenuTrigger,\n} from \"react-client\";",
2478
- "jsDocTags": {},
2479
- "description": "A site-wide navigation component with dropdown content panels, built on Radix UI NavigationMenu primitive. Compose with NavigationMenuList, NavigationMenuItem, NavigationMenuTrigger, and NavigationMenuContent for rich mega-menu layouts.",
2480
- "reactDocgen": {
2481
- "description": "A site-wide navigation component with dropdown content panels, built on Radix UI NavigationMenu primitive.\nCompose with NavigationMenuList, NavigationMenuItem, NavigationMenuTrigger, and NavigationMenuContent for rich mega-menu layouts.",
2482
- "methods": [],
2483
- "displayName": "NavigationMenu",
2484
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/NavigationMenu.tsx",
2485
- "actualName": "NavigationMenu",
2486
- "exportName": "NavigationMenu",
2487
- "props": {
2488
- "viewport": {
2489
- "required": false,
2490
- "tsType": {
2491
- "name": "boolean"
2492
- },
2493
- "description": "",
2494
- "defaultValue": {
2495
- "value": "true",
2496
- "computed": false
2497
- }
2498
- }
2499
- }
2500
- },
2501
- "componentPath": "./src/components/ui/NavigationMenu.tsx",
2502
- "title": "UI Components/NavigationMenu",
2503
- "tags": [
2504
- "dev",
2505
- "test",
2506
- "manifest",
2507
- "autodocs"
2508
- ],
2509
- "docs": {
2510
- "id": "ui-components-navigationmenu--docs",
2511
- "title": "UI Components/NavigationMenu",
2512
- "name": "Docs",
2513
- "importPath": "./src/components/ui/NavigationMenu.stories.tsx",
2514
- "type": "docs",
2515
- "tags": [
2516
- "dev",
2517
- "test",
2518
- "manifest",
2519
- "autodocs"
2520
- ],
2521
- "storiesImports": []
2522
- }
2523
- },
2524
- {
2525
- "id": "ui-components-pagination",
2526
- "name": "Pagination",
2527
- "path": "./src/components/ui/Pagination.stories.tsx",
2528
- "stories": [
2529
- {
2530
- "name": "Default",
2531
- "snippet": "const Default = () => (\n <Pagination>\n <PaginationContent>\n <PaginationItem>\n <PaginationPrevious href=\"#\" />\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href=\"#\">1</PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href=\"#\" isActive>\n 2\n </PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href=\"#\">3</PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationEllipsis />\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href=\"#\">10</PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationNext href=\"#\" />\n </PaginationItem>\n </PaginationContent>\n </Pagination>\n);",
2532
- "description": "Shows a full pagination bar with previous/next, numbered links, and an ellipsis.",
2533
- "id": "ui-components-pagination--default",
2534
- "exportName": "Default",
2535
- "type": "story",
2536
- "subtype": "story"
2537
- },
2538
- {
2539
- "name": "FewPages",
2540
- "snippet": "const FewPages = () => (\n <Pagination>\n <PaginationContent>\n <PaginationItem>\n <PaginationPrevious href=\"#\" />\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href=\"#\" isActive>\n 1\n </PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href=\"#\">2</PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href=\"#\">3</PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationNext href=\"#\" />\n </PaginationItem>\n </PaginationContent>\n </Pagination>\n);",
2541
- "description": "Shows a compact pagination for a small number of pages without ellipsis."
2542
- }
2543
- ],
2544
- "import": "import {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n} from \"react-client\";",
2545
- "jsDocTags": {},
2546
- "description": "A navigation component for paginated content, rendered as a semantic nav element. Compose with PaginationContent, PaginationItem, PaginationLink, PaginationPrevious, PaginationNext, and PaginationEllipsis.",
2547
- "reactDocgen": {
2548
- "description": "A navigation component for paginated content, rendered as a semantic nav element.\nCompose with PaginationContent, PaginationItem, PaginationLink, PaginationPrevious, PaginationNext, and PaginationEllipsis.",
2549
- "methods": [],
2550
- "displayName": "Pagination",
2551
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Pagination.tsx",
2552
- "actualName": "Pagination",
2553
- "exportName": "Pagination"
2554
- },
2555
- "componentPath": "./src/components/ui/Pagination.tsx",
2556
- "title": "UI Components/Pagination",
2557
- "tags": [
2558
- "dev",
2559
- "test",
2560
- "manifest",
2561
- "autodocs"
2562
- ],
2563
- "docs": {
2564
- "id": "ui-components-pagination--docs",
2565
- "title": "UI Components/Pagination",
2566
- "name": "Docs",
2567
- "importPath": "./src/components/ui/Pagination.stories.tsx",
2568
- "type": "docs",
2569
- "tags": [
2570
- "dev",
2571
- "test",
2572
- "manifest",
2573
- "autodocs"
2574
- ],
2575
- "storiesImports": []
2576
- }
2577
- },
2578
- {
2579
- "id": "ui-components-popover",
2580
- "name": "Popover",
2581
- "path": "./src/components/ui/Popover.stories.tsx",
2582
- "stories": [
2583
- {
2584
- "name": "Default",
2585
- "snippet": "const Default = () => (\n <Popover>\n <PopoverTrigger asChild>\n <Button variant=\"outline\">Open Popover</Button>\n </PopoverTrigger>\n <PopoverContent>\n <div className=\"grid gap-4\">\n <div className=\"space-y-2\">\n <h4 className=\"font-medium leading-none\">Dimensions</h4>\n <p className=\"text-muted-foreground text-sm\">Set the dimensions for the layer.</p>\n </div>\n <div className=\"grid gap-2\">\n <div className=\"grid grid-cols-3 items-center gap-4\">\n <span className=\"text-sm\">Width</span>\n <input className=\"border-input col-span-2 h-8 rounded-md border px-3 text-sm\" defaultValue=\"100%\" />\n </div>\n <div className=\"grid grid-cols-3 items-center gap-4\">\n <span className=\"text-sm\">Height</span>\n <input className=\"border-input col-span-2 h-8 rounded-md border px-3 text-sm\" defaultValue=\"25px\" />\n </div>\n </div>\n </div>\n </PopoverContent>\n </Popover>\n);",
2586
- "description": "Shows a popover with form inputs for setting dimensions.",
2587
- "id": "ui-components-popover--default",
2588
- "exportName": "Default",
2589
- "type": "story",
2590
- "subtype": "story"
2591
- },
2592
- {
2593
- "name": "SimpleText",
2594
- "snippet": "const SimpleText = () => (\n <Popover>\n <PopoverTrigger asChild>\n <Button variant=\"outline\">Info</Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-60\">\n <p className=\"text-sm\">This is a simple popover with some informational text content.</p>\n </PopoverContent>\n </Popover>\n);",
2595
- "description": "Shows a popover with simple informational text content."
2596
- }
2597
- ],
2598
- "import": "import { Button, Popover, PopoverContent, PopoverTrigger } from \"react-client\";",
2599
- "jsDocTags": {},
2600
- "description": "A floating panel anchored to a trigger for rich content on click.",
2601
- "reactDocgen": {
2602
- "description": "A floating panel anchored to a trigger for rich content on click.",
2603
- "methods": [],
2604
- "displayName": "Popover",
2605
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Popover.tsx",
2606
- "actualName": "Popover",
2607
- "exportName": "Popover"
2608
- },
2609
- "componentPath": "./src/components/ui/Popover.tsx",
2610
- "title": "UI Components/Popover",
2611
- "tags": [
2612
- "dev",
2613
- "test",
2614
- "manifest",
2615
- "autodocs"
2616
- ],
2617
- "docs": {
2618
- "id": "ui-components-popover--docs",
2619
- "title": "UI Components/Popover",
2620
- "name": "Docs",
2621
- "importPath": "./src/components/ui/Popover.stories.tsx",
2622
- "type": "docs",
2623
- "tags": [
2624
- "dev",
2625
- "test",
2626
- "manifest",
2627
- "autodocs"
2628
- ],
2629
- "storiesImports": []
2630
- }
2631
- },
2632
- {
2633
- "id": "ui-components-progress",
2634
- "name": "Progress",
2635
- "path": "./src/components/ui/Progress.stories.tsx",
2636
- "stories": [
2637
- {
2638
- "name": "Default",
2639
- "snippet": "const Default = () => <Progress value={50} className=\"w-[60%]\" />;",
2640
- "description": "Shows the progress bar at 50% with an adjustable value control.",
2641
- "id": "ui-components-progress--default",
2642
- "exportName": "Default",
2643
- "type": "story",
2644
- "subtype": "story"
2645
- },
2646
- {
2647
- "name": "Empty",
2648
- "snippet": "const Empty = () => <Progress value={0} className=\"w-[60%]\" />;",
2649
- "description": "Shows the progress bar at 0% (empty state).",
2650
- "id": "ui-components-progress--empty",
2651
- "exportName": "Empty",
2652
- "type": "story",
2653
- "subtype": "story"
2654
- },
2655
- {
2656
- "name": "Half",
2657
- "snippet": "const Half = () => <Progress value={50} className=\"w-[60%]\" />;",
2658
- "description": "Shows the progress bar at 50%.",
2659
- "id": "ui-components-progress--half",
2660
- "exportName": "Half",
2661
- "type": "story",
2662
- "subtype": "story"
2663
- },
2664
- {
2665
- "name": "Full",
2666
- "snippet": "const Full = () => <Progress value={100} className=\"w-[60%]\" />;",
2667
- "description": "Shows the progress bar at 100% (complete state).",
2668
- "id": "ui-components-progress--full",
2669
- "exportName": "Full",
2670
- "type": "story",
2671
- "subtype": "story"
2672
- }
2673
- ],
2674
- "import": "import { Progress } from \"react-client\";",
2675
- "jsDocTags": {},
2676
- "description": "A horizontal progress bar. Set `value` (0-100) to control fill level.",
2677
- "reactDocgen": {
2678
- "description": "A horizontal progress bar. Set `value` (0-100) to control fill level.",
2679
- "methods": [],
2680
- "displayName": "Progress",
2681
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Progress.tsx",
2682
- "actualName": "Progress",
2683
- "exportName": "Progress"
2684
- },
2685
- "componentPath": "./src/components/ui/Progress.tsx",
2686
- "title": "UI Components/Progress",
2687
- "tags": [
2688
- "dev",
2689
- "test",
2690
- "manifest",
2691
- "autodocs"
2692
- ],
2693
- "docs": {
2694
- "id": "ui-components-progress--docs",
2695
- "title": "UI Components/Progress",
2696
- "name": "Docs",
2697
- "importPath": "./src/components/ui/Progress.stories.tsx",
2698
- "type": "docs",
2699
- "tags": [
2700
- "dev",
2701
- "test",
2702
- "manifest",
2703
- "autodocs"
2704
- ],
2705
- "storiesImports": []
2706
- }
2707
- },
2708
- {
2709
- "id": "ui-components-radiogroup",
2710
- "name": "RadioGroup",
2711
- "path": "./src/components/ui/RadioGroup.stories.tsx",
2712
- "stories": [
2713
- {
2714
- "name": "Default",
2715
- "snippet": "const Default = () => (\n <RadioGroup defaultValue=\"comfortable\">\n <div className=\"flex items-center space-x-2\">\n <RadioGroupItem value=\"default\" id=\"r1\" />\n <Label htmlFor=\"r1\">Default</Label>\n </div>\n <div className=\"flex items-center space-x-2\">\n <RadioGroupItem value=\"comfortable\" id=\"r2\" />\n <Label htmlFor=\"r2\">Comfortable</Label>\n </div>\n <div className=\"flex items-center space-x-2\">\n <RadioGroupItem value=\"compact\" id=\"r3\" />\n <Label htmlFor=\"r3\">Compact</Label>\n </div>\n </RadioGroup>\n);",
2716
- "description": "Shows a vertical radio group with three options and a pre-selected value.",
2717
- "id": "ui-components-radiogroup--default",
2718
- "exportName": "Default",
2719
- "type": "story",
2720
- "subtype": "story"
2721
- },
2722
- {
2723
- "name": "Horizontal",
2724
- "snippet": "const Horizontal = () => (\n <RadioGroup defaultValue=\"medium\" className=\"flex flex-row gap-4\">\n <div className=\"flex items-center space-x-2\">\n <RadioGroupItem value=\"small\" id=\"h1\" />\n <Label htmlFor=\"h1\">Small</Label>\n </div>\n <div className=\"flex items-center space-x-2\">\n <RadioGroupItem value=\"medium\" id=\"h2\" />\n <Label htmlFor=\"h2\">Medium</Label>\n </div>\n <div className=\"flex items-center space-x-2\">\n <RadioGroupItem value=\"large\" id=\"h3\" />\n <Label htmlFor=\"h3\">Large</Label>\n </div>\n </RadioGroup>\n);",
2725
- "description": "Shows a horizontally laid out radio group.",
2726
- "id": "ui-components-radiogroup--horizontal",
2727
- "exportName": "Horizontal",
2728
- "type": "story",
2729
- "subtype": "story"
2730
- }
2731
- ],
2732
- "import": "import { Label, RadioGroup, RadioGroupItem } from \"react-client\";",
2733
- "jsDocTags": {},
2734
- "description": "A set of mutually exclusive radio options built on Radix UI RadioGroup primitive. Compose with RadioGroupItem and Label to create accessible radio button groups.",
2735
- "reactDocgen": {
2736
- "description": "A set of mutually exclusive radio options built on Radix UI RadioGroup primitive.\nCompose with RadioGroupItem and Label to create accessible radio button groups.",
2737
- "methods": [],
2738
- "displayName": "RadioGroup",
2739
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/RadioGroup.tsx",
2740
- "actualName": "RadioGroup",
2741
- "exportName": "RadioGroup"
2742
- },
2743
- "componentPath": "./src/components/ui/RadioGroup.tsx",
2744
- "title": "UI Components/RadioGroup",
2745
- "tags": [
2746
- "dev",
2747
- "test",
2748
- "manifest",
2749
- "autodocs"
2750
- ],
2751
- "docs": {
2752
- "id": "ui-components-radiogroup--docs",
2753
- "title": "UI Components/RadioGroup",
2754
- "name": "Docs",
2755
- "importPath": "./src/components/ui/RadioGroup.stories.tsx",
2756
- "type": "docs",
2757
- "tags": [
2758
- "dev",
2759
- "test",
2760
- "manifest",
2761
- "autodocs"
2762
- ],
2763
- "storiesImports": []
2764
- }
2765
- },
2766
- {
2767
- "id": "ui-components-resizable",
2768
- "name": "ResizablePanelGroup",
2769
- "path": "./src/components/ui/Resizable.stories.tsx",
2770
- "stories": [
2771
- {
2772
- "name": "Default",
2773
- "snippet": "const Default = () => (\n <ResizablePanelGroup orientation=\"horizontal\" className=\"min-h-[200px] max-w-md rounded-lg border\">\n <ResizablePanel defaultSize={50}>\n <div className=\"flex h-full items-center justify-center p-6\">\n <span className=\"font-semibold\">Panel One</span>\n </div>\n </ResizablePanel>\n <ResizableHandle />\n <ResizablePanel defaultSize={50}>\n <div className=\"flex h-full items-center justify-center p-6\">\n <span className=\"font-semibold\">Panel Two</span>\n </div>\n </ResizablePanel>\n </ResizablePanelGroup>\n);",
2774
- "description": "Shows two resizable panels split equally with a minimal divider.",
2775
- "id": "ui-components-resizable--default",
2776
- "exportName": "Default",
2777
- "type": "story",
2778
- "subtype": "story"
2779
- },
2780
- {
2781
- "name": "WithHandle",
2782
- "snippet": "const WithHandle = () => (\n <ResizablePanelGroup orientation=\"horizontal\" className=\"min-h-[200px] max-w-md rounded-lg border\">\n <ResizablePanel defaultSize={30}>\n <div className=\"flex h-full items-center justify-center p-6\">\n <span className=\"font-semibold\">Sidebar</span>\n </div>\n </ResizablePanel>\n <ResizableHandle withHandle />\n <ResizablePanel defaultSize={70}>\n <div className=\"flex h-full items-center justify-center p-6\">\n <span className=\"font-semibold\">Content</span>\n </div>\n </ResizablePanel>\n </ResizablePanelGroup>\n);",
2783
- "description": "Shows two panels with a visible grip handle on the divider."
2784
- },
2785
- {
2786
- "name": "ThreePanels",
2787
- "snippet": "const ThreePanels = () => (\n <ResizablePanelGroup orientation=\"horizontal\" className=\"min-h-[200px] max-w-lg rounded-lg border\">\n <ResizablePanel defaultSize={25}>\n <div className=\"flex h-full items-center justify-center p-6\">\n <span className=\"font-semibold\">Left</span>\n </div>\n </ResizablePanel>\n <ResizableHandle withHandle />\n <ResizablePanel defaultSize={50}>\n <div className=\"flex h-full items-center justify-center p-6\">\n <span className=\"font-semibold\">Center</span>\n </div>\n </ResizablePanel>\n <ResizableHandle withHandle />\n <ResizablePanel defaultSize={25}>\n <div className=\"flex h-full items-center justify-center p-6\">\n <span className=\"font-semibold\">Right</span>\n </div>\n </ResizablePanel>\n </ResizablePanelGroup>\n);",
2788
- "description": "Shows three resizable panels with grip handles between them."
2789
- }
2790
- ],
2791
- "import": "import { ResizableHandle, ResizablePanel, ResizablePanelGroup } from \"react-client\";",
2792
- "jsDocTags": {},
2793
- "description": "A container for resizable panels that can be dragged to adjust their sizes. Built on react-resizable-panels. Compose with ResizablePanel and ResizableHandle.",
2794
- "reactDocgen": {
2795
- "description": "A container for resizable panels that can be dragged to adjust their sizes.\nBuilt on react-resizable-panels. Compose with ResizablePanel and ResizableHandle.",
2796
- "methods": [],
2797
- "displayName": "ResizablePanelGroup",
2798
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Resizable.tsx",
2799
- "actualName": "ResizablePanelGroup",
2800
- "exportName": "ResizablePanelGroup"
2801
- },
2802
- "componentPath": "./src/components/ui/Resizable.tsx",
2803
- "title": "UI Components/Resizable",
2804
- "tags": [
2805
- "dev",
2806
- "test",
2807
- "manifest",
2808
- "autodocs"
2809
- ],
2810
- "docs": {
2811
- "id": "ui-components-resizable--docs",
2812
- "title": "UI Components/Resizable",
2813
- "name": "Docs",
2814
- "importPath": "./src/components/ui/Resizable.stories.tsx",
2815
- "type": "docs",
2816
- "tags": [
2817
- "dev",
2818
- "test",
2819
- "manifest",
2820
- "autodocs"
2821
- ],
2822
- "storiesImports": []
2823
- }
2824
- },
2825
- {
2826
- "id": "ui-components-scrollarea",
2827
- "name": "ScrollArea",
2828
- "path": "./src/components/ui/ScrollArea.stories.tsx",
2829
- "stories": [
2830
- {
2831
- "name": "Default",
2832
- "snippet": "const Default = () => (\n <ScrollArea className=\"h-72 w-48 rounded-md border\">\n <div className=\"p-4\">\n <h4 className=\"mb-4 text-sm font-medium leading-none\">Tags</h4>\n {tags.map((tag) => (\n <div key={tag}>\n <div className=\"text-sm\">{tag}</div>\n <Separator className=\"my-2\" />\n </div>\n ))}\n </div>\n </ScrollArea>\n);",
2833
- "description": "Shows a vertical scroll area with a long list of items.",
2834
- "id": "ui-components-scrollarea--default",
2835
- "exportName": "Default",
2836
- "type": "story",
2837
- "subtype": "story"
2838
- },
2839
- {
2840
- "name": "Horizontal",
2841
- "snippet": "const Horizontal = () => (\n <ScrollArea className=\"w-96 whitespace-nowrap rounded-md border\">\n <div className=\"flex w-max space-x-4 p-4\">\n {Array.from({ length: 20 }, (_, i) => (\n <div key={i} className=\"bg-muted flex h-24 w-36 shrink-0 items-center justify-center rounded-md\">\n <span className=\"text-sm font-medium\">Card {i + 1}</span>\n </div>\n ))}\n </div>\n <ScrollBar orientation=\"horizontal\" />\n </ScrollArea>\n);",
2842
- "description": "Shows a horizontal scroll area with a row of cards.",
2843
- "id": "ui-components-scrollarea--horizontal",
2844
- "exportName": "Horizontal",
2845
- "type": "story",
2846
- "subtype": "story"
2847
- }
2848
- ],
2849
- "import": "import { ScrollArea, ScrollBar, Separator } from \"react-client\";",
2850
- "jsDocTags": {},
2851
- "description": "A custom scrollable container with styled scrollbars, built on Radix UI ScrollArea primitive. Replaces native browser scrollbars with consistent cross-platform styled scrollbars.",
2852
- "reactDocgen": {
2853
- "description": "A custom scrollable container with styled scrollbars, built on Radix UI ScrollArea primitive.\nReplaces native browser scrollbars with consistent cross-platform styled scrollbars.",
2854
- "methods": [],
2855
- "displayName": "ScrollArea",
2856
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/ScrollArea.tsx",
2857
- "actualName": "ScrollArea",
2858
- "exportName": "ScrollArea"
2859
- },
2860
- "componentPath": "./src/components/ui/ScrollArea.tsx",
2861
- "title": "UI Components/ScrollArea",
2862
- "tags": [
2863
- "dev",
2864
- "test",
2865
- "manifest",
2866
- "autodocs"
2867
- ],
2868
- "docs": {
2869
- "id": "ui-components-scrollarea--docs",
2870
- "title": "UI Components/ScrollArea",
2871
- "name": "Docs",
2872
- "importPath": "./src/components/ui/ScrollArea.stories.tsx",
2873
- "type": "docs",
2874
- "tags": [
2875
- "dev",
2876
- "test",
2877
- "manifest",
2878
- "autodocs"
2879
- ],
2880
- "storiesImports": []
2881
- }
2882
- },
2883
- {
2884
- "id": "ui-components-select",
2885
- "name": "Select",
2886
- "path": "./src/components/ui/Select.stories.tsx",
2887
- "stories": [
2888
- {
2889
- "name": "Default",
2890
- "snippet": "const Default = () => (\n <Select>\n <SelectTrigger className=\"w-[180px]\">\n <SelectValue placeholder=\"Select a fruit\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"apple\">Apple</SelectItem>\n <SelectItem value=\"banana\">Banana</SelectItem>\n <SelectItem value=\"cherry\">Cherry</SelectItem>\n <SelectItem value=\"grape\">Grape</SelectItem>\n <SelectItem value=\"orange\">Orange</SelectItem>\n </SelectContent>\n </Select>\n);",
2891
- "description": "Shows a basic select with a list of fruit options.",
2892
- "id": "ui-components-select--default",
2893
- "exportName": "Default",
2894
- "type": "story",
2895
- "subtype": "story"
2896
- },
2897
- {
2898
- "name": "Grouped",
2899
- "snippet": "const Grouped = () => (\n <Select>\n <SelectTrigger className=\"w-[220px]\">\n <SelectValue placeholder=\"Select a timezone\" />\n </SelectTrigger>\n <SelectContent>\n <SelectGroup>\n <SelectLabel>North America</SelectLabel>\n <SelectItem value=\"est\">Eastern Standard Time (EST)</SelectItem>\n <SelectItem value=\"cst\">Central Standard Time (CST)</SelectItem>\n <SelectItem value=\"pst\">Pacific Standard Time (PST)</SelectItem>\n </SelectGroup>\n <SelectGroup>\n <SelectLabel>Europe</SelectLabel>\n <SelectItem value=\"gmt\">Greenwich Mean Time (GMT)</SelectItem>\n <SelectItem value=\"cet\">Central European Time (CET)</SelectItem>\n </SelectGroup>\n </SelectContent>\n </Select>\n);",
2900
- "description": "Shows options organized into labeled groups for categorized selection.",
2901
- "id": "ui-components-select--grouped",
2902
- "exportName": "Grouped",
2903
- "type": "story",
2904
- "subtype": "story"
2905
- }
2906
- ],
2907
- "import": "import {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectTrigger,\n SelectValue,\n} from \"react-client\";",
2908
- "jsDocTags": {},
2909
- "description": "A custom dropdown select menu built on Radix UI Select primitive. Compose with SelectTrigger, SelectValue, SelectContent, and SelectItem for a fully accessible select experience.",
2910
- "reactDocgen": {
2911
- "description": "A custom dropdown select menu built on Radix UI Select primitive.\nCompose with SelectTrigger, SelectValue, SelectContent, and SelectItem for a fully accessible select experience.",
2912
- "methods": [],
2913
- "displayName": "Select",
2914
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Select.tsx",
2915
- "actualName": "Select",
2916
- "exportName": "Select"
2917
- },
2918
- "componentPath": "./src/components/ui/Select.tsx",
2919
- "title": "UI Components/Select",
2920
- "tags": [
2921
- "dev",
2922
- "test",
2923
- "manifest",
2924
- "autodocs"
2925
- ],
2926
- "docs": {
2927
- "id": "ui-components-select--docs",
2928
- "title": "UI Components/Select",
2929
- "name": "Docs",
2930
- "importPath": "./src/components/ui/Select.stories.tsx",
2931
- "type": "docs",
2932
- "tags": [
2933
- "dev",
2934
- "test",
2935
- "manifest",
2936
- "autodocs"
2937
- ],
2938
- "storiesImports": []
2939
- }
2940
- },
2941
- {
2942
- "id": "ui-components-separator",
2943
- "name": "Separator",
2944
- "path": "./src/components/ui/Separator.stories.tsx",
2945
- "stories": [
2946
- {
2947
- "name": "Default",
2948
- "snippet": "const Default = () => (\n <div>\n <div className=\"space-y-1\">\n <h4 className=\"text-sm font-medium leading-none\">Radix Primitives</h4>\n <p className=\"text-muted-foreground text-sm\">An open-source UI component library.</p>\n </div>\n <Separator className=\"my-4\" />\n <div className=\"flex h-5 items-center space-x-4 text-sm\">\n <div>Blog</div>\n <Separator orientation=\"vertical\" />\n <div>Docs</div>\n <Separator orientation=\"vertical\" />\n <div>Source</div>\n </div>\n </div>\n);",
2949
- "description": "Shows both horizontal and vertical separators dividing content sections.",
2950
- "id": "ui-components-separator--default",
2951
- "exportName": "Default",
2952
- "type": "story",
2953
- "subtype": "story"
2954
- },
2955
- {
2956
- "name": "Vertical",
2957
- "snippet": "const Vertical = () => (\n <div className=\"flex h-12 items-center space-x-4 text-sm\">\n <div>First</div>\n <Separator orientation=\"vertical\" />\n <div>Second</div>\n <Separator orientation=\"vertical\" />\n <div>Third</div>\n </div>\n);",
2958
- "description": "Shows vertical separators between inline text items.",
2959
- "id": "ui-components-separator--vertical",
2960
- "exportName": "Vertical",
2961
- "type": "story",
2962
- "subtype": "story"
2963
- }
2964
- ],
2965
- "import": "import { Separator } from \"react-client\";",
2966
- "jsDocTags": {},
2967
- "description": "A visual divider between content sections. Renders as horizontal or vertical line. Decorative by default (hidden from screen readers).",
2968
- "reactDocgen": {
2969
- "description": "A visual divider between content sections. Renders as horizontal or vertical line. Decorative by default (hidden from screen readers).",
2970
- "methods": [],
2971
- "displayName": "Separator",
2972
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Separator.tsx",
2973
- "actualName": "Separator",
2974
- "exportName": "Separator",
2975
- "props": {
2976
- "orientation": {
2977
- "defaultValue": {
2978
- "value": "'horizontal'",
2979
- "computed": false
2980
- },
2981
- "required": false
2982
- },
2983
- "decorative": {
2984
- "defaultValue": {
2985
- "value": "true",
2986
- "computed": false
2987
- },
2988
- "required": false
2989
- }
2990
- }
2991
- },
2992
- "componentPath": "./src/components/ui/Separator.tsx",
2993
- "title": "UI Components/Separator",
2994
- "tags": [
2995
- "dev",
2996
- "test",
2997
- "manifest",
2998
- "autodocs"
2999
- ],
3000
- "docs": {
3001
- "id": "ui-components-separator--docs",
3002
- "title": "UI Components/Separator",
3003
- "name": "Docs",
3004
- "importPath": "./src/components/ui/Separator.stories.tsx",
3005
- "type": "docs",
3006
- "tags": [
3007
- "dev",
3008
- "test",
3009
- "manifest",
3010
- "autodocs"
3011
- ],
3012
- "storiesImports": []
3013
- }
3014
- },
3015
- {
3016
- "id": "ui-components-sheet",
3017
- "name": "Sheet",
3018
- "path": "./src/components/ui/Sheet.stories.tsx",
3019
- "stories": [
3020
- {
3021
- "name": "Default",
3022
- "snippet": "const Default = () => (\n <Sheet>\n <SheetTrigger asChild>\n <Button variant=\"outline\">Open Sheet</Button>\n </SheetTrigger>\n <SheetContent>\n <SheetHeader>\n <SheetTitle>Edit Profile</SheetTitle>\n <SheetDescription>Make changes to your profile here. Click save when you are done.</SheetDescription>\n </SheetHeader>\n <div className=\"grid gap-4 px-4 py-4\">\n <div className=\"grid grid-cols-4 items-center gap-4\">\n <span className=\"text-right text-sm\">Name</span>\n <input className=\"border-input col-span-3 h-9 rounded-md border px-3 text-sm\" defaultValue=\"John Doe\" />\n </div>\n <div className=\"grid grid-cols-4 items-center gap-4\">\n <span className=\"text-right text-sm\">Username</span>\n <input className=\"border-input col-span-3 h-9 rounded-md border px-3 text-sm\" defaultValue=\"@johndoe\" />\n </div>\n </div>\n </SheetContent>\n </Sheet>\n);",
3023
- "description": "Shows a sheet sliding in from the right with a profile editing form.",
3024
- "id": "ui-components-sheet--default",
3025
- "exportName": "Default",
3026
- "type": "story",
3027
- "subtype": "story"
3028
- },
3029
- {
3030
- "name": "LeftSide",
3031
- "snippet": "const LeftSide = () => (\n <Sheet>\n <SheetTrigger asChild>\n <Button variant=\"outline\">Open Left Sheet</Button>\n </SheetTrigger>\n <SheetContent side=\"left\">\n <SheetHeader>\n <SheetTitle>Navigation</SheetTitle>\n <SheetDescription>Browse through the application.</SheetDescription>\n </SheetHeader>\n <nav className=\"grid gap-2 px-4 py-4\">\n <a href=\"#\" className=\"text-sm hover:underline\">\n Home\n </a>\n <a href=\"#\" className=\"text-sm hover:underline\">\n About\n </a>\n <a href=\"#\" className=\"text-sm hover:underline\">\n Settings\n </a>\n <a href=\"#\" className=\"text-sm hover:underline\">\n Help\n </a>\n </nav>\n </SheetContent>\n </Sheet>\n);",
3032
- "description": "Shows a sheet sliding in from the left with navigation links."
3033
- }
3034
- ],
3035
- "import": "import {\n Button,\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n SheetTrigger,\n} from \"react-client\";",
3036
- "jsDocTags": {},
3037
- "description": "A panel that slides in from an edge of the screen, built on Radix UI Dialog primitive. Use for secondary content like navigation, filters, or forms that don't warrant a full page. Compose with SheetTrigger, SheetContent, SheetHeader, SheetTitle, and SheetDescription.",
3038
- "reactDocgen": {
3039
- "description": "A panel that slides in from an edge of the screen, built on Radix UI Dialog primitive.\nUse for secondary content like navigation, filters, or forms that don't warrant a full page.\nCompose with SheetTrigger, SheetContent, SheetHeader, SheetTitle, and SheetDescription.",
3040
- "methods": [],
3041
- "displayName": "Sheet",
3042
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Sheet.tsx",
3043
- "actualName": "Sheet",
3044
- "exportName": "Sheet"
3045
- },
3046
- "componentPath": "./src/components/ui/Sheet.tsx",
3047
- "title": "UI Components/Sheet",
3048
- "tags": [
3049
- "dev",
3050
- "test",
3051
- "manifest",
3052
- "autodocs"
3053
- ],
3054
- "docs": {
3055
- "id": "ui-components-sheet--docs",
3056
- "title": "UI Components/Sheet",
3057
- "name": "Docs",
3058
- "importPath": "./src/components/ui/Sheet.stories.tsx",
3059
- "type": "docs",
3060
- "tags": [
3061
- "dev",
3062
- "test",
3063
- "manifest",
3064
- "autodocs"
3065
- ],
3066
- "storiesImports": []
3067
- }
3068
- },
3069
- {
3070
- "id": "ui-components-sidebar",
3071
- "name": "Sidebar",
3072
- "path": "./src/components/ui/Sidebar.stories.tsx",
3073
- "stories": [
3074
- {
3075
- "name": "Default",
3076
- "snippet": "const Default = () => (\n <SidebarProvider>\n <Sidebar>\n <SidebarHeader>\n <span className=\"px-2 text-lg font-semibold\">My App</span>\n </SidebarHeader>\n <SidebarContent>\n <SidebarGroup>\n <SidebarGroupLabel>Navigation</SidebarGroupLabel>\n <SidebarMenu>\n {menuItems.map((item) => (\n <SidebarMenuItem key={item.label}>\n <SidebarMenuButton>\n <item.icon />\n <span>{item.label}</span>\n </SidebarMenuButton>\n </SidebarMenuItem>\n ))}\n </SidebarMenu>\n </SidebarGroup>\n </SidebarContent>\n <SidebarFooter>\n <span className=\"px-2 text-xs text-muted-foreground\">v1.0.0</span>\n </SidebarFooter>\n </Sidebar>\n <main className=\"flex-1 p-4\">\n <SidebarTrigger />\n <p className=\"mt-4 text-sm text-muted-foreground\">Main content area</p>\n </main>\n </SidebarProvider>\n);",
3077
- "description": "Shows a complete sidebar with header, navigation group, footer, and a toggle trigger in the main area.",
3078
- "id": "ui-components-sidebar--default",
3079
- "exportName": "Default",
3080
- "type": "story",
3081
- "subtype": "story"
3082
- },
3083
- {
3084
- "name": "WithActiveItem",
3085
- "snippet": "const WithActiveItem = () => (\n <SidebarProvider>\n <Sidebar>\n <SidebarHeader>\n <span className=\"px-2 text-lg font-semibold\">My App</span>\n </SidebarHeader>\n <SidebarContent>\n <SidebarGroup>\n <SidebarGroupLabel>Navigation</SidebarGroupLabel>\n <SidebarMenu>\n {menuItems.map((item, index) => (\n <SidebarMenuItem key={item.label}>\n <SidebarMenuButton isActive={index === 0}>\n <item.icon />\n <span>{item.label}</span>\n </SidebarMenuButton>\n </SidebarMenuItem>\n ))}\n </SidebarMenu>\n </SidebarGroup>\n </SidebarContent>\n </Sidebar>\n <main className=\"flex-1 p-4\">\n <SidebarTrigger />\n <p className=\"mt-4 text-sm text-muted-foreground\">Main content area</p>\n </main>\n </SidebarProvider>\n);",
3086
- "description": "Shows the sidebar with the first menu item highlighted as the active page."
3087
- }
3088
- ],
3089
- "import": "import {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarProvider,\n SidebarTrigger,\n} from \"react-client\";",
3090
- "jsDocTags": {},
3091
- "description": "A responsive sidebar navigation panel that collapses on mobile into a Sheet overlay. Supports left/right placement, multiple visual variants (sidebar, floating, inset), and collapsible modes (offcanvas, icon, none).",
3092
- "reactDocgen": {
3093
- "description": "A responsive sidebar navigation panel that collapses on mobile into a Sheet overlay.\nSupports left/right placement, multiple visual variants (sidebar, floating, inset), and collapsible modes (offcanvas, icon, none).",
3094
- "methods": [],
3095
- "displayName": "Sidebar",
3096
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Sidebar.tsx",
3097
- "actualName": "Sidebar",
3098
- "exportName": "Sidebar",
3099
- "props": {
3100
- "side": {
3101
- "required": false,
3102
- "tsType": {
3103
- "name": "union",
3104
- "raw": "'left' | 'right'",
3105
- "elements": [
3106
- {
3107
- "name": "literal",
3108
- "value": "'left'"
3109
- },
3110
- {
3111
- "name": "literal",
3112
- "value": "'right'"
3113
- }
3114
- ]
3115
- },
3116
- "description": "",
3117
- "defaultValue": {
3118
- "value": "'left'",
3119
- "computed": false
3120
- }
3121
- },
3122
- "variant": {
3123
- "required": false,
3124
- "tsType": {
3125
- "name": "union",
3126
- "raw": "'sidebar' | 'floating' | 'inset'",
3127
- "elements": [
3128
- {
3129
- "name": "literal",
3130
- "value": "'sidebar'"
3131
- },
3132
- {
3133
- "name": "literal",
3134
- "value": "'floating'"
3135
- },
3136
- {
3137
- "name": "literal",
3138
- "value": "'inset'"
3139
- }
3140
- ]
3141
- },
3142
- "description": "",
3143
- "defaultValue": {
3144
- "value": "'sidebar'",
3145
- "computed": false
3146
- }
3147
- },
3148
- "collapsible": {
3149
- "required": false,
3150
- "tsType": {
3151
- "name": "union",
3152
- "raw": "'offcanvas' | 'icon' | 'none'",
3153
- "elements": [
3154
- {
3155
- "name": "literal",
3156
- "value": "'offcanvas'"
3157
- },
3158
- {
3159
- "name": "literal",
3160
- "value": "'icon'"
3161
- },
3162
- {
3163
- "name": "literal",
3164
- "value": "'none'"
3165
- }
3166
- ]
3167
- },
3168
- "description": "",
3169
- "defaultValue": {
3170
- "value": "'offcanvas'",
3171
- "computed": false
3172
- }
3173
- }
3174
- }
3175
- },
3176
- "componentPath": "./src/components/ui/Sidebar.tsx",
3177
- "title": "UI Components/Sidebar",
3178
- "tags": [
3179
- "dev",
3180
- "test",
3181
- "manifest",
3182
- "autodocs"
3183
- ],
3184
- "docs": {
3185
- "id": "ui-components-sidebar--docs",
3186
- "title": "UI Components/Sidebar",
3187
- "name": "Docs",
3188
- "importPath": "./src/components/ui/Sidebar.stories.tsx",
3189
- "type": "docs",
3190
- "tags": [
3191
- "dev",
3192
- "test",
3193
- "manifest",
3194
- "autodocs"
3195
- ],
3196
- "storiesImports": []
3197
- }
3198
- },
3199
- {
3200
- "id": "ui-components-skeleton",
3201
- "name": "Skeleton",
3202
- "path": "./src/components/ui/Skeleton.stories.tsx",
3203
- "stories": [
3204
- {
3205
- "name": "Default",
3206
- "snippet": "const Default = () => (\n <div className=\"flex items-center space-x-4\">\n <Skeleton className=\"h-12 w-12 rounded-full\" />\n <div className=\"space-y-2\">\n <Skeleton className=\"h-4 w-[250px]\" />\n <Skeleton className=\"h-4 w-[200px]\" />\n </div>\n </div>\n);",
3207
- "description": "Shows a skeleton mimicking a user profile layout with an avatar circle and two text lines.",
3208
- "id": "ui-components-skeleton--default",
3209
- "exportName": "Default",
3210
- "type": "story",
3211
- "subtype": "story"
3212
- },
3213
- {
3214
- "name": "CardSkeleton",
3215
- "snippet": "const CardSkeleton = () => (\n <div className=\"w-[300px] space-y-4 rounded-lg border p-4\">\n <Skeleton className=\"h-40 w-full rounded-md\" />\n <div className=\"space-y-2\">\n <Skeleton className=\"h-5 w-3/4\" />\n <Skeleton className=\"h-4 w-full\" />\n <Skeleton className=\"h-4 w-5/6\" />\n </div>\n <div className=\"flex items-center gap-2 pt-2\">\n <Skeleton className=\"h-8 w-8 rounded-full\" />\n <Skeleton className=\"h-4 w-24\" />\n </div>\n </div>\n);",
3216
- "description": "Shows a skeleton mimicking a full card layout with image, text, and avatar placeholders."
3217
- }
3218
- ],
3219
- "import": "import { Skeleton } from \"react-client\";",
3220
- "jsDocTags": {},
3221
- "description": "A placeholder element that animates with a pulse effect to indicate content is loading. Use to mirror the shape of upcoming content (e.g., text lines, avatars, cards) and reduce perceived load time.",
3222
- "reactDocgen": {
3223
- "description": "A placeholder element that animates with a pulse effect to indicate content is loading.\nUse to mirror the shape of upcoming content (e.g., text lines, avatars, cards) and reduce perceived load time.",
3224
- "methods": [],
3225
- "displayName": "Skeleton",
3226
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Skeleton.tsx",
3227
- "actualName": "Skeleton",
3228
- "exportName": "Skeleton"
3229
- },
3230
- "componentPath": "./src/components/ui/Skeleton.tsx",
3231
- "title": "UI Components/Skeleton",
3232
- "tags": [
3233
- "dev",
3234
- "test",
3235
- "manifest",
3236
- "autodocs"
3237
- ],
3238
- "docs": {
3239
- "id": "ui-components-skeleton--docs",
3240
- "title": "UI Components/Skeleton",
3241
- "name": "Docs",
3242
- "importPath": "./src/components/ui/Skeleton.stories.tsx",
3243
- "type": "docs",
3244
- "tags": [
3245
- "dev",
3246
- "test",
3247
- "manifest",
3248
- "autodocs"
3249
- ],
3250
- "storiesImports": []
3251
- }
3252
- },
3253
- {
3254
- "id": "ui-components-slider",
3255
- "name": "Slider",
3256
- "path": "./src/components/ui/Slider.stories.tsx",
3257
- "stories": [
3258
- {
3259
- "name": "Default",
3260
- "snippet": "const Default = () => <Slider defaultValue={[50]} max={100} step={1} className=\"w-[60%]\" />;",
3261
- "description": "Shows a single-thumb slider at 50% of a 0-100 range.",
3262
- "id": "ui-components-slider--default",
3263
- "exportName": "Default",
3264
- "type": "story",
3265
- "subtype": "story"
3266
- },
3267
- {
3268
- "name": "Range",
3269
- "snippet": "const Range = () => <Slider defaultValue={[25, 75]} max={100} step={1} className=\"w-[60%]\" />;",
3270
- "description": "Demonstrates a dual-thumb range slider for selecting a value range between 25 and 75.",
3271
- "id": "ui-components-slider--range",
3272
- "exportName": "Range",
3273
- "type": "story",
3274
- "subtype": "story"
3275
- },
3276
- {
3277
- "name": "WithSteps",
3278
- "snippet": "const WithSteps = () => <Slider defaultValue={[20]} max={100} step={10} className=\"w-[60%]\" />;",
3279
- "description": "Shows a slider with discrete step increments of 10."
3280
- }
3281
- ],
3282
- "import": "import { Slider } from \"react-client\";",
3283
- "jsDocTags": {},
3284
- "description": "A draggable range input. Supports single or multiple thumbs (range selection), keyboard navigation, and vertical orientation.",
3285
- "reactDocgen": {
3286
- "description": "A draggable range input. Supports single or multiple thumbs (range selection), keyboard navigation, and vertical orientation.",
3287
- "methods": [],
3288
- "displayName": "Slider",
3289
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Slider.tsx",
3290
- "actualName": "Slider",
3291
- "exportName": "Slider",
3292
- "props": {
3293
- "min": {
3294
- "defaultValue": {
3295
- "value": "0",
3296
- "computed": false
3297
- },
3298
- "required": false
3299
- },
3300
- "max": {
3301
- "defaultValue": {
3302
- "value": "100",
3303
- "computed": false
3304
- },
3305
- "required": false
3306
- }
3307
- }
3308
- },
3309
- "componentPath": "./src/components/ui/Slider.tsx",
3310
- "title": "UI Components/Slider",
3311
- "tags": [
3312
- "dev",
3313
- "test",
3314
- "manifest",
3315
- "autodocs"
3316
- ],
3317
- "docs": {
3318
- "id": "ui-components-slider--docs",
3319
- "title": "UI Components/Slider",
3320
- "name": "Docs",
3321
- "importPath": "./src/components/ui/Slider.stories.tsx",
3322
- "type": "docs",
3323
- "tags": [
3324
- "dev",
3325
- "test",
3326
- "manifest",
3327
- "autodocs"
3328
- ],
3329
- "storiesImports": []
3330
- }
3331
- },
3332
- {
3333
- "id": "ui-components-sonner",
3334
- "name": "Toaster",
3335
- "path": "./src/components/ui/Sonner.stories.tsx",
3336
- "stories": [
3337
- {
3338
- "name": "Default",
3339
- "snippet": "const Default = () => (\n <div>\n <Toaster />\n <div className=\"flex flex-wrap gap-2\">\n <Button variant=\"outline\" onClick={() => toast('Event has been created.')}>\n Show Toast\n </Button>\n <Button variant=\"outline\" onClick={() => toast.success('Successfully saved!')}>\n Success\n </Button>\n <Button variant=\"outline\" onClick={() => toast.error('Something went wrong.')}>\n Error\n </Button>\n <Button variant=\"outline\" onClick={() => toast.warning('Please check your input.')}>\n Warning\n </Button>\n <Button variant=\"outline\" onClick={() => toast.info('Here is some information.')}>\n Info\n </Button>\n </div>\n </div>\n);",
3340
- "description": "Demonstrates all toast variants (default, success, error, warning, info) triggered by buttons.",
3341
- "id": "ui-components-sonner--default",
3342
- "exportName": "Default",
3343
- "type": "story",
3344
- "subtype": "story"
3345
- }
3346
- ],
3347
- "import": "import { Button, Toaster } from \"react-client\";\nimport { ThemeProvider } from \"next-themes\";",
3348
- "jsDocTags": {},
3349
- "description": "A pre-configured Sonner toast container that integrates with the app's theme system. Provides styled icons for success, info, warning, error, and loading states. Place once at the app root and trigger toasts via the `toast()` function from sonner.",
3350
- "reactDocgen": {
3351
- "description": "A pre-configured Sonner toast container that integrates with the app's theme system.\nProvides styled icons for success, info, warning, error, and loading states. Place once at the app root and trigger toasts via the `toast()` function from sonner.",
3352
- "methods": [],
3353
- "displayName": "Toaster",
3354
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Sonner.tsx",
3355
- "actualName": "Toaster",
3356
- "exportName": "Toaster"
3357
- },
3358
- "componentPath": "./src/components/ui/Sonner.tsx",
3359
- "title": "UI Components/Sonner",
3360
- "tags": [
3361
- "dev",
3362
- "test",
3363
- "manifest",
3364
- "autodocs"
3365
- ],
3366
- "docs": {
3367
- "id": "ui-components-sonner--docs",
3368
- "title": "UI Components/Sonner",
3369
- "name": "Docs",
3370
- "importPath": "./src/components/ui/Sonner.stories.tsx",
3371
- "type": "docs",
3372
- "tags": [
3373
- "dev",
3374
- "test",
3375
- "manifest",
3376
- "autodocs"
3377
- ],
3378
- "storiesImports": []
3379
- }
3380
- },
3381
- {
3382
- "id": "ui-components-spinner",
3383
- "name": "Spinner",
3384
- "path": "./src/components/ui/Spinner.stories.tsx",
3385
- "stories": [
3386
- {
3387
- "name": "Default",
3388
- "snippet": "const Default = () => <Spinner />;",
3389
- "description": "Shows the spinner at its default size (16px).",
3390
- "id": "ui-components-spinner--default",
3391
- "exportName": "Default",
3392
- "type": "story",
3393
- "subtype": "story"
3394
- },
3395
- {
3396
- "name": "Small",
3397
- "snippet": "const Small = () => <Spinner className=\"size-3\" />;",
3398
- "description": "Shows a smaller 12px spinner for inline or compact contexts.",
3399
- "id": "ui-components-spinner--small",
3400
- "exportName": "Small",
3401
- "type": "story",
3402
- "subtype": "story"
3403
- },
3404
- {
3405
- "name": "Large",
3406
- "snippet": "const Large = () => <Spinner className=\"size-8\" />;",
3407
- "description": "Shows a larger 32px spinner for full-page or section-level loading states.",
3408
- "id": "ui-components-spinner--large",
3409
- "exportName": "Large",
3410
- "type": "story",
3411
- "subtype": "story"
3412
- }
3413
- ],
3414
- "import": "import { Spinner } from \"react-client\";",
3415
- "jsDocTags": {},
3416
- "description": "An animated spinning loader icon that indicates an in-progress operation. Includes role=\"status\" and an aria-label for accessibility. Resize via className (e.g., \"size-8\").",
3417
- "reactDocgen": {
3418
- "description": "An animated spinning loader icon that indicates an in-progress operation.\nIncludes role=\"status\" and an aria-label for accessibility. Resize via className (e.g., \"size-8\").",
3419
- "methods": [],
3420
- "displayName": "Spinner",
3421
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Spinner.tsx",
3422
- "actualName": "Spinner",
3423
- "exportName": "Spinner"
3424
- },
3425
- "componentPath": "./src/components/ui/Spinner.tsx",
3426
- "title": "UI Components/Spinner",
3427
- "tags": [
3428
- "dev",
3429
- "test",
3430
- "manifest",
3431
- "autodocs"
3432
- ],
3433
- "docs": {
3434
- "id": "ui-components-spinner--docs",
3435
- "title": "UI Components/Spinner",
3436
- "name": "Docs",
3437
- "importPath": "./src/components/ui/Spinner.stories.tsx",
3438
- "type": "docs",
3439
- "tags": [
3440
- "dev",
3441
- "test",
3442
- "manifest",
3443
- "autodocs"
3444
- ],
3445
- "storiesImports": []
3446
- }
3447
- },
3448
- {
3449
- "id": "ui-components-switch",
3450
- "name": "Switch",
3451
- "path": "./src/components/ui/Switch.stories.tsx",
3452
- "stories": [
3453
- {
3454
- "name": "Default",
3455
- "snippet": "const Default = () => <Switch />;",
3456
- "description": "Shows the switch in its default unchecked state.",
3457
- "id": "ui-components-switch--default",
3458
- "exportName": "Default",
3459
- "type": "story",
3460
- "subtype": "story"
3461
- },
3462
- {
3463
- "name": "Checked",
3464
- "snippet": "const Checked = () => <Switch defaultChecked />;",
3465
- "description": "Shows the switch in its checked (on) state.",
3466
- "id": "ui-components-switch--checked",
3467
- "exportName": "Checked",
3468
- "type": "story",
3469
- "subtype": "story"
3470
- },
3471
- {
3472
- "name": "Disabled",
3473
- "snippet": "const Disabled = () => <Switch disabled />;",
3474
- "description": "Shows a disabled switch that cannot be interacted with.",
3475
- "id": "ui-components-switch--disabled",
3476
- "exportName": "Disabled",
3477
- "type": "story",
3478
- "subtype": "story"
3479
- },
3480
- {
3481
- "name": "WithLabel",
3482
- "snippet": "const WithLabel = () => (\n <div className=\"flex items-center gap-2\">\n <Switch id=\"airplane-mode\" />\n <label htmlFor=\"airplane-mode\" className=\"text-sm\">\n Airplane Mode\n </label>\n </div>\n);",
3483
- "description": "Shows the switch paired with an associated label element for accessible labeling."
3484
- }
3485
- ],
3486
- "import": "import { Switch } from \"react-client\";",
3487
- "jsDocTags": {},
3488
- "description": "A sliding on/off toggle control with WAI-ARIA switch role and keyboard support.",
3489
- "reactDocgen": {
3490
- "description": "A sliding on/off toggle control with WAI-ARIA switch role and keyboard support.",
3491
- "methods": [],
3492
- "displayName": "Switch",
3493
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Switch.tsx",
3494
- "actualName": "Switch",
3495
- "exportName": "Switch",
3496
- "props": {
3497
- "size": {
3498
- "required": false,
3499
- "tsType": {
3500
- "name": "union",
3501
- "raw": "'sm' | 'default'",
3502
- "elements": [
3503
- {
3504
- "name": "literal",
3505
- "value": "'sm'"
3506
- },
3507
- {
3508
- "name": "literal",
3509
- "value": "'default'"
3510
- }
3511
- ]
3512
- },
3513
- "description": "",
3514
- "defaultValue": {
3515
- "value": "'default'",
3516
- "computed": false
3517
- }
3518
- }
3519
- }
3520
- },
3521
- "componentPath": "./src/components/ui/Switch.tsx",
3522
- "title": "UI Components/Switch",
3523
- "tags": [
3524
- "dev",
3525
- "test",
3526
- "manifest",
3527
- "autodocs"
3528
- ],
3529
- "docs": {
3530
- "id": "ui-components-switch--docs",
3531
- "title": "UI Components/Switch",
3532
- "name": "Docs",
3533
- "importPath": "./src/components/ui/Switch.stories.tsx",
3534
- "type": "docs",
3535
- "tags": [
3536
- "dev",
3537
- "test",
3538
- "manifest",
3539
- "autodocs"
3540
- ],
3541
- "storiesImports": []
3542
- }
3543
- },
3544
- {
3545
- "id": "ui-components-table",
3546
- "name": "Table",
3547
- "path": "./src/components/ui/Table.stories.tsx",
3548
- "stories": [
3549
- {
3550
- "name": "Default",
3551
- "snippet": "const Default = () => (\n <Table>\n <TableCaption>A list of recent invoices.</TableCaption>\n <TableHeader>\n <TableRow>\n <TableHead>Invoice</TableHead>\n <TableHead>Status</TableHead>\n <TableHead>Method</TableHead>\n <TableHead className=\"text-right\">Amount</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {invoices.map((invoice) => (\n <TableRow key={invoice.invoice}>\n <TableCell className=\"font-medium\">{invoice.invoice}</TableCell>\n <TableCell>{invoice.status}</TableCell>\n <TableCell>{invoice.method}</TableCell>\n <TableCell className=\"text-right\">{invoice.amount}</TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n);",
3552
- "description": "Shows a full table with header, body, and caption using invoice data.",
3553
- "id": "ui-components-table--default",
3554
- "exportName": "Default",
3555
- "type": "story",
3556
- "subtype": "story"
3557
- },
3558
- {
3559
- "name": "Minimal",
3560
- "snippet": "const Minimal = () => (\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead>Name</TableHead>\n <TableHead>Role</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n <TableRow>\n <TableCell>Alice</TableCell>\n <TableCell>Engineer</TableCell>\n </TableRow>\n <TableRow>\n <TableCell>Bob</TableCell>\n <TableCell>Designer</TableCell>\n </TableRow>\n </TableBody>\n </Table>\n);",
3561
- "description": "Shows a minimal two-column table without caption or footer.",
3562
- "id": "ui-components-table--minimal",
3563
- "exportName": "Minimal",
3564
- "type": "story",
3565
- "subtype": "story"
3566
- }
3567
- ],
3568
- "import": "import {\n Table,\n TableBody,\n TableCaption,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"react-client\";",
3569
- "jsDocTags": {},
3570
- "description": "A responsive data table with horizontal scroll overflow. Compose with TableHeader, TableBody, TableFooter, TableRow, TableHead, TableCell, and TableCaption subcomponents.",
3571
- "reactDocgen": {
3572
- "description": "A responsive data table with horizontal scroll overflow.\nCompose with TableHeader, TableBody, TableFooter, TableRow, TableHead, TableCell, and TableCaption subcomponents.",
3573
- "methods": [],
3574
- "displayName": "Table",
3575
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Table.tsx",
3576
- "actualName": "Table",
3577
- "exportName": "Table"
3578
- },
3579
- "componentPath": "./src/components/ui/Table.tsx",
3580
- "title": "UI Components/Table",
3581
- "tags": [
3582
- "dev",
3583
- "test",
3584
- "manifest",
3585
- "autodocs"
3586
- ],
3587
- "docs": {
3588
- "id": "ui-components-table--docs",
3589
- "title": "UI Components/Table",
3590
- "name": "Docs",
3591
- "importPath": "./src/components/ui/Table.stories.tsx",
3592
- "type": "docs",
3593
- "tags": [
3594
- "dev",
3595
- "test",
3596
- "manifest",
3597
- "autodocs"
3598
- ],
3599
- "storiesImports": []
3600
- }
3601
- },
3602
- {
3603
- "id": "ui-components-tabs",
3604
- "name": "Tabs",
3605
- "path": "./src/components/ui/Tabs.stories.tsx",
3606
- "stories": [
3607
- {
3608
- "name": "Default",
3609
- "snippet": "const Default = () => (\n <Tabs defaultValue=\"account\" className=\"w-[400px]\">\n <TabsList>\n <TabsTrigger value=\"account\">Account</TabsTrigger>\n <TabsTrigger value=\"password\">Password</TabsTrigger>\n <TabsTrigger value=\"settings\">Settings</TabsTrigger>\n </TabsList>\n <TabsContent value=\"account\">\n <p className=\"text-sm text-muted-foreground p-4\">Make changes to your account here.</p>\n </TabsContent>\n <TabsContent value=\"password\">\n <p className=\"text-sm text-muted-foreground p-4\">Change your password here.</p>\n </TabsContent>\n <TabsContent value=\"settings\">\n <p className=\"text-sm text-muted-foreground p-4\">Adjust your settings here.</p>\n </TabsContent>\n </Tabs>\n);",
3610
- "description": "Shows the default pill-style tabs with three panels.",
3611
- "id": "ui-components-tabs--default",
3612
- "exportName": "Default",
3613
- "type": "story",
3614
- "subtype": "story"
3615
- },
3616
- {
3617
- "name": "LineVariant",
3618
- "snippet": "const LineVariant = () => (\n <Tabs defaultValue=\"overview\" className=\"w-[400px]\">\n <TabsList variant=\"line\">\n <TabsTrigger value=\"overview\">Overview</TabsTrigger>\n <TabsTrigger value=\"analytics\">Analytics</TabsTrigger>\n <TabsTrigger value=\"reports\">Reports</TabsTrigger>\n </TabsList>\n <TabsContent value=\"overview\">\n <p className=\"text-sm text-muted-foreground p-4\">Overview content goes here.</p>\n </TabsContent>\n <TabsContent value=\"analytics\">\n <p className=\"text-sm text-muted-foreground p-4\">Analytics content goes here.</p>\n </TabsContent>\n <TabsContent value=\"reports\">\n <p className=\"text-sm text-muted-foreground p-4\">Reports content goes here.</p>\n </TabsContent>\n </Tabs>\n);",
3619
- "description": "Shows the line variant where the active tab is indicated by an underline rather than a background."
3620
- }
3621
- ],
3622
- "import": "import { Tabs, TabsContent, TabsList, TabsTrigger } from \"react-client\";",
3623
- "jsDocTags": {},
3624
- "description": "Layered content panels activated by tab triggers. Supports horizontal and vertical orientations with keyboard navigation.",
3625
- "reactDocgen": {
3626
- "description": "Layered content panels activated by tab triggers. Supports horizontal and vertical orientations with keyboard navigation.",
3627
- "methods": [],
3628
- "displayName": "Tabs",
3629
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Tabs.tsx",
3630
- "actualName": "Tabs",
3631
- "exportName": "Tabs",
3632
- "props": {
3633
- "orientation": {
3634
- "defaultValue": {
3635
- "value": "'horizontal'",
3636
- "computed": false
3637
- },
3638
- "required": false
3639
- }
3640
- }
3641
- },
3642
- "componentPath": "./src/components/ui/Tabs.tsx",
3643
- "title": "UI Components/Tabs",
3644
- "tags": [
3645
- "dev",
3646
- "test",
3647
- "manifest",
3648
- "autodocs"
3649
- ],
3650
- "docs": {
3651
- "id": "ui-components-tabs--docs",
3652
- "title": "UI Components/Tabs",
3653
- "name": "Docs",
3654
- "importPath": "./src/components/ui/Tabs.stories.tsx",
3655
- "type": "docs",
3656
- "tags": [
3657
- "dev",
3658
- "test",
3659
- "manifest",
3660
- "autodocs"
3661
- ],
3662
- "storiesImports": []
3663
- }
3664
- },
3665
- {
3666
- "id": "ui-components-textarea",
3667
- "name": "Textarea",
3668
- "path": "./src/components/ui/Textarea.stories.tsx",
3669
- "stories": [
3670
- {
3671
- "name": "Default",
3672
- "snippet": "const Default = () => <Textarea />;",
3673
- "description": "Shows the textarea in its default empty state.",
3674
- "id": "ui-components-textarea--default",
3675
- "exportName": "Default",
3676
- "type": "story",
3677
- "subtype": "story"
3678
- },
3679
- {
3680
- "name": "WithPlaceholder",
3681
- "snippet": "const WithPlaceholder = () => <Textarea placeholder=\"Type your message here...\" />;",
3682
- "description": "Shows the textarea with placeholder text."
3683
- },
3684
- {
3685
- "name": "Disabled",
3686
- "snippet": "const Disabled = () => <Textarea placeholder=\"This textarea is disabled\" disabled />;",
3687
- "description": "Shows a disabled textarea that cannot receive input.",
3688
- "id": "ui-components-textarea--disabled",
3689
- "exportName": "Disabled",
3690
- "type": "story",
3691
- "subtype": "story"
3692
- }
3693
- ],
3694
- "import": "import { Textarea } from \"react-client\";",
3695
- "jsDocTags": {},
3696
- "description": "A multi-line text input that auto-sizes to its content via field-sizing-content. Supports aria-invalid styling for form validation errors.",
3697
- "reactDocgen": {
3698
- "description": "A multi-line text input that auto-sizes to its content via field-sizing-content.\nSupports aria-invalid styling for form validation errors.",
3699
- "methods": [],
3700
- "displayName": "Textarea",
3701
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Textarea.tsx",
3702
- "actualName": "Textarea",
3703
- "exportName": "Textarea"
3704
- },
3705
- "componentPath": "./src/components/ui/Textarea.tsx",
3706
- "title": "UI Components/Textarea",
3707
- "tags": [
3708
- "dev",
3709
- "test",
3710
- "manifest",
3711
- "autodocs"
3712
- ],
3713
- "docs": {
3714
- "id": "ui-components-textarea--docs",
3715
- "title": "UI Components/Textarea",
3716
- "name": "Docs",
3717
- "importPath": "./src/components/ui/Textarea.stories.tsx",
3718
- "type": "docs",
3719
- "tags": [
3720
- "dev",
3721
- "test",
3722
- "manifest",
3723
- "autodocs"
3724
- ],
3725
- "storiesImports": []
3726
- }
3727
- },
3728
- {
3729
- "id": "ui-components-toast",
3730
- "name": "Toast",
3731
- "path": "./src/components/ui/Toast.stories.tsx",
3732
- "stories": [
3733
- {
3734
- "name": "Default",
3735
- "snippet": "const Default = () => <ToastDemo />;",
3736
- "description": "Demonstrates triggering a basic toast notification with a title and description.",
3737
- "id": "ui-components-toast--default",
3738
- "exportName": "Default",
3739
- "type": "story",
3740
- "subtype": "story"
3741
- },
3742
- {
3743
- "name": "Destructive",
3744
- "snippet": "const Destructive = () => <ToastDestructiveDemo />;",
3745
- "description": "Shows a destructive-variant toast for error or warning scenarios.",
3746
- "id": "ui-components-toast--destructive",
3747
- "exportName": "Destructive",
3748
- "type": "story",
3749
- "subtype": "story"
3750
- },
3751
- {
3752
- "name": "WithAction",
3753
- "snippet": "const WithAction = () => <ToastWithActionDemo />;",
3754
- "description": "Shows a toast with an action button (e.g., \"Undo\") alongside the message."
3755
- },
3756
- {
3757
- "name": "Inline",
3758
- "snippet": "const Inline = () => (\n <ToastProvider>\n <Toast open>\n <div className=\"grid gap-1\">\n <ToastTitle>Toast Title</ToastTitle>\n <ToastDescription>This is a toast description.</ToastDescription>\n </div>\n <ToastClose />\n </Toast>\n <ToastViewport />\n </ToastProvider>\n);",
3759
- "description": "Shows a toast rendered inline (always open) using the primitive subcomponents directly.",
3760
- "id": "ui-components-toast--inline",
3761
- "exportName": "Inline",
3762
- "type": "story",
3763
- "subtype": "story"
3764
- }
3765
- ],
3766
- "import": "import {\n Button,\n Toast,\n ToastAction,\n ToastClose,\n ToastDescription,\n Toaster,\n ToastProvider,\n ToastTitle,\n ToastViewport,\n} from \"react-client\";",
3767
- "jsDocTags": {},
3768
- "description": "An individual toast notification with default or destructive variant styling.",
3769
- "reactDocgen": {
3770
- "description": "An individual toast notification with default or destructive variant styling.",
3771
- "methods": [],
3772
- "displayName": "Toast",
3773
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Toast.tsx",
3774
- "actualName": "Toast",
3775
- "exportName": "Toast"
3776
- },
3777
- "componentPath": "./src/components/ui/Toast.tsx",
3778
- "title": "UI Components/Toast",
3779
- "tags": [
3780
- "dev",
3781
- "test",
3782
- "manifest",
3783
- "autodocs"
3784
- ],
3785
- "docs": {
3786
- "id": "ui-components-toast--docs",
3787
- "title": "UI Components/Toast",
3788
- "name": "Docs",
3789
- "importPath": "./src/components/ui/Toast.stories.tsx",
3790
- "type": "docs",
3791
- "tags": [
3792
- "dev",
3793
- "test",
3794
- "manifest",
3795
- "autodocs"
3796
- ],
3797
- "storiesImports": []
3798
- }
3799
- },
3800
- {
3801
- "id": "ui-components-toggle",
3802
- "name": "Toggle",
3803
- "path": "./src/components/ui/Toggle.stories.tsx",
3804
- "stories": [
3805
- {
3806
- "name": "Default",
3807
- "snippet": "const Default = () => <Toggle aria-label=\"Toggle bold\"><BoldIcon /></Toggle>;",
3808
- "description": "Shows a toggle button with a bold icon in the default ghost variant.",
3809
- "id": "ui-components-toggle--default",
3810
- "exportName": "Default",
3811
- "type": "story",
3812
- "subtype": "story"
3813
- },
3814
- {
3815
- "name": "Outline",
3816
- "snippet": "const Outline = () => <Toggle variant=\"outline\" aria-label=\"Toggle bold\"><BoldIcon /></Toggle>;",
3817
- "description": "Shows the outline variant with a visible border.",
3818
- "id": "ui-components-toggle--outline",
3819
- "exportName": "Outline",
3820
- "type": "story",
3821
- "subtype": "story"
3822
- },
3823
- {
3824
- "name": "WithText",
3825
- "snippet": "const WithText = () => <Toggle aria-label=\"Toggle italic\">Italic</Toggle>;",
3826
- "description": "Shows a toggle with a text label instead of an icon."
3827
- },
3828
- {
3829
- "name": "Pressed",
3830
- "snippet": "const Pressed = () => <Toggle defaultPressed aria-label=\"Toggle bold\"><BoldIcon /></Toggle>;",
3831
- "description": "Shows a toggle in its initially pressed (on) state.",
3832
- "id": "ui-components-toggle--pressed",
3833
- "exportName": "Pressed",
3834
- "type": "story",
3835
- "subtype": "story"
3836
- }
3837
- ],
3838
- "import": "import { BoldIcon } from \"lucide-react\";\nimport { Toggle } from \"react-client\";",
3839
- "jsDocTags": {},
3840
- "description": "A two-state button for toolbar controls. Has \"default\" (ghost) and \"outline\" variants in sm/default/lg sizes.",
3841
- "reactDocgen": {
3842
- "description": "A two-state button for toolbar controls. Has \"default\" (ghost) and \"outline\" variants in sm/default/lg sizes.",
3843
- "methods": [],
3844
- "displayName": "Toggle",
3845
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Toggle.tsx",
3846
- "actualName": "Toggle",
3847
- "exportName": "Toggle"
3848
- },
3849
- "componentPath": "./src/components/ui/Toggle.tsx",
3850
- "title": "UI Components/Toggle",
3851
- "tags": [
3852
- "dev",
3853
- "test",
3854
- "manifest",
3855
- "autodocs"
3856
- ],
3857
- "docs": {
3858
- "id": "ui-components-toggle--docs",
3859
- "title": "UI Components/Toggle",
3860
- "name": "Docs",
3861
- "importPath": "./src/components/ui/Toggle.stories.tsx",
3862
- "type": "docs",
3863
- "tags": [
3864
- "dev",
3865
- "test",
3866
- "manifest",
3867
- "autodocs"
3868
- ],
3869
- "storiesImports": []
3870
- }
3871
- },
3872
- {
3873
- "id": "ui-components-togglegroup",
3874
- "name": "ToggleGroup",
3875
- "path": "./src/components/ui/ToggleGroup.stories.tsx",
3876
- "stories": [
3877
- {
3878
- "name": "Single",
3879
- "snippet": "const Single = () => (\n <ToggleGroup type=\"single\">\n <ToggleGroupItem value=\"bold\" aria-label=\"Toggle bold\">\n <BoldIcon />\n </ToggleGroupItem>\n <ToggleGroupItem value=\"italic\" aria-label=\"Toggle italic\">\n <ItalicIcon />\n </ToggleGroupItem>\n <ToggleGroupItem value=\"underline\" aria-label=\"Toggle underline\">\n <UnderlineIcon />\n </ToggleGroupItem>\n </ToggleGroup>\n);",
3880
- "description": "Shows a single-selection toggle group where only one item can be active at a time.",
3881
- "id": "ui-components-togglegroup--single",
3882
- "exportName": "Single",
3883
- "type": "story",
3884
- "subtype": "story"
3885
- },
3886
- {
3887
- "name": "Multiple",
3888
- "snippet": "const Multiple = () => (\n <ToggleGroup type=\"multiple\" defaultValue={['bold', 'italic']}>\n <ToggleGroupItem value=\"bold\" aria-label=\"Toggle bold\">\n <BoldIcon />\n </ToggleGroupItem>\n <ToggleGroupItem value=\"italic\" aria-label=\"Toggle italic\">\n <ItalicIcon />\n </ToggleGroupItem>\n <ToggleGroupItem value=\"underline\" aria-label=\"Toggle underline\">\n <UnderlineIcon />\n </ToggleGroupItem>\n </ToggleGroup>\n);",
3889
- "description": "Shows a multi-selection toggle group with bold and italic pre-selected.",
3890
- "id": "ui-components-togglegroup--multiple",
3891
- "exportName": "Multiple",
3892
- "type": "story",
3893
- "subtype": "story"
3894
- },
3895
- {
3896
- "name": "Outline",
3897
- "snippet": "const Outline = () => (\n <ToggleGroup type=\"single\" variant=\"outline\">\n <ToggleGroupItem value=\"bold\" aria-label=\"Toggle bold\">\n <BoldIcon />\n </ToggleGroupItem>\n <ToggleGroupItem value=\"italic\" aria-label=\"Toggle italic\">\n <ItalicIcon />\n </ToggleGroupItem>\n <ToggleGroupItem value=\"underline\" aria-label=\"Toggle underline\">\n <UnderlineIcon />\n </ToggleGroupItem>\n </ToggleGroup>\n);",
3898
- "description": "Shows a toggle group using the outline variant with visible borders.",
3899
- "id": "ui-components-togglegroup--outline",
3900
- "exportName": "Outline",
3901
- "type": "story",
3902
- "subtype": "story"
3903
- }
3904
- ],
3905
- "import": "import { BoldIcon, ItalicIcon, UnderlineIcon } from \"lucide-react\";\nimport { ToggleGroup, ToggleGroupItem } from \"react-client\";",
3906
- "jsDocTags": {},
3907
- "description": "A group of toggles where one (`type=\"single\"`) or multiple (`type=\"multiple\"`) can be active.",
3908
- "reactDocgen": {
3909
- "description": "A group of toggles where one (`type=\"single\"`) or multiple (`type=\"multiple\"`) can be active.",
3910
- "methods": [],
3911
- "displayName": "ToggleGroup",
3912
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/ToggleGroup.tsx",
3913
- "actualName": "ToggleGroup",
3914
- "exportName": "ToggleGroup",
3915
- "props": {
3916
- "spacing": {
3917
- "required": false,
3918
- "tsType": {
3919
- "name": "number"
3920
- },
3921
- "description": "",
3922
- "defaultValue": {
3923
- "value": "0",
3924
- "computed": false
3925
- }
3926
- }
3927
- }
3928
- },
3929
- "componentPath": "./src/components/ui/ToggleGroup.tsx",
3930
- "title": "UI Components/ToggleGroup",
3931
- "tags": [
3932
- "dev",
3933
- "test",
3934
- "manifest",
3935
- "autodocs"
3936
- ],
3937
- "docs": {
3938
- "id": "ui-components-togglegroup--docs",
3939
- "title": "UI Components/ToggleGroup",
3940
- "name": "Docs",
3941
- "importPath": "./src/components/ui/ToggleGroup.stories.tsx",
3942
- "type": "docs",
3943
- "tags": [
3944
- "dev",
3945
- "test",
3946
- "manifest",
3947
- "autodocs"
3948
- ],
3949
- "storiesImports": []
3950
- }
3951
- },
3952
- {
3953
- "id": "ui-components-tooltip",
3954
- "name": "Tooltip",
3955
- "path": "./src/components/ui/Tooltip.stories.tsx",
3956
- "stories": [
3957
- {
3958
- "name": "Default",
3959
- "snippet": "const Default = () => (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"outline\">Hover me</Button>\n </TooltipTrigger>\n <TooltipContent>\n <p>This is a tooltip</p>\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n);",
3960
- "description": "Shows a basic tooltip appearing on hover over a button.",
3961
- "id": "ui-components-tooltip--default",
3962
- "exportName": "Default",
3963
- "type": "story",
3964
- "subtype": "story"
3965
- },
3966
- {
3967
- "name": "WithSideOffset",
3968
- "snippet": "const WithSideOffset = () => (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"outline\">With offset</Button>\n </TooltipTrigger>\n <TooltipContent sideOffset={8}>\n <p>Tooltip with side offset</p>\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n);",
3969
- "description": "Shows a tooltip with additional spacing between the trigger and content via sideOffset."
3970
- }
3971
- ],
3972
- "import": "import { Button, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from \"react-client\";",
3973
- "jsDocTags": {},
3974
- "description": "The root component that manages open/close state for a single tooltip.",
3975
- "reactDocgen": {
3976
- "description": "The root component that manages open/close state for a single tooltip.",
3977
- "methods": [],
3978
- "displayName": "Tooltip",
3979
- "definedInFile": "/Users/sam/code/auto/1/auto-engineer-1/examples/typical/client/src/components/ui/Tooltip.tsx",
3980
- "actualName": "Tooltip",
3981
- "exportName": "Tooltip"
3982
- },
3983
- "componentPath": "./src/components/ui/Tooltip.tsx",
3984
- "title": "UI Components/Tooltip",
3985
- "tags": [
3986
- "dev",
3987
- "test",
3988
- "manifest",
3989
- "autodocs"
3990
- ],
3991
- "docs": {
3992
- "id": "ui-components-tooltip--docs",
3993
- "title": "UI Components/Tooltip",
3994
- "name": "Docs",
3995
- "importPath": "./src/components/ui/Tooltip.stories.tsx",
3996
- "type": "docs",
3997
- "tags": [
3998
- "dev",
3999
- "test",
4000
- "manifest",
4001
- "autodocs"
4002
- ],
4003
- "storiesImports": []
4004
- }
4005
- }
4006
- ]