@petnow/ui 4.0.3 → 4.1.1

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 (55) hide show
  1. package/dist/Popup-xLjV_Cx7.js +95 -0
  2. package/dist/Popup-xLjV_Cx7.js.map +1 -0
  3. package/dist/TailwindUtil-aZk2bbTo.js +71 -0
  4. package/dist/TailwindUtil-aZk2bbTo.js.map +1 -0
  5. package/dist/index.es.js +25 -5523
  6. package/dist/src/components/v1/popup/Popup.d.ts +2 -1
  7. package/dist/v0/checkbox.js +36 -0
  8. package/dist/v0/checkbox.js.map +1 -0
  9. package/dist/v0/radio.js +16 -0
  10. package/dist/v0/radio.js.map +1 -0
  11. package/dist/v0/tabs.js +62 -0
  12. package/dist/v0/tabs.js.map +1 -0
  13. package/dist/v0/toggle.js +20 -0
  14. package/dist/v0/toggle.js.map +1 -0
  15. package/dist/v1/badge.js +338 -0
  16. package/dist/v1/badge.js.map +1 -0
  17. package/dist/v1/chip.js +53 -0
  18. package/dist/v1/chip.js.map +1 -0
  19. package/dist/v1/cta-button.js +62 -0
  20. package/dist/v1/cta-button.js.map +1 -0
  21. package/dist/v1/icons/action/cancel-filled.js +22 -0
  22. package/dist/v1/icons/action/cancel-filled.js.map +1 -0
  23. package/dist/v1/icons/action/cancel.js +19 -0
  24. package/dist/v1/icons/action/cancel.js.map +1 -0
  25. package/dist/v1/icons/action/chevron-down.js +19 -0
  26. package/dist/v1/icons/action/chevron-down.js.map +1 -0
  27. package/dist/v1/icons/action/chevron-left.js +19 -0
  28. package/dist/v1/icons/action/chevron-left.js.map +1 -0
  29. package/dist/v1/icons/action/chevron-right.js +19 -0
  30. package/dist/v1/icons/action/chevron-right.js.map +1 -0
  31. package/dist/v1/icons/action/chevron-up.js +19 -0
  32. package/dist/v1/icons/action/chevron-up.js.map +1 -0
  33. package/dist/v1/icons/action/filter.js +19 -0
  34. package/dist/v1/icons/action/filter.js.map +1 -0
  35. package/dist/v1/icons/action/retry.js +19 -0
  36. package/dist/v1/icons/action/retry.js.map +1 -0
  37. package/dist/v1/icons/action/sorting.js +19 -0
  38. package/dist/v1/icons/action/sorting.js.map +1 -0
  39. package/dist/v1/icons/static/close.js +19 -0
  40. package/dist/v1/icons/static/close.js.map +1 -0
  41. package/dist/v1/icons/static/delete.js +30 -0
  42. package/dist/v1/icons/static/delete.js.map +1 -0
  43. package/dist/v1/icons/static/recent.js +32 -0
  44. package/dist/v1/icons/static/recent.js.map +1 -0
  45. package/dist/v1/icons/static/report.js +28 -0
  46. package/dist/v1/icons/static/report.js.map +1 -0
  47. package/dist/v1/icons/static/shield-done.js +21 -0
  48. package/dist/v1/icons/static/shield-done.js.map +1 -0
  49. package/dist/v1/popup.js +5 -0
  50. package/dist/v1/text-field.js +286 -0
  51. package/dist/v1/text-field.js.map +1 -0
  52. package/package.json +94 -3
  53. package/dist/index.es.js.map +0 -1
  54. package/dist/index.umd.js +0 -57
  55. package/dist/index.umd.js.map +0 -1
@@ -0,0 +1,95 @@
1
+ import { t as e } from "./TailwindUtil-aZk2bbTo.js";
2
+ import { CTAButton as t } from "./v1/cta-button.js";
3
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
+ import * as i from "react";
5
+ import { Dialog as a } from "radix-ui";
6
+ //#region src/components/ui/dialog.tsx
7
+ var o = a.Root;
8
+ a.Trigger;
9
+ var s = a.Portal;
10
+ a.Close;
11
+ var c = i.forwardRef(({ className: t, ...r }, i) => /* @__PURE__ */ n(a.Overlay, {
12
+ ref: i,
13
+ className: e("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/40 duration-200", t),
14
+ ...r
15
+ }));
16
+ c.displayName = a.Overlay.displayName;
17
+ var l = i.forwardRef(({ className: t, ...i }, o) => /* @__PURE__ */ r(s, { children: [/* @__PURE__ */ n(c, {}), /* @__PURE__ */ n(a.Content, {
18
+ ref: o,
19
+ className: e("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 bg-background fixed top-1/2 left-1/2 z-50 w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 rounded-lg p-6 shadow-lg duration-200 outline-none", t),
20
+ ...i
21
+ })] }));
22
+ l.displayName = a.Content.displayName;
23
+ var u = i.forwardRef(({ className: t, ...r }, i) => /* @__PURE__ */ n(a.Title, {
24
+ ref: i,
25
+ className: e("text-lg font-semibold", t),
26
+ ...r
27
+ }));
28
+ u.displayName = a.Title.displayName;
29
+ var d = i.forwardRef(({ className: t, ...r }, i) => /* @__PURE__ */ n(a.Description, {
30
+ ref: i,
31
+ className: e("text-muted-foreground text-sm", t),
32
+ ...r
33
+ }));
34
+ d.displayName = a.Description.displayName;
35
+ //#endregion
36
+ //#region src/components/v1/popup/Popup.tsx
37
+ var f = ({ isOpen: i, setIsOpen: a, onClose: s, title: c, description: f, content: p, confirm: m, cancel: h, preventEasyClose: g = !1, className: _ }) => {
38
+ let v = () => {
39
+ a(!1), s?.();
40
+ };
41
+ return /* @__PURE__ */ n(o, {
42
+ open: i,
43
+ onOpenChange: (e) => {
44
+ g && !e || (e || s?.(), a(e));
45
+ },
46
+ children: /* @__PURE__ */ r(l, {
47
+ onEscapeKeyDown: g ? (e) => e.preventDefault() : void 0,
48
+ onInteractOutside: g ? (e) => e.preventDefault() : void 0,
49
+ className: e("bg-surface-base-neutral-1 flex max-h-[440px] w-[300px] max-w-[300px] flex-col gap-4 overflow-hidden rounded-[16px] p-4", _),
50
+ children: [/* @__PURE__ */ r("div", {
51
+ className: "flex w-full flex-col gap-2",
52
+ children: [
53
+ c && /* @__PURE__ */ n(u, {
54
+ className: "text-title-18-bold text-text-prominent-neutral-4",
55
+ children: c
56
+ }),
57
+ f && /* @__PURE__ */ n("div", {
58
+ className: "overflow-y-auto",
59
+ children: /* @__PURE__ */ n(d, {
60
+ className: "text-body-16-medium text-text-prominent-neutral-3",
61
+ children: f
62
+ })
63
+ }),
64
+ p && /* @__PURE__ */ n("div", {
65
+ className: "overflow-y-auto",
66
+ children: p
67
+ })
68
+ ]
69
+ }), (m || h) && /* @__PURE__ */ r("div", {
70
+ className: "flex w-full flex-col gap-2",
71
+ children: [m && /* @__PURE__ */ n(t, {
72
+ label: m.label,
73
+ icon: m.icon,
74
+ size: "medium",
75
+ hierarchy: "primary",
76
+ onClick: ((e) => () => {
77
+ e?.onClick?.();
78
+ })(m)
79
+ }), h && /* @__PURE__ */ n(t, {
80
+ label: h.label,
81
+ icon: h.icon,
82
+ size: "medium",
83
+ hierarchy: "tertiary",
84
+ onClick: ((e) => () => {
85
+ e?.onClick?.(), v();
86
+ })(h)
87
+ })]
88
+ })]
89
+ })
90
+ });
91
+ };
92
+ //#endregion
93
+ export { f as t };
94
+
95
+ //# sourceMappingURL=Popup-xLjV_Cx7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Popup-xLjV_Cx7.js","names":[],"sources":["../src/components/ui/dialog.tsx","../src/components/v1/popup/Popup.tsx"],"sourcesContent":["import { Dialog as DialogPrimitive } from \"radix-ui\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/utils/TailwindUtil\";\n\nconst Dialog = DialogPrimitive.Root;\nconst DialogTrigger = DialogPrimitive.Trigger;\nconst DialogPortal = DialogPrimitive.Portal;\nconst DialogClose = DialogPrimitive.Close;\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n \"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/40 duration-200\",\n className,\n )}\n {...props}\n />\n));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 bg-background fixed top-1/2 left-1/2 z-50 w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 rounded-lg p-6 shadow-lg duration-200 outline-none\",\n className,\n )}\n {...props}\n />\n </DialogPortal>\n));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\nfunction DialogHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"flex flex-col gap-2\", className)} {...props} />;\n}\n\nfunction DialogFooter({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"flex flex-col gap-2 sm:flex-row sm:justify-end\", className)} {...props} />;\n}\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title ref={ref} className={cn(\"text-lg font-semibold\", className)} {...props} />\n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description ref={ref} className={cn(\"text-muted-foreground text-sm\", className)} {...props} />\n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n};\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"../../../utils/TailwindUtil\";\nimport { CTAButton } from \"../cta-button/CTAButton\";\n\nimport { Dialog, DialogContent, DialogDescription, DialogTitle } from \"@/components/ui/dialog\";\n\ntype PopupAction = {\n label: string | React.ReactNode;\n icon?: React.ComponentType<{ className?: string }>;\n onClick?: () => void;\n};\n\nexport interface PopupProps {\n isOpen: boolean;\n setIsOpen: (isOpen: boolean) => void;\n onClose?: () => void;\n title?: string | React.ReactNode;\n description?: string | React.ReactNode;\n content?: React.ReactNode;\n confirm?: PopupAction;\n cancel?: PopupAction;\n preventEasyClose?: boolean;\n className?: string;\n}\n\nconst Popup = ({\n isOpen,\n setIsOpen,\n onClose,\n title,\n description,\n content,\n confirm,\n cancel,\n preventEasyClose = false,\n className,\n}: PopupProps) => {\n const handleClose = () => {\n setIsOpen(false);\n onClose?.();\n };\n\n const handleConfirmAction = (action?: PopupAction) => () => {\n action?.onClick?.();\n };\n\n const handleCancelAction = (action?: PopupAction) => () => {\n action?.onClick?.();\n handleClose();\n };\n\n const handleOpenChange = (nextOpen: boolean) => {\n if (preventEasyClose && !nextOpen) {\n return;\n }\n\n if (!nextOpen) {\n onClose?.();\n }\n\n setIsOpen(nextOpen);\n };\n\n return (\n <Dialog open={isOpen} onOpenChange={handleOpenChange}>\n <DialogContent\n onEscapeKeyDown={preventEasyClose ? (event) => event.preventDefault() : undefined}\n onInteractOutside={preventEasyClose ? (event) => event.preventDefault() : undefined}\n className={cn(\n \"bg-surface-base-neutral-1 flex max-h-[440px] w-[300px] max-w-[300px] flex-col gap-4 overflow-hidden rounded-[16px] p-4\",\n className,\n )}\n >\n <div className=\"flex w-full flex-col gap-2\">\n {title && <DialogTitle className=\"text-title-18-bold text-text-prominent-neutral-4\">{title}</DialogTitle>}\n {description && (\n <div className=\"overflow-y-auto\">\n <DialogDescription className=\"text-body-16-medium text-text-prominent-neutral-3\">\n {description}\n </DialogDescription>\n </div>\n )}\n {content && <div className=\"overflow-y-auto\">{content}</div>}\n </div>\n {(confirm || cancel) && (\n <div className=\"flex w-full flex-col gap-2\">\n {confirm && (\n <CTAButton\n label={confirm.label}\n icon={confirm.icon}\n size=\"medium\"\n hierarchy=\"primary\"\n onClick={handleConfirmAction(confirm)}\n />\n )}\n {cancel && (\n <CTAButton\n label={cancel.label}\n icon={cancel.icon}\n size=\"medium\"\n hierarchy=\"tertiary\"\n onClick={handleCancelAction(cancel)}\n />\n )}\n </div>\n )}\n </DialogContent>\n </Dialog>\n );\n};\n\nexport { Popup };\n"],"mappings":";;;;;;AAKA,IAAM,IAAS,EAAgB;AACT,EAAgB;AACtC,IAAM,IAAe,EAAgB;AACjB,EAAgB;AAEpC,IAAM,IAAgB,EAAM,YAGzB,EAAE,cAAW,GAAG,KAAS,MAC1B,kBAAC,EAAgB,SAAjB;CACO;CACL,WAAW,EACT,uKACA,EACD;CACD,GAAI;CACJ,CAAA,CACF;AACF,EAAc,cAAc,EAAgB,QAAQ;AAEpD,IAAM,IAAgB,EAAM,YAGzB,EAAE,cAAW,GAAG,KAAS,MAC1B,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAiB,CAAA,EACjB,kBAAC,EAAgB,SAAjB;CACO;CACL,WAAW,EACT,gRACA,EACD;CACD,GAAI;CACJ,CAAA,CACW,EAAA,CAAA,CACf;AACF,EAAc,cAAc,EAAgB,QAAQ;AAUpD,IAAM,IAAc,EAAM,YAGvB,EAAE,cAAW,GAAG,KAAS,MAC1B,kBAAC,EAAgB,OAAjB;CAA4B;CAAK,WAAW,EAAG,yBAAyB,EAAU;CAAE,GAAI;CAAS,CAAA,CACjG;AACF,EAAY,cAAc,EAAgB,MAAM;AAEhD,IAAM,IAAoB,EAAM,YAG7B,EAAE,cAAW,GAAG,KAAS,MAC1B,kBAAC,EAAgB,aAAjB;CAAkC;CAAK,WAAW,EAAG,iCAAiC,EAAU;CAAE,GAAI;CAAS,CAAA,CAC/G;AACF,EAAkB,cAAc,EAAgB,YAAY;;;ACrC5D,IAAM,KAAS,EACb,WACA,cACA,YACA,UACA,gBACA,YACA,YACA,WACA,sBAAmB,IACnB,mBACgB;CAChB,IAAM,UAAoB;AAExB,EADA,EAAU,GAAM,EAChB,KAAW;;AAwBb,QACE,kBAAC,GAAD;EAAQ,MAAM;EAAQ,eAbE,MAAsB;AAC1C,QAAoB,CAAC,MAIpB,KACH,KAAW,EAGb,EAAU,EAAS;;YAKjB,kBAAC,GAAD;GACE,iBAAiB,KAAoB,MAAU,EAAM,gBAAgB,GAAG,KAAA;GACxE,mBAAmB,KAAoB,MAAU,EAAM,gBAAgB,GAAG,KAAA;GAC1E,WAAW,EACT,0HACA,EACD;aANH,CAQE,kBAAC,OAAD;IAAK,WAAU;cAAf;KACG,KAAS,kBAAC,GAAD;MAAa,WAAU;gBAAoD;MAAoB,CAAA;KACxG,KACC,kBAAC,OAAD;MAAK,WAAU;gBACb,kBAAC,GAAD;OAAmB,WAAU;iBAC1B;OACiB,CAAA;MAChB,CAAA;KAEP,KAAW,kBAAC,OAAD;MAAK,WAAU;gBAAmB;MAAc,CAAA;KACxD;QACJ,KAAW,MACX,kBAAC,OAAD;IAAK,WAAU;cAAf,CACG,KACC,kBAAC,GAAD;KACE,OAAO,EAAQ;KACf,MAAM,EAAQ;KACd,MAAK;KACL,WAAU;KACV,WAlDe,YAA+B;AAC1D,SAAQ,WAAW;QAiDsB,EAAQ;KACrC,CAAA,EAEH,KACC,kBAAC,GAAD;KACE,OAAO,EAAO;KACd,MAAM,EAAO;KACb,MAAK;KACL,WAAU;KACV,WAvDc,YAA+B;AAEzD,MADA,GAAQ,WAAW,EACnB,GAAa;QAqD2B,EAAO;KACnC,CAAA,CAEA;MAEM;;EACT,CAAA"}
@@ -0,0 +1,71 @@
1
+ import { clsx as e } from "clsx";
2
+ import { extendTailwindMerge as t } from "tailwind-merge";
3
+ //#region src/utils/TailwindUtil.ts
4
+ var n = t({ extend: {
5
+ classGroups: { "font-style": [
6
+ "text-display-96-bold",
7
+ "text-display-96-medium",
8
+ "text-display-72-bold",
9
+ "text-display-72-medium",
10
+ "text-display-60-bold",
11
+ "text-display-60-medium",
12
+ "text-headline-48-bold",
13
+ "text-headline-48-medium",
14
+ "text-headline-48-regular",
15
+ "text-headline-42-bold",
16
+ "text-headline-42-medium",
17
+ "text-headline-42-regular",
18
+ "text-headline-36-bold",
19
+ "text-headline-36-medium",
20
+ "text-headline-36-regular",
21
+ "text-title-28-bold",
22
+ "text-title-28-medium",
23
+ "text-title-28-regular",
24
+ "text-title-24-bold",
25
+ "text-title-24-medium",
26
+ "text-title-24-regular",
27
+ "text-title-20-bold",
28
+ "text-title-20-medium",
29
+ "text-title-20-regular",
30
+ "text-title-18-bold",
31
+ "text-title-18-medium",
32
+ "text-title-18-regular",
33
+ "text-title-16-bold",
34
+ "text-title-14-bold",
35
+ "text-body-16-medium",
36
+ "text-body-16-regular",
37
+ "text-body-14-medium",
38
+ "text-body-14-regular",
39
+ "text-body-12-bold",
40
+ "text-caption-12-bold",
41
+ "text-caption-12-medium",
42
+ "text-caption-12-regular",
43
+ "text-caption-11-medium",
44
+ "text-caption-10-bold",
45
+ { text: [
46
+ "display-large",
47
+ "display-medium",
48
+ "title-large",
49
+ "title-medium",
50
+ "title-small",
51
+ "label-large",
52
+ "label-medium",
53
+ "label-small",
54
+ "body-large",
55
+ "body-medium",
56
+ "body-small",
57
+ "caption-large",
58
+ "caption-medium",
59
+ "caption-small",
60
+ "badge"
61
+ ] }
62
+ ] },
63
+ conflictingClassGroups: { "font-style": ["font-size", "font-weight"] }
64
+ } });
65
+ function r(...t) {
66
+ return n(e(t));
67
+ }
68
+ //#endregion
69
+ export { r as t };
70
+
71
+ //# sourceMappingURL=TailwindUtil-aZk2bbTo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TailwindUtil-aZk2bbTo.js","names":[],"sources":["../src/utils/TailwindUtil.ts"],"sourcesContent":["import { type ClassValue, clsx } from \"clsx\";\nimport { extendTailwindMerge } from \"tailwind-merge\";\n\nconst customTwMerge = extendTailwindMerge({\n extend: {\n classGroups: {\n \"font-style\": [\n // Display\n \"text-display-96-bold\",\n \"text-display-96-medium\",\n \"text-display-72-bold\",\n \"text-display-72-medium\",\n \"text-display-60-bold\",\n \"text-display-60-medium\",\n // Headline\n \"text-headline-48-bold\",\n \"text-headline-48-medium\",\n \"text-headline-48-regular\",\n \"text-headline-42-bold\",\n \"text-headline-42-medium\",\n \"text-headline-42-regular\",\n \"text-headline-36-bold\",\n \"text-headline-36-medium\",\n \"text-headline-36-regular\",\n // Title\n \"text-title-28-bold\",\n \"text-title-28-medium\",\n \"text-title-28-regular\",\n \"text-title-24-bold\",\n \"text-title-24-medium\",\n \"text-title-24-regular\",\n \"text-title-20-bold\",\n \"text-title-20-medium\",\n \"text-title-20-regular\",\n \"text-title-18-bold\",\n \"text-title-18-medium\",\n \"text-title-18-regular\",\n \"text-title-16-bold\",\n \"text-title-14-bold\",\n // Body\n \"text-body-16-medium\",\n \"text-body-16-regular\",\n \"text-body-14-medium\",\n \"text-body-14-regular\",\n \"text-body-12-bold\",\n // Caption\n \"text-caption-12-bold\",\n \"text-caption-12-medium\",\n \"text-caption-12-regular\",\n \"text-caption-11-medium\",\n \"text-caption-10-bold\",\n {\n text: [\n \"display-large\",\n \"display-medium\",\n \"title-large\",\n \"title-medium\",\n \"title-small\",\n \"label-large\",\n \"label-medium\",\n \"label-small\",\n \"body-large\",\n \"body-medium\",\n \"body-small\",\n \"caption-large\",\n \"caption-medium\",\n \"caption-small\",\n \"badge\",\n ],\n },\n ],\n },\n conflictingClassGroups: {\n \"font-style\": [\"font-size\", \"font-weight\"], // 예시: 폰트 크기, 굵기와 충돌 가능성 명시\n // 기존 색상 관련 그룹과의 충돌을 피하기 위해 textColor 그룹을 명시적으로 선언하거나,\n // text-label-large가 색상과 관련 없음을 tailwind-merge에 알려야 합니다.\n // 만약 text-label-large가 특정 색상을 포함하지 않는다면,\n // textColor 그룹과의 충돌을 정의할 필요는 없을 수 있습니다.\n // 하지만, 만약 text-red-500과 같은 클래스와 충돌한다면,\n // textColor 그룹과의 관계를 명확히 해야 합니다.\n // 가장 간단한 방법은 text-label-large를 textColor 그룹에서 제외하는 것입니다.\n // 또는, text-label-large가 독립적인 그룹임을 명시합니다.\n },\n },\n});\n\nexport function cn(...inputs: ClassValue[]) {\n return customTwMerge(clsx(inputs));\n}\n"],"mappings":";;;AAGA,IAAM,IAAgB,EAAoB,EACxC,QAAQ;CACN,aAAa,EACX,cAAc;EAEZ;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA,EACE,MAAM;GACJ;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,EACF;EACF,EACF;CACD,wBAAwB,EACtB,cAAc,CAAC,aAAa,cAAc,EAS3C;CACF,EACF,CAAC;AAEF,SAAgB,EAAG,GAAG,GAAsB;AAC1C,QAAO,EAAc,EAAK,EAAO,CAAC"}