@customafk/lunas-ui 0.2.32 → 0.2.34

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 (369) hide show
  1. package/dist/{alert-CqRM6LFa.d.cts → alert-BFLT5Jqg.d.cts} +7 -7
  2. package/dist/{alert-BC5Nss8t.mjs → alert-BbInRLt4.mjs} +1 -1
  3. package/dist/{alert-BC5Nss8t.mjs.map → alert-BbInRLt4.mjs.map} +1 -1
  4. package/dist/{alert-hSQjkSHn.d.mts → alert-DmaYqfy7.d.mts} +7 -7
  5. package/dist/{avatar-CK1R4r0j.mjs → avatar-1SuFoI5h.mjs} +1 -1
  6. package/dist/{avatar-CK1R4r0j.mjs.map → avatar-1SuFoI5h.mjs.map} +1 -1
  7. package/dist/{badge-utjRo-lW.mjs → badge-Bhbhmsic.mjs} +1 -1
  8. package/dist/{badge-utjRo-lW.mjs.map → badge-Bhbhmsic.mjs.map} +1 -1
  9. package/dist/{badge-BNlMwt54.d.mts → badge-CSMgaMwT.d.cts} +8 -8
  10. package/dist/{badge-BXCkfLW0.d.cts → badge-Dxewfuj8.d.mts} +8 -8
  11. package/dist/{button-BqxBQ4Kr.mjs → button-CfPTDyoq.mjs} +2 -2
  12. package/dist/{button-BqxBQ4Kr.mjs.map → button-CfPTDyoq.mjs.map} +1 -1
  13. package/dist/{button-DhUjRe5e.d.mts → button-DeBpvNFE.d.mts} +8 -8
  14. package/dist/{button-xc_1ixgJ.d.cts → button-soF3CKai.d.cts} +8 -8
  15. package/dist/{button.variants-CwcJHcI5.mjs → button.variants-B8aRZ52K.mjs} +1 -1
  16. package/dist/{button.variants-CwcJHcI5.mjs.map → button.variants-B8aRZ52K.mjs.map} +1 -1
  17. package/dist/{calendar-D8aRFw_F.mjs → calendar-CqeVe3HO.mjs} +2 -2
  18. package/dist/{calendar-D8aRFw_F.mjs.map → calendar-CqeVe3HO.mjs.map} +1 -1
  19. package/dist/cards/grid-product-card.mjs +1 -1
  20. package/dist/cards/product-card.mjs +1 -1
  21. package/dist/cards/simple-card.mjs +1 -1
  22. package/dist/{checkbox-CJsl9OjF.mjs → checkbox-CrZ80dV_.mjs} +1 -1
  23. package/dist/{checkbox-CJsl9OjF.mjs.map → checkbox-CrZ80dV_.mjs.map} +1 -1
  24. package/dist/{close-BMhGSmGs.mjs → close-DTBepcqW.mjs} +1 -1
  25. package/dist/{close-BMhGSmGs.mjs.map → close-DTBepcqW.mjs.map} +1 -1
  26. package/dist/{cms-layout-DHzRHAoI.mjs → cms-layout-BvaYr6rb.mjs} +2 -2
  27. package/dist/{cms-layout-DHzRHAoI.mjs.map → cms-layout-BvaYr6rb.mjs.map} +1 -1
  28. package/dist/{command-CTdjZi1F.cjs → command-B7DO73K0.cjs} +2 -2
  29. package/dist/{command-CTdjZi1F.cjs.map → command-B7DO73K0.cjs.map} +1 -1
  30. package/dist/{command-Bvauothg.mjs → command-YngzaaGP.mjs} +2 -2
  31. package/dist/{command-Bvauothg.mjs.map → command-YngzaaGP.mjs.map} +1 -1
  32. package/dist/data-display/country.d.cts +1 -1
  33. package/dist/data-display/country.d.mts +1 -1
  34. package/dist/data-display/country.mjs +1 -1
  35. package/dist/data-display/date-tooltip.mjs +1 -1
  36. package/dist/data-display/date.mjs +1 -1
  37. package/dist/data-display/name.mjs +1 -1
  38. package/dist/data-display/phone-number.mjs +1 -1
  39. package/dist/data-display/role-badge.d.cts +1 -1
  40. package/dist/data-display/role-badge.d.mts +1 -1
  41. package/dist/data-display/role-badge.mjs +1 -1
  42. package/dist/data-display/statistic.d.cts +4 -4
  43. package/dist/data-display/statistic.d.mts +6 -6
  44. package/dist/data-display/user.mjs +1 -1
  45. package/dist/{date-BQ0c19uk.mjs → date-CFgc7pK3.mjs} +1 -1
  46. package/dist/{date-BQ0c19uk.mjs.map → date-CFgc7pK3.mjs.map} +1 -1
  47. package/dist/{dialog-gZTogunf.d.cts → dialog-BQTnKhUH.d.cts} +12 -12
  48. package/dist/dialog-Bly2YImt.mjs +2 -0
  49. package/dist/dialog-Bly2YImt.mjs.map +1 -0
  50. package/dist/{dialog-KxgG7gFA.d.mts → dialog-DDiSHKlc.d.mts} +12 -12
  51. package/dist/dialog-DhO0dkO3.cjs +2 -0
  52. package/dist/dialog-DhO0dkO3.cjs.map +1 -0
  53. package/dist/dialogs/confirm-dialog.mjs +1 -1
  54. package/dist/dialogs/detail-dialog/components/sidebar.d.cts +27 -27
  55. package/dist/dialogs/detail-dialog/components/sidebar.d.mts +2 -2
  56. package/dist/dialogs/detail-dialog/components/sidebar.mjs +1 -1
  57. package/dist/dialogs/detail-dialog/index.mjs +1 -1
  58. package/dist/dialogs/error-dialog.mjs +1 -1
  59. package/dist/dialogs/loading-dialog.cjs +1 -1
  60. package/dist/dialogs/loading-dialog.mjs +1 -1
  61. package/dist/{dist-DdGJ50nX.mjs → dist-BQGL-YKY.mjs} +1 -1
  62. package/dist/{dist-DdGJ50nX.mjs.map → dist-BQGL-YKY.mjs.map} +1 -1
  63. package/dist/{drawer-j9wcVE50.mjs → drawer-B3GpKBZs.mjs} +1 -1
  64. package/dist/{drawer-j9wcVE50.mjs.map → drawer-B3GpKBZs.mjs.map} +1 -1
  65. package/dist/{dropdown-menu-B_uBxY94.mjs → dropdown-menu-BjckWIZH.mjs} +1 -1
  66. package/dist/{dropdown-menu-B_uBxY94.mjs.map → dropdown-menu-BjckWIZH.mjs.map} +1 -1
  67. package/dist/features/descriptions/index.d.cts +7 -7
  68. package/dist/features/descriptions/index.d.mts +7 -7
  69. package/dist/features/descriptions/index.mjs +1 -1
  70. package/dist/features/search-modal/index.cjs +1 -1
  71. package/dist/features/search-modal/index.d.cts +2 -2
  72. package/dist/features/search-modal/index.d.mts +2 -2
  73. package/dist/features/search-modal/index.mjs +1 -1
  74. package/dist/features/tables/index.cjs +1 -1
  75. package/dist/features/tables/index.d.cts +1 -1
  76. package/dist/features/tables/index.d.mts +2 -2
  77. package/dist/features/tables/index.mjs +1 -1
  78. package/dist/features/tanstack-form/index.cjs +1 -1
  79. package/dist/features/tanstack-form/index.d.cts +1 -1
  80. package/dist/features/tanstack-form/index.d.mts +1 -1
  81. package/dist/features/tanstack-form/index.mjs +1 -1
  82. package/dist/features/text-editor/index.d.cts +1 -1
  83. package/dist/features/text-editor/index.d.mts +1 -1
  84. package/dist/features/text-editor/index.mjs +1 -1
  85. package/dist/{field-B8RhxRCu.mjs → field-0SZIwI1Q.mjs} +2 -2
  86. package/dist/{field-B8RhxRCu.mjs.map → field-0SZIwI1Q.mjs.map} +1 -1
  87. package/dist/{field-BxFpcOV1.cjs → field-ThrHQOAI.cjs} +2 -2
  88. package/dist/{field-BxFpcOV1.cjs.map → field-ThrHQOAI.cjs.map} +1 -1
  89. package/dist/{flex-Bl5yzx6g.mjs → flex-BAcvp4lB.mjs} +1 -1
  90. package/dist/{flex-Bl5yzx6g.mjs.map → flex-BAcvp4lB.mjs.map} +1 -1
  91. package/dist/{heading-B1t9baTw.mjs → heading-woRh-IC7.mjs} +1 -1
  92. package/dist/{heading-B1t9baTw.mjs.map → heading-woRh-IC7.mjs.map} +1 -1
  93. package/dist/{image-C4gMBmyV.mjs → image-D2U1SBw5.mjs} +2 -2
  94. package/dist/{image-C4gMBmyV.mjs.map → image-D2U1SBw5.mjs.map} +1 -1
  95. package/dist/{index-DMUr1T2A.d.cts → index-B4tGZDYR.d.cts} +6 -6
  96. package/dist/{index-WCk8mTXV.d.mts → index-BFFBdGdv.d.mts} +361 -361
  97. package/dist/{index-cSJtvD9W.d.mts → index-BUi04v_-.d.mts} +6 -6
  98. package/dist/{index-22flsTNt.d.cts → index-Btd0a1HO.d.cts} +28 -28
  99. package/dist/{index-DDPBbVVt.d.cts → index-Cvjgsouk.d.cts} +361 -361
  100. package/dist/{index-DdqgMofm.d.mts → index-DWJlXfCi.d.mts} +28 -28
  101. package/dist/index.cjs +1 -1
  102. package/dist/index.d.cts +9 -10
  103. package/dist/index.d.mts +9 -10
  104. package/dist/index.mjs +1 -1
  105. package/dist/{input-CEYWz7lS.d.cts → input-DHBWjFPA.d.cts} +7 -7
  106. package/dist/{input-CKFQdvqY.mjs → input-ESg91VId.mjs} +1 -1
  107. package/dist/{input-CKFQdvqY.mjs.map → input-ESg91VId.mjs.map} +1 -1
  108. package/dist/{input-BILuHVfC.d.mts → input-wQP8YLOp.d.mts} +7 -7
  109. package/dist/{label-BHbqbBtO.cjs → label-BzfsTrVt.cjs} +1 -1
  110. package/dist/{label-BHbqbBtO.cjs.map → label-BzfsTrVt.cjs.map} +1 -1
  111. package/dist/{label-CE2m0U_j.mjs → label-Cig7a9ON.mjs} +1 -1
  112. package/dist/{label-CE2m0U_j.mjs.map → label-Cig7a9ON.mjs.map} +1 -1
  113. package/dist/layouts/cms-layout/index.mjs +1 -1
  114. package/dist/layouts/flex.d.cts +10 -10
  115. package/dist/layouts/flex.d.mts +10 -10
  116. package/dist/layouts/flex.mjs +1 -1
  117. package/dist/layouts/payment-layout/index.cjs +1 -1
  118. package/dist/layouts/payment-layout/index.d.cts +3 -0
  119. package/dist/layouts/payment-layout/index.d.mts +3 -0
  120. package/dist/layouts/payment-layout/index.mjs +1 -1
  121. package/dist/pages/FeatureDeveloping.d.cts +2 -2
  122. package/dist/pages/FeatureDeveloping.d.mts +2 -2
  123. package/dist/pages/FeatureDeveloping.mjs +1 -1
  124. package/dist/pages/FeatureFixing.d.cts +2 -2
  125. package/dist/pages/FeatureFixing.d.mts +2 -2
  126. package/dist/pages/FeatureFixing.mjs +1 -1
  127. package/dist/pages/LoginPage.cjs +1 -1
  128. package/dist/pages/LoginPage.d.cts +2 -2
  129. package/dist/pages/LoginPage.d.mts +2 -2
  130. package/dist/pages/LoginPage.mjs +1 -1
  131. package/dist/pages/NotAuthorized.d.cts +2 -2
  132. package/dist/pages/NotAuthorized.d.mts +2 -2
  133. package/dist/pages/NotAuthorized.mjs +1 -1
  134. package/dist/pages/NotFound.d.cts +2 -2
  135. package/dist/pages/NotFound.d.mts +2 -2
  136. package/dist/pages/NotFound.mjs +1 -1
  137. package/dist/pages/RegisterPage.cjs +1 -1
  138. package/dist/pages/RegisterPage.d.cts +2 -2
  139. package/dist/pages/RegisterPage.d.mts +2 -2
  140. package/dist/pages/RegisterPage.mjs +1 -1
  141. package/dist/pages/VerifyEmailPage.cjs +1 -1
  142. package/dist/pages/VerifyEmailPage.d.cts +2 -2
  143. package/dist/pages/VerifyEmailPage.d.mts +2 -2
  144. package/dist/pages/VerifyEmailPage.mjs +1 -1
  145. package/dist/{paragraph-J_QbLq9_.mjs → paragraph-CjstaJFj.mjs} +1 -1
  146. package/dist/{paragraph-J_QbLq9_.mjs.map → paragraph-CjstaJFj.mjs.map} +1 -1
  147. package/dist/{payment-layout-CafCw6lS.mjs → payment-layout-Bd4B4jhp.mjs} +2 -2
  148. package/dist/payment-layout-Bd4B4jhp.mjs.map +1 -0
  149. package/dist/{payment-layout-BkSC6JkI.cjs → payment-layout-kh0lLq71.cjs} +2 -2
  150. package/dist/payment-layout-kh0lLq71.cjs.map +1 -0
  151. package/dist/{popover-BCzVvfnV.mjs → popover-BXktOcLz.mjs} +2 -2
  152. package/dist/{popover-BCzVvfnV.mjs.map → popover-BXktOcLz.mjs.map} +1 -1
  153. package/dist/{popover-Bnrgg4do.cjs → popover-DACS7x0e.cjs} +1 -1
  154. package/dist/{popover-Bnrgg4do.cjs.map → popover-DACS7x0e.cjs.map} +1 -1
  155. package/dist/{progress-BcEEbgJJ.mjs → progress-bJYAFoHE.mjs} +1 -1
  156. package/dist/{progress-BcEEbgJJ.mjs.map → progress-bJYAFoHE.mjs.map} +1 -1
  157. package/dist/{radio-group-KR6Ck-B9.mjs → radio-group-CTILro-C.mjs} +1 -1
  158. package/dist/{radio-group-KR6Ck-B9.mjs.map → radio-group-CTILro-C.mjs.map} +1 -1
  159. package/dist/{resizable-em2svgMz.mjs → resizable-BNYc7hFd.mjs} +1 -1
  160. package/dist/{resizable-em2svgMz.mjs.map → resizable-BNYc7hFd.mjs.map} +1 -1
  161. package/dist/{search-modal-zmavzZRx.cjs → search-modal-CsYUvnWi.cjs} +2 -2
  162. package/dist/{search-modal-zmavzZRx.cjs.map → search-modal-CsYUvnWi.cjs.map} +1 -1
  163. package/dist/{search-modal-DyOsqK-4.mjs → search-modal-D4ESSOU-.mjs} +2 -2
  164. package/dist/{search-modal-DyOsqK-4.mjs.map → search-modal-D4ESSOU-.mjs.map} +1 -1
  165. package/dist/{select-DHiTqZeX.cjs → select-D0m78xbd.cjs} +1 -1
  166. package/dist/{select-DHiTqZeX.cjs.map → select-D0m78xbd.cjs.map} +1 -1
  167. package/dist/{select-C2Ro2wmj.mjs → select-DMGFb8TB.mjs} +1 -1
  168. package/dist/{select-C2Ro2wmj.mjs.map → select-DMGFb8TB.mjs.map} +1 -1
  169. package/dist/{separator-yTKDuMWb.mjs → separator-DVaVWuNc.mjs} +1 -1
  170. package/dist/{separator-yTKDuMWb.mjs.map → separator-DVaVWuNc.mjs.map} +1 -1
  171. package/dist/{sheet-DDBCHwn6.mjs → sheet-BoulTUHV.mjs} +1 -1
  172. package/dist/{sheet-DDBCHwn6.mjs.map → sheet-BoulTUHV.mjs.map} +1 -1
  173. package/dist/{sidebar-De1RZMAG.mjs → sidebar-xWo_Rfi-.mjs} +2 -2
  174. package/dist/{sidebar-De1RZMAG.mjs.map → sidebar-xWo_Rfi-.mjs.map} +1 -1
  175. package/dist/{skeleton-Czl96pWA.mjs → skeleton-DupQ91XW.mjs} +1 -1
  176. package/dist/{skeleton-Czl96pWA.mjs.map → skeleton-DupQ91XW.mjs.map} +1 -1
  177. package/dist/{spinner-CWUvnJQw.mjs → spinner-C2tF8jQt.mjs} +1 -1
  178. package/dist/{spinner-CWUvnJQw.mjs.map → spinner-C2tF8jQt.mjs.map} +1 -1
  179. package/dist/{switch-DHsjxnFP.mjs → switch-CY25L6l0.mjs} +1 -1
  180. package/dist/{switch-DHsjxnFP.mjs.map → switch-CY25L6l0.mjs.map} +1 -1
  181. package/dist/tables-BvdD0_el.mjs +4 -0
  182. package/dist/{tables-BQ-QiA1V.mjs.map → tables-BvdD0_el.mjs.map} +1 -1
  183. package/dist/{tables-LRWPOv2a.cjs → tables-D1SMzDFu.cjs} +2 -2
  184. package/dist/{tables-LRWPOv2a.cjs.map → tables-D1SMzDFu.cjs.map} +1 -1
  185. package/dist/{tanstack-form-Be6aIYAW.mjs → tanstack-form-Bof1jeRB.mjs} +2 -2
  186. package/dist/{tanstack-form-Be6aIYAW.mjs.map → tanstack-form-Bof1jeRB.mjs.map} +1 -1
  187. package/dist/{tanstack-form-CDgTokmf.cjs → tanstack-form-BulYI2bY.cjs} +2 -2
  188. package/dist/{tanstack-form-CDgTokmf.cjs.map → tanstack-form-BulYI2bY.cjs.map} +1 -1
  189. package/dist/{text-editor-CqC44BkO.mjs → text-editor-D61C1dng.mjs} +1 -1
  190. package/dist/{text-editor-CqC44BkO.mjs.map → text-editor-D61C1dng.mjs.map} +1 -1
  191. package/dist/{textarea-D0-Gltw6.mjs → textarea-B8eQoQaZ.mjs} +1 -1
  192. package/dist/{textarea-D0-Gltw6.mjs.map → textarea-B8eQoQaZ.mjs.map} +1 -1
  193. package/dist/{tooltip-BMdzWaaH.mjs → tooltip-BfBJRYpc.mjs} +1 -1
  194. package/dist/{tooltip-BMdzWaaH.mjs.map → tooltip-BfBJRYpc.mjs.map} +1 -1
  195. package/dist/{types-CuAlMviO.mjs → types-CFXgrpTm.mjs} +1 -1
  196. package/dist/{types-CuAlMviO.mjs.map → types-CFXgrpTm.mjs.map} +1 -1
  197. package/dist/{types-B2PQbMJL.d.mts → types-Cc_mLRAn.d.cts} +1 -1
  198. package/dist/{types-CLkAmCre.d.cts → types-DmTyKdm7.d.mts} +1 -1
  199. package/dist/typography/paragraph.d.cts +5 -5
  200. package/dist/typography/paragraph.d.mts +5 -5
  201. package/dist/typography/paragraph.mjs +1 -1
  202. package/dist/ui/alert-dialog.d.cts +12 -12
  203. package/dist/ui/alert-dialog.d.mts +12 -12
  204. package/dist/ui/alert-dialog.mjs +1 -1
  205. package/dist/ui/alert.d.cts +1 -1
  206. package/dist/ui/alert.d.mts +1 -1
  207. package/dist/ui/alert.mjs +1 -1
  208. package/dist/ui/aspect-ratio.d.cts +2 -2
  209. package/dist/ui/aspect-ratio.d.mts +2 -2
  210. package/dist/ui/avatar.d.cts +4 -4
  211. package/dist/ui/avatar.d.mts +4 -4
  212. package/dist/ui/avatar.mjs +1 -1
  213. package/dist/ui/badge.d.cts +1 -1
  214. package/dist/ui/badge.d.mts +1 -1
  215. package/dist/ui/badge.mjs +1 -1
  216. package/dist/ui/breadcrumb.d.cts +8 -8
  217. package/dist/ui/breadcrumb.d.mts +8 -8
  218. package/dist/ui/breadcrumb.mjs +1 -1
  219. package/dist/ui/button-group.d.cts +6 -6
  220. package/dist/ui/button-group.d.mts +6 -6
  221. package/dist/ui/button-group.mjs +1 -1
  222. package/dist/ui/button.d.cts +1 -1
  223. package/dist/ui/button.d.mts +1 -1
  224. package/dist/ui/button.mjs +1 -1
  225. package/dist/ui/buttons/add-new.mjs +1 -1
  226. package/dist/ui/buttons/edit.mjs +1 -1
  227. package/dist/ui/buttons/refresh.mjs +1 -1
  228. package/dist/ui/buttons/trash.mjs +1 -1
  229. package/dist/ui/buttons/upload-image.mjs +1 -1
  230. package/dist/ui/calendar.d.cts +4 -4
  231. package/dist/ui/calendar.d.mts +4 -4
  232. package/dist/ui/calendar.mjs +1 -1
  233. package/dist/ui/card.d.cts +8 -8
  234. package/dist/ui/card.d.mts +8 -8
  235. package/dist/ui/card.mjs +1 -1
  236. package/dist/ui/carousel.d.cts +7 -7
  237. package/dist/ui/carousel.d.mts +7 -7
  238. package/dist/ui/carousel.mjs +1 -1
  239. package/dist/ui/checkbox.d.cts +2 -2
  240. package/dist/ui/checkbox.d.mts +2 -2
  241. package/dist/ui/checkbox.mjs +1 -1
  242. package/dist/ui/collapsible.d.cts +4 -4
  243. package/dist/ui/collapsible.d.mts +4 -4
  244. package/dist/ui/command.cjs +1 -1
  245. package/dist/ui/command.d.cts +11 -11
  246. package/dist/ui/command.d.mts +11 -11
  247. package/dist/ui/command.mjs +1 -1
  248. package/dist/ui/context-menu.d.cts +16 -16
  249. package/dist/ui/context-menu.d.mts +16 -16
  250. package/dist/ui/dialog.cjs +1 -1
  251. package/dist/ui/dialog.d.cts +1 -1
  252. package/dist/ui/dialog.d.mts +1 -1
  253. package/dist/ui/dialog.mjs +1 -1
  254. package/dist/ui/drawer.d.cts +11 -11
  255. package/dist/ui/drawer.d.mts +11 -11
  256. package/dist/ui/drawer.mjs +1 -1
  257. package/dist/ui/dropdown-menu.d.cts +16 -16
  258. package/dist/ui/dropdown-menu.d.mts +16 -16
  259. package/dist/ui/dropdown-menu.mjs +1 -1
  260. package/dist/ui/empty.d.cts +9 -9
  261. package/dist/ui/empty.d.mts +9 -9
  262. package/dist/ui/field.cjs +1 -1
  263. package/dist/ui/field.d.cts +23 -23
  264. package/dist/ui/field.d.mts +23 -23
  265. package/dist/ui/field.mjs +1 -1
  266. package/dist/ui/file-uploader.d.cts +2 -2
  267. package/dist/ui/file-uploader.d.mts +2 -2
  268. package/dist/ui/file-uploader.mjs +1 -1
  269. package/dist/ui/form.cjs +1 -1
  270. package/dist/ui/form.d.cts +10 -10
  271. package/dist/ui/form.d.mts +10 -10
  272. package/dist/ui/form.mjs +1 -1
  273. package/dist/ui/hover-card.d.cts +4 -4
  274. package/dist/ui/hover-card.d.mts +4 -4
  275. package/dist/ui/image.mjs +1 -1
  276. package/dist/ui/input-otp.d.cts +5 -5
  277. package/dist/ui/input-otp.d.mts +5 -5
  278. package/dist/ui/input.d.cts +1 -1
  279. package/dist/ui/input.d.mts +1 -1
  280. package/dist/ui/input.mjs +1 -1
  281. package/dist/ui/inputs/search-input.d.cts +3 -3
  282. package/dist/ui/inputs/search-input.d.mts +3 -3
  283. package/dist/ui/inputs/search-input.mjs +1 -1
  284. package/dist/ui/item.d.cts +15 -15
  285. package/dist/ui/item.d.mts +15 -15
  286. package/dist/ui/item.mjs +1 -1
  287. package/dist/ui/label.cjs +1 -1
  288. package/dist/ui/label.d.cts +2 -2
  289. package/dist/ui/label.d.mts +2 -2
  290. package/dist/ui/label.mjs +1 -1
  291. package/dist/ui/menubar.d.cts +17 -17
  292. package/dist/ui/menubar.d.mts +17 -17
  293. package/dist/ui/multi-select.cjs +1 -1
  294. package/dist/ui/multi-select.d.cts +2 -2
  295. package/dist/ui/multi-select.d.mts +3 -3
  296. package/dist/ui/multi-select.mjs +1 -1
  297. package/dist/ui/navigation-menu.d.cts +9 -9
  298. package/dist/ui/navigation-menu.d.mts +11 -11
  299. package/dist/ui/pagination.d.cts +9 -9
  300. package/dist/ui/pagination.d.mts +9 -9
  301. package/dist/ui/pagination.mjs +1 -1
  302. package/dist/ui/popover.cjs +1 -1
  303. package/dist/ui/popover.d.cts +6 -6
  304. package/dist/ui/popover.d.mts +6 -6
  305. package/dist/ui/popover.mjs +1 -1
  306. package/dist/ui/progress.d.cts +2 -2
  307. package/dist/ui/progress.d.mts +2 -2
  308. package/dist/ui/progress.mjs +1 -1
  309. package/dist/ui/radio-group.d.cts +3 -3
  310. package/dist/ui/radio-group.d.mts +3 -3
  311. package/dist/ui/radio-group.mjs +1 -1
  312. package/dist/ui/resizable.d.cts +9 -9
  313. package/dist/ui/resizable.d.mts +9 -9
  314. package/dist/ui/resizable.mjs +1 -1
  315. package/dist/ui/scroll-area.d.cts +5 -5
  316. package/dist/ui/scroll-area.d.mts +5 -5
  317. package/dist/ui/select.cjs +1 -1
  318. package/dist/ui/select.d.cts +9 -9
  319. package/dist/ui/select.d.mts +9 -9
  320. package/dist/ui/select.mjs +1 -1
  321. package/dist/ui/separator.d.cts +2 -2
  322. package/dist/ui/separator.d.mts +2 -2
  323. package/dist/ui/separator.mjs +1 -1
  324. package/dist/ui/sheet.d.cts +9 -9
  325. package/dist/ui/sheet.d.mts +9 -9
  326. package/dist/ui/sheet.mjs +1 -1
  327. package/dist/ui/skeleton.d.cts +2 -2
  328. package/dist/ui/skeleton.d.mts +2 -2
  329. package/dist/ui/skeleton.mjs +1 -1
  330. package/dist/ui/slider.d.cts +2 -2
  331. package/dist/ui/slider.d.mts +2 -2
  332. package/dist/ui/sonner.d.cts +2 -2
  333. package/dist/ui/sonner.d.mts +2 -2
  334. package/dist/ui/spinner.d.cts +2 -2
  335. package/dist/ui/spinner.d.mts +2 -2
  336. package/dist/ui/spinner.mjs +1 -1
  337. package/dist/ui/switch.d.cts +2 -2
  338. package/dist/ui/switch.d.mts +2 -2
  339. package/dist/ui/switch.mjs +1 -1
  340. package/dist/ui/table.d.cts +17 -17
  341. package/dist/ui/table.d.mts +17 -17
  342. package/dist/ui/tabs.d.cts +5 -5
  343. package/dist/ui/tabs.d.mts +5 -5
  344. package/dist/ui/textarea.d.cts +2 -2
  345. package/dist/ui/textarea.d.mts +2 -2
  346. package/dist/ui/textarea.mjs +1 -1
  347. package/dist/ui/toggle-group.d.cts +3 -3
  348. package/dist/ui/toggle-group.d.mts +3 -3
  349. package/dist/ui/toggle.d.cts +5 -5
  350. package/dist/ui/toggle.d.mts +5 -5
  351. package/dist/ui/tooltip.d.cts +5 -5
  352. package/dist/ui/tooltip.d.mts +5 -5
  353. package/dist/ui/tooltip.mjs +1 -1
  354. package/dist/{user-DexjSvGZ.mjs → user-Cif7yb1w.mjs} +2 -2
  355. package/dist/{user-DexjSvGZ.mjs.map → user-Cif7yb1w.mjs.map} +1 -1
  356. package/package.json +1 -5
  357. package/dist/dialog-DEnyBH2X.cjs +0 -2
  358. package/dist/dialog-DEnyBH2X.cjs.map +0 -1
  359. package/dist/dialog-jqiIqxlm.mjs +0 -2
  360. package/dist/dialog-jqiIqxlm.mjs.map +0 -1
  361. package/dist/payment-layout-BkSC6JkI.cjs.map +0 -1
  362. package/dist/payment-layout-CafCw6lS.mjs.map +0 -1
  363. package/dist/tables-BQ-QiA1V.mjs +0 -4
  364. package/dist/ui/sidebar.cjs +0 -2
  365. package/dist/ui/sidebar.cjs.map +0 -1
  366. package/dist/ui/sidebar.d.cts +0 -264
  367. package/dist/ui/sidebar.d.mts +0 -264
  368. package/dist/ui/sidebar.mjs +0 -2
  369. package/dist/ui/sidebar.mjs.map +0 -1
@@ -1,13 +1,13 @@
1
- import * as react125 from "react";
1
+ import * as react142 from "react";
2
2
  import { VariantProps } from "class-variance-authority";
3
- import * as class_variance_authority_types5 from "class-variance-authority/types";
3
+ import * as class_variance_authority_types6 from "class-variance-authority/types";
4
4
 
5
5
  //#region packages/components/ui/input.d.ts
6
6
  /** CVA variant definitions for the `Input` component — controls sizing and visual style. */
7
7
  declare const inputVariants: (props?: ({
8
- variant?: "none" | "outline" | "soft" | "ghost" | "subtle" | null | undefined;
9
- size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
10
- } & class_variance_authority_types5.ClassProp) | undefined) => string;
8
+ variant?: "outline" | "none" | "ghost" | "soft" | "subtle" | null | undefined;
9
+ size?: "sm" | "lg" | "xs" | "md" | "xl" | null | undefined;
10
+ } & class_variance_authority_types6.ClassProp) | undefined) => string;
11
11
  type InputVariantProps = VariantProps<typeof inputVariants>;
12
12
  /**
13
13
  * Styled text input field built on the native `<input>` element with CVA-driven size and variant tokens.
@@ -38,7 +38,7 @@ declare function Input({
38
38
  size?: InputVariantProps['size'];
39
39
  /** Convenience callback that receives the raw string value on every change, bypassing the synthetic event. */
40
40
  onValueChange?: (value: string) => void;
41
- }): react125.JSX.Element;
41
+ }): react142.JSX.Element;
42
42
  //#endregion
43
43
  export { InputVariantProps as n, inputVariants as r, Input as t };
44
- //# sourceMappingURL=input-BILuHVfC.d.mts.map
44
+ //# sourceMappingURL=input-wQP8YLOp.d.mts.map
@@ -1,2 +1,2 @@
1
1
  const e=require(`./chunk-Bmb41Sf3.cjs`);let t=require(`@customafk/react-toolkit/utils`),n=require(`react/jsx-runtime`),r=require(`radix-ui`);function i({className:e,...i}){return(0,n.jsx)(r.Label.Root,{"data-slot":`label`,className:(0,t.cn)(`text-text-positive`,`flex items-center gap-2`,`select-none font-medium text-sm/6 leading-none`,`group-data-[disabled=true]:pointer-events-none`,`group-data-[disabled=true]:opacity-50`,`peer-disabled:cursor-not-allowed`,`peer-disabled:opacity-50`,e),...i})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
2
- //# sourceMappingURL=label-BHbqbBtO.cjs.map
2
+ //# sourceMappingURL=label-BzfsTrVt.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"label-BHbqbBtO.cjs","names":["LabelPrimitive"],"sources":["../packages/components/ui/label.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Label as LabelPrimitive } from 'radix-ui';\n\n/**\n * Accessible form label built on Radix UI's `Label.Root`, with styles for disabled and peer-disabled states.\n *\n * @example\n * ```tsx\n * import { Label } from '@customafk/lunas-ui/ui/label';\n * import { Input } from '@customafk/lunas-ui/ui/input';\n *\n * <Label htmlFor=\"email\">Email address</Label>\n * <Input id=\"email\" type=\"email\" placeholder=\"you@example.com\" />\n * ```\n */\nfunction Label({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n 'text-text-positive',\n 'flex items-center gap-2',\n 'select-none font-medium text-sm/6 leading-none',\n 'group-data-[disabled=true]:pointer-events-none',\n 'group-data-[disabled=true]:opacity-50',\n 'peer-disabled:cursor-not-allowed',\n 'peer-disabled:opacity-50',\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n"],"mappings":"6IAkBA,SAAS,EAAM,CAAE,YAAW,GAAG,GAA2D,CACxF,OACE,EAAA,EAAA,KAACA,EAAAA,MAAe,KAAA,CACd,YAAU,QACV,WAAA,EAAA,EAAA,IACE,qBACA,0BACA,iDACA,iDACA,wCACA,mCACA,2BACA,EACD,CACD,GAAI,GACJ"}
1
+ {"version":3,"file":"label-BzfsTrVt.cjs","names":["LabelPrimitive"],"sources":["../packages/components/ui/label.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Label as LabelPrimitive } from 'radix-ui';\n\n/**\n * Accessible form label built on Radix UI's `Label.Root`, with styles for disabled and peer-disabled states.\n *\n * @example\n * ```tsx\n * import { Label } from '@customafk/lunas-ui/ui/label';\n * import { Input } from '@customafk/lunas-ui/ui/input';\n *\n * <Label htmlFor=\"email\">Email address</Label>\n * <Input id=\"email\" type=\"email\" placeholder=\"you@example.com\" />\n * ```\n */\nfunction Label({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n 'text-text-positive',\n 'flex items-center gap-2',\n 'select-none font-medium text-sm/6 leading-none',\n 'group-data-[disabled=true]:pointer-events-none',\n 'group-data-[disabled=true]:opacity-50',\n 'peer-disabled:cursor-not-allowed',\n 'peer-disabled:opacity-50',\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n"],"mappings":"6IAkBA,SAAS,EAAM,CAAE,YAAW,GAAG,GAA2D,CACxF,OACE,EAAA,EAAA,KAACA,EAAAA,MAAe,KAAA,CACd,YAAU,QACV,WAAA,EAAA,EAAA,IACE,qBACA,0BACA,iDACA,iDACA,wCACA,mCACA,2BACA,EACD,CACD,GAAI,GACJ"}
@@ -1,2 +1,2 @@
1
1
  import{cn as e}from"@customafk/react-toolkit/utils";import{jsx as t}from"react/jsx-runtime";import{Label as n}from"radix-ui";function r({className:r,...i}){return t(n.Root,{"data-slot":`label`,className:e(`text-text-positive`,`flex items-center gap-2`,`select-none font-medium text-sm/6 leading-none`,`group-data-[disabled=true]:pointer-events-none`,`group-data-[disabled=true]:opacity-50`,`peer-disabled:cursor-not-allowed`,`peer-disabled:opacity-50`,r),...i})}export{r as t};
2
- //# sourceMappingURL=label-CE2m0U_j.mjs.map
2
+ //# sourceMappingURL=label-Cig7a9ON.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"label-CE2m0U_j.mjs","names":["Label","LabelPrimitive"],"sources":["../packages/components/ui/label.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Label as LabelPrimitive } from 'radix-ui';\n\n/**\n * Accessible form label built on Radix UI's `Label.Root`, with styles for disabled and peer-disabled states.\n *\n * @example\n * ```tsx\n * import { Label } from '@customafk/lunas-ui/ui/label';\n * import { Input } from '@customafk/lunas-ui/ui/input';\n *\n * <Label htmlFor=\"email\">Email address</Label>\n * <Input id=\"email\" type=\"email\" placeholder=\"you@example.com\" />\n * ```\n */\nfunction Label({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n 'text-text-positive',\n 'flex items-center gap-2',\n 'select-none font-medium text-sm/6 leading-none',\n 'group-data-[disabled=true]:pointer-events-none',\n 'group-data-[disabled=true]:opacity-50',\n 'peer-disabled:cursor-not-allowed',\n 'peer-disabled:opacity-50',\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n"],"mappings":"6HAkBA,SAASA,EAAM,CAAE,YAAW,GAAG,GAA2D,CACxF,OACE,EAACC,EAAe,KAAA,CACd,YAAU,QACV,UAAW,EACT,qBACA,0BACA,iDACA,iDACA,wCACA,mCACA,2BACA,EACD,CACD,GAAI,GACJ"}
1
+ {"version":3,"file":"label-Cig7a9ON.mjs","names":["Label","LabelPrimitive"],"sources":["../packages/components/ui/label.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Label as LabelPrimitive } from 'radix-ui';\n\n/**\n * Accessible form label built on Radix UI's `Label.Root`, with styles for disabled and peer-disabled states.\n *\n * @example\n * ```tsx\n * import { Label } from '@customafk/lunas-ui/ui/label';\n * import { Input } from '@customafk/lunas-ui/ui/input';\n *\n * <Label htmlFor=\"email\">Email address</Label>\n * <Input id=\"email\" type=\"email\" placeholder=\"you@example.com\" />\n * ```\n */\nfunction Label({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n 'text-text-positive',\n 'flex items-center gap-2',\n 'select-none font-medium text-sm/6 leading-none',\n 'group-data-[disabled=true]:pointer-events-none',\n 'group-data-[disabled=true]:opacity-50',\n 'peer-disabled:cursor-not-allowed',\n 'peer-disabled:opacity-50',\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n"],"mappings":"6HAkBA,SAASA,EAAM,CAAE,YAAW,GAAG,GAA2D,CACxF,OACE,EAACC,EAAe,KAAA,CACd,YAAU,QACV,UAAW,EACT,qBACA,0BACA,iDACA,iDACA,wCACA,mCACA,2BACA,EACD,CACD,GAAI,GACJ"}
@@ -1 +1 @@
1
- "use client";import"../../button.variants-CwcJHcI5.mjs";import"../../button-BqxBQ4Kr.mjs";import"../../skeleton-Czl96pWA.mjs";import"../../tooltip-BMdzWaaH.mjs";import"../../separator-yTKDuMWb.mjs";import"../../sheet-DDBCHwn6.mjs";import"../../dropdown-menu-B_uBxY94.mjs";import"../../input-CKFQdvqY.mjs";import{t as e}from"../../cms-layout-DHzRHAoI.mjs";export{e as CMSLayout};
1
+ "use client";import"../../button.variants-B8aRZ52K.mjs";import"../../button-CfPTDyoq.mjs";import"../../skeleton-DupQ91XW.mjs";import"../../tooltip-BfBJRYpc.mjs";import"../../separator-DVaVWuNc.mjs";import"../../sheet-BoulTUHV.mjs";import"../../dropdown-menu-BjckWIZH.mjs";import"../../input-ESg91VId.mjs";import{t as e}from"../../cms-layout-BvaYr6rb.mjs";export{e as CMSLayout};
@@ -1,5 +1,5 @@
1
- import * as react1 from "react";
2
- import * as class_variance_authority_types0 from "class-variance-authority/types";
1
+ import * as react30 from "react";
2
+ import * as class_variance_authority_types1 from "class-variance-authority/types";
3
3
  import { VariantProps } from "class-variance-authority";
4
4
 
5
5
  //#region packages/components/layouts/flex.d.ts
@@ -7,12 +7,12 @@ declare const flexVariants: (props?: ({
7
7
  vertical?: boolean | null | undefined;
8
8
  width?: "full" | "auto" | "fit" | "screen" | "min" | "max" | "null" | null | undefined;
9
9
  wrap?: boolean | null | undefined;
10
- margin?: "sm" | "md" | "lg" | "xl" | "none" | null | undefined;
11
- padding?: "sm" | "md" | "lg" | "xl" | "none" | null | undefined;
12
- gap?: "xs" | "sm" | "md" | "lg" | "xl" | "none" | null | undefined;
13
- justify?: "start" | "center" | "end" | "between" | "around" | "evenly" | "stretch" | null | undefined;
14
- align?: "start" | "center" | "end" | "stretch" | "baseline" | null | undefined;
15
- } & class_variance_authority_types0.ClassProp) | undefined) => string;
10
+ margin?: "sm" | "lg" | "md" | "xl" | "none" | null | undefined;
11
+ padding?: "sm" | "lg" | "md" | "xl" | "none" | null | undefined;
12
+ gap?: "sm" | "lg" | "xs" | "md" | "xl" | "none" | null | undefined;
13
+ justify?: "center" | "start" | "end" | "between" | "around" | "evenly" | "stretch" | null | undefined;
14
+ align?: "center" | "start" | "end" | "stretch" | "baseline" | null | undefined;
15
+ } & class_variance_authority_types1.ClassProp) | undefined) => string;
16
16
  type Props = {
17
17
  /** Additional Tailwind classes merged on top of the variant-generated classes. */
18
18
  className?: string;
@@ -100,7 +100,7 @@ type Props = {
100
100
  * </Flex>
101
101
  * ```
102
102
  */
103
- declare const Flex: react1.MemoExoticComponent<({
103
+ declare const Flex: react30.MemoExoticComponent<({
104
104
  vertical,
105
105
  wrap,
106
106
  width,
@@ -111,7 +111,7 @@ declare const Flex: react1.MemoExoticComponent<({
111
111
  align,
112
112
  className,
113
113
  children
114
- }: React.PropsWithChildren<Props>) => react1.JSX.Element>;
114
+ }: React.PropsWithChildren<Props>) => react30.JSX.Element>;
115
115
  //#endregion
116
116
  export { Flex };
117
117
  //# sourceMappingURL=flex.d.cts.map
@@ -1,18 +1,18 @@
1
- import * as react123 from "react";
1
+ import * as react53 from "react";
2
2
  import { VariantProps } from "class-variance-authority";
3
- import * as class_variance_authority_types4 from "class-variance-authority/types";
3
+ import * as class_variance_authority_types3 from "class-variance-authority/types";
4
4
 
5
5
  //#region packages/components/layouts/flex.d.ts
6
6
  declare const flexVariants: (props?: ({
7
7
  vertical?: boolean | null | undefined;
8
8
  width?: "full" | "auto" | "fit" | "screen" | "min" | "max" | "null" | null | undefined;
9
9
  wrap?: boolean | null | undefined;
10
- margin?: "sm" | "md" | "lg" | "xl" | "none" | null | undefined;
11
- padding?: "sm" | "md" | "lg" | "xl" | "none" | null | undefined;
12
- gap?: "xs" | "sm" | "md" | "lg" | "xl" | "none" | null | undefined;
13
- justify?: "start" | "center" | "end" | "between" | "around" | "evenly" | "stretch" | null | undefined;
14
- align?: "start" | "center" | "end" | "stretch" | "baseline" | null | undefined;
15
- } & class_variance_authority_types4.ClassProp) | undefined) => string;
10
+ margin?: "sm" | "lg" | "md" | "xl" | "none" | null | undefined;
11
+ padding?: "sm" | "lg" | "md" | "xl" | "none" | null | undefined;
12
+ gap?: "sm" | "lg" | "xs" | "md" | "xl" | "none" | null | undefined;
13
+ justify?: "center" | "start" | "end" | "between" | "around" | "evenly" | "stretch" | null | undefined;
14
+ align?: "center" | "start" | "end" | "stretch" | "baseline" | null | undefined;
15
+ } & class_variance_authority_types3.ClassProp) | undefined) => string;
16
16
  type Props = {
17
17
  /** Additional Tailwind classes merged on top of the variant-generated classes. */
18
18
  className?: string;
@@ -100,7 +100,7 @@ type Props = {
100
100
  * </Flex>
101
101
  * ```
102
102
  */
103
- declare const Flex: react123.MemoExoticComponent<({
103
+ declare const Flex: react53.MemoExoticComponent<({
104
104
  vertical,
105
105
  wrap,
106
106
  width,
@@ -111,7 +111,7 @@ declare const Flex: react123.MemoExoticComponent<({
111
111
  align,
112
112
  className,
113
113
  children
114
- }: React.PropsWithChildren<Props>) => react123.JSX.Element>;
114
+ }: React.PropsWithChildren<Props>) => react53.JSX.Element>;
115
115
  //#endregion
116
116
  export { Flex };
117
117
  //# sourceMappingURL=flex.d.mts.map
@@ -1 +1 @@
1
- "use client";import{t as e}from"../flex-Bl5yzx6g.mjs";export{e as Flex};
1
+ "use client";import{t as e}from"../flex-BAcvp4lB.mjs";export{e as Flex};
@@ -1 +1 @@
1
- require(`../../button.variants-tnhb123u.cjs`),require(`../../button-Bu4ejNOW.cjs`),require(`../../paragraph-D-JHj7EP.cjs`),require(`../../skeleton-CHympz8k.cjs`),require(`../../flex-DYh2t8ft.cjs`),require(`../../tooltip-DC6i1A25.cjs`),require(`../../avatar-aVxo69zP.cjs`),require(`../../separator-jytY1CPq.cjs`),require(`../../sheet-DuMrjidC.cjs`),require(`../../dropdown-menu-DMwvWoxe.cjs`),require(`../../input-1ceJxxFI.cjs`);const e=require(`../../payment-layout-BkSC6JkI.cjs`);exports.PaymentLayout=e.t;
1
+ require(`../../button.variants-tnhb123u.cjs`),require(`../../button-Bu4ejNOW.cjs`),require(`../../paragraph-D-JHj7EP.cjs`),require(`../../skeleton-CHympz8k.cjs`),require(`../../flex-DYh2t8ft.cjs`),require(`../../tooltip-DC6i1A25.cjs`),require(`../../avatar-aVxo69zP.cjs`),require(`../../separator-jytY1CPq.cjs`),require(`../../sheet-DuMrjidC.cjs`),require(`../../dropdown-menu-DMwvWoxe.cjs`),require(`../../input-1ceJxxFI.cjs`);const e=require(`../../payment-layout-kh0lLq71.cjs`);exports.PaymentLayout=e.t;
@@ -10,6 +10,7 @@ type PaymentLayoutUser = {
10
10
  };
11
11
  /**
12
12
  * Full-page payment application shell with a collapsible inset sidebar and a fixed header.
13
+ * On mobile, the sidebar is replaced by a bottom navigation bar (up to 5 items).
13
14
  *
14
15
  * @example
15
16
  * ```tsx
@@ -61,6 +62,8 @@ declare const PaymentLayout: React.FC<React.PropsWithChildren<{
61
62
  };
62
63
  /** Authenticated user; when provided the header shows user info and a logout option, otherwise a login button. */
63
64
  user?: PaymentLayoutUser | null;
65
+ /** When false the sidebar and bottom nav are hidden entirely (e.g. unauthenticated state). Defaults to true. */
66
+ isLogin?: boolean;
64
67
  /** Called when the login button in the header is clicked (only shown when `user` is absent). */
65
68
  onLogin?: () => void;
66
69
  /** Called when the logout item in the user dropdown is clicked. */
@@ -10,6 +10,7 @@ type PaymentLayoutUser = {
10
10
  };
11
11
  /**
12
12
  * Full-page payment application shell with a collapsible inset sidebar and a fixed header.
13
+ * On mobile, the sidebar is replaced by a bottom navigation bar (up to 5 items).
13
14
  *
14
15
  * @example
15
16
  * ```tsx
@@ -61,6 +62,8 @@ declare const PaymentLayout: React.FC<React.PropsWithChildren<{
61
62
  };
62
63
  /** Authenticated user; when provided the header shows user info and a logout option, otherwise a login button. */
63
64
  user?: PaymentLayoutUser | null;
65
+ /** When false the sidebar and bottom nav are hidden entirely (e.g. unauthenticated state). Defaults to true. */
66
+ isLogin?: boolean;
64
67
  /** Called when the login button in the header is clicked (only shown when `user` is absent). */
65
68
  onLogin?: () => void;
66
69
  /** Called when the logout item in the user dropdown is clicked. */
@@ -1 +1 @@
1
- import"../../button.variants-CwcJHcI5.mjs";import"../../button-BqxBQ4Kr.mjs";import"../../paragraph-J_QbLq9_.mjs";import"../../skeleton-Czl96pWA.mjs";import"../../flex-Bl5yzx6g.mjs";import"../../tooltip-BMdzWaaH.mjs";import"../../avatar-CK1R4r0j.mjs";import"../../separator-yTKDuMWb.mjs";import"../../sheet-DDBCHwn6.mjs";import"../../dropdown-menu-B_uBxY94.mjs";import"../../input-CKFQdvqY.mjs";import{t as e}from"../../payment-layout-CafCw6lS.mjs";export{e as PaymentLayout};
1
+ import"../../button.variants-B8aRZ52K.mjs";import"../../button-CfPTDyoq.mjs";import"../../paragraph-CjstaJFj.mjs";import"../../skeleton-DupQ91XW.mjs";import"../../flex-BAcvp4lB.mjs";import"../../tooltip-BfBJRYpc.mjs";import"../../avatar-1SuFoI5h.mjs";import"../../separator-DVaVWuNc.mjs";import"../../sheet-BoulTUHV.mjs";import"../../dropdown-menu-BjckWIZH.mjs";import"../../input-ESg91VId.mjs";import{t as e}from"../../payment-layout-Bd4B4jhp.mjs";export{e as PaymentLayout};
@@ -1,4 +1,4 @@
1
- import * as react95 from "react";
1
+ import * as react26 from "react";
2
2
 
3
3
  //#region packages/components/pages/FeatureDeveloping.d.ts
4
4
  interface FeatureDevelopingProps {
@@ -37,7 +37,7 @@ declare const FeatureDeveloping: ({
37
37
  onButtonClick,
38
38
  className,
39
39
  iconClassName
40
- }: FeatureDevelopingProps) => react95.JSX.Element;
40
+ }: FeatureDevelopingProps) => react26.JSX.Element;
41
41
  //#endregion
42
42
  export { FeatureDeveloping, FeatureDeveloping as default, FeatureDevelopingProps };
43
43
  //# sourceMappingURL=FeatureDeveloping.d.cts.map
@@ -1,4 +1,4 @@
1
- import * as react3 from "react";
1
+ import * as react0 from "react";
2
2
 
3
3
  //#region packages/components/pages/FeatureDeveloping.d.ts
4
4
  interface FeatureDevelopingProps {
@@ -37,7 +37,7 @@ declare const FeatureDeveloping: ({
37
37
  onButtonClick,
38
38
  className,
39
39
  iconClassName
40
- }: FeatureDevelopingProps) => react3.JSX.Element;
40
+ }: FeatureDevelopingProps) => react0.JSX.Element;
41
41
  //#endregion
42
42
  export { FeatureDeveloping, FeatureDeveloping as default, FeatureDevelopingProps };
43
43
  //# sourceMappingURL=FeatureDeveloping.d.mts.map
@@ -1,2 +1,2 @@
1
- import"../button.variants-CwcJHcI5.mjs";import{t as e}from"../button-BqxBQ4Kr.mjs";import{Construction as t}from"lucide-react";import{cn as n}from"@customafk/react-toolkit/utils";import{jsx as r,jsxs as i}from"react/jsx-runtime";const a=({title:a=`Tính năng đang phát triển`,subtitle:o=`Chúng tôi đang phát triển tính năng này. Vui lòng quay lại sau.`,buttonText:s=`Quay lại`,onButtonClick:c=()=>window.history.back(),className:l,iconClassName:u})=>i(`div`,{className:n(`flex flex-col items-center justify-center min-h-[50vh] gap-4 sm:gap-6 py-8 sm:py-10 px-4 text-center w-full`,l),children:[i(`div`,{className:`flex flex-col items-center gap-2`,children:[r(t,{className:n(`size-16 sm:size-24 text-yellow-500`,u)}),r(`div`,{className:`text-3xl sm:text-5xl font-bold text-yellow-500`})]}),r(`h1`,{className:`text-xl sm:text-2xl font-semibold mt-2`,children:a}),r(`p`,{className:`text-muted-foreground max-w-md text-sm sm:text-base`,children:o}),r(e,{onClick:c,variant:`default`,className:`mt-2`,size:`sm`,children:s})]});var o=a;export{a as FeatureDeveloping,o as default};
1
+ import"../button.variants-B8aRZ52K.mjs";import{t as e}from"../button-CfPTDyoq.mjs";import{Construction as t}from"lucide-react";import{cn as n}from"@customafk/react-toolkit/utils";import{jsx as r,jsxs as i}from"react/jsx-runtime";const a=({title:a=`Tính năng đang phát triển`,subtitle:o=`Chúng tôi đang phát triển tính năng này. Vui lòng quay lại sau.`,buttonText:s=`Quay lại`,onButtonClick:c=()=>window.history.back(),className:l,iconClassName:u})=>i(`div`,{className:n(`flex flex-col items-center justify-center min-h-[50vh] gap-4 sm:gap-6 py-8 sm:py-10 px-4 text-center w-full`,l),children:[i(`div`,{className:`flex flex-col items-center gap-2`,children:[r(t,{className:n(`size-16 sm:size-24 text-yellow-500`,u)}),r(`div`,{className:`text-3xl sm:text-5xl font-bold text-yellow-500`})]}),r(`h1`,{className:`text-xl sm:text-2xl font-semibold mt-2`,children:a}),r(`p`,{className:`text-muted-foreground max-w-md text-sm sm:text-base`,children:o}),r(e,{onClick:c,variant:`default`,className:`mt-2`,size:`sm`,children:s})]});var o=a;export{a as FeatureDeveloping,o as default};
2
2
  //# sourceMappingURL=FeatureDeveloping.mjs.map
@@ -1,4 +1,4 @@
1
- import * as react9 from "react";
1
+ import * as react2 from "react";
2
2
 
3
3
  //#region packages/components/pages/FeatureFixing.d.ts
4
4
  interface FeatureFixingProps {
@@ -37,7 +37,7 @@ declare const FeatureFixing: ({
37
37
  onButtonClick,
38
38
  className,
39
39
  iconClassName
40
- }: FeatureFixingProps) => react9.JSX.Element;
40
+ }: FeatureFixingProps) => react2.JSX.Element;
41
41
  //#endregion
42
42
  export { FeatureFixing, FeatureFixing as default, FeatureFixingProps };
43
43
  //# sourceMappingURL=FeatureFixing.d.cts.map
@@ -1,4 +1,4 @@
1
- import * as react30 from "react";
1
+ import * as react131 from "react";
2
2
 
3
3
  //#region packages/components/pages/FeatureFixing.d.ts
4
4
  interface FeatureFixingProps {
@@ -37,7 +37,7 @@ declare const FeatureFixing: ({
37
37
  onButtonClick,
38
38
  className,
39
39
  iconClassName
40
- }: FeatureFixingProps) => react30.JSX.Element;
40
+ }: FeatureFixingProps) => react131.JSX.Element;
41
41
  //#endregion
42
42
  export { FeatureFixing, FeatureFixing as default, FeatureFixingProps };
43
43
  //# sourceMappingURL=FeatureFixing.d.mts.map
@@ -1,2 +1,2 @@
1
- import"../button.variants-CwcJHcI5.mjs";import{t as e}from"../button-BqxBQ4Kr.mjs";import{Wrench as t}from"lucide-react";import{cn as n}from"@customafk/react-toolkit/utils";import{jsx as r,jsxs as i}from"react/jsx-runtime";const a=({title:a=`Tính năng đang bảo trì`,subtitle:o=`Chúng tôi đang khắc phục vấn đề với tính năng này. Vui lòng quay lại sau.`,buttonText:s=`Quay lại`,onButtonClick:c=()=>window.history.back(),className:l,iconClassName:u})=>i(`div`,{className:n(`flex flex-col items-center justify-center min-h-[50vh] gap-4 sm:gap-6 py-8 sm:py-10 px-4 text-center w-full`,l),children:[i(`div`,{className:`flex flex-col items-center gap-2`,children:[r(t,{className:n(`size-16 sm:size-24 text-orange-500`,u)}),r(`div`,{className:`text-3xl sm:text-5xl font-bold text-orange-500`})]}),r(`h1`,{className:`text-xl sm:text-2xl font-semibold mt-2`,children:a}),r(`p`,{className:`text-muted-foreground max-w-md text-sm sm:text-base`,children:o}),r(e,{onClick:c,variant:`default`,className:`mt-2`,size:`sm`,children:s})]});var o=a;export{a as FeatureFixing,o as default};
1
+ import"../button.variants-B8aRZ52K.mjs";import{t as e}from"../button-CfPTDyoq.mjs";import{Wrench as t}from"lucide-react";import{cn as n}from"@customafk/react-toolkit/utils";import{jsx as r,jsxs as i}from"react/jsx-runtime";const a=({title:a=`Tính năng đang bảo trì`,subtitle:o=`Chúng tôi đang khắc phục vấn đề với tính năng này. Vui lòng quay lại sau.`,buttonText:s=`Quay lại`,onButtonClick:c=()=>window.history.back(),className:l,iconClassName:u})=>i(`div`,{className:n(`flex flex-col items-center justify-center min-h-[50vh] gap-4 sm:gap-6 py-8 sm:py-10 px-4 text-center w-full`,l),children:[i(`div`,{className:`flex flex-col items-center gap-2`,children:[r(t,{className:n(`size-16 sm:size-24 text-orange-500`,u)}),r(`div`,{className:`text-3xl sm:text-5xl font-bold text-orange-500`})]}),r(`h1`,{className:`text-xl sm:text-2xl font-semibold mt-2`,children:a}),r(`p`,{className:`text-muted-foreground max-w-md text-sm sm:text-base`,children:o}),r(e,{onClick:c,variant:`default`,className:`mt-2`,size:`sm`,children:s})]});var o=a;export{a as FeatureFixing,o as default};
2
2
  //# sourceMappingURL=FeatureFixing.mjs.map
@@ -1,2 +1,2 @@
1
- "use client";const e=require(`../chunk-Bmb41Sf3.cjs`);require(`../button.variants-tnhb123u.cjs`);const t=require(`../button-Bu4ejNOW.cjs`);require(`../heading-wUXEbicM.cjs`),require(`../paragraph-D-JHj7EP.cjs`),require(`../close-DUBEKxhw.cjs`);const n=require(`../dialog-DEnyBH2X.cjs`),r=require(`../input-1ceJxxFI.cjs`),i=require(`../label-BHbqbBtO.cjs`),a=require(`../alert-4rfsFtN6.cjs`);let o=require(`lucide-react`),s=require(`react`),c=require(`react/jsx-runtime`),l=require(`zod`);const u=l.z.object({email:l.z.string().min(1,`Vui lòng nhập email`).email(`Email không hợp lệ`),password:l.z.string().min(1,`Vui lòng nhập mật khẩu`)}),d=({open:e,onOpenChange:l,onLogin:d,onForgotPassword:f,onRegister:p,isLoading:m=!1,errorMessage:h,title:g=`Đăng nhập`,subtitle:_=`Nhập thông tin để tiếp tục`})=>{let v=(0,s.useId)(),y=(0,s.useId)(),[b,x]=(0,s.useState)(``),[S,C]=(0,s.useState)(``),[w,T]=(0,s.useState)(!1),[E,D]=(0,s.useState)({});return(0,c.jsx)(n.t,{open:e,onOpenChange:l,children:(0,c.jsxs)(n.r,{className:`max-sm:data-[state=open]:slide-in-from-bottom max-sm:data-[state=open]:zoom-in-100 max-sm:data-[state=closed]:slide-out-to-bottom max-sm:data-[state=closed]:zoom-out-100 max-sm:top-auto max-sm:right-0 max-sm:bottom-0 max-sm:left-0 max-sm:max-w-full max-sm:translate-x-0 max-sm:translate-y-0 max-sm:rounded-b-none sm:max-w-sm`,children:[(0,c.jsxs)(n.o,{children:[(0,c.jsx)(n.l,{children:g}),(0,c.jsx)(n.i,{children:_})]}),(0,c.jsxs)(`form`,{onSubmit:async e=>{e.preventDefault();let t=u.safeParse({email:b,password:S});if(!t.success){let e=t.error.flatten().fieldErrors;D({email:e.email?.[0],password:e.password?.[0]});return}D({}),await d(b,S)},noValidate:!0,className:`flex flex-col gap-4`,children:[h&&(0,c.jsx)(a.t,{variant:`destructive`,children:(0,c.jsx)(a.n,{children:h})}),(0,c.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,c.jsx)(i.t,{htmlFor:v,children:`Email`}),(0,c.jsx)(r.t,{id:v,type:`email`,autoComplete:`email`,placeholder:`you@example.com`,value:b,onChange:e=>x(e.target.value),"aria-invalid":!!E.email,disabled:m}),E.email&&(0,c.jsx)(`p`,{className:`text-destructive text-xs`,children:E.email})]}),(0,c.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,c.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,c.jsx)(i.t,{htmlFor:y,children:`Mật khẩu`}),f&&(0,c.jsx)(t.t,{type:`button`,variant:`link`,size:`sm`,className:`h-auto p-0 text-xs`,onClick:f,children:`Quên mật khẩu?`})]}),(0,c.jsxs)(`div`,{className:`relative`,children:[(0,c.jsx)(r.t,{id:y,type:w?`text`:`password`,autoComplete:`current-password`,placeholder:`••••••••`,value:S,onChange:e=>C(e.target.value),"aria-invalid":!!E.password,disabled:m,className:`pr-10`}),(0,c.jsx)(`button`,{type:`button`,className:`absolute inset-y-0 right-0 flex items-center px-3 text-muted-foreground hover:text-foreground`,onMouseDown:e=>{e.preventDefault(),T(e=>!e)},"aria-label":w?`Ẩn mật khẩu`:`Hiện mật khẩu`,children:w?(0,c.jsx)(o.EyeOff,{size:16}):(0,c.jsx)(o.Eye,{size:16})})]}),E.password&&(0,c.jsx)(`p`,{className:`text-destructive text-xs`,children:E.password})]}),(0,c.jsx)(t.t,{type:`submit`,isLoading:m,className:`w-full`,children:`Đăng nhập`})]}),p&&(0,c.jsxs)(`div`,{className:`flex justify-center gap-1 text-muted-foreground text-sm`,children:[(0,c.jsx)(`span`,{children:`Chưa có tài khoản?`}),(0,c.jsx)(t.t,{variant:`link`,size:`sm`,className:`h-auto p-0`,onClick:p,children:`Đăng ký`})]})]})})};exports.LoginPage=d;
1
+ "use client";const e=require(`../chunk-Bmb41Sf3.cjs`);require(`../button.variants-tnhb123u.cjs`);const t=require(`../button-Bu4ejNOW.cjs`);require(`../heading-wUXEbicM.cjs`),require(`../paragraph-D-JHj7EP.cjs`),require(`../close-DUBEKxhw.cjs`);const n=require(`../dialog-DhO0dkO3.cjs`),r=require(`../input-1ceJxxFI.cjs`),i=require(`../label-BzfsTrVt.cjs`),a=require(`../alert-4rfsFtN6.cjs`);let o=require(`lucide-react`),s=require(`react`),c=require(`react/jsx-runtime`),l=require(`zod`);const u=l.z.object({email:l.z.string().min(1,`Vui lòng nhập email`).email(`Email không hợp lệ`),password:l.z.string().min(1,`Vui lòng nhập mật khẩu`)}),d=({open:e,onOpenChange:l,onLogin:d,onForgotPassword:f,onRegister:p,isLoading:m=!1,errorMessage:h,title:g=`Đăng nhập`,subtitle:_=`Nhập thông tin để tiếp tục`})=>{let v=(0,s.useId)(),y=(0,s.useId)(),[b,x]=(0,s.useState)(``),[S,C]=(0,s.useState)(``),[w,T]=(0,s.useState)(!1),[E,D]=(0,s.useState)({});return(0,c.jsx)(n.t,{open:e,onOpenChange:l,children:(0,c.jsxs)(n.r,{className:`max-sm:data-[state=open]:slide-in-from-bottom max-sm:data-[state=open]:zoom-in-100 max-sm:data-[state=closed]:slide-out-to-bottom max-sm:data-[state=closed]:zoom-out-100 max-sm:top-auto max-sm:right-0 max-sm:bottom-0 max-sm:left-0 max-sm:max-w-full max-sm:translate-x-0 max-sm:translate-y-0 max-sm:rounded-b-none sm:max-w-sm`,children:[(0,c.jsxs)(n.o,{children:[(0,c.jsx)(n.l,{children:g}),(0,c.jsx)(n.i,{children:_})]}),(0,c.jsxs)(`form`,{onSubmit:async e=>{e.preventDefault();let t=u.safeParse({email:b,password:S});if(!t.success){let e=t.error.flatten().fieldErrors;D({email:e.email?.[0],password:e.password?.[0]});return}D({}),await d(b,S)},noValidate:!0,className:`flex flex-col gap-4`,children:[h&&(0,c.jsx)(a.t,{variant:`destructive`,children:(0,c.jsx)(a.n,{children:h})}),(0,c.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,c.jsx)(i.t,{htmlFor:v,children:`Email`}),(0,c.jsx)(r.t,{id:v,type:`email`,autoComplete:`email`,placeholder:`you@example.com`,value:b,onChange:e=>x(e.target.value),"aria-invalid":!!E.email,disabled:m}),E.email&&(0,c.jsx)(`p`,{className:`text-destructive text-xs`,children:E.email})]}),(0,c.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,c.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,c.jsx)(i.t,{htmlFor:y,children:`Mật khẩu`}),f&&(0,c.jsx)(t.t,{type:`button`,variant:`link`,size:`sm`,className:`h-auto p-0 text-xs`,onClick:f,children:`Quên mật khẩu?`})]}),(0,c.jsxs)(`div`,{className:`relative`,children:[(0,c.jsx)(r.t,{id:y,type:w?`text`:`password`,autoComplete:`current-password`,placeholder:`••••••••`,value:S,onChange:e=>C(e.target.value),"aria-invalid":!!E.password,disabled:m,className:`pr-10`}),(0,c.jsx)(`button`,{type:`button`,className:`absolute inset-y-0 right-0 flex items-center px-3 text-muted-foreground hover:text-foreground`,onMouseDown:e=>{e.preventDefault(),T(e=>!e)},"aria-label":w?`Ẩn mật khẩu`:`Hiện mật khẩu`,children:w?(0,c.jsx)(o.EyeOff,{size:16}):(0,c.jsx)(o.Eye,{size:16})})]}),E.password&&(0,c.jsx)(`p`,{className:`text-destructive text-xs`,children:E.password})]}),(0,c.jsx)(t.t,{type:`submit`,isLoading:m,className:`w-full`,children:`Đăng nhập`})]}),p&&(0,c.jsxs)(`div`,{className:`flex justify-center gap-1 text-muted-foreground text-sm`,children:[(0,c.jsx)(`span`,{children:`Chưa có tài khoản?`}),(0,c.jsx)(t.t,{variant:`link`,size:`sm`,className:`h-auto p-0`,onClick:p,children:`Đăng ký`})]})]})})};exports.LoginPage=d;
2
2
  //# sourceMappingURL=LoginPage.cjs.map
@@ -1,4 +1,4 @@
1
- import * as react39 from "react";
1
+ import * as react28 from "react";
2
2
 
3
3
  //#region packages/components/pages/LoginPage.d.ts
4
4
  interface LoginPageProps {
@@ -49,7 +49,7 @@ declare const LoginPage: ({
49
49
  errorMessage,
50
50
  title,
51
51
  subtitle
52
- }: LoginPageProps) => react39.JSX.Element;
52
+ }: LoginPageProps) => react28.JSX.Element;
53
53
  //#endregion
54
54
  export { LoginPage, LoginPageProps };
55
55
  //# sourceMappingURL=LoginPage.d.cts.map
@@ -1,4 +1,4 @@
1
- import * as react35 from "react";
1
+ import * as react2 from "react";
2
2
 
3
3
  //#region packages/components/pages/LoginPage.d.ts
4
4
  interface LoginPageProps {
@@ -49,7 +49,7 @@ declare const LoginPage: ({
49
49
  errorMessage,
50
50
  title,
51
51
  subtitle
52
- }: LoginPageProps) => react35.JSX.Element;
52
+ }: LoginPageProps) => react2.JSX.Element;
53
53
  //#endregion
54
54
  export { LoginPage, LoginPageProps };
55
55
  //# sourceMappingURL=LoginPage.d.mts.map
@@ -1,2 +1,2 @@
1
- "use client";import"../button.variants-CwcJHcI5.mjs";import{t as e}from"../button-BqxBQ4Kr.mjs";import"../heading-B1t9baTw.mjs";import"../paragraph-J_QbLq9_.mjs";import"../close-BMhGSmGs.mjs";import{i as t,l as n,o as r,r as i,t as a}from"../dialog-jqiIqxlm.mjs";import{t as o}from"../input-CKFQdvqY.mjs";import{t as s}from"../label-CE2m0U_j.mjs";import{n as c,t as l}from"../alert-BC5Nss8t.mjs";import{Eye as u,EyeOff as d}from"lucide-react";import{useId as f,useState as p}from"react";import{jsx as m,jsxs as h}from"react/jsx-runtime";import{z as g}from"zod";const _=g.object({email:g.string().min(1,`Vui lòng nhập email`).email(`Email không hợp lệ`),password:g.string().min(1,`Vui lòng nhập mật khẩu`)}),v=({open:g,onOpenChange:v,onLogin:y,onForgotPassword:b,onRegister:x,isLoading:S=!1,errorMessage:C,title:w=`Đăng nhập`,subtitle:T=`Nhập thông tin để tiếp tục`})=>{let E=f(),D=f(),[O,k]=p(``),[A,j]=p(``),[M,N]=p(!1),[P,F]=p({});return m(a,{open:g,onOpenChange:v,children:h(i,{className:`max-sm:data-[state=open]:slide-in-from-bottom max-sm:data-[state=open]:zoom-in-100 max-sm:data-[state=closed]:slide-out-to-bottom max-sm:data-[state=closed]:zoom-out-100 max-sm:top-auto max-sm:right-0 max-sm:bottom-0 max-sm:left-0 max-sm:max-w-full max-sm:translate-x-0 max-sm:translate-y-0 max-sm:rounded-b-none sm:max-w-sm`,children:[h(r,{children:[m(n,{children:w}),m(t,{children:T})]}),h(`form`,{onSubmit:async e=>{e.preventDefault();let t=_.safeParse({email:O,password:A});if(!t.success){let e=t.error.flatten().fieldErrors;F({email:e.email?.[0],password:e.password?.[0]});return}F({}),await y(O,A)},noValidate:!0,className:`flex flex-col gap-4`,children:[C&&m(l,{variant:`destructive`,children:m(c,{children:C})}),h(`div`,{className:`flex flex-col gap-1.5`,children:[m(s,{htmlFor:E,children:`Email`}),m(o,{id:E,type:`email`,autoComplete:`email`,placeholder:`you@example.com`,value:O,onChange:e=>k(e.target.value),"aria-invalid":!!P.email,disabled:S}),P.email&&m(`p`,{className:`text-destructive text-xs`,children:P.email})]}),h(`div`,{className:`flex flex-col gap-1.5`,children:[h(`div`,{className:`flex items-center justify-between`,children:[m(s,{htmlFor:D,children:`Mật khẩu`}),b&&m(e,{type:`button`,variant:`link`,size:`sm`,className:`h-auto p-0 text-xs`,onClick:b,children:`Quên mật khẩu?`})]}),h(`div`,{className:`relative`,children:[m(o,{id:D,type:M?`text`:`password`,autoComplete:`current-password`,placeholder:`••••••••`,value:A,onChange:e=>j(e.target.value),"aria-invalid":!!P.password,disabled:S,className:`pr-10`}),m(`button`,{type:`button`,className:`absolute inset-y-0 right-0 flex items-center px-3 text-muted-foreground hover:text-foreground`,onMouseDown:e=>{e.preventDefault(),N(e=>!e)},"aria-label":M?`Ẩn mật khẩu`:`Hiện mật khẩu`,children:m(M?d:u,{size:16})})]}),P.password&&m(`p`,{className:`text-destructive text-xs`,children:P.password})]}),m(e,{type:`submit`,isLoading:S,className:`w-full`,children:`Đăng nhập`})]}),x&&h(`div`,{className:`flex justify-center gap-1 text-muted-foreground text-sm`,children:[m(`span`,{children:`Chưa có tài khoản?`}),m(e,{variant:`link`,size:`sm`,className:`h-auto p-0`,onClick:x,children:`Đăng ký`})]})]})})};export{v as LoginPage};
1
+ "use client";import"../button.variants-B8aRZ52K.mjs";import{t as e}from"../button-CfPTDyoq.mjs";import"../heading-woRh-IC7.mjs";import"../paragraph-CjstaJFj.mjs";import"../close-DTBepcqW.mjs";import{i as t,l as n,o as r,r as i,t as a}from"../dialog-Bly2YImt.mjs";import{t as o}from"../input-ESg91VId.mjs";import{t as s}from"../label-Cig7a9ON.mjs";import{n as c,t as l}from"../alert-BbInRLt4.mjs";import{Eye as u,EyeOff as d}from"lucide-react";import{useId as f,useState as p}from"react";import{jsx as m,jsxs as h}from"react/jsx-runtime";import{z as g}from"zod";const _=g.object({email:g.string().min(1,`Vui lòng nhập email`).email(`Email không hợp lệ`),password:g.string().min(1,`Vui lòng nhập mật khẩu`)}),v=({open:g,onOpenChange:v,onLogin:y,onForgotPassword:b,onRegister:x,isLoading:S=!1,errorMessage:C,title:w=`Đăng nhập`,subtitle:T=`Nhập thông tin để tiếp tục`})=>{let E=f(),D=f(),[O,k]=p(``),[A,j]=p(``),[M,N]=p(!1),[P,F]=p({});return m(a,{open:g,onOpenChange:v,children:h(i,{className:`max-sm:data-[state=open]:slide-in-from-bottom max-sm:data-[state=open]:zoom-in-100 max-sm:data-[state=closed]:slide-out-to-bottom max-sm:data-[state=closed]:zoom-out-100 max-sm:top-auto max-sm:right-0 max-sm:bottom-0 max-sm:left-0 max-sm:max-w-full max-sm:translate-x-0 max-sm:translate-y-0 max-sm:rounded-b-none sm:max-w-sm`,children:[h(r,{children:[m(n,{children:w}),m(t,{children:T})]}),h(`form`,{onSubmit:async e=>{e.preventDefault();let t=_.safeParse({email:O,password:A});if(!t.success){let e=t.error.flatten().fieldErrors;F({email:e.email?.[0],password:e.password?.[0]});return}F({}),await y(O,A)},noValidate:!0,className:`flex flex-col gap-4`,children:[C&&m(l,{variant:`destructive`,children:m(c,{children:C})}),h(`div`,{className:`flex flex-col gap-1.5`,children:[m(s,{htmlFor:E,children:`Email`}),m(o,{id:E,type:`email`,autoComplete:`email`,placeholder:`you@example.com`,value:O,onChange:e=>k(e.target.value),"aria-invalid":!!P.email,disabled:S}),P.email&&m(`p`,{className:`text-destructive text-xs`,children:P.email})]}),h(`div`,{className:`flex flex-col gap-1.5`,children:[h(`div`,{className:`flex items-center justify-between`,children:[m(s,{htmlFor:D,children:`Mật khẩu`}),b&&m(e,{type:`button`,variant:`link`,size:`sm`,className:`h-auto p-0 text-xs`,onClick:b,children:`Quên mật khẩu?`})]}),h(`div`,{className:`relative`,children:[m(o,{id:D,type:M?`text`:`password`,autoComplete:`current-password`,placeholder:`••••••••`,value:A,onChange:e=>j(e.target.value),"aria-invalid":!!P.password,disabled:S,className:`pr-10`}),m(`button`,{type:`button`,className:`absolute inset-y-0 right-0 flex items-center px-3 text-muted-foreground hover:text-foreground`,onMouseDown:e=>{e.preventDefault(),N(e=>!e)},"aria-label":M?`Ẩn mật khẩu`:`Hiện mật khẩu`,children:m(M?d:u,{size:16})})]}),P.password&&m(`p`,{className:`text-destructive text-xs`,children:P.password})]}),m(e,{type:`submit`,isLoading:S,className:`w-full`,children:`Đăng nhập`})]}),x&&h(`div`,{className:`flex justify-center gap-1 text-muted-foreground text-sm`,children:[m(`span`,{children:`Chưa có tài khoản?`}),m(e,{variant:`link`,size:`sm`,className:`h-auto p-0`,onClick:x,children:`Đăng ký`})]})]})})};export{v as LoginPage};
2
2
  //# sourceMappingURL=LoginPage.mjs.map
@@ -1,4 +1,4 @@
1
- import * as react68 from "react";
1
+ import * as react25 from "react";
2
2
 
3
3
  //#region packages/components/pages/NotAuthorized.d.ts
4
4
  interface NotAuthorizedProps {
@@ -37,7 +37,7 @@ declare const NotAuthorized: ({
37
37
  onButtonClick,
38
38
  className,
39
39
  iconClassName
40
- }: NotAuthorizedProps) => react68.JSX.Element;
40
+ }: NotAuthorizedProps) => react25.JSX.Element;
41
41
  //#endregion
42
42
  export { NotAuthorized, NotAuthorized as default, NotAuthorizedProps };
43
43
  //# sourceMappingURL=NotAuthorized.d.cts.map
@@ -1,4 +1,4 @@
1
- import * as react28 from "react";
1
+ import * as react55 from "react";
2
2
 
3
3
  //#region packages/components/pages/NotAuthorized.d.ts
4
4
  interface NotAuthorizedProps {
@@ -37,7 +37,7 @@ declare const NotAuthorized: ({
37
37
  onButtonClick,
38
38
  className,
39
39
  iconClassName
40
- }: NotAuthorizedProps) => react28.JSX.Element;
40
+ }: NotAuthorizedProps) => react55.JSX.Element;
41
41
  //#endregion
42
42
  export { NotAuthorized, NotAuthorized as default, NotAuthorizedProps };
43
43
  //# sourceMappingURL=NotAuthorized.d.mts.map
@@ -1,2 +1,2 @@
1
- import"../button.variants-CwcJHcI5.mjs";import{t as e}from"../button-BqxBQ4Kr.mjs";import{ShieldAlert as t}from"lucide-react";import{cn as n}from"@customafk/react-toolkit/utils";import{jsx as r,jsxs as i}from"react/jsx-runtime";const a=({title:a=`Quyền truy cập bị từ chối`,subtitle:o=`Xin lỗi, bạn không có quyền truy cập vào trang này.`,buttonText:s=`Quay lại`,onButtonClick:c=()=>window.history.back(),className:l,iconClassName:u})=>i(`div`,{className:n(`flex flex-col items-center justify-center min-h-[50vh] gap-4 sm:gap-6 py-8 sm:py-10 px-4 text-center w-full`,l),children:[i(`div`,{className:`flex flex-col items-center gap-2`,children:[r(t,{className:n(`size-16 sm:size-24 text-primary`,u)}),r(`div`,{className:`text-4xl sm:text-6xl font-bold text-primary`,children:`403`})]}),r(`h1`,{className:`text-xl sm:text-2xl font-semibold mt-2`,children:a}),r(`p`,{className:`text-muted-foreground max-w-md text-sm sm:text-base`,children:o}),r(e,{onClick:c,variant:`default`,className:`mt-2`,size:`sm`,children:s})]});var o=a;export{a as NotAuthorized,o as default};
1
+ import"../button.variants-B8aRZ52K.mjs";import{t as e}from"../button-CfPTDyoq.mjs";import{ShieldAlert as t}from"lucide-react";import{cn as n}from"@customafk/react-toolkit/utils";import{jsx as r,jsxs as i}from"react/jsx-runtime";const a=({title:a=`Quyền truy cập bị từ chối`,subtitle:o=`Xin lỗi, bạn không có quyền truy cập vào trang này.`,buttonText:s=`Quay lại`,onButtonClick:c=()=>window.history.back(),className:l,iconClassName:u})=>i(`div`,{className:n(`flex flex-col items-center justify-center min-h-[50vh] gap-4 sm:gap-6 py-8 sm:py-10 px-4 text-center w-full`,l),children:[i(`div`,{className:`flex flex-col items-center gap-2`,children:[r(t,{className:n(`size-16 sm:size-24 text-primary`,u)}),r(`div`,{className:`text-4xl sm:text-6xl font-bold text-primary`,children:`403`})]}),r(`h1`,{className:`text-xl sm:text-2xl font-semibold mt-2`,children:a}),r(`p`,{className:`text-muted-foreground max-w-md text-sm sm:text-base`,children:o}),r(e,{onClick:c,variant:`default`,className:`mt-2`,size:`sm`,children:s})]});var o=a;export{a as NotAuthorized,o as default};
2
2
  //# sourceMappingURL=NotAuthorized.mjs.map
@@ -1,4 +1,4 @@
1
- import * as react3 from "react";
1
+ import * as react29 from "react";
2
2
 
3
3
  //#region packages/components/pages/NotFound.d.ts
4
4
  interface NotFoundProps {
@@ -37,7 +37,7 @@ declare const NotFound: ({
37
37
  onButtonClick,
38
38
  className,
39
39
  iconClassName
40
- }: NotFoundProps) => react3.JSX.Element;
40
+ }: NotFoundProps) => react29.JSX.Element;
41
41
  //#endregion
42
42
  export { NotFound, NotFound as default, NotFoundProps };
43
43
  //# sourceMappingURL=NotFound.d.cts.map
@@ -1,4 +1,4 @@
1
- import * as react27 from "react";
1
+ import * as react56 from "react";
2
2
 
3
3
  //#region packages/components/pages/NotFound.d.ts
4
4
  interface NotFoundProps {
@@ -37,7 +37,7 @@ declare const NotFound: ({
37
37
  onButtonClick,
38
38
  className,
39
39
  iconClassName
40
- }: NotFoundProps) => react27.JSX.Element;
40
+ }: NotFoundProps) => react56.JSX.Element;
41
41
  //#endregion
42
42
  export { NotFound, NotFound as default, NotFoundProps };
43
43
  //# sourceMappingURL=NotFound.d.mts.map
@@ -1,2 +1,2 @@
1
- import"../button.variants-CwcJHcI5.mjs";import{t as e}from"../button-BqxBQ4Kr.mjs";import{FileQuestion as t}from"lucide-react";import{cn as n}from"@customafk/react-toolkit/utils";import{jsx as r,jsxs as i}from"react/jsx-runtime";const a=({title:a=`Không tìm thấy trang`,subtitle:o=`Xin lỗi, trang bạn đang tìm kiếm không tồn tại hoặc đã bị di chuyển.`,buttonText:s=`Trở về trang chủ`,onButtonClick:c=()=>window.history.back(),className:l,iconClassName:u})=>i(`div`,{className:n(`flex flex-col items-center justify-center min-h-[50vh] gap-4 sm:gap-6 py-8 sm:py-10 px-4 text-center w-full`,l),children:[i(`div`,{className:`flex flex-col items-center gap-2`,children:[r(t,{className:n(`size-16 sm:size-24 text-primary`,u)}),r(`div`,{className:`text-4xl sm:text-6xl font-bold text-primary`,children:`404`})]}),r(`h1`,{className:`text-xl sm:text-2xl font-semibold mt-2`,children:a}),r(`p`,{className:`text-muted-foreground max-w-md text-sm sm:text-base`,children:o}),r(e,{onClick:c,variant:`default`,className:`mt-2`,size:`sm`,children:s})]});var o=a;export{a as NotFound,o as default};
1
+ import"../button.variants-B8aRZ52K.mjs";import{t as e}from"../button-CfPTDyoq.mjs";import{FileQuestion as t}from"lucide-react";import{cn as n}from"@customafk/react-toolkit/utils";import{jsx as r,jsxs as i}from"react/jsx-runtime";const a=({title:a=`Không tìm thấy trang`,subtitle:o=`Xin lỗi, trang bạn đang tìm kiếm không tồn tại hoặc đã bị di chuyển.`,buttonText:s=`Trở về trang chủ`,onButtonClick:c=()=>window.history.back(),className:l,iconClassName:u})=>i(`div`,{className:n(`flex flex-col items-center justify-center min-h-[50vh] gap-4 sm:gap-6 py-8 sm:py-10 px-4 text-center w-full`,l),children:[i(`div`,{className:`flex flex-col items-center gap-2`,children:[r(t,{className:n(`size-16 sm:size-24 text-primary`,u)}),r(`div`,{className:`text-4xl sm:text-6xl font-bold text-primary`,children:`404`})]}),r(`h1`,{className:`text-xl sm:text-2xl font-semibold mt-2`,children:a}),r(`p`,{className:`text-muted-foreground max-w-md text-sm sm:text-base`,children:o}),r(e,{onClick:c,variant:`default`,className:`mt-2`,size:`sm`,children:s})]});var o=a;export{a as NotFound,o as default};
2
2
  //# sourceMappingURL=NotFound.mjs.map
@@ -1,2 +1,2 @@
1
- "use client";const e=require(`../chunk-Bmb41Sf3.cjs`);require(`../button.variants-tnhb123u.cjs`);const t=require(`../button-Bu4ejNOW.cjs`);require(`../heading-wUXEbicM.cjs`),require(`../paragraph-D-JHj7EP.cjs`),require(`../close-DUBEKxhw.cjs`);const n=require(`../dialog-DEnyBH2X.cjs`),r=require(`../input-1ceJxxFI.cjs`),i=require(`../label-BHbqbBtO.cjs`),a=require(`../alert-4rfsFtN6.cjs`);let o=require(`lucide-react`),s=require(`react`),c=require(`react/jsx-runtime`),l=require(`zod`);const u=l.z.object({email:l.z.string().min(1,`Vui lòng nhập email`).email(`Email không hợp lệ`),password:l.z.string().min(8,`Mật khẩu phải có ít nhất 8 ký tự`).max(50,`Mật khẩu không được vượt quá 50 ký tự`).regex(/[A-Z]/,`Phải có ít nhất một chữ hoa`).regex(/[a-z]/,`Phải có ít nhất một chữ thường`).regex(/[0-9]/,`Phải có ít nhất một chữ số`).regex(/[^A-Za-z0-9]/,`Phải có ít nhất một ký tự đặc biệt`),confirmPassword:l.z.string().min(1,`Vui lòng xác nhận mật khẩu`)}).refine(e=>e.password===e.confirmPassword,{message:`Mật khẩu xác nhận không khớp`,path:[`confirmPassword`]}),d=({open:e,onOpenChange:l,onRegister:d,onLogin:f,isLoading:p=!1,errorMessage:m,title:h=`Đăng ký`,subtitle:g=`Tạo tài khoản mới để bắt đầu`})=>{let _=(0,s.useId)(),v=(0,s.useId)(),y=(0,s.useId)(),[b,x]=(0,s.useState)(``),[S,C]=(0,s.useState)(``),[w,T]=(0,s.useState)(``),[E,D]=(0,s.useState)(!1),[O,k]=(0,s.useState)(!1),[A,j]=(0,s.useState)({});return(0,c.jsx)(n.t,{open:e,onOpenChange:l,children:(0,c.jsxs)(n.r,{className:`max-sm:data-[state=open]:slide-in-from-bottom max-sm:data-[state=open]:zoom-in-100 max-sm:data-[state=closed]:slide-out-to-bottom max-sm:data-[state=closed]:zoom-out-100 max-sm:top-auto max-sm:right-0 max-sm:bottom-0 max-sm:left-0 max-sm:max-w-full max-sm:translate-x-0 max-sm:translate-y-0 max-sm:rounded-b-none sm:max-w-sm`,children:[(0,c.jsxs)(n.o,{children:[(0,c.jsx)(n.l,{children:h}),(0,c.jsx)(n.i,{children:g})]}),(0,c.jsxs)(`form`,{onSubmit:async e=>{e.preventDefault();let t=u.safeParse({email:b,password:S,confirmPassword:w});if(!t.success){let e=t.error.flatten().fieldErrors;j({email:e.email?.[0],password:e.password?.[0],confirmPassword:e.confirmPassword?.[0]});return}j({}),await d(b,S)},noValidate:!0,className:`flex flex-col gap-4`,children:[m&&(0,c.jsx)(a.t,{variant:`destructive`,children:(0,c.jsx)(a.n,{children:m})}),(0,c.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,c.jsx)(i.t,{htmlFor:_,children:`Email`}),(0,c.jsx)(r.t,{id:_,type:`email`,autoComplete:`email`,placeholder:`you@example.com`,value:b,onChange:e=>x(e.target.value),"aria-invalid":!!A.email,disabled:p}),A.email&&(0,c.jsx)(`p`,{className:`text-destructive text-xs`,children:A.email})]}),(0,c.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,c.jsx)(i.t,{htmlFor:v,children:`Mật khẩu`}),(0,c.jsxs)(`div`,{className:`relative`,children:[(0,c.jsx)(r.t,{id:v,type:E?`text`:`password`,autoComplete:`new-password`,placeholder:`••••••••`,value:S,onChange:e=>C(e.target.value),"aria-invalid":!!A.password,disabled:p,className:`pr-10`}),(0,c.jsx)(`button`,{type:`button`,className:`absolute inset-y-0 right-0 flex items-center px-3 text-muted-foreground hover:text-foreground`,onMouseDown:e=>{e.preventDefault(),D(e=>!e)},"aria-label":E?`Ẩn mật khẩu`:`Hiện mật khẩu`,children:E?(0,c.jsx)(o.EyeOff,{size:16}):(0,c.jsx)(o.Eye,{size:16})})]}),A.password?(0,c.jsx)(`p`,{className:`text-destructive text-xs`,children:A.password}):(0,c.jsx)(`p`,{className:`text-muted-foreground text-xs`,children:`Tối thiểu 8 ký tự, bao gồm chữ hoa, chữ thường, số và ký tự đặc biệt.`})]}),(0,c.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,c.jsx)(i.t,{htmlFor:y,children:`Xác nhận mật khẩu`}),(0,c.jsxs)(`div`,{className:`relative`,children:[(0,c.jsx)(r.t,{id:y,type:O?`text`:`password`,autoComplete:`new-password`,placeholder:`••••••••`,value:w,onChange:e=>T(e.target.value),"aria-invalid":!!A.confirmPassword,disabled:p,className:`pr-10`}),(0,c.jsx)(`button`,{type:`button`,className:`absolute inset-y-0 right-0 flex items-center px-3 text-muted-foreground hover:text-foreground`,onMouseDown:e=>{e.preventDefault(),k(e=>!e)},"aria-label":O?`Ẩn mật khẩu`:`Hiện mật khẩu`,children:O?(0,c.jsx)(o.EyeOff,{size:16}):(0,c.jsx)(o.Eye,{size:16})})]}),A.confirmPassword&&(0,c.jsx)(`p`,{className:`text-destructive text-xs`,children:A.confirmPassword})]}),(0,c.jsx)(t.t,{type:`submit`,isLoading:p,className:`w-full`,children:`Đăng ký`})]}),f&&(0,c.jsxs)(`div`,{className:`flex justify-center gap-1 text-muted-foreground text-sm`,children:[(0,c.jsx)(`span`,{children:`Đã có tài khoản?`}),(0,c.jsx)(t.t,{variant:`link`,size:`sm`,className:`h-auto p-0`,onClick:f,children:`Đăng nhập`})]})]})})};exports.RegisterPage=d;
1
+ "use client";const e=require(`../chunk-Bmb41Sf3.cjs`);require(`../button.variants-tnhb123u.cjs`);const t=require(`../button-Bu4ejNOW.cjs`);require(`../heading-wUXEbicM.cjs`),require(`../paragraph-D-JHj7EP.cjs`),require(`../close-DUBEKxhw.cjs`);const n=require(`../dialog-DhO0dkO3.cjs`),r=require(`../input-1ceJxxFI.cjs`),i=require(`../label-BzfsTrVt.cjs`),a=require(`../alert-4rfsFtN6.cjs`);let o=require(`lucide-react`),s=require(`react`),c=require(`react/jsx-runtime`),l=require(`zod`);const u=l.z.object({email:l.z.string().min(1,`Vui lòng nhập email`).email(`Email không hợp lệ`),password:l.z.string().min(8,`Mật khẩu phải có ít nhất 8 ký tự`).max(50,`Mật khẩu không được vượt quá 50 ký tự`).regex(/[A-Z]/,`Phải có ít nhất một chữ hoa`).regex(/[a-z]/,`Phải có ít nhất một chữ thường`).regex(/[0-9]/,`Phải có ít nhất một chữ số`).regex(/[^A-Za-z0-9]/,`Phải có ít nhất một ký tự đặc biệt`),confirmPassword:l.z.string().min(1,`Vui lòng xác nhận mật khẩu`)}).refine(e=>e.password===e.confirmPassword,{message:`Mật khẩu xác nhận không khớp`,path:[`confirmPassword`]}),d=({open:e,onOpenChange:l,onRegister:d,onLogin:f,isLoading:p=!1,errorMessage:m,title:h=`Đăng ký`,subtitle:g=`Tạo tài khoản mới để bắt đầu`})=>{let _=(0,s.useId)(),v=(0,s.useId)(),y=(0,s.useId)(),[b,x]=(0,s.useState)(``),[S,C]=(0,s.useState)(``),[w,T]=(0,s.useState)(``),[E,D]=(0,s.useState)(!1),[O,k]=(0,s.useState)(!1),[A,j]=(0,s.useState)({});return(0,c.jsx)(n.t,{open:e,onOpenChange:l,children:(0,c.jsxs)(n.r,{className:`max-sm:data-[state=open]:slide-in-from-bottom max-sm:data-[state=open]:zoom-in-100 max-sm:data-[state=closed]:slide-out-to-bottom max-sm:data-[state=closed]:zoom-out-100 max-sm:top-auto max-sm:right-0 max-sm:bottom-0 max-sm:left-0 max-sm:max-w-full max-sm:translate-x-0 max-sm:translate-y-0 max-sm:rounded-b-none sm:max-w-sm`,children:[(0,c.jsxs)(n.o,{children:[(0,c.jsx)(n.l,{children:h}),(0,c.jsx)(n.i,{children:g})]}),(0,c.jsxs)(`form`,{onSubmit:async e=>{e.preventDefault();let t=u.safeParse({email:b,password:S,confirmPassword:w});if(!t.success){let e=t.error.flatten().fieldErrors;j({email:e.email?.[0],password:e.password?.[0],confirmPassword:e.confirmPassword?.[0]});return}j({}),await d(b,S)},noValidate:!0,className:`flex flex-col gap-4`,children:[m&&(0,c.jsx)(a.t,{variant:`destructive`,children:(0,c.jsx)(a.n,{children:m})}),(0,c.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,c.jsx)(i.t,{htmlFor:_,children:`Email`}),(0,c.jsx)(r.t,{id:_,type:`email`,autoComplete:`email`,placeholder:`you@example.com`,value:b,onChange:e=>x(e.target.value),"aria-invalid":!!A.email,disabled:p}),A.email&&(0,c.jsx)(`p`,{className:`text-destructive text-xs`,children:A.email})]}),(0,c.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,c.jsx)(i.t,{htmlFor:v,children:`Mật khẩu`}),(0,c.jsxs)(`div`,{className:`relative`,children:[(0,c.jsx)(r.t,{id:v,type:E?`text`:`password`,autoComplete:`new-password`,placeholder:`••••••••`,value:S,onChange:e=>C(e.target.value),"aria-invalid":!!A.password,disabled:p,className:`pr-10`}),(0,c.jsx)(`button`,{type:`button`,className:`absolute inset-y-0 right-0 flex items-center px-3 text-muted-foreground hover:text-foreground`,onMouseDown:e=>{e.preventDefault(),D(e=>!e)},"aria-label":E?`Ẩn mật khẩu`:`Hiện mật khẩu`,children:E?(0,c.jsx)(o.EyeOff,{size:16}):(0,c.jsx)(o.Eye,{size:16})})]}),A.password?(0,c.jsx)(`p`,{className:`text-destructive text-xs`,children:A.password}):(0,c.jsx)(`p`,{className:`text-muted-foreground text-xs`,children:`Tối thiểu 8 ký tự, bao gồm chữ hoa, chữ thường, số và ký tự đặc biệt.`})]}),(0,c.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,c.jsx)(i.t,{htmlFor:y,children:`Xác nhận mật khẩu`}),(0,c.jsxs)(`div`,{className:`relative`,children:[(0,c.jsx)(r.t,{id:y,type:O?`text`:`password`,autoComplete:`new-password`,placeholder:`••••••••`,value:w,onChange:e=>T(e.target.value),"aria-invalid":!!A.confirmPassword,disabled:p,className:`pr-10`}),(0,c.jsx)(`button`,{type:`button`,className:`absolute inset-y-0 right-0 flex items-center px-3 text-muted-foreground hover:text-foreground`,onMouseDown:e=>{e.preventDefault(),k(e=>!e)},"aria-label":O?`Ẩn mật khẩu`:`Hiện mật khẩu`,children:O?(0,c.jsx)(o.EyeOff,{size:16}):(0,c.jsx)(o.Eye,{size:16})})]}),A.confirmPassword&&(0,c.jsx)(`p`,{className:`text-destructive text-xs`,children:A.confirmPassword})]}),(0,c.jsx)(t.t,{type:`submit`,isLoading:p,className:`w-full`,children:`Đăng ký`})]}),f&&(0,c.jsxs)(`div`,{className:`flex justify-center gap-1 text-muted-foreground text-sm`,children:[(0,c.jsx)(`span`,{children:`Đã có tài khoản?`}),(0,c.jsx)(t.t,{variant:`link`,size:`sm`,className:`h-auto p-0`,onClick:f,children:`Đăng nhập`})]})]})})};exports.RegisterPage=d;
2
2
  //# sourceMappingURL=RegisterPage.cjs.map
@@ -1,4 +1,4 @@
1
- import * as react6 from "react";
1
+ import * as react34 from "react";
2
2
 
3
3
  //#region packages/components/pages/RegisterPage.d.ts
4
4
  interface RegisterPageProps {
@@ -46,7 +46,7 @@ declare const RegisterPage: ({
46
46
  errorMessage,
47
47
  title,
48
48
  subtitle
49
- }: RegisterPageProps) => react6.JSX.Element;
49
+ }: RegisterPageProps) => react34.JSX.Element;
50
50
  //#endregion
51
51
  export { RegisterPage, RegisterPageProps };
52
52
  //# sourceMappingURL=RegisterPage.d.cts.map
@@ -1,4 +1,4 @@
1
- import * as react26 from "react";
1
+ import * as react201 from "react";
2
2
 
3
3
  //#region packages/components/pages/RegisterPage.d.ts
4
4
  interface RegisterPageProps {
@@ -46,7 +46,7 @@ declare const RegisterPage: ({
46
46
  errorMessage,
47
47
  title,
48
48
  subtitle
49
- }: RegisterPageProps) => react26.JSX.Element;
49
+ }: RegisterPageProps) => react201.JSX.Element;
50
50
  //#endregion
51
51
  export { RegisterPage, RegisterPageProps };
52
52
  //# sourceMappingURL=RegisterPage.d.mts.map
@@ -1,2 +1,2 @@
1
- "use client";import"../button.variants-CwcJHcI5.mjs";import{t as e}from"../button-BqxBQ4Kr.mjs";import"../heading-B1t9baTw.mjs";import"../paragraph-J_QbLq9_.mjs";import"../close-BMhGSmGs.mjs";import{i as t,l as n,o as r,r as i,t as a}from"../dialog-jqiIqxlm.mjs";import{t as o}from"../input-CKFQdvqY.mjs";import{t as s}from"../label-CE2m0U_j.mjs";import{n as c,t as l}from"../alert-BC5Nss8t.mjs";import{Eye as u,EyeOff as d}from"lucide-react";import{useId as f,useState as p}from"react";import{jsx as m,jsxs as h}from"react/jsx-runtime";import{z as g}from"zod";const _=g.object({email:g.string().min(1,`Vui lòng nhập email`).email(`Email không hợp lệ`),password:g.string().min(8,`Mật khẩu phải có ít nhất 8 ký tự`).max(50,`Mật khẩu không được vượt quá 50 ký tự`).regex(/[A-Z]/,`Phải có ít nhất một chữ hoa`).regex(/[a-z]/,`Phải có ít nhất một chữ thường`).regex(/[0-9]/,`Phải có ít nhất một chữ số`).regex(/[^A-Za-z0-9]/,`Phải có ít nhất một ký tự đặc biệt`),confirmPassword:g.string().min(1,`Vui lòng xác nhận mật khẩu`)}).refine(e=>e.password===e.confirmPassword,{message:`Mật khẩu xác nhận không khớp`,path:[`confirmPassword`]}),v=({open:g,onOpenChange:v,onRegister:y,onLogin:b,isLoading:x=!1,errorMessage:S,title:C=`Đăng ký`,subtitle:w=`Tạo tài khoản mới để bắt đầu`})=>{let T=f(),E=f(),D=f(),[O,k]=p(``),[A,j]=p(``),[M,N]=p(``),[P,F]=p(!1),[I,L]=p(!1),[R,z]=p({});return m(a,{open:g,onOpenChange:v,children:h(i,{className:`max-sm:data-[state=open]:slide-in-from-bottom max-sm:data-[state=open]:zoom-in-100 max-sm:data-[state=closed]:slide-out-to-bottom max-sm:data-[state=closed]:zoom-out-100 max-sm:top-auto max-sm:right-0 max-sm:bottom-0 max-sm:left-0 max-sm:max-w-full max-sm:translate-x-0 max-sm:translate-y-0 max-sm:rounded-b-none sm:max-w-sm`,children:[h(r,{children:[m(n,{children:C}),m(t,{children:w})]}),h(`form`,{onSubmit:async e=>{e.preventDefault();let t=_.safeParse({email:O,password:A,confirmPassword:M});if(!t.success){let e=t.error.flatten().fieldErrors;z({email:e.email?.[0],password:e.password?.[0],confirmPassword:e.confirmPassword?.[0]});return}z({}),await y(O,A)},noValidate:!0,className:`flex flex-col gap-4`,children:[S&&m(l,{variant:`destructive`,children:m(c,{children:S})}),h(`div`,{className:`flex flex-col gap-1.5`,children:[m(s,{htmlFor:T,children:`Email`}),m(o,{id:T,type:`email`,autoComplete:`email`,placeholder:`you@example.com`,value:O,onChange:e=>k(e.target.value),"aria-invalid":!!R.email,disabled:x}),R.email&&m(`p`,{className:`text-destructive text-xs`,children:R.email})]}),h(`div`,{className:`flex flex-col gap-1.5`,children:[m(s,{htmlFor:E,children:`Mật khẩu`}),h(`div`,{className:`relative`,children:[m(o,{id:E,type:P?`text`:`password`,autoComplete:`new-password`,placeholder:`••••••••`,value:A,onChange:e=>j(e.target.value),"aria-invalid":!!R.password,disabled:x,className:`pr-10`}),m(`button`,{type:`button`,className:`absolute inset-y-0 right-0 flex items-center px-3 text-muted-foreground hover:text-foreground`,onMouseDown:e=>{e.preventDefault(),F(e=>!e)},"aria-label":P?`Ẩn mật khẩu`:`Hiện mật khẩu`,children:m(P?d:u,{size:16})})]}),R.password?m(`p`,{className:`text-destructive text-xs`,children:R.password}):m(`p`,{className:`text-muted-foreground text-xs`,children:`Tối thiểu 8 ký tự, bao gồm chữ hoa, chữ thường, số và ký tự đặc biệt.`})]}),h(`div`,{className:`flex flex-col gap-1.5`,children:[m(s,{htmlFor:D,children:`Xác nhận mật khẩu`}),h(`div`,{className:`relative`,children:[m(o,{id:D,type:I?`text`:`password`,autoComplete:`new-password`,placeholder:`••••••••`,value:M,onChange:e=>N(e.target.value),"aria-invalid":!!R.confirmPassword,disabled:x,className:`pr-10`}),m(`button`,{type:`button`,className:`absolute inset-y-0 right-0 flex items-center px-3 text-muted-foreground hover:text-foreground`,onMouseDown:e=>{e.preventDefault(),L(e=>!e)},"aria-label":I?`Ẩn mật khẩu`:`Hiện mật khẩu`,children:m(I?d:u,{size:16})})]}),R.confirmPassword&&m(`p`,{className:`text-destructive text-xs`,children:R.confirmPassword})]}),m(e,{type:`submit`,isLoading:x,className:`w-full`,children:`Đăng ký`})]}),b&&h(`div`,{className:`flex justify-center gap-1 text-muted-foreground text-sm`,children:[m(`span`,{children:`Đã có tài khoản?`}),m(e,{variant:`link`,size:`sm`,className:`h-auto p-0`,onClick:b,children:`Đăng nhập`})]})]})})};export{v as RegisterPage};
1
+ "use client";import"../button.variants-B8aRZ52K.mjs";import{t as e}from"../button-CfPTDyoq.mjs";import"../heading-woRh-IC7.mjs";import"../paragraph-CjstaJFj.mjs";import"../close-DTBepcqW.mjs";import{i as t,l as n,o as r,r as i,t as a}from"../dialog-Bly2YImt.mjs";import{t as o}from"../input-ESg91VId.mjs";import{t as s}from"../label-Cig7a9ON.mjs";import{n as c,t as l}from"../alert-BbInRLt4.mjs";import{Eye as u,EyeOff as d}from"lucide-react";import{useId as f,useState as p}from"react";import{jsx as m,jsxs as h}from"react/jsx-runtime";import{z as g}from"zod";const _=g.object({email:g.string().min(1,`Vui lòng nhập email`).email(`Email không hợp lệ`),password:g.string().min(8,`Mật khẩu phải có ít nhất 8 ký tự`).max(50,`Mật khẩu không được vượt quá 50 ký tự`).regex(/[A-Z]/,`Phải có ít nhất một chữ hoa`).regex(/[a-z]/,`Phải có ít nhất một chữ thường`).regex(/[0-9]/,`Phải có ít nhất một chữ số`).regex(/[^A-Za-z0-9]/,`Phải có ít nhất một ký tự đặc biệt`),confirmPassword:g.string().min(1,`Vui lòng xác nhận mật khẩu`)}).refine(e=>e.password===e.confirmPassword,{message:`Mật khẩu xác nhận không khớp`,path:[`confirmPassword`]}),v=({open:g,onOpenChange:v,onRegister:y,onLogin:b,isLoading:x=!1,errorMessage:S,title:C=`Đăng ký`,subtitle:w=`Tạo tài khoản mới để bắt đầu`})=>{let T=f(),E=f(),D=f(),[O,k]=p(``),[A,j]=p(``),[M,N]=p(``),[P,F]=p(!1),[I,L]=p(!1),[R,z]=p({});return m(a,{open:g,onOpenChange:v,children:h(i,{className:`max-sm:data-[state=open]:slide-in-from-bottom max-sm:data-[state=open]:zoom-in-100 max-sm:data-[state=closed]:slide-out-to-bottom max-sm:data-[state=closed]:zoom-out-100 max-sm:top-auto max-sm:right-0 max-sm:bottom-0 max-sm:left-0 max-sm:max-w-full max-sm:translate-x-0 max-sm:translate-y-0 max-sm:rounded-b-none sm:max-w-sm`,children:[h(r,{children:[m(n,{children:C}),m(t,{children:w})]}),h(`form`,{onSubmit:async e=>{e.preventDefault();let t=_.safeParse({email:O,password:A,confirmPassword:M});if(!t.success){let e=t.error.flatten().fieldErrors;z({email:e.email?.[0],password:e.password?.[0],confirmPassword:e.confirmPassword?.[0]});return}z({}),await y(O,A)},noValidate:!0,className:`flex flex-col gap-4`,children:[S&&m(l,{variant:`destructive`,children:m(c,{children:S})}),h(`div`,{className:`flex flex-col gap-1.5`,children:[m(s,{htmlFor:T,children:`Email`}),m(o,{id:T,type:`email`,autoComplete:`email`,placeholder:`you@example.com`,value:O,onChange:e=>k(e.target.value),"aria-invalid":!!R.email,disabled:x}),R.email&&m(`p`,{className:`text-destructive text-xs`,children:R.email})]}),h(`div`,{className:`flex flex-col gap-1.5`,children:[m(s,{htmlFor:E,children:`Mật khẩu`}),h(`div`,{className:`relative`,children:[m(o,{id:E,type:P?`text`:`password`,autoComplete:`new-password`,placeholder:`••••••••`,value:A,onChange:e=>j(e.target.value),"aria-invalid":!!R.password,disabled:x,className:`pr-10`}),m(`button`,{type:`button`,className:`absolute inset-y-0 right-0 flex items-center px-3 text-muted-foreground hover:text-foreground`,onMouseDown:e=>{e.preventDefault(),F(e=>!e)},"aria-label":P?`Ẩn mật khẩu`:`Hiện mật khẩu`,children:m(P?d:u,{size:16})})]}),R.password?m(`p`,{className:`text-destructive text-xs`,children:R.password}):m(`p`,{className:`text-muted-foreground text-xs`,children:`Tối thiểu 8 ký tự, bao gồm chữ hoa, chữ thường, số và ký tự đặc biệt.`})]}),h(`div`,{className:`flex flex-col gap-1.5`,children:[m(s,{htmlFor:D,children:`Xác nhận mật khẩu`}),h(`div`,{className:`relative`,children:[m(o,{id:D,type:I?`text`:`password`,autoComplete:`new-password`,placeholder:`••••••••`,value:M,onChange:e=>N(e.target.value),"aria-invalid":!!R.confirmPassword,disabled:x,className:`pr-10`}),m(`button`,{type:`button`,className:`absolute inset-y-0 right-0 flex items-center px-3 text-muted-foreground hover:text-foreground`,onMouseDown:e=>{e.preventDefault(),L(e=>!e)},"aria-label":I?`Ẩn mật khẩu`:`Hiện mật khẩu`,children:m(I?d:u,{size:16})})]}),R.confirmPassword&&m(`p`,{className:`text-destructive text-xs`,children:R.confirmPassword})]}),m(e,{type:`submit`,isLoading:x,className:`w-full`,children:`Đăng ký`})]}),b&&h(`div`,{className:`flex justify-center gap-1 text-muted-foreground text-sm`,children:[m(`span`,{children:`Đã có tài khoản?`}),m(e,{variant:`link`,size:`sm`,className:`h-auto p-0`,onClick:b,children:`Đăng nhập`})]})]})})};export{v as RegisterPage};
2
2
  //# sourceMappingURL=RegisterPage.mjs.map
@@ -1,2 +1,2 @@
1
- "use client";const e=require(`../chunk-Bmb41Sf3.cjs`);require(`../button.variants-tnhb123u.cjs`);const t=require(`../button-Bu4ejNOW.cjs`);require(`../heading-wUXEbicM.cjs`),require(`../paragraph-D-JHj7EP.cjs`),require(`../close-DUBEKxhw.cjs`);const n=require(`../dialog-DEnyBH2X.cjs`),r=require(`../alert-4rfsFtN6.cjs`),i=require(`../ui/input-otp.cjs`);let a=require(`react`),o=require(`react/jsx-runtime`);const s=({open:e,onOpenChange:s,email:c,onVerify:l,onResend:u,onBack:d,isLoading:f=!1,errorMessage:p,title:m=`Xác thực email`,subtitle:h,resendCooldownSeconds:g=60})=>{let[_,v]=(0,a.useState)(``),[y,b]=(0,a.useState)(g),x=(0,a.useRef)(null),S=(0,a.useCallback)(e=>{x.current&&clearInterval(x.current),b(e),x.current=setInterval(()=>{b(e=>e<=1?(x.current&&clearInterval(x.current),0):e-1)},1e3)},[]);(0,a.useEffect)(()=>(e&&g>0&&S(g),()=>{x.current&&clearInterval(x.current)}),[e,g,S]);let C=(0,a.useCallback)(async()=>{S(g),await u(c)},[c,u,g,S]),w=(0,a.useCallback)(async()=>{_.length<6||await l(c,_)},[c,_,l]);return(0,o.jsx)(n.t,{open:e,onOpenChange:s,children:(0,o.jsxs)(n.r,{className:`max-sm:data-[state=open]:slide-in-from-bottom max-sm:data-[state=open]:zoom-in-100 max-sm:data-[state=closed]:slide-out-to-bottom max-sm:data-[state=closed]:zoom-out-100 max-sm:top-auto max-sm:right-0 max-sm:bottom-0 max-sm:left-0 max-sm:max-w-full max-sm:translate-x-0 max-sm:translate-y-0 max-sm:rounded-b-none sm:max-w-sm`,children:[(0,o.jsxs)(n.o,{children:[(0,o.jsx)(n.l,{children:m}),(0,o.jsx)(n.i,{children:h??(0,o.jsxs)(o.Fragment,{children:[`Nhập mã OTP đã được gửi tới `,(0,o.jsx)(`span`,{className:`font-medium text-foreground`,children:c}),`. Mã có hiệu lực trong 10 phút.`]})})]}),(0,o.jsxs)(`div`,{className:`flex flex-col items-center gap-4`,children:[p&&(0,o.jsx)(r.t,{variant:`destructive`,className:`w-full`,children:(0,o.jsx)(r.n,{children:p})}),(0,o.jsxs)(i.InputOTP,{maxLength:6,value:_,onChange:v,onComplete:w,disabled:f,children:[(0,o.jsxs)(i.InputOTPGroup,{children:[(0,o.jsx)(i.InputOTPSlot,{index:0}),(0,o.jsx)(i.InputOTPSlot,{index:1}),(0,o.jsx)(i.InputOTPSlot,{index:2})]}),(0,o.jsx)(i.InputOTPSeparator,{}),(0,o.jsxs)(i.InputOTPGroup,{children:[(0,o.jsx)(i.InputOTPSlot,{index:3}),(0,o.jsx)(i.InputOTPSlot,{index:4}),(0,o.jsx)(i.InputOTPSlot,{index:5})]})]}),(0,o.jsx)(t.t,{type:`button`,isLoading:f,disabled:_.length<6,className:`w-full`,onClick:w,children:`Xác thực`}),(0,o.jsxs)(`div`,{className:`flex items-center gap-1 text-muted-foreground text-sm`,children:[(0,o.jsx)(`span`,{children:`Chưa nhận được mã?`}),(0,o.jsx)(t.t,{variant:`link`,size:`sm`,className:`h-auto p-0`,disabled:y>0||f,onClick:C,children:y>0?`Gửi lại (${y}s)`:`Gửi lại`})]}),d&&(0,o.jsx)(t.t,{variant:`ghost`,size:`sm`,className:`w-full`,onClick:d,children:`Quay lại`})]})]})})};exports.VerifyEmailPage=s;
1
+ "use client";const e=require(`../chunk-Bmb41Sf3.cjs`);require(`../button.variants-tnhb123u.cjs`);const t=require(`../button-Bu4ejNOW.cjs`);require(`../heading-wUXEbicM.cjs`),require(`../paragraph-D-JHj7EP.cjs`),require(`../close-DUBEKxhw.cjs`);const n=require(`../dialog-DhO0dkO3.cjs`),r=require(`../alert-4rfsFtN6.cjs`),i=require(`../ui/input-otp.cjs`);let a=require(`react`),o=require(`react/jsx-runtime`);const s=({open:e,onOpenChange:s,email:c,onVerify:l,onResend:u,onBack:d,isLoading:f=!1,errorMessage:p,title:m=`Xác thực email`,subtitle:h,resendCooldownSeconds:g=60})=>{let[_,v]=(0,a.useState)(``),[y,b]=(0,a.useState)(g),x=(0,a.useRef)(null),S=(0,a.useCallback)(e=>{x.current&&clearInterval(x.current),b(e),x.current=setInterval(()=>{b(e=>e<=1?(x.current&&clearInterval(x.current),0):e-1)},1e3)},[]);(0,a.useEffect)(()=>(e&&g>0&&S(g),()=>{x.current&&clearInterval(x.current)}),[e,g,S]);let C=(0,a.useCallback)(async()=>{S(g),await u(c)},[c,u,g,S]),w=(0,a.useCallback)(async()=>{_.length<6||await l(c,_)},[c,_,l]);return(0,o.jsx)(n.t,{open:e,onOpenChange:s,children:(0,o.jsxs)(n.r,{className:`max-sm:data-[state=open]:slide-in-from-bottom max-sm:data-[state=open]:zoom-in-100 max-sm:data-[state=closed]:slide-out-to-bottom max-sm:data-[state=closed]:zoom-out-100 max-sm:top-auto max-sm:right-0 max-sm:bottom-0 max-sm:left-0 max-sm:max-w-full max-sm:translate-x-0 max-sm:translate-y-0 max-sm:rounded-b-none sm:max-w-sm`,children:[(0,o.jsxs)(n.o,{children:[(0,o.jsx)(n.l,{children:m}),(0,o.jsx)(n.i,{children:h??(0,o.jsxs)(o.Fragment,{children:[`Nhập mã OTP đã được gửi tới `,(0,o.jsx)(`span`,{className:`font-medium text-foreground`,children:c}),`. Mã có hiệu lực trong 10 phút.`]})})]}),(0,o.jsxs)(`div`,{className:`flex flex-col items-center gap-4`,children:[p&&(0,o.jsx)(r.t,{variant:`destructive`,className:`w-full`,children:(0,o.jsx)(r.n,{children:p})}),(0,o.jsxs)(i.InputOTP,{maxLength:6,value:_,onChange:v,onComplete:w,disabled:f,children:[(0,o.jsxs)(i.InputOTPGroup,{children:[(0,o.jsx)(i.InputOTPSlot,{index:0}),(0,o.jsx)(i.InputOTPSlot,{index:1}),(0,o.jsx)(i.InputOTPSlot,{index:2})]}),(0,o.jsx)(i.InputOTPSeparator,{}),(0,o.jsxs)(i.InputOTPGroup,{children:[(0,o.jsx)(i.InputOTPSlot,{index:3}),(0,o.jsx)(i.InputOTPSlot,{index:4}),(0,o.jsx)(i.InputOTPSlot,{index:5})]})]}),(0,o.jsx)(t.t,{type:`button`,isLoading:f,disabled:_.length<6,className:`w-full`,onClick:w,children:`Xác thực`}),(0,o.jsxs)(`div`,{className:`flex items-center gap-1 text-muted-foreground text-sm`,children:[(0,o.jsx)(`span`,{children:`Chưa nhận được mã?`}),(0,o.jsx)(t.t,{variant:`link`,size:`sm`,className:`h-auto p-0`,disabled:y>0||f,onClick:C,children:y>0?`Gửi lại (${y}s)`:`Gửi lại`})]}),d&&(0,o.jsx)(t.t,{variant:`ghost`,size:`sm`,className:`w-full`,onClick:d,children:`Quay lại`})]})]})})};exports.VerifyEmailPage=s;
2
2
  //# sourceMappingURL=VerifyEmailPage.cjs.map
@@ -1,4 +1,4 @@
1
- import * as react0 from "react";
1
+ import * as react33 from "react";
2
2
 
3
3
  //#region packages/components/pages/VerifyEmailPage.d.ts
4
4
  interface VerifyEmailPageProps {
@@ -58,7 +58,7 @@ declare const VerifyEmailPage: ({
58
58
  title,
59
59
  subtitle,
60
60
  resendCooldownSeconds
61
- }: VerifyEmailPageProps) => react0.JSX.Element;
61
+ }: VerifyEmailPageProps) => react33.JSX.Element;
62
62
  //#endregion
63
63
  export { VerifyEmailPage, VerifyEmailPageProps };
64
64
  //# sourceMappingURL=VerifyEmailPage.d.cts.map
@@ -1,4 +1,4 @@
1
- import * as react46 from "react";
1
+ import * as react3 from "react";
2
2
 
3
3
  //#region packages/components/pages/VerifyEmailPage.d.ts
4
4
  interface VerifyEmailPageProps {
@@ -58,7 +58,7 @@ declare const VerifyEmailPage: ({
58
58
  title,
59
59
  subtitle,
60
60
  resendCooldownSeconds
61
- }: VerifyEmailPageProps) => react46.JSX.Element;
61
+ }: VerifyEmailPageProps) => react3.JSX.Element;
62
62
  //#endregion
63
63
  export { VerifyEmailPage, VerifyEmailPageProps };
64
64
  //# sourceMappingURL=VerifyEmailPage.d.mts.map
@@ -1,2 +1,2 @@
1
- "use client";import"../button.variants-CwcJHcI5.mjs";import{t as e}from"../button-BqxBQ4Kr.mjs";import"../heading-B1t9baTw.mjs";import"../paragraph-J_QbLq9_.mjs";import"../close-BMhGSmGs.mjs";import{i as t,l as n,o as r,r as i,t as a}from"../dialog-jqiIqxlm.mjs";import{n as o,t as s}from"../alert-BC5Nss8t.mjs";import{InputOTP as c,InputOTPGroup as l,InputOTPSeparator as u,InputOTPSlot as d}from"../ui/input-otp.mjs";import{useCallback as f,useEffect as p,useRef as m,useState as h}from"react";import{Fragment as g,jsx as _,jsxs as v}from"react/jsx-runtime";const y=({open:y,onOpenChange:b,email:x,onVerify:S,onResend:C,onBack:w,isLoading:T=!1,errorMessage:E,title:D=`Xác thực email`,subtitle:O,resendCooldownSeconds:k=60})=>{let[A,j]=h(``),[M,N]=h(k),P=m(null),F=f(e=>{P.current&&clearInterval(P.current),N(e),P.current=setInterval(()=>{N(e=>e<=1?(P.current&&clearInterval(P.current),0):e-1)},1e3)},[]);p(()=>(y&&k>0&&F(k),()=>{P.current&&clearInterval(P.current)}),[y,k,F]);let I=f(async()=>{F(k),await C(x)},[x,C,k,F]),L=f(async()=>{A.length<6||await S(x,A)},[x,A,S]);return _(a,{open:y,onOpenChange:b,children:v(i,{className:`max-sm:data-[state=open]:slide-in-from-bottom max-sm:data-[state=open]:zoom-in-100 max-sm:data-[state=closed]:slide-out-to-bottom max-sm:data-[state=closed]:zoom-out-100 max-sm:top-auto max-sm:right-0 max-sm:bottom-0 max-sm:left-0 max-sm:max-w-full max-sm:translate-x-0 max-sm:translate-y-0 max-sm:rounded-b-none sm:max-w-sm`,children:[v(r,{children:[_(n,{children:D}),_(t,{children:O??v(g,{children:[`Nhập mã OTP đã được gửi tới `,_(`span`,{className:`font-medium text-foreground`,children:x}),`. Mã có hiệu lực trong 10 phút.`]})})]}),v(`div`,{className:`flex flex-col items-center gap-4`,children:[E&&_(s,{variant:`destructive`,className:`w-full`,children:_(o,{children:E})}),v(c,{maxLength:6,value:A,onChange:j,onComplete:L,disabled:T,children:[v(l,{children:[_(d,{index:0}),_(d,{index:1}),_(d,{index:2})]}),_(u,{}),v(l,{children:[_(d,{index:3}),_(d,{index:4}),_(d,{index:5})]})]}),_(e,{type:`button`,isLoading:T,disabled:A.length<6,className:`w-full`,onClick:L,children:`Xác thực`}),v(`div`,{className:`flex items-center gap-1 text-muted-foreground text-sm`,children:[_(`span`,{children:`Chưa nhận được mã?`}),_(e,{variant:`link`,size:`sm`,className:`h-auto p-0`,disabled:M>0||T,onClick:I,children:M>0?`Gửi lại (${M}s)`:`Gửi lại`})]}),w&&_(e,{variant:`ghost`,size:`sm`,className:`w-full`,onClick:w,children:`Quay lại`})]})]})})};export{y as VerifyEmailPage};
1
+ "use client";import"../button.variants-B8aRZ52K.mjs";import{t as e}from"../button-CfPTDyoq.mjs";import"../heading-woRh-IC7.mjs";import"../paragraph-CjstaJFj.mjs";import"../close-DTBepcqW.mjs";import{i as t,l as n,o as r,r as i,t as a}from"../dialog-Bly2YImt.mjs";import{n as o,t as s}from"../alert-BbInRLt4.mjs";import{InputOTP as c,InputOTPGroup as l,InputOTPSeparator as u,InputOTPSlot as d}from"../ui/input-otp.mjs";import{useCallback as f,useEffect as p,useRef as m,useState as h}from"react";import{Fragment as g,jsx as _,jsxs as v}from"react/jsx-runtime";const y=({open:y,onOpenChange:b,email:x,onVerify:S,onResend:C,onBack:w,isLoading:T=!1,errorMessage:E,title:D=`Xác thực email`,subtitle:O,resendCooldownSeconds:k=60})=>{let[A,j]=h(``),[M,N]=h(k),P=m(null),F=f(e=>{P.current&&clearInterval(P.current),N(e),P.current=setInterval(()=>{N(e=>e<=1?(P.current&&clearInterval(P.current),0):e-1)},1e3)},[]);p(()=>(y&&k>0&&F(k),()=>{P.current&&clearInterval(P.current)}),[y,k,F]);let I=f(async()=>{F(k),await C(x)},[x,C,k,F]),L=f(async()=>{A.length<6||await S(x,A)},[x,A,S]);return _(a,{open:y,onOpenChange:b,children:v(i,{className:`max-sm:data-[state=open]:slide-in-from-bottom max-sm:data-[state=open]:zoom-in-100 max-sm:data-[state=closed]:slide-out-to-bottom max-sm:data-[state=closed]:zoom-out-100 max-sm:top-auto max-sm:right-0 max-sm:bottom-0 max-sm:left-0 max-sm:max-w-full max-sm:translate-x-0 max-sm:translate-y-0 max-sm:rounded-b-none sm:max-w-sm`,children:[v(r,{children:[_(n,{children:D}),_(t,{children:O??v(g,{children:[`Nhập mã OTP đã được gửi tới `,_(`span`,{className:`font-medium text-foreground`,children:x}),`. Mã có hiệu lực trong 10 phút.`]})})]}),v(`div`,{className:`flex flex-col items-center gap-4`,children:[E&&_(s,{variant:`destructive`,className:`w-full`,children:_(o,{children:E})}),v(c,{maxLength:6,value:A,onChange:j,onComplete:L,disabled:T,children:[v(l,{children:[_(d,{index:0}),_(d,{index:1}),_(d,{index:2})]}),_(u,{}),v(l,{children:[_(d,{index:3}),_(d,{index:4}),_(d,{index:5})]})]}),_(e,{type:`button`,isLoading:T,disabled:A.length<6,className:`w-full`,onClick:L,children:`Xác thực`}),v(`div`,{className:`flex items-center gap-1 text-muted-foreground text-sm`,children:[_(`span`,{children:`Chưa nhận được mã?`}),_(e,{variant:`link`,size:`sm`,className:`h-auto p-0`,disabled:M>0||T,onClick:I,children:M>0?`Gửi lại (${M}s)`:`Gửi lại`})]}),w&&_(e,{variant:`ghost`,size:`sm`,className:`w-full`,onClick:w,children:`Quay lại`})]})]})})};export{y as VerifyEmailPage};
2
2
  //# sourceMappingURL=VerifyEmailPage.mjs.map