@customafk/lunas-ui 0.0.5 → 0.0.7

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 (657) hide show
  1. package/dist/add-new-BaABbnol.js +2 -0
  2. package/dist/add-new-BaABbnol.js.map +1 -0
  3. package/dist/add-new-DUoS_-n2.cjs +2 -0
  4. package/dist/add-new-DUoS_-n2.cjs.map +1 -0
  5. package/dist/alert-dialog-0KwdjY-6.js +2 -0
  6. package/dist/{alert-dialog.cjs.map → alert-dialog-0KwdjY-6.js.map} +1 -1
  7. package/dist/alert-dialog-D5ZqgIiC.cjs +2 -0
  8. package/dist/alert-dialog-D5ZqgIiC.cjs.map +1 -0
  9. package/dist/badge-CRXT2dH_.cjs +2 -0
  10. package/dist/badge-CRXT2dH_.cjs.map +1 -0
  11. package/dist/badge-D_qEoSL8.js +2 -0
  12. package/dist/badge-D_qEoSL8.js.map +1 -0
  13. package/dist/button-Bku3bKv9.js +2 -0
  14. package/dist/button-Bku3bKv9.js.map +1 -0
  15. package/dist/button-D_E_bNRb.d.ts +18 -0
  16. package/dist/button-Dzv_nos1.cjs +2 -0
  17. package/dist/button-Dzv_nos1.cjs.map +1 -0
  18. package/dist/button-YHI7I64h.d.cts +18 -0
  19. package/dist/{card.js → card-D8cxRC5y.js} +1 -1
  20. package/dist/card-D8cxRC5y.js.map +1 -0
  21. package/dist/{card.cjs → card-Dta5eW8u.cjs} +2 -2
  22. package/dist/card-Dta5eW8u.cjs.map +1 -0
  23. package/dist/cards/simple-card.cjs +2 -0
  24. package/dist/cards/simple-card.cjs.map +1 -0
  25. package/dist/cards/simple-card.d.cts +19 -0
  26. package/dist/cards/simple-card.d.ts +19 -0
  27. package/dist/cards/simple-card.js +2 -0
  28. package/dist/cards/simple-card.js.map +1 -0
  29. package/dist/{command-Bh1toPH-.cjs → command-CsntVmEz.cjs} +2 -2
  30. package/dist/{command-Bh1toPH-.cjs.map → command-CsntVmEz.cjs.map} +1 -1
  31. package/dist/{command-DEl_iWXo.js → command-_L9bD9a-.js} +2 -2
  32. package/dist/{command-DEl_iWXo.js.map → command-_L9bD9a-.js.map} +1 -1
  33. package/dist/data-display/country.cjs +2 -0
  34. package/dist/data-display/country.cjs.map +1 -0
  35. package/dist/data-display/country.d.cts +11 -0
  36. package/dist/data-display/country.d.ts +11 -0
  37. package/dist/data-display/country.js +2 -0
  38. package/dist/data-display/country.js.map +1 -0
  39. package/dist/data-display/data-list.cjs +2 -0
  40. package/dist/data-display/data-list.cjs.map +1 -0
  41. package/dist/data-display/data-list.d.cts +16 -0
  42. package/dist/data-display/data-list.d.ts +16 -0
  43. package/dist/data-display/data-list.js +2 -0
  44. package/dist/data-display/data-list.js.map +1 -0
  45. package/dist/data-display/date.cjs +1 -0
  46. package/dist/data-display/date.d.cts +15 -0
  47. package/dist/data-display/date.d.ts +15 -0
  48. package/dist/data-display/date.js +1 -0
  49. package/dist/data-display/empty.cjs +2 -0
  50. package/dist/data-display/empty.cjs.map +1 -0
  51. package/dist/data-display/empty.d.cts +5 -0
  52. package/dist/data-display/empty.d.ts +5 -0
  53. package/dist/data-display/empty.js +2 -0
  54. package/dist/data-display/empty.js.map +1 -0
  55. package/dist/data-display/name.cjs +2 -0
  56. package/dist/data-display/name.cjs.map +1 -0
  57. package/dist/data-display/name.d.cts +10 -0
  58. package/dist/data-display/name.d.ts +10 -0
  59. package/dist/data-display/name.js +2 -0
  60. package/dist/data-display/name.js.map +1 -0
  61. package/dist/data-display/phone-number.cjs +2 -0
  62. package/dist/data-display/phone-number.cjs.map +1 -0
  63. package/dist/data-display/phone-number.d.cts +7 -0
  64. package/dist/data-display/phone-number.d.ts +7 -0
  65. package/dist/data-display/phone-number.js +2 -0
  66. package/dist/data-display/phone-number.js.map +1 -0
  67. package/dist/data-display/role-badge.cjs +2 -0
  68. package/dist/data-display/role-badge.cjs.map +1 -0
  69. package/dist/data-display/role-badge.d.cts +11 -0
  70. package/dist/data-display/role-badge.d.ts +11 -0
  71. package/dist/data-display/role-badge.js +2 -0
  72. package/dist/data-display/role-badge.js.map +1 -0
  73. package/dist/data-display/statistic.cjs +2 -0
  74. package/dist/data-display/statistic.cjs.map +1 -0
  75. package/dist/data-display/statistic.d.cts +5 -0
  76. package/dist/data-display/statistic.d.ts +5 -0
  77. package/dist/data-display/statistic.js +2 -0
  78. package/dist/data-display/statistic.js.map +1 -0
  79. package/dist/date-BMq_DNsv.js +2 -0
  80. package/dist/date-BMq_DNsv.js.map +1 -0
  81. package/dist/date-nd8WkPlx.cjs +2 -0
  82. package/dist/date-nd8WkPlx.cjs.map +1 -0
  83. package/dist/{dialog-CgosQe5q.js → dialog-C4hf-Puw.js} +2 -2
  84. package/dist/{dialog-CgosQe5q.js.map → dialog-C4hf-Puw.js.map} +1 -1
  85. package/dist/{dialog-BylavpqI.d.ts → dialog-D3VF5qxy.d.cts} +11 -11
  86. package/dist/{dialog-Biy5wRCC.d.cts → dialog-MLCAvDJH.d.ts} +11 -11
  87. package/dist/{dialog-BRV1Ro1D.cjs → dialog-W-DmDMEE.cjs} +2 -2
  88. package/dist/{dialog-BRV1Ro1D.cjs.map → dialog-W-DmDMEE.cjs.map} +1 -1
  89. package/dist/dialogs/confirm-dialog.cjs +2 -0
  90. package/dist/dialogs/confirm-dialog.cjs.map +1 -0
  91. package/dist/dialogs/confirm-dialog.d.cts +13 -0
  92. package/dist/dialogs/confirm-dialog.d.ts +13 -0
  93. package/dist/dialogs/confirm-dialog.js +2 -0
  94. package/dist/dialogs/confirm-dialog.js.map +1 -0
  95. package/dist/dialogs/detail-dialog/index.cjs +2 -0
  96. package/dist/dialogs/detail-dialog/index.cjs.map +1 -0
  97. package/dist/dialogs/detail-dialog/index.d.cts +15 -0
  98. package/dist/dialogs/detail-dialog/index.d.ts +15 -0
  99. package/dist/dialogs/detail-dialog/index.js +2 -0
  100. package/dist/dialogs/detail-dialog/index.js.map +1 -0
  101. package/dist/dialogs/error-dialog.cjs +1 -0
  102. package/dist/dialogs/error-dialog.d.cts +13 -0
  103. package/dist/dialogs/error-dialog.d.ts +13 -0
  104. package/dist/dialogs/error-dialog.js +1 -0
  105. package/dist/dialogs/form-dialog.cjs +2 -0
  106. package/dist/dialogs/form-dialog.cjs.map +1 -0
  107. package/dist/dialogs/form-dialog.d.cts +35 -0
  108. package/dist/dialogs/form-dialog.d.ts +35 -0
  109. package/dist/dialogs/form-dialog.js +2 -0
  110. package/dist/dialogs/form-dialog.js.map +1 -0
  111. package/dist/dialogs/loading-dialog.cjs +2 -0
  112. package/dist/dialogs/loading-dialog.cjs.map +1 -0
  113. package/dist/dialogs/loading-dialog.d.cts +11 -0
  114. package/dist/dialogs/loading-dialog.d.ts +11 -0
  115. package/dist/dialogs/loading-dialog.js +2 -0
  116. package/dist/dialogs/loading-dialog.js.map +1 -0
  117. package/dist/dropdown-menu-Bv18S56o.cjs +2 -0
  118. package/dist/dropdown-menu-Bv18S56o.cjs.map +1 -0
  119. package/dist/dropdown-menu-jCQwh2rG.js +2 -0
  120. package/dist/dropdown-menu-jCQwh2rG.js.map +1 -0
  121. package/dist/error-dialog-D_4WL-Hj.js +2 -0
  122. package/dist/error-dialog-D_4WL-Hj.js.map +1 -0
  123. package/dist/error-dialog-DpQgL5Hy.cjs +2 -0
  124. package/dist/error-dialog-DpQgL5Hy.cjs.map +1 -0
  125. package/dist/flex-CNA_SId-.cjs +2 -0
  126. package/dist/flex-CNA_SId-.cjs.map +1 -0
  127. package/dist/flex-ILvQrYMJ.js +2 -0
  128. package/dist/flex-ILvQrYMJ.js.map +1 -0
  129. package/dist/form-CA4hhSV5.js +2 -0
  130. package/dist/form-CA4hhSV5.js.map +1 -0
  131. package/dist/form-CYZkgobJ.cjs +2 -0
  132. package/dist/form-CYZkgobJ.cjs.map +1 -0
  133. package/dist/form-wrapper-BYbwt1zC.cjs +2 -0
  134. package/dist/form-wrapper-BYbwt1zC.cjs.map +1 -0
  135. package/dist/form-wrapper-D-2Uz518.js +2 -0
  136. package/dist/form-wrapper-D-2Uz518.js.map +1 -0
  137. package/dist/forms/form-wrapper.cjs +1 -0
  138. package/dist/forms/form-wrapper.d.cts +24 -0
  139. package/dist/forms/form-wrapper.d.ts +24 -0
  140. package/dist/forms/form-wrapper.js +1 -0
  141. package/dist/{input-8iac_flR.d.ts → input-D0Phuz25.d.cts} +2 -2
  142. package/dist/{input-BROCl7ef.cjs → input-DXEBB91E.cjs} +1 -1
  143. package/dist/{input-BROCl7ef.cjs.map → input-DXEBB91E.cjs.map} +1 -1
  144. package/dist/{input-3pmkK3b5.js → input-FzKbxUq2.js} +1 -1
  145. package/dist/{input-3pmkK3b5.js.map → input-FzKbxUq2.js.map} +1 -1
  146. package/dist/{input-DsHkxcpM.d.cts → input-tHIKXxVS.d.ts} +2 -2
  147. package/dist/{label-BWUQswhZ.cjs → label-CunjD1rx.cjs} +2 -2
  148. package/dist/{label-BWUQswhZ.cjs.map → label-CunjD1rx.cjs.map} +1 -1
  149. package/dist/{label-Bunoo8Hy.js → label-Cxbctr6x.js} +2 -2
  150. package/dist/{label-Bunoo8Hy.js.map → label-Cxbctr6x.js.map} +1 -1
  151. package/dist/layouts/flex.cjs +1 -0
  152. package/dist/layouts/flex.d.cts +23 -0
  153. package/dist/layouts/flex.d.ts +23 -0
  154. package/dist/layouts/flex.js +1 -0
  155. package/dist/layouts/main/index.cjs +2 -0
  156. package/dist/layouts/main/index.cjs.map +1 -0
  157. package/dist/layouts/main/index.d.cts +7 -0
  158. package/dist/layouts/main/index.d.ts +7 -0
  159. package/dist/layouts/main/index.js +2 -0
  160. package/dist/layouts/main/index.js.map +1 -0
  161. package/dist/paragraph-Bey03JkA.js +2 -0
  162. package/dist/paragraph-Bey03JkA.js.map +1 -0
  163. package/dist/paragraph-ZxI8zxuf.cjs +2 -0
  164. package/dist/paragraph-ZxI8zxuf.cjs.map +1 -0
  165. package/dist/{progress-CBXP2lsp.cjs → progress-BnnOfAZN.cjs} +2 -2
  166. package/dist/{progress-CBXP2lsp.cjs.map → progress-BnnOfAZN.cjs.map} +1 -1
  167. package/dist/{progress-Djnu-m1x.js → progress-CBccqUUJ.js} +2 -2
  168. package/dist/{progress-Djnu-m1x.js.map → progress-CBccqUUJ.js.map} +1 -1
  169. package/dist/refresh-BHt_h3N_.js +2 -0
  170. package/dist/refresh-BHt_h3N_.js.map +1 -0
  171. package/dist/refresh-DrolZxuC.cjs +2 -0
  172. package/dist/refresh-DrolZxuC.cjs.map +1 -0
  173. package/dist/scroll-area-Bdb_LSFF.js +2 -0
  174. package/dist/scroll-area-Bdb_LSFF.js.map +1 -0
  175. package/dist/scroll-area-DWWpaz5j.cjs +2 -0
  176. package/dist/scroll-area-DWWpaz5j.cjs.map +1 -0
  177. package/dist/search-input-Bf4-FeWu.cjs +2 -0
  178. package/dist/search-input-Bf4-FeWu.cjs.map +1 -0
  179. package/dist/search-input-L2sq0eB0.js +2 -0
  180. package/dist/search-input-L2sq0eB0.js.map +1 -0
  181. package/dist/select-CWUsisI0.js +2 -0
  182. package/dist/select-CWUsisI0.js.map +1 -0
  183. package/dist/select-ZSyt5zCe.cjs +2 -0
  184. package/dist/select-ZSyt5zCe.cjs.map +1 -0
  185. package/dist/{separator-BPDcnSwd.d.ts → separator-2cwfp8qT.d.ts} +2 -2
  186. package/dist/{separator-BaoBlWkX.js → separator-BpsL0PlX.js} +2 -2
  187. package/dist/{separator-BaoBlWkX.js.map → separator-BpsL0PlX.js.map} +1 -1
  188. package/dist/{separator-BQnQELxf.d.cts → separator-COXs-I-Q.d.cts} +2 -2
  189. package/dist/{separator-9OOo_7TH.cjs → separator-DTB3sDNG.cjs} +2 -2
  190. package/dist/{separator-9OOo_7TH.cjs.map → separator-DTB3sDNG.cjs.map} +1 -1
  191. package/dist/{sheet-DOuBq08n.js → sheet-C8r2QGpq.js} +2 -2
  192. package/dist/{sheet-DOuBq08n.js.map → sheet-C8r2QGpq.js.map} +1 -1
  193. package/dist/{sheet-CiEiXosI.cjs → sheet-CCwbAaA6.cjs} +2 -2
  194. package/dist/{sheet-CiEiXosI.cjs.map → sheet-CCwbAaA6.cjs.map} +1 -1
  195. package/dist/sidebar-BLPMNltJ.cjs +2 -0
  196. package/dist/sidebar-BLPMNltJ.cjs.map +1 -0
  197. package/dist/sidebar-C166f_9B.js +2 -0
  198. package/dist/sidebar-C166f_9B.js.map +1 -0
  199. package/dist/{skeleton-Dk94cI3u.js → skeleton-DYmX0k94.js} +1 -1
  200. package/dist/{skeleton-Dk94cI3u.js.map → skeleton-DYmX0k94.js.map} +1 -1
  201. package/dist/{skeleton-6plHDAxf.cjs → skeleton-m3giaF4T.cjs} +1 -1
  202. package/dist/{skeleton-6plHDAxf.cjs.map → skeleton-m3giaF4T.cjs.map} +1 -1
  203. package/dist/table/index.cjs +2 -0
  204. package/dist/table/index.cjs.map +1 -0
  205. package/dist/table/index.d.cts +29 -0
  206. package/dist/table/index.d.ts +29 -0
  207. package/dist/table/index.js +2 -0
  208. package/dist/table/index.js.map +1 -0
  209. package/dist/table-BSeev7T0.cjs +2 -0
  210. package/dist/table-BSeev7T0.cjs.map +1 -0
  211. package/dist/table-BvA64mE8.js +2 -0
  212. package/dist/table-BvA64mE8.js.map +1 -0
  213. package/dist/title-DTkABsIG.js +2 -0
  214. package/dist/title-DTkABsIG.js.map +1 -0
  215. package/dist/title-xsPZpQpb.cjs +2 -0
  216. package/dist/title-xsPZpQpb.cjs.map +1 -0
  217. package/dist/toggle-BVkMTVAz.d.ts +15 -0
  218. package/dist/toggle-CW-ZnYMy.d.cts +15 -0
  219. package/dist/{toggle-Dp4zRN_S.cjs → toggle-CfL3GVe2.cjs} +2 -2
  220. package/dist/{toggle-Dp4zRN_S.cjs.map → toggle-CfL3GVe2.cjs.map} +1 -1
  221. package/dist/{toggle-BiWsAYlU.js → toggle-D_MDMruK.js} +2 -2
  222. package/dist/{toggle-BiWsAYlU.js.map → toggle-D_MDMruK.js.map} +1 -1
  223. package/dist/{tooltip-DD0V2FX5.cjs → tooltip-Beb-_EPp.cjs} +2 -2
  224. package/dist/{tooltip-DD0V2FX5.cjs.map → tooltip-Beb-_EPp.cjs.map} +1 -1
  225. package/dist/{tooltip-C1-JwUE1.d.ts → tooltip-Cjuu_Ld4.d.ts} +5 -5
  226. package/dist/{tooltip-CRUIRMCA.d.cts → tooltip-Dk4HsZVR.d.cts} +5 -5
  227. package/dist/{tooltip-CrBGwym3.js → tooltip-Dzyf5smh.js} +2 -2
  228. package/dist/{tooltip-CrBGwym3.js.map → tooltip-Dzyf5smh.js.map} +1 -1
  229. package/dist/types-B0V1F4Ml.d.cts +23 -0
  230. package/dist/types-CrbWxjnp.cjs +2 -0
  231. package/dist/types-CrbWxjnp.cjs.map +1 -0
  232. package/dist/types-DLrIc2fL.d.ts +23 -0
  233. package/dist/types-DaIHddx7.js +2 -0
  234. package/dist/types-DaIHddx7.js.map +1 -0
  235. package/dist/typography/paragraph.cjs +1 -0
  236. package/dist/typography/paragraph.d.cts +16 -0
  237. package/dist/typography/paragraph.d.ts +16 -0
  238. package/dist/typography/paragraph.js +1 -0
  239. package/dist/typography/title.cjs +1 -0
  240. package/dist/typography/title.d.cts +14 -0
  241. package/dist/typography/title.d.ts +14 -0
  242. package/dist/typography/title.js +1 -0
  243. package/dist/ui/alert-dialog.cjs +1 -0
  244. package/dist/{alert-dialog.d.cts → ui/alert-dialog.d.cts} +11 -11
  245. package/dist/{alert-dialog.d.ts → ui/alert-dialog.d.ts} +11 -11
  246. package/dist/ui/alert-dialog.js +1 -0
  247. package/dist/ui/alert.cjs +2 -0
  248. package/dist/ui/alert.cjs.map +1 -0
  249. package/dist/{alert.d.cts → ui/alert.d.cts} +4 -7
  250. package/dist/{alert.d.ts → ui/alert.d.ts} +4 -7
  251. package/dist/ui/alert.js +2 -0
  252. package/dist/ui/alert.js.map +1 -0
  253. package/dist/ui/aspect-ratio.cjs +2 -0
  254. package/dist/ui/aspect-ratio.cjs.map +1 -0
  255. package/dist/{aspect-ratio.d.cts → ui/aspect-ratio.d.cts} +1 -1
  256. package/dist/{aspect-ratio.d.ts → ui/aspect-ratio.d.ts} +1 -1
  257. package/dist/ui/aspect-ratio.js +2 -0
  258. package/dist/ui/aspect-ratio.js.map +1 -0
  259. package/dist/ui/avatar.cjs +2 -0
  260. package/dist/ui/avatar.cjs.map +1 -0
  261. package/dist/{avatar.d.cts → ui/avatar.d.cts} +3 -3
  262. package/dist/{avatar.d.ts → ui/avatar.d.ts} +3 -3
  263. package/dist/ui/avatar.js +2 -0
  264. package/dist/ui/avatar.js.map +1 -0
  265. package/dist/ui/badge.cjs +1 -0
  266. package/dist/ui/badge.d.cts +16 -0
  267. package/dist/ui/badge.d.ts +16 -0
  268. package/dist/ui/badge.js +1 -0
  269. package/dist/ui/breadcrumb.cjs +2 -0
  270. package/dist/ui/breadcrumb.cjs.map +1 -0
  271. package/dist/{breadcrumb.d.cts → ui/breadcrumb.d.cts} +7 -7
  272. package/dist/{breadcrumb.d.ts → ui/breadcrumb.d.ts} +7 -7
  273. package/dist/ui/breadcrumb.js +2 -0
  274. package/dist/ui/breadcrumb.js.map +1 -0
  275. package/dist/ui/button.cjs +1 -0
  276. package/dist/ui/button.d.cts +2 -0
  277. package/dist/ui/button.d.ts +2 -0
  278. package/dist/ui/button.js +1 -0
  279. package/dist/ui/buttons/add-new.cjs +1 -0
  280. package/dist/ui/buttons/add-new.d.cts +8 -0
  281. package/dist/ui/buttons/add-new.d.ts +8 -0
  282. package/dist/ui/buttons/add-new.js +1 -0
  283. package/dist/ui/buttons/refresh.cjs +1 -0
  284. package/dist/ui/buttons/refresh.d.cts +8 -0
  285. package/dist/ui/buttons/refresh.d.ts +8 -0
  286. package/dist/ui/buttons/refresh.js +1 -0
  287. package/dist/ui/calendar.cjs +2 -0
  288. package/dist/ui/calendar.cjs.map +1 -0
  289. package/dist/{calendar.d.cts → ui/calendar.d.cts} +3 -3
  290. package/dist/{calendar.d.ts → ui/calendar.d.ts} +3 -3
  291. package/dist/ui/calendar.js +2 -0
  292. package/dist/ui/calendar.js.map +1 -0
  293. package/dist/ui/card.cjs +1 -0
  294. package/dist/{card.d.cts → ui/card.d.cts} +7 -7
  295. package/dist/{card.d.ts → ui/card.d.ts} +7 -7
  296. package/dist/ui/card.js +1 -0
  297. package/dist/ui/carousel.cjs +2 -0
  298. package/dist/ui/carousel.cjs.map +1 -0
  299. package/dist/{carousel.d.cts → ui/carousel.d.cts} +6 -6
  300. package/dist/{carousel.d.ts → ui/carousel.d.ts} +6 -6
  301. package/dist/ui/carousel.js +2 -0
  302. package/dist/ui/carousel.js.map +1 -0
  303. package/dist/ui/collapsible.cjs +2 -0
  304. package/dist/ui/collapsible.cjs.map +1 -0
  305. package/dist/{collapsible.d.cts → ui/collapsible.d.cts} +3 -3
  306. package/dist/{collapsible.d.ts → ui/collapsible.d.ts} +3 -3
  307. package/dist/ui/collapsible.js +2 -0
  308. package/dist/ui/collapsible.js.map +1 -0
  309. package/dist/ui/command.cjs +1 -0
  310. package/dist/ui/command.d.cts +52 -0
  311. package/dist/ui/command.d.ts +52 -0
  312. package/dist/ui/command.js +1 -0
  313. package/dist/ui/context-menu.cjs +2 -0
  314. package/dist/ui/context-menu.cjs.map +1 -0
  315. package/dist/{context-menu.d.cts → ui/context-menu.d.cts} +15 -15
  316. package/dist/{context-menu.d.ts → ui/context-menu.d.ts} +15 -15
  317. package/dist/ui/context-menu.js +2 -0
  318. package/dist/ui/context-menu.js.map +1 -0
  319. package/dist/ui/dialog.cjs +1 -0
  320. package/dist/{dialog.d.cts → ui/dialog.d.cts} +1 -1
  321. package/dist/{dialog.d.ts → ui/dialog.d.ts} +1 -1
  322. package/dist/ui/dialog.js +1 -0
  323. package/dist/ui/dropdown-menu.cjs +1 -0
  324. package/dist/{dropdown-menu.d.cts → ui/dropdown-menu.d.cts} +15 -15
  325. package/dist/{dropdown-menu.d.ts → ui/dropdown-menu.d.ts} +15 -15
  326. package/dist/ui/dropdown-menu.js +1 -0
  327. package/dist/ui/file-uploader.cjs +3 -0
  328. package/dist/ui/file-uploader.cjs.map +1 -0
  329. package/dist/{file-uploader.d.cts → ui/file-uploader.d.cts} +1 -1
  330. package/dist/{file-uploader.d.ts → ui/file-uploader.d.ts} +1 -1
  331. package/dist/ui/file-uploader.js +3 -0
  332. package/dist/ui/file-uploader.js.map +1 -0
  333. package/dist/ui/form.cjs +1 -0
  334. package/dist/ui/form.d.cts +33 -0
  335. package/dist/ui/form.d.ts +33 -0
  336. package/dist/ui/form.js +1 -0
  337. package/dist/ui/hover-card.cjs +2 -0
  338. package/dist/ui/hover-card.cjs.map +1 -0
  339. package/dist/{hover-card.d.cts → ui/hover-card.d.cts} +3 -3
  340. package/dist/{hover-card.d.ts → ui/hover-card.d.ts} +3 -3
  341. package/dist/ui/hover-card.js +2 -0
  342. package/dist/ui/hover-card.js.map +1 -0
  343. package/dist/ui/input-otp.cjs +2 -0
  344. package/dist/ui/input-otp.cjs.map +1 -0
  345. package/dist/{input-otp.d.cts → ui/input-otp.d.cts} +4 -4
  346. package/dist/{input-otp.d.ts → ui/input-otp.d.ts} +4 -4
  347. package/dist/ui/input-otp.js +2 -0
  348. package/dist/ui/input-otp.js.map +1 -0
  349. package/dist/ui/input.cjs +1 -0
  350. package/dist/ui/input.d.cts +2 -0
  351. package/dist/ui/input.d.ts +2 -0
  352. package/dist/ui/input.js +1 -0
  353. package/dist/ui/inputs/search-input.cjs +1 -0
  354. package/dist/ui/inputs/search-input.d.cts +11 -0
  355. package/dist/ui/inputs/search-input.d.ts +11 -0
  356. package/dist/ui/inputs/search-input.js +1 -0
  357. package/dist/ui/label.cjs +1 -0
  358. package/dist/{label.d.cts → ui/label.d.cts} +1 -1
  359. package/dist/{label.d.ts → ui/label.d.ts} +1 -1
  360. package/dist/ui/label.js +1 -0
  361. package/dist/ui/menubar.cjs +2 -0
  362. package/dist/ui/menubar.cjs.map +1 -0
  363. package/dist/{menubar.d.cts → ui/menubar.d.cts} +16 -16
  364. package/dist/{menubar.d.ts → ui/menubar.d.ts} +16 -16
  365. package/dist/ui/menubar.js +2 -0
  366. package/dist/ui/menubar.js.map +1 -0
  367. package/dist/ui/multi-select.cjs +2 -0
  368. package/dist/ui/multi-select.cjs.map +1 -0
  369. package/dist/ui/multi-select.d.cts +21 -0
  370. package/dist/ui/multi-select.d.ts +21 -0
  371. package/dist/ui/multi-select.js +2 -0
  372. package/dist/ui/multi-select.js.map +1 -0
  373. package/dist/ui/navigation-menu.cjs +2 -0
  374. package/dist/ui/navigation-menu.cjs.map +1 -0
  375. package/dist/{navigation-menu.d.cts → ui/navigation-menu.d.cts} +9 -10
  376. package/dist/{navigation-menu.d.ts → ui/navigation-menu.d.ts} +9 -10
  377. package/dist/ui/navigation-menu.js +2 -0
  378. package/dist/ui/navigation-menu.js.map +1 -0
  379. package/dist/ui/pagination.cjs +2 -0
  380. package/dist/ui/pagination.cjs.map +1 -0
  381. package/dist/{pagination.d.cts → ui/pagination.d.cts} +8 -8
  382. package/dist/{pagination.d.ts → ui/pagination.d.ts} +8 -8
  383. package/dist/ui/pagination.js +2 -0
  384. package/dist/ui/pagination.js.map +1 -0
  385. package/dist/ui/popover.cjs +2 -0
  386. package/dist/ui/popover.cjs.map +1 -0
  387. package/dist/{popover.d.cts → ui/popover.d.cts} +4 -4
  388. package/dist/{popover.d.ts → ui/popover.d.ts} +4 -4
  389. package/dist/ui/popover.js +2 -0
  390. package/dist/ui/popover.js.map +1 -0
  391. package/dist/ui/progress.cjs +1 -0
  392. package/dist/{progress.d.cts → ui/progress.d.cts} +1 -1
  393. package/dist/{progress.d.ts → ui/progress.d.ts} +1 -1
  394. package/dist/ui/progress.js +1 -0
  395. package/dist/ui/radio-group.cjs +2 -0
  396. package/dist/ui/radio-group.cjs.map +1 -0
  397. package/dist/{radio-group.d.cts → ui/radio-group.d.cts} +2 -2
  398. package/dist/{radio-group.d.ts → ui/radio-group.d.ts} +2 -2
  399. package/dist/ui/radio-group.js +2 -0
  400. package/dist/ui/radio-group.js.map +1 -0
  401. package/dist/ui/resizable.cjs +2 -0
  402. package/dist/ui/resizable.cjs.map +1 -0
  403. package/dist/{resizable.d.cts → ui/resizable.d.cts} +3 -3
  404. package/dist/{resizable.d.ts → ui/resizable.d.ts} +3 -3
  405. package/dist/ui/resizable.js +2 -0
  406. package/dist/ui/resizable.js.map +1 -0
  407. package/dist/ui/scroll-area.cjs +1 -0
  408. package/dist/{scroll-area.d.cts → ui/scroll-area.d.cts} +2 -2
  409. package/dist/{scroll-area.d.ts → ui/scroll-area.d.ts} +2 -2
  410. package/dist/ui/scroll-area.js +1 -0
  411. package/dist/ui/select.cjs +1 -0
  412. package/dist/{select.d.cts → ui/select.d.cts} +10 -10
  413. package/dist/{select.d.ts → ui/select.d.ts} +10 -10
  414. package/dist/ui/select.js +1 -0
  415. package/dist/ui/separator.cjs +1 -0
  416. package/dist/ui/separator.d.cts +2 -0
  417. package/dist/ui/separator.d.ts +2 -0
  418. package/dist/ui/separator.js +1 -0
  419. package/dist/ui/sheet.cjs +1 -0
  420. package/dist/{sheet.d.cts → ui/sheet.d.cts} +8 -8
  421. package/dist/{sheet.d.ts → ui/sheet.d.ts} +8 -8
  422. package/dist/ui/sheet.js +1 -0
  423. package/dist/ui/sidebar.cjs +1 -0
  424. package/dist/{sidebar.d.cts → ui/sidebar.d.cts} +29 -42
  425. package/dist/{sidebar.d.ts → ui/sidebar.d.ts} +29 -42
  426. package/dist/ui/sidebar.js +1 -0
  427. package/dist/ui/skeleton.cjs +1 -0
  428. package/dist/{skeleton.d.cts → ui/skeleton.d.cts} +1 -1
  429. package/dist/{skeleton.d.ts → ui/skeleton.d.ts} +1 -1
  430. package/dist/ui/skeleton.js +1 -0
  431. package/dist/ui/slider.cjs +2 -0
  432. package/dist/ui/slider.cjs.map +1 -0
  433. package/dist/{slider.d.cts → ui/slider.d.cts} +1 -1
  434. package/dist/{slider.d.ts → ui/slider.d.ts} +1 -1
  435. package/dist/ui/slider.js +2 -0
  436. package/dist/ui/slider.js.map +1 -0
  437. package/dist/ui/sonner.cjs +2 -0
  438. package/dist/ui/sonner.cjs.map +1 -0
  439. package/dist/ui/sonner.d.cts +5 -0
  440. package/dist/ui/sonner.d.ts +5 -0
  441. package/dist/ui/sonner.js.map +1 -0
  442. package/dist/ui/switch.cjs +2 -0
  443. package/dist/ui/switch.cjs.map +1 -0
  444. package/dist/{switch.d.cts → ui/switch.d.cts} +1 -1
  445. package/dist/{switch.d.ts → ui/switch.d.ts} +1 -1
  446. package/dist/ui/switch.js +2 -0
  447. package/dist/ui/switch.js.map +1 -0
  448. package/dist/ui/table.cjs +1 -0
  449. package/dist/{table.d.cts → ui/table.d.cts} +8 -8
  450. package/dist/{table.d.ts → ui/table.d.ts} +8 -8
  451. package/dist/ui/table.js +1 -0
  452. package/dist/ui/tabs.cjs +2 -0
  453. package/dist/ui/tabs.cjs.map +1 -0
  454. package/dist/{tabs.d.cts → ui/tabs.d.cts} +4 -4
  455. package/dist/{tabs.d.ts → ui/tabs.d.ts} +4 -4
  456. package/dist/ui/tabs.js +2 -0
  457. package/dist/ui/tabs.js.map +1 -0
  458. package/dist/ui/textarea.cjs +2 -0
  459. package/dist/ui/textarea.cjs.map +1 -0
  460. package/dist/{textarea.d.cts → ui/textarea.d.cts} +1 -1
  461. package/dist/{textarea.d.ts → ui/textarea.d.ts} +1 -1
  462. package/dist/ui/textarea.js +2 -0
  463. package/dist/ui/textarea.js.map +1 -0
  464. package/dist/ui/toggle-group.cjs +2 -0
  465. package/dist/ui/toggle-group.cjs.map +1 -0
  466. package/dist/{toggle-group.d.cts → ui/toggle-group.d.cts} +4 -4
  467. package/dist/{toggle-group.d.ts → ui/toggle-group.d.ts} +4 -4
  468. package/dist/ui/toggle-group.js +2 -0
  469. package/dist/ui/toggle-group.js.map +1 -0
  470. package/dist/ui/toggle.cjs +1 -0
  471. package/dist/ui/toggle.d.cts +2 -0
  472. package/dist/ui/toggle.d.ts +2 -0
  473. package/dist/ui/toggle.js +1 -0
  474. package/dist/ui/tooltip.cjs +1 -0
  475. package/dist/{tooltip.d.cts → ui/tooltip.d.cts} +1 -1
  476. package/dist/{tooltip.d.ts → ui/tooltip.d.ts} +1 -1
  477. package/dist/ui/tooltip.js +1 -0
  478. package/package.json +228 -133
  479. package/dist/alert-dialog.cjs +0 -2
  480. package/dist/alert-dialog.js +0 -2
  481. package/dist/alert-dialog.js.map +0 -1
  482. package/dist/alert.cjs +0 -2
  483. package/dist/alert.cjs.map +0 -1
  484. package/dist/alert.js +0 -2
  485. package/dist/alert.js.map +0 -1
  486. package/dist/aspect-ratio.cjs +0 -2
  487. package/dist/aspect-ratio.cjs.map +0 -1
  488. package/dist/aspect-ratio.js +0 -2
  489. package/dist/aspect-ratio.js.map +0 -1
  490. package/dist/avatar.cjs +0 -2
  491. package/dist/avatar.cjs.map +0 -1
  492. package/dist/avatar.js +0 -2
  493. package/dist/avatar.js.map +0 -1
  494. package/dist/badge.cjs +0 -2
  495. package/dist/badge.cjs.map +0 -1
  496. package/dist/badge.d.cts +0 -21
  497. package/dist/badge.d.ts +0 -21
  498. package/dist/badge.js +0 -2
  499. package/dist/badge.js.map +0 -1
  500. package/dist/breadcrumb.cjs +0 -2
  501. package/dist/breadcrumb.cjs.map +0 -1
  502. package/dist/breadcrumb.js +0 -2
  503. package/dist/breadcrumb.js.map +0 -1
  504. package/dist/button-B7eGk6JD.d.cts +0 -21
  505. package/dist/button-C1iCV8GH.js +0 -2
  506. package/dist/button-C1iCV8GH.js.map +0 -1
  507. package/dist/button-CXoxOggw.cjs +0 -2
  508. package/dist/button-CXoxOggw.cjs.map +0 -1
  509. package/dist/button-DrAGGMHl.d.ts +0 -21
  510. package/dist/button.cjs +0 -1
  511. package/dist/button.d.cts +0 -2
  512. package/dist/button.d.ts +0 -2
  513. package/dist/button.js +0 -1
  514. package/dist/calendar.cjs +0 -2
  515. package/dist/calendar.cjs.map +0 -1
  516. package/dist/calendar.js +0 -2
  517. package/dist/calendar.js.map +0 -1
  518. package/dist/card.cjs.map +0 -1
  519. package/dist/card.js.map +0 -1
  520. package/dist/carousel.cjs +0 -2
  521. package/dist/carousel.cjs.map +0 -1
  522. package/dist/carousel.js +0 -2
  523. package/dist/carousel.js.map +0 -1
  524. package/dist/collapsible.cjs +0 -2
  525. package/dist/collapsible.cjs.map +0 -1
  526. package/dist/collapsible.js +0 -2
  527. package/dist/collapsible.js.map +0 -1
  528. package/dist/command-BgkG6sKW.d.ts +0 -52
  529. package/dist/command-C3VVCkM3.d.cts +0 -52
  530. package/dist/command.cjs +0 -1
  531. package/dist/command.d.cts +0 -3
  532. package/dist/command.d.ts +0 -3
  533. package/dist/command.js +0 -1
  534. package/dist/context-menu.cjs +0 -2
  535. package/dist/context-menu.cjs.map +0 -1
  536. package/dist/context-menu.js +0 -2
  537. package/dist/context-menu.js.map +0 -1
  538. package/dist/dialog.cjs +0 -1
  539. package/dist/dialog.js +0 -1
  540. package/dist/dropdown-menu.cjs +0 -2
  541. package/dist/dropdown-menu.cjs.map +0 -1
  542. package/dist/dropdown-menu.js +0 -2
  543. package/dist/dropdown-menu.js.map +0 -1
  544. package/dist/file-uploader.cjs +0 -3
  545. package/dist/file-uploader.cjs.map +0 -1
  546. package/dist/file-uploader.js +0 -3
  547. package/dist/file-uploader.js.map +0 -1
  548. package/dist/form.cjs +0 -2
  549. package/dist/form.cjs.map +0 -1
  550. package/dist/form.d.cts +0 -47
  551. package/dist/form.d.ts +0 -47
  552. package/dist/form.js +0 -2
  553. package/dist/form.js.map +0 -1
  554. package/dist/hover-card.cjs +0 -2
  555. package/dist/hover-card.cjs.map +0 -1
  556. package/dist/hover-card.js +0 -2
  557. package/dist/hover-card.js.map +0 -1
  558. package/dist/input-otp.cjs +0 -2
  559. package/dist/input-otp.cjs.map +0 -1
  560. package/dist/input-otp.js +0 -2
  561. package/dist/input-otp.js.map +0 -1
  562. package/dist/input.cjs +0 -1
  563. package/dist/input.d.cts +0 -2
  564. package/dist/input.d.ts +0 -2
  565. package/dist/input.js +0 -1
  566. package/dist/label.cjs +0 -1
  567. package/dist/label.js +0 -1
  568. package/dist/menubar.cjs +0 -2
  569. package/dist/menubar.cjs.map +0 -1
  570. package/dist/menubar.js +0 -2
  571. package/dist/menubar.js.map +0 -1
  572. package/dist/multi-select.cjs +0 -2
  573. package/dist/multi-select.cjs.map +0 -1
  574. package/dist/multi-select.d.cts +0 -81
  575. package/dist/multi-select.d.ts +0 -81
  576. package/dist/multi-select.js +0 -2
  577. package/dist/multi-select.js.map +0 -1
  578. package/dist/navigation-menu.cjs +0 -2
  579. package/dist/navigation-menu.cjs.map +0 -1
  580. package/dist/navigation-menu.js +0 -2
  581. package/dist/navigation-menu.js.map +0 -1
  582. package/dist/pagination.cjs +0 -2
  583. package/dist/pagination.cjs.map +0 -1
  584. package/dist/pagination.js +0 -2
  585. package/dist/pagination.js.map +0 -1
  586. package/dist/popover.cjs +0 -2
  587. package/dist/popover.cjs.map +0 -1
  588. package/dist/popover.js +0 -2
  589. package/dist/popover.js.map +0 -1
  590. package/dist/progress.cjs +0 -1
  591. package/dist/progress.js +0 -1
  592. package/dist/radio-group.cjs +0 -2
  593. package/dist/radio-group.cjs.map +0 -1
  594. package/dist/radio-group.js +0 -2
  595. package/dist/radio-group.js.map +0 -1
  596. package/dist/resizable.cjs +0 -2
  597. package/dist/resizable.cjs.map +0 -1
  598. package/dist/resizable.js +0 -2
  599. package/dist/resizable.js.map +0 -1
  600. package/dist/scroll-area.cjs +0 -2
  601. package/dist/scroll-area.cjs.map +0 -1
  602. package/dist/scroll-area.js +0 -2
  603. package/dist/scroll-area.js.map +0 -1
  604. package/dist/select.cjs +0 -2
  605. package/dist/select.cjs.map +0 -1
  606. package/dist/select.js +0 -2
  607. package/dist/select.js.map +0 -1
  608. package/dist/separator.cjs +0 -1
  609. package/dist/separator.d.cts +0 -2
  610. package/dist/separator.d.ts +0 -2
  611. package/dist/separator.js +0 -1
  612. package/dist/sheet.cjs +0 -1
  613. package/dist/sheet.js +0 -1
  614. package/dist/sidebar.cjs +0 -2
  615. package/dist/sidebar.cjs.map +0 -1
  616. package/dist/sidebar.js +0 -2
  617. package/dist/sidebar.js.map +0 -1
  618. package/dist/skeleton.cjs +0 -1
  619. package/dist/skeleton.js +0 -1
  620. package/dist/slider.cjs +0 -2
  621. package/dist/slider.cjs.map +0 -1
  622. package/dist/slider.js +0 -2
  623. package/dist/slider.js.map +0 -1
  624. package/dist/sonner.cjs +0 -2
  625. package/dist/sonner.cjs.map +0 -1
  626. package/dist/sonner.d.cts +0 -7
  627. package/dist/sonner.d.ts +0 -7
  628. package/dist/sonner.js.map +0 -1
  629. package/dist/switch.cjs +0 -2
  630. package/dist/switch.cjs.map +0 -1
  631. package/dist/switch.js +0 -2
  632. package/dist/switch.js.map +0 -1
  633. package/dist/table.cjs +0 -2
  634. package/dist/table.cjs.map +0 -1
  635. package/dist/table.js +0 -2
  636. package/dist/table.js.map +0 -1
  637. package/dist/tabs.cjs +0 -2
  638. package/dist/tabs.cjs.map +0 -1
  639. package/dist/tabs.js +0 -2
  640. package/dist/tabs.js.map +0 -1
  641. package/dist/textarea.cjs +0 -2
  642. package/dist/textarea.cjs.map +0 -1
  643. package/dist/textarea.js +0 -2
  644. package/dist/textarea.js.map +0 -1
  645. package/dist/toggle-BI0k1RKv.d.ts +0 -19
  646. package/dist/toggle-D7fc-kHq.d.cts +0 -19
  647. package/dist/toggle-group.cjs +0 -2
  648. package/dist/toggle-group.cjs.map +0 -1
  649. package/dist/toggle-group.js +0 -2
  650. package/dist/toggle-group.js.map +0 -1
  651. package/dist/toggle.cjs +0 -1
  652. package/dist/toggle.d.cts +0 -2
  653. package/dist/toggle.d.ts +0 -2
  654. package/dist/toggle.js +0 -1
  655. package/dist/tooltip.cjs +0 -1
  656. package/dist/tooltip.js +0 -1
  657. /package/dist/{sonner.js → ui/sonner.js} +0 -0
@@ -0,0 +1,2 @@
1
+ const e=require(`../chunk-CUT6urMc.cjs`);require(`../utils-BsjVK5EW.cjs`),require(`../button-Dzv_nos1.cjs`);const t=require(`../alert-dialog-D5ZqgIiC.cjs`),n=e.__toESM(require(`react/jsx-runtime`)),r=({open:e,isLoading:r=!1,title:i,description:a,onOpenChange:o,onConfirm:s})=>(0,n.jsx)(t.AlertDialog,{open:e,onOpenChange:o,children:(0,n.jsxs)(t.AlertDialogContent,{children:[(0,n.jsxs)(t.AlertDialogHeader,{className:`gap-0`,children:[(0,n.jsx)(t.AlertDialogTitle,{children:i}),(0,n.jsx)(t.AlertDialogDescription,{children:a})]}),(0,n.jsxs)(t.AlertDialogFooter,{children:[(0,n.jsx)(t.AlertDialogCancel,{children:`Cancel`}),(0,n.jsx)(t.AlertDialogAction,{className:`w-24`,onClick:s,children:r?(0,n.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:(0,n.jsx)(`div`,{className:`loader-spinner text-muted-foreground`})}):`Confirm`})]})]})});exports.ConfirmDialog=r;
2
+ //# sourceMappingURL=confirm-dialog.cjs.map
@@ -0,0 +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?: () => void;\n};\n\nexport const ConfirmDialog: React.FC<React.PropsWithChildren<Props>> = ({\n open,\n isLoading = false,\n title,\n description,\n onOpenChange,\n onConfirm,\n}) => {\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 className=\"w-24\" onClick={onConfirm}>\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":"sMAoBaA,GAA2D,CACtE,OACA,YAAY,GACZ,QACA,cACA,eACA,YACD,IAEG,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,GACnB,EAAA,EAAA,KAACC,EAAAA,uBAAAA,CAAAA,SAAwB,EAAA,EAAA,IAE3B,EAAA,EAAA,MAACC,EAAAA,kBAAAA,CAAAA,SAAAA,EACC,EAAA,EAAA,KAACC,EAAAA,kBAAAA,CAAAA,SAAkB,SAAA,GACnB,EAAA,EAAA,KAACC,EAAAA,kBAAAA,CAAkB,UAAU,OAAO,QAAS,WACzC,GAGA,EAAA,EAAA,KAAC,MAAA,CAAI,UAAU,8DACb,EAAA,EAAA,KAAC,MAAA,CAAI,UAAU,uCAAA,IAHjB"}
@@ -0,0 +1,13 @@
1
+ //#region packages/components/dialogs/confirm-dialog.d.ts
2
+ type Props = {
3
+ open?: boolean;
4
+ isLoading?: boolean;
5
+ title: string;
6
+ description: string;
7
+ onOpenChange?: (open: boolean) => void;
8
+ onConfirm?: () => void;
9
+ };
10
+ declare const ConfirmDialog: React.FC<React.PropsWithChildren<Props>>;
11
+ //#endregion
12
+ export { ConfirmDialog };
13
+ //# sourceMappingURL=confirm-dialog.d.cts.map
@@ -0,0 +1,13 @@
1
+ //#region packages/components/dialogs/confirm-dialog.d.ts
2
+ type Props = {
3
+ open?: boolean;
4
+ isLoading?: boolean;
5
+ title: string;
6
+ description: string;
7
+ onOpenChange?: (open: boolean) => void;
8
+ onConfirm?: () => void;
9
+ };
10
+ declare const ConfirmDialog: React.FC<React.PropsWithChildren<Props>>;
11
+ //#endregion
12
+ export { ConfirmDialog };
13
+ //# sourceMappingURL=confirm-dialog.d.ts.map
@@ -0,0 +1,2 @@
1
+ import"../utils-D9AH0PUV.js";import"../button-Bku3bKv9.js";import{AlertDialog as e,AlertDialogAction as t,AlertDialogCancel as n,AlertDialogContent as r,AlertDialogDescription as i,AlertDialogFooter as a,AlertDialogHeader as o,AlertDialogTitle as s}from"../alert-dialog-0KwdjY-6.js";import{jsx as c,jsxs as l}from"react/jsx-runtime";const u=({open:u,isLoading:d=!1,title:f,description:p,onOpenChange:m,onConfirm:h})=>c(e,{open:u,onOpenChange:m,children:l(r,{children:[l(o,{className:`gap-0`,children:[c(s,{children:f}),c(i,{children:p})]}),l(a,{children:[c(n,{children:`Cancel`}),c(t,{className:`w-24`,onClick:h,children:d?c(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:c(`div`,{className:`loader-spinner text-muted-foreground`})}):`Confirm`})]})]})});export{u as ConfirmDialog};
2
+ //# sourceMappingURL=confirm-dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirm-dialog.js","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?: () => void;\n};\n\nexport const ConfirmDialog: React.FC<React.PropsWithChildren<Props>> = ({\n open,\n isLoading = false,\n title,\n description,\n onOpenChange,\n onConfirm,\n}) => {\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 className=\"w-24\" onClick={onConfirm}>\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":"6UAoBA,MAAaA,GAA2D,CACtE,OACA,YAAY,GACZ,QACA,cACA,eACA,YACD,GAEG,EAAC,EAAA,CAAkB,OAAoB,wBACrC,EAAC,EAAA,CAAA,SAAA,CACC,EAAC,EAAA,CAAkB,UAAU,kBAC3B,EAAC,EAAA,CAAA,SAAkB,EAAA,EACnB,EAAC,EAAA,CAAA,SAAwB,EAAA,EAAA,GAE3B,EAAC,EAAA,CAAA,SAAA,CACC,EAAC,EAAA,CAAA,SAAkB,SAAA,EACnB,EAAC,EAAA,CAAkB,UAAU,OAAO,QAAS,WACzC,EAGA,EAAC,MAAA,CAAI,UAAU,6DACb,EAAC,MAAA,CAAI,UAAU,uCAAA,IAHjB"}
@@ -0,0 +1,2 @@
1
+ const e=require(`../../chunk-CUT6urMc.cjs`),t=require(`../../utils-BsjVK5EW.cjs`),n=require(`../../flex-CNA_SId-.cjs`),r=require(`../../date-nd8WkPlx.cjs`),i=require(`../../tooltip-Beb-_EPp.cjs`),a=require(`../../button-Dzv_nos1.cjs`),o=require(`../../dialog-W-DmDMEE.cjs`);require(`../../input-DXEBB91E.cjs`);const s=require(`../../title-xsPZpQpb.cjs`);require(`../../separator-DTB3sDNG.cjs`),require(`../../skeleton-m3giaF4T.cjs`);const c=e.__toESM(require(`react`)),l=e.__toESM(require(`react/jsx-runtime`)),u=e.__toESM(require(`class-variance-authority`)),d=e.__toESM(require(`lucide-react`)),f=e.__toESM(require(`radix-ui`)),p=()=>(0,l.jsxs)(o.DialogHeader,{className:`sr-only`,children:[(0,l.jsx)(o.DialogTitle,{className:`sr-only`}),(0,l.jsx)(o.DialogDescription,{className:`sr-only`})]}),m=`detai_dialog_sidebar_state`,h=3600*24*7,g=`16rem`,_=`3rem`,v=`p`,y=c.default.createContext(null);function b(){let e=c.default.useContext(y);if(!e)throw Error(`useSidebar must be used within a SidebarProvider.`);return e}function x({defaultOpen:e=!0,open:n,onOpenChange:r,className:a,style:o,children:s,...u}){let[d,f]=c.default.useState(!1),[p,m]=c.default.useState(e),h=n??p,g=c.default.useCallback(e=>{let t=typeof e==`function`?e(h):e;r?r(t):m(t),document.cookie=`detai_dialog_sidebar_state=${t}; path=/; max-age=604800`},[r,h]),_=c.default.useCallback(()=>g(e=>!e),[g]);c.default.useEffect(()=>{let e=e=>{e.key===`p`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),_())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[_]);let v=h?`expanded`:`collapsed`,b=c.default.useMemo(()=>({state:v,open:h,setOpen:g,openMobile:d,setOpenMobile:f,toggleSidebar:_}),[v,h,g,d,f,_]);return(0,l.jsx)(y.Provider,{value:b,children:(0,l.jsx)(i.TooltipProvider,{delayDuration:0,children:(0,l.jsx)(`div`,{"data-slot":`sidebar-wrapper`,style:{"--sidebar-width":`16rem`,"--sidebar-width-icon":`3rem`,...o},className:t.cn(`group/sidebar-wrapper`,`has-data-[variant=inset]:bg-sidebar`,`flex min-h-svh w-full`,a),...u,children:s})})})}function S({side:e=`left`,variant:n=`sidebar`,collapsible:r=`offcanvas`,className:i,children:a,...o}){let{state:s}=b();return r===`none`?(0,l.jsx)(`div`,{"data-slot":`sidebar`,className:t.cn(`bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col`,i),...o,children:a}):(0,l.jsxs)(`div`,{className:`group peer text-sidebar-foreground hidden md:block`,"data-state":s,"data-collapsible":s===`collapsed`?r:``,"data-variant":n,"data-side":e,"data-slot":`sidebar`,children:[(0,l.jsx)(`div`,{"data-slot":`sidebar-gap`,className:t.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`,n===`floating`||n===`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:t.cn(`absolute inset-y-0 z-10 hidden w-(--sidebar-width) 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)]`,n===`floating`||n===`inset`?`p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l`,i),...o,children:(0,l.jsx)(`div`,{"data-sidebar":`sidebar`,"data-slot":`sidebar-inner`,className:t.cn(`flex h-full w-full flex-col`,`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:a})})]})}function C({className:e,onClick:n,...r}){let{toggleSidebar:i}=b();return(0,l.jsxs)(a.Button,{"data-sidebar":`trigger`,"data-slot":`sidebar-trigger`,variant:`ghost`,size:`icon`,className:t.cn(`size-10 rounded-full [&_svg]:!size-6`,e),onClick:e=>{n?.(e),i()},...r,children:[(0,l.jsx)(d.MenuIcon,{}),(0,l.jsx)(`span`,{className:`sr-only`,children:`Toggle Sidebar`})]})}function w({className:e,...n}){return(0,l.jsx)(`div`,{"data-slot":`sidebar-header`,"data-sidebar":`header`,className:t.cn(`flex flex-col gap-2 p-2`,e),...n})}function T({className:e,...n}){return(0,l.jsx)(`div`,{"data-slot":`sidebar-footer`,"data-sidebar":`footer`,className:t.cn(`flex flex-col gap-2 p-2`,e),...n})}function E({className:e,...n}){return(0,l.jsx)(`div`,{"data-slot":`sidebar-content`,"data-sidebar":`content`,className:t.cn(`flex min-h-0 flex-1 flex-col gap-2 overflow-auto`,`group-data-[collapsible=icon]:overflow-hidden`,e),...n})}function D({className:e,...n}){return(0,l.jsx)(`div`,{"data-slot":`sidebar-group`,"data-sidebar":`group`,className:t.cn(`relative flex w-full min-w-0 flex-col p-2`,e),...n})}function O({className:e,...n}){return(0,l.jsx)(`ul`,{"data-slot":`sidebar-menu`,"data-sidebar":`menu`,className:t.cn(`flex w-full min-w-0 flex-col gap-1`,e),...n})}function k({className:e,...n}){return(0,l.jsx)(`li`,{"data-slot":`sidebar-menu-item`,"data-sidebar":`menu-item`,className:t.cn(`group/menu-item relative`,e),...n})}const A=(0,u.cva)(`peer/menu-button cursor-pointer flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 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-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground 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! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0`,{variants:{variant:{default:`hover:bg-sidebar-accent hover:text-sidebar-accent-foreground`,outline:`bg-background border 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 j({asChild:e=!1,isActive:n=!1,variant:r=`default`,size:a=`default`,tooltip:o,className:s,...c}){let u=e?f.Slot.Slot:`button`,{state:d}=b(),p=(0,l.jsx)(u,{"data-slot":`sidebar-menu-button`,"data-sidebar":`menu-button`,"data-size":a,"data-active":n,className:t.cn(A({variant:r,size:a}),s),...c});return o?(typeof o==`string`&&(o={children:o}),(0,l.jsxs)(i.Tooltip,{children:[(0,l.jsx)(i.TooltipTrigger,{asChild:!0,children:p}),(0,l.jsx)(i.TooltipContent,{side:`right`,align:`center`,hidden:d!==`collapsed`,...o})]})):p}const M=({children:e})=>(0,l.jsx)(`main`,{className:`relative flex h-full flex-1 flex-col`,children:(0,l.jsx)(`div`,{className:`absolute inset-0 flex size-full flex-col`,children:e})}),N=({title:e,createdAt:t})=>(0,l.jsxs)(`header`,{className:`relative flex items-start gap-x-2.5 border-b px-2 py-2.5`,children:[(0,l.jsx)(C,{}),(0,l.jsxs)(n.Flex,{vertical:!0,align:`start`,padding:`none`,className:`flex-1`,children:[(0,l.jsx)(s.Title,{level:5,children:e||`Detail Dialog`}),(0,l.jsxs)(n.Flex,{padding:`none`,className:`text-muted-foreground`,children:[(0,l.jsx)(d.CalendarIcon,{size:12}),!!t&&(0,l.jsx)(r.DateDisplay,{showTime:!0,showHoliday:!0,date:t,format:`full`})]})]})]}),P=({children:e})=>(0,l.jsx)(o.DialogContent,{className:`relative h-full max-h-[90svh] overflow-hidden rounded-lg border-none p-0 sm:max-w-[calc(100svw-2rem)]`,onInteractOutside:e=>{e.preventDefault(),e.stopPropagation()},children:e}),F=({title:e,sidebarFooter:t,children:n})=>(0,l.jsxs)(S,{collapsible:`icon`,className:`hidden border-r md:flex`,children:[(0,l.jsx)(w,{children:(0,l.jsx)(O,{children:(0,l.jsx)(k,{children:(0,l.jsxs)(j,{size:`lg`,tabIndex:-1,children:[(0,l.jsx)(`div`,{className:`bg-sidebar-primary text-sidebar-primary-foreground flex aspect-square size-8 items-center justify-center rounded-lg`,children:(0,l.jsx)(d.CatIcon,{size:16})}),(0,l.jsxs)(`div`,{className:`grid flex-1 text-left text-sm leading-tight`,children:[(0,l.jsx)(`span`,{className:`truncate font-medium`,children:e||`Detail Dialog`}),(0,l.jsx)(`span`,{className:`truncate text-xs`,children:`Lunas Enterprise`})]})]})})})}),(0,l.jsx)(E,{children:(0,l.jsx)(D,{children:n})}),t&&(0,l.jsx)(T,{children:t})]}),I=({open:e,isLoading:t=!1,sidebarTitle:r,sidebar:i,sidebarFooter:a,title:s,createdAt:c,onOpenChange:u,children:d})=>(0,l.jsx)(o.Dialog,{open:e,onOpenChange:u,children:(0,l.jsxs)(P,{children:[(0,l.jsx)(p,{}),(0,l.jsxs)(x,{className:`h-full min-h-[85svh] items-start`,children:[(0,l.jsx)(F,{title:r,sidebarFooter:a,children:i}),(0,l.jsxs)(M,{children:[(0,l.jsx)(N,{title:s,createdAt:c}),t?(0,l.jsx)(n.Flex,{justify:`center`,className:`bg-muted/50 size-full`,children:(0,l.jsx)(`div`,{className:`loader`})}):(0,l.jsx)(`section`,{className:`bg-muted/50 relative flex-1 overflow-y-auto inset-shadow-sm`,children:d})]})]})]})});exports.DetailDialog=I;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["DialogHeader","DialogTitle","DialogDescription","React","open","TooltipProvider","cn","Button","MenuIcon","SlotPrimitive","Tooltip","TooltipTrigger","TooltipContent","DetailDialogMain: React.FC<React.PropsWithChildren>","DetailDialogMainHeader: React.FC<\n React.PropsWithChildren<{\n title: string;\n createdAt: string | Date | number;\n }>\n>","Flex","Title","CalendarIcon","DateDisplay","DetailDialogWrapper: React.FC<React.PropsWithChildren>","DialogContent","DetailDialogSidebar: React.FC<\n React.PropsWithChildren<{ title?: string; sidebarFooter?: React.ReactNode }>\n>","CatIcon","DetailDialog: React.FC<React.PropsWithChildren<Props>>","Dialog","Flex"],"sources":["../../../packages/components/dialogs/detail-dialog/component/header.tsx","../../../packages/components/dialogs/detail-dialog/component/sidebar.tsx","../../../packages/components/dialogs/detail-dialog/component/main.tsx","../../../packages/components/dialogs/detail-dialog/component/wrapper.tsx","../../../packages/components/dialogs/detail-dialog/index.tsx"],"sourcesContent":["import {\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from \"@/components/ui/dialog\";\n\nexport const DetailDialogHeader = () => {\n return (\n <DialogHeader className=\"sr-only\">\n <DialogTitle className=\"sr-only\"></DialogTitle>\n <DialogDescription className=\"sr-only\"></DialogDescription>\n </DialogHeader>\n );\n};\n","import React from \"react\";\nimport { Slot as SlotPrimitive } from \"radix-ui\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { MenuIcon } from \"lucide-react\";\n\nimport { Button } from \"@/components/ui/button\";\nimport { Input } from \"@/components/ui/input\";\nimport { Separator } from \"@/components/ui/separator\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@/components/ui/tooltip\";\nimport { cn } from \"@/lib/utils\";\n\nconst SIDEBAR_COOKIE_NAME = \"detai_dialog_sidebar_state\";\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = \"16rem\";\nconst SIDEBAR_WIDTH_ICON = \"3rem\";\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"p\";\n\ntype SidebarContextProps = {\n state: \"expanded\" | \"collapsed\";\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null);\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider.\");\n }\n\n return context;\n}\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n}) {\n const [openMobile, setOpenMobile] = React.useState(false);\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open],\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return setOpen((open) => !open);\n }, [setOpen]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => window.removeEventListener(\"keydown\", handleKeyDown);\n }, [toggleSidebar]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? \"expanded\" : \"collapsed\";\n\n const contextValue = React.useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, openMobile, setOpenMobile, toggleSidebar],\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n data-slot=\"sidebar-wrapper\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n \"group/sidebar-wrapper\",\n \"has-data-[variant=inset]:bg-sidebar\",\n \"flex min-h-svh w-full\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n}\n\nfunction Sidebar({\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n className,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n side?: \"left\" | \"right\";\n variant?: \"sidebar\" | \"floating\" | \"inset\";\n collapsible?: \"offcanvas\" | \"icon\" | \"none\";\n}) {\n const { state } = useSidebar();\n\n if (collapsible === \"none\") {\n return (\n <div\n data-slot=\"sidebar\"\n className={cn(\n \"bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n return (\n <div\n className=\"group peer text-sidebar-foreground hidden md:block\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n \"relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n \"group-data-[side=right]:rotate-180\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\",\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n className={cn(\n \"absolute inset-y-0 z-10 hidden w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex\",\n side === \"left\"\n ? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n : \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n // Adjust the padding for floating and inset variants.\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className={cn(\n \"flex h-full w-full flex-col\",\n \"group-data-[variant=floating]:border-sidebar-border\",\n \"group-data-[variant=floating]:rounded-lg\",\n \"group-data-[variant=floating]:border\",\n \"group-data-[variant=floating]:shadow-sm\",\n )}\n >\n {children}\n </div>\n </div>\n </div>\n );\n}\n\nfunction SidebarTrigger({\n className,\n onClick,\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(\"size-10 rounded-full [&_svg]:!size-6\", className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <MenuIcon />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n}\n\nfunction SidebarRail({ className, ...props }: React.ComponentProps<\"button\">) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n \"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear sm:flex\",\n \"after:absolute\",\n \"after:inset-y-0\",\n \"after:left-1/2 after:w-0.5\",\n \"hover:after:bg-sidebar-border\",\n \"group-data-[side=left]:-right-4\",\n \"group-data-[side=right]:left-0\",\n \"in-data-[side=left]:cursor-w-resize\",\n \"in-data-[side=right]:cursor-e-resize\",\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize\",\n \"[[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"hover:group-data-[collapsible=offcanvas]:bg-sidebar\",\n \"group-data-[collapsible=offcanvas]:translate-x-0\",\n \"group-data-[collapsible=offcanvas]:after:left-full\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarInset({ className, ...props }: React.ComponentProps<\"main\">) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\n \"bg-background relative flex w-full flex-1 flex-col\",\n \"md:peer-data-[variant=inset]:m-2\",\n \"md:peer-data-[variant=inset]:ml-0\",\n \"md:peer-data-[variant=inset]:rounded-xl\",\n \"md:peer-data-[variant=inset]:shadow-sm\",\n \"md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarInput({\n className,\n ...props\n}: React.ComponentProps<typeof Input>) {\n return (\n <Input\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn(\"bg-background h-8 w-full shadow-none\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n className={cn(\"bg-sidebar-border mx-2 w-auto\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-auto\",\n \"group-data-[collapsible=icon]:overflow-hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n className={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupLabel({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"div\"> & { asChild?: boolean }) {\n const Comp = asChild ? SlotPrimitive.Slot : \"div\";\n\n return (\n <Comp\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n className={cn(\n \"text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear\",\n \"focus-visible:ring-2\",\n \"[&>svg]:size-4\",\n \"[&>svg]:shrink-0\",\n \"group-data-[collapsible=icon]:-mt-8\",\n \"group-data-[collapsible=icon]:opacity-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupAction({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> & { asChild?: boolean }) {\n const Comp = asChild ? SlotPrimitive.Slot : \"button\";\n\n return (\n <Comp\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n \"text-sidebar-foreground ring-sidebar-ring absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform\",\n \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n \"focus-visible:ring-2\",\n \"[&>svg]:size-4\",\n \"[&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute\",\n \"after:-inset-2\",\n \"md:after:hidden\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupContent({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n className={cn(\"w-full text-sm\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n className={cn(\"group/menu-item relative\", className)}\n {...props}\n />\n );\n}\n\nconst sidebarMenuButtonVariants = cva(\n \"peer/menu-button cursor-pointer flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 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-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground 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! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-background border 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))]\",\n },\n size: {\n default: \"h-8 text-sm\",\n sm: \"h-7 text-xs\",\n lg: \"h-12 text-sm group-data-[collapsible=icon]:p-0!\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = \"default\",\n size = \"default\",\n tooltip,\n className,\n ...props\n}: React.ComponentProps<\"button\"> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n const Comp = asChild ? SlotPrimitive.Slot : \"button\";\n const { state } = useSidebar();\n\n const button = (\n <Comp\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === \"string\") {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== \"collapsed\"}\n {...tooltip}\n />\n </Tooltip>\n );\n}\n\nfunction SidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ...props\n}: React.ComponentProps<\"button\"> & {\n asChild?: boolean;\n showOnHover?: boolean;\n}) {\n const Comp = asChild ? SlotPrimitive.Slot : \"button\";\n\n return (\n <Comp\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n \"text-sidebar-foreground ring-sidebar-ring\",\n \"hover:bg-sidebar-accent\",\n \"hover:text-sidebar-accent-foreground\",\n \"peer-hover/menu-button: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\",\n \"focus-visible:ring-2\",\n \"[&>svg]:size-4\",\n \"[&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 md:after:hidden\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n showOnHover &&\n \"peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n showOnHover && \"$group-focus-within/menu-item:opacity-100\",\n showOnHover && \"group-hover/menu-item:opacity-100\",\n showOnHover && \"data-[state=open]:opacity-100 md:opacity-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuBadge({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n \"text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none\",\n \"peer-hover/menu-button:text-sidebar-accent-foreground\",\n \"peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: React.ComponentProps<\"div\"> & {\n showIcon?: boolean;\n}) {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n className={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n {...props}\n >\n {showIcon && (\n <Skeleton\n className=\"size-4 rounded-md\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n}\n\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n \"border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSubItem({\n className,\n ...props\n}: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n className={cn(\"group/menu-sub-item relative\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSubButton({\n asChild = false,\n size = \"md\",\n isActive = false,\n className,\n ...props\n}: React.ComponentProps<\"a\"> & {\n asChild?: boolean;\n size?: \"sm\" | \"md\";\n isActive?: boolean;\n}) {\n const Comp = asChild ? SlotPrimitive.Slot : \"a\";\n\n return (\n <Comp\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n \"text-sidebar-foreground ring-sidebar-ring\",\n \"flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden\",\n \"hover:bg-sidebar-accent\",\n \"hover:text-sidebar-accent-foreground\",\n \"active:bg-sidebar-accent\",\n \"active:text-sidebar-accent-foreground\",\n \"focus-visible:ring-2\",\n \"disabled:pointer-events-none\",\n \"disabled:opacity-50\",\n \"aria-disabled:pointer-events-none\",\n \"aria-disabled:opacity-50\",\n \"[&>span:last-child]:truncate\",\n \"[&>svg]:size-4\",\n \"[&>svg]:shrink-0\",\n \"[&>svg]:text-sidebar-accent-foreground\",\n \"data-[active=true]:bg-sidebar-accent\",\n \"data-[active=true]:text-sidebar-accent-foreground\",\n \"group-data-[collapsible=icon]:hidden\",\n size === \"sm\" && \"text-xs\",\n size === \"md\" && \"text-sm\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n // eslint-disable-next-line react-refresh/only-export-components\n useSidebar,\n};\n","import { CalendarIcon } from \"lucide-react\";\n\nimport { DateDisplay } from \"@/components/data-display/date\";\nimport { Flex } from \"@/components/layouts/flex\";\nimport { Title } from \"@/components/typography/title\";\n\nimport { SidebarTrigger } from \"./sidebar\";\n\nexport const DetailDialogMain: React.FC<React.PropsWithChildren> = ({\n children,\n}) => {\n return (\n <main className=\"relative flex h-full flex-1 flex-col\">\n <div className=\"absolute inset-0 flex size-full flex-col\">{children}</div>\n </main>\n );\n};\n\nexport const DetailDialogMainHeader: React.FC<\n React.PropsWithChildren<{\n title: string;\n createdAt: string | Date | number;\n }>\n> = ({ title, createdAt }) => {\n return (\n <header className=\"relative flex items-start gap-x-2.5 border-b px-2 py-2.5\">\n <SidebarTrigger />\n <Flex vertical align=\"start\" padding=\"none\" className=\"flex-1\">\n <Title level={5}>{title || \"Detail Dialog\"}</Title>\n <Flex padding=\"none\" className=\"text-muted-foreground\">\n <CalendarIcon size={12} />\n {!!createdAt && (\n <DateDisplay showTime showHoliday date={createdAt} format=\"full\" />\n )}\n </Flex>\n </Flex>\n </header>\n );\n};\n","import { DialogContent } from \"@/components/ui/dialog\";\n\nexport const DetailDialogWrapper: React.FC<React.PropsWithChildren> = ({\n children,\n}) => {\n return (\n <DialogContent\n className=\"relative h-full max-h-[90svh] overflow-hidden rounded-lg border-none p-0 sm:max-w-[calc(100svw-2rem)]\"\n onInteractOutside={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n >\n {children}\n </DialogContent>\n );\n};\n","import { CatIcon } from \"lucide-react\";\n\nimport { Flex } from \"@/components/layouts/flex\";\nimport { Dialog } from \"@/components/ui/dialog\";\n\nimport { DetailDialogHeader } from \"./component/header\";\nimport { DetailDialogMain, DetailDialogMainHeader } from \"./component/main\";\nimport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarHeader,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarProvider,\n} from \"./component/sidebar\";\nimport { DetailDialogWrapper } from \"./component/wrapper\";\n\nconst DetailDialogSidebar: React.FC<\n React.PropsWithChildren<{ title?: string; sidebarFooter?: React.ReactNode }>\n> = ({ title, sidebarFooter, children }) => {\n return (\n <Sidebar collapsible=\"icon\" className=\"hidden border-r md:flex\">\n <SidebarHeader>\n <SidebarMenu>\n <SidebarMenuItem>\n <SidebarMenuButton size=\"lg\" tabIndex={-1}>\n <div className=\"bg-sidebar-primary text-sidebar-primary-foreground flex aspect-square size-8 items-center justify-center rounded-lg\">\n <CatIcon size={16} />\n </div>\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-medium\">\n {title || \"Detail Dialog\"}\n </span>\n <span className=\"truncate text-xs\">Lunas Enterprise</span>\n </div>\n </SidebarMenuButton>\n </SidebarMenuItem>\n </SidebarMenu>\n </SidebarHeader>\n <SidebarContent>\n <SidebarGroup>{children}</SidebarGroup>\n </SidebarContent>\n {sidebarFooter && <SidebarFooter>{sidebarFooter}</SidebarFooter>}\n </Sidebar>\n );\n};\n\ntype Props = {\n open?: boolean;\n isLoading?: boolean;\n sidebarTitle?: string;\n sidebar?: React.ReactNode;\n sidebarFooter?: React.ReactNode;\n title: string;\n createdAt: string | Date | number;\n onOpenChange?: (open: boolean) => void | Promise<void>;\n};\nexport const DetailDialog: React.FC<React.PropsWithChildren<Props>> = ({\n open,\n isLoading = false,\n sidebarTitle,\n sidebar,\n sidebarFooter,\n title,\n createdAt,\n onOpenChange,\n children,\n}) => {\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DetailDialogWrapper>\n <DetailDialogHeader />\n\n <SidebarProvider className=\"h-full min-h-[85svh] items-start\">\n <DetailDialogSidebar\n title={sidebarTitle}\n sidebarFooter={sidebarFooter}\n >\n {sidebar}\n </DetailDialogSidebar>\n <DetailDialogMain>\n <DetailDialogMainHeader title={title} createdAt={createdAt} />\n {isLoading ? (\n <Flex justify=\"center\" className=\"bg-muted/50 size-full\">\n <div className=\"loader\" />\n </Flex>\n ) : (\n <section className=\"bg-muted/50 relative flex-1 overflow-y-auto inset-shadow-sm\">\n {children}\n </section>\n )}\n </DetailDialogMain>\n </SidebarProvider>\n </DetailDialogWrapper>\n </Dialog>\n );\n};\n"],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ //#region packages/components/dialogs/detail-dialog/index.d.ts
2
+ type Props = {
3
+ open?: boolean;
4
+ isLoading?: boolean;
5
+ sidebarTitle?: string;
6
+ sidebar?: React.ReactNode;
7
+ sidebarFooter?: React.ReactNode;
8
+ title: string;
9
+ createdAt: string | Date | number;
10
+ onOpenChange?: (open: boolean) => void | Promise<void>;
11
+ };
12
+ declare const DetailDialog: React.FC<React.PropsWithChildren<Props>>;
13
+ //#endregion
14
+ export { DetailDialog };
15
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1,15 @@
1
+ //#region packages/components/dialogs/detail-dialog/index.d.ts
2
+ type Props = {
3
+ open?: boolean;
4
+ isLoading?: boolean;
5
+ sidebarTitle?: string;
6
+ sidebar?: React.ReactNode;
7
+ sidebarFooter?: React.ReactNode;
8
+ title: string;
9
+ createdAt: string | Date | number;
10
+ onOpenChange?: (open: boolean) => void | Promise<void>;
11
+ };
12
+ declare const DetailDialog: React.FC<React.PropsWithChildren<Props>>;
13
+ //#endregion
14
+ export { DetailDialog };
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,2 @@
1
+ import{cn as e}from"../../utils-D9AH0PUV.js";import{Flex as t}from"../../flex-ILvQrYMJ.js";import{DateDisplay as n}from"../../date-BMq_DNsv.js";import{Tooltip as r,TooltipContent as i,TooltipProvider as a,TooltipTrigger as o}from"../../tooltip-Dzyf5smh.js";import{Button as s}from"../../button-Bku3bKv9.js";import{Dialog as c,DialogContent as l,DialogDescription as u,DialogHeader as d,DialogTitle as f}from"../../dialog-C4hf-Puw.js";import"../../input-FzKbxUq2.js";import{Title as p}from"../../title-DTkABsIG.js";import"../../separator-BpsL0PlX.js";import"../../skeleton-DYmX0k94.js";import m from"react";import{jsx as h,jsxs as g}from"react/jsx-runtime";import{cva as _}from"class-variance-authority";import{CalendarIcon as v,CatIcon as y,MenuIcon as b}from"lucide-react";import{Slot as x}from"radix-ui";const S=()=>g(d,{className:`sr-only`,children:[h(f,{className:`sr-only`}),h(u,{className:`sr-only`})]}),C=m.createContext(null);function w(){let e=m.useContext(C);if(!e)throw Error(`useSidebar must be used within a SidebarProvider.`);return e}function T({defaultOpen:t=!0,open:n,onOpenChange:r,className:i,style:o,children:s,...c}){let[l,u]=m.useState(!1),[d,f]=m.useState(t),p=n??d,g=m.useCallback(e=>{let t=typeof e==`function`?e(p):e;r?r(t):f(t),document.cookie=`detai_dialog_sidebar_state=${t}; path=/; max-age=604800`},[r,p]),_=m.useCallback(()=>g(e=>!e),[g]);m.useEffect(()=>{let e=e=>{e.key===`p`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),_())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[_]);let v=p?`expanded`:`collapsed`,y=m.useMemo(()=>({state:v,open:p,setOpen:g,openMobile:l,setOpenMobile:u,toggleSidebar:_}),[v,p,g,l,u,_]);return h(C.Provider,{value:y,children:h(a,{delayDuration:0,children:h(`div`,{"data-slot":`sidebar-wrapper`,style:{"--sidebar-width":`16rem`,"--sidebar-width-icon":`3rem`,...o},className:e(`group/sidebar-wrapper`,`has-data-[variant=inset]:bg-sidebar`,`flex min-h-svh w-full`,i),...c,children:s})})})}function E({side:t=`left`,variant:n=`sidebar`,collapsible:r=`offcanvas`,className:i,children:a,...o}){let{state:s}=w();return r===`none`?h(`div`,{"data-slot":`sidebar`,className:e(`bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col`,i),...o,children:a}):g(`div`,{className:`group peer text-sidebar-foreground hidden md:block`,"data-state":s,"data-collapsible":s===`collapsed`?r:``,"data-variant":n,"data-side":t,"data-slot":`sidebar`,children:[h(`div`,{"data-slot":`sidebar-gap`,className:e(`relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear`,`group-data-[collapsible=offcanvas]:w-0`,`group-data-[side=right]:rotate-180`,n===`floating`||n===`inset`?`group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon)`)}),h(`div`,{"data-slot":`sidebar-container`,className:e(`absolute inset-y-0 z-10 hidden w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex`,t===`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)]`,n===`floating`||n===`inset`?`p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l`,i),...o,children:h(`div`,{"data-sidebar":`sidebar`,"data-slot":`sidebar-inner`,className:e(`flex h-full w-full flex-col`,`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:a})})]})}function D({className:t,onClick:n,...r}){let{toggleSidebar:i}=w();return g(s,{"data-sidebar":`trigger`,"data-slot":`sidebar-trigger`,variant:`ghost`,size:`icon`,className:e(`size-10 rounded-full [&_svg]:!size-6`,t),onClick:e=>{n?.(e),i()},...r,children:[h(b,{}),h(`span`,{className:`sr-only`,children:`Toggle Sidebar`})]})}function O({className:t,...n}){return h(`div`,{"data-slot":`sidebar-header`,"data-sidebar":`header`,className:e(`flex flex-col gap-2 p-2`,t),...n})}function k({className:t,...n}){return h(`div`,{"data-slot":`sidebar-footer`,"data-sidebar":`footer`,className:e(`flex flex-col gap-2 p-2`,t),...n})}function A({className:t,...n}){return h(`div`,{"data-slot":`sidebar-content`,"data-sidebar":`content`,className:e(`flex min-h-0 flex-1 flex-col gap-2 overflow-auto`,`group-data-[collapsible=icon]:overflow-hidden`,t),...n})}function j({className:t,...n}){return h(`div`,{"data-slot":`sidebar-group`,"data-sidebar":`group`,className:e(`relative flex w-full min-w-0 flex-col p-2`,t),...n})}function M({className:t,...n}){return h(`ul`,{"data-slot":`sidebar-menu`,"data-sidebar":`menu`,className:e(`flex w-full min-w-0 flex-col gap-1`,t),...n})}function N({className:t,...n}){return h(`li`,{"data-slot":`sidebar-menu-item`,"data-sidebar":`menu-item`,className:e(`group/menu-item relative`,t),...n})}const P=_(`peer/menu-button cursor-pointer flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 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-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground 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! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0`,{variants:{variant:{default:`hover:bg-sidebar-accent hover:text-sidebar-accent-foreground`,outline:`bg-background border 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 F({asChild:t=!1,isActive:n=!1,variant:a=`default`,size:s=`default`,tooltip:c,className:l,...u}){let d=t?x.Slot:`button`,{state:f}=w(),p=h(d,{"data-slot":`sidebar-menu-button`,"data-sidebar":`menu-button`,"data-size":s,"data-active":n,className:e(P({variant:a,size:s}),l),...u});return c?(typeof c==`string`&&(c={children:c}),g(r,{children:[h(o,{asChild:!0,children:p}),h(i,{side:`right`,align:`center`,hidden:f!==`collapsed`,...c})]})):p}const I=({children:e})=>h(`main`,{className:`relative flex h-full flex-1 flex-col`,children:h(`div`,{className:`absolute inset-0 flex size-full flex-col`,children:e})}),L=({title:e,createdAt:r})=>g(`header`,{className:`relative flex items-start gap-x-2.5 border-b px-2 py-2.5`,children:[h(D,{}),g(t,{vertical:!0,align:`start`,padding:`none`,className:`flex-1`,children:[h(p,{level:5,children:e||`Detail Dialog`}),g(t,{padding:`none`,className:`text-muted-foreground`,children:[h(v,{size:12}),!!r&&h(n,{showTime:!0,showHoliday:!0,date:r,format:`full`})]})]})]}),R=({children:e})=>h(l,{className:`relative h-full max-h-[90svh] overflow-hidden rounded-lg border-none p-0 sm:max-w-[calc(100svw-2rem)]`,onInteractOutside:e=>{e.preventDefault(),e.stopPropagation()},children:e}),z=({title:e,sidebarFooter:t,children:n})=>g(E,{collapsible:`icon`,className:`hidden border-r md:flex`,children:[h(O,{children:h(M,{children:h(N,{children:g(F,{size:`lg`,tabIndex:-1,children:[h(`div`,{className:`bg-sidebar-primary text-sidebar-primary-foreground flex aspect-square size-8 items-center justify-center rounded-lg`,children:h(y,{size:16})}),g(`div`,{className:`grid flex-1 text-left text-sm leading-tight`,children:[h(`span`,{className:`truncate font-medium`,children:e||`Detail Dialog`}),h(`span`,{className:`truncate text-xs`,children:`Lunas Enterprise`})]})]})})})}),h(A,{children:h(j,{children:n})}),t&&h(k,{children:t})]}),B=({open:e,isLoading:n=!1,sidebarTitle:r,sidebar:i,sidebarFooter:a,title:o,createdAt:s,onOpenChange:l,children:u})=>h(c,{open:e,onOpenChange:l,children:g(R,{children:[h(S,{}),g(T,{className:`h-full min-h-[85svh] items-start`,children:[h(z,{title:r,sidebarFooter:a,children:i}),g(I,{children:[h(L,{title:o,createdAt:s}),n?h(t,{justify:`center`,className:`bg-muted/50 size-full`,children:h(`div`,{className:`loader`})}):h(`section`,{className:`bg-muted/50 relative flex-1 overflow-y-auto inset-shadow-sm`,children:u})]})]})]})});export{B as DetailDialog};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["open","SlotPrimitive","Tooltip","DetailDialogMain: React.FC<React.PropsWithChildren>","DetailDialogMainHeader: React.FC<\n React.PropsWithChildren<{\n title: string;\n createdAt: string | Date | number;\n }>\n>","DetailDialogWrapper: React.FC<React.PropsWithChildren>","DetailDialogSidebar: React.FC<\n React.PropsWithChildren<{ title?: string; sidebarFooter?: React.ReactNode }>\n>","DetailDialog: React.FC<React.PropsWithChildren<Props>>","Dialog"],"sources":["../../../packages/components/dialogs/detail-dialog/component/header.tsx","../../../packages/components/dialogs/detail-dialog/component/sidebar.tsx","../../../packages/components/dialogs/detail-dialog/component/main.tsx","../../../packages/components/dialogs/detail-dialog/component/wrapper.tsx","../../../packages/components/dialogs/detail-dialog/index.tsx"],"sourcesContent":["import {\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from \"@/components/ui/dialog\";\n\nexport const DetailDialogHeader = () => {\n return (\n <DialogHeader className=\"sr-only\">\n <DialogTitle className=\"sr-only\"></DialogTitle>\n <DialogDescription className=\"sr-only\"></DialogDescription>\n </DialogHeader>\n );\n};\n","import React from \"react\";\nimport { Slot as SlotPrimitive } from \"radix-ui\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { MenuIcon } from \"lucide-react\";\n\nimport { Button } from \"@/components/ui/button\";\nimport { Input } from \"@/components/ui/input\";\nimport { Separator } from \"@/components/ui/separator\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@/components/ui/tooltip\";\nimport { cn } from \"@/lib/utils\";\n\nconst SIDEBAR_COOKIE_NAME = \"detai_dialog_sidebar_state\";\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = \"16rem\";\nconst SIDEBAR_WIDTH_ICON = \"3rem\";\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"p\";\n\ntype SidebarContextProps = {\n state: \"expanded\" | \"collapsed\";\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null);\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider.\");\n }\n\n return context;\n}\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n}) {\n const [openMobile, setOpenMobile] = React.useState(false);\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open],\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return setOpen((open) => !open);\n }, [setOpen]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => window.removeEventListener(\"keydown\", handleKeyDown);\n }, [toggleSidebar]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? \"expanded\" : \"collapsed\";\n\n const contextValue = React.useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, openMobile, setOpenMobile, toggleSidebar],\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n data-slot=\"sidebar-wrapper\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n \"group/sidebar-wrapper\",\n \"has-data-[variant=inset]:bg-sidebar\",\n \"flex min-h-svh w-full\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n}\n\nfunction Sidebar({\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n className,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n side?: \"left\" | \"right\";\n variant?: \"sidebar\" | \"floating\" | \"inset\";\n collapsible?: \"offcanvas\" | \"icon\" | \"none\";\n}) {\n const { state } = useSidebar();\n\n if (collapsible === \"none\") {\n return (\n <div\n data-slot=\"sidebar\"\n className={cn(\n \"bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n return (\n <div\n className=\"group peer text-sidebar-foreground hidden md:block\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n \"relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n \"group-data-[side=right]:rotate-180\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\",\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n className={cn(\n \"absolute inset-y-0 z-10 hidden w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex\",\n side === \"left\"\n ? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n : \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n // Adjust the padding for floating and inset variants.\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className={cn(\n \"flex h-full w-full flex-col\",\n \"group-data-[variant=floating]:border-sidebar-border\",\n \"group-data-[variant=floating]:rounded-lg\",\n \"group-data-[variant=floating]:border\",\n \"group-data-[variant=floating]:shadow-sm\",\n )}\n >\n {children}\n </div>\n </div>\n </div>\n );\n}\n\nfunction SidebarTrigger({\n className,\n onClick,\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(\"size-10 rounded-full [&_svg]:!size-6\", className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <MenuIcon />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n}\n\nfunction SidebarRail({ className, ...props }: React.ComponentProps<\"button\">) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n \"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear sm:flex\",\n \"after:absolute\",\n \"after:inset-y-0\",\n \"after:left-1/2 after:w-0.5\",\n \"hover:after:bg-sidebar-border\",\n \"group-data-[side=left]:-right-4\",\n \"group-data-[side=right]:left-0\",\n \"in-data-[side=left]:cursor-w-resize\",\n \"in-data-[side=right]:cursor-e-resize\",\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize\",\n \"[[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"hover:group-data-[collapsible=offcanvas]:bg-sidebar\",\n \"group-data-[collapsible=offcanvas]:translate-x-0\",\n \"group-data-[collapsible=offcanvas]:after:left-full\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarInset({ className, ...props }: React.ComponentProps<\"main\">) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\n \"bg-background relative flex w-full flex-1 flex-col\",\n \"md:peer-data-[variant=inset]:m-2\",\n \"md:peer-data-[variant=inset]:ml-0\",\n \"md:peer-data-[variant=inset]:rounded-xl\",\n \"md:peer-data-[variant=inset]:shadow-sm\",\n \"md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarInput({\n className,\n ...props\n}: React.ComponentProps<typeof Input>) {\n return (\n <Input\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn(\"bg-background h-8 w-full shadow-none\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n className={cn(\"bg-sidebar-border mx-2 w-auto\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-auto\",\n \"group-data-[collapsible=icon]:overflow-hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n className={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupLabel({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"div\"> & { asChild?: boolean }) {\n const Comp = asChild ? SlotPrimitive.Slot : \"div\";\n\n return (\n <Comp\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n className={cn(\n \"text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear\",\n \"focus-visible:ring-2\",\n \"[&>svg]:size-4\",\n \"[&>svg]:shrink-0\",\n \"group-data-[collapsible=icon]:-mt-8\",\n \"group-data-[collapsible=icon]:opacity-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupAction({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> & { asChild?: boolean }) {\n const Comp = asChild ? SlotPrimitive.Slot : \"button\";\n\n return (\n <Comp\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n \"text-sidebar-foreground ring-sidebar-ring absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform\",\n \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n \"focus-visible:ring-2\",\n \"[&>svg]:size-4\",\n \"[&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute\",\n \"after:-inset-2\",\n \"md:after:hidden\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupContent({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n className={cn(\"w-full text-sm\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n className={cn(\"group/menu-item relative\", className)}\n {...props}\n />\n );\n}\n\nconst sidebarMenuButtonVariants = cva(\n \"peer/menu-button cursor-pointer flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 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-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground 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! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-background border 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))]\",\n },\n size: {\n default: \"h-8 text-sm\",\n sm: \"h-7 text-xs\",\n lg: \"h-12 text-sm group-data-[collapsible=icon]:p-0!\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = \"default\",\n size = \"default\",\n tooltip,\n className,\n ...props\n}: React.ComponentProps<\"button\"> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n const Comp = asChild ? SlotPrimitive.Slot : \"button\";\n const { state } = useSidebar();\n\n const button = (\n <Comp\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === \"string\") {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== \"collapsed\"}\n {...tooltip}\n />\n </Tooltip>\n );\n}\n\nfunction SidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ...props\n}: React.ComponentProps<\"button\"> & {\n asChild?: boolean;\n showOnHover?: boolean;\n}) {\n const Comp = asChild ? SlotPrimitive.Slot : \"button\";\n\n return (\n <Comp\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n \"text-sidebar-foreground ring-sidebar-ring\",\n \"hover:bg-sidebar-accent\",\n \"hover:text-sidebar-accent-foreground\",\n \"peer-hover/menu-button: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\",\n \"focus-visible:ring-2\",\n \"[&>svg]:size-4\",\n \"[&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 md:after:hidden\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n showOnHover &&\n \"peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n showOnHover && \"$group-focus-within/menu-item:opacity-100\",\n showOnHover && \"group-hover/menu-item:opacity-100\",\n showOnHover && \"data-[state=open]:opacity-100 md:opacity-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuBadge({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n \"text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none\",\n \"peer-hover/menu-button:text-sidebar-accent-foreground\",\n \"peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: React.ComponentProps<\"div\"> & {\n showIcon?: boolean;\n}) {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n className={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n {...props}\n >\n {showIcon && (\n <Skeleton\n className=\"size-4 rounded-md\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n}\n\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n \"border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSubItem({\n className,\n ...props\n}: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n className={cn(\"group/menu-sub-item relative\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSubButton({\n asChild = false,\n size = \"md\",\n isActive = false,\n className,\n ...props\n}: React.ComponentProps<\"a\"> & {\n asChild?: boolean;\n size?: \"sm\" | \"md\";\n isActive?: boolean;\n}) {\n const Comp = asChild ? SlotPrimitive.Slot : \"a\";\n\n return (\n <Comp\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n \"text-sidebar-foreground ring-sidebar-ring\",\n \"flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden\",\n \"hover:bg-sidebar-accent\",\n \"hover:text-sidebar-accent-foreground\",\n \"active:bg-sidebar-accent\",\n \"active:text-sidebar-accent-foreground\",\n \"focus-visible:ring-2\",\n \"disabled:pointer-events-none\",\n \"disabled:opacity-50\",\n \"aria-disabled:pointer-events-none\",\n \"aria-disabled:opacity-50\",\n \"[&>span:last-child]:truncate\",\n \"[&>svg]:size-4\",\n \"[&>svg]:shrink-0\",\n \"[&>svg]:text-sidebar-accent-foreground\",\n \"data-[active=true]:bg-sidebar-accent\",\n \"data-[active=true]:text-sidebar-accent-foreground\",\n \"group-data-[collapsible=icon]:hidden\",\n size === \"sm\" && \"text-xs\",\n size === \"md\" && \"text-sm\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n // eslint-disable-next-line react-refresh/only-export-components\n useSidebar,\n};\n","import { CalendarIcon } from \"lucide-react\";\n\nimport { DateDisplay } from \"@/components/data-display/date\";\nimport { Flex } from \"@/components/layouts/flex\";\nimport { Title } from \"@/components/typography/title\";\n\nimport { SidebarTrigger } from \"./sidebar\";\n\nexport const DetailDialogMain: React.FC<React.PropsWithChildren> = ({\n children,\n}) => {\n return (\n <main className=\"relative flex h-full flex-1 flex-col\">\n <div className=\"absolute inset-0 flex size-full flex-col\">{children}</div>\n </main>\n );\n};\n\nexport const DetailDialogMainHeader: React.FC<\n React.PropsWithChildren<{\n title: string;\n createdAt: string | Date | number;\n }>\n> = ({ title, createdAt }) => {\n return (\n <header className=\"relative flex items-start gap-x-2.5 border-b px-2 py-2.5\">\n <SidebarTrigger />\n <Flex vertical align=\"start\" padding=\"none\" className=\"flex-1\">\n <Title level={5}>{title || \"Detail Dialog\"}</Title>\n <Flex padding=\"none\" className=\"text-muted-foreground\">\n <CalendarIcon size={12} />\n {!!createdAt && (\n <DateDisplay showTime showHoliday date={createdAt} format=\"full\" />\n )}\n </Flex>\n </Flex>\n </header>\n );\n};\n","import { DialogContent } from \"@/components/ui/dialog\";\n\nexport const DetailDialogWrapper: React.FC<React.PropsWithChildren> = ({\n children,\n}) => {\n return (\n <DialogContent\n className=\"relative h-full max-h-[90svh] overflow-hidden rounded-lg border-none p-0 sm:max-w-[calc(100svw-2rem)]\"\n onInteractOutside={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n >\n {children}\n </DialogContent>\n );\n};\n","import { CatIcon } from \"lucide-react\";\n\nimport { Flex } from \"@/components/layouts/flex\";\nimport { Dialog } from \"@/components/ui/dialog\";\n\nimport { DetailDialogHeader } from \"./component/header\";\nimport { DetailDialogMain, DetailDialogMainHeader } from \"./component/main\";\nimport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarHeader,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarProvider,\n} from \"./component/sidebar\";\nimport { DetailDialogWrapper } from \"./component/wrapper\";\n\nconst DetailDialogSidebar: React.FC<\n React.PropsWithChildren<{ title?: string; sidebarFooter?: React.ReactNode }>\n> = ({ title, sidebarFooter, children }) => {\n return (\n <Sidebar collapsible=\"icon\" className=\"hidden border-r md:flex\">\n <SidebarHeader>\n <SidebarMenu>\n <SidebarMenuItem>\n <SidebarMenuButton size=\"lg\" tabIndex={-1}>\n <div className=\"bg-sidebar-primary text-sidebar-primary-foreground flex aspect-square size-8 items-center justify-center rounded-lg\">\n <CatIcon size={16} />\n </div>\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-medium\">\n {title || \"Detail Dialog\"}\n </span>\n <span className=\"truncate text-xs\">Lunas Enterprise</span>\n </div>\n </SidebarMenuButton>\n </SidebarMenuItem>\n </SidebarMenu>\n </SidebarHeader>\n <SidebarContent>\n <SidebarGroup>{children}</SidebarGroup>\n </SidebarContent>\n {sidebarFooter && <SidebarFooter>{sidebarFooter}</SidebarFooter>}\n </Sidebar>\n );\n};\n\ntype Props = {\n open?: boolean;\n isLoading?: boolean;\n sidebarTitle?: string;\n sidebar?: React.ReactNode;\n sidebarFooter?: React.ReactNode;\n title: string;\n createdAt: string | Date | number;\n onOpenChange?: (open: boolean) => void | Promise<void>;\n};\nexport const DetailDialog: React.FC<React.PropsWithChildren<Props>> = ({\n open,\n isLoading = false,\n sidebarTitle,\n sidebar,\n sidebarFooter,\n title,\n createdAt,\n onOpenChange,\n children,\n}) => {\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DetailDialogWrapper>\n <DetailDialogHeader />\n\n <SidebarProvider className=\"h-full min-h-[85svh] items-start\">\n <DetailDialogSidebar\n title={sidebarTitle}\n sidebarFooter={sidebarFooter}\n >\n {sidebar}\n </DetailDialogSidebar>\n <DetailDialogMain>\n <DetailDialogMainHeader title={title} createdAt={createdAt} />\n {isLoading ? (\n <Flex justify=\"center\" className=\"bg-muted/50 size-full\">\n <div className=\"loader\" />\n </Flex>\n ) : (\n <section className=\"bg-muted/50 relative flex-1 overflow-y-auto inset-shadow-sm\">\n {children}\n </section>\n )}\n </DetailDialogMain>\n </SidebarProvider>\n </DetailDialogWrapper>\n </Dialog>\n );\n};\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ require(`../utils-BsjVK5EW.cjs`),require(`../button-Dzv_nos1.cjs`),require(`../alert-dialog-D5ZqgIiC.cjs`);const e=require(`../error-dialog-DpQgL5Hy.cjs`);exports.ErrorDialog=e.ErrorDialog;
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+
3
+ //#region packages/components/dialogs/error-dialog.d.ts
4
+ type Props = {
5
+ open?: boolean;
6
+ title?: string;
7
+ description?: string;
8
+ onOpenChange?: (open: boolean) => void;
9
+ };
10
+ declare const ErrorDialog: React.FC<React.PropsWithChildren<Props>>;
11
+ //#endregion
12
+ export { ErrorDialog };
13
+ //# sourceMappingURL=error-dialog.d.cts.map
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+
3
+ //#region packages/components/dialogs/error-dialog.d.ts
4
+ type Props = {
5
+ open?: boolean;
6
+ title?: string;
7
+ description?: string;
8
+ onOpenChange?: (open: boolean) => void;
9
+ };
10
+ declare const ErrorDialog: React.FC<React.PropsWithChildren<Props>>;
11
+ //#endregion
12
+ export { ErrorDialog };
13
+ //# sourceMappingURL=error-dialog.d.ts.map
@@ -0,0 +1 @@
1
+ import"../utils-D9AH0PUV.js";import"../button-Bku3bKv9.js";import"../alert-dialog-0KwdjY-6.js";import{ErrorDialog as e}from"../error-dialog-D_4WL-Hj.js";export{e as ErrorDialog};
@@ -0,0 +1,2 @@
1
+ const e=require(`../chunk-CUT6urMc.cjs`),t=require(`../utils-BsjVK5EW.cjs`),n=require(`../button-Dzv_nos1.cjs`);require(`../alert-dialog-D5ZqgIiC.cjs`),require(`../error-dialog-DpQgL5Hy.cjs`),require(`../label-CunjD1rx.cjs`),require(`../form-CYZkgobJ.cjs`);const r=require(`../form-wrapper-BYbwt1zC.cjs`),i=require(`../dialog-W-DmDMEE.cjs`),a=e.__toESM(require(`react/jsx-runtime`)),o=({form:e,open:o,isSubmitting:s=!1,isResetAfterSubmit:c=!0,disableSubmit:l=!1,title:u,description:d,className:f,onOpenChange:p,onSubmit:m,onError:h,onReset:g,children:_})=>(0,a.jsx)(i.Dialog,{open:o,onOpenChange:p,children:(0,a.jsxs)(i.DialogContent,{className:t.cn(`flex flex-col gap-0 border-none p-0`,f),onInteractOutside:e=>{e.preventDefault(),e.stopPropagation()},children:[(0,a.jsxs)(i.DialogHeader,{className:`flex-0 gap-2 border-b px-6 pt-6 pb-4`,children:[(0,a.jsx)(i.DialogTitle,{children:u||`Form Dialog`}),(0,a.jsx)(i.DialogDescription,{children:d||`This is a form dialog where you can add your form elements.`})]}),(0,a.jsxs)(r.FormWrapper,{form:e,isResetAfterSubmit:c,className:`flex flex-1 flex-col overflow-y-auto pt-4`,onSubmit:m,onError:h,children:[(0,a.jsx)(`main`,{className:`flex-1 overflow-y-auto px-6`,children:_}),(0,a.jsxs)(i.DialogFooter,{className:`border-t px-6 pt-4 pb-6`,children:[(0,a.jsx)(n.Button,{tabIndex:-1,type:`button`,variant:`outline`,className:`w-30 rounded-full`,onClick:g,children:`Reset`}),(0,a.jsx)(n.Button,{autoFocus:!0,tabIndex:0,type:`submit`,isLoading:s,disabled:l,className:`w-30 rounded-full`,children:`Xác nhận`})]})]})]})});exports.FormDialog=o;
2
+ //# sourceMappingURL=form-dialog.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-dialog.cjs","names":["Dialog","DialogContent","cn","DialogHeader","DialogTitle","DialogDescription","FormWrapper","DialogFooter","Button"],"sources":["../../packages/components/dialogs/form-dialog.tsx"],"sourcesContent":["import type {\n FieldValues,\n FormState,\n SubmitErrorHandler,\n UseFormProps,\n} from \"react-hook-form\";\n\nimport { cn } from \"@/lib/utils\";\n\nimport { FormWrapper } from \"../forms/form-wrapper\";\nimport { Button } from \"../ui/button\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from \"../ui/dialog\";\n\ntype Props<TFieldValues extends FieldValues = FieldValues> = {\n form: UseFormProps<TFieldValues>;\n\n open: boolean;\n isSubmitting?: boolean;\n isResetAfterSubmit?: boolean;\n disableSubmit?: boolean;\n title?: string;\n description?: string;\n className?: string;\n\n onOpenChange: (open: boolean) => void;\n onSubmit: (\n data: TFieldValues,\n formState: FormState<FieldValues>,\n dirtyFields: FormState<FieldValues>[\"dirtyFields\"],\n ) => void | Promise<void>;\n onError?: SubmitErrorHandler<TFieldValues>;\n onReset?: () => void;\n};\nexport const FormDialog = <TFieldValues extends FieldValues = FieldValues>({\n form,\n open,\n isSubmitting = false,\n isResetAfterSubmit = true,\n disableSubmit = false,\n title,\n description,\n className,\n\n onOpenChange,\n onSubmit,\n onError,\n onReset,\n children,\n}: React.PropsWithChildren<Props<TFieldValues>>) => {\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent\n className={cn(\"flex flex-col gap-0 border-none p-0\", className)}\n onInteractOutside={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n >\n <DialogHeader className=\"flex-0 gap-2 border-b px-6 pt-6 pb-4\">\n <DialogTitle>{title || \"Form Dialog\"}</DialogTitle>\n <DialogDescription>\n {description ||\n \"This is a form dialog where you can add your form elements.\"}\n </DialogDescription>\n </DialogHeader>\n <FormWrapper\n form={form}\n isResetAfterSubmit={isResetAfterSubmit}\n className=\"flex flex-1 flex-col overflow-y-auto pt-4\"\n onSubmit={onSubmit}\n onError={onError}\n >\n <main className=\"flex-1 overflow-y-auto px-6\">{children}</main>\n <DialogFooter className=\"border-t px-6 pt-4 pb-6\">\n <Button\n tabIndex={-1}\n type=\"button\"\n variant=\"outline\"\n className=\"w-30 rounded-full\"\n onClick={onReset}\n >\n Reset\n </Button>\n <Button\n autoFocus\n tabIndex={0}\n type=\"submit\"\n isLoading={isSubmitting}\n disabled={disableSubmit}\n className=\"w-30 rounded-full\"\n >\n Xác nhận\n </Button>\n </DialogFooter>\n </FormWrapper>\n </DialogContent>\n </Dialog>\n );\n};\n"],"mappings":"+XAwCa,GAA8D,CACzE,OACA,OACA,eAAe,GACf,qBAAqB,GACrB,gBAAgB,GAChB,QACA,cACA,YAEA,eACA,WACA,UACA,UACA,WAC6C,IAE3C,EAAA,EAAA,KAACA,EAAAA,OAAAA,CAAa,OAAoB,yBAChC,EAAA,EAAA,MAACC,EAAAA,cAAAA,CACC,UAAWC,EAAAA,GAAG,sCAAuC,GACrD,kBAAoB,GAAM,CACxB,EAAE,iBACF,EAAE,iBACH,aAED,EAAA,EAAA,MAACC,EAAAA,aAAAA,CAAa,UAAU,kDACtB,EAAA,EAAA,KAACC,EAAAA,YAAAA,CAAAA,SAAa,GAAS,cAAA,GACvB,EAAA,EAAA,KAACC,EAAAA,kBAAAA,CAAAA,SACE,GACC,8DAAA,EAAA,IAGN,EAAA,EAAA,MAACC,EAAAA,YAAAA,CACO,OACc,qBACpB,UAAU,4CACA,WACD,qBAET,EAAA,EAAA,KAAC,OAAA,CAAK,UAAU,8BAA+B,cAC/C,EAAA,EAAA,MAACC,EAAAA,aAAAA,CAAa,UAAU,qCACtB,EAAA,EAAA,KAACC,EAAAA,OAAAA,CACC,SAAU,GACV,KAAK,SACL,QAAQ,UACR,UAAU,oBACV,QAAS,WACV,WAGD,EAAA,EAAA,KAACA,EAAAA,OAAAA,CACC,UAAA,GACA,SAAU,EACV,KAAK,SACL,UAAW,EACX,SAAU,EACV,UAAU,6BACX"}
@@ -0,0 +1,35 @@
1
+ import { FieldValues, FormState, SubmitErrorHandler, UseFormProps } from "react-hook-form";
2
+
3
+ //#region packages/components/dialogs/form-dialog.d.ts
4
+ type Props<TFieldValues extends FieldValues = FieldValues> = {
5
+ form: UseFormProps<TFieldValues>;
6
+ open: boolean;
7
+ isSubmitting?: boolean;
8
+ isResetAfterSubmit?: boolean;
9
+ disableSubmit?: boolean;
10
+ title?: string;
11
+ description?: string;
12
+ className?: string;
13
+ onOpenChange: (open: boolean) => void;
14
+ onSubmit: (data: TFieldValues, formState: FormState<FieldValues>, dirtyFields: FormState<FieldValues>["dirtyFields"]) => void | Promise<void>;
15
+ onError?: SubmitErrorHandler<TFieldValues>;
16
+ onReset?: () => void;
17
+ };
18
+ declare const FormDialog: <TFieldValues extends FieldValues = FieldValues>({
19
+ form,
20
+ open,
21
+ isSubmitting,
22
+ isResetAfterSubmit,
23
+ disableSubmit,
24
+ title,
25
+ description,
26
+ className,
27
+ onOpenChange,
28
+ onSubmit,
29
+ onError,
30
+ onReset,
31
+ children
32
+ }: React.PropsWithChildren<Props<TFieldValues>>) => any;
33
+ //#endregion
34
+ export { FormDialog };
35
+ //# sourceMappingURL=form-dialog.d.cts.map
@@ -0,0 +1,35 @@
1
+ import { FieldValues, FormState, SubmitErrorHandler, UseFormProps } from "react-hook-form";
2
+
3
+ //#region packages/components/dialogs/form-dialog.d.ts
4
+ type Props<TFieldValues extends FieldValues = FieldValues> = {
5
+ form: UseFormProps<TFieldValues>;
6
+ open: boolean;
7
+ isSubmitting?: boolean;
8
+ isResetAfterSubmit?: boolean;
9
+ disableSubmit?: boolean;
10
+ title?: string;
11
+ description?: string;
12
+ className?: string;
13
+ onOpenChange: (open: boolean) => void;
14
+ onSubmit: (data: TFieldValues, formState: FormState<FieldValues>, dirtyFields: FormState<FieldValues>["dirtyFields"]) => void | Promise<void>;
15
+ onError?: SubmitErrorHandler<TFieldValues>;
16
+ onReset?: () => void;
17
+ };
18
+ declare const FormDialog: <TFieldValues extends FieldValues = FieldValues>({
19
+ form,
20
+ open,
21
+ isSubmitting,
22
+ isResetAfterSubmit,
23
+ disableSubmit,
24
+ title,
25
+ description,
26
+ className,
27
+ onOpenChange,
28
+ onSubmit,
29
+ onError,
30
+ onReset,
31
+ children
32
+ }: React.PropsWithChildren<Props<TFieldValues>>) => any;
33
+ //#endregion
34
+ export { FormDialog };
35
+ //# sourceMappingURL=form-dialog.d.ts.map
@@ -0,0 +1,2 @@
1
+ import{cn as e}from"../utils-D9AH0PUV.js";import{Button as t}from"../button-Bku3bKv9.js";import"../alert-dialog-0KwdjY-6.js";import"../error-dialog-D_4WL-Hj.js";import"../label-Cxbctr6x.js";import"../form-CA4hhSV5.js";import{FormWrapper as n}from"../form-wrapper-D-2Uz518.js";import{Dialog as r,DialogContent as i,DialogDescription as a,DialogFooter as o,DialogHeader as s,DialogTitle as c}from"../dialog-C4hf-Puw.js";import{jsx as l,jsxs as u}from"react/jsx-runtime";const d=({form:d,open:f,isSubmitting:p=!1,isResetAfterSubmit:m=!0,disableSubmit:h=!1,title:g,description:_,className:v,onOpenChange:y,onSubmit:b,onError:x,onReset:S,children:C})=>l(r,{open:f,onOpenChange:y,children:u(i,{className:e(`flex flex-col gap-0 border-none p-0`,v),onInteractOutside:e=>{e.preventDefault(),e.stopPropagation()},children:[u(s,{className:`flex-0 gap-2 border-b px-6 pt-6 pb-4`,children:[l(c,{children:g||`Form Dialog`}),l(a,{children:_||`This is a form dialog where you can add your form elements.`})]}),u(n,{form:d,isResetAfterSubmit:m,className:`flex flex-1 flex-col overflow-y-auto pt-4`,onSubmit:b,onError:x,children:[l(`main`,{className:`flex-1 overflow-y-auto px-6`,children:C}),u(o,{className:`border-t px-6 pt-4 pb-6`,children:[l(t,{tabIndex:-1,type:`button`,variant:`outline`,className:`w-30 rounded-full`,onClick:S,children:`Reset`}),l(t,{autoFocus:!0,tabIndex:0,type:`submit`,isLoading:p,disabled:h,className:`w-30 rounded-full`,children:`Xác nhận`})]})]})]})});export{d as FormDialog};
2
+ //# sourceMappingURL=form-dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-dialog.js","names":[],"sources":["../../packages/components/dialogs/form-dialog.tsx"],"sourcesContent":["import type {\n FieldValues,\n FormState,\n SubmitErrorHandler,\n UseFormProps,\n} from \"react-hook-form\";\n\nimport { cn } from \"@/lib/utils\";\n\nimport { FormWrapper } from \"../forms/form-wrapper\";\nimport { Button } from \"../ui/button\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from \"../ui/dialog\";\n\ntype Props<TFieldValues extends FieldValues = FieldValues> = {\n form: UseFormProps<TFieldValues>;\n\n open: boolean;\n isSubmitting?: boolean;\n isResetAfterSubmit?: boolean;\n disableSubmit?: boolean;\n title?: string;\n description?: string;\n className?: string;\n\n onOpenChange: (open: boolean) => void;\n onSubmit: (\n data: TFieldValues,\n formState: FormState<FieldValues>,\n dirtyFields: FormState<FieldValues>[\"dirtyFields\"],\n ) => void | Promise<void>;\n onError?: SubmitErrorHandler<TFieldValues>;\n onReset?: () => void;\n};\nexport const FormDialog = <TFieldValues extends FieldValues = FieldValues>({\n form,\n open,\n isSubmitting = false,\n isResetAfterSubmit = true,\n disableSubmit = false,\n title,\n description,\n className,\n\n onOpenChange,\n onSubmit,\n onError,\n onReset,\n children,\n}: React.PropsWithChildren<Props<TFieldValues>>) => {\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent\n className={cn(\"flex flex-col gap-0 border-none p-0\", className)}\n onInteractOutside={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n >\n <DialogHeader className=\"flex-0 gap-2 border-b px-6 pt-6 pb-4\">\n <DialogTitle>{title || \"Form Dialog\"}</DialogTitle>\n <DialogDescription>\n {description ||\n \"This is a form dialog where you can add your form elements.\"}\n </DialogDescription>\n </DialogHeader>\n <FormWrapper\n form={form}\n isResetAfterSubmit={isResetAfterSubmit}\n className=\"flex flex-1 flex-col overflow-y-auto pt-4\"\n onSubmit={onSubmit}\n onError={onError}\n >\n <main className=\"flex-1 overflow-y-auto px-6\">{children}</main>\n <DialogFooter className=\"border-t px-6 pt-4 pb-6\">\n <Button\n tabIndex={-1}\n type=\"button\"\n variant=\"outline\"\n className=\"w-30 rounded-full\"\n onClick={onReset}\n >\n Reset\n </Button>\n <Button\n autoFocus\n tabIndex={0}\n type=\"submit\"\n isLoading={isSubmitting}\n disabled={disableSubmit}\n className=\"w-30 rounded-full\"\n >\n Xác nhận\n </Button>\n </DialogFooter>\n </FormWrapper>\n </DialogContent>\n </Dialog>\n );\n};\n"],"mappings":"odAwCA,MAAa,GAA8D,CACzE,OACA,OACA,eAAe,GACf,qBAAqB,GACrB,gBAAgB,GAChB,QACA,cACA,YAEA,eACA,WACA,UACA,UACA,WAC6C,GAE3C,EAAC,EAAA,CAAa,OAAoB,wBAChC,EAAC,EAAA,CACC,UAAW,EAAG,sCAAuC,GACrD,kBAAoB,GAAM,CACxB,EAAE,iBACF,EAAE,iBACH,YAED,EAAC,EAAA,CAAa,UAAU,iDACtB,EAAC,EAAA,CAAA,SAAa,GAAS,cAAA,EACvB,EAAC,EAAA,CAAA,SACE,GACC,8DAAA,EAAA,GAGN,EAAC,EAAA,CACO,OACc,qBACpB,UAAU,4CACA,WACD,oBAET,EAAC,OAAA,CAAK,UAAU,8BAA+B,aAC/C,EAAC,EAAA,CAAa,UAAU,oCACtB,EAAC,EAAA,CACC,SAAU,GACV,KAAK,SACL,QAAQ,UACR,UAAU,oBACV,QAAS,WACV,UAGD,EAAC,EAAA,CACC,UAAA,GACA,SAAU,EACV,KAAK,SACL,UAAW,EACX,SAAU,EACV,UAAU,6BACX"}
@@ -0,0 +1,2 @@
1
+ const e=require(`../chunk-CUT6urMc.cjs`);require(`../utils-BsjVK5EW.cjs`);const t=require(`../dialog-W-DmDMEE.cjs`),n=e.__toESM(require(`react`)),r=e.__toESM(require(`react/jsx-runtime`)),i=({open:e,onOpenChange:n})=>(0,r.jsx)(t.Dialog,{open:e,onOpenChange:n,children:(0,r.jsxs)(t.DialogContent,{showCloseButton:!1,className:`pointer-events-none border-none bg-transparent shadow-none outline-0 [&>div]:bg-transparent`,children:[(0,r.jsx)(t.DialogTitle,{}),(0,r.jsx)(`div`,{className:`flex items-center justify-center`,children:(0,r.jsx)(`div`,{className:`loader opacity-60`})})]})});exports.LoadingDialog=i;
2
+ //# sourceMappingURL=loading-dialog.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loading-dialog.cjs","names":["LoadingDialog: React.FC<Props>","Dialog","DialogContent","DialogTitle"],"sources":["../../packages/components/dialogs/loading-dialog.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { Dialog, DialogContent, DialogTitle } from \"../ui/dialog\";\n\ntype Props = {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n};\nexport const LoadingDialog: React.FC<Props> = ({ open, onOpenChange }) => {\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent\n showCloseButton={false}\n className=\"pointer-events-none border-none bg-transparent shadow-none outline-0 [&>div]:bg-transparent\"\n >\n <DialogTitle />\n <div className=\"flex items-center justify-center\">\n <div className=\"loader opacity-60\" />\n </div>\n </DialogContent>\n </Dialog>\n );\n};\n"],"mappings":"4LAQaA,GAAkC,CAAE,OAAM,eAAc,IAEjE,EAAA,EAAA,KAACC,EAAAA,OAAAA,CAAa,OAAoB,yBAChC,EAAA,EAAA,MAACC,EAAAA,cAAAA,CACC,gBAAiB,GACjB,UAAU,yGAEV,EAAA,EAAA,KAACC,EAAAA,YAAAA,EAAAA,GACD,EAAA,EAAA,KAAC,MAAA,CAAI,UAAU,6CACb,EAAA,EAAA,KAAC,MAAA,CAAI,UAAU,oBAAA"}
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+
3
+ //#region packages/components/dialogs/loading-dialog.d.ts
4
+ type Props = {
5
+ open?: boolean;
6
+ onOpenChange?: (open: boolean) => void;
7
+ };
8
+ declare const LoadingDialog: React.FC<Props>;
9
+ //#endregion
10
+ export { LoadingDialog };
11
+ //# sourceMappingURL=loading-dialog.d.cts.map
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+
3
+ //#region packages/components/dialogs/loading-dialog.d.ts
4
+ type Props = {
5
+ open?: boolean;
6
+ onOpenChange?: (open: boolean) => void;
7
+ };
8
+ declare const LoadingDialog: React.FC<Props>;
9
+ //#endregion
10
+ export { LoadingDialog };
11
+ //# sourceMappingURL=loading-dialog.d.ts.map
@@ -0,0 +1,2 @@
1
+ import"../utils-D9AH0PUV.js";import{Dialog as e,DialogContent as t,DialogTitle as n}from"../dialog-C4hf-Puw.js";import r from"react";import{jsx as i,jsxs as a}from"react/jsx-runtime";const o=({open:r,onOpenChange:o})=>i(e,{open:r,onOpenChange:o,children:a(t,{showCloseButton:!1,className:`pointer-events-none border-none bg-transparent shadow-none outline-0 [&>div]:bg-transparent`,children:[i(n,{}),i(`div`,{className:`flex items-center justify-center`,children:i(`div`,{className:`loader opacity-60`})})]})});export{o as LoadingDialog};
2
+ //# sourceMappingURL=loading-dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loading-dialog.js","names":["LoadingDialog: React.FC<Props>"],"sources":["../../packages/components/dialogs/loading-dialog.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { Dialog, DialogContent, DialogTitle } from \"../ui/dialog\";\n\ntype Props = {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n};\nexport const LoadingDialog: React.FC<Props> = ({ open, onOpenChange }) => {\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent\n showCloseButton={false}\n className=\"pointer-events-none border-none bg-transparent shadow-none outline-0 [&>div]:bg-transparent\"\n >\n <DialogTitle />\n <div className=\"flex items-center justify-center\">\n <div className=\"loader opacity-60\" />\n </div>\n </DialogContent>\n </Dialog>\n );\n};\n"],"mappings":"uLAQA,MAAaA,GAAkC,CAAE,OAAM,eAAc,GAEjE,EAAC,EAAA,CAAa,OAAoB,wBAChC,EAAC,EAAA,CACC,gBAAiB,GACjB,UAAU,wGAEV,EAAC,EAAA,EAAA,EACD,EAAC,MAAA,CAAI,UAAU,4CACb,EAAC,MAAA,CAAI,UAAU,oBAAA"}
@@ -0,0 +1,2 @@
1
+ const e=require(`./chunk-CUT6urMc.cjs`),t=require(`./utils-BsjVK5EW.cjs`),n=e.__toESM(require(`react`)),r=e.__toESM(require(`react/jsx-runtime`)),i=e.__toESM(require(`lucide-react`)),a=e.__toESM(require(`radix-ui`));function o({...e}){return(0,r.jsx)(a.DropdownMenu.Root,{"data-slot":`dropdown-menu`,...e})}function s({...e}){return(0,r.jsx)(a.DropdownMenu.Portal,{"data-slot":`dropdown-menu-portal`,...e})}function c({...e}){return(0,r.jsx)(a.DropdownMenu.Trigger,{"data-slot":`dropdown-menu-trigger`,...e})}function l({className:e,sideOffset:n=4,align:i=`start`,...o}){return(0,r.jsx)(a.DropdownMenu.Portal,{children:(0,r.jsx)(a.DropdownMenu.Content,{"data-slot":`dropdown-menu-content`,sideOffset:n,className:t.cn(`bg-popover text-popover-foreground`,`z-50`,`min-w-32`,`overflow-x-hidden overflow-y-auto`,`rounded-md border p-1.5 shadow-md`,`max-h-(--radix-dropdown-menu-content-available-height)`,`origin-(--radix-dropdown-menu-content-transform-origin)`,`data-[state=open]:animate-in`,`data-[state=open]:fade-in-0`,`data-[state=open]:zoom-in-95`,`data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0`,`data-[state=closed]:zoom-out-95`,`data-[side=bottom]:slide-in-from-top-2`,`data-[side=left]:slide-in-from-right-2`,`data-[side=right]:slide-in-from-left-2`,`data-[side=top]:slide-in-from-bottom-2`,e),...o,align:i})})}function u({...e}){return(0,r.jsx)(a.DropdownMenu.Group,{"data-slot":`dropdown-menu-group`,...e})}function d({className:e,inset:n,variant:i=`default`,...o}){return(0,r.jsx)(a.DropdownMenu.Item,{"data-slot":`dropdown-menu-item`,"data-inset":n,"data-variant":i,className:t.cn(`relative flex cursor-pointer items-center gap-2 rounded-md px-2 py-2.5 text-sm outline-hidden transition-all select-none`,`focus:bg-accent/70`,`focus:text-accent-foreground`,`dark:data-[variant=destructive]:focus:bg-destructive/20`,`data-[inset]:pl-8`,`data-[disabled]:pointer-events-none`,`data-[disabled]:opacity-50`,`data-[variant=destructive]:text-destructive`,`data-[variant=destructive]:focus:bg-destructive/10`,`data-[variant=destructive]:focus:text-destructive`,`data-[variant=destructive]:*:[svg]:!text-destructive`,`[&_svg]:shrink-0`,`[&_svg]:pointer-events-none`,`[&_svg:not([class*='size-'])]:size-4`,`[&_svg:not([class*='text-'])]:text-muted-foreground`,e),...o})}function f({className:e,children:n,checked:o,...s}){return(0,r.jsxs)(a.DropdownMenu.CheckboxItem,{"data-slot":`dropdown-menu-checkbox-item`,className:t.cn(`relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none`,`focus:bg-accent`,`focus:text-accent-foreground`,`data-[disabled]:opacity-50`,`data-[disabled]:pointer-events-none`,`[&_svg]:pointer-events-none`,`[&_svg]:shrink-0`,`[&_svg:not([class*='size-'])]:size-4`,e),checked:o,...s,children:[(0,r.jsx)(`span`,{className:`pointer-events-none absolute left-2 flex size-3.5 items-center justify-center`,children:(0,r.jsx)(a.DropdownMenu.ItemIndicator,{children:(0,r.jsx)(i.CheckIcon,{size:16})})}),n]})}function p({...e}){return(0,r.jsx)(a.DropdownMenu.RadioGroup,{"data-slot":`dropdown-menu-radio-group`,...e})}function m({className:e,children:n,...o}){return(0,r.jsxs)(a.DropdownMenu.RadioItem,{"data-slot":`dropdown-menu-radio-item`,className:t.cn(`relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none`,`focus:bg-accent`,`focus:text-accent-foreground`,`data-[disabled]:pointer-events-none`,`data-[disabled]:opacity-50`,`[&_svg]:pointer-events-none`,`[&_svg]:shrink-0`,`[&_svg:not([class*='size-'])]:size-4`,e),...o,children:[(0,r.jsx)(`span`,{className:`pointer-events-none absolute left-2 flex size-3.5 items-center justify-center`,children:(0,r.jsx)(a.DropdownMenu.ItemIndicator,{children:(0,r.jsx)(i.CircleIcon,{className:`size-2 fill-current`})})}),n]})}function h({className:e,inset:n,...i}){return(0,r.jsx)(a.DropdownMenu.Label,{"data-slot":`dropdown-menu-label`,"data-inset":n,className:t.cn(`px-2 py-1.5 text-sm font-medium data-[inset]:pl-8`,e),...i})}function g({className:e,...n}){return(0,r.jsx)(a.DropdownMenu.Separator,{"data-slot":`dropdown-menu-separator`,className:t.cn(`bg-border -mx-1 my-1 h-px`,e),...n})}function _({className:e,...n}){return(0,r.jsx)(`span`,{"data-slot":`dropdown-menu-shortcut`,className:t.cn(`text-muted-foreground ml-auto text-xs tracking-widest`,e),...n})}function v({...e}){return(0,r.jsx)(a.DropdownMenu.Sub,{"data-slot":`dropdown-menu-sub`,...e})}function y({className:e,inset:n,children:o,...s}){return(0,r.jsxs)(a.DropdownMenu.SubTrigger,{"data-slot":`dropdown-menu-sub-trigger`,"data-inset":n,className:t.cn(`flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none`,`focus:bg-accent`,`focus:text-accent-foreground`,`data-[state=open]:bg-accent`,`data-[state=open]:text-accent-foreground`,`data-[inset]:pl-8`,e),...s,children:[o,(0,r.jsx)(i.ChevronRightIcon,{className:`ml-auto size-4`})]})}function b({className:e,...n}){return(0,r.jsx)(a.DropdownMenu.SubContent,{"data-slot":`dropdown-menu-sub-content`,className:t.cn(`bg-popover text-popover-foreground`,`z-50 min-w-32 origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg`,`data-[state=open]:animate-in`,`data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0`,`data-[state=open]:fade-in-0`,`data-[state=closed]:zoom-out-95`,`data-[state=open]:zoom-in-95`,`data-[side=bottom]:slide-in-from-top-2`,`data-[side=left]:slide-in-from-right-2`,`data-[side=right]:slide-in-from-left-2`,`data-[side=top]:slide-in-from-bottom-2`,e),...n})}Object.defineProperty(exports,`DropdownMenu`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`DropdownMenuCheckboxItem`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`DropdownMenuContent`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`DropdownMenuGroup`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`DropdownMenuItem`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`DropdownMenuLabel`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`DropdownMenuPortal`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`DropdownMenuRadioGroup`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`DropdownMenuRadioItem`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`DropdownMenuSeparator`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`DropdownMenuShortcut`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`DropdownMenuSub`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`DropdownMenuSubContent`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`DropdownMenuSubTrigger`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`DropdownMenuTrigger`,{enumerable:!0,get:function(){return c}});
2
+ //# sourceMappingURL=dropdown-menu-Bv18S56o.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-menu-Bv18S56o.cjs","names":["DropdownMenuPrimitive","cn","CheckIcon","CircleIcon","ChevronRightIcon"],"sources":["../packages/components/ui/dropdown-menu.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { DropdownMenu as DropdownMenuPrimitive } from \"radix-ui\";\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction DropdownMenu({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\n return (\n <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />\n );\n}\n\nfunction DropdownMenuTrigger({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\n return (\n <DropdownMenuPrimitive.Trigger\n data-slot=\"dropdown-menu-trigger\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n align = \"start\",\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n className={cn(\n \"bg-popover text-popover-foreground\",\n \"z-50\",\n \"min-w-32\",\n \"overflow-x-hidden overflow-y-auto\",\n \"rounded-md border p-1.5 shadow-md\",\n \"max-h-(--radix-dropdown-menu-content-available-height)\",\n \"origin-(--radix-dropdown-menu-content-transform-origin)\",\n \"data-[state=open]:animate-in\",\n \"data-[state=open]:fade-in-0\",\n \"data-[state=open]:zoom-in-95\",\n \"data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0\",\n \"data-[state=closed]:zoom-out-95\",\n \"data-[side=bottom]:slide-in-from-top-2\",\n \"data-[side=left]:slide-in-from-right-2\",\n \"data-[side=right]:slide-in-from-left-2\",\n \"data-[side=top]:slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n align={align}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n return (\n <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />\n );\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n variant?: \"default\" | \"destructive\";\n}) {\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"relative flex cursor-pointer items-center gap-2 rounded-md px-2 py-2.5 text-sm outline-hidden transition-all select-none\",\n \"focus:bg-accent/70\",\n \"focus:text-accent-foreground\",\n \"dark:data-[variant=destructive]:focus:bg-destructive/20\",\n \"data-[inset]:pl-8\",\n \"data-[disabled]:pointer-events-none\",\n \"data-[disabled]:opacity-50\",\n \"data-[variant=destructive]:text-destructive\",\n \"data-[variant=destructive]:focus:bg-destructive/10\",\n \"data-[variant=destructive]:focus:text-destructive\",\n \"data-[variant=destructive]:*:[svg]:!text-destructive\",\n \"[&_svg]:shrink-0\",\n \"[&_svg]:pointer-events-none\",\n \"[&_svg:not([class*='size-'])]:size-4\",\n \"[&_svg:not([class*='text-'])]:text-muted-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(\n \"relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none\",\n \"focus:bg-accent\",\n \"focus:text-accent-foreground\",\n \"data-[disabled]:opacity-50\",\n \"data-[disabled]:pointer-events-none\",\n \"[&_svg]:pointer-events-none\",\n \"[&_svg]:shrink-0\",\n \"[&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon size={16} />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction DropdownMenuRadioGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\n return (\n <DropdownMenuPrimitive.RadioGroup\n data-slot=\"dropdown-menu-radio-group\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>) {\n return (\n <DropdownMenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n className={cn(\n \"relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none\",\n \"focus:bg-accent\",\n \"focus:text-accent-foreground\",\n \"data-[disabled]:pointer-events-none\",\n \"data-[disabled]:opacity-50\",\n \"[&_svg]:pointer-events-none\",\n \"[&_svg]:shrink-0\",\n \"[&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CircleIcon className=\"size-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n );\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\n \"px-2 py-1.5 text-sm font-medium data-[inset]:pl-8\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn(\"bg-border -mx-1 my-1 h-px\", className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n \"text-muted-foreground ml-auto text-xs tracking-widest\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSub({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none\",\n \"focus:bg-accent\",\n \"focus:text-accent-foreground\",\n \"data-[state=open]:bg-accent\",\n \"data-[state=open]:text-accent-foreground\",\n \"data-[inset]:pl-8\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto size-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n return (\n <DropdownMenuPrimitive.SubContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n \"bg-popover text-popover-foreground\",\n \"z-50 min-w-32 origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg\",\n \"data-[state=open]:animate-in\",\n \"data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0\",\n \"data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95\",\n \"data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2\",\n \"data-[side=left]:slide-in-from-right-2\",\n \"data-[side=right]:slide-in-from-left-2\",\n \"data-[side=top]:slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n};\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{cn as e}from"./utils-D9AH0PUV.js";import t from"react";import{jsx as n,jsxs as r}from"react/jsx-runtime";import{CheckIcon as i,ChevronRightIcon as a,CircleIcon as o}from"lucide-react";import{DropdownMenu as s}from"radix-ui";function c({...e}){return n(s.Root,{"data-slot":`dropdown-menu`,...e})}function l({...e}){return n(s.Portal,{"data-slot":`dropdown-menu-portal`,...e})}function u({...e}){return n(s.Trigger,{"data-slot":`dropdown-menu-trigger`,...e})}function d({className:t,sideOffset:r=4,align:i=`start`,...a}){return n(s.Portal,{children:n(s.Content,{"data-slot":`dropdown-menu-content`,sideOffset:r,className:e(`bg-popover text-popover-foreground`,`z-50`,`min-w-32`,`overflow-x-hidden overflow-y-auto`,`rounded-md border p-1.5 shadow-md`,`max-h-(--radix-dropdown-menu-content-available-height)`,`origin-(--radix-dropdown-menu-content-transform-origin)`,`data-[state=open]:animate-in`,`data-[state=open]:fade-in-0`,`data-[state=open]:zoom-in-95`,`data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0`,`data-[state=closed]:zoom-out-95`,`data-[side=bottom]:slide-in-from-top-2`,`data-[side=left]:slide-in-from-right-2`,`data-[side=right]:slide-in-from-left-2`,`data-[side=top]:slide-in-from-bottom-2`,t),...a,align:i})})}function f({...e}){return n(s.Group,{"data-slot":`dropdown-menu-group`,...e})}function p({className:t,inset:r,variant:i=`default`,...a}){return n(s.Item,{"data-slot":`dropdown-menu-item`,"data-inset":r,"data-variant":i,className:e(`relative flex cursor-pointer items-center gap-2 rounded-md px-2 py-2.5 text-sm outline-hidden transition-all select-none`,`focus:bg-accent/70`,`focus:text-accent-foreground`,`dark:data-[variant=destructive]:focus:bg-destructive/20`,`data-[inset]:pl-8`,`data-[disabled]:pointer-events-none`,`data-[disabled]:opacity-50`,`data-[variant=destructive]:text-destructive`,`data-[variant=destructive]:focus:bg-destructive/10`,`data-[variant=destructive]:focus:text-destructive`,`data-[variant=destructive]:*:[svg]:!text-destructive`,`[&_svg]:shrink-0`,`[&_svg]:pointer-events-none`,`[&_svg:not([class*='size-'])]:size-4`,`[&_svg:not([class*='text-'])]:text-muted-foreground`,t),...a})}function m({className:t,children:a,checked:o,...c}){return r(s.CheckboxItem,{"data-slot":`dropdown-menu-checkbox-item`,className:e(`relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none`,`focus:bg-accent`,`focus:text-accent-foreground`,`data-[disabled]:opacity-50`,`data-[disabled]:pointer-events-none`,`[&_svg]:pointer-events-none`,`[&_svg]:shrink-0`,`[&_svg:not([class*='size-'])]:size-4`,t),checked:o,...c,children:[n(`span`,{className:`pointer-events-none absolute left-2 flex size-3.5 items-center justify-center`,children:n(s.ItemIndicator,{children:n(i,{size:16})})}),a]})}function h({...e}){return n(s.RadioGroup,{"data-slot":`dropdown-menu-radio-group`,...e})}function g({className:t,children:i,...a}){return r(s.RadioItem,{"data-slot":`dropdown-menu-radio-item`,className:e(`relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none`,`focus:bg-accent`,`focus:text-accent-foreground`,`data-[disabled]:pointer-events-none`,`data-[disabled]:opacity-50`,`[&_svg]:pointer-events-none`,`[&_svg]:shrink-0`,`[&_svg:not([class*='size-'])]:size-4`,t),...a,children:[n(`span`,{className:`pointer-events-none absolute left-2 flex size-3.5 items-center justify-center`,children:n(s.ItemIndicator,{children:n(o,{className:`size-2 fill-current`})})}),i]})}function _({className:t,inset:r,...i}){return n(s.Label,{"data-slot":`dropdown-menu-label`,"data-inset":r,className:e(`px-2 py-1.5 text-sm font-medium data-[inset]:pl-8`,t),...i})}function v({className:t,...r}){return n(s.Separator,{"data-slot":`dropdown-menu-separator`,className:e(`bg-border -mx-1 my-1 h-px`,t),...r})}function y({className:t,...r}){return n(`span`,{"data-slot":`dropdown-menu-shortcut`,className:e(`text-muted-foreground ml-auto text-xs tracking-widest`,t),...r})}function b({...e}){return n(s.Sub,{"data-slot":`dropdown-menu-sub`,...e})}function x({className:t,inset:i,children:o,...c}){return r(s.SubTrigger,{"data-slot":`dropdown-menu-sub-trigger`,"data-inset":i,className:e(`flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none`,`focus:bg-accent`,`focus:text-accent-foreground`,`data-[state=open]:bg-accent`,`data-[state=open]:text-accent-foreground`,`data-[inset]:pl-8`,t),...c,children:[o,n(a,{className:`ml-auto size-4`})]})}function S({className:t,...r}){return n(s.SubContent,{"data-slot":`dropdown-menu-sub-content`,className:e(`bg-popover text-popover-foreground`,`z-50 min-w-32 origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg`,`data-[state=open]:animate-in`,`data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0`,`data-[state=open]:fade-in-0`,`data-[state=closed]:zoom-out-95`,`data-[state=open]:zoom-in-95`,`data-[side=bottom]:slide-in-from-top-2`,`data-[side=left]:slide-in-from-right-2`,`data-[side=right]:slide-in-from-left-2`,`data-[side=top]:slide-in-from-bottom-2`,t),...r})}export{c as DropdownMenu,m as DropdownMenuCheckboxItem,d as DropdownMenuContent,f as DropdownMenuGroup,p as DropdownMenuItem,_ as DropdownMenuLabel,l as DropdownMenuPortal,h as DropdownMenuRadioGroup,g as DropdownMenuRadioItem,v as DropdownMenuSeparator,y as DropdownMenuShortcut,b as DropdownMenuSub,S as DropdownMenuSubContent,x as DropdownMenuSubTrigger,u as DropdownMenuTrigger};
2
+ //# sourceMappingURL=dropdown-menu-jCQwh2rG.js.map