@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
package/eslint.config.mjs
CHANGED
|
@@ -1,20 +1,41 @@
|
|
|
1
|
-
import globals from 'globals';
|
|
2
1
|
import js from '@eslint/js';
|
|
3
2
|
import ts from '@typescript-eslint/eslint-plugin';
|
|
4
3
|
import tsParser from '@typescript-eslint/parser';
|
|
5
|
-
import prettier from 'eslint-plugin-prettier';
|
|
6
4
|
import prettierConfig from 'eslint-config-prettier';
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
import prettier from 'eslint-plugin-prettier';
|
|
6
|
+
import globals from 'globals';
|
|
7
|
+
|
|
8
|
+
// File patterns for JS/TS files only
|
|
9
|
+
const jsFiles = ['**/*.js', '**/*.jsx', '**/*.mjs', '**/*.cjs'];
|
|
10
|
+
const tsFiles = ['**/*.ts', '**/*.tsx', '**/*.mts', '**/*.cts'];
|
|
11
|
+
const allJsTsFiles = [...jsFiles, ...tsFiles];
|
|
11
12
|
|
|
12
13
|
export default [
|
|
13
14
|
{
|
|
14
|
-
ignores
|
|
15
|
+
// Global ignores - at the top of the array
|
|
16
|
+
ignores: [
|
|
17
|
+
'**/node_modules/**',
|
|
18
|
+
'**/.yarn/**',
|
|
19
|
+
'**/dist/**',
|
|
20
|
+
'**/dist-site/**',
|
|
21
|
+
'**/storybook-static/**',
|
|
22
|
+
'**/coverage/**',
|
|
23
|
+
'**/public/**',
|
|
24
|
+
'**/.github/**',
|
|
25
|
+
'**/.vscode/**',
|
|
26
|
+
'**/.husky/**',
|
|
27
|
+
'eslint.config.mjs',
|
|
28
|
+
'**/.*', // Ignore all hidden files
|
|
29
|
+
'**/*.json',
|
|
30
|
+
'**/*.md',
|
|
31
|
+
'**/*.yml',
|
|
32
|
+
'**/*.log',
|
|
33
|
+
],
|
|
15
34
|
},
|
|
16
|
-
js.configs.recommended,
|
|
17
35
|
{
|
|
36
|
+
// Base config for all JS/TS files
|
|
37
|
+
files: allJsTsFiles,
|
|
38
|
+
...js.configs.recommended,
|
|
18
39
|
linterOptions: {
|
|
19
40
|
noInlineConfig: true,
|
|
20
41
|
reportUnusedDisableDirectives: true,
|
|
@@ -31,7 +52,8 @@ export default [
|
|
|
31
52
|
},
|
|
32
53
|
},
|
|
33
54
|
{
|
|
34
|
-
|
|
55
|
+
// TypeScript-specific config
|
|
56
|
+
files: tsFiles,
|
|
35
57
|
languageOptions: {
|
|
36
58
|
parser: tsParser,
|
|
37
59
|
},
|
|
@@ -42,48 +64,17 @@ export default [
|
|
|
42
64
|
...ts.configs.base.rules,
|
|
43
65
|
...ts.configs['eslint-recommended'].rules,
|
|
44
66
|
...ts.configs.recommended.rules,
|
|
45
|
-
'@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_', varsIgnorePattern: '^_' }],
|
|
46
67
|
},
|
|
47
68
|
},
|
|
48
69
|
{
|
|
49
|
-
files:
|
|
50
|
-
languageOptions: {
|
|
51
|
-
parserOptions: {
|
|
52
|
-
ecmaVersion: 'latest',
|
|
53
|
-
sourceType: 'module',
|
|
54
|
-
ecmaFeatures: {
|
|
55
|
-
jsx: true,
|
|
56
|
-
},
|
|
57
|
-
},
|
|
58
|
-
},
|
|
59
|
-
settings: {
|
|
60
|
-
react: {
|
|
61
|
-
version: 'detect',
|
|
62
|
-
},
|
|
63
|
-
},
|
|
64
|
-
plugins: {
|
|
65
|
-
react,
|
|
66
|
-
'jsx-a11y': jsxA11y,
|
|
67
|
-
'react-hooks': reactHooks,
|
|
68
|
-
},
|
|
70
|
+
files: jsFiles,
|
|
69
71
|
rules: {
|
|
70
72
|
...js.configs.recommended.rules,
|
|
71
|
-
...react.configs.recommended.rules,
|
|
72
|
-
...jsxA11y.configs.recommended.rules,
|
|
73
|
-
'react-hooks/rules-of-hooks': 'error',
|
|
74
|
-
'react-hooks/exhaustive-deps': 'warn',
|
|
75
|
-
},
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
files: ['**/*.stories.@(js|jsx|ts|tsx|mdx)'],
|
|
79
|
-
plugins: {
|
|
80
|
-
storybook: storybook,
|
|
81
|
-
},
|
|
82
|
-
rules: {
|
|
83
|
-
...storybook.configs.recommended.rules,
|
|
84
73
|
},
|
|
85
74
|
},
|
|
86
75
|
{
|
|
76
|
+
// Prettier config for all JS/TS files
|
|
77
|
+
files: allJsTsFiles,
|
|
87
78
|
plugins: {
|
|
88
79
|
prettier: prettier,
|
|
89
80
|
},
|
package/index.html
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
|
+
<title>GV Tech Design System Playground</title>
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<div id="root"></div>
|
|
11
|
+
<script type="module" src="/src/main.tsx"></script>
|
|
12
|
+
</body>
|
|
13
|
+
</html>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gv-tech/design-system",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Garcia Ventures react design system",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Eric N. Garcia <eng618@garciaericn.com>",
|
|
@@ -8,97 +8,120 @@
|
|
|
8
8
|
"module": "dist/index.es.js",
|
|
9
9
|
"types": "dist/index.d.ts",
|
|
10
10
|
"repository": "git@github.com:Garcia-Ventures/gvtech-design.git",
|
|
11
|
-
"publishConfig": {
|
|
12
|
-
"access": "public",
|
|
13
|
-
"provenance": true
|
|
14
|
-
},
|
|
15
|
-
"engines": {
|
|
16
|
-
"node": ">=20"
|
|
17
|
-
},
|
|
18
11
|
"scripts": {
|
|
19
|
-
"build": "tsc -p tsconfig.build.json && vite build",
|
|
20
|
-
"build
|
|
21
|
-
"build
|
|
22
|
-
"dev": "vite
|
|
12
|
+
"build": "yarn build:registry && tsc -p tsconfig.build.json && VITE_LIB=true vite build",
|
|
13
|
+
"build:registry": "tsx scripts/build-registry.ts",
|
|
14
|
+
"build:site": "yarn build:registry && vite build",
|
|
15
|
+
"dev": "vite",
|
|
23
16
|
"format": "prettier --write .",
|
|
24
17
|
"format:ci": "prettier --check .",
|
|
25
18
|
"lint": "eslint . --cache",
|
|
26
19
|
"lint:fix": "eslint . --cache --fix",
|
|
27
20
|
"lint:report": "eslint . --cache -o ./eslintReport.html -f html",
|
|
28
21
|
"prepare": "husky",
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"serve": "yarn build-storybook && yarn dlx serve storybook-static -l 6006",
|
|
22
|
+
"setup:ui": "tsx scripts/import-all-shadcn.ts",
|
|
23
|
+
"start": "vite",
|
|
32
24
|
"test": "vitest",
|
|
33
|
-
"test:ci": "CI=true vitest --run --reporter=dot",
|
|
25
|
+
"test:ci": "CI=true vitest --run --reporter=dot --passWithNoTests",
|
|
34
26
|
"test:watch": "vitest --watch",
|
|
35
|
-
"test-storybook": "test-storybook",
|
|
36
|
-
"test-storybook:ci": "concurrently -k -s first -n \"SB,TEST\" \"yarn dlx serve storybook-static -p 6006\" \"wait-on http://127.0.0.1:6006 && test-storybook --url http://127.0.0.1:6006\"",
|
|
37
27
|
"validate": "node ./scripts/validate.js",
|
|
38
28
|
"validate:fix": "node ./scripts/validate.js --fix"
|
|
39
29
|
},
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"react": "^
|
|
44
|
-
"react-
|
|
45
|
-
"react-
|
|
46
|
-
"
|
|
30
|
+
"dependencies": {
|
|
31
|
+
"@hookform/resolvers": "^5.2.2",
|
|
32
|
+
"@radix-ui/react-accordion": "^1.2.12",
|
|
33
|
+
"@radix-ui/react-alert-dialog": "^1.1.15",
|
|
34
|
+
"@radix-ui/react-aspect-ratio": "^1.1.8",
|
|
35
|
+
"@radix-ui/react-avatar": "^1.1.11",
|
|
36
|
+
"@radix-ui/react-checkbox": "^1.3.3",
|
|
37
|
+
"@radix-ui/react-collapsible": "^1.1.12",
|
|
38
|
+
"@radix-ui/react-context-menu": "^2.2.16",
|
|
39
|
+
"@radix-ui/react-dialog": "^1.1.15",
|
|
40
|
+
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
|
41
|
+
"@radix-ui/react-hover-card": "^1.1.15",
|
|
42
|
+
"@radix-ui/react-label": "^2.1.8",
|
|
43
|
+
"@radix-ui/react-menubar": "^1.1.16",
|
|
44
|
+
"@radix-ui/react-navigation-menu": "^1.2.14",
|
|
45
|
+
"@radix-ui/react-popover": "^1.1.15",
|
|
46
|
+
"@radix-ui/react-progress": "^1.1.8",
|
|
47
|
+
"@radix-ui/react-radio-group": "^1.3.8",
|
|
48
|
+
"@radix-ui/react-scroll-area": "^1.2.10",
|
|
49
|
+
"@radix-ui/react-select": "^2.2.6",
|
|
50
|
+
"@radix-ui/react-separator": "^1.1.8",
|
|
51
|
+
"@radix-ui/react-slider": "^1.3.6",
|
|
52
|
+
"@radix-ui/react-slot": "^1.2.4",
|
|
53
|
+
"@radix-ui/react-switch": "^1.2.6",
|
|
54
|
+
"@radix-ui/react-tabs": "^1.1.13",
|
|
55
|
+
"@radix-ui/react-toast": "^1.2.15",
|
|
56
|
+
"@radix-ui/react-toggle": "^1.1.10",
|
|
57
|
+
"@radix-ui/react-toggle-group": "^1.1.11",
|
|
58
|
+
"@radix-ui/react-tooltip": "^1.2.8",
|
|
59
|
+
"@tailwindcss/postcss": "4",
|
|
60
|
+
"class-variance-authority": "^0.7.1",
|
|
61
|
+
"clsx": "^2.1.1",
|
|
62
|
+
"cmdk": "^1.1.1",
|
|
63
|
+
"date-fns": "^4.1.0",
|
|
64
|
+
"embla-carousel-react": "^8.6.0",
|
|
65
|
+
"lucide-react": "^0.563.0",
|
|
66
|
+
"next-themes": "^0.4.6",
|
|
67
|
+
"react-day-picker": "^9.13.0",
|
|
68
|
+
"react-hook-form": "^7.71.1",
|
|
69
|
+
"react-resizable-panels": "^4.6.0",
|
|
70
|
+
"recharts": "2.15.4",
|
|
71
|
+
"sonner": "^2.0.7",
|
|
72
|
+
"tailwind-merge": "^3.4.0",
|
|
73
|
+
"vaul": "^1.1.2",
|
|
74
|
+
"zod": "^4.3.6"
|
|
47
75
|
},
|
|
48
76
|
"devDependencies": {
|
|
49
|
-
"@
|
|
50
|
-
"@babel/core": "^7.29.0",
|
|
51
|
-
"@babel/preset-env": "^7.29.0",
|
|
52
|
-
"@babel/preset-react": "^7.28.5",
|
|
53
|
-
"@babel/preset-typescript": "^7.28.5",
|
|
54
|
-
"@eng618/prettier-config": "^2.5.2",
|
|
77
|
+
"@eng618/prettier-config": "^2.5.3",
|
|
55
78
|
"@eslint/js": "^9.39.2",
|
|
56
|
-
"@mdx-js/react": "^3.1.1",
|
|
57
|
-
"@storybook/addon-a11y": "10.2.3",
|
|
58
|
-
"@storybook/addon-docs": "10.2.3",
|
|
59
|
-
"@storybook/addon-links": "10.2.3",
|
|
60
|
-
"@storybook/builder-vite": "10.2.3",
|
|
61
|
-
"@storybook/cli": "10.2.3",
|
|
62
|
-
"@storybook/jest": "^0.2.3",
|
|
63
|
-
"@storybook/react-vite": "10.2.3",
|
|
64
|
-
"@storybook/test-runner": "^0.24.2",
|
|
65
|
-
"@storybook/testing-library": "^0.2.2",
|
|
66
79
|
"@testing-library/dom": "^10.4.1",
|
|
67
80
|
"@testing-library/jest-dom": "^6.9.1",
|
|
68
81
|
"@testing-library/react": "^16.3.2",
|
|
69
82
|
"@testing-library/user-event": "^14.6.1",
|
|
70
|
-
"@types/
|
|
83
|
+
"@types/node": "^25.2.0",
|
|
84
|
+
"@types/react": "^19.2.13",
|
|
71
85
|
"@types/react-dom": "^19.2.3",
|
|
72
86
|
"@typescript-eslint/eslint-plugin": "^8.54.0",
|
|
73
87
|
"@typescript-eslint/parser": "^8.54.0",
|
|
74
|
-
"@vitejs/plugin-react": "
|
|
88
|
+
"@vitejs/plugin-react-swc": "^4.2.3",
|
|
75
89
|
"axe-core": "^4.11.1",
|
|
76
|
-
"babel-loader": "^10.0.0",
|
|
77
|
-
"concurrently": "^9.2.1",
|
|
78
90
|
"eslint": "^9.39.2",
|
|
79
91
|
"eslint-config-prettier": "^10.1.8",
|
|
80
92
|
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
81
93
|
"eslint-plugin-prettier": "^5.5.5",
|
|
82
94
|
"eslint-plugin-react": "^7.37.5",
|
|
83
95
|
"eslint-plugin-react-hooks": "^7.0.1",
|
|
84
|
-
"eslint-plugin-storybook": "10.2.3",
|
|
85
96
|
"globals": "^17.3.0",
|
|
86
97
|
"husky": "^9.1.7",
|
|
87
98
|
"jsdom": "^27.4.0",
|
|
88
99
|
"lint-staged": "^16.2.7",
|
|
89
|
-
"
|
|
100
|
+
"postcss": "^8.5.6",
|
|
90
101
|
"prettier": "^3.8.1",
|
|
102
|
+
"prettier-plugin-organize-imports": "^4.3.0",
|
|
91
103
|
"prop-types": "^15.8.1",
|
|
92
104
|
"react": "^19.2.4",
|
|
93
|
-
"react-docgen-typescript": "^2.4.0",
|
|
94
105
|
"react-dom": "^19.2.4",
|
|
95
106
|
"react-is": "^19.2.4",
|
|
96
|
-
"
|
|
97
|
-
"
|
|
107
|
+
"tailwindcss": "4",
|
|
108
|
+
"tsx": "^4.21.0",
|
|
98
109
|
"typescript": "^5.9.3",
|
|
99
110
|
"vite": "7.3.1",
|
|
100
|
-
"vitest": "^4.0.18"
|
|
101
|
-
|
|
111
|
+
"vitest": "^4.0.18"
|
|
112
|
+
},
|
|
113
|
+
"peerDependencies": {
|
|
114
|
+
"prop-types": "^15.8.0",
|
|
115
|
+
"react": "^18 || ^19",
|
|
116
|
+
"react-dom": "^18 || ^19",
|
|
117
|
+
"react-is": "^16 || ^17 || ^18 || ^19"
|
|
118
|
+
},
|
|
119
|
+
"engines": {
|
|
120
|
+
"node": ">=20"
|
|
121
|
+
},
|
|
122
|
+
"publishConfig": {
|
|
123
|
+
"access": "public",
|
|
124
|
+
"provenance": true
|
|
102
125
|
},
|
|
103
126
|
"lint-staged": {
|
|
104
127
|
"*.(js|ts|mjs|cjs)?(x)": [
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
|
|
4
|
+
const REGISTRY_PATH = path.join(process.cwd(), 'public/registry');
|
|
5
|
+
const COMPONENTS_UI_PATH = path.join(process.cwd(), 'src/components/ui');
|
|
6
|
+
|
|
7
|
+
if (!fs.existsSync(REGISTRY_PATH)) {
|
|
8
|
+
fs.mkdirSync(REGISTRY_PATH, { recursive: true });
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
function buildRegistry() {
|
|
12
|
+
const components = fs
|
|
13
|
+
.readdirSync(COMPONENTS_UI_PATH)
|
|
14
|
+
.filter((file) => file.endsWith('.tsx') && !file.includes('.stories.'));
|
|
15
|
+
|
|
16
|
+
const registryIndex = components.map((file) => {
|
|
17
|
+
const name = path.basename(file, '.tsx');
|
|
18
|
+
const content = fs.readFileSync(path.join(COMPONENTS_UI_PATH, file), 'utf8');
|
|
19
|
+
|
|
20
|
+
const componentJson = {
|
|
21
|
+
name,
|
|
22
|
+
type: 'registry:ui',
|
|
23
|
+
dependencies: [], // You can manually add dependencies here if needed
|
|
24
|
+
registryDependencies: [],
|
|
25
|
+
files: [
|
|
26
|
+
{
|
|
27
|
+
path: `ui/${file}`,
|
|
28
|
+
content,
|
|
29
|
+
type: 'registry:ui',
|
|
30
|
+
},
|
|
31
|
+
],
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
fs.writeFileSync(path.join(REGISTRY_PATH, `${name}.json`), JSON.stringify(componentJson, null, 2));
|
|
35
|
+
|
|
36
|
+
return {
|
|
37
|
+
name,
|
|
38
|
+
files: [`ui/${file}`],
|
|
39
|
+
type: 'registry:ui',
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
fs.writeFileSync(path.join(REGISTRY_PATH, 'index.json'), JSON.stringify(registryIndex, null, 2));
|
|
44
|
+
console.log('✅ Registry built successfully in public/registry');
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
buildRegistry();
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { execSync } from 'child_process';
|
|
2
|
+
|
|
3
|
+
const components = [
|
|
4
|
+
// Layout
|
|
5
|
+
'accordion',
|
|
6
|
+
'collapsible',
|
|
7
|
+
'scroll-area',
|
|
8
|
+
'separator',
|
|
9
|
+
'tabs',
|
|
10
|
+
// Inputs
|
|
11
|
+
'input',
|
|
12
|
+
'textarea',
|
|
13
|
+
'checkbox',
|
|
14
|
+
'radio-group',
|
|
15
|
+
'select',
|
|
16
|
+
'switch',
|
|
17
|
+
'slider',
|
|
18
|
+
'toggle',
|
|
19
|
+
'date-picker', // Note: This might require multiple (calendar, popover, etc.)
|
|
20
|
+
'form',
|
|
21
|
+
// Feedback
|
|
22
|
+
'alert',
|
|
23
|
+
'badge',
|
|
24
|
+
'progress',
|
|
25
|
+
'skeleton',
|
|
26
|
+
'toast',
|
|
27
|
+
'tooltip',
|
|
28
|
+
'sonner',
|
|
29
|
+
// Overlay
|
|
30
|
+
'dialog',
|
|
31
|
+
'popover',
|
|
32
|
+
'drawer',
|
|
33
|
+
'sheet',
|
|
34
|
+
'command',
|
|
35
|
+
'alert-dialog',
|
|
36
|
+
'hover-card',
|
|
37
|
+
// Content
|
|
38
|
+
'card',
|
|
39
|
+
'table',
|
|
40
|
+
'carousel',
|
|
41
|
+
'calendar',
|
|
42
|
+
'chart',
|
|
43
|
+
'aspect-ratio',
|
|
44
|
+
'avatar',
|
|
45
|
+
'breadcrumb',
|
|
46
|
+
'context-menu',
|
|
47
|
+
'dropdown-menu',
|
|
48
|
+
'menubar',
|
|
49
|
+
'navigation-menu',
|
|
50
|
+
'pagination',
|
|
51
|
+
'resizable',
|
|
52
|
+
'label',
|
|
53
|
+
'menubar',
|
|
54
|
+
'toggle-group',
|
|
55
|
+
];
|
|
56
|
+
|
|
57
|
+
console.log(`🚀 Starting batch import of ${components.length} components...`);
|
|
58
|
+
|
|
59
|
+
for (const component of components) {
|
|
60
|
+
try {
|
|
61
|
+
console.log(`📦 Adding ${component}...`);
|
|
62
|
+
execSync(`npx shadcn@latest add ${component} --yes --overwrite`, { stdio: 'inherit' });
|
|
63
|
+
} catch (error) {
|
|
64
|
+
console.error(`❌ Failed to add ${component}:`, error);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
console.log('✅ All components processed!');
|
package/scripts/validate.js
CHANGED
|
@@ -16,8 +16,6 @@ const steps = [
|
|
|
16
16
|
},
|
|
17
17
|
{ name: 'TypeScript type check', cmd: 'npx tsc --noEmit' },
|
|
18
18
|
{ name: 'Build (vite)', cmd: 'yarn build' },
|
|
19
|
-
{ name: 'Storybook build', cmd: 'yarn build-storybook' },
|
|
20
|
-
{ name: 'Storybook docs build', cmd: 'yarn build-storybook-docs' },
|
|
21
19
|
];
|
|
22
20
|
|
|
23
21
|
const SEP = '------------------------------------------------------------';
|
package/src/App.tsx
ADDED
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { ThemeProvider } from 'next-themes';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { Footer, Sidebar, ThemeToggle } from './components/docs';
|
|
4
|
+
import { ScrollArea } from './components/ui/scroll-area';
|
|
5
|
+
import { Toaster } from './components/ui/sonner';
|
|
6
|
+
import { TooltipProvider } from './components/ui/tooltip';
|
|
7
|
+
import {
|
|
8
|
+
AccordionDocs,
|
|
9
|
+
AlertDialogDocs,
|
|
10
|
+
AlertDocs,
|
|
11
|
+
AspectRatioDocs,
|
|
12
|
+
AvatarDocs,
|
|
13
|
+
BadgeDocs,
|
|
14
|
+
BreadcrumbDocs,
|
|
15
|
+
ButtonDocs,
|
|
16
|
+
CalendarDocs,
|
|
17
|
+
CardDocs,
|
|
18
|
+
CarouselDocs,
|
|
19
|
+
ChartDocs,
|
|
20
|
+
CheckboxDocs,
|
|
21
|
+
CollapsibleDocs,
|
|
22
|
+
CommandDocs,
|
|
23
|
+
ContextMenuDocs,
|
|
24
|
+
DialogDocs,
|
|
25
|
+
DrawerDocs,
|
|
26
|
+
DropdownMenuDocs,
|
|
27
|
+
FormDocs,
|
|
28
|
+
GettingStartedPage,
|
|
29
|
+
HoverCardDocs,
|
|
30
|
+
InputDocs,
|
|
31
|
+
InstallationPage,
|
|
32
|
+
LabelDocs,
|
|
33
|
+
MenubarDocs,
|
|
34
|
+
NavigationMenuDocs,
|
|
35
|
+
PaginationDocs,
|
|
36
|
+
PopoverDocs,
|
|
37
|
+
ProgressDocs,
|
|
38
|
+
RadioGroupDocs,
|
|
39
|
+
ResizableDocs,
|
|
40
|
+
ScrollAreaDocs,
|
|
41
|
+
SelectDocs,
|
|
42
|
+
SeparatorDocs,
|
|
43
|
+
SheetDocs,
|
|
44
|
+
SkeletonDocs,
|
|
45
|
+
SliderDocs,
|
|
46
|
+
SonnerDocs,
|
|
47
|
+
SwitchDocs,
|
|
48
|
+
TableDocs,
|
|
49
|
+
TabsDocs,
|
|
50
|
+
TextareaDocs,
|
|
51
|
+
ToastDocs,
|
|
52
|
+
ToggleDocs,
|
|
53
|
+
ToggleGroupDocs,
|
|
54
|
+
TooltipDocs,
|
|
55
|
+
} from './pages';
|
|
56
|
+
|
|
57
|
+
function App() {
|
|
58
|
+
const [activeItem, setActiveItem] = React.useState('getting-started');
|
|
59
|
+
|
|
60
|
+
const renderContent = () => {
|
|
61
|
+
switch (activeItem) {
|
|
62
|
+
// Getting Started
|
|
63
|
+
case 'getting-started':
|
|
64
|
+
return <GettingStartedPage />;
|
|
65
|
+
case 'installation':
|
|
66
|
+
return <InstallationPage />;
|
|
67
|
+
|
|
68
|
+
// Layout
|
|
69
|
+
case 'card':
|
|
70
|
+
return <CardDocs />;
|
|
71
|
+
case 'separator':
|
|
72
|
+
return <SeparatorDocs />;
|
|
73
|
+
case 'resizable':
|
|
74
|
+
return <ResizableDocs />;
|
|
75
|
+
case 'scroll-area':
|
|
76
|
+
return <ScrollAreaDocs />;
|
|
77
|
+
case 'aspect-ratio':
|
|
78
|
+
return <AspectRatioDocs />;
|
|
79
|
+
|
|
80
|
+
// Forms
|
|
81
|
+
case 'button':
|
|
82
|
+
return <ButtonDocs />;
|
|
83
|
+
case 'input':
|
|
84
|
+
return <InputDocs />;
|
|
85
|
+
case 'textarea':
|
|
86
|
+
return <TextareaDocs />;
|
|
87
|
+
case 'label':
|
|
88
|
+
return <LabelDocs />;
|
|
89
|
+
case 'checkbox':
|
|
90
|
+
return <CheckboxDocs />;
|
|
91
|
+
case 'radio-group':
|
|
92
|
+
return <RadioGroupDocs />;
|
|
93
|
+
case 'select':
|
|
94
|
+
return <SelectDocs />;
|
|
95
|
+
case 'switch':
|
|
96
|
+
return <SwitchDocs />;
|
|
97
|
+
case 'slider':
|
|
98
|
+
return <SliderDocs />;
|
|
99
|
+
case 'form':
|
|
100
|
+
return <FormDocs />;
|
|
101
|
+
|
|
102
|
+
// Data Display
|
|
103
|
+
case 'badge':
|
|
104
|
+
return <BadgeDocs />;
|
|
105
|
+
case 'avatar':
|
|
106
|
+
return <AvatarDocs />;
|
|
107
|
+
case 'table':
|
|
108
|
+
return <TableDocs />;
|
|
109
|
+
case 'progress':
|
|
110
|
+
return <ProgressDocs />;
|
|
111
|
+
case 'skeleton':
|
|
112
|
+
return <SkeletonDocs />;
|
|
113
|
+
case 'chart':
|
|
114
|
+
return <ChartDocs />;
|
|
115
|
+
case 'calendar':
|
|
116
|
+
return <CalendarDocs />;
|
|
117
|
+
|
|
118
|
+
// Navigation
|
|
119
|
+
case 'tabs':
|
|
120
|
+
return <TabsDocs />;
|
|
121
|
+
case 'breadcrumb':
|
|
122
|
+
return <BreadcrumbDocs />;
|
|
123
|
+
case 'pagination':
|
|
124
|
+
return <PaginationDocs />;
|
|
125
|
+
case 'navigation-menu':
|
|
126
|
+
return <NavigationMenuDocs />;
|
|
127
|
+
case 'menubar':
|
|
128
|
+
return <MenubarDocs />;
|
|
129
|
+
|
|
130
|
+
// Feedback
|
|
131
|
+
case 'alert':
|
|
132
|
+
return <AlertDocs />;
|
|
133
|
+
case 'alert-dialog':
|
|
134
|
+
return <AlertDialogDocs />;
|
|
135
|
+
case 'dialog':
|
|
136
|
+
return <DialogDocs />;
|
|
137
|
+
case 'toast':
|
|
138
|
+
return <ToastDocs />;
|
|
139
|
+
case 'sonner':
|
|
140
|
+
return <SonnerDocs />;
|
|
141
|
+
|
|
142
|
+
// Overlay
|
|
143
|
+
case 'popover':
|
|
144
|
+
return <PopoverDocs />;
|
|
145
|
+
case 'tooltip':
|
|
146
|
+
return <TooltipDocs />;
|
|
147
|
+
case 'hover-card':
|
|
148
|
+
return <HoverCardDocs />;
|
|
149
|
+
case 'dropdown-menu':
|
|
150
|
+
return <DropdownMenuDocs />;
|
|
151
|
+
case 'context-menu':
|
|
152
|
+
return <ContextMenuDocs />;
|
|
153
|
+
case 'command':
|
|
154
|
+
return <CommandDocs />;
|
|
155
|
+
case 'sheet':
|
|
156
|
+
return <SheetDocs />;
|
|
157
|
+
case 'drawer':
|
|
158
|
+
return <DrawerDocs />;
|
|
159
|
+
|
|
160
|
+
// Advanced
|
|
161
|
+
case 'accordion':
|
|
162
|
+
return <AccordionDocs />;
|
|
163
|
+
case 'collapsible':
|
|
164
|
+
return <CollapsibleDocs />;
|
|
165
|
+
case 'carousel':
|
|
166
|
+
return <CarouselDocs />;
|
|
167
|
+
case 'toggle':
|
|
168
|
+
return <ToggleDocs />;
|
|
169
|
+
case 'toggle-group':
|
|
170
|
+
return <ToggleGroupDocs />;
|
|
171
|
+
|
|
172
|
+
default:
|
|
173
|
+
return <GettingStartedPage />;
|
|
174
|
+
}
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
return (
|
|
178
|
+
<ThemeProvider attribute="class" defaultTheme="system" enableSystem>
|
|
179
|
+
<TooltipProvider>
|
|
180
|
+
<div className="flex h-screen bg-background">
|
|
181
|
+
{/* Sidebar */}
|
|
182
|
+
<Sidebar activeItem={activeItem} onItemSelect={setActiveItem} />
|
|
183
|
+
|
|
184
|
+
{/* Main Content */}
|
|
185
|
+
<div className="flex-1 flex flex-col overflow-hidden">
|
|
186
|
+
{/* Header */}
|
|
187
|
+
<header className="h-14 border-b flex items-center justify-between px-6">
|
|
188
|
+
<div className="flex items-center gap-4">
|
|
189
|
+
<h1 className="text-sm font-medium text-muted-foreground">Components</h1>
|
|
190
|
+
</div>
|
|
191
|
+
<div className="flex items-center gap-2">
|
|
192
|
+
<ThemeToggle />
|
|
193
|
+
</div>
|
|
194
|
+
</header>
|
|
195
|
+
|
|
196
|
+
{/* Content Area */}
|
|
197
|
+
<ScrollArea className="flex-1 [&>[data-radix-scroll-area-viewport]]:h-full">
|
|
198
|
+
<div className="flex-1 flex flex-col min-h-full">
|
|
199
|
+
<main className="flex-1 p-8 max-w-4xl">{renderContent()}</main>
|
|
200
|
+
<Footer />
|
|
201
|
+
</div>
|
|
202
|
+
</ScrollArea>
|
|
203
|
+
</div>
|
|
204
|
+
</div>
|
|
205
|
+
<Toaster />
|
|
206
|
+
</TooltipProvider>
|
|
207
|
+
</ThemeProvider>
|
|
208
|
+
);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
export default App;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { cn } from '@/lib/utils';
|
|
2
|
+
import { Check, Copy } from 'lucide-react';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
|
|
5
|
+
interface CodeBlockProps {
|
|
6
|
+
code: string;
|
|
7
|
+
language?: string;
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export function CodeBlock({ code, language = 'tsx', className }: CodeBlockProps) {
|
|
12
|
+
const [copied, setCopied] = React.useState(false);
|
|
13
|
+
|
|
14
|
+
const copyToClipboard = async () => {
|
|
15
|
+
await navigator.clipboard.writeText(code);
|
|
16
|
+
setCopied(true);
|
|
17
|
+
setTimeout(() => setCopied(false), 2000);
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
return (
|
|
21
|
+
<div className={cn('relative group', className)}>
|
|
22
|
+
<pre className="bg-zinc-950 text-zinc-100 rounded-lg p-4 overflow-x-auto text-sm font-mono">
|
|
23
|
+
<code className={`language-${language}`}>{code.trim()}</code>
|
|
24
|
+
</pre>
|
|
25
|
+
<button
|
|
26
|
+
onClick={copyToClipboard}
|
|
27
|
+
className="absolute top-3 right-3 p-2 rounded-md bg-zinc-800 text-zinc-400 hover:text-zinc-100 hover:bg-zinc-700 transition-colors opacity-0 group-hover:opacity-100"
|
|
28
|
+
aria-label="Copy code"
|
|
29
|
+
>
|
|
30
|
+
{copied ? <Check className="h-4 w-4 text-green-500" /> : <Copy className="h-4 w-4" />}
|
|
31
|
+
</button>
|
|
32
|
+
</div>
|
|
33
|
+
);
|
|
34
|
+
}
|