@customafk/lunas-ui 0.2.5 → 0.2.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 (757) hide show
  1. package/README.md +39 -9
  2. package/ai-docs.md +419 -0
  3. package/dist/alert-CA1RS1CG.d.cts +88 -0
  4. package/dist/alert-DDL82_U3.d.mts +88 -0
  5. package/dist/alert-DIC1_ymv.cjs +2 -0
  6. package/dist/alert-DIC1_ymv.cjs.map +1 -0
  7. package/dist/alert-VP3giy31.mjs +2 -0
  8. package/dist/alert-VP3giy31.mjs.map +1 -0
  9. package/dist/avatar-CTS9-raY.cjs +2 -0
  10. package/dist/avatar-CTS9-raY.cjs.map +1 -0
  11. package/dist/avatar-DbxqvCjT.mjs +2 -0
  12. package/dist/avatar-DbxqvCjT.mjs.map +1 -0
  13. package/dist/badge-B8bw2UEY.mjs +2 -0
  14. package/dist/badge-B8bw2UEY.mjs.map +1 -0
  15. package/dist/badge-BFTGDsBm.d.cts +42 -0
  16. package/dist/badge-Cg0e-djv.d.mts +42 -0
  17. package/dist/badge-uQ0pIZbQ.cjs +2 -0
  18. package/dist/badge-uQ0pIZbQ.cjs.map +1 -0
  19. package/dist/button-Bn54lPVz.d.cts +174 -0
  20. package/dist/button-C6ybzxxj.mjs +2 -0
  21. package/dist/button-C6ybzxxj.mjs.map +1 -0
  22. package/dist/button-C76drZpd.d.mts +174 -0
  23. package/dist/{button-Cd7YtPlT.cjs → button-CwDT3m4m.cjs} +2 -2
  24. package/dist/button-CwDT3m4m.cjs.map +1 -0
  25. package/dist/button.variants-DeCyas1F.mjs +2 -0
  26. package/dist/button.variants-DeCyas1F.mjs.map +1 -0
  27. package/dist/button.variants-tnhb123u.cjs +2 -0
  28. package/dist/button.variants-tnhb123u.cjs.map +1 -0
  29. package/dist/calendar-CyAPpT2m.cjs +2 -0
  30. package/dist/calendar-CyAPpT2m.cjs.map +1 -0
  31. package/dist/calendar-JKxWM6AF.mjs +2 -0
  32. package/dist/calendar-JKxWM6AF.mjs.map +1 -0
  33. package/dist/cards/grid-product-card.cjs +1 -1
  34. package/dist/cards/grid-product-card.cjs.map +1 -1
  35. package/dist/cards/grid-product-card.d.cts +23 -0
  36. package/dist/cards/grid-product-card.d.mts +23 -0
  37. package/dist/cards/grid-product-card.mjs +1 -1
  38. package/dist/cards/grid-product-card.mjs.map +1 -1
  39. package/dist/cards/product-card.cjs +1 -1
  40. package/dist/cards/product-card.cjs.map +1 -1
  41. package/dist/cards/product-card.d.cts +23 -0
  42. package/dist/cards/product-card.d.mts +23 -0
  43. package/dist/cards/product-card.mjs +1 -1
  44. package/dist/cards/product-card.mjs.map +1 -1
  45. package/dist/cards/simple-card.cjs +1 -1
  46. package/dist/cards/simple-card.cjs.map +1 -1
  47. package/dist/cards/simple-card.d.cts +16 -0
  48. package/dist/cards/simple-card.d.mts +18 -2
  49. package/dist/cards/simple-card.mjs +1 -1
  50. package/dist/cards/simple-card.mjs.map +1 -1
  51. package/dist/{checkbox-Bg2FiuQw.mjs → checkbox-DJEdYOjA.mjs} +2 -2
  52. package/dist/checkbox-DJEdYOjA.mjs.map +1 -0
  53. package/dist/{checkbox-C0fSWwmD.cjs → checkbox-RZrRNYP2.cjs} +2 -2
  54. package/dist/checkbox-RZrRNYP2.cjs.map +1 -0
  55. package/dist/close-BU0kWRVo.mjs +2 -0
  56. package/dist/{close-DfuHB7kq.mjs.map → close-BU0kWRVo.mjs.map} +1 -1
  57. package/dist/close-DXk_H3Gt.cjs +2 -0
  58. package/dist/{close-D_Ge7gnP.cjs.map → close-DXk_H3Gt.cjs.map} +1 -1
  59. package/dist/cms-layout-Dc4moos1.cjs +2 -0
  60. package/dist/cms-layout-Dc4moos1.cjs.map +1 -0
  61. package/dist/cms-layout-HfnOQS16.mjs +2 -0
  62. package/dist/cms-layout-HfnOQS16.mjs.map +1 -0
  63. package/dist/{command-IfPmQiyJ.cjs → command-SHd-d_o0.cjs} +2 -2
  64. package/dist/command-SHd-d_o0.cjs.map +1 -0
  65. package/dist/{command-Bma4ivZz.mjs → command-bpcnKEbR.mjs} +2 -2
  66. package/dist/command-bpcnKEbR.mjs.map +1 -0
  67. package/dist/data-display/country.cjs +1 -1
  68. package/dist/data-display/country.cjs.map +1 -1
  69. package/dist/data-display/country.d.cts +15 -3
  70. package/dist/data-display/country.d.mts +15 -3
  71. package/dist/data-display/country.mjs +1 -1
  72. package/dist/data-display/country.mjs.map +1 -1
  73. package/dist/data-display/data-list.cjs +1 -1
  74. package/dist/data-display/data-list.cjs.map +1 -1
  75. package/dist/data-display/data-list.d.cts +31 -2
  76. package/dist/data-display/data-list.d.mts +31 -2
  77. package/dist/data-display/data-list.mjs +1 -1
  78. package/dist/data-display/data-list.mjs.map +1 -1
  79. package/dist/data-display/date-tooltip.cjs +1 -1
  80. package/dist/data-display/date-tooltip.cjs.map +1 -1
  81. package/dist/data-display/date-tooltip.d.cts +13 -2
  82. package/dist/data-display/date-tooltip.d.mts +13 -2
  83. package/dist/data-display/date-tooltip.mjs +1 -1
  84. package/dist/data-display/date-tooltip.mjs.map +1 -1
  85. package/dist/data-display/date.cjs +1 -1
  86. package/dist/data-display/date.d.cts +28 -2
  87. package/dist/data-display/date.d.mts +28 -2
  88. package/dist/data-display/date.mjs +1 -1
  89. package/dist/data-display/empty.cjs +1 -1
  90. package/dist/data-display/empty.cjs.map +1 -1
  91. package/dist/data-display/empty.d.cts +17 -3
  92. package/dist/data-display/empty.d.mts +17 -3
  93. package/dist/data-display/empty.mjs +1 -1
  94. package/dist/data-display/empty.mjs.map +1 -1
  95. package/dist/data-display/name.cjs +1 -1
  96. package/dist/data-display/name.cjs.map +1 -1
  97. package/dist/data-display/name.d.cts +12 -1
  98. package/dist/data-display/name.d.mts +12 -1
  99. package/dist/data-display/name.mjs +1 -1
  100. package/dist/data-display/name.mjs.map +1 -1
  101. package/dist/data-display/phone-number.cjs +1 -1
  102. package/dist/data-display/phone-number.cjs.map +1 -1
  103. package/dist/data-display/phone-number.d.cts +14 -2
  104. package/dist/data-display/phone-number.d.mts +14 -2
  105. package/dist/data-display/phone-number.mjs +1 -1
  106. package/dist/data-display/phone-number.mjs.map +1 -1
  107. package/dist/data-display/role-badge.cjs +1 -1
  108. package/dist/data-display/role-badge.cjs.map +1 -1
  109. package/dist/data-display/role-badge.d.cts +15 -3
  110. package/dist/data-display/role-badge.d.mts +15 -3
  111. package/dist/data-display/role-badge.mjs +1 -1
  112. package/dist/data-display/role-badge.mjs.map +1 -1
  113. package/dist/data-display/statistic.cjs +1 -1
  114. package/dist/data-display/statistic.cjs.map +1 -1
  115. package/dist/data-display/statistic.d.cts +35 -6
  116. package/dist/data-display/statistic.d.mts +37 -8
  117. package/dist/data-display/statistic.mjs +1 -1
  118. package/dist/data-display/statistic.mjs.map +1 -1
  119. package/dist/data-display/user.cjs +1 -2
  120. package/dist/data-display/user.d.cts +14 -1
  121. package/dist/data-display/user.d.mts +14 -1
  122. package/dist/data-display/user.mjs +1 -2
  123. package/dist/date-CVz9xdCg.mjs +2 -0
  124. package/dist/date-CVz9xdCg.mjs.map +1 -0
  125. package/dist/date-a3RI5Pwo.cjs +2 -0
  126. package/dist/date-a3RI5Pwo.cjs.map +1 -0
  127. package/dist/dialog-BchwY6-N.mjs +2 -0
  128. package/dist/dialog-BchwY6-N.mjs.map +1 -0
  129. package/dist/dialog-CNhwBcEl.d.cts +90 -0
  130. package/dist/dialog-D6ygAOSV.d.mts +90 -0
  131. package/dist/dialog-o_68LQXd.cjs +2 -0
  132. package/dist/dialog-o_68LQXd.cjs.map +1 -0
  133. package/dist/dialogs/confirm-dialog.cjs +1 -1
  134. package/dist/dialogs/confirm-dialog.cjs.map +1 -1
  135. package/dist/dialogs/confirm-dialog.d.cts +129 -3
  136. package/dist/dialogs/confirm-dialog.d.mts +129 -3
  137. package/dist/dialogs/confirm-dialog.mjs +1 -1
  138. package/dist/dialogs/confirm-dialog.mjs.map +1 -1
  139. package/dist/dialogs/detail-dialog/components/sidebar.cjs +1 -2
  140. package/dist/dialogs/detail-dialog/components/sidebar.d.cts +73 -26
  141. package/dist/dialogs/detail-dialog/components/sidebar.d.mts +73 -26
  142. package/dist/dialogs/detail-dialog/components/sidebar.mjs +1 -2
  143. package/dist/dialogs/detail-dialog/index.cjs +1 -1
  144. package/dist/dialogs/detail-dialog/index.cjs.map +1 -1
  145. package/dist/dialogs/detail-dialog/index.d.cts +37 -8
  146. package/dist/dialogs/detail-dialog/index.d.mts +37 -8
  147. package/dist/dialogs/detail-dialog/index.mjs +1 -1
  148. package/dist/dialogs/detail-dialog/index.mjs.map +1 -1
  149. package/dist/dialogs/error-dialog.cjs +1 -1
  150. package/dist/dialogs/error-dialog.cjs.map +1 -1
  151. package/dist/dialogs/error-dialog.d.cts +18 -4
  152. package/dist/dialogs/error-dialog.d.mts +18 -4
  153. package/dist/dialogs/error-dialog.mjs +1 -1
  154. package/dist/dialogs/error-dialog.mjs.map +1 -1
  155. package/dist/dialogs/loading-dialog.cjs +1 -1
  156. package/dist/dialogs/loading-dialog.cjs.map +1 -1
  157. package/dist/dialogs/loading-dialog.d.cts +15 -3
  158. package/dist/dialogs/loading-dialog.d.mts +15 -3
  159. package/dist/dialogs/loading-dialog.mjs +1 -1
  160. package/dist/dialogs/loading-dialog.mjs.map +1 -1
  161. package/dist/dist-CIN9T2FB.mjs +2 -0
  162. package/dist/{dist-DP1ehOL8.mjs.map → dist-CIN9T2FB.mjs.map} +1 -1
  163. package/dist/dist-Dh8WwRa8.cjs +2 -0
  164. package/dist/{dist-Q1UyT_bc.cjs.map → dist-Dh8WwRa8.cjs.map} +1 -1
  165. package/dist/dropdown-menu-Ct9BLGfa.cjs +2 -0
  166. package/dist/dropdown-menu-Ct9BLGfa.cjs.map +1 -0
  167. package/dist/dropdown-menu-DWSfXhHo.mjs +2 -0
  168. package/dist/dropdown-menu-DWSfXhHo.mjs.map +1 -0
  169. package/dist/features/descriptions/index.cjs +1 -1
  170. package/dist/features/descriptions/index.cjs.map +1 -1
  171. package/dist/features/descriptions/index.d.cts +158 -19
  172. package/dist/features/descriptions/index.d.mts +158 -19
  173. package/dist/features/descriptions/index.mjs +1 -1
  174. package/dist/features/descriptions/index.mjs.map +1 -1
  175. package/dist/features/search-modal/index.cjs +1 -2
  176. package/dist/features/search-modal/index.d.cts +12 -2
  177. package/dist/features/search-modal/index.d.mts +12 -2
  178. package/dist/features/search-modal/index.mjs +1 -2
  179. package/dist/features/tables/index.cjs +1 -2
  180. package/dist/features/tables/index.d.cts +746 -24
  181. package/dist/features/tables/index.d.mts +746 -24
  182. package/dist/features/tables/index.mjs +1 -2
  183. package/dist/features/tanstack-form/index.cjs +1 -2
  184. package/dist/features/tanstack-form/index.d.cts +2 -1786
  185. package/dist/features/tanstack-form/index.d.mts +2 -1786
  186. package/dist/features/tanstack-form/index.mjs +1 -2
  187. package/dist/field-CXVnw75a.mjs +2 -0
  188. package/dist/field-CXVnw75a.mjs.map +1 -0
  189. package/dist/field-CppNvoxV.cjs +2 -0
  190. package/dist/field-CppNvoxV.cjs.map +1 -0
  191. package/dist/{flex-CeizYtXs.mjs → flex-BLMTj7Ev.mjs} +2 -2
  192. package/dist/flex-BLMTj7Ev.mjs.map +1 -0
  193. package/dist/{flex-BsoSgWFN.cjs → flex-BbbogTsZ.cjs} +2 -2
  194. package/dist/flex-BbbogTsZ.cjs.map +1 -0
  195. package/dist/heading-AKz5ewy-.cjs +2 -0
  196. package/dist/heading-AKz5ewy-.cjs.map +1 -0
  197. package/dist/heading-DN67djxs.mjs +2 -0
  198. package/dist/heading-DN67djxs.mjs.map +1 -0
  199. package/dist/image-B1Dm5LWk.cjs +2 -0
  200. package/dist/image-B1Dm5LWk.cjs.map +1 -0
  201. package/dist/image-BlzrSaoE.mjs +2 -0
  202. package/dist/image-BlzrSaoE.mjs.map +1 -0
  203. package/dist/index-75nSAiSe.d.mts +2030 -0
  204. package/dist/index-aTMCQQms.d.cts +2030 -0
  205. package/dist/index.cjs +1 -0
  206. package/dist/index.d.cts +90 -0
  207. package/dist/index.d.mts +90 -0
  208. package/dist/index.mjs +1 -0
  209. package/dist/{input-DMjPBcJO.mjs → input-Cd0G5y-9.mjs} +2 -2
  210. package/dist/input-Cd0G5y-9.mjs.map +1 -0
  211. package/dist/{input-BoMJaF_N.cjs → input-Cl5VkKQh.cjs} +2 -2
  212. package/dist/input-Cl5VkKQh.cjs.map +1 -0
  213. package/dist/input-D5dtkW6g.d.mts +44 -0
  214. package/dist/input-t2hpPP2K.d.cts +44 -0
  215. package/dist/{label-BzfsTrVt.cjs → label-DkMTQ3Ch.cjs} +2 -2
  216. package/dist/label-DkMTQ3Ch.cjs.map +1 -0
  217. package/dist/label-OmlGaZ5h.mjs +2 -0
  218. package/dist/label-OmlGaZ5h.mjs.map +1 -0
  219. package/dist/layouts/cms-layout/index.cjs +1 -2
  220. package/dist/layouts/cms-layout/index.d.cts +66 -13
  221. package/dist/layouts/cms-layout/index.d.mts +66 -13
  222. package/dist/layouts/cms-layout/index.mjs +1 -2
  223. package/dist/layouts/flex.cjs +1 -1
  224. package/dist/layouts/flex.d.cts +91 -7
  225. package/dist/layouts/flex.d.mts +93 -9
  226. package/dist/layouts/flex.mjs +1 -1
  227. package/dist/layouts/grid.cjs +1 -1
  228. package/dist/layouts/grid.cjs.map +1 -1
  229. package/dist/layouts/grid.d.cts +14 -0
  230. package/dist/layouts/grid.d.mts +14 -0
  231. package/dist/layouts/grid.mjs +1 -1
  232. package/dist/layouts/grid.mjs.map +1 -1
  233. package/dist/layouts/payment-layout/index.cjs +1 -2
  234. package/dist/layouts/payment-layout/index.d.cts +35 -0
  235. package/dist/layouts/payment-layout/index.d.mts +35 -0
  236. package/dist/layouts/payment-layout/index.mjs +1 -2
  237. package/dist/pages/FeatureDeveloping.cjs +1 -1
  238. package/dist/pages/FeatureDeveloping.cjs.map +1 -1
  239. package/dist/pages/FeatureDeveloping.d.cts +21 -3
  240. package/dist/pages/FeatureDeveloping.d.mts +21 -3
  241. package/dist/pages/FeatureDeveloping.mjs +1 -1
  242. package/dist/pages/FeatureDeveloping.mjs.map +1 -1
  243. package/dist/pages/FeatureFixing.cjs +1 -1
  244. package/dist/pages/FeatureFixing.cjs.map +1 -1
  245. package/dist/pages/FeatureFixing.d.cts +21 -3
  246. package/dist/pages/FeatureFixing.d.mts +21 -3
  247. package/dist/pages/FeatureFixing.mjs +1 -1
  248. package/dist/pages/FeatureFixing.mjs.map +1 -1
  249. package/dist/pages/NotAuthorized.cjs +1 -1
  250. package/dist/pages/NotAuthorized.cjs.map +1 -1
  251. package/dist/pages/NotAuthorized.d.cts +21 -3
  252. package/dist/pages/NotAuthorized.d.mts +21 -3
  253. package/dist/pages/NotAuthorized.mjs +1 -1
  254. package/dist/pages/NotAuthorized.mjs.map +1 -1
  255. package/dist/pages/NotFound.cjs +1 -1
  256. package/dist/pages/NotFound.cjs.map +1 -1
  257. package/dist/pages/NotFound.d.cts +21 -3
  258. package/dist/pages/NotFound.d.mts +21 -3
  259. package/dist/pages/NotFound.mjs +1 -1
  260. package/dist/pages/NotFound.mjs.map +1 -1
  261. package/dist/{paragraph-DmiXlAnE.mjs → paragraph-Ch5TvEqL.mjs} +2 -2
  262. package/dist/paragraph-Ch5TvEqL.mjs.map +1 -0
  263. package/dist/{paragraph-Co2e-y5c.cjs → paragraph-DN85Huc4.cjs} +2 -2
  264. package/dist/paragraph-DN85Huc4.cjs.map +1 -0
  265. package/dist/payment-layout-Da29dHJe.cjs +2 -0
  266. package/dist/payment-layout-Da29dHJe.cjs.map +1 -0
  267. package/dist/payment-layout-wN5c7MCM.mjs +2 -0
  268. package/dist/payment-layout-wN5c7MCM.mjs.map +1 -0
  269. package/dist/{popover-DzDrgttC.cjs → popover-AEt-aSy3.cjs} +2 -2
  270. package/dist/popover-AEt-aSy3.cjs.map +1 -0
  271. package/dist/popover-OJXFbqJi.mjs +2 -0
  272. package/dist/popover-OJXFbqJi.mjs.map +1 -0
  273. package/dist/{radio-group-CBhRsUjN.cjs → radio-group-BWLdQw7M.cjs} +2 -2
  274. package/dist/radio-group-BWLdQw7M.cjs.map +1 -0
  275. package/dist/{radio-group-Cem8O6BK.mjs → radio-group-CAgfOr7-.mjs} +2 -2
  276. package/dist/radio-group-CAgfOr7-.mjs.map +1 -0
  277. package/dist/{resizable-B8tRShQI.cjs → resizable-D6UKwvFa.cjs} +2 -2
  278. package/dist/resizable-D6UKwvFa.cjs.map +1 -0
  279. package/dist/{resizable-RPObV6jc.mjs → resizable-DWh_mp5P.mjs} +2 -2
  280. package/dist/resizable-DWh_mp5P.mjs.map +1 -0
  281. package/dist/search-modal-BxjKY8I7.mjs +2 -0
  282. package/dist/search-modal-BxjKY8I7.mjs.map +1 -0
  283. package/dist/search-modal-C-jNqQI1.cjs +2 -0
  284. package/dist/search-modal-C-jNqQI1.cjs.map +1 -0
  285. package/dist/{select-2CgwiefV.cjs → select-Py_t2nX1.cjs} +2 -2
  286. package/dist/select-Py_t2nX1.cjs.map +1 -0
  287. package/dist/{select-CivtMKTM.mjs → select-Ze8Fq88G.mjs} +2 -2
  288. package/dist/select-Ze8Fq88G.mjs.map +1 -0
  289. package/dist/separator-BMsbHAVt.mjs +2 -0
  290. package/dist/separator-BMsbHAVt.mjs.map +1 -0
  291. package/dist/{separator-C3ip6sbh.cjs → separator-BwZb12bh.cjs} +2 -2
  292. package/dist/separator-BwZb12bh.cjs.map +1 -0
  293. package/dist/{sheet-5MJRtrfG.cjs → sheet-CaDXTx7n.cjs} +2 -2
  294. package/dist/sheet-CaDXTx7n.cjs.map +1 -0
  295. package/dist/{sheet-oadGRiie.mjs → sheet-DMIqn1iv.mjs} +2 -2
  296. package/dist/sheet-DMIqn1iv.mjs.map +1 -0
  297. package/dist/sidebar-C27_pwLR.cjs +2 -0
  298. package/dist/sidebar-C27_pwLR.cjs.map +1 -0
  299. package/dist/sidebar-meLttL0V.mjs +2 -0
  300. package/dist/sidebar-meLttL0V.mjs.map +1 -0
  301. package/dist/skeleton-BPxcW2yu.mjs +2 -0
  302. package/dist/skeleton-BPxcW2yu.mjs.map +1 -0
  303. package/dist/skeleton-BfMCjXYM.cjs +2 -0
  304. package/dist/skeleton-BfMCjXYM.cjs.map +1 -0
  305. package/dist/spinner-EgMJOaQi.mjs +2 -0
  306. package/dist/spinner-EgMJOaQi.mjs.map +1 -0
  307. package/dist/spinner-MKXqwF9G.cjs +2 -0
  308. package/dist/spinner-MKXqwF9G.cjs.map +1 -0
  309. package/dist/systems/google.cjs +1 -1
  310. package/dist/systems/google.cjs.map +1 -1
  311. package/dist/systems/google.d.cts +36 -0
  312. package/dist/systems/google.d.mts +36 -0
  313. package/dist/systems/google.mjs +1 -1
  314. package/dist/systems/google.mjs.map +1 -1
  315. package/dist/tables-Cc3Wik4i.cjs +2 -0
  316. package/dist/tables-Cc3Wik4i.cjs.map +1 -0
  317. package/dist/tables-DrJKQPsT.mjs +2 -0
  318. package/dist/tables-DrJKQPsT.mjs.map +1 -0
  319. package/dist/tanstack-form-BmV2BXDz.cjs +2 -0
  320. package/dist/tanstack-form-BmV2BXDz.cjs.map +1 -0
  321. package/dist/tanstack-form-CJ43hVb_.mjs +2 -0
  322. package/dist/tanstack-form-CJ43hVb_.mjs.map +1 -0
  323. package/dist/{textarea-Dlwbg6TY.cjs → textarea-BsgmN4jy.cjs} +2 -2
  324. package/dist/textarea-BsgmN4jy.cjs.map +1 -0
  325. package/dist/{textarea-RjL2DtNf.mjs → textarea-CdGSEkZB.mjs} +2 -2
  326. package/dist/textarea-CdGSEkZB.mjs.map +1 -0
  327. package/dist/tooltip-Bj0iOG4s.mjs +2 -0
  328. package/dist/tooltip-Bj0iOG4s.mjs.map +1 -0
  329. package/dist/{tooltip-DC6i1A25.cjs → tooltip-itUmYz9k.cjs} +2 -2
  330. package/dist/tooltip-itUmYz9k.cjs.map +1 -0
  331. package/dist/{types-Bd0JePtp.d.cts → types-B_32Ieia.d.mts} +1 -1
  332. package/dist/{types-BpHcqlOI.d.mts → types-CDYHkcOk.d.cts} +1 -1
  333. package/dist/{types-DBD4LOem.mjs → types-DNphnTW-.mjs} +1 -1
  334. package/dist/{types-DBD4LOem.mjs.map → types-DNphnTW-.mjs.map} +1 -1
  335. package/dist/typography/paragraph.cjs +1 -1
  336. package/dist/typography/paragraph.d.cts +35 -5
  337. package/dist/typography/paragraph.d.mts +36 -6
  338. package/dist/typography/paragraph.mjs +1 -1
  339. package/dist/typography/title.cjs +1 -1
  340. package/dist/typography/title.cjs.map +1 -1
  341. package/dist/typography/title.d.cts +31 -4
  342. package/dist/typography/title.d.mts +31 -4
  343. package/dist/typography/title.mjs +1 -1
  344. package/dist/typography/title.mjs.map +1 -1
  345. package/dist/ui/alert-dialog.cjs +1 -1
  346. package/dist/ui/alert-dialog.cjs.map +1 -1
  347. package/dist/ui/alert-dialog.d.cts +54 -12
  348. package/dist/ui/alert-dialog.d.mts +54 -12
  349. package/dist/ui/alert-dialog.mjs +1 -1
  350. package/dist/ui/alert-dialog.mjs.map +1 -1
  351. package/dist/ui/alert.cjs +1 -2
  352. package/dist/ui/alert.d.cts +2 -69
  353. package/dist/ui/alert.d.mts +2 -69
  354. package/dist/ui/alert.mjs +1 -2
  355. package/dist/ui/aspect-ratio.cjs +1 -1
  356. package/dist/ui/aspect-ratio.cjs.map +1 -1
  357. package/dist/ui/aspect-ratio.d.cts +15 -2
  358. package/dist/ui/aspect-ratio.d.mts +15 -2
  359. package/dist/ui/aspect-ratio.mjs +1 -1
  360. package/dist/ui/aspect-ratio.mjs.map +1 -1
  361. package/dist/ui/avatar.cjs +1 -1
  362. package/dist/ui/avatar.d.cts +20 -4
  363. package/dist/ui/avatar.d.mts +20 -4
  364. package/dist/ui/avatar.mjs +1 -1
  365. package/dist/ui/badge.cjs +1 -1
  366. package/dist/ui/badge.d.cts +2 -21
  367. package/dist/ui/badge.d.mts +2 -21
  368. package/dist/ui/badge.mjs +1 -1
  369. package/dist/ui/breadcrumb.cjs +1 -1
  370. package/dist/ui/breadcrumb.cjs.map +1 -1
  371. package/dist/ui/breadcrumb.d.cts +38 -25
  372. package/dist/ui/breadcrumb.d.mts +38 -25
  373. package/dist/ui/breadcrumb.mjs +1 -1
  374. package/dist/ui/breadcrumb.mjs.map +1 -1
  375. package/dist/ui/button-group.cjs +1 -1
  376. package/dist/ui/button-group.cjs.map +1 -1
  377. package/dist/ui/button-group.d.cts +27 -6
  378. package/dist/ui/button-group.d.mts +27 -6
  379. package/dist/ui/button-group.mjs +1 -1
  380. package/dist/ui/button-group.mjs.map +1 -1
  381. package/dist/ui/button.cjs +1 -1
  382. package/dist/ui/button.d.cts +1 -1
  383. package/dist/ui/button.d.mts +1 -1
  384. package/dist/ui/button.mjs +1 -1
  385. package/dist/ui/buttons/add-new.cjs +1 -1
  386. package/dist/ui/buttons/add-new.cjs.map +1 -1
  387. package/dist/ui/buttons/add-new.d.cts +9 -0
  388. package/dist/ui/buttons/add-new.d.mts +9 -0
  389. package/dist/ui/buttons/add-new.mjs +1 -1
  390. package/dist/ui/buttons/add-new.mjs.map +1 -1
  391. package/dist/ui/buttons/edit.cjs +1 -1
  392. package/dist/ui/buttons/edit.cjs.map +1 -1
  393. package/dist/ui/buttons/edit.d.cts +9 -0
  394. package/dist/ui/buttons/edit.d.mts +9 -0
  395. package/dist/ui/buttons/edit.mjs +1 -1
  396. package/dist/ui/buttons/edit.mjs.map +1 -1
  397. package/dist/ui/buttons/refresh.cjs +1 -1
  398. package/dist/ui/buttons/refresh.cjs.map +1 -1
  399. package/dist/ui/buttons/refresh.d.cts +9 -0
  400. package/dist/ui/buttons/refresh.d.mts +9 -0
  401. package/dist/ui/buttons/refresh.mjs +1 -1
  402. package/dist/ui/buttons/refresh.mjs.map +1 -1
  403. package/dist/ui/buttons/trash.cjs +1 -1
  404. package/dist/ui/buttons/trash.cjs.map +1 -1
  405. package/dist/ui/buttons/trash.d.cts +9 -0
  406. package/dist/ui/buttons/trash.d.mts +9 -0
  407. package/dist/ui/buttons/trash.mjs +1 -1
  408. package/dist/ui/buttons/trash.mjs.map +1 -1
  409. package/dist/ui/buttons/upload-image.cjs +1 -1
  410. package/dist/ui/buttons/upload-image.cjs.map +1 -1
  411. package/dist/ui/buttons/upload-image.d.cts +13 -0
  412. package/dist/ui/buttons/upload-image.d.mts +13 -0
  413. package/dist/ui/buttons/upload-image.mjs +1 -1
  414. package/dist/ui/buttons/upload-image.mjs.map +1 -1
  415. package/dist/ui/calendar.cjs +1 -1
  416. package/dist/ui/calendar.d.cts +22 -4
  417. package/dist/ui/calendar.d.mts +22 -4
  418. package/dist/ui/calendar.mjs +1 -1
  419. package/dist/ui/card.cjs +1 -1
  420. package/dist/ui/card.cjs.map +1 -1
  421. package/dist/ui/card.d.cts +37 -8
  422. package/dist/ui/card.d.mts +37 -8
  423. package/dist/ui/card.mjs +1 -1
  424. package/dist/ui/card.mjs.map +1 -1
  425. package/dist/ui/carousel.cjs +1 -1
  426. package/dist/ui/carousel.cjs.map +1 -1
  427. package/dist/ui/carousel.d.cts +31 -7
  428. package/dist/ui/carousel.d.mts +31 -7
  429. package/dist/ui/carousel.mjs +1 -1
  430. package/dist/ui/carousel.mjs.map +1 -1
  431. package/dist/ui/checkbox.cjs +1 -1
  432. package/dist/ui/checkbox.d.cts +17 -2
  433. package/dist/ui/checkbox.d.mts +17 -2
  434. package/dist/ui/checkbox.mjs +1 -1
  435. package/dist/ui/collapsible.cjs.map +1 -1
  436. package/dist/ui/collapsible.d.cts +22 -4
  437. package/dist/ui/collapsible.d.mts +22 -4
  438. package/dist/ui/collapsible.mjs.map +1 -1
  439. package/dist/ui/command.cjs +1 -1
  440. package/dist/ui/command.d.cts +48 -11
  441. package/dist/ui/command.d.mts +48 -11
  442. package/dist/ui/command.mjs +1 -1
  443. package/dist/ui/context-menu.cjs +1 -1
  444. package/dist/ui/context-menu.cjs.map +1 -1
  445. package/dist/ui/context-menu.d.cts +65 -16
  446. package/dist/ui/context-menu.d.mts +65 -16
  447. package/dist/ui/context-menu.mjs +1 -1
  448. package/dist/ui/context-menu.mjs.map +1 -1
  449. package/dist/ui/dialog.cjs +1 -1
  450. package/dist/ui/dialog.d.cts +1 -1
  451. package/dist/ui/dialog.d.mts +1 -1
  452. package/dist/ui/dialog.mjs +1 -1
  453. package/dist/ui/drawer.cjs +1 -1
  454. package/dist/ui/drawer.cjs.map +1 -1
  455. package/dist/ui/drawer.d.cts +39 -11
  456. package/dist/ui/drawer.d.mts +39 -11
  457. package/dist/ui/drawer.mjs +1 -1
  458. package/dist/ui/drawer.mjs.map +1 -1
  459. package/dist/ui/dropdown-menu.cjs +1 -1
  460. package/dist/ui/dropdown-menu.d.cts +65 -16
  461. package/dist/ui/dropdown-menu.d.mts +65 -16
  462. package/dist/ui/dropdown-menu.mjs +1 -1
  463. package/dist/ui/empty.cjs +1 -1
  464. package/dist/ui/empty.cjs.map +1 -1
  465. package/dist/ui/empty.d.cts +41 -9
  466. package/dist/ui/empty.d.mts +39 -7
  467. package/dist/ui/empty.mjs +1 -1
  468. package/dist/ui/empty.mjs.map +1 -1
  469. package/dist/ui/field.cjs +1 -2
  470. package/dist/ui/field.d.cts +13 -13
  471. package/dist/ui/field.d.mts +22 -22
  472. package/dist/ui/field.mjs +1 -2
  473. package/dist/ui/file-uploader.cjs +2 -2
  474. package/dist/ui/file-uploader.cjs.map +1 -1
  475. package/dist/ui/file-uploader.d.cts +27 -2
  476. package/dist/ui/file-uploader.d.mts +27 -2
  477. package/dist/ui/file-uploader.mjs +2 -2
  478. package/dist/ui/file-uploader.mjs.map +1 -1
  479. package/dist/ui/form.cjs +1 -1
  480. package/dist/ui/form.cjs.map +1 -1
  481. package/dist/ui/form.d.cts +55 -11
  482. package/dist/ui/form.d.mts +55 -11
  483. package/dist/ui/form.mjs +1 -1
  484. package/dist/ui/form.mjs.map +1 -1
  485. package/dist/ui/hover-card.cjs +1 -1
  486. package/dist/ui/hover-card.cjs.map +1 -1
  487. package/dist/ui/hover-card.d.cts +22 -4
  488. package/dist/ui/hover-card.d.mts +22 -4
  489. package/dist/ui/hover-card.mjs +1 -1
  490. package/dist/ui/hover-card.mjs.map +1 -1
  491. package/dist/ui/image.cjs +1 -1
  492. package/dist/ui/image.d.cts +20 -0
  493. package/dist/ui/image.d.mts +20 -0
  494. package/dist/ui/image.mjs +1 -1
  495. package/dist/ui/input-otp.cjs +1 -1
  496. package/dist/ui/input-otp.cjs.map +1 -1
  497. package/dist/ui/input-otp.d.cts +36 -5
  498. package/dist/ui/input-otp.d.mts +36 -5
  499. package/dist/ui/input-otp.mjs +1 -1
  500. package/dist/ui/input-otp.mjs.map +1 -1
  501. package/dist/ui/input.cjs +1 -1
  502. package/dist/ui/input.d.cts +1 -1
  503. package/dist/ui/input.d.mts +1 -1
  504. package/dist/ui/input.mjs +1 -1
  505. package/dist/ui/inputs/search-input.cjs +1 -1
  506. package/dist/ui/inputs/search-input.cjs.map +1 -1
  507. package/dist/ui/inputs/search-input.d.cts +20 -3
  508. package/dist/ui/inputs/search-input.d.mts +20 -3
  509. package/dist/ui/inputs/search-input.mjs +1 -1
  510. package/dist/ui/inputs/search-input.mjs.map +1 -1
  511. package/dist/ui/item.cjs +1 -1
  512. package/dist/ui/item.cjs.map +1 -1
  513. package/dist/ui/item.d.cts +55 -15
  514. package/dist/ui/item.d.mts +55 -15
  515. package/dist/ui/item.mjs +1 -1
  516. package/dist/ui/item.mjs.map +1 -1
  517. package/dist/ui/label.cjs +1 -1
  518. package/dist/ui/label.d.cts +15 -2
  519. package/dist/ui/label.d.mts +15 -2
  520. package/dist/ui/label.mjs +1 -1
  521. package/dist/ui/menubar.cjs +1 -1
  522. package/dist/ui/menubar.cjs.map +1 -1
  523. package/dist/ui/menubar.d.cts +68 -17
  524. package/dist/ui/menubar.d.mts +68 -17
  525. package/dist/ui/menubar.mjs +1 -1
  526. package/dist/ui/menubar.mjs.map +1 -1
  527. package/dist/ui/multi-select.cjs +1 -1
  528. package/dist/ui/multi-select.cjs.map +1 -1
  529. package/dist/ui/multi-select.d.cts +39 -2
  530. package/dist/ui/multi-select.d.mts +40 -3
  531. package/dist/ui/multi-select.mjs +1 -1
  532. package/dist/ui/multi-select.mjs.map +1 -1
  533. package/dist/ui/navigation-menu.cjs +1 -1
  534. package/dist/ui/navigation-menu.cjs.map +1 -1
  535. package/dist/ui/navigation-menu.d.cts +42 -11
  536. package/dist/ui/navigation-menu.d.mts +42 -11
  537. package/dist/ui/navigation-menu.mjs +1 -1
  538. package/dist/ui/navigation-menu.mjs.map +1 -1
  539. package/dist/ui/pagination.cjs +1 -1
  540. package/dist/ui/pagination.cjs.map +1 -1
  541. package/dist/ui/pagination.d.cts +37 -9
  542. package/dist/ui/pagination.d.mts +37 -9
  543. package/dist/ui/pagination.mjs +1 -1
  544. package/dist/ui/pagination.mjs.map +1 -1
  545. package/dist/ui/popover.cjs +1 -1
  546. package/dist/ui/popover.d.cts +32 -6
  547. package/dist/ui/popover.d.mts +32 -6
  548. package/dist/ui/popover.mjs +1 -1
  549. package/dist/ui/progress.cjs +1 -1
  550. package/dist/ui/progress.cjs.map +1 -1
  551. package/dist/ui/progress.d.cts +13 -2
  552. package/dist/ui/progress.d.mts +13 -2
  553. package/dist/ui/progress.mjs +1 -1
  554. package/dist/ui/progress.mjs.map +1 -1
  555. package/dist/ui/radio-group.cjs +1 -1
  556. package/dist/ui/radio-group.d.cts +25 -3
  557. package/dist/ui/radio-group.d.mts +25 -3
  558. package/dist/ui/radio-group.mjs +1 -1
  559. package/dist/ui/resizable.cjs +1 -1
  560. package/dist/ui/resizable.d.cts +29 -9
  561. package/dist/ui/resizable.d.mts +29 -9
  562. package/dist/ui/resizable.mjs +1 -1
  563. package/dist/ui/scroll-area.cjs +1 -1
  564. package/dist/ui/scroll-area.cjs.map +1 -1
  565. package/dist/ui/scroll-area.d.cts +24 -6
  566. package/dist/ui/scroll-area.d.mts +24 -6
  567. package/dist/ui/scroll-area.mjs +1 -1
  568. package/dist/ui/scroll-area.mjs.map +1 -1
  569. package/dist/ui/select.cjs +1 -1
  570. package/dist/ui/select.d.cts +43 -9
  571. package/dist/ui/select.d.mts +43 -9
  572. package/dist/ui/select.mjs +1 -1
  573. package/dist/ui/separator.cjs +1 -1
  574. package/dist/ui/separator.d.cts +23 -2
  575. package/dist/ui/separator.d.mts +23 -2
  576. package/dist/ui/separator.mjs +1 -1
  577. package/dist/ui/sheet.cjs +1 -1
  578. package/dist/ui/sheet.d.cts +38 -9
  579. package/dist/ui/sheet.d.mts +38 -9
  580. package/dist/ui/sheet.mjs +1 -1
  581. package/dist/ui/sidebar.cjs +1 -1
  582. package/dist/ui/sidebar.cjs.map +1 -1
  583. package/dist/ui/sidebar.d.cts +125 -28
  584. package/dist/ui/sidebar.d.mts +125 -28
  585. package/dist/ui/sidebar.mjs +1 -1
  586. package/dist/ui/sidebar.mjs.map +1 -1
  587. package/dist/ui/skeleton.cjs +1 -1
  588. package/dist/ui/skeleton.d.cts +19 -2
  589. package/dist/ui/skeleton.d.mts +19 -2
  590. package/dist/ui/skeleton.mjs +1 -1
  591. package/dist/ui/slider.cjs +1 -1
  592. package/dist/ui/slider.cjs.map +1 -1
  593. package/dist/ui/slider.d.cts +13 -2
  594. package/dist/ui/slider.d.mts +13 -2
  595. package/dist/ui/slider.mjs +1 -1
  596. package/dist/ui/slider.mjs.map +1 -1
  597. package/dist/ui/sonner.cjs +1 -1
  598. package/dist/ui/sonner.cjs.map +1 -1
  599. package/dist/ui/sonner.d.cts +18 -2
  600. package/dist/ui/sonner.d.mts +18 -2
  601. package/dist/ui/sonner.mjs +1 -1
  602. package/dist/ui/sonner.mjs.map +1 -1
  603. package/dist/ui/spinner.cjs +1 -1
  604. package/dist/ui/spinner.d.cts +17 -2
  605. package/dist/ui/spinner.d.mts +17 -2
  606. package/dist/ui/spinner.mjs +1 -1
  607. package/dist/ui/switch.cjs +1 -1
  608. package/dist/ui/switch.cjs.map +1 -1
  609. package/dist/ui/switch.d.cts +17 -2
  610. package/dist/ui/switch.d.mts +17 -2
  611. package/dist/ui/switch.mjs +1 -1
  612. package/dist/ui/switch.mjs.map +1 -1
  613. package/dist/ui/table.cjs +1 -1
  614. package/dist/ui/table.cjs.map +1 -1
  615. package/dist/ui/table.d.cts +53 -18
  616. package/dist/ui/table.d.mts +53 -18
  617. package/dist/ui/table.mjs +1 -1
  618. package/dist/ui/table.mjs.map +1 -1
  619. package/dist/ui/tabs.cjs +1 -1
  620. package/dist/ui/tabs.cjs.map +1 -1
  621. package/dist/ui/tabs.d.cts +26 -5
  622. package/dist/ui/tabs.d.mts +26 -5
  623. package/dist/ui/tabs.mjs +1 -1
  624. package/dist/ui/tabs.mjs.map +1 -1
  625. package/dist/ui/textarea.cjs +1 -1
  626. package/dist/ui/textarea.d.cts +18 -2
  627. package/dist/ui/textarea.d.mts +18 -2
  628. package/dist/ui/textarea.mjs +1 -1
  629. package/dist/ui/toggle-group.cjs +1 -1
  630. package/dist/ui/toggle-group.cjs.map +1 -1
  631. package/dist/ui/toggle-group.d.cts +19 -3
  632. package/dist/ui/toggle-group.d.mts +19 -3
  633. package/dist/ui/toggle-group.mjs +1 -1
  634. package/dist/ui/toggle-group.mjs.map +1 -1
  635. package/dist/ui/toggle.cjs +1 -1
  636. package/dist/ui/toggle.cjs.map +1 -1
  637. package/dist/ui/toggle.d.cts +17 -4
  638. package/dist/ui/toggle.d.mts +17 -4
  639. package/dist/ui/toggle.mjs +1 -1
  640. package/dist/ui/toggle.mjs.map +1 -1
  641. package/dist/ui/tooltip.cjs +1 -1
  642. package/dist/ui/tooltip.d.cts +37 -5
  643. package/dist/ui/tooltip.d.mts +37 -5
  644. package/dist/ui/tooltip.mjs +1 -1
  645. package/dist/user-BEyYLDNK.cjs +2 -0
  646. package/dist/user-BEyYLDNK.cjs.map +1 -0
  647. package/dist/user-DONsffqr.mjs +2 -0
  648. package/dist/user-DONsffqr.mjs.map +1 -0
  649. package/package.json +11 -3
  650. package/styles/theme.css +27 -6
  651. package/dist/avatar-DReNH6rV.mjs +0 -2
  652. package/dist/avatar-DReNH6rV.mjs.map +0 -1
  653. package/dist/avatar-aVxo69zP.cjs +0 -2
  654. package/dist/avatar-aVxo69zP.cjs.map +0 -1
  655. package/dist/badge-B4Fa7-J3.mjs +0 -2
  656. package/dist/badge-B4Fa7-J3.mjs.map +0 -1
  657. package/dist/badge-cvLJyaCA.cjs +0 -2
  658. package/dist/badge-cvLJyaCA.cjs.map +0 -1
  659. package/dist/button-B5a1UlC_.d.mts +0 -59
  660. package/dist/button-Cd7YtPlT.cjs.map +0 -1
  661. package/dist/button-D8BUqpI2.mjs +0 -2
  662. package/dist/button-D8BUqpI2.mjs.map +0 -1
  663. package/dist/button-DYZCqN6A.d.cts +0 -59
  664. package/dist/button.variants-B_dFX3i2.mjs +0 -2
  665. package/dist/button.variants-B_dFX3i2.mjs.map +0 -1
  666. package/dist/button.variants-aqkTmzFu.cjs +0 -2
  667. package/dist/button.variants-aqkTmzFu.cjs.map +0 -1
  668. package/dist/calendar-B-PDpHK5.mjs +0 -2
  669. package/dist/calendar-B-PDpHK5.mjs.map +0 -1
  670. package/dist/calendar-Cq3_5u0k.cjs +0 -2
  671. package/dist/calendar-Cq3_5u0k.cjs.map +0 -1
  672. package/dist/checkbox-Bg2FiuQw.mjs.map +0 -1
  673. package/dist/checkbox-C0fSWwmD.cjs.map +0 -1
  674. package/dist/close-D_Ge7gnP.cjs +0 -2
  675. package/dist/close-DfuHB7kq.mjs +0 -2
  676. package/dist/command-Bma4ivZz.mjs.map +0 -1
  677. package/dist/command-IfPmQiyJ.cjs.map +0 -1
  678. package/dist/data-display/user.cjs.map +0 -1
  679. package/dist/data-display/user.mjs.map +0 -1
  680. package/dist/date-WraHGsbb.cjs +0 -2
  681. package/dist/date-WraHGsbb.cjs.map +0 -1
  682. package/dist/date-uVTm7J09.mjs +0 -2
  683. package/dist/date-uVTm7J09.mjs.map +0 -1
  684. package/dist/dialog-B50k7HnL.mjs +0 -2
  685. package/dist/dialog-B50k7HnL.mjs.map +0 -1
  686. package/dist/dialog-BoNhIQYJ.cjs +0 -2
  687. package/dist/dialog-BoNhIQYJ.cjs.map +0 -1
  688. package/dist/dialog-CuZxUWfc.d.cts +0 -47
  689. package/dist/dialog-D4LnpcNL.d.mts +0 -47
  690. package/dist/dialogs/detail-dialog/components/sidebar.cjs.map +0 -1
  691. package/dist/dialogs/detail-dialog/components/sidebar.mjs.map +0 -1
  692. package/dist/dist-DP1ehOL8.mjs +0 -2
  693. package/dist/dist-Q1UyT_bc.cjs +0 -2
  694. package/dist/dropdown-menu-B8GUTfTp.mjs +0 -2
  695. package/dist/dropdown-menu-B8GUTfTp.mjs.map +0 -1
  696. package/dist/dropdown-menu-BuyuU6uF.cjs +0 -2
  697. package/dist/dropdown-menu-BuyuU6uF.cjs.map +0 -1
  698. package/dist/features/search-modal/index.cjs.map +0 -1
  699. package/dist/features/search-modal/index.mjs.map +0 -1
  700. package/dist/features/tables/index.cjs.map +0 -1
  701. package/dist/features/tables/index.mjs.map +0 -1
  702. package/dist/features/tanstack-form/index.cjs.map +0 -1
  703. package/dist/features/tanstack-form/index.mjs.map +0 -1
  704. package/dist/flex-BsoSgWFN.cjs.map +0 -1
  705. package/dist/flex-CeizYtXs.mjs.map +0 -1
  706. package/dist/heading-BEbpIiLg.cjs +0 -2
  707. package/dist/heading-BEbpIiLg.cjs.map +0 -1
  708. package/dist/heading-CrF1CFWS.mjs +0 -2
  709. package/dist/heading-CrF1CFWS.mjs.map +0 -1
  710. package/dist/image-BBZUipoU.cjs +0 -2
  711. package/dist/image-BBZUipoU.cjs.map +0 -1
  712. package/dist/image-CZji4Q26.mjs +0 -2
  713. package/dist/image-CZji4Q26.mjs.map +0 -1
  714. package/dist/input-BoMJaF_N.cjs.map +0 -1
  715. package/dist/input-DMjPBcJO.mjs.map +0 -1
  716. package/dist/input-DszdZdbJ.d.cts +0 -25
  717. package/dist/input-Dv7UKl6Z.d.mts +0 -25
  718. package/dist/label-BzfsTrVt.cjs.map +0 -1
  719. package/dist/label-Dqr8nxWi.mjs +0 -2
  720. package/dist/label-Dqr8nxWi.mjs.map +0 -1
  721. package/dist/layouts/cms-layout/index.cjs.map +0 -1
  722. package/dist/layouts/cms-layout/index.mjs.map +0 -1
  723. package/dist/layouts/payment-layout/index.cjs.map +0 -1
  724. package/dist/layouts/payment-layout/index.mjs.map +0 -1
  725. package/dist/paragraph-Co2e-y5c.cjs.map +0 -1
  726. package/dist/paragraph-DmiXlAnE.mjs.map +0 -1
  727. package/dist/popover-BckwBuuD.mjs +0 -2
  728. package/dist/popover-BckwBuuD.mjs.map +0 -1
  729. package/dist/popover-DzDrgttC.cjs.map +0 -1
  730. package/dist/radio-group-CBhRsUjN.cjs.map +0 -1
  731. package/dist/radio-group-Cem8O6BK.mjs.map +0 -1
  732. package/dist/resizable-B8tRShQI.cjs.map +0 -1
  733. package/dist/resizable-RPObV6jc.mjs.map +0 -1
  734. package/dist/select-2CgwiefV.cjs.map +0 -1
  735. package/dist/select-CivtMKTM.mjs.map +0 -1
  736. package/dist/separator-Bf0gymN4.mjs +0 -2
  737. package/dist/separator-Bf0gymN4.mjs.map +0 -1
  738. package/dist/separator-C3ip6sbh.cjs.map +0 -1
  739. package/dist/sheet-5MJRtrfG.cjs.map +0 -1
  740. package/dist/sheet-oadGRiie.mjs.map +0 -1
  741. package/dist/skeleton-Ba6koCVf.mjs +0 -2
  742. package/dist/skeleton-Ba6koCVf.mjs.map +0 -1
  743. package/dist/skeleton-CHympz8k.cjs +0 -2
  744. package/dist/skeleton-CHympz8k.cjs.map +0 -1
  745. package/dist/spinner-Chm_2fLr.cjs +0 -2
  746. package/dist/spinner-Chm_2fLr.cjs.map +0 -1
  747. package/dist/spinner-D1v3Bard.mjs +0 -2
  748. package/dist/spinner-D1v3Bard.mjs.map +0 -1
  749. package/dist/textarea-Dlwbg6TY.cjs.map +0 -1
  750. package/dist/textarea-RjL2DtNf.mjs.map +0 -1
  751. package/dist/tooltip-B3dTcgcc.mjs +0 -2
  752. package/dist/tooltip-B3dTcgcc.mjs.map +0 -1
  753. package/dist/tooltip-DC6i1A25.cjs.map +0 -1
  754. package/dist/ui/alert.cjs.map +0 -1
  755. package/dist/ui/alert.mjs.map +0 -1
  756. package/dist/ui/field.cjs.map +0 -1
  757. package/dist/ui/field.mjs.map +0 -1
@@ -0,0 +1,90 @@
1
+ import * as react_jsx_runtime95 from "react/jsx-runtime";
2
+ import { Dialog } from "radix-ui";
3
+
4
+ //#region packages/components/ui/dialog.d.ts
5
+
6
+ /**
7
+ * Accessible modal dialog built on Radix UI's Dialog primitives with animated overlay, close button, and responsive sizing.
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * import {
12
+ * Dialog, DialogTrigger, DialogContent,
13
+ * DialogHeader, DialogTitle, DialogDescription, DialogFooter,
14
+ * } from '@customafk/lunas-ui/ui/dialog';
15
+ * import { Button } from '@customafk/lunas-ui/ui/button';
16
+ *
17
+ * <Dialog>
18
+ * <DialogTrigger asChild>
19
+ * <Button>Open dialog</Button>
20
+ * </DialogTrigger>
21
+ * <DialogContent>
22
+ * <DialogHeader>
23
+ * <DialogTitle>Confirm action</DialogTitle>
24
+ * <DialogDescription>This cannot be undone.</DialogDescription>
25
+ * </DialogHeader>
26
+ * <DialogFooter>
27
+ * <Button variant="outline">Cancel</Button>
28
+ * <Button>Confirm</Button>
29
+ * </DialogFooter>
30
+ * </DialogContent>
31
+ * </Dialog>
32
+ * ```
33
+ */
34
+ declare function Dialog$1({
35
+ ...props
36
+ }: React.ComponentProps<typeof Dialog.Root>): react_jsx_runtime95.JSX.Element;
37
+ /** Element that opens the dialog when clicked; typically wrapped with `asChild` around a `Button`. */
38
+ declare function DialogTrigger({
39
+ ...props
40
+ }: React.ComponentProps<typeof Dialog.Trigger>): react_jsx_runtime95.JSX.Element;
41
+ /** Renders dialog overlay and content into a portal outside the normal React tree. */
42
+ declare function DialogPortal({
43
+ ...props
44
+ }: React.ComponentProps<typeof Dialog.Portal>): react_jsx_runtime95.JSX.Element;
45
+ /** Button that closes the dialog; can be composed with `asChild` to use a custom element. */
46
+ declare function DialogClose({
47
+ ...props
48
+ }: React.ComponentProps<typeof Dialog.Close>): react_jsx_runtime95.JSX.Element;
49
+ /** Semi-transparent backdrop rendered behind the dialog panel with fade-in/out animation. */
50
+ declare function DialogOverlay({
51
+ className,
52
+ ...props
53
+ }: React.ComponentProps<typeof Dialog.Overlay>): react_jsx_runtime95.JSX.Element;
54
+ /**
55
+ * Animated dialog panel centred on screen; includes `DialogOverlay` and an optional close button.
56
+ *
57
+ * @param showCloseButton - When `true` (default), renders a `CloseButton` in the top-right corner.
58
+ */
59
+ declare function DialogContent({
60
+ className,
61
+ children,
62
+ showCloseButton,
63
+ ...props
64
+ }: React.ComponentProps<typeof Dialog.Content> & {
65
+ /** When `true` (default), renders an `×` close button fixed to the top-right corner of the panel. */
66
+ showCloseButton?: boolean;
67
+ }): react_jsx_runtime95.JSX.Element;
68
+ /** Layout wrapper for the dialog title and description, stacked vertically with left alignment on wider screens. */
69
+ declare function DialogHeader({
70
+ className,
71
+ ...props
72
+ }: React.ComponentProps<'div'>): react_jsx_runtime95.JSX.Element;
73
+ /** Layout wrapper for dialog action buttons, stacked on mobile and right-aligned in a row on wider screens. */
74
+ declare function DialogFooter({
75
+ className,
76
+ ...props
77
+ }: React.ComponentProps<'div'>): react_jsx_runtime95.JSX.Element;
78
+ /** Accessible heading for the dialog panel, styled with the h3 heading variant and announced by screen readers. */
79
+ declare function DialogTitle({
80
+ className,
81
+ ...props
82
+ }: React.ComponentProps<typeof Dialog.Title>): react_jsx_runtime95.JSX.Element;
83
+ /** Muted supporting text that describes the dialog's purpose; read by screen readers alongside the title. */
84
+ declare function DialogDescription({
85
+ className,
86
+ ...props
87
+ }: React.ComponentProps<typeof Dialog.Description>): react_jsx_runtime95.JSX.Element;
88
+ //#endregion
89
+ export { DialogFooter as a, DialogPortal as c, DialogDescription as i, DialogTitle as l, DialogClose as n, DialogHeader as o, DialogContent as r, DialogOverlay as s, Dialog$1 as t, DialogTrigger as u };
90
+ //# sourceMappingURL=dialog-CNhwBcEl.d.cts.map
@@ -0,0 +1,90 @@
1
+ import * as react_jsx_runtime104 from "react/jsx-runtime";
2
+ import { Dialog } from "radix-ui";
3
+
4
+ //#region packages/components/ui/dialog.d.ts
5
+
6
+ /**
7
+ * Accessible modal dialog built on Radix UI's Dialog primitives with animated overlay, close button, and responsive sizing.
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * import {
12
+ * Dialog, DialogTrigger, DialogContent,
13
+ * DialogHeader, DialogTitle, DialogDescription, DialogFooter,
14
+ * } from '@customafk/lunas-ui/ui/dialog';
15
+ * import { Button } from '@customafk/lunas-ui/ui/button';
16
+ *
17
+ * <Dialog>
18
+ * <DialogTrigger asChild>
19
+ * <Button>Open dialog</Button>
20
+ * </DialogTrigger>
21
+ * <DialogContent>
22
+ * <DialogHeader>
23
+ * <DialogTitle>Confirm action</DialogTitle>
24
+ * <DialogDescription>This cannot be undone.</DialogDescription>
25
+ * </DialogHeader>
26
+ * <DialogFooter>
27
+ * <Button variant="outline">Cancel</Button>
28
+ * <Button>Confirm</Button>
29
+ * </DialogFooter>
30
+ * </DialogContent>
31
+ * </Dialog>
32
+ * ```
33
+ */
34
+ declare function Dialog$1({
35
+ ...props
36
+ }: React.ComponentProps<typeof Dialog.Root>): react_jsx_runtime104.JSX.Element;
37
+ /** Element that opens the dialog when clicked; typically wrapped with `asChild` around a `Button`. */
38
+ declare function DialogTrigger({
39
+ ...props
40
+ }: React.ComponentProps<typeof Dialog.Trigger>): react_jsx_runtime104.JSX.Element;
41
+ /** Renders dialog overlay and content into a portal outside the normal React tree. */
42
+ declare function DialogPortal({
43
+ ...props
44
+ }: React.ComponentProps<typeof Dialog.Portal>): react_jsx_runtime104.JSX.Element;
45
+ /** Button that closes the dialog; can be composed with `asChild` to use a custom element. */
46
+ declare function DialogClose({
47
+ ...props
48
+ }: React.ComponentProps<typeof Dialog.Close>): react_jsx_runtime104.JSX.Element;
49
+ /** Semi-transparent backdrop rendered behind the dialog panel with fade-in/out animation. */
50
+ declare function DialogOverlay({
51
+ className,
52
+ ...props
53
+ }: React.ComponentProps<typeof Dialog.Overlay>): react_jsx_runtime104.JSX.Element;
54
+ /**
55
+ * Animated dialog panel centred on screen; includes `DialogOverlay` and an optional close button.
56
+ *
57
+ * @param showCloseButton - When `true` (default), renders a `CloseButton` in the top-right corner.
58
+ */
59
+ declare function DialogContent({
60
+ className,
61
+ children,
62
+ showCloseButton,
63
+ ...props
64
+ }: React.ComponentProps<typeof Dialog.Content> & {
65
+ /** When `true` (default), renders an `×` close button fixed to the top-right corner of the panel. */
66
+ showCloseButton?: boolean;
67
+ }): react_jsx_runtime104.JSX.Element;
68
+ /** Layout wrapper for the dialog title and description, stacked vertically with left alignment on wider screens. */
69
+ declare function DialogHeader({
70
+ className,
71
+ ...props
72
+ }: React.ComponentProps<'div'>): react_jsx_runtime104.JSX.Element;
73
+ /** Layout wrapper for dialog action buttons, stacked on mobile and right-aligned in a row on wider screens. */
74
+ declare function DialogFooter({
75
+ className,
76
+ ...props
77
+ }: React.ComponentProps<'div'>): react_jsx_runtime104.JSX.Element;
78
+ /** Accessible heading for the dialog panel, styled with the h3 heading variant and announced by screen readers. */
79
+ declare function DialogTitle({
80
+ className,
81
+ ...props
82
+ }: React.ComponentProps<typeof Dialog.Title>): react_jsx_runtime104.JSX.Element;
83
+ /** Muted supporting text that describes the dialog's purpose; read by screen readers alongside the title. */
84
+ declare function DialogDescription({
85
+ className,
86
+ ...props
87
+ }: React.ComponentProps<typeof Dialog.Description>): react_jsx_runtime104.JSX.Element;
88
+ //#endregion
89
+ export { DialogFooter as a, DialogPortal as c, DialogDescription as i, DialogTitle as l, DialogClose as n, DialogHeader as o, DialogContent as r, DialogOverlay as s, Dialog$1 as t, DialogTrigger as u };
90
+ //# sourceMappingURL=dialog-D6ygAOSV.d.mts.map
@@ -0,0 +1,2 @@
1
+ const e=require(`./chunk-Bmb41Sf3.cjs`),t=require(`./heading-AKz5ewy-.cjs`),n=require(`./paragraph-DN85Huc4.cjs`),r=require(`./close-DXk_H3Gt.cjs`);let i=require(`react/jsx-runtime`),a=require(`@customafk/react-toolkit/utils`),o=require(`radix-ui`);function s({...e}){return(0,i.jsx)(o.Dialog.Root,{"data-slot":`dialog`,...e})}function c({...e}){return(0,i.jsx)(o.Dialog.Trigger,{"data-slot":`dialog-trigger`,...e})}function l({...e}){return(0,i.jsx)(o.Dialog.Portal,{"data-slot":`dialog-portal`,...e})}function u({...e}){return(0,i.jsx)(o.Dialog.Close,{"data-slot":`dialog-close`,...e})}function d({className:e,...t}){return(0,i.jsx)(o.Dialog.Overlay,{"data-slot":`dialog-overlay`,className:(0,a.cn)(`fixed inset-0 z-50 bg-black/50`,`data-[state=open]:animate-in data-[state=open]:fade-in-0`,`data-[state=closed]:animate-out data-[state=closed]:fade-out-0`,e),...t})}function f({className:e,children:t,showCloseButton:n=!0,...s}){return(0,i.jsxs)(l,{children:[(0,i.jsx)(d,{}),(0,i.jsxs)(o.Dialog.Content,{"data-slot":`dialog-content`,className:(0,a.cn)(`fixed top-1/2 left-1/2 z-50 -translate-x-1/2 -translate-y-1/2`,`grid w-full max-w-[calc(100%-2rem)] bg-background`,`max-h-[85dvh] gap-4 rounded-2xl p-6 shadow-dialog outline-none duration-200`,`sm:max-w-lg`,`data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-80`,`data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-80`,e),...s,children:[t,n&&(0,i.jsx)(o.Dialog.Close,{"data-slot":`dialog-close`,tabIndex:-1,asChild:!0,className:`absolute top-3 right-3`,children:(0,i.jsx)(r.t,{})})]})]})}function p({className:e,...t}){return(0,i.jsx)(`div`,{"data-slot":`dialog-header`,className:(0,a.cn)(`flex flex-col gap-2 text-center sm:text-left`,e),...t})}function m({className:e,...t}){return(0,i.jsx)(`div`,{"data-slot":`dialog-footer`,className:(0,a.cn)(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,e),...t})}function h({className:e,...n}){return(0,i.jsx)(o.Dialog.Title,{"data-slot":`dialog-title`,className:(0,a.cn)(t.t({level:`h3`}),e),...n})}function g({className:e,...t}){return(0,i.jsx)(o.Dialog.Description,{"data-slot":`dialog-description`,className:(0,a.cn)(n.n({variant:`muted`}),e),...t})}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return c}});
2
+ //# sourceMappingURL=dialog-o_68LQXd.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog-o_68LQXd.cjs","names":["DialogPrimitive","CloseButton","headingVariants","paragraphVariants"],"sources":["../packages/components/ui/dialog.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Dialog as DialogPrimitive } from 'radix-ui';\nimport { CloseButton } from './buttons/close';\nimport { headingVariants } from '../typography/heading';\nimport { paragraphVariants } from '../typography/paragraph';\n\n/**\n * Accessible modal dialog built on Radix UI's Dialog primitives with animated overlay, close button, and responsive sizing.\n *\n * @example\n * ```tsx\n * import {\n * Dialog, DialogTrigger, DialogContent,\n * DialogHeader, DialogTitle, DialogDescription, DialogFooter,\n * } from '@customafk/lunas-ui/ui/dialog';\n * import { Button } from '@customafk/lunas-ui/ui/button';\n *\n * <Dialog>\n * <DialogTrigger asChild>\n * <Button>Open dialog</Button>\n * </DialogTrigger>\n * <DialogContent>\n * <DialogHeader>\n * <DialogTitle>Confirm action</DialogTitle>\n * <DialogDescription>This cannot be undone.</DialogDescription>\n * </DialogHeader>\n * <DialogFooter>\n * <Button variant=\"outline\">Cancel</Button>\n * <Button>Confirm</Button>\n * </DialogFooter>\n * </DialogContent>\n * </Dialog>\n * ```\n */\nfunction Dialog({ ...props }: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n}\n\n/** Element that opens the dialog when clicked; typically wrapped with `asChild` around a `Button`. */\nfunction DialogTrigger({ ...props }: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\n}\n\n/** Renders dialog overlay and content into a portal outside the normal React tree. */\nfunction DialogPortal({ ...props }: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\n}\n\n/** Button that closes the dialog; can be composed with `asChild` to use a custom element. */\nfunction DialogClose({ ...props }: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\n}\n\n/** Semi-transparent backdrop rendered behind the dialog panel with fade-in/out animation. */\nfunction DialogOverlay({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n 'fixed inset-0 z-50 bg-black/50',\n 'data-[state=open]:animate-in data-[state=open]:fade-in-0',\n 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0',\n className\n )}\n {...props}\n />\n );\n}\n\n/**\n * Animated dialog panel centred on screen; includes `DialogOverlay` and an optional close button.\n *\n * @param showCloseButton - When `true` (default), renders a `CloseButton` in the top-right corner.\n */\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n /** When `true` (default), renders an `×` close button fixed to the top-right corner of the panel. */\n showCloseButton?: boolean;\n}) {\n return (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n 'fixed top-1/2 left-1/2 z-50 -translate-x-1/2 -translate-y-1/2',\n 'grid w-full max-w-[calc(100%-2rem)] bg-background',\n 'max-h-[85dvh] gap-4 rounded-2xl p-6 shadow-dialog outline-none duration-200',\n 'sm:max-w-lg',\n 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-80',\n 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-80',\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close data-slot=\"dialog-close\" tabIndex={-1} asChild className=\"absolute top-3 right-3\">\n <CloseButton />\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n}\n\n/** Layout wrapper for the dialog title and description, stacked vertically with left alignment on wider screens. */\nfunction DialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"dialog-header\" className={cn('flex flex-col gap-2 text-center sm:text-left', className)} {...props} />;\n}\n\n/** Layout wrapper for dialog action buttons, stacked on mobile and right-aligned in a row on wider screens. */\nfunction DialogFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"dialog-footer\" className={cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', className)} {...props} />;\n}\n\n/** Accessible heading for the dialog panel, styled with the h3 heading variant and announced by screen readers. */\nfunction DialogTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return <DialogPrimitive.Title data-slot=\"dialog-title\" className={cn(headingVariants({ level: 'h3' }), className)} {...props} />;\n}\n\n/** Muted supporting text that describes the dialog's purpose; read by screen readers alongside the title. */\nfunction DialogDescription({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return <DialogPrimitive.Description data-slot=\"dialog-description\" className={cn(paragraphVariants({ variant: 'muted' }), className)} {...props} />;\n}\n\nexport { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };\n"],"mappings":"yPAqCA,SAAS,EAAO,CAAE,GAAG,GAA4D,CAC/E,OAAO,EAAA,EAAA,KAACA,EAAAA,OAAgB,KAAA,CAAK,YAAU,SAAS,GAAI,GAAS,CAI/D,SAAS,EAAc,CAAE,GAAG,GAA+D,CACzF,OAAO,EAAA,EAAA,KAACA,EAAAA,OAAgB,QAAA,CAAQ,YAAU,iBAAiB,GAAI,GAAS,CAI1E,SAAS,EAAa,CAAE,GAAG,GAA8D,CACvF,OAAO,EAAA,EAAA,KAACA,EAAAA,OAAgB,OAAA,CAAO,YAAU,gBAAgB,GAAI,GAAS,CAIxE,SAAS,EAAY,CAAE,GAAG,GAA6D,CACrF,OAAO,EAAA,EAAA,KAACA,EAAAA,OAAgB,MAAA,CAAM,YAAU,eAAe,GAAI,GAAS,CAItE,SAAS,EAAc,CAAE,YAAW,GAAG,GAA+D,CACpG,OACE,EAAA,EAAA,KAACA,EAAAA,OAAgB,QAAA,CACf,YAAU,iBACV,WAAA,EAAA,EAAA,IACE,iCACA,2DACA,iEACA,EACD,CACD,GAAI,GACJ,CASN,SAAS,EAAc,CACrB,YACA,WACA,kBAAkB,GAClB,GAAG,GAIF,CACD,OACE,EAAA,EAAA,MAAC,EAAA,CAAA,SAAA,EACC,EAAA,EAAA,KAAC,EAAA,EAAA,CAAgB,EACjB,EAAA,EAAA,MAACA,EAAAA,OAAgB,QAAA,CACf,YAAU,iBACV,WAAA,EAAA,EAAA,IACE,gEACA,oDACA,8EACA,cACA,wFACA,iGACA,EACD,CACD,GAAI,YAEH,EACA,IACC,EAAA,EAAA,KAACA,EAAAA,OAAgB,MAAA,CAAM,YAAU,eAAe,SAAU,GAAI,QAAA,GAAQ,UAAU,mCAC9E,EAAA,EAAA,KAACC,EAAAA,EAAAA,EAAAA,CAAc,EACO,CAAA,EAEF,CAAA,CAAA,CACb,CAKnB,SAAS,EAAa,CAAE,YAAW,GAAG,GAAsC,CAC1E,OAAO,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,gBAAgB,WAAA,EAAA,EAAA,IAAc,+CAAgD,EAAU,CAAE,GAAI,GAAS,CAI/H,SAAS,EAAa,CAAE,YAAW,GAAG,GAAsC,CAC1E,OAAO,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,gBAAgB,WAAA,EAAA,EAAA,IAAc,yDAA0D,EAAU,CAAE,GAAI,GAAS,CAIzI,SAAS,EAAY,CAAE,YAAW,GAAG,GAA6D,CAChG,OAAO,EAAA,EAAA,KAACD,EAAAA,OAAgB,MAAA,CAAM,YAAU,eAAe,WAAA,EAAA,EAAA,IAAcE,EAAAA,EAAgB,CAAE,MAAO,KAAM,CAAC,CAAE,EAAU,CAAE,GAAI,GAAS,CAIlI,SAAS,EAAkB,CAAE,YAAW,GAAG,GAAmE,CAC5G,OAAO,EAAA,EAAA,KAACF,EAAAA,OAAgB,YAAA,CAAY,YAAU,qBAAqB,WAAA,EAAA,EAAA,IAAcG,EAAAA,EAAkB,CAAE,QAAS,QAAS,CAAC,CAAE,EAAU,CAAE,GAAI,GAAS"}
@@ -1,2 +1,2 @@
1
- const e=require(`../chunk-Bmb41Sf3.cjs`);require(`../heading-BEbpIiLg.cjs`),require(`../paragraph-Co2e-y5c.cjs`),require(`../button.variants-aqkTmzFu.cjs`);const t=require(`../ui/alert-dialog.cjs`);let n=require(`react/jsx-runtime`),r=require(`lucide-react`);const i=({open:e,isLoading:i=!1,title:a,description:o,cancelText:s,submitText:c,descriptionClassName:l,onOpenChange:u,onConfirm:d})=>(0,n.jsx)(t.AlertDialog,{open:e,onOpenChange:u,children:(0,n.jsxs)(t.AlertDialogContent,{className:`p-4 pb-5`,children:[(0,n.jsxs)(t.AlertDialogHeader,{className:`gap-2`,children:[(0,n.jsxs)(t.AlertDialogTitle,{className:`inline-flex items-center gap-x-1`,children:[(0,n.jsx)(r.TriangleAlert,{size:20}),(0,n.jsx)(`p`,{children:a})]}),(0,n.jsx)(t.AlertDialogDescription,{className:l,children:o})]}),(0,n.jsxs)(t.AlertDialogFooter,{children:[(0,n.jsx)(t.AlertDialogCancel,{children:s||`Cancel`}),(0,n.jsx)(t.AlertDialogAction,{type:`button`,className:`min-h-9 w-full md:w-24`,onClick:e=>{d?.(),e.preventDefault(),e.stopPropagation()},children:i?(0,n.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:(0,n.jsx)(`div`,{className:`loader-spinner text-muted-foreground`})}):c||`Confirm`})]})]})});exports.ConfirmDialog=i;
1
+ "use client";const e=require(`../chunk-Bmb41Sf3.cjs`);require(`../button.variants-tnhb123u.cjs`),require(`../heading-AKz5ewy-.cjs`),require(`../paragraph-DN85Huc4.cjs`);const t=require(`../ui/alert-dialog.cjs`);let n=require(`lucide-react`),r=require(`react`),i=require(`react/jsx-runtime`);const a=({open:e,isLoading:a=!1,title:o,description:s,cancelText:c=`Cancel`,submitText:l=`Confirm`,descriptionClassName:u,onOpenChange:d,onConfirm:f})=>{let p=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),f?.()},[f]);return(0,i.jsx)(t.AlertDialog,{open:e,onOpenChange:d,children:(0,i.jsxs)(t.AlertDialogContent,{className:`p-4 pb-5`,children:[(0,i.jsxs)(t.AlertDialogHeader,{className:`gap-2`,children:[(0,i.jsxs)(t.AlertDialogTitle,{className:`inline-flex items-center gap-x-1`,children:[(0,i.jsx)(n.TriangleAlert,{size:20}),(0,i.jsx)(`p`,{children:o})]}),(0,i.jsx)(t.AlertDialogDescription,{className:u,children:s})]}),(0,i.jsxs)(t.AlertDialogFooter,{children:[(0,i.jsx)(t.AlertDialogCancel,{children:c}),(0,i.jsx)(t.AlertDialogAction,{type:`button`,className:`min-h-9 w-full md:w-24`,onClick:p,children:a?(0,i.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:(0,i.jsx)(`div`,{className:`loader-spinner text-text-positive-weak`})}):l})]})]})})};exports.ConfirmDialog=a;
2
2
  //# sourceMappingURL=confirm-dialog.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"confirm-dialog.cjs","names":["ConfirmDialog: React.FC<React.PropsWithChildren<Props>>","AlertDialog","AlertDialogContent","AlertDialogHeader","AlertDialogTitle","TriangleAlert","AlertDialogDescription","AlertDialogFooter","AlertDialogCancel","AlertDialogAction"],"sources":["../../packages/components/dialogs/confirm-dialog.tsx"],"sourcesContent":["import { TriangleAlert } from 'lucide-react';\n\nimport {\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 cancelText?: string;\n submitText?: string;\n descriptionClassName?: string;\n onOpenChange?: (open: boolean) => void;\n onConfirm?: () => Promise<void> | void;\n};\n\nexport const ConfirmDialog: React.FC<React.PropsWithChildren<Props>> = ({\n open,\n isLoading = false,\n title,\n description,\n cancelText,\n submitText,\n descriptionClassName,\n onOpenChange,\n onConfirm,\n}) => {\n return (\n <AlertDialog open={open} onOpenChange={onOpenChange}>\n <AlertDialogContent className=\"p-4 pb-5\">\n <AlertDialogHeader className=\"gap-2\">\n <AlertDialogTitle className=\"inline-flex items-center gap-x-1\">\n <TriangleAlert size={20} />\n <p>{title}</p>\n </AlertDialogTitle>\n <AlertDialogDescription className={descriptionClassName}>{description}</AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel>{cancelText || 'Cancel'}</AlertDialogCancel>\n <AlertDialogAction\n type=\"button\"\n className=\"min-h-9 w-full md:w-24\"\n onClick={e => {\n onConfirm?.();\n e.preventDefault();\n e.stopPropagation();\n }}\n >\n {!isLoading ? (\n submitText || '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":"mQAyBA,MAAaA,GAA2D,CACtE,OACA,YAAY,GACZ,QACA,cACA,aACA,aACA,uBACA,eACA,gBAGE,EAAA,EAAA,KAACC,EAAAA,YAAAA,CAAkB,OAAoB,yBACrC,EAAA,EAAA,MAACC,EAAAA,mBAAAA,CAAmB,UAAU,sBAC5B,EAAA,EAAA,MAACC,EAAAA,kBAAAA,CAAkB,UAAU,mBAC3B,EAAA,EAAA,MAACC,EAAAA,iBAAAA,CAAiB,UAAU,8CAC1B,EAAA,EAAA,KAACC,EAAAA,cAAAA,CAAc,KAAM,GAAA,CAAM,EAC3B,EAAA,EAAA,KAAC,IAAA,CAAA,SAAG,EAAA,CAAU,CAAA,EACG,EACnB,EAAA,EAAA,KAACC,EAAAA,uBAAAA,CAAuB,UAAW,WAAuB,GAAqC,CAAA,EAC7E,EACpB,EAAA,EAAA,MAACC,EAAAA,kBAAAA,CAAAA,SAAAA,EACC,EAAA,EAAA,KAACC,EAAAA,kBAAAA,CAAAA,SAAmB,GAAc,SAAA,CAA6B,EAC/D,EAAA,EAAA,KAACC,EAAAA,kBAAAA,CACC,KAAK,SACL,UAAU,yBACV,QAAS,GAAK,CACZ,KAAa,CACb,EAAE,gBAAgB,CAClB,EAAE,iBAAiB,WAGnB,GAGA,EAAA,EAAA,KAAC,MAAA,CAAI,UAAU,8DACb,EAAA,EAAA,KAAC,MAAA,CAAI,UAAU,uCAAA,CAAyC,EACpD,CAJN,GAAc,WAME,CAAA,CAAA,CACF,CAAA,EACD,EACT"}
1
+ {"version":3,"file":"confirm-dialog.cjs","names":["ConfirmDialog: React.FC<ConfirmDialogProps>","AlertDialog","AlertDialogContent","AlertDialogHeader","AlertDialogTitle","TriangleAlert","AlertDialogDescription","AlertDialogFooter","AlertDialogCancel","AlertDialogAction"],"sources":["../../packages/components/dialogs/confirm-dialog.tsx"],"sourcesContent":["'use client';\n\nimport { useCallback } from 'react';\nimport { TriangleAlert } from 'lucide-react';\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n} from '../ui/alert-dialog';\n\n/**\n * Props for the {@link ConfirmDialog} component.\n */\nexport type ConfirmDialogProps = {\n /**\n * Controls whether the dialog is currently open.\n * This is a **controlled** prop — pair it with `onOpenChange` to manage state.\n */\n open?: boolean;\n\n /**\n * When `true`, shows an animated spinner inside the confirm button and\n * prevents double-submission. Typically bound to a mutation's pending state.\n *\n * @default false\n */\n isLoading?: boolean;\n\n /**\n * The dialog heading text. Keep it short and action-oriented,\n * e.g. `\"Delete user?\"` or `\"Unsaved changes\"`.\n */\n title: string;\n\n /**\n * Body copy explaining what will happen if the user confirms.\n * For irreversible actions, state explicitly that the action cannot be undone.\n */\n description: string;\n\n /**\n * Label for the cancel / dismiss button.\n *\n * @default \"Cancel\"\n */\n cancelText?: string;\n\n /**\n * Label for the confirm / submit button.\n *\n * @default \"Confirm\"\n */\n submitText?: string;\n\n /**\n * Additional class names applied to the `AlertDialogDescription` element.\n * Useful for overriding text color or font size for specific contexts.\n */\n descriptionClassName?: string;\n\n /**\n * Callback fired when the dialog open state changes.\n * Required to implement controlled open / close behavior.\n *\n * @param open - `true` when opening, `false` when closing.\n */\n onOpenChange?: (open: boolean) => void;\n\n /**\n * Async-safe callback fired when the user clicks the confirm button.\n * Supports both synchronous and `Promise`-returning functions.\n *\n * The dialog does **not** auto-close after `onConfirm` resolves — the caller\n * is responsible for setting `open` to `false` once the operation completes.\n *\n * @example\n * ```tsx\n * onConfirm={async () => {\n * await deleteUser(userId);\n * setOpen(false);\n * }}\n * ```\n */\n onConfirm?: () => Promise<void> | void;\n};\n\n/**\n * A controlled confirmation dialog for destructive or irreversible actions.\n *\n * Built on Radix UI's `AlertDialog` primitive. Renders a warning icon, title,\n * description, and Cancel / Confirm buttons. The confirm button supports an\n * async loading state to prevent double-submission.\n *\n * **Import:** `import { ConfirmDialog } from '@customafk/lunas-ui/dialogs/confirm-dialog'`\n *\n * @example Delete confirmation with React state\n * ```tsx\n * import { useState } from 'react';\n * import { Button } from '@customafk/lunas-ui/ui/button';\n * import { ConfirmDialog } from '@customafk/lunas-ui/dialogs/confirm-dialog';\n *\n * export function DeleteUserButton({ userId }: { userId: string }) {\n * const [open, setOpen] = useState(false);\n * const [isPending, setIsPending] = useState(false);\n *\n * const handleDelete = async () => {\n * setIsPending(true);\n * try {\n * await deleteUser(userId);\n * setOpen(false);\n * } finally {\n * setIsPending(false);\n * }\n * };\n *\n * return (\n * <>\n * <Button variant=\"outline\" color=\"danger\" onClick={() => setOpen(true)}>\n * Delete user\n * </Button>\n * <ConfirmDialog\n * open={open}\n * title=\"Delete user?\"\n * description=\"This action is permanent and cannot be undone.\"\n * submitText=\"Yes, delete\"\n * isLoading={isPending}\n * onOpenChange={setOpen}\n * onConfirm={handleDelete}\n * />\n * </>\n * );\n * }\n * ```\n *\n * @example With TanStack Query mutation\n * ```tsx\n * import { ConfirmDialog } from '@customafk/lunas-ui/dialogs/confirm-dialog';\n * import { useMutation } from '@tanstack/react-query';\n *\n * export function ArchiveDialog({ open, onOpenChange, id }: Props) {\n * const { mutateAsync, isPending } = useMutation({ mutationFn: archiveItem });\n *\n * return (\n * <ConfirmDialog\n * open={open}\n * title=\"Archive item?\"\n * description=\"The item will be hidden but can be restored later.\"\n * submitText=\"Archive\"\n * isLoading={isPending}\n * onOpenChange={onOpenChange}\n * onConfirm={() => mutateAsync(id).then(() => onOpenChange(false))}\n * />\n * );\n * }\n * ```\n */\nexport const ConfirmDialog: React.FC<ConfirmDialogProps> = ({\n open,\n isLoading = false,\n title,\n description,\n cancelText = 'Cancel',\n submitText = 'Confirm',\n descriptionClassName,\n onOpenChange,\n onConfirm,\n}) => {\n const handleConfirm = useCallback(\n (e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n onConfirm?.();\n },\n [onConfirm]\n );\n\n return (\n <AlertDialog open={open} onOpenChange={onOpenChange}>\n <AlertDialogContent className=\"p-4 pb-5\">\n <AlertDialogHeader className=\"gap-2\">\n <AlertDialogTitle className=\"inline-flex items-center gap-x-1\">\n <TriangleAlert size={20} />\n <p>{title}</p>\n </AlertDialogTitle>\n <AlertDialogDescription className={descriptionClassName}>{description}</AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel>{cancelText}</AlertDialogCancel>\n <AlertDialogAction type=\"button\" className=\"min-h-9 w-full md:w-24\" onClick={handleConfirm}>\n {isLoading ? (\n <div className=\"absolute inset-0 flex items-center justify-center\">\n <div className=\"loader-spinner text-text-positive-weak\" />\n </div>\n ) : (\n submitText\n )}\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n );\n};\n"],"mappings":"mSAiKA,MAAaA,GAA+C,CAC1D,OACA,YAAY,GACZ,QACA,cACA,aAAa,SACb,aAAa,UACb,uBACA,eACA,eACI,CACJ,IAAM,GAAA,EAAA,EAAA,aACH,GAAwB,CACvB,EAAE,gBAAgB,CAClB,EAAE,iBAAiB,CACnB,KAAa,EAEf,CAAC,EAAU,CACZ,CAED,OACE,EAAA,EAAA,KAACC,EAAAA,YAAAA,CAAkB,OAAoB,yBACrC,EAAA,EAAA,MAACC,EAAAA,mBAAAA,CAAmB,UAAU,sBAC5B,EAAA,EAAA,MAACC,EAAAA,kBAAAA,CAAkB,UAAU,mBAC3B,EAAA,EAAA,MAACC,EAAAA,iBAAAA,CAAiB,UAAU,8CAC1B,EAAA,EAAA,KAACC,EAAAA,cAAAA,CAAc,KAAM,GAAA,CAAM,EAC3B,EAAA,EAAA,KAAC,IAAA,CAAA,SAAG,EAAA,CAAU,CAAA,EACG,EACnB,EAAA,EAAA,KAACC,EAAAA,uBAAAA,CAAuB,UAAW,WAAuB,GAAqC,CAAA,EAC7E,EACpB,EAAA,EAAA,MAACC,EAAAA,kBAAAA,CAAAA,SAAAA,EACC,EAAA,EAAA,KAACC,EAAAA,kBAAAA,CAAAA,SAAmB,EAAA,CAA+B,EACnD,EAAA,EAAA,KAACC,EAAAA,kBAAAA,CAAkB,KAAK,SAAS,UAAU,yBAAyB,QAAS,WAC1E,GACC,EAAA,EAAA,KAAC,MAAA,CAAI,UAAU,8DACb,EAAA,EAAA,KAAC,MAAA,CAAI,UAAU,yCAAA,CAA2C,EACtD,CAEN,GAEgB,CAAA,CAAA,CACF,CAAA,EACD,EACT"}
@@ -1,16 +1,142 @@
1
1
  //#region packages/components/dialogs/confirm-dialog.d.ts
2
- type Props = {
2
+ /**
3
+ * Props for the {@link ConfirmDialog} component.
4
+ */
5
+ type ConfirmDialogProps = {
6
+ /**
7
+ * Controls whether the dialog is currently open.
8
+ * This is a **controlled** prop — pair it with `onOpenChange` to manage state.
9
+ */
3
10
  open?: boolean;
11
+ /**
12
+ * When `true`, shows an animated spinner inside the confirm button and
13
+ * prevents double-submission. Typically bound to a mutation's pending state.
14
+ *
15
+ * @default false
16
+ */
4
17
  isLoading?: boolean;
18
+ /**
19
+ * The dialog heading text. Keep it short and action-oriented,
20
+ * e.g. `"Delete user?"` or `"Unsaved changes"`.
21
+ */
5
22
  title: string;
23
+ /**
24
+ * Body copy explaining what will happen if the user confirms.
25
+ * For irreversible actions, state explicitly that the action cannot be undone.
26
+ */
6
27
  description: string;
28
+ /**
29
+ * Label for the cancel / dismiss button.
30
+ *
31
+ * @default "Cancel"
32
+ */
7
33
  cancelText?: string;
34
+ /**
35
+ * Label for the confirm / submit button.
36
+ *
37
+ * @default "Confirm"
38
+ */
8
39
  submitText?: string;
40
+ /**
41
+ * Additional class names applied to the `AlertDialogDescription` element.
42
+ * Useful for overriding text color or font size for specific contexts.
43
+ */
9
44
  descriptionClassName?: string;
45
+ /**
46
+ * Callback fired when the dialog open state changes.
47
+ * Required to implement controlled open / close behavior.
48
+ *
49
+ * @param open - `true` when opening, `false` when closing.
50
+ */
10
51
  onOpenChange?: (open: boolean) => void;
52
+ /**
53
+ * Async-safe callback fired when the user clicks the confirm button.
54
+ * Supports both synchronous and `Promise`-returning functions.
55
+ *
56
+ * The dialog does **not** auto-close after `onConfirm` resolves — the caller
57
+ * is responsible for setting `open` to `false` once the operation completes.
58
+ *
59
+ * @example
60
+ * ```tsx
61
+ * onConfirm={async () => {
62
+ * await deleteUser(userId);
63
+ * setOpen(false);
64
+ * }}
65
+ * ```
66
+ */
11
67
  onConfirm?: () => Promise<void> | void;
12
68
  };
13
- declare const ConfirmDialog: React.FC<React.PropsWithChildren<Props>>;
69
+ /**
70
+ * A controlled confirmation dialog for destructive or irreversible actions.
71
+ *
72
+ * Built on Radix UI's `AlertDialog` primitive. Renders a warning icon, title,
73
+ * description, and Cancel / Confirm buttons. The confirm button supports an
74
+ * async loading state to prevent double-submission.
75
+ *
76
+ * **Import:** `import { ConfirmDialog } from '@customafk/lunas-ui/dialogs/confirm-dialog'`
77
+ *
78
+ * @example Delete confirmation with React state
79
+ * ```tsx
80
+ * import { useState } from 'react';
81
+ * import { Button } from '@customafk/lunas-ui/ui/button';
82
+ * import { ConfirmDialog } from '@customafk/lunas-ui/dialogs/confirm-dialog';
83
+ *
84
+ * export function DeleteUserButton({ userId }: { userId: string }) {
85
+ * const [open, setOpen] = useState(false);
86
+ * const [isPending, setIsPending] = useState(false);
87
+ *
88
+ * const handleDelete = async () => {
89
+ * setIsPending(true);
90
+ * try {
91
+ * await deleteUser(userId);
92
+ * setOpen(false);
93
+ * } finally {
94
+ * setIsPending(false);
95
+ * }
96
+ * };
97
+ *
98
+ * return (
99
+ * <>
100
+ * <Button variant="outline" color="danger" onClick={() => setOpen(true)}>
101
+ * Delete user
102
+ * </Button>
103
+ * <ConfirmDialog
104
+ * open={open}
105
+ * title="Delete user?"
106
+ * description="This action is permanent and cannot be undone."
107
+ * submitText="Yes, delete"
108
+ * isLoading={isPending}
109
+ * onOpenChange={setOpen}
110
+ * onConfirm={handleDelete}
111
+ * />
112
+ * </>
113
+ * );
114
+ * }
115
+ * ```
116
+ *
117
+ * @example With TanStack Query mutation
118
+ * ```tsx
119
+ * import { ConfirmDialog } from '@customafk/lunas-ui/dialogs/confirm-dialog';
120
+ * import { useMutation } from '@tanstack/react-query';
121
+ *
122
+ * export function ArchiveDialog({ open, onOpenChange, id }: Props) {
123
+ * const { mutateAsync, isPending } = useMutation({ mutationFn: archiveItem });
124
+ *
125
+ * return (
126
+ * <ConfirmDialog
127
+ * open={open}
128
+ * title="Archive item?"
129
+ * description="The item will be hidden but can be restored later."
130
+ * submitText="Archive"
131
+ * isLoading={isPending}
132
+ * onOpenChange={onOpenChange}
133
+ * onConfirm={() => mutateAsync(id).then(() => onOpenChange(false))}
134
+ * />
135
+ * );
136
+ * }
137
+ * ```
138
+ */
139
+ declare const ConfirmDialog: React.FC<ConfirmDialogProps>;
14
140
  //#endregion
15
- export { ConfirmDialog };
141
+ export { ConfirmDialog, ConfirmDialogProps };
16
142
  //# sourceMappingURL=confirm-dialog.d.cts.map
@@ -1,16 +1,142 @@
1
1
  //#region packages/components/dialogs/confirm-dialog.d.ts
2
- type Props = {
2
+ /**
3
+ * Props for the {@link ConfirmDialog} component.
4
+ */
5
+ type ConfirmDialogProps = {
6
+ /**
7
+ * Controls whether the dialog is currently open.
8
+ * This is a **controlled** prop — pair it with `onOpenChange` to manage state.
9
+ */
3
10
  open?: boolean;
11
+ /**
12
+ * When `true`, shows an animated spinner inside the confirm button and
13
+ * prevents double-submission. Typically bound to a mutation's pending state.
14
+ *
15
+ * @default false
16
+ */
4
17
  isLoading?: boolean;
18
+ /**
19
+ * The dialog heading text. Keep it short and action-oriented,
20
+ * e.g. `"Delete user?"` or `"Unsaved changes"`.
21
+ */
5
22
  title: string;
23
+ /**
24
+ * Body copy explaining what will happen if the user confirms.
25
+ * For irreversible actions, state explicitly that the action cannot be undone.
26
+ */
6
27
  description: string;
28
+ /**
29
+ * Label for the cancel / dismiss button.
30
+ *
31
+ * @default "Cancel"
32
+ */
7
33
  cancelText?: string;
34
+ /**
35
+ * Label for the confirm / submit button.
36
+ *
37
+ * @default "Confirm"
38
+ */
8
39
  submitText?: string;
40
+ /**
41
+ * Additional class names applied to the `AlertDialogDescription` element.
42
+ * Useful for overriding text color or font size for specific contexts.
43
+ */
9
44
  descriptionClassName?: string;
45
+ /**
46
+ * Callback fired when the dialog open state changes.
47
+ * Required to implement controlled open / close behavior.
48
+ *
49
+ * @param open - `true` when opening, `false` when closing.
50
+ */
10
51
  onOpenChange?: (open: boolean) => void;
52
+ /**
53
+ * Async-safe callback fired when the user clicks the confirm button.
54
+ * Supports both synchronous and `Promise`-returning functions.
55
+ *
56
+ * The dialog does **not** auto-close after `onConfirm` resolves — the caller
57
+ * is responsible for setting `open` to `false` once the operation completes.
58
+ *
59
+ * @example
60
+ * ```tsx
61
+ * onConfirm={async () => {
62
+ * await deleteUser(userId);
63
+ * setOpen(false);
64
+ * }}
65
+ * ```
66
+ */
11
67
  onConfirm?: () => Promise<void> | void;
12
68
  };
13
- declare const ConfirmDialog: React.FC<React.PropsWithChildren<Props>>;
69
+ /**
70
+ * A controlled confirmation dialog for destructive or irreversible actions.
71
+ *
72
+ * Built on Radix UI's `AlertDialog` primitive. Renders a warning icon, title,
73
+ * description, and Cancel / Confirm buttons. The confirm button supports an
74
+ * async loading state to prevent double-submission.
75
+ *
76
+ * **Import:** `import { ConfirmDialog } from '@customafk/lunas-ui/dialogs/confirm-dialog'`
77
+ *
78
+ * @example Delete confirmation with React state
79
+ * ```tsx
80
+ * import { useState } from 'react';
81
+ * import { Button } from '@customafk/lunas-ui/ui/button';
82
+ * import { ConfirmDialog } from '@customafk/lunas-ui/dialogs/confirm-dialog';
83
+ *
84
+ * export function DeleteUserButton({ userId }: { userId: string }) {
85
+ * const [open, setOpen] = useState(false);
86
+ * const [isPending, setIsPending] = useState(false);
87
+ *
88
+ * const handleDelete = async () => {
89
+ * setIsPending(true);
90
+ * try {
91
+ * await deleteUser(userId);
92
+ * setOpen(false);
93
+ * } finally {
94
+ * setIsPending(false);
95
+ * }
96
+ * };
97
+ *
98
+ * return (
99
+ * <>
100
+ * <Button variant="outline" color="danger" onClick={() => setOpen(true)}>
101
+ * Delete user
102
+ * </Button>
103
+ * <ConfirmDialog
104
+ * open={open}
105
+ * title="Delete user?"
106
+ * description="This action is permanent and cannot be undone."
107
+ * submitText="Yes, delete"
108
+ * isLoading={isPending}
109
+ * onOpenChange={setOpen}
110
+ * onConfirm={handleDelete}
111
+ * />
112
+ * </>
113
+ * );
114
+ * }
115
+ * ```
116
+ *
117
+ * @example With TanStack Query mutation
118
+ * ```tsx
119
+ * import { ConfirmDialog } from '@customafk/lunas-ui/dialogs/confirm-dialog';
120
+ * import { useMutation } from '@tanstack/react-query';
121
+ *
122
+ * export function ArchiveDialog({ open, onOpenChange, id }: Props) {
123
+ * const { mutateAsync, isPending } = useMutation({ mutationFn: archiveItem });
124
+ *
125
+ * return (
126
+ * <ConfirmDialog
127
+ * open={open}
128
+ * title="Archive item?"
129
+ * description="The item will be hidden but can be restored later."
130
+ * submitText="Archive"
131
+ * isLoading={isPending}
132
+ * onOpenChange={onOpenChange}
133
+ * onConfirm={() => mutateAsync(id).then(() => onOpenChange(false))}
134
+ * />
135
+ * );
136
+ * }
137
+ * ```
138
+ */
139
+ declare const ConfirmDialog: React.FC<ConfirmDialogProps>;
14
140
  //#endregion
15
- export { ConfirmDialog };
141
+ export { ConfirmDialog, ConfirmDialogProps };
16
142
  //# sourceMappingURL=confirm-dialog.d.mts.map
@@ -1,2 +1,2 @@
1
- import"../heading-CrF1CFWS.mjs";import"../paragraph-DmiXlAnE.mjs";import"../button.variants-B_dFX3i2.mjs";import{AlertDialog as e,AlertDialogAction as t,AlertDialogCancel as n,AlertDialogContent as r,AlertDialogDescription as i,AlertDialogFooter as a,AlertDialogHeader as o,AlertDialogTitle as s}from"../ui/alert-dialog.mjs";import{jsx as c,jsxs as l}from"react/jsx-runtime";import{TriangleAlert as u}from"lucide-react";const d=({open:d,isLoading:f=!1,title:p,description:m,cancelText:h,submitText:g,descriptionClassName:_,onOpenChange:v,onConfirm:y})=>c(e,{open:d,onOpenChange:v,children:l(r,{className:`p-4 pb-5`,children:[l(o,{className:`gap-2`,children:[l(s,{className:`inline-flex items-center gap-x-1`,children:[c(u,{size:20}),c(`p`,{children:p})]}),c(i,{className:_,children:m})]}),l(a,{children:[c(n,{children:h||`Cancel`}),c(t,{type:`button`,className:`min-h-9 w-full md:w-24`,onClick:e=>{y?.(),e.preventDefault(),e.stopPropagation()},children:f?c(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:c(`div`,{className:`loader-spinner text-muted-foreground`})}):g||`Confirm`})]})]})});export{d as ConfirmDialog};
1
+ "use client";import"../button.variants-DeCyas1F.mjs";import"../heading-DN67djxs.mjs";import"../paragraph-Ch5TvEqL.mjs";import{AlertDialog as e,AlertDialogAction as t,AlertDialogCancel as n,AlertDialogContent as r,AlertDialogDescription as i,AlertDialogFooter as a,AlertDialogHeader as o,AlertDialogTitle as s}from"../ui/alert-dialog.mjs";import{TriangleAlert as c}from"lucide-react";import{useCallback as l}from"react";import{jsx as u,jsxs as d}from"react/jsx-runtime";const f=({open:f,isLoading:p=!1,title:m,description:h,cancelText:g=`Cancel`,submitText:_=`Confirm`,descriptionClassName:v,onOpenChange:y,onConfirm:b})=>{let x=l(e=>{e.preventDefault(),e.stopPropagation(),b?.()},[b]);return u(e,{open:f,onOpenChange:y,children:d(r,{className:`p-4 pb-5`,children:[d(o,{className:`gap-2`,children:[d(s,{className:`inline-flex items-center gap-x-1`,children:[u(c,{size:20}),u(`p`,{children:m})]}),u(i,{className:v,children:h})]}),d(a,{children:[u(n,{children:g}),u(t,{type:`button`,className:`min-h-9 w-full md:w-24`,onClick:x,children:p?u(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:u(`div`,{className:`loader-spinner text-text-positive-weak`})}):_})]})]})})};export{f as ConfirmDialog};
2
2
  //# sourceMappingURL=confirm-dialog.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"confirm-dialog.mjs","names":["ConfirmDialog: React.FC<React.PropsWithChildren<Props>>"],"sources":["../../packages/components/dialogs/confirm-dialog.tsx"],"sourcesContent":["import { TriangleAlert } from 'lucide-react';\n\nimport {\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 cancelText?: string;\n submitText?: string;\n descriptionClassName?: string;\n onOpenChange?: (open: boolean) => void;\n onConfirm?: () => Promise<void> | void;\n};\n\nexport const ConfirmDialog: React.FC<React.PropsWithChildren<Props>> = ({\n open,\n isLoading = false,\n title,\n description,\n cancelText,\n submitText,\n descriptionClassName,\n onOpenChange,\n onConfirm,\n}) => {\n return (\n <AlertDialog open={open} onOpenChange={onOpenChange}>\n <AlertDialogContent className=\"p-4 pb-5\">\n <AlertDialogHeader className=\"gap-2\">\n <AlertDialogTitle className=\"inline-flex items-center gap-x-1\">\n <TriangleAlert size={20} />\n <p>{title}</p>\n </AlertDialogTitle>\n <AlertDialogDescription className={descriptionClassName}>{description}</AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel>{cancelText || 'Cancel'}</AlertDialogCancel>\n <AlertDialogAction\n type=\"button\"\n className=\"min-h-9 w-full md:w-24\"\n onClick={e => {\n onConfirm?.();\n e.preventDefault();\n e.stopPropagation();\n }}\n >\n {!isLoading ? (\n submitText || '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":"oaAyBA,MAAaA,GAA2D,CACtE,OACA,YAAY,GACZ,QACA,cACA,aACA,aACA,uBACA,eACA,eAGE,EAAC,EAAA,CAAkB,OAAoB,wBACrC,EAAC,EAAA,CAAmB,UAAU,qBAC5B,EAAC,EAAA,CAAkB,UAAU,kBAC3B,EAAC,EAAA,CAAiB,UAAU,6CAC1B,EAAC,EAAA,CAAc,KAAM,GAAA,CAAM,CAC3B,EAAC,IAAA,CAAA,SAAG,EAAA,CAAU,CAAA,EACG,CACnB,EAAC,EAAA,CAAuB,UAAW,WAAuB,GAAqC,CAAA,EAC7E,CACpB,EAAC,EAAA,CAAA,SAAA,CACC,EAAC,EAAA,CAAA,SAAmB,GAAc,SAAA,CAA6B,CAC/D,EAAC,EAAA,CACC,KAAK,SACL,UAAU,yBACV,QAAS,GAAK,CACZ,KAAa,CACb,EAAE,gBAAgB,CAClB,EAAE,iBAAiB,WAGnB,EAGA,EAAC,MAAA,CAAI,UAAU,6DACb,EAAC,MAAA,CAAI,UAAU,uCAAA,CAAyC,EACpD,CAJN,GAAc,WAME,CAAA,CAAA,CACF,CAAA,EACD,EACT"}
1
+ {"version":3,"file":"confirm-dialog.mjs","names":["ConfirmDialog: React.FC<ConfirmDialogProps>"],"sources":["../../packages/components/dialogs/confirm-dialog.tsx"],"sourcesContent":["'use client';\n\nimport { useCallback } from 'react';\nimport { TriangleAlert } from 'lucide-react';\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n} from '../ui/alert-dialog';\n\n/**\n * Props for the {@link ConfirmDialog} component.\n */\nexport type ConfirmDialogProps = {\n /**\n * Controls whether the dialog is currently open.\n * This is a **controlled** prop — pair it with `onOpenChange` to manage state.\n */\n open?: boolean;\n\n /**\n * When `true`, shows an animated spinner inside the confirm button and\n * prevents double-submission. Typically bound to a mutation's pending state.\n *\n * @default false\n */\n isLoading?: boolean;\n\n /**\n * The dialog heading text. Keep it short and action-oriented,\n * e.g. `\"Delete user?\"` or `\"Unsaved changes\"`.\n */\n title: string;\n\n /**\n * Body copy explaining what will happen if the user confirms.\n * For irreversible actions, state explicitly that the action cannot be undone.\n */\n description: string;\n\n /**\n * Label for the cancel / dismiss button.\n *\n * @default \"Cancel\"\n */\n cancelText?: string;\n\n /**\n * Label for the confirm / submit button.\n *\n * @default \"Confirm\"\n */\n submitText?: string;\n\n /**\n * Additional class names applied to the `AlertDialogDescription` element.\n * Useful for overriding text color or font size for specific contexts.\n */\n descriptionClassName?: string;\n\n /**\n * Callback fired when the dialog open state changes.\n * Required to implement controlled open / close behavior.\n *\n * @param open - `true` when opening, `false` when closing.\n */\n onOpenChange?: (open: boolean) => void;\n\n /**\n * Async-safe callback fired when the user clicks the confirm button.\n * Supports both synchronous and `Promise`-returning functions.\n *\n * The dialog does **not** auto-close after `onConfirm` resolves — the caller\n * is responsible for setting `open` to `false` once the operation completes.\n *\n * @example\n * ```tsx\n * onConfirm={async () => {\n * await deleteUser(userId);\n * setOpen(false);\n * }}\n * ```\n */\n onConfirm?: () => Promise<void> | void;\n};\n\n/**\n * A controlled confirmation dialog for destructive or irreversible actions.\n *\n * Built on Radix UI's `AlertDialog` primitive. Renders a warning icon, title,\n * description, and Cancel / Confirm buttons. The confirm button supports an\n * async loading state to prevent double-submission.\n *\n * **Import:** `import { ConfirmDialog } from '@customafk/lunas-ui/dialogs/confirm-dialog'`\n *\n * @example Delete confirmation with React state\n * ```tsx\n * import { useState } from 'react';\n * import { Button } from '@customafk/lunas-ui/ui/button';\n * import { ConfirmDialog } from '@customafk/lunas-ui/dialogs/confirm-dialog';\n *\n * export function DeleteUserButton({ userId }: { userId: string }) {\n * const [open, setOpen] = useState(false);\n * const [isPending, setIsPending] = useState(false);\n *\n * const handleDelete = async () => {\n * setIsPending(true);\n * try {\n * await deleteUser(userId);\n * setOpen(false);\n * } finally {\n * setIsPending(false);\n * }\n * };\n *\n * return (\n * <>\n * <Button variant=\"outline\" color=\"danger\" onClick={() => setOpen(true)}>\n * Delete user\n * </Button>\n * <ConfirmDialog\n * open={open}\n * title=\"Delete user?\"\n * description=\"This action is permanent and cannot be undone.\"\n * submitText=\"Yes, delete\"\n * isLoading={isPending}\n * onOpenChange={setOpen}\n * onConfirm={handleDelete}\n * />\n * </>\n * );\n * }\n * ```\n *\n * @example With TanStack Query mutation\n * ```tsx\n * import { ConfirmDialog } from '@customafk/lunas-ui/dialogs/confirm-dialog';\n * import { useMutation } from '@tanstack/react-query';\n *\n * export function ArchiveDialog({ open, onOpenChange, id }: Props) {\n * const { mutateAsync, isPending } = useMutation({ mutationFn: archiveItem });\n *\n * return (\n * <ConfirmDialog\n * open={open}\n * title=\"Archive item?\"\n * description=\"The item will be hidden but can be restored later.\"\n * submitText=\"Archive\"\n * isLoading={isPending}\n * onOpenChange={onOpenChange}\n * onConfirm={() => mutateAsync(id).then(() => onOpenChange(false))}\n * />\n * );\n * }\n * ```\n */\nexport const ConfirmDialog: React.FC<ConfirmDialogProps> = ({\n open,\n isLoading = false,\n title,\n description,\n cancelText = 'Cancel',\n submitText = 'Confirm',\n descriptionClassName,\n onOpenChange,\n onConfirm,\n}) => {\n const handleConfirm = useCallback(\n (e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n onConfirm?.();\n },\n [onConfirm]\n );\n\n return (\n <AlertDialog open={open} onOpenChange={onOpenChange}>\n <AlertDialogContent className=\"p-4 pb-5\">\n <AlertDialogHeader className=\"gap-2\">\n <AlertDialogTitle className=\"inline-flex items-center gap-x-1\">\n <TriangleAlert size={20} />\n <p>{title}</p>\n </AlertDialogTitle>\n <AlertDialogDescription className={descriptionClassName}>{description}</AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel>{cancelText}</AlertDialogCancel>\n <AlertDialogAction type=\"button\" className=\"min-h-9 w-full md:w-24\" onClick={handleConfirm}>\n {isLoading ? (\n <div className=\"absolute inset-0 flex items-center justify-center\">\n <div className=\"loader-spinner text-text-positive-weak\" />\n </div>\n ) : (\n submitText\n )}\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n );\n};\n"],"mappings":"qdAiKA,MAAaA,GAA+C,CAC1D,OACA,YAAY,GACZ,QACA,cACA,aAAa,SACb,aAAa,UACb,uBACA,eACA,eACI,CACJ,IAAM,EAAgB,EACnB,GAAwB,CACvB,EAAE,gBAAgB,CAClB,EAAE,iBAAiB,CACnB,KAAa,EAEf,CAAC,EAAU,CACZ,CAED,OACE,EAAC,EAAA,CAAkB,OAAoB,wBACrC,EAAC,EAAA,CAAmB,UAAU,qBAC5B,EAAC,EAAA,CAAkB,UAAU,kBAC3B,EAAC,EAAA,CAAiB,UAAU,6CAC1B,EAAC,EAAA,CAAc,KAAM,GAAA,CAAM,CAC3B,EAAC,IAAA,CAAA,SAAG,EAAA,CAAU,CAAA,EACG,CACnB,EAAC,EAAA,CAAuB,UAAW,WAAuB,GAAqC,CAAA,EAC7E,CACpB,EAAC,EAAA,CAAA,SAAA,CACC,EAAC,EAAA,CAAA,SAAmB,EAAA,CAA+B,CACnD,EAAC,EAAA,CAAkB,KAAK,SAAS,UAAU,yBAAyB,QAAS,WAC1E,EACC,EAAC,MAAA,CAAI,UAAU,6DACb,EAAC,MAAA,CAAI,UAAU,yCAAA,CAA2C,EACtD,CAEN,GAEgB,CAAA,CAAA,CACF,CAAA,EACD,EACT"}
@@ -1,2 +1 @@
1
- "use client";const e=require(`../../../chunk-Bmb41Sf3.cjs`);require(`../../../button.variants-aqkTmzFu.cjs`);const t=require(`../../../button-Cd7YtPlT.cjs`),n=require(`../../../skeleton-CHympz8k.cjs`),r=require(`../../../tooltip-DC6i1A25.cjs`),i=require(`../../../separator-C3ip6sbh.cjs`),a=require(`../../../sheet-5MJRtrfG.cjs`);let o=require(`@customafk/react-toolkit/utils`),s=require(`class-variance-authority`),c=require(`react/jsx-runtime`),l=require(`lucide-react`),u=require(`react`),d=require(`radix-ui`),f=require(`@customafk/react-toolkit/hooks/useMobile`);const p=`detai_dialog_sidebar_state`,m=3600*24*7,h=`20rem`,g=`18rem`,_=`3rem`,v=`p`,y=(0,u.createContext)(null);function b(){let e=(0,u.use)(y);if(!e)throw Error(`useSidebar must be used within a SidebarProvider.`);return e}function x({defaultOpen:e=!0,open:t,onOpenChange:n,className:i,style:a,children:s,...l}){let d=(0,f.useIsMobile)(),[p,m]=(0,u.useState)(!1),[h,g]=(0,u.useState)(e),_=t??h,v=(0,u.useCallback)(e=>{let t=typeof e==`function`?e(_):e;n?n(t):g(t),document.cookie=`detai_dialog_sidebar_state=${t}; path=/; max-age=604800`},[n,_]),b=(0,u.useCallback)(()=>d?m(e=>!e):v(e=>!e),[d,v]);(0,u.useEffect)(()=>{let e=e=>{e.key===`p`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),b())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[b]);let x=_?`expanded`:`collapsed`,S=(0,u.useMemo)(()=>({state:x,isMobile:d,toggleSidebar:b,open:_,setOpen:v,openMobile:p,setOpenMobile:m}),[x,d,_,v,p,b]);return(0,c.jsx)(y.Provider,{value:S,children:(0,c.jsx)(r.r,{delayDuration:0,children:(0,c.jsx)(`div`,{"data-slot":`sidebar-wrapper`,style:{"--sidebar-width":`20rem`,"--sidebar-width-icon":`3rem`,...a},className:(0,o.cn)(`group/sidebar-wrapper flex h-full min-h-[85dvh] w-full items-start has-data-[variant=inset]:bg-sidebar`,i),...l,children:s})})})}function S({side:e=`left`,variant:t=`sidebar`,collapsible:n=`offcanvas`,className:r,children:i,...s}){let{state:l,isMobile:u,openMobile:d,setOpenMobile:f}=b();return n===`none`?(0,c.jsx)(`div`,{"data-slot":`sidebar`,className:(0,o.cn)(`flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground`,r),...s,children:i}):u?(0,c.jsx)(a.t,{open:d,onOpenChange:f,...s,children:(0,c.jsxs)(a.r,{"data-sidebar":`sidebar`,"data-slot":`sidebar`,"data-mobile":`true`,className:`z-20 hidden w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground shadow-nav md:flex [&>button]:hidden`,style:{"--sidebar-width":`18rem`},side:e,children:[(0,c.jsxs)(a.o,{className:`sr-only`,children:[(0,c.jsx)(a.s,{children:`Sidebar`}),(0,c.jsx)(a.i,{children:`Displays the mobile sidebar.`})]}),(0,c.jsx)(`div`,{className:`flex h-full w-full flex-col`,children:i})]})}):(0,c.jsxs)(`div`,{className:`group peer hidden text-sidebar-foreground md:block`,"data-state":l,"data-collapsible":l===`collapsed`?n:``,"data-variant":t,"data-side":e,"data-slot":`sidebar`,children:[(0,c.jsx)(`div`,{"data-slot":`sidebar-gap`,className:(0,o.cn)(`relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear`,`group-data-[collapsible=offcanvas]:w-0`,`group-data-[side=right]:rotate-180`,t===`floating`||t===`inset`?`group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon)`)}),(0,c.jsx)(`div`,{"data-slot":`sidebar-container`,className:(0,o.cn)(`absolute inset-y-0 z-20 hidden w-(--sidebar-width) shadow-nav transition-[left,right,width] duration-200 ease-linear md:flex`,e===`left`?`left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]`:`right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]`,t===`floating`||t===`inset`?`p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon)`,r),...s,children:(0,c.jsx)(`div`,{"data-sidebar":`sidebar`,"data-slot":`sidebar-inner`,className:(0,o.cn)(`flex size-full flex-col shadow-nav`,`group-data-[variant=floating]:border-sidebar-border`,`group-data-[variant=floating]:rounded-lg`,`group-data-[variant=floating]:border`,`group-data-[variant=floating]:shadow-sm`),children:i})})]})}function C({className:e,onClick:n,...r}){let{toggleSidebar:i}=b();return(0,c.jsxs)(t.t,{"data-sidebar":`trigger`,"data-slot":`sidebar-trigger`,variant:`ghost`,color:`secondary`,size:`icon`,className:(0,o.cn)(`size-10 rounded-full [&_svg]:size-6!`,e),onClick:e=>{n?.(e),i()},...r,children:[(0,c.jsx)(l.MenuIcon,{}),(0,c.jsx)(`span`,{className:`sr-only`,children:`Toggle Sidebar`})]})}function w({className:e,...t}){let{toggleSidebar:n}=b();return(0,c.jsx)(`button`,{"data-sidebar":`rail`,"data-slot":`sidebar-rail`,"aria-label":`Toggle Sidebar`,tabIndex:-1,onClick:n,title:`Toggle Sidebar`,className:(0,o.cn)(`absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear sm:flex`,`after:absolute`,`after:inset-y-0`,`after:left-1/2 after:w-0.5`,`hover:after:bg-sidebar-border`,`group-data-[side=left]:-right-4`,`group-data-[side=right]:left-0`,`in-data-[side=left]:cursor-w-resize`,`in-data-[side=right]:cursor-e-resize`,`[[data-side=left][data-state=collapsed]_&]:cursor-e-resize`,`[[data-side=right][data-state=collapsed]_&]:cursor-w-resize`,`hover:group-data-[collapsible=offcanvas]:bg-sidebar`,`group-data-[collapsible=offcanvas]:translate-x-0`,`group-data-[collapsible=offcanvas]:after:left-full`,`[[data-side=left][data-collapsible=offcanvas]_&]:-right-2`,`[[data-side=right][data-collapsible=offcanvas]_&]:-left-2`,e),...t})}function T({className:e,...t}){return(0,c.jsx)(`main`,{"data-slot":`sidebar-inset`,className:(0,o.cn)(`relative flex w-full flex-1 flex-col bg-background`,`md:peer-data-[variant=inset]:m-2`,`md:peer-data-[variant=inset]:ml-0`,`md:peer-data-[variant=inset]:rounded-xl`,`md:peer-data-[variant=inset]:shadow-sm`,`md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2`,e),...t})}function E({className:e,...t}){return(0,c.jsx)(`div`,{"data-slot":`sidebar-header`,"data-sidebar":`header`,className:(0,o.cn)(`flex flex-col gap-2 p-2`,e),...t})}function D({className:e,children:t,...n}){let{open:r}=b();return(0,c.jsx)(`div`,{"data-slot":`sidebar-footer`,"data-sidebar":`footer`,className:(0,o.cn)(`flex flex-col gap-2 p-2`,e),...n,children:(0,c.jsxs)(P,{children:[r&&(0,c.jsx)(F,{children:t}),(0,c.jsx)(F,{children:(0,c.jsx)(`p`,{className:`pt-2 text-center text-muted-foreground text-xs`,children:`Copyright © 2025, Lunas.`})})]})})}function O({className:e,...t}){return(0,c.jsx)(i.t,{"data-slot":`sidebar-separator`,"data-sidebar":`separator`,className:(0,o.cn)(`mx-2 w-auto bg-sidebar-border`,e),...t})}function k({className:e,...t}){return(0,c.jsx)(`div`,{"data-slot":`sidebar-content`,"data-sidebar":`content`,className:(0,o.cn)(`flex min-h-0 flex-1 flex-col gap-2 overflow-auto`,`group-data-[collapsible=icon]:overflow-hidden`,e),...t})}function A({className:e,...t}){return(0,c.jsx)(`div`,{"data-slot":`sidebar-group`,"data-sidebar":`group`,className:(0,o.cn)(`relative flex w-full min-w-0 flex-col p-2`,e),...t})}function j({className:e,asChild:t=!1,...n}){return(0,c.jsx)(t?d.Slot.Slot:`div`,{"data-slot":`sidebar-group-label`,"data-sidebar":`group-label`,className:(0,o.cn)(`flex h-8 shrink-0 items-center rounded-md px-2 font-medium text-sidebar-foreground/70 text-xs outline-hidden ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear`,`focus-visible:ring-2`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`group-data-[collapsible=icon]:-mt-8`,`group-data-[collapsible=icon]:opacity-0`,e),...n})}function M({className:e,asChild:t=!1,...n}){return(0,c.jsx)(t?d.Slot.Slot:`button`,{"data-slot":`sidebar-group-action`,"data-sidebar":`group-action`,className:(0,o.cn)(`absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-hidden ring-sidebar-ring transition-transform`,`hover:bg-sidebar-accent hover:text-sidebar-accent-foreground`,`focus-visible:ring-2`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`after:absolute`,`after:-inset-2`,`md:after:hidden`,`group-data-[collapsible=icon]:hidden`,e),...n})}function N({className:e,...t}){return(0,c.jsx)(`div`,{"data-slot":`sidebar-group-content`,"data-sidebar":`group-content`,className:(0,o.cn)(`w-full text-sm`,e),...t})}function P({className:e,...t}){return(0,c.jsx)(`ul`,{"data-slot":`sidebar-menu`,"data-sidebar":`menu`,className:(0,o.cn)(`flex w-full min-w-0 flex-col gap-1`,e),...t})}function F({className:e,...t}){return(0,c.jsx)(`li`,{"data-slot":`sidebar-menu-item`,"data-sidebar":`menu-item`,className:(0,o.cn)(`group/menu-item relative`,e),...t})}const I=(0,s.cva)([`peer/menu-button`,`cursor-pointer`,`flex w-full items-center gap-2`,`overflow-hidden rounded-md p-2 outline-hidden`,`truncate text-left font-normal`,`transition-[color,width,height,padding]`,`hover:bg-sidebar-accent`,`hover:text-sidebar-accent-foreground`,`active:bg-sidebar-accent`,`active:text-sidebar-accent-foreground`,`disabled:pointer-events-none`,`disabled:opacity-50`,`group-has-data-[sidebar=menu-action]/menu-item:pr-8`,`aria-disabled:pointer-events-none`,`aria-disabled:opacity-50`,`data-[active=true]:bg-sidebar-primary-muted`,`data-[active=true]:font-normal`,`data-[active=true]:text-sidebar-primary`,`data-[state=open]:hover:bg-sidebar-accent`,`data-[state=open]:hover:text-sidebar-accent-foreground`,`group-data-[collapsible=icon]:size-8!`,`group-data-[collapsible=icon]:p-2!`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`[&>span:last-child]:truncate`],{variants:{variant:{default:`hover:bg-sidebar-accent/60 hover:text-sidebar-accent-foreground/80`,outline:`bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]`},size:{default:`h-8 text-sm`,sm:`h-7 text-xs`,lg:`h-12 text-sm group-data-[collapsible=icon]:p-0!`}},defaultVariants:{variant:`default`,size:`default`}});function L({asChild:e=!1,isActive:t=!1,variant:n=`default`,size:i=`default`,tooltip:a,className:s,...l}){let u=e?d.Slot.Slot:`button`,{state:f}=b(),p=(0,c.jsx)(u,{"data-slot":`sidebar-menu-button`,"data-sidebar":`menu-button`,"data-size":i,"data-active":t,className:(0,o.cn)(I({variant:n,size:i}),s),...l});return a?(typeof a==`string`&&(a={children:a}),(0,c.jsxs)(r.t,{children:[(0,c.jsx)(r.i,{asChild:!0,children:p}),(0,c.jsx)(r.n,{side:`right`,align:`center`,hidden:f!==`collapsed`,...a})]})):p}function R({className:e,asChild:t=!1,showOnHover:n=!1,...r}){return(0,c.jsx)(t?d.Slot.Slot:`button`,{"data-slot":`sidebar-menu-action`,"data-sidebar":`menu-action`,className:(0,o.cn)(`text-sidebar-foreground ring-sidebar-ring`,`hover:bg-sidebar-accent`,`hover:text-sidebar-accent-foreground`,`absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform peer-hover/menu-button:text-sidebar-accent-foreground`,`focus-visible:ring-2`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`after:absolute after:-inset-2 md:after:hidden`,`peer-data-[size=sm]/menu-button:top-1`,`peer-data-[size=default]/menu-button:top-1.5`,`peer-data-[size=lg]/menu-button:top-2.5`,`group-data-[collapsible=icon]:hidden`,n&&`peer-data-[active=true]/menu-button:text-sidebar-accent-foreground`,n&&`$group-focus-within/menu-item:opacity-100`,n&&`group-hover/menu-item:opacity-100`,n&&`data-[state=open]:opacity-100 md:opacity-0`,e),...r})}function z({className:e,...t}){return(0,c.jsx)(`div`,{"data-slot":`sidebar-menu-badge`,"data-sidebar":`menu-badge`,className:(0,o.cn)(`pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 font-medium text-sidebar-foreground text-xs tabular-nums`,`peer-hover/menu-button:text-sidebar-accent-foreground`,`peer-data-[active=true]/menu-button:text-sidebar-accent-foreground`,`peer-data-[size=sm]/menu-button:top-1`,`peer-data-[size=default]/menu-button:top-1.5`,`peer-data-[size=lg]/menu-button:top-2.5`,`group-data-[collapsible=icon]:hidden`,e),...t})}function B({className:e,showIcon:t=!1,...r}){let i=(0,u.useMemo)(()=>`${Math.floor(Math.random()*40)+50}%`,[]);return(0,c.jsxs)(`div`,{"data-slot":`sidebar-menu-skeleton`,"data-sidebar":`menu-skeleton`,className:(0,o.cn)(`flex h-8 items-center gap-2 rounded-md px-2`,e),...r,children:[t&&(0,c.jsx)(n.t,{className:`size-4 rounded-md`,"data-sidebar":`menu-skeleton-icon`}),(0,c.jsx)(n.t,{className:`h-4 max-w-(--skeleton-width) flex-1`,"data-sidebar":`menu-skeleton-text`,style:{"--skeleton-width":i}})]})}function V({className:e,...t}){return(0,c.jsx)(`ul`,{"data-slot":`sidebar-menu-sub`,"data-sidebar":`menu-sub`,className:(0,o.cn)(`mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-sidebar-border border-l px-2.5 py-0.5`,`group-data-[collapsible=icon]:hidden`,e),...t})}function H({className:e,...t}){return(0,c.jsx)(`li`,{"data-slot":`sidebar-menu-sub-item`,"data-sidebar":`menu-sub-item`,className:(0,o.cn)(`group/menu-sub-item relative`,e),...t})}function U({asChild:e=!1,size:t=`md`,isActive:n=!1,className:r,...i}){return(0,c.jsx)(e?d.Slot.Slot:`a`,{"data-slot":`sidebar-menu-sub-button`,"data-sidebar":`menu-sub-button`,"data-size":t,"data-active":n,className:(0,o.cn)(`text-sidebar-foreground ring-sidebar-ring`,`flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden`,`hover:bg-sidebar-accent`,`hover:text-sidebar-accent-foreground`,`active:bg-sidebar-accent`,`active:text-sidebar-accent-foreground`,`focus-visible:ring-2`,`disabled:pointer-events-none`,`disabled:opacity-50`,`aria-disabled:pointer-events-none`,`aria-disabled:opacity-50`,`[&>span:last-child]:truncate`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`[&>svg]:text-sidebar-accent-foreground`,`data-[active=true]:bg-sidebar-accent`,`data-[active=true]:text-sidebar-accent-foreground`,`group-data-[collapsible=icon]:hidden`,t===`sm`&&`text-xs`,t===`md`&&`text-sm`,r),...i})}exports.DetailDialogSidebarContent=k,exports.DetailDialogSidebarFooter=D,exports.DetailDialogSidebarGroup=A,exports.DetailDialogSidebarGroupAction=M,exports.DetailDialogSidebarGroupContent=N,exports.DetailDialogSidebarGroupLabel=j,exports.DetailDialogSidebarHeader=E,exports.DetailDialogSidebarMenu=P,exports.DetailDialogSidebarMenuAction=R,exports.DetailDialogSidebarMenuBadge=z,exports.DetailDialogSidebarMenuButton=L,exports.DetailDialogSidebarMenuItem=F,exports.DetailDialogSidebarMenuSkeleton=B,exports.DetailDialogSidebarMenuSub=V,exports.DetailDialogSidebarMenuSubButton=U,exports.DetailDialogSidebarMenuSubItem=H,exports.DetailDialogSidebarRail=w,exports.DetailDialogSidebarSeparator=O,exports.DetailDialogSidebarTrigger=C,exports.Sidebar=S,exports.SidebarInset=T,exports.SidebarProvider=x,exports.useSidebar=b;
2
- //# sourceMappingURL=sidebar.cjs.map
1
+ "use client";require(`../../../button.variants-tnhb123u.cjs`),require(`../../../button-CwDT3m4m.cjs`),require(`../../../skeleton-BfMCjXYM.cjs`),require(`../../../tooltip-itUmYz9k.cjs`),require(`../../../separator-BwZb12bh.cjs`),require(`../../../sheet-CaDXTx7n.cjs`);const e=require(`../../../sidebar-C27_pwLR.cjs`);exports.DetailDialogSidebarContent=e.t,exports.DetailDialogSidebarFooter=e.n,exports.DetailDialogSidebarGroup=e.r,exports.DetailDialogSidebarGroupAction=e.i,exports.DetailDialogSidebarGroupContent=e.a,exports.DetailDialogSidebarGroupLabel=e.o,exports.DetailDialogSidebarHeader=e.s,exports.DetailDialogSidebarMenu=e.c,exports.DetailDialogSidebarMenuAction=e.l,exports.DetailDialogSidebarMenuBadge=e.u,exports.DetailDialogSidebarMenuButton=e.d,exports.DetailDialogSidebarMenuItem=e.f,exports.DetailDialogSidebarMenuSkeleton=e.p,exports.DetailDialogSidebarMenuSub=e.m,exports.DetailDialogSidebarMenuSubButton=e.h,exports.DetailDialogSidebarMenuSubItem=e.g,exports.DetailDialogSidebarRail=e._,exports.DetailDialogSidebarSeparator=e.v,exports.DetailDialogSidebarTrigger=e.y,exports.Sidebar=e.b,exports.SidebarInset=e.x,exports.SidebarProvider=e.S,exports.useSidebar=e.C;