mokona-ui 0.0.1

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 (388) hide show
  1. package/README.md +273 -0
  2. package/dist/accordion.cjs +13 -0
  3. package/dist/accordion.cjs.map +1 -0
  4. package/dist/accordion.d.cts +21 -0
  5. package/dist/accordion.d.ts +21 -0
  6. package/dist/accordion.js +4 -0
  7. package/dist/accordion.js.map +1 -0
  8. package/dist/alert.cjs +13 -0
  9. package/dist/alert.cjs.map +1 -0
  10. package/dist/alert.d.cts +14 -0
  11. package/dist/alert.d.ts +14 -0
  12. package/dist/alert.js +4 -0
  13. package/dist/alert.js.map +1 -0
  14. package/dist/amount.cjs +18 -0
  15. package/dist/amount.cjs.map +1 -0
  16. package/dist/amount.d.cts +39 -0
  17. package/dist/amount.d.ts +39 -0
  18. package/dist/amount.js +5 -0
  19. package/dist/amount.js.map +1 -0
  20. package/dist/avatar.cjs +13 -0
  21. package/dist/avatar.cjs.map +1 -0
  22. package/dist/avatar.d.cts +16 -0
  23. package/dist/avatar.d.ts +16 -0
  24. package/dist/avatar.js +4 -0
  25. package/dist/avatar.js.map +1 -0
  26. package/dist/badge.cjs +17 -0
  27. package/dist/badge.cjs.map +1 -0
  28. package/dist/badge.d.cts +13 -0
  29. package/dist/badge.d.ts +13 -0
  30. package/dist/badge.js +4 -0
  31. package/dist/badge.js.map +1 -0
  32. package/dist/bottom-sheet.cjs +14 -0
  33. package/dist/bottom-sheet.cjs.map +1 -0
  34. package/dist/bottom-sheet.d.cts +14 -0
  35. package/dist/bottom-sheet.d.ts +14 -0
  36. package/dist/bottom-sheet.js +5 -0
  37. package/dist/bottom-sheet.js.map +1 -0
  38. package/dist/button.cjs +18 -0
  39. package/dist/button.cjs.map +1 -0
  40. package/dist/button.d.cts +16 -0
  41. package/dist/button.d.ts +16 -0
  42. package/dist/button.js +5 -0
  43. package/dist/button.js.map +1 -0
  44. package/dist/calendar.cjs +14 -0
  45. package/dist/calendar.cjs.map +1 -0
  46. package/dist/calendar.d.cts +13 -0
  47. package/dist/calendar.d.ts +13 -0
  48. package/dist/calendar.js +5 -0
  49. package/dist/calendar.js.map +1 -0
  50. package/dist/card.cjs +18 -0
  51. package/dist/card.cjs.map +1 -0
  52. package/dist/card.d.cts +14 -0
  53. package/dist/card.d.ts +14 -0
  54. package/dist/card.js +5 -0
  55. package/dist/card.js.map +1 -0
  56. package/dist/checkbox.cjs +14 -0
  57. package/dist/checkbox.cjs.map +1 -0
  58. package/dist/checkbox.d.cts +9 -0
  59. package/dist/checkbox.d.ts +9 -0
  60. package/dist/checkbox.js +5 -0
  61. package/dist/checkbox.js.map +1 -0
  62. package/dist/chip.cjs +14 -0
  63. package/dist/chip.cjs.map +1 -0
  64. package/dist/chip.d.cts +9 -0
  65. package/dist/chip.d.ts +9 -0
  66. package/dist/chip.js +5 -0
  67. package/dist/chip.js.map +1 -0
  68. package/dist/chunk-27EKI7CM.cjs +74 -0
  69. package/dist/chunk-27EKI7CM.cjs.map +1 -0
  70. package/dist/chunk-2AOEUASU.cjs +123 -0
  71. package/dist/chunk-2AOEUASU.cjs.map +1 -0
  72. package/dist/chunk-355VBEHS.js +51 -0
  73. package/dist/chunk-355VBEHS.js.map +1 -0
  74. package/dist/chunk-4C6E37KK.js +134 -0
  75. package/dist/chunk-4C6E37KK.js.map +1 -0
  76. package/dist/chunk-4S23TNFZ.cjs +115 -0
  77. package/dist/chunk-4S23TNFZ.cjs.map +1 -0
  78. package/dist/chunk-4V3IOZPC.cjs +61 -0
  79. package/dist/chunk-4V3IOZPC.cjs.map +1 -0
  80. package/dist/chunk-4YQPDHZP.cjs +69 -0
  81. package/dist/chunk-4YQPDHZP.cjs.map +1 -0
  82. package/dist/chunk-6CMR4MT4.js +101 -0
  83. package/dist/chunk-6CMR4MT4.js.map +1 -0
  84. package/dist/chunk-7B6U7GED.js +67 -0
  85. package/dist/chunk-7B6U7GED.js.map +1 -0
  86. package/dist/chunk-7GQ4YVJR.js +68 -0
  87. package/dist/chunk-7GQ4YVJR.js.map +1 -0
  88. package/dist/chunk-AFX7CBRR.cjs +97 -0
  89. package/dist/chunk-AFX7CBRR.cjs.map +1 -0
  90. package/dist/chunk-ARXXD2ZI.cjs +75 -0
  91. package/dist/chunk-ARXXD2ZI.cjs.map +1 -0
  92. package/dist/chunk-BCX5S6PO.js +41 -0
  93. package/dist/chunk-BCX5S6PO.js.map +1 -0
  94. package/dist/chunk-BJWRAJEH.cjs +61 -0
  95. package/dist/chunk-BJWRAJEH.cjs.map +1 -0
  96. package/dist/chunk-CX55SVMP.js +68 -0
  97. package/dist/chunk-CX55SVMP.js.map +1 -0
  98. package/dist/chunk-CZ4RHRM2.cjs +130 -0
  99. package/dist/chunk-CZ4RHRM2.cjs.map +1 -0
  100. package/dist/chunk-DDV6JQEW.js +57 -0
  101. package/dist/chunk-DDV6JQEW.js.map +1 -0
  102. package/dist/chunk-DR6JPBH7.js +126 -0
  103. package/dist/chunk-DR6JPBH7.js.map +1 -0
  104. package/dist/chunk-EVF7QZMA.cjs +46 -0
  105. package/dist/chunk-EVF7QZMA.cjs.map +1 -0
  106. package/dist/chunk-EXARWE5B.js +56 -0
  107. package/dist/chunk-EXARWE5B.js.map +1 -0
  108. package/dist/chunk-FUIIR7CU.js +32 -0
  109. package/dist/chunk-FUIIR7CU.js.map +1 -0
  110. package/dist/chunk-FXOOVZWB.js +39 -0
  111. package/dist/chunk-FXOOVZWB.js.map +1 -0
  112. package/dist/chunk-FYFPGECC.js +39 -0
  113. package/dist/chunk-FYFPGECC.js.map +1 -0
  114. package/dist/chunk-GFZKSV7F.cjs +73 -0
  115. package/dist/chunk-GFZKSV7F.cjs.map +1 -0
  116. package/dist/chunk-GGXFXP6U.js +130 -0
  117. package/dist/chunk-GGXFXP6U.js.map +1 -0
  118. package/dist/chunk-HLRY4SDE.js +43 -0
  119. package/dist/chunk-HLRY4SDE.js.map +1 -0
  120. package/dist/chunk-HYWJ73QZ.cjs +155 -0
  121. package/dist/chunk-HYWJ73QZ.cjs.map +1 -0
  122. package/dist/chunk-I2ANUQHL.js +81 -0
  123. package/dist/chunk-I2ANUQHL.js.map +1 -0
  124. package/dist/chunk-IDASIFTM.js +56 -0
  125. package/dist/chunk-IDASIFTM.js.map +1 -0
  126. package/dist/chunk-IH7OSDQI.js +70 -0
  127. package/dist/chunk-IH7OSDQI.js.map +1 -0
  128. package/dist/chunk-IOBAQ35P.js +42 -0
  129. package/dist/chunk-IOBAQ35P.js.map +1 -0
  130. package/dist/chunk-IVANXF6O.js +107 -0
  131. package/dist/chunk-IVANXF6O.js.map +1 -0
  132. package/dist/chunk-JGO5TBYB.cjs +58 -0
  133. package/dist/chunk-JGO5TBYB.cjs.map +1 -0
  134. package/dist/chunk-JQ55FV4C.js +75 -0
  135. package/dist/chunk-JQ55FV4C.js.map +1 -0
  136. package/dist/chunk-JQDD6AYM.js +52 -0
  137. package/dist/chunk-JQDD6AYM.js.map +1 -0
  138. package/dist/chunk-JWE5X3SW.cjs +80 -0
  139. package/dist/chunk-JWE5X3SW.cjs.map +1 -0
  140. package/dist/chunk-KFFQVTKW.cjs +91 -0
  141. package/dist/chunk-KFFQVTKW.cjs.map +1 -0
  142. package/dist/chunk-LC5SUZE5.cjs +80 -0
  143. package/dist/chunk-LC5SUZE5.cjs.map +1 -0
  144. package/dist/chunk-LCABZUFW.js +3 -0
  145. package/dist/chunk-LCABZUFW.js.map +1 -0
  146. package/dist/chunk-MFRGAZ4M.cjs +157 -0
  147. package/dist/chunk-MFRGAZ4M.cjs.map +1 -0
  148. package/dist/chunk-MIR34HKE.cjs +91 -0
  149. package/dist/chunk-MIR34HKE.cjs.map +1 -0
  150. package/dist/chunk-MP442EWS.cjs +152 -0
  151. package/dist/chunk-MP442EWS.cjs.map +1 -0
  152. package/dist/chunk-MTIJTTKO.cjs +75 -0
  153. package/dist/chunk-MTIJTTKO.cjs.map +1 -0
  154. package/dist/chunk-MVGUWG27.js +56 -0
  155. package/dist/chunk-MVGUWG27.js.map +1 -0
  156. package/dist/chunk-MWP6IFVJ.cjs +93 -0
  157. package/dist/chunk-MWP6IFVJ.cjs.map +1 -0
  158. package/dist/chunk-NF7D4E7V.js +52 -0
  159. package/dist/chunk-NF7D4E7V.js.map +1 -0
  160. package/dist/chunk-NRBDDNYV.cjs +107 -0
  161. package/dist/chunk-NRBDDNYV.cjs.map +1 -0
  162. package/dist/chunk-OBDN7ROH.cjs +490 -0
  163. package/dist/chunk-OBDN7ROH.cjs.map +1 -0
  164. package/dist/chunk-OE7M66OR.cjs +56 -0
  165. package/dist/chunk-OE7M66OR.cjs.map +1 -0
  166. package/dist/chunk-PGUGP5EL.cjs +135 -0
  167. package/dist/chunk-PGUGP5EL.cjs.map +1 -0
  168. package/dist/chunk-Q7764J2G.cjs +61 -0
  169. package/dist/chunk-Q7764J2G.cjs.map +1 -0
  170. package/dist/chunk-QYQDCGOD.js +82 -0
  171. package/dist/chunk-QYQDCGOD.js.map +1 -0
  172. package/dist/chunk-RDYETV4X.cjs +64 -0
  173. package/dist/chunk-RDYETV4X.cjs.map +1 -0
  174. package/dist/chunk-RIXU7XN6.cjs +90 -0
  175. package/dist/chunk-RIXU7XN6.cjs.map +1 -0
  176. package/dist/chunk-RKGIGQ5C.cjs +4 -0
  177. package/dist/chunk-RKGIGQ5C.cjs.map +1 -0
  178. package/dist/chunk-RS457SPB.js +464 -0
  179. package/dist/chunk-RS457SPB.js.map +1 -0
  180. package/dist/chunk-SG5Z3YFN.cjs +83 -0
  181. package/dist/chunk-SG5Z3YFN.cjs.map +1 -0
  182. package/dist/chunk-SHEMISNH.cjs +81 -0
  183. package/dist/chunk-SHEMISNH.cjs.map +1 -0
  184. package/dist/chunk-SPHRMXOV.js +85 -0
  185. package/dist/chunk-SPHRMXOV.js.map +1 -0
  186. package/dist/chunk-TIWBLISD.js +87 -0
  187. package/dist/chunk-TIWBLISD.js.map +1 -0
  188. package/dist/chunk-TMR56BBE.js +3 -0
  189. package/dist/chunk-TMR56BBE.js.map +1 -0
  190. package/dist/chunk-U5KHRCO4.cjs +105 -0
  191. package/dist/chunk-U5KHRCO4.cjs.map +1 -0
  192. package/dist/chunk-UPW5X46R.js +58 -0
  193. package/dist/chunk-UPW5X46R.js.map +1 -0
  194. package/dist/chunk-UXYAKGI2.cjs +24 -0
  195. package/dist/chunk-UXYAKGI2.cjs.map +1 -0
  196. package/dist/chunk-VBT7USXE.cjs +63 -0
  197. package/dist/chunk-VBT7USXE.cjs.map +1 -0
  198. package/dist/chunk-VIA2FAQY.js +46 -0
  199. package/dist/chunk-VIA2FAQY.js.map +1 -0
  200. package/dist/chunk-WEVRQAGZ.js +57 -0
  201. package/dist/chunk-WEVRQAGZ.js.map +1 -0
  202. package/dist/chunk-WWQNTWRL.js +107 -0
  203. package/dist/chunk-WWQNTWRL.js.map +1 -0
  204. package/dist/chunk-X4QHDEEJ.cjs +4 -0
  205. package/dist/chunk-X4QHDEEJ.cjs.map +1 -0
  206. package/dist/chunk-XJZNX76V.js +66 -0
  207. package/dist/chunk-XJZNX76V.js.map +1 -0
  208. package/dist/chunk-XRUGFKB3.js +34 -0
  209. package/dist/chunk-XRUGFKB3.js.map +1 -0
  210. package/dist/chunk-XURQVDCN.cjs +4 -0
  211. package/dist/chunk-XURQVDCN.cjs.map +1 -0
  212. package/dist/chunk-XVIQ4OUN.cjs +89 -0
  213. package/dist/chunk-XVIQ4OUN.cjs.map +1 -0
  214. package/dist/chunk-XWKZ72LI.cjs +80 -0
  215. package/dist/chunk-XWKZ72LI.cjs.map +1 -0
  216. package/dist/chunk-Y3CWICHE.js +3 -0
  217. package/dist/chunk-Y3CWICHE.js.map +1 -0
  218. package/dist/chunk-Z3U3EZRC.js +93 -0
  219. package/dist/chunk-Z3U3EZRC.js.map +1 -0
  220. package/dist/chunk-Z4JZDLTZ.cjs +109 -0
  221. package/dist/chunk-Z4JZDLTZ.cjs.map +1 -0
  222. package/dist/chunk-ZDARKNSQ.cjs +54 -0
  223. package/dist/chunk-ZDARKNSQ.cjs.map +1 -0
  224. package/dist/chunk-ZH3KC4ES.js +51 -0
  225. package/dist/chunk-ZH3KC4ES.js.map +1 -0
  226. package/dist/chunk-ZPUYNM37.js +3 -0
  227. package/dist/chunk-ZPUYNM37.js.map +1 -0
  228. package/dist/chunk-ZUODIL43.js +113 -0
  229. package/dist/chunk-ZUODIL43.js.map +1 -0
  230. package/dist/chunk-ZXL4IUJ4.cjs +129 -0
  231. package/dist/chunk-ZXL4IUJ4.cjs.map +1 -0
  232. package/dist/date-picker.cjs +15 -0
  233. package/dist/date-picker.cjs.map +1 -0
  234. package/dist/date-picker.d.cts +19 -0
  235. package/dist/date-picker.d.ts +19 -0
  236. package/dist/date-picker.js +6 -0
  237. package/dist/date-picker.js.map +1 -0
  238. package/dist/divider.cjs +13 -0
  239. package/dist/divider.cjs.map +1 -0
  240. package/dist/divider.d.cts +9 -0
  241. package/dist/divider.d.ts +9 -0
  242. package/dist/divider.js +4 -0
  243. package/dist/divider.js.map +1 -0
  244. package/dist/dropdown-menu.cjs +13 -0
  245. package/dist/dropdown-menu.cjs.map +1 -0
  246. package/dist/dropdown-menu.d.cts +23 -0
  247. package/dist/dropdown-menu.d.ts +23 -0
  248. package/dist/dropdown-menu.js +4 -0
  249. package/dist/dropdown-menu.js.map +1 -0
  250. package/dist/empty.cjs +13 -0
  251. package/dist/empty.cjs.map +1 -0
  252. package/dist/empty.d.cts +11 -0
  253. package/dist/empty.d.ts +11 -0
  254. package/dist/empty.js +4 -0
  255. package/dist/empty.js.map +1 -0
  256. package/dist/form.cjs +33 -0
  257. package/dist/form.cjs.map +1 -0
  258. package/dist/form.d.cts +18 -0
  259. package/dist/form.d.ts +18 -0
  260. package/dist/form.js +4 -0
  261. package/dist/form.js.map +1 -0
  262. package/dist/icon.cjs +13 -0
  263. package/dist/icon.cjs.map +1 -0
  264. package/dist/icon.d.cts +12 -0
  265. package/dist/icon.d.ts +12 -0
  266. package/dist/icon.js +4 -0
  267. package/dist/icon.js.map +1 -0
  268. package/dist/index.cjs +350 -0
  269. package/dist/index.cjs.map +1 -0
  270. package/dist/index.d.cts +167 -0
  271. package/dist/index.d.ts +167 -0
  272. package/dist/index.js +130 -0
  273. package/dist/index.js.map +1 -0
  274. package/dist/modal.cjs +13 -0
  275. package/dist/modal.cjs.map +1 -0
  276. package/dist/modal.d.cts +17 -0
  277. package/dist/modal.d.ts +17 -0
  278. package/dist/modal.js +4 -0
  279. package/dist/modal.js.map +1 -0
  280. package/dist/otp-input.cjs +13 -0
  281. package/dist/otp-input.cjs.map +1 -0
  282. package/dist/otp-input.d.cts +17 -0
  283. package/dist/otp-input.d.ts +17 -0
  284. package/dist/otp-input.js +4 -0
  285. package/dist/otp-input.js.map +1 -0
  286. package/dist/pagination.cjs +13 -0
  287. package/dist/pagination.cjs.map +1 -0
  288. package/dist/pagination.d.cts +12 -0
  289. package/dist/pagination.d.ts +12 -0
  290. package/dist/pagination.js +4 -0
  291. package/dist/pagination.js.map +1 -0
  292. package/dist/popover.cjs +14 -0
  293. package/dist/popover.cjs.map +1 -0
  294. package/dist/popover.d.cts +16 -0
  295. package/dist/popover.d.ts +16 -0
  296. package/dist/popover.js +5 -0
  297. package/dist/popover.js.map +1 -0
  298. package/dist/progress.cjs +13 -0
  299. package/dist/progress.cjs.map +1 -0
  300. package/dist/progress.d.cts +12 -0
  301. package/dist/progress.d.ts +12 -0
  302. package/dist/progress.js +4 -0
  303. package/dist/progress.js.map +1 -0
  304. package/dist/radio.cjs +13 -0
  305. package/dist/radio.cjs.map +1 -0
  306. package/dist/radio.d.cts +16 -0
  307. package/dist/radio.d.ts +16 -0
  308. package/dist/radio.js +4 -0
  309. package/dist/radio.js.map +1 -0
  310. package/dist/select.cjs +13 -0
  311. package/dist/select.cjs.map +1 -0
  312. package/dist/select.d.cts +23 -0
  313. package/dist/select.d.ts +23 -0
  314. package/dist/select.js +4 -0
  315. package/dist/select.js.map +1 -0
  316. package/dist/skeleton.cjs +13 -0
  317. package/dist/skeleton.cjs.map +1 -0
  318. package/dist/skeleton.d.cts +11 -0
  319. package/dist/skeleton.d.ts +11 -0
  320. package/dist/skeleton.js +4 -0
  321. package/dist/skeleton.js.map +1 -0
  322. package/dist/slider.cjs +13 -0
  323. package/dist/slider.cjs.map +1 -0
  324. package/dist/slider.d.cts +11 -0
  325. package/dist/slider.d.ts +11 -0
  326. package/dist/slider.js +4 -0
  327. package/dist/slider.js.map +1 -0
  328. package/dist/spinner.cjs +14 -0
  329. package/dist/spinner.cjs.map +1 -0
  330. package/dist/spinner.d.cts +18 -0
  331. package/dist/spinner.d.ts +18 -0
  332. package/dist/spinner.js +5 -0
  333. package/dist/spinner.js.map +1 -0
  334. package/dist/stepper.cjs +13 -0
  335. package/dist/stepper.cjs.map +1 -0
  336. package/dist/stepper.d.cts +15 -0
  337. package/dist/stepper.d.ts +15 -0
  338. package/dist/stepper.js +4 -0
  339. package/dist/stepper.js.map +1 -0
  340. package/dist/table.cjs +13 -0
  341. package/dist/table.cjs.map +1 -0
  342. package/dist/table.d.cts +23 -0
  343. package/dist/table.d.ts +23 -0
  344. package/dist/table.js +4 -0
  345. package/dist/table.js.map +1 -0
  346. package/dist/tabs.cjs +13 -0
  347. package/dist/tabs.cjs.map +1 -0
  348. package/dist/tabs.d.cts +16 -0
  349. package/dist/tabs.d.ts +16 -0
  350. package/dist/tabs.js +4 -0
  351. package/dist/tabs.js.map +1 -0
  352. package/dist/text.cjs +18 -0
  353. package/dist/text.cjs.map +1 -0
  354. package/dist/text.d.cts +18 -0
  355. package/dist/text.d.ts +18 -0
  356. package/dist/text.js +5 -0
  357. package/dist/text.js.map +1 -0
  358. package/dist/textarea.cjs +13 -0
  359. package/dist/textarea.cjs.map +1 -0
  360. package/dist/textarea.d.cts +13 -0
  361. package/dist/textarea.d.ts +13 -0
  362. package/dist/textarea.js +4 -0
  363. package/dist/textarea.js.map +1 -0
  364. package/dist/textfield.cjs +13 -0
  365. package/dist/textfield.cjs.map +1 -0
  366. package/dist/textfield.d.cts +11 -0
  367. package/dist/textfield.d.ts +11 -0
  368. package/dist/textfield.js +4 -0
  369. package/dist/textfield.js.map +1 -0
  370. package/dist/toast.cjs +37 -0
  371. package/dist/toast.cjs.map +1 -0
  372. package/dist/toast.d.cts +53 -0
  373. package/dist/toast.d.ts +53 -0
  374. package/dist/toast.js +4 -0
  375. package/dist/toast.js.map +1 -0
  376. package/dist/toggle.cjs +13 -0
  377. package/dist/toggle.cjs.map +1 -0
  378. package/dist/toggle.d.cts +10 -0
  379. package/dist/toggle.d.ts +10 -0
  380. package/dist/toggle.js +4 -0
  381. package/dist/toggle.js.map +1 -0
  382. package/dist/tooltip.cjs +13 -0
  383. package/dist/tooltip.cjs.map +1 -0
  384. package/dist/tooltip.d.cts +15 -0
  385. package/dist/tooltip.d.ts +15 -0
  386. package/dist/tooltip.js +4 -0
  387. package/dist/tooltip.js.map +1 -0
  388. package/package.json +276 -0
@@ -0,0 +1,68 @@
1
+ import { LazyMotion, domAnimation, AnimatePresence, m } from './chunk-Y3CWICHE.js';
2
+ import { cn } from './chunk-MVGUWG27.js';
3
+ import * as React from 'react';
4
+ import * as DialogPrimitive from '@radix-ui/react-dialog';
5
+ import { jsx, jsxs } from 'react/jsx-runtime';
6
+
7
+ function BottomSheet({
8
+ open: openProp,
9
+ onOpenChange,
10
+ title,
11
+ description,
12
+ children,
13
+ trigger
14
+ }) {
15
+ const [internalOpen, setInternalOpen] = React.useState(false);
16
+ const isControlled = openProp !== void 0;
17
+ const open = isControlled ? openProp : internalOpen;
18
+ const handleOpenChange = (value) => {
19
+ if (!isControlled) setInternalOpen(value);
20
+ onOpenChange == null ? void 0 : onOpenChange(value);
21
+ };
22
+ return /* @__PURE__ */ jsx(LazyMotion, { features: domAnimation, children: /* @__PURE__ */ jsxs(DialogPrimitive.Root, { open, onOpenChange: handleOpenChange, children: [
23
+ trigger && /* @__PURE__ */ jsx(DialogPrimitive.Trigger, { asChild: true, children: trigger }),
24
+ /* @__PURE__ */ jsx(AnimatePresence, { children: open && /* @__PURE__ */ jsxs(DialogPrimitive.Portal, { children: [
25
+ /* @__PURE__ */ jsx(DialogPrimitive.Overlay, { asChild: true, children: /* @__PURE__ */ jsx(
26
+ m.div,
27
+ {
28
+ className: "fixed inset-0 z-50 bg-[var(--color-overlay)]",
29
+ initial: { opacity: 0 },
30
+ animate: { opacity: 1 },
31
+ exit: { opacity: 0 },
32
+ transition: { duration: 0.2 }
33
+ }
34
+ ) }),
35
+ /* @__PURE__ */ jsx(DialogPrimitive.Content, { asChild: true, children: /* @__PURE__ */ jsxs(
36
+ m.div,
37
+ {
38
+ className: cn(
39
+ "fixed bottom-0 left-0 right-0 z-50",
40
+ "bg-[var(--color-background)] rounded-t-3xl",
41
+ "shadow-[var(--shadow-overlay)]",
42
+ "px-5 pb-safe"
43
+ ),
44
+ initial: { y: "100%" },
45
+ animate: { y: 0 },
46
+ exit: { y: "100%" },
47
+ transition: { type: "spring", stiffness: 300, damping: 30 },
48
+ drag: "y",
49
+ dragConstraints: { top: 0 },
50
+ dragElastic: { top: 0, bottom: 0.3 },
51
+ onDragEnd: (_, info) => {
52
+ if (info.offset.y > 80) handleOpenChange(false);
53
+ },
54
+ children: [
55
+ /* @__PURE__ */ jsx("div", { className: "flex justify-center pt-3 pb-4", children: /* @__PURE__ */ jsx("div", { className: "w-9 h-1 rounded-full bg-[var(--color-gray-300)]" }) }),
56
+ title && /* @__PURE__ */ jsx(DialogPrimitive.Title, { className: "text-[18px] font-bold text-[var(--color-foreground)] mb-1", children: title }),
57
+ description && /* @__PURE__ */ jsx(DialogPrimitive.Description, { className: "text-[14px] text-[var(--color-muted-foreground)] mb-4", children: description }),
58
+ /* @__PURE__ */ jsx("div", { className: "pb-8", children })
59
+ ]
60
+ }
61
+ ) })
62
+ ] }) })
63
+ ] }) });
64
+ }
65
+
66
+ export { BottomSheet };
67
+ //# sourceMappingURL=chunk-7GQ4YVJR.js.map
68
+ //# sourceMappingURL=chunk-7GQ4YVJR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/BottomSheet/BottomSheet.tsx"],"names":[],"mappings":"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","file":"chunk-7GQ4YVJR.js","sourcesContent":["import * as React from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { m, LazyMotion, domAnimation, AnimatePresence } from \"../../utils/motion\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface BottomSheetProps {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n title?: string;\n description?: string;\n children?: React.ReactNode;\n trigger?: React.ReactNode;\n}\n\nfunction BottomSheet({\n open: openProp,\n onOpenChange,\n title,\n description,\n children,\n trigger,\n}: BottomSheetProps) {\n const [internalOpen, setInternalOpen] = React.useState(false);\n const isControlled = openProp !== undefined;\n const open = isControlled ? openProp : internalOpen;\n\n const handleOpenChange = (value: boolean) => {\n if (!isControlled) setInternalOpen(value);\n onOpenChange?.(value);\n };\n\n return (\n <LazyMotion features={domAnimation}>\n <DialogPrimitive.Root open={open} onOpenChange={handleOpenChange}>\n {trigger && (\n <DialogPrimitive.Trigger asChild>{trigger}</DialogPrimitive.Trigger>\n )}\n <AnimatePresence>\n {open && (\n <DialogPrimitive.Portal>\n <DialogPrimitive.Overlay asChild>\n <m.div\n className=\"fixed inset-0 z-50 bg-[var(--color-overlay)]\"\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.2 }}\n />\n </DialogPrimitive.Overlay>\n <DialogPrimitive.Content asChild>\n <m.div\n className={cn(\n \"fixed bottom-0 left-0 right-0 z-50\",\n \"bg-[var(--color-background)] rounded-t-3xl\",\n \"shadow-[var(--shadow-overlay)]\",\n \"px-5 pb-safe\"\n )}\n initial={{ y: \"100%\" }}\n animate={{ y: 0 }}\n exit={{ y: \"100%\" }}\n transition={{ type: \"spring\", stiffness: 300, damping: 30 }}\n drag=\"y\"\n dragConstraints={{ top: 0 }}\n dragElastic={{ top: 0, bottom: 0.3 }}\n onDragEnd={(_, info) => {\n if (info.offset.y > 80) handleOpenChange(false);\n }}\n >\n {/* 드래그 핸들 */}\n <div className=\"flex justify-center pt-3 pb-4\">\n <div className=\"w-9 h-1 rounded-full bg-[var(--color-gray-300)]\" />\n </div>\n\n {title && (\n <DialogPrimitive.Title className=\"text-[18px] font-bold text-[var(--color-foreground)] mb-1\">\n {title}\n </DialogPrimitive.Title>\n )}\n {description && (\n <DialogPrimitive.Description className=\"text-[14px] text-[var(--color-muted-foreground)] mb-4\">\n {description}\n </DialogPrimitive.Description>\n )}\n <div className=\"pb-8\">{children}</div>\n </m.div>\n </DialogPrimitive.Content>\n </DialogPrimitive.Portal>\n )}\n </AnimatePresence>\n </DialogPrimitive.Root>\n </LazyMotion>\n );\n}\n\nexport { BottomSheet };\n"]}
@@ -0,0 +1,97 @@
1
+ 'use strict';
2
+
3
+ var chunk4V3IOZPC_cjs = require('./chunk-4V3IOZPC.cjs');
4
+ var DropdownMenuPrimitive = require('@radix-ui/react-dropdown-menu');
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+
7
+ function _interopNamespace(e) {
8
+ if (e && e.__esModule) return e;
9
+ var n = Object.create(null);
10
+ if (e) {
11
+ Object.keys(e).forEach(function (k) {
12
+ if (k !== 'default') {
13
+ var d = Object.getOwnPropertyDescriptor(e, k);
14
+ Object.defineProperty(n, k, d.get ? d : {
15
+ enumerable: true,
16
+ get: function () { return e[k]; }
17
+ });
18
+ }
19
+ });
20
+ }
21
+ n.default = e;
22
+ return Object.freeze(n);
23
+ }
24
+
25
+ var DropdownMenuPrimitive__namespace = /*#__PURE__*/_interopNamespace(DropdownMenuPrimitive);
26
+
27
+ var DropdownMenu = ({
28
+ trigger,
29
+ items,
30
+ open,
31
+ onOpenChange,
32
+ align = "start",
33
+ sideOffset = 6
34
+ }) => /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuPrimitive__namespace.Root, { open, onOpenChange, children: [
35
+ /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Trigger, { asChild: true, children: trigger }),
36
+ /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
37
+ DropdownMenuPrimitive__namespace.Content,
38
+ {
39
+ align,
40
+ sideOffset,
41
+ className: chunk4V3IOZPC_cjs.cn(
42
+ "z-50 min-w-[180px] overflow-hidden rounded-2xl",
43
+ "border border-[var(--color-border)] bg-[var(--color-background)] shadow-lg",
44
+ "p-1.5",
45
+ "data-[state=open]:animate-in data-[state=closed]:animate-out",
46
+ "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
47
+ "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
48
+ "data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2"
49
+ ),
50
+ children: items.map((item, i) => {
51
+ if (item.type === "separator") {
52
+ return /* @__PURE__ */ jsxRuntime.jsx(
53
+ DropdownMenuPrimitive__namespace.Separator,
54
+ {
55
+ className: "my-1 h-px bg-[var(--color-border)]"
56
+ },
57
+ i
58
+ );
59
+ }
60
+ if (item.type === "label") {
61
+ return /* @__PURE__ */ jsxRuntime.jsx(
62
+ DropdownMenuPrimitive__namespace.Label,
63
+ {
64
+ className: "px-3 py-1.5 text-[12px] font-semibold text-[var(--color-muted-foreground)] select-none",
65
+ children: item.label
66
+ },
67
+ i
68
+ );
69
+ }
70
+ return /* @__PURE__ */ jsxRuntime.jsxs(
71
+ DropdownMenuPrimitive__namespace.Item,
72
+ {
73
+ disabled: item.disabled,
74
+ onSelect: item.onSelect,
75
+ className: chunk4V3IOZPC_cjs.cn(
76
+ "relative flex cursor-pointer select-none items-center gap-2.5 rounded-xl px-3 py-2.5",
77
+ "text-[15px] outline-none transition-colors duration-100",
78
+ "focus:bg-[var(--color-muted)] data-[highlighted]:bg-[var(--color-muted)]",
79
+ item.destructive ? "text-[var(--color-negative)]" : "text-[var(--color-foreground)]",
80
+ "data-[disabled]:opacity-40 data-[disabled]:pointer-events-none"
81
+ ),
82
+ children: [
83
+ item.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 text-[var(--color-muted-foreground)]", children: item.icon }),
84
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1", children: item.label }),
85
+ item.shortcut && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto text-[12px] text-[var(--color-muted-foreground)]", children: item.shortcut })
86
+ ]
87
+ },
88
+ i
89
+ );
90
+ })
91
+ }
92
+ ) })
93
+ ] });
94
+
95
+ exports.DropdownMenu = DropdownMenu;
96
+ //# sourceMappingURL=chunk-AFX7CBRR.cjs.map
97
+ //# sourceMappingURL=chunk-AFX7CBRR.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/DropdownMenu/DropdownMenu.tsx"],"names":["jsxs","DropdownMenuPrimitive","jsx","cn"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,IAAM,eAAe,CAAC;AAAA,EACpB,OAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,YAAA;AAAA,EACA,KAAA,GAAQ,OAAA;AAAA,EACR,UAAA,GAAa;AACf,CAAA,qBACEA,eAAA,CAAuBC,gCAAA,CAAA,IAAA,EAAtB,EAA2B,IAAA,EAAY,YAAA,EACtC,QAAA,EAAA;AAAA,kBAAAC,cAAA,CAAuBD,gCAAA,CAAA,OAAA,EAAtB,EAA8B,OAAA,EAAO,IAAA,EAAE,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,kBAEhDC,cAAA,CAAuBD,yCAAtB,EACC,QAAA,kBAAAC,cAAA;AAAA,IAAuBD,gCAAA,CAAA,OAAA;AAAA,IAAtB;AAAA,MACC,KAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA,EAAWE,oBAAA;AAAA,QACT,gDAAA;AAAA,QACA,4EAAA;AAAA,QACA,OAAA;AAAA,QACA,8DAAA;AAAA,QACA,4DAAA;AAAA,QACA,8DAAA;AAAA,QACA;AAAA,OACF;AAAA,MAEC,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,CAAA,KAAM;AACtB,QAAA,IAAI,IAAA,CAAK,SAAS,WAAA,EAAa;AAC7B,UAAA,uBACED,cAAA;AAAA,YAAuBD,gCAAA,CAAA,SAAA;AAAA,YAAtB;AAAA,cAEC,SAAA,EAAU;AAAA,aAAA;AAAA,YADL;AAAA,WAEP;AAAA,QAEJ;AAEA,QAAA,IAAI,IAAA,CAAK,SAAS,OAAA,EAAS;AACzB,UAAA,uBACEC,cAAA;AAAA,YAAuBD,gCAAA,CAAA,KAAA;AAAA,YAAtB;AAAA,cAEC,SAAA,EAAU,wFAAA;AAAA,cAET,QAAA,EAAA,IAAA,CAAK;AAAA,aAAA;AAAA,YAHD;AAAA,WAIP;AAAA,QAEJ;AAEA,QAAA,uBACED,eAAA;AAAA,UAAuBC,gCAAA,CAAA,IAAA;AAAA,UAAtB;AAAA,YAEC,UAAU,IAAA,CAAK,QAAA;AAAA,YACf,UAAU,IAAA,CAAK,QAAA;AAAA,YACf,SAAA,EAAWE,oBAAA;AAAA,cACT,sFAAA;AAAA,cACA,yDAAA;AAAA,cACA,0EAAA;AAAA,cACA,IAAA,CAAK,cACD,8BAAA,GACA,gCAAA;AAAA,cACJ;AAAA,aACF;AAAA,YAEC,QAAA,EAAA;AAAA,cAAA,IAAA,CAAK,wBACJD,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,+CAAA,EACb,eAAK,IAAA,EACR,CAAA;AAAA,8BAEFA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,QAAA,EAAU,eAAK,KAAA,EAAM,CAAA;AAAA,cACpC,KAAK,QAAA,oBACJA,cAAA,CAAC,UAAK,SAAA,EAAU,0DAAA,EACb,eAAK,QAAA,EACR;AAAA;AAAA,WAAA;AAAA,UAtBG;AAAA,SAwBP;AAAA,MAEJ,CAAC;AAAA;AAAA,GACH,EACF;AAAA,CAAA,EACF","file":"chunk-AFX7CBRR.cjs","sourcesContent":["import * as React from \"react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface DropdownMenuItem {\n type?: \"item\" | \"separator\" | \"label\";\n label?: string;\n icon?: React.ReactNode;\n shortcut?: string;\n disabled?: boolean;\n destructive?: boolean;\n onSelect?: () => void;\n}\n\nexport interface DropdownMenuProps {\n trigger: React.ReactNode;\n items: DropdownMenuItem[];\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n align?: \"start\" | \"center\" | \"end\";\n sideOffset?: number;\n}\n\nconst DropdownMenu = ({\n trigger,\n items,\n open,\n onOpenChange,\n align = \"start\",\n sideOffset = 6,\n}: DropdownMenuProps) => (\n <DropdownMenuPrimitive.Root open={open} onOpenChange={onOpenChange}>\n <DropdownMenuPrimitive.Trigger asChild>{trigger}</DropdownMenuPrimitive.Trigger>\n\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 min-w-[180px] overflow-hidden rounded-2xl\",\n \"border border-[var(--color-border)] bg-[var(--color-background)] shadow-lg\",\n \"p-1.5\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2\"\n )}\n >\n {items.map((item, i) => {\n if (item.type === \"separator\") {\n return (\n <DropdownMenuPrimitive.Separator\n key={i}\n className=\"my-1 h-px bg-[var(--color-border)]\"\n />\n );\n }\n\n if (item.type === \"label\") {\n return (\n <DropdownMenuPrimitive.Label\n key={i}\n className=\"px-3 py-1.5 text-[12px] font-semibold text-[var(--color-muted-foreground)] select-none\"\n >\n {item.label}\n </DropdownMenuPrimitive.Label>\n );\n }\n\n return (\n <DropdownMenuPrimitive.Item\n key={i}\n disabled={item.disabled}\n onSelect={item.onSelect}\n className={cn(\n \"relative flex cursor-pointer select-none items-center gap-2.5 rounded-xl px-3 py-2.5\",\n \"text-[15px] outline-none transition-colors duration-100\",\n \"focus:bg-[var(--color-muted)] data-[highlighted]:bg-[var(--color-muted)]\",\n item.destructive\n ? \"text-[var(--color-negative)]\"\n : \"text-[var(--color-foreground)]\",\n \"data-[disabled]:opacity-40 data-[disabled]:pointer-events-none\"\n )}\n >\n {item.icon && (\n <span className=\"shrink-0 text-[var(--color-muted-foreground)]\">\n {item.icon}\n </span>\n )}\n <span className=\"flex-1\">{item.label}</span>\n {item.shortcut && (\n <span className=\"ml-auto text-[12px] text-[var(--color-muted-foreground)]\">\n {item.shortcut}\n </span>\n )}\n </DropdownMenuPrimitive.Item>\n );\n })}\n </DropdownMenuPrimitive.Content>\n </DropdownMenuPrimitive.Portal>\n </DropdownMenuPrimitive.Root>\n);\n\nexport { DropdownMenu };\n"]}
@@ -0,0 +1,75 @@
1
+ 'use strict';
2
+
3
+ var chunk4V3IOZPC_cjs = require('./chunk-4V3IOZPC.cjs');
4
+ var React = require('react');
5
+ var ProgressPrimitive = require('@radix-ui/react-progress');
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 React__namespace = /*#__PURE__*/_interopNamespace(React);
27
+ var ProgressPrimitive__namespace = /*#__PURE__*/_interopNamespace(ProgressPrimitive);
28
+
29
+ var sizeMap = { sm: "h-1", md: "h-2", lg: "h-3" };
30
+ var colorMap = {
31
+ primary: "bg-[var(--color-primary)]",
32
+ positive: "bg-[var(--color-positive)]",
33
+ negative: "bg-[var(--color-negative)]",
34
+ warning: "bg-[var(--color-warning)]"
35
+ };
36
+ var Progress = React__namespace.forwardRef((_a, ref) => {
37
+ var _b = _a, { className, value = 0, size = "md", color = "primary", showLabel = false } = _b, props = chunk4V3IOZPC_cjs.__objRest(_b, ["className", "value", "size", "color", "showLabel"]);
38
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full flex flex-col gap-1.5", children: [
39
+ showLabel && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between text-[12px] text-[var(--color-muted-foreground)]", children: [
40
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: "\uC9C4\uD589\uB960" }),
41
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
42
+ Math.round(value),
43
+ "%"
44
+ ] })
45
+ ] }),
46
+ /* @__PURE__ */ jsxRuntime.jsx(
47
+ ProgressPrimitive__namespace.Root,
48
+ chunk4V3IOZPC_cjs.__spreadProps(chunk4V3IOZPC_cjs.__spreadValues({
49
+ ref,
50
+ className: chunk4V3IOZPC_cjs.cn(
51
+ "relative w-full overflow-hidden rounded-full bg-[var(--color-muted)]",
52
+ sizeMap[size],
53
+ className
54
+ ),
55
+ value
56
+ }, props), {
57
+ children: /* @__PURE__ */ jsxRuntime.jsx(
58
+ ProgressPrimitive__namespace.Indicator,
59
+ {
60
+ className: chunk4V3IOZPC_cjs.cn(
61
+ "h-full transition-all duration-500 ease-out rounded-full",
62
+ colorMap[color]
63
+ ),
64
+ style: { width: `${Math.min(100, Math.max(0, value))}%` }
65
+ }
66
+ )
67
+ })
68
+ )
69
+ ] });
70
+ });
71
+ Progress.displayName = "Progress";
72
+
73
+ exports.Progress = Progress;
74
+ //# sourceMappingURL=chunk-ARXXD2ZI.cjs.map
75
+ //# sourceMappingURL=chunk-ARXXD2ZI.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Progress/Progress.tsx"],"names":["React","__objRest","jsxs","jsx","ProgressPrimitive","__spreadProps","__spreadValues","cn"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,IAAM,UAAU,EAAE,EAAA,EAAI,OAAO,EAAA,EAAI,KAAA,EAAO,IAAI,KAAA,EAAM;AAClD,IAAM,QAAA,GAAW;AAAA,EACf,OAAA,EAAS,2BAAA;AAAA,EACT,QAAA,EAAU,4BAAA;AAAA,EACV,QAAA,EAAU,4BAAA;AAAA,EACV,OAAA,EAAS;AACX,CAAA;AAEA,IAAM,QAAA,GAAiBA,gBAAA,CAAA,UAAA,CAGrB,CAAC,EAAA,EAAuF,GAAA,KAAK;AAA5F,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,aAAW,KAAA,GAAQ,CAAA,EAAG,IAAA,GAAO,IAAA,EAAM,QAAQ,SAAA,EAAW,SAAA,GAAY,KAAA,EAvBvE,GAuBG,IAA8E,KAAA,GAAAC,2BAAA,CAA9E,EAAA,EAA8E,CAA5E,WAAA,EAAW,OAAA,EAAW,QAAa,OAAA,EAAmB,WAAA,CAAA,CAAA;AACzD,EAAA,uBAAAC,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,8BAAA,EACZ,QAAA,EAAA;AAAA,IAAA,SAAA,oBACCA,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uEAAA,EACb,QAAA,EAAA;AAAA,sBAAAC,cAAA,CAAC,UAAK,QAAA,EAAA,oBAAA,EAAG,CAAA;AAAA,sCACR,MAAA,EAAA,EAAM,QAAA,EAAA;AAAA,QAAA,IAAA,CAAK,MAAM,KAAK,CAAA;AAAA,QAAE;AAAA,OAAA,EAAC;AAAA,KAAA,EAC5B,CAAA;AAAA,oBAEFA,cAAA;AAAA,MAAmBC,4BAAA,CAAA,IAAA;AAAA,MAAlBC,+BAAA,CAAAC,gCAAA,CAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAWC,oBAAA;AAAA,UACT,sEAAA;AAAA,UACA,QAAQ,IAAI,CAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA;AAAA,OAAA,EACI,KAAA,CAAA,EARL;AAAA,QAUC,QAAA,kBAAAJ,cAAA;AAAA,UAAmBC,4BAAA,CAAA,SAAA;AAAA,UAAlB;AAAA,YACC,SAAA,EAAWG,oBAAA;AAAA,cACT,0DAAA;AAAA,cACA,SAAS,KAAK;AAAA,aAChB;AAAA,YACA,KAAA,EAAO,EAAE,KAAA,EAAO,CAAA,EAAG,IAAA,CAAK,GAAA,CAAI,GAAA,EAAK,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,KAAK,CAAC,CAAC,CAAA,CAAA,CAAA;AAAI;AAAA;AAC1D,OAAA;AAAA;AACF,GAAA,EACF,CAAA;AAAA,CACD;AACD,QAAA,CAAS,WAAA,GAAc,UAAA","file":"chunk-ARXXD2ZI.cjs","sourcesContent":["import * as React from \"react\";\nimport * as ProgressPrimitive from \"@radix-ui/react-progress\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface ProgressProps\n extends React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root> {\n value?: number;\n size?: \"sm\" | \"md\" | \"lg\";\n color?: \"primary\" | \"positive\" | \"negative\" | \"warning\";\n showLabel?: boolean;\n}\n\nconst sizeMap = { sm: \"h-1\", md: \"h-2\", lg: \"h-3\" };\nconst colorMap = {\n primary: \"bg-[var(--color-primary)]\",\n positive: \"bg-[var(--color-positive)]\",\n negative: \"bg-[var(--color-negative)]\",\n warning: \"bg-[var(--color-warning)]\",\n};\n\nconst Progress = React.forwardRef<\n React.ElementRef<typeof ProgressPrimitive.Root>,\n ProgressProps\n>(({ className, value = 0, size = \"md\", color = \"primary\", showLabel = false, ...props }, ref) => (\n <div className=\"w-full flex flex-col gap-1.5\">\n {showLabel && (\n <div className=\"flex justify-between text-[12px] text-[var(--color-muted-foreground)]\">\n <span>진행률</span>\n <span>{Math.round(value)}%</span>\n </div>\n )}\n <ProgressPrimitive.Root\n ref={ref}\n className={cn(\n \"relative w-full overflow-hidden rounded-full bg-[var(--color-muted)]\",\n sizeMap[size],\n className\n )}\n value={value}\n {...props}\n >\n <ProgressPrimitive.Indicator\n className={cn(\n \"h-full transition-all duration-500 ease-out rounded-full\",\n colorMap[color]\n )}\n style={{ width: `${Math.min(100, Math.max(0, value))}%` }}\n />\n </ProgressPrimitive.Root>\n </div>\n));\nProgress.displayName = \"Progress\";\n\nexport { Progress };\n"]}
@@ -0,0 +1,41 @@
1
+ import { __objRest, cn, __spreadValues } from './chunk-MVGUWG27.js';
2
+ import * as React from 'react';
3
+ import { jsx } from 'react/jsx-runtime';
4
+
5
+ var spacingMap = {
6
+ none: "",
7
+ sm: "my-2",
8
+ md: "my-4",
9
+ lg: "my-6"
10
+ };
11
+ var Divider = React.forwardRef(
12
+ (_a, ref) => {
13
+ var _b = _a, { className, orientation = "horizontal", spacing = "none" } = _b, props = __objRest(_b, ["className", "orientation", "spacing"]);
14
+ if (orientation === "vertical") {
15
+ return /* @__PURE__ */ jsx(
16
+ "div",
17
+ {
18
+ className: cn("inline-block w-px self-stretch bg-[var(--color-border)]", className),
19
+ role: "separator",
20
+ "aria-orientation": "vertical"
21
+ }
22
+ );
23
+ }
24
+ return /* @__PURE__ */ jsx(
25
+ "hr",
26
+ __spreadValues({
27
+ ref,
28
+ className: cn(
29
+ "border-none h-px bg-[var(--color-border)]",
30
+ spacingMap[spacing],
31
+ className
32
+ )
33
+ }, props)
34
+ );
35
+ }
36
+ );
37
+ Divider.displayName = "Divider";
38
+
39
+ export { Divider };
40
+ //# sourceMappingURL=chunk-BCX5S6PO.js.map
41
+ //# sourceMappingURL=chunk-BCX5S6PO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Divider/Divider.tsx"],"names":[],"mappings":";;;;AAQA,IAAM,UAAA,GAAa;AAAA,EACjB,IAAA,EAAM,EAAA;AAAA,EACN,EAAA,EAAI,MAAA;AAAA,EACJ,EAAA,EAAI,MAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,OAAA,GAAgB,KAAA,CAAA,UAAA;AAAA,EACpB,CAAC,IAAuE,GAAA,KAAQ;AAA/E,IAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAAW,WAAA,GAAc,YAAA,EAAc,OAAA,GAAU,MAAA,EAhBtD,GAgBG,EAAA,EAA8D,KAAA,GAAA,SAAA,CAA9D,EAAA,EAA8D,CAA5D,WAAA,EAAW,aAAA,EAA4B,SAAA,CAAA,CAAA;AACxC,IAAA,IAAI,gBAAgB,UAAA,EAAY;AAC9B,MAAA,uBACE,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,EAAA,CAAG,yDAAA,EAA2D,SAAS,CAAA;AAAA,UAClF,IAAA,EAAK,WAAA;AAAA,UACL,kBAAA,EAAiB;AAAA;AAAA,OACnB;AAAA,IAEJ;AAEA,IAAA,uBACE,GAAA;AAAA,MAAC,IAAA;AAAA,MAAA,cAAA,CAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,2CAAA;AAAA,UACA,WAAW,OAAO,CAAA;AAAA,UAClB;AAAA;AACF,OAAA,EACI,KAAA;AAAA,KACN;AAAA,EAEJ;AACF;AACA,OAAA,CAAQ,WAAA,GAAc,SAAA","file":"chunk-BCX5S6PO.js","sourcesContent":["import * as React from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface DividerProps extends React.HTMLAttributes<HTMLHRElement> {\n orientation?: \"horizontal\" | \"vertical\";\n spacing?: \"none\" | \"sm\" | \"md\" | \"lg\";\n}\n\nconst spacingMap = {\n none: \"\",\n sm: \"my-2\",\n md: \"my-4\",\n lg: \"my-6\",\n};\n\nconst Divider = React.forwardRef<HTMLHRElement, DividerProps>(\n ({ className, orientation = \"horizontal\", spacing = \"none\", ...props }, ref) => {\n if (orientation === \"vertical\") {\n return (\n <div\n className={cn(\"inline-block w-px self-stretch bg-[var(--color-border)]\", className)}\n role=\"separator\"\n aria-orientation=\"vertical\"\n />\n );\n }\n\n return (\n <hr\n ref={ref}\n className={cn(\n \"border-none h-px bg-[var(--color-border)]\",\n spacingMap[spacing],\n className\n )}\n {...props}\n />\n );\n }\n);\nDivider.displayName = \"Divider\";\n\nexport { Divider };\n"]}
@@ -0,0 +1,61 @@
1
+ 'use strict';
2
+
3
+ var chunk4V3IOZPC_cjs = require('./chunk-4V3IOZPC.cjs');
4
+ var PopoverPrimitive = require('@radix-ui/react-popover');
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+
7
+ function _interopNamespace(e) {
8
+ if (e && e.__esModule) return e;
9
+ var n = Object.create(null);
10
+ if (e) {
11
+ Object.keys(e).forEach(function (k) {
12
+ if (k !== 'default') {
13
+ var d = Object.getOwnPropertyDescriptor(e, k);
14
+ Object.defineProperty(n, k, d.get ? d : {
15
+ enumerable: true,
16
+ get: function () { return e[k]; }
17
+ });
18
+ }
19
+ });
20
+ }
21
+ n.default = e;
22
+ return Object.freeze(n);
23
+ }
24
+
25
+ var PopoverPrimitive__namespace = /*#__PURE__*/_interopNamespace(PopoverPrimitive);
26
+
27
+ var Popover = ({
28
+ trigger,
29
+ children,
30
+ open,
31
+ onOpenChange,
32
+ side = "bottom",
33
+ align = "start",
34
+ sideOffset = 8,
35
+ className
36
+ }) => /* @__PURE__ */ jsxRuntime.jsxs(PopoverPrimitive__namespace.Root, { open, onOpenChange, children: [
37
+ /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Trigger, { asChild: true, children: trigger }),
38
+ /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
39
+ PopoverPrimitive__namespace.Content,
40
+ {
41
+ side,
42
+ align,
43
+ sideOffset,
44
+ className: chunk4V3IOZPC_cjs.cn(
45
+ "z-50 rounded-2xl border border-[var(--color-border)] bg-[var(--color-background)] shadow-lg",
46
+ "outline-none",
47
+ "data-[state=open]:animate-in data-[state=closed]:animate-out",
48
+ "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
49
+ "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
50
+ "data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2",
51
+ "data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2",
52
+ className
53
+ ),
54
+ children
55
+ }
56
+ ) })
57
+ ] });
58
+
59
+ exports.Popover = Popover;
60
+ //# sourceMappingURL=chunk-BJWRAJEH.cjs.map
61
+ //# sourceMappingURL=chunk-BJWRAJEH.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Popover/Popover.tsx"],"names":["jsxs","PopoverPrimitive","jsx","cn"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,IAAM,UAAU,CAAC;AAAA,EACf,OAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA;AAAA,EACA,YAAA;AAAA,EACA,IAAA,GAAO,QAAA;AAAA,EACP,KAAA,GAAQ,OAAA;AAAA,EACR,UAAA,GAAa,CAAA;AAAA,EACb;AACF,CAAA,qBACEA,eAAA,CAAkBC,2BAAA,CAAA,IAAA,EAAjB,EAAsB,IAAA,EAAY,YAAA,EACjC,QAAA,EAAA;AAAA,kBAAAC,cAAA,CAAkBD,2BAAA,CAAA,OAAA,EAAjB,EAAyB,OAAA,EAAO,IAAA,EAAE,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,kBAC3CC,cAAA,CAAkBD,oCAAjB,EACC,QAAA,kBAAAC,cAAA;AAAA,IAAkBD,2BAAA,CAAA,OAAA;AAAA,IAAjB;AAAA,MACC,IAAA;AAAA,MACA,KAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA,EAAWE,oBAAA;AAAA,QACT,6FAAA;AAAA,QACA,cAAA;AAAA,QACA,8DAAA;AAAA,QACA,4DAAA;AAAA,QACA,8DAAA;AAAA,QACA,+EAAA;AAAA,QACA,+EAAA;AAAA,QACA;AAAA,OACF;AAAA,MAEC;AAAA;AAAA,GACH,EACF;AAAA,CAAA,EACF","file":"chunk-BJWRAJEH.cjs","sourcesContent":["import * as React from \"react\";\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface PopoverProps {\n trigger: React.ReactNode;\n children: React.ReactNode;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n align?: \"start\" | \"center\" | \"end\";\n sideOffset?: number;\n className?: string;\n}\n\nconst Popover = ({\n trigger,\n children,\n open,\n onOpenChange,\n side = \"bottom\",\n align = \"start\",\n sideOffset = 8,\n className,\n}: PopoverProps) => (\n <PopoverPrimitive.Root open={open} onOpenChange={onOpenChange}>\n <PopoverPrimitive.Trigger asChild>{trigger}</PopoverPrimitive.Trigger>\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n side={side}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 rounded-2xl border border-[var(--color-border)] bg-[var(--color-background)] shadow-lg\",\n \"outline-none\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2\",\n \"data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2\",\n className\n )}\n >\n {children}\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n </PopoverPrimitive.Root>\n);\n\nexport { Popover };\n"]}
@@ -0,0 +1,68 @@
1
+ import { __objRest, __spreadProps, __spreadValues, cn } from './chunk-MVGUWG27.js';
2
+ import * as React from 'react';
3
+ import { cva } from 'class-variance-authority';
4
+ import { jsxs, jsx } from 'react/jsx-runtime';
5
+
6
+ var alertVariants = cva(
7
+ "flex gap-3 w-full rounded-2xl px-4 py-3.5 text-[14px]",
8
+ {
9
+ variants: {
10
+ variant: {
11
+ info: "bg-blue-50 text-blue-800 [&_svg]:text-blue-500",
12
+ positive: "bg-green-50 text-green-800 [&_svg]:text-[var(--color-positive)]",
13
+ negative: "bg-red-50 text-red-800 [&_svg]:text-[var(--color-negative)]",
14
+ warning: "bg-orange-50 text-orange-800 [&_svg]:text-[var(--color-warning)]",
15
+ neutral: "bg-[var(--color-muted)] text-[var(--color-foreground)] [&_svg]:text-[var(--color-muted-foreground)]"
16
+ }
17
+ },
18
+ defaultVariants: { variant: "info" }
19
+ }
20
+ );
21
+ var icons = {
22
+ info: /* @__PURE__ */ jsxs("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": true, children: [
23
+ /* @__PURE__ */ jsx("circle", { cx: "8", cy: "8", r: "7", stroke: "currentColor", strokeWidth: "1.5" }),
24
+ /* @__PURE__ */ jsx("path", { d: "M8 7v4M8 5.5v.5", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })
25
+ ] }),
26
+ positive: /* @__PURE__ */ jsxs("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": true, children: [
27
+ /* @__PURE__ */ jsx("circle", { cx: "8", cy: "8", r: "7", stroke: "currentColor", strokeWidth: "1.5" }),
28
+ /* @__PURE__ */ jsx("path", { d: "M5 8l2 2 4-4", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })
29
+ ] }),
30
+ negative: /* @__PURE__ */ jsxs("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": true, children: [
31
+ /* @__PURE__ */ jsx("circle", { cx: "8", cy: "8", r: "7", stroke: "currentColor", strokeWidth: "1.5" }),
32
+ /* @__PURE__ */ jsx("path", { d: "M8 5v3M8 10.5v.5", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })
33
+ ] }),
34
+ warning: /* @__PURE__ */ jsxs("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": true, children: [
35
+ /* @__PURE__ */ jsx("path", { d: "M8 2L14.5 13H1.5L8 2z", stroke: "currentColor", strokeWidth: "1.5", strokeLinejoin: "round" }),
36
+ /* @__PURE__ */ jsx("path", { d: "M8 6v3M8 10.5v.5", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })
37
+ ] }),
38
+ neutral: /* @__PURE__ */ jsxs("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": true, children: [
39
+ /* @__PURE__ */ jsx("circle", { cx: "8", cy: "8", r: "7", stroke: "currentColor", strokeWidth: "1.5" }),
40
+ /* @__PURE__ */ jsx("path", { d: "M8 7v4M8 5.5v.5", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })
41
+ ] })
42
+ };
43
+ var Alert = React.forwardRef(
44
+ (_a, ref) => {
45
+ var _b = _a, { className, variant = "info", title, icon = true, children } = _b, props = __objRest(_b, ["className", "variant", "title", "icon", "children"]);
46
+ return /* @__PURE__ */ jsxs(
47
+ "div",
48
+ __spreadProps(__spreadValues({
49
+ ref,
50
+ role: "alert",
51
+ className: cn(alertVariants({ variant }), className)
52
+ }, props), {
53
+ children: [
54
+ icon && /* @__PURE__ */ jsx("span", { className: "mt-0.5 shrink-0", children: icons[variant != null ? variant : "info"] }),
55
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-0.5", children: [
56
+ title && /* @__PURE__ */ jsx("p", { className: "font-semibold", children: title }),
57
+ children && /* @__PURE__ */ jsx("p", { className: "leading-snug opacity-90", children })
58
+ ] })
59
+ ]
60
+ })
61
+ );
62
+ }
63
+ );
64
+ Alert.displayName = "Alert";
65
+
66
+ export { Alert };
67
+ //# sourceMappingURL=chunk-CX55SVMP.js.map
68
+ //# sourceMappingURL=chunk-CX55SVMP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Alert/Alert.tsx"],"names":[],"mappings":"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","file":"chunk-CX55SVMP.js","sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst alertVariants = cva(\n \"flex gap-3 w-full rounded-2xl px-4 py-3.5 text-[14px]\",\n {\n variants: {\n variant: {\n info: \"bg-blue-50 text-blue-800 [&_svg]:text-blue-500\",\n positive: \"bg-green-50 text-green-800 [&_svg]:text-[var(--color-positive)]\",\n negative: \"bg-red-50 text-red-800 [&_svg]:text-[var(--color-negative)]\",\n warning: \"bg-orange-50 text-orange-800 [&_svg]:text-[var(--color-warning)]\",\n neutral: \"bg-[var(--color-muted)] text-[var(--color-foreground)] [&_svg]:text-[var(--color-muted-foreground)]\",\n },\n },\n defaultVariants: { variant: \"info\" },\n }\n);\n\nconst icons: Record<string, React.ReactNode> = {\n info: (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M8 7v4M8 5.5v.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n ),\n positive: (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M5 8l2 2 4-4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n ),\n negative: (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M8 5v3M8 10.5v.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n ),\n warning: (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <path d=\"M8 2L14.5 13H1.5L8 2z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n <path d=\"M8 6v3M8 10.5v.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n ),\n neutral: (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M8 7v4M8 5.5v.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n ),\n};\n\nexport interface AlertProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof alertVariants> {\n title?: string;\n icon?: boolean;\n}\n\nconst Alert = React.forwardRef<HTMLDivElement, AlertProps>(\n ({ className, variant = \"info\", title, icon = true, children, ...props }, ref) => (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n >\n {icon && (\n <span className=\"mt-0.5 shrink-0\">{icons[variant ?? \"info\"]}</span>\n )}\n <div className=\"flex flex-col gap-0.5\">\n {title && <p className=\"font-semibold\">{title}</p>}\n {children && <p className=\"leading-snug opacity-90\">{children}</p>}\n </div>\n </div>\n )\n);\nAlert.displayName = \"Alert\";\n\nexport { Alert };\n"]}
@@ -0,0 +1,130 @@
1
+ 'use strict';
2
+
3
+ var chunk4V3IOZPC_cjs = require('./chunk-4V3IOZPC.cjs');
4
+ var React = require('react');
5
+ var SelectPrimitive = require('@radix-ui/react-select');
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 React__namespace = /*#__PURE__*/_interopNamespace(React);
27
+ var SelectPrimitive__namespace = /*#__PURE__*/_interopNamespace(SelectPrimitive);
28
+
29
+ var Select = React__namespace.forwardRef(
30
+ ({
31
+ options,
32
+ value,
33
+ defaultValue,
34
+ onValueChange,
35
+ placeholder = "\uC120\uD0DD\uD558\uC138\uC694",
36
+ label,
37
+ helperText,
38
+ errorMessage,
39
+ isError,
40
+ disabled,
41
+ className
42
+ }, ref) => {
43
+ const id = React__namespace.useId();
44
+ const showError = isError && errorMessage;
45
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk4V3IOZPC_cjs.cn("flex flex-col gap-1.5", className), children: [
46
+ label && /* @__PURE__ */ jsxRuntime.jsx("label", { htmlFor: id, className: "text-[14px] font-medium text-[var(--color-foreground)]", children: label }),
47
+ /* @__PURE__ */ jsxRuntime.jsxs(
48
+ SelectPrimitive__namespace.Root,
49
+ {
50
+ value,
51
+ defaultValue,
52
+ onValueChange,
53
+ disabled,
54
+ children: [
55
+ /* @__PURE__ */ jsxRuntime.jsxs(
56
+ SelectPrimitive__namespace.Trigger,
57
+ {
58
+ ref,
59
+ id,
60
+ "aria-invalid": isError,
61
+ "aria-describedby": showError ? `${id}-error` : helperText ? `${id}-helper` : void 0,
62
+ className: chunk4V3IOZPC_cjs.cn(
63
+ "flex h-12 w-full items-center justify-between rounded-xl px-4",
64
+ "border border-[var(--color-border)] bg-[var(--color-input)] text-[16px]",
65
+ "transition-colors duration-150",
66
+ "focus:outline-none focus:ring-2 focus:ring-[var(--color-primary)] focus:ring-offset-0 focus:border-[var(--color-primary)]",
67
+ "data-[placeholder]:text-[var(--color-muted-foreground)]",
68
+ isError && "border-[var(--color-negative)] focus:ring-[var(--color-negative)]",
69
+ "disabled:opacity-40 disabled:cursor-not-allowed",
70
+ "select-none"
71
+ ),
72
+ children: [
73
+ /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Value, { placeholder }),
74
+ /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Icon, { className: "ml-2 shrink-0 text-[var(--color-muted-foreground)]", children: /* @__PURE__ */ jsxRuntime.jsx(ChevronDownIcon, {}) })
75
+ ]
76
+ }
77
+ ),
78
+ /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
79
+ SelectPrimitive__namespace.Content,
80
+ {
81
+ position: "popper",
82
+ sideOffset: 6,
83
+ className: chunk4V3IOZPC_cjs.cn(
84
+ "relative z-50 min-w-[8rem] w-[var(--radix-select-trigger-width)] overflow-hidden",
85
+ "rounded-xl border border-[var(--color-border)] bg-[var(--color-background)] shadow-lg",
86
+ "data-[state=open]:animate-in data-[state=closed]:animate-out",
87
+ "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
88
+ "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
89
+ "data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2"
90
+ ),
91
+ children: /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Viewport, { className: "p-1.5", children: options.map((option) => /* @__PURE__ */ jsxRuntime.jsxs(
92
+ SelectPrimitive__namespace.Item,
93
+ {
94
+ value: option.value,
95
+ disabled: option.disabled,
96
+ className: chunk4V3IOZPC_cjs.cn(
97
+ "relative flex w-full cursor-pointer select-none items-center rounded-lg px-3 py-2.5",
98
+ "text-[15px] text-[var(--color-foreground)]",
99
+ "outline-none transition-colors duration-100",
100
+ "focus:bg-[var(--color-muted)] data-[highlighted]:bg-[var(--color-muted)]",
101
+ "data-[state=checked]:text-[var(--color-primary)] data-[state=checked]:font-medium",
102
+ "data-[disabled]:opacity-40 data-[disabled]:pointer-events-none"
103
+ ),
104
+ children: [
105
+ /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemText, { children: option.label }),
106
+ /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemIndicator, { className: "ml-auto pl-2", children: /* @__PURE__ */ jsxRuntime.jsx(CheckIcon, {}) })
107
+ ]
108
+ },
109
+ option.value
110
+ )) })
111
+ }
112
+ ) })
113
+ ]
114
+ }
115
+ ),
116
+ showError ? /* @__PURE__ */ jsxRuntime.jsx("p", { id: `${id}-error`, role: "alert", className: "text-[13px] text-[var(--color-negative)]", children: errorMessage }) : helperText ? /* @__PURE__ */ jsxRuntime.jsx("p", { id: `${id}-helper`, className: "text-[13px] text-[var(--color-muted-foreground)]", children: helperText }) : null
117
+ ] });
118
+ }
119
+ );
120
+ Select.displayName = "Select";
121
+ function ChevronDownIcon() {
122
+ return /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m6 9 6 6 6-6" }) });
123
+ }
124
+ function CheckIcon() {
125
+ return /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M20 6 9 17l-5-5" }) });
126
+ }
127
+
128
+ exports.Select = Select;
129
+ //# sourceMappingURL=chunk-CZ4RHRM2.cjs.map
130
+ //# sourceMappingURL=chunk-CZ4RHRM2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Select/Select.tsx"],"names":["React","cn","jsxs","SelectPrimitive","jsx"],"mappings":"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","file":"chunk-CZ4RHRM2.cjs","sourcesContent":["import * as React from \"react\";\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface SelectOption {\n value: string;\n label: string;\n disabled?: boolean;\n}\n\nexport interface SelectProps {\n options: SelectOption[];\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n placeholder?: string;\n label?: string;\n helperText?: string;\n errorMessage?: string;\n isError?: boolean;\n disabled?: boolean;\n className?: string;\n}\n\nconst Select = React.forwardRef<HTMLButtonElement, SelectProps>(\n (\n {\n options,\n value,\n defaultValue,\n onValueChange,\n placeholder = \"선택하세요\",\n label,\n helperText,\n errorMessage,\n isError,\n disabled,\n className,\n },\n ref\n ) => {\n const id = React.useId();\n const showError = isError && errorMessage;\n\n return (\n <div className={cn(\"flex flex-col gap-1.5\", className)}>\n {label && (\n <label htmlFor={id} className=\"text-[14px] font-medium text-[var(--color-foreground)]\">\n {label}\n </label>\n )}\n <SelectPrimitive.Root\n value={value}\n defaultValue={defaultValue}\n onValueChange={onValueChange}\n disabled={disabled}\n >\n <SelectPrimitive.Trigger\n ref={ref}\n id={id}\n aria-invalid={isError}\n aria-describedby={showError ? `${id}-error` : helperText ? `${id}-helper` : undefined}\n className={cn(\n \"flex h-12 w-full items-center justify-between rounded-xl px-4\",\n \"border border-[var(--color-border)] bg-[var(--color-input)] text-[16px]\",\n \"transition-colors duration-150\",\n \"focus:outline-none focus:ring-2 focus:ring-[var(--color-primary)] focus:ring-offset-0 focus:border-[var(--color-primary)]\",\n \"data-[placeholder]:text-[var(--color-muted-foreground)]\",\n isError && \"border-[var(--color-negative)] focus:ring-[var(--color-negative)]\",\n \"disabled:opacity-40 disabled:cursor-not-allowed\",\n \"select-none\"\n )}\n >\n <SelectPrimitive.Value placeholder={placeholder} />\n <SelectPrimitive.Icon className=\"ml-2 shrink-0 text-[var(--color-muted-foreground)]\">\n <ChevronDownIcon />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n position=\"popper\"\n sideOffset={6}\n className={cn(\n \"relative z-50 min-w-[8rem] w-[var(--radix-select-trigger-width)] overflow-hidden\",\n \"rounded-xl border border-[var(--color-border)] bg-[var(--color-background)] shadow-lg\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2\"\n )}\n >\n <SelectPrimitive.Viewport className=\"p-1.5\">\n {options.map((option) => (\n <SelectPrimitive.Item\n key={option.value}\n value={option.value}\n disabled={option.disabled}\n className={cn(\n \"relative flex w-full cursor-pointer select-none items-center rounded-lg px-3 py-2.5\",\n \"text-[15px] text-[var(--color-foreground)]\",\n \"outline-none transition-colors duration-100\",\n \"focus:bg-[var(--color-muted)] data-[highlighted]:bg-[var(--color-muted)]\",\n \"data-[state=checked]:text-[var(--color-primary)] data-[state=checked]:font-medium\",\n \"data-[disabled]:opacity-40 data-[disabled]:pointer-events-none\"\n )}\n >\n <SelectPrimitive.ItemText>{option.label}</SelectPrimitive.ItemText>\n <SelectPrimitive.ItemIndicator className=\"ml-auto pl-2\">\n <CheckIcon />\n </SelectPrimitive.ItemIndicator>\n </SelectPrimitive.Item>\n ))}\n </SelectPrimitive.Viewport>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n </SelectPrimitive.Root>\n\n {showError ? (\n <p id={`${id}-error`} role=\"alert\" className=\"text-[13px] text-[var(--color-negative)]\">\n {errorMessage}\n </p>\n ) : helperText ? (\n <p id={`${id}-helper`} className=\"text-[13px] text-[var(--color-muted-foreground)]\">\n {helperText}\n </p>\n ) : null}\n </div>\n );\n }\n);\nSelect.displayName = \"Select\";\n\nfunction ChevronDownIcon() {\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n );\n}\n\nfunction CheckIcon() {\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n );\n}\n\nexport { Select };\n"]}