@customafk/lunas-ui 0.1.93 → 0.1.94

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 (485) hide show
  1. package/dist/{avatar-DjCXs3FZ.mjs → avatar-DReNH6rV.mjs} +1 -1
  2. package/dist/{avatar-DjCXs3FZ.mjs.map → avatar-DReNH6rV.mjs.map} +1 -1
  3. package/dist/{avatar-dAu1c0bC.cjs → avatar-aVxo69zP.cjs} +1 -1
  4. package/dist/{avatar-dAu1c0bC.cjs.map → avatar-aVxo69zP.cjs.map} +1 -1
  5. package/dist/badge-B4Fa7-J3.mjs +2 -0
  6. package/dist/badge-B4Fa7-J3.mjs.map +1 -0
  7. package/dist/badge-cvLJyaCA.cjs +2 -0
  8. package/dist/badge-cvLJyaCA.cjs.map +1 -0
  9. package/dist/button-8Snjc8iT.cjs +2 -0
  10. package/dist/{button-BLYTfCyl.cjs.map → button-8Snjc8iT.cjs.map} +1 -1
  11. package/dist/{button-CFDexiLY.d.cts → button-CHTjm4n8.d.cts} +8 -8
  12. package/dist/button-C_yZHudZ.mjs +2 -0
  13. package/dist/{button-BlQN92Jt.mjs.map → button-C_yZHudZ.mjs.map} +1 -1
  14. package/dist/{button-CePXFHnA.d.mts → button-c61Vw1Ns.d.mts} +8 -8
  15. package/dist/{button.variants-Bo2vzQp5.cjs → button.variants-8QOIR433.cjs} +1 -1
  16. package/dist/{button.variants-Bo2vzQp5.cjs.map → button.variants-8QOIR433.cjs.map} +1 -1
  17. package/dist/{button.variants-DBOg9vCn.mjs → button.variants-CL2rLGYO.mjs} +1 -1
  18. package/dist/{button.variants-DBOg9vCn.mjs.map → button.variants-CL2rLGYO.mjs.map} +1 -1
  19. package/dist/calendar-DgLMLD8R.cjs +2 -0
  20. package/dist/calendar-DgLMLD8R.cjs.map +1 -0
  21. package/dist/calendar-e9Pu8pNj.mjs +2 -0
  22. package/dist/calendar-e9Pu8pNj.mjs.map +1 -0
  23. package/dist/cards/grid-product-card.cjs +1 -1
  24. package/dist/cards/grid-product-card.cjs.map +1 -1
  25. package/dist/cards/grid-product-card.mjs +1 -1
  26. package/dist/cards/grid-product-card.mjs.map +1 -1
  27. package/dist/cards/product-card.cjs +1 -1
  28. package/dist/cards/product-card.cjs.map +1 -1
  29. package/dist/cards/product-card.mjs +1 -1
  30. package/dist/cards/product-card.mjs.map +1 -1
  31. package/dist/cards/simple-card.cjs +1 -1
  32. package/dist/cards/simple-card.cjs.map +1 -1
  33. package/dist/cards/simple-card.d.mts +2 -2
  34. package/dist/cards/simple-card.mjs +1 -1
  35. package/dist/cards/simple-card.mjs.map +1 -1
  36. package/dist/checkbox-Bg2FiuQw.mjs +2 -0
  37. package/dist/checkbox-Bg2FiuQw.mjs.map +1 -0
  38. package/dist/checkbox-C0fSWwmD.cjs +2 -0
  39. package/dist/checkbox-C0fSWwmD.cjs.map +1 -0
  40. package/dist/{close-rM-Ao1Gf.cjs → close-D_Ge7gnP.cjs} +1 -1
  41. package/dist/{close-rM-Ao1Gf.cjs.map → close-D_Ge7gnP.cjs.map} +1 -1
  42. package/dist/{close-BSZehrQx.mjs → close-DfuHB7kq.mjs} +1 -1
  43. package/dist/{close-BSZehrQx.mjs.map → close-DfuHB7kq.mjs.map} +1 -1
  44. package/dist/{command-CzE8NTMm.cjs → command-BciJADha.cjs} +2 -2
  45. package/dist/{command-CzE8NTMm.cjs.map → command-BciJADha.cjs.map} +1 -1
  46. package/dist/{command-OYUOsPvN.mjs → command-DSvEsWG8.mjs} +2 -2
  47. package/dist/{command-OYUOsPvN.mjs.map → command-DSvEsWG8.mjs.map} +1 -1
  48. package/dist/data-display/country.cjs +1 -1
  49. package/dist/data-display/country.d.cts +1 -1
  50. package/dist/data-display/country.d.mts +1 -1
  51. package/dist/data-display/country.mjs +1 -1
  52. package/dist/data-display/data-list.cjs +1 -1
  53. package/dist/data-display/data-list.mjs +1 -1
  54. package/dist/data-display/date-tooltip.cjs +1 -1
  55. package/dist/data-display/date-tooltip.mjs +1 -1
  56. package/dist/data-display/date.cjs +1 -1
  57. package/dist/data-display/date.mjs +1 -1
  58. package/dist/data-display/empty.cjs +1 -1
  59. package/dist/data-display/empty.d.cts +2 -2
  60. package/dist/data-display/empty.mjs +1 -1
  61. package/dist/data-display/name.cjs +1 -1
  62. package/dist/data-display/name.mjs +1 -1
  63. package/dist/data-display/phone-number.cjs +1 -1
  64. package/dist/data-display/phone-number.mjs +1 -1
  65. package/dist/data-display/role-badge.cjs +1 -1
  66. package/dist/data-display/role-badge.d.cts +1 -1
  67. package/dist/data-display/role-badge.d.mts +1 -1
  68. package/dist/data-display/role-badge.mjs +1 -1
  69. package/dist/data-display/statistic.cjs +1 -1
  70. package/dist/data-display/statistic.d.cts +2 -2
  71. package/dist/data-display/statistic.d.mts +2 -2
  72. package/dist/data-display/statistic.mjs +1 -1
  73. package/dist/data-display/user.cjs +1 -1
  74. package/dist/data-display/user.mjs +1 -1
  75. package/dist/{date-Bznq86tY.mjs → date-CK7XBqG9.mjs} +2 -2
  76. package/dist/{date-Bznq86tY.mjs.map → date-CK7XBqG9.mjs.map} +1 -1
  77. package/dist/{date-CuRT4hmU.cjs → date-CTmoK8tv.cjs} +2 -2
  78. package/dist/{date-CuRT4hmU.cjs.map → date-CTmoK8tv.cjs.map} +1 -1
  79. package/dist/{dialog-DigNrfAO.d.mts → dialog-CyLgmqny.d.cts} +12 -12
  80. package/dist/dialog-D5TBBX99.cjs +2 -0
  81. package/dist/dialog-D5TBBX99.cjs.map +1 -0
  82. package/dist/dialog-DSvmcuYl.mjs +2 -0
  83. package/dist/dialog-DSvmcuYl.mjs.map +1 -0
  84. package/dist/{dialog-UWrYag-8.d.cts → dialog-DdkuhWsq.d.mts} +12 -12
  85. package/dist/dialogs/confirm-dialog.cjs +1 -1
  86. package/dist/dialogs/confirm-dialog.cjs.map +1 -1
  87. package/dist/dialogs/confirm-dialog.mjs +1 -1
  88. package/dist/dialogs/confirm-dialog.mjs.map +1 -1
  89. package/dist/dialogs/detail-dialog/components/sidebar.cjs +1 -1
  90. package/dist/dialogs/detail-dialog/components/sidebar.d.cts +25 -25
  91. package/dist/dialogs/detail-dialog/components/sidebar.d.mts +27 -27
  92. package/dist/dialogs/detail-dialog/components/sidebar.mjs +1 -1
  93. package/dist/dialogs/detail-dialog/index.cjs +1 -1
  94. package/dist/dialogs/detail-dialog/index.mjs +1 -1
  95. package/dist/dialogs/error-dialog.cjs +1 -1
  96. package/dist/dialogs/error-dialog.cjs.map +1 -1
  97. package/dist/dialogs/error-dialog.mjs +1 -1
  98. package/dist/dialogs/error-dialog.mjs.map +1 -1
  99. package/dist/dialogs/loading-dialog.cjs +1 -1
  100. package/dist/dialogs/loading-dialog.cjs.map +1 -1
  101. package/dist/dialogs/loading-dialog.mjs +1 -1
  102. package/dist/dialogs/loading-dialog.mjs.map +1 -1
  103. package/dist/dist-BudM04oj.cjs +2 -0
  104. package/dist/{dist-BqoK5OAd.cjs.map → dist-BudM04oj.cjs.map} +1 -1
  105. package/dist/dist-CvmzZ_6C.mjs +2 -0
  106. package/dist/{dist-D2ydYRc4.mjs.map → dist-CvmzZ_6C.mjs.map} +1 -1
  107. package/dist/{dropdown-menu-BwcDzb4B.mjs → dropdown-menu-B8GUTfTp.mjs} +1 -1
  108. package/dist/{dropdown-menu-BwcDzb4B.mjs.map → dropdown-menu-B8GUTfTp.mjs.map} +1 -1
  109. package/dist/{dropdown-menu-5Zyw5t_J.cjs → dropdown-menu-BuyuU6uF.cjs} +1 -1
  110. package/dist/{dropdown-menu-5Zyw5t_J.cjs.map → dropdown-menu-BuyuU6uF.cjs.map} +1 -1
  111. package/dist/features/descriptions/index.cjs +1 -1
  112. package/dist/features/descriptions/index.d.cts +4 -4
  113. package/dist/features/descriptions/index.d.mts +4 -4
  114. package/dist/features/descriptions/index.mjs +1 -1
  115. package/dist/features/search-modal/index.cjs +1 -1
  116. package/dist/features/search-modal/index.cjs.map +1 -1
  117. package/dist/features/search-modal/index.d.cts +2 -2
  118. package/dist/features/search-modal/index.d.mts +2 -2
  119. package/dist/features/search-modal/index.mjs +1 -1
  120. package/dist/features/search-modal/index.mjs.map +1 -1
  121. package/dist/features/tables/index.cjs +1 -1
  122. package/dist/features/tables/index.cjs.map +1 -1
  123. package/dist/features/tables/index.d.cts +152 -31
  124. package/dist/features/tables/index.d.mts +152 -31
  125. package/dist/features/tables/index.mjs +1 -1
  126. package/dist/features/tables/index.mjs.map +1 -1
  127. package/dist/features/tanstack-form/index.cjs +1 -1
  128. package/dist/features/tanstack-form/index.cjs.map +1 -1
  129. package/dist/features/tanstack-form/index.d.cts +280 -280
  130. package/dist/features/tanstack-form/index.d.mts +280 -280
  131. package/dist/features/tanstack-form/index.mjs +1 -1
  132. package/dist/features/tanstack-form/index.mjs.map +1 -1
  133. package/dist/{flex-_tvOU0u1.mjs → flex-BP8sTi70.mjs} +2 -2
  134. package/dist/{flex-_tvOU0u1.mjs.map → flex-BP8sTi70.mjs.map} +1 -1
  135. package/dist/{flex-DGPQRbN6.cjs → flex-twCgWyx1.cjs} +2 -2
  136. package/dist/{flex-DGPQRbN6.cjs.map → flex-twCgWyx1.cjs.map} +1 -1
  137. package/dist/heading--VmdIi7C.mjs +2 -0
  138. package/dist/heading--VmdIi7C.mjs.map +1 -0
  139. package/dist/heading-BEm5CCSE.cjs +2 -0
  140. package/dist/heading-BEm5CCSE.cjs.map +1 -0
  141. package/dist/image-CS_Q0WA7.mjs +2 -0
  142. package/dist/{image-Dgxtk54D.mjs.map → image-CS_Q0WA7.mjs.map} +1 -1
  143. package/dist/image-DuFv8sPr.cjs +2 -0
  144. package/dist/{image-D2PTBG_7.cjs.map → image-DuFv8sPr.cjs.map} +1 -1
  145. package/dist/input-BFWWaN-v.cjs +2 -0
  146. package/dist/input-BFWWaN-v.cjs.map +1 -0
  147. package/dist/input-BMz2evzs.d.mts +25 -0
  148. package/dist/input-DBtIgQB6.mjs +2 -0
  149. package/dist/input-DBtIgQB6.mjs.map +1 -0
  150. package/dist/input-mGRGirZ_.d.cts +25 -0
  151. package/dist/{label-D6vHFlHX.cjs → label-BzfsTrVt.cjs} +1 -1
  152. package/dist/{label-D6vHFlHX.cjs.map → label-BzfsTrVt.cjs.map} +1 -1
  153. package/dist/{label-DW6shAXZ.mjs → label-Dqr8nxWi.mjs} +1 -1
  154. package/dist/{label-DW6shAXZ.mjs.map → label-Dqr8nxWi.mjs.map} +1 -1
  155. package/dist/layouts/cms-layout/index.cjs +1 -1
  156. package/dist/layouts/cms-layout/index.mjs +1 -1
  157. package/dist/layouts/flex.cjs +1 -1
  158. package/dist/layouts/flex.d.cts +5 -5
  159. package/dist/layouts/flex.d.mts +6 -6
  160. package/dist/layouts/flex.mjs +1 -1
  161. package/dist/layouts/payment-layout/index.cjs +1 -1
  162. package/dist/layouts/payment-layout/index.mjs +1 -1
  163. package/dist/pages/FeatureDeveloping.cjs +1 -1
  164. package/dist/pages/FeatureDeveloping.d.cts +2 -2
  165. package/dist/pages/FeatureDeveloping.d.mts +2 -2
  166. package/dist/pages/FeatureDeveloping.mjs +1 -1
  167. package/dist/pages/FeatureFixing.cjs +1 -1
  168. package/dist/pages/FeatureFixing.d.cts +2 -2
  169. package/dist/pages/FeatureFixing.d.mts +2 -2
  170. package/dist/pages/FeatureFixing.mjs +1 -1
  171. package/dist/pages/NotAuthorized.cjs +1 -1
  172. package/dist/pages/NotAuthorized.d.cts +2 -2
  173. package/dist/pages/NotAuthorized.d.mts +2 -2
  174. package/dist/pages/NotAuthorized.mjs +1 -1
  175. package/dist/pages/NotFound.cjs +1 -1
  176. package/dist/pages/NotFound.d.cts +2 -2
  177. package/dist/pages/NotFound.d.mts +2 -2
  178. package/dist/pages/NotFound.mjs +1 -1
  179. package/dist/paragraph-4z_6Z5aj.cjs +2 -0
  180. package/dist/paragraph-4z_6Z5aj.cjs.map +1 -0
  181. package/dist/paragraph-BTJV4aeF.mjs +2 -0
  182. package/dist/paragraph-BTJV4aeF.mjs.map +1 -0
  183. package/dist/popover-BckwBuuD.mjs +2 -0
  184. package/dist/popover-BckwBuuD.mjs.map +1 -0
  185. package/dist/popover-DzDrgttC.cjs +2 -0
  186. package/dist/popover-DzDrgttC.cjs.map +1 -0
  187. package/dist/radio-group-CBhRsUjN.cjs +2 -0
  188. package/dist/radio-group-CBhRsUjN.cjs.map +1 -0
  189. package/dist/radio-group-Cem8O6BK.mjs +2 -0
  190. package/dist/radio-group-Cem8O6BK.mjs.map +1 -0
  191. package/dist/resizable-DXHfkbaz.mjs +2 -0
  192. package/dist/resizable-DXHfkbaz.mjs.map +1 -0
  193. package/dist/resizable-mlGS6Zto.cjs +2 -0
  194. package/dist/resizable-mlGS6Zto.cjs.map +1 -0
  195. package/dist/select-2CgwiefV.cjs +2 -0
  196. package/dist/select-2CgwiefV.cjs.map +1 -0
  197. package/dist/select-CivtMKTM.mjs +2 -0
  198. package/dist/select-CivtMKTM.mjs.map +1 -0
  199. package/dist/{separator-CWar33xc.mjs → separator-Bf0gymN4.mjs} +1 -1
  200. package/dist/{separator-CWar33xc.mjs.map → separator-Bf0gymN4.mjs.map} +1 -1
  201. package/dist/{separator-DSZyCT2g.cjs → separator-C3ip6sbh.cjs} +1 -1
  202. package/dist/{separator-DSZyCT2g.cjs.map → separator-C3ip6sbh.cjs.map} +1 -1
  203. package/dist/{sheet-CxHNvLcP.cjs → sheet-5MJRtrfG.cjs} +1 -1
  204. package/dist/{sheet-CxHNvLcP.cjs.map → sheet-5MJRtrfG.cjs.map} +1 -1
  205. package/dist/{sheet-CUfrx04D.mjs → sheet-oadGRiie.mjs} +1 -1
  206. package/dist/{sheet-CUfrx04D.mjs.map → sheet-oadGRiie.mjs.map} +1 -1
  207. package/dist/{skeleton-6MpPv0K3.mjs → skeleton-Ba6koCVf.mjs} +1 -1
  208. package/dist/{skeleton-6MpPv0K3.mjs.map → skeleton-Ba6koCVf.mjs.map} +1 -1
  209. package/dist/{skeleton-oQFT4xR2.cjs → skeleton-CHympz8k.cjs} +1 -1
  210. package/dist/{skeleton-oQFT4xR2.cjs.map → skeleton-CHympz8k.cjs.map} +1 -1
  211. package/dist/spinner-Chm_2fLr.cjs +2 -0
  212. package/dist/spinner-Chm_2fLr.cjs.map +1 -0
  213. package/dist/spinner-D1v3Bard.mjs +2 -0
  214. package/dist/spinner-D1v3Bard.mjs.map +1 -0
  215. package/dist/systems/google.cjs +1 -1
  216. package/dist/systems/google.mjs +1 -1
  217. package/dist/textarea-COQoSVSc.cjs +2 -0
  218. package/dist/textarea-COQoSVSc.cjs.map +1 -0
  219. package/dist/textarea-bLtmb71c.mjs +2 -0
  220. package/dist/textarea-bLtmb71c.mjs.map +1 -0
  221. package/dist/{tooltip-Dd1torAV.mjs → tooltip-B3dTcgcc.mjs} +1 -1
  222. package/dist/{tooltip-Dd1torAV.mjs.map → tooltip-B3dTcgcc.mjs.map} +1 -1
  223. package/dist/{tooltip-DMFoP_sB.cjs → tooltip-DC6i1A25.cjs} +1 -1
  224. package/dist/{tooltip-DMFoP_sB.cjs.map → tooltip-DC6i1A25.cjs.map} +1 -1
  225. package/dist/{types-DmtzpUIM.cjs → types-BD1t0Bj8.cjs} +1 -1
  226. package/dist/{types-BQMTFD_z.mjs.map → types-BD1t0Bj8.cjs.map} +1 -1
  227. package/dist/{types-Dl3D4kHZ.d.cts → types-Bd0JePtp.d.cts} +3 -2
  228. package/dist/{types-spXc_7Mh.d.mts → types-BpHcqlOI.d.mts} +3 -2
  229. package/dist/{types-BQMTFD_z.mjs → types-DBD4LOem.mjs} +1 -1
  230. package/dist/{types-DmtzpUIM.cjs.map → types-DBD4LOem.mjs.map} +1 -1
  231. package/dist/typography/paragraph.cjs +1 -1
  232. package/dist/typography/paragraph.d.cts +15 -3
  233. package/dist/typography/paragraph.d.mts +15 -3
  234. package/dist/typography/paragraph.mjs +1 -1
  235. package/dist/typography/title.cjs +1 -1
  236. package/dist/typography/title.d.cts +2 -2
  237. package/dist/typography/title.d.mts +2 -2
  238. package/dist/typography/title.mjs +1 -1
  239. package/dist/ui/alert-dialog.cjs +1 -1
  240. package/dist/ui/alert-dialog.cjs.map +1 -1
  241. package/dist/ui/alert-dialog.d.cts +12 -12
  242. package/dist/ui/alert-dialog.d.mts +12 -12
  243. package/dist/ui/alert-dialog.mjs +1 -1
  244. package/dist/ui/alert-dialog.mjs.map +1 -1
  245. package/dist/ui/alert.cjs +1 -1
  246. package/dist/ui/alert.d.cts +7 -7
  247. package/dist/ui/alert.d.mts +7 -7
  248. package/dist/ui/alert.mjs +1 -1
  249. package/dist/ui/aspect-ratio.d.cts +2 -2
  250. package/dist/ui/aspect-ratio.d.mts +2 -2
  251. package/dist/ui/avatar.cjs +1 -1
  252. package/dist/ui/avatar.d.mts +4 -4
  253. package/dist/ui/avatar.mjs +1 -1
  254. package/dist/ui/badge.cjs +1 -1
  255. package/dist/ui/badge.d.cts +6 -6
  256. package/dist/ui/badge.d.mts +4 -4
  257. package/dist/ui/badge.mjs +1 -1
  258. package/dist/ui/breadcrumb.cjs +1 -1
  259. package/dist/ui/breadcrumb.d.cts +8 -8
  260. package/dist/ui/breadcrumb.d.mts +8 -8
  261. package/dist/ui/breadcrumb.mjs +1 -1
  262. package/dist/ui/button-group.cjs +1 -1
  263. package/dist/ui/button-group.d.cts +6 -6
  264. package/dist/ui/button-group.d.mts +6 -6
  265. package/dist/ui/button-group.mjs +1 -1
  266. package/dist/ui/button.cjs +1 -1
  267. package/dist/ui/button.d.cts +1 -1
  268. package/dist/ui/button.d.mts +1 -1
  269. package/dist/ui/button.mjs +1 -1
  270. package/dist/ui/buttons/add-new.cjs +1 -1
  271. package/dist/ui/buttons/add-new.mjs +1 -1
  272. package/dist/ui/buttons/edit.cjs +1 -1
  273. package/dist/ui/buttons/edit.mjs +1 -1
  274. package/dist/ui/buttons/refresh.cjs +1 -1
  275. package/dist/ui/buttons/refresh.mjs +1 -1
  276. package/dist/ui/buttons/trash.cjs +1 -1
  277. package/dist/ui/buttons/trash.mjs +1 -1
  278. package/dist/ui/buttons/upload-image.cjs +1 -1
  279. package/dist/ui/buttons/upload-image.mjs +1 -1
  280. package/dist/ui/calendar.cjs +1 -2
  281. package/dist/ui/calendar.d.cts +4 -4
  282. package/dist/ui/calendar.d.mts +4 -4
  283. package/dist/ui/calendar.mjs +1 -2
  284. package/dist/ui/card.cjs +1 -1
  285. package/dist/ui/card.cjs.map +1 -1
  286. package/dist/ui/card.d.cts +8 -8
  287. package/dist/ui/card.d.mts +8 -8
  288. package/dist/ui/card.mjs +1 -1
  289. package/dist/ui/card.mjs.map +1 -1
  290. package/dist/ui/carousel.cjs +1 -1
  291. package/dist/ui/carousel.d.cts +7 -7
  292. package/dist/ui/carousel.d.mts +7 -7
  293. package/dist/ui/carousel.mjs +1 -1
  294. package/dist/ui/checkbox.cjs +1 -1
  295. package/dist/ui/checkbox.d.cts +2 -2
  296. package/dist/ui/checkbox.d.mts +2 -2
  297. package/dist/ui/checkbox.mjs +1 -1
  298. package/dist/ui/collapsible.d.cts +4 -4
  299. package/dist/ui/collapsible.d.mts +4 -4
  300. package/dist/ui/command.cjs +1 -1
  301. package/dist/ui/command.d.cts +11 -11
  302. package/dist/ui/command.d.mts +11 -11
  303. package/dist/ui/command.mjs +1 -1
  304. package/dist/ui/context-menu.d.cts +16 -16
  305. package/dist/ui/context-menu.d.mts +16 -16
  306. package/dist/ui/dialog.cjs +1 -1
  307. package/dist/ui/dialog.d.cts +1 -1
  308. package/dist/ui/dialog.d.mts +1 -1
  309. package/dist/ui/dialog.mjs +1 -1
  310. package/dist/ui/drawer.d.cts +11 -11
  311. package/dist/ui/drawer.d.mts +11 -11
  312. package/dist/ui/dropdown-menu.cjs +1 -1
  313. package/dist/ui/dropdown-menu.d.cts +16 -16
  314. package/dist/ui/dropdown-menu.d.mts +16 -16
  315. package/dist/ui/dropdown-menu.mjs +1 -1
  316. package/dist/ui/empty.cjs +1 -1
  317. package/dist/ui/empty.d.cts +9 -9
  318. package/dist/ui/empty.d.mts +9 -9
  319. package/dist/ui/empty.mjs +1 -1
  320. package/dist/ui/field.cjs +1 -1
  321. package/dist/ui/field.d.cts +13 -13
  322. package/dist/ui/field.d.mts +24 -24
  323. package/dist/ui/field.mjs +1 -1
  324. package/dist/ui/file-uploader.cjs +2 -2
  325. package/dist/ui/file-uploader.d.cts +2 -2
  326. package/dist/ui/file-uploader.d.mts +2 -2
  327. package/dist/ui/file-uploader.mjs +2 -2
  328. package/dist/ui/form.cjs +1 -1
  329. package/dist/ui/form.d.cts +11 -11
  330. package/dist/ui/form.d.mts +7 -7
  331. package/dist/ui/form.mjs +1 -1
  332. package/dist/ui/hover-card.d.cts +4 -4
  333. package/dist/ui/hover-card.d.mts +4 -4
  334. package/dist/ui/image.cjs +1 -1
  335. package/dist/ui/image.mjs +1 -1
  336. package/dist/ui/input-otp.cjs +1 -1
  337. package/dist/ui/input-otp.d.cts +5 -5
  338. package/dist/ui/input-otp.d.mts +5 -5
  339. package/dist/ui/input-otp.mjs +1 -1
  340. package/dist/ui/input.cjs +1 -1
  341. package/dist/ui/input.d.cts +2 -2
  342. package/dist/ui/input.d.mts +2 -2
  343. package/dist/ui/input.mjs +1 -1
  344. package/dist/ui/inputs/search-input.cjs +1 -1
  345. package/dist/ui/inputs/search-input.d.cts +3 -3
  346. package/dist/ui/inputs/search-input.d.mts +3 -3
  347. package/dist/ui/inputs/search-input.mjs +1 -1
  348. package/dist/ui/item.cjs +1 -1
  349. package/dist/ui/item.d.cts +15 -15
  350. package/dist/ui/item.d.mts +12 -12
  351. package/dist/ui/item.mjs +1 -1
  352. package/dist/ui/label.cjs +1 -1
  353. package/dist/ui/label.d.cts +2 -2
  354. package/dist/ui/label.d.mts +2 -2
  355. package/dist/ui/label.mjs +1 -1
  356. package/dist/ui/menubar.d.mts +17 -17
  357. package/dist/ui/multi-select.cjs +1 -1
  358. package/dist/ui/multi-select.cjs.map +1 -1
  359. package/dist/ui/multi-select.d.cts +2 -2
  360. package/dist/ui/multi-select.d.mts +3 -3
  361. package/dist/ui/multi-select.mjs +1 -1
  362. package/dist/ui/multi-select.mjs.map +1 -1
  363. package/dist/ui/navigation-menu.cjs +1 -1
  364. package/dist/ui/navigation-menu.d.cts +11 -11
  365. package/dist/ui/navigation-menu.d.mts +11 -11
  366. package/dist/ui/navigation-menu.mjs +1 -1
  367. package/dist/ui/pagination.cjs +1 -1
  368. package/dist/ui/pagination.d.cts +9 -9
  369. package/dist/ui/pagination.d.mts +9 -9
  370. package/dist/ui/pagination.mjs +1 -1
  371. package/dist/ui/popover.cjs +1 -2
  372. package/dist/ui/popover.d.cts +10 -6
  373. package/dist/ui/popover.d.mts +10 -6
  374. package/dist/ui/popover.mjs +1 -2
  375. package/dist/ui/progress.d.cts +2 -2
  376. package/dist/ui/progress.d.mts +2 -2
  377. package/dist/ui/radio-group.cjs +1 -2
  378. package/dist/ui/radio-group.d.cts +3 -3
  379. package/dist/ui/radio-group.d.mts +3 -3
  380. package/dist/ui/radio-group.mjs +1 -2
  381. package/dist/ui/resizable.cjs +1 -1
  382. package/dist/ui/resizable.d.cts +36 -14
  383. package/dist/ui/resizable.d.mts +36 -14
  384. package/dist/ui/resizable.mjs +1 -1
  385. package/dist/ui/scroll-area.cjs +1 -1
  386. package/dist/ui/scroll-area.d.cts +6 -6
  387. package/dist/ui/scroll-area.d.mts +6 -6
  388. package/dist/ui/scroll-area.mjs +1 -1
  389. package/dist/ui/select.cjs +1 -2
  390. package/dist/ui/select.d.cts +10 -18
  391. package/dist/ui/select.d.mts +10 -18
  392. package/dist/ui/select.mjs +1 -2
  393. package/dist/ui/separator.cjs +1 -1
  394. package/dist/ui/separator.d.cts +2 -2
  395. package/dist/ui/separator.d.mts +2 -2
  396. package/dist/ui/separator.mjs +1 -1
  397. package/dist/ui/sheet.cjs +1 -1
  398. package/dist/ui/sheet.d.cts +9 -9
  399. package/dist/ui/sheet.d.mts +9 -9
  400. package/dist/ui/sheet.mjs +1 -1
  401. package/dist/ui/sidebar.cjs +1 -1
  402. package/dist/ui/sidebar.d.cts +29 -29
  403. package/dist/ui/sidebar.d.mts +29 -29
  404. package/dist/ui/sidebar.mjs +1 -1
  405. package/dist/ui/skeleton.cjs +1 -1
  406. package/dist/ui/skeleton.d.cts +2 -2
  407. package/dist/ui/skeleton.d.mts +2 -2
  408. package/dist/ui/skeleton.mjs +1 -1
  409. package/dist/ui/slider.cjs +1 -1
  410. package/dist/ui/slider.d.cts +2 -2
  411. package/dist/ui/slider.d.mts +2 -2
  412. package/dist/ui/slider.mjs +1 -1
  413. package/dist/ui/sonner.d.cts +2 -2
  414. package/dist/ui/sonner.d.mts +2 -2
  415. package/dist/ui/spinner.cjs +1 -2
  416. package/dist/ui/spinner.d.cts +2 -2
  417. package/dist/ui/spinner.d.mts +2 -2
  418. package/dist/ui/spinner.mjs +1 -2
  419. package/dist/ui/switch.d.cts +2 -2
  420. package/dist/ui/switch.d.mts +2 -2
  421. package/dist/ui/table.cjs +1 -1
  422. package/dist/ui/table.d.cts +18 -18
  423. package/dist/ui/table.d.mts +18 -18
  424. package/dist/ui/table.mjs +1 -1
  425. package/dist/ui/tabs.d.cts +5 -5
  426. package/dist/ui/tabs.d.mts +5 -5
  427. package/dist/ui/textarea.cjs +1 -2
  428. package/dist/ui/textarea.d.cts +2 -2
  429. package/dist/ui/textarea.d.mts +2 -2
  430. package/dist/ui/textarea.mjs +1 -2
  431. package/dist/ui/toggle-group.cjs +1 -1
  432. package/dist/ui/toggle-group.d.mts +3 -3
  433. package/dist/ui/toggle-group.mjs +1 -1
  434. package/dist/ui/toggle.cjs +1 -1
  435. package/dist/ui/toggle.d.cts +3 -3
  436. package/dist/ui/toggle.d.mts +5 -5
  437. package/dist/ui/toggle.mjs +1 -1
  438. package/dist/ui/tooltip.cjs +1 -1
  439. package/dist/ui/tooltip.d.cts +5 -5
  440. package/dist/ui/tooltip.mjs +1 -1
  441. package/package.json +1 -1
  442. package/dist/badge-CJ-SG_OK.mjs +0 -2
  443. package/dist/badge-CJ-SG_OK.mjs.map +0 -1
  444. package/dist/badge-CsDmp3ys.cjs +0 -2
  445. package/dist/badge-CsDmp3ys.cjs.map +0 -1
  446. package/dist/button-BLYTfCyl.cjs +0 -2
  447. package/dist/button-BlQN92Jt.mjs +0 -2
  448. package/dist/checkbox-D4K3ZATY.mjs +0 -2
  449. package/dist/checkbox-D4K3ZATY.mjs.map +0 -1
  450. package/dist/checkbox-DDuYFG0R.cjs +0 -2
  451. package/dist/checkbox-DDuYFG0R.cjs.map +0 -1
  452. package/dist/dialog-XvFmavuI.mjs +0 -2
  453. package/dist/dialog-XvFmavuI.mjs.map +0 -1
  454. package/dist/dialog-aRCyqFr-.cjs +0 -2
  455. package/dist/dialog-aRCyqFr-.cjs.map +0 -1
  456. package/dist/dist-BqoK5OAd.cjs +0 -2
  457. package/dist/dist-D2ydYRc4.mjs +0 -2
  458. package/dist/image-D2PTBG_7.cjs +0 -2
  459. package/dist/image-Dgxtk54D.mjs +0 -2
  460. package/dist/input-B2Y92Ylo.d.cts +0 -27
  461. package/dist/input-B6-pu-dE.d.mts +0 -27
  462. package/dist/input-CqN74taK.mjs +0 -2
  463. package/dist/input-CqN74taK.mjs.map +0 -1
  464. package/dist/input-dAoEznUI.cjs +0 -2
  465. package/dist/input-dAoEznUI.cjs.map +0 -1
  466. package/dist/paragraph-B9_-MKH8.cjs +0 -2
  467. package/dist/paragraph-B9_-MKH8.cjs.map +0 -1
  468. package/dist/paragraph-C83yi9US.mjs +0 -2
  469. package/dist/paragraph-C83yi9US.mjs.map +0 -1
  470. package/dist/resizable-BS63Xwia.cjs +0 -2
  471. package/dist/resizable-BS63Xwia.cjs.map +0 -1
  472. package/dist/resizable-BfkKNflf.mjs +0 -2
  473. package/dist/resizable-BfkKNflf.mjs.map +0 -1
  474. package/dist/ui/calendar.cjs.map +0 -1
  475. package/dist/ui/calendar.mjs.map +0 -1
  476. package/dist/ui/popover.cjs.map +0 -1
  477. package/dist/ui/popover.mjs.map +0 -1
  478. package/dist/ui/radio-group.cjs.map +0 -1
  479. package/dist/ui/radio-group.mjs.map +0 -1
  480. package/dist/ui/select.cjs.map +0 -1
  481. package/dist/ui/select.mjs.map +0 -1
  482. package/dist/ui/spinner.cjs.map +0 -1
  483. package/dist/ui/spinner.mjs.map +0 -1
  484. package/dist/ui/textarea.cjs.map +0 -1
  485. package/dist/ui/textarea.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"date-Bznq86tY.mjs","names":["DateDisplay: React.FC<Props>","date"],"sources":["../packages/constants.tsx","../packages/components/data-display/date.tsx"],"sourcesContent":["// Vietnamese locale configuration\nexport const vietnameseLocale = {\n weekdays: ['Chủ Nhật', 'Thứ Hai', 'Thứ Ba', 'Thứ Tư', 'Thứ Năm', 'Thứ Sáu', 'Thứ Bảy'],\n weekdaysShort: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],\n months: ['Tháng 1', 'Tháng 2', 'Tháng 3', 'Tháng 4', 'Tháng 5', 'Tháng 6', 'Tháng 7', 'Tháng 8', 'Tháng 9', 'Tháng 10', 'Tháng 11', 'Tháng 12'],\n monthsShort: ['T1', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7', 'T8', 'T9', 'T10', 'T11', 'T12'],\n};\n\n// Vietnamese holidays\nexport const vietnameseHolidays = {\n '01-01': 'Tết Dương lịch',\n '03-08': 'Quốc tế Phụ nữ',\n '04-30': 'Ngày Giải phóng miền Nam',\n '05-01': 'Quốc tế Lao động',\n '09-02': 'Quốc khánh',\n '10-20': 'Ngày Phụ nữ Việt Nam',\n '11-20': 'Ngày Nhà giáo Việt Nam',\n};\n\n// Time Constants in milliseconds, seconds, and minutes\nexport const TIME_IN_MS = Object.freeze({\n SECOND: 1000,\n MINUTE: 60 * 1000,\n HOUR: 60 * 60 * 1000,\n DAY: 24 * 60 * 60 * 1000,\n WEEK: 7 * 24 * 60 * 60 * 1000,\n MONTH: 30 * 24 * 60 * 60 * 1000, // Approximation for month length = 30 days\n YEAR: 365 * 24 * 60 * 60 * 1000,\n});\n\nexport const TIME_IN_SECONDS = Object.freeze({\n MINUTE: 60,\n HOUR: 60 * 60,\n DAY: 24 * 60 * 60,\n WEEK: 7 * 24 * 60 * 60,\n MONTH: 30 * 24 * 60 * 60,\n YEAR: 365 * 24 * 60 * 60,\n});\n\nexport const TIME_IN_MINUTES = Object.freeze({\n HOUR: 60,\n DAY: 24 * 60,\n WEEK: 7 * 24 * 60,\n MONTH: 30 * 24 * 60,\n});\n","import { useCallback, useMemo } from 'react';\n\nimport { format, isThisMonth, isThisWeek, isThisYear, isToday, isTomorrow, isValid, isYesterday, parseISO } from '@customafk/react-toolkit/date-fns';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { TIME_IN_SECONDS, vietnameseHolidays, vietnameseLocale } from '@/constants';\n\ninterface Props {\n date: Date | string | number;\n format?:\n | 'short' // 15/03/24\n | 'medium' // 15/03/2024\n | 'long' // 15 tháng 3, 2024\n | 'full' // Thứ Sáu, ngày 15 tháng 3 năm 2024\n | 'relative' // 2 giờ trước\n | 'datetime' // 15/03/2024 14:30\n | 'time' // 14:30\n | 'smart'; // Tự động chọn format phù hợp\n showHoliday?: boolean;\n showTime?: boolean;\n className?: string;\n title?: string; // Tooltip khi hover\n}\n\nexport const DateDisplay: React.FC<Props> = ({ date, format: formatType = 'medium', showHoliday = false, showTime = false, className = '', title }) => {\n const parsedDate = useMemo(() => {\n try {\n if (date instanceof Date) {\n return isValid(date) ? date : null;\n }\n if (typeof date === 'string') {\n const parsed = parseISO(date);\n return isValid(parsed) ? parsed : new Date(date);\n }\n if (typeof date === 'number') {\n const parsed = new Date(date);\n return isValid(parsed) ? parsed : null;\n }\n return null;\n } catch {\n return null;\n }\n }, [date]);\n\n // Format relative time in Vietnamese\n const formatRelativeTime = useCallback((date: Date): string => {\n const now = new Date();\n const diffInSeconds = Math.floor((now.getTime() - date.getTime()) / 1000);\n\n if (diffInSeconds < 60) return 'Vừa xong';\n if (diffInSeconds < 3600) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.MINUTE)} phút trước`;\n if (diffInSeconds < 86400) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.HOUR)} giờ trước`;\n if (diffInSeconds < 604800) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.DAY)} ngày trước`;\n if (diffInSeconds < 2592000) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.WEEK)} tuần trước`;\n if (diffInSeconds < 31536000) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.MONTH)} tháng trước`;\n return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.YEAR)} năm trước`;\n }, []);\n\n // Vietnamese weekday\n const getVietnameseWeekday = useCallback((date: Date, short: boolean = false): string => {\n const dayIndex = date.getDay();\n return short ? vietnameseLocale.weekdaysShort[dayIndex] : vietnameseLocale.weekdays[dayIndex];\n }, []);\n\n // Vietnamese month\n const getVietnameseMonth = useCallback((date: Date, short: boolean = false): string => {\n const monthIndex = date.getMonth();\n return short ? vietnameseLocale.monthsShort[monthIndex] : vietnameseLocale.months[monthIndex];\n }, []);\n\n // Check holiday\n const getHoliday = useCallback((date: Date): string | null => {\n const monthDay = format(date, 'MM-dd') as keyof typeof vietnameseHolidays;\n return vietnameseHolidays[monthDay] || null;\n }, []);\n\n // Smart format - choose appropriate format based on date\n const getSmartFormat = useCallback(\n (date: Date): string => {\n if (isToday(date)) {\n return showTime ? `Hôm nay ${format(date, 'HH:mm')}` : 'Hôm nay';\n }\n if (isYesterday(date)) {\n return showTime ? `Hôm qua ${format(date, 'HH:mm')}` : 'Hôm qua';\n }\n if (isTomorrow(date)) {\n return showTime ? `Ngày mai ${format(date, 'HH:mm')}` : 'Ngày mai';\n }\n if (isThisWeek(date)) {\n const weekday = getVietnameseWeekday(date);\n return showTime ? `${weekday} ${format(date, 'HH:mm')}` : weekday;\n }\n if (isThisMonth(date)) {\n const day = format(date, 'd');\n return showTime ? `${day}/${format(date, 'M')} ${format(date, 'HH:mm')}` : `${day}/${format(date, 'M')}`;\n }\n if (isThisYear(date)) {\n return showTime ? format(date, 'd/M HH:mm') : format(date, 'd/M');\n }\n return showTime ? format(date, 'd/M/yyyy HH:mm') : format(date, 'd/M/yyyy');\n },\n [getVietnameseWeekday, showTime]\n );\n\n // Main formatting function\n const formatDate = useCallback(\n (date: Date, type: string): string => {\n const timeStr = showTime ? format(date, ', HH:mm') : '';\n\n switch (type) {\n case 'short':\n return format(date, 'd/M/yy') + timeStr;\n\n case 'medium':\n return format(date, 'dd/MM/yyyy') + timeStr;\n\n case 'long':\n return `${format(date, 'd')} ${getVietnameseMonth(date)} ${format(date, 'yyyy')}` + timeStr;\n\n case 'full': {\n const data = `${getVietnameseWeekday(date)}, ngày ${format(date, 'd')} ${getVietnameseMonth(date)} năm ${format(date, 'yyyy')}`;\n return data + timeStr;\n }\n\n case 'relative':\n return formatRelativeTime(date);\n\n case 'datetime':\n return format(date, 'd/M/yyyy HH:mm');\n\n case 'time':\n return format(date, 'HH:mm');\n\n case 'smart':\n return getSmartFormat(date);\n\n default:\n return format(date, 'd/M/yyyy') + timeStr;\n }\n },\n [getSmartFormat, getVietnameseMonth, getVietnameseWeekday, formatRelativeTime, showTime]\n );\n\n if (!parsedDate) {\n return <span className={cn('text-muted-foreground text-sm', className)}>--/--/----</span>;\n }\n\n const formattedDate = formatDate(parsedDate, formatType);\n const holiday = showHoliday ? getHoliday(parsedDate) : null;\n const displayText = holiday ? `${formattedDate} (${holiday})` : formattedDate;\n const tooltipTitle = title || format(parsedDate, 'EEEE, d MMMM yyyy HH:mm:ss');\n\n return (\n <time dateTime={parsedDate.toISOString()} className={cn('text-text-positive-weak text-xs tabular-nums', className)} title={tooltipTitle}>\n {displayText}\n </time>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"date-CK7XBqG9.mjs","names":["DateDisplay: React.FC<Props>","date"],"sources":["../packages/constants.tsx","../packages/components/data-display/date.tsx"],"sourcesContent":["// Vietnamese locale configuration\nexport const vietnameseLocale = {\n weekdays: ['Chủ Nhật', 'Thứ Hai', 'Thứ Ba', 'Thứ Tư', 'Thứ Năm', 'Thứ Sáu', 'Thứ Bảy'],\n weekdaysShort: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],\n months: ['Tháng 1', 'Tháng 2', 'Tháng 3', 'Tháng 4', 'Tháng 5', 'Tháng 6', 'Tháng 7', 'Tháng 8', 'Tháng 9', 'Tháng 10', 'Tháng 11', 'Tháng 12'],\n monthsShort: ['T1', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7', 'T8', 'T9', 'T10', 'T11', 'T12'],\n};\n\n// Vietnamese holidays\nexport const vietnameseHolidays = {\n '01-01': 'Tết Dương lịch',\n '03-08': 'Quốc tế Phụ nữ',\n '04-30': 'Ngày Giải phóng miền Nam',\n '05-01': 'Quốc tế Lao động',\n '09-02': 'Quốc khánh',\n '10-20': 'Ngày Phụ nữ Việt Nam',\n '11-20': 'Ngày Nhà giáo Việt Nam',\n};\n\n// Time Constants in milliseconds, seconds, and minutes\nexport const TIME_IN_MS = Object.freeze({\n SECOND: 1000,\n MINUTE: 60 * 1000,\n HOUR: 60 * 60 * 1000,\n DAY: 24 * 60 * 60 * 1000,\n WEEK: 7 * 24 * 60 * 60 * 1000,\n MONTH: 30 * 24 * 60 * 60 * 1000, // Approximation for month length = 30 days\n YEAR: 365 * 24 * 60 * 60 * 1000,\n});\n\nexport const TIME_IN_SECONDS = Object.freeze({\n MINUTE: 60,\n HOUR: 60 * 60,\n DAY: 24 * 60 * 60,\n WEEK: 7 * 24 * 60 * 60,\n MONTH: 30 * 24 * 60 * 60,\n YEAR: 365 * 24 * 60 * 60,\n});\n\nexport const TIME_IN_MINUTES = Object.freeze({\n HOUR: 60,\n DAY: 24 * 60,\n WEEK: 7 * 24 * 60,\n MONTH: 30 * 24 * 60,\n});\n","import { useCallback, useMemo } from 'react';\n\nimport { format, isThisMonth, isThisWeek, isThisYear, isToday, isTomorrow, isValid, isYesterday, parseISO } from '@customafk/react-toolkit/date-fns';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { TIME_IN_SECONDS, vietnameseHolidays, vietnameseLocale } from '@/constants';\n\ninterface Props {\n date: Date | string | number;\n format?:\n | 'short' // 15/03/24\n | 'medium' // 15/03/2024\n | 'long' // 15 tháng 3, 2024\n | 'full' // Thứ Sáu, ngày 15 tháng 3 năm 2024\n | 'relative' // 2 giờ trước\n | 'datetime' // 15/03/2024 14:30\n | 'time' // 14:30\n | 'smart'; // Tự động chọn format phù hợp\n showHoliday?: boolean;\n showTime?: boolean;\n className?: string;\n title?: string; // Tooltip khi hover\n}\n\nexport const DateDisplay: React.FC<Props> = ({ date, format: formatType = 'medium', showHoliday = false, showTime = false, className = '', title }) => {\n const parsedDate = useMemo(() => {\n try {\n if (date instanceof Date) {\n return isValid(date) ? date : null;\n }\n if (typeof date === 'string') {\n const parsed = parseISO(date);\n return isValid(parsed) ? parsed : new Date(date);\n }\n if (typeof date === 'number') {\n const parsed = new Date(date);\n return isValid(parsed) ? parsed : null;\n }\n return null;\n } catch {\n return null;\n }\n }, [date]);\n\n // Format relative time in Vietnamese\n const formatRelativeTime = useCallback((date: Date): string => {\n const now = new Date();\n const diffInSeconds = Math.floor((now.getTime() - date.getTime()) / 1000);\n\n if (diffInSeconds < 60) return 'Vừa xong';\n if (diffInSeconds < 3600) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.MINUTE)} phút trước`;\n if (diffInSeconds < 86400) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.HOUR)} giờ trước`;\n if (diffInSeconds < 604800) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.DAY)} ngày trước`;\n if (diffInSeconds < 2592000) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.WEEK)} tuần trước`;\n if (diffInSeconds < 31536000) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.MONTH)} tháng trước`;\n return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.YEAR)} năm trước`;\n }, []);\n\n // Vietnamese weekday\n const getVietnameseWeekday = useCallback((date: Date, short: boolean = false): string => {\n const dayIndex = date.getDay();\n return short ? vietnameseLocale.weekdaysShort[dayIndex] : vietnameseLocale.weekdays[dayIndex];\n }, []);\n\n // Vietnamese month\n const getVietnameseMonth = useCallback((date: Date, short: boolean = false): string => {\n const monthIndex = date.getMonth();\n return short ? vietnameseLocale.monthsShort[monthIndex] : vietnameseLocale.months[monthIndex];\n }, []);\n\n // Check holiday\n const getHoliday = useCallback((date: Date): string | null => {\n const monthDay = format(date, 'MM-dd') as keyof typeof vietnameseHolidays;\n return vietnameseHolidays[monthDay] || null;\n }, []);\n\n // Smart format - choose appropriate format based on date\n const getSmartFormat = useCallback(\n (date: Date): string => {\n if (isToday(date)) {\n return showTime ? `Hôm nay ${format(date, 'HH:mm')}` : 'Hôm nay';\n }\n if (isYesterday(date)) {\n return showTime ? `Hôm qua ${format(date, 'HH:mm')}` : 'Hôm qua';\n }\n if (isTomorrow(date)) {\n return showTime ? `Ngày mai ${format(date, 'HH:mm')}` : 'Ngày mai';\n }\n if (isThisWeek(date)) {\n const weekday = getVietnameseWeekday(date);\n return showTime ? `${weekday} ${format(date, 'HH:mm')}` : weekday;\n }\n if (isThisMonth(date)) {\n const day = format(date, 'd');\n return showTime ? `${day}/${format(date, 'M')} ${format(date, 'HH:mm')}` : `${day}/${format(date, 'M')}`;\n }\n if (isThisYear(date)) {\n return showTime ? format(date, 'd/M HH:mm') : format(date, 'd/M');\n }\n return showTime ? format(date, 'd/M/yyyy HH:mm') : format(date, 'd/M/yyyy');\n },\n [getVietnameseWeekday, showTime]\n );\n\n // Main formatting function\n const formatDate = useCallback(\n (date: Date, type: string): string => {\n const timeStr = showTime ? format(date, ', HH:mm') : '';\n\n switch (type) {\n case 'short':\n return format(date, 'd/M/yy') + timeStr;\n\n case 'medium':\n return format(date, 'dd/MM/yyyy') + timeStr;\n\n case 'long':\n return `${format(date, 'd')} ${getVietnameseMonth(date)} ${format(date, 'yyyy')}` + timeStr;\n\n case 'full': {\n const data = `${getVietnameseWeekday(date)}, ngày ${format(date, 'd')} ${getVietnameseMonth(date)} năm ${format(date, 'yyyy')}`;\n return data + timeStr;\n }\n\n case 'relative':\n return formatRelativeTime(date);\n\n case 'datetime':\n return format(date, 'd/M/yyyy HH:mm');\n\n case 'time':\n return format(date, 'HH:mm');\n\n case 'smart':\n return getSmartFormat(date);\n\n default:\n return format(date, 'd/M/yyyy') + timeStr;\n }\n },\n [getSmartFormat, getVietnameseMonth, getVietnameseWeekday, formatRelativeTime, showTime]\n );\n\n if (!parsedDate) {\n return <span className={cn('text-muted-foreground text-sm', className)}>--/--/----</span>;\n }\n\n const formattedDate = formatDate(parsedDate, formatType);\n const holiday = showHoliday ? getHoliday(parsedDate) : null;\n const displayText = holiday ? `${formattedDate} (${holiday})` : formattedDate;\n const tooltipTitle = title || format(parsedDate, 'EEEE, d MMMM yyyy HH:mm:ss');\n\n return (\n <time dateTime={parsedDate.toISOString()} className={cn('text-text-positive-weak text-xs tabular-nums', className)} title={tooltipTitle}>\n {displayText}\n </time>\n );\n};\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- const e=require(`./chunk-Bmb41Sf3.cjs`);let t=require(`@customafk/react-toolkit/utils`),n=require(`react/jsx-runtime`),r=require(`react`),i=require(`@customafk/react-toolkit/date-fns`);const a={weekdays:[`Chủ Nhật`,`Thứ Hai`,`Thứ Ba`,`Thứ Tư`,`Thứ Năm`,`Thứ Sáu`,`Thứ Bảy`],weekdaysShort:[`CN`,`T2`,`T3`,`T4`,`T5`,`T6`,`T7`],months:[`Tháng 1`,`Tháng 2`,`Tháng 3`,`Tháng 4`,`Tháng 5`,`Tháng 6`,`Tháng 7`,`Tháng 8`,`Tháng 9`,`Tháng 10`,`Tháng 11`,`Tháng 12`],monthsShort:[`T1`,`T2`,`T3`,`T4`,`T5`,`T6`,`T7`,`T8`,`T9`,`T10`,`T11`,`T12`]},o={"01-01":`Tết Dương lịch`,"03-08":`Quốc tế Phụ nữ`,"04-30":`Ngày Giải phóng miền Nam`,"05-01":`Quốc tế Lao động`,"09-02":`Quốc khánh`,"10-20":`Ngày Phụ nữ Việt Nam`,"11-20":`Ngày Nhà giáo Việt Nam`},s=Object.freeze({SECOND:1e3,MINUTE:60*1e3,HOUR:3600*1e3,DAY:1440*60*1e3,WEEK:10080*60*1e3,MONTH:720*60*60*1e3,YEAR:365*24*60*60*1e3}),c=Object.freeze({MINUTE:60,HOUR:3600,DAY:1440*60,WEEK:10080*60,MONTH:720*60*60,YEAR:365*24*60*60}),l=Object.freeze({HOUR:60,DAY:1440,WEEK:10080,MONTH:720*60}),u=({date:e,format:s=`medium`,showHoliday:l=!1,showTime:u=!1,className:d=``,title:f})=>{let p=(0,r.useMemo)(()=>{try{if(e instanceof Date)return(0,i.isValid)(e)?e:null;if(typeof e==`string`){let t=(0,i.parseISO)(e);return(0,i.isValid)(t)?t:new Date(e)}if(typeof e==`number`){let t=new Date(e);return(0,i.isValid)(t)?t:null}return null}catch{return null}},[e]),m=(0,r.useCallback)(e=>{let t=new Date,n=Math.floor((t.getTime()-e.getTime())/1e3);return n<60?`Vừa xong`:n<3600?`${Math.floor(n/c.MINUTE)} phút trước`:n<86400?`${Math.floor(n/c.HOUR)} giờ trước`:n<604800?`${Math.floor(n/c.DAY)} ngày trước`:n<2592e3?`${Math.floor(n/c.WEEK)} tuần trước`:n<31536e3?`${Math.floor(n/c.MONTH)} tháng trước`:`${Math.floor(n/c.YEAR)} năm trước`},[]),h=(0,r.useCallback)((e,t=!1)=>{let n=e.getDay();return t?a.weekdaysShort[n]:a.weekdays[n]},[]),g=(0,r.useCallback)((e,t=!1)=>{let n=e.getMonth();return t?a.monthsShort[n]:a.months[n]},[]),_=(0,r.useCallback)(e=>o[(0,i.format)(e,`MM-dd`)]||null,[]),v=(0,r.useCallback)(e=>{if((0,i.isToday)(e))return u?`Hôm nay ${(0,i.format)(e,`HH:mm`)}`:`Hôm nay`;if((0,i.isYesterday)(e))return u?`Hôm qua ${(0,i.format)(e,`HH:mm`)}`:`Hôm qua`;if((0,i.isTomorrow)(e))return u?`Ngày mai ${(0,i.format)(e,`HH:mm`)}`:`Ngày mai`;if((0,i.isThisWeek)(e)){let t=h(e);return u?`${t} ${(0,i.format)(e,`HH:mm`)}`:t}if((0,i.isThisMonth)(e)){let t=(0,i.format)(e,`d`);return u?`${t}/${(0,i.format)(e,`M`)} ${(0,i.format)(e,`HH:mm`)}`:`${t}/${(0,i.format)(e,`M`)}`}return(0,i.isThisYear)(e)?u?(0,i.format)(e,`d/M HH:mm`):(0,i.format)(e,`d/M`):u?(0,i.format)(e,`d/M/yyyy HH:mm`):(0,i.format)(e,`d/M/yyyy`)},[h,u]),y=(0,r.useCallback)((e,t)=>{let n=u?(0,i.format)(e,`, HH:mm`):``;switch(t){case`short`:return(0,i.format)(e,`d/M/yy`)+n;case`medium`:return(0,i.format)(e,`dd/MM/yyyy`)+n;case`long`:return`${(0,i.format)(e,`d`)} ${g(e)} ${(0,i.format)(e,`yyyy`)}`+n;case`full`:return`${h(e)}, ngày ${(0,i.format)(e,`d`)} ${g(e)} năm ${(0,i.format)(e,`yyyy`)}`+n;case`relative`:return m(e);case`datetime`:return(0,i.format)(e,`d/M/yyyy HH:mm`);case`time`:return(0,i.format)(e,`HH:mm`);case`smart`:return v(e);default:return(0,i.format)(e,`d/M/yyyy`)+n}},[v,g,h,m,u]);if(!p)return(0,n.jsx)(`span`,{className:(0,t.cn)(`text-muted-foreground text-sm`,d),children:`--/--/----`});let b=y(p,s),x=l?_(p):null,S=x?`${b} (${x})`:b,C=f||(0,i.format)(p,`EEEE, d MMMM yyyy HH:mm:ss`);return(0,n.jsx)(`time`,{dateTime:p.toISOString(),className:(0,t.cn)(`text-text-positive-weak text-xs tabular-nums`,d),title:C,children:S})};Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return u}});
2
- //# sourceMappingURL=date-CuRT4hmU.cjs.map
1
+ const e=require(`./chunk-Bmb41Sf3.cjs`);let t=require(`@customafk/react-toolkit/utils`),n=require(`react`),r=require(`react/jsx-runtime`),i=require(`@customafk/react-toolkit/date-fns`);const a={weekdays:[`Chủ Nhật`,`Thứ Hai`,`Thứ Ba`,`Thứ Tư`,`Thứ Năm`,`Thứ Sáu`,`Thứ Bảy`],weekdaysShort:[`CN`,`T2`,`T3`,`T4`,`T5`,`T6`,`T7`],months:[`Tháng 1`,`Tháng 2`,`Tháng 3`,`Tháng 4`,`Tháng 5`,`Tháng 6`,`Tháng 7`,`Tháng 8`,`Tháng 9`,`Tháng 10`,`Tháng 11`,`Tháng 12`],monthsShort:[`T1`,`T2`,`T3`,`T4`,`T5`,`T6`,`T7`,`T8`,`T9`,`T10`,`T11`,`T12`]},o={"01-01":`Tết Dương lịch`,"03-08":`Quốc tế Phụ nữ`,"04-30":`Ngày Giải phóng miền Nam`,"05-01":`Quốc tế Lao động`,"09-02":`Quốc khánh`,"10-20":`Ngày Phụ nữ Việt Nam`,"11-20":`Ngày Nhà giáo Việt Nam`},s=Object.freeze({SECOND:1e3,MINUTE:60*1e3,HOUR:3600*1e3,DAY:1440*60*1e3,WEEK:10080*60*1e3,MONTH:720*60*60*1e3,YEAR:365*24*60*60*1e3}),c=Object.freeze({MINUTE:60,HOUR:3600,DAY:1440*60,WEEK:10080*60,MONTH:720*60*60,YEAR:365*24*60*60}),l=Object.freeze({HOUR:60,DAY:1440,WEEK:10080,MONTH:720*60}),u=({date:e,format:s=`medium`,showHoliday:l=!1,showTime:u=!1,className:d=``,title:f})=>{let p=(0,n.useMemo)(()=>{try{if(e instanceof Date)return(0,i.isValid)(e)?e:null;if(typeof e==`string`){let t=(0,i.parseISO)(e);return(0,i.isValid)(t)?t:new Date(e)}if(typeof e==`number`){let t=new Date(e);return(0,i.isValid)(t)?t:null}return null}catch{return null}},[e]),m=(0,n.useCallback)(e=>{let t=new Date,n=Math.floor((t.getTime()-e.getTime())/1e3);return n<60?`Vừa xong`:n<3600?`${Math.floor(n/c.MINUTE)} phút trước`:n<86400?`${Math.floor(n/c.HOUR)} giờ trước`:n<604800?`${Math.floor(n/c.DAY)} ngày trước`:n<2592e3?`${Math.floor(n/c.WEEK)} tuần trước`:n<31536e3?`${Math.floor(n/c.MONTH)} tháng trước`:`${Math.floor(n/c.YEAR)} năm trước`},[]),h=(0,n.useCallback)((e,t=!1)=>{let n=e.getDay();return t?a.weekdaysShort[n]:a.weekdays[n]},[]),g=(0,n.useCallback)((e,t=!1)=>{let n=e.getMonth();return t?a.monthsShort[n]:a.months[n]},[]),_=(0,n.useCallback)(e=>o[(0,i.format)(e,`MM-dd`)]||null,[]),v=(0,n.useCallback)(e=>{if((0,i.isToday)(e))return u?`Hôm nay ${(0,i.format)(e,`HH:mm`)}`:`Hôm nay`;if((0,i.isYesterday)(e))return u?`Hôm qua ${(0,i.format)(e,`HH:mm`)}`:`Hôm qua`;if((0,i.isTomorrow)(e))return u?`Ngày mai ${(0,i.format)(e,`HH:mm`)}`:`Ngày mai`;if((0,i.isThisWeek)(e)){let t=h(e);return u?`${t} ${(0,i.format)(e,`HH:mm`)}`:t}if((0,i.isThisMonth)(e)){let t=(0,i.format)(e,`d`);return u?`${t}/${(0,i.format)(e,`M`)} ${(0,i.format)(e,`HH:mm`)}`:`${t}/${(0,i.format)(e,`M`)}`}return(0,i.isThisYear)(e)?u?(0,i.format)(e,`d/M HH:mm`):(0,i.format)(e,`d/M`):u?(0,i.format)(e,`d/M/yyyy HH:mm`):(0,i.format)(e,`d/M/yyyy`)},[h,u]),y=(0,n.useCallback)((e,t)=>{let n=u?(0,i.format)(e,`, HH:mm`):``;switch(t){case`short`:return(0,i.format)(e,`d/M/yy`)+n;case`medium`:return(0,i.format)(e,`dd/MM/yyyy`)+n;case`long`:return`${(0,i.format)(e,`d`)} ${g(e)} ${(0,i.format)(e,`yyyy`)}`+n;case`full`:return`${h(e)}, ngày ${(0,i.format)(e,`d`)} ${g(e)} năm ${(0,i.format)(e,`yyyy`)}`+n;case`relative`:return m(e);case`datetime`:return(0,i.format)(e,`d/M/yyyy HH:mm`);case`time`:return(0,i.format)(e,`HH:mm`);case`smart`:return v(e);default:return(0,i.format)(e,`d/M/yyyy`)+n}},[v,g,h,m,u]);if(!p)return(0,r.jsx)(`span`,{className:(0,t.cn)(`text-muted-foreground text-sm`,d),children:`--/--/----`});let b=y(p,s),x=l?_(p):null,S=x?`${b} (${x})`:b,C=f||(0,i.format)(p,`EEEE, d MMMM yyyy HH:mm:ss`);return(0,r.jsx)(`time`,{dateTime:p.toISOString(),className:(0,t.cn)(`text-text-positive-weak text-xs tabular-nums`,d),title:C,children:S})};Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return u}});
2
+ //# sourceMappingURL=date-CTmoK8tv.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"date-CuRT4hmU.cjs","names":["DateDisplay: React.FC<Props>","date"],"sources":["../packages/constants.tsx","../packages/components/data-display/date.tsx"],"sourcesContent":["// Vietnamese locale configuration\nexport const vietnameseLocale = {\n weekdays: ['Chủ Nhật', 'Thứ Hai', 'Thứ Ba', 'Thứ Tư', 'Thứ Năm', 'Thứ Sáu', 'Thứ Bảy'],\n weekdaysShort: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],\n months: ['Tháng 1', 'Tháng 2', 'Tháng 3', 'Tháng 4', 'Tháng 5', 'Tháng 6', 'Tháng 7', 'Tháng 8', 'Tháng 9', 'Tháng 10', 'Tháng 11', 'Tháng 12'],\n monthsShort: ['T1', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7', 'T8', 'T9', 'T10', 'T11', 'T12'],\n};\n\n// Vietnamese holidays\nexport const vietnameseHolidays = {\n '01-01': 'Tết Dương lịch',\n '03-08': 'Quốc tế Phụ nữ',\n '04-30': 'Ngày Giải phóng miền Nam',\n '05-01': 'Quốc tế Lao động',\n '09-02': 'Quốc khánh',\n '10-20': 'Ngày Phụ nữ Việt Nam',\n '11-20': 'Ngày Nhà giáo Việt Nam',\n};\n\n// Time Constants in milliseconds, seconds, and minutes\nexport const TIME_IN_MS = Object.freeze({\n SECOND: 1000,\n MINUTE: 60 * 1000,\n HOUR: 60 * 60 * 1000,\n DAY: 24 * 60 * 60 * 1000,\n WEEK: 7 * 24 * 60 * 60 * 1000,\n MONTH: 30 * 24 * 60 * 60 * 1000, // Approximation for month length = 30 days\n YEAR: 365 * 24 * 60 * 60 * 1000,\n});\n\nexport const TIME_IN_SECONDS = Object.freeze({\n MINUTE: 60,\n HOUR: 60 * 60,\n DAY: 24 * 60 * 60,\n WEEK: 7 * 24 * 60 * 60,\n MONTH: 30 * 24 * 60 * 60,\n YEAR: 365 * 24 * 60 * 60,\n});\n\nexport const TIME_IN_MINUTES = Object.freeze({\n HOUR: 60,\n DAY: 24 * 60,\n WEEK: 7 * 24 * 60,\n MONTH: 30 * 24 * 60,\n});\n","import { useCallback, useMemo } from 'react';\n\nimport { format, isThisMonth, isThisWeek, isThisYear, isToday, isTomorrow, isValid, isYesterday, parseISO } from '@customafk/react-toolkit/date-fns';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { TIME_IN_SECONDS, vietnameseHolidays, vietnameseLocale } from '@/constants';\n\ninterface Props {\n date: Date | string | number;\n format?:\n | 'short' // 15/03/24\n | 'medium' // 15/03/2024\n | 'long' // 15 tháng 3, 2024\n | 'full' // Thứ Sáu, ngày 15 tháng 3 năm 2024\n | 'relative' // 2 giờ trước\n | 'datetime' // 15/03/2024 14:30\n | 'time' // 14:30\n | 'smart'; // Tự động chọn format phù hợp\n showHoliday?: boolean;\n showTime?: boolean;\n className?: string;\n title?: string; // Tooltip khi hover\n}\n\nexport const DateDisplay: React.FC<Props> = ({ date, format: formatType = 'medium', showHoliday = false, showTime = false, className = '', title }) => {\n const parsedDate = useMemo(() => {\n try {\n if (date instanceof Date) {\n return isValid(date) ? date : null;\n }\n if (typeof date === 'string') {\n const parsed = parseISO(date);\n return isValid(parsed) ? parsed : new Date(date);\n }\n if (typeof date === 'number') {\n const parsed = new Date(date);\n return isValid(parsed) ? parsed : null;\n }\n return null;\n } catch {\n return null;\n }\n }, [date]);\n\n // Format relative time in Vietnamese\n const formatRelativeTime = useCallback((date: Date): string => {\n const now = new Date();\n const diffInSeconds = Math.floor((now.getTime() - date.getTime()) / 1000);\n\n if (diffInSeconds < 60) return 'Vừa xong';\n if (diffInSeconds < 3600) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.MINUTE)} phút trước`;\n if (diffInSeconds < 86400) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.HOUR)} giờ trước`;\n if (diffInSeconds < 604800) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.DAY)} ngày trước`;\n if (diffInSeconds < 2592000) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.WEEK)} tuần trước`;\n if (diffInSeconds < 31536000) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.MONTH)} tháng trước`;\n return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.YEAR)} năm trước`;\n }, []);\n\n // Vietnamese weekday\n const getVietnameseWeekday = useCallback((date: Date, short: boolean = false): string => {\n const dayIndex = date.getDay();\n return short ? vietnameseLocale.weekdaysShort[dayIndex] : vietnameseLocale.weekdays[dayIndex];\n }, []);\n\n // Vietnamese month\n const getVietnameseMonth = useCallback((date: Date, short: boolean = false): string => {\n const monthIndex = date.getMonth();\n return short ? vietnameseLocale.monthsShort[monthIndex] : vietnameseLocale.months[monthIndex];\n }, []);\n\n // Check holiday\n const getHoliday = useCallback((date: Date): string | null => {\n const monthDay = format(date, 'MM-dd') as keyof typeof vietnameseHolidays;\n return vietnameseHolidays[monthDay] || null;\n }, []);\n\n // Smart format - choose appropriate format based on date\n const getSmartFormat = useCallback(\n (date: Date): string => {\n if (isToday(date)) {\n return showTime ? `Hôm nay ${format(date, 'HH:mm')}` : 'Hôm nay';\n }\n if (isYesterday(date)) {\n return showTime ? `Hôm qua ${format(date, 'HH:mm')}` : 'Hôm qua';\n }\n if (isTomorrow(date)) {\n return showTime ? `Ngày mai ${format(date, 'HH:mm')}` : 'Ngày mai';\n }\n if (isThisWeek(date)) {\n const weekday = getVietnameseWeekday(date);\n return showTime ? `${weekday} ${format(date, 'HH:mm')}` : weekday;\n }\n if (isThisMonth(date)) {\n const day = format(date, 'd');\n return showTime ? `${day}/${format(date, 'M')} ${format(date, 'HH:mm')}` : `${day}/${format(date, 'M')}`;\n }\n if (isThisYear(date)) {\n return showTime ? format(date, 'd/M HH:mm') : format(date, 'd/M');\n }\n return showTime ? format(date, 'd/M/yyyy HH:mm') : format(date, 'd/M/yyyy');\n },\n [getVietnameseWeekday, showTime]\n );\n\n // Main formatting function\n const formatDate = useCallback(\n (date: Date, type: string): string => {\n const timeStr = showTime ? format(date, ', HH:mm') : '';\n\n switch (type) {\n case 'short':\n return format(date, 'd/M/yy') + timeStr;\n\n case 'medium':\n return format(date, 'dd/MM/yyyy') + timeStr;\n\n case 'long':\n return `${format(date, 'd')} ${getVietnameseMonth(date)} ${format(date, 'yyyy')}` + timeStr;\n\n case 'full': {\n const data = `${getVietnameseWeekday(date)}, ngày ${format(date, 'd')} ${getVietnameseMonth(date)} năm ${format(date, 'yyyy')}`;\n return data + timeStr;\n }\n\n case 'relative':\n return formatRelativeTime(date);\n\n case 'datetime':\n return format(date, 'd/M/yyyy HH:mm');\n\n case 'time':\n return format(date, 'HH:mm');\n\n case 'smart':\n return getSmartFormat(date);\n\n default:\n return format(date, 'd/M/yyyy') + timeStr;\n }\n },\n [getSmartFormat, getVietnameseMonth, getVietnameseWeekday, formatRelativeTime, showTime]\n );\n\n if (!parsedDate) {\n return <span className={cn('text-muted-foreground text-sm', className)}>--/--/----</span>;\n }\n\n const formattedDate = formatDate(parsedDate, formatType);\n const holiday = showHoliday ? getHoliday(parsedDate) : null;\n const displayText = holiday ? `${formattedDate} (${holiday})` : formattedDate;\n const tooltipTitle = title || format(parsedDate, 'EEEE, d MMMM yyyy HH:mm:ss');\n\n return (\n <time dateTime={parsedDate.toISOString()} className={cn('text-text-positive-weak text-xs tabular-nums', className)} title={tooltipTitle}>\n {displayText}\n </time>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"date-CTmoK8tv.cjs","names":["DateDisplay: React.FC<Props>","date"],"sources":["../packages/constants.tsx","../packages/components/data-display/date.tsx"],"sourcesContent":["// Vietnamese locale configuration\nexport const vietnameseLocale = {\n weekdays: ['Chủ Nhật', 'Thứ Hai', 'Thứ Ba', 'Thứ Tư', 'Thứ Năm', 'Thứ Sáu', 'Thứ Bảy'],\n weekdaysShort: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],\n months: ['Tháng 1', 'Tháng 2', 'Tháng 3', 'Tháng 4', 'Tháng 5', 'Tháng 6', 'Tháng 7', 'Tháng 8', 'Tháng 9', 'Tháng 10', 'Tháng 11', 'Tháng 12'],\n monthsShort: ['T1', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7', 'T8', 'T9', 'T10', 'T11', 'T12'],\n};\n\n// Vietnamese holidays\nexport const vietnameseHolidays = {\n '01-01': 'Tết Dương lịch',\n '03-08': 'Quốc tế Phụ nữ',\n '04-30': 'Ngày Giải phóng miền Nam',\n '05-01': 'Quốc tế Lao động',\n '09-02': 'Quốc khánh',\n '10-20': 'Ngày Phụ nữ Việt Nam',\n '11-20': 'Ngày Nhà giáo Việt Nam',\n};\n\n// Time Constants in milliseconds, seconds, and minutes\nexport const TIME_IN_MS = Object.freeze({\n SECOND: 1000,\n MINUTE: 60 * 1000,\n HOUR: 60 * 60 * 1000,\n DAY: 24 * 60 * 60 * 1000,\n WEEK: 7 * 24 * 60 * 60 * 1000,\n MONTH: 30 * 24 * 60 * 60 * 1000, // Approximation for month length = 30 days\n YEAR: 365 * 24 * 60 * 60 * 1000,\n});\n\nexport const TIME_IN_SECONDS = Object.freeze({\n MINUTE: 60,\n HOUR: 60 * 60,\n DAY: 24 * 60 * 60,\n WEEK: 7 * 24 * 60 * 60,\n MONTH: 30 * 24 * 60 * 60,\n YEAR: 365 * 24 * 60 * 60,\n});\n\nexport const TIME_IN_MINUTES = Object.freeze({\n HOUR: 60,\n DAY: 24 * 60,\n WEEK: 7 * 24 * 60,\n MONTH: 30 * 24 * 60,\n});\n","import { useCallback, useMemo } from 'react';\n\nimport { format, isThisMonth, isThisWeek, isThisYear, isToday, isTomorrow, isValid, isYesterday, parseISO } from '@customafk/react-toolkit/date-fns';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { TIME_IN_SECONDS, vietnameseHolidays, vietnameseLocale } from '@/constants';\n\ninterface Props {\n date: Date | string | number;\n format?:\n | 'short' // 15/03/24\n | 'medium' // 15/03/2024\n | 'long' // 15 tháng 3, 2024\n | 'full' // Thứ Sáu, ngày 15 tháng 3 năm 2024\n | 'relative' // 2 giờ trước\n | 'datetime' // 15/03/2024 14:30\n | 'time' // 14:30\n | 'smart'; // Tự động chọn format phù hợp\n showHoliday?: boolean;\n showTime?: boolean;\n className?: string;\n title?: string; // Tooltip khi hover\n}\n\nexport const DateDisplay: React.FC<Props> = ({ date, format: formatType = 'medium', showHoliday = false, showTime = false, className = '', title }) => {\n const parsedDate = useMemo(() => {\n try {\n if (date instanceof Date) {\n return isValid(date) ? date : null;\n }\n if (typeof date === 'string') {\n const parsed = parseISO(date);\n return isValid(parsed) ? parsed : new Date(date);\n }\n if (typeof date === 'number') {\n const parsed = new Date(date);\n return isValid(parsed) ? parsed : null;\n }\n return null;\n } catch {\n return null;\n }\n }, [date]);\n\n // Format relative time in Vietnamese\n const formatRelativeTime = useCallback((date: Date): string => {\n const now = new Date();\n const diffInSeconds = Math.floor((now.getTime() - date.getTime()) / 1000);\n\n if (diffInSeconds < 60) return 'Vừa xong';\n if (diffInSeconds < 3600) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.MINUTE)} phút trước`;\n if (diffInSeconds < 86400) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.HOUR)} giờ trước`;\n if (diffInSeconds < 604800) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.DAY)} ngày trước`;\n if (diffInSeconds < 2592000) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.WEEK)} tuần trước`;\n if (diffInSeconds < 31536000) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.MONTH)} tháng trước`;\n return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.YEAR)} năm trước`;\n }, []);\n\n // Vietnamese weekday\n const getVietnameseWeekday = useCallback((date: Date, short: boolean = false): string => {\n const dayIndex = date.getDay();\n return short ? vietnameseLocale.weekdaysShort[dayIndex] : vietnameseLocale.weekdays[dayIndex];\n }, []);\n\n // Vietnamese month\n const getVietnameseMonth = useCallback((date: Date, short: boolean = false): string => {\n const monthIndex = date.getMonth();\n return short ? vietnameseLocale.monthsShort[monthIndex] : vietnameseLocale.months[monthIndex];\n }, []);\n\n // Check holiday\n const getHoliday = useCallback((date: Date): string | null => {\n const monthDay = format(date, 'MM-dd') as keyof typeof vietnameseHolidays;\n return vietnameseHolidays[monthDay] || null;\n }, []);\n\n // Smart format - choose appropriate format based on date\n const getSmartFormat = useCallback(\n (date: Date): string => {\n if (isToday(date)) {\n return showTime ? `Hôm nay ${format(date, 'HH:mm')}` : 'Hôm nay';\n }\n if (isYesterday(date)) {\n return showTime ? `Hôm qua ${format(date, 'HH:mm')}` : 'Hôm qua';\n }\n if (isTomorrow(date)) {\n return showTime ? `Ngày mai ${format(date, 'HH:mm')}` : 'Ngày mai';\n }\n if (isThisWeek(date)) {\n const weekday = getVietnameseWeekday(date);\n return showTime ? `${weekday} ${format(date, 'HH:mm')}` : weekday;\n }\n if (isThisMonth(date)) {\n const day = format(date, 'd');\n return showTime ? `${day}/${format(date, 'M')} ${format(date, 'HH:mm')}` : `${day}/${format(date, 'M')}`;\n }\n if (isThisYear(date)) {\n return showTime ? format(date, 'd/M HH:mm') : format(date, 'd/M');\n }\n return showTime ? format(date, 'd/M/yyyy HH:mm') : format(date, 'd/M/yyyy');\n },\n [getVietnameseWeekday, showTime]\n );\n\n // Main formatting function\n const formatDate = useCallback(\n (date: Date, type: string): string => {\n const timeStr = showTime ? format(date, ', HH:mm') : '';\n\n switch (type) {\n case 'short':\n return format(date, 'd/M/yy') + timeStr;\n\n case 'medium':\n return format(date, 'dd/MM/yyyy') + timeStr;\n\n case 'long':\n return `${format(date, 'd')} ${getVietnameseMonth(date)} ${format(date, 'yyyy')}` + timeStr;\n\n case 'full': {\n const data = `${getVietnameseWeekday(date)}, ngày ${format(date, 'd')} ${getVietnameseMonth(date)} năm ${format(date, 'yyyy')}`;\n return data + timeStr;\n }\n\n case 'relative':\n return formatRelativeTime(date);\n\n case 'datetime':\n return format(date, 'd/M/yyyy HH:mm');\n\n case 'time':\n return format(date, 'HH:mm');\n\n case 'smart':\n return getSmartFormat(date);\n\n default:\n return format(date, 'd/M/yyyy') + timeStr;\n }\n },\n [getSmartFormat, getVietnameseMonth, getVietnameseWeekday, formatRelativeTime, showTime]\n );\n\n if (!parsedDate) {\n return <span className={cn('text-muted-foreground text-sm', className)}>--/--/----</span>;\n }\n\n const formattedDate = formatDate(parsedDate, formatType);\n const holiday = showHoliday ? getHoliday(parsedDate) : null;\n const displayText = holiday ? `${formattedDate} (${holiday})` : formattedDate;\n const tooltipTitle = title || format(parsedDate, 'EEEE, d MMMM yyyy HH:mm:ss');\n\n return (\n <time dateTime={parsedDate.toISOString()} className={cn('text-text-positive-weak text-xs tabular-nums', className)} title={tooltipTitle}>\n {displayText}\n </time>\n );\n};\n"],"mappings":"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"}
@@ -1,23 +1,23 @@
1
- import * as react_jsx_runtime62 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime68 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_runtime62.JSX.Element;
7
+ }: React.ComponentProps<typeof Dialog.Root>): react_jsx_runtime68.JSX.Element;
8
8
  declare function DialogTrigger({
9
9
  ...props
10
- }: React.ComponentProps<typeof Dialog.Trigger>): react_jsx_runtime62.JSX.Element;
10
+ }: React.ComponentProps<typeof Dialog.Trigger>): react_jsx_runtime68.JSX.Element;
11
11
  declare function DialogPortal({
12
12
  ...props
13
- }: React.ComponentProps<typeof Dialog.Portal>): react_jsx_runtime62.JSX.Element;
13
+ }: React.ComponentProps<typeof Dialog.Portal>): react_jsx_runtime68.JSX.Element;
14
14
  declare function DialogClose({
15
15
  ...props
16
- }: React.ComponentProps<typeof Dialog.Close>): react_jsx_runtime62.JSX.Element;
16
+ }: React.ComponentProps<typeof Dialog.Close>): react_jsx_runtime68.JSX.Element;
17
17
  declare function DialogOverlay({
18
18
  className,
19
19
  ...props
20
- }: React.ComponentProps<typeof Dialog.Overlay>): react_jsx_runtime62.JSX.Element;
20
+ }: React.ComponentProps<typeof Dialog.Overlay>): react_jsx_runtime68.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_runtime62.JSX.Element;
28
+ }): react_jsx_runtime68.JSX.Element;
29
29
  declare function DialogHeader({
30
30
  className,
31
31
  ...props
32
- }: React.ComponentProps<'div'>): react_jsx_runtime62.JSX.Element;
32
+ }: React.ComponentProps<'div'>): react_jsx_runtime68.JSX.Element;
33
33
  declare function DialogFooter({
34
34
  className,
35
35
  ...props
36
- }: React.ComponentProps<'div'>): react_jsx_runtime62.JSX.Element;
36
+ }: React.ComponentProps<'div'>): react_jsx_runtime68.JSX.Element;
37
37
  declare function DialogTitle({
38
38
  className,
39
39
  ...props
40
- }: React.ComponentProps<typeof Dialog.Title>): react_jsx_runtime62.JSX.Element;
40
+ }: React.ComponentProps<typeof Dialog.Title>): react_jsx_runtime68.JSX.Element;
41
41
  declare function DialogDescription({
42
42
  className,
43
43
  ...props
44
- }: React.ComponentProps<typeof Dialog.Description>): react_jsx_runtime62.JSX.Element;
44
+ }: React.ComponentProps<typeof Dialog.Description>): react_jsx_runtime68.JSX.Element;
45
45
  //#endregion
46
46
  export { DialogFooter as a, DialogPortal as c, DialogDescription as i, DialogTitle as l, DialogClose as n, DialogHeader as o, DialogContent as r, DialogOverlay as s, Dialog$1 as t, DialogTrigger as u };
47
- //# sourceMappingURL=dialog-DigNrfAO.d.mts.map
47
+ //# sourceMappingURL=dialog-CyLgmqny.d.cts.map
@@ -0,0 +1,2 @@
1
+ const e=require(`./chunk-Bmb41Sf3.cjs`),t=require(`./heading-BEm5CCSE.cjs`),n=require(`./paragraph-4z_6Z5aj.cjs`),r=require(`./close-D_Ge7gnP.cjs`);let i=require(`@customafk/react-toolkit/utils`),a=require(`react/jsx-runtime`),o=require(`radix-ui`);function s({...e}){return(0,a.jsx)(o.Dialog.Root,{"data-slot":`dialog`,...e})}function c({...e}){return(0,a.jsx)(o.Dialog.Trigger,{"data-slot":`dialog-trigger`,...e})}function l({...e}){return(0,a.jsx)(o.Dialog.Portal,{"data-slot":`dialog-portal`,...e})}function u({...e}){return(0,a.jsx)(o.Dialog.Close,{"data-slot":`dialog-close`,...e})}function d({className:e,...t}){return(0,a.jsx)(o.Dialog.Overlay,{"data-slot":`dialog-overlay`,className:(0,i.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),...t})}function f({className:e,children:t,showCloseButton:n=!0,...s}){return(0,a.jsxs)(l,{"data-slot":`dialog-portal`,children:[(0,a.jsx)(d,{}),(0,a.jsxs)(o.Dialog.Content,{"data-slot":`dialog-content`,className:(0,i.cn)(`relative z-50 grid bg-background`,`gap-4 p-6 shadow-dialog outline-none`,`max-h-[85dvh] 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`,`fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2`,e),...s,children:[t,n&&(0,a.jsx)(o.Dialog.Close,{"data-slot":`dialog-close`,tabIndex:-1,asChild:!0,className:`absolute top-3 right-3`,children:(0,a.jsx)(r.t,{})})]})]})}function p({className:e,...t}){return(0,a.jsx)(`div`,{"data-slot":`dialog-header`,className:(0,i.cn)(`flex flex-col gap-2 text-center sm:text-left`,e),...t})}function m({className:e,...t}){return(0,a.jsx)(`div`,{"data-slot":`dialog-footer`,className:(0,i.cn)(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,e),...t})}function h({className:e,...n}){return(0,a.jsx)(o.Dialog.Title,{"data-slot":`dialog-title`,className:(0,i.cn)(t.t({level:`h3`}),e),...n})}function g({className:e,...t}){return(0,a.jsx)(o.Dialog.Description,{"data-slot":`dialog-description`,className:(0,i.cn)(n.n({variant:`muted`}),`not-first:mt-0`,e),...t})}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return c}});
2
+ //# sourceMappingURL=dialog-D5TBBX99.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog-D5TBBX99.cjs","names":["DialogPrimitive","CloseButton","headingVariants","paragraphVariants"],"sources":["../packages/components/ui/dialog.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Dialog as DialogPrimitive } from 'radix-ui';\nimport { CloseButton } from './buttons/close';\nimport { headingVariants } from '../typography/heading';\nimport { paragraphVariants } from '../typography/paragraph';\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 <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n 'relative z-50 grid bg-background',\n 'gap-4 p-6 shadow-dialog outline-none',\n 'max-h-[85dvh] 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 'fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2',\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close data-slot=\"dialog-close\" tabIndex={-1} asChild className=\"absolute top-3 right-3\">\n <CloseButton />\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\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(headingVariants({ level: 'h3' }), className)} {...props} />;\n}\n\nfunction DialogDescription({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(paragraphVariants({ variant: 'muted' }), 'not-first:mt-0', className)}\n {...props}\n />\n );\n}\n\nexport { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };\n"],"mappings":"yPASA,SAAS,EAAO,CAAE,GAAG,GAA4D,CAC/E,OAAO,EAAA,EAAA,KAACA,EAAAA,OAAgB,KAAA,CAAK,YAAU,SAAS,GAAI,GAAS,CAG/D,SAAS,EAAc,CAAE,GAAG,GAA+D,CACzF,OAAO,EAAA,EAAA,KAACA,EAAAA,OAAgB,QAAA,CAAQ,YAAU,iBAAiB,GAAI,GAAS,CAG1E,SAAS,EAAa,CAAE,GAAG,GAA8D,CACvF,OAAO,EAAA,EAAA,KAACA,EAAAA,OAAgB,OAAA,CAAO,YAAU,gBAAgB,GAAI,GAAS,CAGxE,SAAS,EAAY,CAAE,GAAG,GAA6D,CACrF,OAAO,EAAA,EAAA,KAACA,EAAAA,OAAgB,MAAA,CAAM,YAAU,eAAe,GAAI,GAAS,CAGtE,SAAS,EAAc,CAAE,YAAW,GAAG,GAA+D,CACpG,OACE,EAAA,EAAA,KAACA,EAAAA,OAAgB,QAAA,CACf,YAAU,iBACV,WAAA,EAAA,EAAA,IACE,iCACA,+BACA,8BACA,kCACA,iCACA,EACD,CACD,GAAI,GACJ,CAIN,SAAS,EAAc,CACrB,YACA,WACA,kBAAkB,GAClB,GAAG,GAGF,CACD,OACE,EAAA,EAAA,MAAC,EAAA,CAAa,YAAU,2BACtB,EAAA,EAAA,KAAC,EAAA,EAAA,CAAgB,EACjB,EAAA,EAAA,MAACA,EAAAA,OAAgB,QAAA,CACf,YAAU,iBACV,WAAA,EAAA,EAAA,IACE,mCACA,uCACA,2DACA,2BACA,+BACA,8BACA,+BACA,kCACA,iCACA,kCACA,2DACA,EACD,CACD,GAAI,YAEH,EACA,IACC,EAAA,EAAA,KAACA,EAAAA,OAAgB,MAAA,CAAM,YAAU,eAAe,SAAU,GAAI,QAAA,GAAQ,UAAU,mCAC9E,EAAA,EAAA,KAACC,EAAAA,EAAAA,EAAAA,CAAc,EACO,CAAA,EAEF,CAAA,EACb,CAInB,SAAS,EAAa,CAAE,YAAW,GAAG,GAAsC,CAC1E,OAAO,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,gBAAgB,WAAA,EAAA,EAAA,IAAc,+CAAgD,EAAU,CAAE,GAAI,GAAS,CAG/H,SAAS,EAAa,CAAE,YAAW,GAAG,GAAsC,CAC1E,OAAO,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,gBAAgB,WAAA,EAAA,EAAA,IAAc,yDAA0D,EAAU,CAAE,GAAI,GAAS,CAGzI,SAAS,EAAY,CAAE,YAAW,GAAG,GAA6D,CAChG,OAAO,EAAA,EAAA,KAACD,EAAAA,OAAgB,MAAA,CAAM,YAAU,eAAe,WAAA,EAAA,EAAA,IAAcE,EAAAA,EAAgB,CAAE,MAAO,KAAM,CAAC,CAAE,EAAU,CAAE,GAAI,GAAS,CAGlI,SAAS,EAAkB,CAAE,YAAW,GAAG,GAAmE,CAC5G,OACE,EAAA,EAAA,KAACF,EAAAA,OAAgB,YAAA,CACf,YAAU,qBACV,WAAA,EAAA,EAAA,IAAcG,EAAAA,EAAkB,CAAE,QAAS,QAAS,CAAC,CAAE,iBAAkB,EAAU,CACnF,GAAI,GACJ"}
@@ -0,0 +1,2 @@
1
+ import{t as e}from"./heading--VmdIi7C.mjs";import{n as t}from"./paragraph-BTJV4aeF.mjs";import{t as n}from"./close-DfuHB7kq.mjs";import{cn as r}from"@customafk/react-toolkit/utils";import{jsx as i,jsxs as a}from"react/jsx-runtime";import{Dialog as o}from"radix-ui";function s({...e}){return i(o.Root,{"data-slot":`dialog`,...e})}function c({...e}){return i(o.Trigger,{"data-slot":`dialog-trigger`,...e})}function l({...e}){return i(o.Portal,{"data-slot":`dialog-portal`,...e})}function u({...e}){return i(o.Close,{"data-slot":`dialog-close`,...e})}function d({className:e,...t}){return i(o.Overlay,{"data-slot":`dialog-overlay`,className:r(`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),...t})}function f({className:e,children:t,showCloseButton:s=!0,...c}){return a(l,{"data-slot":`dialog-portal`,children:[i(d,{}),a(o.Content,{"data-slot":`dialog-content`,className:r(`relative z-50 grid bg-background`,`gap-4 p-6 shadow-dialog outline-none`,`max-h-[85dvh] 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`,`fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2`,e),...c,children:[t,s&&i(o.Close,{"data-slot":`dialog-close`,tabIndex:-1,asChild:!0,className:`absolute top-3 right-3`,children:i(n,{})})]})]})}function p({className:e,...t}){return i(`div`,{"data-slot":`dialog-header`,className:r(`flex flex-col gap-2 text-center sm:text-left`,e),...t})}function m({className:e,...t}){return i(`div`,{"data-slot":`dialog-footer`,className:r(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,e),...t})}function h({className:t,...n}){return i(o.Title,{"data-slot":`dialog-title`,className:r(e({level:`h3`}),t),...n})}function g({className:e,...n}){return i(o.Description,{"data-slot":`dialog-description`,className:r(t({variant:`muted`}),`not-first:mt-0`,e),...n})}export{m as a,l as c,g as i,h as l,u as n,p as o,f as r,d as s,s as t,c as u};
2
+ //# sourceMappingURL=dialog-DSvmcuYl.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog-DSvmcuYl.mjs","names":["Dialog","DialogPrimitive"],"sources":["../packages/components/ui/dialog.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Dialog as DialogPrimitive } from 'radix-ui';\nimport { CloseButton } from './buttons/close';\nimport { headingVariants } from '../typography/heading';\nimport { paragraphVariants } from '../typography/paragraph';\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 <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n 'relative z-50 grid bg-background',\n 'gap-4 p-6 shadow-dialog outline-none',\n 'max-h-[85dvh] 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 'fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2',\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close data-slot=\"dialog-close\" tabIndex={-1} asChild className=\"absolute top-3 right-3\">\n <CloseButton />\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\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(headingVariants({ level: 'h3' }), className)} {...props} />;\n}\n\nfunction DialogDescription({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(paragraphVariants({ variant: 'muted' }), 'not-first:mt-0', className)}\n {...props}\n />\n );\n}\n\nexport { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };\n"],"mappings":"yQASA,SAASA,EAAO,CAAE,GAAG,GAA4D,CAC/E,OAAO,EAACC,EAAgB,KAAA,CAAK,YAAU,SAAS,GAAI,GAAS,CAG/D,SAAS,EAAc,CAAE,GAAG,GAA+D,CACzF,OAAO,EAACA,EAAgB,QAAA,CAAQ,YAAU,iBAAiB,GAAI,GAAS,CAG1E,SAAS,EAAa,CAAE,GAAG,GAA8D,CACvF,OAAO,EAACA,EAAgB,OAAA,CAAO,YAAU,gBAAgB,GAAI,GAAS,CAGxE,SAAS,EAAY,CAAE,GAAG,GAA6D,CACrF,OAAO,EAACA,EAAgB,MAAA,CAAM,YAAU,eAAe,GAAI,GAAS,CAGtE,SAAS,EAAc,CAAE,YAAW,GAAG,GAA+D,CACpG,OACE,EAACA,EAAgB,QAAA,CACf,YAAU,iBACV,UAAW,EACT,iCACA,+BACA,8BACA,kCACA,iCACA,EACD,CACD,GAAI,GACJ,CAIN,SAAS,EAAc,CACrB,YACA,WACA,kBAAkB,GAClB,GAAG,GAGF,CACD,OACE,EAAC,EAAA,CAAa,YAAU,0BACtB,EAAC,EAAA,EAAA,CAAgB,CACjB,EAACA,EAAgB,QAAA,CACf,YAAU,iBACV,UAAW,EACT,mCACA,uCACA,2DACA,2BACA,+BACA,8BACA,+BACA,kCACA,iCACA,kCACA,2DACA,EACD,CACD,GAAI,YAEH,EACA,GACC,EAACA,EAAgB,MAAA,CAAM,YAAU,eAAe,SAAU,GAAI,QAAA,GAAQ,UAAU,kCAC9E,EAAC,EAAA,EAAA,CAAc,EACO,CAAA,EAEF,CAAA,EACb,CAInB,SAAS,EAAa,CAAE,YAAW,GAAG,GAAsC,CAC1E,OAAO,EAAC,MAAA,CAAI,YAAU,gBAAgB,UAAW,EAAG,+CAAgD,EAAU,CAAE,GAAI,GAAS,CAG/H,SAAS,EAAa,CAAE,YAAW,GAAG,GAAsC,CAC1E,OAAO,EAAC,MAAA,CAAI,YAAU,gBAAgB,UAAW,EAAG,yDAA0D,EAAU,CAAE,GAAI,GAAS,CAGzI,SAAS,EAAY,CAAE,YAAW,GAAG,GAA6D,CAChG,OAAO,EAACA,EAAgB,MAAA,CAAM,YAAU,eAAe,UAAW,EAAG,EAAgB,CAAE,MAAO,KAAM,CAAC,CAAE,EAAU,CAAE,GAAI,GAAS,CAGlI,SAAS,EAAkB,CAAE,YAAW,GAAG,GAAmE,CAC5G,OACE,EAACA,EAAgB,YAAA,CACf,YAAU,qBACV,UAAW,EAAG,EAAkB,CAAE,QAAS,QAAS,CAAC,CAAE,iBAAkB,EAAU,CACnF,GAAI,GACJ"}
@@ -1,23 +1,23 @@
1
- import * as react_jsx_runtime75 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime204 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_runtime75.JSX.Element;
7
+ }: React.ComponentProps<typeof Dialog.Root>): react_jsx_runtime204.JSX.Element;
8
8
  declare function DialogTrigger({
9
9
  ...props
10
- }: React.ComponentProps<typeof Dialog.Trigger>): react_jsx_runtime75.JSX.Element;
10
+ }: React.ComponentProps<typeof Dialog.Trigger>): react_jsx_runtime204.JSX.Element;
11
11
  declare function DialogPortal({
12
12
  ...props
13
- }: React.ComponentProps<typeof Dialog.Portal>): react_jsx_runtime75.JSX.Element;
13
+ }: React.ComponentProps<typeof Dialog.Portal>): react_jsx_runtime204.JSX.Element;
14
14
  declare function DialogClose({
15
15
  ...props
16
- }: React.ComponentProps<typeof Dialog.Close>): react_jsx_runtime75.JSX.Element;
16
+ }: React.ComponentProps<typeof Dialog.Close>): react_jsx_runtime204.JSX.Element;
17
17
  declare function DialogOverlay({
18
18
  className,
19
19
  ...props
20
- }: React.ComponentProps<typeof Dialog.Overlay>): react_jsx_runtime75.JSX.Element;
20
+ }: React.ComponentProps<typeof Dialog.Overlay>): react_jsx_runtime204.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_runtime75.JSX.Element;
28
+ }): react_jsx_runtime204.JSX.Element;
29
29
  declare function DialogHeader({
30
30
  className,
31
31
  ...props
32
- }: React.ComponentProps<'div'>): react_jsx_runtime75.JSX.Element;
32
+ }: React.ComponentProps<'div'>): react_jsx_runtime204.JSX.Element;
33
33
  declare function DialogFooter({
34
34
  className,
35
35
  ...props
36
- }: React.ComponentProps<'div'>): react_jsx_runtime75.JSX.Element;
36
+ }: React.ComponentProps<'div'>): react_jsx_runtime204.JSX.Element;
37
37
  declare function DialogTitle({
38
38
  className,
39
39
  ...props
40
- }: React.ComponentProps<typeof Dialog.Title>): react_jsx_runtime75.JSX.Element;
40
+ }: React.ComponentProps<typeof Dialog.Title>): react_jsx_runtime204.JSX.Element;
41
41
  declare function DialogDescription({
42
42
  className,
43
43
  ...props
44
- }: React.ComponentProps<typeof Dialog.Description>): react_jsx_runtime75.JSX.Element;
44
+ }: React.ComponentProps<typeof Dialog.Description>): react_jsx_runtime204.JSX.Element;
45
45
  //#endregion
46
46
  export { DialogFooter as a, DialogPortal as c, DialogDescription as i, DialogTitle as l, DialogClose as n, DialogHeader as o, DialogContent as r, DialogOverlay as s, Dialog$1 as t, DialogTrigger as u };
47
- //# sourceMappingURL=dialog-UWrYag-8.d.cts.map
47
+ //# sourceMappingURL=dialog-DdkuhWsq.d.mts.map
@@ -1,2 +1,2 @@
1
- const e=require(`../chunk-Bmb41Sf3.cjs`);require(`../button.variants-Bo2vzQp5.cjs`);const t=require(`../ui/alert-dialog.cjs`);let n=require(`react/jsx-runtime`);const 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,{type:`button`,className:`min-h-9 w-full md:w-24`,onClick:e=>{s?.(),e.preventDefault(),e.stopPropagation()},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-Bmb41Sf3.cjs`);require(`../heading-BEm5CCSE.cjs`),require(`../paragraph-4z_6Z5aj.cjs`),require(`../button.variants-8QOIR433.cjs`);const t=require(`../ui/alert-dialog.cjs`);let n=require(`react/jsx-runtime`);const 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,{type:`button`,className:`min-h-9 w-full md:w-24`,onClick:e=>{s?.(),e.preventDefault(),e.stopPropagation()},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 +1 @@
1
- {"version":3,"file":"confirm-dialog.cjs","names":["ConfirmDialog: React.FC<React.PropsWithChildren<Props>>","AlertDialog","AlertDialogContent","AlertDialogHeader","AlertDialogTitle","AlertDialogDescription","AlertDialogFooter","AlertDialogCancel","AlertDialogAction"],"sources":["../../packages/components/dialogs/confirm-dialog.tsx"],"sourcesContent":["import {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n} from '../ui/alert-dialog';\n\ntype Props = {\n open?: boolean;\n isLoading?: boolean;\n title: string;\n description: string;\n onOpenChange?: (open: boolean) => void;\n onConfirm?: () => Promise<void> | void;\n};\n\nexport const ConfirmDialog: React.FC<React.PropsWithChildren<Props>> = ({ open, isLoading = false, title, description, onOpenChange, onConfirm }) => {\n return (\n <AlertDialog open={open} onOpenChange={onOpenChange}>\n <AlertDialogContent>\n <AlertDialogHeader className=\"gap-0\">\n <AlertDialogTitle>{title}</AlertDialogTitle>\n <AlertDialogDescription>{description}</AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel>Cancel</AlertDialogCancel>\n <AlertDialogAction\n type=\"button\"\n className=\"min-h-9 w-full md:w-24\"\n onClick={e => {\n onConfirm?.();\n e.preventDefault();\n e.stopPropagation();\n }}\n >\n {!isLoading ? (\n 'Confirm'\n ) : (\n <div className=\"absolute inset-0 flex items-center justify-center\">\n <div className=\"loader-spinner text-muted-foreground\" />\n </div>\n )}\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n );\n};\n"],"mappings":"iKAoBA,MAAaA,GAA2D,CAAE,OAAM,YAAY,GAAO,QAAO,cAAa,eAAc,gBAEjI,EAAA,EAAA,KAACC,EAAAA,YAAAA,CAAkB,OAAoB,yBACrC,EAAA,EAAA,MAACC,EAAAA,mBAAAA,CAAAA,SAAAA,EACC,EAAA,EAAA,MAACC,EAAAA,kBAAAA,CAAkB,UAAU,mBAC3B,EAAA,EAAA,KAACC,EAAAA,iBAAAA,CAAAA,SAAkB,EAAA,CAAyB,EAC5C,EAAA,EAAA,KAACC,EAAAA,uBAAAA,CAAAA,SAAwB,EAAA,CAAqC,CAAA,EAC5C,EACpB,EAAA,EAAA,MAACC,EAAAA,kBAAAA,CAAAA,SAAAA,EACC,EAAA,EAAA,KAACC,EAAAA,kBAAAA,CAAAA,SAAkB,SAAA,CAA0B,EAC7C,EAAA,EAAA,KAACC,EAAAA,kBAAAA,CACC,KAAK,SACL,UAAU,yBACV,QAAS,GAAK,CACZ,KAAa,CACb,EAAE,gBAAgB,CAClB,EAAE,iBAAiB,WAGnB,GAGA,EAAA,EAAA,KAAC,MAAA,CAAI,UAAU,8DACb,EAAA,EAAA,KAAC,MAAA,CAAI,UAAU,uCAAA,CAAyC,EACpD,CAJN,WAMgB,CAAA,CAAA,CACF,CAAA,CAAA,CACD,EACT"}
1
+ {"version":3,"file":"confirm-dialog.cjs","names":["ConfirmDialog: React.FC<React.PropsWithChildren<Props>>","AlertDialog","AlertDialogContent","AlertDialogHeader","AlertDialogTitle","AlertDialogDescription","AlertDialogFooter","AlertDialogCancel","AlertDialogAction"],"sources":["../../packages/components/dialogs/confirm-dialog.tsx"],"sourcesContent":["import {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n} from '../ui/alert-dialog';\n\ntype Props = {\n open?: boolean;\n isLoading?: boolean;\n title: string;\n description: string;\n onOpenChange?: (open: boolean) => void;\n onConfirm?: () => Promise<void> | void;\n};\n\nexport const ConfirmDialog: React.FC<React.PropsWithChildren<Props>> = ({ open, isLoading = false, title, description, onOpenChange, onConfirm }) => {\n return (\n <AlertDialog open={open} onOpenChange={onOpenChange}>\n <AlertDialogContent>\n <AlertDialogHeader className=\"gap-0\">\n <AlertDialogTitle>{title}</AlertDialogTitle>\n <AlertDialogDescription>{description}</AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel>Cancel</AlertDialogCancel>\n <AlertDialogAction\n type=\"button\"\n className=\"min-h-9 w-full md:w-24\"\n onClick={e => {\n onConfirm?.();\n e.preventDefault();\n e.stopPropagation();\n }}\n >\n {!isLoading ? (\n 'Confirm'\n ) : (\n <div className=\"absolute inset-0 flex items-center justify-center\">\n <div className=\"loader-spinner text-muted-foreground\" />\n </div>\n )}\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n );\n};\n"],"mappings":"yOAoBA,MAAaA,GAA2D,CAAE,OAAM,YAAY,GAAO,QAAO,cAAa,eAAc,gBAEjI,EAAA,EAAA,KAACC,EAAAA,YAAAA,CAAkB,OAAoB,yBACrC,EAAA,EAAA,MAACC,EAAAA,mBAAAA,CAAAA,SAAAA,EACC,EAAA,EAAA,MAACC,EAAAA,kBAAAA,CAAkB,UAAU,mBAC3B,EAAA,EAAA,KAACC,EAAAA,iBAAAA,CAAAA,SAAkB,EAAA,CAAyB,EAC5C,EAAA,EAAA,KAACC,EAAAA,uBAAAA,CAAAA,SAAwB,EAAA,CAAqC,CAAA,EAC5C,EACpB,EAAA,EAAA,MAACC,EAAAA,kBAAAA,CAAAA,SAAAA,EACC,EAAA,EAAA,KAACC,EAAAA,kBAAAA,CAAAA,SAAkB,SAAA,CAA0B,EAC7C,EAAA,EAAA,KAACC,EAAAA,kBAAAA,CACC,KAAK,SACL,UAAU,yBACV,QAAS,GAAK,CACZ,KAAa,CACb,EAAE,gBAAgB,CAClB,EAAE,iBAAiB,WAGnB,GAGA,EAAA,EAAA,KAAC,MAAA,CAAI,UAAU,8DACb,EAAA,EAAA,KAAC,MAAA,CAAI,UAAU,uCAAA,CAAyC,EACpD,CAJN,WAMgB,CAAA,CAAA,CACF,CAAA,CAAA,CACD,EACT"}
@@ -1,2 +1,2 @@
1
- import"../button.variants-DBOg9vCn.mjs";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"../ui/alert-dialog.mjs";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,{type:`button`,className:`min-h-9 w-full md:w-24`,onClick:e=>{h?.(),e.preventDefault(),e.stopPropagation()},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"../heading--VmdIi7C.mjs";import"../paragraph-BTJV4aeF.mjs";import"../button.variants-CL2rLGYO.mjs";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"../ui/alert-dialog.mjs";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,{type:`button`,className:`min-h-9 w-full md:w-24`,onClick:e=>{h?.(),e.preventDefault(),e.stopPropagation()},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.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"confirm-dialog.mjs","names":["ConfirmDialog: React.FC<React.PropsWithChildren<Props>>"],"sources":["../../packages/components/dialogs/confirm-dialog.tsx"],"sourcesContent":["import {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n} from '../ui/alert-dialog';\n\ntype Props = {\n open?: boolean;\n isLoading?: boolean;\n title: string;\n description: string;\n onOpenChange?: (open: boolean) => void;\n onConfirm?: () => Promise<void> | void;\n};\n\nexport const ConfirmDialog: React.FC<React.PropsWithChildren<Props>> = ({ open, isLoading = false, title, description, onOpenChange, onConfirm }) => {\n return (\n <AlertDialog open={open} onOpenChange={onOpenChange}>\n <AlertDialogContent>\n <AlertDialogHeader className=\"gap-0\">\n <AlertDialogTitle>{title}</AlertDialogTitle>\n <AlertDialogDescription>{description}</AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel>Cancel</AlertDialogCancel>\n <AlertDialogAction\n type=\"button\"\n className=\"min-h-9 w-full md:w-24\"\n onClick={e => {\n onConfirm?.();\n e.preventDefault();\n e.stopPropagation();\n }}\n >\n {!isLoading ? (\n 'Confirm'\n ) : (\n <div className=\"absolute inset-0 flex items-center justify-center\">\n <div className=\"loader-spinner text-muted-foreground\" />\n </div>\n )}\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n );\n};\n"],"mappings":"qTAoBA,MAAaA,GAA2D,CAAE,OAAM,YAAY,GAAO,QAAO,cAAa,eAAc,eAEjI,EAAC,EAAA,CAAkB,OAAoB,wBACrC,EAAC,EAAA,CAAA,SAAA,CACC,EAAC,EAAA,CAAkB,UAAU,kBAC3B,EAAC,EAAA,CAAA,SAAkB,EAAA,CAAyB,CAC5C,EAAC,EAAA,CAAA,SAAwB,EAAA,CAAqC,CAAA,EAC5C,CACpB,EAAC,EAAA,CAAA,SAAA,CACC,EAAC,EAAA,CAAA,SAAkB,SAAA,CAA0B,CAC7C,EAAC,EAAA,CACC,KAAK,SACL,UAAU,yBACV,QAAS,GAAK,CACZ,KAAa,CACb,EAAE,gBAAgB,CAClB,EAAE,iBAAiB,WAGnB,EAGA,EAAC,MAAA,CAAI,UAAU,6DACb,EAAC,MAAA,CAAI,UAAU,uCAAA,CAAyC,EACpD,CAJN,WAMgB,CAAA,CAAA,CACF,CAAA,CAAA,CACD,EACT"}
1
+ {"version":3,"file":"confirm-dialog.mjs","names":["ConfirmDialog: React.FC<React.PropsWithChildren<Props>>"],"sources":["../../packages/components/dialogs/confirm-dialog.tsx"],"sourcesContent":["import {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n} from '../ui/alert-dialog';\n\ntype Props = {\n open?: boolean;\n isLoading?: boolean;\n title: string;\n description: string;\n onOpenChange?: (open: boolean) => void;\n onConfirm?: () => Promise<void> | void;\n};\n\nexport const ConfirmDialog: React.FC<React.PropsWithChildren<Props>> = ({ open, isLoading = false, title, description, onOpenChange, onConfirm }) => {\n return (\n <AlertDialog open={open} onOpenChange={onOpenChange}>\n <AlertDialogContent>\n <AlertDialogHeader className=\"gap-0\">\n <AlertDialogTitle>{title}</AlertDialogTitle>\n <AlertDialogDescription>{description}</AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel>Cancel</AlertDialogCancel>\n <AlertDialogAction\n type=\"button\"\n className=\"min-h-9 w-full md:w-24\"\n onClick={e => {\n onConfirm?.();\n e.preventDefault();\n e.stopPropagation();\n }}\n >\n {!isLoading ? (\n 'Confirm'\n ) : (\n <div className=\"absolute inset-0 flex items-center justify-center\">\n <div className=\"loader-spinner text-muted-foreground\" />\n </div>\n )}\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n );\n};\n"],"mappings":"uXAoBA,MAAaA,GAA2D,CAAE,OAAM,YAAY,GAAO,QAAO,cAAa,eAAc,eAEjI,EAAC,EAAA,CAAkB,OAAoB,wBACrC,EAAC,EAAA,CAAA,SAAA,CACC,EAAC,EAAA,CAAkB,UAAU,kBAC3B,EAAC,EAAA,CAAA,SAAkB,EAAA,CAAyB,CAC5C,EAAC,EAAA,CAAA,SAAwB,EAAA,CAAqC,CAAA,EAC5C,CACpB,EAAC,EAAA,CAAA,SAAA,CACC,EAAC,EAAA,CAAA,SAAkB,SAAA,CAA0B,CAC7C,EAAC,EAAA,CACC,KAAK,SACL,UAAU,yBACV,QAAS,GAAK,CACZ,KAAa,CACb,EAAE,gBAAgB,CAClB,EAAE,iBAAiB,WAGnB,EAGA,EAAC,MAAA,CAAI,UAAU,6DACb,EAAC,MAAA,CAAI,UAAU,uCAAA,CAAyC,EACpD,CAJN,WAMgB,CAAA,CAAA,CACF,CAAA,CAAA,CACD,EACT"}
@@ -1,2 +1,2 @@
1
- "use client";const e=require(`../../../chunk-Bmb41Sf3.cjs`);require(`../../../button.variants-Bo2vzQp5.cjs`);const t=require(`../../../button-BLYTfCyl.cjs`),n=require(`../../../skeleton-oQFT4xR2.cjs`),r=require(`../../../tooltip-DMFoP_sB.cjs`),i=require(`../../../separator-DSZyCT2g.cjs`),a=require(`../../../sheet-CxHNvLcP.cjs`);let o=require(`@customafk/react-toolkit/utils`),s=require(`react/jsx-runtime`),c=require(`lucide-react`),l=require(`react`),u=require(`class-variance-authority`),d=require(`radix-ui`),f=require(`@customafk/react-toolkit/hooks/useMobile`);const p=`detai_dialog_sidebar_state`,m=3600*24*7,h=`20rem`,g=`18rem`,_=`3rem`,v=`p`,y=(0,l.createContext)(null);function b(){let e=(0,l.use)(y);if(!e)throw Error(`useSidebar must be used within a SidebarProvider.`);return e}function x({defaultOpen:e=!0,open:t,onOpenChange:n,className:i,style:a,children:c,...u}){let d=(0,f.useIsMobile)(),[p,m]=(0,l.useState)(!1),[h,g]=(0,l.useState)(e),_=t??h,v=(0,l.useCallback)(e=>{let t=typeof e==`function`?e(_):e;n?n(t):g(t),document.cookie=`detai_dialog_sidebar_state=${t}; path=/; max-age=604800`},[n,_]),b=(0,l.useCallback)(()=>d?m(e=>!e):v(e=>!e),[d,v]);(0,l.useEffect)(()=>{let e=e=>{e.key===`p`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),b())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[b]);let x=_?`expanded`:`collapsed`,S=(0,l.useMemo)(()=>({state:x,isMobile:d,toggleSidebar:b,open:_,setOpen:v,openMobile:p,setOpenMobile:m}),[x,d,_,v,p,b]);return(0,s.jsx)(y.Provider,{value:S,children:(0,s.jsx)(r.r,{delayDuration:0,children:(0,s.jsx)(`div`,{"data-slot":`sidebar-wrapper`,style:{"--sidebar-width":`20rem`,"--sidebar-width-icon":`3rem`,...a},className:(0,o.cn)(`group/sidebar-wrapper flex h-full min-h-[85dvh] w-full items-start has-data-[variant=inset]:bg-sidebar`,i),...u,children:c})})})}function S({side:e=`left`,variant:t=`sidebar`,collapsible:n=`offcanvas`,className:r,children:i,...c}){let{state:l,isMobile:u,openMobile:d,setOpenMobile:f}=b();return n===`none`?(0,s.jsx)(`div`,{"data-slot":`sidebar`,className:(0,o.cn)(`flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground`,r),...c,children:i}):u?(0,s.jsx)(a.t,{open:d,onOpenChange:f,...c,children:(0,s.jsxs)(a.r,{"data-sidebar":`sidebar`,"data-slot":`sidebar`,"data-mobile":`true`,className:`z-20 hidden w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground shadow-nav md:flex [&>button]:hidden`,style:{"--sidebar-width":`18rem`},side:e,children:[(0,s.jsxs)(a.o,{className:`sr-only`,children:[(0,s.jsx)(a.s,{children:`Sidebar`}),(0,s.jsx)(a.i,{children:`Displays the mobile sidebar.`})]}),(0,s.jsx)(`div`,{className:`flex h-full w-full flex-col`,children:i})]})}):(0,s.jsxs)(`div`,{className:`group peer hidden text-sidebar-foreground md:block`,"data-state":l,"data-collapsible":l===`collapsed`?n:``,"data-variant":t,"data-side":e,"data-slot":`sidebar`,children:[(0,s.jsx)(`div`,{"data-slot":`sidebar-gap`,className:(0,o.cn)(`relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear`,`group-data-[collapsible=offcanvas]:w-0`,`group-data-[side=right]:rotate-180`,t===`floating`||t===`inset`?`group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon)`)}),(0,s.jsx)(`div`,{"data-slot":`sidebar-container`,className:(0,o.cn)(`absolute inset-y-0 z-20 hidden w-(--sidebar-width) shadow-nav transition-[left,right,width] duration-200 ease-linear md:flex`,e===`left`?`left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]`:`right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]`,t===`floating`||t===`inset`?`p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon)`,r),...c,children:(0,s.jsx)(`div`,{"data-sidebar":`sidebar`,"data-slot":`sidebar-inner`,className:(0,o.cn)(`flex size-full flex-col shadow-nav`,`group-data-[variant=floating]:border-sidebar-border`,`group-data-[variant=floating]:rounded-lg`,`group-data-[variant=floating]:border`,`group-data-[variant=floating]:shadow-sm`),children:i})})]})}function C({className:e,onClick:n,...r}){let{toggleSidebar:i}=b();return(0,s.jsxs)(t.t,{"data-sidebar":`trigger`,"data-slot":`sidebar-trigger`,variant:`ghost`,color:`secondary`,size:`icon`,className:(0,o.cn)(`size-10 rounded-full [&_svg]:size-6!`,e),onClick:e=>{n?.(e),i()},...r,children:[(0,s.jsx)(c.MenuIcon,{}),(0,s.jsx)(`span`,{className:`sr-only`,children:`Toggle Sidebar`})]})}function w({className:e,...t}){let{toggleSidebar:n}=b();return(0,s.jsx)(`button`,{"data-sidebar":`rail`,"data-slot":`sidebar-rail`,"aria-label":`Toggle Sidebar`,tabIndex:-1,onClick:n,title:`Toggle Sidebar`,className:(0,o.cn)(`absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear sm:flex`,`after:absolute`,`after:inset-y-0`,`after:left-1/2 after:w-0.5`,`hover:after:bg-sidebar-border`,`group-data-[side=left]:-right-4`,`group-data-[side=right]:left-0`,`in-data-[side=left]:cursor-w-resize`,`in-data-[side=right]:cursor-e-resize`,`[[data-side=left][data-state=collapsed]_&]:cursor-e-resize`,`[[data-side=right][data-state=collapsed]_&]:cursor-w-resize`,`hover:group-data-[collapsible=offcanvas]:bg-sidebar`,`group-data-[collapsible=offcanvas]:translate-x-0`,`group-data-[collapsible=offcanvas]:after:left-full`,`[[data-side=left][data-collapsible=offcanvas]_&]:-right-2`,`[[data-side=right][data-collapsible=offcanvas]_&]:-left-2`,e),...t})}function T({className:e,...t}){return(0,s.jsx)(`main`,{"data-slot":`sidebar-inset`,className:(0,o.cn)(`relative flex w-full flex-1 flex-col bg-background`,`md:peer-data-[variant=inset]:m-2`,`md:peer-data-[variant=inset]:ml-0`,`md:peer-data-[variant=inset]:rounded-xl`,`md:peer-data-[variant=inset]:shadow-sm`,`md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2`,e),...t})}function E({className:e,...t}){return(0,s.jsx)(`div`,{"data-slot":`sidebar-header`,"data-sidebar":`header`,className:(0,o.cn)(`flex flex-col gap-2 p-2`,e),...t})}function D({className:e,children:t,...n}){let{open:r}=b();return(0,s.jsx)(`div`,{"data-slot":`sidebar-footer`,"data-sidebar":`footer`,className:(0,o.cn)(`flex flex-col gap-2 p-2`,e),...n,children:(0,s.jsxs)(P,{children:[r&&(0,s.jsx)(F,{children:t}),(0,s.jsx)(F,{children:(0,s.jsx)(`p`,{className:`pt-2 text-center text-muted-foreground text-xs`,children:`Copyright © 2025, Lunas.`})})]})})}function O({className:e,...t}){return(0,s.jsx)(i.t,{"data-slot":`sidebar-separator`,"data-sidebar":`separator`,className:(0,o.cn)(`mx-2 w-auto bg-sidebar-border`,e),...t})}function k({className:e,...t}){return(0,s.jsx)(`div`,{"data-slot":`sidebar-content`,"data-sidebar":`content`,className:(0,o.cn)(`flex min-h-0 flex-1 flex-col gap-2 overflow-auto`,`group-data-[collapsible=icon]:overflow-hidden`,e),...t})}function A({className:e,...t}){return(0,s.jsx)(`div`,{"data-slot":`sidebar-group`,"data-sidebar":`group`,className:(0,o.cn)(`relative flex w-full min-w-0 flex-col p-2`,e),...t})}function j({className:e,asChild:t=!1,...n}){return(0,s.jsx)(t?d.Slot.Slot:`div`,{"data-slot":`sidebar-group-label`,"data-sidebar":`group-label`,className:(0,o.cn)(`flex h-8 shrink-0 items-center rounded-md px-2 font-medium text-sidebar-foreground/70 text-xs outline-hidden ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear`,`focus-visible:ring-2`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`group-data-[collapsible=icon]:-mt-8`,`group-data-[collapsible=icon]:opacity-0`,e),...n})}function M({className:e,asChild:t=!1,...n}){return(0,s.jsx)(t?d.Slot.Slot:`button`,{"data-slot":`sidebar-group-action`,"data-sidebar":`group-action`,className:(0,o.cn)(`absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-hidden ring-sidebar-ring transition-transform`,`hover:bg-sidebar-accent hover:text-sidebar-accent-foreground`,`focus-visible:ring-2`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`after:absolute`,`after:-inset-2`,`md:after:hidden`,`group-data-[collapsible=icon]:hidden`,e),...n})}function N({className:e,...t}){return(0,s.jsx)(`div`,{"data-slot":`sidebar-group-content`,"data-sidebar":`group-content`,className:(0,o.cn)(`w-full text-sm`,e),...t})}function P({className:e,...t}){return(0,s.jsx)(`ul`,{"data-slot":`sidebar-menu`,"data-sidebar":`menu`,className:(0,o.cn)(`flex w-full min-w-0 flex-col gap-1`,e),...t})}function F({className:e,...t}){return(0,s.jsx)(`li`,{"data-slot":`sidebar-menu-item`,"data-sidebar":`menu-item`,className:(0,o.cn)(`group/menu-item relative`,e),...t})}const I=(0,u.cva)([`peer/menu-button`,`cursor-pointer`,`flex w-full items-center gap-2`,`overflow-hidden rounded-md p-2 outline-hidden`,`truncate text-left font-normal`,`transition-[color,width,height,padding]`,`hover:bg-sidebar-accent`,`hover:text-sidebar-accent-foreground`,`active:bg-sidebar-accent`,`active:text-sidebar-accent-foreground`,`disabled:pointer-events-none`,`disabled:opacity-50`,`group-has-data-[sidebar=menu-action]/menu-item:pr-8`,`aria-disabled:pointer-events-none`,`aria-disabled:opacity-50`,`data-[active=true]:bg-sidebar-primary-muted`,`data-[active=true]:font-normal`,`data-[active=true]:text-sidebar-primary`,`data-[state=open]:hover:bg-sidebar-accent`,`data-[state=open]:hover:text-sidebar-accent-foreground`,`group-data-[collapsible=icon]:size-8!`,`group-data-[collapsible=icon]:p-2!`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`[&>span:last-child]:truncate`],{variants:{variant:{default:`hover:bg-sidebar-accent/60 hover:text-sidebar-accent-foreground/80`,outline:`bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]`},size:{default:`h-8 text-sm`,sm:`h-7 text-xs`,lg:`h-12 text-sm group-data-[collapsible=icon]:p-0!`}},defaultVariants:{variant:`default`,size:`default`}});function L({asChild:e=!1,isActive:t=!1,variant:n=`default`,size:i=`default`,tooltip:a,className:c,...l}){let u=e?d.Slot.Slot:`button`,{state:f}=b(),p=(0,s.jsx)(u,{"data-slot":`sidebar-menu-button`,"data-sidebar":`menu-button`,"data-size":i,"data-active":t,className:(0,o.cn)(I({variant:n,size:i}),c),...l});return a?(typeof a==`string`&&(a={children:a}),(0,s.jsxs)(r.t,{children:[(0,s.jsx)(r.i,{asChild:!0,children:p}),(0,s.jsx)(r.n,{side:`right`,align:`center`,hidden:f!==`collapsed`,...a})]})):p}function R({className:e,asChild:t=!1,showOnHover:n=!1,...r}){return(0,s.jsx)(t?d.Slot.Slot:`button`,{"data-slot":`sidebar-menu-action`,"data-sidebar":`menu-action`,className:(0,o.cn)(`text-sidebar-foreground ring-sidebar-ring`,`hover:bg-sidebar-accent`,`hover:text-sidebar-accent-foreground`,`absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform peer-hover/menu-button:text-sidebar-accent-foreground`,`focus-visible:ring-2`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`after:absolute after:-inset-2 md:after:hidden`,`peer-data-[size=sm]/menu-button:top-1`,`peer-data-[size=default]/menu-button:top-1.5`,`peer-data-[size=lg]/menu-button:top-2.5`,`group-data-[collapsible=icon]:hidden`,n&&`peer-data-[active=true]/menu-button:text-sidebar-accent-foreground`,n&&`$group-focus-within/menu-item:opacity-100`,n&&`group-hover/menu-item:opacity-100`,n&&`data-[state=open]:opacity-100 md:opacity-0`,e),...r})}function z({className:e,...t}){return(0,s.jsx)(`div`,{"data-slot":`sidebar-menu-badge`,"data-sidebar":`menu-badge`,className:(0,o.cn)(`pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 font-medium text-sidebar-foreground text-xs tabular-nums`,`peer-hover/menu-button:text-sidebar-accent-foreground`,`peer-data-[active=true]/menu-button:text-sidebar-accent-foreground`,`peer-data-[size=sm]/menu-button:top-1`,`peer-data-[size=default]/menu-button:top-1.5`,`peer-data-[size=lg]/menu-button:top-2.5`,`group-data-[collapsible=icon]:hidden`,e),...t})}function B({className:e,showIcon:t=!1,...r}){let i=(0,l.useMemo)(()=>`${Math.floor(Math.random()*40)+50}%`,[]);return(0,s.jsxs)(`div`,{"data-slot":`sidebar-menu-skeleton`,"data-sidebar":`menu-skeleton`,className:(0,o.cn)(`flex h-8 items-center gap-2 rounded-md px-2`,e),...r,children:[t&&(0,s.jsx)(n.t,{className:`size-4 rounded-md`,"data-sidebar":`menu-skeleton-icon`}),(0,s.jsx)(n.t,{className:`h-4 max-w-(--skeleton-width) flex-1`,"data-sidebar":`menu-skeleton-text`,style:{"--skeleton-width":i}})]})}function V({className:e,...t}){return(0,s.jsx)(`ul`,{"data-slot":`sidebar-menu-sub`,"data-sidebar":`menu-sub`,className:(0,o.cn)(`mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-sidebar-border border-l px-2.5 py-0.5`,`group-data-[collapsible=icon]:hidden`,e),...t})}function H({className:e,...t}){return(0,s.jsx)(`li`,{"data-slot":`sidebar-menu-sub-item`,"data-sidebar":`menu-sub-item`,className:(0,o.cn)(`group/menu-sub-item relative`,e),...t})}function U({asChild:e=!1,size:t=`md`,isActive:n=!1,className:r,...i}){return(0,s.jsx)(e?d.Slot.Slot:`a`,{"data-slot":`sidebar-menu-sub-button`,"data-sidebar":`menu-sub-button`,"data-size":t,"data-active":n,className:(0,o.cn)(`text-sidebar-foreground ring-sidebar-ring`,`flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden`,`hover:bg-sidebar-accent`,`hover:text-sidebar-accent-foreground`,`active:bg-sidebar-accent`,`active:text-sidebar-accent-foreground`,`focus-visible:ring-2`,`disabled:pointer-events-none`,`disabled:opacity-50`,`aria-disabled:pointer-events-none`,`aria-disabled:opacity-50`,`[&>span:last-child]:truncate`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`[&>svg]:text-sidebar-accent-foreground`,`data-[active=true]:bg-sidebar-accent`,`data-[active=true]:text-sidebar-accent-foreground`,`group-data-[collapsible=icon]:hidden`,t===`sm`&&`text-xs`,t===`md`&&`text-sm`,r),...i})}exports.DetailDialogSidebarContent=k,exports.DetailDialogSidebarFooter=D,exports.DetailDialogSidebarGroup=A,exports.DetailDialogSidebarGroupAction=M,exports.DetailDialogSidebarGroupContent=N,exports.DetailDialogSidebarGroupLabel=j,exports.DetailDialogSidebarHeader=E,exports.DetailDialogSidebarMenu=P,exports.DetailDialogSidebarMenuAction=R,exports.DetailDialogSidebarMenuBadge=z,exports.DetailDialogSidebarMenuButton=L,exports.DetailDialogSidebarMenuItem=F,exports.DetailDialogSidebarMenuSkeleton=B,exports.DetailDialogSidebarMenuSub=V,exports.DetailDialogSidebarMenuSubButton=U,exports.DetailDialogSidebarMenuSubItem=H,exports.DetailDialogSidebarRail=w,exports.DetailDialogSidebarSeparator=O,exports.DetailDialogSidebarTrigger=C,exports.Sidebar=S,exports.SidebarInset=T,exports.SidebarProvider=x,exports.useSidebar=b;
1
+ "use client";const e=require(`../../../chunk-Bmb41Sf3.cjs`);require(`../../../button.variants-8QOIR433.cjs`);const t=require(`../../../button-8Snjc8iT.cjs`),n=require(`../../../skeleton-CHympz8k.cjs`),r=require(`../../../tooltip-DC6i1A25.cjs`),i=require(`../../../separator-C3ip6sbh.cjs`),a=require(`../../../sheet-5MJRtrfG.cjs`);let o=require(`@customafk/react-toolkit/utils`),s=require(`class-variance-authority`),c=require(`react`),l=require(`react/jsx-runtime`),u=require(`lucide-react`),d=require(`radix-ui`),f=require(`@customafk/react-toolkit/hooks/useMobile`);const p=`detai_dialog_sidebar_state`,m=3600*24*7,h=`20rem`,g=`18rem`,_=`3rem`,v=`p`,y=(0,c.createContext)(null);function b(){let e=(0,c.use)(y);if(!e)throw Error(`useSidebar must be used within a SidebarProvider.`);return e}function x({defaultOpen:e=!0,open:t,onOpenChange:n,className:i,style:a,children:s,...u}){let d=(0,f.useIsMobile)(),[p,m]=(0,c.useState)(!1),[h,g]=(0,c.useState)(e),_=t??h,v=(0,c.useCallback)(e=>{let t=typeof e==`function`?e(_):e;n?n(t):g(t),document.cookie=`detai_dialog_sidebar_state=${t}; path=/; max-age=604800`},[n,_]),b=(0,c.useCallback)(()=>d?m(e=>!e):v(e=>!e),[d,v]);(0,c.useEffect)(()=>{let e=e=>{e.key===`p`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),b())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[b]);let x=_?`expanded`:`collapsed`,S=(0,c.useMemo)(()=>({state:x,isMobile:d,toggleSidebar:b,open:_,setOpen:v,openMobile:p,setOpenMobile:m}),[x,d,_,v,p,b]);return(0,l.jsx)(y.Provider,{value:S,children:(0,l.jsx)(r.r,{delayDuration:0,children:(0,l.jsx)(`div`,{"data-slot":`sidebar-wrapper`,style:{"--sidebar-width":`20rem`,"--sidebar-width-icon":`3rem`,...a},className:(0,o.cn)(`group/sidebar-wrapper flex h-full min-h-[85dvh] w-full items-start has-data-[variant=inset]:bg-sidebar`,i),...u,children:s})})})}function S({side:e=`left`,variant:t=`sidebar`,collapsible:n=`offcanvas`,className:r,children:i,...s}){let{state:c,isMobile:u,openMobile:d,setOpenMobile:f}=b();return n===`none`?(0,l.jsx)(`div`,{"data-slot":`sidebar`,className:(0,o.cn)(`flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground`,r),...s,children:i}):u?(0,l.jsx)(a.t,{open:d,onOpenChange:f,...s,children:(0,l.jsxs)(a.r,{"data-sidebar":`sidebar`,"data-slot":`sidebar`,"data-mobile":`true`,className:`z-20 hidden w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground shadow-nav md:flex [&>button]:hidden`,style:{"--sidebar-width":`18rem`},side:e,children:[(0,l.jsxs)(a.o,{className:`sr-only`,children:[(0,l.jsx)(a.s,{children:`Sidebar`}),(0,l.jsx)(a.i,{children:`Displays the mobile sidebar.`})]}),(0,l.jsx)(`div`,{className:`flex h-full w-full flex-col`,children:i})]})}):(0,l.jsxs)(`div`,{className:`group peer hidden text-sidebar-foreground md:block`,"data-state":c,"data-collapsible":c===`collapsed`?n:``,"data-variant":t,"data-side":e,"data-slot":`sidebar`,children:[(0,l.jsx)(`div`,{"data-slot":`sidebar-gap`,className:(0,o.cn)(`relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear`,`group-data-[collapsible=offcanvas]:w-0`,`group-data-[side=right]:rotate-180`,t===`floating`||t===`inset`?`group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon)`)}),(0,l.jsx)(`div`,{"data-slot":`sidebar-container`,className:(0,o.cn)(`absolute inset-y-0 z-20 hidden w-(--sidebar-width) shadow-nav transition-[left,right,width] duration-200 ease-linear md:flex`,e===`left`?`left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]`:`right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]`,t===`floating`||t===`inset`?`p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon)`,r),...s,children:(0,l.jsx)(`div`,{"data-sidebar":`sidebar`,"data-slot":`sidebar-inner`,className:(0,o.cn)(`flex size-full flex-col shadow-nav`,`group-data-[variant=floating]:border-sidebar-border`,`group-data-[variant=floating]:rounded-lg`,`group-data-[variant=floating]:border`,`group-data-[variant=floating]:shadow-sm`),children:i})})]})}function C({className:e,onClick:n,...r}){let{toggleSidebar:i}=b();return(0,l.jsxs)(t.t,{"data-sidebar":`trigger`,"data-slot":`sidebar-trigger`,variant:`ghost`,color:`secondary`,size:`icon`,className:(0,o.cn)(`size-10 rounded-full [&_svg]:size-6!`,e),onClick:e=>{n?.(e),i()},...r,children:[(0,l.jsx)(u.MenuIcon,{}),(0,l.jsx)(`span`,{className:`sr-only`,children:`Toggle Sidebar`})]})}function w({className:e,...t}){let{toggleSidebar:n}=b();return(0,l.jsx)(`button`,{"data-sidebar":`rail`,"data-slot":`sidebar-rail`,"aria-label":`Toggle Sidebar`,tabIndex:-1,onClick:n,title:`Toggle Sidebar`,className:(0,o.cn)(`absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear sm:flex`,`after:absolute`,`after:inset-y-0`,`after:left-1/2 after:w-0.5`,`hover:after:bg-sidebar-border`,`group-data-[side=left]:-right-4`,`group-data-[side=right]:left-0`,`in-data-[side=left]:cursor-w-resize`,`in-data-[side=right]:cursor-e-resize`,`[[data-side=left][data-state=collapsed]_&]:cursor-e-resize`,`[[data-side=right][data-state=collapsed]_&]:cursor-w-resize`,`hover:group-data-[collapsible=offcanvas]:bg-sidebar`,`group-data-[collapsible=offcanvas]:translate-x-0`,`group-data-[collapsible=offcanvas]:after:left-full`,`[[data-side=left][data-collapsible=offcanvas]_&]:-right-2`,`[[data-side=right][data-collapsible=offcanvas]_&]:-left-2`,e),...t})}function T({className:e,...t}){return(0,l.jsx)(`main`,{"data-slot":`sidebar-inset`,className:(0,o.cn)(`relative flex w-full flex-1 flex-col bg-background`,`md:peer-data-[variant=inset]:m-2`,`md:peer-data-[variant=inset]:ml-0`,`md:peer-data-[variant=inset]:rounded-xl`,`md:peer-data-[variant=inset]:shadow-sm`,`md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2`,e),...t})}function E({className:e,...t}){return(0,l.jsx)(`div`,{"data-slot":`sidebar-header`,"data-sidebar":`header`,className:(0,o.cn)(`flex flex-col gap-2 p-2`,e),...t})}function D({className:e,children:t,...n}){let{open:r}=b();return(0,l.jsx)(`div`,{"data-slot":`sidebar-footer`,"data-sidebar":`footer`,className:(0,o.cn)(`flex flex-col gap-2 p-2`,e),...n,children:(0,l.jsxs)(P,{children:[r&&(0,l.jsx)(F,{children:t}),(0,l.jsx)(F,{children:(0,l.jsx)(`p`,{className:`pt-2 text-center text-muted-foreground text-xs`,children:`Copyright © 2025, Lunas.`})})]})})}function O({className:e,...t}){return(0,l.jsx)(i.t,{"data-slot":`sidebar-separator`,"data-sidebar":`separator`,className:(0,o.cn)(`mx-2 w-auto bg-sidebar-border`,e),...t})}function k({className:e,...t}){return(0,l.jsx)(`div`,{"data-slot":`sidebar-content`,"data-sidebar":`content`,className:(0,o.cn)(`flex min-h-0 flex-1 flex-col gap-2 overflow-auto`,`group-data-[collapsible=icon]:overflow-hidden`,e),...t})}function A({className:e,...t}){return(0,l.jsx)(`div`,{"data-slot":`sidebar-group`,"data-sidebar":`group`,className:(0,o.cn)(`relative flex w-full min-w-0 flex-col p-2`,e),...t})}function j({className:e,asChild:t=!1,...n}){return(0,l.jsx)(t?d.Slot.Slot:`div`,{"data-slot":`sidebar-group-label`,"data-sidebar":`group-label`,className:(0,o.cn)(`flex h-8 shrink-0 items-center rounded-md px-2 font-medium text-sidebar-foreground/70 text-xs outline-hidden ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear`,`focus-visible:ring-2`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`group-data-[collapsible=icon]:-mt-8`,`group-data-[collapsible=icon]:opacity-0`,e),...n})}function M({className:e,asChild:t=!1,...n}){return(0,l.jsx)(t?d.Slot.Slot:`button`,{"data-slot":`sidebar-group-action`,"data-sidebar":`group-action`,className:(0,o.cn)(`absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-hidden ring-sidebar-ring transition-transform`,`hover:bg-sidebar-accent hover:text-sidebar-accent-foreground`,`focus-visible:ring-2`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`after:absolute`,`after:-inset-2`,`md:after:hidden`,`group-data-[collapsible=icon]:hidden`,e),...n})}function N({className:e,...t}){return(0,l.jsx)(`div`,{"data-slot":`sidebar-group-content`,"data-sidebar":`group-content`,className:(0,o.cn)(`w-full text-sm`,e),...t})}function P({className:e,...t}){return(0,l.jsx)(`ul`,{"data-slot":`sidebar-menu`,"data-sidebar":`menu`,className:(0,o.cn)(`flex w-full min-w-0 flex-col gap-1`,e),...t})}function F({className:e,...t}){return(0,l.jsx)(`li`,{"data-slot":`sidebar-menu-item`,"data-sidebar":`menu-item`,className:(0,o.cn)(`group/menu-item relative`,e),...t})}const I=(0,s.cva)([`peer/menu-button`,`cursor-pointer`,`flex w-full items-center gap-2`,`overflow-hidden rounded-md p-2 outline-hidden`,`truncate text-left font-normal`,`transition-[color,width,height,padding]`,`hover:bg-sidebar-accent`,`hover:text-sidebar-accent-foreground`,`active:bg-sidebar-accent`,`active:text-sidebar-accent-foreground`,`disabled:pointer-events-none`,`disabled:opacity-50`,`group-has-data-[sidebar=menu-action]/menu-item:pr-8`,`aria-disabled:pointer-events-none`,`aria-disabled:opacity-50`,`data-[active=true]:bg-sidebar-primary-muted`,`data-[active=true]:font-normal`,`data-[active=true]:text-sidebar-primary`,`data-[state=open]:hover:bg-sidebar-accent`,`data-[state=open]:hover:text-sidebar-accent-foreground`,`group-data-[collapsible=icon]:size-8!`,`group-data-[collapsible=icon]:p-2!`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`[&>span:last-child]:truncate`],{variants:{variant:{default:`hover:bg-sidebar-accent/60 hover:text-sidebar-accent-foreground/80`,outline:`bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]`},size:{default:`h-8 text-sm`,sm:`h-7 text-xs`,lg:`h-12 text-sm group-data-[collapsible=icon]:p-0!`}},defaultVariants:{variant:`default`,size:`default`}});function L({asChild:e=!1,isActive:t=!1,variant:n=`default`,size:i=`default`,tooltip:a,className:s,...c}){let u=e?d.Slot.Slot:`button`,{state:f}=b(),p=(0,l.jsx)(u,{"data-slot":`sidebar-menu-button`,"data-sidebar":`menu-button`,"data-size":i,"data-active":t,className:(0,o.cn)(I({variant:n,size:i}),s),...c});return a?(typeof a==`string`&&(a={children:a}),(0,l.jsxs)(r.t,{children:[(0,l.jsx)(r.i,{asChild:!0,children:p}),(0,l.jsx)(r.n,{side:`right`,align:`center`,hidden:f!==`collapsed`,...a})]})):p}function R({className:e,asChild:t=!1,showOnHover:n=!1,...r}){return(0,l.jsx)(t?d.Slot.Slot:`button`,{"data-slot":`sidebar-menu-action`,"data-sidebar":`menu-action`,className:(0,o.cn)(`text-sidebar-foreground ring-sidebar-ring`,`hover:bg-sidebar-accent`,`hover:text-sidebar-accent-foreground`,`absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform peer-hover/menu-button:text-sidebar-accent-foreground`,`focus-visible:ring-2`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`after:absolute after:-inset-2 md:after:hidden`,`peer-data-[size=sm]/menu-button:top-1`,`peer-data-[size=default]/menu-button:top-1.5`,`peer-data-[size=lg]/menu-button:top-2.5`,`group-data-[collapsible=icon]:hidden`,n&&`peer-data-[active=true]/menu-button:text-sidebar-accent-foreground`,n&&`$group-focus-within/menu-item:opacity-100`,n&&`group-hover/menu-item:opacity-100`,n&&`data-[state=open]:opacity-100 md:opacity-0`,e),...r})}function z({className:e,...t}){return(0,l.jsx)(`div`,{"data-slot":`sidebar-menu-badge`,"data-sidebar":`menu-badge`,className:(0,o.cn)(`pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 font-medium text-sidebar-foreground text-xs tabular-nums`,`peer-hover/menu-button:text-sidebar-accent-foreground`,`peer-data-[active=true]/menu-button:text-sidebar-accent-foreground`,`peer-data-[size=sm]/menu-button:top-1`,`peer-data-[size=default]/menu-button:top-1.5`,`peer-data-[size=lg]/menu-button:top-2.5`,`group-data-[collapsible=icon]:hidden`,e),...t})}function B({className:e,showIcon:t=!1,...r}){let i=(0,c.useMemo)(()=>`${Math.floor(Math.random()*40)+50}%`,[]);return(0,l.jsxs)(`div`,{"data-slot":`sidebar-menu-skeleton`,"data-sidebar":`menu-skeleton`,className:(0,o.cn)(`flex h-8 items-center gap-2 rounded-md px-2`,e),...r,children:[t&&(0,l.jsx)(n.t,{className:`size-4 rounded-md`,"data-sidebar":`menu-skeleton-icon`}),(0,l.jsx)(n.t,{className:`h-4 max-w-(--skeleton-width) flex-1`,"data-sidebar":`menu-skeleton-text`,style:{"--skeleton-width":i}})]})}function V({className:e,...t}){return(0,l.jsx)(`ul`,{"data-slot":`sidebar-menu-sub`,"data-sidebar":`menu-sub`,className:(0,o.cn)(`mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-sidebar-border border-l px-2.5 py-0.5`,`group-data-[collapsible=icon]:hidden`,e),...t})}function H({className:e,...t}){return(0,l.jsx)(`li`,{"data-slot":`sidebar-menu-sub-item`,"data-sidebar":`menu-sub-item`,className:(0,o.cn)(`group/menu-sub-item relative`,e),...t})}function U({asChild:e=!1,size:t=`md`,isActive:n=!1,className:r,...i}){return(0,l.jsx)(e?d.Slot.Slot:`a`,{"data-slot":`sidebar-menu-sub-button`,"data-sidebar":`menu-sub-button`,"data-size":t,"data-active":n,className:(0,o.cn)(`text-sidebar-foreground ring-sidebar-ring`,`flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden`,`hover:bg-sidebar-accent`,`hover:text-sidebar-accent-foreground`,`active:bg-sidebar-accent`,`active:text-sidebar-accent-foreground`,`focus-visible:ring-2`,`disabled:pointer-events-none`,`disabled:opacity-50`,`aria-disabled:pointer-events-none`,`aria-disabled:opacity-50`,`[&>span:last-child]:truncate`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`[&>svg]:text-sidebar-accent-foreground`,`data-[active=true]:bg-sidebar-accent`,`data-[active=true]:text-sidebar-accent-foreground`,`group-data-[collapsible=icon]:hidden`,t===`sm`&&`text-xs`,t===`md`&&`text-sm`,r),...i})}exports.DetailDialogSidebarContent=k,exports.DetailDialogSidebarFooter=D,exports.DetailDialogSidebarGroup=A,exports.DetailDialogSidebarGroupAction=M,exports.DetailDialogSidebarGroupContent=N,exports.DetailDialogSidebarGroupLabel=j,exports.DetailDialogSidebarHeader=E,exports.DetailDialogSidebarMenu=P,exports.DetailDialogSidebarMenuAction=R,exports.DetailDialogSidebarMenuBadge=z,exports.DetailDialogSidebarMenuButton=L,exports.DetailDialogSidebarMenuItem=F,exports.DetailDialogSidebarMenuSkeleton=B,exports.DetailDialogSidebarMenuSub=V,exports.DetailDialogSidebarMenuSubButton=U,exports.DetailDialogSidebarMenuSubItem=H,exports.DetailDialogSidebarRail=w,exports.DetailDialogSidebarSeparator=O,exports.DetailDialogSidebarTrigger=C,exports.Sidebar=S,exports.SidebarInset=T,exports.SidebarProvider=x,exports.useSidebar=b;
2
2
  //# sourceMappingURL=sidebar.cjs.map
@@ -1,7 +1,7 @@
1
- import { t as Button } from "../../../button-CFDexiLY.cjs";
1
+ import { t as Button } from "../../../button-CHTjm4n8.cjs";
2
2
  import { Separator } from "../../../ui/separator.cjs";
3
3
  import { TooltipContent } from "../../../ui/tooltip.cjs";
4
- import * as react_jsx_runtime5 from "react/jsx-runtime";
4
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
5
5
  import * as class_variance_authority_types0 from "class-variance-authority/types";
6
6
  import { VariantProps } from "class-variance-authority";
7
7
 
@@ -28,7 +28,7 @@ declare function SidebarProvider({
28
28
  defaultOpen?: boolean;
29
29
  open?: boolean;
30
30
  onOpenChange?: (open: boolean) => void;
31
- }): react_jsx_runtime5.JSX.Element;
31
+ }): react_jsx_runtime0.JSX.Element;
32
32
  declare function Sidebar({
33
33
  side,
34
34
  variant,
@@ -40,70 +40,70 @@ declare function Sidebar({
40
40
  side?: 'left' | 'right';
41
41
  variant?: 'sidebar' | 'floating' | 'inset';
42
42
  collapsible?: 'offcanvas' | 'icon' | 'none';
43
- }): react_jsx_runtime5.JSX.Element;
43
+ }): react_jsx_runtime0.JSX.Element;
44
44
  declare function DetailDialogSidebarTrigger({
45
45
  className,
46
46
  onClick,
47
47
  ...props
48
- }: React.ComponentProps<typeof Button>): react_jsx_runtime5.JSX.Element;
48
+ }: React.ComponentProps<typeof Button>): react_jsx_runtime0.JSX.Element;
49
49
  declare function DetailDialogSidebarRail({
50
50
  className,
51
51
  ...props
52
- }: React.ComponentProps<'button'>): react_jsx_runtime5.JSX.Element;
52
+ }: React.ComponentProps<'button'>): react_jsx_runtime0.JSX.Element;
53
53
  declare function SidebarInset({
54
54
  className,
55
55
  ...props
56
- }: React.ComponentProps<'main'>): react_jsx_runtime5.JSX.Element;
56
+ }: React.ComponentProps<'main'>): react_jsx_runtime0.JSX.Element;
57
57
  declare function DetailDialogSidebarHeader({
58
58
  className,
59
59
  ...props
60
- }: React.ComponentProps<'div'>): react_jsx_runtime5.JSX.Element;
60
+ }: React.ComponentProps<'div'>): react_jsx_runtime0.JSX.Element;
61
61
  declare function DetailDialogSidebarFooter({
62
62
  className,
63
63
  children,
64
64
  ...props
65
- }: React.ComponentProps<'div'>): react_jsx_runtime5.JSX.Element;
65
+ }: React.ComponentProps<'div'>): react_jsx_runtime0.JSX.Element;
66
66
  declare function DetailDialogSidebarSeparator({
67
67
  className,
68
68
  ...props
69
- }: React.ComponentProps<typeof Separator>): react_jsx_runtime5.JSX.Element;
69
+ }: React.ComponentProps<typeof Separator>): react_jsx_runtime0.JSX.Element;
70
70
  declare function DetailDialogSidebarContent({
71
71
  className,
72
72
  ...props
73
- }: React.ComponentProps<'div'>): react_jsx_runtime5.JSX.Element;
73
+ }: React.ComponentProps<'div'>): react_jsx_runtime0.JSX.Element;
74
74
  declare function DetailDialogSidebarGroup({
75
75
  className,
76
76
  ...props
77
- }: React.ComponentProps<'div'>): react_jsx_runtime5.JSX.Element;
77
+ }: React.ComponentProps<'div'>): react_jsx_runtime0.JSX.Element;
78
78
  declare function DetailDialogSidebarGroupLabel({
79
79
  className,
80
80
  asChild,
81
81
  ...props
82
82
  }: React.ComponentProps<'div'> & {
83
83
  asChild?: boolean;
84
- }): react_jsx_runtime5.JSX.Element;
84
+ }): react_jsx_runtime0.JSX.Element;
85
85
  declare function DetailDialogSidebarGroupAction({
86
86
  className,
87
87
  asChild,
88
88
  ...props
89
89
  }: React.ComponentProps<'button'> & {
90
90
  asChild?: boolean;
91
- }): react_jsx_runtime5.JSX.Element;
91
+ }): react_jsx_runtime0.JSX.Element;
92
92
  declare function DetailDialogSidebarGroupContent({
93
93
  className,
94
94
  ...props
95
- }: React.ComponentProps<'div'>): react_jsx_runtime5.JSX.Element;
95
+ }: React.ComponentProps<'div'>): react_jsx_runtime0.JSX.Element;
96
96
  declare function DetailDialogSidebarMenu({
97
97
  className,
98
98
  ...props
99
- }: React.ComponentProps<'ul'>): react_jsx_runtime5.JSX.Element;
99
+ }: React.ComponentProps<'ul'>): react_jsx_runtime0.JSX.Element;
100
100
  declare function DetailDialogSidebarMenuItem({
101
101
  className,
102
102
  ...props
103
- }: React.ComponentProps<'li'>): react_jsx_runtime5.JSX.Element;
103
+ }: React.ComponentProps<'li'>): react_jsx_runtime0.JSX.Element;
104
104
  declare const sidebarMenuButtonVariants: (props?: ({
105
105
  variant?: "default" | "outline" | null | undefined;
106
- size?: "sm" | "lg" | "default" | null | undefined;
106
+ size?: "lg" | "sm" | "default" | null | undefined;
107
107
  } & class_variance_authority_types0.ClassProp) | undefined) => string;
108
108
  declare function DetailDialogSidebarMenuButton({
109
109
  asChild,
@@ -117,7 +117,7 @@ declare function DetailDialogSidebarMenuButton({
117
117
  asChild?: boolean;
118
118
  isActive?: boolean;
119
119
  tooltip?: string | React.ComponentProps<typeof TooltipContent>;
120
- } & VariantProps<typeof sidebarMenuButtonVariants>): react_jsx_runtime5.JSX.Element;
120
+ } & VariantProps<typeof sidebarMenuButtonVariants>): react_jsx_runtime0.JSX.Element;
121
121
  declare function DetailDialogSidebarMenuAction({
122
122
  className,
123
123
  asChild,
@@ -126,26 +126,26 @@ declare function DetailDialogSidebarMenuAction({
126
126
  }: React.ComponentProps<'button'> & {
127
127
  asChild?: boolean;
128
128
  showOnHover?: boolean;
129
- }): react_jsx_runtime5.JSX.Element;
129
+ }): react_jsx_runtime0.JSX.Element;
130
130
  declare function DetailDialogSidebarMenuBadge({
131
131
  className,
132
132
  ...props
133
- }: React.ComponentProps<'div'>): react_jsx_runtime5.JSX.Element;
133
+ }: React.ComponentProps<'div'>): react_jsx_runtime0.JSX.Element;
134
134
  declare function DetailDialogSidebarMenuSkeleton({
135
135
  className,
136
136
  showIcon,
137
137
  ...props
138
138
  }: React.ComponentProps<'div'> & {
139
139
  showIcon?: boolean;
140
- }): react_jsx_runtime5.JSX.Element;
140
+ }): react_jsx_runtime0.JSX.Element;
141
141
  declare function DetailDialogSidebarMenuSub({
142
142
  className,
143
143
  ...props
144
- }: React.ComponentProps<'ul'>): react_jsx_runtime5.JSX.Element;
144
+ }: React.ComponentProps<'ul'>): react_jsx_runtime0.JSX.Element;
145
145
  declare function DetailDialogSidebarMenuSubItem({
146
146
  className,
147
147
  ...props
148
- }: React.ComponentProps<'li'>): react_jsx_runtime5.JSX.Element;
148
+ }: React.ComponentProps<'li'>): react_jsx_runtime0.JSX.Element;
149
149
  declare function DetailDialogSidebarMenuSubButton({
150
150
  asChild,
151
151
  size,
@@ -156,7 +156,7 @@ declare function DetailDialogSidebarMenuSubButton({
156
156
  asChild?: boolean;
157
157
  size?: 'sm' | 'md';
158
158
  isActive?: boolean;
159
- }): react_jsx_runtime5.JSX.Element;
159
+ }): react_jsx_runtime0.JSX.Element;
160
160
  //#endregion
161
161
  export { DetailDialogSidebarContent, DetailDialogSidebarFooter, DetailDialogSidebarGroup, DetailDialogSidebarGroupAction, DetailDialogSidebarGroupContent, DetailDialogSidebarGroupLabel, DetailDialogSidebarHeader, DetailDialogSidebarMenu, DetailDialogSidebarMenuAction, DetailDialogSidebarMenuBadge, DetailDialogSidebarMenuButton, DetailDialogSidebarMenuItem, DetailDialogSidebarMenuSkeleton, DetailDialogSidebarMenuSub, DetailDialogSidebarMenuSubButton, DetailDialogSidebarMenuSubItem, DetailDialogSidebarRail, DetailDialogSidebarSeparator, DetailDialogSidebarTrigger, Sidebar, SidebarInset, SidebarProvider, useSidebar };
162
162
  //# sourceMappingURL=sidebar.d.cts.map