@customafk/lunas-ui 0.2.40 → 0.2.41

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 (644) hide show
  1. package/dist/{alert-BztgYPpW.d.cts → alert-BVsYpWFX.d.cts} +5 -5
  2. package/dist/{alert-BzBDfGk2.js → alert-D5VmhFT9.js} +2 -2
  3. package/dist/{alert-BzBDfGk2.js.map → alert-D5VmhFT9.js.map} +1 -1
  4. package/dist/{alert-DFvMshuq.d.ts → alert-DXmXDeGs.d.ts} +5 -5
  5. package/dist/{alert-B2PaDJp6.cjs → alert-JwECRZfz.cjs} +2 -2
  6. package/dist/{alert-B2PaDJp6.cjs.map → alert-JwECRZfz.cjs.map} +1 -1
  7. package/dist/{button-DloFFxkz.d.ts → button-BBfGvggN.d.ts} +3 -3
  8. package/dist/{button-CRSezlCi.d.cts → button-BEjRVw6s.d.cts} +3 -3
  9. package/dist/{button.variants-CoSpd71B.js → button.variants-BruXd4VM.js} +1 -1
  10. package/dist/{button.variants-CoSpd71B.js.map → button.variants-BruXd4VM.js.map} +1 -1
  11. package/dist/{button.variants-4kw6plrv.cjs → button.variants-DgVFNsVc.cjs} +2 -2
  12. package/dist/{button.variants-4kw6plrv.cjs.map → button.variants-DgVFNsVc.cjs.map} +1 -1
  13. package/dist/cards/grid-product-card.cjs +1 -1
  14. package/dist/cards/grid-product-card.cjs.map +1 -1
  15. package/dist/cards/grid-product-card.js +1 -1
  16. package/dist/cards/grid-product-card.js.map +1 -1
  17. package/dist/cards/product-card.cjs +1 -1
  18. package/dist/cards/product-card.cjs.map +1 -1
  19. package/dist/cards/product-card.js +1 -1
  20. package/dist/cards/product-card.js.map +1 -1
  21. package/dist/cards/simple-card.cjs +1 -1
  22. package/dist/cards/simple-card.d.ts +2 -2
  23. package/dist/cards/simple-card.js +1 -1
  24. package/dist/chunk-Bmb41Sf3.cjs +1 -0
  25. package/dist/{close-Dlo1bI8x.cjs → close-Dflkky9q.cjs} +2 -2
  26. package/dist/{close-Dlo1bI8x.cjs.map → close-Dflkky9q.cjs.map} +1 -1
  27. package/dist/{close-C0PdZGxr.js → close-DrkwaVXK.js} +1 -1
  28. package/dist/{close-C0PdZGxr.js.map → close-DrkwaVXK.js.map} +1 -1
  29. package/dist/cms-layout-B8maJRLp.cjs +2 -0
  30. package/dist/{cms-layout-BCH4NroR.cjs.map → cms-layout-B8maJRLp.cjs.map} +1 -1
  31. package/dist/cms-layout-CLeGdpMb.js +2 -0
  32. package/dist/{cms-layout-tPwrgJZc.js.map → cms-layout-CLeGdpMb.js.map} +1 -1
  33. package/dist/data-display/country.cjs +1 -1
  34. package/dist/data-display/country.cjs.map +1 -1
  35. package/dist/data-display/country.d.cts +1 -1
  36. package/dist/data-display/country.d.ts +1 -1
  37. package/dist/data-display/country.js +1 -1
  38. package/dist/data-display/country.js.map +1 -1
  39. package/dist/data-display/data-list.cjs +1 -1
  40. package/dist/data-display/date-tooltip.cjs +1 -1
  41. package/dist/data-display/date-tooltip.cjs.map +1 -1
  42. package/dist/data-display/date-tooltip.js +1 -1
  43. package/dist/data-display/date-tooltip.js.map +1 -1
  44. package/dist/data-display/date.cjs +2 -1
  45. package/dist/data-display/date.cjs.map +1 -0
  46. package/dist/data-display/date.js +2 -1
  47. package/dist/data-display/date.js.map +1 -0
  48. package/dist/data-display/empty.cjs +1 -1
  49. package/dist/data-display/name.cjs +1 -1
  50. package/dist/data-display/name.cjs.map +1 -1
  51. package/dist/data-display/name.js +1 -1
  52. package/dist/data-display/name.js.map +1 -1
  53. package/dist/data-display/phone-number.cjs +1 -1
  54. package/dist/data-display/phone-number.cjs.map +1 -1
  55. package/dist/data-display/phone-number.js +1 -1
  56. package/dist/data-display/phone-number.js.map +1 -1
  57. package/dist/data-display/role-badge.cjs +1 -1
  58. package/dist/data-display/role-badge.cjs.map +1 -1
  59. package/dist/data-display/role-badge.d.cts +1 -1
  60. package/dist/data-display/role-badge.d.ts +1 -1
  61. package/dist/data-display/role-badge.js +1 -1
  62. package/dist/data-display/role-badge.js.map +1 -1
  63. package/dist/data-display/statistic.cjs +2 -1
  64. package/dist/data-display/statistic.cjs.map +1 -0
  65. package/dist/data-display/statistic.d.cts +3 -3
  66. package/dist/data-display/statistic.d.ts +3 -3
  67. package/dist/data-display/statistic.js +2 -1
  68. package/dist/data-display/statistic.js.map +1 -0
  69. package/dist/data-display/user.cjs +2 -1
  70. package/dist/data-display/user.cjs.map +1 -0
  71. package/dist/data-display/user.js +2 -1
  72. package/dist/data-display/user.js.map +1 -0
  73. package/dist/dialogs/confirm-dialog.cjs +1 -1
  74. package/dist/dialogs/confirm-dialog.js +1 -1
  75. package/dist/dialogs/detail-dialog/components/sidebar.cjs +1 -1
  76. package/dist/dialogs/detail-dialog/components/sidebar.d.cts +26 -26
  77. package/dist/dialogs/detail-dialog/components/sidebar.d.ts +26 -26
  78. package/dist/dialogs/detail-dialog/components/sidebar.js +1 -1
  79. package/dist/dialogs/detail-dialog/index.cjs +1 -1
  80. package/dist/dialogs/detail-dialog/index.cjs.map +1 -1
  81. package/dist/dialogs/detail-dialog/index.js +1 -1
  82. package/dist/dialogs/detail-dialog/index.js.map +1 -1
  83. package/dist/dialogs/error-dialog.cjs +1 -1
  84. package/dist/dialogs/error-dialog.js +1 -1
  85. package/dist/dialogs/loading-dialog.cjs +1 -1
  86. package/dist/dialogs/loading-dialog.cjs.map +1 -1
  87. package/dist/dialogs/loading-dialog.js +1 -1
  88. package/dist/dialogs/loading-dialog.js.map +1 -1
  89. package/dist/features/descriptions/index.cjs +1 -1
  90. package/dist/features/descriptions/index.cjs.map +1 -1
  91. package/dist/features/descriptions/index.d.cts +3 -3
  92. package/dist/features/descriptions/index.d.ts +4 -4
  93. package/dist/features/descriptions/index.js +1 -1
  94. package/dist/features/descriptions/index.js.map +1 -1
  95. package/dist/features/search-modal/index.cjs +1 -1
  96. package/dist/features/search-modal/index.d.cts +2 -2
  97. package/dist/features/search-modal/index.d.ts +2 -2
  98. package/dist/features/search-modal/index.js +1 -1
  99. package/dist/features/tables/index.cjs +1 -1
  100. package/dist/features/tables/index.d.cts +1 -1
  101. package/dist/features/tables/index.d.ts +1 -2
  102. package/dist/features/tables/index.js +1 -1
  103. package/dist/features/tanstack-form/index.cjs +1 -1
  104. package/dist/features/tanstack-form/index.d.cts +1 -1
  105. package/dist/features/tanstack-form/index.d.ts +1 -1
  106. package/dist/features/tanstack-form/index.js +1 -1
  107. package/dist/features/text-editor/index.cjs +1 -1
  108. package/dist/features/text-editor/index.d.cts +1 -1
  109. package/dist/features/text-editor/index.d.ts +1 -1
  110. package/dist/features/text-editor/index.js +1 -1
  111. package/dist/field-0gaEKxov.cjs +2 -0
  112. package/dist/{field-BrlETeXX.cjs.map → field-0gaEKxov.cjs.map} +1 -1
  113. package/dist/field-DG-kX3HU.js +2 -0
  114. package/dist/{field-DpoKF1nY.js.map → field-DG-kX3HU.js.map} +1 -1
  115. package/dist/{flex-DmWmOBn5.cjs → flex-BAfCk_in.cjs} +2 -2
  116. package/dist/{flex-DmWmOBn5.cjs.map → flex-BAfCk_in.cjs.map} +1 -1
  117. package/dist/{flex-CinRrgEy.js → flex-D_XtSjf4.js} +2 -2
  118. package/dist/{flex-CinRrgEy.js.map → flex-D_XtSjf4.js.map} +1 -1
  119. package/dist/{heading-tGTqk3pA.cjs → heading-BX7ZVnVg.cjs} +2 -2
  120. package/dist/{heading-tGTqk3pA.cjs.map → heading-BX7ZVnVg.cjs.map} +1 -1
  121. package/dist/{heading-Bz-hSatD.js → heading-Bw3eo6IT.js} +1 -1
  122. package/dist/{heading-Bz-hSatD.js.map → heading-Bw3eo6IT.js.map} +1 -1
  123. package/dist/{index-FIl1Am8j.d.cts → index--eHW_BCk.d.ts} +7 -7
  124. package/dist/{index-BlQGXGqt.d.ts → index-C257sc-c.d.ts} +1 -1
  125. package/dist/{index-DSciiDhn.d.cts → index-C4ZFmaZm.d.cts} +326 -326
  126. package/dist/{index-BX_ZHO1J.d.cts → index-DWEpRM8i.d.cts} +31 -31
  127. package/dist/{index-B3NschgB.d.ts → index-DnQeeNHV.d.ts} +3 -3
  128. package/dist/{index-0jdHH3H_.d.ts → index-_MFRCXuJ.d.cts} +2 -2
  129. package/dist/{index-KO98y6L0.d.cts → index-rNI5ia8r.d.cts} +1 -1
  130. package/dist/{index-DZVn4x4Q.d.ts → index-rZ2RtGJp.d.ts} +2 -2
  131. package/dist/index.cjs +1 -1
  132. package/dist/index.d.cts +11 -11
  133. package/dist/index.d.ts +11 -11
  134. package/dist/index.js +1 -1
  135. package/dist/layouts/cms-layout/index.cjs +1 -1
  136. package/dist/layouts/cms-layout/index.d.cts +1 -1
  137. package/dist/layouts/cms-layout/index.d.ts +1 -1
  138. package/dist/layouts/cms-layout/index.js +1 -1
  139. package/dist/layouts/flex.cjs +1 -1
  140. package/dist/layouts/flex.d.cts +5 -5
  141. package/dist/layouts/flex.d.ts +3 -3
  142. package/dist/layouts/flex.js +1 -1
  143. package/dist/layouts/grid.cjs +1 -1
  144. package/dist/layouts/payment-layout/index.cjs +1 -1
  145. package/dist/layouts/payment-layout/index.js +1 -1
  146. package/dist/pages/FeatureDeveloping.cjs +1 -1
  147. package/dist/pages/FeatureDeveloping.cjs.map +1 -1
  148. package/dist/pages/FeatureDeveloping.d.cts +2 -2
  149. package/dist/pages/FeatureDeveloping.d.ts +2 -2
  150. package/dist/pages/FeatureDeveloping.js +1 -1
  151. package/dist/pages/FeatureDeveloping.js.map +1 -1
  152. package/dist/pages/FeatureFixing.cjs +1 -1
  153. package/dist/pages/FeatureFixing.cjs.map +1 -1
  154. package/dist/pages/FeatureFixing.d.cts +2 -2
  155. package/dist/pages/FeatureFixing.d.ts +2 -2
  156. package/dist/pages/FeatureFixing.js +1 -1
  157. package/dist/pages/FeatureFixing.js.map +1 -1
  158. package/dist/pages/LoginPage.cjs +1 -1
  159. package/dist/pages/LoginPage.cjs.map +1 -1
  160. package/dist/pages/LoginPage.d.cts +2 -2
  161. package/dist/pages/LoginPage.d.ts +2 -2
  162. package/dist/pages/LoginPage.js +1 -1
  163. package/dist/pages/LoginPage.js.map +1 -1
  164. package/dist/pages/NotAuthorized.cjs +1 -1
  165. package/dist/pages/NotAuthorized.cjs.map +1 -1
  166. package/dist/pages/NotAuthorized.d.ts +2 -2
  167. package/dist/pages/NotAuthorized.js +1 -1
  168. package/dist/pages/NotAuthorized.js.map +1 -1
  169. package/dist/pages/NotFound.cjs +1 -1
  170. package/dist/pages/NotFound.cjs.map +1 -1
  171. package/dist/pages/NotFound.d.cts +2 -2
  172. package/dist/pages/NotFound.d.ts +2 -2
  173. package/dist/pages/NotFound.js +1 -1
  174. package/dist/pages/NotFound.js.map +1 -1
  175. package/dist/pages/RegisterPage.cjs +1 -1
  176. package/dist/pages/RegisterPage.cjs.map +1 -1
  177. package/dist/pages/RegisterPage.d.cts +2 -2
  178. package/dist/pages/RegisterPage.d.ts +2 -2
  179. package/dist/pages/RegisterPage.js +1 -1
  180. package/dist/pages/RegisterPage.js.map +1 -1
  181. package/dist/pages/VerifyEmailPage.cjs +1 -1
  182. package/dist/pages/VerifyEmailPage.cjs.map +1 -1
  183. package/dist/pages/VerifyEmailPage.d.cts +2 -2
  184. package/dist/pages/VerifyEmailPage.d.ts +2 -2
  185. package/dist/pages/VerifyEmailPage.js +1 -1
  186. package/dist/pages/VerifyEmailPage.js.map +1 -1
  187. package/dist/{paragraph-DvTZvbzw.cjs → paragraph-D0x3Jc6W.cjs} +2 -2
  188. package/dist/{paragraph-DvTZvbzw.cjs.map → paragraph-D0x3Jc6W.cjs.map} +1 -1
  189. package/dist/{paragraph-Cc13ZI4d.js → paragraph-ESjXXqHU.js} +1 -1
  190. package/dist/{paragraph-Cc13ZI4d.js.map → paragraph-ESjXXqHU.js.map} +1 -1
  191. package/dist/payment-layout-CksJbGsl.js +2 -0
  192. package/dist/{payment-layout-giaGvs8T.js.map → payment-layout-CksJbGsl.js.map} +1 -1
  193. package/dist/payment-layout-O7TNw2Cr.cjs +2 -0
  194. package/dist/{payment-layout-DyILfyVG.cjs.map → payment-layout-O7TNw2Cr.cjs.map} +1 -1
  195. package/dist/search-modal-Db8Xp2L4.cjs +2 -0
  196. package/dist/{search-modal-B-pzGcfP.cjs.map → search-modal-Db8Xp2L4.cjs.map} +1 -1
  197. package/dist/search-modal-DdonKbwA.js +2 -0
  198. package/dist/{search-modal-b2AE5WEW.js.map → search-modal-DdonKbwA.js.map} +1 -1
  199. package/dist/sidebar-BCuXtop_.js +2 -0
  200. package/dist/sidebar-BCuXtop_.js.map +1 -0
  201. package/dist/sidebar-CQZlWCK4.cjs +2 -0
  202. package/dist/{sidebar-D5J2gcTw.cjs.map → sidebar-CQZlWCK4.cjs.map} +1 -1
  203. package/dist/{skeleton-DlRDNM97.js → skeleton-DAcbjBGp.js} +1 -1
  204. package/dist/{skeleton-DlRDNM97.js.map → skeleton-DAcbjBGp.js.map} +1 -1
  205. package/dist/{skeleton-CX1USu1w.cjs → skeleton-oQFT4xR2.cjs} +2 -2
  206. package/dist/{skeleton-CX1USu1w.cjs.map → skeleton-oQFT4xR2.cjs.map} +1 -1
  207. package/dist/systems/google.cjs +1 -1
  208. package/dist/systems/google.js +1 -1
  209. package/dist/tables-DbwtCMRI.js +4 -0
  210. package/dist/{tables-DWQytYNm.js.map → tables-DbwtCMRI.js.map} +1 -1
  211. package/dist/tables-DgZbLZQP.cjs +4 -0
  212. package/dist/{tables-CPKHe3k-.cjs.map → tables-DgZbLZQP.cjs.map} +1 -1
  213. package/dist/tanstack-form-C3SGhsmN.cjs +2 -0
  214. package/dist/tanstack-form-C3SGhsmN.cjs.map +1 -0
  215. package/dist/tanstack-form-Ds_Zjt20.js +2 -0
  216. package/dist/tanstack-form-Ds_Zjt20.js.map +1 -0
  217. package/dist/text-editor-DhTxCxvH.cjs +2 -0
  218. package/dist/{text-editor-CvJN3nSL.cjs.map → text-editor-DhTxCxvH.cjs.map} +1 -1
  219. package/dist/text-editor-DwisU9_U.js +2 -0
  220. package/dist/{text-editor-WbS7pJJs.js.map → text-editor-DwisU9_U.js.map} +1 -1
  221. package/dist/typography/paragraph.cjs +1 -1
  222. package/dist/typography/paragraph.d.cts +4 -4
  223. package/dist/typography/paragraph.d.ts +3 -3
  224. package/dist/typography/paragraph.js +1 -1
  225. package/dist/typography/title.cjs +1 -1
  226. package/dist/ui/alert-dialog.cjs +1 -1
  227. package/dist/ui/alert-dialog.d.cts +12 -12
  228. package/dist/ui/alert-dialog.d.ts +12 -12
  229. package/dist/ui/alert-dialog.js +1 -1
  230. package/dist/ui/alert.cjs +1 -1
  231. package/dist/ui/alert.d.cts +1 -1
  232. package/dist/ui/alert.d.ts +1 -1
  233. package/dist/ui/alert.js +1 -1
  234. package/dist/ui/aspect-ratio.cjs +1 -1
  235. package/dist/ui/aspect-ratio.d.cts +2 -2
  236. package/dist/ui/aspect-ratio.d.ts +2 -2
  237. package/dist/ui/avatar.cjs +2 -1
  238. package/dist/ui/avatar.cjs.map +1 -0
  239. package/dist/ui/avatar.d.cts +4 -4
  240. package/dist/ui/avatar.d.ts +4 -4
  241. package/dist/ui/avatar.js +2 -1
  242. package/dist/ui/avatar.js.map +1 -0
  243. package/dist/ui/badge.cjs +2 -1
  244. package/dist/ui/badge.cjs.map +1 -0
  245. package/dist/ui/badge.d.cts +42 -2
  246. package/dist/ui/badge.d.ts +42 -2
  247. package/dist/ui/badge.js +2 -1
  248. package/dist/ui/badge.js.map +1 -0
  249. package/dist/ui/breadcrumb.cjs +1 -1
  250. package/dist/ui/breadcrumb.cjs.map +1 -1
  251. package/dist/ui/breadcrumb.d.cts +8 -8
  252. package/dist/ui/breadcrumb.d.ts +8 -8
  253. package/dist/ui/breadcrumb.js +1 -1
  254. package/dist/ui/breadcrumb.js.map +1 -1
  255. package/dist/ui/button-group.cjs +1 -1
  256. package/dist/ui/button-group.cjs.map +1 -1
  257. package/dist/ui/button-group.d.cts +7 -7
  258. package/dist/ui/button-group.d.ts +7 -7
  259. package/dist/ui/button-group.js +1 -1
  260. package/dist/ui/button-group.js.map +1 -1
  261. package/dist/ui/button.cjs +2 -1
  262. package/dist/ui/button.cjs.map +1 -0
  263. package/dist/ui/button.d.cts +1 -1
  264. package/dist/ui/button.d.ts +1 -1
  265. package/dist/ui/button.js +2 -1
  266. package/dist/ui/button.js.map +1 -0
  267. package/dist/ui/buttons/add-new.cjs +1 -1
  268. package/dist/ui/buttons/add-new.cjs.map +1 -1
  269. package/dist/ui/buttons/add-new.js +1 -1
  270. package/dist/ui/buttons/add-new.js.map +1 -1
  271. package/dist/ui/buttons/edit.cjs +1 -1
  272. package/dist/ui/buttons/edit.cjs.map +1 -1
  273. package/dist/ui/buttons/edit.js +1 -1
  274. package/dist/ui/buttons/edit.js.map +1 -1
  275. package/dist/ui/buttons/refresh.cjs +1 -1
  276. package/dist/ui/buttons/refresh.cjs.map +1 -1
  277. package/dist/ui/buttons/refresh.js +1 -1
  278. package/dist/ui/buttons/refresh.js.map +1 -1
  279. package/dist/ui/buttons/trash.cjs +1 -1
  280. package/dist/ui/buttons/trash.cjs.map +1 -1
  281. package/dist/ui/buttons/trash.js +1 -1
  282. package/dist/ui/buttons/trash.js.map +1 -1
  283. package/dist/ui/buttons/upload-image.cjs +1 -1
  284. package/dist/ui/buttons/upload-image.cjs.map +1 -1
  285. package/dist/ui/buttons/upload-image.js +1 -1
  286. package/dist/ui/buttons/upload-image.js.map +1 -1
  287. package/dist/ui/calendar.cjs +2 -1
  288. package/dist/ui/calendar.cjs.map +1 -0
  289. package/dist/ui/calendar.d.cts +4 -4
  290. package/dist/ui/calendar.d.ts +4 -4
  291. package/dist/ui/calendar.js +2 -1
  292. package/dist/ui/calendar.js.map +1 -0
  293. package/dist/ui/card.cjs +1 -1
  294. package/dist/ui/card.d.cts +8 -8
  295. package/dist/ui/card.d.ts +8 -8
  296. package/dist/ui/card.js +1 -1
  297. package/dist/ui/carousel.cjs +1 -1
  298. package/dist/ui/carousel.cjs.map +1 -1
  299. package/dist/ui/carousel.d.cts +7 -7
  300. package/dist/ui/carousel.d.ts +7 -7
  301. package/dist/ui/carousel.js +1 -1
  302. package/dist/ui/carousel.js.map +1 -1
  303. package/dist/ui/checkbox.cjs +2 -1
  304. package/dist/ui/checkbox.cjs.map +1 -0
  305. package/dist/ui/checkbox.d.cts +2 -2
  306. package/dist/ui/checkbox.js +2 -1
  307. package/dist/ui/checkbox.js.map +1 -0
  308. package/dist/ui/collapsible.cjs +1 -1
  309. package/dist/ui/collapsible.d.cts +4 -4
  310. package/dist/ui/command.cjs +2 -1
  311. package/dist/ui/command.cjs.map +1 -0
  312. package/dist/ui/command.d.cts +11 -11
  313. package/dist/ui/command.d.ts +11 -11
  314. package/dist/ui/command.js +2 -1
  315. package/dist/ui/command.js.map +1 -0
  316. package/dist/ui/context-menu.cjs +1 -1
  317. package/dist/ui/context-menu.d.cts +16 -16
  318. package/dist/ui/context-menu.d.ts +16 -16
  319. package/dist/ui/dialog.cjs +2 -1
  320. package/dist/ui/dialog.cjs.map +1 -0
  321. package/dist/ui/dialog.d.cts +90 -2
  322. package/dist/ui/dialog.d.ts +90 -2
  323. package/dist/ui/dialog.js +2 -1
  324. package/dist/ui/dialog.js.map +1 -0
  325. package/dist/ui/drawer.cjs +2 -1
  326. package/dist/ui/drawer.cjs.map +1 -0
  327. package/dist/ui/drawer.d.cts +11 -11
  328. package/dist/ui/drawer.d.ts +11 -11
  329. package/dist/ui/drawer.js +2 -1
  330. package/dist/ui/drawer.js.map +1 -0
  331. package/dist/ui/dropdown-menu.cjs +2 -1
  332. package/dist/ui/dropdown-menu.cjs.map +1 -0
  333. package/dist/ui/dropdown-menu.d.cts +16 -16
  334. package/dist/ui/dropdown-menu.d.ts +16 -16
  335. package/dist/ui/dropdown-menu.js +2 -1
  336. package/dist/ui/dropdown-menu.js.map +1 -0
  337. package/dist/ui/empty.cjs +1 -1
  338. package/dist/ui/empty.d.cts +9 -9
  339. package/dist/ui/empty.d.ts +7 -7
  340. package/dist/ui/field.cjs +1 -1
  341. package/dist/ui/field.d.cts +24 -24
  342. package/dist/ui/field.d.ts +24 -24
  343. package/dist/ui/field.js +1 -1
  344. package/dist/ui/file-uploader.cjs +2 -2
  345. package/dist/ui/file-uploader.cjs.map +1 -1
  346. package/dist/ui/file-uploader.d.cts +2 -2
  347. package/dist/ui/file-uploader.d.ts +2 -2
  348. package/dist/ui/file-uploader.js +2 -2
  349. package/dist/ui/file-uploader.js.map +1 -1
  350. package/dist/ui/form.cjs +1 -1
  351. package/dist/ui/form.cjs.map +1 -1
  352. package/dist/ui/form.d.cts +10 -10
  353. package/dist/ui/form.d.ts +10 -10
  354. package/dist/ui/form.js +1 -1
  355. package/dist/ui/form.js.map +1 -1
  356. package/dist/ui/hover-card.cjs +1 -1
  357. package/dist/ui/hover-card.d.cts +4 -4
  358. package/dist/ui/hover-card.d.ts +4 -4
  359. package/dist/ui/image.cjs +2 -1
  360. package/dist/ui/image.cjs.map +1 -0
  361. package/dist/ui/image.js +2 -1
  362. package/dist/ui/image.js.map +1 -0
  363. package/dist/ui/input-otp.cjs +1 -1
  364. package/dist/ui/input-otp.d.cts +5 -5
  365. package/dist/ui/input-otp.d.ts +5 -5
  366. package/dist/ui/input-otp.js +1 -1
  367. package/dist/ui/input.cjs +2 -1
  368. package/dist/ui/input.cjs.map +1 -0
  369. package/dist/ui/input.d.cts +44 -2
  370. package/dist/ui/input.d.ts +44 -2
  371. package/dist/ui/input.js +2 -1
  372. package/dist/ui/input.js.map +1 -0
  373. package/dist/ui/inputs/search-input.cjs +1 -1
  374. package/dist/ui/inputs/search-input.cjs.map +1 -1
  375. package/dist/ui/inputs/search-input.d.cts +3 -3
  376. package/dist/ui/inputs/search-input.d.ts +3 -3
  377. package/dist/ui/inputs/search-input.js +1 -1
  378. package/dist/ui/inputs/search-input.js.map +1 -1
  379. package/dist/ui/item.cjs +1 -1
  380. package/dist/ui/item.cjs.map +1 -1
  381. package/dist/ui/item.d.cts +15 -15
  382. package/dist/ui/item.d.ts +15 -15
  383. package/dist/ui/item.js +1 -1
  384. package/dist/ui/item.js.map +1 -1
  385. package/dist/ui/label.cjs +2 -1
  386. package/dist/ui/label.cjs.map +1 -0
  387. package/dist/ui/label.d.cts +2 -2
  388. package/dist/ui/label.d.ts +2 -2
  389. package/dist/ui/label.js +2 -1
  390. package/dist/ui/label.js.map +1 -0
  391. package/dist/ui/menubar.cjs +1 -1
  392. package/dist/ui/menubar.d.cts +17 -17
  393. package/dist/ui/menubar.d.ts +17 -17
  394. package/dist/ui/multi-select.cjs +1 -1
  395. package/dist/ui/multi-select.cjs.map +1 -1
  396. package/dist/ui/multi-select.d.cts +3 -3
  397. package/dist/ui/multi-select.d.ts +6 -7
  398. package/dist/ui/multi-select.js +1 -1
  399. package/dist/ui/multi-select.js.map +1 -1
  400. package/dist/ui/navigation-menu.cjs +1 -1
  401. package/dist/ui/navigation-menu.d.cts +9 -9
  402. package/dist/ui/navigation-menu.d.ts +9 -9
  403. package/dist/ui/pagination.cjs +1 -1
  404. package/dist/ui/pagination.d.cts +9 -9
  405. package/dist/ui/pagination.d.ts +9 -9
  406. package/dist/ui/pagination.js +1 -1
  407. package/dist/ui/popover.cjs +2 -1
  408. package/dist/ui/popover.cjs.map +1 -0
  409. package/dist/ui/popover.d.cts +6 -6
  410. package/dist/ui/popover.d.ts +6 -6
  411. package/dist/ui/popover.js +2 -1
  412. package/dist/ui/popover.js.map +1 -0
  413. package/dist/ui/progress.cjs +2 -1
  414. package/dist/ui/progress.cjs.map +1 -0
  415. package/dist/ui/progress.d.cts +2 -2
  416. package/dist/ui/progress.d.ts +2 -2
  417. package/dist/ui/progress.js +2 -1
  418. package/dist/ui/progress.js.map +1 -0
  419. package/dist/ui/radio-group.cjs +2 -1
  420. package/dist/ui/radio-group.cjs.map +1 -0
  421. package/dist/ui/radio-group.d.cts +3 -3
  422. package/dist/ui/radio-group.d.ts +3 -3
  423. package/dist/ui/radio-group.js +2 -1
  424. package/dist/ui/radio-group.js.map +1 -0
  425. package/dist/ui/resizable.cjs +2 -1
  426. package/dist/ui/resizable.cjs.map +1 -0
  427. package/dist/ui/resizable.d.cts +9 -9
  428. package/dist/ui/resizable.d.ts +9 -9
  429. package/dist/ui/resizable.js +2 -1
  430. package/dist/ui/resizable.js.map +1 -0
  431. package/dist/ui/scroll-area.cjs +1 -1
  432. package/dist/ui/scroll-area.d.cts +5 -5
  433. package/dist/ui/scroll-area.d.ts +5 -5
  434. package/dist/ui/scroll-area.js +1 -1
  435. package/dist/ui/select.cjs +2 -1
  436. package/dist/ui/select.cjs.map +1 -0
  437. package/dist/ui/select.d.cts +9 -9
  438. package/dist/ui/select.d.ts +9 -9
  439. package/dist/ui/select.js +2 -1
  440. package/dist/ui/select.js.map +1 -0
  441. package/dist/ui/separator.cjs +2 -1
  442. package/dist/ui/separator.cjs.map +1 -0
  443. package/dist/ui/separator.d.cts +2 -2
  444. package/dist/ui/separator.d.ts +2 -2
  445. package/dist/ui/separator.js +2 -1
  446. package/dist/ui/separator.js.map +1 -0
  447. package/dist/ui/sheet.cjs +2 -1
  448. package/dist/ui/sheet.cjs.map +1 -0
  449. package/dist/ui/sheet.d.cts +9 -9
  450. package/dist/ui/sheet.d.ts +9 -9
  451. package/dist/ui/sheet.js +2 -1
  452. package/dist/ui/sheet.js.map +1 -0
  453. package/dist/ui/skeleton.cjs +1 -1
  454. package/dist/ui/skeleton.d.cts +2 -2
  455. package/dist/ui/skeleton.d.ts +2 -2
  456. package/dist/ui/skeleton.js +1 -1
  457. package/dist/ui/slider.cjs +1 -1
  458. package/dist/ui/slider.d.cts +2 -2
  459. package/dist/ui/slider.d.ts +2 -2
  460. package/dist/ui/slider.js +1 -1
  461. package/dist/ui/sonner.cjs +1 -1
  462. package/dist/ui/sonner.d.cts +2 -2
  463. package/dist/ui/sonner.d.ts +2 -2
  464. package/dist/ui/spinner.cjs +2 -1
  465. package/dist/ui/spinner.cjs.map +1 -0
  466. package/dist/ui/spinner.d.cts +2 -2
  467. package/dist/ui/spinner.d.ts +2 -2
  468. package/dist/ui/spinner.js +2 -1
  469. package/dist/ui/spinner.js.map +1 -0
  470. package/dist/ui/switch.cjs +2 -1
  471. package/dist/ui/switch.cjs.map +1 -0
  472. package/dist/ui/switch.d.cts +2 -2
  473. package/dist/ui/switch.d.ts +2 -2
  474. package/dist/ui/switch.js +2 -1
  475. package/dist/ui/switch.js.map +1 -0
  476. package/dist/ui/table.cjs +1 -1
  477. package/dist/ui/table.d.cts +17 -17
  478. package/dist/ui/table.d.ts +17 -17
  479. package/dist/ui/table.js +1 -1
  480. package/dist/ui/tabs.cjs +1 -1
  481. package/dist/ui/tabs.d.cts +5 -5
  482. package/dist/ui/tabs.d.ts +5 -5
  483. package/dist/ui/textarea.cjs +2 -1
  484. package/dist/ui/textarea.cjs.map +1 -0
  485. package/dist/ui/textarea.d.cts +2 -2
  486. package/dist/ui/textarea.d.ts +2 -2
  487. package/dist/ui/textarea.js +2 -1
  488. package/dist/ui/textarea.js.map +1 -0
  489. package/dist/ui/toggle-group.cjs +1 -1
  490. package/dist/ui/toggle-group.cjs.map +1 -1
  491. package/dist/ui/toggle-group.d.cts +4 -4
  492. package/dist/ui/toggle-group.d.ts +4 -4
  493. package/dist/ui/toggle-group.js +1 -1
  494. package/dist/ui/toggle-group.js.map +1 -1
  495. package/dist/ui/toggle.cjs +1 -1
  496. package/dist/ui/toggle.d.cts +4 -4
  497. package/dist/ui/toggle.d.ts +4 -4
  498. package/dist/ui/tooltip.cjs +2 -1
  499. package/dist/ui/tooltip.cjs.map +1 -0
  500. package/dist/ui/tooltip.d.cts +5 -5
  501. package/dist/ui/tooltip.d.ts +5 -5
  502. package/dist/ui/tooltip.js +2 -1
  503. package/dist/ui/tooltip.js.map +1 -0
  504. package/package.json +1 -1
  505. package/dist/avatar-Hpj8lmux.js +0 -2
  506. package/dist/avatar-Hpj8lmux.js.map +0 -1
  507. package/dist/avatar-TyOphzGo.cjs +0 -2
  508. package/dist/avatar-TyOphzGo.cjs.map +0 -1
  509. package/dist/badge-BvKBYsIh.d.ts +0 -42
  510. package/dist/badge-CRpRXSuO.js +0 -2
  511. package/dist/badge-CRpRXSuO.js.map +0 -1
  512. package/dist/badge-KW7xu5Ca.cjs +0 -2
  513. package/dist/badge-KW7xu5Ca.cjs.map +0 -1
  514. package/dist/badge-Y-DJHIVI.d.cts +0 -42
  515. package/dist/button-C--DAN1D.cjs +0 -2
  516. package/dist/button-C--DAN1D.cjs.map +0 -1
  517. package/dist/button-LMMbL-uH.js +0 -2
  518. package/dist/button-LMMbL-uH.js.map +0 -1
  519. package/dist/calendar-4weBDnXz.cjs +0 -2
  520. package/dist/calendar-4weBDnXz.cjs.map +0 -1
  521. package/dist/calendar-DzPt7b6k.js +0 -2
  522. package/dist/calendar-DzPt7b6k.js.map +0 -1
  523. package/dist/checkbox-DLGDoU-1.js +0 -2
  524. package/dist/checkbox-DLGDoU-1.js.map +0 -1
  525. package/dist/checkbox-Dsq-MSbH.cjs +0 -2
  526. package/dist/checkbox-Dsq-MSbH.cjs.map +0 -1
  527. package/dist/chunk-350yNsax.cjs +0 -1
  528. package/dist/cms-layout-BCH4NroR.cjs +0 -2
  529. package/dist/cms-layout-tPwrgJZc.js +0 -2
  530. package/dist/command-2gUejA6g.js +0 -2
  531. package/dist/command-2gUejA6g.js.map +0 -1
  532. package/dist/command-CsP8a1Un.cjs +0 -2
  533. package/dist/command-CsP8a1Un.cjs.map +0 -1
  534. package/dist/date-BIqCFM1Z.js +0 -2
  535. package/dist/date-BIqCFM1Z.js.map +0 -1
  536. package/dist/date-D4NVl6C9.cjs +0 -2
  537. package/dist/date-D4NVl6C9.cjs.map +0 -1
  538. package/dist/dialog-BXkm3_Bk.d.ts +0 -90
  539. package/dist/dialog-BigPrWIj.cjs +0 -2
  540. package/dist/dialog-BigPrWIj.cjs.map +0 -1
  541. package/dist/dialog-CmutQ3rp.js +0 -2
  542. package/dist/dialog-CmutQ3rp.js.map +0 -1
  543. package/dist/dialog-DAl7wicp.d.cts +0 -90
  544. package/dist/dist-Cx5ufCdr.cjs +0 -2
  545. package/dist/dist-Cx5ufCdr.cjs.map +0 -1
  546. package/dist/dist-EPxjIRJp.js +0 -2
  547. package/dist/dist-EPxjIRJp.js.map +0 -1
  548. package/dist/drawer-B3qXaN5p.js +0 -2
  549. package/dist/drawer-B3qXaN5p.js.map +0 -1
  550. package/dist/drawer-BB8BZzDG.cjs +0 -2
  551. package/dist/drawer-BB8BZzDG.cjs.map +0 -1
  552. package/dist/dropdown-menu-CVh520yG.cjs +0 -2
  553. package/dist/dropdown-menu-CVh520yG.cjs.map +0 -1
  554. package/dist/dropdown-menu-DeHCVyby.js +0 -2
  555. package/dist/dropdown-menu-DeHCVyby.js.map +0 -1
  556. package/dist/field-BrlETeXX.cjs +0 -2
  557. package/dist/field-DpoKF1nY.js +0 -2
  558. package/dist/image-BpTuF_1w.js +0 -2
  559. package/dist/image-BpTuF_1w.js.map +0 -1
  560. package/dist/image-W_Yb0xTB.cjs +0 -2
  561. package/dist/image-W_Yb0xTB.cjs.map +0 -1
  562. package/dist/input-BBxY18n7.d.ts +0 -44
  563. package/dist/input-D59Pfu7U.d.cts +0 -44
  564. package/dist/input-DAfP6LZ7.js +0 -2
  565. package/dist/input-DAfP6LZ7.js.map +0 -1
  566. package/dist/input-WJ0DLHTR.cjs +0 -2
  567. package/dist/input-WJ0DLHTR.cjs.map +0 -1
  568. package/dist/label-B8cAG2kc.js +0 -2
  569. package/dist/label-B8cAG2kc.js.map +0 -1
  570. package/dist/label-CC6fXVbC.cjs +0 -2
  571. package/dist/label-CC6fXVbC.cjs.map +0 -1
  572. package/dist/payment-layout-DyILfyVG.cjs +0 -2
  573. package/dist/payment-layout-giaGvs8T.js +0 -2
  574. package/dist/popover-6233wU1s.js +0 -2
  575. package/dist/popover-6233wU1s.js.map +0 -1
  576. package/dist/popover-DBsC8Ltp.cjs +0 -2
  577. package/dist/popover-DBsC8Ltp.cjs.map +0 -1
  578. package/dist/progress-AYknlEgK.js +0 -2
  579. package/dist/progress-AYknlEgK.js.map +0 -1
  580. package/dist/progress-gvBqNiHp.cjs +0 -2
  581. package/dist/progress-gvBqNiHp.cjs.map +0 -1
  582. package/dist/radio-group-ImoBjpqZ.js +0 -2
  583. package/dist/radio-group-ImoBjpqZ.js.map +0 -1
  584. package/dist/radio-group-_TdMkv8w.cjs +0 -2
  585. package/dist/radio-group-_TdMkv8w.cjs.map +0 -1
  586. package/dist/resizable-C-M-mu6b.js +0 -2
  587. package/dist/resizable-C-M-mu6b.js.map +0 -1
  588. package/dist/resizable-sgpaHAb8.cjs +0 -2
  589. package/dist/resizable-sgpaHAb8.cjs.map +0 -1
  590. package/dist/search-modal-B-pzGcfP.cjs +0 -2
  591. package/dist/search-modal-b2AE5WEW.js +0 -2
  592. package/dist/select-CWLQHh8x.cjs +0 -2
  593. package/dist/select-CWLQHh8x.cjs.map +0 -1
  594. package/dist/select-CryLzZA0.js +0 -2
  595. package/dist/select-CryLzZA0.js.map +0 -1
  596. package/dist/separator-BM8hA4DP.js +0 -2
  597. package/dist/separator-BM8hA4DP.js.map +0 -1
  598. package/dist/separator-KuymG9g0.cjs +0 -2
  599. package/dist/separator-KuymG9g0.cjs.map +0 -1
  600. package/dist/sheet-CvKSi0UC.cjs +0 -2
  601. package/dist/sheet-CvKSi0UC.cjs.map +0 -1
  602. package/dist/sheet-DGXXYgWB.js +0 -2
  603. package/dist/sheet-DGXXYgWB.js.map +0 -1
  604. package/dist/sidebar-BDrsbzo5.js +0 -2
  605. package/dist/sidebar-BDrsbzo5.js.map +0 -1
  606. package/dist/sidebar-D5J2gcTw.cjs +0 -2
  607. package/dist/spinner-C1eamx3w.js +0 -2
  608. package/dist/spinner-C1eamx3w.js.map +0 -1
  609. package/dist/spinner-CFxorYEt.cjs +0 -2
  610. package/dist/spinner-CFxorYEt.cjs.map +0 -1
  611. package/dist/statistic-CYMqAYNc.js +0 -2
  612. package/dist/statistic-CYMqAYNc.js.map +0 -1
  613. package/dist/statistic-DDXilD7q.cjs +0 -2
  614. package/dist/statistic-DDXilD7q.cjs.map +0 -1
  615. package/dist/switch-BLHmdRq2.js +0 -2
  616. package/dist/switch-BLHmdRq2.js.map +0 -1
  617. package/dist/switch-DVfOV7wP.cjs +0 -2
  618. package/dist/switch-DVfOV7wP.cjs.map +0 -1
  619. package/dist/tables-CPKHe3k-.cjs +0 -4
  620. package/dist/tables-DWQytYNm.js +0 -4
  621. package/dist/tanstack-form-DatI41wz.cjs +0 -12
  622. package/dist/tanstack-form-DatI41wz.cjs.map +0 -1
  623. package/dist/tanstack-form-YVdm9V01.js +0 -12
  624. package/dist/tanstack-form-YVdm9V01.js.map +0 -1
  625. package/dist/text-editor-CvJN3nSL.cjs +0 -2
  626. package/dist/text-editor-WbS7pJJs.js +0 -2
  627. package/dist/textarea-Bp6VvhiA.js +0 -2
  628. package/dist/textarea-Bp6VvhiA.js.map +0 -1
  629. package/dist/textarea-Cc9CF8wD.cjs +0 -2
  630. package/dist/textarea-Cc9CF8wD.cjs.map +0 -1
  631. package/dist/tooltip-CBdoIzoM.cjs +0 -2
  632. package/dist/tooltip-CBdoIzoM.cjs.map +0 -1
  633. package/dist/tooltip-CVIl6Hln.js +0 -2
  634. package/dist/tooltip-CVIl6Hln.js.map +0 -1
  635. package/dist/types-BD1t0Bj8.cjs +0 -2
  636. package/dist/types-BD1t0Bj8.cjs.map +0 -1
  637. package/dist/types-BVSfF-1o.d.ts +0 -24
  638. package/dist/types-BZqffRVJ.js +0 -2
  639. package/dist/types-BZqffRVJ.js.map +0 -1
  640. package/dist/types-Cc_mLRAn.d.cts +0 -24
  641. package/dist/user-BSpgswEC.js +0 -2
  642. package/dist/user-BSpgswEC.js.map +0 -1
  643. package/dist/user-ii4FBhO1.cjs +0 -2
  644. package/dist/user-ii4FBhO1.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"button-group.cjs","names":["Slot","Separator"],"sources":["../../packages/components/ui/button-group.tsx"],"sourcesContent":["import { cn } from '@customafk/react-toolkit/utils';\n\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { Separator } from '@/components/ui/separator';\n\nconst buttonGroupVariants = cva(\n \"flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1\",\n {\n variants: {\n orientation: {\n horizontal: '[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none',\n vertical: 'flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none',\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n },\n }\n);\n\n/**\n * Groups buttons (or inputs) into a visually connected row or column by removing the border radii on adjacent sides.\n *\n * @example\n * ```tsx\n * import { ButtonGroup, ButtonGroupSeparator } from '@customafk/lunas-ui/ui/button-group';\n * import { Button } from '@customafk/lunas-ui/ui/button';\n *\n * <ButtonGroup orientation=\"horizontal\">\n * <Button variant=\"outline\">Left</Button>\n * <ButtonGroupSeparator />\n * <Button variant=\"outline\">Right</Button>\n * </ButtonGroup>\n * ```\n */\nfunction ButtonGroup({ className, orientation, ...props }: React.ComponentProps<'div'> & VariantProps<typeof buttonGroupVariants>) {\n return (\n <div role=\"group\" data-slot=\"button-group\" data-orientation={orientation} className={cn(buttonGroupVariants({ orientation }), className)} {...props} />\n );\n}\n\n/**\n * A static text or icon addon rendered inside a ButtonGroup with muted background styling.\n *\n * @param asChild - When true, renders as the child element via Radix Slot instead of `<div>`.\n */\nfunction ButtonGroupText({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<'div'> & {\n asChild?: boolean;\n}) {\n const Comp = asChild ? Slot : 'div';\n\n return (\n <Comp\n className={cn(\n \"flex items-center gap-2 rounded-md border border-border bg-muted px-4 font-medium text-sm shadow-xs [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none\",\n className\n )}\n {...props}\n />\n );\n}\n\n/** A visual Separator rendered between items inside a ButtonGroup. */\nfunction ButtonGroupSeparator({ className, orientation = 'vertical', ...props }: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"button-group-separator\"\n orientation={orientation}\n className={cn('relative m-0! self-stretch bg-muted-muted data-[orientation=vertical]:h-auto', className)}\n {...props}\n />\n );\n}\n\nexport { ButtonGroup, ButtonGroupSeparator, ButtonGroupText, buttonGroupVariants };\n"],"mappings":"uOAMA,MAAM,GAAA,EAAA,EAAA,KACJ,2RACA,CACE,SAAU,CACR,YAAa,CACX,WAAY,kHACZ,SAAU,2HACX,CACF,CACD,gBAAiB,CACf,YAAa,aACd,CACF,CACF,CAiBD,SAAS,EAAY,CAAE,YAAW,cAAa,GAAG,GAAiF,CACjI,OACE,EAAA,EAAA,KAAC,MAAA,CAAI,KAAK,QAAQ,YAAU,eAAe,mBAAkB,EAAa,WAAA,EAAA,EAAA,IAAc,EAAoB,CAAE,cAAa,CAAC,CAAE,EAAU,CAAE,GAAI,GAAS,CAS3J,SAAS,EAAgB,CACvB,YACA,UAAU,GACV,GAAG,GAGF,CAGD,OACE,EAAA,EAAA,KAHW,EAAUA,EAAAA,EAAO,MAAA,CAI1B,WAAA,EAAA,EAAA,IACE,uKACA,EACD,CACD,GAAI,GACJ,CAKN,SAAS,EAAqB,CAAE,YAAW,cAAc,WAAY,GAAG,GAAiD,CACvH,OACE,EAAA,EAAA,KAACC,EAAAA,EAAAA,CACC,YAAU,yBACG,cACb,WAAA,EAAA,EAAA,IAAc,+EAAgF,EAAU,CACxG,GAAI,GACJ"}
1
+ {"version":3,"file":"button-group.cjs","names":["Slot","Separator"],"sources":["../../packages/components/ui/button-group.tsx"],"sourcesContent":["import { cn } from '@customafk/react-toolkit/utils';\n\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { Separator } from '@/components/ui/separator';\n\nconst buttonGroupVariants = cva(\n \"flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1\",\n {\n variants: {\n orientation: {\n horizontal: '[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none',\n vertical: 'flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none',\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n },\n }\n);\n\n/**\n * Groups buttons (or inputs) into a visually connected row or column by removing the border radii on adjacent sides.\n *\n * @example\n * ```tsx\n * import { ButtonGroup, ButtonGroupSeparator } from '@customafk/lunas-ui/ui/button-group';\n * import { Button } from '@customafk/lunas-ui/ui/button';\n *\n * <ButtonGroup orientation=\"horizontal\">\n * <Button variant=\"outline\">Left</Button>\n * <ButtonGroupSeparator />\n * <Button variant=\"outline\">Right</Button>\n * </ButtonGroup>\n * ```\n */\nfunction ButtonGroup({ className, orientation, ...props }: React.ComponentProps<'div'> & VariantProps<typeof buttonGroupVariants>) {\n return (\n <div role=\"group\" data-slot=\"button-group\" data-orientation={orientation} className={cn(buttonGroupVariants({ orientation }), className)} {...props} />\n );\n}\n\n/**\n * A static text or icon addon rendered inside a ButtonGroup with muted background styling.\n *\n * @param asChild - When true, renders as the child element via Radix Slot instead of `<div>`.\n */\nfunction ButtonGroupText({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<'div'> & {\n asChild?: boolean;\n}) {\n const Comp = asChild ? Slot : 'div';\n\n return (\n <Comp\n className={cn(\n \"flex items-center gap-2 rounded-md border border-border bg-muted px-4 font-medium text-sm shadow-xs [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none\",\n className\n )}\n {...props}\n />\n );\n}\n\n/** A visual Separator rendered between items inside a ButtonGroup. */\nfunction ButtonGroupSeparator({ className, orientation = 'vertical', ...props }: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"button-group-separator\"\n orientation={orientation}\n className={cn('relative m-0! self-stretch bg-muted-muted data-[orientation=vertical]:h-auto', className)}\n {...props}\n />\n );\n}\n\nexport { ButtonGroup, ButtonGroupSeparator, ButtonGroupText, buttonGroupVariants };\n"],"mappings":"uOAMA,MAAM,GAAA,EAAA,EAAA,KACJ,2RACA,CACE,SAAU,CACR,YAAa,CACX,WAAY,kHACZ,SAAU,2HACX,CACF,CACD,gBAAiB,CACf,YAAa,aACd,CACF,CACF,CAiBD,SAAS,EAAY,CAAE,YAAW,cAAa,GAAG,GAAiF,CACjI,OACE,EAAA,EAAA,KAAC,MAAA,CAAI,KAAK,QAAQ,YAAU,eAAe,mBAAkB,EAAa,WAAA,EAAA,EAAA,IAAc,EAAoB,CAAE,cAAa,CAAC,CAAE,EAAU,CAAE,GAAI,GAAS,CAS3J,SAAS,EAAgB,CACvB,YACA,UAAU,GACV,GAAG,GAGF,CAGD,OACE,EAAA,EAAA,KAHW,EAAUA,EAAAA,KAAO,MAAA,CAI1B,WAAA,EAAA,EAAA,IACE,uKACA,EACD,CACD,GAAI,GACJ,CAKN,SAAS,EAAqB,CAAE,YAAW,cAAc,WAAY,GAAG,GAAiD,CACvH,OACE,EAAA,EAAA,KAACC,EAAAA,UAAAA,CACC,YAAU,yBACG,cACb,WAAA,EAAA,EAAA,IAAc,+EAAgF,EAAU,CACxG,GAAI,GACJ"}
@@ -1,12 +1,12 @@
1
- import { Separator } from "./separator.cjs";
2
- import * as react119 from "react";
3
- import * as class_variance_authority_types6 from "class-variance-authority/types";
1
+ import * as react102 from "react";
2
+ import * as class_variance_authority_types3 from "class-variance-authority/types";
4
3
  import { VariantProps } from "class-variance-authority";
4
+ import { Separator } from "@/components/ui/separator";
5
5
 
6
6
  //#region packages/components/ui/button-group.d.ts
7
7
  declare const buttonGroupVariants: (props?: ({
8
8
  orientation?: "vertical" | "horizontal" | null | undefined;
9
- } & class_variance_authority_types6.ClassProp) | undefined) => string;
9
+ } & class_variance_authority_types3.ClassProp) | undefined) => string;
10
10
  /**
11
11
  * Groups buttons (or inputs) into a visually connected row or column by removing the border radii on adjacent sides.
12
12
  *
@@ -26,7 +26,7 @@ declare function ButtonGroup({
26
26
  className,
27
27
  orientation,
28
28
  ...props
29
- }: React.ComponentProps<'div'> & VariantProps<typeof buttonGroupVariants>): react119.JSX.Element;
29
+ }: React.ComponentProps<'div'> & VariantProps<typeof buttonGroupVariants>): react102.JSX.Element;
30
30
  /**
31
31
  * A static text or icon addon rendered inside a ButtonGroup with muted background styling.
32
32
  *
@@ -38,13 +38,13 @@ declare function ButtonGroupText({
38
38
  ...props
39
39
  }: React.ComponentProps<'div'> & {
40
40
  asChild?: boolean;
41
- }): react119.JSX.Element;
41
+ }): react102.JSX.Element;
42
42
  /** A visual Separator rendered between items inside a ButtonGroup. */
43
43
  declare function ButtonGroupSeparator({
44
44
  className,
45
45
  orientation,
46
46
  ...props
47
- }: React.ComponentProps<typeof Separator>): react119.JSX.Element;
47
+ }: React.ComponentProps<typeof Separator>): react102.JSX.Element;
48
48
  //#endregion
49
49
  export { ButtonGroup, ButtonGroupSeparator, ButtonGroupText, buttonGroupVariants };
50
50
  //# sourceMappingURL=button-group.d.cts.map
@@ -1,12 +1,12 @@
1
- import { Separator } from "./separator.js";
2
- import * as react74 from "react";
3
1
  import { VariantProps } from "class-variance-authority";
4
- import * as class_variance_authority_types4 from "class-variance-authority/types";
2
+ import * as react58 from "react";
3
+ import { Separator } from "@/components/ui/separator";
4
+ import * as class_variance_authority_types3 from "class-variance-authority/types";
5
5
 
6
6
  //#region packages/components/ui/button-group.d.ts
7
7
  declare const buttonGroupVariants: (props?: ({
8
8
  orientation?: "vertical" | "horizontal" | null | undefined;
9
- } & class_variance_authority_types4.ClassProp) | undefined) => string;
9
+ } & class_variance_authority_types3.ClassProp) | undefined) => string;
10
10
  /**
11
11
  * Groups buttons (or inputs) into a visually connected row or column by removing the border radii on adjacent sides.
12
12
  *
@@ -26,7 +26,7 @@ declare function ButtonGroup({
26
26
  className,
27
27
  orientation,
28
28
  ...props
29
- }: React.ComponentProps<'div'> & VariantProps<typeof buttonGroupVariants>): react74.JSX.Element;
29
+ }: React.ComponentProps<'div'> & VariantProps<typeof buttonGroupVariants>): react58.JSX.Element;
30
30
  /**
31
31
  * A static text or icon addon rendered inside a ButtonGroup with muted background styling.
32
32
  *
@@ -38,13 +38,13 @@ declare function ButtonGroupText({
38
38
  ...props
39
39
  }: React.ComponentProps<'div'> & {
40
40
  asChild?: boolean;
41
- }): react74.JSX.Element;
41
+ }): react58.JSX.Element;
42
42
  /** A visual Separator rendered between items inside a ButtonGroup. */
43
43
  declare function ButtonGroupSeparator({
44
44
  className,
45
45
  orientation,
46
46
  ...props
47
- }: React.ComponentProps<typeof Separator>): react74.JSX.Element;
47
+ }: React.ComponentProps<typeof Separator>): react58.JSX.Element;
48
48
  //#endregion
49
49
  export { ButtonGroup, ButtonGroupSeparator, ButtonGroupText, buttonGroupVariants };
50
50
  //# sourceMappingURL=button-group.d.ts.map
@@ -1,2 +1,2 @@
1
- import{t as e}from"../dist-EPxjIRJp.js";import{t}from"../separator-BM8hA4DP.js";import{cn as n}from"@customafk/react-toolkit/utils";import{cva as r}from"class-variance-authority";import{jsx as i}from"react/jsx-runtime";const a=r(`flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1`,{variants:{orientation:{horizontal:`[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none`,vertical:`flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none`}},defaultVariants:{orientation:`horizontal`}});function o({className:e,orientation:t,...r}){return i(`div`,{role:`group`,"data-slot":`button-group`,"data-orientation":t,className:n(a({orientation:t}),e),...r})}function s({className:t,asChild:r=!1,...a}){return i(r?e:`div`,{className:n(`flex items-center gap-2 rounded-md border border-border bg-muted px-4 font-medium text-sm shadow-xs [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none`,t),...a})}function c({className:e,orientation:r=`vertical`,...a}){return i(t,{"data-slot":`button-group-separator`,orientation:r,className:n(`relative m-0! self-stretch bg-muted-muted data-[orientation=vertical]:h-auto`,e),...a})}export{o as ButtonGroup,c as ButtonGroupSeparator,s as ButtonGroupText,a as buttonGroupVariants};
1
+ import{Slot as e}from"@radix-ui/react-slot";import{cn as t}from"@customafk/react-toolkit/utils";import{cva as n}from"class-variance-authority";import{jsx as r}from"react/jsx-runtime";import{Separator as i}from"@/components/ui/separator";const a=n(`flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1`,{variants:{orientation:{horizontal:`[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none`,vertical:`flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none`}},defaultVariants:{orientation:`horizontal`}});function o({className:e,orientation:n,...i}){return r(`div`,{role:`group`,"data-slot":`button-group`,"data-orientation":n,className:t(a({orientation:n}),e),...i})}function s({className:n,asChild:i=!1,...a}){return r(i?e:`div`,{className:t(`flex items-center gap-2 rounded-md border border-border bg-muted px-4 font-medium text-sm shadow-xs [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none`,n),...a})}function c({className:e,orientation:n=`vertical`,...a}){return r(i,{"data-slot":`button-group-separator`,orientation:n,className:t(`relative m-0! self-stretch bg-muted-muted data-[orientation=vertical]:h-auto`,e),...a})}export{o as ButtonGroup,c as ButtonGroupSeparator,s as ButtonGroupText,a as buttonGroupVariants};
2
2
  //# sourceMappingURL=button-group.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"button-group.js","names":[],"sources":["../../packages/components/ui/button-group.tsx"],"sourcesContent":["import { cn } from '@customafk/react-toolkit/utils';\n\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { Separator } from '@/components/ui/separator';\n\nconst buttonGroupVariants = cva(\n \"flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1\",\n {\n variants: {\n orientation: {\n horizontal: '[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none',\n vertical: 'flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none',\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n },\n }\n);\n\n/**\n * Groups buttons (or inputs) into a visually connected row or column by removing the border radii on adjacent sides.\n *\n * @example\n * ```tsx\n * import { ButtonGroup, ButtonGroupSeparator } from '@customafk/lunas-ui/ui/button-group';\n * import { Button } from '@customafk/lunas-ui/ui/button';\n *\n * <ButtonGroup orientation=\"horizontal\">\n * <Button variant=\"outline\">Left</Button>\n * <ButtonGroupSeparator />\n * <Button variant=\"outline\">Right</Button>\n * </ButtonGroup>\n * ```\n */\nfunction ButtonGroup({ className, orientation, ...props }: React.ComponentProps<'div'> & VariantProps<typeof buttonGroupVariants>) {\n return (\n <div role=\"group\" data-slot=\"button-group\" data-orientation={orientation} className={cn(buttonGroupVariants({ orientation }), className)} {...props} />\n );\n}\n\n/**\n * A static text or icon addon rendered inside a ButtonGroup with muted background styling.\n *\n * @param asChild - When true, renders as the child element via Radix Slot instead of `<div>`.\n */\nfunction ButtonGroupText({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<'div'> & {\n asChild?: boolean;\n}) {\n const Comp = asChild ? Slot : 'div';\n\n return (\n <Comp\n className={cn(\n \"flex items-center gap-2 rounded-md border border-border bg-muted px-4 font-medium text-sm shadow-xs [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none\",\n className\n )}\n {...props}\n />\n );\n}\n\n/** A visual Separator rendered between items inside a ButtonGroup. */\nfunction ButtonGroupSeparator({ className, orientation = 'vertical', ...props }: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"button-group-separator\"\n orientation={orientation}\n className={cn('relative m-0! self-stretch bg-muted-muted data-[orientation=vertical]:h-auto', className)}\n {...props}\n />\n );\n}\n\nexport { ButtonGroup, ButtonGroupSeparator, ButtonGroupText, buttonGroupVariants };\n"],"mappings":"2NAMA,MAAM,EAAsB,EAC1B,2RACA,CACE,SAAU,CACR,YAAa,CACX,WAAY,kHACZ,SAAU,2HACX,CACF,CACD,gBAAiB,CACf,YAAa,aACd,CACF,CACF,CAiBD,SAAS,EAAY,CAAE,YAAW,cAAa,GAAG,GAAiF,CACjI,OACE,EAAC,MAAA,CAAI,KAAK,QAAQ,YAAU,eAAe,mBAAkB,EAAa,UAAW,EAAG,EAAoB,CAAE,cAAa,CAAC,CAAE,EAAU,CAAE,GAAI,GAAS,CAS3J,SAAS,EAAgB,CACvB,YACA,UAAU,GACV,GAAG,GAGF,CAGD,OACE,EAHW,EAAU,EAAO,MAAA,CAI1B,UAAW,EACT,uKACA,EACD,CACD,GAAI,GACJ,CAKN,SAAS,EAAqB,CAAE,YAAW,cAAc,WAAY,GAAG,GAAiD,CACvH,OACE,EAAC,EAAA,CACC,YAAU,yBACG,cACb,UAAW,EAAG,+EAAgF,EAAU,CACxG,GAAI,GACJ"}
1
+ {"version":3,"file":"button-group.js","names":[],"sources":["../../packages/components/ui/button-group.tsx"],"sourcesContent":["import { cn } from '@customafk/react-toolkit/utils';\n\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { Separator } from '@/components/ui/separator';\n\nconst buttonGroupVariants = cva(\n \"flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1\",\n {\n variants: {\n orientation: {\n horizontal: '[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none',\n vertical: 'flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none',\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n },\n }\n);\n\n/**\n * Groups buttons (or inputs) into a visually connected row or column by removing the border radii on adjacent sides.\n *\n * @example\n * ```tsx\n * import { ButtonGroup, ButtonGroupSeparator } from '@customafk/lunas-ui/ui/button-group';\n * import { Button } from '@customafk/lunas-ui/ui/button';\n *\n * <ButtonGroup orientation=\"horizontal\">\n * <Button variant=\"outline\">Left</Button>\n * <ButtonGroupSeparator />\n * <Button variant=\"outline\">Right</Button>\n * </ButtonGroup>\n * ```\n */\nfunction ButtonGroup({ className, orientation, ...props }: React.ComponentProps<'div'> & VariantProps<typeof buttonGroupVariants>) {\n return (\n <div role=\"group\" data-slot=\"button-group\" data-orientation={orientation} className={cn(buttonGroupVariants({ orientation }), className)} {...props} />\n );\n}\n\n/**\n * A static text or icon addon rendered inside a ButtonGroup with muted background styling.\n *\n * @param asChild - When true, renders as the child element via Radix Slot instead of `<div>`.\n */\nfunction ButtonGroupText({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<'div'> & {\n asChild?: boolean;\n}) {\n const Comp = asChild ? Slot : 'div';\n\n return (\n <Comp\n className={cn(\n \"flex items-center gap-2 rounded-md border border-border bg-muted px-4 font-medium text-sm shadow-xs [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none\",\n className\n )}\n {...props}\n />\n );\n}\n\n/** A visual Separator rendered between items inside a ButtonGroup. */\nfunction ButtonGroupSeparator({ className, orientation = 'vertical', ...props }: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"button-group-separator\"\n orientation={orientation}\n className={cn('relative m-0! self-stretch bg-muted-muted data-[orientation=vertical]:h-auto', className)}\n {...props}\n />\n );\n}\n\nexport { ButtonGroup, ButtonGroupSeparator, ButtonGroupText, buttonGroupVariants };\n"],"mappings":"6OAMA,MAAM,EAAsB,EAC1B,2RACA,CACE,SAAU,CACR,YAAa,CACX,WAAY,kHACZ,SAAU,2HACX,CACF,CACD,gBAAiB,CACf,YAAa,aACd,CACF,CACF,CAiBD,SAAS,EAAY,CAAE,YAAW,cAAa,GAAG,GAAiF,CACjI,OACE,EAAC,MAAA,CAAI,KAAK,QAAQ,YAAU,eAAe,mBAAkB,EAAa,UAAW,EAAG,EAAoB,CAAE,cAAa,CAAC,CAAE,EAAU,CAAE,GAAI,GAAS,CAS3J,SAAS,EAAgB,CACvB,YACA,UAAU,GACV,GAAG,GAGF,CAGD,OACE,EAHW,EAAU,EAAO,MAAA,CAI1B,UAAW,EACT,uKACA,EACD,CACD,GAAI,GACJ,CAKN,SAAS,EAAqB,CAAE,YAAW,cAAc,WAAY,GAAG,GAAiD,CACvH,OACE,EAAC,EAAA,CACC,YAAU,yBACG,cACb,UAAW,EAAG,+EAAgF,EAAU,CACxG,GAAI,GACJ"}
@@ -1 +1,2 @@
1
- "use client";require(`../button.variants-4kw6plrv.cjs`);const e=require(`../button-C--DAN1D.cjs`);exports.Button=e.t;
1
+ "use client";const e=require(`../chunk-Bmb41Sf3.cjs`),t=require(`../button.variants-DgVFNsVc.cjs`);let n=require(`lucide-react`),r=require(`@radix-ui/react-slot`),i=require(`@customafk/react-toolkit/utils`),a=require(`react/jsx-runtime`);function o({className:e,variant:o,size:s=`default`,color:c,asChild:l=!1,isLoading:u=!1,children:d,disabled:f,type:p=`button`,innerClassName:m,...h}){let g=l?r.Slot:`button`,_=f||u;return(0,a.jsxs)(g,{...l?void 0:{type:p,disabled:_},"data-slot":`button`,"data-state":u?`loading`:void 0,"aria-disabled":_?!0:void 0,"aria-busy":u?!0:void 0,className:(0,i.cn)(t.n({variant:o,size:s,color:c,className:e})),...h,children:[u&&(0,a.jsxs)(`div`,{className:t.t({variant:o,color:c}),children:[(0,a.jsx)(n.Loader2Icon,{size:16,className:`animate-spin`}),(0,a.jsx)(`span`,{className:`sr-only`,children:`Loading`})]}),l?(0,a.jsx)(r.Slottable,{children:d}):(0,a.jsx)(`div`,{className:(0,i.cn)(`inline-flex items-center justify-center gap-x-1`,u&&`invisible pointer-events-none`,m),children:d})]})}exports.Button=o;
2
+ //# sourceMappingURL=button.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.cjs","names":["Slot","buttonVariants","buttonLoadingVariant","Loader2Icon","Slottable"],"sources":["../../packages/components/ui/button.tsx"],"sourcesContent":["'use client';\n\nimport { Loader2Icon } from 'lucide-react';\nimport { Slot, Slottable } from '@radix-ui/react-slot';\nimport { cn } from '@customafk/react-toolkit/utils';\nimport { type ButtonVariantProps, buttonLoadingVariant, buttonVariants } from './button.variants';\n\n/**\n * Props for the {@link Button} component.\n *\n * Extends all native `<button>` attributes except `color`, which is\n * re-declared as a semantic design-token via {@link ButtonVariantProps}.\n *\n * @see {@link https://www.radix-ui.com/primitives/docs/utilities/slot} Radix Slot (asChild pattern)\n */\nexport interface ButtonProps extends Omit<React.ComponentProps<'button'>, 'color'> {\n /**\n * When `true`, renders children through Radix's `<Slot>` primitive,\n * merging all button props directly onto the child element.\n *\n * Use this to swap the rendered HTML element while keeping button styling\n * (e.g. render a Next.js `<Link>` that looks like a button).\n *\n * @default false\n * @example\n * ```tsx\n * <Button asChild variant=\"ghost\">\n * <Link href=\"/dashboard\">Go to Dashboard</Link>\n * </Button>\n * ```\n */\n asChild?: boolean;\n\n /**\n * When `true`, shows an animated `Loader2` spinner overlay and sets\n * `aria-busy=\"true\"`. The button is implicitly disabled while loading —\n * no separate `disabled` prop is needed for loading states.\n *\n * @default false\n */\n isLoading?: boolean;\n\n /**\n * Visual style variant of the button.\n *\n * | Value | Description |\n * |---|---|\n * | `\"default\"` | Filled surface — primary call-to-action (default) |\n * | `\"outline\"` | Transparent background with a visible border |\n * | `\"ghost\"` | No background or border — minimal footprint |\n * | `\"link\"` | Styled as an underlined hyperlink |\n * | `\"icon\"` | Square, padding-free — icon-only buttons |\n * | `\"destructive\"` | Red-toned filled surface for danger actions |\n *\n * @default \"default\"\n */\n variant?: ButtonVariantProps['variant'];\n\n /**\n * Semantic color token applied to the button's surface and text.\n *\n * | Value | Usage |\n * |---|---|\n * | `\"primary\"` | Brand primary (default) |\n * | `\"success\"` | Confirmation / save actions |\n * | `\"danger\"` | Destructive / delete actions |\n * | `\"warning\"` | Cautionary / irreversible actions |\n * | `\"muted\"` | Secondary / low-emphasis actions |\n *\n * @default \"primary\"\n */\n color?: ButtonVariantProps['color'];\n\n /**\n * Controls height, horizontal padding, and font size.\n *\n * | Value | Height |\n * |---|---|\n * | `\"sm\"` | 32 px |\n * | `\"default\"` | 36 px |\n * | `\"lg\"` | 40 px |\n * | `\"icon\"` | 36 × 36 px (square) |\n *\n * @default \"default\"\n */\n size?: ButtonVariantProps['size'];\n\n /**\n * Additional class names applied to the inner `<div>` that wraps `children`.\n * Use this to style the children's flex container without overriding the\n * button's outer layout or focus-ring classes.\n */\n innerClassName?: string;\n}\n\n/**\n * Primary interactive button component for `@customafk/lunas-ui`.\n *\n * Built on Radix UI's `<Slot>` primitive. Supports multiple visual variants,\n * semantic color tokens, a built-in loading state with full accessibility\n * attributes, and polymorphic rendering via `asChild`. All native `<button>`\n * attributes are forwarded to the underlying element.\n *\n * **Import:** `import { Button } from '@customafk/lunas-ui/ui/button'`\n *\n * @example Basic usage\n * ```tsx\n * import { Button } from '@customafk/lunas-ui/ui/button';\n *\n * export function SaveAction() {\n * return <Button color=\"primary\">Save changes</Button>;\n * }\n * ```\n *\n * @example Async loading state\n * ```tsx\n * import { Button } from '@customafk/lunas-ui/ui/button';\n *\n * export function SubmitButton({ isPending }: { isPending: boolean }) {\n * return (\n * <Button type=\"submit\" isLoading={isPending}>\n * Submit\n * </Button>\n * );\n * }\n * ```\n *\n * @example Destructive outline button\n * ```tsx\n * import { Button } from '@customafk/lunas-ui/ui/button';\n *\n * export function DeleteButton({ onDelete }: { onDelete: () => void }) {\n * return (\n * <Button variant=\"outline\" color=\"danger\" onClick={onDelete}>\n * Delete account\n * </Button>\n * );\n * }\n * ```\n *\n * @example Polymorphic — render as Next.js Link\n * ```tsx\n * import { Button } from '@customafk/lunas-ui/ui/button';\n * import Link from 'next/link';\n *\n * export function NavLink() {\n * return (\n * <Button asChild variant=\"ghost\" size=\"sm\">\n * <Link href=\"/settings\">Settings</Link>\n * </Button>\n * );\n * }\n * ```\n */\nfunction Button({\n className,\n variant,\n size = 'default',\n color,\n asChild = false,\n isLoading = false,\n children,\n disabled,\n type = 'button',\n innerClassName,\n ...props\n}: ButtonProps) {\n const Comp = asChild ? Slot : 'button';\n const isDisabled = disabled || isLoading;\n\n return (\n <Comp\n {...(!asChild ? { type, disabled: isDisabled } : undefined)}\n data-slot=\"button\"\n data-state={isLoading ? 'loading' : undefined}\n aria-disabled={isDisabled ? true : undefined}\n aria-busy={isLoading ? true : undefined}\n className={cn(\n buttonVariants({\n variant,\n size,\n color,\n className,\n })\n )}\n {...props}\n >\n {isLoading && (\n <div className={buttonLoadingVariant({ variant, color })}>\n <Loader2Icon size={16} className=\"animate-spin\" />\n <span className=\"sr-only\">Loading</span>\n </div>\n )}\n {asChild ? (\n <Slottable>{children}</Slottable>\n ) : (\n <div className={cn('inline-flex items-center justify-center gap-x-1', isLoading && 'invisible pointer-events-none', innerClassName)}>{children}</div>\n )}\n </Comp>\n );\n}\n\nexport { Button };\n"],"mappings":"8OA0JA,SAAS,EAAO,CACd,YACA,UACA,OAAO,UACP,QACA,UAAU,GACV,YAAY,GACZ,WACA,WACA,OAAO,SACP,iBACA,GAAG,GACW,CACd,IAAM,EAAO,EAAUA,EAAAA,KAAO,SACxB,EAAa,GAAY,EAE/B,OACE,EAAA,EAAA,MAAC,EAAA,CACC,GAAM,EAA2C,IAAA,GAAjC,CAAE,OAAM,SAAU,EAAY,CAC9C,YAAU,SACV,aAAY,EAAY,UAAY,IAAA,GACpC,gBAAe,EAAa,GAAO,IAAA,GACnC,YAAW,EAAY,GAAO,IAAA,GAC9B,WAAA,EAAA,EAAA,IACEC,EAAAA,EAAe,CACb,UACA,OACA,QACA,YACD,CAAC,CACH,CACD,GAAI,YAEH,IACC,EAAA,EAAA,MAAC,MAAA,CAAI,UAAWC,EAAAA,EAAqB,CAAE,UAAS,QAAO,CAAC,YACtD,EAAA,EAAA,KAACC,EAAAA,YAAAA,CAAY,KAAM,GAAI,UAAU,gBAAiB,EAClD,EAAA,EAAA,KAAC,OAAA,CAAK,UAAU,mBAAU,WAAc,CAAA,EACpC,CAEP,GACC,EAAA,EAAA,KAACC,EAAAA,UAAAA,CAAW,WAAA,CAAqB,EAEjC,EAAA,EAAA,KAAC,MAAA,CAAI,WAAA,EAAA,EAAA,IAAc,kDAAmD,GAAa,gCAAiC,EAAe,CAAG,YAAe,CAAA,EAElJ"}
@@ -1,2 +1,2 @@
1
- import { n as ButtonProps, t as Button } from "../button-CRSezlCi.cjs";
1
+ import { n as ButtonProps, t as Button } from "../button-BEjRVw6s.cjs";
2
2
  export { Button, ButtonProps };
@@ -1,2 +1,2 @@
1
- import { n as ButtonProps, t as Button } from "../button-DloFFxkz.js";
1
+ import { n as ButtonProps, t as Button } from "../button-BBfGvggN.js";
2
2
  export { Button, ButtonProps };
package/dist/ui/button.js CHANGED
@@ -1 +1,2 @@
1
- "use client";import"../button.variants-CoSpd71B.js";import{t as e}from"../button-LMMbL-uH.js";export{e as Button};
1
+ "use client";import{n as e,t}from"../button.variants-BruXd4VM.js";import{Loader2Icon as n}from"lucide-react";import{Slot as r,Slottable as i}from"@radix-ui/react-slot";import{cn as a}from"@customafk/react-toolkit/utils";import{jsx as o,jsxs as s}from"react/jsx-runtime";function c({className:c,variant:l,size:u=`default`,color:d,asChild:f=!1,isLoading:p=!1,children:m,disabled:h,type:g=`button`,innerClassName:_,...v}){let y=f?r:`button`,b=h||p;return s(y,{...f?void 0:{type:g,disabled:b},"data-slot":`button`,"data-state":p?`loading`:void 0,"aria-disabled":b?!0:void 0,"aria-busy":p?!0:void 0,className:a(e({variant:l,size:u,color:d,className:c})),...v,children:[p&&s(`div`,{className:t({variant:l,color:d}),children:[o(n,{size:16,className:`animate-spin`}),o(`span`,{className:`sr-only`,children:`Loading`})]}),f?o(i,{children:m}):o(`div`,{className:a(`inline-flex items-center justify-center gap-x-1`,p&&`invisible pointer-events-none`,_),children:m})]})}export{c as Button};
2
+ //# sourceMappingURL=button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.js","names":[],"sources":["../../packages/components/ui/button.tsx"],"sourcesContent":["'use client';\n\nimport { Loader2Icon } from 'lucide-react';\nimport { Slot, Slottable } from '@radix-ui/react-slot';\nimport { cn } from '@customafk/react-toolkit/utils';\nimport { type ButtonVariantProps, buttonLoadingVariant, buttonVariants } from './button.variants';\n\n/**\n * Props for the {@link Button} component.\n *\n * Extends all native `<button>` attributes except `color`, which is\n * re-declared as a semantic design-token via {@link ButtonVariantProps}.\n *\n * @see {@link https://www.radix-ui.com/primitives/docs/utilities/slot} Radix Slot (asChild pattern)\n */\nexport interface ButtonProps extends Omit<React.ComponentProps<'button'>, 'color'> {\n /**\n * When `true`, renders children through Radix's `<Slot>` primitive,\n * merging all button props directly onto the child element.\n *\n * Use this to swap the rendered HTML element while keeping button styling\n * (e.g. render a Next.js `<Link>` that looks like a button).\n *\n * @default false\n * @example\n * ```tsx\n * <Button asChild variant=\"ghost\">\n * <Link href=\"/dashboard\">Go to Dashboard</Link>\n * </Button>\n * ```\n */\n asChild?: boolean;\n\n /**\n * When `true`, shows an animated `Loader2` spinner overlay and sets\n * `aria-busy=\"true\"`. The button is implicitly disabled while loading —\n * no separate `disabled` prop is needed for loading states.\n *\n * @default false\n */\n isLoading?: boolean;\n\n /**\n * Visual style variant of the button.\n *\n * | Value | Description |\n * |---|---|\n * | `\"default\"` | Filled surface — primary call-to-action (default) |\n * | `\"outline\"` | Transparent background with a visible border |\n * | `\"ghost\"` | No background or border — minimal footprint |\n * | `\"link\"` | Styled as an underlined hyperlink |\n * | `\"icon\"` | Square, padding-free — icon-only buttons |\n * | `\"destructive\"` | Red-toned filled surface for danger actions |\n *\n * @default \"default\"\n */\n variant?: ButtonVariantProps['variant'];\n\n /**\n * Semantic color token applied to the button's surface and text.\n *\n * | Value | Usage |\n * |---|---|\n * | `\"primary\"` | Brand primary (default) |\n * | `\"success\"` | Confirmation / save actions |\n * | `\"danger\"` | Destructive / delete actions |\n * | `\"warning\"` | Cautionary / irreversible actions |\n * | `\"muted\"` | Secondary / low-emphasis actions |\n *\n * @default \"primary\"\n */\n color?: ButtonVariantProps['color'];\n\n /**\n * Controls height, horizontal padding, and font size.\n *\n * | Value | Height |\n * |---|---|\n * | `\"sm\"` | 32 px |\n * | `\"default\"` | 36 px |\n * | `\"lg\"` | 40 px |\n * | `\"icon\"` | 36 × 36 px (square) |\n *\n * @default \"default\"\n */\n size?: ButtonVariantProps['size'];\n\n /**\n * Additional class names applied to the inner `<div>` that wraps `children`.\n * Use this to style the children's flex container without overriding the\n * button's outer layout or focus-ring classes.\n */\n innerClassName?: string;\n}\n\n/**\n * Primary interactive button component for `@customafk/lunas-ui`.\n *\n * Built on Radix UI's `<Slot>` primitive. Supports multiple visual variants,\n * semantic color tokens, a built-in loading state with full accessibility\n * attributes, and polymorphic rendering via `asChild`. All native `<button>`\n * attributes are forwarded to the underlying element.\n *\n * **Import:** `import { Button } from '@customafk/lunas-ui/ui/button'`\n *\n * @example Basic usage\n * ```tsx\n * import { Button } from '@customafk/lunas-ui/ui/button';\n *\n * export function SaveAction() {\n * return <Button color=\"primary\">Save changes</Button>;\n * }\n * ```\n *\n * @example Async loading state\n * ```tsx\n * import { Button } from '@customafk/lunas-ui/ui/button';\n *\n * export function SubmitButton({ isPending }: { isPending: boolean }) {\n * return (\n * <Button type=\"submit\" isLoading={isPending}>\n * Submit\n * </Button>\n * );\n * }\n * ```\n *\n * @example Destructive outline button\n * ```tsx\n * import { Button } from '@customafk/lunas-ui/ui/button';\n *\n * export function DeleteButton({ onDelete }: { onDelete: () => void }) {\n * return (\n * <Button variant=\"outline\" color=\"danger\" onClick={onDelete}>\n * Delete account\n * </Button>\n * );\n * }\n * ```\n *\n * @example Polymorphic — render as Next.js Link\n * ```tsx\n * import { Button } from '@customafk/lunas-ui/ui/button';\n * import Link from 'next/link';\n *\n * export function NavLink() {\n * return (\n * <Button asChild variant=\"ghost\" size=\"sm\">\n * <Link href=\"/settings\">Settings</Link>\n * </Button>\n * );\n * }\n * ```\n */\nfunction Button({\n className,\n variant,\n size = 'default',\n color,\n asChild = false,\n isLoading = false,\n children,\n disabled,\n type = 'button',\n innerClassName,\n ...props\n}: ButtonProps) {\n const Comp = asChild ? Slot : 'button';\n const isDisabled = disabled || isLoading;\n\n return (\n <Comp\n {...(!asChild ? { type, disabled: isDisabled } : undefined)}\n data-slot=\"button\"\n data-state={isLoading ? 'loading' : undefined}\n aria-disabled={isDisabled ? true : undefined}\n aria-busy={isLoading ? true : undefined}\n className={cn(\n buttonVariants({\n variant,\n size,\n color,\n className,\n })\n )}\n {...props}\n >\n {isLoading && (\n <div className={buttonLoadingVariant({ variant, color })}>\n <Loader2Icon size={16} className=\"animate-spin\" />\n <span className=\"sr-only\">Loading</span>\n </div>\n )}\n {asChild ? (\n <Slottable>{children}</Slottable>\n ) : (\n <div className={cn('inline-flex items-center justify-center gap-x-1', isLoading && 'invisible pointer-events-none', innerClassName)}>{children}</div>\n )}\n </Comp>\n );\n}\n\nexport { Button };\n"],"mappings":"8QA0JA,SAAS,EAAO,CACd,YACA,UACA,OAAO,UACP,QACA,UAAU,GACV,YAAY,GACZ,WACA,WACA,OAAO,SACP,iBACA,GAAG,GACW,CACd,IAAM,EAAO,EAAU,EAAO,SACxB,EAAa,GAAY,EAE/B,OACE,EAAC,EAAA,CACC,GAAM,EAA2C,IAAA,GAAjC,CAAE,OAAM,SAAU,EAAY,CAC9C,YAAU,SACV,aAAY,EAAY,UAAY,IAAA,GACpC,gBAAe,EAAa,GAAO,IAAA,GACnC,YAAW,EAAY,GAAO,IAAA,GAC9B,UAAW,EACT,EAAe,CACb,UACA,OACA,QACA,YACD,CAAC,CACH,CACD,GAAI,YAEH,GACC,EAAC,MAAA,CAAI,UAAW,EAAqB,CAAE,UAAS,QAAO,CAAC,WACtD,EAAC,EAAA,CAAY,KAAM,GAAI,UAAU,gBAAiB,CAClD,EAAC,OAAA,CAAK,UAAU,mBAAU,WAAc,CAAA,EACpC,CAEP,EACC,EAAC,EAAA,CAAW,WAAA,CAAqB,CAEjC,EAAC,MAAA,CAAI,UAAW,EAAG,kDAAmD,GAAa,gCAAiC,EAAe,CAAG,YAAe,CAAA,EAElJ"}
@@ -1,2 +1,2 @@
1
- const e=require(`../../chunk-350yNsax.cjs`);require(`../../button.variants-4kw6plrv.cjs`);const t=require(`../../button-C--DAN1D.cjs`),n=require(`../../paragraph-DvTZvbzw.cjs`);let r=require(`lucide-react`),i=require(`react/jsx-runtime`);const a=({onClick:e=()=>{}})=>(0,i.jsxs)(t.t,{"aria-label":`Tạo mới`,variant:`outline`,color:`muted`,className:`outline-border-weak max-sm:aspect-square max-sm:size-9 max-sm:p-0`,onClick:e,children:[(0,i.jsx)(r.PlusIcon,{className:`opacity-60 sm:-ms-1`,size:16,"aria-hidden":`true`}),(0,i.jsx)(n.t,{variant:`sm`,className:`max-sm:sr-only`,children:`Create`})]});exports.AddNewBtn=a;
1
+ const e=require(`../../chunk-Bmb41Sf3.cjs`);require(`../../button.variants-DgVFNsVc.cjs`);const t=require(`../button.cjs`);let n=require(`lucide-react`),r=require(`react/jsx-runtime`),i=require(`@/components/typography/paragraph`);const a=({onClick:e=()=>{}})=>(0,r.jsxs)(t.Button,{"aria-label":`Tạo mới`,variant:`outline`,color:`muted`,className:`outline-border-weak max-sm:aspect-square max-sm:size-9 max-sm:p-0`,onClick:e,children:[(0,r.jsx)(n.PlusIcon,{className:`opacity-60 sm:-ms-1`,size:16,"aria-hidden":`true`}),(0,r.jsx)(i.Paragraph,{variant:`sm`,className:`max-sm:sr-only`,children:`Create`})]});exports.AddNewBtn=a;
2
2
  //# sourceMappingURL=add-new.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"add-new.cjs","names":["AddNewBtn: React.FC<React.PropsWithChildren<Props>>","Button","PlusIcon","Paragraph"],"sources":["../../../packages/components/ui/buttons/add-new.tsx"],"sourcesContent":["import { PlusIcon } from 'lucide-react';\n\nimport { Paragraph } from '@/components/typography/paragraph';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. Defaults to a no-op. */\n onClick?: () => void;\n};\n\n/**\n * A toolbar button that triggers a \"create new\" action, displaying a plus icon alongside a \"Create\" label that is hidden on small screens.\n *\n * @example\n * import { AddNewBtn } from '@customafk/lunas-ui/ui/buttons/add-new';\n *\n * <AddNewBtn onClick={() => setOpen(true)} />\n */\nexport const AddNewBtn: React.FC<React.PropsWithChildren<Props>> = ({ onClick = () => {} }) => {\n return (\n <Button\n aria-label=\"Tạo mới\"\n variant=\"outline\"\n color=\"muted\"\n className=\"outline-border-weak max-sm:aspect-square max-sm:size-9 max-sm:p-0\"\n onClick={onClick}\n >\n <PlusIcon className=\"opacity-60 sm:-ms-1\" size={16} aria-hidden=\"true\" />\n <Paragraph variant=\"sm\" className=\"max-sm:sr-only\">\n Create\n </Paragraph>\n </Button>\n );\n};\n"],"mappings":"8OAmBA,MAAaA,GAAuD,CAAE,cAAgB,OAElF,EAAA,EAAA,MAACC,EAAAA,EAAAA,CACC,aAAW,UACX,QAAQ,UACR,MAAM,QACN,UAAU,oEACD,qBAET,EAAA,EAAA,KAACC,EAAAA,SAAAA,CAAS,UAAU,sBAAsB,KAAM,GAAI,cAAY,QAAS,EACzE,EAAA,EAAA,KAACC,EAAAA,EAAAA,CAAU,QAAQ,KAAK,UAAU,0BAAiB,UAEvC,CAAA,EACL"}
1
+ {"version":3,"file":"add-new.cjs","names":["AddNewBtn: React.FC<React.PropsWithChildren<Props>>","Button","PlusIcon","Paragraph"],"sources":["../../../packages/components/ui/buttons/add-new.tsx"],"sourcesContent":["import { PlusIcon } from 'lucide-react';\n\nimport { Paragraph } from '@/components/typography/paragraph';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. Defaults to a no-op. */\n onClick?: () => void;\n};\n\n/**\n * A toolbar button that triggers a \"create new\" action, displaying a plus icon alongside a \"Create\" label that is hidden on small screens.\n *\n * @example\n * import { AddNewBtn } from '@customafk/lunas-ui/ui/buttons/add-new';\n *\n * <AddNewBtn onClick={() => setOpen(true)} />\n */\nexport const AddNewBtn: React.FC<React.PropsWithChildren<Props>> = ({ onClick = () => {} }) => {\n return (\n <Button\n aria-label=\"Tạo mới\"\n variant=\"outline\"\n color=\"muted\"\n className=\"outline-border-weak max-sm:aspect-square max-sm:size-9 max-sm:p-0\"\n onClick={onClick}\n >\n <PlusIcon className=\"opacity-60 sm:-ms-1\" size={16} aria-hidden=\"true\" />\n <Paragraph variant=\"sm\" className=\"max-sm:sr-only\">\n Create\n </Paragraph>\n </Button>\n );\n};\n"],"mappings":"uOAmBA,MAAaA,GAAuD,CAAE,cAAgB,OAElF,EAAA,EAAA,MAACC,EAAAA,OAAAA,CACC,aAAW,UACX,QAAQ,UACR,MAAM,QACN,UAAU,oEACD,qBAET,EAAA,EAAA,KAACC,EAAAA,SAAAA,CAAS,UAAU,sBAAsB,KAAM,GAAI,cAAY,QAAS,EACzE,EAAA,EAAA,KAACC,EAAAA,UAAAA,CAAU,QAAQ,KAAK,UAAU,0BAAiB,UAEvC,CAAA,EACL"}
@@ -1,2 +1,2 @@
1
- import"../../button.variants-CoSpd71B.js";import{t as e}from"../../button-LMMbL-uH.js";import{t}from"../../paragraph-Cc13ZI4d.js";import{PlusIcon as n}from"lucide-react";import{jsx as r,jsxs as i}from"react/jsx-runtime";const a=({onClick:a=()=>{}})=>i(e,{"aria-label":`Tạo mới`,variant:`outline`,color:`muted`,className:`outline-border-weak max-sm:aspect-square max-sm:size-9 max-sm:p-0`,onClick:a,children:[r(n,{className:`opacity-60 sm:-ms-1`,size:16,"aria-hidden":`true`}),r(t,{variant:`sm`,className:`max-sm:sr-only`,children:`Create`})]});export{a as AddNewBtn};
1
+ import"../../button.variants-BruXd4VM.js";import{Button as e}from"../button.js";import{PlusIcon as t}from"lucide-react";import{jsx as n,jsxs as r}from"react/jsx-runtime";import{Paragraph as i}from"@/components/typography/paragraph";const a=({onClick:a=()=>{}})=>r(e,{"aria-label":`Tạo mới`,variant:`outline`,color:`muted`,className:`outline-border-weak max-sm:aspect-square max-sm:size-9 max-sm:p-0`,onClick:a,children:[n(t,{className:`opacity-60 sm:-ms-1`,size:16,"aria-hidden":`true`}),n(i,{variant:`sm`,className:`max-sm:sr-only`,children:`Create`})]});export{a as AddNewBtn};
2
2
  //# sourceMappingURL=add-new.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"add-new.js","names":["AddNewBtn: React.FC<React.PropsWithChildren<Props>>"],"sources":["../../../packages/components/ui/buttons/add-new.tsx"],"sourcesContent":["import { PlusIcon } from 'lucide-react';\n\nimport { Paragraph } from '@/components/typography/paragraph';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. Defaults to a no-op. */\n onClick?: () => void;\n};\n\n/**\n * A toolbar button that triggers a \"create new\" action, displaying a plus icon alongside a \"Create\" label that is hidden on small screens.\n *\n * @example\n * import { AddNewBtn } from '@customafk/lunas-ui/ui/buttons/add-new';\n *\n * <AddNewBtn onClick={() => setOpen(true)} />\n */\nexport const AddNewBtn: React.FC<React.PropsWithChildren<Props>> = ({ onClick = () => {} }) => {\n return (\n <Button\n aria-label=\"Tạo mới\"\n variant=\"outline\"\n color=\"muted\"\n className=\"outline-border-weak max-sm:aspect-square max-sm:size-9 max-sm:p-0\"\n onClick={onClick}\n >\n <PlusIcon className=\"opacity-60 sm:-ms-1\" size={16} aria-hidden=\"true\" />\n <Paragraph variant=\"sm\" className=\"max-sm:sr-only\">\n Create\n </Paragraph>\n </Button>\n );\n};\n"],"mappings":"4NAmBA,MAAaA,GAAuD,CAAE,cAAgB,MAElF,EAAC,EAAA,CACC,aAAW,UACX,QAAQ,UACR,MAAM,QACN,UAAU,oEACD,oBAET,EAAC,EAAA,CAAS,UAAU,sBAAsB,KAAM,GAAI,cAAY,QAAS,CACzE,EAAC,EAAA,CAAU,QAAQ,KAAK,UAAU,0BAAiB,UAEvC,CAAA,EACL"}
1
+ {"version":3,"file":"add-new.js","names":["AddNewBtn: React.FC<React.PropsWithChildren<Props>>"],"sources":["../../../packages/components/ui/buttons/add-new.tsx"],"sourcesContent":["import { PlusIcon } from 'lucide-react';\n\nimport { Paragraph } from '@/components/typography/paragraph';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. Defaults to a no-op. */\n onClick?: () => void;\n};\n\n/**\n * A toolbar button that triggers a \"create new\" action, displaying a plus icon alongside a \"Create\" label that is hidden on small screens.\n *\n * @example\n * import { AddNewBtn } from '@customafk/lunas-ui/ui/buttons/add-new';\n *\n * <AddNewBtn onClick={() => setOpen(true)} />\n */\nexport const AddNewBtn: React.FC<React.PropsWithChildren<Props>> = ({ onClick = () => {} }) => {\n return (\n <Button\n aria-label=\"Tạo mới\"\n variant=\"outline\"\n color=\"muted\"\n className=\"outline-border-weak max-sm:aspect-square max-sm:size-9 max-sm:p-0\"\n onClick={onClick}\n >\n <PlusIcon className=\"opacity-60 sm:-ms-1\" size={16} aria-hidden=\"true\" />\n <Paragraph variant=\"sm\" className=\"max-sm:sr-only\">\n Create\n </Paragraph>\n </Button>\n );\n};\n"],"mappings":"wOAmBA,MAAaA,GAAuD,CAAE,cAAgB,MAElF,EAAC,EAAA,CACC,aAAW,UACX,QAAQ,UACR,MAAM,QACN,UAAU,oEACD,oBAET,EAAC,EAAA,CAAS,UAAU,sBAAsB,KAAM,GAAI,cAAY,QAAS,CACzE,EAAC,EAAA,CAAU,QAAQ,KAAK,UAAU,0BAAiB,UAEvC,CAAA,EACL"}
@@ -1,2 +1,2 @@
1
- const e=require(`../../chunk-350yNsax.cjs`);require(`../../button.variants-4kw6plrv.cjs`);const t=require(`../../button-C--DAN1D.cjs`);let n=require(`lucide-react`),r=require(`react/jsx-runtime`);const i=({onClick:e})=>(0,r.jsx)(t.t,{"aria-label":`Chỉnh sửa`,variant:`ghost`,color:`secondary`,size:`icon`,className:`max-sm:aspect-square max-sm:p-0`,onClick:e,children:(0,r.jsx)(n.Edit2Icon,{size:16,className:`opacity-60`})});exports.EditBtn=i;
1
+ const e=require(`../../chunk-Bmb41Sf3.cjs`);require(`../../button.variants-DgVFNsVc.cjs`);const t=require(`../button.cjs`);let n=require(`lucide-react`),r=require(`react/jsx-runtime`);const i=({onClick:e})=>(0,r.jsx)(t.Button,{"aria-label":`Chỉnh sửa`,variant:`ghost`,color:`secondary`,size:`icon`,className:`max-sm:aspect-square max-sm:p-0`,onClick:e,children:(0,r.jsx)(n.Edit2Icon,{size:16,className:`opacity-60`})});exports.EditBtn=i;
2
2
  //# sourceMappingURL=edit.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"edit.cjs","names":["EditBtn: React.FC<Props>","Button","Edit2Icon"],"sources":["../../../packages/components/ui/buttons/edit.tsx"],"sourcesContent":["import { Edit2Icon } from 'lucide-react';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. */\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n};\n\n/**\n * An icon-only ghost button that triggers an edit action, rendered with a pencil icon.\n *\n * @example\n * import { EditBtn } from '@customafk/lunas-ui/ui/buttons/edit';\n *\n * <EditBtn onClick={() => openEditDialog(record.id)} />\n */\nexport const EditBtn: React.FC<Props> = ({ onClick }) => {\n return (\n <Button aria-label=\"Chỉnh sửa\" variant=\"ghost\" color=\"secondary\" size=\"icon\" className=\"max-sm:aspect-square max-sm:p-0\" onClick={onClick}>\n <Edit2Icon size={16} className=\"opacity-60\" />\n </Button>\n );\n};\n"],"mappings":"oMAiBA,MAAaA,GAA4B,CAAE,cAEvC,EAAA,EAAA,KAACC,EAAAA,EAAAA,CAAO,aAAW,YAAY,QAAQ,QAAQ,MAAM,YAAY,KAAK,OAAO,UAAU,kCAA2C,oBAChI,EAAA,EAAA,KAACC,EAAAA,UAAAA,CAAU,KAAM,GAAI,UAAU,cAAe,EACvC"}
1
+ {"version":3,"file":"edit.cjs","names":["EditBtn: React.FC<Props>","Button","Edit2Icon"],"sources":["../../../packages/components/ui/buttons/edit.tsx"],"sourcesContent":["import { Edit2Icon } from 'lucide-react';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. */\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n};\n\n/**\n * An icon-only ghost button that triggers an edit action, rendered with a pencil icon.\n *\n * @example\n * import { EditBtn } from '@customafk/lunas-ui/ui/buttons/edit';\n *\n * <EditBtn onClick={() => openEditDialog(record.id)} />\n */\nexport const EditBtn: React.FC<Props> = ({ onClick }) => {\n return (\n <Button aria-label=\"Chỉnh sửa\" variant=\"ghost\" color=\"secondary\" size=\"icon\" className=\"max-sm:aspect-square max-sm:p-0\" onClick={onClick}>\n <Edit2Icon size={16} className=\"opacity-60\" />\n </Button>\n );\n};\n"],"mappings":"wLAiBA,MAAaA,GAA4B,CAAE,cAEvC,EAAA,EAAA,KAACC,EAAAA,OAAAA,CAAO,aAAW,YAAY,QAAQ,QAAQ,MAAM,YAAY,KAAK,OAAO,UAAU,kCAA2C,oBAChI,EAAA,EAAA,KAACC,EAAAA,UAAAA,CAAU,KAAM,GAAI,UAAU,cAAe,EACvC"}
@@ -1,2 +1,2 @@
1
- import"../../button.variants-CoSpd71B.js";import{t as e}from"../../button-LMMbL-uH.js";import{Edit2Icon as t}from"lucide-react";import{jsx as n}from"react/jsx-runtime";const r=({onClick:r})=>n(e,{"aria-label":`Chỉnh sửa`,variant:`ghost`,color:`secondary`,size:`icon`,className:`max-sm:aspect-square max-sm:p-0`,onClick:r,children:n(t,{size:16,className:`opacity-60`})});export{r as EditBtn};
1
+ import"../../button.variants-BruXd4VM.js";import{Button as e}from"../button.js";import{Edit2Icon as t}from"lucide-react";import{jsx as n}from"react/jsx-runtime";const r=({onClick:r})=>n(e,{"aria-label":`Chỉnh sửa`,variant:`ghost`,color:`secondary`,size:`icon`,className:`max-sm:aspect-square max-sm:p-0`,onClick:r,children:n(t,{size:16,className:`opacity-60`})});export{r as EditBtn};
2
2
  //# sourceMappingURL=edit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"edit.js","names":["EditBtn: React.FC<Props>"],"sources":["../../../packages/components/ui/buttons/edit.tsx"],"sourcesContent":["import { Edit2Icon } from 'lucide-react';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. */\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n};\n\n/**\n * An icon-only ghost button that triggers an edit action, rendered with a pencil icon.\n *\n * @example\n * import { EditBtn } from '@customafk/lunas-ui/ui/buttons/edit';\n *\n * <EditBtn onClick={() => openEditDialog(record.id)} />\n */\nexport const EditBtn: React.FC<Props> = ({ onClick }) => {\n return (\n <Button aria-label=\"Chỉnh sửa\" variant=\"ghost\" color=\"secondary\" size=\"icon\" className=\"max-sm:aspect-square max-sm:p-0\" onClick={onClick}>\n <Edit2Icon size={16} className=\"opacity-60\" />\n </Button>\n );\n};\n"],"mappings":"wKAiBA,MAAaA,GAA4B,CAAE,aAEvC,EAAC,EAAA,CAAO,aAAW,YAAY,QAAQ,QAAQ,MAAM,YAAY,KAAK,OAAO,UAAU,kCAA2C,mBAChI,EAAC,EAAA,CAAU,KAAM,GAAI,UAAU,cAAe,EACvC"}
1
+ {"version":3,"file":"edit.js","names":["EditBtn: React.FC<Props>"],"sources":["../../../packages/components/ui/buttons/edit.tsx"],"sourcesContent":["import { Edit2Icon } from 'lucide-react';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. */\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n};\n\n/**\n * An icon-only ghost button that triggers an edit action, rendered with a pencil icon.\n *\n * @example\n * import { EditBtn } from '@customafk/lunas-ui/ui/buttons/edit';\n *\n * <EditBtn onClick={() => openEditDialog(record.id)} />\n */\nexport const EditBtn: React.FC<Props> = ({ onClick }) => {\n return (\n <Button aria-label=\"Chỉnh sửa\" variant=\"ghost\" color=\"secondary\" size=\"icon\" className=\"max-sm:aspect-square max-sm:p-0\" onClick={onClick}>\n <Edit2Icon size={16} className=\"opacity-60\" />\n </Button>\n );\n};\n"],"mappings":"iKAiBA,MAAaA,GAA4B,CAAE,aAEvC,EAAC,EAAA,CAAO,aAAW,YAAY,QAAQ,QAAQ,MAAM,YAAY,KAAK,OAAO,UAAU,kCAA2C,mBAChI,EAAC,EAAA,CAAU,KAAM,GAAI,UAAU,cAAe,EACvC"}
@@ -1,2 +1,2 @@
1
- const e=require(`../../chunk-350yNsax.cjs`);require(`../../button.variants-4kw6plrv.cjs`);const t=require(`../../button-C--DAN1D.cjs`),n=require(`../../paragraph-DvTZvbzw.cjs`);let r=require(`lucide-react`),i=require(`react/jsx-runtime`);const a=({onClick:e=()=>{}})=>(0,i.jsxs)(t.t,{"aria-label":`Tạo mới`,variant:`outline`,color:`muted`,className:`outline-border-weak max-sm:aspect-square max-sm:size-9 max-sm:p-0`,onClick:e,children:[(0,i.jsx)(r.RefreshCwIcon,{className:`opacity-60 sm:-ms-1`,size:16,"aria-hidden":`true`}),(0,i.jsx)(n.t,{variant:`sm`,className:`max-sm:sr-only`,children:`Reset`})]});exports.RefreshBtn=a;
1
+ const e=require(`../../chunk-Bmb41Sf3.cjs`);require(`../../button.variants-DgVFNsVc.cjs`);const t=require(`../button.cjs`);let n=require(`lucide-react`),r=require(`react/jsx-runtime`),i=require(`@/components/typography/paragraph`);const a=({onClick:e=()=>{}})=>(0,r.jsxs)(t.Button,{"aria-label":`Tạo mới`,variant:`outline`,color:`muted`,className:`outline-border-weak max-sm:aspect-square max-sm:size-9 max-sm:p-0`,onClick:e,children:[(0,r.jsx)(n.RefreshCwIcon,{className:`opacity-60 sm:-ms-1`,size:16,"aria-hidden":`true`}),(0,r.jsx)(i.Paragraph,{variant:`sm`,className:`max-sm:sr-only`,children:`Reset`})]});exports.RefreshBtn=a;
2
2
  //# sourceMappingURL=refresh.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"refresh.cjs","names":["RefreshBtn: React.FC<React.PropsWithChildren<Props>>","Button","RefreshCwIcon","Paragraph"],"sources":["../../../packages/components/ui/buttons/refresh.tsx"],"sourcesContent":["import { RefreshCwIcon } from 'lucide-react';\n\nimport { Paragraph } from '@/components/typography/paragraph';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. Defaults to a no-op. */\n onClick?: () => void;\n};\n\n/**\n * A toolbar button that triggers a refresh/reset action, displaying a rotating arrows icon alongside a \"Reset\" label that is hidden on small screens.\n *\n * @example\n * import { RefreshBtn } from '@customafk/lunas-ui/ui/buttons/refresh';\n *\n * <RefreshBtn onClick={() => resetFilters()} />\n */\nexport const RefreshBtn: React.FC<React.PropsWithChildren<Props>> = ({ onClick = () => {} }) => {\n return (\n <Button\n aria-label=\"Tạo mới\"\n variant=\"outline\"\n color=\"muted\"\n className=\"outline-border-weak max-sm:aspect-square max-sm:size-9 max-sm:p-0\"\n onClick={onClick}\n >\n <RefreshCwIcon className=\"opacity-60 sm:-ms-1\" size={16} aria-hidden=\"true\" />\n <Paragraph variant=\"sm\" className=\"max-sm:sr-only\">\n Reset\n </Paragraph>\n </Button>\n );\n};\n"],"mappings":"8OAmBA,MAAaA,GAAwD,CAAE,cAAgB,OAEnF,EAAA,EAAA,MAACC,EAAAA,EAAAA,CACC,aAAW,UACX,QAAQ,UACR,MAAM,QACN,UAAU,oEACD,qBAET,EAAA,EAAA,KAACC,EAAAA,cAAAA,CAAc,UAAU,sBAAsB,KAAM,GAAI,cAAY,QAAS,EAC9E,EAAA,EAAA,KAACC,EAAAA,EAAAA,CAAU,QAAQ,KAAK,UAAU,0BAAiB,SAEvC,CAAA,EACL"}
1
+ {"version":3,"file":"refresh.cjs","names":["RefreshBtn: React.FC<React.PropsWithChildren<Props>>","Button","RefreshCwIcon","Paragraph"],"sources":["../../../packages/components/ui/buttons/refresh.tsx"],"sourcesContent":["import { RefreshCwIcon } from 'lucide-react';\n\nimport { Paragraph } from '@/components/typography/paragraph';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. Defaults to a no-op. */\n onClick?: () => void;\n};\n\n/**\n * A toolbar button that triggers a refresh/reset action, displaying a rotating arrows icon alongside a \"Reset\" label that is hidden on small screens.\n *\n * @example\n * import { RefreshBtn } from '@customafk/lunas-ui/ui/buttons/refresh';\n *\n * <RefreshBtn onClick={() => resetFilters()} />\n */\nexport const RefreshBtn: React.FC<React.PropsWithChildren<Props>> = ({ onClick = () => {} }) => {\n return (\n <Button\n aria-label=\"Tạo mới\"\n variant=\"outline\"\n color=\"muted\"\n className=\"outline-border-weak max-sm:aspect-square max-sm:size-9 max-sm:p-0\"\n onClick={onClick}\n >\n <RefreshCwIcon className=\"opacity-60 sm:-ms-1\" size={16} aria-hidden=\"true\" />\n <Paragraph variant=\"sm\" className=\"max-sm:sr-only\">\n Reset\n </Paragraph>\n </Button>\n );\n};\n"],"mappings":"uOAmBA,MAAaA,GAAwD,CAAE,cAAgB,OAEnF,EAAA,EAAA,MAACC,EAAAA,OAAAA,CACC,aAAW,UACX,QAAQ,UACR,MAAM,QACN,UAAU,oEACD,qBAET,EAAA,EAAA,KAACC,EAAAA,cAAAA,CAAc,UAAU,sBAAsB,KAAM,GAAI,cAAY,QAAS,EAC9E,EAAA,EAAA,KAACC,EAAAA,UAAAA,CAAU,QAAQ,KAAK,UAAU,0BAAiB,SAEvC,CAAA,EACL"}
@@ -1,2 +1,2 @@
1
- import"../../button.variants-CoSpd71B.js";import{t as e}from"../../button-LMMbL-uH.js";import{t}from"../../paragraph-Cc13ZI4d.js";import{RefreshCwIcon as n}from"lucide-react";import{jsx as r,jsxs as i}from"react/jsx-runtime";const a=({onClick:a=()=>{}})=>i(e,{"aria-label":`Tạo mới`,variant:`outline`,color:`muted`,className:`outline-border-weak max-sm:aspect-square max-sm:size-9 max-sm:p-0`,onClick:a,children:[r(n,{className:`opacity-60 sm:-ms-1`,size:16,"aria-hidden":`true`}),r(t,{variant:`sm`,className:`max-sm:sr-only`,children:`Reset`})]});export{a as RefreshBtn};
1
+ import"../../button.variants-BruXd4VM.js";import{Button as e}from"../button.js";import{RefreshCwIcon as t}from"lucide-react";import{jsx as n,jsxs as r}from"react/jsx-runtime";import{Paragraph as i}from"@/components/typography/paragraph";const a=({onClick:a=()=>{}})=>r(e,{"aria-label":`Tạo mới`,variant:`outline`,color:`muted`,className:`outline-border-weak max-sm:aspect-square max-sm:size-9 max-sm:p-0`,onClick:a,children:[n(t,{className:`opacity-60 sm:-ms-1`,size:16,"aria-hidden":`true`}),n(i,{variant:`sm`,className:`max-sm:sr-only`,children:`Reset`})]});export{a as RefreshBtn};
2
2
  //# sourceMappingURL=refresh.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"refresh.js","names":["RefreshBtn: React.FC<React.PropsWithChildren<Props>>"],"sources":["../../../packages/components/ui/buttons/refresh.tsx"],"sourcesContent":["import { RefreshCwIcon } from 'lucide-react';\n\nimport { Paragraph } from '@/components/typography/paragraph';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. Defaults to a no-op. */\n onClick?: () => void;\n};\n\n/**\n * A toolbar button that triggers a refresh/reset action, displaying a rotating arrows icon alongside a \"Reset\" label that is hidden on small screens.\n *\n * @example\n * import { RefreshBtn } from '@customafk/lunas-ui/ui/buttons/refresh';\n *\n * <RefreshBtn onClick={() => resetFilters()} />\n */\nexport const RefreshBtn: React.FC<React.PropsWithChildren<Props>> = ({ onClick = () => {} }) => {\n return (\n <Button\n aria-label=\"Tạo mới\"\n variant=\"outline\"\n color=\"muted\"\n className=\"outline-border-weak max-sm:aspect-square max-sm:size-9 max-sm:p-0\"\n onClick={onClick}\n >\n <RefreshCwIcon className=\"opacity-60 sm:-ms-1\" size={16} aria-hidden=\"true\" />\n <Paragraph variant=\"sm\" className=\"max-sm:sr-only\">\n Reset\n </Paragraph>\n </Button>\n );\n};\n"],"mappings":"iOAmBA,MAAaA,GAAwD,CAAE,cAAgB,MAEnF,EAAC,EAAA,CACC,aAAW,UACX,QAAQ,UACR,MAAM,QACN,UAAU,oEACD,oBAET,EAAC,EAAA,CAAc,UAAU,sBAAsB,KAAM,GAAI,cAAY,QAAS,CAC9E,EAAC,EAAA,CAAU,QAAQ,KAAK,UAAU,0BAAiB,SAEvC,CAAA,EACL"}
1
+ {"version":3,"file":"refresh.js","names":["RefreshBtn: React.FC<React.PropsWithChildren<Props>>"],"sources":["../../../packages/components/ui/buttons/refresh.tsx"],"sourcesContent":["import { RefreshCwIcon } from 'lucide-react';\n\nimport { Paragraph } from '@/components/typography/paragraph';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. Defaults to a no-op. */\n onClick?: () => void;\n};\n\n/**\n * A toolbar button that triggers a refresh/reset action, displaying a rotating arrows icon alongside a \"Reset\" label that is hidden on small screens.\n *\n * @example\n * import { RefreshBtn } from '@customafk/lunas-ui/ui/buttons/refresh';\n *\n * <RefreshBtn onClick={() => resetFilters()} />\n */\nexport const RefreshBtn: React.FC<React.PropsWithChildren<Props>> = ({ onClick = () => {} }) => {\n return (\n <Button\n aria-label=\"Tạo mới\"\n variant=\"outline\"\n color=\"muted\"\n className=\"outline-border-weak max-sm:aspect-square max-sm:size-9 max-sm:p-0\"\n onClick={onClick}\n >\n <RefreshCwIcon className=\"opacity-60 sm:-ms-1\" size={16} aria-hidden=\"true\" />\n <Paragraph variant=\"sm\" className=\"max-sm:sr-only\">\n Reset\n </Paragraph>\n </Button>\n );\n};\n"],"mappings":"6OAmBA,MAAaA,GAAwD,CAAE,cAAgB,MAEnF,EAAC,EAAA,CACC,aAAW,UACX,QAAQ,UACR,MAAM,QACN,UAAU,oEACD,oBAET,EAAC,EAAA,CAAc,UAAU,sBAAsB,KAAM,GAAI,cAAY,QAAS,CAC9E,EAAC,EAAA,CAAU,QAAQ,KAAK,UAAU,0BAAiB,SAEvC,CAAA,EACL"}
@@ -1,2 +1,2 @@
1
- const e=require(`../../chunk-350yNsax.cjs`);require(`../../button.variants-4kw6plrv.cjs`);const t=require(`../../button-C--DAN1D.cjs`);let n=require(`lucide-react`),r=require(`react/jsx-runtime`);const i=({onClick:e})=>(0,r.jsx)(t.t,{"aria-label":`Xoá`,variant:`ghost`,size:`icon`,color:`secondary`,className:`max-sm:aspect-square max-sm:p-0`,onClick:e,children:(0,r.jsx)(n.Trash2Icon,{size:16,className:`opacity-60`,"aria-hidden":`true`})});exports.TrashBtn=i;
1
+ const e=require(`../../chunk-Bmb41Sf3.cjs`);require(`../../button.variants-DgVFNsVc.cjs`);const t=require(`../button.cjs`);let n=require(`lucide-react`),r=require(`react/jsx-runtime`);const i=({onClick:e})=>(0,r.jsx)(t.Button,{"aria-label":`Xoá`,variant:`ghost`,size:`icon`,color:`secondary`,className:`max-sm:aspect-square max-sm:p-0`,onClick:e,children:(0,r.jsx)(n.Trash2Icon,{size:16,className:`opacity-60`,"aria-hidden":`true`})});exports.TrashBtn=i;
2
2
  //# sourceMappingURL=trash.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"trash.cjs","names":["TrashBtn: React.FC<Props>","Button","Trash2Icon"],"sources":["../../../packages/components/ui/buttons/trash.tsx"],"sourcesContent":["import { Trash2Icon } from 'lucide-react';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. */\n onClick?: () => void;\n};\n\n/**\n * An icon-only ghost button that triggers a delete action, rendered with a trash-can icon.\n *\n * @example\n * import { TrashBtn } from '@customafk/lunas-ui/ui/buttons/trash';\n *\n * <TrashBtn onClick={() => deleteRecord(record.id)} />\n */\nexport const TrashBtn: React.FC<Props> = ({ onClick }) => {\n return (\n <Button aria-label=\"Xoá\" variant=\"ghost\" size=\"icon\" color=\"secondary\" className=\"max-sm:aspect-square max-sm:p-0\" onClick={onClick}>\n <Trash2Icon size={16} className=\"opacity-60\" aria-hidden=\"true\" />\n </Button>\n );\n};\n"],"mappings":"oMAiBA,MAAaA,GAA6B,CAAE,cAExC,EAAA,EAAA,KAACC,EAAAA,EAAAA,CAAO,aAAW,MAAM,QAAQ,QAAQ,KAAK,OAAO,MAAM,YAAY,UAAU,kCAA2C,oBAC1H,EAAA,EAAA,KAACC,EAAAA,WAAAA,CAAW,KAAM,GAAI,UAAU,aAAa,cAAY,QAAS,EAC3D"}
1
+ {"version":3,"file":"trash.cjs","names":["TrashBtn: React.FC<Props>","Button","Trash2Icon"],"sources":["../../../packages/components/ui/buttons/trash.tsx"],"sourcesContent":["import { Trash2Icon } from 'lucide-react';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. */\n onClick?: () => void;\n};\n\n/**\n * An icon-only ghost button that triggers a delete action, rendered with a trash-can icon.\n *\n * @example\n * import { TrashBtn } from '@customafk/lunas-ui/ui/buttons/trash';\n *\n * <TrashBtn onClick={() => deleteRecord(record.id)} />\n */\nexport const TrashBtn: React.FC<Props> = ({ onClick }) => {\n return (\n <Button aria-label=\"Xoá\" variant=\"ghost\" size=\"icon\" color=\"secondary\" className=\"max-sm:aspect-square max-sm:p-0\" onClick={onClick}>\n <Trash2Icon size={16} className=\"opacity-60\" aria-hidden=\"true\" />\n </Button>\n );\n};\n"],"mappings":"wLAiBA,MAAaA,GAA6B,CAAE,cAExC,EAAA,EAAA,KAACC,EAAAA,OAAAA,CAAO,aAAW,MAAM,QAAQ,QAAQ,KAAK,OAAO,MAAM,YAAY,UAAU,kCAA2C,oBAC1H,EAAA,EAAA,KAACC,EAAAA,WAAAA,CAAW,KAAM,GAAI,UAAU,aAAa,cAAY,QAAS,EAC3D"}
@@ -1,2 +1,2 @@
1
- import"../../button.variants-CoSpd71B.js";import{t as e}from"../../button-LMMbL-uH.js";import{Trash2Icon as t}from"lucide-react";import{jsx as n}from"react/jsx-runtime";const r=({onClick:r})=>n(e,{"aria-label":`Xoá`,variant:`ghost`,size:`icon`,color:`secondary`,className:`max-sm:aspect-square max-sm:p-0`,onClick:r,children:n(t,{size:16,className:`opacity-60`,"aria-hidden":`true`})});export{r as TrashBtn};
1
+ import"../../button.variants-BruXd4VM.js";import{Button as e}from"../button.js";import{Trash2Icon as t}from"lucide-react";import{jsx as n}from"react/jsx-runtime";const r=({onClick:r})=>n(e,{"aria-label":`Xoá`,variant:`ghost`,size:`icon`,color:`secondary`,className:`max-sm:aspect-square max-sm:p-0`,onClick:r,children:n(t,{size:16,className:`opacity-60`,"aria-hidden":`true`})});export{r as TrashBtn};
2
2
  //# sourceMappingURL=trash.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"trash.js","names":["TrashBtn: React.FC<Props>"],"sources":["../../../packages/components/ui/buttons/trash.tsx"],"sourcesContent":["import { Trash2Icon } from 'lucide-react';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. */\n onClick?: () => void;\n};\n\n/**\n * An icon-only ghost button that triggers a delete action, rendered with a trash-can icon.\n *\n * @example\n * import { TrashBtn } from '@customafk/lunas-ui/ui/buttons/trash';\n *\n * <TrashBtn onClick={() => deleteRecord(record.id)} />\n */\nexport const TrashBtn: React.FC<Props> = ({ onClick }) => {\n return (\n <Button aria-label=\"Xoá\" variant=\"ghost\" size=\"icon\" color=\"secondary\" className=\"max-sm:aspect-square max-sm:p-0\" onClick={onClick}>\n <Trash2Icon size={16} className=\"opacity-60\" aria-hidden=\"true\" />\n </Button>\n );\n};\n"],"mappings":"yKAiBA,MAAaA,GAA6B,CAAE,aAExC,EAAC,EAAA,CAAO,aAAW,MAAM,QAAQ,QAAQ,KAAK,OAAO,MAAM,YAAY,UAAU,kCAA2C,mBAC1H,EAAC,EAAA,CAAW,KAAM,GAAI,UAAU,aAAa,cAAY,QAAS,EAC3D"}
1
+ {"version":3,"file":"trash.js","names":["TrashBtn: React.FC<Props>"],"sources":["../../../packages/components/ui/buttons/trash.tsx"],"sourcesContent":["import { Trash2Icon } from 'lucide-react';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. */\n onClick?: () => void;\n};\n\n/**\n * An icon-only ghost button that triggers a delete action, rendered with a trash-can icon.\n *\n * @example\n * import { TrashBtn } from '@customafk/lunas-ui/ui/buttons/trash';\n *\n * <TrashBtn onClick={() => deleteRecord(record.id)} />\n */\nexport const TrashBtn: React.FC<Props> = ({ onClick }) => {\n return (\n <Button aria-label=\"Xoá\" variant=\"ghost\" size=\"icon\" color=\"secondary\" className=\"max-sm:aspect-square max-sm:p-0\" onClick={onClick}>\n <Trash2Icon size={16} className=\"opacity-60\" aria-hidden=\"true\" />\n </Button>\n );\n};\n"],"mappings":"kKAiBA,MAAaA,GAA6B,CAAE,aAExC,EAAC,EAAA,CAAO,aAAW,MAAM,QAAQ,QAAQ,KAAK,OAAO,MAAM,YAAY,UAAU,kCAA2C,mBAC1H,EAAC,EAAA,CAAW,KAAM,GAAI,UAAU,aAAa,cAAY,QAAS,EAC3D"}
@@ -1,2 +1,2 @@
1
- const e=require(`../../chunk-350yNsax.cjs`);require(`../../button.variants-4kw6plrv.cjs`);const t=require(`../../button-C--DAN1D.cjs`);let n=require(`lucide-react`),r=require(`react/jsx-runtime`);const i=({size:e=`5rem`,onClick:i})=>(0,r.jsx)(t.t,{style:{width:e,height:e},variant:`outline`,color:`muted`,onClick:i,children:(0,r.jsx)(n.UploadIcon,{className:`size-6`})});exports.UploadImageBtn=i;
1
+ const e=require(`../../chunk-Bmb41Sf3.cjs`);require(`../../button.variants-DgVFNsVc.cjs`);const t=require(`../button.cjs`);let n=require(`lucide-react`),r=require(`react/jsx-runtime`);const i=({size:e=`5rem`,onClick:i})=>(0,r.jsx)(t.Button,{style:{width:e,height:e},variant:`outline`,color:`muted`,onClick:i,children:(0,r.jsx)(n.UploadIcon,{className:`size-6`})});exports.UploadImageBtn=i;
2
2
  //# sourceMappingURL=upload-image.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"upload-image.cjs","names":["UploadImageBtn: React.FC<PropsWithChildren<Props>>","Button","UploadIcon"],"sources":["../../../packages/components/ui/buttons/upload-image.tsx"],"sourcesContent":["import type { PropsWithChildren } from 'react';\n\nimport { UploadIcon } from 'lucide-react';\n\nimport { Button } from '../button';\n\ntype Props = {\n /**\n * Numeric pixel value applied to both the `width` and `height` of the button via inline styles.\n * @default '5rem'\n */\n size?: number;\n /** Callback invoked when the button is clicked. */\n onClick?: () => void;\n};\n\n/**\n * A square outline button for triggering image upload flows, rendered with an upload icon and a configurable size.\n *\n * @example\n * import { UploadImageBtn } from '@customafk/lunas-ui/ui/buttons/upload-image';\n *\n * <UploadImageBtn size={96} onClick={() => openFilePicker()} />\n */\nexport const UploadImageBtn: React.FC<PropsWithChildren<Props>> = ({ size = '5rem', onClick }) => {\n return (\n <Button\n style={{\n width: size,\n height: size,\n }}\n variant=\"outline\"\n color=\"muted\"\n onClick={onClick}\n >\n <UploadIcon className=\"size-6\" />\n </Button>\n );\n};\n"],"mappings":"oMAwBA,MAAaA,GAAsD,CAAE,OAAO,OAAQ,cAEhF,EAAA,EAAA,KAACC,EAAAA,EAAAA,CACC,MAAO,CACL,MAAO,EACP,OAAQ,EACT,CACD,QAAQ,UACR,MAAM,QACG,oBAET,EAAA,EAAA,KAACC,EAAAA,WAAAA,CAAW,UAAU,SAAA,CAAW,EAC1B"}
1
+ {"version":3,"file":"upload-image.cjs","names":["UploadImageBtn: React.FC<PropsWithChildren<Props>>","Button","UploadIcon"],"sources":["../../../packages/components/ui/buttons/upload-image.tsx"],"sourcesContent":["import type { PropsWithChildren } from 'react';\n\nimport { UploadIcon } from 'lucide-react';\n\nimport { Button } from '../button';\n\ntype Props = {\n /**\n * Numeric pixel value applied to both the `width` and `height` of the button via inline styles.\n * @default '5rem'\n */\n size?: number;\n /** Callback invoked when the button is clicked. */\n onClick?: () => void;\n};\n\n/**\n * A square outline button for triggering image upload flows, rendered with an upload icon and a configurable size.\n *\n * @example\n * import { UploadImageBtn } from '@customafk/lunas-ui/ui/buttons/upload-image';\n *\n * <UploadImageBtn size={96} onClick={() => openFilePicker()} />\n */\nexport const UploadImageBtn: React.FC<PropsWithChildren<Props>> = ({ size = '5rem', onClick }) => {\n return (\n <Button\n style={{\n width: size,\n height: size,\n }}\n variant=\"outline\"\n color=\"muted\"\n onClick={onClick}\n >\n <UploadIcon className=\"size-6\" />\n </Button>\n );\n};\n"],"mappings":"wLAwBA,MAAaA,GAAsD,CAAE,OAAO,OAAQ,cAEhF,EAAA,EAAA,KAACC,EAAAA,OAAAA,CACC,MAAO,CACL,MAAO,EACP,OAAQ,EACT,CACD,QAAQ,UACR,MAAM,QACG,oBAET,EAAA,EAAA,KAACC,EAAAA,WAAAA,CAAW,UAAU,SAAA,CAAW,EAC1B"}
@@ -1,2 +1,2 @@
1
- import"../../button.variants-CoSpd71B.js";import{t as e}from"../../button-LMMbL-uH.js";import{UploadIcon as t}from"lucide-react";import{jsx as n}from"react/jsx-runtime";const r=({size:r=`5rem`,onClick:i})=>n(e,{style:{width:r,height:r},variant:`outline`,color:`muted`,onClick:i,children:n(t,{className:`size-6`})});export{r as UploadImageBtn};
1
+ import"../../button.variants-BruXd4VM.js";import{Button as e}from"../button.js";import{UploadIcon as t}from"lucide-react";import{jsx as n}from"react/jsx-runtime";const r=({size:r=`5rem`,onClick:i})=>n(e,{style:{width:r,height:r},variant:`outline`,color:`muted`,onClick:i,children:n(t,{className:`size-6`})});export{r as UploadImageBtn};
2
2
  //# sourceMappingURL=upload-image.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"upload-image.js","names":["UploadImageBtn: React.FC<PropsWithChildren<Props>>"],"sources":["../../../packages/components/ui/buttons/upload-image.tsx"],"sourcesContent":["import type { PropsWithChildren } from 'react';\n\nimport { UploadIcon } from 'lucide-react';\n\nimport { Button } from '../button';\n\ntype Props = {\n /**\n * Numeric pixel value applied to both the `width` and `height` of the button via inline styles.\n * @default '5rem'\n */\n size?: number;\n /** Callback invoked when the button is clicked. */\n onClick?: () => void;\n};\n\n/**\n * A square outline button for triggering image upload flows, rendered with an upload icon and a configurable size.\n *\n * @example\n * import { UploadImageBtn } from '@customafk/lunas-ui/ui/buttons/upload-image';\n *\n * <UploadImageBtn size={96} onClick={() => openFilePicker()} />\n */\nexport const UploadImageBtn: React.FC<PropsWithChildren<Props>> = ({ size = '5rem', onClick }) => {\n return (\n <Button\n style={{\n width: size,\n height: size,\n }}\n variant=\"outline\"\n color=\"muted\"\n onClick={onClick}\n >\n <UploadIcon className=\"size-6\" />\n </Button>\n );\n};\n"],"mappings":"yKAwBA,MAAaA,GAAsD,CAAE,OAAO,OAAQ,aAEhF,EAAC,EAAA,CACC,MAAO,CACL,MAAO,EACP,OAAQ,EACT,CACD,QAAQ,UACR,MAAM,QACG,mBAET,EAAC,EAAA,CAAW,UAAU,SAAA,CAAW,EAC1B"}
1
+ {"version":3,"file":"upload-image.js","names":["UploadImageBtn: React.FC<PropsWithChildren<Props>>"],"sources":["../../../packages/components/ui/buttons/upload-image.tsx"],"sourcesContent":["import type { PropsWithChildren } from 'react';\n\nimport { UploadIcon } from 'lucide-react';\n\nimport { Button } from '../button';\n\ntype Props = {\n /**\n * Numeric pixel value applied to both the `width` and `height` of the button via inline styles.\n * @default '5rem'\n */\n size?: number;\n /** Callback invoked when the button is clicked. */\n onClick?: () => void;\n};\n\n/**\n * A square outline button for triggering image upload flows, rendered with an upload icon and a configurable size.\n *\n * @example\n * import { UploadImageBtn } from '@customafk/lunas-ui/ui/buttons/upload-image';\n *\n * <UploadImageBtn size={96} onClick={() => openFilePicker()} />\n */\nexport const UploadImageBtn: React.FC<PropsWithChildren<Props>> = ({ size = '5rem', onClick }) => {\n return (\n <Button\n style={{\n width: size,\n height: size,\n }}\n variant=\"outline\"\n color=\"muted\"\n onClick={onClick}\n >\n <UploadIcon className=\"size-6\" />\n </Button>\n );\n};\n"],"mappings":"kKAwBA,MAAaA,GAAsD,CAAE,OAAO,OAAQ,aAEhF,EAAC,EAAA,CACC,MAAO,CACL,MAAO,EACP,OAAQ,EACT,CACD,QAAQ,UACR,MAAM,QACG,mBAET,EAAC,EAAA,CAAW,UAAU,SAAA,CAAW,EAC1B"}
@@ -1 +1,2 @@
1
- "use client";require(`../button.variants-4kw6plrv.cjs`),require(`../button-C--DAN1D.cjs`);const e=require(`../calendar-4weBDnXz.cjs`);exports.Calendar=e.t,exports.CalendarDayButton=e.n;
1
+ "use client";const e=require(`../chunk-Bmb41Sf3.cjs`);let t=require(`lucide-react`),n=require(`@customafk/react-toolkit/utils`),r=require(`react/jsx-runtime`),i=require(`react`),a=require(`@/components/ui/button`),o=require(`@/components/ui/button.variants`),s=require(`react-day-picker`);const c=({rootRef:e,className:t,...i})=>(0,r.jsx)(`div`,{"data-slot":`calendar`,ref:e,className:(0,n.cn)(t),...i}),l=e=>e.orientation===`left`?(0,r.jsx)(t.ChevronLeftIcon,{size:16,className:e.className,...e}):e.orientation===`right`?(0,r.jsx)(t.ChevronRightIcon,{size:16,className:e.className,...e}):(0,r.jsx)(t.ChevronDownIcon,{size:16,className:e.className,...e}),u=({className:e,day:t,modifiers:o,color:c,...l})=>{let u=(0,s.getDefaultClassNames)(),d=(0,i.useRef)(null);return(0,i.useEffect)(()=>{o.focused&&d.current?.focus()},[o.focused]),(0,r.jsx)(a.Button,{ref:d,variant:`ghost`,color:`muted`,"data-day":t.date.toLocaleDateString(),"data-selected-single":o.selected&&!o.range_start&&!o.range_end&&!o.range_middle,"data-range-start":o.range_start,"data-range-end":o.range_end,"data-range-middle":o.range_middle,className:(0,n.cn)(`flex aspect-square size-9 flex-col rounded font-normal text-sm tabular-nums leading-none`,`data-[selected-single=true]:bg-primary`,`data-[selected-single=true]:text-white`,`data-[range-middle=true]:bg-muted-muted`,`data-[range-middle=true]:text-text-positive`,`data-[range-start=true]:bg-primary-muted`,`data-[range-start=true]:text-text-positive-strong`,`data-[range-end=true]:bg-primary`,`data-[range-end=true]:text-text-positive-strong`,`group-data-[focused=true]/day:border-primary-strong`,`group-data-[focused=true]/day:relative`,`group-data-[focused=true]/day:z-10`,`data-[range-end=true]:rounded`,`data-[range-end=true]:rounded-r`,`data-[range-middle=true]:rounded-none`,`data-[range-start=true]:rounded`,`data-[range-start=true]:rounded-l`,`[&>span]:text-xs [&>span]:opacity-70`,u.day,e),...l})},d=({children:e,...t})=>(0,r.jsx)(`td`,{...t,children:(0,r.jsx)(`div`,{className:`flex size-(--cell-size) items-center justify-center text-center`,children:e})});function f({className:e,classNames:t,showOutsideDays:i=!0,captionLayout:a=`label`,buttonVariant:f=`ghost`,formatters:p,components:m,...h}){let g=(0,s.getDefaultClassNames)();return(0,r.jsx)(s.DayPicker,{showOutsideDays:i,className:(0,n.cn)(`group/calendar bg-background p-3`,`[--cell-size:--spacing(8)]`,`in-data-[slot=card-content]:bg-transparent`,`in-data-[slot=popover-content]:bg-transparent`,String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,e),captionLayout:a,formatters:{formatMonthDropdown:e=>e.toLocaleString(`default`,{month:`short`}),...p},classNames:{root:(0,n.cn)(g.root),months:(0,n.cn)(`flex gap-4 flex-col md:flex-row relative`,g.months),month:(0,n.cn)(`flex flex-col w-full gap-4`,g.month),nav:(0,n.cn)(`flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between`,g.nav),button_previous:(0,n.cn)((0,o.buttonVariants)({variant:`outline`,color:`muted`}),`size-(--cell-size) aria-disabled:opacity-50 p-0 select-none`,g.button_previous),button_next:(0,n.cn)((0,o.buttonVariants)({variant:`outline`,color:`muted`}),`size-(--cell-size) aria-disabled:opacity-50 p-0 select-none`,g.button_next),month_caption:(0,n.cn)(`flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)`,g.month_caption),dropdowns:(0,n.cn)(`w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5`,g.dropdowns),dropdown_root:(0,n.cn)(`relative has-focus:border-primary-strong border border-border-weak shadow-xs has-focus:ring-primary-weak has-focus:ring-[3px] rounded`,g.dropdown_root),dropdown:(0,n.cn)(`absolute inset-0 opacity-0`,g.dropdown),caption_label:(0,n.cn)(`select-none font-medium`,a===`label`&&`text-sm`,a!==`label`&&`rounded shadow-xs px-2 flex items-center gap-0.5 text-sm h-8 [&>svg]:text-text-positive [&>svg]:size-3.5`,g.caption_label),table:`w-full border-collapse`,weekdays:(0,n.cn)(`flex`,g.weekdays),weekday:(0,n.cn)(`text-text-positive rounded flex-1 font-normal text-[0.8rem] select-none`,g.weekday),week:(0,n.cn)(`flex w-full mt-2`,g.week),week_number_header:(0,n.cn)(`select-none w-(--cell-size)`,g.week_number_header),week_number:(0,n.cn)(`text-[0.8rem] select-none text-text-positive`,g.week_number),day:(0,n.cn)(`relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l [&:last-child[data-selected=true]_button]:rounded-r group/day aspect-square select-none`,g.day),range_start:(0,n.cn)(`rounded-l bg-muted-muted`,g.range_start),range_middle:(0,n.cn)(`rounded-none`,g.range_middle),range_end:(0,n.cn)(`rounded-r bg-muted-muted`,g.range_end),today:(0,n.cn)(`bg-muted-muted text-text-positive rounded data-[selected=true]:rounded-none`,g.today),outside:(0,n.cn)(`[&>button]:text-text-positive-muted aria-selected:text-text-positive`),disabled:(0,n.cn)(`bg-muted-muted text-text-positive opacity-50`,g.disabled),hidden:(0,n.cn)(`invisible`,g.hidden),...t},components:{Root:c,Chevron:l,DayButton:u,WeekNumber:d,...m},...h})}exports.Calendar=f,exports.CalendarDayButton=u;
2
+ //# sourceMappingURL=calendar.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar.cjs","names":["ChevronLeftIcon","ChevronRightIcon","ChevronDownIcon","Button","DayPicker"],"sources":["../../packages/components/ui/calendar.tsx"],"sourcesContent":["'use client';\nimport { type HTMLAttributes, type ThHTMLAttributes, useEffect, useRef } from 'react';\n\nimport { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Button } from '@/components/ui/button';\nimport { buttonVariants } from '@/components/ui/button.variants';\n\nimport { type CalendarWeek, type CustomComponents, type DayButton, DayPicker, getDefaultClassNames } from 'react-day-picker';\n\nconst CalendarRoot = ({\n rootRef,\n className,\n ...props\n}: {\n rootRef?: React.Ref<HTMLDivElement>;\n} & HTMLAttributes<HTMLDivElement>) => {\n return <div data-slot=\"calendar\" ref={rootRef} className={cn(className)} {...props} />;\n};\n\nconst CalendarChevron = (props: { className?: string; size?: number; disabled?: boolean; orientation?: 'up' | 'down' | 'left' | 'right' }) => {\n if (props.orientation === 'left') {\n return <ChevronLeftIcon size={16} className={props.className} {...props} />;\n }\n\n if (props.orientation === 'right') {\n return <ChevronRightIcon size={16} className={props.className} {...props} />;\n }\n\n return <ChevronDownIcon size={16} className={props.className} {...props} />;\n};\n\nconst CalendarDayButton = ({ className, day, modifiers, color: _, ...props }: React.ComponentProps<typeof DayButton>) => {\n const defaultClassNames = getDefaultClassNames();\n\n const ref = useRef<HTMLButtonElement>(null);\n useEffect(() => {\n if (modifiers.focused) ref.current?.focus();\n }, [modifiers.focused]);\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n color=\"muted\"\n data-day={day.date.toLocaleDateString()}\n data-selected-single={modifiers.selected && !modifiers.range_start && !modifiers.range_end && !modifiers.range_middle}\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n 'flex aspect-square size-9 flex-col rounded font-normal text-sm tabular-nums leading-none',\n 'data-[selected-single=true]:bg-primary',\n 'data-[selected-single=true]:text-white',\n 'data-[range-middle=true]:bg-muted-muted',\n 'data-[range-middle=true]:text-text-positive',\n 'data-[range-start=true]:bg-primary-muted',\n 'data-[range-start=true]:text-text-positive-strong',\n 'data-[range-end=true]:bg-primary',\n 'data-[range-end=true]:text-text-positive-strong',\n 'group-data-[focused=true]/day:border-primary-strong',\n 'group-data-[focused=true]/day:relative',\n 'group-data-[focused=true]/day:z-10',\n 'data-[range-end=true]:rounded',\n 'data-[range-end=true]:rounded-r',\n 'data-[range-middle=true]:rounded-none',\n 'data-[range-start=true]:rounded',\n 'data-[range-start=true]:rounded-l',\n '[&>span]:text-xs [&>span]:opacity-70',\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n );\n};\n\nconst CalendarWeekNumber = ({\n children,\n ...props\n}: {\n week: CalendarWeek;\n} & ThHTMLAttributes<HTMLTableCellElement>) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) items-center justify-center text-center\">{children}</div>\n </td>\n );\n};\n\n/**\n * A fully styled date-picker calendar built on top of react-day-picker, supporting single, range, and multiple selection modes.\n *\n * @example\n * ```tsx\n * import { Calendar } from '@customafk/lunas-ui/ui/calendar';\n *\n * const [date, setDate] = React.useState<Date>();\n *\n * <Calendar\n * mode=\"single\"\n * selected={date}\n * onSelect={setDate}\n * captionLayout=\"dropdown\"\n * />\n * ```\n */\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = 'label',\n buttonVariant = 'ghost',\n formatters,\n components,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n /** Variant applied to the previous/next navigation buttons. */\n buttonVariant?: React.ComponentProps<typeof Button>['variant'];\n}) {\n const defaultClassNames = getDefaultClassNames();\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n 'group/calendar bg-background p-3',\n '[--cell-size:--spacing(8)]',\n 'in-data-[slot=card-content]:bg-transparent',\n 'in-data-[slot=popover-content]:bg-transparent',\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: date => date.toLocaleString('default', { month: 'short' }),\n ...formatters,\n }}\n classNames={{\n root: cn(defaultClassNames.root),\n months: cn('flex gap-4 flex-col md:flex-row relative', defaultClassNames.months),\n month: cn('flex flex-col w-full gap-4', defaultClassNames.month),\n nav: cn('flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between', defaultClassNames.nav),\n button_previous: cn(\n buttonVariants({ variant: 'outline', color: 'muted' }),\n 'size-(--cell-size) aria-disabled:opacity-50 p-0 select-none',\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: 'outline', color: 'muted' }),\n 'size-(--cell-size) aria-disabled:opacity-50 p-0 select-none',\n defaultClassNames.button_next\n ),\n month_caption: cn('flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)', defaultClassNames.month_caption),\n dropdowns: cn('w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5', defaultClassNames.dropdowns),\n dropdown_root: cn(\n 'relative has-focus:border-primary-strong border border-border-weak shadow-xs has-focus:ring-primary-weak has-focus:ring-[3px] rounded',\n defaultClassNames.dropdown_root\n ),\n dropdown: cn('absolute inset-0 opacity-0', defaultClassNames.dropdown),\n caption_label: cn(\n 'select-none font-medium',\n captionLayout === 'label' && 'text-sm',\n captionLayout !== 'label' && 'rounded shadow-xs px-2 flex items-center gap-0.5 text-sm h-8 [&>svg]:text-text-positive [&>svg]:size-3.5',\n defaultClassNames.caption_label\n ),\n table: 'w-full border-collapse',\n weekdays: cn('flex', defaultClassNames.weekdays),\n weekday: cn('text-text-positive rounded flex-1 font-normal text-[0.8rem] select-none', defaultClassNames.weekday),\n week: cn('flex w-full mt-2', defaultClassNames.week),\n week_number_header: cn('select-none w-(--cell-size)', defaultClassNames.week_number_header),\n week_number: cn('text-[0.8rem] select-none text-text-positive', defaultClassNames.week_number),\n day: cn(\n 'relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l [&:last-child[data-selected=true]_button]:rounded-r group/day aspect-square select-none',\n defaultClassNames.day\n ),\n range_start: cn('rounded-l bg-muted-muted', defaultClassNames.range_start),\n range_middle: cn('rounded-none', defaultClassNames.range_middle),\n range_end: cn('rounded-r bg-muted-muted', defaultClassNames.range_end),\n today: cn('bg-muted-muted text-text-positive rounded data-[selected=true]:rounded-none', defaultClassNames.today),\n outside: cn('[&>button]:text-text-positive-muted aria-selected:text-text-positive'),\n disabled: cn('bg-muted-muted text-text-positive opacity-50', defaultClassNames.disabled),\n hidden: cn('invisible', defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: CalendarRoot as CustomComponents['Root'],\n Chevron: CalendarChevron as CustomComponents['Chevron'],\n DayButton: CalendarDayButton as CustomComponents['DayButton'],\n WeekNumber: CalendarWeekNumber as CustomComponents['WeekNumber'],\n ...components,\n }}\n {...props}\n />\n );\n}\n\nexport { Calendar, CalendarDayButton };\n"],"mappings":"iSAYA,MAAM,GAAgB,CACpB,UACA,YACA,GAAG,MAII,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,WAAW,IAAK,EAAS,WAAA,EAAA,EAAA,IAAc,EAAU,CAAE,GAAI,GAAS,CAGlF,EAAmB,GACnB,EAAM,cAAgB,QACjB,EAAA,EAAA,KAACA,EAAAA,gBAAAA,CAAgB,KAAM,GAAI,UAAW,EAAM,UAAW,GAAI,GAAS,CAGzE,EAAM,cAAgB,SACjB,EAAA,EAAA,KAACC,EAAAA,iBAAAA,CAAiB,KAAM,GAAI,UAAW,EAAM,UAAW,GAAI,GAAS,EAGvE,EAAA,EAAA,KAACC,EAAAA,gBAAAA,CAAgB,KAAM,GAAI,UAAW,EAAM,UAAW,GAAI,GAAS,CAGvE,GAAqB,CAAE,YAAW,MAAK,YAAW,MAAO,EAAG,GAAG,KAAoD,CACvH,IAAM,GAAA,EAAA,EAAA,uBAA0C,CAE1C,GAAA,EAAA,EAAA,QAAgC,KAAK,CAK3C,OAJA,EAAA,EAAA,eAAgB,CACV,EAAU,SAAS,EAAI,SAAS,OAAO,EAC1C,CAAC,EAAU,QAAQ,CAAC,EAGrB,EAAA,EAAA,KAACC,EAAAA,OAAAA,CACM,MACL,QAAQ,QACR,MAAM,QACN,WAAU,EAAI,KAAK,oBAAoB,CACvC,uBAAsB,EAAU,UAAY,CAAC,EAAU,aAAe,CAAC,EAAU,WAAa,CAAC,EAAU,aACzG,mBAAkB,EAAU,YAC5B,iBAAgB,EAAU,UAC1B,oBAAmB,EAAU,aAC7B,WAAA,EAAA,EAAA,IACE,2FACA,yCACA,yCACA,0CACA,8CACA,2CACA,oDACA,mCACA,kDACA,sDACA,yCACA,qCACA,gCACA,kCACA,wCACA,kCACA,oCACA,uCACA,EAAkB,IAClB,EACD,CACD,GAAI,GACJ,EAIA,GAAsB,CAC1B,WACA,GAAG,MAKD,EAAA,EAAA,KAAC,KAAA,CAAG,GAAI,YACN,EAAA,EAAA,KAAC,MAAA,CAAI,UAAU,kEAAmE,YAAe,EAC9F,CAqBT,SAAS,EAAS,CAChB,YACA,aACA,kBAAkB,GAClB,gBAAgB,QAChB,gBAAgB,QAChB,aACA,aACA,GAAG,GAIF,CACD,IAAM,GAAA,EAAA,EAAA,uBAA0C,CAEhD,OACE,EAAA,EAAA,KAACC,EAAAA,UAAAA,CACkB,kBACjB,WAAA,EAAA,EAAA,IACE,mCACA,6BACA,6CACA,gDACA,OAAO,GAAG,4CACV,OAAO,GAAG,gDACV,EACD,CACc,gBACf,WAAY,CACV,oBAAqB,GAAQ,EAAK,eAAe,UAAW,CAAE,MAAO,QAAS,CAAC,CAC/E,GAAG,EACJ,CACD,WAAY,CACV,MAAA,EAAA,EAAA,IAAS,EAAkB,KAAK,CAChC,QAAA,EAAA,EAAA,IAAW,2CAA4C,EAAkB,OAAO,CAChF,OAAA,EAAA,EAAA,IAAU,6BAA8B,EAAkB,MAAM,CAChE,KAAA,EAAA,EAAA,IAAQ,0EAA2E,EAAkB,IAAI,CACzG,iBAAA,EAAA,EAAA,KAAA,EAAA,EAAA,gBACiB,CAAE,QAAS,UAAW,MAAO,QAAS,CAAC,CACtD,8DACA,EAAkB,gBACnB,CACD,aAAA,EAAA,EAAA,KAAA,EAAA,EAAA,gBACiB,CAAE,QAAS,UAAW,MAAO,QAAS,CAAC,CACtD,8DACA,EAAkB,YACnB,CACD,eAAA,EAAA,EAAA,IAAkB,2EAA4E,EAAkB,cAAc,CAC9H,WAAA,EAAA,EAAA,IAAc,sFAAuF,EAAkB,UAAU,CACjI,eAAA,EAAA,EAAA,IACE,wIACA,EAAkB,cACnB,CACD,UAAA,EAAA,EAAA,IAAa,6BAA8B,EAAkB,SAAS,CACtE,eAAA,EAAA,EAAA,IACE,0BACA,IAAkB,SAAW,UAC7B,IAAkB,SAAW,2GAC7B,EAAkB,cACnB,CACD,MAAO,yBACP,UAAA,EAAA,EAAA,IAAa,OAAQ,EAAkB,SAAS,CAChD,SAAA,EAAA,EAAA,IAAY,0EAA2E,EAAkB,QAAQ,CACjH,MAAA,EAAA,EAAA,IAAS,mBAAoB,EAAkB,KAAK,CACpD,oBAAA,EAAA,EAAA,IAAuB,8BAA+B,EAAkB,mBAAmB,CAC3F,aAAA,EAAA,EAAA,IAAgB,+CAAgD,EAAkB,YAAY,CAC9F,KAAA,EAAA,EAAA,IACE,sLACA,EAAkB,IACnB,CACD,aAAA,EAAA,EAAA,IAAgB,2BAA4B,EAAkB,YAAY,CAC1E,cAAA,EAAA,EAAA,IAAiB,eAAgB,EAAkB,aAAa,CAChE,WAAA,EAAA,EAAA,IAAc,2BAA4B,EAAkB,UAAU,CACtE,OAAA,EAAA,EAAA,IAAU,8EAA+E,EAAkB,MAAM,CACjH,SAAA,EAAA,EAAA,IAAY,uEAAuE,CACnF,UAAA,EAAA,EAAA,IAAa,+CAAgD,EAAkB,SAAS,CACxF,QAAA,EAAA,EAAA,IAAW,YAAa,EAAkB,OAAO,CACjD,GAAG,EACJ,CACD,WAAY,CACV,KAAM,EACN,QAAS,EACT,UAAW,EACX,WAAY,EACZ,GAAG,EACJ,CACD,GAAI,GACJ"}
@@ -1,5 +1,5 @@
1
- import { t as Button } from "../button-CRSezlCi.cjs";
2
- import * as react85 from "react";
1
+ import * as react77 from "react";
2
+ import { Button } from "@/components/ui/button";
3
3
  import { DayButton, DayPicker } from "react-day-picker";
4
4
 
5
5
  //#region packages/components/ui/calendar.d.ts
@@ -9,7 +9,7 @@ declare const CalendarDayButton: ({
9
9
  modifiers,
10
10
  color: _,
11
11
  ...props
12
- }: React.ComponentProps<typeof DayButton>) => react85.JSX.Element;
12
+ }: React.ComponentProps<typeof DayButton>) => react77.JSX.Element;
13
13
  /**
14
14
  * A fully styled date-picker calendar built on top of react-day-picker, supporting single, range, and multiple selection modes.
15
15
  *
@@ -39,7 +39,7 @@ declare function Calendar({
39
39
  }: React.ComponentProps<typeof DayPicker> & {
40
40
  /** Variant applied to the previous/next navigation buttons. */
41
41
  buttonVariant?: React.ComponentProps<typeof Button>['variant'];
42
- }): react85.JSX.Element;
42
+ }): react77.JSX.Element;
43
43
  //#endregion
44
44
  export { Calendar, CalendarDayButton };
45
45
  //# sourceMappingURL=calendar.d.cts.map
@@ -1,5 +1,5 @@
1
- import { t as Button } from "../button-DloFFxkz.js";
2
- import * as react295 from "react";
1
+ import * as react81 from "react";
2
+ import { Button } from "@/components/ui/button";
3
3
  import { DayButton, DayPicker } from "react-day-picker";
4
4
 
5
5
  //#region packages/components/ui/calendar.d.ts
@@ -9,7 +9,7 @@ declare const CalendarDayButton: ({
9
9
  modifiers,
10
10
  color: _,
11
11
  ...props
12
- }: React.ComponentProps<typeof DayButton>) => react295.JSX.Element;
12
+ }: React.ComponentProps<typeof DayButton>) => react81.JSX.Element;
13
13
  /**
14
14
  * A fully styled date-picker calendar built on top of react-day-picker, supporting single, range, and multiple selection modes.
15
15
  *
@@ -39,7 +39,7 @@ declare function Calendar({
39
39
  }: React.ComponentProps<typeof DayPicker> & {
40
40
  /** Variant applied to the previous/next navigation buttons. */
41
41
  buttonVariant?: React.ComponentProps<typeof Button>['variant'];
42
- }): react295.JSX.Element;
42
+ }): react81.JSX.Element;
43
43
  //#endregion
44
44
  export { Calendar, CalendarDayButton };
45
45
  //# sourceMappingURL=calendar.d.ts.map
@@ -1 +1,2 @@
1
- "use client";import"../button.variants-CoSpd71B.js";import"../button-LMMbL-uH.js";import{n as e,t}from"../calendar-DzPt7b6k.js";export{t as Calendar,e as CalendarDayButton};
1
+ "use client";import{ChevronDownIcon as e,ChevronLeftIcon as t,ChevronRightIcon as n}from"lucide-react";import{cn as r}from"@customafk/react-toolkit/utils";import{jsx as i}from"react/jsx-runtime";import{useEffect as a,useRef as o}from"react";import{Button as s}from"@/components/ui/button";import{buttonVariants as c}from"@/components/ui/button.variants";import{DayPicker as l,getDefaultClassNames as u}from"react-day-picker";const d=({rootRef:e,className:t,...n})=>i(`div`,{"data-slot":`calendar`,ref:e,className:r(t),...n}),f=r=>r.orientation===`left`?i(t,{size:16,className:r.className,...r}):r.orientation===`right`?i(n,{size:16,className:r.className,...r}):i(e,{size:16,className:r.className,...r}),p=({className:e,day:t,modifiers:n,color:c,...l})=>{let d=u(),f=o(null);return a(()=>{n.focused&&f.current?.focus()},[n.focused]),i(s,{ref:f,variant:`ghost`,color:`muted`,"data-day":t.date.toLocaleDateString(),"data-selected-single":n.selected&&!n.range_start&&!n.range_end&&!n.range_middle,"data-range-start":n.range_start,"data-range-end":n.range_end,"data-range-middle":n.range_middle,className:r(`flex aspect-square size-9 flex-col rounded font-normal text-sm tabular-nums leading-none`,`data-[selected-single=true]:bg-primary`,`data-[selected-single=true]:text-white`,`data-[range-middle=true]:bg-muted-muted`,`data-[range-middle=true]:text-text-positive`,`data-[range-start=true]:bg-primary-muted`,`data-[range-start=true]:text-text-positive-strong`,`data-[range-end=true]:bg-primary`,`data-[range-end=true]:text-text-positive-strong`,`group-data-[focused=true]/day:border-primary-strong`,`group-data-[focused=true]/day:relative`,`group-data-[focused=true]/day:z-10`,`data-[range-end=true]:rounded`,`data-[range-end=true]:rounded-r`,`data-[range-middle=true]:rounded-none`,`data-[range-start=true]:rounded`,`data-[range-start=true]:rounded-l`,`[&>span]:text-xs [&>span]:opacity-70`,d.day,e),...l})},m=({children:e,...t})=>i(`td`,{...t,children:i(`div`,{className:`flex size-(--cell-size) items-center justify-center text-center`,children:e})});function h({className:e,classNames:t,showOutsideDays:n=!0,captionLayout:a=`label`,buttonVariant:o=`ghost`,formatters:s,components:h,...g}){let _=u();return i(l,{showOutsideDays:n,className:r(`group/calendar bg-background p-3`,`[--cell-size:--spacing(8)]`,`in-data-[slot=card-content]:bg-transparent`,`in-data-[slot=popover-content]:bg-transparent`,String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,e),captionLayout:a,formatters:{formatMonthDropdown:e=>e.toLocaleString(`default`,{month:`short`}),...s},classNames:{root:r(_.root),months:r(`flex gap-4 flex-col md:flex-row relative`,_.months),month:r(`flex flex-col w-full gap-4`,_.month),nav:r(`flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between`,_.nav),button_previous:r(c({variant:`outline`,color:`muted`}),`size-(--cell-size) aria-disabled:opacity-50 p-0 select-none`,_.button_previous),button_next:r(c({variant:`outline`,color:`muted`}),`size-(--cell-size) aria-disabled:opacity-50 p-0 select-none`,_.button_next),month_caption:r(`flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)`,_.month_caption),dropdowns:r(`w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5`,_.dropdowns),dropdown_root:r(`relative has-focus:border-primary-strong border border-border-weak shadow-xs has-focus:ring-primary-weak has-focus:ring-[3px] rounded`,_.dropdown_root),dropdown:r(`absolute inset-0 opacity-0`,_.dropdown),caption_label:r(`select-none font-medium`,a===`label`&&`text-sm`,a!==`label`&&`rounded shadow-xs px-2 flex items-center gap-0.5 text-sm h-8 [&>svg]:text-text-positive [&>svg]:size-3.5`,_.caption_label),table:`w-full border-collapse`,weekdays:r(`flex`,_.weekdays),weekday:r(`text-text-positive rounded flex-1 font-normal text-[0.8rem] select-none`,_.weekday),week:r(`flex w-full mt-2`,_.week),week_number_header:r(`select-none w-(--cell-size)`,_.week_number_header),week_number:r(`text-[0.8rem] select-none text-text-positive`,_.week_number),day:r(`relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l [&:last-child[data-selected=true]_button]:rounded-r group/day aspect-square select-none`,_.day),range_start:r(`rounded-l bg-muted-muted`,_.range_start),range_middle:r(`rounded-none`,_.range_middle),range_end:r(`rounded-r bg-muted-muted`,_.range_end),today:r(`bg-muted-muted text-text-positive rounded data-[selected=true]:rounded-none`,_.today),outside:r(`[&>button]:text-text-positive-muted aria-selected:text-text-positive`),disabled:r(`bg-muted-muted text-text-positive opacity-50`,_.disabled),hidden:r(`invisible`,_.hidden),...t},components:{Root:d,Chevron:f,DayButton:p,WeekNumber:m,...h},...g})}export{h as Calendar,p as CalendarDayButton};
2
+ //# sourceMappingURL=calendar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar.js","names":[],"sources":["../../packages/components/ui/calendar.tsx"],"sourcesContent":["'use client';\nimport { type HTMLAttributes, type ThHTMLAttributes, useEffect, useRef } from 'react';\n\nimport { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Button } from '@/components/ui/button';\nimport { buttonVariants } from '@/components/ui/button.variants';\n\nimport { type CalendarWeek, type CustomComponents, type DayButton, DayPicker, getDefaultClassNames } from 'react-day-picker';\n\nconst CalendarRoot = ({\n rootRef,\n className,\n ...props\n}: {\n rootRef?: React.Ref<HTMLDivElement>;\n} & HTMLAttributes<HTMLDivElement>) => {\n return <div data-slot=\"calendar\" ref={rootRef} className={cn(className)} {...props} />;\n};\n\nconst CalendarChevron = (props: { className?: string; size?: number; disabled?: boolean; orientation?: 'up' | 'down' | 'left' | 'right' }) => {\n if (props.orientation === 'left') {\n return <ChevronLeftIcon size={16} className={props.className} {...props} />;\n }\n\n if (props.orientation === 'right') {\n return <ChevronRightIcon size={16} className={props.className} {...props} />;\n }\n\n return <ChevronDownIcon size={16} className={props.className} {...props} />;\n};\n\nconst CalendarDayButton = ({ className, day, modifiers, color: _, ...props }: React.ComponentProps<typeof DayButton>) => {\n const defaultClassNames = getDefaultClassNames();\n\n const ref = useRef<HTMLButtonElement>(null);\n useEffect(() => {\n if (modifiers.focused) ref.current?.focus();\n }, [modifiers.focused]);\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n color=\"muted\"\n data-day={day.date.toLocaleDateString()}\n data-selected-single={modifiers.selected && !modifiers.range_start && !modifiers.range_end && !modifiers.range_middle}\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n 'flex aspect-square size-9 flex-col rounded font-normal text-sm tabular-nums leading-none',\n 'data-[selected-single=true]:bg-primary',\n 'data-[selected-single=true]:text-white',\n 'data-[range-middle=true]:bg-muted-muted',\n 'data-[range-middle=true]:text-text-positive',\n 'data-[range-start=true]:bg-primary-muted',\n 'data-[range-start=true]:text-text-positive-strong',\n 'data-[range-end=true]:bg-primary',\n 'data-[range-end=true]:text-text-positive-strong',\n 'group-data-[focused=true]/day:border-primary-strong',\n 'group-data-[focused=true]/day:relative',\n 'group-data-[focused=true]/day:z-10',\n 'data-[range-end=true]:rounded',\n 'data-[range-end=true]:rounded-r',\n 'data-[range-middle=true]:rounded-none',\n 'data-[range-start=true]:rounded',\n 'data-[range-start=true]:rounded-l',\n '[&>span]:text-xs [&>span]:opacity-70',\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n );\n};\n\nconst CalendarWeekNumber = ({\n children,\n ...props\n}: {\n week: CalendarWeek;\n} & ThHTMLAttributes<HTMLTableCellElement>) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) items-center justify-center text-center\">{children}</div>\n </td>\n );\n};\n\n/**\n * A fully styled date-picker calendar built on top of react-day-picker, supporting single, range, and multiple selection modes.\n *\n * @example\n * ```tsx\n * import { Calendar } from '@customafk/lunas-ui/ui/calendar';\n *\n * const [date, setDate] = React.useState<Date>();\n *\n * <Calendar\n * mode=\"single\"\n * selected={date}\n * onSelect={setDate}\n * captionLayout=\"dropdown\"\n * />\n * ```\n */\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = 'label',\n buttonVariant = 'ghost',\n formatters,\n components,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n /** Variant applied to the previous/next navigation buttons. */\n buttonVariant?: React.ComponentProps<typeof Button>['variant'];\n}) {\n const defaultClassNames = getDefaultClassNames();\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n 'group/calendar bg-background p-3',\n '[--cell-size:--spacing(8)]',\n 'in-data-[slot=card-content]:bg-transparent',\n 'in-data-[slot=popover-content]:bg-transparent',\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: date => date.toLocaleString('default', { month: 'short' }),\n ...formatters,\n }}\n classNames={{\n root: cn(defaultClassNames.root),\n months: cn('flex gap-4 flex-col md:flex-row relative', defaultClassNames.months),\n month: cn('flex flex-col w-full gap-4', defaultClassNames.month),\n nav: cn('flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between', defaultClassNames.nav),\n button_previous: cn(\n buttonVariants({ variant: 'outline', color: 'muted' }),\n 'size-(--cell-size) aria-disabled:opacity-50 p-0 select-none',\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: 'outline', color: 'muted' }),\n 'size-(--cell-size) aria-disabled:opacity-50 p-0 select-none',\n defaultClassNames.button_next\n ),\n month_caption: cn('flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)', defaultClassNames.month_caption),\n dropdowns: cn('w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5', defaultClassNames.dropdowns),\n dropdown_root: cn(\n 'relative has-focus:border-primary-strong border border-border-weak shadow-xs has-focus:ring-primary-weak has-focus:ring-[3px] rounded',\n defaultClassNames.dropdown_root\n ),\n dropdown: cn('absolute inset-0 opacity-0', defaultClassNames.dropdown),\n caption_label: cn(\n 'select-none font-medium',\n captionLayout === 'label' && 'text-sm',\n captionLayout !== 'label' && 'rounded shadow-xs px-2 flex items-center gap-0.5 text-sm h-8 [&>svg]:text-text-positive [&>svg]:size-3.5',\n defaultClassNames.caption_label\n ),\n table: 'w-full border-collapse',\n weekdays: cn('flex', defaultClassNames.weekdays),\n weekday: cn('text-text-positive rounded flex-1 font-normal text-[0.8rem] select-none', defaultClassNames.weekday),\n week: cn('flex w-full mt-2', defaultClassNames.week),\n week_number_header: cn('select-none w-(--cell-size)', defaultClassNames.week_number_header),\n week_number: cn('text-[0.8rem] select-none text-text-positive', defaultClassNames.week_number),\n day: cn(\n 'relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l [&:last-child[data-selected=true]_button]:rounded-r group/day aspect-square select-none',\n defaultClassNames.day\n ),\n range_start: cn('rounded-l bg-muted-muted', defaultClassNames.range_start),\n range_middle: cn('rounded-none', defaultClassNames.range_middle),\n range_end: cn('rounded-r bg-muted-muted', defaultClassNames.range_end),\n today: cn('bg-muted-muted text-text-positive rounded data-[selected=true]:rounded-none', defaultClassNames.today),\n outside: cn('[&>button]:text-text-positive-muted aria-selected:text-text-positive'),\n disabled: cn('bg-muted-muted text-text-positive opacity-50', defaultClassNames.disabled),\n hidden: cn('invisible', defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: CalendarRoot as CustomComponents['Root'],\n Chevron: CalendarChevron as CustomComponents['Chevron'],\n DayButton: CalendarDayButton as CustomComponents['DayButton'],\n WeekNumber: CalendarWeekNumber as CustomComponents['WeekNumber'],\n ...components,\n }}\n {...props}\n />\n );\n}\n\nexport { Calendar, CalendarDayButton };\n"],"mappings":"yaAYA,MAAM,GAAgB,CACpB,UACA,YACA,GAAG,KAII,EAAC,MAAA,CAAI,YAAU,WAAW,IAAK,EAAS,UAAW,EAAG,EAAU,CAAE,GAAI,GAAS,CAGlF,EAAmB,GACnB,EAAM,cAAgB,OACjB,EAAC,EAAA,CAAgB,KAAM,GAAI,UAAW,EAAM,UAAW,GAAI,GAAS,CAGzE,EAAM,cAAgB,QACjB,EAAC,EAAA,CAAiB,KAAM,GAAI,UAAW,EAAM,UAAW,GAAI,GAAS,CAGvE,EAAC,EAAA,CAAgB,KAAM,GAAI,UAAW,EAAM,UAAW,GAAI,GAAS,CAGvE,GAAqB,CAAE,YAAW,MAAK,YAAW,MAAO,EAAG,GAAG,KAAoD,CACvH,IAAM,EAAoB,GAAsB,CAE1C,EAAM,EAA0B,KAAK,CAK3C,OAJA,MAAgB,CACV,EAAU,SAAS,EAAI,SAAS,OAAO,EAC1C,CAAC,EAAU,QAAQ,CAAC,CAGrB,EAAC,EAAA,CACM,MACL,QAAQ,QACR,MAAM,QACN,WAAU,EAAI,KAAK,oBAAoB,CACvC,uBAAsB,EAAU,UAAY,CAAC,EAAU,aAAe,CAAC,EAAU,WAAa,CAAC,EAAU,aACzG,mBAAkB,EAAU,YAC5B,iBAAgB,EAAU,UAC1B,oBAAmB,EAAU,aAC7B,UAAW,EACT,2FACA,yCACA,yCACA,0CACA,8CACA,2CACA,oDACA,mCACA,kDACA,sDACA,yCACA,qCACA,gCACA,kCACA,wCACA,kCACA,oCACA,uCACA,EAAkB,IAClB,EACD,CACD,GAAI,GACJ,EAIA,GAAsB,CAC1B,WACA,GAAG,KAKD,EAAC,KAAA,CAAG,GAAI,WACN,EAAC,MAAA,CAAI,UAAU,kEAAmE,YAAe,EAC9F,CAqBT,SAAS,EAAS,CAChB,YACA,aACA,kBAAkB,GAClB,gBAAgB,QAChB,gBAAgB,QAChB,aACA,aACA,GAAG,GAIF,CACD,IAAM,EAAoB,GAAsB,CAEhD,OACE,EAAC,EAAA,CACkB,kBACjB,UAAW,EACT,mCACA,6BACA,6CACA,gDACA,OAAO,GAAG,4CACV,OAAO,GAAG,gDACV,EACD,CACc,gBACf,WAAY,CACV,oBAAqB,GAAQ,EAAK,eAAe,UAAW,CAAE,MAAO,QAAS,CAAC,CAC/E,GAAG,EACJ,CACD,WAAY,CACV,KAAM,EAAG,EAAkB,KAAK,CAChC,OAAQ,EAAG,2CAA4C,EAAkB,OAAO,CAChF,MAAO,EAAG,6BAA8B,EAAkB,MAAM,CAChE,IAAK,EAAG,0EAA2E,EAAkB,IAAI,CACzG,gBAAiB,EACf,EAAe,CAAE,QAAS,UAAW,MAAO,QAAS,CAAC,CACtD,8DACA,EAAkB,gBACnB,CACD,YAAa,EACX,EAAe,CAAE,QAAS,UAAW,MAAO,QAAS,CAAC,CACtD,8DACA,EAAkB,YACnB,CACD,cAAe,EAAG,2EAA4E,EAAkB,cAAc,CAC9H,UAAW,EAAG,sFAAuF,EAAkB,UAAU,CACjI,cAAe,EACb,wIACA,EAAkB,cACnB,CACD,SAAU,EAAG,6BAA8B,EAAkB,SAAS,CACtE,cAAe,EACb,0BACA,IAAkB,SAAW,UAC7B,IAAkB,SAAW,2GAC7B,EAAkB,cACnB,CACD,MAAO,yBACP,SAAU,EAAG,OAAQ,EAAkB,SAAS,CAChD,QAAS,EAAG,0EAA2E,EAAkB,QAAQ,CACjH,KAAM,EAAG,mBAAoB,EAAkB,KAAK,CACpD,mBAAoB,EAAG,8BAA+B,EAAkB,mBAAmB,CAC3F,YAAa,EAAG,+CAAgD,EAAkB,YAAY,CAC9F,IAAK,EACH,sLACA,EAAkB,IACnB,CACD,YAAa,EAAG,2BAA4B,EAAkB,YAAY,CAC1E,aAAc,EAAG,eAAgB,EAAkB,aAAa,CAChE,UAAW,EAAG,2BAA4B,EAAkB,UAAU,CACtE,MAAO,EAAG,8EAA+E,EAAkB,MAAM,CACjH,QAAS,EAAG,uEAAuE,CACnF,SAAU,EAAG,+CAAgD,EAAkB,SAAS,CACxF,OAAQ,EAAG,YAAa,EAAkB,OAAO,CACjD,GAAG,EACJ,CACD,WAAY,CACV,KAAM,EACN,QAAS,EACT,UAAW,EACX,WAAY,EACZ,GAAG,EACJ,CACD,GAAI,GACJ"}
package/dist/ui/card.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use client";const e=require(`../chunk-350yNsax.cjs`),t=require(`../heading-tGTqk3pA.cjs`),n=require(`../paragraph-DvTZvbzw.cjs`);let r=require(`@customafk/react-toolkit/utils`),i=require(`react/jsx-runtime`);function a({className:e,...t}){return(0,i.jsx)(`div`,{"data-slot":`card`,className:(0,r.cn)(`flex flex-col gap-6 rounded-lg border border-border bg-card py-6 text-text-positive shadow-card`,`transition-[box-shadow,opacity] duration-150 ease-in-out`,`data-[interactive=true]:cursor-pointer`,`data-[interactive=true]:hover:shadow-dropdown`,`data-[interactive=true]:focus-visible:outline-none data-[interactive=true]:focus-visible:ring-2 data-[interactive=true]:focus-visible:ring-ring data-[interactive=true]:focus-visible:ring-offset-2`,`data-[interactive=true]:active:opacity-90`,e),...t})}function o({className:e,...t}){return(0,i.jsx)(`div`,{"data-slot":`card-header`,className:(0,r.cn)(`@container/card-header`,`grid auto-rows-min grid-rows-[auto_auto]`,`items-start gap-1.5 px-6 text-text-positive-strong`,`has-data-[slot=card-action]:grid-cols-[1fr_auto]`,`[.border-b]:pb-6`,e),...t})}function s({className:e,...n}){return(0,i.jsx)(`div`,{"data-slot":`card-title`,className:(0,r.cn)(t.t({level:`h3`}),e),...n})}function c({className:e,...t}){return(0,i.jsx)(`div`,{"data-slot":`card-description`,className:(0,r.cn)(n.n({variant:`muted`}),e),...t})}function l({className:e,...t}){return(0,i.jsx)(`div`,{"data-slot":`card-action`,className:(0,r.cn)(`col-start-2 row-span-2 row-start-1 self-start justify-self-end`,e),...t})}function u({className:e,...t}){return(0,i.jsx)(`div`,{"data-slot":`card-content`,className:(0,r.cn)(`px-6 text-sm`,e),...t})}function d({className:e,...t}){return(0,i.jsx)(`div`,{"data-slot":`card-footer`,className:(0,r.cn)(`flex items-center px-6 text-sm [.border-t]:pt-6`,e),...t})}exports.Card=a,exports.CardAction=l,exports.CardContent=u,exports.CardDescription=c,exports.CardFooter=d,exports.CardHeader=o,exports.CardTitle=s;
1
+ "use client";const e=require(`../chunk-Bmb41Sf3.cjs`),t=require(`../heading-BX7ZVnVg.cjs`),n=require(`../paragraph-D0x3Jc6W.cjs`);let r=require(`@customafk/react-toolkit/utils`),i=require(`react/jsx-runtime`);function a({className:e,...t}){return(0,i.jsx)(`div`,{"data-slot":`card`,className:(0,r.cn)(`flex flex-col gap-6 rounded-lg border border-border bg-card py-6 text-text-positive shadow-card`,`transition-[box-shadow,opacity] duration-150 ease-in-out`,`data-[interactive=true]:cursor-pointer`,`data-[interactive=true]:hover:shadow-dropdown`,`data-[interactive=true]:focus-visible:outline-none data-[interactive=true]:focus-visible:ring-2 data-[interactive=true]:focus-visible:ring-ring data-[interactive=true]:focus-visible:ring-offset-2`,`data-[interactive=true]:active:opacity-90`,e),...t})}function o({className:e,...t}){return(0,i.jsx)(`div`,{"data-slot":`card-header`,className:(0,r.cn)(`@container/card-header`,`grid auto-rows-min grid-rows-[auto_auto]`,`items-start gap-1.5 px-6 text-text-positive-strong`,`has-data-[slot=card-action]:grid-cols-[1fr_auto]`,`[.border-b]:pb-6`,e),...t})}function s({className:e,...n}){return(0,i.jsx)(`div`,{"data-slot":`card-title`,className:(0,r.cn)(t.t({level:`h3`}),e),...n})}function c({className:e,...t}){return(0,i.jsx)(`div`,{"data-slot":`card-description`,className:(0,r.cn)(n.n({variant:`muted`}),e),...t})}function l({className:e,...t}){return(0,i.jsx)(`div`,{"data-slot":`card-action`,className:(0,r.cn)(`col-start-2 row-span-2 row-start-1 self-start justify-self-end`,e),...t})}function u({className:e,...t}){return(0,i.jsx)(`div`,{"data-slot":`card-content`,className:(0,r.cn)(`px-6 text-sm`,e),...t})}function d({className:e,...t}){return(0,i.jsx)(`div`,{"data-slot":`card-footer`,className:(0,r.cn)(`flex items-center px-6 text-sm [.border-t]:pt-6`,e),...t})}exports.Card=a,exports.CardAction=l,exports.CardContent=u,exports.CardDescription=c,exports.CardFooter=d,exports.CardHeader=o,exports.CardTitle=s;
2
2
  //# sourceMappingURL=card.cjs.map