@gv-tech/design-system 0.9.0 → 1.1.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/.github/workflows/ci.yml +3 -12
- package/.github/workflows/release-please.yml +2 -2
- package/.vscode/mcp.json +8 -0
- package/CHANGELOG.md +32 -0
- package/components.json +20 -0
- package/dist/App.d.ts +3 -0
- package/dist/App.d.ts.map +1 -0
- package/dist/components/docs/CodeBlock.d.ts +8 -0
- package/dist/components/docs/CodeBlock.d.ts.map +1 -0
- package/dist/components/docs/ComponentShowcase.d.ts +17 -0
- package/dist/components/docs/ComponentShowcase.d.ts.map +1 -0
- package/dist/components/docs/Footer.d.ts +2 -0
- package/dist/components/docs/Footer.d.ts.map +1 -0
- package/dist/components/docs/Sidebar.d.ts +14 -0
- package/dist/components/docs/Sidebar.d.ts.map +1 -0
- package/dist/components/docs/ThemeToggle.d.ts +2 -0
- package/dist/components/docs/ThemeToggle.d.ts.map +1 -0
- package/dist/components/docs/index.d.ts +6 -0
- package/dist/components/docs/index.d.ts.map +1 -0
- package/dist/components/ui/accordion.d.ts +8 -0
- package/dist/components/ui/accordion.d.ts.map +1 -0
- package/dist/components/ui/alert-dialog.d.ts +21 -0
- package/dist/components/ui/alert-dialog.d.ts.map +1 -0
- package/dist/components/ui/alert.d.ts +9 -0
- package/dist/components/ui/alert.d.ts.map +1 -0
- package/dist/components/ui/aspect-ratio.d.ts +4 -0
- package/dist/components/ui/aspect-ratio.d.ts.map +1 -0
- package/dist/components/ui/avatar.d.ts +7 -0
- package/dist/components/ui/avatar.d.ts.map +1 -0
- package/dist/components/ui/badge.d.ts +10 -0
- package/dist/components/ui/badge.d.ts.map +1 -0
- package/dist/components/ui/breadcrumb.d.ts +20 -0
- package/dist/components/ui/breadcrumb.d.ts.map +1 -0
- package/dist/components/ui/button.d.ts +12 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/calendar.d.ts +9 -0
- package/dist/components/ui/calendar.d.ts.map +1 -0
- package/dist/components/ui/card.d.ts +9 -0
- package/dist/components/ui/card.d.ts.map +1 -0
- package/dist/components/ui/carousel.d.ts +19 -0
- package/dist/components/ui/carousel.d.ts.map +1 -0
- package/dist/components/ui/chart.d.ts +63 -0
- package/dist/components/ui/chart.d.ts.map +1 -0
- package/dist/components/ui/checkbox.d.ts +5 -0
- package/dist/components/ui/checkbox.d.ts.map +1 -0
- package/dist/components/ui/collapsible.d.ts +6 -0
- package/dist/components/ui/collapsible.d.ts.map +1 -0
- package/dist/components/ui/command.d.ts +81 -0
- package/dist/components/ui/command.d.ts.map +1 -0
- package/dist/components/ui/context-menu.d.ts +28 -0
- package/dist/components/ui/context-menu.d.ts.map +1 -0
- package/dist/components/ui/dialog.d.ts +20 -0
- package/dist/components/ui/dialog.d.ts.map +1 -0
- package/dist/components/ui/drawer.d.ts +23 -0
- package/dist/components/ui/drawer.d.ts.map +1 -0
- package/dist/components/ui/dropdown-menu.d.ts +28 -0
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/components/ui/form.d.ts +24 -0
- package/dist/components/ui/form.d.ts.map +1 -0
- package/dist/components/ui/hover-card.d.ts +7 -0
- package/dist/components/ui/hover-card.d.ts.map +1 -0
- package/dist/components/ui/input.d.ts +4 -0
- package/dist/components/ui/input.d.ts.map +1 -0
- package/dist/components/ui/label.d.ts +6 -0
- package/dist/components/ui/label.d.ts.map +1 -0
- package/dist/components/ui/menubar.d.ts +29 -0
- package/dist/components/ui/menubar.d.ts.map +1 -0
- package/dist/components/ui/navigation-menu.d.ts +13 -0
- package/dist/components/ui/navigation-menu.d.ts.map +1 -0
- package/dist/components/ui/pagination.d.ts +29 -0
- package/dist/components/ui/pagination.d.ts.map +1 -0
- package/dist/components/ui/popover.d.ts +8 -0
- package/dist/components/ui/popover.d.ts.map +1 -0
- package/dist/components/ui/progress.d.ts +5 -0
- package/dist/components/ui/progress.d.ts.map +1 -0
- package/dist/components/ui/radio-group.d.ts +6 -0
- package/dist/components/ui/radio-group.d.ts.map +1 -0
- package/dist/components/ui/resizable.d.ts +11 -0
- package/dist/components/ui/resizable.d.ts.map +1 -0
- package/dist/components/ui/scroll-area.d.ts +6 -0
- package/dist/components/ui/scroll-area.d.ts.map +1 -0
- package/dist/components/ui/select.d.ts +14 -0
- package/dist/components/ui/select.d.ts.map +1 -0
- package/dist/components/ui/separator.d.ts +5 -0
- package/dist/components/ui/separator.d.ts.map +1 -0
- package/dist/components/ui/sheet.d.ts +26 -0
- package/dist/components/ui/sheet.d.ts.map +1 -0
- package/dist/components/ui/skeleton.d.ts +4 -0
- package/dist/components/ui/skeleton.d.ts.map +1 -0
- package/dist/components/ui/slider.d.ts +5 -0
- package/dist/components/ui/slider.d.ts.map +1 -0
- package/dist/components/ui/sonner.d.ts +6 -0
- package/dist/components/ui/sonner.d.ts.map +1 -0
- package/dist/components/ui/switch.d.ts +5 -0
- package/dist/components/ui/switch.d.ts.map +1 -0
- package/dist/components/ui/table.d.ts +11 -0
- package/dist/components/ui/table.d.ts.map +1 -0
- package/dist/components/ui/tabs.d.ts +8 -0
- package/dist/components/ui/tabs.d.ts.map +1 -0
- package/dist/components/ui/textarea.d.ts +4 -0
- package/dist/components/ui/textarea.d.ts.map +1 -0
- package/dist/components/ui/toast.d.ts +16 -0
- package/dist/components/ui/toast.d.ts.map +1 -0
- package/dist/components/ui/toaster.d.ts +2 -0
- package/dist/components/ui/toaster.d.ts.map +1 -0
- package/dist/components/ui/toggle-group.d.ts +13 -0
- package/dist/components/ui/toggle-group.d.ts.map +1 -0
- package/dist/components/ui/toggle.d.ts +13 -0
- package/dist/components/ui/toggle.d.ts.map +1 -0
- package/dist/components/ui/tooltip.d.ts +8 -0
- package/dist/components/ui/tooltip.d.ts.map +1 -0
- package/dist/hooks/use-toast.d.ts +45 -0
- package/dist/hooks/use-toast.d.ts.map +1 -0
- package/dist/index.cjs.js +8 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +49 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.es.js +2275 -0
- package/dist/index.es.js.map +1 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/main.d.ts +2 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/pages/GettingStarted.d.ts +3 -0
- package/dist/pages/GettingStarted.d.ts.map +1 -0
- package/dist/pages/components/AccordionDocs.d.ts +2 -0
- package/dist/pages/components/AccordionDocs.d.ts.map +1 -0
- package/dist/pages/components/AlertDialogDocs.d.ts +2 -0
- package/dist/pages/components/AlertDialogDocs.d.ts.map +1 -0
- package/dist/pages/components/AlertDocs.d.ts +2 -0
- package/dist/pages/components/AlertDocs.d.ts.map +1 -0
- package/dist/pages/components/AspectRatioDocs.d.ts +2 -0
- package/dist/pages/components/AspectRatioDocs.d.ts.map +1 -0
- package/dist/pages/components/AvatarDocs.d.ts +2 -0
- package/dist/pages/components/AvatarDocs.d.ts.map +1 -0
- package/dist/pages/components/BadgeDocs.d.ts +2 -0
- package/dist/pages/components/BadgeDocs.d.ts.map +1 -0
- package/dist/pages/components/BreadcrumbDocs.d.ts +2 -0
- package/dist/pages/components/BreadcrumbDocs.d.ts.map +1 -0
- package/dist/pages/components/ButtonDocs.d.ts +2 -0
- package/dist/pages/components/ButtonDocs.d.ts.map +1 -0
- package/dist/pages/components/CalendarDocs.d.ts +2 -0
- package/dist/pages/components/CalendarDocs.d.ts.map +1 -0
- package/dist/pages/components/CardDocs.d.ts +2 -0
- package/dist/pages/components/CardDocs.d.ts.map +1 -0
- package/dist/pages/components/CarouselDocs.d.ts +2 -0
- package/dist/pages/components/CarouselDocs.d.ts.map +1 -0
- package/dist/pages/components/ChartDocs.d.ts +2 -0
- package/dist/pages/components/ChartDocs.d.ts.map +1 -0
- package/dist/pages/components/CheckboxDocs.d.ts +2 -0
- package/dist/pages/components/CheckboxDocs.d.ts.map +1 -0
- package/dist/pages/components/CollapsibleDocs.d.ts +2 -0
- package/dist/pages/components/CollapsibleDocs.d.ts.map +1 -0
- package/dist/pages/components/CommandDocs.d.ts +2 -0
- package/dist/pages/components/CommandDocs.d.ts.map +1 -0
- package/dist/pages/components/ContextMenuDocs.d.ts +2 -0
- package/dist/pages/components/ContextMenuDocs.d.ts.map +1 -0
- package/dist/pages/components/DialogDocs.d.ts +2 -0
- package/dist/pages/components/DialogDocs.d.ts.map +1 -0
- package/dist/pages/components/DrawerDocs.d.ts +2 -0
- package/dist/pages/components/DrawerDocs.d.ts.map +1 -0
- package/dist/pages/components/DropdownMenuDocs.d.ts +2 -0
- package/dist/pages/components/DropdownMenuDocs.d.ts.map +1 -0
- package/dist/pages/components/FormDocs.d.ts +2 -0
- package/dist/pages/components/FormDocs.d.ts.map +1 -0
- package/dist/pages/components/HoverCardDocs.d.ts +2 -0
- package/dist/pages/components/HoverCardDocs.d.ts.map +1 -0
- package/dist/pages/components/InputDocs.d.ts +2 -0
- package/dist/pages/components/InputDocs.d.ts.map +1 -0
- package/dist/pages/components/LabelDocs.d.ts +2 -0
- package/dist/pages/components/LabelDocs.d.ts.map +1 -0
- package/dist/pages/components/MenubarDocs.d.ts +2 -0
- package/dist/pages/components/MenubarDocs.d.ts.map +1 -0
- package/dist/pages/components/NavigationMenuDocs.d.ts +2 -0
- package/dist/pages/components/NavigationMenuDocs.d.ts.map +1 -0
- package/dist/pages/components/PaginationDocs.d.ts +2 -0
- package/dist/pages/components/PaginationDocs.d.ts.map +1 -0
- package/dist/pages/components/PopoverDocs.d.ts +2 -0
- package/dist/pages/components/PopoverDocs.d.ts.map +1 -0
- package/dist/pages/components/ProgressDocs.d.ts +2 -0
- package/dist/pages/components/ProgressDocs.d.ts.map +1 -0
- package/dist/pages/components/RadioGroupDocs.d.ts +2 -0
- package/dist/pages/components/RadioGroupDocs.d.ts.map +1 -0
- package/dist/pages/components/ResizableDocs.d.ts +2 -0
- package/dist/pages/components/ResizableDocs.d.ts.map +1 -0
- package/dist/pages/components/ScrollAreaDocs.d.ts +2 -0
- package/dist/pages/components/ScrollAreaDocs.d.ts.map +1 -0
- package/dist/pages/components/SelectDocs.d.ts +2 -0
- package/dist/pages/components/SelectDocs.d.ts.map +1 -0
- package/dist/pages/components/SeparatorDocs.d.ts +2 -0
- package/dist/pages/components/SeparatorDocs.d.ts.map +1 -0
- package/dist/pages/components/SheetDocs.d.ts +2 -0
- package/dist/pages/components/SheetDocs.d.ts.map +1 -0
- package/dist/pages/components/SkeletonDocs.d.ts +2 -0
- package/dist/pages/components/SkeletonDocs.d.ts.map +1 -0
- package/dist/pages/components/SliderDocs.d.ts +2 -0
- package/dist/pages/components/SliderDocs.d.ts.map +1 -0
- package/dist/pages/components/SonnerDocs.d.ts +2 -0
- package/dist/pages/components/SonnerDocs.d.ts.map +1 -0
- package/dist/pages/components/SwitchDocs.d.ts +2 -0
- package/dist/pages/components/SwitchDocs.d.ts.map +1 -0
- package/dist/pages/components/TableDocs.d.ts +2 -0
- package/dist/pages/components/TableDocs.d.ts.map +1 -0
- package/dist/pages/components/TabsDocs.d.ts +2 -0
- package/dist/pages/components/TabsDocs.d.ts.map +1 -0
- package/dist/pages/components/TextareaDocs.d.ts +2 -0
- package/dist/pages/components/TextareaDocs.d.ts.map +1 -0
- package/dist/pages/components/ToastDocs.d.ts +2 -0
- package/dist/pages/components/ToastDocs.d.ts.map +1 -0
- package/dist/pages/components/ToggleDocs.d.ts +2 -0
- package/dist/pages/components/ToggleDocs.d.ts.map +1 -0
- package/dist/pages/components/ToggleGroupDocs.d.ts +2 -0
- package/dist/pages/components/ToggleGroupDocs.d.ts.map +1 -0
- package/dist/pages/components/TooltipDocs.d.ts +2 -0
- package/dist/pages/components/TooltipDocs.d.ts.map +1 -0
- package/dist/pages/index.d.ts +47 -0
- package/dist/pages/index.d.ts.map +1 -0
- package/dist/registry/accordion.json +13 -0
- package/dist/registry/alert-dialog.json +13 -0
- package/dist/registry/alert.json +13 -0
- package/dist/registry/aspect-ratio.json +13 -0
- package/dist/registry/avatar.json +13 -0
- package/dist/registry/badge.json +13 -0
- package/dist/registry/breadcrumb.json +13 -0
- package/dist/registry/button.json +13 -0
- package/dist/registry/calendar.json +13 -0
- package/dist/registry/card.json +13 -0
- package/dist/registry/carousel.json +13 -0
- package/dist/registry/chart.json +13 -0
- package/dist/registry/checkbox.json +13 -0
- package/dist/registry/collapsible.json +13 -0
- package/dist/registry/command.json +13 -0
- package/dist/registry/context-menu.json +13 -0
- package/dist/registry/dialog.json +13 -0
- package/dist/registry/drawer.json +13 -0
- package/dist/registry/dropdown-menu.json +13 -0
- package/dist/registry/form.json +13 -0
- package/dist/registry/hover-card.json +13 -0
- package/dist/registry/index.json +324 -0
- package/dist/registry/input.json +13 -0
- package/dist/registry/label.json +13 -0
- package/dist/registry/menubar.json +13 -0
- package/dist/registry/navigation-menu.json +13 -0
- package/dist/registry/pagination.json +13 -0
- package/dist/registry/popover.json +13 -0
- package/dist/registry/progress.json +13 -0
- package/dist/registry/radio-group.json +13 -0
- package/dist/registry/resizable.json +13 -0
- package/dist/registry/scroll-area.json +13 -0
- package/dist/registry/select.json +13 -0
- package/dist/registry/separator.json +13 -0
- package/dist/registry/sheet.json +13 -0
- package/dist/registry/skeleton.json +13 -0
- package/dist/registry/slider.json +13 -0
- package/dist/registry/sonner.json +13 -0
- package/dist/registry/switch.json +13 -0
- package/dist/registry/table.json +13 -0
- package/dist/registry/tabs.json +13 -0
- package/dist/registry/textarea.json +13 -0
- package/dist/registry/toast.json +13 -0
- package/dist/registry/toaster.json +13 -0
- package/dist/registry/toggle-group.json +13 -0
- package/dist/registry/toggle.json +13 -0
- package/dist/registry/tooltip.json +13 -0
- package/dist/vendor-CMSUBoIg.js +73 -0
- package/dist/vendor-CMSUBoIg.js.map +1 -0
- package/dist/vendor-ZhQmrf1h.mjs +25737 -0
- package/dist/vendor-ZhQmrf1h.mjs.map +1 -0
- package/eslint.config.mjs +34 -43
- package/index.html +13 -0
- package/package.json +75 -52
- package/postcss.config.mjs +5 -0
- package/scripts/build-registry.ts +47 -0
- package/scripts/import-all-shadcn.ts +68 -0
- package/scripts/validate.js +0 -2
- package/src/App.tsx +211 -0
- package/src/components/docs/CodeBlock.tsx +34 -0
- package/src/components/docs/ComponentShowcase.tsx +68 -0
- package/src/components/docs/Footer.tsx +117 -0
- package/src/components/docs/Sidebar.tsx +189 -0
- package/src/components/docs/ThemeToggle.tsx +19 -0
- package/src/components/docs/index.ts +5 -0
- package/src/components/ui/accordion.tsx +51 -0
- package/src/components/ui/alert-dialog.tsx +104 -0
- package/src/components/ui/alert.tsx +43 -0
- package/src/components/ui/aspect-ratio.tsx +5 -0
- package/src/components/ui/avatar.tsx +38 -0
- package/src/components/ui/badge.tsx +29 -0
- package/src/components/ui/breadcrumb.tsx +90 -0
- package/src/components/ui/button.tsx +46 -0
- package/src/components/ui/calendar.tsx +156 -0
- package/src/components/ui/card.tsx +43 -0
- package/src/components/ui/carousel.tsx +224 -0
- package/src/components/ui/chart.tsx +307 -0
- package/src/components/ui/checkbox.tsx +26 -0
- package/src/components/ui/collapsible.tsx +9 -0
- package/src/components/ui/command.tsx +132 -0
- package/src/components/ui/context-menu.tsx +178 -0
- package/src/components/ui/dialog.tsx +95 -0
- package/src/components/ui/drawer.tsx +87 -0
- package/src/components/ui/dropdown-menu.tsx +180 -0
- package/src/components/ui/form.tsx +149 -0
- package/src/components/ui/hover-card.tsx +27 -0
- package/src/components/ui/input.tsx +22 -0
- package/src/components/ui/label.tsx +17 -0
- package/src/components/ui/menubar.tsx +217 -0
- package/src/components/ui/navigation-menu.tsx +120 -0
- package/src/components/ui/pagination.tsx +81 -0
- package/src/components/ui/popover.tsx +31 -0
- package/src/components/ui/progress.tsx +23 -0
- package/src/components/ui/radio-group.tsx +36 -0
- package/src/components/ui/resizable.tsx +45 -0
- package/src/components/ui/scroll-area.tsx +38 -0
- package/src/components/ui/select.tsx +142 -0
- package/src/components/ui/separator.tsx +20 -0
- package/src/components/ui/sheet.tsx +106 -0
- package/src/components/ui/skeleton.tsx +8 -0
- package/src/components/ui/slider.tsx +23 -0
- package/src/components/ui/sonner.tsx +28 -0
- package/src/components/ui/switch.tsx +27 -0
- package/src/components/ui/table.tsx +76 -0
- package/src/components/ui/tabs.tsx +53 -0
- package/src/components/ui/textarea.tsx +21 -0
- package/src/components/ui/toast.tsx +111 -0
- package/src/components/ui/toaster.tsx +24 -0
- package/src/components/ui/toggle-group.tsx +51 -0
- package/src/components/ui/toggle.tsx +37 -0
- package/src/components/ui/tooltip.tsx +30 -0
- package/src/globals.css +118 -0
- package/src/hooks/use-toast.ts +189 -0
- package/src/index.ts +50 -11
- package/src/lib/utils.ts +6 -0
- package/src/main.tsx +10 -0
- package/src/pages/GettingStarted.tsx +251 -0
- package/src/pages/components/AccordionDocs.tsx +55 -0
- package/src/pages/components/AlertDialogDocs.tsx +63 -0
- package/src/pages/components/AlertDocs.tsx +45 -0
- package/src/pages/components/AspectRatioDocs.tsx +64 -0
- package/src/pages/components/AvatarDocs.tsx +34 -0
- package/src/pages/components/BadgeDocs.tsx +36 -0
- package/src/pages/components/BreadcrumbDocs.tsx +54 -0
- package/src/pages/components/ButtonDocs.tsx +77 -0
- package/src/pages/components/CalendarDocs.tsx +29 -0
- package/src/pages/components/CardDocs.tsx +81 -0
- package/src/pages/components/CarouselDocs.tsx +132 -0
- package/src/pages/components/ChartDocs.tsx +115 -0
- package/src/pages/components/CheckboxDocs.tsx +49 -0
- package/src/pages/components/CollapsibleDocs.tsx +52 -0
- package/src/pages/components/CommandDocs.tsx +100 -0
- package/src/pages/components/ContextMenuDocs.tsx +93 -0
- package/src/pages/components/DialogDocs.tsx +80 -0
- package/src/pages/components/DrawerDocs.tsx +79 -0
- package/src/pages/components/DropdownMenuDocs.tsx +51 -0
- package/src/pages/components/FormDocs.tsx +84 -0
- package/src/pages/components/HoverCardDocs.tsx +59 -0
- package/src/pages/components/InputDocs.tsx +68 -0
- package/src/pages/components/LabelDocs.tsx +23 -0
- package/src/pages/components/MenubarDocs.tsx +117 -0
- package/src/pages/components/NavigationMenuDocs.tsx +156 -0
- package/src/pages/components/PaginationDocs.tsx +68 -0
- package/src/pages/components/PopoverDocs.tsx +61 -0
- package/src/pages/components/ProgressDocs.tsx +34 -0
- package/src/pages/components/RadioGroupDocs.tsx +38 -0
- package/src/pages/components/ResizableDocs.tsx +110 -0
- package/src/pages/components/ScrollAreaDocs.tsx +89 -0
- package/src/pages/components/SelectDocs.tsx +87 -0
- package/src/pages/components/SeparatorDocs.tsx +44 -0
- package/src/pages/components/SheetDocs.tsx +104 -0
- package/src/pages/components/SkeletonDocs.tsx +48 -0
- package/src/pages/components/SliderDocs.tsx +24 -0
- package/src/pages/components/SonnerDocs.tsx +89 -0
- package/src/pages/components/SwitchDocs.tsx +31 -0
- package/src/pages/components/TableDocs.tsx +64 -0
- package/src/pages/components/TabsDocs.tsx +111 -0
- package/src/pages/components/TextareaDocs.tsx +54 -0
- package/src/pages/components/ToastDocs.tsx +102 -0
- package/src/pages/components/ToggleDocs.tsx +59 -0
- package/src/pages/components/ToggleGroupDocs.tsx +93 -0
- package/src/pages/components/TooltipDocs.tsx +38 -0
- package/src/pages/index.ts +49 -0
- package/tsconfig.json +8 -4
- package/tsconfig.node.json +2 -1
- package/vite.config.ts +30 -16
- package/wrangler.toml +22 -0
- package/.storybook/.preview-head.html +0 -1
- package/.storybook/main.ts +0 -38
- package/.storybook/preview.tsx +0 -30
- package/dist/index.js +0 -647
- package/dist/index.js.map +0 -1
- package/dist/index.mjs +0 -1053
- package/dist/index.mjs.map +0 -1
- package/dist/vendor-DXgJBoQh.mjs +0 -265
- package/dist/vendor-DXgJBoQh.mjs.map +0 -1
- package/dist/vendor-nZSsnGb7.js +0 -7
- package/dist/vendor-nZSsnGb7.js.map +0 -1
- package/src/Avatar.stories.tsx +0 -67
- package/src/Avatar.tsx +0 -174
- package/src/Badge.stories.tsx +0 -87
- package/src/Badge.tsx +0 -76
- package/src/Button.stories.tsx +0 -244
- package/src/Button.tsx +0 -384
- package/src/Icon.stories.tsx +0 -101
- package/src/Icon.tsx +0 -64
- package/src/Intro.stories.tsx +0 -20
- package/src/Link.stories.tsx +0 -69
- package/src/Link.tsx +0 -252
- package/src/StoryLinkWrapper.d.ts +0 -1
- package/src/StoryLinkWrapper.tsx +0 -33
- package/src/__tests__/Avatar.test.tsx +0 -28
- package/src/__tests__/Badge.test.tsx +0 -25
- package/src/__tests__/Button.test.tsx +0 -38
- package/src/__tests__/Icon.test.tsx +0 -26
- package/src/__tests__/Link.test.tsx +0 -31
- package/src/mdx.d.ts +0 -5
- package/src/setupTests.ts +0 -1
- package/src/shared/animation.d.ts +0 -18
- package/src/shared/animation.js +0 -60
- package/src/shared/global.d.ts +0 -12
- package/src/shared/global.js +0 -120
- package/src/shared/icons.d.ts +0 -34
- package/src/shared/icons.js +0 -282
- package/src/shared/styles.d.ts +0 -86
- package/src/shared/styles.js +0 -98
- package/src/test-utils/axe.ts +0 -25
- package/src/types.ts +0 -316
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
import { CodeBlock } from '@/components/docs/CodeBlock';
|
|
2
|
+
|
|
3
|
+
export function GettingStartedPage() {
|
|
4
|
+
return (
|
|
5
|
+
<div className="space-y-8">
|
|
6
|
+
<div className="space-y-2">
|
|
7
|
+
<h1 className="text-4xl font-bold tracking-tight">GV Tech Design System</h1>
|
|
8
|
+
<p className="text-xl text-muted-foreground">
|
|
9
|
+
A comprehensive React component library built with shadcn/ui and Tailwind CSS.
|
|
10
|
+
</p>
|
|
11
|
+
</div>
|
|
12
|
+
|
|
13
|
+
<div className="grid gap-4 md:grid-cols-3">
|
|
14
|
+
<div className="rounded-lg border p-4 space-y-2">
|
|
15
|
+
<div className="h-10 w-10 rounded-md bg-primary/10 flex items-center justify-center">
|
|
16
|
+
<span className="text-2xl">🎨</span>
|
|
17
|
+
</div>
|
|
18
|
+
<h3 className="font-semibold">Consistent Design</h3>
|
|
19
|
+
<p className="text-sm text-muted-foreground">Built on a unified design language with customizable themes.</p>
|
|
20
|
+
</div>
|
|
21
|
+
<div className="rounded-lg border p-4 space-y-2">
|
|
22
|
+
<div className="h-10 w-10 rounded-md bg-primary/10 flex items-center justify-center">
|
|
23
|
+
<span className="text-2xl">⚡</span>
|
|
24
|
+
</div>
|
|
25
|
+
<h3 className="font-semibold">Fully Typed</h3>
|
|
26
|
+
<p className="text-sm text-muted-foreground">
|
|
27
|
+
Complete TypeScript support with comprehensive type definitions.
|
|
28
|
+
</p>
|
|
29
|
+
</div>
|
|
30
|
+
<div className="rounded-lg border p-4 space-y-2">
|
|
31
|
+
<div className="h-10 w-10 rounded-md bg-primary/10 flex items-center justify-center">
|
|
32
|
+
<span className="text-2xl">♿</span>
|
|
33
|
+
</div>
|
|
34
|
+
<h3 className="font-semibold">Accessible</h3>
|
|
35
|
+
<p className="text-sm text-muted-foreground">WAI-ARIA compliant components with keyboard navigation.</p>
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
|
|
39
|
+
<section className="space-y-4">
|
|
40
|
+
<h2 className="text-2xl font-semibold tracking-tight">Quick Example</h2>
|
|
41
|
+
<CodeBlock
|
|
42
|
+
code={`import { Button, Card, CardContent, CardHeader, CardTitle } from '@gv-tech/design-system';
|
|
43
|
+
|
|
44
|
+
function MyComponent() {
|
|
45
|
+
return (
|
|
46
|
+
<Card>
|
|
47
|
+
<CardHeader>
|
|
48
|
+
<CardTitle>Welcome</CardTitle>
|
|
49
|
+
</CardHeader>
|
|
50
|
+
<CardContent>
|
|
51
|
+
<Button>Get Started</Button>
|
|
52
|
+
</CardContent>
|
|
53
|
+
</Card>
|
|
54
|
+
);
|
|
55
|
+
}`}
|
|
56
|
+
/>
|
|
57
|
+
</section>
|
|
58
|
+
|
|
59
|
+
<section className="space-y-4">
|
|
60
|
+
<h2 className="text-2xl font-semibold tracking-tight">Features</h2>
|
|
61
|
+
<ul className="space-y-2 text-muted-foreground">
|
|
62
|
+
<li className="flex items-center gap-2">
|
|
63
|
+
<span className="text-green-500">✓</span> 46+ ready-to-use components
|
|
64
|
+
</li>
|
|
65
|
+
<li className="flex items-center gap-2">
|
|
66
|
+
<span className="text-green-500">✓</span> Dark and light mode support
|
|
67
|
+
</li>
|
|
68
|
+
<li className="flex items-center gap-2">
|
|
69
|
+
<span className="text-green-500">✓</span> Fully customizable with CSS variables
|
|
70
|
+
</li>
|
|
71
|
+
<li className="flex items-center gap-2">
|
|
72
|
+
<span className="text-green-500">✓</span> Tree-shakeable for optimal bundle size
|
|
73
|
+
</li>
|
|
74
|
+
<li className="flex items-center gap-2">
|
|
75
|
+
<span className="text-green-500">✓</span> React 18/19 compatible
|
|
76
|
+
</li>
|
|
77
|
+
</ul>
|
|
78
|
+
</section>
|
|
79
|
+
</div>
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export function InstallationPage() {
|
|
84
|
+
return (
|
|
85
|
+
<div className="space-y-8">
|
|
86
|
+
<div className="space-y-2">
|
|
87
|
+
<h1 className="text-3xl font-bold tracking-tight">Installation</h1>
|
|
88
|
+
<p className="text-lg text-muted-foreground">
|
|
89
|
+
Get started with the GV Tech Design System in your React project.
|
|
90
|
+
</p>
|
|
91
|
+
</div>
|
|
92
|
+
|
|
93
|
+
<section className="space-y-4">
|
|
94
|
+
<h2 className="text-2xl font-semibold tracking-tight">Install the package</h2>
|
|
95
|
+
<p className="text-muted-foreground">Install the design system package using your preferred package manager:</p>
|
|
96
|
+
<div className="space-y-2">
|
|
97
|
+
<p className="text-sm font-medium">npm</p>
|
|
98
|
+
<CodeBlock code="npm install @gv-tech/design-system" language="bash" />
|
|
99
|
+
</div>
|
|
100
|
+
<div className="space-y-2">
|
|
101
|
+
<p className="text-sm font-medium">yarn</p>
|
|
102
|
+
<CodeBlock code="yarn add @gv-tech/design-system" language="bash" />
|
|
103
|
+
</div>
|
|
104
|
+
<div className="space-y-2">
|
|
105
|
+
<p className="text-sm font-medium">pnpm</p>
|
|
106
|
+
<CodeBlock code="pnpm add @gv-tech/design-system" language="bash" />
|
|
107
|
+
</div>
|
|
108
|
+
</section>
|
|
109
|
+
|
|
110
|
+
<section className="space-y-4">
|
|
111
|
+
<h2 className="text-2xl font-semibold tracking-tight">Peer Dependencies</h2>
|
|
112
|
+
<p className="text-muted-foreground">Make sure you have the required peer dependencies installed:</p>
|
|
113
|
+
<CodeBlock
|
|
114
|
+
code={`{
|
|
115
|
+
"react": "^18 || ^19",
|
|
116
|
+
"react-dom": "^18 || ^19"
|
|
117
|
+
}`}
|
|
118
|
+
language="json"
|
|
119
|
+
/>
|
|
120
|
+
</section>
|
|
121
|
+
|
|
122
|
+
<section className="space-y-4">
|
|
123
|
+
<h2 className="text-2xl font-semibold tracking-tight">Configure Tailwind CSS</h2>
|
|
124
|
+
<p className="text-muted-foreground">
|
|
125
|
+
The design system uses Tailwind CSS for styling. Add the following to your{' '}
|
|
126
|
+
<code className="text-sm bg-muted px-1.5 py-0.5 rounded">tailwind.config.js</code>:
|
|
127
|
+
</p>
|
|
128
|
+
<CodeBlock
|
|
129
|
+
code={`/** @type {import('tailwindcss').Config} */
|
|
130
|
+
module.exports = {
|
|
131
|
+
darkMode: 'class',
|
|
132
|
+
content: [
|
|
133
|
+
'./src/**/*.{js,ts,jsx,tsx}',
|
|
134
|
+
'./node_modules/@gv-tech/design-system/dist/**/*.js',
|
|
135
|
+
],
|
|
136
|
+
theme: {
|
|
137
|
+
extend: {
|
|
138
|
+
colors: {
|
|
139
|
+
border: 'hsl(var(--border))',
|
|
140
|
+
input: 'hsl(var(--input))',
|
|
141
|
+
ring: 'hsl(var(--ring))',
|
|
142
|
+
background: 'hsl(var(--background))',
|
|
143
|
+
foreground: 'hsl(var(--foreground))',
|
|
144
|
+
primary: {
|
|
145
|
+
DEFAULT: 'hsl(var(--primary))',
|
|
146
|
+
foreground: 'hsl(var(--primary-foreground))',
|
|
147
|
+
},
|
|
148
|
+
secondary: {
|
|
149
|
+
DEFAULT: 'hsl(var(--secondary))',
|
|
150
|
+
foreground: 'hsl(var(--secondary-foreground))',
|
|
151
|
+
},
|
|
152
|
+
destructive: {
|
|
153
|
+
DEFAULT: 'hsl(var(--destructive))',
|
|
154
|
+
foreground: 'hsl(var(--destructive-foreground))',
|
|
155
|
+
},
|
|
156
|
+
muted: {
|
|
157
|
+
DEFAULT: 'hsl(var(--muted))',
|
|
158
|
+
foreground: 'hsl(var(--muted-foreground))',
|
|
159
|
+
},
|
|
160
|
+
accent: {
|
|
161
|
+
DEFAULT: 'hsl(var(--accent))',
|
|
162
|
+
foreground: 'hsl(var(--accent-foreground))',
|
|
163
|
+
},
|
|
164
|
+
card: {
|
|
165
|
+
DEFAULT: 'hsl(var(--card))',
|
|
166
|
+
foreground: 'hsl(var(--card-foreground))',
|
|
167
|
+
},
|
|
168
|
+
},
|
|
169
|
+
borderRadius: {
|
|
170
|
+
lg: 'var(--radius)',
|
|
171
|
+
md: 'calc(var(--radius) - 2px)',
|
|
172
|
+
sm: 'calc(var(--radius) - 4px)',
|
|
173
|
+
},
|
|
174
|
+
},
|
|
175
|
+
},
|
|
176
|
+
}`}
|
|
177
|
+
/>
|
|
178
|
+
</section>
|
|
179
|
+
|
|
180
|
+
<section className="space-y-4">
|
|
181
|
+
<h2 className="text-2xl font-semibold tracking-tight">Add CSS Variables</h2>
|
|
182
|
+
<p className="text-muted-foreground">Add the following CSS variables to your global stylesheet:</p>
|
|
183
|
+
<CodeBlock
|
|
184
|
+
code={`@layer base {
|
|
185
|
+
:root {
|
|
186
|
+
--background: 0 0% 100%;
|
|
187
|
+
--foreground: 222.2 84% 4.9%;
|
|
188
|
+
--card: 0 0% 100%;
|
|
189
|
+
--card-foreground: 222.2 84% 4.9%;
|
|
190
|
+
--popover: 0 0% 100%;
|
|
191
|
+
--popover-foreground: 222.2 84% 4.9%;
|
|
192
|
+
--primary: 222.2 47.4% 11.2%;
|
|
193
|
+
--primary-foreground: 210 40% 98%;
|
|
194
|
+
--secondary: 210 40% 96.1%;
|
|
195
|
+
--secondary-foreground: 222.2 47.4% 11.2%;
|
|
196
|
+
--muted: 210 40% 96.1%;
|
|
197
|
+
--muted-foreground: 215.4 16.3% 46.9%;
|
|
198
|
+
--accent: 210 40% 96.1%;
|
|
199
|
+
--accent-foreground: 222.2 47.4% 11.2%;
|
|
200
|
+
--destructive: 0 84.2% 60.2%;
|
|
201
|
+
--destructive-foreground: 210 40% 98%;
|
|
202
|
+
--border: 214.3 31.8% 91.4%;
|
|
203
|
+
--input: 214.3 31.8% 91.4%;
|
|
204
|
+
--ring: 222.2 84% 4.9%;
|
|
205
|
+
--radius: 0.5rem;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
.dark {
|
|
209
|
+
--background: 222.2 84% 4.9%;
|
|
210
|
+
--foreground: 210 40% 98%;
|
|
211
|
+
--card: 222.2 84% 4.9%;
|
|
212
|
+
--card-foreground: 210 40% 98%;
|
|
213
|
+
--popover: 222.2 84% 4.9%;
|
|
214
|
+
--popover-foreground: 210 40% 98%;
|
|
215
|
+
--primary: 210 40% 98%;
|
|
216
|
+
--primary-foreground: 222.2 47.4% 11.2%;
|
|
217
|
+
--secondary: 217.2 32.6% 17.5%;
|
|
218
|
+
--secondary-foreground: 210 40% 98%;
|
|
219
|
+
--muted: 217.2 32.6% 17.5%;
|
|
220
|
+
--muted-foreground: 215 20.2% 65.1%;
|
|
221
|
+
--accent: 217.2 32.6% 17.5%;
|
|
222
|
+
--accent-foreground: 210 40% 98%;
|
|
223
|
+
--destructive: 0 62.8% 30.6%;
|
|
224
|
+
--destructive-foreground: 210 40% 98%;
|
|
225
|
+
--border: 217.2 32.6% 17.5%;
|
|
226
|
+
--input: 217.2 32.6% 17.5%;
|
|
227
|
+
--ring: 212.7 26.8% 83.9%;
|
|
228
|
+
}
|
|
229
|
+
}`}
|
|
230
|
+
language="css"
|
|
231
|
+
/>
|
|
232
|
+
</section>
|
|
233
|
+
|
|
234
|
+
<section className="space-y-4">
|
|
235
|
+
<h2 className="text-2xl font-semibold tracking-tight">Start Using Components</h2>
|
|
236
|
+
<p className="text-muted-foreground">Now you can import and use components from the design system:</p>
|
|
237
|
+
<CodeBlock
|
|
238
|
+
code={`import { Button } from '@gv-tech/design-system';
|
|
239
|
+
|
|
240
|
+
export default function App() {
|
|
241
|
+
return (
|
|
242
|
+
<Button variant="default">
|
|
243
|
+
Click me
|
|
244
|
+
</Button>
|
|
245
|
+
);
|
|
246
|
+
}`}
|
|
247
|
+
/>
|
|
248
|
+
</section>
|
|
249
|
+
</div>
|
|
250
|
+
);
|
|
251
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
|
|
2
|
+
import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/components/ui/accordion';
|
|
3
|
+
|
|
4
|
+
export function AccordionDocs() {
|
|
5
|
+
return (
|
|
6
|
+
<ComponentSection
|
|
7
|
+
title="Accordion"
|
|
8
|
+
description="A vertically stacked set of interactive headings that each reveal a section of content."
|
|
9
|
+
>
|
|
10
|
+
<ComponentShowcase
|
|
11
|
+
title="Default"
|
|
12
|
+
description="A basic accordion component."
|
|
13
|
+
code={`<Accordion type="single" collapsible className="w-full">
|
|
14
|
+
<AccordionItem value="item-1">
|
|
15
|
+
<AccordionTrigger>Is it accessible?</AccordionTrigger>
|
|
16
|
+
<AccordionContent>
|
|
17
|
+
Yes. It adheres to the WAI-ARIA design pattern.
|
|
18
|
+
</AccordionContent>
|
|
19
|
+
</AccordionItem>
|
|
20
|
+
<AccordionItem value="item-2">
|
|
21
|
+
<AccordionTrigger>Is it styled?</AccordionTrigger>
|
|
22
|
+
<AccordionContent>
|
|
23
|
+
Yes. It comes with default styles.
|
|
24
|
+
</AccordionContent>
|
|
25
|
+
</AccordionItem>
|
|
26
|
+
<AccordionItem value="item-3">
|
|
27
|
+
<AccordionTrigger>Is it animated?</AccordionTrigger>
|
|
28
|
+
<AccordionContent>
|
|
29
|
+
Yes. It's animated by default.
|
|
30
|
+
</AccordionContent>
|
|
31
|
+
</AccordionItem>
|
|
32
|
+
</Accordion>`}
|
|
33
|
+
>
|
|
34
|
+
<Accordion type="single" collapsible className="w-full max-w-md">
|
|
35
|
+
<AccordionItem value="item-1">
|
|
36
|
+
<AccordionTrigger>Is it accessible?</AccordionTrigger>
|
|
37
|
+
<AccordionContent>Yes. It adheres to the WAI-ARIA design pattern.</AccordionContent>
|
|
38
|
+
</AccordionItem>
|
|
39
|
+
<AccordionItem value="item-2">
|
|
40
|
+
<AccordionTrigger>Is it styled?</AccordionTrigger>
|
|
41
|
+
<AccordionContent>
|
|
42
|
+
Yes. It comes with default styles that matches the other components' aesthetic.
|
|
43
|
+
</AccordionContent>
|
|
44
|
+
</AccordionItem>
|
|
45
|
+
<AccordionItem value="item-3">
|
|
46
|
+
<AccordionTrigger>Is it animated?</AccordionTrigger>
|
|
47
|
+
<AccordionContent>
|
|
48
|
+
Yes. It's animated by default, but you can disable it if you prefer.
|
|
49
|
+
</AccordionContent>
|
|
50
|
+
</AccordionItem>
|
|
51
|
+
</Accordion>
|
|
52
|
+
</ComponentShowcase>
|
|
53
|
+
</ComponentSection>
|
|
54
|
+
);
|
|
55
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
|
|
2
|
+
import {
|
|
3
|
+
AlertDialog,
|
|
4
|
+
AlertDialogAction,
|
|
5
|
+
AlertDialogCancel,
|
|
6
|
+
AlertDialogContent,
|
|
7
|
+
AlertDialogDescription,
|
|
8
|
+
AlertDialogFooter,
|
|
9
|
+
AlertDialogHeader,
|
|
10
|
+
AlertDialogTitle,
|
|
11
|
+
AlertDialogTrigger,
|
|
12
|
+
} from '@/components/ui/alert-dialog';
|
|
13
|
+
import { Button } from '@/components/ui/button';
|
|
14
|
+
|
|
15
|
+
export function AlertDialogDocs() {
|
|
16
|
+
return (
|
|
17
|
+
<ComponentSection
|
|
18
|
+
title="Alert Dialog"
|
|
19
|
+
description="A modal dialog that interrupts the user with important content and expects a response."
|
|
20
|
+
>
|
|
21
|
+
<ComponentShowcase
|
|
22
|
+
title="Default"
|
|
23
|
+
description="An alert dialog for confirming destructive actions."
|
|
24
|
+
code={`<AlertDialog>
|
|
25
|
+
<AlertDialogTrigger asChild>
|
|
26
|
+
<Button variant="destructive">Delete Account</Button>
|
|
27
|
+
</AlertDialogTrigger>
|
|
28
|
+
<AlertDialogContent>
|
|
29
|
+
<AlertDialogHeader>
|
|
30
|
+
<AlertDialogTitle>Are you absolutely sure?</AlertDialogTitle>
|
|
31
|
+
<AlertDialogDescription>
|
|
32
|
+
This action cannot be undone. This will permanently delete your account.
|
|
33
|
+
</AlertDialogDescription>
|
|
34
|
+
</AlertDialogHeader>
|
|
35
|
+
<AlertDialogFooter>
|
|
36
|
+
<AlertDialogCancel>Cancel</AlertDialogCancel>
|
|
37
|
+
<AlertDialogAction>Continue</AlertDialogAction>
|
|
38
|
+
</AlertDialogFooter>
|
|
39
|
+
</AlertDialogContent>
|
|
40
|
+
</AlertDialog>`}
|
|
41
|
+
>
|
|
42
|
+
<AlertDialog>
|
|
43
|
+
<AlertDialogTrigger asChild>
|
|
44
|
+
<Button variant="destructive">Delete Account</Button>
|
|
45
|
+
</AlertDialogTrigger>
|
|
46
|
+
<AlertDialogContent>
|
|
47
|
+
<AlertDialogHeader>
|
|
48
|
+
<AlertDialogTitle>Are you absolutely sure?</AlertDialogTitle>
|
|
49
|
+
<AlertDialogDescription>
|
|
50
|
+
This action cannot be undone. This will permanently delete your account and remove your data from our
|
|
51
|
+
servers.
|
|
52
|
+
</AlertDialogDescription>
|
|
53
|
+
</AlertDialogHeader>
|
|
54
|
+
<AlertDialogFooter>
|
|
55
|
+
<AlertDialogCancel>Cancel</AlertDialogCancel>
|
|
56
|
+
<AlertDialogAction>Continue</AlertDialogAction>
|
|
57
|
+
</AlertDialogFooter>
|
|
58
|
+
</AlertDialogContent>
|
|
59
|
+
</AlertDialog>
|
|
60
|
+
</ComponentShowcase>
|
|
61
|
+
</ComponentSection>
|
|
62
|
+
);
|
|
63
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
|
|
2
|
+
import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert';
|
|
3
|
+
import { AlertCircle, Terminal } from 'lucide-react';
|
|
4
|
+
|
|
5
|
+
export function AlertDocs() {
|
|
6
|
+
return (
|
|
7
|
+
<ComponentSection title="Alert" description="Displays a callout for user attention.">
|
|
8
|
+
<ComponentShowcase
|
|
9
|
+
title="Default"
|
|
10
|
+
description="The default alert style."
|
|
11
|
+
code={`<Alert>
|
|
12
|
+
<Terminal className="h-4 w-4" />
|
|
13
|
+
<AlertTitle>Heads up!</AlertTitle>
|
|
14
|
+
<AlertDescription>
|
|
15
|
+
You can add components to your app using the cli.
|
|
16
|
+
</AlertDescription>
|
|
17
|
+
</Alert>`}
|
|
18
|
+
>
|
|
19
|
+
<Alert className="max-w-lg">
|
|
20
|
+
<Terminal className="h-4 w-4" />
|
|
21
|
+
<AlertTitle>Heads up!</AlertTitle>
|
|
22
|
+
<AlertDescription>You can add components to your app using the cli.</AlertDescription>
|
|
23
|
+
</Alert>
|
|
24
|
+
</ComponentShowcase>
|
|
25
|
+
|
|
26
|
+
<ComponentShowcase
|
|
27
|
+
title="Destructive"
|
|
28
|
+
description="Use the destructive variant for error messages."
|
|
29
|
+
code={`<Alert variant="destructive">
|
|
30
|
+
<AlertCircle className="h-4 w-4" />
|
|
31
|
+
<AlertTitle>Error</AlertTitle>
|
|
32
|
+
<AlertDescription>
|
|
33
|
+
Your session has expired. Please log in again.
|
|
34
|
+
</AlertDescription>
|
|
35
|
+
</Alert>`}
|
|
36
|
+
>
|
|
37
|
+
<Alert variant="destructive" className="max-w-lg">
|
|
38
|
+
<AlertCircle className="h-4 w-4" />
|
|
39
|
+
<AlertTitle>Error</AlertTitle>
|
|
40
|
+
<AlertDescription>Your session has expired. Please log in again.</AlertDescription>
|
|
41
|
+
</Alert>
|
|
42
|
+
</ComponentShowcase>
|
|
43
|
+
</ComponentSection>
|
|
44
|
+
);
|
|
45
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
|
|
2
|
+
import { AspectRatio } from '@/components/ui/aspect-ratio';
|
|
3
|
+
|
|
4
|
+
export function AspectRatioDocs() {
|
|
5
|
+
return (
|
|
6
|
+
<ComponentSection title="Aspect Ratio" description="Displays content within a desired ratio.">
|
|
7
|
+
<ComponentShowcase
|
|
8
|
+
title="16:9"
|
|
9
|
+
description="A 16:9 aspect ratio container."
|
|
10
|
+
code={`<div className="w-[450px]">
|
|
11
|
+
<AspectRatio ratio={16 / 9} className="bg-muted">
|
|
12
|
+
<img
|
|
13
|
+
src="https://images.unsplash.com/photo-1588345921523-c2dcdb7f1dcd?w=800"
|
|
14
|
+
alt="Photo by Drew Beamer"
|
|
15
|
+
className="h-full w-full rounded-md object-cover"
|
|
16
|
+
/>
|
|
17
|
+
</AspectRatio>
|
|
18
|
+
</div>`}
|
|
19
|
+
>
|
|
20
|
+
<div className="w-[450px]">
|
|
21
|
+
<AspectRatio ratio={16 / 9} className="bg-muted">
|
|
22
|
+
<img
|
|
23
|
+
src="https://images.unsplash.com/photo-1588345921523-c2dcdb7f1dcd?w=800"
|
|
24
|
+
alt="Photo by Drew Beamer"
|
|
25
|
+
className="h-full w-full rounded-md object-cover"
|
|
26
|
+
/>
|
|
27
|
+
</AspectRatio>
|
|
28
|
+
</div>
|
|
29
|
+
</ComponentShowcase>
|
|
30
|
+
|
|
31
|
+
<ComponentShowcase
|
|
32
|
+
title="Square (1:1)"
|
|
33
|
+
description="A square aspect ratio container."
|
|
34
|
+
code={`<div className="w-[200px]">
|
|
35
|
+
<AspectRatio ratio={1 / 1} className="bg-muted rounded-md flex items-center justify-center">
|
|
36
|
+
<span className="text-muted-foreground">1:1</span>
|
|
37
|
+
</AspectRatio>
|
|
38
|
+
</div>`}
|
|
39
|
+
>
|
|
40
|
+
<div className="w-[200px]">
|
|
41
|
+
<AspectRatio ratio={1 / 1} className="bg-muted rounded-md flex items-center justify-center">
|
|
42
|
+
<span className="text-muted-foreground">1:1</span>
|
|
43
|
+
</AspectRatio>
|
|
44
|
+
</div>
|
|
45
|
+
</ComponentShowcase>
|
|
46
|
+
|
|
47
|
+
<ComponentShowcase
|
|
48
|
+
title="4:3"
|
|
49
|
+
description="A 4:3 aspect ratio container."
|
|
50
|
+
code={`<div className="w-[300px]">
|
|
51
|
+
<AspectRatio ratio={4 / 3} className="bg-muted rounded-md flex items-center justify-center">
|
|
52
|
+
<span className="text-muted-foreground">4:3</span>
|
|
53
|
+
</AspectRatio>
|
|
54
|
+
</div>`}
|
|
55
|
+
>
|
|
56
|
+
<div className="w-[300px]">
|
|
57
|
+
<AspectRatio ratio={4 / 3} className="bg-muted rounded-md flex items-center justify-center">
|
|
58
|
+
<span className="text-muted-foreground">4:3</span>
|
|
59
|
+
</AspectRatio>
|
|
60
|
+
</div>
|
|
61
|
+
</ComponentShowcase>
|
|
62
|
+
</ComponentSection>
|
|
63
|
+
);
|
|
64
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
|
|
2
|
+
import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar';
|
|
3
|
+
|
|
4
|
+
export function AvatarDocs() {
|
|
5
|
+
return (
|
|
6
|
+
<ComponentSection title="Avatar" description="An image element with a fallback for representing the user.">
|
|
7
|
+
<ComponentShowcase
|
|
8
|
+
title="Default"
|
|
9
|
+
description="An avatar with an image."
|
|
10
|
+
code={`<Avatar>
|
|
11
|
+
<AvatarImage src="https://github.com/shadcn.png" alt="@shadcn" />
|
|
12
|
+
<AvatarFallback>CN</AvatarFallback>
|
|
13
|
+
</Avatar>`}
|
|
14
|
+
>
|
|
15
|
+
<Avatar>
|
|
16
|
+
<AvatarImage src="https://github.com/shadcn.png" alt="@shadcn" />
|
|
17
|
+
<AvatarFallback>CN</AvatarFallback>
|
|
18
|
+
</Avatar>
|
|
19
|
+
</ComponentShowcase>
|
|
20
|
+
|
|
21
|
+
<ComponentShowcase
|
|
22
|
+
title="Fallback"
|
|
23
|
+
description="When no image is available, the fallback is displayed."
|
|
24
|
+
code={`<Avatar>
|
|
25
|
+
<AvatarFallback>JD</AvatarFallback>
|
|
26
|
+
</Avatar>`}
|
|
27
|
+
>
|
|
28
|
+
<Avatar>
|
|
29
|
+
<AvatarFallback>JD</AvatarFallback>
|
|
30
|
+
</Avatar>
|
|
31
|
+
</ComponentShowcase>
|
|
32
|
+
</ComponentSection>
|
|
33
|
+
);
|
|
34
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
|
|
2
|
+
import { Badge } from '@/components/ui/badge';
|
|
3
|
+
|
|
4
|
+
export function BadgeDocs() {
|
|
5
|
+
return (
|
|
6
|
+
<ComponentSection title="Badge" description="Displays a badge or a component that looks like a badge.">
|
|
7
|
+
<ComponentShowcase
|
|
8
|
+
title="Variants"
|
|
9
|
+
description="Badges come in 4 different variants."
|
|
10
|
+
code={`<Badge>Default</Badge>
|
|
11
|
+
<Badge variant="secondary">Secondary</Badge>
|
|
12
|
+
<Badge variant="destructive">Destructive</Badge>
|
|
13
|
+
<Badge variant="outline">Outline</Badge>`}
|
|
14
|
+
>
|
|
15
|
+
<Badge>Default</Badge>
|
|
16
|
+
<Badge variant="secondary">Secondary</Badge>
|
|
17
|
+
<Badge variant="destructive">Destructive</Badge>
|
|
18
|
+
<Badge variant="outline">Outline</Badge>
|
|
19
|
+
</ComponentShowcase>
|
|
20
|
+
|
|
21
|
+
<ComponentShowcase
|
|
22
|
+
title="Use Cases"
|
|
23
|
+
description="Common use cases for badges."
|
|
24
|
+
code={`<Badge>New</Badge>
|
|
25
|
+
<Badge variant="secondary">Beta</Badge>
|
|
26
|
+
<Badge variant="destructive">Error</Badge>
|
|
27
|
+
<Badge variant="outline">v1.0.0</Badge>`}
|
|
28
|
+
>
|
|
29
|
+
<Badge>New</Badge>
|
|
30
|
+
<Badge variant="secondary">Beta</Badge>
|
|
31
|
+
<Badge variant="destructive">Error</Badge>
|
|
32
|
+
<Badge variant="outline">v1.0.0</Badge>
|
|
33
|
+
</ComponentShowcase>
|
|
34
|
+
</ComponentSection>
|
|
35
|
+
);
|
|
36
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { ComponentSection, ComponentShowcase } from '@/components/docs/ComponentShowcase';
|
|
2
|
+
import {
|
|
3
|
+
Breadcrumb,
|
|
4
|
+
BreadcrumbItem,
|
|
5
|
+
BreadcrumbLink,
|
|
6
|
+
BreadcrumbList,
|
|
7
|
+
BreadcrumbPage,
|
|
8
|
+
BreadcrumbSeparator,
|
|
9
|
+
} from '@/components/ui/breadcrumb';
|
|
10
|
+
|
|
11
|
+
export function BreadcrumbDocs() {
|
|
12
|
+
return (
|
|
13
|
+
<ComponentSection
|
|
14
|
+
title="Breadcrumb"
|
|
15
|
+
description="Displays the path to the current resource using a hierarchy of links."
|
|
16
|
+
>
|
|
17
|
+
<ComponentShowcase
|
|
18
|
+
title="Default"
|
|
19
|
+
description="A basic breadcrumb navigation."
|
|
20
|
+
code={`<Breadcrumb>
|
|
21
|
+
<BreadcrumbList>
|
|
22
|
+
<BreadcrumbItem>
|
|
23
|
+
<BreadcrumbLink href="/">Home</BreadcrumbLink>
|
|
24
|
+
</BreadcrumbItem>
|
|
25
|
+
<BreadcrumbSeparator />
|
|
26
|
+
<BreadcrumbItem>
|
|
27
|
+
<BreadcrumbLink href="/components">Components</BreadcrumbLink>
|
|
28
|
+
</BreadcrumbItem>
|
|
29
|
+
<BreadcrumbSeparator />
|
|
30
|
+
<BreadcrumbItem>
|
|
31
|
+
<BreadcrumbPage>Breadcrumb</BreadcrumbPage>
|
|
32
|
+
</BreadcrumbItem>
|
|
33
|
+
</BreadcrumbList>
|
|
34
|
+
</Breadcrumb>`}
|
|
35
|
+
>
|
|
36
|
+
<Breadcrumb>
|
|
37
|
+
<BreadcrumbList>
|
|
38
|
+
<BreadcrumbItem>
|
|
39
|
+
<BreadcrumbLink href="/">Home</BreadcrumbLink>
|
|
40
|
+
</BreadcrumbItem>
|
|
41
|
+
<BreadcrumbSeparator />
|
|
42
|
+
<BreadcrumbItem>
|
|
43
|
+
<BreadcrumbLink href="/components">Components</BreadcrumbLink>
|
|
44
|
+
</BreadcrumbItem>
|
|
45
|
+
<BreadcrumbSeparator />
|
|
46
|
+
<BreadcrumbItem>
|
|
47
|
+
<BreadcrumbPage>Breadcrumb</BreadcrumbPage>
|
|
48
|
+
</BreadcrumbItem>
|
|
49
|
+
</BreadcrumbList>
|
|
50
|
+
</Breadcrumb>
|
|
51
|
+
</ComponentShowcase>
|
|
52
|
+
</ComponentSection>
|
|
53
|
+
);
|
|
54
|
+
}
|