@customafk/lunas-ui 0.2.5 → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (757) hide show
  1. package/README.md +39 -9
  2. package/ai-docs.md +419 -0
  3. package/dist/alert-CA1RS1CG.d.cts +88 -0
  4. package/dist/alert-DDL82_U3.d.mts +88 -0
  5. package/dist/alert-DIC1_ymv.cjs +2 -0
  6. package/dist/alert-DIC1_ymv.cjs.map +1 -0
  7. package/dist/alert-VP3giy31.mjs +2 -0
  8. package/dist/alert-VP3giy31.mjs.map +1 -0
  9. package/dist/avatar-CTS9-raY.cjs +2 -0
  10. package/dist/avatar-CTS9-raY.cjs.map +1 -0
  11. package/dist/avatar-DbxqvCjT.mjs +2 -0
  12. package/dist/avatar-DbxqvCjT.mjs.map +1 -0
  13. package/dist/badge-B8bw2UEY.mjs +2 -0
  14. package/dist/badge-B8bw2UEY.mjs.map +1 -0
  15. package/dist/badge-BFTGDsBm.d.cts +42 -0
  16. package/dist/badge-Cg0e-djv.d.mts +42 -0
  17. package/dist/badge-uQ0pIZbQ.cjs +2 -0
  18. package/dist/badge-uQ0pIZbQ.cjs.map +1 -0
  19. package/dist/button-Bn54lPVz.d.cts +174 -0
  20. package/dist/button-C6ybzxxj.mjs +2 -0
  21. package/dist/button-C6ybzxxj.mjs.map +1 -0
  22. package/dist/button-C76drZpd.d.mts +174 -0
  23. package/dist/{button-Cd7YtPlT.cjs → button-CwDT3m4m.cjs} +2 -2
  24. package/dist/button-CwDT3m4m.cjs.map +1 -0
  25. package/dist/button.variants-DeCyas1F.mjs +2 -0
  26. package/dist/button.variants-DeCyas1F.mjs.map +1 -0
  27. package/dist/button.variants-tnhb123u.cjs +2 -0
  28. package/dist/button.variants-tnhb123u.cjs.map +1 -0
  29. package/dist/calendar-CyAPpT2m.cjs +2 -0
  30. package/dist/calendar-CyAPpT2m.cjs.map +1 -0
  31. package/dist/calendar-JKxWM6AF.mjs +2 -0
  32. package/dist/calendar-JKxWM6AF.mjs.map +1 -0
  33. package/dist/cards/grid-product-card.cjs +1 -1
  34. package/dist/cards/grid-product-card.cjs.map +1 -1
  35. package/dist/cards/grid-product-card.d.cts +23 -0
  36. package/dist/cards/grid-product-card.d.mts +23 -0
  37. package/dist/cards/grid-product-card.mjs +1 -1
  38. package/dist/cards/grid-product-card.mjs.map +1 -1
  39. package/dist/cards/product-card.cjs +1 -1
  40. package/dist/cards/product-card.cjs.map +1 -1
  41. package/dist/cards/product-card.d.cts +23 -0
  42. package/dist/cards/product-card.d.mts +23 -0
  43. package/dist/cards/product-card.mjs +1 -1
  44. package/dist/cards/product-card.mjs.map +1 -1
  45. package/dist/cards/simple-card.cjs +1 -1
  46. package/dist/cards/simple-card.cjs.map +1 -1
  47. package/dist/cards/simple-card.d.cts +16 -0
  48. package/dist/cards/simple-card.d.mts +18 -2
  49. package/dist/cards/simple-card.mjs +1 -1
  50. package/dist/cards/simple-card.mjs.map +1 -1
  51. package/dist/{checkbox-Bg2FiuQw.mjs → checkbox-DJEdYOjA.mjs} +2 -2
  52. package/dist/checkbox-DJEdYOjA.mjs.map +1 -0
  53. package/dist/{checkbox-C0fSWwmD.cjs → checkbox-RZrRNYP2.cjs} +2 -2
  54. package/dist/checkbox-RZrRNYP2.cjs.map +1 -0
  55. package/dist/close-BU0kWRVo.mjs +2 -0
  56. package/dist/{close-DfuHB7kq.mjs.map → close-BU0kWRVo.mjs.map} +1 -1
  57. package/dist/close-DXk_H3Gt.cjs +2 -0
  58. package/dist/{close-D_Ge7gnP.cjs.map → close-DXk_H3Gt.cjs.map} +1 -1
  59. package/dist/cms-layout-Dc4moos1.cjs +2 -0
  60. package/dist/cms-layout-Dc4moos1.cjs.map +1 -0
  61. package/dist/cms-layout-HfnOQS16.mjs +2 -0
  62. package/dist/cms-layout-HfnOQS16.mjs.map +1 -0
  63. package/dist/{command-IfPmQiyJ.cjs → command-SHd-d_o0.cjs} +2 -2
  64. package/dist/command-SHd-d_o0.cjs.map +1 -0
  65. package/dist/{command-Bma4ivZz.mjs → command-bpcnKEbR.mjs} +2 -2
  66. package/dist/command-bpcnKEbR.mjs.map +1 -0
  67. package/dist/data-display/country.cjs +1 -1
  68. package/dist/data-display/country.cjs.map +1 -1
  69. package/dist/data-display/country.d.cts +15 -3
  70. package/dist/data-display/country.d.mts +15 -3
  71. package/dist/data-display/country.mjs +1 -1
  72. package/dist/data-display/country.mjs.map +1 -1
  73. package/dist/data-display/data-list.cjs +1 -1
  74. package/dist/data-display/data-list.cjs.map +1 -1
  75. package/dist/data-display/data-list.d.cts +31 -2
  76. package/dist/data-display/data-list.d.mts +31 -2
  77. package/dist/data-display/data-list.mjs +1 -1
  78. package/dist/data-display/data-list.mjs.map +1 -1
  79. package/dist/data-display/date-tooltip.cjs +1 -1
  80. package/dist/data-display/date-tooltip.cjs.map +1 -1
  81. package/dist/data-display/date-tooltip.d.cts +13 -2
  82. package/dist/data-display/date-tooltip.d.mts +13 -2
  83. package/dist/data-display/date-tooltip.mjs +1 -1
  84. package/dist/data-display/date-tooltip.mjs.map +1 -1
  85. package/dist/data-display/date.cjs +1 -1
  86. package/dist/data-display/date.d.cts +28 -2
  87. package/dist/data-display/date.d.mts +28 -2
  88. package/dist/data-display/date.mjs +1 -1
  89. package/dist/data-display/empty.cjs +1 -1
  90. package/dist/data-display/empty.cjs.map +1 -1
  91. package/dist/data-display/empty.d.cts +17 -3
  92. package/dist/data-display/empty.d.mts +17 -3
  93. package/dist/data-display/empty.mjs +1 -1
  94. package/dist/data-display/empty.mjs.map +1 -1
  95. package/dist/data-display/name.cjs +1 -1
  96. package/dist/data-display/name.cjs.map +1 -1
  97. package/dist/data-display/name.d.cts +12 -1
  98. package/dist/data-display/name.d.mts +12 -1
  99. package/dist/data-display/name.mjs +1 -1
  100. package/dist/data-display/name.mjs.map +1 -1
  101. package/dist/data-display/phone-number.cjs +1 -1
  102. package/dist/data-display/phone-number.cjs.map +1 -1
  103. package/dist/data-display/phone-number.d.cts +14 -2
  104. package/dist/data-display/phone-number.d.mts +14 -2
  105. package/dist/data-display/phone-number.mjs +1 -1
  106. package/dist/data-display/phone-number.mjs.map +1 -1
  107. package/dist/data-display/role-badge.cjs +1 -1
  108. package/dist/data-display/role-badge.cjs.map +1 -1
  109. package/dist/data-display/role-badge.d.cts +15 -3
  110. package/dist/data-display/role-badge.d.mts +15 -3
  111. package/dist/data-display/role-badge.mjs +1 -1
  112. package/dist/data-display/role-badge.mjs.map +1 -1
  113. package/dist/data-display/statistic.cjs +1 -1
  114. package/dist/data-display/statistic.cjs.map +1 -1
  115. package/dist/data-display/statistic.d.cts +35 -6
  116. package/dist/data-display/statistic.d.mts +37 -8
  117. package/dist/data-display/statistic.mjs +1 -1
  118. package/dist/data-display/statistic.mjs.map +1 -1
  119. package/dist/data-display/user.cjs +1 -2
  120. package/dist/data-display/user.d.cts +14 -1
  121. package/dist/data-display/user.d.mts +14 -1
  122. package/dist/data-display/user.mjs +1 -2
  123. package/dist/date-CVz9xdCg.mjs +2 -0
  124. package/dist/date-CVz9xdCg.mjs.map +1 -0
  125. package/dist/date-a3RI5Pwo.cjs +2 -0
  126. package/dist/date-a3RI5Pwo.cjs.map +1 -0
  127. package/dist/dialog-BchwY6-N.mjs +2 -0
  128. package/dist/dialog-BchwY6-N.mjs.map +1 -0
  129. package/dist/dialog-CNhwBcEl.d.cts +90 -0
  130. package/dist/dialog-D6ygAOSV.d.mts +90 -0
  131. package/dist/dialog-o_68LQXd.cjs +2 -0
  132. package/dist/dialog-o_68LQXd.cjs.map +1 -0
  133. package/dist/dialogs/confirm-dialog.cjs +1 -1
  134. package/dist/dialogs/confirm-dialog.cjs.map +1 -1
  135. package/dist/dialogs/confirm-dialog.d.cts +129 -3
  136. package/dist/dialogs/confirm-dialog.d.mts +129 -3
  137. package/dist/dialogs/confirm-dialog.mjs +1 -1
  138. package/dist/dialogs/confirm-dialog.mjs.map +1 -1
  139. package/dist/dialogs/detail-dialog/components/sidebar.cjs +1 -2
  140. package/dist/dialogs/detail-dialog/components/sidebar.d.cts +73 -26
  141. package/dist/dialogs/detail-dialog/components/sidebar.d.mts +73 -26
  142. package/dist/dialogs/detail-dialog/components/sidebar.mjs +1 -2
  143. package/dist/dialogs/detail-dialog/index.cjs +1 -1
  144. package/dist/dialogs/detail-dialog/index.cjs.map +1 -1
  145. package/dist/dialogs/detail-dialog/index.d.cts +37 -8
  146. package/dist/dialogs/detail-dialog/index.d.mts +37 -8
  147. package/dist/dialogs/detail-dialog/index.mjs +1 -1
  148. package/dist/dialogs/detail-dialog/index.mjs.map +1 -1
  149. package/dist/dialogs/error-dialog.cjs +1 -1
  150. package/dist/dialogs/error-dialog.cjs.map +1 -1
  151. package/dist/dialogs/error-dialog.d.cts +18 -4
  152. package/dist/dialogs/error-dialog.d.mts +18 -4
  153. package/dist/dialogs/error-dialog.mjs +1 -1
  154. package/dist/dialogs/error-dialog.mjs.map +1 -1
  155. package/dist/dialogs/loading-dialog.cjs +1 -1
  156. package/dist/dialogs/loading-dialog.cjs.map +1 -1
  157. package/dist/dialogs/loading-dialog.d.cts +15 -3
  158. package/dist/dialogs/loading-dialog.d.mts +15 -3
  159. package/dist/dialogs/loading-dialog.mjs +1 -1
  160. package/dist/dialogs/loading-dialog.mjs.map +1 -1
  161. package/dist/dist-CIN9T2FB.mjs +2 -0
  162. package/dist/{dist-DP1ehOL8.mjs.map → dist-CIN9T2FB.mjs.map} +1 -1
  163. package/dist/dist-Dh8WwRa8.cjs +2 -0
  164. package/dist/{dist-Q1UyT_bc.cjs.map → dist-Dh8WwRa8.cjs.map} +1 -1
  165. package/dist/dropdown-menu-Ct9BLGfa.cjs +2 -0
  166. package/dist/dropdown-menu-Ct9BLGfa.cjs.map +1 -0
  167. package/dist/dropdown-menu-DWSfXhHo.mjs +2 -0
  168. package/dist/dropdown-menu-DWSfXhHo.mjs.map +1 -0
  169. package/dist/features/descriptions/index.cjs +1 -1
  170. package/dist/features/descriptions/index.cjs.map +1 -1
  171. package/dist/features/descriptions/index.d.cts +158 -19
  172. package/dist/features/descriptions/index.d.mts +158 -19
  173. package/dist/features/descriptions/index.mjs +1 -1
  174. package/dist/features/descriptions/index.mjs.map +1 -1
  175. package/dist/features/search-modal/index.cjs +1 -2
  176. package/dist/features/search-modal/index.d.cts +12 -2
  177. package/dist/features/search-modal/index.d.mts +12 -2
  178. package/dist/features/search-modal/index.mjs +1 -2
  179. package/dist/features/tables/index.cjs +1 -2
  180. package/dist/features/tables/index.d.cts +746 -24
  181. package/dist/features/tables/index.d.mts +746 -24
  182. package/dist/features/tables/index.mjs +1 -2
  183. package/dist/features/tanstack-form/index.cjs +1 -2
  184. package/dist/features/tanstack-form/index.d.cts +2 -1786
  185. package/dist/features/tanstack-form/index.d.mts +2 -1786
  186. package/dist/features/tanstack-form/index.mjs +1 -2
  187. package/dist/field-CXVnw75a.mjs +2 -0
  188. package/dist/field-CXVnw75a.mjs.map +1 -0
  189. package/dist/field-CppNvoxV.cjs +2 -0
  190. package/dist/field-CppNvoxV.cjs.map +1 -0
  191. package/dist/{flex-CeizYtXs.mjs → flex-BLMTj7Ev.mjs} +2 -2
  192. package/dist/flex-BLMTj7Ev.mjs.map +1 -0
  193. package/dist/{flex-BsoSgWFN.cjs → flex-BbbogTsZ.cjs} +2 -2
  194. package/dist/flex-BbbogTsZ.cjs.map +1 -0
  195. package/dist/heading-AKz5ewy-.cjs +2 -0
  196. package/dist/heading-AKz5ewy-.cjs.map +1 -0
  197. package/dist/heading-DN67djxs.mjs +2 -0
  198. package/dist/heading-DN67djxs.mjs.map +1 -0
  199. package/dist/image-B1Dm5LWk.cjs +2 -0
  200. package/dist/image-B1Dm5LWk.cjs.map +1 -0
  201. package/dist/image-BlzrSaoE.mjs +2 -0
  202. package/dist/image-BlzrSaoE.mjs.map +1 -0
  203. package/dist/index-75nSAiSe.d.mts +2030 -0
  204. package/dist/index-aTMCQQms.d.cts +2030 -0
  205. package/dist/index.cjs +1 -0
  206. package/dist/index.d.cts +90 -0
  207. package/dist/index.d.mts +90 -0
  208. package/dist/index.mjs +1 -0
  209. package/dist/{input-DMjPBcJO.mjs → input-Cd0G5y-9.mjs} +2 -2
  210. package/dist/input-Cd0G5y-9.mjs.map +1 -0
  211. package/dist/{input-BoMJaF_N.cjs → input-Cl5VkKQh.cjs} +2 -2
  212. package/dist/input-Cl5VkKQh.cjs.map +1 -0
  213. package/dist/input-D5dtkW6g.d.mts +44 -0
  214. package/dist/input-t2hpPP2K.d.cts +44 -0
  215. package/dist/{label-BzfsTrVt.cjs → label-DkMTQ3Ch.cjs} +2 -2
  216. package/dist/label-DkMTQ3Ch.cjs.map +1 -0
  217. package/dist/label-OmlGaZ5h.mjs +2 -0
  218. package/dist/label-OmlGaZ5h.mjs.map +1 -0
  219. package/dist/layouts/cms-layout/index.cjs +1 -2
  220. package/dist/layouts/cms-layout/index.d.cts +66 -13
  221. package/dist/layouts/cms-layout/index.d.mts +66 -13
  222. package/dist/layouts/cms-layout/index.mjs +1 -2
  223. package/dist/layouts/flex.cjs +1 -1
  224. package/dist/layouts/flex.d.cts +91 -7
  225. package/dist/layouts/flex.d.mts +93 -9
  226. package/dist/layouts/flex.mjs +1 -1
  227. package/dist/layouts/grid.cjs +1 -1
  228. package/dist/layouts/grid.cjs.map +1 -1
  229. package/dist/layouts/grid.d.cts +14 -0
  230. package/dist/layouts/grid.d.mts +14 -0
  231. package/dist/layouts/grid.mjs +1 -1
  232. package/dist/layouts/grid.mjs.map +1 -1
  233. package/dist/layouts/payment-layout/index.cjs +1 -2
  234. package/dist/layouts/payment-layout/index.d.cts +35 -0
  235. package/dist/layouts/payment-layout/index.d.mts +35 -0
  236. package/dist/layouts/payment-layout/index.mjs +1 -2
  237. package/dist/pages/FeatureDeveloping.cjs +1 -1
  238. package/dist/pages/FeatureDeveloping.cjs.map +1 -1
  239. package/dist/pages/FeatureDeveloping.d.cts +21 -3
  240. package/dist/pages/FeatureDeveloping.d.mts +21 -3
  241. package/dist/pages/FeatureDeveloping.mjs +1 -1
  242. package/dist/pages/FeatureDeveloping.mjs.map +1 -1
  243. package/dist/pages/FeatureFixing.cjs +1 -1
  244. package/dist/pages/FeatureFixing.cjs.map +1 -1
  245. package/dist/pages/FeatureFixing.d.cts +21 -3
  246. package/dist/pages/FeatureFixing.d.mts +21 -3
  247. package/dist/pages/FeatureFixing.mjs +1 -1
  248. package/dist/pages/FeatureFixing.mjs.map +1 -1
  249. package/dist/pages/NotAuthorized.cjs +1 -1
  250. package/dist/pages/NotAuthorized.cjs.map +1 -1
  251. package/dist/pages/NotAuthorized.d.cts +21 -3
  252. package/dist/pages/NotAuthorized.d.mts +21 -3
  253. package/dist/pages/NotAuthorized.mjs +1 -1
  254. package/dist/pages/NotAuthorized.mjs.map +1 -1
  255. package/dist/pages/NotFound.cjs +1 -1
  256. package/dist/pages/NotFound.cjs.map +1 -1
  257. package/dist/pages/NotFound.d.cts +21 -3
  258. package/dist/pages/NotFound.d.mts +21 -3
  259. package/dist/pages/NotFound.mjs +1 -1
  260. package/dist/pages/NotFound.mjs.map +1 -1
  261. package/dist/{paragraph-DmiXlAnE.mjs → paragraph-Ch5TvEqL.mjs} +2 -2
  262. package/dist/paragraph-Ch5TvEqL.mjs.map +1 -0
  263. package/dist/{paragraph-Co2e-y5c.cjs → paragraph-DN85Huc4.cjs} +2 -2
  264. package/dist/paragraph-DN85Huc4.cjs.map +1 -0
  265. package/dist/payment-layout-Da29dHJe.cjs +2 -0
  266. package/dist/payment-layout-Da29dHJe.cjs.map +1 -0
  267. package/dist/payment-layout-wN5c7MCM.mjs +2 -0
  268. package/dist/payment-layout-wN5c7MCM.mjs.map +1 -0
  269. package/dist/{popover-DzDrgttC.cjs → popover-AEt-aSy3.cjs} +2 -2
  270. package/dist/popover-AEt-aSy3.cjs.map +1 -0
  271. package/dist/popover-OJXFbqJi.mjs +2 -0
  272. package/dist/popover-OJXFbqJi.mjs.map +1 -0
  273. package/dist/{radio-group-CBhRsUjN.cjs → radio-group-BWLdQw7M.cjs} +2 -2
  274. package/dist/radio-group-BWLdQw7M.cjs.map +1 -0
  275. package/dist/{radio-group-Cem8O6BK.mjs → radio-group-CAgfOr7-.mjs} +2 -2
  276. package/dist/radio-group-CAgfOr7-.mjs.map +1 -0
  277. package/dist/{resizable-B8tRShQI.cjs → resizable-D6UKwvFa.cjs} +2 -2
  278. package/dist/resizable-D6UKwvFa.cjs.map +1 -0
  279. package/dist/{resizable-RPObV6jc.mjs → resizable-DWh_mp5P.mjs} +2 -2
  280. package/dist/resizable-DWh_mp5P.mjs.map +1 -0
  281. package/dist/search-modal-BxjKY8I7.mjs +2 -0
  282. package/dist/search-modal-BxjKY8I7.mjs.map +1 -0
  283. package/dist/search-modal-C-jNqQI1.cjs +2 -0
  284. package/dist/search-modal-C-jNqQI1.cjs.map +1 -0
  285. package/dist/{select-2CgwiefV.cjs → select-Py_t2nX1.cjs} +2 -2
  286. package/dist/select-Py_t2nX1.cjs.map +1 -0
  287. package/dist/{select-CivtMKTM.mjs → select-Ze8Fq88G.mjs} +2 -2
  288. package/dist/select-Ze8Fq88G.mjs.map +1 -0
  289. package/dist/separator-BMsbHAVt.mjs +2 -0
  290. package/dist/separator-BMsbHAVt.mjs.map +1 -0
  291. package/dist/{separator-C3ip6sbh.cjs → separator-BwZb12bh.cjs} +2 -2
  292. package/dist/separator-BwZb12bh.cjs.map +1 -0
  293. package/dist/{sheet-5MJRtrfG.cjs → sheet-CaDXTx7n.cjs} +2 -2
  294. package/dist/sheet-CaDXTx7n.cjs.map +1 -0
  295. package/dist/{sheet-oadGRiie.mjs → sheet-DMIqn1iv.mjs} +2 -2
  296. package/dist/sheet-DMIqn1iv.mjs.map +1 -0
  297. package/dist/sidebar-C27_pwLR.cjs +2 -0
  298. package/dist/sidebar-C27_pwLR.cjs.map +1 -0
  299. package/dist/sidebar-meLttL0V.mjs +2 -0
  300. package/dist/sidebar-meLttL0V.mjs.map +1 -0
  301. package/dist/skeleton-BPxcW2yu.mjs +2 -0
  302. package/dist/skeleton-BPxcW2yu.mjs.map +1 -0
  303. package/dist/skeleton-BfMCjXYM.cjs +2 -0
  304. package/dist/skeleton-BfMCjXYM.cjs.map +1 -0
  305. package/dist/spinner-EgMJOaQi.mjs +2 -0
  306. package/dist/spinner-EgMJOaQi.mjs.map +1 -0
  307. package/dist/spinner-MKXqwF9G.cjs +2 -0
  308. package/dist/spinner-MKXqwF9G.cjs.map +1 -0
  309. package/dist/systems/google.cjs +1 -1
  310. package/dist/systems/google.cjs.map +1 -1
  311. package/dist/systems/google.d.cts +36 -0
  312. package/dist/systems/google.d.mts +36 -0
  313. package/dist/systems/google.mjs +1 -1
  314. package/dist/systems/google.mjs.map +1 -1
  315. package/dist/tables-Cc3Wik4i.cjs +2 -0
  316. package/dist/tables-Cc3Wik4i.cjs.map +1 -0
  317. package/dist/tables-DrJKQPsT.mjs +2 -0
  318. package/dist/tables-DrJKQPsT.mjs.map +1 -0
  319. package/dist/tanstack-form-BmV2BXDz.cjs +2 -0
  320. package/dist/tanstack-form-BmV2BXDz.cjs.map +1 -0
  321. package/dist/tanstack-form-CJ43hVb_.mjs +2 -0
  322. package/dist/tanstack-form-CJ43hVb_.mjs.map +1 -0
  323. package/dist/{textarea-Dlwbg6TY.cjs → textarea-BsgmN4jy.cjs} +2 -2
  324. package/dist/textarea-BsgmN4jy.cjs.map +1 -0
  325. package/dist/{textarea-RjL2DtNf.mjs → textarea-CdGSEkZB.mjs} +2 -2
  326. package/dist/textarea-CdGSEkZB.mjs.map +1 -0
  327. package/dist/tooltip-Bj0iOG4s.mjs +2 -0
  328. package/dist/tooltip-Bj0iOG4s.mjs.map +1 -0
  329. package/dist/{tooltip-DC6i1A25.cjs → tooltip-itUmYz9k.cjs} +2 -2
  330. package/dist/tooltip-itUmYz9k.cjs.map +1 -0
  331. package/dist/{types-Bd0JePtp.d.cts → types-B_32Ieia.d.mts} +1 -1
  332. package/dist/{types-BpHcqlOI.d.mts → types-CDYHkcOk.d.cts} +1 -1
  333. package/dist/{types-DBD4LOem.mjs → types-DNphnTW-.mjs} +1 -1
  334. package/dist/{types-DBD4LOem.mjs.map → types-DNphnTW-.mjs.map} +1 -1
  335. package/dist/typography/paragraph.cjs +1 -1
  336. package/dist/typography/paragraph.d.cts +35 -5
  337. package/dist/typography/paragraph.d.mts +36 -6
  338. package/dist/typography/paragraph.mjs +1 -1
  339. package/dist/typography/title.cjs +1 -1
  340. package/dist/typography/title.cjs.map +1 -1
  341. package/dist/typography/title.d.cts +31 -4
  342. package/dist/typography/title.d.mts +31 -4
  343. package/dist/typography/title.mjs +1 -1
  344. package/dist/typography/title.mjs.map +1 -1
  345. package/dist/ui/alert-dialog.cjs +1 -1
  346. package/dist/ui/alert-dialog.cjs.map +1 -1
  347. package/dist/ui/alert-dialog.d.cts +54 -12
  348. package/dist/ui/alert-dialog.d.mts +54 -12
  349. package/dist/ui/alert-dialog.mjs +1 -1
  350. package/dist/ui/alert-dialog.mjs.map +1 -1
  351. package/dist/ui/alert.cjs +1 -2
  352. package/dist/ui/alert.d.cts +2 -69
  353. package/dist/ui/alert.d.mts +2 -69
  354. package/dist/ui/alert.mjs +1 -2
  355. package/dist/ui/aspect-ratio.cjs +1 -1
  356. package/dist/ui/aspect-ratio.cjs.map +1 -1
  357. package/dist/ui/aspect-ratio.d.cts +15 -2
  358. package/dist/ui/aspect-ratio.d.mts +15 -2
  359. package/dist/ui/aspect-ratio.mjs +1 -1
  360. package/dist/ui/aspect-ratio.mjs.map +1 -1
  361. package/dist/ui/avatar.cjs +1 -1
  362. package/dist/ui/avatar.d.cts +20 -4
  363. package/dist/ui/avatar.d.mts +20 -4
  364. package/dist/ui/avatar.mjs +1 -1
  365. package/dist/ui/badge.cjs +1 -1
  366. package/dist/ui/badge.d.cts +2 -21
  367. package/dist/ui/badge.d.mts +2 -21
  368. package/dist/ui/badge.mjs +1 -1
  369. package/dist/ui/breadcrumb.cjs +1 -1
  370. package/dist/ui/breadcrumb.cjs.map +1 -1
  371. package/dist/ui/breadcrumb.d.cts +38 -25
  372. package/dist/ui/breadcrumb.d.mts +38 -25
  373. package/dist/ui/breadcrumb.mjs +1 -1
  374. package/dist/ui/breadcrumb.mjs.map +1 -1
  375. package/dist/ui/button-group.cjs +1 -1
  376. package/dist/ui/button-group.cjs.map +1 -1
  377. package/dist/ui/button-group.d.cts +27 -6
  378. package/dist/ui/button-group.d.mts +27 -6
  379. package/dist/ui/button-group.mjs +1 -1
  380. package/dist/ui/button-group.mjs.map +1 -1
  381. package/dist/ui/button.cjs +1 -1
  382. package/dist/ui/button.d.cts +1 -1
  383. package/dist/ui/button.d.mts +1 -1
  384. package/dist/ui/button.mjs +1 -1
  385. package/dist/ui/buttons/add-new.cjs +1 -1
  386. package/dist/ui/buttons/add-new.cjs.map +1 -1
  387. package/dist/ui/buttons/add-new.d.cts +9 -0
  388. package/dist/ui/buttons/add-new.d.mts +9 -0
  389. package/dist/ui/buttons/add-new.mjs +1 -1
  390. package/dist/ui/buttons/add-new.mjs.map +1 -1
  391. package/dist/ui/buttons/edit.cjs +1 -1
  392. package/dist/ui/buttons/edit.cjs.map +1 -1
  393. package/dist/ui/buttons/edit.d.cts +9 -0
  394. package/dist/ui/buttons/edit.d.mts +9 -0
  395. package/dist/ui/buttons/edit.mjs +1 -1
  396. package/dist/ui/buttons/edit.mjs.map +1 -1
  397. package/dist/ui/buttons/refresh.cjs +1 -1
  398. package/dist/ui/buttons/refresh.cjs.map +1 -1
  399. package/dist/ui/buttons/refresh.d.cts +9 -0
  400. package/dist/ui/buttons/refresh.d.mts +9 -0
  401. package/dist/ui/buttons/refresh.mjs +1 -1
  402. package/dist/ui/buttons/refresh.mjs.map +1 -1
  403. package/dist/ui/buttons/trash.cjs +1 -1
  404. package/dist/ui/buttons/trash.cjs.map +1 -1
  405. package/dist/ui/buttons/trash.d.cts +9 -0
  406. package/dist/ui/buttons/trash.d.mts +9 -0
  407. package/dist/ui/buttons/trash.mjs +1 -1
  408. package/dist/ui/buttons/trash.mjs.map +1 -1
  409. package/dist/ui/buttons/upload-image.cjs +1 -1
  410. package/dist/ui/buttons/upload-image.cjs.map +1 -1
  411. package/dist/ui/buttons/upload-image.d.cts +13 -0
  412. package/dist/ui/buttons/upload-image.d.mts +13 -0
  413. package/dist/ui/buttons/upload-image.mjs +1 -1
  414. package/dist/ui/buttons/upload-image.mjs.map +1 -1
  415. package/dist/ui/calendar.cjs +1 -1
  416. package/dist/ui/calendar.d.cts +22 -4
  417. package/dist/ui/calendar.d.mts +22 -4
  418. package/dist/ui/calendar.mjs +1 -1
  419. package/dist/ui/card.cjs +1 -1
  420. package/dist/ui/card.cjs.map +1 -1
  421. package/dist/ui/card.d.cts +37 -8
  422. package/dist/ui/card.d.mts +37 -8
  423. package/dist/ui/card.mjs +1 -1
  424. package/dist/ui/card.mjs.map +1 -1
  425. package/dist/ui/carousel.cjs +1 -1
  426. package/dist/ui/carousel.cjs.map +1 -1
  427. package/dist/ui/carousel.d.cts +31 -7
  428. package/dist/ui/carousel.d.mts +31 -7
  429. package/dist/ui/carousel.mjs +1 -1
  430. package/dist/ui/carousel.mjs.map +1 -1
  431. package/dist/ui/checkbox.cjs +1 -1
  432. package/dist/ui/checkbox.d.cts +17 -2
  433. package/dist/ui/checkbox.d.mts +17 -2
  434. package/dist/ui/checkbox.mjs +1 -1
  435. package/dist/ui/collapsible.cjs.map +1 -1
  436. package/dist/ui/collapsible.d.cts +22 -4
  437. package/dist/ui/collapsible.d.mts +22 -4
  438. package/dist/ui/collapsible.mjs.map +1 -1
  439. package/dist/ui/command.cjs +1 -1
  440. package/dist/ui/command.d.cts +48 -11
  441. package/dist/ui/command.d.mts +48 -11
  442. package/dist/ui/command.mjs +1 -1
  443. package/dist/ui/context-menu.cjs +1 -1
  444. package/dist/ui/context-menu.cjs.map +1 -1
  445. package/dist/ui/context-menu.d.cts +65 -16
  446. package/dist/ui/context-menu.d.mts +65 -16
  447. package/dist/ui/context-menu.mjs +1 -1
  448. package/dist/ui/context-menu.mjs.map +1 -1
  449. package/dist/ui/dialog.cjs +1 -1
  450. package/dist/ui/dialog.d.cts +1 -1
  451. package/dist/ui/dialog.d.mts +1 -1
  452. package/dist/ui/dialog.mjs +1 -1
  453. package/dist/ui/drawer.cjs +1 -1
  454. package/dist/ui/drawer.cjs.map +1 -1
  455. package/dist/ui/drawer.d.cts +39 -11
  456. package/dist/ui/drawer.d.mts +39 -11
  457. package/dist/ui/drawer.mjs +1 -1
  458. package/dist/ui/drawer.mjs.map +1 -1
  459. package/dist/ui/dropdown-menu.cjs +1 -1
  460. package/dist/ui/dropdown-menu.d.cts +65 -16
  461. package/dist/ui/dropdown-menu.d.mts +65 -16
  462. package/dist/ui/dropdown-menu.mjs +1 -1
  463. package/dist/ui/empty.cjs +1 -1
  464. package/dist/ui/empty.cjs.map +1 -1
  465. package/dist/ui/empty.d.cts +41 -9
  466. package/dist/ui/empty.d.mts +39 -7
  467. package/dist/ui/empty.mjs +1 -1
  468. package/dist/ui/empty.mjs.map +1 -1
  469. package/dist/ui/field.cjs +1 -2
  470. package/dist/ui/field.d.cts +13 -13
  471. package/dist/ui/field.d.mts +22 -22
  472. package/dist/ui/field.mjs +1 -2
  473. package/dist/ui/file-uploader.cjs +2 -2
  474. package/dist/ui/file-uploader.cjs.map +1 -1
  475. package/dist/ui/file-uploader.d.cts +27 -2
  476. package/dist/ui/file-uploader.d.mts +27 -2
  477. package/dist/ui/file-uploader.mjs +2 -2
  478. package/dist/ui/file-uploader.mjs.map +1 -1
  479. package/dist/ui/form.cjs +1 -1
  480. package/dist/ui/form.cjs.map +1 -1
  481. package/dist/ui/form.d.cts +55 -11
  482. package/dist/ui/form.d.mts +55 -11
  483. package/dist/ui/form.mjs +1 -1
  484. package/dist/ui/form.mjs.map +1 -1
  485. package/dist/ui/hover-card.cjs +1 -1
  486. package/dist/ui/hover-card.cjs.map +1 -1
  487. package/dist/ui/hover-card.d.cts +22 -4
  488. package/dist/ui/hover-card.d.mts +22 -4
  489. package/dist/ui/hover-card.mjs +1 -1
  490. package/dist/ui/hover-card.mjs.map +1 -1
  491. package/dist/ui/image.cjs +1 -1
  492. package/dist/ui/image.d.cts +20 -0
  493. package/dist/ui/image.d.mts +20 -0
  494. package/dist/ui/image.mjs +1 -1
  495. package/dist/ui/input-otp.cjs +1 -1
  496. package/dist/ui/input-otp.cjs.map +1 -1
  497. package/dist/ui/input-otp.d.cts +36 -5
  498. package/dist/ui/input-otp.d.mts +36 -5
  499. package/dist/ui/input-otp.mjs +1 -1
  500. package/dist/ui/input-otp.mjs.map +1 -1
  501. package/dist/ui/input.cjs +1 -1
  502. package/dist/ui/input.d.cts +1 -1
  503. package/dist/ui/input.d.mts +1 -1
  504. package/dist/ui/input.mjs +1 -1
  505. package/dist/ui/inputs/search-input.cjs +1 -1
  506. package/dist/ui/inputs/search-input.cjs.map +1 -1
  507. package/dist/ui/inputs/search-input.d.cts +20 -3
  508. package/dist/ui/inputs/search-input.d.mts +20 -3
  509. package/dist/ui/inputs/search-input.mjs +1 -1
  510. package/dist/ui/inputs/search-input.mjs.map +1 -1
  511. package/dist/ui/item.cjs +1 -1
  512. package/dist/ui/item.cjs.map +1 -1
  513. package/dist/ui/item.d.cts +55 -15
  514. package/dist/ui/item.d.mts +55 -15
  515. package/dist/ui/item.mjs +1 -1
  516. package/dist/ui/item.mjs.map +1 -1
  517. package/dist/ui/label.cjs +1 -1
  518. package/dist/ui/label.d.cts +15 -2
  519. package/dist/ui/label.d.mts +15 -2
  520. package/dist/ui/label.mjs +1 -1
  521. package/dist/ui/menubar.cjs +1 -1
  522. package/dist/ui/menubar.cjs.map +1 -1
  523. package/dist/ui/menubar.d.cts +68 -17
  524. package/dist/ui/menubar.d.mts +68 -17
  525. package/dist/ui/menubar.mjs +1 -1
  526. package/dist/ui/menubar.mjs.map +1 -1
  527. package/dist/ui/multi-select.cjs +1 -1
  528. package/dist/ui/multi-select.cjs.map +1 -1
  529. package/dist/ui/multi-select.d.cts +39 -2
  530. package/dist/ui/multi-select.d.mts +40 -3
  531. package/dist/ui/multi-select.mjs +1 -1
  532. package/dist/ui/multi-select.mjs.map +1 -1
  533. package/dist/ui/navigation-menu.cjs +1 -1
  534. package/dist/ui/navigation-menu.cjs.map +1 -1
  535. package/dist/ui/navigation-menu.d.cts +42 -11
  536. package/dist/ui/navigation-menu.d.mts +42 -11
  537. package/dist/ui/navigation-menu.mjs +1 -1
  538. package/dist/ui/navigation-menu.mjs.map +1 -1
  539. package/dist/ui/pagination.cjs +1 -1
  540. package/dist/ui/pagination.cjs.map +1 -1
  541. package/dist/ui/pagination.d.cts +37 -9
  542. package/dist/ui/pagination.d.mts +37 -9
  543. package/dist/ui/pagination.mjs +1 -1
  544. package/dist/ui/pagination.mjs.map +1 -1
  545. package/dist/ui/popover.cjs +1 -1
  546. package/dist/ui/popover.d.cts +32 -6
  547. package/dist/ui/popover.d.mts +32 -6
  548. package/dist/ui/popover.mjs +1 -1
  549. package/dist/ui/progress.cjs +1 -1
  550. package/dist/ui/progress.cjs.map +1 -1
  551. package/dist/ui/progress.d.cts +13 -2
  552. package/dist/ui/progress.d.mts +13 -2
  553. package/dist/ui/progress.mjs +1 -1
  554. package/dist/ui/progress.mjs.map +1 -1
  555. package/dist/ui/radio-group.cjs +1 -1
  556. package/dist/ui/radio-group.d.cts +25 -3
  557. package/dist/ui/radio-group.d.mts +25 -3
  558. package/dist/ui/radio-group.mjs +1 -1
  559. package/dist/ui/resizable.cjs +1 -1
  560. package/dist/ui/resizable.d.cts +29 -9
  561. package/dist/ui/resizable.d.mts +29 -9
  562. package/dist/ui/resizable.mjs +1 -1
  563. package/dist/ui/scroll-area.cjs +1 -1
  564. package/dist/ui/scroll-area.cjs.map +1 -1
  565. package/dist/ui/scroll-area.d.cts +24 -6
  566. package/dist/ui/scroll-area.d.mts +24 -6
  567. package/dist/ui/scroll-area.mjs +1 -1
  568. package/dist/ui/scroll-area.mjs.map +1 -1
  569. package/dist/ui/select.cjs +1 -1
  570. package/dist/ui/select.d.cts +43 -9
  571. package/dist/ui/select.d.mts +43 -9
  572. package/dist/ui/select.mjs +1 -1
  573. package/dist/ui/separator.cjs +1 -1
  574. package/dist/ui/separator.d.cts +23 -2
  575. package/dist/ui/separator.d.mts +23 -2
  576. package/dist/ui/separator.mjs +1 -1
  577. package/dist/ui/sheet.cjs +1 -1
  578. package/dist/ui/sheet.d.cts +38 -9
  579. package/dist/ui/sheet.d.mts +38 -9
  580. package/dist/ui/sheet.mjs +1 -1
  581. package/dist/ui/sidebar.cjs +1 -1
  582. package/dist/ui/sidebar.cjs.map +1 -1
  583. package/dist/ui/sidebar.d.cts +125 -28
  584. package/dist/ui/sidebar.d.mts +125 -28
  585. package/dist/ui/sidebar.mjs +1 -1
  586. package/dist/ui/sidebar.mjs.map +1 -1
  587. package/dist/ui/skeleton.cjs +1 -1
  588. package/dist/ui/skeleton.d.cts +19 -2
  589. package/dist/ui/skeleton.d.mts +19 -2
  590. package/dist/ui/skeleton.mjs +1 -1
  591. package/dist/ui/slider.cjs +1 -1
  592. package/dist/ui/slider.cjs.map +1 -1
  593. package/dist/ui/slider.d.cts +13 -2
  594. package/dist/ui/slider.d.mts +13 -2
  595. package/dist/ui/slider.mjs +1 -1
  596. package/dist/ui/slider.mjs.map +1 -1
  597. package/dist/ui/sonner.cjs +1 -1
  598. package/dist/ui/sonner.cjs.map +1 -1
  599. package/dist/ui/sonner.d.cts +18 -2
  600. package/dist/ui/sonner.d.mts +18 -2
  601. package/dist/ui/sonner.mjs +1 -1
  602. package/dist/ui/sonner.mjs.map +1 -1
  603. package/dist/ui/spinner.cjs +1 -1
  604. package/dist/ui/spinner.d.cts +17 -2
  605. package/dist/ui/spinner.d.mts +17 -2
  606. package/dist/ui/spinner.mjs +1 -1
  607. package/dist/ui/switch.cjs +1 -1
  608. package/dist/ui/switch.cjs.map +1 -1
  609. package/dist/ui/switch.d.cts +17 -2
  610. package/dist/ui/switch.d.mts +17 -2
  611. package/dist/ui/switch.mjs +1 -1
  612. package/dist/ui/switch.mjs.map +1 -1
  613. package/dist/ui/table.cjs +1 -1
  614. package/dist/ui/table.cjs.map +1 -1
  615. package/dist/ui/table.d.cts +53 -18
  616. package/dist/ui/table.d.mts +53 -18
  617. package/dist/ui/table.mjs +1 -1
  618. package/dist/ui/table.mjs.map +1 -1
  619. package/dist/ui/tabs.cjs +1 -1
  620. package/dist/ui/tabs.cjs.map +1 -1
  621. package/dist/ui/tabs.d.cts +26 -5
  622. package/dist/ui/tabs.d.mts +26 -5
  623. package/dist/ui/tabs.mjs +1 -1
  624. package/dist/ui/tabs.mjs.map +1 -1
  625. package/dist/ui/textarea.cjs +1 -1
  626. package/dist/ui/textarea.d.cts +18 -2
  627. package/dist/ui/textarea.d.mts +18 -2
  628. package/dist/ui/textarea.mjs +1 -1
  629. package/dist/ui/toggle-group.cjs +1 -1
  630. package/dist/ui/toggle-group.cjs.map +1 -1
  631. package/dist/ui/toggle-group.d.cts +19 -3
  632. package/dist/ui/toggle-group.d.mts +19 -3
  633. package/dist/ui/toggle-group.mjs +1 -1
  634. package/dist/ui/toggle-group.mjs.map +1 -1
  635. package/dist/ui/toggle.cjs +1 -1
  636. package/dist/ui/toggle.cjs.map +1 -1
  637. package/dist/ui/toggle.d.cts +17 -4
  638. package/dist/ui/toggle.d.mts +17 -4
  639. package/dist/ui/toggle.mjs +1 -1
  640. package/dist/ui/toggle.mjs.map +1 -1
  641. package/dist/ui/tooltip.cjs +1 -1
  642. package/dist/ui/tooltip.d.cts +37 -5
  643. package/dist/ui/tooltip.d.mts +37 -5
  644. package/dist/ui/tooltip.mjs +1 -1
  645. package/dist/user-BEyYLDNK.cjs +2 -0
  646. package/dist/user-BEyYLDNK.cjs.map +1 -0
  647. package/dist/user-DONsffqr.mjs +2 -0
  648. package/dist/user-DONsffqr.mjs.map +1 -0
  649. package/package.json +11 -3
  650. package/styles/theme.css +27 -6
  651. package/dist/avatar-DReNH6rV.mjs +0 -2
  652. package/dist/avatar-DReNH6rV.mjs.map +0 -1
  653. package/dist/avatar-aVxo69zP.cjs +0 -2
  654. package/dist/avatar-aVxo69zP.cjs.map +0 -1
  655. package/dist/badge-B4Fa7-J3.mjs +0 -2
  656. package/dist/badge-B4Fa7-J3.mjs.map +0 -1
  657. package/dist/badge-cvLJyaCA.cjs +0 -2
  658. package/dist/badge-cvLJyaCA.cjs.map +0 -1
  659. package/dist/button-B5a1UlC_.d.mts +0 -59
  660. package/dist/button-Cd7YtPlT.cjs.map +0 -1
  661. package/dist/button-D8BUqpI2.mjs +0 -2
  662. package/dist/button-D8BUqpI2.mjs.map +0 -1
  663. package/dist/button-DYZCqN6A.d.cts +0 -59
  664. package/dist/button.variants-B_dFX3i2.mjs +0 -2
  665. package/dist/button.variants-B_dFX3i2.mjs.map +0 -1
  666. package/dist/button.variants-aqkTmzFu.cjs +0 -2
  667. package/dist/button.variants-aqkTmzFu.cjs.map +0 -1
  668. package/dist/calendar-B-PDpHK5.mjs +0 -2
  669. package/dist/calendar-B-PDpHK5.mjs.map +0 -1
  670. package/dist/calendar-Cq3_5u0k.cjs +0 -2
  671. package/dist/calendar-Cq3_5u0k.cjs.map +0 -1
  672. package/dist/checkbox-Bg2FiuQw.mjs.map +0 -1
  673. package/dist/checkbox-C0fSWwmD.cjs.map +0 -1
  674. package/dist/close-D_Ge7gnP.cjs +0 -2
  675. package/dist/close-DfuHB7kq.mjs +0 -2
  676. package/dist/command-Bma4ivZz.mjs.map +0 -1
  677. package/dist/command-IfPmQiyJ.cjs.map +0 -1
  678. package/dist/data-display/user.cjs.map +0 -1
  679. package/dist/data-display/user.mjs.map +0 -1
  680. package/dist/date-WraHGsbb.cjs +0 -2
  681. package/dist/date-WraHGsbb.cjs.map +0 -1
  682. package/dist/date-uVTm7J09.mjs +0 -2
  683. package/dist/date-uVTm7J09.mjs.map +0 -1
  684. package/dist/dialog-B50k7HnL.mjs +0 -2
  685. package/dist/dialog-B50k7HnL.mjs.map +0 -1
  686. package/dist/dialog-BoNhIQYJ.cjs +0 -2
  687. package/dist/dialog-BoNhIQYJ.cjs.map +0 -1
  688. package/dist/dialog-CuZxUWfc.d.cts +0 -47
  689. package/dist/dialog-D4LnpcNL.d.mts +0 -47
  690. package/dist/dialogs/detail-dialog/components/sidebar.cjs.map +0 -1
  691. package/dist/dialogs/detail-dialog/components/sidebar.mjs.map +0 -1
  692. package/dist/dist-DP1ehOL8.mjs +0 -2
  693. package/dist/dist-Q1UyT_bc.cjs +0 -2
  694. package/dist/dropdown-menu-B8GUTfTp.mjs +0 -2
  695. package/dist/dropdown-menu-B8GUTfTp.mjs.map +0 -1
  696. package/dist/dropdown-menu-BuyuU6uF.cjs +0 -2
  697. package/dist/dropdown-menu-BuyuU6uF.cjs.map +0 -1
  698. package/dist/features/search-modal/index.cjs.map +0 -1
  699. package/dist/features/search-modal/index.mjs.map +0 -1
  700. package/dist/features/tables/index.cjs.map +0 -1
  701. package/dist/features/tables/index.mjs.map +0 -1
  702. package/dist/features/tanstack-form/index.cjs.map +0 -1
  703. package/dist/features/tanstack-form/index.mjs.map +0 -1
  704. package/dist/flex-BsoSgWFN.cjs.map +0 -1
  705. package/dist/flex-CeizYtXs.mjs.map +0 -1
  706. package/dist/heading-BEbpIiLg.cjs +0 -2
  707. package/dist/heading-BEbpIiLg.cjs.map +0 -1
  708. package/dist/heading-CrF1CFWS.mjs +0 -2
  709. package/dist/heading-CrF1CFWS.mjs.map +0 -1
  710. package/dist/image-BBZUipoU.cjs +0 -2
  711. package/dist/image-BBZUipoU.cjs.map +0 -1
  712. package/dist/image-CZji4Q26.mjs +0 -2
  713. package/dist/image-CZji4Q26.mjs.map +0 -1
  714. package/dist/input-BoMJaF_N.cjs.map +0 -1
  715. package/dist/input-DMjPBcJO.mjs.map +0 -1
  716. package/dist/input-DszdZdbJ.d.cts +0 -25
  717. package/dist/input-Dv7UKl6Z.d.mts +0 -25
  718. package/dist/label-BzfsTrVt.cjs.map +0 -1
  719. package/dist/label-Dqr8nxWi.mjs +0 -2
  720. package/dist/label-Dqr8nxWi.mjs.map +0 -1
  721. package/dist/layouts/cms-layout/index.cjs.map +0 -1
  722. package/dist/layouts/cms-layout/index.mjs.map +0 -1
  723. package/dist/layouts/payment-layout/index.cjs.map +0 -1
  724. package/dist/layouts/payment-layout/index.mjs.map +0 -1
  725. package/dist/paragraph-Co2e-y5c.cjs.map +0 -1
  726. package/dist/paragraph-DmiXlAnE.mjs.map +0 -1
  727. package/dist/popover-BckwBuuD.mjs +0 -2
  728. package/dist/popover-BckwBuuD.mjs.map +0 -1
  729. package/dist/popover-DzDrgttC.cjs.map +0 -1
  730. package/dist/radio-group-CBhRsUjN.cjs.map +0 -1
  731. package/dist/radio-group-Cem8O6BK.mjs.map +0 -1
  732. package/dist/resizable-B8tRShQI.cjs.map +0 -1
  733. package/dist/resizable-RPObV6jc.mjs.map +0 -1
  734. package/dist/select-2CgwiefV.cjs.map +0 -1
  735. package/dist/select-CivtMKTM.mjs.map +0 -1
  736. package/dist/separator-Bf0gymN4.mjs +0 -2
  737. package/dist/separator-Bf0gymN4.mjs.map +0 -1
  738. package/dist/separator-C3ip6sbh.cjs.map +0 -1
  739. package/dist/sheet-5MJRtrfG.cjs.map +0 -1
  740. package/dist/sheet-oadGRiie.mjs.map +0 -1
  741. package/dist/skeleton-Ba6koCVf.mjs +0 -2
  742. package/dist/skeleton-Ba6koCVf.mjs.map +0 -1
  743. package/dist/skeleton-CHympz8k.cjs +0 -2
  744. package/dist/skeleton-CHympz8k.cjs.map +0 -1
  745. package/dist/spinner-Chm_2fLr.cjs +0 -2
  746. package/dist/spinner-Chm_2fLr.cjs.map +0 -1
  747. package/dist/spinner-D1v3Bard.mjs +0 -2
  748. package/dist/spinner-D1v3Bard.mjs.map +0 -1
  749. package/dist/textarea-Dlwbg6TY.cjs.map +0 -1
  750. package/dist/textarea-RjL2DtNf.mjs.map +0 -1
  751. package/dist/tooltip-B3dTcgcc.mjs +0 -2
  752. package/dist/tooltip-B3dTcgcc.mjs.map +0 -1
  753. package/dist/tooltip-DC6i1A25.cjs.map +0 -1
  754. package/dist/ui/alert.cjs.map +0 -1
  755. package/dist/ui/alert.mjs.map +0 -1
  756. package/dist/ui/field.cjs.map +0 -1
  757. package/dist/ui/field.mjs.map +0 -1
@@ -1,2 +1 @@
1
- import"../../heading-CrF1CFWS.mjs";import"../../paragraph-DmiXlAnE.mjs";import"../../button.variants-B_dFX3i2.mjs";import{t as e}from"../../button-D8BUqpI2.mjs";import{t}from"../../separator-Bf0gymN4.mjs";import{t as n}from"../../close-DfuHB7kq.mjs";import{c as r,l as i,r as a,s as o,t as s}from"../../dialog-B50k7HnL.mjs";import{t as c}from"../../checkbox-Bg2FiuQw.mjs";import{t as l}from"../../input-DMjPBcJO.mjs";import{a as u,i as d,t as f}from"../../popover-BckwBuuD.mjs";import{t as p}from"../../calendar-B-PDpHK5.mjs";import{n as m,t as h}from"../../radio-group-Cem8O6BK.mjs";import{c as g,i as _,n as v,s as y,t as b}from"../../select-CivtMKTM.mjs";import{t as x}from"../../textarea-RjL2DtNf.mjs";import{cn as S}from"@customafk/react-toolkit/utils";import{cva as C}from"class-variance-authority";import{jsx as w,jsxs as T}from"react/jsx-runtime";import{ArrowDownToLine as E,AtSignIcon as D,BanIcon as O,CalendarDaysIcon as k,EyeIcon as A,EyeOffIcon as j,Loader2 as ee,Loader2Icon as M,PackagePlusIcon as te,PlusIcon as ne,Trash2Icon as re,XIcon as ie}from"lucide-react";import{memo as N,useCallback as P,useEffect as F,useId as ae,useMemo as I,useRef as L,useState as oe}from"react";import{endOfToday as R,endOfTomorrow as se,endOfYesterday as ce,format as le,lastDayOfMonth as ue,startOfMonth as de,subDays as z}from"@customafk/react-toolkit/date-fns";import{Dialog as B,Label as fe,Separator as pe,Switch as me}from"radix-ui";import{createFormHook as he,createFormHookContexts as ge,useStore as V}from"@tanstack/react-form";const _e=C([`flex w-fit items-center justify-center rounded-full font-bold text-text-negative-strong`],{variants:{color:{default:`bg-primary-strong`,secondary:`bg-secondary-strong`,success:`bg-success-strong`,info:`bg-info-strong`,warning:`bg-warning-strong`,danger:`border border-danger-strong bg-linear-to-b from-danger-strong/90 via-danger-strong to-danger-strong/90`},size:{xs:`px-1.5 py-0.5 text-xs`,sm:`px-2 py-0.75 text-xs`,md:`px-2.5 py-0.75 text-sm`,lg:`px-3 py-1 text-sm`}},defaultVariants:{color:`default`,size:`sm`}}),ve=({label:e,color:t,size:n,className:r,children:i})=>w(`div`,{"data-slot":`required-indicator`,className:_e({color:t,size:n,className:r}),children:e||i});function ye({className:e,children:t,...n}){return T(fe.Root,{"data-slot":`label`,className:S(`text-text-positive`,`flex w-full items-center justify-between`,`select-none font-medium text-sm/6 leading-none`,`group-data-[disabled=true]:pointer-events-none`,`group-data-[disabled=true]:opacity-50`,`peer-disabled:cursor-not-allowed`,`peer-disabled:opacity-50`,`aria-required:*:data-[slot=required-indicator]:inline-block`,e),...n,children:[t,w(ve,{label:`Required`,color:`danger`,size:`sm`,className:`hidden`})]})}const be=C(`group/field flex w-full gap-2 data-[invalid=true]:text-danger *:data-[slot=field-content]:gap-0`,{variants:{orientation:{vertical:[`flex-col *:w-full [&>.sr-only]:w-auto`],horizontal:[`flex-row items-center`,`*:data-[slot=field-label]:flex-auto`,`has-[>[data-slot=field-content]]:items-start`,`has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px`],responsive:[`flex-col *:w-full [&>.sr-only]:w-auto`,`@md/field-group:flex-row`,`@md/field-group:items-center`,`@md/field-group:gap-4`,`@md/field-group:*:w-auto`,`@md/field-group:*:data-[slot=field-content]:basis-1/2`,`@md/field-group:*:data-[slot=field-content-main]:basis-1/2`,`@md/field-group:*:data-[slot=field-label]:flex-auto`,`@md/field-group:has-[>[data-slot=field-content]]:items-start`,`@md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px`]}},defaultVariants:{orientation:`vertical`}}),xe=N(({className:e,...t})=>w(`fieldset`,{"data-slot":`field-set`,className:S(`flex flex-col gap-6 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3`,e),...t}));xe.displayName=`FieldSet`;const Se=N(({className:e,variant:t=`legend`,...n})=>w(`legend`,{"data-slot":`field-legend`,"data-variant":t,className:S(`mb-3 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base`,e),...n}));Se.displayName=`FieldLegend`;const H=N(({className:e,...t})=>w(`div`,{"data-slot":`field-group`,className:S(`group/field-group @container/field-group`,`flex flex-col gap-7`,`data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4`,e),...t}));H.displayName=`FieldGroup`;const U=N(({className:e,orientation:t=`vertical`,...n})=>w(`div`,{"data-slot":`field`,"data-orientation":t,className:S(be({orientation:t}),e),...n}));U.displayName=`Field`;const W=N(({className:e,...t})=>w(`div`,{"data-slot":`field-content`,className:S(`group/field-content flex flex-col gap-1.5 leading-snug`,e),...t}));W.displayName=`FieldContent`;const G=N(({className:e,...t})=>w(`div`,{"data-slot":`field-content-main`,className:S(`relative`,e),...t})),K=N(({className:e,...t})=>w(ye,{"data-slot":`field-label`,className:S(`group/field-label peer/field-label flex h-6 gap-1 font-medium leading-snug`,`has-[>[data-slot=field]]:w-full`,`has-[>[data-slot=field]]:flex-col`,`has-[>[data-slot=field]]:rounded-md`,`has-[>[data-slot=field]]:border`,`has-[>[data-slot=field]]:border-border`,`has-data-[state=checked]:border-primary`,`*:data-[slot=field]:p-4 group-data-[disabled=true]/field:opacity-50`,e),...t}));K.displayName=`FieldLabel`;const q=N(({className:e,...t})=>w(`div`,{"data-slot":`field-label`,className:S(`flex w-fit items-center gap-2 font-medium text-sm leading-snug group-data-[disabled=true]/field:opacity-50`,e),...t}));q.displayName=`FieldTitle`;const J=N(({className:e,...t})=>w(`p`,{"data-slot":`field-description`,className:S(`nth-last-2:-mt-1 font-normal text-text-positive-weak text-xs leading-normal last:mt-0 [&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4 [[data-variant=legend]+&]:-mt-1.5`,e),...t}));J.displayName=`FieldDescription`;const Y=N(({isShow:e=!0,className:t,...n})=>e===!1?null:w(`div`,{"data-slot":`field-note`,className:S(`text-wrap rounded border border-primary-muted bg-primary-bg-subtle p-2 text-text-positive-weak text-xs`,t),...n}));Y.displayName=`FieldNote`;const X=N(({children:e,className:n,...r})=>T(`div`,{"data-slot":`field-separator`,"data-content":!!e,className:S(`relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2`,n),...r,children:[w(t,{className:`absolute inset-0 top-1/2`}),e&&w(`span`,{className:`relative mx-auto block w-fit bg-background px-2 text-text-positive-weak`,"data-slot":`field-separator-content`,children:e})]}));X.displayName=`FieldSeparator`;const Z=N(({className:e,children:t,errors:n,...r})=>{let i=I(()=>t||(n?n?.length===1&&n[0]?.message?w(`div`,{className:`flex flex-row items-center justify-start gap-x-0.5`,children:w(`p`,{children:n[0]?.code===`invalid_type`?`Không đúng định dạng`:n[0].message})}):w(`ul`,{className:`flex list-none flex-col`,children:n.map(e=>typeof e==`string`?w(`li`,{children:e},e):e?.message?w(`li`,{children:e.message},e.message):null)}):null),[t,n]);return i?w(`div`,{role:`alert`,"data-slot":`field-error`,className:S(`w-full font-semibold text-danger-strong text-xs`,e),...r,children:i}):null});Z.displayName=`FieldError`;const Ce=({label:e,description:t,options:n,helperText:r,orientation:i})=>{let a=Q(),o=V(a.form.store,({isSubmitting:e})=>e);return T(H,{className:`gap-y-4 px-4`,children:[T(U,{orientation:i,children:[T(W,{children:[w(K,{children:e}),w(J,{children:t}),w(Y,{isShow:!!r,children:r})]}),w(G,{children:w(H,{className:`flex flex-col gap-y-2`,children:n.map(e=>T(U,{orientation:`horizontal`,children:[w(c,{id:`${a.name}-${e.value}`,name:a.name,checked:a.state.value?.includes(e.value)??!1,disabled:o,onCheckedChange:t=>{if(t&&a.state.value!==null)a.pushValue(e.value);else if(t&&a.state.value===null)a.setValue([e.value]);else if(!t&&a.state.value!==null){let t=a.state.value.indexOf(e.value);t>-1&&a.removeValue(t)}else !t&&a.state.value===null&&a.setValue(null)}}),w(K,{htmlFor:`${a.name}-${e.value}`,className:`text-text-positive`,children:e.label})]},e.value))})})]}),w(X,{})]})},we=({label:t,description:n,placeholder:r,orientation:i=`responsive`,helperText:a,minDate:o,maxDate:s,required:c})=>{let l=Q(),m=I(()=>c?l.state.value===null:!1,[c,l.state.value]),h=I(()=>l.state.meta.isTouched&&!l.state.meta.isValid,[l.state.meta.isTouched,l.state.meta.isValid]);return T(H,{className:`px-4`,children:[T(U,{orientation:i,"data-invalid":h,children:[T(W,{children:[w(K,{htmlFor:l.name,"aria-required":m,children:t}),w(J,{children:n})]}),T(G,{className:`flex flex-col space-y-1`,children:[w(`div`,{className:`flex w-full flex-col`,children:T(f,{children:[w(u,{asChild:!0,children:T(e,{variant:`outline`,color:`muted`,size:`lg`,className:S(`flex items-center justify-between rounded font-normal outline-border`,`hover:bg-transparent`,`focus:outline-1 focus:outline-primary-strong focus:ring-4 focus:ring-primary-weak`,`data-[state=open]:text-text-positive-muted`,`data-[state=open]:outline-1`,`data-[state=open]:outline-primary-strong`,`data-[state=open]:ring-4`,`data-[state=open]:ring-primary-weak`,l.state.value===null&&`text-text-positive-muted`),children:[w(`p`,{children:l.state.value===null?r||`Select date`:le(l.state.value,`PPPP`)}),w(k,{strokeWidth:1})]})}),T(d,{align:`start`,side:`bottom`,className:`flex w-fit min-w-0 overflow-y-auto rounded p-0`,onBlur:l.handleBlur,children:[T(`div`,{className:`flex h-full flex-col space-y-2 border-r border-r-border p-2 [&>button]:justify-start [&>button]:text-sm`,children:[w(e,{variant:`ghost`,color:`muted`,className:`w-32`,onClick:()=>{l.handleChange(R())},children:`Today`}),w(e,{variant:`ghost`,color:`muted`,className:`w-32`,onClick:()=>{l.handleChange(se())},children:`Tomorrow`}),w(e,{variant:`ghost`,color:`muted`,className:`w-32`,onClick:()=>{l.handleChange(ce())},children:`Yesterday`}),w(e,{variant:`ghost`,color:`muted`,className:`w-32`,onClick:()=>{l.handleChange(z(R(),3))},children:`Last 3 Days`}),w(e,{variant:`ghost`,color:`muted`,className:`w-32`,onClick:()=>{l.handleChange(z(R(),7))},children:`Last 7 Days`}),w(e,{variant:`ghost`,color:`muted`,className:`w-32`,onClick:()=>{l.handleChange(z(R(),30))},children:`Last 30 Days`}),w(e,{variant:`ghost`,color:`muted`,className:`w-32`,onClick:()=>{l.handleChange(de(R()))},children:`This Month`}),w(e,{variant:`ghost`,color:`muted`,className:`w-32`,onClick:()=>{l.handleChange(ue(R()))},children:`Last Month`})]}),w(`div`,{className:`flex flex-1 flex-col`,children:w(`div`,{className:`min-w-73 border-b border-b-border p-2`,children:w(p,{mode:`single`,selected:l.state.value??void 0,hidden:{before:o??new Date(1900,0,1),after:s??new Date(2100,11,31)},onSelect:e=>{e&&l.handleChange(e)}})})})]})]})}),w(Y,{isShow:!!a,children:a})]})]}),w(X,{})]})},Te=({label:e,description:t,placeholder:n,helperText:r,orientation:i=`responsive`,showErrorMessage:a=!0,maxLength:o})=>{let{form:s,name:c,state:u,handleBlur:d,handleChange:f}=Q(),p=V(s.store,({isSubmitting:e})=>e),m=I(()=>u.meta.isDirty&&u.meta.isTouched&&!u.meta.isValid,[u.meta.isDirty,u.meta.isTouched,u.meta.isValid]),h=P(({target:{value:e}})=>{p||o&&e.length>o||f(e||null)},[p,o,f]),g=P(()=>{p||f(null)},[p,f]);return T(H,{className:`gap-y-4 px-4`,children:[T(U,{"data-invalid":m,orientation:i,children:[T(W,{children:[w(K,{htmlFor:c,children:e}),w(J,{children:t})]}),T(G,{children:[w(l,{id:c,name:c,value:u.value===null?``:u.value,"aria-invalid":m,autoComplete:`email`,placeholder:n,className:S(`pl-9`,p&&`pointer-events-none bg-muted-muted opacity-60`),onBlur:d,onChange:h}),w(`div`,{className:`absolute top-0 left-0 flex size-9 items-center justify-center text-muted`,children:w(D,{size:14})}),w(`button`,{type:`button`,"aria-label":`Clear`,className:`absolute inset-e-0 inset-y-0 top-3 flex h-fit w-8 cursor-pointer items-center justify-center rounded-e-md text-text-positive-weak outline-none transition-[color,box-shadow] hover:text-text-positive focus:text-text-positive-strong`,onClick:g,children:w(ie,{size:14,"aria-hidden":`true`})}),w(`div`,{className:`mt-1 flex w-full items-start justify-start`,children:a&&u.meta.isDirty&&w(Z,{errors:u.meta.errors})}),w(Y,{isShow:!!r,children:r})]})]}),w(X,{})]})},Ee=e=>e?/^-?\d*\.?\d*$/:/^\d*\.?\d*$/,De=e=>Number(e).toLocaleString(),Oe=(e,t,n)=>{if(n===`none`)return e;let r=10**t,i=e*r;switch(n){case`up`:return Math.ceil(i)/r;case`down`:return Math.floor(i)/r;case`nearest`:return i%1<.1?Math.floor(i)/r:i%1>=.59?Math.ceil(i)/r:(Math.floor(i)+.5)/r;default:return e}},ke=({disabled:e=!1,readOnly:t=!1,allowNegative:n=!1,numberAfterDecimalPoint:r=2,roundingRule:i=`none`,value:a=null,unitText:o,decimal:s,placeholder:c,precision:u,wrapperClassName:d,className:f,onChange:p,onValueChange:m,onFocus:h,onBlur:g,..._})=>{let v=L(null),y=L(null),[b,x]=oe(a?.toString()??null),C=I(()=>s?.[1]??r,[s,r]),E=I(()=>s&&s[0]-s[1],[s]),D=I(()=>Ee(n),[n]),O=P(e=>{if(!C||e===`-`)return!0;let[t,n=``]=e.split(`.`),r=t.startsWith(`-`)?t.length-1:t.length;return n.length<=C&&r<=(E??1/0)},[C,E]),k=P(e=>{if(e===`0`)return`0`;if(!Number(e))return null;let[t,n=``]=Oe(parseFloat(e),Math.min(C-1,u||0),i).toString().split(`.`),r=De(t);return n?`${r}.${n}`:r},[C,u,i]),A=P(e=>{let t=e===`0`,n=e===`-`||/^-0+(\.0+)?$/.test(e)||/^-0*\.$/.test(e);if(t){m?.(0),x(e);return}if(n){x(()=>(m?.(0),e));return}},[m]),j=P(e=>{p?.(e);let{value:t}=e.target;if(t===``||t===void 0){m?.(null),x(null);return}A(t),!(!D.test(t)||!O(t))&&(m?.(parseFloat(t)||0),x(t))},[O,p,m,A,D]),ee=P(e=>{t||(h?.(e),x(e=>typeof e==`string`?e.replace(/,/g,``):null))},[t,h]),M=P(e=>{t||(g?.(e),x(e=>e===null?null:e===`0`||e===`-`||/^-0+(\.0+)?$/.test(e)||/^-0*\.$/.test(e)?`0`:typeof e==`string`?k(e):null))},[t,k,g]);return F(()=>{let e=document.activeElement===y.current;if(a==null||!D.test(a.toString())||!O(a.toString())){x(null);return}x(t=>e?t:k(a.toString()))},[k,a,O,D]),F(()=>{if(!v.current||!y.current||!o)return;let e=v.current.offsetWidth;y.current.style.setProperty(`padding-right`,`${(e+10)/16}rem`)},[o]),T(`div`,{className:S(`relative`,d),children:[w(l,{..._,ref:y,value:b||(t?`0`:``),placeholder:c,disabled:e,readOnly:t,className:S(`text-end font-number text-sm slashed-zero lining-nums tabular-nums`,t&&`bg-muted text-muted-foreground`,f),onChange:j,onFocus:ee,onBlur:M}),o&&w(`span`,{ref:v,className:`-translate-y-1/2 pointer-events-none absolute top-1/2 right-2 text-muted-foreground text-sm`,children:o})]})},Ae=({label:e,description:t,placeholder:n,helperText:r,orientation:i=`responsive`,showErrorMessage:a=!0,rounding:o,decimalPlaces:s,percision:c,unit:l,required:u,allowNegative:d})=>{let f=Q(),p=V(f.form.store,({isSubmitting:e})=>e),m=I(()=>f.state.meta.errors,[f.state.meta.errors]),h=I(()=>u?f.state.value===null:!1,[u,f.state.value]),g=P(e=>{p||f.handleChange(e)},[p,f.handleChange]);return T(H,{className:`gap-y-4 px-4`,children:[T(U,{orientation:i,"data-invalid":f.state.meta.isTouched&&!f.state.meta.isValid,children:[T(W,{children:[w(K,{htmlFor:f.name,"aria-required":h,children:e}),w(J,{children:t})]}),T(G,{children:[T(`div`,{className:`relative w-full`,children:[w(ke,{id:f.name,value:f.state.value,"aria-invalid":f.state.meta.isTouched&&!f.state.meta.isValid&&f.state.meta.isDirty,placeholder:n,roundingRule:o,numberAfterDecimalPoint:s,precision:c,unitText:l,allowNegative:d,className:S(p&&`pointer-events-none bg-muted-muted opacity-60`),onBlur:f.handleBlur,onValueChange:g}),p&&w(`div`,{className:`absolute inset-s-2 inset-y-0 top-2.5 text-muted-weak [&>svg]:size-3.5`,children:w(M,{className:`animate-spin text-primary-strong`})}),f.state.meta.isDirty&&a&&!!m.length&&w(`div`,{className:`absolute inset-s-2 inset-y-0 top-2.75 text-danger-strong [&>svg]:size-3.5`,children:w(O,{})}),w(`div`,{className:`mt-1 flex w-full flex-col items-end justify-end`,children:f.state.meta.isDirty&&a&&w(Z,{errors:m})})]}),w(Y,{isShow:!!r,children:r})]})]}),w(X,{})]})},je=({label:e,description:t,placeholder:n,orientation:r=`responsive`,helperText:i,showErrorMessage:a=!0})=>{let{form:o,name:s,state:c,handleBlur:u,handleChange:d}=Q(),f=V(o.store,({isSubmitting:e})=>e),[p,m]=oe(!1),h=I(()=>c.meta.isDirty&&c.meta.isTouched&&!c.meta.isValid,[c.meta.isDirty,c.meta.isTouched,c.meta.isValid]),g=P(()=>m(e=>!e),[]),_=P(({target:{value:e}})=>{f||d(e||null)},[f,d]);return w(H,{className:`gap-y-4 px-4`,children:T(U,{"data-invalid":h,orientation:r,children:[T(W,{children:[w(K,{htmlFor:s,children:e}),w(J,{children:t})]}),T(G,{children:[w(l,{id:s,type:p?`text`:`password`,placeholder:n,value:c.value??``,"aria-invalid":h,autoComplete:`new-password`,onBlur:u,onChange:_}),w(`button`,{className:`absolute inset-e-0 inset-y-0 flex size-9 items-center justify-center rounded-e-md text-muted outline-none transition-[color,box-shadow] focus:z-10 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,type:`button`,onClick:g,"aria-label":p?`Hide password`:`Show password`,"aria-pressed":p,"aria-controls":`password`,children:w(p?j:A,{size:16,"aria-hidden":`true`})}),w(`div`,{className:`mt-1 flex w-full items-start justify-start`,children:a&&c.meta.isDirty&&w(Z,{errors:c.meta.errors})}),w(Y,{isShow:!!i,children:i})]})]})})},Me=({label:e,description:t,orientation:n,options:r,helperText:i})=>{let a=Q(),o=V(a.form.store,({isSubmitting:e})=>e);return T(H,{className:`px-4`,children:[T(U,{orientation:n,className:`flex-col gap-2`,children:[T(W,{children:[w(K,{children:e}),w(J,{children:t}),w(Y,{isShow:!!i,children:i})]}),w(G,{children:w(h,{defaultValue:a.state.value??void 0,className:`w-full`,onValueChange:a.handleChange,children:r.map(e=>w(K,{className:S(`h-fit`,a.state.value===e.value&&`border-primary-weak! bg-primary-bg-subtle`,o&&`pointer-events-none bg-muted-muted opacity-60`,a.state.value===e.value&&o&&`border-border-strong!`),children:T(U,{orientation:`horizontal`,className:`justify-between rounded p-2!`,children:[T(W,{className:`gap-1!`,children:[w(q,{children:e.label}),w(J,{className:`text-xs`,children:e.description})]}),w(m,{value:e.value})]})},e.value))})})]}),w(X,{})]})},Ne=({label:e,description:t,placeholder:n,orientation:r=`responsive`,options:i,helperText:a,required:o=!1})=>{let s=Q(),c=I(()=>s.state.meta.isTouched&&!s.state.meta.isValid,[s.state.meta.isTouched,s.state.meta.isValid]),l=I(()=>o?s.state.value===null:!1,[o,s.state.value]),u=I(()=>s.state.meta.errors,[s.state.meta.errors]);return T(H,{className:`gap-y-4 px-4`,children:[T(U,{orientation:r,"data-invalid":s.state.meta.isTouched&&!s.state.meta.isValid,children:[T(W,{children:[w(K,{htmlFor:s.name,"aria-required":l,children:e}),w(J,{children:t})]}),T(G,{className:`flex flex-col`,children:[T(b,{defaultValue:s.state.value||void 0,onValueChange:s.handleChange,children:[w(y,{"aria-invalid":c?`true`:void 0,onBlur:s.handleBlur,children:w(g,{placeholder:n})}),T(v,{children:[!!i.length&&i.map(e=>w(_,{value:e.value,children:e.label},e.value)),!i.length&&T(`div`,{className:`flex items-center justify-center gap-x-2 rounded border border-border bg-muted-muted px-4 py-6.5 text-center text-sm text-text-positive-weak`,children:[w(te,{strokeWidth:1}),`No options available`]})]})]}),w(`div`,{className:`mt-1 flex w-full flex-col items-end justify-end`,children:w(Z,{errors:u})}),w(Y,{isShow:!!a,children:a})]})]}),w(X,{})]})};function Pe({className:e,...t}){return w(me.Root,{"data-slot":`switch`,className:S(`peer`,`w-8 shrink-0 cursor-pointer items-center rounded-full shadow-xs transition-all`,`inline-flex h-5`,`focus-visible:border-primary-strong`,`focus-visible:ring-primary-weak`,`focus-visible:ring-4`,`disabled:cursor-not-allowed`,`disabled:opacity-50`,`-outline-offset-1 inset-shadow-2xs outline-1`,`data-[state=checked]:bg-primary`,`data-[state=checked]:outline-primary-strong`,`data-[state=unchecked]:bg-muted-weak`,`data-[state=unchecked]:outline-border`,`data-[state=unchecked]:[&_span]:size-4`,`data-[state=unchecked]:[&_span]:translate-x-0.5`,`data-[state=unchecked]:[&_span]:rtl:-translate-x-0.5`,e),...t,children:w(me.Thumb,{"data-slot":`switch-thumb`,className:S(`block size-4 bg-card shadow-xs`,`pointer-events-none rounded-full ring-0 transition-transform`,`data-[state=checked]:translate-x-[calc(100%-3px)]`,`data-[state=unchecked]:translate-x-0`)})})}const Fe=({label:e,description:t,helperText:n})=>{let r=Q();return T(H,{className:`gap-y-4 px-4`,children:[T(U,{orientation:`vertical`,className:`relative justify-between gap-y-1`,children:[T(W,{children:[w(q,{className:`cursor-pointer`,children:w(`label`,{htmlFor:r.name,children:e})}),w(J,{children:t}),w(Pe,{id:r.name,checked:r.state.value??!1,className:`absolute top-1 right-1`,onBlur:r.handleBlur,onCheckedChange:r.handleChange})]}),w(Y,{isShow:!!n,children:n})]}),w(X,{})]})},Ie=({label:e,description:t,placeholder:n,helperText:r,counter:i=!1,orientation:a=`responsive`,showClearButton:o=!1,showErrorMessage:s=!0,required:c=!1,maxLength:u})=>{let d=ae(),f=L(null),{form:p,name:m,state:h,handleBlur:g,handleChange:_}=Q(),v=V(p.store,({isSubmitting:e})=>e),y=o&&!v&&!!h.value&&!h.meta.errors.length,b=h.value?h.value.length:0,x=I(()=>{if(!i)return``;let e=`character${[0,1].includes(b)?``:`s`}`;return i&&u?`${b} / ${u} character${b?`s`:``}`:`${b} ${e}`},[b,i,u]),C=h.meta.isDirty&&h.meta.isTouched&&!h.meta.isValid,E=c?h.value===null:!1,D=u&&b>=u*.8,k=u&&b>=u,A=P(({target:{value:e}})=>{v||i&&u&&e.length>u||_(e||null)},[v,i,u,_]),j=P(()=>{v||(_(null),f.current?.focus())},[v,_]);return T(H,{className:`gap-y-4 px-4`,children:[T(U,{orientation:a,"data-invalid":C,children:[T(W,{children:[w(K,{"aria-required":E,htmlFor:d,children:T(`p`,{children:[e,c&&w(`span`,{className:`text-danger-strong`,children:` *`})]})}),w(J,{children:t})]}),T(G,{children:[w(l,{ref:f,id:d,name:m,value:h.value??``,"aria-invalid":C,autoComplete:`off`,placeholder:n,autoCapitalize:`none`,autoCorrect:`off`,className:S(`pr-6`,v&&`pointer-events-none bg-muted-muted opacity-60`),onBlur:g,onChange:A}),y&&w(`button`,{type:`button`,"aria-label":`Clear`,className:`absolute inset-e-0 inset-y-0 top-3 flex h-fit w-8 cursor-pointer items-center justify-center rounded-e-md text-text-positive-weak outline-none transition-[color,box-shadow] hover:text-text-positive focus:text-text-positive-intense [&>svg]:size-3.5`,onClick:j,children:w(ie,{"aria-hidden":`true`})}),v&&w(`div`,{className:`absolute inset-e-2 inset-y-0 top-2.5 text-muted-weak`,children:w(M,{size:14,className:`animate-spin text-primary-strong`})}),h.meta.isDirty&&s&&!!h.meta.errors.length&&w(`div`,{className:`absolute inset-e-2 inset-y-0 top-2.5 text-danger-strong`,children:w(O,{"aria-hidden":`true`,size:14})}),T(`div`,{className:`my-1 flex w-full items-start justify-between gap-x-2`,children:[h.meta.isDirty&&s?w(Z,{className:`flex-1`,errors:h.meta.errors}):w(`div`,{}),!!i&&w(`p`,{className:S(`h-4 flex-0 text-nowrap text-end text-xs tabular-nums transition-colors`,k?`font-medium text-danger-strong`:D?`text-warning-strong`:`text-text-positive-weak`),children:x})]}),w(Y,{isShow:!!r,children:r})]})]}),w(X,{})]})},Le=N(({label:e,description:t,placeholder:n,helperText:r,counter:i=!1,orientation:a=`responsive`,showErrorMessage:o=!0,required:s=!1,maxLength:c})=>{let l=ae(),{form:u,state:d,name:f,handleBlur:p,handleChange:m}=Q(),h=V(u.store,({isSubmitting:e})=>e),g=d.value?d.value.length:0,_=I(()=>{if(!i)return``;let e=`character${[0,1].includes(g)?``:`s`}`;return i&&c?`${g} / ${c} character${g?`s`:``}`:`${g} ${e}`},[g,i,c]),v=d.meta.isDirty&&d.meta.isTouched&&!d.meta.isValid,y=s?d.value===null:!1,b=d.meta.errors,C=c&&g>=c*.8,E=c&&g>=c,D=P(({target:{value:e}})=>{h||i&&c&&e.length>c||m(e||null)},[h,i,c,m]);return T(H,{className:`gap-y-4 px-4`,children:[T(U,{orientation:a,"data-invalid":v,children:[T(W,{children:[w(K,{"aria-required":y,htmlFor:l,children:T(`p`,{children:[e,s&&w(`span`,{className:`text-danger-strong`,children:` *`})]})}),w(J,{children:t})]}),T(G,{children:[w(x,{id:l,name:f,value:d.value===null?``:d.value,"aria-invalid":v,autoCapitalize:`none`,autoComplete:`off`,placeholder:n,className:S(h&&`pointer-events-none bg-muted-muted opacity-60`),onChange:D,onBlur:p}),h&&w(`div`,{className:`absolute inset-e-2 inset-y-0 top-2.5 text-muted-weak`,children:w(M,{size:14,className:`animate-spin text-primary-strong`})}),d.meta.isDirty&&o&&!!b.length&&w(`div`,{className:`absolute inset-e-2 inset-y-0 top-2.5 text-danger-strong`,children:w(O,{size:14})}),T(`div`,{className:`my-1 flex w-full items-start justify-between gap-x-2`,children:[d.meta.isDirty&&o?w(Z,{className:`flex-1`,errors:d.meta.errors}):w(`div`,{}),!!i&&w(`p`,{className:S(`h-4 flex-0 text-nowrap text-end text-xs tabular-nums transition-colors`,E?`font-medium text-danger-strong`:C?`text-warning-strong`:`text-text-positive-weak`),children:_})]}),w(Y,{isShow:!!r,children:r})]})]}),w(X,{})]})}),Re=({label:t,className:n})=>{let r=$(),i=P(async()=>{await r.handleSubmit({submitAction:`submit`}),r.state.isSubmitSuccessful&&r.reset()},[r]);return w(r.Subscribe,{selector:e=>({disabled:e.isPristine||!e.isValid||e.isValidating||e.isSubmitting||!e.canSubmit||e.isDefaultValue,isSubmitting:e.isSubmitting}),children:({disabled:r,isSubmitting:a})=>w(e,{type:`button`,size:`md`,disabled:r,isLoading:a,className:S(`min-h-8 min-w-32`,n),onClick:i,children:t??`Submit`})})},ze=({type:t=`create`})=>{let n=$();return T(`div`,{className:`flex h-8 items-center justify-between`,children:[w(n.Subscribe,{selector:e=>({disabled:e.isPristine||e.isSubmitting}),children:({disabled:t})=>w(e,{color:`muted`,variant:`outline`,type:`button`,size:`md`,disabled:t,className:`h-full min-w-32`,onClick:()=>n.reset(),children:`Cancel`})}),t===`create`&&w(n.Subscribe,{selector:e=>({disabled:e.isPristine||!e.isValid||e.isValidating||e.isSubmitting||!e.canSubmit||e.isDefaultValue,isSubmitting:e.isSubmitting}),children:({disabled:t,isSubmitting:r})=>T(e,{type:`submit`,size:`md`,disabled:t,isLoading:r,className:`h-full min-w-32`,onClick:async()=>{await n.handleSubmit({submitAction:`create`}),n.state.isSubmitSuccessful&&n.reset()},children:[w(ne,{}),`Add New`]})}),t===`update`&&w(n.Subscribe,{selector:e=>({disabled:e.isPristine||!e.isValid||e.isValidating||e.isSubmitting||!e.canSubmit||e.isDefaultValue,isSubmitting:e.isSubmitting}),children:({disabled:t,isSubmitting:r})=>T(e,{type:`submit`,size:`md`,disabled:t,isLoading:r,className:`h-full min-w-32`,onClick:async()=>{await n.handleSubmit({submitAction:`update`}),n.state.isSubmitSuccessful&&n.reset()},children:[w(E,{}),`Update`]})})]})};function Be({className:e,orientation:t=`horizontal`,decorative:n=!0,...r}){return w(pe.Root,{"data-slot":`separator`,decorative:n,orientation:t,className:S(`shrink-0 bg-border-weak`,`data-[orientation=horizontal]:h-px`,`data-[orientation=horizontal]:w-full`,`data-[orientation=vertical]:h-full`,`data-[orientation=vertical]:w-px`,e),...r})}const Ve=({title:t,description:n,onDelete:r,children:i})=>T(`section`,{"data-slot":`card-form`,className:`relative flex flex-col rounded-md bg-card pb-4 shadow-card ring-4 ring-border-weak`,children:[T(`div`,{"data-slot":`card-form-header`,className:`flex flex-col space-y-1 p-4`,children:[w(`p`,{className:`font-semibold text-lg`,children:t}),!!n&&w(`p`,{className:`text-muted text-sm`,children:n})]}),w(Be,{}),w(`div`,{"data-slot":`card-form-main`,className:`flex flex-col space-y-4 py-4`,children:i}),!!r&&T(e,{color:`danger`,variant:`outline`,size:`sm`,className:`absolute top-2 right-2`,onClick:e=>{r?.(),e.preventDefault(),e.stopPropagation()},children:[w(re,{}),`Remove`]})]}),He=({children:e})=>w(`div`,{"data-slot":`section-form`,className:`flex flex-col space-y-4`,children:e}),Ue=({...e})=>w(`button`,{...e,type:`button`,className:`min-w-40 cursor-pointer rounded-sm border border-border bg-card px-4 py-2 font-semibold text-sm text-text-positive shadow-xs outline-none transition-all hover:opacity-90 focus:border-border focus:ring-3 focus:ring-border/80 focus:ring-offset-2 focus:drop-shadow-none disabled:pointer-events-none disabled:opacity-60 disabled:drop-shadow-none`,children:`Hủy`}),We=({isSubmitting:e,submitText:t=`Submit`,...n})=>w(`button`,{...n,type:`button`,"data-loading":e?`true`:void 0,className:`relative min-h-9.5 min-w-40 cursor-pointer rounded-sm border border-primary-strong bg-primary px-4 py-2 font-semibold text-sm text-text-negative shadow-card outline-none transition-all hover:opacity-90 focus:border-transparent focus:ring-3 focus:ring-primary/80 focus:ring-offset-2 focus:drop-shadow-none disabled:pointer-events-none disabled:opacity-60 disabled:drop-shadow-none data-[loading=true]:pointer-events-none data-[loading=true]:opacity-80`,children:e?w(ee,{size:16,strokeWidth:3,className:`absolute top-1/2 left-1/2 z-10 -translate-x-1/2 -translate-y-1/2 animate-spin`}):t}),Ge=({title:e,submitText:n,open:c,onOpenChange:l,children:u})=>{let d=$(),f=P(e=>{e||d.reset(),l?.(e)},[d.reset,l]);return w(s,{open:c,onOpenChange:f,children:T(r,{"data-slot":`dialog-portal`,children:[w(o,{}),T(a,{className:`flex size-full max-h-dvh max-w-dvw flex-col gap-0 overflow-y-auto p-0 shadow-dialog sm:h-auto sm:max-h-[85dvh] sm:max-w-2xl sm:rounded-sm`,children:[w(`div`,{"data-slot":`dialog-header`,className:`flex flex-col items-center justify-center gap-2 px-4 py-6 text-center shadow-sm sm:text-left`,children:w(i,{"data-slot":`dialog-title`,children:e})}),w(t,{}),w(`div`,{"data-slot":`dialog-content`,className:`relative flex flex-col space-y-4 overflow-y-auto p-0 pt-6 max-sm:flex-1 sm:p-4`,children:u}),w(t,{}),T(`div`,{"data-slot":`dialog-footer`,className:`flex flex-col-reverse items-center justify-between gap-2 px-6 py-4 shadow-sm sm:flex-row sm:justify-end max-sm:[&>button]:w-full`,children:[w(d.Subscribe,{selector:e=>({disabled:e.isSubmitting}),children:({disabled:e})=>w(Ue,{disabled:e,onClick:()=>{d.reset(),f(!1)}})}),w(d.Subscribe,{selector:e=>({isSubmitting:e.isSubmitting,disabled:e.isPristine||!e.isValid||e.isValidating||e.isSubmitting||!e.canSubmit}),children:({isSubmitting:e,disabled:t})=>w(We,{isSubmitting:e,disabled:t,submitText:n,onClick:()=>d.handleSubmit()})})]})]})]})})},Ke=({label:e,description:t,helperText:n,orientation:r=`responsive`,children:i})=>T(H,{className:`gap-y-4 px-4`,children:[T(U,{orientation:r,children:[T(W,{children:[w(K,{children:e}),w(J,{children:t})]}),T(G,{children:[i,w(Y,{isShow:!!n,children:n})]})]}),w(X,{})]}),qe=({title:e,open:t,contentClassName:r,onOpenChange:i,children:a})=>{let o=$();return w(B.Root,{"data-slot":`dialog`,open:t,onOpenChange:i,children:T(B.Portal,{"data-slot":`dialog-portal`,children:[w(B.Overlay,{"data-slot":`dialog-overlay`,className:S(`fixed inset-0 z-40 bg-black/50 backdrop-blur-sm`,`data-[state=open]:animate-in`,`data-[state=open]:fade-in`,`data-[state=closed]:animate-out`,`data-[state=closed]:fade-out`)}),w(B.Content,{"data-slot":`dialog-content`,className:S(`fixed top-4 right-4 z-50 h-[calc(100dvh-2rem)] min-w-sm max-w-xl rounded-md bg-background drop-shadow-lg`,`duration-300`,`data-[state=open]:animate-in`,`data-[state=open]:slide-in-from-right`,`data-[state=open]:fade-in`,`data-[state=closed]:animate-out`,`data-[state=closed]:slide-out-to-right`,`data-[state=closed]:fade-out`),children:T(`section`,{className:`relative flex size-full flex-col`,children:[w(`header`,{className:`flex h-14 items-center border-border border-b px-4`,children:w(`h2`,{className:`font-semibold text-lg text-primary-strong`,children:e})}),w(`div`,{className:S(`flex flex-1 flex-col overflow-y-auto py-4`,r),children:a}),T(`div`,{className:`flex flex-col space-y-4 border-border border-t px-4 py-2`,children:[w(o.Subscribe,{selector:e=>({isSubmitting:e.isSubmitting,disabled:e.isPristine||!e.isValid||e.isValidating||e.isSubmitting||!e.canSubmit}),children:({isSubmitting:e,disabled:t})=>w(We,{isSubmitting:e,disabled:t,className:`w-full`,onClick:()=>o.handleSubmit()})}),w(o.Subscribe,{selector:e=>({disabled:e.isPristine||e.isSubmitting}),children:({disabled:e})=>w(Ue,{disabled:e,className:`w-full`,onClick:()=>{o.reset(),i?.(!1)}})})]}),w(B.Close,{asChild:!0,children:w(n,{className:`absolute top-2 right-2`})})]})})]})})},Je=({children:e})=>w(`header`,{"data-slot":`section-header`,className:`px-4 pt-2.5 pb-2 font-medium text-base text-text-positive`,children:e}),Ye=({children:e})=>w(`main`,{"data-slot":`section-main`,className:`relative flex flex-col space-y-4 py-4`,children:e}),Xe=({title:e,children:t})=>T(`section`,{"data-slot":`section-form`,className:`flex flex-col rounded-md bg-background shadow-card ring-4 ring-border-weak`,children:[w(Je,{children:e}),w(Be,{}),w(Ye,{children:t})]}),Ze=({title:e,description:t,helperText:n})=>T(H,{className:`gap-y-4 px-4`,children:[T(U,{className:`gap-0`,children:[T(W,{children:[w(Se,{className:`mb-1`,children:e}),w(J,{children:t})]}),w(Y,{isShow:!!n,children:n})]}),w(X,{})]}),{fieldContext:Qe,formContext:$e,useFieldContext:Q,useFormContext:$}=ge(),{useAppForm:et,withForm:tt,withFieldGroup:nt}=he({fieldContext:Qe,formContext:$e,fieldComponents:{TextField:Ie,TextareaField:Le,NumberField:Ae,EmailField:Te,PasswordField:je,SelectField:Ne,DateField:we,SwitchField:Fe,RadioGroupField:Me,CheckboxField:Ce,FieldGroup:H,Field:U,FieldContent:W,FieldLabel:K,FieldContentMain:G,FieldSeparator:X,FieldError:Z},formComponents:{TanStackDialogForm:Ge,TanStackPopoverForm:qe,TanStackContainerForm:He,TanStackSectionForm:Xe,TanStackCardForm:Ve,TanStackFieldGroup:Ke,TanStackTitleField:Ze,TanStackActionsForm:ze,TanStackActionSubmit:Re}});export{U as Field,W as FieldContent,G as FieldContentMain,Z as FieldError,H as FieldGroup,K as FieldLabel,X as FieldSeparator,Q as useTanStackFieldContext,et as useTanStackForm,$ as useTanStackFormContext,nt as withTanStackFieldGroup,tt as withTanStackForm};
2
- //# sourceMappingURL=index.mjs.map
1
+ import"../../button.variants-DeCyas1F.mjs";import"../../button-C6ybzxxj.mjs";import"../../heading-DN67djxs.mjs";import"../../paragraph-Ch5TvEqL.mjs";import"../../tooltip-Bj0iOG4s.mjs";import"../../separator-BMsbHAVt.mjs";import"../../close-BU0kWRVo.mjs";import"../../dialog-BchwY6-N.mjs";import"../../command-bpcnKEbR.mjs";import"../../checkbox-DJEdYOjA.mjs";import"../../input-Cd0G5y-9.mjs";import{a as e,c as t,d as n,f as r,i,l as a,n as o,o as s,r as c,s as l,t as u,u as d}from"../../tanstack-form-CJ43hVb_.mjs";import"../../popover-OJXFbqJi.mjs";import"../../calendar-JKxWM6AF.mjs";import"../../radio-group-CAgfOr7-.mjs";import"../../select-Ze8Fq88G.mjs";import"../../textarea-CdGSEkZB.mjs";export{s as Field,l as FieldContent,t as FieldContentMain,a as FieldError,d as FieldGroup,n as FieldLabel,r as FieldSeparator,u as useTanStackFieldContext,o as useTanStackForm,c as useTanStackFormContext,i as withTanStackFieldGroup,e as withTanStackForm};
@@ -0,0 +1,2 @@
1
+ import{t as e}from"./separator-BMsbHAVt.mjs";import{t}from"./label-OmlGaZ5h.mjs";import{BanIcon as n}from"lucide-react";import{memo as r,useMemo as i}from"react";import{jsx as a,jsxs as o}from"react/jsx-runtime";import{cn as s}from"@customafk/react-toolkit/utils";import{cva as c}from"class-variance-authority";const l=r(({className:e,...t})=>a(`fieldset`,{"data-slot":`field-set`,className:s(`flex flex-col gap-6`,`has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3`,e),...t}));l.displayName=`FieldSet`;const u=r(({className:e,variant:t=`legend`,...n})=>a(`legend`,{"data-slot":`field-legend`,"data-variant":t,className:s(`mb-3 font-medium`,`data-[variant=legend]:text-base`,`data-[variant=label]:text-sm`,e),...n}));u.displayName=`FieldLegend`;const d=r(({className:e,...t})=>a(`div`,{"data-slot":`field-group`,className:s(`group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4`,e),...t}));d.displayName=`FieldGroup`;const f=c(`group/field flex w-full gap-3 data-[invalid=true]:text-destructive`,{variants:{orientation:{vertical:[`flex-col *:w-full [&>.sr-only]:w-auto`],horizontal:[`flex-row items-center`,`*:data-[slot=field-label]:flex-auto`,`has-[>[data-slot=field-content]]:items-start`,`has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px`],responsive:[`flex-col *:w-full [&>.sr-only]:w-auto`,`@md/field-group:flex-row`,`@md/field-group:items-center`,`@md/field-group:*:w-auto`,`@md/field-group:*:data-[slot=field-label]:flex-auto`,`@md/field-group:has-[>[data-slot=field-content]]:items-start`,`@md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px`]}},defaultVariants:{orientation:`vertical`}}),p=r(({className:e,orientation:t=`vertical`,...n})=>a(`div`,{"data-slot":`field`,"data-orientation":t,className:s(f({orientation:t}),e),...n}));p.displayName=`Field`;const m=r(({className:e,...t})=>a(`div`,{"data-slot":`field-content`,className:s(`group/field-content flex basis-2/5 flex-col gap-1.5 leading-snug`,e),...t}));m.displayName=`FieldContent`;const h=r(({className:e,...n})=>a(t,{"data-slot":`field-label`,className:s(`group/field-label peer/field-label flex w-fit gap-2 leading-snug`,`group-data-[disabled=true]/field:opacity-50`,`has-[>[data-slot=field]]:w-full`,`has-[>[data-slot=field]]:flex-col`,`has-[>[data-slot=field]]:rounded-md`,`has-[>[data-slot=field]]:border`,`*:data-[slot=field]:p-4`,`has-data-[state=checked]:bg-primary/5`,`has-data-[state=checked]:border-primary`,e),...n}));h.displayName=`FieldLabel`;const g=r(({className:e,...t})=>a(`div`,{"data-slot":`field-label`,className:s(`flex w-fit items-center gap-2 font-medium text-sm leading-snug group-data-[disabled=true]/field:opacity-50`,e),...t}));g.displayName=`FieldTitle`;const _=r(({className:e,...t})=>a(`p`,{"data-slot":`field-description`,className:s(`text-text-positive-weak text-sm leading-normal font-normal group-has-data-[orientation=horizontal]/field:text-balance`,`last:mt-0 nth-last-2:-mt-1 [[data-variant=legend]+&]:-mt-1.5`,`[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4`,e),...t}));_.displayName=`FieldDescription`;const v=r(({children:t,className:n,...r})=>o(`div`,{"data-slot":`field-separator`,"data-content":!!t,className:s(`relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2`,n),...r,children:[a(e,{className:`absolute inset-0 top-1/2`}),t&&a(`span`,{className:`relative mx-auto block w-fit bg-background px-2 text-text-positive-weak`,"data-slot":`field-separator-content`,children:t})]}));v.displayName=`FieldSeparator`;const y=r(({className:e,children:t,errors:r,...c})=>{let l=i(()=>t||(r?r?.length===1&&r[0]?.message?o(`div`,{className:`flex flex-row items-center justify-start gap-x-0.5`,children:[a(n,{size:14}),a(`p`,{children:r[0].message})]}):a(`ul`,{className:`ml-4 flex list-disc flex-col gap-1`,children:r.map(e=>typeof e==`string`?a(`li`,{children:e},e):e?.message?a(`li`,{children:e.message},e.message):null)}):null),[t,r]);return l?a(`div`,{role:`alert`,"data-slot":`field-error`,className:s(`w-full font-normal text-danger text-xs`,e),...c,children:l}):null});y.displayName=`FieldError`;export{d as a,v as c,y as i,l,m as n,h as o,_ as r,u as s,p as t,g as u};
2
+ //# sourceMappingURL=field-CXVnw75a.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-CXVnw75a.mjs","names":[],"sources":["../packages/components/ui/field.tsx"],"sourcesContent":["'use client';\n\nimport { memo, useMemo } from 'react';\n\nimport { BanIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { Label } from '@/components/ui/label';\nimport { Separator } from '@/components/ui/separator';\n\nconst FieldSet = memo(({ className, ...props }: React.ComponentProps<'fieldset'>) => {\n return (\n <fieldset\n data-slot=\"field-set\"\n className={cn('flex flex-col gap-6', 'has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3', className)}\n {...props}\n />\n );\n});\nFieldSet.displayName = 'FieldSet';\n\nconst FieldLegend = memo(({ className, variant = 'legend', ...props }: React.ComponentProps<'legend'> & { variant?: 'legend' | 'label' }) => {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn('mb-3 font-medium', 'data-[variant=legend]:text-base', 'data-[variant=label]:text-sm', className)}\n {...props}\n />\n );\n});\nFieldLegend.displayName = 'FieldLegend';\n\nconst FieldGroup = memo(({ className, ...props }: React.ComponentProps<'div'>) => {\n return (\n <div\n data-slot=\"field-group\"\n className={cn(\n 'group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4',\n className\n )}\n {...props}\n />\n );\n});\nFieldGroup.displayName = 'FieldGroup';\n\nconst fieldVariants = cva('group/field flex w-full gap-3 data-[invalid=true]:text-destructive', {\n variants: {\n orientation: {\n vertical: ['flex-col *:w-full [&>.sr-only]:w-auto'],\n horizontal: [\n 'flex-row items-center',\n '*:data-[slot=field-label]:flex-auto',\n 'has-[>[data-slot=field-content]]:items-start',\n 'has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',\n ],\n responsive: [\n 'flex-col *:w-full [&>.sr-only]:w-auto',\n '@md/field-group:flex-row',\n '@md/field-group:items-center',\n '@md/field-group:*:w-auto',\n '@md/field-group:*:data-[slot=field-label]:flex-auto',\n '@md/field-group:has-[>[data-slot=field-content]]:items-start',\n '@md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',\n ],\n },\n },\n defaultVariants: {\n orientation: 'vertical',\n },\n});\n\nconst Field = memo(({ className, orientation = 'vertical', ...props }: React.ComponentProps<'div'> & VariantProps<typeof fieldVariants>) => {\n return <div data-slot=\"field\" data-orientation={orientation} className={cn(fieldVariants({ orientation }), className)} {...props} />;\n});\nField.displayName = 'Field';\n\nconst FieldContent = memo(({ className, ...props }: React.ComponentProps<'div'>) => {\n return <div data-slot=\"field-content\" className={cn('group/field-content flex basis-2/5 flex-col gap-1.5 leading-snug', className)} {...props} />;\n});\nFieldContent.displayName = 'FieldContent';\n\nconst FieldLabel = memo(({ className, ...props }: React.ComponentProps<typeof Label>) => {\n return (\n <Label\n data-slot=\"field-label\"\n className={cn(\n 'group/field-label peer/field-label flex w-fit gap-2 leading-snug',\n 'group-data-[disabled=true]/field:opacity-50',\n 'has-[>[data-slot=field]]:w-full',\n 'has-[>[data-slot=field]]:flex-col',\n 'has-[>[data-slot=field]]:rounded-md',\n 'has-[>[data-slot=field]]:border',\n '*:data-[slot=field]:p-4',\n 'has-data-[state=checked]:bg-primary/5',\n 'has-data-[state=checked]:border-primary',\n className\n )}\n {...props}\n />\n );\n});\nFieldLabel.displayName = 'FieldLabel';\n\nconst FieldTitle = memo(({ className, ...props }: React.ComponentProps<'div'>) => {\n return (\n <div\n data-slot=\"field-label\"\n className={cn('flex w-fit items-center gap-2 font-medium text-sm leading-snug group-data-[disabled=true]/field:opacity-50', className)}\n {...props}\n />\n );\n});\nFieldTitle.displayName = 'FieldTitle';\n\nconst FieldDescription = memo(({ className, ...props }: React.ComponentProps<'p'>) => {\n return (\n <p\n data-slot=\"field-description\"\n className={cn(\n 'text-text-positive-weak text-sm leading-normal font-normal group-has-data-[orientation=horizontal]/field:text-balance',\n 'last:mt-0 nth-last-2:-mt-1 [[data-variant=legend]+&]:-mt-1.5',\n '[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4',\n className\n )}\n {...props}\n />\n );\n});\nFieldDescription.displayName = 'FieldDescription';\n\nconst FieldSeparator = memo(\n ({\n children,\n className,\n ...props\n }: React.ComponentProps<'div'> & {\n children?: React.ReactNode;\n }) => {\n return (\n <div\n data-slot=\"field-separator\"\n data-content={!!children}\n className={cn('relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2', className)}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children && (\n <span className=\"relative mx-auto block w-fit bg-background px-2 text-text-positive-weak\" data-slot=\"field-separator-content\">\n {children}\n </span>\n )}\n </div>\n );\n }\n);\nFieldSeparator.displayName = 'FieldSeparator';\n\nconst FieldError = memo(\n ({\n className,\n children,\n errors,\n ...props\n }: React.ComponentProps<'div'> & {\n errors?: Array<{ message?: string } | undefined>;\n }) => {\n const content = useMemo(() => {\n if (children) {\n return children;\n }\n\n if (!errors) {\n return null;\n }\n\n if (errors?.length === 1 && errors[0]?.message) {\n return (\n <div className=\"flex flex-row items-center justify-start gap-x-0.5\">\n <BanIcon size={14} />\n <p>{errors[0].message}</p>\n </div>\n );\n }\n\n return (\n <ul className=\"ml-4 flex list-disc flex-col gap-1\">\n {errors.map(error => {\n if (typeof error === 'string') return <li key={error}>{error}</li>;\n if (!error?.message) return null;\n return <li key={error.message}>{error.message}</li>;\n })}\n </ul>\n );\n }, [children, errors]);\n\n if (!content) {\n return null;\n }\n\n return (\n <div role=\"alert\" data-slot=\"field-error\" className={cn('w-full font-normal text-danger text-xs', className)} {...props}>\n {content}\n </div>\n );\n }\n);\nFieldError.displayName = 'FieldError';\n\nexport { Field, FieldLabel, FieldDescription, FieldError, FieldGroup, FieldLegend, FieldSeparator, FieldSet, FieldContent, FieldTitle };\n"],"mappings":"uTAYA,MAAM,EAAW,GAAM,CAAE,YAAW,GAAG,KAEnC,EAAC,WAAA,CACC,YAAU,YACV,UAAW,EAAG,sBAAuB,+EAAgF,EAAU,CAC/H,GAAI,GACJ,CAEJ,CACF,EAAS,YAAc,WAEvB,MAAM,EAAc,GAAM,CAAE,YAAW,UAAU,SAAU,GAAG,KAE1D,EAAC,SAAA,CACC,YAAU,eACV,eAAc,EACd,UAAW,EAAG,mBAAoB,kCAAmC,+BAAgC,EAAU,CAC/G,GAAI,GACJ,CAEJ,CACF,EAAY,YAAc,cAE1B,MAAM,EAAa,GAAM,CAAE,YAAW,GAAG,KAErC,EAAC,MAAA,CACC,YAAU,cACV,UAAW,EACT,uIACA,EACD,CACD,GAAI,GACJ,CAEJ,CACF,EAAW,YAAc,aAEzB,MAAM,EAAgB,EAAI,qEAAsE,CAC9F,SAAU,CACR,YAAa,CACX,SAAU,CAAC,wCAAwC,CACnD,WAAY,CACV,wBACA,sCACA,+CACA,0EACD,CACD,WAAY,CACV,wCACA,2BACA,+BACA,2BACA,sDACA,+DACA,0FACD,CACF,CACF,CACD,gBAAiB,CACf,YAAa,WACd,CACF,CAAC,CAEI,EAAQ,GAAM,CAAE,YAAW,cAAc,WAAY,GAAG,KACrD,EAAC,MAAA,CAAI,YAAU,QAAQ,mBAAkB,EAAa,UAAW,EAAG,EAAc,CAAE,cAAa,CAAC,CAAE,EAAU,CAAE,GAAI,GAAS,CACpI,CACF,EAAM,YAAc,QAEpB,MAAM,EAAe,GAAM,CAAE,YAAW,GAAG,KAClC,EAAC,MAAA,CAAI,YAAU,gBAAgB,UAAW,EAAG,mEAAoE,EAAU,CAAE,GAAI,GAAS,CACjJ,CACF,EAAa,YAAc,eAE3B,MAAM,EAAa,GAAM,CAAE,YAAW,GAAG,KAErC,EAAC,EAAA,CACC,YAAU,cACV,UAAW,EACT,mEACA,8CACA,kCACA,oCACA,sCACA,kCACA,0BACA,wCACA,0CACA,EACD,CACD,GAAI,GACJ,CAEJ,CACF,EAAW,YAAc,aAEzB,MAAM,EAAa,GAAM,CAAE,YAAW,GAAG,KAErC,EAAC,MAAA,CACC,YAAU,cACV,UAAW,EAAG,6GAA8G,EAAU,CACtI,GAAI,GACJ,CAEJ,CACF,EAAW,YAAc,aAEzB,MAAM,EAAmB,GAAM,CAAE,YAAW,GAAG,KAE3C,EAAC,IAAA,CACC,YAAU,oBACV,UAAW,EACT,wHACA,+DACA,oEACA,EACD,CACD,GAAI,GACJ,CAEJ,CACF,EAAiB,YAAc,mBAE/B,MAAM,EAAiB,GACpB,CACC,WACA,YACA,GAAG,KAKD,EAAC,MAAA,CACC,YAAU,kBACV,eAAc,CAAC,CAAC,EAChB,UAAW,EAAG,4EAA6E,EAAU,CACrG,GAAI,YAEJ,EAAC,EAAA,CAAU,UAAU,2BAAA,CAA6B,CACjD,GACC,EAAC,OAAA,CAAK,UAAU,0EAA0E,YAAU,0BACjG,YACI,CAAA,EAEL,CAGX,CACD,EAAe,YAAc,iBAE7B,MAAM,EAAa,GAChB,CACC,YACA,WACA,SACA,GAAG,KAGC,CACJ,IAAM,EAAU,MACV,IAIC,EAID,GAAQ,SAAW,GAAK,EAAO,IAAI,QAEnC,EAAC,MAAA,CAAI,UAAU,+DACb,EAAC,EAAA,CAAQ,KAAM,GAAA,CAAM,CACrB,EAAC,IAAA,CAAA,SAAG,EAAO,GAAG,QAAA,CAAY,CAAA,EACtB,CAKR,EAAC,KAAA,CAAG,UAAU,8CACX,EAAO,IAAI,GACN,OAAO,GAAU,SAAiB,EAAC,KAAA,CAAA,SAAgB,EAAA,CAAR,EAAmB,CAC7D,GAAO,QACL,EAAC,KAAA,CAAA,SAAwB,EAAM,QAAA,CAAtB,EAAM,QAA6B,CADvB,KAE5B,EACC,CAnBE,MAqBR,CAAC,EAAU,EAAO,CAAC,CAMtB,OAJK,EAKH,EAAC,MAAA,CAAI,KAAK,QAAQ,YAAU,cAAc,UAAW,EAAG,yCAA0C,EAAU,CAAE,GAAI,WAC/G,GACG,CANC,MASZ,CACD,EAAW,YAAc"}
@@ -0,0 +1,2 @@
1
+ const e=require(`./chunk-Bmb41Sf3.cjs`),t=require(`./separator-BwZb12bh.cjs`),n=require(`./label-DkMTQ3Ch.cjs`);let r=require(`lucide-react`),i=require(`react`),a=require(`react/jsx-runtime`),o=require(`@customafk/react-toolkit/utils`),s=require(`class-variance-authority`);const c=(0,i.memo)(({className:e,...t})=>(0,a.jsx)(`fieldset`,{"data-slot":`field-set`,className:(0,o.cn)(`flex flex-col gap-6`,`has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3`,e),...t}));c.displayName=`FieldSet`;const l=(0,i.memo)(({className:e,variant:t=`legend`,...n})=>(0,a.jsx)(`legend`,{"data-slot":`field-legend`,"data-variant":t,className:(0,o.cn)(`mb-3 font-medium`,`data-[variant=legend]:text-base`,`data-[variant=label]:text-sm`,e),...n}));l.displayName=`FieldLegend`;const u=(0,i.memo)(({className:e,...t})=>(0,a.jsx)(`div`,{"data-slot":`field-group`,className:(0,o.cn)(`group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4`,e),...t}));u.displayName=`FieldGroup`;const d=(0,s.cva)(`group/field flex w-full gap-3 data-[invalid=true]:text-destructive`,{variants:{orientation:{vertical:[`flex-col *:w-full [&>.sr-only]:w-auto`],horizontal:[`flex-row items-center`,`*:data-[slot=field-label]:flex-auto`,`has-[>[data-slot=field-content]]:items-start`,`has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px`],responsive:[`flex-col *:w-full [&>.sr-only]:w-auto`,`@md/field-group:flex-row`,`@md/field-group:items-center`,`@md/field-group:*:w-auto`,`@md/field-group:*:data-[slot=field-label]:flex-auto`,`@md/field-group:has-[>[data-slot=field-content]]:items-start`,`@md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px`]}},defaultVariants:{orientation:`vertical`}}),f=(0,i.memo)(({className:e,orientation:t=`vertical`,...n})=>(0,a.jsx)(`div`,{"data-slot":`field`,"data-orientation":t,className:(0,o.cn)(d({orientation:t}),e),...n}));f.displayName=`Field`;const p=(0,i.memo)(({className:e,...t})=>(0,a.jsx)(`div`,{"data-slot":`field-content`,className:(0,o.cn)(`group/field-content flex basis-2/5 flex-col gap-1.5 leading-snug`,e),...t}));p.displayName=`FieldContent`;const m=(0,i.memo)(({className:e,...t})=>(0,a.jsx)(n.t,{"data-slot":`field-label`,className:(0,o.cn)(`group/field-label peer/field-label flex w-fit gap-2 leading-snug`,`group-data-[disabled=true]/field:opacity-50`,`has-[>[data-slot=field]]:w-full`,`has-[>[data-slot=field]]:flex-col`,`has-[>[data-slot=field]]:rounded-md`,`has-[>[data-slot=field]]:border`,`*:data-[slot=field]:p-4`,`has-data-[state=checked]:bg-primary/5`,`has-data-[state=checked]:border-primary`,e),...t}));m.displayName=`FieldLabel`;const h=(0,i.memo)(({className:e,...t})=>(0,a.jsx)(`div`,{"data-slot":`field-label`,className:(0,o.cn)(`flex w-fit items-center gap-2 font-medium text-sm leading-snug group-data-[disabled=true]/field:opacity-50`,e),...t}));h.displayName=`FieldTitle`;const g=(0,i.memo)(({className:e,...t})=>(0,a.jsx)(`p`,{"data-slot":`field-description`,className:(0,o.cn)(`text-text-positive-weak text-sm leading-normal font-normal group-has-data-[orientation=horizontal]/field:text-balance`,`last:mt-0 nth-last-2:-mt-1 [[data-variant=legend]+&]:-mt-1.5`,`[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4`,e),...t}));g.displayName=`FieldDescription`;const _=(0,i.memo)(({children:e,className:n,...r})=>(0,a.jsxs)(`div`,{"data-slot":`field-separator`,"data-content":!!e,className:(0,o.cn)(`relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2`,n),...r,children:[(0,a.jsx)(t.t,{className:`absolute inset-0 top-1/2`}),e&&(0,a.jsx)(`span`,{className:`relative mx-auto block w-fit bg-background px-2 text-text-positive-weak`,"data-slot":`field-separator-content`,children:e})]}));_.displayName=`FieldSeparator`;const v=(0,i.memo)(({className:e,children:t,errors:n,...s})=>{let c=(0,i.useMemo)(()=>t||(n?n?.length===1&&n[0]?.message?(0,a.jsxs)(`div`,{className:`flex flex-row items-center justify-start gap-x-0.5`,children:[(0,a.jsx)(r.BanIcon,{size:14}),(0,a.jsx)(`p`,{children:n[0].message})]}):(0,a.jsx)(`ul`,{className:`ml-4 flex list-disc flex-col gap-1`,children:n.map(e=>typeof e==`string`?(0,a.jsx)(`li`,{children:e},e):e?.message?(0,a.jsx)(`li`,{children:e.message},e.message):null)}):null),[t,n]);return c?(0,a.jsx)(`div`,{role:`alert`,"data-slot":`field-error`,className:(0,o.cn)(`w-full font-normal text-danger text-xs`,e),...s,children:c}):null});v.displayName=`FieldError`,Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return h}});
2
+ //# sourceMappingURL=field-CppNvoxV.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-CppNvoxV.cjs","names":["Label","Separator","BanIcon"],"sources":["../packages/components/ui/field.tsx"],"sourcesContent":["'use client';\n\nimport { memo, useMemo } from 'react';\n\nimport { BanIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { Label } from '@/components/ui/label';\nimport { Separator } from '@/components/ui/separator';\n\nconst FieldSet = memo(({ className, ...props }: React.ComponentProps<'fieldset'>) => {\n return (\n <fieldset\n data-slot=\"field-set\"\n className={cn('flex flex-col gap-6', 'has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3', className)}\n {...props}\n />\n );\n});\nFieldSet.displayName = 'FieldSet';\n\nconst FieldLegend = memo(({ className, variant = 'legend', ...props }: React.ComponentProps<'legend'> & { variant?: 'legend' | 'label' }) => {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn('mb-3 font-medium', 'data-[variant=legend]:text-base', 'data-[variant=label]:text-sm', className)}\n {...props}\n />\n );\n});\nFieldLegend.displayName = 'FieldLegend';\n\nconst FieldGroup = memo(({ className, ...props }: React.ComponentProps<'div'>) => {\n return (\n <div\n data-slot=\"field-group\"\n className={cn(\n 'group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4',\n className\n )}\n {...props}\n />\n );\n});\nFieldGroup.displayName = 'FieldGroup';\n\nconst fieldVariants = cva('group/field flex w-full gap-3 data-[invalid=true]:text-destructive', {\n variants: {\n orientation: {\n vertical: ['flex-col *:w-full [&>.sr-only]:w-auto'],\n horizontal: [\n 'flex-row items-center',\n '*:data-[slot=field-label]:flex-auto',\n 'has-[>[data-slot=field-content]]:items-start',\n 'has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',\n ],\n responsive: [\n 'flex-col *:w-full [&>.sr-only]:w-auto',\n '@md/field-group:flex-row',\n '@md/field-group:items-center',\n '@md/field-group:*:w-auto',\n '@md/field-group:*:data-[slot=field-label]:flex-auto',\n '@md/field-group:has-[>[data-slot=field-content]]:items-start',\n '@md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',\n ],\n },\n },\n defaultVariants: {\n orientation: 'vertical',\n },\n});\n\nconst Field = memo(({ className, orientation = 'vertical', ...props }: React.ComponentProps<'div'> & VariantProps<typeof fieldVariants>) => {\n return <div data-slot=\"field\" data-orientation={orientation} className={cn(fieldVariants({ orientation }), className)} {...props} />;\n});\nField.displayName = 'Field';\n\nconst FieldContent = memo(({ className, ...props }: React.ComponentProps<'div'>) => {\n return <div data-slot=\"field-content\" className={cn('group/field-content flex basis-2/5 flex-col gap-1.5 leading-snug', className)} {...props} />;\n});\nFieldContent.displayName = 'FieldContent';\n\nconst FieldLabel = memo(({ className, ...props }: React.ComponentProps<typeof Label>) => {\n return (\n <Label\n data-slot=\"field-label\"\n className={cn(\n 'group/field-label peer/field-label flex w-fit gap-2 leading-snug',\n 'group-data-[disabled=true]/field:opacity-50',\n 'has-[>[data-slot=field]]:w-full',\n 'has-[>[data-slot=field]]:flex-col',\n 'has-[>[data-slot=field]]:rounded-md',\n 'has-[>[data-slot=field]]:border',\n '*:data-[slot=field]:p-4',\n 'has-data-[state=checked]:bg-primary/5',\n 'has-data-[state=checked]:border-primary',\n className\n )}\n {...props}\n />\n );\n});\nFieldLabel.displayName = 'FieldLabel';\n\nconst FieldTitle = memo(({ className, ...props }: React.ComponentProps<'div'>) => {\n return (\n <div\n data-slot=\"field-label\"\n className={cn('flex w-fit items-center gap-2 font-medium text-sm leading-snug group-data-[disabled=true]/field:opacity-50', className)}\n {...props}\n />\n );\n});\nFieldTitle.displayName = 'FieldTitle';\n\nconst FieldDescription = memo(({ className, ...props }: React.ComponentProps<'p'>) => {\n return (\n <p\n data-slot=\"field-description\"\n className={cn(\n 'text-text-positive-weak text-sm leading-normal font-normal group-has-data-[orientation=horizontal]/field:text-balance',\n 'last:mt-0 nth-last-2:-mt-1 [[data-variant=legend]+&]:-mt-1.5',\n '[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4',\n className\n )}\n {...props}\n />\n );\n});\nFieldDescription.displayName = 'FieldDescription';\n\nconst FieldSeparator = memo(\n ({\n children,\n className,\n ...props\n }: React.ComponentProps<'div'> & {\n children?: React.ReactNode;\n }) => {\n return (\n <div\n data-slot=\"field-separator\"\n data-content={!!children}\n className={cn('relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2', className)}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children && (\n <span className=\"relative mx-auto block w-fit bg-background px-2 text-text-positive-weak\" data-slot=\"field-separator-content\">\n {children}\n </span>\n )}\n </div>\n );\n }\n);\nFieldSeparator.displayName = 'FieldSeparator';\n\nconst FieldError = memo(\n ({\n className,\n children,\n errors,\n ...props\n }: React.ComponentProps<'div'> & {\n errors?: Array<{ message?: string } | undefined>;\n }) => {\n const content = useMemo(() => {\n if (children) {\n return children;\n }\n\n if (!errors) {\n return null;\n }\n\n if (errors?.length === 1 && errors[0]?.message) {\n return (\n <div className=\"flex flex-row items-center justify-start gap-x-0.5\">\n <BanIcon size={14} />\n <p>{errors[0].message}</p>\n </div>\n );\n }\n\n return (\n <ul className=\"ml-4 flex list-disc flex-col gap-1\">\n {errors.map(error => {\n if (typeof error === 'string') return <li key={error}>{error}</li>;\n if (!error?.message) return null;\n return <li key={error.message}>{error.message}</li>;\n })}\n </ul>\n );\n }, [children, errors]);\n\n if (!content) {\n return null;\n }\n\n return (\n <div role=\"alert\" data-slot=\"field-error\" className={cn('w-full font-normal text-danger text-xs', className)} {...props}>\n {content}\n </div>\n );\n }\n);\nFieldError.displayName = 'FieldError';\n\nexport { Field, FieldLabel, FieldDescription, FieldError, FieldGroup, FieldLegend, FieldSeparator, FieldSet, FieldContent, FieldTitle };\n"],"mappings":"kRAYA,MAAM,GAAA,EAAA,EAAA,OAAiB,CAAE,YAAW,GAAG,MAEnC,EAAA,EAAA,KAAC,WAAA,CACC,YAAU,YACV,WAAA,EAAA,EAAA,IAAc,sBAAuB,+EAAgF,EAAU,CAC/H,GAAI,GACJ,CAEJ,CACF,EAAS,YAAc,WAEvB,MAAM,GAAA,EAAA,EAAA,OAAoB,CAAE,YAAW,UAAU,SAAU,GAAG,MAE1D,EAAA,EAAA,KAAC,SAAA,CACC,YAAU,eACV,eAAc,EACd,WAAA,EAAA,EAAA,IAAc,mBAAoB,kCAAmC,+BAAgC,EAAU,CAC/G,GAAI,GACJ,CAEJ,CACF,EAAY,YAAc,cAE1B,MAAM,GAAA,EAAA,EAAA,OAAmB,CAAE,YAAW,GAAG,MAErC,EAAA,EAAA,KAAC,MAAA,CACC,YAAU,cACV,WAAA,EAAA,EAAA,IACE,uIACA,EACD,CACD,GAAI,GACJ,CAEJ,CACF,EAAW,YAAc,aAEzB,MAAM,GAAA,EAAA,EAAA,KAAoB,qEAAsE,CAC9F,SAAU,CACR,YAAa,CACX,SAAU,CAAC,wCAAwC,CACnD,WAAY,CACV,wBACA,sCACA,+CACA,0EACD,CACD,WAAY,CACV,wCACA,2BACA,+BACA,2BACA,sDACA,+DACA,0FACD,CACF,CACF,CACD,gBAAiB,CACf,YAAa,WACd,CACF,CAAC,CAEI,GAAA,EAAA,EAAA,OAAc,CAAE,YAAW,cAAc,WAAY,GAAG,MACrD,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,QAAQ,mBAAkB,EAAa,WAAA,EAAA,EAAA,IAAc,EAAc,CAAE,cAAa,CAAC,CAAE,EAAU,CAAE,GAAI,GAAS,CACpI,CACF,EAAM,YAAc,QAEpB,MAAM,GAAA,EAAA,EAAA,OAAqB,CAAE,YAAW,GAAG,MAClC,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,gBAAgB,WAAA,EAAA,EAAA,IAAc,mEAAoE,EAAU,CAAE,GAAI,GAAS,CACjJ,CACF,EAAa,YAAc,eAE3B,MAAM,GAAA,EAAA,EAAA,OAAmB,CAAE,YAAW,GAAG,MAErC,EAAA,EAAA,KAACA,EAAAA,EAAAA,CACC,YAAU,cACV,WAAA,EAAA,EAAA,IACE,mEACA,8CACA,kCACA,oCACA,sCACA,kCACA,0BACA,wCACA,0CACA,EACD,CACD,GAAI,GACJ,CAEJ,CACF,EAAW,YAAc,aAEzB,MAAM,GAAA,EAAA,EAAA,OAAmB,CAAE,YAAW,GAAG,MAErC,EAAA,EAAA,KAAC,MAAA,CACC,YAAU,cACV,WAAA,EAAA,EAAA,IAAc,6GAA8G,EAAU,CACtI,GAAI,GACJ,CAEJ,CACF,EAAW,YAAc,aAEzB,MAAM,GAAA,EAAA,EAAA,OAAyB,CAAE,YAAW,GAAG,MAE3C,EAAA,EAAA,KAAC,IAAA,CACC,YAAU,oBACV,WAAA,EAAA,EAAA,IACE,wHACA,+DACA,oEACA,EACD,CACD,GAAI,GACJ,CAEJ,CACF,EAAiB,YAAc,mBAE/B,MAAM,GAAA,EAAA,EAAA,OACH,CACC,WACA,YACA,GAAG,MAKD,EAAA,EAAA,MAAC,MAAA,CACC,YAAU,kBACV,eAAc,CAAC,CAAC,EAChB,WAAA,EAAA,EAAA,IAAc,4EAA6E,EAAU,CACrG,GAAI,aAEJ,EAAA,EAAA,KAACC,EAAAA,EAAAA,CAAU,UAAU,2BAAA,CAA6B,CACjD,IACC,EAAA,EAAA,KAAC,OAAA,CAAK,UAAU,0EAA0E,YAAU,0BACjG,YACI,CAAA,EAEL,CAGX,CACD,EAAe,YAAc,iBAE7B,MAAM,GAAA,EAAA,EAAA,OACH,CACC,YACA,WACA,SACA,GAAG,KAGC,CACJ,IAAM,GAAA,EAAA,EAAA,aACA,IAIC,EAID,GAAQ,SAAW,GAAK,EAAO,IAAI,SAEnC,EAAA,EAAA,MAAC,MAAA,CAAI,UAAU,gEACb,EAAA,EAAA,KAACC,EAAAA,QAAAA,CAAQ,KAAM,GAAA,CAAM,EACrB,EAAA,EAAA,KAAC,IAAA,CAAA,SAAG,EAAO,GAAG,QAAA,CAAY,CAAA,EACtB,EAKR,EAAA,EAAA,KAAC,KAAA,CAAG,UAAU,8CACX,EAAO,IAAI,GACN,OAAO,GAAU,UAAiB,EAAA,EAAA,KAAC,KAAA,CAAA,SAAgB,EAAA,CAAR,EAAmB,CAC7D,GAAO,SACL,EAAA,EAAA,KAAC,KAAA,CAAA,SAAwB,EAAM,QAAA,CAAtB,EAAM,QAA6B,CADvB,KAE5B,EACC,CAnBE,MAqBR,CAAC,EAAU,EAAO,CAAC,CAMtB,OAJK,GAKH,EAAA,EAAA,KAAC,MAAA,CAAI,KAAK,QAAQ,YAAU,cAAc,WAAA,EAAA,EAAA,IAAc,yCAA0C,EAAU,CAAE,GAAI,WAC/G,GACG,CANC,MASZ,CACD,EAAW,YAAc"}
@@ -1,2 +1,2 @@
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";import{memo as r}from"react";const i=t([`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`}}),a=r(({vertical:t,wrap:r,width:a,margin:o,padding:s,gap:c,justify:l,align:u,className:d,children:f})=>n(`div`,{className:e(i({vertical:t,width:a,wrap:r,margin:o,padding:s,gap:c,justify:l,align:u,className:d})),children:f}));a.displayName=`Flex`;export{a as t};
2
- //# sourceMappingURL=flex-CeizYtXs.mjs.map
1
+ import{memo as e}from"react";import{jsx as t}from"react/jsx-runtime";import{cn as n}from"@customafk/react-toolkit/utils";import{cva as r}from"class-variance-authority";const i=r([`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`}}),a=e(({vertical:e,wrap:r,width:a,margin:o,padding:s,gap:c,justify:l,align:u,className:d,children:f})=>t(`div`,{className:n(i({vertical:e,width:a,wrap:r,margin:o,padding:s,gap:c,justify:l,align:u,className:d})),children:f}));a.displayName=`Flex`;export{a as t};
2
+ //# sourceMappingURL=flex-BLMTj7Ev.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flex-BLMTj7Ev.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(`@customafk/react-toolkit/utils`),n=require(`class-variance-authority`),r=require(`react/jsx-runtime`),i=require(`react`);const a=(0,n.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,i.memo)(({vertical:e,wrap:n,width:i,margin:o,padding:s,gap:c,justify:l,align:u,className:d,children:f})=>(0,r.jsx)(`div`,{className:(0,t.cn)(a({vertical:e,width:i,wrap:n,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-BsoSgWFN.cjs.map
1
+ const e=require(`./chunk-Bmb41Sf3.cjs`);let t=require(`react`),n=require(`react/jsx-runtime`),r=require(`@customafk/react-toolkit/utils`),i=require(`class-variance-authority`);const a=(0,i.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:i,margin:o,padding:s,gap:c,justify:l,align:u,className:d,children:f})=>(0,n.jsx)(`div`,{className:(0,r.cn)(a({vertical:e,width:i,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-BbbogTsZ.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flex-BbbogTsZ.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"}
@@ -0,0 +1,2 @@
1
+ const e=require(`./chunk-Bmb41Sf3.cjs`);let t=require(`react/jsx-runtime`),n=require(`@customafk/react-toolkit/utils`),r=require(`class-variance-authority`);const i=(0,r.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-AKz5ewy-.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heading-AKz5ewy-.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{jsx as e}from"react/jsx-runtime";import{cn as t}from"@customafk/react-toolkit/utils";import{cva as n}from"class-variance-authority";const r=n(`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-DN67djxs.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heading-DN67djxs.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"}
@@ -0,0 +1,2 @@
1
+ const e=require(`./chunk-Bmb41Sf3.cjs`),t=require(`./skeleton-BfMCjXYM.cjs`);let n=require(`lucide-react`),r=require(`react`),i=require(`react/jsx-runtime`),a=require(`@customafk/react-toolkit/utils`);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,i.jsx)(`div`,{style:{width:s,height:c},className:(0,a.cn)(`@container relative inline-block`,d),children:(0,i.jsxs)(`div`,{className:`flex size-full flex-col items-center justify-center gap-y-2 rounded-md bg-danger-muted shadow-card`,children:[(0,i.jsx)(n.AlertCircleIcon,{className:`@max-[52px]:size-6 size-8 text-danger`}),(0,i.jsx)(`span`,{className:`@max-[96px]:sr-only text-center text-danger-weak text-xs`,children:`Image failed to load`})]})}):(0,i.jsxs)(`div`,{style:{width:s,height:c},className:(0,a.cn)(`relative flex items-center justify-center overflow-hidden rounded-md`,d),onClick:p,children:[!y&&(0,i.jsx)(t.t,{className:`absolute inset-0 flex size-full animate-pulse items-center justify-center`}),(0,i.jsx)(`img`,{src:h,className:`absolute inset-0 z-0 size-full scale-110 object-cover blur-xl brightness-60`}),(0,i.jsx)(`img`,{id:h,ref:m,src:h,alt:o,loading:`lazy`,className:(0,a.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-B1Dm5LWk.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-B1Dm5LWk.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"}
@@ -0,0 +1,2 @@
1
+ import{t as e}from"./skeleton-BPxcW2yu.mjs";import{AlertCircleIcon as t}from"lucide-react";import{useCallback as n,useRef as r,useState as i}from"react";import{jsx as a,jsxs as o}from"react/jsx-runtime";import{cn as s}from"@customafk/react-toolkit/utils";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?a(`div`,{style:{width:u,height:d},className:s(`@container relative inline-block`,m),children:o(`div`,{className:`flex size-full flex-col items-center justify-center gap-y-2 rounded-md bg-danger-muted shadow-card`,children:[a(t,{className:`@max-[52px]:size-6 size-8 text-danger`}),a(`span`,{className:`@max-[96px]:sr-only text-center text-danger-weak text-xs`,children:`Image failed to load`})]})}):o(`div`,{style:{width:u,height:d},className:s(`relative flex items-center justify-center overflow-hidden rounded-md`,m),onClick:g,children:[!S&&a(e,{className:`absolute inset-0 flex size-full animate-pulse items-center justify-center`}),a(`img`,{src:v,className:`absolute inset-0 z-0 size-full scale-110 object-cover blur-xl brightness-60`}),a(`img`,{id:v,ref:_,src:v,alt:l,loading:`lazy`,className:s(`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-BlzrSaoE.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-BlzrSaoE.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"}