@exem-ui/react 0.1.0-next.bf3c711

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 (274) hide show
  1. package/README.en.md +141 -0
  2. package/README.md +141 -0
  3. package/dist/Button-CMenVfb7.d.mts +35 -0
  4. package/dist/Button-CMenVfb7.d.ts +35 -0
  5. package/dist/Select-DMvWV_rF.d.mts +94 -0
  6. package/dist/Select-DMvWV_rF.d.ts +94 -0
  7. package/dist/avatar/index.d.mts +37 -0
  8. package/dist/avatar/index.d.ts +37 -0
  9. package/dist/avatar/index.js +13 -0
  10. package/dist/avatar/index.js.map +1 -0
  11. package/dist/avatar/index.mjs +4 -0
  12. package/dist/avatar/index.mjs.map +1 -0
  13. package/dist/badge/index.d.mts +29 -0
  14. package/dist/badge/index.d.ts +29 -0
  15. package/dist/badge/index.js +12 -0
  16. package/dist/badge/index.js.map +1 -0
  17. package/dist/badge/index.mjs +3 -0
  18. package/dist/badge/index.mjs.map +1 -0
  19. package/dist/breadcrumb/index.d.mts +43 -0
  20. package/dist/breadcrumb/index.d.ts +43 -0
  21. package/dist/breadcrumb/index.js +13 -0
  22. package/dist/breadcrumb/index.js.map +1 -0
  23. package/dist/breadcrumb/index.mjs +4 -0
  24. package/dist/breadcrumb/index.mjs.map +1 -0
  25. package/dist/button/index.d.mts +9 -0
  26. package/dist/button/index.d.ts +9 -0
  27. package/dist/button/index.js +29 -0
  28. package/dist/button/index.js.map +1 -0
  29. package/dist/button/index.mjs +12 -0
  30. package/dist/button/index.mjs.map +1 -0
  31. package/dist/checkbox/index.d.mts +54 -0
  32. package/dist/checkbox/index.d.ts +54 -0
  33. package/dist/checkbox/index.js +13 -0
  34. package/dist/checkbox/index.js.map +1 -0
  35. package/dist/checkbox/index.mjs +4 -0
  36. package/dist/checkbox/index.mjs.map +1 -0
  37. package/dist/chunk-34QIGWCT.mjs +10 -0
  38. package/dist/chunk-34QIGWCT.mjs.map +1 -0
  39. package/dist/chunk-3FPMWAQT.js +30 -0
  40. package/dist/chunk-3FPMWAQT.js.map +1 -0
  41. package/dist/chunk-3HMT3DQV.js +104 -0
  42. package/dist/chunk-3HMT3DQV.js.map +1 -0
  43. package/dist/chunk-4WAO7CUT.mjs +95 -0
  44. package/dist/chunk-4WAO7CUT.mjs.map +1 -0
  45. package/dist/chunk-5M47B2XJ.js +4096 -0
  46. package/dist/chunk-5M47B2XJ.js.map +1 -0
  47. package/dist/chunk-5QX4TO4F.js +61 -0
  48. package/dist/chunk-5QX4TO4F.js.map +1 -0
  49. package/dist/chunk-5TEFN2CW.js +97 -0
  50. package/dist/chunk-5TEFN2CW.js.map +1 -0
  51. package/dist/chunk-5TES5PG6.js +41 -0
  52. package/dist/chunk-5TES5PG6.js.map +1 -0
  53. package/dist/chunk-5TVMECVF.js +148 -0
  54. package/dist/chunk-5TVMECVF.js.map +1 -0
  55. package/dist/chunk-5WGNZX7Z.mjs +27 -0
  56. package/dist/chunk-5WGNZX7Z.mjs.map +1 -0
  57. package/dist/chunk-AQ3OIM2T.js +103 -0
  58. package/dist/chunk-AQ3OIM2T.js.map +1 -0
  59. package/dist/chunk-AU5NTBK3.js +361 -0
  60. package/dist/chunk-AU5NTBK3.js.map +1 -0
  61. package/dist/chunk-DJHGCJR4.mjs +224 -0
  62. package/dist/chunk-DJHGCJR4.mjs.map +1 -0
  63. package/dist/chunk-DPUTW5KD.mjs +74 -0
  64. package/dist/chunk-DPUTW5KD.mjs.map +1 -0
  65. package/dist/chunk-E53FHDVN.mjs +336 -0
  66. package/dist/chunk-E53FHDVN.mjs.map +1 -0
  67. package/dist/chunk-ECRQD7UU.js +82 -0
  68. package/dist/chunk-ECRQD7UU.js.map +1 -0
  69. package/dist/chunk-FB4ESGOX.mjs +59 -0
  70. package/dist/chunk-FB4ESGOX.mjs.map +1 -0
  71. package/dist/chunk-FDX4IQK5.js +76 -0
  72. package/dist/chunk-FDX4IQK5.js.map +1 -0
  73. package/dist/chunk-FOMIUDRM.js +96 -0
  74. package/dist/chunk-FOMIUDRM.js.map +1 -0
  75. package/dist/chunk-FR5F3VTU.js +139 -0
  76. package/dist/chunk-FR5F3VTU.js.map +1 -0
  77. package/dist/chunk-GW53LH3I.mjs +81 -0
  78. package/dist/chunk-GW53LH3I.mjs.map +1 -0
  79. package/dist/chunk-GXMRIT5E.mjs +94 -0
  80. package/dist/chunk-GXMRIT5E.mjs.map +1 -0
  81. package/dist/chunk-IANSI7F7.mjs +393 -0
  82. package/dist/chunk-IANSI7F7.mjs.map +1 -0
  83. package/dist/chunk-IDM6MZHF.js +415 -0
  84. package/dist/chunk-IDM6MZHF.js.map +1 -0
  85. package/dist/chunk-J5ZYQ3TP.js +104 -0
  86. package/dist/chunk-J5ZYQ3TP.js.map +1 -0
  87. package/dist/chunk-KPAUBWZA.mjs +39 -0
  88. package/dist/chunk-KPAUBWZA.mjs.map +1 -0
  89. package/dist/chunk-L7P2NDST.mjs +124 -0
  90. package/dist/chunk-L7P2NDST.mjs.map +1 -0
  91. package/dist/chunk-LZWKMQJL.mjs +3886 -0
  92. package/dist/chunk-LZWKMQJL.mjs.map +1 -0
  93. package/dist/chunk-M6OWN7QH.js +118 -0
  94. package/dist/chunk-M6OWN7QH.js.map +1 -0
  95. package/dist/chunk-MQVHREEI.js +448 -0
  96. package/dist/chunk-MQVHREEI.js.map +1 -0
  97. package/dist/chunk-MT47ECUN.js +127 -0
  98. package/dist/chunk-MT47ECUN.js.map +1 -0
  99. package/dist/chunk-N6U54JI4.mjs +126 -0
  100. package/dist/chunk-N6U54JI4.mjs.map +1 -0
  101. package/dist/chunk-NDG4LR3Q.js +139 -0
  102. package/dist/chunk-NDG4LR3Q.js.map +1 -0
  103. package/dist/chunk-PPD4BU4W.mjs +80 -0
  104. package/dist/chunk-PPD4BU4W.mjs.map +1 -0
  105. package/dist/chunk-PU5NO5EZ.js +4 -0
  106. package/dist/chunk-PU5NO5EZ.js.map +1 -0
  107. package/dist/chunk-Q442ZDTI.mjs +117 -0
  108. package/dist/chunk-Q442ZDTI.mjs.map +1 -0
  109. package/dist/chunk-QH23RO3C.mjs +137 -0
  110. package/dist/chunk-QH23RO3C.mjs.map +1 -0
  111. package/dist/chunk-REBHUF4L.js +226 -0
  112. package/dist/chunk-REBHUF4L.js.map +1 -0
  113. package/dist/chunk-RGB3QLQT.js +275 -0
  114. package/dist/chunk-RGB3QLQT.js.map +1 -0
  115. package/dist/chunk-T7U2QRLC.js +94 -0
  116. package/dist/chunk-T7U2QRLC.js.map +1 -0
  117. package/dist/chunk-TEHHJ3CS.mjs +73 -0
  118. package/dist/chunk-TEHHJ3CS.mjs.map +1 -0
  119. package/dist/chunk-TJY4MIBC.js +117 -0
  120. package/dist/chunk-TJY4MIBC.js.map +1 -0
  121. package/dist/chunk-VCMZQOQM.mjs +102 -0
  122. package/dist/chunk-VCMZQOQM.mjs.map +1 -0
  123. package/dist/chunk-VKN4H4WI.mjs +3 -0
  124. package/dist/chunk-VKN4H4WI.mjs.map +1 -0
  125. package/dist/chunk-VSB25XTY.js +12 -0
  126. package/dist/chunk-VSB25XTY.js.map +1 -0
  127. package/dist/chunk-VWTE74UT.mjs +96 -0
  128. package/dist/chunk-VWTE74UT.mjs.map +1 -0
  129. package/dist/chunk-WBTL7PBV.js +105 -0
  130. package/dist/chunk-WBTL7PBV.js.map +1 -0
  131. package/dist/chunk-WOK3EP3O.js +83 -0
  132. package/dist/chunk-WOK3EP3O.js.map +1 -0
  133. package/dist/chunk-WWT73GGM.mjs +83 -0
  134. package/dist/chunk-WWT73GGM.mjs.map +1 -0
  135. package/dist/chunk-XBDXTRK3.mjs +102 -0
  136. package/dist/chunk-XBDXTRK3.mjs.map +1 -0
  137. package/dist/chunk-YGBEKZWU.mjs +81 -0
  138. package/dist/chunk-YGBEKZWU.mjs.map +1 -0
  139. package/dist/chunk-YVFLRPFV.mjs +72 -0
  140. package/dist/chunk-YVFLRPFV.mjs.map +1 -0
  141. package/dist/chunk-ZMVBIQ2Z.mjs +253 -0
  142. package/dist/chunk-ZMVBIQ2Z.mjs.map +1 -0
  143. package/dist/chunk-ZWCMSHDP.mjs +425 -0
  144. package/dist/chunk-ZWCMSHDP.mjs.map +1 -0
  145. package/dist/flat/index.d.mts +13 -0
  146. package/dist/flat/index.d.ts +13 -0
  147. package/dist/flat/index.js +31 -0
  148. package/dist/flat/index.js.map +1 -0
  149. package/dist/flat/index.mjs +10 -0
  150. package/dist/flat/index.mjs.map +1 -0
  151. package/dist/flat/segment.d.mts +39 -0
  152. package/dist/flat/segment.d.ts +39 -0
  153. package/dist/flat/segment.js +13 -0
  154. package/dist/flat/segment.js.map +1 -0
  155. package/dist/flat/segment.mjs +4 -0
  156. package/dist/flat/segment.mjs.map +1 -0
  157. package/dist/flat/select.d.mts +58 -0
  158. package/dist/flat/select.d.ts +58 -0
  159. package/dist/flat/select.js +14 -0
  160. package/dist/flat/select.js.map +1 -0
  161. package/dist/flat/select.mjs +5 -0
  162. package/dist/flat/select.mjs.map +1 -0
  163. package/dist/flat/tooltip.d.mts +98 -0
  164. package/dist/flat/tooltip.d.ts +98 -0
  165. package/dist/flat/tooltip.js +17 -0
  166. package/dist/flat/tooltip.js.map +1 -0
  167. package/dist/flat/tooltip.mjs +4 -0
  168. package/dist/flat/tooltip.mjs.map +1 -0
  169. package/dist/icon/index.d.mts +1258 -0
  170. package/dist/icon/index.d.ts +1258 -0
  171. package/dist/icon/index.js +1672 -0
  172. package/dist/icon/index.js.map +1 -0
  173. package/dist/icon/index.mjs +3 -0
  174. package/dist/icon/index.mjs.map +1 -0
  175. package/dist/index-CXip5Wb1.d.mts +62 -0
  176. package/dist/index-Drz3P-6Y.d.ts +62 -0
  177. package/dist/index.d.mts +37 -0
  178. package/dist/index.d.ts +37 -0
  179. package/dist/index.js +150 -0
  180. package/dist/index.js.map +1 -0
  181. package/dist/index.mjs +29 -0
  182. package/dist/index.mjs.map +1 -0
  183. package/dist/input/index.d.mts +82 -0
  184. package/dist/input/index.d.ts +82 -0
  185. package/dist/input/index.js +22 -0
  186. package/dist/input/index.js.map +1 -0
  187. package/dist/input/index.mjs +5 -0
  188. package/dist/input/index.mjs.map +1 -0
  189. package/dist/loading/index.d.mts +54 -0
  190. package/dist/loading/index.d.ts +54 -0
  191. package/dist/loading/index.js +12 -0
  192. package/dist/loading/index.js.map +1 -0
  193. package/dist/loading/index.mjs +3 -0
  194. package/dist/loading/index.mjs.map +1 -0
  195. package/dist/messageBox/index.d.mts +33 -0
  196. package/dist/messageBox/index.d.ts +33 -0
  197. package/dist/messageBox/index.js +13 -0
  198. package/dist/messageBox/index.js.map +1 -0
  199. package/dist/messageBox/index.mjs +4 -0
  200. package/dist/messageBox/index.mjs.map +1 -0
  201. package/dist/modal/index.d.mts +97 -0
  202. package/dist/modal/index.d.ts +97 -0
  203. package/dist/modal/index.js +15 -0
  204. package/dist/modal/index.js.map +1 -0
  205. package/dist/modal/index.mjs +6 -0
  206. package/dist/modal/index.mjs.map +1 -0
  207. package/dist/picker/index.d.mts +12 -0
  208. package/dist/picker/index.d.ts +12 -0
  209. package/dist/picker/index.js +13 -0
  210. package/dist/picker/index.js.map +1 -0
  211. package/dist/picker/index.mjs +4 -0
  212. package/dist/picker/index.mjs.map +1 -0
  213. package/dist/progress/index.d.mts +36 -0
  214. package/dist/progress/index.d.ts +36 -0
  215. package/dist/progress/index.js +12 -0
  216. package/dist/progress/index.js.map +1 -0
  217. package/dist/progress/index.mjs +3 -0
  218. package/dist/progress/index.mjs.map +1 -0
  219. package/dist/radio/index.d.mts +39 -0
  220. package/dist/radio/index.d.ts +39 -0
  221. package/dist/radio/index.js +12 -0
  222. package/dist/radio/index.js.map +1 -0
  223. package/dist/radio/index.mjs +3 -0
  224. package/dist/radio/index.mjs.map +1 -0
  225. package/dist/scrollArea/index.d.mts +31 -0
  226. package/dist/scrollArea/index.d.ts +31 -0
  227. package/dist/scrollArea/index.js +16 -0
  228. package/dist/scrollArea/index.js.map +1 -0
  229. package/dist/scrollArea/index.mjs +3 -0
  230. package/dist/scrollArea/index.mjs.map +1 -0
  231. package/dist/segment/index.d.mts +46 -0
  232. package/dist/segment/index.d.ts +46 -0
  233. package/dist/segment/index.js +12 -0
  234. package/dist/segment/index.js.map +1 -0
  235. package/dist/segment/index.mjs +3 -0
  236. package/dist/segment/index.mjs.map +1 -0
  237. package/dist/star/index.d.mts +30 -0
  238. package/dist/star/index.d.ts +30 -0
  239. package/dist/star/index.js +12 -0
  240. package/dist/star/index.js.map +1 -0
  241. package/dist/star/index.mjs +3 -0
  242. package/dist/star/index.mjs.map +1 -0
  243. package/dist/switch/index.d.mts +32 -0
  244. package/dist/switch/index.d.ts +32 -0
  245. package/dist/switch/index.js +12 -0
  246. package/dist/switch/index.js.map +1 -0
  247. package/dist/switch/index.mjs +3 -0
  248. package/dist/switch/index.mjs.map +1 -0
  249. package/dist/tabs/index.d.mts +52 -0
  250. package/dist/tabs/index.d.ts +52 -0
  251. package/dist/tabs/index.js +12 -0
  252. package/dist/tabs/index.js.map +1 -0
  253. package/dist/tabs/index.mjs +3 -0
  254. package/dist/tabs/index.mjs.map +1 -0
  255. package/dist/tag/index.d.mts +68 -0
  256. package/dist/tag/index.d.ts +68 -0
  257. package/dist/tag/index.js +17 -0
  258. package/dist/tag/index.js.map +1 -0
  259. package/dist/tag/index.mjs +4 -0
  260. package/dist/tag/index.mjs.map +1 -0
  261. package/dist/toast/index.d.mts +175 -0
  262. package/dist/toast/index.d.ts +175 -0
  263. package/dist/toast/index.js +25 -0
  264. package/dist/toast/index.js.map +1 -0
  265. package/dist/toast/index.mjs +4 -0
  266. package/dist/toast/index.mjs.map +1 -0
  267. package/dist/tooltip/index.d.mts +26 -0
  268. package/dist/tooltip/index.d.ts +26 -0
  269. package/dist/tooltip/index.js +12 -0
  270. package/dist/tooltip/index.js.map +1 -0
  271. package/dist/tooltip/index.mjs +3 -0
  272. package/dist/tooltip/index.mjs.map +1 -0
  273. package/package.json +251 -0
  274. package/styles.css +20 -0
@@ -0,0 +1,118 @@
1
+ 'use strict';
2
+
3
+ var utils = require('@exem-ui/core/utils');
4
+ var SwitchPrimitives = require('@radix-ui/react-switch');
5
+ var react = require('react');
6
+ var jsxRuntime = require('react/jsx-runtime');
7
+
8
+ function _interopNamespace(e) {
9
+ if (e && e.__esModule) return e;
10
+ var n = Object.create(null);
11
+ if (e) {
12
+ Object.keys(e).forEach(function (k) {
13
+ if (k !== 'default') {
14
+ var d = Object.getOwnPropertyDescriptor(e, k);
15
+ Object.defineProperty(n, k, d.get ? d : {
16
+ enumerable: true,
17
+ get: function () { return e[k]; }
18
+ });
19
+ }
20
+ });
21
+ }
22
+ n.default = e;
23
+ return Object.freeze(n);
24
+ }
25
+
26
+ var SwitchPrimitives__namespace = /*#__PURE__*/_interopNamespace(SwitchPrimitives);
27
+
28
+ // src/switch/Switch.tsx
29
+ var switchVariants = utils.cva(
30
+ "peer relative inline-flex shrink-0 cursor-pointer items-center rounded-full disabled:cursor-not-allowed data-[state=checked]:bg-solid-accent-default data-[state=unchecked]:bg-elevation-elevation-4 hover:data-[state=checked]:bg-solid-accent-hovered hover:data-[state=unchecked]:bg-elevation-elevation-5 disabled:data-[state=checked]:bg-solid-accent-disabled disabled:data-[state=unchecked]:bg-elevation-elevation-3 disabled:hover:data-[state=checked]:bg-solid-accent-disabled disabled:hover:data-[state=unchecked]:bg-elevation-elevation-3",
31
+ {
32
+ variants: {
33
+ size: {
34
+ small: "h-[16px] w-[28px]",
35
+ medium: "h-[20px] w-[36px]",
36
+ large: "h-[24px] w-[44px]"
37
+ }
38
+ },
39
+ defaultVariants: {
40
+ size: "medium"
41
+ }
42
+ }
43
+ );
44
+ var switchThumbVariants = utils.cva(
45
+ "pointer-events-none absolute bg-icon-static-light left-[2px] top-[2px] rounded-full ring-0 data-[state=unchecked]:translate-x-0 data-[disabled]:bg-icon-inverse-disabled",
46
+ {
47
+ variants: {
48
+ size: {
49
+ small: "size-[12px] data-[state=checked]:translate-x-[12px]",
50
+ medium: "size-[16px] data-[state=checked]:translate-x-[16px]",
51
+ large: "size-[20px] data-[state=checked]:translate-x-[20px]"
52
+ }
53
+ },
54
+ defaultVariants: {
55
+ size: "medium"
56
+ }
57
+ }
58
+ );
59
+ var containerVariants = utils.cva("inline-flex items-center", {
60
+ variants: {
61
+ size: {
62
+ small: "gap-1",
63
+ medium: "gap-1.5",
64
+ large: "gap-2"
65
+ },
66
+ labelPosition: {
67
+ right: "flex-row",
68
+ left: "flex-row-reverse"
69
+ }
70
+ },
71
+ defaultVariants: {
72
+ size: "medium",
73
+ labelPosition: "right"
74
+ }
75
+ });
76
+ var switchLabelVariants = utils.cva(
77
+ "cursor-pointer select-none font-regular text-text-primary peer-disabled:cursor-not-allowed peer-disabled:text-text-disabled",
78
+ {
79
+ variants: {
80
+ size: {
81
+ small: "text-body-3",
82
+ medium: "text-body-2",
83
+ large: "text-body-1"
84
+ }
85
+ },
86
+ defaultVariants: {
87
+ size: "medium"
88
+ }
89
+ }
90
+ );
91
+ var Switch = react.forwardRef(
92
+ ({ className, size = "medium", label, labelPosition = "right", id, ...props }, ref) => {
93
+ const switchId = react.useId();
94
+ const finalId = id || switchId;
95
+ const switchElement = /* @__PURE__ */ jsxRuntime.jsx(
96
+ SwitchPrimitives__namespace.Root,
97
+ {
98
+ id: finalId,
99
+ className: utils.cn(switchVariants({ size }), className),
100
+ ...props,
101
+ ref,
102
+ children: /* @__PURE__ */ jsxRuntime.jsx(SwitchPrimitives__namespace.Thumb, { className: utils.cn(switchThumbVariants({ size })) })
103
+ }
104
+ );
105
+ if (!label) {
106
+ return switchElement;
107
+ }
108
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: utils.cn(containerVariants({ size, labelPosition })), children: [
109
+ switchElement,
110
+ /* @__PURE__ */ jsxRuntime.jsx("label", { htmlFor: finalId, className: utils.cn(switchLabelVariants({ size })), children: label })
111
+ ] });
112
+ }
113
+ );
114
+ Switch.displayName = SwitchPrimitives__namespace.Root.displayName;
115
+
116
+ exports.Switch = Switch;
117
+ //# sourceMappingURL=chunk-M6OWN7QH.js.map
118
+ //# sourceMappingURL=chunk-M6OWN7QH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/switch/Switch.tsx"],"names":["cva","forwardRef","useId","jsx","SwitchPrimitives","cn","jsxs"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,IAAM,cAAA,GAAiBA,SAAA;AAAA,EACrB,2hBAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,MAAA,EAAQ,mBAAA;AAAA,QACR,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA;AAEA,IAAM,mBAAA,GAAsBA,SAAA;AAAA,EAC1B,0KAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,KAAA,EAAO,qDAAA;AAAA,QACP,MAAA,EAAQ,qDAAA;AAAA,QACR,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA;AAEA,IAAM,iBAAA,GAAoBA,UAAI,0BAAA,EAA4B;AAAA,EACxD,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,KAAA,EAAO,OAAA;AAAA,MACP,MAAA,EAAQ,SAAA;AAAA,MACR,KAAA,EAAO;AAAA,KACT;AAAA,IACA,aAAA,EAAe;AAAA,MACb,KAAA,EAAO,UAAA;AAAA,MACP,IAAA,EAAM;AAAA;AACR,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM,QAAA;AAAA,IACN,aAAA,EAAe;AAAA;AAEnB,CAAC,CAAA;AAED,IAAM,mBAAA,GAAsBA,SAAA;AAAA,EAC1B,6HAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,MAAA,EAAQ,aAAA;AAAA,QACR,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA;AA6BA,IAAM,MAAA,GAASC,gBAAA;AAAA,EACb,CAAC,EAAE,SAAA,EAAW,IAAA,GAAO,QAAA,EAAU,KAAA,EAAO,aAAA,GAAgB,OAAA,EAAS,EAAA,EAAI,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAErF,IAAA,MAAM,WAAWC,WAAA,EAAM;AACvB,IAAA,MAAM,UAAU,EAAA,IAAM,QAAA;AAEtB,IAAA,MAAM,aAAA,mBACJC,cAAA;AAAA,MAAkBC,2BAAA,CAAA,IAAA;AAAA,MAAjB;AAAA,QACC,EAAA,EAAI,OAAA;AAAA,QACJ,WAAWC,QAAA,CAAG,cAAA,CAAe,EAAE,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,QAChD,GAAG,KAAA;AAAA,QACJ,GAAA;AAAA,QAEA,QAAA,kBAAAF,cAAA,CAAkBC,2BAAA,CAAA,KAAA,EAAjB,EAAuB,SAAA,EAAWC,QAAA,CAAG,oBAAoB,EAAE,IAAA,EAAM,CAAC,CAAA,EAAG;AAAA;AAAA,KACxE;AAGF,IAAA,IAAI,CAAC,KAAA,EAAO;AACV,MAAA,OAAO,aAAA;AAAA,IACT;AAEA,IAAA,uBACEC,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWD,QAAA,CAAG,iBAAA,CAAkB,EAAE,IAAA,EAAM,aAAA,EAAe,CAAC,CAAA,EAC1D,QAAA,EAAA;AAAA,MAAA,aAAA;AAAA,sBACDF,cAAA,CAAC,OAAA,EAAA,EAAM,OAAA,EAAS,OAAA,EAAS,SAAA,EAAWE,QAAA,CAAG,mBAAA,CAAoB,EAAE,IAAA,EAAM,CAAC,CAAA,EACjE,QAAA,EAAA,KAAA,EACH;AAAA,KAAA,EACF,CAAA;AAAA,EAEJ;AACF;AAEA,MAAA,CAAO,cAA+BD,2BAAA,CAAA,IAAA,CAAK,WAAA","file":"chunk-M6OWN7QH.js","sourcesContent":["import { cn, cva, type VariantProps } from '@exem-ui/core/utils';\nimport * as SwitchPrimitives from '@radix-ui/react-switch';\nimport type React from 'react';\nimport { forwardRef, useId } from 'react';\n\nconst switchVariants = cva(\n 'peer relative inline-flex shrink-0 cursor-pointer items-center rounded-full disabled:cursor-not-allowed data-[state=checked]:bg-solid-accent-default data-[state=unchecked]:bg-elevation-elevation-4 hover:data-[state=checked]:bg-solid-accent-hovered hover:data-[state=unchecked]:bg-elevation-elevation-5 disabled:data-[state=checked]:bg-solid-accent-disabled disabled:data-[state=unchecked]:bg-elevation-elevation-3 disabled:hover:data-[state=checked]:bg-solid-accent-disabled disabled:hover:data-[state=unchecked]:bg-elevation-elevation-3',\n {\n variants: {\n size: {\n small: 'h-[16px] w-[28px]',\n medium: 'h-[20px] w-[36px]',\n large: 'h-[24px] w-[44px]',\n },\n },\n defaultVariants: {\n size: 'medium',\n },\n },\n);\n\nconst switchThumbVariants = cva(\n 'pointer-events-none absolute bg-icon-static-light left-[2px] top-[2px] rounded-full ring-0 data-[state=unchecked]:translate-x-0 data-[disabled]:bg-icon-inverse-disabled',\n {\n variants: {\n size: {\n small: 'size-[12px] data-[state=checked]:translate-x-[12px]',\n medium: 'size-[16px] data-[state=checked]:translate-x-[16px]',\n large: 'size-[20px] data-[state=checked]:translate-x-[20px]',\n },\n },\n defaultVariants: {\n size: 'medium',\n },\n },\n);\n\nconst containerVariants = cva('inline-flex items-center', {\n variants: {\n size: {\n small: 'gap-1',\n medium: 'gap-1.5',\n large: 'gap-2',\n },\n labelPosition: {\n right: 'flex-row',\n left: 'flex-row-reverse',\n },\n },\n defaultVariants: {\n size: 'medium',\n labelPosition: 'right',\n },\n});\n\nconst switchLabelVariants = cva(\n 'cursor-pointer select-none font-regular text-text-primary peer-disabled:cursor-not-allowed peer-disabled:text-text-disabled',\n {\n variants: {\n size: {\n small: 'text-body-3',\n medium: 'text-body-2',\n large: 'text-body-1',\n },\n },\n defaultVariants: {\n size: 'medium',\n },\n },\n);\n\ninterface SwitchProps\n extends React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>,\n VariantProps<typeof switchVariants> {\n /** 스위치 옆에 표시할 레이블 텍스트 */\n label?: string;\n /**\n * 레이블 위치\n * @default 'right'\n */\n labelPosition?: 'left' | 'right';\n}\n\ntype SwitchComponent = React.ForwardRefExoticComponent<\n SwitchProps & React.RefAttributes<HTMLButtonElement>\n>;\n\n/**\n * 켜기/끄기 상태를 전환하는 스위치 컴포넌트입니다.\n *\n * @example\n * ```tsx\n * <Switch label=\"알림 받기\" size=\"medium\" />\n * <Switch label=\"다크 모드\" labelPosition=\"left\" defaultChecked />\n * ```\n *\n * @see {@link SwitchProps} props 상세\n */\nconst Switch = forwardRef<React.ElementRef<typeof SwitchPrimitives.Root>, SwitchProps>(\n ({ className, size = 'medium', label, labelPosition = 'right', id, ...props }, ref) => {\n // 고유한 ID 생성 (접근성을 위해)\n const switchId = useId();\n const finalId = id || switchId;\n\n const switchElement = (\n <SwitchPrimitives.Root\n id={finalId}\n className={cn(switchVariants({ size }), className)}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb className={cn(switchThumbVariants({ size }))} />\n </SwitchPrimitives.Root>\n );\n\n if (!label) {\n return switchElement;\n }\n\n return (\n <div className={cn(containerVariants({ size, labelPosition }))}>\n {switchElement}\n <label htmlFor={finalId} className={cn(switchLabelVariants({ size }))}>\n {label}\n </label>\n </div>\n );\n },\n) as SwitchComponent;\n\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\nexport { Switch };\nexport type { SwitchComponent, SwitchProps };\n"]}
@@ -0,0 +1,448 @@
1
+ 'use strict';
2
+
3
+ var chunk5M47B2XJ_js = require('./chunk-5M47B2XJ.js');
4
+ var utils = require('@exem-ui/core/utils');
5
+ var SelectPrimitive = require('@radix-ui/react-select');
6
+ var React = require('react');
7
+ var jsxRuntime = require('react/jsx-runtime');
8
+
9
+ function _interopNamespace(e) {
10
+ if (e && e.__esModule) return e;
11
+ var n = Object.create(null);
12
+ if (e) {
13
+ Object.keys(e).forEach(function (k) {
14
+ if (k !== 'default') {
15
+ var d = Object.getOwnPropertyDescriptor(e, k);
16
+ Object.defineProperty(n, k, d.get ? d : {
17
+ enumerable: true,
18
+ get: function () { return e[k]; }
19
+ });
20
+ }
21
+ });
22
+ }
23
+ n.default = e;
24
+ return Object.freeze(n);
25
+ }
26
+
27
+ var SelectPrimitive__namespace = /*#__PURE__*/_interopNamespace(SelectPrimitive);
28
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
29
+
30
+ var commonInputVariants = {
31
+ // Container variants - 전체 컴포넌트 래퍼
32
+ container: utils.cva("flex flex-col"),
33
+ // Label variants - 라벨 텍스트
34
+ label: utils.cva("inline-block font-regular text-text-primary", {
35
+ variants: {
36
+ size: {
37
+ xsmall: "mb-[2px] text-body-3",
38
+ small: "mb-[4px] text-body-2",
39
+ medium: "mb-[4px] text-body-2",
40
+ large: "mb-[6px] text-body-1"
41
+ },
42
+ disabled: {
43
+ true: "text-text-disabled"
44
+ },
45
+ required: {
46
+ true: 'after:ml-0.5 after:text-text-critical after:content-["*"]'
47
+ }
48
+ },
49
+ compoundVariants: [
50
+ {
51
+ required: true,
52
+ disabled: true,
53
+ className: "after:text-text-disabled"
54
+ }
55
+ ],
56
+ defaultVariants: { size: "medium" }
57
+ }),
58
+ // Description variants - 설명 텍스트
59
+ description: utils.cva("mt-0.5 inline-block text-text-tertiary", {
60
+ variants: {
61
+ size: {
62
+ xsmall: "text-caption",
63
+ small: "text-body-3",
64
+ medium: "text-body-3",
65
+ large: "text-body-2"
66
+ },
67
+ error: {
68
+ true: "text-text-critical"
69
+ },
70
+ disabled: {
71
+ true: "text-text-disabled"
72
+ }
73
+ },
74
+ compoundVariants: [
75
+ {
76
+ error: true,
77
+ disabled: true,
78
+ className: "text-text-disabled"
79
+ // disabled 우선 적용
80
+ }
81
+ ],
82
+ defaultVariants: { size: "medium" }
83
+ }),
84
+ // Icon variants - 아이콘 크기
85
+ icon: utils.cva("shrink-0", {
86
+ variants: {
87
+ size: {
88
+ xsmall: "size-4",
89
+ small: "size-4",
90
+ medium: "size-4",
91
+ large: "size-5"
92
+ }
93
+ },
94
+ defaultVariants: { size: "medium" }
95
+ })
96
+ };
97
+
98
+ // src/input/selectVariants.ts
99
+ var selectVariants = {
100
+ container: commonInputVariants.container,
101
+ content: utils.cn(
102
+ "relative border border-border-primary z-50 min-w-[8rem] overflow-hidden rounded-medium bg-background-overlay shadow-weak",
103
+ "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",
104
+ "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1"
105
+ ),
106
+ description: commonInputVariants.description,
107
+ iconSize: commonInputVariants.icon,
108
+ item: utils.cva(
109
+ "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",
110
+ {
111
+ defaultVariants: { size: "medium" },
112
+ variants: {
113
+ size: {
114
+ xsmall: "h-6",
115
+ small: "h-7",
116
+ medium: "h-8",
117
+ large: "h-10"
118
+ }
119
+ }
120
+ }
121
+ ),
122
+ itemText: utils.cva("truncate flex items-center flex-1 min-w-0", {
123
+ defaultVariants: { size: "medium" },
124
+ variants: {
125
+ size: {
126
+ xsmall: "h-6",
127
+ small: "h-7",
128
+ medium: "h-8",
129
+ large: "h-10"
130
+ }
131
+ }
132
+ }),
133
+ label: commonInputVariants.label,
134
+ trigger: utils.cva(
135
+ "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",
136
+ {
137
+ compoundVariants: [
138
+ {
139
+ className: "border-border-accent text-tint-foreground-sky bg-elevation-accent [&[data-placeholder]]:text-tint-foreground-sky [&_svg]:text-tint-foreground-sky",
140
+ focus: true,
141
+ variant: "line"
142
+ },
143
+ // active + fill: 배경만 accent로 변경
144
+ {
145
+ className: "bg-elevation-accent text-tint-foreground-sky [&[data-placeholder]]:text-tint-foreground-sky [&_svg]:text-tint-foreground-sky",
146
+ active: true,
147
+ variant: "fill"
148
+ },
149
+ // active + line: 배경 accent + 테두리 accent
150
+ {
151
+ className: "bg-elevation-accent border-border-accent text-tint-foreground-sky [&[data-placeholder]]:text-tint-foreground-sky [&_svg]:text-tint-foreground-sky",
152
+ active: true,
153
+ variant: "line"
154
+ }
155
+ ],
156
+ defaultVariants: {
157
+ active: false,
158
+ error: false,
159
+ focus: false,
160
+ size: "medium",
161
+ variant: "fill"
162
+ },
163
+ variants: {
164
+ active: {
165
+ false: "",
166
+ true: ""
167
+ },
168
+ error: {
169
+ false: "",
170
+ true: "border !border-border-critical"
171
+ },
172
+ focus: {
173
+ false: "",
174
+ // 현재는 line 타입만 focus 가능
175
+ true: ""
176
+ },
177
+ size: {
178
+ xsmall: "h-6 px-[4px] text-body-3",
179
+ small: "h-7 px-[6px] text-body-2",
180
+ medium: "h-8 px-[8px] text-body-2",
181
+ large: "h-10 px-[10px] text-body-1"
182
+ },
183
+ variant: {
184
+ fill: "bg-elevation-elevation-2",
185
+ line: "border-border-primary border"
186
+ }
187
+ }
188
+ }
189
+ ),
190
+ triggerInner: utils.cva("flex w-full items-center", {
191
+ defaultVariants: { size: "medium" },
192
+ variants: {
193
+ size: {
194
+ xsmall: "gap-0",
195
+ small: "gap-[2px]",
196
+ medium: "gap-[2px]",
197
+ large: "gap-[4px]"
198
+ }
199
+ }
200
+ }),
201
+ viewport: utils.cn("flex flex-col gap-0.5 p-1")
202
+ };
203
+ var SelectContext = React.createContext(null);
204
+ var useSelectContext = () => {
205
+ const context = React.useContext(SelectContext);
206
+ if (!context) {
207
+ throw new Error("Select components must be used within a Select");
208
+ }
209
+ return context;
210
+ };
211
+ var SelectGroupContext = React.createContext(null);
212
+ var useSelectGroupContext = () => {
213
+ return React.useContext(SelectGroupContext);
214
+ };
215
+ var Select = React.forwardRef(
216
+ ({
217
+ children,
218
+ size = "medium",
219
+ variant = "fill",
220
+ error = false,
221
+ disabled = false,
222
+ focus = false,
223
+ active = false,
224
+ className,
225
+ ...selectProps
226
+ }, ref) => {
227
+ const uniqueId = React.useId();
228
+ const id = `select-${uniqueId}`;
229
+ return /* @__PURE__ */ jsxRuntime.jsx(SelectContext.Provider, { value: { active, disabled, error, focus, id, size, variant }, children: /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: utils.cn(selectVariants.container(), className), children: /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Root, { disabled, ...selectProps, children }) }) });
230
+ }
231
+ );
232
+ Select.Value = React.forwardRef(({ className, children, ...props }, ref) => {
233
+ return /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Value, { ref, className, ...props, children });
234
+ });
235
+ Select.Trigger = React.forwardRef(
236
+ ({ className, children, leftIcon, ...props }, ref) => {
237
+ const { size, error, id, variant, focus, active } = useSelectContext();
238
+ const groupContext = useSelectGroupContext();
239
+ const groupClasses = groupContext ? utils.cn("rounded-none border-0", {
240
+ "rounded-l-medium": groupContext.isFirstChild,
241
+ "rounded-r-medium": groupContext.isLastChild,
242
+ // line variant: group이 외곽 border를 제공하므로, open 시 border 대신 inset ring 사용
243
+ "data-[state=open]:border-0 data-[state=open]:ring-1 data-[state=open]:ring-inset data-[state=open]:ring-border-focused": variant === "line"
244
+ }) : void 0;
245
+ return /* @__PURE__ */ jsxRuntime.jsx(
246
+ SelectPrimitive__namespace.Trigger,
247
+ {
248
+ ref,
249
+ id,
250
+ "data-slot": "select-trigger",
251
+ className: utils.cn(
252
+ selectVariants.trigger({ active, error, focus, size, variant }),
253
+ groupClasses,
254
+ className
255
+ ),
256
+ ...props,
257
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: utils.cn(selectVariants.triggerInner({ size })), children: [
258
+ leftIcon && /* @__PURE__ */ jsxRuntime.jsx(
259
+ "span",
260
+ {
261
+ className: utils.cn(
262
+ selectVariants.iconSize({ size }),
263
+ "flex items-center justify-center group-disabled:text-icon-disabled"
264
+ ),
265
+ children: leftIcon
266
+ }
267
+ ),
268
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 flex-1 truncate text-left", children }),
269
+ /* @__PURE__ */ jsxRuntime.jsx(
270
+ chunk5M47B2XJ_js.ChevronDown,
271
+ {
272
+ type: "regular",
273
+ className: utils.cn(
274
+ selectVariants.iconSize({ size }),
275
+ "transition-transform duration-200 group-data-[state=open]:rotate-180",
276
+ "group-disabled:text-icon-disabled"
277
+ )
278
+ }
279
+ )
280
+ ] })
281
+ }
282
+ );
283
+ }
284
+ );
285
+ Select.Box = React.forwardRef(
286
+ ({ placeholder, leftIcon, className, ...props }, ref) => {
287
+ return /* @__PURE__ */ jsxRuntime.jsx(Select.Trigger, { ref, leftIcon, className, ...props, children: /* @__PURE__ */ jsxRuntime.jsx(Select.Value, { placeholder }) });
288
+ }
289
+ );
290
+ Select.List = React.forwardRef(
291
+ ({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
292
+ SelectPrimitive__namespace.Content,
293
+ {
294
+ ref,
295
+ "data-slot": "select-content",
296
+ className: utils.cn(selectVariants.content, "max-h-60 ", className),
297
+ position: "popper",
298
+ ...props,
299
+ children: /* @__PURE__ */ jsxRuntime.jsx(
300
+ SelectPrimitive__namespace.Viewport,
301
+ {
302
+ "data-slot": "select-viewport",
303
+ className: utils.cn(
304
+ selectVariants.viewport,
305
+ "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
306
+ ),
307
+ children
308
+ }
309
+ )
310
+ }
311
+ ) })
312
+ );
313
+ Select.Label = React.forwardRef(
314
+ ({ children, required = false, size: sizeProp, className }, ref) => {
315
+ const { size: contextSize, disabled, id } = useSelectContext();
316
+ const groupContext = useSelectGroupContext();
317
+ const size = sizeProp ?? groupContext?.size ?? contextSize;
318
+ return /* @__PURE__ */ jsxRuntime.jsx(
319
+ "label",
320
+ {
321
+ ref,
322
+ htmlFor: id,
323
+ className: utils.cn(selectVariants.label({ disabled, required, size }), className),
324
+ children
325
+ }
326
+ );
327
+ }
328
+ );
329
+ Select.Item = React.forwardRef(
330
+ ({
331
+ className,
332
+ children,
333
+ leftIcon,
334
+ rightIcon,
335
+ leftIconSize,
336
+ rightIconSize,
337
+ size: sizeProp,
338
+ ...props
339
+ }, ref) => {
340
+ const { size: contextSize } = useSelectContext();
341
+ const groupContext = useSelectGroupContext();
342
+ const size = sizeProp ?? groupContext?.size ?? contextSize;
343
+ return /* @__PURE__ */ jsxRuntime.jsx(
344
+ SelectPrimitive__namespace.Item,
345
+ {
346
+ "data-slot": "select-item",
347
+ ref,
348
+ className: utils.cn(selectVariants.item({ size }), className),
349
+ ...props,
350
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-full items-center justify-between", children: [
351
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-full items-center gap-0.5", children: [
352
+ leftIcon && /* @__PURE__ */ jsxRuntime.jsx(
353
+ "span",
354
+ {
355
+ className: utils.cn(
356
+ selectVariants.iconSize({ size: leftIconSize ?? size }),
357
+ "flex items-center justify-center text-icon-primary"
358
+ ),
359
+ children: leftIcon
360
+ }
361
+ ),
362
+ /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemText, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: utils.cn(selectVariants.itemText({ size })), children }) })
363
+ ] }),
364
+ rightIcon && /* @__PURE__ */ jsxRuntime.jsx(
365
+ "span",
366
+ {
367
+ className: utils.cn(
368
+ selectVariants.iconSize({ size: rightIconSize ?? size }),
369
+ "flex items-center justify-center text-icon-primary"
370
+ ),
371
+ children: rightIcon
372
+ }
373
+ )
374
+ ] })
375
+ }
376
+ );
377
+ }
378
+ );
379
+ Select.Empty = React.forwardRef(
380
+ ({ children = "No data", className }, ref) => {
381
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: utils.cn("flex min-h-8 items-center justify-center p-2", className), children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-body-2 text-text-disabled", children }) });
382
+ }
383
+ );
384
+ Select.Description = React.forwardRef(
385
+ ({ children, size: sizeProp, className }, ref) => {
386
+ const { size: contextSize, error, disabled } = useSelectContext();
387
+ const groupContext = useSelectGroupContext();
388
+ const size = sizeProp ?? groupContext?.size ?? contextSize;
389
+ if (!children) {
390
+ return null;
391
+ }
392
+ return /* @__PURE__ */ jsxRuntime.jsx(
393
+ "div",
394
+ {
395
+ ref,
396
+ "data-slot": "select-description",
397
+ className: utils.cn(selectVariants.description({ disabled, error, size }), className),
398
+ children: /* @__PURE__ */ jsxRuntime.jsx("p", { children })
399
+ }
400
+ );
401
+ }
402
+ );
403
+ Select.Group = React.forwardRef(
404
+ ({ children, size = "medium", variant = "fill", hasBackground = false, className }, ref) => {
405
+ const childArray = React__namespace.Children.toArray(children);
406
+ return /* @__PURE__ */ jsxRuntime.jsx(
407
+ "div",
408
+ {
409
+ ref,
410
+ className: utils.cn(
411
+ "flex w-fit flex-row items-stretch overflow-clip rounded-medium",
412
+ variant === "line" && "border border-border-primary",
413
+ hasBackground && "bg-elevation-elevation-0",
414
+ className
415
+ ),
416
+ children: childArray.map((child, index) => {
417
+ const isFirst = index === 0;
418
+ const isLast = index === childArray.length - 1;
419
+ return /* @__PURE__ */ jsxRuntime.jsxs(React__namespace.Fragment, { children: [
420
+ /* @__PURE__ */ jsxRuntime.jsx(
421
+ SelectGroupContext.Provider,
422
+ {
423
+ value: { isFirstChild: isFirst, isLastChild: isLast, size, variant },
424
+ children: child
425
+ }
426
+ ),
427
+ !isLast && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-px self-stretch bg-border-primary" })
428
+ ] }, index);
429
+ })
430
+ }
431
+ );
432
+ }
433
+ );
434
+ Select.displayName = "Select";
435
+ Select.Label.displayName = "Select.Label";
436
+ Select.Trigger.displayName = "Select.Trigger";
437
+ Select.Box.displayName = "Select.Box";
438
+ Select.Value.displayName = "Select.Value";
439
+ Select.List.displayName = "Select.List";
440
+ Select.Item.displayName = "Select.Item";
441
+ Select.Empty.displayName = "Select.Empty";
442
+ Select.Description.displayName = "Select.Description";
443
+ Select.Group.displayName = "Select.Group";
444
+
445
+ exports.Select = Select;
446
+ exports.commonInputVariants = commonInputVariants;
447
+ //# sourceMappingURL=chunk-MQVHREEI.js.map
448
+ //# sourceMappingURL=chunk-MQVHREEI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/input/inputVariants.ts","../src/input/selectVariants.ts","../src/input/Select.tsx"],"names":["cva","cn","createContext","useContext","forwardRef","useId","jsx","SelectPrimitive","jsxs","ChevronDown","React"],"mappings":"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","file":"chunk-MQVHREEI.js","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"]}