@mzc-fe/design-system 0.0.11-rc.0 → 0.0.11-rc.2

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.
Files changed (77) hide show
  1. package/dist/components/accordion/accordion.d.ts +8 -5
  2. package/dist/components/accordion/accordion.js +15 -12
  3. package/dist/components/alert/alert.d.ts +4 -5
  4. package/dist/components/alert/alert.js +3 -2
  5. package/dist/components/alert-dialog/alert-dialog.d.ts +22 -12
  6. package/dist/components/alert-dialog/alert-dialog.js +3 -5
  7. package/dist/components/avatar/avatar.d.ts +10 -4
  8. package/dist/components/avatar/avatar.js +34 -33
  9. package/dist/components/badge/badge.js +4 -4
  10. package/dist/components/breadcrumb/breadcrumb.d.ts +7 -8
  11. package/dist/components/breadcrumb/breadcrumb.js +6 -6
  12. package/dist/components/button/button.d.ts +5 -3
  13. package/dist/components/button/button.js +40 -11
  14. package/dist/components/card/card.d.ts +7 -8
  15. package/dist/components/card/card.js +1 -1
  16. package/dist/components/checkbox/checkbox.d.ts +2 -2
  17. package/dist/components/collapsible/collapsible.d.ts +3 -0
  18. package/dist/components/collapsible/collapsible.js +5 -23
  19. package/dist/components/combobox/combobox.js +2 -2
  20. package/dist/components/command/command.js +10 -10
  21. package/dist/components/context-menu/context-menu.js +1 -1
  22. package/dist/components/dialog/dialog.js +6 -6
  23. package/dist/components/drawer/drawer.d.ts +10 -1
  24. package/dist/components/drawer/drawer.js +10 -6
  25. package/dist/components/dropdown-menu/dropdown-menu.d.ts +15 -16
  26. package/dist/components/dropdown-menu/dropdown-menu.js +5 -2
  27. package/dist/components/empty/empty.d.ts +14 -8
  28. package/dist/components/empty/empty.js +19 -33
  29. package/dist/components/field/field.d.ts +11 -12
  30. package/dist/components/field/field.js +3 -2
  31. package/dist/components/form/form.d.ts +8 -9
  32. package/dist/components/hover-card/hover-card.d.ts +11 -5
  33. package/dist/components/hover-card/hover-card.js +5 -12
  34. package/dist/components/input/input.d.ts +2 -2
  35. package/dist/components/input-group/input-group.d.ts +1 -1
  36. package/dist/components/input-otp/input-otp.d.ts +8 -0
  37. package/dist/components/item/item.js +1 -1
  38. package/dist/components/label/label.d.ts +2 -2
  39. package/dist/components/label/label.js +1 -4
  40. package/dist/components/menubar/menubar.js +1 -1
  41. package/dist/components/navigation-menu/navigation-menu.d.ts +10 -0
  42. package/dist/components/navigation-menu/navigation-menu.js +3 -3
  43. package/dist/components/pagination/pagination.d.ts +8 -8
  44. package/dist/components/pagination/pagination.js +1 -1
  45. package/dist/components/popover/popover.d.ts +14 -8
  46. package/dist/components/popover/popover.js +21 -52
  47. package/dist/components/progress/progress.d.ts +1 -2
  48. package/dist/components/radio-group/radio-group.d.ts +4 -3
  49. package/dist/components/separator/separator.d.ts +1 -2
  50. package/dist/components/sheet/sheet.d.ts +23 -11
  51. package/dist/components/sheet/sheet.js +66 -34
  52. package/dist/components/sidebar/sidebar.d.ts +6 -1
  53. package/dist/components/sidebar/sidebar.js +11 -49
  54. package/dist/components/skeleton/skeleton.d.ts +1 -2
  55. package/dist/components/slider/slider.js +11 -13
  56. package/dist/components/spinner/spinner.d.ts +1 -2
  57. package/dist/components/spinner/spinner.js +1 -12
  58. package/dist/components/stepper/stepper-icon.js +4 -4
  59. package/dist/components/stepper/stepper-item.js +6 -6
  60. package/dist/components/stepper/stepper-title.js +14 -12
  61. package/dist/components/stepper/stepper.js +21 -17
  62. package/dist/components/switch/switch.d.ts +2 -2
  63. package/dist/components/switch/switch.js +9 -2
  64. package/dist/components/table/table.d.ts +8 -9
  65. package/dist/components/table/table.js +2 -2
  66. package/dist/components/tabs/tabs.js +1 -1
  67. package/dist/components/textarea/textarea.d.ts +2 -2
  68. package/dist/components/toggle/toggle.d.ts +1 -0
  69. package/dist/components/toggle-group/toggle-group.d.ts +4 -0
  70. package/dist/components/toggle-group/toggle-group.js +1 -1
  71. package/dist/components/tooltip/tooltip.d.ts +8 -5
  72. package/dist/components/tooltip/tooltip.js +20 -34
  73. package/dist/design-system.css +1 -1
  74. package/dist/index.d.ts +21 -21
  75. package/dist/index.js +339 -334
  76. package/dist/tailwind-theme.css +100 -0
  77. package/package.json +3 -2
@@ -22,7 +22,8 @@ import * as AccordionPrimitive from "@radix-ui/react-accordion";
22
22
  * @param props.onValueChange - 열린 아이템이 변경될 때 호출되는 콜백
23
23
  * @param props.disabled - 모든 아이템을 비활성화합니다
24
24
  */
25
- declare function Accordion({ ...props }: React.ComponentProps<typeof AccordionPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
25
+ export type AccordionProps = React.ComponentProps<typeof AccordionPrimitive.Root>;
26
+ export declare function Accordion({ ...props }: AccordionProps): import("react/jsx-runtime").JSX.Element;
26
27
  /**
27
28
  * 아코디언의 개별 아이템을 나타내는 컴포넌트입니다.
28
29
  * 각 아이템은 고유한 value를 가져야 합니다.
@@ -32,7 +33,8 @@ declare function Accordion({ ...props }: React.ComponentProps<typeof AccordionPr
32
33
  * @param props.disabled - 이 아이템만 비활성화합니다
33
34
  * @param props.className - 추가 CSS 클래스
34
35
  */
35
- declare function AccordionItem({ className, ...props }: React.ComponentProps<typeof AccordionPrimitive.Item>): import("react/jsx-runtime").JSX.Element;
36
+ export type AccordionItemProps = React.ComponentProps<typeof AccordionPrimitive.Item>;
37
+ export declare function AccordionItem({ className, ...props }: AccordionItemProps): import("react/jsx-runtime").JSX.Element;
36
38
  /**
37
39
  * 아코디언 아이템을 열고 닫는 트리거 버튼입니다.
38
40
  * 클릭하면 해당 아이템의 콘텐츠가 펼쳐지거나 접힙니다.
@@ -43,7 +45,8 @@ declare function AccordionItem({ className, ...props }: React.ComponentProps<typ
43
45
  * @param props.className - 추가 CSS 클래스
44
46
  * @param props.disabled - 트리거를 비활성화합니다
45
47
  */
46
- declare function AccordionTrigger({ className, children, ...props }: React.ComponentProps<typeof AccordionPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
48
+ export type AccordionTriggerProps = React.ComponentProps<typeof AccordionPrimitive.Trigger>;
49
+ export declare function AccordionTrigger({ className, children, ...props }: AccordionTriggerProps): import("react/jsx-runtime").JSX.Element;
47
50
  /**
48
51
  * 아코디언 아이템의 접히는 콘텐츠 영역입니다.
49
52
  * 트리거를 클릭하면 애니메이션과 함께 펼쳐지거나 접힙니다.
@@ -53,5 +56,5 @@ declare function AccordionTrigger({ className, children, ...props }: React.Compo
53
56
  * @param props.className - 내부 콘텐츠 래퍼에 적용될 추가 CSS 클래스
54
57
  * @param props.forceMount - 닫힌 상태에서도 DOM에 마운트 유지 (애니메이션용)
55
58
  */
56
- declare function AccordionContent({ className, children, ...props }: React.ComponentProps<typeof AccordionPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
57
- export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };
59
+ export type AccordionContentProps = React.ComponentProps<typeof AccordionPrimitive.Content>;
60
+ export declare function AccordionContent({ className, children, ...props }: AccordionContentProps): import("react/jsx-runtime").JSX.Element;
@@ -1,14 +1,14 @@
1
1
  import { jsx as o, jsxs as a } from "react/jsx-runtime";
2
2
  import "react";
3
- import * as r from "@radix-ui/react-accordion";
3
+ import * as n from "@radix-ui/react-accordion";
4
4
  import { ChevronDownIcon as s } from "lucide-react";
5
5
  import { cn as i } from "../../lib/utils.js";
6
6
  function f({ ...e }) {
7
- return /* @__PURE__ */ o(r.Root, { "data-slot": "accordion", ...e });
7
+ return /* @__PURE__ */ o(n.Root, { "data-slot": "accordion", ...e });
8
8
  }
9
9
  function u({ className: e, ...t }) {
10
10
  return /* @__PURE__ */ o(
11
- r.Item,
11
+ n.Item,
12
12
  {
13
13
  "data-slot": "accordion-item",
14
14
  className: i("border-border border-b last:border-b-0", e),
@@ -16,30 +16,33 @@ function u({ className: e, ...t }) {
16
16
  }
17
17
  );
18
18
  }
19
- function p({ className: e, children: t, ...n }) {
20
- return /* @__PURE__ */ o(r.Header, { className: "flex", children: /* @__PURE__ */ a(
21
- r.Trigger,
19
+ function p({ className: e, children: t, ...r }) {
20
+ return /* @__PURE__ */ o(n.Header, { className: "flex", children: /* @__PURE__ */ a(
21
+ n.Trigger,
22
22
  {
23
23
  "data-slot": "accordion-trigger",
24
24
  className: i(
25
- "focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180",
25
+ "flex flex-1 items-center justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline",
26
+ "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
27
+ "disabled:pointer-events-none disabled:opacity-50",
28
+ "[&[data-state=open]>svg]:rotate-180",
26
29
  e
27
30
  ),
28
- ...n,
31
+ ...r,
29
32
  children: [
30
33
  t,
31
- /* @__PURE__ */ o(s, { className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200" })
34
+ /* @__PURE__ */ o(s, { className: "text-muted-foreground pointer-events-none size-4 shrink-0 transition-transform duration-200" })
32
35
  ]
33
36
  }
34
37
  ) });
35
38
  }
36
- function b({ className: e, children: t, ...n }) {
39
+ function b({ className: e, children: t, ...r }) {
37
40
  return /* @__PURE__ */ o(
38
- r.Content,
41
+ n.Content,
39
42
  {
40
43
  "data-slot": "accordion-content",
41
44
  className: "data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm",
42
- ...n,
45
+ ...r,
43
46
  children: /* @__PURE__ */ o("div", { className: i("pt-0 pb-4", e), children: t })
44
47
  }
45
48
  );
@@ -3,7 +3,7 @@ import * as React from "react";
3
3
  /**
4
4
  * Alert 컴포넌트의 스타일 변형을 정의합니다.
5
5
  */
6
- declare const alertVariants: (props?: ({
6
+ export declare const alertVariants: (props?: ({
7
7
  variant?: "default" | "destructive" | null | undefined;
8
8
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
9
9
  /**
@@ -22,19 +22,18 @@ declare const alertVariants: (props?: ({
22
22
  * @param props.variant - 'default' | 'destructive' 스타일 변형
23
23
  * @param props.className - 추가 CSS 클래스
24
24
  */
25
- declare function Alert({ className, variant, ...props }: React.ComponentProps<"div"> & VariantProps<typeof alertVariants>): import("react/jsx-runtime").JSX.Element;
25
+ export declare function Alert({ className, variant, ...props }: React.ComponentProps<"div"> & VariantProps<typeof alertVariants>): import("react/jsx-runtime").JSX.Element;
26
26
  /**
27
27
  * Alert의 제목을 표시하는 컴포넌트입니다.
28
28
  *
29
29
  * @param props.className - 추가 CSS 클래스
30
30
  * @param props.children - 제목 텍스트
31
31
  */
32
- declare function AlertTitle({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
32
+ export declare function AlertTitle({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
33
33
  /**
34
34
  * Alert의 상세 설명을 표시하는 컴포넌트입니다.
35
35
  *
36
36
  * @param props.className - 추가 CSS 클래스
37
37
  * @param props.children - 설명 내용
38
38
  */
39
- declare function AlertDescription({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
40
- export { Alert, AlertTitle, AlertDescription };
39
+ export declare function AlertDescription({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
@@ -5,7 +5,7 @@ import { cn as a } from "../../lib/utils.js";
5
5
  const l = i(
6
6
  [
7
7
  "relative w-full grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr]",
8
- "px-4 py-3 gap-y-0.5 has-[>svg]:gap-x-3",
8
+ "px-4 py-3 gap-y-1 has-[>svg]:gap-x-3",
9
9
  "border-border border rounded-lg",
10
10
  "text-sm",
11
11
  "items-start",
@@ -52,5 +52,6 @@ function u({ className: t, ...r }) {
52
52
  export {
53
53
  g as Alert,
54
54
  u as AlertDescription,
55
- m as AlertTitle
55
+ m as AlertTitle,
56
+ l as alertVariants
56
57
  };
@@ -23,27 +23,37 @@ import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
23
23
  * </AlertDialog>
24
24
  * ```
25
25
  */
26
- declare function AlertDialog({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
27
- declare function AlertDialogTrigger({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
28
- declare function AlertDialogPortal({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Portal>): import("react/jsx-runtime").JSX.Element;
29
- declare function AlertDialogOverlay({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>): import("react/jsx-runtime").JSX.Element;
26
+ export type AlertDialogProps = React.ComponentProps<typeof AlertDialogPrimitive.Root>;
27
+ export declare function AlertDialog({ ...props }: AlertDialogProps): import("react/jsx-runtime").JSX.Element;
28
+ export type AlertDialogTriggerProps = React.ComponentProps<typeof AlertDialogPrimitive.Trigger>;
29
+ export declare function AlertDialogTrigger({ ...props }: AlertDialogTriggerProps): import("react/jsx-runtime").JSX.Element;
30
+ export type AlertDialogPortalProps = React.ComponentProps<typeof AlertDialogPrimitive.Portal>;
31
+ export declare function AlertDialogPortal({ ...props }: AlertDialogPortalProps): import("react/jsx-runtime").JSX.Element;
32
+ export type AlertDialogOverlayProps = React.ComponentProps<typeof AlertDialogPrimitive.Overlay>;
33
+ export declare function AlertDialogOverlay({ className, ...props }: AlertDialogOverlayProps): import("react/jsx-runtime").JSX.Element;
34
+ export type AlertDialogContentProps = React.ComponentProps<typeof AlertDialogPrimitive.Content>;
30
35
  /**
31
36
  * AlertDialog의 메인 콘텐츠 영역입니다.
32
37
  * 자동으로 Overlay와 Portal을 포함합니다.
33
38
  */
34
- declare function AlertDialogContent({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
35
- declare function AlertDialogHeader({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
36
- declare function AlertDialogFooter({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
37
- declare function AlertDialogTitle({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Title>): import("react/jsx-runtime").JSX.Element;
38
- declare function AlertDialogDescription({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Description>): import("react/jsx-runtime").JSX.Element;
39
+ export declare function AlertDialogContent({ className, ...props }: AlertDialogContentProps): import("react/jsx-runtime").JSX.Element;
40
+ export type AlertDialogHeaderProps = React.ComponentProps<"div">;
41
+ export declare function AlertDialogHeader({ className, ...props }: AlertDialogHeaderProps): import("react/jsx-runtime").JSX.Element;
42
+ export type AlertDialogFooterProps = React.ComponentProps<"div">;
43
+ export declare function AlertDialogFooter({ className, ...props }: AlertDialogFooterProps): import("react/jsx-runtime").JSX.Element;
44
+ export type AlertDialogTitleProps = React.ComponentProps<typeof AlertDialogPrimitive.Title>;
45
+ export declare function AlertDialogTitle({ className, ...props }: AlertDialogTitleProps): import("react/jsx-runtime").JSX.Element;
46
+ export type AlertDialogDescriptionProps = React.ComponentProps<typeof AlertDialogPrimitive.Description>;
47
+ export declare function AlertDialogDescription({ className, ...props }: AlertDialogDescriptionProps): import("react/jsx-runtime").JSX.Element;
48
+ export type AlertDialogActionProps = React.ComponentProps<typeof AlertDialogPrimitive.Action>;
39
49
  /**
40
50
  * AlertDialog의 확인 버튼입니다.
41
51
  * 클릭 시 다이얼로그가 닫히고 지정된 액션이 실행됩니다.
42
52
  */
43
- declare function AlertDialogAction({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Action>): import("react/jsx-runtime").JSX.Element;
53
+ export declare function AlertDialogAction({ className, ...props }: AlertDialogActionProps): import("react/jsx-runtime").JSX.Element;
54
+ export type AlertDialogCancelProps = React.ComponentProps<typeof AlertDialogPrimitive.Cancel>;
44
55
  /**
45
56
  * AlertDialog의 취소 버튼입니다.
46
57
  * 클릭 시 다이얼로그가 닫히고 아무 작업도 수행하지 않습니다.
47
58
  */
48
- declare function AlertDialogCancel({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Cancel>): import("react/jsx-runtime").JSX.Element;
49
- export { AlertDialog, AlertDialogPortal, AlertDialogOverlay, AlertDialogTrigger, AlertDialogContent, AlertDialogHeader, AlertDialogFooter, AlertDialogTitle, AlertDialogDescription, AlertDialogAction, AlertDialogCancel, };
59
+ export declare function AlertDialogCancel({ className, ...props }: AlertDialogCancelProps): import("react/jsx-runtime").JSX.Element;
@@ -18,7 +18,8 @@ function s({ className: t, ...a }) {
18
18
  {
19
19
  "data-slot": "alert-dialog-overlay",
20
20
  className: l(
21
- "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
21
+ "fixed inset-0 z-50 bg-black/50",
22
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
22
23
  t
23
24
  ),
24
25
  ...a
@@ -73,10 +74,7 @@ function D({ className: t, ...a }) {
73
74
  }
74
75
  );
75
76
  }
76
- function b({
77
- className: t,
78
- ...a
79
- }) {
77
+ function b({ className: t, ...a }) {
80
78
  return /* @__PURE__ */ e(
81
79
  o.Description,
82
80
  {
@@ -1,5 +1,9 @@
1
+ import { VariantProps } from 'class-variance-authority';
1
2
  import * as React from "react";
2
3
  import * as AvatarPrimitive from "@radix-ui/react-avatar";
4
+ export declare const avatarVariants: (props?: ({
5
+ size?: 8 | 12 | 10 | 9 | 6 | 5 | null | undefined;
6
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
3
7
  /**
4
8
  * 사용자의 프로필 이미지나 이니셜을 표시하는 아바타 컴포넌트입니다.
5
9
  *
@@ -11,7 +15,9 @@ import * as AvatarPrimitive from "@radix-ui/react-avatar";
11
15
  * </Avatar>
12
16
  * ```
13
17
  */
14
- declare function Avatar({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
15
- declare function AvatarImage({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Image>): import("react/jsx-runtime").JSX.Element;
16
- declare function AvatarFallback({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Fallback>): import("react/jsx-runtime").JSX.Element;
17
- export { Avatar, AvatarImage, AvatarFallback };
18
+ export type AvatarProps = React.ComponentProps<typeof AvatarPrimitive.Root> & VariantProps<typeof avatarVariants>;
19
+ export declare function Avatar({ className, size, ...props }: AvatarProps): import("react/jsx-runtime").JSX.Element;
20
+ export type AvatarImageProps = React.ComponentProps<typeof AvatarPrimitive.Image>;
21
+ export declare function AvatarImage({ className, ...props }: AvatarImageProps): import("react/jsx-runtime").JSX.Element;
22
+ export type AvatarFallbackProps = React.ComponentProps<typeof AvatarPrimitive.Fallback>;
23
+ export declare function AvatarFallback({ className, ...props }: AvatarFallbackProps): import("react/jsx-runtime").JSX.Element;
@@ -1,54 +1,55 @@
1
1
  import { jsx as e } from "react/jsx-runtime";
2
2
  import "react";
3
3
  import * as r from "@radix-ui/react-avatar";
4
- import { cn as l } from "../../lib/utils.js";
5
- function m({
6
- className: a,
7
- ...t
8
- }) {
4
+ import { cva as o } from "class-variance-authority";
5
+ import { cn as s } from "../../lib/utils.js";
6
+ const l = o("group relative flex shrink-0 overflow-clip rounded-full", {
7
+ variants: {
8
+ size: {
9
+ 12: "size-12",
10
+ 10: "size-10",
11
+ 9: "size-9",
12
+ 8: "size-8",
13
+ 6: "size-6",
14
+ 5: "size-5"
15
+ }
16
+ },
17
+ defaultVariants: {
18
+ size: 8
19
+ }
20
+ });
21
+ function c({ className: t, size: a, ...i }) {
9
22
  return /* @__PURE__ */ e(
10
23
  r.Root,
11
24
  {
12
25
  "data-slot": "avatar",
13
- className: l(
14
- "relative flex size-8 shrink-0 overflow-hidden rounded-full",
15
- a
16
- ),
17
- ...t
26
+ "data-size": a ?? 8,
27
+ className: s(l({ size: a, className: t })),
28
+ ...i
18
29
  }
19
30
  );
20
31
  }
21
- function n({
22
- className: a,
23
- ...t
24
- }) {
25
- return /* @__PURE__ */ e(
26
- r.Image,
27
- {
28
- "data-slot": "avatar-image",
29
- className: l("aspect-square size-full", a),
30
- ...t
31
- }
32
- );
32
+ function v({ className: t, ...a }) {
33
+ return /* @__PURE__ */ e(r.Image, { "data-slot": "avatar-image", className: s("aspect-square size-full", t), ...a });
33
34
  }
34
- function f({
35
- className: a,
36
- ...t
37
- }) {
35
+ function d({ className: t, ...a }) {
38
36
  return /* @__PURE__ */ e(
39
37
  r.Fallback,
40
38
  {
41
39
  "data-slot": "avatar-fallback",
42
- className: l(
43
- "bg-muted flex size-full items-center justify-center rounded-full",
44
- a
40
+ className: s(
41
+ "flex size-full items-center justify-center rounded-full",
42
+ "bg-muted text-foreground text-sm",
43
+ "group-data-[size='5']:text-xs",
44
+ t
45
45
  ),
46
- ...t
46
+ ...a
47
47
  }
48
48
  );
49
49
  }
50
50
  export {
51
- m as Avatar,
52
- f as AvatarFallback,
53
- n as AvatarImage
51
+ c as Avatar,
52
+ d as AvatarFallback,
53
+ v as AvatarImage,
54
+ l as avatarVariants
54
55
  };
@@ -6,8 +6,8 @@ import { cn as s } from "../../lib/utils.js";
6
6
  const d = n(
7
7
  [
8
8
  "inline-flex items-center justify-center px-2 py-0.5 w-fit shrink-0 gap-1 overflow-hidden",
9
- "text-xs font-medium whitespace-nowrap",
10
- "rounded-full border border-border",
9
+ "text-xs font-semibold whitespace-nowrap",
10
+ "rounded-md border border-border",
11
11
  "transition-[color,box-shadow]",
12
12
  "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
13
13
  "aria-invalid:ring-error/20 aria-invalid:border-error",
@@ -32,10 +32,10 @@ const d = n(
32
32
  }
33
33
  }
34
34
  );
35
- function v({ className: r, variant: e, asChild: o = !1, ...a }) {
35
+ function l({ className: r, variant: e, asChild: o = !1, ...a }) {
36
36
  return /* @__PURE__ */ i(o ? t : "span", { "data-slot": "badge", className: s(d({ variant: e }), r), ...a });
37
37
  }
38
38
  export {
39
- v as Badge,
39
+ l as Badge,
40
40
  d as badgeVariants
41
41
  };
@@ -17,18 +17,17 @@ import * as React from "react";
17
17
  * </Breadcrumb>
18
18
  * ```
19
19
  */
20
- declare function Breadcrumb({ ...props }: React.ComponentProps<"nav">): import("react/jsx-runtime").JSX.Element;
20
+ export declare function Breadcrumb({ ...props }: React.ComponentProps<"nav">): import("react/jsx-runtime").JSX.Element;
21
21
  /** 브레드크럼 아이템들을 감싸는 리스트입니다. */
22
- declare function BreadcrumbList({ className, ...props }: React.ComponentProps<"ol">): import("react/jsx-runtime").JSX.Element;
22
+ export declare function BreadcrumbList({ className, ...props }: React.ComponentProps<"ol">): import("react/jsx-runtime").JSX.Element;
23
23
  /** 브레드크럼 개별 아이템입니다. */
24
- declare function BreadcrumbItem({ className, ...props }: React.ComponentProps<"li">): import("react/jsx-runtime").JSX.Element;
24
+ export declare function BreadcrumbItem({ className, ...props }: React.ComponentProps<"li">): import("react/jsx-runtime").JSX.Element;
25
25
  /** 클릭 가능한 브레드크럼 링크입니다. */
26
- declare function BreadcrumbLink({ asChild, className, ...props }: React.ComponentProps<"a"> & {
26
+ export declare function BreadcrumbLink({ asChild, className, ...props }: React.ComponentProps<"a"> & {
27
27
  asChild?: boolean;
28
28
  }): import("react/jsx-runtime").JSX.Element;
29
29
  /** 현재 페이지를 나타내는 비활성 텍스트입니다. */
30
- declare function BreadcrumbPage({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
30
+ export declare function BreadcrumbPage({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
31
31
  /** 아이템 사이의 구분자입니다. */
32
- declare function BreadcrumbSeparator({ children, className, ...props }: React.ComponentProps<"li">): import("react/jsx-runtime").JSX.Element;
33
- declare function BreadcrumbEllipsis({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
34
- export { Breadcrumb, BreadcrumbList, BreadcrumbItem, BreadcrumbLink, BreadcrumbPage, BreadcrumbSeparator, BreadcrumbEllipsis, };
32
+ export declare function BreadcrumbSeparator({ children, className, ...props }: React.ComponentProps<"li">): import("react/jsx-runtime").JSX.Element;
33
+ export declare function BreadcrumbEllipsis({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
@@ -6,20 +6,20 @@ import { cn as t } from "../../lib/utils.js";
6
6
  function f({ ...r }) {
7
7
  return /* @__PURE__ */ a("nav", { "aria-label": "breadcrumb", "data-slot": "breadcrumb", ...r });
8
8
  }
9
- function g({ className: r, ...e }) {
9
+ function x({ className: r, ...e }) {
10
10
  return /* @__PURE__ */ a(
11
11
  "ol",
12
12
  {
13
13
  "data-slot": "breadcrumb-list",
14
14
  className: t(
15
- "text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5",
15
+ "text-muted-foreground flex flex-wrap items-center gap-2.5 text-sm break-words",
16
16
  r
17
17
  ),
18
18
  ...e
19
19
  }
20
20
  );
21
21
  }
22
- function x({ className: r, ...e }) {
22
+ function g({ className: r, ...e }) {
23
23
  return /* @__PURE__ */ a(
24
24
  "li",
25
25
  {
@@ -67,7 +67,7 @@ function B({
67
67
  "data-slot": "breadcrumb-separator",
68
68
  role: "presentation",
69
69
  "aria-hidden": "true",
70
- className: t("[&>svg]:size-3.5", e),
70
+ className: t("[&>svg]:size-[15px]", e),
71
71
  ...n,
72
72
  children: r ?? /* @__PURE__ */ a(i, {})
73
73
  }
@@ -95,9 +95,9 @@ function k({
95
95
  export {
96
96
  f as Breadcrumb,
97
97
  k as BreadcrumbEllipsis,
98
- x as BreadcrumbItem,
98
+ g as BreadcrumbItem,
99
99
  h as BreadcrumbLink,
100
- g as BreadcrumbList,
100
+ x as BreadcrumbList,
101
101
  N as BreadcrumbPage,
102
102
  B as BreadcrumbSeparator
103
103
  };
@@ -2,10 +2,11 @@ import { VariantProps } from 'class-variance-authority';
2
2
  import * as React from "react";
3
3
  export declare const buttonVariants: (props?: ({
4
4
  variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
5
- size?: "default" | "sm" | "lg" | "icon" | "icon-sm" | "icon-lg" | null | undefined;
5
+ size?: "default" | "sm" | "lg" | "icon" | "icon-sm" | "icon-xs" | "icon-lg" | null | undefined;
6
6
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
7
  export type ButtonProps = React.ComponentProps<"button"> & VariantProps<typeof buttonVariants> & {
8
8
  asChild?: boolean;
9
+ loading?: boolean;
9
10
  };
10
11
  /**
11
12
  * 클릭 가능한 버튼 컴포넌트입니다.
@@ -19,7 +20,8 @@ export type ButtonProps = React.ComponentProps<"button"> & VariantProps<typeof b
19
20
  * ```
20
21
  *
21
22
  * @param props.variant - 버튼 스타일: 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link'
22
- * @param props.size - 버튼 크기: 'default' | 'sm' | 'lg' | 'icon' | 'icon-sm' | 'icon-lg'
23
+ * @param props.size - 버튼 크기: 'default' | 'sm' | 'lg' | 'icon' | 'icon-sm' | 'icon-xs' | 'icon-lg'
23
24
  * @param props.asChild - true면 자식 요소로 렌더링 (링크 등)
25
+ * @param props.loading - true면 로딩 스피너 표시 및 비활성화
24
26
  */
25
- export declare function Button({ className, variant, size, asChild, ...props }: ButtonProps): import("react/jsx-runtime").JSX.Element;
27
+ export declare function Button({ className, variant, size, asChild, loading, children, disabled, ...props }: ButtonProps): import("react/jsx-runtime").JSX.Element;
@@ -1,13 +1,15 @@
1
- import { jsx as n } from "react/jsx-runtime";
1
+ import { jsx as u, jsxs as l } from "react/jsx-runtime";
2
2
  import "react";
3
- import { Slot as a } from "@radix-ui/react-slot";
4
- import { cva as s } from "class-variance-authority";
5
- import { cn as d } from "../../lib/utils.js";
6
- const g = s(
3
+ import { Slot as b } from "@radix-ui/react-slot";
4
+ import { cva as p } from "class-variance-authority";
5
+ import { cn as c } from "../../lib/utils.js";
6
+ import { Spinner as v } from "../spinner/spinner.js";
7
+ const g = p(
7
8
  [
8
9
  "inline-flex items-center justify-center gap-2 shrink-0 rounded-md",
9
10
  "whitespace-nowrap text-sm font-medium",
10
11
  "transition-all",
12
+ "active:opacity-60",
11
13
  "disabled:pointer-events-none disabled:opacity-50",
12
14
  "[&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0",
13
15
  "outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
@@ -39,6 +41,7 @@ const g = s(
39
41
  lg: ["h-10 rounded-md px-6", "has-[>svg]:px-4"],
40
42
  icon: ["size-9"],
41
43
  "icon-sm": ["size-8"],
44
+ "icon-xs": ["size-6 p-1"],
42
45
  "icon-lg": ["size-10"]
43
46
  }
44
47
  },
@@ -48,19 +51,45 @@ const g = s(
48
51
  }
49
52
  }
50
53
  );
51
- function f({ className: o, variant: r = "default", size: e = "default", asChild: i = !1, ...t }) {
52
- return /* @__PURE__ */ n(
53
- i ? a : "button",
54
+ function z({
55
+ className: t,
56
+ variant: r = "default",
57
+ size: e = "default",
58
+ asChild: i = !1,
59
+ loading: o = !1,
60
+ children: n,
61
+ disabled: a,
62
+ ...s
63
+ }) {
64
+ const d = i ? b : "button";
65
+ return i ? /* @__PURE__ */ u(
66
+ d,
54
67
  {
55
68
  "data-slot": "button",
56
69
  "data-variant": r,
57
70
  "data-size": e,
58
- className: d(g({ variant: r, size: e, className: o })),
59
- ...t
71
+ disabled: a || o,
72
+ className: c(g({ variant: r, size: e, className: t })),
73
+ ...s,
74
+ children: n
75
+ }
76
+ ) : /* @__PURE__ */ l(
77
+ d,
78
+ {
79
+ "data-slot": "button",
80
+ "data-variant": r,
81
+ "data-size": e,
82
+ disabled: a || o,
83
+ className: c(g({ variant: r, size: e, className: t })),
84
+ ...s,
85
+ children: [
86
+ o && /* @__PURE__ */ u(v, { className: "size-4" }),
87
+ n
88
+ ]
60
89
  }
61
90
  );
62
91
  }
63
92
  export {
64
- f as Button,
93
+ z as Button,
65
94
  g as buttonVariants
66
95
  };
@@ -14,11 +14,10 @@ import * as React from "react";
14
14
  * </Card>
15
15
  * ```
16
16
  */
17
- declare function Card({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
18
- declare function CardHeader({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
19
- declare function CardTitle({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
20
- declare function CardDescription({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
21
- declare function CardAction({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
22
- declare function CardContent({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
23
- declare function CardFooter({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
24
- export { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent };
17
+ export declare function Card({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
18
+ export declare function CardHeader({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
19
+ export declare function CardTitle({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
20
+ export declare function CardDescription({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
21
+ export declare function CardAction({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
22
+ export declare function CardContent({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
23
+ export declare function CardFooter({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
@@ -22,7 +22,7 @@ function c({ className: t, ...r }) {
22
22
  {
23
23
  "data-slot": "card-header",
24
24
  className: o(
25
- "@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",
25
+ "@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",
26
26
  t
27
27
  ),
28
28
  ...r
@@ -1,5 +1,6 @@
1
1
  import * as React from "react";
2
2
  import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
3
+ export type CheckboxProps = React.ComponentProps<typeof CheckboxPrimitive.Root>;
3
4
  /**
4
5
  * 선택/해제가 가능한 체크박스 컴포넌트입니다.
5
6
  *
@@ -9,5 +10,4 @@ import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
9
10
  * <label htmlFor="terms">이용약관에 동의합니다</label>
10
11
  * ```
11
12
  */
12
- declare function Checkbox({ className, checked, ...props }: React.ComponentProps<typeof CheckboxPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
13
- export { Checkbox };
13
+ export declare function Checkbox({ className, checked, ...props }: CheckboxProps): import("react/jsx-runtime").JSX.Element;
@@ -15,4 +15,7 @@ declare function Collapsible({ ...props }: React.ComponentProps<typeof Collapsib
15
15
  declare function CollapsibleTrigger({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>): import("react/jsx-runtime").JSX.Element;
16
16
  /** 접혔다 펼쳐지는 콘텐츠 영역입니다. */
17
17
  declare function CollapsibleContent({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>): import("react/jsx-runtime").JSX.Element;
18
+ export type CollapsibleProps = React.ComponentProps<typeof CollapsiblePrimitive.Root>;
19
+ export type CollapsibleTriggerProps = React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>;
20
+ export type CollapsibleContentProps = React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>;
18
21
  export { Collapsible, CollapsibleTrigger, CollapsibleContent };
@@ -1,31 +1,13 @@
1
1
  import { jsx as o } from "react/jsx-runtime";
2
2
  import * as t from "@radix-ui/react-collapsible";
3
- function i({
4
- ...l
5
- }) {
3
+ function i({ ...l }) {
6
4
  return /* @__PURE__ */ o(t.Root, { "data-slot": "collapsible", ...l });
7
5
  }
8
- function r({
9
- ...l
10
- }) {
11
- return /* @__PURE__ */ o(
12
- t.CollapsibleTrigger,
13
- {
14
- "data-slot": "collapsible-trigger",
15
- ...l
16
- }
17
- );
6
+ function r({ ...l }) {
7
+ return /* @__PURE__ */ o(t.CollapsibleTrigger, { "data-slot": "collapsible-trigger", ...l });
18
8
  }
19
- function a({
20
- ...l
21
- }) {
22
- return /* @__PURE__ */ o(
23
- t.CollapsibleContent,
24
- {
25
- "data-slot": "collapsible-content",
26
- ...l
27
- }
28
- );
9
+ function a({ ...l }) {
10
+ return /* @__PURE__ */ o(t.CollapsibleContent, { "data-slot": "collapsible-content", ...l });
29
11
  }
30
12
  export {
31
13
  i as Collapsible,