@customafk/lunas-ui 0.2.5 → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (757) hide show
  1. package/README.md +39 -9
  2. package/ai-docs.md +419 -0
  3. package/dist/alert-CA1RS1CG.d.cts +88 -0
  4. package/dist/alert-DDL82_U3.d.mts +88 -0
  5. package/dist/alert-DIC1_ymv.cjs +2 -0
  6. package/dist/alert-DIC1_ymv.cjs.map +1 -0
  7. package/dist/alert-VP3giy31.mjs +2 -0
  8. package/dist/alert-VP3giy31.mjs.map +1 -0
  9. package/dist/avatar-CTS9-raY.cjs +2 -0
  10. package/dist/avatar-CTS9-raY.cjs.map +1 -0
  11. package/dist/avatar-DbxqvCjT.mjs +2 -0
  12. package/dist/avatar-DbxqvCjT.mjs.map +1 -0
  13. package/dist/badge-B8bw2UEY.mjs +2 -0
  14. package/dist/badge-B8bw2UEY.mjs.map +1 -0
  15. package/dist/badge-BFTGDsBm.d.cts +42 -0
  16. package/dist/badge-Cg0e-djv.d.mts +42 -0
  17. package/dist/badge-uQ0pIZbQ.cjs +2 -0
  18. package/dist/badge-uQ0pIZbQ.cjs.map +1 -0
  19. package/dist/button-Bn54lPVz.d.cts +174 -0
  20. package/dist/button-C6ybzxxj.mjs +2 -0
  21. package/dist/button-C6ybzxxj.mjs.map +1 -0
  22. package/dist/button-C76drZpd.d.mts +174 -0
  23. package/dist/{button-Cd7YtPlT.cjs → button-CwDT3m4m.cjs} +2 -2
  24. package/dist/button-CwDT3m4m.cjs.map +1 -0
  25. package/dist/button.variants-DeCyas1F.mjs +2 -0
  26. package/dist/button.variants-DeCyas1F.mjs.map +1 -0
  27. package/dist/button.variants-tnhb123u.cjs +2 -0
  28. package/dist/button.variants-tnhb123u.cjs.map +1 -0
  29. package/dist/calendar-CyAPpT2m.cjs +2 -0
  30. package/dist/calendar-CyAPpT2m.cjs.map +1 -0
  31. package/dist/calendar-JKxWM6AF.mjs +2 -0
  32. package/dist/calendar-JKxWM6AF.mjs.map +1 -0
  33. package/dist/cards/grid-product-card.cjs +1 -1
  34. package/dist/cards/grid-product-card.cjs.map +1 -1
  35. package/dist/cards/grid-product-card.d.cts +23 -0
  36. package/dist/cards/grid-product-card.d.mts +23 -0
  37. package/dist/cards/grid-product-card.mjs +1 -1
  38. package/dist/cards/grid-product-card.mjs.map +1 -1
  39. package/dist/cards/product-card.cjs +1 -1
  40. package/dist/cards/product-card.cjs.map +1 -1
  41. package/dist/cards/product-card.d.cts +23 -0
  42. package/dist/cards/product-card.d.mts +23 -0
  43. package/dist/cards/product-card.mjs +1 -1
  44. package/dist/cards/product-card.mjs.map +1 -1
  45. package/dist/cards/simple-card.cjs +1 -1
  46. package/dist/cards/simple-card.cjs.map +1 -1
  47. package/dist/cards/simple-card.d.cts +16 -0
  48. package/dist/cards/simple-card.d.mts +18 -2
  49. package/dist/cards/simple-card.mjs +1 -1
  50. package/dist/cards/simple-card.mjs.map +1 -1
  51. package/dist/{checkbox-Bg2FiuQw.mjs → checkbox-DJEdYOjA.mjs} +2 -2
  52. package/dist/checkbox-DJEdYOjA.mjs.map +1 -0
  53. package/dist/{checkbox-C0fSWwmD.cjs → checkbox-RZrRNYP2.cjs} +2 -2
  54. package/dist/checkbox-RZrRNYP2.cjs.map +1 -0
  55. package/dist/close-BU0kWRVo.mjs +2 -0
  56. package/dist/{close-DfuHB7kq.mjs.map → close-BU0kWRVo.mjs.map} +1 -1
  57. package/dist/close-DXk_H3Gt.cjs +2 -0
  58. package/dist/{close-D_Ge7gnP.cjs.map → close-DXk_H3Gt.cjs.map} +1 -1
  59. package/dist/cms-layout-Dc4moos1.cjs +2 -0
  60. package/dist/cms-layout-Dc4moos1.cjs.map +1 -0
  61. package/dist/cms-layout-HfnOQS16.mjs +2 -0
  62. package/dist/cms-layout-HfnOQS16.mjs.map +1 -0
  63. package/dist/{command-IfPmQiyJ.cjs → command-SHd-d_o0.cjs} +2 -2
  64. package/dist/command-SHd-d_o0.cjs.map +1 -0
  65. package/dist/{command-Bma4ivZz.mjs → command-bpcnKEbR.mjs} +2 -2
  66. package/dist/command-bpcnKEbR.mjs.map +1 -0
  67. package/dist/data-display/country.cjs +1 -1
  68. package/dist/data-display/country.cjs.map +1 -1
  69. package/dist/data-display/country.d.cts +15 -3
  70. package/dist/data-display/country.d.mts +15 -3
  71. package/dist/data-display/country.mjs +1 -1
  72. package/dist/data-display/country.mjs.map +1 -1
  73. package/dist/data-display/data-list.cjs +1 -1
  74. package/dist/data-display/data-list.cjs.map +1 -1
  75. package/dist/data-display/data-list.d.cts +31 -2
  76. package/dist/data-display/data-list.d.mts +31 -2
  77. package/dist/data-display/data-list.mjs +1 -1
  78. package/dist/data-display/data-list.mjs.map +1 -1
  79. package/dist/data-display/date-tooltip.cjs +1 -1
  80. package/dist/data-display/date-tooltip.cjs.map +1 -1
  81. package/dist/data-display/date-tooltip.d.cts +13 -2
  82. package/dist/data-display/date-tooltip.d.mts +13 -2
  83. package/dist/data-display/date-tooltip.mjs +1 -1
  84. package/dist/data-display/date-tooltip.mjs.map +1 -1
  85. package/dist/data-display/date.cjs +1 -1
  86. package/dist/data-display/date.d.cts +28 -2
  87. package/dist/data-display/date.d.mts +28 -2
  88. package/dist/data-display/date.mjs +1 -1
  89. package/dist/data-display/empty.cjs +1 -1
  90. package/dist/data-display/empty.cjs.map +1 -1
  91. package/dist/data-display/empty.d.cts +17 -3
  92. package/dist/data-display/empty.d.mts +17 -3
  93. package/dist/data-display/empty.mjs +1 -1
  94. package/dist/data-display/empty.mjs.map +1 -1
  95. package/dist/data-display/name.cjs +1 -1
  96. package/dist/data-display/name.cjs.map +1 -1
  97. package/dist/data-display/name.d.cts +12 -1
  98. package/dist/data-display/name.d.mts +12 -1
  99. package/dist/data-display/name.mjs +1 -1
  100. package/dist/data-display/name.mjs.map +1 -1
  101. package/dist/data-display/phone-number.cjs +1 -1
  102. package/dist/data-display/phone-number.cjs.map +1 -1
  103. package/dist/data-display/phone-number.d.cts +14 -2
  104. package/dist/data-display/phone-number.d.mts +14 -2
  105. package/dist/data-display/phone-number.mjs +1 -1
  106. package/dist/data-display/phone-number.mjs.map +1 -1
  107. package/dist/data-display/role-badge.cjs +1 -1
  108. package/dist/data-display/role-badge.cjs.map +1 -1
  109. package/dist/data-display/role-badge.d.cts +15 -3
  110. package/dist/data-display/role-badge.d.mts +15 -3
  111. package/dist/data-display/role-badge.mjs +1 -1
  112. package/dist/data-display/role-badge.mjs.map +1 -1
  113. package/dist/data-display/statistic.cjs +1 -1
  114. package/dist/data-display/statistic.cjs.map +1 -1
  115. package/dist/data-display/statistic.d.cts +35 -6
  116. package/dist/data-display/statistic.d.mts +37 -8
  117. package/dist/data-display/statistic.mjs +1 -1
  118. package/dist/data-display/statistic.mjs.map +1 -1
  119. package/dist/data-display/user.cjs +1 -2
  120. package/dist/data-display/user.d.cts +14 -1
  121. package/dist/data-display/user.d.mts +14 -1
  122. package/dist/data-display/user.mjs +1 -2
  123. package/dist/date-CVz9xdCg.mjs +2 -0
  124. package/dist/date-CVz9xdCg.mjs.map +1 -0
  125. package/dist/date-a3RI5Pwo.cjs +2 -0
  126. package/dist/date-a3RI5Pwo.cjs.map +1 -0
  127. package/dist/dialog-BchwY6-N.mjs +2 -0
  128. package/dist/dialog-BchwY6-N.mjs.map +1 -0
  129. package/dist/dialog-CNhwBcEl.d.cts +90 -0
  130. package/dist/dialog-D6ygAOSV.d.mts +90 -0
  131. package/dist/dialog-o_68LQXd.cjs +2 -0
  132. package/dist/dialog-o_68LQXd.cjs.map +1 -0
  133. package/dist/dialogs/confirm-dialog.cjs +1 -1
  134. package/dist/dialogs/confirm-dialog.cjs.map +1 -1
  135. package/dist/dialogs/confirm-dialog.d.cts +129 -3
  136. package/dist/dialogs/confirm-dialog.d.mts +129 -3
  137. package/dist/dialogs/confirm-dialog.mjs +1 -1
  138. package/dist/dialogs/confirm-dialog.mjs.map +1 -1
  139. package/dist/dialogs/detail-dialog/components/sidebar.cjs +1 -2
  140. package/dist/dialogs/detail-dialog/components/sidebar.d.cts +73 -26
  141. package/dist/dialogs/detail-dialog/components/sidebar.d.mts +73 -26
  142. package/dist/dialogs/detail-dialog/components/sidebar.mjs +1 -2
  143. package/dist/dialogs/detail-dialog/index.cjs +1 -1
  144. package/dist/dialogs/detail-dialog/index.cjs.map +1 -1
  145. package/dist/dialogs/detail-dialog/index.d.cts +37 -8
  146. package/dist/dialogs/detail-dialog/index.d.mts +37 -8
  147. package/dist/dialogs/detail-dialog/index.mjs +1 -1
  148. package/dist/dialogs/detail-dialog/index.mjs.map +1 -1
  149. package/dist/dialogs/error-dialog.cjs +1 -1
  150. package/dist/dialogs/error-dialog.cjs.map +1 -1
  151. package/dist/dialogs/error-dialog.d.cts +18 -4
  152. package/dist/dialogs/error-dialog.d.mts +18 -4
  153. package/dist/dialogs/error-dialog.mjs +1 -1
  154. package/dist/dialogs/error-dialog.mjs.map +1 -1
  155. package/dist/dialogs/loading-dialog.cjs +1 -1
  156. package/dist/dialogs/loading-dialog.cjs.map +1 -1
  157. package/dist/dialogs/loading-dialog.d.cts +15 -3
  158. package/dist/dialogs/loading-dialog.d.mts +15 -3
  159. package/dist/dialogs/loading-dialog.mjs +1 -1
  160. package/dist/dialogs/loading-dialog.mjs.map +1 -1
  161. package/dist/dist-CIN9T2FB.mjs +2 -0
  162. package/dist/{dist-DP1ehOL8.mjs.map → dist-CIN9T2FB.mjs.map} +1 -1
  163. package/dist/dist-Dh8WwRa8.cjs +2 -0
  164. package/dist/{dist-Q1UyT_bc.cjs.map → dist-Dh8WwRa8.cjs.map} +1 -1
  165. package/dist/dropdown-menu-Ct9BLGfa.cjs +2 -0
  166. package/dist/dropdown-menu-Ct9BLGfa.cjs.map +1 -0
  167. package/dist/dropdown-menu-DWSfXhHo.mjs +2 -0
  168. package/dist/dropdown-menu-DWSfXhHo.mjs.map +1 -0
  169. package/dist/features/descriptions/index.cjs +1 -1
  170. package/dist/features/descriptions/index.cjs.map +1 -1
  171. package/dist/features/descriptions/index.d.cts +158 -19
  172. package/dist/features/descriptions/index.d.mts +158 -19
  173. package/dist/features/descriptions/index.mjs +1 -1
  174. package/dist/features/descriptions/index.mjs.map +1 -1
  175. package/dist/features/search-modal/index.cjs +1 -2
  176. package/dist/features/search-modal/index.d.cts +12 -2
  177. package/dist/features/search-modal/index.d.mts +12 -2
  178. package/dist/features/search-modal/index.mjs +1 -2
  179. package/dist/features/tables/index.cjs +1 -2
  180. package/dist/features/tables/index.d.cts +746 -24
  181. package/dist/features/tables/index.d.mts +746 -24
  182. package/dist/features/tables/index.mjs +1 -2
  183. package/dist/features/tanstack-form/index.cjs +1 -2
  184. package/dist/features/tanstack-form/index.d.cts +2 -1786
  185. package/dist/features/tanstack-form/index.d.mts +2 -1786
  186. package/dist/features/tanstack-form/index.mjs +1 -2
  187. package/dist/field-CXVnw75a.mjs +2 -0
  188. package/dist/field-CXVnw75a.mjs.map +1 -0
  189. package/dist/field-CppNvoxV.cjs +2 -0
  190. package/dist/field-CppNvoxV.cjs.map +1 -0
  191. package/dist/{flex-CeizYtXs.mjs → flex-BLMTj7Ev.mjs} +2 -2
  192. package/dist/flex-BLMTj7Ev.mjs.map +1 -0
  193. package/dist/{flex-BsoSgWFN.cjs → flex-BbbogTsZ.cjs} +2 -2
  194. package/dist/flex-BbbogTsZ.cjs.map +1 -0
  195. package/dist/heading-AKz5ewy-.cjs +2 -0
  196. package/dist/heading-AKz5ewy-.cjs.map +1 -0
  197. package/dist/heading-DN67djxs.mjs +2 -0
  198. package/dist/heading-DN67djxs.mjs.map +1 -0
  199. package/dist/image-B1Dm5LWk.cjs +2 -0
  200. package/dist/image-B1Dm5LWk.cjs.map +1 -0
  201. package/dist/image-BlzrSaoE.mjs +2 -0
  202. package/dist/image-BlzrSaoE.mjs.map +1 -0
  203. package/dist/index-75nSAiSe.d.mts +2030 -0
  204. package/dist/index-aTMCQQms.d.cts +2030 -0
  205. package/dist/index.cjs +1 -0
  206. package/dist/index.d.cts +90 -0
  207. package/dist/index.d.mts +90 -0
  208. package/dist/index.mjs +1 -0
  209. package/dist/{input-DMjPBcJO.mjs → input-Cd0G5y-9.mjs} +2 -2
  210. package/dist/input-Cd0G5y-9.mjs.map +1 -0
  211. package/dist/{input-BoMJaF_N.cjs → input-Cl5VkKQh.cjs} +2 -2
  212. package/dist/input-Cl5VkKQh.cjs.map +1 -0
  213. package/dist/input-D5dtkW6g.d.mts +44 -0
  214. package/dist/input-t2hpPP2K.d.cts +44 -0
  215. package/dist/{label-BzfsTrVt.cjs → label-DkMTQ3Ch.cjs} +2 -2
  216. package/dist/label-DkMTQ3Ch.cjs.map +1 -0
  217. package/dist/label-OmlGaZ5h.mjs +2 -0
  218. package/dist/label-OmlGaZ5h.mjs.map +1 -0
  219. package/dist/layouts/cms-layout/index.cjs +1 -2
  220. package/dist/layouts/cms-layout/index.d.cts +66 -13
  221. package/dist/layouts/cms-layout/index.d.mts +66 -13
  222. package/dist/layouts/cms-layout/index.mjs +1 -2
  223. package/dist/layouts/flex.cjs +1 -1
  224. package/dist/layouts/flex.d.cts +91 -7
  225. package/dist/layouts/flex.d.mts +93 -9
  226. package/dist/layouts/flex.mjs +1 -1
  227. package/dist/layouts/grid.cjs +1 -1
  228. package/dist/layouts/grid.cjs.map +1 -1
  229. package/dist/layouts/grid.d.cts +14 -0
  230. package/dist/layouts/grid.d.mts +14 -0
  231. package/dist/layouts/grid.mjs +1 -1
  232. package/dist/layouts/grid.mjs.map +1 -1
  233. package/dist/layouts/payment-layout/index.cjs +1 -2
  234. package/dist/layouts/payment-layout/index.d.cts +35 -0
  235. package/dist/layouts/payment-layout/index.d.mts +35 -0
  236. package/dist/layouts/payment-layout/index.mjs +1 -2
  237. package/dist/pages/FeatureDeveloping.cjs +1 -1
  238. package/dist/pages/FeatureDeveloping.cjs.map +1 -1
  239. package/dist/pages/FeatureDeveloping.d.cts +21 -3
  240. package/dist/pages/FeatureDeveloping.d.mts +21 -3
  241. package/dist/pages/FeatureDeveloping.mjs +1 -1
  242. package/dist/pages/FeatureDeveloping.mjs.map +1 -1
  243. package/dist/pages/FeatureFixing.cjs +1 -1
  244. package/dist/pages/FeatureFixing.cjs.map +1 -1
  245. package/dist/pages/FeatureFixing.d.cts +21 -3
  246. package/dist/pages/FeatureFixing.d.mts +21 -3
  247. package/dist/pages/FeatureFixing.mjs +1 -1
  248. package/dist/pages/FeatureFixing.mjs.map +1 -1
  249. package/dist/pages/NotAuthorized.cjs +1 -1
  250. package/dist/pages/NotAuthorized.cjs.map +1 -1
  251. package/dist/pages/NotAuthorized.d.cts +21 -3
  252. package/dist/pages/NotAuthorized.d.mts +21 -3
  253. package/dist/pages/NotAuthorized.mjs +1 -1
  254. package/dist/pages/NotAuthorized.mjs.map +1 -1
  255. package/dist/pages/NotFound.cjs +1 -1
  256. package/dist/pages/NotFound.cjs.map +1 -1
  257. package/dist/pages/NotFound.d.cts +21 -3
  258. package/dist/pages/NotFound.d.mts +21 -3
  259. package/dist/pages/NotFound.mjs +1 -1
  260. package/dist/pages/NotFound.mjs.map +1 -1
  261. package/dist/{paragraph-DmiXlAnE.mjs → paragraph-Ch5TvEqL.mjs} +2 -2
  262. package/dist/paragraph-Ch5TvEqL.mjs.map +1 -0
  263. package/dist/{paragraph-Co2e-y5c.cjs → paragraph-DN85Huc4.cjs} +2 -2
  264. package/dist/paragraph-DN85Huc4.cjs.map +1 -0
  265. package/dist/payment-layout-Da29dHJe.cjs +2 -0
  266. package/dist/payment-layout-Da29dHJe.cjs.map +1 -0
  267. package/dist/payment-layout-wN5c7MCM.mjs +2 -0
  268. package/dist/payment-layout-wN5c7MCM.mjs.map +1 -0
  269. package/dist/{popover-DzDrgttC.cjs → popover-AEt-aSy3.cjs} +2 -2
  270. package/dist/popover-AEt-aSy3.cjs.map +1 -0
  271. package/dist/popover-OJXFbqJi.mjs +2 -0
  272. package/dist/popover-OJXFbqJi.mjs.map +1 -0
  273. package/dist/{radio-group-CBhRsUjN.cjs → radio-group-BWLdQw7M.cjs} +2 -2
  274. package/dist/radio-group-BWLdQw7M.cjs.map +1 -0
  275. package/dist/{radio-group-Cem8O6BK.mjs → radio-group-CAgfOr7-.mjs} +2 -2
  276. package/dist/radio-group-CAgfOr7-.mjs.map +1 -0
  277. package/dist/{resizable-B8tRShQI.cjs → resizable-D6UKwvFa.cjs} +2 -2
  278. package/dist/resizable-D6UKwvFa.cjs.map +1 -0
  279. package/dist/{resizable-RPObV6jc.mjs → resizable-DWh_mp5P.mjs} +2 -2
  280. package/dist/resizable-DWh_mp5P.mjs.map +1 -0
  281. package/dist/search-modal-BxjKY8I7.mjs +2 -0
  282. package/dist/search-modal-BxjKY8I7.mjs.map +1 -0
  283. package/dist/search-modal-C-jNqQI1.cjs +2 -0
  284. package/dist/search-modal-C-jNqQI1.cjs.map +1 -0
  285. package/dist/{select-2CgwiefV.cjs → select-Py_t2nX1.cjs} +2 -2
  286. package/dist/select-Py_t2nX1.cjs.map +1 -0
  287. package/dist/{select-CivtMKTM.mjs → select-Ze8Fq88G.mjs} +2 -2
  288. package/dist/select-Ze8Fq88G.mjs.map +1 -0
  289. package/dist/separator-BMsbHAVt.mjs +2 -0
  290. package/dist/separator-BMsbHAVt.mjs.map +1 -0
  291. package/dist/{separator-C3ip6sbh.cjs → separator-BwZb12bh.cjs} +2 -2
  292. package/dist/separator-BwZb12bh.cjs.map +1 -0
  293. package/dist/{sheet-5MJRtrfG.cjs → sheet-CaDXTx7n.cjs} +2 -2
  294. package/dist/sheet-CaDXTx7n.cjs.map +1 -0
  295. package/dist/{sheet-oadGRiie.mjs → sheet-DMIqn1iv.mjs} +2 -2
  296. package/dist/sheet-DMIqn1iv.mjs.map +1 -0
  297. package/dist/sidebar-C27_pwLR.cjs +2 -0
  298. package/dist/sidebar-C27_pwLR.cjs.map +1 -0
  299. package/dist/sidebar-meLttL0V.mjs +2 -0
  300. package/dist/sidebar-meLttL0V.mjs.map +1 -0
  301. package/dist/skeleton-BPxcW2yu.mjs +2 -0
  302. package/dist/skeleton-BPxcW2yu.mjs.map +1 -0
  303. package/dist/skeleton-BfMCjXYM.cjs +2 -0
  304. package/dist/skeleton-BfMCjXYM.cjs.map +1 -0
  305. package/dist/spinner-EgMJOaQi.mjs +2 -0
  306. package/dist/spinner-EgMJOaQi.mjs.map +1 -0
  307. package/dist/spinner-MKXqwF9G.cjs +2 -0
  308. package/dist/spinner-MKXqwF9G.cjs.map +1 -0
  309. package/dist/systems/google.cjs +1 -1
  310. package/dist/systems/google.cjs.map +1 -1
  311. package/dist/systems/google.d.cts +36 -0
  312. package/dist/systems/google.d.mts +36 -0
  313. package/dist/systems/google.mjs +1 -1
  314. package/dist/systems/google.mjs.map +1 -1
  315. package/dist/tables-Cc3Wik4i.cjs +2 -0
  316. package/dist/tables-Cc3Wik4i.cjs.map +1 -0
  317. package/dist/tables-DrJKQPsT.mjs +2 -0
  318. package/dist/tables-DrJKQPsT.mjs.map +1 -0
  319. package/dist/tanstack-form-BmV2BXDz.cjs +2 -0
  320. package/dist/tanstack-form-BmV2BXDz.cjs.map +1 -0
  321. package/dist/tanstack-form-CJ43hVb_.mjs +2 -0
  322. package/dist/tanstack-form-CJ43hVb_.mjs.map +1 -0
  323. package/dist/{textarea-Dlwbg6TY.cjs → textarea-BsgmN4jy.cjs} +2 -2
  324. package/dist/textarea-BsgmN4jy.cjs.map +1 -0
  325. package/dist/{textarea-RjL2DtNf.mjs → textarea-CdGSEkZB.mjs} +2 -2
  326. package/dist/textarea-CdGSEkZB.mjs.map +1 -0
  327. package/dist/tooltip-Bj0iOG4s.mjs +2 -0
  328. package/dist/tooltip-Bj0iOG4s.mjs.map +1 -0
  329. package/dist/{tooltip-DC6i1A25.cjs → tooltip-itUmYz9k.cjs} +2 -2
  330. package/dist/tooltip-itUmYz9k.cjs.map +1 -0
  331. package/dist/{types-Bd0JePtp.d.cts → types-B_32Ieia.d.mts} +1 -1
  332. package/dist/{types-BpHcqlOI.d.mts → types-CDYHkcOk.d.cts} +1 -1
  333. package/dist/{types-DBD4LOem.mjs → types-DNphnTW-.mjs} +1 -1
  334. package/dist/{types-DBD4LOem.mjs.map → types-DNphnTW-.mjs.map} +1 -1
  335. package/dist/typography/paragraph.cjs +1 -1
  336. package/dist/typography/paragraph.d.cts +35 -5
  337. package/dist/typography/paragraph.d.mts +36 -6
  338. package/dist/typography/paragraph.mjs +1 -1
  339. package/dist/typography/title.cjs +1 -1
  340. package/dist/typography/title.cjs.map +1 -1
  341. package/dist/typography/title.d.cts +31 -4
  342. package/dist/typography/title.d.mts +31 -4
  343. package/dist/typography/title.mjs +1 -1
  344. package/dist/typography/title.mjs.map +1 -1
  345. package/dist/ui/alert-dialog.cjs +1 -1
  346. package/dist/ui/alert-dialog.cjs.map +1 -1
  347. package/dist/ui/alert-dialog.d.cts +54 -12
  348. package/dist/ui/alert-dialog.d.mts +54 -12
  349. package/dist/ui/alert-dialog.mjs +1 -1
  350. package/dist/ui/alert-dialog.mjs.map +1 -1
  351. package/dist/ui/alert.cjs +1 -2
  352. package/dist/ui/alert.d.cts +2 -69
  353. package/dist/ui/alert.d.mts +2 -69
  354. package/dist/ui/alert.mjs +1 -2
  355. package/dist/ui/aspect-ratio.cjs +1 -1
  356. package/dist/ui/aspect-ratio.cjs.map +1 -1
  357. package/dist/ui/aspect-ratio.d.cts +15 -2
  358. package/dist/ui/aspect-ratio.d.mts +15 -2
  359. package/dist/ui/aspect-ratio.mjs +1 -1
  360. package/dist/ui/aspect-ratio.mjs.map +1 -1
  361. package/dist/ui/avatar.cjs +1 -1
  362. package/dist/ui/avatar.d.cts +20 -4
  363. package/dist/ui/avatar.d.mts +20 -4
  364. package/dist/ui/avatar.mjs +1 -1
  365. package/dist/ui/badge.cjs +1 -1
  366. package/dist/ui/badge.d.cts +2 -21
  367. package/dist/ui/badge.d.mts +2 -21
  368. package/dist/ui/badge.mjs +1 -1
  369. package/dist/ui/breadcrumb.cjs +1 -1
  370. package/dist/ui/breadcrumb.cjs.map +1 -1
  371. package/dist/ui/breadcrumb.d.cts +38 -25
  372. package/dist/ui/breadcrumb.d.mts +38 -25
  373. package/dist/ui/breadcrumb.mjs +1 -1
  374. package/dist/ui/breadcrumb.mjs.map +1 -1
  375. package/dist/ui/button-group.cjs +1 -1
  376. package/dist/ui/button-group.cjs.map +1 -1
  377. package/dist/ui/button-group.d.cts +27 -6
  378. package/dist/ui/button-group.d.mts +27 -6
  379. package/dist/ui/button-group.mjs +1 -1
  380. package/dist/ui/button-group.mjs.map +1 -1
  381. package/dist/ui/button.cjs +1 -1
  382. package/dist/ui/button.d.cts +1 -1
  383. package/dist/ui/button.d.mts +1 -1
  384. package/dist/ui/button.mjs +1 -1
  385. package/dist/ui/buttons/add-new.cjs +1 -1
  386. package/dist/ui/buttons/add-new.cjs.map +1 -1
  387. package/dist/ui/buttons/add-new.d.cts +9 -0
  388. package/dist/ui/buttons/add-new.d.mts +9 -0
  389. package/dist/ui/buttons/add-new.mjs +1 -1
  390. package/dist/ui/buttons/add-new.mjs.map +1 -1
  391. package/dist/ui/buttons/edit.cjs +1 -1
  392. package/dist/ui/buttons/edit.cjs.map +1 -1
  393. package/dist/ui/buttons/edit.d.cts +9 -0
  394. package/dist/ui/buttons/edit.d.mts +9 -0
  395. package/dist/ui/buttons/edit.mjs +1 -1
  396. package/dist/ui/buttons/edit.mjs.map +1 -1
  397. package/dist/ui/buttons/refresh.cjs +1 -1
  398. package/dist/ui/buttons/refresh.cjs.map +1 -1
  399. package/dist/ui/buttons/refresh.d.cts +9 -0
  400. package/dist/ui/buttons/refresh.d.mts +9 -0
  401. package/dist/ui/buttons/refresh.mjs +1 -1
  402. package/dist/ui/buttons/refresh.mjs.map +1 -1
  403. package/dist/ui/buttons/trash.cjs +1 -1
  404. package/dist/ui/buttons/trash.cjs.map +1 -1
  405. package/dist/ui/buttons/trash.d.cts +9 -0
  406. package/dist/ui/buttons/trash.d.mts +9 -0
  407. package/dist/ui/buttons/trash.mjs +1 -1
  408. package/dist/ui/buttons/trash.mjs.map +1 -1
  409. package/dist/ui/buttons/upload-image.cjs +1 -1
  410. package/dist/ui/buttons/upload-image.cjs.map +1 -1
  411. package/dist/ui/buttons/upload-image.d.cts +13 -0
  412. package/dist/ui/buttons/upload-image.d.mts +13 -0
  413. package/dist/ui/buttons/upload-image.mjs +1 -1
  414. package/dist/ui/buttons/upload-image.mjs.map +1 -1
  415. package/dist/ui/calendar.cjs +1 -1
  416. package/dist/ui/calendar.d.cts +22 -4
  417. package/dist/ui/calendar.d.mts +22 -4
  418. package/dist/ui/calendar.mjs +1 -1
  419. package/dist/ui/card.cjs +1 -1
  420. package/dist/ui/card.cjs.map +1 -1
  421. package/dist/ui/card.d.cts +37 -8
  422. package/dist/ui/card.d.mts +37 -8
  423. package/dist/ui/card.mjs +1 -1
  424. package/dist/ui/card.mjs.map +1 -1
  425. package/dist/ui/carousel.cjs +1 -1
  426. package/dist/ui/carousel.cjs.map +1 -1
  427. package/dist/ui/carousel.d.cts +31 -7
  428. package/dist/ui/carousel.d.mts +31 -7
  429. package/dist/ui/carousel.mjs +1 -1
  430. package/dist/ui/carousel.mjs.map +1 -1
  431. package/dist/ui/checkbox.cjs +1 -1
  432. package/dist/ui/checkbox.d.cts +17 -2
  433. package/dist/ui/checkbox.d.mts +17 -2
  434. package/dist/ui/checkbox.mjs +1 -1
  435. package/dist/ui/collapsible.cjs.map +1 -1
  436. package/dist/ui/collapsible.d.cts +22 -4
  437. package/dist/ui/collapsible.d.mts +22 -4
  438. package/dist/ui/collapsible.mjs.map +1 -1
  439. package/dist/ui/command.cjs +1 -1
  440. package/dist/ui/command.d.cts +48 -11
  441. package/dist/ui/command.d.mts +48 -11
  442. package/dist/ui/command.mjs +1 -1
  443. package/dist/ui/context-menu.cjs +1 -1
  444. package/dist/ui/context-menu.cjs.map +1 -1
  445. package/dist/ui/context-menu.d.cts +65 -16
  446. package/dist/ui/context-menu.d.mts +65 -16
  447. package/dist/ui/context-menu.mjs +1 -1
  448. package/dist/ui/context-menu.mjs.map +1 -1
  449. package/dist/ui/dialog.cjs +1 -1
  450. package/dist/ui/dialog.d.cts +1 -1
  451. package/dist/ui/dialog.d.mts +1 -1
  452. package/dist/ui/dialog.mjs +1 -1
  453. package/dist/ui/drawer.cjs +1 -1
  454. package/dist/ui/drawer.cjs.map +1 -1
  455. package/dist/ui/drawer.d.cts +39 -11
  456. package/dist/ui/drawer.d.mts +39 -11
  457. package/dist/ui/drawer.mjs +1 -1
  458. package/dist/ui/drawer.mjs.map +1 -1
  459. package/dist/ui/dropdown-menu.cjs +1 -1
  460. package/dist/ui/dropdown-menu.d.cts +65 -16
  461. package/dist/ui/dropdown-menu.d.mts +65 -16
  462. package/dist/ui/dropdown-menu.mjs +1 -1
  463. package/dist/ui/empty.cjs +1 -1
  464. package/dist/ui/empty.cjs.map +1 -1
  465. package/dist/ui/empty.d.cts +41 -9
  466. package/dist/ui/empty.d.mts +39 -7
  467. package/dist/ui/empty.mjs +1 -1
  468. package/dist/ui/empty.mjs.map +1 -1
  469. package/dist/ui/field.cjs +1 -2
  470. package/dist/ui/field.d.cts +13 -13
  471. package/dist/ui/field.d.mts +22 -22
  472. package/dist/ui/field.mjs +1 -2
  473. package/dist/ui/file-uploader.cjs +2 -2
  474. package/dist/ui/file-uploader.cjs.map +1 -1
  475. package/dist/ui/file-uploader.d.cts +27 -2
  476. package/dist/ui/file-uploader.d.mts +27 -2
  477. package/dist/ui/file-uploader.mjs +2 -2
  478. package/dist/ui/file-uploader.mjs.map +1 -1
  479. package/dist/ui/form.cjs +1 -1
  480. package/dist/ui/form.cjs.map +1 -1
  481. package/dist/ui/form.d.cts +55 -11
  482. package/dist/ui/form.d.mts +55 -11
  483. package/dist/ui/form.mjs +1 -1
  484. package/dist/ui/form.mjs.map +1 -1
  485. package/dist/ui/hover-card.cjs +1 -1
  486. package/dist/ui/hover-card.cjs.map +1 -1
  487. package/dist/ui/hover-card.d.cts +22 -4
  488. package/dist/ui/hover-card.d.mts +22 -4
  489. package/dist/ui/hover-card.mjs +1 -1
  490. package/dist/ui/hover-card.mjs.map +1 -1
  491. package/dist/ui/image.cjs +1 -1
  492. package/dist/ui/image.d.cts +20 -0
  493. package/dist/ui/image.d.mts +20 -0
  494. package/dist/ui/image.mjs +1 -1
  495. package/dist/ui/input-otp.cjs +1 -1
  496. package/dist/ui/input-otp.cjs.map +1 -1
  497. package/dist/ui/input-otp.d.cts +36 -5
  498. package/dist/ui/input-otp.d.mts +36 -5
  499. package/dist/ui/input-otp.mjs +1 -1
  500. package/dist/ui/input-otp.mjs.map +1 -1
  501. package/dist/ui/input.cjs +1 -1
  502. package/dist/ui/input.d.cts +1 -1
  503. package/dist/ui/input.d.mts +1 -1
  504. package/dist/ui/input.mjs +1 -1
  505. package/dist/ui/inputs/search-input.cjs +1 -1
  506. package/dist/ui/inputs/search-input.cjs.map +1 -1
  507. package/dist/ui/inputs/search-input.d.cts +20 -3
  508. package/dist/ui/inputs/search-input.d.mts +20 -3
  509. package/dist/ui/inputs/search-input.mjs +1 -1
  510. package/dist/ui/inputs/search-input.mjs.map +1 -1
  511. package/dist/ui/item.cjs +1 -1
  512. package/dist/ui/item.cjs.map +1 -1
  513. package/dist/ui/item.d.cts +55 -15
  514. package/dist/ui/item.d.mts +55 -15
  515. package/dist/ui/item.mjs +1 -1
  516. package/dist/ui/item.mjs.map +1 -1
  517. package/dist/ui/label.cjs +1 -1
  518. package/dist/ui/label.d.cts +15 -2
  519. package/dist/ui/label.d.mts +15 -2
  520. package/dist/ui/label.mjs +1 -1
  521. package/dist/ui/menubar.cjs +1 -1
  522. package/dist/ui/menubar.cjs.map +1 -1
  523. package/dist/ui/menubar.d.cts +68 -17
  524. package/dist/ui/menubar.d.mts +68 -17
  525. package/dist/ui/menubar.mjs +1 -1
  526. package/dist/ui/menubar.mjs.map +1 -1
  527. package/dist/ui/multi-select.cjs +1 -1
  528. package/dist/ui/multi-select.cjs.map +1 -1
  529. package/dist/ui/multi-select.d.cts +39 -2
  530. package/dist/ui/multi-select.d.mts +40 -3
  531. package/dist/ui/multi-select.mjs +1 -1
  532. package/dist/ui/multi-select.mjs.map +1 -1
  533. package/dist/ui/navigation-menu.cjs +1 -1
  534. package/dist/ui/navigation-menu.cjs.map +1 -1
  535. package/dist/ui/navigation-menu.d.cts +42 -11
  536. package/dist/ui/navigation-menu.d.mts +42 -11
  537. package/dist/ui/navigation-menu.mjs +1 -1
  538. package/dist/ui/navigation-menu.mjs.map +1 -1
  539. package/dist/ui/pagination.cjs +1 -1
  540. package/dist/ui/pagination.cjs.map +1 -1
  541. package/dist/ui/pagination.d.cts +37 -9
  542. package/dist/ui/pagination.d.mts +37 -9
  543. package/dist/ui/pagination.mjs +1 -1
  544. package/dist/ui/pagination.mjs.map +1 -1
  545. package/dist/ui/popover.cjs +1 -1
  546. package/dist/ui/popover.d.cts +32 -6
  547. package/dist/ui/popover.d.mts +32 -6
  548. package/dist/ui/popover.mjs +1 -1
  549. package/dist/ui/progress.cjs +1 -1
  550. package/dist/ui/progress.cjs.map +1 -1
  551. package/dist/ui/progress.d.cts +13 -2
  552. package/dist/ui/progress.d.mts +13 -2
  553. package/dist/ui/progress.mjs +1 -1
  554. package/dist/ui/progress.mjs.map +1 -1
  555. package/dist/ui/radio-group.cjs +1 -1
  556. package/dist/ui/radio-group.d.cts +25 -3
  557. package/dist/ui/radio-group.d.mts +25 -3
  558. package/dist/ui/radio-group.mjs +1 -1
  559. package/dist/ui/resizable.cjs +1 -1
  560. package/dist/ui/resizable.d.cts +29 -9
  561. package/dist/ui/resizable.d.mts +29 -9
  562. package/dist/ui/resizable.mjs +1 -1
  563. package/dist/ui/scroll-area.cjs +1 -1
  564. package/dist/ui/scroll-area.cjs.map +1 -1
  565. package/dist/ui/scroll-area.d.cts +24 -6
  566. package/dist/ui/scroll-area.d.mts +24 -6
  567. package/dist/ui/scroll-area.mjs +1 -1
  568. package/dist/ui/scroll-area.mjs.map +1 -1
  569. package/dist/ui/select.cjs +1 -1
  570. package/dist/ui/select.d.cts +43 -9
  571. package/dist/ui/select.d.mts +43 -9
  572. package/dist/ui/select.mjs +1 -1
  573. package/dist/ui/separator.cjs +1 -1
  574. package/dist/ui/separator.d.cts +23 -2
  575. package/dist/ui/separator.d.mts +23 -2
  576. package/dist/ui/separator.mjs +1 -1
  577. package/dist/ui/sheet.cjs +1 -1
  578. package/dist/ui/sheet.d.cts +38 -9
  579. package/dist/ui/sheet.d.mts +38 -9
  580. package/dist/ui/sheet.mjs +1 -1
  581. package/dist/ui/sidebar.cjs +1 -1
  582. package/dist/ui/sidebar.cjs.map +1 -1
  583. package/dist/ui/sidebar.d.cts +125 -28
  584. package/dist/ui/sidebar.d.mts +125 -28
  585. package/dist/ui/sidebar.mjs +1 -1
  586. package/dist/ui/sidebar.mjs.map +1 -1
  587. package/dist/ui/skeleton.cjs +1 -1
  588. package/dist/ui/skeleton.d.cts +19 -2
  589. package/dist/ui/skeleton.d.mts +19 -2
  590. package/dist/ui/skeleton.mjs +1 -1
  591. package/dist/ui/slider.cjs +1 -1
  592. package/dist/ui/slider.cjs.map +1 -1
  593. package/dist/ui/slider.d.cts +13 -2
  594. package/dist/ui/slider.d.mts +13 -2
  595. package/dist/ui/slider.mjs +1 -1
  596. package/dist/ui/slider.mjs.map +1 -1
  597. package/dist/ui/sonner.cjs +1 -1
  598. package/dist/ui/sonner.cjs.map +1 -1
  599. package/dist/ui/sonner.d.cts +18 -2
  600. package/dist/ui/sonner.d.mts +18 -2
  601. package/dist/ui/sonner.mjs +1 -1
  602. package/dist/ui/sonner.mjs.map +1 -1
  603. package/dist/ui/spinner.cjs +1 -1
  604. package/dist/ui/spinner.d.cts +17 -2
  605. package/dist/ui/spinner.d.mts +17 -2
  606. package/dist/ui/spinner.mjs +1 -1
  607. package/dist/ui/switch.cjs +1 -1
  608. package/dist/ui/switch.cjs.map +1 -1
  609. package/dist/ui/switch.d.cts +17 -2
  610. package/dist/ui/switch.d.mts +17 -2
  611. package/dist/ui/switch.mjs +1 -1
  612. package/dist/ui/switch.mjs.map +1 -1
  613. package/dist/ui/table.cjs +1 -1
  614. package/dist/ui/table.cjs.map +1 -1
  615. package/dist/ui/table.d.cts +53 -18
  616. package/dist/ui/table.d.mts +53 -18
  617. package/dist/ui/table.mjs +1 -1
  618. package/dist/ui/table.mjs.map +1 -1
  619. package/dist/ui/tabs.cjs +1 -1
  620. package/dist/ui/tabs.cjs.map +1 -1
  621. package/dist/ui/tabs.d.cts +26 -5
  622. package/dist/ui/tabs.d.mts +26 -5
  623. package/dist/ui/tabs.mjs +1 -1
  624. package/dist/ui/tabs.mjs.map +1 -1
  625. package/dist/ui/textarea.cjs +1 -1
  626. package/dist/ui/textarea.d.cts +18 -2
  627. package/dist/ui/textarea.d.mts +18 -2
  628. package/dist/ui/textarea.mjs +1 -1
  629. package/dist/ui/toggle-group.cjs +1 -1
  630. package/dist/ui/toggle-group.cjs.map +1 -1
  631. package/dist/ui/toggle-group.d.cts +19 -3
  632. package/dist/ui/toggle-group.d.mts +19 -3
  633. package/dist/ui/toggle-group.mjs +1 -1
  634. package/dist/ui/toggle-group.mjs.map +1 -1
  635. package/dist/ui/toggle.cjs +1 -1
  636. package/dist/ui/toggle.cjs.map +1 -1
  637. package/dist/ui/toggle.d.cts +17 -4
  638. package/dist/ui/toggle.d.mts +17 -4
  639. package/dist/ui/toggle.mjs +1 -1
  640. package/dist/ui/toggle.mjs.map +1 -1
  641. package/dist/ui/tooltip.cjs +1 -1
  642. package/dist/ui/tooltip.d.cts +37 -5
  643. package/dist/ui/tooltip.d.mts +37 -5
  644. package/dist/ui/tooltip.mjs +1 -1
  645. package/dist/user-BEyYLDNK.cjs +2 -0
  646. package/dist/user-BEyYLDNK.cjs.map +1 -0
  647. package/dist/user-DONsffqr.mjs +2 -0
  648. package/dist/user-DONsffqr.mjs.map +1 -0
  649. package/package.json +11 -3
  650. package/styles/theme.css +27 -6
  651. package/dist/avatar-DReNH6rV.mjs +0 -2
  652. package/dist/avatar-DReNH6rV.mjs.map +0 -1
  653. package/dist/avatar-aVxo69zP.cjs +0 -2
  654. package/dist/avatar-aVxo69zP.cjs.map +0 -1
  655. package/dist/badge-B4Fa7-J3.mjs +0 -2
  656. package/dist/badge-B4Fa7-J3.mjs.map +0 -1
  657. package/dist/badge-cvLJyaCA.cjs +0 -2
  658. package/dist/badge-cvLJyaCA.cjs.map +0 -1
  659. package/dist/button-B5a1UlC_.d.mts +0 -59
  660. package/dist/button-Cd7YtPlT.cjs.map +0 -1
  661. package/dist/button-D8BUqpI2.mjs +0 -2
  662. package/dist/button-D8BUqpI2.mjs.map +0 -1
  663. package/dist/button-DYZCqN6A.d.cts +0 -59
  664. package/dist/button.variants-B_dFX3i2.mjs +0 -2
  665. package/dist/button.variants-B_dFX3i2.mjs.map +0 -1
  666. package/dist/button.variants-aqkTmzFu.cjs +0 -2
  667. package/dist/button.variants-aqkTmzFu.cjs.map +0 -1
  668. package/dist/calendar-B-PDpHK5.mjs +0 -2
  669. package/dist/calendar-B-PDpHK5.mjs.map +0 -1
  670. package/dist/calendar-Cq3_5u0k.cjs +0 -2
  671. package/dist/calendar-Cq3_5u0k.cjs.map +0 -1
  672. package/dist/checkbox-Bg2FiuQw.mjs.map +0 -1
  673. package/dist/checkbox-C0fSWwmD.cjs.map +0 -1
  674. package/dist/close-D_Ge7gnP.cjs +0 -2
  675. package/dist/close-DfuHB7kq.mjs +0 -2
  676. package/dist/command-Bma4ivZz.mjs.map +0 -1
  677. package/dist/command-IfPmQiyJ.cjs.map +0 -1
  678. package/dist/data-display/user.cjs.map +0 -1
  679. package/dist/data-display/user.mjs.map +0 -1
  680. package/dist/date-WraHGsbb.cjs +0 -2
  681. package/dist/date-WraHGsbb.cjs.map +0 -1
  682. package/dist/date-uVTm7J09.mjs +0 -2
  683. package/dist/date-uVTm7J09.mjs.map +0 -1
  684. package/dist/dialog-B50k7HnL.mjs +0 -2
  685. package/dist/dialog-B50k7HnL.mjs.map +0 -1
  686. package/dist/dialog-BoNhIQYJ.cjs +0 -2
  687. package/dist/dialog-BoNhIQYJ.cjs.map +0 -1
  688. package/dist/dialog-CuZxUWfc.d.cts +0 -47
  689. package/dist/dialog-D4LnpcNL.d.mts +0 -47
  690. package/dist/dialogs/detail-dialog/components/sidebar.cjs.map +0 -1
  691. package/dist/dialogs/detail-dialog/components/sidebar.mjs.map +0 -1
  692. package/dist/dist-DP1ehOL8.mjs +0 -2
  693. package/dist/dist-Q1UyT_bc.cjs +0 -2
  694. package/dist/dropdown-menu-B8GUTfTp.mjs +0 -2
  695. package/dist/dropdown-menu-B8GUTfTp.mjs.map +0 -1
  696. package/dist/dropdown-menu-BuyuU6uF.cjs +0 -2
  697. package/dist/dropdown-menu-BuyuU6uF.cjs.map +0 -1
  698. package/dist/features/search-modal/index.cjs.map +0 -1
  699. package/dist/features/search-modal/index.mjs.map +0 -1
  700. package/dist/features/tables/index.cjs.map +0 -1
  701. package/dist/features/tables/index.mjs.map +0 -1
  702. package/dist/features/tanstack-form/index.cjs.map +0 -1
  703. package/dist/features/tanstack-form/index.mjs.map +0 -1
  704. package/dist/flex-BsoSgWFN.cjs.map +0 -1
  705. package/dist/flex-CeizYtXs.mjs.map +0 -1
  706. package/dist/heading-BEbpIiLg.cjs +0 -2
  707. package/dist/heading-BEbpIiLg.cjs.map +0 -1
  708. package/dist/heading-CrF1CFWS.mjs +0 -2
  709. package/dist/heading-CrF1CFWS.mjs.map +0 -1
  710. package/dist/image-BBZUipoU.cjs +0 -2
  711. package/dist/image-BBZUipoU.cjs.map +0 -1
  712. package/dist/image-CZji4Q26.mjs +0 -2
  713. package/dist/image-CZji4Q26.mjs.map +0 -1
  714. package/dist/input-BoMJaF_N.cjs.map +0 -1
  715. package/dist/input-DMjPBcJO.mjs.map +0 -1
  716. package/dist/input-DszdZdbJ.d.cts +0 -25
  717. package/dist/input-Dv7UKl6Z.d.mts +0 -25
  718. package/dist/label-BzfsTrVt.cjs.map +0 -1
  719. package/dist/label-Dqr8nxWi.mjs +0 -2
  720. package/dist/label-Dqr8nxWi.mjs.map +0 -1
  721. package/dist/layouts/cms-layout/index.cjs.map +0 -1
  722. package/dist/layouts/cms-layout/index.mjs.map +0 -1
  723. package/dist/layouts/payment-layout/index.cjs.map +0 -1
  724. package/dist/layouts/payment-layout/index.mjs.map +0 -1
  725. package/dist/paragraph-Co2e-y5c.cjs.map +0 -1
  726. package/dist/paragraph-DmiXlAnE.mjs.map +0 -1
  727. package/dist/popover-BckwBuuD.mjs +0 -2
  728. package/dist/popover-BckwBuuD.mjs.map +0 -1
  729. package/dist/popover-DzDrgttC.cjs.map +0 -1
  730. package/dist/radio-group-CBhRsUjN.cjs.map +0 -1
  731. package/dist/radio-group-Cem8O6BK.mjs.map +0 -1
  732. package/dist/resizable-B8tRShQI.cjs.map +0 -1
  733. package/dist/resizable-RPObV6jc.mjs.map +0 -1
  734. package/dist/select-2CgwiefV.cjs.map +0 -1
  735. package/dist/select-CivtMKTM.mjs.map +0 -1
  736. package/dist/separator-Bf0gymN4.mjs +0 -2
  737. package/dist/separator-Bf0gymN4.mjs.map +0 -1
  738. package/dist/separator-C3ip6sbh.cjs.map +0 -1
  739. package/dist/sheet-5MJRtrfG.cjs.map +0 -1
  740. package/dist/sheet-oadGRiie.mjs.map +0 -1
  741. package/dist/skeleton-Ba6koCVf.mjs +0 -2
  742. package/dist/skeleton-Ba6koCVf.mjs.map +0 -1
  743. package/dist/skeleton-CHympz8k.cjs +0 -2
  744. package/dist/skeleton-CHympz8k.cjs.map +0 -1
  745. package/dist/spinner-Chm_2fLr.cjs +0 -2
  746. package/dist/spinner-Chm_2fLr.cjs.map +0 -1
  747. package/dist/spinner-D1v3Bard.mjs +0 -2
  748. package/dist/spinner-D1v3Bard.mjs.map +0 -1
  749. package/dist/textarea-Dlwbg6TY.cjs.map +0 -1
  750. package/dist/textarea-RjL2DtNf.mjs.map +0 -1
  751. package/dist/tooltip-B3dTcgcc.mjs +0 -2
  752. package/dist/tooltip-B3dTcgcc.mjs.map +0 -1
  753. package/dist/tooltip-DC6i1A25.cjs.map +0 -1
  754. package/dist/ui/alert.cjs.map +0 -1
  755. package/dist/ui/alert.mjs.map +0 -1
  756. package/dist/ui/field.cjs.map +0 -1
  757. package/dist/ui/field.mjs.map +0 -1
@@ -1,5 +1,5 @@
1
- import { t as Button } from "../button-B5a1UlC_.mjs";
2
- import * as react_jsx_runtime28 from "react/jsx-runtime";
1
+ import { t as Button } from "../button-C76drZpd.mjs";
2
+ import * as react_jsx_runtime73 from "react/jsx-runtime";
3
3
  import { DayButton, DayPicker } from "react-day-picker";
4
4
 
5
5
  //#region packages/components/ui/calendar.d.ts
@@ -9,7 +9,24 @@ declare const CalendarDayButton: ({
9
9
  modifiers,
10
10
  color: _,
11
11
  ...props
12
- }: React.ComponentProps<typeof DayButton>) => react_jsx_runtime28.JSX.Element;
12
+ }: React.ComponentProps<typeof DayButton>) => react_jsx_runtime73.JSX.Element;
13
+ /**
14
+ * A fully styled date-picker calendar built on top of react-day-picker, supporting single, range, and multiple selection modes.
15
+ *
16
+ * @example
17
+ * ```tsx
18
+ * import { Calendar } from '@customafk/lunas-ui/ui/calendar';
19
+ *
20
+ * const [date, setDate] = React.useState<Date>();
21
+ *
22
+ * <Calendar
23
+ * mode="single"
24
+ * selected={date}
25
+ * onSelect={setDate}
26
+ * captionLayout="dropdown"
27
+ * />
28
+ * ```
29
+ */
13
30
  declare function Calendar({
14
31
  className,
15
32
  classNames,
@@ -20,8 +37,9 @@ declare function Calendar({
20
37
  components,
21
38
  ...props
22
39
  }: React.ComponentProps<typeof DayPicker> & {
40
+ /** Variant applied to the previous/next navigation buttons. */
23
41
  buttonVariant?: React.ComponentProps<typeof Button>['variant'];
24
- }): react_jsx_runtime28.JSX.Element;
42
+ }): react_jsx_runtime73.JSX.Element;
25
43
  //#endregion
26
44
  export { Calendar, CalendarDayButton };
27
45
  //# sourceMappingURL=calendar.d.mts.map
@@ -1 +1 @@
1
- "use client";import"../button.variants-B_dFX3i2.mjs";import"../button-D8BUqpI2.mjs";import{n as e,t}from"../calendar-B-PDpHK5.mjs";export{t as Calendar,e as CalendarDayButton};
1
+ "use client";import"../button.variants-DeCyas1F.mjs";import"../button-C6ybzxxj.mjs";import{n as e,t}from"../calendar-JKxWM6AF.mjs";export{t as Calendar,e as CalendarDayButton};
package/dist/ui/card.cjs CHANGED
@@ -1,2 +1,2 @@
1
- const e=require(`../chunk-Bmb41Sf3.cjs`),t=require(`../heading-BEbpIiLg.cjs`),n=require(`../paragraph-Co2e-y5c.cjs`);let r=require(`@customafk/react-toolkit/utils`),i=require(`react/jsx-runtime`);function a({className:e,...t}){return(0,i.jsx)(`div`,{"data-slot":`card`,className:(0,r.cn)(`flex flex-col gap-6 rounded-lg border border-border bg-card py-6 text-text-positive shadow-card ring-4 ring-border-weak`,e),...t})}function o({className:e,...t}){return(0,i.jsx)(`div`,{"data-slot":`card-header`,className:(0,r.cn)(`@container/card-header`,`grid auto-rows-min grid-rows-[auto_auto]`,`items-start gap-1.5 px-6 text-text-positive-strong`,`has-data-[slot=card-action]:grid-cols-[1fr_auto]`,`[.border-b]:pb-6`,e),...t})}function s({className:e,...n}){return(0,i.jsx)(`div`,{"data-slot":`card-title`,className:(0,r.cn)(t.t({level:`h3`}),e),...n})}function c({className:e,...t}){return(0,i.jsx)(`div`,{"data-slot":`card-description`,className:(0,r.cn)(n.n({variant:`muted`}),e),...t})}function l({className:e,...t}){return(0,i.jsx)(`div`,{"data-slot":`card-action`,className:(0,r.cn)(`col-start-2 row-span-2 row-start-1 self-start justify-self-end`,e),...t})}function u({className:e,...t}){return(0,i.jsx)(`div`,{"data-slot":`card-content`,className:(0,r.cn)(`px-6 text-sm`,e),...t})}function d({className:e,...t}){return(0,i.jsx)(`div`,{"data-slot":`card-footer`,className:(0,r.cn)(`flex items-center px-6 text-sm [.border-t]:pt-6`,e),...t})}exports.Card=a,exports.CardAction=l,exports.CardContent=u,exports.CardDescription=c,exports.CardFooter=d,exports.CardHeader=o,exports.CardTitle=s;
1
+ "use client";const e=require(`../chunk-Bmb41Sf3.cjs`),t=require(`../heading-AKz5ewy-.cjs`),n=require(`../paragraph-DN85Huc4.cjs`);let r=require(`react/jsx-runtime`),i=require(`@customafk/react-toolkit/utils`);function a({className:e,...t}){return(0,r.jsx)(`div`,{"data-slot":`card`,className:(0,i.cn)(`flex flex-col gap-6 rounded-lg border border-border bg-card py-6 text-text-positive shadow-card`,`transition-[box-shadow,opacity] duration-150 ease-in-out`,`data-[interactive=true]:cursor-pointer`,`data-[interactive=true]:hover:shadow-dropdown`,`data-[interactive=true]:focus-visible:outline-none data-[interactive=true]:focus-visible:ring-2 data-[interactive=true]:focus-visible:ring-ring data-[interactive=true]:focus-visible:ring-offset-2`,`data-[interactive=true]:active:opacity-90`,e),...t})}function o({className:e,...t}){return(0,r.jsx)(`div`,{"data-slot":`card-header`,className:(0,i.cn)(`@container/card-header`,`grid auto-rows-min grid-rows-[auto_auto]`,`items-start gap-1.5 px-6 text-text-positive-strong`,`has-data-[slot=card-action]:grid-cols-[1fr_auto]`,`[.border-b]:pb-6`,e),...t})}function s({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`card-title`,className:(0,i.cn)(t.t({level:`h3`}),e),...n})}function c({className:e,...t}){return(0,r.jsx)(`div`,{"data-slot":`card-description`,className:(0,i.cn)(n.n({variant:`muted`}),e),...t})}function l({className:e,...t}){return(0,r.jsx)(`div`,{"data-slot":`card-action`,className:(0,i.cn)(`col-start-2 row-span-2 row-start-1 self-start justify-self-end`,e),...t})}function u({className:e,...t}){return(0,r.jsx)(`div`,{"data-slot":`card-content`,className:(0,i.cn)(`px-6 text-sm`,e),...t})}function d({className:e,...t}){return(0,r.jsx)(`div`,{"data-slot":`card-footer`,className:(0,i.cn)(`flex items-center px-6 text-sm [.border-t]:pt-6`,e),...t})}exports.Card=a,exports.CardAction=l,exports.CardContent=u,exports.CardDescription=c,exports.CardFooter=d,exports.CardHeader=o,exports.CardTitle=s;
2
2
  //# sourceMappingURL=card.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"card.cjs","names":["headingVariants","paragraphVariants"],"sources":["../../packages/components/ui/card.tsx"],"sourcesContent":["import { cn } from '@customafk/react-toolkit/utils';\nimport { headingVariants } from '../typography/heading';\nimport { paragraphVariants } from '../typography/paragraph';\n\nfunction Card({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card\"\n className={cn('flex flex-col gap-6 rounded-lg border border-border bg-card py-6 text-text-positive shadow-card ring-4 ring-border-weak', className)}\n {...props}\n />\n );\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn(\n '@container/card-header',\n 'grid auto-rows-min grid-rows-[auto_auto]',\n 'items-start gap-1.5 px-6 text-text-positive-strong',\n 'has-data-[slot=card-action]:grid-cols-[1fr_auto]',\n '[.border-b]:pb-6',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"card-title\" className={cn(headingVariants({ level: 'h3' }), className)} {...props} />;\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"card-description\" className={cn(paragraphVariants({ variant: 'muted' }), className)} {...props} />;\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"card-action\" className={cn('col-start-2 row-span-2 row-start-1 self-start justify-self-end', className)} {...props} />;\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"card-content\" className={cn('px-6 text-sm', className)} {...props} />;\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"card-footer\" className={cn('flex items-center px-6 text-sm [.border-t]:pt-6', className)} {...props} />;\n}\n\nexport { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };\n"],"mappings":"oMAIA,SAAS,EAAK,CAAE,YAAW,GAAG,GAAsC,CAClE,OACE,EAAA,EAAA,KAAC,MAAA,CACC,YAAU,OACV,WAAA,EAAA,EAAA,IAAc,0HAA2H,EAAU,CACnJ,GAAI,GACJ,CAIN,SAAS,EAAW,CAAE,YAAW,GAAG,GAAsC,CACxE,OACE,EAAA,EAAA,KAAC,MAAA,CACC,YAAU,cACV,WAAA,EAAA,EAAA,IACE,yBACA,2CACA,qDACA,mDACA,mBACA,EACD,CACD,GAAI,GACJ,CAIN,SAAS,EAAU,CAAE,YAAW,GAAG,GAAsC,CACvE,OAAO,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,aAAa,WAAA,EAAA,EAAA,IAAcA,EAAAA,EAAgB,CAAE,MAAO,KAAM,CAAC,CAAE,EAAU,CAAE,GAAI,GAAS,CAG9G,SAAS,EAAgB,CAAE,YAAW,GAAG,GAAsC,CAC7E,OAAO,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,mBAAmB,WAAA,EAAA,EAAA,IAAcC,EAAAA,EAAkB,CAAE,QAAS,QAAS,CAAC,CAAE,EAAU,CAAE,GAAI,GAAS,CAG3H,SAAS,EAAW,CAAE,YAAW,GAAG,GAAsC,CACxE,OAAO,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,cAAc,WAAA,EAAA,EAAA,IAAc,iEAAkE,EAAU,CAAE,GAAI,GAAS,CAG/I,SAAS,EAAY,CAAE,YAAW,GAAG,GAAsC,CACzE,OAAO,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,eAAe,WAAA,EAAA,EAAA,IAAc,eAAgB,EAAU,CAAE,GAAI,GAAS,CAG9F,SAAS,EAAW,CAAE,YAAW,GAAG,GAAsC,CACxE,OAAO,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,cAAc,WAAA,EAAA,EAAA,IAAc,kDAAmD,EAAU,CAAE,GAAI,GAAS"}
1
+ {"version":3,"file":"card.cjs","names":["headingVariants","paragraphVariants"],"sources":["../../packages/components/ui/card.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\nimport { headingVariants } from '../typography/heading';\nimport { paragraphVariants } from '../typography/paragraph';\n\n/**\n * Surface container for grouping related content with a bordered, shadowed panel that supports optional interactive hover states.\n *\n * @example\n * ```tsx\n * import {\n * Card, CardHeader, CardTitle, CardDescription,\n * CardContent, CardFooter, CardAction,\n * } from '@customafk/lunas-ui/ui/card';\n * import { Button } from '@customafk/lunas-ui/ui/button';\n *\n * <Card>\n * <CardHeader>\n * <CardTitle>Plan overview</CardTitle>\n * <CardDescription>Your current subscription details.</CardDescription>\n * <CardAction><Button size=\"sm\">Upgrade</Button></CardAction>\n * </CardHeader>\n * <CardContent>Monthly usage: 42 / 100 requests</CardContent>\n * <CardFooter>Renews on 1 Jun 2026</CardFooter>\n * </Card>\n * ```\n */\nfunction Card({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card\"\n className={cn(\n 'flex flex-col gap-6 rounded-lg border border-border bg-card py-6 text-text-positive shadow-card',\n 'transition-[box-shadow,opacity] duration-150 ease-in-out',\n 'data-[interactive=true]:cursor-pointer',\n 'data-[interactive=true]:hover:shadow-dropdown',\n 'data-[interactive=true]:focus-visible:outline-none data-[interactive=true]:focus-visible:ring-2 data-[interactive=true]:focus-visible:ring-ring data-[interactive=true]:focus-visible:ring-offset-2',\n 'data-[interactive=true]:active:opacity-90',\n className\n )}\n {...props}\n />\n );\n}\n\n/** Top section of the card that holds the title, description, and optional action slot. */\nfunction CardHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn(\n '@container/card-header',\n 'grid auto-rows-min grid-rows-[auto_auto]',\n 'items-start gap-1.5 px-6 text-text-positive-strong',\n 'has-data-[slot=card-action]:grid-cols-[1fr_auto]',\n '[.border-b]:pb-6',\n className\n )}\n {...props}\n />\n );\n}\n\n/** Primary heading for the card, styled with the h3 heading variant. */\nfunction CardTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"card-title\" className={cn(headingVariants({ level: 'h3' }), className)} {...props} />;\n}\n\n/** Muted supporting text displayed beneath the card title. */\nfunction CardDescription({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"card-description\" className={cn(paragraphVariants({ variant: 'muted' }), className)} {...props} />;\n}\n\n/** Optional slot in the card header for a contextual action (e.g. a button or menu); positioned in the top-right grid cell. */\nfunction CardAction({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"card-action\" className={cn('col-start-2 row-span-2 row-start-1 self-start justify-self-end', className)} {...props} />;\n}\n\n/** Main body area of the card with horizontal padding for content alignment. */\nfunction CardContent({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"card-content\" className={cn('px-6 text-sm', className)} {...props} />;\n}\n\n/** Bottom section of the card, typically used for supplementary text or secondary actions. */\nfunction CardFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"card-footer\" className={cn('flex items-center px-6 text-sm [.border-t]:pt-6', className)} {...props} />;\n}\n\nexport { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };\n"],"mappings":"iNA4BA,SAAS,EAAK,CAAE,YAAW,GAAG,GAAsC,CAClE,OACE,EAAA,EAAA,KAAC,MAAA,CACC,YAAU,OACV,WAAA,EAAA,EAAA,IACE,kGACA,2DACA,yCACA,gDACA,sMACA,4CACA,EACD,CACD,GAAI,GACJ,CAKN,SAAS,EAAW,CAAE,YAAW,GAAG,GAAsC,CACxE,OACE,EAAA,EAAA,KAAC,MAAA,CACC,YAAU,cACV,WAAA,EAAA,EAAA,IACE,yBACA,2CACA,qDACA,mDACA,mBACA,EACD,CACD,GAAI,GACJ,CAKN,SAAS,EAAU,CAAE,YAAW,GAAG,GAAsC,CACvE,OAAO,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,aAAa,WAAA,EAAA,EAAA,IAAcA,EAAAA,EAAgB,CAAE,MAAO,KAAM,CAAC,CAAE,EAAU,CAAE,GAAI,GAAS,CAI9G,SAAS,EAAgB,CAAE,YAAW,GAAG,GAAsC,CAC7E,OAAO,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,mBAAmB,WAAA,EAAA,EAAA,IAAcC,EAAAA,EAAkB,CAAE,QAAS,QAAS,CAAC,CAAE,EAAU,CAAE,GAAI,GAAS,CAI3H,SAAS,EAAW,CAAE,YAAW,GAAG,GAAsC,CACxE,OAAO,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,cAAc,WAAA,EAAA,EAAA,IAAc,iEAAkE,EAAU,CAAE,GAAI,GAAS,CAI/I,SAAS,EAAY,CAAE,YAAW,GAAG,GAAsC,CACzE,OAAO,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,eAAe,WAAA,EAAA,EAAA,IAAc,eAAgB,EAAU,CAAE,GAAI,GAAS,CAI9F,SAAS,EAAW,CAAE,YAAW,GAAG,GAAsC,CACxE,OAAO,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,cAAc,WAAA,EAAA,EAAA,IAAc,kDAAmD,EAAU,CAAE,GAAI,GAAS"}
@@ -1,34 +1,63 @@
1
- import * as react_jsx_runtime33 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime62 from "react/jsx-runtime";
2
2
 
3
3
  //#region packages/components/ui/card.d.ts
4
+
5
+ /**
6
+ * Surface container for grouping related content with a bordered, shadowed panel that supports optional interactive hover states.
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * import {
11
+ * Card, CardHeader, CardTitle, CardDescription,
12
+ * CardContent, CardFooter, CardAction,
13
+ * } from '@customafk/lunas-ui/ui/card';
14
+ * import { Button } from '@customafk/lunas-ui/ui/button';
15
+ *
16
+ * <Card>
17
+ * <CardHeader>
18
+ * <CardTitle>Plan overview</CardTitle>
19
+ * <CardDescription>Your current subscription details.</CardDescription>
20
+ * <CardAction><Button size="sm">Upgrade</Button></CardAction>
21
+ * </CardHeader>
22
+ * <CardContent>Monthly usage: 42 / 100 requests</CardContent>
23
+ * <CardFooter>Renews on 1 Jun 2026</CardFooter>
24
+ * </Card>
25
+ * ```
26
+ */
4
27
  declare function Card({
5
28
  className,
6
29
  ...props
7
- }: React.ComponentProps<'div'>): react_jsx_runtime33.JSX.Element;
30
+ }: React.ComponentProps<'div'>): react_jsx_runtime62.JSX.Element;
31
+ /** Top section of the card that holds the title, description, and optional action slot. */
8
32
  declare function CardHeader({
9
33
  className,
10
34
  ...props
11
- }: React.ComponentProps<'div'>): react_jsx_runtime33.JSX.Element;
35
+ }: React.ComponentProps<'div'>): react_jsx_runtime62.JSX.Element;
36
+ /** Primary heading for the card, styled with the h3 heading variant. */
12
37
  declare function CardTitle({
13
38
  className,
14
39
  ...props
15
- }: React.ComponentProps<'div'>): react_jsx_runtime33.JSX.Element;
40
+ }: React.ComponentProps<'div'>): react_jsx_runtime62.JSX.Element;
41
+ /** Muted supporting text displayed beneath the card title. */
16
42
  declare function CardDescription({
17
43
  className,
18
44
  ...props
19
- }: React.ComponentProps<'div'>): react_jsx_runtime33.JSX.Element;
45
+ }: React.ComponentProps<'div'>): react_jsx_runtime62.JSX.Element;
46
+ /** Optional slot in the card header for a contextual action (e.g. a button or menu); positioned in the top-right grid cell. */
20
47
  declare function CardAction({
21
48
  className,
22
49
  ...props
23
- }: React.ComponentProps<'div'>): react_jsx_runtime33.JSX.Element;
50
+ }: React.ComponentProps<'div'>): react_jsx_runtime62.JSX.Element;
51
+ /** Main body area of the card with horizontal padding for content alignment. */
24
52
  declare function CardContent({
25
53
  className,
26
54
  ...props
27
- }: React.ComponentProps<'div'>): react_jsx_runtime33.JSX.Element;
55
+ }: React.ComponentProps<'div'>): react_jsx_runtime62.JSX.Element;
56
+ /** Bottom section of the card, typically used for supplementary text or secondary actions. */
28
57
  declare function CardFooter({
29
58
  className,
30
59
  ...props
31
- }: React.ComponentProps<'div'>): react_jsx_runtime33.JSX.Element;
60
+ }: React.ComponentProps<'div'>): react_jsx_runtime62.JSX.Element;
32
61
  //#endregion
33
62
  export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };
34
63
  //# sourceMappingURL=card.d.cts.map
@@ -1,34 +1,63 @@
1
- import * as react_jsx_runtime35 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime65 from "react/jsx-runtime";
2
2
 
3
3
  //#region packages/components/ui/card.d.ts
4
+
5
+ /**
6
+ * Surface container for grouping related content with a bordered, shadowed panel that supports optional interactive hover states.
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * import {
11
+ * Card, CardHeader, CardTitle, CardDescription,
12
+ * CardContent, CardFooter, CardAction,
13
+ * } from '@customafk/lunas-ui/ui/card';
14
+ * import { Button } from '@customafk/lunas-ui/ui/button';
15
+ *
16
+ * <Card>
17
+ * <CardHeader>
18
+ * <CardTitle>Plan overview</CardTitle>
19
+ * <CardDescription>Your current subscription details.</CardDescription>
20
+ * <CardAction><Button size="sm">Upgrade</Button></CardAction>
21
+ * </CardHeader>
22
+ * <CardContent>Monthly usage: 42 / 100 requests</CardContent>
23
+ * <CardFooter>Renews on 1 Jun 2026</CardFooter>
24
+ * </Card>
25
+ * ```
26
+ */
4
27
  declare function Card({
5
28
  className,
6
29
  ...props
7
- }: React.ComponentProps<'div'>): react_jsx_runtime35.JSX.Element;
30
+ }: React.ComponentProps<'div'>): react_jsx_runtime65.JSX.Element;
31
+ /** Top section of the card that holds the title, description, and optional action slot. */
8
32
  declare function CardHeader({
9
33
  className,
10
34
  ...props
11
- }: React.ComponentProps<'div'>): react_jsx_runtime35.JSX.Element;
35
+ }: React.ComponentProps<'div'>): react_jsx_runtime65.JSX.Element;
36
+ /** Primary heading for the card, styled with the h3 heading variant. */
12
37
  declare function CardTitle({
13
38
  className,
14
39
  ...props
15
- }: React.ComponentProps<'div'>): react_jsx_runtime35.JSX.Element;
40
+ }: React.ComponentProps<'div'>): react_jsx_runtime65.JSX.Element;
41
+ /** Muted supporting text displayed beneath the card title. */
16
42
  declare function CardDescription({
17
43
  className,
18
44
  ...props
19
- }: React.ComponentProps<'div'>): react_jsx_runtime35.JSX.Element;
45
+ }: React.ComponentProps<'div'>): react_jsx_runtime65.JSX.Element;
46
+ /** Optional slot in the card header for a contextual action (e.g. a button or menu); positioned in the top-right grid cell. */
20
47
  declare function CardAction({
21
48
  className,
22
49
  ...props
23
- }: React.ComponentProps<'div'>): react_jsx_runtime35.JSX.Element;
50
+ }: React.ComponentProps<'div'>): react_jsx_runtime65.JSX.Element;
51
+ /** Main body area of the card with horizontal padding for content alignment. */
24
52
  declare function CardContent({
25
53
  className,
26
54
  ...props
27
- }: React.ComponentProps<'div'>): react_jsx_runtime35.JSX.Element;
55
+ }: React.ComponentProps<'div'>): react_jsx_runtime65.JSX.Element;
56
+ /** Bottom section of the card, typically used for supplementary text or secondary actions. */
28
57
  declare function CardFooter({
29
58
  className,
30
59
  ...props
31
- }: React.ComponentProps<'div'>): react_jsx_runtime35.JSX.Element;
60
+ }: React.ComponentProps<'div'>): react_jsx_runtime65.JSX.Element;
32
61
  //#endregion
33
62
  export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };
34
63
  //# sourceMappingURL=card.d.mts.map
package/dist/ui/card.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import{t as e}from"../heading-CrF1CFWS.mjs";import{n as t}from"../paragraph-DmiXlAnE.mjs";import{cn as n}from"@customafk/react-toolkit/utils";import{jsx as r}from"react/jsx-runtime";function i({className:e,...t}){return r(`div`,{"data-slot":`card`,className:n(`flex flex-col gap-6 rounded-lg border border-border bg-card py-6 text-text-positive shadow-card ring-4 ring-border-weak`,e),...t})}function a({className:e,...t}){return r(`div`,{"data-slot":`card-header`,className:n(`@container/card-header`,`grid auto-rows-min grid-rows-[auto_auto]`,`items-start gap-1.5 px-6 text-text-positive-strong`,`has-data-[slot=card-action]:grid-cols-[1fr_auto]`,`[.border-b]:pb-6`,e),...t})}function o({className:t,...i}){return r(`div`,{"data-slot":`card-title`,className:n(e({level:`h3`}),t),...i})}function s({className:e,...i}){return r(`div`,{"data-slot":`card-description`,className:n(t({variant:`muted`}),e),...i})}function c({className:e,...t}){return r(`div`,{"data-slot":`card-action`,className:n(`col-start-2 row-span-2 row-start-1 self-start justify-self-end`,e),...t})}function l({className:e,...t}){return r(`div`,{"data-slot":`card-content`,className:n(`px-6 text-sm`,e),...t})}function u({className:e,...t}){return r(`div`,{"data-slot":`card-footer`,className:n(`flex items-center px-6 text-sm [.border-t]:pt-6`,e),...t})}export{i as Card,c as CardAction,l as CardContent,s as CardDescription,u as CardFooter,a as CardHeader,o as CardTitle};
1
+ "use client";import{t as e}from"../heading-DN67djxs.mjs";import{n as t}from"../paragraph-Ch5TvEqL.mjs";import{jsx as n}from"react/jsx-runtime";import{cn as r}from"@customafk/react-toolkit/utils";function i({className:e,...t}){return n(`div`,{"data-slot":`card`,className:r(`flex flex-col gap-6 rounded-lg border border-border bg-card py-6 text-text-positive shadow-card`,`transition-[box-shadow,opacity] duration-150 ease-in-out`,`data-[interactive=true]:cursor-pointer`,`data-[interactive=true]:hover:shadow-dropdown`,`data-[interactive=true]:focus-visible:outline-none data-[interactive=true]:focus-visible:ring-2 data-[interactive=true]:focus-visible:ring-ring data-[interactive=true]:focus-visible:ring-offset-2`,`data-[interactive=true]:active:opacity-90`,e),...t})}function a({className:e,...t}){return n(`div`,{"data-slot":`card-header`,className:r(`@container/card-header`,`grid auto-rows-min grid-rows-[auto_auto]`,`items-start gap-1.5 px-6 text-text-positive-strong`,`has-data-[slot=card-action]:grid-cols-[1fr_auto]`,`[.border-b]:pb-6`,e),...t})}function o({className:t,...i}){return n(`div`,{"data-slot":`card-title`,className:r(e({level:`h3`}),t),...i})}function s({className:e,...i}){return n(`div`,{"data-slot":`card-description`,className:r(t({variant:`muted`}),e),...i})}function c({className:e,...t}){return n(`div`,{"data-slot":`card-action`,className:r(`col-start-2 row-span-2 row-start-1 self-start justify-self-end`,e),...t})}function l({className:e,...t}){return n(`div`,{"data-slot":`card-content`,className:r(`px-6 text-sm`,e),...t})}function u({className:e,...t}){return n(`div`,{"data-slot":`card-footer`,className:r(`flex items-center px-6 text-sm [.border-t]:pt-6`,e),...t})}export{i as Card,c as CardAction,l as CardContent,s as CardDescription,u as CardFooter,a as CardHeader,o as CardTitle};
2
2
  //# sourceMappingURL=card.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"card.mjs","names":[],"sources":["../../packages/components/ui/card.tsx"],"sourcesContent":["import { cn } from '@customafk/react-toolkit/utils';\nimport { headingVariants } from '../typography/heading';\nimport { paragraphVariants } from '../typography/paragraph';\n\nfunction Card({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card\"\n className={cn('flex flex-col gap-6 rounded-lg border border-border bg-card py-6 text-text-positive shadow-card ring-4 ring-border-weak', className)}\n {...props}\n />\n );\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn(\n '@container/card-header',\n 'grid auto-rows-min grid-rows-[auto_auto]',\n 'items-start gap-1.5 px-6 text-text-positive-strong',\n 'has-data-[slot=card-action]:grid-cols-[1fr_auto]',\n '[.border-b]:pb-6',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"card-title\" className={cn(headingVariants({ level: 'h3' }), className)} {...props} />;\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"card-description\" className={cn(paragraphVariants({ variant: 'muted' }), className)} {...props} />;\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"card-action\" className={cn('col-start-2 row-span-2 row-start-1 self-start justify-self-end', className)} {...props} />;\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"card-content\" className={cn('px-6 text-sm', className)} {...props} />;\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"card-footer\" className={cn('flex items-center px-6 text-sm [.border-t]:pt-6', className)} {...props} />;\n}\n\nexport { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };\n"],"mappings":"sLAIA,SAAS,EAAK,CAAE,YAAW,GAAG,GAAsC,CAClE,OACE,EAAC,MAAA,CACC,YAAU,OACV,UAAW,EAAG,0HAA2H,EAAU,CACnJ,GAAI,GACJ,CAIN,SAAS,EAAW,CAAE,YAAW,GAAG,GAAsC,CACxE,OACE,EAAC,MAAA,CACC,YAAU,cACV,UAAW,EACT,yBACA,2CACA,qDACA,mDACA,mBACA,EACD,CACD,GAAI,GACJ,CAIN,SAAS,EAAU,CAAE,YAAW,GAAG,GAAsC,CACvE,OAAO,EAAC,MAAA,CAAI,YAAU,aAAa,UAAW,EAAG,EAAgB,CAAE,MAAO,KAAM,CAAC,CAAE,EAAU,CAAE,GAAI,GAAS,CAG9G,SAAS,EAAgB,CAAE,YAAW,GAAG,GAAsC,CAC7E,OAAO,EAAC,MAAA,CAAI,YAAU,mBAAmB,UAAW,EAAG,EAAkB,CAAE,QAAS,QAAS,CAAC,CAAE,EAAU,CAAE,GAAI,GAAS,CAG3H,SAAS,EAAW,CAAE,YAAW,GAAG,GAAsC,CACxE,OAAO,EAAC,MAAA,CAAI,YAAU,cAAc,UAAW,EAAG,iEAAkE,EAAU,CAAE,GAAI,GAAS,CAG/I,SAAS,EAAY,CAAE,YAAW,GAAG,GAAsC,CACzE,OAAO,EAAC,MAAA,CAAI,YAAU,eAAe,UAAW,EAAG,eAAgB,EAAU,CAAE,GAAI,GAAS,CAG9F,SAAS,EAAW,CAAE,YAAW,GAAG,GAAsC,CACxE,OAAO,EAAC,MAAA,CAAI,YAAU,cAAc,UAAW,EAAG,kDAAmD,EAAU,CAAE,GAAI,GAAS"}
1
+ {"version":3,"file":"card.mjs","names":[],"sources":["../../packages/components/ui/card.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\nimport { headingVariants } from '../typography/heading';\nimport { paragraphVariants } from '../typography/paragraph';\n\n/**\n * Surface container for grouping related content with a bordered, shadowed panel that supports optional interactive hover states.\n *\n * @example\n * ```tsx\n * import {\n * Card, CardHeader, CardTitle, CardDescription,\n * CardContent, CardFooter, CardAction,\n * } from '@customafk/lunas-ui/ui/card';\n * import { Button } from '@customafk/lunas-ui/ui/button';\n *\n * <Card>\n * <CardHeader>\n * <CardTitle>Plan overview</CardTitle>\n * <CardDescription>Your current subscription details.</CardDescription>\n * <CardAction><Button size=\"sm\">Upgrade</Button></CardAction>\n * </CardHeader>\n * <CardContent>Monthly usage: 42 / 100 requests</CardContent>\n * <CardFooter>Renews on 1 Jun 2026</CardFooter>\n * </Card>\n * ```\n */\nfunction Card({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card\"\n className={cn(\n 'flex flex-col gap-6 rounded-lg border border-border bg-card py-6 text-text-positive shadow-card',\n 'transition-[box-shadow,opacity] duration-150 ease-in-out',\n 'data-[interactive=true]:cursor-pointer',\n 'data-[interactive=true]:hover:shadow-dropdown',\n 'data-[interactive=true]:focus-visible:outline-none data-[interactive=true]:focus-visible:ring-2 data-[interactive=true]:focus-visible:ring-ring data-[interactive=true]:focus-visible:ring-offset-2',\n 'data-[interactive=true]:active:opacity-90',\n className\n )}\n {...props}\n />\n );\n}\n\n/** Top section of the card that holds the title, description, and optional action slot. */\nfunction CardHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn(\n '@container/card-header',\n 'grid auto-rows-min grid-rows-[auto_auto]',\n 'items-start gap-1.5 px-6 text-text-positive-strong',\n 'has-data-[slot=card-action]:grid-cols-[1fr_auto]',\n '[.border-b]:pb-6',\n className\n )}\n {...props}\n />\n );\n}\n\n/** Primary heading for the card, styled with the h3 heading variant. */\nfunction CardTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"card-title\" className={cn(headingVariants({ level: 'h3' }), className)} {...props} />;\n}\n\n/** Muted supporting text displayed beneath the card title. */\nfunction CardDescription({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"card-description\" className={cn(paragraphVariants({ variant: 'muted' }), className)} {...props} />;\n}\n\n/** Optional slot in the card header for a contextual action (e.g. a button or menu); positioned in the top-right grid cell. */\nfunction CardAction({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"card-action\" className={cn('col-start-2 row-span-2 row-start-1 self-start justify-self-end', className)} {...props} />;\n}\n\n/** Main body area of the card with horizontal padding for content alignment. */\nfunction CardContent({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"card-content\" className={cn('px-6 text-sm', className)} {...props} />;\n}\n\n/** Bottom section of the card, typically used for supplementary text or secondary actions. */\nfunction CardFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"card-footer\" className={cn('flex items-center px-6 text-sm [.border-t]:pt-6', className)} {...props} />;\n}\n\nexport { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };\n"],"mappings":"mMA4BA,SAAS,EAAK,CAAE,YAAW,GAAG,GAAsC,CAClE,OACE,EAAC,MAAA,CACC,YAAU,OACV,UAAW,EACT,kGACA,2DACA,yCACA,gDACA,sMACA,4CACA,EACD,CACD,GAAI,GACJ,CAKN,SAAS,EAAW,CAAE,YAAW,GAAG,GAAsC,CACxE,OACE,EAAC,MAAA,CACC,YAAU,cACV,UAAW,EACT,yBACA,2CACA,qDACA,mDACA,mBACA,EACD,CACD,GAAI,GACJ,CAKN,SAAS,EAAU,CAAE,YAAW,GAAG,GAAsC,CACvE,OAAO,EAAC,MAAA,CAAI,YAAU,aAAa,UAAW,EAAG,EAAgB,CAAE,MAAO,KAAM,CAAC,CAAE,EAAU,CAAE,GAAI,GAAS,CAI9G,SAAS,EAAgB,CAAE,YAAW,GAAG,GAAsC,CAC7E,OAAO,EAAC,MAAA,CAAI,YAAU,mBAAmB,UAAW,EAAG,EAAkB,CAAE,QAAS,QAAS,CAAC,CAAE,EAAU,CAAE,GAAI,GAAS,CAI3H,SAAS,EAAW,CAAE,YAAW,GAAG,GAAsC,CACxE,OAAO,EAAC,MAAA,CAAI,YAAU,cAAc,UAAW,EAAG,iEAAkE,EAAU,CAAE,GAAI,GAAS,CAI/I,SAAS,EAAY,CAAE,YAAW,GAAG,GAAsC,CACzE,OAAO,EAAC,MAAA,CAAI,YAAU,eAAe,UAAW,EAAG,eAAgB,EAAU,CAAE,GAAI,GAAS,CAI9F,SAAS,EAAW,CAAE,YAAW,GAAG,GAAsC,CACxE,OAAO,EAAC,MAAA,CAAI,YAAU,cAAc,UAAW,EAAG,kDAAmD,EAAU,CAAE,GAAI,GAAS"}
@@ -1,2 +1,2 @@
1
- "use client";const e=require(`../chunk-Bmb41Sf3.cjs`);require(`../button.variants-aqkTmzFu.cjs`);const t=require(`../button-Cd7YtPlT.cjs`);let n=require(`@customafk/react-toolkit/utils`),r=require(`react/jsx-runtime`),i=require(`lucide-react`),a=require(`react`),o=require(`embla-carousel-react`);o=e.t(o);const s=(0,a.createContext)(null);function c(){let e=(0,a.use)(s);if(!e)throw Error(`useCarousel must be used within a <Carousel />`);return e}function l({orientation:e=`horizontal`,opts:t,setApi:i,plugins:c,className:l,children:u,...d}){let[f,p]=(0,o.default)({...t,axis:e===`horizontal`?`x`:`y`},c),[m,h]=(0,a.useState)(!1),[g,_]=(0,a.useState)(!1),v=(0,a.useCallback)(e=>{e&&(h(e.canScrollPrev()),_(e.canScrollNext()))},[]),y=(0,a.useCallback)(()=>{p?.scrollPrev()},[p]),b=(0,a.useCallback)(()=>{p?.scrollNext()},[p]),x=(0,a.useCallback)(e=>{e.key===`ArrowLeft`?(e.preventDefault(),y()):e.key===`ArrowRight`&&(e.preventDefault(),b())},[y,b]);return(0,a.useEffect)(()=>{!p||!i||i(p)},[p,i]),(0,a.useEffect)(()=>{if(p)return v(p),p.on(`reInit`,v),p.on(`select`,v),()=>{p?.off(`select`,v)}},[p,v]),(0,r.jsx)(s.Provider,{value:{carouselRef:f,api:p,opts:t,orientation:e||(t?.axis===`y`?`vertical`:`horizontal`),scrollPrev:y,scrollNext:b,canScrollPrev:m,canScrollNext:g},children:(0,r.jsx)(`div`,{onKeyDownCapture:x,className:(0,n.cn)(`relative`,l),role:`region`,"aria-roledescription":`carousel`,"data-slot":`carousel`,...d,children:u})})}function u({className:e,...t}){let{carouselRef:i,orientation:a}=c();return(0,r.jsx)(`div`,{ref:i,className:`overflow-hidden`,"data-slot":`carousel-content`,children:(0,r.jsx)(`div`,{className:(0,n.cn)(`flex`,a===`horizontal`?`-ml-4`:`-mt-4 flex-col`,e),...t})})}function d({className:e,...t}){let{orientation:i}=c();return(0,r.jsx)(`div`,{role:`group`,"aria-roledescription":`slide`,"data-slot":`carousel-item`,className:(0,n.cn)(`min-w-0 shrink-0 grow-0 basis-full`,i===`horizontal`?`pl-4`:`pt-4`,e),...t})}function f({className:e,variant:a=`outline`,size:o=`icon`,...s}){let{orientation:l,scrollPrev:u,canScrollPrev:d}=c();return(0,r.jsxs)(t.t,{"data-slot":`carousel-previous`,variant:a,size:o,className:(0,n.cn)(`absolute size-8 rounded-full`,l===`horizontal`?`top-1/2 -left-12 -translate-y-1/2`:`-top-12 left-1/2 -translate-x-1/2 rotate-90`,e),disabled:!d,onClick:u,...s,children:[(0,r.jsx)(i.ArrowLeft,{}),(0,r.jsx)(`span`,{className:`sr-only`,children:`Previous slide`})]})}function p({className:e,variant:a=`outline`,size:o=`icon`,...s}){let{orientation:l,scrollNext:u,canScrollNext:d}=c();return(0,r.jsxs)(t.t,{"data-slot":`carousel-next`,variant:a,size:o,className:(0,n.cn)(`absolute size-8 rounded-full`,l===`horizontal`?`top-1/2 -right-12 -translate-y-1/2`:`-bottom-12 left-1/2 -translate-x-1/2 rotate-90`,e),disabled:!d,onClick:u,...s,children:[(0,r.jsx)(i.ArrowRight,{}),(0,r.jsx)(`span`,{className:`sr-only`,children:`Next slide`})]})}exports.Carousel=l,exports.CarouselContent=u,exports.CarouselItem=d,exports.CarouselNext=p,exports.CarouselPrevious=f;
1
+ "use client";const e=require(`../chunk-Bmb41Sf3.cjs`);require(`../button.variants-tnhb123u.cjs`);const t=require(`../button-CwDT3m4m.cjs`);let n=require(`lucide-react`),r=require(`react`),i=require(`react/jsx-runtime`),a=require(`@customafk/react-toolkit/utils`),o=require(`embla-carousel-react`);o=e.t(o);const s=(0,r.createContext)(null);function c(){let e=(0,r.use)(s);if(!e)throw Error(`useCarousel must be used within a <Carousel />`);return e}function l({orientation:e=`horizontal`,opts:t,setApi:n,plugins:c,className:l,children:u,...d}){let[f,p]=(0,o.default)({...t,axis:e===`horizontal`?`x`:`y`},c),[m,h]=(0,r.useState)(!1),[g,_]=(0,r.useState)(!1),v=(0,r.useCallback)(e=>{e&&(h(e.canScrollPrev()),_(e.canScrollNext()))},[]),y=(0,r.useCallback)(()=>{p?.scrollPrev()},[p]),b=(0,r.useCallback)(()=>{p?.scrollNext()},[p]),x=(0,r.useCallback)(e=>{e.key===`ArrowLeft`?(e.preventDefault(),y()):e.key===`ArrowRight`&&(e.preventDefault(),b())},[y,b]);return(0,r.useEffect)(()=>{!p||!n||n(p)},[p,n]),(0,r.useEffect)(()=>{if(p)return v(p),p.on(`reInit`,v),p.on(`select`,v),()=>{p?.off(`select`,v)}},[p,v]),(0,i.jsx)(s.Provider,{value:{carouselRef:f,api:p,opts:t,orientation:e||(t?.axis===`y`?`vertical`:`horizontal`),scrollPrev:y,scrollNext:b,canScrollPrev:m,canScrollNext:g},children:(0,i.jsx)(`div`,{onKeyDownCapture:x,className:(0,a.cn)(`relative`,l),role:`region`,"aria-roledescription":`carousel`,"data-slot":`carousel`,...d,children:u})})}function u({className:e,...t}){let{carouselRef:n,orientation:r}=c();return(0,i.jsx)(`div`,{ref:n,className:`overflow-hidden`,"data-slot":`carousel-content`,children:(0,i.jsx)(`div`,{className:(0,a.cn)(`flex`,r===`horizontal`?`-ml-4`:`-mt-4 flex-col`,e),...t})})}function d({className:e,...t}){let{orientation:n}=c();return(0,i.jsx)(`div`,{role:`group`,"aria-roledescription":`slide`,"data-slot":`carousel-item`,className:(0,a.cn)(`min-w-0 shrink-0 grow-0 basis-full`,n===`horizontal`?`pl-4`:`pt-4`,e),...t})}function f({className:e,variant:r=`outline`,size:o=`icon`,...s}){let{orientation:l,scrollPrev:u,canScrollPrev:d}=c();return(0,i.jsxs)(t.t,{"data-slot":`carousel-previous`,variant:r,size:o,className:(0,a.cn)(`absolute size-8 rounded-full`,l===`horizontal`?`top-1/2 -left-12 -translate-y-1/2`:`-top-12 left-1/2 -translate-x-1/2 rotate-90`,e),disabled:!d,onClick:u,...s,children:[(0,i.jsx)(n.ArrowLeft,{}),(0,i.jsx)(`span`,{className:`sr-only`,children:`Previous slide`})]})}function p({className:e,variant:r=`outline`,size:o=`icon`,...s}){let{orientation:l,scrollNext:u,canScrollNext:d}=c();return(0,i.jsxs)(t.t,{"data-slot":`carousel-next`,variant:r,size:o,className:(0,a.cn)(`absolute size-8 rounded-full`,l===`horizontal`?`top-1/2 -right-12 -translate-y-1/2`:`-bottom-12 left-1/2 -translate-x-1/2 rotate-90`,e),disabled:!d,onClick:u,...s,children:[(0,i.jsx)(n.ArrowRight,{}),(0,i.jsx)(`span`,{className:`sr-only`,children:`Next slide`})]})}exports.Carousel=l,exports.CarouselContent=u,exports.CarouselItem=d,exports.CarouselNext=p,exports.CarouselPrevious=f;
2
2
  //# sourceMappingURL=carousel.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"carousel.cjs","names":["api","Button","ArrowLeft","ArrowRight"],"sources":["../../packages/components/ui/carousel.tsx"],"sourcesContent":["'use client';\nimport { createContext, use, useCallback, useEffect, useState } from 'react';\n\nimport { ArrowLeft, ArrowRight } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport useEmblaCarousel, { type UseEmblaCarouselType } from 'embla-carousel-react';\nimport { Button } from '@/components/ui/button';\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ntype CarouselProps = {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: 'horizontal' | 'vertical';\n setApi?: (api: CarouselApi) => void;\n};\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = createContext<CarouselContextProps | null>(null);\n\nfunction useCarousel() {\n const context = use(CarouselContext);\n\n if (!context) {\n throw new Error('useCarousel must be used within a <Carousel />');\n }\n\n return context;\n}\n\nfunction Carousel({ orientation = 'horizontal', opts, setApi, plugins, className, children, ...props }: React.ComponentProps<'div'> & CarouselProps) {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === 'horizontal' ? 'x' : 'y',\n },\n plugins\n );\n const [canScrollPrev, setCanScrollPrev] = useState(false);\n const [canScrollNext, setCanScrollNext] = useState(false);\n\n const onSelect = useCallback((api: CarouselApi) => {\n if (!api) return;\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n }, []);\n\n const scrollPrev = useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === 'ArrowRight') {\n event.preventDefault();\n scrollNext();\n }\n },\n [scrollPrev, scrollNext]\n );\n\n useEffect(() => {\n if (!api || !setApi) return;\n setApi(api);\n }, [api, setApi]);\n\n useEffect(() => {\n if (!api) return;\n onSelect(api);\n api.on('reInit', onSelect);\n api.on('select', onSelect);\n\n return () => {\n api?.off('select', onSelect);\n };\n }, [api, onSelect]);\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: api,\n opts,\n orientation: orientation || (opts?.axis === 'y' ? 'vertical' : 'horizontal'),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div onKeyDownCapture={handleKeyDown} className={cn('relative', className)} role=\"region\" aria-roledescription=\"carousel\" data-slot=\"carousel\" {...props}>\n {children}\n </div>\n </CarouselContext.Provider>\n );\n}\n\nfunction CarouselContent({ className, ...props }: React.ComponentProps<'div'>) {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div ref={carouselRef} className=\"overflow-hidden\" data-slot=\"carousel-content\">\n <div className={cn('flex', orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col', className)} {...props} />\n </div>\n );\n}\n\nfunction CarouselItem({ className, ...props }: React.ComponentProps<'div'>) {\n const { orientation } = useCarousel();\n\n return (\n <div\n role=\"group\"\n aria-roledescription=\"slide\"\n data-slot=\"carousel-item\"\n className={cn('min-w-0 shrink-0 grow-0 basis-full', orientation === 'horizontal' ? 'pl-4' : 'pt-4', className)}\n {...props}\n />\n );\n}\n\nfunction CarouselPrevious({ className, variant = 'outline', size = 'icon', ...props }: React.ComponentProps<typeof Button>) {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-previous\"\n variant={variant}\n size={size}\n className={cn(\n 'absolute size-8 rounded-full',\n orientation === 'horizontal' ? 'top-1/2 -left-12 -translate-y-1/2' : '-top-12 left-1/2 -translate-x-1/2 rotate-90',\n className\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n}\n\nfunction CarouselNext({ className, variant = 'outline', size = 'icon', ...props }: React.ComponentProps<typeof Button>) {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-next\"\n variant={variant}\n size={size}\n className={cn(\n 'absolute size-8 rounded-full',\n orientation === 'horizontal' ? 'top-1/2 -right-12 -translate-y-1/2' : '-bottom-12 left-1/2 -translate-x-1/2 rotate-90',\n className\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n}\n\nexport { Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious };\n"],"mappings":"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"}
1
+ {"version":3,"file":"carousel.cjs","names":["api","Button","ArrowLeft","ArrowRight"],"sources":["../../packages/components/ui/carousel.tsx"],"sourcesContent":["'use client';\nimport { createContext, use, useCallback, useEffect, useState } from 'react';\n\nimport { ArrowLeft, ArrowRight } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport useEmblaCarousel, { type UseEmblaCarouselType } from 'embla-carousel-react';\nimport { Button } from '@/components/ui/button';\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ntype CarouselProps = {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: 'horizontal' | 'vertical';\n setApi?: (api: CarouselApi) => void;\n};\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = createContext<CarouselContextProps | null>(null);\n\nfunction useCarousel() {\n const context = use(CarouselContext);\n\n if (!context) {\n throw new Error('useCarousel must be used within a <Carousel />');\n }\n\n return context;\n}\n\n/**\n * Embla-powered carousel that supports horizontal and vertical orientations with keyboard navigation.\n *\n * @example\n * ```tsx\n * import {\n * Carousel, CarouselContent, CarouselItem,\n * CarouselPrevious, CarouselNext,\n * } from '@customafk/lunas-ui/ui/carousel';\n *\n * <Carousel>\n * <CarouselContent>\n * <CarouselItem>Slide 1</CarouselItem>\n * <CarouselItem>Slide 2</CarouselItem>\n * </CarouselContent>\n * <CarouselPrevious />\n * <CarouselNext />\n * </Carousel>\n * ```\n */\nfunction Carousel({ orientation = 'horizontal', opts, setApi, plugins, className, children, ...props }: React.ComponentProps<'div'> & CarouselProps) {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === 'horizontal' ? 'x' : 'y',\n },\n plugins\n );\n const [canScrollPrev, setCanScrollPrev] = useState(false);\n const [canScrollNext, setCanScrollNext] = useState(false);\n\n const onSelect = useCallback((api: CarouselApi) => {\n if (!api) return;\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n }, []);\n\n const scrollPrev = useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === 'ArrowRight') {\n event.preventDefault();\n scrollNext();\n }\n },\n [scrollPrev, scrollNext]\n );\n\n useEffect(() => {\n if (!api || !setApi) return;\n setApi(api);\n }, [api, setApi]);\n\n useEffect(() => {\n if (!api) return;\n onSelect(api);\n api.on('reInit', onSelect);\n api.on('select', onSelect);\n\n return () => {\n api?.off('select', onSelect);\n };\n }, [api, onSelect]);\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: api,\n opts,\n orientation: orientation || (opts?.axis === 'y' ? 'vertical' : 'horizontal'),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div onKeyDownCapture={handleKeyDown} className={cn('relative', className)} role=\"region\" aria-roledescription=\"carousel\" data-slot=\"carousel\" {...props}>\n {children}\n </div>\n </CarouselContext.Provider>\n );\n}\n\n/** The scrollable track that holds all CarouselItem elements. */\nfunction CarouselContent({ className, ...props }: React.ComponentProps<'div'>) {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div ref={carouselRef} className=\"overflow-hidden\" data-slot=\"carousel-content\">\n <div className={cn('flex', orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col', className)} {...props} />\n </div>\n );\n}\n\n/** A single slide within a CarouselContent; occupies the full width (or height for vertical carousels). */\nfunction CarouselItem({ className, ...props }: React.ComponentProps<'div'>) {\n const { orientation } = useCarousel();\n\n return (\n <div\n role=\"group\"\n aria-roledescription=\"slide\"\n data-slot=\"carousel-item\"\n className={cn('min-w-0 shrink-0 grow-0 basis-full', orientation === 'horizontal' ? 'pl-4' : 'pt-4', className)}\n {...props}\n />\n );\n}\n\n/** Circular button positioned to the left (or top for vertical) that scrolls to the previous slide. */\nfunction CarouselPrevious({ className, variant = 'outline', size = 'icon', ...props }: React.ComponentProps<typeof Button>) {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-previous\"\n variant={variant}\n size={size}\n className={cn(\n 'absolute size-8 rounded-full',\n orientation === 'horizontal' ? 'top-1/2 -left-12 -translate-y-1/2' : '-top-12 left-1/2 -translate-x-1/2 rotate-90',\n className\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n}\n\n/** Circular button positioned to the right (or bottom for vertical) that scrolls to the next slide. */\nfunction CarouselNext({ className, variant = 'outline', size = 'icon', ...props }: React.ComponentProps<typeof Button>) {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-next\"\n variant={variant}\n size={size}\n className={cn(\n 'absolute size-8 rounded-full',\n orientation === 'horizontal' ? 'top-1/2 -right-12 -translate-y-1/2' : '-bottom-12 left-1/2 -translate-x-1/2 rotate-90',\n className\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n}\n\nexport { Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious };\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { t as Button } from "../button-DYZCqN6A.cjs";
2
- import * as react_jsx_runtime48 from "react/jsx-runtime";
1
+ import { t as Button } from "../button-Bn54lPVz.cjs";
2
+ import * as react_jsx_runtime69 from "react/jsx-runtime";
3
3
  import useEmblaCarousel, { UseEmblaCarouselType } from "embla-carousel-react";
4
4
 
5
5
  //#region packages/components/ui/carousel.d.ts
@@ -13,6 +13,26 @@ type CarouselProps = {
13
13
  orientation?: 'horizontal' | 'vertical';
14
14
  setApi?: (api: CarouselApi) => void;
15
15
  };
16
+ /**
17
+ * Embla-powered carousel that supports horizontal and vertical orientations with keyboard navigation.
18
+ *
19
+ * @example
20
+ * ```tsx
21
+ * import {
22
+ * Carousel, CarouselContent, CarouselItem,
23
+ * CarouselPrevious, CarouselNext,
24
+ * } from '@customafk/lunas-ui/ui/carousel';
25
+ *
26
+ * <Carousel>
27
+ * <CarouselContent>
28
+ * <CarouselItem>Slide 1</CarouselItem>
29
+ * <CarouselItem>Slide 2</CarouselItem>
30
+ * </CarouselContent>
31
+ * <CarouselPrevious />
32
+ * <CarouselNext />
33
+ * </Carousel>
34
+ * ```
35
+ */
16
36
  declare function Carousel({
17
37
  orientation,
18
38
  opts,
@@ -21,27 +41,31 @@ declare function Carousel({
21
41
  className,
22
42
  children,
23
43
  ...props
24
- }: React.ComponentProps<'div'> & CarouselProps): react_jsx_runtime48.JSX.Element;
44
+ }: React.ComponentProps<'div'> & CarouselProps): react_jsx_runtime69.JSX.Element;
45
+ /** The scrollable track that holds all CarouselItem elements. */
25
46
  declare function CarouselContent({
26
47
  className,
27
48
  ...props
28
- }: React.ComponentProps<'div'>): react_jsx_runtime48.JSX.Element;
49
+ }: React.ComponentProps<'div'>): react_jsx_runtime69.JSX.Element;
50
+ /** A single slide within a CarouselContent; occupies the full width (or height for vertical carousels). */
29
51
  declare function CarouselItem({
30
52
  className,
31
53
  ...props
32
- }: React.ComponentProps<'div'>): react_jsx_runtime48.JSX.Element;
54
+ }: React.ComponentProps<'div'>): react_jsx_runtime69.JSX.Element;
55
+ /** Circular button positioned to the left (or top for vertical) that scrolls to the previous slide. */
33
56
  declare function CarouselPrevious({
34
57
  className,
35
58
  variant,
36
59
  size,
37
60
  ...props
38
- }: React.ComponentProps<typeof Button>): react_jsx_runtime48.JSX.Element;
61
+ }: React.ComponentProps<typeof Button>): react_jsx_runtime69.JSX.Element;
62
+ /** Circular button positioned to the right (or bottom for vertical) that scrolls to the next slide. */
39
63
  declare function CarouselNext({
40
64
  className,
41
65
  variant,
42
66
  size,
43
67
  ...props
44
- }: React.ComponentProps<typeof Button>): react_jsx_runtime48.JSX.Element;
68
+ }: React.ComponentProps<typeof Button>): react_jsx_runtime69.JSX.Element;
45
69
  //#endregion
46
70
  export { Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious };
47
71
  //# sourceMappingURL=carousel.d.cts.map
@@ -1,5 +1,5 @@
1
- import { t as Button } from "../button-B5a1UlC_.mjs";
2
- import * as react_jsx_runtime153 from "react/jsx-runtime";
1
+ import { t as Button } from "../button-C76drZpd.mjs";
2
+ import * as react_jsx_runtime84 from "react/jsx-runtime";
3
3
  import useEmblaCarousel, { UseEmblaCarouselType } from "embla-carousel-react";
4
4
 
5
5
  //#region packages/components/ui/carousel.d.ts
@@ -13,6 +13,26 @@ type CarouselProps = {
13
13
  orientation?: 'horizontal' | 'vertical';
14
14
  setApi?: (api: CarouselApi) => void;
15
15
  };
16
+ /**
17
+ * Embla-powered carousel that supports horizontal and vertical orientations with keyboard navigation.
18
+ *
19
+ * @example
20
+ * ```tsx
21
+ * import {
22
+ * Carousel, CarouselContent, CarouselItem,
23
+ * CarouselPrevious, CarouselNext,
24
+ * } from '@customafk/lunas-ui/ui/carousel';
25
+ *
26
+ * <Carousel>
27
+ * <CarouselContent>
28
+ * <CarouselItem>Slide 1</CarouselItem>
29
+ * <CarouselItem>Slide 2</CarouselItem>
30
+ * </CarouselContent>
31
+ * <CarouselPrevious />
32
+ * <CarouselNext />
33
+ * </Carousel>
34
+ * ```
35
+ */
16
36
  declare function Carousel({
17
37
  orientation,
18
38
  opts,
@@ -21,27 +41,31 @@ declare function Carousel({
21
41
  className,
22
42
  children,
23
43
  ...props
24
- }: React.ComponentProps<'div'> & CarouselProps): react_jsx_runtime153.JSX.Element;
44
+ }: React.ComponentProps<'div'> & CarouselProps): react_jsx_runtime84.JSX.Element;
45
+ /** The scrollable track that holds all CarouselItem elements. */
25
46
  declare function CarouselContent({
26
47
  className,
27
48
  ...props
28
- }: React.ComponentProps<'div'>): react_jsx_runtime153.JSX.Element;
49
+ }: React.ComponentProps<'div'>): react_jsx_runtime84.JSX.Element;
50
+ /** A single slide within a CarouselContent; occupies the full width (or height for vertical carousels). */
29
51
  declare function CarouselItem({
30
52
  className,
31
53
  ...props
32
- }: React.ComponentProps<'div'>): react_jsx_runtime153.JSX.Element;
54
+ }: React.ComponentProps<'div'>): react_jsx_runtime84.JSX.Element;
55
+ /** Circular button positioned to the left (or top for vertical) that scrolls to the previous slide. */
33
56
  declare function CarouselPrevious({
34
57
  className,
35
58
  variant,
36
59
  size,
37
60
  ...props
38
- }: React.ComponentProps<typeof Button>): react_jsx_runtime153.JSX.Element;
61
+ }: React.ComponentProps<typeof Button>): react_jsx_runtime84.JSX.Element;
62
+ /** Circular button positioned to the right (or bottom for vertical) that scrolls to the next slide. */
39
63
  declare function CarouselNext({
40
64
  className,
41
65
  variant,
42
66
  size,
43
67
  ...props
44
- }: React.ComponentProps<typeof Button>): react_jsx_runtime153.JSX.Element;
68
+ }: React.ComponentProps<typeof Button>): react_jsx_runtime84.JSX.Element;
45
69
  //#endregion
46
70
  export { Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious };
47
71
  //# sourceMappingURL=carousel.d.mts.map
@@ -1,2 +1,2 @@
1
- "use client";import"../button.variants-B_dFX3i2.mjs";import{t as e}from"../button-D8BUqpI2.mjs";import{cn as t}from"@customafk/react-toolkit/utils";import{jsx as n,jsxs as r}from"react/jsx-runtime";import{ArrowLeft as i,ArrowRight as a}from"lucide-react";import{createContext as o,use as s,useCallback as c,useEffect as l,useState as u}from"react";import d from"embla-carousel-react";const f=o(null);function p(){let e=s(f);if(!e)throw Error(`useCarousel must be used within a <Carousel />`);return e}function m({orientation:e=`horizontal`,opts:r,setApi:i,plugins:a,className:o,children:s,...p}){let[m,h]=d({...r,axis:e===`horizontal`?`x`:`y`},a),[g,_]=u(!1),[v,y]=u(!1),b=c(e=>{e&&(_(e.canScrollPrev()),y(e.canScrollNext()))},[]),x=c(()=>{h?.scrollPrev()},[h]),S=c(()=>{h?.scrollNext()},[h]),C=c(e=>{e.key===`ArrowLeft`?(e.preventDefault(),x()):e.key===`ArrowRight`&&(e.preventDefault(),S())},[x,S]);return l(()=>{!h||!i||i(h)},[h,i]),l(()=>{if(h)return b(h),h.on(`reInit`,b),h.on(`select`,b),()=>{h?.off(`select`,b)}},[h,b]),n(f.Provider,{value:{carouselRef:m,api:h,opts:r,orientation:e||(r?.axis===`y`?`vertical`:`horizontal`),scrollPrev:x,scrollNext:S,canScrollPrev:g,canScrollNext:v},children:n(`div`,{onKeyDownCapture:C,className:t(`relative`,o),role:`region`,"aria-roledescription":`carousel`,"data-slot":`carousel`,...p,children:s})})}function h({className:e,...r}){let{carouselRef:i,orientation:a}=p();return n(`div`,{ref:i,className:`overflow-hidden`,"data-slot":`carousel-content`,children:n(`div`,{className:t(`flex`,a===`horizontal`?`-ml-4`:`-mt-4 flex-col`,e),...r})})}function g({className:e,...r}){let{orientation:i}=p();return n(`div`,{role:`group`,"aria-roledescription":`slide`,"data-slot":`carousel-item`,className:t(`min-w-0 shrink-0 grow-0 basis-full`,i===`horizontal`?`pl-4`:`pt-4`,e),...r})}function _({className:a,variant:o=`outline`,size:s=`icon`,...c}){let{orientation:l,scrollPrev:u,canScrollPrev:d}=p();return r(e,{"data-slot":`carousel-previous`,variant:o,size:s,className:t(`absolute size-8 rounded-full`,l===`horizontal`?`top-1/2 -left-12 -translate-y-1/2`:`-top-12 left-1/2 -translate-x-1/2 rotate-90`,a),disabled:!d,onClick:u,...c,children:[n(i,{}),n(`span`,{className:`sr-only`,children:`Previous slide`})]})}function v({className:i,variant:o=`outline`,size:s=`icon`,...c}){let{orientation:l,scrollNext:u,canScrollNext:d}=p();return r(e,{"data-slot":`carousel-next`,variant:o,size:s,className:t(`absolute size-8 rounded-full`,l===`horizontal`?`top-1/2 -right-12 -translate-y-1/2`:`-bottom-12 left-1/2 -translate-x-1/2 rotate-90`,i),disabled:!d,onClick:u,...c,children:[n(a,{}),n(`span`,{className:`sr-only`,children:`Next slide`})]})}export{m as Carousel,h as CarouselContent,g as CarouselItem,v as CarouselNext,_ as CarouselPrevious};
1
+ "use client";import"../button.variants-DeCyas1F.mjs";import{t as e}from"../button-C6ybzxxj.mjs";import{ArrowLeft as t,ArrowRight as n}from"lucide-react";import{createContext as r,use as i,useCallback as a,useEffect as o,useState as s}from"react";import{jsx as c,jsxs as l}from"react/jsx-runtime";import{cn as u}from"@customafk/react-toolkit/utils";import d from"embla-carousel-react";const f=r(null);function p(){let e=i(f);if(!e)throw Error(`useCarousel must be used within a <Carousel />`);return e}function m({orientation:e=`horizontal`,opts:t,setApi:n,plugins:r,className:i,children:l,...p}){let[m,h]=d({...t,axis:e===`horizontal`?`x`:`y`},r),[g,_]=s(!1),[v,y]=s(!1),b=a(e=>{e&&(_(e.canScrollPrev()),y(e.canScrollNext()))},[]),x=a(()=>{h?.scrollPrev()},[h]),S=a(()=>{h?.scrollNext()},[h]),C=a(e=>{e.key===`ArrowLeft`?(e.preventDefault(),x()):e.key===`ArrowRight`&&(e.preventDefault(),S())},[x,S]);return o(()=>{!h||!n||n(h)},[h,n]),o(()=>{if(h)return b(h),h.on(`reInit`,b),h.on(`select`,b),()=>{h?.off(`select`,b)}},[h,b]),c(f.Provider,{value:{carouselRef:m,api:h,opts:t,orientation:e||(t?.axis===`y`?`vertical`:`horizontal`),scrollPrev:x,scrollNext:S,canScrollPrev:g,canScrollNext:v},children:c(`div`,{onKeyDownCapture:C,className:u(`relative`,i),role:`region`,"aria-roledescription":`carousel`,"data-slot":`carousel`,...p,children:l})})}function h({className:e,...t}){let{carouselRef:n,orientation:r}=p();return c(`div`,{ref:n,className:`overflow-hidden`,"data-slot":`carousel-content`,children:c(`div`,{className:u(`flex`,r===`horizontal`?`-ml-4`:`-mt-4 flex-col`,e),...t})})}function g({className:e,...t}){let{orientation:n}=p();return c(`div`,{role:`group`,"aria-roledescription":`slide`,"data-slot":`carousel-item`,className:u(`min-w-0 shrink-0 grow-0 basis-full`,n===`horizontal`?`pl-4`:`pt-4`,e),...t})}function _({className:n,variant:r=`outline`,size:i=`icon`,...a}){let{orientation:o,scrollPrev:s,canScrollPrev:d}=p();return l(e,{"data-slot":`carousel-previous`,variant:r,size:i,className:u(`absolute size-8 rounded-full`,o===`horizontal`?`top-1/2 -left-12 -translate-y-1/2`:`-top-12 left-1/2 -translate-x-1/2 rotate-90`,n),disabled:!d,onClick:s,...a,children:[c(t,{}),c(`span`,{className:`sr-only`,children:`Previous slide`})]})}function v({className:t,variant:r=`outline`,size:i=`icon`,...a}){let{orientation:o,scrollNext:s,canScrollNext:d}=p();return l(e,{"data-slot":`carousel-next`,variant:r,size:i,className:u(`absolute size-8 rounded-full`,o===`horizontal`?`top-1/2 -right-12 -translate-y-1/2`:`-bottom-12 left-1/2 -translate-x-1/2 rotate-90`,t),disabled:!d,onClick:s,...a,children:[c(n,{}),c(`span`,{className:`sr-only`,children:`Next slide`})]})}export{m as Carousel,h as CarouselContent,g as CarouselItem,v as CarouselNext,_ as CarouselPrevious};
2
2
  //# sourceMappingURL=carousel.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"carousel.mjs","names":["api"],"sources":["../../packages/components/ui/carousel.tsx"],"sourcesContent":["'use client';\nimport { createContext, use, useCallback, useEffect, useState } from 'react';\n\nimport { ArrowLeft, ArrowRight } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport useEmblaCarousel, { type UseEmblaCarouselType } from 'embla-carousel-react';\nimport { Button } from '@/components/ui/button';\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ntype CarouselProps = {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: 'horizontal' | 'vertical';\n setApi?: (api: CarouselApi) => void;\n};\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = createContext<CarouselContextProps | null>(null);\n\nfunction useCarousel() {\n const context = use(CarouselContext);\n\n if (!context) {\n throw new Error('useCarousel must be used within a <Carousel />');\n }\n\n return context;\n}\n\nfunction Carousel({ orientation = 'horizontal', opts, setApi, plugins, className, children, ...props }: React.ComponentProps<'div'> & CarouselProps) {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === 'horizontal' ? 'x' : 'y',\n },\n plugins\n );\n const [canScrollPrev, setCanScrollPrev] = useState(false);\n const [canScrollNext, setCanScrollNext] = useState(false);\n\n const onSelect = useCallback((api: CarouselApi) => {\n if (!api) return;\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n }, []);\n\n const scrollPrev = useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === 'ArrowRight') {\n event.preventDefault();\n scrollNext();\n }\n },\n [scrollPrev, scrollNext]\n );\n\n useEffect(() => {\n if (!api || !setApi) return;\n setApi(api);\n }, [api, setApi]);\n\n useEffect(() => {\n if (!api) return;\n onSelect(api);\n api.on('reInit', onSelect);\n api.on('select', onSelect);\n\n return () => {\n api?.off('select', onSelect);\n };\n }, [api, onSelect]);\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: api,\n opts,\n orientation: orientation || (opts?.axis === 'y' ? 'vertical' : 'horizontal'),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div onKeyDownCapture={handleKeyDown} className={cn('relative', className)} role=\"region\" aria-roledescription=\"carousel\" data-slot=\"carousel\" {...props}>\n {children}\n </div>\n </CarouselContext.Provider>\n );\n}\n\nfunction CarouselContent({ className, ...props }: React.ComponentProps<'div'>) {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div ref={carouselRef} className=\"overflow-hidden\" data-slot=\"carousel-content\">\n <div className={cn('flex', orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col', className)} {...props} />\n </div>\n );\n}\n\nfunction CarouselItem({ className, ...props }: React.ComponentProps<'div'>) {\n const { orientation } = useCarousel();\n\n return (\n <div\n role=\"group\"\n aria-roledescription=\"slide\"\n data-slot=\"carousel-item\"\n className={cn('min-w-0 shrink-0 grow-0 basis-full', orientation === 'horizontal' ? 'pl-4' : 'pt-4', className)}\n {...props}\n />\n );\n}\n\nfunction CarouselPrevious({ className, variant = 'outline', size = 'icon', ...props }: React.ComponentProps<typeof Button>) {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-previous\"\n variant={variant}\n size={size}\n className={cn(\n 'absolute size-8 rounded-full',\n orientation === 'horizontal' ? 'top-1/2 -left-12 -translate-y-1/2' : '-top-12 left-1/2 -translate-x-1/2 rotate-90',\n className\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n}\n\nfunction CarouselNext({ className, variant = 'outline', size = 'icon', ...props }: React.ComponentProps<typeof Button>) {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-next\"\n variant={variant}\n size={size}\n className={cn(\n 'absolute size-8 rounded-full',\n orientation === 'horizontal' ? 'top-1/2 -right-12 -translate-y-1/2' : '-bottom-12 left-1/2 -translate-x-1/2 rotate-90',\n className\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n}\n\nexport { Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious };\n"],"mappings":"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"}
1
+ {"version":3,"file":"carousel.mjs","names":["api"],"sources":["../../packages/components/ui/carousel.tsx"],"sourcesContent":["'use client';\nimport { createContext, use, useCallback, useEffect, useState } from 'react';\n\nimport { ArrowLeft, ArrowRight } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport useEmblaCarousel, { type UseEmblaCarouselType } from 'embla-carousel-react';\nimport { Button } from '@/components/ui/button';\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ntype CarouselProps = {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: 'horizontal' | 'vertical';\n setApi?: (api: CarouselApi) => void;\n};\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = createContext<CarouselContextProps | null>(null);\n\nfunction useCarousel() {\n const context = use(CarouselContext);\n\n if (!context) {\n throw new Error('useCarousel must be used within a <Carousel />');\n }\n\n return context;\n}\n\n/**\n * Embla-powered carousel that supports horizontal and vertical orientations with keyboard navigation.\n *\n * @example\n * ```tsx\n * import {\n * Carousel, CarouselContent, CarouselItem,\n * CarouselPrevious, CarouselNext,\n * } from '@customafk/lunas-ui/ui/carousel';\n *\n * <Carousel>\n * <CarouselContent>\n * <CarouselItem>Slide 1</CarouselItem>\n * <CarouselItem>Slide 2</CarouselItem>\n * </CarouselContent>\n * <CarouselPrevious />\n * <CarouselNext />\n * </Carousel>\n * ```\n */\nfunction Carousel({ orientation = 'horizontal', opts, setApi, plugins, className, children, ...props }: React.ComponentProps<'div'> & CarouselProps) {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === 'horizontal' ? 'x' : 'y',\n },\n plugins\n );\n const [canScrollPrev, setCanScrollPrev] = useState(false);\n const [canScrollNext, setCanScrollNext] = useState(false);\n\n const onSelect = useCallback((api: CarouselApi) => {\n if (!api) return;\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n }, []);\n\n const scrollPrev = useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === 'ArrowRight') {\n event.preventDefault();\n scrollNext();\n }\n },\n [scrollPrev, scrollNext]\n );\n\n useEffect(() => {\n if (!api || !setApi) return;\n setApi(api);\n }, [api, setApi]);\n\n useEffect(() => {\n if (!api) return;\n onSelect(api);\n api.on('reInit', onSelect);\n api.on('select', onSelect);\n\n return () => {\n api?.off('select', onSelect);\n };\n }, [api, onSelect]);\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: api,\n opts,\n orientation: orientation || (opts?.axis === 'y' ? 'vertical' : 'horizontal'),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div onKeyDownCapture={handleKeyDown} className={cn('relative', className)} role=\"region\" aria-roledescription=\"carousel\" data-slot=\"carousel\" {...props}>\n {children}\n </div>\n </CarouselContext.Provider>\n );\n}\n\n/** The scrollable track that holds all CarouselItem elements. */\nfunction CarouselContent({ className, ...props }: React.ComponentProps<'div'>) {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div ref={carouselRef} className=\"overflow-hidden\" data-slot=\"carousel-content\">\n <div className={cn('flex', orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col', className)} {...props} />\n </div>\n );\n}\n\n/** A single slide within a CarouselContent; occupies the full width (or height for vertical carousels). */\nfunction CarouselItem({ className, ...props }: React.ComponentProps<'div'>) {\n const { orientation } = useCarousel();\n\n return (\n <div\n role=\"group\"\n aria-roledescription=\"slide\"\n data-slot=\"carousel-item\"\n className={cn('min-w-0 shrink-0 grow-0 basis-full', orientation === 'horizontal' ? 'pl-4' : 'pt-4', className)}\n {...props}\n />\n );\n}\n\n/** Circular button positioned to the left (or top for vertical) that scrolls to the previous slide. */\nfunction CarouselPrevious({ className, variant = 'outline', size = 'icon', ...props }: React.ComponentProps<typeof Button>) {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-previous\"\n variant={variant}\n size={size}\n className={cn(\n 'absolute size-8 rounded-full',\n orientation === 'horizontal' ? 'top-1/2 -left-12 -translate-y-1/2' : '-top-12 left-1/2 -translate-x-1/2 rotate-90',\n className\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n}\n\n/** Circular button positioned to the right (or bottom for vertical) that scrolls to the next slide. */\nfunction CarouselNext({ className, variant = 'outline', size = 'icon', ...props }: React.ComponentProps<typeof Button>) {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-next\"\n variant={variant}\n size={size}\n className={cn(\n 'absolute size-8 rounded-full',\n orientation === 'horizontal' ? 'top-1/2 -right-12 -translate-y-1/2' : '-bottom-12 left-1/2 -translate-x-1/2 rotate-90',\n className\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n}\n\nexport { Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious };\n"],"mappings":"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"}
@@ -1 +1 @@
1
- "use client";const e=require(`../checkbox-C0fSWwmD.cjs`);exports.Checkbox=e.t;
1
+ "use client";const e=require(`../checkbox-RZrRNYP2.cjs`);exports.Checkbox=e.t;
@@ -1,11 +1,26 @@
1
- import * as react_jsx_runtime63 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime76 from "react/jsx-runtime";
2
2
  import { Checkbox as Checkbox$1 } from "radix-ui";
3
3
 
4
4
  //#region packages/components/ui/checkbox.d.ts
5
+
6
+ /**
7
+ * Accessible checkbox input built on Radix UI's Checkbox primitive with checked, indeterminate, focus, invalid, and read-only states.
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * import { Checkbox } from '@customafk/lunas-ui/ui/checkbox';
12
+ * import { Label } from '@customafk/lunas-ui/ui/label';
13
+ *
14
+ * <div className="flex items-center gap-2">
15
+ * <Checkbox id="terms" />
16
+ * <Label htmlFor="terms">Accept terms and conditions</Label>
17
+ * </div>
18
+ * ```
19
+ */
5
20
  declare function Checkbox({
6
21
  className,
7
22
  ...props
8
- }: React.ComponentProps<typeof Checkbox$1.Root>): react_jsx_runtime63.JSX.Element;
23
+ }: React.ComponentProps<typeof Checkbox$1.Root>): react_jsx_runtime76.JSX.Element;
9
24
  //#endregion
10
25
  export { Checkbox };
11
26
  //# sourceMappingURL=checkbox.d.cts.map
@@ -1,11 +1,26 @@
1
- import * as react_jsx_runtime230 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime72 from "react/jsx-runtime";
2
2
  import { Checkbox as Checkbox$1 } from "radix-ui";
3
3
 
4
4
  //#region packages/components/ui/checkbox.d.ts
5
+
6
+ /**
7
+ * Accessible checkbox input built on Radix UI's Checkbox primitive with checked, indeterminate, focus, invalid, and read-only states.
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * import { Checkbox } from '@customafk/lunas-ui/ui/checkbox';
12
+ * import { Label } from '@customafk/lunas-ui/ui/label';
13
+ *
14
+ * <div className="flex items-center gap-2">
15
+ * <Checkbox id="terms" />
16
+ * <Label htmlFor="terms">Accept terms and conditions</Label>
17
+ * </div>
18
+ * ```
19
+ */
5
20
  declare function Checkbox({
6
21
  className,
7
22
  ...props
8
- }: React.ComponentProps<typeof Checkbox$1.Root>): react_jsx_runtime230.JSX.Element;
23
+ }: React.ComponentProps<typeof Checkbox$1.Root>): react_jsx_runtime72.JSX.Element;
9
24
  //#endregion
10
25
  export { Checkbox };
11
26
  //# sourceMappingURL=checkbox.d.mts.map
@@ -1 +1 @@
1
- "use client";import{t as e}from"../checkbox-Bg2FiuQw.mjs";export{e as Checkbox};
1
+ "use client";import{t as e}from"../checkbox-DJEdYOjA.mjs";export{e as Checkbox};