@customafk/lunas-ui 0.2.38 → 0.2.39

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 (614) hide show
  1. package/dist/{alert-BbvPwf2x.mjs → alert-BzBDfGk2.js} +1 -1
  2. package/dist/alert-BzBDfGk2.js.map +1 -0
  3. package/dist/{alert-DDxGzOzi.d.cts → alert-CNFuxKp7.d.cts} +5 -5
  4. package/dist/{alert-C-bk-pne.d.mts → alert-DOpQdSIC.d.ts} +7 -7
  5. package/dist/{avatar-fltdRVsJ.mjs → avatar-Hpj8lmux.js} +1 -1
  6. package/dist/avatar-Hpj8lmux.js.map +1 -0
  7. package/dist/{badge-CDGBGq8X.mjs → badge-CRpRXSuO.js} +1 -1
  8. package/dist/badge-CRpRXSuO.js.map +1 -0
  9. package/dist/{badge-IUtmECjN.d.cts → badge-D4c9IlYD.d.cts} +6 -6
  10. package/dist/{badge-lvr8nB_0.d.mts → badge-DowUoI6w.d.ts} +6 -6
  11. package/dist/{button-DhDRMeFA.d.mts → button-D4YMSwqK.d.ts} +6 -6
  12. package/dist/{button-Brw-tmr9.d.cts → button-IMi0bEY_.d.cts} +4 -4
  13. package/dist/button-LMMbL-uH.js +2 -0
  14. package/dist/button-LMMbL-uH.js.map +1 -0
  15. package/dist/{button.variants-DkMqWB8G.mjs → button.variants-CoSpd71B.js} +1 -1
  16. package/dist/button.variants-CoSpd71B.js.map +1 -0
  17. package/dist/calendar-DzPt7b6k.js +2 -0
  18. package/dist/calendar-DzPt7b6k.js.map +1 -0
  19. package/dist/cards/{grid-product-card.d.mts → grid-product-card.d.ts} +1 -1
  20. package/dist/cards/grid-product-card.js +2 -0
  21. package/dist/cards/grid-product-card.js.map +1 -0
  22. package/dist/cards/{product-card.d.mts → product-card.d.ts} +1 -1
  23. package/dist/cards/product-card.js +2 -0
  24. package/dist/cards/product-card.js.map +1 -0
  25. package/dist/cards/{simple-card.d.mts → simple-card.d.ts} +1 -1
  26. package/dist/cards/simple-card.js +2 -0
  27. package/dist/cards/simple-card.js.map +1 -0
  28. package/dist/{checkbox-Cat3i08X.mjs → checkbox-DLGDoU-1.js} +1 -1
  29. package/dist/checkbox-DLGDoU-1.js.map +1 -0
  30. package/dist/{close-_UHFeiLS.mjs → close-C0PdZGxr.js} +1 -1
  31. package/dist/close-C0PdZGxr.js.map +1 -0
  32. package/dist/cms-layout-tPwrgJZc.js +2 -0
  33. package/dist/cms-layout-tPwrgJZc.js.map +1 -0
  34. package/dist/command-2gUejA6g.js +2 -0
  35. package/dist/command-2gUejA6g.js.map +1 -0
  36. package/dist/data-display/{country.d.mts → country.d.ts} +2 -2
  37. package/dist/data-display/country.js +2 -0
  38. package/dist/data-display/country.js.map +1 -0
  39. package/dist/data-display/{data-list.d.mts → data-list.d.ts} +1 -1
  40. package/dist/data-display/{data-list.mjs → data-list.js} +1 -1
  41. package/dist/data-display/data-list.js.map +1 -0
  42. package/dist/data-display/{date-tooltip.d.mts → date-tooltip.d.ts} +1 -1
  43. package/dist/data-display/date-tooltip.js +2 -0
  44. package/dist/data-display/date-tooltip.js.map +1 -0
  45. package/dist/data-display/{date.d.mts → date.d.ts} +1 -1
  46. package/dist/data-display/date.js +1 -0
  47. package/dist/data-display/{empty.d.mts → empty.d.ts} +1 -1
  48. package/dist/data-display/{empty.mjs → empty.js} +1 -1
  49. package/dist/data-display/empty.js.map +1 -0
  50. package/dist/data-display/{name.d.mts → name.d.ts} +1 -1
  51. package/dist/data-display/name.js +2 -0
  52. package/dist/data-display/name.js.map +1 -0
  53. package/dist/data-display/{phone-number.d.mts → phone-number.d.ts} +1 -1
  54. package/dist/data-display/phone-number.js +2 -0
  55. package/dist/data-display/phone-number.js.map +1 -0
  56. package/dist/data-display/{role-badge.d.mts → role-badge.d.ts} +2 -2
  57. package/dist/data-display/role-badge.js +2 -0
  58. package/dist/data-display/role-badge.js.map +1 -0
  59. package/dist/data-display/statistic.d.cts +3 -3
  60. package/dist/data-display/{statistic.d.mts → statistic.d.ts} +4 -4
  61. package/dist/data-display/statistic.js +1 -0
  62. package/dist/data-display/{user.d.mts → user.d.ts} +1 -1
  63. package/dist/data-display/user.js +1 -0
  64. package/dist/{date-fY3sUcLp.mjs → date-BIqCFM1Z.js} +1 -1
  65. package/dist/date-BIqCFM1Z.js.map +1 -0
  66. package/dist/{dialog-CsltUGHB.d.mts → dialog-AcOtFuF4.d.ts} +12 -12
  67. package/dist/{dialog-D0zfwr8i.d.cts → dialog-BLjShZci.d.cts} +12 -12
  68. package/dist/dialog-CmutQ3rp.js +2 -0
  69. package/dist/dialog-CmutQ3rp.js.map +1 -0
  70. package/dist/dialogs/{confirm-dialog.d.mts → confirm-dialog.d.ts} +1 -1
  71. package/dist/dialogs/confirm-dialog.js +2 -0
  72. package/dist/dialogs/confirm-dialog.js.map +1 -0
  73. package/dist/dialogs/detail-dialog/components/sidebar.d.cts +24 -24
  74. package/dist/dialogs/detail-dialog/components/{sidebar.d.mts → sidebar.d.ts} +29 -29
  75. package/dist/dialogs/detail-dialog/components/sidebar.js +1 -0
  76. package/dist/dialogs/detail-dialog/{index.d.mts → index.d.ts} +1 -1
  77. package/dist/dialogs/detail-dialog/index.js +2 -0
  78. package/dist/dialogs/detail-dialog/index.js.map +1 -0
  79. package/dist/dialogs/{error-dialog.d.mts → error-dialog.d.ts} +1 -1
  80. package/dist/dialogs/error-dialog.js +2 -0
  81. package/dist/dialogs/error-dialog.js.map +1 -0
  82. package/dist/dialogs/{loading-dialog.d.mts → loading-dialog.d.ts} +1 -1
  83. package/dist/dialogs/loading-dialog.js +2 -0
  84. package/dist/dialogs/loading-dialog.js.map +1 -0
  85. package/dist/{dist-DVrfqn8H.mjs → dist-EPxjIRJp.js} +1 -1
  86. package/dist/dist-EPxjIRJp.js.map +1 -0
  87. package/dist/{drawer-CMD7JWH8.mjs → drawer-B3qXaN5p.js} +1 -1
  88. package/dist/drawer-B3qXaN5p.js.map +1 -0
  89. package/dist/{dropdown-menu-BWhiVsEf.mjs → dropdown-menu-DeHCVyby.js} +1 -1
  90. package/dist/dropdown-menu-DeHCVyby.js.map +1 -0
  91. package/dist/features/descriptions/index.d.cts +1 -1
  92. package/dist/features/descriptions/{index.d.mts → index.d.ts} +7 -7
  93. package/dist/features/descriptions/index.js +2 -0
  94. package/dist/features/descriptions/index.js.map +1 -0
  95. package/dist/features/search-modal/index.d.cts +2 -2
  96. package/dist/features/search-modal/{index.d.mts → index.d.ts} +3 -3
  97. package/dist/features/search-modal/index.js +1 -0
  98. package/dist/features/tables/index.d.cts +1 -1
  99. package/dist/features/tables/{index.d.mts → index.d.ts} +2 -2
  100. package/dist/features/tables/index.js +1 -0
  101. package/dist/features/tanstack-form/index.d.cts +1 -1
  102. package/dist/features/tanstack-form/{index.d.mts → index.d.ts} +1 -1
  103. package/dist/features/tanstack-form/index.js +1 -0
  104. package/dist/features/text-editor/index.d.cts +1 -1
  105. package/dist/features/text-editor/{index.d.mts → index.d.ts} +1 -1
  106. package/dist/features/text-editor/index.js +1 -0
  107. package/dist/field-DpoKF1nY.js +2 -0
  108. package/dist/field-DpoKF1nY.js.map +1 -0
  109. package/dist/{flex-B6YSJzGe.mjs → flex-CinRrgEy.js} +1 -1
  110. package/dist/flex-CinRrgEy.js.map +1 -0
  111. package/dist/{heading-De4Pn3mZ.mjs → heading-Bz-hSatD.js} +1 -1
  112. package/dist/heading-Bz-hSatD.js.map +1 -0
  113. package/dist/image-BpTuF_1w.js +2 -0
  114. package/dist/image-BpTuF_1w.js.map +1 -0
  115. package/dist/{index-BuNzvvj3.d.mts → index-BDMEeMn4.d.ts} +31 -31
  116. package/dist/{index-SMYnpHIM.d.mts → index-BiAWxLAj.d.ts} +330 -330
  117. package/dist/{index-Cm62M0Ft.d.mts → index-BlQGXGqt.d.ts} +1 -1
  118. package/dist/{index-9eog5ilY.d.cts → index-BxoQxUnW.d.cts} +2 -2
  119. package/dist/{index-CG8iS6qj.d.cts → index-C1WfBa-T.d.ts} +3 -3
  120. package/dist/{index-DI8qmezw.d.mts → index-Du_HLRsN.d.cts} +7 -7
  121. package/dist/{index-DsD83ZN8.d.cts → index-gSP59hja.d.cts} +8 -8
  122. package/dist/index.d.cts +8 -8
  123. package/dist/{index.d.mts → index.d.ts} +92 -92
  124. package/dist/index.js +1 -0
  125. package/dist/{input-DvkEND5a.d.cts → input-Aa-GQW2V.d.cts} +6 -6
  126. package/dist/{input-BFtFMzRG.d.mts → input-B1Wc5jsb.d.ts} +6 -6
  127. package/dist/{input-NJP2wQOm.mjs → input-DAfP6LZ7.js} +1 -1
  128. package/dist/input-DAfP6LZ7.js.map +1 -0
  129. package/dist/{label-CUCpwS5D.mjs → label-B8cAG2kc.js} +1 -1
  130. package/dist/label-B8cAG2kc.js.map +1 -0
  131. package/dist/layouts/cms-layout/index.d.ts +2 -0
  132. package/dist/layouts/cms-layout/index.js +1 -0
  133. package/dist/layouts/flex.d.cts +6 -6
  134. package/dist/layouts/{flex.d.mts → flex.d.ts} +7 -7
  135. package/dist/layouts/flex.js +1 -0
  136. package/dist/layouts/{grid.d.mts → grid.d.ts} +1 -1
  137. package/dist/layouts/{grid.mjs → grid.js} +1 -1
  138. package/dist/layouts/grid.js.map +1 -0
  139. package/dist/layouts/payment-layout/{index.d.mts → index.d.ts} +1 -1
  140. package/dist/layouts/payment-layout/index.js +1 -0
  141. package/dist/pages/FeatureDeveloping.d.cts +2 -2
  142. package/dist/pages/{FeatureDeveloping.d.mts → FeatureDeveloping.d.ts} +3 -3
  143. package/dist/pages/FeatureDeveloping.js +2 -0
  144. package/dist/pages/FeatureDeveloping.js.map +1 -0
  145. package/dist/pages/FeatureFixing.d.cts +2 -2
  146. package/dist/pages/{FeatureFixing.d.mts → FeatureFixing.d.ts} +3 -3
  147. package/dist/pages/FeatureFixing.js +2 -0
  148. package/dist/pages/FeatureFixing.js.map +1 -0
  149. package/dist/pages/LoginPage.d.cts +2 -2
  150. package/dist/pages/{LoginPage.d.mts → LoginPage.d.ts} +3 -3
  151. package/dist/pages/LoginPage.js +2 -0
  152. package/dist/pages/LoginPage.js.map +1 -0
  153. package/dist/pages/NotAuthorized.d.cts +2 -2
  154. package/dist/pages/{NotAuthorized.d.mts → NotAuthorized.d.ts} +3 -3
  155. package/dist/pages/NotAuthorized.js +2 -0
  156. package/dist/pages/NotAuthorized.js.map +1 -0
  157. package/dist/pages/NotFound.d.cts +2 -2
  158. package/dist/pages/{NotFound.d.mts → NotFound.d.ts} +3 -3
  159. package/dist/pages/NotFound.js +2 -0
  160. package/dist/pages/NotFound.js.map +1 -0
  161. package/dist/pages/RegisterPage.d.cts +2 -2
  162. package/dist/pages/{RegisterPage.d.mts → RegisterPage.d.ts} +3 -3
  163. package/dist/pages/RegisterPage.js +2 -0
  164. package/dist/pages/RegisterPage.js.map +1 -0
  165. package/dist/pages/VerifyEmailPage.d.cts +2 -2
  166. package/dist/pages/{VerifyEmailPage.d.mts → VerifyEmailPage.d.ts} +3 -3
  167. package/dist/pages/VerifyEmailPage.js +2 -0
  168. package/dist/pages/VerifyEmailPage.js.map +1 -0
  169. package/dist/{paragraph-DYLaQtTV.mjs → paragraph-Cc13ZI4d.js} +1 -1
  170. package/dist/paragraph-Cc13ZI4d.js.map +1 -0
  171. package/dist/payment-layout-giaGvs8T.js +2 -0
  172. package/dist/payment-layout-giaGvs8T.js.map +1 -0
  173. package/dist/popover-6233wU1s.js +2 -0
  174. package/dist/popover-6233wU1s.js.map +1 -0
  175. package/dist/{progress-CLeM0e7Z.mjs → progress-AYknlEgK.js} +1 -1
  176. package/dist/progress-AYknlEgK.js.map +1 -0
  177. package/dist/{radio-group-Y9bhdr55.mjs → radio-group-ImoBjpqZ.js} +1 -1
  178. package/dist/radio-group-ImoBjpqZ.js.map +1 -0
  179. package/dist/{resizable-CpCaSCFB.mjs → resizable-C-M-mu6b.js} +1 -1
  180. package/dist/resizable-C-M-mu6b.js.map +1 -0
  181. package/dist/search-modal-b2AE5WEW.js +2 -0
  182. package/dist/search-modal-b2AE5WEW.js.map +1 -0
  183. package/dist/{select-LlPCZFSF.mjs → select-CryLzZA0.js} +1 -1
  184. package/dist/select-CryLzZA0.js.map +1 -0
  185. package/dist/{separator-D3Gmkxzq.mjs → separator-BM8hA4DP.js} +1 -1
  186. package/dist/separator-BM8hA4DP.js.map +1 -0
  187. package/dist/{sheet-BFlIfNaA.mjs → sheet-DGXXYgWB.js} +1 -1
  188. package/dist/sheet-DGXXYgWB.js.map +1 -0
  189. package/dist/sidebar-BDrsbzo5.js +2 -0
  190. package/dist/sidebar-BDrsbzo5.js.map +1 -0
  191. package/dist/{skeleton-C51IdOfK.mjs → skeleton-DlRDNM97.js} +1 -1
  192. package/dist/skeleton-DlRDNM97.js.map +1 -0
  193. package/dist/{spinner-eClTgHjk.mjs → spinner-C1eamx3w.js} +1 -1
  194. package/dist/spinner-C1eamx3w.js.map +1 -0
  195. package/dist/{statistic-cwLwcukn.mjs → statistic-CYMqAYNc.js} +1 -1
  196. package/dist/statistic-CYMqAYNc.js.map +1 -0
  197. package/dist/{switch-BP7EPatj.mjs → switch-BLHmdRq2.js} +1 -1
  198. package/dist/switch-BLHmdRq2.js.map +1 -0
  199. package/dist/systems/{google.d.mts → google.d.ts} +1 -1
  200. package/dist/systems/{google.mjs → google.js} +1 -1
  201. package/dist/systems/google.js.map +1 -0
  202. package/dist/tables-DWQytYNm.js +4 -0
  203. package/dist/tables-DWQytYNm.js.map +1 -0
  204. package/dist/tanstack-form-YVdm9V01.js +12 -0
  205. package/dist/tanstack-form-YVdm9V01.js.map +1 -0
  206. package/dist/text-editor-WbS7pJJs.js +2 -0
  207. package/dist/text-editor-WbS7pJJs.js.map +1 -0
  208. package/dist/{textarea-7HDXcaK9.mjs → textarea-Bp6VvhiA.js} +1 -1
  209. package/dist/textarea-Bp6VvhiA.js.map +1 -0
  210. package/dist/{tooltip-Dxl5Wa8i.mjs → tooltip-CVIl6Hln.js} +1 -1
  211. package/dist/tooltip-CVIl6Hln.js.map +1 -0
  212. package/dist/{types-YLu40dXY.d.mts → types-BVSfF-1o.d.ts} +1 -1
  213. package/dist/{types-B5nyTWtO.mjs → types-BZqffRVJ.js} +1 -1
  214. package/dist/types-BZqffRVJ.js.map +1 -0
  215. package/dist/typography/paragraph.d.cts +5 -5
  216. package/dist/typography/{paragraph.d.mts → paragraph.d.ts} +6 -6
  217. package/dist/typography/paragraph.js +1 -0
  218. package/dist/typography/{title.d.mts → title.d.ts} +1 -1
  219. package/dist/typography/{title.mjs → title.js} +1 -1
  220. package/dist/typography/title.js.map +1 -0
  221. package/dist/ui/alert-dialog.d.cts +12 -12
  222. package/dist/ui/{alert-dialog.d.mts → alert-dialog.d.ts} +13 -13
  223. package/dist/ui/alert-dialog.js +2 -0
  224. package/dist/ui/alert-dialog.js.map +1 -0
  225. package/dist/ui/alert.d.cts +1 -1
  226. package/dist/ui/{alert.d.mts → alert.d.ts} +1 -1
  227. package/dist/ui/alert.js +1 -0
  228. package/dist/ui/aspect-ratio.d.cts +2 -2
  229. package/dist/ui/{aspect-ratio.d.mts → aspect-ratio.d.ts} +3 -3
  230. package/dist/ui/{aspect-ratio.mjs → aspect-ratio.js} +1 -1
  231. package/dist/ui/aspect-ratio.js.map +1 -0
  232. package/dist/ui/avatar.d.cts +4 -4
  233. package/dist/ui/{avatar.d.mts → avatar.d.ts} +5 -5
  234. package/dist/ui/avatar.js +1 -0
  235. package/dist/ui/badge.d.cts +1 -1
  236. package/dist/ui/badge.d.ts +2 -0
  237. package/dist/ui/badge.js +1 -0
  238. package/dist/ui/breadcrumb.d.cts +8 -8
  239. package/dist/ui/{breadcrumb.d.mts → breadcrumb.d.ts} +9 -9
  240. package/dist/ui/breadcrumb.js +2 -0
  241. package/dist/ui/breadcrumb.js.map +1 -0
  242. package/dist/ui/button-group.d.cts +7 -7
  243. package/dist/ui/{button-group.d.mts → button-group.d.ts} +9 -9
  244. package/dist/ui/button-group.js +2 -0
  245. package/dist/ui/button-group.js.map +1 -0
  246. package/dist/ui/button.d.cts +1 -1
  247. package/dist/ui/button.d.ts +2 -0
  248. package/dist/ui/button.js +1 -0
  249. package/dist/ui/buttons/{add-new.d.mts → add-new.d.ts} +1 -1
  250. package/dist/ui/buttons/add-new.js +2 -0
  251. package/dist/ui/buttons/add-new.js.map +1 -0
  252. package/dist/ui/buttons/{edit.d.mts → edit.d.ts} +1 -1
  253. package/dist/ui/buttons/edit.js +2 -0
  254. package/dist/ui/buttons/edit.js.map +1 -0
  255. package/dist/ui/buttons/{refresh.d.mts → refresh.d.ts} +1 -1
  256. package/dist/ui/buttons/refresh.js +2 -0
  257. package/dist/ui/buttons/refresh.js.map +1 -0
  258. package/dist/ui/buttons/{trash.d.mts → trash.d.ts} +1 -1
  259. package/dist/ui/buttons/trash.js +2 -0
  260. package/dist/ui/buttons/trash.js.map +1 -0
  261. package/dist/ui/buttons/{upload-image.d.mts → upload-image.d.ts} +1 -1
  262. package/dist/ui/buttons/upload-image.js +2 -0
  263. package/dist/ui/buttons/upload-image.js.map +1 -0
  264. package/dist/ui/calendar.d.cts +4 -4
  265. package/dist/ui/{calendar.d.mts → calendar.d.ts} +5 -5
  266. package/dist/ui/calendar.js +1 -0
  267. package/dist/ui/card.d.cts +8 -8
  268. package/dist/ui/{card.d.mts → card.d.ts} +9 -9
  269. package/dist/ui/card.js +2 -0
  270. package/dist/ui/card.js.map +1 -0
  271. package/dist/ui/carousel.d.cts +7 -7
  272. package/dist/ui/{carousel.d.mts → carousel.d.ts} +8 -8
  273. package/dist/ui/carousel.js +2 -0
  274. package/dist/ui/carousel.js.map +1 -0
  275. package/dist/ui/checkbox.d.cts +2 -2
  276. package/dist/ui/{checkbox.d.mts → checkbox.d.ts} +3 -3
  277. package/dist/ui/checkbox.js +1 -0
  278. package/dist/ui/collapsible.d.cts +4 -4
  279. package/dist/ui/{collapsible.d.mts → collapsible.d.ts} +5 -5
  280. package/dist/ui/{collapsible.mjs → collapsible.js} +1 -1
  281. package/dist/ui/collapsible.js.map +1 -0
  282. package/dist/ui/command.d.cts +11 -11
  283. package/dist/ui/{command.d.mts → command.d.ts} +12 -12
  284. package/dist/ui/command.js +1 -0
  285. package/dist/ui/context-menu.d.cts +16 -16
  286. package/dist/ui/{context-menu.d.mts → context-menu.d.ts} +17 -17
  287. package/dist/ui/{context-menu.mjs → context-menu.js} +1 -1
  288. package/dist/ui/context-menu.js.map +1 -0
  289. package/dist/ui/dialog.d.cts +1 -1
  290. package/dist/ui/{dialog.d.mts → dialog.d.ts} +1 -1
  291. package/dist/ui/dialog.js +1 -0
  292. package/dist/ui/drawer.d.cts +11 -11
  293. package/dist/ui/{drawer.d.mts → drawer.d.ts} +12 -12
  294. package/dist/ui/drawer.js +1 -0
  295. package/dist/ui/dropdown-menu.d.cts +16 -16
  296. package/dist/ui/{dropdown-menu.d.mts → dropdown-menu.d.ts} +17 -17
  297. package/dist/ui/dropdown-menu.js +1 -0
  298. package/dist/ui/empty.d.cts +9 -9
  299. package/dist/ui/{empty.d.mts → empty.d.ts} +10 -10
  300. package/dist/ui/{empty.mjs → empty.js} +1 -1
  301. package/dist/ui/empty.js.map +1 -0
  302. package/dist/ui/field.d.cts +24 -24
  303. package/dist/ui/field.d.ts +65 -0
  304. package/dist/ui/field.js +1 -0
  305. package/dist/ui/file-uploader.d.cts +2 -2
  306. package/dist/ui/{file-uploader.d.mts → file-uploader.d.ts} +3 -3
  307. package/dist/ui/file-uploader.js +3 -0
  308. package/dist/ui/file-uploader.js.map +1 -0
  309. package/dist/ui/form.d.cts +10 -10
  310. package/dist/ui/{form.d.mts → form.d.ts} +11 -11
  311. package/dist/ui/form.js +2 -0
  312. package/dist/ui/form.js.map +1 -0
  313. package/dist/ui/hover-card.d.cts +4 -4
  314. package/dist/ui/{hover-card.d.mts → hover-card.d.ts} +5 -5
  315. package/dist/ui/{hover-card.mjs → hover-card.js} +1 -1
  316. package/dist/ui/hover-card.js.map +1 -0
  317. package/dist/ui/{image.d.mts → image.d.ts} +1 -1
  318. package/dist/ui/image.js +1 -0
  319. package/dist/ui/input-otp.d.cts +5 -5
  320. package/dist/ui/{input-otp.d.mts → input-otp.d.ts} +6 -6
  321. package/dist/ui/{input-otp.mjs → input-otp.js} +1 -1
  322. package/dist/ui/input-otp.js.map +1 -0
  323. package/dist/ui/input.d.cts +1 -1
  324. package/dist/ui/input.d.ts +2 -0
  325. package/dist/ui/input.js +1 -0
  326. package/dist/ui/inputs/search-input.d.cts +3 -3
  327. package/dist/ui/inputs/{search-input.d.mts → search-input.d.ts} +4 -4
  328. package/dist/ui/inputs/search-input.js +2 -0
  329. package/dist/ui/inputs/search-input.js.map +1 -0
  330. package/dist/ui/item.d.cts +14 -14
  331. package/dist/ui/{item.d.mts → item.d.ts} +16 -16
  332. package/dist/ui/item.js +2 -0
  333. package/dist/ui/item.js.map +1 -0
  334. package/dist/ui/label.d.cts +2 -2
  335. package/dist/ui/{label.d.mts → label.d.ts} +3 -3
  336. package/dist/ui/label.js +1 -0
  337. package/dist/ui/menubar.d.cts +17 -17
  338. package/dist/ui/{menubar.d.mts → menubar.d.ts} +18 -18
  339. package/dist/ui/{menubar.mjs → menubar.js} +1 -1
  340. package/dist/ui/menubar.js.map +1 -0
  341. package/dist/ui/multi-select.d.cts +2 -2
  342. package/dist/ui/{multi-select.d.mts → multi-select.d.ts} +5 -5
  343. package/dist/ui/multi-select.js +2 -0
  344. package/dist/ui/multi-select.js.map +1 -0
  345. package/dist/ui/navigation-menu.d.cts +11 -11
  346. package/dist/ui/{navigation-menu.d.mts → navigation-menu.d.ts} +12 -12
  347. package/dist/ui/{navigation-menu.mjs → navigation-menu.js} +1 -1
  348. package/dist/ui/navigation-menu.js.map +1 -0
  349. package/dist/ui/pagination.d.cts +9 -9
  350. package/dist/ui/{pagination.d.mts → pagination.d.ts} +10 -10
  351. package/dist/ui/pagination.js +2 -0
  352. package/dist/ui/pagination.js.map +1 -0
  353. package/dist/ui/popover.d.cts +6 -6
  354. package/dist/ui/{popover.d.mts → popover.d.ts} +7 -7
  355. package/dist/ui/popover.js +1 -0
  356. package/dist/ui/progress.d.cts +2 -2
  357. package/dist/ui/{progress.d.mts → progress.d.ts} +3 -3
  358. package/dist/ui/progress.js +1 -0
  359. package/dist/ui/radio-group.d.cts +3 -3
  360. package/dist/ui/{radio-group.d.mts → radio-group.d.ts} +4 -4
  361. package/dist/ui/radio-group.js +1 -0
  362. package/dist/ui/resizable.d.cts +9 -9
  363. package/dist/ui/{resizable.d.mts → resizable.d.ts} +10 -10
  364. package/dist/ui/resizable.js +1 -0
  365. package/dist/ui/scroll-area.d.cts +5 -5
  366. package/dist/ui/{scroll-area.d.mts → scroll-area.d.ts} +6 -6
  367. package/dist/ui/{scroll-area.mjs → scroll-area.js} +1 -1
  368. package/dist/ui/scroll-area.js.map +1 -0
  369. package/dist/ui/select.d.cts +9 -9
  370. package/dist/ui/{select.d.mts → select.d.ts} +10 -10
  371. package/dist/ui/select.js +1 -0
  372. package/dist/ui/separator.d.cts +2 -2
  373. package/dist/ui/{separator.d.mts → separator.d.ts} +3 -3
  374. package/dist/ui/separator.js +1 -0
  375. package/dist/ui/sheet.d.cts +9 -9
  376. package/dist/ui/{sheet.d.mts → sheet.d.ts} +10 -10
  377. package/dist/ui/sheet.js +1 -0
  378. package/dist/ui/skeleton.d.cts +2 -2
  379. package/dist/ui/{skeleton.d.mts → skeleton.d.ts} +3 -3
  380. package/dist/ui/skeleton.js +1 -0
  381. package/dist/ui/slider.d.cts +2 -2
  382. package/dist/ui/{slider.d.mts → slider.d.ts} +3 -3
  383. package/dist/ui/{slider.mjs → slider.js} +1 -1
  384. package/dist/ui/slider.js.map +1 -0
  385. package/dist/ui/sonner.d.cts +2 -2
  386. package/dist/ui/{sonner.d.mts → sonner.d.ts} +3 -3
  387. package/dist/ui/{sonner.mjs → sonner.js} +1 -1
  388. package/dist/ui/sonner.js.map +1 -0
  389. package/dist/ui/spinner.d.cts +2 -2
  390. package/dist/ui/{spinner.d.mts → spinner.d.ts} +3 -3
  391. package/dist/ui/spinner.js +1 -0
  392. package/dist/ui/switch.d.cts +2 -2
  393. package/dist/ui/{switch.d.mts → switch.d.ts} +3 -3
  394. package/dist/ui/switch.js +1 -0
  395. package/dist/ui/table.d.cts +17 -17
  396. package/dist/ui/{table.d.mts → table.d.ts} +18 -18
  397. package/dist/ui/{table.mjs → table.js} +1 -1
  398. package/dist/ui/table.js.map +1 -0
  399. package/dist/ui/tabs.d.cts +5 -5
  400. package/dist/ui/{tabs.d.mts → tabs.d.ts} +6 -6
  401. package/dist/ui/{tabs.mjs → tabs.js} +1 -1
  402. package/dist/ui/tabs.js.map +1 -0
  403. package/dist/ui/textarea.d.cts +2 -2
  404. package/dist/ui/{textarea.d.mts → textarea.d.ts} +3 -3
  405. package/dist/ui/textarea.js +1 -0
  406. package/dist/ui/toggle-group.d.cts +3 -3
  407. package/dist/ui/{toggle-group.d.mts → toggle-group.d.ts} +5 -5
  408. package/dist/ui/toggle-group.js +2 -0
  409. package/dist/ui/toggle-group.js.map +1 -0
  410. package/dist/ui/toggle.d.cts +4 -4
  411. package/dist/ui/{toggle.d.mts → toggle.d.ts} +5 -5
  412. package/dist/ui/{toggle.mjs → toggle.js} +1 -1
  413. package/dist/ui/toggle.js.map +1 -0
  414. package/dist/ui/tooltip.d.cts +5 -5
  415. package/dist/ui/{tooltip.d.mts → tooltip.d.ts} +6 -6
  416. package/dist/ui/tooltip.js +1 -0
  417. package/dist/user-BSpgswEC.js +2 -0
  418. package/dist/user-BSpgswEC.js.map +1 -0
  419. package/package.json +1 -1
  420. package/dist/alert-BbvPwf2x.mjs.map +0 -1
  421. package/dist/avatar-fltdRVsJ.mjs.map +0 -1
  422. package/dist/badge-CDGBGq8X.mjs.map +0 -1
  423. package/dist/button-CCVJTHBI.mjs +0 -2
  424. package/dist/button-CCVJTHBI.mjs.map +0 -1
  425. package/dist/button.variants-DkMqWB8G.mjs.map +0 -1
  426. package/dist/calendar-R866yyd1.mjs +0 -2
  427. package/dist/calendar-R866yyd1.mjs.map +0 -1
  428. package/dist/cards/grid-product-card.mjs +0 -2
  429. package/dist/cards/grid-product-card.mjs.map +0 -1
  430. package/dist/cards/product-card.mjs +0 -2
  431. package/dist/cards/product-card.mjs.map +0 -1
  432. package/dist/cards/simple-card.mjs +0 -2
  433. package/dist/cards/simple-card.mjs.map +0 -1
  434. package/dist/checkbox-Cat3i08X.mjs.map +0 -1
  435. package/dist/close-_UHFeiLS.mjs.map +0 -1
  436. package/dist/cms-layout-DkCR1AfG.mjs +0 -2
  437. package/dist/cms-layout-DkCR1AfG.mjs.map +0 -1
  438. package/dist/command-D6_CSbwJ.mjs +0 -2
  439. package/dist/command-D6_CSbwJ.mjs.map +0 -1
  440. package/dist/data-display/country.mjs +0 -2
  441. package/dist/data-display/country.mjs.map +0 -1
  442. package/dist/data-display/data-list.mjs.map +0 -1
  443. package/dist/data-display/date-tooltip.mjs +0 -2
  444. package/dist/data-display/date-tooltip.mjs.map +0 -1
  445. package/dist/data-display/date.mjs +0 -1
  446. package/dist/data-display/empty.mjs.map +0 -1
  447. package/dist/data-display/name.mjs +0 -2
  448. package/dist/data-display/name.mjs.map +0 -1
  449. package/dist/data-display/phone-number.mjs +0 -2
  450. package/dist/data-display/phone-number.mjs.map +0 -1
  451. package/dist/data-display/role-badge.mjs +0 -2
  452. package/dist/data-display/role-badge.mjs.map +0 -1
  453. package/dist/data-display/statistic.mjs +0 -1
  454. package/dist/data-display/user.mjs +0 -1
  455. package/dist/date-fY3sUcLp.mjs.map +0 -1
  456. package/dist/dialog-CLDnvNH_.mjs +0 -2
  457. package/dist/dialog-CLDnvNH_.mjs.map +0 -1
  458. package/dist/dialogs/confirm-dialog.mjs +0 -2
  459. package/dist/dialogs/confirm-dialog.mjs.map +0 -1
  460. package/dist/dialogs/detail-dialog/components/sidebar.mjs +0 -1
  461. package/dist/dialogs/detail-dialog/index.mjs +0 -2
  462. package/dist/dialogs/detail-dialog/index.mjs.map +0 -1
  463. package/dist/dialogs/error-dialog.mjs +0 -2
  464. package/dist/dialogs/error-dialog.mjs.map +0 -1
  465. package/dist/dialogs/loading-dialog.mjs +0 -2
  466. package/dist/dialogs/loading-dialog.mjs.map +0 -1
  467. package/dist/dist-DVrfqn8H.mjs.map +0 -1
  468. package/dist/drawer-CMD7JWH8.mjs.map +0 -1
  469. package/dist/dropdown-menu-BWhiVsEf.mjs.map +0 -1
  470. package/dist/features/descriptions/index.mjs +0 -2
  471. package/dist/features/descriptions/index.mjs.map +0 -1
  472. package/dist/features/search-modal/index.mjs +0 -1
  473. package/dist/features/tables/index.mjs +0 -1
  474. package/dist/features/tanstack-form/index.mjs +0 -1
  475. package/dist/features/text-editor/index.mjs +0 -1
  476. package/dist/field-dYemS0hQ.mjs +0 -2
  477. package/dist/field-dYemS0hQ.mjs.map +0 -1
  478. package/dist/flex-B6YSJzGe.mjs.map +0 -1
  479. package/dist/heading-De4Pn3mZ.mjs.map +0 -1
  480. package/dist/image-D7OZ13Ib.mjs +0 -2
  481. package/dist/image-D7OZ13Ib.mjs.map +0 -1
  482. package/dist/index.mjs +0 -1
  483. package/dist/input-NJP2wQOm.mjs.map +0 -1
  484. package/dist/label-CUCpwS5D.mjs.map +0 -1
  485. package/dist/layouts/cms-layout/index.d.mts +0 -2
  486. package/dist/layouts/cms-layout/index.mjs +0 -1
  487. package/dist/layouts/flex.mjs +0 -1
  488. package/dist/layouts/grid.mjs.map +0 -1
  489. package/dist/layouts/payment-layout/index.mjs +0 -1
  490. package/dist/pages/FeatureDeveloping.mjs +0 -2
  491. package/dist/pages/FeatureDeveloping.mjs.map +0 -1
  492. package/dist/pages/FeatureFixing.mjs +0 -2
  493. package/dist/pages/FeatureFixing.mjs.map +0 -1
  494. package/dist/pages/LoginPage.mjs +0 -2
  495. package/dist/pages/LoginPage.mjs.map +0 -1
  496. package/dist/pages/NotAuthorized.mjs +0 -2
  497. package/dist/pages/NotAuthorized.mjs.map +0 -1
  498. package/dist/pages/NotFound.mjs +0 -2
  499. package/dist/pages/NotFound.mjs.map +0 -1
  500. package/dist/pages/RegisterPage.mjs +0 -2
  501. package/dist/pages/RegisterPage.mjs.map +0 -1
  502. package/dist/pages/VerifyEmailPage.mjs +0 -2
  503. package/dist/pages/VerifyEmailPage.mjs.map +0 -1
  504. package/dist/paragraph-DYLaQtTV.mjs.map +0 -1
  505. package/dist/payment-layout-DrQ0kZPX.mjs +0 -2
  506. package/dist/payment-layout-DrQ0kZPX.mjs.map +0 -1
  507. package/dist/popover-C8rcemA3.mjs +0 -2
  508. package/dist/popover-C8rcemA3.mjs.map +0 -1
  509. package/dist/progress-CLeM0e7Z.mjs.map +0 -1
  510. package/dist/radio-group-Y9bhdr55.mjs.map +0 -1
  511. package/dist/resizable-CpCaSCFB.mjs.map +0 -1
  512. package/dist/search-modal-Bn-GOOCy.mjs +0 -2
  513. package/dist/search-modal-Bn-GOOCy.mjs.map +0 -1
  514. package/dist/select-LlPCZFSF.mjs.map +0 -1
  515. package/dist/separator-D3Gmkxzq.mjs.map +0 -1
  516. package/dist/sheet-BFlIfNaA.mjs.map +0 -1
  517. package/dist/sidebar-ChtCyu-n.mjs +0 -2
  518. package/dist/sidebar-ChtCyu-n.mjs.map +0 -1
  519. package/dist/skeleton-C51IdOfK.mjs.map +0 -1
  520. package/dist/spinner-eClTgHjk.mjs.map +0 -1
  521. package/dist/statistic-cwLwcukn.mjs.map +0 -1
  522. package/dist/switch-BP7EPatj.mjs.map +0 -1
  523. package/dist/systems/google.mjs.map +0 -1
  524. package/dist/tables-CFrsk2lM.mjs +0 -4
  525. package/dist/tables-CFrsk2lM.mjs.map +0 -1
  526. package/dist/tanstack-form-DT1TqIDl.mjs +0 -12
  527. package/dist/tanstack-form-DT1TqIDl.mjs.map +0 -1
  528. package/dist/text-editor-5mA7XyaI.mjs +0 -2
  529. package/dist/text-editor-5mA7XyaI.mjs.map +0 -1
  530. package/dist/textarea-7HDXcaK9.mjs.map +0 -1
  531. package/dist/tooltip-Dxl5Wa8i.mjs.map +0 -1
  532. package/dist/types-B5nyTWtO.mjs.map +0 -1
  533. package/dist/typography/paragraph.mjs +0 -1
  534. package/dist/typography/title.mjs.map +0 -1
  535. package/dist/ui/alert-dialog.mjs +0 -2
  536. package/dist/ui/alert-dialog.mjs.map +0 -1
  537. package/dist/ui/alert.mjs +0 -1
  538. package/dist/ui/aspect-ratio.mjs.map +0 -1
  539. package/dist/ui/avatar.mjs +0 -1
  540. package/dist/ui/badge.d.mts +0 -2
  541. package/dist/ui/badge.mjs +0 -1
  542. package/dist/ui/breadcrumb.mjs +0 -2
  543. package/dist/ui/breadcrumb.mjs.map +0 -1
  544. package/dist/ui/button-group.mjs +0 -2
  545. package/dist/ui/button-group.mjs.map +0 -1
  546. package/dist/ui/button.d.mts +0 -2
  547. package/dist/ui/button.mjs +0 -1
  548. package/dist/ui/buttons/add-new.mjs +0 -2
  549. package/dist/ui/buttons/add-new.mjs.map +0 -1
  550. package/dist/ui/buttons/edit.mjs +0 -2
  551. package/dist/ui/buttons/edit.mjs.map +0 -1
  552. package/dist/ui/buttons/refresh.mjs +0 -2
  553. package/dist/ui/buttons/refresh.mjs.map +0 -1
  554. package/dist/ui/buttons/trash.mjs +0 -2
  555. package/dist/ui/buttons/trash.mjs.map +0 -1
  556. package/dist/ui/buttons/upload-image.mjs +0 -2
  557. package/dist/ui/buttons/upload-image.mjs.map +0 -1
  558. package/dist/ui/calendar.mjs +0 -1
  559. package/dist/ui/card.mjs +0 -2
  560. package/dist/ui/card.mjs.map +0 -1
  561. package/dist/ui/carousel.mjs +0 -2
  562. package/dist/ui/carousel.mjs.map +0 -1
  563. package/dist/ui/checkbox.mjs +0 -1
  564. package/dist/ui/collapsible.mjs.map +0 -1
  565. package/dist/ui/command.mjs +0 -1
  566. package/dist/ui/context-menu.mjs.map +0 -1
  567. package/dist/ui/dialog.mjs +0 -1
  568. package/dist/ui/drawer.mjs +0 -1
  569. package/dist/ui/dropdown-menu.mjs +0 -1
  570. package/dist/ui/empty.mjs.map +0 -1
  571. package/dist/ui/field.d.mts +0 -65
  572. package/dist/ui/field.mjs +0 -1
  573. package/dist/ui/file-uploader.mjs +0 -3
  574. package/dist/ui/file-uploader.mjs.map +0 -1
  575. package/dist/ui/form.mjs +0 -2
  576. package/dist/ui/form.mjs.map +0 -1
  577. package/dist/ui/hover-card.mjs.map +0 -1
  578. package/dist/ui/image.mjs +0 -1
  579. package/dist/ui/input-otp.mjs.map +0 -1
  580. package/dist/ui/input.d.mts +0 -2
  581. package/dist/ui/input.mjs +0 -1
  582. package/dist/ui/inputs/search-input.mjs +0 -2
  583. package/dist/ui/inputs/search-input.mjs.map +0 -1
  584. package/dist/ui/item.mjs +0 -2
  585. package/dist/ui/item.mjs.map +0 -1
  586. package/dist/ui/label.mjs +0 -1
  587. package/dist/ui/menubar.mjs.map +0 -1
  588. package/dist/ui/multi-select.mjs +0 -2
  589. package/dist/ui/multi-select.mjs.map +0 -1
  590. package/dist/ui/navigation-menu.mjs.map +0 -1
  591. package/dist/ui/pagination.mjs +0 -2
  592. package/dist/ui/pagination.mjs.map +0 -1
  593. package/dist/ui/popover.mjs +0 -1
  594. package/dist/ui/progress.mjs +0 -1
  595. package/dist/ui/radio-group.mjs +0 -1
  596. package/dist/ui/resizable.mjs +0 -1
  597. package/dist/ui/scroll-area.mjs.map +0 -1
  598. package/dist/ui/select.mjs +0 -1
  599. package/dist/ui/separator.mjs +0 -1
  600. package/dist/ui/sheet.mjs +0 -1
  601. package/dist/ui/skeleton.mjs +0 -1
  602. package/dist/ui/slider.mjs.map +0 -1
  603. package/dist/ui/sonner.mjs.map +0 -1
  604. package/dist/ui/spinner.mjs +0 -1
  605. package/dist/ui/switch.mjs +0 -1
  606. package/dist/ui/table.mjs.map +0 -1
  607. package/dist/ui/tabs.mjs.map +0 -1
  608. package/dist/ui/textarea.mjs +0 -1
  609. package/dist/ui/toggle-group.mjs +0 -2
  610. package/dist/ui/toggle-group.mjs.map +0 -1
  611. package/dist/ui/toggle.mjs.map +0 -1
  612. package/dist/ui/tooltip.mjs +0 -1
  613. package/dist/user-DtZy4P9d.mjs +0 -2
  614. package/dist/user-DtZy4P9d.mjs.map +0 -1
@@ -1,4 +1,4 @@
1
- import * as react178 from "react";
1
+ import * as react299 from "react";
2
2
  import { Tabs as Tabs$1 } from "radix-ui";
3
3
 
4
4
  //#region packages/components/ui/tabs.d.ts
@@ -23,22 +23,22 @@ import { Tabs as Tabs$1 } from "radix-ui";
23
23
  declare function Tabs({
24
24
  className,
25
25
  ...props
26
- }: React.ComponentProps<typeof Tabs$1.Root>): react178.JSX.Element;
26
+ }: React.ComponentProps<typeof Tabs$1.Root>): react299.JSX.Element;
27
27
  /** Container that holds the row of `TabsTrigger` buttons with a muted background pill style. */
28
28
  declare function TabsList({
29
29
  className,
30
30
  ...props
31
- }: React.ComponentProps<typeof Tabs$1.List>): react178.JSX.Element;
31
+ }: React.ComponentProps<typeof Tabs$1.List>): react299.JSX.Element;
32
32
  /** Individual tab button that activates its associated `TabsContent` panel when clicked. */
33
33
  declare function TabsTrigger({
34
34
  className,
35
35
  ...props
36
- }: React.ComponentProps<typeof Tabs$1.Trigger>): react178.JSX.Element;
36
+ }: React.ComponentProps<typeof Tabs$1.Trigger>): react299.JSX.Element;
37
37
  /** Panel whose visibility is controlled by the active `TabsTrigger`; each panel must have a matching `value`. */
38
38
  declare function TabsContent({
39
39
  className,
40
40
  ...props
41
- }: React.ComponentProps<typeof Tabs$1.Content>): react178.JSX.Element;
41
+ }: React.ComponentProps<typeof Tabs$1.Content>): react299.JSX.Element;
42
42
  //#endregion
43
43
  export { Tabs, TabsContent, TabsList, TabsTrigger };
44
- //# sourceMappingURL=tabs.d.mts.map
44
+ //# sourceMappingURL=tabs.d.ts.map
@@ -1,2 +1,2 @@
1
1
  "use client";import{cn as e}from"@customafk/react-toolkit/utils";import{jsx as t}from"react/jsx-runtime";import{Tabs as n}from"radix-ui";function r({className:r,...i}){return t(n.Root,{"data-slot":`tabs`,className:e(`flex flex-col gap-2`,r),...i})}function i({className:r,...i}){return t(n.List,{"data-slot":`tabs-list`,className:e(`inline-flex h-9 w-fit items-center justify-center gap-x-1 rounded-sm bg-muted-muted p-1`,r),...i})}function a({className:r,...i}){return t(n.Trigger,{"data-slot":`tabs-trigger`,className:e(`text-text-positive-weak`,`inline-flex h-[calc(100%-1px)] min-w-32 flex-1 cursor-pointer items-center justify-center gap-1.5`,`rounded-sm`,`whitespace-nowrap border border-transparent px-2 py-1 font-medium text-sm transition`,`data-[state=active]:shadow-card`,`data-[state=active]:bg-background`,`disabled:opacity-50`,`disabled:pointer-events-none`,`focus-visible:border-primary`,`focus-visible:ring-4`,`focus-visible:ring-primary-weak`,`focus-visible:outline-1`,`focus-visible:outline-primary`,`[&_svg]:pointer-events-none`,`[&_svg]:shrink-0`,`[&_svg:not([class*='size-'])]:size-4`,r),...i})}function o({className:r,...i}){return t(n.Content,{"data-slot":`tabs-content`,className:e(`flex-1 outline-none`,r),...i})}export{r as Tabs,o as TabsContent,i as TabsList,a as TabsTrigger};
2
- //# sourceMappingURL=tabs.mjs.map
2
+ //# sourceMappingURL=tabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.js","names":["TabsPrimitive"],"sources":["../../packages/components/ui/tabs.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Tabs as TabsPrimitive } from 'radix-ui';\n\n/**\n * Keyboard-accessible tabbed panel built on Radix UI's Tabs primitives, composed from `Tabs`, `TabsList`, `TabsTrigger`, and `TabsContent`.\n *\n * @example\n * ```tsx\n * import { Tabs, TabsList, TabsTrigger, TabsContent } from '@customafk/lunas-ui/ui/tabs';\n *\n * <Tabs defaultValue=\"overview\">\n * <TabsList>\n * <TabsTrigger value=\"overview\">Overview</TabsTrigger>\n * <TabsTrigger value=\"settings\">Settings</TabsTrigger>\n * </TabsList>\n * <TabsContent value=\"overview\">Overview content here.</TabsContent>\n * <TabsContent value=\"settings\">Settings content here.</TabsContent>\n * </Tabs>\n * ```\n */\nfunction Tabs({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Root>) {\n return <TabsPrimitive.Root data-slot=\"tabs\" className={cn('flex flex-col gap-2', className)} {...props} />;\n}\n\n/** Container that holds the row of `TabsTrigger` buttons with a muted background pill style. */\nfunction TabsList({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.List>) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n className={cn('inline-flex h-9 w-fit items-center justify-center gap-x-1 rounded-sm bg-muted-muted p-1', className)}\n {...props}\n />\n );\n}\n\n/** Individual tab button that activates its associated `TabsContent` panel when clicked. */\nfunction TabsTrigger({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Trigger>) {\n return (\n <TabsPrimitive.Trigger\n data-slot=\"tabs-trigger\"\n className={cn(\n 'text-text-positive-weak',\n 'inline-flex h-[calc(100%-1px)] min-w-32 flex-1 cursor-pointer items-center justify-center gap-1.5',\n 'rounded-sm',\n 'whitespace-nowrap border border-transparent px-2 py-1 font-medium text-sm transition',\n // 'hover:bg-muted-muted/60',\n 'data-[state=active]:shadow-card',\n 'data-[state=active]:bg-background',\n 'disabled:opacity-50',\n 'disabled:pointer-events-none',\n 'focus-visible:border-primary',\n 'focus-visible:ring-4',\n 'focus-visible:ring-primary-weak',\n 'focus-visible:outline-1',\n 'focus-visible:outline-primary',\n '[&_svg]:pointer-events-none',\n '[&_svg]:shrink-0',\n \"[&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n );\n}\n\n/** Panel whose visibility is controlled by the active `TabsTrigger`; each panel must have a matching `value`. */\nfunction TabsContent({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Content>) {\n return <TabsPrimitive.Content data-slot=\"tabs-content\" className={cn('flex-1 outline-none', className)} {...props} />;\n}\n\nexport { Tabs, TabsContent, TabsList, TabsTrigger };\n"],"mappings":"yIAuBA,SAAS,EAAK,CAAE,YAAW,GAAG,GAA0D,CACtF,OAAO,EAACA,EAAc,KAAA,CAAK,YAAU,OAAO,UAAW,EAAG,sBAAuB,EAAU,CAAE,GAAI,GAAS,CAI5G,SAAS,EAAS,CAAE,YAAW,GAAG,GAA0D,CAC1F,OACE,EAACA,EAAc,KAAA,CACb,YAAU,YACV,UAAW,EAAG,0FAA2F,EAAU,CACnH,GAAI,GACJ,CAKN,SAAS,EAAY,CAAE,YAAW,GAAG,GAA6D,CAChG,OACE,EAACA,EAAc,QAAA,CACb,YAAU,eACV,UAAW,EACT,0BACA,oGACA,aACA,uFAEA,kCACA,oCACA,sBACA,+BACA,+BACA,uBACA,kCACA,0BACA,gCACA,8BACA,mBACA,uCACA,EACD,CACD,GAAI,GACJ,CAKN,SAAS,EAAY,CAAE,YAAW,GAAG,GAA6D,CAChG,OAAO,EAACA,EAAc,QAAA,CAAQ,YAAU,eAAe,UAAW,EAAG,sBAAuB,EAAU,CAAE,GAAI,GAAS"}
@@ -1,4 +1,4 @@
1
- import * as react300 from "react";
1
+ import * as react179 from "react";
2
2
 
3
3
  //#region packages/components/ui/textarea.d.ts
4
4
 
@@ -24,7 +24,7 @@ declare function Textarea({
24
24
  }: React.ComponentProps<'textarea'> & {
25
25
  /** Convenience callback that receives the raw string value on every change, bypassing the synthetic event. */
26
26
  onValueChange?: (value: string) => void;
27
- }): react300.JSX.Element;
27
+ }): react179.JSX.Element;
28
28
  //#endregion
29
29
  export { Textarea };
30
30
  //# sourceMappingURL=textarea.d.cts.map
@@ -1,4 +1,4 @@
1
- import * as react175 from "react";
1
+ import * as react289 from "react";
2
2
 
3
3
  //#region packages/components/ui/textarea.d.ts
4
4
 
@@ -24,7 +24,7 @@ declare function Textarea({
24
24
  }: React.ComponentProps<'textarea'> & {
25
25
  /** Convenience callback that receives the raw string value on every change, bypassing the synthetic event. */
26
26
  onValueChange?: (value: string) => void;
27
- }): react175.JSX.Element;
27
+ }): react289.JSX.Element;
28
28
  //#endregion
29
29
  export { Textarea };
30
- //# sourceMappingURL=textarea.d.mts.map
30
+ //# sourceMappingURL=textarea.d.ts.map
@@ -0,0 +1 @@
1
+ "use client";import{t as e}from"../textarea-Bp6VvhiA.js";export{e as Textarea};
@@ -1,5 +1,5 @@
1
1
  import { toggleVariants } from "./toggle.cjs";
2
- import * as react301 from "react";
2
+ import * as react229 from "react";
3
3
  import { VariantProps } from "class-variance-authority";
4
4
  import { ToggleGroup as ToggleGroup$1 } from "radix-ui";
5
5
 
@@ -25,7 +25,7 @@ declare function ToggleGroup({
25
25
  size,
26
26
  children,
27
27
  ...props
28
- }: React.ComponentProps<typeof ToggleGroup$1.Root> & VariantProps<typeof toggleVariants>): react301.JSX.Element;
28
+ }: React.ComponentProps<typeof ToggleGroup$1.Root> & VariantProps<typeof toggleVariants>): react229.JSX.Element;
29
29
  /** A single item/button within a ToggleGroup that inherits the group's variant and size. */
30
30
  declare function ToggleGroupItem({
31
31
  className,
@@ -33,7 +33,7 @@ declare function ToggleGroupItem({
33
33
  variant,
34
34
  size,
35
35
  ...props
36
- }: React.ComponentProps<typeof ToggleGroup$1.Item> & VariantProps<typeof toggleVariants>): react301.JSX.Element;
36
+ }: React.ComponentProps<typeof ToggleGroup$1.Item> & VariantProps<typeof toggleVariants>): react229.JSX.Element;
37
37
  //#endregion
38
38
  export { ToggleGroup, ToggleGroupItem };
39
39
  //# sourceMappingURL=toggle-group.d.cts.map
@@ -1,5 +1,5 @@
1
- import { toggleVariants } from "./toggle.mjs";
2
- import * as react235 from "react";
1
+ import { toggleVariants } from "./toggle.js";
2
+ import * as react291 from "react";
3
3
  import { VariantProps } from "class-variance-authority";
4
4
  import { ToggleGroup as ToggleGroup$1 } from "radix-ui";
5
5
 
@@ -25,7 +25,7 @@ declare function ToggleGroup({
25
25
  size,
26
26
  children,
27
27
  ...props
28
- }: React.ComponentProps<typeof ToggleGroup$1.Root> & VariantProps<typeof toggleVariants>): react235.JSX.Element;
28
+ }: React.ComponentProps<typeof ToggleGroup$1.Root> & VariantProps<typeof toggleVariants>): react291.JSX.Element;
29
29
  /** A single item/button within a ToggleGroup that inherits the group's variant and size. */
30
30
  declare function ToggleGroupItem({
31
31
  className,
@@ -33,7 +33,7 @@ declare function ToggleGroupItem({
33
33
  variant,
34
34
  size,
35
35
  ...props
36
- }: React.ComponentProps<typeof ToggleGroup$1.Item> & VariantProps<typeof toggleVariants>): react235.JSX.Element;
36
+ }: React.ComponentProps<typeof ToggleGroup$1.Item> & VariantProps<typeof toggleVariants>): react291.JSX.Element;
37
37
  //#endregion
38
38
  export { ToggleGroup, ToggleGroupItem };
39
- //# sourceMappingURL=toggle-group.d.mts.map
39
+ //# sourceMappingURL=toggle-group.d.ts.map
@@ -0,0 +1,2 @@
1
+ "use client";import{toggleVariants as e}from"./toggle.js";import{createContext as t,use as n}from"react";import{cn as r}from"@customafk/react-toolkit/utils";import{jsx as i}from"react/jsx-runtime";import{ToggleGroup as a}from"radix-ui";const o=t({size:`default`,variant:`default`});function s({className:e,variant:t,size:n,children:s,...c}){return i(a.Root,{"data-slot":`toggle-group`,"data-variant":t,"data-size":n,className:r(`group/toggle-group flex w-fit items-center rounded-md data-[variant=outline]:shadow-xs`,e),...c,children:i(o.Provider,{value:{variant:t,size:n},children:s})})}function c({className:t,children:s,variant:c,size:l,...u}){let d=n(o);return i(a.Item,{"data-slot":`toggle-group-item`,"data-variant":d.variant||c,"data-size":d.size||l,className:r(e({variant:d.variant||c,size:d.size||l}),`min-w-0 flex-1 shrink-0 rounded-none shadow-none first:rounded-l-md last:rounded-r-md focus:z-10 focus-visible:z-10 data-[variant=outline]:border-l-0 data-[variant=outline]:first:border-l`,t),...u,children:s})}export{s as ToggleGroup,c as ToggleGroupItem};
2
+ //# sourceMappingURL=toggle-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle-group.js","names":["ToggleGroupPrimitive"],"sources":["../../packages/components/ui/toggle-group.tsx"],"sourcesContent":["'use client';\nimport { createContext, use } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport type { VariantProps } from 'class-variance-authority';\nimport { ToggleGroup as ToggleGroupPrimitive } from 'radix-ui';\nimport { toggleVariants } from '@/components/ui/toggle';\n\nconst ToggleGroupContext = createContext<VariantProps<typeof toggleVariants>>({\n size: 'default',\n variant: 'default',\n});\n\n/**\n * A group of connected Toggle buttons where one or multiple items can be active at a time.\n *\n * @example\n * ```tsx\n * import { ToggleGroup, ToggleGroupItem } from '@customafk/lunas-ui/ui/toggle-group';\n *\n * <ToggleGroup type=\"single\" variant=\"outline\">\n * <ToggleGroupItem value=\"left\">Left</ToggleGroupItem>\n * <ToggleGroupItem value=\"center\">Center</ToggleGroupItem>\n * <ToggleGroupItem value=\"right\">Right</ToggleGroupItem>\n * </ToggleGroup>\n * ```\n */\nfunction ToggleGroup({\n className,\n variant,\n size,\n children,\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Root> & VariantProps<typeof toggleVariants>) {\n return (\n <ToggleGroupPrimitive.Root\n data-slot=\"toggle-group\"\n data-variant={variant}\n data-size={size}\n className={cn('group/toggle-group flex w-fit items-center rounded-md data-[variant=outline]:shadow-xs', className)}\n {...props}\n >\n <ToggleGroupContext.Provider value={{ variant, size }}>{children}</ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n );\n}\n\n/** A single item/button within a ToggleGroup that inherits the group's variant and size. */\nfunction ToggleGroupItem({\n className,\n children,\n variant,\n size,\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Item> & VariantProps<typeof toggleVariants>) {\n const context = use(ToggleGroupContext);\n\n return (\n <ToggleGroupPrimitive.Item\n data-slot=\"toggle-group-item\"\n data-variant={context.variant || variant}\n data-size={context.size || size}\n className={cn(\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n 'min-w-0 flex-1 shrink-0 rounded-none shadow-none first:rounded-l-md last:rounded-r-md focus:z-10 focus-visible:z-10 data-[variant=outline]:border-l-0 data-[variant=outline]:first:border-l',\n className\n )}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n );\n}\n\nexport { ToggleGroup, ToggleGroupItem };\n"],"mappings":"4OASA,MAAM,EAAqB,EAAmD,CAC5E,KAAM,UACN,QAAS,UACV,CAAC,CAgBF,SAAS,EAAY,CACnB,YACA,UACA,OACA,WACA,GAAG,GAC4F,CAC/F,OACE,EAACA,EAAqB,KAAA,CACpB,YAAU,eACV,eAAc,EACd,YAAW,EACX,UAAW,EAAG,yFAA0F,EAAU,CAClH,GAAI,WAEJ,EAAC,EAAmB,SAAA,CAAS,MAAO,CAAE,UAAS,OAAM,CAAG,YAAuC,EACrE,CAKhC,SAAS,EAAgB,CACvB,YACA,WACA,UACA,OACA,GAAG,GAC4F,CAC/F,IAAM,EAAU,EAAI,EAAmB,CAEvC,OACE,EAACA,EAAqB,KAAA,CACpB,YAAU,oBACV,eAAc,EAAQ,SAAW,EACjC,YAAW,EAAQ,MAAQ,EAC3B,UAAW,EACT,EAAe,CACb,QAAS,EAAQ,SAAW,EAC5B,KAAM,EAAQ,MAAQ,EACvB,CAAC,CACF,8LACA,EACD,CACD,GAAI,EAEH,YACyB"}
@@ -1,5 +1,5 @@
1
- import * as react262 from "react";
2
- import * as class_variance_authority_types10 from "class-variance-authority/types";
1
+ import * as react219 from "react";
2
+ import * as class_variance_authority_types8 from "class-variance-authority/types";
3
3
  import { VariantProps } from "class-variance-authority";
4
4
  import { Toggle as Toggle$1 } from "radix-ui";
5
5
 
@@ -7,7 +7,7 @@ import { Toggle as Toggle$1 } from "radix-ui";
7
7
  declare const toggleVariants: (props?: ({
8
8
  variant?: "default" | "outline" | null | undefined;
9
9
  size?: "sm" | "lg" | "default" | null | undefined;
10
- } & class_variance_authority_types10.ClassProp) | undefined) => string;
10
+ } & class_variance_authority_types8.ClassProp) | undefined) => string;
11
11
  /**
12
12
  * A two-state button that switches between pressed (`on`) and unpressed (`off`).
13
13
  *
@@ -26,7 +26,7 @@ declare function Toggle({
26
26
  variant,
27
27
  size,
28
28
  ...props
29
- }: React.ComponentProps<typeof Toggle$1.Root> & VariantProps<typeof toggleVariants>): react262.JSX.Element;
29
+ }: React.ComponentProps<typeof Toggle$1.Root> & VariantProps<typeof toggleVariants>): react219.JSX.Element;
30
30
  //#endregion
31
31
  export { Toggle, toggleVariants };
32
32
  //# sourceMappingURL=toggle.d.cts.map
@@ -1,13 +1,13 @@
1
- import * as react199 from "react";
1
+ import * as react290 from "react";
2
2
  import { VariantProps } from "class-variance-authority";
3
3
  import { Toggle as Toggle$1 } from "radix-ui";
4
- import * as class_variance_authority_types7 from "class-variance-authority/types";
4
+ import * as class_variance_authority_types11 from "class-variance-authority/types";
5
5
 
6
6
  //#region packages/components/ui/toggle.d.ts
7
7
  declare const toggleVariants: (props?: ({
8
8
  variant?: "default" | "outline" | null | undefined;
9
9
  size?: "sm" | "lg" | "default" | null | undefined;
10
- } & class_variance_authority_types7.ClassProp) | undefined) => string;
10
+ } & class_variance_authority_types11.ClassProp) | undefined) => string;
11
11
  /**
12
12
  * A two-state button that switches between pressed (`on`) and unpressed (`off`).
13
13
  *
@@ -26,7 +26,7 @@ declare function Toggle({
26
26
  variant,
27
27
  size,
28
28
  ...props
29
- }: React.ComponentProps<typeof Toggle$1.Root> & VariantProps<typeof toggleVariants>): react199.JSX.Element;
29
+ }: React.ComponentProps<typeof Toggle$1.Root> & VariantProps<typeof toggleVariants>): react290.JSX.Element;
30
30
  //#endregion
31
31
  export { Toggle, toggleVariants };
32
- //# sourceMappingURL=toggle.d.mts.map
32
+ //# sourceMappingURL=toggle.d.ts.map
@@ -1,2 +1,2 @@
1
1
  "use client";import{cn as e}from"@customafk/react-toolkit/utils";import{cva as t}from"class-variance-authority";import{jsx as n}from"react/jsx-runtime";import{Toggle as r}from"radix-ui";const i=t(`inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap`,{variants:{variant:{default:`bg-transparent`,outline:`border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground`},size:{default:`h-9 px-2 min-w-9`,sm:`h-8 px-1.5 min-w-8`,lg:`h-10 px-2.5 min-w-10`}},defaultVariants:{variant:`default`,size:`default`}});function a({className:t,variant:a,size:o,...s}){return n(r.Root,{"data-slot":`toggle`,className:e(i({variant:a,size:o,className:t})),...s})}export{a as Toggle,i as toggleVariants};
2
- //# sourceMappingURL=toggle.mjs.map
2
+ //# sourceMappingURL=toggle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle.js","names":["TogglePrimitive"],"sources":["../../packages/components/ui/toggle.tsx"],"sourcesContent":["'use client';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { Toggle as TogglePrimitive } from 'radix-ui';\n\nconst toggleVariants = cva(\n \"inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap\",\n {\n variants: {\n variant: {\n default: 'bg-transparent',\n outline: 'border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground',\n },\n size: {\n default: 'h-9 px-2 min-w-9',\n sm: 'h-8 px-1.5 min-w-8',\n lg: 'h-10 px-2.5 min-w-10',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n);\n\n/**\n * A two-state button that switches between pressed (`on`) and unpressed (`off`).\n *\n * @example\n * ```tsx\n * import { Toggle } from '@customafk/lunas-ui/ui/toggle';\n * import { Bold } from 'lucide-react';\n *\n * <Toggle aria-label=\"Toggle bold\" variant=\"outline\">\n * <Bold />\n * </Toggle>\n * ```\n */\nfunction Toggle({ className, variant, size, ...props }: React.ComponentProps<typeof TogglePrimitive.Root> & VariantProps<typeof toggleVariants>) {\n return <TogglePrimitive.Root data-slot=\"toggle\" className={cn(toggleVariants({ variant, size, className }))} {...props} />;\n}\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport { Toggle, toggleVariants };\n"],"mappings":"0LAMA,MAAM,EAAiB,EACrB,gjBACA,CACE,SAAU,CACR,QAAS,CACP,QAAS,iBACT,QAAS,4FACV,CACD,KAAM,CACJ,QAAS,mBACT,GAAI,qBACJ,GAAI,uBACL,CACF,CACD,gBAAiB,CACf,QAAS,UACT,KAAM,UACP,CACF,CACF,CAeD,SAAS,EAAO,CAAE,YAAW,UAAS,OAAM,GAAG,GAAkG,CAC/I,OAAO,EAACA,EAAgB,KAAA,CAAK,YAAU,SAAS,UAAW,EAAG,EAAe,CAAE,UAAS,OAAM,YAAW,CAAC,CAAC,CAAE,GAAI,GAAS"}
@@ -1,4 +1,4 @@
1
- import * as react258 from "react";
1
+ import * as react224 from "react";
2
2
  import { Tooltip as Tooltip$1 } from "radix-ui";
3
3
 
4
4
  //#region packages/components/ui/tooltip.d.ts
@@ -19,7 +19,7 @@ import { Tooltip as Tooltip$1 } from "radix-ui";
19
19
  declare function TooltipProvider({
20
20
  delayDuration,
21
21
  ...props
22
- }: React.ComponentProps<typeof Tooltip$1.Provider>): react258.JSX.Element;
22
+ }: React.ComponentProps<typeof Tooltip$1.Provider>): react224.JSX.Element;
23
23
  /**
24
24
  * Floating label that reveals supplementary text when the user hovers or focuses its trigger element.
25
25
  *
@@ -38,18 +38,18 @@ declare function TooltipProvider({
38
38
  */
39
39
  declare function Tooltip({
40
40
  ...props
41
- }: React.ComponentProps<typeof Tooltip$1.Root>): react258.JSX.Element;
41
+ }: React.ComponentProps<typeof Tooltip$1.Root>): react224.JSX.Element;
42
42
  /** Element that opens the tooltip on hover/focus; use `asChild` to forward props to a custom child element. */
43
43
  declare function TooltipTrigger({
44
44
  ...props
45
- }: React.ComponentProps<typeof Tooltip$1.Trigger>): react258.JSX.Element;
45
+ }: React.ComponentProps<typeof Tooltip$1.Trigger>): react224.JSX.Element;
46
46
  /** Floating panel rendered in a portal that displays the tooltip text with a directional arrow. */
47
47
  declare function TooltipContent({
48
48
  className,
49
49
  sideOffset,
50
50
  children,
51
51
  ...props
52
- }: React.ComponentProps<typeof Tooltip$1.Content>): react258.JSX.Element;
52
+ }: React.ComponentProps<typeof Tooltip$1.Content>): react224.JSX.Element;
53
53
  //#endregion
54
54
  export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
55
55
  //# sourceMappingURL=tooltip.d.cts.map
@@ -1,4 +1,4 @@
1
- import * as react224 from "react";
1
+ import * as react295 from "react";
2
2
  import { Tooltip as Tooltip$1 } from "radix-ui";
3
3
 
4
4
  //#region packages/components/ui/tooltip.d.ts
@@ -19,7 +19,7 @@ import { Tooltip as Tooltip$1 } from "radix-ui";
19
19
  declare function TooltipProvider({
20
20
  delayDuration,
21
21
  ...props
22
- }: React.ComponentProps<typeof Tooltip$1.Provider>): react224.JSX.Element;
22
+ }: React.ComponentProps<typeof Tooltip$1.Provider>): react295.JSX.Element;
23
23
  /**
24
24
  * Floating label that reveals supplementary text when the user hovers or focuses its trigger element.
25
25
  *
@@ -38,18 +38,18 @@ declare function TooltipProvider({
38
38
  */
39
39
  declare function Tooltip({
40
40
  ...props
41
- }: React.ComponentProps<typeof Tooltip$1.Root>): react224.JSX.Element;
41
+ }: React.ComponentProps<typeof Tooltip$1.Root>): react295.JSX.Element;
42
42
  /** Element that opens the tooltip on hover/focus; use `asChild` to forward props to a custom child element. */
43
43
  declare function TooltipTrigger({
44
44
  ...props
45
- }: React.ComponentProps<typeof Tooltip$1.Trigger>): react224.JSX.Element;
45
+ }: React.ComponentProps<typeof Tooltip$1.Trigger>): react295.JSX.Element;
46
46
  /** Floating panel rendered in a portal that displays the tooltip text with a directional arrow. */
47
47
  declare function TooltipContent({
48
48
  className,
49
49
  sideOffset,
50
50
  children,
51
51
  ...props
52
- }: React.ComponentProps<typeof Tooltip$1.Content>): react224.JSX.Element;
52
+ }: React.ComponentProps<typeof Tooltip$1.Content>): react295.JSX.Element;
53
53
  //#endregion
54
54
  export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
55
- //# sourceMappingURL=tooltip.d.mts.map
55
+ //# sourceMappingURL=tooltip.d.ts.map
@@ -0,0 +1 @@
1
+ "use client";import{i as e,n as t,r as n,t as r}from"../tooltip-CVIl6Hln.js";export{r as Tooltip,t as TooltipContent,n as TooltipProvider,e as TooltipTrigger};
@@ -0,0 +1,2 @@
1
+ import{t as e}from"./paragraph-Cc13ZI4d.js";import{t}from"./flex-CinRrgEy.js";import{n,t as r}from"./avatar-Hpj8lmux.js";import{UserRoundIcon as i}from"lucide-react";import{jsx as a,jsxs as o}from"react/jsx-runtime";import{colorHashLight as s}from"@customafk/react-toolkit/color-hash";const c=({uuid:c,username:l,email:u})=>o(t,{"data-slot":`user-display`,wrap:!1,gap:`sm`,padding:`none`,children:[a(r,{className:`size-10 shadow-card`,children:a(n,{style:{backgroundColor:s.hex(c)},children:a(i,{size:28,className:`text-white`})})}),o(t,{vertical:!0,padding:`none`,gap:`none`,align:`start`,children:[a(e,{className:`text-sm font-medium text-text-positive`,children:l}),a(e,{variant:`sm`,className:`mt-0! text-xs text-text-positive-weak`,children:u})]})]});export{c as t};
2
+ //# sourceMappingURL=user-BSpgswEC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-BSpgswEC.js","names":["UserDataDisplay: React.FC<UserDataDisplayProps>"],"sources":["../packages/components/data-display/user.tsx"],"sourcesContent":["'use client';\n\nimport { UserRoundIcon } from 'lucide-react';\n\nimport { colorHashLight } from '@customafk/react-toolkit/color-hash';\n\nimport { Flex } from '../layouts/flex';\nimport { Paragraph } from '../typography/paragraph';\nimport { Avatar, AvatarFallback } from '../ui/avatar';\n\ntype UserDataDisplayProps = {\n /** Unique identifier used to deterministically generate the avatar background colour. */\n uuid: string;\n /** Display name rendered as the primary line of the user card. */\n username: string;\n /** Email address rendered as the secondary, muted line below the username. */\n email: string;\n};\n\n/**\n * Displays a user identity card with a colour-hashed avatar, username, and email address.\n *\n * @example\n * ```tsx\n * import { UserDataDisplay } from '@customafk/lunas-ui/data-display/user';\n *\n * <UserDataDisplay uuid=\"abc-123\" username=\"Nguyễn Văn An\" email=\"an@example.com\" />\n * ```\n */\nexport const UserDataDisplay: React.FC<UserDataDisplayProps> = ({ uuid, username, email }) => {\n return (\n <Flex data-slot=\"user-display\" wrap={false} gap=\"sm\" padding=\"none\">\n <Avatar className=\"size-10 shadow-card\">\n <AvatarFallback style={{ backgroundColor: colorHashLight.hex(uuid) }}>\n <UserRoundIcon size={28} className=\"text-white\" />\n </AvatarFallback>\n </Avatar>\n <Flex vertical padding=\"none\" gap=\"none\" align=\"start\">\n <Paragraph className=\"text-sm font-medium text-text-positive\">{username}</Paragraph>\n <Paragraph variant=\"sm\" className=\"mt-0! text-xs text-text-positive-weak\">\n {email}\n </Paragraph>\n </Flex>\n </Flex>\n );\n};\n"],"mappings":"6RA6BA,MAAaA,GAAmD,CAAE,OAAM,WAAU,WAE9E,EAAC,EAAA,CAAK,YAAU,eAAe,KAAM,GAAO,IAAI,KAAK,QAAQ,iBAC3D,EAAC,EAAA,CAAO,UAAU,+BAChB,EAAC,EAAA,CAAe,MAAO,CAAE,gBAAiB,EAAe,IAAI,EAAK,CAAE,UAClE,EAAC,EAAA,CAAc,KAAM,GAAI,UAAU,cAAe,EACnC,EACV,CACT,EAAC,EAAA,CAAK,SAAA,GAAS,QAAQ,OAAO,IAAI,OAAO,MAAM,kBAC7C,EAAC,EAAA,CAAU,UAAU,kDAA0C,GAAqB,CACpF,EAAC,EAAA,CAAU,QAAQ,KAAK,UAAU,iDAC/B,GACS,CAAA,EACP,CAAA,EACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@customafk/lunas-ui",
3
- "version": "0.2.38",
3
+ "version": "0.2.39",
4
4
  "description": "UI library for Lunas Enterprise",
5
5
  "type": "module",
6
6
  "author": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"alert-BbvPwf2x.mjs","names":[],"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":"qRAKA,MAAa,EAAgB,EAC3B,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,EAAc,MAAc,CAChC,GAAI,CAAC,EACH,OAAQ,EAAR,CACE,IAAK,cACH,OAAO,EAAC,EAAA,EAAA,CAAc,CACxB,IAAK,UACH,OAAO,EAAC,EAAA,EAAA,CAAgB,CAC1B,IAAK,UACH,OAAO,EAAC,EAAA,EAAA,CAAc,CACxB,IAAK,OACH,OAAO,EAAC,EAAA,EAAA,CAAO,CACjB,QACE,OAAO,KAGb,OAAO,GACN,CAAC,EAAM,EAAQ,CAAC,CAEnB,OACE,EAAC,MAAA,CAAI,YAAU,QAAQ,KAAK,QAAQ,eAAc,EAAS,UAAW,EAAG,EAAc,CAAE,UAAS,CAAC,CAAE,EAAU,CAAE,GAAI,YAClH,EACA,EACA,GACC,EAAC,SAAA,CACC,KAAK,SACL,QAAS,EACT,aAAW,cACX,UAAU,4GACV,YAAU,uBAEV,EAAC,EAAA,CAAE,KAAM,GAAA,CAAM,EACR,GAEP,CAiBV,SAAS,EAAW,CAAE,YAAW,GAAG,GAA0B,CAC5D,OAAO,EAAC,MAAA,CAAI,YAAU,cAAc,UAAW,EAAG,8DAA+D,EAAU,CAAE,GAAI,GAAS,CAgB5I,SAAS,EAAiB,CAAE,YAAW,GAAG,GAAgC,CACxE,OACE,EAAC,MAAA,CACC,YAAU,oBACV,UAAW,EAAG,mGAAoG,EAAU,CAC5H,GAAI,GACJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"avatar-fltdRVsJ.mjs","names":["Avatar","AvatarPrimitive"],"sources":["../packages/components/ui/avatar.tsx"],"sourcesContent":["'use client';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Avatar as AvatarPrimitive } from 'radix-ui';\n\n/**\n * Circular user avatar built on Radix UI's Avatar primitives, falling back to initials or an icon when the image fails to load.\n *\n * @example\n * ```tsx\n * import { Avatar, AvatarImage, AvatarFallback } from '@customafk/lunas-ui/ui/avatar';\n *\n * <Avatar>\n * <AvatarImage src=\"https://example.com/avatar.jpg\" alt=\"Jane Doe\" />\n * <AvatarFallback>JD</AvatarFallback>\n * </Avatar>\n * ```\n */\nfunction Avatar({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Root>) {\n return <AvatarPrimitive.Root data-slot=\"avatar\" className={cn('relative flex size-8 shrink-0 overflow-hidden rounded-full', className)} {...props} />;\n}\n\n/** The avatar photo; hidden automatically by Radix UI when the image fails to load, revealing `AvatarFallback`. */\nfunction AvatarImage({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Image>) {\n return <AvatarPrimitive.Image data-slot=\"avatar-image\" className={cn('aspect-square size-full', className)} {...props} />;\n}\n\n/** Fallback content (e.g. initials) displayed inside the avatar when the image is unavailable or still loading. */\nfunction AvatarFallback({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn('bg-muted flex size-full items-center justify-center rounded-full', className)}\n {...props}\n />\n );\n}\n\nexport { Avatar, AvatarFallback, AvatarImage };\n"],"mappings":"8HAkBA,SAASA,EAAO,CAAE,YAAW,GAAG,GAA4D,CAC1F,OAAO,EAACC,EAAgB,KAAA,CAAK,YAAU,SAAS,UAAW,EAAG,6DAA8D,EAAU,CAAE,GAAI,GAAS,CAIvJ,SAAS,EAAY,CAAE,YAAW,GAAG,GAA6D,CAChG,OAAO,EAACA,EAAgB,MAAA,CAAM,YAAU,eAAe,UAAW,EAAG,0BAA2B,EAAU,CAAE,GAAI,GAAS,CAI3H,SAAS,EAAe,CAAE,YAAW,GAAG,GAAgE,CACtG,OACE,EAACA,EAAgB,SAAA,CACf,YAAU,kBACV,UAAW,EAAG,mEAAoE,EAAU,CAC5F,GAAI,GACJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"badge-CDGBGq8X.mjs","names":[],"sources":["../packages/components/ui/badge.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nconst badgeVariants = cva(\n 'inline-flex items-center justify-center font-medium transition-colors duration-150 focus:ring-2 focus:ring-offset-2 focus:outline-hidden focus:ring-ring forced-colors:outline',\n {\n variants: {\n variant: {\n solid: 'shadow-btn',\n soft: '',\n outline: 'bg-transparent border',\n },\n color: {\n primary: '',\n secondary: '',\n muted: '',\n accent: '',\n info: '',\n success: '',\n warning: '',\n danger: '',\n },\n size: {\n xs: 'text-[10px]/3 px-1.5 py-0.5 gap-1',\n sm: 'text-xs px-2 py-0.5 gap-1',\n md: 'text-sm px-2.5 py-0.5 gap-1.5',\n lg: 'text-base px-3 py-1 gap-1.5',\n xl: 'text-lg px-3.5 py-1 gap-1.5',\n },\n pill: {\n true: 'rounded-full',\n false: 'rounded-sm',\n },\n },\n defaultVariants: {\n variant: 'solid',\n color: 'primary',\n size: 'md',\n pill: true,\n },\n compoundVariants: [\n // solid\n { variant: 'solid', color: 'primary', className: 'bg-primary text-primary-foreground' },\n { variant: 'solid', color: 'secondary', className: 'bg-secondary text-secondary-foreground' },\n { variant: 'solid', color: 'muted', className: 'bg-muted text-text-negative' },\n { variant: 'solid', color: 'accent', className: 'bg-accent text-text-negative' },\n { variant: 'solid', color: 'info', className: 'bg-info text-info-foreground' },\n { variant: 'solid', color: 'success', className: 'bg-success text-success-foreground' },\n { variant: 'solid', color: 'warning', className: 'bg-warning text-warning-foreground' },\n { variant: 'solid', color: 'danger', className: 'bg-danger text-danger-foreground' },\n // soft\n { variant: 'soft', color: 'primary', className: 'bg-primary-bg-subtle text-primary-intense' },\n { variant: 'soft', color: 'secondary', className: 'bg-secondary-bg-subtle text-secondary-intense' },\n { variant: 'soft', color: 'muted', className: 'bg-muted-bg-subtle text-muted-intense' },\n { variant: 'soft', color: 'accent', className: 'bg-accent-bg-subtle text-accent-intense' },\n { variant: 'soft', color: 'info', className: 'bg-info-bg-subtle text-info-intense' },\n { variant: 'soft', color: 'success', className: 'bg-success-bg-subtle text-success-intense' },\n { variant: 'soft', color: 'warning', className: 'bg-warning-bg-subtle text-warning-intense' },\n { variant: 'soft', color: 'danger', className: 'bg-danger-bg-subtle text-danger-intense' },\n // outline\n { variant: 'outline', color: 'primary', className: 'border-primary text-primary' },\n { variant: 'outline', color: 'secondary', className: 'border-secondary text-secondary' },\n { variant: 'outline', color: 'muted', className: 'border-muted text-muted' },\n { variant: 'outline', color: 'accent', className: 'border-accent text-accent' },\n { variant: 'outline', color: 'info', className: 'border-info text-info' },\n { variant: 'outline', color: 'success', className: 'border-success text-success' },\n { variant: 'outline', color: 'warning', className: 'border-warning text-warning' },\n { variant: 'outline', color: 'danger', className: 'border-danger text-danger' },\n ],\n }\n);\n\n/**\n * Props for the `Badge` component.\n *\n * @property variant - Visual fill style — `'solid'` (filled, default), `'soft'` (tinted background), or `'outline'` (border only).\n * @property color - Semantic color token — `'primary'` | `'secondary'` | `'muted'` | `'accent'` | `'info'` | `'success'` | `'warning'` | `'danger'`. Defaults to `'primary'`.\n * @property size - Badge size — `'xs'` | `'sm'` | `'md'` (default) | `'lg'` | `'xl'`.\n * @property pill - When `true` (default), renders with fully rounded corners (`rounded-full`); when `false`, uses `rounded-sm`.\n */\nexport type BadgeProps = VariantProps<typeof badgeVariants> & React.ComponentPropsWithoutRef<'span'>;\n\n/**\n * Inline status label rendered as a `<span>` with CVA-driven variant, color, size, and shape options.\n *\n * @example\n * ```tsx\n * import { Badge } from '@customafk/lunas-ui/ui/badge';\n *\n * <Badge variant=\"soft\" color=\"success\" size=\"sm\">Active</Badge>\n * <Badge variant=\"outline\" color=\"danger\">Overdue</Badge>\n * ```\n */\nfunction Badge({ className, variant, color, size, pill, ...props }: BadgeProps) {\n return <span className={cn(badgeVariants({ variant, color, pill, size }), className)} {...props} />;\n}\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport { Badge, badgeVariants };\n"],"mappings":"2IAMA,MAAM,EAAgB,EACpB,iLACA,CACE,SAAU,CACR,QAAS,CACP,MAAO,aACP,KAAM,GACN,QAAS,wBACV,CACD,MAAO,CACL,QAAS,GACT,UAAW,GACX,MAAO,GACP,OAAQ,GACR,KAAM,GACN,QAAS,GACT,QAAS,GACT,OAAQ,GACT,CACD,KAAM,CACJ,GAAI,oCACJ,GAAI,4BACJ,GAAI,gCACJ,GAAI,8BACJ,GAAI,8BACL,CACD,KAAM,CACJ,KAAM,eACN,MAAO,aACR,CACF,CACD,gBAAiB,CACf,QAAS,QACT,MAAO,UACP,KAAM,KACN,KAAM,GACP,CACD,iBAAkB,CAEhB,CAAE,QAAS,QAAS,MAAO,UAAW,UAAW,qCAAsC,CACvF,CAAE,QAAS,QAAS,MAAO,YAAa,UAAW,yCAA0C,CAC7F,CAAE,QAAS,QAAS,MAAO,QAAS,UAAW,8BAA+B,CAC9E,CAAE,QAAS,QAAS,MAAO,SAAU,UAAW,+BAAgC,CAChF,CAAE,QAAS,QAAS,MAAO,OAAQ,UAAW,+BAAgC,CAC9E,CAAE,QAAS,QAAS,MAAO,UAAW,UAAW,qCAAsC,CACvF,CAAE,QAAS,QAAS,MAAO,UAAW,UAAW,qCAAsC,CACvF,CAAE,QAAS,QAAS,MAAO,SAAU,UAAW,mCAAoC,CAEpF,CAAE,QAAS,OAAQ,MAAO,UAAW,UAAW,4CAA6C,CAC7F,CAAE,QAAS,OAAQ,MAAO,YAAa,UAAW,gDAAiD,CACnG,CAAE,QAAS,OAAQ,MAAO,QAAS,UAAW,wCAAyC,CACvF,CAAE,QAAS,OAAQ,MAAO,SAAU,UAAW,0CAA2C,CAC1F,CAAE,QAAS,OAAQ,MAAO,OAAQ,UAAW,sCAAuC,CACpF,CAAE,QAAS,OAAQ,MAAO,UAAW,UAAW,4CAA6C,CAC7F,CAAE,QAAS,OAAQ,MAAO,UAAW,UAAW,4CAA6C,CAC7F,CAAE,QAAS,OAAQ,MAAO,SAAU,UAAW,0CAA2C,CAE1F,CAAE,QAAS,UAAW,MAAO,UAAW,UAAW,8BAA+B,CAClF,CAAE,QAAS,UAAW,MAAO,YAAa,UAAW,kCAAmC,CACxF,CAAE,QAAS,UAAW,MAAO,QAAS,UAAW,0BAA2B,CAC5E,CAAE,QAAS,UAAW,MAAO,SAAU,UAAW,4BAA6B,CAC/E,CAAE,QAAS,UAAW,MAAO,OAAQ,UAAW,wBAAyB,CACzE,CAAE,QAAS,UAAW,MAAO,UAAW,UAAW,8BAA+B,CAClF,CAAE,QAAS,UAAW,MAAO,UAAW,UAAW,8BAA+B,CAClF,CAAE,QAAS,UAAW,MAAO,SAAU,UAAW,4BAA6B,CAChF,CACF,CACF,CAuBD,SAAS,EAAM,CAAE,YAAW,UAAS,QAAO,OAAM,OAAM,GAAG,GAAqB,CAC9E,OAAO,EAAC,OAAA,CAAK,UAAW,EAAG,EAAc,CAAE,UAAS,QAAO,OAAM,OAAM,CAAC,CAAE,EAAU,CAAE,GAAI,GAAS"}
@@ -1,2 +0,0 @@
1
- import{n as e,t}from"./dist-DVrfqn8H.mjs";import{n,t as r}from"./button.variants-DkMqWB8G.mjs";import{Loader2Icon as i}from"lucide-react";import{cn as a}from"@customafk/react-toolkit/utils";import{jsx as o,jsxs as s}from"react/jsx-runtime";function c({className:c,variant:l,size:u=`default`,color:d,asChild:f=!1,isLoading:p=!1,children:m,disabled:h,type:g=`button`,innerClassName:_,...v}){let y=f?t:`button`,b=h||p;return s(y,{...f?void 0:{type:g,disabled:b},"data-slot":`button`,"data-state":p?`loading`:void 0,"aria-disabled":b?!0:void 0,"aria-busy":p?!0:void 0,className:a(n({variant:l,size:u,color:d,className:c})),...v,children:[p&&s(`div`,{className:r({variant:l,color:d}),children:[o(i,{size:16,className:`animate-spin`}),o(`span`,{className:`sr-only`,children:`Loading`})]}),f?o(e,{children:m}):o(`div`,{className:a(`inline-flex items-center justify-center gap-x-1`,p&&`invisible pointer-events-none`,_),children:m})]})}export{c as t};
2
- //# sourceMappingURL=button-CCVJTHBI.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"button-CCVJTHBI.mjs","names":[],"sources":["../packages/components/ui/button.tsx"],"sourcesContent":["'use client';\n\nimport { Loader2Icon } from 'lucide-react';\nimport { Slot, Slottable } from '@radix-ui/react-slot';\nimport { cn } from '@customafk/react-toolkit/utils';\nimport { type ButtonVariantProps, buttonLoadingVariant, buttonVariants } from './button.variants';\n\n/**\n * Props for the {@link Button} component.\n *\n * Extends all native `<button>` attributes except `color`, which is\n * re-declared as a semantic design-token via {@link ButtonVariantProps}.\n *\n * @see {@link https://www.radix-ui.com/primitives/docs/utilities/slot} Radix Slot (asChild pattern)\n */\nexport interface ButtonProps extends Omit<React.ComponentProps<'button'>, 'color'> {\n /**\n * When `true`, renders children through Radix's `<Slot>` primitive,\n * merging all button props directly onto the child element.\n *\n * Use this to swap the rendered HTML element while keeping button styling\n * (e.g. render a Next.js `<Link>` that looks like a button).\n *\n * @default false\n * @example\n * ```tsx\n * <Button asChild variant=\"ghost\">\n * <Link href=\"/dashboard\">Go to Dashboard</Link>\n * </Button>\n * ```\n */\n asChild?: boolean;\n\n /**\n * When `true`, shows an animated `Loader2` spinner overlay and sets\n * `aria-busy=\"true\"`. The button is implicitly disabled while loading —\n * no separate `disabled` prop is needed for loading states.\n *\n * @default false\n */\n isLoading?: boolean;\n\n /**\n * Visual style variant of the button.\n *\n * | Value | Description |\n * |---|---|\n * | `\"default\"` | Filled surface — primary call-to-action (default) |\n * | `\"outline\"` | Transparent background with a visible border |\n * | `\"ghost\"` | No background or border — minimal footprint |\n * | `\"link\"` | Styled as an underlined hyperlink |\n * | `\"icon\"` | Square, padding-free — icon-only buttons |\n * | `\"destructive\"` | Red-toned filled surface for danger actions |\n *\n * @default \"default\"\n */\n variant?: ButtonVariantProps['variant'];\n\n /**\n * Semantic color token applied to the button's surface and text.\n *\n * | Value | Usage |\n * |---|---|\n * | `\"primary\"` | Brand primary (default) |\n * | `\"success\"` | Confirmation / save actions |\n * | `\"danger\"` | Destructive / delete actions |\n * | `\"warning\"` | Cautionary / irreversible actions |\n * | `\"muted\"` | Secondary / low-emphasis actions |\n *\n * @default \"primary\"\n */\n color?: ButtonVariantProps['color'];\n\n /**\n * Controls height, horizontal padding, and font size.\n *\n * | Value | Height |\n * |---|---|\n * | `\"sm\"` | 32 px |\n * | `\"default\"` | 36 px |\n * | `\"lg\"` | 40 px |\n * | `\"icon\"` | 36 × 36 px (square) |\n *\n * @default \"default\"\n */\n size?: ButtonVariantProps['size'];\n\n /**\n * Additional class names applied to the inner `<div>` that wraps `children`.\n * Use this to style the children's flex container without overriding the\n * button's outer layout or focus-ring classes.\n */\n innerClassName?: string;\n}\n\n/**\n * Primary interactive button component for `@customafk/lunas-ui`.\n *\n * Built on Radix UI's `<Slot>` primitive. Supports multiple visual variants,\n * semantic color tokens, a built-in loading state with full accessibility\n * attributes, and polymorphic rendering via `asChild`. All native `<button>`\n * attributes are forwarded to the underlying element.\n *\n * **Import:** `import { Button } from '@customafk/lunas-ui/ui/button'`\n *\n * @example Basic usage\n * ```tsx\n * import { Button } from '@customafk/lunas-ui/ui/button';\n *\n * export function SaveAction() {\n * return <Button color=\"primary\">Save changes</Button>;\n * }\n * ```\n *\n * @example Async loading state\n * ```tsx\n * import { Button } from '@customafk/lunas-ui/ui/button';\n *\n * export function SubmitButton({ isPending }: { isPending: boolean }) {\n * return (\n * <Button type=\"submit\" isLoading={isPending}>\n * Submit\n * </Button>\n * );\n * }\n * ```\n *\n * @example Destructive outline button\n * ```tsx\n * import { Button } from '@customafk/lunas-ui/ui/button';\n *\n * export function DeleteButton({ onDelete }: { onDelete: () => void }) {\n * return (\n * <Button variant=\"outline\" color=\"danger\" onClick={onDelete}>\n * Delete account\n * </Button>\n * );\n * }\n * ```\n *\n * @example Polymorphic — render as Next.js Link\n * ```tsx\n * import { Button } from '@customafk/lunas-ui/ui/button';\n * import Link from 'next/link';\n *\n * export function NavLink() {\n * return (\n * <Button asChild variant=\"ghost\" size=\"sm\">\n * <Link href=\"/settings\">Settings</Link>\n * </Button>\n * );\n * }\n * ```\n */\nfunction Button({\n className,\n variant,\n size = 'default',\n color,\n asChild = false,\n isLoading = false,\n children,\n disabled,\n type = 'button',\n innerClassName,\n ...props\n}: ButtonProps) {\n const Comp = asChild ? Slot : 'button';\n const isDisabled = disabled || isLoading;\n\n return (\n <Comp\n {...(!asChild ? { type, disabled: isDisabled } : undefined)}\n data-slot=\"button\"\n data-state={isLoading ? 'loading' : undefined}\n aria-disabled={isDisabled ? true : undefined}\n aria-busy={isLoading ? true : undefined}\n className={cn(\n buttonVariants({\n variant,\n size,\n color,\n className,\n })\n )}\n {...props}\n >\n {isLoading && (\n <div className={buttonLoadingVariant({ variant, color })}>\n <Loader2Icon size={16} className=\"animate-spin\" />\n <span className=\"sr-only\">Loading</span>\n </div>\n )}\n {asChild ? (\n <Slottable>{children}</Slottable>\n ) : (\n <div className={cn('inline-flex items-center justify-center gap-x-1', isLoading && 'invisible pointer-events-none', innerClassName)}>{children}</div>\n )}\n </Comp>\n );\n}\n\nexport { Button };\n"],"mappings":"gPA0JA,SAAS,EAAO,CACd,YACA,UACA,OAAO,UACP,QACA,UAAU,GACV,YAAY,GACZ,WACA,WACA,OAAO,SACP,iBACA,GAAG,GACW,CACd,IAAM,EAAO,EAAU,EAAO,SACxB,EAAa,GAAY,EAE/B,OACE,EAAC,EAAA,CACC,GAAM,EAA2C,IAAA,GAAjC,CAAE,OAAM,SAAU,EAAY,CAC9C,YAAU,SACV,aAAY,EAAY,UAAY,IAAA,GACpC,gBAAe,EAAa,GAAO,IAAA,GACnC,YAAW,EAAY,GAAO,IAAA,GAC9B,UAAW,EACT,EAAe,CACb,UACA,OACA,QACA,YACD,CAAC,CACH,CACD,GAAI,YAEH,GACC,EAAC,MAAA,CAAI,UAAW,EAAqB,CAAE,UAAS,QAAO,CAAC,WACtD,EAAC,EAAA,CAAY,KAAM,GAAI,UAAU,gBAAiB,CAClD,EAAC,OAAA,CAAK,UAAU,mBAAU,WAAc,CAAA,EACpC,CAEP,EACC,EAAC,EAAA,CAAW,WAAA,CAAqB,CAEjC,EAAC,MAAA,CAAI,UAAW,EAAG,kDAAmD,GAAa,gCAAiC,EAAe,CAAG,YAAe,CAAA,EAElJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"button.variants-DkMqWB8G.mjs","names":[],"sources":["../packages/components/ui/button.variants.ts"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const buttonLoadingVariant = cva(['pointer-events-none absolute inset-0 z-10 flex cursor-default items-center justify-center rounded-sm'], {\n variants: {\n variant: {\n default: '',\n outline: '',\n soft: '',\n subtle: '',\n ghost: '',\n link: '',\n },\n color: {\n primary: '',\n secondary: '',\n muted: '',\n success: '',\n important: '',\n info: '',\n warning: '',\n danger: '',\n },\n },\n compoundVariants: [\n {\n variant: 'default',\n color: 'primary',\n className: 'bg-primary-weak',\n },\n {\n variant: 'default',\n color: 'secondary',\n className: 'bg-secondary-weak',\n },\n { variant: 'default', color: 'muted', className: 'bg-muted-weak' },\n {\n variant: 'default',\n color: 'success',\n className: 'bg-success-weak',\n },\n {\n variant: 'default',\n color: 'important',\n className: 'bg-important-weak',\n },\n {\n variant: 'default',\n color: 'info',\n className: 'bg-info-weak',\n },\n {\n variant: 'default',\n color: 'warning',\n className: 'bg-warning-weak',\n },\n {\n variant: 'default',\n color: 'danger',\n className: 'bg-danger-weak',\n },\n {\n variant: 'outline',\n color: 'primary',\n className: 'bg-card outline-1 outline-primary-weak',\n },\n {\n variant: 'outline',\n color: 'secondary',\n className: 'bg-card outline-1 outline-secondary-weak',\n },\n {\n variant: 'outline',\n color: 'muted',\n className: 'bg-card outline-1 outline-muted-weak',\n },\n {\n variant: 'outline',\n color: 'success',\n className: 'bg-card outline-1 outline-success-weak',\n },\n {\n variant: 'outline',\n color: 'important',\n className: 'bg-card outline-1 outline-important-weak',\n },\n {\n variant: 'outline',\n color: 'info',\n className: 'bg-card outline-1 outline-info-weak',\n },\n {\n variant: 'outline',\n color: 'warning',\n className: 'bg-card outline-1 outline-warning-weak',\n },\n {\n variant: 'outline',\n color: 'danger',\n className: 'bg-card outline-1 outline-danger-weak',\n },\n {\n variant: 'soft',\n color: 'primary',\n className: 'bg-primary-bg-subtle',\n },\n {\n variant: 'soft',\n color: 'secondary',\n className: 'bg-secondary-bg-subtle',\n },\n {\n variant: 'soft',\n color: 'muted',\n className: 'bg-muted-bg-subtle',\n },\n {\n variant: 'soft',\n color: 'success',\n className: 'bg-success-bg-subtle',\n },\n {\n variant: 'soft',\n color: 'important',\n className: 'bg-important-bg-subtle',\n },\n {\n variant: 'soft',\n color: 'info',\n className: 'bg-info-bg-subtle',\n },\n {\n variant: 'soft',\n color: 'warning',\n className: 'bg-warning-bg-subtle',\n },\n {\n variant: 'soft',\n color: 'danger',\n className: 'bg-danger-bg-subtle',\n },\n {\n variant: 'subtle',\n color: 'primary',\n className: 'bg-primary-bg-subtle outline-1 outline-primary-weak',\n },\n {\n variant: 'subtle',\n color: 'secondary',\n className: 'bg-secondary-bg-subtle outline-1 outline-secondary-weak',\n },\n {\n variant: 'subtle',\n color: 'muted',\n className: 'bg-muted-bg-subtle outline-1 outline-border-weak',\n },\n {\n variant: 'subtle',\n color: 'success',\n className: 'bg-success-bg-subtle outline-1 outline-success-weak',\n },\n {\n variant: 'subtle',\n color: 'important',\n className: 'bg-important-bg-subtle outline-1 outline-important-weak',\n },\n {\n variant: 'subtle',\n color: 'info',\n className: 'bg-info-bg-subtle outline-1 outline-info-weak',\n },\n {\n variant: 'subtle',\n color: 'warning',\n className: 'bg-warning-bg-subtle outline-1 outline-warning-weak',\n },\n {\n variant: 'subtle',\n color: 'danger',\n className: 'bg-danger-bg-subtle outline-1 outline-danger-weak',\n },\n {\n variant: 'ghost',\n color: 'primary',\n className: 'bg-primary-bg-subtle',\n },\n {\n variant: 'ghost',\n color: 'secondary',\n className: 'bg-secondary-bg-subtle',\n },\n {\n variant: 'ghost',\n color: 'muted',\n className: 'bg-muted-bg-subtle',\n },\n {\n variant: 'ghost',\n color: 'success',\n className: 'bg-success-bg-subtle',\n },\n {\n variant: 'ghost',\n color: 'important',\n className: 'bg-important-bg-subtle',\n },\n {\n variant: 'ghost',\n color: 'info',\n className: 'bg-info-bg-subtle',\n },\n {\n variant: 'ghost',\n color: 'warning',\n className: 'bg-warning-bg-subtle',\n },\n {\n variant: 'ghost',\n color: 'danger',\n className: 'bg-danger-bg-subtle',\n },\n ],\n});\n\n/**\n * Button variants definition for styling using class-variance-authority\n */\nexport const buttonVariants = cva(\n [\n 'relative cursor-pointer rounded-sm transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-in-out',\n 'whitespace-normal',\n 'inline-flex items-center justify-center',\n '[&_svg]:pointer-events-none',\n '[&_svg]:shrink-0',\n \"[&_svg:not([class*='size-'])]:size-4\",\n 'disabled:pointer-events-none disabled:cursor-default disabled:opacity-60',\n 'data-[state=loading]:pointer-events-none data-[state=loading]:cursor-default',\n ],\n {\n variants: {\n variant: {\n default: 'border border-transparent outline-none shadow-btn',\n outline: 'border bg-card outline-none',\n soft: 'outline-none outline-0',\n subtle: 'border border-transparent outline-1 -outline-offset-1',\n ghost: 'border border-transparent outline-none',\n link: 'border border-transparent outline-none',\n },\n color: {\n primary: '',\n secondary: '',\n muted: '',\n success: '',\n important: '',\n info: '',\n warning: '',\n danger: '',\n },\n size: {\n default: 'px-2.5 py-1.5 font-medium text-sm leading-5',\n xs: 'px-2 py-1 font-medium text-xs leading-4',\n sm: 'px-2.5 py-1.5 font-medium text-xs leading-4',\n md: 'px-2.5 py-1.5 font-medium text-sm leading-5',\n lg: 'px-3 py-2 font-medium text-sm leading-5',\n xl: 'px-3 py-2 font-medium text-base leading-6',\n icon: 'size-8',\n },\n },\n defaultVariants: {\n variant: 'default',\n color: 'primary',\n size: 'default',\n },\n compoundVariants: [\n {\n variant: 'default',\n color: 'primary',\n className: 'bg-primary text-primary-foreground hover:bg-primary-strong focus:ring-2 focus:ring-primary focus:ring-offset-2',\n },\n {\n variant: 'default',\n color: 'secondary',\n className: 'bg-secondary text-secondary-foreground hover:bg-secondary-strong focus:ring-2 focus:ring-secondary focus:ring-offset-2',\n },\n {\n variant: 'default',\n color: 'muted',\n className: 'bg-muted text-text-negative hover:opacity-80 focus:ring-2 focus:ring-muted focus:ring-offset-2',\n },\n {\n variant: 'default',\n color: 'success',\n className: 'bg-success text-success-foreground hover:bg-success-strong focus:ring-2 focus:ring-success focus:ring-offset-2',\n },\n {\n variant: 'default',\n color: 'important',\n className: 'bg-important text-text-negative hover:opacity-80 focus:ring-2 focus:ring-important focus:ring-offset-2',\n },\n {\n variant: 'default',\n color: 'info',\n className: 'bg-info text-info-foreground hover:bg-info-strong focus:ring-2 focus:ring-info focus:ring-offset-2',\n },\n {\n variant: 'default',\n color: 'warning',\n className: 'bg-warning text-warning-foreground hover:bg-warning-strong focus:ring-2 focus:ring-warning focus:ring-offset-2',\n },\n {\n variant: 'default',\n color: 'danger',\n className: 'bg-danger text-danger-foreground hover:bg-danger-strong focus:ring-2 focus:ring-danger focus:ring-offset-2',\n },\n {\n variant: 'outline',\n color: 'primary',\n className: 'border-primary text-primary hover:bg-primary-bg-subtle focus:border-primary-strong focus:ring-2 focus:ring-primary-weak',\n },\n {\n variant: 'outline',\n color: 'secondary',\n className: 'border-secondary text-secondary hover:bg-secondary-muted focus:border-secondary focus:ring-2 focus:ring-secondary-weak',\n },\n {\n variant: 'outline',\n color: 'muted',\n className: 'border-muted-weak text-muted hover:bg-muted-muted focus:border-muted-weak focus:ring-2 focus:ring-muted-weak',\n },\n {\n variant: 'outline',\n color: 'success',\n className: 'border-success text-success hover:bg-success-muted focus:border-success-strong focus:ring-2 focus:ring-success-weak',\n },\n {\n variant: 'outline',\n color: 'important',\n className: 'border-important text-important hover:bg-important-muted focus:border-important-strong focus:ring-2 focus:ring-important-weak',\n },\n {\n variant: 'outline',\n color: 'info',\n className: 'border-info text-info hover:bg-info-muted focus:border-info-strong focus:ring-2 focus:ring-info-weak',\n },\n {\n variant: 'outline',\n color: 'warning',\n className: 'border-warning text-warning hover:bg-warning-muted focus:border-warning-strong focus:ring-2 focus:ring-warning-weak',\n },\n {\n variant: 'outline',\n color: 'danger',\n className: 'border-danger text-danger hover:bg-danger-muted focus:border-danger-strong focus:ring-2 focus:ring-danger-weak',\n },\n {\n variant: 'soft',\n color: 'primary',\n className: 'bg-primary-bg-subtle text-primary hover:bg-primary-muted hover:text-primary-strong focus:bg-primary-weak',\n },\n {\n variant: 'soft',\n color: 'secondary',\n className: 'bg-secondary-bg-subtle text-secondary hover:bg-secondary-muted hover:text-secondary-strong focus:bg-secondary-weak',\n },\n {\n variant: 'soft',\n color: 'muted',\n className: 'bg-muted-bg-subtle text-muted hover:bg-muted-muted hover:text-muted-strong focus:bg-muted-weak',\n },\n {\n variant: 'soft',\n color: 'success',\n className: 'bg-success-bg-subtle text-success hover:bg-success-muted hover:text-success-strong focus:bg-success-weak',\n },\n {\n variant: 'soft',\n color: 'important',\n className: 'bg-important-bg-subtle text-important hover:bg-important-muted hover:text-important-strong focus:bg-important-weak',\n },\n {\n variant: 'soft',\n color: 'info',\n className: 'bg-info-bg-subtle text-info hover:bg-info-muted hover:text-info-strong focus:bg-info-weak',\n },\n {\n variant: 'soft',\n color: 'warning',\n className: 'bg-warning-bg-subtle text-warning hover:bg-warning-muted hover:text-warning-strong focus:bg-warning-weak',\n },\n {\n variant: 'soft',\n color: 'danger',\n className: 'bg-danger-bg-subtle text-danger hover:bg-danger-muted hover:text-danger-strong focus:bg-danger-weak',\n },\n {\n variant: 'subtle',\n color: 'primary',\n className: 'bg-primary-bg-subtle text-primary outline-primary hover:bg-primary-bg-subtle focus:outline-2 focus:outline-primary',\n },\n {\n variant: 'subtle',\n color: 'secondary',\n className: 'bg-secondary-bg-subtle text-secondary outline-secondary hover:bg-secondary-bg-subtle focus:outline-2 focus:outline-secondary',\n },\n {\n variant: 'subtle',\n color: 'muted',\n className: 'bg-muted-bg-subtle text-muted outline-border hover:bg-muted-bg-subtle focus:outline-2 focus:outline-border',\n },\n {\n variant: 'subtle',\n color: 'success',\n className: 'bg-success-bg-subtle text-success outline-success hover:bg-success-bg-subtle focus:outline-2 focus:outline-success',\n },\n {\n variant: 'subtle',\n color: 'important',\n className: 'bg-important-bg-subtle text-important outline-important hover:bg-important-bg-subtle focus:outline-2 focus:outline-important',\n },\n {\n variant: 'subtle',\n color: 'info',\n className: 'bg-info-bg-subtle text-info outline-info hover:bg-info-bg-subtle focus:outline-2 focus:outline-info',\n },\n {\n variant: 'subtle',\n color: 'warning',\n className: 'bg-warning-bg-subtle text-warning outline-warning hover:bg-warning-bg-subtle focus:outline-2 focus:outline-warning',\n },\n {\n variant: 'subtle',\n color: 'danger',\n className: 'bg-danger-bg-subtle text-danger outline-danger hover:bg-danger-bg-subtle focus:outline-2 focus:outline-danger',\n },\n {\n variant: 'ghost',\n color: 'primary',\n className: 'text-primary hover:bg-primary-bg-subtle focus:bg-primary-muted',\n },\n {\n variant: 'ghost',\n color: 'secondary',\n className: 'text-text-positive-weak hover:bg-secondary-bg-subtle focus:bg-secondary-muted',\n },\n {\n variant: 'ghost',\n color: 'muted',\n className: 'text-text-positive-weak hover:bg-muted-bg-subtle focus:bg-muted-muted',\n },\n {\n variant: 'ghost',\n color: 'success',\n className: 'text-success hover:bg-success-bg-subtle focus:bg-success-muted',\n },\n {\n variant: 'ghost',\n color: 'important',\n className: 'text-important hover:bg-important-bg-subtle focus:bg-important-muted',\n },\n {\n variant: 'ghost',\n color: 'info',\n className: 'text-info hover:bg-info-bg-subtle focus:bg-info-muted',\n },\n {\n variant: 'ghost',\n color: 'warning',\n className: 'text-warning hover:bg-warning-bg-subtle focus:bg-warning-muted',\n },\n {\n variant: 'ghost',\n color: 'danger',\n className: 'text-danger hover:bg-danger-bg-subtle focus:bg-danger-muted',\n },\n {\n variant: 'link',\n color: 'primary',\n className: 'text-primary focus:ring-2 focus:ring-primary focus:ring-offset-2',\n },\n {\n variant: 'link',\n color: 'secondary',\n className: 'text-secondary focus:ring-2 focus:ring-secondary focus:ring-offset-2',\n },\n {\n variant: 'link',\n color: 'muted',\n className: 'text-muted focus:ring-2 focus:ring-muted focus:ring-offset-2',\n },\n {\n variant: 'link',\n color: 'success',\n className: 'text-success focus:ring-2 focus:ring-success focus:ring-offset-2',\n },\n {\n variant: 'link',\n color: 'important',\n className: 'text-important focus:ring-2 focus:ring-important focus:ring-offset-2',\n },\n {\n variant: 'link',\n color: 'info',\n className: 'text-info focus:ring-2 focus:ring-info focus:ring-offset-2',\n },\n {\n variant: 'link',\n color: 'warning',\n className: 'text-warning focus:ring-2 focus:ring-warning focus:ring-offset-2',\n },\n {\n variant: 'link',\n color: 'danger',\n className: 'text-danger focus:ring-2 focus:ring-danger focus:ring-offset-2',\n },\n ],\n }\n);\n\nexport type ButtonVariantProps = VariantProps<typeof buttonVariants>;\n"],"mappings":"+CAEA,MAAa,EAAuB,EAAI,CAAC,uGAAuG,CAAE,CAChJ,SAAU,CACR,QAAS,CACP,QAAS,GACT,QAAS,GACT,KAAM,GACN,OAAQ,GACR,MAAO,GACP,KAAM,GACP,CACD,MAAO,CACL,QAAS,GACT,UAAW,GACX,MAAO,GACP,QAAS,GACT,UAAW,GACX,KAAM,GACN,QAAS,GACT,OAAQ,GACT,CACF,CACD,iBAAkB,CAChB,CACE,QAAS,UACT,MAAO,UACP,UAAW,kBACZ,CACD,CACE,QAAS,UACT,MAAO,YACP,UAAW,oBACZ,CACD,CAAE,QAAS,UAAW,MAAO,QAAS,UAAW,gBAAiB,CAClE,CACE,QAAS,UACT,MAAO,UACP,UAAW,kBACZ,CACD,CACE,QAAS,UACT,MAAO,YACP,UAAW,oBACZ,CACD,CACE,QAAS,UACT,MAAO,OACP,UAAW,eACZ,CACD,CACE,QAAS,UACT,MAAO,UACP,UAAW,kBACZ,CACD,CACE,QAAS,UACT,MAAO,SACP,UAAW,iBACZ,CACD,CACE,QAAS,UACT,MAAO,UACP,UAAW,yCACZ,CACD,CACE,QAAS,UACT,MAAO,YACP,UAAW,2CACZ,CACD,CACE,QAAS,UACT,MAAO,QACP,UAAW,uCACZ,CACD,CACE,QAAS,UACT,MAAO,UACP,UAAW,yCACZ,CACD,CACE,QAAS,UACT,MAAO,YACP,UAAW,2CACZ,CACD,CACE,QAAS,UACT,MAAO,OACP,UAAW,sCACZ,CACD,CACE,QAAS,UACT,MAAO,UACP,UAAW,yCACZ,CACD,CACE,QAAS,UACT,MAAO,SACP,UAAW,wCACZ,CACD,CACE,QAAS,OACT,MAAO,UACP,UAAW,uBACZ,CACD,CACE,QAAS,OACT,MAAO,YACP,UAAW,yBACZ,CACD,CACE,QAAS,OACT,MAAO,QACP,UAAW,qBACZ,CACD,CACE,QAAS,OACT,MAAO,UACP,UAAW,uBACZ,CACD,CACE,QAAS,OACT,MAAO,YACP,UAAW,yBACZ,CACD,CACE,QAAS,OACT,MAAO,OACP,UAAW,oBACZ,CACD,CACE,QAAS,OACT,MAAO,UACP,UAAW,uBACZ,CACD,CACE,QAAS,OACT,MAAO,SACP,UAAW,sBACZ,CACD,CACE,QAAS,SACT,MAAO,UACP,UAAW,sDACZ,CACD,CACE,QAAS,SACT,MAAO,YACP,UAAW,0DACZ,CACD,CACE,QAAS,SACT,MAAO,QACP,UAAW,mDACZ,CACD,CACE,QAAS,SACT,MAAO,UACP,UAAW,sDACZ,CACD,CACE,QAAS,SACT,MAAO,YACP,UAAW,0DACZ,CACD,CACE,QAAS,SACT,MAAO,OACP,UAAW,gDACZ,CACD,CACE,QAAS,SACT,MAAO,UACP,UAAW,sDACZ,CACD,CACE,QAAS,SACT,MAAO,SACP,UAAW,oDACZ,CACD,CACE,QAAS,QACT,MAAO,UACP,UAAW,uBACZ,CACD,CACE,QAAS,QACT,MAAO,YACP,UAAW,yBACZ,CACD,CACE,QAAS,QACT,MAAO,QACP,UAAW,qBACZ,CACD,CACE,QAAS,QACT,MAAO,UACP,UAAW,uBACZ,CACD,CACE,QAAS,QACT,MAAO,YACP,UAAW,yBACZ,CACD,CACE,QAAS,QACT,MAAO,OACP,UAAW,oBACZ,CACD,CACE,QAAS,QACT,MAAO,UACP,UAAW,uBACZ,CACD,CACE,QAAS,QACT,MAAO,SACP,UAAW,sBACZ,CACF,CACF,CAAC,CAKW,EAAiB,EAC5B,CACE,kIACA,oBACA,0CACA,8BACA,mBACA,uCACA,2EACA,+EACD,CACD,CACE,SAAU,CACR,QAAS,CACP,QAAS,oDACT,QAAS,8BACT,KAAM,yBACN,OAAQ,wDACR,MAAO,yCACP,KAAM,yCACP,CACD,MAAO,CACL,QAAS,GACT,UAAW,GACX,MAAO,GACP,QAAS,GACT,UAAW,GACX,KAAM,GACN,QAAS,GACT,OAAQ,GACT,CACD,KAAM,CACJ,QAAS,8CACT,GAAI,0CACJ,GAAI,8CACJ,GAAI,8CACJ,GAAI,0CACJ,GAAI,4CACJ,KAAM,SACP,CACF,CACD,gBAAiB,CACf,QAAS,UACT,MAAO,UACP,KAAM,UACP,CACD,iBAAkB,CAChB,CACE,QAAS,UACT,MAAO,UACP,UAAW,iHACZ,CACD,CACE,QAAS,UACT,MAAO,YACP,UAAW,yHACZ,CACD,CACE,QAAS,UACT,MAAO,QACP,UAAW,iGACZ,CACD,CACE,QAAS,UACT,MAAO,UACP,UAAW,iHACZ,CACD,CACE,QAAS,UACT,MAAO,YACP,UAAW,yGACZ,CACD,CACE,QAAS,UACT,MAAO,OACP,UAAW,qGACZ,CACD,CACE,QAAS,UACT,MAAO,UACP,UAAW,iHACZ,CACD,CACE,QAAS,UACT,MAAO,SACP,UAAW,6GACZ,CACD,CACE,QAAS,UACT,MAAO,UACP,UAAW,0HACZ,CACD,CACE,QAAS,UACT,MAAO,YACP,UAAW,yHACZ,CACD,CACE,QAAS,UACT,MAAO,QACP,UAAW,+GACZ,CACD,CACE,QAAS,UACT,MAAO,UACP,UAAW,sHACZ,CACD,CACE,QAAS,UACT,MAAO,YACP,UAAW,gIACZ,CACD,CACE,QAAS,UACT,MAAO,OACP,UAAW,uGACZ,CACD,CACE,QAAS,UACT,MAAO,UACP,UAAW,sHACZ,CACD,CACE,QAAS,UACT,MAAO,SACP,UAAW,iHACZ,CACD,CACE,QAAS,OACT,MAAO,UACP,UAAW,2GACZ,CACD,CACE,QAAS,OACT,MAAO,YACP,UAAW,qHACZ,CACD,CACE,QAAS,OACT,MAAO,QACP,UAAW,iGACZ,CACD,CACE,QAAS,OACT,MAAO,UACP,UAAW,2GACZ,CACD,CACE,QAAS,OACT,MAAO,YACP,UAAW,qHACZ,CACD,CACE,QAAS,OACT,MAAO,OACP,UAAW,4FACZ,CACD,CACE,QAAS,OACT,MAAO,UACP,UAAW,2GACZ,CACD,CACE,QAAS,OACT,MAAO,SACP,UAAW,sGACZ,CACD,CACE,QAAS,SACT,MAAO,UACP,UAAW,qHACZ,CACD,CACE,QAAS,SACT,MAAO,YACP,UAAW,+HACZ,CACD,CACE,QAAS,SACT,MAAO,QACP,UAAW,6GACZ,CACD,CACE,QAAS,SACT,MAAO,UACP,UAAW,qHACZ,CACD,CACE,QAAS,SACT,MAAO,YACP,UAAW,+HACZ,CACD,CACE,QAAS,SACT,MAAO,OACP,UAAW,sGACZ,CACD,CACE,QAAS,SACT,MAAO,UACP,UAAW,qHACZ,CACD,CACE,QAAS,SACT,MAAO,SACP,UAAW,gHACZ,CACD,CACE,QAAS,QACT,MAAO,UACP,UAAW,iEACZ,CACD,CACE,QAAS,QACT,MAAO,YACP,UAAW,gFACZ,CACD,CACE,QAAS,QACT,MAAO,QACP,UAAW,wEACZ,CACD,CACE,QAAS,QACT,MAAO,UACP,UAAW,iEACZ,CACD,CACE,QAAS,QACT,MAAO,YACP,UAAW,uEACZ,CACD,CACE,QAAS,QACT,MAAO,OACP,UAAW,wDACZ,CACD,CACE,QAAS,QACT,MAAO,UACP,UAAW,iEACZ,CACD,CACE,QAAS,QACT,MAAO,SACP,UAAW,8DACZ,CACD,CACE,QAAS,OACT,MAAO,UACP,UAAW,mEACZ,CACD,CACE,QAAS,OACT,MAAO,YACP,UAAW,uEACZ,CACD,CACE,QAAS,OACT,MAAO,QACP,UAAW,+DACZ,CACD,CACE,QAAS,OACT,MAAO,UACP,UAAW,mEACZ,CACD,CACE,QAAS,OACT,MAAO,YACP,UAAW,uEACZ,CACD,CACE,QAAS,OACT,MAAO,OACP,UAAW,6DACZ,CACD,CACE,QAAS,OACT,MAAO,UACP,UAAW,mEACZ,CACD,CACE,QAAS,OACT,MAAO,SACP,UAAW,iEACZ,CACF,CACF,CACF"}
@@ -1,2 +0,0 @@
1
- import{n as e}from"./button.variants-DkMqWB8G.mjs";import{t}from"./button-CCVJTHBI.mjs";import{ChevronDownIcon as n,ChevronLeftIcon as r,ChevronRightIcon as i}from"lucide-react";import{useEffect as a,useRef as o}from"react";import{cn as s}from"@customafk/react-toolkit/utils";import{jsx as c}from"react/jsx-runtime";import{DayPicker as l,getDefaultClassNames as u}from"react-day-picker";const d=({rootRef:e,className:t,...n})=>c(`div`,{"data-slot":`calendar`,ref:e,className:s(t),...n}),f=e=>e.orientation===`left`?c(r,{size:16,className:e.className,...e}):e.orientation===`right`?c(i,{size:16,className:e.className,...e}):c(n,{size:16,className:e.className,...e}),p=({className:e,day:n,modifiers:r,color:i,...l})=>{let d=u(),f=o(null);return a(()=>{r.focused&&f.current?.focus()},[r.focused]),c(t,{ref:f,variant:`ghost`,color:`muted`,"data-day":n.date.toLocaleDateString(),"data-selected-single":r.selected&&!r.range_start&&!r.range_end&&!r.range_middle,"data-range-start":r.range_start,"data-range-end":r.range_end,"data-range-middle":r.range_middle,className:s(`flex aspect-square size-9 flex-col rounded font-normal text-sm tabular-nums leading-none`,`data-[selected-single=true]:bg-primary`,`data-[selected-single=true]:text-white`,`data-[range-middle=true]:bg-muted-muted`,`data-[range-middle=true]:text-text-positive`,`data-[range-start=true]:bg-primary-muted`,`data-[range-start=true]:text-text-positive-strong`,`data-[range-end=true]:bg-primary`,`data-[range-end=true]:text-text-positive-strong`,`group-data-[focused=true]/day:border-primary-strong`,`group-data-[focused=true]/day:relative`,`group-data-[focused=true]/day:z-10`,`data-[range-end=true]:rounded`,`data-[range-end=true]:rounded-r`,`data-[range-middle=true]:rounded-none`,`data-[range-start=true]:rounded`,`data-[range-start=true]:rounded-l`,`[&>span]:text-xs [&>span]:opacity-70`,d.day,e),...l})},m=({children:e,...t})=>c(`td`,{...t,children:c(`div`,{className:`flex size-(--cell-size) items-center justify-center text-center`,children:e})});function h({className:t,classNames:n,showOutsideDays:r=!0,captionLayout:i=`label`,buttonVariant:a=`ghost`,formatters:o,components:h,...g}){let _=u();return c(l,{showOutsideDays:r,className:s(`group/calendar bg-background p-3`,`[--cell-size:--spacing(8)]`,`in-data-[slot=card-content]:bg-transparent`,`in-data-[slot=popover-content]:bg-transparent`,String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,t),captionLayout:i,formatters:{formatMonthDropdown:e=>e.toLocaleString(`default`,{month:`short`}),...o},classNames:{root:s(_.root),months:s(`flex gap-4 flex-col md:flex-row relative`,_.months),month:s(`flex flex-col w-full gap-4`,_.month),nav:s(`flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between`,_.nav),button_previous:s(e({variant:`outline`,color:`muted`}),`size-(--cell-size) aria-disabled:opacity-50 p-0 select-none`,_.button_previous),button_next:s(e({variant:`outline`,color:`muted`}),`size-(--cell-size) aria-disabled:opacity-50 p-0 select-none`,_.button_next),month_caption:s(`flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)`,_.month_caption),dropdowns:s(`w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5`,_.dropdowns),dropdown_root:s(`relative has-focus:border-primary-strong border border-border-weak shadow-xs has-focus:ring-primary-weak has-focus:ring-[3px] rounded`,_.dropdown_root),dropdown:s(`absolute inset-0 opacity-0`,_.dropdown),caption_label:s(`select-none font-medium`,i===`label`&&`text-sm`,i!==`label`&&`rounded shadow-xs px-2 flex items-center gap-0.5 text-sm h-8 [&>svg]:text-text-positive [&>svg]:size-3.5`,_.caption_label),table:`w-full border-collapse`,weekdays:s(`flex`,_.weekdays),weekday:s(`text-text-positive rounded flex-1 font-normal text-[0.8rem] select-none`,_.weekday),week:s(`flex w-full mt-2`,_.week),week_number_header:s(`select-none w-(--cell-size)`,_.week_number_header),week_number:s(`text-[0.8rem] select-none text-text-positive`,_.week_number),day:s(`relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l [&:last-child[data-selected=true]_button]:rounded-r group/day aspect-square select-none`,_.day),range_start:s(`rounded-l bg-muted-muted`,_.range_start),range_middle:s(`rounded-none`,_.range_middle),range_end:s(`rounded-r bg-muted-muted`,_.range_end),today:s(`bg-muted-muted text-text-positive rounded data-[selected=true]:rounded-none`,_.today),outside:s(`[&>button]:text-text-positive-muted aria-selected:text-text-positive`),disabled:s(`bg-muted-muted text-text-positive opacity-50`,_.disabled),hidden:s(`invisible`,_.hidden),...n},components:{Root:d,Chevron:f,DayButton:p,WeekNumber:m,...h},...g})}export{p as n,h as t};
2
- //# sourceMappingURL=calendar-R866yyd1.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"calendar-R866yyd1.mjs","names":[],"sources":["../packages/components/ui/calendar.tsx"],"sourcesContent":["'use client';\nimport { type HTMLAttributes, type ThHTMLAttributes, useEffect, useRef } from 'react';\n\nimport { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Button } from '@/components/ui/button';\nimport { buttonVariants } from '@/components/ui/button.variants';\n\nimport { type CalendarWeek, type CustomComponents, type DayButton, DayPicker, getDefaultClassNames } from 'react-day-picker';\n\nconst CalendarRoot = ({\n rootRef,\n className,\n ...props\n}: {\n rootRef?: React.Ref<HTMLDivElement>;\n} & HTMLAttributes<HTMLDivElement>) => {\n return <div data-slot=\"calendar\" ref={rootRef} className={cn(className)} {...props} />;\n};\n\nconst CalendarChevron = (props: { className?: string; size?: number; disabled?: boolean; orientation?: 'up' | 'down' | 'left' | 'right' }) => {\n if (props.orientation === 'left') {\n return <ChevronLeftIcon size={16} className={props.className} {...props} />;\n }\n\n if (props.orientation === 'right') {\n return <ChevronRightIcon size={16} className={props.className} {...props} />;\n }\n\n return <ChevronDownIcon size={16} className={props.className} {...props} />;\n};\n\nconst CalendarDayButton = ({ className, day, modifiers, color: _, ...props }: React.ComponentProps<typeof DayButton>) => {\n const defaultClassNames = getDefaultClassNames();\n\n const ref = useRef<HTMLButtonElement>(null);\n useEffect(() => {\n if (modifiers.focused) ref.current?.focus();\n }, [modifiers.focused]);\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n color=\"muted\"\n data-day={day.date.toLocaleDateString()}\n data-selected-single={modifiers.selected && !modifiers.range_start && !modifiers.range_end && !modifiers.range_middle}\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n 'flex aspect-square size-9 flex-col rounded font-normal text-sm tabular-nums leading-none',\n 'data-[selected-single=true]:bg-primary',\n 'data-[selected-single=true]:text-white',\n 'data-[range-middle=true]:bg-muted-muted',\n 'data-[range-middle=true]:text-text-positive',\n 'data-[range-start=true]:bg-primary-muted',\n 'data-[range-start=true]:text-text-positive-strong',\n 'data-[range-end=true]:bg-primary',\n 'data-[range-end=true]:text-text-positive-strong',\n 'group-data-[focused=true]/day:border-primary-strong',\n 'group-data-[focused=true]/day:relative',\n 'group-data-[focused=true]/day:z-10',\n 'data-[range-end=true]:rounded',\n 'data-[range-end=true]:rounded-r',\n 'data-[range-middle=true]:rounded-none',\n 'data-[range-start=true]:rounded',\n 'data-[range-start=true]:rounded-l',\n '[&>span]:text-xs [&>span]:opacity-70',\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n );\n};\n\nconst CalendarWeekNumber = ({\n children,\n ...props\n}: {\n week: CalendarWeek;\n} & ThHTMLAttributes<HTMLTableCellElement>) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) items-center justify-center text-center\">{children}</div>\n </td>\n );\n};\n\n/**\n * A fully styled date-picker calendar built on top of react-day-picker, supporting single, range, and multiple selection modes.\n *\n * @example\n * ```tsx\n * import { Calendar } from '@customafk/lunas-ui/ui/calendar';\n *\n * const [date, setDate] = React.useState<Date>();\n *\n * <Calendar\n * mode=\"single\"\n * selected={date}\n * onSelect={setDate}\n * captionLayout=\"dropdown\"\n * />\n * ```\n */\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = 'label',\n buttonVariant = 'ghost',\n formatters,\n components,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n /** Variant applied to the previous/next navigation buttons. */\n buttonVariant?: React.ComponentProps<typeof Button>['variant'];\n}) {\n const defaultClassNames = getDefaultClassNames();\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n 'group/calendar bg-background p-3',\n '[--cell-size:--spacing(8)]',\n 'in-data-[slot=card-content]:bg-transparent',\n 'in-data-[slot=popover-content]:bg-transparent',\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: date => date.toLocaleString('default', { month: 'short' }),\n ...formatters,\n }}\n classNames={{\n root: cn(defaultClassNames.root),\n months: cn('flex gap-4 flex-col md:flex-row relative', defaultClassNames.months),\n month: cn('flex flex-col w-full gap-4', defaultClassNames.month),\n nav: cn('flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between', defaultClassNames.nav),\n button_previous: cn(\n buttonVariants({ variant: 'outline', color: 'muted' }),\n 'size-(--cell-size) aria-disabled:opacity-50 p-0 select-none',\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: 'outline', color: 'muted' }),\n 'size-(--cell-size) aria-disabled:opacity-50 p-0 select-none',\n defaultClassNames.button_next\n ),\n month_caption: cn('flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)', defaultClassNames.month_caption),\n dropdowns: cn('w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5', defaultClassNames.dropdowns),\n dropdown_root: cn(\n 'relative has-focus:border-primary-strong border border-border-weak shadow-xs has-focus:ring-primary-weak has-focus:ring-[3px] rounded',\n defaultClassNames.dropdown_root\n ),\n dropdown: cn('absolute inset-0 opacity-0', defaultClassNames.dropdown),\n caption_label: cn(\n 'select-none font-medium',\n captionLayout === 'label' && 'text-sm',\n captionLayout !== 'label' && 'rounded shadow-xs px-2 flex items-center gap-0.5 text-sm h-8 [&>svg]:text-text-positive [&>svg]:size-3.5',\n defaultClassNames.caption_label\n ),\n table: 'w-full border-collapse',\n weekdays: cn('flex', defaultClassNames.weekdays),\n weekday: cn('text-text-positive rounded flex-1 font-normal text-[0.8rem] select-none', defaultClassNames.weekday),\n week: cn('flex w-full mt-2', defaultClassNames.week),\n week_number_header: cn('select-none w-(--cell-size)', defaultClassNames.week_number_header),\n week_number: cn('text-[0.8rem] select-none text-text-positive', defaultClassNames.week_number),\n day: cn(\n 'relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l [&:last-child[data-selected=true]_button]:rounded-r group/day aspect-square select-none',\n defaultClassNames.day\n ),\n range_start: cn('rounded-l bg-muted-muted', defaultClassNames.range_start),\n range_middle: cn('rounded-none', defaultClassNames.range_middle),\n range_end: cn('rounded-r bg-muted-muted', defaultClassNames.range_end),\n today: cn('bg-muted-muted text-text-positive rounded data-[selected=true]:rounded-none', defaultClassNames.today),\n outside: cn('[&>button]:text-text-positive-muted aria-selected:text-text-positive'),\n disabled: cn('bg-muted-muted text-text-positive opacity-50', defaultClassNames.disabled),\n hidden: cn('invisible', defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: CalendarRoot as CustomComponents['Root'],\n Chevron: CalendarChevron as CustomComponents['Chevron'],\n DayButton: CalendarDayButton as CustomComponents['DayButton'],\n WeekNumber: CalendarWeekNumber as CustomComponents['WeekNumber'],\n ...components,\n }}\n {...props}\n />\n );\n}\n\nexport { Calendar, CalendarDayButton };\n"],"mappings":"mYAYA,MAAM,GAAgB,CACpB,UACA,YACA,GAAG,KAII,EAAC,MAAA,CAAI,YAAU,WAAW,IAAK,EAAS,UAAW,EAAG,EAAU,CAAE,GAAI,GAAS,CAGlF,EAAmB,GACnB,EAAM,cAAgB,OACjB,EAAC,EAAA,CAAgB,KAAM,GAAI,UAAW,EAAM,UAAW,GAAI,GAAS,CAGzE,EAAM,cAAgB,QACjB,EAAC,EAAA,CAAiB,KAAM,GAAI,UAAW,EAAM,UAAW,GAAI,GAAS,CAGvE,EAAC,EAAA,CAAgB,KAAM,GAAI,UAAW,EAAM,UAAW,GAAI,GAAS,CAGvE,GAAqB,CAAE,YAAW,MAAK,YAAW,MAAO,EAAG,GAAG,KAAoD,CACvH,IAAM,EAAoB,GAAsB,CAE1C,EAAM,EAA0B,KAAK,CAK3C,OAJA,MAAgB,CACV,EAAU,SAAS,EAAI,SAAS,OAAO,EAC1C,CAAC,EAAU,QAAQ,CAAC,CAGrB,EAAC,EAAA,CACM,MACL,QAAQ,QACR,MAAM,QACN,WAAU,EAAI,KAAK,oBAAoB,CACvC,uBAAsB,EAAU,UAAY,CAAC,EAAU,aAAe,CAAC,EAAU,WAAa,CAAC,EAAU,aACzG,mBAAkB,EAAU,YAC5B,iBAAgB,EAAU,UAC1B,oBAAmB,EAAU,aAC7B,UAAW,EACT,2FACA,yCACA,yCACA,0CACA,8CACA,2CACA,oDACA,mCACA,kDACA,sDACA,yCACA,qCACA,gCACA,kCACA,wCACA,kCACA,oCACA,uCACA,EAAkB,IAClB,EACD,CACD,GAAI,GACJ,EAIA,GAAsB,CAC1B,WACA,GAAG,KAKD,EAAC,KAAA,CAAG,GAAI,WACN,EAAC,MAAA,CAAI,UAAU,kEAAmE,YAAe,EAC9F,CAqBT,SAAS,EAAS,CAChB,YACA,aACA,kBAAkB,GAClB,gBAAgB,QAChB,gBAAgB,QAChB,aACA,aACA,GAAG,GAIF,CACD,IAAM,EAAoB,GAAsB,CAEhD,OACE,EAAC,EAAA,CACkB,kBACjB,UAAW,EACT,mCACA,6BACA,6CACA,gDACA,OAAO,GAAG,4CACV,OAAO,GAAG,gDACV,EACD,CACc,gBACf,WAAY,CACV,oBAAqB,GAAQ,EAAK,eAAe,UAAW,CAAE,MAAO,QAAS,CAAC,CAC/E,GAAG,EACJ,CACD,WAAY,CACV,KAAM,EAAG,EAAkB,KAAK,CAChC,OAAQ,EAAG,2CAA4C,EAAkB,OAAO,CAChF,MAAO,EAAG,6BAA8B,EAAkB,MAAM,CAChE,IAAK,EAAG,0EAA2E,EAAkB,IAAI,CACzG,gBAAiB,EACf,EAAe,CAAE,QAAS,UAAW,MAAO,QAAS,CAAC,CACtD,8DACA,EAAkB,gBACnB,CACD,YAAa,EACX,EAAe,CAAE,QAAS,UAAW,MAAO,QAAS,CAAC,CACtD,8DACA,EAAkB,YACnB,CACD,cAAe,EAAG,2EAA4E,EAAkB,cAAc,CAC9H,UAAW,EAAG,sFAAuF,EAAkB,UAAU,CACjI,cAAe,EACb,wIACA,EAAkB,cACnB,CACD,SAAU,EAAG,6BAA8B,EAAkB,SAAS,CACtE,cAAe,EACb,0BACA,IAAkB,SAAW,UAC7B,IAAkB,SAAW,2GAC7B,EAAkB,cACnB,CACD,MAAO,yBACP,SAAU,EAAG,OAAQ,EAAkB,SAAS,CAChD,QAAS,EAAG,0EAA2E,EAAkB,QAAQ,CACjH,KAAM,EAAG,mBAAoB,EAAkB,KAAK,CACpD,mBAAoB,EAAG,8BAA+B,EAAkB,mBAAmB,CAC3F,YAAa,EAAG,+CAAgD,EAAkB,YAAY,CAC9F,IAAK,EACH,sLACA,EAAkB,IACnB,CACD,YAAa,EAAG,2BAA4B,EAAkB,YAAY,CAC1E,aAAc,EAAG,eAAgB,EAAkB,aAAa,CAChE,UAAW,EAAG,2BAA4B,EAAkB,UAAU,CACtE,MAAO,EAAG,8EAA+E,EAAkB,MAAM,CACjH,QAAS,EAAG,uEAAuE,CACnF,SAAU,EAAG,+CAAgD,EAAkB,SAAS,CACxF,OAAQ,EAAG,YAAa,EAAkB,OAAO,CACjD,GAAG,EACJ,CACD,WAAY,CACV,KAAM,EACN,QAAS,EACT,UAAW,EACX,WAAY,EACZ,GAAG,EACJ,CACD,GAAI,GACJ"}
@@ -1,2 +0,0 @@
1
- import"../button.variants-DkMqWB8G.mjs";import{t as e}from"../button-CCVJTHBI.mjs";import"../heading-De4Pn3mZ.mjs";import"../paragraph-DYLaQtTV.mjs";import{Card as t}from"../ui/card.mjs";import"../skeleton-C51IdOfK.mjs";import{t as n}from"../image-D7OZ13Ib.mjs";import{HeartIcon as r,ShoppingCartIcon as i}from"lucide-react";import{jsx as a,jsxs as o}from"react/jsx-runtime";const s=({name:s,thumbnail:c,price:l})=>o(t,{className:`h-36 w-full flex-row gap-4 p-2 pr-4`,children:[a(n,{className:`aspect-square h-full flex-0`,src:c}),o(`div`,{className:`flex flex-1 flex-col gap-y-1`,children:[a(`p`,{className:`line-clamp-2 h-10 font-semibold text-sm text-text-positive`,children:s}),o(`p`,{className:`font-bold text-base text-success`,children:[l.toLocaleString(`vi-VN`),a(`small`,{className:`ml-0.5`,children:`VND`})]}),o(`div`,{className:`mb-3 flex flex-1 items-end justify-end gap-x-1`,children:[a(e,{size:`icon`,variant:`outline`,color:`muted`,className:`size-9`,children:a(r,{})}),o(e,{className:`max-w-52 max-sm:size-9 sm:flex-1`,children:[a(i,{}),a(`p`,{className:`sr-only sm:not-sr-only`,children:`Thêm vào giỏ`})]})]})]})]});export{s as GridProductCard};
2
- //# sourceMappingURL=grid-product-card.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grid-product-card.mjs","names":["GridProductCard: React.FC<Props>","Image"],"sources":["../../packages/components/cards/grid-product-card.tsx"],"sourcesContent":["import { HeartIcon, ShoppingCartIcon } from 'lucide-react';\n\nimport { Button } from '../ui/button';\nimport { Card } from '../ui/card';\nimport { Image } from '../ui/image';\n\ntype Props = {\n /** Unique identifier for the product. */\n id: string;\n /** URL-friendly slug for the product. */\n slug: string;\n /** Display name of the product shown on the card. */\n name: string;\n /** URL of the product's thumbnail image. */\n thumbnail: string;\n /** Regular price of the product in VND. */\n price: number;\n /** Optional sale / discounted price in VND. */\n salePrice?: number;\n /** Optional sale discount percentage (0–100). */\n salePercentage?: number;\n};\n\n/**\n * A horizontal (grid-row) product card displaying a thumbnail, name, price, and add-to-cart / favourite actions.\n *\n * @example\n * ```tsx\n * import { GridProductCard } from '@customafk/lunas-ui/cards/grid-product-card';\n *\n * <GridProductCard\n * id=\"prod-1\"\n * slug=\"awesome-widget\"\n * name=\"Awesome Widget\"\n * thumbnail=\"/images/widget.png\"\n * price={299000}\n * />\n * ```\n */\nexport const GridProductCard: React.FC<Props> = ({ name, thumbnail, price }) => {\n return (\n <Card className=\"h-36 w-full flex-row gap-4 p-2 pr-4\">\n <Image className=\"aspect-square h-full flex-0\" src={thumbnail} />\n <div className=\"flex flex-1 flex-col gap-y-1\">\n <p className=\"line-clamp-2 h-10 font-semibold text-sm text-text-positive\">{name}</p>\n <p className=\"font-bold text-base text-success\">\n {price.toLocaleString('vi-VN')}\n <small className=\"ml-0.5\">VND</small>\n </p>\n <div className=\"mb-3 flex flex-1 items-end justify-end gap-x-1\">\n <Button size=\"icon\" variant=\"outline\" color=\"muted\" className=\"size-9\">\n <HeartIcon />\n </Button>\n <Button className=\"max-w-52 max-sm:size-9 sm:flex-1\">\n <ShoppingCartIcon />\n <p className=\"sr-only sm:not-sr-only\">Thêm vào giỏ</p>\n </Button>\n </div>\n </div>\n </Card>\n );\n};\n"],"mappings":"uXAuCA,MAAaA,GAAoC,CAAE,OAAM,YAAW,WAEhE,EAAC,EAAA,CAAK,UAAU,gDACd,EAACC,EAAAA,CAAM,UAAU,8BAA8B,IAAK,GAAa,CACjE,EAAC,MAAA,CAAI,UAAU,yCACb,EAAC,IAAA,CAAE,UAAU,sEAA8D,GAAS,CACpF,EAAC,IAAA,CAAE,UAAU,6CACV,EAAM,eAAe,QAAQ,CAC9B,EAAC,QAAA,CAAM,UAAU,kBAAS,OAAW,CAAA,EACnC,CACJ,EAAC,MAAA,CAAI,UAAU,2DACb,EAAC,EAAA,CAAO,KAAK,OAAO,QAAQ,UAAU,MAAM,QAAQ,UAAU,kBAC5D,EAAC,EAAA,EAAA,CAAY,EACN,CACT,EAAC,EAAA,CAAO,UAAU,6CAChB,EAAC,EAAA,EAAA,CAAmB,CACpB,EAAC,IAAA,CAAE,UAAU,kCAAyB,gBAAgB,CAAA,EAC/C,CAAA,EACL,GACF,CAAA,EACD"}
@@ -1,2 +0,0 @@
1
- import"../button.variants-DkMqWB8G.mjs";import{t as e}from"../button-CCVJTHBI.mjs";import"../heading-De4Pn3mZ.mjs";import"../paragraph-DYLaQtTV.mjs";import{Card as t}from"../ui/card.mjs";import"../skeleton-C51IdOfK.mjs";import{t as n}from"../image-D7OZ13Ib.mjs";import{HeartIcon as r,ShoppingCartIcon as i}from"lucide-react";import{jsx as a,jsxs as o}from"react/jsx-runtime";const s=({name:s,thumbnail:c,price:l})=>o(t,{className:`size-full gap-y-2 p-2 pb-4`,children:[a(n,{src:c,className:`aspect-square`}),o(`div`,{className:`flex flex-col gap-y-1`,children:[a(`p`,{className:`line-clamp-2 h-10 text-sm font-semibold`,children:s}),o(`p`,{className:`text-success text-base font-bold`,children:[l.toLocaleString(`vi-VN`),a(`small`,{className:`ml-0.5`,children:`VND`})]}),o(`div`,{className:`mt-1 flex gap-x-1`,children:[o(e,{className:`flex-1`,children:[a(i,{}),`Thêm vào giỏ`]}),a(e,{size:`icon`,variant:`outline`,color:`muted`,className:`size-9`,children:a(r,{})})]})]})]});export{s as ProductCard};
2
- //# sourceMappingURL=product-card.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"product-card.mjs","names":["ProductCard: React.FC<Props>","Image"],"sources":["../../packages/components/cards/product-card.tsx"],"sourcesContent":["import { HeartIcon, ShoppingCartIcon } from 'lucide-react';\n\nimport { Button } from '../ui/button';\nimport { Card } from '../ui/card';\nimport { Image } from '../ui/image';\n\ntype Props = {\n /** Unique identifier for the product. */\n id: string;\n /** URL-friendly slug for the product. */\n slug: string;\n /** Display name of the product shown on the card. */\n name: string;\n /** URL of the product's thumbnail image. */\n thumbnail: string;\n /** Regular price of the product in VND. */\n price: number;\n /** Optional sale / discounted price in VND. */\n salePrice?: number;\n /** Optional sale discount percentage (0–100). */\n salePercentage?: number;\n};\n\n/**\n * A vertical product card displaying a thumbnail, name, price, and add-to-cart / favourite actions.\n *\n * @example\n * ```tsx\n * import { ProductCard } from '@customafk/lunas-ui/cards/product-card';\n *\n * <ProductCard\n * id=\"prod-1\"\n * slug=\"awesome-widget\"\n * name=\"Awesome Widget\"\n * thumbnail=\"/images/widget.png\"\n * price={299000}\n * />\n * ```\n */\nexport const ProductCard: React.FC<Props> = ({ name, thumbnail, price }) => {\n return (\n <Card className=\"size-full gap-y-2 p-2 pb-4\">\n <Image src={thumbnail} className=\"aspect-square\" />\n <div className=\"flex flex-col gap-y-1\">\n <p className=\"line-clamp-2 h-10 text-sm font-semibold\">{name}</p>\n <p className=\"text-success text-base font-bold\">\n {price.toLocaleString('vi-VN')}\n <small className=\"ml-0.5\">VND</small>\n </p>\n <div className=\"mt-1 flex gap-x-1\">\n <Button className=\"flex-1\">\n <ShoppingCartIcon />\n Thêm vào giỏ\n </Button>\n <Button size=\"icon\" variant=\"outline\" color=\"muted\" className=\"size-9\">\n <HeartIcon />\n </Button>\n </div>\n </div>\n </Card>\n );\n};\n"],"mappings":"uXAuCA,MAAaA,GAAgC,CAAE,OAAM,YAAW,WAE5D,EAAC,EAAA,CAAK,UAAU,uCACd,EAACC,EAAAA,CAAM,IAAK,EAAW,UAAU,iBAAkB,CACnD,EAAC,MAAA,CAAI,UAAU,kCACb,EAAC,IAAA,CAAE,UAAU,mDAA2C,GAAS,CACjE,EAAC,IAAA,CAAE,UAAU,6CACV,EAAM,eAAe,QAAQ,CAC9B,EAAC,QAAA,CAAM,UAAU,kBAAS,OAAW,CAAA,EACnC,CACJ,EAAC,MAAA,CAAI,UAAU,8BACb,EAAC,EAAA,CAAO,UAAU,mBAChB,EAAC,EAAA,EAAA,CAAmB,CAAA,eAAA,EAEb,CACT,EAAC,EAAA,CAAO,KAAK,OAAO,QAAQ,UAAU,MAAM,QAAQ,UAAU,kBAC5D,EAAC,EAAA,EAAA,CAAY,EACN,CAAA,EACL,GACF,CAAA,EACD"}
@@ -1,2 +0,0 @@
1
- "use client";import"../heading-De4Pn3mZ.mjs";import"../paragraph-DYLaQtTV.mjs";import{Card as e,CardAction as t,CardContent as n,CardDescription as r,CardFooter as i,CardHeader as a,CardTitle as o}from"../ui/card.mjs";import{jsx as s,jsxs as c}from"react/jsx-runtime";const l=({title:l,description:u,action:d,footer:f,children:p})=>c(e,{children:[c(a,{children:[s(o,{children:l}),s(r,{children:u}),d&&s(t,{children:d})]}),s(n,{children:p}),f&&s(i,{children:f})]});export{l as SimpleCard};
2
- //# sourceMappingURL=simple-card.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simple-card.mjs","names":[],"sources":["../../packages/components/cards/simple-card.tsx"],"sourcesContent":["'use client';\nimport { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from '../ui/card';\n\ntype Props = {\n /** The card's heading text displayed in the header. */\n title: string;\n /** Optional subtitle or description shown below the title. */\n description?: string;\n /** Optional node rendered as a card action (e.g. a button) in the header. */\n action?: React.ReactNode;\n /** Optional node rendered inside the card footer. */\n footer?: React.ReactNode;\n};\n\n/**\n * A general-purpose card with a header, optional description, action slot, content area, and footer.\n *\n * @example\n * ```tsx\n * import { SimpleCard } from '@customafk/lunas-ui/cards/simple-card';\n *\n * <SimpleCard title=\"Summary\" description=\"Overview of results\">\n * <p>Card body content goes here.</p>\n * </SimpleCard>\n * ```\n */\nexport const SimpleCard = ({ title, description, action, footer, children }: React.PropsWithChildren<Props>) => {\n return (\n <Card>\n <CardHeader>\n <CardTitle>{title}</CardTitle>\n <CardDescription>{description}</CardDescription>\n {action && <CardAction>{action}</CardAction>}\n </CardHeader>\n <CardContent>{children}</CardContent>\n {footer && <CardFooter>{footer}</CardFooter>}\n </Card>\n );\n};\n"],"mappings":"4QA0BA,MAAa,GAAc,CAAE,QAAO,cAAa,SAAQ,SAAQ,cAE7D,EAAC,EAAA,CAAA,SAAA,CACC,EAAC,EAAA,CAAA,SAAA,CACC,EAAC,EAAA,CAAA,SAAW,EAAA,CAAkB,CAC9B,EAAC,EAAA,CAAA,SAAiB,EAAA,CAA8B,CAC/C,GAAU,EAAC,EAAA,CAAA,SAAY,EAAA,CAAoB,GACjC,CACb,EAAC,EAAA,CAAa,WAAA,CAAuB,CACpC,GAAU,EAAC,EAAA,CAAA,SAAY,EAAA,CAAoB,GACvC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"checkbox-Cat3i08X.mjs","names":["Checkbox","CheckboxPrimitive"],"sources":["../packages/components/ui/checkbox.tsx"],"sourcesContent":["'use client';\n\nimport { CheckIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Checkbox as CheckboxPrimitive } from 'radix-ui';\n\n/**\n * Accessible checkbox input built on Radix UI's Checkbox primitive with checked, indeterminate, focus, invalid, and read-only states.\n *\n * @example\n * ```tsx\n * import { Checkbox } from '@customafk/lunas-ui/ui/checkbox';\n * import { Label } from '@customafk/lunas-ui/ui/label';\n *\n * <div className=\"flex items-center gap-2\">\n * <Checkbox id=\"terms\" />\n * <Label htmlFor=\"terms\">Accept terms and conditions</Label>\n * </div>\n * ```\n */\nfunction Checkbox({ className, ...props }: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n 'peer border-border',\n 'size-4 shrink-0 cursor-pointer rounded border shadow-xs outline-none transition-all',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n 'focus-visible:border-primary-strong',\n 'focus-visible:ring-3',\n 'focus-visible:ring-primary-weak',\n 'aria-invalid:border-danger aria-invalid:ring-danger-weak',\n 'aria-readonly:bg-muted-muted',\n 'aria-readonly:pointer-events-none',\n 'data-[state=checked]:aria-readonly:bg-muted-muted',\n 'data-[state=checked]:aria-readonly:border-border',\n 'data-[state=checked]:aria-readonly:text-text-positive-strong',\n 'data-[state=checked]:bg-primary',\n 'data-[state=checked]:border-primary-strong',\n 'data-[state=checked]:text-text-negative-strong',\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator data-slot=\"checkbox-indicator\" className=\"flex items-center justify-center text-current transition-none\">\n <CheckIcon size={14} />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n}\n\nexport { Checkbox };\n"],"mappings":"yKAsBA,SAASA,EAAS,CAAE,YAAW,GAAG,GAA8D,CAC9F,OACE,EAACC,EAAkB,KAAA,CACjB,YAAU,WACV,UAAW,EACT,qBACA,sFACA,kDACA,sCACA,uBACA,kCACA,2DACA,+BACA,oCACA,oDACA,mDACA,+DACA,kCACA,6CACA,iDACA,EACD,CACD,GAAI,WAEJ,EAACA,EAAkB,UAAA,CAAU,YAAU,qBAAqB,UAAU,yEACpE,EAAC,EAAA,CAAU,KAAM,GAAA,CAAM,EACK,EACP"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"close-_UHFeiLS.mjs","names":["CloseButton: React.FC<React.ComponentProps<'button'>>"],"sources":["../packages/components/ui/buttons/close.tsx"],"sourcesContent":["import { XIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nexport const CloseButton: React.FC<React.ComponentProps<'button'>> = ({ className, ...props }) => {\n return (\n <button\n className={cn(\n 'flex cursor-pointer items-center justify-center rounded-[100px] p-2 text-text-positive-weak transition-colors hover:bg-muted-muted hover:text-text-positive active:bg-muted-weak active:text-text-positive-strong disabled:pointer-events-none disabled:opacity-60',\n className\n )}\n {...props}\n >\n <XIcon size={24} />\n </button>\n );\n};\n"],"mappings":"iIAIA,MAAaA,GAAyD,CAAE,YAAW,GAAG,KAElF,EAAC,SAAA,CACC,UAAW,EACT,qQACA,EACD,CACD,GAAI,WAEJ,EAAC,EAAA,CAAM,KAAM,GAAA,CAAM,EACZ"}