@exem-ui/react 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.
- package/LICENSE +190 -0
- package/README.en.md +142 -0
- package/README.md +156 -18
- package/dist/index.d.mts +1166 -37
- package/dist/index.d.ts +1166 -37
- package/dist/index.js +3055 -130
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +3016 -27
- package/dist/index.mjs.map +1 -1
- package/package.json +24 -143
- package/dist/Button-CMenVfb7.d.mts +0 -35
- package/dist/Button-CMenVfb7.d.ts +0 -35
- package/dist/Select-DMvWV_rF.d.mts +0 -94
- package/dist/Select-DMvWV_rF.d.ts +0 -94
- package/dist/avatar/index.d.mts +0 -37
- package/dist/avatar/index.d.ts +0 -37
- package/dist/avatar/index.js +0 -13
- package/dist/avatar/index.js.map +0 -1
- package/dist/avatar/index.mjs +0 -4
- package/dist/avatar/index.mjs.map +0 -1
- package/dist/badge/index.d.mts +0 -29
- package/dist/badge/index.d.ts +0 -29
- package/dist/badge/index.js +0 -12
- package/dist/badge/index.js.map +0 -1
- package/dist/badge/index.mjs +0 -3
- package/dist/badge/index.mjs.map +0 -1
- package/dist/breadcrumb/index.d.mts +0 -43
- package/dist/breadcrumb/index.d.ts +0 -43
- package/dist/breadcrumb/index.js +0 -13
- package/dist/breadcrumb/index.js.map +0 -1
- package/dist/breadcrumb/index.mjs +0 -4
- package/dist/breadcrumb/index.mjs.map +0 -1
- package/dist/button/index.d.mts +0 -9
- package/dist/button/index.d.ts +0 -9
- package/dist/button/index.js +0 -29
- package/dist/button/index.js.map +0 -1
- package/dist/button/index.mjs +0 -12
- package/dist/button/index.mjs.map +0 -1
- package/dist/checkbox/index.d.mts +0 -54
- package/dist/checkbox/index.d.ts +0 -54
- package/dist/checkbox/index.js +0 -13
- package/dist/checkbox/index.js.map +0 -1
- package/dist/checkbox/index.mjs +0 -4
- package/dist/checkbox/index.mjs.map +0 -1
- package/dist/chunk-34QIGWCT.mjs +0 -10
- package/dist/chunk-34QIGWCT.mjs.map +0 -1
- package/dist/chunk-3FPMWAQT.js +0 -30
- package/dist/chunk-3FPMWAQT.js.map +0 -1
- package/dist/chunk-3HMT3DQV.js +0 -104
- package/dist/chunk-3HMT3DQV.js.map +0 -1
- package/dist/chunk-4WAO7CUT.mjs +0 -95
- package/dist/chunk-4WAO7CUT.mjs.map +0 -1
- package/dist/chunk-5QX4TO4F.js +0 -61
- package/dist/chunk-5QX4TO4F.js.map +0 -1
- package/dist/chunk-5TEFN2CW.js +0 -97
- package/dist/chunk-5TEFN2CW.js.map +0 -1
- package/dist/chunk-5TES5PG6.js +0 -41
- package/dist/chunk-5TES5PG6.js.map +0 -1
- package/dist/chunk-5TVMECVF.js +0 -148
- package/dist/chunk-5TVMECVF.js.map +0 -1
- package/dist/chunk-5WGNZX7Z.mjs +0 -27
- package/dist/chunk-5WGNZX7Z.mjs.map +0 -1
- package/dist/chunk-AQ3OIM2T.js +0 -103
- package/dist/chunk-AQ3OIM2T.js.map +0 -1
- package/dist/chunk-AU5NTBK3.js +0 -361
- package/dist/chunk-AU5NTBK3.js.map +0 -1
- package/dist/chunk-DJHGCJR4.mjs +0 -224
- package/dist/chunk-DJHGCJR4.mjs.map +0 -1
- package/dist/chunk-DPUTW5KD.mjs +0 -74
- package/dist/chunk-DPUTW5KD.mjs.map +0 -1
- package/dist/chunk-E53FHDVN.mjs +0 -336
- package/dist/chunk-E53FHDVN.mjs.map +0 -1
- package/dist/chunk-ECRQD7UU.js +0 -82
- package/dist/chunk-ECRQD7UU.js.map +0 -1
- package/dist/chunk-FB4ESGOX.mjs +0 -59
- package/dist/chunk-FB4ESGOX.mjs.map +0 -1
- package/dist/chunk-FDX4IQK5.js +0 -76
- package/dist/chunk-FDX4IQK5.js.map +0 -1
- package/dist/chunk-FOMIUDRM.js +0 -96
- package/dist/chunk-FOMIUDRM.js.map +0 -1
- package/dist/chunk-FR5F3VTU.js +0 -139
- package/dist/chunk-FR5F3VTU.js.map +0 -1
- package/dist/chunk-GW53LH3I.mjs +0 -81
- package/dist/chunk-GW53LH3I.mjs.map +0 -1
- package/dist/chunk-GXMRIT5E.mjs +0 -94
- package/dist/chunk-GXMRIT5E.mjs.map +0 -1
- package/dist/chunk-IANSI7F7.mjs +0 -393
- package/dist/chunk-IANSI7F7.mjs.map +0 -1
- package/dist/chunk-IDM6MZHF.js +0 -415
- package/dist/chunk-IDM6MZHF.js.map +0 -1
- package/dist/chunk-J5ZYQ3TP.js +0 -104
- package/dist/chunk-J5ZYQ3TP.js.map +0 -1
- package/dist/chunk-KPAUBWZA.mjs +0 -39
- package/dist/chunk-KPAUBWZA.mjs.map +0 -1
- package/dist/chunk-L7P2NDST.mjs +0 -124
- package/dist/chunk-L7P2NDST.mjs.map +0 -1
- package/dist/chunk-M6OWN7QH.js +0 -118
- package/dist/chunk-M6OWN7QH.js.map +0 -1
- package/dist/chunk-MQVHREEI.js +0 -448
- package/dist/chunk-MQVHREEI.js.map +0 -1
- package/dist/chunk-MT47ECUN.js +0 -127
- package/dist/chunk-MT47ECUN.js.map +0 -1
- package/dist/chunk-N6U54JI4.mjs +0 -126
- package/dist/chunk-N6U54JI4.mjs.map +0 -1
- package/dist/chunk-NDG4LR3Q.js +0 -139
- package/dist/chunk-NDG4LR3Q.js.map +0 -1
- package/dist/chunk-PPD4BU4W.mjs +0 -80
- package/dist/chunk-PPD4BU4W.mjs.map +0 -1
- package/dist/chunk-PU5NO5EZ.js +0 -4
- package/dist/chunk-PU5NO5EZ.js.map +0 -1
- package/dist/chunk-Q442ZDTI.mjs +0 -117
- package/dist/chunk-Q442ZDTI.mjs.map +0 -1
- package/dist/chunk-QH23RO3C.mjs +0 -137
- package/dist/chunk-QH23RO3C.mjs.map +0 -1
- package/dist/chunk-REBHUF4L.js +0 -226
- package/dist/chunk-REBHUF4L.js.map +0 -1
- package/dist/chunk-RGB3QLQT.js +0 -275
- package/dist/chunk-RGB3QLQT.js.map +0 -1
- package/dist/chunk-T7U2QRLC.js +0 -94
- package/dist/chunk-T7U2QRLC.js.map +0 -1
- package/dist/chunk-TEHHJ3CS.mjs +0 -73
- package/dist/chunk-TEHHJ3CS.mjs.map +0 -1
- package/dist/chunk-TJY4MIBC.js +0 -117
- package/dist/chunk-TJY4MIBC.js.map +0 -1
- package/dist/chunk-VCMZQOQM.mjs +0 -102
- package/dist/chunk-VCMZQOQM.mjs.map +0 -1
- package/dist/chunk-VKN4H4WI.mjs +0 -3
- package/dist/chunk-VKN4H4WI.mjs.map +0 -1
- package/dist/chunk-VSB25XTY.js +0 -12
- package/dist/chunk-VSB25XTY.js.map +0 -1
- package/dist/chunk-VWTE74UT.mjs +0 -96
- package/dist/chunk-VWTE74UT.mjs.map +0 -1
- package/dist/chunk-WBTL7PBV.js +0 -105
- package/dist/chunk-WBTL7PBV.js.map +0 -1
- package/dist/chunk-WOK3EP3O.js +0 -83
- package/dist/chunk-WOK3EP3O.js.map +0 -1
- package/dist/chunk-WWT73GGM.mjs +0 -83
- package/dist/chunk-WWT73GGM.mjs.map +0 -1
- package/dist/chunk-XBDXTRK3.mjs +0 -102
- package/dist/chunk-XBDXTRK3.mjs.map +0 -1
- package/dist/chunk-YGBEKZWU.mjs +0 -81
- package/dist/chunk-YGBEKZWU.mjs.map +0 -1
- package/dist/chunk-YVFLRPFV.mjs +0 -72
- package/dist/chunk-YVFLRPFV.mjs.map +0 -1
- package/dist/chunk-ZMVBIQ2Z.mjs +0 -253
- package/dist/chunk-ZMVBIQ2Z.mjs.map +0 -1
- package/dist/chunk-ZWCMSHDP.mjs +0 -425
- package/dist/chunk-ZWCMSHDP.mjs.map +0 -1
- package/dist/flat/index.d.mts +0 -13
- package/dist/flat/index.d.ts +0 -13
- package/dist/flat/index.js +0 -31
- package/dist/flat/index.js.map +0 -1
- package/dist/flat/index.mjs +0 -10
- package/dist/flat/index.mjs.map +0 -1
- package/dist/flat/segment.d.mts +0 -39
- package/dist/flat/segment.d.ts +0 -39
- package/dist/flat/segment.js +0 -13
- package/dist/flat/segment.js.map +0 -1
- package/dist/flat/segment.mjs +0 -4
- package/dist/flat/segment.mjs.map +0 -1
- package/dist/flat/select.d.mts +0 -58
- package/dist/flat/select.d.ts +0 -58
- package/dist/flat/select.js +0 -14
- package/dist/flat/select.js.map +0 -1
- package/dist/flat/select.mjs +0 -5
- package/dist/flat/select.mjs.map +0 -1
- package/dist/flat/tooltip.d.mts +0 -98
- package/dist/flat/tooltip.d.ts +0 -98
- package/dist/flat/tooltip.js +0 -17
- package/dist/flat/tooltip.js.map +0 -1
- package/dist/flat/tooltip.mjs +0 -4
- package/dist/flat/tooltip.mjs.map +0 -1
- package/dist/index-CXip5Wb1.d.mts +0 -62
- package/dist/index-Drz3P-6Y.d.ts +0 -62
- package/dist/input/index.d.mts +0 -82
- package/dist/input/index.d.ts +0 -82
- package/dist/input/index.js +0 -22
- package/dist/input/index.js.map +0 -1
- package/dist/input/index.mjs +0 -5
- package/dist/input/index.mjs.map +0 -1
- package/dist/loading/index.d.mts +0 -54
- package/dist/loading/index.d.ts +0 -54
- package/dist/loading/index.js +0 -12
- package/dist/loading/index.js.map +0 -1
- package/dist/loading/index.mjs +0 -3
- package/dist/loading/index.mjs.map +0 -1
- package/dist/messageBox/index.d.mts +0 -33
- package/dist/messageBox/index.d.ts +0 -33
- package/dist/messageBox/index.js +0 -13
- package/dist/messageBox/index.js.map +0 -1
- package/dist/messageBox/index.mjs +0 -4
- package/dist/messageBox/index.mjs.map +0 -1
- package/dist/modal/index.d.mts +0 -97
- package/dist/modal/index.d.ts +0 -97
- package/dist/modal/index.js +0 -15
- package/dist/modal/index.js.map +0 -1
- package/dist/modal/index.mjs +0 -6
- package/dist/modal/index.mjs.map +0 -1
- package/dist/picker/index.d.mts +0 -12
- package/dist/picker/index.d.ts +0 -12
- package/dist/picker/index.js +0 -13
- package/dist/picker/index.js.map +0 -1
- package/dist/picker/index.mjs +0 -4
- package/dist/picker/index.mjs.map +0 -1
- package/dist/progress/index.d.mts +0 -36
- package/dist/progress/index.d.ts +0 -36
- package/dist/progress/index.js +0 -12
- package/dist/progress/index.js.map +0 -1
- package/dist/progress/index.mjs +0 -3
- package/dist/progress/index.mjs.map +0 -1
- package/dist/radio/index.d.mts +0 -39
- package/dist/radio/index.d.ts +0 -39
- package/dist/radio/index.js +0 -12
- package/dist/radio/index.js.map +0 -1
- package/dist/radio/index.mjs +0 -3
- package/dist/radio/index.mjs.map +0 -1
- package/dist/scrollArea/index.d.mts +0 -31
- package/dist/scrollArea/index.d.ts +0 -31
- package/dist/scrollArea/index.js +0 -16
- package/dist/scrollArea/index.js.map +0 -1
- package/dist/scrollArea/index.mjs +0 -3
- package/dist/scrollArea/index.mjs.map +0 -1
- package/dist/segment/index.d.mts +0 -46
- package/dist/segment/index.d.ts +0 -46
- package/dist/segment/index.js +0 -12
- package/dist/segment/index.js.map +0 -1
- package/dist/segment/index.mjs +0 -3
- package/dist/segment/index.mjs.map +0 -1
- package/dist/star/index.d.mts +0 -30
- package/dist/star/index.d.ts +0 -30
- package/dist/star/index.js +0 -12
- package/dist/star/index.js.map +0 -1
- package/dist/star/index.mjs +0 -3
- package/dist/star/index.mjs.map +0 -1
- package/dist/switch/index.d.mts +0 -32
- package/dist/switch/index.d.ts +0 -32
- package/dist/switch/index.js +0 -12
- package/dist/switch/index.js.map +0 -1
- package/dist/switch/index.mjs +0 -3
- package/dist/switch/index.mjs.map +0 -1
- package/dist/tabs/index.d.mts +0 -52
- package/dist/tabs/index.d.ts +0 -52
- package/dist/tabs/index.js +0 -12
- package/dist/tabs/index.js.map +0 -1
- package/dist/tabs/index.mjs +0 -3
- package/dist/tabs/index.mjs.map +0 -1
- package/dist/tag/index.d.mts +0 -68
- package/dist/tag/index.d.ts +0 -68
- package/dist/tag/index.js +0 -17
- package/dist/tag/index.js.map +0 -1
- package/dist/tag/index.mjs +0 -4
- package/dist/tag/index.mjs.map +0 -1
- package/dist/toast/index.d.mts +0 -175
- package/dist/toast/index.d.ts +0 -175
- package/dist/toast/index.js +0 -25
- package/dist/toast/index.js.map +0 -1
- package/dist/toast/index.mjs +0 -4
- package/dist/toast/index.mjs.map +0 -1
- package/dist/tooltip/index.d.mts +0 -26
- package/dist/tooltip/index.d.ts +0 -26
- package/dist/tooltip/index.js +0 -12
- package/dist/tooltip/index.js.map +0 -1
- package/dist/tooltip/index.mjs +0 -3
- package/dist/tooltip/index.mjs.map +0 -1
package/dist/chunk-L7P2NDST.mjs
DELETED
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import { X } from './chunk-LZWKMQJL.mjs';
|
|
2
|
-
import { cva, cn } from '@exem-ui/core/utils';
|
|
3
|
-
import { forwardRef, Fragment } from 'react';
|
|
4
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
5
|
-
|
|
6
|
-
var tagVariants = cva(
|
|
7
|
-
"inline-flex h-5 items-center gap-0.5 rounded-medium px-1 text-body-3 font-medium",
|
|
8
|
-
{
|
|
9
|
-
variants: {
|
|
10
|
-
color: {
|
|
11
|
-
mono: "text-tint-foreground-mono",
|
|
12
|
-
sky: "text-tint-foreground-sky",
|
|
13
|
-
red: "text-tint-foreground-red",
|
|
14
|
-
amber: "text-tint-foreground-amber",
|
|
15
|
-
green: "text-tint-foreground-green",
|
|
16
|
-
orange: "text-tint-foreground-orange",
|
|
17
|
-
cyan: "text-tint-foreground-cyan",
|
|
18
|
-
violet: "text-tint-foreground-violet",
|
|
19
|
-
pink: "text-tint-foreground-pink",
|
|
20
|
-
yellow: "text-tint-foreground-yellow",
|
|
21
|
-
lime: "text-tint-foreground-lime",
|
|
22
|
-
emerald: "text-tint-foreground-emerald",
|
|
23
|
-
teal: "text-tint-foreground-teal",
|
|
24
|
-
blue: "text-tint-foreground-blue",
|
|
25
|
-
indigo: "text-tint-foreground-indigo",
|
|
26
|
-
purple: "text-tint-foreground-purple",
|
|
27
|
-
fuchsia: "text-tint-foreground-fuchsia",
|
|
28
|
-
rose: "text-tint-foreground-rose"
|
|
29
|
-
},
|
|
30
|
-
type: {
|
|
31
|
-
fill: "",
|
|
32
|
-
line: "bg-component-tag border border-border-secondary"
|
|
33
|
-
}
|
|
34
|
-
},
|
|
35
|
-
compoundVariants: [
|
|
36
|
-
{ color: "mono", type: "fill", className: "bg-tint-background-mono" },
|
|
37
|
-
{ color: "sky", type: "fill", className: "bg-tint-background-sky" },
|
|
38
|
-
{ color: "red", type: "fill", className: "bg-tint-background-red" },
|
|
39
|
-
{ color: "amber", type: "fill", className: "bg-tint-background-amber" },
|
|
40
|
-
{ color: "green", type: "fill", className: "bg-tint-background-green" },
|
|
41
|
-
{ color: "orange", type: "fill", className: "bg-tint-background-orange" },
|
|
42
|
-
{ color: "cyan", type: "fill", className: "bg-tint-background-cyan" },
|
|
43
|
-
{ color: "violet", type: "fill", className: "bg-tint-background-violet" },
|
|
44
|
-
{ color: "pink", type: "fill", className: "bg-tint-background-pink" },
|
|
45
|
-
{ color: "yellow", type: "fill", className: "bg-tint-background-yellow" },
|
|
46
|
-
{ color: "lime", type: "fill", className: "bg-tint-background-lime" },
|
|
47
|
-
{ color: "emerald", type: "fill", className: "bg-tint-background-emerald" },
|
|
48
|
-
{ color: "teal", type: "fill", className: "bg-tint-background-teal" },
|
|
49
|
-
{ color: "blue", type: "fill", className: "bg-tint-background-blue" },
|
|
50
|
-
{ color: "indigo", type: "fill", className: "bg-tint-background-indigo" },
|
|
51
|
-
{ color: "purple", type: "fill", className: "bg-tint-background-purple" },
|
|
52
|
-
{ color: "fuchsia", type: "fill", className: "bg-tint-background-fuchsia" },
|
|
53
|
-
{ color: "rose", type: "fill", className: "bg-tint-background-rose" }
|
|
54
|
-
],
|
|
55
|
-
defaultVariants: {
|
|
56
|
-
color: "mono",
|
|
57
|
-
type: "fill"
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
);
|
|
61
|
-
var Tag = forwardRef(
|
|
62
|
-
({
|
|
63
|
-
className,
|
|
64
|
-
color,
|
|
65
|
-
type = "fill",
|
|
66
|
-
leftIcon,
|
|
67
|
-
canDelete,
|
|
68
|
-
onDelete,
|
|
69
|
-
rightSlot,
|
|
70
|
-
children,
|
|
71
|
-
...props
|
|
72
|
-
}, ref) => {
|
|
73
|
-
return /* @__PURE__ */ jsxs(
|
|
74
|
-
"div",
|
|
75
|
-
{
|
|
76
|
-
"data-slot": "tag",
|
|
77
|
-
className: cn(tagVariants({ color, type, className })),
|
|
78
|
-
ref,
|
|
79
|
-
...props,
|
|
80
|
-
children: [
|
|
81
|
-
leftIcon && /* @__PURE__ */ jsx("span", { className: "flex shrink-0 size-3 items-center justify-center [&>svg]:size-3", children: leftIcon }),
|
|
82
|
-
/* @__PURE__ */ jsx("span", { className: "px-0.5 text-body-3 font-medium", children }),
|
|
83
|
-
canDelete && /* @__PURE__ */ jsx(
|
|
84
|
-
"button",
|
|
85
|
-
{
|
|
86
|
-
type: "button",
|
|
87
|
-
onClick: (e) => {
|
|
88
|
-
e.stopPropagation();
|
|
89
|
-
onDelete?.();
|
|
90
|
-
},
|
|
91
|
-
children: /* @__PURE__ */ jsx(X, { type: "regular", className: "size-3 [&>*]:stroke-current [&>path]:fill-current" })
|
|
92
|
-
}
|
|
93
|
-
),
|
|
94
|
-
rightSlot && /* @__PURE__ */ jsx("div", { className: "ml-auto", children: rightSlot })
|
|
95
|
-
]
|
|
96
|
-
}
|
|
97
|
-
);
|
|
98
|
-
}
|
|
99
|
-
);
|
|
100
|
-
Tag.displayName = "Tag";
|
|
101
|
-
var DoubleTag = forwardRef(
|
|
102
|
-
({ className, items, ...props }, ref) => {
|
|
103
|
-
return /* @__PURE__ */ jsx(
|
|
104
|
-
"div",
|
|
105
|
-
{
|
|
106
|
-
className: cn(
|
|
107
|
-
"flex w-fit overflow-hidden rounded-medium border border-border-secondary",
|
|
108
|
-
className
|
|
109
|
-
),
|
|
110
|
-
ref,
|
|
111
|
-
...props,
|
|
112
|
-
children: items.map((item, index) => /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
113
|
-
/* @__PURE__ */ jsx(Tag, { color: item.color, type: "line", className: "rounded-none border-none", children: item.content }),
|
|
114
|
-
index < items.length - 1 && /* @__PURE__ */ jsx("div", { className: "min-h-[20px] w-px border-none bg-border-secondary" })
|
|
115
|
-
] }, index))
|
|
116
|
-
}
|
|
117
|
-
);
|
|
118
|
-
}
|
|
119
|
-
);
|
|
120
|
-
DoubleTag.displayName = "DoubleTag";
|
|
121
|
-
|
|
122
|
-
export { DoubleTag, Tag };
|
|
123
|
-
//# sourceMappingURL=chunk-L7P2NDST.mjs.map
|
|
124
|
-
//# sourceMappingURL=chunk-L7P2NDST.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tag/Tag.tsx"],"names":[],"mappings":"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","file":"chunk-L7P2NDST.mjs","sourcesContent":["import { cn, cva, type VariantProps } from '@exem-ui/core/utils';\nimport type React from 'react';\nimport { Fragment, forwardRef } from 'react';\nimport { XIcon } from '../icon';\n\ntype TagColor = VariantProps<typeof tagVariants>['color'];\n\ninterface TagProps\n extends Pick<React.HTMLAttributes<HTMLDivElement>, 'className' | 'children' | 'style'>,\n VariantProps<typeof tagVariants> {\n /** 텍스트 왼쪽에 표시할 아이콘 */\n leftIcon?: React.ReactElement<{ className?: string }>;\n /**\n * 삭제 아이콘 표시 여부\n * @default false\n */\n canDelete?: boolean;\n /** 삭제 버튼 클릭 핸들러 */\n onDelete?: () => void;\n /** 텍스트 오른쪽에 표시할 슬롯 요소 */\n rightSlot?: React.ReactNode;\n}\n\ntype TagComponent = React.ForwardRefExoticComponent<TagProps & React.RefAttributes<HTMLDivElement>>;\n\ninterface DoubleTagProps {\n /** 표시할 태그 항목 배열 (각 항목은 color와 content를 가짐) */\n items: {\n color: TagColor;\n content: React.ReactNode;\n }[];\n className?: string;\n}\n\nconst tagVariants = cva(\n 'inline-flex h-5 items-center gap-0.5 rounded-medium px-1 text-body-3 font-medium',\n {\n variants: {\n color: {\n mono: 'text-tint-foreground-mono',\n sky: 'text-tint-foreground-sky',\n red: 'text-tint-foreground-red',\n amber: 'text-tint-foreground-amber',\n green: 'text-tint-foreground-green',\n orange: 'text-tint-foreground-orange',\n cyan: 'text-tint-foreground-cyan',\n violet: 'text-tint-foreground-violet',\n pink: 'text-tint-foreground-pink',\n yellow: 'text-tint-foreground-yellow',\n lime: 'text-tint-foreground-lime',\n emerald: 'text-tint-foreground-emerald',\n teal: 'text-tint-foreground-teal',\n blue: 'text-tint-foreground-blue',\n indigo: 'text-tint-foreground-indigo',\n purple: 'text-tint-foreground-purple',\n fuchsia: 'text-tint-foreground-fuchsia',\n rose: 'text-tint-foreground-rose',\n },\n type: {\n fill: '',\n line: 'bg-component-tag border border-border-secondary',\n },\n },\n compoundVariants: [\n { color: 'mono', type: 'fill', className: 'bg-tint-background-mono' },\n { color: 'sky', type: 'fill', className: 'bg-tint-background-sky' },\n { color: 'red', type: 'fill', className: 'bg-tint-background-red' },\n { color: 'amber', type: 'fill', className: 'bg-tint-background-amber' },\n { color: 'green', type: 'fill', className: 'bg-tint-background-green' },\n { color: 'orange', type: 'fill', className: 'bg-tint-background-orange' },\n { color: 'cyan', type: 'fill', className: 'bg-tint-background-cyan' },\n { color: 'violet', type: 'fill', className: 'bg-tint-background-violet' },\n { color: 'pink', type: 'fill', className: 'bg-tint-background-pink' },\n { color: 'yellow', type: 'fill', className: 'bg-tint-background-yellow' },\n { color: 'lime', type: 'fill', className: 'bg-tint-background-lime' },\n { color: 'emerald', type: 'fill', className: 'bg-tint-background-emerald' },\n { color: 'teal', type: 'fill', className: 'bg-tint-background-teal' },\n { color: 'blue', type: 'fill', className: 'bg-tint-background-blue' },\n { color: 'indigo', type: 'fill', className: 'bg-tint-background-indigo' },\n { color: 'purple', type: 'fill', className: 'bg-tint-background-purple' },\n { color: 'fuchsia', type: 'fill', className: 'bg-tint-background-fuchsia' },\n { color: 'rose', type: 'fill', className: 'bg-tint-background-rose' },\n ],\n defaultVariants: {\n color: 'mono',\n type: 'fill',\n },\n },\n);\n\n/**\n * 카테고리나 상태를 나타내는 라벨 컴포넌트입니다.\n * 18가지 색상과 `fill`/`line` 타입을 지원합니다.\n *\n * @example\n * ```tsx\n * <Tag color=\"sky\">라벨</Tag>\n * <Tag color=\"red\" type=\"line\">경고</Tag>\n * <Tag color=\"green\" canDelete onDelete={handleDelete}>삭제 가능</Tag>\n * <Tag color=\"blue\" leftIcon={<StarIcon type=\"regular\" />}>아이콘 태그</Tag>\n * <Tag color=\"blue\" rightSlot={<Icon />}>커스텀 슬롯</Tag>\n * ```\n *\n * @see {@link TagProps} props 상세\n */\nconst Tag = forwardRef<HTMLDivElement, TagProps>(\n (\n {\n className,\n color,\n type = 'fill',\n leftIcon,\n canDelete,\n onDelete,\n rightSlot,\n children,\n ...props\n },\n ref,\n ) => {\n return (\n <div\n data-slot=\"tag\"\n className={cn(tagVariants({ color, type, className }))}\n ref={ref}\n {...props}\n >\n {leftIcon && (\n <span className=\"flex shrink-0 size-3 items-center justify-center [&>svg]:size-3\">\n {leftIcon}\n </span>\n )}\n <span className=\"px-0.5 text-body-3 font-medium\">{children}</span>\n {canDelete && (\n <button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation();\n onDelete?.();\n }}\n >\n <XIcon type=\"regular\" className=\"size-3 [&>*]:stroke-current [&>path]:fill-current\" />\n </button>\n )}\n {rightSlot && <div className=\"ml-auto\">{rightSlot}</div>}\n </div>\n );\n },\n);\n\nTag.displayName = 'Tag';\n\n/**\n * 두 개의 태그를 나란히 연결하여 키-값 쌍을 표시하는 컴포넌트입니다.\n * 각 태그는 `line` 타입으로 렌더링되며, 사이에 구분선이 표시됩니다.\n *\n * @example\n * ```tsx\n * <DoubleTag\n * items={[\n * { color: 'blue', content: '카테고리' },\n * { color: 'red', content: '긴급' },\n * ]}\n * />\n * ```\n *\n * @see {@link DoubleTagProps} props 상세\n */\nconst DoubleTag = forwardRef<HTMLDivElement, DoubleTagProps>(\n ({ className, items, ...props }, ref) => {\n return (\n <div\n className={cn(\n 'flex w-fit overflow-hidden rounded-medium border border-border-secondary',\n className,\n )}\n ref={ref}\n {...props}\n >\n {items.map((item, index) => (\n <Fragment key={index}>\n <Tag color={item.color} type=\"line\" className=\"rounded-none border-none\">\n {item.content}\n </Tag>\n {index < items.length - 1 && (\n <div className=\"min-h-[20px] w-px border-none bg-border-secondary\" />\n )}\n </Fragment>\n ))}\n </div>\n );\n },\n);\n\nDoubleTag.displayName = 'DoubleTag';\n\nexport { Tag, DoubleTag };\nexport type { TagComponent, TagProps, TagColor, DoubleTagProps };\n"]}
|
package/dist/chunk-M6OWN7QH.js
DELETED
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var utils = require('@exem-ui/core/utils');
|
|
4
|
-
var SwitchPrimitives = require('@radix-ui/react-switch');
|
|
5
|
-
var react = require('react');
|
|
6
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
7
|
-
|
|
8
|
-
function _interopNamespace(e) {
|
|
9
|
-
if (e && e.__esModule) return e;
|
|
10
|
-
var n = Object.create(null);
|
|
11
|
-
if (e) {
|
|
12
|
-
Object.keys(e).forEach(function (k) {
|
|
13
|
-
if (k !== 'default') {
|
|
14
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
15
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
16
|
-
enumerable: true,
|
|
17
|
-
get: function () { return e[k]; }
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
n.default = e;
|
|
23
|
-
return Object.freeze(n);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
var SwitchPrimitives__namespace = /*#__PURE__*/_interopNamespace(SwitchPrimitives);
|
|
27
|
-
|
|
28
|
-
// src/switch/Switch.tsx
|
|
29
|
-
var switchVariants = utils.cva(
|
|
30
|
-
"peer relative inline-flex shrink-0 cursor-pointer items-center rounded-full disabled:cursor-not-allowed data-[state=checked]:bg-solid-accent-default data-[state=unchecked]:bg-elevation-elevation-4 hover:data-[state=checked]:bg-solid-accent-hovered hover:data-[state=unchecked]:bg-elevation-elevation-5 disabled:data-[state=checked]:bg-solid-accent-disabled disabled:data-[state=unchecked]:bg-elevation-elevation-3 disabled:hover:data-[state=checked]:bg-solid-accent-disabled disabled:hover:data-[state=unchecked]:bg-elevation-elevation-3",
|
|
31
|
-
{
|
|
32
|
-
variants: {
|
|
33
|
-
size: {
|
|
34
|
-
small: "h-[16px] w-[28px]",
|
|
35
|
-
medium: "h-[20px] w-[36px]",
|
|
36
|
-
large: "h-[24px] w-[44px]"
|
|
37
|
-
}
|
|
38
|
-
},
|
|
39
|
-
defaultVariants: {
|
|
40
|
-
size: "medium"
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
);
|
|
44
|
-
var switchThumbVariants = utils.cva(
|
|
45
|
-
"pointer-events-none absolute bg-icon-static-light left-[2px] top-[2px] rounded-full ring-0 data-[state=unchecked]:translate-x-0 data-[disabled]:bg-icon-inverse-disabled",
|
|
46
|
-
{
|
|
47
|
-
variants: {
|
|
48
|
-
size: {
|
|
49
|
-
small: "size-[12px] data-[state=checked]:translate-x-[12px]",
|
|
50
|
-
medium: "size-[16px] data-[state=checked]:translate-x-[16px]",
|
|
51
|
-
large: "size-[20px] data-[state=checked]:translate-x-[20px]"
|
|
52
|
-
}
|
|
53
|
-
},
|
|
54
|
-
defaultVariants: {
|
|
55
|
-
size: "medium"
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
);
|
|
59
|
-
var containerVariants = utils.cva("inline-flex items-center", {
|
|
60
|
-
variants: {
|
|
61
|
-
size: {
|
|
62
|
-
small: "gap-1",
|
|
63
|
-
medium: "gap-1.5",
|
|
64
|
-
large: "gap-2"
|
|
65
|
-
},
|
|
66
|
-
labelPosition: {
|
|
67
|
-
right: "flex-row",
|
|
68
|
-
left: "flex-row-reverse"
|
|
69
|
-
}
|
|
70
|
-
},
|
|
71
|
-
defaultVariants: {
|
|
72
|
-
size: "medium",
|
|
73
|
-
labelPosition: "right"
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
var switchLabelVariants = utils.cva(
|
|
77
|
-
"cursor-pointer select-none font-regular text-text-primary peer-disabled:cursor-not-allowed peer-disabled:text-text-disabled",
|
|
78
|
-
{
|
|
79
|
-
variants: {
|
|
80
|
-
size: {
|
|
81
|
-
small: "text-body-3",
|
|
82
|
-
medium: "text-body-2",
|
|
83
|
-
large: "text-body-1"
|
|
84
|
-
}
|
|
85
|
-
},
|
|
86
|
-
defaultVariants: {
|
|
87
|
-
size: "medium"
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
);
|
|
91
|
-
var Switch = react.forwardRef(
|
|
92
|
-
({ className, size = "medium", label, labelPosition = "right", id, ...props }, ref) => {
|
|
93
|
-
const switchId = react.useId();
|
|
94
|
-
const finalId = id || switchId;
|
|
95
|
-
const switchElement = /* @__PURE__ */ jsxRuntime.jsx(
|
|
96
|
-
SwitchPrimitives__namespace.Root,
|
|
97
|
-
{
|
|
98
|
-
id: finalId,
|
|
99
|
-
className: utils.cn(switchVariants({ size }), className),
|
|
100
|
-
...props,
|
|
101
|
-
ref,
|
|
102
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(SwitchPrimitives__namespace.Thumb, { className: utils.cn(switchThumbVariants({ size })) })
|
|
103
|
-
}
|
|
104
|
-
);
|
|
105
|
-
if (!label) {
|
|
106
|
-
return switchElement;
|
|
107
|
-
}
|
|
108
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: utils.cn(containerVariants({ size, labelPosition })), children: [
|
|
109
|
-
switchElement,
|
|
110
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { htmlFor: finalId, className: utils.cn(switchLabelVariants({ size })), children: label })
|
|
111
|
-
] });
|
|
112
|
-
}
|
|
113
|
-
);
|
|
114
|
-
Switch.displayName = SwitchPrimitives__namespace.Root.displayName;
|
|
115
|
-
|
|
116
|
-
exports.Switch = Switch;
|
|
117
|
-
//# sourceMappingURL=chunk-M6OWN7QH.js.map
|
|
118
|
-
//# sourceMappingURL=chunk-M6OWN7QH.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/switch/Switch.tsx"],"names":["cva","forwardRef","useId","jsx","SwitchPrimitives","cn","jsxs"],"mappings":"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","file":"chunk-M6OWN7QH.js","sourcesContent":["import { cn, cva, type VariantProps } from '@exem-ui/core/utils';\nimport * as SwitchPrimitives from '@radix-ui/react-switch';\nimport type React from 'react';\nimport { forwardRef, useId } from 'react';\n\nconst switchVariants = cva(\n 'peer relative inline-flex shrink-0 cursor-pointer items-center rounded-full disabled:cursor-not-allowed data-[state=checked]:bg-solid-accent-default data-[state=unchecked]:bg-elevation-elevation-4 hover:data-[state=checked]:bg-solid-accent-hovered hover:data-[state=unchecked]:bg-elevation-elevation-5 disabled:data-[state=checked]:bg-solid-accent-disabled disabled:data-[state=unchecked]:bg-elevation-elevation-3 disabled:hover:data-[state=checked]:bg-solid-accent-disabled disabled:hover:data-[state=unchecked]:bg-elevation-elevation-3',\n {\n variants: {\n size: {\n small: 'h-[16px] w-[28px]',\n medium: 'h-[20px] w-[36px]',\n large: 'h-[24px] w-[44px]',\n },\n },\n defaultVariants: {\n size: 'medium',\n },\n },\n);\n\nconst switchThumbVariants = cva(\n 'pointer-events-none absolute bg-icon-static-light left-[2px] top-[2px] rounded-full ring-0 data-[state=unchecked]:translate-x-0 data-[disabled]:bg-icon-inverse-disabled',\n {\n variants: {\n size: {\n small: 'size-[12px] data-[state=checked]:translate-x-[12px]',\n medium: 'size-[16px] data-[state=checked]:translate-x-[16px]',\n large: 'size-[20px] data-[state=checked]:translate-x-[20px]',\n },\n },\n defaultVariants: {\n size: 'medium',\n },\n },\n);\n\nconst containerVariants = cva('inline-flex items-center', {\n variants: {\n size: {\n small: 'gap-1',\n medium: 'gap-1.5',\n large: 'gap-2',\n },\n labelPosition: {\n right: 'flex-row',\n left: 'flex-row-reverse',\n },\n },\n defaultVariants: {\n size: 'medium',\n labelPosition: 'right',\n },\n});\n\nconst switchLabelVariants = cva(\n 'cursor-pointer select-none font-regular text-text-primary peer-disabled:cursor-not-allowed peer-disabled:text-text-disabled',\n {\n variants: {\n size: {\n small: 'text-body-3',\n medium: 'text-body-2',\n large: 'text-body-1',\n },\n },\n defaultVariants: {\n size: 'medium',\n },\n },\n);\n\ninterface SwitchProps\n extends React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>,\n VariantProps<typeof switchVariants> {\n /** 스위치 옆에 표시할 레이블 텍스트 */\n label?: string;\n /**\n * 레이블 위치\n * @default 'right'\n */\n labelPosition?: 'left' | 'right';\n}\n\ntype SwitchComponent = React.ForwardRefExoticComponent<\n SwitchProps & React.RefAttributes<HTMLButtonElement>\n>;\n\n/**\n * 켜기/끄기 상태를 전환하는 스위치 컴포넌트입니다.\n *\n * @example\n * ```tsx\n * <Switch label=\"알림 받기\" size=\"medium\" />\n * <Switch label=\"다크 모드\" labelPosition=\"left\" defaultChecked />\n * ```\n *\n * @see {@link SwitchProps} props 상세\n */\nconst Switch = forwardRef<React.ElementRef<typeof SwitchPrimitives.Root>, SwitchProps>(\n ({ className, size = 'medium', label, labelPosition = 'right', id, ...props }, ref) => {\n // 고유한 ID 생성 (접근성을 위해)\n const switchId = useId();\n const finalId = id || switchId;\n\n const switchElement = (\n <SwitchPrimitives.Root\n id={finalId}\n className={cn(switchVariants({ size }), className)}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb className={cn(switchThumbVariants({ size }))} />\n </SwitchPrimitives.Root>\n );\n\n if (!label) {\n return switchElement;\n }\n\n return (\n <div className={cn(containerVariants({ size, labelPosition }))}>\n {switchElement}\n <label htmlFor={finalId} className={cn(switchLabelVariants({ size }))}>\n {label}\n </label>\n </div>\n );\n },\n) as SwitchComponent;\n\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\nexport { Switch };\nexport type { SwitchComponent, SwitchProps };\n"]}
|