@customafk/lunas-ui 0.2.75 → 0.2.77

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 (806) hide show
  1. package/dist/{FeatureDeveloping-zuTTDIh_.d.cts → FeatureDeveloping-DRmYHj91.d.cts} +2 -9
  2. package/dist/{FeatureDeveloping-zuTTDIh_.d.mts → FeatureDeveloping-DRmYHj91.d.mts} +2 -9
  3. package/dist/{FeatureFixing-DYQlgHPk.d.cts → FeatureFixing-BHHCDtAQ.d.cts} +2 -9
  4. package/dist/{FeatureFixing-DYQlgHPk.d.mts → FeatureFixing-BHHCDtAQ.d.mts} +2 -9
  5. package/dist/{LoginPage-vMXvwtxf.d.cts → LoginPage-DDljzV6A.d.cts} +2 -12
  6. package/dist/{LoginPage-vMXvwtxf.d.mts → LoginPage-DDljzV6A.d.mts} +2 -12
  7. package/dist/{NotAuthorized-CZIQ6EaA.d.cts → NotAuthorized-DTT57OHb.d.cts} +2 -9
  8. package/dist/{NotAuthorized-CZIQ6EaA.d.mts → NotAuthorized-DTT57OHb.d.mts} +2 -9
  9. package/dist/{NotFound-CRSKxhV8.d.cts → NotFound-BeUB1yus.d.cts} +2 -9
  10. package/dist/{NotFound-CRSKxhV8.d.mts → NotFound-BeUB1yus.d.mts} +2 -9
  11. package/dist/{RegisterPage-BBtpEzvL.d.cts → RegisterPage-LuTuV7Sw.d.cts} +2 -11
  12. package/dist/{RegisterPage-BBtpEzvL.d.mts → RegisterPage-LuTuV7Sw.d.mts} +2 -11
  13. package/dist/{VerifyEmailPage-CsmIeYLu.d.cts → VerifyEmailPage-5DFlEkk3.d.cts} +2 -14
  14. package/dist/{VerifyEmailPage-CsmIeYLu.d.mts → VerifyEmailPage-5DFlEkk3.d.mts} +2 -14
  15. package/dist/{action-submit-ScN29AQ1.mjs → action-submit-DVNxnW4-.mjs} +2 -2
  16. package/dist/{action-submit-ScN29AQ1.mjs.map → action-submit-DVNxnW4-.mjs.map} +1 -1
  17. package/dist/{action-submit-DI590CG3.cjs → action-submit-kYjq-iPD.cjs} +2 -2
  18. package/dist/{action-submit-DI590CG3.cjs.map → action-submit-kYjq-iPD.cjs.map} +1 -1
  19. package/dist/{actions-form-CNW4nhAP.cjs → actions-form-CwicJU89.cjs} +2 -2
  20. package/dist/{actions-form-CNW4nhAP.cjs.map → actions-form-CwicJU89.cjs.map} +1 -1
  21. package/dist/{actions-form-f8sejItb.mjs → actions-form-DRrkiGzh.mjs} +2 -2
  22. package/dist/{actions-form-f8sejItb.mjs.map → actions-form-DRrkiGzh.mjs.map} +1 -1
  23. package/dist/activity-heatmap-chart-DufvFndI.mjs.map +1 -1
  24. package/dist/activity-heatmap-chart-gDcvIAK_.cjs.map +1 -1
  25. package/dist/{add-new-DkBwXh0Q.d.cts → add-new-CHYPSC1G.d.cts} +3 -2
  26. package/dist/{add-new-DkBwXh0Q.d.mts → add-new-CHYPSC1G.d.mts} +3 -2
  27. package/dist/{alert-Bip5XjBw.d.cts → alert-C8wdckO8.d.cts} +4 -19
  28. package/dist/{alert-Bip5XjBw.d.mts → alert-C8wdckO8.d.mts} +4 -19
  29. package/dist/alert-D31c6DLq.cjs.map +1 -1
  30. package/dist/alert-OD1KJTEV.mjs.map +1 -1
  31. package/dist/{alert-dialog-Cdhz7jSj.d.cts → alert-dialog-8aDimwPK.d.cts} +12 -43
  32. package/dist/{alert-dialog-Cdhz7jSj.d.mts → alert-dialog-8aDimwPK.d.mts} +12 -43
  33. package/dist/analysis-panel-BqZmOU58.mjs.map +1 -1
  34. package/dist/analysis-panel-CQZ0hmfN.cjs.map +1 -1
  35. package/dist/{aspect-ratio-huscluwJ.d.cts → aspect-ratio-DqXWkGJQ.d.cts} +2 -6
  36. package/dist/{aspect-ratio-huscluwJ.d.mts → aspect-ratio-DqXWkGJQ.d.mts} +2 -6
  37. package/dist/avatar-name-display-BrpnTqa_.mjs.map +1 -1
  38. package/dist/avatar-name-display-CLi1DJUs.cjs.map +1 -1
  39. package/dist/{avatar-BpeFwSkQ.d.cts → avatar-yN3dNBsZ.d.cts} +4 -14
  40. package/dist/{avatar-BpeFwSkQ.d.mts → avatar-yN3dNBsZ.d.mts} +4 -14
  41. package/dist/{badge-MRT40pxM.d.cts → badge-BPiU1Ss2.d.cts} +2 -10
  42. package/dist/{badge-MRT40pxM.d.mts → badge-BPiU1Ss2.d.mts} +2 -10
  43. package/dist/badge-display-DmCKpGk9.cjs.map +1 -1
  44. package/dist/badge-display-RP5VTE10.mjs.map +1 -1
  45. package/dist/{breadcrumb-CSpScKZm.d.cts → breadcrumb-DEFTnz90.d.cts} +8 -31
  46. package/dist/{breadcrumb-CSpScKZm.d.mts → breadcrumb-DEFTnz90.d.mts} +8 -31
  47. package/dist/{button-Bk4Y6_9I.d.cts → button-BnoPktln.d.cts} +2 -15
  48. package/dist/{button-Bk4Y6_9I.d.mts → button-BnoPktln.d.mts} +2 -15
  49. package/dist/{button-group-Cd5m5G3p.d.mts → button-group-Br7Cye6b.d.mts} +5 -18
  50. package/dist/{button-group-CiKhLVCg.d.cts → button-group-CP48qR0o.d.cts} +5 -18
  51. package/dist/{calendar-DPKt7D3w.d.mts → calendar-BkV5hTX2.d.mts} +6 -21
  52. package/dist/{calendar-stv2bJv0.d.cts → calendar-iDMPT1kI.d.cts} +6 -21
  53. package/dist/candlestick-chart-CiBiCU3y.mjs.map +1 -1
  54. package/dist/candlestick-chart-CqmRkfXj.cjs.map +1 -1
  55. package/dist/{card-DOnx7RKz.d.cts → card-C7jG9mCZ.d.cts} +8 -29
  56. package/dist/{card-DOnx7RKz.d.mts → card-C7jG9mCZ.d.mts} +8 -29
  57. package/dist/card-form-BR5kDTzB.cjs.map +1 -1
  58. package/dist/card-form-D9fNO-6F.mjs.map +1 -1
  59. package/dist/cards/grid-product-card.cjs.map +1 -1
  60. package/dist/cards/grid-product-card.d.cts +1 -1
  61. package/dist/cards/grid-product-card.d.mts +1 -1
  62. package/dist/cards/grid-product-card.mjs.map +1 -1
  63. package/dist/cards/product-card.cjs.map +1 -1
  64. package/dist/cards/product-card.d.cts +1 -1
  65. package/dist/cards/product-card.d.mts +1 -1
  66. package/dist/cards/product-card.mjs.map +1 -1
  67. package/dist/cards/simple-card.d.cts +1 -1
  68. package/dist/cards/simple-card.d.mts +1 -1
  69. package/dist/{carousel-CV3IZ96x.d.mts → carousel-D7VXWJ3S.d.mts} +7 -32
  70. package/dist/{carousel-c2XuzmYN.d.cts → carousel-bBvM31sh.d.cts} +7 -32
  71. package/dist/{chart-sYFksFMk.d.cts → chart-D8tNf0_6.d.cts} +6 -36
  72. package/dist/{chart-sYFksFMk.d.mts → chart-D8tNf0_6.d.mts} +6 -36
  73. package/dist/{checkbox-XfLNnG0S.d.cts → checkbox-Cuc-_UcF.d.cts} +2 -6
  74. package/dist/{checkbox-XfLNnG0S.d.mts → checkbox-Cuc-_UcF.d.mts} +2 -6
  75. package/dist/{checkbox-field-Csro0Nla.mjs → checkbox-field-BN3Vd9qq.mjs} +2 -2
  76. package/dist/{checkbox-field-Csro0Nla.mjs.map → checkbox-field-BN3Vd9qq.mjs.map} +1 -1
  77. package/dist/{checkbox-field-Ck_VADFe.cjs → checkbox-field-DBUjQC_4.cjs} +2 -2
  78. package/dist/{checkbox-field-Ck_VADFe.cjs.map → checkbox-field-DBUjQC_4.cjs.map} +1 -1
  79. package/dist/close-BYHgEZvZ.cjs.map +1 -1
  80. package/dist/close-DYJZ8fkh.mjs.map +1 -1
  81. package/dist/cms-layout-BXd2ncAV.cjs +2 -0
  82. package/dist/cms-layout-BXd2ncAV.cjs.map +1 -0
  83. package/dist/cms-layout-COIo9HiP.mjs +2 -0
  84. package/dist/cms-layout-COIo9HiP.mjs.map +1 -0
  85. package/dist/{collapsible-liIHmFuw.d.cts → collapsible-D3MS6pMC.d.cts} +4 -11
  86. package/dist/{collapsible-liIHmFuw.d.mts → collapsible-D3MS6pMC.d.mts} +4 -11
  87. package/dist/combobox-BFLmuV4w.d.cts +120 -0
  88. package/dist/combobox-C64Rvd7n.mjs +2 -0
  89. package/dist/combobox-C64Rvd7n.mjs.map +1 -0
  90. package/dist/{combobox-field-Bxrct4lA.cjs → combobox-field-BE9miJ3D.cjs} +2 -2
  91. package/dist/{combobox-field-Bxrct4lA.cjs.map → combobox-field-BE9miJ3D.cjs.map} +1 -1
  92. package/dist/{combobox-field-BMfA_taQ.mjs → combobox-field-Bug1qI5B.mjs} +2 -2
  93. package/dist/{combobox-field-BMfA_taQ.mjs.map → combobox-field-Bug1qI5B.mjs.map} +1 -1
  94. package/dist/combobox-kp_kPY8o.cjs +2 -0
  95. package/dist/combobox-kp_kPY8o.cjs.map +1 -0
  96. package/dist/combobox-wOpqEFBq.d.mts +120 -0
  97. package/dist/{command-Bb6SneVI.d.mts → command-BM9cIuFp.d.cts} +11 -42
  98. package/dist/{command-CHSJVU9o.d.cts → command-DLnIGYou.d.mts} +11 -42
  99. package/dist/{context-menu-BOlGSuep.d.cts → context-menu-z_-DdL8k.d.cts} +16 -64
  100. package/dist/{context-menu-BOlGSuep.d.mts → context-menu-z_-DdL8k.d.mts} +16 -64
  101. package/dist/conversion-funnel-chart-CW_zDfKS.mjs.map +1 -1
  102. package/dist/conversion-funnel-chart-r2m2QbiQ.cjs.map +1 -1
  103. package/dist/correlation-scatter-chart-Djtt7NU7.mjs.map +1 -1
  104. package/dist/correlation-scatter-chart-HF48YUIB.cjs.map +1 -1
  105. package/dist/{country-C8QijcHF.d.mts → country-8m51pdnj.d.mts} +3 -3
  106. package/dist/{country-CJIaO0I7.d.cts → country-BPlbbV9W.d.cts} +3 -3
  107. package/dist/currency-display-Buxc6Ph5.cjs.map +1 -1
  108. package/dist/currency-display-CEg_HRYv.mjs.map +1 -1
  109. package/dist/data-display/country.cjs.map +1 -1
  110. package/dist/data-display/country.d.cts +1 -1
  111. package/dist/data-display/country.d.mts +1 -1
  112. package/dist/data-display/country.mjs.map +1 -1
  113. package/dist/data-display/data-list.cjs.map +1 -1
  114. package/dist/data-display/data-list.d.cts +1 -1
  115. package/dist/data-display/data-list.d.mts +1 -1
  116. package/dist/data-display/data-list.mjs.map +1 -1
  117. package/dist/data-display/date-tooltip.cjs.map +1 -1
  118. package/dist/data-display/date-tooltip.d.cts +1 -1
  119. package/dist/data-display/date-tooltip.d.mts +1 -1
  120. package/dist/data-display/date-tooltip.mjs.map +1 -1
  121. package/dist/data-display/empty.cjs.map +1 -1
  122. package/dist/data-display/empty.d.cts +1 -1
  123. package/dist/data-display/empty.d.mts +1 -1
  124. package/dist/data-display/empty.mjs.map +1 -1
  125. package/dist/data-display/name.cjs.map +1 -1
  126. package/dist/data-display/name.d.cts +1 -1
  127. package/dist/data-display/name.d.mts +1 -1
  128. package/dist/data-display/name.mjs.map +1 -1
  129. package/dist/data-display/phone-number.cjs.map +1 -1
  130. package/dist/data-display/phone-number.d.cts +1 -1
  131. package/dist/data-display/phone-number.d.mts +1 -1
  132. package/dist/data-display/phone-number.mjs.map +1 -1
  133. package/dist/data-display/role-badge.cjs.map +1 -1
  134. package/dist/data-display/role-badge.d.cts +1 -1
  135. package/dist/data-display/role-badge.d.mts +1 -1
  136. package/dist/data-display/role-badge.mjs.map +1 -1
  137. package/dist/data-display/statistic.cjs.map +1 -1
  138. package/dist/data-display/statistic.d.cts +1 -1
  139. package/dist/data-display/statistic.d.mts +1 -1
  140. package/dist/data-display/statistic.mjs.map +1 -1
  141. package/dist/data-display/user.cjs.map +1 -1
  142. package/dist/data-display/user.d.cts +1 -1
  143. package/dist/data-display/user.d.mts +1 -1
  144. package/dist/data-display/user.mjs.map +1 -1
  145. package/dist/{data-list-Cg510z2m.d.cts → data-list-BRHjqVUT.d.cts} +10 -5
  146. package/dist/{data-list-Cg510z2m.d.mts → data-list-BRHjqVUT.d.mts} +10 -5
  147. package/dist/date-B3cozmfV.cjs.map +1 -1
  148. package/dist/date-Nsz0Pewe.mjs.map +1 -1
  149. package/dist/date-display-BgI7Wjqf.cjs.map +1 -1
  150. package/dist/date-display-DGfHQhpu.mjs.map +1 -1
  151. package/dist/{date-field-Ba6O0uV3.cjs → date-field-CYoPe74G.cjs} +2 -2
  152. package/dist/{date-field-Ba6O0uV3.cjs.map → date-field-CYoPe74G.cjs.map} +1 -1
  153. package/dist/{date-field-DUx13OiJ.mjs → date-field-D_qpBb-t.mjs} +2 -2
  154. package/dist/{date-field-DUx13OiJ.mjs.map → date-field-D_qpBb-t.mjs.map} +1 -1
  155. package/dist/{date-tooltip-DptxGOj_.d.cts → date-tooltip-BZ4JiwfW.d.cts} +3 -2
  156. package/dist/{date-tooltip-DptxGOj_.d.mts → date-tooltip-BZ4JiwfW.d.mts} +3 -2
  157. package/dist/description-display-BR8nXqc_.cjs.map +1 -1
  158. package/dist/description-display-CW0g3aJa.mjs.map +1 -1
  159. package/dist/detail-dialog-Ct0vAjFe.mjs +2 -0
  160. package/dist/detail-dialog-Ct0vAjFe.mjs.map +1 -0
  161. package/dist/detail-dialog-uN5mrCa7.cjs +2 -0
  162. package/dist/detail-dialog-uN5mrCa7.cjs.map +1 -0
  163. package/dist/{dialog-BASlxWF_.d.cts → dialog-c1vBnso8.d.cts} +13 -41
  164. package/dist/{dialog-BASlxWF_.d.mts → dialog-c1vBnso8.d.mts} +13 -41
  165. package/dist/{dialog-form-B_kgYxZg.cjs → dialog-form-BTZZwz3T.cjs} +2 -2
  166. package/dist/{dialog-form-B_kgYxZg.cjs.map → dialog-form-BTZZwz3T.cjs.map} +1 -1
  167. package/dist/{dialog-form-SyBJUlDB.mjs → dialog-form-CCIcht28.mjs} +2 -2
  168. package/dist/{dialog-form-SyBJUlDB.mjs.map → dialog-form-CCIcht28.mjs.map} +1 -1
  169. package/dist/dialogs/confirm-dialog.cjs.map +1 -1
  170. package/dist/dialogs/confirm-dialog.mjs.map +1 -1
  171. package/dist/dialogs/detail-dialog/components/sidebar.cjs +1 -1
  172. package/dist/dialogs/detail-dialog/components/sidebar.cjs.map +1 -1
  173. package/dist/dialogs/detail-dialog/components/sidebar.d.cts +64 -133
  174. package/dist/dialogs/detail-dialog/components/sidebar.d.mts +64 -133
  175. package/dist/dialogs/detail-dialog/components/sidebar.mjs +1 -1
  176. package/dist/dialogs/detail-dialog/components/sidebar.mjs.map +1 -1
  177. package/dist/dialogs/detail-dialog/index.cjs +1 -2
  178. package/dist/dialogs/detail-dialog/index.d.cts +1 -1
  179. package/dist/dialogs/detail-dialog/index.d.mts +1 -1
  180. package/dist/dialogs/detail-dialog/index.mjs +1 -2
  181. package/dist/dialogs/error-dialog.cjs.map +1 -1
  182. package/dist/dialogs/error-dialog.d.cts +1 -1
  183. package/dist/dialogs/error-dialog.d.mts +1 -1
  184. package/dist/dialogs/error-dialog.mjs.map +1 -1
  185. package/dist/dialogs/loading-dialog.cjs.map +1 -1
  186. package/dist/dialogs/loading-dialog.d.cts +1 -1
  187. package/dist/dialogs/loading-dialog.d.mts +1 -1
  188. package/dist/dialogs/loading-dialog.mjs.map +1 -1
  189. package/dist/donut-chart-CsPPKy0G.cjs.map +1 -1
  190. package/dist/donut-chart-eKZjuzW0.mjs.map +1 -1
  191. package/dist/{drawer-Dwx99ff3.d.cts → drawer-B8cntcg3.d.cts} +11 -39
  192. package/dist/{drawer-Dwx99ff3.d.mts → drawer-B8cntcg3.d.mts} +11 -39
  193. package/dist/{dropdown-menu-CcMccVns.d.cts → dropdown-menu-wdaYl-q0.d.cts} +16 -66
  194. package/dist/{dropdown-menu-CcMccVns.d.mts → dropdown-menu-wdaYl-q0.d.mts} +16 -66
  195. package/dist/{edit-qfS5kOtM.d.cts → edit-C8JDClC3.d.cts} +3 -2
  196. package/dist/{edit-qfS5kOtM.d.mts → edit-C8JDClC3.d.mts} +3 -2
  197. package/dist/edit-button-0_FLZoT3.cjs.map +1 -1
  198. package/dist/edit-button-DmMFMzG0.mjs.map +1 -1
  199. package/dist/email-display-BKcoWmPK.mjs.map +1 -1
  200. package/dist/email-display-DqKYq0iM.cjs.map +1 -1
  201. package/dist/{email-field-CO_BZHod.cjs → email-field-DJa7iASY.cjs} +2 -2
  202. package/dist/{email-field-CO_BZHod.cjs.map → email-field-DJa7iASY.cjs.map} +1 -1
  203. package/dist/{email-field-BGYZUVl0.mjs → email-field-DxSNJ6tf.mjs} +2 -2
  204. package/dist/{email-field-BGYZUVl0.mjs.map → email-field-DxSNJ6tf.mjs.map} +1 -1
  205. package/dist/{empty-CaNJjp05.d.cts → empty-B-Nd7s_O.d.cts} +7 -27
  206. package/dist/{empty-CaNJjp05.d.mts → empty-B-Nd7s_O.d.mts} +7 -27
  207. package/dist/{empty-ClQptIZH.d.cts → empty-CHTdH5fg.d.cts} +4 -2
  208. package/dist/{empty-ClQptIZH.d.mts → empty-CHTdH5fg.d.mts} +4 -2
  209. package/dist/{error-dialog-D4jOPhmw.d.cts → error-dialog-DYQSm_JC.d.cts} +6 -3
  210. package/dist/{error-dialog-D4jOPhmw.d.mts → error-dialog-DYQSm_JC.d.mts} +6 -3
  211. package/dist/features/charts/index.cjs.map +1 -1
  212. package/dist/features/charts/index.d.cts +1 -1
  213. package/dist/features/charts/index.d.mts +1 -1
  214. package/dist/features/charts/index.mjs.map +1 -1
  215. package/dist/features/descriptions/index.cjs.map +1 -1
  216. package/dist/features/descriptions/index.d.cts +1 -1
  217. package/dist/features/descriptions/index.d.mts +1 -1
  218. package/dist/features/descriptions/index.mjs.map +1 -1
  219. package/dist/features/logo/index.cjs.map +1 -1
  220. package/dist/features/logo/index.d.cts +3 -8
  221. package/dist/features/logo/index.d.mts +3 -8
  222. package/dist/features/logo/index.mjs.map +1 -1
  223. package/dist/features/tables/index.d.cts +1 -1
  224. package/dist/features/tables/index.d.mts +1 -1
  225. package/dist/features/tanstack-form/index.cjs +1 -1
  226. package/dist/features/tanstack-form/index.d.cts +1 -1
  227. package/dist/features/tanstack-form/index.d.mts +1 -1
  228. package/dist/features/tanstack-form/index.mjs +1 -1
  229. package/dist/features/text-editor/index.cjs +1 -1
  230. package/dist/features/text-editor/index.d.cts +1 -1
  231. package/dist/features/text-editor/index.d.mts +1 -1
  232. package/dist/features/text-editor/index.mjs +1 -1
  233. package/dist/field-BSLi-P0Q.cjs.map +1 -1
  234. package/dist/field-V2DoD8qL.mjs.map +1 -1
  235. package/dist/{file-uploader-U64lH0zG.d.cts → file-uploader-DyHOMFK3.d.cts} +1 -2
  236. package/dist/{file-uploader-U64lH0zG.d.mts → file-uploader-DyHOMFK3.d.mts} +1 -2
  237. package/dist/filter-CWuRGTl4.mjs.map +1 -1
  238. package/dist/filter-DqedvThM.cjs.map +1 -1
  239. package/dist/{flex-bw7U4hXn.d.cts → flex-BTPF2-F6.d.cts} +7 -18
  240. package/dist/{flex-bw7U4hXn.d.mts → flex-BTPF2-F6.d.mts} +7 -18
  241. package/dist/{form-CMP15S4r.d.cts → form-D0M_qGX_.d.cts} +8 -45
  242. package/dist/{form-CMP15S4r.d.mts → form-D0M_qGX_.d.mts} +8 -45
  243. package/dist/gain-loss-bar-chart-Dz1oAj8H.mjs.map +1 -1
  244. package/dist/gain-loss-bar-chart-FUzN7DxF.cjs.map +1 -1
  245. package/dist/{google-Bl-jBW8L.d.cts → google-vajkoOiC.d.cts} +9 -5
  246. package/dist/{google-Bl-jBW8L.d.mts → google-vajkoOiC.d.mts} +9 -5
  247. package/dist/{grid-product-card-bpADqDOQ.d.cts → grid-product-card-P5X8ZPQF.d.cts} +14 -7
  248. package/dist/{grid-product-card-bpADqDOQ.d.mts → grid-product-card-P5X8ZPQF.d.mts} +14 -7
  249. package/dist/group-field-gejvx_Td.mjs.map +1 -1
  250. package/dist/group-field-sVykO2JZ.cjs.map +1 -1
  251. package/dist/{hover-card-Prwm-0Q4.d.cts → hover-card-JeShfV9g.d.cts} +4 -14
  252. package/dist/{hover-card-Prwm-0Q4.d.mts → hover-card-JeShfV9g.d.mts} +4 -14
  253. package/dist/image-BvDGi_G7.d.cts +36 -0
  254. package/dist/image-BvDGi_G7.d.mts +36 -0
  255. package/dist/{index-DJiiPHPf.d.cts → index-BBMKb5q2.d.cts} +28 -13
  256. package/dist/{index-DJiiPHPf.d.mts → index-BBMKb5q2.d.mts} +28 -13
  257. package/dist/{index-CS7oydGk.d.cts → index-BMuVmm7f.d.mts} +26 -26
  258. package/dist/index-BOifmu0V.d.cts +51 -0
  259. package/dist/index-BOifmu0V.d.mts +51 -0
  260. package/dist/{index-FEMPGfwO.d.cts → index-C9JAujMq.d.cts} +304 -142
  261. package/dist/{index-DmvXR2Cn.d.mts → index-CLx89ATZ.d.cts} +26 -26
  262. package/dist/{index-CBntsHIg.d.cts → index-DJKJt7oV.d.cts} +111 -54
  263. package/dist/{index-CBntsHIg.d.mts → index-DJKJt7oV.d.mts} +111 -54
  264. package/dist/{index-DOaKN0wJ.d.cts → index-DRAyYm8g.d.cts} +4 -34
  265. package/dist/{index-DOaKN0wJ.d.mts → index-DRAyYm8g.d.mts} +4 -34
  266. package/dist/{index-_GTjwUdG.d.mts → index-DnHoBjv7.d.mts} +304 -142
  267. package/dist/{index-BoYnKWwg.d.cts → index-DvC1inRy.d.cts} +789 -689
  268. package/dist/{index-BoYnKWwg.d.mts → index-DvC1inRy.d.mts} +789 -689
  269. package/dist/{index-teY5hw2R.d.cts → index-KgI9KqIf.d.cts} +33 -15
  270. package/dist/{index-teY5hw2R.d.mts → index-KgI9KqIf.d.mts} +33 -15
  271. package/dist/index.cjs +1 -1
  272. package/dist/index.d.cts +92 -91
  273. package/dist/index.d.mts +92 -91
  274. package/dist/index.mjs +1 -1
  275. package/dist/indexed-performance-line-chart-CT79KOM6.cjs.map +1 -1
  276. package/dist/indexed-performance-line-chart-D7F-rIMv.mjs.map +1 -1
  277. package/dist/{input-BieGEIDf.d.cts → input-D73TrUof.d.cts} +8 -13
  278. package/dist/{input-BieGEIDf.d.mts → input-D73TrUof.d.mts} +8 -13
  279. package/dist/{input-otp-6hJfhBHX.d.cts → input-otp-DGf28Nq2.d.cts} +7 -20
  280. package/dist/{input-otp-6hJfhBHX.d.mts → input-otp-DGf28Nq2.d.mts} +7 -20
  281. package/dist/{item-DTR2f2CX.d.cts → item-BxUBO7Hd.d.cts} +12 -47
  282. package/dist/{item-cIhkI3ZI.d.mts → item-ChW41yKF.d.mts} +12 -47
  283. package/dist/{label-DPG_GY7h.d.cts → label-CKywNz0h.d.cts} +2 -6
  284. package/dist/{label-DPG_GY7h.d.mts → label-CKywNz0h.d.mts} +2 -6
  285. package/dist/layouts/cms-layout/index.cjs +1 -1
  286. package/dist/layouts/cms-layout/index.d.cts +1 -1
  287. package/dist/layouts/cms-layout/index.d.mts +1 -1
  288. package/dist/layouts/cms-layout/index.mjs +1 -1
  289. package/dist/layouts/flex.d.cts +1 -1
  290. package/dist/layouts/flex.d.mts +1 -1
  291. package/dist/layouts/grid.cjs.map +1 -1
  292. package/dist/layouts/grid.mjs.map +1 -1
  293. package/dist/layouts/payment-layout/index.cjs +1 -1
  294. package/dist/layouts/payment-layout/index.d.cts +1 -1
  295. package/dist/layouts/payment-layout/index.d.mts +1 -1
  296. package/dist/layouts/payment-layout/index.mjs +1 -1
  297. package/dist/list-display-BRJVmji0.cjs.map +1 -1
  298. package/dist/list-display-Co94sV4H.mjs.map +1 -1
  299. package/dist/{loading-dialog-C73EJx9s.d.cts → loading-dialog-DXjQSQnC.d.cts} +4 -2
  300. package/dist/{loading-dialog-C73EJx9s.d.mts → loading-dialog-DXjQSQnC.d.mts} +4 -2
  301. package/dist/{menubar-CFrn3S96.d.cts → menubar-PDJeDtHh.d.cts} +17 -72
  302. package/dist/{menubar-CFrn3S96.d.mts → menubar-PDJeDtHh.d.mts} +17 -72
  303. package/dist/metric-radar-chart-6LTGQHsL.mjs.map +1 -1
  304. package/dist/metric-radar-chart-DwgbXgJX.cjs.map +1 -1
  305. package/dist/mirrored-bar-chart-BT7AYPJB.mjs.map +1 -1
  306. package/dist/mirrored-bar-chart-BwjtExjh.cjs.map +1 -1
  307. package/dist/more-button-BKBcXz6E.mjs.map +1 -1
  308. package/dist/more-button-RYvZgYiu.cjs.map +1 -1
  309. package/dist/{multi-select-BbiKgAYs.d.cts → multi-select-C4ae_jaX.d.mts} +2 -3
  310. package/dist/{multi-select-BoBHt_Z9.d.mts → multi-select-V3chK_bJ.d.cts} +2 -3
  311. package/dist/name-display-B-FtblLL.cjs.map +1 -1
  312. package/dist/name-display-CB9XAhXP.mjs.map +1 -1
  313. package/dist/{name-7aoM5rAW.d.cts → name-tnVKGZN7.d.cts} +3 -2
  314. package/dist/{name-7aoM5rAW.d.mts → name-tnVKGZN7.d.mts} +3 -2
  315. package/dist/{navigation-menu-B1BY9Zll.d.cts → navigation-menu-BCjjeblq.d.cts} +11 -38
  316. package/dist/{navigation-menu-B1BY9Zll.d.mts → navigation-menu-BCjjeblq.d.mts} +11 -38
  317. package/dist/{number-field-B89VeU2r.mjs → number-field-5INgdUUv.mjs} +2 -2
  318. package/dist/{number-field-B89VeU2r.mjs.map → number-field-5INgdUUv.mjs.map} +1 -1
  319. package/dist/{number-field-C7iEv5GJ.cjs → number-field-DKZz-27X.cjs} +2 -2
  320. package/dist/{number-field-C7iEv5GJ.cjs.map → number-field-DKZz-27X.cjs.map} +1 -1
  321. package/dist/number-input-CAr3JaA-.cjs +2 -0
  322. package/dist/{number-input-kTh9zzr7.cjs.map → number-input-CAr3JaA-.cjs.map} +1 -1
  323. package/dist/number-input-CJcEV9Cg.mjs +2 -0
  324. package/dist/{number-input-CqkegUWs.mjs.map → number-input-CJcEV9Cg.mjs.map} +1 -1
  325. package/dist/orders-bar-chart-9RmtP6In.cjs.map +1 -1
  326. package/dist/orders-bar-chart-DQhJGmwY.mjs.map +1 -1
  327. package/dist/pages/FeatureDeveloping.cjs.map +1 -1
  328. package/dist/pages/FeatureDeveloping.d.cts +1 -1
  329. package/dist/pages/FeatureDeveloping.d.mts +1 -1
  330. package/dist/pages/FeatureDeveloping.mjs.map +1 -1
  331. package/dist/pages/FeatureFixing.cjs.map +1 -1
  332. package/dist/pages/FeatureFixing.d.cts +1 -1
  333. package/dist/pages/FeatureFixing.d.mts +1 -1
  334. package/dist/pages/FeatureFixing.mjs.map +1 -1
  335. package/dist/pages/LoginPage.cjs.map +1 -1
  336. package/dist/pages/LoginPage.d.cts +1 -1
  337. package/dist/pages/LoginPage.d.mts +1 -1
  338. package/dist/pages/LoginPage.mjs.map +1 -1
  339. package/dist/pages/NotAuthorized.cjs.map +1 -1
  340. package/dist/pages/NotAuthorized.d.cts +1 -1
  341. package/dist/pages/NotAuthorized.d.mts +1 -1
  342. package/dist/pages/NotAuthorized.mjs.map +1 -1
  343. package/dist/pages/NotFound.cjs.map +1 -1
  344. package/dist/pages/NotFound.d.cts +1 -1
  345. package/dist/pages/NotFound.d.mts +1 -1
  346. package/dist/pages/NotFound.mjs.map +1 -1
  347. package/dist/pages/RegisterPage.cjs.map +1 -1
  348. package/dist/pages/RegisterPage.d.cts +1 -1
  349. package/dist/pages/RegisterPage.d.mts +1 -1
  350. package/dist/pages/RegisterPage.mjs.map +1 -1
  351. package/dist/pages/VerifyEmailPage.cjs.map +1 -1
  352. package/dist/pages/VerifyEmailPage.d.cts +1 -1
  353. package/dist/pages/VerifyEmailPage.d.mts +1 -1
  354. package/dist/pages/VerifyEmailPage.mjs.map +1 -1
  355. package/dist/{pagination-B2fyP0J2.d.cts → pagination-BRw-yZBY.d.cts} +11 -33
  356. package/dist/{pagination-DY0PBCnI.d.mts → pagination-BlLiOvY9.d.mts} +11 -33
  357. package/dist/{paragraph-BTmvVS1S.d.mts → paragraph-CRo5eC7H.d.mts} +2 -7
  358. package/dist/{paragraph-DbYYv0A0.d.cts → paragraph-CkCNIsvz.d.cts} +2 -7
  359. package/dist/{password-field-9RZ84TNz.cjs → password-field-BuWARi35.cjs} +2 -2
  360. package/dist/{password-field-9RZ84TNz.cjs.map → password-field-BuWARi35.cjs.map} +1 -1
  361. package/dist/{password-field-pqUgUcgf.mjs → password-field-DOIe6wTv.mjs} +2 -2
  362. package/dist/{password-field-pqUgUcgf.mjs.map → password-field-DOIe6wTv.mjs.map} +1 -1
  363. package/dist/{payment-layout-DS5CEH1h.mjs → payment-layout-BSl9DYQA.mjs} +2 -2
  364. package/dist/{payment-layout-DS5CEH1h.mjs.map → payment-layout-BSl9DYQA.mjs.map} +1 -1
  365. package/dist/payment-layout-DDcLanA0.cjs +2 -0
  366. package/dist/{payment-layout-Cb-Q8KD2.cjs.map → payment-layout-DDcLanA0.cjs.map} +1 -1
  367. package/dist/permalink-CUIKG9VA.cjs.map +1 -1
  368. package/dist/permalink-I-INEarM.mjs.map +1 -1
  369. package/dist/phone-number-Cu7Mnl6J.mjs.map +1 -1
  370. package/dist/{phone-number-6b_pkGI1.d.cts → phone-number-D9j5xYDW.d.cts} +3 -2
  371. package/dist/{phone-number-6b_pkGI1.d.mts → phone-number-D9j5xYDW.d.mts} +3 -2
  372. package/dist/phone-number-DJvfJg1b.cjs.map +1 -1
  373. package/dist/{popover-form-CLr6xIl5.cjs → popover-form-Bq2GcuZu.cjs} +2 -2
  374. package/dist/{popover-form-CLr6xIl5.cjs.map → popover-form-Bq2GcuZu.cjs.map} +1 -1
  375. package/dist/{popover-form-BmOqFjQM.mjs → popover-form-BsapHJck.mjs} +2 -2
  376. package/dist/{popover-form-BmOqFjQM.mjs.map → popover-form-BsapHJck.mjs.map} +1 -1
  377. package/dist/{popover-CdOCi0xg.d.cts → popover-qfF3o0zL.d.cts} +6 -21
  378. package/dist/{popover-CdOCi0xg.d.mts → popover-qfF3o0zL.d.mts} +6 -21
  379. package/dist/portfolio-allocation-treemap-Bn0X4wb6.cjs.map +1 -1
  380. package/dist/portfolio-allocation-treemap-Cb9Kidrl.mjs.map +1 -1
  381. package/dist/price-range-area-chart-BW6RQb_9.cjs.map +1 -1
  382. package/dist/price-range-area-chart-Dy01mhWJ.mjs.map +1 -1
  383. package/dist/{product-card-CvXLXbpV.d.cts → product-card-CYNh0CT5.d.cts} +14 -7
  384. package/dist/{product-card-CvXLXbpV.d.mts → product-card-CYNh0CT5.d.mts} +14 -7
  385. package/dist/{progress-Bp-5keO8.d.cts → progress-BpWaSlPG.d.cts} +2 -7
  386. package/dist/{progress-Bp-5keO8.d.mts → progress-BpWaSlPG.d.mts} +2 -7
  387. package/dist/progress-display-DbfN7U8m.cjs.map +1 -1
  388. package/dist/progress-display-qgvclwy9.mjs.map +1 -1
  389. package/dist/{radio-group-ycQQrPGn.d.cts → radio-group-D_ssq0Q2.d.cts} +3 -10
  390. package/dist/{radio-group-ycQQrPGn.d.mts → radio-group-D_ssq0Q2.d.mts} +3 -10
  391. package/dist/{radio-group-field-DsUi8uCy.mjs → radio-group-field-DOJ4jVSr.mjs} +2 -2
  392. package/dist/{radio-group-field-DsUi8uCy.mjs.map → radio-group-field-DOJ4jVSr.mjs.map} +1 -1
  393. package/dist/{radio-group-field-Bm2nkk1W.cjs → radio-group-field-kTgtvp1p.cjs} +2 -2
  394. package/dist/{radio-group-field-Bm2nkk1W.cjs.map → radio-group-field-kTgtvp1p.cjs.map} +1 -1
  395. package/dist/{refresh-BiyrZAXL.d.cts → refresh-CWvkHT0L.d.cts} +3 -2
  396. package/dist/{refresh-BiyrZAXL.d.mts → refresh-CWvkHT0L.d.mts} +3 -2
  397. package/dist/remove-button-B3qFw-M5.cjs.map +1 -1
  398. package/dist/remove-button-Db5oSj4h.mjs.map +1 -1
  399. package/dist/{resizable-B1BHdSAr.d.cts → resizable-CWmitx5U.d.cts} +2 -3
  400. package/dist/{resizable-B1BHdSAr.d.mts → resizable-CWmitx5U.d.mts} +2 -3
  401. package/dist/revenue-area-chart-BwzeTRzD.mjs.map +1 -1
  402. package/dist/revenue-area-chart-w2FZCl_7.cjs.map +1 -1
  403. package/dist/revenue-orders-composed-chart-BttOWYGt.cjs.map +1 -1
  404. package/dist/revenue-orders-composed-chart-DwkbWZSX.mjs.map +1 -1
  405. package/dist/{role-badge-IdZW0tsN.d.cts → role-badge-CojpT6hX.d.cts} +3 -3
  406. package/dist/{role-badge-Bl4Rimpk.d.mts → role-badge-NTpnTz8M.d.mts} +3 -3
  407. package/dist/sales-target-radial-chart-BFLxBT2m.mjs.map +1 -1
  408. package/dist/sales-target-radial-chart-BoxSk7hW.cjs.map +1 -1
  409. package/dist/sankey-flow-chart-CDUqIRMZ.cjs.map +1 -1
  410. package/dist/sankey-flow-chart-bQ3Dffet.mjs.map +1 -1
  411. package/dist/{scroll-area-PbkqIAaH.d.cts → scroll-area-BpSwutyr.d.cts} +3 -14
  412. package/dist/{scroll-area-PbkqIAaH.d.mts → scroll-area-BpSwutyr.d.mts} +3 -14
  413. package/dist/{search-input-Bq4enQzR.d.cts → search-input-DEvYI6Rm.d.mts} +3 -7
  414. package/dist/{search-input-D51_mAY-.d.mts → search-input-h_3MoMqK.d.cts} +3 -7
  415. package/dist/search-modal-CMhsIxae.cjs.map +1 -1
  416. package/dist/search-modal-Cdmi2iyV.mjs.map +1 -1
  417. package/dist/section-form-BJWWflUR.mjs.map +1 -1
  418. package/dist/section-form-C_pHiBEW.cjs.map +1 -1
  419. package/dist/{select-B5j4WvPM.d.cts → select-UNtSe_Fs.d.cts} +11 -37
  420. package/dist/{select-B5j4WvPM.d.mts → select-UNtSe_Fs.d.mts} +11 -37
  421. package/dist/{select-field-ikKFoatc.mjs → select-field-BcsFBbNJ.mjs} +2 -2
  422. package/dist/{select-field-ikKFoatc.mjs.map → select-field-BcsFBbNJ.mjs.map} +1 -1
  423. package/dist/{select-field-F9eikYws.cjs → select-field-CURv37h4.cjs} +2 -2
  424. package/dist/{select-field-F9eikYws.cjs.map → select-field-CURv37h4.cjs.map} +1 -1
  425. package/dist/{separator-D6_fMJtM.d.cts → separator-Cvxkpzrj.d.cts} +2 -8
  426. package/dist/{separator-D6_fMJtM.d.mts → separator-Cvxkpzrj.d.mts} +2 -8
  427. package/dist/{sheet-cHLLSvvt.d.cts → sheet-BBvQsKM_.d.cts} +11 -34
  428. package/dist/{sheet-cHLLSvvt.d.mts → sheet-BBvQsKM_.d.mts} +11 -34
  429. package/dist/sidebar-core-Bz_LtXZy.mjs +2 -0
  430. package/dist/sidebar-core-Bz_LtXZy.mjs.map +1 -0
  431. package/dist/sidebar-core-DUdB9WCv.cjs +2 -0
  432. package/dist/sidebar-core-DUdB9WCv.cjs.map +1 -0
  433. package/dist/{simple-array-field-Bm_5b8pE.cjs → simple-array-field-bCUuPMgT.cjs} +2 -2
  434. package/dist/{simple-array-field-Bm_5b8pE.cjs.map → simple-array-field-bCUuPMgT.cjs.map} +1 -1
  435. package/dist/{simple-array-field-CeqZJfVs.mjs → simple-array-field-wFE_DUOV.mjs} +2 -2
  436. package/dist/{simple-array-field-CeqZJfVs.mjs.map → simple-array-field-wFE_DUOV.mjs.map} +1 -1
  437. package/dist/{simple-boolean-field-BeL9WjD5.cjs → simple-boolean-field-DRapzNrB.cjs} +2 -2
  438. package/dist/{simple-boolean-field-BeL9WjD5.cjs.map → simple-boolean-field-DRapzNrB.cjs.map} +1 -1
  439. package/dist/{simple-boolean-field-DZ0J-Pk0.mjs → simple-boolean-field-GQJyeyVS.mjs} +2 -2
  440. package/dist/{simple-boolean-field-DZ0J-Pk0.mjs.map → simple-boolean-field-GQJyeyVS.mjs.map} +1 -1
  441. package/dist/simple-card-Dhf9UXBg.d.cts +27 -0
  442. package/dist/simple-card-Dhf9UXBg.d.mts +27 -0
  443. package/dist/{simple-combobox-field-CeV40wnv.cjs → simple-combobox-field-Cp5dfQv3.cjs} +2 -2
  444. package/dist/{simple-combobox-field-CeV40wnv.cjs.map → simple-combobox-field-Cp5dfQv3.cjs.map} +1 -1
  445. package/dist/{simple-combobox-field-BQXmNATZ.mjs → simple-combobox-field-D6IaMJKl.mjs} +2 -2
  446. package/dist/{simple-combobox-field-BQXmNATZ.mjs.map → simple-combobox-field-D6IaMJKl.mjs.map} +1 -1
  447. package/dist/{simple-date-field-CrH-92i4.cjs → simple-date-field-_PSkIXAt.cjs} +2 -2
  448. package/dist/{simple-date-field-CrH-92i4.cjs.map → simple-date-field-_PSkIXAt.cjs.map} +1 -1
  449. package/dist/{simple-date-field-D9ymav2L.mjs → simple-date-field-dszQs7Ik.mjs} +2 -2
  450. package/dist/{simple-date-field-D9ymav2L.mjs.map → simple-date-field-dszQs7Ik.mjs.map} +1 -1
  451. package/dist/{simple-email-field-8IiVOYa-.mjs → simple-email-field-CwyoXqWo.mjs} +2 -2
  452. package/dist/{simple-email-field-8IiVOYa-.mjs.map → simple-email-field-CwyoXqWo.mjs.map} +1 -1
  453. package/dist/{simple-email-field-CsMmMSvS.cjs → simple-email-field-DIHwYrhk.cjs} +2 -2
  454. package/dist/{simple-email-field-CsMmMSvS.cjs.map → simple-email-field-DIHwYrhk.cjs.map} +1 -1
  455. package/dist/{simple-number-field-C6hE1Qlj.mjs → simple-number-field-Id1kV5yR.mjs} +2 -2
  456. package/dist/{simple-number-field-C6hE1Qlj.mjs.map → simple-number-field-Id1kV5yR.mjs.map} +1 -1
  457. package/dist/{simple-number-field-CrU2A2yp.cjs → simple-number-field-VdEeaIiC.cjs} +2 -2
  458. package/dist/{simple-number-field-CrU2A2yp.cjs.map → simple-number-field-VdEeaIiC.cjs.map} +1 -1
  459. package/dist/{simple-password-field-DWmUR_5_.cjs → simple-password-field-7xbVB1H3.cjs} +2 -2
  460. package/dist/{simple-password-field-DWmUR_5_.cjs.map → simple-password-field-7xbVB1H3.cjs.map} +1 -1
  461. package/dist/{simple-password-field-CabyA9Y7.mjs → simple-password-field-DIO9FwQy.mjs} +2 -2
  462. package/dist/{simple-password-field-CabyA9Y7.mjs.map → simple-password-field-DIO9FwQy.mjs.map} +1 -1
  463. package/dist/{simple-radio-group-field-BNFgrTSb.mjs → simple-radio-group-field-BmHWRnns.mjs} +2 -2
  464. package/dist/{simple-radio-group-field-BNFgrTSb.mjs.map → simple-radio-group-field-BmHWRnns.mjs.map} +1 -1
  465. package/dist/{simple-radio-group-field-CpTX_Xoy.cjs → simple-radio-group-field-CxVAr6yW.cjs} +2 -2
  466. package/dist/{simple-radio-group-field-CpTX_Xoy.cjs.map → simple-radio-group-field-CxVAr6yW.cjs.map} +1 -1
  467. package/dist/{simple-select-field-VibM3I3D.cjs → simple-select-field-C9u7Pg9u.cjs} +2 -2
  468. package/dist/{simple-select-field-VibM3I3D.cjs.map → simple-select-field-C9u7Pg9u.cjs.map} +1 -1
  469. package/dist/{simple-select-field-CiUfRHCo.mjs → simple-select-field-DfZk0zPa.mjs} +2 -2
  470. package/dist/{simple-select-field-CiUfRHCo.mjs.map → simple-select-field-DfZk0zPa.mjs.map} +1 -1
  471. package/dist/{simple-text-field-DRlcBB-3.cjs → simple-text-field-BxPjcB4c.cjs} +2 -2
  472. package/dist/{simple-text-field-DRlcBB-3.cjs.map → simple-text-field-BxPjcB4c.cjs.map} +1 -1
  473. package/dist/{simple-text-field-Cmmmci4R.mjs → simple-text-field-CT9KFUSK.mjs} +2 -2
  474. package/dist/{simple-text-field-Cmmmci4R.mjs.map → simple-text-field-CT9KFUSK.mjs.map} +1 -1
  475. package/dist/{simple-textarea-field-BDqw8ewE.mjs → simple-textarea-field-B22rT6zS.mjs} +2 -2
  476. package/dist/{simple-textarea-field-BDqw8ewE.mjs.map → simple-textarea-field-B22rT6zS.mjs.map} +1 -1
  477. package/dist/{simple-textarea-field-B0fOG7nh.cjs → simple-textarea-field-DG9oPtP-.cjs} +2 -2
  478. package/dist/{simple-textarea-field-B0fOG7nh.cjs.map → simple-textarea-field-DG9oPtP-.cjs.map} +1 -1
  479. package/dist/{skeleton-Ct4sYEKk.d.cts → skeleton-BL19ZqPB.d.cts} +2 -5
  480. package/dist/{skeleton-Ct4sYEKk.d.mts → skeleton-BL19ZqPB.d.mts} +2 -5
  481. package/dist/{slider-DwR1MhR8.d.cts → slider-KvzhtIbT.d.cts} +2 -10
  482. package/dist/{slider-DwR1MhR8.d.mts → slider-KvzhtIbT.d.mts} +2 -10
  483. package/dist/{sonner-B6LxJMYT.d.mts → sonner-C-sM3xU2.d.mts} +1 -2
  484. package/dist/{sonner-BcNgR0GP.d.cts → sonner-D-rrTnjn.d.cts} +1 -2
  485. package/dist/sparkline-chart-TbGzakUl.mjs.map +1 -1
  486. package/dist/sparkline-chart-sPqaJHep.cjs.map +1 -1
  487. package/dist/{spinner-CXuqcoB5.d.cts → spinner-Cz20qsxS.d.cts} +2 -5
  488. package/dist/{spinner-CXuqcoB5.d.mts → spinner-Cz20qsxS.d.mts} +2 -5
  489. package/dist/stacked-area-chart-DyxY96_l.cjs.map +1 -1
  490. package/dist/stacked-area-chart-UIWIxTmq.mjs.map +1 -1
  491. package/dist/statistic-Bpif8p8R.d.cts +42 -0
  492. package/dist/statistic-Bpif8p8R.d.mts +42 -0
  493. package/dist/statistic-ClkqqDfk.mjs.map +1 -1
  494. package/dist/statistic-LL4uHlRb.cjs.map +1 -1
  495. package/dist/status-display-BUphOF18.mjs.map +1 -1
  496. package/dist/status-display-o9inMVvb.cjs.map +1 -1
  497. package/dist/submit-button-CGBaPzE9.mjs.map +1 -1
  498. package/dist/submit-button-CvINfld5.cjs.map +1 -1
  499. package/dist/summary-bar-CYfgdxrQ.mjs.map +1 -1
  500. package/dist/summary-bar-Mb1B9Dnf.cjs.map +1 -1
  501. package/dist/{switch-9v4AYqJb.d.cts → switch-Ce5Pre2e.d.cts} +2 -6
  502. package/dist/{switch-9v4AYqJb.d.mts → switch-Ce5Pre2e.d.mts} +2 -6
  503. package/dist/{switch-field-BDVIJ21m.mjs → switch-field-Cz4lDf1D.mjs} +2 -2
  504. package/dist/{switch-field-BDVIJ21m.mjs.map → switch-field-Cz4lDf1D.mjs.map} +1 -1
  505. package/dist/{switch-field-D6CCxaEX.cjs → switch-field-yE4A6EoF.cjs} +2 -2
  506. package/dist/{switch-field-D6CCxaEX.cjs.map → switch-field-yE4A6EoF.cjs.map} +1 -1
  507. package/dist/systems/google.cjs.map +1 -1
  508. package/dist/systems/google.d.cts +1 -1
  509. package/dist/systems/google.d.mts +1 -1
  510. package/dist/systems/google.mjs.map +1 -1
  511. package/dist/{table-Dg2D0v87.d.cts → table-D354-TpC.d.cts} +9 -33
  512. package/dist/{table-Dg2D0v87.d.mts → table-D354-TpC.d.mts} +9 -33
  513. package/dist/tables-078i-X0d.cjs.map +1 -1
  514. package/dist/tables-BGzwkdFO.mjs.map +1 -1
  515. package/dist/{tabs-CJ6qZcFU.d.cts → tabs-DLEtBGOr.d.cts} +5 -18
  516. package/dist/{tabs-CJ6qZcFU.d.mts → tabs-DLEtBGOr.d.mts} +5 -18
  517. package/dist/{tanstack-form-Bae0TOEr.cjs → tanstack-form-BxqS40rB.cjs} +2 -2
  518. package/dist/{tanstack-form-Bae0TOEr.cjs.map → tanstack-form-BxqS40rB.cjs.map} +1 -1
  519. package/dist/{tanstack-form-AGwPfwiM.mjs → tanstack-form-q9hDCc0Y.mjs} +2 -2
  520. package/dist/{tanstack-form-AGwPfwiM.mjs.map → tanstack-form-q9hDCc0Y.mjs.map} +1 -1
  521. package/dist/text-editor-BtfyZSgR.cjs +2 -0
  522. package/dist/{text-editor-DJYQXXtP.cjs.map → text-editor-BtfyZSgR.cjs.map} +1 -1
  523. package/dist/text-editor-CtR27_PR.mjs +2 -0
  524. package/dist/{text-editor-BQtIXOpM.mjs.map → text-editor-CtR27_PR.mjs.map} +1 -1
  525. package/dist/{text-editor-field-C2KDtfZV.mjs → text-editor-field-CQ8tnZFw.mjs} +2 -2
  526. package/dist/{text-editor-field-C2KDtfZV.mjs.map → text-editor-field-CQ8tnZFw.mjs.map} +1 -1
  527. package/dist/{text-editor-field-DF8lkOc_.cjs → text-editor-field-CxU-KMMn.cjs} +2 -2
  528. package/dist/{text-editor-field-DF8lkOc_.cjs.map → text-editor-field-CxU-KMMn.cjs.map} +1 -1
  529. package/dist/{text-field-BJciq-S8.mjs → text-field-B3xlvEUN.mjs} +2 -2
  530. package/dist/{text-field-BJciq-S8.mjs.map → text-field-B3xlvEUN.mjs.map} +1 -1
  531. package/dist/{text-field-B1n5Xd-k.cjs → text-field-BQovKYN-.cjs} +2 -2
  532. package/dist/{text-field-B1n5Xd-k.cjs.map → text-field-BQovKYN-.cjs.map} +1 -1
  533. package/dist/{textarea-C8ZIZh-y.d.cts → textarea-D1diQohb.d.cts} +4 -8
  534. package/dist/{textarea-C8ZIZh-y.d.mts → textarea-D1diQohb.d.mts} +4 -8
  535. package/dist/{textarea-field-Bm7bsyjB.cjs → textarea-field-B38SnNv4.cjs} +2 -2
  536. package/dist/{textarea-field-Bm7bsyjB.cjs.map → textarea-field-B38SnNv4.cjs.map} +1 -1
  537. package/dist/{textarea-field-BjdX2Qjt.mjs → textarea-field-u2UUwtr_.mjs} +2 -2
  538. package/dist/{textarea-field-BjdX2Qjt.mjs.map → textarea-field-u2UUwtr_.mjs.map} +1 -1
  539. package/dist/{title-BT9guhSU.d.cts → title-D8BSkLsi.d.cts} +6 -9
  540. package/dist/{title-BT9guhSU.d.mts → title-D8BSkLsi.d.mts} +6 -9
  541. package/dist/title-field-B2hM3S_S.cjs.map +1 -1
  542. package/dist/title-field-oAqHRw59.mjs.map +1 -1
  543. package/dist/{toggle-Bh4EazxT.d.cts → toggle-CqTmiPDi.d.cts} +2 -8
  544. package/dist/{toggle-Bh4EazxT.d.mts → toggle-CqTmiPDi.d.mts} +2 -8
  545. package/dist/toggle-button-DNLtfjJC.mjs.map +1 -1
  546. package/dist/toggle-button-Dq78v8cH.cjs.map +1 -1
  547. package/dist/{toggle-group-BpqkL1ds.d.cts → toggle-group--bJylFDV.d.cts} +4 -17
  548. package/dist/{toggle-group-DzNE38v5.d.mts → toggle-group-l_Mi7NRg.d.mts} +4 -17
  549. package/dist/{tooltip-D4U-RhIu.d.cts → tooltip-BVYKhsC2.d.cts} +5 -18
  550. package/dist/{tooltip-D4U-RhIu.d.mts → tooltip-BVYKhsC2.d.mts} +5 -18
  551. package/dist/tooltip-BcfELg8e.cjs.map +1 -1
  552. package/dist/tooltip-TGmzPdoR.mjs.map +1 -1
  553. package/dist/top-products-bar-chart-5EJFSkeo.cjs.map +1 -1
  554. package/dist/top-products-bar-chart-CKYaOGWT.mjs.map +1 -1
  555. package/dist/{trash-BfWSqlL4.d.cts → trash-DBDuSVzW.d.cts} +3 -2
  556. package/dist/{trash-BfWSqlL4.d.mts → trash-DBDuSVzW.d.mts} +3 -2
  557. package/dist/typography/paragraph.d.cts +1 -1
  558. package/dist/typography/paragraph.d.mts +1 -1
  559. package/dist/typography/title.d.cts +1 -1
  560. package/dist/typography/title.d.mts +1 -1
  561. package/dist/ui/alert-dialog.d.cts +1 -1
  562. package/dist/ui/alert-dialog.d.mts +1 -1
  563. package/dist/ui/alert.d.cts +1 -1
  564. package/dist/ui/alert.d.mts +1 -1
  565. package/dist/ui/aspect-ratio.d.cts +1 -1
  566. package/dist/ui/aspect-ratio.d.mts +1 -1
  567. package/dist/ui/avatar.d.cts +1 -1
  568. package/dist/ui/avatar.d.mts +1 -1
  569. package/dist/ui/badge.cjs +1 -1
  570. package/dist/ui/badge.cjs.map +1 -1
  571. package/dist/ui/badge.d.cts +1 -1
  572. package/dist/ui/badge.d.mts +1 -1
  573. package/dist/ui/badge.mjs +1 -1
  574. package/dist/ui/badge.mjs.map +1 -1
  575. package/dist/ui/breadcrumb.cjs.map +1 -1
  576. package/dist/ui/breadcrumb.d.cts +1 -1
  577. package/dist/ui/breadcrumb.d.mts +1 -1
  578. package/dist/ui/breadcrumb.mjs.map +1 -1
  579. package/dist/ui/button-group.d.cts +1 -1
  580. package/dist/ui/button-group.d.mts +1 -1
  581. package/dist/ui/button.cjs.map +1 -1
  582. package/dist/ui/button.d.cts +1 -1
  583. package/dist/ui/button.d.mts +1 -1
  584. package/dist/ui/button.mjs.map +1 -1
  585. package/dist/ui/buttons/add-new.cjs.map +1 -1
  586. package/dist/ui/buttons/add-new.d.cts +1 -1
  587. package/dist/ui/buttons/add-new.d.mts +1 -1
  588. package/dist/ui/buttons/add-new.mjs.map +1 -1
  589. package/dist/ui/buttons/edit.cjs.map +1 -1
  590. package/dist/ui/buttons/edit.d.cts +1 -1
  591. package/dist/ui/buttons/edit.d.mts +1 -1
  592. package/dist/ui/buttons/edit.mjs.map +1 -1
  593. package/dist/ui/buttons/refresh.cjs.map +1 -1
  594. package/dist/ui/buttons/refresh.d.cts +1 -1
  595. package/dist/ui/buttons/refresh.d.mts +1 -1
  596. package/dist/ui/buttons/refresh.mjs.map +1 -1
  597. package/dist/ui/buttons/trash.cjs.map +1 -1
  598. package/dist/ui/buttons/trash.d.cts +1 -1
  599. package/dist/ui/buttons/trash.d.mts +1 -1
  600. package/dist/ui/buttons/trash.mjs.map +1 -1
  601. package/dist/ui/buttons/upload-image.cjs.map +1 -1
  602. package/dist/ui/buttons/upload-image.d.cts +1 -1
  603. package/dist/ui/buttons/upload-image.d.mts +1 -1
  604. package/dist/ui/buttons/upload-image.mjs.map +1 -1
  605. package/dist/ui/calendar.cjs.map +1 -1
  606. package/dist/ui/calendar.d.cts +1 -1
  607. package/dist/ui/calendar.d.mts +1 -1
  608. package/dist/ui/calendar.mjs.map +1 -1
  609. package/dist/ui/card.d.cts +1 -1
  610. package/dist/ui/card.d.mts +1 -1
  611. package/dist/ui/carousel.cjs.map +1 -1
  612. package/dist/ui/carousel.d.cts +1 -1
  613. package/dist/ui/carousel.d.mts +1 -1
  614. package/dist/ui/carousel.mjs.map +1 -1
  615. package/dist/ui/chart.cjs +1 -1
  616. package/dist/ui/chart.cjs.map +1 -1
  617. package/dist/ui/chart.d.cts +1 -1
  618. package/dist/ui/chart.d.mts +1 -1
  619. package/dist/ui/chart.mjs +1 -1
  620. package/dist/ui/chart.mjs.map +1 -1
  621. package/dist/ui/checkbox.cjs.map +1 -1
  622. package/dist/ui/checkbox.d.cts +1 -1
  623. package/dist/ui/checkbox.d.mts +1 -1
  624. package/dist/ui/checkbox.mjs.map +1 -1
  625. package/dist/ui/collapsible.d.cts +1 -1
  626. package/dist/ui/collapsible.d.mts +1 -1
  627. package/dist/ui/combobox.cjs +1 -0
  628. package/dist/ui/combobox.d.cts +2 -0
  629. package/dist/ui/combobox.d.mts +2 -0
  630. package/dist/ui/combobox.mjs +1 -0
  631. package/dist/ui/command.cjs +1 -1
  632. package/dist/ui/command.cjs.map +1 -1
  633. package/dist/ui/command.d.cts +1 -1
  634. package/dist/ui/command.d.mts +1 -1
  635. package/dist/ui/command.mjs +1 -1
  636. package/dist/ui/command.mjs.map +1 -1
  637. package/dist/ui/context-menu.cjs.map +1 -1
  638. package/dist/ui/context-menu.d.cts +1 -1
  639. package/dist/ui/context-menu.d.mts +1 -1
  640. package/dist/ui/context-menu.mjs.map +1 -1
  641. package/dist/ui/dialog.cjs.map +1 -1
  642. package/dist/ui/dialog.d.cts +1 -1
  643. package/dist/ui/dialog.d.mts +1 -1
  644. package/dist/ui/dialog.mjs.map +1 -1
  645. package/dist/ui/drawer.cjs.map +1 -1
  646. package/dist/ui/drawer.d.cts +1 -1
  647. package/dist/ui/drawer.d.mts +1 -1
  648. package/dist/ui/drawer.mjs.map +1 -1
  649. package/dist/ui/dropdown-menu.cjs.map +1 -1
  650. package/dist/ui/dropdown-menu.d.cts +1 -1
  651. package/dist/ui/dropdown-menu.d.mts +1 -1
  652. package/dist/ui/dropdown-menu.mjs.map +1 -1
  653. package/dist/ui/empty.d.cts +1 -1
  654. package/dist/ui/empty.d.mts +1 -1
  655. package/dist/ui/field.cjs.map +1 -1
  656. package/dist/ui/field.d.cts +11 -47
  657. package/dist/ui/field.d.mts +11 -47
  658. package/dist/ui/field.mjs.map +1 -1
  659. package/dist/ui/file-uploader.cjs.map +1 -1
  660. package/dist/ui/file-uploader.d.cts +1 -1
  661. package/dist/ui/file-uploader.d.mts +1 -1
  662. package/dist/ui/file-uploader.mjs.map +1 -1
  663. package/dist/ui/form.cjs.map +1 -1
  664. package/dist/ui/form.d.cts +1 -1
  665. package/dist/ui/form.d.mts +1 -1
  666. package/dist/ui/form.mjs.map +1 -1
  667. package/dist/ui/hover-card.cjs.map +1 -1
  668. package/dist/ui/hover-card.d.cts +1 -1
  669. package/dist/ui/hover-card.d.mts +1 -1
  670. package/dist/ui/hover-card.mjs.map +1 -1
  671. package/dist/ui/image.cjs +1 -1
  672. package/dist/ui/image.cjs.map +1 -1
  673. package/dist/ui/image.d.cts +1 -1
  674. package/dist/ui/image.d.mts +1 -1
  675. package/dist/ui/image.mjs +1 -1
  676. package/dist/ui/image.mjs.map +1 -1
  677. package/dist/ui/input-otp.cjs.map +1 -1
  678. package/dist/ui/input-otp.d.cts +1 -1
  679. package/dist/ui/input-otp.d.mts +1 -1
  680. package/dist/ui/input-otp.mjs.map +1 -1
  681. package/dist/ui/input.d.cts +1 -1
  682. package/dist/ui/input.d.mts +1 -1
  683. package/dist/ui/inputs/search-input.cjs.map +1 -1
  684. package/dist/ui/inputs/search-input.d.cts +1 -1
  685. package/dist/ui/inputs/search-input.d.mts +1 -1
  686. package/dist/ui/inputs/search-input.mjs.map +1 -1
  687. package/dist/ui/item.d.cts +1 -1
  688. package/dist/ui/item.d.mts +1 -1
  689. package/dist/ui/label.d.cts +1 -1
  690. package/dist/ui/label.d.mts +1 -1
  691. package/dist/ui/menubar.cjs.map +1 -1
  692. package/dist/ui/menubar.d.cts +1 -1
  693. package/dist/ui/menubar.d.mts +1 -1
  694. package/dist/ui/menubar.mjs.map +1 -1
  695. package/dist/ui/multi-select.cjs +1 -1
  696. package/dist/ui/multi-select.cjs.map +1 -1
  697. package/dist/ui/multi-select.d.cts +1 -1
  698. package/dist/ui/multi-select.d.mts +1 -1
  699. package/dist/ui/multi-select.mjs +1 -1
  700. package/dist/ui/multi-select.mjs.map +1 -1
  701. package/dist/ui/navigation-menu.cjs.map +1 -1
  702. package/dist/ui/navigation-menu.d.cts +1 -1
  703. package/dist/ui/navigation-menu.d.mts +1 -1
  704. package/dist/ui/navigation-menu.mjs.map +1 -1
  705. package/dist/ui/pagination.cjs.map +1 -1
  706. package/dist/ui/pagination.d.cts +1 -1
  707. package/dist/ui/pagination.d.mts +1 -1
  708. package/dist/ui/pagination.mjs.map +1 -1
  709. package/dist/ui/popover.cjs.map +1 -1
  710. package/dist/ui/popover.d.cts +1 -1
  711. package/dist/ui/popover.d.mts +1 -1
  712. package/dist/ui/popover.mjs.map +1 -1
  713. package/dist/ui/progress.cjs.map +1 -1
  714. package/dist/ui/progress.d.cts +1 -1
  715. package/dist/ui/progress.d.mts +1 -1
  716. package/dist/ui/progress.mjs.map +1 -1
  717. package/dist/ui/radio-group.cjs.map +1 -1
  718. package/dist/ui/radio-group.d.cts +1 -1
  719. package/dist/ui/radio-group.d.mts +1 -1
  720. package/dist/ui/radio-group.mjs.map +1 -1
  721. package/dist/ui/resizable.cjs.map +1 -1
  722. package/dist/ui/resizable.d.cts +1 -1
  723. package/dist/ui/resizable.d.mts +1 -1
  724. package/dist/ui/resizable.mjs.map +1 -1
  725. package/dist/ui/scroll-area.cjs.map +1 -1
  726. package/dist/ui/scroll-area.d.cts +1 -1
  727. package/dist/ui/scroll-area.d.mts +1 -1
  728. package/dist/ui/scroll-area.mjs.map +1 -1
  729. package/dist/ui/select.cjs.map +1 -1
  730. package/dist/ui/select.d.cts +1 -1
  731. package/dist/ui/select.d.mts +1 -1
  732. package/dist/ui/select.mjs.map +1 -1
  733. package/dist/ui/separator.d.cts +1 -1
  734. package/dist/ui/separator.d.mts +1 -1
  735. package/dist/ui/sheet.cjs.map +1 -1
  736. package/dist/ui/sheet.d.cts +1 -1
  737. package/dist/ui/sheet.d.mts +1 -1
  738. package/dist/ui/sheet.mjs.map +1 -1
  739. package/dist/ui/skeleton.d.cts +1 -1
  740. package/dist/ui/skeleton.d.mts +1 -1
  741. package/dist/ui/slider.cjs.map +1 -1
  742. package/dist/ui/slider.d.cts +1 -1
  743. package/dist/ui/slider.d.mts +1 -1
  744. package/dist/ui/slider.mjs.map +1 -1
  745. package/dist/ui/sonner.d.cts +1 -1
  746. package/dist/ui/sonner.d.mts +1 -1
  747. package/dist/ui/spinner.d.cts +1 -1
  748. package/dist/ui/spinner.d.mts +1 -1
  749. package/dist/ui/status.cjs.map +1 -1
  750. package/dist/ui/status.d.cts +1 -9
  751. package/dist/ui/status.d.mts +1 -9
  752. package/dist/ui/status.mjs.map +1 -1
  753. package/dist/ui/switch.cjs.map +1 -1
  754. package/dist/ui/switch.d.cts +1 -1
  755. package/dist/ui/switch.d.mts +1 -1
  756. package/dist/ui/switch.mjs.map +1 -1
  757. package/dist/ui/table.d.cts +1 -1
  758. package/dist/ui/table.d.mts +1 -1
  759. package/dist/ui/tabs.d.cts +1 -1
  760. package/dist/ui/tabs.d.mts +1 -1
  761. package/dist/ui/textarea.d.cts +1 -1
  762. package/dist/ui/textarea.d.mts +1 -1
  763. package/dist/ui/toggle-group.cjs.map +1 -1
  764. package/dist/ui/toggle-group.d.cts +1 -1
  765. package/dist/ui/toggle-group.d.mts +1 -1
  766. package/dist/ui/toggle-group.mjs.map +1 -1
  767. package/dist/ui/toggle.d.cts +1 -1
  768. package/dist/ui/toggle.d.mts +1 -1
  769. package/dist/ui/tooltip.cjs.map +1 -1
  770. package/dist/ui/tooltip.d.cts +1 -1
  771. package/dist/ui/tooltip.d.mts +1 -1
  772. package/dist/ui/tooltip.mjs.map +1 -1
  773. package/dist/{upload-image-D4VZU3IA.d.cts → upload-image-DM-tkZuR.d.cts} +3 -3
  774. package/dist/{upload-image-D4VZU3IA.d.mts → upload-image-DM-tkZuR.d.mts} +3 -3
  775. package/dist/user-BymzvsYp.mjs.map +1 -1
  776. package/dist/{user-CvesQf42.d.cts → user-D46H2MOh.d.cts} +6 -3
  777. package/dist/{user-CvesQf42.d.mts → user-D46H2MOh.d.mts} +6 -3
  778. package/dist/user-Dn53Fu5q.cjs.map +1 -1
  779. package/dist/volume-bar-chart-BRpC_8-X.mjs.map +1 -1
  780. package/dist/volume-bar-chart-CRxZPZIn.cjs.map +1 -1
  781. package/dist/waterfall-chart-CTB2f5eh.cjs.map +1 -1
  782. package/dist/waterfall-chart-DwetaJFJ.mjs.map +1 -1
  783. package/package.json +5 -1
  784. package/dist/cms-layout-CGGJqbr0.cjs +0 -2
  785. package/dist/cms-layout-CGGJqbr0.cjs.map +0 -1
  786. package/dist/cms-layout-ePySxIQN.mjs +0 -2
  787. package/dist/cms-layout-ePySxIQN.mjs.map +0 -1
  788. package/dist/dialogs/detail-dialog/index.cjs.map +0 -1
  789. package/dist/dialogs/detail-dialog/index.mjs.map +0 -1
  790. package/dist/image-Cln0r7Eb.d.cts +0 -27
  791. package/dist/image-Cln0r7Eb.d.mts +0 -27
  792. package/dist/index-C9eXmnvk.d.cts +0 -36
  793. package/dist/index-C9eXmnvk.d.mts +0 -36
  794. package/dist/number-input-CqkegUWs.mjs +0 -2
  795. package/dist/number-input-kTh9zzr7.cjs +0 -2
  796. package/dist/payment-layout-Cb-Q8KD2.cjs +0 -2
  797. package/dist/sidebar-core-Bh0dZXsm.mjs +0 -2
  798. package/dist/sidebar-core-Bh0dZXsm.mjs.map +0 -1
  799. package/dist/sidebar-core-DQE6ymo4.cjs +0 -2
  800. package/dist/sidebar-core-DQE6ymo4.cjs.map +0 -1
  801. package/dist/simple-card-6P377r4A.d.cts +0 -29
  802. package/dist/simple-card-6P377r4A.d.mts +0 -29
  803. package/dist/statistic-8zBJMdRa.d.cts +0 -45
  804. package/dist/statistic-8zBJMdRa.d.mts +0 -45
  805. package/dist/text-editor-BQtIXOpM.mjs +0 -2
  806. package/dist/text-editor-DJYQXXtP.cjs +0 -2
@@ -1,2 +1,2 @@
1
- import { i as buttonGroupVariants, n as ButtonGroupSeparator, r as ButtonGroupText, t as ButtonGroup } from "../button-group-Cd5m5G3p.mjs";
1
+ import { i as buttonGroupVariants, n as ButtonGroupSeparator, r as ButtonGroupText, t as ButtonGroup } from "../button-group-Br7Cye6b.mjs";
2
2
  export { ButtonGroup, ButtonGroupSeparator, ButtonGroupText, buttonGroupVariants };
@@ -1 +1 @@
1
- {"version":3,"file":"button.cjs","names":["Slot","buttonVariants","buttonLoadingVariant","Loader2Icon","Slottable"],"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":"8QA0JA,SAAS,EAAO,CACd,YACA,UACA,OAAO,UACP,QACA,UAAU,GACV,YAAY,GACZ,WACA,WACA,OAAO,SACP,iBACA,GAAG,GACW,CACd,IAAM,EAAO,EAAUA,EAAAA,EAAO,SACxB,EAAa,GAAY,EAE/B,OACE,EAAA,EAAA,KAAA,CAAC,EAAD,CACE,GAAM,EAA2C,IAAA,GAAjC,CAAE,OAAM,SAAU,CAAW,EAC7C,YAAU,SACV,aAAY,EAAY,UAAY,IAAA,GACpC,gBAAe,EAAa,GAAO,IAAA,GACnC,YAAW,EAAY,GAAO,IAAA,GAC9B,WAAA,EAAA,EAAA,GAAA,CACEC,EAAAA,EAAe,CACb,UACA,OACA,QACA,WACF,CAAC,CACH,EACA,GAAI,WAdN,CAgBG,IACC,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAWC,EAAAA,EAAqB,CAAE,UAAS,OAAM,CAAC,WAAvD,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,YAAD,CAAa,KAAM,GAAI,UAAU,cAAgB,CAAA,GACjD,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,mBAAU,SAAa,CAAA,CACpC,IAEN,GACC,EAAA,EAAA,IAAA,CAACC,EAAAA,EAAD,CAAY,UAAoB,CAAA,GAEhC,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,WAAA,EAAA,EAAA,GAAA,CAAc,kDAAmD,GAAa,gCAAiC,CAAc,EAAI,UAAc,CAAA,CAElJ,GAEV"}
1
+ {"version":3,"file":"button.cjs","names":["Slot","buttonVariants","buttonLoadingVariant","Loader2Icon","Slottable"],"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":"8QA0JA,SAAS,EAAO,CACd,YACA,UACA,OAAO,UACP,QACA,UAAU,GACV,YAAY,GACZ,WACA,WACA,OAAO,SACP,iBACA,GAAG,GACW,CACd,IAAM,EAAO,EAAUA,EAAAA,EAAO,SACxB,EAAa,GAAY,EAE/B,OACE,EAAA,EAAA,KAAA,CAAC,EAAD,CACE,GAAM,EAA2C,IAAA,GAAjC,CAAE,OAAM,SAAU,CAAW,EAC7C,YAAU,SACV,aAAY,EAAY,UAAY,IAAA,GACpC,gBAAe,EAAa,GAAO,IAAA,GACnC,YAAW,EAAY,GAAO,IAAA,GAC9B,WAAA,EAAA,EAAA,GAAA,CACEC,EAAAA,EAAe,CACb,UACA,OACA,QACA,WACF,CAAC,CACH,EACA,GAAI,EAdN,SAAA,CAgBG,IACC,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAWC,EAAAA,EAAqB,CAAE,UAAS,OAAM,CAAC,EAAvD,SAAA,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,YAAD,CAAa,KAAM,GAAI,UAAU,cAAgB,CAAA,GACjD,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,UAAU,SAAA,SAAa,CAAA,CACpC,CAEN,CAAA,EAAA,GACC,EAAA,EAAA,IAAA,CAACC,EAAAA,EAAD,CAAY,UAAoB,CAAA,GAEhC,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,WAAA,EAAA,EAAA,GAAA,CAAc,kDAAmD,GAAa,gCAAiC,CAAc,EAAI,UAAc,CAAA,CAElJ,GAEV"}
@@ -1,2 +1,2 @@
1
- import { n as ButtonProps, t as Button } from "../button-Bk4Y6_9I.cjs";
1
+ import { n as ButtonProps, t as Button } from "../button-BnoPktln.cjs";
2
2
  export { Button, ButtonProps };
@@ -1,2 +1,2 @@
1
- import { n as ButtonProps, t as Button } from "../button-Bk4Y6_9I.mjs";
1
+ import { n as ButtonProps, t as Button } from "../button-BnoPktln.mjs";
2
2
  export { Button, ButtonProps };
@@ -1 +1 @@
1
- {"version":3,"file":"button.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":"+PA0JA,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,EAAD,CACE,GAAM,EAA2C,IAAA,GAAjC,CAAE,OAAM,SAAU,CAAW,EAC7C,YAAU,SACV,aAAY,EAAY,UAAY,IAAA,GACpC,gBAAe,EAAa,GAAO,IAAA,GACnC,YAAW,EAAY,GAAO,IAAA,GAC9B,UAAW,EACT,EAAe,CACb,UACA,OACA,QACA,WACF,CAAC,CACH,EACA,GAAI,WAdN,CAgBG,GACC,EAAC,MAAD,CAAK,UAAW,EAAqB,CAAE,UAAS,OAAM,CAAC,WAAvD,CACE,EAAC,EAAD,CAAa,KAAM,GAAI,UAAU,cAAgB,CAAA,EACjD,EAAC,OAAD,CAAM,UAAU,mBAAU,SAAa,CAAA,CACpC,IAEN,EACC,EAAC,EAAD,CAAY,UAAoB,CAAA,EAEhC,EAAC,MAAD,CAAK,UAAW,EAAG,kDAAmD,GAAa,gCAAiC,CAAc,EAAI,UAAc,CAAA,CAElJ,GAEV"}
1
+ {"version":3,"file":"button.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":"+PA0JA,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,EAAD,CACE,GAAM,EAA2C,IAAA,GAAjC,CAAE,OAAM,SAAU,CAAW,EAC7C,YAAU,SACV,aAAY,EAAY,UAAY,IAAA,GACpC,gBAAe,EAAa,GAAO,IAAA,GACnC,YAAW,EAAY,GAAO,IAAA,GAC9B,UAAW,EACT,EAAe,CACb,UACA,OACA,QACA,WACF,CAAC,CACH,EACA,GAAI,EAdN,SAAA,CAgBG,GACC,EAAC,MAAD,CAAK,UAAW,EAAqB,CAAE,UAAS,OAAM,CAAC,EAAvD,SAAA,CACE,EAAC,EAAD,CAAa,KAAM,GAAI,UAAU,cAAgB,CAAA,EACjD,EAAC,OAAD,CAAM,UAAU,UAAU,SAAA,SAAa,CAAA,CACpC,CAEN,CAAA,EAAA,EACC,EAAC,EAAD,CAAY,UAAoB,CAAA,EAEhC,EAAC,MAAD,CAAK,UAAW,EAAG,kDAAmD,GAAa,gCAAiC,CAAc,EAAI,UAAc,CAAA,CAElJ,GAEV"}
@@ -1 +1 @@
1
- {"version":3,"file":"add-new.cjs","names":["Button","PlusIcon","Paragraph"],"sources":["../../../packages/components/ui/buttons/add-new.tsx"],"sourcesContent":["import { PlusIcon } from 'lucide-react';\n\nimport { Paragraph } from '@/components/typography/paragraph';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. Defaults to a no-op. */\n onClick?: () => void;\n};\n\n/**\n * A toolbar button that triggers a \"create new\" action, displaying a plus icon alongside a \"Create\" label that is hidden on small screens.\n *\n * @example\n * import { AddNewBtn } from '@customafk/lunas-ui/ui/buttons/add-new';\n *\n * <AddNewBtn onClick={() => setOpen(true)} />\n */\nexport const AddNewBtn: React.FC<React.PropsWithChildren<Props>> = ({ onClick = () => {} }) => {\n return (\n <Button\n aria-label=\"Tạo mới\"\n variant=\"outline\"\n color=\"muted\"\n className=\"outline-border-weak max-sm:aspect-square max-sm:size-9 max-sm:p-0\"\n onClick={onClick}\n >\n <PlusIcon className=\"opacity-60 sm:-ms-1\" size={16} aria-hidden=\"true\" />\n <Paragraph variant=\"sm\" className=\"max-sm:sr-only\">\n Create\n </Paragraph>\n </Button>\n );\n};\n"],"mappings":"6MAmBA,MAAa,GAAuD,CAAE,cAAgB,CAAC,MAEnF,EAAA,EAAA,KAAA,CAACA,EAAAA,OAAD,CACE,aAAW,UACX,QAAQ,UACR,MAAM,QACN,UAAU,oEACD,mBALX,EAOE,EAAA,EAAA,IAAA,CAACC,EAAAA,SAAD,CAAU,UAAU,sBAAsB,KAAM,GAAI,cAAY,MAAQ,CAAA,GACxE,EAAA,EAAA,IAAA,CAACC,EAAAA,UAAD,CAAW,QAAQ,KAAK,UAAU,0BAAiB,QAExC,CAAA,CACL"}
1
+ {"version":3,"file":"add-new.cjs","names":["Button","PlusIcon","Paragraph"],"sources":["../../../packages/components/ui/buttons/add-new.tsx"],"sourcesContent":["import { PlusIcon } from 'lucide-react';\n\nimport { Paragraph } from '@/components/typography/paragraph';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. Defaults to a no-op. */\n onClick?: () => void;\n};\n\n/**\n * A toolbar button that triggers a \"create new\" action, displaying a plus icon alongside a \"Create\" label that is hidden on small screens.\n *\n * @example\n * import { AddNewBtn } from '@customafk/lunas-ui/ui/buttons/add-new';\n *\n * <AddNewBtn onClick={() => setOpen(true)} />\n */\nexport const AddNewBtn: React.FC<React.PropsWithChildren<Props>> = ({ onClick = () => {} }) => {\n return (\n <Button\n aria-label=\"Tạo mới\"\n variant=\"outline\"\n color=\"muted\"\n className=\"outline-border-weak max-sm:aspect-square max-sm:size-9 max-sm:p-0\"\n onClick={onClick}\n >\n <PlusIcon className=\"opacity-60 sm:-ms-1\" size={16} aria-hidden=\"true\" />\n <Paragraph variant=\"sm\" className=\"max-sm:sr-only\">\n Create\n </Paragraph>\n </Button>\n );\n};\n"],"mappings":"6MAmBA,MAAa,GAAuD,CAAE,cAAgB,CAAC,MAEnF,EAAA,EAAA,KAAA,CAACA,EAAAA,OAAD,CACE,aAAW,UACX,QAAQ,UACR,MAAM,QACN,UAAU,oEACD,UALX,SAAA,EAOE,EAAA,EAAA,IAAA,CAACC,EAAAA,SAAD,CAAU,UAAU,sBAAsB,KAAM,GAAI,cAAY,MAAQ,CAAA,GACxE,EAAA,EAAA,IAAA,CAACC,EAAAA,UAAD,CAAW,QAAQ,KAAK,UAAU,iBAAiB,SAAA,QAExC,CAAA,CACL"}
@@ -1,2 +1,2 @@
1
- import { t as AddNewBtn } from "../../add-new-DkBwXh0Q.cjs";
1
+ import { t as AddNewBtn } from "../../add-new-CHYPSC1G.cjs";
2
2
  export { AddNewBtn };
@@ -1,2 +1,2 @@
1
- import { t as AddNewBtn } from "../../add-new-DkBwXh0Q.mjs";
1
+ import { t as AddNewBtn } from "../../add-new-CHYPSC1G.mjs";
2
2
  export { AddNewBtn };
@@ -1 +1 @@
1
- {"version":3,"file":"add-new.mjs","names":[],"sources":["../../../packages/components/ui/buttons/add-new.tsx"],"sourcesContent":["import { PlusIcon } from 'lucide-react';\n\nimport { Paragraph } from '@/components/typography/paragraph';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. Defaults to a no-op. */\n onClick?: () => void;\n};\n\n/**\n * A toolbar button that triggers a \"create new\" action, displaying a plus icon alongside a \"Create\" label that is hidden on small screens.\n *\n * @example\n * import { AddNewBtn } from '@customafk/lunas-ui/ui/buttons/add-new';\n *\n * <AddNewBtn onClick={() => setOpen(true)} />\n */\nexport const AddNewBtn: React.FC<React.PropsWithChildren<Props>> = ({ onClick = () => {} }) => {\n return (\n <Button\n aria-label=\"Tạo mới\"\n variant=\"outline\"\n color=\"muted\"\n className=\"outline-border-weak max-sm:aspect-square max-sm:size-9 max-sm:p-0\"\n onClick={onClick}\n >\n <PlusIcon className=\"opacity-60 sm:-ms-1\" size={16} aria-hidden=\"true\" />\n <Paragraph variant=\"sm\" className=\"max-sm:sr-only\">\n Create\n </Paragraph>\n </Button>\n );\n};\n"],"mappings":"4LAmBA,MAAa,GAAuD,CAAE,cAAgB,CAAC,KAEnF,EAAC,EAAD,CACE,aAAW,UACX,QAAQ,UACR,MAAM,QACN,UAAU,oEACD,mBALX,CAOE,EAAC,EAAD,CAAU,UAAU,sBAAsB,KAAM,GAAI,cAAY,MAAQ,CAAA,EACxE,EAAC,EAAD,CAAW,QAAQ,KAAK,UAAU,0BAAiB,QAExC,CAAA,CACL"}
1
+ {"version":3,"file":"add-new.mjs","names":[],"sources":["../../../packages/components/ui/buttons/add-new.tsx"],"sourcesContent":["import { PlusIcon } from 'lucide-react';\n\nimport { Paragraph } from '@/components/typography/paragraph';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. Defaults to a no-op. */\n onClick?: () => void;\n};\n\n/**\n * A toolbar button that triggers a \"create new\" action, displaying a plus icon alongside a \"Create\" label that is hidden on small screens.\n *\n * @example\n * import { AddNewBtn } from '@customafk/lunas-ui/ui/buttons/add-new';\n *\n * <AddNewBtn onClick={() => setOpen(true)} />\n */\nexport const AddNewBtn: React.FC<React.PropsWithChildren<Props>> = ({ onClick = () => {} }) => {\n return (\n <Button\n aria-label=\"Tạo mới\"\n variant=\"outline\"\n color=\"muted\"\n className=\"outline-border-weak max-sm:aspect-square max-sm:size-9 max-sm:p-0\"\n onClick={onClick}\n >\n <PlusIcon className=\"opacity-60 sm:-ms-1\" size={16} aria-hidden=\"true\" />\n <Paragraph variant=\"sm\" className=\"max-sm:sr-only\">\n Create\n </Paragraph>\n </Button>\n );\n};\n"],"mappings":"4LAmBA,MAAa,GAAuD,CAAE,cAAgB,CAAC,KAEnF,EAAC,EAAD,CACE,aAAW,UACX,QAAQ,UACR,MAAM,QACN,UAAU,oEACD,UALX,SAAA,CAOE,EAAC,EAAD,CAAU,UAAU,sBAAsB,KAAM,GAAI,cAAY,MAAQ,CAAA,EACxE,EAAC,EAAD,CAAW,QAAQ,KAAK,UAAU,iBAAiB,SAAA,QAExC,CAAA,CACL"}
@@ -1 +1 @@
1
- {"version":3,"file":"edit.cjs","names":["Button","Edit2Icon"],"sources":["../../../packages/components/ui/buttons/edit.tsx"],"sourcesContent":["import { Edit2Icon } from 'lucide-react';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. */\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n};\n\n/**\n * An icon-only ghost button that triggers an edit action, rendered with a pencil icon.\n *\n * @example\n * import { EditBtn } from '@customafk/lunas-ui/ui/buttons/edit';\n *\n * <EditBtn onClick={() => openEditDialog(record.id)} />\n */\nexport const EditBtn: React.FC<Props> = ({ onClick }) => {\n return (\n <Button aria-label=\"Chỉnh sửa\" variant=\"ghost\" color=\"secondary\" size=\"icon\" className=\"max-sm:aspect-square max-sm:p-0\" onClick={onClick}>\n <Edit2Icon size={16} className=\"opacity-60\" />\n </Button>\n );\n};\n"],"mappings":"iKAiBA,MAAa,GAA4B,CAAE,cAEvC,EAAA,EAAA,IAAA,CAACA,EAAAA,OAAD,CAAQ,aAAW,YAAY,QAAQ,QAAQ,MAAM,YAAY,KAAK,OAAO,UAAU,kCAA2C,oBAChI,EAAA,EAAA,IAAA,CAACC,EAAAA,UAAD,CAAW,KAAM,GAAI,UAAU,YAAc,CAAA,CACvC,CAAA"}
1
+ {"version":3,"file":"edit.cjs","names":["Button","Edit2Icon"],"sources":["../../../packages/components/ui/buttons/edit.tsx"],"sourcesContent":["import { Edit2Icon } from 'lucide-react';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. */\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n};\n\n/**\n * An icon-only ghost button that triggers an edit action, rendered with a pencil icon.\n *\n * @example\n * import { EditBtn } from '@customafk/lunas-ui/ui/buttons/edit';\n *\n * <EditBtn onClick={() => openEditDialog(record.id)} />\n */\nexport const EditBtn: React.FC<Props> = ({ onClick }) => {\n return (\n <Button aria-label=\"Chỉnh sửa\" variant=\"ghost\" color=\"secondary\" size=\"icon\" className=\"max-sm:aspect-square max-sm:p-0\" onClick={onClick}>\n <Edit2Icon size={16} className=\"opacity-60\" />\n </Button>\n );\n};\n"],"mappings":"iKAiBA,MAAa,GAA4B,CAAE,cAEvC,EAAA,EAAA,IAAA,CAACA,EAAAA,OAAD,CAAQ,aAAW,YAAY,QAAQ,QAAQ,MAAM,YAAY,KAAK,OAAO,UAAU,kCAA2C,UAChI,UAAA,EAAA,EAAA,IAAA,CAACC,EAAAA,UAAD,CAAW,KAAM,GAAI,UAAU,YAAc,CAAA,CACvC,CAAA"}
@@ -1,2 +1,2 @@
1
- import { t as EditBtn } from "../../edit-qfS5kOtM.cjs";
1
+ import { t as EditBtn } from "../../edit-C8JDClC3.cjs";
2
2
  export { EditBtn };
@@ -1,2 +1,2 @@
1
- import { t as EditBtn } from "../../edit-qfS5kOtM.mjs";
1
+ import { t as EditBtn } from "../../edit-C8JDClC3.mjs";
2
2
  export { EditBtn };
@@ -1 +1 @@
1
- {"version":3,"file":"edit.mjs","names":[],"sources":["../../../packages/components/ui/buttons/edit.tsx"],"sourcesContent":["import { Edit2Icon } from 'lucide-react';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. */\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n};\n\n/**\n * An icon-only ghost button that triggers an edit action, rendered with a pencil icon.\n *\n * @example\n * import { EditBtn } from '@customafk/lunas-ui/ui/buttons/edit';\n *\n * <EditBtn onClick={() => openEditDialog(record.id)} />\n */\nexport const EditBtn: React.FC<Props> = ({ onClick }) => {\n return (\n <Button aria-label=\"Chỉnh sửa\" variant=\"ghost\" color=\"secondary\" size=\"icon\" className=\"max-sm:aspect-square max-sm:p-0\" onClick={onClick}>\n <Edit2Icon size={16} className=\"opacity-60\" />\n </Button>\n );\n};\n"],"mappings":"wHAiBA,MAAa,GAA4B,CAAE,aAEvC,EAAC,EAAD,CAAQ,aAAW,YAAY,QAAQ,QAAQ,MAAM,YAAY,KAAK,OAAO,UAAU,kCAA2C,mBAChI,EAAC,EAAD,CAAW,KAAM,GAAI,UAAU,YAAc,CAAA,CACvC,CAAA"}
1
+ {"version":3,"file":"edit.mjs","names":[],"sources":["../../../packages/components/ui/buttons/edit.tsx"],"sourcesContent":["import { Edit2Icon } from 'lucide-react';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. */\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n};\n\n/**\n * An icon-only ghost button that triggers an edit action, rendered with a pencil icon.\n *\n * @example\n * import { EditBtn } from '@customafk/lunas-ui/ui/buttons/edit';\n *\n * <EditBtn onClick={() => openEditDialog(record.id)} />\n */\nexport const EditBtn: React.FC<Props> = ({ onClick }) => {\n return (\n <Button aria-label=\"Chỉnh sửa\" variant=\"ghost\" color=\"secondary\" size=\"icon\" className=\"max-sm:aspect-square max-sm:p-0\" onClick={onClick}>\n <Edit2Icon size={16} className=\"opacity-60\" />\n </Button>\n );\n};\n"],"mappings":"wHAiBA,MAAa,GAA4B,CAAE,aAEvC,EAAC,EAAD,CAAQ,aAAW,YAAY,QAAQ,QAAQ,MAAM,YAAY,KAAK,OAAO,UAAU,kCAA2C,UAChI,SAAA,EAAC,EAAD,CAAW,KAAM,GAAI,UAAU,YAAc,CAAA,CACvC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"refresh.cjs","names":["Button","RefreshCwIcon","Paragraph"],"sources":["../../../packages/components/ui/buttons/refresh.tsx"],"sourcesContent":["import { RefreshCwIcon } from 'lucide-react';\n\nimport { Paragraph } from '@/components/typography/paragraph';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. Defaults to a no-op. */\n onClick?: () => void;\n};\n\n/**\n * A toolbar button that triggers a refresh/reset action, displaying a rotating arrows icon alongside a \"Reset\" label that is hidden on small screens.\n *\n * @example\n * import { RefreshBtn } from '@customafk/lunas-ui/ui/buttons/refresh';\n *\n * <RefreshBtn onClick={() => resetFilters()} />\n */\nexport const RefreshBtn: React.FC<React.PropsWithChildren<Props>> = ({ onClick = () => {} }) => {\n return (\n <Button\n aria-label=\"Tạo mới\"\n variant=\"outline\"\n color=\"muted\"\n className=\"outline-border-weak max-sm:aspect-square max-sm:size-9 max-sm:p-0\"\n onClick={onClick}\n >\n <RefreshCwIcon className=\"opacity-60 sm:-ms-1\" size={16} aria-hidden=\"true\" />\n <Paragraph variant=\"sm\" className=\"max-sm:sr-only\">\n Reset\n </Paragraph>\n </Button>\n );\n};\n"],"mappings":"6MAmBA,MAAa,GAAwD,CAAE,cAAgB,CAAC,MAEpF,EAAA,EAAA,KAAA,CAACA,EAAAA,OAAD,CACE,aAAW,UACX,QAAQ,UACR,MAAM,QACN,UAAU,oEACD,mBALX,EAOE,EAAA,EAAA,IAAA,CAACC,EAAAA,cAAD,CAAe,UAAU,sBAAsB,KAAM,GAAI,cAAY,MAAQ,CAAA,GAC7E,EAAA,EAAA,IAAA,CAACC,EAAAA,UAAD,CAAW,QAAQ,KAAK,UAAU,0BAAiB,OAExC,CAAA,CACL"}
1
+ {"version":3,"file":"refresh.cjs","names":["Button","RefreshCwIcon","Paragraph"],"sources":["../../../packages/components/ui/buttons/refresh.tsx"],"sourcesContent":["import { RefreshCwIcon } from 'lucide-react';\n\nimport { Paragraph } from '@/components/typography/paragraph';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. Defaults to a no-op. */\n onClick?: () => void;\n};\n\n/**\n * A toolbar button that triggers a refresh/reset action, displaying a rotating arrows icon alongside a \"Reset\" label that is hidden on small screens.\n *\n * @example\n * import { RefreshBtn } from '@customafk/lunas-ui/ui/buttons/refresh';\n *\n * <RefreshBtn onClick={() => resetFilters()} />\n */\nexport const RefreshBtn: React.FC<React.PropsWithChildren<Props>> = ({ onClick = () => {} }) => {\n return (\n <Button\n aria-label=\"Tạo mới\"\n variant=\"outline\"\n color=\"muted\"\n className=\"outline-border-weak max-sm:aspect-square max-sm:size-9 max-sm:p-0\"\n onClick={onClick}\n >\n <RefreshCwIcon className=\"opacity-60 sm:-ms-1\" size={16} aria-hidden=\"true\" />\n <Paragraph variant=\"sm\" className=\"max-sm:sr-only\">\n Reset\n </Paragraph>\n </Button>\n );\n};\n"],"mappings":"6MAmBA,MAAa,GAAwD,CAAE,cAAgB,CAAC,MAEpF,EAAA,EAAA,KAAA,CAACA,EAAAA,OAAD,CACE,aAAW,UACX,QAAQ,UACR,MAAM,QACN,UAAU,oEACD,UALX,SAAA,EAOE,EAAA,EAAA,IAAA,CAACC,EAAAA,cAAD,CAAe,UAAU,sBAAsB,KAAM,GAAI,cAAY,MAAQ,CAAA,GAC7E,EAAA,EAAA,IAAA,CAACC,EAAAA,UAAD,CAAW,QAAQ,KAAK,UAAU,iBAAiB,SAAA,OAExC,CAAA,CACL"}
@@ -1,2 +1,2 @@
1
- import { t as RefreshBtn } from "../../refresh-BiyrZAXL.cjs";
1
+ import { t as RefreshBtn } from "../../refresh-CWvkHT0L.cjs";
2
2
  export { RefreshBtn };
@@ -1,2 +1,2 @@
1
- import { t as RefreshBtn } from "../../refresh-BiyrZAXL.mjs";
1
+ import { t as RefreshBtn } from "../../refresh-CWvkHT0L.mjs";
2
2
  export { RefreshBtn };
@@ -1 +1 @@
1
- {"version":3,"file":"refresh.mjs","names":[],"sources":["../../../packages/components/ui/buttons/refresh.tsx"],"sourcesContent":["import { RefreshCwIcon } from 'lucide-react';\n\nimport { Paragraph } from '@/components/typography/paragraph';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. Defaults to a no-op. */\n onClick?: () => void;\n};\n\n/**\n * A toolbar button that triggers a refresh/reset action, displaying a rotating arrows icon alongside a \"Reset\" label that is hidden on small screens.\n *\n * @example\n * import { RefreshBtn } from '@customafk/lunas-ui/ui/buttons/refresh';\n *\n * <RefreshBtn onClick={() => resetFilters()} />\n */\nexport const RefreshBtn: React.FC<React.PropsWithChildren<Props>> = ({ onClick = () => {} }) => {\n return (\n <Button\n aria-label=\"Tạo mới\"\n variant=\"outline\"\n color=\"muted\"\n className=\"outline-border-weak max-sm:aspect-square max-sm:size-9 max-sm:p-0\"\n onClick={onClick}\n >\n <RefreshCwIcon className=\"opacity-60 sm:-ms-1\" size={16} aria-hidden=\"true\" />\n <Paragraph variant=\"sm\" className=\"max-sm:sr-only\">\n Reset\n </Paragraph>\n </Button>\n );\n};\n"],"mappings":"iMAmBA,MAAa,GAAwD,CAAE,cAAgB,CAAC,KAEpF,EAAC,EAAD,CACE,aAAW,UACX,QAAQ,UACR,MAAM,QACN,UAAU,oEACD,mBALX,CAOE,EAAC,EAAD,CAAe,UAAU,sBAAsB,KAAM,GAAI,cAAY,MAAQ,CAAA,EAC7E,EAAC,EAAD,CAAW,QAAQ,KAAK,UAAU,0BAAiB,OAExC,CAAA,CACL"}
1
+ {"version":3,"file":"refresh.mjs","names":[],"sources":["../../../packages/components/ui/buttons/refresh.tsx"],"sourcesContent":["import { RefreshCwIcon } from 'lucide-react';\n\nimport { Paragraph } from '@/components/typography/paragraph';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. Defaults to a no-op. */\n onClick?: () => void;\n};\n\n/**\n * A toolbar button that triggers a refresh/reset action, displaying a rotating arrows icon alongside a \"Reset\" label that is hidden on small screens.\n *\n * @example\n * import { RefreshBtn } from '@customafk/lunas-ui/ui/buttons/refresh';\n *\n * <RefreshBtn onClick={() => resetFilters()} />\n */\nexport const RefreshBtn: React.FC<React.PropsWithChildren<Props>> = ({ onClick = () => {} }) => {\n return (\n <Button\n aria-label=\"Tạo mới\"\n variant=\"outline\"\n color=\"muted\"\n className=\"outline-border-weak max-sm:aspect-square max-sm:size-9 max-sm:p-0\"\n onClick={onClick}\n >\n <RefreshCwIcon className=\"opacity-60 sm:-ms-1\" size={16} aria-hidden=\"true\" />\n <Paragraph variant=\"sm\" className=\"max-sm:sr-only\">\n Reset\n </Paragraph>\n </Button>\n );\n};\n"],"mappings":"iMAmBA,MAAa,GAAwD,CAAE,cAAgB,CAAC,KAEpF,EAAC,EAAD,CACE,aAAW,UACX,QAAQ,UACR,MAAM,QACN,UAAU,oEACD,UALX,SAAA,CAOE,EAAC,EAAD,CAAe,UAAU,sBAAsB,KAAM,GAAI,cAAY,MAAQ,CAAA,EAC7E,EAAC,EAAD,CAAW,QAAQ,KAAK,UAAU,iBAAiB,SAAA,OAExC,CAAA,CACL"}
@@ -1 +1 @@
1
- {"version":3,"file":"trash.cjs","names":["Button","Trash2Icon"],"sources":["../../../packages/components/ui/buttons/trash.tsx"],"sourcesContent":["import { Trash2Icon } from 'lucide-react';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. */\n onClick?: () => void;\n};\n\n/**\n * An icon-only ghost button that triggers a delete action, rendered with a trash-can icon.\n *\n * @example\n * import { TrashBtn } from '@customafk/lunas-ui/ui/buttons/trash';\n *\n * <TrashBtn onClick={() => deleteRecord(record.id)} />\n */\nexport const TrashBtn: React.FC<Props> = ({ onClick }) => {\n return (\n <Button aria-label=\"Xoá\" variant=\"ghost\" size=\"icon\" color=\"secondary\" className=\"max-sm:aspect-square max-sm:p-0\" onClick={onClick}>\n <Trash2Icon size={16} className=\"opacity-60\" aria-hidden=\"true\" />\n </Button>\n );\n};\n"],"mappings":"iKAiBA,MAAa,GAA6B,CAAE,cAExC,EAAA,EAAA,IAAA,CAACA,EAAAA,OAAD,CAAQ,aAAW,MAAM,QAAQ,QAAQ,KAAK,OAAO,MAAM,YAAY,UAAU,kCAA2C,oBAC1H,EAAA,EAAA,IAAA,CAACC,EAAAA,WAAD,CAAY,KAAM,GAAI,UAAU,aAAa,cAAY,MAAQ,CAAA,CAC3D,CAAA"}
1
+ {"version":3,"file":"trash.cjs","names":["Button","Trash2Icon"],"sources":["../../../packages/components/ui/buttons/trash.tsx"],"sourcesContent":["import { Trash2Icon } from 'lucide-react';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. */\n onClick?: () => void;\n};\n\n/**\n * An icon-only ghost button that triggers a delete action, rendered with a trash-can icon.\n *\n * @example\n * import { TrashBtn } from '@customafk/lunas-ui/ui/buttons/trash';\n *\n * <TrashBtn onClick={() => deleteRecord(record.id)} />\n */\nexport const TrashBtn: React.FC<Props> = ({ onClick }) => {\n return (\n <Button aria-label=\"Xoá\" variant=\"ghost\" size=\"icon\" color=\"secondary\" className=\"max-sm:aspect-square max-sm:p-0\" onClick={onClick}>\n <Trash2Icon size={16} className=\"opacity-60\" aria-hidden=\"true\" />\n </Button>\n );\n};\n"],"mappings":"iKAiBA,MAAa,GAA6B,CAAE,cAExC,EAAA,EAAA,IAAA,CAACA,EAAAA,OAAD,CAAQ,aAAW,MAAM,QAAQ,QAAQ,KAAK,OAAO,MAAM,YAAY,UAAU,kCAA2C,UAC1H,UAAA,EAAA,EAAA,IAAA,CAACC,EAAAA,WAAD,CAAY,KAAM,GAAI,UAAU,aAAa,cAAY,MAAQ,CAAA,CAC3D,CAAA"}
@@ -1,2 +1,2 @@
1
- import { t as TrashBtn } from "../../trash-BfWSqlL4.cjs";
1
+ import { t as TrashBtn } from "../../trash-DBDuSVzW.cjs";
2
2
  export { TrashBtn };
@@ -1,2 +1,2 @@
1
- import { t as TrashBtn } from "../../trash-BfWSqlL4.mjs";
1
+ import { t as TrashBtn } from "../../trash-DBDuSVzW.mjs";
2
2
  export { TrashBtn };
@@ -1 +1 @@
1
- {"version":3,"file":"trash.mjs","names":[],"sources":["../../../packages/components/ui/buttons/trash.tsx"],"sourcesContent":["import { Trash2Icon } from 'lucide-react';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. */\n onClick?: () => void;\n};\n\n/**\n * An icon-only ghost button that triggers a delete action, rendered with a trash-can icon.\n *\n * @example\n * import { TrashBtn } from '@customafk/lunas-ui/ui/buttons/trash';\n *\n * <TrashBtn onClick={() => deleteRecord(record.id)} />\n */\nexport const TrashBtn: React.FC<Props> = ({ onClick }) => {\n return (\n <Button aria-label=\"Xoá\" variant=\"ghost\" size=\"icon\" color=\"secondary\" className=\"max-sm:aspect-square max-sm:p-0\" onClick={onClick}>\n <Trash2Icon size={16} className=\"opacity-60\" aria-hidden=\"true\" />\n </Button>\n );\n};\n"],"mappings":"yHAiBA,MAAa,GAA6B,CAAE,aAExC,EAAC,EAAD,CAAQ,aAAW,MAAM,QAAQ,QAAQ,KAAK,OAAO,MAAM,YAAY,UAAU,kCAA2C,mBAC1H,EAAC,EAAD,CAAY,KAAM,GAAI,UAAU,aAAa,cAAY,MAAQ,CAAA,CAC3D,CAAA"}
1
+ {"version":3,"file":"trash.mjs","names":[],"sources":["../../../packages/components/ui/buttons/trash.tsx"],"sourcesContent":["import { Trash2Icon } from 'lucide-react';\n\nimport { Button } from '../button';\n\ntype Props = {\n /** Callback invoked when the button is clicked. */\n onClick?: () => void;\n};\n\n/**\n * An icon-only ghost button that triggers a delete action, rendered with a trash-can icon.\n *\n * @example\n * import { TrashBtn } from '@customafk/lunas-ui/ui/buttons/trash';\n *\n * <TrashBtn onClick={() => deleteRecord(record.id)} />\n */\nexport const TrashBtn: React.FC<Props> = ({ onClick }) => {\n return (\n <Button aria-label=\"Xoá\" variant=\"ghost\" size=\"icon\" color=\"secondary\" className=\"max-sm:aspect-square max-sm:p-0\" onClick={onClick}>\n <Trash2Icon size={16} className=\"opacity-60\" aria-hidden=\"true\" />\n </Button>\n );\n};\n"],"mappings":"yHAiBA,MAAa,GAA6B,CAAE,aAExC,EAAC,EAAD,CAAQ,aAAW,MAAM,QAAQ,QAAQ,KAAK,OAAO,MAAM,YAAY,UAAU,kCAA2C,UAC1H,SAAA,EAAC,EAAD,CAAY,KAAM,GAAI,UAAU,aAAa,cAAY,MAAQ,CAAA,CAC3D,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"upload-image.cjs","names":["Button","UploadIcon"],"sources":["../../../packages/components/ui/buttons/upload-image.tsx"],"sourcesContent":["import type { PropsWithChildren } from 'react';\n\nimport { UploadIcon } from 'lucide-react';\n\nimport { Button } from '../button';\n\ntype Props = {\n /**\n * Numeric pixel value applied to both the `width` and `height` of the button via inline styles.\n * @default '5rem'\n */\n size?: number;\n /** Callback invoked when the button is clicked. */\n onClick?: () => void;\n};\n\n/**\n * A square outline button for triggering image upload flows, rendered with an upload icon and a configurable size.\n *\n * @example\n * import { UploadImageBtn } from '@customafk/lunas-ui/ui/buttons/upload-image';\n *\n * <UploadImageBtn size={96} onClick={() => openFilePicker()} />\n */\nexport const UploadImageBtn: React.FC<PropsWithChildren<Props>> = ({ size = '5rem', onClick }) => {\n return (\n <Button\n style={{\n width: size,\n height: size,\n }}\n variant=\"outline\"\n color=\"muted\"\n onClick={onClick}\n >\n <UploadIcon className=\"size-6\" />\n </Button>\n );\n};\n"],"mappings":"iKAwBA,MAAa,GAAsD,CAAE,OAAO,OAAQ,cAEhF,EAAA,EAAA,IAAA,CAACA,EAAAA,OAAD,CACE,MAAO,CACL,MAAO,EACP,OAAQ,CACV,EACA,QAAQ,UACR,MAAM,QACG,oBAET,EAAA,EAAA,IAAA,CAACC,EAAAA,WAAD,CAAY,UAAU,QAAU,CAAA,CAC1B,CAAA"}
1
+ {"version":3,"file":"upload-image.cjs","names":["Button","UploadIcon"],"sources":["../../../packages/components/ui/buttons/upload-image.tsx"],"sourcesContent":["import type { PropsWithChildren } from 'react';\n\nimport { UploadIcon } from 'lucide-react';\n\nimport { Button } from '../button';\n\ntype Props = {\n /**\n * Numeric pixel value applied to both the `width` and `height` of the button via inline styles.\n * @default '5rem'\n */\n size?: number;\n /** Callback invoked when the button is clicked. */\n onClick?: () => void;\n};\n\n/**\n * A square outline button for triggering image upload flows, rendered with an upload icon and a configurable size.\n *\n * @example\n * import { UploadImageBtn } from '@customafk/lunas-ui/ui/buttons/upload-image';\n *\n * <UploadImageBtn size={96} onClick={() => openFilePicker()} />\n */\nexport const UploadImageBtn: React.FC<PropsWithChildren<Props>> = ({ size = '5rem', onClick }) => {\n return (\n <Button\n style={{\n width: size,\n height: size,\n }}\n variant=\"outline\"\n color=\"muted\"\n onClick={onClick}\n >\n <UploadIcon className=\"size-6\" />\n </Button>\n );\n};\n"],"mappings":"iKAwBA,MAAa,GAAsD,CAAE,OAAO,OAAQ,cAEhF,EAAA,EAAA,IAAA,CAACA,EAAAA,OAAD,CACE,MAAO,CACL,MAAO,EACP,OAAQ,CACV,EACA,QAAQ,UACR,MAAM,QACG,UAET,UAAA,EAAA,EAAA,IAAA,CAACC,EAAAA,WAAD,CAAY,UAAU,QAAU,CAAA,CAC1B,CAAA"}
@@ -1,2 +1,2 @@
1
- import { t as UploadImageBtn } from "../../upload-image-D4VZU3IA.cjs";
1
+ import { t as UploadImageBtn } from "../../upload-image-DM-tkZuR.cjs";
2
2
  export { UploadImageBtn };
@@ -1,2 +1,2 @@
1
- import { t as UploadImageBtn } from "../../upload-image-D4VZU3IA.mjs";
1
+ import { t as UploadImageBtn } from "../../upload-image-DM-tkZuR.mjs";
2
2
  export { UploadImageBtn };
@@ -1 +1 @@
1
- {"version":3,"file":"upload-image.mjs","names":[],"sources":["../../../packages/components/ui/buttons/upload-image.tsx"],"sourcesContent":["import type { PropsWithChildren } from 'react';\n\nimport { UploadIcon } from 'lucide-react';\n\nimport { Button } from '../button';\n\ntype Props = {\n /**\n * Numeric pixel value applied to both the `width` and `height` of the button via inline styles.\n * @default '5rem'\n */\n size?: number;\n /** Callback invoked when the button is clicked. */\n onClick?: () => void;\n};\n\n/**\n * A square outline button for triggering image upload flows, rendered with an upload icon and a configurable size.\n *\n * @example\n * import { UploadImageBtn } from '@customafk/lunas-ui/ui/buttons/upload-image';\n *\n * <UploadImageBtn size={96} onClick={() => openFilePicker()} />\n */\nexport const UploadImageBtn: React.FC<PropsWithChildren<Props>> = ({ size = '5rem', onClick }) => {\n return (\n <Button\n style={{\n width: size,\n height: size,\n }}\n variant=\"outline\"\n color=\"muted\"\n onClick={onClick}\n >\n <UploadIcon className=\"size-6\" />\n </Button>\n );\n};\n"],"mappings":"yHAwBA,MAAa,GAAsD,CAAE,OAAO,OAAQ,aAEhF,EAAC,EAAD,CACE,MAAO,CACL,MAAO,EACP,OAAQ,CACV,EACA,QAAQ,UACR,MAAM,QACG,mBAET,EAAC,EAAD,CAAY,UAAU,QAAU,CAAA,CAC1B,CAAA"}
1
+ {"version":3,"file":"upload-image.mjs","names":[],"sources":["../../../packages/components/ui/buttons/upload-image.tsx"],"sourcesContent":["import type { PropsWithChildren } from 'react';\n\nimport { UploadIcon } from 'lucide-react';\n\nimport { Button } from '../button';\n\ntype Props = {\n /**\n * Numeric pixel value applied to both the `width` and `height` of the button via inline styles.\n * @default '5rem'\n */\n size?: number;\n /** Callback invoked when the button is clicked. */\n onClick?: () => void;\n};\n\n/**\n * A square outline button for triggering image upload flows, rendered with an upload icon and a configurable size.\n *\n * @example\n * import { UploadImageBtn } from '@customafk/lunas-ui/ui/buttons/upload-image';\n *\n * <UploadImageBtn size={96} onClick={() => openFilePicker()} />\n */\nexport const UploadImageBtn: React.FC<PropsWithChildren<Props>> = ({ size = '5rem', onClick }) => {\n return (\n <Button\n style={{\n width: size,\n height: size,\n }}\n variant=\"outline\"\n color=\"muted\"\n onClick={onClick}\n >\n <UploadIcon className=\"size-6\" />\n </Button>\n );\n};\n"],"mappings":"yHAwBA,MAAa,GAAsD,CAAE,OAAO,OAAQ,aAEhF,EAAC,EAAD,CACE,MAAO,CACL,MAAO,EACP,OAAQ,CACV,EACA,QAAQ,UACR,MAAM,QACG,UAET,SAAA,EAAC,EAAD,CAAY,UAAU,QAAU,CAAA,CAC1B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.cjs","names":["ChevronLeftIcon","ChevronRightIcon","ChevronDownIcon","Button","DayPicker","buttonVariants"],"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":"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"}
1
+ {"version":3,"file":"calendar.cjs","names":["ChevronLeftIcon","ChevronRightIcon","ChevronDownIcon","Button","DayPicker","buttonVariants"],"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":"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"}
@@ -1,2 +1,2 @@
1
- import { n as CalendarDayButton, t as Calendar } from "../calendar-stv2bJv0.cjs";
1
+ import { n as CalendarDayButton, t as Calendar } from "../calendar-iDMPT1kI.cjs";
2
2
  export { Calendar, CalendarDayButton };
@@ -1,2 +1,2 @@
1
- import { n as CalendarDayButton, t as Calendar } from "../calendar-DPKt7D3w.mjs";
1
+ import { n as CalendarDayButton, t as Calendar } from "../calendar-BkV5hTX2.mjs";
2
2
  export { Calendar, CalendarDayButton };
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.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":"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"}
1
+ {"version":3,"file":"calendar.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":"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"}
@@ -1,2 +1,2 @@
1
- import { a as CardFooter, i as CardDescription, n as CardAction, o as CardHeader, r as CardContent, s as CardTitle, t as Card } from "../card-DOnx7RKz.cjs";
1
+ import { a as CardFooter, i as CardDescription, n as CardAction, o as CardHeader, r as CardContent, s as CardTitle, t as Card } from "../card-C7jG9mCZ.cjs";
2
2
  export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };
@@ -1,2 +1,2 @@
1
- import { a as CardFooter, i as CardDescription, n as CardAction, o as CardHeader, r as CardContent, s as CardTitle, t as Card } from "../card-DOnx7RKz.mjs";
1
+ import { a as CardFooter, i as CardDescription, n as CardAction, o as CardHeader, r as CardContent, s as CardTitle, t as Card } from "../card-C7jG9mCZ.mjs";
2
2
  export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };
@@ -1 +1 @@
1
- {"version":3,"file":"carousel.cjs","names":["Button","ArrowLeft","ArrowRight"],"sources":["../../packages/components/ui/carousel.tsx"],"sourcesContent":["'use client';\nimport { createContext, use, useCallback, useEffect, useState } from 'react';\n\nimport { ArrowLeft, ArrowRight } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport useEmblaCarousel, { type UseEmblaCarouselType } from 'embla-carousel-react';\nimport { Button } from '@/components/ui/button';\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ntype CarouselProps = {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: 'horizontal' | 'vertical';\n setApi?: (api: CarouselApi) => void;\n};\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = createContext<CarouselContextProps | null>(null);\n\nfunction useCarousel() {\n const context = use(CarouselContext);\n\n if (!context) {\n throw new Error('useCarousel must be used within a <Carousel />');\n }\n\n return context;\n}\n\n/**\n * Embla-powered carousel that supports horizontal and vertical orientations with keyboard navigation.\n *\n * @example\n * ```tsx\n * import {\n * Carousel, CarouselContent, CarouselItem,\n * CarouselPrevious, CarouselNext,\n * } from '@customafk/lunas-ui/ui/carousel';\n *\n * <Carousel>\n * <CarouselContent>\n * <CarouselItem>Slide 1</CarouselItem>\n * <CarouselItem>Slide 2</CarouselItem>\n * </CarouselContent>\n * <CarouselPrevious />\n * <CarouselNext />\n * </Carousel>\n * ```\n */\nfunction Carousel({ orientation = 'horizontal', opts, setApi, plugins, className, children, ...props }: React.ComponentProps<'div'> & CarouselProps) {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === 'horizontal' ? 'x' : 'y',\n },\n plugins\n );\n const [canScrollPrev, setCanScrollPrev] = useState(false);\n const [canScrollNext, setCanScrollNext] = useState(false);\n\n const onSelect = useCallback((api: CarouselApi) => {\n if (!api) return;\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n }, []);\n\n const scrollPrev = useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === 'ArrowRight') {\n event.preventDefault();\n scrollNext();\n }\n },\n [scrollPrev, scrollNext]\n );\n\n useEffect(() => {\n if (!api || !setApi) return;\n setApi(api);\n }, [api, setApi]);\n\n useEffect(() => {\n if (!api) return;\n onSelect(api);\n api.on('reInit', onSelect);\n api.on('select', onSelect);\n\n return () => {\n api?.off('select', onSelect);\n };\n }, [api, onSelect]);\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: api,\n opts,\n orientation: orientation || (opts?.axis === 'y' ? 'vertical' : 'horizontal'),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div onKeyDownCapture={handleKeyDown} className={cn('relative', className)} role=\"region\" aria-roledescription=\"carousel\" data-slot=\"carousel\" {...props}>\n {children}\n </div>\n </CarouselContext.Provider>\n );\n}\n\n/** The scrollable track that holds all CarouselItem elements. */\nfunction CarouselContent({ className, ...props }: React.ComponentProps<'div'>) {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div ref={carouselRef} className=\"overflow-hidden\" data-slot=\"carousel-content\">\n <div className={cn('flex', orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col', className)} {...props} />\n </div>\n );\n}\n\n/** A single slide within a CarouselContent; occupies the full width (or height for vertical carousels). */\nfunction CarouselItem({ className, ...props }: React.ComponentProps<'div'>) {\n const { orientation } = useCarousel();\n\n return (\n <div\n role=\"group\"\n aria-roledescription=\"slide\"\n data-slot=\"carousel-item\"\n className={cn('min-w-0 shrink-0 grow-0 basis-full', orientation === 'horizontal' ? 'pl-4' : 'pt-4', className)}\n {...props}\n />\n );\n}\n\n/** Circular button positioned to the left (or top for vertical) that scrolls to the previous slide. */\nfunction CarouselPrevious({ className, variant = 'outline', size = 'icon', ...props }: React.ComponentProps<typeof Button>) {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-previous\"\n variant={variant}\n size={size}\n className={cn(\n 'absolute size-8 rounded-full',\n orientation === 'horizontal' ? 'top-1/2 -left-12 -translate-y-1/2' : '-top-12 left-1/2 -translate-x-1/2 rotate-90',\n className\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n}\n\n/** Circular button positioned to the right (or bottom for vertical) that scrolls to the next slide. */\nfunction CarouselNext({ className, variant = 'outline', size = 'icon', ...props }: React.ComponentProps<typeof Button>) {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-next\"\n variant={variant}\n size={size}\n className={cn(\n 'absolute size-8 rounded-full',\n orientation === 'horizontal' ? 'top-1/2 -right-12 -translate-y-1/2' : '-bottom-12 left-1/2 -translate-x-1/2 rotate-90',\n className\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n}\n\nexport { Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious };\n"],"mappings":"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"}
1
+ {"version":3,"file":"carousel.cjs","names":["Button","ArrowLeft","ArrowRight"],"sources":["../../packages/components/ui/carousel.tsx"],"sourcesContent":["'use client';\nimport { createContext, use, useCallback, useEffect, useState } from 'react';\n\nimport { ArrowLeft, ArrowRight } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport useEmblaCarousel, { type UseEmblaCarouselType } from 'embla-carousel-react';\nimport { Button } from '@/components/ui/button';\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ntype CarouselProps = {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: 'horizontal' | 'vertical';\n setApi?: (api: CarouselApi) => void;\n};\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = createContext<CarouselContextProps | null>(null);\n\nfunction useCarousel() {\n const context = use(CarouselContext);\n\n if (!context) {\n throw new Error('useCarousel must be used within a <Carousel />');\n }\n\n return context;\n}\n\n/**\n * Embla-powered carousel that supports horizontal and vertical orientations with keyboard navigation.\n *\n * @example\n * ```tsx\n * import {\n * Carousel, CarouselContent, CarouselItem,\n * CarouselPrevious, CarouselNext,\n * } from '@customafk/lunas-ui/ui/carousel';\n *\n * <Carousel>\n * <CarouselContent>\n * <CarouselItem>Slide 1</CarouselItem>\n * <CarouselItem>Slide 2</CarouselItem>\n * </CarouselContent>\n * <CarouselPrevious />\n * <CarouselNext />\n * </Carousel>\n * ```\n */\nfunction Carousel({ orientation = 'horizontal', opts, setApi, plugins, className, children, ...props }: React.ComponentProps<'div'> & CarouselProps) {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === 'horizontal' ? 'x' : 'y',\n },\n plugins\n );\n const [canScrollPrev, setCanScrollPrev] = useState(false);\n const [canScrollNext, setCanScrollNext] = useState(false);\n\n const onSelect = useCallback((api: CarouselApi) => {\n if (!api) return;\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n }, []);\n\n const scrollPrev = useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === 'ArrowRight') {\n event.preventDefault();\n scrollNext();\n }\n },\n [scrollPrev, scrollNext]\n );\n\n useEffect(() => {\n if (!api || !setApi) return;\n setApi(api);\n }, [api, setApi]);\n\n useEffect(() => {\n if (!api) return;\n onSelect(api);\n api.on('reInit', onSelect);\n api.on('select', onSelect);\n\n return () => {\n api?.off('select', onSelect);\n };\n }, [api, onSelect]);\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: api,\n opts,\n orientation: orientation || (opts?.axis === 'y' ? 'vertical' : 'horizontal'),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div onKeyDownCapture={handleKeyDown} className={cn('relative', className)} role=\"region\" aria-roledescription=\"carousel\" data-slot=\"carousel\" {...props}>\n {children}\n </div>\n </CarouselContext.Provider>\n );\n}\n\n/** The scrollable track that holds all CarouselItem elements. */\nfunction CarouselContent({ className, ...props }: React.ComponentProps<'div'>) {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div ref={carouselRef} className=\"overflow-hidden\" data-slot=\"carousel-content\">\n <div className={cn('flex', orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col', className)} {...props} />\n </div>\n );\n}\n\n/** A single slide within a CarouselContent; occupies the full width (or height for vertical carousels). */\nfunction CarouselItem({ className, ...props }: React.ComponentProps<'div'>) {\n const { orientation } = useCarousel();\n\n return (\n <div\n role=\"group\"\n aria-roledescription=\"slide\"\n data-slot=\"carousel-item\"\n className={cn('min-w-0 shrink-0 grow-0 basis-full', orientation === 'horizontal' ? 'pl-4' : 'pt-4', className)}\n {...props}\n />\n );\n}\n\n/** Circular button positioned to the left (or top for vertical) that scrolls to the previous slide. */\nfunction CarouselPrevious({ className, variant = 'outline', size = 'icon', ...props }: React.ComponentProps<typeof Button>) {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-previous\"\n variant={variant}\n size={size}\n className={cn(\n 'absolute size-8 rounded-full',\n orientation === 'horizontal' ? 'top-1/2 -left-12 -translate-y-1/2' : '-top-12 left-1/2 -translate-x-1/2 rotate-90',\n className\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n}\n\n/** Circular button positioned to the right (or bottom for vertical) that scrolls to the next slide. */\nfunction CarouselNext({ className, variant = 'outline', size = 'icon', ...props }: React.ComponentProps<typeof Button>) {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-next\"\n variant={variant}\n size={size}\n className={cn(\n 'absolute size-8 rounded-full',\n orientation === 'horizontal' ? 'top-1/2 -right-12 -translate-y-1/2' : '-bottom-12 left-1/2 -translate-x-1/2 rotate-90',\n className\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n}\n\nexport { Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious };\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { a as CarouselNext, i as CarouselItem, n as CarouselApi, o as CarouselPrevious, r as CarouselContent, t as Carousel } from "../carousel-c2XuzmYN.cjs";
1
+ import { a as CarouselNext, i as CarouselItem, n as CarouselApi, o as CarouselPrevious, r as CarouselContent, t as Carousel } from "../carousel-bBvM31sh.cjs";
2
2
  export { Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious };
@@ -1,2 +1,2 @@
1
- import { a as CarouselNext, i as CarouselItem, n as CarouselApi, o as CarouselPrevious, r as CarouselContent, t as Carousel } from "../carousel-CV3IZ96x.mjs";
1
+ import { a as CarouselNext, i as CarouselItem, n as CarouselApi, o as CarouselPrevious, r as CarouselContent, t as Carousel } from "../carousel-D7VXWJ3S.mjs";
2
2
  export { Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious };
@@ -1 +1 @@
1
- {"version":3,"file":"carousel.mjs","names":[],"sources":["../../packages/components/ui/carousel.tsx"],"sourcesContent":["'use client';\nimport { createContext, use, useCallback, useEffect, useState } from 'react';\n\nimport { ArrowLeft, ArrowRight } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport useEmblaCarousel, { type UseEmblaCarouselType } from 'embla-carousel-react';\nimport { Button } from '@/components/ui/button';\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ntype CarouselProps = {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: 'horizontal' | 'vertical';\n setApi?: (api: CarouselApi) => void;\n};\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = createContext<CarouselContextProps | null>(null);\n\nfunction useCarousel() {\n const context = use(CarouselContext);\n\n if (!context) {\n throw new Error('useCarousel must be used within a <Carousel />');\n }\n\n return context;\n}\n\n/**\n * Embla-powered carousel that supports horizontal and vertical orientations with keyboard navigation.\n *\n * @example\n * ```tsx\n * import {\n * Carousel, CarouselContent, CarouselItem,\n * CarouselPrevious, CarouselNext,\n * } from '@customafk/lunas-ui/ui/carousel';\n *\n * <Carousel>\n * <CarouselContent>\n * <CarouselItem>Slide 1</CarouselItem>\n * <CarouselItem>Slide 2</CarouselItem>\n * </CarouselContent>\n * <CarouselPrevious />\n * <CarouselNext />\n * </Carousel>\n * ```\n */\nfunction Carousel({ orientation = 'horizontal', opts, setApi, plugins, className, children, ...props }: React.ComponentProps<'div'> & CarouselProps) {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === 'horizontal' ? 'x' : 'y',\n },\n plugins\n );\n const [canScrollPrev, setCanScrollPrev] = useState(false);\n const [canScrollNext, setCanScrollNext] = useState(false);\n\n const onSelect = useCallback((api: CarouselApi) => {\n if (!api) return;\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n }, []);\n\n const scrollPrev = useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === 'ArrowRight') {\n event.preventDefault();\n scrollNext();\n }\n },\n [scrollPrev, scrollNext]\n );\n\n useEffect(() => {\n if (!api || !setApi) return;\n setApi(api);\n }, [api, setApi]);\n\n useEffect(() => {\n if (!api) return;\n onSelect(api);\n api.on('reInit', onSelect);\n api.on('select', onSelect);\n\n return () => {\n api?.off('select', onSelect);\n };\n }, [api, onSelect]);\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: api,\n opts,\n orientation: orientation || (opts?.axis === 'y' ? 'vertical' : 'horizontal'),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div onKeyDownCapture={handleKeyDown} className={cn('relative', className)} role=\"region\" aria-roledescription=\"carousel\" data-slot=\"carousel\" {...props}>\n {children}\n </div>\n </CarouselContext.Provider>\n );\n}\n\n/** The scrollable track that holds all CarouselItem elements. */\nfunction CarouselContent({ className, ...props }: React.ComponentProps<'div'>) {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div ref={carouselRef} className=\"overflow-hidden\" data-slot=\"carousel-content\">\n <div className={cn('flex', orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col', className)} {...props} />\n </div>\n );\n}\n\n/** A single slide within a CarouselContent; occupies the full width (or height for vertical carousels). */\nfunction CarouselItem({ className, ...props }: React.ComponentProps<'div'>) {\n const { orientation } = useCarousel();\n\n return (\n <div\n role=\"group\"\n aria-roledescription=\"slide\"\n data-slot=\"carousel-item\"\n className={cn('min-w-0 shrink-0 grow-0 basis-full', orientation === 'horizontal' ? 'pl-4' : 'pt-4', className)}\n {...props}\n />\n );\n}\n\n/** Circular button positioned to the left (or top for vertical) that scrolls to the previous slide. */\nfunction CarouselPrevious({ className, variant = 'outline', size = 'icon', ...props }: React.ComponentProps<typeof Button>) {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-previous\"\n variant={variant}\n size={size}\n className={cn(\n 'absolute size-8 rounded-full',\n orientation === 'horizontal' ? 'top-1/2 -left-12 -translate-y-1/2' : '-top-12 left-1/2 -translate-x-1/2 rotate-90',\n className\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n}\n\n/** Circular button positioned to the right (or bottom for vertical) that scrolls to the next slide. */\nfunction CarouselNext({ className, variant = 'outline', size = 'icon', ...props }: React.ComponentProps<typeof Button>) {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-next\"\n variant={variant}\n size={size}\n className={cn(\n 'absolute size-8 rounded-full',\n orientation === 'horizontal' ? 'top-1/2 -right-12 -translate-y-1/2' : '-bottom-12 left-1/2 -translate-x-1/2 rotate-90',\n className\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n}\n\nexport { Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious };\n"],"mappings":"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"}
1
+ {"version":3,"file":"carousel.mjs","names":[],"sources":["../../packages/components/ui/carousel.tsx"],"sourcesContent":["'use client';\nimport { createContext, use, useCallback, useEffect, useState } from 'react';\n\nimport { ArrowLeft, ArrowRight } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport useEmblaCarousel, { type UseEmblaCarouselType } from 'embla-carousel-react';\nimport { Button } from '@/components/ui/button';\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ntype CarouselProps = {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: 'horizontal' | 'vertical';\n setApi?: (api: CarouselApi) => void;\n};\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = createContext<CarouselContextProps | null>(null);\n\nfunction useCarousel() {\n const context = use(CarouselContext);\n\n if (!context) {\n throw new Error('useCarousel must be used within a <Carousel />');\n }\n\n return context;\n}\n\n/**\n * Embla-powered carousel that supports horizontal and vertical orientations with keyboard navigation.\n *\n * @example\n * ```tsx\n * import {\n * Carousel, CarouselContent, CarouselItem,\n * CarouselPrevious, CarouselNext,\n * } from '@customafk/lunas-ui/ui/carousel';\n *\n * <Carousel>\n * <CarouselContent>\n * <CarouselItem>Slide 1</CarouselItem>\n * <CarouselItem>Slide 2</CarouselItem>\n * </CarouselContent>\n * <CarouselPrevious />\n * <CarouselNext />\n * </Carousel>\n * ```\n */\nfunction Carousel({ orientation = 'horizontal', opts, setApi, plugins, className, children, ...props }: React.ComponentProps<'div'> & CarouselProps) {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === 'horizontal' ? 'x' : 'y',\n },\n plugins\n );\n const [canScrollPrev, setCanScrollPrev] = useState(false);\n const [canScrollNext, setCanScrollNext] = useState(false);\n\n const onSelect = useCallback((api: CarouselApi) => {\n if (!api) return;\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n }, []);\n\n const scrollPrev = useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === 'ArrowRight') {\n event.preventDefault();\n scrollNext();\n }\n },\n [scrollPrev, scrollNext]\n );\n\n useEffect(() => {\n if (!api || !setApi) return;\n setApi(api);\n }, [api, setApi]);\n\n useEffect(() => {\n if (!api) return;\n onSelect(api);\n api.on('reInit', onSelect);\n api.on('select', onSelect);\n\n return () => {\n api?.off('select', onSelect);\n };\n }, [api, onSelect]);\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: api,\n opts,\n orientation: orientation || (opts?.axis === 'y' ? 'vertical' : 'horizontal'),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div onKeyDownCapture={handleKeyDown} className={cn('relative', className)} role=\"region\" aria-roledescription=\"carousel\" data-slot=\"carousel\" {...props}>\n {children}\n </div>\n </CarouselContext.Provider>\n );\n}\n\n/** The scrollable track that holds all CarouselItem elements. */\nfunction CarouselContent({ className, ...props }: React.ComponentProps<'div'>) {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div ref={carouselRef} className=\"overflow-hidden\" data-slot=\"carousel-content\">\n <div className={cn('flex', orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col', className)} {...props} />\n </div>\n );\n}\n\n/** A single slide within a CarouselContent; occupies the full width (or height for vertical carousels). */\nfunction CarouselItem({ className, ...props }: React.ComponentProps<'div'>) {\n const { orientation } = useCarousel();\n\n return (\n <div\n role=\"group\"\n aria-roledescription=\"slide\"\n data-slot=\"carousel-item\"\n className={cn('min-w-0 shrink-0 grow-0 basis-full', orientation === 'horizontal' ? 'pl-4' : 'pt-4', className)}\n {...props}\n />\n );\n}\n\n/** Circular button positioned to the left (or top for vertical) that scrolls to the previous slide. */\nfunction CarouselPrevious({ className, variant = 'outline', size = 'icon', ...props }: React.ComponentProps<typeof Button>) {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-previous\"\n variant={variant}\n size={size}\n className={cn(\n 'absolute size-8 rounded-full',\n orientation === 'horizontal' ? 'top-1/2 -left-12 -translate-y-1/2' : '-top-12 left-1/2 -translate-x-1/2 rotate-90',\n className\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n}\n\n/** Circular button positioned to the right (or bottom for vertical) that scrolls to the next slide. */\nfunction CarouselNext({ className, variant = 'outline', size = 'icon', ...props }: React.ComponentProps<typeof Button>) {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-next\"\n variant={variant}\n size={size}\n className={cn(\n 'absolute size-8 rounded-full',\n orientation === 'horizontal' ? 'top-1/2 -right-12 -translate-y-1/2' : '-bottom-12 left-1/2 -translate-x-1/2 rotate-90',\n className\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n}\n\nexport { Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious };\n"],"mappings":"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"}
package/dist/ui/chart.cjs CHANGED
@@ -1,4 +1,4 @@
1
1
  "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("react"),t=require("@customafk/react-toolkit/utils"),n=require("react/jsx-runtime"),r=require("recharts");const i={light:``,dark:`.dark`},a=(0,e.createContext)(null),o=()=>{let t=(0,e.useContext)(a);if(!t)throw Error(`useChart must be used within a <ChartContainer />`);return t},s=({id:i,className:o,children:s,config:c,...l})=>{let d=(0,e.useId)(),f=`chart-${i||d.replace(/:/g,``)}`;return(0,n.jsx)(a.Provider,{value:{config:c},children:(0,n.jsxs)(`div`,{"data-slot":`chart`,"data-chart":f,className:(0,t.cn)(`flex aspect-video justify-center text-xs`,`[&_.recharts-cartesian-axis-tick_text]:fill-muted`,`[&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50`,`[&_.recharts-curve.recharts-tooltip-cursor]:stroke-border`,`[&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border`,`[&_.recharts-radial-bar-background-sector]:fill-muted-muted`,`[&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted-muted`,`[&_.recharts-reference-line_[stroke='#ccc']]:stroke-border`,`[&_.recharts-dot[stroke='#fff']]:stroke-transparent`,`[&_.recharts-layer]:outline-hidden`,`[&_.recharts-sector]:outline-hidden`,`[&_.recharts-sector[stroke='#fff']]:stroke-transparent`,`[&_.recharts-surface]:outline-hidden`,o),...l,children:[(0,n.jsx)(u,{id:f,config:c}),(0,n.jsx)(r.ResponsiveContainer,{children:s})]})})},c=/^[a-zA-Z0-9#(),.%\s/_-]+$/,l=/^[a-zA-Z0-9_-]+$/,u=({id:e,config:t})=>{let r=Object.entries(t).filter(([e,t])=>(t.theme||t.color)&&l.test(e));return r.length?(0,n.jsx)(`style`,{dangerouslySetInnerHTML:{__html:Object.entries(i).map(([t,n])=>`${n} [data-chart=${e}] {\n${r.map(([e,n])=>{let r=n.theme?.[t]||n.color;return!r||!c.test(r)?null:` --color-${e}: ${r};`}).filter(Boolean).join(`
2
2
  `)}\n}`).join(`
3
- `)}}):null},d=r.Tooltip,f=({active:r,payload:i,className:a,indicator:s=`dot`,hideLabel:c=!1,hideIndicator:l=!1,label:u,labelFormatter:d,labelClassName:f,formatter:p,color:m,nameKey:g,labelKey:_})=>{let{config:v}=o(),y=(0,e.useMemo)(()=>{if(c||!i?.length)return null;let[e]=i,r=h(v,e,`${_||e?.dataKey||e?.name||`value`}`),a=!_&&typeof u==`string`?v[u]?.label||u:r?.label;return d?(0,n.jsx)(`div`,{className:(0,t.cn)(`font-medium`,f),children:d(a,i)}):a?(0,n.jsx)(`div`,{className:(0,t.cn)(`font-medium`,f),children:a}):null},[u,d,i,c,f,v,_]);if(!r||!i?.length)return null;let b=i.length===1&&s!==`dot`;return(0,n.jsxs)(`div`,{"data-slot":`chart-tooltip-content`,className:(0,t.cn)(`border-border/50 bg-background grid min-w-[8rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-dropdown`,a),children:[b?null:y,(0,n.jsx)(`div`,{className:`grid gap-1.5`,children:i.map((e,r)=>{let i=h(v,e,`${g||e.name||e.dataKey||`value`}`),a=m||e.payload?.fill||e.color;return(0,n.jsx)(`div`,{className:(0,t.cn)(`flex w-full flex-wrap items-stretch gap-2`,`[&>svg]:text-muted [&>svg]:size-2.5`,s===`dot`&&`items-center`),children:p&&e?.value!==void 0&&e.name?p(e.value,String(e.name),e,r,e.payload):(0,n.jsxs)(n.Fragment,{children:[i?.icon?(0,n.jsx)(i.icon,{}):!l&&(0,n.jsx)(`div`,{className:(0,t.cn)(`shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)`,{"size-2.5":s===`dot`,"w-1":s===`line`,"w-0 border-[1.5px] border-dashed bg-transparent":s===`dashed`,"my-0.5":b&&s===`dashed`}),style:{"--color-bg":a,"--color-border":a}}),(0,n.jsxs)(`div`,{className:(0,t.cn)(`flex flex-1 justify-between gap-2 leading-none`,b?`items-end`:`items-center`),children:[(0,n.jsxs)(`div`,{className:`grid gap-1.5`,children:[b?y:null,(0,n.jsx)(`span`,{className:`text-muted`,children:i?.label||e.name})]}),e.value!==void 0&&(0,n.jsx)(`span`,{className:`text-text-positive-strong font-number font-medium tabular-nums`,children:typeof e.value==`number`?e.value.toLocaleString():e.value})]})]})},typeof e.dataKey==`function`?r:e.dataKey??r)})})]})},p=r.Legend,m=({className:e,hideIcon:r=!1,payload:i,verticalAlign:a=`bottom`,nameKey:s})=>{let{config:c}=o();return i?.length?(0,n.jsx)(`div`,{"data-slot":`chart-legend-content`,className:(0,t.cn)(`flex items-center justify-center gap-4`,a===`top`?`pb-3`:`pt-3`,e),children:i.map(e=>{let i=h(c,e,`${s||e.dataKey||`value`}`);return(0,n.jsxs)(`div`,{className:(0,t.cn)(`flex items-center gap-1.5`,`[&>svg]:text-muted [&>svg]:size-3`),children:[i?.icon&&!r?(0,n.jsx)(i.icon,{}):(0,n.jsx)(`div`,{className:`size-2 shrink-0 rounded-[2px]`,style:{backgroundColor:e.color}}),(0,n.jsx)(`span`,{className:`text-muted-strong`,children:i?.label??e.value})]},`${e.value}`)})}):null},h=(e,t,n)=>{if(typeof t!=`object`||!t)return;let r=`payload`in t&&typeof t.payload==`object`&&t.payload!==null?t.payload:void 0,i=n,a=t;return n in a&&typeof a[n]==`string`?i=a[n]:r&&n in r&&typeof r[n]==`string`&&(i=r[n]),i in e?e[i]:e[n]};exports.ChartContainer=s,exports.ChartLegend=p,exports.ChartLegendContent=m,exports.ChartStyle=u,exports.ChartTooltip=d,exports.ChartTooltipContent=f,exports.useChart=o;
3
+ `)}}):null},d=r.Tooltip,f=({active:r,payload:i,className:a,indicator:s=`dot`,hideLabel:c=!1,hideIndicator:l=!1,label:u,labelFormatter:d,labelClassName:f,formatter:p,color:m,nameKey:g,labelKey:_})=>{let{config:v}=o(),y=(0,e.useMemo)(()=>{if(c||!i?.length)return null;let[e]=i,r=`${_||e?.dataKey||e?.name||`value`}`,a=h(v,e,r),o=!_&&typeof u==`string`?v[u]?.label||u:a?.label;return d?(0,n.jsx)(`div`,{className:(0,t.cn)(`font-medium`,f),children:d(o,i)}):o?(0,n.jsx)(`div`,{className:(0,t.cn)(`font-medium`,f),children:o}):null},[u,d,i,c,f,v,_]);if(!r||!i?.length)return null;let b=i.length===1&&s!==`dot`;return(0,n.jsxs)(`div`,{"data-slot":`chart-tooltip-content`,className:(0,t.cn)(`border-border/50 bg-background grid min-w-[8rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-dropdown`,a),children:[b?null:y,(0,n.jsx)(`div`,{className:`grid gap-1.5`,children:i.map((e,r)=>{let i=`${g||e.name||e.dataKey||`value`}`,a=h(v,e,i),o=m||e.payload?.fill||e.color;return(0,n.jsx)(`div`,{className:(0,t.cn)(`flex w-full flex-wrap items-stretch gap-2`,`[&>svg]:text-muted [&>svg]:size-2.5`,s===`dot`&&`items-center`),children:p&&e?.value!==void 0&&e.name?p(e.value,String(e.name),e,r,e.payload):(0,n.jsxs)(n.Fragment,{children:[a?.icon?(0,n.jsx)(a.icon,{}):!l&&(0,n.jsx)(`div`,{className:(0,t.cn)(`shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)`,{"size-2.5":s===`dot`,"w-1":s===`line`,"w-0 border-[1.5px] border-dashed bg-transparent":s===`dashed`,"my-0.5":b&&s===`dashed`}),style:{"--color-bg":o,"--color-border":o}}),(0,n.jsxs)(`div`,{className:(0,t.cn)(`flex flex-1 justify-between gap-2 leading-none`,b?`items-end`:`items-center`),children:[(0,n.jsxs)(`div`,{className:`grid gap-1.5`,children:[b?y:null,(0,n.jsx)(`span`,{className:`text-muted`,children:a?.label||e.name})]}),e.value!==void 0&&(0,n.jsx)(`span`,{className:`text-text-positive-strong font-number font-medium tabular-nums`,children:typeof e.value==`number`?e.value.toLocaleString():e.value})]})]})},typeof e.dataKey==`function`?r:e.dataKey??r)})})]})},p=r.Legend,m=({className:e,hideIcon:r=!1,payload:i,verticalAlign:a=`bottom`,nameKey:s})=>{let{config:c}=o();return i?.length?(0,n.jsx)(`div`,{"data-slot":`chart-legend-content`,className:(0,t.cn)(`flex items-center justify-center gap-4`,a===`top`?`pb-3`:`pt-3`,e),children:i.map(e=>{let i=`${s||e.dataKey||`value`}`,a=h(c,e,i);return(0,n.jsxs)(`div`,{className:(0,t.cn)(`flex items-center gap-1.5`,`[&>svg]:text-muted [&>svg]:size-3`),children:[a?.icon&&!r?(0,n.jsx)(a.icon,{}):(0,n.jsx)(`div`,{className:`size-2 shrink-0 rounded-[2px]`,style:{backgroundColor:e.color}}),(0,n.jsx)(`span`,{className:`text-muted-strong`,children:a?.label??e.value})]},`${e.value}`)})}):null},h=(e,t,n)=>{if(typeof t!=`object`||!t)return;let r=`payload`in t&&typeof t.payload==`object`&&t.payload!==null?t.payload:void 0,i=n,a=t;return n in a&&typeof a[n]==`string`?i=a[n]:r&&n in r&&typeof r[n]==`string`&&(i=r[n]),i in e?e[i]:e[n]};exports.ChartContainer=s,exports.ChartLegend=p,exports.ChartLegendContent=m,exports.ChartStyle=u,exports.ChartTooltip=d,exports.ChartTooltipContent=f,exports.useChart=o;
4
4
  //# sourceMappingURL=chart.cjs.map