diff --git a/README.md b/README.md index c06533d..24cafe9 100644 --- a/README.md +++ b/README.md @@ -205,6 +205,7 @@ When contributing, please clean up that text because it is not useful. - https://www.anthropic.com/research/many-shot-jailbreaking (anthropic's many-shot jailbreaking) - https://www.youtube.com/watch?v=zjkBMFhNj_g (GPT-4 Jailbreaking on 46min) - https://twitter.com/elder_plinius/status/1777937733803225287 +- https://github.com/2-fly-4-ai/V0-system-prompt ## Disclaimer diff --git a/prompts/official-product/v0/v0-system-context(hypothesized example-openv0).md b/prompts/official-product/v0/v0-system-context(hypothesized example-openv0).md new file mode 100644 index 0000000..5662f18 --- /dev/null +++ b/prompts/official-product/v0/v0-system-context(hypothesized example-openv0).md @@ -0,0 +1,1008 @@ +```json +[ + { + "name": "Accordion", + "description": "A vertically stacked set of interactive headings that each reveal a section of content.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\accordion.mdx", + "docs": { + "import": { + "source": "accordion.mdx", + "code": "import {\n Accordion,\n AccordionContent,\n AccordionItem,\n AccordionTrigger,\n} from \"@/components/ui/accordion\"" + }, + "use": [ + { + "source": "accordion.mdx", + "code": "\n \n Is it accessible?\n \n Yes. It adheres to the WAI-ARIA design pattern.\n \n \n" + } + ], + "examples": [ + { + "source": "accordion-demo.tsx", + "code": "import {\r\n Accordion,\r\n AccordionContent,\r\n AccordionItem,\r\n AccordionTrigger,\r\n} from \"@/components/ui/accordion\"\r\n\r\nexport default function AccordionDemo() {\r\n return (\r\n \r\n \r\n Is it accessible?\r\n \r\n Yes. It adheres to the WAI-ARIA design pattern.\r\n \r\n \r\n \r\n Is it styled?\r\n \r\n Yes. It comes with default styles that matches the other\r\n components' aesthetic.\r\n \r\n \r\n \r\n Is it animated?\r\n \r\n Yes. It's animated by default, but you can disable it if you\r\n prefer.\r\n \r\n \r\n \r\n )\r\n}" + } + ] + } + }, + { + "name": "Alert Dialog", + "description": "A modal dialog that interrupts the user with important content and expects a response.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\alert-dialog.mdx", + "docs": { + "import": { + "source": "alert-dialog.mdx", + "code": "import {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n AlertDialogTrigger,\n} from \"@/components/ui/alert-dialog\"" + }, + "use": [ + { + "source": "alert-dialog.mdx", + "code": "\n Open\n \n \n Are you absolutely sure?\n \n This action cannot be undone. This will permanently delete your account\n and remove your data from our servers.\n \n \n \n Cancel\n Continue\n \n \n" + } + ], + "examples": [ + { + "source": "alert-dialog-demo.tsx", + "code": "import {\r\n AlertDialog,\r\n AlertDialogAction,\r\n AlertDialogCancel,\r\n AlertDialogContent,\r\n AlertDialogDescription,\r\n AlertDialogFooter,\r\n AlertDialogHeader,\r\n AlertDialogTitle,\r\n AlertDialogTrigger,\r\n} from \"@/components/ui/alert-dialog\"\r\nimport { Button } from \"@/components/ui/button\"\r\n\r\nexport default function AlertDialogDemo() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n Are you absolutely sure?\r\n \r\n This action cannot be undone. This will permanently delete your\r\n account and remove your data from our servers.\r\n \r\n \r\n \r\n Cancel\r\n Continue\r\n \r\n \r\n \r\n )\r\n}" + } + ] + } + }, + { + "name": "Alert", + "description": "Displays a callout for user attention.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\alert.mdx", + "docs": { + "import": { + "source": "alert.mdx", + "code": "import { Alert, AlertDescription, AlertTitle } from \"@/components/ui/alert\"" + }, + "use": [ + { + "source": "alert.mdx", + "code": "\n \n Heads up!\n \n You can add components and dependencies to your app using the cli.\n \n" + } + ], + "examples": [ + { + "source": "alert-demo.tsx", + "code": "import { Terminal, Waves } from \"lucide-react\"\r\n\r\nimport {\r\n Alert,\r\n AlertDescription,\r\n AlertTitle,\r\n} from \"@/components/ui/alert\"\r\n\r\nexport default function AlertDemo() {\r\n return (\r\n \r\n \r\n Heads up!\r\n \r\n You can add components to your app using the cli.\r\n \r\n \r\n )\r\n}" + }, + { + "source": "alert-destructive.tsx", + "code": "import { AlertCircle, FileWarning, Terminal } from \"lucide-react\"\r\n\r\nimport {\r\n Alert,\r\n AlertDescription,\r\n AlertTitle,\r\n} from \"@/components/ui/alert\"\r\n\r\nexport default function AlertDestructive() {\r\n return (\r\n \r\n \r\n Error\r\n \r\n Your session has expired. Please log in again.\r\n \r\n \r\n )\r\n}" + }, + { + "source": "alert-dialog-demo.tsx", + "code": "import {\r\n AlertDialog,\r\n AlertDialogAction,\r\n AlertDialogCancel,\r\n AlertDialogContent,\r\n AlertDialogDescription,\r\n AlertDialogFooter,\r\n AlertDialogHeader,\r\n AlertDialogTitle,\r\n AlertDialogTrigger,\r\n} from \"@/components/ui/alert-dialog\"\r\nimport { Button } from \"@/components/ui/button\"\r\n\r\nexport default function AlertDialogDemo() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n Are you absolutely sure?\r\n \r\n This action cannot be undone. This will permanently delete your\r\n account and remove your data from our servers.\r\n \r\n \r\n \r\n Cancel\r\n Continue\r\n \r\n \r\n \r\n )\r\n}" + } + ] + } + }, + { + "name": "Aspect Ratio", + "description": "Displays content within a desired ratio.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\aspect-ratio.mdx", + "docs": { + "import": { + "source": "aspect-ratio.mdx", + "code": "import { AspectRatio } from \"@/components/ui/aspect-ratio\"" + }, + "use": [ + { + "source": "aspect-ratio.mdx", + "code": "
\n \n \"Image\"\n \n
" + } + ], + "examples": [ + { + "source": "aspect-ratio-demo.tsx", + "code": "import Image from \"next/image\"\r\n\r\nimport { AspectRatio } from \"@/components/ui/aspect-ratio\"\r\n\r\nexport default function AspectRatioDemo() {\r\n return (\r\n \r\n \r\n \r\n )\r\n}" + } + ] + } + }, + { + "name": "Avatar", + "description": "An image element with a fallback for representing the user.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\avatar.mdx", + "docs": { + "import": { + "source": "avatar.mdx", + "code": "import { Avatar, AvatarFallback, AvatarImage } from \"@/components/ui/avatar\"" + }, + "use": [ + { + "source": "avatar.mdx", + "code": "\n \n CN\n" + } + ], + "examples": [ + { + "source": "avatar-demo.tsx", + "code": "import {\r\n Avatar,\r\n AvatarFallback,\r\n AvatarImage,\r\n} from \"@/components/ui/avatar\"\r\n\r\nexport default function AvatarDemo() {\r\n return (\r\n \r\n \r\n CN\r\n \r\n )\r\n}" + } + ] + } + }, + { + "name": "Badge", + "description": "Displays a badge or a component that looks like a badge.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\badge.mdx", + "docs": { + "import": { + "source": "badge.mdx", + "code": "import { Badge } from \"@/components/ui/badge\"" + }, + "use": [ + { + "source": "badge.mdx", + "code": "Badge" + }, + { + "source": "badge.mdx", + "code": "import { badgeVariants } from \"@/components/ui/badge\"\nBadge" + } + ], + "examples": [ + { + "source": "badge-demo.tsx", + "code": "import { Badge } from \"@/components/ui/badge\"\r\n\r\nexport default function BadgeDemo() {\r\n return Badge\r\n}" + }, + { + "source": "badge-destructive.tsx", + "code": "import { Badge } from \"@/components/ui/badge\"\r\n\r\nexport default function BadgeDestructive() {\r\n return Destructive\r\n}" + }, + { + "source": "badge-outline.tsx", + "code": "import { Badge } from \"@/components/ui/badge\"\r\n\r\nexport default function BadgeOutline() {\r\n return Outline\r\n}" + }, + { + "source": "badge-secondary.tsx", + "code": "import { Badge } from \"@/components/ui/badge\"\r\n\r\nexport default function BadgeSecondary() {\r\n return Secondary\r\n}" + } + ] + } + }, + { + "name": "Button", + "description": "Displays a button or a component that looks like a button.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\button.mdx", + "docs": { + "import": { + "source": "button.mdx", + "code": "import { Button } from \"@/components/ui/button\"" + }, + "use": [ + { + "source": "button.mdx", + "code": "" + }, + { + "source": "button.mdx", + "code": "import { buttonVariants } from \"@/components/ui/button\"\nClick here" + } + ], + "examples": [ + { + "source": "button-as-child.tsx", + "code": "import Link from \"next/link\"\r\n\r\nimport { Button } from \"@/components/ui/button\"\r\n\r\nexport default function ButtonAsChild() {\r\n return (\r\n \r\n )\r\n}" + }, + { + "source": "button-demo.tsx", + "code": "import { Button } from \"@/components/ui/button\"\r\n\r\nexport default function ButtonDemo() {\r\n return \r\n}" + }, + { + "source": "button-destructive.tsx", + "code": "import { Button } from \"@/components/ui/button\"\r\n\r\nexport default function ButtonDestructive() {\r\n return \r\n}" + }, + { + "source": "button-ghost.tsx", + "code": "import { Button } from \"@/components/ui/button\"\r\n\r\nexport default function ButtonGhost() {\r\n return \r\n}" + }, + { + "source": "button-icon.tsx", + "code": "import { ChevronRight } from \"lucide-react\"\r\n\r\nimport { Button } from \"@/components/ui/button\"\r\n\r\nexport default function ButtonIcon() {\r\n return (\r\n \r\n )\r\n}" + }, + { + "source": "button-link.tsx", + "code": "import { Button } from \"@/components/ui/button\"\r\n\r\nexport default function ButtonLink() {\r\n return \r\n}" + }, + { + "source": "button-loading.tsx", + "code": "import { Loader2 } from \"lucide-react\"\r\n\r\nimport { Button } from \"@/components/ui/button\"\r\n\r\nexport default function ButtonLoading() {\r\n return (\r\n \r\n )\r\n}" + }, + { + "source": "button-outline.tsx", + "code": "import { Button } from \"@/components/ui/button\"\r\n\r\nexport default function ButtonOutline() {\r\n return \r\n}" + }, + { + "source": "button-secondary.tsx", + "code": "import { Button } from \"@/components/ui/button\"\r\n\r\nexport default function ButtonSecondary() {\r\n return \r\n}" + }, + { + "source": "button-with-icon.tsx", + "code": "import { Mail } from \"lucide-react\"\r\n\r\nimport { Button } from \"@/components/ui/button\"\r\n\r\nexport default function ButtonWithIcon() {\r\n return (\r\n \r\n )\r\n}" + } + ] + } + }, + { + "name": "Calendar", + "description": "A date field component that allows users to enter and edit date.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\calendar.mdx", + "docs": { + "import": { + "source": "calendar.mdx", + "code": "import { Calendar } from \"@/components/ui/calendar\"" + }, + "use": [ + { + "source": "calendar.mdx", + "code": "" + } + ], + "examples": [ + { + "source": "calendar-demo.tsx", + "code": "\"use client\"\r\n\r\nimport * as React from \"react\"\r\n\r\nimport { Calendar } from \"@/components/ui/calendar\"\r\n\r\nexport default function CalendarDemo() {\r\n const [date, setDate] = React.useState(new Date())\r\n\r\n return (\r\n \r\n )\r\n}" + } + ] + } + }, + { + "name": "Card", + "description": "Displays a card with header, content, and footer.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\card.mdx", + "docs": { + "import": { + "source": "card.mdx", + "code": "import {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/components/ui/card\"" + }, + "use": [ + { + "source": "card.mdx", + "code": "\n \n Card Title\n Card Description\n \n \n

Card Content

\n
\n \n

Card Footer

\n
\n
" + } + ], + "examples": [ + { + "source": "card-demo.tsx", + "code": "import { BellRing, Check } from \"lucide-react\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Button } from \"@/components/ui/button\"\r\nimport {\r\n Card,\r\n CardContent,\r\n CardDescription,\r\n CardFooter,\r\n CardHeader,\r\n CardTitle,\r\n} from \"@/components/ui/card\"\r\nimport { Separator } from \"@/components/ui/separator\"\r\nimport { Switch } from \"@/components/ui/switch\"\r\n\r\nconst notifications = [\r\n {\r\n title: \"Your call has been confirmed.\",\r\n description: \"1 hour ago\",\r\n },\r\n {\r\n title: \"You have a new message!\",\r\n description: \"1 hour ago\",\r\n },\r\n {\r\n title: \"Your subscription is expiring soon!\",\r\n description: \"2 hours ago\",\r\n },\r\n]\r\n\r\ntype CardProps = React.ComponentProps\r\n\r\nexport default function CardDemo({ className, ...props }: CardProps) {\r\n return (\r\n \r\n \r\n Notifications\r\n You have 3 unread messages.\r\n \r\n \r\n
\r\n \r\n
\r\n

\r\n Push Notifications\r\n

\r\n

\r\n Send notifications to device.\r\n

\r\n
\r\n \r\n
\r\n
\r\n {notifications.map((notification, index) => (\r\n \r\n \r\n
\r\n

\r\n {notification.title}\r\n

\r\n

\r\n {notification.description}\r\n

\r\n
\r\n
\r\n ))}\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n )\r\n}" + }, + { + "source": "card-with-form.tsx", + "code": "import * as React from \"react\"\r\n\r\nimport { Button } from \"@/components/ui/button\"\r\nimport {\r\n Card,\r\n CardContent,\r\n CardDescription,\r\n CardFooter,\r\n CardHeader,\r\n CardTitle,\r\n} from \"@/components/ui/card\"\r\nimport { Input } from \"@/components/ui/input\"\r\nimport { Label } from \"@/components/ui/label\"\r\nimport {\r\n Select,\r\n SelectContent,\r\n SelectItem,\r\n SelectTrigger,\r\n SelectValue,\r\n} from \"@/components/ui/select\"\r\n\r\nexport default function CardWithForm() {\r\n return (\r\n \r\n \r\n Create project\r\n Deploy your new project in one-click.\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}" + } + ] + } + }, + { + "name": "Checkbox", + "description": "A control that allows the user to toggle between checked and not checked.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\checkbox.mdx", + "docs": { + "import": { + "source": "checkbox.mdx", + "code": "import { Checkbox } from \"@/components/ui/checkbox\"" + }, + "use": [{ "source": "checkbox.mdx", "code": "" }], + "examples": [ + { + "source": "checkbox-demo.tsx", + "code": "\"use client\"\r\n\r\nimport { Checkbox } from \"@/components/ui/checkbox\"\r\n\r\nexport default function CheckboxDemo() {\r\n return (\r\n
\r\n \r\n \r\n Accept terms and conditions\r\n \r\n
\r\n )\r\n}" + }, + { + "source": "checkbox-disabled.tsx", + "code": "import { Checkbox } from \"@/components/ui/checkbox\"\r\n\r\nexport default function CheckboxDisabled() {\r\n return (\r\n
\r\n \r\n \r\n Accept terms and conditions\r\n \r\n
\r\n )\r\n}" + }, + { + "source": "checkbox-with-text.tsx", + "code": "\"use client\"\r\n\r\nimport { Checkbox } from \"@/components/ui/checkbox\"\r\n\r\nexport default function CheckboxWithText() {\r\n return (\r\n
\r\n \r\n
\r\n \r\n Accept terms and conditions\r\n \r\n

\r\n You agree to our Terms of Service and Privacy Policy.\r\n

\r\n
\r\n
\r\n )\r\n}" + } + ] + } + }, + { + "name": "Collapsible", + "description": "An interactive component which expands/collapses a panel.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\collapsible.mdx", + "docs": { + "import": { + "source": "collapsible.mdx", + "code": "import {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/components/ui/collapsible\"" + }, + "use": [ + { + "source": "collapsible.mdx", + "code": "\n Can I use this in my project?\n \n Yes. Free to use for personal and commercial projects. No attribution\n required.\n \n" + } + ], + "examples": [ + { + "source": "collapsible-demo.tsx", + "code": "\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { ChevronsUpDown, Plus, X } from \"lucide-react\"\r\n\r\nimport { Button } from \"@/components/ui/button\"\r\nimport {\r\n Collapsible,\r\n CollapsibleContent,\r\n CollapsibleTrigger,\r\n} from \"@/components/ui/collapsible\"\r\n\r\nexport default function CollapsibleDemo() {\r\n const [isOpen, setIsOpen] = React.useState(false)\r\n\r\n return (\r\n \r\n
\r\n

\r\n @peduarte starred 3 repositories\r\n

\r\n \r\n \r\n \r\n
\r\n
\r\n @radix-ui/primitives\r\n
\r\n \r\n
\r\n @radix-ui/colors\r\n
\r\n
\r\n @stitches/react\r\n
\r\n
\r\n \r\n )\r\n}" + } + ] + } + }, + { + "name": "Combobox", + "description": "Autocomplete input and command palette with a list of suggestions.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\combobox.mdx", + "docs": { + "import": { + "source": "combobox.mdx", + "code": "\"use client\"\n\nimport * as React from \"react\"\nimport { Check, ChevronsUpDown } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n} from \"@/components/ui/command\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/components/ui/popover\"\n\nconst frameworks = [\n {\n value: \"next.js\",\n label: \"Next.js\",\n },\n {\n value: \"sveltekit\",\n label: \"SvelteKit\",\n },\n {\n value: \"nuxt.js\",\n label: \"Nuxt.js\",\n },\n {\n value: \"remix\",\n label: \"Remix\",\n },\n {\n value: \"astro\",\n label: \"Astro\",\n },\n]\n\nexport function ComboboxDemo() {\n const [open, setOpen] = React.useState(false)\n const [value, setValue] = React.useState(\"\")\n\n return (\n \n \n \n {value\n ? frameworks.find((framework) => framework.value === value)?.label\n : \"Select framework...\"}\n \n \n \n \n \n \n No framework found.\n \n {frameworks.map((framework) => (\n {\n setValue(currentValue === value ? \"\" : currentValue)\n setOpen(false)\n }}\n >\n \n {framework.label}\n \n ))}\n \n \n \n \n )\n}" + }, + "use": [], + "examples": [ + { + "source": "combobox-demo.tsx", + "code": "\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { Check, ChevronsUpDown } from \"lucide-react\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Button } from \"@/components/ui/button\"\r\nimport {\r\n Command,\r\n CommandEmpty,\r\n CommandGroup,\r\n CommandInput,\r\n CommandItem,\r\n} from \"@/components/ui/command\"\r\nimport {\r\n Popover,\r\n PopoverContent,\r\n PopoverTrigger,\r\n} from \"@/components/ui/popover\"\r\n\r\nconst frameworks = [\r\n {\r\n value: \"next.js\",\r\n label: \"Next.js\",\r\n },\r\n {\r\n value: \"sveltekit\",\r\n label: \"SvelteKit\",\r\n },\r\n {\r\n value: \"nuxt.js\",\r\n label: \"Nuxt.js\",\r\n },\r\n {\r\n value: \"remix\",\r\n label: \"Remix\",\r\n },\r\n {\r\n value: \"astro\",\r\n label: \"Astro\",\r\n },\r\n]\r\n\r\nexport default function ComboboxDemo() {\r\n const [open, setOpen] = React.useState(false)\r\n const [value, setValue] = React.useState(\"\")\r\n\r\n return (\r\n \r\n \r\n \r\n {value\r\n ? frameworks.find((framework) => framework.value === value)?.label\r\n : \"Select framework...\"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n No framework found.\r\n \r\n {frameworks.map((framework) => (\r\n {\r\n setValue(currentValue === value ? \"\" : currentValue)\r\n setOpen(false)\r\n }}\r\n >\r\n \r\n {framework.label}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n )\r\n}" + }, + { + "source": "combobox-dropdown-menu.tsx", + "code": "\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { Calendar, MoreHorizontal, Tags, Trash, User } from \"lucide-react\"\r\n\r\nimport { Button } from \"@/components/ui/button\"\r\nimport {\r\n Command,\r\n CommandEmpty,\r\n CommandGroup,\r\n CommandInput,\r\n CommandItem,\r\n CommandList,\r\n} from \"@/components/ui/command\"\r\nimport {\r\n DropdownMenu,\r\n DropdownMenuContent,\r\n DropdownMenuGroup,\r\n DropdownMenuItem,\r\n DropdownMenuLabel,\r\n DropdownMenuSeparator,\r\n DropdownMenuShortcut,\r\n DropdownMenuSub,\r\n DropdownMenuSubContent,\r\n DropdownMenuSubTrigger,\r\n DropdownMenuTrigger,\r\n} from \"@/components/ui/dropdown-menu\"\r\n\r\nconst labels = [\r\n \"feature\",\r\n \"bug\",\r\n \"enhancement\",\r\n \"documentation\",\r\n \"design\",\r\n \"question\",\r\n \"maintenance\",\r\n]\r\n\r\nexport default function ComboboxDropdownMenu() {\r\n const [label, setLabel] = React.useState(\"feature\")\r\n const [open, setOpen] = React.useState(false)\r\n\r\n return (\r\n
\r\n

\r\n \r\n {label}\r\n \r\n Create a new project\r\n

\r\n \r\n \r\n \r\n \r\n \r\n Actions\r\n \r\n \r\n \r\n Assign to...\r\n \r\n \r\n \r\n Set due date...\r\n \r\n \r\n \r\n \r\n \r\n Apply label\r\n \r\n \r\n \r\n \r\n \r\n No label found.\r\n \r\n {labels.map((label) => (\r\n {\r\n setLabel(value)\r\n setOpen(false)\r\n }}\r\n >\r\n {label}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Delete\r\n ⌘⌫\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}" + }, + { + "source": "combobox-popover.tsx", + "code": "\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport {\r\n ArrowUpCircle,\r\n CheckCircle2,\r\n Circle,\r\n HelpCircle,\r\n LucideIcon,\r\n XCircle,\r\n} from \"lucide-react\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Button } from \"@/components/ui/button\"\r\nimport {\r\n Command,\r\n CommandEmpty,\r\n CommandGroup,\r\n CommandInput,\r\n CommandItem,\r\n CommandList,\r\n} from \"@/components/ui/command\"\r\nimport {\r\n Popover,\r\n PopoverContent,\r\n PopoverTrigger,\r\n} from \"@/components/ui/popover\"\r\n\r\ntype Status = {\r\n value: string\r\n label: string\r\n icon: LucideIcon\r\n}\r\n\r\nconst statuses: Status[] = [\r\n {\r\n value: \"backlog\",\r\n label: \"Backlog\",\r\n icon: HelpCircle,\r\n },\r\n {\r\n value: \"todo\",\r\n label: \"Todo\",\r\n icon: Circle,\r\n },\r\n {\r\n value: \"in progress\",\r\n label: \"In Progress\",\r\n icon: ArrowUpCircle,\r\n },\r\n {\r\n value: \"done\",\r\n label: \"Done\",\r\n icon: CheckCircle2,\r\n },\r\n {\r\n value: \"canceled\",\r\n label: \"Canceled\",\r\n icon: XCircle,\r\n },\r\n]\r\n\r\nexport default function ComboboxPopover() {\r\n const [open, setOpen] = React.useState(false)\r\n const [selectedStatus, setSelectedStatus] = React.useState(\r\n null\r\n )\r\n\r\n return (\r\n
\r\n

Status

\r\n \r\n \r\n \r\n {selectedStatus ? (\r\n <>\r\n \r\n {selectedStatus.label}\r\n \r\n ) : (\r\n <>+ Set status\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n No results found.\r\n \r\n {statuses.map((status) => (\r\n {\r\n setSelectedStatus(\r\n statuses.find((priority) => priority.value === value) ||\r\n null\r\n )\r\n setOpen(false)\r\n }}\r\n >\r\n \r\n {status.label}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}" + } + ] + } + }, + { + "name": "Command", + "description": "Fast, composable, unstyled command menu for React.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\command.mdx", + "docs": { + "import": { + "source": "command.mdx", + "code": "import {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n CommandShortcut,\n} from \"@/components/ui/command\"" + }, + "use": [ + { + "source": "command.mdx", + "code": "\n \n \n No results found.\n \n Calendar\n Search Emoji\n Calculator\n \n \n \n Profile\n Billing\n Settings\n \n \n" + }, + { + "source": "command.mdx", + "code": "export function CommandMenu() {\n const [open, setOpen] = React.useState(false)\n\n React.useEffect(() => {\n const down = (e: KeyboardEvent) => {\n if (e.key === \"k\" && (e.metaKey || e.ctrlKey)) {\n e.preventDefault()\n setOpen((open) => !open)\n }\n }\n document.addEventListener(\"keydown\", down)\n return () => document.removeEventListener(\"keydown\", down)\n }, [])\n\n return (\n \n \n \n No results found.\n \n Calendar\n Search Emoji\n Calculator\n \n \n \n )\n}" + } + ], + "examples": [ + { + "source": "command-demo.tsx", + "code": "import {\r\n Calculator,\r\n Calendar,\r\n CreditCard,\r\n Settings,\r\n Smile,\r\n User,\r\n} from \"lucide-react\"\r\n\r\nimport {\r\n Command,\r\n CommandEmpty,\r\n CommandGroup,\r\n CommandInput,\r\n CommandItem,\r\n CommandList,\r\n CommandSeparator,\r\n CommandShortcut,\r\n} from \"@/components/ui/command\"\r\n\r\nexport default function CommandDemo() {\r\n return (\r\n \r\n \r\n \r\n No results found.\r\n \r\n \r\n \r\n Calendar\r\n \r\n \r\n \r\n Search Emoji\r\n \r\n \r\n \r\n Calculator\r\n \r\n \r\n \r\n \r\n \r\n \r\n Profile\r\n ⌘P\r\n \r\n \r\n \r\n Billing\r\n ⌘B\r\n \r\n \r\n \r\n Settings\r\n ⌘S\r\n \r\n \r\n \r\n \r\n )\r\n}" + }, + { + "source": "command-dialog.tsx", + "code": "\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport {\r\n Calculator,\r\n Calendar,\r\n CreditCard,\r\n Settings,\r\n Smile,\r\n User,\r\n} from \"lucide-react\"\r\n\r\nimport {\r\n CommandDialog,\r\n CommandEmpty,\r\n CommandGroup,\r\n CommandInput,\r\n CommandItem,\r\n CommandList,\r\n CommandSeparator,\r\n CommandShortcut,\r\n} from \"@/components/ui/command\"\r\n\r\nexport default function CommandDialogDemo() {\r\n const [open, setOpen] = React.useState(false)\r\n\r\n React.useEffect(() => {\r\n const down = (e: KeyboardEvent) => {\r\n if (e.key === \"j\" && (e.metaKey || e.ctrlKey)) {\r\n e.preventDefault()\r\n setOpen((open) => !open)\r\n }\r\n }\r\n\r\n document.addEventListener(\"keydown\", down)\r\n return () => document.removeEventListener(\"keydown\", down)\r\n }, [])\r\n\r\n return (\r\n <>\r\n

\r\n Press{\" \"}\r\n \r\n J\r\n \r\n

\r\n \r\n \r\n \r\n No results found.\r\n \r\n \r\n \r\n Calendar\r\n \r\n \r\n \r\n Search Emoji\r\n \r\n \r\n \r\n Calculator\r\n \r\n \r\n \r\n \r\n \r\n \r\n Profile\r\n ⌘P\r\n \r\n \r\n \r\n Billing\r\n ⌘B\r\n \r\n \r\n \r\n Settings\r\n ⌘S\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}" + } + ] + } + }, + { + "name": "Context Menu", + "description": "Displays a menu to the user — such as a set of actions or functions — triggered by a button.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\context-menu.mdx", + "docs": { + "import": { + "source": "context-menu.mdx", + "code": "import {\n ContextMenu,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuTrigger,\n} from \"@/components/ui/context-menu\"" + }, + "use": [ + { + "source": "context-menu.mdx", + "code": "\n Right click\n \n Profile\n Billing\n Team\n Subscription\n \n" + } + ], + "examples": [ + { + "source": "context-menu-demo.tsx", + "code": "import {\r\n ContextMenu,\r\n ContextMenuCheckboxItem,\r\n ContextMenuContent,\r\n ContextMenuItem,\r\n ContextMenuLabel,\r\n ContextMenuRadioGroup,\r\n ContextMenuRadioItem,\r\n ContextMenuSeparator,\r\n ContextMenuShortcut,\r\n ContextMenuSub,\r\n ContextMenuSubContent,\r\n ContextMenuSubTrigger,\r\n ContextMenuTrigger,\r\n} from \"@/components/ui/context-menu\"\r\n\r\nexport default function ContextMenuDemo() {\r\n return (\r\n \r\n \r\n Right click here\r\n \r\n \r\n \r\n Back\r\n ⌘[\r\n \r\n \r\n Forward\r\n ⌘]\r\n \r\n \r\n Reload\r\n ⌘R\r\n \r\n \r\n More Tools\r\n \r\n \r\n Save Page As...\r\n ⇧⌘S\r\n \r\n Create Shortcut...\r\n Name Window...\r\n \r\n Developer Tools\r\n \r\n \r\n \r\n \r\n Show Bookmarks Bar\r\n ⌘⇧B\r\n \r\n Show Full URLs\r\n \r\n \r\n People\r\n \r\n \r\n Pedro Duarte\r\n \r\n Colm Tuite\r\n \r\n \r\n \r\n )\r\n}" + } + ] + } + }, + { + "name": "Date Picker", + "description": "A date picker component with range and presets.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\date-picker.mdx", + "docs": { + "import": { + "source": "date-picker.mdx", + "code": "\"use client\"\n\nimport * as React from \"react\"\nimport { format } from \"date-fns\"\nimport { Calendar as CalendarIcon } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { Calendar } from \"@/components/ui/calendar\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/components/ui/popover\"\n\nexport function DatePickerDemo() {\n const [date, setDate] = React.useState()\n\n return (\n \n \n \n \n {date ? format(date, \"PPP\") : Pick a date}\n \n \n \n \n \n \n )\n}" + }, + "use": [], + "examples": [ + { + "source": "date-picker-demo.tsx", + "code": "\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { format } from \"date-fns\"\r\nimport { Calendar as CalendarIcon } from \"lucide-react\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Button } from \"@/components/ui/button\"\r\nimport { Calendar } from \"@/components/ui/calendar\"\r\nimport {\r\n Popover,\r\n PopoverContent,\r\n PopoverTrigger,\r\n} from \"@/components/ui/popover\"\r\n\r\nexport default function DatePickerDemo() {\r\n const [date, setDate] = React.useState()\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {date ? format(date, \"PPP\") : Pick a date}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}" + }, + { + "source": "date-picker-with-presets.tsx", + "code": "\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { addDays, format } from \"date-fns\"\r\nimport { Calendar as CalendarIcon } from \"lucide-react\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Button } from \"@/components/ui/button\"\r\nimport { Calendar } from \"@/components/ui/calendar\"\r\nimport {\r\n Popover,\r\n PopoverContent,\r\n PopoverTrigger,\r\n} from \"@/components/ui/popover\"\r\nimport {\r\n Select,\r\n SelectContent,\r\n SelectItem,\r\n SelectTrigger,\r\n SelectValue,\r\n} from \"@/components/ui/select\"\r\n\r\nexport default function DatePickerWithPresets() {\r\n const [date, setDate] = React.useState()\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {date ? format(date, \"PPP\") : Pick a date}\r\n \r\n \r\n \r\n \r\n setDate(addDays(new Date(), parseInt(value)))\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n Today\r\n Tomorrow\r\n In 3 days\r\n In a week\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n )\r\n}" + }, + { + "source": "date-picker-with-range.tsx", + "code": "\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { addDays, format } from \"date-fns\"\r\nimport { Calendar as CalendarIcon } from \"lucide-react\"\r\nimport { DateRange } from \"react-day-picker\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Button } from \"@/components/ui/button\"\r\nimport { Calendar } from \"@/components/ui/calendar\"\r\nimport {\r\n Popover,\r\n PopoverContent,\r\n PopoverTrigger,\r\n} from \"@/components/ui/popover\"\r\n\r\nexport default function DatePickerWithRange({\r\n className,\r\n}: React.HTMLAttributes) {\r\n const [date, setDate] = React.useState({\r\n from: new Date(2022, 0, 20),\r\n to: addDays(new Date(2022, 0, 20), 20),\r\n })\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n {date?.from ? (\r\n date.to ? (\r\n <>\r\n {format(date.from, \"LLL dd, y\")} -{\" \"}\r\n {format(date.to, \"LLL dd, y\")}\r\n \r\n ) : (\r\n format(date.from, \"LLL dd, y\")\r\n )\r\n ) : (\r\n Pick a date\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}" + } + ] + } + }, + { + "name": "Dialog", + "description": "A window overlaid on either the primary window or another dialog window, rendering the content underneath inert.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\dialog.mdx", + "docs": { + "import": { + "source": "dialog.mdx", + "code": "import {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from \"@/components/ui/dialog\"" + }, + "use": [ + { + "source": "dialog.mdx", + "code": "\n Open\n \n \n Are you sure absolutely sure?\n \n This action cannot be undone. This will permanently delete your account\n and remove your data from our servers.\n \n \n \n" + } + ], + "examples": [ + { + "source": "dialog-demo.tsx", + "code": "import { Button } from \"@/components/ui/button\"\r\nimport {\r\n Dialog,\r\n DialogContent,\r\n DialogDescription,\r\n DialogFooter,\r\n DialogHeader,\r\n DialogTitle,\r\n DialogTrigger,\r\n} from \"@/components/ui/dialog\"\r\nimport { Input } from \"@/components/ui/input\"\r\nimport { Label } from \"@/components/ui/label\"\r\n\r\nexport default function DialogDemo() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n Edit profile\r\n \r\n Make changes to your profile here. Click save when you're done.\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n}" + } + ] + } + }, + { + "name": "Dropdown Menu", + "description": "Displays a menu to the user — such as a set of actions or functions — triggered by a button.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\dropdown-menu.mdx", + "docs": { + "import": { + "source": "dropdown-menu.mdx", + "code": "import {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"" + }, + "use": [ + { + "source": "dropdown-menu.mdx", + "code": "\n Open\n \n My Account\n \n Profile\n Billing\n Team\n Subscription\n \n" + } + ], + "examples": [ + { + "source": "dropdown-menu-checkboxes.tsx", + "code": "\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { DropdownMenuCheckboxItemProps } from \"@radix-ui/react-dropdown-menu\"\r\n\r\nimport { Button } from \"@/components/ui/button\"\r\nimport {\r\n DropdownMenu,\r\n DropdownMenuCheckboxItem,\r\n DropdownMenuContent,\r\n DropdownMenuLabel,\r\n DropdownMenuSeparator,\r\n DropdownMenuTrigger,\r\n} from \"@/components/ui/dropdown-menu\"\r\n\r\ntype Checked = DropdownMenuCheckboxItemProps[\"checked\"]\r\n\r\nexport default function DropdownMenuCheckboxes() {\r\n const [showStatusBar, setShowStatusBar] = React.useState(true)\r\n const [showActivityBar, setShowActivityBar] = React.useState(false)\r\n const [showPanel, setShowPanel] = React.useState(false)\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Appearance\r\n \r\n \r\n Status Bar\r\n \r\n \r\n Activity Bar\r\n \r\n \r\n Panel\r\n \r\n \r\n \r\n )\r\n}" + }, + { + "source": "dropdown-menu-demo.tsx", + "code": "import {\r\n Cloud,\r\n CreditCard,\r\n Github,\r\n Keyboard,\r\n LifeBuoy,\r\n LogOut,\r\n Mail,\r\n MessageSquare,\r\n Plus,\r\n PlusCircle,\r\n Settings,\r\n User,\r\n UserPlus,\r\n Users,\r\n} from \"lucide-react\"\r\n\r\nimport { Button } from \"@/components/ui/button\"\r\nimport {\r\n DropdownMenu,\r\n DropdownMenuContent,\r\n DropdownMenuGroup,\r\n DropdownMenuItem,\r\n DropdownMenuLabel,\r\n DropdownMenuPortal,\r\n DropdownMenuSeparator,\r\n DropdownMenuShortcut,\r\n DropdownMenuSub,\r\n DropdownMenuSubContent,\r\n DropdownMenuSubTrigger,\r\n DropdownMenuTrigger,\r\n} from \"@/components/ui/dropdown-menu\"\r\n\r\nexport default function DropdownMenuDemo() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n My Account\r\n \r\n \r\n \r\n \r\n Profile\r\n ⇧⌘P\r\n \r\n \r\n \r\n Billing\r\n ⌘B\r\n \r\n \r\n \r\n Settings\r\n ⌘S\r\n \r\n \r\n \r\n Keyboard shortcuts\r\n ⌘K\r\n \r\n \r\n \r\n \r\n \r\n \r\n Team\r\n \r\n \r\n \r\n \r\n Invite users\r\n \r\n \r\n \r\n \r\n \r\n Email\r\n \r\n \r\n \r\n Message\r\n \r\n \r\n \r\n \r\n More...\r\n \r\n \r\n \r\n \r\n \r\n \r\n New Team\r\n ⌘+T\r\n \r\n \r\n \r\n \r\n \r\n GitHub\r\n \r\n \r\n \r\n Support\r\n \r\n \r\n \r\n API\r\n \r\n \r\n \r\n \r\n Log out\r\n ⇧⌘Q\r\n \r\n \r\n \r\n )\r\n}" + }, + { + "source": "dropdown-menu-radio-group.tsx", + "code": "\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { DropdownMenuCheckboxItemProps } from \"@radix-ui/react-dropdown-menu\"\r\n\r\nimport { Button } from \"@/components/ui/button\"\r\nimport {\r\n DropdownMenu,\r\n DropdownMenuCheckboxItem,\r\n DropdownMenuContent,\r\n DropdownMenuLabel,\r\n DropdownMenuRadioGroup,\r\n DropdownMenuRadioItem,\r\n DropdownMenuSeparator,\r\n DropdownMenuTrigger,\r\n} from \"@/components/ui/dropdown-menu\"\r\n\r\nexport default function DropdownMenuRadioGroupDemo() {\r\n const [position, setPosition] = React.useState(\"bottom\")\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Panel Position\r\n \r\n \r\n Top\r\n Bottom\r\n Right\r\n \r\n \r\n \r\n )\r\n}" + } + ] + } + }, + { + "name": "Hover Card", + "description": "For sighted users to preview content available behind a link.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\hover-card.mdx", + "docs": { + "import": { + "source": "hover-card.mdx", + "code": "import {\n HoverCard,\n HoverCardContent,\n HoverCardTrigger,\n} from \"@/components/ui/hover-card\"" + }, + "use": [ + { + "source": "hover-card.mdx", + "code": "\n Hover\n \n The React Framework – created and maintained by @vercel.\n \n" + } + ], + "examples": [ + { + "source": "hover-card-demo.tsx", + "code": "import { CalendarDays } from \"lucide-react\"\r\n\r\nimport {\r\n Avatar,\r\n AvatarFallback,\r\n AvatarImage,\r\n} from \"@/components/ui/avatar\"\r\nimport { Button } from \"@/components/ui/button\"\r\nimport {\r\n HoverCard,\r\n HoverCardContent,\r\n HoverCardTrigger,\r\n} from \"@/components/ui/hover-card\"\r\n\r\nexport default function HoverCardDemo() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n VC\r\n \r\n
\r\n

@nextjs

\r\n

\r\n The React Framework – created and maintained by @vercel.\r\n

\r\n
\r\n {\" \"}\r\n \r\n Joined December 2021\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}" + } + ] + } + }, + { + "name": "Input", + "description": "Displays a form input field or a component that looks like an input field.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\input.mdx", + "docs": { + "import": { + "source": "input.mdx", + "code": "import { Input } from \"@/components/ui/input\"" + }, + "use": [{ "source": "input.mdx", "code": "" }], + "examples": [ + { + "source": "input-demo.tsx", + "code": "import { Input } from \"@/components/ui/input\"\r\n\r\nexport default function InputDemo() {\r\n return \r\n}" + }, + { + "source": "input-disabled.tsx", + "code": "import { Input } from \"@/components/ui/input\"\r\n\r\nexport default function InputDisabled() {\r\n return \r\n}" + }, + { + "source": "input-file.tsx", + "code": "import { Input } from \"@/components/ui/input\"\r\nimport { Label } from \"@/components/ui/label\"\r\n\r\nexport default function InputFile() {\r\n return (\r\n
\r\n \r\n \r\n
\r\n )\r\n}" + }, + { + "source": "input-with-button.tsx", + "code": "import { Button } from \"@/components/ui/button\"\r\nimport { Input } from \"@/components/ui/input\"\r\n\r\nexport default function InputWithButton() {\r\n return (\r\n
\r\n \r\n \r\n
\r\n )\r\n}" + }, + { + "source": "input-with-label.tsx", + "code": "import { Input } from \"@/components/ui/input\"\r\nimport { Label } from \"@/components/ui/label\"\r\n\r\nexport default function InputWithLabel() {\r\n return (\r\n
\r\n \r\n \r\n
\r\n )\r\n}" + }, + { + "source": "input-with-text.tsx", + "code": "import { Input } from \"@/components/ui/input\"\r\nimport { Label } from \"@/components/ui/label\"\r\n\r\nexport default function InputWithText() {\r\n return (\r\n
\r\n \r\n \r\n

Enter your email address.

\r\n
\r\n )\r\n}" + } + ] + } + }, + { + "name": "Label", + "description": "Renders an accessible label associated with controls.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\label.mdx", + "docs": { + "import": { + "source": "label.mdx", + "code": "import { Label } from \"@/components/ui/label\"" + }, + "use": [ + { + "source": "label.mdx", + "code": "" + } + ], + "examples": [ + { + "source": "label-demo.tsx", + "code": "import { Checkbox } from \"@/components/ui/checkbox\"\r\nimport { Label } from \"@/components/ui/label\"\r\n\r\nexport default function LabelDemo() {\r\n return (\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n )\r\n}" + } + ] + } + }, + { + "name": "Menubar", + "description": "A visually persistent menu common in desktop applications that provides quick access to a consistent set of commands.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\menubar.mdx", + "docs": { + "import": { + "source": "menubar.mdx", + "code": "import {\n Menubar,\n MenubarContent,\n MenubarItem,\n MenubarMenu,\n MenubarSeparator,\n MenubarShortcut,\n MenubarTrigger,\n} from \"@/components/ui/menubar\"" + }, + "use": [ + { + "source": "menubar.mdx", + "code": "\n \n File\n \n \n New Tab ⌘T\n \n New Window\n \n Share\n \n Print\n \n \n" + } + ], + "examples": [ + { + "source": "menubar-demo.tsx", + "code": "import {\r\n Menubar,\r\n MenubarCheckboxItem,\r\n MenubarContent,\r\n MenubarItem,\r\n MenubarMenu,\r\n MenubarRadioGroup,\r\n MenubarRadioItem,\r\n MenubarSeparator,\r\n MenubarShortcut,\r\n MenubarSub,\r\n MenubarSubContent,\r\n MenubarSubTrigger,\r\n MenubarTrigger,\r\n} from \"@/components/ui/menubar\"\r\n\r\nexport default function MenubarDemo() {\r\n return (\r\n \r\n \r\n File\r\n \r\n \r\n New Tab ⌘T\r\n \r\n \r\n New Window ⌘N\r\n \r\n New Incognito Window\r\n \r\n \r\n Share\r\n \r\n Email link\r\n Messages\r\n Notes\r\n \r\n \r\n \r\n \r\n Print... ⌘P\r\n \r\n \r\n \r\n \r\n Edit\r\n \r\n \r\n Undo ⌘Z\r\n \r\n \r\n Redo ⇧⌘Z\r\n \r\n \r\n \r\n Find\r\n \r\n Search the web\r\n \r\n Find...\r\n Find Next\r\n Find Previous\r\n \r\n \r\n \r\n Cut\r\n Copy\r\n Paste\r\n \r\n \r\n \r\n View\r\n \r\n Always Show Bookmarks Bar\r\n \r\n Always Show Full URLs\r\n \r\n \r\n \r\n Reload ⌘R\r\n \r\n \r\n Force Reload ⇧⌘R\r\n \r\n \r\n Toggle Fullscreen\r\n \r\n Hide Sidebar\r\n \r\n \r\n \r\n Profiles\r\n \r\n \r\n Andy\r\n Benoit\r\n Luis\r\n \r\n \r\n Edit...\r\n \r\n Add Profile...\r\n \r\n \r\n \r\n )\r\n}" + } + ] + } + }, + { + "name": "Navigation Menu", + "description": "A collection of links for navigating websites.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\navigation-menu.mdx", + "docs": { + "import": { + "source": "navigation-menu.mdx", + "code": "import {\n NavigationMenu,\n NavigationMenuContent,\n NavigationMenuIndicator,\n NavigationMenuItem,\n NavigationMenuLink,\n NavigationMenuList,\n NavigationMenuTrigger,\n NavigationMenuViewport,\n} from \"@/components/ui/navigation-menu\"" + }, + "use": [ + { + "source": "navigation-menu.mdx", + "code": "\n \n \n Item One\n \n Link\n \n \n \n" + }, + { + "source": "navigation-menu.mdx", + "code": "import { navigationMenuTriggerStyle } from \"@/components/ui/navigation-menu\"" + } + ], + "examples": [] + } + }, + { + "name": "Popover", + "description": "Displays rich content in a portal, triggered by a button.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\popover.mdx", + "docs": { + "import": { + "source": "popover.mdx", + "code": "import {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/components/ui/popover\"" + }, + "use": [ + { + "source": "popover.mdx", + "code": "\n Open\n Place content for the popover here.\n" + } + ], + "examples": [ + { + "source": "popover-demo.tsx", + "code": "import { Button } from \"@/components/ui/button\"\r\nimport { Input } from \"@/components/ui/input\"\r\nimport { Label } from \"@/components/ui/label\"\r\nimport {\r\n Popover,\r\n PopoverContent,\r\n PopoverTrigger,\r\n} from \"@/components/ui/popover\"\r\n\r\nexport default function PopoverDemo() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

Dimensions

\r\n

\r\n Set the dimensions for the layer.\r\n

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}" + } + ] + } + }, + { + "name": "Progress", + "description": "Displays an indicator showing the completion progress of a task, typically displayed as a progress bar.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\progress.mdx", + "docs": { + "import": { + "source": "progress.mdx", + "code": "import { Progress } from \"@/components/ui/progress\"" + }, + "use": [{ "source": "progress.mdx", "code": "" }], + "examples": [ + { + "source": "progress-demo.tsx", + "code": "\"use client\"\r\n\r\nimport * as React from \"react\"\r\n\r\nimport { Progress } from \"@/components/ui/progress\"\r\n\r\nexport default function ProgressDemo() {\r\n const [progress, setProgress] = React.useState(13)\r\n\r\n React.useEffect(() => {\r\n const timer = setTimeout(() => setProgress(66), 500)\r\n return () => clearTimeout(timer)\r\n }, [])\r\n\r\n return \r\n}" + } + ] + } + }, + { + "name": "Radio Group", + "description": "A set of checkable buttons—known as radio buttons—where no more than one of the buttons can be checked at a time.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\radio-group.mdx", + "docs": { + "import": { + "source": "radio-group.mdx", + "code": "import { Label } from \"@/components/ui/label\"\nimport { RadioGroup, RadioGroupItem } from \"@/components/ui/radio-group\"" + }, + "use": [ + { + "source": "radio-group.mdx", + "code": "\n
\n \n \n
\n
\n \n \n
\n
" + } + ], + "examples": [ + { + "source": "radio-group-demo.tsx", + "code": "import { Label } from \"@/components/ui/label\"\r\nimport { RadioGroup, RadioGroupItem } from \"@/components/ui/radio-group\"\r\n\r\nexport default function RadioGroupDemo() {\r\n return (\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n )\r\n}" + } + ] + } + }, + { + "name": "Scroll Area", + "description": "Augments native scroll functionality for custom, cross-browser styling.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\scroll-area.mdx", + "docs": { + "import": { + "source": "scroll-area.mdx", + "code": "import { ScrollArea } from \"@/components/ui/scroll-area\"" + }, + "use": [ + { + "source": "scroll-area.mdx", + "code": "\n Jokester began sneaking into the castle in the middle of the night and leaving\n jokes all over the place: under the king's pillow, in his soup, even in the\n royal toilet. The king was furious, but he couldn't seem to stop Jokester. And\n then, one day, the people of the kingdom discovered that the jokes left by\n Jokester were so funny that they couldn't help but laugh. And once they\n started laughing, they couldn't stop.\n" + } + ], + "examples": [ + { + "source": "scroll-area-demo.tsx", + "code": "import * as React from \"react\"\r\n\r\nimport { ScrollArea } from \"@/components/ui/scroll-area\"\r\nimport { Separator } from \"@/components/ui/separator\"\r\n\r\nconst tags = Array.from({ length: 50 }).map(\r\n (_, i, a) => `v1.2.0-beta.${a.length - i}`\r\n)\r\n\r\nexport default function ScrollAreaDemo() {\r\n return (\r\n \r\n
\r\n

Tags

\r\n {tags.map((tag) => (\r\n <>\r\n
\r\n {tag}\r\n
\r\n \r\n \r\n ))}\r\n
\r\n
\r\n )\r\n}" + } + ] + } + }, + { + "name": "Select", + "description": "Displays a list of options for the user to pick from—triggered by a button.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\select.mdx", + "docs": { + "import": { + "source": "select.mdx", + "code": "import {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\"" + }, + "use": [ + { + "source": "select.mdx", + "code": "" + } + ], + "examples": [ + { + "source": "select-demo.tsx", + "code": "import * as React from \"react\"\r\n\r\nimport {\r\n Select,\r\n SelectContent,\r\n SelectGroup,\r\n SelectItem,\r\n SelectLabel,\r\n SelectTrigger,\r\n SelectValue,\r\n} from \"@/components/ui/select\"\r\n\r\nexport default function SelectDemo() {\r\n return (\r\n \r\n )\r\n}" + } + ] + } + }, + { + "name": "Separator", + "description": "Visually or semantically separates content.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\separator.mdx", + "docs": { + "import": { + "source": "separator.mdx", + "code": "import { Separator } from \"@/components/ui/separator\"" + }, + "use": [{ "source": "separator.mdx", "code": "" }], + "examples": [ + { + "source": "separator-demo.tsx", + "code": "import { Separator } from \"@/components/ui/separator\"\r\n\r\nexport default function SeparatorDemo() {\r\n return (\r\n
\r\n
\r\n

Radix Primitives

\r\n

\r\n An open-source UI component library.\r\n

\r\n
\r\n \r\n
\r\n
Blog
\r\n \r\n
Docs
\r\n \r\n
Source
\r\n
\r\n
\r\n )\r\n}" + } + ] + } + }, + { + "name": "Sheet", + "description": "Extends the Dialog component to display content that complements the main content of the screen.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\sheet.mdx", + "docs": { + "import": { + "source": "sheet.mdx", + "code": "import {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n SheetTrigger,\n} from \"@/components/ui/sheet\"" + }, + "use": [ + { + "source": "sheet.mdx", + "code": "\n Open\n \n \n Are you sure absolutely sure?\n \n This action cannot be undone. This will permanently delete your account\n and remove your data from our servers.\n \n \n \n" + } + ], + "examples": [ + { + "source": "sheet-demo.tsx", + "code": "import { Button } from \"@/components/ui/button\"\r\nimport { Input } from \"@/components/ui/input\"\r\nimport { Label } from \"@/components/ui/label\"\r\nimport {\r\n Sheet,\r\n SheetClose,\r\n SheetContent,\r\n SheetDescription,\r\n SheetFooter,\r\n SheetHeader,\r\n SheetTitle,\r\n SheetTrigger,\r\n} from \"@/components/ui/sheet\"\r\n\r\nexport default function SheetDemo() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n Edit profile\r\n \r\n Make changes to your profile here. Click save when you're done.\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n}" + } + ] + } + }, + { + "name": "Skeleton", + "description": "Use to show a placeholder while content is loading.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\skeleton.mdx", + "docs": { + "import": { + "source": "skeleton.mdx", + "code": "import { Skeleton } from \"@/components/ui/skeleton\"" + }, + "use": [ + { + "source": "skeleton.mdx", + "code": "" + } + ], + "examples": [ + { + "source": "skeleton-demo.tsx", + "code": "import { Skeleton } from \"@/components/ui/skeleton\"\r\n\r\nexport default function SkeletonDemo() {\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n )\r\n}" + } + ] + } + }, + { + "name": "Slider", + "description": "An input where the user selects a value from within a given range.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\slider.mdx", + "docs": { + "import": { + "source": "slider.mdx", + "code": "import { Slider } from \"@/components/ui/slider\"" + }, + "use": [ + { + "source": "slider.mdx", + "code": "" + } + ], + "examples": [ + { + "source": "slider-demo.tsx", + "code": "import { cn } from \"@/lib/utils\"\r\nimport { Slider } from \"@/components/ui/slider\"\r\n\r\ntype SliderProps = React.ComponentProps\r\n\r\nexport default function SliderDemo({ className, ...props }: SliderProps) {\r\n return (\r\n \r\n )\r\n}" + } + ] + } + }, + { + "name": "Switch", + "description": "A control that allows the user to toggle between checked and not checked.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\switch.mdx", + "docs": { + "import": { + "source": "switch.mdx", + "code": "import { Switch } from \"@/components/ui/switch\"" + }, + "use": [{ "source": "switch.mdx", "code": "" }], + "examples": [ + { + "source": "switch-demo.tsx", + "code": "import { Label } from \"@/components/ui/label\"\r\nimport { Switch } from \"@/components/ui/switch\"\r\n\r\nexport default function SwitchDemo() {\r\n return (\r\n
\r\n \r\n \r\n
\r\n )\r\n}" + } + ] + } + }, + { + "name": "Table", + "description": "A responsive table component.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\table.mdx", + "docs": { + "import": { + "source": "table.mdx", + "code": "import {\n Table,\n TableBody,\n TableCaption,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"@/components/ui/table\"" + }, + "use": [ + { + "source": "table.mdx", + "code": "\n A list of your recent invoices.\n \n \n Invoice\n Status\n Method\n Amount\n \n \n \n \n INV001\n Paid\n Credit Card\n $250.00\n \n \n
" + } + ], + "examples": [ + { + "source": "table-demo.tsx", + "code": "import {\r\n Table,\r\n TableBody,\r\n TableCaption,\r\n TableCell,\r\n TableHead,\r\n TableHeader,\r\n TableRow,\r\n} from \"@/components/ui/table\"\r\n\r\nconst invoices = [\r\n {\r\n invoice: \"INV001\",\r\n paymentStatus: \"Paid\",\r\n totalAmount: \"$250.00\",\r\n paymentMethod: \"Credit Card\",\r\n },\r\n {\r\n invoice: \"INV002\",\r\n paymentStatus: \"Pending\",\r\n totalAmount: \"$150.00\",\r\n paymentMethod: \"PayPal\",\r\n },\r\n {\r\n invoice: \"INV003\",\r\n paymentStatus: \"Unpaid\",\r\n totalAmount: \"$350.00\",\r\n paymentMethod: \"Bank Transfer\",\r\n },\r\n {\r\n invoice: \"INV004\",\r\n paymentStatus: \"Paid\",\r\n totalAmount: \"$450.00\",\r\n paymentMethod: \"Credit Card\",\r\n },\r\n {\r\n invoice: \"INV005\",\r\n paymentStatus: \"Paid\",\r\n totalAmount: \"$550.00\",\r\n paymentMethod: \"PayPal\",\r\n },\r\n {\r\n invoice: \"INV006\",\r\n paymentStatus: \"Pending\",\r\n totalAmount: \"$200.00\",\r\n paymentMethod: \"Bank Transfer\",\r\n },\r\n {\r\n invoice: \"INV007\",\r\n paymentStatus: \"Unpaid\",\r\n totalAmount: \"$300.00\",\r\n paymentMethod: \"Credit Card\",\r\n },\r\n]\r\n\r\nexport default function TableDemo() {\r\n return (\r\n \r\n A list of your recent invoices.\r\n \r\n \r\n Invoice\r\n Status\r\n Method\r\n Amount\r\n \r\n \r\n \r\n {invoices.map((invoice) => (\r\n \r\n {invoice.invoice}\r\n {invoice.paymentStatus}\r\n {invoice.paymentMethod}\r\n {invoice.totalAmount}\r\n \r\n ))}\r\n \r\n
\r\n )\r\n}" + } + ] + } + }, + { + "name": "Tabs", + "description": "A set of layered sections of content—known as tab panels—that are displayed one at a time.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\tabs.mdx", + "docs": { + "import": { + "source": "tabs.mdx", + "code": "import { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\"" + }, + "use": [ + { + "source": "tabs.mdx", + "code": "\n \n Account\n Password\n \n Make changes to your account here.\n Change your password here.\n" + } + ], + "examples": [ + { + "source": "tabs-demo.tsx", + "code": "import { Button } from \"@/components/ui/button\"\r\nimport {\r\n Card,\r\n CardContent,\r\n CardDescription,\r\n CardFooter,\r\n CardHeader,\r\n CardTitle,\r\n} from \"@/components/ui/card\"\r\nimport { Input } from \"@/components/ui/input\"\r\nimport { Label } from \"@/components/ui/label\"\r\nimport {\r\n Tabs,\r\n TabsContent,\r\n TabsList,\r\n TabsTrigger,\r\n} from \"@/components/ui/tabs\"\r\n\r\nexport default function TabsDemo() {\r\n return (\r\n \r\n \r\n Account\r\n Password\r\n \r\n \r\n \r\n \r\n Account\r\n \r\n Make changes to your account here. Click save when you're done.\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Password\r\n \r\n Change your password here. After saving, you'll be logged out.\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n )\r\n}" + } + ] + } + }, + { + "name": "Textarea", + "description": "Displays a form textarea or a component that looks like a textarea.", + "docs_path": "build\\gits\\shadcn-ui$ui-openv0remix\\docs\\textarea.mdx", + "docs": { + "import": { + "source": "textarea.mdx", + "code": "import { Textarea } from \"@/components/ui/textarea\"" + }, + "use": [{ "source": "textarea.mdx", "code": "