@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.
Files changed (264) hide show
  1. package/LICENSE +190 -0
  2. package/README.en.md +142 -0
  3. package/README.md +156 -18
  4. package/dist/index.d.mts +1166 -37
  5. package/dist/index.d.ts +1166 -37
  6. package/dist/index.js +3055 -130
  7. package/dist/index.js.map +1 -1
  8. package/dist/index.mjs +3016 -27
  9. package/dist/index.mjs.map +1 -1
  10. package/package.json +24 -143
  11. package/dist/Button-CMenVfb7.d.mts +0 -35
  12. package/dist/Button-CMenVfb7.d.ts +0 -35
  13. package/dist/Select-DMvWV_rF.d.mts +0 -94
  14. package/dist/Select-DMvWV_rF.d.ts +0 -94
  15. package/dist/avatar/index.d.mts +0 -37
  16. package/dist/avatar/index.d.ts +0 -37
  17. package/dist/avatar/index.js +0 -13
  18. package/dist/avatar/index.js.map +0 -1
  19. package/dist/avatar/index.mjs +0 -4
  20. package/dist/avatar/index.mjs.map +0 -1
  21. package/dist/badge/index.d.mts +0 -29
  22. package/dist/badge/index.d.ts +0 -29
  23. package/dist/badge/index.js +0 -12
  24. package/dist/badge/index.js.map +0 -1
  25. package/dist/badge/index.mjs +0 -3
  26. package/dist/badge/index.mjs.map +0 -1
  27. package/dist/breadcrumb/index.d.mts +0 -43
  28. package/dist/breadcrumb/index.d.ts +0 -43
  29. package/dist/breadcrumb/index.js +0 -13
  30. package/dist/breadcrumb/index.js.map +0 -1
  31. package/dist/breadcrumb/index.mjs +0 -4
  32. package/dist/breadcrumb/index.mjs.map +0 -1
  33. package/dist/button/index.d.mts +0 -9
  34. package/dist/button/index.d.ts +0 -9
  35. package/dist/button/index.js +0 -29
  36. package/dist/button/index.js.map +0 -1
  37. package/dist/button/index.mjs +0 -12
  38. package/dist/button/index.mjs.map +0 -1
  39. package/dist/checkbox/index.d.mts +0 -54
  40. package/dist/checkbox/index.d.ts +0 -54
  41. package/dist/checkbox/index.js +0 -13
  42. package/dist/checkbox/index.js.map +0 -1
  43. package/dist/checkbox/index.mjs +0 -4
  44. package/dist/checkbox/index.mjs.map +0 -1
  45. package/dist/chunk-34QIGWCT.mjs +0 -10
  46. package/dist/chunk-34QIGWCT.mjs.map +0 -1
  47. package/dist/chunk-3FPMWAQT.js +0 -30
  48. package/dist/chunk-3FPMWAQT.js.map +0 -1
  49. package/dist/chunk-3HMT3DQV.js +0 -104
  50. package/dist/chunk-3HMT3DQV.js.map +0 -1
  51. package/dist/chunk-4WAO7CUT.mjs +0 -95
  52. package/dist/chunk-4WAO7CUT.mjs.map +0 -1
  53. package/dist/chunk-5QX4TO4F.js +0 -61
  54. package/dist/chunk-5QX4TO4F.js.map +0 -1
  55. package/dist/chunk-5TEFN2CW.js +0 -97
  56. package/dist/chunk-5TEFN2CW.js.map +0 -1
  57. package/dist/chunk-5TES5PG6.js +0 -41
  58. package/dist/chunk-5TES5PG6.js.map +0 -1
  59. package/dist/chunk-5TVMECVF.js +0 -148
  60. package/dist/chunk-5TVMECVF.js.map +0 -1
  61. package/dist/chunk-5WGNZX7Z.mjs +0 -27
  62. package/dist/chunk-5WGNZX7Z.mjs.map +0 -1
  63. package/dist/chunk-AQ3OIM2T.js +0 -103
  64. package/dist/chunk-AQ3OIM2T.js.map +0 -1
  65. package/dist/chunk-AU5NTBK3.js +0 -361
  66. package/dist/chunk-AU5NTBK3.js.map +0 -1
  67. package/dist/chunk-DJHGCJR4.mjs +0 -224
  68. package/dist/chunk-DJHGCJR4.mjs.map +0 -1
  69. package/dist/chunk-DPUTW5KD.mjs +0 -74
  70. package/dist/chunk-DPUTW5KD.mjs.map +0 -1
  71. package/dist/chunk-E53FHDVN.mjs +0 -336
  72. package/dist/chunk-E53FHDVN.mjs.map +0 -1
  73. package/dist/chunk-ECRQD7UU.js +0 -82
  74. package/dist/chunk-ECRQD7UU.js.map +0 -1
  75. package/dist/chunk-FB4ESGOX.mjs +0 -59
  76. package/dist/chunk-FB4ESGOX.mjs.map +0 -1
  77. package/dist/chunk-FDX4IQK5.js +0 -76
  78. package/dist/chunk-FDX4IQK5.js.map +0 -1
  79. package/dist/chunk-FOMIUDRM.js +0 -96
  80. package/dist/chunk-FOMIUDRM.js.map +0 -1
  81. package/dist/chunk-FR5F3VTU.js +0 -139
  82. package/dist/chunk-FR5F3VTU.js.map +0 -1
  83. package/dist/chunk-GW53LH3I.mjs +0 -81
  84. package/dist/chunk-GW53LH3I.mjs.map +0 -1
  85. package/dist/chunk-GXMRIT5E.mjs +0 -94
  86. package/dist/chunk-GXMRIT5E.mjs.map +0 -1
  87. package/dist/chunk-IANSI7F7.mjs +0 -393
  88. package/dist/chunk-IANSI7F7.mjs.map +0 -1
  89. package/dist/chunk-IDM6MZHF.js +0 -415
  90. package/dist/chunk-IDM6MZHF.js.map +0 -1
  91. package/dist/chunk-J5ZYQ3TP.js +0 -104
  92. package/dist/chunk-J5ZYQ3TP.js.map +0 -1
  93. package/dist/chunk-KPAUBWZA.mjs +0 -39
  94. package/dist/chunk-KPAUBWZA.mjs.map +0 -1
  95. package/dist/chunk-L7P2NDST.mjs +0 -124
  96. package/dist/chunk-L7P2NDST.mjs.map +0 -1
  97. package/dist/chunk-M6OWN7QH.js +0 -118
  98. package/dist/chunk-M6OWN7QH.js.map +0 -1
  99. package/dist/chunk-MQVHREEI.js +0 -448
  100. package/dist/chunk-MQVHREEI.js.map +0 -1
  101. package/dist/chunk-MT47ECUN.js +0 -127
  102. package/dist/chunk-MT47ECUN.js.map +0 -1
  103. package/dist/chunk-N6U54JI4.mjs +0 -126
  104. package/dist/chunk-N6U54JI4.mjs.map +0 -1
  105. package/dist/chunk-NDG4LR3Q.js +0 -139
  106. package/dist/chunk-NDG4LR3Q.js.map +0 -1
  107. package/dist/chunk-PPD4BU4W.mjs +0 -80
  108. package/dist/chunk-PPD4BU4W.mjs.map +0 -1
  109. package/dist/chunk-PU5NO5EZ.js +0 -4
  110. package/dist/chunk-PU5NO5EZ.js.map +0 -1
  111. package/dist/chunk-Q442ZDTI.mjs +0 -117
  112. package/dist/chunk-Q442ZDTI.mjs.map +0 -1
  113. package/dist/chunk-QH23RO3C.mjs +0 -137
  114. package/dist/chunk-QH23RO3C.mjs.map +0 -1
  115. package/dist/chunk-REBHUF4L.js +0 -226
  116. package/dist/chunk-REBHUF4L.js.map +0 -1
  117. package/dist/chunk-RGB3QLQT.js +0 -275
  118. package/dist/chunk-RGB3QLQT.js.map +0 -1
  119. package/dist/chunk-T7U2QRLC.js +0 -94
  120. package/dist/chunk-T7U2QRLC.js.map +0 -1
  121. package/dist/chunk-TEHHJ3CS.mjs +0 -73
  122. package/dist/chunk-TEHHJ3CS.mjs.map +0 -1
  123. package/dist/chunk-TJY4MIBC.js +0 -117
  124. package/dist/chunk-TJY4MIBC.js.map +0 -1
  125. package/dist/chunk-VCMZQOQM.mjs +0 -102
  126. package/dist/chunk-VCMZQOQM.mjs.map +0 -1
  127. package/dist/chunk-VKN4H4WI.mjs +0 -3
  128. package/dist/chunk-VKN4H4WI.mjs.map +0 -1
  129. package/dist/chunk-VSB25XTY.js +0 -12
  130. package/dist/chunk-VSB25XTY.js.map +0 -1
  131. package/dist/chunk-VWTE74UT.mjs +0 -96
  132. package/dist/chunk-VWTE74UT.mjs.map +0 -1
  133. package/dist/chunk-WBTL7PBV.js +0 -105
  134. package/dist/chunk-WBTL7PBV.js.map +0 -1
  135. package/dist/chunk-WOK3EP3O.js +0 -83
  136. package/dist/chunk-WOK3EP3O.js.map +0 -1
  137. package/dist/chunk-WWT73GGM.mjs +0 -83
  138. package/dist/chunk-WWT73GGM.mjs.map +0 -1
  139. package/dist/chunk-XBDXTRK3.mjs +0 -102
  140. package/dist/chunk-XBDXTRK3.mjs.map +0 -1
  141. package/dist/chunk-YGBEKZWU.mjs +0 -81
  142. package/dist/chunk-YGBEKZWU.mjs.map +0 -1
  143. package/dist/chunk-YVFLRPFV.mjs +0 -72
  144. package/dist/chunk-YVFLRPFV.mjs.map +0 -1
  145. package/dist/chunk-ZMVBIQ2Z.mjs +0 -253
  146. package/dist/chunk-ZMVBIQ2Z.mjs.map +0 -1
  147. package/dist/chunk-ZWCMSHDP.mjs +0 -425
  148. package/dist/chunk-ZWCMSHDP.mjs.map +0 -1
  149. package/dist/flat/index.d.mts +0 -13
  150. package/dist/flat/index.d.ts +0 -13
  151. package/dist/flat/index.js +0 -31
  152. package/dist/flat/index.js.map +0 -1
  153. package/dist/flat/index.mjs +0 -10
  154. package/dist/flat/index.mjs.map +0 -1
  155. package/dist/flat/segment.d.mts +0 -39
  156. package/dist/flat/segment.d.ts +0 -39
  157. package/dist/flat/segment.js +0 -13
  158. package/dist/flat/segment.js.map +0 -1
  159. package/dist/flat/segment.mjs +0 -4
  160. package/dist/flat/segment.mjs.map +0 -1
  161. package/dist/flat/select.d.mts +0 -58
  162. package/dist/flat/select.d.ts +0 -58
  163. package/dist/flat/select.js +0 -14
  164. package/dist/flat/select.js.map +0 -1
  165. package/dist/flat/select.mjs +0 -5
  166. package/dist/flat/select.mjs.map +0 -1
  167. package/dist/flat/tooltip.d.mts +0 -98
  168. package/dist/flat/tooltip.d.ts +0 -98
  169. package/dist/flat/tooltip.js +0 -17
  170. package/dist/flat/tooltip.js.map +0 -1
  171. package/dist/flat/tooltip.mjs +0 -4
  172. package/dist/flat/tooltip.mjs.map +0 -1
  173. package/dist/index-CXip5Wb1.d.mts +0 -62
  174. package/dist/index-Drz3P-6Y.d.ts +0 -62
  175. package/dist/input/index.d.mts +0 -82
  176. package/dist/input/index.d.ts +0 -82
  177. package/dist/input/index.js +0 -22
  178. package/dist/input/index.js.map +0 -1
  179. package/dist/input/index.mjs +0 -5
  180. package/dist/input/index.mjs.map +0 -1
  181. package/dist/loading/index.d.mts +0 -54
  182. package/dist/loading/index.d.ts +0 -54
  183. package/dist/loading/index.js +0 -12
  184. package/dist/loading/index.js.map +0 -1
  185. package/dist/loading/index.mjs +0 -3
  186. package/dist/loading/index.mjs.map +0 -1
  187. package/dist/messageBox/index.d.mts +0 -33
  188. package/dist/messageBox/index.d.ts +0 -33
  189. package/dist/messageBox/index.js +0 -13
  190. package/dist/messageBox/index.js.map +0 -1
  191. package/dist/messageBox/index.mjs +0 -4
  192. package/dist/messageBox/index.mjs.map +0 -1
  193. package/dist/modal/index.d.mts +0 -97
  194. package/dist/modal/index.d.ts +0 -97
  195. package/dist/modal/index.js +0 -15
  196. package/dist/modal/index.js.map +0 -1
  197. package/dist/modal/index.mjs +0 -6
  198. package/dist/modal/index.mjs.map +0 -1
  199. package/dist/picker/index.d.mts +0 -12
  200. package/dist/picker/index.d.ts +0 -12
  201. package/dist/picker/index.js +0 -13
  202. package/dist/picker/index.js.map +0 -1
  203. package/dist/picker/index.mjs +0 -4
  204. package/dist/picker/index.mjs.map +0 -1
  205. package/dist/progress/index.d.mts +0 -36
  206. package/dist/progress/index.d.ts +0 -36
  207. package/dist/progress/index.js +0 -12
  208. package/dist/progress/index.js.map +0 -1
  209. package/dist/progress/index.mjs +0 -3
  210. package/dist/progress/index.mjs.map +0 -1
  211. package/dist/radio/index.d.mts +0 -39
  212. package/dist/radio/index.d.ts +0 -39
  213. package/dist/radio/index.js +0 -12
  214. package/dist/radio/index.js.map +0 -1
  215. package/dist/radio/index.mjs +0 -3
  216. package/dist/radio/index.mjs.map +0 -1
  217. package/dist/scrollArea/index.d.mts +0 -31
  218. package/dist/scrollArea/index.d.ts +0 -31
  219. package/dist/scrollArea/index.js +0 -16
  220. package/dist/scrollArea/index.js.map +0 -1
  221. package/dist/scrollArea/index.mjs +0 -3
  222. package/dist/scrollArea/index.mjs.map +0 -1
  223. package/dist/segment/index.d.mts +0 -46
  224. package/dist/segment/index.d.ts +0 -46
  225. package/dist/segment/index.js +0 -12
  226. package/dist/segment/index.js.map +0 -1
  227. package/dist/segment/index.mjs +0 -3
  228. package/dist/segment/index.mjs.map +0 -1
  229. package/dist/star/index.d.mts +0 -30
  230. package/dist/star/index.d.ts +0 -30
  231. package/dist/star/index.js +0 -12
  232. package/dist/star/index.js.map +0 -1
  233. package/dist/star/index.mjs +0 -3
  234. package/dist/star/index.mjs.map +0 -1
  235. package/dist/switch/index.d.mts +0 -32
  236. package/dist/switch/index.d.ts +0 -32
  237. package/dist/switch/index.js +0 -12
  238. package/dist/switch/index.js.map +0 -1
  239. package/dist/switch/index.mjs +0 -3
  240. package/dist/switch/index.mjs.map +0 -1
  241. package/dist/tabs/index.d.mts +0 -52
  242. package/dist/tabs/index.d.ts +0 -52
  243. package/dist/tabs/index.js +0 -12
  244. package/dist/tabs/index.js.map +0 -1
  245. package/dist/tabs/index.mjs +0 -3
  246. package/dist/tabs/index.mjs.map +0 -1
  247. package/dist/tag/index.d.mts +0 -68
  248. package/dist/tag/index.d.ts +0 -68
  249. package/dist/tag/index.js +0 -17
  250. package/dist/tag/index.js.map +0 -1
  251. package/dist/tag/index.mjs +0 -4
  252. package/dist/tag/index.mjs.map +0 -1
  253. package/dist/toast/index.d.mts +0 -175
  254. package/dist/toast/index.d.ts +0 -175
  255. package/dist/toast/index.js +0 -25
  256. package/dist/toast/index.js.map +0 -1
  257. package/dist/toast/index.mjs +0 -4
  258. package/dist/toast/index.mjs.map +0 -1
  259. package/dist/tooltip/index.d.mts +0 -26
  260. package/dist/tooltip/index.d.ts +0 -26
  261. package/dist/tooltip/index.js +0 -12
  262. package/dist/tooltip/index.js.map +0 -1
  263. package/dist/tooltip/index.mjs +0 -3
  264. package/dist/tooltip/index.mjs.map +0 -1
@@ -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"]}
@@ -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';
@@ -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';
@@ -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
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -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
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs"}
@@ -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 };
@@ -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 };
@@ -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