@customafk/lunas-ui 0.0.91 → 0.0.93

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 (251) hide show
  1. package/dist/{add-new-yRbAl8jO.js → add-new-CDApqBax.js} +2 -2
  2. package/dist/{add-new-yRbAl8jO.js.map → add-new-CDApqBax.js.map} +1 -1
  3. package/dist/{add-new-Dv7zlN-B.cjs → add-new-D-WSaAM3.cjs} +2 -2
  4. package/dist/{add-new-Dv7zlN-B.cjs.map → add-new-D-WSaAM3.cjs.map} +1 -1
  5. package/dist/{avatar-CAr8qOV9.cjs → avatar-96dXWrWU.cjs} +1 -1
  6. package/dist/{avatar-CAr8qOV9.cjs.map → avatar-96dXWrWU.cjs.map} +1 -1
  7. package/dist/{avatar-zx6-WY2L.js → avatar-CcbiQ1mq.js} +1 -1
  8. package/dist/{avatar-zx6-WY2L.js.map → avatar-CcbiQ1mq.js.map} +1 -1
  9. package/dist/{badge-_7ZCk7u2.cjs → badge-B1y6KFfh.cjs} +1 -1
  10. package/dist/{badge-_7ZCk7u2.cjs.map → badge-B1y6KFfh.cjs.map} +1 -1
  11. package/dist/{badge-DFlMOdsm.js → badge-DWc4Idn2.js} +1 -1
  12. package/dist/{badge-DFlMOdsm.js.map → badge-DWc4Idn2.js.map} +1 -1
  13. package/dist/{button-BuyrlYHs.d.cts → button-Cmrl9fVS.d.cts} +5 -5
  14. package/dist/{button-BP2S40Lh.d.ts → button-D8ha3suV.d.ts} +5 -5
  15. package/dist/cards/simple-card.d.ts +2 -2
  16. package/dist/{command-mz4oiB8D.d.ts → command-BvD9KzBE.d.ts} +12 -12
  17. package/dist/{command-FHT81qCY.d.cts → command-DcLWxu3u.d.cts} +12 -12
  18. package/dist/data-display/country.cjs +1 -1
  19. package/dist/data-display/country.js +1 -1
  20. package/dist/data-display/date-tooltip.cjs +1 -1
  21. package/dist/data-display/date-tooltip.js +1 -1
  22. package/dist/data-display/date.cjs +1 -1
  23. package/dist/data-display/date.js +1 -1
  24. package/dist/data-display/empty.d.cts +2 -2
  25. package/dist/data-display/name.cjs +1 -1
  26. package/dist/data-display/name.js +1 -1
  27. package/dist/data-display/phone-number.cjs +1 -1
  28. package/dist/data-display/phone-number.js +1 -1
  29. package/dist/data-display/role-badge.cjs +1 -1
  30. package/dist/data-display/role-badge.js +1 -1
  31. package/dist/data-display/statistic.d.cts +2 -2
  32. package/dist/data-display/statistic.d.ts +2 -2
  33. package/dist/data-display/user.cjs +1 -1
  34. package/dist/data-display/user.js +1 -1
  35. package/dist/{date-BIb58beV.js → date-4JlD-xYj.js} +1 -1
  36. package/dist/{date-BIb58beV.js.map → date-4JlD-xYj.js.map} +1 -1
  37. package/dist/{date-Bv13VRWU.cjs → date-vWvu4M91.cjs} +1 -1
  38. package/dist/{date-Bv13VRWU.cjs.map → date-vWvu4M91.cjs.map} +1 -1
  39. package/dist/{dialog-JtlljVFY.d.ts → dialog-BFte9fya.d.ts} +12 -12
  40. package/dist/{dialog-DEixzKid.d.cts → dialog-BRaqPBK5.d.cts} +12 -12
  41. package/dist/dialogs/detail-dialog/component/sidebar.cjs +1 -1
  42. package/dist/dialogs/detail-dialog/component/sidebar.d.cts +30 -30
  43. package/dist/dialogs/detail-dialog/component/sidebar.d.ts +3 -3
  44. package/dist/dialogs/detail-dialog/component/sidebar.js +1 -1
  45. package/dist/dialogs/detail-dialog/index.cjs +1 -1
  46. package/dist/dialogs/detail-dialog/index.js +1 -1
  47. package/dist/dialogs/form-dialog.cjs +1 -1
  48. package/dist/dialogs/form-dialog.d.cts +2 -2
  49. package/dist/dialogs/form-dialog.d.ts +2 -2
  50. package/dist/dialogs/form-dialog.js +1 -1
  51. package/dist/{drawer-B0PYArcE.js → drawer-C6IT7ONM.js} +1 -1
  52. package/dist/{drawer-B0PYArcE.js.map → drawer-C6IT7ONM.js.map} +1 -1
  53. package/dist/{drawer-CmRrJYoS.cjs → drawer-Dc432Nt9.cjs} +1 -1
  54. package/dist/{drawer-CmRrJYoS.cjs.map → drawer-Dc432Nt9.cjs.map} +1 -1
  55. package/dist/forms/combobox-field.d.cts +2 -2
  56. package/dist/forms/combobox-field.d.ts +2 -2
  57. package/dist/forms/date-field.d.cts +2 -2
  58. package/dist/forms/form-wrapper.d.cts +2 -2
  59. package/dist/forms/form-wrapper.d.ts +2 -2
  60. package/dist/forms/multi-select-field.d.cts +2 -2
  61. package/dist/forms/multi-select-field.d.ts +2 -2
  62. package/dist/forms/number-field.d.cts +2 -2
  63. package/dist/forms/number-field.d.ts +2 -2
  64. package/dist/forms/password-field.d.cts +2 -2
  65. package/dist/forms/password-field.d.ts +2 -2
  66. package/dist/forms/select-field.d.cts +2 -2
  67. package/dist/forms/select-field.d.ts +2 -2
  68. package/dist/forms/switch-field.d.cts +2 -2
  69. package/dist/forms/switch-field.d.ts +2 -2
  70. package/dist/forms/text-field.cjs +1 -1
  71. package/dist/forms/text-field.cjs.map +1 -1
  72. package/dist/forms/text-field.d.cts +2 -2
  73. package/dist/forms/text-field.d.ts +2 -2
  74. package/dist/forms/text-field.js +1 -1
  75. package/dist/forms/text-field.js.map +1 -1
  76. package/dist/forms/textarea-field.cjs +1 -1
  77. package/dist/forms/textarea-field.cjs.map +1 -1
  78. package/dist/forms/textarea-field.d.cts +2 -2
  79. package/dist/forms/textarea-field.d.ts +2 -2
  80. package/dist/forms/textarea-field.js +1 -1
  81. package/dist/forms/textarea-field.js.map +1 -1
  82. package/dist/{input-BYy6D7Ol.d.cts → input-BupRhPyb.d.cts} +3 -3
  83. package/dist/label-DPchUZl_.d.cts +11 -0
  84. package/dist/{label-7ZZm6YlQ.d.cts → label-Dn6KaHvL.d.ts} +3 -3
  85. package/dist/layouts/app-layout/index.cjs +1 -1
  86. package/dist/layouts/app-layout/index.d.cts +26 -26
  87. package/dist/layouts/app-layout/index.d.ts +3 -3
  88. package/dist/layouts/app-layout/index.js +1 -1
  89. package/dist/layouts/flex.d.cts +4 -4
  90. package/dist/layouts/flex.d.ts +2 -2
  91. package/dist/layouts/service-layout/index.cjs +1 -1
  92. package/dist/layouts/service-layout/index.d.cts +15 -15
  93. package/dist/layouts/service-layout/index.d.ts +5 -5
  94. package/dist/layouts/service-layout/index.js +1 -1
  95. package/dist/layouts/service-layout/index.js.map +1 -1
  96. package/dist/pages/FeatureDeveloping.d.cts +2 -2
  97. package/dist/pages/FeatureDeveloping.d.ts +2 -2
  98. package/dist/pages/FeatureFixing.d.cts +2 -2
  99. package/dist/pages/FeatureFixing.d.ts +2 -2
  100. package/dist/pages/NotAuthorized.d.cts +2 -2
  101. package/dist/pages/NotAuthorized.d.ts +2 -2
  102. package/dist/pages/NotFound.d.cts +2 -2
  103. package/dist/pages/NotFound.d.ts +2 -2
  104. package/dist/{paragraph-EiPvpYGr.js → paragraph-BuE9WF5p.js} +1 -1
  105. package/dist/{paragraph-EiPvpYGr.js.map → paragraph-BuE9WF5p.js.map} +1 -1
  106. package/dist/{paragraph-Dl6mLo1q.cjs → paragraph-GYX6NlXZ.cjs} +1 -1
  107. package/dist/{paragraph-Dl6mLo1q.cjs.map → paragraph-GYX6NlXZ.cjs.map} +1 -1
  108. package/dist/products/product-quantity-control.d.ts +2 -2
  109. package/dist/{refresh-DHZZ9DV4.js → refresh-CNiYCRLZ.js} +2 -2
  110. package/dist/{refresh-DHZZ9DV4.js.map → refresh-CNiYCRLZ.js.map} +1 -1
  111. package/dist/{refresh-NRTjXWBR.cjs → refresh-CfPFo89K.cjs} +2 -2
  112. package/dist/{refresh-NRTjXWBR.cjs.map → refresh-CfPFo89K.cjs.map} +1 -1
  113. package/dist/{separator-D_c8h0Aq.d.cts → separator--U2QB0i9.d.ts} +1 -1
  114. package/dist/{separator-BhGNy7Ns.d.ts → separator-CDgUanKM.d.cts} +3 -3
  115. package/dist/{sidebar-CY2pOm9W.js → sidebar-9ODHuW8Q.js} +2 -2
  116. package/dist/{sidebar-CY2pOm9W.js.map → sidebar-9ODHuW8Q.js.map} +1 -1
  117. package/dist/{sidebar-CEWGDBq6.cjs → sidebar-ChCtr6kn.cjs} +2 -2
  118. package/dist/{sidebar-CEWGDBq6.cjs.map → sidebar-ChCtr6kn.cjs.map} +1 -1
  119. package/dist/table/index.cjs +1 -1
  120. package/dist/table/index.d.cts +2 -2
  121. package/dist/table/index.d.ts +2 -2
  122. package/dist/table/index.js +1 -1
  123. package/dist/{toggle-Bj-orQro.d.ts → toggle-BLaqjnLT.d.ts} +3 -3
  124. package/dist/{toggle-BvgvHcLZ.d.cts → toggle-BO1nSjXQ.d.cts} +5 -5
  125. package/dist/{tooltip-DTDkf-An.d.ts → tooltip-C_Pe-E_S.d.ts} +6 -6
  126. package/dist/{tooltip-DfswK7wk.d.cts → tooltip-CvNMd3iC.d.cts} +6 -6
  127. package/dist/{tooltip-xp6RiroA.js → tooltip-DHD6S-vH.js} +1 -1
  128. package/dist/{tooltip-xp6RiroA.js.map → tooltip-DHD6S-vH.js.map} +1 -1
  129. package/dist/{tooltip-pmQZf5Bt.cjs → tooltip-v0ikl3om.cjs} +1 -1
  130. package/dist/{tooltip-pmQZf5Bt.cjs.map → tooltip-v0ikl3om.cjs.map} +1 -1
  131. package/dist/{types-bhmvOEvz.js → types-BfVUsI26.js} +1 -1
  132. package/dist/{types-bhmvOEvz.js.map → types-BfVUsI26.js.map} +1 -1
  133. package/dist/{types-Bfxd7F-g.cjs → types-_t74BXO1.cjs} +1 -1
  134. package/dist/{types-Bfxd7F-g.cjs.map → types-_t74BXO1.cjs.map} +1 -1
  135. package/dist/typography/paragraph.cjs +1 -1
  136. package/dist/typography/paragraph.d.cts +2 -2
  137. package/dist/typography/paragraph.d.ts +2 -2
  138. package/dist/typography/paragraph.js +1 -1
  139. package/dist/typography/title.d.cts +2 -2
  140. package/dist/ui/alert-dialog.d.cts +12 -12
  141. package/dist/ui/alert-dialog.d.ts +12 -12
  142. package/dist/ui/alert.d.cts +6 -6
  143. package/dist/ui/alert.d.ts +4 -4
  144. package/dist/ui/aspect-ratio.d.cts +2 -2
  145. package/dist/ui/aspect-ratio.d.ts +2 -2
  146. package/dist/ui/avatar.cjs +1 -1
  147. package/dist/ui/avatar.d.cts +4 -4
  148. package/dist/ui/avatar.d.ts +4 -4
  149. package/dist/ui/avatar.js +1 -1
  150. package/dist/ui/badge.cjs +1 -1
  151. package/dist/ui/badge.d.cts +2 -2
  152. package/dist/ui/badge.d.ts +2 -2
  153. package/dist/ui/badge.js +1 -1
  154. package/dist/ui/breadcrumb.d.cts +8 -8
  155. package/dist/ui/breadcrumb.d.ts +8 -8
  156. package/dist/ui/button-group.d.cts +7 -7
  157. package/dist/ui/button-group.d.ts +7 -7
  158. package/dist/ui/button.d.cts +1 -1
  159. package/dist/ui/button.d.ts +1 -1
  160. package/dist/ui/buttons/add-new.cjs +1 -1
  161. package/dist/ui/buttons/add-new.js +1 -1
  162. package/dist/ui/buttons/refresh.cjs +1 -1
  163. package/dist/ui/buttons/refresh.js +1 -1
  164. package/dist/ui/calendar.d.cts +4 -4
  165. package/dist/ui/calendar.d.ts +4 -4
  166. package/dist/ui/card.d.cts +8 -8
  167. package/dist/ui/carousel.d.cts +7 -7
  168. package/dist/ui/carousel.d.ts +7 -7
  169. package/dist/ui/collapsible.d.cts +4 -4
  170. package/dist/ui/collapsible.d.ts +4 -4
  171. package/dist/ui/command.d.cts +2 -2
  172. package/dist/ui/command.d.ts +2 -2
  173. package/dist/ui/context-menu.d.ts +16 -16
  174. package/dist/ui/dialog.d.cts +1 -1
  175. package/dist/ui/dialog.d.ts +1 -1
  176. package/dist/ui/drawer.cjs +1 -1
  177. package/dist/ui/drawer.d.cts +11 -11
  178. package/dist/ui/drawer.d.ts +11 -11
  179. package/dist/ui/drawer.js +1 -1
  180. package/dist/ui/dropdown-menu.d.cts +16 -16
  181. package/dist/ui/dropdown-menu.d.ts +16 -16
  182. package/dist/ui/empty.d.cts +9 -9
  183. package/dist/ui/empty.d.ts +9 -9
  184. package/dist/ui/field.d.cts +14 -14
  185. package/dist/ui/field.d.ts +14 -14
  186. package/dist/ui/file-uploader.d.cts +2 -2
  187. package/dist/ui/file-uploader.d.ts +2 -2
  188. package/dist/ui/form.d.cts +7 -7
  189. package/dist/ui/form.d.ts +7 -7
  190. package/dist/ui/hover-card.d.cts +4 -4
  191. package/dist/ui/input-otp.d.cts +5 -5
  192. package/dist/ui/input-otp.d.ts +5 -5
  193. package/dist/ui/input.d.cts +1 -1
  194. package/dist/ui/inputs/search-input.d.cts +3 -3
  195. package/dist/ui/item.d.cts +15 -15
  196. package/dist/ui/item.d.ts +12 -12
  197. package/dist/ui/label.d.cts +1 -1
  198. package/dist/ui/label.d.ts +1 -1
  199. package/dist/ui/menubar.d.cts +17 -17
  200. package/dist/ui/menubar.d.ts +17 -17
  201. package/dist/ui/multi-select.d.cts +2 -2
  202. package/dist/ui/multi-select.d.ts +2 -2
  203. package/dist/ui/navigation-menu.d.cts +9 -9
  204. package/dist/ui/navigation-menu.d.ts +9 -9
  205. package/dist/ui/pagination.d.cts +9 -9
  206. package/dist/ui/pagination.d.ts +9 -9
  207. package/dist/ui/popover.d.cts +5 -5
  208. package/dist/ui/popover.d.ts +5 -5
  209. package/dist/ui/progress.d.cts +2 -2
  210. package/dist/ui/progress.d.ts +2 -2
  211. package/dist/ui/radio-group.d.cts +3 -3
  212. package/dist/ui/radio-group.d.ts +3 -3
  213. package/dist/ui/resizable.d.cts +4 -4
  214. package/dist/ui/resizable.d.ts +4 -4
  215. package/dist/ui/scroll-area.d.cts +3 -3
  216. package/dist/ui/scroll-area.d.ts +3 -3
  217. package/dist/ui/select.d.cts +11 -11
  218. package/dist/ui/select.d.ts +11 -11
  219. package/dist/ui/separator.d.cts +1 -1
  220. package/dist/ui/separator.d.ts +1 -1
  221. package/dist/ui/sheet.d.ts +9 -9
  222. package/dist/ui/sidebar.cjs +1 -1
  223. package/dist/ui/sidebar.d.cts +30 -30
  224. package/dist/ui/sidebar.d.ts +27 -27
  225. package/dist/ui/sidebar.js +1 -1
  226. package/dist/ui/skeleton.d.cts +2 -2
  227. package/dist/ui/skeleton.d.ts +2 -2
  228. package/dist/ui/slider.d.cts +2 -2
  229. package/dist/ui/slider.d.ts +2 -2
  230. package/dist/ui/sonner.d.cts +2 -2
  231. package/dist/ui/sonner.d.ts +2 -2
  232. package/dist/ui/spinner.d.cts +2 -2
  233. package/dist/ui/spinner.d.ts +2 -2
  234. package/dist/ui/switch.d.cts +2 -2
  235. package/dist/ui/switch.d.ts +2 -2
  236. package/dist/ui/table.d.cts +9 -9
  237. package/dist/ui/table.d.ts +9 -9
  238. package/dist/ui/tabs.d.cts +5 -5
  239. package/dist/ui/tabs.d.ts +5 -5
  240. package/dist/ui/textarea.d.cts +2 -2
  241. package/dist/ui/textarea.d.ts +2 -2
  242. package/dist/ui/toggle-group.d.cts +4 -4
  243. package/dist/ui/toggle-group.d.ts +4 -4
  244. package/dist/ui/toggle.d.cts +1 -1
  245. package/dist/ui/toggle.d.ts +1 -1
  246. package/dist/ui/tooltip.cjs +1 -1
  247. package/dist/ui/tooltip.d.cts +1 -1
  248. package/dist/ui/tooltip.d.ts +1 -1
  249. package/dist/ui/tooltip.js +1 -1
  250. package/package.json +1 -1
  251. package/dist/label-BATJfW0U.d.ts +0 -11
@@ -1,2 +1,2 @@
1
- import{Button as e}from"./button-CriBqo8S.js";import{Paragraph as t}from"./paragraph-EiPvpYGr.js";import{PlusIcon as n}from"lucide-react";import{jsx as r,jsxs as i}from"react/jsx-runtime";const a=({onClick:a=()=>{}})=>i(e,{"aria-label":`Tạo mới`,variant:`outline`,color:`muted`,className:`outline-border-weak max-sm:aspect-square max-sm:size-9 max-sm:p-0`,onClick:a,children:[r(n,{className:`opacity-60 sm:-ms-1`,size:16,"aria-hidden":`true`}),r(t,{variant:`sm`,className:`max-sm:sr-only`,children:`Create`})]});export{a as AddNewBtn};
2
- //# sourceMappingURL=add-new-yRbAl8jO.js.map
1
+ import{Button as e}from"./button-CriBqo8S.js";import{Paragraph as t}from"./paragraph-BuE9WF5p.js";import{PlusIcon as n}from"lucide-react";import{jsx as r,jsxs as i}from"react/jsx-runtime";const a=({onClick:a=()=>{}})=>i(e,{"aria-label":`Tạo mới`,variant:`outline`,color:`muted`,className:`outline-border-weak max-sm:aspect-square max-sm:size-9 max-sm:p-0`,onClick:a,children:[r(n,{className:`opacity-60 sm:-ms-1`,size:16,"aria-hidden":`true`}),r(t,{variant:`sm`,className:`max-sm:sr-only`,children:`Create`})]});export{a as AddNewBtn};
2
+ //# sourceMappingURL=add-new-CDApqBax.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"add-new-yRbAl8jO.js","names":["AddNewBtn: React.FC<React.PropsWithChildren<Props>>"],"sources":["../packages/components/ui/buttons/add-new.tsx"],"sourcesContent":["import { PlusIcon } from 'lucide-react';\n\nimport { Paragraph } from '@/components/typography/paragraph';\n\nimport { Button } from '../button';\n\ntype Props = {\n onClick?: () => void;\n};\nexport const AddNewBtn: React.FC<React.PropsWithChildren<Props>> = ({ onClick = () => {} }) => {\n return (\n <Button\n aria-label=\"Tạo mới\"\n variant=\"outline\"\n color=\"muted\"\n className=\"outline-border-weak max-sm:aspect-square max-sm:size-9 max-sm:p-0\"\n onClick={onClick}\n >\n <PlusIcon className=\"opacity-60 sm:-ms-1\" size={16} aria-hidden=\"true\" />\n <Paragraph variant=\"sm\" className=\"max-sm:sr-only\">\n Create\n </Paragraph>\n </Button>\n );\n};\n"],"mappings":"4LASA,MAAaA,GAAuD,CAAE,cAAgB,MAElF,EAAC,EAAA,CACC,aAAW,UACX,QAAQ,UACR,MAAM,QACN,UAAU,oEACD,oBAET,EAAC,EAAA,CAAS,UAAU,sBAAsB,KAAM,GAAI,cAAY,QAAS,CACzE,EAAC,EAAA,CAAU,QAAQ,KAAK,UAAU,0BAAiB,UAEvC,CAAA,EACL"}
1
+ {"version":3,"file":"add-new-CDApqBax.js","names":["AddNewBtn: React.FC<React.PropsWithChildren<Props>>"],"sources":["../packages/components/ui/buttons/add-new.tsx"],"sourcesContent":["import { PlusIcon } from 'lucide-react';\n\nimport { Paragraph } from '@/components/typography/paragraph';\n\nimport { Button } from '../button';\n\ntype Props = {\n onClick?: () => void;\n};\nexport const AddNewBtn: React.FC<React.PropsWithChildren<Props>> = ({ onClick = () => {} }) => {\n return (\n <Button\n aria-label=\"Tạo mới\"\n variant=\"outline\"\n color=\"muted\"\n className=\"outline-border-weak max-sm:aspect-square max-sm:size-9 max-sm:p-0\"\n onClick={onClick}\n >\n <PlusIcon className=\"opacity-60 sm:-ms-1\" size={16} aria-hidden=\"true\" />\n <Paragraph variant=\"sm\" className=\"max-sm:sr-only\">\n Create\n </Paragraph>\n </Button>\n );\n};\n"],"mappings":"4LASA,MAAaA,GAAuD,CAAE,cAAgB,MAElF,EAAC,EAAA,CACC,aAAW,UACX,QAAQ,UACR,MAAM,QACN,UAAU,oEACD,oBAET,EAAC,EAAA,CAAS,UAAU,sBAAsB,KAAM,GAAI,cAAY,QAAS,CACzE,EAAC,EAAA,CAAU,QAAQ,KAAK,UAAU,0BAAiB,UAEvC,CAAA,EACL"}
@@ -1,2 +1,2 @@
1
- const e=require(`./chunk-CUT6urMc.cjs`),t=require(`./button-BCahPWI8.cjs`),n=require(`./paragraph-Dl6mLo1q.cjs`);let r=require(`lucide-react`);r=e.__toESM(r);let i=require(`react/jsx-runtime`);i=e.__toESM(i);const a=({onClick:e=()=>{}})=>(0,i.jsxs)(t.Button,{"aria-label":`Tạo mới`,variant:`outline`,color:`muted`,className:`outline-border-weak max-sm:aspect-square max-sm:size-9 max-sm:p-0`,onClick:e,children:[(0,i.jsx)(r.PlusIcon,{className:`opacity-60 sm:-ms-1`,size:16,"aria-hidden":`true`}),(0,i.jsx)(n.Paragraph,{variant:`sm`,className:`max-sm:sr-only`,children:`Create`})]});Object.defineProperty(exports,`AddNewBtn`,{enumerable:!0,get:function(){return a}});
2
- //# sourceMappingURL=add-new-Dv7zlN-B.cjs.map
1
+ const e=require(`./chunk-CUT6urMc.cjs`),t=require(`./button-BCahPWI8.cjs`),n=require(`./paragraph-GYX6NlXZ.cjs`);let r=require(`lucide-react`);r=e.__toESM(r);let i=require(`react/jsx-runtime`);i=e.__toESM(i);const a=({onClick:e=()=>{}})=>(0,i.jsxs)(t.Button,{"aria-label":`Tạo mới`,variant:`outline`,color:`muted`,className:`outline-border-weak max-sm:aspect-square max-sm:size-9 max-sm:p-0`,onClick:e,children:[(0,i.jsx)(r.PlusIcon,{className:`opacity-60 sm:-ms-1`,size:16,"aria-hidden":`true`}),(0,i.jsx)(n.Paragraph,{variant:`sm`,className:`max-sm:sr-only`,children:`Create`})]});Object.defineProperty(exports,`AddNewBtn`,{enumerable:!0,get:function(){return a}});
2
+ //# sourceMappingURL=add-new-D-WSaAM3.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"add-new-Dv7zlN-B.cjs","names":["AddNewBtn: React.FC<React.PropsWithChildren<Props>>","Button","PlusIcon","Paragraph"],"sources":["../packages/components/ui/buttons/add-new.tsx"],"sourcesContent":["import { PlusIcon } from 'lucide-react';\n\nimport { Paragraph } from '@/components/typography/paragraph';\n\nimport { Button } from '../button';\n\ntype Props = {\n onClick?: () => void;\n};\nexport const AddNewBtn: React.FC<React.PropsWithChildren<Props>> = ({ onClick = () => {} }) => {\n return (\n <Button\n aria-label=\"Tạo mới\"\n variant=\"outline\"\n color=\"muted\"\n className=\"outline-border-weak max-sm:aspect-square max-sm:size-9 max-sm:p-0\"\n onClick={onClick}\n >\n <PlusIcon className=\"opacity-60 sm:-ms-1\" size={16} aria-hidden=\"true\" />\n <Paragraph variant=\"sm\" className=\"max-sm:sr-only\">\n Create\n </Paragraph>\n </Button>\n );\n};\n"],"mappings":"gNASA,MAAaA,GAAuD,CAAE,cAAgB,OAElF,EAAA,EAAA,MAACC,EAAAA,OAAAA,CACC,aAAW,UACX,QAAQ,UACR,MAAM,QACN,UAAU,oEACD,qBAET,EAAA,EAAA,KAACC,EAAAA,SAAAA,CAAS,UAAU,sBAAsB,KAAM,GAAI,cAAY,QAAS,EACzE,EAAA,EAAA,KAACC,EAAAA,UAAAA,CAAU,QAAQ,KAAK,UAAU,0BAAiB,UAEvC,CAAA,EACL"}
1
+ {"version":3,"file":"add-new-D-WSaAM3.cjs","names":["AddNewBtn: React.FC<React.PropsWithChildren<Props>>","Button","PlusIcon","Paragraph"],"sources":["../packages/components/ui/buttons/add-new.tsx"],"sourcesContent":["import { PlusIcon } from 'lucide-react';\n\nimport { Paragraph } from '@/components/typography/paragraph';\n\nimport { Button } from '../button';\n\ntype Props = {\n onClick?: () => void;\n};\nexport const AddNewBtn: React.FC<React.PropsWithChildren<Props>> = ({ onClick = () => {} }) => {\n return (\n <Button\n aria-label=\"Tạo mới\"\n variant=\"outline\"\n color=\"muted\"\n className=\"outline-border-weak max-sm:aspect-square max-sm:size-9 max-sm:p-0\"\n onClick={onClick}\n >\n <PlusIcon className=\"opacity-60 sm:-ms-1\" size={16} aria-hidden=\"true\" />\n <Paragraph variant=\"sm\" className=\"max-sm:sr-only\">\n Create\n </Paragraph>\n </Button>\n );\n};\n"],"mappings":"gNASA,MAAaA,GAAuD,CAAE,cAAgB,OAElF,EAAA,EAAA,MAACC,EAAAA,OAAAA,CACC,aAAW,UACX,QAAQ,UACR,MAAM,QACN,UAAU,oEACD,qBAET,EAAA,EAAA,KAACC,EAAAA,SAAAA,CAAS,UAAU,sBAAsB,KAAM,GAAI,cAAY,QAAS,EACzE,EAAA,EAAA,KAACC,EAAAA,UAAAA,CAAU,QAAQ,KAAK,UAAU,0BAAiB,UAEvC,CAAA,EACL"}
@@ -1,2 +1,2 @@
1
1
  const e=require(`./chunk-CUT6urMc.cjs`);let t=require(`@customafk/react-toolkit/utils`);t=e.__toESM(t);let n=require(`react/jsx-runtime`);n=e.__toESM(n);let r=require(`radix-ui`);r=e.__toESM(r);function i({className:e,...i}){return(0,n.jsx)(r.Avatar.Root,{"data-slot":`avatar`,className:(0,t.cn)(`relative flex size-8 shrink-0 overflow-hidden rounded-full`,e),...i})}function a({className:e,...i}){return(0,n.jsx)(r.Avatar.Image,{"data-slot":`avatar-image`,className:(0,t.cn)(`aspect-square size-full`,e),...i})}function o({className:e,...i}){return(0,n.jsx)(r.Avatar.Fallback,{"data-slot":`avatar-fallback`,className:(0,t.cn)(`bg-muted flex size-full items-center justify-center rounded-full`,e),...i})}Object.defineProperty(exports,`Avatar`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`AvatarFallback`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`AvatarImage`,{enumerable:!0,get:function(){return a}});
2
- //# sourceMappingURL=avatar-CAr8qOV9.cjs.map
2
+ //# sourceMappingURL=avatar-96dXWrWU.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"avatar-CAr8qOV9.cjs","names":["AvatarPrimitive"],"sources":["../packages/components/ui/avatar.tsx"],"sourcesContent":["'use client';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Avatar as AvatarPrimitive } from 'radix-ui';\n\nfunction Avatar({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Root>) {\n return <AvatarPrimitive.Root data-slot=\"avatar\" className={cn('relative flex size-8 shrink-0 overflow-hidden rounded-full', className)} {...props} />;\n}\n\nfunction AvatarImage({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Image>) {\n return <AvatarPrimitive.Image data-slot=\"avatar-image\" className={cn('aspect-square size-full', className)} {...props} />;\n}\n\nfunction AvatarFallback({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn('bg-muted flex size-full items-center justify-center rounded-full', className)}\n {...props}\n />\n );\n}\n\nexport { Avatar, AvatarFallback, AvatarImage };\n"],"mappings":"kMAKA,SAAS,EAAO,CAAE,YAAW,GAAG,GAA4D,CAC1F,OAAO,EAAA,EAAA,KAACA,EAAAA,OAAgB,KAAA,CAAK,YAAU,SAAS,WAAA,EAAA,EAAA,IAAc,6DAA8D,EAAU,CAAE,GAAI,GAAS,CAGvJ,SAAS,EAAY,CAAE,YAAW,GAAG,GAA6D,CAChG,OAAO,EAAA,EAAA,KAACA,EAAAA,OAAgB,MAAA,CAAM,YAAU,eAAe,WAAA,EAAA,EAAA,IAAc,0BAA2B,EAAU,CAAE,GAAI,GAAS,CAG3H,SAAS,EAAe,CAAE,YAAW,GAAG,GAAgE,CACtG,OACE,EAAA,EAAA,KAACA,EAAAA,OAAgB,SAAA,CACf,YAAU,kBACV,WAAA,EAAA,EAAA,IAAc,mEAAoE,EAAU,CAC5F,GAAI,GACJ"}
1
+ {"version":3,"file":"avatar-96dXWrWU.cjs","names":["AvatarPrimitive"],"sources":["../packages/components/ui/avatar.tsx"],"sourcesContent":["'use client';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Avatar as AvatarPrimitive } from 'radix-ui';\n\nfunction Avatar({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Root>) {\n return <AvatarPrimitive.Root data-slot=\"avatar\" className={cn('relative flex size-8 shrink-0 overflow-hidden rounded-full', className)} {...props} />;\n}\n\nfunction AvatarImage({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Image>) {\n return <AvatarPrimitive.Image data-slot=\"avatar-image\" className={cn('aspect-square size-full', className)} {...props} />;\n}\n\nfunction AvatarFallback({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn('bg-muted flex size-full items-center justify-center rounded-full', className)}\n {...props}\n />\n );\n}\n\nexport { Avatar, AvatarFallback, AvatarImage };\n"],"mappings":"kMAKA,SAAS,EAAO,CAAE,YAAW,GAAG,GAA4D,CAC1F,OAAO,EAAA,EAAA,KAACA,EAAAA,OAAgB,KAAA,CAAK,YAAU,SAAS,WAAA,EAAA,EAAA,IAAc,6DAA8D,EAAU,CAAE,GAAI,GAAS,CAGvJ,SAAS,EAAY,CAAE,YAAW,GAAG,GAA6D,CAChG,OAAO,EAAA,EAAA,KAACA,EAAAA,OAAgB,MAAA,CAAM,YAAU,eAAe,WAAA,EAAA,EAAA,IAAc,0BAA2B,EAAU,CAAE,GAAI,GAAS,CAG3H,SAAS,EAAe,CAAE,YAAW,GAAG,GAAgE,CACtG,OACE,EAAA,EAAA,KAACA,EAAAA,OAAgB,SAAA,CACf,YAAU,kBACV,WAAA,EAAA,EAAA,IAAc,mEAAoE,EAAU,CAC5F,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{Avatar as n}from"radix-ui";function r({className:r,...i}){return t(n.Root,{"data-slot":`avatar`,className:e(`relative flex size-8 shrink-0 overflow-hidden rounded-full`,r),...i})}function i({className:r,...i}){return t(n.Image,{"data-slot":`avatar-image`,className:e(`aspect-square size-full`,r),...i})}function a({className:r,...i}){return t(n.Fallback,{"data-slot":`avatar-fallback`,className:e(`bg-muted flex size-full items-center justify-center rounded-full`,r),...i})}export{r as Avatar,a as AvatarFallback,i as AvatarImage};
2
- //# sourceMappingURL=avatar-zx6-WY2L.js.map
2
+ //# sourceMappingURL=avatar-CcbiQ1mq.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"avatar-zx6-WY2L.js","names":["Avatar","AvatarPrimitive"],"sources":["../packages/components/ui/avatar.tsx"],"sourcesContent":["'use client';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Avatar as AvatarPrimitive } from 'radix-ui';\n\nfunction Avatar({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Root>) {\n return <AvatarPrimitive.Root data-slot=\"avatar\" className={cn('relative flex size-8 shrink-0 overflow-hidden rounded-full', className)} {...props} />;\n}\n\nfunction AvatarImage({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Image>) {\n return <AvatarPrimitive.Image data-slot=\"avatar-image\" className={cn('aspect-square size-full', className)} {...props} />;\n}\n\nfunction AvatarFallback({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn('bg-muted flex size-full items-center justify-center rounded-full', className)}\n {...props}\n />\n );\n}\n\nexport { Avatar, AvatarFallback, AvatarImage };\n"],"mappings":"8HAKA,SAASA,EAAO,CAAE,YAAW,GAAG,GAA4D,CAC1F,OAAO,EAACC,EAAgB,KAAA,CAAK,YAAU,SAAS,UAAW,EAAG,6DAA8D,EAAU,CAAE,GAAI,GAAS,CAGvJ,SAAS,EAAY,CAAE,YAAW,GAAG,GAA6D,CAChG,OAAO,EAACA,EAAgB,MAAA,CAAM,YAAU,eAAe,UAAW,EAAG,0BAA2B,EAAU,CAAE,GAAI,GAAS,CAG3H,SAAS,EAAe,CAAE,YAAW,GAAG,GAAgE,CACtG,OACE,EAACA,EAAgB,SAAA,CACf,YAAU,kBACV,UAAW,EAAG,mEAAoE,EAAU,CAC5F,GAAI,GACJ"}
1
+ {"version":3,"file":"avatar-CcbiQ1mq.js","names":["Avatar","AvatarPrimitive"],"sources":["../packages/components/ui/avatar.tsx"],"sourcesContent":["'use client';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Avatar as AvatarPrimitive } from 'radix-ui';\n\nfunction Avatar({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Root>) {\n return <AvatarPrimitive.Root data-slot=\"avatar\" className={cn('relative flex size-8 shrink-0 overflow-hidden rounded-full', className)} {...props} />;\n}\n\nfunction AvatarImage({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Image>) {\n return <AvatarPrimitive.Image data-slot=\"avatar-image\" className={cn('aspect-square size-full', className)} {...props} />;\n}\n\nfunction AvatarFallback({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn('bg-muted flex size-full items-center justify-center rounded-full', className)}\n {...props}\n />\n );\n}\n\nexport { Avatar, AvatarFallback, AvatarImage };\n"],"mappings":"8HAKA,SAASA,EAAO,CAAE,YAAW,GAAG,GAA4D,CAC1F,OAAO,EAACC,EAAgB,KAAA,CAAK,YAAU,SAAS,UAAW,EAAG,6DAA8D,EAAU,CAAE,GAAI,GAAS,CAGvJ,SAAS,EAAY,CAAE,YAAW,GAAG,GAA6D,CAChG,OAAO,EAACA,EAAgB,MAAA,CAAM,YAAU,eAAe,UAAW,EAAG,0BAA2B,EAAU,CAAE,GAAI,GAAS,CAG3H,SAAS,EAAe,CAAE,YAAW,GAAG,GAAgE,CACtG,OACE,EAACA,EAAgB,SAAA,CACf,YAAU,kBACV,UAAW,EAAG,mEAAoE,EAAU,CAC5F,GAAI,GACJ"}
@@ -1,2 +1,2 @@
1
1
  const e=require(`./chunk-CUT6urMc.cjs`);let t=require(`@customafk/react-toolkit/utils`);t=e.__toESM(t);let n=require(`react/jsx-runtime`);n=e.__toESM(n);let r=require(`class-variance-authority`);r=e.__toESM(r);const i=(0,r.cva)(`focus:ring-ring rounded-sm inline-flex items-center px-2.5 py-0.5 font-semibold text-white shadow-sm transition-colors focus:ring-2 focus:ring-offset-2 focus:outline-hidden forced-colors:outline`,{variants:{color:{red:`bg-red-500 text-white`,orange:`bg-orange-500 text-white`,amber:`bg-amber-500 text-white`,yellow:`bg-yellow-500 text-white`,lime:`bg-lime-500 text-white`,green:`bg-green-500 text-white`,emerald:`bg-emerald-500 text-white`,teal:`bg-teal-500 text-white`,cyan:`bg-cyan-500 text-white`,sky:`bg-sky-500 text-white`,blue:`bg-blue-500 text-white`,indigo:`bg-indigo-500 text-white`,violet:`bg-violet-500 text-white`,purple:`bg-purple-500 text-white`,fuchsia:`bg-fuchsia-500 text-white`,pink:`bg-pink-500 text-white`,rose:`bg-rose-500 text-white`,zinc:`bg-zinc-500 text-white`},size:{xs:`text-[8px]/3 px-1 py-0.5 gap-1`,sm:`text-[10px]/3 px-1.5 py-1 gap-1`,md:`text-xs px-2 py-1 gap-1`,lg:`text-sm px-2 py-1 gap-1.5`,xl:`text-base px-2.5 py-1 gap-1.5`},pill:{true:`rounded-full`}},defaultVariants:{color:`zinc`,size:`md`,pill:!0}});function a({className:e,color:r,size:a,pill:o,...s}){return(0,n.jsx)(`div`,{className:(0,t.cn)(i({color:r,pill:o,size:a}),e),...s})}Object.defineProperty(exports,`Badge`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`badgeVariants`,{enumerable:!0,get:function(){return i}});
2
- //# sourceMappingURL=badge-_7ZCk7u2.cjs.map
2
+ //# sourceMappingURL=badge-B1y6KFfh.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"badge-_7ZCk7u2.cjs","names":[],"sources":["../packages/components/ui/badge.tsx"],"sourcesContent":["'use client';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nconst badgeVariants = cva(\n 'focus:ring-ring rounded-sm inline-flex items-center px-2.5 py-0.5 font-semibold text-white shadow-sm transition-colors focus:ring-2 focus:ring-offset-2 focus:outline-hidden forced-colors:outline',\n {\n variants: {\n color: {\n red: 'bg-red-500 text-white',\n orange: 'bg-orange-500 text-white',\n amber: 'bg-amber-500 text-white',\n yellow: 'bg-yellow-500 text-white',\n lime: 'bg-lime-500 text-white',\n green: 'bg-green-500 text-white',\n emerald: 'bg-emerald-500 text-white',\n teal: 'bg-teal-500 text-white',\n cyan: 'bg-cyan-500 text-white',\n sky: 'bg-sky-500 text-white',\n blue: 'bg-blue-500 text-white',\n indigo: 'bg-indigo-500 text-white',\n violet: 'bg-violet-500 text-white',\n purple: 'bg-purple-500 text-white',\n fuchsia: 'bg-fuchsia-500 text-white',\n pink: 'bg-pink-500 text-white',\n rose: 'bg-rose-500 text-white',\n zinc: 'bg-zinc-500 text-white',\n },\n size: {\n xs: 'text-[8px]/3 px-1 py-0.5 gap-1',\n sm: 'text-[10px]/3 px-1.5 py-1 gap-1',\n md: 'text-xs px-2 py-1 gap-1',\n lg: 'text-sm px-2 py-1 gap-1.5',\n xl: 'text-base px-2.5 py-1 gap-1.5',\n },\n pill: {\n true: 'rounded-full',\n },\n },\n defaultVariants: {\n color: 'zinc',\n size: 'md',\n pill: true,\n },\n }\n);\n\nexport type BadgeProps = VariantProps<typeof badgeVariants> & React.ComponentPropsWithoutRef<'div'>;\n\nfunction Badge({ className, color, size, pill, ...props }: BadgeProps) {\n return <div className={cn(badgeVariants({ color, pill, size }), className)} {...props} />;\n}\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport { Badge, badgeVariants };\n"],"mappings":"kNAKA,MAAM,GAAA,EAAA,EAAA,KACJ,qMACA,CACE,SAAU,CACR,MAAO,CACL,IAAK,wBACL,OAAQ,2BACR,MAAO,0BACP,OAAQ,2BACR,KAAM,yBACN,MAAO,0BACP,QAAS,4BACT,KAAM,yBACN,KAAM,yBACN,IAAK,wBACL,KAAM,yBACN,OAAQ,2BACR,OAAQ,2BACR,OAAQ,2BACR,QAAS,4BACT,KAAM,yBACN,KAAM,yBACN,KAAM,yBACP,CACD,KAAM,CACJ,GAAI,iCACJ,GAAI,kCACJ,GAAI,0BACJ,GAAI,4BACJ,GAAI,gCACL,CACD,KAAM,CACJ,KAAM,eACP,CACF,CACD,gBAAiB,CACf,MAAO,OACP,KAAM,KACN,KAAM,GACP,CACF,CACF,CAID,SAAS,EAAM,CAAE,YAAW,QAAO,OAAM,OAAM,GAAG,GAAqB,CACrE,OAAO,EAAA,EAAA,KAAC,MAAA,CAAI,WAAA,EAAA,EAAA,IAAc,EAAc,CAAE,QAAO,OAAM,OAAM,CAAC,CAAE,EAAU,CAAE,GAAI,GAAS"}
1
+ {"version":3,"file":"badge-B1y6KFfh.cjs","names":[],"sources":["../packages/components/ui/badge.tsx"],"sourcesContent":["'use client';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nconst badgeVariants = cva(\n 'focus:ring-ring rounded-sm inline-flex items-center px-2.5 py-0.5 font-semibold text-white shadow-sm transition-colors focus:ring-2 focus:ring-offset-2 focus:outline-hidden forced-colors:outline',\n {\n variants: {\n color: {\n red: 'bg-red-500 text-white',\n orange: 'bg-orange-500 text-white',\n amber: 'bg-amber-500 text-white',\n yellow: 'bg-yellow-500 text-white',\n lime: 'bg-lime-500 text-white',\n green: 'bg-green-500 text-white',\n emerald: 'bg-emerald-500 text-white',\n teal: 'bg-teal-500 text-white',\n cyan: 'bg-cyan-500 text-white',\n sky: 'bg-sky-500 text-white',\n blue: 'bg-blue-500 text-white',\n indigo: 'bg-indigo-500 text-white',\n violet: 'bg-violet-500 text-white',\n purple: 'bg-purple-500 text-white',\n fuchsia: 'bg-fuchsia-500 text-white',\n pink: 'bg-pink-500 text-white',\n rose: 'bg-rose-500 text-white',\n zinc: 'bg-zinc-500 text-white',\n },\n size: {\n xs: 'text-[8px]/3 px-1 py-0.5 gap-1',\n sm: 'text-[10px]/3 px-1.5 py-1 gap-1',\n md: 'text-xs px-2 py-1 gap-1',\n lg: 'text-sm px-2 py-1 gap-1.5',\n xl: 'text-base px-2.5 py-1 gap-1.5',\n },\n pill: {\n true: 'rounded-full',\n },\n },\n defaultVariants: {\n color: 'zinc',\n size: 'md',\n pill: true,\n },\n }\n);\n\nexport type BadgeProps = VariantProps<typeof badgeVariants> & React.ComponentPropsWithoutRef<'div'>;\n\nfunction Badge({ className, color, size, pill, ...props }: BadgeProps) {\n return <div className={cn(badgeVariants({ color, pill, size }), className)} {...props} />;\n}\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport { Badge, badgeVariants };\n"],"mappings":"kNAKA,MAAM,GAAA,EAAA,EAAA,KACJ,qMACA,CACE,SAAU,CACR,MAAO,CACL,IAAK,wBACL,OAAQ,2BACR,MAAO,0BACP,OAAQ,2BACR,KAAM,yBACN,MAAO,0BACP,QAAS,4BACT,KAAM,yBACN,KAAM,yBACN,IAAK,wBACL,KAAM,yBACN,OAAQ,2BACR,OAAQ,2BACR,OAAQ,2BACR,QAAS,4BACT,KAAM,yBACN,KAAM,yBACN,KAAM,yBACP,CACD,KAAM,CACJ,GAAI,iCACJ,GAAI,kCACJ,GAAI,0BACJ,GAAI,4BACJ,GAAI,gCACL,CACD,KAAM,CACJ,KAAM,eACP,CACF,CACD,gBAAiB,CACf,MAAO,OACP,KAAM,KACN,KAAM,GACP,CACF,CACF,CAID,SAAS,EAAM,CAAE,YAAW,QAAO,OAAM,OAAM,GAAG,GAAqB,CACrE,OAAO,EAAA,EAAA,KAAC,MAAA,CAAI,WAAA,EAAA,EAAA,IAAc,EAAc,CAAE,QAAO,OAAM,OAAM,CAAC,CAAE,EAAU,CAAE,GAAI,GAAS"}
@@ -1,2 +1,2 @@
1
1
  import{cn as e}from"@customafk/react-toolkit/utils";import{jsx as t}from"react/jsx-runtime";import{cva as n}from"class-variance-authority";const r=n(`focus:ring-ring rounded-sm inline-flex items-center px-2.5 py-0.5 font-semibold text-white shadow-sm transition-colors focus:ring-2 focus:ring-offset-2 focus:outline-hidden forced-colors:outline`,{variants:{color:{red:`bg-red-500 text-white`,orange:`bg-orange-500 text-white`,amber:`bg-amber-500 text-white`,yellow:`bg-yellow-500 text-white`,lime:`bg-lime-500 text-white`,green:`bg-green-500 text-white`,emerald:`bg-emerald-500 text-white`,teal:`bg-teal-500 text-white`,cyan:`bg-cyan-500 text-white`,sky:`bg-sky-500 text-white`,blue:`bg-blue-500 text-white`,indigo:`bg-indigo-500 text-white`,violet:`bg-violet-500 text-white`,purple:`bg-purple-500 text-white`,fuchsia:`bg-fuchsia-500 text-white`,pink:`bg-pink-500 text-white`,rose:`bg-rose-500 text-white`,zinc:`bg-zinc-500 text-white`},size:{xs:`text-[8px]/3 px-1 py-0.5 gap-1`,sm:`text-[10px]/3 px-1.5 py-1 gap-1`,md:`text-xs px-2 py-1 gap-1`,lg:`text-sm px-2 py-1 gap-1.5`,xl:`text-base px-2.5 py-1 gap-1.5`},pill:{true:`rounded-full`}},defaultVariants:{color:`zinc`,size:`md`,pill:!0}});function i({className:n,color:i,size:a,pill:o,...s}){return t(`div`,{className:e(r({color:i,pill:o,size:a}),n),...s})}export{i as Badge,r as badgeVariants};
2
- //# sourceMappingURL=badge-DFlMOdsm.js.map
2
+ //# sourceMappingURL=badge-DWc4Idn2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"badge-DFlMOdsm.js","names":[],"sources":["../packages/components/ui/badge.tsx"],"sourcesContent":["'use client';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nconst badgeVariants = cva(\n 'focus:ring-ring rounded-sm inline-flex items-center px-2.5 py-0.5 font-semibold text-white shadow-sm transition-colors focus:ring-2 focus:ring-offset-2 focus:outline-hidden forced-colors:outline',\n {\n variants: {\n color: {\n red: 'bg-red-500 text-white',\n orange: 'bg-orange-500 text-white',\n amber: 'bg-amber-500 text-white',\n yellow: 'bg-yellow-500 text-white',\n lime: 'bg-lime-500 text-white',\n green: 'bg-green-500 text-white',\n emerald: 'bg-emerald-500 text-white',\n teal: 'bg-teal-500 text-white',\n cyan: 'bg-cyan-500 text-white',\n sky: 'bg-sky-500 text-white',\n blue: 'bg-blue-500 text-white',\n indigo: 'bg-indigo-500 text-white',\n violet: 'bg-violet-500 text-white',\n purple: 'bg-purple-500 text-white',\n fuchsia: 'bg-fuchsia-500 text-white',\n pink: 'bg-pink-500 text-white',\n rose: 'bg-rose-500 text-white',\n zinc: 'bg-zinc-500 text-white',\n },\n size: {\n xs: 'text-[8px]/3 px-1 py-0.5 gap-1',\n sm: 'text-[10px]/3 px-1.5 py-1 gap-1',\n md: 'text-xs px-2 py-1 gap-1',\n lg: 'text-sm px-2 py-1 gap-1.5',\n xl: 'text-base px-2.5 py-1 gap-1.5',\n },\n pill: {\n true: 'rounded-full',\n },\n },\n defaultVariants: {\n color: 'zinc',\n size: 'md',\n pill: true,\n },\n }\n);\n\nexport type BadgeProps = VariantProps<typeof badgeVariants> & React.ComponentPropsWithoutRef<'div'>;\n\nfunction Badge({ className, color, size, pill, ...props }: BadgeProps) {\n return <div className={cn(badgeVariants({ color, pill, size }), className)} {...props} />;\n}\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport { Badge, badgeVariants };\n"],"mappings":"2IAKA,MAAM,EAAgB,EACpB,qMACA,CACE,SAAU,CACR,MAAO,CACL,IAAK,wBACL,OAAQ,2BACR,MAAO,0BACP,OAAQ,2BACR,KAAM,yBACN,MAAO,0BACP,QAAS,4BACT,KAAM,yBACN,KAAM,yBACN,IAAK,wBACL,KAAM,yBACN,OAAQ,2BACR,OAAQ,2BACR,OAAQ,2BACR,QAAS,4BACT,KAAM,yBACN,KAAM,yBACN,KAAM,yBACP,CACD,KAAM,CACJ,GAAI,iCACJ,GAAI,kCACJ,GAAI,0BACJ,GAAI,4BACJ,GAAI,gCACL,CACD,KAAM,CACJ,KAAM,eACP,CACF,CACD,gBAAiB,CACf,MAAO,OACP,KAAM,KACN,KAAM,GACP,CACF,CACF,CAID,SAAS,EAAM,CAAE,YAAW,QAAO,OAAM,OAAM,GAAG,GAAqB,CACrE,OAAO,EAAC,MAAA,CAAI,UAAW,EAAG,EAAc,CAAE,QAAO,OAAM,OAAM,CAAC,CAAE,EAAU,CAAE,GAAI,GAAS"}
1
+ {"version":3,"file":"badge-DWc4Idn2.js","names":[],"sources":["../packages/components/ui/badge.tsx"],"sourcesContent":["'use client';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nconst badgeVariants = cva(\n 'focus:ring-ring rounded-sm inline-flex items-center px-2.5 py-0.5 font-semibold text-white shadow-sm transition-colors focus:ring-2 focus:ring-offset-2 focus:outline-hidden forced-colors:outline',\n {\n variants: {\n color: {\n red: 'bg-red-500 text-white',\n orange: 'bg-orange-500 text-white',\n amber: 'bg-amber-500 text-white',\n yellow: 'bg-yellow-500 text-white',\n lime: 'bg-lime-500 text-white',\n green: 'bg-green-500 text-white',\n emerald: 'bg-emerald-500 text-white',\n teal: 'bg-teal-500 text-white',\n cyan: 'bg-cyan-500 text-white',\n sky: 'bg-sky-500 text-white',\n blue: 'bg-blue-500 text-white',\n indigo: 'bg-indigo-500 text-white',\n violet: 'bg-violet-500 text-white',\n purple: 'bg-purple-500 text-white',\n fuchsia: 'bg-fuchsia-500 text-white',\n pink: 'bg-pink-500 text-white',\n rose: 'bg-rose-500 text-white',\n zinc: 'bg-zinc-500 text-white',\n },\n size: {\n xs: 'text-[8px]/3 px-1 py-0.5 gap-1',\n sm: 'text-[10px]/3 px-1.5 py-1 gap-1',\n md: 'text-xs px-2 py-1 gap-1',\n lg: 'text-sm px-2 py-1 gap-1.5',\n xl: 'text-base px-2.5 py-1 gap-1.5',\n },\n pill: {\n true: 'rounded-full',\n },\n },\n defaultVariants: {\n color: 'zinc',\n size: 'md',\n pill: true,\n },\n }\n);\n\nexport type BadgeProps = VariantProps<typeof badgeVariants> & React.ComponentPropsWithoutRef<'div'>;\n\nfunction Badge({ className, color, size, pill, ...props }: BadgeProps) {\n return <div className={cn(badgeVariants({ color, pill, size }), className)} {...props} />;\n}\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport { Badge, badgeVariants };\n"],"mappings":"2IAKA,MAAM,EAAgB,EACpB,qMACA,CACE,SAAU,CACR,MAAO,CACL,IAAK,wBACL,OAAQ,2BACR,MAAO,0BACP,OAAQ,2BACR,KAAM,yBACN,MAAO,0BACP,QAAS,4BACT,KAAM,yBACN,KAAM,yBACN,IAAK,wBACL,KAAM,yBACN,OAAQ,2BACR,OAAQ,2BACR,OAAQ,2BACR,QAAS,4BACT,KAAM,yBACN,KAAM,yBACN,KAAM,yBACP,CACD,KAAM,CACJ,GAAI,iCACJ,GAAI,kCACJ,GAAI,0BACJ,GAAI,4BACJ,GAAI,gCACL,CACD,KAAM,CACJ,KAAM,eACP,CACF,CACD,gBAAiB,CACf,MAAO,OACP,KAAM,KACN,KAAM,GACP,CACF,CACF,CAID,SAAS,EAAM,CAAE,YAAW,QAAO,OAAM,OAAM,GAAG,GAAqB,CACrE,OAAO,EAAC,MAAA,CAAI,UAAW,EAAG,EAAc,CAAE,QAAO,OAAM,OAAM,CAAC,CAAE,EAAU,CAAE,GAAI,GAAS"}
@@ -1,5 +1,5 @@
1
- import * as react_jsx_runtime77 from "react/jsx-runtime";
2
- import * as class_variance_authority_types10 from "class-variance-authority/types";
1
+ import * as react_jsx_runtime42 from "react/jsx-runtime";
2
+ import * as class_variance_authority_types13 from "class-variance-authority/types";
3
3
  import { VariantProps } from "class-variance-authority";
4
4
 
5
5
  //#region packages/components/ui/button-variants.d.ts
@@ -10,7 +10,7 @@ declare const buttonVariants: (props?: ({
10
10
  variant?: "default" | "outline" | "link" | "ghost" | null | undefined;
11
11
  color?: "muted" | "primary" | "secondary" | "success" | "important" | "info" | "warning" | "danger" | null | undefined;
12
12
  size?: "sm" | "lg" | "default" | "icon" | null | undefined;
13
- } & class_variance_authority_types10.ClassProp) | undefined) => string;
13
+ } & class_variance_authority_types13.ClassProp) | undefined) => string;
14
14
  type ButtonVariantProps = VariantProps<typeof buttonVariants>;
15
15
  //#endregion
16
16
  //#region packages/components/ui/button.d.ts
@@ -50,7 +50,7 @@ declare function Button({
50
50
  disabled,
51
51
  type,
52
52
  ...props
53
- }: ButtonProps): react_jsx_runtime77.JSX.Element;
53
+ }: ButtonProps): react_jsx_runtime42.JSX.Element;
54
54
  //#endregion
55
55
  export { Button, ButtonProps };
56
- //# sourceMappingURL=button-BuyrlYHs.d.cts.map
56
+ //# sourceMappingURL=button-Cmrl9fVS.d.cts.map
@@ -1,6 +1,6 @@
1
- import * as react_jsx_runtime116 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime58 from "react/jsx-runtime";
2
2
  import { VariantProps } from "class-variance-authority";
3
- import * as class_variance_authority_types11 from "class-variance-authority/types";
3
+ import * as class_variance_authority_types12 from "class-variance-authority/types";
4
4
 
5
5
  //#region packages/components/ui/button-variants.d.ts
6
6
  /**
@@ -10,7 +10,7 @@ declare const buttonVariants: (props?: ({
10
10
  variant?: "default" | "outline" | "link" | "ghost" | null | undefined;
11
11
  color?: "muted" | "primary" | "secondary" | "success" | "important" | "info" | "warning" | "danger" | null | undefined;
12
12
  size?: "sm" | "lg" | "default" | "icon" | null | undefined;
13
- } & class_variance_authority_types11.ClassProp) | undefined) => string;
13
+ } & class_variance_authority_types12.ClassProp) | undefined) => string;
14
14
  type ButtonVariantProps = VariantProps<typeof buttonVariants>;
15
15
  //#endregion
16
16
  //#region packages/components/ui/button.d.ts
@@ -50,7 +50,7 @@ declare function Button({
50
50
  disabled,
51
51
  type,
52
52
  ...props
53
- }: ButtonProps): react_jsx_runtime116.JSX.Element;
53
+ }: ButtonProps): react_jsx_runtime58.JSX.Element;
54
54
  //#endregion
55
55
  export { Button, ButtonProps };
56
- //# sourceMappingURL=button-BP2S40Lh.d.ts.map
56
+ //# sourceMappingURL=button-D8ha3suV.d.ts.map
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime0 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime4 from "react/jsx-runtime";
2
2
 
3
3
  //#region packages/components/cards/simple-card.d.ts
4
4
  type Props = {
@@ -13,7 +13,7 @@ declare const SimpleCard: ({
13
13
  action,
14
14
  footer,
15
15
  children
16
- }: React.PropsWithChildren<Props>) => react_jsx_runtime0.JSX.Element;
16
+ }: React.PropsWithChildren<Props>) => react_jsx_runtime4.JSX.Element;
17
17
  //#endregion
18
18
  export { SimpleCard };
19
19
  //# sourceMappingURL=simple-card.d.ts.map
@@ -1,12 +1,12 @@
1
- import { Dialog } from "./dialog-JtlljVFY.js";
2
- import * as react_jsx_runtime60 from "react/jsx-runtime";
1
+ import { Dialog } from "./dialog-BFte9fya.js";
2
+ import * as react_jsx_runtime61 from "react/jsx-runtime";
3
3
  import { Command } from "cmdk";
4
4
 
5
5
  //#region packages/components/ui/command.d.ts
6
6
  declare function Command$1({
7
7
  className,
8
8
  ...props
9
- }: React.ComponentProps<typeof Command>): react_jsx_runtime60.JSX.Element;
9
+ }: React.ComponentProps<typeof Command>): react_jsx_runtime61.JSX.Element;
10
10
  declare function CommandDialog({
11
11
  title,
12
12
  description,
@@ -19,34 +19,34 @@ declare function CommandDialog({
19
19
  description?: string;
20
20
  className?: string;
21
21
  showCloseButton?: boolean;
22
- }): react_jsx_runtime60.JSX.Element;
22
+ }): react_jsx_runtime61.JSX.Element;
23
23
  declare function CommandInput({
24
24
  className,
25
25
  ...props
26
- }: React.ComponentProps<typeof Command.Input>): react_jsx_runtime60.JSX.Element;
26
+ }: React.ComponentProps<typeof Command.Input>): react_jsx_runtime61.JSX.Element;
27
27
  declare function CommandList({
28
28
  className,
29
29
  ...props
30
- }: React.ComponentProps<typeof Command.List>): react_jsx_runtime60.JSX.Element;
30
+ }: React.ComponentProps<typeof Command.List>): react_jsx_runtime61.JSX.Element;
31
31
  declare function CommandEmpty({
32
32
  ...props
33
- }: React.ComponentProps<typeof Command.Empty>): react_jsx_runtime60.JSX.Element;
33
+ }: React.ComponentProps<typeof Command.Empty>): react_jsx_runtime61.JSX.Element;
34
34
  declare function CommandGroup({
35
35
  className,
36
36
  ...props
37
- }: React.ComponentProps<typeof Command.Group>): react_jsx_runtime60.JSX.Element;
37
+ }: React.ComponentProps<typeof Command.Group>): react_jsx_runtime61.JSX.Element;
38
38
  declare function CommandSeparator({
39
39
  className,
40
40
  ...props
41
- }: React.ComponentProps<typeof Command.Separator>): react_jsx_runtime60.JSX.Element;
41
+ }: React.ComponentProps<typeof Command.Separator>): react_jsx_runtime61.JSX.Element;
42
42
  declare function CommandItem({
43
43
  className,
44
44
  ...props
45
- }: React.ComponentProps<typeof Command.Item>): react_jsx_runtime60.JSX.Element;
45
+ }: React.ComponentProps<typeof Command.Item>): react_jsx_runtime61.JSX.Element;
46
46
  declare function CommandShortcut({
47
47
  className,
48
48
  ...props
49
- }: React.ComponentProps<'span'>): react_jsx_runtime60.JSX.Element;
49
+ }: React.ComponentProps<'span'>): react_jsx_runtime61.JSX.Element;
50
50
  //#endregion
51
51
  export { Command$1 as Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut };
52
- //# sourceMappingURL=command-mz4oiB8D.d.ts.map
52
+ //# sourceMappingURL=command-BvD9KzBE.d.ts.map
@@ -1,12 +1,12 @@
1
- import { Dialog } from "./dialog-DEixzKid.cjs";
2
- import * as react_jsx_runtime68 from "react/jsx-runtime";
1
+ import { Dialog } from "./dialog-BRaqPBK5.cjs";
2
+ import * as react_jsx_runtime72 from "react/jsx-runtime";
3
3
  import { Command } from "cmdk";
4
4
 
5
5
  //#region packages/components/ui/command.d.ts
6
6
  declare function Command$1({
7
7
  className,
8
8
  ...props
9
- }: React.ComponentProps<typeof Command>): react_jsx_runtime68.JSX.Element;
9
+ }: React.ComponentProps<typeof Command>): react_jsx_runtime72.JSX.Element;
10
10
  declare function CommandDialog({
11
11
  title,
12
12
  description,
@@ -19,34 +19,34 @@ declare function CommandDialog({
19
19
  description?: string;
20
20
  className?: string;
21
21
  showCloseButton?: boolean;
22
- }): react_jsx_runtime68.JSX.Element;
22
+ }): react_jsx_runtime72.JSX.Element;
23
23
  declare function CommandInput({
24
24
  className,
25
25
  ...props
26
- }: React.ComponentProps<typeof Command.Input>): react_jsx_runtime68.JSX.Element;
26
+ }: React.ComponentProps<typeof Command.Input>): react_jsx_runtime72.JSX.Element;
27
27
  declare function CommandList({
28
28
  className,
29
29
  ...props
30
- }: React.ComponentProps<typeof Command.List>): react_jsx_runtime68.JSX.Element;
30
+ }: React.ComponentProps<typeof Command.List>): react_jsx_runtime72.JSX.Element;
31
31
  declare function CommandEmpty({
32
32
  ...props
33
- }: React.ComponentProps<typeof Command.Empty>): react_jsx_runtime68.JSX.Element;
33
+ }: React.ComponentProps<typeof Command.Empty>): react_jsx_runtime72.JSX.Element;
34
34
  declare function CommandGroup({
35
35
  className,
36
36
  ...props
37
- }: React.ComponentProps<typeof Command.Group>): react_jsx_runtime68.JSX.Element;
37
+ }: React.ComponentProps<typeof Command.Group>): react_jsx_runtime72.JSX.Element;
38
38
  declare function CommandSeparator({
39
39
  className,
40
40
  ...props
41
- }: React.ComponentProps<typeof Command.Separator>): react_jsx_runtime68.JSX.Element;
41
+ }: React.ComponentProps<typeof Command.Separator>): react_jsx_runtime72.JSX.Element;
42
42
  declare function CommandItem({
43
43
  className,
44
44
  ...props
45
- }: React.ComponentProps<typeof Command.Item>): react_jsx_runtime68.JSX.Element;
45
+ }: React.ComponentProps<typeof Command.Item>): react_jsx_runtime72.JSX.Element;
46
46
  declare function CommandShortcut({
47
47
  className,
48
48
  ...props
49
- }: React.ComponentProps<'span'>): react_jsx_runtime68.JSX.Element;
49
+ }: React.ComponentProps<'span'>): react_jsx_runtime72.JSX.Element;
50
50
  //#endregion
51
51
  export { Command$1 as Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut };
52
- //# sourceMappingURL=command-FHT81qCY.d.cts.map
52
+ //# sourceMappingURL=command-DcLWxu3u.d.cts.map
@@ -1,2 +1,2 @@
1
- const e=require(`../chunk-CUT6urMc.cjs`),t=require(`../flex-DgmCJ9Bz.cjs`),n=require(`../types-Bfxd7F-g.cjs`),r=require(`../paragraph-Dl6mLo1q.cjs`);let i=require(`react`);i=e.__toESM(i);let a=require(`react/jsx-runtime`);a=e.__toESM(a);let o=require(`react-country-flag`);o=e.__toESM(o);const s=({country:e})=>{let s=(0,i.useMemo)(()=>({[n.ECountry.VIETNAM]:`VN`,[n.ECountry.USA]:`US`,[n.ECountry.JAPAN]:`JP`,[n.ECountry.CHINA]:`CN`,[n.ECountry.KOREA]:`KR`,[n.ECountry.SINGAPORE]:`SG`,[n.ECountry.MALAYSIA]:`MY`,[n.ECountry.INDONESIA]:`ID`,[n.ECountry.TAIWAN]:`TW`,[n.ECountry.THAILAND]:`TH`}),[]);return e?(0,a.jsxs)(t.Flex,{padding:`none`,className:`h-4 px-1`,children:[(0,a.jsx)(o.default,{svg:!0,countryCode:e?s[e]:`VN`,className:`emojiFlag border`}),(0,a.jsxs)(r.Paragraph,{variant:`sm`,children:[e===n.ECountry.VIETNAM&&`Vietnam`,e===n.ECountry.USA&&`America`,e===n.ECountry.JAPAN&&`Japan`,e===n.ECountry.CHINA&&`China`,e===n.ECountry.KOREA&&`Korea`,e===n.ECountry.SINGAPORE&&`Singapore`,e===n.ECountry.MALAYSIA&&`Malaysia`,e===n.ECountry.INDONESIA&&`Indonesia`,e===n.ECountry.TAIWAN&&`Taiwan`,e===n.ECountry.THAILAND&&`Thailand`]})]}):(0,a.jsx)(t.Flex,{padding:`none`,className:`h-4 px-1`,children:(0,a.jsx)(r.Paragraph,{variant:`muted`,className:`line-clamp-1 text-xs`,children:`No country`})})};exports.CountryDisplay=s;
1
+ const e=require(`../chunk-CUT6urMc.cjs`),t=require(`../flex-DgmCJ9Bz.cjs`),n=require(`../types-_t74BXO1.cjs`),r=require(`../paragraph-GYX6NlXZ.cjs`);let i=require(`react`);i=e.__toESM(i);let a=require(`react/jsx-runtime`);a=e.__toESM(a);let o=require(`react-country-flag`);o=e.__toESM(o);const s=({country:e})=>{let s=(0,i.useMemo)(()=>({[n.ECountry.VIETNAM]:`VN`,[n.ECountry.USA]:`US`,[n.ECountry.JAPAN]:`JP`,[n.ECountry.CHINA]:`CN`,[n.ECountry.KOREA]:`KR`,[n.ECountry.SINGAPORE]:`SG`,[n.ECountry.MALAYSIA]:`MY`,[n.ECountry.INDONESIA]:`ID`,[n.ECountry.TAIWAN]:`TW`,[n.ECountry.THAILAND]:`TH`}),[]);return e?(0,a.jsxs)(t.Flex,{padding:`none`,className:`h-4 px-1`,children:[(0,a.jsx)(o.default,{svg:!0,countryCode:e?s[e]:`VN`,className:`emojiFlag border`}),(0,a.jsxs)(r.Paragraph,{variant:`sm`,children:[e===n.ECountry.VIETNAM&&`Vietnam`,e===n.ECountry.USA&&`America`,e===n.ECountry.JAPAN&&`Japan`,e===n.ECountry.CHINA&&`China`,e===n.ECountry.KOREA&&`Korea`,e===n.ECountry.SINGAPORE&&`Singapore`,e===n.ECountry.MALAYSIA&&`Malaysia`,e===n.ECountry.INDONESIA&&`Indonesia`,e===n.ECountry.TAIWAN&&`Taiwan`,e===n.ECountry.THAILAND&&`Thailand`]})]}):(0,a.jsx)(t.Flex,{padding:`none`,className:`h-4 px-1`,children:(0,a.jsx)(r.Paragraph,{variant:`muted`,className:`line-clamp-1 text-xs`,children:`No country`})})};exports.CountryDisplay=s;
2
2
  //# sourceMappingURL=country.cjs.map
@@ -1,2 +1,2 @@
1
- import{Flex as e}from"../flex-BJgsQWLI.js";import{ECountry as t}from"../types-bhmvOEvz.js";import{Paragraph as n}from"../paragraph-EiPvpYGr.js";import{useMemo as r}from"react";import{jsx as i,jsxs as a}from"react/jsx-runtime";import o from"react-country-flag";const s=({country:s})=>{let c=r(()=>({[t.VIETNAM]:`VN`,[t.USA]:`US`,[t.JAPAN]:`JP`,[t.CHINA]:`CN`,[t.KOREA]:`KR`,[t.SINGAPORE]:`SG`,[t.MALAYSIA]:`MY`,[t.INDONESIA]:`ID`,[t.TAIWAN]:`TW`,[t.THAILAND]:`TH`}),[]);return s?a(e,{padding:`none`,className:`h-4 px-1`,children:[i(o,{svg:!0,countryCode:s?c[s]:`VN`,className:`emojiFlag border`}),a(n,{variant:`sm`,children:[s===t.VIETNAM&&`Vietnam`,s===t.USA&&`America`,s===t.JAPAN&&`Japan`,s===t.CHINA&&`China`,s===t.KOREA&&`Korea`,s===t.SINGAPORE&&`Singapore`,s===t.MALAYSIA&&`Malaysia`,s===t.INDONESIA&&`Indonesia`,s===t.TAIWAN&&`Taiwan`,s===t.THAILAND&&`Thailand`]})]}):i(e,{padding:`none`,className:`h-4 px-1`,children:i(n,{variant:`muted`,className:`line-clamp-1 text-xs`,children:`No country`})})};export{s as CountryDisplay};
1
+ import{Flex as e}from"../flex-BJgsQWLI.js";import{ECountry as t}from"../types-BfVUsI26.js";import{Paragraph as n}from"../paragraph-BuE9WF5p.js";import{useMemo as r}from"react";import{jsx as i,jsxs as a}from"react/jsx-runtime";import o from"react-country-flag";const s=({country:s})=>{let c=r(()=>({[t.VIETNAM]:`VN`,[t.USA]:`US`,[t.JAPAN]:`JP`,[t.CHINA]:`CN`,[t.KOREA]:`KR`,[t.SINGAPORE]:`SG`,[t.MALAYSIA]:`MY`,[t.INDONESIA]:`ID`,[t.TAIWAN]:`TW`,[t.THAILAND]:`TH`}),[]);return s?a(e,{padding:`none`,className:`h-4 px-1`,children:[i(o,{svg:!0,countryCode:s?c[s]:`VN`,className:`emojiFlag border`}),a(n,{variant:`sm`,children:[s===t.VIETNAM&&`Vietnam`,s===t.USA&&`America`,s===t.JAPAN&&`Japan`,s===t.CHINA&&`China`,s===t.KOREA&&`Korea`,s===t.SINGAPORE&&`Singapore`,s===t.MALAYSIA&&`Malaysia`,s===t.INDONESIA&&`Indonesia`,s===t.TAIWAN&&`Taiwan`,s===t.THAILAND&&`Thailand`]})]}):i(e,{padding:`none`,className:`h-4 px-1`,children:i(n,{variant:`muted`,className:`line-clamp-1 text-xs`,children:`No country`})})};export{s as CountryDisplay};
2
2
  //# sourceMappingURL=country.js.map
@@ -1,2 +1,2 @@
1
- const e=require(`../chunk-CUT6urMc.cjs`),t=require(`../date-Bv13VRWU.cjs`),n=require(`../badge-_7ZCk7u2.cjs`),r=require(`../tooltip-pmQZf5Bt.cjs`);let i=require(`react/jsx-runtime`);i=e.__toESM(i);const a=({date:e})=>(0,i.jsx)(r.TooltipProvider,{children:(0,i.jsxs)(r.Tooltip,{children:[(0,i.jsx)(r.TooltipTrigger,{asChild:!0,children:(0,i.jsx)(n.Badge,{children:(0,i.jsx)(t.DateDisplay,{date:e,format:`medium`,className:`font-normal text-white`})})}),(0,i.jsx)(r.TooltipContent,{children:(0,i.jsx)(t.DateDisplay,{date:e,format:`full`,showTime:!0,className:`!font-[Inter] font-medium`})})]})});exports.DateTooltip=a;
1
+ const e=require(`../chunk-CUT6urMc.cjs`),t=require(`../date-vWvu4M91.cjs`),n=require(`../badge-B1y6KFfh.cjs`),r=require(`../tooltip-v0ikl3om.cjs`);let i=require(`react/jsx-runtime`);i=e.__toESM(i);const a=({date:e})=>(0,i.jsx)(r.TooltipProvider,{children:(0,i.jsxs)(r.Tooltip,{children:[(0,i.jsx)(r.TooltipTrigger,{asChild:!0,children:(0,i.jsx)(n.Badge,{children:(0,i.jsx)(t.DateDisplay,{date:e,format:`medium`,className:`font-normal text-white`})})}),(0,i.jsx)(r.TooltipContent,{children:(0,i.jsx)(t.DateDisplay,{date:e,format:`full`,showTime:!0,className:`!font-[Inter] font-medium`})})]})});exports.DateTooltip=a;
2
2
  //# sourceMappingURL=date-tooltip.cjs.map
@@ -1,2 +1,2 @@
1
- import{DateDisplay as e}from"../date-BIb58beV.js";import{Badge as t}from"../badge-DFlMOdsm.js";import{Tooltip as n,TooltipContent as r,TooltipProvider as i,TooltipTrigger as a}from"../tooltip-xp6RiroA.js";import{jsx as o,jsxs as s}from"react/jsx-runtime";const c=({date:c})=>o(i,{children:s(n,{children:[o(a,{asChild:!0,children:o(t,{children:o(e,{date:c,format:`medium`,className:`font-normal text-white`})})}),o(r,{children:o(e,{date:c,format:`full`,showTime:!0,className:`!font-[Inter] font-medium`})})]})});export{c as DateTooltip};
1
+ import{DateDisplay as e}from"../date-4JlD-xYj.js";import{Badge as t}from"../badge-DWc4Idn2.js";import{Tooltip as n,TooltipContent as r,TooltipProvider as i,TooltipTrigger as a}from"../tooltip-DHD6S-vH.js";import{jsx as o,jsxs as s}from"react/jsx-runtime";const c=({date:c})=>o(i,{children:s(n,{children:[o(a,{asChild:!0,children:o(t,{children:o(e,{date:c,format:`medium`,className:`font-normal text-white`})})}),o(r,{children:o(e,{date:c,format:`full`,showTime:!0,className:`!font-[Inter] font-medium`})})]})});export{c as DateTooltip};
2
2
  //# sourceMappingURL=date-tooltip.js.map
@@ -1 +1 @@
1
- const e=require(`../date-Bv13VRWU.cjs`);exports.DateDisplay=e.DateDisplay;
1
+ const e=require(`../date-vWvu4M91.cjs`);exports.DateDisplay=e.DateDisplay;
@@ -1 +1 @@
1
- import{DateDisplay as e}from"../date-BIb58beV.js";export{e as DateDisplay};
1
+ import{DateDisplay as e}from"../date-4JlD-xYj.js";export{e as DateDisplay};
@@ -1,7 +1,7 @@
1
- import * as react_jsx_runtime20 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime8 from "react/jsx-runtime";
2
2
 
3
3
  //#region packages/components/data-display/empty.d.ts
4
- declare const EmptyDisplay: () => react_jsx_runtime20.JSX.Element;
4
+ declare const EmptyDisplay: () => react_jsx_runtime8.JSX.Element;
5
5
  //#endregion
6
6
  export { EmptyDisplay };
7
7
  //# sourceMappingURL=empty.d.cts.map
@@ -1,2 +1,2 @@
1
- const e=require(`../chunk-CUT6urMc.cjs`),t=require(`../paragraph-Dl6mLo1q.cjs`),n=require(`../tooltip-pmQZf5Bt.cjs`);let r=require(`react/jsx-runtime`);r=e.__toESM(r);const i=({name:e})=>(0,r.jsxs)(n.Tooltip,{children:[(0,r.jsx)(n.TooltipTrigger,{children:(0,r.jsx)(t.Paragraph,{variant:`sm`,className:`line-clamp-2 w-full truncate pb-px text-start text-wrap`,children:e})}),(0,r.jsx)(n.TooltipContent,{align:`start`,className:`max-w-80 text-wrap break-keep whitespace-pre-line`,children:e})]});exports.NameDisplay=i;
1
+ const e=require(`../chunk-CUT6urMc.cjs`),t=require(`../paragraph-GYX6NlXZ.cjs`),n=require(`../tooltip-v0ikl3om.cjs`);let r=require(`react/jsx-runtime`);r=e.__toESM(r);const i=({name:e})=>(0,r.jsxs)(n.Tooltip,{children:[(0,r.jsx)(n.TooltipTrigger,{children:(0,r.jsx)(t.Paragraph,{variant:`sm`,className:`line-clamp-2 w-full truncate pb-px text-start text-wrap`,children:e})}),(0,r.jsx)(n.TooltipContent,{align:`start`,className:`max-w-80 text-wrap break-keep whitespace-pre-line`,children:e})]});exports.NameDisplay=i;
2
2
  //# sourceMappingURL=name.cjs.map
@@ -1,2 +1,2 @@
1
- import{Paragraph as e}from"../paragraph-EiPvpYGr.js";import{Tooltip as t,TooltipContent as n,TooltipTrigger as r}from"../tooltip-xp6RiroA.js";import{jsx as i,jsxs as a}from"react/jsx-runtime";const o=({name:o})=>a(t,{children:[i(r,{children:i(e,{variant:`sm`,className:`line-clamp-2 w-full truncate pb-px text-start text-wrap`,children:o})}),i(n,{align:`start`,className:`max-w-80 text-wrap break-keep whitespace-pre-line`,children:o})]});export{o as NameDisplay};
1
+ import{Paragraph as e}from"../paragraph-BuE9WF5p.js";import{Tooltip as t,TooltipContent as n,TooltipTrigger as r}from"../tooltip-DHD6S-vH.js";import{jsx as i,jsxs as a}from"react/jsx-runtime";const o=({name:o})=>a(t,{children:[i(r,{children:i(e,{variant:`sm`,className:`line-clamp-2 w-full truncate pb-px text-start text-wrap`,children:o})}),i(n,{align:`start`,className:`max-w-80 text-wrap break-keep whitespace-pre-line`,children:o})]});export{o as NameDisplay};
2
2
  //# sourceMappingURL=name.js.map
@@ -1,2 +1,2 @@
1
- const e=require(`../chunk-CUT6urMc.cjs`),t=require(`../tooltip-pmQZf5Bt.cjs`);let n=require(`react/jsx-runtime`);n=e.__toESM(n);const r=({value:e})=>(0,n.jsxs)(t.Tooltip,{children:[(0,n.jsx)(t.TooltipTrigger,{asChild:!0,children:(0,n.jsx)(`p`,{className:`font-number text-secondary-foreground text-sm`,children:e.replace(/(\d{3})(\d{3})(\d{4})/,`($1) $2-$3`)})}),(0,n.jsx)(t.TooltipContent,{align:`start`,children:(0,n.jsx)(`p`,{children:e.slice(1).replace(/(\d{2})(\d{3})(\d{4})/,`(00) (+84) ($1) $2-$3`)})})]});exports.PhoneNumberDisplay=r;
1
+ const e=require(`../chunk-CUT6urMc.cjs`),t=require(`../tooltip-v0ikl3om.cjs`);let n=require(`react/jsx-runtime`);n=e.__toESM(n);const r=({value:e})=>(0,n.jsxs)(t.Tooltip,{children:[(0,n.jsx)(t.TooltipTrigger,{asChild:!0,children:(0,n.jsx)(`p`,{className:`font-number text-secondary-foreground text-sm`,children:e.replace(/(\d{3})(\d{3})(\d{4})/,`($1) $2-$3`)})}),(0,n.jsx)(t.TooltipContent,{align:`start`,children:(0,n.jsx)(`p`,{children:e.slice(1).replace(/(\d{2})(\d{3})(\d{4})/,`(00) (+84) ($1) $2-$3`)})})]});exports.PhoneNumberDisplay=r;
2
2
  //# sourceMappingURL=phone-number.cjs.map
@@ -1,2 +1,2 @@
1
- import{Tooltip as e,TooltipContent as t,TooltipTrigger as n}from"../tooltip-xp6RiroA.js";import{jsx as r,jsxs as i}from"react/jsx-runtime";const a=({value:a})=>i(e,{children:[r(n,{asChild:!0,children:r(`p`,{className:`font-number text-secondary-foreground text-sm`,children:a.replace(/(\d{3})(\d{3})(\d{4})/,`($1) $2-$3`)})}),r(t,{align:`start`,children:r(`p`,{children:a.slice(1).replace(/(\d{2})(\d{3})(\d{4})/,`(00) (+84) ($1) $2-$3`)})})]});export{a as PhoneNumberDisplay};
1
+ import{Tooltip as e,TooltipContent as t,TooltipTrigger as n}from"../tooltip-DHD6S-vH.js";import{jsx as r,jsxs as i}from"react/jsx-runtime";const a=({value:a})=>i(e,{children:[r(n,{asChild:!0,children:r(`p`,{className:`font-number text-secondary-foreground text-sm`,children:a.replace(/(\d{3})(\d{3})(\d{4})/,`($1) $2-$3`)})}),r(t,{align:`start`,children:r(`p`,{children:a.slice(1).replace(/(\d{2})(\d{3})(\d{4})/,`(00) (+84) ($1) $2-$3`)})})]});export{a as PhoneNumberDisplay};
2
2
  //# sourceMappingURL=phone-number.js.map
@@ -1,2 +1,2 @@
1
- const e=require(`../chunk-CUT6urMc.cjs`),t=require(`../types-Bfxd7F-g.cjs`),n=require(`../badge-_7ZCk7u2.cjs`);let r=require(`react`);r=e.__toESM(r);let i=require(`react/jsx-runtime`);i=e.__toESM(i);const a=({status:e})=>{let a=(0,r.useMemo)(()=>({[t.ERole.ADMIN]:`red`,[t.ERole.SUPER_ADMIN]:`purple`,[t.ERole.MODERATOR]:`indigo`,[t.ERole.STAFF]:`green`,[t.ERole.USER]:`blue`}),[]);return(0,i.jsxs)(n.Badge,{color:a[e],className:`min-w-24 justify-center`,children:[e===t.ERole.SUPER_ADMIN&&`Super Admin`,e===t.ERole.ADMIN&&`Admin`,e===t.ERole.MODERATOR&&`Moderator`,e===t.ERole.STAFF&&`Staff`,e===t.ERole.USER&&`User`]})};exports.RoleBadge=a;
1
+ const e=require(`../chunk-CUT6urMc.cjs`),t=require(`../types-_t74BXO1.cjs`),n=require(`../badge-B1y6KFfh.cjs`);let r=require(`react`);r=e.__toESM(r);let i=require(`react/jsx-runtime`);i=e.__toESM(i);const a=({status:e})=>{let a=(0,r.useMemo)(()=>({[t.ERole.ADMIN]:`red`,[t.ERole.SUPER_ADMIN]:`purple`,[t.ERole.MODERATOR]:`indigo`,[t.ERole.STAFF]:`green`,[t.ERole.USER]:`blue`}),[]);return(0,i.jsxs)(n.Badge,{color:a[e],className:`min-w-24 justify-center`,children:[e===t.ERole.SUPER_ADMIN&&`Super Admin`,e===t.ERole.ADMIN&&`Admin`,e===t.ERole.MODERATOR&&`Moderator`,e===t.ERole.STAFF&&`Staff`,e===t.ERole.USER&&`User`]})};exports.RoleBadge=a;
2
2
  //# sourceMappingURL=role-badge.cjs.map
@@ -1,2 +1,2 @@
1
- import{ERole as e}from"../types-bhmvOEvz.js";import{Badge as t}from"../badge-DFlMOdsm.js";import{useMemo as n}from"react";import{jsxs as r}from"react/jsx-runtime";const i=({status:i})=>{let a=n(()=>({[e.ADMIN]:`red`,[e.SUPER_ADMIN]:`purple`,[e.MODERATOR]:`indigo`,[e.STAFF]:`green`,[e.USER]:`blue`}),[]);return r(t,{color:a[i],className:`min-w-24 justify-center`,children:[i===e.SUPER_ADMIN&&`Super Admin`,i===e.ADMIN&&`Admin`,i===e.MODERATOR&&`Moderator`,i===e.STAFF&&`Staff`,i===e.USER&&`User`]})};export{i as RoleBadge};
1
+ import{ERole as e}from"../types-BfVUsI26.js";import{Badge as t}from"../badge-DWc4Idn2.js";import{useMemo as n}from"react";import{jsxs as r}from"react/jsx-runtime";const i=({status:i})=>{let a=n(()=>({[e.ADMIN]:`red`,[e.SUPER_ADMIN]:`purple`,[e.MODERATOR]:`indigo`,[e.STAFF]:`green`,[e.USER]:`blue`}),[]);return r(t,{color:a[i],className:`min-w-24 justify-center`,children:[i===e.SUPER_ADMIN&&`Super Admin`,i===e.ADMIN&&`Admin`,i===e.MODERATOR&&`Moderator`,i===e.STAFF&&`Staff`,i===e.USER&&`User`]})};export{i as RoleBadge};
2
2
  //# sourceMappingURL=role-badge.js.map
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime25 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime11 from "react/jsx-runtime";
2
2
  import * as react0 from "react";
3
3
 
4
4
  //#region packages/components/data-display/statistic.d.ts
@@ -23,7 +23,7 @@ declare const Statistic: react0.MemoExoticComponent<({
23
23
  showTrailingZeros,
24
24
  size,
25
25
  value
26
- }: Props) => react_jsx_runtime25.JSX.Element>;
26
+ }: Props) => react_jsx_runtime11.JSX.Element>;
27
27
  //#endregion
28
28
  export { Statistic };
29
29
  //# sourceMappingURL=statistic.d.cts.map
@@ -1,5 +1,5 @@
1
1
  import * as react0 from "react";
2
- import * as react_jsx_runtime12 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime11 from "react/jsx-runtime";
3
3
 
4
4
  //#region packages/components/data-display/statistic.d.ts
5
5
  type Props = {
@@ -23,7 +23,7 @@ declare const Statistic: react0.MemoExoticComponent<({
23
23
  showTrailingZeros,
24
24
  size,
25
25
  value
26
- }: Props) => react_jsx_runtime12.JSX.Element>;
26
+ }: Props) => react_jsx_runtime11.JSX.Element>;
27
27
  //#endregion
28
28
  export { Statistic };
29
29
  //# sourceMappingURL=statistic.d.ts.map
@@ -1,2 +1,2 @@
1
- const e=require(`../chunk-CUT6urMc.cjs`),t=require(`../flex-DgmCJ9Bz.cjs`),n=require(`../paragraph-Dl6mLo1q.cjs`),r=require(`../avatar-CAr8qOV9.cjs`);let i=require(`lucide-react`);i=e.__toESM(i);let a=require(`react/jsx-runtime`);a=e.__toESM(a);let o=require(`@customafk/react-toolkit/color-hash`);o=e.__toESM(o);const s=({uuid:e,username:s,email:c})=>(0,a.jsxs)(t.Flex,{wrap:!1,gap:`sm`,padding:`none`,children:[(0,a.jsx)(r.Avatar,{className:`shadow-card size-10`,children:(0,a.jsx)(r.AvatarFallback,{style:{backgroundColor:o.colorHashLight.hex(e)},children:(0,a.jsx)(i.UserRoundIcon,{size:28,className:`text-white`})})}),(0,a.jsxs)(t.Flex,{vertical:!0,padding:`none`,gap:`none`,align:`start`,children:[(0,a.jsx)(n.Paragraph,{className:`text-text-positive text-sm font-medium`,children:s}),(0,a.jsx)(n.Paragraph,{variant:`sm`,className:`text-text-positive-weak !mt-0 text-xs`,children:c})]})]});exports.UserDataDisplay=s;
1
+ const e=require(`../chunk-CUT6urMc.cjs`),t=require(`../flex-DgmCJ9Bz.cjs`),n=require(`../paragraph-GYX6NlXZ.cjs`),r=require(`../avatar-96dXWrWU.cjs`);let i=require(`lucide-react`);i=e.__toESM(i);let a=require(`react/jsx-runtime`);a=e.__toESM(a);let o=require(`@customafk/react-toolkit/color-hash`);o=e.__toESM(o);const s=({uuid:e,username:s,email:c})=>(0,a.jsxs)(t.Flex,{wrap:!1,gap:`sm`,padding:`none`,children:[(0,a.jsx)(r.Avatar,{className:`shadow-card size-10`,children:(0,a.jsx)(r.AvatarFallback,{style:{backgroundColor:o.colorHashLight.hex(e)},children:(0,a.jsx)(i.UserRoundIcon,{size:28,className:`text-white`})})}),(0,a.jsxs)(t.Flex,{vertical:!0,padding:`none`,gap:`none`,align:`start`,children:[(0,a.jsx)(n.Paragraph,{className:`text-text-positive text-sm font-medium`,children:s}),(0,a.jsx)(n.Paragraph,{variant:`sm`,className:`text-text-positive-weak !mt-0 text-xs`,children:c})]})]});exports.UserDataDisplay=s;
2
2
  //# sourceMappingURL=user.cjs.map
@@ -1,2 +1,2 @@
1
- import{Flex as e}from"../flex-BJgsQWLI.js";import{Paragraph as t}from"../paragraph-EiPvpYGr.js";import{Avatar as n,AvatarFallback as r}from"../avatar-zx6-WY2L.js";import{UserRoundIcon as i}from"lucide-react";import{jsx as a,jsxs as o}from"react/jsx-runtime";import{colorHashLight as s}from"@customafk/react-toolkit/color-hash";const c=({uuid:c,username:l,email:u})=>o(e,{wrap:!1,gap:`sm`,padding:`none`,children:[a(n,{className:`shadow-card size-10`,children:a(r,{style:{backgroundColor:s.hex(c)},children:a(i,{size:28,className:`text-white`})})}),o(e,{vertical:!0,padding:`none`,gap:`none`,align:`start`,children:[a(t,{className:`text-text-positive text-sm font-medium`,children:l}),a(t,{variant:`sm`,className:`text-text-positive-weak !mt-0 text-xs`,children:u})]})]});export{c as UserDataDisplay};
1
+ import{Flex as e}from"../flex-BJgsQWLI.js";import{Paragraph as t}from"../paragraph-BuE9WF5p.js";import{Avatar as n,AvatarFallback as r}from"../avatar-CcbiQ1mq.js";import{UserRoundIcon as i}from"lucide-react";import{jsx as a,jsxs as o}from"react/jsx-runtime";import{colorHashLight as s}from"@customafk/react-toolkit/color-hash";const c=({uuid:c,username:l,email:u})=>o(e,{wrap:!1,gap:`sm`,padding:`none`,children:[a(n,{className:`shadow-card size-10`,children:a(r,{style:{backgroundColor:s.hex(c)},children:a(i,{size:28,className:`text-white`})})}),o(e,{vertical:!0,padding:`none`,gap:`none`,align:`start`,children:[a(t,{className:`text-text-positive text-sm font-medium`,children:l}),a(t,{variant:`sm`,className:`text-text-positive-weak !mt-0 text-xs`,children:u})]})]});export{c as UserDataDisplay};
2
2
  //# sourceMappingURL=user.js.map
@@ -1,2 +1,2 @@
1
1
  import{cn as e}from"@customafk/react-toolkit/utils";import{useCallback as t,useMemo as n}from"react";import{jsx as r}from"react/jsx-runtime";import{format as i,isThisMonth as a,isThisWeek as o,isThisYear as s,isToday as c,isTomorrow as l,isValid as u,isYesterday as d,parseISO as f}from"@customafk/react-toolkit/date-fns";const p={weekdays:[`Chủ Nhật`,`Thứ Hai`,`Thứ Ba`,`Thứ Tư`,`Thứ Năm`,`Thứ Sáu`,`Thứ Bảy`],weekdaysShort:[`CN`,`T2`,`T3`,`T4`,`T5`,`T6`,`T7`],months:[`Tháng 1`,`Tháng 2`,`Tháng 3`,`Tháng 4`,`Tháng 5`,`Tháng 6`,`Tháng 7`,`Tháng 8`,`Tháng 9`,`Tháng 10`,`Tháng 11`,`Tháng 12`],monthsShort:[`T1`,`T2`,`T3`,`T4`,`T5`,`T6`,`T7`,`T8`,`T9`,`T10`,`T11`,`T12`]},m={"01-01":`Tết Dương lịch`,"03-08":`Quốc tế Phụ nữ`,"04-30":`Ngày Giải phóng miền Nam`,"05-01":`Quốc tế Lao động`,"09-02":`Quốc khánh`,"10-20":`Ngày Phụ nữ Việt Nam`,"11-20":`Ngày Nhà giáo Việt Nam`};Object.freeze({SECOND:1e3,MINUTE:60*1e3,HOUR:3600*1e3,DAY:1440*60*1e3,WEEK:10080*60*1e3,MONTH:720*60*60*1e3,YEAR:365*24*60*60*1e3});const h=Object.freeze({MINUTE:60,HOUR:3600,DAY:1440*60,WEEK:10080*60,MONTH:720*60*60,YEAR:365*24*60*60});Object.freeze({HOUR:60,DAY:1440,WEEK:10080,MONTH:720*60});const g=({date:g,format:_=`medium`,showHoliday:v=!1,showTime:y=!1,className:b=``,title:x})=>{let S=n(()=>{try{if(g instanceof Date)return u(g)?g:null;if(typeof g==`string`){let e=f(g);return u(e)?e:new Date(g)}if(typeof g==`number`){let e=new Date(g);return u(e)?e:null}return null}catch{return null}},[g]),C=t(e=>{let t=new Date,n=Math.floor((t.getTime()-e.getTime())/1e3);return n<60?`Vừa xong`:n<3600?`${Math.floor(n/h.MINUTE)} phút trước`:n<86400?`${Math.floor(n/h.HOUR)} giờ trước`:n<604800?`${Math.floor(n/h.DAY)} ngày trước`:n<2592e3?`${Math.floor(n/h.WEEK)} tuần trước`:n<31536e3?`${Math.floor(n/h.MONTH)} tháng trước`:`${Math.floor(n/h.YEAR)} năm trước`},[]),w=t((e,t=!1)=>{let n=e.getDay();return t?p.weekdaysShort[n]:p.weekdays[n]},[]),T=t((e,t=!1)=>{let n=e.getMonth();return t?p.monthsShort[n]:p.months[n]},[]),E=t(e=>{let t=i(e,`MM-dd`);return m[t]||null},[]),D=t(e=>{if(c(e))return y?`Hôm nay ${i(e,`HH:mm`)}`:`Hôm nay`;if(d(e))return y?`Hôm qua ${i(e,`HH:mm`)}`:`Hôm qua`;if(l(e))return y?`Ngày mai ${i(e,`HH:mm`)}`:`Ngày mai`;if(o(e)){let t=w(e);return y?`${t} ${i(e,`HH:mm`)}`:t}if(a(e)){let t=i(e,`d`);return y?`${t}/${i(e,`M`)} ${i(e,`HH:mm`)}`:`${t}/${i(e,`M`)}`}return s(e)?y?i(e,`d/M HH:mm`):i(e,`d/M`):y?i(e,`d/M/yyyy HH:mm`):i(e,`d/M/yyyy`)},[w,y]),O=t((e,t)=>{let n=y?i(e,`, HH:mm`):``;switch(t){case`short`:return i(e,`d/M/yy`)+n;case`medium`:return i(e,`dd/MM/yyyy`)+n;case`long`:return`${i(e,`d`)} ${T(e)} ${i(e,`yyyy`)}`+n;case`full`:return`${w(e)}, ngày ${i(e,`d`)} ${T(e)} năm ${i(e,`yyyy`)}`+n;case`relative`:return C(e);case`datetime`:return i(e,`d/M/yyyy HH:mm`);case`time`:return i(e,`HH:mm`);case`smart`:return D(e);default:return i(e,`d/M/yyyy`)+n}},[D,T,w,C,y]);if(!S)return r(`span`,{className:e(`text-muted-foreground text-sm`,b),children:`--/--/----`});let k=O(S,_),A=v?E(S):null,j=A?`${k} (${A})`:k,M=x||i(S,`EEEE, d MMMM yyyy HH:mm:ss`);return r(`time`,{dateTime:S.toISOString(),className:e(`text-accent-foreground font-number text-sm`,b),title:M,children:j})};export{g as DateDisplay};
2
- //# sourceMappingURL=date-BIb58beV.js.map
2
+ //# sourceMappingURL=date-4JlD-xYj.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"date-BIb58beV.js","names":["DateDisplay: React.FC<Props>","date"],"sources":["../packages/constants.tsx","../packages/components/data-display/date.tsx"],"sourcesContent":["// Vietnamese locale configuration\nexport const vietnameseLocale = {\n weekdays: ['Chủ Nhật', 'Thứ Hai', 'Thứ Ba', 'Thứ Tư', 'Thứ Năm', 'Thứ Sáu', 'Thứ Bảy'],\n weekdaysShort: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],\n months: ['Tháng 1', 'Tháng 2', 'Tháng 3', 'Tháng 4', 'Tháng 5', 'Tháng 6', 'Tháng 7', 'Tháng 8', 'Tháng 9', 'Tháng 10', 'Tháng 11', 'Tháng 12'],\n monthsShort: ['T1', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7', 'T8', 'T9', 'T10', 'T11', 'T12'],\n};\n\n// Vietnamese holidays\nexport const vietnameseHolidays = {\n '01-01': 'Tết Dương lịch',\n '03-08': 'Quốc tế Phụ nữ',\n '04-30': 'Ngày Giải phóng miền Nam',\n '05-01': 'Quốc tế Lao động',\n '09-02': 'Quốc khánh',\n '10-20': 'Ngày Phụ nữ Việt Nam',\n '11-20': 'Ngày Nhà giáo Việt Nam',\n};\n\n// Time Constants in milliseconds, seconds, and minutes\nexport const TIME_IN_MS = Object.freeze({\n SECOND: 1000,\n MINUTE: 60 * 1000,\n HOUR: 60 * 60 * 1000,\n DAY: 24 * 60 * 60 * 1000,\n WEEK: 7 * 24 * 60 * 60 * 1000,\n MONTH: 30 * 24 * 60 * 60 * 1000, // Approximation for month length = 30 days\n YEAR: 365 * 24 * 60 * 60 * 1000,\n});\n\nexport const TIME_IN_SECONDS = Object.freeze({\n MINUTE: 60,\n HOUR: 60 * 60,\n DAY: 24 * 60 * 60,\n WEEK: 7 * 24 * 60 * 60,\n MONTH: 30 * 24 * 60 * 60,\n YEAR: 365 * 24 * 60 * 60,\n});\n\nexport const TIME_IN_MINUTES = Object.freeze({\n HOUR: 60,\n DAY: 24 * 60,\n WEEK: 7 * 24 * 60,\n MONTH: 30 * 24 * 60,\n});\n","import { useCallback, useMemo } from 'react';\nimport { format, isThisMonth, isThisWeek, isThisYear, isToday, isTomorrow, isValid, isYesterday, parseISO } from '@customafk/react-toolkit/date-fns';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { TIME_IN_SECONDS, vietnameseHolidays, vietnameseLocale } from '@/constants';\n\ninterface Props {\n date: Date | string | number;\n format?:\n | 'short' // 15/03/24\n | 'medium' // 15/03/2024\n | 'long' // 15 tháng 3, 2024\n | 'full' // Thứ Sáu, ngày 15 tháng 3 năm 2024\n | 'relative' // 2 giờ trước\n | 'datetime' // 15/03/2024 14:30\n | 'time' // 14:30\n | 'smart'; // Tự động chọn format phù hợp\n showHoliday?: boolean;\n showTime?: boolean;\n className?: string;\n title?: string; // Tooltip khi hover\n}\n\nexport const DateDisplay: React.FC<Props> = ({ date, format: formatType = 'medium', showHoliday = false, showTime = false, className = '', title }) => {\n const parsedDate = useMemo(() => {\n try {\n if (date instanceof Date) {\n return isValid(date) ? date : null;\n }\n if (typeof date === 'string') {\n const parsed = parseISO(date);\n return isValid(parsed) ? parsed : new Date(date);\n }\n if (typeof date === 'number') {\n const parsed = new Date(date);\n return isValid(parsed) ? parsed : null;\n }\n return null;\n } catch {\n return null;\n }\n }, [date]);\n\n // Format relative time in Vietnamese\n const formatRelativeTime = useCallback((date: Date): string => {\n const now = new Date();\n const diffInSeconds = Math.floor((now.getTime() - date.getTime()) / 1000);\n\n if (diffInSeconds < 60) return 'Vừa xong';\n if (diffInSeconds < 3600) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.MINUTE)} phút trước`;\n if (diffInSeconds < 86400) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.HOUR)} giờ trước`;\n if (diffInSeconds < 604800) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.DAY)} ngày trước`;\n if (diffInSeconds < 2592000) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.WEEK)} tuần trước`;\n if (diffInSeconds < 31536000) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.MONTH)} tháng trước`;\n return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.YEAR)} năm trước`;\n }, []);\n\n // Vietnamese weekday\n const getVietnameseWeekday = useCallback((date: Date, short: boolean = false): string => {\n const dayIndex = date.getDay();\n return short ? vietnameseLocale.weekdaysShort[dayIndex] : vietnameseLocale.weekdays[dayIndex];\n }, []);\n\n // Vietnamese month\n const getVietnameseMonth = useCallback((date: Date, short: boolean = false): string => {\n const monthIndex = date.getMonth();\n return short ? vietnameseLocale.monthsShort[monthIndex] : vietnameseLocale.months[monthIndex];\n }, []);\n\n // Check holiday\n const getHoliday = useCallback((date: Date): string | null => {\n const monthDay = format(date, 'MM-dd') as keyof typeof vietnameseHolidays;\n return vietnameseHolidays[monthDay] || null;\n }, []);\n\n // Smart format - choose appropriate format based on date\n const getSmartFormat = useCallback(\n (date: Date): string => {\n if (isToday(date)) {\n return showTime ? `Hôm nay ${format(date, 'HH:mm')}` : 'Hôm nay';\n }\n if (isYesterday(date)) {\n return showTime ? `Hôm qua ${format(date, 'HH:mm')}` : 'Hôm qua';\n }\n if (isTomorrow(date)) {\n return showTime ? `Ngày mai ${format(date, 'HH:mm')}` : 'Ngày mai';\n }\n if (isThisWeek(date)) {\n const weekday = getVietnameseWeekday(date);\n return showTime ? `${weekday} ${format(date, 'HH:mm')}` : weekday;\n }\n if (isThisMonth(date)) {\n const day = format(date, 'd');\n return showTime ? `${day}/${format(date, 'M')} ${format(date, 'HH:mm')}` : `${day}/${format(date, 'M')}`;\n }\n if (isThisYear(date)) {\n return showTime ? format(date, 'd/M HH:mm') : format(date, 'd/M');\n }\n return showTime ? format(date, 'd/M/yyyy HH:mm') : format(date, 'd/M/yyyy');\n },\n [getVietnameseWeekday, showTime]\n );\n\n // Main formatting function\n const formatDate = useCallback(\n (date: Date, type: string): string => {\n const timeStr = showTime ? format(date, ', HH:mm') : '';\n\n switch (type) {\n case 'short':\n return format(date, 'd/M/yy') + timeStr;\n\n case 'medium':\n return format(date, 'dd/MM/yyyy') + timeStr;\n\n case 'long':\n return `${format(date, 'd')} ${getVietnameseMonth(date)} ${format(date, 'yyyy')}` + timeStr;\n\n case 'full': {\n const data = `${getVietnameseWeekday(date)}, ngày ${format(date, 'd')} ${getVietnameseMonth(date)} năm ${format(date, 'yyyy')}`;\n return data + timeStr;\n }\n\n case 'relative':\n return formatRelativeTime(date);\n\n case 'datetime':\n return format(date, 'd/M/yyyy HH:mm');\n\n case 'time':\n return format(date, 'HH:mm');\n\n case 'smart':\n return getSmartFormat(date);\n\n default:\n return format(date, 'd/M/yyyy') + timeStr;\n }\n },\n [getSmartFormat, getVietnameseMonth, getVietnameseWeekday, formatRelativeTime, showTime]\n );\n\n if (!parsedDate) {\n return <span className={cn('text-muted-foreground text-sm', className)}>--/--/----</span>;\n }\n\n const formattedDate = formatDate(parsedDate, formatType);\n const holiday = showHoliday ? getHoliday(parsedDate) : null;\n const displayText = holiday ? `${formattedDate} (${holiday})` : formattedDate;\n const tooltipTitle = title || format(parsedDate, 'EEEE, d MMMM yyyy HH:mm:ss');\n\n return (\n <time dateTime={parsedDate.toISOString()} className={cn('text-accent-foreground font-number text-sm', className)} title={tooltipTitle}>\n {displayText}\n </time>\n );\n};\n"],"mappings":"kUACA,MAAa,EAAmB,CAC9B,SAAU,CAAC,WAAY,UAAW,SAAU,SAAU,UAAW,UAAW,UAAU,CACtF,cAAe,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAK,CACzD,OAAQ,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAAY,WAAY,WAAW,CAC/I,YAAa,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAM,CACzF,CAGY,EAAqB,CAChC,QAAS,iBACT,QAAS,iBACT,QAAS,2BACT,QAAS,mBACT,QAAS,aACT,QAAS,uBACT,QAAS,yBACV,CAGyB,OAAO,OAAO,CACtC,OAAQ,IACR,OAAQ,GAAK,IACb,KAAM,KAAU,IAChB,IAAK,KAAU,GAAK,IACpB,KAAM,MAAc,GAAK,IACzB,MAAO,IAAU,GAAK,GAAK,IAC3B,KAAM,IAAM,GAAK,GAAK,GAAK,IAC5B,CAAC,CAEF,MAAa,EAAkB,OAAO,OAAO,CAC3C,OAAQ,GACR,KAAM,KACN,IAAK,KAAU,GACf,KAAM,MAAc,GACpB,MAAO,IAAU,GAAK,GACtB,KAAM,IAAM,GAAK,GAAK,GACvB,CAAC,CAE6B,OAAO,OAAO,CAC3C,KAAM,GACN,IAAK,KACL,KAAM,MACN,MAAO,IAAU,GAClB,CAAC,CCrBF,MAAaA,GAAgC,CAAE,OAAM,OAAQ,EAAa,SAAU,cAAc,GAAO,WAAW,GAAO,YAAY,GAAI,WAAY,CACrJ,IAAM,EAAa,MAAc,CAC/B,GAAI,CACF,GAAI,aAAgB,KAClB,OAAO,EAAQ,EAAK,CAAG,EAAO,KAEhC,GAAI,OAAO,GAAS,SAAU,CAC5B,IAAM,EAAS,EAAS,EAAK,CAC7B,OAAO,EAAQ,EAAO,CAAG,EAAS,IAAI,KAAK,EAAK,CAElD,GAAI,OAAO,GAAS,SAAU,CAC5B,IAAM,EAAS,IAAI,KAAK,EAAK,CAC7B,OAAO,EAAQ,EAAO,CAAG,EAAS,KAEpC,OAAO,UACD,CACN,OAAO,OAER,CAAC,EAAK,CAAC,CAGJ,EAAqB,EAAa,GAAuB,CAC7D,IAAM,EAAM,IAAI,KACV,EAAgB,KAAK,OAAO,EAAI,SAAS,CAAGC,EAAK,SAAS,EAAI,IAAK,CAQzE,OANI,EAAgB,GAAW,WAC3B,EAAgB,KAAa,GAAG,KAAK,MAAM,EAAgB,EAAgB,OAAO,CAAC,aACnF,EAAgB,MAAc,GAAG,KAAK,MAAM,EAAgB,EAAgB,KAAK,CAAC,YAClF,EAAgB,OAAe,GAAG,KAAK,MAAM,EAAgB,EAAgB,IAAI,CAAC,aAClF,EAAgB,OAAgB,GAAG,KAAK,MAAM,EAAgB,EAAgB,KAAK,CAAC,aACpF,EAAgB,QAAiB,GAAG,KAAK,MAAM,EAAgB,EAAgB,MAAM,CAAC,cACnF,GAAG,KAAK,MAAM,EAAgB,EAAgB,KAAK,CAAC,aAC1D,EAAE,CAAC,CAGA,EAAuB,GAAa,EAAY,EAAiB,KAAkB,CACvF,IAAM,EAAWA,EAAK,QAAQ,CAC9B,OAAO,EAAQ,EAAiB,cAAc,GAAY,EAAiB,SAAS,IACnF,EAAE,CAAC,CAGA,EAAqB,GAAa,EAAY,EAAiB,KAAkB,CACrF,IAAM,EAAaA,EAAK,UAAU,CAClC,OAAO,EAAQ,EAAiB,YAAY,GAAc,EAAiB,OAAO,IACjF,EAAE,CAAC,CAGA,EAAa,EAAa,GAA8B,CAC5D,IAAM,EAAW,EAAOA,EAAM,QAAQ,CACtC,OAAO,EAAmB,IAAa,MACtC,EAAE,CAAC,CAGA,EAAiB,EACpB,GAAuB,CACtB,GAAI,EAAQA,EAAK,CACf,OAAO,EAAW,WAAW,EAAOA,EAAM,QAAQ,GAAK,UAEzD,GAAI,EAAYA,EAAK,CACnB,OAAO,EAAW,WAAW,EAAOA,EAAM,QAAQ,GAAK,UAEzD,GAAI,EAAWA,EAAK,CAClB,OAAO,EAAW,YAAY,EAAOA,EAAM,QAAQ,GAAK,WAE1D,GAAI,EAAWA,EAAK,CAAE,CACpB,IAAM,EAAU,EAAqBA,EAAK,CAC1C,OAAO,EAAW,GAAG,EAAQ,GAAG,EAAOA,EAAM,QAAQ,GAAK,EAE5D,GAAI,EAAYA,EAAK,CAAE,CACrB,IAAM,EAAM,EAAOA,EAAM,IAAI,CAC7B,OAAO,EAAW,GAAG,EAAI,GAAG,EAAOA,EAAM,IAAI,CAAC,GAAG,EAAOA,EAAM,QAAQ,GAAK,GAAG,EAAI,GAAG,EAAOA,EAAM,IAAI,GAKxG,OAHI,EAAWA,EAAK,CACX,EAAW,EAAOA,EAAM,YAAY,CAAG,EAAOA,EAAM,MAAM,CAE5D,EAAW,EAAOA,EAAM,iBAAiB,CAAG,EAAOA,EAAM,WAAW,EAE7E,CAAC,EAAsB,EAAS,CACjC,CAGK,EAAa,GAChB,EAAY,IAAyB,CACpC,IAAM,EAAU,EAAW,EAAOA,EAAM,UAAU,CAAG,GAErD,OAAQ,EAAR,CACE,IAAK,QACH,OAAO,EAAOA,EAAM,SAAS,CAAG,EAElC,IAAK,SACH,OAAO,EAAOA,EAAM,aAAa,CAAG,EAEtC,IAAK,OACH,MAAO,GAAG,EAAOA,EAAM,IAAI,CAAC,GAAG,EAAmBA,EAAK,CAAC,GAAG,EAAOA,EAAM,OAAO,GAAK,EAEtF,IAAK,OAEH,MADa,GAAG,EAAqBA,EAAK,CAAC,SAAS,EAAOA,EAAM,IAAI,CAAC,GAAG,EAAmBA,EAAK,CAAC,OAAO,EAAOA,EAAM,OAAO,GAC/G,EAGhB,IAAK,WACH,OAAO,EAAmBA,EAAK,CAEjC,IAAK,WACH,OAAO,EAAOA,EAAM,iBAAiB,CAEvC,IAAK,OACH,OAAO,EAAOA,EAAM,QAAQ,CAE9B,IAAK,QACH,OAAO,EAAeA,EAAK,CAE7B,QACE,OAAO,EAAOA,EAAM,WAAW,CAAG,IAGxC,CAAC,EAAgB,EAAoB,EAAsB,EAAoB,EAAS,CACzF,CAED,GAAI,CAAC,EACH,OAAO,EAAC,OAAA,CAAK,UAAW,EAAG,gCAAiC,EAAU,UAAE,cAAiB,CAG3F,IAAM,EAAgB,EAAW,EAAY,EAAW,CAClD,EAAU,EAAc,EAAW,EAAW,CAAG,KACjD,EAAc,EAAU,GAAG,EAAc,IAAI,EAAQ,GAAK,EAC1D,EAAe,GAAS,EAAO,EAAY,6BAA6B,CAE9E,OACE,EAAC,OAAA,CAAK,SAAU,EAAW,aAAa,CAAE,UAAW,EAAG,6CAA8C,EAAU,CAAE,MAAO,WACtH,GACI"}
1
+ {"version":3,"file":"date-4JlD-xYj.js","names":["DateDisplay: React.FC<Props>","date"],"sources":["../packages/constants.tsx","../packages/components/data-display/date.tsx"],"sourcesContent":["// Vietnamese locale configuration\nexport const vietnameseLocale = {\n weekdays: ['Chủ Nhật', 'Thứ Hai', 'Thứ Ba', 'Thứ Tư', 'Thứ Năm', 'Thứ Sáu', 'Thứ Bảy'],\n weekdaysShort: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],\n months: ['Tháng 1', 'Tháng 2', 'Tháng 3', 'Tháng 4', 'Tháng 5', 'Tháng 6', 'Tháng 7', 'Tháng 8', 'Tháng 9', 'Tháng 10', 'Tháng 11', 'Tháng 12'],\n monthsShort: ['T1', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7', 'T8', 'T9', 'T10', 'T11', 'T12'],\n};\n\n// Vietnamese holidays\nexport const vietnameseHolidays = {\n '01-01': 'Tết Dương lịch',\n '03-08': 'Quốc tế Phụ nữ',\n '04-30': 'Ngày Giải phóng miền Nam',\n '05-01': 'Quốc tế Lao động',\n '09-02': 'Quốc khánh',\n '10-20': 'Ngày Phụ nữ Việt Nam',\n '11-20': 'Ngày Nhà giáo Việt Nam',\n};\n\n// Time Constants in milliseconds, seconds, and minutes\nexport const TIME_IN_MS = Object.freeze({\n SECOND: 1000,\n MINUTE: 60 * 1000,\n HOUR: 60 * 60 * 1000,\n DAY: 24 * 60 * 60 * 1000,\n WEEK: 7 * 24 * 60 * 60 * 1000,\n MONTH: 30 * 24 * 60 * 60 * 1000, // Approximation for month length = 30 days\n YEAR: 365 * 24 * 60 * 60 * 1000,\n});\n\nexport const TIME_IN_SECONDS = Object.freeze({\n MINUTE: 60,\n HOUR: 60 * 60,\n DAY: 24 * 60 * 60,\n WEEK: 7 * 24 * 60 * 60,\n MONTH: 30 * 24 * 60 * 60,\n YEAR: 365 * 24 * 60 * 60,\n});\n\nexport const TIME_IN_MINUTES = Object.freeze({\n HOUR: 60,\n DAY: 24 * 60,\n WEEK: 7 * 24 * 60,\n MONTH: 30 * 24 * 60,\n});\n","import { useCallback, useMemo } from 'react';\nimport { format, isThisMonth, isThisWeek, isThisYear, isToday, isTomorrow, isValid, isYesterday, parseISO } from '@customafk/react-toolkit/date-fns';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { TIME_IN_SECONDS, vietnameseHolidays, vietnameseLocale } from '@/constants';\n\ninterface Props {\n date: Date | string | number;\n format?:\n | 'short' // 15/03/24\n | 'medium' // 15/03/2024\n | 'long' // 15 tháng 3, 2024\n | 'full' // Thứ Sáu, ngày 15 tháng 3 năm 2024\n | 'relative' // 2 giờ trước\n | 'datetime' // 15/03/2024 14:30\n | 'time' // 14:30\n | 'smart'; // Tự động chọn format phù hợp\n showHoliday?: boolean;\n showTime?: boolean;\n className?: string;\n title?: string; // Tooltip khi hover\n}\n\nexport const DateDisplay: React.FC<Props> = ({ date, format: formatType = 'medium', showHoliday = false, showTime = false, className = '', title }) => {\n const parsedDate = useMemo(() => {\n try {\n if (date instanceof Date) {\n return isValid(date) ? date : null;\n }\n if (typeof date === 'string') {\n const parsed = parseISO(date);\n return isValid(parsed) ? parsed : new Date(date);\n }\n if (typeof date === 'number') {\n const parsed = new Date(date);\n return isValid(parsed) ? parsed : null;\n }\n return null;\n } catch {\n return null;\n }\n }, [date]);\n\n // Format relative time in Vietnamese\n const formatRelativeTime = useCallback((date: Date): string => {\n const now = new Date();\n const diffInSeconds = Math.floor((now.getTime() - date.getTime()) / 1000);\n\n if (diffInSeconds < 60) return 'Vừa xong';\n if (diffInSeconds < 3600) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.MINUTE)} phút trước`;\n if (diffInSeconds < 86400) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.HOUR)} giờ trước`;\n if (diffInSeconds < 604800) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.DAY)} ngày trước`;\n if (diffInSeconds < 2592000) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.WEEK)} tuần trước`;\n if (diffInSeconds < 31536000) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.MONTH)} tháng trước`;\n return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.YEAR)} năm trước`;\n }, []);\n\n // Vietnamese weekday\n const getVietnameseWeekday = useCallback((date: Date, short: boolean = false): string => {\n const dayIndex = date.getDay();\n return short ? vietnameseLocale.weekdaysShort[dayIndex] : vietnameseLocale.weekdays[dayIndex];\n }, []);\n\n // Vietnamese month\n const getVietnameseMonth = useCallback((date: Date, short: boolean = false): string => {\n const monthIndex = date.getMonth();\n return short ? vietnameseLocale.monthsShort[monthIndex] : vietnameseLocale.months[monthIndex];\n }, []);\n\n // Check holiday\n const getHoliday = useCallback((date: Date): string | null => {\n const monthDay = format(date, 'MM-dd') as keyof typeof vietnameseHolidays;\n return vietnameseHolidays[monthDay] || null;\n }, []);\n\n // Smart format - choose appropriate format based on date\n const getSmartFormat = useCallback(\n (date: Date): string => {\n if (isToday(date)) {\n return showTime ? `Hôm nay ${format(date, 'HH:mm')}` : 'Hôm nay';\n }\n if (isYesterday(date)) {\n return showTime ? `Hôm qua ${format(date, 'HH:mm')}` : 'Hôm qua';\n }\n if (isTomorrow(date)) {\n return showTime ? `Ngày mai ${format(date, 'HH:mm')}` : 'Ngày mai';\n }\n if (isThisWeek(date)) {\n const weekday = getVietnameseWeekday(date);\n return showTime ? `${weekday} ${format(date, 'HH:mm')}` : weekday;\n }\n if (isThisMonth(date)) {\n const day = format(date, 'd');\n return showTime ? `${day}/${format(date, 'M')} ${format(date, 'HH:mm')}` : `${day}/${format(date, 'M')}`;\n }\n if (isThisYear(date)) {\n return showTime ? format(date, 'd/M HH:mm') : format(date, 'd/M');\n }\n return showTime ? format(date, 'd/M/yyyy HH:mm') : format(date, 'd/M/yyyy');\n },\n [getVietnameseWeekday, showTime]\n );\n\n // Main formatting function\n const formatDate = useCallback(\n (date: Date, type: string): string => {\n const timeStr = showTime ? format(date, ', HH:mm') : '';\n\n switch (type) {\n case 'short':\n return format(date, 'd/M/yy') + timeStr;\n\n case 'medium':\n return format(date, 'dd/MM/yyyy') + timeStr;\n\n case 'long':\n return `${format(date, 'd')} ${getVietnameseMonth(date)} ${format(date, 'yyyy')}` + timeStr;\n\n case 'full': {\n const data = `${getVietnameseWeekday(date)}, ngày ${format(date, 'd')} ${getVietnameseMonth(date)} năm ${format(date, 'yyyy')}`;\n return data + timeStr;\n }\n\n case 'relative':\n return formatRelativeTime(date);\n\n case 'datetime':\n return format(date, 'd/M/yyyy HH:mm');\n\n case 'time':\n return format(date, 'HH:mm');\n\n case 'smart':\n return getSmartFormat(date);\n\n default:\n return format(date, 'd/M/yyyy') + timeStr;\n }\n },\n [getSmartFormat, getVietnameseMonth, getVietnameseWeekday, formatRelativeTime, showTime]\n );\n\n if (!parsedDate) {\n return <span className={cn('text-muted-foreground text-sm', className)}>--/--/----</span>;\n }\n\n const formattedDate = formatDate(parsedDate, formatType);\n const holiday = showHoliday ? getHoliday(parsedDate) : null;\n const displayText = holiday ? `${formattedDate} (${holiday})` : formattedDate;\n const tooltipTitle = title || format(parsedDate, 'EEEE, d MMMM yyyy HH:mm:ss');\n\n return (\n <time dateTime={parsedDate.toISOString()} className={cn('text-accent-foreground font-number text-sm', className)} title={tooltipTitle}>\n {displayText}\n </time>\n );\n};\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  const e=require(`./chunk-CUT6urMc.cjs`);let t=require(`@customafk/react-toolkit/utils`);t=e.__toESM(t);let n=require(`react`);n=e.__toESM(n);let r=require(`react/jsx-runtime`);r=e.__toESM(r);let i=require(`@customafk/react-toolkit/date-fns`);i=e.__toESM(i);const a={weekdays:[`Chủ Nhật`,`Thứ Hai`,`Thứ Ba`,`Thứ Tư`,`Thứ Năm`,`Thứ Sáu`,`Thứ Bảy`],weekdaysShort:[`CN`,`T2`,`T3`,`T4`,`T5`,`T6`,`T7`],months:[`Tháng 1`,`Tháng 2`,`Tháng 3`,`Tháng 4`,`Tháng 5`,`Tháng 6`,`Tháng 7`,`Tháng 8`,`Tháng 9`,`Tháng 10`,`Tháng 11`,`Tháng 12`],monthsShort:[`T1`,`T2`,`T3`,`T4`,`T5`,`T6`,`T7`,`T8`,`T9`,`T10`,`T11`,`T12`]},o={"01-01":`Tết Dương lịch`,"03-08":`Quốc tế Phụ nữ`,"04-30":`Ngày Giải phóng miền Nam`,"05-01":`Quốc tế Lao động`,"09-02":`Quốc khánh`,"10-20":`Ngày Phụ nữ Việt Nam`,"11-20":`Ngày Nhà giáo Việt Nam`},s=Object.freeze({SECOND:1e3,MINUTE:60*1e3,HOUR:3600*1e3,DAY:1440*60*1e3,WEEK:10080*60*1e3,MONTH:720*60*60*1e3,YEAR:365*24*60*60*1e3}),c=Object.freeze({MINUTE:60,HOUR:3600,DAY:1440*60,WEEK:10080*60,MONTH:720*60*60,YEAR:365*24*60*60}),l=Object.freeze({HOUR:60,DAY:1440,WEEK:10080,MONTH:720*60}),u=({date:e,format:s=`medium`,showHoliday:l=!1,showTime:u=!1,className:d=``,title:f})=>{let p=(0,n.useMemo)(()=>{try{if(e instanceof Date)return(0,i.isValid)(e)?e:null;if(typeof e==`string`){let t=(0,i.parseISO)(e);return(0,i.isValid)(t)?t:new Date(e)}if(typeof e==`number`){let t=new Date(e);return(0,i.isValid)(t)?t:null}return null}catch{return null}},[e]),m=(0,n.useCallback)(e=>{let t=new Date,n=Math.floor((t.getTime()-e.getTime())/1e3);return n<60?`Vừa xong`:n<3600?`${Math.floor(n/c.MINUTE)} phút trước`:n<86400?`${Math.floor(n/c.HOUR)} giờ trước`:n<604800?`${Math.floor(n/c.DAY)} ngày trước`:n<2592e3?`${Math.floor(n/c.WEEK)} tuần trước`:n<31536e3?`${Math.floor(n/c.MONTH)} tháng trước`:`${Math.floor(n/c.YEAR)} năm trước`},[]),h=(0,n.useCallback)((e,t=!1)=>{let n=e.getDay();return t?a.weekdaysShort[n]:a.weekdays[n]},[]),g=(0,n.useCallback)((e,t=!1)=>{let n=e.getMonth();return t?a.monthsShort[n]:a.months[n]},[]),_=(0,n.useCallback)(e=>{let t=(0,i.format)(e,`MM-dd`);return o[t]||null},[]),v=(0,n.useCallback)(e=>{if((0,i.isToday)(e))return u?`Hôm nay ${(0,i.format)(e,`HH:mm`)}`:`Hôm nay`;if((0,i.isYesterday)(e))return u?`Hôm qua ${(0,i.format)(e,`HH:mm`)}`:`Hôm qua`;if((0,i.isTomorrow)(e))return u?`Ngày mai ${(0,i.format)(e,`HH:mm`)}`:`Ngày mai`;if((0,i.isThisWeek)(e)){let t=h(e);return u?`${t} ${(0,i.format)(e,`HH:mm`)}`:t}if((0,i.isThisMonth)(e)){let t=(0,i.format)(e,`d`);return u?`${t}/${(0,i.format)(e,`M`)} ${(0,i.format)(e,`HH:mm`)}`:`${t}/${(0,i.format)(e,`M`)}`}return(0,i.isThisYear)(e)?u?(0,i.format)(e,`d/M HH:mm`):(0,i.format)(e,`d/M`):u?(0,i.format)(e,`d/M/yyyy HH:mm`):(0,i.format)(e,`d/M/yyyy`)},[h,u]),y=(0,n.useCallback)((e,t)=>{let n=u?(0,i.format)(e,`, HH:mm`):``;switch(t){case`short`:return(0,i.format)(e,`d/M/yy`)+n;case`medium`:return(0,i.format)(e,`dd/MM/yyyy`)+n;case`long`:return`${(0,i.format)(e,`d`)} ${g(e)} ${(0,i.format)(e,`yyyy`)}`+n;case`full`:return`${h(e)}, ngày ${(0,i.format)(e,`d`)} ${g(e)} năm ${(0,i.format)(e,`yyyy`)}`+n;case`relative`:return m(e);case`datetime`:return(0,i.format)(e,`d/M/yyyy HH:mm`);case`time`:return(0,i.format)(e,`HH:mm`);case`smart`:return v(e);default:return(0,i.format)(e,`d/M/yyyy`)+n}},[v,g,h,m,u]);if(!p)return(0,r.jsx)(`span`,{className:(0,t.cn)(`text-muted-foreground text-sm`,d),children:`--/--/----`});let b=y(p,s),x=l?_(p):null,S=x?`${b} (${x})`:b,C=f||(0,i.format)(p,`EEEE, d MMMM yyyy HH:mm:ss`);return(0,r.jsx)(`time`,{dateTime:p.toISOString(),className:(0,t.cn)(`text-accent-foreground font-number text-sm`,d),title:C,children:S})};Object.defineProperty(exports,`DateDisplay`,{enumerable:!0,get:function(){return u}});
2
- //# sourceMappingURL=date-Bv13VRWU.cjs.map
2
+ //# sourceMappingURL=date-vWvu4M91.cjs.map