@gv-tech/design-system 1.0.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agent/skills/dogfood-components/SKILL.md +34 -0
- package/.agent/skills/maintain-component/SKILL.md +42 -0
- package/.prettierignore +2 -0
- package/CHANGELOG.md +24 -0
- package/dist/App.d.ts.map +1 -1
- package/dist/components/docs/Footer.d.ts.map +1 -1
- package/dist/components/docs/PropsTable.d.ts +13 -0
- package/dist/components/docs/PropsTable.d.ts.map +1 -0
- package/dist/components/docs/Sidebar.d.ts.map +1 -1
- package/dist/components/docs/index.d.ts +1 -0
- package/dist/components/docs/index.d.ts.map +1 -1
- package/dist/components/ui/accordion.test.d.ts +2 -0
- package/dist/components/ui/accordion.test.d.ts.map +1 -0
- package/dist/components/ui/alert-dialog.test.d.ts +2 -0
- package/dist/components/ui/alert-dialog.test.d.ts.map +1 -0
- package/dist/components/ui/alert.test.d.ts +2 -0
- package/dist/components/ui/alert.test.d.ts.map +1 -0
- package/dist/components/ui/aspect-ratio.test.d.ts +2 -0
- package/dist/components/ui/aspect-ratio.test.d.ts.map +1 -0
- package/dist/components/ui/avatar.test.d.ts +2 -0
- package/dist/components/ui/avatar.test.d.ts.map +1 -0
- package/dist/components/ui/badge.test.d.ts +2 -0
- package/dist/components/ui/badge.test.d.ts.map +1 -0
- package/dist/components/ui/breadcrumb.test.d.ts +2 -0
- package/dist/components/ui/breadcrumb.test.d.ts.map +1 -0
- package/dist/components/ui/button.test.d.ts +2 -0
- package/dist/components/ui/button.test.d.ts.map +1 -0
- package/dist/components/ui/calendar.d.ts.map +1 -1
- package/dist/components/ui/calendar.test.d.ts +2 -0
- package/dist/components/ui/calendar.test.d.ts.map +1 -0
- package/dist/components/ui/card.test.d.ts +2 -0
- package/dist/components/ui/card.test.d.ts.map +1 -0
- package/dist/components/ui/carousel.test.d.ts +2 -0
- package/dist/components/ui/carousel.test.d.ts.map +1 -0
- package/dist/components/ui/chart.test.d.ts +2 -0
- package/dist/components/ui/chart.test.d.ts.map +1 -0
- package/dist/components/ui/checkbox.test.d.ts +2 -0
- package/dist/components/ui/checkbox.test.d.ts.map +1 -0
- package/dist/components/ui/collapsible.test.d.ts +2 -0
- package/dist/components/ui/collapsible.test.d.ts.map +1 -0
- package/dist/components/ui/command.test.d.ts +2 -0
- package/dist/components/ui/command.test.d.ts.map +1 -0
- package/dist/components/ui/context-menu.test.d.ts +2 -0
- package/dist/components/ui/context-menu.test.d.ts.map +1 -0
- package/dist/components/ui/dialog.test.d.ts +2 -0
- package/dist/components/ui/dialog.test.d.ts.map +1 -0
- package/dist/components/ui/drawer.test.d.ts +2 -0
- package/dist/components/ui/drawer.test.d.ts.map +1 -0
- package/dist/components/ui/dropdown-menu.test.d.ts +2 -0
- package/dist/components/ui/dropdown-menu.test.d.ts.map +1 -0
- package/dist/components/ui/form.test.d.ts +2 -0
- package/dist/components/ui/form.test.d.ts.map +1 -0
- package/dist/components/ui/hover-card.test.d.ts +2 -0
- package/dist/components/ui/hover-card.test.d.ts.map +1 -0
- package/dist/components/ui/input.test.d.ts +2 -0
- package/dist/components/ui/input.test.d.ts.map +1 -0
- package/dist/components/ui/label.test.d.ts +2 -0
- package/dist/components/ui/label.test.d.ts.map +1 -0
- package/dist/components/ui/menubar.test.d.ts +2 -0
- package/dist/components/ui/menubar.test.d.ts.map +1 -0
- package/dist/components/ui/navigation-menu.test.d.ts +2 -0
- package/dist/components/ui/navigation-menu.test.d.ts.map +1 -0
- package/dist/components/ui/pagination.test.d.ts +2 -0
- package/dist/components/ui/pagination.test.d.ts.map +1 -0
- package/dist/components/ui/popover.test.d.ts +2 -0
- package/dist/components/ui/popover.test.d.ts.map +1 -0
- package/dist/components/ui/progress.d.ts.map +1 -1
- package/dist/components/ui/progress.test.d.ts +2 -0
- package/dist/components/ui/progress.test.d.ts.map +1 -0
- package/dist/components/ui/radio-group.test.d.ts +2 -0
- package/dist/components/ui/radio-group.test.d.ts.map +1 -0
- package/dist/components/ui/resizable.test.d.ts +2 -0
- package/dist/components/ui/resizable.test.d.ts.map +1 -0
- package/dist/components/ui/scroll-area.test.d.ts +2 -0
- package/dist/components/ui/scroll-area.test.d.ts.map +1 -0
- package/dist/components/ui/select.test.d.ts +2 -0
- package/dist/components/ui/select.test.d.ts.map +1 -0
- package/dist/components/ui/separator.test.d.ts +2 -0
- package/dist/components/ui/separator.test.d.ts.map +1 -0
- package/dist/components/ui/sheet.test.d.ts +2 -0
- package/dist/components/ui/sheet.test.d.ts.map +1 -0
- package/dist/components/ui/skeleton.test.d.ts +2 -0
- package/dist/components/ui/skeleton.test.d.ts.map +1 -0
- package/dist/components/ui/slider.test.d.ts +2 -0
- package/dist/components/ui/slider.test.d.ts.map +1 -0
- package/dist/components/ui/sonner.test.d.ts +2 -0
- package/dist/components/ui/sonner.test.d.ts.map +1 -0
- package/dist/components/ui/switch.test.d.ts +2 -0
- package/dist/components/ui/switch.test.d.ts.map +1 -0
- package/dist/components/ui/table.test.d.ts +2 -0
- package/dist/components/ui/table.test.d.ts.map +1 -0
- package/dist/components/ui/tabs.test.d.ts +2 -0
- package/dist/components/ui/tabs.test.d.ts.map +1 -0
- package/dist/components/ui/textarea.test.d.ts +2 -0
- package/dist/components/ui/textarea.test.d.ts.map +1 -0
- package/dist/components/ui/theme-toggle.d.ts +17 -0
- package/dist/components/ui/theme-toggle.d.ts.map +1 -0
- package/dist/components/ui/toast.test.d.ts +2 -0
- package/dist/components/ui/toast.test.d.ts.map +1 -0
- package/dist/components/ui/toggle-group.test.d.ts +2 -0
- package/dist/components/ui/toggle-group.test.d.ts.map +1 -0
- package/dist/components/ui/toggle.test.d.ts +2 -0
- package/dist/components/ui/toggle.test.d.ts.map +1 -0
- package/dist/components/ui/tooltip.test.d.ts +2 -0
- package/dist/components/ui/tooltip.test.d.ts.map +1 -0
- package/dist/index.cjs.js +3 -3
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +978 -860
- package/dist/index.es.js.map +1 -1
- package/dist/lib/tokens.d.ts +54 -0
- package/dist/lib/tokens.d.ts.map +1 -0
- package/dist/pages/ColorTokensDocs.d.ts +2 -0
- package/dist/pages/ColorTokensDocs.d.ts.map +1 -0
- package/dist/pages/GettingStarted.d.ts.map +1 -1
- package/dist/pages/components/AccordionDocs.d.ts.map +1 -1
- package/dist/pages/components/AlertDialogDocs.d.ts.map +1 -1
- package/dist/pages/components/AlertDocs.d.ts.map +1 -1
- package/dist/pages/components/AspectRatioDocs.d.ts.map +1 -1
- package/dist/pages/components/AvatarDocs.d.ts.map +1 -1
- package/dist/pages/components/BadgeDocs.d.ts.map +1 -1
- package/dist/pages/components/BreadcrumbDocs.d.ts.map +1 -1
- package/dist/pages/components/ButtonDocs.d.ts.map +1 -1
- package/dist/pages/components/CalendarDocs.d.ts.map +1 -1
- package/dist/pages/components/CardDocs.d.ts.map +1 -1
- package/dist/pages/components/CarouselDocs.d.ts.map +1 -1
- package/dist/pages/components/ChartDocs.d.ts.map +1 -1
- package/dist/pages/components/CheckboxDocs.d.ts.map +1 -1
- package/dist/pages/components/CollapsibleDocs.d.ts.map +1 -1
- package/dist/pages/components/CommandDocs.d.ts.map +1 -1
- package/dist/pages/components/ContextMenuDocs.d.ts.map +1 -1
- package/dist/pages/components/DialogDocs.d.ts.map +1 -1
- package/dist/pages/components/DrawerDocs.d.ts.map +1 -1
- package/dist/pages/components/DropdownMenuDocs.d.ts.map +1 -1
- package/dist/pages/components/FormDocs.d.ts.map +1 -1
- package/dist/pages/components/HoverCardDocs.d.ts.map +1 -1
- package/dist/pages/components/InputDocs.d.ts.map +1 -1
- package/dist/pages/components/LabelDocs.d.ts.map +1 -1
- package/dist/pages/components/MenubarDocs.d.ts.map +1 -1
- package/dist/pages/components/NavigationMenuDocs.d.ts.map +1 -1
- package/dist/pages/components/PaginationDocs.d.ts.map +1 -1
- package/dist/pages/components/PopoverDocs.d.ts.map +1 -1
- package/dist/pages/components/ProgressDocs.d.ts.map +1 -1
- package/dist/pages/components/RadioGroupDocs.d.ts.map +1 -1
- package/dist/pages/components/ResizableDocs.d.ts.map +1 -1
- package/dist/pages/components/ScrollAreaDocs.d.ts.map +1 -1
- package/dist/pages/components/SelectDocs.d.ts.map +1 -1
- package/dist/pages/components/SeparatorDocs.d.ts.map +1 -1
- package/dist/pages/components/SheetDocs.d.ts.map +1 -1
- package/dist/pages/components/SkeletonDocs.d.ts.map +1 -1
- package/dist/pages/components/SliderDocs.d.ts.map +1 -1
- package/dist/pages/components/SonnerDocs.d.ts.map +1 -1
- package/dist/pages/components/SwitchDocs.d.ts.map +1 -1
- package/dist/pages/components/TableDocs.d.ts.map +1 -1
- package/dist/pages/components/TabsDocs.d.ts.map +1 -1
- package/dist/pages/components/TextareaDocs.d.ts.map +1 -1
- package/dist/pages/components/ThemeToggleDocs.d.ts +2 -0
- package/dist/pages/components/ThemeToggleDocs.d.ts.map +1 -0
- package/dist/pages/components/ToastDocs.d.ts.map +1 -1
- package/dist/pages/components/ToggleDocs.d.ts.map +1 -1
- package/dist/pages/components/ToggleGroupDocs.d.ts.map +1 -1
- package/dist/pages/components/TooltipDocs.d.ts.map +1 -1
- package/dist/pages/index.d.ts +2 -0
- package/dist/pages/index.d.ts.map +1 -1
- package/dist/registry/accordion.test.json +13 -0
- package/dist/registry/alert-dialog.test.json +13 -0
- package/dist/registry/alert.test.json +13 -0
- package/dist/registry/aspect-ratio.test.json +13 -0
- package/dist/registry/avatar.test.json +13 -0
- package/dist/registry/badge.test.json +13 -0
- package/dist/registry/breadcrumb.test.json +13 -0
- package/dist/registry/button.test.json +13 -0
- package/dist/registry/calendar.json +1 -1
- package/dist/registry/calendar.test.json +13 -0
- package/dist/registry/card.test.json +13 -0
- package/dist/registry/carousel.test.json +13 -0
- package/dist/registry/chart.test.json +13 -0
- package/dist/registry/checkbox.test.json +13 -0
- package/dist/registry/collapsible.test.json +13 -0
- package/dist/registry/command.test.json +13 -0
- package/dist/registry/context-menu.test.json +13 -0
- package/dist/registry/dialog.test.json +13 -0
- package/dist/registry/drawer.test.json +13 -0
- package/dist/registry/dropdown-menu.test.json +13 -0
- package/dist/registry/form.test.json +13 -0
- package/dist/registry/hover-card.test.json +13 -0
- package/dist/registry/index.json +322 -0
- package/dist/registry/input.test.json +13 -0
- package/dist/registry/label.test.json +13 -0
- package/dist/registry/menubar.test.json +13 -0
- package/dist/registry/navigation-menu.test.json +13 -0
- package/dist/registry/pagination.test.json +13 -0
- package/dist/registry/popover.test.json +13 -0
- package/dist/registry/progress.json +1 -1
- package/dist/registry/progress.test.json +13 -0
- package/dist/registry/radio-group.test.json +13 -0
- package/dist/registry/resizable.test.json +13 -0
- package/dist/registry/scroll-area.test.json +13 -0
- package/dist/registry/select.test.json +13 -0
- package/dist/registry/separator.test.json +13 -0
- package/dist/registry/sheet.test.json +13 -0
- package/dist/registry/skeleton.test.json +13 -0
- package/dist/registry/slider.test.json +13 -0
- package/dist/registry/sonner.test.json +13 -0
- package/dist/registry/switch.test.json +13 -0
- package/dist/registry/table.test.json +13 -0
- package/dist/registry/tabs.test.json +13 -0
- package/dist/registry/textarea.test.json +13 -0
- package/dist/registry/theme-toggle.json +13 -0
- package/dist/registry/toast.test.json +13 -0
- package/dist/registry/toggle-group.test.json +13 -0
- package/dist/registry/toggle.test.json +13 -0
- package/dist/registry/tooltip.test.json +13 -0
- package/dist/setupTests.d.ts +2 -0
- package/dist/setupTests.d.ts.map +1 -0
- package/dist/{vendor-ZhQmrf1h.mjs → vendor-CAF5bxO5.mjs} +2451 -2415
- package/dist/vendor-CAF5bxO5.mjs.map +1 -0
- package/dist/{vendor-CMSUBoIg.js → vendor-Hw1BQGd3.js} +17 -17
- package/dist/vendor-Hw1BQGd3.js.map +1 -0
- package/eslint.config.mjs +8 -81
- package/package.json +38 -41
- package/postcss.config.mjs +5 -0
- package/src/App.tsx +37 -7
- package/src/components/docs/Footer.tsx +51 -30
- package/src/components/docs/PropsTable.tsx +43 -0
- package/src/components/docs/Sidebar.tsx +44 -72
- package/src/components/docs/index.ts +1 -0
- package/src/components/ui/accordion.test.tsx +86 -0
- package/src/components/ui/alert-dialog.test.tsx +89 -0
- package/src/components/ui/alert.test.tsx +33 -0
- package/src/components/ui/aspect-ratio.test.tsx +34 -0
- package/src/components/ui/avatar.test.tsx +33 -0
- package/src/components/ui/badge.test.tsx +24 -0
- package/src/components/ui/breadcrumb.test.tsx +55 -0
- package/src/components/ui/button.test.tsx +62 -0
- package/src/components/ui/calendar.test.tsx +23 -0
- package/src/components/ui/calendar.tsx +14 -10
- package/src/components/ui/card.test.tsx +35 -0
- package/src/components/ui/carousel.test.tsx +37 -0
- package/src/components/ui/chart.test.tsx +62 -0
- package/src/components/ui/checkbox.test.tsx +30 -0
- package/src/components/ui/collapsible.test.tsx +51 -0
- package/src/components/ui/command.test.tsx +79 -0
- package/src/components/ui/context-menu.test.tsx +37 -0
- package/src/components/ui/dialog.test.tsx +66 -0
- package/src/components/ui/drawer.test.tsx +68 -0
- package/src/components/ui/dropdown-menu.test.tsx +93 -0
- package/src/components/ui/form.test.tsx +85 -0
- package/src/components/ui/hover-card.test.tsx +48 -0
- package/src/components/ui/input.test.tsx +33 -0
- package/src/components/ui/label.test.tsx +27 -0
- package/src/components/ui/menubar.test.tsx +92 -0
- package/src/components/ui/navigation-menu.test.tsx +53 -0
- package/src/components/ui/pagination.test.tsx +57 -0
- package/src/components/ui/popover.test.tsx +31 -0
- package/src/components/ui/progress.test.tsx +18 -0
- package/src/components/ui/progress.tsx +1 -0
- package/src/components/ui/radio-group.test.tsx +39 -0
- package/src/components/ui/resizable.test.tsx +23 -0
- package/src/components/ui/scroll-area.test.tsx +15 -0
- package/src/components/ui/select.test.tsx +42 -0
- package/src/components/ui/separator.test.tsx +16 -0
- package/src/components/ui/sheet.test.tsx +48 -0
- package/src/components/ui/skeleton.test.tsx +13 -0
- package/src/components/ui/slider.test.tsx +18 -0
- package/src/components/ui/sonner.test.tsx +13 -0
- package/src/components/ui/switch.test.tsx +22 -0
- package/src/components/ui/table.test.tsx +29 -0
- package/src/components/ui/tabs.test.tsx +43 -0
- package/src/components/ui/textarea.test.tsx +21 -0
- package/src/components/ui/theme-toggle.tsx +108 -0
- package/src/components/ui/toast.test.tsx +42 -0
- package/src/components/ui/toggle-group.test.tsx +40 -0
- package/src/components/ui/toggle.test.tsx +21 -0
- package/src/components/ui/tooltip.test.tsx +25 -0
- package/src/globals.css +94 -37
- package/src/index.ts +2 -0
- package/src/lib/tokens.ts +54 -0
- package/src/pages/ColorTokensDocs.tsx +181 -0
- package/src/pages/GettingStarted.tsx +55 -35
- package/src/pages/components/AccordionDocs.tsx +109 -0
- package/src/pages/components/AlertDialogDocs.tsx +88 -0
- package/src/pages/components/AlertDocs.tsx +20 -0
- package/src/pages/components/AspectRatioDocs.tsx +21 -0
- package/src/pages/components/AvatarDocs.tsx +48 -0
- package/src/pages/components/BadgeDocs.tsx +20 -0
- package/src/pages/components/BreadcrumbDocs.tsx +33 -0
- package/src/pages/components/ButtonDocs.tsx +43 -0
- package/src/pages/components/CalendarDocs.tsx +43 -0
- package/src/pages/components/CardDocs.tsx +20 -0
- package/src/pages/components/CarouselDocs.tsx +31 -0
- package/src/pages/components/ChartDocs.tsx +131 -101
- package/src/pages/components/CheckboxDocs.tsx +58 -0
- package/src/pages/components/CollapsibleDocs.tsx +51 -0
- package/src/pages/components/CommandDocs.tsx +109 -0
- package/src/pages/components/ContextMenuDocs.tsx +65 -0
- package/src/pages/components/DialogDocs.tsx +98 -11
- package/src/pages/components/DrawerDocs.tsx +210 -15
- package/src/pages/components/DropdownMenuDocs.tsx +273 -11
- package/src/pages/components/FormDocs.tsx +149 -70
- package/src/pages/components/HoverCardDocs.tsx +82 -5
- package/src/pages/components/InputDocs.tsx +51 -20
- package/src/pages/components/LabelDocs.tsx +40 -9
- package/src/pages/components/MenubarDocs.tsx +191 -18
- package/src/pages/components/NavigationMenuDocs.tsx +147 -49
- package/src/pages/components/PaginationDocs.tsx +27 -2
- package/src/pages/components/PopoverDocs.tsx +124 -2
- package/src/pages/components/ProgressDocs.tsx +54 -24
- package/src/pages/components/RadioGroupDocs.tsx +95 -1
- package/src/pages/components/ResizableDocs.tsx +102 -75
- package/src/pages/components/ScrollAreaDocs.tsx +64 -51
- package/src/pages/components/SelectDocs.tsx +119 -48
- package/src/pages/components/SeparatorDocs.tsx +37 -2
- package/src/pages/components/SheetDocs.tsx +112 -38
- package/src/pages/components/SkeletonDocs.tsx +16 -20
- package/src/pages/components/SliderDocs.tsx +96 -10
- package/src/pages/components/SonnerDocs.tsx +89 -61
- package/src/pages/components/SwitchDocs.tsx +65 -10
- package/src/pages/components/TableDocs.tsx +89 -14
- package/src/pages/components/TabsDocs.tsx +149 -37
- package/src/pages/components/TextareaDocs.tsx +38 -32
- package/src/pages/components/ThemeToggleDocs.tsx +50 -0
- package/src/pages/components/ToastDocs.tsx +104 -65
- package/src/pages/components/ToggleDocs.tsx +55 -38
- package/src/pages/components/ToggleGroupDocs.tsx +96 -58
- package/src/pages/components/TooltipDocs.tsx +112 -3
- package/src/pages/index.ts +2 -0
- package/src/setupTests.ts +47 -0
- package/temp.md +292 -0
- package/vitest.config.ts +4 -0
- package/dist/vendor-CMSUBoIg.js.map +0 -1
- package/dist/vendor-ZhQmrf1h.mjs.map +0 -1
- package/postcss.config.js +0 -6
- package/tailwind.config.js +0 -79
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { CodeBlock } from '@/components/docs/CodeBlock';
|
|
2
|
+
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
|
|
3
|
+
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
|
|
2
4
|
|
|
3
5
|
export function GettingStartedPage() {
|
|
4
6
|
return (
|
|
@@ -11,29 +13,43 @@ export function GettingStartedPage() {
|
|
|
11
13
|
</div>
|
|
12
14
|
|
|
13
15
|
<div className="grid gap-4 md:grid-cols-3">
|
|
14
|
-
<
|
|
15
|
-
<
|
|
16
|
-
<
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<
|
|
33
|
-
</
|
|
34
|
-
<
|
|
35
|
-
|
|
36
|
-
|
|
16
|
+
<Card>
|
|
17
|
+
<CardHeader className="p-4 pb-2">
|
|
18
|
+
<div className="h-10 w-10 rounded-md bg-primary/10 flex items-center justify-center mb-2">
|
|
19
|
+
<span className="text-2xl">🎨</span>
|
|
20
|
+
</div>
|
|
21
|
+
<CardTitle className="text-lg">Consistent Design</CardTitle>
|
|
22
|
+
</CardHeader>
|
|
23
|
+
<CardContent className="p-4 pt-0">
|
|
24
|
+
<p className="text-sm text-muted-foreground">
|
|
25
|
+
Built on a unified design language with customizable themes.
|
|
26
|
+
</p>
|
|
27
|
+
</CardContent>
|
|
28
|
+
</Card>
|
|
29
|
+
<Card>
|
|
30
|
+
<CardHeader className="p-4 pb-2">
|
|
31
|
+
<div className="h-10 w-10 rounded-md bg-primary/10 flex items-center justify-center mb-2">
|
|
32
|
+
<span className="text-2xl">⚡</span>
|
|
33
|
+
</div>
|
|
34
|
+
<CardTitle className="text-lg">Fully Typed</CardTitle>
|
|
35
|
+
</CardHeader>
|
|
36
|
+
<CardContent className="p-4 pt-0">
|
|
37
|
+
<p className="text-sm text-muted-foreground">
|
|
38
|
+
Complete TypeScript support with comprehensive type definitions.
|
|
39
|
+
</p>
|
|
40
|
+
</CardContent>
|
|
41
|
+
</Card>
|
|
42
|
+
<Card>
|
|
43
|
+
<CardHeader className="p-4 pb-2">
|
|
44
|
+
<div className="h-10 w-10 rounded-md bg-primary/10 flex items-center justify-center mb-2">
|
|
45
|
+
<span className="text-2xl">♿</span>
|
|
46
|
+
</div>
|
|
47
|
+
<CardTitle className="text-lg">Accessible</CardTitle>
|
|
48
|
+
</CardHeader>
|
|
49
|
+
<CardContent className="p-4 pt-0">
|
|
50
|
+
<p className="text-sm text-muted-foreground">WAI-ARIA compliant components with keyboard navigation.</p>
|
|
51
|
+
</CardContent>
|
|
52
|
+
</Card>
|
|
37
53
|
</div>
|
|
38
54
|
|
|
39
55
|
<section className="space-y-4">
|
|
@@ -93,18 +109,22 @@ export function InstallationPage() {
|
|
|
93
109
|
<section className="space-y-4">
|
|
94
110
|
<h2 className="text-2xl font-semibold tracking-tight">Install the package</h2>
|
|
95
111
|
<p className="text-muted-foreground">Install the design system package using your preferred package manager:</p>
|
|
96
|
-
<
|
|
97
|
-
<
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
<
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
<
|
|
106
|
-
|
|
107
|
-
|
|
112
|
+
<Tabs defaultValue="npm" className="w-full">
|
|
113
|
+
<TabsList>
|
|
114
|
+
<TabsTrigger value="npm">npm</TabsTrigger>
|
|
115
|
+
<TabsTrigger value="yarn">yarn</TabsTrigger>
|
|
116
|
+
<TabsTrigger value="pnpm">pnpm</TabsTrigger>
|
|
117
|
+
</TabsList>
|
|
118
|
+
<TabsContent value="npm" className="mt-4">
|
|
119
|
+
<CodeBlock code="npm install @gv-tech/design-system" language="bash" />
|
|
120
|
+
</TabsContent>
|
|
121
|
+
<TabsContent value="yarn" className="mt-4">
|
|
122
|
+
<CodeBlock code="yarn add @gv-tech/design-system" language="bash" />
|
|
123
|
+
</TabsContent>
|
|
124
|
+
<TabsContent value="pnpm" className="mt-4">
|
|
125
|
+
<CodeBlock code="pnpm add @gv-tech/design-system" language="bash" />
|
|
126
|
+
</TabsContent>
|
|
127
|
+
</Tabs>
|
|
108
128
|
</section>
|
|
109
129
|
|
|
110
130
|
<section className="space-y-4">
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
|
|
2
|
+
import { PropsTable } from '@/components/docs/PropsTable';
|
|
2
3
|
import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion';
|
|
3
4
|
|
|
4
5
|
export function AccordionDocs() {
|
|
@@ -50,6 +51,114 @@ export function AccordionDocs() {
|
|
|
50
51
|
</AccordionItem>
|
|
51
52
|
</Accordion>
|
|
52
53
|
</ComponentShowcase>
|
|
54
|
+
|
|
55
|
+
<div className="space-y-4">
|
|
56
|
+
<h3 className="text-xl font-semibold">Props</h3>
|
|
57
|
+
|
|
58
|
+
<h4 className="text-lg font-medium mt-6">Accordion (Root)</h4>
|
|
59
|
+
<PropsTable
|
|
60
|
+
props={[
|
|
61
|
+
{
|
|
62
|
+
name: 'type',
|
|
63
|
+
type: '"single" | "multiple"',
|
|
64
|
+
description: 'Determines whether one or multiple items can be opened at the same time.',
|
|
65
|
+
required: true,
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
name: 'collapsible',
|
|
69
|
+
type: 'boolean',
|
|
70
|
+
defaultValue: 'false check',
|
|
71
|
+
description: 'When type is "single", allows closing content when clicking trigger for an open item.',
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
name: 'value',
|
|
75
|
+
type: 'string | string[]',
|
|
76
|
+
description: 'The controlled value of the item(s) to expand.',
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
name: 'defaultValue',
|
|
80
|
+
type: 'string | string[]',
|
|
81
|
+
description: 'The default value of the item(s) to expand.',
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
name: 'onValueChange',
|
|
85
|
+
type: '(value: string | string[]) => void',
|
|
86
|
+
description: 'Event handler called when the expanded state of an item changes.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
name: 'disabled',
|
|
90
|
+
type: 'boolean',
|
|
91
|
+
defaultValue: 'false',
|
|
92
|
+
description: 'When true, prevents the user from interacting with the accordion.',
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
name: 'dir',
|
|
96
|
+
type: '"ltr" | "rtl"',
|
|
97
|
+
defaultValue: '"ltr"',
|
|
98
|
+
description: 'The reading direction of the accordion.',
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
name: 'orientation',
|
|
102
|
+
type: '"vertical" | "horizontal"',
|
|
103
|
+
defaultValue: '"vertical"',
|
|
104
|
+
description: 'The orientation of the accordion.',
|
|
105
|
+
},
|
|
106
|
+
]}
|
|
107
|
+
/>
|
|
108
|
+
|
|
109
|
+
<h4 className="text-lg font-medium mt-6">AccordionItem</h4>
|
|
110
|
+
<PropsTable
|
|
111
|
+
props={[
|
|
112
|
+
{
|
|
113
|
+
name: 'value',
|
|
114
|
+
type: 'string',
|
|
115
|
+
description: 'A unique value for the item.',
|
|
116
|
+
required: true,
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
name: 'disabled',
|
|
120
|
+
type: 'boolean',
|
|
121
|
+
defaultValue: 'false',
|
|
122
|
+
description: 'When true, prevents the user from interacting with the item.',
|
|
123
|
+
},
|
|
124
|
+
]}
|
|
125
|
+
/>
|
|
126
|
+
|
|
127
|
+
<h4 className="text-lg font-medium mt-6">AccordionTrigger</h4>
|
|
128
|
+
<PropsTable
|
|
129
|
+
props={[
|
|
130
|
+
{
|
|
131
|
+
name: 'children',
|
|
132
|
+
type: 'ReactNode',
|
|
133
|
+
description: 'The content of the trigger.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
name: 'asChild',
|
|
137
|
+
type: 'boolean',
|
|
138
|
+
defaultValue: 'false',
|
|
139
|
+
description:
|
|
140
|
+
'Change the default rendered element for the one passed as a child, merging their props and behavior.',
|
|
141
|
+
},
|
|
142
|
+
]}
|
|
143
|
+
/>
|
|
144
|
+
|
|
145
|
+
<h4 className="text-lg font-medium mt-6">AccordionContent</h4>
|
|
146
|
+
<PropsTable
|
|
147
|
+
props={[
|
|
148
|
+
{
|
|
149
|
+
name: 'children',
|
|
150
|
+
type: 'ReactNode',
|
|
151
|
+
description: 'The content of the item.',
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
name: 'forceMount',
|
|
155
|
+
type: 'boolean',
|
|
156
|
+
description:
|
|
157
|
+
'Used to force mounting when more control is needed. Useful when controlling animation with React libraries.',
|
|
158
|
+
},
|
|
159
|
+
]}
|
|
160
|
+
/>
|
|
161
|
+
</div>
|
|
53
162
|
</ComponentSection>
|
|
54
163
|
);
|
|
55
164
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
|
|
2
|
+
import { PropsTable } from '@/components/docs/PropsTable';
|
|
2
3
|
import {
|
|
3
4
|
AlertDialog,
|
|
4
5
|
AlertDialogAction,
|
|
@@ -58,6 +59,93 @@ export function AlertDialogDocs() {
|
|
|
58
59
|
</AlertDialogContent>
|
|
59
60
|
</AlertDialog>
|
|
60
61
|
</ComponentShowcase>
|
|
62
|
+
|
|
63
|
+
<div className="space-y-4">
|
|
64
|
+
<h3 className="text-xl font-semibold">Props</h3>
|
|
65
|
+
|
|
66
|
+
<h4 className="text-lg font-medium mt-6">AlertDialog (Root)</h4>
|
|
67
|
+
<PropsTable
|
|
68
|
+
props={[
|
|
69
|
+
{
|
|
70
|
+
name: 'open',
|
|
71
|
+
type: 'boolean',
|
|
72
|
+
description: 'The controlled open state of the dialog.',
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
name: 'defaultOpen',
|
|
76
|
+
type: 'boolean',
|
|
77
|
+
description: 'The default open state when initially rendered.',
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
name: 'onOpenChange',
|
|
81
|
+
type: '(open: boolean) => void',
|
|
82
|
+
description: 'Event handler called when the open state changes.',
|
|
83
|
+
},
|
|
84
|
+
]}
|
|
85
|
+
/>
|
|
86
|
+
|
|
87
|
+
<h4 className="text-lg font-medium mt-6">AlertDialogTrigger</h4>
|
|
88
|
+
<PropsTable
|
|
89
|
+
props={[
|
|
90
|
+
{
|
|
91
|
+
name: 'asChild',
|
|
92
|
+
type: 'boolean',
|
|
93
|
+
defaultValue: 'false',
|
|
94
|
+
description: 'Change the default rendered element for the one passed as a child.',
|
|
95
|
+
},
|
|
96
|
+
]}
|
|
97
|
+
/>
|
|
98
|
+
|
|
99
|
+
<h4 className="text-lg font-medium mt-6">AlertDialogContent</h4>
|
|
100
|
+
<PropsTable
|
|
101
|
+
props={[
|
|
102
|
+
{
|
|
103
|
+
name: 'forceMount',
|
|
104
|
+
type: 'boolean',
|
|
105
|
+
description: 'Used to force mounting when more control is needed.',
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
name: 'onEscapeKeyDown',
|
|
109
|
+
type: '(event: KeyboardEvent) => void',
|
|
110
|
+
description: 'Event handler called when the escape key is pressed.',
|
|
111
|
+
},
|
|
112
|
+
]}
|
|
113
|
+
/>
|
|
114
|
+
|
|
115
|
+
<h4 className="text-lg font-medium mt-6">AlertDialogAction</h4>
|
|
116
|
+
<PropsTable
|
|
117
|
+
props={[
|
|
118
|
+
{
|
|
119
|
+
name: 'asChild',
|
|
120
|
+
type: 'boolean',
|
|
121
|
+
defaultValue: 'false',
|
|
122
|
+
description: 'Change the default rendered element for the one passed as a child.',
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
name: 'className',
|
|
126
|
+
type: 'string',
|
|
127
|
+
description: 'Additional CSS classes.',
|
|
128
|
+
},
|
|
129
|
+
]}
|
|
130
|
+
/>
|
|
131
|
+
|
|
132
|
+
<h4 className="text-lg font-medium mt-6">AlertDialogCancel</h4>
|
|
133
|
+
<PropsTable
|
|
134
|
+
props={[
|
|
135
|
+
{
|
|
136
|
+
name: 'asChild',
|
|
137
|
+
type: 'boolean',
|
|
138
|
+
defaultValue: 'false',
|
|
139
|
+
description: 'Change the default rendered element for the one passed as a child.',
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
name: 'className',
|
|
143
|
+
type: 'string',
|
|
144
|
+
description: 'Additional CSS classes.',
|
|
145
|
+
},
|
|
146
|
+
]}
|
|
147
|
+
/>
|
|
148
|
+
</div>
|
|
61
149
|
</ComponentSection>
|
|
62
150
|
);
|
|
63
151
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
|
|
2
|
+
import { PropsTable } from '@/components/docs/PropsTable';
|
|
2
3
|
import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert';
|
|
3
4
|
import { AlertCircle, Terminal } from 'lucide-react';
|
|
4
5
|
|
|
@@ -40,6 +41,25 @@ export function AlertDocs() {
|
|
|
40
41
|
<AlertDescription>Your session has expired. Please log in again.</AlertDescription>
|
|
41
42
|
</Alert>
|
|
42
43
|
</ComponentShowcase>
|
|
44
|
+
|
|
45
|
+
<div className="space-y-4">
|
|
46
|
+
<h3 className="text-xl font-semibold">Props</h3>
|
|
47
|
+
<PropsTable
|
|
48
|
+
props={[
|
|
49
|
+
{
|
|
50
|
+
name: 'variant',
|
|
51
|
+
type: '"default" | "destructive"',
|
|
52
|
+
defaultValue: '"default"',
|
|
53
|
+
description: 'The visual style of the alert.',
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
name: 'className',
|
|
57
|
+
type: 'string',
|
|
58
|
+
description: 'Additional CSS classes to apply.',
|
|
59
|
+
},
|
|
60
|
+
]}
|
|
61
|
+
/>
|
|
62
|
+
</div>
|
|
43
63
|
</ComponentSection>
|
|
44
64
|
);
|
|
45
65
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
|
|
2
|
+
import { PropsTable } from '@/components/docs/PropsTable';
|
|
2
3
|
import { AspectRatio } from '@/components/ui/aspect-ratio';
|
|
3
4
|
|
|
4
5
|
export function AspectRatioDocs() {
|
|
@@ -59,6 +60,26 @@ export function AspectRatioDocs() {
|
|
|
59
60
|
</AspectRatio>
|
|
60
61
|
</div>
|
|
61
62
|
</ComponentShowcase>
|
|
63
|
+
|
|
64
|
+
<div className="space-y-4">
|
|
65
|
+
<h3 className="text-xl font-semibold">Props</h3>
|
|
66
|
+
<PropsTable
|
|
67
|
+
props={[
|
|
68
|
+
{
|
|
69
|
+
name: 'ratio',
|
|
70
|
+
type: 'number',
|
|
71
|
+
defaultValue: '1',
|
|
72
|
+
description: 'The desired aspect ratio.',
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
name: 'asChild',
|
|
76
|
+
type: 'boolean',
|
|
77
|
+
defaultValue: 'false',
|
|
78
|
+
description: 'Change the default rendered element for the one passed as a child.',
|
|
79
|
+
},
|
|
80
|
+
]}
|
|
81
|
+
/>
|
|
82
|
+
</div>
|
|
62
83
|
</ComponentSection>
|
|
63
84
|
);
|
|
64
85
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
|
|
2
|
+
import { PropsTable } from '@/components/docs/PropsTable';
|
|
2
3
|
import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar';
|
|
3
4
|
|
|
4
5
|
export function AvatarDocs() {
|
|
@@ -29,6 +30,53 @@ export function AvatarDocs() {
|
|
|
29
30
|
<AvatarFallback>JD</AvatarFallback>
|
|
30
31
|
</Avatar>
|
|
31
32
|
</ComponentShowcase>
|
|
33
|
+
|
|
34
|
+
<div className="space-y-4">
|
|
35
|
+
<h3 className="text-xl font-semibold">Props</h3>
|
|
36
|
+
|
|
37
|
+
<h4 className="text-lg font-medium mt-6">Avatar (Root)</h4>
|
|
38
|
+
<PropsTable
|
|
39
|
+
props={[
|
|
40
|
+
{
|
|
41
|
+
name: 'className',
|
|
42
|
+
type: 'string',
|
|
43
|
+
description: 'Additional CSS classes.',
|
|
44
|
+
},
|
|
45
|
+
]}
|
|
46
|
+
/>
|
|
47
|
+
|
|
48
|
+
<h4 className="text-lg font-medium mt-6">AvatarImage</h4>
|
|
49
|
+
<PropsTable
|
|
50
|
+
props={[
|
|
51
|
+
{
|
|
52
|
+
name: 'src',
|
|
53
|
+
type: 'string',
|
|
54
|
+
description: 'The URL of the image.',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: 'alt',
|
|
58
|
+
type: 'string',
|
|
59
|
+
description: 'The alternative text for the image.',
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: 'onLoadingStatusChange',
|
|
63
|
+
type: '(status: "idle" | "loading" | "loaded" | "error") => void',
|
|
64
|
+
description: 'Event handler called when the loading status of the image changes.',
|
|
65
|
+
},
|
|
66
|
+
]}
|
|
67
|
+
/>
|
|
68
|
+
|
|
69
|
+
<h4 className="text-lg font-medium mt-6">AvatarFallback</h4>
|
|
70
|
+
<PropsTable
|
|
71
|
+
props={[
|
|
72
|
+
{
|
|
73
|
+
name: 'delayMs',
|
|
74
|
+
type: 'number',
|
|
75
|
+
description: 'Useful for delaying rendering so it only appears for those with slower connections.',
|
|
76
|
+
},
|
|
77
|
+
]}
|
|
78
|
+
/>
|
|
79
|
+
</div>
|
|
32
80
|
</ComponentSection>
|
|
33
81
|
);
|
|
34
82
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
|
|
2
|
+
import { PropsTable } from '@/components/docs/PropsTable';
|
|
2
3
|
import { Badge } from '@/components/ui/badge';
|
|
3
4
|
|
|
4
5
|
export function BadgeDocs() {
|
|
@@ -31,6 +32,25 @@ export function BadgeDocs() {
|
|
|
31
32
|
<Badge variant="destructive">Error</Badge>
|
|
32
33
|
<Badge variant="outline">v1.0.0</Badge>
|
|
33
34
|
</ComponentShowcase>
|
|
35
|
+
|
|
36
|
+
<div className="space-y-4">
|
|
37
|
+
<h3 className="text-xl font-semibold">Props</h3>
|
|
38
|
+
<PropsTable
|
|
39
|
+
props={[
|
|
40
|
+
{
|
|
41
|
+
name: 'variant',
|
|
42
|
+
type: '"default" | "secondary" | "destructive" | "outline"',
|
|
43
|
+
defaultValue: '"default"',
|
|
44
|
+
description: 'The visual style of the badge.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'className',
|
|
48
|
+
type: 'string',
|
|
49
|
+
description: 'Additional CSS classes to apply.',
|
|
50
|
+
},
|
|
51
|
+
]}
|
|
52
|
+
/>
|
|
53
|
+
</div>
|
|
34
54
|
</ComponentSection>
|
|
35
55
|
);
|
|
36
56
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
|
|
2
|
+
import { PropsTable } from '@/components/docs/PropsTable';
|
|
2
3
|
import {
|
|
3
4
|
Breadcrumb,
|
|
4
5
|
BreadcrumbItem,
|
|
@@ -49,6 +50,38 @@ export function BreadcrumbDocs() {
|
|
|
49
50
|
</BreadcrumbList>
|
|
50
51
|
</Breadcrumb>
|
|
51
52
|
</ComponentShowcase>
|
|
53
|
+
|
|
54
|
+
<div className="space-y-4">
|
|
55
|
+
<h3 className="text-xl font-semibold">Props</h3>
|
|
56
|
+
|
|
57
|
+
<h4 className="text-lg font-medium mt-6">Breadcrumb (Root)</h4>
|
|
58
|
+
<PropsTable
|
|
59
|
+
props={[
|
|
60
|
+
{
|
|
61
|
+
name: 'separator',
|
|
62
|
+
type: 'ReactNode',
|
|
63
|
+
description: 'Custom separator element.',
|
|
64
|
+
},
|
|
65
|
+
]}
|
|
66
|
+
/>
|
|
67
|
+
|
|
68
|
+
<h4 className="text-lg font-medium mt-6">BreadcrumbLink</h4>
|
|
69
|
+
<PropsTable
|
|
70
|
+
props={[
|
|
71
|
+
{
|
|
72
|
+
name: 'asChild',
|
|
73
|
+
type: 'boolean',
|
|
74
|
+
defaultValue: 'false',
|
|
75
|
+
description: 'Change the default rendered element for the one passed as a child.',
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
name: 'href',
|
|
79
|
+
type: 'string',
|
|
80
|
+
description: 'The URL of the link.',
|
|
81
|
+
},
|
|
82
|
+
]}
|
|
83
|
+
/>
|
|
84
|
+
</div>
|
|
52
85
|
</ComponentSection>
|
|
53
86
|
);
|
|
54
87
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
|
|
2
|
+
import { PropsTable } from '@/components/docs/PropsTable';
|
|
2
3
|
import { Button } from '@/components/ui/button';
|
|
3
4
|
import { ChevronRight, Loader2, Mail } from 'lucide-react';
|
|
4
5
|
|
|
@@ -72,6 +73,48 @@ export function ButtonDocs() {
|
|
|
72
73
|
>
|
|
73
74
|
<Button disabled>Disabled</Button>
|
|
74
75
|
</ComponentShowcase>
|
|
76
|
+
|
|
77
|
+
<div className="space-y-4">
|
|
78
|
+
<h3 className="text-xl font-semibold">Props</h3>
|
|
79
|
+
<PropsTable
|
|
80
|
+
props={[
|
|
81
|
+
{
|
|
82
|
+
name: 'variant',
|
|
83
|
+
type: '"default" | "destructive" | "outline" | "secondary" | "ghost" | "link"',
|
|
84
|
+
defaultValue: '"default"',
|
|
85
|
+
description: 'The visual style of the button.',
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
name: 'size',
|
|
89
|
+
type: '"default" | "sm" | "lg" | "icon"',
|
|
90
|
+
defaultValue: '"default"',
|
|
91
|
+
description: 'The size of the button.',
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: 'asChild',
|
|
95
|
+
type: 'boolean',
|
|
96
|
+
defaultValue: 'false',
|
|
97
|
+
description: 'Whether to render as a child component (delegation).',
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
name: 'className',
|
|
101
|
+
type: 'string',
|
|
102
|
+
description: 'Additional CSS classes to apply.',
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
name: 'disabled',
|
|
106
|
+
type: 'boolean',
|
|
107
|
+
defaultValue: 'false',
|
|
108
|
+
description: 'Whether the button is disabled.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
name: 'onClick',
|
|
112
|
+
type: 'MouseEventHandler',
|
|
113
|
+
description: 'Click event handler.',
|
|
114
|
+
},
|
|
115
|
+
]}
|
|
116
|
+
/>
|
|
117
|
+
</div>
|
|
75
118
|
</ComponentSection>
|
|
76
119
|
);
|
|
77
120
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
|
|
2
|
+
import { PropsTable } from '@/components/docs/PropsTable';
|
|
2
3
|
import { Calendar } from '@/components/ui/calendar';
|
|
3
4
|
import * as React from 'react';
|
|
4
5
|
|
|
@@ -24,6 +25,48 @@ export function CalendarDocs() {
|
|
|
24
25
|
>
|
|
25
26
|
<Calendar mode="single" selected={date} onSelect={setDate} className="rounded-md border" />
|
|
26
27
|
</ComponentShowcase>
|
|
28
|
+
|
|
29
|
+
<div className="space-y-4">
|
|
30
|
+
<h3 className="text-xl font-semibold">Props</h3>
|
|
31
|
+
<p className="text-sm text-muted-foreground">
|
|
32
|
+
The Calendar component is built on top of{' '}
|
|
33
|
+
<a href="https://react-day-picker.js.org/" className="underline" target="_blank" rel="noreferrer">
|
|
34
|
+
React Day Picker
|
|
35
|
+
</a>
|
|
36
|
+
.
|
|
37
|
+
</p>
|
|
38
|
+
<PropsTable
|
|
39
|
+
props={[
|
|
40
|
+
{
|
|
41
|
+
name: 'mode',
|
|
42
|
+
type: '"single" | "multiple" | "range" | "default"',
|
|
43
|
+
defaultValue: '"default"',
|
|
44
|
+
description: 'The selection mode of the calendar.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'selected',
|
|
48
|
+
type: 'Date | Date[] | DateRange | undefined',
|
|
49
|
+
description: 'The selected date(s).',
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: 'onSelect',
|
|
53
|
+
type: '(date: any) => void',
|
|
54
|
+
description: 'Event handler called when a date is selected.',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: 'showOutsideDays',
|
|
58
|
+
type: 'boolean',
|
|
59
|
+
defaultValue: 'true',
|
|
60
|
+
description: 'Whether to show days from the previous and next months.',
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
name: 'className',
|
|
64
|
+
type: 'string',
|
|
65
|
+
description: 'Additional CSS classes to apply.',
|
|
66
|
+
},
|
|
67
|
+
]}
|
|
68
|
+
/>
|
|
69
|
+
</div>
|
|
27
70
|
</ComponentSection>
|
|
28
71
|
);
|
|
29
72
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
|
|
2
|
+
import { PropsTable } from '@/components/docs/PropsTable';
|
|
2
3
|
import { Button } from '@/components/ui/button';
|
|
3
4
|
import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from '@/components/ui/card';
|
|
4
5
|
import { Input } from '@/components/ui/input';
|
|
@@ -76,6 +77,25 @@ export function CardDocs() {
|
|
|
76
77
|
</CardFooter>
|
|
77
78
|
</Card>
|
|
78
79
|
</ComponentShowcase>
|
|
80
|
+
|
|
81
|
+
<div className="space-y-4">
|
|
82
|
+
<h3 className="text-xl font-semibold">Props</h3>
|
|
83
|
+
<h4 className="text-lg font-medium mt-6">Card (Root)</h4>
|
|
84
|
+
<PropsTable
|
|
85
|
+
props={[
|
|
86
|
+
{
|
|
87
|
+
name: 'className',
|
|
88
|
+
type: 'string',
|
|
89
|
+
description: 'Additional CSS classes.',
|
|
90
|
+
},
|
|
91
|
+
]}
|
|
92
|
+
/>
|
|
93
|
+
|
|
94
|
+
<p className="text-sm text-muted-foreground mt-4">
|
|
95
|
+
CardHeader, CardTitle, CardDescription, CardContent, and CardFooter also accept <code>className</code> and
|
|
96
|
+
other standard HTML attributes.
|
|
97
|
+
</p>
|
|
98
|
+
</div>
|
|
79
99
|
</ComponentSection>
|
|
80
100
|
);
|
|
81
101
|
}
|