@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
package/README.md CHANGED
@@ -303,18 +303,48 @@ See [CHANGELOG.md](CHANGELOG.md) for version history and changes.
303
303
 
304
304
  ISC © [CustomAFK](https://github.com/QuangPhamvt)
305
305
 
306
- ## 🤖 Component API Documentation for Developers and AI Assistants
306
+ ## 🤖 For Claude / AI Coding Assistants
307
307
 
308
- The following provides a simplified component reference for all components in the library. For detailed props documentation and usage examples, visit our documentation site.
308
+ This package ships an `ai-docs.md` file at the package root, optimized for AI
309
+ context windows. It covers import rules, the full component catalog with prop
310
+ types, and copy-ready usage patterns.
309
311
 
310
- ### Integration Patterns
312
+ ### Option A — Point Claude's project context at the file
311
313
 
312
- - Form components should be used within a `FormWrapper` component
313
- - Dialog components typically need `open` and `onOpenChange` props to be controlled
314
- - All components support `className` for custom styling with Tailwind
315
- - Many components have variants that can be accessed via the `variant` prop
316
- - Component styles are customizable through CSS variables in `:root`
317
- - All UI components are responsive and support various screen sizes
314
+ Add this to your project's `.claude/CLAUDE.md` (or create one):
315
+
316
+ ```markdown
317
+ ## UI Library Context
318
+
319
+ This project uses `@customafk/lunas-ui`. Read the library reference before writing components:
320
+
321
+ @node_modules/@customafk/lunas-ui/ai-docs.md
322
+ ```
323
+
324
+ Claude Code will attach the file automatically to every conversation in the project.
325
+
326
+ ### Option B — Add to your AI tooling's context source list
327
+
328
+ For Cursor `.cursorrules`, Copilot `codeGeneration.instructions`, or an MCP RAG server, add:
329
+
330
+ ```
331
+ node_modules/@customafk/lunas-ui/ai-docs.md
332
+ ```
333
+
334
+ ### Option C — One-shot reference in chat
335
+
336
+ ```
337
+ I'm using @customafk/lunas-ui.
338
+ Read node_modules/@customafk/lunas-ui/ai-docs.md for import paths and usage.
339
+ ```
340
+
341
+ ### Key rules the AI must follow
342
+
343
+ 1. **Named imports only** — `import { Button } from '@customafk/lunas-ui/ui/button'`
344
+ 2. **No default imports** — the library has no default exports
345
+ 3. **Use full category paths** — `…/ui/button`, not `…/button`
346
+ 4. **Import styles in root layout** — `styles/base` + `styles/theme` are required
347
+ 5. **Never import from `@radix-ui/*` directly** — use the lunas-ui wrappers
318
348
 
319
349
  ## 🙋‍♀️ Support
320
350
 
package/ai-docs.md ADDED
@@ -0,0 +1,419 @@
1
+ # @customafk/lunas-ui — AI Reference Documentation
2
+
3
+ > Optimized for AI agents (Claude, GitHub Copilot, Cursor, etc.).
4
+ > Add a reference to this file in your project's CLAUDE.md or AI context config
5
+ > so the assistant always has accurate import paths, prop types, and usage patterns.
6
+
7
+ ## Package Identity
8
+
9
+ - **Package name:** `@customafk/lunas-ui`
10
+ - **Framework:** React 19+ · TypeScript 5+
11
+ - **Styling:** TailwindCSS v4 (CSS custom properties — stylesheet import is required)
12
+ - **Radix UI:** primitives are wrapped — always import from `@customafk/lunas-ui/*`, never from `@radix-ui/*`
13
+
14
+ ---
15
+
16
+ ## CRITICAL: Required Stylesheet Imports
17
+
18
+ Import these in your root layout **before** any component renders.
19
+ Without them all color tokens and base styles will be absent.
20
+
21
+ ```tsx
22
+ import '@customafk/lunas-ui/styles/base';
23
+ import '@customafk/lunas-ui/styles/theme';
24
+ // Optional: enhanced typographic defaults
25
+ import '@customafk/lunas-ui/styles/typography';
26
+ ```
27
+
28
+ ---
29
+
30
+ ## Import Rules (STRICT)
31
+
32
+ ### Rule 1 — Named imports only; never default imports
33
+
34
+ ```tsx
35
+ // ✅ CORRECT
36
+ import { Button } from '@customafk/lunas-ui/ui/button';
37
+ import type { ButtonProps } from '@customafk/lunas-ui/ui/button';
38
+
39
+ // ❌ WRONG — no default export exists
40
+ import Button from '@customafk/lunas-ui/ui/button';
41
+ ```
42
+
43
+ ### Rule 2 — Use the exact published export paths
44
+
45
+ Each component has its own path that matches the `package.json` exports map exactly.
46
+
47
+ ```tsx
48
+ // ✅ CORRECT
49
+ import { Button } from '@customafk/lunas-ui/ui/button';
50
+ import { ConfirmDialog } from '@customafk/lunas-ui/dialogs/confirm-dialog';
51
+ import { Flex } from '@customafk/lunas-ui/layouts/flex';
52
+ import { UserDataDisplay } from '@customafk/lunas-ui/data-display/user';
53
+ import { Description } from '@customafk/lunas-ui/features/descriptions';
54
+
55
+ // ❌ WRONG — internal source path, not shipped
56
+ import { Button } from '@customafk/lunas-ui/packages/components/ui/button';
57
+
58
+ // ❌ WRONG — missing category prefix
59
+ import { Button } from '@customafk/lunas-ui/button';
60
+ ```
61
+
62
+ ### Rule 3 — Never import Radix UI primitives directly
63
+
64
+ ```tsx
65
+ // ❌ WRONG
66
+ import { AlertDialog } from '@radix-ui/react-alert-dialog';
67
+
68
+ // ✅ CORRECT — use the lunas-ui wrapper
69
+ import { AlertDialog } from '@customafk/lunas-ui/ui/alert-dialog';
70
+ ```
71
+
72
+ ### Rule 4 — Separate type and value imports
73
+
74
+ ```tsx
75
+ import { Statistic } from '@customafk/lunas-ui/data-display/statistic';
76
+ import type { StatisticProps } from '@customafk/lunas-ui/data-display/statistic';
77
+ ```
78
+
79
+ ---
80
+
81
+ ## Component Catalog
82
+
83
+ ### UI Primitives — `@customafk/lunas-ui/ui/*`
84
+
85
+ | Component(s) | Full import path | Key props |
86
+ |---|---|---|
87
+ | `Button` | `.../ui/button` | `variant`, `color`, `size`, `isLoading`, `asChild` |
88
+ | `Input` | `.../ui/input` | All native `<input>` props |
89
+ | `Textarea` | `.../ui/textarea` | All native `<textarea>` props |
90
+ | `Label` | `.../ui/label` | `htmlFor` |
91
+ | `Checkbox` | `.../ui/checkbox` | `checked`, `onCheckedChange` |
92
+ | `Switch` | `.../ui/switch` | `checked`, `onCheckedChange` |
93
+ | `RadioGroup` + `RadioGroupItem` | `.../ui/radio-group` | `value`, `onValueChange` |
94
+ | `Select` + `SelectTrigger` + `SelectContent` + `SelectItem` + `SelectValue` | `.../ui/select` | Radix composition |
95
+ | `MultiSelect` | `.../ui/multi-select` | Multi-value select |
96
+ | `Dialog` + sub-components | `.../ui/dialog` | `open`, `onOpenChange` |
97
+ | `AlertDialog` + sub-components | `.../ui/alert-dialog` | `open`, `onOpenChange` |
98
+ | `Sheet` + `SheetContent` | `.../ui/sheet` | `side`: `left`\|`right`\|`top`\|`bottom` |
99
+ | `Drawer` + `DrawerContent` | `.../ui/drawer` | Mobile-first sheet |
100
+ | `Popover` + `PopoverContent` + `PopoverTrigger` | `.../ui/popover` | `open`, `onOpenChange` |
101
+ | `Tooltip` + `TooltipContent` + `TooltipTrigger` + `TooltipProvider` | `.../ui/tooltip` | Wrap app with `TooltipProvider` |
102
+ | `Badge` | `.../ui/badge` | `variant`, `color` |
103
+ | `Card` + `CardHeader` + `CardContent` + `CardFooter` + `CardTitle` + `CardDescription` + `CardAction` | `.../ui/card` | Composition |
104
+ | `Avatar` + `AvatarImage` + `AvatarFallback` | `.../ui/avatar` | — |
105
+ | `Tabs` + `TabsList` + `TabsTrigger` + `TabsContent` | `.../ui/tabs` | `defaultValue`, `value`, `onValueChange` |
106
+ | `Table` + `TableHeader` + `TableBody` + `TableRow` + `TableHead` + `TableCell` | `.../ui/table` | Semantic HTML table |
107
+ | `Calendar` | `.../ui/calendar` | `mode`, `selected`, `onSelect` |
108
+ | `Command` + sub-components | `.../ui/command` | Command palette |
109
+ | `Separator` | `.../ui/separator` | `orientation`: `horizontal`\|`vertical` |
110
+ | `ScrollArea` | `.../ui/scroll-area` | `className` for fixed height |
111
+ | `Skeleton` | `.../ui/skeleton` | `className` for shape |
112
+ | `Spinner` | `.../ui/spinner` | `size`, `className` |
113
+ | `Progress` | `.../ui/progress` | `value` (0–100) |
114
+ | `Slider` | `.../ui/slider` | `value`, `min`, `max`, `step` |
115
+ | `Sonner` | `.../ui/sonner` | Toast — use `toast()` from `sonner` package |
116
+ | `Pagination` | `.../ui/pagination` | Page navigation |
117
+ | `FileUploader` | `.../ui/file-uploader` | `onUpload`, `accept`, `maxSize` |
118
+ | `ButtonGroup` | `.../ui/button-group` | Groups buttons |
119
+ | `DropdownMenu` + sub-components | `.../ui/dropdown-menu` | — |
120
+ | `ContextMenu` | `.../ui/context-menu` | Right-click menu |
121
+ | `HoverCard` + sub-components | `.../ui/hover-card` | — |
122
+ | `Collapsible` + sub-components | `.../ui/collapsible` | — |
123
+ | `Breadcrumb` | `.../ui/breadcrumb` | — |
124
+ | `Carousel` + sub-components | `.../ui/carousel` | — |
125
+ | `Toggle` | `.../ui/toggle` | — |
126
+ | `ToggleGroup` + `ToggleGroupItem` | `.../ui/toggle-group` | — |
127
+ | `Resizable` + sub-components | `.../ui/resizable` | — |
128
+ | `InputOTP` | `.../ui/input-otp` | OTP / PIN input |
129
+ | `Sidebar` | `.../ui/sidebar` | App sidebar shell |
130
+
131
+ #### Button — Complete Prop Reference
132
+
133
+ ```tsx
134
+ interface ButtonProps extends Omit<React.ComponentProps<'button'>, 'color'> {
135
+ variant?: 'default' | 'outline' | 'ghost' | 'link' | 'icon' | 'destructive'; // default: 'default'
136
+ color?: 'primary' | 'success' | 'danger' | 'warning' | 'muted'; // default: 'primary'
137
+ size?: 'sm' | 'default' | 'lg' | 'icon'; // default: 'default'
138
+ isLoading?: boolean; // Shows spinner + auto-disables. default: false
139
+ asChild?: boolean; // Renders child via Radix Slot. default: false
140
+ innerClassName?: string; // Classes on inner flex wrapper
141
+ }
142
+ ```
143
+
144
+ ---
145
+
146
+ ### Specialized UI Buttons — `@customafk/lunas-ui/ui/buttons/*`
147
+
148
+ | Component | Full import path | Purpose |
149
+ |---|---|---|
150
+ | `AddNewButton` | `.../ui/buttons/add-new` | Standard "+ Add new" CTA |
151
+ | `EditButton` | `.../ui/buttons/edit` | Edit / pencil icon |
152
+ | `RefreshButton` | `.../ui/buttons/refresh` | Reload action |
153
+ | `TrashButton` | `.../ui/buttons/trash` | Delete action |
154
+ | `UploadImageButton` | `.../ui/buttons/upload-image` | Image upload trigger |
155
+ | `SearchInput` | `.../ui/inputs/search-input` | Search field with icon |
156
+
157
+ ---
158
+
159
+ ### Layout Components
160
+
161
+ | Component | Full import path | Key Props |
162
+ |---|---|---|
163
+ | `Flex` | `.../layouts/flex` | `vertical`, `wrap`, `gap`, `justify`, `align`, `padding`, `margin`, `width` |
164
+ | `Grid` | `.../layouts/grid` | Children grid container |
165
+ | `CmsLayout` | `.../layouts/cms-layout` | App shell with sidebar + header |
166
+ | `PaymentLayout` | `.../layouts/payment-layout` | Checkout page layout |
167
+
168
+ #### Flex — Complete Prop Reference
169
+
170
+ ```tsx
171
+ type FlexProps = {
172
+ vertical?: boolean; // flex-col when true | flex-row when false (default: false)
173
+ wrap?: boolean; // flex-wrap vs flex-nowrap (default: true)
174
+ gap?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl'; // default: 'xs'
175
+ justify?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly' | 'stretch'; // default: 'start'
176
+ align?: 'start' | 'center' | 'end' | 'baseline' | 'stretch'; // default: 'center'
177
+ padding?: 'none' | 'sm' | 'md' | 'lg' | 'xl'; // default: 'sm'
178
+ margin?: 'none' | 'sm' | 'md' | 'lg' | 'xl'; // default: 'none'
179
+ width?: 'full' | 'auto' | 'fit' | 'screen' | 'min' | 'max' | null; // default: 'fit'
180
+ className?: string;
181
+ };
182
+ ```
183
+
184
+ ---
185
+
186
+ ### Typography
187
+
188
+ | Component | Full import path | Key Props |
189
+ |---|---|---|
190
+ | `Title` | `.../typography/title` | `level` (1–6) → `<h1>`–`<h6>` |
191
+ | `Paragraph` | `.../typography/paragraph` | `variant`, all `<p>` attrs |
192
+
193
+ ---
194
+
195
+ ### Data Display — `@customafk/lunas-ui/data-display/*`
196
+
197
+ Read-only components for formatted entity fields.
198
+
199
+ | Component | Full import path | Key Props |
200
+ |---|---|---|
201
+ | `UserDataDisplay` | `.../data-display/user` | `uuid`, `username`, `email` |
202
+ | `DateDisplay` | `.../data-display/date` | `date` (ISO string or `Date`), `format?`, `showTime?` |
203
+ | `DateTooltip` | `.../data-display/date-tooltip` | `date` — relative label + full date on hover |
204
+ | `NameDisplay` | `.../data-display/name` | `name` |
205
+ | `PhoneNumberDisplay` | `.../data-display/phone-number` | `value` |
206
+ | `CountryDisplay` | `.../data-display/country` | `country` (ISO 3166-1 alpha-2) |
207
+ | `RoleBadge` | `.../data-display/role-badge` | `status` (role / status string) |
208
+ | `Statistic` | `.../data-display/statistic` | `label`, `value`, `trend?` |
209
+ | `EmptyDisplay` | `.../data-display/empty` | `label?` |
210
+ | `DataList` + `DataListItem` | `.../data-display/data-list` | `DataListItem`: `label` + `value` |
211
+
212
+ ---
213
+
214
+ ### Dialogs — `@customafk/lunas-ui/dialogs/*`
215
+
216
+ All dialogs are **controlled** — manage `open` state in the parent.
217
+
218
+ | Component | Full import path | Key Props |
219
+ |---|---|---|
220
+ | `ConfirmDialog` | `.../dialogs/confirm-dialog` | `open`, `title`, `description`, `onConfirm`, `isLoading`, `submitText`, `cancelText` |
221
+ | `LoadingDialog` | `.../dialogs/loading-dialog` | `open`, `onOpenChange` |
222
+ | `ErrorDialog` | `.../dialogs/error-dialog` | `open`, `title`, `onOpenChange`, `children` |
223
+ | `DetailDialog` | `.../dialogs/detail-dialog` | `open`, `title`, `isLoading?`, `createdAt?`, `sidebar?`, `onOpenChange` |
224
+
225
+ #### ConfirmDialog — Complete Prop Reference
226
+
227
+ ```tsx
228
+ type ConfirmDialogProps = {
229
+ open?: boolean;
230
+ isLoading?: boolean; // default: false
231
+ title: string; // required
232
+ description: string; // required
233
+ cancelText?: string; // default: 'Cancel'
234
+ submitText?: string; // default: 'Confirm'
235
+ descriptionClassName?: string;
236
+ onOpenChange?: (open: boolean) => void;
237
+ onConfirm?: () => Promise<void> | void; // async-safe
238
+ };
239
+ ```
240
+
241
+ ---
242
+
243
+ ### Feature Components
244
+
245
+ #### Descriptions — `@customafk/lunas-ui/features/descriptions`
246
+
247
+ ```tsx
248
+ import {
249
+ Description, // Outer container (border, shadow, rounded)
250
+ DescriptionHeader, // title, description?, extra?, className?
251
+ DescriptionSection, // title? — labeled horizontal divider
252
+ DescriptionItem, // label, labelColSpan? (default 3/12),
253
+ // orientation? ('horizontal'|'vertical'), action?
254
+ } from '@customafk/lunas-ui/features/descriptions';
255
+ ```
256
+
257
+ Also exports typed value cells:
258
+ `DescriptionBadge`, `DescriptionDate`, `DescriptionName`, `DescriptionEmpty`,
259
+ `DescriptionStatistic`, `DescriptionNumberPhone`, `DescriptionImages`, `DescriptionLongtext`.
260
+
261
+ #### Tables — `@customafk/lunas-ui/features/tables`
262
+
263
+ TanStack React Table v8 wrapper with column helpers, filter components, and table context provider.
264
+
265
+ #### TanStack Form — `@customafk/lunas-ui/features/tanstack-form`
266
+
267
+ ```tsx
268
+ import {
269
+ useTanStackForm, // Form factory hook — call once per form definition
270
+ withTanStackForm, // HOC: connect a component to the form context
271
+ withTanStackFieldGroup, // HOC: wrap a group of related fields
272
+ } from '@customafk/lunas-ui/features/tanstack-form';
273
+ // Field components (TextField, ComboboxField, etc.) are registered in the
274
+ // factory — use them via the form's .AppField slot, not as direct imports.
275
+ ```
276
+
277
+ #### Search Modal — `@customafk/lunas-ui/features/search-modal`
278
+
279
+ ```tsx
280
+ import { SearchModal } from '@customafk/lunas-ui/features/search-modal';
281
+ // Self-contained command-palette dialog — no props required.
282
+ ```
283
+
284
+ ---
285
+
286
+ ### Cards
287
+
288
+ | Component | Full import path | Key Props |
289
+ |---|---|---|
290
+ | `SimpleCard` | `.../cards/simple-card` | `title`, `description?`, `action?`, `footer?` |
291
+ | `ProductCard` | `.../cards/product-card` | `id`, `name`, `thumbnail`, `price` |
292
+ | `GridProductCard` | `.../cards/grid-product-card` | `id`, `name`, `thumbnail`, `price` |
293
+
294
+ ### Page Components
295
+
296
+ | Component | Full import path | Purpose |
297
+ |---|---|---|
298
+ | `NotFound` | `.../pages/NotFound` | 404 page |
299
+ | `NotAuthorized` | `.../pages/NotAuthorized` | 403 / access denied |
300
+ | `FeatureDeveloping` | `.../pages/FeatureDeveloping` | Coming-soon placeholder |
301
+ | `FeatureFixing` | `.../pages/FeatureFixing` | Maintenance-mode page |
302
+
303
+ ---
304
+
305
+ ## Usage Patterns (RAG Examples)
306
+
307
+ ### Pattern 1 — Confirm dialog before a destructive mutation
308
+
309
+ ```tsx
310
+ import { useState } from 'react';
311
+ import { Button } from '@customafk/lunas-ui/ui/button';
312
+ import { ConfirmDialog } from '@customafk/lunas-ui/dialogs/confirm-dialog';
313
+
314
+ export function DeleteUserButton({ userId, onDeleted }: {
315
+ userId: string;
316
+ onDeleted: () => void;
317
+ }) {
318
+ const [open, setOpen] = useState(false);
319
+ const [isPending, setIsPending] = useState(false);
320
+
321
+ const handleConfirm = async () => {
322
+ setIsPending(true);
323
+ try {
324
+ await deleteUser(userId);
325
+ setOpen(false);
326
+ onDeleted();
327
+ } finally {
328
+ setIsPending(false);
329
+ }
330
+ };
331
+
332
+ return (
333
+ <>
334
+ <Button variant="outline" color="danger" onClick={() => setOpen(true)}>
335
+ Delete user
336
+ </Button>
337
+ <ConfirmDialog
338
+ open={open}
339
+ title="Delete user?"
340
+ description="This action is permanent and cannot be undone."
341
+ submitText="Yes, delete"
342
+ isLoading={isPending}
343
+ onOpenChange={setOpen}
344
+ onConfirm={handleConfirm}
345
+ />
346
+ </>
347
+ );
348
+ }
349
+ ```
350
+
351
+ ### Pattern 2 — Entity detail panel with Description + Data Display
352
+
353
+ ```tsx
354
+ import {
355
+ Description,
356
+ DescriptionHeader,
357
+ DescriptionItem,
358
+ DescriptionSection,
359
+ } from '@customafk/lunas-ui/features/descriptions';
360
+ import { UserDataDisplay } from '@customafk/lunas-ui/data-display/user';
361
+ import { DateDisplay } from '@customafk/lunas-ui/data-display/date';
362
+ import { RoleBadge } from '@customafk/lunas-ui/data-display/role-badge';
363
+ import { Statistic } from '@customafk/lunas-ui/data-display/statistic';
364
+
365
+ export function OrderDetailPanel({ order }: { order: Order }) {
366
+ return (
367
+ <Description>
368
+ <DescriptionHeader title="Order Details" description={`#${order.id}`} />
369
+ <DescriptionSection title="Customer" />
370
+ <DescriptionItem label="Account">
371
+ <UserDataDisplay uuid={order.customer.id} username={order.customer.name} email={order.customer.email} />
372
+ </DescriptionItem>
373
+ <DescriptionItem label="Created at">
374
+ <DateDisplay date={order.createdAt} showTime />
375
+ </DescriptionItem>
376
+ <DescriptionSection title="Order" />
377
+ <DescriptionItem label="Status">
378
+ <RoleBadge status={order.status} />
379
+ </DescriptionItem>
380
+ <DescriptionItem label="Total">
381
+ <Statistic label="VND" value={order.total} />
382
+ </DescriptionItem>
383
+ </Description>
384
+ );
385
+ }
386
+ ```
387
+
388
+ ---
389
+
390
+ ## Semantic Color Tokens (TailwindCSS)
391
+
392
+ | Token | Usage |
393
+ |---|---|
394
+ | `text-text-positive` | Primary body text |
395
+ | `text-text-positive-weak` | Secondary / muted text |
396
+ | `text-text-positive-strong` | Emphasis / heading text |
397
+ | `text-text-positive-muted` | Placeholder / disabled text |
398
+ | `bg-primary` | Primary brand fill |
399
+ | `bg-secondary-muted` | Light gray surface (table headers, label columns) |
400
+ | `bg-card` | Card / panel background |
401
+ | `border-border` | Default border |
402
+ | `border-border-weak` | Subtle border / divider |
403
+ | `text-success` | Positive / success value |
404
+ | `text-danger` | Error / destructive value |
405
+ | `text-warning` | Cautionary value |
406
+
407
+ ---
408
+
409
+ ## Anti-patterns to Avoid
410
+
411
+ | ❌ Don't | ✅ Do instead |
412
+ |---|---|
413
+ | `import Button from '…/ui/button'` | `import { Button } from '…/ui/button'` |
414
+ | `import { Button } from '…/button'` | Include category: `'…/ui/button'` |
415
+ | Import from `@radix-ui/*` directly | Use the lunas-ui wrapper |
416
+ | Skip stylesheet imports | Always import `styles/base` + `styles/theme` |
417
+ | `window.confirm()` for destructive actions | Use `<ConfirmDialog>` |
418
+ | `<div className="flex gap-2">` | Use `<Flex gap="sm">` |
419
+ | Add `disabled` manually during loading | Use `isLoading` on `<Button>` |
@@ -0,0 +1,88 @@
1
+ import * as react_jsx_runtime47 from "react/jsx-runtime";
2
+ import * as class_variance_authority_types13 from "class-variance-authority/types";
3
+ import { VariantProps } from "class-variance-authority";
4
+
5
+ //#region packages/components/ui/alert-variants.d.ts
6
+ /**
7
+ * Alert component variants for styling using class-variance-authority
8
+ */
9
+ declare const alertVariants: (props?: ({
10
+ variant?: "default" | "info" | "success" | "warning" | "destructive" | null | undefined;
11
+ } & class_variance_authority_types13.ClassProp) | undefined) => string;
12
+ type AlertVariantProps = VariantProps<typeof alertVariants>;
13
+ //#endregion
14
+ //#region packages/components/ui/alert.d.ts
15
+ /**
16
+ * Props for the Alert component.
17
+ */
18
+ interface AlertProps extends React.HTMLAttributes<HTMLDivElement>, Omit<AlertVariantProps, 'className'> {
19
+ /**
20
+ * Optional icon to display in the alert; defaults to a variant-appropriate icon when omitted.
21
+ */
22
+ icon?: React.ReactNode;
23
+ /**
24
+ * Whether the alert can be dismissed by the user.
25
+ */
26
+ dismissible?: boolean;
27
+ /**
28
+ * Callback invoked when the dismiss button is clicked.
29
+ */
30
+ onDismiss?: () => void;
31
+ }
32
+ /**
33
+ * Displays a contextual feedback message with optional icon, title, description, and dismiss button.
34
+ *
35
+ * @example
36
+ * ```tsx
37
+ * import { Alert, AlertTitle, AlertDescription } from '@customafk/lunas-ui/ui/alert';
38
+ *
39
+ * <Alert variant="success" dismissible onDismiss={() => setOpen(false)}>
40
+ * <AlertTitle>Saved successfully</AlertTitle>
41
+ * <AlertDescription>Your changes have been saved.</AlertDescription>
42
+ * </Alert>
43
+ * ```
44
+ */
45
+ declare function Alert({
46
+ className,
47
+ variant,
48
+ children,
49
+ icon,
50
+ dismissible,
51
+ onDismiss,
52
+ ...props
53
+ }: AlertProps): react_jsx_runtime47.JSX.Element;
54
+ /**
55
+ * Props for the AlertTitle component.
56
+ */
57
+ interface AlertTitleProps extends React.HTMLAttributes<HTMLDivElement> {
58
+ /**
59
+ * Title text or elements to display.
60
+ */
61
+ children: React.ReactNode;
62
+ }
63
+ /**
64
+ * Renders the bold title line inside an Alert.
65
+ */
66
+ declare function AlertTitle({
67
+ className,
68
+ ...props
69
+ }: AlertTitleProps): react_jsx_runtime47.JSX.Element;
70
+ /**
71
+ * Props for the AlertDescription component.
72
+ */
73
+ interface AlertDescriptionProps extends React.HTMLAttributes<HTMLDivElement> {
74
+ /**
75
+ * Descriptive text or elements displayed below the title.
76
+ */
77
+ children: React.ReactNode;
78
+ }
79
+ /**
80
+ * Renders the supporting body text inside an Alert.
81
+ */
82
+ declare function AlertDescription({
83
+ className,
84
+ ...props
85
+ }: AlertDescriptionProps): react_jsx_runtime47.JSX.Element;
86
+ //#endregion
87
+ export { AlertTitle as a, AlertProps as i, AlertDescription as n, AlertTitleProps as o, AlertDescriptionProps as r, Alert as t };
88
+ //# sourceMappingURL=alert-CA1RS1CG.d.cts.map
@@ -0,0 +1,88 @@
1
+ import * as react_jsx_runtime31 from "react/jsx-runtime";
2
+ import { VariantProps } from "class-variance-authority";
3
+ import * as class_variance_authority_types15 from "class-variance-authority/types";
4
+
5
+ //#region packages/components/ui/alert-variants.d.ts
6
+ /**
7
+ * Alert component variants for styling using class-variance-authority
8
+ */
9
+ declare const alertVariants: (props?: ({
10
+ variant?: "default" | "info" | "success" | "warning" | "destructive" | null | undefined;
11
+ } & class_variance_authority_types15.ClassProp) | undefined) => string;
12
+ type AlertVariantProps = VariantProps<typeof alertVariants>;
13
+ //#endregion
14
+ //#region packages/components/ui/alert.d.ts
15
+ /**
16
+ * Props for the Alert component.
17
+ */
18
+ interface AlertProps extends React.HTMLAttributes<HTMLDivElement>, Omit<AlertVariantProps, 'className'> {
19
+ /**
20
+ * Optional icon to display in the alert; defaults to a variant-appropriate icon when omitted.
21
+ */
22
+ icon?: React.ReactNode;
23
+ /**
24
+ * Whether the alert can be dismissed by the user.
25
+ */
26
+ dismissible?: boolean;
27
+ /**
28
+ * Callback invoked when the dismiss button is clicked.
29
+ */
30
+ onDismiss?: () => void;
31
+ }
32
+ /**
33
+ * Displays a contextual feedback message with optional icon, title, description, and dismiss button.
34
+ *
35
+ * @example
36
+ * ```tsx
37
+ * import { Alert, AlertTitle, AlertDescription } from '@customafk/lunas-ui/ui/alert';
38
+ *
39
+ * <Alert variant="success" dismissible onDismiss={() => setOpen(false)}>
40
+ * <AlertTitle>Saved successfully</AlertTitle>
41
+ * <AlertDescription>Your changes have been saved.</AlertDescription>
42
+ * </Alert>
43
+ * ```
44
+ */
45
+ declare function Alert({
46
+ className,
47
+ variant,
48
+ children,
49
+ icon,
50
+ dismissible,
51
+ onDismiss,
52
+ ...props
53
+ }: AlertProps): react_jsx_runtime31.JSX.Element;
54
+ /**
55
+ * Props for the AlertTitle component.
56
+ */
57
+ interface AlertTitleProps extends React.HTMLAttributes<HTMLDivElement> {
58
+ /**
59
+ * Title text or elements to display.
60
+ */
61
+ children: React.ReactNode;
62
+ }
63
+ /**
64
+ * Renders the bold title line inside an Alert.
65
+ */
66
+ declare function AlertTitle({
67
+ className,
68
+ ...props
69
+ }: AlertTitleProps): react_jsx_runtime31.JSX.Element;
70
+ /**
71
+ * Props for the AlertDescription component.
72
+ */
73
+ interface AlertDescriptionProps extends React.HTMLAttributes<HTMLDivElement> {
74
+ /**
75
+ * Descriptive text or elements displayed below the title.
76
+ */
77
+ children: React.ReactNode;
78
+ }
79
+ /**
80
+ * Renders the supporting body text inside an Alert.
81
+ */
82
+ declare function AlertDescription({
83
+ className,
84
+ ...props
85
+ }: AlertDescriptionProps): react_jsx_runtime31.JSX.Element;
86
+ //#endregion
87
+ export { AlertTitle as a, AlertProps as i, AlertDescription as n, AlertTitleProps as o, AlertDescriptionProps as r, Alert as t };
88
+ //# sourceMappingURL=alert-DDL82_U3.d.mts.map
@@ -0,0 +1,2 @@
1
+ const e=require(`./chunk-Bmb41Sf3.cjs`);let t=require(`lucide-react`),n=require(`react`),r=require(`react/jsx-runtime`),i=require(`@customafk/react-toolkit/utils`),a=require(`class-variance-authority`);const o=(0,a.cva)([`relative grid w-full items-start gap-y-0.5 rounded-lg border px-4 py-3 text-sm`,`grid-cols-[0_1fr]`,`has-[>svg]:grid-cols-[24px_1fr] has-[>svg]:gap-x-3`,`[&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current`,`transition-colors duration-150`],{variants:{variant:{default:`bg-card text-text-positive-strong border-border`,destructive:`bg-danger-bg-subtle text-danger-intense border-danger-border-subtle [&>svg]:text-danger *:data-[slot=alert-description]:text-danger-strong`,warning:`bg-warning-bg-subtle text-warning-intense border-warning-border-subtle [&>svg]:text-warning *:data-[slot=alert-description]:text-warning-strong`,success:`bg-success-bg-subtle text-success-intense border-success-border-subtle [&>svg]:text-success *:data-[slot=alert-description]:text-success-strong`,info:`bg-info-bg-subtle text-info-intense border-info-border-subtle [&>svg]:text-info *:data-[slot=alert-description]:text-info-strong`}},defaultVariants:{variant:`default`}});function s({className:e,variant:a,children:s,icon:c,dismissible:l,onDismiss:u,...d}){let f=(0,n.useMemo)(()=>{if(!c)switch(a){case`destructive`:return(0,r.jsx)(t.AlertCircle,{});case`warning`:return(0,r.jsx)(t.AlertTriangle,{});case`success`:return(0,r.jsx)(t.CheckCircle,{});case`info`:return(0,r.jsx)(t.Info,{});default:return null}return c},[c,a]);return(0,r.jsxs)(`div`,{"data-slot":`alert`,role:`alert`,"data-variant":a,className:(0,i.cn)(o({variant:a}),e),...d,children:[f,s,l&&(0,r.jsx)(`button`,{type:`button`,onClick:u,"aria-label":`Close alert`,className:`absolute top-2 right-2 size-6 rounded-md p-1 opacity-70 transition-opacity duration-100 hover:opacity-100`,"data-slot":`alert-close`,children:(0,r.jsx)(t.X,{size:16})})]})}function c({className:e,...t}){return(0,r.jsx)(`div`,{"data-slot":`alert-title`,className:(0,i.cn)(`col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight`,e),...t})}function l({className:e,...t}){return(0,r.jsx)(`div`,{"data-slot":`alert-description`,className:(0,i.cn)(`text-text-positive-weak col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed`,e),...t})}Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return s}});
2
+ //# sourceMappingURL=alert-DIC1_ymv.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert-DIC1_ymv.cjs","names":["AlertCircle","AlertTriangle","CheckCircle","Info","X"],"sources":["../packages/components/ui/alert-variants.ts","../packages/components/ui/alert.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\n/**\n * Alert component variants for styling using class-variance-authority\n */\nexport const alertVariants = cva(\n [\n 'relative grid w-full items-start gap-y-0.5 rounded-lg border px-4 py-3 text-sm',\n 'grid-cols-[0_1fr]',\n 'has-[>svg]:grid-cols-[24px_1fr] has-[>svg]:gap-x-3',\n '[&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current',\n 'transition-colors duration-150',\n ],\n {\n variants: {\n variant: {\n default: 'bg-card text-text-positive-strong border-border',\n destructive:\n 'bg-danger-bg-subtle text-danger-intense border-danger-border-subtle [&>svg]:text-danger *:data-[slot=alert-description]:text-danger-strong',\n warning:\n 'bg-warning-bg-subtle text-warning-intense border-warning-border-subtle [&>svg]:text-warning *:data-[slot=alert-description]:text-warning-strong',\n success:\n 'bg-success-bg-subtle text-success-intense border-success-border-subtle [&>svg]:text-success *:data-[slot=alert-description]:text-success-strong',\n info: 'bg-info-bg-subtle text-info-intense border-info-border-subtle [&>svg]:text-info *:data-[slot=alert-description]:text-info-strong',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport type AlertVariantProps = VariantProps<typeof alertVariants>;\n","'use client';\n\nimport { useMemo } from 'react';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { AlertCircle, AlertTriangle, CheckCircle, Info, X } from 'lucide-react';\n\nimport { type AlertVariantProps, alertVariants } from './alert-variants';\n\n/**\n * Props for the Alert component.\n */\nexport interface AlertProps extends React.HTMLAttributes<HTMLDivElement>, Omit<AlertVariantProps, 'className'> {\n /**\n * Optional icon to display in the alert; defaults to a variant-appropriate icon when omitted.\n */\n icon?: React.ReactNode;\n /**\n * Whether the alert can be dismissed by the user.\n */\n dismissible?: boolean;\n /**\n * Callback invoked when the dismiss button is clicked.\n */\n onDismiss?: () => void;\n}\n\n/**\n * Displays a contextual feedback message with optional icon, title, description, and dismiss button.\n *\n * @example\n * ```tsx\n * import { Alert, AlertTitle, AlertDescription } from '@customafk/lunas-ui/ui/alert';\n *\n * <Alert variant=\"success\" dismissible onDismiss={() => setOpen(false)}>\n * <AlertTitle>Saved successfully</AlertTitle>\n * <AlertDescription>Your changes have been saved.</AlertDescription>\n * </Alert>\n * ```\n */\nfunction Alert({ className, variant, children, icon, dismissible, onDismiss, ...props }: AlertProps) {\n // Default icons based on variant\n const defaultIcon = useMemo(() => {\n if (!icon) {\n switch (variant) {\n case 'destructive':\n return <AlertCircle />;\n case 'warning':\n return <AlertTriangle />;\n case 'success':\n return <CheckCircle />;\n case 'info':\n return <Info />;\n default:\n return null;\n }\n }\n return icon;\n }, [icon, variant]);\n\n return (\n <div data-slot=\"alert\" role=\"alert\" data-variant={variant} className={cn(alertVariants({ variant }), className)} {...props}>\n {defaultIcon}\n {children}\n {dismissible && (\n <button\n type=\"button\"\n onClick={onDismiss}\n aria-label=\"Close alert\"\n className=\"absolute top-2 right-2 size-6 rounded-md p-1 opacity-70 transition-opacity duration-100 hover:opacity-100\"\n data-slot=\"alert-close\"\n >\n <X size={16} />\n </button>\n )}\n </div>\n );\n}\n\n/**\n * Props for the AlertTitle component.\n */\nexport interface AlertTitleProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Title text or elements to display.\n */\n children: React.ReactNode;\n}\n\n/**\n * Renders the bold title line inside an Alert.\n */\nfunction AlertTitle({ className, ...props }: AlertTitleProps) {\n return <div data-slot=\"alert-title\" className={cn('col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight', className)} {...props} />;\n}\n\n/**\n * Props for the AlertDescription component.\n */\nexport interface AlertDescriptionProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Descriptive text or elements displayed below the title.\n */\n children: React.ReactNode;\n}\n\n/**\n * Renders the supporting body text inside an Alert.\n */\nfunction AlertDescription({ className, ...props }: AlertDescriptionProps) {\n return (\n <div\n data-slot=\"alert-description\"\n className={cn('text-text-positive-weak col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed', className)}\n {...props}\n />\n );\n}\n\nexport { Alert, AlertDescription, AlertTitle };\n"],"mappings":"0MAKA,MAAa,GAAA,EAAA,EAAA,KACX,CACE,iFACA,oBACA,qDACA,8DACA,iCACD,CACD,CACE,SAAU,CACR,QAAS,CACP,QAAS,kDACT,YACE,6IACF,QACE,kJACF,QACE,kJACF,KAAM,mIACP,CACF,CACD,gBAAiB,CACf,QAAS,UACV,CACF,CACF,CCUD,SAAS,EAAM,CAAE,YAAW,UAAS,WAAU,OAAM,cAAa,YAAW,GAAG,GAAqB,CAEnG,IAAM,GAAA,EAAA,EAAA,aAA4B,CAChC,GAAI,CAAC,EACH,OAAQ,EAAR,CACE,IAAK,cACH,OAAO,EAAA,EAAA,KAACA,EAAAA,YAAAA,EAAAA,CAAc,CACxB,IAAK,UACH,OAAO,EAAA,EAAA,KAACC,EAAAA,cAAAA,EAAAA,CAAgB,CAC1B,IAAK,UACH,OAAO,EAAA,EAAA,KAACC,EAAAA,YAAAA,EAAAA,CAAc,CACxB,IAAK,OACH,OAAO,EAAA,EAAA,KAACC,EAAAA,KAAAA,EAAAA,CAAO,CACjB,QACE,OAAO,KAGb,OAAO,GACN,CAAC,EAAM,EAAQ,CAAC,CAEnB,OACE,EAAA,EAAA,MAAC,MAAA,CAAI,YAAU,QAAQ,KAAK,QAAQ,eAAc,EAAS,WAAA,EAAA,EAAA,IAAc,EAAc,CAAE,UAAS,CAAC,CAAE,EAAU,CAAE,GAAI,YAClH,EACA,EACA,IACC,EAAA,EAAA,KAAC,SAAA,CACC,KAAK,SACL,QAAS,EACT,aAAW,cACX,UAAU,4GACV,YAAU,wBAEV,EAAA,EAAA,KAACC,EAAAA,EAAAA,CAAE,KAAM,GAAA,CAAM,EACR,GAEP,CAiBV,SAAS,EAAW,CAAE,YAAW,GAAG,GAA0B,CAC5D,OAAO,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,cAAc,WAAA,EAAA,EAAA,IAAc,8DAA+D,EAAU,CAAE,GAAI,GAAS,CAgB5I,SAAS,EAAiB,CAAE,YAAW,GAAG,GAAgC,CACxE,OACE,EAAA,EAAA,KAAC,MAAA,CACC,YAAU,oBACV,WAAA,EAAA,EAAA,IAAc,mGAAoG,EAAU,CAC5H,GAAI,GACJ"}