@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-ZWCMSHDP.mjs
DELETED
|
@@ -1,425 +0,0 @@
|
|
|
1
|
-
import { ChevronDown } from './chunk-LZWKMQJL.mjs';
|
|
2
|
-
import { cva, cn } from '@exem-ui/core/utils';
|
|
3
|
-
import * as SelectPrimitive from '@radix-ui/react-select';
|
|
4
|
-
import * as React from 'react';
|
|
5
|
-
import { createContext, forwardRef, useId, useContext } from 'react';
|
|
6
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
7
|
-
|
|
8
|
-
var commonInputVariants = {
|
|
9
|
-
// Container variants - 전체 컴포넌트 래퍼
|
|
10
|
-
container: cva("flex flex-col"),
|
|
11
|
-
// Label variants - 라벨 텍스트
|
|
12
|
-
label: cva("inline-block font-regular text-text-primary", {
|
|
13
|
-
variants: {
|
|
14
|
-
size: {
|
|
15
|
-
xsmall: "mb-[2px] text-body-3",
|
|
16
|
-
small: "mb-[4px] text-body-2",
|
|
17
|
-
medium: "mb-[4px] text-body-2",
|
|
18
|
-
large: "mb-[6px] text-body-1"
|
|
19
|
-
},
|
|
20
|
-
disabled: {
|
|
21
|
-
true: "text-text-disabled"
|
|
22
|
-
},
|
|
23
|
-
required: {
|
|
24
|
-
true: 'after:ml-0.5 after:text-text-critical after:content-["*"]'
|
|
25
|
-
}
|
|
26
|
-
},
|
|
27
|
-
compoundVariants: [
|
|
28
|
-
{
|
|
29
|
-
required: true,
|
|
30
|
-
disabled: true,
|
|
31
|
-
className: "after:text-text-disabled"
|
|
32
|
-
}
|
|
33
|
-
],
|
|
34
|
-
defaultVariants: { size: "medium" }
|
|
35
|
-
}),
|
|
36
|
-
// Description variants - 설명 텍스트
|
|
37
|
-
description: cva("mt-0.5 inline-block text-text-tertiary", {
|
|
38
|
-
variants: {
|
|
39
|
-
size: {
|
|
40
|
-
xsmall: "text-caption",
|
|
41
|
-
small: "text-body-3",
|
|
42
|
-
medium: "text-body-3",
|
|
43
|
-
large: "text-body-2"
|
|
44
|
-
},
|
|
45
|
-
error: {
|
|
46
|
-
true: "text-text-critical"
|
|
47
|
-
},
|
|
48
|
-
disabled: {
|
|
49
|
-
true: "text-text-disabled"
|
|
50
|
-
}
|
|
51
|
-
},
|
|
52
|
-
compoundVariants: [
|
|
53
|
-
{
|
|
54
|
-
error: true,
|
|
55
|
-
disabled: true,
|
|
56
|
-
className: "text-text-disabled"
|
|
57
|
-
// disabled 우선 적용
|
|
58
|
-
}
|
|
59
|
-
],
|
|
60
|
-
defaultVariants: { size: "medium" }
|
|
61
|
-
}),
|
|
62
|
-
// Icon variants - 아이콘 크기
|
|
63
|
-
icon: cva("shrink-0", {
|
|
64
|
-
variants: {
|
|
65
|
-
size: {
|
|
66
|
-
xsmall: "size-4",
|
|
67
|
-
small: "size-4",
|
|
68
|
-
medium: "size-4",
|
|
69
|
-
large: "size-5"
|
|
70
|
-
}
|
|
71
|
-
},
|
|
72
|
-
defaultVariants: { size: "medium" }
|
|
73
|
-
})
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
// src/input/selectVariants.ts
|
|
77
|
-
var selectVariants = {
|
|
78
|
-
container: commonInputVariants.container,
|
|
79
|
-
content: cn(
|
|
80
|
-
"relative border border-border-primary z-50 min-w-[8rem] overflow-hidden rounded-medium bg-background-overlay shadow-weak",
|
|
81
|
-
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
82
|
-
"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1"
|
|
83
|
-
),
|
|
84
|
-
description: commonInputVariants.description,
|
|
85
|
-
iconSize: commonInputVariants.icon,
|
|
86
|
-
item: cva(
|
|
87
|
-
"relative flex w-full cursor-pointer select-none items-center rounded-weak px-2 text-body-2 text-text-primary outline-none hover:bg-elevation-elevation-2 data-[disabled]:pointer-events-none data-[state=checked]:bg-elevation-accent data-[disabled]:text-text-disabled",
|
|
88
|
-
{
|
|
89
|
-
defaultVariants: { size: "medium" },
|
|
90
|
-
variants: {
|
|
91
|
-
size: {
|
|
92
|
-
xsmall: "h-6",
|
|
93
|
-
small: "h-7",
|
|
94
|
-
medium: "h-8",
|
|
95
|
-
large: "h-10"
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
),
|
|
100
|
-
itemText: cva("truncate flex items-center flex-1 min-w-0", {
|
|
101
|
-
defaultVariants: { size: "medium" },
|
|
102
|
-
variants: {
|
|
103
|
-
size: {
|
|
104
|
-
xsmall: "h-6",
|
|
105
|
-
small: "h-7",
|
|
106
|
-
medium: "h-8",
|
|
107
|
-
large: "h-10"
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}),
|
|
111
|
-
label: commonInputVariants.label,
|
|
112
|
-
trigger: cva(
|
|
113
|
-
"group flex w-full items-center justify-between rounded-medium outline-none disabled:cursor-not-allowed disabled:bg-elevation-elevation-2 disabled:text-text-disabled data-[state=open]:border data-[state=open]:border-border-focused [&>span]:line-clamp-1 [&[data-placeholder]]:text-text-tertiary [&_svg]:text-icon-primary",
|
|
114
|
-
{
|
|
115
|
-
compoundVariants: [
|
|
116
|
-
{
|
|
117
|
-
className: "border-border-accent text-tint-foreground-sky bg-elevation-accent [&[data-placeholder]]:text-tint-foreground-sky [&_svg]:text-tint-foreground-sky",
|
|
118
|
-
focus: true,
|
|
119
|
-
variant: "line"
|
|
120
|
-
},
|
|
121
|
-
// active + fill: 배경만 accent로 변경
|
|
122
|
-
{
|
|
123
|
-
className: "bg-elevation-accent text-tint-foreground-sky [&[data-placeholder]]:text-tint-foreground-sky [&_svg]:text-tint-foreground-sky",
|
|
124
|
-
active: true,
|
|
125
|
-
variant: "fill"
|
|
126
|
-
},
|
|
127
|
-
// active + line: 배경 accent + 테두리 accent
|
|
128
|
-
{
|
|
129
|
-
className: "bg-elevation-accent border-border-accent text-tint-foreground-sky [&[data-placeholder]]:text-tint-foreground-sky [&_svg]:text-tint-foreground-sky",
|
|
130
|
-
active: true,
|
|
131
|
-
variant: "line"
|
|
132
|
-
}
|
|
133
|
-
],
|
|
134
|
-
defaultVariants: {
|
|
135
|
-
active: false,
|
|
136
|
-
error: false,
|
|
137
|
-
focus: false,
|
|
138
|
-
size: "medium",
|
|
139
|
-
variant: "fill"
|
|
140
|
-
},
|
|
141
|
-
variants: {
|
|
142
|
-
active: {
|
|
143
|
-
false: "",
|
|
144
|
-
true: ""
|
|
145
|
-
},
|
|
146
|
-
error: {
|
|
147
|
-
false: "",
|
|
148
|
-
true: "border !border-border-critical"
|
|
149
|
-
},
|
|
150
|
-
focus: {
|
|
151
|
-
false: "",
|
|
152
|
-
// 현재는 line 타입만 focus 가능
|
|
153
|
-
true: ""
|
|
154
|
-
},
|
|
155
|
-
size: {
|
|
156
|
-
xsmall: "h-6 px-[4px] text-body-3",
|
|
157
|
-
small: "h-7 px-[6px] text-body-2",
|
|
158
|
-
medium: "h-8 px-[8px] text-body-2",
|
|
159
|
-
large: "h-10 px-[10px] text-body-1"
|
|
160
|
-
},
|
|
161
|
-
variant: {
|
|
162
|
-
fill: "bg-elevation-elevation-2",
|
|
163
|
-
line: "border-border-primary border"
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
),
|
|
168
|
-
triggerInner: cva("flex w-full items-center", {
|
|
169
|
-
defaultVariants: { size: "medium" },
|
|
170
|
-
variants: {
|
|
171
|
-
size: {
|
|
172
|
-
xsmall: "gap-0",
|
|
173
|
-
small: "gap-[2px]",
|
|
174
|
-
medium: "gap-[2px]",
|
|
175
|
-
large: "gap-[4px]"
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
}),
|
|
179
|
-
viewport: cn("flex flex-col gap-0.5 p-1")
|
|
180
|
-
};
|
|
181
|
-
var SelectContext = createContext(null);
|
|
182
|
-
var useSelectContext = () => {
|
|
183
|
-
const context = useContext(SelectContext);
|
|
184
|
-
if (!context) {
|
|
185
|
-
throw new Error("Select components must be used within a Select");
|
|
186
|
-
}
|
|
187
|
-
return context;
|
|
188
|
-
};
|
|
189
|
-
var SelectGroupContext = createContext(null);
|
|
190
|
-
var useSelectGroupContext = () => {
|
|
191
|
-
return useContext(SelectGroupContext);
|
|
192
|
-
};
|
|
193
|
-
var Select = forwardRef(
|
|
194
|
-
({
|
|
195
|
-
children,
|
|
196
|
-
size = "medium",
|
|
197
|
-
variant = "fill",
|
|
198
|
-
error = false,
|
|
199
|
-
disabled = false,
|
|
200
|
-
focus = false,
|
|
201
|
-
active = false,
|
|
202
|
-
className,
|
|
203
|
-
...selectProps
|
|
204
|
-
}, ref) => {
|
|
205
|
-
const uniqueId = useId();
|
|
206
|
-
const id = `select-${uniqueId}`;
|
|
207
|
-
return /* @__PURE__ */ jsx(SelectContext.Provider, { value: { active, disabled, error, focus, id, size, variant }, children: /* @__PURE__ */ jsx("div", { ref, className: cn(selectVariants.container(), className), children: /* @__PURE__ */ jsx(SelectPrimitive.Root, { disabled, ...selectProps, children }) }) });
|
|
208
|
-
}
|
|
209
|
-
);
|
|
210
|
-
Select.Value = forwardRef(({ className, children, ...props }, ref) => {
|
|
211
|
-
return /* @__PURE__ */ jsx(SelectPrimitive.Value, { ref, className, ...props, children });
|
|
212
|
-
});
|
|
213
|
-
Select.Trigger = forwardRef(
|
|
214
|
-
({ className, children, leftIcon, ...props }, ref) => {
|
|
215
|
-
const { size, error, id, variant, focus, active } = useSelectContext();
|
|
216
|
-
const groupContext = useSelectGroupContext();
|
|
217
|
-
const groupClasses = groupContext ? cn("rounded-none border-0", {
|
|
218
|
-
"rounded-l-medium": groupContext.isFirstChild,
|
|
219
|
-
"rounded-r-medium": groupContext.isLastChild,
|
|
220
|
-
// line variant: group이 외곽 border를 제공하므로, open 시 border 대신 inset ring 사용
|
|
221
|
-
"data-[state=open]:border-0 data-[state=open]:ring-1 data-[state=open]:ring-inset data-[state=open]:ring-border-focused": variant === "line"
|
|
222
|
-
}) : void 0;
|
|
223
|
-
return /* @__PURE__ */ jsx(
|
|
224
|
-
SelectPrimitive.Trigger,
|
|
225
|
-
{
|
|
226
|
-
ref,
|
|
227
|
-
id,
|
|
228
|
-
"data-slot": "select-trigger",
|
|
229
|
-
className: cn(
|
|
230
|
-
selectVariants.trigger({ active, error, focus, size, variant }),
|
|
231
|
-
groupClasses,
|
|
232
|
-
className
|
|
233
|
-
),
|
|
234
|
-
...props,
|
|
235
|
-
children: /* @__PURE__ */ jsxs("div", { className: cn(selectVariants.triggerInner({ size })), children: [
|
|
236
|
-
leftIcon && /* @__PURE__ */ jsx(
|
|
237
|
-
"span",
|
|
238
|
-
{
|
|
239
|
-
className: cn(
|
|
240
|
-
selectVariants.iconSize({ size }),
|
|
241
|
-
"flex items-center justify-center group-disabled:text-icon-disabled"
|
|
242
|
-
),
|
|
243
|
-
children: leftIcon
|
|
244
|
-
}
|
|
245
|
-
),
|
|
246
|
-
/* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1 truncate text-left", children }),
|
|
247
|
-
/* @__PURE__ */ jsx(
|
|
248
|
-
ChevronDown,
|
|
249
|
-
{
|
|
250
|
-
type: "regular",
|
|
251
|
-
className: cn(
|
|
252
|
-
selectVariants.iconSize({ size }),
|
|
253
|
-
"transition-transform duration-200 group-data-[state=open]:rotate-180",
|
|
254
|
-
"group-disabled:text-icon-disabled"
|
|
255
|
-
)
|
|
256
|
-
}
|
|
257
|
-
)
|
|
258
|
-
] })
|
|
259
|
-
}
|
|
260
|
-
);
|
|
261
|
-
}
|
|
262
|
-
);
|
|
263
|
-
Select.Box = forwardRef(
|
|
264
|
-
({ placeholder, leftIcon, className, ...props }, ref) => {
|
|
265
|
-
return /* @__PURE__ */ jsx(Select.Trigger, { ref, leftIcon, className, ...props, children: /* @__PURE__ */ jsx(Select.Value, { placeholder }) });
|
|
266
|
-
}
|
|
267
|
-
);
|
|
268
|
-
Select.List = forwardRef(
|
|
269
|
-
({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
270
|
-
SelectPrimitive.Content,
|
|
271
|
-
{
|
|
272
|
-
ref,
|
|
273
|
-
"data-slot": "select-content",
|
|
274
|
-
className: cn(selectVariants.content, "max-h-60 ", className),
|
|
275
|
-
position: "popper",
|
|
276
|
-
...props,
|
|
277
|
-
children: /* @__PURE__ */ jsx(
|
|
278
|
-
SelectPrimitive.Viewport,
|
|
279
|
-
{
|
|
280
|
-
"data-slot": "select-viewport",
|
|
281
|
-
className: cn(
|
|
282
|
-
selectVariants.viewport,
|
|
283
|
-
"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
|
|
284
|
-
),
|
|
285
|
-
children
|
|
286
|
-
}
|
|
287
|
-
)
|
|
288
|
-
}
|
|
289
|
-
) })
|
|
290
|
-
);
|
|
291
|
-
Select.Label = forwardRef(
|
|
292
|
-
({ children, required = false, size: sizeProp, className }, ref) => {
|
|
293
|
-
const { size: contextSize, disabled, id } = useSelectContext();
|
|
294
|
-
const groupContext = useSelectGroupContext();
|
|
295
|
-
const size = sizeProp ?? groupContext?.size ?? contextSize;
|
|
296
|
-
return /* @__PURE__ */ jsx(
|
|
297
|
-
"label",
|
|
298
|
-
{
|
|
299
|
-
ref,
|
|
300
|
-
htmlFor: id,
|
|
301
|
-
className: cn(selectVariants.label({ disabled, required, size }), className),
|
|
302
|
-
children
|
|
303
|
-
}
|
|
304
|
-
);
|
|
305
|
-
}
|
|
306
|
-
);
|
|
307
|
-
Select.Item = forwardRef(
|
|
308
|
-
({
|
|
309
|
-
className,
|
|
310
|
-
children,
|
|
311
|
-
leftIcon,
|
|
312
|
-
rightIcon,
|
|
313
|
-
leftIconSize,
|
|
314
|
-
rightIconSize,
|
|
315
|
-
size: sizeProp,
|
|
316
|
-
...props
|
|
317
|
-
}, ref) => {
|
|
318
|
-
const { size: contextSize } = useSelectContext();
|
|
319
|
-
const groupContext = useSelectGroupContext();
|
|
320
|
-
const size = sizeProp ?? groupContext?.size ?? contextSize;
|
|
321
|
-
return /* @__PURE__ */ jsx(
|
|
322
|
-
SelectPrimitive.Item,
|
|
323
|
-
{
|
|
324
|
-
"data-slot": "select-item",
|
|
325
|
-
ref,
|
|
326
|
-
className: cn(selectVariants.item({ size }), className),
|
|
327
|
-
...props,
|
|
328
|
-
children: /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center justify-between", children: [
|
|
329
|
-
/* @__PURE__ */ jsxs("div", { className: "flex w-full items-center gap-0.5", children: [
|
|
330
|
-
leftIcon && /* @__PURE__ */ jsx(
|
|
331
|
-
"span",
|
|
332
|
-
{
|
|
333
|
-
className: cn(
|
|
334
|
-
selectVariants.iconSize({ size: leftIconSize ?? size }),
|
|
335
|
-
"flex items-center justify-center text-icon-primary"
|
|
336
|
-
),
|
|
337
|
-
children: leftIcon
|
|
338
|
-
}
|
|
339
|
-
),
|
|
340
|
-
/* @__PURE__ */ jsx(SelectPrimitive.ItemText, { asChild: true, children: /* @__PURE__ */ jsx("div", { className: cn(selectVariants.itemText({ size })), children }) })
|
|
341
|
-
] }),
|
|
342
|
-
rightIcon && /* @__PURE__ */ jsx(
|
|
343
|
-
"span",
|
|
344
|
-
{
|
|
345
|
-
className: cn(
|
|
346
|
-
selectVariants.iconSize({ size: rightIconSize ?? size }),
|
|
347
|
-
"flex items-center justify-center text-icon-primary"
|
|
348
|
-
),
|
|
349
|
-
children: rightIcon
|
|
350
|
-
}
|
|
351
|
-
)
|
|
352
|
-
] })
|
|
353
|
-
}
|
|
354
|
-
);
|
|
355
|
-
}
|
|
356
|
-
);
|
|
357
|
-
Select.Empty = forwardRef(
|
|
358
|
-
({ children = "No data", className }, ref) => {
|
|
359
|
-
return /* @__PURE__ */ jsx("div", { ref, className: cn("flex min-h-8 items-center justify-center p-2", className), children: /* @__PURE__ */ jsx("p", { className: "text-body-2 text-text-disabled", children }) });
|
|
360
|
-
}
|
|
361
|
-
);
|
|
362
|
-
Select.Description = forwardRef(
|
|
363
|
-
({ children, size: sizeProp, className }, ref) => {
|
|
364
|
-
const { size: contextSize, error, disabled } = useSelectContext();
|
|
365
|
-
const groupContext = useSelectGroupContext();
|
|
366
|
-
const size = sizeProp ?? groupContext?.size ?? contextSize;
|
|
367
|
-
if (!children) {
|
|
368
|
-
return null;
|
|
369
|
-
}
|
|
370
|
-
return /* @__PURE__ */ jsx(
|
|
371
|
-
"div",
|
|
372
|
-
{
|
|
373
|
-
ref,
|
|
374
|
-
"data-slot": "select-description",
|
|
375
|
-
className: cn(selectVariants.description({ disabled, error, size }), className),
|
|
376
|
-
children: /* @__PURE__ */ jsx("p", { children })
|
|
377
|
-
}
|
|
378
|
-
);
|
|
379
|
-
}
|
|
380
|
-
);
|
|
381
|
-
Select.Group = forwardRef(
|
|
382
|
-
({ children, size = "medium", variant = "fill", hasBackground = false, className }, ref) => {
|
|
383
|
-
const childArray = React.Children.toArray(children);
|
|
384
|
-
return /* @__PURE__ */ jsx(
|
|
385
|
-
"div",
|
|
386
|
-
{
|
|
387
|
-
ref,
|
|
388
|
-
className: cn(
|
|
389
|
-
"flex w-fit flex-row items-stretch overflow-clip rounded-medium",
|
|
390
|
-
variant === "line" && "border border-border-primary",
|
|
391
|
-
hasBackground && "bg-elevation-elevation-0",
|
|
392
|
-
className
|
|
393
|
-
),
|
|
394
|
-
children: childArray.map((child, index) => {
|
|
395
|
-
const isFirst = index === 0;
|
|
396
|
-
const isLast = index === childArray.length - 1;
|
|
397
|
-
return /* @__PURE__ */ jsxs(React.Fragment, { children: [
|
|
398
|
-
/* @__PURE__ */ jsx(
|
|
399
|
-
SelectGroupContext.Provider,
|
|
400
|
-
{
|
|
401
|
-
value: { isFirstChild: isFirst, isLastChild: isLast, size, variant },
|
|
402
|
-
children: child
|
|
403
|
-
}
|
|
404
|
-
),
|
|
405
|
-
!isLast && /* @__PURE__ */ jsx("div", { className: "w-px self-stretch bg-border-primary" })
|
|
406
|
-
] }, index);
|
|
407
|
-
})
|
|
408
|
-
}
|
|
409
|
-
);
|
|
410
|
-
}
|
|
411
|
-
);
|
|
412
|
-
Select.displayName = "Select";
|
|
413
|
-
Select.Label.displayName = "Select.Label";
|
|
414
|
-
Select.Trigger.displayName = "Select.Trigger";
|
|
415
|
-
Select.Box.displayName = "Select.Box";
|
|
416
|
-
Select.Value.displayName = "Select.Value";
|
|
417
|
-
Select.List.displayName = "Select.List";
|
|
418
|
-
Select.Item.displayName = "Select.Item";
|
|
419
|
-
Select.Empty.displayName = "Select.Empty";
|
|
420
|
-
Select.Description.displayName = "Select.Description";
|
|
421
|
-
Select.Group.displayName = "Select.Group";
|
|
422
|
-
|
|
423
|
-
export { Select, commonInputVariants };
|
|
424
|
-
//# sourceMappingURL=chunk-ZWCMSHDP.mjs.map
|
|
425
|
-
//# sourceMappingURL=chunk-ZWCMSHDP.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/input/inputVariants.ts","../src/input/selectVariants.ts","../src/input/Select.tsx"],"names":["cva","cn"],"mappings":"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","file":"chunk-ZWCMSHDP.mjs","sourcesContent":["import { cva } from '@exem-ui/core/utils';\n\n// 공통 Input variants\nexport const commonInputVariants = {\n // Container variants - 전체 컴포넌트 래퍼\n container: cva('flex flex-col'),\n\n // Label variants - 라벨 텍스트\n label: cva('inline-block font-regular text-text-primary', {\n variants: {\n size: {\n xsmall: 'mb-[2px] text-body-3',\n small: 'mb-[4px] text-body-2',\n medium: 'mb-[4px] text-body-2',\n large: 'mb-[6px] text-body-1',\n },\n disabled: {\n true: 'text-text-disabled',\n },\n required: {\n true: 'after:ml-0.5 after:text-text-critical after:content-[\"*\"]',\n },\n },\n compoundVariants: [\n {\n required: true,\n disabled: true,\n className: 'after:text-text-disabled',\n },\n ],\n defaultVariants: { size: 'medium' },\n }),\n\n // Description variants - 설명 텍스트\n description: cva('mt-0.5 inline-block text-text-tertiary', {\n variants: {\n size: {\n xsmall: 'text-caption',\n small: 'text-body-3',\n medium: 'text-body-3',\n large: 'text-body-2',\n },\n error: {\n true: 'text-text-critical',\n },\n disabled: {\n true: 'text-text-disabled',\n },\n },\n compoundVariants: [\n {\n error: true,\n disabled: true,\n className: 'text-text-disabled', // disabled 우선 적용\n },\n ],\n defaultVariants: { size: 'medium' },\n }),\n\n // Icon variants - 아이콘 크기\n icon: cva('shrink-0', {\n variants: {\n size: {\n xsmall: 'size-4',\n small: 'size-4',\n medium: 'size-4',\n large: 'size-5',\n },\n },\n defaultVariants: { size: 'medium' },\n }),\n};\n\n// 공통 타입 정의\nexport type Size = 'xsmall' | 'small' | 'medium' | 'large';\nexport type Variant = 'fill' | 'line';\nexport type Icon = React.ReactElement<{ className?: string }>;\n","import { cn, cva } from '@exem-ui/core/utils';\nimport { commonInputVariants } from './inputVariants';\n\nexport const selectVariants = {\n container: commonInputVariants.container,\n content: cn(\n 'relative border border-border-primary z-50 min-w-[8rem] overflow-hidden rounded-medium bg-background-overlay shadow-weak',\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95',\n 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\n ),\n\n description: commonInputVariants.description,\n\n iconSize: commonInputVariants.icon,\n\n item: cva(\n 'relative flex w-full cursor-pointer select-none items-center rounded-weak px-2 text-body-2 text-text-primary outline-none hover:bg-elevation-elevation-2 data-[disabled]:pointer-events-none data-[state=checked]:bg-elevation-accent data-[disabled]:text-text-disabled',\n {\n defaultVariants: { size: 'medium' },\n variants: {\n size: {\n xsmall: 'h-6',\n small: 'h-7',\n medium: 'h-8',\n large: 'h-10',\n },\n },\n },\n ),\n itemText: cva('truncate flex items-center flex-1 min-w-0', {\n defaultVariants: { size: 'medium' },\n variants: {\n size: {\n xsmall: 'h-6',\n small: 'h-7',\n medium: 'h-8',\n large: 'h-10',\n },\n },\n }),\n\n label: commonInputVariants.label,\n\n trigger: cva(\n 'group flex w-full items-center justify-between rounded-medium outline-none disabled:cursor-not-allowed disabled:bg-elevation-elevation-2 disabled:text-text-disabled data-[state=open]:border data-[state=open]:border-border-focused [&>span]:line-clamp-1 [&[data-placeholder]]:text-text-tertiary [&_svg]:text-icon-primary',\n {\n compoundVariants: [\n {\n className:\n 'border-border-accent text-tint-foreground-sky bg-elevation-accent [&[data-placeholder]]:text-tint-foreground-sky [&_svg]:text-tint-foreground-sky',\n focus: true,\n variant: 'line',\n },\n // active + fill: 배경만 accent로 변경\n {\n className:\n 'bg-elevation-accent text-tint-foreground-sky [&[data-placeholder]]:text-tint-foreground-sky [&_svg]:text-tint-foreground-sky',\n active: true,\n variant: 'fill',\n },\n // active + line: 배경 accent + 테두리 accent\n {\n className:\n 'bg-elevation-accent border-border-accent text-tint-foreground-sky [&[data-placeholder]]:text-tint-foreground-sky [&_svg]:text-tint-foreground-sky',\n active: true,\n variant: 'line',\n },\n ],\n defaultVariants: {\n active: false,\n error: false,\n focus: false,\n size: 'medium',\n variant: 'fill',\n },\n variants: {\n active: {\n false: '',\n true: '',\n },\n error: {\n false: '',\n true: 'border !border-border-critical',\n },\n focus: {\n false: '',\n // 현재는 line 타입만 focus 가능\n true: '',\n },\n size: {\n xsmall: 'h-6 px-[4px] text-body-3',\n small: 'h-7 px-[6px] text-body-2',\n medium: 'h-8 px-[8px] text-body-2',\n large: 'h-10 px-[10px] text-body-1',\n },\n variant: {\n fill: 'bg-elevation-elevation-2',\n line: 'border-border-primary border',\n },\n },\n },\n ),\n\n triggerInner: cva('flex w-full items-center', {\n defaultVariants: { size: 'medium' },\n variants: {\n size: {\n xsmall: 'gap-0',\n small: 'gap-[2px]',\n medium: 'gap-[2px]',\n large: 'gap-[4px]',\n },\n },\n }),\n viewport: cn('flex flex-col gap-0.5 p-1'),\n};\n","import { cn } from '@exem-ui/core/utils';\nimport * as SelectPrimitive from '@radix-ui/react-select';\nimport * as React from 'react';\nimport { createContext, forwardRef, useContext, useId } from 'react';\nimport { ChevronDownIcon } from '../icon';\n\nimport type { Icon, Size, Variant } from './inputVariants';\nimport { selectVariants } from './selectVariants';\n\ntype SelectContextValue = {\n size: Size;\n error: boolean;\n focus: boolean;\n active: boolean;\n disabled: boolean;\n id: string;\n variant: Variant;\n};\n\ntype SelectGroupContextValue = {\n isFirstChild: boolean;\n isLastChild: boolean;\n size?: Size;\n variant?: Variant;\n focus?: boolean;\n};\n\n/** Select 라벨 Props */\ntype SelectLabelProps = {\n children: React.ReactNode;\n required?: boolean;\n size?: Size;\n className?: string;\n};\n\n/** Select 트리거 Props */\ntype SelectTriggerProps = {\n children?: React.ReactNode;\n /** 트리거 왼쪽에 표시할 아이콘 */\n leftIcon?: Icon;\n className?: string;\n} & Omit<React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>, 'children'>;\n\n/** Select Box (Trigger + Value 조합) Props */\ntype SelectBoxProps = {\n placeholder?: string;\n /** 트리거 왼쪽에 표시할 아이콘 */\n leftIcon?: Icon;\n className?: string;\n} & Omit<React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>, 'children'>;\n\n/** Select 아이템 Props */\ntype SelectItemProps = {\n children?: React.ReactNode;\n /** 아이템 왼쪽에 표시할 아이콘 */\n leftIcon?: Icon;\n /** 아이템 오른쪽에 표시할 아이콘 */\n rightIcon?: Icon;\n /** 왼쪽 아이콘 크기 */\n leftIconSize?: Size;\n /** 오른쪽 아이콘 크기 */\n rightIconSize?: Size;\n size?: Size;\n className?: string;\n} & Omit<React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>, 'children'>;\n\ntype SelectEmptyProps = {\n children?: React.ReactNode;\n className?: string;\n};\n\ntype SelectDescriptionProps = {\n children?: React.ReactNode;\n size?: Size;\n className?: string;\n};\n\ntype SelectGroupProps = {\n children: React.ReactNode;\n size?: Size;\n /** 셀렉트 그룹 스타일 변형 */\n variant?: Variant;\n /** 불투명 배경 (elevation-0) 사용 여부. 반투명 배경이 비쳐보이는 것을 방지합니다. */\n hasBackground?: boolean;\n className?: string;\n};\n\n/** Select 루트 Props */\ntype SelectRootProps = {\n children?: React.ReactNode;\n /** 셀렉트 크기 */\n size?: Size;\n /** 셀렉트 스타일 변형 */\n variant?: Variant;\n /** 에러 상태 */\n error?: boolean;\n /** 포커스 상태 (line variant에서만 적용) */\n focus?: boolean;\n /** 활성화 상태 (필터 적용 등 내부 상태가 활성화됨을 표시) */\n active?: boolean;\n /** 비활성화 상태 */\n disabled?: boolean;\n className?: string;\n} & Omit<React.ComponentPropsWithoutRef<typeof SelectPrimitive.Root>, 'disabled' | 'children'>;\n\ntype SelectListProps = Omit<\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>,\n 'position'\n>;\n\ntype SelectComponent = React.ForwardRefExoticComponent<\n SelectRootProps & React.RefAttributes<HTMLDivElement>\n> & {\n Label: React.ForwardRefExoticComponent<SelectLabelProps & React.RefAttributes<HTMLLabelElement>>;\n Trigger: React.ForwardRefExoticComponent<\n SelectTriggerProps & React.RefAttributes<React.ComponentRef<typeof SelectPrimitive.Trigger>>\n >;\n Box: React.ForwardRefExoticComponent<\n SelectBoxProps & React.RefAttributes<React.ComponentRef<typeof SelectPrimitive.Trigger>>\n >;\n Value: React.ForwardRefExoticComponent<\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Value> &\n React.RefAttributes<React.ComponentRef<typeof SelectPrimitive.Value>>\n >;\n List: React.ForwardRefExoticComponent<\n SelectListProps & React.RefAttributes<React.ComponentRef<typeof SelectPrimitive.Content>>\n >;\n Item: React.ForwardRefExoticComponent<\n SelectItemProps & React.RefAttributes<React.ComponentRef<typeof SelectPrimitive.Item>>\n >;\n Empty: React.ForwardRefExoticComponent<SelectEmptyProps & React.RefAttributes<HTMLDivElement>>;\n Description: React.ForwardRefExoticComponent<\n SelectDescriptionProps & React.RefAttributes<HTMLDivElement>\n >;\n Group: React.ForwardRefExoticComponent<SelectGroupProps & React.RefAttributes<HTMLDivElement>>;\n};\n\nconst SelectContext = createContext<SelectContextValue | null>(null);\n\nconst useSelectContext = () => {\n const context = useContext(SelectContext);\n if (!context) {\n throw new Error('Select components must be used within a Select');\n }\n return context;\n};\n\nconst SelectGroupContext = createContext<SelectGroupContextValue | null>(null);\n\nconst useSelectGroupContext = () => {\n return useContext(SelectGroupContext);\n};\n\nconst Select = forwardRef<HTMLDivElement, SelectRootProps>(\n (\n {\n children,\n size = 'medium',\n variant = 'fill',\n error = false,\n disabled = false,\n focus = false,\n active = false,\n className,\n ...selectProps\n },\n ref,\n ) => {\n const uniqueId = useId();\n const id = `select-${uniqueId}`;\n\n return (\n <SelectContext.Provider value={{ active, disabled, error, focus, id, size, variant }}>\n <div ref={ref} className={cn(selectVariants.container(), className)}>\n <SelectPrimitive.Root disabled={disabled} {...selectProps}>\n {children}\n </SelectPrimitive.Root>\n </div>\n </SelectContext.Provider>\n );\n },\n) as SelectComponent;\n\nSelect.Value = forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Value>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Value>\n>(({ className, children, ...props }, ref) => {\n return (\n <SelectPrimitive.Value ref={ref} className={className} {...props}>\n {children}\n </SelectPrimitive.Value>\n );\n}) as SelectComponent['Value'];\n\nSelect.Trigger = forwardRef<React.ComponentRef<typeof SelectPrimitive.Trigger>, SelectTriggerProps>(\n ({ className, children, leftIcon, ...props }, ref) => {\n const { size, error, id, variant, focus, active } = useSelectContext();\n const groupContext = useSelectGroupContext();\n\n const groupClasses = groupContext\n ? cn('rounded-none border-0', {\n 'rounded-l-medium': groupContext.isFirstChild,\n 'rounded-r-medium': groupContext.isLastChild,\n // line variant: group이 외곽 border를 제공하므로, open 시 border 대신 inset ring 사용\n 'data-[state=open]:border-0 data-[state=open]:ring-1 data-[state=open]:ring-inset data-[state=open]:ring-border-focused':\n variant === 'line',\n })\n : undefined;\n\n return (\n <SelectPrimitive.Trigger\n ref={ref}\n id={id}\n data-slot=\"select-trigger\"\n className={cn(\n selectVariants.trigger({ active, error, focus, size, variant }),\n groupClasses,\n className,\n )}\n {...props}\n >\n <div className={cn(selectVariants.triggerInner({ size }))}>\n {leftIcon && (\n <span\n className={cn(\n selectVariants.iconSize({ size }),\n 'flex items-center justify-center group-disabled:text-icon-disabled',\n )}\n >\n {leftIcon}\n </span>\n )}\n <div className=\"min-w-0 flex-1 truncate text-left\">{children}</div>\n <ChevronDownIcon\n type=\"regular\"\n className={cn(\n selectVariants.iconSize({ size }),\n 'transition-transform duration-200 group-data-[state=open]:rotate-180',\n 'group-disabled:text-icon-disabled',\n )}\n />\n </div>\n </SelectPrimitive.Trigger>\n );\n },\n) as SelectComponent['Trigger'];\n\nSelect.Box = forwardRef<React.ComponentRef<typeof SelectPrimitive.Trigger>, SelectBoxProps>(\n ({ placeholder, leftIcon, className, ...props }, ref) => {\n return (\n <Select.Trigger ref={ref} leftIcon={leftIcon} className={className} {...props}>\n <Select.Value placeholder={placeholder} />\n </Select.Trigger>\n );\n },\n) as SelectComponent['Box'];\n\nSelect.List = forwardRef<React.ComponentRef<typeof SelectPrimitive.Content>, SelectListProps>(\n ({ className, children, ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n data-slot=\"select-content\"\n className={cn(selectVariants.content, 'max-h-60 ', className)}\n position=\"popper\"\n {...props}\n >\n <SelectPrimitive.Viewport\n data-slot=\"select-viewport\"\n className={cn(\n selectVariants.viewport,\n 'h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]',\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n ),\n) as SelectComponent['List'];\n\nSelect.Label = forwardRef<HTMLLabelElement, SelectLabelProps>(\n ({ children, required = false, size: sizeProp, className }, ref) => {\n const { size: contextSize, disabled, id } = useSelectContext();\n const groupContext = useSelectGroupContext();\n const size = sizeProp ?? groupContext?.size ?? contextSize;\n\n return (\n <label\n ref={ref}\n htmlFor={id}\n className={cn(selectVariants.label({ disabled, required, size }), className)}\n >\n {children}\n </label>\n );\n },\n) as SelectComponent['Label'];\n\nSelect.Item = forwardRef<React.ComponentRef<typeof SelectPrimitive.Item>, SelectItemProps>(\n (\n {\n className,\n children,\n leftIcon,\n rightIcon,\n leftIconSize,\n rightIconSize,\n size: sizeProp,\n ...props\n },\n ref,\n ) => {\n const { size: contextSize } = useSelectContext();\n const groupContext = useSelectGroupContext();\n const size = sizeProp ?? groupContext?.size ?? contextSize;\n\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n ref={ref}\n className={cn(selectVariants.item({ size }), className)}\n {...props}\n >\n <div className=\"flex w-full items-center justify-between\">\n <div className=\"flex w-full items-center gap-0.5\">\n {leftIcon && (\n <span\n className={cn(\n selectVariants.iconSize({ size: leftIconSize ?? size }),\n 'flex items-center justify-center text-icon-primary',\n )}\n >\n {leftIcon}\n </span>\n )}\n <SelectPrimitive.ItemText asChild>\n <div className={cn(selectVariants.itemText({ size }))}>{children}</div>\n </SelectPrimitive.ItemText>\n </div>\n {rightIcon && (\n <span\n className={cn(\n selectVariants.iconSize({ size: rightIconSize ?? size }),\n 'flex items-center justify-center text-icon-primary',\n )}\n >\n {rightIcon}\n </span>\n )}\n </div>\n </SelectPrimitive.Item>\n );\n },\n) as SelectComponent['Item'];\n\nSelect.Empty = forwardRef<HTMLDivElement, SelectEmptyProps>(\n ({ children = 'No data', className }, ref) => {\n return (\n <div ref={ref} className={cn('flex min-h-8 items-center justify-center p-2', className)}>\n <p className=\"text-body-2 text-text-disabled\">{children}</p>\n </div>\n );\n },\n) as SelectComponent['Empty'];\n\nSelect.Description = forwardRef<HTMLDivElement, SelectDescriptionProps>(\n ({ children, size: sizeProp, className }, ref) => {\n const { size: contextSize, error, disabled } = useSelectContext();\n const groupContext = useSelectGroupContext();\n const size = sizeProp ?? groupContext?.size ?? contextSize;\n\n if (!children) {\n return null;\n }\n\n return (\n <div\n ref={ref}\n data-slot=\"select-description\"\n className={cn(selectVariants.description({ disabled, error, size }), className)}\n >\n <p>{children}</p>\n </div>\n );\n },\n) as SelectComponent['Description'];\n\nSelect.Group = forwardRef<HTMLDivElement, SelectGroupProps>(\n ({ children, size = 'medium', variant = 'fill', hasBackground = false, className }, ref) => {\n const childArray = React.Children.toArray(children);\n\n return (\n <div\n ref={ref}\n className={cn(\n 'flex w-fit flex-row items-stretch overflow-clip rounded-medium',\n variant === 'line' && 'border border-border-primary',\n hasBackground && 'bg-elevation-elevation-0',\n className,\n )}\n >\n {childArray.map((child, index) => {\n const isFirst = index === 0;\n const isLast = index === childArray.length - 1;\n\n return (\n <React.Fragment key={index}>\n <SelectGroupContext.Provider\n value={{ isFirstChild: isFirst, isLastChild: isLast, size, variant }}\n >\n {child}\n </SelectGroupContext.Provider>\n {!isLast && <div className=\"w-px self-stretch bg-border-primary\" />}\n </React.Fragment>\n );\n })}\n </div>\n );\n },\n) as SelectComponent['Group'];\n\nSelect.displayName = 'Select';\nSelect.Label.displayName = 'Select.Label';\nSelect.Trigger.displayName = 'Select.Trigger';\nSelect.Box.displayName = 'Select.Box';\nSelect.Value.displayName = 'Select.Value';\nSelect.List.displayName = 'Select.List';\nSelect.Item.displayName = 'Select.Item';\nSelect.Empty.displayName = 'Select.Empty';\nSelect.Description.displayName = 'Select.Description';\nSelect.Group.displayName = 'Select.Group';\n\nexport { Select };\nexport type {\n SelectComponent,\n SelectRootProps,\n SelectBoxProps,\n SelectDescriptionProps,\n SelectEmptyProps,\n SelectItemProps,\n SelectLabelProps,\n SelectTriggerProps,\n SelectGroupProps,\n SelectListProps,\n};\n"]}
|
package/dist/flat/index.d.mts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export { FlatSegment, FlatSegmentItem, FlatSegmentProps } from './segment.mjs';
|
|
2
|
-
export { FlatSelect, FlatSelectOption, FlatSelectProps } from './select.mjs';
|
|
3
|
-
export { ConditionalTooltip, ConditionalTooltipProps, FlatTooltip, FlatTooltipProps, TooltipConfig } from './tooltip.mjs';
|
|
4
|
-
import 'react/jsx-runtime';
|
|
5
|
-
import 'react';
|
|
6
|
-
import '../segment/index.mjs';
|
|
7
|
-
import '@radix-ui/react-tabs';
|
|
8
|
-
import '../Select-DMvWV_rF.mjs';
|
|
9
|
-
import '@radix-ui/react-select';
|
|
10
|
-
import '../tooltip/index.mjs';
|
|
11
|
-
import 'class-variance-authority/types';
|
|
12
|
-
import '@exem-ui/core/utils';
|
|
13
|
-
import '@radix-ui/react-tooltip';
|
package/dist/flat/index.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export { FlatSegment, FlatSegmentItem, FlatSegmentProps } from './segment.js';
|
|
2
|
-
export { FlatSelect, FlatSelectOption, FlatSelectProps } from './select.js';
|
|
3
|
-
export { ConditionalTooltip, ConditionalTooltipProps, FlatTooltip, FlatTooltipProps, TooltipConfig } from './tooltip.js';
|
|
4
|
-
import 'react/jsx-runtime';
|
|
5
|
-
import 'react';
|
|
6
|
-
import '../segment/index.js';
|
|
7
|
-
import '@radix-ui/react-tabs';
|
|
8
|
-
import '../Select-DMvWV_rF.js';
|
|
9
|
-
import '@radix-ui/react-select';
|
|
10
|
-
import '../tooltip/index.js';
|
|
11
|
-
import 'class-variance-authority/types';
|
|
12
|
-
import '@exem-ui/core/utils';
|
|
13
|
-
import '@radix-ui/react-tooltip';
|
package/dist/flat/index.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
require('../chunk-PU5NO5EZ.js');
|
|
4
|
-
var chunkVSB25XTY_js = require('../chunk-VSB25XTY.js');
|
|
5
|
-
require('../chunk-NDG4LR3Q.js');
|
|
6
|
-
var chunk3FPMWAQT_js = require('../chunk-3FPMWAQT.js');
|
|
7
|
-
require('../chunk-T7U2QRLC.js');
|
|
8
|
-
var chunkFDX4IQK5_js = require('../chunk-FDX4IQK5.js');
|
|
9
|
-
require('../chunk-MQVHREEI.js');
|
|
10
|
-
require('../chunk-5M47B2XJ.js');
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
Object.defineProperty(exports, "FlatSegment", {
|
|
15
|
-
enumerable: true,
|
|
16
|
-
get: function () { return chunkVSB25XTY_js.FlatSegment; }
|
|
17
|
-
});
|
|
18
|
-
Object.defineProperty(exports, "ConditionalTooltip", {
|
|
19
|
-
enumerable: true,
|
|
20
|
-
get: function () { return chunk3FPMWAQT_js.ConditionalTooltip; }
|
|
21
|
-
});
|
|
22
|
-
Object.defineProperty(exports, "FlatTooltip", {
|
|
23
|
-
enumerable: true,
|
|
24
|
-
get: function () { return chunk3FPMWAQT_js.FlatTooltip; }
|
|
25
|
-
});
|
|
26
|
-
Object.defineProperty(exports, "FlatSelect", {
|
|
27
|
-
enumerable: true,
|
|
28
|
-
get: function () { return chunkFDX4IQK5_js.FlatSelect; }
|
|
29
|
-
});
|
|
30
|
-
//# sourceMappingURL=index.js.map
|
|
31
|
-
//# sourceMappingURL=index.js.map
|
package/dist/flat/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
|
package/dist/flat/index.mjs
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import '../chunk-VKN4H4WI.mjs';
|
|
2
|
-
export { FlatSegment } from '../chunk-34QIGWCT.mjs';
|
|
3
|
-
import '../chunk-Q442ZDTI.mjs';
|
|
4
|
-
export { ConditionalTooltip, FlatTooltip } from '../chunk-5WGNZX7Z.mjs';
|
|
5
|
-
import '../chunk-YVFLRPFV.mjs';
|
|
6
|
-
export { FlatSelect } from '../chunk-DPUTW5KD.mjs';
|
|
7
|
-
import '../chunk-ZWCMSHDP.mjs';
|
|
8
|
-
import '../chunk-LZWKMQJL.mjs';
|
|
9
|
-
//# sourceMappingURL=index.mjs.map
|
|
10
|
-
//# sourceMappingURL=index.mjs.map
|
package/dist/flat/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs"}
|
package/dist/flat/segment.d.mts
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import React__default from 'react';
|
|
3
|
-
import { Segment, SegmentRootProps } from '../segment/index.mjs';
|
|
4
|
-
import '@radix-ui/react-tabs';
|
|
5
|
-
|
|
6
|
-
type FlatSegmentItem = Pick<React__default.ComponentPropsWithoutRef<typeof Segment.Item>, 'value' | 'children' | 'disabled' | 'leftIcon' | 'className'>;
|
|
7
|
-
interface FlatSegmentProps extends Omit<SegmentRootProps, 'children' | 'asChild'> {
|
|
8
|
-
/** 세그먼트 아이템 배열 */
|
|
9
|
-
items: FlatSegmentItem[];
|
|
10
|
-
/**
|
|
11
|
-
* 전체 비활성화 여부 (개별 아이템의 disabled와 OR 결합)
|
|
12
|
-
* @default false
|
|
13
|
-
*/
|
|
14
|
-
disabled?: boolean;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Segment 컴포넌트의 간소화된 Flat API입니다.
|
|
18
|
-
* items 배열만 전달하면 Compound Component 없이 간편하게 사용할 수 있습니다.
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* ```tsx
|
|
22
|
-
* <FlatSegment
|
|
23
|
-
* defaultValue="tab1"
|
|
24
|
-
* size="medium"
|
|
25
|
-
* items={[
|
|
26
|
-
* { value: 'tab1', children: '첫 번째' },
|
|
27
|
-
* { value: 'tab2', children: '두 번째' },
|
|
28
|
-
* ]}
|
|
29
|
-
* />
|
|
30
|
-
* ```
|
|
31
|
-
*
|
|
32
|
-
* @see {@link FlatSegmentProps} props 상세
|
|
33
|
-
*/
|
|
34
|
-
declare const FlatSegment: {
|
|
35
|
-
({ items, disabled, className, ...props }: FlatSegmentProps): react_jsx_runtime.JSX.Element;
|
|
36
|
-
displayName: string;
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
export { FlatSegment, type FlatSegmentItem, type FlatSegmentProps };
|
package/dist/flat/segment.d.ts
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import React__default from 'react';
|
|
3
|
-
import { Segment, SegmentRootProps } from '../segment/index.js';
|
|
4
|
-
import '@radix-ui/react-tabs';
|
|
5
|
-
|
|
6
|
-
type FlatSegmentItem = Pick<React__default.ComponentPropsWithoutRef<typeof Segment.Item>, 'value' | 'children' | 'disabled' | 'leftIcon' | 'className'>;
|
|
7
|
-
interface FlatSegmentProps extends Omit<SegmentRootProps, 'children' | 'asChild'> {
|
|
8
|
-
/** 세그먼트 아이템 배열 */
|
|
9
|
-
items: FlatSegmentItem[];
|
|
10
|
-
/**
|
|
11
|
-
* 전체 비활성화 여부 (개별 아이템의 disabled와 OR 결합)
|
|
12
|
-
* @default false
|
|
13
|
-
*/
|
|
14
|
-
disabled?: boolean;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Segment 컴포넌트의 간소화된 Flat API입니다.
|
|
18
|
-
* items 배열만 전달하면 Compound Component 없이 간편하게 사용할 수 있습니다.
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* ```tsx
|
|
22
|
-
* <FlatSegment
|
|
23
|
-
* defaultValue="tab1"
|
|
24
|
-
* size="medium"
|
|
25
|
-
* items={[
|
|
26
|
-
* { value: 'tab1', children: '첫 번째' },
|
|
27
|
-
* { value: 'tab2', children: '두 번째' },
|
|
28
|
-
* ]}
|
|
29
|
-
* />
|
|
30
|
-
* ```
|
|
31
|
-
*
|
|
32
|
-
* @see {@link FlatSegmentProps} props 상세
|
|
33
|
-
*/
|
|
34
|
-
declare const FlatSegment: {
|
|
35
|
-
({ items, disabled, className, ...props }: FlatSegmentProps): react_jsx_runtime.JSX.Element;
|
|
36
|
-
displayName: string;
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
export { FlatSegment, type FlatSegmentItem, type FlatSegmentProps };
|
package/dist/flat/segment.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkVSB25XTY_js = require('../chunk-VSB25XTY.js');
|
|
4
|
-
require('../chunk-NDG4LR3Q.js');
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
Object.defineProperty(exports, "FlatSegment", {
|
|
9
|
-
enumerable: true,
|
|
10
|
-
get: function () { return chunkVSB25XTY_js.FlatSegment; }
|
|
11
|
-
});
|
|
12
|
-
//# sourceMappingURL=segment.js.map
|
|
13
|
-
//# sourceMappingURL=segment.js.map
|