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,134 @@
1
+ import { LazyMotion, domAnimation, m } from './chunk-Y3CWICHE.js';
2
+ import { __objRest, __spreadProps, __spreadValues, cn } from './chunk-MVGUWG27.js';
3
+ import * as React from 'react';
4
+ import { Slot } from '@radix-ui/react-slot';
5
+ import { cva } from 'class-variance-authority';
6
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
7
+
8
+ var buttonVariants = cva(
9
+ [
10
+ "inline-flex items-center justify-center",
11
+ "font-semibold rounded-xl",
12
+ "transition-colors duration-150",
13
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
14
+ "disabled:pointer-events-none disabled:opacity-40",
15
+ "select-none cursor-pointer"
16
+ ],
17
+ {
18
+ variants: {
19
+ variant: {
20
+ primary: [
21
+ "bg-[var(--color-primary)] text-white",
22
+ "hover:bg-[var(--color-primary-hover)]",
23
+ "focus-visible:ring-[var(--color-primary)]"
24
+ ],
25
+ secondary: [
26
+ "bg-[var(--color-muted)] text-[var(--color-foreground)]",
27
+ "hover:bg-[var(--color-gray-200)]"
28
+ ],
29
+ outline: [
30
+ "border border-[var(--color-border)] bg-transparent text-[var(--color-foreground)]",
31
+ "hover:bg-[var(--color-muted)]"
32
+ ],
33
+ ghost: [
34
+ "bg-transparent text-[var(--color-foreground)]",
35
+ "hover:bg-[var(--color-muted)]"
36
+ ],
37
+ danger: [
38
+ "bg-[var(--color-negative)] text-white",
39
+ "hover:opacity-90"
40
+ ]
41
+ },
42
+ size: {
43
+ sm: "h-9 px-4 text-sm gap-1.5",
44
+ md: "h-11 px-5 text-body1 gap-2",
45
+ lg: "h-14 px-6 text-body1 gap-2"
46
+ },
47
+ fullWidth: {
48
+ true: "w-full"
49
+ }
50
+ },
51
+ defaultVariants: {
52
+ variant: "primary",
53
+ size: "md"
54
+ }
55
+ }
56
+ );
57
+ var Button = React.forwardRef(
58
+ (_a, ref) => {
59
+ var _b = _a, {
60
+ className,
61
+ variant,
62
+ size,
63
+ fullWidth,
64
+ asChild = false,
65
+ loading = false,
66
+ disabled,
67
+ children
68
+ } = _b, props = __objRest(_b, [
69
+ "className",
70
+ "variant",
71
+ "size",
72
+ "fullWidth",
73
+ "asChild",
74
+ "loading",
75
+ "disabled",
76
+ "children"
77
+ ]);
78
+ const Comp = asChild ? Slot : "button";
79
+ return /* @__PURE__ */ jsx(LazyMotion, { features: domAnimation, children: /* @__PURE__ */ jsx(
80
+ m.div,
81
+ {
82
+ whileTap: { scale: disabled || loading ? 1 : 0.96 },
83
+ transition: { type: "spring", stiffness: 400, damping: 17 },
84
+ style: { display: "inline-flex", width: fullWidth ? "100%" : void 0 },
85
+ children: /* @__PURE__ */ jsx(
86
+ Comp,
87
+ __spreadProps(__spreadValues({
88
+ ref,
89
+ className: cn(buttonVariants({ variant, size, fullWidth, className })),
90
+ disabled: disabled || loading,
91
+ "aria-disabled": disabled || loading
92
+ }, props), {
93
+ children: loading ? /* @__PURE__ */ jsxs(Fragment, { children: [
94
+ /* @__PURE__ */ jsx(Spinner, { size: size === "sm" ? 14 : 16 }),
95
+ children
96
+ ] }) : children
97
+ })
98
+ )
99
+ }
100
+ ) });
101
+ }
102
+ );
103
+ Button.displayName = "Button";
104
+ function Spinner({ size = 16 }) {
105
+ return /* @__PURE__ */ jsx(
106
+ m.svg,
107
+ {
108
+ width: size,
109
+ height: size,
110
+ viewBox: "0 0 16 16",
111
+ fill: "none",
112
+ animate: { rotate: 360 },
113
+ transition: { duration: 0.8, repeat: Infinity, ease: "linear" },
114
+ "aria-hidden": "true",
115
+ children: /* @__PURE__ */ jsx(
116
+ "circle",
117
+ {
118
+ cx: "8",
119
+ cy: "8",
120
+ r: "6",
121
+ stroke: "currentColor",
122
+ strokeWidth: "2",
123
+ strokeLinecap: "round",
124
+ strokeDasharray: "25 13",
125
+ opacity: "0.8"
126
+ }
127
+ )
128
+ }
129
+ );
130
+ }
131
+
132
+ export { Button, buttonVariants };
133
+ //# sourceMappingURL=chunk-4C6E37KK.js.map
134
+ //# sourceMappingURL=chunk-4C6E37KK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Button/Button.tsx"],"names":[],"mappings":"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","file":"chunk-4C6E37KK.js","sourcesContent":["import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { m, LazyMotion, domAnimation } from \"../../utils/motion\";\nimport { cn } from \"../../utils/cn\";\n\nconst buttonVariants = cva(\n [\n \"inline-flex items-center justify-center\",\n \"font-semibold rounded-xl\",\n \"transition-colors duration-150\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2\",\n \"disabled:pointer-events-none disabled:opacity-40\",\n \"select-none cursor-pointer\",\n ],\n {\n variants: {\n variant: {\n primary: [\n \"bg-[var(--color-primary)] text-white\",\n \"hover:bg-[var(--color-primary-hover)]\",\n \"focus-visible:ring-[var(--color-primary)]\",\n ],\n secondary: [\n \"bg-[var(--color-muted)] text-[var(--color-foreground)]\",\n \"hover:bg-[var(--color-gray-200)]\",\n ],\n outline: [\n \"border border-[var(--color-border)] bg-transparent text-[var(--color-foreground)]\",\n \"hover:bg-[var(--color-muted)]\",\n ],\n ghost: [\n \"bg-transparent text-[var(--color-foreground)]\",\n \"hover:bg-[var(--color-muted)]\",\n ],\n danger: [\n \"bg-[var(--color-negative)] text-white\",\n \"hover:opacity-90\",\n ],\n },\n size: {\n sm: \"h-9 px-4 text-sm gap-1.5\",\n md: \"h-11 px-5 text-body1 gap-2\",\n lg: \"h-14 px-6 text-body1 gap-2\",\n },\n fullWidth: {\n true: \"w-full\",\n },\n },\n defaultVariants: {\n variant: \"primary\",\n size: \"md\",\n },\n }\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n loading?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n variant,\n size,\n fullWidth,\n asChild = false,\n loading = false,\n disabled,\n children,\n ...props\n },\n ref\n ) => {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <LazyMotion features={domAnimation}>\n <m.div\n whileTap={{ scale: disabled || loading ? 1 : 0.96 }}\n transition={{ type: \"spring\", stiffness: 400, damping: 17 }}\n style={{ display: \"inline-flex\", width: fullWidth ? \"100%\" : undefined }}\n >\n <Comp\n ref={ref}\n className={cn(buttonVariants({ variant, size, fullWidth, className }))}\n disabled={disabled || loading}\n aria-disabled={disabled || loading}\n {...props}\n >\n {loading ? (\n <>\n <Spinner size={size === \"sm\" ? 14 : 16} />\n {children}\n </>\n ) : (\n children\n )}\n </Comp>\n </m.div>\n </LazyMotion>\n );\n }\n);\nButton.displayName = \"Button\";\n\nfunction Spinner({ size = 16 }: { size?: number }) {\n return (\n <m.svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n animate={{ rotate: 360 }}\n transition={{ duration: 0.8, repeat: Infinity, ease: \"linear\" }}\n aria-hidden=\"true\"\n >\n <circle\n cx=\"8\"\n cy=\"8\"\n r=\"6\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeDasharray=\"25 13\"\n opacity=\"0.8\"\n />\n </m.svg>\n );\n}\n\nexport { Button, buttonVariants };\n"]}
@@ -0,0 +1,115 @@
1
+ 'use strict';
2
+
3
+ var chunk4V3IOZPC_cjs = require('./chunk-4V3IOZPC.cjs');
4
+ var AccordionPrimitive = require('@radix-ui/react-accordion');
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 AccordionPrimitive__namespace = /*#__PURE__*/_interopNamespace(AccordionPrimitive);
26
+
27
+ var Accordion = (_a) => {
28
+ var _b = _a, {
29
+ items,
30
+ type = "single",
31
+ defaultValue,
32
+ collapsible = true,
33
+ className
34
+ } = _b; chunk4V3IOZPC_cjs.__objRest(_b, [
35
+ "items",
36
+ "type",
37
+ "defaultValue",
38
+ "collapsible",
39
+ "className"
40
+ ]);
41
+ const rootProps = type === "single" ? {
42
+ type: "single",
43
+ defaultValue,
44
+ collapsible
45
+ } : {
46
+ type: "multiple",
47
+ defaultValue
48
+ };
49
+ return /* @__PURE__ */ jsxRuntime.jsx(
50
+ AccordionPrimitive__namespace.Root,
51
+ chunk4V3IOZPC_cjs.__spreadProps(chunk4V3IOZPC_cjs.__spreadValues({}, rootProps), {
52
+ className: chunk4V3IOZPC_cjs.cn("w-full divide-y divide-[var(--color-border)]", className),
53
+ children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsxs(
54
+ AccordionPrimitive__namespace.Item,
55
+ {
56
+ value: item.value,
57
+ disabled: item.disabled,
58
+ className: "group",
59
+ children: [
60
+ /* @__PURE__ */ jsxRuntime.jsx(AccordionPrimitive__namespace.Header, { children: /* @__PURE__ */ jsxRuntime.jsxs(
61
+ AccordionPrimitive__namespace.Trigger,
62
+ {
63
+ className: chunk4V3IOZPC_cjs.cn(
64
+ "flex w-full items-center justify-between py-4 px-0",
65
+ "text-[15px] font-medium text-[var(--color-foreground)]",
66
+ "transition-colors duration-150 text-left",
67
+ "hover:text-[var(--color-primary)]",
68
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-primary)] focus-visible:ring-offset-2 rounded-md",
69
+ "disabled:opacity-40 disabled:cursor-not-allowed",
70
+ "[&[data-state=open]>svg]:rotate-180"
71
+ ),
72
+ children: [
73
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 pr-4", children: item.trigger }),
74
+ /* @__PURE__ */ jsxRuntime.jsx(ChevronDownIcon, { className: "shrink-0 text-[var(--color-muted-foreground)] transition-transform duration-200" })
75
+ ]
76
+ }
77
+ ) }),
78
+ /* @__PURE__ */ jsxRuntime.jsx(
79
+ AccordionPrimitive__namespace.Content,
80
+ {
81
+ className: chunk4V3IOZPC_cjs.cn(
82
+ "overflow-hidden text-[14px] text-[var(--color-muted-foreground)]",
83
+ "data-[state=open]:animate-accordion-down data-[state=closed]:animate-accordion-up"
84
+ ),
85
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pb-4", children: item.content })
86
+ }
87
+ )
88
+ ]
89
+ },
90
+ item.value
91
+ ))
92
+ })
93
+ );
94
+ };
95
+ function ChevronDownIcon({ className }) {
96
+ return /* @__PURE__ */ jsxRuntime.jsx(
97
+ "svg",
98
+ {
99
+ width: "18",
100
+ height: "18",
101
+ viewBox: "0 0 24 24",
102
+ fill: "none",
103
+ stroke: "currentColor",
104
+ strokeWidth: "2",
105
+ strokeLinecap: "round",
106
+ strokeLinejoin: "round",
107
+ className,
108
+ children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m6 9 6 6 6-6" })
109
+ }
110
+ );
111
+ }
112
+
113
+ exports.Accordion = Accordion;
114
+ //# sourceMappingURL=chunk-4S23TNFZ.cjs.map
115
+ //# sourceMappingURL=chunk-4S23TNFZ.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Accordion/Accordion.tsx"],"names":["__objRest","jsx","AccordionPrimitive","__spreadProps","cn","jsxs"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,IAAM,SAAA,GAAY,CAAC,EAAA,KAOG;AAPH,EAAA,IAAA,EAAA,GAAA,EAAA,CAAA,CACjB;AAAA,IAAA,KAAA;AAAA,IACA,IAAA,GAAO,QAAA;AAAA,IACP,YAAA;AAAA,IACA,WAAA,GAAc,IAAA;AAAA,IACd;AAAA,GA1BF,GAqBmB,EAAA,CAAA,CAMdA,2BAAA,CANc,EAAA,EAMd;AAAA,IALH,OAAA;AAAA,IACA,MAAA;AAAA,IACA,cAAA;AAAA,IACA,aAAA;AAAA,IACA;AAAA,GAAA;AAGA,EAAA,MAAM,SAAA,GACJ,SAAS,QAAA,GACL;AAAA,IACE,IAAA,EAAM,QAAA;AAAA,IACN,YAAA;AAAA,IACA;AAAA,GACF,GACA;AAAA,IACE,IAAA,EAAM,UAAA;AAAA,IACN;AAAA,GACF;AAEN,EAAA,uBACEC,cAAA;AAAA,IAAoBC,6BAAA,CAAA,IAAA;AAAA,IAAnBC,qEACK,SAAA,CAAA,EADL;AAAA,MAEC,SAAA,EAAWC,oBAAA,CAAG,8CAAA,EAAgD,SAAS,CAAA;AAAA,MAEtE,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,qBACVC,eAAA;AAAA,QAAoBH,6BAAA,CAAA,IAAA;AAAA,QAAnB;AAAA,UAEC,OAAO,IAAA,CAAK,KAAA;AAAA,UACZ,UAAU,IAAA,CAAK,QAAA;AAAA,UACf,SAAA,EAAU,OAAA;AAAA,UAEV,QAAA,EAAA;AAAA,4BAAAD,cAAA,CAAoBC,sCAAnB,EACC,QAAA,kBAAAG,eAAA;AAAA,cAAoBH,6BAAA,CAAA,OAAA;AAAA,cAAnB;AAAA,gBACC,SAAA,EAAWE,oBAAA;AAAA,kBACT,oDAAA;AAAA,kBACA,wDAAA;AAAA,kBACA,0CAAA;AAAA,kBACA,mCAAA;AAAA,kBACA,kIAAA;AAAA,kBACA,iDAAA;AAAA,kBACA;AAAA,iBACF;AAAA,gBAEA,QAAA,EAAA;AAAA,kCAAAH,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,aAAA,EAAe,QAAA,EAAA,IAAA,CAAK,OAAA,EAAQ,CAAA;AAAA,kCAC5CA,cAAA,CAAC,eAAA,EAAA,EAAgB,SAAA,EAAU,iFAAA,EAAkF;AAAA;AAAA;AAAA,aAC/G,EACF,CAAA;AAAA,4BACAA,cAAA;AAAA,cAAoBC,6BAAA,CAAA,OAAA;AAAA,cAAnB;AAAA,gBACC,SAAA,EAAWE,oBAAA;AAAA,kBACT,kEAAA;AAAA,kBACA;AAAA,iBACF;AAAA,gBAEA,QAAA,kBAAAH,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,MAAA,EAAQ,eAAK,OAAA,EAAQ;AAAA;AAAA;AACtC;AAAA,SAAA;AAAA,QA5BK,IAAA,CAAK;AAAA,OA8Bb;AAAA,KAAA;AAAA,GACH;AAEJ;AAEA,SAAS,eAAA,CAAgB,EAAE,SAAA,EAAU,EAA2B;AAC9D,EAAA,uBACEA,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAM,IAAA;AAAA,MACN,MAAA,EAAO,IAAA;AAAA,MACP,OAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAK,MAAA;AAAA,MACL,MAAA,EAAO,cAAA;AAAA,MACP,WAAA,EAAY,GAAA;AAAA,MACZ,aAAA,EAAc,OAAA;AAAA,MACd,cAAA,EAAe,OAAA;AAAA,MACf,SAAA;AAAA,MAEA,QAAA,kBAAAA,cAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,cAAA,EAAe;AAAA;AAAA,GACzB;AAEJ","file":"chunk-4S23TNFZ.cjs","sourcesContent":["import * as React from \"react\";\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface AccordionItem {\n value: string;\n trigger: React.ReactNode;\n content: React.ReactNode;\n disabled?: boolean;\n}\n\nexport interface AccordionProps {\n items: AccordionItem[];\n type?: \"single\" | \"multiple\";\n defaultValue?: string | string[];\n value?: string | string[];\n onValueChange?: ((value: string) => void) & ((value: string[]) => void);\n collapsible?: boolean;\n className?: string;\n}\n\nconst Accordion = ({\n items,\n type = \"single\",\n defaultValue,\n collapsible = true,\n className,\n ...props\n}: AccordionProps) => {\n const rootProps =\n type === \"single\"\n ? {\n type: \"single\" as const,\n defaultValue: defaultValue as string | undefined,\n collapsible,\n }\n : {\n type: \"multiple\" as const,\n defaultValue: defaultValue as string[] | undefined,\n };\n\n return (\n <AccordionPrimitive.Root\n {...rootProps}\n className={cn(\"w-full divide-y divide-[var(--color-border)]\", className)}\n >\n {items.map((item) => (\n <AccordionPrimitive.Item\n key={item.value}\n value={item.value}\n disabled={item.disabled}\n className=\"group\"\n >\n <AccordionPrimitive.Header>\n <AccordionPrimitive.Trigger\n className={cn(\n \"flex w-full items-center justify-between py-4 px-0\",\n \"text-[15px] font-medium text-[var(--color-foreground)]\",\n \"transition-colors duration-150 text-left\",\n \"hover:text-[var(--color-primary)]\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-primary)] focus-visible:ring-offset-2 rounded-md\",\n \"disabled:opacity-40 disabled:cursor-not-allowed\",\n \"[&[data-state=open]>svg]:rotate-180\"\n )}\n >\n <span className=\"flex-1 pr-4\">{item.trigger}</span>\n <ChevronDownIcon className=\"shrink-0 text-[var(--color-muted-foreground)] transition-transform duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n <AccordionPrimitive.Content\n className={cn(\n \"overflow-hidden text-[14px] text-[var(--color-muted-foreground)]\",\n \"data-[state=open]:animate-accordion-down data-[state=closed]:animate-accordion-up\"\n )}\n >\n <div className=\"pb-4\">{item.content}</div>\n </AccordionPrimitive.Content>\n </AccordionPrimitive.Item>\n ))}\n </AccordionPrimitive.Root>\n );\n};\n\nfunction ChevronDownIcon({ className }: { className?: string }) {\n return (\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n );\n}\n\nexport { Accordion };\n"]}
@@ -0,0 +1,61 @@
1
+ 'use strict';
2
+
3
+ var clsx = require('clsx');
4
+ var tailwindMerge = require('tailwind-merge');
5
+
6
+ var __defProp = Object.defineProperty;
7
+ var __defProps = Object.defineProperties;
8
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
9
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
10
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
11
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
12
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13
+ var __spreadValues = (a, b) => {
14
+ for (var prop in b || (b = {}))
15
+ if (__hasOwnProp.call(b, prop))
16
+ __defNormalProp(a, prop, b[prop]);
17
+ if (__getOwnPropSymbols)
18
+ for (var prop of __getOwnPropSymbols(b)) {
19
+ if (__propIsEnum.call(b, prop))
20
+ __defNormalProp(a, prop, b[prop]);
21
+ }
22
+ return a;
23
+ };
24
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
25
+ var __objRest = (source, exclude) => {
26
+ var target = {};
27
+ for (var prop in source)
28
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
29
+ target[prop] = source[prop];
30
+ if (source != null && __getOwnPropSymbols)
31
+ for (var prop of __getOwnPropSymbols(source)) {
32
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
33
+ target[prop] = source[prop];
34
+ }
35
+ return target;
36
+ };
37
+ var twMerge = tailwindMerge.extendTailwindMerge({
38
+ extend: {
39
+ classGroups: {
40
+ "font-size": [
41
+ "text-display1",
42
+ "text-title1",
43
+ "text-title2",
44
+ "text-title3",
45
+ "text-body1",
46
+ "text-body2",
47
+ "text-caption1"
48
+ ]
49
+ }
50
+ }
51
+ });
52
+ function cn(...inputs) {
53
+ return twMerge(clsx.clsx(inputs));
54
+ }
55
+
56
+ exports.__objRest = __objRest;
57
+ exports.__spreadProps = __spreadProps;
58
+ exports.__spreadValues = __spreadValues;
59
+ exports.cn = cn;
60
+ //# sourceMappingURL=chunk-4V3IOZPC.cjs.map
61
+ //# sourceMappingURL=chunk-4V3IOZPC.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/cn.ts"],"names":["extendTailwindMerge","clsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,IAAM,UAAUA,iCAAA,CAAoB;AAAA,EAClC,MAAA,EAAQ;AAAA,IACN,WAAA,EAAa;AAAA,MACX,WAAA,EAAa;AAAA,QACX,eAAA;AAAA,QACA,aAAA;AAAA,QACA,aAAA;AAAA,QACA,aAAA;AAAA,QACA,YAAA;AAAA,QACA,YAAA;AAAA,QACA;AAAA;AACF;AACF;AAEJ,CAAC,CAAA;AAEM,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,OAAA,CAAQC,SAAA,CAAK,MAAM,CAAC,CAAA;AAC7B","file":"chunk-4V3IOZPC.cjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { extendTailwindMerge } from \"tailwind-merge\";\n\nconst twMerge = extendTailwindMerge({\n extend: {\n classGroups: {\n \"font-size\": [\n \"text-display1\",\n \"text-title1\",\n \"text-title2\",\n \"text-title3\",\n \"text-body1\",\n \"text-body2\",\n \"text-caption1\",\n ],\n },\n },\n});\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"]}
@@ -0,0 +1,69 @@
1
+ 'use strict';
2
+
3
+ var chunk4V3IOZPC_cjs = require('./chunk-4V3IOZPC.cjs');
4
+ var React = require('react');
5
+ var classVarianceAuthority = require('class-variance-authority');
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
+
28
+ var badgeVariants = classVarianceAuthority.cva(
29
+ "inline-flex items-center justify-center font-semibold rounded-full select-none",
30
+ {
31
+ variants: {
32
+ variant: {
33
+ primary: "bg-[var(--color-primary)] text-white",
34
+ positive: "bg-[var(--color-positive)] text-white",
35
+ negative: "bg-[var(--color-negative)] text-white",
36
+ warning: "bg-[var(--color-warning)] text-white",
37
+ neutral: "bg-[var(--color-muted)] text-[var(--color-muted-foreground)]",
38
+ outline: "border border-[var(--color-border)] text-[var(--color-foreground)] bg-transparent"
39
+ },
40
+ size: {
41
+ sm: "text-[10px] px-1.5 h-4",
42
+ md: "text-[12px] px-2 h-5",
43
+ lg: "text-[13px] px-2.5 h-6"
44
+ }
45
+ },
46
+ defaultVariants: {
47
+ variant: "primary",
48
+ size: "md"
49
+ }
50
+ }
51
+ );
52
+ var Badge = React__namespace.forwardRef(
53
+ (_a, ref) => {
54
+ var _b = _a, { className, variant, size } = _b, props = chunk4V3IOZPC_cjs.__objRest(_b, ["className", "variant", "size"]);
55
+ return /* @__PURE__ */ jsxRuntime.jsx(
56
+ "span",
57
+ chunk4V3IOZPC_cjs.__spreadValues({
58
+ ref,
59
+ className: chunk4V3IOZPC_cjs.cn(badgeVariants({ variant, size }), className)
60
+ }, props)
61
+ );
62
+ }
63
+ );
64
+ Badge.displayName = "Badge";
65
+
66
+ exports.Badge = Badge;
67
+ exports.badgeVariants = badgeVariants;
68
+ //# sourceMappingURL=chunk-4YQPDHZP.cjs.map
69
+ //# sourceMappingURL=chunk-4YQPDHZP.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Badge/Badge.tsx"],"names":["cva","React","__objRest","jsx","__spreadValues","cn"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAM,aAAA,GAAgBA,0BAAA;AAAA,EACpB,gFAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,sCAAA;AAAA,QACT,QAAA,EAAU,uCAAA;AAAA,QACV,QAAA,EAAU,uCAAA;AAAA,QACV,OAAA,EAAS,sCAAA;AAAA,QACT,OAAA,EAAS,8DAAA;AAAA,QACT,OAAA,EAAS;AAAA,OACX;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,wBAAA;AAAA,QACJ,EAAA,EAAI,sBAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;AAMA,IAAM,KAAA,GAAcC,gBAAA,CAAA,UAAA;AAAA,EAClB,CAAC,IAAwC,GAAA,KAAK;AAA7C,IAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAAW,SAAS,IAAA,EAlCzB,GAkCG,IAA+B,KAAA,GAAAC,2BAAA,CAA/B,EAAA,EAA+B,CAA7B,WAAA,EAAW,SAAA,EAAS,MAAA,CAAA,CAAA;AACrB,IAAA,uBAAAC,cAAA;AAAA,MAAC,MAAA;AAAA,MAAAC,gCAAA,CAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAWC,qBAAG,aAAA,CAAc,EAAE,SAAS,IAAA,EAAM,GAAG,SAAS;AAAA,OAAA,EACrD,KAAA;AAAA,KACN;AAAA,EAAA;AAEJ;AACA,KAAA,CAAM,WAAA,GAAc,OAAA","file":"chunk-4YQPDHZP.cjs","sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center justify-center font-semibold rounded-full select-none\",\n {\n variants: {\n variant: {\n primary: \"bg-[var(--color-primary)] text-white\",\n positive: \"bg-[var(--color-positive)] text-white\",\n negative: \"bg-[var(--color-negative)] text-white\",\n warning: \"bg-[var(--color-warning)] text-white\",\n neutral: \"bg-[var(--color-muted)] text-[var(--color-muted-foreground)]\",\n outline: \"border border-[var(--color-border)] text-[var(--color-foreground)] bg-transparent\",\n },\n size: {\n sm: \"text-[10px] px-1.5 h-4\",\n md: \"text-[12px] px-2 h-5\",\n lg: \"text-[13px] px-2.5 h-6\",\n },\n },\n defaultVariants: {\n variant: \"primary\",\n size: \"md\",\n },\n }\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof badgeVariants> {}\n\nconst Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(\n ({ className, variant, size, ...props }, ref) => (\n <span\n ref={ref}\n className={cn(badgeVariants({ variant, size }), className)}\n {...props}\n />\n )\n);\nBadge.displayName = \"Badge\";\n\nexport { Badge, badgeVariants };\n"]}
@@ -0,0 +1,101 @@
1
+ import { cn, __objRest, __spreadProps, __spreadValues } from './chunk-MVGUWG27.js';
2
+ import * as React from 'react';
3
+ import { jsxs, jsx } from 'react/jsx-runtime';
4
+
5
+ function range(start, end) {
6
+ return Array.from({ length: end - start + 1 }, (_, i) => start + i);
7
+ }
8
+ function usePaginationRange(page, totalPages, siblingCount) {
9
+ return React.useMemo(() => {
10
+ const totalPageNumbers = siblingCount * 2 + 5;
11
+ if (totalPages <= totalPageNumbers) {
12
+ return range(1, totalPages);
13
+ }
14
+ const leftSiblingIndex = Math.max(page - siblingCount, 1);
15
+ const rightSiblingIndex = Math.min(page + siblingCount, totalPages);
16
+ const showLeftDots = leftSiblingIndex > 2;
17
+ const showRightDots = rightSiblingIndex < totalPages - 1;
18
+ if (!showLeftDots && showRightDots) {
19
+ const leftRange = range(1, 3 + 2 * siblingCount);
20
+ return [...leftRange, "...", totalPages];
21
+ }
22
+ if (showLeftDots && !showRightDots) {
23
+ const rightRange = range(totalPages - (3 + 2 * siblingCount) + 1, totalPages);
24
+ return [1, "...", ...rightRange];
25
+ }
26
+ const middleRange = range(leftSiblingIndex, rightSiblingIndex);
27
+ return [1, "...", ...middleRange, "...", totalPages];
28
+ }, [page, totalPages, siblingCount]);
29
+ }
30
+ var Pagination = ({ page, totalPages, onPageChange, siblingCount = 1, className }) => {
31
+ const pages = usePaginationRange(page, totalPages, siblingCount);
32
+ return /* @__PURE__ */ jsxs("nav", { "aria-label": "\uD398\uC774\uC9C0 \uD0D0\uC0C9", className: cn("flex items-center gap-1", className), children: [
33
+ /* @__PURE__ */ jsx(
34
+ PaginationButton,
35
+ {
36
+ onClick: () => onPageChange(page - 1),
37
+ disabled: page <= 1,
38
+ "aria-label": "\uC774\uC804 \uD398\uC774\uC9C0",
39
+ children: /* @__PURE__ */ jsx(ChevronLeftIcon, {})
40
+ }
41
+ ),
42
+ pages.map(
43
+ (p, i) => p === "..." ? /* @__PURE__ */ jsx(
44
+ "span",
45
+ {
46
+ className: "flex h-9 w-9 items-center justify-center text-[14px] text-[var(--color-muted-foreground)] select-none",
47
+ children: "\u2026"
48
+ },
49
+ `dots-${i}`
50
+ ) : /* @__PURE__ */ jsx(
51
+ PaginationButton,
52
+ {
53
+ onClick: () => onPageChange(p),
54
+ isActive: p === page,
55
+ "aria-label": `${p}\uD398\uC774\uC9C0`,
56
+ "aria-current": p === page ? "page" : void 0,
57
+ children: p
58
+ },
59
+ p
60
+ )
61
+ ),
62
+ /* @__PURE__ */ jsx(
63
+ PaginationButton,
64
+ {
65
+ onClick: () => onPageChange(page + 1),
66
+ disabled: page >= totalPages,
67
+ "aria-label": "\uB2E4\uC74C \uD398\uC774\uC9C0",
68
+ children: /* @__PURE__ */ jsx(ChevronRightIcon, {})
69
+ }
70
+ )
71
+ ] });
72
+ };
73
+ function PaginationButton(_a) {
74
+ var _b = _a, { isActive, className, children } = _b, props = __objRest(_b, ["isActive", "className", "children"]);
75
+ return /* @__PURE__ */ jsx(
76
+ "button",
77
+ __spreadProps(__spreadValues({
78
+ type: "button",
79
+ className: cn(
80
+ "flex h-9 w-9 items-center justify-center rounded-xl text-[14px] font-medium",
81
+ "transition-colors duration-150 select-none",
82
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-primary)] focus-visible:ring-offset-2",
83
+ "disabled:opacity-40 disabled:cursor-not-allowed",
84
+ isActive ? "bg-[var(--color-primary)] text-white" : "text-[var(--color-foreground)] hover:bg-[var(--color-muted)]",
85
+ className
86
+ )
87
+ }, props), {
88
+ children
89
+ })
90
+ );
91
+ }
92
+ function ChevronLeftIcon() {
93
+ return /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx("path", { d: "m15 18-6-6 6-6" }) });
94
+ }
95
+ function ChevronRightIcon() {
96
+ return /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx("path", { d: "m9 18 6-6-6-6" }) });
97
+ }
98
+
99
+ export { Pagination };
100
+ //# sourceMappingURL=chunk-6CMR4MT4.js.map
101
+ //# sourceMappingURL=chunk-6CMR4MT4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Pagination/Pagination.tsx"],"names":[],"mappings":"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","file":"chunk-6CMR4MT4.js","sourcesContent":["import * as React from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface PaginationProps {\n page: number;\n totalPages: number;\n onPageChange: (page: number) => void;\n siblingCount?: number;\n className?: string;\n}\n\nfunction range(start: number, end: number) {\n return Array.from({ length: end - start + 1 }, (_, i) => start + i);\n}\n\nfunction usePaginationRange(page: number, totalPages: number, siblingCount: number) {\n return React.useMemo(() => {\n const totalPageNumbers = siblingCount * 2 + 5; // siblings + first + last + current + 2 dots\n\n if (totalPages <= totalPageNumbers) {\n return range(1, totalPages);\n }\n\n const leftSiblingIndex = Math.max(page - siblingCount, 1);\n const rightSiblingIndex = Math.min(page + siblingCount, totalPages);\n\n const showLeftDots = leftSiblingIndex > 2;\n const showRightDots = rightSiblingIndex < totalPages - 1;\n\n if (!showLeftDots && showRightDots) {\n const leftRange = range(1, 3 + 2 * siblingCount);\n return [...leftRange, \"...\", totalPages];\n }\n\n if (showLeftDots && !showRightDots) {\n const rightRange = range(totalPages - (3 + 2 * siblingCount) + 1, totalPages);\n return [1, \"...\", ...rightRange];\n }\n\n const middleRange = range(leftSiblingIndex, rightSiblingIndex);\n return [1, \"...\", ...middleRange, \"...\", totalPages];\n }, [page, totalPages, siblingCount]);\n}\n\nconst Pagination = ({ page, totalPages, onPageChange, siblingCount = 1, className }: PaginationProps) => {\n const pages = usePaginationRange(page, totalPages, siblingCount);\n\n return (\n <nav aria-label=\"페이지 탐색\" className={cn(\"flex items-center gap-1\", className)}>\n <PaginationButton\n onClick={() => onPageChange(page - 1)}\n disabled={page <= 1}\n aria-label=\"이전 페이지\"\n >\n <ChevronLeftIcon />\n </PaginationButton>\n\n {pages.map((p, i) =>\n p === \"...\" ? (\n <span\n key={`dots-${i}`}\n className=\"flex h-9 w-9 items-center justify-center text-[14px] text-[var(--color-muted-foreground)] select-none\"\n >\n …\n </span>\n ) : (\n <PaginationButton\n key={p}\n onClick={() => onPageChange(p as number)}\n isActive={p === page}\n aria-label={`${p}페이지`}\n aria-current={p === page ? \"page\" : undefined}\n >\n {p}\n </PaginationButton>\n )\n )}\n\n <PaginationButton\n onClick={() => onPageChange(page + 1)}\n disabled={page >= totalPages}\n aria-label=\"다음 페이지\"\n >\n <ChevronRightIcon />\n </PaginationButton>\n </nav>\n );\n};\n\ninterface PaginationButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n isActive?: boolean;\n}\n\nfunction PaginationButton({ isActive, className, children, ...props }: PaginationButtonProps) {\n return (\n <button\n type=\"button\"\n className={cn(\n \"flex h-9 w-9 items-center justify-center rounded-xl text-[14px] font-medium\",\n \"transition-colors duration-150 select-none\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-primary)] focus-visible:ring-offset-2\",\n \"disabled:opacity-40 disabled:cursor-not-allowed\",\n isActive\n ? \"bg-[var(--color-primary)] text-white\"\n : \"text-[var(--color-foreground)] hover:bg-[var(--color-muted)]\",\n className\n )}\n {...props}\n >\n {children}\n </button>\n );\n}\n\nfunction ChevronLeftIcon() {\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=\"m15 18-6-6 6-6\" />\n </svg>\n );\n}\n\nfunction ChevronRightIcon() {\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=\"m9 18 6-6-6-6\" />\n </svg>\n );\n}\n\nexport { Pagination };\n"]}
@@ -0,0 +1,67 @@
1
+ import { LazyMotion, domAnimation, m } from './chunk-Y3CWICHE.js';
2
+ import { __objRest, __spreadProps, __spreadValues, cn } from './chunk-MVGUWG27.js';
3
+ import * as React from 'react';
4
+ import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
5
+ import * as Label from '@radix-ui/react-label';
6
+ import { jsxs, jsx } from 'react/jsx-runtime';
7
+
8
+ var Checkbox = React.forwardRef((_a, ref) => {
9
+ var _b = _a, { className, label, id } = _b, props = __objRest(_b, ["className", "label", "id"]);
10
+ const generatedId = React.useId();
11
+ const checkboxId = id != null ? id : generatedId;
12
+ return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2.5", children: [
13
+ /* @__PURE__ */ jsx(
14
+ CheckboxPrimitive.Root,
15
+ __spreadProps(__spreadValues({
16
+ ref,
17
+ id: checkboxId,
18
+ className: cn(
19
+ "h-5 w-5 rounded-md shrink-0",
20
+ "border-2 border-[var(--color-border)]",
21
+ "bg-[var(--color-background)]",
22
+ "transition-colors duration-150",
23
+ "data-[state=checked]:bg-[var(--color-primary)] data-[state=checked]:border-[var(--color-primary)]",
24
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-primary)] focus-visible:ring-offset-2",
25
+ "disabled:opacity-40 disabled:cursor-not-allowed",
26
+ className
27
+ )
28
+ }, props), {
29
+ children: /* @__PURE__ */ jsx(CheckboxPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx(LazyMotion, { features: domAnimation, children: /* @__PURE__ */ jsx(
30
+ m.svg,
31
+ {
32
+ width: "11",
33
+ height: "8",
34
+ viewBox: "0 0 11 8",
35
+ fill: "none",
36
+ initial: { pathLength: 0, opacity: 0 },
37
+ animate: { pathLength: 1, opacity: 1 },
38
+ transition: { duration: 0.2, ease: "easeOut" },
39
+ children: /* @__PURE__ */ jsx(
40
+ m.path,
41
+ {
42
+ d: "M1 3.5L4 6.5L10 1",
43
+ stroke: "white",
44
+ strokeWidth: "1.8",
45
+ strokeLinecap: "round",
46
+ strokeLinejoin: "round"
47
+ }
48
+ )
49
+ }
50
+ ) }) })
51
+ })
52
+ ),
53
+ label && /* @__PURE__ */ jsx(
54
+ Label.Root,
55
+ {
56
+ htmlFor: checkboxId,
57
+ className: "text-[16px] text-[var(--color-foreground)] cursor-pointer select-none",
58
+ children: label
59
+ }
60
+ )
61
+ ] });
62
+ });
63
+ Checkbox.displayName = "Checkbox";
64
+
65
+ export { Checkbox };
66
+ //# sourceMappingURL=chunk-7B6U7GED.js.map
67
+ //# sourceMappingURL=chunk-7B6U7GED.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Checkbox/Checkbox.tsx"],"names":[],"mappings":";;;;;;;AAWA,IAAM,QAAA,GAAiB,KAAA,CAAA,UAAA,CAGrB,CAAC,EAAA,EAAoC,GAAA,KAAQ;AAA5C,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAAW,OAAO,EAAA,EAdvB,GAcG,IAA2B,KAAA,GAAA,SAAA,CAA3B,EAAA,EAA2B,CAAzB,WAAA,EAAW,OAAA,EAAO,IAAA,CAAA,CAAA;AACrB,EAAA,MAAM,cAAoB,KAAA,CAAA,KAAA,EAAM;AAChC,EAAA,MAAM,aAAa,EAAA,IAAA,IAAA,GAAA,EAAA,GAAM,WAAA;AAEzB,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2BAAA,EACb,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAmB,iBAAA,CAAA,IAAA;AAAA,MAAlB,aAAA,CAAA,cAAA,CAAA;AAAA,QACC,GAAA;AAAA,QACA,EAAA,EAAI,UAAA;AAAA,QACJ,SAAA,EAAW,EAAA;AAAA,UACT,6BAAA;AAAA,UACA,uCAAA;AAAA,UACA,8BAAA;AAAA,UACA,gCAAA;AAAA,UACA,mGAAA;AAAA,UACA,uHAAA;AAAA,UACA,iDAAA;AAAA,UACA;AAAA;AACF,OAAA,EACI,KAAA,CAAA,EAbL;AAAA,QAeC,QAAA,kBAAA,GAAA,CAAmB,6BAAlB,EAA4B,SAAA,EAAU,oCACrC,QAAA,kBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,UAAU,YAAA,EACpB,QAAA,kBAAA,GAAA;AAAA,UAAC,CAAA,CAAE,GAAA;AAAA,UAAF;AAAA,YACC,KAAA,EAAM,IAAA;AAAA,YACN,MAAA,EAAO,GAAA;AAAA,YACP,OAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAK,MAAA;AAAA,YACL,OAAA,EAAS,EAAE,UAAA,EAAY,CAAA,EAAG,SAAS,CAAA,EAAE;AAAA,YACrC,OAAA,EAAS,EAAE,UAAA,EAAY,CAAA,EAAG,SAAS,CAAA,EAAE;AAAA,YACrC,UAAA,EAAY,EAAE,QAAA,EAAU,GAAA,EAAK,MAAM,SAAA,EAAU;AAAA,YAE7C,QAAA,kBAAA,GAAA;AAAA,cAAC,CAAA,CAAE,IAAA;AAAA,cAAF;AAAA,gBACC,CAAA,EAAE,mBAAA;AAAA,gBACF,MAAA,EAAO,OAAA;AAAA,gBACP,WAAA,EAAY,KAAA;AAAA,gBACZ,aAAA,EAAc,OAAA;AAAA,gBACd,cAAA,EAAe;AAAA;AAAA;AACjB;AAAA,WAEJ,CAAA,EACF;AAAA,OAAA;AAAA,KACF;AAAA,IACC,KAAA,oBACC,GAAA;AAAA,MAAO,KAAA,CAAA,IAAA;AAAA,MAAN;AAAA,QACC,OAAA,EAAS,UAAA;AAAA,QACT,SAAA,EAAU,uEAAA;AAAA,QAET,QAAA,EAAA;AAAA;AAAA;AACH,GAAA,EAEJ,CAAA;AAEJ,CAAC;AACD,QAAA,CAAS,WAAA,GAAc,UAAA","file":"chunk-7B6U7GED.js","sourcesContent":["import * as React from \"react\";\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport * as Label from \"@radix-ui/react-label\";\nimport { m, LazyMotion, domAnimation } from \"../../utils/motion\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface CheckboxProps\n extends React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root> {\n label?: string;\n}\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n CheckboxProps\n>(({ className, label, id, ...props }, ref) => {\n const generatedId = React.useId();\n const checkboxId = id ?? generatedId;\n\n return (\n <div className=\"flex items-center gap-2.5\">\n <CheckboxPrimitive.Root\n ref={ref}\n id={checkboxId}\n className={cn(\n \"h-5 w-5 rounded-md shrink-0\",\n \"border-2 border-[var(--color-border)]\",\n \"bg-[var(--color-background)]\",\n \"transition-colors duration-150\",\n \"data-[state=checked]:bg-[var(--color-primary)] data-[state=checked]:border-[var(--color-primary)]\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-primary)] focus-visible:ring-offset-2\",\n \"disabled:opacity-40 disabled:cursor-not-allowed\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator className=\"flex items-center justify-center\">\n <LazyMotion features={domAnimation}>\n <m.svg\n width=\"11\"\n height=\"8\"\n viewBox=\"0 0 11 8\"\n fill=\"none\"\n initial={{ pathLength: 0, opacity: 0 }}\n animate={{ pathLength: 1, opacity: 1 }}\n transition={{ duration: 0.2, ease: \"easeOut\" }}\n >\n <m.path\n d=\"M1 3.5L4 6.5L10 1\"\n stroke=\"white\"\n strokeWidth=\"1.8\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </m.svg>\n </LazyMotion>\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n {label && (\n <Label.Root\n htmlFor={checkboxId}\n className=\"text-[16px] text-[var(--color-foreground)] cursor-pointer select-none\"\n >\n {label}\n </Label.Root>\n )}\n </div>\n );\n});\nCheckbox.displayName = \"Checkbox\";\n\nexport { Checkbox };\n"]}