@customafk/lunas-ui 0.0.27 → 0.0.29

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 (458) hide show
  1. package/dist/{add-new-CmzfSaTJ.cjs → add-new-in8C5Ybm.cjs} +2 -2
  2. package/dist/{add-new-CmzfSaTJ.cjs.map → add-new-in8C5Ybm.cjs.map} +1 -1
  3. package/dist/{add-new-CVQQRkB9.js → add-new-j_8G7bMN.js} +2 -2
  4. package/dist/{add-new-CVQQRkB9.js.map → add-new-j_8G7bMN.js.map} +1 -1
  5. package/dist/{alert-dialog-Dv0cgymS.js → alert-dialog-CcgqDP8l.js} +2 -2
  6. package/dist/{alert-dialog-Dv0cgymS.js.map → alert-dialog-CcgqDP8l.js.map} +1 -1
  7. package/dist/{alert-dialog-26JyobJb.cjs → alert-dialog-Dxx-45x_.cjs} +2 -2
  8. package/dist/{alert-dialog-26JyobJb.cjs.map → alert-dialog-Dxx-45x_.cjs.map} +1 -1
  9. package/dist/{badge-DzKUgC8v.js → badge-C7ZcRdy-.js} +2 -2
  10. package/dist/{badge-DzKUgC8v.js.map → badge-C7ZcRdy-.js.map} +1 -1
  11. package/dist/{badge-D4NxkKeN.cjs → badge-T9PT93Kq.cjs} +2 -2
  12. package/dist/{badge-D4NxkKeN.cjs.map → badge-T9PT93Kq.cjs.map} +1 -1
  13. package/dist/{button-CnMfXTBU.js → button-BYBBUZAz.js} +2 -2
  14. package/dist/{button-CnMfXTBU.js.map → button-BYBBUZAz.js.map} +1 -1
  15. package/dist/{button-ghXW1WTr.d.cts → button-Db111bE3.d.ts} +4 -4
  16. package/dist/{button-CPBLm_02.d.ts → button-l6-1RjHx.d.cts} +4 -4
  17. package/dist/{button-BSGNpclh.cjs → button-lm4QtGky.cjs} +2 -2
  18. package/dist/{button-BSGNpclh.cjs.map → button-lm4QtGky.cjs.map} +1 -1
  19. package/dist/{calendar-B66UT_fu.js → calendar-AmTYd_1_.js} +2 -2
  20. package/dist/{calendar-B66UT_fu.js.map → calendar-AmTYd_1_.js.map} +1 -1
  21. package/dist/{calendar-DXegnGRJ.cjs → calendar-nenL2ulI.cjs} +2 -2
  22. package/dist/{calendar-DXegnGRJ.cjs.map → calendar-nenL2ulI.cjs.map} +1 -1
  23. package/dist/{card-DYVCumPc.cjs → card-BqoP5ivN.cjs} +2 -2
  24. package/dist/{card-DYVCumPc.cjs.map → card-BqoP5ivN.cjs.map} +1 -1
  25. package/dist/{card-CgQjctUE.js → card-C6dBYpTn.js} +2 -2
  26. package/dist/{card-CgQjctUE.js.map → card-C6dBYpTn.js.map} +1 -1
  27. package/dist/cards/simple-card.cjs +1 -1
  28. package/dist/cards/simple-card.d.cts +2 -2
  29. package/dist/cards/simple-card.d.ts +2 -2
  30. package/dist/cards/simple-card.js +1 -1
  31. package/dist/{command-Dbkg10QA.js → command-B-2_v5Bj.js} +2 -2
  32. package/dist/{command-Dbkg10QA.js.map → command-B-2_v5Bj.js.map} +1 -1
  33. package/dist/{command-CE_Qcgo7.d.ts → command-B6yVzSAp.d.cts} +12 -12
  34. package/dist/{command-IL3ogESu.cjs → command-CTfi-LKD.cjs} +2 -2
  35. package/dist/{command-IL3ogESu.cjs.map → command-CTfi-LKD.cjs.map} +1 -1
  36. package/dist/{command-CiEjoEnP.d.cts → command-Cbyf_jae.d.ts} +12 -12
  37. package/dist/data-display/country.cjs +1 -1
  38. package/dist/data-display/country.js +1 -1
  39. package/dist/data-display/data-list.cjs +1 -1
  40. package/dist/data-display/data-list.js +1 -1
  41. package/dist/data-display/date-tooltip.cjs +1 -1
  42. package/dist/data-display/date-tooltip.js +1 -1
  43. package/dist/data-display/date.cjs +1 -1
  44. package/dist/data-display/date.js +1 -1
  45. package/dist/data-display/empty.cjs +1 -1
  46. package/dist/data-display/empty.d.cts +2 -2
  47. package/dist/data-display/empty.js +1 -1
  48. package/dist/data-display/name.cjs +1 -1
  49. package/dist/data-display/name.js +1 -1
  50. package/dist/data-display/phone-number.cjs +1 -1
  51. package/dist/data-display/phone-number.js +1 -1
  52. package/dist/data-display/role-badge.cjs +1 -1
  53. package/dist/data-display/role-badge.js +1 -1
  54. package/dist/data-display/statistic.cjs +1 -1
  55. package/dist/data-display/statistic.d.cts +2 -2
  56. package/dist/data-display/statistic.d.ts +2 -2
  57. package/dist/data-display/statistic.js +1 -1
  58. package/dist/{date-nd8WkPlx.cjs → date-Ci9rmG-_.cjs} +2 -2
  59. package/dist/{date-nd8WkPlx.cjs.map → date-Ci9rmG-_.cjs.map} +1 -1
  60. package/dist/{date-BMq_DNsv.js → date-Clhba3N5.js} +2 -2
  61. package/dist/{date-BMq_DNsv.js.map → date-Clhba3N5.js.map} +1 -1
  62. package/dist/{dialog-CoH1pTBH.d.ts → dialog-DC9nwyvF.d.cts} +12 -12
  63. package/dist/{dialog-C4oHnJNN.cjs → dialog-DdHuwZMB.cjs} +2 -2
  64. package/dist/{dialog-C4oHnJNN.cjs.map → dialog-DdHuwZMB.cjs.map} +1 -1
  65. package/dist/{dialog-BEdMA5Lp.js → dialog-DuASFaYK.js} +2 -2
  66. package/dist/{dialog-BEdMA5Lp.js.map → dialog-DuASFaYK.js.map} +1 -1
  67. package/dist/{dialog-Bw_T5aco.d.cts → dialog-mh0z7J_-.d.ts} +12 -12
  68. package/dist/dialogs/confirm-dialog.cjs +1 -1
  69. package/dist/dialogs/confirm-dialog.js +1 -1
  70. package/dist/dialogs/detail-dialog/component/sidebar.cjs +1 -1
  71. package/dist/dialogs/detail-dialog/component/sidebar.d.cts +4 -4
  72. package/dist/dialogs/detail-dialog/component/sidebar.d.ts +28 -28
  73. package/dist/dialogs/detail-dialog/component/sidebar.js +1 -1
  74. package/dist/dialogs/detail-dialog/index.cjs +1 -1
  75. package/dist/dialogs/detail-dialog/index.js +1 -1
  76. package/dist/dialogs/error-dialog.cjs +1 -1
  77. package/dist/dialogs/error-dialog.js +1 -1
  78. package/dist/dialogs/form-dialog.cjs +1 -1
  79. package/dist/dialogs/form-dialog.d.cts +2 -2
  80. package/dist/dialogs/form-dialog.d.ts +2 -2
  81. package/dist/dialogs/form-dialog.js +1 -1
  82. package/dist/dialogs/loading-dialog.cjs +1 -1
  83. package/dist/dialogs/loading-dialog.js +1 -1
  84. package/dist/{dropdown-menu-BnfaOPEM.cjs → dropdown-menu-CmpHHly7.cjs} +2 -2
  85. package/dist/{dropdown-menu-BnfaOPEM.cjs.map → dropdown-menu-CmpHHly7.cjs.map} +1 -1
  86. package/dist/{dropdown-menu-D5uG4HZA.js → dropdown-menu-DJzMdOan.js} +2 -2
  87. package/dist/{dropdown-menu-D5uG4HZA.js.map → dropdown-menu-DJzMdOan.js.map} +1 -1
  88. package/dist/{error-dialog-CCdQ8zbQ.js → error-dialog-C87Wyv6_.js} +2 -2
  89. package/dist/{error-dialog-CCdQ8zbQ.js.map → error-dialog-C87Wyv6_.js.map} +1 -1
  90. package/dist/{error-dialog-C0PDn-pj.cjs → error-dialog-C96X3poH.cjs} +2 -2
  91. package/dist/{error-dialog-C0PDn-pj.cjs.map → error-dialog-C96X3poH.cjs.map} +1 -1
  92. package/dist/{flex-CNA_SId-.cjs → flex-Bh3PRuM_.cjs} +2 -2
  93. package/dist/{flex-CNA_SId-.cjs.map → flex-Bh3PRuM_.cjs.map} +1 -1
  94. package/dist/{flex-ILvQrYMJ.js → flex-Bw34jbTi.js} +2 -2
  95. package/dist/{flex-ILvQrYMJ.js.map → flex-Bw34jbTi.js.map} +1 -1
  96. package/dist/{form-CHs85hm6.cjs → form-CvK3gRab.cjs} +2 -2
  97. package/dist/{form-CHs85hm6.cjs.map → form-CvK3gRab.cjs.map} +1 -1
  98. package/dist/{form-tabDlutX.js → form-imBNw0V-.js} +2 -2
  99. package/dist/{form-tabDlutX.js.map → form-imBNw0V-.js.map} +1 -1
  100. package/dist/{form-wrapper-DntbFqN1.js → form-wrapper-BEnAbqlo.js} +2 -2
  101. package/dist/{form-wrapper-DntbFqN1.js.map → form-wrapper-BEnAbqlo.js.map} +1 -1
  102. package/dist/{form-wrapper-Cd8c5MIL.cjs → form-wrapper-Cim7Drt1.cjs} +2 -2
  103. package/dist/{form-wrapper-Cd8c5MIL.cjs.map → form-wrapper-Cim7Drt1.cjs.map} +1 -1
  104. package/dist/forms/combobox-field.cjs +1 -1
  105. package/dist/forms/combobox-field.d.cts +2 -2
  106. package/dist/forms/combobox-field.d.ts +2 -2
  107. package/dist/forms/combobox-field.js +1 -1
  108. package/dist/forms/date-field.cjs +1 -1
  109. package/dist/forms/date-field.d.cts +2 -2
  110. package/dist/forms/date-field.d.ts +2 -2
  111. package/dist/forms/date-field.js +1 -1
  112. package/dist/forms/form-wrapper.cjs +1 -1
  113. package/dist/forms/form-wrapper.d.cts +2 -2
  114. package/dist/forms/form-wrapper.d.ts +2 -2
  115. package/dist/forms/form-wrapper.js +1 -1
  116. package/dist/forms/multi-select-field.cjs +1 -1
  117. package/dist/forms/multi-select-field.cjs.map +1 -1
  118. package/dist/forms/multi-select-field.d.cts +2 -2
  119. package/dist/forms/multi-select-field.d.ts +2 -2
  120. package/dist/forms/multi-select-field.js +1 -1
  121. package/dist/forms/number-field.cjs +1 -1
  122. package/dist/forms/number-field.d.cts +2 -2
  123. package/dist/forms/number-field.js +1 -1
  124. package/dist/forms/password-field.cjs +1 -1
  125. package/dist/forms/password-field.d.cts +2 -2
  126. package/dist/forms/password-field.d.ts +2 -2
  127. package/dist/forms/password-field.js +1 -1
  128. package/dist/forms/select-field.cjs +1 -1
  129. package/dist/forms/select-field.d.cts +2 -2
  130. package/dist/forms/select-field.d.ts +2 -2
  131. package/dist/forms/select-field.js +1 -1
  132. package/dist/forms/switch-field.cjs +1 -1
  133. package/dist/forms/switch-field.d.cts +2 -2
  134. package/dist/forms/switch-field.d.ts +2 -2
  135. package/dist/forms/switch-field.js +1 -1
  136. package/dist/forms/text-field.cjs +1 -1
  137. package/dist/forms/text-field.d.cts +2 -2
  138. package/dist/forms/text-field.d.ts +2 -2
  139. package/dist/forms/text-field.js +1 -1
  140. package/dist/forms/textarea-field.cjs +1 -1
  141. package/dist/forms/textarea-field.d.cts +2 -2
  142. package/dist/forms/textarea-field.d.ts +2 -2
  143. package/dist/forms/textarea-field.js +1 -1
  144. package/dist/{input--6vqz8UI.js → input-1jCjvrb7.js} +2 -2
  145. package/dist/{input--6vqz8UI.js.map → input-1jCjvrb7.js.map} +1 -1
  146. package/dist/{input-VZiryzkl.cjs → input-M7zUJduT.cjs} +2 -2
  147. package/dist/{input-VZiryzkl.cjs.map → input-M7zUJduT.cjs.map} +1 -1
  148. package/dist/{input-CUDclgoU.d.ts → input-on1u3kSJ.d.ts} +3 -3
  149. package/dist/{input-y_n-XGys.d.cts → input-syir1opU.d.cts} +3 -3
  150. package/dist/{label-B_2ZQn0X.cjs → label-DIYBc8Vn.cjs} +2 -2
  151. package/dist/{label-B_2ZQn0X.cjs.map → label-DIYBc8Vn.cjs.map} +1 -1
  152. package/dist/{label-D1XmKlc3.js → label-DOGGC0KA.js} +2 -2
  153. package/dist/{label-D1XmKlc3.js.map → label-DOGGC0KA.js.map} +1 -1
  154. package/dist/layouts/app-layout/index.cjs +1 -1
  155. package/dist/layouts/app-layout/index.cjs.map +1 -1
  156. package/dist/layouts/app-layout/index.d.cts +144 -5
  157. package/dist/layouts/app-layout/index.d.ts +145 -6
  158. package/dist/layouts/app-layout/index.js +1 -1
  159. package/dist/layouts/app-layout/index.js.map +1 -1
  160. package/dist/layouts/flex.cjs +1 -1
  161. package/dist/layouts/flex.d.cts +2 -2
  162. package/dist/layouts/flex.d.ts +2 -2
  163. package/dist/layouts/flex.js +1 -1
  164. package/dist/layouts/main/index.cjs +1 -1
  165. package/dist/layouts/main/index.d.cts +4 -4
  166. package/dist/layouts/main/index.d.ts +4 -4
  167. package/dist/layouts/main/index.js +1 -1
  168. package/dist/{multi-select-Cb07NlA7.js → multi-select-EQ08HKkV.js} +2 -2
  169. package/dist/{multi-select-Cb07NlA7.js.map → multi-select-EQ08HKkV.js.map} +1 -1
  170. package/dist/{multi-select-3yxD9gbY.cjs → multi-select-gkdbT_mc.cjs} +2 -2
  171. package/dist/{multi-select-3yxD9gbY.cjs.map → multi-select-gkdbT_mc.cjs.map} +1 -1
  172. package/dist/paragraph-C_Fdgxy-.cjs +2 -0
  173. package/dist/{paragraph-DcRBcRhQ.cjs.map → paragraph-C_Fdgxy-.cjs.map} +1 -1
  174. package/dist/paragraph-Mj_lYFeD.js +2 -0
  175. package/dist/{paragraph-B4cQhLhW.js.map → paragraph-Mj_lYFeD.js.map} +1 -1
  176. package/dist/{popover-CqAD7HNo.js → popover-DBV1XdHj.js} +2 -2
  177. package/dist/{popover-CqAD7HNo.js.map → popover-DBV1XdHj.js.map} +1 -1
  178. package/dist/{popover-Dd0acCEk.cjs → popover-DFVKtMwR.cjs} +2 -2
  179. package/dist/{popover-Dd0acCEk.cjs.map → popover-DFVKtMwR.cjs.map} +1 -1
  180. package/dist/{progress-DWrtxJv0.js → progress-CgYS0Bm6.js} +2 -2
  181. package/dist/{progress-DWrtxJv0.js.map → progress-CgYS0Bm6.js.map} +1 -1
  182. package/dist/{progress-DLxh7x1P.cjs → progress-CmViEr3j.cjs} +2 -2
  183. package/dist/{progress-DLxh7x1P.cjs.map → progress-CmViEr3j.cjs.map} +1 -1
  184. package/dist/{refresh-DMj_wur3.cjs → refresh-B5m8OJ9y.cjs} +2 -2
  185. package/dist/{refresh-DMj_wur3.cjs.map → refresh-B5m8OJ9y.cjs.map} +1 -1
  186. package/dist/{refresh-CYCzbKVl.js → refresh-Cf1Y3xL-.js} +2 -2
  187. package/dist/{refresh-CYCzbKVl.js.map → refresh-Cf1Y3xL-.js.map} +1 -1
  188. package/dist/{scroll-area-CBq8XL4c.cjs → scroll-area-BJ5RYcMg.cjs} +2 -2
  189. package/dist/{scroll-area-CBq8XL4c.cjs.map → scroll-area-BJ5RYcMg.cjs.map} +1 -1
  190. package/dist/{scroll-area-C0KQbcG0.js → scroll-area-CruDNylO.js} +2 -2
  191. package/dist/{scroll-area-C0KQbcG0.js.map → scroll-area-CruDNylO.js.map} +1 -1
  192. package/dist/{search-input-DqcwkgsY.js → search-input-Bq5cK3ul.js} +2 -2
  193. package/dist/{search-input-DqcwkgsY.js.map → search-input-Bq5cK3ul.js.map} +1 -1
  194. package/dist/{search-input-yweS9EMM.cjs → search-input-F4ev4kTh.cjs} +2 -2
  195. package/dist/{search-input-yweS9EMM.cjs.map → search-input-F4ev4kTh.cjs.map} +1 -1
  196. package/dist/{select-C6N3CXuY.js → select-C5ktdg9N.js} +2 -2
  197. package/dist/{select-C6N3CXuY.js.map → select-C5ktdg9N.js.map} +1 -1
  198. package/dist/{select-BHjk6yT3.cjs → select-CmgEQFWX.cjs} +2 -2
  199. package/dist/{select-BHjk6yT3.cjs.map → select-CmgEQFWX.cjs.map} +1 -1
  200. package/dist/{separator-BLYi41aC.d.ts → separator-CETN8Z8q.d.ts} +3 -3
  201. package/dist/{separator-Cigaqna1.cjs → separator-CHpoDNnH.cjs} +2 -2
  202. package/dist/{separator-Cigaqna1.cjs.map → separator-CHpoDNnH.cjs.map} +1 -1
  203. package/dist/{separator-ClGBPiYE.d.cts → separator-Cin_M3mg.d.cts} +3 -3
  204. package/dist/{separator-aLdI4FQe.js → separator-iF5M5XZY.js} +2 -2
  205. package/dist/{separator-aLdI4FQe.js.map → separator-iF5M5XZY.js.map} +1 -1
  206. package/dist/{sheet-CX3PajAc.cjs → sheet-Znop-UBl.cjs} +2 -2
  207. package/dist/{sheet-CX3PajAc.cjs.map → sheet-Znop-UBl.cjs.map} +1 -1
  208. package/dist/{sheet-DqPtcv9H.js → sheet-aZXyTC8e.js} +2 -2
  209. package/dist/{sheet-DqPtcv9H.js.map → sheet-aZXyTC8e.js.map} +1 -1
  210. package/dist/{sidebar-BbcOcECD.cjs → sidebar-CEixxF5q.cjs} +2 -2
  211. package/dist/{sidebar-BbcOcECD.cjs.map → sidebar-CEixxF5q.cjs.map} +1 -1
  212. package/dist/{sidebar-BDDG3PeD.js → sidebar-CtHy96MF.js} +2 -2
  213. package/dist/{sidebar-BDDG3PeD.js.map → sidebar-CtHy96MF.js.map} +1 -1
  214. package/dist/{sidebar-CospqUDX.js → sidebar-Dwo4Qp8s.js} +2 -2
  215. package/dist/{sidebar-CospqUDX.js.map → sidebar-Dwo4Qp8s.js.map} +1 -1
  216. package/dist/{sidebar-DWuOHlvn.cjs → sidebar-Dy-l-A_Q.cjs} +2 -2
  217. package/dist/{sidebar-DWuOHlvn.cjs.map → sidebar-Dy-l-A_Q.cjs.map} +1 -1
  218. package/dist/{skeleton-C-9PuX3p.cjs → skeleton-Bhdmd_Wk.cjs} +2 -2
  219. package/dist/{skeleton-C-9PuX3p.cjs.map → skeleton-Bhdmd_Wk.cjs.map} +1 -1
  220. package/dist/{skeleton-sZeupFu_.js → skeleton-r2YtsBgC.js} +2 -2
  221. package/dist/{skeleton-sZeupFu_.js.map → skeleton-r2YtsBgC.js.map} +1 -1
  222. package/dist/{switch-C3igCoxt.cjs → switch-CPQ3g_MJ.cjs} +2 -2
  223. package/dist/{switch-C3igCoxt.cjs.map → switch-CPQ3g_MJ.cjs.map} +1 -1
  224. package/dist/{switch-965kHdW_.js → switch-DhAXF3Qt.js} +2 -2
  225. package/dist/{switch-965kHdW_.js.map → switch-DhAXF3Qt.js.map} +1 -1
  226. package/dist/table/index.cjs +1 -1
  227. package/dist/table/index.d.cts +2 -2
  228. package/dist/table/index.d.ts +2 -2
  229. package/dist/table/index.js +1 -1
  230. package/dist/{table-CTMRaGxa.cjs → table-BQsKdF2x.cjs} +2 -2
  231. package/dist/{table-CTMRaGxa.cjs.map → table-BQsKdF2x.cjs.map} +1 -1
  232. package/dist/{table-CsnugKnh.js → table-Ca0XhAnW.js} +2 -2
  233. package/dist/{table-CsnugKnh.js.map → table-Ca0XhAnW.js.map} +1 -1
  234. package/dist/{textarea-CQ6gAnm5.js → textarea-D7OMDnon.js} +2 -2
  235. package/dist/{textarea-CQ6gAnm5.js.map → textarea-D7OMDnon.js.map} +1 -1
  236. package/dist/{textarea-3XRFTUZ8.cjs → textarea-JK2jjd9x.cjs} +2 -2
  237. package/dist/{textarea-3XRFTUZ8.cjs.map → textarea-JK2jjd9x.cjs.map} +1 -1
  238. package/dist/title-CmlAQxmf.js +2 -0
  239. package/dist/{title-CxIwADiB.js.map → title-CmlAQxmf.js.map} +1 -1
  240. package/dist/title-LB4M5iE_.cjs +2 -0
  241. package/dist/{title-6Uosk2b4.cjs.map → title-LB4M5iE_.cjs.map} +1 -1
  242. package/dist/{toggle-DnGvFJh8.d.cts → toggle-BfxKkF3V.d.cts} +3 -3
  243. package/dist/{toggle-B7nXBZ9r.cjs → toggle-BjNukl2s.cjs} +2 -2
  244. package/dist/{toggle-B7nXBZ9r.cjs.map → toggle-BjNukl2s.cjs.map} +1 -1
  245. package/dist/{toggle-A6eGkFij.js → toggle-CRCm_ZLv.js} +2 -2
  246. package/dist/{toggle-A6eGkFij.js.map → toggle-CRCm_ZLv.js.map} +1 -1
  247. package/dist/{toggle-BWQWsKMA.d.ts → toggle-DcFgf33k.d.ts} +3 -3
  248. package/dist/{tooltip-cisSpCHG.d.cts → tooltip-BJH-k8Rl.d.cts} +6 -6
  249. package/dist/{tooltip-Bk8VwHdM.d.ts → tooltip-BJxSDcLX.d.ts} +6 -6
  250. package/dist/{tooltip-B8KdfOeT.js → tooltip-BwVo3rqL.js} +2 -2
  251. package/dist/{tooltip-B8KdfOeT.js.map → tooltip-BwVo3rqL.js.map} +1 -1
  252. package/dist/{tooltip-DLnAwybV.cjs → tooltip-_jrSMy9D.cjs} +2 -2
  253. package/dist/{tooltip-DLnAwybV.cjs.map → tooltip-_jrSMy9D.cjs.map} +1 -1
  254. package/dist/{types-DaIHddx7.js → types-C1zngBcL.js} +1 -1
  255. package/dist/{types-DaIHddx7.js.map → types-C1zngBcL.js.map} +1 -1
  256. package/dist/{types-CrbWxjnp.cjs → types-D4VheH3v.cjs} +1 -1
  257. package/dist/{types-CrbWxjnp.cjs.map → types-D4VheH3v.cjs.map} +1 -1
  258. package/dist/typography/paragraph.cjs +1 -1
  259. package/dist/typography/paragraph.d.cts +2 -2
  260. package/dist/typography/paragraph.d.ts +2 -2
  261. package/dist/typography/paragraph.js +1 -1
  262. package/dist/typography/title.cjs +1 -1
  263. package/dist/typography/title.d.cts +2 -2
  264. package/dist/typography/title.js +1 -1
  265. package/dist/ui/alert-dialog.cjs +1 -1
  266. package/dist/ui/alert-dialog.d.cts +12 -12
  267. package/dist/ui/alert-dialog.d.ts +12 -12
  268. package/dist/ui/alert-dialog.js +1 -1
  269. package/dist/ui/alert.cjs +1 -1
  270. package/dist/ui/alert.d.cts +6 -6
  271. package/dist/ui/alert.d.ts +4 -4
  272. package/dist/ui/alert.js +1 -1
  273. package/dist/ui/aspect-ratio.cjs +1 -1
  274. package/dist/ui/aspect-ratio.d.cts +2 -2
  275. package/dist/ui/aspect-ratio.d.ts +2 -2
  276. package/dist/ui/aspect-ratio.js +1 -1
  277. package/dist/ui/avatar.cjs +1 -1
  278. package/dist/ui/avatar.d.cts +4 -4
  279. package/dist/ui/avatar.d.ts +4 -4
  280. package/dist/ui/avatar.js +1 -1
  281. package/dist/ui/badge.cjs +1 -1
  282. package/dist/ui/badge.d.cts +4 -4
  283. package/dist/ui/badge.d.ts +4 -4
  284. package/dist/ui/badge.js +1 -1
  285. package/dist/ui/breadcrumb.cjs +1 -1
  286. package/dist/ui/breadcrumb.d.cts +8 -8
  287. package/dist/ui/breadcrumb.d.ts +8 -8
  288. package/dist/ui/breadcrumb.js +1 -1
  289. package/dist/ui/button.cjs +1 -1
  290. package/dist/ui/button.d.cts +1 -1
  291. package/dist/ui/button.d.ts +1 -1
  292. package/dist/ui/button.js +1 -1
  293. package/dist/ui/buttons/add-new.cjs +1 -1
  294. package/dist/ui/buttons/add-new.js +1 -1
  295. package/dist/ui/buttons/edit.cjs +1 -1
  296. package/dist/ui/buttons/edit.js +1 -1
  297. package/dist/ui/buttons/refresh.cjs +1 -1
  298. package/dist/ui/buttons/refresh.js +1 -1
  299. package/dist/ui/buttons/trash.cjs +1 -1
  300. package/dist/ui/buttons/trash.js +1 -1
  301. package/dist/ui/buttons/upload-image.cjs +1 -1
  302. package/dist/ui/buttons/upload-image.js +1 -1
  303. package/dist/ui/calendar.cjs +1 -1
  304. package/dist/ui/calendar.d.cts +4 -4
  305. package/dist/ui/calendar.d.ts +4 -4
  306. package/dist/ui/calendar.js +1 -1
  307. package/dist/ui/card.cjs +1 -1
  308. package/dist/ui/card.d.cts +8 -8
  309. package/dist/ui/card.d.ts +8 -8
  310. package/dist/ui/card.js +1 -1
  311. package/dist/ui/carousel.cjs +1 -1
  312. package/dist/ui/carousel.d.cts +7 -7
  313. package/dist/ui/carousel.d.ts +7 -7
  314. package/dist/ui/carousel.js +1 -1
  315. package/dist/ui/collapsible.d.cts +4 -4
  316. package/dist/ui/collapsible.d.ts +4 -4
  317. package/dist/ui/command.cjs +1 -1
  318. package/dist/ui/command.d.cts +2 -2
  319. package/dist/ui/command.d.ts +2 -2
  320. package/dist/ui/command.js +1 -1
  321. package/dist/ui/context-menu.cjs +1 -1
  322. package/dist/ui/context-menu.d.cts +16 -16
  323. package/dist/ui/context-menu.d.ts +16 -16
  324. package/dist/ui/context-menu.js +1 -1
  325. package/dist/ui/dialog.cjs +1 -1
  326. package/dist/ui/dialog.d.cts +1 -1
  327. package/dist/ui/dialog.d.ts +1 -1
  328. package/dist/ui/dialog.js +1 -1
  329. package/dist/ui/dropdown-menu.cjs +1 -1
  330. package/dist/ui/dropdown-menu.d.cts +16 -16
  331. package/dist/ui/dropdown-menu.d.ts +16 -16
  332. package/dist/ui/dropdown-menu.js +1 -1
  333. package/dist/ui/file-uploader.cjs +1 -1
  334. package/dist/ui/file-uploader.d.cts +2 -2
  335. package/dist/ui/file-uploader.d.ts +2 -2
  336. package/dist/ui/file-uploader.js +1 -1
  337. package/dist/ui/form.cjs +1 -1
  338. package/dist/ui/form.d.cts +7 -7
  339. package/dist/ui/form.d.ts +7 -7
  340. package/dist/ui/form.js +1 -1
  341. package/dist/ui/hover-card.cjs +1 -1
  342. package/dist/ui/hover-card.d.cts +4 -4
  343. package/dist/ui/hover-card.d.ts +4 -4
  344. package/dist/ui/hover-card.js +1 -1
  345. package/dist/ui/input-otp.cjs +1 -1
  346. package/dist/ui/input-otp.d.cts +5 -5
  347. package/dist/ui/input-otp.d.ts +5 -5
  348. package/dist/ui/input-otp.js +1 -1
  349. package/dist/ui/input.cjs +1 -1
  350. package/dist/ui/input.d.cts +1 -1
  351. package/dist/ui/input.d.ts +1 -1
  352. package/dist/ui/input.js +1 -1
  353. package/dist/ui/inputs/search-input.cjs +1 -1
  354. package/dist/ui/inputs/search-input.d.cts +3 -3
  355. package/dist/ui/inputs/search-input.d.ts +3 -3
  356. package/dist/ui/inputs/search-input.js +1 -1
  357. package/dist/ui/label.cjs +1 -1
  358. package/dist/ui/label.d.cts +2 -2
  359. package/dist/ui/label.d.ts +2 -2
  360. package/dist/ui/label.js +1 -1
  361. package/dist/ui/menubar.cjs +1 -1
  362. package/dist/ui/menubar.d.cts +17 -17
  363. package/dist/ui/menubar.d.ts +17 -17
  364. package/dist/ui/menubar.js +1 -1
  365. package/dist/ui/multi-select.cjs +1 -1
  366. package/dist/ui/multi-select.d.cts +2 -2
  367. package/dist/ui/multi-select.d.ts +2 -2
  368. package/dist/ui/multi-select.js +1 -1
  369. package/dist/ui/navigation-menu.cjs +1 -1
  370. package/dist/ui/navigation-menu.d.cts +9 -9
  371. package/dist/ui/navigation-menu.d.ts +9 -9
  372. package/dist/ui/navigation-menu.js +1 -1
  373. package/dist/ui/pagination.cjs +1 -1
  374. package/dist/ui/pagination.d.cts +9 -9
  375. package/dist/ui/pagination.d.ts +9 -9
  376. package/dist/ui/pagination.js +1 -1
  377. package/dist/ui/popover.cjs +1 -1
  378. package/dist/ui/popover.d.cts +5 -5
  379. package/dist/ui/popover.d.ts +5 -5
  380. package/dist/ui/popover.js +1 -1
  381. package/dist/ui/progress.cjs +1 -1
  382. package/dist/ui/progress.d.cts +2 -2
  383. package/dist/ui/progress.d.ts +2 -2
  384. package/dist/ui/progress.js +1 -1
  385. package/dist/ui/radio-group.cjs +1 -1
  386. package/dist/ui/radio-group.d.cts +3 -3
  387. package/dist/ui/radio-group.d.ts +3 -3
  388. package/dist/ui/radio-group.js +1 -1
  389. package/dist/ui/resizable.cjs +1 -1
  390. package/dist/ui/resizable.d.cts +4 -4
  391. package/dist/ui/resizable.d.ts +4 -4
  392. package/dist/ui/resizable.js +1 -1
  393. package/dist/ui/scroll-area.cjs +1 -1
  394. package/dist/ui/scroll-area.d.cts +3 -3
  395. package/dist/ui/scroll-area.d.ts +3 -3
  396. package/dist/ui/scroll-area.js +1 -1
  397. package/dist/ui/select.cjs +1 -1
  398. package/dist/ui/select.d.cts +11 -11
  399. package/dist/ui/select.d.ts +11 -11
  400. package/dist/ui/select.js +1 -1
  401. package/dist/ui/separator.cjs +1 -1
  402. package/dist/ui/separator.d.cts +1 -1
  403. package/dist/ui/separator.d.ts +1 -1
  404. package/dist/ui/separator.js +1 -1
  405. package/dist/ui/sheet.cjs +1 -1
  406. package/dist/ui/sheet.d.cts +9 -9
  407. package/dist/ui/sheet.d.ts +9 -9
  408. package/dist/ui/sheet.js +1 -1
  409. package/dist/ui/sidebar.cjs +1 -1
  410. package/dist/ui/sidebar.d.cts +28 -28
  411. package/dist/ui/sidebar.d.ts +28 -28
  412. package/dist/ui/sidebar.js +1 -1
  413. package/dist/ui/skeleton.cjs +1 -1
  414. package/dist/ui/skeleton.d.cts +2 -2
  415. package/dist/ui/skeleton.d.ts +2 -2
  416. package/dist/ui/skeleton.js +1 -1
  417. package/dist/ui/slider.cjs +1 -1
  418. package/dist/ui/slider.d.cts +2 -2
  419. package/dist/ui/slider.d.ts +2 -2
  420. package/dist/ui/slider.js +1 -1
  421. package/dist/ui/sonner.d.cts +2 -2
  422. package/dist/ui/sonner.d.ts +2 -2
  423. package/dist/ui/switch.cjs +1 -1
  424. package/dist/ui/switch.d.cts +2 -2
  425. package/dist/ui/switch.d.ts +2 -2
  426. package/dist/ui/switch.js +1 -1
  427. package/dist/ui/table.cjs +1 -1
  428. package/dist/ui/table.d.cts +9 -9
  429. package/dist/ui/table.d.ts +9 -9
  430. package/dist/ui/table.js +1 -1
  431. package/dist/ui/tabs.cjs +1 -1
  432. package/dist/ui/tabs.d.ts +5 -5
  433. package/dist/ui/tabs.js +1 -1
  434. package/dist/ui/textarea.cjs +1 -1
  435. package/dist/ui/textarea.d.cts +2 -2
  436. package/dist/ui/textarea.d.ts +2 -2
  437. package/dist/ui/textarea.js +1 -1
  438. package/dist/ui/toggle-group.cjs +1 -1
  439. package/dist/ui/toggle-group.d.cts +4 -4
  440. package/dist/ui/toggle-group.d.ts +4 -4
  441. package/dist/ui/toggle-group.js +1 -1
  442. package/dist/ui/toggle.cjs +1 -1
  443. package/dist/ui/toggle.d.cts +1 -1
  444. package/dist/ui/toggle.d.ts +1 -1
  445. package/dist/ui/toggle.js +1 -1
  446. package/dist/ui/tooltip.cjs +1 -1
  447. package/dist/ui/tooltip.d.cts +1 -1
  448. package/dist/ui/tooltip.d.ts +1 -1
  449. package/dist/ui/tooltip.js +1 -1
  450. package/dist/{utils-BsjVK5EW.cjs → utils-Bzhp4BOr.cjs} +1 -1
  451. package/dist/{utils-BsjVK5EW.cjs.map → utils-Bzhp4BOr.cjs.map} +1 -1
  452. package/dist/{utils-D9AH0PUV.js → utils-CU8e4Cfu.js} +1 -1
  453. package/dist/{utils-D9AH0PUV.js.map → utils-CU8e4Cfu.js.map} +1 -1
  454. package/package.json +5 -1
  455. package/dist/paragraph-B4cQhLhW.js +0 -2
  456. package/dist/paragraph-DcRBcRhQ.cjs +0 -2
  457. package/dist/title-6Uosk2b4.cjs +0 -2
  458. package/dist/title-CxIwADiB.js +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"date-nd8WkPlx.cjs","names":["DateDisplay: React.FC<Props>","React","date","cn"],"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 React from 'react'\nimport { format, isThisMonth, isThisWeek, isThisYear, isToday, isTomorrow, isValid, isYesterday, parseISO } from 'date-fns'\n\nimport { TIME_IN_SECONDS, vietnameseHolidays, vietnameseLocale } from '@/constants'\nimport { cn } from '@/lib/utils'\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 = React.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 = React.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 = React.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 = React.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 = React.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 = React.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 = React.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
+ {"version":3,"file":"date-Ci9rmG-_.cjs","names":["DateDisplay: React.FC<Props>","React","date","cn"],"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 React from 'react'\nimport { format, isThisMonth, isThisWeek, isThisYear, isToday, isTomorrow, isValid, isYesterday, parseISO } from 'date-fns'\n\nimport { TIME_IN_SECONDS, vietnameseHolidays, vietnameseLocale } from '@/constants'\nimport { cn } from '@/lib/utils'\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 = React.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 = React.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 = React.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 = React.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 = React.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 = React.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 = React.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
- import{cn as e}from"./utils-D9AH0PUV.js";import t from"react";import{jsx as n}from"react/jsx-runtime";import{format as r,isThisMonth as i,isThisWeek as a,isThisYear as o,isToday as s,isTomorrow as c,isValid as l,isYesterday as u,parseISO as d}from"date-fns";const f={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`]},p={"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 m=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 h=({date:h,format:g=`medium`,showHoliday:_=!1,showTime:v=!1,className:y=``,title:b})=>{let x=t.useMemo(()=>{try{if(h instanceof Date)return l(h)?h:null;if(typeof h==`string`){let e=d(h);return l(e)?e:new Date(h)}if(typeof h==`number`){let e=new Date(h);return l(e)?e:null}return null}catch{return null}},[h]),S=t.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/m.MINUTE)} phút trước`:n<86400?`${Math.floor(n/m.HOUR)} giờ trước`:n<604800?`${Math.floor(n/m.DAY)} ngày trước`:n<2592e3?`${Math.floor(n/m.WEEK)} tuần trước`:n<31536e3?`${Math.floor(n/m.MONTH)} tháng trước`:`${Math.floor(n/m.YEAR)} năm trước`},[]),C=t.useCallback((e,t=!1)=>{let n=e.getDay();return t?f.weekdaysShort[n]:f.weekdays[n]},[]),w=t.useCallback((e,t=!1)=>{let n=e.getMonth();return t?f.monthsShort[n]:f.months[n]},[]),T=t.useCallback(e=>{let t=r(e,`MM-dd`);return p[t]||null},[]),E=t.useCallback(e=>{if(s(e))return v?`Hôm nay ${r(e,`HH:mm`)}`:`Hôm nay`;if(u(e))return v?`Hôm qua ${r(e,`HH:mm`)}`:`Hôm qua`;if(c(e))return v?`Ngày mai ${r(e,`HH:mm`)}`:`Ngày mai`;if(a(e)){let t=C(e);return v?`${t} ${r(e,`HH:mm`)}`:t}if(i(e)){let t=r(e,`d`);return v?`${t}/${r(e,`M`)} ${r(e,`HH:mm`)}`:`${t}/${r(e,`M`)}`}return o(e)?v?r(e,`d/M HH:mm`):r(e,`d/M`):v?r(e,`d/M/yyyy HH:mm`):r(e,`d/M/yyyy`)},[C,v]),D=t.useCallback((e,t)=>{let n=v?r(e,`, HH:mm`):``;switch(t){case`short`:return r(e,`d/M/yy`)+n;case`medium`:return r(e,`dd/MM/yyyy`)+n;case`long`:return`${r(e,`d`)} ${w(e)} ${r(e,`yyyy`)}`+n;case`full`:{let t=`${C(e)}, ngày ${r(e,`d`)} ${w(e)} năm ${r(e,`yyyy`)}`;return t+n}case`relative`:return S(e);case`datetime`:return r(e,`d/M/yyyy HH:mm`);case`time`:return r(e,`HH:mm`);case`smart`:return E(e);default:return r(e,`d/M/yyyy`)+n}},[E,w,C,S,v]);if(!x)return n(`span`,{className:e(`text-muted-foreground text-sm`,y),children:`--/--/----`});let O=D(x,g),k=_?T(x):null,A=k?`${O} (${k})`:O,j=b||r(x,`EEEE, d MMMM yyyy HH:mm:ss`);return n(`time`,{dateTime:x.toISOString(),className:e(`text-accent-foreground font-number text-sm`,y),title:j,children:A})};export{h as DateDisplay};
2
- //# sourceMappingURL=date-BMq_DNsv.js.map
1
+ import{cn as e}from"./utils-CU8e4Cfu.js";import t from"react";import{jsx as n}from"react/jsx-runtime";import{format as r,isThisMonth as i,isThisWeek as a,isThisYear as o,isToday as s,isTomorrow as c,isValid as l,isYesterday as u,parseISO as d}from"date-fns";const f={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`]},p={"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 m=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 h=({date:h,format:g=`medium`,showHoliday:_=!1,showTime:v=!1,className:y=``,title:b})=>{let x=t.useMemo(()=>{try{if(h instanceof Date)return l(h)?h:null;if(typeof h==`string`){let e=d(h);return l(e)?e:new Date(h)}if(typeof h==`number`){let e=new Date(h);return l(e)?e:null}return null}catch{return null}},[h]),S=t.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/m.MINUTE)} phút trước`:n<86400?`${Math.floor(n/m.HOUR)} giờ trước`:n<604800?`${Math.floor(n/m.DAY)} ngày trước`:n<2592e3?`${Math.floor(n/m.WEEK)} tuần trước`:n<31536e3?`${Math.floor(n/m.MONTH)} tháng trước`:`${Math.floor(n/m.YEAR)} năm trước`},[]),C=t.useCallback((e,t=!1)=>{let n=e.getDay();return t?f.weekdaysShort[n]:f.weekdays[n]},[]),w=t.useCallback((e,t=!1)=>{let n=e.getMonth();return t?f.monthsShort[n]:f.months[n]},[]),T=t.useCallback(e=>{let t=r(e,`MM-dd`);return p[t]||null},[]),E=t.useCallback(e=>{if(s(e))return v?`Hôm nay ${r(e,`HH:mm`)}`:`Hôm nay`;if(u(e))return v?`Hôm qua ${r(e,`HH:mm`)}`:`Hôm qua`;if(c(e))return v?`Ngày mai ${r(e,`HH:mm`)}`:`Ngày mai`;if(a(e)){let t=C(e);return v?`${t} ${r(e,`HH:mm`)}`:t}if(i(e)){let t=r(e,`d`);return v?`${t}/${r(e,`M`)} ${r(e,`HH:mm`)}`:`${t}/${r(e,`M`)}`}return o(e)?v?r(e,`d/M HH:mm`):r(e,`d/M`):v?r(e,`d/M/yyyy HH:mm`):r(e,`d/M/yyyy`)},[C,v]),D=t.useCallback((e,t)=>{let n=v?r(e,`, HH:mm`):``;switch(t){case`short`:return r(e,`d/M/yy`)+n;case`medium`:return r(e,`dd/MM/yyyy`)+n;case`long`:return`${r(e,`d`)} ${w(e)} ${r(e,`yyyy`)}`+n;case`full`:{let t=`${C(e)}, ngày ${r(e,`d`)} ${w(e)} năm ${r(e,`yyyy`)}`;return t+n}case`relative`:return S(e);case`datetime`:return r(e,`d/M/yyyy HH:mm`);case`time`:return r(e,`HH:mm`);case`smart`:return E(e);default:return r(e,`d/M/yyyy`)+n}},[E,w,C,S,v]);if(!x)return n(`span`,{className:e(`text-muted-foreground text-sm`,y),children:`--/--/----`});let O=D(x,g),k=_?T(x):null,A=k?`${O} (${k})`:O,j=b||r(x,`EEEE, d MMMM yyyy HH:mm:ss`);return n(`time`,{dateTime:x.toISOString(),className:e(`text-accent-foreground font-number text-sm`,y),title:j,children:A})};export{h as DateDisplay};
2
+ //# sourceMappingURL=date-Clhba3N5.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"date-BMq_DNsv.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 React from 'react'\nimport { format, isThisMonth, isThisWeek, isThisYear, isToday, isTomorrow, isValid, isYesterday, parseISO } from 'date-fns'\n\nimport { TIME_IN_SECONDS, vietnameseHolidays, vietnameseLocale } from '@/constants'\nimport { cn } from '@/lib/utils'\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 = React.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 = React.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 = React.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 = React.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 = React.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 = React.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 = React.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
+ {"version":3,"file":"date-Clhba3N5.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 React from 'react'\nimport { format, isThisMonth, isThisWeek, isThisYear, isToday, isTomorrow, isValid, isYesterday, parseISO } from 'date-fns'\n\nimport { TIME_IN_SECONDS, vietnameseHolidays, vietnameseLocale } from '@/constants'\nimport { cn } from '@/lib/utils'\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 = React.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 = React.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 = React.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 = React.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 = React.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 = React.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 = React.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,23 +1,23 @@
1
- import * as react_jsx_runtime59 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime39 from "react/jsx-runtime";
2
2
  import { Dialog } from "radix-ui";
3
3
 
4
4
  //#region packages/components/ui/dialog.d.ts
5
5
  declare function Dialog$1({
6
6
  ...props
7
- }: React.ComponentProps<typeof Dialog.Root>): react_jsx_runtime59.JSX.Element;
7
+ }: React.ComponentProps<typeof Dialog.Root>): react_jsx_runtime39.JSX.Element;
8
8
  declare function DialogTrigger({
9
9
  ...props
10
- }: React.ComponentProps<typeof Dialog.Trigger>): react_jsx_runtime59.JSX.Element;
10
+ }: React.ComponentProps<typeof Dialog.Trigger>): react_jsx_runtime39.JSX.Element;
11
11
  declare function DialogPortal({
12
12
  ...props
13
- }: React.ComponentProps<typeof Dialog.Portal>): react_jsx_runtime59.JSX.Element;
13
+ }: React.ComponentProps<typeof Dialog.Portal>): react_jsx_runtime39.JSX.Element;
14
14
  declare function DialogClose({
15
15
  ...props
16
- }: React.ComponentProps<typeof Dialog.Close>): react_jsx_runtime59.JSX.Element;
16
+ }: React.ComponentProps<typeof Dialog.Close>): react_jsx_runtime39.JSX.Element;
17
17
  declare function DialogOverlay({
18
18
  className,
19
19
  ...props
20
- }: React.ComponentProps<typeof Dialog.Overlay>): react_jsx_runtime59.JSX.Element;
20
+ }: React.ComponentProps<typeof Dialog.Overlay>): react_jsx_runtime39.JSX.Element;
21
21
  declare function DialogContent({
22
22
  className,
23
23
  children,
@@ -25,23 +25,23 @@ declare function DialogContent({
25
25
  ...props
26
26
  }: React.ComponentProps<typeof Dialog.Content> & {
27
27
  showCloseButton?: boolean;
28
- }): react_jsx_runtime59.JSX.Element;
28
+ }): react_jsx_runtime39.JSX.Element;
29
29
  declare function DialogHeader({
30
30
  className,
31
31
  ...props
32
- }: React.ComponentProps<'div'>): react_jsx_runtime59.JSX.Element;
32
+ }: React.ComponentProps<'div'>): react_jsx_runtime39.JSX.Element;
33
33
  declare function DialogFooter({
34
34
  className,
35
35
  ...props
36
- }: React.ComponentProps<'div'>): react_jsx_runtime59.JSX.Element;
36
+ }: React.ComponentProps<'div'>): react_jsx_runtime39.JSX.Element;
37
37
  declare function DialogTitle({
38
38
  className,
39
39
  ...props
40
- }: React.ComponentProps<typeof Dialog.Title>): react_jsx_runtime59.JSX.Element;
40
+ }: React.ComponentProps<typeof Dialog.Title>): react_jsx_runtime39.JSX.Element;
41
41
  declare function DialogDescription({
42
42
  className,
43
43
  ...props
44
- }: React.ComponentProps<typeof Dialog.Description>): react_jsx_runtime59.JSX.Element;
44
+ }: React.ComponentProps<typeof Dialog.Description>): react_jsx_runtime39.JSX.Element;
45
45
  //#endregion
46
46
  export { Dialog$1 as Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };
47
- //# sourceMappingURL=dialog-CoH1pTBH.d.ts.map
47
+ //# sourceMappingURL=dialog-DC9nwyvF.d.cts.map
@@ -1,2 +1,2 @@
1
- const e=require(`./chunk-CUT6urMc.cjs`),t=require(`./utils-BsjVK5EW.cjs`),n=e.__toESM(require(`react/jsx-runtime`)),r=e.__toESM(require(`radix-ui`)),i=e.__toESM(require(`lucide-react`));function a({...e}){return(0,n.jsx)(r.Dialog.Root,{"data-slot":`dialog`,...e})}function o({...e}){return(0,n.jsx)(r.Dialog.Trigger,{"data-slot":`dialog-trigger`,...e})}function s({...e}){return(0,n.jsx)(r.Dialog.Portal,{"data-slot":`dialog-portal`,...e})}function c({...e}){return(0,n.jsx)(r.Dialog.Close,{"data-slot":`dialog-close`,...e})}function l({className:e,...i}){return(0,n.jsx)(r.Dialog.Overlay,{"data-slot":`dialog-overlay`,className:t.cn(`fixed inset-0 z-50 bg-black/50`,`data-[state=open]:animate-in`,`data-[state=open]:fade-in-0`,`data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0`,e),...i})}function u({className:e,children:a,showCloseButton:o=!0,...c}){return(0,n.jsxs)(s,{"data-slot":`dialog-portal`,children:[(0,n.jsx)(l,{}),(0,n.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:(0,n.jsxs)(r.Dialog.Content,{"data-slot":`dialog-content`,className:t.cn(`bg-background relative z-50 grid`,`shadow-dialog gap-4 p-6 outline-none`,`max-h-[85svh] w-full max-w-[calc(100%-2rem)] sm:max-w-lg`,`rounded-2xl duration-200`,`data-[state=open]:animate-in`,`data-[state=open]:fade-in-0`,`data-[state=open]:zoom-in-80`,`data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0`,`data-[state=closed]:zoom-out-80`,e),...c,children:[a,o&&(0,n.jsxs)(r.Dialog.Close,{"data-slot":`dialog-close`,tabIndex:-1,className:t.cn(`btnClose`,`absolute top-3 right-3 rounded-full p-2 opacity-70`,`cursor-pointer transition-all`,`outline-0`,`disabled:pointer-events-none`,`focus:ring-2`,`focus:ring-border-weak`,`hover:opacity-100`,`hover:bg-accent-muted`,`data-[state=open]:bg-accent-weak`,`data-[state=open]:text-text-positive-muted`,`[&_svg]:text-accent-foreground/60`,`[&_svg]:hover:text-text-positive-strong`,`[&_svg]:pointer-events-none`,`[&_svg]:shrink-0`,`[&_svg:not([class*='size-'])]:size-5`),children:[(0,n.jsx)(i.XIcon,{}),(0,n.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})})]})}function d({className:e,...r}){return(0,n.jsx)(`div`,{"data-slot":`dialog-header`,className:t.cn(`flex flex-col gap-2 text-center sm:text-left`,e),...r})}function f({className:e,...r}){return(0,n.jsx)(`div`,{"data-slot":`dialog-footer`,className:t.cn(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,e),...r})}function p({className:e,...i}){return(0,n.jsx)(r.Dialog.Title,{"data-slot":`dialog-title`,className:t.cn(`text-text-positive-strong text-lg leading-none font-semibold`,e),...i})}function m({className:e,...i}){return(0,n.jsx)(r.Dialog.Description,{"data-slot":`dialog-description`,className:t.cn(`text-text-positive-weak text-sm`,e),...i})}Object.defineProperty(exports,`Dialog`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`DialogClose`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`DialogContent`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`DialogDescription`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`DialogFooter`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`DialogHeader`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`DialogOverlay`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`DialogPortal`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`DialogTitle`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`DialogTrigger`,{enumerable:!0,get:function(){return o}});
2
- //# sourceMappingURL=dialog-C4oHnJNN.cjs.map
1
+ const e=require(`./chunk-CUT6urMc.cjs`),t=require(`./utils-Bzhp4BOr.cjs`),n=e.__toESM(require(`react/jsx-runtime`)),r=e.__toESM(require(`radix-ui`)),i=e.__toESM(require(`lucide-react`));function a({...e}){return(0,n.jsx)(r.Dialog.Root,{"data-slot":`dialog`,...e})}function o({...e}){return(0,n.jsx)(r.Dialog.Trigger,{"data-slot":`dialog-trigger`,...e})}function s({...e}){return(0,n.jsx)(r.Dialog.Portal,{"data-slot":`dialog-portal`,...e})}function c({...e}){return(0,n.jsx)(r.Dialog.Close,{"data-slot":`dialog-close`,...e})}function l({className:e,...i}){return(0,n.jsx)(r.Dialog.Overlay,{"data-slot":`dialog-overlay`,className:t.cn(`fixed inset-0 z-50 bg-black/50`,`data-[state=open]:animate-in`,`data-[state=open]:fade-in-0`,`data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0`,e),...i})}function u({className:e,children:a,showCloseButton:o=!0,...c}){return(0,n.jsxs)(s,{"data-slot":`dialog-portal`,children:[(0,n.jsx)(l,{}),(0,n.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:(0,n.jsxs)(r.Dialog.Content,{"data-slot":`dialog-content`,className:t.cn(`bg-background relative z-50 grid`,`shadow-dialog gap-4 p-6 outline-none`,`max-h-[85svh] w-full max-w-[calc(100%-2rem)] sm:max-w-lg`,`rounded-2xl duration-200`,`data-[state=open]:animate-in`,`data-[state=open]:fade-in-0`,`data-[state=open]:zoom-in-80`,`data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0`,`data-[state=closed]:zoom-out-80`,e),...c,children:[a,o&&(0,n.jsxs)(r.Dialog.Close,{"data-slot":`dialog-close`,tabIndex:-1,className:t.cn(`btnClose`,`absolute top-3 right-3 rounded-full p-2 opacity-70`,`cursor-pointer transition-all`,`outline-0`,`disabled:pointer-events-none`,`focus:ring-2`,`focus:ring-border-weak`,`hover:opacity-100`,`hover:bg-accent-muted`,`data-[state=open]:bg-accent-weak`,`data-[state=open]:text-text-positive-muted`,`[&_svg]:text-accent-foreground/60`,`[&_svg]:hover:text-text-positive-strong`,`[&_svg]:pointer-events-none`,`[&_svg]:shrink-0`,`[&_svg:not([class*='size-'])]:size-5`),children:[(0,n.jsx)(i.XIcon,{}),(0,n.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})})]})}function d({className:e,...r}){return(0,n.jsx)(`div`,{"data-slot":`dialog-header`,className:t.cn(`flex flex-col gap-2 text-center sm:text-left`,e),...r})}function f({className:e,...r}){return(0,n.jsx)(`div`,{"data-slot":`dialog-footer`,className:t.cn(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,e),...r})}function p({className:e,...i}){return(0,n.jsx)(r.Dialog.Title,{"data-slot":`dialog-title`,className:t.cn(`text-text-positive-strong text-lg leading-none font-semibold`,e),...i})}function m({className:e,...i}){return(0,n.jsx)(r.Dialog.Description,{"data-slot":`dialog-description`,className:t.cn(`text-text-positive-weak text-sm`,e),...i})}Object.defineProperty(exports,`Dialog`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`DialogClose`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`DialogContent`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`DialogDescription`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`DialogFooter`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`DialogHeader`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`DialogOverlay`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`DialogPortal`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`DialogTitle`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`DialogTrigger`,{enumerable:!0,get:function(){return o}});
2
+ //# sourceMappingURL=dialog-DdHuwZMB.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"dialog-C4oHnJNN.cjs","names":["DialogPrimitive","cn","XIcon"],"sources":["../packages/components/ui/dialog.tsx"],"sourcesContent":["'use client'\nimport { Dialog as DialogPrimitive } from 'radix-ui'\nimport { XIcon } from 'lucide-react'\n\nimport { cn } from '@/lib/utils'\n\nfunction Dialog({ ...props }: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />\n}\n\nfunction DialogTrigger({ ...props }: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />\n}\n\nfunction DialogPortal({ ...props }: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />\n}\n\nfunction DialogClose({ ...props }: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />\n}\n\nfunction DialogOverlay({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n 'fixed inset-0 z-50 bg-black/50',\n 'data-[state=open]:animate-in',\n 'data-[state=open]:fade-in-0',\n 'data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean\n}) {\n return (\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay />\n <div className=\"fixed inset-0 z-50 flex items-center justify-center\">\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n 'bg-background relative z-50 grid',\n 'shadow-dialog gap-4 p-6 outline-none',\n 'max-h-[85svh] w-full max-w-[calc(100%-2rem)] sm:max-w-lg',\n 'rounded-2xl duration-200',\n 'data-[state=open]:animate-in',\n 'data-[state=open]:fade-in-0',\n 'data-[state=open]:zoom-in-80',\n 'data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0',\n 'data-[state=closed]:zoom-out-80',\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n tabIndex={-1}\n className={cn(\n 'btnClose',\n 'absolute top-3 right-3 rounded-full p-2 opacity-70',\n 'cursor-pointer transition-all',\n 'outline-0',\n 'disabled:pointer-events-none',\n 'focus:ring-2',\n 'focus:ring-border-weak',\n 'hover:opacity-100',\n 'hover:bg-accent-muted',\n 'data-[state=open]:bg-accent-weak',\n 'data-[state=open]:text-text-positive-muted',\n '[&_svg]:text-accent-foreground/60',\n '[&_svg]:hover:text-text-positive-strong',\n '[&_svg]:pointer-events-none',\n '[&_svg]:shrink-0',\n \"[&_svg:not([class*='size-'])]:size-5\",\n )}\n >\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </div>\n </DialogPortal>\n )\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"dialog-header\" className={cn('flex flex-col gap-2 text-center sm:text-left', className)} {...props} />\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"dialog-footer\" className={cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', className)} {...props} />\n}\n\nfunction DialogTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return <DialogPrimitive.Title data-slot=\"dialog-title\" className={cn('text-text-positive-strong text-lg leading-none font-semibold', className)} {...props} />\n}\n\nfunction DialogDescription({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return <DialogPrimitive.Description data-slot=\"dialog-description\" className={cn('text-text-positive-weak text-sm', className)} {...props} />\n}\n\nexport { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger }\n"],"mappings":"0LAMA,SAAS,EAAO,CAAE,GAAG,GAA4D,CAC/E,OAAO,EAAA,EAAA,KAACA,EAAAA,OAAgB,KAAA,CAAK,YAAU,SAAS,GAAI,IAGtD,SAAS,EAAc,CAAE,GAAG,GAA+D,CACzF,OAAO,EAAA,EAAA,KAACA,EAAAA,OAAgB,QAAA,CAAQ,YAAU,iBAAiB,GAAI,IAGjE,SAAS,EAAa,CAAE,GAAG,GAA8D,CACvF,OAAO,EAAA,EAAA,KAACA,EAAAA,OAAgB,OAAA,CAAO,YAAU,gBAAgB,GAAI,IAG/D,SAAS,EAAY,CAAE,GAAG,GAA6D,CACrF,OAAO,EAAA,EAAA,KAACA,EAAAA,OAAgB,MAAA,CAAM,YAAU,eAAe,GAAI,IAG7D,SAAS,EAAc,CAAE,YAAW,GAAG,GAA+D,CACpG,OACE,EAAA,EAAA,KAACA,EAAAA,OAAgB,QAAA,CACf,YAAU,iBACV,UAAWC,EAAAA,GACT,iCACA,+BACA,8BACA,kCACA,iCACA,GAEF,GAAI,IAKV,SAAS,EAAc,CACrB,YACA,WACA,kBAAkB,GAClB,GAAG,GAGF,CACD,OACE,EAAA,EAAA,MAAC,EAAA,CAAa,YAAU,2BACtB,EAAA,EAAA,KAAC,EAAA,KACD,EAAA,EAAA,KAAC,MAAA,CAAI,UAAU,gEACb,EAAA,EAAA,MAACD,EAAAA,OAAgB,QAAA,CACf,YAAU,iBACV,UAAWC,EAAAA,GACT,mCACA,uCACA,2DACA,2BACA,+BACA,8BACA,+BACA,kCACA,iCACA,kCACA,GAEF,GAAI,YAEH,EACA,IACC,EAAA,EAAA,MAACD,EAAAA,OAAgB,MAAA,CACf,YAAU,eACV,SAAU,GACV,UAAWC,EAAAA,GACT,WACA,qDACA,gCACA,YACA,+BACA,eACA,yBACA,oBACA,wBACA,mCACA,6CACA,oCACA,0CACA,8BACA,mBACA,mDAGF,EAAA,EAAA,KAACC,EAAAA,MAAAA,KACD,EAAA,EAAA,KAAC,OAAA,CAAK,UAAU,mBAAU,qBASxC,SAAS,EAAa,CAAE,YAAW,GAAG,GAAsC,CAC1E,OAAO,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,gBAAgB,UAAWD,EAAAA,GAAG,+CAAgD,GAAY,GAAI,IAGtH,SAAS,EAAa,CAAE,YAAW,GAAG,GAAsC,CAC1E,OAAO,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,gBAAgB,UAAWA,EAAAA,GAAG,yDAA0D,GAAY,GAAI,IAGhI,SAAS,EAAY,CAAE,YAAW,GAAG,GAA6D,CAChG,OAAO,EAAA,EAAA,KAACD,EAAAA,OAAgB,MAAA,CAAM,YAAU,eAAe,UAAWC,EAAAA,GAAG,+DAAgE,GAAY,GAAI,IAGvJ,SAAS,EAAkB,CAAE,YAAW,GAAG,GAAmE,CAC5G,OAAO,EAAA,EAAA,KAACD,EAAAA,OAAgB,YAAA,CAAY,YAAU,qBAAqB,UAAWC,EAAAA,GAAG,kCAAmC,GAAY,GAAI"}
1
+ {"version":3,"file":"dialog-DdHuwZMB.cjs","names":["DialogPrimitive","cn","XIcon"],"sources":["../packages/components/ui/dialog.tsx"],"sourcesContent":["'use client'\nimport { Dialog as DialogPrimitive } from 'radix-ui'\nimport { XIcon } from 'lucide-react'\n\nimport { cn } from '@/lib/utils'\n\nfunction Dialog({ ...props }: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />\n}\n\nfunction DialogTrigger({ ...props }: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />\n}\n\nfunction DialogPortal({ ...props }: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />\n}\n\nfunction DialogClose({ ...props }: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />\n}\n\nfunction DialogOverlay({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n 'fixed inset-0 z-50 bg-black/50',\n 'data-[state=open]:animate-in',\n 'data-[state=open]:fade-in-0',\n 'data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean\n}) {\n return (\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay />\n <div className=\"fixed inset-0 z-50 flex items-center justify-center\">\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n 'bg-background relative z-50 grid',\n 'shadow-dialog gap-4 p-6 outline-none',\n 'max-h-[85svh] w-full max-w-[calc(100%-2rem)] sm:max-w-lg',\n 'rounded-2xl duration-200',\n 'data-[state=open]:animate-in',\n 'data-[state=open]:fade-in-0',\n 'data-[state=open]:zoom-in-80',\n 'data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0',\n 'data-[state=closed]:zoom-out-80',\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n tabIndex={-1}\n className={cn(\n 'btnClose',\n 'absolute top-3 right-3 rounded-full p-2 opacity-70',\n 'cursor-pointer transition-all',\n 'outline-0',\n 'disabled:pointer-events-none',\n 'focus:ring-2',\n 'focus:ring-border-weak',\n 'hover:opacity-100',\n 'hover:bg-accent-muted',\n 'data-[state=open]:bg-accent-weak',\n 'data-[state=open]:text-text-positive-muted',\n '[&_svg]:text-accent-foreground/60',\n '[&_svg]:hover:text-text-positive-strong',\n '[&_svg]:pointer-events-none',\n '[&_svg]:shrink-0',\n \"[&_svg:not([class*='size-'])]:size-5\",\n )}\n >\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </div>\n </DialogPortal>\n )\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"dialog-header\" className={cn('flex flex-col gap-2 text-center sm:text-left', className)} {...props} />\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"dialog-footer\" className={cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', className)} {...props} />\n}\n\nfunction DialogTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return <DialogPrimitive.Title data-slot=\"dialog-title\" className={cn('text-text-positive-strong text-lg leading-none font-semibold', className)} {...props} />\n}\n\nfunction DialogDescription({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return <DialogPrimitive.Description data-slot=\"dialog-description\" className={cn('text-text-positive-weak text-sm', className)} {...props} />\n}\n\nexport { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger }\n"],"mappings":"0LAMA,SAAS,EAAO,CAAE,GAAG,GAA4D,CAC/E,OAAO,EAAA,EAAA,KAACA,EAAAA,OAAgB,KAAA,CAAK,YAAU,SAAS,GAAI,IAGtD,SAAS,EAAc,CAAE,GAAG,GAA+D,CACzF,OAAO,EAAA,EAAA,KAACA,EAAAA,OAAgB,QAAA,CAAQ,YAAU,iBAAiB,GAAI,IAGjE,SAAS,EAAa,CAAE,GAAG,GAA8D,CACvF,OAAO,EAAA,EAAA,KAACA,EAAAA,OAAgB,OAAA,CAAO,YAAU,gBAAgB,GAAI,IAG/D,SAAS,EAAY,CAAE,GAAG,GAA6D,CACrF,OAAO,EAAA,EAAA,KAACA,EAAAA,OAAgB,MAAA,CAAM,YAAU,eAAe,GAAI,IAG7D,SAAS,EAAc,CAAE,YAAW,GAAG,GAA+D,CACpG,OACE,EAAA,EAAA,KAACA,EAAAA,OAAgB,QAAA,CACf,YAAU,iBACV,UAAWC,EAAAA,GACT,iCACA,+BACA,8BACA,kCACA,iCACA,GAEF,GAAI,IAKV,SAAS,EAAc,CACrB,YACA,WACA,kBAAkB,GAClB,GAAG,GAGF,CACD,OACE,EAAA,EAAA,MAAC,EAAA,CAAa,YAAU,2BACtB,EAAA,EAAA,KAAC,EAAA,KACD,EAAA,EAAA,KAAC,MAAA,CAAI,UAAU,gEACb,EAAA,EAAA,MAACD,EAAAA,OAAgB,QAAA,CACf,YAAU,iBACV,UAAWC,EAAAA,GACT,mCACA,uCACA,2DACA,2BACA,+BACA,8BACA,+BACA,kCACA,iCACA,kCACA,GAEF,GAAI,YAEH,EACA,IACC,EAAA,EAAA,MAACD,EAAAA,OAAgB,MAAA,CACf,YAAU,eACV,SAAU,GACV,UAAWC,EAAAA,GACT,WACA,qDACA,gCACA,YACA,+BACA,eACA,yBACA,oBACA,wBACA,mCACA,6CACA,oCACA,0CACA,8BACA,mBACA,mDAGF,EAAA,EAAA,KAACC,EAAAA,MAAAA,KACD,EAAA,EAAA,KAAC,OAAA,CAAK,UAAU,mBAAU,qBASxC,SAAS,EAAa,CAAE,YAAW,GAAG,GAAsC,CAC1E,OAAO,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,gBAAgB,UAAWD,EAAAA,GAAG,+CAAgD,GAAY,GAAI,IAGtH,SAAS,EAAa,CAAE,YAAW,GAAG,GAAsC,CAC1E,OAAO,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,gBAAgB,UAAWA,EAAAA,GAAG,yDAA0D,GAAY,GAAI,IAGhI,SAAS,EAAY,CAAE,YAAW,GAAG,GAA6D,CAChG,OAAO,EAAA,EAAA,KAACD,EAAAA,OAAgB,MAAA,CAAM,YAAU,eAAe,UAAWC,EAAAA,GAAG,+DAAgE,GAAY,GAAI,IAGvJ,SAAS,EAAkB,CAAE,YAAW,GAAG,GAAmE,CAC5G,OAAO,EAAA,EAAA,KAACD,EAAAA,OAAgB,YAAA,CAAY,YAAU,qBAAqB,UAAWC,EAAAA,GAAG,kCAAmC,GAAY,GAAI"}
@@ -1,2 +1,2 @@
1
- import{cn as e}from"./utils-D9AH0PUV.js";import{jsx as t,jsxs as n}from"react/jsx-runtime";import{Dialog as r}from"radix-ui";import{XIcon as i}from"lucide-react";function a({...e}){return t(r.Root,{"data-slot":`dialog`,...e})}function o({...e}){return t(r.Trigger,{"data-slot":`dialog-trigger`,...e})}function s({...e}){return t(r.Portal,{"data-slot":`dialog-portal`,...e})}function c({...e}){return t(r.Close,{"data-slot":`dialog-close`,...e})}function l({className:n,...i}){return t(r.Overlay,{"data-slot":`dialog-overlay`,className:e(`fixed inset-0 z-50 bg-black/50`,`data-[state=open]:animate-in`,`data-[state=open]:fade-in-0`,`data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0`,n),...i})}function u({className:a,children:o,showCloseButton:c=!0,...u}){return n(s,{"data-slot":`dialog-portal`,children:[t(l,{}),t(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:n(r.Content,{"data-slot":`dialog-content`,className:e(`bg-background relative z-50 grid`,`shadow-dialog gap-4 p-6 outline-none`,`max-h-[85svh] w-full max-w-[calc(100%-2rem)] sm:max-w-lg`,`rounded-2xl duration-200`,`data-[state=open]:animate-in`,`data-[state=open]:fade-in-0`,`data-[state=open]:zoom-in-80`,`data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0`,`data-[state=closed]:zoom-out-80`,a),...u,children:[o,c&&n(r.Close,{"data-slot":`dialog-close`,tabIndex:-1,className:e(`btnClose`,`absolute top-3 right-3 rounded-full p-2 opacity-70`,`cursor-pointer transition-all`,`outline-0`,`disabled:pointer-events-none`,`focus:ring-2`,`focus:ring-border-weak`,`hover:opacity-100`,`hover:bg-accent-muted`,`data-[state=open]:bg-accent-weak`,`data-[state=open]:text-text-positive-muted`,`[&_svg]:text-accent-foreground/60`,`[&_svg]:hover:text-text-positive-strong`,`[&_svg]:pointer-events-none`,`[&_svg]:shrink-0`,`[&_svg:not([class*='size-'])]:size-5`),children:[t(i,{}),t(`span`,{className:`sr-only`,children:`Close`})]})]})})]})}function d({className:n,...r}){return t(`div`,{"data-slot":`dialog-header`,className:e(`flex flex-col gap-2 text-center sm:text-left`,n),...r})}function f({className:n,...r}){return t(`div`,{"data-slot":`dialog-footer`,className:e(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,n),...r})}function p({className:n,...i}){return t(r.Title,{"data-slot":`dialog-title`,className:e(`text-text-positive-strong text-lg leading-none font-semibold`,n),...i})}function m({className:n,...i}){return t(r.Description,{"data-slot":`dialog-description`,className:e(`text-text-positive-weak text-sm`,n),...i})}export{a as Dialog,c as DialogClose,u as DialogContent,m as DialogDescription,f as DialogFooter,d as DialogHeader,l as DialogOverlay,s as DialogPortal,p as DialogTitle,o as DialogTrigger};
2
- //# sourceMappingURL=dialog-BEdMA5Lp.js.map
1
+ import{cn as e}from"./utils-CU8e4Cfu.js";import{jsx as t,jsxs as n}from"react/jsx-runtime";import{Dialog as r}from"radix-ui";import{XIcon as i}from"lucide-react";function a({...e}){return t(r.Root,{"data-slot":`dialog`,...e})}function o({...e}){return t(r.Trigger,{"data-slot":`dialog-trigger`,...e})}function s({...e}){return t(r.Portal,{"data-slot":`dialog-portal`,...e})}function c({...e}){return t(r.Close,{"data-slot":`dialog-close`,...e})}function l({className:n,...i}){return t(r.Overlay,{"data-slot":`dialog-overlay`,className:e(`fixed inset-0 z-50 bg-black/50`,`data-[state=open]:animate-in`,`data-[state=open]:fade-in-0`,`data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0`,n),...i})}function u({className:a,children:o,showCloseButton:c=!0,...u}){return n(s,{"data-slot":`dialog-portal`,children:[t(l,{}),t(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:n(r.Content,{"data-slot":`dialog-content`,className:e(`bg-background relative z-50 grid`,`shadow-dialog gap-4 p-6 outline-none`,`max-h-[85svh] w-full max-w-[calc(100%-2rem)] sm:max-w-lg`,`rounded-2xl duration-200`,`data-[state=open]:animate-in`,`data-[state=open]:fade-in-0`,`data-[state=open]:zoom-in-80`,`data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0`,`data-[state=closed]:zoom-out-80`,a),...u,children:[o,c&&n(r.Close,{"data-slot":`dialog-close`,tabIndex:-1,className:e(`btnClose`,`absolute top-3 right-3 rounded-full p-2 opacity-70`,`cursor-pointer transition-all`,`outline-0`,`disabled:pointer-events-none`,`focus:ring-2`,`focus:ring-border-weak`,`hover:opacity-100`,`hover:bg-accent-muted`,`data-[state=open]:bg-accent-weak`,`data-[state=open]:text-text-positive-muted`,`[&_svg]:text-accent-foreground/60`,`[&_svg]:hover:text-text-positive-strong`,`[&_svg]:pointer-events-none`,`[&_svg]:shrink-0`,`[&_svg:not([class*='size-'])]:size-5`),children:[t(i,{}),t(`span`,{className:`sr-only`,children:`Close`})]})]})})]})}function d({className:n,...r}){return t(`div`,{"data-slot":`dialog-header`,className:e(`flex flex-col gap-2 text-center sm:text-left`,n),...r})}function f({className:n,...r}){return t(`div`,{"data-slot":`dialog-footer`,className:e(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,n),...r})}function p({className:n,...i}){return t(r.Title,{"data-slot":`dialog-title`,className:e(`text-text-positive-strong text-lg leading-none font-semibold`,n),...i})}function m({className:n,...i}){return t(r.Description,{"data-slot":`dialog-description`,className:e(`text-text-positive-weak text-sm`,n),...i})}export{a as Dialog,c as DialogClose,u as DialogContent,m as DialogDescription,f as DialogFooter,d as DialogHeader,l as DialogOverlay,s as DialogPortal,p as DialogTitle,o as DialogTrigger};
2
+ //# sourceMappingURL=dialog-DuASFaYK.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dialog-BEdMA5Lp.js","names":["Dialog","DialogPrimitive"],"sources":["../packages/components/ui/dialog.tsx"],"sourcesContent":["'use client'\nimport { Dialog as DialogPrimitive } from 'radix-ui'\nimport { XIcon } from 'lucide-react'\n\nimport { cn } from '@/lib/utils'\n\nfunction Dialog({ ...props }: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />\n}\n\nfunction DialogTrigger({ ...props }: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />\n}\n\nfunction DialogPortal({ ...props }: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />\n}\n\nfunction DialogClose({ ...props }: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />\n}\n\nfunction DialogOverlay({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n 'fixed inset-0 z-50 bg-black/50',\n 'data-[state=open]:animate-in',\n 'data-[state=open]:fade-in-0',\n 'data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean\n}) {\n return (\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay />\n <div className=\"fixed inset-0 z-50 flex items-center justify-center\">\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n 'bg-background relative z-50 grid',\n 'shadow-dialog gap-4 p-6 outline-none',\n 'max-h-[85svh] w-full max-w-[calc(100%-2rem)] sm:max-w-lg',\n 'rounded-2xl duration-200',\n 'data-[state=open]:animate-in',\n 'data-[state=open]:fade-in-0',\n 'data-[state=open]:zoom-in-80',\n 'data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0',\n 'data-[state=closed]:zoom-out-80',\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n tabIndex={-1}\n className={cn(\n 'btnClose',\n 'absolute top-3 right-3 rounded-full p-2 opacity-70',\n 'cursor-pointer transition-all',\n 'outline-0',\n 'disabled:pointer-events-none',\n 'focus:ring-2',\n 'focus:ring-border-weak',\n 'hover:opacity-100',\n 'hover:bg-accent-muted',\n 'data-[state=open]:bg-accent-weak',\n 'data-[state=open]:text-text-positive-muted',\n '[&_svg]:text-accent-foreground/60',\n '[&_svg]:hover:text-text-positive-strong',\n '[&_svg]:pointer-events-none',\n '[&_svg]:shrink-0',\n \"[&_svg:not([class*='size-'])]:size-5\",\n )}\n >\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </div>\n </DialogPortal>\n )\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"dialog-header\" className={cn('flex flex-col gap-2 text-center sm:text-left', className)} {...props} />\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"dialog-footer\" className={cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', className)} {...props} />\n}\n\nfunction DialogTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return <DialogPrimitive.Title data-slot=\"dialog-title\" className={cn('text-text-positive-strong text-lg leading-none font-semibold', className)} {...props} />\n}\n\nfunction DialogDescription({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return <DialogPrimitive.Description data-slot=\"dialog-description\" className={cn('text-text-positive-weak text-sm', className)} {...props} />\n}\n\nexport { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger }\n"],"mappings":"kKAMA,SAASA,EAAO,CAAE,GAAG,GAA4D,CAC/E,OAAO,EAACC,EAAgB,KAAA,CAAK,YAAU,SAAS,GAAI,IAGtD,SAAS,EAAc,CAAE,GAAG,GAA+D,CACzF,OAAO,EAACA,EAAgB,QAAA,CAAQ,YAAU,iBAAiB,GAAI,IAGjE,SAAS,EAAa,CAAE,GAAG,GAA8D,CACvF,OAAO,EAACA,EAAgB,OAAA,CAAO,YAAU,gBAAgB,GAAI,IAG/D,SAAS,EAAY,CAAE,GAAG,GAA6D,CACrF,OAAO,EAACA,EAAgB,MAAA,CAAM,YAAU,eAAe,GAAI,IAG7D,SAAS,EAAc,CAAE,YAAW,GAAG,GAA+D,CACpG,OACE,EAACA,EAAgB,QAAA,CACf,YAAU,iBACV,UAAW,EACT,iCACA,+BACA,8BACA,kCACA,iCACA,GAEF,GAAI,IAKV,SAAS,EAAc,CACrB,YACA,WACA,kBAAkB,GAClB,GAAG,GAGF,CACD,OACE,EAAC,EAAA,CAAa,YAAU,0BACtB,EAAC,EAAA,IACD,EAAC,MAAA,CAAI,UAAU,+DACb,EAACA,EAAgB,QAAA,CACf,YAAU,iBACV,UAAW,EACT,mCACA,uCACA,2DACA,2BACA,+BACA,8BACA,+BACA,kCACA,iCACA,kCACA,GAEF,GAAI,YAEH,EACA,GACC,EAACA,EAAgB,MAAA,CACf,YAAU,eACV,SAAU,GACV,UAAW,EACT,WACA,qDACA,gCACA,YACA,+BACA,eACA,yBACA,oBACA,wBACA,mCACA,6CACA,oCACA,0CACA,8BACA,mBACA,kDAGF,EAAC,EAAA,IACD,EAAC,OAAA,CAAK,UAAU,mBAAU,qBASxC,SAAS,EAAa,CAAE,YAAW,GAAG,GAAsC,CAC1E,OAAO,EAAC,MAAA,CAAI,YAAU,gBAAgB,UAAW,EAAG,+CAAgD,GAAY,GAAI,IAGtH,SAAS,EAAa,CAAE,YAAW,GAAG,GAAsC,CAC1E,OAAO,EAAC,MAAA,CAAI,YAAU,gBAAgB,UAAW,EAAG,yDAA0D,GAAY,GAAI,IAGhI,SAAS,EAAY,CAAE,YAAW,GAAG,GAA6D,CAChG,OAAO,EAACA,EAAgB,MAAA,CAAM,YAAU,eAAe,UAAW,EAAG,+DAAgE,GAAY,GAAI,IAGvJ,SAAS,EAAkB,CAAE,YAAW,GAAG,GAAmE,CAC5G,OAAO,EAACA,EAAgB,YAAA,CAAY,YAAU,qBAAqB,UAAW,EAAG,kCAAmC,GAAY,GAAI"}
1
+ {"version":3,"file":"dialog-DuASFaYK.js","names":["Dialog","DialogPrimitive"],"sources":["../packages/components/ui/dialog.tsx"],"sourcesContent":["'use client'\nimport { Dialog as DialogPrimitive } from 'radix-ui'\nimport { XIcon } from 'lucide-react'\n\nimport { cn } from '@/lib/utils'\n\nfunction Dialog({ ...props }: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />\n}\n\nfunction DialogTrigger({ ...props }: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />\n}\n\nfunction DialogPortal({ ...props }: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />\n}\n\nfunction DialogClose({ ...props }: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />\n}\n\nfunction DialogOverlay({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n 'fixed inset-0 z-50 bg-black/50',\n 'data-[state=open]:animate-in',\n 'data-[state=open]:fade-in-0',\n 'data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean\n}) {\n return (\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay />\n <div className=\"fixed inset-0 z-50 flex items-center justify-center\">\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n 'bg-background relative z-50 grid',\n 'shadow-dialog gap-4 p-6 outline-none',\n 'max-h-[85svh] w-full max-w-[calc(100%-2rem)] sm:max-w-lg',\n 'rounded-2xl duration-200',\n 'data-[state=open]:animate-in',\n 'data-[state=open]:fade-in-0',\n 'data-[state=open]:zoom-in-80',\n 'data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0',\n 'data-[state=closed]:zoom-out-80',\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n tabIndex={-1}\n className={cn(\n 'btnClose',\n 'absolute top-3 right-3 rounded-full p-2 opacity-70',\n 'cursor-pointer transition-all',\n 'outline-0',\n 'disabled:pointer-events-none',\n 'focus:ring-2',\n 'focus:ring-border-weak',\n 'hover:opacity-100',\n 'hover:bg-accent-muted',\n 'data-[state=open]:bg-accent-weak',\n 'data-[state=open]:text-text-positive-muted',\n '[&_svg]:text-accent-foreground/60',\n '[&_svg]:hover:text-text-positive-strong',\n '[&_svg]:pointer-events-none',\n '[&_svg]:shrink-0',\n \"[&_svg:not([class*='size-'])]:size-5\",\n )}\n >\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </div>\n </DialogPortal>\n )\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"dialog-header\" className={cn('flex flex-col gap-2 text-center sm:text-left', className)} {...props} />\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"dialog-footer\" className={cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', className)} {...props} />\n}\n\nfunction DialogTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return <DialogPrimitive.Title data-slot=\"dialog-title\" className={cn('text-text-positive-strong text-lg leading-none font-semibold', className)} {...props} />\n}\n\nfunction DialogDescription({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return <DialogPrimitive.Description data-slot=\"dialog-description\" className={cn('text-text-positive-weak text-sm', className)} {...props} />\n}\n\nexport { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger }\n"],"mappings":"kKAMA,SAASA,EAAO,CAAE,GAAG,GAA4D,CAC/E,OAAO,EAACC,EAAgB,KAAA,CAAK,YAAU,SAAS,GAAI,IAGtD,SAAS,EAAc,CAAE,GAAG,GAA+D,CACzF,OAAO,EAACA,EAAgB,QAAA,CAAQ,YAAU,iBAAiB,GAAI,IAGjE,SAAS,EAAa,CAAE,GAAG,GAA8D,CACvF,OAAO,EAACA,EAAgB,OAAA,CAAO,YAAU,gBAAgB,GAAI,IAG/D,SAAS,EAAY,CAAE,GAAG,GAA6D,CACrF,OAAO,EAACA,EAAgB,MAAA,CAAM,YAAU,eAAe,GAAI,IAG7D,SAAS,EAAc,CAAE,YAAW,GAAG,GAA+D,CACpG,OACE,EAACA,EAAgB,QAAA,CACf,YAAU,iBACV,UAAW,EACT,iCACA,+BACA,8BACA,kCACA,iCACA,GAEF,GAAI,IAKV,SAAS,EAAc,CACrB,YACA,WACA,kBAAkB,GAClB,GAAG,GAGF,CACD,OACE,EAAC,EAAA,CAAa,YAAU,0BACtB,EAAC,EAAA,IACD,EAAC,MAAA,CAAI,UAAU,+DACb,EAACA,EAAgB,QAAA,CACf,YAAU,iBACV,UAAW,EACT,mCACA,uCACA,2DACA,2BACA,+BACA,8BACA,+BACA,kCACA,iCACA,kCACA,GAEF,GAAI,YAEH,EACA,GACC,EAACA,EAAgB,MAAA,CACf,YAAU,eACV,SAAU,GACV,UAAW,EACT,WACA,qDACA,gCACA,YACA,+BACA,eACA,yBACA,oBACA,wBACA,mCACA,6CACA,oCACA,0CACA,8BACA,mBACA,kDAGF,EAAC,EAAA,IACD,EAAC,OAAA,CAAK,UAAU,mBAAU,qBASxC,SAAS,EAAa,CAAE,YAAW,GAAG,GAAsC,CAC1E,OAAO,EAAC,MAAA,CAAI,YAAU,gBAAgB,UAAW,EAAG,+CAAgD,GAAY,GAAI,IAGtH,SAAS,EAAa,CAAE,YAAW,GAAG,GAAsC,CAC1E,OAAO,EAAC,MAAA,CAAI,YAAU,gBAAgB,UAAW,EAAG,yDAA0D,GAAY,GAAI,IAGhI,SAAS,EAAY,CAAE,YAAW,GAAG,GAA6D,CAChG,OAAO,EAACA,EAAgB,MAAA,CAAM,YAAU,eAAe,UAAW,EAAG,+DAAgE,GAAY,GAAI,IAGvJ,SAAS,EAAkB,CAAE,YAAW,GAAG,GAAmE,CAC5G,OAAO,EAACA,EAAgB,YAAA,CAAY,YAAU,qBAAqB,UAAW,EAAG,kCAAmC,GAAY,GAAI"}
@@ -1,23 +1,23 @@
1
- import * as react_jsx_runtime47 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime101 from "react/jsx-runtime";
2
2
  import { Dialog } from "radix-ui";
3
3
 
4
4
  //#region packages/components/ui/dialog.d.ts
5
5
  declare function Dialog$1({
6
6
  ...props
7
- }: React.ComponentProps<typeof Dialog.Root>): react_jsx_runtime47.JSX.Element;
7
+ }: React.ComponentProps<typeof Dialog.Root>): react_jsx_runtime101.JSX.Element;
8
8
  declare function DialogTrigger({
9
9
  ...props
10
- }: React.ComponentProps<typeof Dialog.Trigger>): react_jsx_runtime47.JSX.Element;
10
+ }: React.ComponentProps<typeof Dialog.Trigger>): react_jsx_runtime101.JSX.Element;
11
11
  declare function DialogPortal({
12
12
  ...props
13
- }: React.ComponentProps<typeof Dialog.Portal>): react_jsx_runtime47.JSX.Element;
13
+ }: React.ComponentProps<typeof Dialog.Portal>): react_jsx_runtime101.JSX.Element;
14
14
  declare function DialogClose({
15
15
  ...props
16
- }: React.ComponentProps<typeof Dialog.Close>): react_jsx_runtime47.JSX.Element;
16
+ }: React.ComponentProps<typeof Dialog.Close>): react_jsx_runtime101.JSX.Element;
17
17
  declare function DialogOverlay({
18
18
  className,
19
19
  ...props
20
- }: React.ComponentProps<typeof Dialog.Overlay>): react_jsx_runtime47.JSX.Element;
20
+ }: React.ComponentProps<typeof Dialog.Overlay>): react_jsx_runtime101.JSX.Element;
21
21
  declare function DialogContent({
22
22
  className,
23
23
  children,
@@ -25,23 +25,23 @@ declare function DialogContent({
25
25
  ...props
26
26
  }: React.ComponentProps<typeof Dialog.Content> & {
27
27
  showCloseButton?: boolean;
28
- }): react_jsx_runtime47.JSX.Element;
28
+ }): react_jsx_runtime101.JSX.Element;
29
29
  declare function DialogHeader({
30
30
  className,
31
31
  ...props
32
- }: React.ComponentProps<'div'>): react_jsx_runtime47.JSX.Element;
32
+ }: React.ComponentProps<'div'>): react_jsx_runtime101.JSX.Element;
33
33
  declare function DialogFooter({
34
34
  className,
35
35
  ...props
36
- }: React.ComponentProps<'div'>): react_jsx_runtime47.JSX.Element;
36
+ }: React.ComponentProps<'div'>): react_jsx_runtime101.JSX.Element;
37
37
  declare function DialogTitle({
38
38
  className,
39
39
  ...props
40
- }: React.ComponentProps<typeof Dialog.Title>): react_jsx_runtime47.JSX.Element;
40
+ }: React.ComponentProps<typeof Dialog.Title>): react_jsx_runtime101.JSX.Element;
41
41
  declare function DialogDescription({
42
42
  className,
43
43
  ...props
44
- }: React.ComponentProps<typeof Dialog.Description>): react_jsx_runtime47.JSX.Element;
44
+ }: React.ComponentProps<typeof Dialog.Description>): react_jsx_runtime101.JSX.Element;
45
45
  //#endregion
46
46
  export { Dialog$1 as Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };
47
- //# sourceMappingURL=dialog-Bw_T5aco.d.cts.map
47
+ //# sourceMappingURL=dialog-mh0z7J_-.d.ts.map
@@ -1,2 +1,2 @@
1
- const e=require(`../chunk-CUT6urMc.cjs`);require(`../utils-BsjVK5EW.cjs`),require(`../button-BSGNpclh.cjs`);const t=require(`../alert-dialog-26JyobJb.cjs`),n=e.__toESM(require(`react/jsx-runtime`)),r=({open:e,isLoading:r=!1,title:i,description:a,onOpenChange:o,onConfirm:s})=>(0,n.jsx)(t.AlertDialog,{open:e,onOpenChange:o,children:(0,n.jsxs)(t.AlertDialogContent,{children:[(0,n.jsxs)(t.AlertDialogHeader,{className:`gap-0`,children:[(0,n.jsx)(t.AlertDialogTitle,{children:i}),(0,n.jsx)(t.AlertDialogDescription,{children:a})]}),(0,n.jsxs)(t.AlertDialogFooter,{children:[(0,n.jsx)(t.AlertDialogCancel,{children:`Cancel`}),(0,n.jsx)(t.AlertDialogAction,{className:`w-24`,onClick:s,children:r?(0,n.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:(0,n.jsx)(`div`,{className:`loader-spinner text-muted-foreground`})}):`Confirm`})]})]})});exports.ConfirmDialog=r;
1
+ const e=require(`../chunk-CUT6urMc.cjs`);require(`../utils-Bzhp4BOr.cjs`),require(`../button-lm4QtGky.cjs`);const t=require(`../alert-dialog-Dxx-45x_.cjs`),n=e.__toESM(require(`react/jsx-runtime`)),r=({open:e,isLoading:r=!1,title:i,description:a,onOpenChange:o,onConfirm:s})=>(0,n.jsx)(t.AlertDialog,{open:e,onOpenChange:o,children:(0,n.jsxs)(t.AlertDialogContent,{children:[(0,n.jsxs)(t.AlertDialogHeader,{className:`gap-0`,children:[(0,n.jsx)(t.AlertDialogTitle,{children:i}),(0,n.jsx)(t.AlertDialogDescription,{children:a})]}),(0,n.jsxs)(t.AlertDialogFooter,{children:[(0,n.jsx)(t.AlertDialogCancel,{children:`Cancel`}),(0,n.jsx)(t.AlertDialogAction,{className:`w-24`,onClick:s,children:r?(0,n.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:(0,n.jsx)(`div`,{className:`loader-spinner text-muted-foreground`})}):`Confirm`})]})]})});exports.ConfirmDialog=r;
2
2
  //# sourceMappingURL=confirm-dialog.cjs.map
@@ -1,2 +1,2 @@
1
- import"../utils-D9AH0PUV.js";import"../button-CnMfXTBU.js";import{AlertDialog as e,AlertDialogAction as t,AlertDialogCancel as n,AlertDialogContent as r,AlertDialogDescription as i,AlertDialogFooter as a,AlertDialogHeader as o,AlertDialogTitle as s}from"../alert-dialog-Dv0cgymS.js";import{jsx as c,jsxs as l}from"react/jsx-runtime";const u=({open:u,isLoading:d=!1,title:f,description:p,onOpenChange:m,onConfirm:h})=>c(e,{open:u,onOpenChange:m,children:l(r,{children:[l(o,{className:`gap-0`,children:[c(s,{children:f}),c(i,{children:p})]}),l(a,{children:[c(n,{children:`Cancel`}),c(t,{className:`w-24`,onClick:h,children:d?c(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:c(`div`,{className:`loader-spinner text-muted-foreground`})}):`Confirm`})]})]})});export{u as ConfirmDialog};
1
+ import"../utils-CU8e4Cfu.js";import"../button-BYBBUZAz.js";import{AlertDialog as e,AlertDialogAction as t,AlertDialogCancel as n,AlertDialogContent as r,AlertDialogDescription as i,AlertDialogFooter as a,AlertDialogHeader as o,AlertDialogTitle as s}from"../alert-dialog-CcgqDP8l.js";import{jsx as c,jsxs as l}from"react/jsx-runtime";const u=({open:u,isLoading:d=!1,title:f,description:p,onOpenChange:m,onConfirm:h})=>c(e,{open:u,onOpenChange:m,children:l(r,{children:[l(o,{className:`gap-0`,children:[c(s,{children:f}),c(i,{children:p})]}),l(a,{children:[c(n,{children:`Cancel`}),c(t,{className:`w-24`,onClick:h,children:d?c(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:c(`div`,{className:`loader-spinner text-muted-foreground`})}):`Confirm`})]})]})});export{u as ConfirmDialog};
2
2
  //# sourceMappingURL=confirm-dialog.js.map
@@ -1 +1 @@
1
- "use client";require(`../../../utils-BsjVK5EW.cjs`),require(`../../../tooltip-DLnAwybV.cjs`),require(`../../../button-BSGNpclh.cjs`),require(`../../../input-VZiryzkl.cjs`),require(`../../../separator-Cigaqna1.cjs`),require(`../../../skeleton-C-9PuX3p.cjs`);const e=require(`../../../sidebar-BbcOcECD.cjs`);exports.Sidebar=e.Sidebar,exports.SidebarContent=e.SidebarContent,exports.SidebarFooter=e.SidebarFooter,exports.SidebarGroup=e.SidebarGroup,exports.SidebarGroupAction=e.SidebarGroupAction,exports.SidebarGroupContent=e.SidebarGroupContent,exports.SidebarGroupLabel=e.SidebarGroupLabel,exports.SidebarHeader=e.SidebarHeader,exports.SidebarInput=e.SidebarInput,exports.SidebarInset=e.SidebarInset,exports.SidebarMenu=e.SidebarMenu,exports.SidebarMenuAction=e.SidebarMenuAction,exports.SidebarMenuBadge=e.SidebarMenuBadge,exports.SidebarMenuButton=e.SidebarMenuButton,exports.SidebarMenuItem=e.SidebarMenuItem,exports.SidebarMenuSkeleton=e.SidebarMenuSkeleton,exports.SidebarMenuSub=e.SidebarMenuSub,exports.SidebarMenuSubButton=e.SidebarMenuSubButton,exports.SidebarMenuSubItem=e.SidebarMenuSubItem,exports.SidebarProvider=e.SidebarProvider,exports.SidebarRail=e.SidebarRail,exports.SidebarSeparator=e.SidebarSeparator,exports.SidebarTrigger=e.SidebarTrigger,exports.useSidebar=e.useSidebar;
1
+ "use client";require(`../../../utils-Bzhp4BOr.cjs`),require(`../../../tooltip-_jrSMy9D.cjs`),require(`../../../button-lm4QtGky.cjs`),require(`../../../input-M7zUJduT.cjs`),require(`../../../separator-CHpoDNnH.cjs`),require(`../../../skeleton-Bhdmd_Wk.cjs`);const e=require(`../../../sidebar-CEixxF5q.cjs`);exports.Sidebar=e.Sidebar,exports.SidebarContent=e.SidebarContent,exports.SidebarFooter=e.SidebarFooter,exports.SidebarGroup=e.SidebarGroup,exports.SidebarGroupAction=e.SidebarGroupAction,exports.SidebarGroupContent=e.SidebarGroupContent,exports.SidebarGroupLabel=e.SidebarGroupLabel,exports.SidebarHeader=e.SidebarHeader,exports.SidebarInput=e.SidebarInput,exports.SidebarInset=e.SidebarInset,exports.SidebarMenu=e.SidebarMenu,exports.SidebarMenuAction=e.SidebarMenuAction,exports.SidebarMenuBadge=e.SidebarMenuBadge,exports.SidebarMenuButton=e.SidebarMenuButton,exports.SidebarMenuItem=e.SidebarMenuItem,exports.SidebarMenuSkeleton=e.SidebarMenuSkeleton,exports.SidebarMenuSub=e.SidebarMenuSub,exports.SidebarMenuSubButton=e.SidebarMenuSubButton,exports.SidebarMenuSubItem=e.SidebarMenuSubItem,exports.SidebarProvider=e.SidebarProvider,exports.SidebarRail=e.SidebarRail,exports.SidebarSeparator=e.SidebarSeparator,exports.SidebarTrigger=e.SidebarTrigger,exports.useSidebar=e.useSidebar;
@@ -1,7 +1,7 @@
1
- import { Button } from "../../../button-ghXW1WTr.cjs";
2
- import { Input } from "../../../input-y_n-XGys.cjs";
3
- import { Separator } from "../../../separator-ClGBPiYE.cjs";
4
- import { TooltipContent } from "../../../tooltip-cisSpCHG.cjs";
1
+ import { Button } from "../../../button-l6-1RjHx.cjs";
2
+ import { Input } from "../../../input-syir1opU.cjs";
3
+ import { Separator } from "../../../separator-Cin_M3mg.cjs";
4
+ import { TooltipContent } from "../../../tooltip-BJH-k8Rl.cjs";
5
5
  import * as react_jsx_runtime236 from "react/jsx-runtime";
6
6
  import React from "react";
7
7
  import * as class_variance_authority_types6 from "class-variance-authority/types";
@@ -1,10 +1,10 @@
1
- import { Button } from "../../../button-CPBLm_02.js";
2
- import { Input } from "../../../input-CUDclgoU.js";
3
- import { Separator } from "../../../separator-BLYi41aC.js";
4
- import { TooltipContent } from "../../../tooltip-Bk8VwHdM.js";
1
+ import { Button } from "../../../button-Db111bE3.js";
2
+ import { Input } from "../../../input-on1u3kSJ.js";
3
+ import { Separator } from "../../../separator-CETN8Z8q.js";
4
+ import { TooltipContent } from "../../../tooltip-BJxSDcLX.js";
5
5
  import React from "react";
6
- import * as react_jsx_runtime235 from "react/jsx-runtime";
7
6
  import { VariantProps } from "class-variance-authority";
7
+ import * as react_jsx_runtime236 from "react/jsx-runtime";
8
8
  import * as class_variance_authority_types6 from "class-variance-authority/types";
9
9
 
10
10
  //#region packages/components/dialogs/detail-dialog/component/sidebar.d.ts
@@ -29,7 +29,7 @@ declare function SidebarProvider({
29
29
  defaultOpen?: boolean;
30
30
  open?: boolean;
31
31
  onOpenChange?: (open: boolean) => void;
32
- }): react_jsx_runtime235.JSX.Element;
32
+ }): react_jsx_runtime236.JSX.Element;
33
33
  declare function Sidebar({
34
34
  side,
35
35
  variant,
@@ -41,70 +41,70 @@ declare function Sidebar({
41
41
  side?: 'left' | 'right';
42
42
  variant?: 'sidebar' | 'floating' | 'inset';
43
43
  collapsible?: 'offcanvas' | 'icon' | 'none';
44
- }): react_jsx_runtime235.JSX.Element;
44
+ }): react_jsx_runtime236.JSX.Element;
45
45
  declare function SidebarTrigger({
46
46
  className,
47
47
  onClick,
48
48
  ...props
49
- }: React.ComponentProps<typeof Button>): react_jsx_runtime235.JSX.Element;
49
+ }: React.ComponentProps<typeof Button>): react_jsx_runtime236.JSX.Element;
50
50
  declare function SidebarRail({
51
51
  className,
52
52
  ...props
53
- }: React.ComponentProps<'button'>): react_jsx_runtime235.JSX.Element;
53
+ }: React.ComponentProps<'button'>): react_jsx_runtime236.JSX.Element;
54
54
  declare function SidebarInset({
55
55
  className,
56
56
  ...props
57
- }: React.ComponentProps<'main'>): react_jsx_runtime235.JSX.Element;
57
+ }: React.ComponentProps<'main'>): react_jsx_runtime236.JSX.Element;
58
58
  declare function SidebarInput({
59
59
  className,
60
60
  ...props
61
- }: React.ComponentProps<typeof Input>): react_jsx_runtime235.JSX.Element;
61
+ }: React.ComponentProps<typeof Input>): react_jsx_runtime236.JSX.Element;
62
62
  declare function SidebarHeader({
63
63
  className,
64
64
  ...props
65
- }: React.ComponentProps<'div'>): react_jsx_runtime235.JSX.Element;
65
+ }: React.ComponentProps<'div'>): react_jsx_runtime236.JSX.Element;
66
66
  declare function SidebarFooter({
67
67
  className,
68
68
  ...props
69
- }: React.ComponentProps<'div'>): react_jsx_runtime235.JSX.Element;
69
+ }: React.ComponentProps<'div'>): react_jsx_runtime236.JSX.Element;
70
70
  declare function SidebarSeparator({
71
71
  className,
72
72
  ...props
73
- }: React.ComponentProps<typeof Separator>): react_jsx_runtime235.JSX.Element;
73
+ }: React.ComponentProps<typeof Separator>): react_jsx_runtime236.JSX.Element;
74
74
  declare function SidebarContent({
75
75
  className,
76
76
  ...props
77
- }: React.ComponentProps<'div'>): react_jsx_runtime235.JSX.Element;
77
+ }: React.ComponentProps<'div'>): react_jsx_runtime236.JSX.Element;
78
78
  declare function SidebarGroup({
79
79
  className,
80
80
  ...props
81
- }: React.ComponentProps<'div'>): react_jsx_runtime235.JSX.Element;
81
+ }: React.ComponentProps<'div'>): react_jsx_runtime236.JSX.Element;
82
82
  declare function SidebarGroupLabel({
83
83
  className,
84
84
  asChild,
85
85
  ...props
86
86
  }: React.ComponentProps<'div'> & {
87
87
  asChild?: boolean;
88
- }): react_jsx_runtime235.JSX.Element;
88
+ }): react_jsx_runtime236.JSX.Element;
89
89
  declare function SidebarGroupAction({
90
90
  className,
91
91
  asChild,
92
92
  ...props
93
93
  }: React.ComponentProps<'button'> & {
94
94
  asChild?: boolean;
95
- }): react_jsx_runtime235.JSX.Element;
95
+ }): react_jsx_runtime236.JSX.Element;
96
96
  declare function SidebarGroupContent({
97
97
  className,
98
98
  ...props
99
- }: React.ComponentProps<'div'>): react_jsx_runtime235.JSX.Element;
99
+ }: React.ComponentProps<'div'>): react_jsx_runtime236.JSX.Element;
100
100
  declare function SidebarMenu({
101
101
  className,
102
102
  ...props
103
- }: React.ComponentProps<'ul'>): react_jsx_runtime235.JSX.Element;
103
+ }: React.ComponentProps<'ul'>): react_jsx_runtime236.JSX.Element;
104
104
  declare function SidebarMenuItem({
105
105
  className,
106
106
  ...props
107
- }: React.ComponentProps<'li'>): react_jsx_runtime235.JSX.Element;
107
+ }: React.ComponentProps<'li'>): react_jsx_runtime236.JSX.Element;
108
108
  declare const sidebarMenuButtonVariants: (props?: ({
109
109
  variant?: "default" | "outline" | null | undefined;
110
110
  size?: "sm" | "lg" | "default" | null | undefined;
@@ -121,7 +121,7 @@ declare function SidebarMenuButton({
121
121
  asChild?: boolean;
122
122
  isActive?: boolean;
123
123
  tooltip?: string | React.ComponentProps<typeof TooltipContent>;
124
- } & VariantProps<typeof sidebarMenuButtonVariants>): react_jsx_runtime235.JSX.Element;
124
+ } & VariantProps<typeof sidebarMenuButtonVariants>): react_jsx_runtime236.JSX.Element;
125
125
  declare function SidebarMenuAction({
126
126
  className,
127
127
  asChild,
@@ -130,26 +130,26 @@ declare function SidebarMenuAction({
130
130
  }: React.ComponentProps<'button'> & {
131
131
  asChild?: boolean;
132
132
  showOnHover?: boolean;
133
- }): react_jsx_runtime235.JSX.Element;
133
+ }): react_jsx_runtime236.JSX.Element;
134
134
  declare function SidebarMenuBadge({
135
135
  className,
136
136
  ...props
137
- }: React.ComponentProps<'div'>): react_jsx_runtime235.JSX.Element;
137
+ }: React.ComponentProps<'div'>): react_jsx_runtime236.JSX.Element;
138
138
  declare function SidebarMenuSkeleton({
139
139
  className,
140
140
  showIcon,
141
141
  ...props
142
142
  }: React.ComponentProps<'div'> & {
143
143
  showIcon?: boolean;
144
- }): react_jsx_runtime235.JSX.Element;
144
+ }): react_jsx_runtime236.JSX.Element;
145
145
  declare function SidebarMenuSub({
146
146
  className,
147
147
  ...props
148
- }: React.ComponentProps<'ul'>): react_jsx_runtime235.JSX.Element;
148
+ }: React.ComponentProps<'ul'>): react_jsx_runtime236.JSX.Element;
149
149
  declare function SidebarMenuSubItem({
150
150
  className,
151
151
  ...props
152
- }: React.ComponentProps<'li'>): react_jsx_runtime235.JSX.Element;
152
+ }: React.ComponentProps<'li'>): react_jsx_runtime236.JSX.Element;
153
153
  declare function SidebarMenuSubButton({
154
154
  asChild,
155
155
  size,
@@ -160,7 +160,7 @@ declare function SidebarMenuSubButton({
160
160
  asChild?: boolean;
161
161
  size?: 'sm' | 'md';
162
162
  isActive?: boolean;
163
- }): react_jsx_runtime235.JSX.Element;
163
+ }): react_jsx_runtime236.JSX.Element;
164
164
  //#endregion
165
165
  export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar };
166
166
  //# sourceMappingURL=sidebar.d.ts.map
@@ -1 +1 @@
1
- "use client";import"../../../utils-D9AH0PUV.js";import"../../../tooltip-B8KdfOeT.js";import"../../../button-CnMfXTBU.js";import"../../../input--6vqz8UI.js";import"../../../separator-aLdI4FQe.js";import"../../../skeleton-sZeupFu_.js";import{Sidebar as e,SidebarContent as t,SidebarFooter as n,SidebarGroup as r,SidebarGroupAction as i,SidebarGroupContent as a,SidebarGroupLabel as o,SidebarHeader as s,SidebarInput as c,SidebarInset as l,SidebarMenu as u,SidebarMenuAction as d,SidebarMenuBadge as f,SidebarMenuButton as p,SidebarMenuItem as m,SidebarMenuSkeleton as h,SidebarMenuSub as g,SidebarMenuSubButton as _,SidebarMenuSubItem as v,SidebarProvider as y,SidebarRail as b,SidebarSeparator as x,SidebarTrigger as S,useSidebar as C}from"../../../sidebar-BDDG3PeD.js";export{e as Sidebar,t as SidebarContent,n as SidebarFooter,r as SidebarGroup,i as SidebarGroupAction,a as SidebarGroupContent,o as SidebarGroupLabel,s as SidebarHeader,c as SidebarInput,l as SidebarInset,u as SidebarMenu,d as SidebarMenuAction,f as SidebarMenuBadge,p as SidebarMenuButton,m as SidebarMenuItem,h as SidebarMenuSkeleton,g as SidebarMenuSub,_ as SidebarMenuSubButton,v as SidebarMenuSubItem,y as SidebarProvider,b as SidebarRail,x as SidebarSeparator,S as SidebarTrigger,C as useSidebar};
1
+ "use client";import"../../../utils-CU8e4Cfu.js";import"../../../tooltip-BwVo3rqL.js";import"../../../button-BYBBUZAz.js";import"../../../input-1jCjvrb7.js";import"../../../separator-iF5M5XZY.js";import"../../../skeleton-r2YtsBgC.js";import{Sidebar as e,SidebarContent as t,SidebarFooter as n,SidebarGroup as r,SidebarGroupAction as i,SidebarGroupContent as a,SidebarGroupLabel as o,SidebarHeader as s,SidebarInput as c,SidebarInset as l,SidebarMenu as u,SidebarMenuAction as d,SidebarMenuBadge as f,SidebarMenuButton as p,SidebarMenuItem as m,SidebarMenuSkeleton as h,SidebarMenuSub as g,SidebarMenuSubButton as _,SidebarMenuSubItem as v,SidebarProvider as y,SidebarRail as b,SidebarSeparator as x,SidebarTrigger as S,useSidebar as C}from"../../../sidebar-CtHy96MF.js";export{e as Sidebar,t as SidebarContent,n as SidebarFooter,r as SidebarGroup,i as SidebarGroupAction,a as SidebarGroupContent,o as SidebarGroupLabel,s as SidebarHeader,c as SidebarInput,l as SidebarInset,u as SidebarMenu,d as SidebarMenuAction,f as SidebarMenuBadge,p as SidebarMenuButton,m as SidebarMenuItem,h as SidebarMenuSkeleton,g as SidebarMenuSub,_ as SidebarMenuSubButton,v as SidebarMenuSubItem,y as SidebarProvider,b as SidebarRail,x as SidebarSeparator,S as SidebarTrigger,C as useSidebar};
@@ -1,2 +1,2 @@
1
- const e=require(`../../chunk-CUT6urMc.cjs`);require(`../../utils-BsjVK5EW.cjs`);const t=require(`../../flex-CNA_SId-.cjs`),n=require(`../../date-nd8WkPlx.cjs`);require(`../../tooltip-DLnAwybV.cjs`),require(`../../button-BSGNpclh.cjs`);const r=require(`../../dialog-C4oHnJNN.cjs`);require(`../../input-VZiryzkl.cjs`);const i=require(`../../title-6Uosk2b4.cjs`);require(`../../separator-Cigaqna1.cjs`),require(`../../skeleton-C-9PuX3p.cjs`);const a=require(`../../sidebar-BbcOcECD.cjs`),o=e.__toESM(require(`react/jsx-runtime`)),s=e.__toESM(require(`lucide-react`)),c=()=>(0,o.jsxs)(r.DialogHeader,{className:`sr-only`,children:[(0,o.jsx)(r.DialogTitle,{className:`sr-only`}),(0,o.jsx)(r.DialogDescription,{className:`sr-only`})]}),l=({children:e})=>(0,o.jsx)(`main`,{className:`relative flex h-full flex-1 flex-col`,children:(0,o.jsx)(`div`,{className:`absolute inset-0 flex size-full flex-col`,children:e})}),u=({title:e,createdAt:r})=>(0,o.jsxs)(`header`,{className:`border-border-weak relative flex items-start gap-x-2.5 border-b px-2 py-2.5`,children:[(0,o.jsx)(a.SidebarTrigger,{}),(0,o.jsxs)(t.Flex,{vertical:!0,align:`start`,padding:`none`,className:`flex-1`,children:[(0,o.jsx)(i.Title,{level:5,children:e||`Detail Dialog`}),(0,o.jsxs)(t.Flex,{padding:`none`,className:`text-muted-foreground`,children:[(0,o.jsx)(s.CalendarIcon,{size:12}),!!r&&(0,o.jsx)(n.DateDisplay,{showTime:!0,showHoliday:!0,date:r,format:`full`})]})]})]}),d=({children:e})=>(0,o.jsx)(r.DialogContent,{className:`relative h-full max-h-[90svh] overflow-hidden rounded-lg border-none p-0 sm:max-w-[calc(100svw-2rem)]`,onInteractOutside:e=>{e.preventDefault(),e.stopPropagation()},children:e}),f=({title:e,sidebarFooter:t,children:n})=>(0,o.jsxs)(a.Sidebar,{collapsible:`icon`,className:`border-border-weak hidden border-r md:flex`,children:[(0,o.jsx)(a.SidebarHeader,{children:(0,o.jsx)(a.SidebarMenu,{children:(0,o.jsx)(a.SidebarMenuItem,{children:(0,o.jsxs)(a.SidebarMenuButton,{size:`lg`,tabIndex:-1,children:[(0,o.jsx)(`div`,{className:`bg-sidebar-primary text-sidebar-primary-foreground flex aspect-square size-8 items-center justify-center rounded-lg`,children:(0,o.jsx)(s.CatIcon,{size:16})}),(0,o.jsxs)(`div`,{className:`grid flex-1 text-left text-sm leading-tight`,children:[(0,o.jsx)(`span`,{className:`truncate font-medium`,children:e||`Detail Dialog`}),(0,o.jsx)(`span`,{className:`truncate text-xs`,children:`Lunas Enterprise`})]})]})})})}),(0,o.jsx)(a.SidebarContent,{children:(0,o.jsx)(a.SidebarGroup,{children:n})}),t&&(0,o.jsx)(a.SidebarFooter,{children:t})]}),p=({open:e,isLoading:n=!1,sidebarTitle:i,sidebar:s,sidebarFooter:p,title:m,createdAt:h,onOpenChange:g,children:_})=>(0,o.jsx)(r.Dialog,{open:e,onOpenChange:g,children:(0,o.jsxs)(d,{children:[(0,o.jsx)(c,{}),(0,o.jsxs)(a.SidebarProvider,{className:`h-full min-h-[85svh] items-start`,children:[(0,o.jsx)(f,{title:i,sidebarFooter:p,children:s}),(0,o.jsxs)(l,{children:[(0,o.jsx)(u,{title:m,createdAt:h}),n?(0,o.jsx)(t.Flex,{justify:`center`,className:`bg-muted-muted/20 size-full`,children:(0,o.jsx)(`div`,{className:`loader`})}):(0,o.jsx)(`section`,{className:`bg-muted-muted/20 relative flex-1 overflow-y-auto inset-shadow-sm`,children:_})]})]})]})});exports.DetailDialog=p;
1
+ const e=require(`../../chunk-CUT6urMc.cjs`);require(`../../utils-Bzhp4BOr.cjs`);const t=require(`../../flex-Bh3PRuM_.cjs`),n=require(`../../date-Ci9rmG-_.cjs`);require(`../../tooltip-_jrSMy9D.cjs`),require(`../../button-lm4QtGky.cjs`);const r=require(`../../dialog-DdHuwZMB.cjs`);require(`../../input-M7zUJduT.cjs`);const i=require(`../../title-LB4M5iE_.cjs`);require(`../../separator-CHpoDNnH.cjs`),require(`../../skeleton-Bhdmd_Wk.cjs`);const a=require(`../../sidebar-CEixxF5q.cjs`),o=e.__toESM(require(`react/jsx-runtime`)),s=e.__toESM(require(`lucide-react`)),c=()=>(0,o.jsxs)(r.DialogHeader,{className:`sr-only`,children:[(0,o.jsx)(r.DialogTitle,{className:`sr-only`}),(0,o.jsx)(r.DialogDescription,{className:`sr-only`})]}),l=({children:e})=>(0,o.jsx)(`main`,{className:`relative flex h-full flex-1 flex-col`,children:(0,o.jsx)(`div`,{className:`absolute inset-0 flex size-full flex-col`,children:e})}),u=({title:e,createdAt:r})=>(0,o.jsxs)(`header`,{className:`border-border-weak relative flex items-start gap-x-2.5 border-b px-2 py-2.5`,children:[(0,o.jsx)(a.SidebarTrigger,{}),(0,o.jsxs)(t.Flex,{vertical:!0,align:`start`,padding:`none`,className:`flex-1`,children:[(0,o.jsx)(i.Title,{level:5,children:e||`Detail Dialog`}),(0,o.jsxs)(t.Flex,{padding:`none`,className:`text-muted-foreground`,children:[(0,o.jsx)(s.CalendarIcon,{size:12}),!!r&&(0,o.jsx)(n.DateDisplay,{showTime:!0,showHoliday:!0,date:r,format:`full`})]})]})]}),d=({children:e})=>(0,o.jsx)(r.DialogContent,{className:`relative h-full max-h-[90svh] overflow-hidden rounded-lg border-none p-0 sm:max-w-[calc(100svw-2rem)]`,onInteractOutside:e=>{e.preventDefault(),e.stopPropagation()},children:e}),f=({title:e,sidebarFooter:t,children:n})=>(0,o.jsxs)(a.Sidebar,{collapsible:`icon`,className:`border-border-weak hidden border-r md:flex`,children:[(0,o.jsx)(a.SidebarHeader,{children:(0,o.jsx)(a.SidebarMenu,{children:(0,o.jsx)(a.SidebarMenuItem,{children:(0,o.jsxs)(a.SidebarMenuButton,{size:`lg`,tabIndex:-1,children:[(0,o.jsx)(`div`,{className:`bg-sidebar-primary text-sidebar-primary-foreground flex aspect-square size-8 items-center justify-center rounded-lg`,children:(0,o.jsx)(s.CatIcon,{size:16})}),(0,o.jsxs)(`div`,{className:`grid flex-1 text-left text-sm leading-tight`,children:[(0,o.jsx)(`span`,{className:`truncate font-medium`,children:e||`Detail Dialog`}),(0,o.jsx)(`span`,{className:`truncate text-xs`,children:`Lunas Enterprise`})]})]})})})}),(0,o.jsx)(a.SidebarContent,{children:(0,o.jsx)(a.SidebarGroup,{children:n})}),t&&(0,o.jsx)(a.SidebarFooter,{children:t})]}),p=({open:e,isLoading:n=!1,sidebarTitle:i,sidebar:s,sidebarFooter:p,title:m,createdAt:h,onOpenChange:g,children:_})=>(0,o.jsx)(r.Dialog,{open:e,onOpenChange:g,children:(0,o.jsxs)(d,{children:[(0,o.jsx)(c,{}),(0,o.jsxs)(a.SidebarProvider,{className:`h-full min-h-[85svh] items-start`,children:[(0,o.jsx)(f,{title:i,sidebarFooter:p,children:s}),(0,o.jsxs)(l,{children:[(0,o.jsx)(u,{title:m,createdAt:h}),n?(0,o.jsx)(t.Flex,{justify:`center`,className:`bg-muted-muted/20 size-full`,children:(0,o.jsx)(`div`,{className:`loader`})}):(0,o.jsx)(`section`,{className:`bg-muted-muted/20 relative flex-1 overflow-y-auto inset-shadow-sm`,children:_})]})]})]})});exports.DetailDialog=p;
2
2
  //# sourceMappingURL=index.cjs.map