From 4017bc628c504e47d9661012a5e5c8bb8bf5adf2 Mon Sep 17 00:00:00 2001 From: zernonia Date: Wed, 30 Aug 2023 15:42:00 +0800 Subject: [PATCH] feat: vitepress docs --- .eslintrc.cjs | 4 +- apps/www/.vitepress/config.mts | 9 +- .../theme/components/ComponentPreview.vue | 54 ++ .../theme/components/ManualInstall.vue | 16 + .../theme/components/TableOfContent.vue | 59 ++ .../theme/components/TableOfContentTree.vue | 51 ++ apps/www/.vitepress/theme/components/index.ts | 2 + apps/www/.vitepress/theme/config/docs.ts | 365 +++++++++++ apps/www/.vitepress/theme/config/site.ts | 14 + apps/www/.vitepress/theme/index.ts | 13 +- .../.vitepress/theme/layout/DocsLayout.vue | 81 +++ .../.vitepress/theme/layout/MainLayout.vue | 182 ++++++ apps/www/.vitepress/theme/style.css | 159 ++++- apps/www/.vitepress/theme/styles/shiki.css | 13 + apps/www/.vitepress/theme/styles/vp-doc.css | 570 ++++++++++++++++++ apps/www/.vitepress/theme/types/docs.ts | 9 + apps/www/index.html | 13 - apps/www/package.json | 3 + apps/www/src/App.vue | 21 - .../components/Internal/Docs/Card/Card.vue | 16 - .../components/Internal/Docs/Card/index.ts | 1 - apps/www/src/content/docs.md | 5 + .../src/content/docs/components/accordion.md | 49 ++ apps/www/src/content/example/dashboard.md | 1 + apps/www/src/content/index.md | 1 + apps/www/src/content/themes.md | 0 .../default/examples/AccordionDemo.vue | 22 +- .../lib/registry/default/examples/index.ts | 1 + .../src/lib/registry/default/ui/accordion.ts | 45 -- .../default/ui/accordion/Accordion.vue | 14 + .../default/ui/accordion/AccordionContent.vue | 22 + .../default/ui/accordion/AccordionItem.vue | 15 + .../default/ui/accordion/AccordionTrigger.vue | 30 + .../registry/default/ui/accordion/index.ts | 4 + .../lib/registry/default/ui/alert-dialog.ts | 97 --- .../default/ui/alert-dialog/AlertDialog.vue | 11 + .../ui/alert-dialog/AlertDialogAction.vue | 11 + .../ui/alert-dialog/AlertDialogCancel.vue | 11 + .../ui/alert-dialog/AlertDialogContent.vue | 30 + .../alert-dialog/AlertDialogDescription.vue | 18 + .../ui/alert-dialog/AlertDialogFooter.vue | 23 + .../ui/alert-dialog/AlertDialogHeader.vue | 18 + .../ui/alert-dialog/AlertDialogTitle.vue | 15 + .../ui/alert-dialog/AlertDialogTrigger.vue | 11 + .../registry/default/ui/alert-dialog/index.ts | 9 + .../lib/registry/default/ui/alert/Alert.vue | 78 +++ .../default/ui/alert/AlertDescription.vue | 13 + .../registry/default/ui/alert/AlertTitle.vue | 5 + .../lib/registry/default/ui/alert/index.ts | 3 + .../default/ui/aspect-ratio/AspectRatio.vue | 11 + .../registry/default/ui/aspect-ratio/index.ts | 1 + .../lib/registry/default/ui/avatar/Avatar.vue | 46 ++ .../default/ui/avatar/AvatarFallback.vue | 11 + .../default/ui/avatar/AvatarImage.vue | 9 + .../lib/registry/default/ui/avatar/index.ts | 3 + .../lib/registry/default/ui/badge/Badge.vue | 42 ++ .../lib/registry/default/ui/badge/index.ts | 1 + .../default/ui/breadcrumb/BreadCrumb.vue | 5 + .../default/ui/breadcrumb/BreadCrumbItem.vue | 32 + .../registry/default/ui/breadcrumb/index.ts | 2 + .../www/src/lib/registry/default/ui/button.ts | 41 -- .../lib/registry/default/ui/button/Button.vue | 64 ++ .../lib/registry/default/ui/button/index.ts | 1 + .../registry/default/ui/calendar/Calendar.vue | 63 ++ .../lib/registry/default/ui/calendar/index.ts | 1 + .../src/lib/registry/default/ui/card/Card.vue | 23 + .../registry/default/ui/card/CardContent.vue | 16 + .../default/ui/card/CardDescription.vue | 16 + .../registry/default/ui/card/CardFooter.vue | 16 + .../registry/default/ui/card/CardHeader.vue | 16 + .../registry/default/ui/card/CardTitle.vue | 20 + .../src/lib/registry/default/ui/card/index.ts | 6 + .../registry/default/ui/checkbox/Checkbox.vue | 42 ++ .../lib/registry/default/ui/checkbox/index.ts | 1 + .../default/ui/collapsible/Collapsible.vue | 11 + .../ui/collapsible/CollapsibleContent.vue | 11 + .../ui/collapsible/CollapsibleTrigger.vue | 11 + .../registry/default/ui/collapsible/index.ts | 3 + .../default/ui/context-menu/ContextMenu.vue | 11 + .../context-menu/ContextMenuCheckboxItem.vue | 34 ++ .../ui/context-menu/ContextMenuContent.vue | 31 + .../ui/context-menu/ContextMenuGroup.vue | 11 + .../ui/context-menu/ContextMenuItem.vue | 27 + .../ui/context-menu/ContextMenuLabel.vue | 13 + .../ui/context-menu/ContextMenuRadioGroup.vue | 20 + .../ui/context-menu/ContextMenuRadioItem.vue | 34 ++ .../ui/context-menu/ContextMenuSeparator.vue | 12 + .../ui/context-menu/ContextMenuShortcut.vue | 5 + .../ui/context-menu/ContextMenuSub.vue | 17 + .../ui/context-menu/ContextMenuSubContent.vue | 33 + .../ui/context-menu/ContextMenuSubTrigger.vue | 23 + .../ui/context-menu/ContextMenuTrigger.vue | 11 + .../registry/default/ui/context-menu/index.ts | 14 + .../default/ui/data-table/DataTable.vue | 327 ++++++++++ .../registry/default/ui/data-table/index.ts | 1 + .../default/ui/date-picker/DatePicker.vue | 63 ++ .../registry/default/ui/date-picker/index.ts | 1 + .../www/src/lib/registry/default/ui/dialog.ts | 82 --- .../lib/registry/default/ui/dialog/Dialog.vue | 9 + .../default/ui/dialog/DialogContent.vue | 38 ++ .../default/ui/dialog/DialogDescription.vue | 15 + .../default/ui/dialog/DialogFooter.vue | 22 + .../default/ui/dialog/DialogHeader.vue | 17 + .../default/ui/dialog/DialogTitle.vue | 20 + .../default/ui/dialog/DialogTrigger.vue | 11 + .../lib/registry/default/ui/dialog/index.ts | 7 + .../default/ui/dropdown-menu/DropdownMenu.vue | 11 + .../DropdownMenuCheckboxItem.vue | 35 ++ .../ui/dropdown-menu/DropdownMenuContent.vue | 36 ++ .../ui/dropdown-menu/DropdownMenuGroup.vue | 11 + .../ui/dropdown-menu/DropdownMenuItem.vue | 20 + .../ui/dropdown-menu/DropdownMenuLabel.vue | 13 + .../dropdown-menu/DropdownMenuRadioGroup.vue | 20 + .../dropdown-menu/DropdownMenuRadioItem.vue | 34 ++ .../dropdown-menu/DropdownMenuSeparator.vue | 12 + .../ui/dropdown-menu/DropdownMenuShortcut.vue | 5 + .../ui/dropdown-menu/DropdownMenuSub.vue | 17 + .../dropdown-menu/DropdownMenuSubContent.vue | 28 + .../dropdown-menu/DropdownMenuSubTrigger.vue | 23 + .../ui/dropdown-menu/DropdownMenuTrigger.vue | 11 + .../default/ui/dropdown-menu/index.ts | 14 + .../default/ui/hover-card/HoverCard.vue | 11 + .../ui/hover-card/HoverCardContent.vue | 31 + .../ui/hover-card/HoverCardTrigger.vue | 11 + .../registry/default/ui/hover-card/index.ts | 3 + apps/www/src/lib/registry/default/ui/input.ts | 11 - .../lib/registry/default/ui/input/Input.vue | 68 +++ .../lib/registry/default/ui/input/index.ts | 1 + .../src/lib/registry/default/ui/kbd/Kbd.vue | 37 ++ .../src/lib/registry/default/ui/kbd/index.ts | 1 + apps/www/src/lib/registry/default/ui/label.ts | 17 - .../lib/registry/default/ui/label/Label.vue | 20 + .../lib/registry/default/ui/label/index.ts | 1 + .../registry/default/ui/menubar/Menubar.vue | 27 + .../ui/menubar/MenubarCheckboxItem.vue | 35 ++ .../default/ui/menubar/MenubarContent.vue | 38 ++ .../default/ui/menubar/MenubarGroup.vue | 11 + .../default/ui/menubar/MenubarItem.vue | 27 + .../default/ui/menubar/MenubarLabel.vue | 14 + .../default/ui/menubar/MenubarMenu.vue | 11 + .../default/ui/menubar/MenubarRadioGroup.vue | 20 + .../default/ui/menubar/MenubarRadioItem.vue | 36 ++ .../default/ui/menubar/MenubarSeparator.vue | 9 + .../default/ui/menubar/MenubarShortcut.vue | 5 + .../default/ui/menubar/MenubarSub.vue | 21 + .../default/ui/menubar/MenubarSubContent.vue | 40 ++ .../default/ui/menubar/MenubarSubTrigger.vue | 20 + .../default/ui/menubar/MenubarTrigger.vue | 20 + .../lib/registry/default/ui/menubar/index.ts | 15 + .../ui/navigation-menu/NavigationMenu.vue | 33 + .../navigation-menu/NavigationMenuContent.vue | 26 + .../ui/navigation-menu/NavigationMenuItem.vue | 11 + .../ui/navigation-menu/NavigationMenuLink.vue | 17 + .../ui/navigation-menu/NavigationMenuList.vue | 20 + .../NavigationMenuListItem.vue | 27 + .../navigation-menu/NavigationMenuTrigger.vue | 32 + .../default/ui/navigation-menu/index.ts | 7 + .../src/lib/registry/default/ui/popover.ts | 29 - .../registry/default/ui/popover/Popover.vue | 11 + .../default/ui/popover/PopoverContent.vue | 31 + .../default/ui/popover/PopoverTrigger.vue | 11 + .../lib/registry/default/ui/popover/index.ts | 3 + .../registry/default/ui/progress/Progress.vue | 38 ++ .../lib/registry/default/ui/progress/index.ts | 1 + .../default/ui/radio-group/RadioGroup.vue | 12 + .../default/ui/radio-group/RadioGroupItem.vue | 29 + .../registry/default/ui/radio-group/index.ts | 2 + .../default/ui/scroll-area/ScrollArea.vue | 40 ++ .../registry/default/ui/scroll-area/index.ts | 1 + .../src/lib/registry/default/ui/select.tsx | 112 ---- .../lib/registry/default/ui/select/Select.vue | 9 + .../default/ui/select/SelectContent.vue | 43 ++ .../default/ui/select/SelectGroup.vue | 12 + .../registry/default/ui/select/SelectItem.vue | 32 + .../default/ui/select/SelectItemText.vue | 11 + .../default/ui/select/SelectLabel.vue | 14 + .../default/ui/select/SelectSeparator.vue | 10 + .../default/ui/select/SelectTrigger.vue | 31 + .../default/ui/select/SelectValue.vue | 11 + .../lib/registry/default/ui/select/index.ts | 9 + .../default/ui/separator/Separator.vue | 15 + .../registry/default/ui/separator/index.ts | 1 + .../registry/default/ui/skeleton/Skeleton.vue | 13 + .../lib/registry/default/ui/skeleton/index.ts | 1 + .../lib/registry/default/ui/slider/Slider.vue | 58 ++ .../lib/registry/default/ui/slider/index.ts | 1 + .../lib/registry/default/ui/switch/Switch.vue | 35 ++ .../lib/registry/default/ui/switch/index.ts | 1 + .../lib/registry/default/ui/table/Table.vue | 15 + .../registry/default/ui/table/TableBody.vue | 5 + .../default/ui/table/TableCaption.vue | 5 + .../registry/default/ui/table/TableCell.vue | 20 + .../registry/default/ui/table/TableEmpty.vue | 33 + .../registry/default/ui/table/TableHead.vue | 20 + .../registry/default/ui/table/TableHeader.vue | 13 + .../registry/default/ui/table/TableRow.vue | 13 + .../lib/registry/default/ui/table/index.ts | 8 + .../src/lib/registry/default/ui/tabs/Tabs.vue | 11 + .../registry/default/ui/tabs/TabsContent.vue | 15 + .../lib/registry/default/ui/tabs/TabsList.vue | 20 + .../registry/default/ui/tabs/TabsTrigger.vue | 20 + .../src/lib/registry/default/ui/tabs/index.ts | 4 + .../registry/default/ui/textarea/Input.vue | 68 +++ .../registry/default/ui/textarea/Textarea.vue | 67 ++ .../lib/registry/default/ui/textarea/index.ts | 1 + .../lib/registry/default/ui/toggle/Toggle.vue | 46 ++ .../lib/registry/default/ui/toggle/index.ts | 1 + apps/www/src/main.ts | 5 - apps/www/src/style.css | 82 --- apps/www/tailwind.config.js | 8 +- apps/www/tsconfig.json | 6 +- pnpm-lock.yaml | 85 ++- 212 files changed, 5268 insertions(+), 605 deletions(-) create mode 100644 apps/www/.vitepress/theme/components/ComponentPreview.vue create mode 100644 apps/www/.vitepress/theme/components/ManualInstall.vue create mode 100644 apps/www/.vitepress/theme/components/TableOfContent.vue create mode 100644 apps/www/.vitepress/theme/components/TableOfContentTree.vue create mode 100644 apps/www/.vitepress/theme/components/index.ts create mode 100644 apps/www/.vitepress/theme/config/docs.ts create mode 100644 apps/www/.vitepress/theme/config/site.ts create mode 100644 apps/www/.vitepress/theme/layout/DocsLayout.vue create mode 100644 apps/www/.vitepress/theme/layout/MainLayout.vue create mode 100644 apps/www/.vitepress/theme/styles/shiki.css create mode 100644 apps/www/.vitepress/theme/styles/vp-doc.css create mode 100644 apps/www/.vitepress/theme/types/docs.ts delete mode 100644 apps/www/index.html delete mode 100644 apps/www/src/App.vue delete mode 100644 apps/www/src/components/Internal/Docs/Card/Card.vue delete mode 100644 apps/www/src/components/Internal/Docs/Card/index.ts create mode 100644 apps/www/src/content/docs.md create mode 100644 apps/www/src/content/docs/components/accordion.md create mode 100644 apps/www/src/content/example/dashboard.md create mode 100644 apps/www/src/content/themes.md create mode 100644 apps/www/src/lib/registry/default/examples/index.ts delete mode 100644 apps/www/src/lib/registry/default/ui/accordion.ts create mode 100644 apps/www/src/lib/registry/default/ui/accordion/Accordion.vue create mode 100644 apps/www/src/lib/registry/default/ui/accordion/AccordionContent.vue create mode 100644 apps/www/src/lib/registry/default/ui/accordion/AccordionItem.vue create mode 100644 apps/www/src/lib/registry/default/ui/accordion/AccordionTrigger.vue create mode 100644 apps/www/src/lib/registry/default/ui/accordion/index.ts delete mode 100644 apps/www/src/lib/registry/default/ui/alert-dialog.ts create mode 100644 apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialog.vue create mode 100644 apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogAction.vue create mode 100644 apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogCancel.vue create mode 100644 apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogContent.vue create mode 100644 apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogDescription.vue create mode 100644 apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogFooter.vue create mode 100644 apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogHeader.vue create mode 100644 apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogTitle.vue create mode 100644 apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogTrigger.vue create mode 100644 apps/www/src/lib/registry/default/ui/alert-dialog/index.ts create mode 100644 apps/www/src/lib/registry/default/ui/alert/Alert.vue create mode 100644 apps/www/src/lib/registry/default/ui/alert/AlertDescription.vue create mode 100644 apps/www/src/lib/registry/default/ui/alert/AlertTitle.vue create mode 100644 apps/www/src/lib/registry/default/ui/alert/index.ts create mode 100644 apps/www/src/lib/registry/default/ui/aspect-ratio/AspectRatio.vue create mode 100644 apps/www/src/lib/registry/default/ui/aspect-ratio/index.ts create mode 100644 apps/www/src/lib/registry/default/ui/avatar/Avatar.vue create mode 100644 apps/www/src/lib/registry/default/ui/avatar/AvatarFallback.vue create mode 100644 apps/www/src/lib/registry/default/ui/avatar/AvatarImage.vue create mode 100644 apps/www/src/lib/registry/default/ui/avatar/index.ts create mode 100644 apps/www/src/lib/registry/default/ui/badge/Badge.vue create mode 100644 apps/www/src/lib/registry/default/ui/badge/index.ts create mode 100644 apps/www/src/lib/registry/default/ui/breadcrumb/BreadCrumb.vue create mode 100644 apps/www/src/lib/registry/default/ui/breadcrumb/BreadCrumbItem.vue create mode 100644 apps/www/src/lib/registry/default/ui/breadcrumb/index.ts delete mode 100644 apps/www/src/lib/registry/default/ui/button.ts create mode 100644 apps/www/src/lib/registry/default/ui/button/Button.vue create mode 100644 apps/www/src/lib/registry/default/ui/button/index.ts create mode 100644 apps/www/src/lib/registry/default/ui/calendar/Calendar.vue create mode 100644 apps/www/src/lib/registry/default/ui/calendar/index.ts create mode 100644 apps/www/src/lib/registry/default/ui/card/Card.vue create mode 100644 apps/www/src/lib/registry/default/ui/card/CardContent.vue create mode 100644 apps/www/src/lib/registry/default/ui/card/CardDescription.vue create mode 100644 apps/www/src/lib/registry/default/ui/card/CardFooter.vue create mode 100644 apps/www/src/lib/registry/default/ui/card/CardHeader.vue create mode 100644 apps/www/src/lib/registry/default/ui/card/CardTitle.vue create mode 100644 apps/www/src/lib/registry/default/ui/card/index.ts create mode 100644 apps/www/src/lib/registry/default/ui/checkbox/Checkbox.vue create mode 100644 apps/www/src/lib/registry/default/ui/checkbox/index.ts create mode 100644 apps/www/src/lib/registry/default/ui/collapsible/Collapsible.vue create mode 100644 apps/www/src/lib/registry/default/ui/collapsible/CollapsibleContent.vue create mode 100644 apps/www/src/lib/registry/default/ui/collapsible/CollapsibleTrigger.vue create mode 100644 apps/www/src/lib/registry/default/ui/collapsible/index.ts create mode 100644 apps/www/src/lib/registry/default/ui/context-menu/ContextMenu.vue create mode 100644 apps/www/src/lib/registry/default/ui/context-menu/ContextMenuCheckboxItem.vue create mode 100644 apps/www/src/lib/registry/default/ui/context-menu/ContextMenuContent.vue create mode 100644 apps/www/src/lib/registry/default/ui/context-menu/ContextMenuGroup.vue create mode 100644 apps/www/src/lib/registry/default/ui/context-menu/ContextMenuItem.vue create mode 100644 apps/www/src/lib/registry/default/ui/context-menu/ContextMenuLabel.vue create mode 100644 apps/www/src/lib/registry/default/ui/context-menu/ContextMenuRadioGroup.vue create mode 100644 apps/www/src/lib/registry/default/ui/context-menu/ContextMenuRadioItem.vue create mode 100644 apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSeparator.vue create mode 100644 apps/www/src/lib/registry/default/ui/context-menu/ContextMenuShortcut.vue create mode 100644 apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSub.vue create mode 100644 apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSubContent.vue create mode 100644 apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSubTrigger.vue create mode 100644 apps/www/src/lib/registry/default/ui/context-menu/ContextMenuTrigger.vue create mode 100644 apps/www/src/lib/registry/default/ui/context-menu/index.ts create mode 100644 apps/www/src/lib/registry/default/ui/data-table/DataTable.vue create mode 100644 apps/www/src/lib/registry/default/ui/data-table/index.ts create mode 100644 apps/www/src/lib/registry/default/ui/date-picker/DatePicker.vue create mode 100644 apps/www/src/lib/registry/default/ui/date-picker/index.ts delete mode 100644 apps/www/src/lib/registry/default/ui/dialog.ts create mode 100644 apps/www/src/lib/registry/default/ui/dialog/Dialog.vue create mode 100644 apps/www/src/lib/registry/default/ui/dialog/DialogContent.vue create mode 100644 apps/www/src/lib/registry/default/ui/dialog/DialogDescription.vue create mode 100644 apps/www/src/lib/registry/default/ui/dialog/DialogFooter.vue create mode 100644 apps/www/src/lib/registry/default/ui/dialog/DialogHeader.vue create mode 100644 apps/www/src/lib/registry/default/ui/dialog/DialogTitle.vue create mode 100644 apps/www/src/lib/registry/default/ui/dialog/DialogTrigger.vue create mode 100644 apps/www/src/lib/registry/default/ui/dialog/index.ts create mode 100644 apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenu.vue create mode 100644 apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuCheckboxItem.vue create mode 100644 apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuContent.vue create mode 100644 apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuGroup.vue create mode 100644 apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuItem.vue create mode 100644 apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuLabel.vue create mode 100644 apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuRadioGroup.vue create mode 100644 apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuRadioItem.vue create mode 100644 apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSeparator.vue create mode 100644 apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuShortcut.vue create mode 100644 apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSub.vue create mode 100644 apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSubContent.vue create mode 100644 apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSubTrigger.vue create mode 100644 apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuTrigger.vue create mode 100644 apps/www/src/lib/registry/default/ui/dropdown-menu/index.ts create mode 100644 apps/www/src/lib/registry/default/ui/hover-card/HoverCard.vue create mode 100644 apps/www/src/lib/registry/default/ui/hover-card/HoverCardContent.vue create mode 100644 apps/www/src/lib/registry/default/ui/hover-card/HoverCardTrigger.vue create mode 100644 apps/www/src/lib/registry/default/ui/hover-card/index.ts delete mode 100644 apps/www/src/lib/registry/default/ui/input.ts create mode 100644 apps/www/src/lib/registry/default/ui/input/Input.vue create mode 100644 apps/www/src/lib/registry/default/ui/input/index.ts create mode 100644 apps/www/src/lib/registry/default/ui/kbd/Kbd.vue create mode 100644 apps/www/src/lib/registry/default/ui/kbd/index.ts delete mode 100644 apps/www/src/lib/registry/default/ui/label.ts create mode 100644 apps/www/src/lib/registry/default/ui/label/Label.vue create mode 100644 apps/www/src/lib/registry/default/ui/label/index.ts create mode 100644 apps/www/src/lib/registry/default/ui/menubar/Menubar.vue create mode 100644 apps/www/src/lib/registry/default/ui/menubar/MenubarCheckboxItem.vue create mode 100644 apps/www/src/lib/registry/default/ui/menubar/MenubarContent.vue create mode 100644 apps/www/src/lib/registry/default/ui/menubar/MenubarGroup.vue create mode 100644 apps/www/src/lib/registry/default/ui/menubar/MenubarItem.vue create mode 100644 apps/www/src/lib/registry/default/ui/menubar/MenubarLabel.vue create mode 100644 apps/www/src/lib/registry/default/ui/menubar/MenubarMenu.vue create mode 100644 apps/www/src/lib/registry/default/ui/menubar/MenubarRadioGroup.vue create mode 100644 apps/www/src/lib/registry/default/ui/menubar/MenubarRadioItem.vue create mode 100644 apps/www/src/lib/registry/default/ui/menubar/MenubarSeparator.vue create mode 100644 apps/www/src/lib/registry/default/ui/menubar/MenubarShortcut.vue create mode 100644 apps/www/src/lib/registry/default/ui/menubar/MenubarSub.vue create mode 100644 apps/www/src/lib/registry/default/ui/menubar/MenubarSubContent.vue create mode 100644 apps/www/src/lib/registry/default/ui/menubar/MenubarSubTrigger.vue create mode 100644 apps/www/src/lib/registry/default/ui/menubar/MenubarTrigger.vue create mode 100644 apps/www/src/lib/registry/default/ui/menubar/index.ts create mode 100644 apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenu.vue create mode 100644 apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuContent.vue create mode 100644 apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuItem.vue create mode 100644 apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuLink.vue create mode 100644 apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuList.vue create mode 100644 apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuListItem.vue create mode 100644 apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuTrigger.vue create mode 100644 apps/www/src/lib/registry/default/ui/navigation-menu/index.ts delete mode 100644 apps/www/src/lib/registry/default/ui/popover.ts create mode 100644 apps/www/src/lib/registry/default/ui/popover/Popover.vue create mode 100644 apps/www/src/lib/registry/default/ui/popover/PopoverContent.vue create mode 100644 apps/www/src/lib/registry/default/ui/popover/PopoverTrigger.vue create mode 100644 apps/www/src/lib/registry/default/ui/popover/index.ts create mode 100644 apps/www/src/lib/registry/default/ui/progress/Progress.vue create mode 100644 apps/www/src/lib/registry/default/ui/progress/index.ts create mode 100644 apps/www/src/lib/registry/default/ui/radio-group/RadioGroup.vue create mode 100644 apps/www/src/lib/registry/default/ui/radio-group/RadioGroupItem.vue create mode 100644 apps/www/src/lib/registry/default/ui/radio-group/index.ts create mode 100644 apps/www/src/lib/registry/default/ui/scroll-area/ScrollArea.vue create mode 100644 apps/www/src/lib/registry/default/ui/scroll-area/index.ts delete mode 100644 apps/www/src/lib/registry/default/ui/select.tsx create mode 100644 apps/www/src/lib/registry/default/ui/select/Select.vue create mode 100644 apps/www/src/lib/registry/default/ui/select/SelectContent.vue create mode 100644 apps/www/src/lib/registry/default/ui/select/SelectGroup.vue create mode 100644 apps/www/src/lib/registry/default/ui/select/SelectItem.vue create mode 100644 apps/www/src/lib/registry/default/ui/select/SelectItemText.vue create mode 100644 apps/www/src/lib/registry/default/ui/select/SelectLabel.vue create mode 100644 apps/www/src/lib/registry/default/ui/select/SelectSeparator.vue create mode 100644 apps/www/src/lib/registry/default/ui/select/SelectTrigger.vue create mode 100644 apps/www/src/lib/registry/default/ui/select/SelectValue.vue create mode 100644 apps/www/src/lib/registry/default/ui/select/index.ts create mode 100644 apps/www/src/lib/registry/default/ui/separator/Separator.vue create mode 100644 apps/www/src/lib/registry/default/ui/separator/index.ts create mode 100644 apps/www/src/lib/registry/default/ui/skeleton/Skeleton.vue create mode 100644 apps/www/src/lib/registry/default/ui/skeleton/index.ts create mode 100644 apps/www/src/lib/registry/default/ui/slider/Slider.vue create mode 100644 apps/www/src/lib/registry/default/ui/slider/index.ts create mode 100644 apps/www/src/lib/registry/default/ui/switch/Switch.vue create mode 100644 apps/www/src/lib/registry/default/ui/switch/index.ts create mode 100644 apps/www/src/lib/registry/default/ui/table/Table.vue create mode 100644 apps/www/src/lib/registry/default/ui/table/TableBody.vue create mode 100644 apps/www/src/lib/registry/default/ui/table/TableCaption.vue create mode 100644 apps/www/src/lib/registry/default/ui/table/TableCell.vue create mode 100644 apps/www/src/lib/registry/default/ui/table/TableEmpty.vue create mode 100644 apps/www/src/lib/registry/default/ui/table/TableHead.vue create mode 100644 apps/www/src/lib/registry/default/ui/table/TableHeader.vue create mode 100644 apps/www/src/lib/registry/default/ui/table/TableRow.vue create mode 100644 apps/www/src/lib/registry/default/ui/table/index.ts create mode 100644 apps/www/src/lib/registry/default/ui/tabs/Tabs.vue create mode 100644 apps/www/src/lib/registry/default/ui/tabs/TabsContent.vue create mode 100644 apps/www/src/lib/registry/default/ui/tabs/TabsList.vue create mode 100644 apps/www/src/lib/registry/default/ui/tabs/TabsTrigger.vue create mode 100644 apps/www/src/lib/registry/default/ui/tabs/index.ts create mode 100644 apps/www/src/lib/registry/default/ui/textarea/Input.vue create mode 100644 apps/www/src/lib/registry/default/ui/textarea/Textarea.vue create mode 100644 apps/www/src/lib/registry/default/ui/textarea/index.ts create mode 100644 apps/www/src/lib/registry/default/ui/toggle/Toggle.vue create mode 100644 apps/www/src/lib/registry/default/ui/toggle/index.ts delete mode 100644 apps/www/src/main.ts delete mode 100644 apps/www/src/style.css diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 2005df39..6a2af8cf 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -1,5 +1,4 @@ -const process = require('node:process') - +// const process = require('node:process') // process.env.ESLINT_TSCONFIG = 'tsconfig.json' module.exports = { @@ -8,6 +7,7 @@ module.exports = { rules: { 'vue/one-component-per-file': 'off', 'vue/no-reserved-component-names': 'off', + 'vue/no-useless-v-bind': 'off', 'symbol-description': 'off', 'no-console': 'warn', 'no-tabs': 'off', diff --git a/apps/www/.vitepress/config.mts b/apps/www/.vitepress/config.mts index 5673e83a..78e6b8e1 100644 --- a/apps/www/.vitepress/config.mts +++ b/apps/www/.vitepress/config.mts @@ -1,15 +1,22 @@ import path from 'node:path' import { defineConfig } from 'vitepress' +import Icons from 'unplugin-icons/vite' // https://vitepress.dev/reference/site-config export default defineConfig({ title: 'shadcn-vue', description: 'A VitePress Site', srcDir: path.resolve(__dirname, '../src/content'), + markdown: { + theme: 'css-variables', + }, vite: { + plugins: [ + Icons({ compiler: 'vue3', autoInstall: true }) as any, + ], resolve: { alias: { - '@': path.resolve(__dirname, '../src/lib'), + '@': path.resolve(__dirname, '../src'), }, }, }, diff --git a/apps/www/.vitepress/theme/components/ComponentPreview.vue b/apps/www/.vitepress/theme/components/ComponentPreview.vue new file mode 100644 index 00000000..2ff0ea80 --- /dev/null +++ b/apps/www/.vitepress/theme/components/ComponentPreview.vue @@ -0,0 +1,54 @@ + + + diff --git a/apps/www/.vitepress/theme/components/ManualInstall.vue b/apps/www/.vitepress/theme/components/ManualInstall.vue new file mode 100644 index 00000000..b6c276ca --- /dev/null +++ b/apps/www/.vitepress/theme/components/ManualInstall.vue @@ -0,0 +1,16 @@ + + + diff --git a/apps/www/.vitepress/theme/components/TableOfContent.vue b/apps/www/.vitepress/theme/components/TableOfContent.vue new file mode 100644 index 00000000..36ceb6dd --- /dev/null +++ b/apps/www/.vitepress/theme/components/TableOfContent.vue @@ -0,0 +1,59 @@ + + + diff --git a/apps/www/.vitepress/theme/components/TableOfContentTree.vue b/apps/www/.vitepress/theme/components/TableOfContentTree.vue new file mode 100644 index 00000000..7e07e8fd --- /dev/null +++ b/apps/www/.vitepress/theme/components/TableOfContentTree.vue @@ -0,0 +1,51 @@ + + + diff --git a/apps/www/.vitepress/theme/components/index.ts b/apps/www/.vitepress/theme/components/index.ts new file mode 100644 index 00000000..b42f16d0 --- /dev/null +++ b/apps/www/.vitepress/theme/components/index.ts @@ -0,0 +1,2 @@ +export { default as ComponentPreview } from './ComponentPreview.vue' +export { default as ManualInstall } from './ManualInstall.vue' diff --git a/apps/www/.vitepress/theme/config/docs.ts b/apps/www/.vitepress/theme/config/docs.ts new file mode 100644 index 00000000..1a28cbea --- /dev/null +++ b/apps/www/.vitepress/theme/config/docs.ts @@ -0,0 +1,365 @@ +export interface NavItem { + title: string + href?: string + disabled?: boolean + external?: boolean + icon?: string + label?: string +} + +export type SidebarNavItem = NavItem & { + items: SidebarNavItem[] +} + +export type NavItemWithChildren = NavItem & { + items: NavItemWithChildren[] +} + +interface DocsConfig { + mainNav: NavItem[] + sidebarNav: SidebarNavItem[] +} + +export const docsConfig: DocsConfig = { + mainNav: [ + { + title: 'Documentation', + href: '/docs', + }, + { + title: 'Components', + href: '/docs/components/accordion', + }, + { + title: 'Themes', + href: '/themes', + }, + { + title: 'Examples', + href: '/examples/dashboard', + }, + { + title: 'GitHub', + href: 'https://github.com/huntabyte/shadcn-svelte', + external: true, + }, + ], + sidebarNav: [ + { + title: 'Getting Started', + items: [ + { + title: 'Introduction', + href: '/docs', + items: [], + }, + { + title: 'Installation', + href: '/docs/installation', + items: [], + }, + { + title: 'components.json', + href: '/docs/components-json', + items: [], + }, + { + title: 'Theming', + href: '/docs/theming', + items: [], + }, + { + title: 'CLI', + href: '/docs/cli', + items: [], + }, + { + title: 'Typography', + href: '/docs/typography', + items: [], + }, + { + title: 'Figma', + href: '/docs/figma', + items: [], + }, + { + title: 'Changelog', + href: '/docs/changelog', + items: [], + }, + { + title: 'About', + href: '/docs/about', + items: [], + }, + ], + }, + { + title: 'Components', + items: [ + { + title: 'Accordion', + href: '/docs/components/accordion', + items: [], + }, + { + title: 'Alert', + href: '/docs/components/alert', + items: [], + }, + { + title: 'Alert Dialog', + href: '/docs/components/alert-dialog', + items: [], + }, + { + title: 'Aspect Ratio', + href: '/docs/components/aspect-ratio', + items: [], + }, + { + title: 'Avatar', + href: '/docs/components/avatar', + items: [], + }, + { + title: 'Badge', + href: '/docs/components/badge', + items: [], + }, + { + title: 'Button', + href: '/docs/components/button', + items: [], + }, + // { + // title: "Calendar", + // href: "#", + // label: "Soon", + // disabled: true, + // items: [] + // }, + { + title: 'Card', + href: '/docs/components/card', + items: [], + }, + { + title: 'Checkbox', + href: '/docs/components/checkbox', + items: [], + }, + { + title: 'Collapsible', + href: '/docs/components/collapsible', + items: [], + }, + { + title: 'Combobox', + disabled: true, + label: 'Soon', + href: '#', + items: [], + }, + // { + // title: "Command", + // href: "#", + // label: "Soon", + // disabled: true, + // items: [] + // }, + { + title: 'Context Menu', + href: '/docs/components/context-menu', + items: [], + }, + { + title: 'Data Table', + href: '/docs/components/data-table', + items: [], + }, + // { + // title: "Date Picker", + // href: "#", + // label: "Soon", + // disabled: true, + // items: [] + // }, + { + title: 'Dialog', + href: '/docs/components/dialog', + items: [], + }, + { + title: 'Dropdown Menu', + href: '/docs/components/dropdown-menu', + items: [], + }, + { + title: 'Form', + href: '#', + label: 'Soon', + disabled: true, + items: [], + }, + { + title: 'Hover Card', + href: '/docs/components/hover-card', + items: [], + }, + { + title: 'Input', + href: '/docs/components/input', + items: [], + }, + { + title: 'Label', + href: '/docs/components/label', + items: [], + }, + { + title: 'Menubar', + href: '/docs/components/menubar', + items: [], + }, + // { + // title: "Navigation Menu", + // href: "#", + // label: "Soon", + // disabled: true, + // items: [] + // }, + { + title: 'Popover', + href: '/docs/components/popover', + items: [], + }, + { + title: 'Progress', + href: '/docs/components/progress', + items: [], + }, + { + title: 'Radio Group', + href: '/docs/components/radio-group', + items: [], + }, + // { + // title: "Scroll Area", + // href: "#", + // label: "Soon", + // disabled: true, + // items: [] + // }, + { + title: 'Select', + href: '/docs/components/select', + items: [], + }, + { + title: 'Separator', + href: '/docs/components/separator', + items: [], + }, + { + title: 'Sheet', + href: '/docs/components/sheet', + items: [], + }, + { + title: 'Skeleton', + href: '/docs/components/skeleton', + items: [], + }, + { + title: 'Slider', + href: '/docs/components/slider', + items: [], + }, + { + title: 'Switch', + href: '/docs/components/switch', + items: [], + }, + { + title: 'Table', + href: '/docs/components/table', + items: [], + }, + { + title: 'Tabs', + href: '/docs/components/tabs', + items: [], + }, + { + title: 'Textarea', + href: '/docs/components/textarea', + items: [], + }, + // { + // title: "Toast", + // href: "#", + // label: "Soon", + // disabled: true, + // items: [] + // }, + { + title: 'Toggle', + href: '/docs/components/toggle', + items: [], + }, + { + title: 'Tooltip', + href: '/docs/components/tooltip', + items: [], + }, + ], + }, + ], +} + +interface Example { + name: string + href: string + label?: string + code: string +} +export const examples: Example[] = [ + { + name: 'Dashboard', + href: '/examples/dashboard', + code: 'https://github.com/huntabyte/shadcn-svelte/tree/main/apps/www/src/lib/components/docs/dashboard', + }, + { + name: 'Cards', + href: '/examples/cards', + code: 'https://github.com/huntabyte/shadcn-svelte/tree/main/apps/www/src/routes/examples/cards', + }, + // { + // name: "Tasks", + // href: "/examples/tasks", + // label: "New", + // code: "https://github.com/huntabyte/shadcn-svelte/tree/main/apps/www/apps/www/app/examples/tasks" + // }, + { + name: 'Playground', + href: '/examples/playground', + code: 'https://github.com/huntabyte/shadcn-svelte/tree/main/apps/www/apps/www/app/examples/playground', + }, + { + name: 'Music', + href: '/examples/music', + code: 'https://github.com/huntabyte/shadcn-svelte/tree/main/apps/www/apps/www/app/examples/music', + }, + { + name: 'Authentication', + href: '/examples/authentication', + code: 'https://github.com/huntabyte/shadcn-svelte/tree/main/apps/www/src/routes/examples/authentication', + }, + { + name: 'Forms', + href: '/examples/forms', + code: 'https://github.com/huntabyte/shadcn-svelte/tree/main/apps/www/src/routes/examples/forms', + }, +] diff --git a/apps/www/.vitepress/theme/config/site.ts b/apps/www/.vitepress/theme/config/site.ts new file mode 100644 index 00000000..b4ce6775 --- /dev/null +++ b/apps/www/.vitepress/theme/config/site.ts @@ -0,0 +1,14 @@ +export const siteConfig = { + name: 'shadcn-vue', + url: 'https://shadcn-vue.com', + ogImage: 'https://shadcn-vue.com/og.png', + description: + 'Beautifully designed components built with Radix Vue and Tailwind CSS.', + links: { + twitter: 'https://twitter.com/huntabyte', + github: 'https://github.com/huntabyte/shadcn-vue', + shadTwitter: 'https://twitter.com/shadcn', + shadGithub: 'https://github.com/shadcn/ui', + }, + keywords: 'shadcn,Vue,Nuxt,Vue Components,TailwindCSS,Radix Vue', +} diff --git a/apps/www/.vitepress/theme/index.ts b/apps/www/.vitepress/theme/index.ts index 4fda16cd..52335bb9 100644 --- a/apps/www/.vitepress/theme/index.ts +++ b/apps/www/.vitepress/theme/index.ts @@ -1,10 +1,19 @@ +/* eslint-disable vue/component-definition-name-casing */ // https://vitepress.dev/guide/custom-theme -import Layout from './Layout.vue' +import Layout from './layout/MainLayout.vue' +import DocsLayout from './layout/DocsLayout.vue' +import * as components from './components' import './style.css' +import './styles/vp-doc.css' +import './styles/shiki.css' export default { Layout, - enhanceApp({ app, router, siteData }) { + enhanceApp({ app }) { // ... + app.component('docs', DocsLayout) + + for (const component of Object.keys(components)) + app.component(component, components[component]) }, } diff --git a/apps/www/.vitepress/theme/layout/DocsLayout.vue b/apps/www/.vitepress/theme/layout/DocsLayout.vue new file mode 100644 index 00000000..30117124 --- /dev/null +++ b/apps/www/.vitepress/theme/layout/DocsLayout.vue @@ -0,0 +1,81 @@ + + + diff --git a/apps/www/.vitepress/theme/layout/MainLayout.vue b/apps/www/.vitepress/theme/layout/MainLayout.vue new file mode 100644 index 00000000..12b6cb83 --- /dev/null +++ b/apps/www/.vitepress/theme/layout/MainLayout.vue @@ -0,0 +1,182 @@ + + + diff --git a/apps/www/.vitepress/theme/style.css b/apps/www/.vitepress/theme/style.css index b57f839e..3efcf01d 100644 --- a/apps/www/.vitepress/theme/style.css +++ b/apps/www/.vitepress/theme/style.css @@ -1,5 +1,160 @@ +@import url("https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap"); +@tailwind base; +@tailwind components; +@tailwind utilities; -html { - font-family: Arial, Helvetica; +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 240 10% 3.9%; + + --muted: 240 4.8% 95.9%; + --muted-foreground: 240 3.8% 46.1%; + + --popover: 0 0% 100%; + --popover-foreground: 240 10% 3.9%; + + --card: 0 0% 100%; + --card-foreground: 240 10% 3.9%; + + --border: 240 5.9% 90%; + --input: 240 5.9% 90%; + + --primary: 240 5.9% 10%; + --primary-foreground: 0 0% 98%; + + --secondary: 240 4.8% 95.9%; + --secondary-foreground: 240 5.9% 10%; + + --accent: 240 4.8% 95.9%; + --accent-foreground: 240 5.9% 10%; + + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 0 0% 98%; + + --ring: 240 5% 64.9%; + + --radius: 0.5rem; + } + + .dark { + --background: 240 10% 3.9%; + --foreground: 0 0% 98%; + + --muted: 240 3.7% 15.9%; + --muted-foreground: 240 5% 64.9%; + + --popover: 240 10% 3.9%; + --popover-foreground: 0 0% 98%; + + --card: 240 10% 3.9%; + --card-foreground: 0 0% 98%; + + --border: 240 3.7% 15.9%; + --input: 240 3.7% 15.9%; + + --primary: 0 0% 98%; + --primary-foreground: 240 5.9% 10%; + + --secondary: 240 3.7% 15.9%; + --secondary-foreground: 0 0% 98%; + + --accent: 240 3.7% 15.9%; + --accent-foreground: 0 0% 98%; + + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 0 85.7% 97.3%; + + --ring: 240 3.7% 15.9%; + } +} +@layer base { + * { + @apply border-border; + } + html { + -webkit-text-size-adjust: 100%; + font-variation-settings: normal; + } + body { + @apply bg-background text-foreground min-h-screen antialiased font-sans; + font-feature-settings: "rlig" 1, "calt" 1; + } + + /* Mobile tap highlight */ + /* https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-tap-highlight-color */ + html { + -webkit-tap-highlight-color: rgba(128, 128, 128, 0.5); + } + + /* === Scrollbars === */ + + ::-webkit-scrollbar { + @apply w-2; + @apply h-2; + } + + ::-webkit-scrollbar-track { + @apply !bg-muted; + } + ::-webkit-scrollbar-thumb { + @apply rounded-sm !bg-muted-foreground/30; + } + + /* Firefox */ + /* https://developer.mozilla.org/en-US/docs/Web/CSS/scrollbar-color#browser_compatibility */ + html { + scrollbar-color: hsl(215.4 16.3% 46.9% / 0.3); + } + + html.dark { + scrollbar-color: hsl(215.4 16.3% 56.9% / 0.3); + } + + .hide-scrollbar::-webkit-scrollbar { + display: none; + } + + .hide-scrollbar { + -ms-overflow-style: none; + scrollbar-width: none; + } + + .antialised { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } + + pre { + @apply mb-4 mt-6 max-h-[650px] overflow-x-auto rounded-lg border !bg-zinc-950 py-4 dark:!bg-zinc-900 + + } + pre code { + @apply relative rounded font-mono text-sm ; + } + pre code .line { + @apply px-4 min-h-[1.5rem] py-0.5 w-full inline-block; + } + } +@layer utilities { + .step { + counter-increment: step; + } + + .step:before { + @apply absolute w-9 h-9 bg-muted rounded-full font-mono font-medium text-center text-base inline-flex items-center justify-center -indent-px border-4 border-background; + @apply ml-[-50px] mt-[-4px]; + content: counter(step); + } +} + +@media (max-width: 640px) { + .container { + @apply px-4; + } +} + + + diff --git a/apps/www/.vitepress/theme/styles/shiki.css b/apps/www/.vitepress/theme/styles/shiki.css new file mode 100644 index 00000000..a35beff2 --- /dev/null +++ b/apps/www/.vitepress/theme/styles/shiki.css @@ -0,0 +1,13 @@ +:root { + --shiki-color-text: #EEEEEE; + --shiki-color-background: #ffffff; + --shiki-token-constant: #ffffff; + --shiki-token-string: #ffffff88; + --shiki-token-comment: #880000; + --shiki-token-keyword: #ffffff88; + --shiki-token-parameter: #AA0000; + --shiki-token-function: #ffffff; + --shiki-token-string-expression: #ffffff88; + --shiki-token-punctuation: #ffffff; + --shiki-token-link: #EE0000; +} \ No newline at end of file diff --git a/apps/www/.vitepress/theme/styles/vp-doc.css b/apps/www/.vitepress/theme/styles/vp-doc.css new file mode 100644 index 00000000..e38d6893 --- /dev/null +++ b/apps/www/.vitepress/theme/styles/vp-doc.css @@ -0,0 +1,570 @@ +:root { + --vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2'/%3E%3C/svg%3E"); + --vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2m-6 9 2 2 4-4'/%3E%3C/svg%3E"); + --vp-code-bg: hsl(240 3.7% 15.9%); + --vp-c-divider: hsl(240 3.7% 15.9%); +} + + +/** + * Headings + * -------------------------------------------------------------------------- */ + +.vp-doc h1, +.vp-doc h2, +.vp-doc h3, +.vp-doc h4, +.vp-doc h5, +.vp-doc h6 { + position: relative; + font-weight: 600; + outline: none; +} + +.vp-doc h1 { + letter-spacing: -0.02em; + line-height: 40px; + font-size: 28px; +} + +.vp-doc h2 { + /* margin: 48px 0 16px; */ + margin: 16px 0 16px; + border-top: 1px solid var(--vp-c-divider); + padding-top: 24px; + letter-spacing: -0.02em; + line-height: 32px; + font-size: 24px; +} + +.vp-doc h3 { + margin: 32px 0 0; + letter-spacing: -0.01em; + line-height: 28px; + font-size: 20px; +} + +.vp-doc .header-anchor { + position: absolute; + top: 0; + left: 0; + margin-left: -0.87em; + font-weight: 500; + user-select: none; + opacity: 0; + text-decoration: none; + transition: + color 0.25s, + opacity 0.25s; +} + +.vp-doc .header-anchor:before { + content: var(--vp-header-anchor-symbol); +} + +.vp-doc h1:hover .header-anchor, +.vp-doc h1 .header-anchor:focus, +.vp-doc h2:hover .header-anchor, +.vp-doc h2 .header-anchor:focus, +.vp-doc h3:hover .header-anchor, +.vp-doc h3 .header-anchor:focus, +.vp-doc h4:hover .header-anchor, +.vp-doc h4 .header-anchor:focus, +.vp-doc h5:hover .header-anchor, +.vp-doc h5 .header-anchor:focus, +.vp-doc h6:hover .header-anchor, +.vp-doc h6 .header-anchor:focus { + opacity: 1; +} + +@media (min-width: 768px) { + .vp-doc h1 { + letter-spacing: -0.02em; + line-height: 40px; + font-size: 32px; + } +} + +.vp-doc h2 .header-anchor { + top: 24px; +} + +/** + * Paragraph and inline elements + * -------------------------------------------------------------------------- */ + +/* .vp-doc p, +.vp-doc summary { + margin: 16px 0; +} + +.vp-doc p { + line-height: 28px; +} + +.vp-doc blockquote { + margin: 16px 0; + border-left: 2px solid var(--vp-c-divider); + padding-left: 16px; + transition: border-color 0.5s; +} + +.vp-doc blockquote > p { + margin: 0; + font-size: 16px; + color: var(--vp-c-text-2); + transition: color 0.5s; +} + +.vp-doc a { + font-weight: 500; + color: var(--vp-c-brand-1); + text-decoration: underline; + text-underline-offset: 2px; + transition: + color 0.25s, + opacity 0.25s; +} + +.vp-doc a:hover { + color: var(--vp-c-brand-2); +} + +.vp-doc strong { + font-weight: 600; +} */ + +/** + * Lists + * -------------------------------------------------------------------------- */ + +.vp-doc ul, +.vp-doc ol { + padding-left: 1.25rem; + margin: 16px 0; +} + +.vp-doc ul { + list-style: disc; +} + +.vp-doc ol { + list-style: decimal; +} + +.vp-doc li + li { + margin-top: 8px; +} + +.vp-doc li > ol, +.vp-doc li > ul { + margin: 8px 0 0; +} + +/** + * Table + * -------------------------------------------------------------------------- */ + +.vp-doc table { + display: block; + border-collapse: collapse; + margin: 20px 0; + overflow-x: auto; +} + +.vp-doc tr { + border-top: 1px solid var(--vp-c-divider); + transition: background-color 0.5s; +} + +.vp-doc tr:nth-child(2n) { + background-color: var(--vp-c-bg-soft); +} + +.vp-doc th, +.vp-doc td { + border: 1px solid var(--vp-c-divider); + padding: 8px 16px; +} + +.vp-doc th { + text-align: left; + font-size: 14px; + font-weight: 600; + color: var(--vp-c-text-2); + background-color: var(--vp-c-bg-soft); +} + +.vp-doc td { + font-size: 14px; +} + +/** + * Decorational elements + * -------------------------------------------------------------------------- */ + +.vp-doc hr { + margin: 16px 0; + border: none; + border-top: 1px solid var(--vp-c-divider); +} + +/** + * Custom Block + * -------------------------------------------------------------------------- */ + +.vp-doc .custom-block { + margin: 16px 0; +} + +.vp-doc .custom-block p { + margin: 8px 0; + line-height: 24px; +} + +.vp-doc .custom-block p:first-child { + margin: 0; +} + +.vp-doc .custom-block div[class*='language-'] { + margin: 8px 0; + border-radius: 8px; +} + +.vp-doc .custom-block div[class*='language-'] code { + font-weight: 400; + background-color: transparent; +} + +.vp-doc .custom-block .vp-code-group .tabs { + margin: 0; + border-radius: 8px 8px 0 0; +} + +/** + * Code + * -------------------------------------------------------------------------- */ + +/* inline code */ +.vp-doc :not(pre, h1, h2, h3, h4, h5, h6) > code { + font-size: var(--vp-code-font-size); + color: var(--vp-code-color); +} + +.vp-doc :not(pre) > code { + border-radius: 4px; + padding: 3px 6px; + background-color: var(--vp-code-bg); + transition: + color 0.25s, + background-color 0.5s; +} + +.vp-doc a > code { + color: var(--vp-code-link-color); +} + +.vp-doc a:hover > code { + color: var(--vp-code-link-hover-color); +} + +.vp-doc h1 > code, +.vp-doc h2 > code, +.vp-doc h3 > code { + font-size: 0.9em; +} + +.vp-doc div[class*='language-'], +.vp-block { + position: relative; + margin: 16px -24px; + background-color: var(--vp-code-block-bg); + overflow-x: auto; + transition: background-color 0.5s; +} + +@media (min-width: 640px) { + .vp-doc div[class*='language-'], + .vp-block { + border-radius: 8px; + margin: 16px 0; + } +} + +@media (max-width: 639px) { + .vp-doc li div[class*='language-'] { + border-radius: 8px 0 0 8px; + } +} + +.vp-doc div[class*='language-'] + div[class*='language-'], +.vp-doc div[class$='-api'] + div[class*='language-'], +.vp-doc div[class*='language-'] + div[class$='-api'] > div[class*='language-'] { + margin-top: -8px; +} + +.vp-doc [class*='language-'] pre, +.vp-doc [class*='language-'] code { + /*rtl:ignore*/ + direction: ltr; + /*rtl:ignore*/ + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +.vp-doc [class*='language-'] pre { + position: relative; + z-index: 1; + margin: 0; + /* padding: 20px 0; */ + background: transparent; + overflow-x: auto; +} + +.vp-doc [class*='language-'] code { + display: block; + /* padding: 0 24px; */ + width: fit-content; + min-width: 100%; + line-height: var(--vp-code-line-height); + /* font-size: var(--vp-code-font-size); */ + color: var(--vp-code-block-color); + transition: color 0.5s; +} + +.vp-doc [class*='language-'] code .highlighted { + background-color: var(--vp-code-line-highlight-color); + transition: background-color 0.5s; + margin: 0 -24px; + padding: 0 24px; + width: calc(100% + 2 * 24px); + display: inline-block; +} + +.vp-doc [class*='language-'] code .highlighted.error { + background-color: var(--vp-code-line-error-color); +} + +.vp-doc [class*='language-'] code .highlighted.warning { + background-color: var(--vp-code-line-warning-color); +} + +.vp-doc [class*='language-'] code .diff { + transition: background-color 0.5s; + margin: 0 -24px; + padding: 0 24px; + width: calc(100% + 2 * 24px); + display: inline-block; +} + +.vp-doc [class*='language-'] code .diff::before { + position: absolute; + left: 10px; +} + +.vp-doc [class*='language-'] .has-focused-lines .line:not(.has-focus) { + filter: blur(0.095rem); + opacity: 0.4; + transition: + filter 0.35s, + opacity 0.35s; +} + +.vp-doc [class*='language-'] .has-focused-lines .line:not(.has-focus) { + opacity: 0.7; + transition: + filter 0.35s, + opacity 0.35s; +} + +.vp-doc [class*='language-']:hover .has-focused-lines .line:not(.has-focus) { + filter: blur(0); + opacity: 1; +} + +.vp-doc [class*='language-'] code .diff.remove { + background-color: var(--vp-code-line-diff-remove-color); + opacity: 0.7; +} + +.vp-doc [class*='language-'] code .diff.remove::before { + content: '-'; + color: var(--vp-code-line-diff-remove-symbol-color); +} + +.vp-doc [class*='language-'] code .diff.add { + background-color: var(--vp-code-line-diff-add-color); +} + +.vp-doc [class*='language-'] code .diff.add::before { + content: '+'; + color: var(--vp-code-line-diff-add-symbol-color); +} + +.vp-doc div[class*='language-'].line-numbers-mode { + /*rtl:ignore*/ + padding-left: 32px; +} + +.vp-doc .line-numbers-wrapper { + position: absolute; + top: 0; + bottom: 0; + /*rtl:ignore*/ + left: 0; + z-index: 3; + /*rtl:ignore*/ + border-right: 1px solid var(--vp-code-block-divider-color); + padding-top: 20px; + width: 32px; + text-align: center; + font-family: var(--vp-font-family-mono); + line-height: var(--vp-code-line-height); + font-size: var(--vp-code-font-size); + color: var(--vp-code-line-number-color); + transition: + border-color 0.5s, + color 0.5s; +} + +.vp-doc [class*='language-'] > button.copy { + /*rtl:ignore*/ + direction: ltr; + position: absolute; + top: 12px; + /*rtl:ignore*/ + right: 12px; + z-index: 3; + border: 1px solid var(--vp-code-copy-code-border-color); + border-radius: 4px; + width: 40px; + height: 40px; + background-color: var(--vp-code-copy-code-bg); + opacity: 0; + cursor: pointer; + background-image: var(--vp-icon-copy); + background-position: 50%; + background-size: 20px; + background-repeat: no-repeat; + transition: + border-color 0.25s, + background-color 0.25s, + opacity 0.25s; +} + +.vp-doc [class*='language-']:hover > button.copy, +.vp-doc [class*='language-'] > button.copy:focus { + opacity: 1; +} + +.vp-doc [class*='language-'] > button.copy:hover, +.vp-doc [class*='language-'] > button.copy.copied { + border-color: var(--vp-code-copy-code-hover-border-color); + background-color: var(--vp-code-copy-code-hover-bg); +} + +.vp-doc [class*='language-'] > button.copy.copied, +.vp-doc [class*='language-'] > button.copy:hover.copied { + /*rtl:ignore*/ + border-radius: 0 4px 4px 0; + background-color: var(--vp-code-copy-code-hover-bg); + background-image: var(--vp-icon-copied); +} + +.vp-doc [class*='language-'] > button.copy.copied::before, +.vp-doc [class*='language-'] > button.copy:hover.copied::before { + position: relative; + top: -1px; + /*rtl:ignore*/ + transform: translateX(calc(-100% - 1px)); + display: flex; + justify-content: center; + align-items: center; + border: 1px solid var(--vp-code-copy-code-hover-border-color); + /*rtl:ignore*/ + border-right: 0; + border-radius: 4px 0 0 4px; + padding: 0 10px; + width: fit-content; + height: 40px; + text-align: center; + font-size: 12px; + font-weight: 500; + color: var(--vp-code-copy-code-active-text); + background-color: var(--vp-code-copy-code-hover-bg); + white-space: nowrap; + content: var(--vp-code-copy-copied-text-content); +} + +.vp-doc [class*='language-'] > span.lang { + position: absolute; + top: 2px; + /*rtl:ignore*/ + right: 8px; + z-index: 2; + font-size: 12px; + font-weight: 500; + color: var(--vp-code-lang-color); + transition: + color 0.4s, + opacity 0.4s; + + @apply text-gray-600; +} + +.vp-doc [class*='language-']:hover > button.copy + span.lang, +.vp-doc [class*='language-'] > button.copy:focus + span.lang { + opacity: 0; +} + +/** + * Component: Team + * -------------------------------------------------------------------------- */ + +.vp-doc .VPTeamMembers { + margin-top: 24px; +} + +.vp-doc .VPTeamMembers.small.count-1 .container { + margin: 0 !important; + max-width: calc((100% - 24px) / 2) !important; +} + +.vp-doc .VPTeamMembers.small.count-2 .container, +.vp-doc .VPTeamMembers.small.count-3 .container { + max-width: 100% !important; +} + +.vp-doc .VPTeamMembers.medium.count-1 .container { + margin: 0 !important; + max-width: calc((100% - 24px) / 2) !important; +} + +/* prettier-ignore */ +:is(.vp-external-link-icon, .vp-doc a[href*='://'], .vp-doc a[target='_blank']):not(.no-icon)::after { + display: inline-block; + margin-top: -1px; + margin-left: 4px; + width: 11px; + height: 11px; + background: currentColor; + color: var(--vp-c-text-3); + flex-shrink: 0; + --icon: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' %3E%3Cpath d='M0 0h24v24H0V0z' fill='none' /%3E%3Cpath d='M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z' /%3E%3C/svg%3E"); + -webkit-mask-image: var(--icon); + mask-image: var(--icon); +} + +.vp-external-link-icon::after { + content: ''; +} \ No newline at end of file diff --git a/apps/www/.vitepress/theme/types/docs.ts b/apps/www/.vitepress/theme/types/docs.ts new file mode 100644 index 00000000..e54f3bfb --- /dev/null +++ b/apps/www/.vitepress/theme/types/docs.ts @@ -0,0 +1,9 @@ +export interface TableOfContentsItem { + title?: string + url?: string + items?: TableOfContentsItem[] +} + +export interface TableOfContents { + items: TableOfContentsItem[] +} diff --git a/apps/www/index.html b/apps/www/index.html deleted file mode 100644 index 143557b5..00000000 --- a/apps/www/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - Vite + Vue + TS - - -
- - - diff --git a/apps/www/package.json b/apps/www/package.json index 49dd817e..169aae71 100644 --- a/apps/www/package.json +++ b/apps/www/package.json @@ -23,6 +23,8 @@ "vue": "^3.3.4" }, "devDependencies": { + "@iconify-json/radix-icons": "^1.1.11", + "@iconify-json/tabler": "^1.1.89", "@iconify/vue": "^4.1.1", "@vitejs/plugin-vue": "^4.1.0", "autoprefixer": "^10.4.14", @@ -30,6 +32,7 @@ "tailwind-merge": "^1.14.0", "tailwindcss": "^3.3.2", "typescript": "^5.0.2", + "unplugin-icons": "^0.16.6", "vite": "^4.3.9", "vue-tsc": "^1.4.2" } diff --git a/apps/www/src/App.vue b/apps/www/src/App.vue deleted file mode 100644 index 7b0960d1..00000000 --- a/apps/www/src/App.vue +++ /dev/null @@ -1,21 +0,0 @@ - - - diff --git a/apps/www/src/components/Internal/Docs/Card/Card.vue b/apps/www/src/components/Internal/Docs/Card/Card.vue deleted file mode 100644 index 4db9c47a..00000000 --- a/apps/www/src/components/Internal/Docs/Card/Card.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - diff --git a/apps/www/src/components/Internal/Docs/Card/index.ts b/apps/www/src/components/Internal/Docs/Card/index.ts deleted file mode 100644 index 579ebc76..00000000 --- a/apps/www/src/components/Internal/Docs/Card/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as Card } from './Card.vue' diff --git a/apps/www/src/content/docs.md b/apps/www/src/content/docs.md new file mode 100644 index 00000000..2fee20d7 --- /dev/null +++ b/apps/www/src/content/docs.md @@ -0,0 +1,5 @@ +--- +layout: docs +--- + +docs laytou please? \ No newline at end of file diff --git a/apps/www/src/content/docs/components/accordion.md b/apps/www/src/content/docs/components/accordion.md new file mode 100644 index 00000000..384c5eff --- /dev/null +++ b/apps/www/src/content/docs/components/accordion.md @@ -0,0 +1,49 @@ +--- +title: Accordion +description: A vertically stacked set of interactive headings that each reveal a section of content. +source: https://github.com/radix-vue/shadcn-vue/tree/main/apps/www/src/lib/registry/default/ui/accordion +primitive: https://www.radix-vue.com/components/accordion.html +--- + + + + +<<< ../../../lib/registry/default/examples/AccordionDemo.vue + + + + + +## Installation + +```bash +npx shadcn-vue@latest add accordion +``` + + + +1. Install `radix-vue`: + +```bash +npm install radix-vue +``` + +2. Copy and paste the component source files linked at the top of this page into your project. + + +## Usage + +```vue + + + + + Is it accessible? + + Yes. It adheres to the WAI-ARIA design pattern. + + + +``` \ No newline at end of file diff --git a/apps/www/src/content/example/dashboard.md b/apps/www/src/content/example/dashboard.md new file mode 100644 index 00000000..32f95c0d --- /dev/null +++ b/apps/www/src/content/example/dashboard.md @@ -0,0 +1 @@ +hi \ No newline at end of file diff --git a/apps/www/src/content/index.md b/apps/www/src/content/index.md index b1c72f40..bd40584d 100644 --- a/apps/www/src/content/index.md +++ b/apps/www/src/content/index.md @@ -2,3 +2,4 @@ home: true --- +this is main content \ No newline at end of file diff --git a/apps/www/src/content/themes.md b/apps/www/src/content/themes.md new file mode 100644 index 00000000..e69de29b diff --git a/apps/www/src/lib/registry/default/examples/AccordionDemo.vue b/apps/www/src/lib/registry/default/examples/AccordionDemo.vue index 3dc961aa..7a99ad50 100644 --- a/apps/www/src/lib/registry/default/examples/AccordionDemo.vue +++ b/apps/www/src/lib/registry/default/examples/AccordionDemo.vue @@ -1,24 +1,12 @@ - diff --git a/apps/www/src/lib/registry/default/examples/index.ts b/apps/www/src/lib/registry/default/examples/index.ts new file mode 100644 index 00000000..f414dfd1 --- /dev/null +++ b/apps/www/src/lib/registry/default/examples/index.ts @@ -0,0 +1 @@ +export { default as AccordionDemo } from './AccordionDemo.vue' diff --git a/apps/www/src/lib/registry/default/ui/accordion.ts b/apps/www/src/lib/registry/default/ui/accordion.ts deleted file mode 100644 index 052a7f43..00000000 --- a/apps/www/src/lib/registry/default/ui/accordion.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { defineComponent, h } from 'vue' -import { - AccordionContent as AccordionContentPrimitive, - type AccordionContentProps, AccordionHeader as AccordionHeaderPrimitive, - type AccordionHeaderProps, AccordionItem as AccordionItemPrimitive, - type AccordionItemProps, AccordionRoot as AccordionRootPrimitive, - AccordionTrigger as AccordionTriggerPrimitive, type AccordionTriggerProps, -} from 'radix-vue' -import { ChevronDown } from 'lucide-vue-next' -import { cn } from '@/utils' - -export const Accordion = AccordionRootPrimitive - -export const AccordionContent = defineComponent( - (props, { attrs, slots }) => { - return () => h(AccordionContentPrimitive, - { class: cn('overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down', attrs.class), ...props }, - () => h('div', { class: 'pb-4 pt-0' }, slots), - ) - }, -) - -export const AccordionTrigger = defineComponent( - (_props, { attrs, slots }) => { - return () => h(AccordionHeaderPrimitive, { class: 'flex' }, - () => h(AccordionTriggerPrimitive, - { class: cn('flex flex-1 items-center justify-between py-4 text-sm font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180', attrs.class) }, - () => [slots.default(), h(ChevronDown, { class: 'h-4 w-4 shrink-0 transition-transform duration-200' })], - ), - ) - }, -) - -export const AccordionItem = defineComponent( - (props, { attrs, slots }) => { - return () => h(AccordionItemPrimitive, - { class: cn('border-b', attrs.class), ...props }, slots) - }, -) - -export const AccordionHeader = defineComponent( - (props, { attrs, slots }) => { - return () => h(AccordionHeaderPrimitive, { class: cn('flex', attrs.class), ...props }, slots) - }, -) diff --git a/apps/www/src/lib/registry/default/ui/accordion/Accordion.vue b/apps/www/src/lib/registry/default/ui/accordion/Accordion.vue new file mode 100644 index 00000000..da4a4305 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/accordion/Accordion.vue @@ -0,0 +1,14 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/accordion/AccordionContent.vue b/apps/www/src/lib/registry/default/ui/accordion/AccordionContent.vue new file mode 100644 index 00000000..06f7adb6 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/accordion/AccordionContent.vue @@ -0,0 +1,22 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/accordion/AccordionItem.vue b/apps/www/src/lib/registry/default/ui/accordion/AccordionItem.vue new file mode 100644 index 00000000..067d5da0 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/accordion/AccordionItem.vue @@ -0,0 +1,15 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/accordion/AccordionTrigger.vue b/apps/www/src/lib/registry/default/ui/accordion/AccordionTrigger.vue new file mode 100644 index 00000000..0e971519 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/accordion/AccordionTrigger.vue @@ -0,0 +1,30 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/accordion/index.ts b/apps/www/src/lib/registry/default/ui/accordion/index.ts new file mode 100644 index 00000000..9340ac06 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/accordion/index.ts @@ -0,0 +1,4 @@ +export { default as Accordion } from './Accordion.vue' +export { default as AccordionContent } from './AccordionContent.vue' +export { default as AccordionItem } from './AccordionItem.vue' +export { default as AccordionTrigger } from './AccordionTrigger.vue' diff --git a/apps/www/src/lib/registry/default/ui/alert-dialog.ts b/apps/www/src/lib/registry/default/ui/alert-dialog.ts deleted file mode 100644 index a8c4b63d..00000000 --- a/apps/www/src/lib/registry/default/ui/alert-dialog.ts +++ /dev/null @@ -1,97 +0,0 @@ -import { defineComponent, h } from 'vue' -import { - AlertDialogAction as AlertDialogActionPrimitive, type AlertDialogActionProps, - AlertDialogCancel as AlertDialogCancelPrimitive, type AlertDialogCancelProps, - type AlertDialogContentEmits, AlertDialogContent as AlertDialogContentPrimitive, type AlertDialogContentProps, - AlertDialogDescription as AlertDialogDescriptionPrimitive, type AlertDialogDescriptionProps, - AlertDialogOverlay as AlertDialogOverlayPrimitive, type AlertDialogOverlayProps, - AlertDialogPortal as AlertDialogPortalPrimitive, - AlertDialogRoot, AlertDialogTitle as AlertDialogTitlePrimitive, - type AlertDialogTitleProps, AlertDialogTrigger as AlertDialogTriggerPrimitive, - -} from 'radix-vue' -import type { ParseEmits } from '@/utils' -import { cn, useEmitAsProps } from '@/utils' -import { buttonVariants } from '@/registry/default/ui/button' - -export const AlertDialog = AlertDialogRoot -export const AlertDialogTrigger = AlertDialogTriggerPrimitive -export const AlertDialogPortal = AlertDialogPortalPrimitive - -export const AlertDialogOverlay = defineComponent( - (props, { attrs, slots }) => { - return () => h(AlertDialogOverlayPrimitive, - { class: cn('fixed inset-0 z-50 bg-background/80 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0', attrs.class), ...props }, - slots, - ) - }, { name: 'AlertDialogOverlay' }, -) - -export const AlertDialogContent = defineComponent>( - (props, { emit, attrs, slots }) => { - const emitsAsProps = useEmitAsProps(emit) - - return () => h(AlertDialogPortal, () => [ - h(AlertDialogOverlay), - h(AlertDialogContentPrimitive, { - class: cn('fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg md:w-full', attrs.class ?? ''), - ...props, - ...emitsAsProps, - }, slots), - ]) - }, { name: 'AlertDialogContent', emits: AlertDialogContentPrimitive.emits }, -) - -export const AlertDialogHeader = defineComponent( - (_props, { attrs, slots }) => { - return () => h('div', - { class: cn('flex flex-col space-y-2 text-center sm:text-left', attrs.class) }, - slots, - ) - }, { name: 'AlertDialogHeader' }, -) - -export const AlertDialogFooter = defineComponent( - (_props, { attrs, slots }) => { - return () => h('div', - { class: cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', attrs.class) }, - slots, - ) - }, { name: 'AlertDialogFooter' }, -) - -export const AlertDialogTitle = defineComponent( - (props, { attrs, slots }) => { - return () => h(AlertDialogTitlePrimitive, - { class: cn('text-lg font-semibold', attrs.class), ...props }, - slots, - ) - }, { name: 'AlertDialogTitle' }, -) - -export const AlertDialogDescription = defineComponent( - (props, { attrs, slots }) => { - return () => h(AlertDialogDescriptionPrimitive, - { class: cn('text-sm text-muted-foreground', attrs.class), ...props }, - slots, - ) - }, { name: 'AlertDialogDescription' }, -) - -export const AlertDialogAction = defineComponent( - (props, { attrs, slots }) => { - return () => h(AlertDialogActionPrimitive, - { class: cn(buttonVariants(), attrs.class), ...props }, - slots, - ) - }, { name: 'AlertDialogAction' }, -) - -export const AlertDialogCancel = defineComponent( - (props, { attrs, slots }) => { - return () => h(AlertDialogCancelPrimitive, - { class: cn(buttonVariants({ variant: 'outline' }), 'mt-2 sm:mt-0', attrs.class), ...props }, - slots, - ) - }, { name: 'AlertDialogCancel' }, -) diff --git a/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialog.vue b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialog.vue new file mode 100644 index 00000000..aa77199c --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialog.vue @@ -0,0 +1,11 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogAction.vue b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogAction.vue new file mode 100644 index 00000000..8faa0471 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogAction.vue @@ -0,0 +1,11 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogCancel.vue b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogCancel.vue new file mode 100644 index 00000000..b1e91389 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogCancel.vue @@ -0,0 +1,11 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogContent.vue b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogContent.vue new file mode 100644 index 00000000..99685897 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogContent.vue @@ -0,0 +1,30 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogDescription.vue b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogDescription.vue new file mode 100644 index 00000000..53975a87 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogDescription.vue @@ -0,0 +1,18 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogFooter.vue b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogFooter.vue new file mode 100644 index 00000000..de4af93b --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogFooter.vue @@ -0,0 +1,23 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogHeader.vue b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogHeader.vue new file mode 100644 index 00000000..a350b718 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogHeader.vue @@ -0,0 +1,18 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogTitle.vue b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogTitle.vue new file mode 100644 index 00000000..9b6491f2 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogTitle.vue @@ -0,0 +1,15 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogTrigger.vue b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogTrigger.vue new file mode 100644 index 00000000..4f5e2fd0 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogTrigger.vue @@ -0,0 +1,11 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/alert-dialog/index.ts b/apps/www/src/lib/registry/default/ui/alert-dialog/index.ts new file mode 100644 index 00000000..91d138ae --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/alert-dialog/index.ts @@ -0,0 +1,9 @@ +export { default as AlertDialog } from './AlertDialog.vue' +export { default as AlertDialogTrigger } from './AlertDialogTrigger.vue' +export { default as AlertDialogContent } from './AlertDialogContent.vue' +export { default as AlertDialogHeader } from './AlertDialogHeader.vue' +export { default as AlertDialogTitle } from './AlertDialogTitle.vue' +export { default as AlertDialogDescription } from './AlertDialogDescription.vue' +export { default as AlertDialogFooter } from './AlertDialogFooter.vue' +export { default as AlertDialogAction } from './AlertDialogAction.vue' +export { default as AlertDialogCancel } from './AlertDialogCancel.vue' diff --git a/apps/www/src/lib/registry/default/ui/alert/Alert.vue b/apps/www/src/lib/registry/default/ui/alert/Alert.vue new file mode 100644 index 00000000..641e150d --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/alert/Alert.vue @@ -0,0 +1,78 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/alert/AlertDescription.vue b/apps/www/src/lib/registry/default/ui/alert/AlertDescription.vue new file mode 100644 index 00000000..fe3f9670 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/alert/AlertDescription.vue @@ -0,0 +1,13 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/alert/AlertTitle.vue b/apps/www/src/lib/registry/default/ui/alert/AlertTitle.vue new file mode 100644 index 00000000..9821e45c --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/alert/AlertTitle.vue @@ -0,0 +1,5 @@ + diff --git a/apps/www/src/lib/registry/default/ui/alert/index.ts b/apps/www/src/lib/registry/default/ui/alert/index.ts new file mode 100644 index 00000000..2b4f31b2 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/alert/index.ts @@ -0,0 +1,3 @@ +export { default as Alert } from './Alert.vue' +export { default as AlertTitle } from './AlertTitle.vue' +export { default as AlertDescription } from './AlertDescription.vue' diff --git a/apps/www/src/lib/registry/default/ui/aspect-ratio/AspectRatio.vue b/apps/www/src/lib/registry/default/ui/aspect-ratio/AspectRatio.vue new file mode 100644 index 00000000..65291818 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/aspect-ratio/AspectRatio.vue @@ -0,0 +1,11 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/aspect-ratio/index.ts b/apps/www/src/lib/registry/default/ui/aspect-ratio/index.ts new file mode 100644 index 00000000..3faf121c --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/aspect-ratio/index.ts @@ -0,0 +1 @@ +export { default as AspectRatio } from './AspectRatio.vue' diff --git a/apps/www/src/lib/registry/default/ui/avatar/Avatar.vue b/apps/www/src/lib/registry/default/ui/avatar/Avatar.vue new file mode 100644 index 00000000..f3b10881 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/avatar/Avatar.vue @@ -0,0 +1,46 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/avatar/AvatarFallback.vue b/apps/www/src/lib/registry/default/ui/avatar/AvatarFallback.vue new file mode 100644 index 00000000..a671a219 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/avatar/AvatarFallback.vue @@ -0,0 +1,11 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/avatar/AvatarImage.vue b/apps/www/src/lib/registry/default/ui/avatar/AvatarImage.vue new file mode 100644 index 00000000..43499fa2 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/avatar/AvatarImage.vue @@ -0,0 +1,9 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/avatar/index.ts b/apps/www/src/lib/registry/default/ui/avatar/index.ts new file mode 100644 index 00000000..49741211 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/avatar/index.ts @@ -0,0 +1,3 @@ +export { default as Avatar } from './Avatar.vue' +export { default as AvatarImage } from './AvatarImage.vue' +export { default as AvatarFallback } from './AvatarFallback.vue' diff --git a/apps/www/src/lib/registry/default/ui/badge/Badge.vue b/apps/www/src/lib/registry/default/ui/badge/Badge.vue new file mode 100644 index 00000000..e0ec600b --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/badge/Badge.vue @@ -0,0 +1,42 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/badge/index.ts b/apps/www/src/lib/registry/default/ui/badge/index.ts new file mode 100644 index 00000000..1734c2d4 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/badge/index.ts @@ -0,0 +1 @@ +export { default as Badge } from './Badge.vue' diff --git a/apps/www/src/lib/registry/default/ui/breadcrumb/BreadCrumb.vue b/apps/www/src/lib/registry/default/ui/breadcrumb/BreadCrumb.vue new file mode 100644 index 00000000..0f8f3026 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/breadcrumb/BreadCrumb.vue @@ -0,0 +1,5 @@ + diff --git a/apps/www/src/lib/registry/default/ui/breadcrumb/BreadCrumbItem.vue b/apps/www/src/lib/registry/default/ui/breadcrumb/BreadCrumbItem.vue new file mode 100644 index 00000000..0df72ec5 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/breadcrumb/BreadCrumbItem.vue @@ -0,0 +1,32 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/breadcrumb/index.ts b/apps/www/src/lib/registry/default/ui/breadcrumb/index.ts new file mode 100644 index 00000000..61292a15 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/breadcrumb/index.ts @@ -0,0 +1,2 @@ +export { default as BreadCrumb } from './BreadCrumb.vue' +export { default as BreadCrumbItem } from './BreadCrumbItem.vue' diff --git a/apps/www/src/lib/registry/default/ui/button.ts b/apps/www/src/lib/registry/default/ui/button.ts deleted file mode 100644 index c4741cc1..00000000 --- a/apps/www/src/lib/registry/default/ui/button.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { defineComponent, h } from 'vue' -import { type VariantProps, cva } from 'class-variance-authority' -import { cn } from '@/utils' - -export const buttonVariants = cva( - 'inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50', - { - variants: { - variant: { - default: 'bg-primary text-primary-foreground hover:bg-primary/90', - destructive: - 'bg-destructive text-destructive-foreground hover:bg-destructive/90', - outline: - 'border border-input bg-background hover:bg-accent hover:text-accent-foreground', - secondary: - 'bg-secondary text-secondary-foreground hover:bg-secondary/80', - ghost: 'hover:bg-accent hover:text-accent-foreground', - link: 'text-primary underline-offset-4 hover:underline', - }, - size: { - default: 'h-10 px-4 py-2', - sm: 'h-9 rounded-md px-3', - lg: 'h-11 rounded-md px-8', - icon: 'h-10 w-10', - }, - }, - defaultVariants: { - variant: 'default', - size: 'default', - }, - }, -) - -interface ButtonProps extends VariantProps {} - -export const Button = defineComponent( - (props, { attrs, slots }) => { - return () => h('button', { class: cn(buttonVariants(props), attrs.class ?? '') }, slots) - }, - { name: 'Button', props: ['size', 'variant'] }, -) diff --git a/apps/www/src/lib/registry/default/ui/button/Button.vue b/apps/www/src/lib/registry/default/ui/button/Button.vue new file mode 100644 index 00000000..fc7a7176 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/button/Button.vue @@ -0,0 +1,64 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/button/index.ts b/apps/www/src/lib/registry/default/ui/button/index.ts new file mode 100644 index 00000000..ead8085f --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/button/index.ts @@ -0,0 +1 @@ +export { default as Button } from './Button.vue' diff --git a/apps/www/src/lib/registry/default/ui/calendar/Calendar.vue b/apps/www/src/lib/registry/default/ui/calendar/Calendar.vue new file mode 100644 index 00000000..07711513 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/calendar/Calendar.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/apps/www/src/lib/registry/default/ui/calendar/index.ts b/apps/www/src/lib/registry/default/ui/calendar/index.ts new file mode 100644 index 00000000..50f21114 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/calendar/index.ts @@ -0,0 +1 @@ +export { default as Calendar } from './Calendar.vue' diff --git a/apps/www/src/lib/registry/default/ui/card/Card.vue b/apps/www/src/lib/registry/default/ui/card/Card.vue new file mode 100644 index 00000000..399c74b5 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/card/Card.vue @@ -0,0 +1,23 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/card/CardContent.vue b/apps/www/src/lib/registry/default/ui/card/CardContent.vue new file mode 100644 index 00000000..9dc5a661 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/card/CardContent.vue @@ -0,0 +1,16 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/card/CardDescription.vue b/apps/www/src/lib/registry/default/ui/card/CardDescription.vue new file mode 100644 index 00000000..9b55c53c --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/card/CardDescription.vue @@ -0,0 +1,16 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/card/CardFooter.vue b/apps/www/src/lib/registry/default/ui/card/CardFooter.vue new file mode 100644 index 00000000..9dc5a661 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/card/CardFooter.vue @@ -0,0 +1,16 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/card/CardHeader.vue b/apps/www/src/lib/registry/default/ui/card/CardHeader.vue new file mode 100644 index 00000000..7422a5ad --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/card/CardHeader.vue @@ -0,0 +1,16 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/card/CardTitle.vue b/apps/www/src/lib/registry/default/ui/card/CardTitle.vue new file mode 100644 index 00000000..34f898d6 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/card/CardTitle.vue @@ -0,0 +1,20 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/card/index.ts b/apps/www/src/lib/registry/default/ui/card/index.ts new file mode 100644 index 00000000..8170483c --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/card/index.ts @@ -0,0 +1,6 @@ +export { default as Card } from './Card.vue' +export { default as CardHeader } from './CardHeader.vue' +export { default as CardTitle } from './CardTitle.vue' +export { default as CardDescription } from './CardDescription.vue' +export { default as CardContent } from './CardContent.vue' +export { default as CardFooter } from './CardFooter.vue' diff --git a/apps/www/src/lib/registry/default/ui/checkbox/Checkbox.vue b/apps/www/src/lib/registry/default/ui/checkbox/Checkbox.vue new file mode 100644 index 00000000..b088c599 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/checkbox/Checkbox.vue @@ -0,0 +1,42 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/checkbox/index.ts b/apps/www/src/lib/registry/default/ui/checkbox/index.ts new file mode 100644 index 00000000..8c28c286 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/checkbox/index.ts @@ -0,0 +1 @@ +export { default as Checkbox } from './Checkbox.vue' diff --git a/apps/www/src/lib/registry/default/ui/collapsible/Collapsible.vue b/apps/www/src/lib/registry/default/ui/collapsible/Collapsible.vue new file mode 100644 index 00000000..f3b1ef78 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/collapsible/Collapsible.vue @@ -0,0 +1,11 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/collapsible/CollapsibleContent.vue b/apps/www/src/lib/registry/default/ui/collapsible/CollapsibleContent.vue new file mode 100644 index 00000000..c4827a9e --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/collapsible/CollapsibleContent.vue @@ -0,0 +1,11 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/collapsible/CollapsibleTrigger.vue b/apps/www/src/lib/registry/default/ui/collapsible/CollapsibleTrigger.vue new file mode 100644 index 00000000..4a434639 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/collapsible/CollapsibleTrigger.vue @@ -0,0 +1,11 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/collapsible/index.ts b/apps/www/src/lib/registry/default/ui/collapsible/index.ts new file mode 100644 index 00000000..4930f4c6 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/collapsible/index.ts @@ -0,0 +1,3 @@ +export { default as Collapsible } from './Collapsible.vue' +export { default as CollapsibleTrigger } from './CollapsibleTrigger.vue' +export { default as CollapsibleContent } from './CollapsibleContent.vue' diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenu.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenu.vue new file mode 100644 index 00000000..7a587b5f --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenu.vue @@ -0,0 +1,11 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuCheckboxItem.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuCheckboxItem.vue new file mode 100644 index 00000000..24b06561 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuCheckboxItem.vue @@ -0,0 +1,34 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuContent.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuContent.vue new file mode 100644 index 00000000..e659c603 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuContent.vue @@ -0,0 +1,31 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuGroup.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuGroup.vue new file mode 100644 index 00000000..b7458d77 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuGroup.vue @@ -0,0 +1,11 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuItem.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuItem.vue new file mode 100644 index 00000000..3eac857b --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuItem.vue @@ -0,0 +1,27 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuLabel.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuLabel.vue new file mode 100644 index 00000000..972088a3 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuLabel.vue @@ -0,0 +1,13 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuRadioGroup.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuRadioGroup.vue new file mode 100644 index 00000000..bb0b173d --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuRadioGroup.vue @@ -0,0 +1,20 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuRadioItem.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuRadioItem.vue new file mode 100644 index 00000000..0ed025cc --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuRadioItem.vue @@ -0,0 +1,34 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSeparator.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSeparator.vue new file mode 100644 index 00000000..d7fe1aec --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSeparator.vue @@ -0,0 +1,12 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuShortcut.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuShortcut.vue new file mode 100644 index 00000000..5be2acac --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuShortcut.vue @@ -0,0 +1,5 @@ + diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSub.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSub.vue new file mode 100644 index 00000000..80471807 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSub.vue @@ -0,0 +1,17 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSubContent.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSubContent.vue new file mode 100644 index 00000000..c7a4cdd2 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSubContent.vue @@ -0,0 +1,33 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSubTrigger.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSubTrigger.vue new file mode 100644 index 00000000..2145acbb --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSubTrigger.vue @@ -0,0 +1,23 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuTrigger.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuTrigger.vue new file mode 100644 index 00000000..9747cc1a --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuTrigger.vue @@ -0,0 +1,11 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/context-menu/index.ts b/apps/www/src/lib/registry/default/ui/context-menu/index.ts new file mode 100644 index 00000000..157f7b1d --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/context-menu/index.ts @@ -0,0 +1,14 @@ +export { default as ContextMenu } from './ContextMenu.vue' +export { default as ContextMenuTrigger } from './ContextMenuTrigger.vue' +export { default as ContextMenuContent } from './ContextMenuContent.vue' +export { default as ContextMenuGroup } from './ContextMenuGroup.vue' +export { default as ContextMenuRadioGroup } from './ContextMenuRadioGroup.vue' +export { default as ContextMenuItem } from './ContextMenuItem.vue' +export { default as ContextMenuCheckboxItem } from './ContextMenuCheckboxItem.vue' +export { default as ContextMenuRadioItem } from './ContextMenuRadioItem.vue' +export { default as ContextMenuShortcut } from './ContextMenuShortcut.vue' +export { default as ContextMenuSeparator } from './ContextMenuSeparator.vue' +export { default as ContextMenuLabel } from './ContextMenuLabel.vue' +export { default as ContextMenuSub } from './ContextMenuSub.vue' +export { default as ContextMenuSubTrigger } from './ContextMenuSubTrigger.vue' +export { default as ContextMenuSubContent } from './ContextMenuSubContent.vue' diff --git a/apps/www/src/lib/registry/default/ui/data-table/DataTable.vue b/apps/www/src/lib/registry/default/ui/data-table/DataTable.vue new file mode 100644 index 00000000..33622dec --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/data-table/DataTable.vue @@ -0,0 +1,327 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/data-table/index.ts b/apps/www/src/lib/registry/default/ui/data-table/index.ts new file mode 100644 index 00000000..4336ee8b --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/data-table/index.ts @@ -0,0 +1 @@ +export { default as DataTable } from './DataTable.vue' diff --git a/apps/www/src/lib/registry/default/ui/date-picker/DatePicker.vue b/apps/www/src/lib/registry/default/ui/date-picker/DatePicker.vue new file mode 100644 index 00000000..b83b3837 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/date-picker/DatePicker.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/apps/www/src/lib/registry/default/ui/date-picker/index.ts b/apps/www/src/lib/registry/default/ui/date-picker/index.ts new file mode 100644 index 00000000..82ac2dc4 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/date-picker/index.ts @@ -0,0 +1 @@ +export { default as DatePicker } from './DatePicker.vue' diff --git a/apps/www/src/lib/registry/default/ui/dialog.ts b/apps/www/src/lib/registry/default/ui/dialog.ts deleted file mode 100644 index 35ee5ad3..00000000 --- a/apps/www/src/lib/registry/default/ui/dialog.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { defineComponent, h } from 'vue' -import { - DialogClose, type DialogContentEmits, DialogContent as DialogContentPrimitive, type DialogContentProps, - DialogDescription as DialogDescriptionPrimitive, type DialogDescriptionProps, - DialogOverlay as DialogOverlayPrimitive, type DialogOverlayProps, - DialogPortal as DialogPortalPrimitive, DialogRoot, - DialogTitle as DialogTitlePrimitive, type DialogTitleProps, - DialogTrigger as DialogTriggerPrimitive, -} from 'radix-vue' -import { X } from 'lucide-vue-next' -import type { ParseEmits } from '@/utils' -import { cn, useEmitAsProps } from '@/utils' - -export const Dialog = DialogRoot -export const DialogTrigger = DialogTriggerPrimitive -export const DialogPortal = DialogPortalPrimitive - -export const DialogOverlay = defineComponent( - (props, { attrs, slots }) => { - return () => h(DialogOverlayPrimitive, - { class: cn('fixed inset-0 z-50 bg-background/80 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0', attrs.class), ...props }, - slots, - ) - }, { name: 'DialogOverlay' }, -) - -export const DialogContent = defineComponent>( - (props, { emit, attrs, slots }) => { - const emitsAsProps = useEmitAsProps(emit) - - return () => h(DialogPortal, () => [ - h(DialogOverlay), - h(DialogContentPrimitive, { - class: cn('fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg md:w-full', attrs.class ?? ''), - ...props, - ...emitsAsProps, - }, () => [ - slots.default(), - h(DialogClose, - { class: 'absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground' }, - () => [h(X, { class: 'h-4 w-4' }), h('span', { class: 'sr-only' }, 'Close')], - ), - ]), - ]) - }, { name: 'DialogContent', emits: DialogContentPrimitive.emits }, -) - -export const DialogHeader = defineComponent( - (_props, { attrs, slots }) => { - return () => h('div', - { class: cn('flex flex-col space-y-1.5 text-center sm:text-left', attrs.class) }, - slots, - ) - }, { name: 'DialogHeader' }, -) - -export const DialogFooter = defineComponent( - (_props, { attrs, slots }) => { - return () => h('div', - { class: cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', attrs.class) }, - slots, - ) - }, { name: 'DialogFooter' }, -) - -export const DialogTitle = defineComponent( - (props, { attrs, slots }) => { - return () => h(DialogTitlePrimitive, - { class: cn('text-lg font-semibold leading-none tracking-tight', attrs.class), ...props }, - slots, - ) - }, { name: 'DialogTitle' }, -) - -export const DialogDescription = defineComponent( - (props, { attrs, slots }) => { - return () => h(DialogDescriptionPrimitive, - { class: cn('text-lg font-semibold leading-none tracking-tight', attrs.class), ...props }, - slots, - ) - }, { name: 'DialogDescription' }, -) diff --git a/apps/www/src/lib/registry/default/ui/dialog/Dialog.vue b/apps/www/src/lib/registry/default/ui/dialog/Dialog.vue new file mode 100644 index 00000000..65d92c86 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/dialog/Dialog.vue @@ -0,0 +1,9 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/dialog/DialogContent.vue b/apps/www/src/lib/registry/default/ui/dialog/DialogContent.vue new file mode 100644 index 00000000..74372fba --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/dialog/DialogContent.vue @@ -0,0 +1,38 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/dialog/DialogDescription.vue b/apps/www/src/lib/registry/default/ui/dialog/DialogDescription.vue new file mode 100644 index 00000000..6bf85cfa --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/dialog/DialogDescription.vue @@ -0,0 +1,15 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/dialog/DialogFooter.vue b/apps/www/src/lib/registry/default/ui/dialog/DialogFooter.vue new file mode 100644 index 00000000..734623f2 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/dialog/DialogFooter.vue @@ -0,0 +1,22 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/dialog/DialogHeader.vue b/apps/www/src/lib/registry/default/ui/dialog/DialogHeader.vue new file mode 100644 index 00000000..ad3340bd --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/dialog/DialogHeader.vue @@ -0,0 +1,17 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/dialog/DialogTitle.vue b/apps/www/src/lib/registry/default/ui/dialog/DialogTitle.vue new file mode 100644 index 00000000..5e748aae --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/dialog/DialogTitle.vue @@ -0,0 +1,20 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/dialog/DialogTrigger.vue b/apps/www/src/lib/registry/default/ui/dialog/DialogTrigger.vue new file mode 100644 index 00000000..ee0c12ff --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/dialog/DialogTrigger.vue @@ -0,0 +1,11 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/dialog/index.ts b/apps/www/src/lib/registry/default/ui/dialog/index.ts new file mode 100644 index 00000000..5cffe9e9 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/dialog/index.ts @@ -0,0 +1,7 @@ +export { default as Dialog } from './Dialog.vue' +export { default as DialogTrigger } from './DialogTrigger.vue' +export { default as DialogHeader } from './DialogHeader.vue' +export { default as DialogTitle } from './DialogTitle.vue' +export { default as DialogDescription } from './DialogDescription.vue' +export { default as DialogContent } from './DialogContent.vue' +export { default as DialogFooter } from './DialogFooter.vue' diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenu.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenu.vue new file mode 100644 index 00000000..b2b57f0e --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenu.vue @@ -0,0 +1,11 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuCheckboxItem.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuCheckboxItem.vue new file mode 100644 index 00000000..55fb1f76 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuCheckboxItem.vue @@ -0,0 +1,35 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuContent.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuContent.vue new file mode 100644 index 00000000..fb2e5941 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuContent.vue @@ -0,0 +1,36 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuGroup.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuGroup.vue new file mode 100644 index 00000000..3f201352 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuGroup.vue @@ -0,0 +1,11 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuItem.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuItem.vue new file mode 100644 index 00000000..ed2a845b --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuItem.vue @@ -0,0 +1,20 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuLabel.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuLabel.vue new file mode 100644 index 00000000..e176e081 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuLabel.vue @@ -0,0 +1,13 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuRadioGroup.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuRadioGroup.vue new file mode 100644 index 00000000..5bdc41f7 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuRadioGroup.vue @@ -0,0 +1,20 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuRadioItem.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuRadioItem.vue new file mode 100644 index 00000000..41e5ae3c --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuRadioItem.vue @@ -0,0 +1,34 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSeparator.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSeparator.vue new file mode 100644 index 00000000..73829446 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSeparator.vue @@ -0,0 +1,12 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuShortcut.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuShortcut.vue new file mode 100644 index 00000000..5be2acac --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuShortcut.vue @@ -0,0 +1,5 @@ + diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSub.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSub.vue new file mode 100644 index 00000000..7589389f --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSub.vue @@ -0,0 +1,17 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSubContent.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSubContent.vue new file mode 100644 index 00000000..cac40f96 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSubContent.vue @@ -0,0 +1,28 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSubTrigger.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSubTrigger.vue new file mode 100644 index 00000000..7679296d --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSubTrigger.vue @@ -0,0 +1,23 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuTrigger.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuTrigger.vue new file mode 100644 index 00000000..73d88670 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuTrigger.vue @@ -0,0 +1,11 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/index.ts b/apps/www/src/lib/registry/default/ui/dropdown-menu/index.ts new file mode 100644 index 00000000..b069c39b --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/index.ts @@ -0,0 +1,14 @@ +export { default as DropdownMenu } from './DropdownMenu.vue' +export { default as DropdownMenuTrigger } from './DropdownMenuTrigger.vue' +export { default as DropdownMenuContent } from './DropdownMenuContent.vue' +export { default as DropdownMenuGroup } from './DropdownMenuGroup.vue' +export { default as DropdownMenuRadioGroup } from './DropdownMenuRadioGroup.vue' +export { default as DropdownMenuItem } from './DropdownMenuItem.vue' +export { default as DropdownMenuCheckboxItem } from './DropdownMenuCheckboxItem.vue' +export { default as DropdownMenuRadioItem } from './DropdownMenuRadioItem.vue' +export { default as DropdownMenuShortcut } from './DropdownMenuShortcut.vue' +export { default as DropdownMenuSeparator } from './DropdownMenuSeparator.vue' +export { default as DropdownMenuLabel } from './DropdownMenuLabel.vue' +export { default as DropdownMenuSub } from './DropdownMenuSub.vue' +export { default as DropdownMenuSubTrigger } from './DropdownMenuSubTrigger.vue' +export { default as DropdownMenuSubContent } from './DropdownMenuSubContent.vue' diff --git a/apps/www/src/lib/registry/default/ui/hover-card/HoverCard.vue b/apps/www/src/lib/registry/default/ui/hover-card/HoverCard.vue new file mode 100644 index 00000000..00fb9c04 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/hover-card/HoverCard.vue @@ -0,0 +1,11 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/hover-card/HoverCardContent.vue b/apps/www/src/lib/registry/default/ui/hover-card/HoverCardContent.vue new file mode 100644 index 00000000..eef7d526 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/hover-card/HoverCardContent.vue @@ -0,0 +1,31 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/hover-card/HoverCardTrigger.vue b/apps/www/src/lib/registry/default/ui/hover-card/HoverCardTrigger.vue new file mode 100644 index 00000000..3e300b95 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/hover-card/HoverCardTrigger.vue @@ -0,0 +1,11 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/hover-card/index.ts b/apps/www/src/lib/registry/default/ui/hover-card/index.ts new file mode 100644 index 00000000..c7bfd32d --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/hover-card/index.ts @@ -0,0 +1,3 @@ +export { default as HoverCard } from './HoverCard.vue' +export { default as HoverCardTrigger } from './HoverCardTrigger.vue' +export { default as HoverCardContent } from './HoverCardContent.vue' diff --git a/apps/www/src/lib/registry/default/ui/input.ts b/apps/www/src/lib/registry/default/ui/input.ts deleted file mode 100644 index 9f3b58dc..00000000 --- a/apps/www/src/lib/registry/default/ui/input.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { defineComponent, h } from 'vue' -import { cn } from '@/utils' - -export const Input = defineComponent( - (_props, { attrs, slots }) => { - return () => h('input', - { class: cn('flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50', attrs.class ?? '') }, - slots) - }, - { name: 'Input' }, -) diff --git a/apps/www/src/lib/registry/default/ui/input/Input.vue b/apps/www/src/lib/registry/default/ui/input/Input.vue new file mode 100644 index 00000000..f0e2b0f7 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/input/Input.vue @@ -0,0 +1,68 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/input/index.ts b/apps/www/src/lib/registry/default/ui/input/index.ts new file mode 100644 index 00000000..a691dd6c --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/input/index.ts @@ -0,0 +1 @@ +export { default as Input } from './Input.vue' diff --git a/apps/www/src/lib/registry/default/ui/kbd/Kbd.vue b/apps/www/src/lib/registry/default/ui/kbd/Kbd.vue new file mode 100644 index 00000000..856e8529 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/kbd/Kbd.vue @@ -0,0 +1,37 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/kbd/index.ts b/apps/www/src/lib/registry/default/ui/kbd/index.ts new file mode 100644 index 00000000..0a7d6d2a --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/kbd/index.ts @@ -0,0 +1 @@ +export { default as Kbd } from './Kbd.vue' diff --git a/apps/www/src/lib/registry/default/ui/label.ts b/apps/www/src/lib/registry/default/ui/label.ts deleted file mode 100644 index 8df77c27..00000000 --- a/apps/www/src/lib/registry/default/ui/label.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { defineComponent, h } from 'vue' -import { type VariantProps, cva } from 'class-variance-authority' -import { type LabelProps } from 'radix-vue' -import { cn } from '@/utils' - -export const labelVariants = cva( - 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70', -) - -interface Props extends LabelProps, VariantProps {} - -export const Label = defineComponent( - (props, { attrs, slots }) => { - return () => h('label', { class: cn(labelVariants(), attrs.class ?? ''), ...props }, slots) - }, - { name: 'Label' }, -) diff --git a/apps/www/src/lib/registry/default/ui/label/Label.vue b/apps/www/src/lib/registry/default/ui/label/Label.vue new file mode 100644 index 00000000..e44d139e --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/label/Label.vue @@ -0,0 +1,20 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/label/index.ts b/apps/www/src/lib/registry/default/ui/label/index.ts new file mode 100644 index 00000000..572c2f01 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/label/index.ts @@ -0,0 +1 @@ +export { default as Label } from './Label.vue' diff --git a/apps/www/src/lib/registry/default/ui/menubar/Menubar.vue b/apps/www/src/lib/registry/default/ui/menubar/Menubar.vue new file mode 100644 index 00000000..fec5208e --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/menubar/Menubar.vue @@ -0,0 +1,27 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarCheckboxItem.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarCheckboxItem.vue new file mode 100644 index 00000000..55a0e27e --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarCheckboxItem.vue @@ -0,0 +1,35 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarContent.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarContent.vue new file mode 100644 index 00000000..add8ae13 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarContent.vue @@ -0,0 +1,38 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarGroup.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarGroup.vue new file mode 100644 index 00000000..853976b5 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarGroup.vue @@ -0,0 +1,11 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarItem.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarItem.vue new file mode 100644 index 00000000..8b1b93fd --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarItem.vue @@ -0,0 +1,27 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarLabel.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarLabel.vue new file mode 100644 index 00000000..3a234c1a --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarLabel.vue @@ -0,0 +1,14 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarMenu.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarMenu.vue new file mode 100644 index 00000000..fec5ee55 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarMenu.vue @@ -0,0 +1,11 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarRadioGroup.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarRadioGroup.vue new file mode 100644 index 00000000..29ec574a --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarRadioGroup.vue @@ -0,0 +1,20 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarRadioItem.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarRadioItem.vue new file mode 100644 index 00000000..7c58baed --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarRadioItem.vue @@ -0,0 +1,36 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarSeparator.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarSeparator.vue new file mode 100644 index 00000000..7646448e --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarSeparator.vue @@ -0,0 +1,9 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarShortcut.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarShortcut.vue new file mode 100644 index 00000000..5be2acac --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarShortcut.vue @@ -0,0 +1,5 @@ + diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarSub.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarSub.vue new file mode 100644 index 00000000..4adcc356 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarSub.vue @@ -0,0 +1,21 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarSubContent.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarSubContent.vue new file mode 100644 index 00000000..a2d11ad1 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarSubContent.vue @@ -0,0 +1,40 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarSubTrigger.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarSubTrigger.vue new file mode 100644 index 00000000..42c0391e --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarSubTrigger.vue @@ -0,0 +1,20 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarTrigger.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarTrigger.vue new file mode 100644 index 00000000..25c6d1a6 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarTrigger.vue @@ -0,0 +1,20 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/menubar/index.ts b/apps/www/src/lib/registry/default/ui/menubar/index.ts new file mode 100644 index 00000000..808ec4d3 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/menubar/index.ts @@ -0,0 +1,15 @@ +export { default as Menubar } from './Menubar.vue' +export { default as MenubarItem } from './MenubarItem.vue' +export { default as MenubarContent } from './MenubarContent.vue' +export { default as MenubarGroup } from './MenubarGroup.vue' +export { default as MenubarMenu } from './MenubarMenu.vue' +export { default as MenubarRadioGroup } from './MenubarRadioGroup.vue' +export { default as MenubarRadioItem } from './MenubarRadioItem.vue' +export { default as MenubarCheckboxItem } from './MenubarCheckboxItem.vue' +export { default as MenubarSeparator } from './MenubarSeparator.vue' +export { default as MenubarSub } from './MenubarSub.vue' +export { default as MenubarSubContent } from './MenubarSubContent.vue' +export { default as MenubarSubTrigger } from './MenubarSubTrigger.vue' +export { default as MenubarTrigger } from './MenubarTrigger.vue' +export { default as MenubarShortcut } from './MenubarShortcut.vue' +export { default as MenubarLabel } from './MenubarLabel.vue' diff --git a/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenu.vue b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenu.vue new file mode 100644 index 00000000..74a65c7a --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenu.vue @@ -0,0 +1,33 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuContent.vue b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuContent.vue new file mode 100644 index 00000000..e2a48c49 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuContent.vue @@ -0,0 +1,26 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuItem.vue b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuItem.vue new file mode 100644 index 00000000..50e1565f --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuItem.vue @@ -0,0 +1,11 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuLink.vue b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuLink.vue new file mode 100644 index 00000000..19e5812e --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuLink.vue @@ -0,0 +1,17 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuList.vue b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuList.vue new file mode 100644 index 00000000..c30dcde3 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuList.vue @@ -0,0 +1,20 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuListItem.vue b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuListItem.vue new file mode 100644 index 00000000..356aaaa9 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuListItem.vue @@ -0,0 +1,27 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuTrigger.vue b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuTrigger.vue new file mode 100644 index 00000000..3a7f514c --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuTrigger.vue @@ -0,0 +1,32 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/navigation-menu/index.ts b/apps/www/src/lib/registry/default/ui/navigation-menu/index.ts new file mode 100644 index 00000000..38f20da2 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/navigation-menu/index.ts @@ -0,0 +1,7 @@ +export { default as NavigationMenu } from './NavigationMenu.vue' +export { default as NavigationMenuList } from './NavigationMenuList.vue' +export { default as NavigationMenuItem } from './NavigationMenuItem.vue' +export { default as NavigationMenuTrigger } from './NavigationMenuTrigger.vue' +export { default as NavigationMenuContent } from './NavigationMenuContent.vue' +export { default as NavigationMenuLink } from './NavigationMenuLink.vue' +export { default as NavigationMenuListItem } from './NavigationMenuListItem.vue' diff --git a/apps/www/src/lib/registry/default/ui/popover.ts b/apps/www/src/lib/registry/default/ui/popover.ts deleted file mode 100644 index 14eb19fc..00000000 --- a/apps/www/src/lib/registry/default/ui/popover.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { defineComponent, h } from 'vue' -import { - type PopoverContentEmits, PopoverContent as PopoverContentPrimitive, type PopoverContentProps, - PopoverPortal, - PopoverRoot, - PopoverTrigger as PopoverTriggerPrimitive, -} from 'radix-vue' -import { type ParseEmits, cn } from '@/utils' - -export const Popover = PopoverRoot -export const PopoverTrigger = PopoverTriggerPrimitive - -export const PopoverContent = defineComponent>( - (props, { attrs, slots }) => { - return () => h(PopoverPortal, - () => h(PopoverContentPrimitive, - { - align: 'center', - sideOffset: 20, // set default value - - ...attrs, - ...props, - class: cn('z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2', attrs.class), - }, slots), - ) - }, { - name: 'PopoverContent', - }, -) diff --git a/apps/www/src/lib/registry/default/ui/popover/Popover.vue b/apps/www/src/lib/registry/default/ui/popover/Popover.vue new file mode 100644 index 00000000..76b0071f --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/popover/Popover.vue @@ -0,0 +1,11 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/popover/PopoverContent.vue b/apps/www/src/lib/registry/default/ui/popover/PopoverContent.vue new file mode 100644 index 00000000..3b5a2cd0 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/popover/PopoverContent.vue @@ -0,0 +1,31 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/popover/PopoverTrigger.vue b/apps/www/src/lib/registry/default/ui/popover/PopoverTrigger.vue new file mode 100644 index 00000000..22f4772a --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/popover/PopoverTrigger.vue @@ -0,0 +1,11 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/popover/index.ts b/apps/www/src/lib/registry/default/ui/popover/index.ts new file mode 100644 index 00000000..495d55a8 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/popover/index.ts @@ -0,0 +1,3 @@ +export { default as Popover } from './Popover.vue' +export { default as PopoverTrigger } from './PopoverTrigger.vue' +export { default as PopoverContent } from './PopoverContent.vue' diff --git a/apps/www/src/lib/registry/default/ui/progress/Progress.vue b/apps/www/src/lib/registry/default/ui/progress/Progress.vue new file mode 100644 index 00000000..37df7e6c --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/progress/Progress.vue @@ -0,0 +1,38 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/progress/index.ts b/apps/www/src/lib/registry/default/ui/progress/index.ts new file mode 100644 index 00000000..eace9893 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/progress/index.ts @@ -0,0 +1 @@ +export { default as Progress } from './Progress.vue' diff --git a/apps/www/src/lib/registry/default/ui/radio-group/RadioGroup.vue b/apps/www/src/lib/registry/default/ui/radio-group/RadioGroup.vue new file mode 100644 index 00000000..1eff3f58 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/radio-group/RadioGroup.vue @@ -0,0 +1,12 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/radio-group/RadioGroupItem.vue b/apps/www/src/lib/registry/default/ui/radio-group/RadioGroupItem.vue new file mode 100644 index 00000000..6d74489d --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/radio-group/RadioGroupItem.vue @@ -0,0 +1,29 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/radio-group/index.ts b/apps/www/src/lib/registry/default/ui/radio-group/index.ts new file mode 100644 index 00000000..fa1da9c2 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/radio-group/index.ts @@ -0,0 +1,2 @@ +export { default as RadioGroup } from './RadioGroup.vue' +export { default as RadioGroupItem } from './RadioGroupItem.vue' diff --git a/apps/www/src/lib/registry/default/ui/scroll-area/ScrollArea.vue b/apps/www/src/lib/registry/default/ui/scroll-area/ScrollArea.vue new file mode 100644 index 00000000..f0c7fc61 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/scroll-area/ScrollArea.vue @@ -0,0 +1,40 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/scroll-area/index.ts b/apps/www/src/lib/registry/default/ui/scroll-area/index.ts new file mode 100644 index 00000000..82a7ce7d --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/scroll-area/index.ts @@ -0,0 +1 @@ +export { default as ScrollArea } from './ScrollArea.vue' diff --git a/apps/www/src/lib/registry/default/ui/select.tsx b/apps/www/src/lib/registry/default/ui/select.tsx deleted file mode 100644 index 7f4534ce..00000000 --- a/apps/www/src/lib/registry/default/ui/select.tsx +++ /dev/null @@ -1,112 +0,0 @@ -import { defineComponent } from 'vue' -import { - type SelectContentEmits, SelectContent as SelectContentPrimitive, type SelectContentProps, - SelectGroup as SelectGroupPrimitive, - SelectIcon, SelectItemIndicator, - SelectItem as SelectItemPrimitive, type SelectItemProps, - SelectItemText, - SelectLabel as SelectLabelPrimitive, type SelectLabelProps, - SelectPortal, SelectRoot, - SelectSeparator as SelectSeparatorPrimitive, type SelectSeparatorProps, - SelectTrigger as SelectTriggerPrimitive, type SelectTriggerProps, - SelectValue as SelectValuePrimitive, SelectViewport, -} from 'radix-vue' -import { Check, ChevronDown } from 'lucide-vue-next' -import type { ParseEmits } from '@/utils' -import { cn, convertToComponent, useEmitAsProps } from '@/utils' - -export const Select = SelectRoot -export const SelectGroup = SelectGroupPrimitive -export const SelectValue = SelectValuePrimitive - -// Convert Functional component to valid VNode to be use in JSX -const IChevrondown = convertToComponent(ChevronDown) -const ICheck = convertToComponent(Check) - -export const SelectTrigger = defineComponent( - (props, { attrs, slots }) => { - return () => ( - - { slots.default?.() } - - - - - - ) - }, { - name: 'SelectTrigger', - }, -) - -export const SelectContent = defineComponent>( - (props, { emit, attrs, slots }) => { - const position = props.position ?? 'popper' - const emitsAsProps = useEmitAsProps(emit) - return () => ( - - - - { slots.default?.()} - - - - ) - }, { name: 'SelectContent', emits: SelectContentPrimitive.emits }, -) - -export const SelectLabel = defineComponent( - (props, { attrs, slots }) => { - return () => ( - - { slots.default?.() } - - ) - }, { name: 'SelectLabel' }, -) - -export const SelectItem = defineComponent( - (props, { attrs, slots }) => { - return () => ( - - - - - - - - - { slots.default?.() } - - - ) - }, { name: 'SelectItem' }, -) - -export const SelectSeparator = defineComponent( - (props, { attrs, slots }) => { - return () => ( - - { slots.default?.() } - - ) - }, { name: 'SelectSeparator' }, -) diff --git a/apps/www/src/lib/registry/default/ui/select/Select.vue b/apps/www/src/lib/registry/default/ui/select/Select.vue new file mode 100644 index 00000000..4c8d371a --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/select/Select.vue @@ -0,0 +1,9 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/select/SelectContent.vue b/apps/www/src/lib/registry/default/ui/select/SelectContent.vue new file mode 100644 index 00000000..a5b0e342 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/select/SelectContent.vue @@ -0,0 +1,43 @@ + + + + + diff --git a/apps/www/src/lib/registry/default/ui/select/SelectGroup.vue b/apps/www/src/lib/registry/default/ui/select/SelectGroup.vue new file mode 100644 index 00000000..e31301c7 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/select/SelectGroup.vue @@ -0,0 +1,12 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/select/SelectItem.vue b/apps/www/src/lib/registry/default/ui/select/SelectItem.vue new file mode 100644 index 00000000..9504f962 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/select/SelectItem.vue @@ -0,0 +1,32 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/select/SelectItemText.vue b/apps/www/src/lib/registry/default/ui/select/SelectItemText.vue new file mode 100644 index 00000000..a0bb5c24 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/select/SelectItemText.vue @@ -0,0 +1,11 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/select/SelectLabel.vue b/apps/www/src/lib/registry/default/ui/select/SelectLabel.vue new file mode 100644 index 00000000..d917d1ec --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/select/SelectLabel.vue @@ -0,0 +1,14 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/select/SelectSeparator.vue b/apps/www/src/lib/registry/default/ui/select/SelectSeparator.vue new file mode 100644 index 00000000..81bb86c7 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/select/SelectSeparator.vue @@ -0,0 +1,10 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/select/SelectTrigger.vue b/apps/www/src/lib/registry/default/ui/select/SelectTrigger.vue new file mode 100644 index 00000000..607e9010 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/select/SelectTrigger.vue @@ -0,0 +1,31 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/select/SelectValue.vue b/apps/www/src/lib/registry/default/ui/select/SelectValue.vue new file mode 100644 index 00000000..4bc37dd8 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/select/SelectValue.vue @@ -0,0 +1,11 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/select/index.ts b/apps/www/src/lib/registry/default/ui/select/index.ts new file mode 100644 index 00000000..f188cc49 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/select/index.ts @@ -0,0 +1,9 @@ +export { default as Select } from './Select.vue' +export { default as SelectValue } from './SelectValue.vue' +export { default as SelectTrigger } from './SelectTrigger.vue' +export { default as SelectContent } from './SelectContent.vue' +export { default as SelectGroup } from './SelectGroup.vue' +export { default as SelectItem } from './SelectItem.vue' +export { default as SelectItemText } from './SelectItemText.vue' +export { default as SelectLabel } from './SelectLabel.vue' +export { default as SelectSeparator } from './SelectSeparator.vue' diff --git a/apps/www/src/lib/registry/default/ui/separator/Separator.vue b/apps/www/src/lib/registry/default/ui/separator/Separator.vue new file mode 100644 index 00000000..1e6b3f3f --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/separator/Separator.vue @@ -0,0 +1,15 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/separator/index.ts b/apps/www/src/lib/registry/default/ui/separator/index.ts new file mode 100644 index 00000000..2287bcb9 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/separator/index.ts @@ -0,0 +1 @@ +export { default as Separator } from './Separator.vue' diff --git a/apps/www/src/lib/registry/default/ui/skeleton/Skeleton.vue b/apps/www/src/lib/registry/default/ui/skeleton/Skeleton.vue new file mode 100644 index 00000000..bf3b943a --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/skeleton/Skeleton.vue @@ -0,0 +1,13 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/skeleton/index.ts b/apps/www/src/lib/registry/default/ui/skeleton/index.ts new file mode 100644 index 00000000..be21fad3 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/skeleton/index.ts @@ -0,0 +1 @@ +export { default as Skeleton } from './Skeleton.vue' diff --git a/apps/www/src/lib/registry/default/ui/slider/Slider.vue b/apps/www/src/lib/registry/default/ui/slider/Slider.vue new file mode 100644 index 00000000..4888201e --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/slider/Slider.vue @@ -0,0 +1,58 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/slider/index.ts b/apps/www/src/lib/registry/default/ui/slider/index.ts new file mode 100644 index 00000000..1c945deb --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/slider/index.ts @@ -0,0 +1 @@ +export { default as Slider } from './Slider.vue' diff --git a/apps/www/src/lib/registry/default/ui/switch/Switch.vue b/apps/www/src/lib/registry/default/ui/switch/Switch.vue new file mode 100644 index 00000000..7983d1ae --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/switch/Switch.vue @@ -0,0 +1,35 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/switch/index.ts b/apps/www/src/lib/registry/default/ui/switch/index.ts new file mode 100644 index 00000000..87b4b17d --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/switch/index.ts @@ -0,0 +1 @@ +export { default as Switch } from './Switch.vue' diff --git a/apps/www/src/lib/registry/default/ui/table/Table.vue b/apps/www/src/lib/registry/default/ui/table/Table.vue new file mode 100644 index 00000000..cf275445 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/table/Table.vue @@ -0,0 +1,15 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/table/TableBody.vue b/apps/www/src/lib/registry/default/ui/table/TableBody.vue new file mode 100644 index 00000000..09d61910 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/table/TableBody.vue @@ -0,0 +1,5 @@ + diff --git a/apps/www/src/lib/registry/default/ui/table/TableCaption.vue b/apps/www/src/lib/registry/default/ui/table/TableCaption.vue new file mode 100644 index 00000000..315514af --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/table/TableCaption.vue @@ -0,0 +1,5 @@ + diff --git a/apps/www/src/lib/registry/default/ui/table/TableCell.vue b/apps/www/src/lib/registry/default/ui/table/TableCell.vue new file mode 100644 index 00000000..c7d8eb34 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/table/TableCell.vue @@ -0,0 +1,20 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/table/TableEmpty.vue b/apps/www/src/lib/registry/default/ui/table/TableEmpty.vue new file mode 100644 index 00000000..7e60756f --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/table/TableEmpty.vue @@ -0,0 +1,33 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/table/TableHead.vue b/apps/www/src/lib/registry/default/ui/table/TableHead.vue new file mode 100644 index 00000000..86515076 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/table/TableHead.vue @@ -0,0 +1,20 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/table/TableHeader.vue b/apps/www/src/lib/registry/default/ui/table/TableHeader.vue new file mode 100644 index 00000000..5051e7de --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/table/TableHeader.vue @@ -0,0 +1,13 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/table/TableRow.vue b/apps/www/src/lib/registry/default/ui/table/TableRow.vue new file mode 100644 index 00000000..b4bc54a6 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/table/TableRow.vue @@ -0,0 +1,13 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/table/index.ts b/apps/www/src/lib/registry/default/ui/table/index.ts new file mode 100644 index 00000000..44582d35 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/table/index.ts @@ -0,0 +1,8 @@ +export { default as Table } from './Table.vue' +export { default as TableBody } from './TableBody.vue' +export { default as TableCell } from './TableCell.vue' +export { default as TableHead } from './TableHead.vue' +export { default as TableHeader } from './TableHeader.vue' +export { default as TableRow } from './TableRow.vue' +export { default as TableCaption } from './TableCaption.vue' +export { default as TableEmpty } from './TableEmpty.vue' diff --git a/apps/www/src/lib/registry/default/ui/tabs/Tabs.vue b/apps/www/src/lib/registry/default/ui/tabs/Tabs.vue new file mode 100644 index 00000000..808fe019 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/tabs/Tabs.vue @@ -0,0 +1,11 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/tabs/TabsContent.vue b/apps/www/src/lib/registry/default/ui/tabs/TabsContent.vue new file mode 100644 index 00000000..223ac760 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/tabs/TabsContent.vue @@ -0,0 +1,15 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/tabs/TabsList.vue b/apps/www/src/lib/registry/default/ui/tabs/TabsList.vue new file mode 100644 index 00000000..e0b479d9 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/tabs/TabsList.vue @@ -0,0 +1,20 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/tabs/TabsTrigger.vue b/apps/www/src/lib/registry/default/ui/tabs/TabsTrigger.vue new file mode 100644 index 00000000..84a9d66f --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/tabs/TabsTrigger.vue @@ -0,0 +1,20 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/tabs/index.ts b/apps/www/src/lib/registry/default/ui/tabs/index.ts new file mode 100644 index 00000000..fbea0c68 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/tabs/index.ts @@ -0,0 +1,4 @@ +export { default as Tabs } from './Tabs.vue' +export { default as TabsTrigger } from './TabsTrigger.vue' +export { default as TabsList } from './TabsList.vue' +export { default as TabsContent } from './TabsContent.vue' diff --git a/apps/www/src/lib/registry/default/ui/textarea/Input.vue b/apps/www/src/lib/registry/default/ui/textarea/Input.vue new file mode 100644 index 00000000..f0e2b0f7 --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/textarea/Input.vue @@ -0,0 +1,68 @@ + + + diff --git a/apps/www/src/lib/registry/default/ui/textarea/Textarea.vue b/apps/www/src/lib/registry/default/ui/textarea/Textarea.vue new file mode 100644 index 00000000..79a7718d --- /dev/null +++ b/apps/www/src/lib/registry/default/ui/textarea/Textarea.vue @@ -0,0 +1,67 @@ + + +