@customafk/lunas-ui 0.2.52 → 0.2.54

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 (1176) hide show
  1. package/dist/{alert-CB79DQwK.d.mts → alert-Bip5XjBw.d.cts} +5 -7
  2. package/dist/{alert-Ca5wFNXF.d.cts → alert-Bip5XjBw.d.mts} +5 -7
  3. package/dist/alert-D31c6DLq.cjs +2 -0
  4. package/dist/{alert-DDdHIRib.cjs.map → alert-D31c6DLq.cjs.map} +1 -1
  5. package/dist/{alert-BEcGZfPW.mjs → alert-OD1KJTEV.mjs} +1 -1
  6. package/dist/{alert-BEcGZfPW.mjs.map → alert-OD1KJTEV.mjs.map} +1 -1
  7. package/dist/{badge-DYo5Diiy.d.cts → badge-D0InQSvM.d.cts} +4 -6
  8. package/dist/{badge-CQygfYGk.d.mts → badge-D0InQSvM.d.mts} +4 -6
  9. package/dist/{button-D-pWsdxT.d.cts → button-DIqm3YRo.d.cts} +4 -7
  10. package/dist/{button-CwxEnAw3.d.mts → button-DIqm3YRo.d.mts} +4 -7
  11. package/dist/button.variants-DOglUhSE.cjs +2 -0
  12. package/dist/{button.variants-4kw6plrv.cjs.map → button.variants-DOglUhSE.cjs.map} +1 -1
  13. package/dist/{button.variants-DkMqWB8G.mjs → button.variants-pziHKxvE.mjs} +1 -1
  14. package/dist/{button.variants-DkMqWB8G.mjs.map → button.variants-pziHKxvE.mjs.map} +1 -1
  15. package/dist/cards/grid-product-card.cjs +2 -1
  16. package/dist/cards/grid-product-card.cjs.map +1 -0
  17. package/dist/cards/grid-product-card.d.cts +30 -2
  18. package/dist/cards/grid-product-card.d.mts +30 -2
  19. package/dist/cards/grid-product-card.mjs +2 -1
  20. package/dist/cards/grid-product-card.mjs.map +1 -0
  21. package/dist/cards/product-card.cjs +2 -1
  22. package/dist/cards/product-card.cjs.map +1 -0
  23. package/dist/cards/product-card.d.cts +30 -2
  24. package/dist/cards/product-card.d.mts +30 -2
  25. package/dist/cards/product-card.mjs +2 -1
  26. package/dist/cards/product-card.mjs.map +1 -0
  27. package/dist/cards/simple-card.cjs +2 -1
  28. package/dist/cards/simple-card.cjs.map +1 -0
  29. package/dist/cards/simple-card.d.cts +29 -2
  30. package/dist/cards/simple-card.d.mts +29 -2
  31. package/dist/cards/simple-card.mjs +2 -1
  32. package/dist/cards/simple-card.mjs.map +1 -0
  33. package/dist/close-BYHgEZvZ.cjs +2 -0
  34. package/dist/close-BYHgEZvZ.cjs.map +1 -0
  35. package/dist/{close-Co-WLsSG.mjs → close-DYJZ8fkh.mjs} +1 -1
  36. package/dist/close-DYJZ8fkh.mjs.map +1 -0
  37. package/dist/cms-layout-DhZiYGI7.cjs +2 -0
  38. package/dist/cms-layout-DhZiYGI7.cjs.map +1 -0
  39. package/dist/cms-layout-IwpD0LvR.mjs +2 -0
  40. package/dist/cms-layout-IwpD0LvR.mjs.map +1 -0
  41. package/dist/data-display/country.cjs +2 -1
  42. package/dist/data-display/country.cjs.map +1 -0
  43. package/dist/data-display/country.d.cts +21 -2
  44. package/dist/data-display/country.d.mts +21 -2
  45. package/dist/data-display/country.mjs +2 -1
  46. package/dist/data-display/country.mjs.map +1 -0
  47. package/dist/data-display/data-list.cjs +2 -1
  48. package/dist/data-display/data-list.cjs.map +1 -0
  49. package/dist/data-display/data-list.d.cts +38 -2
  50. package/dist/data-display/data-list.d.mts +38 -2
  51. package/dist/data-display/data-list.mjs +2 -1
  52. package/dist/data-display/data-list.mjs.map +1 -0
  53. package/dist/data-display/date-tooltip.cjs +2 -1
  54. package/dist/data-display/date-tooltip.cjs.map +1 -0
  55. package/dist/data-display/date-tooltip.d.cts +18 -2
  56. package/dist/data-display/date-tooltip.d.mts +18 -2
  57. package/dist/data-display/date-tooltip.mjs +2 -1
  58. package/dist/data-display/date-tooltip.mjs.map +1 -0
  59. package/dist/data-display/date.cjs +1 -1
  60. package/dist/data-display/date.d.cts +39 -2
  61. package/dist/data-display/date.d.mts +39 -2
  62. package/dist/data-display/date.mjs +1 -1
  63. package/dist/data-display/empty.cjs +2 -1
  64. package/dist/data-display/empty.cjs.map +1 -0
  65. package/dist/data-display/empty.d.cts +19 -2
  66. package/dist/data-display/empty.d.mts +19 -2
  67. package/dist/data-display/empty.mjs +2 -1
  68. package/dist/data-display/empty.mjs.map +1 -0
  69. package/dist/data-display/name.cjs +2 -1
  70. package/dist/data-display/name.cjs.map +1 -0
  71. package/dist/data-display/name.d.cts +18 -2
  72. package/dist/data-display/name.d.mts +18 -2
  73. package/dist/data-display/name.mjs +2 -1
  74. package/dist/data-display/name.mjs.map +1 -0
  75. package/dist/data-display/phone-number.cjs +2 -1
  76. package/dist/data-display/phone-number.cjs.map +1 -0
  77. package/dist/data-display/phone-number.d.cts +18 -2
  78. package/dist/data-display/phone-number.d.mts +18 -2
  79. package/dist/data-display/phone-number.mjs +2 -1
  80. package/dist/data-display/phone-number.mjs.map +1 -0
  81. package/dist/data-display/role-badge.cjs +2 -1
  82. package/dist/data-display/role-badge.cjs.map +1 -0
  83. package/dist/data-display/role-badge.d.cts +21 -2
  84. package/dist/data-display/role-badge.d.mts +21 -2
  85. package/dist/data-display/role-badge.mjs +2 -1
  86. package/dist/data-display/role-badge.mjs.map +1 -0
  87. package/dist/data-display/statistic.cjs +2 -1
  88. package/dist/data-display/statistic.cjs.map +1 -0
  89. package/dist/data-display/statistic.d.cts +45 -2
  90. package/dist/data-display/statistic.d.mts +45 -2
  91. package/dist/data-display/statistic.mjs +2 -1
  92. package/dist/data-display/statistic.mjs.map +1 -0
  93. package/dist/data-display/user.cjs +2 -1
  94. package/dist/data-display/user.cjs.map +1 -0
  95. package/dist/data-display/user.d.cts +20 -2
  96. package/dist/data-display/user.d.mts +20 -2
  97. package/dist/data-display/user.mjs +2 -1
  98. package/dist/data-display/user.mjs.map +1 -0
  99. package/dist/date-B3cozmfV.cjs +2 -0
  100. package/dist/date-B3cozmfV.cjs.map +1 -0
  101. package/dist/{date-88lk-VJF.mjs → date-Nsz0Pewe.mjs} +1 -1
  102. package/dist/date-Nsz0Pewe.mjs.map +1 -0
  103. package/dist/{dialog-DokGVUbC.d.mts → dialog-BASlxWF_.d.cts} +12 -15
  104. package/dist/{dialog-xPhSkLmg.d.cts → dialog-BASlxWF_.d.mts} +12 -15
  105. package/dist/dialogs/confirm-dialog.cjs +2 -1
  106. package/dist/dialogs/confirm-dialog.cjs.map +1 -0
  107. package/dist/dialogs/confirm-dialog.d.cts +142 -2
  108. package/dist/dialogs/confirm-dialog.d.mts +142 -2
  109. package/dist/dialogs/confirm-dialog.mjs +2 -1
  110. package/dist/dialogs/confirm-dialog.mjs.map +1 -0
  111. package/dist/dialogs/detail-dialog/components/sidebar.cjs +2 -1
  112. package/dist/dialogs/detail-dialog/components/sidebar.cjs.map +1 -0
  113. package/dist/dialogs/detail-dialog/components/sidebar.d.cts +36 -51
  114. package/dist/dialogs/detail-dialog/components/sidebar.d.mts +36 -51
  115. package/dist/dialogs/detail-dialog/components/sidebar.mjs +2 -1
  116. package/dist/dialogs/detail-dialog/components/sidebar.mjs.map +1 -0
  117. package/dist/dialogs/detail-dialog/index.cjs +2 -1
  118. package/dist/dialogs/detail-dialog/index.cjs.map +1 -0
  119. package/dist/dialogs/detail-dialog/index.d.cts +36 -2
  120. package/dist/dialogs/detail-dialog/index.d.mts +36 -2
  121. package/dist/dialogs/detail-dialog/index.mjs +2 -1
  122. package/dist/dialogs/detail-dialog/index.mjs.map +1 -0
  123. package/dist/dialogs/error-dialog.cjs +2 -1
  124. package/dist/dialogs/error-dialog.cjs.map +1 -0
  125. package/dist/dialogs/error-dialog.d.cts +22 -2
  126. package/dist/dialogs/error-dialog.d.mts +22 -2
  127. package/dist/dialogs/error-dialog.mjs +2 -1
  128. package/dist/dialogs/error-dialog.mjs.map +1 -0
  129. package/dist/dialogs/loading-dialog.cjs +2 -1
  130. package/dist/dialogs/loading-dialog.cjs.map +1 -0
  131. package/dist/dialogs/loading-dialog.d.cts +19 -2
  132. package/dist/dialogs/loading-dialog.d.mts +19 -2
  133. package/dist/dialogs/loading-dialog.mjs +2 -1
  134. package/dist/dialogs/loading-dialog.mjs.map +1 -0
  135. package/dist/dist-CGlSRti2.cjs +2 -0
  136. package/dist/{dist-Cx5ufCdr.cjs.map → dist-CGlSRti2.cjs.map} +1 -1
  137. package/dist/{dist-DVrfqn8H.mjs → dist-CtTonIm8.mjs} +1 -1
  138. package/dist/{dist-DVrfqn8H.mjs.map → dist-CtTonIm8.mjs.map} +1 -1
  139. package/dist/features/descriptions/index.cjs +2 -1
  140. package/dist/features/descriptions/index.cjs.map +1 -0
  141. package/dist/features/descriptions/index.d.cts +231 -2
  142. package/dist/features/descriptions/index.d.mts +231 -3
  143. package/dist/features/descriptions/index.mjs +2 -1
  144. package/dist/features/descriptions/index.mjs.map +1 -0
  145. package/dist/features/search-modal/index.cjs +1 -1
  146. package/dist/features/search-modal/index.d.cts +14 -2
  147. package/dist/features/search-modal/index.d.mts +14 -2
  148. package/dist/features/search-modal/index.mjs +1 -1
  149. package/dist/features/tables/index.cjs +1 -1
  150. package/dist/features/tables/index.d.cts +1 -1
  151. package/dist/features/tables/index.d.mts +1 -2
  152. package/dist/features/tables/index.mjs +1 -1
  153. package/dist/features/tanstack-form/index.cjs +1 -1
  154. package/dist/features/tanstack-form/index.d.cts +1 -1
  155. package/dist/features/tanstack-form/index.d.mts +1 -1
  156. package/dist/features/tanstack-form/index.mjs +1 -1
  157. package/dist/features/text-editor/index.cjs +1 -1
  158. package/dist/features/text-editor/index.d.cts +2 -2
  159. package/dist/features/text-editor/index.d.mts +2 -2
  160. package/dist/features/text-editor/index.mjs +1 -1
  161. package/dist/heading-DLjnJc1q.cjs +2 -0
  162. package/dist/{heading-tGTqk3pA.cjs.map → heading-DLjnJc1q.cjs.map} +1 -1
  163. package/dist/heading-Fajfx88p.mjs +2 -0
  164. package/dist/{heading-De4Pn3mZ.mjs.map → heading-Fajfx88p.mjs.map} +1 -1
  165. package/dist/index-COLxGpG6.d.cts +3341 -0
  166. package/dist/index-COLxGpG6.d.mts +3341 -0
  167. package/dist/{index-BOLiQQmh.d.mts → index-Cqe6rsMe.d.cts} +170 -345
  168. package/dist/{index-C33ZNe5s.d.cts → index-DOaKN0wJ.d.cts} +5 -7
  169. package/dist/{index-DtlnICYj.d.mts → index-DOaKN0wJ.d.mts} +5 -7
  170. package/dist/{index-e8PriyFP.d.cts → index-DqlCqAcc.d.cts} +15 -33
  171. package/dist/{index-BUpm7Ukw.d.mts → index-DqlCqAcc.d.mts} +15 -33
  172. package/dist/{index-DvC_tPbo.d.cts → index-aPuQLHfq.d.mts} +170 -345
  173. package/dist/index.cjs +1 -1
  174. package/dist/index.d.cts +93 -93
  175. package/dist/index.d.mts +93 -93
  176. package/dist/index.mjs +1 -1
  177. package/dist/{input-BDCw9qBl.d.cts → input-BJMvABEL.d.cts} +6 -11
  178. package/dist/{input-BVTLQHpd.d.mts → input-BJMvABEL.d.mts} +6 -11
  179. package/dist/layouts/cms-layout/index.cjs +1 -1
  180. package/dist/layouts/cms-layout/index.d.cts +2 -2
  181. package/dist/layouts/cms-layout/index.d.mts +2 -2
  182. package/dist/layouts/cms-layout/index.mjs +1 -1
  183. package/dist/layouts/flex.cjs +2 -1
  184. package/dist/layouts/flex.cjs.map +1 -0
  185. package/dist/layouts/flex.d.cts +114 -2
  186. package/dist/layouts/flex.d.mts +114 -2
  187. package/dist/layouts/flex.mjs +2 -1
  188. package/dist/layouts/flex.mjs.map +1 -0
  189. package/dist/layouts/grid.cjs +2 -1
  190. package/dist/layouts/grid.cjs.map +1 -0
  191. package/dist/layouts/grid.d.cts +19 -2
  192. package/dist/layouts/grid.d.mts +19 -2
  193. package/dist/layouts/grid.mjs +2 -1
  194. package/dist/layouts/grid.mjs.map +1 -0
  195. package/dist/layouts/payment-layout/index.cjs +1 -1
  196. package/dist/layouts/payment-layout/index.d.cts +59 -2
  197. package/dist/layouts/payment-layout/index.d.mts +59 -2
  198. package/dist/layouts/payment-layout/index.mjs +1 -1
  199. package/dist/pages/FeatureDeveloping.cjs +2 -1
  200. package/dist/pages/FeatureDeveloping.cjs.map +1 -0
  201. package/dist/pages/FeatureDeveloping.d.cts +41 -2
  202. package/dist/pages/FeatureDeveloping.d.mts +41 -2
  203. package/dist/pages/FeatureDeveloping.mjs +2 -1
  204. package/dist/pages/FeatureDeveloping.mjs.map +1 -0
  205. package/dist/pages/FeatureFixing.cjs +2 -1
  206. package/dist/pages/FeatureFixing.cjs.map +1 -0
  207. package/dist/pages/FeatureFixing.d.cts +41 -2
  208. package/dist/pages/FeatureFixing.d.mts +41 -2
  209. package/dist/pages/FeatureFixing.mjs +2 -1
  210. package/dist/pages/FeatureFixing.mjs.map +1 -0
  211. package/dist/pages/LoginPage.cjs +2 -1
  212. package/dist/pages/LoginPage.cjs.map +1 -0
  213. package/dist/pages/LoginPage.d.cts +53 -2
  214. package/dist/pages/LoginPage.d.mts +53 -2
  215. package/dist/pages/LoginPage.mjs +2 -1
  216. package/dist/pages/LoginPage.mjs.map +1 -0
  217. package/dist/pages/NotAuthorized.cjs +2 -1
  218. package/dist/pages/NotAuthorized.cjs.map +1 -0
  219. package/dist/pages/NotAuthorized.d.cts +41 -2
  220. package/dist/pages/NotAuthorized.d.mts +41 -2
  221. package/dist/pages/NotAuthorized.mjs +2 -1
  222. package/dist/pages/NotAuthorized.mjs.map +1 -0
  223. package/dist/pages/NotFound.cjs +2 -1
  224. package/dist/pages/NotFound.cjs.map +1 -0
  225. package/dist/pages/NotFound.d.cts +41 -2
  226. package/dist/pages/NotFound.d.mts +41 -2
  227. package/dist/pages/NotFound.mjs +2 -1
  228. package/dist/pages/NotFound.mjs.map +1 -0
  229. package/dist/pages/RegisterPage.cjs +2 -1
  230. package/dist/pages/RegisterPage.cjs.map +1 -0
  231. package/dist/pages/RegisterPage.d.cts +50 -2
  232. package/dist/pages/RegisterPage.d.mts +50 -2
  233. package/dist/pages/RegisterPage.mjs +2 -1
  234. package/dist/pages/RegisterPage.mjs.map +1 -0
  235. package/dist/pages/VerifyEmailPage.cjs +2 -1
  236. package/dist/pages/VerifyEmailPage.cjs.map +1 -0
  237. package/dist/pages/VerifyEmailPage.d.cts +62 -2
  238. package/dist/pages/VerifyEmailPage.d.mts +62 -2
  239. package/dist/pages/VerifyEmailPage.mjs +2 -1
  240. package/dist/pages/VerifyEmailPage.mjs.map +1 -0
  241. package/dist/payment-layout-CG_l7Es-.mjs +2 -0
  242. package/dist/payment-layout-CG_l7Es-.mjs.map +1 -0
  243. package/dist/payment-layout-DfxNDF8G.cjs +2 -0
  244. package/dist/payment-layout-DfxNDF8G.cjs.map +1 -0
  245. package/dist/resizable-CNIYTd7k.d.cts +64 -0
  246. package/dist/resizable-CNIYTd7k.d.mts +64 -0
  247. package/dist/rolldown-runtime-C6qsp3rV.cjs +1 -0
  248. package/dist/search-modal-CMhsIxae.cjs +2 -0
  249. package/dist/search-modal-CMhsIxae.cjs.map +1 -0
  250. package/dist/search-modal-Cdmi2iyV.mjs +2 -0
  251. package/dist/search-modal-Cdmi2iyV.mjs.map +1 -0
  252. package/dist/systems/google.cjs +2 -1
  253. package/dist/systems/google.cjs.map +1 -0
  254. package/dist/systems/google.d.cts +48 -2
  255. package/dist/systems/google.d.mts +48 -2
  256. package/dist/systems/google.mjs +2 -1
  257. package/dist/systems/google.mjs.map +1 -0
  258. package/dist/tables-BHdeig0n.mjs +4 -0
  259. package/dist/tables-BHdeig0n.mjs.map +1 -0
  260. package/dist/tables-BfuoYxlt.cjs +4 -0
  261. package/dist/tables-BfuoYxlt.cjs.map +1 -0
  262. package/dist/tanstack-form-CVnMirZT.cjs +42 -0
  263. package/dist/tanstack-form-CVnMirZT.cjs.map +1 -0
  264. package/dist/tanstack-form-Dl6pl0mL.mjs +42 -0
  265. package/dist/tanstack-form-Dl6pl0mL.mjs.map +1 -0
  266. package/dist/text-editor-BQtIXOpM.mjs +2 -0
  267. package/dist/text-editor-BQtIXOpM.mjs.map +1 -0
  268. package/dist/text-editor-C6bmwDTt.cjs +2 -0
  269. package/dist/text-editor-C6bmwDTt.cjs.map +1 -0
  270. package/dist/{types-B-SuhI6Z.d.cts → types-cKvPPVBe.d.cts} +3 -3
  271. package/dist/{types-UB3NE0JY.d.mts → types-cKvPPVBe.d.mts} +3 -3
  272. package/dist/typography/paragraph.cjs +2 -1
  273. package/dist/typography/paragraph.cjs.map +1 -0
  274. package/dist/typography/paragraph.d.cts +46 -2
  275. package/dist/typography/paragraph.d.mts +46 -2
  276. package/dist/typography/paragraph.mjs +2 -1
  277. package/dist/typography/paragraph.mjs.map +1 -0
  278. package/dist/typography/title.cjs +2 -1
  279. package/dist/typography/title.cjs.map +1 -0
  280. package/dist/typography/title.d.cts +41 -2
  281. package/dist/typography/title.d.mts +41 -2
  282. package/dist/typography/title.mjs +2 -1
  283. package/dist/typography/title.mjs.map +1 -0
  284. package/dist/ui/alert-dialog.cjs +2 -1
  285. package/dist/ui/alert-dialog.cjs.map +1 -0
  286. package/dist/ui/alert-dialog.d.cts +88 -2
  287. package/dist/ui/alert-dialog.d.mts +88 -2
  288. package/dist/ui/alert-dialog.mjs +2 -1
  289. package/dist/ui/alert-dialog.mjs.map +1 -0
  290. package/dist/ui/alert.cjs +1 -1
  291. package/dist/ui/alert.d.cts +1 -1
  292. package/dist/ui/alert.d.mts +1 -1
  293. package/dist/ui/alert.mjs +1 -1
  294. package/dist/ui/aspect-ratio.cjs +2 -1
  295. package/dist/ui/aspect-ratio.cjs.map +1 -0
  296. package/dist/ui/aspect-ratio.d.cts +22 -2
  297. package/dist/ui/aspect-ratio.d.mts +22 -2
  298. package/dist/ui/aspect-ratio.mjs +2 -1
  299. package/dist/ui/aspect-ratio.mjs.map +1 -0
  300. package/dist/ui/avatar.cjs +2 -1
  301. package/dist/ui/avatar.cjs.map +1 -0
  302. package/dist/ui/avatar.d.cts +33 -2
  303. package/dist/ui/avatar.d.mts +33 -2
  304. package/dist/ui/avatar.mjs +2 -1
  305. package/dist/ui/avatar.mjs.map +1 -0
  306. package/dist/ui/badge.cjs +2 -1
  307. package/dist/ui/badge.cjs.map +1 -0
  308. package/dist/ui/badge.d.cts +1 -1
  309. package/dist/ui/badge.d.mts +1 -1
  310. package/dist/ui/badge.mjs +2 -1
  311. package/dist/ui/badge.mjs.map +1 -0
  312. package/dist/ui/breadcrumb.cjs +2 -1
  313. package/dist/ui/breadcrumb.cjs.map +1 -0
  314. package/dist/ui/breadcrumb.d.cts +69 -2
  315. package/dist/ui/breadcrumb.d.mts +69 -2
  316. package/dist/ui/breadcrumb.mjs +2 -1
  317. package/dist/ui/breadcrumb.mjs.map +1 -0
  318. package/dist/ui/button-group.cjs +2 -1
  319. package/dist/ui/button-group.cjs.map +1 -0
  320. package/dist/ui/button-group.d.cts +48 -2
  321. package/dist/ui/button-group.d.mts +48 -3
  322. package/dist/ui/button-group.mjs +2 -1
  323. package/dist/ui/button-group.mjs.map +1 -0
  324. package/dist/ui/button.cjs +2 -1
  325. package/dist/ui/button.cjs.map +1 -0
  326. package/dist/ui/button.d.cts +1 -1
  327. package/dist/ui/button.d.mts +1 -1
  328. package/dist/ui/button.mjs +2 -1
  329. package/dist/ui/button.mjs.map +1 -0
  330. package/dist/ui/buttons/add-new.cjs +2 -1
  331. package/dist/ui/buttons/add-new.cjs.map +1 -0
  332. package/dist/ui/buttons/add-new.d.cts +16 -2
  333. package/dist/ui/buttons/add-new.d.mts +16 -2
  334. package/dist/ui/buttons/add-new.mjs +2 -1
  335. package/dist/ui/buttons/add-new.mjs.map +1 -0
  336. package/dist/ui/buttons/edit.cjs +2 -1
  337. package/dist/ui/buttons/edit.cjs.map +1 -0
  338. package/dist/ui/buttons/edit.d.cts +16 -2
  339. package/dist/ui/buttons/edit.d.mts +16 -2
  340. package/dist/ui/buttons/edit.mjs +2 -1
  341. package/dist/ui/buttons/edit.mjs.map +1 -0
  342. package/dist/ui/buttons/refresh.cjs +2 -1
  343. package/dist/ui/buttons/refresh.cjs.map +1 -0
  344. package/dist/ui/buttons/refresh.d.cts +16 -2
  345. package/dist/ui/buttons/refresh.d.mts +16 -2
  346. package/dist/ui/buttons/refresh.mjs +2 -1
  347. package/dist/ui/buttons/refresh.mjs.map +1 -0
  348. package/dist/ui/buttons/trash.cjs +2 -1
  349. package/dist/ui/buttons/trash.cjs.map +1 -0
  350. package/dist/ui/buttons/trash.d.cts +16 -2
  351. package/dist/ui/buttons/trash.d.mts +16 -2
  352. package/dist/ui/buttons/trash.mjs +2 -1
  353. package/dist/ui/buttons/trash.mjs.map +1 -0
  354. package/dist/ui/buttons/upload-image.cjs +2 -1
  355. package/dist/ui/buttons/upload-image.cjs.map +1 -0
  356. package/dist/ui/buttons/upload-image.d.cts +23 -2
  357. package/dist/ui/buttons/upload-image.d.mts +23 -2
  358. package/dist/ui/buttons/upload-image.mjs +2 -1
  359. package/dist/ui/buttons/upload-image.mjs.map +1 -0
  360. package/dist/ui/calendar.cjs +2 -1
  361. package/dist/ui/calendar.cjs.map +1 -0
  362. package/dist/ui/calendar.d.cts +43 -2
  363. package/dist/ui/calendar.d.mts +43 -3
  364. package/dist/ui/calendar.mjs +2 -1
  365. package/dist/ui/calendar.mjs.map +1 -0
  366. package/dist/ui/card.cjs +2 -1
  367. package/dist/ui/card.cjs.map +1 -0
  368. package/dist/ui/card.d.cts +60 -2
  369. package/dist/ui/card.d.mts +60 -2
  370. package/dist/ui/card.mjs +2 -1
  371. package/dist/ui/card.mjs.map +1 -0
  372. package/dist/ui/carousel.cjs +2 -1
  373. package/dist/ui/carousel.cjs.map +1 -0
  374. package/dist/ui/carousel.d.cts +70 -2
  375. package/dist/ui/carousel.d.mts +70 -3
  376. package/dist/ui/carousel.mjs +2 -1
  377. package/dist/ui/carousel.mjs.map +1 -0
  378. package/dist/ui/checkbox.cjs +2 -1
  379. package/dist/ui/checkbox.cjs.map +1 -0
  380. package/dist/ui/checkbox.d.cts +24 -2
  381. package/dist/ui/checkbox.d.mts +24 -2
  382. package/dist/ui/checkbox.mjs +2 -1
  383. package/dist/ui/checkbox.mjs.map +1 -0
  384. package/dist/ui/collapsible.cjs +2 -1
  385. package/dist/ui/collapsible.cjs.map +1 -0
  386. package/dist/ui/collapsible.d.cts +32 -2
  387. package/dist/ui/collapsible.d.mts +32 -2
  388. package/dist/ui/collapsible.mjs +2 -1
  389. package/dist/ui/collapsible.mjs.map +1 -0
  390. package/dist/ui/command.cjs +2 -1
  391. package/dist/ui/command.cjs.map +1 -0
  392. package/dist/ui/command.d.cts +87 -2
  393. package/dist/ui/command.d.mts +87 -3
  394. package/dist/ui/command.mjs +2 -1
  395. package/dist/ui/command.mjs.map +1 -0
  396. package/dist/ui/context-menu.cjs +2 -1
  397. package/dist/ui/context-menu.cjs.map +1 -0
  398. package/dist/ui/context-menu.d.cts +123 -2
  399. package/dist/ui/context-menu.d.mts +123 -2
  400. package/dist/ui/context-menu.mjs +2 -1
  401. package/dist/ui/context-menu.mjs.map +1 -0
  402. package/dist/ui/dialog.cjs +2 -1
  403. package/dist/ui/dialog.cjs.map +1 -0
  404. package/dist/ui/dialog.d.cts +1 -1
  405. package/dist/ui/dialog.d.mts +1 -1
  406. package/dist/ui/dialog.mjs +2 -1
  407. package/dist/ui/dialog.mjs.map +1 -0
  408. package/dist/ui/drawer.cjs +2 -1
  409. package/dist/ui/drawer.cjs.map +1 -0
  410. package/dist/ui/drawer.d.cts +70 -2
  411. package/dist/ui/drawer.d.mts +70 -2
  412. package/dist/ui/drawer.mjs +2 -1
  413. package/dist/ui/drawer.mjs.map +1 -0
  414. package/dist/ui/dropdown-menu.cjs +2 -1
  415. package/dist/ui/dropdown-menu.cjs.map +1 -0
  416. package/dist/ui/dropdown-menu.d.cts +125 -2
  417. package/dist/ui/dropdown-menu.d.mts +125 -2
  418. package/dist/ui/dropdown-menu.mjs +2 -1
  419. package/dist/ui/dropdown-menu.mjs.map +1 -0
  420. package/dist/ui/empty.cjs +2 -1
  421. package/dist/ui/empty.cjs.map +1 -0
  422. package/dist/ui/empty.d.cts +65 -2
  423. package/dist/ui/empty.d.mts +65 -2
  424. package/dist/ui/empty.mjs +2 -1
  425. package/dist/ui/empty.mjs.map +1 -0
  426. package/dist/ui/field.cjs +2 -1
  427. package/dist/ui/field.cjs.map +1 -0
  428. package/dist/ui/field.d.cts +22 -24
  429. package/dist/ui/field.d.mts +22 -24
  430. package/dist/ui/field.mjs +2 -1
  431. package/dist/ui/field.mjs.map +1 -0
  432. package/dist/ui/file-uploader.cjs +3 -1
  433. package/dist/ui/file-uploader.cjs.map +1 -0
  434. package/dist/ui/file-uploader.d.cts +101 -2
  435. package/dist/ui/file-uploader.d.mts +101 -2
  436. package/dist/ui/file-uploader.mjs +3 -1
  437. package/dist/ui/file-uploader.mjs.map +1 -0
  438. package/dist/ui/form.cjs +2 -1
  439. package/dist/ui/form.cjs.map +1 -0
  440. package/dist/ui/form.d.cts +109 -2
  441. package/dist/ui/form.d.mts +109 -2
  442. package/dist/ui/form.mjs +2 -1
  443. package/dist/ui/form.mjs.map +1 -0
  444. package/dist/ui/hover-card.cjs +2 -1
  445. package/dist/ui/hover-card.cjs.map +1 -0
  446. package/dist/ui/hover-card.d.cts +35 -2
  447. package/dist/ui/hover-card.d.mts +35 -2
  448. package/dist/ui/hover-card.mjs +2 -1
  449. package/dist/ui/hover-card.mjs.map +1 -0
  450. package/dist/ui/image.cjs +2 -1
  451. package/dist/ui/image.cjs.map +1 -0
  452. package/dist/ui/image.d.cts +27 -2
  453. package/dist/ui/image.d.mts +27 -2
  454. package/dist/ui/image.mjs +2 -1
  455. package/dist/ui/image.mjs.map +1 -0
  456. package/dist/ui/input-otp.cjs +2 -1
  457. package/dist/ui/input-otp.cjs.map +1 -0
  458. package/dist/ui/input-otp.d.cts +56 -2
  459. package/dist/ui/input-otp.d.mts +56 -2
  460. package/dist/ui/input-otp.mjs +2 -1
  461. package/dist/ui/input-otp.mjs.map +1 -0
  462. package/dist/ui/input.cjs +2 -1
  463. package/dist/ui/input.cjs.map +1 -0
  464. package/dist/ui/input.d.cts +1 -1
  465. package/dist/ui/input.d.mts +1 -1
  466. package/dist/ui/input.mjs +2 -1
  467. package/dist/ui/input.mjs.map +1 -0
  468. package/dist/ui/inputs/search-input.cjs +2 -1
  469. package/dist/ui/inputs/search-input.cjs.map +1 -0
  470. package/dist/ui/inputs/search-input.d.cts +27 -2
  471. package/dist/ui/inputs/search-input.d.mts +27 -3
  472. package/dist/ui/inputs/search-input.mjs +2 -1
  473. package/dist/ui/inputs/search-input.mjs.map +1 -0
  474. package/dist/ui/item.cjs +2 -1
  475. package/dist/ui/item.cjs.map +1 -0
  476. package/dist/ui/item.d.cts +99 -2
  477. package/dist/ui/item.d.mts +99 -3
  478. package/dist/ui/item.mjs +2 -1
  479. package/dist/ui/item.mjs.map +1 -0
  480. package/dist/ui/label.cjs +2 -1
  481. package/dist/ui/label.cjs.map +1 -0
  482. package/dist/ui/label.d.cts +22 -2
  483. package/dist/ui/label.d.mts +22 -2
  484. package/dist/ui/label.mjs +2 -1
  485. package/dist/ui/label.mjs.map +1 -0
  486. package/dist/ui/menubar.cjs +2 -1
  487. package/dist/ui/menubar.cjs.map +1 -0
  488. package/dist/ui/menubar.d.cts +133 -2
  489. package/dist/ui/menubar.d.mts +133 -2
  490. package/dist/ui/menubar.mjs +2 -1
  491. package/dist/ui/menubar.mjs.map +1 -0
  492. package/dist/ui/multi-select.cjs +2 -1
  493. package/dist/ui/multi-select.cjs.map +1 -0
  494. package/dist/ui/multi-select.d.cts +116 -2
  495. package/dist/ui/multi-select.d.mts +116 -4
  496. package/dist/ui/multi-select.mjs +2 -1
  497. package/dist/ui/multi-select.mjs.map +1 -0
  498. package/dist/ui/navigation-menu.cjs +2 -1
  499. package/dist/ui/navigation-menu.cjs.map +1 -0
  500. package/dist/ui/navigation-menu.d.cts +73 -2
  501. package/dist/ui/navigation-menu.d.mts +73 -2
  502. package/dist/ui/navigation-menu.mjs +2 -1
  503. package/dist/ui/navigation-menu.mjs.map +1 -0
  504. package/dist/ui/pagination.cjs +2 -1
  505. package/dist/ui/pagination.cjs.map +1 -0
  506. package/dist/ui/pagination.d.cts +64 -2
  507. package/dist/ui/pagination.d.mts +64 -3
  508. package/dist/ui/pagination.mjs +2 -1
  509. package/dist/ui/pagination.mjs.map +1 -0
  510. package/dist/ui/popover.cjs +2 -1
  511. package/dist/ui/popover.cjs.map +1 -0
  512. package/dist/ui/popover.d.cts +50 -2
  513. package/dist/ui/popover.d.mts +50 -2
  514. package/dist/ui/popover.mjs +2 -1
  515. package/dist/ui/popover.mjs.map +1 -0
  516. package/dist/ui/progress.cjs +2 -1
  517. package/dist/ui/progress.cjs.map +1 -0
  518. package/dist/ui/progress.d.cts +21 -2
  519. package/dist/ui/progress.d.mts +21 -2
  520. package/dist/ui/progress.mjs +2 -1
  521. package/dist/ui/progress.mjs.map +1 -0
  522. package/dist/ui/radio-group.cjs +2 -1
  523. package/dist/ui/radio-group.cjs.map +1 -0
  524. package/dist/ui/radio-group.d.cts +35 -2
  525. package/dist/ui/radio-group.d.mts +35 -2
  526. package/dist/ui/radio-group.mjs +2 -1
  527. package/dist/ui/radio-group.mjs.map +1 -0
  528. package/dist/ui/resizable.cjs +2 -1
  529. package/dist/ui/resizable.cjs.map +1 -0
  530. package/dist/ui/resizable.d.cts +1 -1
  531. package/dist/ui/resizable.d.mts +1 -1
  532. package/dist/ui/resizable.mjs +2 -1
  533. package/dist/ui/resizable.mjs.map +1 -0
  534. package/dist/ui/scroll-area.cjs +2 -1
  535. package/dist/ui/scroll-area.cjs.map +1 -0
  536. package/dist/ui/scroll-area.d.cts +35 -2
  537. package/dist/ui/scroll-area.d.mts +35 -2
  538. package/dist/ui/scroll-area.mjs +2 -1
  539. package/dist/ui/scroll-area.mjs.map +1 -0
  540. package/dist/ui/select.cjs +2 -1
  541. package/dist/ui/select.cjs.map +1 -0
  542. package/dist/ui/select.d.cts +74 -2
  543. package/dist/ui/select.d.mts +74 -2
  544. package/dist/ui/select.mjs +2 -1
  545. package/dist/ui/select.mjs.map +1 -0
  546. package/dist/ui/separator.cjs +2 -1
  547. package/dist/ui/separator.cjs.map +1 -0
  548. package/dist/ui/separator.d.cts +32 -2
  549. package/dist/ui/separator.d.mts +32 -2
  550. package/dist/ui/separator.mjs +2 -1
  551. package/dist/ui/separator.mjs.map +1 -0
  552. package/dist/ui/sheet.cjs +2 -1
  553. package/dist/ui/sheet.cjs.map +1 -0
  554. package/dist/ui/sheet.d.cts +66 -2
  555. package/dist/ui/sheet.d.mts +66 -2
  556. package/dist/ui/sheet.mjs +2 -1
  557. package/dist/ui/sheet.mjs.map +1 -0
  558. package/dist/ui/skeleton.cjs +2 -1
  559. package/dist/ui/skeleton.cjs.map +1 -0
  560. package/dist/ui/skeleton.d.cts +24 -2
  561. package/dist/ui/skeleton.d.mts +24 -2
  562. package/dist/ui/skeleton.mjs +2 -1
  563. package/dist/ui/skeleton.mjs.map +1 -0
  564. package/dist/ui/slider.cjs +2 -1
  565. package/dist/ui/slider.cjs.map +1 -0
  566. package/dist/ui/slider.d.cts +24 -2
  567. package/dist/ui/slider.d.mts +24 -2
  568. package/dist/ui/slider.mjs +2 -1
  569. package/dist/ui/slider.mjs.map +1 -0
  570. package/dist/ui/sonner.cjs +2 -1
  571. package/dist/ui/sonner.cjs.map +1 -0
  572. package/dist/ui/sonner.d.cts +22 -2
  573. package/dist/ui/sonner.d.mts +22 -2
  574. package/dist/ui/sonner.mjs +2 -1
  575. package/dist/ui/sonner.mjs.map +1 -0
  576. package/dist/ui/spinner.cjs +2 -1
  577. package/dist/ui/spinner.cjs.map +1 -0
  578. package/dist/ui/spinner.d.cts +22 -2
  579. package/dist/ui/spinner.d.mts +22 -2
  580. package/dist/ui/spinner.mjs +2 -1
  581. package/dist/ui/spinner.mjs.map +1 -0
  582. package/dist/ui/switch.cjs +2 -1
  583. package/dist/ui/switch.cjs.map +1 -0
  584. package/dist/ui/switch.d.cts +24 -2
  585. package/dist/ui/switch.d.mts +24 -2
  586. package/dist/ui/switch.mjs +2 -1
  587. package/dist/ui/switch.mjs.map +1 -0
  588. package/dist/ui/table.cjs +2 -1
  589. package/dist/ui/table.cjs.map +1 -0
  590. package/dist/ui/table.d.cts +70 -2
  591. package/dist/ui/table.d.mts +70 -2
  592. package/dist/ui/table.mjs +2 -1
  593. package/dist/ui/table.mjs.map +1 -0
  594. package/dist/ui/tabs.cjs +2 -1
  595. package/dist/ui/tabs.cjs.map +1 -0
  596. package/dist/ui/tabs.d.cts +42 -2
  597. package/dist/ui/tabs.d.mts +42 -2
  598. package/dist/ui/tabs.mjs +2 -1
  599. package/dist/ui/tabs.mjs.map +1 -0
  600. package/dist/ui/textarea.cjs +2 -1
  601. package/dist/ui/textarea.cjs.map +1 -0
  602. package/dist/ui/textarea.d.cts +26 -2
  603. package/dist/ui/textarea.d.mts +26 -2
  604. package/dist/ui/textarea.mjs +2 -1
  605. package/dist/ui/textarea.mjs.map +1 -0
  606. package/dist/ui/toggle-group.cjs +2 -1
  607. package/dist/ui/toggle-group.cjs.map +1 -0
  608. package/dist/ui/toggle-group.d.cts +37 -2
  609. package/dist/ui/toggle-group.d.mts +37 -3
  610. package/dist/ui/toggle-group.mjs +2 -1
  611. package/dist/ui/toggle-group.mjs.map +1 -0
  612. package/dist/ui/toggle.cjs +2 -1
  613. package/dist/ui/toggle.cjs.map +1 -0
  614. package/dist/ui/toggle.d.cts +30 -2
  615. package/dist/ui/toggle.d.mts +30 -2
  616. package/dist/ui/toggle.mjs +2 -1
  617. package/dist/ui/toggle.mjs.map +1 -0
  618. package/dist/ui/tooltip.cjs +2 -1
  619. package/dist/ui/tooltip.cjs.map +1 -0
  620. package/dist/ui/tooltip.d.cts +53 -2
  621. package/dist/ui/tooltip.d.mts +53 -2
  622. package/dist/ui/tooltip.mjs +2 -1
  623. package/dist/ui/tooltip.mjs.map +1 -0
  624. package/package.json +2 -2
  625. package/dist/FeatureDeveloping-Bpmk3ZyS.d.cts +0 -43
  626. package/dist/FeatureDeveloping-CVFrndc_.cjs +0 -2
  627. package/dist/FeatureDeveloping-CVFrndc_.cjs.map +0 -1
  628. package/dist/FeatureDeveloping-k_14m44U.mjs +0 -2
  629. package/dist/FeatureDeveloping-k_14m44U.mjs.map +0 -1
  630. package/dist/FeatureDeveloping-oS433qZK.d.mts +0 -43
  631. package/dist/FeatureFixing-CRTE4tkV.d.mts +0 -43
  632. package/dist/FeatureFixing-CqDnOmou.cjs +0 -2
  633. package/dist/FeatureFixing-CqDnOmou.cjs.map +0 -1
  634. package/dist/FeatureFixing-D7qYhigu.mjs +0 -2
  635. package/dist/FeatureFixing-D7qYhigu.mjs.map +0 -1
  636. package/dist/FeatureFixing-Vwb-odpJ.d.cts +0 -43
  637. package/dist/LoginPage-B7SgjP72.d.cts +0 -55
  638. package/dist/LoginPage-BDh57TIY.mjs +0 -2
  639. package/dist/LoginPage-BDh57TIY.mjs.map +0 -1
  640. package/dist/LoginPage-Bsh_Wo-4.d.mts +0 -55
  641. package/dist/LoginPage-CSewNEGN.cjs +0 -2
  642. package/dist/LoginPage-CSewNEGN.cjs.map +0 -1
  643. package/dist/NotAuthorized-B1nln3YY.d.mts +0 -43
  644. package/dist/NotAuthorized-BBlhgNjt.cjs +0 -2
  645. package/dist/NotAuthorized-BBlhgNjt.cjs.map +0 -1
  646. package/dist/NotAuthorized-DcXH7UbQ.d.cts +0 -43
  647. package/dist/NotAuthorized-xXIwCXtZ.mjs +0 -2
  648. package/dist/NotAuthorized-xXIwCXtZ.mjs.map +0 -1
  649. package/dist/NotFound-BOAR7QCc.cjs +0 -2
  650. package/dist/NotFound-BOAR7QCc.cjs.map +0 -1
  651. package/dist/NotFound-Co0y_Fpa.d.cts +0 -43
  652. package/dist/NotFound-H7T1wCkf.mjs +0 -2
  653. package/dist/NotFound-H7T1wCkf.mjs.map +0 -1
  654. package/dist/NotFound-Kvw-yvr_.d.mts +0 -43
  655. package/dist/RegisterPage-BI5efPEP.cjs +0 -2
  656. package/dist/RegisterPage-BI5efPEP.cjs.map +0 -1
  657. package/dist/RegisterPage-DKiXE8U6.d.mts +0 -52
  658. package/dist/RegisterPage-DluyCA1L.mjs +0 -2
  659. package/dist/RegisterPage-DluyCA1L.mjs.map +0 -1
  660. package/dist/RegisterPage-qEpX0gUP.d.cts +0 -52
  661. package/dist/VerifyEmailPage-D3U6V5IR.mjs +0 -2
  662. package/dist/VerifyEmailPage-D3U6V5IR.mjs.map +0 -1
  663. package/dist/VerifyEmailPage-DRQiyUqo.cjs +0 -2
  664. package/dist/VerifyEmailPage-DRQiyUqo.cjs.map +0 -1
  665. package/dist/VerifyEmailPage-Dd59Girn.d.cts +0 -64
  666. package/dist/VerifyEmailPage-ZaRE0r8m.d.mts +0 -64
  667. package/dist/add-new-B35fn_Bz.mjs +0 -2
  668. package/dist/add-new-B35fn_Bz.mjs.map +0 -1
  669. package/dist/add-new-DqRZeMNy.d.mts +0 -17
  670. package/dist/add-new-deaz-L5t.cjs +0 -2
  671. package/dist/add-new-deaz-L5t.cjs.map +0 -1
  672. package/dist/add-new-pqYC7xmc.d.cts +0 -17
  673. package/dist/alert-DDdHIRib.cjs +0 -2
  674. package/dist/alert-dialog-B9ThoUnv.cjs +0 -2
  675. package/dist/alert-dialog-B9ThoUnv.cjs.map +0 -1
  676. package/dist/alert-dialog-D0jOWqaA.d.mts +0 -90
  677. package/dist/alert-dialog-DqIS6qRz.mjs +0 -2
  678. package/dist/alert-dialog-DqIS6qRz.mjs.map +0 -1
  679. package/dist/alert-dialog-TBiCQ9Ty.d.cts +0 -90
  680. package/dist/aspect-ratio-BsfIALEV.d.mts +0 -24
  681. package/dist/aspect-ratio-Cd2mBXiE.cjs +0 -2
  682. package/dist/aspect-ratio-Cd2mBXiE.cjs.map +0 -1
  683. package/dist/aspect-ratio-DP12ssDX.mjs +0 -2
  684. package/dist/aspect-ratio-DP12ssDX.mjs.map +0 -1
  685. package/dist/aspect-ratio-Dy7SplBM.d.cts +0 -24
  686. package/dist/avatar-CVRRoJ05.cjs +0 -2
  687. package/dist/avatar-CVRRoJ05.cjs.map +0 -1
  688. package/dist/avatar-XFoz-EPk.d.cts +0 -35
  689. package/dist/avatar-tjgTFpVU.mjs +0 -2
  690. package/dist/avatar-tjgTFpVU.mjs.map +0 -1
  691. package/dist/avatar-zDJh1tw9.d.mts +0 -35
  692. package/dist/badge-7bcsD0vA.cjs +0 -2
  693. package/dist/badge-7bcsD0vA.cjs.map +0 -1
  694. package/dist/badge-CG6dbI29.mjs +0 -2
  695. package/dist/badge-CG6dbI29.mjs.map +0 -1
  696. package/dist/breadcrumb-BhUXmEGd.d.cts +0 -72
  697. package/dist/breadcrumb-D5EVqGzZ.d.mts +0 -72
  698. package/dist/breadcrumb-DgCIacvh.cjs +0 -2
  699. package/dist/breadcrumb-DgCIacvh.cjs.map +0 -1
  700. package/dist/breadcrumb-RCZAaQ1l.mjs +0 -2
  701. package/dist/breadcrumb-RCZAaQ1l.mjs.map +0 -1
  702. package/dist/button-C--DAN1D.cjs +0 -2
  703. package/dist/button-C--DAN1D.cjs.map +0 -1
  704. package/dist/button-CCVJTHBI.mjs +0 -2
  705. package/dist/button-CCVJTHBI.mjs.map +0 -1
  706. package/dist/button-group-4oHvYHtz.cjs +0 -2
  707. package/dist/button-group-4oHvYHtz.cjs.map +0 -1
  708. package/dist/button-group-CDRMmMyT.d.cts +0 -50
  709. package/dist/button-group-CRuT_zEE.mjs +0 -2
  710. package/dist/button-group-CRuT_zEE.mjs.map +0 -1
  711. package/dist/button-group-wrn32Sqe.d.mts +0 -50
  712. package/dist/button.variants-4kw6plrv.cjs +0 -2
  713. package/dist/calendar-BUPDN6CU.d.cts +0 -45
  714. package/dist/calendar-Boz9U-O2.d.mts +0 -45
  715. package/dist/calendar-CTyL_3WY.cjs +0 -2
  716. package/dist/calendar-CTyL_3WY.cjs.map +0 -1
  717. package/dist/calendar-DyzwC2TQ.mjs +0 -2
  718. package/dist/calendar-DyzwC2TQ.mjs.map +0 -1
  719. package/dist/card-B8Pm6iEs.cjs +0 -2
  720. package/dist/card-B8Pm6iEs.cjs.map +0 -1
  721. package/dist/card-DDM5jg3U.d.mts +0 -63
  722. package/dist/card-DpQKFp4f.mjs +0 -2
  723. package/dist/card-DpQKFp4f.mjs.map +0 -1
  724. package/dist/card-a8tqytoT.d.cts +0 -63
  725. package/dist/carousel-BayGB372.cjs +0 -2
  726. package/dist/carousel-BayGB372.cjs.map +0 -1
  727. package/dist/carousel-Cm4szl4A.d.cts +0 -71
  728. package/dist/carousel-D8xUkFZ-.mjs +0 -2
  729. package/dist/carousel-D8xUkFZ-.mjs.map +0 -1
  730. package/dist/carousel-Y5TlCJ96.d.mts +0 -71
  731. package/dist/checkbox-Bbn3OZQd.d.mts +0 -26
  732. package/dist/checkbox-Bt4BgYMB.cjs +0 -2
  733. package/dist/checkbox-Bt4BgYMB.cjs.map +0 -1
  734. package/dist/checkbox-CBhlnGGv.mjs +0 -2
  735. package/dist/checkbox-CBhlnGGv.mjs.map +0 -1
  736. package/dist/checkbox-CccXRTYH.d.cts +0 -26
  737. package/dist/chunk-350yNsax.cjs +0 -1
  738. package/dist/close-Co-WLsSG.mjs.map +0 -1
  739. package/dist/close-DYBVx-8O.cjs +0 -2
  740. package/dist/close-DYBVx-8O.cjs.map +0 -1
  741. package/dist/cms-layout-B7lc5hIX.mjs +0 -2
  742. package/dist/cms-layout-B7lc5hIX.mjs.map +0 -1
  743. package/dist/cms-layout-DeTdDLXr.cjs +0 -2
  744. package/dist/cms-layout-DeTdDLXr.cjs.map +0 -1
  745. package/dist/collapsible-CLr3JLeA.mjs +0 -2
  746. package/dist/collapsible-CLr3JLeA.mjs.map +0 -1
  747. package/dist/collapsible-LInIoQlU.d.cts +0 -34
  748. package/dist/collapsible-RWAWE2lS.d.mts +0 -34
  749. package/dist/collapsible-rx0m3LuF.cjs +0 -2
  750. package/dist/collapsible-rx0m3LuF.cjs.map +0 -1
  751. package/dist/command-BQFbzzTr.cjs +0 -2
  752. package/dist/command-BQFbzzTr.cjs.map +0 -1
  753. package/dist/command-BlvmwwTr.d.mts +0 -89
  754. package/dist/command-CQMdYoAm.mjs +0 -2
  755. package/dist/command-CQMdYoAm.mjs.map +0 -1
  756. package/dist/command-DAudAVpm.d.cts +0 -89
  757. package/dist/confirm-dialog-C5ULtwJE.cjs +0 -2
  758. package/dist/confirm-dialog-C5ULtwJE.cjs.map +0 -1
  759. package/dist/confirm-dialog-CNWJKBc9.d.mts +0 -142
  760. package/dist/confirm-dialog-DG_3RvTI.d.cts +0 -142
  761. package/dist/confirm-dialog-u2GP8uPi.mjs +0 -2
  762. package/dist/confirm-dialog-u2GP8uPi.mjs.map +0 -1
  763. package/dist/context-menu-C9nXY3Bq.d.cts +0 -125
  764. package/dist/context-menu-CplWspvB.cjs +0 -2
  765. package/dist/context-menu-CplWspvB.cjs.map +0 -1
  766. package/dist/context-menu-DrF_sQB1.d.mts +0 -125
  767. package/dist/context-menu-a50s2_E_.mjs +0 -2
  768. package/dist/context-menu-a50s2_E_.mjs.map +0 -1
  769. package/dist/country-BHMqKldc.d.mts +0 -22
  770. package/dist/country-CnXNnGmY.cjs +0 -2
  771. package/dist/country-CnXNnGmY.cjs.map +0 -1
  772. package/dist/country-DUD_q-yS.d.cts +0 -22
  773. package/dist/country-lc1l_viY.mjs +0 -2
  774. package/dist/country-lc1l_viY.mjs.map +0 -1
  775. package/dist/data-list-BGmCL71V.cjs +0 -2
  776. package/dist/data-list-BGmCL71V.cjs.map +0 -1
  777. package/dist/data-list-CXWcUFU1.mjs +0 -2
  778. package/dist/data-list-CXWcUFU1.mjs.map +0 -1
  779. package/dist/data-list-Chl3KU5n.d.mts +0 -43
  780. package/dist/data-list-DwyNusTs.d.cts +0 -43
  781. package/dist/date-88lk-VJF.mjs.map +0 -1
  782. package/dist/date-BBBx-rIM.cjs +0 -2
  783. package/dist/date-BBBx-rIM.cjs.map +0 -1
  784. package/dist/date-tooltip-BdVWCJlg.cjs +0 -2
  785. package/dist/date-tooltip-BdVWCJlg.cjs.map +0 -1
  786. package/dist/date-tooltip-CoPcr3Ju.d.mts +0 -19
  787. package/dist/date-tooltip-DZ3NlfdZ.d.cts +0 -19
  788. package/dist/date-tooltip-OPAmlgBg.mjs +0 -2
  789. package/dist/date-tooltip-OPAmlgBg.mjs.map +0 -1
  790. package/dist/date-viiYGAtR.d.mts +0 -39
  791. package/dist/date-xQIXRJ71.d.cts +0 -39
  792. package/dist/descriptions-CgkBHjKD.mjs +0 -2
  793. package/dist/descriptions-CgkBHjKD.mjs.map +0 -1
  794. package/dist/descriptions-RNxfgfpM.cjs +0 -2
  795. package/dist/descriptions-RNxfgfpM.cjs.map +0 -1
  796. package/dist/detail-dialog-BLApH3eD.cjs +0 -2
  797. package/dist/detail-dialog-BLApH3eD.cjs.map +0 -1
  798. package/dist/detail-dialog-CXKrznrp.mjs +0 -2
  799. package/dist/detail-dialog-CXKrznrp.mjs.map +0 -1
  800. package/dist/dialog--BvCecaD.mjs +0 -2
  801. package/dist/dialog--BvCecaD.mjs.map +0 -1
  802. package/dist/dialog-DNEUhYSv.cjs +0 -2
  803. package/dist/dialog-DNEUhYSv.cjs.map +0 -1
  804. package/dist/dist-Cx5ufCdr.cjs +0 -2
  805. package/dist/drawer-BYYCsheu.mjs +0 -2
  806. package/dist/drawer-BYYCsheu.mjs.map +0 -1
  807. package/dist/drawer-CjnhVMTw.d.mts +0 -72
  808. package/dist/drawer-DqAutQLS.d.cts +0 -72
  809. package/dist/drawer-H8uD0q-C.cjs +0 -2
  810. package/dist/drawer-H8uD0q-C.cjs.map +0 -1
  811. package/dist/dropdown-menu-CpA9s4II.d.cts +0 -127
  812. package/dist/dropdown-menu-CtJ_OM19.cjs +0 -2
  813. package/dist/dropdown-menu-CtJ_OM19.cjs.map +0 -1
  814. package/dist/dropdown-menu-DhKquziD.mjs +0 -2
  815. package/dist/dropdown-menu-DhKquziD.mjs.map +0 -1
  816. package/dist/dropdown-menu-aDVEkr4L.d.mts +0 -127
  817. package/dist/edit-B6hhKU53.d.cts +0 -17
  818. package/dist/edit-CJH1v_md.d.mts +0 -17
  819. package/dist/edit-DwHuMQMh.cjs +0 -2
  820. package/dist/edit-DwHuMQMh.cjs.map +0 -1
  821. package/dist/edit-FIiUWxZq.mjs +0 -2
  822. package/dist/edit-FIiUWxZq.mjs.map +0 -1
  823. package/dist/empty-BhV9ASYf.d.mts +0 -68
  824. package/dist/empty-CmIJYhmV.cjs +0 -2
  825. package/dist/empty-CmIJYhmV.cjs.map +0 -1
  826. package/dist/empty-CoKfJtGD.mjs +0 -2
  827. package/dist/empty-CoKfJtGD.mjs.map +0 -1
  828. package/dist/empty-D6t3C3WX.mjs +0 -2
  829. package/dist/empty-D6t3C3WX.mjs.map +0 -1
  830. package/dist/empty-DaK_4UmN.d.cts +0 -68
  831. package/dist/empty-OVsSwbVn.d.mts +0 -21
  832. package/dist/empty-dUZoxaBx.cjs +0 -2
  833. package/dist/empty-dUZoxaBx.cjs.map +0 -1
  834. package/dist/empty-z1Ft5uT1.d.cts +0 -21
  835. package/dist/error-dialog-B8CXPcst.cjs +0 -2
  836. package/dist/error-dialog-B8CXPcst.cjs.map +0 -1
  837. package/dist/error-dialog-D0jvqNoY.d.mts +0 -25
  838. package/dist/error-dialog-DlwWpKEY.d.cts +0 -25
  839. package/dist/error-dialog-DnntjOS9.mjs +0 -2
  840. package/dist/error-dialog-DnntjOS9.mjs.map +0 -1
  841. package/dist/field-BxYoF5AX.mjs +0 -2
  842. package/dist/field-BxYoF5AX.mjs.map +0 -1
  843. package/dist/field-fIef7NR0.cjs +0 -2
  844. package/dist/field-fIef7NR0.cjs.map +0 -1
  845. package/dist/file-uploader-BM0x9VBh.cjs +0 -3
  846. package/dist/file-uploader-BM0x9VBh.cjs.map +0 -1
  847. package/dist/file-uploader-BTWXTBeQ.mjs +0 -3
  848. package/dist/file-uploader-BTWXTBeQ.mjs.map +0 -1
  849. package/dist/file-uploader-Bcq3zzxa.d.cts +0 -103
  850. package/dist/file-uploader-nUOkG_fv.d.mts +0 -103
  851. package/dist/flex-BSTiMh2t.d.mts +0 -117
  852. package/dist/flex-Bx9Nmr53.mjs +0 -2
  853. package/dist/flex-Bx9Nmr53.mjs.map +0 -1
  854. package/dist/flex-ClUVVSda.d.cts +0 -117
  855. package/dist/flex-ld7BqXoM.cjs +0 -2
  856. package/dist/flex-ld7BqXoM.cjs.map +0 -1
  857. package/dist/form-BZAtjwSL.d.mts +0 -112
  858. package/dist/form-Cek0ebE_.d.cts +0 -112
  859. package/dist/form-DvtaketZ.mjs +0 -2
  860. package/dist/form-DvtaketZ.mjs.map +0 -1
  861. package/dist/form-RLIQQ3uV.cjs +0 -2
  862. package/dist/form-RLIQQ3uV.cjs.map +0 -1
  863. package/dist/google-BWOrgvy8.d.mts +0 -53
  864. package/dist/google-C4F5wQ9e.mjs +0 -2
  865. package/dist/google-C4F5wQ9e.mjs.map +0 -1
  866. package/dist/google-Cy0_rdmN.cjs +0 -2
  867. package/dist/google-Cy0_rdmN.cjs.map +0 -1
  868. package/dist/google-Dyb44d8Y.d.cts +0 -53
  869. package/dist/grid-BOqzD6m6.d.cts +0 -19
  870. package/dist/grid-BXJ2x1oD.cjs +0 -2
  871. package/dist/grid-BXJ2x1oD.cjs.map +0 -1
  872. package/dist/grid-C4ogfMWr.mjs +0 -2
  873. package/dist/grid-C4ogfMWr.mjs.map +0 -1
  874. package/dist/grid-Dw7tBNxf.d.mts +0 -19
  875. package/dist/grid-product-card-BD8EVmk6.d.cts +0 -37
  876. package/dist/grid-product-card-BpciVETd.cjs +0 -2
  877. package/dist/grid-product-card-BpciVETd.cjs.map +0 -1
  878. package/dist/grid-product-card-BtZwWaMo.mjs +0 -2
  879. package/dist/grid-product-card-BtZwWaMo.mjs.map +0 -1
  880. package/dist/grid-product-card-CoFzQiFm.d.mts +0 -37
  881. package/dist/heading-De4Pn3mZ.mjs +0 -2
  882. package/dist/heading-tGTqk3pA.cjs +0 -2
  883. package/dist/hover-card-D2gz257Y.d.cts +0 -37
  884. package/dist/hover-card-DMVePTD9.mjs +0 -2
  885. package/dist/hover-card-DMVePTD9.mjs.map +0 -1
  886. package/dist/hover-card-Dsf0S6eo.d.mts +0 -37
  887. package/dist/hover-card-Pde4G6Fc.cjs +0 -2
  888. package/dist/hover-card-Pde4G6Fc.cjs.map +0 -1
  889. package/dist/image-BBPrcvIr.d.cts +0 -36
  890. package/dist/image-CbZwvmmL.mjs +0 -2
  891. package/dist/image-CbZwvmmL.mjs.map +0 -1
  892. package/dist/image-CwnOaUW7.d.mts +0 -36
  893. package/dist/image-eYMg5TSJ.cjs +0 -2
  894. package/dist/image-eYMg5TSJ.cjs.map +0 -1
  895. package/dist/index-1T84UTtI.d.mts +0 -1707
  896. package/dist/index-B03QzDx1.d.mts +0 -17
  897. package/dist/index-BQZ2-xGQ.d.cts +0 -246
  898. package/dist/index-BWLHjQ6S.d.cts +0 -74
  899. package/dist/index-D4T3Qd4m.d.cts +0 -45
  900. package/dist/index-DC7NHLfc.d.cts +0 -17
  901. package/dist/index-DYnzFF0T.d.mts +0 -74
  902. package/dist/index-DYp6lUbn.d.mts +0 -45
  903. package/dist/index-DyYcTYcv.d.mts +0 -246
  904. package/dist/index-x5md75cy.d.cts +0 -1707
  905. package/dist/input-BatF2xqI.cjs +0 -2
  906. package/dist/input-BatF2xqI.cjs.map +0 -1
  907. package/dist/input-CFsouxvo.mjs +0 -2
  908. package/dist/input-CFsouxvo.mjs.map +0 -1
  909. package/dist/input-otp-C9SpN7qa.mjs +0 -2
  910. package/dist/input-otp-C9SpN7qa.mjs.map +0 -1
  911. package/dist/input-otp-CMEY_7IK.d.cts +0 -59
  912. package/dist/input-otp-DXt9rivn.d.mts +0 -59
  913. package/dist/input-otp-phGylVzo.cjs +0 -2
  914. package/dist/input-otp-phGylVzo.cjs.map +0 -1
  915. package/dist/item-DSaO7I07.d.cts +0 -102
  916. package/dist/item-Dq3WIh5a.d.mts +0 -102
  917. package/dist/item-uB0ZFXtc.cjs +0 -2
  918. package/dist/item-uB0ZFXtc.cjs.map +0 -1
  919. package/dist/item-ysEJO_2s.mjs +0 -2
  920. package/dist/item-ysEJO_2s.mjs.map +0 -1
  921. package/dist/label--hinNDHW.cjs +0 -2
  922. package/dist/label--hinNDHW.cjs.map +0 -1
  923. package/dist/label-BMVyfKu9.mjs +0 -2
  924. package/dist/label-BMVyfKu9.mjs.map +0 -1
  925. package/dist/label-CCE-kS4j.d.mts +0 -24
  926. package/dist/label-DGJL4U_f.d.cts +0 -24
  927. package/dist/loading-dialog-CEkua3Lh.mjs +0 -2
  928. package/dist/loading-dialog-CEkua3Lh.mjs.map +0 -1
  929. package/dist/loading-dialog-D8kCsJID.d.cts +0 -21
  930. package/dist/loading-dialog-DLvA8-yT.d.mts +0 -21
  931. package/dist/loading-dialog-DYZmHC1A.cjs +0 -2
  932. package/dist/loading-dialog-DYZmHC1A.cjs.map +0 -1
  933. package/dist/menubar-BBFgdkch.d.cts +0 -135
  934. package/dist/menubar-Bh9Ua6gx.mjs +0 -2
  935. package/dist/menubar-Bh9Ua6gx.mjs.map +0 -1
  936. package/dist/menubar-Sr0X6In7.cjs +0 -2
  937. package/dist/menubar-Sr0X6In7.cjs.map +0 -1
  938. package/dist/menubar-b3iR0kew.d.mts +0 -135
  939. package/dist/multi-select-BHqEpbWV.d.mts +0 -117
  940. package/dist/multi-select-CBZxsmZW.mjs +0 -2
  941. package/dist/multi-select-CBZxsmZW.mjs.map +0 -1
  942. package/dist/multi-select-DdXU9QtL.d.cts +0 -117
  943. package/dist/multi-select-uHi4rmly.cjs +0 -2
  944. package/dist/multi-select-uHi4rmly.cjs.map +0 -1
  945. package/dist/name-2FXVOGc1.d.mts +0 -19
  946. package/dist/name-D7oldyH4.cjs +0 -2
  947. package/dist/name-D7oldyH4.cjs.map +0 -1
  948. package/dist/name-EKzKeq0g.mjs +0 -2
  949. package/dist/name-EKzKeq0g.mjs.map +0 -1
  950. package/dist/name-r1ATxwPZ.d.cts +0 -19
  951. package/dist/navigation-menu-BNEtQ0JM.cjs +0 -2
  952. package/dist/navigation-menu-BNEtQ0JM.cjs.map +0 -1
  953. package/dist/navigation-menu-DT9LfEFB.d.mts +0 -77
  954. package/dist/navigation-menu-Dl0kgmce.d.cts +0 -77
  955. package/dist/navigation-menu-zlpQ6hqY.mjs +0 -2
  956. package/dist/navigation-menu-zlpQ6hqY.mjs.map +0 -1
  957. package/dist/pagination-D6lKOCca.cjs +0 -2
  958. package/dist/pagination-D6lKOCca.cjs.map +0 -1
  959. package/dist/pagination-DXpyiDJW.mjs +0 -2
  960. package/dist/pagination-DXpyiDJW.mjs.map +0 -1
  961. package/dist/pagination-DYHZgmcc.d.cts +0 -67
  962. package/dist/pagination-DYMPNWwJ.d.mts +0 -67
  963. package/dist/paragraph-CLhsGG8e.d.cts +0 -48
  964. package/dist/paragraph-DYLaQtTV.mjs +0 -2
  965. package/dist/paragraph-DYLaQtTV.mjs.map +0 -1
  966. package/dist/paragraph-DvTZvbzw.cjs +0 -2
  967. package/dist/paragraph-DvTZvbzw.cjs.map +0 -1
  968. package/dist/paragraph-o9QFeg6c.d.mts +0 -48
  969. package/dist/payment-layout-BTYaI9Mr.mjs +0 -2
  970. package/dist/payment-layout-BTYaI9Mr.mjs.map +0 -1
  971. package/dist/payment-layout-neLk_obm.cjs +0 -2
  972. package/dist/payment-layout-neLk_obm.cjs.map +0 -1
  973. package/dist/phone-number-BAqPxJ5z.d.cts +0 -19
  974. package/dist/phone-number-CUjSdoHG.d.mts +0 -19
  975. package/dist/phone-number-CdfMUTj2.cjs +0 -2
  976. package/dist/phone-number-CdfMUTj2.cjs.map +0 -1
  977. package/dist/phone-number-CkxEaxxg.mjs +0 -2
  978. package/dist/phone-number-CkxEaxxg.mjs.map +0 -1
  979. package/dist/popover-BGd0Tvmy.mjs +0 -2
  980. package/dist/popover-BGd0Tvmy.mjs.map +0 -1
  981. package/dist/popover-CaU_EoBJ.d.mts +0 -52
  982. package/dist/popover-eSwUy8WP.cjs +0 -2
  983. package/dist/popover-eSwUy8WP.cjs.map +0 -1
  984. package/dist/popover-m32DoRiq.d.cts +0 -52
  985. package/dist/product-card-10gaH8bg.cjs +0 -2
  986. package/dist/product-card-10gaH8bg.cjs.map +0 -1
  987. package/dist/product-card-C0l0q2Ve.d.cts +0 -37
  988. package/dist/product-card-CWrVGqZV.d.mts +0 -37
  989. package/dist/product-card-Rwd-o9hK.mjs +0 -2
  990. package/dist/product-card-Rwd-o9hK.mjs.map +0 -1
  991. package/dist/progress-BwbACJal.d.cts +0 -23
  992. package/dist/progress-Dlgbu5Ff.cjs +0 -2
  993. package/dist/progress-Dlgbu5Ff.cjs.map +0 -1
  994. package/dist/progress-RvyBMsxb.mjs +0 -2
  995. package/dist/progress-RvyBMsxb.mjs.map +0 -1
  996. package/dist/progress-sn0IL4k4.d.mts +0 -23
  997. package/dist/radio-group-C4sIDN68.cjs +0 -2
  998. package/dist/radio-group-C4sIDN68.cjs.map +0 -1
  999. package/dist/radio-group-CD-4vNQR.mjs +0 -2
  1000. package/dist/radio-group-CD-4vNQR.mjs.map +0 -1
  1001. package/dist/radio-group-Ck0NoDHp.d.cts +0 -37
  1002. package/dist/radio-group-DeKN6NpB.d.mts +0 -37
  1003. package/dist/refresh-BFJvyuJH.cjs +0 -2
  1004. package/dist/refresh-BFJvyuJH.cjs.map +0 -1
  1005. package/dist/refresh-BjdAiL4f.d.mts +0 -17
  1006. package/dist/refresh-Bxm2I0Oe.mjs +0 -2
  1007. package/dist/refresh-Bxm2I0Oe.mjs.map +0 -1
  1008. package/dist/refresh-vK99pTVu.d.cts +0 -17
  1009. package/dist/resizable-BilIxAxi.d.mts +0 -63
  1010. package/dist/resizable-DYxHVdyf.d.cts +0 -63
  1011. package/dist/resizable-p6zxjcHs.mjs +0 -2
  1012. package/dist/resizable-p6zxjcHs.mjs.map +0 -1
  1013. package/dist/resizable-yKKhHTqx.cjs +0 -2
  1014. package/dist/resizable-yKKhHTqx.cjs.map +0 -1
  1015. package/dist/role-badge-BIgdiY5P.mjs +0 -2
  1016. package/dist/role-badge-BIgdiY5P.mjs.map +0 -1
  1017. package/dist/role-badge-BwOEEepo.cjs +0 -2
  1018. package/dist/role-badge-BwOEEepo.cjs.map +0 -1
  1019. package/dist/role-badge-CBZdPHUc.d.cts +0 -22
  1020. package/dist/role-badge-DeofJ2ep.d.mts +0 -22
  1021. package/dist/scroll-area-C7s40z6d.d.mts +0 -37
  1022. package/dist/scroll-area-CKWenzXh.d.cts +0 -37
  1023. package/dist/scroll-area-Dn3a9ZCQ.cjs +0 -2
  1024. package/dist/scroll-area-Dn3a9ZCQ.cjs.map +0 -1
  1025. package/dist/scroll-area-DrZOWroA.mjs +0 -2
  1026. package/dist/scroll-area-DrZOWroA.mjs.map +0 -1
  1027. package/dist/search-input-7m30vApQ.d.mts +0 -29
  1028. package/dist/search-input-BCYwlwtk.cjs +0 -2
  1029. package/dist/search-input-BCYwlwtk.cjs.map +0 -1
  1030. package/dist/search-input-DVtHPbme.d.cts +0 -29
  1031. package/dist/search-input-D_nJ8McN.mjs +0 -2
  1032. package/dist/search-input-D_nJ8McN.mjs.map +0 -1
  1033. package/dist/search-modal-BJhXWOiv.cjs +0 -2
  1034. package/dist/search-modal-BJhXWOiv.cjs.map +0 -1
  1035. package/dist/search-modal-BpHuii66.mjs +0 -2
  1036. package/dist/search-modal-BpHuii66.mjs.map +0 -1
  1037. package/dist/select-B5q6krCq.cjs +0 -2
  1038. package/dist/select-B5q6krCq.cjs.map +0 -1
  1039. package/dist/select-CreOhvnP.mjs +0 -2
  1040. package/dist/select-CreOhvnP.mjs.map +0 -1
  1041. package/dist/select-D0mVxToc.d.mts +0 -77
  1042. package/dist/select-D47FVDEv.d.cts +0 -77
  1043. package/dist/separator-BRoS5sU8.cjs +0 -2
  1044. package/dist/separator-BRoS5sU8.cjs.map +0 -1
  1045. package/dist/separator-BT4tDBSP.d.mts +0 -34
  1046. package/dist/separator-BjRgoiEx.mjs +0 -2
  1047. package/dist/separator-BjRgoiEx.mjs.map +0 -1
  1048. package/dist/separator-DOHFNx8Z.d.cts +0 -34
  1049. package/dist/sheet-38e14yOJ.d.cts +0 -69
  1050. package/dist/sheet-Bk6mK6TN.mjs +0 -2
  1051. package/dist/sheet-Bk6mK6TN.mjs.map +0 -1
  1052. package/dist/sheet-E5cMUzxr.cjs +0 -2
  1053. package/dist/sheet-E5cMUzxr.cjs.map +0 -1
  1054. package/dist/sheet-nSIzbJ1S.d.mts +0 -69
  1055. package/dist/sidebar-DeiQjPc8.mjs +0 -2
  1056. package/dist/sidebar-DeiQjPc8.mjs.map +0 -1
  1057. package/dist/sidebar-DzqiY6IR.cjs +0 -2
  1058. package/dist/sidebar-DzqiY6IR.cjs.map +0 -1
  1059. package/dist/simple-card-C5Rr81Sm.cjs +0 -2
  1060. package/dist/simple-card-C5Rr81Sm.cjs.map +0 -1
  1061. package/dist/simple-card-CIB1_AO0.d.mts +0 -35
  1062. package/dist/simple-card-CjJvBXKr.d.cts +0 -35
  1063. package/dist/simple-card-HEzKjzGT.mjs +0 -2
  1064. package/dist/simple-card-HEzKjzGT.mjs.map +0 -1
  1065. package/dist/skeleton-BuscPZgb.cjs +0 -2
  1066. package/dist/skeleton-BuscPZgb.cjs.map +0 -1
  1067. package/dist/skeleton-Bw3-1Ifw.d.cts +0 -27
  1068. package/dist/skeleton-teVJKfpX.mjs +0 -2
  1069. package/dist/skeleton-teVJKfpX.mjs.map +0 -1
  1070. package/dist/skeleton-wv8x-bmn.d.mts +0 -27
  1071. package/dist/slider-CPRW5ByY.cjs +0 -2
  1072. package/dist/slider-CPRW5ByY.cjs.map +0 -1
  1073. package/dist/slider-CsNzhp4K.d.cts +0 -26
  1074. package/dist/slider-RyNGQZH2.mjs +0 -2
  1075. package/dist/slider-RyNGQZH2.mjs.map +0 -1
  1076. package/dist/slider-axR5n-iU.d.mts +0 -26
  1077. package/dist/sonner-BcwAttxz.d.cts +0 -24
  1078. package/dist/sonner-DiKkRgL0.mjs +0 -2
  1079. package/dist/sonner-DiKkRgL0.mjs.map +0 -1
  1080. package/dist/sonner-hiZbh7Ma.d.mts +0 -24
  1081. package/dist/sonner-tfvnW7f9.cjs +0 -2
  1082. package/dist/sonner-tfvnW7f9.cjs.map +0 -1
  1083. package/dist/spinner-8BhR5INj.d.cts +0 -25
  1084. package/dist/spinner-BhIV1n_5.mjs +0 -2
  1085. package/dist/spinner-BhIV1n_5.mjs.map +0 -1
  1086. package/dist/spinner-BlcoDe44.cjs +0 -2
  1087. package/dist/spinner-BlcoDe44.cjs.map +0 -1
  1088. package/dist/spinner-YEHQDAMj.d.mts +0 -25
  1089. package/dist/statistic-BGynCEWL.cjs +0 -2
  1090. package/dist/statistic-BGynCEWL.cjs.map +0 -1
  1091. package/dist/statistic-C7jb2YxN.d.cts +0 -57
  1092. package/dist/statistic-DbQG1ymc.d.mts +0 -57
  1093. package/dist/statistic-fawLJa99.mjs +0 -2
  1094. package/dist/statistic-fawLJa99.mjs.map +0 -1
  1095. package/dist/switch-BTU8yOgs.mjs +0 -2
  1096. package/dist/switch-BTU8yOgs.mjs.map +0 -1
  1097. package/dist/switch-BaLJWcs6.d.cts +0 -26
  1098. package/dist/switch-DMEBc5Me.cjs +0 -2
  1099. package/dist/switch-DMEBc5Me.cjs.map +0 -1
  1100. package/dist/switch-gWDJ4yuM.d.mts +0 -26
  1101. package/dist/table-B2rDsRr1.d.cts +0 -73
  1102. package/dist/table-BmEJ-Ktq.d.mts +0 -73
  1103. package/dist/table-DUDAeitX.mjs +0 -2
  1104. package/dist/table-DUDAeitX.mjs.map +0 -1
  1105. package/dist/table-DkGeuCS6.cjs +0 -2
  1106. package/dist/table-DkGeuCS6.cjs.map +0 -1
  1107. package/dist/tables-BhRUyHnO.cjs +0 -4
  1108. package/dist/tables-BhRUyHnO.cjs.map +0 -1
  1109. package/dist/tables-Dnu1akl3.mjs +0 -4
  1110. package/dist/tables-Dnu1akl3.mjs.map +0 -1
  1111. package/dist/tabs-564E0ez3.d.mts +0 -44
  1112. package/dist/tabs-DFGhwbGp.mjs +0 -2
  1113. package/dist/tabs-DFGhwbGp.mjs.map +0 -1
  1114. package/dist/tabs-JR7-JzIe.cjs +0 -2
  1115. package/dist/tabs-JR7-JzIe.cjs.map +0 -1
  1116. package/dist/tabs-vAz8fioT.d.cts +0 -44
  1117. package/dist/tanstack-form-4b7YcChW.cjs +0 -12
  1118. package/dist/tanstack-form-4b7YcChW.cjs.map +0 -1
  1119. package/dist/tanstack-form-Bo1AZA4L.mjs +0 -12
  1120. package/dist/tanstack-form-Bo1AZA4L.mjs.map +0 -1
  1121. package/dist/text-editor-D1vX6xed.mjs +0 -2
  1122. package/dist/text-editor-D1vX6xed.mjs.map +0 -1
  1123. package/dist/text-editor-Dr8BD9Bh.cjs +0 -2
  1124. package/dist/text-editor-Dr8BD9Bh.cjs.map +0 -1
  1125. package/dist/textarea-BNYJfmS1.cjs +0 -2
  1126. package/dist/textarea-BNYJfmS1.cjs.map +0 -1
  1127. package/dist/textarea-Be2gUM3T.d.mts +0 -30
  1128. package/dist/textarea-Bh8TcWO-.mjs +0 -2
  1129. package/dist/textarea-Bh8TcWO-.mjs.map +0 -1
  1130. package/dist/textarea-DbmOLyAp.d.cts +0 -30
  1131. package/dist/title-BlFwN8RM.d.mts +0 -43
  1132. package/dist/title-CMLgxj8_.mjs +0 -2
  1133. package/dist/title-CMLgxj8_.mjs.map +0 -1
  1134. package/dist/title-DJuGuD0Q.d.cts +0 -43
  1135. package/dist/title-DR8e6bHV.cjs +0 -2
  1136. package/dist/title-DR8e6bHV.cjs.map +0 -1
  1137. package/dist/toggle-B3j94Xvr.cjs +0 -2
  1138. package/dist/toggle-B3j94Xvr.cjs.map +0 -1
  1139. package/dist/toggle-BBOteSWq.d.mts +0 -32
  1140. package/dist/toggle-D6bmp328.d.cts +0 -32
  1141. package/dist/toggle-group-5CEKhPgb.d.mts +0 -39
  1142. package/dist/toggle-group-BOubLcnF.d.cts +0 -39
  1143. package/dist/toggle-group-CAIFsPEQ.cjs +0 -2
  1144. package/dist/toggle-group-CAIFsPEQ.cjs.map +0 -1
  1145. package/dist/toggle-group-DfzLXhuE.mjs +0 -2
  1146. package/dist/toggle-group-DfzLXhuE.mjs.map +0 -1
  1147. package/dist/toggle-jTYfZSWB.mjs +0 -2
  1148. package/dist/toggle-jTYfZSWB.mjs.map +0 -1
  1149. package/dist/tooltip-BBEcyuAE.mjs +0 -2
  1150. package/dist/tooltip-BBEcyuAE.mjs.map +0 -1
  1151. package/dist/tooltip-BFQy2Oca.d.mts +0 -55
  1152. package/dist/tooltip-DBjqfkRe.d.cts +0 -55
  1153. package/dist/tooltip-KEOJcYl8.cjs +0 -2
  1154. package/dist/tooltip-KEOJcYl8.cjs.map +0 -1
  1155. package/dist/trash-BxlUz9AR.cjs +0 -2
  1156. package/dist/trash-BxlUz9AR.cjs.map +0 -1
  1157. package/dist/trash-CV_nXOkW.d.mts +0 -17
  1158. package/dist/trash-CZHL7ZuK.d.cts +0 -17
  1159. package/dist/trash-UPoDDna-.mjs +0 -2
  1160. package/dist/trash-UPoDDna-.mjs.map +0 -1
  1161. package/dist/types-BAAJEExQ.cjs +0 -2
  1162. package/dist/types-BAAJEExQ.cjs.map +0 -1
  1163. package/dist/types-DodCf0NQ.mjs +0 -2
  1164. package/dist/types-DodCf0NQ.mjs.map +0 -1
  1165. package/dist/upload-image-BsCkSEXu.d.mts +0 -24
  1166. package/dist/upload-image-CBVufZda.mjs +0 -2
  1167. package/dist/upload-image-CBVufZda.mjs.map +0 -1
  1168. package/dist/upload-image-CPWA9XOk.cjs +0 -2
  1169. package/dist/upload-image-CPWA9XOk.cjs.map +0 -1
  1170. package/dist/upload-image-CV3Xlq2w.d.cts +0 -24
  1171. package/dist/user-B2Pml0ly.cjs +0 -2
  1172. package/dist/user-B2Pml0ly.cjs.map +0 -1
  1173. package/dist/user-B5efjaOf.d.cts +0 -23
  1174. package/dist/user-Cl4BdxFy.d.mts +0 -23
  1175. package/dist/user-DpBhqdvd.mjs +0 -2
  1176. package/dist/user-DpBhqdvd.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"date-BBBx-rIM.cjs","names":["DateDisplay: React.FC<DateDisplayProps>"],"sources":["../packages/constants.tsx","../packages/components/data-display/date.tsx"],"sourcesContent":["// Vietnamese locale configuration\nexport const vietnameseLocale = {\n weekdays: ['Chủ Nhật', 'Thứ Hai', 'Thứ Ba', 'Thứ Tư', 'Thứ Năm', 'Thứ Sáu', 'Thứ Bảy'],\n weekdaysShort: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],\n months: ['Tháng 01', 'Tháng 02', 'Tháng 03', 'Tháng 04', 'Tháng 05', 'Tháng 06', 'Tháng 07', 'Tháng 08', 'Tháng 09', 'Tháng 10', 'Tháng 11', 'Tháng 12'],\n monthsShort: ['T1', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7', 'T8', 'T9', 'T10', 'T11', 'T12'],\n};\n\n// Vietnamese holidays\nexport const vietnameseHolidays = {\n '01-01': 'Tết Dương lịch',\n '03-08': 'Quốc tế Phụ nữ',\n '04-30': 'Ngày Giải phóng miền Nam',\n '05-01': 'Quốc tế Lao động',\n '09-02': 'Quốc khánh',\n '10-20': 'Ngày Phụ nữ Việt Nam',\n '11-20': 'Ngày Nhà giáo Việt Nam',\n};\n\n// Time Constants in milliseconds, seconds, and minutes\nexport const TIME_IN_MS = Object.freeze({\n SECOND: 1000,\n MINUTE: 60 * 1000,\n HOUR: 60 * 60 * 1000,\n DAY: 24 * 60 * 60 * 1000,\n WEEK: 7 * 24 * 60 * 60 * 1000,\n MONTH: 30 * 24 * 60 * 60 * 1000, // Approximation for month length = 30 days\n YEAR: 365 * 24 * 60 * 60 * 1000,\n});\n\nexport const TIME_IN_SECONDS = Object.freeze({\n MINUTE: 60,\n HOUR: 60 * 60,\n DAY: 24 * 60 * 60,\n WEEK: 7 * 24 * 60 * 60,\n MONTH: 30 * 24 * 60 * 60,\n YEAR: 365 * 24 * 60 * 60,\n});\n\nexport const TIME_IN_MINUTES = Object.freeze({\n HOUR: 60,\n DAY: 24 * 60,\n WEEK: 7 * 24 * 60,\n MONTH: 30 * 24 * 60,\n});\n","'use client';\n\nimport { useCallback, useMemo } from 'react';\n\nimport { format, isThisMonth, isThisWeek, isThisYear, isToday, isTomorrow, isValid, isYesterday, parseISO } from '@customafk/react-toolkit/date-fns';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { TIME_IN_SECONDS, vietnameseHolidays, vietnameseLocale } from '@/constants';\n\ninterface DateDisplayProps {\n /** The date value to display; accepts a `Date` object, an ISO string, or a Unix timestamp (ms). */\n date: Date | string | number;\n /**\n * Controls how the date is formatted.\n * - `'short'` — `15/03/24`\n * - `'medium'` — `15/03/2024` (default)\n * - `'long'` — `15 tháng 3, 2024`\n * - `'full'` — `Thứ Sáu, ngày 15 tháng 3 năm 2024`\n * - `'relative'` — `2 giờ trước`\n * - `'datetime'` — `15/03/2024 14:30`\n * - `'time'` — `14:30`\n * - `'smart'` — auto-selects the most human-readable format based on recency\n */\n format?:\n | 'short' // 15/03/24\n | 'medium' // 15/03/2024\n | 'long' // 15 tháng 3, 2024\n | 'full' // Thứ Sáu, ngày 15 tháng 3 năm 2024\n | 'relative' // 2 giờ trước\n | 'datetime' // 15/03/2024 14:30\n | 'time' // 14:30\n | 'smart'; // auto-selects format based on recency\n /** When `true`, appends any recognised Vietnamese public holiday name to the formatted date. Defaults to `false`. */\n showHoliday?: boolean;\n /** When `true`, appends the time component to the formatted output. Defaults to `false`. */\n showTime?: boolean;\n /** Additional CSS classes applied to the `<time>` element. */\n className?: string;\n /** Custom HTML `title` attribute; defaults to the full ISO datetime string. */\n title?: string;\n}\n\n/**\n * Renders a formatted date using Vietnamese locale conventions inside a semantic `<time>` element.\n *\n * @example\n * ```tsx\n * import { DateDisplay } from '@customafk/lunas-ui/data-display/date';\n *\n * <DateDisplay date=\"2024-03-15T14:30:00Z\" format=\"medium\" showTime />\n * ```\n */\nexport const DateDisplay: React.FC<DateDisplayProps> = ({\n date,\n format: formatType = 'medium',\n showHoliday = false,\n showTime = false,\n className = '',\n title,\n}) => {\n const parsedDate = useMemo(() => {\n try {\n if (date instanceof Date) return isValid(date) ? date : null;\n if (typeof date === 'string') {\n const parsed = parseISO(date);\n return isValid(parsed) ? parsed : new Date(date);\n }\n if (typeof date === 'number') {\n const parsed = new Date(date);\n return isValid(parsed) ? parsed : null;\n }\n return null;\n } catch {\n return null;\n }\n }, [date]);\n\n const formatRelativeTime = useCallback((d: Date): string => {\n const diffInSeconds = Math.floor((Date.now() - d.getTime()) / 1000);\n if (diffInSeconds < 60) return 'Vừa xong';\n if (diffInSeconds < 3600) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.MINUTE)} phút trước`;\n if (diffInSeconds < 86400) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.HOUR)} giờ trước`;\n if (diffInSeconds < 604800) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.DAY)} ngày trước`;\n if (diffInSeconds < 2592000) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.WEEK)} tuần trước`;\n if (diffInSeconds < 31536000) return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.MONTH)} tháng trước`;\n return `${Math.floor(diffInSeconds / TIME_IN_SECONDS.YEAR)} năm trước`;\n }, []);\n\n const getVietnameseWeekday = useCallback((d: Date, short = false): string => {\n return short ? vietnameseLocale.weekdaysShort[d.getDay()] : vietnameseLocale.weekdays[d.getDay()];\n }, []);\n\n const getVietnameseMonth = useCallback((d: Date, short = false): string => {\n return short ? vietnameseLocale.monthsShort[d.getMonth()] : vietnameseLocale.months[d.getMonth()];\n }, []);\n\n const getHoliday = useCallback((d: Date): string | null => {\n const monthDay = format(d, 'MM-dd') as keyof typeof vietnameseHolidays;\n return vietnameseHolidays[monthDay] || null;\n }, []);\n\n const getSmartFormat = useCallback(\n (d: Date): string => {\n if (isToday(d)) return showTime ? `Hôm nay ${format(d, 'HH:mm')}` : 'Hôm nay';\n if (isYesterday(d)) return showTime ? `Hôm qua ${format(d, 'HH:mm')}` : 'Hôm qua';\n if (isTomorrow(d)) return showTime ? `Ngày mai ${format(d, 'HH:mm')}` : 'Ngày mai';\n if (isThisWeek(d)) {\n const weekday = getVietnameseWeekday(d);\n return showTime ? `${weekday} ${format(d, 'HH:mm')}` : weekday;\n }\n if (isThisMonth(d)) {\n const day = format(d, 'd');\n return showTime ? `${day}/${format(d, 'M')} ${format(d, 'HH:mm')}` : `${day}/${format(d, 'M')}`;\n }\n if (isThisYear(d)) return showTime ? format(d, 'd/M HH:mm') : format(d, 'd/M');\n return showTime ? format(d, 'd/M/yyyy HH:mm') : format(d, 'd/M/yyyy');\n },\n [getVietnameseWeekday, showTime]\n );\n\n const formatDate = useCallback(\n (d: Date, type: string): string => {\n const timeStr = showTime ? format(d, ', HH:mm:ss') : '';\n switch (type) {\n case 'short':\n return format(d, 'd/M/yy') + timeStr;\n case 'medium':\n return format(d, 'dd/MM/yyyy') + timeStr;\n case 'long':\n return `${format(d, 'd')} ${getVietnameseMonth(d)} ${format(d, 'yyyy')}` + timeStr;\n case 'full':\n return `${getVietnameseWeekday(d)}, ngày ${format(d, 'd')} ${getVietnameseMonth(d)} năm ${format(d, 'yyyy')}` + timeStr;\n case 'relative':\n return formatRelativeTime(d);\n case 'datetime':\n return format(d, 'd/M/yyyy HH:mm');\n case 'time':\n return format(d, 'HH:mm');\n case 'smart':\n return getSmartFormat(d);\n default:\n return format(d, 'd/M/yyyy') + timeStr;\n }\n },\n [getSmartFormat, getVietnameseMonth, getVietnameseWeekday, formatRelativeTime, showTime]\n );\n\n if (!parsedDate) {\n return <span className={cn('text-sm text-text-positive-subtle', className)}>--/--/----</span>;\n }\n\n const formattedDate = formatDate(parsedDate, formatType);\n const holiday = showHoliday ? getHoliday(parsedDate) : null;\n const displayText = holiday ? `${formattedDate} (${holiday})` : formattedDate;\n const tooltipTitle = title || format(parsedDate, 'EEEE, d MMMM yyyy HH:mm:ss');\n\n return (\n <time\n data-slot=\"date-display\"\n dateTime={parsedDate.toISOString()}\n className={cn('tabular-nums text-xs text-text-positive-weak transition-colors', className)}\n title={tooltipTitle}\n >\n {displayText}\n </time>\n );\n};\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- const e=require(`./chunk-350yNsax.cjs`),t=require(`./date-BBBx-rIM.cjs`),n=require(`./badge-7bcsD0vA.cjs`),r=require(`./tooltip-KEOJcYl8.cjs`);let i=require(`react/jsx-runtime`);const a=({date:e})=>(0,i.jsx)(r.r,{children:(0,i.jsxs)(r.t,{children:[(0,i.jsx)(r.i,{asChild:!0,children:(0,i.jsx)(n.t,{"data-slot":`date-tooltip-trigger`,className:`h-fit`,children:(0,i.jsx)(t.t,{date:e,format:`medium`,className:`text-xs font-normal text-text-negative`})})}),(0,i.jsx)(r.n,{"data-slot":`date-tooltip-content`,children:(0,i.jsx)(t.t,{date:e,format:`full`,showTime:!0,className:`font-[Inter]! font-medium`})})]})});Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
2
- //# sourceMappingURL=date-tooltip-BdVWCJlg.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date-tooltip-BdVWCJlg.cjs","names":["DateTooltip: React.FC<DateTooltipProps>","TooltipProvider","Tooltip","TooltipTrigger","Badge","DateDisplay","TooltipContent"],"sources":["../packages/components/data-display/date-tooltip.tsx"],"sourcesContent":["'use client';\n\nimport { Badge } from '@/components/ui/badge';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';\n\nimport { DateDisplay } from './date';\n\ntype DateTooltipProps = {\n /** The date value to display; accepts a `Date` object, an ISO string, or a Unix timestamp (ms). */\n date: Date | string | number;\n};\n\n/**\n * Displays a date as a badge; hovering reveals a tooltip with the full Vietnamese weekday and time.\n *\n * @example\n * ```tsx\n * import { DateTooltip } from '@customafk/lunas-ui/data-display/date-tooltip';\n *\n * <DateTooltip date=\"2024-03-15T14:30:00Z\" />\n * ```\n */\nexport const DateTooltip: React.FC<DateTooltipProps> = ({ date }) => {\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <Badge data-slot=\"date-tooltip-trigger\" className=\"h-fit\">\n <DateDisplay date={date} format=\"medium\" className=\"text-xs font-normal text-text-negative\" />\n </Badge>\n </TooltipTrigger>\n <TooltipContent data-slot=\"date-tooltip-content\">\n <DateDisplay date={date} format=\"full\" showTime className=\"font-[Inter]! font-medium\" />\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n};\n"],"mappings":"kLAsBA,MAAaA,GAA2C,CAAE,WAEtD,EAAA,EAAA,KAACC,EAAAA,EAAAA,CAAAA,UACC,EAAA,EAAA,MAACC,EAAAA,EAAAA,CAAAA,SAAAA,EACC,EAAA,EAAA,KAACC,EAAAA,EAAAA,CAAe,QAAA,aACd,EAAA,EAAA,KAACC,EAAAA,EAAAA,CAAM,YAAU,uBAAuB,UAAU,kBAChD,EAAA,EAAA,KAACC,EAAAA,EAAAA,CAAkB,OAAM,OAAO,SAAS,UAAU,0CAA2C,EACxF,EACO,EACjB,EAAA,EAAA,KAACC,EAAAA,EAAAA,CAAe,YAAU,iCACxB,EAAA,EAAA,KAACD,EAAAA,EAAAA,CAAkB,OAAM,OAAO,OAAO,SAAA,GAAS,UAAU,6BAA8B,EACzE,CAAA,CAAA,CACT,CAAA,CACM"}
@@ -1,19 +0,0 @@
1
- //#region packages/components/data-display/date-tooltip.d.ts
2
- type DateTooltipProps = {
3
- /** The date value to display; accepts a `Date` object, an ISO string, or a Unix timestamp (ms). */
4
- date: Date | string | number;
5
- };
6
- /**
7
- * Displays a date as a badge; hovering reveals a tooltip with the full Vietnamese weekday and time.
8
- *
9
- * @example
10
- * ```tsx
11
- * import { DateTooltip } from '@customafk/lunas-ui/data-display/date-tooltip';
12
- *
13
- * <DateTooltip date="2024-03-15T14:30:00Z" />
14
- * ```
15
- */
16
- declare const DateTooltip: React.FC<DateTooltipProps>;
17
- //#endregion
18
- export { DateTooltip as t };
19
- //# sourceMappingURL=date-tooltip-CoPcr3Ju.d.mts.map
@@ -1,19 +0,0 @@
1
- //#region packages/components/data-display/date-tooltip.d.ts
2
- type DateTooltipProps = {
3
- /** The date value to display; accepts a `Date` object, an ISO string, or a Unix timestamp (ms). */
4
- date: Date | string | number;
5
- };
6
- /**
7
- * Displays a date as a badge; hovering reveals a tooltip with the full Vietnamese weekday and time.
8
- *
9
- * @example
10
- * ```tsx
11
- * import { DateTooltip } from '@customafk/lunas-ui/data-display/date-tooltip';
12
- *
13
- * <DateTooltip date="2024-03-15T14:30:00Z" />
14
- * ```
15
- */
16
- declare const DateTooltip: React.FC<DateTooltipProps>;
17
- //#endregion
18
- export { DateTooltip as t };
19
- //# sourceMappingURL=date-tooltip-DZ3NlfdZ.d.cts.map
@@ -1,2 +0,0 @@
1
- import{t as e}from"./date-88lk-VJF.mjs";import{t}from"./badge-CG6dbI29.mjs";import{i as n,n as r,r as i,t as a}from"./tooltip-BBEcyuAE.mjs";import{jsx as o,jsxs as s}from"react/jsx-runtime";const c=({date:c})=>o(i,{children:s(a,{children:[o(n,{asChild:!0,children:o(t,{"data-slot":`date-tooltip-trigger`,className:`h-fit`,children:o(e,{date:c,format:`medium`,className:`text-xs font-normal text-text-negative`})})}),o(r,{"data-slot":`date-tooltip-content`,children:o(e,{date:c,format:`full`,showTime:!0,className:`font-[Inter]! font-medium`})})]})});export{c as t};
2
- //# sourceMappingURL=date-tooltip-OPAmlgBg.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date-tooltip-OPAmlgBg.mjs","names":["DateTooltip: React.FC<DateTooltipProps>"],"sources":["../packages/components/data-display/date-tooltip.tsx"],"sourcesContent":["'use client';\n\nimport { Badge } from '@/components/ui/badge';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';\n\nimport { DateDisplay } from './date';\n\ntype DateTooltipProps = {\n /** The date value to display; accepts a `Date` object, an ISO string, or a Unix timestamp (ms). */\n date: Date | string | number;\n};\n\n/**\n * Displays a date as a badge; hovering reveals a tooltip with the full Vietnamese weekday and time.\n *\n * @example\n * ```tsx\n * import { DateTooltip } from '@customafk/lunas-ui/data-display/date-tooltip';\n *\n * <DateTooltip date=\"2024-03-15T14:30:00Z\" />\n * ```\n */\nexport const DateTooltip: React.FC<DateTooltipProps> = ({ date }) => {\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <Badge data-slot=\"date-tooltip-trigger\" className=\"h-fit\">\n <DateDisplay date={date} format=\"medium\" className=\"text-xs font-normal text-text-negative\" />\n </Badge>\n </TooltipTrigger>\n <TooltipContent data-slot=\"date-tooltip-content\">\n <DateDisplay date={date} format=\"full\" showTime className=\"font-[Inter]! font-medium\" />\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n};\n"],"mappings":"8LAsBA,MAAaA,GAA2C,CAAE,UAEtD,EAAC,EAAA,CAAA,SACC,EAAC,EAAA,CAAA,SAAA,CACC,EAAC,EAAA,CAAe,QAAA,YACd,EAAC,EAAA,CAAM,YAAU,uBAAuB,UAAU,iBAChD,EAAC,EAAA,CAAkB,OAAM,OAAO,SAAS,UAAU,0CAA2C,EACxF,EACO,CACjB,EAAC,EAAA,CAAe,YAAU,gCACxB,EAAC,EAAA,CAAkB,OAAM,OAAO,OAAO,SAAA,GAAS,UAAU,6BAA8B,EACzE,CAAA,CAAA,CACT,CAAA,CACM"}
@@ -1,39 +0,0 @@
1
- //#region packages/components/data-display/date.d.ts
2
- interface DateDisplayProps {
3
- /** The date value to display; accepts a `Date` object, an ISO string, or a Unix timestamp (ms). */
4
- date: Date | string | number;
5
- /**
6
- * Controls how the date is formatted.
7
- * - `'short'` — `15/03/24`
8
- * - `'medium'` — `15/03/2024` (default)
9
- * - `'long'` — `15 tháng 3, 2024`
10
- * - `'full'` — `Thứ Sáu, ngày 15 tháng 3 năm 2024`
11
- * - `'relative'` — `2 giờ trước`
12
- * - `'datetime'` — `15/03/2024 14:30`
13
- * - `'time'` — `14:30`
14
- * - `'smart'` — auto-selects the most human-readable format based on recency
15
- */
16
- format?: 'short' | 'medium' | 'long' | 'full' | 'relative' | 'datetime' | 'time' | 'smart';
17
- /** When `true`, appends any recognised Vietnamese public holiday name to the formatted date. Defaults to `false`. */
18
- showHoliday?: boolean;
19
- /** When `true`, appends the time component to the formatted output. Defaults to `false`. */
20
- showTime?: boolean;
21
- /** Additional CSS classes applied to the `<time>` element. */
22
- className?: string;
23
- /** Custom HTML `title` attribute; defaults to the full ISO datetime string. */
24
- title?: string;
25
- }
26
- /**
27
- * Renders a formatted date using Vietnamese locale conventions inside a semantic `<time>` element.
28
- *
29
- * @example
30
- * ```tsx
31
- * import { DateDisplay } from '@customafk/lunas-ui/data-display/date';
32
- *
33
- * <DateDisplay date="2024-03-15T14:30:00Z" format="medium" showTime />
34
- * ```
35
- */
36
- declare const DateDisplay: React.FC<DateDisplayProps>;
37
- //#endregion
38
- export { DateDisplay as t };
39
- //# sourceMappingURL=date-viiYGAtR.d.mts.map
@@ -1,39 +0,0 @@
1
- //#region packages/components/data-display/date.d.ts
2
- interface DateDisplayProps {
3
- /** The date value to display; accepts a `Date` object, an ISO string, or a Unix timestamp (ms). */
4
- date: Date | string | number;
5
- /**
6
- * Controls how the date is formatted.
7
- * - `'short'` — `15/03/24`
8
- * - `'medium'` — `15/03/2024` (default)
9
- * - `'long'` — `15 tháng 3, 2024`
10
- * - `'full'` — `Thứ Sáu, ngày 15 tháng 3 năm 2024`
11
- * - `'relative'` — `2 giờ trước`
12
- * - `'datetime'` — `15/03/2024 14:30`
13
- * - `'time'` — `14:30`
14
- * - `'smart'` — auto-selects the most human-readable format based on recency
15
- */
16
- format?: 'short' | 'medium' | 'long' | 'full' | 'relative' | 'datetime' | 'time' | 'smart';
17
- /** When `true`, appends any recognised Vietnamese public holiday name to the formatted date. Defaults to `false`. */
18
- showHoliday?: boolean;
19
- /** When `true`, appends the time component to the formatted output. Defaults to `false`. */
20
- showTime?: boolean;
21
- /** Additional CSS classes applied to the `<time>` element. */
22
- className?: string;
23
- /** Custom HTML `title` attribute; defaults to the full ISO datetime string. */
24
- title?: string;
25
- }
26
- /**
27
- * Renders a formatted date using Vietnamese locale conventions inside a semantic `<time>` element.
28
- *
29
- * @example
30
- * ```tsx
31
- * import { DateDisplay } from '@customafk/lunas-ui/data-display/date';
32
- *
33
- * <DateDisplay date="2024-03-15T14:30:00Z" format="medium" showTime />
34
- * ```
35
- */
36
- declare const DateDisplay: React.FC<DateDisplayProps>;
37
- //#endregion
38
- export { DateDisplay as t };
39
- //# sourceMappingURL=date-xQIXRJ71.d.cts.map
@@ -1,2 +0,0 @@
1
- import{t as e}from"./paragraph-DYLaQtTV.mjs";import{t}from"./image-CbZwvmmL.mjs";import{t as n}from"./date-88lk-VJF.mjs";import{t as r}from"./badge-CG6dbI29.mjs";import{i,n as a,r as o,t as s}from"./tooltip-BBEcyuAE.mjs";import{t as c}from"./user-DpBhqdvd.mjs";import{CheckIcon as l,CopyIcon as u,ExternalLinkIcon as d,LinkIcon as f}from"lucide-react";import{createContext as p,memo as m,useCallback as h,useContext as g,useMemo as _,useState as v}from"react";import{cn as y}from"@customafk/react-toolkit/utils";import{cva as b}from"class-variance-authority";import{jsx as x,jsxs as S}from"react/jsx-runtime";const C=()=>x(`span`,{"data-slot":`description-empty`,"aria-label":`Empty value`,className:`select-none font-medium text-sm text-text-positive-muted`,children:`—`}),w=({label:e,color:t=`secondary`,variant:n=`soft`,size:i=`sm`})=>e?x(r,{"data-slot":`description-badge`,color:t,variant:n,size:i,children:e}):x(C,{}),T=({value:e,trueLabel:t=`Yes`,falseLabel:n=`No`})=>e==null?x(C,{}):x(r,{"data-slot":`description-boolean`,variant:`soft`,color:e?`success`:`danger`,size:`sm`,children:e?t:n}),E=({value:e,truncate:t=!0})=>{let[n,r]=v(!1),i=h(async()=>{e&&(await navigator.clipboard.writeText(e),r(!0),setTimeout(()=>r(!1),1500))},[e]);return e?S(`button`,{type:`button`,"data-slot":`description-copy`,onClick:i,className:y(`group inline-flex max-w-full cursor-pointer items-center gap-1.5 rounded-sm border border-border-weak bg-secondary-muted px-2 py-0.5 font-mono text-xs text-text-positive-weak transition-[border-color,color,box-shadow] hover:border-border hover:text-text-positive hover:shadow-xs`,t&&`min-w-0`),children:[x(`span`,{className:y(`tabular-nums`,t&&`truncate`),children:e}),n?x(l,{size:12,className:`shrink-0 text-success`}):x(u,{size:12,className:`shrink-0 opacity-50 group-hover:opacity-100`})]}):x(C,{})},D=({date:e})=>e==null?x(C,{}):x(o,{children:S(s,{children:[x(i,{asChild:!0,children:x(n,{"data-slot":`description-date`,date:e,format:`medium`,className:`cursor-help`})}),x(a,{children:x(n,{date:e,format:`full`,showTime:!0,className:`text-xs font-medium`})})]})}),O=({images:e})=>{if(!e?.length)return x(C,{});let n=e.length===1;return x(`div`,{"data-slot":`description-images`,className:`flex flex-wrap gap-4`,children:e.map(e=>x(`div`,{className:n?`group relative size-42 overflow-hidden rounded-sm border border-border shadow-xs transition-shadow hover:shadow-card`:`group relative size-16 overflow-hidden rounded-lg border border-border shadow-xs transition-shadow hover:shadow-card`,children:x(t,{src:e.src,alt:e.alt,width:`100%`,height:`100%`,className:`transition-transform duration-200 group-hover:scale-105`})},e.id))})},k=({href:e,label:t,external:n=!0,className:r})=>e?S(`a`,{"data-slot":`description-link`,href:e,target:n?`_blank`:void 0,rel:n?`noopener noreferrer`:void 0,className:y(`inline-flex max-w-full items-center gap-1 text-sm text-primary underline decoration-dashed underline-offset-2 transition-colors hover:text-primary-strong hover:decoration-solid`,r),children:[!n&&x(f,{size:12,className:`shrink-0 opacity-70`}),x(`span`,{className:`truncate`,children:t??e}),n&&x(d,{size:12,className:`shrink-0 opacity-70`})]}):x(C,{}),A=({content:t})=>t==null?x(C,{}):S(s,{children:[x(i,{asChild:!0,children:x(e,{"data-slot":`description-longtext`,variant:`sm`,className:`line-clamp-2 cursor-pointer whitespace-pre-line break-all text-start text-sm hover:text-text-positive transition-colors`,children:t})}),x(a,{align:`start`,className:`h-fit min-w-48 max-w-80 pt-4`,children:S(`div`,{className:`flex flex-col gap-y-2`,children:[x(`p`,{className:`whitespace-pre-line text-wrap break-keep`,children:t}),S(`p`,{className:`w-full text-end text-text-positive-subtle`,children:[t.toString().length,` chars`]})]})})]}),j=({name:t})=>t?S(s,{children:[x(i,{asChild:!0,children:x(e,{"data-slot":`description-name`,variant:`sm`,className:`line-clamp-2 w-full cursor-pointer truncate hover:text-text-positive transition-colors`,children:t})}),x(a,{align:`start`,className:`h-fit min-w-48 max-w-80 pt-4`,children:S(`div`,{className:`flex flex-col gap-y-2`,children:[x(`p`,{className:`whitespace-pre-line text-wrap break-keep`,children:t}),S(`p`,{className:`w-full text-end text-text-positive-subtle`,children:[t.length,` chars`]})]})})]}):x(C,{}),M=({value:t})=>S(s,{children:[x(i,{"data-slot":`description-phone`,children:x(e,{variant:`sm`,className:`tabular-nums transition-colors`,children:t.replace(/(\d{3})(\d{3})(\d{4})/,`($1) $2-$3`)})}),x(a,{align:`start`,children:x(`p`,{className:`tabular-nums`,children:t.slice(1).replace(/(\d{2})(\d{3})(\d{4})/,`(00) (+84) ($1) $2-$3`)})})]}),N=(e,t,n)=>{let r=10**t;switch(n){case`floor`:return Math.floor(e*r)/r;case`ceil`:return Math.ceil(e*r)/r;default:return Math.round(e*r)/r}},P=b(`inline-flex items-center gap-1 font-number tabular-nums transition-colors`,{variants:{size:{xs:`text-xs`,sm:`text-sm`,md:`text-base`,lg:`text-lg`,xl:`text-xl`},trend:{neutral:`text-text-positive`,up:`text-success`,down:`text-danger`}},defaultVariants:{size:`sm`,trend:`neutral`}}),F=m(({decimalSeparator:e=`.`,groupSeparator:t=`,`,prefix:n,suffix:r,precision:i,roundingMode:a=`round`,showTrailingZeros:o=!1,size:s=`sm`,trend:c=`neutral`,value:l=0,className:u})=>{let d=_(()=>{let e={};return typeof i==`number`&&i>=0&&(o&&(e.minimumFractionDigits=i),e.maximumFractionDigits=i),e},[i,o]),f=h(e=>{let t=e;return typeof i==`number`&&i>=0&&(t=N(e,i,a)),t.toLocaleString(`en-US`,d)},[a,d,i]),p=_(()=>{if(typeof l==`number`)return Number.isNaN(l)||!Number.isFinite(l)?`N/A`:f(l);if(typeof l==`string`){let e=l.trim();if(!e)return`N/A`;let t=Number(e);return Number.isNaN(t)||!Number.isFinite(t)?`N/A`:f(t)}return`N/A`},[l,f]),m=_(()=>e===`.`&&t===`,`?p:p.replace(/,/g,t).replace(/\./g,e),[p,e,t]);return m===`0`||m===`N/A`||!m?x(C,{}):S(`div`,{"data-slot":`description-statistic`,className:y(P({size:s,trend:c}),u),children:[n&&x(`span`,{"data-slot":`description-statistic-prefix`,children:n}),x(`p`,{"data-slot":`description-statistic-value`,children:m}),r&&x(`span`,{"data-slot":`description-statistic-suffix`,children:r})]})});F.displayName=`DescriptionStatistic`;const I={primary:`bg-primary`,secondary:`bg-secondary`,muted:`bg-muted`,accent:`bg-accent`,info:`bg-info`,success:`bg-success`,warning:`bg-warning`,danger:`bg-danger`},L=({label:e,color:t=`info`,dot:n=!0})=>e?S(r,{"data-slot":`description-status`,variant:`soft`,color:t,size:`sm`,className:`gap-1.5`,children:[n&&x(`span`,{className:y(`inline-block size-1.5 shrink-0 rounded-full`,I[t])}),e]}):x(C,{}),R=({tags:e,max:t=5,color:n=`secondary`,variant:i=`soft`})=>{if(!e?.length)return x(C,{});let a=e.slice(0,t),o=e.length-a.length;return S(`div`,{"data-slot":`description-tag-list`,className:`flex flex-wrap gap-1`,children:[a.map((e,t)=>x(r,{variant:i,color:n,size:`sm`,children:e},t)),o>0&&S(r,{variant:`outline`,color:`muted`,size:`sm`,children:[`+`,o]})]})},z=({uuid:e,username:t,email:n})=>!e||!t||!n?x(C,{}):x(c,{uuid:e,username:t,email:n}),B=p(!1),V=({label:e,labelColSpan:t=3,orientation:n=`horizontal`,action:r,children:i})=>n===`vertical`?S(`div`,{"data-slot":`description-item`,className:`flex flex-col border-b border-b-border last:border-b-0`,children:[S(`div`,{"data-slot":`description-item-label`,className:`flex items-center justify-between border-b border-b-border bg-secondary-muted py-2 pr-2 pl-4 text-sm font-medium text-text-positive-weak`,children:[x(`span`,{children:e}),r&&x(`div`,{className:`shrink-0`,children:r})]}),x(`div`,{"data-slot":`description-item-value`,className:`flex flex-wrap items-center gap-2 py-3 pr-2 pl-4 text-sm text-text-positive`,children:i})]}):S(`div`,{"data-slot":`description-item`,style:{display:`grid`,gridTemplateColumns:`repeat(12, minmax(0, 1fr))`},className:`grid border-b border-b-border last:border-b-0`,children:[S(`div`,{"data-slot":`description-item-label`,style:{gridColumn:`span ${t} / span ${t}`},className:`flex min-w-full items-center justify-between overflow-x-hidden text-wrap break-all border-r border-r-border bg-secondary-muted py-3 pr-2 pl-4 text-sm font-medium text-text-positive-weak tabular-nums`,children:[x(`span`,{children:e}),r&&x(`div`,{className:`shrink-0 pr-1`,children:r})]}),x(`div`,{"data-slot":`description-item-value`,style:{gridColumn:`span ${12-t} / span ${12-t}`},className:`flex flex-wrap items-center gap-2 py-3 pr-2 pl-4 text-sm text-text-positive`,children:i})]}),H=({title:e,description:t,extra:n,className:r})=>S(`div`,{"data-slot":`description-header`,className:y(`sticky top-0 z-10 flex items-center justify-between gap-4 border-b border-b-border bg-card px-4 py-3`,r),children:[S(`div`,{className:`flex flex-col gap-0.5`,children:[x(`p`,{className:`text-sm font-semibold text-text-positive`,children:e}),t&&x(`p`,{className:`text-xs text-text-positive-muted`,children:t})]}),n&&x(`div`,{className:`shrink-0`,children:n})]}),U=({title:e,className:t})=>S(`div`,{"data-slot":`description-section`,className:y(`flex items-center gap-3 border-b border-b-border px-4 py-2.5`,t),children:[e&&x(`p`,{className:`shrink-0 text-xs font-semibold uppercase tracking-widest text-text-positive-muted`,children:e}),x(`div`,{className:`h-px flex-1 bg-border`})]}),W=({rows:e})=>S(`div`,{"data-slot":`description-loading`,className:`animate-pulse`,children:[S(`div`,{className:`flex items-center justify-between border-b border-b-border px-4 py-3`,children:[S(`div`,{className:`flex flex-col gap-1.5`,children:[x(`div`,{className:`h-3.5 w-36 rounded bg-border`}),x(`div`,{className:`h-2.5 w-24 rounded bg-border-weak`})]}),x(`div`,{className:`h-5 w-16 rounded bg-border-weak`})]}),Array.from({length:e}).map((e,t)=>S(`div`,{style:{display:`grid`,gridTemplateColumns:`repeat(12, minmax(0, 1fr))`},className:`grid border-b border-b-border last:border-b-0`,children:[x(`div`,{style:{gridColumn:`span 3 / span 3`},className:`flex items-center border-r border-r-border bg-secondary-muted py-3 pl-4 pr-2`,children:x(`div`,{className:`h-3 w-20 rounded bg-border`})}),x(`div`,{style:{gridColumn:`span 9 / span 9`},className:`flex items-center py-3 pl-4 pr-2`,children:x(`div`,{className:`h-3 w-28 rounded bg-border-weak`})})]},t))]}),G=({children:e,className:t,nested:n=!1,loading:r=!1,loadingRows:i=4})=>{let a=g(B);return x(`div`,{"data-slot":`description`,className:y(`relative flex flex-col bg-card`,a?`border-b border-b-border last:border-b-0`:n?`w-full overflow-hidden rounded-md border border-border`:`size-full overflow-y-auto rounded-lg border border-border shadow-card ring-1 ring-border-weak`,t),children:r?x(W,{rows:i}):e})},K=({children:e,className:t})=>x(B.Provider,{value:!0,children:x(`div`,{"data-slot":`description-group`,className:y(`relative size-full overflow-y-auto rounded-lg border border-border bg-card shadow-card ring-1 ring-border-weak`,t),children:e})});export{T as _,U as a,L as c,j as d,A as f,E as g,D as h,V as i,F as l,O as m,K as n,z as o,k as p,H as r,R as s,G as t,M as u,w as v,C as y};
2
- //# sourceMappingURL=descriptions-CgkBHjKD.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"descriptions-CgkBHjKD.mjs","names":["DescriptionEmpty: React.FC","DescriptionBadge: React.FC<DescriptionBadgeProps>","DescriptionBoolean: React.FC<DescriptionBooleanProps>","DescriptionCopy: React.FC<DescriptionCopyProps>","DescriptionDate: React.FC<DescriptionDateProps>","DescriptionImages: React.FC<{\n images?: Array<ImageItem> | null | undefined;\n}>","Image","DescriptionLink: React.FC<DescriptionLinkProps>","DescriptionLongText: React.FC<{ content: string | null | undefined | number }>","DescriptionName: React.FC<{\n name?: string | null | undefined;\n}>","DescriptionNumberPhone: React.FC<{ value: string }>","options: Intl.NumberFormatOptions","dotColorMap: Record<StatusColor, string>","DescriptionStatus: React.FC<DescriptionStatusProps>","DescriptionTagList: React.FC<DescriptionTagListProps>","DescriptionUser: React.FC<DescriptionUserProps>","DescriptionItem: React.FC<\n React.PropsWithChildren<{\n /** Text displayed in the label column. */\n label: string;\n /**\n * Number of grid columns (out of 12) allocated to the label in horizontal orientation.\n * @default 3\n */\n labelColSpan?: number;\n /**\n * Layout direction of the label/value pair.\n * - `'horizontal'` — label and value are side by side.\n * - `'vertical'` — label sits above the value.\n * @default 'horizontal'\n */\n orientation?: 'horizontal' | 'vertical';\n /** Optional node rendered in the top-right corner of the label area (e.g. an edit action). */\n action?: React.ReactNode;\n }>\n>","DescriptionHeader: React.FC<{\n /** Primary heading text. */\n title: string;\n /** Optional secondary text rendered below the title in a smaller, muted style. */\n description?: string;\n /** Optional node rendered on the right side of the header (e.g. action buttons). */\n extra?: React.ReactNode;\n /** Additional CSS class names applied to the header wrapper. */\n className?: string;\n}>","DescriptionSection: React.FC<{\n /** Optional section label rendered as uppercase small-caps text beside the divider line. */\n title?: string;\n /** Additional CSS class names applied to the section wrapper. */\n className?: string;\n}>","DescriptionLoadingSkeleton: React.FC<{ rows: number }>","Description: React.FC<\n React.PropsWithChildren<{\n /** Additional CSS class names applied to the root wrapper element. */\n className?: string;\n /** Strips the outer card shadow/ring and adapts sizing for embedding inside another Description. */\n nested?: boolean;\n /** Replaces children with animated skeleton rows while data is loading. */\n loading?: boolean;\n /** Number of skeleton rows shown when `loading` is true. @default 4 */\n loadingRows?: number;\n }>\n>","DescriptionGroup: React.FC<\n React.PropsWithChildren<{\n /** Additional CSS class names applied to the group wrapper. */\n className?: string;\n }>\n>"],"sources":["../packages/components/features/descriptions/components/empty.tsx","../packages/components/features/descriptions/components/badge.tsx","../packages/components/features/descriptions/components/boolean.tsx","../packages/components/features/descriptions/components/copy.tsx","../packages/components/features/descriptions/components/date.tsx","../packages/components/features/descriptions/components/images.tsx","../packages/components/features/descriptions/components/link.tsx","../packages/components/features/descriptions/components/longtext.tsx","../packages/components/features/descriptions/components/name.tsx","../packages/components/features/descriptions/components/number-phone.tsx","../packages/components/features/descriptions/components/statistic.tsx","../packages/components/features/descriptions/components/status.tsx","../packages/components/features/descriptions/components/tag-list.tsx","../packages/components/features/descriptions/components/user.tsx","../packages/components/features/descriptions/index.tsx"],"sourcesContent":["'use client';\n\nexport const DescriptionEmpty: React.FC = () => {\n return (\n <span data-slot=\"description-empty\" aria-label=\"Empty value\" className=\"select-none font-medium text-sm text-text-positive-muted\">\n —\n </span>\n );\n};\n","'use client';\n\nimport { Badge } from '@/components/ui/badge';\nimport type { BadgeProps } from '@/components/ui/badge';\n\nimport { DescriptionEmpty } from './empty';\n\ntype DescriptionBadgeProps = {\n label: string | number | null | undefined;\n color?: BadgeProps['color'];\n variant?: BadgeProps['variant'];\n size?: BadgeProps['size'];\n};\n\nexport const DescriptionBadge: React.FC<DescriptionBadgeProps> = ({ label, color = 'secondary', variant = 'soft', size = 'sm' }) => {\n if (!label) return <DescriptionEmpty />;\n return (\n <Badge data-slot=\"description-badge\" color={color} variant={variant} size={size}>\n {label}\n </Badge>\n );\n};\n","'use client';\n\nimport { Badge } from '@/components/ui/badge';\n\nimport { DescriptionEmpty } from './empty';\n\ntype DescriptionBooleanProps = {\n value: boolean | null | undefined;\n trueLabel?: string;\n falseLabel?: string;\n};\n\nexport const DescriptionBoolean: React.FC<DescriptionBooleanProps> = ({ value, trueLabel = 'Yes', falseLabel = 'No' }) => {\n if (value == null) return <DescriptionEmpty />;\n return (\n <Badge data-slot=\"description-boolean\" variant=\"soft\" color={value ? 'success' : 'danger'} size=\"sm\">\n {value ? trueLabel : falseLabel}\n </Badge>\n );\n};\n","'use client';\n\nimport { useCallback, useState } from 'react';\nimport { CheckIcon, CopyIcon } from 'lucide-react';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { DescriptionEmpty } from './empty';\n\ntype DescriptionCopyProps = {\n value: string | null | undefined;\n truncate?: boolean;\n};\n\nexport const DescriptionCopy: React.FC<DescriptionCopyProps> = ({ value, truncate = true }) => {\n const [copied, setCopied] = useState(false);\n\n const handleCopy = useCallback(async () => {\n if (!value) return;\n await navigator.clipboard.writeText(value);\n setCopied(true);\n setTimeout(() => setCopied(false), 1500);\n }, [value]);\n\n if (!value) return <DescriptionEmpty />;\n\n return (\n <button\n type=\"button\"\n data-slot=\"description-copy\"\n onClick={handleCopy}\n className={cn(\n 'group inline-flex max-w-full cursor-pointer items-center gap-1.5 rounded-sm border border-border-weak bg-secondary-muted px-2 py-0.5 font-mono text-xs text-text-positive-weak transition-[border-color,color,box-shadow] hover:border-border hover:text-text-positive hover:shadow-xs',\n truncate && 'min-w-0'\n )}\n >\n <span className={cn('tabular-nums', truncate && 'truncate')}>{value}</span>\n {copied ? <CheckIcon size={12} className=\"shrink-0 text-success\" /> : <CopyIcon size={12} className=\"shrink-0 opacity-50 group-hover:opacity-100\" />}\n </button>\n );\n};\n","'use client';\n\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';\nimport { DateDisplay } from '@/components/data-display/date';\n\nimport { DescriptionEmpty } from './empty';\n\ntype DescriptionDateProps = {\n date: Date | string | number | null | undefined;\n};\n\nexport const DescriptionDate: React.FC<DescriptionDateProps> = ({ date }) => {\n if (date == null) return <DescriptionEmpty />;\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <DateDisplay data-slot=\"description-date\" date={date} format=\"medium\" className=\"cursor-help\" />\n </TooltipTrigger>\n <TooltipContent>\n <DateDisplay date={date} format=\"full\" showTime className=\"text-xs font-medium\" />\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n};\n","'use client';\n\nimport { Image } from '@/components/ui/image';\n\nimport { DescriptionEmpty } from './empty';\n\ntype ImageItem = { id: string; src: string; alt: string };\n\nexport const DescriptionImages: React.FC<{\n images?: Array<ImageItem> | null | undefined;\n}> = ({ images }) => {\n if (!images?.length) return <DescriptionEmpty />;\n\n const isSingle = images.length === 1;\n\n return (\n <div data-slot=\"description-images\" className=\"flex flex-wrap gap-4\">\n {images.map(image => (\n <div\n key={image.id}\n className={\n isSingle\n ? 'group relative size-42 overflow-hidden rounded-sm border border-border shadow-xs transition-shadow hover:shadow-card'\n : 'group relative size-16 overflow-hidden rounded-lg border border-border shadow-xs transition-shadow hover:shadow-card'\n }\n >\n <Image src={image.src} alt={image.alt} width=\"100%\" height=\"100%\" className=\"transition-transform duration-200 group-hover:scale-105\" />\n </div>\n ))}\n </div>\n );\n};\n","'use client';\n\nimport { ExternalLinkIcon, LinkIcon } from 'lucide-react';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { DescriptionEmpty } from './empty';\n\ntype DescriptionLinkProps = {\n href: string | null | undefined;\n label?: string;\n external?: boolean;\n className?: string;\n};\n\nexport const DescriptionLink: React.FC<DescriptionLinkProps> = ({ href, label, external = true, className }) => {\n if (!href) return <DescriptionEmpty />;\n\n return (\n <a\n data-slot=\"description-link\"\n href={href}\n target={external ? '_blank' : undefined}\n rel={external ? 'noopener noreferrer' : undefined}\n className={cn(\n 'inline-flex max-w-full items-center gap-1 text-sm text-primary underline decoration-dashed underline-offset-2 transition-colors hover:text-primary-strong hover:decoration-solid',\n className\n )}\n >\n {!external && <LinkIcon size={12} className=\"shrink-0 opacity-70\" />}\n <span className=\"truncate\">{label ?? href}</span>\n {external && <ExternalLinkIcon size={12} className=\"shrink-0 opacity-70\" />}\n </a>\n );\n};\n","'use client';\n\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';\nimport { Paragraph } from '@/components/typography/paragraph';\n\nimport { DescriptionEmpty } from './empty';\n\nexport const DescriptionLongText: React.FC<{ content: string | null | undefined | number }> = ({ content }) => {\n if (content == null) return <DescriptionEmpty />;\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <Paragraph\n data-slot=\"description-longtext\"\n variant=\"sm\"\n className=\"line-clamp-2 cursor-pointer whitespace-pre-line break-all text-start text-sm hover:text-text-positive transition-colors\"\n >\n {content}\n </Paragraph>\n </TooltipTrigger>\n <TooltipContent align=\"start\" className=\"h-fit min-w-48 max-w-80 pt-4\">\n <div className=\"flex flex-col gap-y-2\">\n <p className=\"whitespace-pre-line text-wrap break-keep\">{content}</p>\n <p className=\"w-full text-end text-text-positive-subtle\">{content.toString().length} chars</p>\n </div>\n </TooltipContent>\n </Tooltip>\n );\n};\n","'use client';\n\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';\nimport { Paragraph } from '@/components/typography/paragraph';\n\nimport { DescriptionEmpty } from './empty';\n\nexport const DescriptionName: React.FC<{\n name?: string | null | undefined;\n}> = ({ name }) => {\n if (!name) return <DescriptionEmpty />;\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <Paragraph data-slot=\"description-name\" variant=\"sm\" className=\"line-clamp-2 w-full cursor-pointer truncate hover:text-text-positive transition-colors\">\n {name}\n </Paragraph>\n </TooltipTrigger>\n <TooltipContent align=\"start\" className=\"h-fit min-w-48 max-w-80 pt-4\">\n <div className=\"flex flex-col gap-y-2\">\n <p className=\"whitespace-pre-line text-wrap break-keep\">{name}</p>\n <p className=\"w-full text-end text-text-positive-subtle\">{name.length} chars</p>\n </div>\n </TooltipContent>\n </Tooltip>\n );\n};\n","'use client';\n\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';\nimport { Paragraph } from '@/components/typography/paragraph';\n\nexport const DescriptionNumberPhone: React.FC<{ value: string }> = ({ value }) => {\n return (\n <Tooltip>\n <TooltipTrigger data-slot=\"description-phone\">\n <Paragraph variant=\"sm\" className=\"tabular-nums transition-colors\">\n {value.replace(/(\\d{3})(\\d{3})(\\d{4})/, '($1) $2-$3')}\n </Paragraph>\n </TooltipTrigger>\n <TooltipContent align=\"start\">\n <p className=\"tabular-nums\">{value.slice(1).replace(/(\\d{2})(\\d{3})(\\d{4})/, '(00) (+84) ($1) $2-$3')}</p>\n </TooltipContent>\n </Tooltip>\n );\n};\n","'use client';\n\nimport { memo, useCallback, useMemo } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { DescriptionEmpty } from './empty';\n\nconst applyRounding = (num: number, precisionValue: number, roundingMode?: 'round' | 'floor' | 'ceil') => {\n const multiplier = 10 ** precisionValue;\n switch (roundingMode) {\n case 'floor':\n return Math.floor(num * multiplier) / multiplier;\n case 'ceil':\n return Math.ceil(num * multiplier) / multiplier;\n default:\n return Math.round(num * multiplier) / multiplier;\n }\n};\n\nconst descriptionStatisticVariants = cva('inline-flex items-center gap-1 font-number tabular-nums transition-colors', {\n variants: {\n size: {\n xs: 'text-xs',\n sm: 'text-sm',\n md: 'text-base',\n lg: 'text-lg',\n xl: 'text-xl',\n },\n trend: {\n neutral: 'text-text-positive',\n up: 'text-success',\n down: 'text-danger',\n },\n },\n defaultVariants: {\n size: 'sm',\n trend: 'neutral',\n },\n});\n\nexport type DescriptionStatisticProps = VariantProps<typeof descriptionStatisticVariants> & {\n decimalSeparator?: string;\n groupSeparator?: string;\n prefix?: React.ReactNode;\n suffix?: React.ReactNode;\n precision?: number;\n roundingMode?: 'round' | 'floor' | 'ceil';\n showTrailingZeros?: boolean;\n value: number | string | null | undefined;\n className?: string;\n};\n\nexport const DescriptionStatistic = memo(\n ({\n decimalSeparator = '.',\n groupSeparator = ',',\n prefix: Prefix,\n suffix: Suffix,\n precision,\n roundingMode = 'round',\n showTrailingZeros = false,\n size = 'sm',\n trend = 'neutral',\n value = 0,\n className,\n }: DescriptionStatisticProps) => {\n const formatOptions = useMemo((): Intl.NumberFormatOptions => {\n const options: Intl.NumberFormatOptions = {};\n if (typeof precision === 'number' && precision >= 0) {\n if (showTrailingZeros) {\n options.minimumFractionDigits = precision;\n options.maximumFractionDigits = precision;\n } else {\n options.maximumFractionDigits = precision;\n }\n }\n return options;\n }, [precision, showTrailingZeros]);\n\n const formatNumber = useCallback(\n (num: number): string => {\n let processedNum = num;\n if (typeof precision === 'number' && precision >= 0) {\n processedNum = applyRounding(num, precision, roundingMode);\n }\n return processedNum.toLocaleString('en-US', formatOptions);\n },\n [roundingMode, formatOptions, precision]\n );\n\n const processedValue = useMemo((): string => {\n if (typeof value === 'number') {\n if (Number.isNaN(value) || !Number.isFinite(value)) return 'N/A';\n return formatNumber(value);\n }\n if (typeof value === 'string') {\n const trimmedValue = value.trim();\n if (!trimmedValue) return 'N/A';\n const numValue = Number(trimmedValue);\n if (Number.isNaN(numValue) || !Number.isFinite(numValue)) return 'N/A';\n return formatNumber(numValue);\n }\n return 'N/A';\n }, [value, formatNumber]);\n\n const finalFormattedValue = useMemo((): string => {\n if (decimalSeparator === '.' && groupSeparator === ',') return processedValue;\n return processedValue.replace(/,/g, groupSeparator).replace(/\\./g, decimalSeparator);\n }, [processedValue, decimalSeparator, groupSeparator]);\n\n if (finalFormattedValue === '0' || finalFormattedValue === 'N/A' || !finalFormattedValue) {\n return <DescriptionEmpty />;\n }\n\n return (\n <div data-slot=\"description-statistic\" className={cn(descriptionStatisticVariants({ size, trend }), className)}>\n {Prefix && <span data-slot=\"description-statistic-prefix\">{Prefix}</span>}\n <p data-slot=\"description-statistic-value\">{finalFormattedValue}</p>\n {Suffix && <span data-slot=\"description-statistic-suffix\">{Suffix}</span>}\n </div>\n );\n }\n);\nDescriptionStatistic.displayName = 'DescriptionStatistic';\n","'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Badge } from '@/components/ui/badge';\nimport type { BadgeProps } from '@/components/ui/badge';\n\nimport { DescriptionEmpty } from './empty';\n\ntype StatusColor = NonNullable<BadgeProps['color']>;\n\nconst dotColorMap: Record<StatusColor, string> = {\n primary: 'bg-primary',\n secondary: 'bg-secondary',\n muted: 'bg-muted',\n accent: 'bg-accent',\n info: 'bg-info',\n success: 'bg-success',\n warning: 'bg-warning',\n danger: 'bg-danger',\n};\n\ntype DescriptionStatusProps = {\n label: string | null | undefined;\n color?: StatusColor;\n dot?: boolean;\n};\n\nexport const DescriptionStatus: React.FC<DescriptionStatusProps> = ({ label, color = 'info', dot = true }) => {\n if (!label) return <DescriptionEmpty />;\n return (\n <Badge data-slot=\"description-status\" variant=\"soft\" color={color} size=\"sm\" className=\"gap-1.5\">\n {dot && <span className={cn('inline-block size-1.5 shrink-0 rounded-full', dotColorMap[color])} />}\n {label}\n </Badge>\n );\n};\n","'use client';\n\nimport { Badge } from '@/components/ui/badge';\nimport type { BadgeProps } from '@/components/ui/badge';\n\nimport { DescriptionEmpty } from './empty';\n\ntype DescriptionTagListProps = {\n tags: Array<string | number> | null | undefined;\n max?: number;\n color?: BadgeProps['color'];\n variant?: BadgeProps['variant'];\n};\n\nexport const DescriptionTagList: React.FC<DescriptionTagListProps> = ({ tags, max = 5, color = 'secondary', variant = 'soft' }) => {\n if (!tags?.length) return <DescriptionEmpty />;\n\n const visible = tags.slice(0, max);\n const overflow = tags.length - visible.length;\n\n return (\n <div data-slot=\"description-tag-list\" className=\"flex flex-wrap gap-1\">\n {visible.map((tag, i) => (\n // biome-ignore lint/suspicious/noArrayIndexKey: static display list\n <Badge key={i} variant={variant} color={color} size=\"sm\">\n {tag}\n </Badge>\n ))}\n {overflow > 0 && (\n <Badge variant=\"outline\" color=\"muted\" size=\"sm\">\n +{overflow}\n </Badge>\n )}\n </div>\n );\n};\n","'use client';\n\nimport { UserDataDisplay } from '@/components/data-display/user';\n\nimport { DescriptionEmpty } from './empty';\n\ntype DescriptionUserProps = {\n uuid?: string | null;\n username?: string | null;\n email?: string | null;\n};\n\nexport const DescriptionUser: React.FC<DescriptionUserProps> = ({ uuid, username, email }) => {\n if (!uuid || !username || !email) return <DescriptionEmpty />;\n return <UserDataDisplay uuid={uuid} username={username} email={email} />;\n};\n","'use client';\n\nimport { createContext, useContext } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nexport * from './components';\n\nconst DescriptionGroupContext = createContext(false);\n\n/**\n * A single labeled row within a {@link Description} container, supporting both horizontal (side-by-side label/value) and vertical (stacked) layouts.\n *\n * @example\n * import { Description, DescriptionItem } from '@customafk/lunas-ui/features/descriptions';\n *\n * <Description>\n * <DescriptionItem label=\"Full name\">John Doe</DescriptionItem>\n * <DescriptionItem label=\"Email\" orientation=\"vertical\">john@example.com</DescriptionItem>\n * </Description>\n */\nexport const DescriptionItem: React.FC<\n React.PropsWithChildren<{\n /** Text displayed in the label column. */\n label: string;\n /**\n * Number of grid columns (out of 12) allocated to the label in horizontal orientation.\n * @default 3\n */\n labelColSpan?: number;\n /**\n * Layout direction of the label/value pair.\n * - `'horizontal'` — label and value are side by side.\n * - `'vertical'` — label sits above the value.\n * @default 'horizontal'\n */\n orientation?: 'horizontal' | 'vertical';\n /** Optional node rendered in the top-right corner of the label area (e.g. an edit action). */\n action?: React.ReactNode;\n }>\n> = ({ label, labelColSpan = 3, orientation = 'horizontal', action, children }) => {\n if (orientation === 'vertical') {\n return (\n <div data-slot=\"description-item\" className=\"flex flex-col border-b border-b-border last:border-b-0\">\n <div\n data-slot=\"description-item-label\"\n className=\"flex items-center justify-between border-b border-b-border bg-secondary-muted py-2 pr-2 pl-4 text-sm font-medium text-text-positive-weak\"\n >\n <span>{label}</span>\n {action && <div className=\"shrink-0\">{action}</div>}\n </div>\n <div data-slot=\"description-item-value\" className=\"flex flex-wrap items-center gap-2 py-3 pr-2 pl-4 text-sm text-text-positive\">\n {children}\n </div>\n </div>\n );\n }\n\n return (\n <div\n data-slot=\"description-item\"\n style={{ display: 'grid', gridTemplateColumns: 'repeat(12, minmax(0, 1fr))' }}\n className=\"grid border-b border-b-border last:border-b-0\"\n >\n <div\n data-slot=\"description-item-label\"\n style={{ gridColumn: `span ${labelColSpan} / span ${labelColSpan}` }}\n className=\"flex min-w-full items-center justify-between overflow-x-hidden text-wrap break-all border-r border-r-border bg-secondary-muted py-3 pr-2 pl-4 text-sm font-medium text-text-positive-weak tabular-nums\"\n >\n <span>{label}</span>\n {action && <div className=\"shrink-0 pr-1\">{action}</div>}\n </div>\n <div\n data-slot=\"description-item-value\"\n style={{ gridColumn: `span ${12 - labelColSpan} / span ${12 - labelColSpan}` }}\n className=\"flex flex-wrap items-center gap-2 py-3 pr-2 pl-4 text-sm text-text-positive\"\n >\n {children}\n </div>\n </div>\n );\n};\n\n/**\n * A header bar for a {@link Description} block, showing a title, an optional subtitle, and an optional trailing action area.\n *\n * @example\n * import { Description, DescriptionHeader } from '@customafk/lunas-ui/features/descriptions';\n *\n * <Description>\n * <DescriptionHeader title=\"User details\" description=\"Read-only overview\" extra={<EditBtn />} />\n * </Description>\n */\nexport const DescriptionHeader: React.FC<{\n /** Primary heading text. */\n title: string;\n /** Optional secondary text rendered below the title in a smaller, muted style. */\n description?: string;\n /** Optional node rendered on the right side of the header (e.g. action buttons). */\n extra?: React.ReactNode;\n /** Additional CSS class names applied to the header wrapper. */\n className?: string;\n}> = ({ title, description, extra, className }) => {\n return (\n <div\n data-slot=\"description-header\"\n className={cn('sticky top-0 z-10 flex items-center justify-between gap-4 border-b border-b-border bg-card px-4 py-3', className)}\n >\n <div className=\"flex flex-col gap-0.5\">\n <p className=\"text-sm font-semibold text-text-positive\">{title}</p>\n {description && <p className=\"text-xs text-text-positive-muted\">{description}</p>}\n </div>\n {extra && <div className=\"shrink-0\">{extra}</div>}\n </div>\n );\n};\n\n/**\n * A visual section divider inside a {@link Description} container that optionally displays a section title with a decorative horizontal rule.\n *\n * @example\n * import { Description, DescriptionSection, DescriptionItem } from '@customafk/lunas-ui/features/descriptions';\n *\n * <Description>\n * <DescriptionSection title=\"Contact\" />\n * <DescriptionItem label=\"Email\">john@example.com</DescriptionItem>\n * </Description>\n */\nexport const DescriptionSection: React.FC<{\n /** Optional section label rendered as uppercase small-caps text beside the divider line. */\n title?: string;\n /** Additional CSS class names applied to the section wrapper. */\n className?: string;\n}> = ({ title, className }) => {\n return (\n <div data-slot=\"description-section\" className={cn('flex items-center gap-3 border-b border-b-border px-4 py-2.5', className)}>\n {title && <p className=\"shrink-0 text-xs font-semibold uppercase tracking-widest text-text-positive-muted\">{title}</p>}\n <div className=\"h-px flex-1 bg-border\" />\n </div>\n );\n};\n\nconst DescriptionLoadingSkeleton: React.FC<{ rows: number }> = ({ rows }) => (\n <div data-slot=\"description-loading\" className=\"animate-pulse\">\n <div className=\"flex items-center justify-between border-b border-b-border px-4 py-3\">\n <div className=\"flex flex-col gap-1.5\">\n <div className=\"h-3.5 w-36 rounded bg-border\" />\n <div className=\"h-2.5 w-24 rounded bg-border-weak\" />\n </div>\n <div className=\"h-5 w-16 rounded bg-border-weak\" />\n </div>\n {Array.from({ length: rows }).map((_, i) => (\n <div key={i} style={{ display: 'grid', gridTemplateColumns: 'repeat(12, minmax(0, 1fr))' }} className=\"grid border-b border-b-border last:border-b-0\">\n <div style={{ gridColumn: 'span 3 / span 3' }} className=\"flex items-center border-r border-r-border bg-secondary-muted py-3 pl-4 pr-2\">\n <div className=\"h-3 w-20 rounded bg-border\" />\n </div>\n <div style={{ gridColumn: 'span 9 / span 9' }} className=\"flex items-center py-3 pl-4 pr-2\">\n <div className=\"h-3 w-28 rounded bg-border-weak\" />\n </div>\n </div>\n ))}\n </div>\n);\n\n/**\n * Root container for a description block — a bordered, rounded card that groups {@link DescriptionHeader}, {@link DescriptionSection}, and {@link DescriptionItem} elements.\n *\n * Set `nested` when embedding one `Description` inside another (removes the outer card shadow/ring and constrains sizing).\n * Set `loading` to replace content with animated skeleton rows while data is being fetched.\n *\n * @example\n * import { Description, DescriptionHeader, DescriptionItem } from '@customafk/lunas-ui/features/descriptions';\n *\n * <Description>\n * <DescriptionHeader title=\"Order #1234\" />\n * <DescriptionItem label=\"Status\">Shipped</DescriptionItem>\n * <DescriptionItem label=\"Total\">$99.00</DescriptionItem>\n * </Description>\n */\nexport const Description: React.FC<\n React.PropsWithChildren<{\n /** Additional CSS class names applied to the root wrapper element. */\n className?: string;\n /** Strips the outer card shadow/ring and adapts sizing for embedding inside another Description. */\n nested?: boolean;\n /** Replaces children with animated skeleton rows while data is loading. */\n loading?: boolean;\n /** Number of skeleton rows shown when `loading` is true. @default 4 */\n loadingRows?: number;\n }>\n> = ({ children, className, nested = false, loading = false, loadingRows = 4 }) => {\n const inGroup = useContext(DescriptionGroupContext);\n\n return (\n <div\n data-slot=\"description\"\n className={cn(\n 'relative flex flex-col bg-card',\n inGroup\n ? 'border-b border-b-border last:border-b-0'\n : nested\n ? 'w-full overflow-hidden rounded-md border border-border'\n : 'size-full overflow-y-auto rounded-lg border border-border shadow-card ring-1 ring-border-weak',\n className\n )}\n >\n {loading ? <DescriptionLoadingSkeleton rows={loadingRows} /> : children}\n </div>\n );\n};\n\n/**\n * A scrollable container that groups multiple {@link Description} blocks and makes each\n * {@link DescriptionHeader} sticky. As you scroll, the next section header stacks above\n * (pushes out) the previous one — standard CSS sticky behaviour within a single scroll context.\n *\n * @example\n * import { DescriptionGroup, Description, DescriptionHeader, DescriptionItem } from '@customafk/lunas-ui/features/descriptions';\n *\n * <DescriptionGroup>\n * <Description>\n * <DescriptionHeader title=\"Personal info\" />\n * <DescriptionItem label=\"Name\">John Doe</DescriptionItem>\n * </Description>\n * <Description>\n * <DescriptionHeader title=\"Contact\" />\n * <DescriptionItem label=\"Email\">john@example.com</DescriptionItem>\n * </Description>\n * </DescriptionGroup>\n */\nexport const DescriptionGroup: React.FC<\n React.PropsWithChildren<{\n /** Additional CSS class names applied to the group wrapper. */\n className?: string;\n }>\n> = ({ children, className }) => {\n return (\n <DescriptionGroupContext.Provider value={true}>\n <div\n data-slot=\"description-group\"\n className={cn('relative size-full overflow-y-auto rounded-lg border border-border bg-card shadow-card ring-1 ring-border-weak', className)}\n >\n {children}\n </div>\n </DescriptionGroupContext.Provider>\n );\n};\n"],"mappings":"imBAEA,MAAaA,MAET,EAAC,OAAA,CAAK,YAAU,oBAAoB,aAAW,cAAc,UAAU,oEAA2D,KAE3H,CCQEC,GAAqD,CAAE,QAAO,QAAQ,YAAa,UAAU,OAAQ,OAAO,QAClH,EAEH,EAAC,EAAA,CAAM,YAAU,oBAA2B,QAAgB,UAAe,gBACxE,GACK,CAJS,EAAC,EAAA,EAAA,CAAmB,CCH5BC,GAAyD,CAAE,QAAO,YAAY,MAAO,aAAa,QACzG,GAAS,KAAa,EAAC,EAAA,EAAA,CAAmB,CAE5C,EAAC,EAAA,CAAM,YAAU,sBAAsB,QAAQ,OAAO,MAAO,EAAQ,UAAY,SAAU,KAAK,cAC7F,EAAQ,EAAY,GACf,CCJCC,GAAmD,CAAE,QAAO,WAAW,MAAW,CAC7F,GAAM,CAAC,EAAQ,GAAa,EAAS,GAAM,CAErC,EAAa,EAAY,SAAY,CACpC,IACL,MAAM,UAAU,UAAU,UAAU,EAAM,CAC1C,EAAU,GAAK,CACf,eAAiB,EAAU,GAAM,CAAE,KAAK,GACvC,CAAC,EAAM,CAAC,CAIX,OAFK,EAGH,EAAC,SAAA,CACC,KAAK,SACL,YAAU,mBACV,QAAS,EACT,UAAW,EACT,yRACA,GAAY,UACb,WAED,EAAC,OAAA,CAAK,UAAW,EAAG,eAAgB,GAAY,WAAW,UAAG,GAAa,CAC1E,EAAS,EAAC,EAAA,CAAU,KAAM,GAAI,UAAU,yBAA0B,CAAG,EAAC,EAAA,CAAS,KAAM,GAAI,UAAU,+CAAgD,CAAA,EAC7I,CAdQ,EAAC,EAAA,EAAA,CAAmB,ECZ5BC,GAAmD,CAAE,UAC5D,GAAQ,KAAa,EAAC,EAAA,EAAA,CAAmB,CAE3C,EAAC,EAAA,CAAA,SACC,EAAC,EAAA,CAAA,SAAA,CACC,EAAC,EAAA,CAAe,QAAA,YACd,EAAC,EAAA,CAAY,YAAU,mBAAyB,OAAM,OAAO,SAAS,UAAU,eAAgB,EACjF,CACjB,EAAC,EAAA,CAAA,SACC,EAAC,EAAA,CAAkB,OAAM,OAAO,OAAO,SAAA,GAAS,UAAU,uBAAwB,CAAA,CACnE,CAAA,CAAA,CACT,CAAA,CACM,CCfTC,GAEP,CAAE,YAAa,CACnB,GAAI,CAAC,GAAQ,OAAQ,OAAO,EAAC,EAAA,EAAA,CAAmB,CAEhD,IAAM,EAAW,EAAO,SAAW,EAEnC,OACE,EAAC,MAAA,CAAI,YAAU,qBAAqB,UAAU,gCAC3C,EAAO,IAAI,GACV,EAAC,MAAA,CAEC,UACE,EACI,uHACA,gIAGN,EAACC,EAAAA,CAAM,IAAK,EAAM,IAAK,IAAK,EAAM,IAAK,MAAM,OAAO,OAAO,OAAO,UAAU,2DAA4D,EAPnI,EAAM,GAQP,CACN,EACE,ECfGC,GAAmD,CAAE,OAAM,QAAO,WAAW,GAAM,eACzF,EAGH,EAAC,IAAA,CACC,YAAU,mBACJ,OACN,OAAQ,EAAW,SAAW,IAAA,GAC9B,IAAK,EAAW,sBAAwB,IAAA,GACxC,UAAW,EACT,mLACA,EACD,WAEA,CAAC,GAAY,EAAC,EAAA,CAAS,KAAM,GAAI,UAAU,uBAAwB,CACpE,EAAC,OAAA,CAAK,UAAU,oBAAY,GAAS,GAAY,CAChD,GAAY,EAAC,EAAA,CAAiB,KAAM,GAAI,UAAU,uBAAwB,GACzE,CAhBY,EAAC,EAAA,EAAA,CAAmB,CCR3BC,GAAkF,CAAE,aAC3F,GAAW,KAAa,EAAC,EAAA,EAAA,CAAmB,CAE9C,EAAC,EAAA,CAAA,SAAA,CACC,EAAC,EAAA,CAAe,QAAA,YACd,EAAC,EAAA,CACC,YAAU,uBACV,QAAQ,KACR,UAAU,mIAET,GACS,EACG,CACjB,EAAC,EAAA,CAAe,MAAM,QAAQ,UAAU,wCACtC,EAAC,MAAA,CAAI,UAAU,kCACb,EAAC,IAAA,CAAE,UAAU,oDAA4C,GAAY,CACrE,EAAC,IAAA,CAAE,UAAU,sDAA6C,EAAQ,UAAU,CAAC,OAAO,SAAA,EAAU,CAAA,EAC1F,EACS,CAAA,CAAA,CACT,CCnBDC,GAEP,CAAE,UACD,EAEH,EAAC,EAAA,CAAA,SAAA,CACC,EAAC,EAAA,CAAe,QAAA,YACd,EAAC,EAAA,CAAU,YAAU,mBAAmB,QAAQ,KAAK,UAAU,kGAC5D,GACS,EACG,CACjB,EAAC,EAAA,CAAe,MAAM,QAAQ,UAAU,wCACtC,EAAC,MAAA,CAAI,UAAU,kCACb,EAAC,IAAA,CAAE,UAAU,oDAA4C,GAAS,CAClE,EAAC,IAAA,CAAE,UAAU,sDAA6C,EAAK,OAAO,SAAA,EAAU,CAAA,EAC5E,EACS,CAAA,CAAA,CACT,CAdM,EAAC,EAAA,EAAA,CAAmB,CCL3BC,GAAuD,CAAE,WAElE,EAAC,EAAA,CAAA,SAAA,CACC,EAAC,EAAA,CAAe,YAAU,6BACxB,EAAC,EAAA,CAAU,QAAQ,KAAK,UAAU,0CAC/B,EAAM,QAAQ,wBAAyB,aAAa,EAC3C,EACG,CACjB,EAAC,EAAA,CAAe,MAAM,iBACpB,EAAC,IAAA,CAAE,UAAU,wBAAgB,EAAM,MAAM,EAAE,CAAC,QAAQ,wBAAyB,wBAAwB,EAAK,EAC3F,CAAA,CAAA,CACT,CCRR,GAAiB,EAAa,EAAwB,IAA8C,CACxG,IAAM,EAAa,IAAM,EACzB,OAAQ,EAAR,CACE,IAAK,QACH,OAAO,KAAK,MAAM,EAAM,EAAW,CAAG,EACxC,IAAK,OACH,OAAO,KAAK,KAAK,EAAM,EAAW,CAAG,EACvC,QACE,OAAO,KAAK,MAAM,EAAM,EAAW,CAAG,IAItC,EAA+B,EAAI,4EAA6E,CACpH,SAAU,CACR,KAAM,CACJ,GAAI,UACJ,GAAI,UACJ,GAAI,YACJ,GAAI,UACJ,GAAI,UACL,CACD,MAAO,CACL,QAAS,qBACT,GAAI,eACJ,KAAM,cACP,CACF,CACD,gBAAiB,CACf,KAAM,KACN,MAAO,UACR,CACF,CAAC,CAcW,EAAuB,GACjC,CACC,mBAAmB,IACnB,iBAAiB,IACjB,OAAQ,EACR,OAAQ,EACR,YACA,eAAe,QACf,oBAAoB,GACpB,OAAO,KACP,QAAQ,UACR,QAAQ,EACR,eAC+B,CAC/B,IAAM,EAAgB,MAAwC,CAC5D,IAAMC,EAAoC,EAAE,CAS5C,OARI,OAAO,GAAc,UAAY,GAAa,IAC5C,IACF,EAAQ,sBAAwB,GAGhC,EAAQ,sBAAwB,GAG7B,GACN,CAAC,EAAW,EAAkB,CAAC,CAE5B,EAAe,EAClB,GAAwB,CACvB,IAAI,EAAe,EAInB,OAHI,OAAO,GAAc,UAAY,GAAa,IAChD,EAAe,EAAc,EAAK,EAAW,EAAa,EAErD,EAAa,eAAe,QAAS,EAAc,EAE5D,CAAC,EAAc,EAAe,EAAU,CACzC,CAEK,EAAiB,MAAsB,CAC3C,GAAI,OAAO,GAAU,SAEnB,OADI,OAAO,MAAM,EAAM,EAAI,CAAC,OAAO,SAAS,EAAM,CAAS,MACpD,EAAa,EAAM,CAE5B,GAAI,OAAO,GAAU,SAAU,CAC7B,IAAM,EAAe,EAAM,MAAM,CACjC,GAAI,CAAC,EAAc,MAAO,MAC1B,IAAM,EAAW,OAAO,EAAa,CAErC,OADI,OAAO,MAAM,EAAS,EAAI,CAAC,OAAO,SAAS,EAAS,CAAS,MAC1D,EAAa,EAAS,CAE/B,MAAO,OACN,CAAC,EAAO,EAAa,CAAC,CAEnB,EAAsB,MACtB,IAAqB,KAAO,IAAmB,IAAY,EACxD,EAAe,QAAQ,KAAM,EAAe,CAAC,QAAQ,MAAO,EAAiB,CACnF,CAAC,EAAgB,EAAkB,EAAe,CAAC,CAMtD,OAJI,IAAwB,KAAO,IAAwB,OAAS,CAAC,EAC5D,EAAC,EAAA,EAAA,CAAmB,CAI3B,EAAC,MAAA,CAAI,YAAU,wBAAwB,UAAW,EAAG,EAA6B,CAAE,OAAM,QAAO,CAAC,CAAE,EAAU,WAC3G,GAAU,EAAC,OAAA,CAAK,YAAU,wCAAgC,GAAc,CACzE,EAAC,IAAA,CAAE,YAAU,uCAA+B,GAAwB,CACnE,GAAU,EAAC,OAAA,CAAK,YAAU,wCAAgC,GAAc,GACrE,EAGX,CACD,EAAqB,YAAc,uBCjHnC,MAAMC,EAA2C,CAC/C,QAAS,aACT,UAAW,eACX,MAAO,WACP,OAAQ,YACR,KAAM,UACN,QAAS,aACT,QAAS,aACT,OAAQ,YACT,CAQYC,GAAuD,CAAE,QAAO,QAAQ,OAAQ,MAAM,MAC5F,EAEH,EAAC,EAAA,CAAM,YAAU,qBAAqB,QAAQ,OAAc,QAAO,KAAK,KAAK,UAAU,oBACpF,GAAO,EAAC,OAAA,CAAK,UAAW,EAAG,8CAA+C,EAAY,GAAO,CAAA,CAAI,CACjG,EAAA,EACK,CALS,EAAC,EAAA,EAAA,CAAmB,CCf5BC,GAAyD,CAAE,OAAM,MAAM,EAAG,QAAQ,YAAa,UAAU,UAAa,CACjI,GAAI,CAAC,GAAM,OAAQ,OAAO,EAAC,EAAA,EAAA,CAAmB,CAE9C,IAAM,EAAU,EAAK,MAAM,EAAG,EAAI,CAC5B,EAAW,EAAK,OAAS,EAAQ,OAEvC,OACE,EAAC,MAAA,CAAI,YAAU,uBAAuB,UAAU,iCAC7C,EAAQ,KAAK,EAAK,IAEjB,EAAC,EAAA,CAAuB,UAAgB,QAAO,KAAK,cACjD,GADS,EAEJ,CACR,CACD,EAAW,GACV,EAAC,EAAA,CAAM,QAAQ,UAAU,MAAM,QAAQ,KAAK,eAAK,IAC7C,EAAA,EACI,CAAA,EAEN,ECrBGC,GAAmD,CAAE,OAAM,WAAU,WAC5E,CAAC,GAAQ,CAAC,GAAY,CAAC,EAAc,EAAC,EAAA,EAAA,CAAmB,CACtD,EAAC,EAAA,CAAsB,OAAgB,WAAiB,SAAS,CCNpE,EAA0B,EAAc,GAAM,CAavCC,GAmBR,CAAE,QAAO,eAAe,EAAG,cAAc,aAAc,SAAQ,cAC9D,IAAgB,WAEhB,EAAC,MAAA,CAAI,YAAU,mBAAmB,UAAU,mEAC1C,EAAC,MAAA,CACC,YAAU,yBACV,UAAU,qJAEV,EAAC,OAAA,CAAA,SAAM,EAAA,CAAa,CACnB,GAAU,EAAC,MAAA,CAAI,UAAU,oBAAY,GAAa,CAAA,EAC/C,CACN,EAAC,MAAA,CAAI,YAAU,yBAAyB,UAAU,8EAC/C,YACG,CAAA,EACF,CAKR,EAAC,MAAA,CACC,YAAU,mBACV,MAAO,CAAE,QAAS,OAAQ,oBAAqB,6BAA8B,CAC7E,UAAU,0DAEV,EAAC,MAAA,CACC,YAAU,yBACV,MAAO,CAAE,WAAY,QAAQ,EAAa,UAAU,IAAgB,CACpE,UAAU,mNAEV,EAAC,OAAA,CAAA,SAAM,EAAA,CAAa,CACnB,GAAU,EAAC,MAAA,CAAI,UAAU,yBAAiB,GAAa,CAAA,EACpD,CACN,EAAC,MAAA,CACC,YAAU,yBACV,MAAO,CAAE,WAAY,QAAQ,GAAK,EAAa,UAAU,GAAK,IAAgB,CAC9E,UAAU,8EAET,YACG,CAAA,EACF,CAcGC,GASP,CAAE,QAAO,cAAa,QAAO,eAE/B,EAAC,MAAA,CACC,YAAU,qBACV,UAAW,EAAG,uGAAwG,EAAU,WAEhI,EAAC,MAAA,CAAI,UAAU,kCACb,EAAC,IAAA,CAAE,UAAU,oDAA4C,GAAU,CAClE,GAAe,EAAC,IAAA,CAAE,UAAU,4CAAoC,GAAgB,CAAA,EAC7E,CACL,GAAS,EAAC,MAAA,CAAI,UAAU,oBAAY,GAAY,CAAA,EAC7C,CAeGC,GAKP,CAAE,QAAO,eAEX,EAAC,MAAA,CAAI,YAAU,sBAAsB,UAAW,EAAG,+DAAgE,EAAU,WAC1H,GAAS,EAAC,IAAA,CAAE,UAAU,6FAAqF,GAAU,CACtH,EAAC,MAAA,CAAI,UAAU,wBAAA,CAA0B,CAAA,EACrC,CAIJC,GAA0D,CAAE,UAChE,EAAC,MAAA,CAAI,YAAU,sBAAsB,UAAU,0BAC7C,EAAC,MAAA,CAAI,UAAU,iFACb,EAAC,MAAA,CAAI,UAAU,kCACb,EAAC,MAAA,CAAI,UAAU,+BAAA,CAAiC,CAChD,EAAC,MAAA,CAAI,UAAU,oCAAA,CAAsC,CAAA,EACjD,CACN,EAAC,MAAA,CAAI,UAAU,kCAAA,CAAoC,CAAA,EAC/C,CACL,MAAM,KAAK,CAAE,OAAQ,EAAM,CAAC,CAAC,KAAK,EAAG,IACpC,EAAC,MAAA,CAAY,MAAO,CAAE,QAAS,OAAQ,oBAAqB,6BAA8B,CAAE,UAAU,0DACpG,EAAC,MAAA,CAAI,MAAO,CAAE,WAAY,kBAAmB,CAAE,UAAU,wFACvD,EAAC,MAAA,CAAI,UAAU,6BAAA,CAA+B,EAC1C,CACN,EAAC,MAAA,CAAI,MAAO,CAAE,WAAY,kBAAmB,CAAE,UAAU,4CACvD,EAAC,MAAA,CAAI,UAAU,kCAAA,CAAoC,EAC/C,CAAA,EANE,EAOJ,CACN,CAAA,EACE,CAkBKC,GAWR,CAAE,WAAU,YAAW,SAAS,GAAO,UAAU,GAAO,cAAc,KAAQ,CACjF,IAAM,EAAU,EAAW,EAAwB,CAEnD,OACE,EAAC,MAAA,CACC,YAAU,cACV,UAAW,EACT,iCACA,EACI,2CACA,EACE,yDACA,gGACN,EACD,UAEA,EAAU,EAAC,EAAA,CAA2B,KAAM,EAAA,CAAe,CAAG,GAC3D,EAuBGC,GAKR,CAAE,WAAU,eAEb,EAAC,EAAwB,SAAA,CAAS,MAAO,YACvC,EAAC,MAAA,CACC,YAAU,oBACV,UAAW,EAAG,iHAAkH,EAAU,CAEzI,YACG,EAC2B"}
@@ -1,2 +0,0 @@
1
- const e=require(`./chunk-350yNsax.cjs`),t=require(`./paragraph-DvTZvbzw.cjs`),n=require(`./image-eYMg5TSJ.cjs`),r=require(`./date-BBBx-rIM.cjs`),i=require(`./badge-7bcsD0vA.cjs`),a=require(`./tooltip-KEOJcYl8.cjs`),o=require(`./user-B2Pml0ly.cjs`);let s=require(`lucide-react`),c=require(`react`),l=require(`@customafk/react-toolkit/utils`),u=require(`class-variance-authority`),d=require(`react/jsx-runtime`);const f=()=>(0,d.jsx)(`span`,{"data-slot":`description-empty`,"aria-label":`Empty value`,className:`select-none font-medium text-sm text-text-positive-muted`,children:`—`}),p=({label:e,color:t=`secondary`,variant:n=`soft`,size:r=`sm`})=>e?(0,d.jsx)(i.t,{"data-slot":`description-badge`,color:t,variant:n,size:r,children:e}):(0,d.jsx)(f,{}),m=({value:e,trueLabel:t=`Yes`,falseLabel:n=`No`})=>e==null?(0,d.jsx)(f,{}):(0,d.jsx)(i.t,{"data-slot":`description-boolean`,variant:`soft`,color:e?`success`:`danger`,size:`sm`,children:e?t:n}),h=({value:e,truncate:t=!0})=>{let[n,r]=(0,c.useState)(!1),i=(0,c.useCallback)(async()=>{e&&(await navigator.clipboard.writeText(e),r(!0),setTimeout(()=>r(!1),1500))},[e]);return e?(0,d.jsxs)(`button`,{type:`button`,"data-slot":`description-copy`,onClick:i,className:(0,l.cn)(`group inline-flex max-w-full cursor-pointer items-center gap-1.5 rounded-sm border border-border-weak bg-secondary-muted px-2 py-0.5 font-mono text-xs text-text-positive-weak transition-[border-color,color,box-shadow] hover:border-border hover:text-text-positive hover:shadow-xs`,t&&`min-w-0`),children:[(0,d.jsx)(`span`,{className:(0,l.cn)(`tabular-nums`,t&&`truncate`),children:e}),n?(0,d.jsx)(s.CheckIcon,{size:12,className:`shrink-0 text-success`}):(0,d.jsx)(s.CopyIcon,{size:12,className:`shrink-0 opacity-50 group-hover:opacity-100`})]}):(0,d.jsx)(f,{})},g=({date:e})=>e==null?(0,d.jsx)(f,{}):(0,d.jsx)(a.r,{children:(0,d.jsxs)(a.t,{children:[(0,d.jsx)(a.i,{asChild:!0,children:(0,d.jsx)(r.t,{"data-slot":`description-date`,date:e,format:`medium`,className:`cursor-help`})}),(0,d.jsx)(a.n,{children:(0,d.jsx)(r.t,{date:e,format:`full`,showTime:!0,className:`text-xs font-medium`})})]})}),_=({images:e})=>{if(!e?.length)return(0,d.jsx)(f,{});let t=e.length===1;return(0,d.jsx)(`div`,{"data-slot":`description-images`,className:`flex flex-wrap gap-4`,children:e.map(e=>(0,d.jsx)(`div`,{className:t?`group relative size-42 overflow-hidden rounded-sm border border-border shadow-xs transition-shadow hover:shadow-card`:`group relative size-16 overflow-hidden rounded-lg border border-border shadow-xs transition-shadow hover:shadow-card`,children:(0,d.jsx)(n.t,{src:e.src,alt:e.alt,width:`100%`,height:`100%`,className:`transition-transform duration-200 group-hover:scale-105`})},e.id))})},v=({href:e,label:t,external:n=!0,className:r})=>e?(0,d.jsxs)(`a`,{"data-slot":`description-link`,href:e,target:n?`_blank`:void 0,rel:n?`noopener noreferrer`:void 0,className:(0,l.cn)(`inline-flex max-w-full items-center gap-1 text-sm text-primary underline decoration-dashed underline-offset-2 transition-colors hover:text-primary-strong hover:decoration-solid`,r),children:[!n&&(0,d.jsx)(s.LinkIcon,{size:12,className:`shrink-0 opacity-70`}),(0,d.jsx)(`span`,{className:`truncate`,children:t??e}),n&&(0,d.jsx)(s.ExternalLinkIcon,{size:12,className:`shrink-0 opacity-70`})]}):(0,d.jsx)(f,{}),y=({content:e})=>e==null?(0,d.jsx)(f,{}):(0,d.jsxs)(a.t,{children:[(0,d.jsx)(a.i,{asChild:!0,children:(0,d.jsx)(t.t,{"data-slot":`description-longtext`,variant:`sm`,className:`line-clamp-2 cursor-pointer whitespace-pre-line break-all text-start text-sm hover:text-text-positive transition-colors`,children:e})}),(0,d.jsx)(a.n,{align:`start`,className:`h-fit min-w-48 max-w-80 pt-4`,children:(0,d.jsxs)(`div`,{className:`flex flex-col gap-y-2`,children:[(0,d.jsx)(`p`,{className:`whitespace-pre-line text-wrap break-keep`,children:e}),(0,d.jsxs)(`p`,{className:`w-full text-end text-text-positive-subtle`,children:[e.toString().length,` chars`]})]})})]}),b=({name:e})=>e?(0,d.jsxs)(a.t,{children:[(0,d.jsx)(a.i,{asChild:!0,children:(0,d.jsx)(t.t,{"data-slot":`description-name`,variant:`sm`,className:`line-clamp-2 w-full cursor-pointer truncate hover:text-text-positive transition-colors`,children:e})}),(0,d.jsx)(a.n,{align:`start`,className:`h-fit min-w-48 max-w-80 pt-4`,children:(0,d.jsxs)(`div`,{className:`flex flex-col gap-y-2`,children:[(0,d.jsx)(`p`,{className:`whitespace-pre-line text-wrap break-keep`,children:e}),(0,d.jsxs)(`p`,{className:`w-full text-end text-text-positive-subtle`,children:[e.length,` chars`]})]})})]}):(0,d.jsx)(f,{}),x=({value:e})=>(0,d.jsxs)(a.t,{children:[(0,d.jsx)(a.i,{"data-slot":`description-phone`,children:(0,d.jsx)(t.t,{variant:`sm`,className:`tabular-nums transition-colors`,children:e.replace(/(\d{3})(\d{3})(\d{4})/,`($1) $2-$3`)})}),(0,d.jsx)(a.n,{align:`start`,children:(0,d.jsx)(`p`,{className:`tabular-nums`,children:e.slice(1).replace(/(\d{2})(\d{3})(\d{4})/,`(00) (+84) ($1) $2-$3`)})})]}),S=(e,t,n)=>{let r=10**t;switch(n){case`floor`:return Math.floor(e*r)/r;case`ceil`:return Math.ceil(e*r)/r;default:return Math.round(e*r)/r}},C=(0,u.cva)(`inline-flex items-center gap-1 font-number tabular-nums transition-colors`,{variants:{size:{xs:`text-xs`,sm:`text-sm`,md:`text-base`,lg:`text-lg`,xl:`text-xl`},trend:{neutral:`text-text-positive`,up:`text-success`,down:`text-danger`}},defaultVariants:{size:`sm`,trend:`neutral`}}),w=(0,c.memo)(({decimalSeparator:e=`.`,groupSeparator:t=`,`,prefix:n,suffix:r,precision:i,roundingMode:a=`round`,showTrailingZeros:o=!1,size:s=`sm`,trend:u=`neutral`,value:p=0,className:m})=>{let h=(0,c.useMemo)(()=>{let e={};return typeof i==`number`&&i>=0&&(o&&(e.minimumFractionDigits=i),e.maximumFractionDigits=i),e},[i,o]),g=(0,c.useCallback)(e=>{let t=e;return typeof i==`number`&&i>=0&&(t=S(e,i,a)),t.toLocaleString(`en-US`,h)},[a,h,i]),_=(0,c.useMemo)(()=>{if(typeof p==`number`)return Number.isNaN(p)||!Number.isFinite(p)?`N/A`:g(p);if(typeof p==`string`){let e=p.trim();if(!e)return`N/A`;let t=Number(e);return Number.isNaN(t)||!Number.isFinite(t)?`N/A`:g(t)}return`N/A`},[p,g]),v=(0,c.useMemo)(()=>e===`.`&&t===`,`?_:_.replace(/,/g,t).replace(/\./g,e),[_,e,t]);return v===`0`||v===`N/A`||!v?(0,d.jsx)(f,{}):(0,d.jsxs)(`div`,{"data-slot":`description-statistic`,className:(0,l.cn)(C({size:s,trend:u}),m),children:[n&&(0,d.jsx)(`span`,{"data-slot":`description-statistic-prefix`,children:n}),(0,d.jsx)(`p`,{"data-slot":`description-statistic-value`,children:v}),r&&(0,d.jsx)(`span`,{"data-slot":`description-statistic-suffix`,children:r})]})});w.displayName=`DescriptionStatistic`;const T={primary:`bg-primary`,secondary:`bg-secondary`,muted:`bg-muted`,accent:`bg-accent`,info:`bg-info`,success:`bg-success`,warning:`bg-warning`,danger:`bg-danger`},E=({label:e,color:t=`info`,dot:n=!0})=>e?(0,d.jsxs)(i.t,{"data-slot":`description-status`,variant:`soft`,color:t,size:`sm`,className:`gap-1.5`,children:[n&&(0,d.jsx)(`span`,{className:(0,l.cn)(`inline-block size-1.5 shrink-0 rounded-full`,T[t])}),e]}):(0,d.jsx)(f,{}),D=({tags:e,max:t=5,color:n=`secondary`,variant:r=`soft`})=>{if(!e?.length)return(0,d.jsx)(f,{});let a=e.slice(0,t),o=e.length-a.length;return(0,d.jsxs)(`div`,{"data-slot":`description-tag-list`,className:`flex flex-wrap gap-1`,children:[a.map((e,t)=>(0,d.jsx)(i.t,{variant:r,color:n,size:`sm`,children:e},t)),o>0&&(0,d.jsxs)(i.t,{variant:`outline`,color:`muted`,size:`sm`,children:[`+`,o]})]})},O=({uuid:e,username:t,email:n})=>!e||!t||!n?(0,d.jsx)(f,{}):(0,d.jsx)(o.t,{uuid:e,username:t,email:n}),k=(0,c.createContext)(!1),A=({label:e,labelColSpan:t=3,orientation:n=`horizontal`,action:r,children:i})=>n===`vertical`?(0,d.jsxs)(`div`,{"data-slot":`description-item`,className:`flex flex-col border-b border-b-border last:border-b-0`,children:[(0,d.jsxs)(`div`,{"data-slot":`description-item-label`,className:`flex items-center justify-between border-b border-b-border bg-secondary-muted py-2 pr-2 pl-4 text-sm font-medium text-text-positive-weak`,children:[(0,d.jsx)(`span`,{children:e}),r&&(0,d.jsx)(`div`,{className:`shrink-0`,children:r})]}),(0,d.jsx)(`div`,{"data-slot":`description-item-value`,className:`flex flex-wrap items-center gap-2 py-3 pr-2 pl-4 text-sm text-text-positive`,children:i})]}):(0,d.jsxs)(`div`,{"data-slot":`description-item`,style:{display:`grid`,gridTemplateColumns:`repeat(12, minmax(0, 1fr))`},className:`grid border-b border-b-border last:border-b-0`,children:[(0,d.jsxs)(`div`,{"data-slot":`description-item-label`,style:{gridColumn:`span ${t} / span ${t}`},className:`flex min-w-full items-center justify-between overflow-x-hidden text-wrap break-all border-r border-r-border bg-secondary-muted py-3 pr-2 pl-4 text-sm font-medium text-text-positive-weak tabular-nums`,children:[(0,d.jsx)(`span`,{children:e}),r&&(0,d.jsx)(`div`,{className:`shrink-0 pr-1`,children:r})]}),(0,d.jsx)(`div`,{"data-slot":`description-item-value`,style:{gridColumn:`span ${12-t} / span ${12-t}`},className:`flex flex-wrap items-center gap-2 py-3 pr-2 pl-4 text-sm text-text-positive`,children:i})]}),j=({title:e,description:t,extra:n,className:r})=>(0,d.jsxs)(`div`,{"data-slot":`description-header`,className:(0,l.cn)(`sticky top-0 z-10 flex items-center justify-between gap-4 border-b border-b-border bg-card px-4 py-3`,r),children:[(0,d.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,d.jsx)(`p`,{className:`text-sm font-semibold text-text-positive`,children:e}),t&&(0,d.jsx)(`p`,{className:`text-xs text-text-positive-muted`,children:t})]}),n&&(0,d.jsx)(`div`,{className:`shrink-0`,children:n})]}),M=({title:e,className:t})=>(0,d.jsxs)(`div`,{"data-slot":`description-section`,className:(0,l.cn)(`flex items-center gap-3 border-b border-b-border px-4 py-2.5`,t),children:[e&&(0,d.jsx)(`p`,{className:`shrink-0 text-xs font-semibold uppercase tracking-widest text-text-positive-muted`,children:e}),(0,d.jsx)(`div`,{className:`h-px flex-1 bg-border`})]}),N=({rows:e})=>(0,d.jsxs)(`div`,{"data-slot":`description-loading`,className:`animate-pulse`,children:[(0,d.jsxs)(`div`,{className:`flex items-center justify-between border-b border-b-border px-4 py-3`,children:[(0,d.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,d.jsx)(`div`,{className:`h-3.5 w-36 rounded bg-border`}),(0,d.jsx)(`div`,{className:`h-2.5 w-24 rounded bg-border-weak`})]}),(0,d.jsx)(`div`,{className:`h-5 w-16 rounded bg-border-weak`})]}),Array.from({length:e}).map((e,t)=>(0,d.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`repeat(12, minmax(0, 1fr))`},className:`grid border-b border-b-border last:border-b-0`,children:[(0,d.jsx)(`div`,{style:{gridColumn:`span 3 / span 3`},className:`flex items-center border-r border-r-border bg-secondary-muted py-3 pl-4 pr-2`,children:(0,d.jsx)(`div`,{className:`h-3 w-20 rounded bg-border`})}),(0,d.jsx)(`div`,{style:{gridColumn:`span 9 / span 9`},className:`flex items-center py-3 pl-4 pr-2`,children:(0,d.jsx)(`div`,{className:`h-3 w-28 rounded bg-border-weak`})})]},t))]}),P=({children:e,className:t,nested:n=!1,loading:r=!1,loadingRows:i=4})=>{let a=(0,c.useContext)(k);return(0,d.jsx)(`div`,{"data-slot":`description`,className:(0,l.cn)(`relative flex flex-col bg-card`,a?`border-b border-b-border last:border-b-0`:n?`w-full overflow-hidden rounded-md border border-border`:`size-full overflow-y-auto rounded-lg border border-border shadow-card ring-1 ring-border-weak`,t),children:r?(0,d.jsx)(N,{rows:i}):e})},F=({children:e,className:t})=>(0,d.jsx)(k.Provider,{value:!0,children:(0,d.jsx)(`div`,{"data-slot":`description-group`,className:(0,l.cn)(`relative size-full overflow-y-auto rounded-lg border border-border bg-card shadow-card ring-1 ring-border-weak`,t),children:e})});Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return f}});
2
- //# sourceMappingURL=descriptions-RNxfgfpM.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"descriptions-RNxfgfpM.cjs","names":["DescriptionEmpty: React.FC","DescriptionBadge: React.FC<DescriptionBadgeProps>","Badge","DescriptionBoolean: React.FC<DescriptionBooleanProps>","Badge","DescriptionCopy: React.FC<DescriptionCopyProps>","CheckIcon","CopyIcon","DescriptionDate: React.FC<DescriptionDateProps>","TooltipProvider","Tooltip","TooltipTrigger","DateDisplay","TooltipContent","DescriptionImages: React.FC<{\n images?: Array<ImageItem> | null | undefined;\n}>","Image","DescriptionLink: React.FC<DescriptionLinkProps>","LinkIcon","ExternalLinkIcon","DescriptionLongText: React.FC<{ content: string | null | undefined | number }>","Tooltip","TooltipTrigger","Paragraph","TooltipContent","DescriptionName: React.FC<{\n name?: string | null | undefined;\n}>","Tooltip","TooltipTrigger","Paragraph","TooltipContent","DescriptionNumberPhone: React.FC<{ value: string }>","Tooltip","TooltipTrigger","Paragraph","TooltipContent","options: Intl.NumberFormatOptions","dotColorMap: Record<StatusColor, string>","DescriptionStatus: React.FC<DescriptionStatusProps>","Badge","DescriptionTagList: React.FC<DescriptionTagListProps>","Badge","DescriptionUser: React.FC<DescriptionUserProps>","UserDataDisplay","DescriptionItem: React.FC<\n React.PropsWithChildren<{\n /** Text displayed in the label column. */\n label: string;\n /**\n * Number of grid columns (out of 12) allocated to the label in horizontal orientation.\n * @default 3\n */\n labelColSpan?: number;\n /**\n * Layout direction of the label/value pair.\n * - `'horizontal'` — label and value are side by side.\n * - `'vertical'` — label sits above the value.\n * @default 'horizontal'\n */\n orientation?: 'horizontal' | 'vertical';\n /** Optional node rendered in the top-right corner of the label area (e.g. an edit action). */\n action?: React.ReactNode;\n }>\n>","DescriptionHeader: React.FC<{\n /** Primary heading text. */\n title: string;\n /** Optional secondary text rendered below the title in a smaller, muted style. */\n description?: string;\n /** Optional node rendered on the right side of the header (e.g. action buttons). */\n extra?: React.ReactNode;\n /** Additional CSS class names applied to the header wrapper. */\n className?: string;\n}>","DescriptionSection: React.FC<{\n /** Optional section label rendered as uppercase small-caps text beside the divider line. */\n title?: string;\n /** Additional CSS class names applied to the section wrapper. */\n className?: string;\n}>","DescriptionLoadingSkeleton: React.FC<{ rows: number }>","Description: React.FC<\n React.PropsWithChildren<{\n /** Additional CSS class names applied to the root wrapper element. */\n className?: string;\n /** Strips the outer card shadow/ring and adapts sizing for embedding inside another Description. */\n nested?: boolean;\n /** Replaces children with animated skeleton rows while data is loading. */\n loading?: boolean;\n /** Number of skeleton rows shown when `loading` is true. @default 4 */\n loadingRows?: number;\n }>\n>","DescriptionGroup: React.FC<\n React.PropsWithChildren<{\n /** Additional CSS class names applied to the group wrapper. */\n className?: string;\n }>\n>"],"sources":["../packages/components/features/descriptions/components/empty.tsx","../packages/components/features/descriptions/components/badge.tsx","../packages/components/features/descriptions/components/boolean.tsx","../packages/components/features/descriptions/components/copy.tsx","../packages/components/features/descriptions/components/date.tsx","../packages/components/features/descriptions/components/images.tsx","../packages/components/features/descriptions/components/link.tsx","../packages/components/features/descriptions/components/longtext.tsx","../packages/components/features/descriptions/components/name.tsx","../packages/components/features/descriptions/components/number-phone.tsx","../packages/components/features/descriptions/components/statistic.tsx","../packages/components/features/descriptions/components/status.tsx","../packages/components/features/descriptions/components/tag-list.tsx","../packages/components/features/descriptions/components/user.tsx","../packages/components/features/descriptions/index.tsx"],"sourcesContent":["'use client';\n\nexport const DescriptionEmpty: React.FC = () => {\n return (\n <span data-slot=\"description-empty\" aria-label=\"Empty value\" className=\"select-none font-medium text-sm text-text-positive-muted\">\n —\n </span>\n );\n};\n","'use client';\n\nimport { Badge } from '@/components/ui/badge';\nimport type { BadgeProps } from '@/components/ui/badge';\n\nimport { DescriptionEmpty } from './empty';\n\ntype DescriptionBadgeProps = {\n label: string | number | null | undefined;\n color?: BadgeProps['color'];\n variant?: BadgeProps['variant'];\n size?: BadgeProps['size'];\n};\n\nexport const DescriptionBadge: React.FC<DescriptionBadgeProps> = ({ label, color = 'secondary', variant = 'soft', size = 'sm' }) => {\n if (!label) return <DescriptionEmpty />;\n return (\n <Badge data-slot=\"description-badge\" color={color} variant={variant} size={size}>\n {label}\n </Badge>\n );\n};\n","'use client';\n\nimport { Badge } from '@/components/ui/badge';\n\nimport { DescriptionEmpty } from './empty';\n\ntype DescriptionBooleanProps = {\n value: boolean | null | undefined;\n trueLabel?: string;\n falseLabel?: string;\n};\n\nexport const DescriptionBoolean: React.FC<DescriptionBooleanProps> = ({ value, trueLabel = 'Yes', falseLabel = 'No' }) => {\n if (value == null) return <DescriptionEmpty />;\n return (\n <Badge data-slot=\"description-boolean\" variant=\"soft\" color={value ? 'success' : 'danger'} size=\"sm\">\n {value ? trueLabel : falseLabel}\n </Badge>\n );\n};\n","'use client';\n\nimport { useCallback, useState } from 'react';\nimport { CheckIcon, CopyIcon } from 'lucide-react';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { DescriptionEmpty } from './empty';\n\ntype DescriptionCopyProps = {\n value: string | null | undefined;\n truncate?: boolean;\n};\n\nexport const DescriptionCopy: React.FC<DescriptionCopyProps> = ({ value, truncate = true }) => {\n const [copied, setCopied] = useState(false);\n\n const handleCopy = useCallback(async () => {\n if (!value) return;\n await navigator.clipboard.writeText(value);\n setCopied(true);\n setTimeout(() => setCopied(false), 1500);\n }, [value]);\n\n if (!value) return <DescriptionEmpty />;\n\n return (\n <button\n type=\"button\"\n data-slot=\"description-copy\"\n onClick={handleCopy}\n className={cn(\n 'group inline-flex max-w-full cursor-pointer items-center gap-1.5 rounded-sm border border-border-weak bg-secondary-muted px-2 py-0.5 font-mono text-xs text-text-positive-weak transition-[border-color,color,box-shadow] hover:border-border hover:text-text-positive hover:shadow-xs',\n truncate && 'min-w-0'\n )}\n >\n <span className={cn('tabular-nums', truncate && 'truncate')}>{value}</span>\n {copied ? <CheckIcon size={12} className=\"shrink-0 text-success\" /> : <CopyIcon size={12} className=\"shrink-0 opacity-50 group-hover:opacity-100\" />}\n </button>\n );\n};\n","'use client';\n\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';\nimport { DateDisplay } from '@/components/data-display/date';\n\nimport { DescriptionEmpty } from './empty';\n\ntype DescriptionDateProps = {\n date: Date | string | number | null | undefined;\n};\n\nexport const DescriptionDate: React.FC<DescriptionDateProps> = ({ date }) => {\n if (date == null) return <DescriptionEmpty />;\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <DateDisplay data-slot=\"description-date\" date={date} format=\"medium\" className=\"cursor-help\" />\n </TooltipTrigger>\n <TooltipContent>\n <DateDisplay date={date} format=\"full\" showTime className=\"text-xs font-medium\" />\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n};\n","'use client';\n\nimport { Image } from '@/components/ui/image';\n\nimport { DescriptionEmpty } from './empty';\n\ntype ImageItem = { id: string; src: string; alt: string };\n\nexport const DescriptionImages: React.FC<{\n images?: Array<ImageItem> | null | undefined;\n}> = ({ images }) => {\n if (!images?.length) return <DescriptionEmpty />;\n\n const isSingle = images.length === 1;\n\n return (\n <div data-slot=\"description-images\" className=\"flex flex-wrap gap-4\">\n {images.map(image => (\n <div\n key={image.id}\n className={\n isSingle\n ? 'group relative size-42 overflow-hidden rounded-sm border border-border shadow-xs transition-shadow hover:shadow-card'\n : 'group relative size-16 overflow-hidden rounded-lg border border-border shadow-xs transition-shadow hover:shadow-card'\n }\n >\n <Image src={image.src} alt={image.alt} width=\"100%\" height=\"100%\" className=\"transition-transform duration-200 group-hover:scale-105\" />\n </div>\n ))}\n </div>\n );\n};\n","'use client';\n\nimport { ExternalLinkIcon, LinkIcon } from 'lucide-react';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { DescriptionEmpty } from './empty';\n\ntype DescriptionLinkProps = {\n href: string | null | undefined;\n label?: string;\n external?: boolean;\n className?: string;\n};\n\nexport const DescriptionLink: React.FC<DescriptionLinkProps> = ({ href, label, external = true, className }) => {\n if (!href) return <DescriptionEmpty />;\n\n return (\n <a\n data-slot=\"description-link\"\n href={href}\n target={external ? '_blank' : undefined}\n rel={external ? 'noopener noreferrer' : undefined}\n className={cn(\n 'inline-flex max-w-full items-center gap-1 text-sm text-primary underline decoration-dashed underline-offset-2 transition-colors hover:text-primary-strong hover:decoration-solid',\n className\n )}\n >\n {!external && <LinkIcon size={12} className=\"shrink-0 opacity-70\" />}\n <span className=\"truncate\">{label ?? href}</span>\n {external && <ExternalLinkIcon size={12} className=\"shrink-0 opacity-70\" />}\n </a>\n );\n};\n","'use client';\n\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';\nimport { Paragraph } from '@/components/typography/paragraph';\n\nimport { DescriptionEmpty } from './empty';\n\nexport const DescriptionLongText: React.FC<{ content: string | null | undefined | number }> = ({ content }) => {\n if (content == null) return <DescriptionEmpty />;\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <Paragraph\n data-slot=\"description-longtext\"\n variant=\"sm\"\n className=\"line-clamp-2 cursor-pointer whitespace-pre-line break-all text-start text-sm hover:text-text-positive transition-colors\"\n >\n {content}\n </Paragraph>\n </TooltipTrigger>\n <TooltipContent align=\"start\" className=\"h-fit min-w-48 max-w-80 pt-4\">\n <div className=\"flex flex-col gap-y-2\">\n <p className=\"whitespace-pre-line text-wrap break-keep\">{content}</p>\n <p className=\"w-full text-end text-text-positive-subtle\">{content.toString().length} chars</p>\n </div>\n </TooltipContent>\n </Tooltip>\n );\n};\n","'use client';\n\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';\nimport { Paragraph } from '@/components/typography/paragraph';\n\nimport { DescriptionEmpty } from './empty';\n\nexport const DescriptionName: React.FC<{\n name?: string | null | undefined;\n}> = ({ name }) => {\n if (!name) return <DescriptionEmpty />;\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <Paragraph data-slot=\"description-name\" variant=\"sm\" className=\"line-clamp-2 w-full cursor-pointer truncate hover:text-text-positive transition-colors\">\n {name}\n </Paragraph>\n </TooltipTrigger>\n <TooltipContent align=\"start\" className=\"h-fit min-w-48 max-w-80 pt-4\">\n <div className=\"flex flex-col gap-y-2\">\n <p className=\"whitespace-pre-line text-wrap break-keep\">{name}</p>\n <p className=\"w-full text-end text-text-positive-subtle\">{name.length} chars</p>\n </div>\n </TooltipContent>\n </Tooltip>\n );\n};\n","'use client';\n\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';\nimport { Paragraph } from '@/components/typography/paragraph';\n\nexport const DescriptionNumberPhone: React.FC<{ value: string }> = ({ value }) => {\n return (\n <Tooltip>\n <TooltipTrigger data-slot=\"description-phone\">\n <Paragraph variant=\"sm\" className=\"tabular-nums transition-colors\">\n {value.replace(/(\\d{3})(\\d{3})(\\d{4})/, '($1) $2-$3')}\n </Paragraph>\n </TooltipTrigger>\n <TooltipContent align=\"start\">\n <p className=\"tabular-nums\">{value.slice(1).replace(/(\\d{2})(\\d{3})(\\d{4})/, '(00) (+84) ($1) $2-$3')}</p>\n </TooltipContent>\n </Tooltip>\n );\n};\n","'use client';\n\nimport { memo, useCallback, useMemo } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { DescriptionEmpty } from './empty';\n\nconst applyRounding = (num: number, precisionValue: number, roundingMode?: 'round' | 'floor' | 'ceil') => {\n const multiplier = 10 ** precisionValue;\n switch (roundingMode) {\n case 'floor':\n return Math.floor(num * multiplier) / multiplier;\n case 'ceil':\n return Math.ceil(num * multiplier) / multiplier;\n default:\n return Math.round(num * multiplier) / multiplier;\n }\n};\n\nconst descriptionStatisticVariants = cva('inline-flex items-center gap-1 font-number tabular-nums transition-colors', {\n variants: {\n size: {\n xs: 'text-xs',\n sm: 'text-sm',\n md: 'text-base',\n lg: 'text-lg',\n xl: 'text-xl',\n },\n trend: {\n neutral: 'text-text-positive',\n up: 'text-success',\n down: 'text-danger',\n },\n },\n defaultVariants: {\n size: 'sm',\n trend: 'neutral',\n },\n});\n\nexport type DescriptionStatisticProps = VariantProps<typeof descriptionStatisticVariants> & {\n decimalSeparator?: string;\n groupSeparator?: string;\n prefix?: React.ReactNode;\n suffix?: React.ReactNode;\n precision?: number;\n roundingMode?: 'round' | 'floor' | 'ceil';\n showTrailingZeros?: boolean;\n value: number | string | null | undefined;\n className?: string;\n};\n\nexport const DescriptionStatistic = memo(\n ({\n decimalSeparator = '.',\n groupSeparator = ',',\n prefix: Prefix,\n suffix: Suffix,\n precision,\n roundingMode = 'round',\n showTrailingZeros = false,\n size = 'sm',\n trend = 'neutral',\n value = 0,\n className,\n }: DescriptionStatisticProps) => {\n const formatOptions = useMemo((): Intl.NumberFormatOptions => {\n const options: Intl.NumberFormatOptions = {};\n if (typeof precision === 'number' && precision >= 0) {\n if (showTrailingZeros) {\n options.minimumFractionDigits = precision;\n options.maximumFractionDigits = precision;\n } else {\n options.maximumFractionDigits = precision;\n }\n }\n return options;\n }, [precision, showTrailingZeros]);\n\n const formatNumber = useCallback(\n (num: number): string => {\n let processedNum = num;\n if (typeof precision === 'number' && precision >= 0) {\n processedNum = applyRounding(num, precision, roundingMode);\n }\n return processedNum.toLocaleString('en-US', formatOptions);\n },\n [roundingMode, formatOptions, precision]\n );\n\n const processedValue = useMemo((): string => {\n if (typeof value === 'number') {\n if (Number.isNaN(value) || !Number.isFinite(value)) return 'N/A';\n return formatNumber(value);\n }\n if (typeof value === 'string') {\n const trimmedValue = value.trim();\n if (!trimmedValue) return 'N/A';\n const numValue = Number(trimmedValue);\n if (Number.isNaN(numValue) || !Number.isFinite(numValue)) return 'N/A';\n return formatNumber(numValue);\n }\n return 'N/A';\n }, [value, formatNumber]);\n\n const finalFormattedValue = useMemo((): string => {\n if (decimalSeparator === '.' && groupSeparator === ',') return processedValue;\n return processedValue.replace(/,/g, groupSeparator).replace(/\\./g, decimalSeparator);\n }, [processedValue, decimalSeparator, groupSeparator]);\n\n if (finalFormattedValue === '0' || finalFormattedValue === 'N/A' || !finalFormattedValue) {\n return <DescriptionEmpty />;\n }\n\n return (\n <div data-slot=\"description-statistic\" className={cn(descriptionStatisticVariants({ size, trend }), className)}>\n {Prefix && <span data-slot=\"description-statistic-prefix\">{Prefix}</span>}\n <p data-slot=\"description-statistic-value\">{finalFormattedValue}</p>\n {Suffix && <span data-slot=\"description-statistic-suffix\">{Suffix}</span>}\n </div>\n );\n }\n);\nDescriptionStatistic.displayName = 'DescriptionStatistic';\n","'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Badge } from '@/components/ui/badge';\nimport type { BadgeProps } from '@/components/ui/badge';\n\nimport { DescriptionEmpty } from './empty';\n\ntype StatusColor = NonNullable<BadgeProps['color']>;\n\nconst dotColorMap: Record<StatusColor, string> = {\n primary: 'bg-primary',\n secondary: 'bg-secondary',\n muted: 'bg-muted',\n accent: 'bg-accent',\n info: 'bg-info',\n success: 'bg-success',\n warning: 'bg-warning',\n danger: 'bg-danger',\n};\n\ntype DescriptionStatusProps = {\n label: string | null | undefined;\n color?: StatusColor;\n dot?: boolean;\n};\n\nexport const DescriptionStatus: React.FC<DescriptionStatusProps> = ({ label, color = 'info', dot = true }) => {\n if (!label) return <DescriptionEmpty />;\n return (\n <Badge data-slot=\"description-status\" variant=\"soft\" color={color} size=\"sm\" className=\"gap-1.5\">\n {dot && <span className={cn('inline-block size-1.5 shrink-0 rounded-full', dotColorMap[color])} />}\n {label}\n </Badge>\n );\n};\n","'use client';\n\nimport { Badge } from '@/components/ui/badge';\nimport type { BadgeProps } from '@/components/ui/badge';\n\nimport { DescriptionEmpty } from './empty';\n\ntype DescriptionTagListProps = {\n tags: Array<string | number> | null | undefined;\n max?: number;\n color?: BadgeProps['color'];\n variant?: BadgeProps['variant'];\n};\n\nexport const DescriptionTagList: React.FC<DescriptionTagListProps> = ({ tags, max = 5, color = 'secondary', variant = 'soft' }) => {\n if (!tags?.length) return <DescriptionEmpty />;\n\n const visible = tags.slice(0, max);\n const overflow = tags.length - visible.length;\n\n return (\n <div data-slot=\"description-tag-list\" className=\"flex flex-wrap gap-1\">\n {visible.map((tag, i) => (\n // biome-ignore lint/suspicious/noArrayIndexKey: static display list\n <Badge key={i} variant={variant} color={color} size=\"sm\">\n {tag}\n </Badge>\n ))}\n {overflow > 0 && (\n <Badge variant=\"outline\" color=\"muted\" size=\"sm\">\n +{overflow}\n </Badge>\n )}\n </div>\n );\n};\n","'use client';\n\nimport { UserDataDisplay } from '@/components/data-display/user';\n\nimport { DescriptionEmpty } from './empty';\n\ntype DescriptionUserProps = {\n uuid?: string | null;\n username?: string | null;\n email?: string | null;\n};\n\nexport const DescriptionUser: React.FC<DescriptionUserProps> = ({ uuid, username, email }) => {\n if (!uuid || !username || !email) return <DescriptionEmpty />;\n return <UserDataDisplay uuid={uuid} username={username} email={email} />;\n};\n","'use client';\n\nimport { createContext, useContext } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nexport * from './components';\n\nconst DescriptionGroupContext = createContext(false);\n\n/**\n * A single labeled row within a {@link Description} container, supporting both horizontal (side-by-side label/value) and vertical (stacked) layouts.\n *\n * @example\n * import { Description, DescriptionItem } from '@customafk/lunas-ui/features/descriptions';\n *\n * <Description>\n * <DescriptionItem label=\"Full name\">John Doe</DescriptionItem>\n * <DescriptionItem label=\"Email\" orientation=\"vertical\">john@example.com</DescriptionItem>\n * </Description>\n */\nexport const DescriptionItem: React.FC<\n React.PropsWithChildren<{\n /** Text displayed in the label column. */\n label: string;\n /**\n * Number of grid columns (out of 12) allocated to the label in horizontal orientation.\n * @default 3\n */\n labelColSpan?: number;\n /**\n * Layout direction of the label/value pair.\n * - `'horizontal'` — label and value are side by side.\n * - `'vertical'` — label sits above the value.\n * @default 'horizontal'\n */\n orientation?: 'horizontal' | 'vertical';\n /** Optional node rendered in the top-right corner of the label area (e.g. an edit action). */\n action?: React.ReactNode;\n }>\n> = ({ label, labelColSpan = 3, orientation = 'horizontal', action, children }) => {\n if (orientation === 'vertical') {\n return (\n <div data-slot=\"description-item\" className=\"flex flex-col border-b border-b-border last:border-b-0\">\n <div\n data-slot=\"description-item-label\"\n className=\"flex items-center justify-between border-b border-b-border bg-secondary-muted py-2 pr-2 pl-4 text-sm font-medium text-text-positive-weak\"\n >\n <span>{label}</span>\n {action && <div className=\"shrink-0\">{action}</div>}\n </div>\n <div data-slot=\"description-item-value\" className=\"flex flex-wrap items-center gap-2 py-3 pr-2 pl-4 text-sm text-text-positive\">\n {children}\n </div>\n </div>\n );\n }\n\n return (\n <div\n data-slot=\"description-item\"\n style={{ display: 'grid', gridTemplateColumns: 'repeat(12, minmax(0, 1fr))' }}\n className=\"grid border-b border-b-border last:border-b-0\"\n >\n <div\n data-slot=\"description-item-label\"\n style={{ gridColumn: `span ${labelColSpan} / span ${labelColSpan}` }}\n className=\"flex min-w-full items-center justify-between overflow-x-hidden text-wrap break-all border-r border-r-border bg-secondary-muted py-3 pr-2 pl-4 text-sm font-medium text-text-positive-weak tabular-nums\"\n >\n <span>{label}</span>\n {action && <div className=\"shrink-0 pr-1\">{action}</div>}\n </div>\n <div\n data-slot=\"description-item-value\"\n style={{ gridColumn: `span ${12 - labelColSpan} / span ${12 - labelColSpan}` }}\n className=\"flex flex-wrap items-center gap-2 py-3 pr-2 pl-4 text-sm text-text-positive\"\n >\n {children}\n </div>\n </div>\n );\n};\n\n/**\n * A header bar for a {@link Description} block, showing a title, an optional subtitle, and an optional trailing action area.\n *\n * @example\n * import { Description, DescriptionHeader } from '@customafk/lunas-ui/features/descriptions';\n *\n * <Description>\n * <DescriptionHeader title=\"User details\" description=\"Read-only overview\" extra={<EditBtn />} />\n * </Description>\n */\nexport const DescriptionHeader: React.FC<{\n /** Primary heading text. */\n title: string;\n /** Optional secondary text rendered below the title in a smaller, muted style. */\n description?: string;\n /** Optional node rendered on the right side of the header (e.g. action buttons). */\n extra?: React.ReactNode;\n /** Additional CSS class names applied to the header wrapper. */\n className?: string;\n}> = ({ title, description, extra, className }) => {\n return (\n <div\n data-slot=\"description-header\"\n className={cn('sticky top-0 z-10 flex items-center justify-between gap-4 border-b border-b-border bg-card px-4 py-3', className)}\n >\n <div className=\"flex flex-col gap-0.5\">\n <p className=\"text-sm font-semibold text-text-positive\">{title}</p>\n {description && <p className=\"text-xs text-text-positive-muted\">{description}</p>}\n </div>\n {extra && <div className=\"shrink-0\">{extra}</div>}\n </div>\n );\n};\n\n/**\n * A visual section divider inside a {@link Description} container that optionally displays a section title with a decorative horizontal rule.\n *\n * @example\n * import { Description, DescriptionSection, DescriptionItem } from '@customafk/lunas-ui/features/descriptions';\n *\n * <Description>\n * <DescriptionSection title=\"Contact\" />\n * <DescriptionItem label=\"Email\">john@example.com</DescriptionItem>\n * </Description>\n */\nexport const DescriptionSection: React.FC<{\n /** Optional section label rendered as uppercase small-caps text beside the divider line. */\n title?: string;\n /** Additional CSS class names applied to the section wrapper. */\n className?: string;\n}> = ({ title, className }) => {\n return (\n <div data-slot=\"description-section\" className={cn('flex items-center gap-3 border-b border-b-border px-4 py-2.5', className)}>\n {title && <p className=\"shrink-0 text-xs font-semibold uppercase tracking-widest text-text-positive-muted\">{title}</p>}\n <div className=\"h-px flex-1 bg-border\" />\n </div>\n );\n};\n\nconst DescriptionLoadingSkeleton: React.FC<{ rows: number }> = ({ rows }) => (\n <div data-slot=\"description-loading\" className=\"animate-pulse\">\n <div className=\"flex items-center justify-between border-b border-b-border px-4 py-3\">\n <div className=\"flex flex-col gap-1.5\">\n <div className=\"h-3.5 w-36 rounded bg-border\" />\n <div className=\"h-2.5 w-24 rounded bg-border-weak\" />\n </div>\n <div className=\"h-5 w-16 rounded bg-border-weak\" />\n </div>\n {Array.from({ length: rows }).map((_, i) => (\n <div key={i} style={{ display: 'grid', gridTemplateColumns: 'repeat(12, minmax(0, 1fr))' }} className=\"grid border-b border-b-border last:border-b-0\">\n <div style={{ gridColumn: 'span 3 / span 3' }} className=\"flex items-center border-r border-r-border bg-secondary-muted py-3 pl-4 pr-2\">\n <div className=\"h-3 w-20 rounded bg-border\" />\n </div>\n <div style={{ gridColumn: 'span 9 / span 9' }} className=\"flex items-center py-3 pl-4 pr-2\">\n <div className=\"h-3 w-28 rounded bg-border-weak\" />\n </div>\n </div>\n ))}\n </div>\n);\n\n/**\n * Root container for a description block — a bordered, rounded card that groups {@link DescriptionHeader}, {@link DescriptionSection}, and {@link DescriptionItem} elements.\n *\n * Set `nested` when embedding one `Description` inside another (removes the outer card shadow/ring and constrains sizing).\n * Set `loading` to replace content with animated skeleton rows while data is being fetched.\n *\n * @example\n * import { Description, DescriptionHeader, DescriptionItem } from '@customafk/lunas-ui/features/descriptions';\n *\n * <Description>\n * <DescriptionHeader title=\"Order #1234\" />\n * <DescriptionItem label=\"Status\">Shipped</DescriptionItem>\n * <DescriptionItem label=\"Total\">$99.00</DescriptionItem>\n * </Description>\n */\nexport const Description: React.FC<\n React.PropsWithChildren<{\n /** Additional CSS class names applied to the root wrapper element. */\n className?: string;\n /** Strips the outer card shadow/ring and adapts sizing for embedding inside another Description. */\n nested?: boolean;\n /** Replaces children with animated skeleton rows while data is loading. */\n loading?: boolean;\n /** Number of skeleton rows shown when `loading` is true. @default 4 */\n loadingRows?: number;\n }>\n> = ({ children, className, nested = false, loading = false, loadingRows = 4 }) => {\n const inGroup = useContext(DescriptionGroupContext);\n\n return (\n <div\n data-slot=\"description\"\n className={cn(\n 'relative flex flex-col bg-card',\n inGroup\n ? 'border-b border-b-border last:border-b-0'\n : nested\n ? 'w-full overflow-hidden rounded-md border border-border'\n : 'size-full overflow-y-auto rounded-lg border border-border shadow-card ring-1 ring-border-weak',\n className\n )}\n >\n {loading ? <DescriptionLoadingSkeleton rows={loadingRows} /> : children}\n </div>\n );\n};\n\n/**\n * A scrollable container that groups multiple {@link Description} blocks and makes each\n * {@link DescriptionHeader} sticky. As you scroll, the next section header stacks above\n * (pushes out) the previous one — standard CSS sticky behaviour within a single scroll context.\n *\n * @example\n * import { DescriptionGroup, Description, DescriptionHeader, DescriptionItem } from '@customafk/lunas-ui/features/descriptions';\n *\n * <DescriptionGroup>\n * <Description>\n * <DescriptionHeader title=\"Personal info\" />\n * <DescriptionItem label=\"Name\">John Doe</DescriptionItem>\n * </Description>\n * <Description>\n * <DescriptionHeader title=\"Contact\" />\n * <DescriptionItem label=\"Email\">john@example.com</DescriptionItem>\n * </Description>\n * </DescriptionGroup>\n */\nexport const DescriptionGroup: React.FC<\n React.PropsWithChildren<{\n /** Additional CSS class names applied to the group wrapper. */\n className?: string;\n }>\n> = ({ children, className }) => {\n return (\n <DescriptionGroupContext.Provider value={true}>\n <div\n data-slot=\"description-group\"\n className={cn('relative size-full overflow-y-auto rounded-lg border border-border bg-card shadow-card ring-1 ring-border-weak', className)}\n >\n {children}\n </div>\n </DescriptionGroupContext.Provider>\n );\n};\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- const e=require(`./chunk-350yNsax.cjs`),t=require(`./flex-ld7BqXoM.cjs`),n=require(`./date-BBBx-rIM.cjs`),r=require(`./title-DR8e6bHV.cjs`),i=require(`./sidebar-DzqiY6IR.cjs`);let a=require(`lucide-react`),o=require(`react`),s=require(`@customafk/react-toolkit/utils`),c=require(`react/jsx-runtime`),l=require(`radix-ui`);const u=({open:e,isLoading:u,title:d,createdAt:f,onOpenChange:p,sidebar:m,children:h})=>{let{content:g,footer:_}=m||{},v=(0,o.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]);return(0,c.jsx)(l.Dialog.Root,{"data-slot":`detail-dialog`,open:e,onOpenChange:p,children:(0,c.jsxs)(l.Dialog.Portal,{"data-slot":`detail-dialog-portal`,children:[(0,c.jsx)(l.Dialog.Overlay,{"data-slot":`detail-dialog-overlay`,className:`fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`}),(0,c.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:(0,c.jsxs)(l.Dialog.Content,{"data-slot":`dialog-content`,className:(0,s.cn)(`data-[state=open]:animate-in data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`,`data-[state=closed]:zoom-out-80 data-[state=open]:zoom-in-80`,`relative z-50 grid`,`gap-4 overflow-hidden rounded-none border-none bg-background p-0 shadow-dialog outline-none duration-200`,`h-full max-h-dvh w-full max-w-svw`,`sm:rounded-lg`,`sm:max-w-lg`,`md:max-h-[calc(100dvh-2rem)]`,`md:max-w-[calc(100svw-2rem)]`),onInteractOutside:v,children:[(0,c.jsxs)(i.S,{children:[(0,c.jsxs)(i.b,{collapsible:`icon`,children:[(0,c.jsx)(i.s,{children:(0,c.jsx)(i.c,{children:(0,c.jsx)(i.f,{children:(0,c.jsxs)(i.d,{size:`lg`,tabIndex:-1,children:[(0,c.jsx)(`div`,{className:`flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground`,children:(0,c.jsx)(a.CatIcon,{size:16})}),(0,c.jsxs)(`div`,{className:`grid flex-1 text-left text-sm leading-tight`,children:[(0,c.jsx)(`span`,{className:`truncate font-medium`,children:m?.title||`Detail Dialog`}),(0,c.jsx)(`span`,{className:`truncate text-xs`,children:`Lunas Enterprise`})]})]})})})}),(0,c.jsx)(i.t,{children:g}),(0,c.jsx)(i.n,{children:_})]}),(0,c.jsx)(`main`,{"data-slot":`detail-dialog-main`,className:`relative h-full flex-1`,children:(0,c.jsxs)(t.t,{padding:`none`,gap:`none`,vertical:!0,align:`stretch`,className:`absolute inset-0 size-full`,children:[(0,c.jsxs)(`header`,{className:`flex w-full flex-0 items-start gap-x-2.5 border-b border-border-weak bg-card py-2.5 pr-12 pl-2`,children:[(0,c.jsx)(i.y,{}),(0,c.jsxs)(t.t,{vertical:!0,align:`start`,padding:`none`,width:`null`,wrap:!1,className:`flex-1 gap-0`,children:[(0,c.jsx)(r.t,{level:5,className:`line-clamp-1 truncate text-wrap`,children:d||`Detail Dialog`}),!!f&&(0,c.jsxs)(t.t,{padding:`none`,className:`relative items-center text-text-positive-weak`,children:[(0,c.jsx)(a.CalendarIcon,{size:12}),(0,c.jsx)(n.t,{showTime:!0,showHoliday:!0,date:f,format:`full`})]})]})]}),u?(0,c.jsx)(t.t,{justify:`center`,className:`inset-shadow-sm w-full flex-1 bg-muted-muted`,children:(0,c.jsx)(`div`,{className:`loader`})}):(0,c.jsx)(`section`,{"data-slot":`detail-dialog-body`,className:`relative inset-shadow-sm flex flex-1 snap-y flex-col gap-0 overflow-y-auto bg-white`,children:h})]})})]}),(0,c.jsx)(l.Dialog.Close,{"data-slot":`dialog-close`,tabIndex:-1,asChild:!0,className:`absolute top-3 right-3`,children:(0,c.jsx)(`button`,{className:`flex cursor-pointer items-center justify-center rounded-full p-2 text-text-positive-weak transition-colors hover:bg-muted-muted hover:text-text-positive active:bg-muted-weak active:text-text-positive-strong disabled:pointer-events-none disabled:opacity-60`,children:(0,c.jsx)(a.XIcon,{size:24})})})]})})]})})};Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return u}});
2
- //# sourceMappingURL=detail-dialog-BLApH3eD.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"detail-dialog-BLApH3eD.cjs","names":["DetailDialog: React.FC<React.PropsWithChildren<DetailDialogProps>>","DialogPrimitive","SidebarProvider","Sidebar","DetailDialogSidebarHeader","DetailDialogSidebarMenu","DetailDialogSidebarMenuItem","DetailDialogSidebarMenuButton","CatIcon","DetailDialogSidebarContent","DetailDialogSidebarFooter","Flex","DetailDialogSidebarTrigger","Title","CalendarIcon","DateDisplay","XIcon"],"sources":["../packages/components/dialogs/detail-dialog/index.tsx"],"sourcesContent":["'use client';\n\nimport { useCallback } from 'react';\n\nimport { CalendarIcon, CatIcon, XIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\nimport { Dialog as DialogPrimitive } from 'radix-ui';\n\nimport { DateDisplay } from '@/components/data-display/date';\nimport { Flex } from '@/components/layouts/flex';\nimport { Title } from '@/components/typography/title';\n\nimport {\n DetailDialogSidebarContent,\n DetailDialogSidebarFooter,\n DetailDialogSidebarHeader,\n DetailDialogSidebarMenu,\n DetailDialogSidebarMenuButton,\n DetailDialogSidebarMenuItem,\n DetailDialogSidebarTrigger,\n Sidebar,\n SidebarProvider,\n} from './components/sidebar';\n\ntype DetailDialogSidebar = {\n /** Title shown in the collapsible sidebar header. Defaults to `'Detail Dialog'`. */\n title?: string;\n /** Arbitrary content rendered inside the sidebar scrollable area. */\n content?: React.ReactNode;\n /** Arbitrary content rendered at the bottom of the sidebar footer. */\n footer?: React.ReactNode;\n};\n\nexport type DetailDialogProps = {\n /** Controls whether the dialog is open. */\n open?: boolean;\n /** When `true`, replaces the main content area with a centered loading spinner. */\n isLoading?: boolean;\n /** Primary title displayed in the dialog header. */\n title: string;\n /** ISO string, `Date` object, or Unix timestamp shown as a formatted creation date below the title. */\n createdAt?: string | Date | number | null;\n /** Optional sidebar configuration — title, body content, and footer content. */\n sidebar?: DetailDialogSidebar;\n /** Callback invoked when the dialog open state changes. */\n onOpenChange?: (open: boolean) => void;\n};\n\n/**\n * Full-screen detail dialog with a collapsible sidebar, a header with creation date, and a scrollable content area.\n *\n * @example\n * ```tsx\n * import { DetailDialog } from '@customafk/lunas-ui/dialogs/detail-dialog';\n *\n * <DetailDialog\n * open={open}\n * title=\"Order #1234\"\n * createdAt=\"2024-01-15T09:00:00Z\"\n * sidebar={{ title: 'Navigation', content: <nav>...</nav> }}\n * onOpenChange={setOpen}\n * >\n * <p>Detail content goes here.</p>\n * </DetailDialog>\n * ```\n */\nexport const DetailDialog: React.FC<React.PropsWithChildren<DetailDialogProps>> = ({ open, isLoading, title, createdAt, onOpenChange, sidebar, children }) => {\n const { content: SidebarContent, footer: SidebarFooter } = sidebar || {};\n\n const handleInteractOutside = useCallback<NonNullable<React.ComponentProps<typeof DialogPrimitive.Content>['onInteractOutside']>>(event => {\n event.preventDefault();\n event.stopPropagation();\n }, []);\n\n return (\n <DialogPrimitive.Root data-slot=\"detail-dialog\" open={open} onOpenChange={onOpenChange}>\n <DialogPrimitive.Portal data-slot=\"detail-dialog-portal\">\n <DialogPrimitive.Overlay\n data-slot=\"detail-dialog-overlay\"\n className=\"fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\"\n />\n <div className=\"fixed inset-0 z-50 flex items-center justify-center\">\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n 'data-[state=closed]:zoom-out-80 data-[state=open]:zoom-in-80',\n 'relative z-50 grid',\n 'gap-4 overflow-hidden rounded-none border-none bg-background p-0 shadow-dialog outline-none duration-200',\n 'h-full max-h-dvh w-full max-w-svw',\n 'sm:rounded-lg',\n 'sm:max-w-lg',\n 'md:max-h-[calc(100dvh-2rem)]',\n 'md:max-w-[calc(100svw-2rem)]'\n )}\n onInteractOutside={handleInteractOutside}\n >\n <SidebarProvider>\n <Sidebar collapsible=\"icon\">\n <DetailDialogSidebarHeader>\n <DetailDialogSidebarMenu>\n <DetailDialogSidebarMenuItem>\n <DetailDialogSidebarMenuButton size=\"lg\" tabIndex={-1}>\n <div className=\"flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground\">\n <CatIcon size={16} />\n </div>\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-medium\">{sidebar?.title || 'Detail Dialog'}</span>\n <span className=\"truncate text-xs\">Lunas Enterprise</span>\n </div>\n </DetailDialogSidebarMenuButton>\n </DetailDialogSidebarMenuItem>\n </DetailDialogSidebarMenu>\n </DetailDialogSidebarHeader>\n <DetailDialogSidebarContent>{SidebarContent}</DetailDialogSidebarContent>\n <DetailDialogSidebarFooter>{SidebarFooter}</DetailDialogSidebarFooter>\n </Sidebar>\n\n <main data-slot=\"detail-dialog-main\" className=\"relative h-full flex-1\">\n <Flex padding=\"none\" gap=\"none\" vertical align=\"stretch\" className=\"absolute inset-0 size-full\">\n <header className=\"flex w-full flex-0 items-start gap-x-2.5 border-b border-border-weak bg-card py-2.5 pr-12 pl-2\">\n <DetailDialogSidebarTrigger />\n <Flex vertical align=\"start\" padding=\"none\" width=\"null\" wrap={false} className=\"flex-1 gap-0\">\n <Title level={5} className=\"line-clamp-1 truncate text-wrap\">\n {title || 'Detail Dialog'}\n </Title>\n {!!createdAt && (\n <Flex padding=\"none\" className=\"relative items-center text-text-positive-weak\">\n <CalendarIcon size={12} />\n <DateDisplay showTime showHoliday date={createdAt} format=\"full\" />\n </Flex>\n )}\n </Flex>\n </header>\n {isLoading ? (\n <Flex justify=\"center\" className=\"inset-shadow-sm w-full flex-1 bg-muted-muted\">\n <div className=\"loader\" />\n </Flex>\n ) : (\n <section data-slot=\"detail-dialog-body\" className=\"relative inset-shadow-sm flex flex-1 snap-y flex-col gap-0 overflow-y-auto bg-white\">\n {children}\n </section>\n )}\n </Flex>\n </main>\n </SidebarProvider>\n\n <DialogPrimitive.Close data-slot=\"dialog-close\" tabIndex={-1} asChild className=\"absolute top-3 right-3\">\n <button className=\"flex cursor-pointer items-center justify-center rounded-full p-2 text-text-positive-weak transition-colors hover:bg-muted-muted hover:text-text-positive active:bg-muted-weak active:text-text-positive-strong disabled:pointer-events-none disabled:opacity-60\">\n <XIcon size={24} />\n </button>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </div>\n </DialogPrimitive.Portal>\n </DialogPrimitive.Root>\n );\n};\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{t as e}from"./flex-Bx9Nmr53.mjs";import{t}from"./date-88lk-VJF.mjs";import{t as n}from"./title-CMLgxj8_.mjs";import{S as r,b as i,c as a,d as o,f as s,n as c,s as l,t as u,y as d}from"./sidebar-DeiQjPc8.mjs";import{CalendarIcon as f,CatIcon as p,XIcon as m}from"lucide-react";import{useCallback as h}from"react";import{cn as g}from"@customafk/react-toolkit/utils";import{jsx as _,jsxs as v}from"react/jsx-runtime";import{Dialog as y}from"radix-ui";const b=({open:b,isLoading:x,title:S,createdAt:C,onOpenChange:w,sidebar:T,children:E})=>{let{content:D,footer:O}=T||{},k=h(e=>{e.preventDefault(),e.stopPropagation()},[]);return _(y.Root,{"data-slot":`detail-dialog`,open:b,onOpenChange:w,children:v(y.Portal,{"data-slot":`detail-dialog-portal`,children:[_(y.Overlay,{"data-slot":`detail-dialog-overlay`,className:`fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`}),_(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:v(y.Content,{"data-slot":`dialog-content`,className:g(`data-[state=open]:animate-in data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`,`data-[state=closed]:zoom-out-80 data-[state=open]:zoom-in-80`,`relative z-50 grid`,`gap-4 overflow-hidden rounded-none border-none bg-background p-0 shadow-dialog outline-none duration-200`,`h-full max-h-dvh w-full max-w-svw`,`sm:rounded-lg`,`sm:max-w-lg`,`md:max-h-[calc(100dvh-2rem)]`,`md:max-w-[calc(100svw-2rem)]`),onInteractOutside:k,children:[v(r,{children:[v(i,{collapsible:`icon`,children:[_(l,{children:_(a,{children:_(s,{children:v(o,{size:`lg`,tabIndex:-1,children:[_(`div`,{className:`flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground`,children:_(p,{size:16})}),v(`div`,{className:`grid flex-1 text-left text-sm leading-tight`,children:[_(`span`,{className:`truncate font-medium`,children:T?.title||`Detail Dialog`}),_(`span`,{className:`truncate text-xs`,children:`Lunas Enterprise`})]})]})})})}),_(u,{children:D}),_(c,{children:O})]}),_(`main`,{"data-slot":`detail-dialog-main`,className:`relative h-full flex-1`,children:v(e,{padding:`none`,gap:`none`,vertical:!0,align:`stretch`,className:`absolute inset-0 size-full`,children:[v(`header`,{className:`flex w-full flex-0 items-start gap-x-2.5 border-b border-border-weak bg-card py-2.5 pr-12 pl-2`,children:[_(d,{}),v(e,{vertical:!0,align:`start`,padding:`none`,width:`null`,wrap:!1,className:`flex-1 gap-0`,children:[_(n,{level:5,className:`line-clamp-1 truncate text-wrap`,children:S||`Detail Dialog`}),!!C&&v(e,{padding:`none`,className:`relative items-center text-text-positive-weak`,children:[_(f,{size:12}),_(t,{showTime:!0,showHoliday:!0,date:C,format:`full`})]})]})]}),x?_(e,{justify:`center`,className:`inset-shadow-sm w-full flex-1 bg-muted-muted`,children:_(`div`,{className:`loader`})}):_(`section`,{"data-slot":`detail-dialog-body`,className:`relative inset-shadow-sm flex flex-1 snap-y flex-col gap-0 overflow-y-auto bg-white`,children:E})]})})]}),_(y.Close,{"data-slot":`dialog-close`,tabIndex:-1,asChild:!0,className:`absolute top-3 right-3`,children:_(`button`,{className:`flex cursor-pointer items-center justify-center rounded-full p-2 text-text-positive-weak transition-colors hover:bg-muted-muted hover:text-text-positive active:bg-muted-weak active:text-text-positive-strong disabled:pointer-events-none disabled:opacity-60`,children:_(m,{size:24})})})]})})]})})};export{b as t};
2
- //# sourceMappingURL=detail-dialog-CXKrznrp.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"detail-dialog-CXKrznrp.mjs","names":["DetailDialog: React.FC<React.PropsWithChildren<DetailDialogProps>>","DialogPrimitive"],"sources":["../packages/components/dialogs/detail-dialog/index.tsx"],"sourcesContent":["'use client';\n\nimport { useCallback } from 'react';\n\nimport { CalendarIcon, CatIcon, XIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\nimport { Dialog as DialogPrimitive } from 'radix-ui';\n\nimport { DateDisplay } from '@/components/data-display/date';\nimport { Flex } from '@/components/layouts/flex';\nimport { Title } from '@/components/typography/title';\n\nimport {\n DetailDialogSidebarContent,\n DetailDialogSidebarFooter,\n DetailDialogSidebarHeader,\n DetailDialogSidebarMenu,\n DetailDialogSidebarMenuButton,\n DetailDialogSidebarMenuItem,\n DetailDialogSidebarTrigger,\n Sidebar,\n SidebarProvider,\n} from './components/sidebar';\n\ntype DetailDialogSidebar = {\n /** Title shown in the collapsible sidebar header. Defaults to `'Detail Dialog'`. */\n title?: string;\n /** Arbitrary content rendered inside the sidebar scrollable area. */\n content?: React.ReactNode;\n /** Arbitrary content rendered at the bottom of the sidebar footer. */\n footer?: React.ReactNode;\n};\n\nexport type DetailDialogProps = {\n /** Controls whether the dialog is open. */\n open?: boolean;\n /** When `true`, replaces the main content area with a centered loading spinner. */\n isLoading?: boolean;\n /** Primary title displayed in the dialog header. */\n title: string;\n /** ISO string, `Date` object, or Unix timestamp shown as a formatted creation date below the title. */\n createdAt?: string | Date | number | null;\n /** Optional sidebar configuration — title, body content, and footer content. */\n sidebar?: DetailDialogSidebar;\n /** Callback invoked when the dialog open state changes. */\n onOpenChange?: (open: boolean) => void;\n};\n\n/**\n * Full-screen detail dialog with a collapsible sidebar, a header with creation date, and a scrollable content area.\n *\n * @example\n * ```tsx\n * import { DetailDialog } from '@customafk/lunas-ui/dialogs/detail-dialog';\n *\n * <DetailDialog\n * open={open}\n * title=\"Order #1234\"\n * createdAt=\"2024-01-15T09:00:00Z\"\n * sidebar={{ title: 'Navigation', content: <nav>...</nav> }}\n * onOpenChange={setOpen}\n * >\n * <p>Detail content goes here.</p>\n * </DetailDialog>\n * ```\n */\nexport const DetailDialog: React.FC<React.PropsWithChildren<DetailDialogProps>> = ({ open, isLoading, title, createdAt, onOpenChange, sidebar, children }) => {\n const { content: SidebarContent, footer: SidebarFooter } = sidebar || {};\n\n const handleInteractOutside = useCallback<NonNullable<React.ComponentProps<typeof DialogPrimitive.Content>['onInteractOutside']>>(event => {\n event.preventDefault();\n event.stopPropagation();\n }, []);\n\n return (\n <DialogPrimitive.Root data-slot=\"detail-dialog\" open={open} onOpenChange={onOpenChange}>\n <DialogPrimitive.Portal data-slot=\"detail-dialog-portal\">\n <DialogPrimitive.Overlay\n data-slot=\"detail-dialog-overlay\"\n className=\"fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\"\n />\n <div className=\"fixed inset-0 z-50 flex items-center justify-center\">\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n 'data-[state=closed]:zoom-out-80 data-[state=open]:zoom-in-80',\n 'relative z-50 grid',\n 'gap-4 overflow-hidden rounded-none border-none bg-background p-0 shadow-dialog outline-none duration-200',\n 'h-full max-h-dvh w-full max-w-svw',\n 'sm:rounded-lg',\n 'sm:max-w-lg',\n 'md:max-h-[calc(100dvh-2rem)]',\n 'md:max-w-[calc(100svw-2rem)]'\n )}\n onInteractOutside={handleInteractOutside}\n >\n <SidebarProvider>\n <Sidebar collapsible=\"icon\">\n <DetailDialogSidebarHeader>\n <DetailDialogSidebarMenu>\n <DetailDialogSidebarMenuItem>\n <DetailDialogSidebarMenuButton size=\"lg\" tabIndex={-1}>\n <div className=\"flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground\">\n <CatIcon size={16} />\n </div>\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-medium\">{sidebar?.title || 'Detail Dialog'}</span>\n <span className=\"truncate text-xs\">Lunas Enterprise</span>\n </div>\n </DetailDialogSidebarMenuButton>\n </DetailDialogSidebarMenuItem>\n </DetailDialogSidebarMenu>\n </DetailDialogSidebarHeader>\n <DetailDialogSidebarContent>{SidebarContent}</DetailDialogSidebarContent>\n <DetailDialogSidebarFooter>{SidebarFooter}</DetailDialogSidebarFooter>\n </Sidebar>\n\n <main data-slot=\"detail-dialog-main\" className=\"relative h-full flex-1\">\n <Flex padding=\"none\" gap=\"none\" vertical align=\"stretch\" className=\"absolute inset-0 size-full\">\n <header className=\"flex w-full flex-0 items-start gap-x-2.5 border-b border-border-weak bg-card py-2.5 pr-12 pl-2\">\n <DetailDialogSidebarTrigger />\n <Flex vertical align=\"start\" padding=\"none\" width=\"null\" wrap={false} className=\"flex-1 gap-0\">\n <Title level={5} className=\"line-clamp-1 truncate text-wrap\">\n {title || 'Detail Dialog'}\n </Title>\n {!!createdAt && (\n <Flex padding=\"none\" className=\"relative items-center text-text-positive-weak\">\n <CalendarIcon size={12} />\n <DateDisplay showTime showHoliday date={createdAt} format=\"full\" />\n </Flex>\n )}\n </Flex>\n </header>\n {isLoading ? (\n <Flex justify=\"center\" className=\"inset-shadow-sm w-full flex-1 bg-muted-muted\">\n <div className=\"loader\" />\n </Flex>\n ) : (\n <section data-slot=\"detail-dialog-body\" className=\"relative inset-shadow-sm flex flex-1 snap-y flex-col gap-0 overflow-y-auto bg-white\">\n {children}\n </section>\n )}\n </Flex>\n </main>\n </SidebarProvider>\n\n <DialogPrimitive.Close data-slot=\"dialog-close\" tabIndex={-1} asChild className=\"absolute top-3 right-3\">\n <button className=\"flex cursor-pointer items-center justify-center rounded-full p-2 text-text-positive-weak transition-colors hover:bg-muted-muted hover:text-text-positive active:bg-muted-weak active:text-text-positive-strong disabled:pointer-events-none disabled:opacity-60\">\n <XIcon size={24} />\n </button>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </div>\n </DialogPrimitive.Portal>\n </DialogPrimitive.Root>\n );\n};\n"],"mappings":"ucAmEA,MAAaA,GAAsE,CAAE,OAAM,YAAW,QAAO,YAAW,eAAc,UAAS,cAAe,CAC5J,GAAM,CAAE,QAAS,EAAgB,OAAQ,GAAkB,GAAW,EAAE,CAElE,EAAwB,EAAoG,GAAS,CACzI,EAAM,gBAAgB,CACtB,EAAM,iBAAiB,EACtB,EAAE,CAAC,CAEN,OACE,EAACC,EAAgB,KAAA,CAAK,YAAU,gBAAsB,OAAoB,wBACxE,EAACA,EAAgB,OAAA,CAAO,YAAU,iCAChC,EAACA,EAAgB,QAAA,CACf,YAAU,wBACV,UAAU,0JACV,CACF,EAAC,MAAA,CAAI,UAAU,+DACb,EAACA,EAAgB,QAAA,CACf,YAAU,iBACV,UAAW,EACT,+DACA,6DACA,+DACA,qBACA,2GACA,oCACA,gBACA,cACA,+BACA,+BACD,CACD,kBAAmB,YAEnB,EAAC,EAAA,CAAA,SAAA,CACC,EAAC,EAAA,CAAQ,YAAY,iBACnB,EAAC,EAAA,CAAA,SACC,EAAC,EAAA,CAAA,SACC,EAAC,EAAA,CAAA,SACC,EAAC,EAAA,CAA8B,KAAK,KAAK,SAAU,aACjD,EAAC,MAAA,CAAI,UAAU,+HACb,EAAC,EAAA,CAAQ,KAAM,GAAA,CAAM,EACjB,CACN,EAAC,MAAA,CAAI,UAAU,wDACb,EAAC,OAAA,CAAK,UAAU,gCAAwB,GAAS,OAAS,iBAAuB,CACjF,EAAC,OAAA,CAAK,UAAU,4BAAmB,oBAAuB,CAAA,EACtD,CAAA,EACwB,CAAA,CACJ,CAAA,CACN,CAAA,CACA,CAC5B,EAAC,EAAA,CAAA,SAA4B,EAAA,CAA4C,CACzE,EAAC,EAAA,CAAA,SAA2B,EAAA,CAA0C,GAC9D,CAEV,EAAC,OAAA,CAAK,YAAU,qBAAqB,UAAU,kCAC7C,EAAC,EAAA,CAAK,QAAQ,OAAO,IAAI,OAAO,SAAA,GAAS,MAAM,UAAU,UAAU,uCACjE,EAAC,SAAA,CAAO,UAAU,2GAChB,EAAC,EAAA,EAAA,CAA6B,CAC9B,EAAC,EAAA,CAAK,SAAA,GAAS,MAAM,QAAQ,QAAQ,OAAO,MAAM,OAAO,KAAM,GAAO,UAAU,yBAC9E,EAAC,EAAA,CAAM,MAAO,EAAG,UAAU,2CACxB,GAAS,iBACJ,CACP,CAAC,CAAC,GACD,EAAC,EAAA,CAAK,QAAQ,OAAO,UAAU,0DAC7B,EAAC,EAAA,CAAa,KAAM,GAAA,CAAM,CAC1B,EAAC,EAAA,CAAY,SAAA,GAAS,YAAA,GAAY,KAAM,EAAW,OAAO,QAAS,CAAA,EAC9D,CAAA,EAEJ,CAAA,EACA,CACR,EACC,EAAC,EAAA,CAAK,QAAQ,SAAS,UAAU,wDAC/B,EAAC,MAAA,CAAI,UAAU,SAAA,CAAW,EACrB,CAEP,EAAC,UAAA,CAAQ,YAAU,qBAAqB,UAAU,sFAC/C,YACO,CAAA,EAEP,EACF,CAAA,CAAA,CACS,CAElB,EAACA,EAAgB,MAAA,CAAM,YAAU,eAAe,SAAU,GAAI,QAAA,GAAQ,UAAU,kCAC9E,EAAC,SAAA,CAAO,UAAU,2QAChB,EAAC,EAAA,CAAM,KAAM,GAAA,CAAM,EACZ,EACa,CAAA,EACA,EACtB,CAAA,EACiB,EACJ"}
@@ -1,2 +0,0 @@
1
- import{t as e}from"./heading-De4Pn3mZ.mjs";import{n as t}from"./paragraph-DYLaQtTV.mjs";import{t as n}from"./close-Co-WLsSG.mjs";import{cn as r}from"@customafk/react-toolkit/utils";import{jsx as i,jsxs as a}from"react/jsx-runtime";import{Dialog as o}from"radix-ui";function s({...e}){return i(o.Root,{"data-slot":`dialog`,...e})}function c({...e}){return i(o.Trigger,{"data-slot":`dialog-trigger`,...e})}function l({...e}){return i(o.Portal,{"data-slot":`dialog-portal`,...e})}function u({...e}){return i(o.Close,{"data-slot":`dialog-close`,...e})}function d({className:e,...t}){return i(o.Overlay,{"data-slot":`dialog-overlay`,className:r(`fixed inset-0 z-50 bg-black/50`,`data-[state=open]:fade-in-0 data-[state=open]:animate-in`,`data-[state=closed]:fade-out-0 data-[state=closed]:animate-out`,e),...t})}function f({className:e,children:t,showCloseButton:s=!0,...c}){return a(l,{children:[i(d,{}),a(o.Content,{"data-slot":`dialog-content`,className:r(`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-400`,`sm:max-w-lg`,`data-[state=open]:fade-in-0 data-[state=open]:zoom-in-80 data-[state=open]:animate-in`,`data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-80 data-[state=closed]:animate-out`,e),onOpenAutoFocus:e=>{e.preventDefault()},...c,children:[t,s&&i(o.Close,{"data-slot":`dialog-close`,tabIndex:-1,asChild:!0,className:`absolute top-3 right-3`,children:i(n,{})})]})]})}function p({className:e,...t}){return i(`div`,{"data-slot":`dialog-header`,className:r(`flex flex-col gap-2 text-center sm:text-left`,e),...t})}function m({className:e,...t}){return i(`div`,{"data-slot":`dialog-footer`,className:r(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,e),...t})}function h({className:t,...n}){return i(o.Title,{"data-slot":`dialog-title`,className:r(e({level:`h3`}),t),...n})}function g({className:e,...n}){return i(o.Description,{"data-slot":`dialog-description`,className:r(t({variant:`muted`}),e),...n})}export{m as a,l as c,g as i,h as l,u as n,p as o,f as r,d as s,s as t,c as u};
2
- //# sourceMappingURL=dialog--BvCecaD.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dialog--BvCecaD.mjs","names":["Dialog","DialogPrimitive"],"sources":["../packages/components/ui/dialog.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Dialog as DialogPrimitive } from 'radix-ui';\nimport { headingVariants } from '../typography/heading';\nimport { paragraphVariants } from '../typography/paragraph';\nimport { CloseButton } from './buttons/close';\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]:fade-in-0 data-[state=open]:animate-in',\n 'data-[state=closed]:fade-out-0 data-[state=closed]:animate-out',\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-400',\n 'sm:max-w-lg',\n 'data-[state=open]:fade-in-0 data-[state=open]:zoom-in-80 data-[state=open]:animate-in',\n 'data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-80 data-[state=closed]:animate-out',\n className\n )}\n onOpenAutoFocus={event => {\n // Prevents focus from shifting to the content when the dialog opens, which can cause layout shift if the content includes autofocusable elements.\n event.preventDefault();\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":"yQAqCA,SAASA,EAAO,CAAE,GAAG,GAA4D,CAC/E,OAAO,EAACC,EAAgB,KAAA,CAAK,YAAU,SAAS,GAAI,GAAS,CAI/D,SAAS,EAAc,CAAE,GAAG,GAA+D,CACzF,OAAO,EAACA,EAAgB,QAAA,CAAQ,YAAU,iBAAiB,GAAI,GAAS,CAI1E,SAAS,EAAa,CAAE,GAAG,GAA8D,CACvF,OAAO,EAACA,EAAgB,OAAA,CAAO,YAAU,gBAAgB,GAAI,GAAS,CAIxE,SAAS,EAAY,CAAE,GAAG,GAA6D,CACrF,OAAO,EAACA,EAAgB,MAAA,CAAM,YAAU,eAAe,GAAI,GAAS,CAItE,SAAS,EAAc,CAAE,YAAW,GAAG,GAA+D,CACpG,OACE,EAACA,EAAgB,QAAA,CACf,YAAU,iBACV,UAAW,EACT,iCACA,2DACA,iEACA,EACD,CACD,GAAI,GACJ,CASN,SAAS,EAAc,CACrB,YACA,WACA,kBAAkB,GAClB,GAAG,GAIF,CACD,OACE,EAAC,EAAA,CAAA,SAAA,CACC,EAAC,EAAA,EAAA,CAAgB,CACjB,EAACA,EAAgB,QAAA,CACf,YAAU,iBACV,UAAW,EACT,gEACA,oDACA,8EACA,cACA,wFACA,iGACA,EACD,CACD,gBAAiB,GAAS,CAExB,EAAM,gBAAgB,EAExB,GAAI,YAEH,EACA,GACC,EAACA,EAAgB,MAAA,CAAM,YAAU,eAAe,SAAU,GAAI,QAAA,GAAQ,UAAU,kCAC9E,EAAC,EAAA,EAAA,CAAc,EACO,CAAA,EAEF,CAAA,CAAA,CACb,CAKnB,SAAS,EAAa,CAAE,YAAW,GAAG,GAAsC,CAC1E,OAAO,EAAC,MAAA,CAAI,YAAU,gBAAgB,UAAW,EAAG,+CAAgD,EAAU,CAAE,GAAI,GAAS,CAI/H,SAAS,EAAa,CAAE,YAAW,GAAG,GAAsC,CAC1E,OAAO,EAAC,MAAA,CAAI,YAAU,gBAAgB,UAAW,EAAG,yDAA0D,EAAU,CAAE,GAAI,GAAS,CAIzI,SAAS,EAAY,CAAE,YAAW,GAAG,GAA6D,CAChG,OAAO,EAACA,EAAgB,MAAA,CAAM,YAAU,eAAe,UAAW,EAAG,EAAgB,CAAE,MAAO,KAAM,CAAC,CAAE,EAAU,CAAE,GAAI,GAAS,CAIlI,SAAS,EAAkB,CAAE,YAAW,GAAG,GAAmE,CAC5G,OAAO,EAACA,EAAgB,YAAA,CAAY,YAAU,qBAAqB,UAAW,EAAG,EAAkB,CAAE,QAAS,QAAS,CAAC,CAAE,EAAU,CAAE,GAAI,GAAS"}
@@ -1,2 +0,0 @@
1
- const e=require(`./chunk-350yNsax.cjs`),t=require(`./heading-tGTqk3pA.cjs`),n=require(`./paragraph-DvTZvbzw.cjs`),r=require(`./close-DYBVx-8O.cjs`);let i=require(`@customafk/react-toolkit/utils`),a=require(`react/jsx-runtime`),o=require(`radix-ui`);function s({...e}){return(0,a.jsx)(o.Dialog.Root,{"data-slot":`dialog`,...e})}function c({...e}){return(0,a.jsx)(o.Dialog.Trigger,{"data-slot":`dialog-trigger`,...e})}function l({...e}){return(0,a.jsx)(o.Dialog.Portal,{"data-slot":`dialog-portal`,...e})}function u({...e}){return(0,a.jsx)(o.Dialog.Close,{"data-slot":`dialog-close`,...e})}function d({className:e,...t}){return(0,a.jsx)(o.Dialog.Overlay,{"data-slot":`dialog-overlay`,className:(0,i.cn)(`fixed inset-0 z-50 bg-black/50`,`data-[state=open]:fade-in-0 data-[state=open]:animate-in`,`data-[state=closed]:fade-out-0 data-[state=closed]:animate-out`,e),...t})}function f({className:e,children:t,showCloseButton:n=!0,...s}){return(0,a.jsxs)(l,{children:[(0,a.jsx)(d,{}),(0,a.jsxs)(o.Dialog.Content,{"data-slot":`dialog-content`,className:(0,i.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-400`,`sm:max-w-lg`,`data-[state=open]:fade-in-0 data-[state=open]:zoom-in-80 data-[state=open]:animate-in`,`data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-80 data-[state=closed]:animate-out`,e),onOpenAutoFocus:e=>{e.preventDefault()},...s,children:[t,n&&(0,a.jsx)(o.Dialog.Close,{"data-slot":`dialog-close`,tabIndex:-1,asChild:!0,className:`absolute top-3 right-3`,children:(0,a.jsx)(r.t,{})})]})]})}function p({className:e,...t}){return(0,a.jsx)(`div`,{"data-slot":`dialog-header`,className:(0,i.cn)(`flex flex-col gap-2 text-center sm:text-left`,e),...t})}function m({className:e,...t}){return(0,a.jsx)(`div`,{"data-slot":`dialog-footer`,className:(0,i.cn)(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,e),...t})}function h({className:e,...n}){return(0,a.jsx)(o.Dialog.Title,{"data-slot":`dialog-title`,className:(0,i.cn)(t.t({level:`h3`}),e),...n})}function g({className:e,...t}){return(0,a.jsx)(o.Dialog.Description,{"data-slot":`dialog-description`,className:(0,i.cn)(n.n({variant:`muted`}),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-DNEUhYSv.cjs.map