@customafk/lunas-ui 0.2.4 → 0.2.6

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 (753) hide show
  1. package/README.md +39 -9
  2. package/ai-docs.md +419 -0
  3. package/dist/alert-5MxGtf3j.d.mts +88 -0
  4. package/dist/alert-DIC1_ymv.cjs +2 -0
  5. package/dist/alert-DIC1_ymv.cjs.map +1 -0
  6. package/dist/alert-DwdUOFaC.d.cts +88 -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-sL8O2yfv.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-BlQb81It.d.mts +174 -0
  20. package/dist/button-C6ybzxxj.mjs +2 -0
  21. package/dist/button-C6ybzxxj.mjs.map +1 -0
  22. package/dist/button-CEOQ3-82.d.cts +174 -0
  23. package/dist/button-CwDT3m4m.cjs +2 -0
  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-CG-WMM8e.cjs → calendar-CyAPpT2m.cjs} +2 -2
  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 +16 -0
  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-_zpTaaIk.cjs → command-SHd-d_o0.cjs} +2 -2
  64. package/dist/command-SHd-d_o0.cjs.map +1 -0
  65. package/dist/{command-DhBTNTqz.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 +35 -6
  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-Bah7jLoO.d.cts +90 -0
  128. package/dist/dialog-BchwY6-N.mjs +2 -0
  129. package/dist/dialog-BchwY6-N.mjs.map +1 -0
  130. package/dist/dialog-DSg5IKmb.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 +71 -24
  141. package/dist/dialogs/detail-dialog/components/sidebar.d.mts +71 -24
  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-CvmzZ_6C.mjs → dist-CIN9T2FB.mjs} +1 -1
  162. package/dist/{dist-CvmzZ_6C.mjs.map → dist-CIN9T2FB.mjs.map} +1 -1
  163. package/dist/{dist-BudM04oj.cjs → dist-Dh8WwRa8.cjs} +1 -1
  164. package/dist/{dist-BudM04oj.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 +742 -20
  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-BP8sTi70.mjs → flex-BLMTj7Ev.mjs} +2 -2
  192. package/dist/flex-BLMTj7Ev.mjs.map +1 -0
  193. package/dist/{flex-twCgWyx1.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-DuFv8sPr.cjs → image-B1Dm5LWk.cjs} +2 -2
  200. package/dist/image-B1Dm5LWk.cjs.map +1 -0
  201. package/dist/{image-CS_Q0WA7.mjs → image-BlzrSaoE.mjs} +2 -2
  202. package/dist/image-BlzrSaoE.mjs.map +1 -0
  203. package/dist/index-D4shnfqM.d.cts +2030 -0
  204. package/dist/index-Dktb6D35.d.mts +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-DBtIgQB6.mjs → input-Cd0G5y-9.mjs} +2 -2
  210. package/dist/input-Cd0G5y-9.mjs.map +1 -0
  211. package/dist/{input-BFWWaN-v.cjs → input-Cl5VkKQh.cjs} +2 -2
  212. package/dist/input-Cl5VkKQh.cjs.map +1 -0
  213. package/dist/input-DAGzv97v.d.mts +44 -0
  214. package/dist/input-DPLvx5x8.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 +90 -6
  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-Ch5TvEqL.mjs +2 -0
  262. package/dist/paragraph-Ch5TvEqL.mjs.map +1 -0
  263. package/dist/paragraph-DN85Huc4.cjs +2 -0
  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-mlGS6Zto.cjs → resizable-D6UKwvFa.cjs} +2 -2
  278. package/dist/resizable-D6UKwvFa.cjs.map +1 -0
  279. package/dist/{resizable-DXHfkbaz.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.map +1 -1
  310. package/dist/systems/google.d.cts +36 -0
  311. package/dist/systems/google.d.mts +36 -0
  312. package/dist/systems/google.mjs.map +1 -1
  313. package/dist/tables-CmOVrvXM.cjs +2 -0
  314. package/dist/tables-CmOVrvXM.cjs.map +1 -0
  315. package/dist/tables-cBo0_szt.mjs +2 -0
  316. package/dist/tables-cBo0_szt.mjs.map +1 -0
  317. package/dist/tanstack-form-BmV2BXDz.cjs +2 -0
  318. package/dist/tanstack-form-BmV2BXDz.cjs.map +1 -0
  319. package/dist/tanstack-form-CJ43hVb_.mjs +2 -0
  320. package/dist/tanstack-form-CJ43hVb_.mjs.map +1 -0
  321. package/dist/{textarea-COQoSVSc.cjs → textarea-BsgmN4jy.cjs} +2 -2
  322. package/dist/textarea-BsgmN4jy.cjs.map +1 -0
  323. package/dist/{textarea-bLtmb71c.mjs → textarea-CdGSEkZB.mjs} +2 -2
  324. package/dist/textarea-CdGSEkZB.mjs.map +1 -0
  325. package/dist/tooltip-Bj0iOG4s.mjs +2 -0
  326. package/dist/tooltip-Bj0iOG4s.mjs.map +1 -0
  327. package/dist/{tooltip-DC6i1A25.cjs → tooltip-itUmYz9k.cjs} +2 -2
  328. package/dist/tooltip-itUmYz9k.cjs.map +1 -0
  329. package/dist/{types-Bd0JePtp.d.cts → types-B_32Ieia.d.mts} +1 -1
  330. package/dist/{types-BpHcqlOI.d.mts → types-CDYHkcOk.d.cts} +1 -1
  331. package/dist/{types-DBD4LOem.mjs → types-DNphnTW-.mjs} +1 -1
  332. package/dist/{types-DBD4LOem.mjs.map → types-DNphnTW-.mjs.map} +1 -1
  333. package/dist/typography/paragraph.cjs +1 -1
  334. package/dist/typography/paragraph.d.cts +40 -20
  335. package/dist/typography/paragraph.d.mts +40 -20
  336. package/dist/typography/paragraph.mjs +1 -1
  337. package/dist/typography/title.cjs +1 -1
  338. package/dist/typography/title.cjs.map +1 -1
  339. package/dist/typography/title.d.cts +33 -5
  340. package/dist/typography/title.d.mts +33 -5
  341. package/dist/typography/title.mjs +1 -1
  342. package/dist/typography/title.mjs.map +1 -1
  343. package/dist/ui/alert-dialog.cjs +1 -1
  344. package/dist/ui/alert-dialog.cjs.map +1 -1
  345. package/dist/ui/alert-dialog.d.cts +54 -12
  346. package/dist/ui/alert-dialog.d.mts +54 -12
  347. package/dist/ui/alert-dialog.mjs +1 -1
  348. package/dist/ui/alert-dialog.mjs.map +1 -1
  349. package/dist/ui/alert.cjs +1 -2
  350. package/dist/ui/alert.d.cts +2 -69
  351. package/dist/ui/alert.d.mts +2 -69
  352. package/dist/ui/alert.mjs +1 -2
  353. package/dist/ui/aspect-ratio.cjs +1 -1
  354. package/dist/ui/aspect-ratio.cjs.map +1 -1
  355. package/dist/ui/aspect-ratio.d.cts +15 -2
  356. package/dist/ui/aspect-ratio.d.mts +15 -2
  357. package/dist/ui/aspect-ratio.mjs +1 -1
  358. package/dist/ui/aspect-ratio.mjs.map +1 -1
  359. package/dist/ui/avatar.cjs +1 -1
  360. package/dist/ui/avatar.d.cts +20 -4
  361. package/dist/ui/avatar.d.mts +20 -4
  362. package/dist/ui/avatar.mjs +1 -1
  363. package/dist/ui/badge.cjs +1 -1
  364. package/dist/ui/badge.d.cts +2 -21
  365. package/dist/ui/badge.d.mts +2 -21
  366. package/dist/ui/badge.mjs +1 -1
  367. package/dist/ui/breadcrumb.cjs +1 -1
  368. package/dist/ui/breadcrumb.cjs.map +1 -1
  369. package/dist/ui/breadcrumb.d.cts +38 -25
  370. package/dist/ui/breadcrumb.d.mts +38 -25
  371. package/dist/ui/breadcrumb.mjs +1 -1
  372. package/dist/ui/breadcrumb.mjs.map +1 -1
  373. package/dist/ui/button-group.cjs +1 -1
  374. package/dist/ui/button-group.cjs.map +1 -1
  375. package/dist/ui/button-group.d.cts +27 -6
  376. package/dist/ui/button-group.d.mts +27 -6
  377. package/dist/ui/button-group.mjs +1 -1
  378. package/dist/ui/button-group.mjs.map +1 -1
  379. package/dist/ui/button.cjs +1 -1
  380. package/dist/ui/button.d.cts +1 -1
  381. package/dist/ui/button.d.mts +1 -1
  382. package/dist/ui/button.mjs +1 -1
  383. package/dist/ui/buttons/add-new.cjs +1 -1
  384. package/dist/ui/buttons/add-new.cjs.map +1 -1
  385. package/dist/ui/buttons/add-new.d.cts +9 -0
  386. package/dist/ui/buttons/add-new.d.mts +9 -0
  387. package/dist/ui/buttons/add-new.mjs +1 -1
  388. package/dist/ui/buttons/add-new.mjs.map +1 -1
  389. package/dist/ui/buttons/edit.cjs +1 -1
  390. package/dist/ui/buttons/edit.cjs.map +1 -1
  391. package/dist/ui/buttons/edit.d.cts +9 -0
  392. package/dist/ui/buttons/edit.d.mts +9 -0
  393. package/dist/ui/buttons/edit.mjs +1 -1
  394. package/dist/ui/buttons/edit.mjs.map +1 -1
  395. package/dist/ui/buttons/refresh.cjs +1 -1
  396. package/dist/ui/buttons/refresh.cjs.map +1 -1
  397. package/dist/ui/buttons/refresh.d.cts +9 -0
  398. package/dist/ui/buttons/refresh.d.mts +9 -0
  399. package/dist/ui/buttons/refresh.mjs +1 -1
  400. package/dist/ui/buttons/refresh.mjs.map +1 -1
  401. package/dist/ui/buttons/trash.cjs +1 -1
  402. package/dist/ui/buttons/trash.cjs.map +1 -1
  403. package/dist/ui/buttons/trash.d.cts +9 -0
  404. package/dist/ui/buttons/trash.d.mts +9 -0
  405. package/dist/ui/buttons/trash.mjs +1 -1
  406. package/dist/ui/buttons/trash.mjs.map +1 -1
  407. package/dist/ui/buttons/upload-image.cjs +1 -1
  408. package/dist/ui/buttons/upload-image.cjs.map +1 -1
  409. package/dist/ui/buttons/upload-image.d.cts +13 -0
  410. package/dist/ui/buttons/upload-image.d.mts +13 -0
  411. package/dist/ui/buttons/upload-image.mjs +1 -1
  412. package/dist/ui/buttons/upload-image.mjs.map +1 -1
  413. package/dist/ui/calendar.cjs +1 -1
  414. package/dist/ui/calendar.d.cts +22 -4
  415. package/dist/ui/calendar.d.mts +22 -4
  416. package/dist/ui/calendar.mjs +1 -1
  417. package/dist/ui/card.cjs +1 -1
  418. package/dist/ui/card.cjs.map +1 -1
  419. package/dist/ui/card.d.cts +37 -8
  420. package/dist/ui/card.d.mts +37 -8
  421. package/dist/ui/card.mjs +1 -1
  422. package/dist/ui/card.mjs.map +1 -1
  423. package/dist/ui/carousel.cjs +1 -1
  424. package/dist/ui/carousel.cjs.map +1 -1
  425. package/dist/ui/carousel.d.cts +31 -7
  426. package/dist/ui/carousel.d.mts +31 -7
  427. package/dist/ui/carousel.mjs +1 -1
  428. package/dist/ui/carousel.mjs.map +1 -1
  429. package/dist/ui/checkbox.cjs +1 -1
  430. package/dist/ui/checkbox.d.cts +17 -2
  431. package/dist/ui/checkbox.d.mts +17 -2
  432. package/dist/ui/checkbox.mjs +1 -1
  433. package/dist/ui/collapsible.cjs.map +1 -1
  434. package/dist/ui/collapsible.d.cts +22 -4
  435. package/dist/ui/collapsible.d.mts +22 -4
  436. package/dist/ui/collapsible.mjs.map +1 -1
  437. package/dist/ui/command.cjs +1 -1
  438. package/dist/ui/command.d.cts +48 -11
  439. package/dist/ui/command.d.mts +48 -11
  440. package/dist/ui/command.mjs +1 -1
  441. package/dist/ui/context-menu.cjs +1 -1
  442. package/dist/ui/context-menu.cjs.map +1 -1
  443. package/dist/ui/context-menu.d.cts +65 -16
  444. package/dist/ui/context-menu.d.mts +65 -16
  445. package/dist/ui/context-menu.mjs +1 -1
  446. package/dist/ui/context-menu.mjs.map +1 -1
  447. package/dist/ui/dialog.cjs +1 -1
  448. package/dist/ui/dialog.d.cts +1 -1
  449. package/dist/ui/dialog.d.mts +1 -1
  450. package/dist/ui/dialog.mjs +1 -1
  451. package/dist/ui/drawer.cjs +1 -1
  452. package/dist/ui/drawer.cjs.map +1 -1
  453. package/dist/ui/drawer.d.cts +39 -11
  454. package/dist/ui/drawer.d.mts +39 -11
  455. package/dist/ui/drawer.mjs +1 -1
  456. package/dist/ui/drawer.mjs.map +1 -1
  457. package/dist/ui/dropdown-menu.cjs +1 -1
  458. package/dist/ui/dropdown-menu.d.cts +65 -16
  459. package/dist/ui/dropdown-menu.d.mts +65 -16
  460. package/dist/ui/dropdown-menu.mjs +1 -1
  461. package/dist/ui/empty.cjs +1 -1
  462. package/dist/ui/empty.cjs.map +1 -1
  463. package/dist/ui/empty.d.cts +41 -9
  464. package/dist/ui/empty.d.mts +41 -9
  465. package/dist/ui/empty.mjs +1 -1
  466. package/dist/ui/empty.mjs.map +1 -1
  467. package/dist/ui/field.cjs +1 -2
  468. package/dist/ui/field.d.cts +13 -13
  469. package/dist/ui/field.d.mts +24 -24
  470. package/dist/ui/field.mjs +1 -2
  471. package/dist/ui/file-uploader.cjs +2 -2
  472. package/dist/ui/file-uploader.cjs.map +1 -1
  473. package/dist/ui/file-uploader.d.cts +27 -2
  474. package/dist/ui/file-uploader.d.mts +27 -2
  475. package/dist/ui/file-uploader.mjs +2 -2
  476. package/dist/ui/file-uploader.mjs.map +1 -1
  477. package/dist/ui/form.cjs +1 -1
  478. package/dist/ui/form.cjs.map +1 -1
  479. package/dist/ui/form.d.cts +51 -7
  480. package/dist/ui/form.d.mts +55 -11
  481. package/dist/ui/form.mjs +1 -1
  482. package/dist/ui/form.mjs.map +1 -1
  483. package/dist/ui/hover-card.cjs +1 -1
  484. package/dist/ui/hover-card.cjs.map +1 -1
  485. package/dist/ui/hover-card.d.cts +22 -4
  486. package/dist/ui/hover-card.d.mts +22 -4
  487. package/dist/ui/hover-card.mjs +1 -1
  488. package/dist/ui/hover-card.mjs.map +1 -1
  489. package/dist/ui/image.cjs +1 -1
  490. package/dist/ui/image.d.cts +20 -0
  491. package/dist/ui/image.d.mts +20 -0
  492. package/dist/ui/image.mjs +1 -1
  493. package/dist/ui/input-otp.cjs +1 -1
  494. package/dist/ui/input-otp.cjs.map +1 -1
  495. package/dist/ui/input-otp.d.cts +36 -5
  496. package/dist/ui/input-otp.d.mts +36 -5
  497. package/dist/ui/input-otp.mjs +1 -1
  498. package/dist/ui/input-otp.mjs.map +1 -1
  499. package/dist/ui/input.cjs +1 -1
  500. package/dist/ui/input.d.cts +1 -1
  501. package/dist/ui/input.d.mts +1 -1
  502. package/dist/ui/input.mjs +1 -1
  503. package/dist/ui/inputs/search-input.cjs +1 -1
  504. package/dist/ui/inputs/search-input.cjs.map +1 -1
  505. package/dist/ui/inputs/search-input.d.cts +20 -3
  506. package/dist/ui/inputs/search-input.d.mts +20 -3
  507. package/dist/ui/inputs/search-input.mjs +1 -1
  508. package/dist/ui/inputs/search-input.mjs.map +1 -1
  509. package/dist/ui/item.cjs +1 -1
  510. package/dist/ui/item.cjs.map +1 -1
  511. package/dist/ui/item.d.cts +56 -16
  512. package/dist/ui/item.d.mts +56 -16
  513. package/dist/ui/item.mjs +1 -1
  514. package/dist/ui/item.mjs.map +1 -1
  515. package/dist/ui/label.cjs +1 -1
  516. package/dist/ui/label.d.cts +15 -2
  517. package/dist/ui/label.d.mts +15 -2
  518. package/dist/ui/label.mjs +1 -1
  519. package/dist/ui/menubar.cjs +1 -1
  520. package/dist/ui/menubar.cjs.map +1 -1
  521. package/dist/ui/menubar.d.cts +68 -17
  522. package/dist/ui/menubar.d.mts +68 -17
  523. package/dist/ui/menubar.mjs +1 -1
  524. package/dist/ui/menubar.mjs.map +1 -1
  525. package/dist/ui/multi-select.cjs +1 -1
  526. package/dist/ui/multi-select.cjs.map +1 -1
  527. package/dist/ui/multi-select.d.cts +39 -2
  528. package/dist/ui/multi-select.d.mts +40 -3
  529. package/dist/ui/multi-select.mjs +1 -1
  530. package/dist/ui/multi-select.mjs.map +1 -1
  531. package/dist/ui/navigation-menu.cjs +1 -1
  532. package/dist/ui/navigation-menu.cjs.map +1 -1
  533. package/dist/ui/navigation-menu.d.cts +42 -11
  534. package/dist/ui/navigation-menu.d.mts +42 -11
  535. package/dist/ui/navigation-menu.mjs +1 -1
  536. package/dist/ui/navigation-menu.mjs.map +1 -1
  537. package/dist/ui/pagination.cjs +1 -1
  538. package/dist/ui/pagination.cjs.map +1 -1
  539. package/dist/ui/pagination.d.cts +37 -9
  540. package/dist/ui/pagination.d.mts +37 -9
  541. package/dist/ui/pagination.mjs +1 -1
  542. package/dist/ui/pagination.mjs.map +1 -1
  543. package/dist/ui/popover.cjs +1 -1
  544. package/dist/ui/popover.d.cts +32 -6
  545. package/dist/ui/popover.d.mts +32 -6
  546. package/dist/ui/popover.mjs +1 -1
  547. package/dist/ui/progress.cjs +1 -1
  548. package/dist/ui/progress.cjs.map +1 -1
  549. package/dist/ui/progress.d.cts +13 -2
  550. package/dist/ui/progress.d.mts +13 -2
  551. package/dist/ui/progress.mjs +1 -1
  552. package/dist/ui/progress.mjs.map +1 -1
  553. package/dist/ui/radio-group.cjs +1 -1
  554. package/dist/ui/radio-group.d.cts +25 -3
  555. package/dist/ui/radio-group.d.mts +25 -3
  556. package/dist/ui/radio-group.mjs +1 -1
  557. package/dist/ui/resizable.cjs +1 -1
  558. package/dist/ui/resizable.d.cts +29 -9
  559. package/dist/ui/resizable.d.mts +29 -9
  560. package/dist/ui/resizable.mjs +1 -1
  561. package/dist/ui/scroll-area.cjs +1 -1
  562. package/dist/ui/scroll-area.cjs.map +1 -1
  563. package/dist/ui/scroll-area.d.cts +24 -6
  564. package/dist/ui/scroll-area.d.mts +24 -6
  565. package/dist/ui/scroll-area.mjs +1 -1
  566. package/dist/ui/scroll-area.mjs.map +1 -1
  567. package/dist/ui/select.cjs +1 -1
  568. package/dist/ui/select.d.cts +43 -9
  569. package/dist/ui/select.d.mts +43 -9
  570. package/dist/ui/select.mjs +1 -1
  571. package/dist/ui/separator.cjs +1 -1
  572. package/dist/ui/separator.d.cts +23 -2
  573. package/dist/ui/separator.d.mts +23 -2
  574. package/dist/ui/separator.mjs +1 -1
  575. package/dist/ui/sheet.cjs +1 -1
  576. package/dist/ui/sheet.d.cts +38 -9
  577. package/dist/ui/sheet.d.mts +38 -9
  578. package/dist/ui/sheet.mjs +1 -1
  579. package/dist/ui/sidebar.cjs +1 -1
  580. package/dist/ui/sidebar.cjs.map +1 -1
  581. package/dist/ui/sidebar.d.cts +125 -28
  582. package/dist/ui/sidebar.d.mts +123 -26
  583. package/dist/ui/sidebar.mjs +1 -1
  584. package/dist/ui/sidebar.mjs.map +1 -1
  585. package/dist/ui/skeleton.cjs +1 -1
  586. package/dist/ui/skeleton.d.cts +19 -2
  587. package/dist/ui/skeleton.d.mts +19 -2
  588. package/dist/ui/skeleton.mjs +1 -1
  589. package/dist/ui/slider.cjs +1 -1
  590. package/dist/ui/slider.cjs.map +1 -1
  591. package/dist/ui/slider.d.cts +13 -2
  592. package/dist/ui/slider.d.mts +13 -2
  593. package/dist/ui/slider.mjs +1 -1
  594. package/dist/ui/slider.mjs.map +1 -1
  595. package/dist/ui/sonner.cjs +1 -1
  596. package/dist/ui/sonner.cjs.map +1 -1
  597. package/dist/ui/sonner.d.cts +18 -2
  598. package/dist/ui/sonner.d.mts +18 -2
  599. package/dist/ui/sonner.mjs +1 -1
  600. package/dist/ui/sonner.mjs.map +1 -1
  601. package/dist/ui/spinner.cjs +1 -1
  602. package/dist/ui/spinner.d.cts +17 -2
  603. package/dist/ui/spinner.d.mts +17 -2
  604. package/dist/ui/spinner.mjs +1 -1
  605. package/dist/ui/switch.cjs +1 -1
  606. package/dist/ui/switch.cjs.map +1 -1
  607. package/dist/ui/switch.d.cts +17 -2
  608. package/dist/ui/switch.d.mts +17 -2
  609. package/dist/ui/switch.mjs +1 -1
  610. package/dist/ui/switch.mjs.map +1 -1
  611. package/dist/ui/table.cjs +1 -1
  612. package/dist/ui/table.cjs.map +1 -1
  613. package/dist/ui/table.d.cts +44 -9
  614. package/dist/ui/table.d.mts +53 -18
  615. package/dist/ui/table.mjs +1 -1
  616. package/dist/ui/table.mjs.map +1 -1
  617. package/dist/ui/tabs.cjs +1 -1
  618. package/dist/ui/tabs.cjs.map +1 -1
  619. package/dist/ui/tabs.d.cts +26 -5
  620. package/dist/ui/tabs.d.mts +26 -5
  621. package/dist/ui/tabs.mjs +1 -1
  622. package/dist/ui/tabs.mjs.map +1 -1
  623. package/dist/ui/textarea.cjs +1 -1
  624. package/dist/ui/textarea.d.cts +18 -2
  625. package/dist/ui/textarea.d.mts +18 -2
  626. package/dist/ui/textarea.mjs +1 -1
  627. package/dist/ui/toggle-group.cjs +1 -1
  628. package/dist/ui/toggle-group.cjs.map +1 -1
  629. package/dist/ui/toggle-group.d.cts +19 -3
  630. package/dist/ui/toggle-group.d.mts +19 -3
  631. package/dist/ui/toggle-group.mjs +1 -1
  632. package/dist/ui/toggle-group.mjs.map +1 -1
  633. package/dist/ui/toggle.cjs +1 -1
  634. package/dist/ui/toggle.cjs.map +1 -1
  635. package/dist/ui/toggle.d.cts +15 -2
  636. package/dist/ui/toggle.d.mts +17 -4
  637. package/dist/ui/toggle.mjs +1 -1
  638. package/dist/ui/toggle.mjs.map +1 -1
  639. package/dist/ui/tooltip.cjs +1 -1
  640. package/dist/ui/tooltip.d.cts +37 -5
  641. package/dist/ui/tooltip.d.mts +37 -5
  642. package/dist/ui/tooltip.mjs +1 -1
  643. package/dist/user-BEyYLDNK.cjs +2 -0
  644. package/dist/user-BEyYLDNK.cjs.map +1 -0
  645. package/dist/user-DONsffqr.mjs +2 -0
  646. package/dist/user-DONsffqr.mjs.map +1 -0
  647. package/package.json +14 -5
  648. package/styles/theme.css +44 -23
  649. package/dist/avatar-DReNH6rV.mjs +0 -2
  650. package/dist/avatar-DReNH6rV.mjs.map +0 -1
  651. package/dist/avatar-aVxo69zP.cjs +0 -2
  652. package/dist/avatar-aVxo69zP.cjs.map +0 -1
  653. package/dist/badge-B4Fa7-J3.mjs +0 -2
  654. package/dist/badge-B4Fa7-J3.mjs.map +0 -1
  655. package/dist/badge-cvLJyaCA.cjs +0 -2
  656. package/dist/badge-cvLJyaCA.cjs.map +0 -1
  657. package/dist/button-BFcXpjqF.cjs +0 -2
  658. package/dist/button-BFcXpjqF.cjs.map +0 -1
  659. package/dist/button-BQTNG97Y.mjs +0 -2
  660. package/dist/button-BQTNG97Y.mjs.map +0 -1
  661. package/dist/button-BX8Kz9y6.d.cts +0 -59
  662. package/dist/button-Bo4oQsyD.d.mts +0 -59
  663. package/dist/button.variants-CS-Cmarr.cjs +0 -2
  664. package/dist/button.variants-CS-Cmarr.cjs.map +0 -1
  665. package/dist/button.variants-DRWf66hR.mjs +0 -2
  666. package/dist/button.variants-DRWf66hR.mjs.map +0 -1
  667. package/dist/calendar-CG-WMM8e.cjs.map +0 -1
  668. package/dist/calendar-CfOkrubO.mjs +0 -2
  669. package/dist/calendar-CfOkrubO.mjs.map +0 -1
  670. package/dist/checkbox-Bg2FiuQw.mjs.map +0 -1
  671. package/dist/checkbox-C0fSWwmD.cjs.map +0 -1
  672. package/dist/close-D_Ge7gnP.cjs +0 -2
  673. package/dist/close-DfuHB7kq.mjs +0 -2
  674. package/dist/command-DhBTNTqz.mjs.map +0 -1
  675. package/dist/command-_zpTaaIk.cjs.map +0 -1
  676. package/dist/data-display/user.cjs.map +0 -1
  677. package/dist/data-display/user.mjs.map +0 -1
  678. package/dist/date-By93kONr.mjs +0 -2
  679. package/dist/date-By93kONr.mjs.map +0 -1
  680. package/dist/date-em5f7hCx.cjs +0 -2
  681. package/dist/date-em5f7hCx.cjs.map +0 -1
  682. package/dist/dialog-CxELDK98.mjs +0 -2
  683. package/dist/dialog-CxELDK98.mjs.map +0 -1
  684. package/dist/dialog-DjRiV5vR.cjs +0 -2
  685. package/dist/dialog-DjRiV5vR.cjs.map +0 -1
  686. package/dist/dialog-PWeGBpsm.d.mts +0 -47
  687. package/dist/dialog-aSu9xFOW.d.cts +0 -47
  688. package/dist/dialogs/detail-dialog/components/sidebar.cjs.map +0 -1
  689. package/dist/dialogs/detail-dialog/components/sidebar.mjs.map +0 -1
  690. package/dist/dropdown-menu-B8GUTfTp.mjs +0 -2
  691. package/dist/dropdown-menu-B8GUTfTp.mjs.map +0 -1
  692. package/dist/dropdown-menu-BuyuU6uF.cjs +0 -2
  693. package/dist/dropdown-menu-BuyuU6uF.cjs.map +0 -1
  694. package/dist/features/search-modal/index.cjs.map +0 -1
  695. package/dist/features/search-modal/index.mjs.map +0 -1
  696. package/dist/features/tables/index.cjs.map +0 -1
  697. package/dist/features/tables/index.mjs.map +0 -1
  698. package/dist/features/tanstack-form/index.cjs.map +0 -1
  699. package/dist/features/tanstack-form/index.mjs.map +0 -1
  700. package/dist/flex-BP8sTi70.mjs.map +0 -1
  701. package/dist/flex-twCgWyx1.cjs.map +0 -1
  702. package/dist/heading--VmdIi7C.mjs +0 -2
  703. package/dist/heading--VmdIi7C.mjs.map +0 -1
  704. package/dist/heading-BEm5CCSE.cjs +0 -2
  705. package/dist/heading-BEm5CCSE.cjs.map +0 -1
  706. package/dist/image-CS_Q0WA7.mjs.map +0 -1
  707. package/dist/image-DuFv8sPr.cjs.map +0 -1
  708. package/dist/input-BFWWaN-v.cjs.map +0 -1
  709. package/dist/input-BgHvD7zf.d.mts +0 -25
  710. package/dist/input-DBtIgQB6.mjs.map +0 -1
  711. package/dist/input-DhQmoNrK.d.cts +0 -25
  712. package/dist/label-BzfsTrVt.cjs.map +0 -1
  713. package/dist/label-Dqr8nxWi.mjs +0 -2
  714. package/dist/label-Dqr8nxWi.mjs.map +0 -1
  715. package/dist/layouts/cms-layout/index.cjs.map +0 -1
  716. package/dist/layouts/cms-layout/index.mjs.map +0 -1
  717. package/dist/layouts/payment-layout/index.cjs.map +0 -1
  718. package/dist/layouts/payment-layout/index.mjs.map +0 -1
  719. package/dist/paragraph-B72bHMf7.cjs +0 -2
  720. package/dist/paragraph-B72bHMf7.cjs.map +0 -1
  721. package/dist/paragraph-moBSTPmT.mjs +0 -2
  722. package/dist/paragraph-moBSTPmT.mjs.map +0 -1
  723. package/dist/popover-BckwBuuD.mjs +0 -2
  724. package/dist/popover-BckwBuuD.mjs.map +0 -1
  725. package/dist/popover-DzDrgttC.cjs.map +0 -1
  726. package/dist/radio-group-CBhRsUjN.cjs.map +0 -1
  727. package/dist/radio-group-Cem8O6BK.mjs.map +0 -1
  728. package/dist/resizable-DXHfkbaz.mjs.map +0 -1
  729. package/dist/resizable-mlGS6Zto.cjs.map +0 -1
  730. package/dist/select-2CgwiefV.cjs.map +0 -1
  731. package/dist/select-CivtMKTM.mjs.map +0 -1
  732. package/dist/separator-Bf0gymN4.mjs +0 -2
  733. package/dist/separator-Bf0gymN4.mjs.map +0 -1
  734. package/dist/separator-C3ip6sbh.cjs.map +0 -1
  735. package/dist/sheet-5MJRtrfG.cjs.map +0 -1
  736. package/dist/sheet-oadGRiie.mjs.map +0 -1
  737. package/dist/skeleton-Ba6koCVf.mjs +0 -2
  738. package/dist/skeleton-Ba6koCVf.mjs.map +0 -1
  739. package/dist/skeleton-CHympz8k.cjs +0 -2
  740. package/dist/skeleton-CHympz8k.cjs.map +0 -1
  741. package/dist/spinner-Chm_2fLr.cjs +0 -2
  742. package/dist/spinner-Chm_2fLr.cjs.map +0 -1
  743. package/dist/spinner-D1v3Bard.mjs +0 -2
  744. package/dist/spinner-D1v3Bard.mjs.map +0 -1
  745. package/dist/textarea-COQoSVSc.cjs.map +0 -1
  746. package/dist/textarea-bLtmb71c.mjs.map +0 -1
  747. package/dist/tooltip-B3dTcgcc.mjs +0 -2
  748. package/dist/tooltip-B3dTcgcc.mjs.map +0 -1
  749. package/dist/tooltip-DC6i1A25.cjs.map +0 -1
  750. package/dist/ui/alert.cjs.map +0 -1
  751. package/dist/ui/alert.mjs.map +0 -1
  752. package/dist/ui/field.cjs.map +0 -1
  753. package/dist/ui/field.mjs.map +0 -1
@@ -1,2 +1 @@
1
- import"../../heading--VmdIi7C.mjs";import"../../paragraph-moBSTPmT.mjs";import"../../button.variants-DRWf66hR.mjs";import{t as e}from"../../button-BQTNG97Y.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-CxELDK98.mjs";import{t as c}from"../../checkbox-Bg2FiuQw.mjs";import{t as l}from"../../input-DBtIgQB6.mjs";import{a as u,i as d,t as f}from"../../popover-BckwBuuD.mjs";import{t as p}from"../../calendar-CfOkrubO.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-bLtmb71c.mjs";import{cn as S}from"@customafk/react-toolkit/utils";import{cva as C}from"class-variance-authority";import{memo as w,useCallback as T,useEffect as E,useId as D,useMemo as O,useRef as k,useState as A}from"react";import{jsx as j,jsxs as M}from"react/jsx-runtime";import{ArrowDownToLine as N,AtSignIcon as P,BanIcon as F,CalendarDaysIcon as I,EyeIcon as ee,EyeOffIcon as te,Loader2 as ne,Loader2Icon as L,PackagePlusIcon as re,PlusIcon as ie,Trash2Icon as ae,XIcon as oe}from"lucide-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})=>j(`div`,{"data-slot":`required-indicator`,className:_e({color:t,size:n,className:r}),children:e||i});function ye({className:e,children:t,...n}){return M(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,j(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=w(({className:e,...t})=>j(`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=w(({className:e,variant:t=`legend`,...n})=>j(`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=w(({className:e,...t})=>j(`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=w(({className:e,orientation:t=`vertical`,...n})=>j(`div`,{"data-slot":`field`,"data-orientation":t,className:S(be({orientation:t}),e),...n}));U.displayName=`Field`;const W=w(({className:e,...t})=>j(`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=w(({className:e,...t})=>j(`div`,{"data-slot":`field-content-main`,className:S(`relative`,e),...t})),K=w(({className:e,...t})=>j(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=w(({className:e,...t})=>j(`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=w(({className:e,...t})=>j(`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=w(({isShow:e=!0,className:t,...n})=>e===!1?null:j(`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=w(({children:e,className:n,...r})=>M(`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:[j(t,{className:`absolute inset-0 top-1/2`}),e&&j(`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=w(({className:e,children:t,errors:n,...r})=>{let i=O(()=>t||(n?n?.length===1&&n[0]?.message?j(`div`,{className:`flex flex-row items-center justify-start gap-x-0.5`,children:j(`p`,{children:n[0]?.code===`invalid_type`?`Không đúng định dạng`:n[0].message})}):j(`ul`,{className:`flex list-none flex-col`,children:n.map(e=>typeof e==`string`?j(`li`,{children:e},e):e?.message?j(`li`,{children:e.message},e.message):null)}):null),[t,n]);return i?j(`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 M(H,{className:`gap-y-4 px-4`,children:[M(U,{orientation:i,children:[M(W,{children:[j(K,{children:e}),j(J,{children:t}),j(Y,{isShow:!!r,children:r})]}),j(G,{children:j(H,{className:`flex flex-col gap-y-2`,children:n.map(e=>M(U,{orientation:`horizontal`,children:[j(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)}}),j(K,{htmlFor:`${a.name}-${e.value}`,className:`text-text-positive`,children:e.label})]},e.value))})})]}),j(X,{})]})},we=({label:t,description:n,placeholder:r,orientation:i=`responsive`,helperText:a,minDate:o,maxDate:s,required:c})=>{let l=Q(),m=O(()=>c?l.state.value===null:!1,[c,l.state.value]),h=O(()=>l.state.meta.isTouched&&!l.state.meta.isValid,[l.state.meta.isTouched,l.state.meta.isValid]);return M(H,{className:`px-4`,children:[M(U,{orientation:i,"data-invalid":h,children:[M(W,{children:[j(K,{htmlFor:l.name,"aria-required":m,children:t}),j(J,{children:n})]}),M(G,{className:`flex flex-col space-y-1`,children:[j(`div`,{className:`flex w-full flex-col`,children:M(f,{children:[j(u,{asChild:!0,children:M(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:[j(`p`,{children:l.state.value===null?r||`Select date`:le(l.state.value,`PPPP`)}),j(I,{strokeWidth:1})]})}),M(d,{align:`start`,side:`bottom`,className:`flex w-fit min-w-0 overflow-y-auto rounded p-0`,onBlur:l.handleBlur,children:[M(`div`,{className:`flex h-full flex-col space-y-2 border-r border-r-border p-2 [&>button]:justify-start [&>button]:text-sm`,children:[j(e,{variant:`ghost`,color:`muted`,className:`w-32`,onClick:()=>{l.handleChange(R())},children:`Today`}),j(e,{variant:`ghost`,color:`muted`,className:`w-32`,onClick:()=>{l.handleChange(se())},children:`Tomorrow`}),j(e,{variant:`ghost`,color:`muted`,className:`w-32`,onClick:()=>{l.handleChange(ce())},children:`Yesterday`}),j(e,{variant:`ghost`,color:`muted`,className:`w-32`,onClick:()=>{l.handleChange(z(R(),3))},children:`Last 3 Days`}),j(e,{variant:`ghost`,color:`muted`,className:`w-32`,onClick:()=>{l.handleChange(z(R(),7))},children:`Last 7 Days`}),j(e,{variant:`ghost`,color:`muted`,className:`w-32`,onClick:()=>{l.handleChange(z(R(),30))},children:`Last 30 Days`}),j(e,{variant:`ghost`,color:`muted`,className:`w-32`,onClick:()=>{l.handleChange(de(R()))},children:`This Month`}),j(e,{variant:`ghost`,color:`muted`,className:`w-32`,onClick:()=>{l.handleChange(ue(R()))},children:`Last Month`})]}),j(`div`,{className:`flex flex-1 flex-col`,children:j(`div`,{className:`min-w-73 border-b border-b-border p-2`,children:j(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)}})})})]})]})}),j(Y,{isShow:!!a,children:a})]})]}),j(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=O(()=>u.meta.isDirty&&u.meta.isTouched&&!u.meta.isValid,[u.meta.isDirty,u.meta.isTouched,u.meta.isValid]),h=T(({target:{value:e}})=>{p||o&&e.length>o||f(e||null)},[p,o,f]),g=T(()=>{p||f(null)},[p,f]);return M(H,{className:`gap-y-4 px-4`,children:[M(U,{"data-invalid":m,orientation:i,children:[M(W,{children:[j(K,{htmlFor:c,children:e}),j(J,{children:t})]}),M(G,{children:[j(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}),j(`div`,{className:`absolute top-0 left-0 flex size-9 items-center justify-center text-muted`,children:j(P,{size:14})}),j(`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:j(oe,{size:14,"aria-hidden":`true`})}),j(`div`,{className:`mt-1 flex w-full items-start justify-start`,children:a&&u.meta.isDirty&&j(Z,{errors:u.meta.errors})}),j(Y,{isShow:!!r,children:r})]})]}),j(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=k(null),y=k(null),[b,x]=A(a?.toString()??null),C=O(()=>s?.[1]??r,[s,r]),w=O(()=>s&&s[0]-s[1],[s]),D=O(()=>Ee(n),[n]),N=T(e=>{if(!C||e===`-`)return!0;let[t,n=``]=e.split(`.`),r=t.startsWith(`-`)?t.length-1:t.length;return n.length<=C&&r<=(w??1/0)},[C,w]),P=T(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]),F=T(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]),I=T(e=>{p?.(e);let{value:t}=e.target;if(t===``||t===void 0){m?.(null),x(null);return}F(t),!(!D.test(t)||!N(t))&&(m?.(parseFloat(t)||0),x(t))},[N,p,m,F,D]),ee=T(e=>{t||(h?.(e),x(e=>typeof e==`string`?e.replace(/,/g,``):null))},[t,h]),te=T(e=>{t||(g?.(e),x(e=>e===null?null:e===`0`||e===`-`||/^-0+(\.0+)?$/.test(e)||/^-0*\.$/.test(e)?`0`:typeof e==`string`?P(e):null))},[t,P,g]);return E(()=>{let e=document.activeElement===y.current;if(a==null||!D.test(a.toString())||!N(a.toString())){x(null);return}x(t=>e?t:P(a.toString()))},[P,a,N,D]),E(()=>{if(!v.current||!y.current||!o)return;let e=v.current.offsetWidth;y.current.style.setProperty(`padding-right`,`${(e+10)/16}rem`)},[o]),M(`div`,{className:S(`relative`,d),children:[j(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:I,onFocus:ee,onBlur:te}),o&&j(`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=O(()=>f.state.meta.errors,[f.state.meta.errors]),h=O(()=>u?f.state.value===null:!1,[u,f.state.value]),g=T(e=>{p||f.handleChange(e)},[p,f.handleChange]);return M(H,{className:`gap-y-4 px-4`,children:[M(U,{orientation:i,"data-invalid":f.state.meta.isTouched&&!f.state.meta.isValid,children:[M(W,{children:[j(K,{htmlFor:f.name,"aria-required":h,children:e}),j(J,{children:t})]}),M(G,{children:[M(`div`,{className:`relative w-full`,children:[j(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&&j(`div`,{className:`absolute inset-s-2 inset-y-0 top-2.5 text-muted-weak [&>svg]:size-3.5`,children:j(L,{className:`animate-spin text-primary-strong`})}),f.state.meta.isDirty&&a&&!!m.length&&j(`div`,{className:`absolute inset-s-2 inset-y-0 top-2.75 text-danger-strong [&>svg]:size-3.5`,children:j(F,{})}),j(`div`,{className:`mt-1 flex w-full flex-col items-end justify-end`,children:f.state.meta.isDirty&&a&&j(Z,{errors:m})})]}),j(Y,{isShow:!!r,children:r})]})]}),j(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]=A(!1),h=O(()=>c.meta.isDirty&&c.meta.isTouched&&!c.meta.isValid,[c.meta.isDirty,c.meta.isTouched,c.meta.isValid]),g=T(()=>m(e=>!e),[]),_=T(({target:{value:e}})=>{f||d(e||null)},[f,d]);return j(H,{className:`gap-y-4 px-4`,children:M(U,{"data-invalid":h,orientation:r,children:[M(W,{children:[j(K,{htmlFor:s,children:e}),j(J,{children:t})]}),M(G,{children:[j(l,{id:s,type:p?`text`:`password`,placeholder:n,value:c.value??``,"aria-invalid":h,autoComplete:`new-password`,onBlur:u,onChange:_}),j(`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:j(p?te:ee,{size:16,"aria-hidden":`true`})}),j(`div`,{className:`mt-1 flex w-full items-start justify-start`,children:a&&c.meta.isDirty&&j(Z,{errors:c.meta.errors})}),j(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 M(H,{className:`px-4`,children:[M(U,{orientation:n,className:`flex-col gap-2`,children:[M(W,{children:[j(K,{children:e}),j(J,{children:t}),j(Y,{isShow:!!i,children:i})]}),j(G,{children:j(h,{defaultValue:a.state.value??void 0,className:`w-full`,onValueChange:a.handleChange,children:r.map(e=>j(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:M(U,{orientation:`horizontal`,className:`justify-between rounded p-2!`,children:[M(W,{className:`gap-1!`,children:[j(q,{children:e.label}),j(J,{className:`text-xs`,children:e.description})]}),j(m,{value:e.value})]})},e.value))})})]}),j(X,{})]})},Ne=({label:e,description:t,placeholder:n,orientation:r=`responsive`,options:i,helperText:a,required:o=!1})=>{let s=Q(),c=O(()=>s.state.meta.isTouched&&!s.state.meta.isValid,[s.state.meta.isTouched,s.state.meta.isValid]),l=O(()=>o?s.state.value===null:!1,[o,s.state.value]),u=O(()=>s.state.meta.errors,[s.state.meta.errors]);return M(H,{className:`gap-y-4 px-4`,children:[M(U,{orientation:r,"data-invalid":s.state.meta.isTouched&&!s.state.meta.isValid,children:[M(W,{children:[j(K,{htmlFor:s.name,"aria-required":l,children:e}),j(J,{children:t})]}),M(G,{className:`flex flex-col`,children:[M(b,{defaultValue:s.state.value||void 0,onValueChange:s.handleChange,children:[j(y,{"aria-invalid":c?`true`:void 0,onBlur:s.handleBlur,children:j(g,{placeholder:n})}),M(v,{children:[!!i.length&&i.map(e=>j(_,{value:e.value,children:e.label},e.value)),!i.length&&M(`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:[j(re,{strokeWidth:1}),`No options available`]})]})]}),j(`div`,{className:`mt-1 flex w-full flex-col items-end justify-end`,children:j(Z,{errors:u})}),j(Y,{isShow:!!a,children:a})]})]}),j(X,{})]})};function Pe({className:e,...t}){return j(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:j(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 M(H,{className:`gap-y-4 px-4`,children:[M(U,{orientation:`vertical`,className:`relative justify-between gap-y-1`,children:[M(W,{children:[j(q,{className:`cursor-pointer`,children:j(`label`,{htmlFor:r.name,children:e})}),j(J,{children:t}),j(Pe,{id:r.name,checked:r.state.value??!1,className:`absolute top-1 right-1`,onBlur:r.handleBlur,onCheckedChange:r.handleChange})]}),j(Y,{isShow:!!n,children:n})]}),j(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=D(),f=k(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=O(()=>{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,w=c?h.value===null:!1,E=u&&b>=u*.8,A=u&&b>=u,N=T(({target:{value:e}})=>{v||i&&u&&e.length>u||_(e||null)},[v,i,u,_]),P=T(()=>{v||(_(null),f.current?.focus())},[v,_]);return M(H,{className:`gap-y-4 px-4`,children:[M(U,{orientation:a,"data-invalid":C,children:[M(W,{children:[j(K,{"aria-required":w,htmlFor:d,children:M(`p`,{children:[e,c&&j(`span`,{className:`text-danger-strong`,children:` *`})]})}),j(J,{children:t})]}),M(G,{children:[j(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:N}),y&&j(`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:P,children:j(oe,{"aria-hidden":`true`})}),v&&j(`div`,{className:`absolute inset-e-2 inset-y-0 top-2.5 text-muted-weak`,children:j(L,{size:14,className:`animate-spin text-primary-strong`})}),h.meta.isDirty&&s&&!!h.meta.errors.length&&j(`div`,{className:`absolute inset-e-2 inset-y-0 top-2.5 text-danger-strong`,children:j(F,{"aria-hidden":`true`,size:14})}),M(`div`,{className:`my-1 flex w-full items-start justify-between gap-x-2`,children:[h.meta.isDirty&&s?j(Z,{className:`flex-1`,errors:h.meta.errors}):j(`div`,{}),!!i&&j(`p`,{className:S(`h-4 flex-0 text-nowrap text-end text-xs tabular-nums transition-colors`,A?`font-medium text-danger-strong`:E?`text-warning-strong`:`text-text-positive-weak`),children:x})]}),j(Y,{isShow:!!r,children:r})]})]}),j(X,{})]})},Le=w(({label:e,description:t,placeholder:n,helperText:r,counter:i=!1,orientation:a=`responsive`,showErrorMessage:o=!0,required:s=!1,maxLength:c})=>{let l=D(),{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,_=O(()=>{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,w=c&&g>=c,E=T(({target:{value:e}})=>{h||i&&c&&e.length>c||m(e||null)},[h,i,c,m]);return M(H,{className:`gap-y-4 px-4`,children:[M(U,{orientation:a,"data-invalid":v,children:[M(W,{children:[j(K,{"aria-required":y,htmlFor:l,children:M(`p`,{children:[e,s&&j(`span`,{className:`text-danger-strong`,children:` *`})]})}),j(J,{children:t})]}),M(G,{children:[j(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:E,onBlur:p}),h&&j(`div`,{className:`absolute inset-e-2 inset-y-0 top-2.5 text-muted-weak`,children:j(L,{size:14,className:`animate-spin text-primary-strong`})}),d.meta.isDirty&&o&&!!b.length&&j(`div`,{className:`absolute inset-e-2 inset-y-0 top-2.5 text-danger-strong`,children:j(F,{size:14})}),M(`div`,{className:`my-1 flex w-full items-start justify-between gap-x-2`,children:[d.meta.isDirty&&o?j(Z,{className:`flex-1`,errors:d.meta.errors}):j(`div`,{}),!!i&&j(`p`,{className:S(`h-4 flex-0 text-nowrap text-end text-xs tabular-nums transition-colors`,w?`font-medium text-danger-strong`:C?`text-warning-strong`:`text-text-positive-weak`),children:_})]}),j(Y,{isShow:!!r,children:r})]})]}),j(X,{})]})}),Re=({label:t,className:n})=>{let r=$(),i=T(async()=>{await r.handleSubmit({submitAction:`submit`}),r.state.isSubmitSuccessful&&r.reset()},[r]);return j(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})=>j(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 M(`div`,{className:`flex h-8 items-center justify-between`,children:[j(n.Subscribe,{selector:e=>({disabled:e.isPristine||e.isSubmitting}),children:({disabled:t})=>j(e,{color:`muted`,variant:`outline`,type:`button`,size:`md`,disabled:t,className:`h-full min-w-32`,onClick:()=>n.reset(),children:`Cancel`})}),t===`create`&&j(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})=>M(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:[j(ie,{}),`Add New`]})}),t===`update`&&j(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})=>M(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:[j(N,{}),`Update`]})})]})};function Be({className:e,orientation:t=`horizontal`,decorative:n=!0,...r}){return j(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})=>M(`section`,{"data-slot":`card-form`,className:`relative flex flex-col rounded-md bg-card pb-4 shadow-card ring-4 ring-border-weak`,children:[M(`div`,{"data-slot":`card-form-header`,className:`flex flex-col space-y-1 p-4`,children:[j(`p`,{className:`font-semibold text-lg`,children:t}),!!n&&j(`p`,{className:`text-muted text-sm`,children:n})]}),j(Be,{}),j(`div`,{"data-slot":`card-form-main`,className:`flex flex-col space-y-4 py-4`,children:i}),!!r&&M(e,{color:`danger`,variant:`outline`,size:`sm`,className:`absolute top-2 right-2`,onClick:e=>{r?.(),e.preventDefault(),e.stopPropagation()},children:[j(ae,{}),`Remove`]})]}),He=({children:e})=>j(`div`,{"data-slot":`section-form`,className:`flex flex-col space-y-4`,children:e}),Ue=({...e})=>j(`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})=>j(`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?j(ne,{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=T(e=>{e||d.reset(),l?.(e)},[d.reset,l]);return j(s,{open:c,onOpenChange:f,children:M(r,{"data-slot":`dialog-portal`,children:[j(o,{}),M(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:[j(`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:j(i,{"data-slot":`dialog-title`,children:e})}),j(t,{}),j(`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}),j(t,{}),M(`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:[j(d.Subscribe,{selector:e=>({disabled:e.isSubmitting}),children:({disabled:e})=>j(Ue,{disabled:e,onClick:()=>{d.reset(),f(!1)}})}),j(d.Subscribe,{selector:e=>({isSubmitting:e.isSubmitting,disabled:e.isPristine||!e.isValid||e.isValidating||e.isSubmitting||!e.canSubmit}),children:({isSubmitting:e,disabled:t})=>j(We,{isSubmitting:e,disabled:t,submitText:n,onClick:()=>d.handleSubmit()})})]})]})]})})},Ke=({label:e,description:t,helperText:n,orientation:r=`responsive`,children:i})=>M(H,{className:`gap-y-4 px-4`,children:[M(U,{orientation:r,children:[M(W,{children:[j(K,{children:e}),j(J,{children:t})]}),M(G,{children:[i,j(Y,{isShow:!!n,children:n})]})]}),j(X,{})]}),qe=({title:e,open:t,contentClassName:r,onOpenChange:i,children:a})=>{let o=$();return j(B.Root,{"data-slot":`dialog`,open:t,onOpenChange:i,children:M(B.Portal,{"data-slot":`dialog-portal`,children:[j(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`)}),j(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:M(`section`,{className:`relative flex size-full flex-col`,children:[j(`header`,{className:`flex h-14 items-center border-border border-b px-4`,children:j(`h2`,{className:`font-semibold text-lg text-primary-strong`,children:e})}),j(`div`,{className:S(`flex flex-1 flex-col overflow-y-auto py-4`,r),children:a}),M(`div`,{className:`flex flex-col space-y-4 border-border border-t px-4 py-2`,children:[j(o.Subscribe,{selector:e=>({isSubmitting:e.isSubmitting,disabled:e.isPristine||!e.isValid||e.isValidating||e.isSubmitting||!e.canSubmit}),children:({isSubmitting:e,disabled:t})=>j(We,{isSubmitting:e,disabled:t,className:`w-full`,onClick:()=>o.handleSubmit()})}),j(o.Subscribe,{selector:e=>({disabled:e.isPristine||e.isSubmitting}),children:({disabled:e})=>j(Ue,{disabled:e,className:`w-full`,onClick:()=>{o.reset(),i?.(!1)}})})]}),j(B.Close,{asChild:!0,children:j(n,{className:`absolute top-2 right-2`})})]})})]})})},Je=({children:e})=>j(`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})=>j(`main`,{"data-slot":`section-main`,className:`relative flex flex-col space-y-4 py-4`,children:e}),Xe=({title:e,children:t})=>M(`section`,{"data-slot":`section-form`,className:`flex flex-col rounded-md bg-background shadow-card ring-4 ring-border-weak`,children:[j(Je,{children:e}),j(Be,{}),j(Ye,{children:t})]}),Ze=({title:e,description:t,helperText:n})=>M(H,{className:`gap-y-4 px-4`,children:[M(U,{className:`gap-0`,children:[M(W,{children:[j(Se,{className:`mb-1`,children:e}),j(J,{children:t})]}),j(Y,{isShow:!!n,children:n})]}),j(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{memo as n}from"react";import{jsx as r}from"react/jsx-runtime";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=n(({vertical:t,wrap:n,width:a,margin:o,padding:s,gap:c,justify:l,align:u,className:d,children:f})=>r(`div`,{className:e(i({vertical:t,width:a,wrap:n,margin:o,padding:s,gap:c,justify:l,align:u,className:d})),children:f}));a.displayName=`Flex`;export{a as t};
2
- //# sourceMappingURL=flex-BP8sTi70.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`),i=require(`react/jsx-runtime`);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,r.memo)(({vertical:e,wrap:n,width:r,margin:o,padding:s,gap:c,justify:l,align:u,className:d,children:f})=>(0,i.jsx)(`div`,{className:(0,t.cn)(a({vertical:e,width:r,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-twCgWyx1.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"}
@@ -1,2 +1,2 @@
1
- const e=require(`./chunk-Bmb41Sf3.cjs`),t=require(`./skeleton-CHympz8k.cjs`);let n=require(`@customafk/react-toolkit/utils`),r=require(`react`),i=require(`react/jsx-runtime`),a=require(`lucide-react`);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,n.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)(a.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,n.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,n.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-DuFv8sPr.cjs.map
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"}
@@ -1,2 +1,2 @@
1
- import{t as e}from"./skeleton-Ba6koCVf.mjs";import{cn as t}from"@customafk/react-toolkit/utils";import{useCallback as n,useRef as r,useState as i}from"react";import{jsx as a,jsxs as o}from"react/jsx-runtime";import{AlertCircleIcon as s}from"lucide-react";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:t(`@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(s,{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:t(`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:t(`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-CS_Q0WA7.mjs.map
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"}