@customafk/lunas-ui 0.2.37 → 0.2.38

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 (516) hide show
  1. package/dist/{alert-DubR6Szk.cjs → alert-B2PaDJp6.cjs} +2 -2
  2. package/dist/{alert-DubR6Szk.cjs.map → alert-B2PaDJp6.cjs.map} +1 -1
  3. package/dist/{alert-CT7oAzCC.d.mts → alert-C-bk-pne.d.mts} +5 -5
  4. package/dist/{alert-lqPNRRvJ.d.cts → alert-DDxGzOzi.d.cts} +5 -5
  5. package/dist/{avatar-CqRl9dge.cjs → avatar-TyOphzGo.cjs} +2 -2
  6. package/dist/{avatar-CqRl9dge.cjs.map → avatar-TyOphzGo.cjs.map} +1 -1
  7. package/dist/{avatar-m1LjDIil.mjs → avatar-fltdRVsJ.mjs} +1 -1
  8. package/dist/{avatar-m1LjDIil.mjs.map → avatar-fltdRVsJ.mjs.map} +1 -1
  9. package/dist/{badge-Bhbhmsic.mjs → badge-CDGBGq8X.mjs} +1 -1
  10. package/dist/{badge-Bhbhmsic.mjs.map → badge-CDGBGq8X.mjs.map} +1 -1
  11. package/dist/{badge-C4nTfJGX.d.mts → badge-IUtmECjN.d.cts} +7 -7
  12. package/dist/{badge-DMnKV_uW.cjs → badge-KW7xu5Ca.cjs} +2 -2
  13. package/dist/{badge-DMnKV_uW.cjs.map → badge-KW7xu5Ca.cjs.map} +1 -1
  14. package/dist/{badge-Dq-Yyus_.d.cts → badge-lvr8nB_0.d.mts} +7 -7
  15. package/dist/{button-CYLxBCfa.d.cts → button-Brw-tmr9.d.cts} +5 -5
  16. package/dist/{button-Bu4ejNOW.cjs → button-C--DAN1D.cjs} +2 -2
  17. package/dist/button-C--DAN1D.cjs.map +1 -0
  18. package/dist/button-CCVJTHBI.mjs +2 -0
  19. package/dist/button-CCVJTHBI.mjs.map +1 -0
  20. package/dist/{button-DlFsSFmT.d.mts → button-DhDRMeFA.d.mts} +5 -5
  21. package/dist/{button.variants-tnhb123u.cjs → button.variants-4kw6plrv.cjs} +2 -2
  22. package/dist/{button.variants-tnhb123u.cjs.map → button.variants-4kw6plrv.cjs.map} +1 -1
  23. package/dist/{button.variants-B8aRZ52K.mjs → button.variants-DkMqWB8G.mjs} +1 -1
  24. package/dist/{button.variants-B8aRZ52K.mjs.map → button.variants-DkMqWB8G.mjs.map} +1 -1
  25. package/dist/{calendar-CMd11yg9.cjs → calendar-4weBDnXz.cjs} +2 -2
  26. package/dist/{calendar-CMd11yg9.cjs.map → calendar-4weBDnXz.cjs.map} +1 -1
  27. package/dist/{calendar-BDhIfwPP.mjs → calendar-R866yyd1.mjs} +2 -2
  28. package/dist/{calendar-BDhIfwPP.mjs.map → calendar-R866yyd1.mjs.map} +1 -1
  29. package/dist/cards/grid-product-card.cjs +1 -1
  30. package/dist/cards/grid-product-card.mjs +1 -1
  31. package/dist/cards/product-card.cjs +1 -1
  32. package/dist/cards/product-card.mjs +1 -1
  33. package/dist/cards/simple-card.cjs +1 -1
  34. package/dist/cards/simple-card.d.mts +2 -2
  35. package/dist/cards/simple-card.mjs +1 -1
  36. package/dist/{checkbox-CgHaRkuU.mjs → checkbox-Cat3i08X.mjs} +1 -1
  37. package/dist/{checkbox-CgHaRkuU.mjs.map → checkbox-Cat3i08X.mjs.map} +1 -1
  38. package/dist/{checkbox-BwDvS4De.cjs → checkbox-Dsq-MSbH.cjs} +2 -2
  39. package/dist/{checkbox-BwDvS4De.cjs.map → checkbox-Dsq-MSbH.cjs.map} +1 -1
  40. package/dist/chunk-350yNsax.cjs +1 -0
  41. package/dist/{close-DrCUWZt0.cjs → close-Dlo1bI8x.cjs} +2 -2
  42. package/dist/{close-DrCUWZt0.cjs.map → close-Dlo1bI8x.cjs.map} +1 -1
  43. package/dist/{close-B7OOMSZl.mjs → close-_UHFeiLS.mjs} +1 -1
  44. package/dist/{close-B7OOMSZl.mjs.map → close-_UHFeiLS.mjs.map} +1 -1
  45. package/dist/cms-layout-BCH4NroR.cjs +2 -0
  46. package/dist/cms-layout-BCH4NroR.cjs.map +1 -0
  47. package/dist/cms-layout-DkCR1AfG.mjs +2 -0
  48. package/dist/cms-layout-DkCR1AfG.mjs.map +1 -0
  49. package/dist/{command-DiXzSGc8.cjs → command-CsP8a1Un.cjs} +2 -2
  50. package/dist/{command-DiXzSGc8.cjs.map → command-CsP8a1Un.cjs.map} +1 -1
  51. package/dist/{command-FnbrPZ7_.mjs → command-D6_CSbwJ.mjs} +2 -2
  52. package/dist/{command-FnbrPZ7_.mjs.map → command-D6_CSbwJ.mjs.map} +1 -1
  53. package/dist/data-display/country.cjs +1 -1
  54. package/dist/data-display/country.mjs +1 -1
  55. package/dist/data-display/data-list.cjs +1 -1
  56. package/dist/data-display/date-tooltip.cjs +1 -1
  57. package/dist/data-display/date-tooltip.mjs +1 -1
  58. package/dist/data-display/date.cjs +1 -1
  59. package/dist/data-display/date.mjs +1 -1
  60. package/dist/data-display/empty.cjs +1 -1
  61. package/dist/data-display/name.cjs +1 -1
  62. package/dist/data-display/name.mjs +1 -1
  63. package/dist/data-display/phone-number.cjs +1 -1
  64. package/dist/data-display/phone-number.mjs +1 -1
  65. package/dist/data-display/role-badge.cjs +1 -1
  66. package/dist/data-display/role-badge.mjs +1 -1
  67. package/dist/data-display/statistic.cjs +1 -1
  68. package/dist/data-display/statistic.d.cts +3 -3
  69. package/dist/data-display/statistic.d.mts +3 -3
  70. package/dist/data-display/statistic.mjs +1 -1
  71. package/dist/data-display/user.cjs +1 -1
  72. package/dist/data-display/user.mjs +1 -1
  73. package/dist/{date-DtajzNoy.cjs → date-D4NVl6C9.cjs} +2 -2
  74. package/dist/{date-DtajzNoy.cjs.map → date-D4NVl6C9.cjs.map} +1 -1
  75. package/dist/{date-CFgc7pK3.mjs → date-fY3sUcLp.mjs} +1 -1
  76. package/dist/{date-CFgc7pK3.mjs.map → date-fY3sUcLp.mjs.map} +1 -1
  77. package/dist/{dialog-D1sWnn6n.cjs → dialog-BigPrWIj.cjs} +2 -2
  78. package/dist/{dialog-D1sWnn6n.cjs.map → dialog-BigPrWIj.cjs.map} +1 -1
  79. package/dist/{dialog-EGFZeITu.mjs → dialog-CLDnvNH_.mjs} +2 -2
  80. package/dist/{dialog-EGFZeITu.mjs.map → dialog-CLDnvNH_.mjs.map} +1 -1
  81. package/dist/{dialog-_zfOGo8B.d.mts → dialog-CsltUGHB.d.mts} +12 -12
  82. package/dist/{dialog-1ArhWB8r.d.cts → dialog-D0zfwr8i.d.cts} +12 -12
  83. package/dist/dialogs/confirm-dialog.cjs +1 -1
  84. package/dist/dialogs/confirm-dialog.mjs +1 -1
  85. package/dist/dialogs/detail-dialog/components/sidebar.cjs +1 -1
  86. package/dist/dialogs/detail-dialog/components/sidebar.d.cts +24 -24
  87. package/dist/dialogs/detail-dialog/components/sidebar.d.mts +24 -24
  88. package/dist/dialogs/detail-dialog/components/sidebar.mjs +1 -1
  89. package/dist/dialogs/detail-dialog/index.cjs +1 -1
  90. package/dist/dialogs/detail-dialog/index.mjs +1 -1
  91. package/dist/dialogs/error-dialog.cjs +1 -1
  92. package/dist/dialogs/error-dialog.mjs +1 -1
  93. package/dist/dialogs/loading-dialog.cjs +1 -1
  94. package/dist/dialogs/loading-dialog.mjs +1 -1
  95. package/dist/dist-Cx5ufCdr.cjs +2 -0
  96. package/dist/{dist-CAeolvAH.cjs.map → dist-Cx5ufCdr.cjs.map} +1 -1
  97. package/dist/dist-DVrfqn8H.mjs +2 -0
  98. package/dist/{dist-BQGL-YKY.mjs.map → dist-DVrfqn8H.mjs.map} +1 -1
  99. package/dist/{drawer-B6C8-Ndu.cjs → drawer-BB8BZzDG.cjs} +2 -2
  100. package/dist/{drawer-B6C8-Ndu.cjs.map → drawer-BB8BZzDG.cjs.map} +1 -1
  101. package/dist/{dropdown-menu-C6tRSumY.mjs → dropdown-menu-BWhiVsEf.mjs} +1 -1
  102. package/dist/{dropdown-menu-C6tRSumY.mjs.map → dropdown-menu-BWhiVsEf.mjs.map} +1 -1
  103. package/dist/{dropdown-menu-Bz7oMQ36.cjs → dropdown-menu-CVh520yG.cjs} +2 -2
  104. package/dist/{dropdown-menu-Bz7oMQ36.cjs.map → dropdown-menu-CVh520yG.cjs.map} +1 -1
  105. package/dist/features/descriptions/index.cjs +1 -1
  106. package/dist/features/descriptions/index.cjs.map +1 -1
  107. package/dist/features/descriptions/index.d.cts +1 -1
  108. package/dist/features/descriptions/index.d.mts +6 -6
  109. package/dist/features/descriptions/index.mjs +1 -1
  110. package/dist/features/descriptions/index.mjs.map +1 -1
  111. package/dist/features/search-modal/index.cjs +1 -1
  112. package/dist/features/search-modal/index.d.mts +2 -2
  113. package/dist/features/search-modal/index.mjs +1 -1
  114. package/dist/features/tables/index.cjs +1 -1
  115. package/dist/features/tables/index.d.cts +2 -2
  116. package/dist/features/tables/index.d.mts +3 -3
  117. package/dist/features/tables/index.mjs +1 -1
  118. package/dist/features/tanstack-form/index.cjs +1 -1
  119. package/dist/features/tanstack-form/index.d.cts +2 -2
  120. package/dist/features/tanstack-form/index.d.mts +2 -2
  121. package/dist/features/tanstack-form/index.mjs +1 -1
  122. package/dist/features/text-editor/index.cjs +1 -1
  123. package/dist/features/text-editor/index.d.cts +1 -1
  124. package/dist/features/text-editor/index.d.mts +1 -1
  125. package/dist/features/text-editor/index.mjs +1 -1
  126. package/dist/{field-pfL7RWcN.cjs → field-BrlETeXX.cjs} +2 -2
  127. package/dist/{field-pfL7RWcN.cjs.map → field-BrlETeXX.cjs.map} +1 -1
  128. package/dist/{field-DhgAIueI.mjs → field-dYemS0hQ.mjs} +2 -2
  129. package/dist/{field-DhgAIueI.mjs.map → field-dYemS0hQ.mjs.map} +1 -1
  130. package/dist/{flex-BAcvp4lB.mjs → flex-B6YSJzGe.mjs} +1 -1
  131. package/dist/{flex-BAcvp4lB.mjs.map → flex-B6YSJzGe.mjs.map} +1 -1
  132. package/dist/{flex-DYh2t8ft.cjs → flex-DmWmOBn5.cjs} +2 -2
  133. package/dist/{flex-DYh2t8ft.cjs.map → flex-DmWmOBn5.cjs.map} +1 -1
  134. package/dist/{heading-woRh-IC7.mjs → heading-De4Pn3mZ.mjs} +1 -1
  135. package/dist/{heading-woRh-IC7.mjs.map → heading-De4Pn3mZ.mjs.map} +1 -1
  136. package/dist/{heading-wUXEbicM.cjs → heading-tGTqk3pA.cjs} +2 -2
  137. package/dist/{heading-wUXEbicM.cjs.map → heading-tGTqk3pA.cjs.map} +1 -1
  138. package/dist/image-D7OZ13Ib.mjs +2 -0
  139. package/dist/{image-D2U1SBw5.mjs.map → image-D7OZ13Ib.mjs.map} +1 -1
  140. package/dist/image-W_Yb0xTB.cjs +2 -0
  141. package/dist/{image-Y7gCz7uE.cjs.map → image-W_Yb0xTB.cjs.map} +1 -1
  142. package/dist/{index-C6nrbQ-E.d.cts → index-9eog5ilY.d.cts} +36 -4
  143. package/dist/{index-CJoz7sMc.d.mts → index-BuNzvvj3.d.mts} +64 -32
  144. package/dist/{index-DiW-62hY.d.mts → index-CG8iS6qj.d.cts} +3 -3
  145. package/dist/index-Cm62M0Ft.d.mts +90 -0
  146. package/dist/{index-Du_HLRsN.d.cts → index-DI8qmezw.d.mts} +7 -7
  147. package/dist/index-DsD83ZN8.d.cts +2348 -0
  148. package/dist/index-KO98y6L0.d.cts +90 -0
  149. package/dist/index-SMYnpHIM.d.mts +2348 -0
  150. package/dist/index.cjs +1 -1
  151. package/dist/index.d.cts +10 -10
  152. package/dist/index.d.mts +10 -10
  153. package/dist/index.mjs +1 -1
  154. package/dist/{input-BAr0l-oA.d.cts → input-BFtFMzRG.d.mts} +6 -6
  155. package/dist/{input-DXO2mTgG.d.mts → input-DvkEND5a.d.cts} +6 -6
  156. package/dist/{input-5gk-Jv1y.mjs → input-NJP2wQOm.mjs} +1 -1
  157. package/dist/{input-5gk-Jv1y.mjs.map → input-NJP2wQOm.mjs.map} +1 -1
  158. package/dist/{input-BvzsfAUc.cjs → input-WJ0DLHTR.cjs} +2 -2
  159. package/dist/{input-BvzsfAUc.cjs.map → input-WJ0DLHTR.cjs.map} +1 -1
  160. package/dist/{label-eIyGIRyw.cjs → label-CC6fXVbC.cjs} +2 -2
  161. package/dist/{label-eIyGIRyw.cjs.map → label-CC6fXVbC.cjs.map} +1 -1
  162. package/dist/{label-D9uNQ9b_.mjs → label-CUCpwS5D.mjs} +1 -1
  163. package/dist/{label-D9uNQ9b_.mjs.map → label-CUCpwS5D.mjs.map} +1 -1
  164. package/dist/layouts/cms-layout/index.cjs +1 -1
  165. package/dist/layouts/cms-layout/index.d.cts +2 -76
  166. package/dist/layouts/cms-layout/index.d.mts +2 -76
  167. package/dist/layouts/cms-layout/index.mjs +1 -1
  168. package/dist/layouts/flex.cjs +1 -1
  169. package/dist/layouts/flex.d.cts +6 -6
  170. package/dist/layouts/flex.d.mts +6 -6
  171. package/dist/layouts/flex.mjs +1 -1
  172. package/dist/layouts/grid.cjs +1 -1
  173. package/dist/layouts/payment-layout/index.cjs +1 -1
  174. package/dist/layouts/payment-layout/index.mjs +1 -1
  175. package/dist/pages/FeatureDeveloping.cjs +1 -1
  176. package/dist/pages/FeatureDeveloping.d.cts +2 -2
  177. package/dist/pages/FeatureDeveloping.d.mts +2 -2
  178. package/dist/pages/FeatureDeveloping.mjs +1 -1
  179. package/dist/pages/FeatureFixing.cjs +1 -1
  180. package/dist/pages/FeatureFixing.d.cts +2 -2
  181. package/dist/pages/FeatureFixing.d.mts +2 -2
  182. package/dist/pages/FeatureFixing.mjs +1 -1
  183. package/dist/pages/LoginPage.cjs +1 -1
  184. package/dist/pages/LoginPage.cjs.map +1 -1
  185. package/dist/pages/LoginPage.d.cts +2 -2
  186. package/dist/pages/LoginPage.d.mts +2 -2
  187. package/dist/pages/LoginPage.mjs +1 -1
  188. package/dist/pages/LoginPage.mjs.map +1 -1
  189. package/dist/pages/NotAuthorized.cjs +1 -1
  190. package/dist/pages/NotAuthorized.d.cts +2 -2
  191. package/dist/pages/NotAuthorized.d.mts +2 -2
  192. package/dist/pages/NotAuthorized.mjs +1 -1
  193. package/dist/pages/NotFound.cjs +1 -1
  194. package/dist/pages/NotFound.d.cts +2 -2
  195. package/dist/pages/NotFound.d.mts +2 -2
  196. package/dist/pages/NotFound.mjs +1 -1
  197. package/dist/pages/RegisterPage.cjs +1 -1
  198. package/dist/pages/RegisterPage.cjs.map +1 -1
  199. package/dist/pages/RegisterPage.d.cts +2 -2
  200. package/dist/pages/RegisterPage.mjs +1 -1
  201. package/dist/pages/RegisterPage.mjs.map +1 -1
  202. package/dist/pages/VerifyEmailPage.cjs +1 -1
  203. package/dist/pages/VerifyEmailPage.d.cts +2 -2
  204. package/dist/pages/VerifyEmailPage.d.mts +2 -2
  205. package/dist/pages/VerifyEmailPage.mjs +1 -1
  206. package/dist/{paragraph-CjstaJFj.mjs → paragraph-DYLaQtTV.mjs} +1 -1
  207. package/dist/{paragraph-CjstaJFj.mjs.map → paragraph-DYLaQtTV.mjs.map} +1 -1
  208. package/dist/{paragraph-D-JHj7EP.cjs → paragraph-DvTZvbzw.cjs} +2 -2
  209. package/dist/{paragraph-D-JHj7EP.cjs.map → paragraph-DvTZvbzw.cjs.map} +1 -1
  210. package/dist/{payment-layout-_ZM4uBy_.mjs → payment-layout-DrQ0kZPX.mjs} +2 -2
  211. package/dist/{payment-layout-_ZM4uBy_.mjs.map → payment-layout-DrQ0kZPX.mjs.map} +1 -1
  212. package/dist/{payment-layout-fsYTkw3r.cjs → payment-layout-DyILfyVG.cjs} +2 -2
  213. package/dist/{payment-layout-fsYTkw3r.cjs.map → payment-layout-DyILfyVG.cjs.map} +1 -1
  214. package/dist/{popover-DwgdOX8a.mjs → popover-C8rcemA3.mjs} +2 -2
  215. package/dist/{popover-DwgdOX8a.mjs.map → popover-C8rcemA3.mjs.map} +1 -1
  216. package/dist/{popover-fsTCOb6a.cjs → popover-DBsC8Ltp.cjs} +2 -2
  217. package/dist/{popover-fsTCOb6a.cjs.map → popover-DBsC8Ltp.cjs.map} +1 -1
  218. package/dist/{progress-DCBKnTx0.mjs → progress-CLeM0e7Z.mjs} +1 -1
  219. package/dist/{progress-DCBKnTx0.mjs.map → progress-CLeM0e7Z.mjs.map} +1 -1
  220. package/dist/{progress-CDYA2V-W.cjs → progress-gvBqNiHp.cjs} +2 -2
  221. package/dist/{progress-CDYA2V-W.cjs.map → progress-gvBqNiHp.cjs.map} +1 -1
  222. package/dist/{radio-group-B-M599Ys.cjs → radio-group-_TdMkv8w.cjs} +2 -2
  223. package/dist/{radio-group-B-M599Ys.cjs.map → radio-group-_TdMkv8w.cjs.map} +1 -1
  224. package/dist/{resizable-DP1BQAF_.mjs → resizable-CpCaSCFB.mjs} +1 -1
  225. package/dist/{resizable-DP1BQAF_.mjs.map → resizable-CpCaSCFB.mjs.map} +1 -1
  226. package/dist/{resizable-DATSh0Du.cjs → resizable-sgpaHAb8.cjs} +2 -2
  227. package/dist/{resizable-DATSh0Du.cjs.map → resizable-sgpaHAb8.cjs.map} +1 -1
  228. package/dist/{search-modal-CYRJEDE-.cjs → search-modal-B-pzGcfP.cjs} +2 -2
  229. package/dist/{search-modal-CYRJEDE-.cjs.map → search-modal-B-pzGcfP.cjs.map} +1 -1
  230. package/dist/{search-modal-DWu08xkE.mjs → search-modal-Bn-GOOCy.mjs} +2 -2
  231. package/dist/{search-modal-DWu08xkE.mjs.map → search-modal-Bn-GOOCy.mjs.map} +1 -1
  232. package/dist/select-CWLQHh8x.cjs +2 -0
  233. package/dist/select-CWLQHh8x.cjs.map +1 -0
  234. package/dist/{select-BAlA65tZ.mjs → select-LlPCZFSF.mjs} +2 -2
  235. package/dist/select-LlPCZFSF.mjs.map +1 -0
  236. package/dist/{separator-C6s-YvlT.mjs → separator-D3Gmkxzq.mjs} +1 -1
  237. package/dist/{separator-C6s-YvlT.mjs.map → separator-D3Gmkxzq.mjs.map} +1 -1
  238. package/dist/{separator-CBup_ah1.cjs → separator-KuymG9g0.cjs} +2 -2
  239. package/dist/{separator-CBup_ah1.cjs.map → separator-KuymG9g0.cjs.map} +1 -1
  240. package/dist/{sheet-Cj8hoftE.mjs → sheet-BFlIfNaA.mjs} +1 -1
  241. package/dist/{sheet-Cj8hoftE.mjs.map → sheet-BFlIfNaA.mjs.map} +1 -1
  242. package/dist/{sheet-DAjZ-Q6Q.cjs → sheet-CvKSi0UC.cjs} +2 -2
  243. package/dist/{sheet-DAjZ-Q6Q.cjs.map → sheet-CvKSi0UC.cjs.map} +1 -1
  244. package/dist/{sidebar-RcmDh50_.mjs → sidebar-ChtCyu-n.mjs} +2 -2
  245. package/dist/{sidebar-RcmDh50_.mjs.map → sidebar-ChtCyu-n.mjs.map} +1 -1
  246. package/dist/{sidebar-Drasn0Bx.cjs → sidebar-D5J2gcTw.cjs} +2 -2
  247. package/dist/{sidebar-Drasn0Bx.cjs.map → sidebar-D5J2gcTw.cjs.map} +1 -1
  248. package/dist/{skeleton-DupQ91XW.mjs → skeleton-C51IdOfK.mjs} +1 -1
  249. package/dist/{skeleton-DupQ91XW.mjs.map → skeleton-C51IdOfK.mjs.map} +1 -1
  250. package/dist/{skeleton-CHympz8k.cjs → skeleton-CX1USu1w.cjs} +2 -2
  251. package/dist/{skeleton-CHympz8k.cjs.map → skeleton-CX1USu1w.cjs.map} +1 -1
  252. package/dist/{spinner-Bdta7BMp.cjs → spinner-CFxorYEt.cjs} +2 -2
  253. package/dist/{spinner-Bdta7BMp.cjs.map → spinner-CFxorYEt.cjs.map} +1 -1
  254. package/dist/{spinner-BCnPYF1H.mjs → spinner-eClTgHjk.mjs} +1 -1
  255. package/dist/{spinner-BCnPYF1H.mjs.map → spinner-eClTgHjk.mjs.map} +1 -1
  256. package/dist/{statistic-DDDm5Om1.cjs → statistic-DDXilD7q.cjs} +2 -2
  257. package/dist/{statistic-DDDm5Om1.cjs.map → statistic-DDXilD7q.cjs.map} +1 -1
  258. package/dist/{statistic-Cm4nbkjQ.mjs → statistic-cwLwcukn.mjs} +1 -1
  259. package/dist/{statistic-Cm4nbkjQ.mjs.map → statistic-cwLwcukn.mjs.map} +1 -1
  260. package/dist/{switch-Dbc77c_D.cjs → switch-DVfOV7wP.cjs} +2 -2
  261. package/dist/{switch-Dbc77c_D.cjs.map → switch-DVfOV7wP.cjs.map} +1 -1
  262. package/dist/systems/google.cjs +1 -1
  263. package/dist/tables-CFrsk2lM.mjs +4 -0
  264. package/dist/tables-CFrsk2lM.mjs.map +1 -0
  265. package/dist/tables-CPKHe3k-.cjs +4 -0
  266. package/dist/tables-CPKHe3k-.cjs.map +1 -0
  267. package/dist/tanstack-form-DT1TqIDl.mjs +12 -0
  268. package/dist/tanstack-form-DT1TqIDl.mjs.map +1 -0
  269. package/dist/tanstack-form-DatI41wz.cjs +12 -0
  270. package/dist/tanstack-form-DatI41wz.cjs.map +1 -0
  271. package/dist/{text-editor-Bg0Wtnt3.mjs → text-editor-5mA7XyaI.mjs} +2 -2
  272. package/dist/{text-editor-Bg0Wtnt3.mjs.map → text-editor-5mA7XyaI.mjs.map} +1 -1
  273. package/dist/{text-editor-DtLcsiR7.cjs → text-editor-CvJN3nSL.cjs} +2 -2
  274. package/dist/{text-editor-DtLcsiR7.cjs.map → text-editor-CvJN3nSL.cjs.map} +1 -1
  275. package/dist/{textarea-Byo8E8oi.cjs → textarea-Cc9CF8wD.cjs} +2 -2
  276. package/dist/{textarea-Byo8E8oi.cjs.map → textarea-Cc9CF8wD.cjs.map} +1 -1
  277. package/dist/{tooltip-DC6i1A25.cjs → tooltip-CBdoIzoM.cjs} +2 -2
  278. package/dist/{tooltip-DC6i1A25.cjs.map → tooltip-CBdoIzoM.cjs.map} +1 -1
  279. package/dist/{tooltip-BfBJRYpc.mjs → tooltip-Dxl5Wa8i.mjs} +1 -1
  280. package/dist/{tooltip-BfBJRYpc.mjs.map → tooltip-Dxl5Wa8i.mjs.map} +1 -1
  281. package/dist/{types-CFXgrpTm.mjs → types-B5nyTWtO.mjs} +1 -1
  282. package/dist/{types-CFXgrpTm.mjs.map → types-B5nyTWtO.mjs.map} +1 -1
  283. package/dist/typography/paragraph.cjs +1 -1
  284. package/dist/typography/paragraph.d.cts +5 -5
  285. package/dist/typography/paragraph.d.mts +5 -5
  286. package/dist/typography/paragraph.mjs +1 -1
  287. package/dist/typography/title.cjs +1 -1
  288. package/dist/ui/alert-dialog.cjs +1 -1
  289. package/dist/ui/alert-dialog.d.cts +12 -12
  290. package/dist/ui/alert-dialog.d.mts +12 -12
  291. package/dist/ui/alert-dialog.mjs +1 -1
  292. package/dist/ui/alert.cjs +1 -1
  293. package/dist/ui/alert.d.cts +1 -1
  294. package/dist/ui/alert.d.mts +1 -1
  295. package/dist/ui/aspect-ratio.cjs +1 -1
  296. package/dist/ui/aspect-ratio.d.cts +2 -2
  297. package/dist/ui/aspect-ratio.d.mts +2 -2
  298. package/dist/ui/avatar.cjs +1 -1
  299. package/dist/ui/avatar.d.cts +4 -4
  300. package/dist/ui/avatar.d.mts +4 -4
  301. package/dist/ui/avatar.mjs +1 -1
  302. package/dist/ui/badge.cjs +1 -1
  303. package/dist/ui/badge.d.cts +1 -1
  304. package/dist/ui/badge.d.mts +1 -1
  305. package/dist/ui/badge.mjs +1 -1
  306. package/dist/ui/breadcrumb.cjs +1 -1
  307. package/dist/ui/breadcrumb.d.cts +8 -8
  308. package/dist/ui/breadcrumb.d.mts +8 -8
  309. package/dist/ui/breadcrumb.mjs +1 -1
  310. package/dist/ui/button-group.cjs +1 -1
  311. package/dist/ui/button-group.d.cts +6 -6
  312. package/dist/ui/button-group.d.mts +6 -6
  313. package/dist/ui/button-group.mjs +1 -1
  314. package/dist/ui/button.cjs +1 -1
  315. package/dist/ui/button.d.cts +1 -1
  316. package/dist/ui/button.d.mts +1 -1
  317. package/dist/ui/button.mjs +1 -1
  318. package/dist/ui/buttons/add-new.cjs +1 -1
  319. package/dist/ui/buttons/add-new.mjs +1 -1
  320. package/dist/ui/buttons/edit.cjs +1 -1
  321. package/dist/ui/buttons/edit.mjs +1 -1
  322. package/dist/ui/buttons/refresh.cjs +1 -1
  323. package/dist/ui/buttons/refresh.mjs +1 -1
  324. package/dist/ui/buttons/trash.cjs +1 -1
  325. package/dist/ui/buttons/trash.mjs +1 -1
  326. package/dist/ui/buttons/upload-image.cjs +1 -1
  327. package/dist/ui/buttons/upload-image.mjs +1 -1
  328. package/dist/ui/calendar.cjs +1 -1
  329. package/dist/ui/calendar.d.cts +4 -4
  330. package/dist/ui/calendar.d.mts +4 -4
  331. package/dist/ui/calendar.mjs +1 -1
  332. package/dist/ui/card.cjs +1 -1
  333. package/dist/ui/card.d.cts +8 -8
  334. package/dist/ui/card.d.mts +8 -8
  335. package/dist/ui/card.mjs +1 -1
  336. package/dist/ui/carousel.cjs +1 -1
  337. package/dist/ui/carousel.d.cts +7 -7
  338. package/dist/ui/carousel.d.mts +7 -7
  339. package/dist/ui/carousel.mjs +1 -1
  340. package/dist/ui/checkbox.cjs +1 -1
  341. package/dist/ui/checkbox.d.cts +2 -2
  342. package/dist/ui/checkbox.d.mts +2 -2
  343. package/dist/ui/checkbox.mjs +1 -1
  344. package/dist/ui/collapsible.cjs +1 -1
  345. package/dist/ui/collapsible.d.cts +4 -4
  346. package/dist/ui/collapsible.d.mts +4 -4
  347. package/dist/ui/command.cjs +1 -1
  348. package/dist/ui/command.d.cts +11 -11
  349. package/dist/ui/command.d.mts +11 -11
  350. package/dist/ui/command.mjs +1 -1
  351. package/dist/ui/context-menu.cjs +1 -1
  352. package/dist/ui/context-menu.d.cts +16 -16
  353. package/dist/ui/context-menu.d.mts +16 -16
  354. package/dist/ui/dialog.cjs +1 -1
  355. package/dist/ui/dialog.d.cts +1 -1
  356. package/dist/ui/dialog.d.mts +1 -1
  357. package/dist/ui/dialog.mjs +1 -1
  358. package/dist/ui/drawer.cjs +1 -1
  359. package/dist/ui/drawer.d.cts +11 -11
  360. package/dist/ui/drawer.d.mts +11 -11
  361. package/dist/ui/dropdown-menu.cjs +1 -1
  362. package/dist/ui/dropdown-menu.d.cts +16 -16
  363. package/dist/ui/dropdown-menu.d.mts +16 -16
  364. package/dist/ui/dropdown-menu.mjs +1 -1
  365. package/dist/ui/empty.cjs +1 -1
  366. package/dist/ui/empty.d.cts +9 -9
  367. package/dist/ui/empty.d.mts +9 -9
  368. package/dist/ui/field.cjs +1 -1
  369. package/dist/ui/field.d.cts +23 -23
  370. package/dist/ui/field.d.mts +23 -23
  371. package/dist/ui/field.mjs +1 -1
  372. package/dist/ui/file-uploader.cjs +1 -1
  373. package/dist/ui/file-uploader.d.cts +2 -2
  374. package/dist/ui/file-uploader.d.mts +2 -2
  375. package/dist/ui/file-uploader.mjs +1 -1
  376. package/dist/ui/form.cjs +1 -1
  377. package/dist/ui/form.d.cts +10 -10
  378. package/dist/ui/form.d.mts +10 -10
  379. package/dist/ui/form.mjs +1 -1
  380. package/dist/ui/hover-card.cjs +1 -1
  381. package/dist/ui/hover-card.d.cts +4 -4
  382. package/dist/ui/hover-card.d.mts +4 -4
  383. package/dist/ui/image.cjs +1 -1
  384. package/dist/ui/image.mjs +1 -1
  385. package/dist/ui/input-otp.cjs +1 -1
  386. package/dist/ui/input-otp.d.cts +5 -5
  387. package/dist/ui/input-otp.d.mts +5 -5
  388. package/dist/ui/input.cjs +1 -1
  389. package/dist/ui/input.d.cts +1 -1
  390. package/dist/ui/input.d.mts +1 -1
  391. package/dist/ui/input.mjs +1 -1
  392. package/dist/ui/inputs/search-input.cjs +1 -1
  393. package/dist/ui/inputs/search-input.d.cts +3 -3
  394. package/dist/ui/inputs/search-input.d.mts +3 -3
  395. package/dist/ui/inputs/search-input.mjs +1 -1
  396. package/dist/ui/item.cjs +1 -1
  397. package/dist/ui/item.d.cts +3 -3
  398. package/dist/ui/item.d.mts +11 -11
  399. package/dist/ui/item.mjs +1 -1
  400. package/dist/ui/label.cjs +1 -1
  401. package/dist/ui/label.d.cts +2 -2
  402. package/dist/ui/label.d.mts +2 -2
  403. package/dist/ui/label.mjs +1 -1
  404. package/dist/ui/menubar.cjs +1 -1
  405. package/dist/ui/menubar.d.cts +17 -17
  406. package/dist/ui/menubar.d.mts +17 -17
  407. package/dist/ui/multi-select.cjs +1 -1
  408. package/dist/ui/multi-select.d.cts +2 -2
  409. package/dist/ui/multi-select.d.mts +3 -3
  410. package/dist/ui/multi-select.mjs +1 -1
  411. package/dist/ui/navigation-menu.cjs +1 -1
  412. package/dist/ui/navigation-menu.d.cts +11 -11
  413. package/dist/ui/navigation-menu.d.mts +11 -11
  414. package/dist/ui/pagination.cjs +1 -1
  415. package/dist/ui/pagination.d.cts +9 -9
  416. package/dist/ui/pagination.d.mts +9 -9
  417. package/dist/ui/pagination.mjs +1 -1
  418. package/dist/ui/popover.cjs +1 -1
  419. package/dist/ui/popover.d.cts +6 -6
  420. package/dist/ui/popover.d.mts +6 -6
  421. package/dist/ui/popover.mjs +1 -1
  422. package/dist/ui/progress.cjs +1 -1
  423. package/dist/ui/progress.d.cts +2 -2
  424. package/dist/ui/progress.d.mts +2 -2
  425. package/dist/ui/progress.mjs +1 -1
  426. package/dist/ui/radio-group.cjs +1 -1
  427. package/dist/ui/radio-group.d.cts +3 -3
  428. package/dist/ui/radio-group.d.mts +3 -3
  429. package/dist/ui/resizable.cjs +1 -1
  430. package/dist/ui/resizable.d.cts +9 -9
  431. package/dist/ui/resizable.d.mts +9 -9
  432. package/dist/ui/resizable.mjs +1 -1
  433. package/dist/ui/scroll-area.cjs +1 -1
  434. package/dist/ui/scroll-area.d.cts +5 -5
  435. package/dist/ui/scroll-area.d.mts +5 -5
  436. package/dist/ui/select.cjs +1 -1
  437. package/dist/ui/select.d.cts +9 -9
  438. package/dist/ui/select.d.mts +9 -9
  439. package/dist/ui/select.mjs +1 -1
  440. package/dist/ui/separator.cjs +1 -1
  441. package/dist/ui/separator.d.cts +2 -2
  442. package/dist/ui/separator.d.mts +2 -2
  443. package/dist/ui/separator.mjs +1 -1
  444. package/dist/ui/sheet.cjs +1 -1
  445. package/dist/ui/sheet.d.cts +9 -9
  446. package/dist/ui/sheet.d.mts +9 -9
  447. package/dist/ui/sheet.mjs +1 -1
  448. package/dist/ui/skeleton.cjs +1 -1
  449. package/dist/ui/skeleton.d.cts +2 -2
  450. package/dist/ui/skeleton.d.mts +2 -2
  451. package/dist/ui/skeleton.mjs +1 -1
  452. package/dist/ui/slider.cjs +1 -1
  453. package/dist/ui/slider.d.cts +2 -2
  454. package/dist/ui/slider.d.mts +2 -2
  455. package/dist/ui/sonner.cjs +1 -1
  456. package/dist/ui/sonner.cjs.map +1 -1
  457. package/dist/ui/sonner.d.cts +2 -2
  458. package/dist/ui/sonner.d.mts +2 -2
  459. package/dist/ui/sonner.mjs +1 -1
  460. package/dist/ui/sonner.mjs.map +1 -1
  461. package/dist/ui/spinner.cjs +1 -1
  462. package/dist/ui/spinner.d.cts +2 -2
  463. package/dist/ui/spinner.d.mts +2 -2
  464. package/dist/ui/spinner.mjs +1 -1
  465. package/dist/ui/switch.cjs +1 -1
  466. package/dist/ui/switch.d.cts +2 -2
  467. package/dist/ui/switch.d.mts +2 -2
  468. package/dist/ui/table.cjs +1 -1
  469. package/dist/ui/table.d.cts +17 -17
  470. package/dist/ui/table.d.mts +17 -17
  471. package/dist/ui/tabs.cjs +1 -1
  472. package/dist/ui/tabs.d.cts +5 -5
  473. package/dist/ui/tabs.d.mts +5 -5
  474. package/dist/ui/textarea.cjs +1 -1
  475. package/dist/ui/textarea.d.cts +2 -2
  476. package/dist/ui/textarea.d.mts +2 -2
  477. package/dist/ui/toggle-group.cjs +1 -1
  478. package/dist/ui/toggle-group.d.mts +3 -3
  479. package/dist/ui/toggle.cjs +1 -1
  480. package/dist/ui/toggle.d.cts +4 -4
  481. package/dist/ui/toggle.d.mts +4 -4
  482. package/dist/ui/tooltip.cjs +1 -1
  483. package/dist/ui/tooltip.d.cts +5 -5
  484. package/dist/ui/tooltip.d.mts +5 -5
  485. package/dist/ui/tooltip.mjs +1 -1
  486. package/dist/{user-D8Skw8dI.mjs → user-DtZy4P9d.mjs} +2 -2
  487. package/dist/{user-D8Skw8dI.mjs.map → user-DtZy4P9d.mjs.map} +1 -1
  488. package/dist/{user-Dns1BKaT.cjs → user-ii4FBhO1.cjs} +2 -2
  489. package/dist/{user-Dns1BKaT.cjs.map → user-ii4FBhO1.cjs.map} +1 -1
  490. package/package.json +20 -5
  491. package/styles/spacing.css +186 -0
  492. package/dist/button-Bu4ejNOW.cjs.map +0 -1
  493. package/dist/button-CfPTDyoq.mjs +0 -2
  494. package/dist/button-CfPTDyoq.mjs.map +0 -1
  495. package/dist/chunk-Bmb41Sf3.cjs +0 -1
  496. package/dist/cms-layout-BrubV8D8.cjs +0 -2
  497. package/dist/cms-layout-BrubV8D8.cjs.map +0 -1
  498. package/dist/cms-layout-C2-yysO2.mjs +0 -2
  499. package/dist/cms-layout-C2-yysO2.mjs.map +0 -1
  500. package/dist/dist-BQGL-YKY.mjs +0 -2
  501. package/dist/dist-CAeolvAH.cjs +0 -2
  502. package/dist/image-D2U1SBw5.mjs +0 -2
  503. package/dist/image-Y7gCz7uE.cjs +0 -2
  504. package/dist/index-9dZXIJo5.d.mts +0 -2749
  505. package/dist/index-CQkuntSj.d.cts +0 -2749
  506. package/dist/select-BAlA65tZ.mjs.map +0 -1
  507. package/dist/select-Cib2aiw5.cjs +0 -2
  508. package/dist/select-Cib2aiw5.cjs.map +0 -1
  509. package/dist/tables-B3Ald6An.cjs +0 -4
  510. package/dist/tables-B3Ald6An.cjs.map +0 -1
  511. package/dist/tables-C3asiSD4.mjs +0 -4
  512. package/dist/tables-C3asiSD4.mjs.map +0 -1
  513. package/dist/tanstack-form-Byb7E1m9.cjs +0 -2
  514. package/dist/tanstack-form-Byb7E1m9.cjs.map +0 -1
  515. package/dist/tanstack-form-Dg_0hFwX.mjs +0 -2
  516. package/dist/tanstack-form-Dg_0hFwX.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"flex-BAcvp4lB.mjs","names":[],"sources":["../packages/components/layouts/flex.tsx"],"sourcesContent":["'use client';\nimport { memo } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nconst flexVariants = cva(['relative flex', 'text-sm'], {\n variants: {\n vertical: {\n true: 'flex-col',\n false: 'flex-row',\n },\n width: {\n full: 'w-full',\n auto: 'w-auto',\n fit: 'w-fit',\n screen: 'w-screen',\n min: 'w-min',\n max: 'w-max',\n null: '',\n },\n wrap: {\n true: 'flex-wrap',\n false: 'flex-nowrap',\n },\n margin: {\n sm: 'm-2',\n md: 'm-4',\n lg: 'm-6',\n xl: 'm-8',\n none: 'm-0',\n },\n padding: {\n sm: 'p-2',\n md: 'p-4',\n lg: 'p-6',\n xl: 'p-8',\n none: 'p-0',\n },\n gap: {\n xs: 'gap-1',\n sm: 'gap-2',\n md: 'gap-4',\n lg: 'gap-6',\n xl: 'gap-8',\n none: 'gap-0',\n },\n justify: {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n between: 'justify-between',\n around: 'justify-around',\n evenly: 'justify-evenly',\n stretch: 'justify-stretch',\n },\n align: {\n start: 'items-start',\n center: 'items-center',\n end: 'items-end',\n baseline: 'items-baseline',\n stretch: 'items-stretch',\n },\n },\n defaultVariants: {\n vertical: false,\n wrap: true,\n width: 'fit',\n margin: 'none',\n padding: 'sm',\n gap: 'xs',\n justify: 'start',\n align: 'center',\n },\n});\n\ntype Props = {\n /** Additional Tailwind classes merged on top of the variant-generated classes. */\n className?: string;\n /**\n * Stacks children vertically (`flex-col`) when `true`, horizontally (`flex-row`) when `false`.\n * @default false\n */\n vertical?: boolean;\n /**\n * Controls the width of the flex container.\n * - `'full'` — `w-full`\n * - `'auto'` — `w-auto`\n * - `'fit'` — `w-fit` (default)\n * - `'screen'` — `w-screen`\n * - `'min'` — `w-min`\n * - `'max'` — `w-max`\n * - `'null'` — no width utility applied\n * @default 'fit'\n */\n width?: 'full' | 'auto' | 'fit' | 'screen' | 'min' | 'max' | 'null';\n /**\n * Allows children to wrap onto multiple lines when `true`.\n * @default true\n */\n wrap?: boolean;\n /**\n * Uniform margin applied to the container.\n * - `'none'` — `m-0` (default)\n * - `'sm'` — `m-2`\n * - `'md'` — `m-4`\n * - `'lg'` — `m-6`\n * - `'xl'` — `m-8`\n * @default 'none'\n */\n margin?: 'sm' | 'md' | 'lg' | 'xl' | 'none';\n /**\n * Uniform padding applied to the container.\n * - `'none'` — `p-0`\n * - `'sm'` — `p-2` (default)\n * - `'md'` — `p-4`\n * - `'lg'` — `p-6`\n * - `'xl'` — `p-8`\n * @default 'sm'\n */\n padding?: 'sm' | 'md' | 'lg' | 'xl' | 'none';\n /**\n * Gap between child elements.\n * - `'none'` — `gap-0`\n * - `'xs'` — `gap-1` (default)\n * - `'sm'` — `gap-2`\n * - `'md'` — `gap-4`\n * - `'lg'` — `gap-6`\n * - `'xl'` — `gap-8`\n * @default 'xs'\n */\n gap?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'none';\n /**\n * Justification of children along the main axis (`justify-content`).\n * @default 'start'\n */\n justify?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly' | 'stretch';\n /**\n * Alignment of children along the cross axis (`align-items`).\n * @default 'center'\n */\n align?: 'start' | 'center' | 'end' | 'baseline' | 'stretch';\n} & VariantProps<typeof flexVariants>;\n\n/**\n * A flexible, variant-driven flex container built on CVA and TailwindCSS.\n *\n * @example\n * ```tsx\n * import { Flex } from '@customafk/lunas-ui/layouts/flex';\n *\n * // Horizontal row with centered children and a medium gap\n * <Flex gap=\"md\" justify=\"between\" align=\"center\">\n * <span>Left</span>\n * <span>Right</span>\n * </Flex>\n *\n * // Vertical stack that fills parent width\n * <Flex vertical width=\"full\" gap=\"sm\" padding=\"md\">\n * <p>First item</p>\n * <p>Second item</p>\n * </Flex>\n * ```\n */\nexport const Flex = memo(({ vertical, wrap, width, margin, padding, gap, justify, align, className, children }: React.PropsWithChildren<Props>) => {\n return (\n <div\n className={cn(\n flexVariants({\n vertical,\n width,\n wrap,\n margin,\n padding,\n gap,\n justify,\n align,\n className,\n })\n )}\n >\n {children}\n </div>\n );\n});\nFlex.displayName = 'Flex';\n"],"mappings":"wKAOA,MAAM,EAAe,EAAI,CAAC,gBAAiB,UAAU,CAAE,CACrD,SAAU,CACR,SAAU,CACR,KAAM,WACN,MAAO,WACR,CACD,MAAO,CACL,KAAM,SACN,KAAM,SACN,IAAK,QACL,OAAQ,WACR,IAAK,QACL,IAAK,QACL,KAAM,GACP,CACD,KAAM,CACJ,KAAM,YACN,MAAO,cACR,CACD,OAAQ,CACN,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,KAAM,MACP,CACD,QAAS,CACP,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,KAAM,MACP,CACD,IAAK,CACH,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,KAAM,QACP,CACD,QAAS,CACP,MAAO,gBACP,OAAQ,iBACR,IAAK,cACL,QAAS,kBACT,OAAQ,iBACR,OAAQ,iBACR,QAAS,kBACV,CACD,MAAO,CACL,MAAO,cACP,OAAQ,eACR,IAAK,YACL,SAAU,iBACV,QAAS,gBACV,CACF,CACD,gBAAiB,CACf,SAAU,GACV,KAAM,GACN,MAAO,MACP,OAAQ,OACR,QAAS,KACT,IAAK,KACL,QAAS,QACT,MAAO,SACR,CACF,CAAC,CA0FW,EAAO,GAAM,CAAE,WAAU,OAAM,QAAO,SAAQ,UAAS,MAAK,UAAS,QAAO,YAAW,cAEhG,EAAC,MAAA,CACC,UAAW,EACT,EAAa,CACX,WACA,QACA,OACA,SACA,UACA,MACA,UACA,QACA,YACD,CAAC,CACH,CAEA,YACG,CAER,CACF,EAAK,YAAc"}
1
+ {"version":3,"file":"flex-B6YSJzGe.mjs","names":[],"sources":["../packages/components/layouts/flex.tsx"],"sourcesContent":["'use client';\nimport { memo } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nconst flexVariants = cva(['relative flex', 'text-sm'], {\n variants: {\n vertical: {\n true: 'flex-col',\n false: 'flex-row',\n },\n width: {\n full: 'w-full',\n auto: 'w-auto',\n fit: 'w-fit',\n screen: 'w-screen',\n min: 'w-min',\n max: 'w-max',\n null: '',\n },\n wrap: {\n true: 'flex-wrap',\n false: 'flex-nowrap',\n },\n margin: {\n sm: 'm-2',\n md: 'm-4',\n lg: 'm-6',\n xl: 'm-8',\n none: 'm-0',\n },\n padding: {\n sm: 'p-2',\n md: 'p-4',\n lg: 'p-6',\n xl: 'p-8',\n none: 'p-0',\n },\n gap: {\n xs: 'gap-1',\n sm: 'gap-2',\n md: 'gap-4',\n lg: 'gap-6',\n xl: 'gap-8',\n none: 'gap-0',\n },\n justify: {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n between: 'justify-between',\n around: 'justify-around',\n evenly: 'justify-evenly',\n stretch: 'justify-stretch',\n },\n align: {\n start: 'items-start',\n center: 'items-center',\n end: 'items-end',\n baseline: 'items-baseline',\n stretch: 'items-stretch',\n },\n },\n defaultVariants: {\n vertical: false,\n wrap: true,\n width: 'fit',\n margin: 'none',\n padding: 'sm',\n gap: 'xs',\n justify: 'start',\n align: 'center',\n },\n});\n\ntype Props = {\n /** Additional Tailwind classes merged on top of the variant-generated classes. */\n className?: string;\n /**\n * Stacks children vertically (`flex-col`) when `true`, horizontally (`flex-row`) when `false`.\n * @default false\n */\n vertical?: boolean;\n /**\n * Controls the width of the flex container.\n * - `'full'` — `w-full`\n * - `'auto'` — `w-auto`\n * - `'fit'` — `w-fit` (default)\n * - `'screen'` — `w-screen`\n * - `'min'` — `w-min`\n * - `'max'` — `w-max`\n * - `'null'` — no width utility applied\n * @default 'fit'\n */\n width?: 'full' | 'auto' | 'fit' | 'screen' | 'min' | 'max' | 'null';\n /**\n * Allows children to wrap onto multiple lines when `true`.\n * @default true\n */\n wrap?: boolean;\n /**\n * Uniform margin applied to the container.\n * - `'none'` — `m-0` (default)\n * - `'sm'` — `m-2`\n * - `'md'` — `m-4`\n * - `'lg'` — `m-6`\n * - `'xl'` — `m-8`\n * @default 'none'\n */\n margin?: 'sm' | 'md' | 'lg' | 'xl' | 'none';\n /**\n * Uniform padding applied to the container.\n * - `'none'` — `p-0`\n * - `'sm'` — `p-2` (default)\n * - `'md'` — `p-4`\n * - `'lg'` — `p-6`\n * - `'xl'` — `p-8`\n * @default 'sm'\n */\n padding?: 'sm' | 'md' | 'lg' | 'xl' | 'none';\n /**\n * Gap between child elements.\n * - `'none'` — `gap-0`\n * - `'xs'` — `gap-1` (default)\n * - `'sm'` — `gap-2`\n * - `'md'` — `gap-4`\n * - `'lg'` — `gap-6`\n * - `'xl'` — `gap-8`\n * @default 'xs'\n */\n gap?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'none';\n /**\n * Justification of children along the main axis (`justify-content`).\n * @default 'start'\n */\n justify?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly' | 'stretch';\n /**\n * Alignment of children along the cross axis (`align-items`).\n * @default 'center'\n */\n align?: 'start' | 'center' | 'end' | 'baseline' | 'stretch';\n} & VariantProps<typeof flexVariants>;\n\n/**\n * A flexible, variant-driven flex container built on CVA and TailwindCSS.\n *\n * @example\n * ```tsx\n * import { Flex } from '@customafk/lunas-ui/layouts/flex';\n *\n * // Horizontal row with centered children and a medium gap\n * <Flex gap=\"md\" justify=\"between\" align=\"center\">\n * <span>Left</span>\n * <span>Right</span>\n * </Flex>\n *\n * // Vertical stack that fills parent width\n * <Flex vertical width=\"full\" gap=\"sm\" padding=\"md\">\n * <p>First item</p>\n * <p>Second item</p>\n * </Flex>\n * ```\n */\nexport const Flex = memo(({ vertical, wrap, width, margin, padding, gap, justify, align, className, children }: React.PropsWithChildren<Props>) => {\n return (\n <div\n className={cn(\n flexVariants({\n vertical,\n width,\n wrap,\n margin,\n padding,\n gap,\n justify,\n align,\n className,\n })\n )}\n >\n {children}\n </div>\n );\n});\nFlex.displayName = 'Flex';\n"],"mappings":"wKAOA,MAAM,EAAe,EAAI,CAAC,gBAAiB,UAAU,CAAE,CACrD,SAAU,CACR,SAAU,CACR,KAAM,WACN,MAAO,WACR,CACD,MAAO,CACL,KAAM,SACN,KAAM,SACN,IAAK,QACL,OAAQ,WACR,IAAK,QACL,IAAK,QACL,KAAM,GACP,CACD,KAAM,CACJ,KAAM,YACN,MAAO,cACR,CACD,OAAQ,CACN,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,KAAM,MACP,CACD,QAAS,CACP,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,KAAM,MACP,CACD,IAAK,CACH,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,KAAM,QACP,CACD,QAAS,CACP,MAAO,gBACP,OAAQ,iBACR,IAAK,cACL,QAAS,kBACT,OAAQ,iBACR,OAAQ,iBACR,QAAS,kBACV,CACD,MAAO,CACL,MAAO,cACP,OAAQ,eACR,IAAK,YACL,SAAU,iBACV,QAAS,gBACV,CACF,CACD,gBAAiB,CACf,SAAU,GACV,KAAM,GACN,MAAO,MACP,OAAQ,OACR,QAAS,KACT,IAAK,KACL,QAAS,QACT,MAAO,SACR,CACF,CAAC,CA0FW,EAAO,GAAM,CAAE,WAAU,OAAM,QAAO,SAAQ,UAAS,MAAK,UAAS,QAAO,YAAW,cAEhG,EAAC,MAAA,CACC,UAAW,EACT,EAAa,CACX,WACA,QACA,OACA,SACA,UACA,MACA,UACA,QACA,YACD,CAAC,CACH,CAEA,YACG,CAER,CACF,EAAK,YAAc"}
@@ -1,2 +1,2 @@
1
- const e=require(`./chunk-Bmb41Sf3.cjs`);let t=require(`react`),n=require(`@customafk/react-toolkit/utils`),r=require(`class-variance-authority`),i=require(`react/jsx-runtime`);const a=(0,r.cva)([`relative flex`,`text-sm`],{variants:{vertical:{true:`flex-col`,false:`flex-row`},width:{full:`w-full`,auto:`w-auto`,fit:`w-fit`,screen:`w-screen`,min:`w-min`,max:`w-max`,null:``},wrap:{true:`flex-wrap`,false:`flex-nowrap`},margin:{sm:`m-2`,md:`m-4`,lg:`m-6`,xl:`m-8`,none:`m-0`},padding:{sm:`p-2`,md:`p-4`,lg:`p-6`,xl:`p-8`,none:`p-0`},gap:{xs:`gap-1`,sm:`gap-2`,md:`gap-4`,lg:`gap-6`,xl:`gap-8`,none:`gap-0`},justify:{start:`justify-start`,center:`justify-center`,end:`justify-end`,between:`justify-between`,around:`justify-around`,evenly:`justify-evenly`,stretch:`justify-stretch`},align:{start:`items-start`,center:`items-center`,end:`items-end`,baseline:`items-baseline`,stretch:`items-stretch`}},defaultVariants:{vertical:!1,wrap:!0,width:`fit`,margin:`none`,padding:`sm`,gap:`xs`,justify:`start`,align:`center`}}),o=(0,t.memo)(({vertical:e,wrap:t,width:r,margin:o,padding:s,gap:c,justify:l,align:u,className:d,children:f})=>(0,i.jsx)(`div`,{className:(0,n.cn)(a({vertical:e,width:r,wrap:t,margin:o,padding:s,gap:c,justify:l,align:u,className:d})),children:f}));o.displayName=`Flex`,Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return o}});
2
- //# sourceMappingURL=flex-DYh2t8ft.cjs.map
1
+ const e=require(`./chunk-350yNsax.cjs`);let t=require(`react`),n=require(`@customafk/react-toolkit/utils`),r=require(`class-variance-authority`),i=require(`react/jsx-runtime`);const a=(0,r.cva)([`relative flex`,`text-sm`],{variants:{vertical:{true:`flex-col`,false:`flex-row`},width:{full:`w-full`,auto:`w-auto`,fit:`w-fit`,screen:`w-screen`,min:`w-min`,max:`w-max`,null:``},wrap:{true:`flex-wrap`,false:`flex-nowrap`},margin:{sm:`m-2`,md:`m-4`,lg:`m-6`,xl:`m-8`,none:`m-0`},padding:{sm:`p-2`,md:`p-4`,lg:`p-6`,xl:`p-8`,none:`p-0`},gap:{xs:`gap-1`,sm:`gap-2`,md:`gap-4`,lg:`gap-6`,xl:`gap-8`,none:`gap-0`},justify:{start:`justify-start`,center:`justify-center`,end:`justify-end`,between:`justify-between`,around:`justify-around`,evenly:`justify-evenly`,stretch:`justify-stretch`},align:{start:`items-start`,center:`items-center`,end:`items-end`,baseline:`items-baseline`,stretch:`items-stretch`}},defaultVariants:{vertical:!1,wrap:!0,width:`fit`,margin:`none`,padding:`sm`,gap:`xs`,justify:`start`,align:`center`}}),o=(0,t.memo)(({vertical:e,wrap:t,width:r,margin:o,padding:s,gap:c,justify:l,align:u,className:d,children:f})=>(0,i.jsx)(`div`,{className:(0,n.cn)(a({vertical:e,width:r,wrap:t,margin:o,padding:s,gap:c,justify:l,align:u,className:d})),children:f}));o.displayName=`Flex`,Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return o}});
2
+ //# sourceMappingURL=flex-DmWmOBn5.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"flex-DYh2t8ft.cjs","names":[],"sources":["../packages/components/layouts/flex.tsx"],"sourcesContent":["'use client';\nimport { memo } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nconst flexVariants = cva(['relative flex', 'text-sm'], {\n variants: {\n vertical: {\n true: 'flex-col',\n false: 'flex-row',\n },\n width: {\n full: 'w-full',\n auto: 'w-auto',\n fit: 'w-fit',\n screen: 'w-screen',\n min: 'w-min',\n max: 'w-max',\n null: '',\n },\n wrap: {\n true: 'flex-wrap',\n false: 'flex-nowrap',\n },\n margin: {\n sm: 'm-2',\n md: 'm-4',\n lg: 'm-6',\n xl: 'm-8',\n none: 'm-0',\n },\n padding: {\n sm: 'p-2',\n md: 'p-4',\n lg: 'p-6',\n xl: 'p-8',\n none: 'p-0',\n },\n gap: {\n xs: 'gap-1',\n sm: 'gap-2',\n md: 'gap-4',\n lg: 'gap-6',\n xl: 'gap-8',\n none: 'gap-0',\n },\n justify: {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n between: 'justify-between',\n around: 'justify-around',\n evenly: 'justify-evenly',\n stretch: 'justify-stretch',\n },\n align: {\n start: 'items-start',\n center: 'items-center',\n end: 'items-end',\n baseline: 'items-baseline',\n stretch: 'items-stretch',\n },\n },\n defaultVariants: {\n vertical: false,\n wrap: true,\n width: 'fit',\n margin: 'none',\n padding: 'sm',\n gap: 'xs',\n justify: 'start',\n align: 'center',\n },\n});\n\ntype Props = {\n /** Additional Tailwind classes merged on top of the variant-generated classes. */\n className?: string;\n /**\n * Stacks children vertically (`flex-col`) when `true`, horizontally (`flex-row`) when `false`.\n * @default false\n */\n vertical?: boolean;\n /**\n * Controls the width of the flex container.\n * - `'full'` — `w-full`\n * - `'auto'` — `w-auto`\n * - `'fit'` — `w-fit` (default)\n * - `'screen'` — `w-screen`\n * - `'min'` — `w-min`\n * - `'max'` — `w-max`\n * - `'null'` — no width utility applied\n * @default 'fit'\n */\n width?: 'full' | 'auto' | 'fit' | 'screen' | 'min' | 'max' | 'null';\n /**\n * Allows children to wrap onto multiple lines when `true`.\n * @default true\n */\n wrap?: boolean;\n /**\n * Uniform margin applied to the container.\n * - `'none'` — `m-0` (default)\n * - `'sm'` — `m-2`\n * - `'md'` — `m-4`\n * - `'lg'` — `m-6`\n * - `'xl'` — `m-8`\n * @default 'none'\n */\n margin?: 'sm' | 'md' | 'lg' | 'xl' | 'none';\n /**\n * Uniform padding applied to the container.\n * - `'none'` — `p-0`\n * - `'sm'` — `p-2` (default)\n * - `'md'` — `p-4`\n * - `'lg'` — `p-6`\n * - `'xl'` — `p-8`\n * @default 'sm'\n */\n padding?: 'sm' | 'md' | 'lg' | 'xl' | 'none';\n /**\n * Gap between child elements.\n * - `'none'` — `gap-0`\n * - `'xs'` — `gap-1` (default)\n * - `'sm'` — `gap-2`\n * - `'md'` — `gap-4`\n * - `'lg'` — `gap-6`\n * - `'xl'` — `gap-8`\n * @default 'xs'\n */\n gap?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'none';\n /**\n * Justification of children along the main axis (`justify-content`).\n * @default 'start'\n */\n justify?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly' | 'stretch';\n /**\n * Alignment of children along the cross axis (`align-items`).\n * @default 'center'\n */\n align?: 'start' | 'center' | 'end' | 'baseline' | 'stretch';\n} & VariantProps<typeof flexVariants>;\n\n/**\n * A flexible, variant-driven flex container built on CVA and TailwindCSS.\n *\n * @example\n * ```tsx\n * import { Flex } from '@customafk/lunas-ui/layouts/flex';\n *\n * // Horizontal row with centered children and a medium gap\n * <Flex gap=\"md\" justify=\"between\" align=\"center\">\n * <span>Left</span>\n * <span>Right</span>\n * </Flex>\n *\n * // Vertical stack that fills parent width\n * <Flex vertical width=\"full\" gap=\"sm\" padding=\"md\">\n * <p>First item</p>\n * <p>Second item</p>\n * </Flex>\n * ```\n */\nexport const Flex = memo(({ vertical, wrap, width, margin, padding, gap, justify, align, className, children }: React.PropsWithChildren<Props>) => {\n return (\n <div\n className={cn(\n flexVariants({\n vertical,\n width,\n wrap,\n margin,\n padding,\n gap,\n justify,\n align,\n className,\n })\n )}\n >\n {children}\n </div>\n );\n});\nFlex.displayName = 'Flex';\n"],"mappings":"gLAOA,MAAM,GAAA,EAAA,EAAA,KAAmB,CAAC,gBAAiB,UAAU,CAAE,CACrD,SAAU,CACR,SAAU,CACR,KAAM,WACN,MAAO,WACR,CACD,MAAO,CACL,KAAM,SACN,KAAM,SACN,IAAK,QACL,OAAQ,WACR,IAAK,QACL,IAAK,QACL,KAAM,GACP,CACD,KAAM,CACJ,KAAM,YACN,MAAO,cACR,CACD,OAAQ,CACN,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,KAAM,MACP,CACD,QAAS,CACP,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,KAAM,MACP,CACD,IAAK,CACH,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,KAAM,QACP,CACD,QAAS,CACP,MAAO,gBACP,OAAQ,iBACR,IAAK,cACL,QAAS,kBACT,OAAQ,iBACR,OAAQ,iBACR,QAAS,kBACV,CACD,MAAO,CACL,MAAO,cACP,OAAQ,eACR,IAAK,YACL,SAAU,iBACV,QAAS,gBACV,CACF,CACD,gBAAiB,CACf,SAAU,GACV,KAAM,GACN,MAAO,MACP,OAAQ,OACR,QAAS,KACT,IAAK,KACL,QAAS,QACT,MAAO,SACR,CACF,CAAC,CA0FW,GAAA,EAAA,EAAA,OAAa,CAAE,WAAU,OAAM,QAAO,SAAQ,UAAS,MAAK,UAAS,QAAO,YAAW,eAEhG,EAAA,EAAA,KAAC,MAAA,CACC,WAAA,EAAA,EAAA,IACE,EAAa,CACX,WACA,QACA,OACA,SACA,UACA,MACA,UACA,QACA,YACD,CAAC,CACH,CAEA,YACG,CAER,CACF,EAAK,YAAc"}
1
+ {"version":3,"file":"flex-DmWmOBn5.cjs","names":[],"sources":["../packages/components/layouts/flex.tsx"],"sourcesContent":["'use client';\nimport { memo } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nconst flexVariants = cva(['relative flex', 'text-sm'], {\n variants: {\n vertical: {\n true: 'flex-col',\n false: 'flex-row',\n },\n width: {\n full: 'w-full',\n auto: 'w-auto',\n fit: 'w-fit',\n screen: 'w-screen',\n min: 'w-min',\n max: 'w-max',\n null: '',\n },\n wrap: {\n true: 'flex-wrap',\n false: 'flex-nowrap',\n },\n margin: {\n sm: 'm-2',\n md: 'm-4',\n lg: 'm-6',\n xl: 'm-8',\n none: 'm-0',\n },\n padding: {\n sm: 'p-2',\n md: 'p-4',\n lg: 'p-6',\n xl: 'p-8',\n none: 'p-0',\n },\n gap: {\n xs: 'gap-1',\n sm: 'gap-2',\n md: 'gap-4',\n lg: 'gap-6',\n xl: 'gap-8',\n none: 'gap-0',\n },\n justify: {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n between: 'justify-between',\n around: 'justify-around',\n evenly: 'justify-evenly',\n stretch: 'justify-stretch',\n },\n align: {\n start: 'items-start',\n center: 'items-center',\n end: 'items-end',\n baseline: 'items-baseline',\n stretch: 'items-stretch',\n },\n },\n defaultVariants: {\n vertical: false,\n wrap: true,\n width: 'fit',\n margin: 'none',\n padding: 'sm',\n gap: 'xs',\n justify: 'start',\n align: 'center',\n },\n});\n\ntype Props = {\n /** Additional Tailwind classes merged on top of the variant-generated classes. */\n className?: string;\n /**\n * Stacks children vertically (`flex-col`) when `true`, horizontally (`flex-row`) when `false`.\n * @default false\n */\n vertical?: boolean;\n /**\n * Controls the width of the flex container.\n * - `'full'` — `w-full`\n * - `'auto'` — `w-auto`\n * - `'fit'` — `w-fit` (default)\n * - `'screen'` — `w-screen`\n * - `'min'` — `w-min`\n * - `'max'` — `w-max`\n * - `'null'` — no width utility applied\n * @default 'fit'\n */\n width?: 'full' | 'auto' | 'fit' | 'screen' | 'min' | 'max' | 'null';\n /**\n * Allows children to wrap onto multiple lines when `true`.\n * @default true\n */\n wrap?: boolean;\n /**\n * Uniform margin applied to the container.\n * - `'none'` — `m-0` (default)\n * - `'sm'` — `m-2`\n * - `'md'` — `m-4`\n * - `'lg'` — `m-6`\n * - `'xl'` — `m-8`\n * @default 'none'\n */\n margin?: 'sm' | 'md' | 'lg' | 'xl' | 'none';\n /**\n * Uniform padding applied to the container.\n * - `'none'` — `p-0`\n * - `'sm'` — `p-2` (default)\n * - `'md'` — `p-4`\n * - `'lg'` — `p-6`\n * - `'xl'` — `p-8`\n * @default 'sm'\n */\n padding?: 'sm' | 'md' | 'lg' | 'xl' | 'none';\n /**\n * Gap between child elements.\n * - `'none'` — `gap-0`\n * - `'xs'` — `gap-1` (default)\n * - `'sm'` — `gap-2`\n * - `'md'` — `gap-4`\n * - `'lg'` — `gap-6`\n * - `'xl'` — `gap-8`\n * @default 'xs'\n */\n gap?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'none';\n /**\n * Justification of children along the main axis (`justify-content`).\n * @default 'start'\n */\n justify?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly' | 'stretch';\n /**\n * Alignment of children along the cross axis (`align-items`).\n * @default 'center'\n */\n align?: 'start' | 'center' | 'end' | 'baseline' | 'stretch';\n} & VariantProps<typeof flexVariants>;\n\n/**\n * A flexible, variant-driven flex container built on CVA and TailwindCSS.\n *\n * @example\n * ```tsx\n * import { Flex } from '@customafk/lunas-ui/layouts/flex';\n *\n * // Horizontal row with centered children and a medium gap\n * <Flex gap=\"md\" justify=\"between\" align=\"center\">\n * <span>Left</span>\n * <span>Right</span>\n * </Flex>\n *\n * // Vertical stack that fills parent width\n * <Flex vertical width=\"full\" gap=\"sm\" padding=\"md\">\n * <p>First item</p>\n * <p>Second item</p>\n * </Flex>\n * ```\n */\nexport const Flex = memo(({ vertical, wrap, width, margin, padding, gap, justify, align, className, children }: React.PropsWithChildren<Props>) => {\n return (\n <div\n className={cn(\n flexVariants({\n vertical,\n width,\n wrap,\n margin,\n padding,\n gap,\n justify,\n align,\n className,\n })\n )}\n >\n {children}\n </div>\n );\n});\nFlex.displayName = 'Flex';\n"],"mappings":"gLAOA,MAAM,GAAA,EAAA,EAAA,KAAmB,CAAC,gBAAiB,UAAU,CAAE,CACrD,SAAU,CACR,SAAU,CACR,KAAM,WACN,MAAO,WACR,CACD,MAAO,CACL,KAAM,SACN,KAAM,SACN,IAAK,QACL,OAAQ,WACR,IAAK,QACL,IAAK,QACL,KAAM,GACP,CACD,KAAM,CACJ,KAAM,YACN,MAAO,cACR,CACD,OAAQ,CACN,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,KAAM,MACP,CACD,QAAS,CACP,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,KAAM,MACP,CACD,IAAK,CACH,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,KAAM,QACP,CACD,QAAS,CACP,MAAO,gBACP,OAAQ,iBACR,IAAK,cACL,QAAS,kBACT,OAAQ,iBACR,OAAQ,iBACR,QAAS,kBACV,CACD,MAAO,CACL,MAAO,cACP,OAAQ,eACR,IAAK,YACL,SAAU,iBACV,QAAS,gBACV,CACF,CACD,gBAAiB,CACf,SAAU,GACV,KAAM,GACN,MAAO,MACP,OAAQ,OACR,QAAS,KACT,IAAK,KACL,QAAS,QACT,MAAO,SACR,CACF,CAAC,CA0FW,GAAA,EAAA,EAAA,OAAa,CAAE,WAAU,OAAM,QAAO,SAAQ,UAAS,MAAK,UAAS,QAAO,YAAW,eAEhG,EAAA,EAAA,KAAC,MAAA,CACC,WAAA,EAAA,EAAA,IACE,EAAa,CACX,WACA,QACA,OACA,SACA,UACA,MACA,UACA,QACA,YACD,CAAC,CACH,CAEA,YACG,CAER,CACF,EAAK,YAAc"}
@@ -1,2 +1,2 @@
1
1
  import{cn as e}from"@customafk/react-toolkit/utils";import{cva as t}from"class-variance-authority";import{jsx as n}from"react/jsx-runtime";const r=t(`scroll-m-20 text-start text-balance text-text-positive-strong tracking-tight transition-colors`,{variants:{level:{h1:`text-3xl leading-tight font-bold md:text-4xl`,h2:`text-2xl leading-tight font-semibold md:text-3xl`,h3:`text-xl leading-snug font-semibold md:text-2xl`,h4:`text-lg leading-snug font-semibold md:text-xl`,h5:`text-base leading-normal font-semibold md:text-lg`}},defaultVariants:{level:`h2`}});export{r as t};
2
- //# sourceMappingURL=heading-woRh-IC7.mjs.map
2
+ //# sourceMappingURL=heading-De4Pn3mZ.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"heading-woRh-IC7.mjs","names":[],"sources":["../packages/components/typography/heading.tsx"],"sourcesContent":["'use client';\n\nimport type { ElementType, ReactNode } from 'react';\nimport { cn } from '@customafk/react-toolkit/utils';\nimport { cva } from 'class-variance-authority';\n\ntype HeadingLevel = 'h1' | 'h2' | 'h3' | 'h4' | 'h5';\n\nexport type HeadingProps = {\n level?: HeadingLevel;\n className?: string;\n children?: ReactNode;\n as?: ElementType;\n};\n\nexport const headingVariants = cva('scroll-m-20 text-start text-balance text-text-positive-strong tracking-tight transition-colors', {\n variants: {\n level: {\n h1: 'text-3xl leading-tight font-bold md:text-4xl',\n h2: 'text-2xl leading-tight font-semibold md:text-3xl',\n h3: 'text-xl leading-snug font-semibold md:text-2xl',\n h4: 'text-lg leading-snug font-semibold md:text-xl',\n h5: 'text-base leading-normal font-semibold md:text-lg',\n },\n },\n defaultVariants: {\n level: 'h2',\n },\n});\n\nexport const Heading = ({ level = 'h3', className, as, children }: HeadingProps) => {\n const Component = as || level;\n\n return (\n <Component data-slot=\"heading\" className={cn(headingVariants({ level }), className)}>\n {children}\n </Component>\n );\n};\n"],"mappings":"2IAeA,MAAa,EAAkB,EAAI,iGAAkG,CACnI,SAAU,CACR,MAAO,CACL,GAAI,+CACJ,GAAI,mDACJ,GAAI,iDACJ,GAAI,gDACJ,GAAI,oDACL,CACF,CACD,gBAAiB,CACf,MAAO,KACR,CACF,CAAC"}
1
+ {"version":3,"file":"heading-De4Pn3mZ.mjs","names":[],"sources":["../packages/components/typography/heading.tsx"],"sourcesContent":["'use client';\n\nimport type { ElementType, ReactNode } from 'react';\nimport { cn } from '@customafk/react-toolkit/utils';\nimport { cva } from 'class-variance-authority';\n\ntype HeadingLevel = 'h1' | 'h2' | 'h3' | 'h4' | 'h5';\n\nexport type HeadingProps = {\n level?: HeadingLevel;\n className?: string;\n children?: ReactNode;\n as?: ElementType;\n};\n\nexport const headingVariants = cva('scroll-m-20 text-start text-balance text-text-positive-strong tracking-tight transition-colors', {\n variants: {\n level: {\n h1: 'text-3xl leading-tight font-bold md:text-4xl',\n h2: 'text-2xl leading-tight font-semibold md:text-3xl',\n h3: 'text-xl leading-snug font-semibold md:text-2xl',\n h4: 'text-lg leading-snug font-semibold md:text-xl',\n h5: 'text-base leading-normal font-semibold md:text-lg',\n },\n },\n defaultVariants: {\n level: 'h2',\n },\n});\n\nexport const Heading = ({ level = 'h3', className, as, children }: HeadingProps) => {\n const Component = as || level;\n\n return (\n <Component data-slot=\"heading\" className={cn(headingVariants({ level }), className)}>\n {children}\n </Component>\n );\n};\n"],"mappings":"2IAeA,MAAa,EAAkB,EAAI,iGAAkG,CACnI,SAAU,CACR,MAAO,CACL,GAAI,+CACJ,GAAI,mDACJ,GAAI,iDACJ,GAAI,gDACJ,GAAI,oDACL,CACF,CACD,gBAAiB,CACf,MAAO,KACR,CACF,CAAC"}
@@ -1,2 +1,2 @@
1
- const e=require(`./chunk-Bmb41Sf3.cjs`);let t=require(`@customafk/react-toolkit/utils`),n=require(`class-variance-authority`),r=require(`react/jsx-runtime`);const i=(0,n.cva)(`scroll-m-20 text-start text-balance text-text-positive-strong tracking-tight transition-colors`,{variants:{level:{h1:`text-3xl leading-tight font-bold md:text-4xl`,h2:`text-2xl leading-tight font-semibold md:text-3xl`,h3:`text-xl leading-snug font-semibold md:text-2xl`,h4:`text-lg leading-snug font-semibold md:text-xl`,h5:`text-base leading-normal font-semibold md:text-lg`}},defaultVariants:{level:`h2`}});Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
2
- //# sourceMappingURL=heading-wUXEbicM.cjs.map
1
+ const e=require(`./chunk-350yNsax.cjs`);let t=require(`@customafk/react-toolkit/utils`),n=require(`class-variance-authority`),r=require(`react/jsx-runtime`);const i=(0,n.cva)(`scroll-m-20 text-start text-balance text-text-positive-strong tracking-tight transition-colors`,{variants:{level:{h1:`text-3xl leading-tight font-bold md:text-4xl`,h2:`text-2xl leading-tight font-semibold md:text-3xl`,h3:`text-xl leading-snug font-semibold md:text-2xl`,h4:`text-lg leading-snug font-semibold md:text-xl`,h5:`text-base leading-normal font-semibold md:text-lg`}},defaultVariants:{level:`h2`}});Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
2
+ //# sourceMappingURL=heading-tGTqk3pA.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"heading-wUXEbicM.cjs","names":[],"sources":["../packages/components/typography/heading.tsx"],"sourcesContent":["'use client';\n\nimport type { ElementType, ReactNode } from 'react';\nimport { cn } from '@customafk/react-toolkit/utils';\nimport { cva } from 'class-variance-authority';\n\ntype HeadingLevel = 'h1' | 'h2' | 'h3' | 'h4' | 'h5';\n\nexport type HeadingProps = {\n level?: HeadingLevel;\n className?: string;\n children?: ReactNode;\n as?: ElementType;\n};\n\nexport const headingVariants = cva('scroll-m-20 text-start text-balance text-text-positive-strong tracking-tight transition-colors', {\n variants: {\n level: {\n h1: 'text-3xl leading-tight font-bold md:text-4xl',\n h2: 'text-2xl leading-tight font-semibold md:text-3xl',\n h3: 'text-xl leading-snug font-semibold md:text-2xl',\n h4: 'text-lg leading-snug font-semibold md:text-xl',\n h5: 'text-base leading-normal font-semibold md:text-lg',\n },\n },\n defaultVariants: {\n level: 'h2',\n },\n});\n\nexport const Heading = ({ level = 'h3', className, as, children }: HeadingProps) => {\n const Component = as || level;\n\n return (\n <Component data-slot=\"heading\" className={cn(headingVariants({ level }), className)}>\n {children}\n </Component>\n );\n};\n"],"mappings":"6JAeA,MAAa,GAAA,EAAA,EAAA,KAAsB,iGAAkG,CACnI,SAAU,CACR,MAAO,CACL,GAAI,+CACJ,GAAI,mDACJ,GAAI,iDACJ,GAAI,gDACJ,GAAI,oDACL,CACF,CACD,gBAAiB,CACf,MAAO,KACR,CACF,CAAC"}
1
+ {"version":3,"file":"heading-tGTqk3pA.cjs","names":[],"sources":["../packages/components/typography/heading.tsx"],"sourcesContent":["'use client';\n\nimport type { ElementType, ReactNode } from 'react';\nimport { cn } from '@customafk/react-toolkit/utils';\nimport { cva } from 'class-variance-authority';\n\ntype HeadingLevel = 'h1' | 'h2' | 'h3' | 'h4' | 'h5';\n\nexport type HeadingProps = {\n level?: HeadingLevel;\n className?: string;\n children?: ReactNode;\n as?: ElementType;\n};\n\nexport const headingVariants = cva('scroll-m-20 text-start text-balance text-text-positive-strong tracking-tight transition-colors', {\n variants: {\n level: {\n h1: 'text-3xl leading-tight font-bold md:text-4xl',\n h2: 'text-2xl leading-tight font-semibold md:text-3xl',\n h3: 'text-xl leading-snug font-semibold md:text-2xl',\n h4: 'text-lg leading-snug font-semibold md:text-xl',\n h5: 'text-base leading-normal font-semibold md:text-lg',\n },\n },\n defaultVariants: {\n level: 'h2',\n },\n});\n\nexport const Heading = ({ level = 'h3', className, as, children }: HeadingProps) => {\n const Component = as || level;\n\n return (\n <Component data-slot=\"heading\" className={cn(headingVariants({ level }), className)}>\n {children}\n </Component>\n );\n};\n"],"mappings":"6JAeA,MAAa,GAAA,EAAA,EAAA,KAAsB,iGAAkG,CACnI,SAAU,CACR,MAAO,CACL,GAAI,+CACJ,GAAI,mDACJ,GAAI,iDACJ,GAAI,gDACJ,GAAI,oDACL,CACF,CACD,gBAAiB,CACf,MAAO,KACR,CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import{t as e}from"./skeleton-C51IdOfK.mjs";import{AlertCircleIcon as t}from"lucide-react";import{useCallback as n,useRef as r,useState as i}from"react";import{cn as a}from"@customafk/react-toolkit/utils";import{jsx as o,jsxs as s}from"react/jsx-runtime";const c=({src:c,alt:l,width:u,height:d,maxRetries:f=3,retryDelay:p=500,className:m,imageClassName:h,onClick:g})=>{let _=r(null),[v,y]=i(c),[b,x]=i(0),[S,C]=i(!1),[w,T]=i(!1),E=n(()=>{C(!0)},[]),D=n(()=>{if(b<f){T(!1);let e=b+1;x(e),setTimeout(()=>{y(c+`?retry=${Date.now()}&attempt=${e}`)},p*e);return}T(!0),C(!0),y(c)},[f,b,p,c]);return w?o(`div`,{style:{width:u,height:d},className:a(`@container relative inline-block`,m),children:s(`div`,{className:`flex size-full flex-col items-center justify-center gap-y-2 rounded bg-danger-muted shadow-card`,children:[o(t,{className:`@max-[52px]:size-6 size-8 text-danger`}),o(`span`,{className:`@max-[96px]:sr-only text-center text-danger-weak text-xs`,children:`Image failed to load`})]})}):s(`div`,{style:{width:u,height:d},className:a(`relative flex items-center justify-center overflow-hidden rounded`,m),onClick:g,children:[!S&&o(e,{className:`absolute inset-0 flex size-full animate-pulse items-center justify-center`}),o(`img`,{src:v,className:`absolute inset-0 z-0 size-full scale-110 object-cover blur-xl brightness-60`}),o(`img`,{id:v,ref:_,src:v,alt:l,loading:`lazy`,className:a(`relative h-6/5 w-auto object-cover shadow-card transition-opacity duration-300`,S&&`opacity-100`,!S&&`pointer-events-none opacity-0`,h),onLoad:E,onError:D})]})};export{c as t};
2
+ //# sourceMappingURL=image-D7OZ13Ib.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"image-D2U1SBw5.mjs","names":["Image: React.FC<Props>"],"sources":["../packages/components/ui/image.tsx"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\n\nimport { AlertCircleIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Skeleton } from './skeleton';\n\n/** Props for the Image component. */\ntype Props = {\n /** URL of the image to display. */\n src?: string;\n /** Accessible alt text for the image. */\n alt?: string;\n /** Width of the image container (number treated as pixels). */\n width?: number | string;\n /** Height of the image container (number treated as pixels). */\n height?: number | string;\n /** Maximum number of retry attempts on load failure before showing an error state. @default 3 */\n maxRetries?: number;\n /** Base delay in milliseconds between retry attempts (multiplied by the attempt count). @default 500 */\n retryDelay?: number;\n /** Class name applied to the outer container div. */\n className?: string;\n /** Class name applied to the `<img>` element. */\n imageClassName?: string;\n /** Click handler for the image container. */\n onClick?: () => void;\n};\n\n/**\n * A lazy-loading image with an automatic retry mechanism, a blurred background placeholder, a skeleton loader, and an error fallback.\n *\n * @example\n * ```tsx\n * import { Image } from '@customafk/lunas-ui/ui/image';\n *\n * <Image src=\"/hero.jpg\" alt=\"Hero\" width={400} height={300} maxRetries={3} />\n * ```\n */\nexport const Image: React.FC<Props> = ({ src, alt, width, height, maxRetries = 3, retryDelay = 500, className, imageClassName, onClick }) => {\n const imageRef = useRef<HTMLImageElement>(null);\n const [currentSrc, setCurrentSrc] = useState<string | undefined>(src);\n const [retryCount, setRetryCount] = useState<number>(0);\n const [isLoaded, setIsLoaded] = useState<boolean>(false);\n const [hasError, setHasError] = useState<boolean>(false);\n\n const handleLoad = useCallback(() => {\n setIsLoaded(true);\n }, []);\n\n const handleError = useCallback(() => {\n if (retryCount < maxRetries) {\n // imageRef.current?.style.setProperty('display', 'none')\n setHasError(false);\n const newRetryCount = retryCount + 1;\n setRetryCount(newRetryCount);\n\n // Retry with exponential backoff and cache busting\n setTimeout(() => {\n const cacheBuster = `?retry=${Date.now()}&attempt=${newRetryCount}`;\n setCurrentSrc(src + cacheBuster);\n }, retryDelay * newRetryCount);\n return;\n }\n\n setHasError(true);\n setIsLoaded(true);\n setCurrentSrc(src);\n }, [maxRetries, retryCount, retryDelay, src]);\n\n if (hasError) {\n return (\n <div style={{ width, height }} className={cn('@container relative inline-block', className)}>\n <div className=\"flex size-full flex-col items-center justify-center gap-y-2 rounded-md bg-danger-muted shadow-card\">\n <AlertCircleIcon className=\"@max-[52px]:size-6 size-8 text-danger\" />\n <span className=\"@max-[96px]:sr-only text-center text-danger-weak text-xs\">Image failed to load</span>\n </div>\n </div>\n );\n }\n\n return (\n <div style={{ width, height }} className={cn('relative flex items-center justify-center overflow-hidden rounded-md', className)} onClick={onClick}>\n {!isLoaded && <Skeleton className=\"absolute inset-0 flex size-full animate-pulse items-center justify-center\" />}\n <img src={currentSrc} className=\"absolute inset-0 z-0 size-full scale-110 object-cover blur-xl brightness-60\" />\n <img\n id={currentSrc}\n ref={imageRef}\n src={currentSrc}\n alt={alt}\n loading=\"lazy\"\n className={cn(\n 'relative h-6/5 w-auto object-cover shadow-card transition-opacity duration-300',\n isLoaded && 'opacity-100',\n !isLoaded && 'pointer-events-none opacity-0',\n imageClassName\n )}\n onLoad={handleLoad}\n onError={handleError}\n />\n </div>\n );\n};\n"],"mappings":"+PAwCA,MAAaA,GAA0B,CAAE,MAAK,MAAK,QAAO,SAAQ,aAAa,EAAG,aAAa,IAAK,YAAW,iBAAgB,aAAc,CAC3I,IAAM,EAAW,EAAyB,KAAK,CACzC,CAAC,EAAY,GAAiB,EAA6B,EAAI,CAC/D,CAAC,EAAY,GAAiB,EAAiB,EAAE,CACjD,CAAC,EAAU,GAAe,EAAkB,GAAM,CAClD,CAAC,EAAU,GAAe,EAAkB,GAAM,CAElD,EAAa,MAAkB,CACnC,EAAY,GAAK,EAChB,EAAE,CAAC,CAEA,EAAc,MAAkB,CACpC,GAAI,EAAa,EAAY,CAE3B,EAAY,GAAM,CAClB,IAAM,EAAgB,EAAa,EACnC,EAAc,EAAc,CAG5B,eAAiB,CAEf,EAAc,EADM,UAAU,KAAK,KAAK,CAAC,WAAW,IACpB,EAC/B,EAAa,EAAc,CAC9B,OAGF,EAAY,GAAK,CACjB,EAAY,GAAK,CACjB,EAAc,EAAI,EACjB,CAAC,EAAY,EAAY,EAAY,EAAI,CAAC,CAa7C,OAXI,EAEA,EAAC,MAAA,CAAI,MAAO,CAAE,QAAO,SAAQ,CAAE,UAAW,EAAG,mCAAoC,EAAU,UACzF,EAAC,MAAA,CAAI,UAAU,+GACb,EAAC,EAAA,CAAgB,UAAU,wCAAA,CAA0C,CACrE,EAAC,OAAA,CAAK,UAAU,oEAA2D,wBAA2B,CAAA,EAClG,EACF,CAKR,EAAC,MAAA,CAAI,MAAO,CAAE,QAAO,SAAQ,CAAE,UAAW,EAAG,uEAAwE,EAAU,CAAW,oBACvI,CAAC,GAAY,EAAC,EAAA,CAAS,UAAU,4EAAA,CAA8E,CAChH,EAAC,MAAA,CAAI,IAAK,EAAY,UAAU,+EAAgF,CAChH,EAAC,MAAA,CACC,GAAI,EACJ,IAAK,EACL,IAAK,EACA,MACL,QAAQ,OACR,UAAW,EACT,iFACA,GAAY,cACZ,CAAC,GAAY,gCACb,EACD,CACD,OAAQ,EACR,QAAS,GACT,GACE"}
1
+ {"version":3,"file":"image-D7OZ13Ib.mjs","names":["Image: React.FC<Props>"],"sources":["../packages/components/ui/image.tsx"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\n\nimport { AlertCircleIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Skeleton } from './skeleton';\n\n/** Props for the Image component. */\ntype Props = {\n /** URL of the image to display. */\n src?: string;\n /** Accessible alt text for the image. */\n alt?: string;\n /** Width of the image container (number treated as pixels). */\n width?: number | string;\n /** Height of the image container (number treated as pixels). */\n height?: number | string;\n /** Maximum number of retry attempts on load failure before showing an error state. @default 3 */\n maxRetries?: number;\n /** Base delay in milliseconds between retry attempts (multiplied by the attempt count). @default 500 */\n retryDelay?: number;\n /** Class name applied to the outer container div. */\n className?: string;\n /** Class name applied to the `<img>` element. */\n imageClassName?: string;\n /** Click handler for the image container. */\n onClick?: () => void;\n};\n\n/**\n * A lazy-loading image with an automatic retry mechanism, a blurred background placeholder, a skeleton loader, and an error fallback.\n *\n * @example\n * ```tsx\n * import { Image } from '@customafk/lunas-ui/ui/image';\n *\n * <Image src=\"/hero.jpg\" alt=\"Hero\" width={400} height={300} maxRetries={3} />\n * ```\n */\nexport const Image: React.FC<Props> = ({ src, alt, width, height, maxRetries = 3, retryDelay = 500, className, imageClassName, onClick }) => {\n const imageRef = useRef<HTMLImageElement>(null);\n const [currentSrc, setCurrentSrc] = useState<string | undefined>(src);\n const [retryCount, setRetryCount] = useState<number>(0);\n const [isLoaded, setIsLoaded] = useState<boolean>(false);\n const [hasError, setHasError] = useState<boolean>(false);\n\n const handleLoad = useCallback(() => {\n setIsLoaded(true);\n }, []);\n\n const handleError = useCallback(() => {\n if (retryCount < maxRetries) {\n // imageRef.current?.style.setProperty('display', 'none')\n setHasError(false);\n const newRetryCount = retryCount + 1;\n setRetryCount(newRetryCount);\n\n // Retry with exponential backoff and cache busting\n setTimeout(() => {\n const cacheBuster = `?retry=${Date.now()}&attempt=${newRetryCount}`;\n setCurrentSrc(src + cacheBuster);\n }, retryDelay * newRetryCount);\n return;\n }\n\n setHasError(true);\n setIsLoaded(true);\n setCurrentSrc(src);\n }, [maxRetries, retryCount, retryDelay, src]);\n\n if (hasError) {\n return (\n <div style={{ width, height }} className={cn('@container relative inline-block', className)}>\n <div className=\"flex size-full flex-col items-center justify-center gap-y-2 rounded bg-danger-muted shadow-card\">\n <AlertCircleIcon className=\"@max-[52px]:size-6 size-8 text-danger\" />\n <span className=\"@max-[96px]:sr-only text-center text-danger-weak text-xs\">Image failed to load</span>\n </div>\n </div>\n );\n }\n\n return (\n <div style={{ width, height }} className={cn('relative flex items-center justify-center overflow-hidden rounded', className)} onClick={onClick}>\n {!isLoaded && <Skeleton className=\"absolute inset-0 flex size-full animate-pulse items-center justify-center\" />}\n <img src={currentSrc} className=\"absolute inset-0 z-0 size-full scale-110 object-cover blur-xl brightness-60\" />\n <img\n id={currentSrc}\n ref={imageRef}\n src={currentSrc}\n alt={alt}\n loading=\"lazy\"\n className={cn(\n 'relative h-6/5 w-auto object-cover shadow-card transition-opacity duration-300',\n isLoaded && 'opacity-100',\n !isLoaded && 'pointer-events-none opacity-0',\n imageClassName\n )}\n onLoad={handleLoad}\n onError={handleError}\n />\n </div>\n );\n};\n"],"mappings":"+PAwCA,MAAaA,GAA0B,CAAE,MAAK,MAAK,QAAO,SAAQ,aAAa,EAAG,aAAa,IAAK,YAAW,iBAAgB,aAAc,CAC3I,IAAM,EAAW,EAAyB,KAAK,CACzC,CAAC,EAAY,GAAiB,EAA6B,EAAI,CAC/D,CAAC,EAAY,GAAiB,EAAiB,EAAE,CACjD,CAAC,EAAU,GAAe,EAAkB,GAAM,CAClD,CAAC,EAAU,GAAe,EAAkB,GAAM,CAElD,EAAa,MAAkB,CACnC,EAAY,GAAK,EAChB,EAAE,CAAC,CAEA,EAAc,MAAkB,CACpC,GAAI,EAAa,EAAY,CAE3B,EAAY,GAAM,CAClB,IAAM,EAAgB,EAAa,EACnC,EAAc,EAAc,CAG5B,eAAiB,CAEf,EAAc,EADM,UAAU,KAAK,KAAK,CAAC,WAAW,IACpB,EAC/B,EAAa,EAAc,CAC9B,OAGF,EAAY,GAAK,CACjB,EAAY,GAAK,CACjB,EAAc,EAAI,EACjB,CAAC,EAAY,EAAY,EAAY,EAAI,CAAC,CAa7C,OAXI,EAEA,EAAC,MAAA,CAAI,MAAO,CAAE,QAAO,SAAQ,CAAE,UAAW,EAAG,mCAAoC,EAAU,UACzF,EAAC,MAAA,CAAI,UAAU,4GACb,EAAC,EAAA,CAAgB,UAAU,wCAAA,CAA0C,CACrE,EAAC,OAAA,CAAK,UAAU,oEAA2D,wBAA2B,CAAA,EAClG,EACF,CAKR,EAAC,MAAA,CAAI,MAAO,CAAE,QAAO,SAAQ,CAAE,UAAW,EAAG,oEAAqE,EAAU,CAAW,oBACpI,CAAC,GAAY,EAAC,EAAA,CAAS,UAAU,4EAAA,CAA8E,CAChH,EAAC,MAAA,CAAI,IAAK,EAAY,UAAU,+EAAgF,CAChH,EAAC,MAAA,CACC,GAAI,EACJ,IAAK,EACL,IAAK,EACA,MACL,QAAQ,OACR,UAAW,EACT,iFACA,GAAY,cACZ,CAAC,GAAY,gCACb,EACD,CACD,OAAQ,EACR,QAAS,GACT,GACE"}
@@ -0,0 +1,2 @@
1
+ const e=require(`./chunk-350yNsax.cjs`),t=require(`./skeleton-CX1USu1w.cjs`);let n=require(`lucide-react`),r=require(`react`),i=require(`@customafk/react-toolkit/utils`),a=require(`react/jsx-runtime`);const o=({src:e,alt:o,width:s,height:c,maxRetries:l=3,retryDelay:u=500,className:d,imageClassName:f,onClick:p})=>{let m=(0,r.useRef)(null),[h,g]=(0,r.useState)(e),[_,v]=(0,r.useState)(0),[y,b]=(0,r.useState)(!1),[x,S]=(0,r.useState)(!1),C=(0,r.useCallback)(()=>{b(!0)},[]),w=(0,r.useCallback)(()=>{if(_<l){S(!1);let t=_+1;v(t),setTimeout(()=>{g(e+`?retry=${Date.now()}&attempt=${t}`)},u*t);return}S(!0),b(!0),g(e)},[l,_,u,e]);return x?(0,a.jsx)(`div`,{style:{width:s,height:c},className:(0,i.cn)(`@container relative inline-block`,d),children:(0,a.jsxs)(`div`,{className:`flex size-full flex-col items-center justify-center gap-y-2 rounded bg-danger-muted shadow-card`,children:[(0,a.jsx)(n.AlertCircleIcon,{className:`@max-[52px]:size-6 size-8 text-danger`}),(0,a.jsx)(`span`,{className:`@max-[96px]:sr-only text-center text-danger-weak text-xs`,children:`Image failed to load`})]})}):(0,a.jsxs)(`div`,{style:{width:s,height:c},className:(0,i.cn)(`relative flex items-center justify-center overflow-hidden rounded`,d),onClick:p,children:[!y&&(0,a.jsx)(t.t,{className:`absolute inset-0 flex size-full animate-pulse items-center justify-center`}),(0,a.jsx)(`img`,{src:h,className:`absolute inset-0 z-0 size-full scale-110 object-cover blur-xl brightness-60`}),(0,a.jsx)(`img`,{id:h,ref:m,src:h,alt:o,loading:`lazy`,className:(0,i.cn)(`relative h-6/5 w-auto object-cover shadow-card transition-opacity duration-300`,y&&`opacity-100`,!y&&`pointer-events-none opacity-0`,f),onLoad:C,onError:w})]})};Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return o}});
2
+ //# sourceMappingURL=image-W_Yb0xTB.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"image-Y7gCz7uE.cjs","names":["Image: React.FC<Props>","AlertCircleIcon","Skeleton"],"sources":["../packages/components/ui/image.tsx"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\n\nimport { AlertCircleIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Skeleton } from './skeleton';\n\n/** Props for the Image component. */\ntype Props = {\n /** URL of the image to display. */\n src?: string;\n /** Accessible alt text for the image. */\n alt?: string;\n /** Width of the image container (number treated as pixels). */\n width?: number | string;\n /** Height of the image container (number treated as pixels). */\n height?: number | string;\n /** Maximum number of retry attempts on load failure before showing an error state. @default 3 */\n maxRetries?: number;\n /** Base delay in milliseconds between retry attempts (multiplied by the attempt count). @default 500 */\n retryDelay?: number;\n /** Class name applied to the outer container div. */\n className?: string;\n /** Class name applied to the `<img>` element. */\n imageClassName?: string;\n /** Click handler for the image container. */\n onClick?: () => void;\n};\n\n/**\n * A lazy-loading image with an automatic retry mechanism, a blurred background placeholder, a skeleton loader, and an error fallback.\n *\n * @example\n * ```tsx\n * import { Image } from '@customafk/lunas-ui/ui/image';\n *\n * <Image src=\"/hero.jpg\" alt=\"Hero\" width={400} height={300} maxRetries={3} />\n * ```\n */\nexport const Image: React.FC<Props> = ({ src, alt, width, height, maxRetries = 3, retryDelay = 500, className, imageClassName, onClick }) => {\n const imageRef = useRef<HTMLImageElement>(null);\n const [currentSrc, setCurrentSrc] = useState<string | undefined>(src);\n const [retryCount, setRetryCount] = useState<number>(0);\n const [isLoaded, setIsLoaded] = useState<boolean>(false);\n const [hasError, setHasError] = useState<boolean>(false);\n\n const handleLoad = useCallback(() => {\n setIsLoaded(true);\n }, []);\n\n const handleError = useCallback(() => {\n if (retryCount < maxRetries) {\n // imageRef.current?.style.setProperty('display', 'none')\n setHasError(false);\n const newRetryCount = retryCount + 1;\n setRetryCount(newRetryCount);\n\n // Retry with exponential backoff and cache busting\n setTimeout(() => {\n const cacheBuster = `?retry=${Date.now()}&attempt=${newRetryCount}`;\n setCurrentSrc(src + cacheBuster);\n }, retryDelay * newRetryCount);\n return;\n }\n\n setHasError(true);\n setIsLoaded(true);\n setCurrentSrc(src);\n }, [maxRetries, retryCount, retryDelay, src]);\n\n if (hasError) {\n return (\n <div style={{ width, height }} className={cn('@container relative inline-block', className)}>\n <div className=\"flex size-full flex-col items-center justify-center gap-y-2 rounded-md bg-danger-muted shadow-card\">\n <AlertCircleIcon className=\"@max-[52px]:size-6 size-8 text-danger\" />\n <span className=\"@max-[96px]:sr-only text-center text-danger-weak text-xs\">Image failed to load</span>\n </div>\n </div>\n );\n }\n\n return (\n <div style={{ width, height }} className={cn('relative flex items-center justify-center overflow-hidden rounded-md', className)} onClick={onClick}>\n {!isLoaded && <Skeleton className=\"absolute inset-0 flex size-full animate-pulse items-center justify-center\" />}\n <img src={currentSrc} className=\"absolute inset-0 z-0 size-full scale-110 object-cover blur-xl brightness-60\" />\n <img\n id={currentSrc}\n ref={imageRef}\n src={currentSrc}\n alt={alt}\n loading=\"lazy\"\n className={cn(\n 'relative h-6/5 w-auto object-cover shadow-card transition-opacity duration-300',\n isLoaded && 'opacity-100',\n !isLoaded && 'pointer-events-none opacity-0',\n imageClassName\n )}\n onLoad={handleLoad}\n onError={handleError}\n />\n </div>\n );\n};\n"],"mappings":"yMAwCA,MAAaA,GAA0B,CAAE,MAAK,MAAK,QAAO,SAAQ,aAAa,EAAG,aAAa,IAAK,YAAW,iBAAgB,aAAc,CAC3I,IAAM,GAAA,EAAA,EAAA,QAAoC,KAAK,CACzC,CAAC,EAAY,IAAA,EAAA,EAAA,UAA8C,EAAI,CAC/D,CAAC,EAAY,IAAA,EAAA,EAAA,UAAkC,EAAE,CACjD,CAAC,EAAU,IAAA,EAAA,EAAA,UAAiC,GAAM,CAClD,CAAC,EAAU,IAAA,EAAA,EAAA,UAAiC,GAAM,CAElD,GAAA,EAAA,EAAA,iBAA+B,CACnC,EAAY,GAAK,EAChB,EAAE,CAAC,CAEA,GAAA,EAAA,EAAA,iBAAgC,CACpC,GAAI,EAAa,EAAY,CAE3B,EAAY,GAAM,CAClB,IAAM,EAAgB,EAAa,EACnC,EAAc,EAAc,CAG5B,eAAiB,CAEf,EAAc,EADM,UAAU,KAAK,KAAK,CAAC,WAAW,IACpB,EAC/B,EAAa,EAAc,CAC9B,OAGF,EAAY,GAAK,CACjB,EAAY,GAAK,CACjB,EAAc,EAAI,EACjB,CAAC,EAAY,EAAY,EAAY,EAAI,CAAC,CAa7C,OAXI,GAEA,EAAA,EAAA,KAAC,MAAA,CAAI,MAAO,CAAE,QAAO,SAAQ,CAAE,WAAA,EAAA,EAAA,IAAc,mCAAoC,EAAU,WACzF,EAAA,EAAA,MAAC,MAAA,CAAI,UAAU,gHACb,EAAA,EAAA,KAACC,EAAAA,gBAAAA,CAAgB,UAAU,wCAAA,CAA0C,EACrE,EAAA,EAAA,KAAC,OAAA,CAAK,UAAU,oEAA2D,wBAA2B,CAAA,EAClG,EACF,EAKR,EAAA,EAAA,MAAC,MAAA,CAAI,MAAO,CAAE,QAAO,SAAQ,CAAE,WAAA,EAAA,EAAA,IAAc,uEAAwE,EAAU,CAAW,oBACvI,CAAC,IAAY,EAAA,EAAA,KAACC,EAAAA,EAAAA,CAAS,UAAU,4EAAA,CAA8E,EAChH,EAAA,EAAA,KAAC,MAAA,CAAI,IAAK,EAAY,UAAU,+EAAgF,EAChH,EAAA,EAAA,KAAC,MAAA,CACC,GAAI,EACJ,IAAK,EACL,IAAK,EACA,MACL,QAAQ,OACR,WAAA,EAAA,EAAA,IACE,iFACA,GAAY,cACZ,CAAC,GAAY,gCACb,EACD,CACD,OAAQ,EACR,QAAS,GACT,GACE"}
1
+ {"version":3,"file":"image-W_Yb0xTB.cjs","names":["Image: React.FC<Props>","AlertCircleIcon","Skeleton"],"sources":["../packages/components/ui/image.tsx"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\n\nimport { AlertCircleIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Skeleton } from './skeleton';\n\n/** Props for the Image component. */\ntype Props = {\n /** URL of the image to display. */\n src?: string;\n /** Accessible alt text for the image. */\n alt?: string;\n /** Width of the image container (number treated as pixels). */\n width?: number | string;\n /** Height of the image container (number treated as pixels). */\n height?: number | string;\n /** Maximum number of retry attempts on load failure before showing an error state. @default 3 */\n maxRetries?: number;\n /** Base delay in milliseconds between retry attempts (multiplied by the attempt count). @default 500 */\n retryDelay?: number;\n /** Class name applied to the outer container div. */\n className?: string;\n /** Class name applied to the `<img>` element. */\n imageClassName?: string;\n /** Click handler for the image container. */\n onClick?: () => void;\n};\n\n/**\n * A lazy-loading image with an automatic retry mechanism, a blurred background placeholder, a skeleton loader, and an error fallback.\n *\n * @example\n * ```tsx\n * import { Image } from '@customafk/lunas-ui/ui/image';\n *\n * <Image src=\"/hero.jpg\" alt=\"Hero\" width={400} height={300} maxRetries={3} />\n * ```\n */\nexport const Image: React.FC<Props> = ({ src, alt, width, height, maxRetries = 3, retryDelay = 500, className, imageClassName, onClick }) => {\n const imageRef = useRef<HTMLImageElement>(null);\n const [currentSrc, setCurrentSrc] = useState<string | undefined>(src);\n const [retryCount, setRetryCount] = useState<number>(0);\n const [isLoaded, setIsLoaded] = useState<boolean>(false);\n const [hasError, setHasError] = useState<boolean>(false);\n\n const handleLoad = useCallback(() => {\n setIsLoaded(true);\n }, []);\n\n const handleError = useCallback(() => {\n if (retryCount < maxRetries) {\n // imageRef.current?.style.setProperty('display', 'none')\n setHasError(false);\n const newRetryCount = retryCount + 1;\n setRetryCount(newRetryCount);\n\n // Retry with exponential backoff and cache busting\n setTimeout(() => {\n const cacheBuster = `?retry=${Date.now()}&attempt=${newRetryCount}`;\n setCurrentSrc(src + cacheBuster);\n }, retryDelay * newRetryCount);\n return;\n }\n\n setHasError(true);\n setIsLoaded(true);\n setCurrentSrc(src);\n }, [maxRetries, retryCount, retryDelay, src]);\n\n if (hasError) {\n return (\n <div style={{ width, height }} className={cn('@container relative inline-block', className)}>\n <div className=\"flex size-full flex-col items-center justify-center gap-y-2 rounded bg-danger-muted shadow-card\">\n <AlertCircleIcon className=\"@max-[52px]:size-6 size-8 text-danger\" />\n <span className=\"@max-[96px]:sr-only text-center text-danger-weak text-xs\">Image failed to load</span>\n </div>\n </div>\n );\n }\n\n return (\n <div style={{ width, height }} className={cn('relative flex items-center justify-center overflow-hidden rounded', className)} onClick={onClick}>\n {!isLoaded && <Skeleton className=\"absolute inset-0 flex size-full animate-pulse items-center justify-center\" />}\n <img src={currentSrc} className=\"absolute inset-0 z-0 size-full scale-110 object-cover blur-xl brightness-60\" />\n <img\n id={currentSrc}\n ref={imageRef}\n src={currentSrc}\n alt={alt}\n loading=\"lazy\"\n className={cn(\n 'relative h-6/5 w-auto object-cover shadow-card transition-opacity duration-300',\n isLoaded && 'opacity-100',\n !isLoaded && 'pointer-events-none opacity-0',\n imageClassName\n )}\n onLoad={handleLoad}\n onError={handleError}\n />\n </div>\n );\n};\n"],"mappings":"yMAwCA,MAAaA,GAA0B,CAAE,MAAK,MAAK,QAAO,SAAQ,aAAa,EAAG,aAAa,IAAK,YAAW,iBAAgB,aAAc,CAC3I,IAAM,GAAA,EAAA,EAAA,QAAoC,KAAK,CACzC,CAAC,EAAY,IAAA,EAAA,EAAA,UAA8C,EAAI,CAC/D,CAAC,EAAY,IAAA,EAAA,EAAA,UAAkC,EAAE,CACjD,CAAC,EAAU,IAAA,EAAA,EAAA,UAAiC,GAAM,CAClD,CAAC,EAAU,IAAA,EAAA,EAAA,UAAiC,GAAM,CAElD,GAAA,EAAA,EAAA,iBAA+B,CACnC,EAAY,GAAK,EAChB,EAAE,CAAC,CAEA,GAAA,EAAA,EAAA,iBAAgC,CACpC,GAAI,EAAa,EAAY,CAE3B,EAAY,GAAM,CAClB,IAAM,EAAgB,EAAa,EACnC,EAAc,EAAc,CAG5B,eAAiB,CAEf,EAAc,EADM,UAAU,KAAK,KAAK,CAAC,WAAW,IACpB,EAC/B,EAAa,EAAc,CAC9B,OAGF,EAAY,GAAK,CACjB,EAAY,GAAK,CACjB,EAAc,EAAI,EACjB,CAAC,EAAY,EAAY,EAAY,EAAI,CAAC,CAa7C,OAXI,GAEA,EAAA,EAAA,KAAC,MAAA,CAAI,MAAO,CAAE,QAAO,SAAQ,CAAE,WAAA,EAAA,EAAA,IAAc,mCAAoC,EAAU,WACzF,EAAA,EAAA,MAAC,MAAA,CAAI,UAAU,6GACb,EAAA,EAAA,KAACC,EAAAA,gBAAAA,CAAgB,UAAU,wCAAA,CAA0C,EACrE,EAAA,EAAA,KAAC,OAAA,CAAK,UAAU,oEAA2D,wBAA2B,CAAA,EAClG,EACF,EAKR,EAAA,EAAA,MAAC,MAAA,CAAI,MAAO,CAAE,QAAO,SAAQ,CAAE,WAAA,EAAA,EAAA,IAAc,oEAAqE,EAAU,CAAW,oBACpI,CAAC,IAAY,EAAA,EAAA,KAACC,EAAAA,EAAAA,CAAS,UAAU,4EAAA,CAA8E,EAChH,EAAA,EAAA,KAAC,MAAA,CAAI,IAAK,EAAY,UAAU,+EAAgF,EAChH,EAAA,EAAA,KAAC,MAAA,CACC,GAAI,EACJ,IAAK,EACL,IAAK,EACA,MACL,QAAQ,OACR,WAAA,EAAA,EAAA,IACE,iFACA,GAAY,cACZ,CAAC,GAAY,gCACb,EACD,CACD,OAAQ,EACR,QAAS,GACT,GACE"}
@@ -1,11 +1,33 @@
1
1
  import { t as AnyEntity } from "./types-Cc_mLRAn.cjs";
2
- import { t as Input } from "./input-BAr0l-oA.cjs";
2
+ import { t as Input } from "./input-DvkEND5a.cjs";
3
3
  import * as react642 from "react";
4
4
  import { AccessorKeyColumnDef, CellContext, Column, ColumnPinningPosition, ColumnPinningState, Header, HeaderGroup, Row, RowSelectionState, Table } from "@tanstack/react-table";
5
5
  import { VirtualItem, Virtualizer } from "@tanstack/react-virtual";
6
6
 
7
+ //#region packages/components/features/tables/components/atoms/avatar-name-display.d.ts
8
+ /** Props for the {@link UITableAvatarNameDisplay} component. */
9
+ type Props$8 = {
10
+ /** Display name shown beside the avatar. */
11
+ name: string;
12
+ /** Optional image URL for the avatar. Falls back to a color-hashed icon when absent. */
13
+ avatarUrl?: string;
14
+ /** Seed for deterministic avatar background color generation. Defaults to `name`. */
15
+ uuid?: string;
16
+ };
17
+ /**
18
+ * Renders a circular avatar paired with a name in a compact horizontal row.
19
+ * When no `avatarUrl` is provided the fallback uses a deterministic background
20
+ * color derived from `uuid` (or `name`) via `colorHashLight`, matching the
21
+ * style of `UserDataDisplay`.
22
+ *
23
+ * @example
24
+ * import { UITableAvatarNameDisplay } from '@customafk/lunas-ui/features/tables';
25
+ *
26
+ * <UITableAvatarNameDisplay name="Jane Smith" uuid="user-42" avatarUrl="/avatars/jane.png" />
27
+ */
28
+ declare const UITableAvatarNameDisplay: React.FC<Props$8>;
29
+ //#endregion
7
30
  //#region packages/components/features/tables/components/atoms/badge-display.d.ts
8
-
9
31
  /**
10
32
  * Renders a pill-shaped badge for a table cell that optionally supports a click
11
33
  * action and an inline remove button; falls back to {@link UITableEmpty} when
@@ -646,6 +668,10 @@ type TTableContext<TData extends RowData<TData>> = {
646
668
  summary?: SummaryItem[];
647
669
  /** When `true`, a toggle button appears in `UITableTooltipActions` to open `UITableAnalysisPanel`. */
648
670
  showAnalysisPanel?: boolean;
671
+ /** Optional subtitle rendered below the title in `UITableTooltip`. */
672
+ description?: string;
673
+ /** Optional React node rendered on the right side of the `UITableTooltip` header row (e.g. action buttons). */
674
+ headerActions?: React.ReactNode;
649
675
  };
650
676
  /** Context value provided by `UITableInnerWrapperProvider`. */
651
677
  type TTableInnerWrapperContext = {
@@ -778,6 +804,10 @@ type TableProviderProps<TData extends RowData<TData>, TKey extends keyof TData =
778
804
  summary?: SummaryItem[];
779
805
  /** When `true`, a toggle button appears in `UITableTooltipActions` to open `UITableAnalysisPanel`. */
780
806
  showAnalysisPanel?: boolean;
807
+ /** Optional subtitle rendered below the title in `UITableTooltip`. */
808
+ description?: string;
809
+ /** Optional React node rendered on the right side of the `UITableTooltip` header row (e.g. action buttons). */
810
+ headerActions?: React.ReactNode;
781
811
  };
782
812
  type FilterType = 'tag' | 'single-tag' | 'date-range' | 'number' | 'text' | 'boolean';
783
813
  /** A selectable option for tag/enum filters. */
@@ -986,6 +1016,8 @@ declare const UITableProvider: <TData extends RowData<TData> = RowData<AnyEntity
986
1016
  onFilterChange,
987
1017
  summary,
988
1018
  showAnalysisPanel,
1019
+ description,
1020
+ headerActions,
989
1021
  children
990
1022
  }: React.PropsWithChildren<TableProviderProps<TData, TKey, TColumns>>) => react642.JSX.Element;
991
1023
  //#endregion
@@ -1057,5 +1089,5 @@ declare const UITableTooltipActions: React.FC<{
1057
1089
  */
1058
1090
  declare const UITableTooltip: React.FC<React.PropsWithChildren>;
1059
1091
  //#endregion
1060
- export { TUITableColumn as $, CsvCell as A, UITableBadgeDisplay as At, TTableAnalysisContext as B, UITableCellActions as C, UITableMoreButton as Ct, BooleanFilterValue as D, UITableDateDisplay as Dt, ActiveFilter as E, UITableDescriptionDisplay as Et, FilterValue as F, TTableInnerTableContext as G, TTableContext as H, NumberFilterValue as I, TTableVirtualizerContext as J, TTableInnerWrapperContext as K, RowData as L, FilterDefinition as M, FilterOption as N, ColumnAggregation as O, UITableCurrencyDisplay as Ot, FilterType as P, TUITableCellSelect as Q, SingleTagFilterValue as R, UITableCellSelect as S, UITableNameDisplay as St, UITableBody as T, UITableEmailDisplay as Tt, TTableFilterContext as U, TTableBodyContext as V, TTableHeadRowContext as W, TUITableCell as X, TUITableBody as Y, TUITableCellActions as Z, UITableHeadCell as _, UITableStatisticDisplay as _t, UITableProvider as a, TUITableHeadCellSelect as at, UITableFooter as b, UITablePhoneNumberDisplay as bt, UITableContainer as c, TUITableInnerWrapper as ct, UITableLoadMore as d, TUITableWrapper as dt, TUITableEmptyDisplay as et, UITableInnerWrapper as f, TableProviderProps as ft, UITableHeadCellOption as g, UITableStatusDisplay as gt, UITableHeadCellSelect as h, UITableUserDataDisplay as ht, UITableSummaryBar as i, TUITableHeadCellOption as it, DateRangeFilterValue as j, ColumnAggregationType as k, UITableBooleanDisplay as kt, UITableWrapper as l, TUITableLoadMore as lt, UITableHeadRow as m, TextFilterValue as mt, UITableTooltipActions as n, TUITableHead as nt, UITableFilter as o, TUITableHeadRow as ot, UITableInnerTable as p, TagFilterValue as pt, TTableRowContext as q, UITableTooltipFilter as r, TUITableHeadCell as rt, UITableAnalysisPanel as s, TUITableInnerTable as st, UITableTooltip as t, TUITableFooter as tt, UITableRow as u, TUITableRow as ut, UITableHead as v, UITableRemoveButton as vt, UITableCell as w, UITableListDisplay as wt, UITableEmptyDisplay as x, UITablePermalink as xt, UITableFooterRow as y, UITableProgressDisplay as yt, SummaryItem as z };
1061
- //# sourceMappingURL=index-C6nrbQ-E.d.cts.map
1092
+ export { TUITableColumn as $, CsvCell as A, UITableBadgeDisplay as At, TTableAnalysisContext as B, UITableCellActions as C, UITableMoreButton as Ct, BooleanFilterValue as D, UITableDateDisplay as Dt, ActiveFilter as E, UITableDescriptionDisplay as Et, FilterValue as F, TTableInnerTableContext as G, TTableContext as H, NumberFilterValue as I, TTableVirtualizerContext as J, TTableInnerWrapperContext as K, RowData as L, FilterDefinition as M, FilterOption as N, ColumnAggregation as O, UITableCurrencyDisplay as Ot, FilterType as P, TUITableCellSelect as Q, SingleTagFilterValue as R, UITableCellSelect as S, UITableNameDisplay as St, UITableBody as T, UITableEmailDisplay as Tt, TTableFilterContext as U, TTableBodyContext as V, TTableHeadRowContext as W, TUITableCell as X, TUITableBody as Y, TUITableCellActions as Z, UITableHeadCell as _, UITableStatisticDisplay as _t, UITableProvider as a, TUITableHeadCellSelect as at, UITableFooter as b, UITablePhoneNumberDisplay as bt, UITableContainer as c, TUITableInnerWrapper as ct, UITableLoadMore as d, TUITableWrapper as dt, TUITableEmptyDisplay as et, UITableInnerWrapper as f, TableProviderProps as ft, UITableHeadCellOption as g, UITableStatusDisplay as gt, UITableHeadCellSelect as h, UITableUserDataDisplay as ht, UITableSummaryBar as i, TUITableHeadCellOption as it, DateRangeFilterValue as j, UITableAvatarNameDisplay as jt, ColumnAggregationType as k, UITableBooleanDisplay as kt, UITableWrapper as l, TUITableLoadMore as lt, UITableHeadRow as m, TextFilterValue as mt, UITableTooltipActions as n, TUITableHead as nt, UITableFilter as o, TUITableHeadRow as ot, UITableInnerTable as p, TagFilterValue as pt, TTableRowContext as q, UITableTooltipFilter as r, TUITableHeadCell as rt, UITableAnalysisPanel as s, TUITableInnerTable as st, UITableTooltip as t, TUITableFooter as tt, UITableRow as u, TUITableRow as ut, UITableHead as v, UITableRemoveButton as vt, UITableCell as w, UITableListDisplay as wt, UITableEmptyDisplay as x, UITablePermalink as xt, UITableFooterRow as y, UITableProgressDisplay as yt, SummaryItem as z };
1093
+ //# sourceMappingURL=index-9eog5ilY.d.cts.map
@@ -1,11 +1,33 @@
1
1
  import { t as AnyEntity } from "./types-YLu40dXY.mjs";
2
- import { t as Input } from "./input-DXO2mTgG.mjs";
3
- import * as react640 from "react";
2
+ import { t as Input } from "./input-BFtFMzRG.mjs";
3
+ import * as react642 from "react";
4
4
  import { AccessorKeyColumnDef, CellContext, Column, ColumnPinningPosition, ColumnPinningState, Header, HeaderGroup, Row, RowSelectionState, Table } from "@tanstack/react-table";
5
5
  import { VirtualItem, Virtualizer } from "@tanstack/react-virtual";
6
6
 
7
+ //#region packages/components/features/tables/components/atoms/avatar-name-display.d.ts
8
+ /** Props for the {@link UITableAvatarNameDisplay} component. */
9
+ type Props$8 = {
10
+ /** Display name shown beside the avatar. */
11
+ name: string;
12
+ /** Optional image URL for the avatar. Falls back to a color-hashed icon when absent. */
13
+ avatarUrl?: string;
14
+ /** Seed for deterministic avatar background color generation. Defaults to `name`. */
15
+ uuid?: string;
16
+ };
17
+ /**
18
+ * Renders a circular avatar paired with a name in a compact horizontal row.
19
+ * When no `avatarUrl` is provided the fallback uses a deterministic background
20
+ * color derived from `uuid` (or `name`) via `colorHashLight`, matching the
21
+ * style of `UserDataDisplay`.
22
+ *
23
+ * @example
24
+ * import { UITableAvatarNameDisplay } from '@customafk/lunas-ui/features/tables';
25
+ *
26
+ * <UITableAvatarNameDisplay name="Jane Smith" uuid="user-42" avatarUrl="/avatars/jane.png" />
27
+ */
28
+ declare const UITableAvatarNameDisplay: React.FC<Props$8>;
29
+ //#endregion
7
30
  //#region packages/components/features/tables/components/atoms/badge-display.d.ts
8
-
9
31
  /**
10
32
  * Renders a pill-shaped badge for a table cell that optionally supports a click
11
33
  * action and an inline remove button; falls back to {@link UITableEmpty} when
@@ -64,14 +86,14 @@ type Props$7 = {
64
86
  *
65
87
  * <UITableCurrencyDisplay value={1234.5} currency="USD" colorize />
66
88
  */
67
- declare const UITableCurrencyDisplay: react640.MemoExoticComponent<({
89
+ declare const UITableCurrencyDisplay: react642.MemoExoticComponent<({
68
90
  value,
69
91
  currency,
70
92
  locale,
71
93
  display,
72
94
  size,
73
95
  colorize
74
- }: Props$7) => react640.JSX.Element>;
96
+ }: Props$7) => react642.JSX.Element>;
75
97
  //#endregion
76
98
  //#region packages/components/features/tables/components/atoms/date-display.d.ts
77
99
  /** Props for the {@link UITableDateDisplay} component. */
@@ -261,12 +283,12 @@ type Props$3 = {
261
283
  *
262
284
  * <UITableProgressDisplay value={75} />
263
285
  */
264
- declare const UITableProgressDisplay: react640.MemoExoticComponent<({
286
+ declare const UITableProgressDisplay: react642.MemoExoticComponent<({
265
287
  value,
266
288
  showLabel,
267
289
  successThreshold,
268
290
  warningThreshold
269
- }: Props$3) => react640.JSX.Element>;
291
+ }: Props$3) => react642.JSX.Element>;
270
292
  //#endregion
271
293
  //#region packages/components/features/tables/components/atoms/remove-button.d.ts
272
294
  /**
@@ -320,7 +342,7 @@ type Props$2 = {
320
342
  *
321
343
  * <UITableStatisticDisplay value={1234567.89} precision={2} prefix="$" size="md" />
322
344
  */
323
- declare const UITableStatisticDisplay: react640.MemoExoticComponent<({
345
+ declare const UITableStatisticDisplay: react642.MemoExoticComponent<({
324
346
  decimalSeparator,
325
347
  groupSeparator,
326
348
  prefix: Prefix,
@@ -330,7 +352,7 @@ declare const UITableStatisticDisplay: react640.MemoExoticComponent<({
330
352
  showTrailingZeros,
331
353
  size,
332
354
  value
333
- }: Props$2) => react640.JSX.Element>;
355
+ }: Props$2) => react642.JSX.Element>;
334
356
  //#endregion
335
357
  //#region packages/components/features/tables/components/atoms/status-display.d.ts
336
358
  type BadgeColor = 'primary' | 'secondary' | 'muted' | 'accent' | 'info' | 'success' | 'warning' | 'danger';
@@ -646,6 +668,10 @@ type TTableContext<TData extends RowData<TData>> = {
646
668
  summary?: SummaryItem[];
647
669
  /** When `true`, a toggle button appears in `UITableTooltipActions` to open `UITableAnalysisPanel`. */
648
670
  showAnalysisPanel?: boolean;
671
+ /** Optional subtitle rendered below the title in `UITableTooltip`. */
672
+ description?: string;
673
+ /** Optional React node rendered on the right side of the `UITableTooltip` header row (e.g. action buttons). */
674
+ headerActions?: React.ReactNode;
649
675
  };
650
676
  /** Context value provided by `UITableInnerWrapperProvider`. */
651
677
  type TTableInnerWrapperContext = {
@@ -778,6 +804,10 @@ type TableProviderProps<TData extends RowData<TData>, TKey extends keyof TData =
778
804
  summary?: SummaryItem[];
779
805
  /** When `true`, a toggle button appears in `UITableTooltipActions` to open `UITableAnalysisPanel`. */
780
806
  showAnalysisPanel?: boolean;
807
+ /** Optional subtitle rendered below the title in `UITableTooltip`. */
808
+ description?: string;
809
+ /** Optional React node rendered on the right side of the `UITableTooltip` header row (e.g. action buttons). */
810
+ headerActions?: React.ReactNode;
781
811
  };
782
812
  type FilterType = 'tag' | 'single-tag' | 'date-range' | 'number' | 'text' | 'boolean';
783
813
  /** A selectable option for tag/enum filters. */
@@ -843,61 +873,61 @@ type TTableFilterContext = {
843
873
  };
844
874
  //#endregion
845
875
  //#region packages/components/features/tables/components/commons/body.d.ts
846
- declare const UITableBody: react640.NamedExoticComponent<TUITableBody>;
876
+ declare const UITableBody: react642.NamedExoticComponent<TUITableBody>;
847
877
  //#endregion
848
878
  //#region packages/components/features/tables/components/commons/cell.d.ts
849
- declare const UITableCell: react640.NamedExoticComponent<TUITableCell>;
879
+ declare const UITableCell: react642.NamedExoticComponent<TUITableCell>;
850
880
  //#endregion
851
881
  //#region packages/components/features/tables/components/commons/cell-actions.d.ts
852
- declare const UITableCellActions: react640.NamedExoticComponent<TUITableCellActions>;
882
+ declare const UITableCellActions: react642.NamedExoticComponent<TUITableCellActions>;
853
883
  //#endregion
854
884
  //#region packages/components/features/tables/components/commons/cell-select.d.ts
855
- declare const UITableCellSelect: react640.NamedExoticComponent<TUITableCellSelect>;
885
+ declare const UITableCellSelect: react642.NamedExoticComponent<TUITableCellSelect>;
856
886
  //#endregion
857
887
  //#region packages/components/features/tables/components/commons/empty-display.d.ts
858
- declare const UITableEmptyDisplay: react640.NamedExoticComponent<TUITableEmptyDisplay>;
888
+ declare const UITableEmptyDisplay: react642.NamedExoticComponent<TUITableEmptyDisplay>;
859
889
  //#endregion
860
890
  //#region packages/components/features/tables/components/commons/footer.d.ts
861
- declare const UITableFooter: react640.NamedExoticComponent<TUITableFooter>;
891
+ declare const UITableFooter: react642.NamedExoticComponent<TUITableFooter>;
862
892
  //#endregion
863
893
  //#region packages/components/features/tables/components/commons/footer-row.d.ts
864
- declare const UITableFooterRow: react640.MemoExoticComponent<() => react640.JSX.Element | null>;
894
+ declare const UITableFooterRow: react642.MemoExoticComponent<() => react642.JSX.Element | null>;
865
895
  //#endregion
866
896
  //#region packages/components/features/tables/components/commons/head.d.ts
867
- declare const UITableHead: react640.NamedExoticComponent<TUITableHead>;
897
+ declare const UITableHead: react642.NamedExoticComponent<TUITableHead>;
868
898
  //#endregion
869
899
  //#region packages/components/features/tables/components/commons/head-cell.d.ts
870
- declare const UITableHeadCell: react640.NamedExoticComponent<TUITableHeadCell>;
900
+ declare const UITableHeadCell: react642.NamedExoticComponent<TUITableHeadCell>;
871
901
  //#endregion
872
902
  //#region packages/components/features/tables/components/commons/head-cell-option.d.ts
873
- declare const UITableHeadCellOption: react640.NamedExoticComponent<TUITableHeadCellOption>;
903
+ declare const UITableHeadCellOption: react642.NamedExoticComponent<TUITableHeadCellOption>;
874
904
  //#endregion
875
905
  //#region packages/components/features/tables/components/commons/head-cell-select.d.ts
876
- declare const UITableHeadCellSelect: react640.NamedExoticComponent<TUITableHeadCellSelect>;
906
+ declare const UITableHeadCellSelect: react642.NamedExoticComponent<TUITableHeadCellSelect>;
877
907
  //#endregion
878
908
  //#region packages/components/features/tables/components/commons/head-row.d.ts
879
- declare const UITableHeadRow: react640.NamedExoticComponent<TUITableHeadRow>;
909
+ declare const UITableHeadRow: react642.NamedExoticComponent<TUITableHeadRow>;
880
910
  //#endregion
881
911
  //#region packages/components/features/tables/components/commons/inner-table.d.ts
882
- declare const UITableInnerTable: react640.NamedExoticComponent<TUITableInnerTable>;
912
+ declare const UITableInnerTable: react642.NamedExoticComponent<TUITableInnerTable>;
883
913
  //#endregion
884
914
  //#region packages/components/features/tables/components/commons/inner-wrapper.d.ts
885
- declare const UITableInnerWrapper: react640.NamedExoticComponent<TUITableInnerWrapper>;
915
+ declare const UITableInnerWrapper: react642.NamedExoticComponent<TUITableInnerWrapper>;
886
916
  //#endregion
887
917
  //#region packages/components/features/tables/components/commons/load-more.d.ts
888
- declare const UITableLoadMore: react640.NamedExoticComponent<TUITableLoadMore>;
918
+ declare const UITableLoadMore: react642.NamedExoticComponent<TUITableLoadMore>;
889
919
  //#endregion
890
920
  //#region packages/components/features/tables/components/commons/row.d.ts
891
- declare const UITableRow: react640.NamedExoticComponent<TUITableRow>;
921
+ declare const UITableRow: react642.NamedExoticComponent<TUITableRow>;
892
922
  //#endregion
893
923
  //#region packages/components/features/tables/components/commons/wrapper.d.ts
894
- declare const UITableWrapper: react640.NamedExoticComponent<TUITableWrapper>;
924
+ declare const UITableWrapper: react642.NamedExoticComponent<TUITableWrapper>;
895
925
  //#endregion
896
926
  //#region packages/components/features/tables/components/table.d.ts
897
927
  declare const UITableContainer: React.FC<React.PropsWithChildren>;
898
928
  //#endregion
899
929
  //#region packages/components/features/tables/components/table/analysis-panel.d.ts
900
- declare const UITableAnalysisPanel: react640.MemoExoticComponent<() => react640.JSX.Element>;
930
+ declare const UITableAnalysisPanel: react642.MemoExoticComponent<() => react642.JSX.Element>;
901
931
  //#endregion
902
932
  //#region packages/components/features/tables/components/table/filter.d.ts
903
933
  /**
@@ -928,7 +958,7 @@ declare const UITableAnalysisPanel: react640.MemoExoticComponent<() => react640.
928
958
  * </UITableProvider>
929
959
  * ```
930
960
  */
931
- declare const UITableFilter: () => react640.JSX.Element;
961
+ declare const UITableFilter: () => react642.JSX.Element;
932
962
  //#endregion
933
963
  //#region packages/components/features/tables/components/table/provider.d.ts
934
964
  /**
@@ -986,11 +1016,13 @@ declare const UITableProvider: <TData extends RowData<TData> = RowData<AnyEntity
986
1016
  onFilterChange,
987
1017
  summary,
988
1018
  showAnalysisPanel,
1019
+ description,
1020
+ headerActions,
989
1021
  children
990
- }: React.PropsWithChildren<TableProviderProps<TData, TKey, TColumns>>) => react640.JSX.Element;
1022
+ }: React.PropsWithChildren<TableProviderProps<TData, TKey, TColumns>>) => react642.JSX.Element;
991
1023
  //#endregion
992
1024
  //#region packages/components/features/tables/components/table/summary-bar.d.ts
993
- declare const UITableSummaryBar: react640.MemoExoticComponent<() => react640.JSX.Element | null>;
1025
+ declare const UITableSummaryBar: react642.MemoExoticComponent<() => react642.JSX.Element | null>;
994
1026
  //#endregion
995
1027
  //#region packages/components/features/tables/components/table/tooltip.d.ts
996
1028
  /**
@@ -1057,5 +1089,5 @@ declare const UITableTooltipActions: React.FC<{
1057
1089
  */
1058
1090
  declare const UITableTooltip: React.FC<React.PropsWithChildren>;
1059
1091
  //#endregion
1060
- export { TUITableColumn as $, CsvCell as A, UITableBadgeDisplay as At, TTableAnalysisContext as B, UITableCellActions as C, UITableMoreButton as Ct, BooleanFilterValue as D, UITableDateDisplay as Dt, ActiveFilter as E, UITableDescriptionDisplay as Et, FilterValue as F, TTableInnerTableContext as G, TTableContext as H, NumberFilterValue as I, TTableVirtualizerContext as J, TTableInnerWrapperContext as K, RowData as L, FilterDefinition as M, FilterOption as N, ColumnAggregation as O, UITableCurrencyDisplay as Ot, FilterType as P, TUITableCellSelect as Q, SingleTagFilterValue as R, UITableCellSelect as S, UITableNameDisplay as St, UITableBody as T, UITableEmailDisplay as Tt, TTableFilterContext as U, TTableBodyContext as V, TTableHeadRowContext as W, TUITableCell as X, TUITableBody as Y, TUITableCellActions as Z, UITableHeadCell as _, UITableStatisticDisplay as _t, UITableProvider as a, TUITableHeadCellSelect as at, UITableFooter as b, UITablePhoneNumberDisplay as bt, UITableContainer as c, TUITableInnerWrapper as ct, UITableLoadMore as d, TUITableWrapper as dt, TUITableEmptyDisplay as et, UITableInnerWrapper as f, TableProviderProps as ft, UITableHeadCellOption as g, UITableStatusDisplay as gt, UITableHeadCellSelect as h, UITableUserDataDisplay as ht, UITableSummaryBar as i, TUITableHeadCellOption as it, DateRangeFilterValue as j, ColumnAggregationType as k, UITableBooleanDisplay as kt, UITableWrapper as l, TUITableLoadMore as lt, UITableHeadRow as m, TextFilterValue as mt, UITableTooltipActions as n, TUITableHead as nt, UITableFilter as o, TUITableHeadRow as ot, UITableInnerTable as p, TagFilterValue as pt, TTableRowContext as q, UITableTooltipFilter as r, TUITableHeadCell as rt, UITableAnalysisPanel as s, TUITableInnerTable as st, UITableTooltip as t, TUITableFooter as tt, UITableRow as u, TUITableRow as ut, UITableHead as v, UITableRemoveButton as vt, UITableCell as w, UITableListDisplay as wt, UITableEmptyDisplay as x, UITablePermalink as xt, UITableFooterRow as y, UITableProgressDisplay as yt, SummaryItem as z };
1061
- //# sourceMappingURL=index-CJoz7sMc.d.mts.map
1092
+ export { TUITableColumn as $, CsvCell as A, UITableBadgeDisplay as At, TTableAnalysisContext as B, UITableCellActions as C, UITableMoreButton as Ct, BooleanFilterValue as D, UITableDateDisplay as Dt, ActiveFilter as E, UITableDescriptionDisplay as Et, FilterValue as F, TTableInnerTableContext as G, TTableContext as H, NumberFilterValue as I, TTableVirtualizerContext as J, TTableInnerWrapperContext as K, RowData as L, FilterDefinition as M, FilterOption as N, ColumnAggregation as O, UITableCurrencyDisplay as Ot, FilterType as P, TUITableCellSelect as Q, SingleTagFilterValue as R, UITableCellSelect as S, UITableNameDisplay as St, UITableBody as T, UITableEmailDisplay as Tt, TTableFilterContext as U, TTableBodyContext as V, TTableHeadRowContext as W, TUITableCell as X, TUITableBody as Y, TUITableCellActions as Z, UITableHeadCell as _, UITableStatisticDisplay as _t, UITableProvider as a, TUITableHeadCellSelect as at, UITableFooter as b, UITablePhoneNumberDisplay as bt, UITableContainer as c, TUITableInnerWrapper as ct, UITableLoadMore as d, TUITableWrapper as dt, TUITableEmptyDisplay as et, UITableInnerWrapper as f, TableProviderProps as ft, UITableHeadCellOption as g, UITableStatusDisplay as gt, UITableHeadCellSelect as h, UITableUserDataDisplay as ht, UITableSummaryBar as i, TUITableHeadCellOption as it, DateRangeFilterValue as j, UITableAvatarNameDisplay as jt, ColumnAggregationType as k, UITableBooleanDisplay as kt, UITableWrapper as l, TUITableLoadMore as lt, UITableHeadRow as m, TextFilterValue as mt, UITableTooltipActions as n, TUITableHead as nt, UITableFilter as o, TUITableHeadRow as ot, UITableInnerTable as p, TagFilterValue as pt, TTableRowContext as q, UITableTooltipFilter as r, TUITableHeadCell as rt, UITableAnalysisPanel as s, TUITableInnerTable as st, UITableTooltip as t, TUITableFooter as tt, UITableRow as u, TUITableRow as ut, UITableHead as v, UITableRemoveButton as vt, UITableCell as w, UITableListDisplay as wt, UITableEmptyDisplay as x, UITablePermalink as xt, UITableFooterRow as y, UITableProgressDisplay as yt, SummaryItem as z };
1093
+ //# sourceMappingURL=index-BuNzvvj3.d.mts.map
@@ -1,7 +1,7 @@
1
1
  import * as react304 from "react";
2
+ import * as class_variance_authority_types22 from "class-variance-authority/types";
2
3
  import { VariantProps } from "class-variance-authority";
3
4
  import { Editor } from "@tiptap/react";
4
- import * as class_variance_authority_types21 from "class-variance-authority/types";
5
5
 
6
6
  //#region packages/components/features/text-editor/link-dialog.d.ts
7
7
  interface LinkDialogProps {
@@ -15,7 +15,7 @@ declare function LinkDialog({
15
15
  declare const textEditorVariants: (props?: ({
16
16
  variant?: "outline" | "ghost" | null | undefined;
17
17
  size?: "sm" | "md" | "lg" | null | undefined;
18
- } & class_variance_authority_types21.ClassProp) | undefined) => string;
18
+ } & class_variance_authority_types22.ClassProp) | undefined) => string;
19
19
  type TextEditorVariantProps = VariantProps<typeof textEditorVariants>;
20
20
  //#endregion
21
21
  //#region packages/components/features/text-editor/text-editor.d.ts
@@ -82,4 +82,4 @@ declare function TextEditorToolbar({
82
82
  }: TextEditorToolbarProps): react304.JSX.Element;
83
83
  //#endregion
84
84
  export { LinkDialog as a, TextEditorProps as i, TextEditorToolbarProps as n, LinkDialogProps as o, TextEditor as r, TextEditorToolbar as t };
85
- //# sourceMappingURL=index-DiW-62hY.d.mts.map
85
+ //# sourceMappingURL=index-CG8iS6qj.d.cts.map
@@ -0,0 +1,90 @@
1
+ //#region packages/components/layouts/cms-layout/components/header.d.ts
2
+ type CMSLayoutUser = {
3
+ /** Display name shown in the header and user dropdown. */
4
+ name: string;
5
+ /** Email address shown below the name in the dropdown. */
6
+ email?: string;
7
+ /** Role or position shown as a muted label in the dropdown. */
8
+ role?: string;
9
+ /** Optional avatar image URL; falls back to a color-hashed icon. */
10
+ avatarUrl?: string;
11
+ };
12
+ //#endregion
13
+ //#region packages/components/layouts/cms-layout/index.d.ts
14
+ type NavItem = {
15
+ /** Unique identifier for the nav item, used as React key and for active-state comparison. */
16
+ id: string;
17
+ /** Human-readable label rendered inside the sidebar button. */
18
+ label: string;
19
+ /** Optional icon element rendered to the left of the label. */
20
+ icon?: React.ReactNode;
21
+ /** Callback fired when the sidebar button is clicked. */
22
+ onClick?: () => void;
23
+ };
24
+ type NavGroup = {
25
+ /** Unique identifier for the group, used as React key. */
26
+ id: string;
27
+ /** Optional section heading rendered above the group's items. */
28
+ label?: string;
29
+ /** Navigation items that belong to this group. */
30
+ items: NavItem[];
31
+ };
32
+ type CMSLayoutProps = {
33
+ /** Text label used by the header for language-toggle or i18n display. */
34
+ i18nText?: string;
35
+ /** ID of the currently active navigation item; matched against `NavItem.id` to highlight the active button. */
36
+ activeNavItemId?: string;
37
+ /** Sidebar navigation definition; omitting this prop renders an empty sidebar. */
38
+ sidebar?: {
39
+ groupcontent: NavGroup[];
40
+ };
41
+ /** Callback fired when the logout button is clicked. */
42
+ onLogout?: () => void;
43
+ /** Callback fired when the user switches the UI locale to English. */
44
+ onChangeToEnLocale?: () => void;
45
+ /** Callback fired when the user switches the UI locale to Vietnamese. */
46
+ onChangeToViLocale?: () => void;
47
+ /**
48
+ * Label displayed on the logout button.
49
+ * @default 'Log out'
50
+ */
51
+ logoutLabel?: string;
52
+ /**
53
+ * Copyright string shown at the bottom of the sidebar.
54
+ * @default `Copyright © <current year>, Lunas.`
55
+ */
56
+ copyright?: string;
57
+ /** Authenticated user shown in the header avatar dropdown. Omit to hide the user menu. */
58
+ user?: CMSLayoutUser;
59
+ };
60
+ /**
61
+ * Full-page CMS application shell with a collapsible inset sidebar, header, and main content area.
62
+ *
63
+ * @example
64
+ * ```tsx
65
+ * import { CMSLayout } from '@customafk/lunas-ui/layouts/cms-layout';
66
+ * import { LayoutDashboardIcon } from 'lucide-react';
67
+ *
68
+ * <CMSLayout
69
+ * activeNavItemId="dashboard"
70
+ * sidebar={{
71
+ * groupcontent: [
72
+ * {
73
+ * id: 'main',
74
+ * label: 'Main',
75
+ * items: [
76
+ * { id: 'dashboard', label: 'Dashboard', icon: <LayoutDashboardIcon />, onClick: () => router.push('/') },
77
+ * ],
78
+ * },
79
+ * ],
80
+ * }}
81
+ * onLogout={() => signOut()}
82
+ * >
83
+ * <DashboardPage />
84
+ * </CMSLayout>
85
+ * ```
86
+ */
87
+ declare const CMSLayout: React.FC<React.PropsWithChildren<CMSLayoutProps>>;
88
+ //#endregion
89
+ export { CMSLayoutProps as n, CMSLayoutUser as r, CMSLayout as t };
90
+ //# sourceMappingURL=index-Cm62M0Ft.d.mts.map