@hyebin4334/admin-ui 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/utils.ts","../../src/components/badge.tsx","../../src/components/button.tsx","../../src/components/card.tsx","../../src/components/checkbox.tsx","../../src/components/label.tsx","../../src/components/separator.tsx","../../src/components/field.tsx","../../src/components/input.tsx","../../src/components/pagination.tsx","../../src/components/select.tsx","../../src/components/table.tsx","../../src/components/tabs.tsx","../../src/examples/product-list-page.tsx","../../src/components/button-group.tsx","../../src/components/switch.tsx","../../src/components/textarea.tsx","../../src/examples/product-create-page.tsx","../../src/components/avatar.tsx","../../src/examples/user-list-page.tsx"],"names":["twMerge","clsx","cva","Slot","jsx","CheckboxPrimitive","CheckIcon","LabelPrimitive","SeparatorPrimitive","jsxs","ChevronLeftIcon","ChevronRightIcon","SelectPrimitive","ChevronDownIcon","ChevronUpIcon","TabsPrimitive","SwitchPrimitive","AvatarPrimitive","STATUS_LABEL","STATUS_VARIANT"],"mappings":"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","file":"index.cjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\nimport { X } from \"lucide-react\"\n\nconst badgeVariants = cva(\n \"inline-flex items-center justify-center border w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90\",\n primary: \"border-transparent bg-primary-800 text-white\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90\",\n destructive:\n \"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground\",\n error: \"border-transparent bg-red-50 text-red-500\",\n warning:\n \"border-transparent bg-warning-badgeDark text-warning-badgeLight\",\n info: \"border border-info-dark bg-info-light text-info-dark\",\n \"status-waiting\": \"border-transparent bg-[#D1D9E8] text-[#262626]\",\n \"status-progress\": \"border-transparent bg-[#F4F6FA] text-[#404040]\",\n \"status-complete\": \"border-transparent bg-[#434E70] text-white\",\n \"status-failed\": \"border-transparent bg-[#FFEBEB] text-[#ED1515]\",\n \"status-deleted\": \"border-transparent bg-[#ED1515] text-[#FFEBEB]\",\n },\n size: {\n xs: \"text-xs py-0.5 px-1\",\n sm: \"text-xs py-1 px-2\",\n md: \"text-xs py-1.5 px-2.5\",\n lg: \"text-sm py-2 px-3\",\n },\n fontWeight: {\n regular: \"font-normal\",\n medium: \"font-medium\",\n semibold: \"font-semibold\",\n bold: \"font-bold\",\n },\n rounded: {\n full: \"rounded-full\",\n lg: \"rounded-lg\",\n md: \"rounded-md\",\n sm: \"rounded-sm\",\n xs: \"rounded-xs\",\n none: \"rounded-none\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"sm\",\n fontWeight: \"medium\",\n rounded: \"full\",\n },\n }\n)\n\nexport interface BadgeProps\n extends React.ComponentProps<\"span\">,\n VariantProps<typeof badgeVariants> {\n asChild?: boolean\n}\n\nfunction Badge({\n className,\n variant,\n size,\n fontWeight,\n rounded,\n asChild = false,\n ...props\n}: BadgeProps) {\n const Comp = asChild ? Slot : \"span\"\n\n return (\n <Comp\n data-slot=\"badge\"\n className={cn(\n badgeVariants({ variant, size, fontWeight, rounded }),\n className\n )}\n {...props}\n />\n )\n}\n\nfunction RemovableBadge({\n className,\n variant,\n asChild = false,\n onClick,\n ...props\n}: React.ComponentProps<\"span\"> &\n VariantProps<typeof badgeVariants> & { asChild?: boolean } & {\n onClick: (index: number) => void\n }) {\n return (\n <Badge className={className} variant={variant} asChild={asChild} {...props}>\n {props.children}\n <button onClick={onClick}>\n <X className=\"size-3\" />\n </button>\n </Badge>\n )\n}\n\nexport { Badge, badgeVariants, RemovableBadge }\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center cursor-pointer gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-3 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 disabled:bg-neutral-200/30 disabled:border-neutral-200 disabled:text-neutral-300 disabled:opacity-100\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n \"icon-sm\": \"size-8\",\n \"icon-lg\": \"size-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n }) {\n const Comp = asChild ? Slot : \"button\"\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Card({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card\"\n className={cn(\n \"bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn(\n \"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-title\"\n className={cn(\"leading-none font-semibold\", className)}\n {...props}\n />\n )\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-action\"\n className={cn(\n \"col-start-2 row-span-2 row-start-1 self-start justify-self-end\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-content\"\n className={cn(\"px-6\", className)}\n {...props}\n />\n )\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-footer\"\n className={cn(\"flex items-center px-6 [.border-t]:pt-6\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardAction,\n CardDescription,\n CardContent,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { CheckIcon } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Checkbox({\n className,\n ...props\n}: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n \"peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-6 shrink-0 rounded-[2px] border-[1.5px] shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"grid place-content-center text-current transition-none\"\n >\n <CheckIcon className=\"size-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n}\n\nexport { Checkbox }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n \"flex items-center text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Label }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Separator({\n className,\n orientation = \"horizontal\",\n decorative = true,\n ...props\n}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {\n return (\n <SeparatorPrimitive.Root\n data-slot=\"separator\"\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Separator }\n","\"use client\"\n\nimport { useMemo } from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Label } from \"@/components/label\"\nimport { Separator } from \"@/components/separator\"\n\nfunction FieldSet({ className, ...props }: React.ComponentProps<\"fieldset\">) {\n return (\n <fieldset\n data-slot=\"field-set\"\n className={cn(\n \"flex flex-col gap-6\",\n \"has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldLegend({\n className,\n variant = \"legend\",\n ...props\n}: React.ComponentProps<\"legend\"> & { variant?: \"legend\" | \"label\" }) {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn(\n \"mb-3 font-medium\",\n \"data-[variant=legend]:text-base\",\n \"data-[variant=label]:text-sm\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-group\"\n className={cn(\n \"group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 [&>[data-slot=field-group]]:gap-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst fieldVariants = cva(\n \"group/field flex w-full gap-2 data-[invalid=true]:text-destructive\",\n {\n variants: {\n orientation: {\n vertical: [\"flex-col [&>*]:w-full [&>.sr-only]:w-auto\"],\n horizontal: [\n \"flex-row items-center\",\n \"[&>[data-slot=field-label]]:flex-auto\",\n \"has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n ],\n responsive: [\n \"flex-col [&>*]:w-full [&>.sr-only]:w-auto @md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>*]:w-auto\",\n \"@md/field-group:[&>[data-slot=field-label]]:flex-auto\",\n \"@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n ],\n },\n },\n defaultVariants: {\n orientation: \"vertical\",\n },\n }\n)\n\nfunction Field({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof fieldVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"field\"\n data-orientation={orientation}\n className={cn(fieldVariants({ orientation }), className)}\n {...props}\n />\n )\n}\n\nfunction FieldContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-content\"\n className={cn(\n \"group/field-content flex flex-1 flex-col gap-1.5 leading-snug\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldLabel({\n className,\n isRequired,\n ...props\n}: React.ComponentProps<typeof Label> & { isRequired?: boolean }) {\n return (\n <Label\n data-required={isRequired}\n data-slot=\"field-label\"\n className={cn(\n \"group/field-label peer/field-label flex w-fit text-base leading-4 font-normal\",\n \"has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border [&>*]:data-[slot=field]:p-4\",\n \"has-data-[state=checked]:bg-primary/5 has-data-[state=checked]:border-primary dark:has-data-[state=checked]:bg-primary/10\",\n \"data-[required=true]:after:text-destructive data-[required=true]:after:text-sm data-[required=true]:after:leading-4 data-[required=true]:after:font-light data-[required=true]:after:content-['*']\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-label\"\n className={cn(\n \"flex w-fit items-center gap-2 text-sm leading-snug font-medium\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"field-description\"\n className={cn(\n \"text-primary-400 text-xs leading-normal font-normal group-has-[[data-orientation=horizontal]]/field:text-balance\",\n \"last:mt-0 nth-last-2:-mt-1 [[data-variant=legend]+&]:-mt-1.5\",\n \"[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<\"div\"> & {\n children?: React.ReactNode\n}) {\n return (\n <div\n data-slot=\"field-separator\"\n data-content={Boolean(children)}\n className={cn(\n \"relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2\",\n className\n )}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children && (\n <span\n className=\"bg-background text-muted-foreground relative mx-auto block w-fit px-2\"\n data-slot=\"field-separator-content\"\n >\n {children}\n </span>\n )}\n </div>\n )\n}\n\nfunction FieldError({\n className,\n children,\n errors,\n ...props\n}: React.ComponentProps<\"div\"> & {\n errors?: Array<{ message?: string } | undefined>\n}) {\n const content = useMemo(() => {\n if (children) {\n return children\n }\n\n if (!errors?.length) {\n return null\n }\n\n const uniqueErrors = [\n ...new Map(errors.map((error) => [error?.message, error])).values(),\n ]\n\n if (uniqueErrors?.length === 1) {\n return uniqueErrors[0]?.message\n }\n\n return (\n <ul className=\"ml-4 flex list-disc flex-col gap-1\">\n {uniqueErrors.map(\n (error, index) =>\n error?.message && <li key={index}>{error.message}</li>\n )}\n </ul>\n )\n }, [children, errors])\n\n if (!content) {\n return null\n }\n\n return (\n <div\n role=\"alert\"\n data-slot=\"field-error\"\n className={cn(\"text-destructive text-sm font-normal\", className)}\n {...props}\n >\n {content}\n </div>\n )\n}\n\nexport {\n Field,\n FieldLabel,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLegend,\n FieldSeparator,\n FieldSet,\n FieldContent,\n FieldTitle,\n}\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { SearchIcon } from \"lucide-react\"\n\ntype InputProps = Omit<\n React.ComponentProps<\"input\">,\n \"value\" | \"defaultValue\"\n> & {\n value?: React.ComponentProps<\"input\">[\"value\"] | null\n defaultValue?: React.ComponentProps<\"input\">[\"defaultValue\"] | null\n}\n\nfunction normalizeInputValue<T>(value: T | null): T | \"\" {\n return value === null ? \"\" : value\n}\n\nfunction Input({ className, type, value, defaultValue, ...props }: InputProps) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n value={normalizeInputValue(value)}\n defaultValue={normalizeInputValue(defaultValue)}\n className={cn(\n \"file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:border-[#e5e5e5] disabled:bg-[#f5f5f5] disabled:text-[#d4d4d4] disabled:opacity-100 disabled:placeholder:text-[#d4d4d4] md:text-sm\",\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SearchInput({ ...props }: React.ComponentProps<typeof Input>) {\n return (\n <div className=\"flex h-9 w-full items-center rounded-md border shadow-sm\">\n <SearchIcon className=\"ml-3 size-4 shrink-0 opacity-50\" />\n <Input\n placeholder=\"검색어 입력하시오(현재 이메일만 입력가능)\"\n {...props}\n className=\"border-none shadow-none focus-visible:ring-0 focus-visible:ring-offset-0\"\n />\n </div>\n )\n}\n\nexport { Input, SearchInput }\n","import * as React from \"react\"\nimport {\n ChevronLeftIcon,\n ChevronRightIcon,\n MoreHorizontalIcon,\n} from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button, buttonVariants } from \"@/components/button\"\n\nfunction Pagination({ className, ...props }: React.ComponentProps<\"nav\">) {\n return (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n data-slot=\"pagination\"\n className={cn(\"flex w-full justify-end\", className)}\n {...props}\n />\n )\n}\n\nfunction PaginationContent({\n className,\n ...props\n}: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"pagination-content\"\n className={cn(\"flex flex-row items-center gap-1\", className)}\n {...props}\n />\n )\n}\n\nfunction PaginationItem({ ...props }: React.ComponentProps<\"li\">) {\n return <li data-slot=\"pagination-item\" {...props} />\n}\n\ntype PaginationLinkProps = {\n isActive?: boolean\n} & Pick<React.ComponentProps<typeof Button>, \"size\"> &\n React.ComponentProps<\"a\">\n\nfunction PaginationLink({\n className,\n isActive,\n size = \"icon\",\n ...props\n}: PaginationLinkProps) {\n return (\n <a\n aria-current={isActive ? \"page\" : undefined}\n data-slot=\"pagination-link\"\n data-active={isActive}\n className={cn(\n buttonVariants({\n variant: isActive ? \"default\" : \"outline\",\n size,\n }),\n className\n )}\n {...props}\n />\n )\n}\n\nfunction PaginationPrevious({\n className,\n ...props\n}: React.ComponentProps<typeof PaginationLink>) {\n return (\n <PaginationLink\n aria-label=\"Go to previous page\"\n size=\"default\"\n className={cn(\"gap-1 border px-2.5\", className)}\n {...props}\n >\n <ChevronLeftIcon size={20} />\n <span className=\"hidden\">Previous</span>\n </PaginationLink>\n )\n}\n\nfunction PaginationNext({\n className,\n ...props\n}: React.ComponentProps<typeof PaginationLink>) {\n return (\n <PaginationLink\n aria-label=\"Go to next page\"\n size=\"default\"\n className={cn(\"gap-1 px-2.5 sm:pr-2.5\", className)}\n {...props}\n >\n <span className=\"hidden\">Next</span>\n <ChevronRightIcon />\n </PaginationLink>\n )\n}\n\nfunction PaginationEllipsis({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n aria-hidden\n data-slot=\"pagination-ellipsis\"\n className={cn(\"flex size-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontalIcon className=\"size-4\" />\n <span className=\"sr-only\">More pages</span>\n </span>\n )\n}\n\nexport {\n Pagination,\n PaginationContent,\n PaginationLink,\n PaginationItem,\n PaginationPrevious,\n PaginationNext,\n PaginationEllipsis,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SelectPrimitive from \"@radix-ui/react-select\"\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Select({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />\n}\n\nfunction SelectGroup({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Group>) {\n return <SelectPrimitive.Group data-slot=\"select-group\" {...props} />\n}\n\nfunction SelectValue({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />\n}\n\nfunction SelectTrigger({\n className,\n size = \"default\",\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {\n size?: \"sm\" | \"default\"\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-white px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:border-[#e5e5e5] disabled:bg-[#f5f5f5] disabled:text-[#d4d4d4] disabled:opacity-100 data-[disabled]:cursor-not-allowed data-[disabled]:border-[#e5e5e5] data-[disabled]:bg-[#f5f5f5] data-[disabled]:text-[#d4d4d4] data-[disabled]:opacity-100 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 disabled:[&_*]:!text-[#d4d4d4] data-[disabled]:[&_*]:!text-[#d4d4d4] [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"size-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n )\n}\n\nfunction SelectContent({\n className,\n children,\n position = \"popper\",\n align = \"center\",\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n className={cn(\n \"bg-popover text-popover-foreground 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 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className\n )}\n position={position}\n align={align}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1\"\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n )\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn(\"text-muted-foreground px-2 py-1.5 text-xs\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\",\n className\n )}\n {...props}\n >\n <span className=\"absolute right-2 flex size-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n )\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn(\"bg-border pointer-events-none -mx-1 my-1 h-px\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n {...props}\n >\n <ChevronUpIcon className=\"size-4\" />\n </SelectPrimitive.ScrollUpButton>\n )\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n {...props}\n >\n <ChevronDownIcon className=\"size-4\" />\n </SelectPrimitive.ScrollDownButton>\n )\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n}\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Table({ className, ...props }: React.ComponentProps<\"table\">) {\n return (\n <div\n data-slot=\"table-container\"\n className=\"relative w-full overflow-x-auto\"\n >\n <table\n data-slot=\"table\"\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n );\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return (\n <thead\n data-slot=\"table-header\"\n className={cn(\"[&_tr]:border-t [&_tr]:border-b\", className)}\n {...props}\n />\n );\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return (\n <tbody\n data-slot=\"table-body\"\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n );\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn(\n \"bg-muted/50 border-t font-medium [&>tr]:last:border-b-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\n \"hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n <th\n data-slot=\"table-head\"\n // TODO, 실제 토큰 적용 후 수정 필요 text-foreground\n className={cn(\n \"h-13 bg-[#fcfcfc] px-2 text-left align-middle font-medium whitespace-nowrap text-[#404040] [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn(\n \"bg-white p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableCaption({\n className,\n ...props\n}: React.ComponentProps<\"caption\">) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn(\"text-muted-foreground mt-4 text-sm\", className)}\n {...props}\n />\n );\n}\n\nfunction TableTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"table-title\"\n className={cn(\"text-xl font-bold\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n TableTitle,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Tabs({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Root>) {\n return (\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n className={cn(\"flex flex-col gap-2\", className)}\n {...props}\n />\n );\n}\n\nfunction FilledTabsList({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.List>) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n className={cn(\n \"bg-primary-100 text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FilledTabsTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Trigger>) {\n return (\n <TabsPrimitive.Trigger\n data-slot=\"tabs-trigger\"\n className={cn(\n \"data-[state=active]:bg-primary-800 data-[state=active]:text-primary-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction UnderlineTabsList({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.List>) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n className={cn(\n \"bg-primary-0 flex items-center rounded-lg p-[3px] px-5 py-2 shadow\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction UnderlineTabsTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Trigger>) {\n const activeClass =\n \"data-[state=active]:text-info-500 data-[state=active]:after:bg-info-500 data-[state=active]:after:absolute data-[state=active]:after:bottom-0 data-[state=active]:after:left-0 data-[state=active]:after:h-[2px] data-[state=active]:after:w-full data-[state=active]:after:content-[''] \";\n return (\n <TabsPrimitive.Trigger\n data-slot=\"tabs-trigger\"\n className={cn(\n \"text-primary-400 relative inline-flex flex-1 items-center justify-center gap-1.5 rounded-md px-4 py-2 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n activeClass,\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TabsContent({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Content>) {\n return (\n <TabsPrimitive.Content\n data-slot=\"tabs-content\"\n className={cn(\"flex-1 outline-none\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Tabs,\n FilledTabsList,\n FilledTabsTrigger,\n UnderlineTabsList,\n UnderlineTabsTrigger,\n TabsContent,\n};\n","import * as React from \"react\";\n\nimport { Badge } from \"@/components/badge\";\nimport { Button } from \"@/components/button\";\nimport { Card, CardContent } from \"@/components/card\";\nimport { Checkbox } from \"@/components/checkbox\";\nimport { Field, FieldLabel } from \"@/components/field\";\nimport { Input } from \"@/components/input\";\nimport {\n Pagination,\n PaginationContent,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n} from \"@/components/pagination\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/select\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"@/components/table\";\nimport {\n FilledTabsList,\n FilledTabsTrigger,\n Tabs,\n TabsContent,\n} from \"@/components/tabs\";\n\ntype ProductStatus = \"selling\" | \"soldout\" | \"hidden\";\n\ninterface MockProduct {\n id: string;\n code: string;\n name: string;\n category: string;\n price: number;\n stock: number;\n status: ProductStatus;\n}\n\nconst MOCK_PRODUCTS: MockProduct[] = [\n {\n id: \"1\",\n code: \"P001\",\n name: \"베이직 티셔츠\",\n category: \"의류\",\n price: 29000,\n stock: 120,\n status: \"selling\",\n },\n {\n id: \"2\",\n code: \"P002\",\n name: \"데일리 청바지\",\n category: \"의류\",\n price: 49000,\n stock: 85,\n status: \"selling\",\n },\n {\n id: \"3\",\n code: \"P003\",\n name: \"러닝 스니커즈\",\n category: \"신발\",\n price: 89000,\n stock: 0,\n status: \"soldout\",\n },\n {\n id: \"4\",\n code: \"P004\",\n name: \"가죽 지갑\",\n category: \"액세서리\",\n price: 39000,\n stock: 42,\n status: \"selling\",\n },\n {\n id: \"5\",\n code: \"P005\",\n name: \"캔버스 백팩\",\n category: \"가방\",\n price: 59000,\n stock: 18,\n status: \"selling\",\n },\n {\n id: \"6\",\n code: \"P006\",\n name: \"울 머플러\",\n category: \"액세서리\",\n price: 32000,\n stock: 0,\n status: \"soldout\",\n },\n {\n id: \"7\",\n code: \"P007\",\n name: \"코튼 양말 세트\",\n category: \"의류\",\n price: 12000,\n stock: 240,\n status: \"selling\",\n },\n {\n id: \"8\",\n code: \"P008\",\n name: \"선글라스\",\n category: \"액세서리\",\n price: 75000,\n stock: 8,\n status: \"hidden\",\n },\n];\n\nconst STATUS_LABEL: Record<ProductStatus, string> = {\n selling: \"판매중\",\n soldout: \"품절\",\n hidden: \"숨김\",\n};\n\nconst STATUS_VARIANT: Record<\n ProductStatus,\n \"default\" | \"destructive\" | \"secondary\"\n> = {\n selling: \"default\",\n soldout: \"destructive\",\n hidden: \"secondary\",\n};\n\nfunction formatPrice(price: number) {\n return `₩${price.toLocaleString(\"ko-KR\")}`;\n}\n\n/**\n * ProductListPage — admin-po 상품 조회 페이지의 단순화 버전.\n *\n * 패턴 reference:\n * - 페이지 컨테이너: flex flex-col gap-6 p-6\n * - 헤더: 좌측 제목 + 우측 primary action\n * - Status Tabs (count badge 포함)\n * - Filter Card (grid-cols-3 + 라벨 위)\n * - Table (체크박스 + 컬럼 + 상태 Badge + 액션)\n * - Pagination (가운데 정렬)\n */\nexport function ProductListPage() {\n return (\n <div className=\"flex flex-col gap-6 p-6\">\n {/* Header */}\n <header className=\"flex items-center justify-between\">\n <h1 className=\"text-2xl font-semibold\">상품 관리</h1>\n <Button>+ 상품 등록</Button>\n </header>\n\n {/* Status Tabs */}\n <Tabs defaultValue=\"all\">\n <FilledTabsList>\n <FilledTabsTrigger value=\"all\">전체 (245)</FilledTabsTrigger>\n <FilledTabsTrigger value=\"selling\">판매중 (198)</FilledTabsTrigger>\n <FilledTabsTrigger value=\"soldout\">품절 (32)</FilledTabsTrigger>\n <FilledTabsTrigger value=\"hidden\">숨김 (15)</FilledTabsTrigger>\n </FilledTabsList>\n\n <TabsContent value=\"all\" className=\"pt-6\">\n {/* Filter Card */}\n <Card className=\"mb-6\">\n <CardContent>\n <div className=\"grid grid-cols-1 gap-5 md:grid-cols-3 md:gap-x-8\">\n <Field>\n <FieldLabel>카테고리</FieldLabel>\n <Select>\n <SelectTrigger>\n <SelectValue placeholder=\"전체\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"all\">전체</SelectItem>\n <SelectItem value=\"clothes\">의류</SelectItem>\n <SelectItem value=\"shoes\">신발</SelectItem>\n <SelectItem value=\"accessory\">액세서리</SelectItem>\n <SelectItem value=\"bag\">가방</SelectItem>\n </SelectContent>\n </Select>\n </Field>\n\n <Field>\n <FieldLabel>상태</FieldLabel>\n <Select>\n <SelectTrigger>\n <SelectValue placeholder=\"전체\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"all\">전체</SelectItem>\n <SelectItem value=\"selling\">판매중</SelectItem>\n <SelectItem value=\"soldout\">품절</SelectItem>\n <SelectItem value=\"hidden\">숨김</SelectItem>\n </SelectContent>\n </Select>\n </Field>\n\n <Field>\n <FieldLabel>키워드</FieldLabel>\n <Input placeholder=\"상품명 또는 코드\" />\n </Field>\n </div>\n\n <div className=\"mt-6 flex items-center justify-between\">\n <label className=\"flex items-center gap-2 text-sm\">\n <Checkbox id=\"include-soldout\" />\n 품절 포함\n </label>\n <div className=\"flex gap-2\">\n <Button variant=\"outline\">초기화</Button>\n <Button>필터 적용</Button>\n </div>\n </div>\n </CardContent>\n </Card>\n\n {/* Table */}\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead className=\"w-12\">\n <Checkbox />\n </TableHead>\n <TableHead>상품코드</TableHead>\n <TableHead>상품명</TableHead>\n <TableHead>카테고리</TableHead>\n <TableHead className=\"text-right\">가격</TableHead>\n <TableHead className=\"text-right\">재고</TableHead>\n <TableHead>상태</TableHead>\n <TableHead className=\"w-32 text-right\">액션</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {MOCK_PRODUCTS.map((p) => (\n <TableRow key={p.id}>\n <TableCell>\n <Checkbox />\n </TableCell>\n <TableCell className=\"font-medium\">{p.code}</TableCell>\n <TableCell>{p.name}</TableCell>\n <TableCell>{p.category}</TableCell>\n <TableCell className=\"text-right\">\n {formatPrice(p.price)}\n </TableCell>\n <TableCell className=\"text-right\">{p.stock}</TableCell>\n <TableCell>\n <Badge variant={STATUS_VARIANT[p.status]}>\n {STATUS_LABEL[p.status]}\n </Badge>\n </TableCell>\n <TableCell>\n <div className=\"flex justify-end gap-1\">\n <Button variant=\"ghost\" size=\"sm\">\n 편집\n </Button>\n <Button variant=\"ghost\" size=\"sm\">\n 삭제\n </Button>\n </div>\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n\n {/* Pagination */}\n <Pagination className=\"mt-6\">\n <PaginationContent>\n <PaginationItem>\n <PaginationPrevious href=\"#\" />\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href=\"#\" isActive>\n 1\n </PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href=\"#\">2</PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href=\"#\">3</PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationNext href=\"#\" />\n </PaginationItem>\n </PaginationContent>\n </Pagination>\n </TabsContent>\n </Tabs>\n </div>\n );\n}\n","import { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Separator } from \"@/components/separator\"\n\nconst buttonGroupVariants = cva(\n \"flex w-fit items-stretch [&>*]:focus-visible:z-10 [&>*]:focus-visible:relative [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md has-[>[data-slot=button-group]]:gap-2\",\n {\n variants: {\n orientation: {\n horizontal:\n \"[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none\",\n vertical:\n \"flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none\",\n },\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n }\n)\n\nfunction ButtonGroup({\n className,\n orientation,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof buttonGroupVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"button-group\"\n data-orientation={orientation}\n className={cn(buttonGroupVariants({ orientation }), className)}\n {...props}\n />\n )\n}\n\nfunction ButtonGroupText({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"div\"> & {\n asChild?: boolean\n}) {\n const Comp = asChild ? Slot : \"div\"\n\n return (\n <Comp\n className={cn(\n \"bg-muted flex items-center gap-2 rounded-md border px-4 text-sm font-medium shadow-xs [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ButtonGroupSeparator({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"button-group-separator\"\n orientation={orientation}\n className={cn(\n \"bg-input relative !m-0 self-stretch data-[orientation=vertical]:h-auto\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n ButtonGroup,\n ButtonGroupSeparator,\n ButtonGroupText,\n buttonGroupVariants,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SwitchPrimitive from \"@radix-ui/react-switch\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Switch({\n className,\n ...props\n}: React.ComponentProps<typeof SwitchPrimitive.Root>) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\n \"peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n \"bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0\"\n )}\n />\n </SwitchPrimitive.Root>\n )\n}\n\nexport { Switch }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype TextareaProps = Omit<\n React.ComponentProps<\"textarea\">,\n \"value\" | \"defaultValue\"\n> & {\n value?: React.ComponentProps<\"textarea\">[\"value\"] | null\n defaultValue?: React.ComponentProps<\"textarea\">[\"defaultValue\"] | null\n}\n\nfunction normalizeTextareaValue<T>(value: T | null): T | \"\" {\n return value === null ? \"\" : value\n}\n\nfunction Textarea({ className, value, defaultValue, ...props }: TextareaProps) {\n return (\n <textarea\n data-slot=\"textarea\"\n value={normalizeTextareaValue(value)}\n defaultValue={normalizeTextareaValue(defaultValue)}\n className={cn(\n \"border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:border-[#e5e5e5] disabled:bg-[#f5f5f5] disabled:text-[#d4d4d4] disabled:opacity-100 md:text-sm\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Textarea }\n","import * as React from \"react\";\n\nimport { Button } from \"@/components/button\";\nimport { ButtonGroup } from \"@/components/button-group\";\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"@/components/card\";\nimport {\n Field,\n FieldDescription,\n FieldGroup,\n FieldLabel,\n} from \"@/components/field\";\nimport { Input } from \"@/components/input\";\nimport { Label } from \"@/components/label\";\nimport { Separator } from \"@/components/separator\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/select\";\nimport { Switch } from \"@/components/switch\";\nimport { Textarea } from \"@/components/textarea\";\n\n/**\n * ProductCreatePage — admin-po 상품 등록 페이지의 단순화 버전.\n *\n * 패턴 reference:\n * - 페이지 컨테이너: flex flex-col gap-6 p-6\n * - 헤더: 좌측 제목 + 우측 액션 버튼 그룹 (취소 / 임시저장 / 저장)\n * - Section 단위 Card (기본 정보 / 가격 / 재고 / 설명)\n * - 각 Card 내부: CardHeader (제목 + 설명) + CardContent (필드들)\n * - Field: 라벨 위 + Input/Select/Textarea + helper text\n * - Form 우측 정렬보다는 컬럼 grid 활용\n */\nexport function ProductCreatePage() {\n return (\n <div className=\"flex flex-col gap-6 p-6\">\n {/* Header */}\n <header className=\"flex items-center justify-between\">\n <h1 className=\"text-2xl font-semibold\">상품 등록</h1>\n <div className=\"flex gap-2\">\n <Button variant=\"outline\">취소</Button>\n <Button variant=\"outline\">임시저장</Button>\n <Button>저장</Button>\n </div>\n </header>\n\n {/* 기본 정보 */}\n <Card>\n <CardHeader>\n <CardTitle>기본 정보</CardTitle>\n <CardDescription>상품의 기본 정보를 입력하세요.</CardDescription>\n </CardHeader>\n <CardContent>\n <FieldGroup>\n <Field>\n <FieldLabel htmlFor=\"product-name\">상품명</FieldLabel>\n <Input id=\"product-name\" placeholder=\"예) 베이직 티셔츠\" />\n </Field>\n\n <div className=\"grid grid-cols-1 gap-6 md:grid-cols-2\">\n <Field>\n <FieldLabel htmlFor=\"product-category\">카테고리</FieldLabel>\n <Select>\n <SelectTrigger id=\"product-category\">\n <SelectValue placeholder=\"카테고리 선택\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"clothes\">의류</SelectItem>\n <SelectItem value=\"shoes\">신발</SelectItem>\n <SelectItem value=\"accessory\">액세서리</SelectItem>\n <SelectItem value=\"bag\">가방</SelectItem>\n </SelectContent>\n </Select>\n </Field>\n\n <Field>\n <FieldLabel htmlFor=\"product-code\">상품코드</FieldLabel>\n <Input id=\"product-code\" placeholder=\"자동 생성됨\" />\n <FieldDescription>비워두면 자동 발급됩니다.</FieldDescription>\n </Field>\n </div>\n </FieldGroup>\n </CardContent>\n </Card>\n\n {/* 가격 */}\n <Card>\n <CardHeader>\n <CardTitle>가격</CardTitle>\n <CardDescription>판매가, 할인가 등 가격 정보.</CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"grid grid-cols-1 gap-6 md:grid-cols-3\">\n <Field>\n <FieldLabel htmlFor=\"price-original\">정가</FieldLabel>\n <Input id=\"price-original\" type=\"number\" placeholder=\"0\" />\n </Field>\n <Field>\n <FieldLabel htmlFor=\"price-selling\">판매가</FieldLabel>\n <Input id=\"price-selling\" type=\"number\" placeholder=\"0\" />\n </Field>\n <Field>\n <FieldLabel htmlFor=\"price-discount\">할인가</FieldLabel>\n <Input id=\"price-discount\" type=\"number\" placeholder=\"0\" />\n </Field>\n </div>\n </CardContent>\n </Card>\n\n {/* 재고 */}\n <Card>\n <CardHeader>\n <CardTitle>재고</CardTitle>\n </CardHeader>\n <CardContent>\n <FieldGroup>\n <div className=\"grid grid-cols-1 gap-6 md:grid-cols-2\">\n <Field>\n <FieldLabel htmlFor=\"stock-quantity\">재고 수량</FieldLabel>\n <Input id=\"stock-quantity\" type=\"number\" placeholder=\"0\" />\n </Field>\n <Field>\n <FieldLabel htmlFor=\"stock-safety\">안전 재고</FieldLabel>\n <Input id=\"stock-safety\" type=\"number\" placeholder=\"0\" />\n <FieldDescription>\n 안전 재고 이하일 때 알림 발송\n </FieldDescription>\n </Field>\n </div>\n\n <Separator />\n\n <div className=\"flex items-center gap-3\">\n <Switch id=\"auto-soldout\" defaultChecked />\n <Label htmlFor=\"auto-soldout\">재고 0일 때 자동 품절 처리</Label>\n </div>\n </FieldGroup>\n </CardContent>\n </Card>\n\n {/* 설명 */}\n <Card>\n <CardHeader>\n <CardTitle>설명</CardTitle>\n <CardDescription>상품 상세 페이지에 표시될 설명.</CardDescription>\n </CardHeader>\n <CardContent>\n <Field>\n <FieldLabel htmlFor=\"description\">상품 설명</FieldLabel>\n <Textarea\n id=\"description\"\n placeholder=\"상품에 대한 상세 설명을 입력하세요\"\n rows={6}\n />\n </Field>\n </CardContent>\n </Card>\n\n {/* Footer actions (alternative — 상단 actions와 중복) */}\n <div className=\"flex justify-end\">\n <ButtonGroup>\n <Button variant=\"outline\">취소</Button>\n <Button variant=\"outline\">임시저장</Button>\n <Button>저장</Button>\n </ButtonGroup>\n </div>\n </div>\n );\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Avatar({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Root>) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n className={cn(\n \"relative flex size-8 shrink-0 overflow-hidden rounded-full\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarImage({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn(\"aspect-square size-full\", className)}\n {...props}\n />\n )\n}\n\nfunction AvatarFallback({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn(\n \"bg-muted flex size-full items-center justify-center rounded-full\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Avatar, AvatarImage, AvatarFallback }\n","import * as React from \"react\";\n\nimport { Avatar, AvatarFallback } from \"@/components/avatar\";\nimport { Badge } from \"@/components/badge\";\nimport { Button } from \"@/components/button\";\nimport { Input } from \"@/components/input\";\nimport {\n Pagination,\n PaginationContent,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n} from \"@/components/pagination\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/select\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"@/components/table\";\n\ntype UserStatus = \"active\" | \"dormant\" | \"blocked\";\n\ninterface MockUser {\n id: string;\n code: string;\n name: string;\n email: string;\n joinedAt: string;\n status: UserStatus;\n}\n\nconst MOCK_USERS: MockUser[] = [\n {\n id: \"1\",\n code: \"U0001\",\n name: \"김철수\",\n email: \"chulsoo.kim@example.com\",\n joinedAt: \"2026-01-15\",\n status: \"active\",\n },\n {\n id: \"2\",\n code: \"U0002\",\n name: \"이영희\",\n email: \"younghee.lee@example.com\",\n joinedAt: \"2026-02-03\",\n status: \"active\",\n },\n {\n id: \"3\",\n code: \"U0003\",\n name: \"박민수\",\n email: \"minsoo.park@example.com\",\n joinedAt: \"2026-02-18\",\n status: \"dormant\",\n },\n {\n id: \"4\",\n code: \"U0004\",\n name: \"최지영\",\n email: \"jiyoung.choi@example.com\",\n joinedAt: \"2026-03-07\",\n status: \"active\",\n },\n {\n id: \"5\",\n code: \"U0005\",\n name: \"정유진\",\n email: \"yujin.jung@example.com\",\n joinedAt: \"2026-03-22\",\n status: \"blocked\",\n },\n {\n id: \"6\",\n code: \"U0006\",\n name: \"강호동\",\n email: \"hodong.kang@example.com\",\n joinedAt: \"2026-04-10\",\n status: \"active\",\n },\n {\n id: \"7\",\n code: \"U0007\",\n name: \"윤서연\",\n email: \"seoyeon.yoon@example.com\",\n joinedAt: \"2026-04-28\",\n status: \"active\",\n },\n {\n id: \"8\",\n code: \"U0008\",\n name: \"임도현\",\n email: \"dohyun.lim@example.com\",\n joinedAt: \"2026-05-05\",\n status: \"dormant\",\n },\n];\n\nconst STATUS_LABEL: Record<UserStatus, string> = {\n active: \"활성\",\n dormant: \"휴면\",\n blocked: \"차단\",\n};\n\nconst STATUS_VARIANT: Record<\n UserStatus,\n \"default\" | \"secondary\" | \"destructive\"\n> = {\n active: \"default\",\n dormant: \"secondary\",\n blocked: \"destructive\",\n};\n\nfunction getInitials(name: string) {\n return name.slice(0, 2);\n}\n\n/**\n * UserListPage — admin-po 회원 관리 페이지의 단순화 버전.\n *\n * 패턴 reference:\n * - 페이지 컨테이너: flex flex-col gap-6 p-6\n * - 헤더: 좌측 제목 + 우측 primary action\n * - Inline search bar (Select + Input + Button — 한 줄)\n * - Table: Avatar + 텍스트 + Badge + 액션\n * - Pagination\n *\n * (Filter Card 없는 단순한 검색 패턴 — admin-po의 샵 관리 페이지 스타일)\n */\nexport function UserListPage() {\n return (\n <div className=\"flex flex-col gap-6 p-6\">\n {/* Header */}\n <header className=\"flex items-center justify-between\">\n <h1 className=\"text-2xl font-semibold\">회원 관리</h1>\n <Button>+ 회원 등록</Button>\n </header>\n\n {/* Inline search */}\n <div className=\"flex flex-col gap-2 md:flex-row md:items-center\">\n <Select defaultValue=\"name\">\n <SelectTrigger className=\"w-full md:w-[160px]\">\n <SelectValue placeholder=\"검색 기준\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"name\">이름</SelectItem>\n <SelectItem value=\"email\">이메일</SelectItem>\n <SelectItem value=\"code\">회원ID</SelectItem>\n </SelectContent>\n </Select>\n <Input placeholder=\"검색어 입력\" className=\"flex-1 md:max-w-md\" />\n <Button>검색</Button>\n </div>\n\n {/* Table */}\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead>회원ID</TableHead>\n <TableHead>프로필</TableHead>\n <TableHead>이름</TableHead>\n <TableHead>이메일</TableHead>\n <TableHead>가입일</TableHead>\n <TableHead>상태</TableHead>\n <TableHead className=\"w-32 text-right\">액션</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {MOCK_USERS.map((u) => (\n <TableRow key={u.id}>\n <TableCell className=\"font-medium\">{u.code}</TableCell>\n <TableCell>\n <Avatar className=\"size-8\">\n <AvatarFallback className=\"text-xs\">\n {getInitials(u.name)}\n </AvatarFallback>\n </Avatar>\n </TableCell>\n <TableCell>{u.name}</TableCell>\n <TableCell className=\"text-muted-foreground\">{u.email}</TableCell>\n <TableCell>{u.joinedAt}</TableCell>\n <TableCell>\n <Badge variant={STATUS_VARIANT[u.status]}>\n {STATUS_LABEL[u.status]}\n </Badge>\n </TableCell>\n <TableCell>\n <div className=\"flex justify-end gap-1\">\n <Button variant=\"ghost\" size=\"sm\">\n 상세\n </Button>\n <Button variant=\"ghost\" size=\"sm\">\n 차단\n </Button>\n </div>\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n\n {/* Pagination */}\n <Pagination>\n <PaginationContent>\n <PaginationItem>\n <PaginationPrevious href=\"#\" />\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href=\"#\" isActive>\n 1\n </PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href=\"#\">2</PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href=\"#\">3</PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationNext href=\"#\" />\n </PaginationItem>\n </PaginationContent>\n </Pagination>\n </div>\n );\n}\n"]}
@@ -0,0 +1,43 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ /**
4
+ * ProductListPage — admin-po 상품 조회 페이지의 단순화 버전.
5
+ *
6
+ * 패턴 reference:
7
+ * - 페이지 컨테이너: flex flex-col gap-6 p-6
8
+ * - 헤더: 좌측 제목 + 우측 primary action
9
+ * - Status Tabs (count badge 포함)
10
+ * - Filter Card (grid-cols-3 + 라벨 위)
11
+ * - Table (체크박스 + 컬럼 + 상태 Badge + 액션)
12
+ * - Pagination (가운데 정렬)
13
+ */
14
+ declare function ProductListPage(): react_jsx_runtime.JSX.Element;
15
+
16
+ /**
17
+ * ProductCreatePage — admin-po 상품 등록 페이지의 단순화 버전.
18
+ *
19
+ * 패턴 reference:
20
+ * - 페이지 컨테이너: flex flex-col gap-6 p-6
21
+ * - 헤더: 좌측 제목 + 우측 액션 버튼 그룹 (취소 / 임시저장 / 저장)
22
+ * - Section 단위 Card (기본 정보 / 가격 / 재고 / 설명)
23
+ * - 각 Card 내부: CardHeader (제목 + 설명) + CardContent (필드들)
24
+ * - Field: 라벨 위 + Input/Select/Textarea + helper text
25
+ * - Form 우측 정렬보다는 컬럼 grid 활용
26
+ */
27
+ declare function ProductCreatePage(): react_jsx_runtime.JSX.Element;
28
+
29
+ /**
30
+ * UserListPage — admin-po 회원 관리 페이지의 단순화 버전.
31
+ *
32
+ * 패턴 reference:
33
+ * - 페이지 컨테이너: flex flex-col gap-6 p-6
34
+ * - 헤더: 좌측 제목 + 우측 primary action
35
+ * - Inline search bar (Select + Input + Button — 한 줄)
36
+ * - Table: Avatar + 텍스트 + Badge + 액션
37
+ * - Pagination
38
+ *
39
+ * (Filter Card 없는 단순한 검색 패턴 — admin-po의 샵 관리 페이지 스타일)
40
+ */
41
+ declare function UserListPage(): react_jsx_runtime.JSX.Element;
42
+
43
+ export { ProductCreatePage, ProductListPage, UserListPage };
@@ -0,0 +1,43 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ /**
4
+ * ProductListPage — admin-po 상품 조회 페이지의 단순화 버전.
5
+ *
6
+ * 패턴 reference:
7
+ * - 페이지 컨테이너: flex flex-col gap-6 p-6
8
+ * - 헤더: 좌측 제목 + 우측 primary action
9
+ * - Status Tabs (count badge 포함)
10
+ * - Filter Card (grid-cols-3 + 라벨 위)
11
+ * - Table (체크박스 + 컬럼 + 상태 Badge + 액션)
12
+ * - Pagination (가운데 정렬)
13
+ */
14
+ declare function ProductListPage(): react_jsx_runtime.JSX.Element;
15
+
16
+ /**
17
+ * ProductCreatePage — admin-po 상품 등록 페이지의 단순화 버전.
18
+ *
19
+ * 패턴 reference:
20
+ * - 페이지 컨테이너: flex flex-col gap-6 p-6
21
+ * - 헤더: 좌측 제목 + 우측 액션 버튼 그룹 (취소 / 임시저장 / 저장)
22
+ * - Section 단위 Card (기본 정보 / 가격 / 재고 / 설명)
23
+ * - 각 Card 내부: CardHeader (제목 + 설명) + CardContent (필드들)
24
+ * - Field: 라벨 위 + Input/Select/Textarea + helper text
25
+ * - Form 우측 정렬보다는 컬럼 grid 활용
26
+ */
27
+ declare function ProductCreatePage(): react_jsx_runtime.JSX.Element;
28
+
29
+ /**
30
+ * UserListPage — admin-po 회원 관리 페이지의 단순화 버전.
31
+ *
32
+ * 패턴 reference:
33
+ * - 페이지 컨테이너: flex flex-col gap-6 p-6
34
+ * - 헤더: 좌측 제목 + 우측 primary action
35
+ * - Inline search bar (Select + Input + Button — 한 줄)
36
+ * - Table: Avatar + 텍스트 + Badge + 액션
37
+ * - Pagination
38
+ *
39
+ * (Filter Card 없는 단순한 검색 패턴 — admin-po의 샵 관리 페이지 스타일)
40
+ */
41
+ declare function UserListPage(): react_jsx_runtime.JSX.Element;
42
+
43
+ export { ProductCreatePage, ProductListPage, UserListPage };