@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-QH23RO3C.mjs
DELETED
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
import { ChevronLeft, ChevronRight } from './chunk-LZWKMQJL.mjs';
|
|
2
|
-
import { cn } from '@exem-ui/core/utils';
|
|
3
|
-
import { useState } from 'react';
|
|
4
|
-
import { getDefaultClassNames, DayPicker } from 'react-day-picker';
|
|
5
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
6
|
-
|
|
7
|
-
function DatePickerChevron({ orientation }) {
|
|
8
|
-
if (orientation === "left") {
|
|
9
|
-
return /* @__PURE__ */ jsx(ChevronLeft, { type: "regular", className: "size-5" });
|
|
10
|
-
}
|
|
11
|
-
return /* @__PURE__ */ jsx(ChevronRight, { type: "regular", className: "size-5" });
|
|
12
|
-
}
|
|
13
|
-
function DatePickerDayButton({
|
|
14
|
-
day,
|
|
15
|
-
modifiers,
|
|
16
|
-
children,
|
|
17
|
-
className,
|
|
18
|
-
...buttonProps
|
|
19
|
-
}) {
|
|
20
|
-
return /* @__PURE__ */ jsxs("button", { className: cn(className, "relative"), ...buttonProps, children: [
|
|
21
|
-
children,
|
|
22
|
-
modifiers.today && /* @__PURE__ */ jsx(
|
|
23
|
-
"span",
|
|
24
|
-
{
|
|
25
|
-
className: cn(
|
|
26
|
-
"absolute bottom-[3px] left-1/2 size-1 -translate-x-1/2 rounded-full",
|
|
27
|
-
modifiers.selected ? "bg-text-inverse" : "bg-icon-critical"
|
|
28
|
-
)
|
|
29
|
-
}
|
|
30
|
-
)
|
|
31
|
-
] });
|
|
32
|
-
}
|
|
33
|
-
function DatePicker({ type = "single", showOutsideDays = true, ...rest }) {
|
|
34
|
-
const dayPickerProps = { ...rest, mode: type };
|
|
35
|
-
const defaultClassNames = getDefaultClassNames();
|
|
36
|
-
const [month, setMonth] = useState(
|
|
37
|
-
dayPickerProps.month ?? dayPickerProps.defaultMonth ?? /* @__PURE__ */ new Date()
|
|
38
|
-
);
|
|
39
|
-
const rangeSelected = type === "range" ? rest.selected : void 0;
|
|
40
|
-
const isRangeComplete = rangeSelected?.from != null && rangeSelected?.to != null;
|
|
41
|
-
const handleMonthChange = (newMonth) => {
|
|
42
|
-
setMonth(newMonth);
|
|
43
|
-
dayPickerProps.onMonthChange?.(newMonth);
|
|
44
|
-
};
|
|
45
|
-
const handleDayClick = (day, modifiers, e) => {
|
|
46
|
-
if (modifiers.outside) {
|
|
47
|
-
setMonth(new Date(day.getFullYear(), day.getMonth()));
|
|
48
|
-
}
|
|
49
|
-
dayPickerProps.onDayClick?.(day, modifiers, e);
|
|
50
|
-
};
|
|
51
|
-
return /* @__PURE__ */ jsx(
|
|
52
|
-
DayPicker,
|
|
53
|
-
{
|
|
54
|
-
...dayPickerProps,
|
|
55
|
-
month,
|
|
56
|
-
onMonthChange: handleMonthChange,
|
|
57
|
-
onDayClick: handleDayClick,
|
|
58
|
-
showOutsideDays,
|
|
59
|
-
formatters: {
|
|
60
|
-
formatCaption: (date) => {
|
|
61
|
-
const year = date.getFullYear();
|
|
62
|
-
const month2 = String(date.getMonth() + 1).padStart(2, "0");
|
|
63
|
-
return `${year}\uB144 ${month2}\uC6D4`;
|
|
64
|
-
},
|
|
65
|
-
formatWeekdayName: (date) => date.toLocaleDateString("en-US", { weekday: "short" }),
|
|
66
|
-
...dayPickerProps.formatters
|
|
67
|
-
},
|
|
68
|
-
components: {
|
|
69
|
-
Chevron: DatePickerChevron,
|
|
70
|
-
DayButton: DatePickerDayButton,
|
|
71
|
-
...dayPickerProps.components
|
|
72
|
-
},
|
|
73
|
-
classNames: {
|
|
74
|
-
root: cn(
|
|
75
|
-
defaultClassNames.root,
|
|
76
|
-
"rounded-medium border border-border-primary bg-background-overlay p-4 shadow-medium"
|
|
77
|
-
),
|
|
78
|
-
months: cn(defaultClassNames.months, "relative"),
|
|
79
|
-
month: cn(defaultClassNames.month, "flex flex-col gap-2"),
|
|
80
|
-
month_caption: cn(defaultClassNames.month_caption, "flex h-7 items-center px-0.5"),
|
|
81
|
-
caption_label: "text-body-2 font-semibold text-text-primary",
|
|
82
|
-
nav: cn(defaultClassNames.nav, "absolute right-0 top-0 flex h-7 items-center gap-2"),
|
|
83
|
-
button_previous: cn(
|
|
84
|
-
defaultClassNames.button_previous,
|
|
85
|
-
"flex size-7 items-center justify-center rounded-medium hover:bg-elevation-elevation-2"
|
|
86
|
-
),
|
|
87
|
-
button_next: cn(
|
|
88
|
-
defaultClassNames.button_next,
|
|
89
|
-
"flex size-7 items-center justify-center rounded-medium hover:bg-elevation-elevation-2"
|
|
90
|
-
),
|
|
91
|
-
weekday: cn(
|
|
92
|
-
defaultClassNames.weekday,
|
|
93
|
-
"size-8 text-body-3 font-regular text-text-tertiary"
|
|
94
|
-
),
|
|
95
|
-
month_grid: cn(
|
|
96
|
-
defaultClassNames.month_grid,
|
|
97
|
-
"border-separate border-spacing-x-0 border-spacing-y-1"
|
|
98
|
-
),
|
|
99
|
-
week: cn(defaultClassNames.week, "overflow-hidden rounded-medium"),
|
|
100
|
-
day: cn(defaultClassNames.day, "size-8 text-body-2 font-medium text-text-secondary"),
|
|
101
|
-
day_button: cn(
|
|
102
|
-
defaultClassNames.day_button,
|
|
103
|
-
"size-8 cursor-pointer rounded-full hover:border hover:border-border-focused"
|
|
104
|
-
),
|
|
105
|
-
outside: "!text-text-disabled",
|
|
106
|
-
selected: cn(
|
|
107
|
-
"[&>button]:bg-solid-primary-default",
|
|
108
|
-
"[&>button]:text-text-inverse",
|
|
109
|
-
"[&>button]:border-0",
|
|
110
|
-
"[&>button]:hover:border-0"
|
|
111
|
-
),
|
|
112
|
-
range_start: cn(
|
|
113
|
-
"rounded-none",
|
|
114
|
-
isRangeComplete && "[background:linear-gradient(to_right,transparent_50%,var(--color-elevation-elevation-2)_50%)]"
|
|
115
|
-
),
|
|
116
|
-
range_end: cn(
|
|
117
|
-
"rounded-none",
|
|
118
|
-
isRangeComplete && "[background:linear-gradient(to_left,transparent_50%,var(--color-elevation-elevation-2)_50%)]"
|
|
119
|
-
),
|
|
120
|
-
range_middle: cn(
|
|
121
|
-
"bg-elevation-elevation-2 rounded-none",
|
|
122
|
-
"[&>button]:!bg-transparent",
|
|
123
|
-
"[&>button]:!text-text-secondary"
|
|
124
|
-
),
|
|
125
|
-
...dayPickerProps.classNames
|
|
126
|
-
},
|
|
127
|
-
modifiersClassNames: {
|
|
128
|
-
today: "rdp-calendar-today",
|
|
129
|
-
...dayPickerProps.modifiersClassNames
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
);
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
export { DatePicker };
|
|
136
|
-
//# sourceMappingURL=chunk-QH23RO3C.mjs.map
|
|
137
|
-
//# sourceMappingURL=chunk-QH23RO3C.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/picker/DatePicker.tsx"],"names":["month"],"mappings":"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","file":"chunk-QH23RO3C.mjs","sourcesContent":["import { cn } from '@exem-ui/core/utils';\nimport { type ComponentProps, useState } from 'react';\nimport { type DayButtonProps, DayPicker, getDefaultClassNames } from 'react-day-picker';\n\nimport { ChevronLeft, ChevronRight } from '../icon';\n\ntype DistributiveOmit<T, K extends string> = T extends unknown ? Omit<T, K> : never;\n\ntype DatePickerProps = DistributiveOmit<ComponentProps<typeof DayPicker>, 'mode'> & {\n /** 날짜 선택 유형 */\n type?: 'single' | 'range';\n};\n\nfunction DatePickerChevron({ orientation }: { orientation?: string }) {\n if (orientation === 'left') {\n return <ChevronLeft type=\"regular\" className=\"size-5\" />;\n }\n return <ChevronRight type=\"regular\" className=\"size-5\" />;\n}\n\nfunction DatePickerDayButton({\n day,\n modifiers,\n children,\n className,\n ...buttonProps\n}: DayButtonProps) {\n return (\n <button className={cn(className, 'relative')} {...buttonProps}>\n {children}\n {modifiers.today && (\n <span\n className={cn(\n 'absolute bottom-[3px] left-1/2 size-1 -translate-x-1/2 rounded-full',\n modifiers.selected ? 'bg-text-inverse' : 'bg-icon-critical',\n )}\n />\n )}\n </button>\n );\n}\n\nfunction DatePicker({ type = 'single', showOutsideDays = true, ...rest }: DatePickerProps) {\n const dayPickerProps = { ...rest, mode: type } as ComponentProps<typeof DayPicker>;\n const defaultClassNames = getDefaultClassNames();\n const [month, setMonth] = useState(\n dayPickerProps.month ?? dayPickerProps.defaultMonth ?? new Date(),\n );\n\n const rangeSelected =\n type === 'range' ? (rest as { selected?: { from?: Date; to?: Date } }).selected : undefined;\n const isRangeComplete = rangeSelected?.from != null && rangeSelected?.to != null;\n\n const handleMonthChange = (newMonth: Date) => {\n setMonth(newMonth);\n dayPickerProps.onMonthChange?.(newMonth);\n };\n\n const handleDayClick: ComponentProps<typeof DayPicker>['onDayClick'] = (day, modifiers, e) => {\n if (modifiers.outside) {\n setMonth(new Date(day.getFullYear(), day.getMonth()));\n }\n dayPickerProps.onDayClick?.(day, modifiers, e);\n };\n\n return (\n <DayPicker\n {...dayPickerProps}\n month={month}\n onMonthChange={handleMonthChange}\n onDayClick={handleDayClick}\n showOutsideDays={showOutsideDays}\n formatters={{\n formatCaption: (date) => {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, '0');\n return `${year}년 ${month}월`;\n },\n formatWeekdayName: (date) => date.toLocaleDateString('en-US', { weekday: 'short' }),\n ...dayPickerProps.formatters,\n }}\n components={{\n Chevron: DatePickerChevron,\n DayButton: DatePickerDayButton,\n ...dayPickerProps.components,\n }}\n classNames={{\n root: cn(\n defaultClassNames.root,\n 'rounded-medium border border-border-primary bg-background-overlay p-4 shadow-medium',\n ),\n months: cn(defaultClassNames.months, 'relative'),\n month: cn(defaultClassNames.month, 'flex flex-col gap-2'),\n month_caption: cn(defaultClassNames.month_caption, 'flex h-7 items-center px-0.5'),\n caption_label: 'text-body-2 font-semibold text-text-primary',\n nav: cn(defaultClassNames.nav, 'absolute right-0 top-0 flex h-7 items-center gap-2'),\n button_previous: cn(\n defaultClassNames.button_previous,\n 'flex size-7 items-center justify-center rounded-medium hover:bg-elevation-elevation-2',\n ),\n button_next: cn(\n defaultClassNames.button_next,\n 'flex size-7 items-center justify-center rounded-medium hover:bg-elevation-elevation-2',\n ),\n weekday: cn(\n defaultClassNames.weekday,\n 'size-8 text-body-3 font-regular text-text-tertiary',\n ),\n month_grid: cn(\n defaultClassNames.month_grid,\n 'border-separate border-spacing-x-0 border-spacing-y-1',\n ),\n week: cn(defaultClassNames.week, 'overflow-hidden rounded-medium'),\n day: cn(defaultClassNames.day, 'size-8 text-body-2 font-medium text-text-secondary'),\n day_button: cn(\n defaultClassNames.day_button,\n 'size-8 cursor-pointer rounded-full hover:border hover:border-border-focused',\n ),\n outside: '!text-text-disabled',\n selected: cn(\n '[&>button]:bg-solid-primary-default',\n '[&>button]:text-text-inverse',\n '[&>button]:border-0',\n '[&>button]:hover:border-0',\n ),\n range_start: cn(\n 'rounded-none',\n isRangeComplete &&\n '[background:linear-gradient(to_right,transparent_50%,var(--color-elevation-elevation-2)_50%)]',\n ),\n range_end: cn(\n 'rounded-none',\n isRangeComplete &&\n '[background:linear-gradient(to_left,transparent_50%,var(--color-elevation-elevation-2)_50%)]',\n ),\n range_middle: cn(\n 'bg-elevation-elevation-2 rounded-none',\n '[&>button]:!bg-transparent',\n '[&>button]:!text-text-secondary',\n ),\n ...dayPickerProps.classNames,\n }}\n modifiersClassNames={{\n today: 'rdp-calendar-today',\n ...dayPickerProps.modifiersClassNames,\n }}\n />\n );\n}\n\nexport { DatePicker };\nexport type { DatePickerProps };\n"]}
|
package/dist/chunk-REBHUF4L.js
DELETED
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var utils = require('@exem-ui/core/utils');
|
|
4
|
-
var react = require('react');
|
|
5
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
|
|
7
|
-
// src/button/Button.tsx
|
|
8
|
-
var colorStyles = {
|
|
9
|
-
accent: {
|
|
10
|
-
contained: {
|
|
11
|
-
button: "bg-solid-accent-default hover:bg-solid-accent-hovered disabled:bg-solid-accent-disabled",
|
|
12
|
-
icon: "text-icon-static-light group-disabled/button:text-icon-inverse-disabled",
|
|
13
|
-
text: "text-text-static-light group-disabled/button:text-text-inverse-disabled"
|
|
14
|
-
},
|
|
15
|
-
outlined: {
|
|
16
|
-
button: "border border-border-accent hover:bg-elevation-accent disabled:border-border-accent-disabled",
|
|
17
|
-
icon: "text-text-accent group-disabled/button:text-text-accent-disabled",
|
|
18
|
-
text: "text-text-accent group-disabled/button:text-text-accent-disabled"
|
|
19
|
-
},
|
|
20
|
-
invisible: {
|
|
21
|
-
button: "hover:bg-elevation-accent",
|
|
22
|
-
icon: "text-text-accent group-disabled/button:text-text-accent-disabled",
|
|
23
|
-
text: "text-text-accent group-disabled/button:text-text-accent-disabled"
|
|
24
|
-
}
|
|
25
|
-
},
|
|
26
|
-
assistive: {
|
|
27
|
-
contained: {
|
|
28
|
-
button: "bg-elevation-elevation-2 hover:bg-elevation-elevation-3 disabled:bg-elevation-elevation-2",
|
|
29
|
-
icon: "text-icon-secondary group-disabled/button:text-icon-disabled",
|
|
30
|
-
text: "text-text-secondary group-disabled/button:text-text-disabled"
|
|
31
|
-
}
|
|
32
|
-
},
|
|
33
|
-
critical: {
|
|
34
|
-
contained: {
|
|
35
|
-
button: "bg-solid-critical-default hover:bg-solid-critical-hovered disabled:bg-solid-critical-disabled",
|
|
36
|
-
icon: "text-icon-static-light group-disabled/button:text-icon-inverse-disabled",
|
|
37
|
-
text: "text-text-static-light group-disabled/button:text-text-inverse-disabled"
|
|
38
|
-
},
|
|
39
|
-
outlined: {
|
|
40
|
-
button: "border border-border-critical hover:bg-elevation-critical disabled:border-border-critical-disabled",
|
|
41
|
-
icon: "text-text-critical group-disabled/button:text-text-critical-disabled",
|
|
42
|
-
text: "text-text-critical group-disabled/button:text-text-critical-disabled"
|
|
43
|
-
},
|
|
44
|
-
invisible: {
|
|
45
|
-
button: "hover:bg-elevation-critical",
|
|
46
|
-
icon: "text-text-critical group-disabled/button:text-text-critical-disabled",
|
|
47
|
-
text: "text-text-critical group-disabled/button:text-text-critical-disabled"
|
|
48
|
-
}
|
|
49
|
-
},
|
|
50
|
-
inverse: {
|
|
51
|
-
contained: {
|
|
52
|
-
button: "bg-elevation-elevation-0 hover:bg-elevation-elevation-2 disabled:bg-elevation-elevation-2",
|
|
53
|
-
icon: "text-icon-secondary group-disabled/button:text-icon-disabled",
|
|
54
|
-
text: "text-text-secondary group-disabled/button:text-text-disabled"
|
|
55
|
-
}
|
|
56
|
-
},
|
|
57
|
-
primary: {
|
|
58
|
-
contained: {
|
|
59
|
-
button: "bg-solid-primary-default hover:bg-solid-primary-hovered disabled:bg-solid-primary-disabled",
|
|
60
|
-
icon: "text-icon-inverse group-disabled/button:text-icon-inverse",
|
|
61
|
-
text: "text-text-inverse group-disabled/button:text-text-inverse"
|
|
62
|
-
},
|
|
63
|
-
outlined: {
|
|
64
|
-
button: "border border-border-secondary hover:bg-elevation-elevation-2 disabled:border-border-secondary",
|
|
65
|
-
icon: "text-icon-secondary group-disabled/button:text-icon-disabled",
|
|
66
|
-
text: "text-text-secondary group-disabled/button:text-text-disabled"
|
|
67
|
-
},
|
|
68
|
-
invisible: {
|
|
69
|
-
button: "hover:bg-elevation-elevation-2",
|
|
70
|
-
icon: "text-icon-secondary group-disabled/button:text-icon-disabled",
|
|
71
|
-
text: "text-text-secondary group-disabled/button:text-text-disabled"
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
};
|
|
75
|
-
var buttonVariants = utils.cva(
|
|
76
|
-
"inline-flex w-fit shrink-0 cursor-pointer flex-row items-center justify-center rounded-medium transition-colors focus-visible:outline-none disabled:pointer-events-none disabled:cursor-not-allowed",
|
|
77
|
-
{
|
|
78
|
-
compoundVariants: [
|
|
79
|
-
// Primary 색상 조합
|
|
80
|
-
{
|
|
81
|
-
className: colorStyles.primary.contained.button,
|
|
82
|
-
color: "primary",
|
|
83
|
-
variant: "contained"
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
className: colorStyles.primary.outlined.button,
|
|
87
|
-
color: "primary",
|
|
88
|
-
variant: "outlined"
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
className: colorStyles.primary.invisible.button,
|
|
92
|
-
color: "primary",
|
|
93
|
-
variant: "invisible"
|
|
94
|
-
},
|
|
95
|
-
// Accent 색상 조합
|
|
96
|
-
{
|
|
97
|
-
className: colorStyles.accent.contained.button,
|
|
98
|
-
color: "accent",
|
|
99
|
-
variant: "contained"
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
className: colorStyles.accent.outlined.button,
|
|
103
|
-
color: "accent",
|
|
104
|
-
variant: "outlined"
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
className: colorStyles.accent.invisible.button,
|
|
108
|
-
color: "accent",
|
|
109
|
-
variant: "invisible"
|
|
110
|
-
},
|
|
111
|
-
// Critical 색상 조합
|
|
112
|
-
{
|
|
113
|
-
className: colorStyles.critical.contained.button,
|
|
114
|
-
color: "critical",
|
|
115
|
-
variant: "contained"
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
className: colorStyles.critical.outlined.button,
|
|
119
|
-
color: "critical",
|
|
120
|
-
variant: "outlined"
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
className: colorStyles.critical.invisible.button,
|
|
124
|
-
color: "critical",
|
|
125
|
-
variant: "invisible"
|
|
126
|
-
},
|
|
127
|
-
// Assistive 색상 조합 (contained만 지원)
|
|
128
|
-
{
|
|
129
|
-
className: colorStyles.assistive.contained.button,
|
|
130
|
-
color: "assistive",
|
|
131
|
-
variant: "contained"
|
|
132
|
-
},
|
|
133
|
-
// Inverse 색상 조합 (contained만 지원)
|
|
134
|
-
{
|
|
135
|
-
className: colorStyles.inverse.contained.button,
|
|
136
|
-
color: "inverse",
|
|
137
|
-
variant: "contained"
|
|
138
|
-
}
|
|
139
|
-
],
|
|
140
|
-
defaultVariants: {
|
|
141
|
-
color: "primary",
|
|
142
|
-
size: "medium",
|
|
143
|
-
variant: "contained"
|
|
144
|
-
},
|
|
145
|
-
variants: {
|
|
146
|
-
color: {
|
|
147
|
-
accent: "",
|
|
148
|
-
assistive: "",
|
|
149
|
-
critical: "",
|
|
150
|
-
inverse: "",
|
|
151
|
-
primary: ""
|
|
152
|
-
},
|
|
153
|
-
size: {
|
|
154
|
-
xsmall: "h-6 gap-0 px-1 text-body-3 font-medium",
|
|
155
|
-
small: "h-7 gap-0.5 px-1.5 text-body-2 font-medium",
|
|
156
|
-
medium: "h-8 gap-0.5 px-2 text-body-2 font-medium",
|
|
157
|
-
large: "h-10 gap-1 px-2.5 text-body-1 font-medium",
|
|
158
|
-
xlarge: "h-12 gap-1 px-3 text-title-2 font-medium"
|
|
159
|
-
},
|
|
160
|
-
variant: {
|
|
161
|
-
contained: "",
|
|
162
|
-
outlined: "bg-transparent",
|
|
163
|
-
invisible: "bg-transparent"
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
);
|
|
168
|
-
var IconSize = {
|
|
169
|
-
xsmall: "h-4 w-4",
|
|
170
|
-
small: "h-4 w-4",
|
|
171
|
-
medium: "h-4 w-4",
|
|
172
|
-
large: "h-5 w-5",
|
|
173
|
-
xlarge: "h-6 w-6"
|
|
174
|
-
};
|
|
175
|
-
var Button = react.forwardRef(
|
|
176
|
-
({
|
|
177
|
-
className,
|
|
178
|
-
variant = "contained",
|
|
179
|
-
color = "primary",
|
|
180
|
-
size = "medium",
|
|
181
|
-
icon,
|
|
182
|
-
children,
|
|
183
|
-
...props
|
|
184
|
-
}, ref) => {
|
|
185
|
-
const validColorStyle = color === "assistive" || color === "inverse" ? colorStyles[color].contained : colorStyles[color][variant];
|
|
186
|
-
const content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
187
|
-
icon && react.cloneElement(icon, {
|
|
188
|
-
className: utils.cn(
|
|
189
|
-
"shrink-0 [&>path]:fill-current",
|
|
190
|
-
validColorStyle.icon,
|
|
191
|
-
icon.props.className,
|
|
192
|
-
IconSize[size ?? "medium"]
|
|
193
|
-
)
|
|
194
|
-
}),
|
|
195
|
-
typeof children === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
196
|
-
"span",
|
|
197
|
-
{
|
|
198
|
-
className: utils.cn("truncate", size === "xlarge" ? "px-1" : "px-0.5", validColorStyle.text),
|
|
199
|
-
children
|
|
200
|
-
}
|
|
201
|
-
) : children
|
|
202
|
-
] });
|
|
203
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
204
|
-
"button",
|
|
205
|
-
{
|
|
206
|
-
className: utils.cn(
|
|
207
|
-
buttonVariants({
|
|
208
|
-
className,
|
|
209
|
-
color,
|
|
210
|
-
size,
|
|
211
|
-
variant
|
|
212
|
-
}),
|
|
213
|
-
"group/button"
|
|
214
|
-
),
|
|
215
|
-
ref,
|
|
216
|
-
...props,
|
|
217
|
-
children: content
|
|
218
|
-
}
|
|
219
|
-
);
|
|
220
|
-
}
|
|
221
|
-
);
|
|
222
|
-
Button.displayName = "Button";
|
|
223
|
-
|
|
224
|
-
exports.Button = Button;
|
|
225
|
-
//# sourceMappingURL=chunk-REBHUF4L.js.map
|
|
226
|
-
//# sourceMappingURL=chunk-REBHUF4L.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/button/Button.tsx"],"names":["cva","forwardRef","jsxs","Fragment","cloneElement","cn","jsx"],"mappings":"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","file":"chunk-REBHUF4L.js","sourcesContent":["import { cn, cva, type VariantProps } from '@exem-ui/core/utils';\nimport type React from 'react';\nimport { cloneElement, forwardRef } from 'react';\n\ntype ButtonColorVariantCombination =\n | { color?: 'primary'; variant?: 'contained' | 'outlined' | 'invisible' }\n | { color?: 'accent'; variant?: 'contained' | 'outlined' | 'invisible' }\n | { color?: 'critical'; variant?: 'contained' | 'outlined' | 'invisible' }\n | { color?: 'assistive'; variant?: 'contained' }\n | { color?: 'inverse'; variant?: 'contained' };\n\ntype ButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> &\n Omit<VariantProps<typeof buttonVariants>, 'variant' | 'color'> &\n ButtonColorVariantCombination & {\n size?: 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';\n icon?: React.ReactElement<{ className?: string }>;\n };\n\ntype ButtonComponent = React.ForwardRefExoticComponent<\n ButtonProps & React.RefAttributes<HTMLButtonElement>\n>;\n\nconst colorStyles = {\n accent: {\n contained: {\n button:\n 'bg-solid-accent-default hover:bg-solid-accent-hovered disabled:bg-solid-accent-disabled',\n icon: 'text-icon-static-light group-disabled/button:text-icon-inverse-disabled',\n text: 'text-text-static-light group-disabled/button:text-text-inverse-disabled',\n },\n outlined: {\n button:\n 'border border-border-accent hover:bg-elevation-accent disabled:border-border-accent-disabled',\n icon: 'text-text-accent group-disabled/button:text-text-accent-disabled',\n text: 'text-text-accent group-disabled/button:text-text-accent-disabled',\n },\n invisible: {\n button: 'hover:bg-elevation-accent',\n icon: 'text-text-accent group-disabled/button:text-text-accent-disabled',\n text: 'text-text-accent group-disabled/button:text-text-accent-disabled',\n },\n },\n assistive: {\n contained: {\n button:\n 'bg-elevation-elevation-2 hover:bg-elevation-elevation-3 disabled:bg-elevation-elevation-2',\n icon: 'text-icon-secondary group-disabled/button:text-icon-disabled',\n text: 'text-text-secondary group-disabled/button:text-text-disabled',\n },\n },\n critical: {\n contained: {\n button:\n 'bg-solid-critical-default hover:bg-solid-critical-hovered disabled:bg-solid-critical-disabled',\n icon: 'text-icon-static-light group-disabled/button:text-icon-inverse-disabled',\n text: 'text-text-static-light group-disabled/button:text-text-inverse-disabled',\n },\n outlined: {\n button:\n 'border border-border-critical hover:bg-elevation-critical disabled:border-border-critical-disabled',\n icon: 'text-text-critical group-disabled/button:text-text-critical-disabled',\n text: 'text-text-critical group-disabled/button:text-text-critical-disabled',\n },\n invisible: {\n button: 'hover:bg-elevation-critical',\n icon: 'text-text-critical group-disabled/button:text-text-critical-disabled',\n text: 'text-text-critical group-disabled/button:text-text-critical-disabled',\n },\n },\n inverse: {\n contained: {\n button:\n 'bg-elevation-elevation-0 hover:bg-elevation-elevation-2 disabled:bg-elevation-elevation-2',\n icon: 'text-icon-secondary group-disabled/button:text-icon-disabled',\n text: 'text-text-secondary group-disabled/button:text-text-disabled',\n },\n },\n primary: {\n contained: {\n button:\n 'bg-solid-primary-default hover:bg-solid-primary-hovered disabled:bg-solid-primary-disabled',\n icon: 'text-icon-inverse group-disabled/button:text-icon-inverse',\n text: 'text-text-inverse group-disabled/button:text-text-inverse',\n },\n outlined: {\n button:\n 'border border-border-secondary hover:bg-elevation-elevation-2 disabled:border-border-secondary',\n icon: 'text-icon-secondary group-disabled/button:text-icon-disabled',\n text: 'text-text-secondary group-disabled/button:text-text-disabled',\n },\n invisible: {\n button: 'hover:bg-elevation-elevation-2',\n icon: 'text-icon-secondary group-disabled/button:text-icon-disabled',\n text: 'text-text-secondary group-disabled/button:text-text-disabled',\n },\n },\n};\n\nconst buttonVariants = cva(\n 'inline-flex w-fit shrink-0 cursor-pointer flex-row items-center justify-center rounded-medium transition-colors focus-visible:outline-none disabled:pointer-events-none disabled:cursor-not-allowed',\n {\n compoundVariants: [\n // Primary 색상 조합\n {\n className: colorStyles.primary.contained.button,\n color: 'primary',\n variant: 'contained',\n },\n {\n className: colorStyles.primary.outlined.button,\n color: 'primary',\n variant: 'outlined',\n },\n {\n className: colorStyles.primary.invisible.button,\n color: 'primary',\n variant: 'invisible',\n },\n // Accent 색상 조합\n {\n className: colorStyles.accent.contained.button,\n color: 'accent',\n variant: 'contained',\n },\n {\n className: colorStyles.accent.outlined.button,\n color: 'accent',\n variant: 'outlined',\n },\n {\n className: colorStyles.accent.invisible.button,\n color: 'accent',\n variant: 'invisible',\n },\n // Critical 색상 조합\n {\n className: colorStyles.critical.contained.button,\n color: 'critical',\n variant: 'contained',\n },\n {\n className: colorStyles.critical.outlined.button,\n color: 'critical',\n variant: 'outlined',\n },\n {\n className: colorStyles.critical.invisible.button,\n color: 'critical',\n variant: 'invisible',\n },\n // Assistive 색상 조합 (contained만 지원)\n {\n className: colorStyles.assistive.contained.button,\n color: 'assistive',\n variant: 'contained',\n },\n // Inverse 색상 조합 (contained만 지원)\n {\n className: colorStyles.inverse.contained.button,\n color: 'inverse',\n variant: 'contained',\n },\n ],\n defaultVariants: {\n color: 'primary',\n size: 'medium',\n variant: 'contained',\n },\n variants: {\n color: {\n accent: '',\n assistive: '',\n critical: '',\n inverse: '',\n primary: '',\n },\n size: {\n xsmall: 'h-6 gap-0 px-1 text-body-3 font-medium',\n small: 'h-7 gap-0.5 px-1.5 text-body-2 font-medium',\n medium: 'h-8 gap-0.5 px-2 text-body-2 font-medium',\n large: 'h-10 gap-1 px-2.5 text-body-1 font-medium',\n xlarge: 'h-12 gap-1 px-3 text-title-2 font-medium',\n },\n variant: {\n contained: '',\n outlined: 'bg-transparent',\n invisible: 'bg-transparent',\n },\n },\n },\n);\n\nconst IconSize = {\n xsmall: 'h-4 w-4',\n small: 'h-4 w-4',\n medium: 'h-4 w-4',\n large: 'h-5 w-5',\n xlarge: 'h-6 w-6',\n};\n\nconst Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n variant = 'contained',\n color = 'primary',\n size = 'medium',\n icon,\n children,\n ...props\n },\n ref,\n ) => {\n // 현재 조합의 색상 스타일 가져오기 -> assistive/inverse는 contained만 지원\n const validColorStyle =\n color === 'assistive' || color === 'inverse'\n ? colorStyles[color].contained\n : colorStyles[color][variant];\n\n const content = (\n <>\n {icon &&\n cloneElement(icon, {\n className: cn(\n 'shrink-0 [&>path]:fill-current',\n validColorStyle.icon,\n icon.props.className,\n IconSize[size ?? 'medium'],\n ),\n })}\n {typeof children === 'string' ? (\n <span\n className={cn('truncate', size === 'xlarge' ? 'px-1' : 'px-0.5', validColorStyle.text)}\n >\n {children}\n </span>\n ) : (\n children\n )}\n </>\n );\n\n return (\n <button\n className={cn(\n buttonVariants({\n className,\n color,\n size,\n variant,\n }),\n 'group/button',\n )}\n ref={ref}\n {...props}\n >\n {content}\n </button>\n );\n },\n) as ButtonComponent;\n\nButton.displayName = 'Button';\n\nexport { Button };\nexport type { ButtonComponent, ButtonProps };\n"]}
|