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,42 @@
1
+ import { cn } from './chunk-MVGUWG27.js';
2
+ import * as TooltipPrimitive from '@radix-ui/react-tooltip';
3
+ import { jsx, jsxs } from 'react/jsx-runtime';
4
+
5
+ var Tooltip = ({
6
+ content,
7
+ children,
8
+ side = "top",
9
+ align = "center",
10
+ sideOffset = 6,
11
+ delayDuration = 300,
12
+ className
13
+ }) => /* @__PURE__ */ jsx(TooltipPrimitive.Provider, { delayDuration, children: /* @__PURE__ */ jsxs(TooltipPrimitive.Root, { children: [
14
+ /* @__PURE__ */ jsx(TooltipPrimitive.Trigger, { asChild: true, children }),
15
+ /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
16
+ TooltipPrimitive.Content,
17
+ {
18
+ side,
19
+ align,
20
+ sideOffset,
21
+ className: cn(
22
+ "z-50 max-w-[280px] rounded-xl px-3 py-2",
23
+ "bg-[var(--color-foreground)] text-[var(--color-background)]",
24
+ "text-[13px] leading-snug shadow-lg",
25
+ "data-[state=delayed-open]:animate-in data-[state=closed]:animate-out",
26
+ "data-[state=closed]:fade-out-0 data-[state=delayed-open]:fade-in-0",
27
+ "data-[state=closed]:zoom-out-95 data-[state=delayed-open]:zoom-in-95",
28
+ "data-[side=bottom]:slide-in-from-top-1 data-[side=top]:slide-in-from-bottom-1",
29
+ "data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1",
30
+ className
31
+ ),
32
+ children: [
33
+ content,
34
+ /* @__PURE__ */ jsx(TooltipPrimitive.Arrow, { className: "fill-[var(--color-foreground)]", width: 10, height: 5 })
35
+ ]
36
+ }
37
+ ) })
38
+ ] }) });
39
+
40
+ export { Tooltip };
41
+ //# sourceMappingURL=chunk-IOBAQ35P.js.map
42
+ //# sourceMappingURL=chunk-IOBAQ35P.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Tooltip/Tooltip.tsx"],"names":[],"mappings":";;;;AAcA,IAAM,UAAU,CAAC;AAAA,EACf,OAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA,GAAO,KAAA;AAAA,EACP,KAAA,GAAQ,QAAA;AAAA,EACR,UAAA,GAAa,CAAA;AAAA,EACb,aAAA,GAAgB,GAAA;AAAA,EAChB;AACF,CAAA,yBACoB,gBAAA,CAAA,QAAA,EAAjB,EAA0B,aAAA,EACzB,QAAA,kBAAA,IAAA,CAAkB,uBAAjB,EACC,QAAA,EAAA;AAAA,kBAAA,GAAA,CAAkB,gBAAA,CAAA,OAAA,EAAjB,EAAyB,OAAA,EAAO,IAAA,EAAE,QAAA,EAAS,CAAA;AAAA,kBAC5C,GAAA,CAAkB,yBAAjB,EACC,QAAA,kBAAA,IAAA;AAAA,IAAkB,gBAAA,CAAA,OAAA;AAAA,IAAjB;AAAA,MACC,IAAA;AAAA,MACA,KAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,yCAAA;AAAA,QACA,6DAAA;AAAA,QACA,oCAAA;AAAA,QACA,sEAAA;AAAA,QACA,oEAAA;AAAA,QACA,sEAAA;AAAA,QACA,+EAAA;AAAA,QACA,+EAAA;AAAA,QACA;AAAA,OACF;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,OAAA;AAAA,wBACD,GAAA,CAAkB,wBAAjB,EAAuB,SAAA,EAAU,kCAAiC,KAAA,EAAO,EAAA,EAAI,QAAQ,CAAA,EAAG;AAAA;AAAA;AAAA,GAC3F,EACF;AAAA,CAAA,EACF,CAAA,EACF","file":"chunk-IOBAQ35P.js","sourcesContent":["import * as React from \"react\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface TooltipProps {\n content: React.ReactNode;\n children: React.ReactNode;\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n align?: \"start\" | \"center\" | \"end\";\n sideOffset?: number;\n delayDuration?: number;\n className?: string;\n}\n\nconst Tooltip = ({\n content,\n children,\n side = \"top\",\n align = \"center\",\n sideOffset = 6,\n delayDuration = 300,\n className,\n}: TooltipProps) => (\n <TooltipPrimitive.Provider delayDuration={delayDuration}>\n <TooltipPrimitive.Root>\n <TooltipPrimitive.Trigger asChild>{children}</TooltipPrimitive.Trigger>\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n side={side}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 max-w-[280px] rounded-xl px-3 py-2\",\n \"bg-[var(--color-foreground)] text-[var(--color-background)]\",\n \"text-[13px] leading-snug shadow-lg\",\n \"data-[state=delayed-open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=delayed-open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=delayed-open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-1 data-[side=top]:slide-in-from-bottom-1\",\n \"data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1\",\n className\n )}\n >\n {content}\n <TooltipPrimitive.Arrow className=\"fill-[var(--color-foreground)]\" width={10} height={5} />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n </TooltipPrimitive.Root>\n </TooltipPrimitive.Provider>\n);\n\nexport { Tooltip };\n"]}
@@ -0,0 +1,107 @@
1
+ import { cn } from './chunk-MVGUWG27.js';
2
+ import * as React from 'react';
3
+ import { jsx } from 'react/jsx-runtime';
4
+
5
+ var OTPInput = ({
6
+ length = 6,
7
+ value,
8
+ defaultValue: defaultValueProp,
9
+ onChange,
10
+ onComplete,
11
+ masked = false,
12
+ disabled = false,
13
+ isError = false,
14
+ autoFocus = false,
15
+ className
16
+ }) => {
17
+ const isControlled = value !== void 0;
18
+ const [internalValue, setInternalValue] = React.useState(defaultValueProp != null ? defaultValueProp : "");
19
+ const current = isControlled ? value : internalValue;
20
+ const refs = React.useRef([]);
21
+ const digits = Array.from({ length }, (_, i) => {
22
+ var _a;
23
+ return (_a = current[i]) != null ? _a : "";
24
+ });
25
+ function update(next) {
26
+ if (!isControlled) setInternalValue(next);
27
+ onChange == null ? void 0 : onChange(next);
28
+ if (next.length === length) onComplete == null ? void 0 : onComplete(next);
29
+ }
30
+ function handleChange(index, raw) {
31
+ var _a;
32
+ const char = raw.replace(/\D/g, "").slice(-1);
33
+ if (!char) return;
34
+ const arr = digits.slice();
35
+ arr[index] = char;
36
+ const next = arr.join("");
37
+ update(next);
38
+ if (index < length - 1) {
39
+ (_a = refs.current[index + 1]) == null ? void 0 : _a.focus();
40
+ }
41
+ }
42
+ function handleKeyDown(index, e) {
43
+ var _a, _b, _c, _d;
44
+ if (e.key === "Backspace") {
45
+ e.preventDefault();
46
+ const arr = digits.slice();
47
+ if (digits[index]) {
48
+ arr[index] = "";
49
+ update(arr.join(""));
50
+ if (index > 0) (_a = refs.current[index - 1]) == null ? void 0 : _a.focus();
51
+ } else if (index > 0) {
52
+ arr[index - 1] = "";
53
+ update(arr.join(""));
54
+ (_b = refs.current[index - 1]) == null ? void 0 : _b.focus();
55
+ }
56
+ } else if (e.key === "ArrowLeft" && index > 0) {
57
+ (_c = refs.current[index - 1]) == null ? void 0 : _c.focus();
58
+ } else if (e.key === "ArrowRight" && index < length - 1) {
59
+ (_d = refs.current[index + 1]) == null ? void 0 : _d.focus();
60
+ }
61
+ }
62
+ function handlePaste(e) {
63
+ var _a;
64
+ e.preventDefault();
65
+ const pasted = e.clipboardData.getData("text").replace(/\D/g, "").slice(0, length);
66
+ if (!pasted) return;
67
+ update(pasted.padEnd(length, "").slice(0, length).replace(/\s/g, ""));
68
+ const focusIndex = Math.min(pasted.length, length - 1);
69
+ (_a = refs.current[focusIndex]) == null ? void 0 : _a.focus();
70
+ }
71
+ return /* @__PURE__ */ jsx("div", { className: cn("flex gap-3", className), children: digits.map((digit, i) => /* @__PURE__ */ jsx(
72
+ "input",
73
+ {
74
+ ref: (el) => {
75
+ refs.current[i] = el;
76
+ },
77
+ type: masked ? "password" : "text",
78
+ inputMode: "numeric",
79
+ maxLength: 1,
80
+ value: digit,
81
+ disabled,
82
+ autoFocus: autoFocus && i === 0,
83
+ "aria-label": `${i + 1}\uBC88\uC9F8 \uC785\uB825`,
84
+ onChange: (e) => handleChange(i, e.target.value),
85
+ onKeyDown: (e) => handleKeyDown(i, e),
86
+ onPaste: handlePaste,
87
+ onFocus: (e) => e.target.select(),
88
+ className: cn(
89
+ "h-14 w-12 rounded-2xl border-2 text-center text-[20px] font-semibold",
90
+ "text-[var(--color-foreground)] bg-[var(--color-background)]",
91
+ "transition-colors duration-150 outline-none",
92
+ "caret-transparent select-none",
93
+ isError ? "border-[var(--color-negative)] focus:border-[var(--color-negative)]" : [
94
+ "border-[var(--color-border)]",
95
+ "focus:border-[var(--color-primary)]",
96
+ digit && "border-[var(--color-primary)]"
97
+ ],
98
+ "disabled:opacity-40 disabled:cursor-not-allowed"
99
+ )
100
+ },
101
+ i
102
+ )) });
103
+ };
104
+
105
+ export { OTPInput };
106
+ //# sourceMappingURL=chunk-IVANXF6O.js.map
107
+ //# sourceMappingURL=chunk-IVANXF6O.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/OTPInput/OTPInput.tsx"],"names":[],"mappings":"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","file":"chunk-IVANXF6O.js","sourcesContent":["import * as React from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface OTPInputProps {\n length?: number;\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n onComplete?: (value: string) => void;\n masked?: boolean;\n disabled?: boolean;\n isError?: boolean;\n autoFocus?: boolean;\n className?: string;\n}\n\nconst OTPInput = ({\n length = 6,\n value,\n defaultValue: defaultValueProp,\n onChange,\n onComplete,\n masked = false,\n disabled = false,\n isError = false,\n autoFocus = false,\n className,\n}: OTPInputProps) => {\n const isControlled = value !== undefined;\n const [internalValue, setInternalValue] = React.useState(defaultValueProp ?? \"\");\n const current = isControlled ? value : internalValue;\n\n const refs = React.useRef<(HTMLInputElement | null)[]>([]);\n\n const digits = Array.from({ length }, (_, i) => current[i] ?? \"\");\n\n function update(next: string) {\n if (!isControlled) setInternalValue(next);\n onChange?.(next);\n if (next.length === length) onComplete?.(next);\n }\n\n function handleChange(index: number, raw: string) {\n // 숫자만 허용\n const char = raw.replace(/\\D/g, \"\").slice(-1);\n if (!char) return;\n\n const arr = digits.slice();\n arr[index] = char;\n const next = arr.join(\"\");\n update(next);\n\n // 다음 셀로 포커스 이동\n if (index < length - 1) {\n refs.current[index + 1]?.focus();\n }\n }\n\n function handleKeyDown(index: number, e: React.KeyboardEvent<HTMLInputElement>) {\n if (e.key === \"Backspace\") {\n e.preventDefault();\n const arr = digits.slice();\n if (digits[index]) {\n // 현재 셀에 값 있으면 지우고 이전으로 이동\n arr[index] = \"\";\n update(arr.join(\"\"));\n if (index > 0) refs.current[index - 1]?.focus();\n } else if (index > 0) {\n // 현재 셀 비어있으면 이전 셀 지우고 이동\n arr[index - 1] = \"\";\n update(arr.join(\"\"));\n refs.current[index - 1]?.focus();\n }\n } else if (e.key === \"ArrowLeft\" && index > 0) {\n refs.current[index - 1]?.focus();\n } else if (e.key === \"ArrowRight\" && index < length - 1) {\n refs.current[index + 1]?.focus();\n }\n }\n\n function handlePaste(e: React.ClipboardEvent) {\n e.preventDefault();\n const pasted = e.clipboardData.getData(\"text\").replace(/\\D/g, \"\").slice(0, length);\n if (!pasted) return;\n update(pasted.padEnd(length, \"\").slice(0, length).replace(/\\s/g, \"\"));\n // 실제로는 붙여넣은 길이만큼 채우고 마지막 셀로 포커스\n const focusIndex = Math.min(pasted.length, length - 1);\n refs.current[focusIndex]?.focus();\n }\n\n return (\n <div className={cn(\"flex gap-3\", className)}>\n {digits.map((digit, i) => (\n <input\n key={i}\n ref={(el) => { refs.current[i] = el; }}\n type={masked ? \"password\" : \"text\"}\n inputMode=\"numeric\"\n maxLength={1}\n value={digit}\n disabled={disabled}\n autoFocus={autoFocus && i === 0}\n aria-label={`${i + 1}번째 입력`}\n onChange={(e) => handleChange(i, e.target.value)}\n onKeyDown={(e) => handleKeyDown(i, e)}\n onPaste={handlePaste}\n onFocus={(e) => e.target.select()}\n className={cn(\n \"h-14 w-12 rounded-2xl border-2 text-center text-[20px] font-semibold\",\n \"text-[var(--color-foreground)] bg-[var(--color-background)]\",\n \"transition-colors duration-150 outline-none\",\n \"caret-transparent select-none\",\n isError\n ? \"border-[var(--color-negative)] focus:border-[var(--color-negative)]\"\n : [\n \"border-[var(--color-border)]\",\n \"focus:border-[var(--color-primary)]\",\n digit && \"border-[var(--color-primary)]\",\n ],\n \"disabled:opacity-40 disabled:cursor-not-allowed\"\n )}\n />\n ))}\n </div>\n );\n};\n\nexport { OTPInput };\n"]}
@@ -0,0 +1,58 @@
1
+ 'use strict';
2
+
3
+ var chunkUXYAKGI2_cjs = require('./chunk-UXYAKGI2.cjs');
4
+ var chunk4V3IOZPC_cjs = require('./chunk-4V3IOZPC.cjs');
5
+ var classVarianceAuthority = require('class-variance-authority');
6
+ var jsxRuntime = require('react/jsx-runtime');
7
+
8
+ var spinnerVariants = classVarianceAuthority.cva("", {
9
+ variants: {
10
+ size: {
11
+ sm: "w-4 h-4",
12
+ md: "w-6 h-6",
13
+ lg: "w-8 h-8",
14
+ xl: "w-12 h-12"
15
+ },
16
+ color: {
17
+ primary: "text-[var(--color-primary)]",
18
+ white: "text-white",
19
+ muted: "text-[var(--color-muted-foreground)]"
20
+ }
21
+ },
22
+ defaultVariants: {
23
+ size: "md",
24
+ color: "primary"
25
+ }
26
+ });
27
+ function Spinner({ className, size, color, label = "\uB85C\uB529 \uC911" }) {
28
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkUXYAKGI2_cjs.LazyMotion, { features: chunkUXYAKGI2_cjs.domAnimation, children: /* @__PURE__ */ jsxRuntime.jsx(
29
+ chunkUXYAKGI2_cjs.m.svg,
30
+ {
31
+ className: chunk4V3IOZPC_cjs.cn(spinnerVariants({ size, color }), className),
32
+ viewBox: "0 0 24 24",
33
+ fill: "none",
34
+ "aria-label": label,
35
+ role: "status",
36
+ animate: { rotate: 360 },
37
+ transition: { duration: 0.8, repeat: Infinity, ease: "linear" },
38
+ children: /* @__PURE__ */ jsxRuntime.jsx(
39
+ "circle",
40
+ {
41
+ cx: "12",
42
+ cy: "12",
43
+ r: "9",
44
+ stroke: "currentColor",
45
+ strokeWidth: "2.5",
46
+ strokeLinecap: "round",
47
+ strokeDasharray: "40 16",
48
+ opacity: "0.9"
49
+ }
50
+ )
51
+ }
52
+ ) });
53
+ }
54
+ Spinner.displayName = "Spinner";
55
+
56
+ exports.Spinner = Spinner;
57
+ //# sourceMappingURL=chunk-JGO5TBYB.cjs.map
58
+ //# sourceMappingURL=chunk-JGO5TBYB.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Spinner/Spinner.tsx"],"names":["cva","jsx","LazyMotion","domAnimation","m","cn"],"mappings":";;;;;;;AAKA,IAAM,eAAA,GAAkBA,2BAAI,EAAA,EAAI;AAAA,EAC9B,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,SAAA;AAAA,MACJ,EAAA,EAAI,SAAA;AAAA,MACJ,EAAA,EAAI,SAAA;AAAA,MACJ,EAAA,EAAI;AAAA,KACN;AAAA,IACA,KAAA,EAAO;AAAA,MACL,OAAA,EAAS,6BAAA;AAAA,MACT,KAAA,EAAO,YAAA;AAAA,MACP,KAAA,EAAO;AAAA;AACT,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM,IAAA;AAAA,IACN,KAAA,EAAO;AAAA;AAEX,CAAC,CAAA;AAOD,SAAS,QAAQ,EAAE,SAAA,EAAW,MAAM,KAAA,EAAO,KAAA,GAAQ,uBAAO,EAAiB;AACzE,EAAA,uBACEC,cAAA,CAACC,4BAAA,EAAA,EAAW,QAAA,EAAUC,8BAAA,EACpB,QAAA,kBAAAF,cAAA;AAAA,IAACG,mBAAA,CAAE,GAAA;AAAA,IAAF;AAAA,MACC,SAAA,EAAWC,qBAAG,eAAA,CAAgB,EAAE,MAAM,KAAA,EAAO,GAAG,SAAS,CAAA;AAAA,MACzD,OAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAK,MAAA;AAAA,MACL,YAAA,EAAY,KAAA;AAAA,MACZ,IAAA,EAAK,QAAA;AAAA,MACL,OAAA,EAAS,EAAE,MAAA,EAAQ,GAAA,EAAI;AAAA,MACvB,YAAY,EAAE,QAAA,EAAU,KAAK,MAAA,EAAQ,QAAA,EAAU,MAAM,QAAA,EAAS;AAAA,MAE9D,QAAA,kBAAAJ,cAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAG,IAAA;AAAA,UACH,EAAA,EAAG,IAAA;AAAA,UACH,CAAA,EAAE,GAAA;AAAA,UACF,MAAA,EAAO,cAAA;AAAA,UACP,WAAA,EAAY,KAAA;AAAA,UACZ,aAAA,EAAc,OAAA;AAAA,UACd,eAAA,EAAgB,OAAA;AAAA,UAChB,OAAA,EAAQ;AAAA;AAAA;AACV;AAAA,GACF,EACF,CAAA;AAEJ;AACA,OAAA,CAAQ,WAAA,GAAc,SAAA","file":"chunk-JGO5TBYB.cjs","sourcesContent":["import * as React from \"react\";\nimport { m, LazyMotion, domAnimation } from \"../../utils/motion\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst spinnerVariants = cva(\"\", {\n variants: {\n size: {\n sm: \"w-4 h-4\",\n md: \"w-6 h-6\",\n lg: \"w-8 h-8\",\n xl: \"w-12 h-12\",\n },\n color: {\n primary: \"text-[var(--color-primary)]\",\n white: \"text-white\",\n muted: \"text-[var(--color-muted-foreground)]\",\n },\n },\n defaultVariants: {\n size: \"md\",\n color: \"primary\",\n },\n});\n\nexport type SpinnerProps = VariantProps<typeof spinnerVariants> & {\n label?: string;\n className?: string;\n};\n\nfunction Spinner({ className, size, color, label = \"로딩 중\" }: SpinnerProps) {\n return (\n <LazyMotion features={domAnimation}>\n <m.svg\n className={cn(spinnerVariants({ size, color }), className)}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n aria-label={label}\n role=\"status\"\n animate={{ rotate: 360 }}\n transition={{ duration: 0.8, repeat: Infinity, ease: \"linear\" }}\n >\n <circle\n cx=\"12\"\n cy=\"12\"\n r=\"9\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeDasharray=\"40 16\"\n opacity=\"0.9\"\n />\n </m.svg>\n </LazyMotion>\n );\n}\nSpinner.displayName = \"Spinner\";\n\nexport { Spinner };\n"]}
@@ -0,0 +1,75 @@
1
+ import { cn } from './chunk-MVGUWG27.js';
2
+ import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
3
+ import { jsxs, jsx } from 'react/jsx-runtime';
4
+
5
+ var DropdownMenu = ({
6
+ trigger,
7
+ items,
8
+ open,
9
+ onOpenChange,
10
+ align = "start",
11
+ sideOffset = 6
12
+ }) => /* @__PURE__ */ jsxs(DropdownMenuPrimitive.Root, { open, onOpenChange, children: [
13
+ /* @__PURE__ */ jsx(DropdownMenuPrimitive.Trigger, { asChild: true, children: trigger }),
14
+ /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
15
+ DropdownMenuPrimitive.Content,
16
+ {
17
+ align,
18
+ sideOffset,
19
+ className: cn(
20
+ "z-50 min-w-[180px] overflow-hidden rounded-2xl",
21
+ "border border-[var(--color-border)] bg-[var(--color-background)] shadow-lg",
22
+ "p-1.5",
23
+ "data-[state=open]:animate-in data-[state=closed]:animate-out",
24
+ "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
25
+ "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
26
+ "data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2"
27
+ ),
28
+ children: items.map((item, i) => {
29
+ if (item.type === "separator") {
30
+ return /* @__PURE__ */ jsx(
31
+ DropdownMenuPrimitive.Separator,
32
+ {
33
+ className: "my-1 h-px bg-[var(--color-border)]"
34
+ },
35
+ i
36
+ );
37
+ }
38
+ if (item.type === "label") {
39
+ return /* @__PURE__ */ jsx(
40
+ DropdownMenuPrimitive.Label,
41
+ {
42
+ className: "px-3 py-1.5 text-[12px] font-semibold text-[var(--color-muted-foreground)] select-none",
43
+ children: item.label
44
+ },
45
+ i
46
+ );
47
+ }
48
+ return /* @__PURE__ */ jsxs(
49
+ DropdownMenuPrimitive.Item,
50
+ {
51
+ disabled: item.disabled,
52
+ onSelect: item.onSelect,
53
+ className: cn(
54
+ "relative flex cursor-pointer select-none items-center gap-2.5 rounded-xl px-3 py-2.5",
55
+ "text-[15px] outline-none transition-colors duration-100",
56
+ "focus:bg-[var(--color-muted)] data-[highlighted]:bg-[var(--color-muted)]",
57
+ item.destructive ? "text-[var(--color-negative)]" : "text-[var(--color-foreground)]",
58
+ "data-[disabled]:opacity-40 data-[disabled]:pointer-events-none"
59
+ ),
60
+ children: [
61
+ item.icon && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-[var(--color-muted-foreground)]", children: item.icon }),
62
+ /* @__PURE__ */ jsx("span", { className: "flex-1", children: item.label }),
63
+ item.shortcut && /* @__PURE__ */ jsx("span", { className: "ml-auto text-[12px] text-[var(--color-muted-foreground)]", children: item.shortcut })
64
+ ]
65
+ },
66
+ i
67
+ );
68
+ })
69
+ }
70
+ ) })
71
+ ] });
72
+
73
+ export { DropdownMenu };
74
+ //# sourceMappingURL=chunk-JQ55FV4C.js.map
75
+ //# sourceMappingURL=chunk-JQ55FV4C.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/DropdownMenu/DropdownMenu.tsx"],"names":[],"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,qBACE,IAAA,CAAuB,qBAAA,CAAA,IAAA,EAAtB,EAA2B,IAAA,EAAY,YAAA,EACtC,QAAA,EAAA;AAAA,kBAAA,GAAA,CAAuB,qBAAA,CAAA,OAAA,EAAtB,EAA8B,OAAA,EAAO,IAAA,EAAE,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,kBAEhD,GAAA,CAAuB,8BAAtB,EACC,QAAA,kBAAA,GAAA;AAAA,IAAuB,qBAAA,CAAA,OAAA;AAAA,IAAtB;AAAA,MACC,KAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA,EAAW,EAAA;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,uBACE,GAAA;AAAA,YAAuB,qBAAA,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,uBACE,GAAA;AAAA,YAAuB,qBAAA,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,uBACE,IAAA;AAAA,UAAuB,qBAAA,CAAA,IAAA;AAAA,UAAtB;AAAA,YAEC,UAAU,IAAA,CAAK,QAAA;AAAA,YACf,UAAU,IAAA,CAAK,QAAA;AAAA,YACf,SAAA,EAAW,EAAA;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,wBACJ,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,+CAAA,EACb,eAAK,IAAA,EACR,CAAA;AAAA,8BAEF,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,QAAA,EAAU,eAAK,KAAA,EAAM,CAAA;AAAA,cACpC,KAAK,QAAA,oBACJ,GAAA,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-JQ55FV4C.js","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,52 @@
1
+ import { __objRest, __spreadProps, __spreadValues, cn } from './chunk-MVGUWG27.js';
2
+ import * as React from 'react';
3
+ import * as AvatarPrimitive from '@radix-ui/react-avatar';
4
+ import { cva } from 'class-variance-authority';
5
+ import { jsxs, jsx } from 'react/jsx-runtime';
6
+
7
+ var avatarVariants = cva("relative inline-flex shrink-0 overflow-hidden rounded-full", {
8
+ variants: {
9
+ size: {
10
+ xs: "w-6 h-6 text-[10px]",
11
+ sm: "w-8 h-8 text-[12px]",
12
+ md: "w-10 h-10 text-[14px]",
13
+ lg: "w-12 h-12 text-[16px]",
14
+ xl: "w-16 h-16 text-[20px]"
15
+ }
16
+ },
17
+ defaultVariants: { size: "md" }
18
+ });
19
+ var Avatar = React.forwardRef((_a, ref) => {
20
+ var _b = _a, { className, size, src, alt, fallback } = _b, props = __objRest(_b, ["className", "size", "src", "alt", "fallback"]);
21
+ var _a2;
22
+ return /* @__PURE__ */ jsxs(
23
+ AvatarPrimitive.Root,
24
+ __spreadProps(__spreadValues({
25
+ ref,
26
+ className: cn(avatarVariants({ size }), className)
27
+ }, props), {
28
+ children: [
29
+ /* @__PURE__ */ jsx(
30
+ AvatarPrimitive.Image,
31
+ {
32
+ src,
33
+ alt,
34
+ className: "w-full h-full object-cover"
35
+ }
36
+ ),
37
+ /* @__PURE__ */ jsx(
38
+ AvatarPrimitive.Fallback,
39
+ {
40
+ className: "w-full h-full flex items-center justify-center bg-[var(--color-muted)] text-[var(--color-muted-foreground)] font-semibold",
41
+ children: (_a2 = fallback != null ? fallback : alt == null ? void 0 : alt.slice(0, 1).toUpperCase()) != null ? _a2 : "?"
42
+ }
43
+ )
44
+ ]
45
+ })
46
+ );
47
+ });
48
+ Avatar.displayName = "Avatar";
49
+
50
+ export { Avatar };
51
+ //# sourceMappingURL=chunk-JQDD6AYM.js.map
52
+ //# sourceMappingURL=chunk-JQDD6AYM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Avatar/Avatar.tsx"],"names":["_a"],"mappings":";;;;;;AAKA,IAAM,cAAA,GAAiB,IAAI,4DAAA,EAA8D;AAAA,EACvF,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,qBAAA;AAAA,MACJ,EAAA,EAAI,qBAAA;AAAA,MACJ,EAAA,EAAI,uBAAA;AAAA,MACJ,EAAA,EAAI,uBAAA;AAAA,MACJ,EAAA,EAAI;AAAA;AACN,GACF;AAAA,EACA,eAAA,EAAiB,EAAE,IAAA,EAAM,IAAA;AAC3B,CAAC,CAAA;AAUD,IAAM,MAAA,GAAe,KAAA,CAAA,UAAA,CAGnB,CAAC,EAAA,EAAmD,GAAA,KAAK;AAAxD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAAW,IAAA,EAAM,GAAA,EAAK,GAAA,EAAK,QAAA,EA7BhC,GA6BG,EAAA,EAA0C,KAAA,GAAA,SAAA,CAA1C,EAAA,EAA0C,CAAxC,WAAA,EAAW,MAAA,EAAM,OAAK,KAAA,EAAK,UAAA,CAAA,CAAA;AA7BhC,EAAA,IAAAA,GAAAA;AA8BE,EAAA,uBAAA,IAAA;AAAA,IAAiB,eAAA,CAAA,IAAA;AAAA,IAAhB,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAW,EAAA,CAAG,cAAA,CAAe,EAAE,IAAA,EAAM,GAAG,SAAS;AAAA,KAAA,EAC7C,KAAA,CAAA,EAHL;AAAA,MAKC,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAiB,eAAA,CAAA,KAAA;AAAA,UAAhB;AAAA,YACC,GAAA;AAAA,YACA,GAAA;AAAA,YACA,SAAA,EAAU;AAAA;AAAA,SACZ;AAAA,wBACA,GAAA;AAAA,UAAiB,eAAA,CAAA,QAAA;AAAA,UAAhB;AAAA,YACC,SAAA,EAAU,2HAAA;AAAA,YAET,QAAA,EAAA,CAAAA,MAAA,QAAA,IAAA,IAAA,GAAA,QAAA,GAAY,GAAA,IAAA,IAAA,GAAA,MAAA,GAAA,GAAA,CAAK,MAAM,CAAA,EAAG,CAAA,CAAA,CAAG,WAAA,EAAA,KAA7B,IAAA,GAAAA,GAAAA,GAA8C;AAAA;AAAA;AACjD;AAAA,KAAA;AAAA,GACF;AAAA,CACD;AACD,MAAA,CAAO,WAAA,GAAc,QAAA","file":"chunk-JQDD6AYM.js","sourcesContent":["import * as React from \"react\";\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst avatarVariants = cva(\"relative inline-flex shrink-0 overflow-hidden rounded-full\", {\n variants: {\n size: {\n xs: \"w-6 h-6 text-[10px]\",\n sm: \"w-8 h-8 text-[12px]\",\n md: \"w-10 h-10 text-[14px]\",\n lg: \"w-12 h-12 text-[16px]\",\n xl: \"w-16 h-16 text-[20px]\",\n },\n },\n defaultVariants: { size: \"md\" },\n});\n\nexport interface AvatarProps\n extends React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>,\n VariantProps<typeof avatarVariants> {\n src?: string;\n alt?: string;\n fallback?: string;\n}\n\nconst Avatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n AvatarProps\n>(({ className, size, src, alt, fallback, ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn(avatarVariants({ size }), className)}\n {...props}\n >\n <AvatarPrimitive.Image\n src={src}\n alt={alt}\n className=\"w-full h-full object-cover\"\n />\n <AvatarPrimitive.Fallback\n className=\"w-full h-full flex items-center justify-center bg-[var(--color-muted)] text-[var(--color-muted-foreground)] font-semibold\"\n >\n {fallback ?? alt?.slice(0, 1).toUpperCase() ?? \"?\"}\n </AvatarPrimitive.Fallback>\n </AvatarPrimitive.Root>\n));\nAvatar.displayName = \"Avatar\";\n\nexport { Avatar };\n"]}
@@ -0,0 +1,80 @@
1
+ 'use strict';
2
+
3
+ var chunkUXYAKGI2_cjs = require('./chunk-UXYAKGI2.cjs');
4
+ var chunk4V3IOZPC_cjs = require('./chunk-4V3IOZPC.cjs');
5
+ var React = require('react');
6
+ var classVarianceAuthority = require('class-variance-authority');
7
+ var jsxRuntime = require('react/jsx-runtime');
8
+
9
+ function _interopNamespace(e) {
10
+ if (e && e.__esModule) return e;
11
+ var n = Object.create(null);
12
+ if (e) {
13
+ Object.keys(e).forEach(function (k) {
14
+ if (k !== 'default') {
15
+ var d = Object.getOwnPropertyDescriptor(e, k);
16
+ Object.defineProperty(n, k, d.get ? d : {
17
+ enumerable: true,
18
+ get: function () { return e[k]; }
19
+ });
20
+ }
21
+ });
22
+ }
23
+ n.default = e;
24
+ return Object.freeze(n);
25
+ }
26
+
27
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
28
+
29
+ var cardVariants = classVarianceAuthority.cva(
30
+ "rounded-2xl bg-[var(--color-background)] overflow-hidden",
31
+ {
32
+ variants: {
33
+ variant: {
34
+ elevated: "shadow-[var(--shadow-md)]",
35
+ outlined: "border border-[var(--color-border)]",
36
+ filled: "bg-[var(--color-muted)]"
37
+ },
38
+ padding: {
39
+ none: "",
40
+ sm: "p-4",
41
+ md: "p-5",
42
+ lg: "p-6"
43
+ },
44
+ interactive: {
45
+ true: "cursor-pointer"
46
+ }
47
+ },
48
+ defaultVariants: {
49
+ variant: "elevated",
50
+ padding: "md"
51
+ }
52
+ }
53
+ );
54
+ var Card = React__namespace.forwardRef(
55
+ ({ className, variant, padding, interactive, onClick, children, style, id, "aria-label": ariaLabel }, ref) => {
56
+ const isInteractive = interactive || !!onClick;
57
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkUXYAKGI2_cjs.LazyMotion, { features: chunkUXYAKGI2_cjs.domAnimation, children: /* @__PURE__ */ jsxRuntime.jsx(
58
+ chunkUXYAKGI2_cjs.m.div,
59
+ {
60
+ ref,
61
+ id,
62
+ "aria-label": ariaLabel,
63
+ style,
64
+ className: chunk4V3IOZPC_cjs.cn(cardVariants({ variant, padding, interactive: isInteractive || void 0 }), className),
65
+ whileTap: isInteractive ? { scale: 0.98 } : void 0,
66
+ transition: isInteractive ? { type: "spring", stiffness: 400, damping: 20 } : void 0,
67
+ onClick,
68
+ role: onClick ? "button" : void 0,
69
+ tabIndex: onClick ? 0 : void 0,
70
+ children
71
+ }
72
+ ) });
73
+ }
74
+ );
75
+ Card.displayName = "Card";
76
+
77
+ exports.Card = Card;
78
+ exports.cardVariants = cardVariants;
79
+ //# sourceMappingURL=chunk-JWE5X3SW.cjs.map
80
+ //# sourceMappingURL=chunk-JWE5X3SW.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Card/Card.tsx"],"names":["cva","React","jsx","LazyMotion","domAnimation","m","cn"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,IAAM,YAAA,GAAeA,0BAAA;AAAA,EACnB,0DAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,QAAA,EAAU,2BAAA;AAAA,QACV,QAAA,EAAU,qCAAA;AAAA,QACV,MAAA,EAAQ;AAAA,OACV;AAAA,MACA,OAAA,EAAS;AAAA,QACP,IAAA,EAAM,EAAA;AAAA,QACN,EAAA,EAAI,KAAA;AAAA,QACJ,EAAA,EAAI,KAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,MACA,WAAA,EAAa;AAAA,QACX,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,UAAA;AAAA,MACT,OAAA,EAAS;AAAA;AACX;AAEJ;AAMA,IAAM,IAAA,GAAaC,gBAAA,CAAA,UAAA;AAAA,EACjB,CAAC,EAAE,SAAA,EAAW,OAAA,EAAS,OAAA,EAAS,WAAA,EAAa,OAAA,EAAS,QAAA,EAAU,KAAA,EAAO,EAAA,EAAI,YAAA,EAAc,SAAA,IAAa,GAAA,KAAQ;AAC5G,IAAA,MAAM,aAAA,GAAgB,WAAA,IAAe,CAAC,CAAC,OAAA;AAEvC,IAAA,uBACEC,cAAA,CAACC,4BAAA,EAAA,EAAW,QAAA,EAAUC,8BAAA,EACpB,QAAA,kBAAAF,cAAA;AAAA,MAACG,mBAAA,CAAE,GAAA;AAAA,MAAF;AAAA,QACC,GAAA;AAAA,QACA,EAAA;AAAA,QACA,YAAA,EAAY,SAAA;AAAA,QACZ,KAAA;AAAA,QACA,SAAA,EAAWC,oBAAA,CAAG,YAAA,CAAa,EAAE,OAAA,EAAS,OAAA,EAAS,WAAA,EAAa,aAAA,IAAiB,MAAA,EAAW,CAAA,EAAG,SAAS,CAAA;AAAA,QACpG,QAAA,EAAU,aAAA,GAAgB,EAAE,KAAA,EAAO,MAAK,GAAI,MAAA;AAAA,QAC5C,UAAA,EAAY,gBAAgB,EAAE,IAAA,EAAM,UAAU,SAAA,EAAW,GAAA,EAAK,OAAA,EAAS,EAAA,EAAG,GAAI,MAAA;AAAA,QAC9E,OAAA;AAAA,QACA,IAAA,EAAM,UAAU,QAAA,GAAW,MAAA;AAAA,QAC3B,QAAA,EAAU,UAAU,CAAA,GAAI,MAAA;AAAA,QAEvB;AAAA;AAAA,KACH,EACF,CAAA;AAAA,EAEJ;AACF;AACA,IAAA,CAAK,WAAA,GAAc,MAAA","file":"chunk-JWE5X3SW.cjs","sourcesContent":["import * as React from \"react\";\nimport { m, LazyMotion, domAnimation } from \"../../utils/motion\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst cardVariants = cva(\n \"rounded-2xl bg-[var(--color-background)] overflow-hidden\",\n {\n variants: {\n variant: {\n elevated: \"shadow-[var(--shadow-md)]\",\n outlined: \"border border-[var(--color-border)]\",\n filled: \"bg-[var(--color-muted)]\",\n },\n padding: {\n none: \"\",\n sm: \"p-4\",\n md: \"p-5\",\n lg: \"p-6\",\n },\n interactive: {\n true: \"cursor-pointer\",\n },\n },\n defaultVariants: {\n variant: \"elevated\",\n padding: \"md\",\n },\n }\n);\n\nexport interface CardProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof cardVariants> {}\n\nconst Card = React.forwardRef<HTMLDivElement, CardProps>(\n ({ className, variant, padding, interactive, onClick, children, style, id, \"aria-label\": ariaLabel }, ref) => {\n const isInteractive = interactive || !!onClick;\n\n return (\n <LazyMotion features={domAnimation}>\n <m.div\n ref={ref}\n id={id}\n aria-label={ariaLabel}\n style={style}\n className={cn(cardVariants({ variant, padding, interactive: isInteractive || undefined }), className)}\n whileTap={isInteractive ? { scale: 0.98 } : undefined}\n transition={isInteractive ? { type: \"spring\", stiffness: 400, damping: 20 } : undefined}\n onClick={onClick as React.MouseEventHandler<HTMLDivElement>}\n role={onClick ? \"button\" : undefined}\n tabIndex={onClick ? 0 : undefined}\n >\n {children}\n </m.div>\n </LazyMotion>\n );\n }\n);\nCard.displayName = \"Card\";\n\nexport { Card, cardVariants };\n"]}
@@ -0,0 +1,91 @@
1
+ 'use strict';
2
+
3
+ var chunkUXYAKGI2_cjs = require('./chunk-UXYAKGI2.cjs');
4
+ var chunk4V3IOZPC_cjs = require('./chunk-4V3IOZPC.cjs');
5
+ var React = require('react');
6
+ var CheckboxPrimitive = require('@radix-ui/react-checkbox');
7
+ var Label = require('@radix-ui/react-label');
8
+ var jsxRuntime = require('react/jsx-runtime');
9
+
10
+ function _interopNamespace(e) {
11
+ if (e && e.__esModule) return e;
12
+ var n = Object.create(null);
13
+ if (e) {
14
+ Object.keys(e).forEach(function (k) {
15
+ if (k !== 'default') {
16
+ var d = Object.getOwnPropertyDescriptor(e, k);
17
+ Object.defineProperty(n, k, d.get ? d : {
18
+ enumerable: true,
19
+ get: function () { return e[k]; }
20
+ });
21
+ }
22
+ });
23
+ }
24
+ n.default = e;
25
+ return Object.freeze(n);
26
+ }
27
+
28
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
29
+ var CheckboxPrimitive__namespace = /*#__PURE__*/_interopNamespace(CheckboxPrimitive);
30
+ var Label__namespace = /*#__PURE__*/_interopNamespace(Label);
31
+
32
+ var Checkbox = React__namespace.forwardRef((_a, ref) => {
33
+ var _b = _a, { className, label, id } = _b, props = chunk4V3IOZPC_cjs.__objRest(_b, ["className", "label", "id"]);
34
+ const generatedId = React__namespace.useId();
35
+ const checkboxId = id != null ? id : generatedId;
36
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2.5", children: [
37
+ /* @__PURE__ */ jsxRuntime.jsx(
38
+ CheckboxPrimitive__namespace.Root,
39
+ chunk4V3IOZPC_cjs.__spreadProps(chunk4V3IOZPC_cjs.__spreadValues({
40
+ ref,
41
+ id: checkboxId,
42
+ className: chunk4V3IOZPC_cjs.cn(
43
+ "h-5 w-5 rounded-md shrink-0",
44
+ "border-2 border-[var(--color-border)]",
45
+ "bg-[var(--color-background)]",
46
+ "transition-colors duration-150",
47
+ "data-[state=checked]:bg-[var(--color-primary)] data-[state=checked]:border-[var(--color-primary)]",
48
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-primary)] focus-visible:ring-offset-2",
49
+ "disabled:opacity-40 disabled:cursor-not-allowed",
50
+ className
51
+ )
52
+ }, props), {
53
+ children: /* @__PURE__ */ jsxRuntime.jsx(CheckboxPrimitive__namespace.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(chunkUXYAKGI2_cjs.LazyMotion, { features: chunkUXYAKGI2_cjs.domAnimation, children: /* @__PURE__ */ jsxRuntime.jsx(
54
+ chunkUXYAKGI2_cjs.m.svg,
55
+ {
56
+ width: "11",
57
+ height: "8",
58
+ viewBox: "0 0 11 8",
59
+ fill: "none",
60
+ initial: { pathLength: 0, opacity: 0 },
61
+ animate: { pathLength: 1, opacity: 1 },
62
+ transition: { duration: 0.2, ease: "easeOut" },
63
+ children: /* @__PURE__ */ jsxRuntime.jsx(
64
+ chunkUXYAKGI2_cjs.m.path,
65
+ {
66
+ d: "M1 3.5L4 6.5L10 1",
67
+ stroke: "white",
68
+ strokeWidth: "1.8",
69
+ strokeLinecap: "round",
70
+ strokeLinejoin: "round"
71
+ }
72
+ )
73
+ }
74
+ ) }) })
75
+ })
76
+ ),
77
+ label && /* @__PURE__ */ jsxRuntime.jsx(
78
+ Label__namespace.Root,
79
+ {
80
+ htmlFor: checkboxId,
81
+ className: "text-[16px] text-[var(--color-foreground)] cursor-pointer select-none",
82
+ children: label
83
+ }
84
+ )
85
+ ] });
86
+ });
87
+ Checkbox.displayName = "Checkbox";
88
+
89
+ exports.Checkbox = Checkbox;
90
+ //# sourceMappingURL=chunk-KFFQVTKW.cjs.map
91
+ //# sourceMappingURL=chunk-KFFQVTKW.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Checkbox/Checkbox.tsx"],"names":["React","__objRest","jsxs","jsx","CheckboxPrimitive","__spreadProps","__spreadValues","cn","LazyMotion","domAnimation","m","Label"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,IAAM,QAAA,GAAiBA,gBAAA,CAAA,UAAA,CAGrB,CAAC,EAAA,EAAoC,GAAA,KAAQ;AAA5C,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAAW,OAAO,EAAA,EAdvB,GAcG,IAA2B,KAAA,GAAAC,2BAAA,CAA3B,EAAA,EAA2B,CAAzB,WAAA,EAAW,OAAA,EAAO,IAAA,CAAA,CAAA;AACrB,EAAA,MAAM,cAAoBD,gBAAA,CAAA,KAAA,EAAM;AAChC,EAAA,MAAM,aAAa,EAAA,IAAA,IAAA,GAAA,EAAA,GAAM,WAAA;AAEzB,EAAA,uBACEE,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2BAAA,EACb,QAAA,EAAA;AAAA,oBAAAC,cAAA;AAAA,MAAmBC,4BAAA,CAAA,IAAA;AAAA,MAAlBC,+BAAA,CAAAC,gCAAA,CAAA;AAAA,QACC,GAAA;AAAA,QACA,EAAA,EAAI,UAAA;AAAA,QACJ,SAAA,EAAWC,oBAAA;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,kBAAAJ,cAAA,CAAmBC,wCAAlB,EAA4B,SAAA,EAAU,oCACrC,QAAA,kBAAAD,cAAA,CAACK,4BAAA,EAAA,EAAW,UAAUC,8BAAA,EACpB,QAAA,kBAAAN,cAAA;AAAA,UAACO,mBAAA,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,kBAAAP,cAAA;AAAA,cAACO,mBAAA,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,oBACCP,cAAA;AAAA,MAAOQ,gBAAA,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-KFFQVTKW.cjs","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"]}