@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,14 +1,49 @@
1
- import * as react2 from "react";
2
- import * as react_jsx_runtime148 from "react/jsx-runtime";
1
+ import * as react31 from "react";
2
+ import * as react_jsx_runtime278 from "react/jsx-runtime";
3
3
  import { Label, Slot } from "radix-ui";
4
4
  import * as react_hook_form0 from "react-hook-form";
5
5
  import { ControllerProps, FieldPath, FieldValues } from "react-hook-form";
6
6
 
7
7
  //#region packages/components/ui/form.d.ts
8
+
9
+ /**
10
+ * Re-export of react-hook-form's `FormProvider`; wrap your form with this to give all nested form components access to the form context.
11
+ *
12
+ * @example
13
+ * ```tsx
14
+ * import { Form, FormField, FormItem, FormLabel, FormControl, FormMessage } from '@customafk/lunas-ui/ui/form';
15
+ * import { useForm } from 'react-hook-form';
16
+ *
17
+ * const form = useForm<{ username: string }>();
18
+ *
19
+ * <Form {...form}>
20
+ * <form onSubmit={form.handleSubmit(onSubmit)}>
21
+ * <FormField
22
+ * control={form.control}
23
+ * name="username"
24
+ * render={({ field }) => (
25
+ * <FormItem>
26
+ * <FormLabel>Username</FormLabel>
27
+ * <FormControl><input {...field} /></FormControl>
28
+ * <FormMessage />
29
+ * </FormItem>
30
+ * )}
31
+ * />
32
+ * </form>
33
+ * </Form>
34
+ * ```
35
+ */
8
36
  declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues>(props: react_hook_form0.FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element;
37
+ /**
38
+ * Connects a single react-hook-form field to the form context; renders a `Controller` and passes `name` down to nested FormItem, FormLabel, FormControl, and FormMessage.
39
+ */
9
40
  declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({
10
41
  ...props
11
- }: ControllerProps<TFieldValues, TName>) => react_jsx_runtime148.JSX.Element;
42
+ }: ControllerProps<TFieldValues, TName>) => react_jsx_runtime278.JSX.Element;
43
+ /**
44
+ * Hook that returns the field state and IDs for the enclosing FormField.
45
+ * Must be called inside a component rendered within a `<FormField>`.
46
+ */
12
47
  declare const useFormField: () => {
13
48
  invalid: boolean;
14
49
  isDirty: boolean;
@@ -23,28 +58,37 @@ declare const useFormField: () => {
23
58
  formDescriptionId: string;
24
59
  formMessageId: string;
25
60
  };
26
- declare const FormItem: react2.MemoExoticComponent<({
61
+ /**
62
+ * Container for a single form field — generates a unique ID and provides it via context to FormLabel, FormControl, and FormMessage.
63
+ *
64
+ * @param orientation - Layout direction: `'vertical'`, `'horizontal'`, or `'responsive'` (default).
65
+ */
66
+ declare const FormItem: react31.MemoExoticComponent<({
27
67
  className,
28
68
  orientation,
29
69
  ...props
30
70
  }: React.ComponentProps<"div"> & {
31
71
  orientation?: "vertical" | "horizontal" | "responsive";
32
- }) => react_jsx_runtime148.JSX.Element>;
33
- declare const FormLabel: react2.MemoExoticComponent<({
72
+ }) => react_jsx_runtime278.JSX.Element>;
73
+ /** Styled label automatically associated with the FormItem's control via `htmlFor`. */
74
+ declare const FormLabel: react31.MemoExoticComponent<({
34
75
  ...props
35
- }: React.ComponentProps<typeof Label.Root>) => react_jsx_runtime148.JSX.Element>;
36
- declare const FormControl: react2.MemoExoticComponent<({
76
+ }: React.ComponentProps<typeof Label.Root>) => react_jsx_runtime278.JSX.Element>;
77
+ /** Radix Slot wrapper that wires the correct `id`, `aria-describedby`, and `aria-invalid` attributes onto the underlying control element. */
78
+ declare const FormControl: react31.MemoExoticComponent<({
37
79
  ...props
38
- }: React.ComponentProps<typeof Slot.Slot>) => react_jsx_runtime148.JSX.Element>;
80
+ }: React.ComponentProps<typeof Slot.Slot>) => react_jsx_runtime278.JSX.Element>;
81
+ /** Helper text displayed below the control that provides additional context about the field. */
39
82
  declare function FormDescription({
40
83
  className,
41
84
  ...props
42
- }: React.ComponentProps<'p'>): react_jsx_runtime148.JSX.Element;
85
+ }: React.ComponentProps<'p'>): react_jsx_runtime278.JSX.Element;
86
+ /** Displays the validation error message for the field, or falls back to `children` when there is no error. */
43
87
  declare function FormMessage({
44
88
  className,
45
89
  children,
46
90
  ...props
47
- }: React.ComponentProps<'p'>): react_jsx_runtime148.JSX.Element;
91
+ }: React.ComponentProps<'p'>): react_jsx_runtime278.JSX.Element;
48
92
  //#endregion
49
93
  export { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, useFormField };
50
94
  //# sourceMappingURL=form.d.mts.map
package/dist/ui/form.mjs CHANGED
@@ -1,2 +1,2 @@
1
- "use client";import"../separator-Bf0gymN4.mjs";import"../label-Dqr8nxWi.mjs";import{Field as e,FieldDescription as t,FieldLabel as n}from"./field.mjs";import{cn as r}from"@customafk/react-toolkit/utils";import{createContext as i,memo as a,use as o,useId as s}from"react";import{jsx as c}from"react/jsx-runtime";import{Slot as l}from"radix-ui";import{Controller as u,FormProvider as d,useFormContext as f,useFormState as p}from"react-hook-form";const m=d,h=i({}),g=({...e})=>c(h.Provider,{value:{name:e.name},children:c(u,{...e})}),_=()=>{let e=o(h),t=o(v),{getFieldState:n,control:r,resetField:i}=f(),a=p({name:e.name}),s=n(e.name,a);if(!e)throw Error(`useFormField should be used within <FormField>`);let{id:c}=t;return{id:c,control:r,resetField:i,name:e.name,formItemId:`${c}-form-item`,formDescriptionId:`${c}-form-item-description`,formMessageId:`${c}-form-item-message`,...s}},v=i({}),y=a(({className:t,orientation:n=`responsive`,...r})=>{let i=s();return c(v.Provider,{value:{id:i},children:c(e,{orientation:n,...r,className:t})})});y.displayName=`FormItem`;const b=a(({...e})=>{let{formItemId:t}=_();return c(n,{htmlFor:t,...e})});b.displayName=`FormLabel`;const x=a(({...e})=>{let{error:t,formItemId:n,formDescriptionId:r,formMessageId:i}=_();return c(l.Slot,{"data-slot":`form-control`,id:n,"aria-describedby":t?`${r} ${i}`:`${r}`,"aria-invalid":!!t,...e})});x.displayName=`FormControl`;function S({className:e,...n}){let{formDescriptionId:i}=_();return c(t,{id:i,className:r(`text-text-positive-weak text-sm/6 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),...n})}function C({className:e,children:t,...n}){let{error:i,formMessageId:a}=_();return c(`span`,{"data-slot":`form-message`,id:a,className:r(`text-danger text-xs`,e),...n,children:i?String(i?.message??``):t})}export{m as Form,x as FormControl,S as FormDescription,g as FormField,y as FormItem,b as FormLabel,C as FormMessage,_ as useFormField};
1
+ "use client";import"../separator-BMsbHAVt.mjs";import"../label-OmlGaZ5h.mjs";import{o as e,r as t,t as n}from"../field-CXVnw75a.mjs";import{createContext as r,memo as i,use as a,useId as o}from"react";import{jsx as s}from"react/jsx-runtime";import{cn as c}from"@customafk/react-toolkit/utils";import{Slot as l}from"radix-ui";import{Controller as u,FormProvider as d,useFormContext as f,useFormState as p}from"react-hook-form";const m=d,h=r({}),g=({...e})=>s(h.Provider,{value:{name:e.name},children:s(u,{...e})}),_=()=>{let e=a(h),t=a(v),{getFieldState:n,control:r,resetField:i}=f(),o=p({name:e.name}),s=n(e.name,o);if(!e)throw Error(`useFormField should be used within <FormField>`);let{id:c}=t;return{id:c,control:r,resetField:i,name:e.name,formItemId:`${c}-form-item`,formDescriptionId:`${c}-form-item-description`,formMessageId:`${c}-form-item-message`,...s}},v=r({}),y=i(({className:e,orientation:t=`responsive`,...r})=>{let i=o();return s(v.Provider,{value:{id:i},children:s(n,{orientation:t,...r,className:e})})});y.displayName=`FormItem`;const b=i(({...t})=>{let{formItemId:n}=_();return s(e,{htmlFor:n,...t})});b.displayName=`FormLabel`;const x=i(({...e})=>{let{error:t,formItemId:n,formDescriptionId:r,formMessageId:i}=_();return s(l.Slot,{"data-slot":`form-control`,id:n,"aria-describedby":t?`${r} ${i}`:`${r}`,"aria-invalid":!!t,...e})});x.displayName=`FormControl`;function S({className:e,...n}){let{formDescriptionId:r}=_();return s(t,{id:r,className:c(`text-text-positive-weak text-sm/6 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),...n})}function C({className:e,children:t,...n}){let{error:r,formMessageId:i}=_();return s(`span`,{"data-slot":`form-message`,id:i,className:c(`text-danger text-xs`,e),...n,children:r?String(r?.message??``):t})}export{m as Form,x as FormControl,S as FormDescription,g as FormField,y as FormItem,b as FormLabel,C as FormMessage,_ as useFormField};
2
2
  //# sourceMappingURL=form.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"form.mjs","names":["SlotPrimitive"],"sources":["../../packages/components/ui/form.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\nimport { type Label as LabelPrimitive, Slot as SlotPrimitive } from 'radix-ui';\nimport { createContext, memo, use, useId } from 'react';\nimport type { ControllerProps, FieldPath, FieldValues } from 'react-hook-form';\nimport { Controller, FormProvider, useFormContext, useFormState } from 'react-hook-form';\nimport { Field, FieldDescription, FieldLabel } from './field';\n\nconst Form = FormProvider;\n\ntype FormFieldContextValue<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = {\n name: TName;\n};\n\nconst FormFieldContext = createContext<FormFieldContextValue>({} as FormFieldContextValue);\n\nconst FormField = <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst useFormField = () => {\n const fieldContext = use(FormFieldContext);\n const itemContext = use(FormItemContext);\n const { getFieldState, control, resetField } = useFormContext();\n const formState = useFormState({ name: fieldContext.name });\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error('useFormField should be used within <FormField>');\n }\n\n const { id } = itemContext;\n\n return {\n id,\n control,\n resetField,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = createContext<FormItemContextValue>({} as FormItemContextValue);\n\nconst FormItem = memo(\n ({\n className,\n orientation = 'responsive',\n ...props\n }: React.ComponentProps<'div'> & {\n orientation?: 'vertical' | 'horizontal' | 'responsive';\n }) => {\n const id = useId();\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <Field orientation={orientation} {...props} className={className} />\n </FormItemContext.Provider>\n );\n }\n);\nFormItem.displayName = 'FormItem';\n\nconst FormLabel = memo(({ ...props }: React.ComponentProps<typeof LabelPrimitive.Root>) => {\n const { formItemId } = useFormField();\n return <FieldLabel htmlFor={formItemId} {...props} />;\n});\nFormLabel.displayName = 'FormLabel';\n\nconst FormControl = memo(({ ...props }: React.ComponentProps<typeof SlotPrimitive.Slot>) => {\n const { error, formItemId, formDescriptionId, formMessageId } = useFormField();\n\n return (\n <SlotPrimitive.Slot\n data-slot=\"form-control\"\n id={formItemId}\n aria-describedby={!error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`}\n aria-invalid={!!error}\n {...props}\n />\n );\n});\nFormControl.displayName = 'FormControl';\n\nfunction FormDescription({ className, ...props }: React.ComponentProps<'p'>) {\n const { formDescriptionId } = useFormField();\n\n return (\n <FieldDescription\n id={formDescriptionId}\n className={cn(\n 'text-text-positive-weak text-sm/6 leading-normal font-normal',\n '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}\n\nfunction FormMessage({ className, children, ...props }: React.ComponentProps<'p'>) {\n const { error, formMessageId } = useFormField();\n\n return (\n <span data-slot=\"form-message\" id={formMessageId} className={cn('text-danger text-xs', className)} {...props}>\n {error ? String(error?.message ?? '') : children}\n </span>\n );\n}\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, useFormField };\n"],"mappings":"4bASA,MAAM,EAAO,EAMP,EAAmB,EAAqC,EAAE,CAA0B,CAEpF,GAA8H,CAClI,GAAG,KAGD,EAAC,EAAiB,SAAA,CAAS,MAAO,CAAE,KAAM,EAAM,KAAM,UACpD,EAAC,EAAA,CAAW,GAAI,EAAA,CAAS,EACC,CAI1B,MAAqB,CACzB,IAAM,EAAe,EAAI,EAAiB,CACpC,EAAc,EAAI,EAAgB,CAClC,CAAE,gBAAe,UAAS,cAAe,GAAgB,CACzD,EAAY,EAAa,CAAE,KAAM,EAAa,KAAM,CAAC,CACrD,EAAa,EAAc,EAAa,KAAM,EAAU,CAE9D,GAAI,CAAC,EACH,MAAU,MAAM,iDAAiD,CAGnE,GAAM,CAAE,MAAO,EAEf,MAAO,CACL,KACA,UACA,aACA,KAAM,EAAa,KACnB,WAAY,GAAG,EAAG,YAClB,kBAAmB,GAAG,EAAG,wBACzB,cAAe,GAAG,EAAG,oBACrB,GAAG,EACJ,EAOG,EAAkB,EAAoC,EAAE,CAAyB,CAEjF,EAAW,GACd,CACC,YACA,cAAc,aACd,GAAG,KAGC,CACJ,IAAM,EAAK,GAAO,CAElB,OACE,EAAC,EAAgB,SAAA,CAAS,MAAO,CAAE,KAAI,UACrC,EAAC,EAAA,CAAmB,cAAa,GAAI,EAAkB,aAAa,EAC3C,EAGhC,CACD,EAAS,YAAc,WAEvB,MAAM,EAAY,GAAM,CAAE,GAAG,KAA8D,CACzF,GAAM,CAAE,cAAe,GAAc,CACrC,OAAO,EAAC,EAAA,CAAW,QAAS,EAAY,GAAI,GAAS,EACrD,CACF,EAAU,YAAc,YAExB,MAAM,EAAc,GAAM,CAAE,GAAG,KAA6D,CAC1F,GAAM,CAAE,QAAO,aAAY,oBAAmB,iBAAkB,GAAc,CAE9E,OACE,EAACA,EAAc,KAAA,CACb,YAAU,eACV,GAAI,EACJ,mBAAmB,EAAiC,GAAG,EAAkB,GAAG,IAAjD,GAAG,IAC9B,eAAc,CAAC,CAAC,EAChB,GAAI,GACJ,EAEJ,CACF,EAAY,YAAc,cAE1B,SAAS,EAAgB,CAAE,YAAW,GAAG,GAAoC,CAC3E,GAAM,CAAE,qBAAsB,GAAc,CAE5C,OACE,EAAC,EAAA,CACC,GAAI,EACJ,UAAW,EACT,+DACA,6DACA,+DACA,oEACA,EACD,CACD,GAAI,GACJ,CAIN,SAAS,EAAY,CAAE,YAAW,WAAU,GAAG,GAAoC,CACjF,GAAM,CAAE,QAAO,iBAAkB,GAAc,CAE/C,OACE,EAAC,OAAA,CAAK,YAAU,eAAe,GAAI,EAAe,UAAW,EAAG,sBAAuB,EAAU,CAAE,GAAI,WACpG,EAAQ,OAAO,GAAO,SAAW,GAAG,CAAG,GACnC"}
1
+ {"version":3,"file":"form.mjs","names":["SlotPrimitive"],"sources":["../../packages/components/ui/form.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\nimport { type Label as LabelPrimitive, Slot as SlotPrimitive } from 'radix-ui';\nimport { createContext, memo, use, useId } from 'react';\nimport type { ControllerProps, FieldPath, FieldValues } from 'react-hook-form';\nimport { Controller, FormProvider, useFormContext, useFormState } from 'react-hook-form';\nimport { Field, FieldDescription, FieldLabel } from './field';\n\n/**\n * Re-export of react-hook-form's `FormProvider`; wrap your form with this to give all nested form components access to the form context.\n *\n * @example\n * ```tsx\n * import { Form, FormField, FormItem, FormLabel, FormControl, FormMessage } from '@customafk/lunas-ui/ui/form';\n * import { useForm } from 'react-hook-form';\n *\n * const form = useForm<{ username: string }>();\n *\n * <Form {...form}>\n * <form onSubmit={form.handleSubmit(onSubmit)}>\n * <FormField\n * control={form.control}\n * name=\"username\"\n * render={({ field }) => (\n * <FormItem>\n * <FormLabel>Username</FormLabel>\n * <FormControl><input {...field} /></FormControl>\n * <FormMessage />\n * </FormItem>\n * )}\n * />\n * </form>\n * </Form>\n * ```\n */\nconst Form = FormProvider;\n\ntype FormFieldContextValue<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = {\n name: TName;\n};\n\nconst FormFieldContext = createContext<FormFieldContextValue>({} as FormFieldContextValue);\n\n/**\n * Connects a single react-hook-form field to the form context; renders a `Controller` and passes `name` down to nested FormItem, FormLabel, FormControl, and FormMessage.\n */\nconst FormField = <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\n/**\n * Hook that returns the field state and IDs for the enclosing FormField.\n * Must be called inside a component rendered within a `<FormField>`.\n */\nconst useFormField = () => {\n const fieldContext = use(FormFieldContext);\n const itemContext = use(FormItemContext);\n const { getFieldState, control, resetField } = useFormContext();\n const formState = useFormState({ name: fieldContext.name });\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error('useFormField should be used within <FormField>');\n }\n\n const { id } = itemContext;\n\n return {\n id,\n control,\n resetField,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = createContext<FormItemContextValue>({} as FormItemContextValue);\n\n/**\n * Container for a single form field — generates a unique ID and provides it via context to FormLabel, FormControl, and FormMessage.\n *\n * @param orientation - Layout direction: `'vertical'`, `'horizontal'`, or `'responsive'` (default).\n */\nconst FormItem = memo(\n ({\n className,\n orientation = 'responsive',\n ...props\n }: React.ComponentProps<'div'> & {\n orientation?: 'vertical' | 'horizontal' | 'responsive';\n }) => {\n const id = useId();\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <Field orientation={orientation} {...props} className={className} />\n </FormItemContext.Provider>\n );\n }\n);\nFormItem.displayName = 'FormItem';\n\n/** Styled label automatically associated with the FormItem's control via `htmlFor`. */\nconst FormLabel = memo(({ ...props }: React.ComponentProps<typeof LabelPrimitive.Root>) => {\n const { formItemId } = useFormField();\n return <FieldLabel htmlFor={formItemId} {...props} />;\n});\nFormLabel.displayName = 'FormLabel';\n\n/** Radix Slot wrapper that wires the correct `id`, `aria-describedby`, and `aria-invalid` attributes onto the underlying control element. */\nconst FormControl = memo(({ ...props }: React.ComponentProps<typeof SlotPrimitive.Slot>) => {\n const { error, formItemId, formDescriptionId, formMessageId } = useFormField();\n\n return (\n <SlotPrimitive.Slot\n data-slot=\"form-control\"\n id={formItemId}\n aria-describedby={!error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`}\n aria-invalid={!!error}\n {...props}\n />\n );\n});\nFormControl.displayName = 'FormControl';\n\n/** Helper text displayed below the control that provides additional context about the field. */\nfunction FormDescription({ className, ...props }: React.ComponentProps<'p'>) {\n const { formDescriptionId } = useFormField();\n\n return (\n <FieldDescription\n id={formDescriptionId}\n className={cn(\n 'text-text-positive-weak text-sm/6 leading-normal font-normal',\n '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}\n\n/** Displays the validation error message for the field, or falls back to `children` when there is no error. */\nfunction FormMessage({ className, children, ...props }: React.ComponentProps<'p'>) {\n const { error, formMessageId } = useFormField();\n\n return (\n <span data-slot=\"form-message\" id={formMessageId} className={cn('text-danger text-xs', className)} {...props}>\n {error ? String(error?.message ?? '') : children}\n </span>\n );\n}\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, useFormField };\n"],"mappings":"0aAoCA,MAAM,EAAO,EAMP,EAAmB,EAAqC,EAAE,CAA0B,CAKpF,GAA8H,CAClI,GAAG,KAGD,EAAC,EAAiB,SAAA,CAAS,MAAO,CAAE,KAAM,EAAM,KAAM,UACpD,EAAC,EAAA,CAAW,GAAI,EAAA,CAAS,EACC,CAQ1B,MAAqB,CACzB,IAAM,EAAe,EAAI,EAAiB,CACpC,EAAc,EAAI,EAAgB,CAClC,CAAE,gBAAe,UAAS,cAAe,GAAgB,CACzD,EAAY,EAAa,CAAE,KAAM,EAAa,KAAM,CAAC,CACrD,EAAa,EAAc,EAAa,KAAM,EAAU,CAE9D,GAAI,CAAC,EACH,MAAU,MAAM,iDAAiD,CAGnE,GAAM,CAAE,MAAO,EAEf,MAAO,CACL,KACA,UACA,aACA,KAAM,EAAa,KACnB,WAAY,GAAG,EAAG,YAClB,kBAAmB,GAAG,EAAG,wBACzB,cAAe,GAAG,EAAG,oBACrB,GAAG,EACJ,EAOG,EAAkB,EAAoC,EAAE,CAAyB,CAOjF,EAAW,GACd,CACC,YACA,cAAc,aACd,GAAG,KAGC,CACJ,IAAM,EAAK,GAAO,CAElB,OACE,EAAC,EAAgB,SAAA,CAAS,MAAO,CAAE,KAAI,UACrC,EAAC,EAAA,CAAmB,cAAa,GAAI,EAAkB,aAAa,EAC3C,EAGhC,CACD,EAAS,YAAc,WAGvB,MAAM,EAAY,GAAM,CAAE,GAAG,KAA8D,CACzF,GAAM,CAAE,cAAe,GAAc,CACrC,OAAO,EAAC,EAAA,CAAW,QAAS,EAAY,GAAI,GAAS,EACrD,CACF,EAAU,YAAc,YAGxB,MAAM,EAAc,GAAM,CAAE,GAAG,KAA6D,CAC1F,GAAM,CAAE,QAAO,aAAY,oBAAmB,iBAAkB,GAAc,CAE9E,OACE,EAACA,EAAc,KAAA,CACb,YAAU,eACV,GAAI,EACJ,mBAAmB,EAAiC,GAAG,EAAkB,GAAG,IAAjD,GAAG,IAC9B,eAAc,CAAC,CAAC,EAChB,GAAI,GACJ,EAEJ,CACF,EAAY,YAAc,cAG1B,SAAS,EAAgB,CAAE,YAAW,GAAG,GAAoC,CAC3E,GAAM,CAAE,qBAAsB,GAAc,CAE5C,OACE,EAAC,EAAA,CACC,GAAI,EACJ,UAAW,EACT,+DACA,6DACA,+DACA,oEACA,EACD,CACD,GAAI,GACJ,CAKN,SAAS,EAAY,CAAE,YAAW,WAAU,GAAG,GAAoC,CACjF,GAAM,CAAE,QAAO,iBAAkB,GAAc,CAE/C,OACE,EAAC,OAAA,CAAK,YAAU,eAAe,GAAI,EAAe,UAAW,EAAG,sBAAuB,EAAU,CAAE,GAAI,WACpG,EAAQ,OAAO,GAAO,SAAW,GAAG,CAAG,GACnC"}
@@ -1,2 +1,2 @@
1
- "use client";const e=require(`../chunk-Bmb41Sf3.cjs`);let t=require(`@customafk/react-toolkit/utils`),n=require(`react/jsx-runtime`),r=require(`radix-ui`);function i({...e}){return(0,n.jsx)(r.HoverCard.Root,{"data-slot":`hover-card`,...e})}function a({...e}){return(0,n.jsx)(r.HoverCard.Trigger,{"data-slot":`hover-card-trigger`,...e})}function o({className:e,align:i=`center`,sideOffset:a=4,...o}){return(0,n.jsx)(r.HoverCard.Portal,{"data-slot":`hover-card-portal`,children:(0,n.jsx)(r.HoverCard.Content,{"data-slot":`hover-card-content`,align:i,sideOffset:a,className:(0,t.cn)(`bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden`,e),...o})})}exports.HoverCard=i,exports.HoverCardContent=o,exports.HoverCardTrigger=a;
1
+ "use client";const e=require(`../chunk-Bmb41Sf3.cjs`);let t=require(`react/jsx-runtime`),n=require(`@customafk/react-toolkit/utils`),r=require(`radix-ui`);function i({...e}){return(0,t.jsx)(r.HoverCard.Root,{"data-slot":`hover-card`,...e})}function a({...e}){return(0,t.jsx)(r.HoverCard.Trigger,{"data-slot":`hover-card-trigger`,...e})}function o({className:e,align:i=`center`,sideOffset:a=4,...o}){return(0,t.jsx)(r.HoverCard.Portal,{"data-slot":`hover-card-portal`,children:(0,t.jsx)(r.HoverCard.Content,{"data-slot":`hover-card-content`,align:i,sideOffset:a,className:(0,n.cn)(`bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden`,e),...o})})}exports.HoverCard=i,exports.HoverCardContent=o,exports.HoverCardTrigger=a;
2
2
  //# sourceMappingURL=hover-card.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"hover-card.cjs","names":["HoverCardPrimitive"],"sources":["../../packages/components/ui/hover-card.tsx"],"sourcesContent":["'use client';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { HoverCard as HoverCardPrimitive } from 'radix-ui';\n\nfunction HoverCard({ ...props }: React.ComponentProps<typeof HoverCardPrimitive.Root>) {\n return <HoverCardPrimitive.Root data-slot=\"hover-card\" {...props} />;\n}\n\nfunction HoverCardTrigger({ ...props }: React.ComponentProps<typeof HoverCardPrimitive.Trigger>) {\n return <HoverCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />;\n}\n\nfunction HoverCardContent({ className, align = 'center', sideOffset = 4, ...props }: React.ComponentProps<typeof HoverCardPrimitive.Content>) {\n return (\n <HoverCardPrimitive.Portal data-slot=\"hover-card-portal\">\n <HoverCardPrimitive.Content\n data-slot=\"hover-card-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden',\n className\n )}\n {...props}\n />\n </HoverCardPrimitive.Portal>\n );\n}\n\nexport { HoverCard, HoverCardContent, HoverCardTrigger };\n"],"mappings":"2JAKA,SAAS,EAAU,CAAE,GAAG,GAA+D,CACrF,OAAO,EAAA,EAAA,KAACA,EAAAA,UAAmB,KAAA,CAAK,YAAU,aAAa,GAAI,GAAS,CAGtE,SAAS,EAAiB,CAAE,GAAG,GAAkE,CAC/F,OAAO,EAAA,EAAA,KAACA,EAAAA,UAAmB,QAAA,CAAQ,YAAU,qBAAqB,GAAI,GAAS,CAGjF,SAAS,EAAiB,CAAE,YAAW,QAAQ,SAAU,aAAa,EAAG,GAAG,GAAkE,CAC5I,OACE,EAAA,EAAA,KAACA,EAAAA,UAAmB,OAAA,CAAO,YAAU,8BACnC,EAAA,EAAA,KAACA,EAAAA,UAAmB,QAAA,CAClB,YAAU,qBACH,QACK,aACZ,WAAA,EAAA,EAAA,IACE,oeACA,EACD,CACD,GAAI,GACJ,EACwB"}
1
+ {"version":3,"file":"hover-card.cjs","names":["HoverCardPrimitive"],"sources":["../../packages/components/ui/hover-card.tsx"],"sourcesContent":["'use client';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { HoverCard as HoverCardPrimitive } from 'radix-ui';\n\n/**\n * Root provider for the HoverCard — shows a floating card when the trigger is hovered.\n *\n * @example\n * ```tsx\n * import { HoverCard, HoverCardTrigger, HoverCardContent } from '@customafk/lunas-ui/ui/hover-card';\n *\n * <HoverCard>\n * <HoverCardTrigger>@username</HoverCardTrigger>\n * <HoverCardContent>\n * <p>Profile details here</p>\n * </HoverCardContent>\n * </HoverCard>\n * ```\n */\nfunction HoverCard({ ...props }: React.ComponentProps<typeof HoverCardPrimitive.Root>) {\n return <HoverCardPrimitive.Root data-slot=\"hover-card\" {...props} />;\n}\n\n/** The element that triggers the HoverCard on pointer enter. */\nfunction HoverCardTrigger({ ...props }: React.ComponentProps<typeof HoverCardPrimitive.Trigger>) {\n return <HoverCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />;\n}\n\n/** The floating card panel displayed when the trigger is hovered. */\nfunction HoverCardContent({ className, align = 'center', sideOffset = 4, ...props }: React.ComponentProps<typeof HoverCardPrimitive.Content>) {\n return (\n <HoverCardPrimitive.Portal data-slot=\"hover-card-portal\">\n <HoverCardPrimitive.Content\n data-slot=\"hover-card-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden',\n className\n )}\n {...props}\n />\n </HoverCardPrimitive.Portal>\n );\n}\n\nexport { HoverCard, HoverCardContent, HoverCardTrigger };\n"],"mappings":"2JAoBA,SAAS,EAAU,CAAE,GAAG,GAA+D,CACrF,OAAO,EAAA,EAAA,KAACA,EAAAA,UAAmB,KAAA,CAAK,YAAU,aAAa,GAAI,GAAS,CAItE,SAAS,EAAiB,CAAE,GAAG,GAAkE,CAC/F,OAAO,EAAA,EAAA,KAACA,EAAAA,UAAmB,QAAA,CAAQ,YAAU,qBAAqB,GAAI,GAAS,CAIjF,SAAS,EAAiB,CAAE,YAAW,QAAQ,SAAU,aAAa,EAAG,GAAG,GAAkE,CAC5I,OACE,EAAA,EAAA,KAACA,EAAAA,UAAmB,OAAA,CAAO,YAAU,8BACnC,EAAA,EAAA,KAACA,EAAAA,UAAmB,QAAA,CAClB,YAAU,qBACH,QACK,aACZ,WAAA,EAAA,EAAA,IACE,oeACA,EACD,CACD,GAAI,GACJ,EACwB"}
@@ -1,19 +1,37 @@
1
- import * as react_jsx_runtime130 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime131 from "react/jsx-runtime";
2
2
  import { HoverCard as HoverCard$1 } from "radix-ui";
3
3
 
4
4
  //#region packages/components/ui/hover-card.d.ts
5
+
6
+ /**
7
+ * Root provider for the HoverCard — shows a floating card when the trigger is hovered.
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * import { HoverCard, HoverCardTrigger, HoverCardContent } from '@customafk/lunas-ui/ui/hover-card';
12
+ *
13
+ * <HoverCard>
14
+ * <HoverCardTrigger>@username</HoverCardTrigger>
15
+ * <HoverCardContent>
16
+ * <p>Profile details here</p>
17
+ * </HoverCardContent>
18
+ * </HoverCard>
19
+ * ```
20
+ */
5
21
  declare function HoverCard({
6
22
  ...props
7
- }: React.ComponentProps<typeof HoverCard$1.Root>): react_jsx_runtime130.JSX.Element;
23
+ }: React.ComponentProps<typeof HoverCard$1.Root>): react_jsx_runtime131.JSX.Element;
24
+ /** The element that triggers the HoverCard on pointer enter. */
8
25
  declare function HoverCardTrigger({
9
26
  ...props
10
- }: React.ComponentProps<typeof HoverCard$1.Trigger>): react_jsx_runtime130.JSX.Element;
27
+ }: React.ComponentProps<typeof HoverCard$1.Trigger>): react_jsx_runtime131.JSX.Element;
28
+ /** The floating card panel displayed when the trigger is hovered. */
11
29
  declare function HoverCardContent({
12
30
  className,
13
31
  align,
14
32
  sideOffset,
15
33
  ...props
16
- }: React.ComponentProps<typeof HoverCard$1.Content>): react_jsx_runtime130.JSX.Element;
34
+ }: React.ComponentProps<typeof HoverCard$1.Content>): react_jsx_runtime131.JSX.Element;
17
35
  //#endregion
18
36
  export { HoverCard, HoverCardContent, HoverCardTrigger };
19
37
  //# sourceMappingURL=hover-card.d.cts.map
@@ -1,19 +1,37 @@
1
- import * as react_jsx_runtime119 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime264 from "react/jsx-runtime";
2
2
  import { HoverCard as HoverCard$1 } from "radix-ui";
3
3
 
4
4
  //#region packages/components/ui/hover-card.d.ts
5
+
6
+ /**
7
+ * Root provider for the HoverCard — shows a floating card when the trigger is hovered.
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * import { HoverCard, HoverCardTrigger, HoverCardContent } from '@customafk/lunas-ui/ui/hover-card';
12
+ *
13
+ * <HoverCard>
14
+ * <HoverCardTrigger>@username</HoverCardTrigger>
15
+ * <HoverCardContent>
16
+ * <p>Profile details here</p>
17
+ * </HoverCardContent>
18
+ * </HoverCard>
19
+ * ```
20
+ */
5
21
  declare function HoverCard({
6
22
  ...props
7
- }: React.ComponentProps<typeof HoverCard$1.Root>): react_jsx_runtime119.JSX.Element;
23
+ }: React.ComponentProps<typeof HoverCard$1.Root>): react_jsx_runtime264.JSX.Element;
24
+ /** The element that triggers the HoverCard on pointer enter. */
8
25
  declare function HoverCardTrigger({
9
26
  ...props
10
- }: React.ComponentProps<typeof HoverCard$1.Trigger>): react_jsx_runtime119.JSX.Element;
27
+ }: React.ComponentProps<typeof HoverCard$1.Trigger>): react_jsx_runtime264.JSX.Element;
28
+ /** The floating card panel displayed when the trigger is hovered. */
11
29
  declare function HoverCardContent({
12
30
  className,
13
31
  align,
14
32
  sideOffset,
15
33
  ...props
16
- }: React.ComponentProps<typeof HoverCard$1.Content>): react_jsx_runtime119.JSX.Element;
34
+ }: React.ComponentProps<typeof HoverCard$1.Content>): react_jsx_runtime264.JSX.Element;
17
35
  //#endregion
18
36
  export { HoverCard, HoverCardContent, HoverCardTrigger };
19
37
  //# sourceMappingURL=hover-card.d.mts.map
@@ -1,2 +1,2 @@
1
- "use client";import{cn as e}from"@customafk/react-toolkit/utils";import{jsx as t}from"react/jsx-runtime";import{HoverCard as n}from"radix-ui";function r({...e}){return t(n.Root,{"data-slot":`hover-card`,...e})}function i({...e}){return t(n.Trigger,{"data-slot":`hover-card-trigger`,...e})}function a({className:r,align:i=`center`,sideOffset:a=4,...o}){return t(n.Portal,{"data-slot":`hover-card-portal`,children:t(n.Content,{"data-slot":`hover-card-content`,align:i,sideOffset:a,className:e(`bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden`,r),...o})})}export{r as HoverCard,a as HoverCardContent,i as HoverCardTrigger};
1
+ "use client";import{jsx as e}from"react/jsx-runtime";import{cn as t}from"@customafk/react-toolkit/utils";import{HoverCard as n}from"radix-ui";function r({...t}){return e(n.Root,{"data-slot":`hover-card`,...t})}function i({...t}){return e(n.Trigger,{"data-slot":`hover-card-trigger`,...t})}function a({className:r,align:i=`center`,sideOffset:a=4,...o}){return e(n.Portal,{"data-slot":`hover-card-portal`,children:e(n.Content,{"data-slot":`hover-card-content`,align:i,sideOffset:a,className:t(`bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden`,r),...o})})}export{r as HoverCard,a as HoverCardContent,i as HoverCardTrigger};
2
2
  //# sourceMappingURL=hover-card.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"hover-card.mjs","names":["HoverCardPrimitive"],"sources":["../../packages/components/ui/hover-card.tsx"],"sourcesContent":["'use client';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { HoverCard as HoverCardPrimitive } from 'radix-ui';\n\nfunction HoverCard({ ...props }: React.ComponentProps<typeof HoverCardPrimitive.Root>) {\n return <HoverCardPrimitive.Root data-slot=\"hover-card\" {...props} />;\n}\n\nfunction HoverCardTrigger({ ...props }: React.ComponentProps<typeof HoverCardPrimitive.Trigger>) {\n return <HoverCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />;\n}\n\nfunction HoverCardContent({ className, align = 'center', sideOffset = 4, ...props }: React.ComponentProps<typeof HoverCardPrimitive.Content>) {\n return (\n <HoverCardPrimitive.Portal data-slot=\"hover-card-portal\">\n <HoverCardPrimitive.Content\n data-slot=\"hover-card-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden',\n className\n )}\n {...props}\n />\n </HoverCardPrimitive.Portal>\n );\n}\n\nexport { HoverCard, HoverCardContent, HoverCardTrigger };\n"],"mappings":"8IAKA,SAAS,EAAU,CAAE,GAAG,GAA+D,CACrF,OAAO,EAACA,EAAmB,KAAA,CAAK,YAAU,aAAa,GAAI,GAAS,CAGtE,SAAS,EAAiB,CAAE,GAAG,GAAkE,CAC/F,OAAO,EAACA,EAAmB,QAAA,CAAQ,YAAU,qBAAqB,GAAI,GAAS,CAGjF,SAAS,EAAiB,CAAE,YAAW,QAAQ,SAAU,aAAa,EAAG,GAAG,GAAkE,CAC5I,OACE,EAACA,EAAmB,OAAA,CAAO,YAAU,6BACnC,EAACA,EAAmB,QAAA,CAClB,YAAU,qBACH,QACK,aACZ,UAAW,EACT,oeACA,EACD,CACD,GAAI,GACJ,EACwB"}
1
+ {"version":3,"file":"hover-card.mjs","names":["HoverCardPrimitive"],"sources":["../../packages/components/ui/hover-card.tsx"],"sourcesContent":["'use client';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { HoverCard as HoverCardPrimitive } from 'radix-ui';\n\n/**\n * Root provider for the HoverCard — shows a floating card when the trigger is hovered.\n *\n * @example\n * ```tsx\n * import { HoverCard, HoverCardTrigger, HoverCardContent } from '@customafk/lunas-ui/ui/hover-card';\n *\n * <HoverCard>\n * <HoverCardTrigger>@username</HoverCardTrigger>\n * <HoverCardContent>\n * <p>Profile details here</p>\n * </HoverCardContent>\n * </HoverCard>\n * ```\n */\nfunction HoverCard({ ...props }: React.ComponentProps<typeof HoverCardPrimitive.Root>) {\n return <HoverCardPrimitive.Root data-slot=\"hover-card\" {...props} />;\n}\n\n/** The element that triggers the HoverCard on pointer enter. */\nfunction HoverCardTrigger({ ...props }: React.ComponentProps<typeof HoverCardPrimitive.Trigger>) {\n return <HoverCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />;\n}\n\n/** The floating card panel displayed when the trigger is hovered. */\nfunction HoverCardContent({ className, align = 'center', sideOffset = 4, ...props }: React.ComponentProps<typeof HoverCardPrimitive.Content>) {\n return (\n <HoverCardPrimitive.Portal data-slot=\"hover-card-portal\">\n <HoverCardPrimitive.Content\n data-slot=\"hover-card-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden',\n className\n )}\n {...props}\n />\n </HoverCardPrimitive.Portal>\n );\n}\n\nexport { HoverCard, HoverCardContent, HoverCardTrigger };\n"],"mappings":"8IAoBA,SAAS,EAAU,CAAE,GAAG,GAA+D,CACrF,OAAO,EAACA,EAAmB,KAAA,CAAK,YAAU,aAAa,GAAI,GAAS,CAItE,SAAS,EAAiB,CAAE,GAAG,GAAkE,CAC/F,OAAO,EAACA,EAAmB,QAAA,CAAQ,YAAU,qBAAqB,GAAI,GAAS,CAIjF,SAAS,EAAiB,CAAE,YAAW,QAAQ,SAAU,aAAa,EAAG,GAAG,GAAkE,CAC5I,OACE,EAACA,EAAmB,OAAA,CAAO,YAAU,6BACnC,EAACA,EAAmB,QAAA,CAClB,YAAU,qBACH,QACK,aACZ,UAAW,EACT,oeACA,EACD,CACD,GAAI,GACJ,EACwB"}
package/dist/ui/image.cjs CHANGED
@@ -1 +1 @@
1
- require(`../skeleton-CHympz8k.cjs`);const e=require(`../image-DuFv8sPr.cjs`);exports.Image=e.t;
1
+ require(`../skeleton-BfMCjXYM.cjs`);const e=require(`../image-B1Dm5LWk.cjs`);exports.Image=e.t;
@@ -1,15 +1,35 @@
1
1
  //#region packages/components/ui/image.d.ts
2
+ /** Props for the Image component. */
2
3
  type Props = {
4
+ /** URL of the image to display. */
3
5
  src?: string;
6
+ /** Accessible alt text for the image. */
4
7
  alt?: string;
8
+ /** Width of the image container (number treated as pixels). */
5
9
  width?: number | string;
10
+ /** Height of the image container (number treated as pixels). */
6
11
  height?: number | string;
12
+ /** Maximum number of retry attempts on load failure before showing an error state. @default 3 */
7
13
  maxRetries?: number;
14
+ /** Base delay in milliseconds between retry attempts (multiplied by the attempt count). @default 500 */
8
15
  retryDelay?: number;
16
+ /** Class name applied to the outer container div. */
9
17
  className?: string;
18
+ /** Class name applied to the `<img>` element. */
10
19
  imageClassName?: string;
20
+ /** Click handler for the image container. */
11
21
  onClick?: () => void;
12
22
  };
23
+ /**
24
+ * A lazy-loading image with an automatic retry mechanism, a blurred background placeholder, a skeleton loader, and an error fallback.
25
+ *
26
+ * @example
27
+ * ```tsx
28
+ * import { Image } from '@customafk/lunas-ui/ui/image';
29
+ *
30
+ * <Image src="/hero.jpg" alt="Hero" width={400} height={300} maxRetries={3} />
31
+ * ```
32
+ */
13
33
  declare const Image: React.FC<Props>;
14
34
  //#endregion
15
35
  export { Image };
@@ -1,15 +1,35 @@
1
1
  //#region packages/components/ui/image.d.ts
2
+ /** Props for the Image component. */
2
3
  type Props = {
4
+ /** URL of the image to display. */
3
5
  src?: string;
6
+ /** Accessible alt text for the image. */
4
7
  alt?: string;
8
+ /** Width of the image container (number treated as pixels). */
5
9
  width?: number | string;
10
+ /** Height of the image container (number treated as pixels). */
6
11
  height?: number | string;
12
+ /** Maximum number of retry attempts on load failure before showing an error state. @default 3 */
7
13
  maxRetries?: number;
14
+ /** Base delay in milliseconds between retry attempts (multiplied by the attempt count). @default 500 */
8
15
  retryDelay?: number;
16
+ /** Class name applied to the outer container div. */
9
17
  className?: string;
18
+ /** Class name applied to the `<img>` element. */
10
19
  imageClassName?: string;
20
+ /** Click handler for the image container. */
11
21
  onClick?: () => void;
12
22
  };
23
+ /**
24
+ * A lazy-loading image with an automatic retry mechanism, a blurred background placeholder, a skeleton loader, and an error fallback.
25
+ *
26
+ * @example
27
+ * ```tsx
28
+ * import { Image } from '@customafk/lunas-ui/ui/image';
29
+ *
30
+ * <Image src="/hero.jpg" alt="Hero" width={400} height={300} maxRetries={3} />
31
+ * ```
32
+ */
13
33
  declare const Image: React.FC<Props>;
14
34
  //#endregion
15
35
  export { Image };
package/dist/ui/image.mjs CHANGED
@@ -1 +1 @@
1
- import"../skeleton-Ba6koCVf.mjs";import{t as e}from"../image-CS_Q0WA7.mjs";export{e as Image};
1
+ import"../skeleton-BPxcW2yu.mjs";import{t as e}from"../image-BlzrSaoE.mjs";export{e as Image};
@@ -1,2 +1,2 @@
1
- "use client";const e=require(`../chunk-Bmb41Sf3.cjs`);let t=require(`@customafk/react-toolkit/utils`),n=require(`react`),r=require(`react/jsx-runtime`),i=require(`lucide-react`),a=require(`input-otp`);function o({className:e,containerClassName:n,...i}){return(0,r.jsx)(a.OTPInput,{"data-slot":`input-otp`,containerClassName:(0,t.cn)(`flex items-center gap-2 has-disabled:opacity-50`,n),className:(0,t.cn)(`disabled:cursor-not-allowed`,e),...i})}function s({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`input-otp-group`,className:(0,t.cn)(`flex items-center`,e),...n})}function c({index:e,className:i,...o}){let{char:s,hasFakeCaret:c,isActive:l}=(0,n.use)(a.OTPInputContext)?.slots[e]??{};return(0,r.jsxs)(`div`,{"data-slot":`input-otp-slot`,"data-active":l,className:(0,t.cn)(`data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:ring-destructive/20 dark:data-[active=true]:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[active=true]:aria-invalid:border-destructive dark:bg-input/30 border-input relative flex h-9 w-9 items-center justify-center border-y border-r text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md data-[active=true]:z-10 data-[active=true]:ring-[3px]`,i),...o,children:[s,c&&(0,r.jsx)(`div`,{className:`pointer-events-none absolute inset-0 flex items-center justify-center`,children:(0,r.jsx)(`div`,{className:`animate-caret-blink bg-foreground h-4 w-px duration-1000`})})]})}function l({...e}){return(0,r.jsx)(`div`,{"data-slot":`input-otp-separator`,role:`separator`,...e,children:(0,r.jsx)(i.MinusIcon,{})})}exports.InputOTP=o,exports.InputOTPGroup=s,exports.InputOTPSeparator=l,exports.InputOTPSlot=c;
1
+ "use client";const e=require(`../chunk-Bmb41Sf3.cjs`);let t=require(`lucide-react`),n=require(`react`),r=require(`react/jsx-runtime`),i=require(`@customafk/react-toolkit/utils`),a=require(`input-otp`);function o({className:e,containerClassName:t,...n}){return(0,r.jsx)(a.OTPInput,{"data-slot":`input-otp`,containerClassName:(0,i.cn)(`flex items-center gap-2 has-disabled:opacity-50`,t),className:(0,i.cn)(`disabled:cursor-not-allowed`,e),...n})}function s({className:e,...t}){return(0,r.jsx)(`div`,{"data-slot":`input-otp-group`,className:(0,i.cn)(`flex items-center`,e),...t})}function c({index:e,className:t,...o}){let{char:s,hasFakeCaret:c,isActive:l}=(0,n.use)(a.OTPInputContext)?.slots[e]??{};return(0,r.jsxs)(`div`,{"data-slot":`input-otp-slot`,"data-active":l,className:(0,i.cn)(`data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:ring-destructive/20 dark:data-[active=true]:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[active=true]:aria-invalid:border-destructive dark:bg-input/30 border-input relative flex h-9 w-9 items-center justify-center border-y border-r text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md data-[active=true]:z-10 data-[active=true]:ring-[3px]`,t),...o,children:[s,c&&(0,r.jsx)(`div`,{className:`pointer-events-none absolute inset-0 flex items-center justify-center`,children:(0,r.jsx)(`div`,{className:`animate-caret-blink bg-foreground h-4 w-px duration-1000`})})]})}function l({...e}){return(0,r.jsx)(`div`,{"data-slot":`input-otp-separator`,role:`separator`,...e,children:(0,r.jsx)(t.MinusIcon,{})})}exports.InputOTP=o,exports.InputOTPGroup=s,exports.InputOTPSeparator=l,exports.InputOTPSlot=c;
2
2
  //# sourceMappingURL=input-otp.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"input-otp.cjs","names":["OTPInput","OTPInputContext","MinusIcon"],"sources":["../../packages/components/ui/input-otp.tsx"],"sourcesContent":["'use client';\nimport { use } from 'react';\n\nimport { MinusIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { OTPInput, OTPInputContext } from 'input-otp';\n\nfunction InputOTP({\n className,\n containerClassName,\n ...props\n}: React.ComponentProps<typeof OTPInput> & {\n containerClassName?: string;\n}) {\n return (\n <OTPInput\n data-slot=\"input-otp\"\n containerClassName={cn('flex items-center gap-2 has-disabled:opacity-50', containerClassName)}\n className={cn('disabled:cursor-not-allowed', className)}\n {...props}\n />\n );\n}\n\nfunction InputOTPGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"input-otp-group\" className={cn('flex items-center', className)} {...props} />;\n}\n\nfunction InputOTPSlot({\n index,\n className,\n ...props\n}: React.ComponentProps<'div'> & {\n index: number;\n}) {\n const inputOTPContext = use(OTPInputContext);\n const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};\n\n return (\n <div\n data-slot=\"input-otp-slot\"\n data-active={isActive}\n className={cn(\n 'data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:ring-destructive/20 dark:data-[active=true]:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[active=true]:aria-invalid:border-destructive dark:bg-input/30 border-input relative flex h-9 w-9 items-center justify-center border-y border-r text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md data-[active=true]:z-10 data-[active=true]:ring-[3px]',\n className\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"animate-caret-blink bg-foreground h-4 w-px duration-1000\" />\n </div>\n )}\n </div>\n );\n}\n\nfunction InputOTPSeparator({ ...props }: React.ComponentProps<'div'>) {\n return (\n <div data-slot=\"input-otp-separator\" role=\"separator\" {...props}>\n <MinusIcon />\n </div>\n );\n}\n\nexport { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot };\n"],"mappings":"yMASA,SAAS,EAAS,CAChB,YACA,qBACA,GAAG,GAGF,CACD,OACE,EAAA,EAAA,KAACA,EAAAA,SAAAA,CACC,YAAU,YACV,oBAAA,EAAA,EAAA,IAAuB,kDAAmD,EAAmB,CAC7F,WAAA,EAAA,EAAA,IAAc,8BAA+B,EAAU,CACvD,GAAI,GACJ,CAIN,SAAS,EAAc,CAAE,YAAW,GAAG,GAAsC,CAC3E,OAAO,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,kBAAkB,WAAA,EAAA,EAAA,IAAc,oBAAqB,EAAU,CAAE,GAAI,GAAS,CAGtG,SAAS,EAAa,CACpB,QACA,YACA,GAAG,GAGF,CAED,GAAM,CAAE,OAAM,eAAc,aAAA,EAAA,EAAA,KADAC,EAAAA,gBAAgB,EACc,MAAM,IAAU,EAAE,CAE5E,OACE,EAAA,EAAA,MAAC,MAAA,CACC,YAAU,iBACV,cAAa,EACb,WAAA,EAAA,EAAA,IACE,2fACA,EACD,CACD,GAAI,YAEH,EACA,IACC,EAAA,EAAA,KAAC,MAAA,CAAI,UAAU,kFACb,EAAA,EAAA,KAAC,MAAA,CAAI,UAAU,2DAAA,CAA6D,EACxE,CAAA,EAEJ,CAIV,SAAS,EAAkB,CAAE,GAAG,GAAsC,CACpE,OACE,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,sBAAsB,KAAK,YAAY,GAAI,YACxD,EAAA,EAAA,KAACC,EAAAA,UAAAA,EAAAA,CAAY,EACT"}
1
+ {"version":3,"file":"input-otp.cjs","names":["OTPInput","OTPInputContext","MinusIcon"],"sources":["../../packages/components/ui/input-otp.tsx"],"sourcesContent":["'use client';\nimport { use } from 'react';\n\nimport { MinusIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { OTPInput, OTPInputContext } from 'input-otp';\n\n/**\n * One-time password (OTP) input composed of individual character slots.\n *\n * @example\n * ```tsx\n * import { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator } from '@customafk/lunas-ui/ui/input-otp';\n *\n * <InputOTP maxLength={6}>\n * <InputOTPGroup>\n * <InputOTPSlot index={0} />\n * <InputOTPSlot index={1} />\n * <InputOTPSlot index={2} />\n * </InputOTPGroup>\n * <InputOTPSeparator />\n * <InputOTPGroup>\n * <InputOTPSlot index={3} />\n * <InputOTPSlot index={4} />\n * <InputOTPSlot index={5} />\n * </InputOTPGroup>\n * </InputOTP>\n * ```\n */\nfunction InputOTP({\n className,\n containerClassName,\n ...props\n}: React.ComponentProps<typeof OTPInput> & {\n /** Class name applied to the outer container div. */\n containerClassName?: string;\n}) {\n return (\n <OTPInput\n data-slot=\"input-otp\"\n containerClassName={cn('flex items-center gap-2 has-disabled:opacity-50', containerClassName)}\n className={cn('disabled:cursor-not-allowed', className)}\n {...props}\n />\n );\n}\n\n/** Flex container that groups a sequence of InputOTPSlot elements. */\nfunction InputOTPGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"input-otp-group\" className={cn('flex items-center', className)} {...props} />;\n}\n\n/**\n * A single character slot in an InputOTP — displays the typed character and a blinking caret when focused.\n *\n * @param index - Zero-based position of this slot within the OTP sequence.\n */\nfunction InputOTPSlot({\n index,\n className,\n ...props\n}: React.ComponentProps<'div'> & {\n index: number;\n}) {\n const inputOTPContext = use(OTPInputContext);\n const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};\n\n return (\n <div\n data-slot=\"input-otp-slot\"\n data-active={isActive}\n className={cn(\n 'data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:ring-destructive/20 dark:data-[active=true]:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[active=true]:aria-invalid:border-destructive dark:bg-input/30 border-input relative flex h-9 w-9 items-center justify-center border-y border-r text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md data-[active=true]:z-10 data-[active=true]:ring-[3px]',\n className\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"animate-caret-blink bg-foreground h-4 w-px duration-1000\" />\n </div>\n )}\n </div>\n );\n}\n\n/** Visual separator (dash) placed between InputOTPGroup elements. */\nfunction InputOTPSeparator({ ...props }: React.ComponentProps<'div'>) {\n return (\n <div data-slot=\"input-otp-separator\" role=\"separator\" {...props}>\n <MinusIcon />\n </div>\n );\n}\n\nexport { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot };\n"],"mappings":"yMA+BA,SAAS,EAAS,CAChB,YACA,qBACA,GAAG,GAIF,CACD,OACE,EAAA,EAAA,KAACA,EAAAA,SAAAA,CACC,YAAU,YACV,oBAAA,EAAA,EAAA,IAAuB,kDAAmD,EAAmB,CAC7F,WAAA,EAAA,EAAA,IAAc,8BAA+B,EAAU,CACvD,GAAI,GACJ,CAKN,SAAS,EAAc,CAAE,YAAW,GAAG,GAAsC,CAC3E,OAAO,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,kBAAkB,WAAA,EAAA,EAAA,IAAc,oBAAqB,EAAU,CAAE,GAAI,GAAS,CAQtG,SAAS,EAAa,CACpB,QACA,YACA,GAAG,GAGF,CAED,GAAM,CAAE,OAAM,eAAc,aAAA,EAAA,EAAA,KADAC,EAAAA,gBAAgB,EACc,MAAM,IAAU,EAAE,CAE5E,OACE,EAAA,EAAA,MAAC,MAAA,CACC,YAAU,iBACV,cAAa,EACb,WAAA,EAAA,EAAA,IACE,2fACA,EACD,CACD,GAAI,YAEH,EACA,IACC,EAAA,EAAA,KAAC,MAAA,CAAI,UAAU,kFACb,EAAA,EAAA,KAAC,MAAA,CAAI,UAAU,2DAAA,CAA6D,EACxE,CAAA,EAEJ,CAKV,SAAS,EAAkB,CAAE,GAAG,GAAsC,CACpE,OACE,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,sBAAsB,KAAK,YAAY,GAAI,YACxD,EAAA,EAAA,KAACC,EAAAA,UAAAA,EAAAA,CAAY,EACT"}
@@ -1,28 +1,59 @@
1
- import * as react_jsx_runtime177 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime164 from "react/jsx-runtime";
2
2
  import { OTPInput } from "input-otp";
3
3
 
4
4
  //#region packages/components/ui/input-otp.d.ts
5
+
6
+ /**
7
+ * One-time password (OTP) input composed of individual character slots.
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * import { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator } from '@customafk/lunas-ui/ui/input-otp';
12
+ *
13
+ * <InputOTP maxLength={6}>
14
+ * <InputOTPGroup>
15
+ * <InputOTPSlot index={0} />
16
+ * <InputOTPSlot index={1} />
17
+ * <InputOTPSlot index={2} />
18
+ * </InputOTPGroup>
19
+ * <InputOTPSeparator />
20
+ * <InputOTPGroup>
21
+ * <InputOTPSlot index={3} />
22
+ * <InputOTPSlot index={4} />
23
+ * <InputOTPSlot index={5} />
24
+ * </InputOTPGroup>
25
+ * </InputOTP>
26
+ * ```
27
+ */
5
28
  declare function InputOTP({
6
29
  className,
7
30
  containerClassName,
8
31
  ...props
9
32
  }: React.ComponentProps<typeof OTPInput> & {
33
+ /** Class name applied to the outer container div. */
10
34
  containerClassName?: string;
11
- }): react_jsx_runtime177.JSX.Element;
35
+ }): react_jsx_runtime164.JSX.Element;
36
+ /** Flex container that groups a sequence of InputOTPSlot elements. */
12
37
  declare function InputOTPGroup({
13
38
  className,
14
39
  ...props
15
- }: React.ComponentProps<'div'>): react_jsx_runtime177.JSX.Element;
40
+ }: React.ComponentProps<'div'>): react_jsx_runtime164.JSX.Element;
41
+ /**
42
+ * A single character slot in an InputOTP — displays the typed character and a blinking caret when focused.
43
+ *
44
+ * @param index - Zero-based position of this slot within the OTP sequence.
45
+ */
16
46
  declare function InputOTPSlot({
17
47
  index,
18
48
  className,
19
49
  ...props
20
50
  }: React.ComponentProps<'div'> & {
21
51
  index: number;
22
- }): react_jsx_runtime177.JSX.Element;
52
+ }): react_jsx_runtime164.JSX.Element;
53
+ /** Visual separator (dash) placed between InputOTPGroup elements. */
23
54
  declare function InputOTPSeparator({
24
55
  ...props
25
- }: React.ComponentProps<'div'>): react_jsx_runtime177.JSX.Element;
56
+ }: React.ComponentProps<'div'>): react_jsx_runtime164.JSX.Element;
26
57
  //#endregion
27
58
  export { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot };
28
59
  //# sourceMappingURL=input-otp.d.cts.map
@@ -1,28 +1,59 @@
1
- import * as react_jsx_runtime52 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime39 from "react/jsx-runtime";
2
2
  import { OTPInput } from "input-otp";
3
3
 
4
4
  //#region packages/components/ui/input-otp.d.ts
5
+
6
+ /**
7
+ * One-time password (OTP) input composed of individual character slots.
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * import { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator } from '@customafk/lunas-ui/ui/input-otp';
12
+ *
13
+ * <InputOTP maxLength={6}>
14
+ * <InputOTPGroup>
15
+ * <InputOTPSlot index={0} />
16
+ * <InputOTPSlot index={1} />
17
+ * <InputOTPSlot index={2} />
18
+ * </InputOTPGroup>
19
+ * <InputOTPSeparator />
20
+ * <InputOTPGroup>
21
+ * <InputOTPSlot index={3} />
22
+ * <InputOTPSlot index={4} />
23
+ * <InputOTPSlot index={5} />
24
+ * </InputOTPGroup>
25
+ * </InputOTP>
26
+ * ```
27
+ */
5
28
  declare function InputOTP({
6
29
  className,
7
30
  containerClassName,
8
31
  ...props
9
32
  }: React.ComponentProps<typeof OTPInput> & {
33
+ /** Class name applied to the outer container div. */
10
34
  containerClassName?: string;
11
- }): react_jsx_runtime52.JSX.Element;
35
+ }): react_jsx_runtime39.JSX.Element;
36
+ /** Flex container that groups a sequence of InputOTPSlot elements. */
12
37
  declare function InputOTPGroup({
13
38
  className,
14
39
  ...props
15
- }: React.ComponentProps<'div'>): react_jsx_runtime52.JSX.Element;
40
+ }: React.ComponentProps<'div'>): react_jsx_runtime39.JSX.Element;
41
+ /**
42
+ * A single character slot in an InputOTP — displays the typed character and a blinking caret when focused.
43
+ *
44
+ * @param index - Zero-based position of this slot within the OTP sequence.
45
+ */
16
46
  declare function InputOTPSlot({
17
47
  index,
18
48
  className,
19
49
  ...props
20
50
  }: React.ComponentProps<'div'> & {
21
51
  index: number;
22
- }): react_jsx_runtime52.JSX.Element;
52
+ }): react_jsx_runtime39.JSX.Element;
53
+ /** Visual separator (dash) placed between InputOTPGroup elements. */
23
54
  declare function InputOTPSeparator({
24
55
  ...props
25
- }: React.ComponentProps<'div'>): react_jsx_runtime52.JSX.Element;
56
+ }: React.ComponentProps<'div'>): react_jsx_runtime39.JSX.Element;
26
57
  //#endregion
27
58
  export { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot };
28
59
  //# sourceMappingURL=input-otp.d.mts.map
@@ -1,2 +1,2 @@
1
- "use client";import{cn as e}from"@customafk/react-toolkit/utils";import{use as t}from"react";import{jsx as n,jsxs as r}from"react/jsx-runtime";import{MinusIcon as i}from"lucide-react";import{OTPInput as a,OTPInputContext as o}from"input-otp";function s({className:t,containerClassName:r,...i}){return n(a,{"data-slot":`input-otp`,containerClassName:e(`flex items-center gap-2 has-disabled:opacity-50`,r),className:e(`disabled:cursor-not-allowed`,t),...i})}function c({className:t,...r}){return n(`div`,{"data-slot":`input-otp-group`,className:e(`flex items-center`,t),...r})}function l({index:i,className:a,...s}){let{char:c,hasFakeCaret:l,isActive:u}=t(o)?.slots[i]??{};return r(`div`,{"data-slot":`input-otp-slot`,"data-active":u,className:e(`data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:ring-destructive/20 dark:data-[active=true]:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[active=true]:aria-invalid:border-destructive dark:bg-input/30 border-input relative flex h-9 w-9 items-center justify-center border-y border-r text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md data-[active=true]:z-10 data-[active=true]:ring-[3px]`,a),...s,children:[c,l&&n(`div`,{className:`pointer-events-none absolute inset-0 flex items-center justify-center`,children:n(`div`,{className:`animate-caret-blink bg-foreground h-4 w-px duration-1000`})})]})}function u({...e}){return n(`div`,{"data-slot":`input-otp-separator`,role:`separator`,...e,children:n(i,{})})}export{s as InputOTP,c as InputOTPGroup,u as InputOTPSeparator,l as InputOTPSlot};
1
+ "use client";import{MinusIcon as e}from"lucide-react";import{use as t}from"react";import{jsx as n,jsxs as r}from"react/jsx-runtime";import{cn as i}from"@customafk/react-toolkit/utils";import{OTPInput as a,OTPInputContext as o}from"input-otp";function s({className:e,containerClassName:t,...r}){return n(a,{"data-slot":`input-otp`,containerClassName:i(`flex items-center gap-2 has-disabled:opacity-50`,t),className:i(`disabled:cursor-not-allowed`,e),...r})}function c({className:e,...t}){return n(`div`,{"data-slot":`input-otp-group`,className:i(`flex items-center`,e),...t})}function l({index:e,className:a,...s}){let{char:c,hasFakeCaret:l,isActive:u}=t(o)?.slots[e]??{};return r(`div`,{"data-slot":`input-otp-slot`,"data-active":u,className:i(`data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:ring-destructive/20 dark:data-[active=true]:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[active=true]:aria-invalid:border-destructive dark:bg-input/30 border-input relative flex h-9 w-9 items-center justify-center border-y border-r text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md data-[active=true]:z-10 data-[active=true]:ring-[3px]`,a),...s,children:[c,l&&n(`div`,{className:`pointer-events-none absolute inset-0 flex items-center justify-center`,children:n(`div`,{className:`animate-caret-blink bg-foreground h-4 w-px duration-1000`})})]})}function u({...t}){return n(`div`,{"data-slot":`input-otp-separator`,role:`separator`,...t,children:n(e,{})})}export{s as InputOTP,c as InputOTPGroup,u as InputOTPSeparator,l as InputOTPSlot};
2
2
  //# sourceMappingURL=input-otp.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"input-otp.mjs","names":[],"sources":["../../packages/components/ui/input-otp.tsx"],"sourcesContent":["'use client';\nimport { use } from 'react';\n\nimport { MinusIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { OTPInput, OTPInputContext } from 'input-otp';\n\nfunction InputOTP({\n className,\n containerClassName,\n ...props\n}: React.ComponentProps<typeof OTPInput> & {\n containerClassName?: string;\n}) {\n return (\n <OTPInput\n data-slot=\"input-otp\"\n containerClassName={cn('flex items-center gap-2 has-disabled:opacity-50', containerClassName)}\n className={cn('disabled:cursor-not-allowed', className)}\n {...props}\n />\n );\n}\n\nfunction InputOTPGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"input-otp-group\" className={cn('flex items-center', className)} {...props} />;\n}\n\nfunction InputOTPSlot({\n index,\n className,\n ...props\n}: React.ComponentProps<'div'> & {\n index: number;\n}) {\n const inputOTPContext = use(OTPInputContext);\n const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};\n\n return (\n <div\n data-slot=\"input-otp-slot\"\n data-active={isActive}\n className={cn(\n 'data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:ring-destructive/20 dark:data-[active=true]:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[active=true]:aria-invalid:border-destructive dark:bg-input/30 border-input relative flex h-9 w-9 items-center justify-center border-y border-r text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md data-[active=true]:z-10 data-[active=true]:ring-[3px]',\n className\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"animate-caret-blink bg-foreground h-4 w-px duration-1000\" />\n </div>\n )}\n </div>\n );\n}\n\nfunction InputOTPSeparator({ ...props }: React.ComponentProps<'div'>) {\n return (\n <div data-slot=\"input-otp-separator\" role=\"separator\" {...props}>\n <MinusIcon />\n </div>\n );\n}\n\nexport { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot };\n"],"mappings":"kPASA,SAAS,EAAS,CAChB,YACA,qBACA,GAAG,GAGF,CACD,OACE,EAAC,EAAA,CACC,YAAU,YACV,mBAAoB,EAAG,kDAAmD,EAAmB,CAC7F,UAAW,EAAG,8BAA+B,EAAU,CACvD,GAAI,GACJ,CAIN,SAAS,EAAc,CAAE,YAAW,GAAG,GAAsC,CAC3E,OAAO,EAAC,MAAA,CAAI,YAAU,kBAAkB,UAAW,EAAG,oBAAqB,EAAU,CAAE,GAAI,GAAS,CAGtG,SAAS,EAAa,CACpB,QACA,YACA,GAAG,GAGF,CAED,GAAM,CAAE,OAAM,eAAc,YADJ,EAAI,EAAgB,EACc,MAAM,IAAU,EAAE,CAE5E,OACE,EAAC,MAAA,CACC,YAAU,iBACV,cAAa,EACb,UAAW,EACT,2fACA,EACD,CACD,GAAI,YAEH,EACA,GACC,EAAC,MAAA,CAAI,UAAU,iFACb,EAAC,MAAA,CAAI,UAAU,2DAAA,CAA6D,EACxE,CAAA,EAEJ,CAIV,SAAS,EAAkB,CAAE,GAAG,GAAsC,CACpE,OACE,EAAC,MAAA,CAAI,YAAU,sBAAsB,KAAK,YAAY,GAAI,WACxD,EAAC,EAAA,EAAA,CAAY,EACT"}
1
+ {"version":3,"file":"input-otp.mjs","names":[],"sources":["../../packages/components/ui/input-otp.tsx"],"sourcesContent":["'use client';\nimport { use } from 'react';\n\nimport { MinusIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { OTPInput, OTPInputContext } from 'input-otp';\n\n/**\n * One-time password (OTP) input composed of individual character slots.\n *\n * @example\n * ```tsx\n * import { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator } from '@customafk/lunas-ui/ui/input-otp';\n *\n * <InputOTP maxLength={6}>\n * <InputOTPGroup>\n * <InputOTPSlot index={0} />\n * <InputOTPSlot index={1} />\n * <InputOTPSlot index={2} />\n * </InputOTPGroup>\n * <InputOTPSeparator />\n * <InputOTPGroup>\n * <InputOTPSlot index={3} />\n * <InputOTPSlot index={4} />\n * <InputOTPSlot index={5} />\n * </InputOTPGroup>\n * </InputOTP>\n * ```\n */\nfunction InputOTP({\n className,\n containerClassName,\n ...props\n}: React.ComponentProps<typeof OTPInput> & {\n /** Class name applied to the outer container div. */\n containerClassName?: string;\n}) {\n return (\n <OTPInput\n data-slot=\"input-otp\"\n containerClassName={cn('flex items-center gap-2 has-disabled:opacity-50', containerClassName)}\n className={cn('disabled:cursor-not-allowed', className)}\n {...props}\n />\n );\n}\n\n/** Flex container that groups a sequence of InputOTPSlot elements. */\nfunction InputOTPGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"input-otp-group\" className={cn('flex items-center', className)} {...props} />;\n}\n\n/**\n * A single character slot in an InputOTP — displays the typed character and a blinking caret when focused.\n *\n * @param index - Zero-based position of this slot within the OTP sequence.\n */\nfunction InputOTPSlot({\n index,\n className,\n ...props\n}: React.ComponentProps<'div'> & {\n index: number;\n}) {\n const inputOTPContext = use(OTPInputContext);\n const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};\n\n return (\n <div\n data-slot=\"input-otp-slot\"\n data-active={isActive}\n className={cn(\n 'data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:ring-destructive/20 dark:data-[active=true]:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[active=true]:aria-invalid:border-destructive dark:bg-input/30 border-input relative flex h-9 w-9 items-center justify-center border-y border-r text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md data-[active=true]:z-10 data-[active=true]:ring-[3px]',\n className\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"animate-caret-blink bg-foreground h-4 w-px duration-1000\" />\n </div>\n )}\n </div>\n );\n}\n\n/** Visual separator (dash) placed between InputOTPGroup elements. */\nfunction InputOTPSeparator({ ...props }: React.ComponentProps<'div'>) {\n return (\n <div data-slot=\"input-otp-separator\" role=\"separator\" {...props}>\n <MinusIcon />\n </div>\n );\n}\n\nexport { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot };\n"],"mappings":"kPA+BA,SAAS,EAAS,CAChB,YACA,qBACA,GAAG,GAIF,CACD,OACE,EAAC,EAAA,CACC,YAAU,YACV,mBAAoB,EAAG,kDAAmD,EAAmB,CAC7F,UAAW,EAAG,8BAA+B,EAAU,CACvD,GAAI,GACJ,CAKN,SAAS,EAAc,CAAE,YAAW,GAAG,GAAsC,CAC3E,OAAO,EAAC,MAAA,CAAI,YAAU,kBAAkB,UAAW,EAAG,oBAAqB,EAAU,CAAE,GAAI,GAAS,CAQtG,SAAS,EAAa,CACpB,QACA,YACA,GAAG,GAGF,CAED,GAAM,CAAE,OAAM,eAAc,YADJ,EAAI,EAAgB,EACc,MAAM,IAAU,EAAE,CAE5E,OACE,EAAC,MAAA,CACC,YAAU,iBACV,cAAa,EACb,UAAW,EACT,2fACA,EACD,CACD,GAAI,YAEH,EACA,GACC,EAAC,MAAA,CAAI,UAAU,iFACb,EAAC,MAAA,CAAI,UAAU,2DAAA,CAA6D,EACxE,CAAA,EAEJ,CAKV,SAAS,EAAkB,CAAE,GAAG,GAAsC,CACpE,OACE,EAAC,MAAA,CAAI,YAAU,sBAAsB,KAAK,YAAY,GAAI,WACxD,EAAC,EAAA,EAAA,CAAY,EACT"}
package/dist/ui/input.cjs CHANGED
@@ -1 +1 @@
1
- "use client";const e=require(`../input-BFWWaN-v.cjs`);exports.Input=e.t,exports.inputVariants=e.n;
1
+ "use client";const e=require(`../input-Cl5VkKQh.cjs`);exports.Input=e.t,exports.inputVariants=e.n;
@@ -1,2 +1,2 @@
1
- import { n as InputVariantProps, r as inputVariants, t as Input } from "../input-DhQmoNrK.cjs";
1
+ import { n as InputVariantProps, r as inputVariants, t as Input } from "../input-DPLvx5x8.cjs";
2
2
  export { Input, InputVariantProps, inputVariants };
@@ -1,2 +1,2 @@
1
- import { n as InputVariantProps, r as inputVariants, t as Input } from "../input-BgHvD7zf.mjs";
1
+ import { n as InputVariantProps, r as inputVariants, t as Input } from "../input-DAGzv97v.mjs";
2
2
  export { Input, InputVariantProps, inputVariants };
package/dist/ui/input.mjs CHANGED
@@ -1 +1 @@
1
- "use client";import{n as e,t}from"../input-DBtIgQB6.mjs";export{t as Input,e as inputVariants};
1
+ "use client";import{n as e,t}from"../input-Cd0G5y-9.mjs";export{t as Input,e as inputVariants};
@@ -1,2 +1,2 @@
1
- const e=require(`../../chunk-Bmb41Sf3.cjs`),t=require(`../../input-BFWWaN-v.cjs`);let n=require(`@customafk/react-toolkit/utils`),r=require(`react/jsx-runtime`),i=require(`lucide-react`);const a=({className:e,...a})=>(0,r.jsxs)(`div`,{className:`relative`,children:[(0,r.jsx)(t.t,{...a,type:`search`,className:(0,n.cn)(`ps-9 pe-9`,e)}),(0,r.jsx)(`div`,{className:`pointer-events-none absolute inset-y-0 start-0 flex items-center justify-center ps-3 text-text-positive-weak peer-disabled:opacity-50`,children:(0,r.jsx)(i.SearchIcon,{size:16})}),(0,r.jsx)(`button`,{className:`absolute inset-y-0 end-0 flex h-full w-9 items-center justify-center rounded-e-md text-text-positive-weak outline-none transition-[color,box-shadow] hover:text-text-positive focus:z-10 focus-visible:border focus-visible:border-primary-strong focus-visible:ring-[3px] focus-visible:ring-primary-weak disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,"aria-label":`Submit search`,type:`submit`,children:(0,r.jsx)(i.ArrowRightIcon,{size:16,"aria-hidden":`true`})})]});exports.SearchInput=a;
1
+ const e=require(`../../chunk-Bmb41Sf3.cjs`),t=require(`../../input-Cl5VkKQh.cjs`);let n=require(`lucide-react`),r=require(`react/jsx-runtime`),i=require(`@customafk/react-toolkit/utils`);const a=({className:e,...a})=>(0,r.jsxs)(`div`,{className:`relative`,children:[(0,r.jsx)(t.t,{...a,type:`search`,className:(0,i.cn)(`ps-9 pe-9`,e)}),(0,r.jsx)(`div`,{className:`pointer-events-none absolute inset-y-0 start-0 flex items-center justify-center ps-3 text-text-positive-weak peer-disabled:opacity-50`,children:(0,r.jsx)(n.SearchIcon,{size:16})}),(0,r.jsx)(`button`,{className:`absolute inset-y-0 end-0 flex h-full w-9 items-center justify-center rounded-e-md text-text-positive-weak outline-none transition-[color,box-shadow] hover:text-text-positive focus:z-10 focus-visible:border focus-visible:border-primary-strong focus-visible:ring-[3px] focus-visible:ring-primary-weak disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,"aria-label":`Submit search`,type:`submit`,children:(0,r.jsx)(n.ArrowRightIcon,{size:16,"aria-hidden":`true`})})]});exports.SearchInput=a;
2
2
  //# sourceMappingURL=search-input.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"search-input.cjs","names":["Input","SearchIcon","ArrowRightIcon"],"sources":["../../../packages/components/ui/inputs/search-input.tsx"],"sourcesContent":["import { ArrowRightIcon, SearchIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Input } from '../input';\n\ntype Props = React.ComponentPropsWithoutRef<typeof Input>;\nexport const SearchInput = ({ className, ...rest }: Props) => {\n return (\n <div className=\"relative\">\n <Input {...rest} type=\"search\" className={cn('ps-9 pe-9', className)} />\n <div className=\"pointer-events-none absolute inset-y-0 start-0 flex items-center justify-center ps-3 text-text-positive-weak peer-disabled:opacity-50\">\n <SearchIcon size={16} />\n </div>\n <button\n className=\"absolute inset-y-0 end-0 flex h-full w-9 items-center justify-center rounded-e-md text-text-positive-weak outline-none transition-[color,box-shadow] hover:text-text-positive focus:z-10 focus-visible:border focus-visible:border-primary-strong focus-visible:ring-[3px] focus-visible:ring-primary-weak disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\"\n aria-label=\"Submit search\"\n type=\"submit\"\n >\n <ArrowRightIcon size={16} aria-hidden=\"true\" />\n </button>\n </div>\n );\n};\n"],"mappings":"2LAOA,MAAa,GAAe,CAAE,YAAW,GAAG,MAExC,EAAA,EAAA,MAAC,MAAA,CAAI,UAAU,sBACb,EAAA,EAAA,KAACA,EAAAA,EAAAA,CAAM,GAAI,EAAM,KAAK,SAAS,WAAA,EAAA,EAAA,IAAc,YAAa,EAAU,EAAI,EACxE,EAAA,EAAA,KAAC,MAAA,CAAI,UAAU,kJACb,EAAA,EAAA,KAACC,EAAAA,WAAAA,CAAW,KAAM,GAAA,CAAM,EACpB,EACN,EAAA,EAAA,KAAC,SAAA,CACC,UAAU,0XACV,aAAW,gBACX,KAAK,mBAEL,EAAA,EAAA,KAACC,EAAAA,eAAAA,CAAe,KAAM,GAAI,cAAY,QAAS,EACxC,GACL"}
1
+ {"version":3,"file":"search-input.cjs","names":["Input","SearchIcon","ArrowRightIcon"],"sources":["../../../packages/components/ui/inputs/search-input.tsx"],"sourcesContent":["import { ArrowRightIcon, SearchIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Input } from '../input';\n\n/**\n * Props for {@link SearchInput}. Accepts all native props of the underlying\n * `Input` component (itself a thin wrapper around `<input>`), including\n * `value`, `defaultValue`, `onChange`, `placeholder`, `disabled`, etc.\n * The `type` prop is fixed to `\"search\"` and cannot be overridden.\n */\ntype Props = React.ComponentPropsWithoutRef<typeof Input>;\n\n/**\n * A search input field with a leading search icon and a trailing arrow submit button, intended for use inside an HTML `<form>` element.\n *\n * @example\n * import { SearchInput } from '@customafk/lunas-ui/ui/inputs/search-input';\n *\n * <form onSubmit={handleSearch}>\n * <SearchInput placeholder=\"Search…\" value={query} onChange={(e) => setQuery(e.target.value)} />\n * </form>\n */\nexport const SearchInput = ({ className, ...rest }: Props) => {\n return (\n <div className=\"relative\">\n <Input {...rest} type=\"search\" className={cn('ps-9 pe-9', className)} />\n <div className=\"pointer-events-none absolute inset-y-0 start-0 flex items-center justify-center ps-3 text-text-positive-weak peer-disabled:opacity-50\">\n <SearchIcon size={16} />\n </div>\n <button\n className=\"absolute inset-y-0 end-0 flex h-full w-9 items-center justify-center rounded-e-md text-text-positive-weak outline-none transition-[color,box-shadow] hover:text-text-positive focus:z-10 focus-visible:border focus-visible:border-primary-strong focus-visible:ring-[3px] focus-visible:ring-primary-weak disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\"\n aria-label=\"Submit search\"\n type=\"submit\"\n >\n <ArrowRightIcon size={16} aria-hidden=\"true\" />\n </button>\n </div>\n );\n};\n"],"mappings":"2LAwBA,MAAa,GAAe,CAAE,YAAW,GAAG,MAExC,EAAA,EAAA,MAAC,MAAA,CAAI,UAAU,sBACb,EAAA,EAAA,KAACA,EAAAA,EAAAA,CAAM,GAAI,EAAM,KAAK,SAAS,WAAA,EAAA,EAAA,IAAc,YAAa,EAAU,EAAI,EACxE,EAAA,EAAA,KAAC,MAAA,CAAI,UAAU,kJACb,EAAA,EAAA,KAACC,EAAAA,WAAAA,CAAW,KAAM,GAAA,CAAM,EACpB,EACN,EAAA,EAAA,KAAC,SAAA,CACC,UAAU,0XACV,aAAW,gBACX,KAAK,mBAEL,EAAA,EAAA,KAACC,EAAAA,eAAAA,CAAe,KAAM,GAAI,cAAY,QAAS,EACxC,GACL"}