"use client"; import { useState } from "react"; import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "@/components/ui/accordion"; import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, } from "@/components/ui/alert-dialog"; import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"; import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Calendar } from "@/components/ui/calendar"; import { CustomCalendar } from "@/components/ui/custom-calendar"; import { ExampleFormDialog } from "@/components/examples/ExampleFormDialog"; import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "@/components/ui/card"; import { Checkbox } from "@/components/ui/checkbox"; import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "@/components/ui/collapsible"; import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from "@/components/ui/command"; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from "@/components/ui/dialog"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover"; import { Progress } from "@/components/ui/progress"; import { RadioGroup, RadioGroupItem } from "@/components/ui/radio-group"; import { ScrollArea } from "@/components/ui/scroll-area"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"; import { Separator } from "@/components/ui/separator"; import { Slider } from "@/components/ui/slider"; import { Switch } from "@/components/ui/switch"; import { Table, TableBody, TableCaption, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { Textarea } from "@/components/ui/textarea"; import { AlertCircle, Check, ChevronDown, Info, Loader2, MoreHorizontal, Plus, Search, Trash2, User, } from "lucide-react"; import { toast } from "sonner"; export default function UIComponentsDemoPage() { const [date, setDate] = useState(new Date()); const [progress, setProgress] = useState(45); const [switchOn, setSwitchOn] = useState(false); const [checkboxChecked, setCheckboxChecked] = useState(false); const [sliderValue, setSliderValue] = useState([50]); const [radioValue, setRadioValue] = useState("option1"); return (
{/* 헤더 */}

shadcn/ui 컴포넌트 데모

프로젝트에서 사용 가능한 모든 UI 컴포넌트를 확인하세요

{/* 실전 예시 폼 */} 🎯 실전 예시: 완전한 입력 폼 모든 shadcn/ui 컴포넌트를 활용한 완전한 폼 예시입니다. 유효성 검사, 에러 처리, 반응형 디자인이 모두 포함되어 있습니다.
{/* 버튼 섹션 */} Button (버튼) 다양한 스타일의 버튼 컴포넌트
{/* Badge 섹션 */} Badge (배지) 상태 표시 및 태그용 배지
Default Secondary Destructive Outline
{/* Alert 섹션 */} Alert (알림) 정보 표시용 알림 박스 기본 알림 이것은 기본 알림 메시지입니다. 사용자에게 정보를 전달할 때 사용합니다. 오류 발생 문제가 발생했습니다. 다시 시도해주세요. {/* Input & Form 섹션 */} Input & Form (입력 필드) 폼 입력 컴포넌트들 {/* Text Input */}
{/* Textarea */}