@customafk/lunas-ui 0.2.74 → 0.2.76

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-CKRN3ZQT.d.cts → button-BnoPktln.d.cts} +3 -16
  48. package/dist/{button-CKRN3ZQT.d.mts → button-BnoPktln.d.mts} +3 -16
  49. package/dist/{button-group-Cd5m5G3p.d.mts → button-group-BTYrTSxc.d.cts} +6 -19
  50. package/dist/{button-group-CiKhLVCg.d.cts → button-group-CMz9WD27.d.mts} +6 -19
  51. package/dist/{calendar-CIhMEz65.d.mts → calendar-BkV5hTX2.d.mts} +6 -21
  52. package/dist/{calendar-DJdVw-yD.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-BniJSLfd.d.mts → carousel-D7VXWJ3S.d.mts} +7 -32
  70. package/dist/{carousel-D4--8HfP.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-Cr0FjyGt.cjs +2 -0
  82. package/dist/cms-layout-Cr0FjyGt.cjs.map +1 -0
  83. package/dist/cms-layout-pnkDb9PY.mjs +2 -0
  84. package/dist/cms-layout-pnkDb9PY.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 +65 -134
  174. package/dist/dialogs/detail-dialog/components/sidebar.d.mts +65 -134
  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-CrxTaAXE.d.cts} +5 -16
  240. package/dist/{flex-bw7U4hXn.d.mts → flex-CrxTaAXE.d.mts} +5 -16
  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-BGnN6Vax.d.cts → index-BNw6P5PU.d.cts} +793 -698
  259. package/dist/{index-BGnN6Vax.d.mts → index-BNw6P5PU.d.mts} +793 -698
  260. package/dist/index-BOifmu0V.d.cts +51 -0
  261. package/dist/index-BOifmu0V.d.mts +51 -0
  262. package/dist/{index-DmvXR2Cn.d.mts → index-CLx89ATZ.d.cts} +26 -26
  263. package/dist/{index-FEMPGfwO.d.cts → index-Ck7BOwK3.d.cts} +304 -142
  264. package/dist/{index-_GTjwUdG.d.mts → index-D4lNFNf2.d.mts} +304 -142
  265. package/dist/{index-CBntsHIg.d.cts → index-DJKJt7oV.d.cts} +111 -54
  266. package/dist/{index-CBntsHIg.d.mts → index-DJKJt7oV.d.mts} +111 -54
  267. package/dist/{index-DOaKN0wJ.d.cts → index-DRAyYm8g.d.cts} +4 -34
  268. package/dist/{index-DOaKN0wJ.d.mts → index-DRAyYm8g.d.mts} +4 -34
  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-DxNK7Wo6.d.cts} +7 -12
  278. package/dist/{input-BieGEIDf.d.mts → input-DxNK7Wo6.d.mts} +7 -12
  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-B2JsbfYJ.d.cts → item-BxUBO7Hd.d.cts} +13 -48
  282. package/dist/{item-DCYlZYdc.d.mts → item-ChW41yKF.d.mts} +13 -48
  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-B03e1b6x.d.mts → pagination-BRw-yZBY.d.cts} +11 -33
  356. package/dist/{pagination-Dw23nKW-.d.cts → 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-CAyWR1At.d.cts → resizable-D-Z8NJ7S.d.cts} +2 -3
  400. package/dist/{resizable-CAyWR1At.d.mts → resizable-D-Z8NJ7S.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-C8feOKe2.d.cts} +3 -7
  414. package/dist/{search-input-D51_mAY-.d.mts → search-input-CoqwakbI.d.mts} +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-Bk5Lvs5n.d.cts → toggle-CqTmiPDi.d.cts} +3 -9
  544. package/dist/{toggle-Bk5Lvs5n.d.mts → toggle-CqTmiPDi.d.mts} +3 -9
  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-7ZP2e-K1.d.mts → toggle-group--bJylFDV.d.cts} +4 -17
  548. package/dist/{toggle-group-B0pu4YV-.d.cts → 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 +12 -48
  657. package/dist/ui/field.d.mts +12 -48
  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 +2 -10
  751. package/dist/ui/status.d.mts +2 -10
  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 +6 -2
  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 +1 @@
1
- {"version":3,"file":"filter-DqedvThM.cjs","names":["TagIcon","CalendarIcon","HashIcon","TypeIcon","ToggleLeftIcon","Label","Checkbox","Input","Select","SelectTrigger","SelectValue","SelectContent","SelectItem","Button","Popover","PopoverTrigger","PopoverContent","Trash2Icon","useUITableFilterContext","ResizablePanel","Activity","DropdownMenu","DropdownMenuTrigger","ListFilterPlus","DropdownMenuContent","DropdownMenuItem","Separator","ListFilterIcon"],"sources":["../packages/components/features/tables/components/table/filter.tsx"],"sourcesContent":["/**\n * @file filter.tsx\n * Collapsible side-panel with column-visibility toggles and a dynamic filter builder.\n *\n * - \"Columns\" tab: toggle individual column visibility.\n * - \"Filters\" tab: \"Add Filter\" dropdown → active filter chips → per-filter Popover editor.\n */\nimport { Activity, useState } from 'react';\n\nimport { CalendarIcon, HashIcon, ListFilterIcon, ListFilterPlus, TagIcon, ToggleLeftIcon, Trash2Icon, TypeIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Button } from '@/components/ui/button';\nimport { Checkbox } from '@/components/ui/checkbox';\nimport { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '@/components/ui/dropdown-menu';\nimport { Input } from '@/components/ui/input';\nimport { Label } from '@/components/ui/label';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover';\nimport { ResizablePanel } from '@/components/ui/resizable';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';\nimport { Separator } from '@/components/ui/separator';\n\nimport { useUITableFilterContext } from '../../hooks/use-context';\nimport type {\n ActiveFilter,\n BooleanFilterValue,\n DateRangeFilterValue,\n FilterDefinition,\n FilterType,\n FilterValue,\n NumberFilterValue,\n SingleTagFilterValue,\n TagFilterValue,\n TextFilterValue,\n} from '../../types';\n\n// ── icons per filter type ──────────────────────────────────────────────────────\n\nconst TYPE_ICONS: Record<FilterType, React.ReactNode> = {\n tag: <TagIcon size={14} />,\n 'single-tag': <TagIcon size={14} />,\n 'date-range': <CalendarIcon size={14} />,\n number: <HashIcon size={14} />,\n text: <TypeIcon size={14} />,\n boolean: <ToggleLeftIcon size={14} />,\n};\n\n// ── operator options ───────────────────────────────────────────────────────────\n\nconst NUMBER_OPERATORS: { value: NumberFilterValue['operator']; label: string }[] = [\n { value: 'eq', label: 'Bằng (=)' },\n { value: 'ne', label: 'Không bằng (≠)' },\n { value: 'gt', label: 'Lớn hơn (>)' },\n { value: 'gte', label: 'Ít nhất (≥)' },\n { value: 'lt', label: 'Nhỏ hơn (<)' },\n { value: 'lte', label: 'Nhiều nhất (≤)' },\n { value: 'between', label: 'Trong khoảng' },\n];\n\nconst TEXT_OPERATORS: { value: TextFilterValue['operator']; label: string }[] = [\n { value: 'contains', label: 'Chứa' },\n { value: 'equals', label: 'Bằng' },\n { value: 'starts-with', label: 'Bắt đầu bằng' },\n { value: 'ends-with', label: 'Kết thúc bằng' },\n];\n\n// ── summary label ──────────────────────────────────────────────────────────────\n\nfunction formatFilterValue(value: FilterValue, def: FilterDefinition): string {\n switch (value.type) {\n case 'single-tag': {\n if (!value.value) return 'Chưa đặt';\n return def.options?.find(o => o.value === value.value)?.label ?? value.value;\n }\n case 'tag': {\n if (!value.values.length) return 'Chưa đặt';\n return value.values.map(v => def.options?.find(o => o.value === v)?.label ?? v).join(', ');\n }\n case 'date-range': {\n if (!value.from && !value.to) return 'Ngày không xác định';\n if (value.from && value.to) return `${value.from} → ${value.to}`;\n if (value.from) return `từ ${value.from}`;\n return `đến ${value.to}`;\n }\n case 'number': {\n const op = { eq: '=', ne: '≠', gt: '>', gte: '≥', lt: '<', lte: '≤', between: 'trong khoảng' }[value.operator];\n if (value.value === undefined) return op;\n if (value.operator === 'between') return `${op} ${value.value} – ${value.valueTo ?? '?'}`;\n return `${op} ${value.value}`;\n }\n case 'text': {\n const op = {\n contains: 'chứa',\n equals: 'là',\n 'starts-with': 'bắt đầu bằng',\n 'ends-with': 'kết thúc bằng',\n }[value.operator];\n return value.value ? `${op} \"${value.value}\"` : op;\n }\n case 'boolean':\n if (value.value === null) return 'Không xác định';\n return value.value ? 'Có' : 'Không';\n }\n}\n\n// ── filter editors ─────────────────────────────────────────────────────────────\n\nconst TagFilterEditor: React.FC<{\n value: TagFilterValue;\n definition: FilterDefinition;\n onChange: (v: TagFilterValue) => void;\n}> = ({ value, definition, onChange }) => (\n <div className=\"flex flex-col gap-1 p-3\">\n {(definition.options ?? []).length === 0 ? (\n <p className=\"text-xs text-text-positive-muted\">Không có tùy chọn</p>\n ) : (\n definition.options!.map(option => (\n <Label\n key={option.value}\n className={cn(\n 'flex items-center gap-2 bg-secondary-bg-subtle hover:bg-secondary-muted px-4 py-2 rounded transition-colors',\n value.values.includes(option.value) && 'bg-primary-muted hover:bg-primary-subtle'\n )}\n >\n <Checkbox\n checked={value.values.includes(option.value)}\n onCheckedChange={checked => {\n const next = checked ? [...value.values, option.value] : value.values.filter(v => v !== option.value);\n onChange({ type: 'tag', values: next });\n }}\n />\n <span className=\"text-sm\">{option.label}</span>\n </Label>\n ))\n )}\n </div>\n);\n\nconst SingleTagFilterEditor: React.FC<{\n value: SingleTagFilterValue;\n definition: FilterDefinition;\n onChange: (v: SingleTagFilterValue) => void;\n}> = ({ value, definition, onChange }) => (\n <div className=\"flex flex-col gap-1 p-3\">\n {(definition.options ?? []).length === 0 ? (\n <p className=\"text-xs text-text-positive-muted\">Không có tùy chọn</p>\n ) : (\n definition.options!.map(option => (\n <Label\n key={option.value}\n className={cn(\n 'flex items-center gap-2 bg-secondary-bg-subtle hover:bg-secondary-muted px-4 py-2 rounded transition-colors',\n value.value === option.value && 'bg-primary-muted hover:bg-primary-subtle'\n )}\n >\n <Checkbox\n checked={value.value === option.value}\n onCheckedChange={checked => {\n onChange({ type: 'single-tag', value: checked ? option.value : null });\n }}\n />\n <span className=\"text-sm\">{option.label}</span>\n </Label>\n ))\n )}\n </div>\n);\n\nconst DateRangeFilterEditor: React.FC<{\n value: DateRangeFilterValue;\n onChange: (v: DateRangeFilterValue) => void;\n}> = ({ value, onChange }) => (\n <div className=\"flex flex-col gap-3 p-3\">\n <div className=\"flex flex-col gap-1\">\n <span className=\"text-text-positive-muted text-xs\">Từ ngày</span>\n <Input type=\"date\" size=\"md\" value={value.from ?? ''} onValueChange={v => onChange({ ...value, from: v || undefined })} />\n </div>\n <div className=\"flex flex-col gap-1\">\n <span className=\"text-text-positive-muted text-xs\">Đến ngày</span>\n <Input type=\"date\" size=\"md\" value={value.to ?? ''} onValueChange={v => onChange({ ...value, to: v || undefined })} />\n </div>\n </div>\n);\n\nconst NumberFilterEditor: React.FC<{\n value: NumberFilterValue;\n onChange: (v: NumberFilterValue) => void;\n}> = ({ value, onChange }) => (\n <div className=\"flex flex-col gap-3 p-3\">\n <Select value={value.operator} onValueChange={op => onChange({ ...value, operator: op as NumberFilterValue['operator'] })}>\n <SelectTrigger size=\"sm\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {NUMBER_OPERATORS.map(op => (\n <SelectItem key={op.value} value={op.value}>\n {op.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <Input\n type=\"number\"\n size=\"md\"\n placeholder=\"Giá trị\"\n value={value.value ?? ''}\n onValueChange={v => onChange({ ...value, value: v ? Number(v) : undefined })}\n />\n {value.operator === 'between' && (\n <Input\n type=\"number\"\n size=\"md\"\n placeholder=\"Đến giá trị\"\n value={value.valueTo ?? ''}\n onValueChange={v => onChange({ ...value, valueTo: v ? Number(v) : undefined })}\n />\n )}\n </div>\n);\n\nconst TextFilterEditor: React.FC<{\n value: TextFilterValue;\n onChange: (v: TextFilterValue) => void;\n}> = ({ value, onChange }) => (\n <div className=\"flex flex-col gap-3 p-3\">\n <Select value={value.operator} onValueChange={op => onChange({ ...value, operator: op as TextFilterValue['operator'] })}>\n <SelectTrigger size=\"sm\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {TEXT_OPERATORS.map(op => (\n <SelectItem key={op.value} value={op.value}>\n {op.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <Input type=\"text\" size=\"md\" placeholder=\"Nhập văn bản...\" value={value.value} onValueChange={v => onChange({ ...value, value: v })} />\n </div>\n);\n\nconst BOOLEAN_OPTIONS = [\n { label: 'Có', value: true as boolean | null },\n { label: 'Không', value: false as boolean | null },\n { label: 'Không xác định', value: null as boolean | null },\n];\n\nconst BooleanFilterEditor: React.FC<{\n value: BooleanFilterValue;\n onChange: (v: BooleanFilterValue) => void;\n}> = ({ value, onChange }) => (\n <div className=\"flex flex-col gap-1 p-3\">\n {BOOLEAN_OPTIONS.map(({ label, value: v }) => (\n <Button\n key={label}\n type=\"button\"\n tabIndex={-1}\n variant=\"outline\"\n className={cn(\n 'rounded px-3 py-1.5 text-left text-sm transition-colors',\n value.value === v ? 'bg-primary-muted font-medium' : 'hover:bg-muted-bg-subtle'\n )}\n onClick={() => onChange({ type: 'boolean', value: v })}\n >\n {label}\n </Button>\n ))}\n </div>\n);\n\nfunction FilterEditor({ value, definition, onChange }: { value: FilterValue; definition: FilterDefinition; onChange: (v: FilterValue) => void }) {\n switch (value.type) {\n case 'tag':\n return <TagFilterEditor value={value} definition={definition} onChange={onChange} />;\n case 'single-tag':\n return <SingleTagFilterEditor value={value} definition={definition} onChange={onChange} />;\n case 'date-range':\n return <DateRangeFilterEditor value={value} onChange={onChange} />;\n case 'number':\n return <NumberFilterEditor value={value} onChange={onChange} />;\n case 'text':\n return <TextFilterEditor value={value} onChange={onChange} />;\n case 'boolean':\n return <BooleanFilterEditor value={value} onChange={onChange} />;\n }\n}\n\n// ── filter item chip ───────────────────────────────────────────────────────────\n\nconst FilterItem: React.FC<{\n filter: ActiveFilter;\n definition: FilterDefinition;\n onRemove: () => void;\n onUpdate: (value: FilterValue) => void;\n}> = ({ filter, definition, onRemove, onUpdate }) => (\n <div className=\"flex items-center gap-1\">\n <Popover>\n <PopoverTrigger asChild>\n <Button\n type=\"button\"\n variant=\"outline\"\n color=\"muted\"\n className=\"flex-1 bg-white max-w-[calc(100%-32px)] justify-start\"\n innerClassName=\"flex truncate gap-1.5\"\n >\n <span className=\"shrink-0 text-text-positive font-medium\">{definition.label}</span>\n <span className=\"truncate text-xs text-text-positive-weak\">{formatFilterValue(filter.value, definition)}</span>\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-64 p-0\" align=\"start\" side=\"bottom\">\n <div className=\"border-b border-border px-3 py-2\">\n <div className=\"flex items-center gap-1.5\">\n <span className=\"text-text-positive-muted\">{TYPE_ICONS[definition.type]}</span>\n <p className=\"font-medium\">{definition.label}</p>\n </div>\n </div>\n <FilterEditor value={filter.value} definition={definition} onChange={onUpdate} />\n </PopoverContent>\n </Popover>\n <Button type=\"button\" size=\"icon\" variant=\"soft\" color=\"danger\" className=\"shrink\" onClick={onRemove}>\n <Trash2Icon size={13} />\n </Button>\n </div>\n);\n\n// ── column visibility row ──────────────────────────────────────────────────────\n\n// const ColumnVisibility: React.FC<{\n// checked: boolean;\n// title: string;\n// onCheckedChange?: (checked: boolean) => void;\n// }> = ({ checked, title, onCheckedChange }) => (\n// <Label>\n// <Checkbox checked={checked} onCheckedChange={onCheckedChange} />\n// <p className=\"text-sm\">{title}</p>\n// </Label>\n// );\n\n// ── main component ─────────────────────────────────────────────────────────────\n\n/**\n * Collapsible side-panel that lets users toggle column visibility and build\n * row filters without leaving the table view.\n *\n * The panel collapses to a narrow icon strip when no tab is active and expands\n * to at least 64 units when the \"Columns\" or \"Filters\" tab is selected.\n *\n * Wire filter capability by passing `filterDefinitions` and `onFilterChange` to\n * the parent `UITableProvider`.\n *\n * @example\n * ```tsx\n * <UITableProvider\n * filterDefinitions={[\n * { id: 'status', label: 'Status', type: 'tag', options: [{ label: 'Active', value: 'active' }] },\n * { id: 'created', label: 'Created At', type: 'date-range' },\n * { id: 'amount', label: 'Amount', type: 'number' },\n * ]}\n * onFilterChange={filters => console.log(filters)}\n * >\n * <ResizablePanelGroup direction=\"horizontal\">\n * <ResizablePanel><UITable /></ResizablePanel>\n * <ResizableHandle />\n * <UITableFilter />\n * </ResizablePanelGroup>\n * </UITableProvider>\n * ```\n */\nexport const UITableFilter = () => {\n // const { table } = useUITableContext();\n const { filterDefinitions, activeFilters, addFilter, removeFilter, updateFilter } = useUITableFilterContext();\n\n const [tab, setTab] = useState<'columns' | 'filters' | null>(null);\n\n const availableDefinitions = filterDefinitions.filter(def => !activeFilters.some(f => f.definitionId === def.id));\n\n return (\n <ResizablePanel defaultSize={25} className={cn('bg-card', tab === null ? 'max-w-8!' : 'min-w-64')}>\n <div className=\"relative z-20 flex size-full bg-muted-bg-subtle\">\n <div className=\"min-w-0 flex-1 overflow-hidden\">\n {/* Columns tab */}\n {/*<Activity mode={tab === 'columns' ? 'visible' : 'hidden'}>\n <div className=\"flex size-full flex-col gap-2 p-4\">\n <p className=\"px-2 font-medium\">Columns Visibility</p>\n <Separator />\n <div className=\"flex flex-col gap-4 pt-4\">\n {table.getAllColumns().map(column => {\n if (['select', 'actions'].includes(column.id)) return null;\n return (\n <ColumnVisibility\n key={column.id}\n checked={column.getIsVisible()}\n title={String(column.columnDef.header)}\n onCheckedChange={value => column.toggleVisibility(!!value)}\n />\n );\n })}\n </div>\n </div>\n </Activity>*/}\n\n {/* Filters tab */}\n <Activity mode={tab === 'filters' ? 'visible' : 'hidden'}>\n <div className=\"flex size-full flex-col gap-2 p-4\">\n <div className=\"flex items-center justify-between gap-2\">\n <p className=\"font-medium\">Bộ lọc</p>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"outline\" color=\"muted\" disabled={availableDefinitions.length === 0}>\n <ListFilterPlus size={13} />\n Thêm bộ lọc\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n {availableDefinitions.map(def => (\n <DropdownMenuItem key={def.id} className=\"flex items-center gap-2\" onClick={() => addFilter(def.id)}>\n {TYPE_ICONS[def.type]}\n {def.label}\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n <Separator />\n {activeFilters.length === 0 ? (\n <p className=\"py-6 text-center text-xs text-text-positive-muted\">Không có bộ lọc nào</p>\n ) : (\n <div className=\"flex flex-col gap-2 pt-1\">\n {activeFilters.map(filter => {\n const def = filterDefinitions.find(d => d.id === filter.definitionId);\n if (!def) return null;\n return (\n <FilterItem\n key={filter.id}\n filter={filter}\n definition={def}\n onRemove={() => removeFilter(filter.id)}\n onUpdate={value => updateFilter(filter.id, value)}\n />\n );\n })}\n </div>\n )}\n </div>\n </Activity>\n </div>\n\n {/* Vertical tab strip */}\n <div className=\"flex h-full flex-col border-l border-border bg-muted-bg-subtle text-sm\">\n {/*<button\n type=\"button\"\n className={cn('flex h-32 cursor-pointer flex-col items-center gap-y-2 p-2 py-4', tab === 'columns' && 'bg-card')}\n onClick={() => setTab(tab === 'columns' ? null : 'columns')}\n >\n <Columns4Icon size={18} />\n <span className=\"text-nowrap [writing-mode:vertical-lr]\">Columns</span>\n </button>\n <Separator />*/}\n <button\n type=\"button\"\n className={cn('relative flex h-32 cursor-pointer flex-col items-center gap-y-2 p-2 py-4', tab === 'filters' && 'bg-card')}\n onClick={() => setTab(tab === 'filters' ? null : 'filters')}\n >\n <ListFilterIcon size={18} />\n {activeFilters.length > 0 && (\n <span className=\"absolute top-2 right-1.5 flex h-4 w-4 items-center justify-center rounded-full bg-primary text-[10px] leading-none text-primary-foreground\">\n {activeFilters.length}\n </span>\n )}\n <span className=\"text-nowrap [writing-mode:vertical-lr]\">Bộ lọc</span>\n </button>\n <Separator />\n </div>\n </div>\n </ResizablePanel>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"filter-DqedvThM.cjs","names":["TagIcon","CalendarIcon","HashIcon","TypeIcon","ToggleLeftIcon","Label","Checkbox","Input","Select","SelectTrigger","SelectValue","SelectContent","SelectItem","Button","Popover","PopoverTrigger","PopoverContent","Trash2Icon","useUITableFilterContext","ResizablePanel","Activity","DropdownMenu","DropdownMenuTrigger","ListFilterPlus","DropdownMenuContent","DropdownMenuItem","Separator","ListFilterIcon"],"sources":["../packages/components/features/tables/components/table/filter.tsx"],"sourcesContent":["/**\n * @file filter.tsx\n * Collapsible side-panel with column-visibility toggles and a dynamic filter builder.\n *\n * - \"Columns\" tab: toggle individual column visibility.\n * - \"Filters\" tab: \"Add Filter\" dropdown → active filter chips → per-filter Popover editor.\n */\nimport { Activity, useState } from 'react';\n\nimport { CalendarIcon, HashIcon, ListFilterIcon, ListFilterPlus, TagIcon, ToggleLeftIcon, Trash2Icon, TypeIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Button } from '@/components/ui/button';\nimport { Checkbox } from '@/components/ui/checkbox';\nimport { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '@/components/ui/dropdown-menu';\nimport { Input } from '@/components/ui/input';\nimport { Label } from '@/components/ui/label';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover';\nimport { ResizablePanel } from '@/components/ui/resizable';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';\nimport { Separator } from '@/components/ui/separator';\n\nimport { useUITableFilterContext } from '../../hooks/use-context';\nimport type {\n ActiveFilter,\n BooleanFilterValue,\n DateRangeFilterValue,\n FilterDefinition,\n FilterType,\n FilterValue,\n NumberFilterValue,\n SingleTagFilterValue,\n TagFilterValue,\n TextFilterValue,\n} from '../../types';\n\n// ── icons per filter type ──────────────────────────────────────────────────────\n\nconst TYPE_ICONS: Record<FilterType, React.ReactNode> = {\n tag: <TagIcon size={14} />,\n 'single-tag': <TagIcon size={14} />,\n 'date-range': <CalendarIcon size={14} />,\n number: <HashIcon size={14} />,\n text: <TypeIcon size={14} />,\n boolean: <ToggleLeftIcon size={14} />,\n};\n\n// ── operator options ───────────────────────────────────────────────────────────\n\nconst NUMBER_OPERATORS: { value: NumberFilterValue['operator']; label: string }[] = [\n { value: 'eq', label: 'Bằng (=)' },\n { value: 'ne', label: 'Không bằng (≠)' },\n { value: 'gt', label: 'Lớn hơn (>)' },\n { value: 'gte', label: 'Ít nhất (≥)' },\n { value: 'lt', label: 'Nhỏ hơn (<)' },\n { value: 'lte', label: 'Nhiều nhất (≤)' },\n { value: 'between', label: 'Trong khoảng' },\n];\n\nconst TEXT_OPERATORS: { value: TextFilterValue['operator']; label: string }[] = [\n { value: 'contains', label: 'Chứa' },\n { value: 'equals', label: 'Bằng' },\n { value: 'starts-with', label: 'Bắt đầu bằng' },\n { value: 'ends-with', label: 'Kết thúc bằng' },\n];\n\n// ── summary label ──────────────────────────────────────────────────────────────\n\nfunction formatFilterValue(value: FilterValue, def: FilterDefinition): string {\n switch (value.type) {\n case 'single-tag': {\n if (!value.value) return 'Chưa đặt';\n return def.options?.find(o => o.value === value.value)?.label ?? value.value;\n }\n case 'tag': {\n if (!value.values.length) return 'Chưa đặt';\n return value.values.map(v => def.options?.find(o => o.value === v)?.label ?? v).join(', ');\n }\n case 'date-range': {\n if (!value.from && !value.to) return 'Ngày không xác định';\n if (value.from && value.to) return `${value.from} → ${value.to}`;\n if (value.from) return `từ ${value.from}`;\n return `đến ${value.to}`;\n }\n case 'number': {\n const op = { eq: '=', ne: '≠', gt: '>', gte: '≥', lt: '<', lte: '≤', between: 'trong khoảng' }[value.operator];\n if (value.value === undefined) return op;\n if (value.operator === 'between') return `${op} ${value.value} – ${value.valueTo ?? '?'}`;\n return `${op} ${value.value}`;\n }\n case 'text': {\n const op = {\n contains: 'chứa',\n equals: 'là',\n 'starts-with': 'bắt đầu bằng',\n 'ends-with': 'kết thúc bằng',\n }[value.operator];\n return value.value ? `${op} \"${value.value}\"` : op;\n }\n case 'boolean':\n if (value.value === null) return 'Không xác định';\n return value.value ? 'Có' : 'Không';\n }\n}\n\n// ── filter editors ─────────────────────────────────────────────────────────────\n\nconst TagFilterEditor: React.FC<{\n value: TagFilterValue;\n definition: FilterDefinition;\n onChange: (v: TagFilterValue) => void;\n}> = ({ value, definition, onChange }) => (\n <div className=\"flex flex-col gap-1 p-3\">\n {(definition.options ?? []).length === 0 ? (\n <p className=\"text-xs text-text-positive-muted\">Không có tùy chọn</p>\n ) : (\n definition.options!.map(option => (\n <Label\n key={option.value}\n className={cn(\n 'flex items-center gap-2 bg-secondary-bg-subtle hover:bg-secondary-muted px-4 py-2 rounded transition-colors',\n value.values.includes(option.value) && 'bg-primary-muted hover:bg-primary-subtle'\n )}\n >\n <Checkbox\n checked={value.values.includes(option.value)}\n onCheckedChange={checked => {\n const next = checked ? [...value.values, option.value] : value.values.filter(v => v !== option.value);\n onChange({ type: 'tag', values: next });\n }}\n />\n <span className=\"text-sm\">{option.label}</span>\n </Label>\n ))\n )}\n </div>\n);\n\nconst SingleTagFilterEditor: React.FC<{\n value: SingleTagFilterValue;\n definition: FilterDefinition;\n onChange: (v: SingleTagFilterValue) => void;\n}> = ({ value, definition, onChange }) => (\n <div className=\"flex flex-col gap-1 p-3\">\n {(definition.options ?? []).length === 0 ? (\n <p className=\"text-xs text-text-positive-muted\">Không có tùy chọn</p>\n ) : (\n definition.options!.map(option => (\n <Label\n key={option.value}\n className={cn(\n 'flex items-center gap-2 bg-secondary-bg-subtle hover:bg-secondary-muted px-4 py-2 rounded transition-colors',\n value.value === option.value && 'bg-primary-muted hover:bg-primary-subtle'\n )}\n >\n <Checkbox\n checked={value.value === option.value}\n onCheckedChange={checked => {\n onChange({ type: 'single-tag', value: checked ? option.value : null });\n }}\n />\n <span className=\"text-sm\">{option.label}</span>\n </Label>\n ))\n )}\n </div>\n);\n\nconst DateRangeFilterEditor: React.FC<{\n value: DateRangeFilterValue;\n onChange: (v: DateRangeFilterValue) => void;\n}> = ({ value, onChange }) => (\n <div className=\"flex flex-col gap-3 p-3\">\n <div className=\"flex flex-col gap-1\">\n <span className=\"text-text-positive-muted text-xs\">Từ ngày</span>\n <Input type=\"date\" size=\"md\" value={value.from ?? ''} onValueChange={v => onChange({ ...value, from: v || undefined })} />\n </div>\n <div className=\"flex flex-col gap-1\">\n <span className=\"text-text-positive-muted text-xs\">Đến ngày</span>\n <Input type=\"date\" size=\"md\" value={value.to ?? ''} onValueChange={v => onChange({ ...value, to: v || undefined })} />\n </div>\n </div>\n);\n\nconst NumberFilterEditor: React.FC<{\n value: NumberFilterValue;\n onChange: (v: NumberFilterValue) => void;\n}> = ({ value, onChange }) => (\n <div className=\"flex flex-col gap-3 p-3\">\n <Select value={value.operator} onValueChange={op => onChange({ ...value, operator: op as NumberFilterValue['operator'] })}>\n <SelectTrigger size=\"sm\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {NUMBER_OPERATORS.map(op => (\n <SelectItem key={op.value} value={op.value}>\n {op.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <Input\n type=\"number\"\n size=\"md\"\n placeholder=\"Giá trị\"\n value={value.value ?? ''}\n onValueChange={v => onChange({ ...value, value: v ? Number(v) : undefined })}\n />\n {value.operator === 'between' && (\n <Input\n type=\"number\"\n size=\"md\"\n placeholder=\"Đến giá trị\"\n value={value.valueTo ?? ''}\n onValueChange={v => onChange({ ...value, valueTo: v ? Number(v) : undefined })}\n />\n )}\n </div>\n);\n\nconst TextFilterEditor: React.FC<{\n value: TextFilterValue;\n onChange: (v: TextFilterValue) => void;\n}> = ({ value, onChange }) => (\n <div className=\"flex flex-col gap-3 p-3\">\n <Select value={value.operator} onValueChange={op => onChange({ ...value, operator: op as TextFilterValue['operator'] })}>\n <SelectTrigger size=\"sm\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {TEXT_OPERATORS.map(op => (\n <SelectItem key={op.value} value={op.value}>\n {op.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <Input type=\"text\" size=\"md\" placeholder=\"Nhập văn bản...\" value={value.value} onValueChange={v => onChange({ ...value, value: v })} />\n </div>\n);\n\nconst BOOLEAN_OPTIONS = [\n { label: 'Có', value: true as boolean | null },\n { label: 'Không', value: false as boolean | null },\n { label: 'Không xác định', value: null as boolean | null },\n];\n\nconst BooleanFilterEditor: React.FC<{\n value: BooleanFilterValue;\n onChange: (v: BooleanFilterValue) => void;\n}> = ({ value, onChange }) => (\n <div className=\"flex flex-col gap-1 p-3\">\n {BOOLEAN_OPTIONS.map(({ label, value: v }) => (\n <Button\n key={label}\n type=\"button\"\n tabIndex={-1}\n variant=\"outline\"\n className={cn(\n 'rounded px-3 py-1.5 text-left text-sm transition-colors',\n value.value === v ? 'bg-primary-muted font-medium' : 'hover:bg-muted-bg-subtle'\n )}\n onClick={() => onChange({ type: 'boolean', value: v })}\n >\n {label}\n </Button>\n ))}\n </div>\n);\n\nfunction FilterEditor({ value, definition, onChange }: { value: FilterValue; definition: FilterDefinition; onChange: (v: FilterValue) => void }) {\n switch (value.type) {\n case 'tag':\n return <TagFilterEditor value={value} definition={definition} onChange={onChange} />;\n case 'single-tag':\n return <SingleTagFilterEditor value={value} definition={definition} onChange={onChange} />;\n case 'date-range':\n return <DateRangeFilterEditor value={value} onChange={onChange} />;\n case 'number':\n return <NumberFilterEditor value={value} onChange={onChange} />;\n case 'text':\n return <TextFilterEditor value={value} onChange={onChange} />;\n case 'boolean':\n return <BooleanFilterEditor value={value} onChange={onChange} />;\n }\n}\n\n// ── filter item chip ───────────────────────────────────────────────────────────\n\nconst FilterItem: React.FC<{\n filter: ActiveFilter;\n definition: FilterDefinition;\n onRemove: () => void;\n onUpdate: (value: FilterValue) => void;\n}> = ({ filter, definition, onRemove, onUpdate }) => (\n <div className=\"flex items-center gap-1\">\n <Popover>\n <PopoverTrigger asChild>\n <Button\n type=\"button\"\n variant=\"outline\"\n color=\"muted\"\n className=\"flex-1 bg-white max-w-[calc(100%-32px)] justify-start\"\n innerClassName=\"flex truncate gap-1.5\"\n >\n <span className=\"shrink-0 text-text-positive font-medium\">{definition.label}</span>\n <span className=\"truncate text-xs text-text-positive-weak\">{formatFilterValue(filter.value, definition)}</span>\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-64 p-0\" align=\"start\" side=\"bottom\">\n <div className=\"border-b border-border px-3 py-2\">\n <div className=\"flex items-center gap-1.5\">\n <span className=\"text-text-positive-muted\">{TYPE_ICONS[definition.type]}</span>\n <p className=\"font-medium\">{definition.label}</p>\n </div>\n </div>\n <FilterEditor value={filter.value} definition={definition} onChange={onUpdate} />\n </PopoverContent>\n </Popover>\n <Button type=\"button\" size=\"icon\" variant=\"soft\" color=\"danger\" className=\"shrink\" onClick={onRemove}>\n <Trash2Icon size={13} />\n </Button>\n </div>\n);\n\n// ── column visibility row ──────────────────────────────────────────────────────\n\n// const ColumnVisibility: React.FC<{\n// checked: boolean;\n// title: string;\n// onCheckedChange?: (checked: boolean) => void;\n// }> = ({ checked, title, onCheckedChange }) => (\n// <Label>\n// <Checkbox checked={checked} onCheckedChange={onCheckedChange} />\n// <p className=\"text-sm\">{title}</p>\n// </Label>\n// );\n\n// ── main component ─────────────────────────────────────────────────────────────\n\n/**\n * Collapsible side-panel that lets users toggle column visibility and build\n * row filters without leaving the table view.\n *\n * The panel collapses to a narrow icon strip when no tab is active and expands\n * to at least 64 units when the \"Columns\" or \"Filters\" tab is selected.\n *\n * Wire filter capability by passing `filterDefinitions` and `onFilterChange` to\n * the parent `UITableProvider`.\n *\n * @example\n * ```tsx\n * <UITableProvider\n * filterDefinitions={[\n * { id: 'status', label: 'Status', type: 'tag', options: [{ label: 'Active', value: 'active' }] },\n * { id: 'created', label: 'Created At', type: 'date-range' },\n * { id: 'amount', label: 'Amount', type: 'number' },\n * ]}\n * onFilterChange={filters => console.log(filters)}\n * >\n * <ResizablePanelGroup direction=\"horizontal\">\n * <ResizablePanel><UITable /></ResizablePanel>\n * <ResizableHandle />\n * <UITableFilter />\n * </ResizablePanelGroup>\n * </UITableProvider>\n * ```\n */\nexport const UITableFilter = () => {\n // const { table } = useUITableContext();\n const { filterDefinitions, activeFilters, addFilter, removeFilter, updateFilter } = useUITableFilterContext();\n\n const [tab, setTab] = useState<'columns' | 'filters' | null>(null);\n\n const availableDefinitions = filterDefinitions.filter(def => !activeFilters.some(f => f.definitionId === def.id));\n\n return (\n <ResizablePanel defaultSize={25} className={cn('bg-card', tab === null ? 'max-w-8!' : 'min-w-64')}>\n <div className=\"relative z-20 flex size-full bg-muted-bg-subtle\">\n <div className=\"min-w-0 flex-1 overflow-hidden\">\n {/* Columns tab */}\n {/*<Activity mode={tab === 'columns' ? 'visible' : 'hidden'}>\n <div className=\"flex size-full flex-col gap-2 p-4\">\n <p className=\"px-2 font-medium\">Columns Visibility</p>\n <Separator />\n <div className=\"flex flex-col gap-4 pt-4\">\n {table.getAllColumns().map(column => {\n if (['select', 'actions'].includes(column.id)) return null;\n return (\n <ColumnVisibility\n key={column.id}\n checked={column.getIsVisible()}\n title={String(column.columnDef.header)}\n onCheckedChange={value => column.toggleVisibility(!!value)}\n />\n );\n })}\n </div>\n </div>\n </Activity>*/}\n\n {/* Filters tab */}\n <Activity mode={tab === 'filters' ? 'visible' : 'hidden'}>\n <div className=\"flex size-full flex-col gap-2 p-4\">\n <div className=\"flex items-center justify-between gap-2\">\n <p className=\"font-medium\">Bộ lọc</p>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"outline\" color=\"muted\" disabled={availableDefinitions.length === 0}>\n <ListFilterPlus size={13} />\n Thêm bộ lọc\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n {availableDefinitions.map(def => (\n <DropdownMenuItem key={def.id} className=\"flex items-center gap-2\" onClick={() => addFilter(def.id)}>\n {TYPE_ICONS[def.type]}\n {def.label}\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n <Separator />\n {activeFilters.length === 0 ? (\n <p className=\"py-6 text-center text-xs text-text-positive-muted\">Không có bộ lọc nào</p>\n ) : (\n <div className=\"flex flex-col gap-2 pt-1\">\n {activeFilters.map(filter => {\n const def = filterDefinitions.find(d => d.id === filter.definitionId);\n if (!def) return null;\n return (\n <FilterItem\n key={filter.id}\n filter={filter}\n definition={def}\n onRemove={() => removeFilter(filter.id)}\n onUpdate={value => updateFilter(filter.id, value)}\n />\n );\n })}\n </div>\n )}\n </div>\n </Activity>\n </div>\n\n {/* Vertical tab strip */}\n <div className=\"flex h-full flex-col border-l border-border bg-muted-bg-subtle text-sm\">\n {/*<button\n type=\"button\"\n className={cn('flex h-32 cursor-pointer flex-col items-center gap-y-2 p-2 py-4', tab === 'columns' && 'bg-card')}\n onClick={() => setTab(tab === 'columns' ? null : 'columns')}\n >\n <Columns4Icon size={18} />\n <span className=\"text-nowrap [writing-mode:vertical-lr]\">Columns</span>\n </button>\n <Separator />*/}\n <button\n type=\"button\"\n className={cn('relative flex h-32 cursor-pointer flex-col items-center gap-y-2 p-2 py-4', tab === 'filters' && 'bg-card')}\n onClick={() => setTab(tab === 'filters' ? null : 'filters')}\n >\n <ListFilterIcon size={18} />\n {activeFilters.length > 0 && (\n <span className=\"absolute top-2 right-1.5 flex h-4 w-4 items-center justify-center rounded-full bg-primary text-[10px] leading-none text-primary-foreground\">\n {activeFilters.length}\n </span>\n )}\n <span className=\"text-nowrap [writing-mode:vertical-lr]\">Bộ lọc</span>\n </button>\n <Separator />\n </div>\n </div>\n </ResizablePanel>\n );\n};\n"],"mappings":"wbAuCA,MAAM,EAAkD,CACtD,KAAK,EAAA,EAAA,IAAA,CAACA,EAAAA,QAAD,CAAS,KAAM,EAAK,CAAA,EACzB,cAAc,EAAA,EAAA,IAAA,CAACA,EAAAA,QAAD,CAAS,KAAM,EAAK,CAAA,EAClC,cAAc,EAAA,EAAA,IAAA,CAACC,EAAAA,aAAD,CAAc,KAAM,EAAK,CAAA,EACvC,QAAQ,EAAA,EAAA,IAAA,CAACC,EAAAA,SAAD,CAAU,KAAM,EAAK,CAAA,EAC7B,MAAM,EAAA,EAAA,IAAA,CAACC,EAAAA,SAAD,CAAU,KAAM,EAAK,CAAA,EAC3B,SAAS,EAAA,EAAA,IAAA,CAACC,EAAAA,eAAD,CAAgB,KAAM,EAAK,CAAA,CACtC,EAIM,EAA8E,CAClF,CAAE,MAAO,KAAM,MAAO,UAAW,EACjC,CAAE,MAAO,KAAM,MAAO,gBAAiB,EACvC,CAAE,MAAO,KAAM,MAAO,aAAc,EACpC,CAAE,MAAO,MAAO,MAAO,aAAc,EACrC,CAAE,MAAO,KAAM,MAAO,aAAc,EACpC,CAAE,MAAO,MAAO,MAAO,gBAAiB,EACxC,CAAE,MAAO,UAAW,MAAO,cAAe,CAC5C,EAEM,EAA0E,CAC9E,CAAE,MAAO,WAAY,MAAO,MAAO,EACnC,CAAE,MAAO,SAAU,MAAO,MAAO,EACjC,CAAE,MAAO,cAAe,MAAO,cAAe,EAC9C,CAAE,MAAO,YAAa,MAAO,eAAgB,CAC/C,EAIA,SAAS,EAAkB,EAAoB,EAA+B,CAC5E,OAAQ,EAAM,KAAd,CACE,IAAK,aAEH,OADK,EAAM,MACJ,EAAI,SAAS,KAAK,GAAK,EAAE,QAAU,EAAM,KAAK,CAAC,EAAE,OAAS,EAAM,MAD9C,WAG3B,IAAK,MAEH,OADK,EAAM,OAAO,OACX,EAAM,OAAO,IAAI,GAAK,EAAI,SAAS,KAAK,GAAK,EAAE,QAAU,CAAC,CAAC,EAAE,OAAS,CAAC,CAAC,CAAC,KAAK,IAAI,EADxD,WAGnC,IAAK,aAIH,MAHI,CAAC,EAAM,MAAQ,CAAC,EAAM,GAAW,sBACjC,EAAM,MAAQ,EAAM,GAAW,GAAG,EAAM,KAAK,KAAK,EAAM,KACxD,EAAM,KAAa,MAAM,EAAM,OAC5B,OAAO,EAAM,KAEtB,IAAK,SAAU,CACb,IAAM,EAAK,CAAE,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,QAAS,cAAe,EAAE,EAAM,UAGrG,OAFI,EAAM,QAAU,IAAA,GAAkB,EAClC,EAAM,WAAa,UAAkB,GAAG,EAAG,GAAG,EAAM,MAAM,KAAK,EAAM,SAAW,MAC7E,GAAG,EAAG,GAAG,EAAM,OACxB,CACA,IAAK,OAAQ,CACX,IAAM,EAAK,CACT,SAAU,OACV,OAAQ,KACR,cAAe,eACf,YAAa,eACf,EAAE,EAAM,UACR,OAAO,EAAM,MAAQ,GAAG,EAAG,IAAI,EAAM,MAAM,GAAK,CAClD,CACA,IAAK,UAEH,OADI,EAAM,QAAU,KAAa,iBAC1B,EAAM,MAAQ,KAAO,OAChC,CACF,CAIA,MAAM,GAIA,CAAE,QAAO,aAAY,eACzB,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,0BACX,UAAA,EAAW,SAAW,CAAC,EAAA,CAAG,SAAW,GACrC,EAAA,EAAA,IAAA,CAAC,IAAD,CAAG,UAAU,mCAAmC,SAAA,mBAAoB,CAAA,EAEpE,EAAW,QAAS,IAAI,IACtB,EAAA,EAAA,KAAA,CAACC,EAAAA,MAAD,CAEE,WAAA,EAAA,EAAA,GAAA,CACE,8GACA,EAAM,OAAO,SAAS,EAAO,KAAK,GAAK,0CACzC,EALF,SAAA,EAOE,EAAA,EAAA,IAAA,CAACC,EAAAA,SAAD,CACE,QAAS,EAAM,OAAO,SAAS,EAAO,KAAK,EAC3C,gBAAiB,GAAW,CAE1B,EAAS,CAAE,KAAM,MAAO,OADX,EAAU,CAAC,GAAG,EAAM,OAAQ,EAAO,KAAK,EAAI,EAAM,OAAO,OAAO,GAAK,IAAM,EAAO,KAAK,CAC/D,CAAC,CACxC,CACD,CAAA,GACD,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,UAAW,SAAA,EAAO,KAAY,CAAA,CACzC,CAdA,EAAA,EAAO,KAcP,CACR,CAEA,CAAA,EAGD,GAIA,CAAE,QAAO,aAAY,eACzB,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,0BACX,UAAA,EAAW,SAAW,CAAC,EAAA,CAAG,SAAW,GACrC,EAAA,EAAA,IAAA,CAAC,IAAD,CAAG,UAAU,mCAAmC,SAAA,mBAAoB,CAAA,EAEpE,EAAW,QAAS,IAAI,IACtB,EAAA,EAAA,KAAA,CAACD,EAAAA,MAAD,CAEE,WAAA,EAAA,EAAA,GAAA,CACE,8GACA,EAAM,QAAU,EAAO,OAAS,0CAClC,EALF,SAAA,EAOE,EAAA,EAAA,IAAA,CAACC,EAAAA,SAAD,CACE,QAAS,EAAM,QAAU,EAAO,MAChC,gBAAiB,GAAW,CAC1B,EAAS,CAAE,KAAM,aAAc,MAAO,EAAU,EAAO,MAAQ,IAAK,CAAC,CACvE,CACD,CAAA,GACD,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,UAAW,SAAA,EAAO,KAAY,CAAA,CACzC,CAbA,EAAA,EAAO,KAaP,CACR,CAEA,CAAA,EAGD,GAGA,CAAE,QAAO,eACb,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,0BAAf,SAAA,EACE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,sBAAf,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,mCAAmC,SAAA,SAAa,CAAA,GAChE,EAAA,EAAA,IAAA,CAACC,EAAAA,MAAD,CAAO,KAAK,OAAO,KAAK,KAAK,MAAO,EAAM,MAAQ,GAAI,cAAe,GAAK,EAAS,CAAE,GAAG,EAAO,KAAM,GAAK,IAAA,EAAU,CAAC,CAAI,CAAA,CACtH,CACL,CAAA,GAAA,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,sBAAf,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,mCAAmC,SAAA,UAAc,CAAA,GACjE,EAAA,EAAA,IAAA,CAACA,EAAAA,MAAD,CAAO,KAAK,OAAO,KAAK,KAAK,MAAO,EAAM,IAAM,GAAI,cAAe,GAAK,EAAS,CAAE,GAAG,EAAO,GAAI,GAAK,IAAA,EAAU,CAAC,CAAI,CAAA,CAClH,CACF,CAAA,CAAA,IAGD,GAGA,CAAE,QAAO,eACb,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,0BAAf,SAAA,EACE,EAAA,EAAA,KAAA,CAACC,EAAAA,OAAD,CAAQ,MAAO,EAAM,SAAU,cAAe,GAAM,EAAS,CAAE,GAAG,EAAO,SAAU,CAAoC,CAAC,EAAxH,SAAA,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,cAAD,CAAe,KAAK,KAClB,UAAA,EAAA,EAAA,IAAA,CAACC,EAAAA,YAAD,CAAc,CAAA,CACD,CAAA,GACf,EAAA,EAAA,IAAA,CAACC,EAAAA,cAAD,CAAA,SACG,EAAiB,IAAI,IACpB,EAAA,EAAA,IAAA,CAACC,EAAAA,WAAD,CAA2B,MAAO,EAAG,MAClC,SAAA,EAAG,KACM,EAFK,EAAG,KAER,CACb,CACY,CAAA,CACT,KACR,EAAA,EAAA,IAAA,CAACL,EAAAA,MAAD,CACE,KAAK,SACL,KAAK,KACL,YAAY,UACZ,MAAO,EAAM,OAAS,GACtB,cAAe,GAAK,EAAS,CAAE,GAAG,EAAO,MAAO,EAAI,OAAO,CAAC,EAAI,IAAA,EAAU,CAAC,CAC5E,CAAA,EACA,EAAM,WAAa,YAClB,EAAA,EAAA,IAAA,CAACA,EAAAA,MAAD,CACE,KAAK,SACL,KAAK,KACL,YAAY,cACZ,MAAO,EAAM,SAAW,GACxB,cAAe,GAAK,EAAS,CAAE,GAAG,EAAO,QAAS,EAAI,OAAO,CAAC,EAAI,IAAA,EAAU,CAAC,CAC9E,CAAA,CAEA,IAGD,GAGA,CAAE,QAAO,eACb,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,0BAAf,SAAA,EACE,EAAA,EAAA,KAAA,CAACC,EAAAA,OAAD,CAAQ,MAAO,EAAM,SAAU,cAAe,GAAM,EAAS,CAAE,GAAG,EAAO,SAAU,CAAkC,CAAC,EAAtH,SAAA,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,cAAD,CAAe,KAAK,KAClB,UAAA,EAAA,EAAA,IAAA,CAACC,EAAAA,YAAD,CAAc,CAAA,CACD,CAAA,GACf,EAAA,EAAA,IAAA,CAACC,EAAAA,cAAD,CAAA,SACG,EAAe,IAAI,IAClB,EAAA,EAAA,IAAA,CAACC,EAAAA,WAAD,CAA2B,MAAO,EAAG,MAClC,SAAA,EAAG,KACM,EAFK,EAAG,KAER,CACb,CACY,CAAA,CACT,CACR,CAAA,GAAA,EAAA,EAAA,IAAA,CAACL,EAAAA,MAAD,CAAO,KAAK,OAAO,KAAK,KAAK,YAAY,kBAAkB,MAAO,EAAM,MAAO,cAAe,GAAK,EAAS,CAAE,GAAG,EAAO,MAAO,CAAE,CAAC,CAAI,CAAA,CACnI,IAGD,EAAkB,CACtB,CAAE,MAAO,KAAM,MAAO,EAAuB,EAC7C,CAAE,MAAO,QAAS,MAAO,EAAwB,EACjD,CAAE,MAAO,iBAAkB,MAAO,IAAuB,CAC3D,EAEM,GAGA,CAAE,QAAO,eACb,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,0BACZ,SAAA,EAAgB,KAAK,CAAE,QAAO,MAAO,MACpC,EAAA,EAAA,IAAA,CAACM,EAAAA,OAAD,CAEE,KAAK,SACL,SAAU,GACV,QAAQ,UACR,WAAA,EAAA,EAAA,GAAA,CACE,0DACA,EAAM,QAAU,EAAI,+BAAiC,0BACvD,EACA,YAAe,EAAS,CAAE,KAAM,UAAW,MAAO,CAAE,CAAC,EAEpD,SAAA,CACK,EAXD,CAWC,CACT,CACE,CAAA,EAGP,SAAS,EAAa,CAAE,QAAO,aAAY,YAAsG,CAC/I,OAAQ,EAAM,KAAd,CACE,IAAK,MACH,OAAO,EAAA,EAAA,IAAA,CAAC,EAAD,CAAwB,QAAmB,aAAsB,UAAW,CAAA,EACrF,IAAK,aACH,OAAO,EAAA,EAAA,IAAA,CAAC,EAAD,CAA8B,QAAmB,aAAsB,UAAW,CAAA,EAC3F,IAAK,aACH,OAAO,EAAA,EAAA,IAAA,CAAC,EAAD,CAA8B,QAAiB,UAAW,CAAA,EACnE,IAAK,SACH,OAAO,EAAA,EAAA,IAAA,CAAC,EAAD,CAA2B,QAAiB,UAAW,CAAA,EAChE,IAAK,OACH,OAAO,EAAA,EAAA,IAAA,CAAC,EAAD,CAAyB,QAAiB,UAAW,CAAA,EAC9D,IAAK,UACH,OAAO,EAAA,EAAA,IAAA,CAAC,EAAD,CAA4B,QAAiB,UAAW,CAAA,CACnE,CACF,CAIA,MAAM,GAKA,CAAE,SAAQ,aAAY,WAAU,eACpC,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,0BAAf,SAAA,EACE,EAAA,EAAA,KAAA,CAACC,EAAAA,QAAD,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,eAAD,CAAgB,QAAA,GACd,UAAA,EAAA,EAAA,KAAA,CAACF,EAAAA,OAAD,CACE,KAAK,SACL,QAAQ,UACR,MAAM,QACN,UAAU,wDACV,eAAe,wBALjB,SAAA,EAOE,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,0CAA2C,SAAA,EAAW,KAAY,CAAA,GAClF,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,2CAA4C,SAAA,EAAkB,EAAO,MAAO,CAAU,CAAQ,CAAA,CACxG,GACM,CAAA,GAChB,EAAA,EAAA,KAAA,CAACG,EAAAA,eAAD,CAAgB,UAAU,WAAW,MAAM,QAAQ,KAAK,SAAxD,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,mCACb,UAAA,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,4BAAf,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,2BAA4B,SAAA,EAAW,EAAW,KAAY,CAAA,GAC9E,EAAA,EAAA,IAAA,CAAC,IAAD,CAAG,UAAU,cAAe,SAAA,EAAW,KAAS,CAAA,CAC7C,GACF,CAAA,GACL,EAAA,EAAA,IAAA,CAAC,EAAD,CAAc,MAAO,EAAO,MAAmB,aAAY,SAAU,CAAW,CAAA,CAClE,CACT,CAAA,CAAA,CAAA,CAAA,GACT,EAAA,EAAA,IAAA,CAACH,EAAAA,OAAD,CAAQ,KAAK,SAAS,KAAK,OAAO,QAAQ,OAAO,MAAM,SAAS,UAAU,SAAS,QAAS,EAC1F,UAAA,EAAA,EAAA,IAAA,CAACI,EAAAA,WAAD,CAAY,KAAM,EAAK,CAAA,CACjB,CAAA,CACL,IA8CM,MAAsB,CAEjC,GAAM,CAAE,oBAAmB,gBAAe,YAAW,eAAc,gBAAiBC,EAAAA,EAAwB,EAEtG,CAAC,EAAK,IAAA,EAAA,EAAA,SAAA,CAAiD,IAAI,EAE3D,EAAuB,EAAkB,OAAO,GAAO,CAAC,EAAc,KAAK,GAAK,EAAE,eAAiB,EAAI,EAAE,CAAC,EAEhH,OACE,EAAA,EAAA,IAAA,CAACC,EAAAA,eAAD,CAAgB,YAAa,GAAI,WAAA,EAAA,EAAA,GAAA,CAAc,UAAW,IAAQ,KAAO,WAAa,UAAU,EAC9F,UAAA,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,kDAAf,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,iCAuBb,UAAA,EAAA,EAAA,IAAA,CAACC,EAAAA,SAAD,CAAU,KAAM,IAAQ,UAAY,UAAY,SAC9C,UAAA,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,oCAAf,SAAA,EACE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,0CAAf,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,IAAD,CAAG,UAAU,cAAc,SAAA,QAAS,CAAA,GACpC,EAAA,EAAA,KAAA,CAACC,EAAAA,aAAD,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,oBAAD,CAAqB,QAAA,GACnB,UAAA,EAAA,EAAA,KAAA,CAACT,EAAAA,OAAD,CAAQ,QAAQ,UAAU,MAAM,QAAQ,SAAU,EAAqB,SAAW,EAAlF,SAAA,EACE,EAAA,EAAA,IAAA,CAACU,EAAAA,eAAD,CAAgB,KAAM,EAAK,CAAA,EAAC,aAEtB,GACW,CAAA,GACrB,EAAA,EAAA,IAAA,CAACC,EAAAA,oBAAD,CAAqB,MAAM,MACxB,SAAA,EAAqB,IAAI,IACxB,EAAA,EAAA,KAAA,CAACC,EAAAA,iBAAD,CAA+B,UAAU,0BAA0B,YAAe,EAAU,EAAI,EAAE,EAAlG,SAAA,CACG,EAAW,EAAI,MACf,EAAI,KACW,CAHK,EAAA,EAAI,EAGT,CACnB,CACkB,CAAA,CACT,CAAA,CAAA,CACX,KACL,EAAA,EAAA,IAAA,CAACC,EAAAA,UAAD,CAAY,CAAA,EACX,EAAc,SAAW,GACxB,EAAA,EAAA,IAAA,CAAC,IAAD,CAAG,UAAU,oDAAoD,SAAA,qBAAsB,CAAA,GAEvF,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,2BACZ,SAAA,EAAc,IAAI,GAAU,CAC3B,IAAM,EAAM,EAAkB,KAAK,GAAK,EAAE,KAAO,EAAO,YAAY,EAEpE,OADK,GAEH,EAAA,EAAA,IAAA,CAAC,EAAD,CAEU,SACR,WAAY,EACZ,aAAgB,EAAa,EAAO,EAAE,EACtC,SAAU,GAAS,EAAa,EAAO,GAAI,CAAK,CACjD,EALM,EAAO,EAKb,EARc,IAUnB,CAAC,CACE,CAAA,CAEJ,GACG,CAAA,CACP,CAAA,GAGL,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,yEAAf,SAAA,EAUE,EAAA,EAAA,KAAA,CAAC,SAAD,CACE,KAAK,SACL,WAAA,EAAA,EAAA,GAAA,CAAc,2EAA4E,IAAQ,WAAa,SAAS,EACxH,YAAe,EAAO,IAAQ,UAAY,KAAO,SAAS,EAH5D,SAAA,EAKE,EAAA,EAAA,IAAA,CAACC,EAAAA,eAAD,CAAgB,KAAM,EAAK,CAAA,EAC1B,EAAc,OAAS,IACtB,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,6IACb,SAAA,EAAc,MACX,CAAA,GAER,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,yCAAyC,SAAA,QAAY,CAAA,CAC/D,CACR,CAAA,GAAA,EAAA,EAAA,IAAA,CAACD,EAAAA,UAAD,CAAY,CAAA,CACT,CACF,CAAA,CAAA,GACS,CAAA,CAEpB"}
@@ -1,9 +1,8 @@
1
1
  import { VariantProps } from "class-variance-authority";
2
-
3
2
  //#region packages/components/layouts/flex.d.ts
4
3
  declare const flexVariants: (props?: ({
5
4
  vertical?: boolean | null | undefined;
6
- width?: "max" | "min" | "full" | "auto" | "fit" | "screen" | "null" | null | undefined;
5
+ width?: "max" | "min" | "auto" | "full" | "fit" | "screen" | "null" | null | undefined;
7
6
  wrap?: boolean | null | undefined;
8
7
  margin?: "sm" | "md" | "lg" | "xl" | "none" | null | undefined;
9
8
  padding?: "sm" | "md" | "lg" | "xl" | "none" | null | undefined;
@@ -12,7 +11,8 @@ declare const flexVariants: (props?: ({
12
11
  align?: "center" | "start" | "end" | "stretch" | "baseline" | null | undefined;
13
12
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
14
13
  type Props = {
15
- /** Additional Tailwind classes merged on top of the variant-generated classes. */className?: string;
14
+ /** Additional Tailwind classes merged on top of the variant-generated classes. */
15
+ className?: string;
16
16
  /**
17
17
  * Stacks children vertically (`flex-col`) when `true`, horizontally (`flex-row`) when `false`.
18
18
  * @default false
@@ -97,18 +97,7 @@ type Props = {
97
97
  * </Flex>
98
98
  * ```
99
99
  */
100
- declare const Flex: import("react").MemoExoticComponent<({
101
- vertical,
102
- wrap,
103
- width,
104
- margin,
105
- padding,
106
- gap,
107
- justify,
108
- align,
109
- className,
110
- children
111
- }: React.PropsWithChildren<Props>) => import("react").JSX.Element>;
100
+ declare const Flex: import("react").MemoExoticComponent<({ vertical, wrap, width, margin, padding, gap, justify, align, className, children }: React.PropsWithChildren<Props>) => import("react").JSX.Element>;
112
101
  //#endregion
113
102
  export { Flex as t };
114
- //# sourceMappingURL=flex-bw7U4hXn.d.cts.map
103
+ //# sourceMappingURL=flex-CrxTaAXE.d.cts.map
@@ -1,9 +1,8 @@
1
1
  import { VariantProps } from "class-variance-authority";
2
-
3
2
  //#region packages/components/layouts/flex.d.ts
4
3
  declare const flexVariants: (props?: ({
5
4
  vertical?: boolean | null | undefined;
6
- width?: "max" | "min" | "full" | "auto" | "fit" | "screen" | "null" | null | undefined;
5
+ width?: "max" | "min" | "auto" | "full" | "fit" | "screen" | "null" | null | undefined;
7
6
  wrap?: boolean | null | undefined;
8
7
  margin?: "sm" | "md" | "lg" | "xl" | "none" | null | undefined;
9
8
  padding?: "sm" | "md" | "lg" | "xl" | "none" | null | undefined;
@@ -12,7 +11,8 @@ declare const flexVariants: (props?: ({
12
11
  align?: "center" | "start" | "end" | "stretch" | "baseline" | null | undefined;
13
12
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
14
13
  type Props = {
15
- /** Additional Tailwind classes merged on top of the variant-generated classes. */className?: string;
14
+ /** Additional Tailwind classes merged on top of the variant-generated classes. */
15
+ className?: string;
16
16
  /**
17
17
  * Stacks children vertically (`flex-col`) when `true`, horizontally (`flex-row`) when `false`.
18
18
  * @default false
@@ -97,18 +97,7 @@ type Props = {
97
97
  * </Flex>
98
98
  * ```
99
99
  */
100
- declare const Flex: import("react").MemoExoticComponent<({
101
- vertical,
102
- wrap,
103
- width,
104
- margin,
105
- padding,
106
- gap,
107
- justify,
108
- align,
109
- className,
110
- children
111
- }: React.PropsWithChildren<Props>) => import("react").JSX.Element>;
100
+ declare const Flex: import("react").MemoExoticComponent<({ vertical, wrap, width, margin, padding, gap, justify, align, className, children }: React.PropsWithChildren<Props>) => import("react").JSX.Element>;
112
101
  //#endregion
113
102
  export { Flex as t };
114
- //# sourceMappingURL=flex-bw7U4hXn.d.mts.map
103
+ //# sourceMappingURL=flex-CrxTaAXE.d.mts.map
@@ -1,6 +1,5 @@
1
1
  import { Label, Slot } from "radix-ui";
2
2
  import { ControllerProps, FieldPath, FieldValues } from "react-hook-form";
3
-
4
3
  //#region packages/components/ui/form.d.ts
5
4
  /**
6
5
  * Re-export of react-hook-form's `FormProvider`; wrap your form with this to give all nested form components access to the form context.
@@ -29,32 +28,11 @@ import { ControllerProps, FieldPath, FieldValues } from "react-hook-form";
29
28
  * </Form>
30
29
  * ```
31
30
  */
32
- declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues>({
33
- children,
34
- watch,
35
- getValues,
36
- getFieldState,
37
- setError,
38
- clearErrors,
39
- setValue,
40
- setValues,
41
- trigger,
42
- formState,
43
- resetField,
44
- reset,
45
- handleSubmit,
46
- unregister,
47
- control,
48
- register,
49
- setFocus,
50
- subscribe
51
- }: import("react-hook-form").FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element;
31
+ declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues>({ children, watch, getValues, getFieldState, setError, clearErrors, setValue, setValues, trigger, formState, resetField, reset, resetDefaultValues, handleSubmit, unregister, control, register, setFocus, subscribe }: import("react-hook-form").FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element;
52
32
  /**
53
33
  * Connects a single react-hook-form field to the form context; renders a `Controller` and passes `name` down to nested FormItem, FormLabel, FormControl, and FormMessage.
54
34
  */
55
- declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({
56
- ...props
57
- }: ControllerProps<TFieldValues, TName>) => import("react").JSX.Element;
35
+ declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ ...props }: ControllerProps<TFieldValues, TName>) => import("react").JSX.Element;
58
36
  /**
59
37
  * Hook that returns the field state and IDs for the enclosing FormField.
60
38
  * Must be called inside a component rendered within a `<FormField>`.
@@ -78,32 +56,17 @@ declare const useFormField: () => {
78
56
  *
79
57
  * @param orientation - Layout direction: `'vertical'`, `'horizontal'`, or `'responsive'` (default).
80
58
  */
81
- declare const FormItem: import("react").MemoExoticComponent<({
82
- className,
83
- orientation,
84
- ...props
85
- }: React.ComponentProps<"div"> & {
59
+ declare const FormItem: import("react").MemoExoticComponent<({ className, orientation, ...props }: React.ComponentProps<"div"> & {
86
60
  orientation?: "vertical" | "horizontal" | "responsive";
87
61
  }) => import("react").JSX.Element>;
88
62
  /** Styled label automatically associated with the FormItem's control via `htmlFor`. */
89
- declare const FormLabel: import("react").MemoExoticComponent<({
90
- ...props
91
- }: React.ComponentProps<typeof Label.Root>) => import("react").JSX.Element>;
63
+ declare const FormLabel: import("react").MemoExoticComponent<({ ...props }: React.ComponentProps<typeof Label.Root>) => import("react").JSX.Element>;
92
64
  /** Radix Slot wrapper that wires the correct `id`, `aria-describedby`, and `aria-invalid` attributes onto the underlying control element. */
93
- declare const FormControl: import("react").MemoExoticComponent<({
94
- ...props
95
- }: React.ComponentProps<typeof Slot.Slot>) => import("react").JSX.Element>;
65
+ declare const FormControl: import("react").MemoExoticComponent<({ ...props }: React.ComponentProps<typeof Slot.Slot>) => import("react").JSX.Element>;
96
66
  /** Helper text displayed below the control that provides additional context about the field. */
97
- declare function FormDescription({
98
- className,
99
- ...props
100
- }: React.ComponentProps<'p'>): import("react").JSX.Element;
67
+ declare function FormDescription({ className, ...props }: React.ComponentProps<'p'>): import("react").JSX.Element;
101
68
  /** Displays the validation error message for the field, or falls back to `children` when there is no error. */
102
- declare function FormMessage({
103
- className,
104
- children,
105
- ...props
106
- }: React.ComponentProps<'p'>): import("react").JSX.Element;
69
+ declare function FormMessage({ className, children, ...props }: React.ComponentProps<'p'>): import("react").JSX.Element;
107
70
  //#endregion
108
71
  export { FormItem as a, useFormField as c, FormField as i, FormControl as n, FormLabel as o, FormDescription as r, FormMessage as s, Form as t };
109
- //# sourceMappingURL=form-CMP15S4r.d.cts.map
72
+ //# sourceMappingURL=form-D0M_qGX_.d.cts.map
@@ -1,6 +1,5 @@
1
1
  import { Label, Slot } from "radix-ui";
2
2
  import { ControllerProps, FieldPath, FieldValues } from "react-hook-form";
3
-
4
3
  //#region packages/components/ui/form.d.ts
5
4
  /**
6
5
  * Re-export of react-hook-form's `FormProvider`; wrap your form with this to give all nested form components access to the form context.
@@ -29,32 +28,11 @@ import { ControllerProps, FieldPath, FieldValues } from "react-hook-form";
29
28
  * </Form>
30
29
  * ```
31
30
  */
32
- declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues>({
33
- children,
34
- watch,
35
- getValues,
36
- getFieldState,
37
- setError,
38
- clearErrors,
39
- setValue,
40
- setValues,
41
- trigger,
42
- formState,
43
- resetField,
44
- reset,
45
- handleSubmit,
46
- unregister,
47
- control,
48
- register,
49
- setFocus,
50
- subscribe
51
- }: import("react-hook-form").FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element;
31
+ declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues>({ children, watch, getValues, getFieldState, setError, clearErrors, setValue, setValues, trigger, formState, resetField, reset, resetDefaultValues, handleSubmit, unregister, control, register, setFocus, subscribe }: import("react-hook-form").FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element;
52
32
  /**
53
33
  * Connects a single react-hook-form field to the form context; renders a `Controller` and passes `name` down to nested FormItem, FormLabel, FormControl, and FormMessage.
54
34
  */
55
- declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({
56
- ...props
57
- }: ControllerProps<TFieldValues, TName>) => import("react").JSX.Element;
35
+ declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ ...props }: ControllerProps<TFieldValues, TName>) => import("react").JSX.Element;
58
36
  /**
59
37
  * Hook that returns the field state and IDs for the enclosing FormField.
60
38
  * Must be called inside a component rendered within a `<FormField>`.
@@ -78,32 +56,17 @@ declare const useFormField: () => {
78
56
  *
79
57
  * @param orientation - Layout direction: `'vertical'`, `'horizontal'`, or `'responsive'` (default).
80
58
  */
81
- declare const FormItem: import("react").MemoExoticComponent<({
82
- className,
83
- orientation,
84
- ...props
85
- }: React.ComponentProps<"div"> & {
59
+ declare const FormItem: import("react").MemoExoticComponent<({ className, orientation, ...props }: React.ComponentProps<"div"> & {
86
60
  orientation?: "vertical" | "horizontal" | "responsive";
87
61
  }) => import("react").JSX.Element>;
88
62
  /** Styled label automatically associated with the FormItem's control via `htmlFor`. */
89
- declare const FormLabel: import("react").MemoExoticComponent<({
90
- ...props
91
- }: React.ComponentProps<typeof Label.Root>) => import("react").JSX.Element>;
63
+ declare const FormLabel: import("react").MemoExoticComponent<({ ...props }: React.ComponentProps<typeof Label.Root>) => import("react").JSX.Element>;
92
64
  /** Radix Slot wrapper that wires the correct `id`, `aria-describedby`, and `aria-invalid` attributes onto the underlying control element. */
93
- declare const FormControl: import("react").MemoExoticComponent<({
94
- ...props
95
- }: React.ComponentProps<typeof Slot.Slot>) => import("react").JSX.Element>;
65
+ declare const FormControl: import("react").MemoExoticComponent<({ ...props }: React.ComponentProps<typeof Slot.Slot>) => import("react").JSX.Element>;
96
66
  /** Helper text displayed below the control that provides additional context about the field. */
97
- declare function FormDescription({
98
- className,
99
- ...props
100
- }: React.ComponentProps<'p'>): import("react").JSX.Element;
67
+ declare function FormDescription({ className, ...props }: React.ComponentProps<'p'>): import("react").JSX.Element;
101
68
  /** Displays the validation error message for the field, or falls back to `children` when there is no error. */
102
- declare function FormMessage({
103
- className,
104
- children,
105
- ...props
106
- }: React.ComponentProps<'p'>): import("react").JSX.Element;
69
+ declare function FormMessage({ className, children, ...props }: React.ComponentProps<'p'>): import("react").JSX.Element;
107
70
  //#endregion
108
71
  export { FormItem as a, useFormField as c, FormField as i, FormControl as n, FormLabel as o, FormDescription as r, FormMessage as s, Form as t };
109
- //# sourceMappingURL=form-CMP15S4r.d.mts.map
72
+ //# sourceMappingURL=form-D0M_qGX_.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gain-loss-bar-chart-Dz1oAj8H.mjs","names":[],"sources":["../packages/components/features/charts/components/gain-loss-bar-chart.tsx"],"sourcesContent":["'use client';\n\nimport { useMemo } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { type ChartConfig, ChartContainer, ChartTooltip, ChartTooltipContent } from '@/components/ui/chart';\n\nimport { Bar, BarChart, CartesianGrid, Rectangle, ReferenceLine, XAxis, YAxis } from 'recharts';\nimport type { BaseChartProps, NamedValue } from '../types';\nimport { formatSignedPercent, getDirectionColor } from '../utils';\n\nexport type GainLossBarChartProps = BaseChartProps & {\n /** `name` is the period label (e.g. a month or quarter); `value` is the signed return. */\n data: NamedValue[];\n /** Series label. Defaults to `'Return'`. */\n label?: string;\n upColor?: string;\n downColor?: string;\n /** Formats tooltip and Y-axis values. Defaults to a signed percentage. */\n valueFormatter?: (value: number) => string;\n showGrid?: boolean;\n};\n\n/**\n * Diverging bars for period returns — bars grow up (gain) or down (loss) from a zero baseline,\n * colored accordingly. Clearer than a plain bar chart for signed data.\n *\n * @example\n * ```tsx\n * import { GainLossBarChart } from '@customafk/lunas-ui/features/charts';\n *\n * <GainLossBarChart\n * data={[\n * { name: 'Jan', value: 0.032 },\n * { name: 'Feb', value: -0.014 },\n * ]}\n * />\n * ```\n */\nexport const GainLossBarChart = ({\n data,\n label = 'Return',\n upColor = 'var(--success)',\n downColor = 'var(--danger)',\n valueFormatter = value => formatSignedPercent(value),\n showGrid = true,\n className,\n animate = true,\n height,\n}: GainLossBarChartProps) => {\n const config = useMemo<ChartConfig>(() => ({ value: { label, color: upColor } }), [label, upColor]);\n\n return (\n <ChartContainer\n data-slot=\"gain-loss-bar-chart\"\n config={config}\n className={cn('w-full', className)}\n style={height !== undefined ? { height, aspectRatio: 'auto' } : undefined}\n >\n <BarChart data={data} margin={{ top: 8, right: 12, bottom: 0, left: 12 }}>\n {showGrid && <CartesianGrid vertical={false} />}\n <XAxis dataKey=\"name\" tickLine={false} axisLine={false} tickMargin={8} />\n <YAxis tickLine={false} axisLine={false} tickMargin={8} width={56} tickFormatter={valueFormatter} />\n <ReferenceLine y={0} stroke=\"var(--border)\" />\n <ChartTooltip cursor={false} content={<ChartTooltipContent hideIndicator formatter={value => valueFormatter(Number(value))} />} />\n <Bar\n dataKey=\"value\"\n isAnimationActive={animate}\n shape={props => <Rectangle {...props} fill={getDirectionColor(Number(props.payload?.value ?? 0), 0, { up: upColor, down: downColor })} />}\n />\n </BarChart>\n </ChartContainer>\n );\n};\n"],"mappings":"kbAwCA,MAAa,GAAoB,CAC/B,OACA,QAAQ,SACR,UAAU,iBACV,YAAY,gBACZ,iBAAiB,GAAS,EAAoB,CAAK,EACnD,WAAW,GACX,YACA,UAAU,GACV,YAKE,EAAC,EAAD,CACE,YAAU,sBACV,OALW,OAA4B,CAAE,MAAO,CAAE,QAAO,MAAO,CAAQ,CAAE,GAAI,CAAC,EAAO,CAAO,CAKhF,EACb,UAAW,EAAG,SAAU,CAAS,EACjC,MAAO,IAAW,IAAA,GAA8C,IAAA,GAAlC,CAAE,SAAQ,YAAa,MAAO,WAE5D,EAAC,EAAD,CAAgB,OAAM,OAAQ,CAAE,IAAK,EAAG,MAAO,GAAI,OAAQ,EAAG,KAAM,EAAG,WAAvE,CACG,GAAY,EAAC,EAAD,CAAe,SAAU,EAAQ,CAAA,EAC9C,EAAC,EAAD,CAAO,QAAQ,OAAO,SAAU,GAAO,SAAU,GAAO,WAAY,CAAI,CAAA,EACxE,EAAC,EAAD,CAAO,SAAU,GAAO,SAAU,GAAO,WAAY,EAAG,MAAO,GAAI,cAAe,CAAiB,CAAA,EACnG,EAAC,EAAD,CAAe,EAAG,EAAG,OAAO,eAAiB,CAAA,EAC7C,EAAC,EAAD,CAAc,OAAQ,GAAO,QAAS,EAAC,EAAD,CAAqB,cAAA,GAAc,UAAW,GAAS,EAAe,OAAO,CAAK,CAAC,CAAI,CAAA,CAAI,CAAA,EACjI,EAAC,EAAD,CACE,QAAQ,QACR,kBAAmB,EACnB,MAAO,GAAS,EAAC,EAAD,CAAW,GAAI,EAAO,KAAM,EAAkB,OAAO,EAAM,SAAS,OAAS,CAAC,EAAG,EAAG,CAAE,GAAI,EAAS,KAAM,CAAU,CAAC,CAAI,CAAA,CACzI,CAAA,CACO,GACI,CAAA"}
1
+ {"version":3,"file":"gain-loss-bar-chart-Dz1oAj8H.mjs","names":[],"sources":["../packages/components/features/charts/components/gain-loss-bar-chart.tsx"],"sourcesContent":["'use client';\n\nimport { useMemo } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { type ChartConfig, ChartContainer, ChartTooltip, ChartTooltipContent } from '@/components/ui/chart';\n\nimport { Bar, BarChart, CartesianGrid, Rectangle, ReferenceLine, XAxis, YAxis } from 'recharts';\nimport type { BaseChartProps, NamedValue } from '../types';\nimport { formatSignedPercent, getDirectionColor } from '../utils';\n\nexport type GainLossBarChartProps = BaseChartProps & {\n /** `name` is the period label (e.g. a month or quarter); `value` is the signed return. */\n data: NamedValue[];\n /** Series label. Defaults to `'Return'`. */\n label?: string;\n upColor?: string;\n downColor?: string;\n /** Formats tooltip and Y-axis values. Defaults to a signed percentage. */\n valueFormatter?: (value: number) => string;\n showGrid?: boolean;\n};\n\n/**\n * Diverging bars for period returns — bars grow up (gain) or down (loss) from a zero baseline,\n * colored accordingly. Clearer than a plain bar chart for signed data.\n *\n * @example\n * ```tsx\n * import { GainLossBarChart } from '@customafk/lunas-ui/features/charts';\n *\n * <GainLossBarChart\n * data={[\n * { name: 'Jan', value: 0.032 },\n * { name: 'Feb', value: -0.014 },\n * ]}\n * />\n * ```\n */\nexport const GainLossBarChart = ({\n data,\n label = 'Return',\n upColor = 'var(--success)',\n downColor = 'var(--danger)',\n valueFormatter = value => formatSignedPercent(value),\n showGrid = true,\n className,\n animate = true,\n height,\n}: GainLossBarChartProps) => {\n const config = useMemo<ChartConfig>(() => ({ value: { label, color: upColor } }), [label, upColor]);\n\n return (\n <ChartContainer\n data-slot=\"gain-loss-bar-chart\"\n config={config}\n className={cn('w-full', className)}\n style={height !== undefined ? { height, aspectRatio: 'auto' } : undefined}\n >\n <BarChart data={data} margin={{ top: 8, right: 12, bottom: 0, left: 12 }}>\n {showGrid && <CartesianGrid vertical={false} />}\n <XAxis dataKey=\"name\" tickLine={false} axisLine={false} tickMargin={8} />\n <YAxis tickLine={false} axisLine={false} tickMargin={8} width={56} tickFormatter={valueFormatter} />\n <ReferenceLine y={0} stroke=\"var(--border)\" />\n <ChartTooltip cursor={false} content={<ChartTooltipContent hideIndicator formatter={value => valueFormatter(Number(value))} />} />\n <Bar\n dataKey=\"value\"\n isAnimationActive={animate}\n shape={props => <Rectangle {...props} fill={getDirectionColor(Number(props.payload?.value ?? 0), 0, { up: upColor, down: downColor })} />}\n />\n </BarChart>\n </ChartContainer>\n );\n};\n"],"mappings":"kbAwCA,MAAa,GAAoB,CAC/B,OACA,QAAQ,SACR,UAAU,iBACV,YAAY,gBACZ,iBAAiB,GAAS,EAAoB,CAAK,EACnD,WAAW,GACX,YACA,UAAU,GACV,YAKE,EAAC,EAAD,CACE,YAAU,sBACV,OALW,OAA4B,CAAE,MAAO,CAAE,QAAO,MAAO,CAAQ,CAAE,GAAI,CAAC,EAAO,CAAO,CAKhF,EACb,UAAW,EAAG,SAAU,CAAS,EACjC,MAAO,IAAW,IAAA,GAA8C,IAAA,GAAlC,CAAE,SAAQ,YAAa,MAAO,EAE5D,SAAA,EAAC,EAAD,CAAgB,OAAM,OAAQ,CAAE,IAAK,EAAG,MAAO,GAAI,OAAQ,EAAG,KAAM,EAAG,EAAvE,SAAA,CACG,GAAY,EAAC,EAAD,CAAe,SAAU,EAAQ,CAAA,EAC9C,EAAC,EAAD,CAAO,QAAQ,OAAO,SAAU,GAAO,SAAU,GAAO,WAAY,CAAI,CAAA,EACxE,EAAC,EAAD,CAAO,SAAU,GAAO,SAAU,GAAO,WAAY,EAAG,MAAO,GAAI,cAAe,CAAiB,CAAA,EACnG,EAAC,EAAD,CAAe,EAAG,EAAG,OAAO,eAAiB,CAAA,EAC7C,EAAC,EAAD,CAAc,OAAQ,GAAO,QAAS,EAAC,EAAD,CAAqB,cAAA,GAAc,UAAW,GAAS,EAAe,OAAO,CAAK,CAAC,CAAI,CAAA,CAAI,CAAA,EACjI,EAAC,EAAD,CACE,QAAQ,QACR,kBAAmB,EACnB,MAAO,GAAS,EAAC,EAAD,CAAW,GAAI,EAAO,KAAM,EAAkB,OAAO,EAAM,SAAS,OAAS,CAAC,EAAG,EAAG,CAAE,GAAI,EAAS,KAAM,CAAU,CAAC,CAAI,CAAA,CACzI,CAAA,CACO,GACI,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"gain-loss-bar-chart-FUzN7DxF.cjs","names":["formatSignedPercent","ChartContainer","BarChart","CartesianGrid","XAxis","YAxis","ReferenceLine","ChartTooltip","ChartTooltipContent","Bar","Rectangle","getDirectionColor"],"sources":["../packages/components/features/charts/components/gain-loss-bar-chart.tsx"],"sourcesContent":["'use client';\n\nimport { useMemo } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { type ChartConfig, ChartContainer, ChartTooltip, ChartTooltipContent } from '@/components/ui/chart';\n\nimport { Bar, BarChart, CartesianGrid, Rectangle, ReferenceLine, XAxis, YAxis } from 'recharts';\nimport type { BaseChartProps, NamedValue } from '../types';\nimport { formatSignedPercent, getDirectionColor } from '../utils';\n\nexport type GainLossBarChartProps = BaseChartProps & {\n /** `name` is the period label (e.g. a month or quarter); `value` is the signed return. */\n data: NamedValue[];\n /** Series label. Defaults to `'Return'`. */\n label?: string;\n upColor?: string;\n downColor?: string;\n /** Formats tooltip and Y-axis values. Defaults to a signed percentage. */\n valueFormatter?: (value: number) => string;\n showGrid?: boolean;\n};\n\n/**\n * Diverging bars for period returns — bars grow up (gain) or down (loss) from a zero baseline,\n * colored accordingly. Clearer than a plain bar chart for signed data.\n *\n * @example\n * ```tsx\n * import { GainLossBarChart } from '@customafk/lunas-ui/features/charts';\n *\n * <GainLossBarChart\n * data={[\n * { name: 'Jan', value: 0.032 },\n * { name: 'Feb', value: -0.014 },\n * ]}\n * />\n * ```\n */\nexport const GainLossBarChart = ({\n data,\n label = 'Return',\n upColor = 'var(--success)',\n downColor = 'var(--danger)',\n valueFormatter = value => formatSignedPercent(value),\n showGrid = true,\n className,\n animate = true,\n height,\n}: GainLossBarChartProps) => {\n const config = useMemo<ChartConfig>(() => ({ value: { label, color: upColor } }), [label, upColor]);\n\n return (\n <ChartContainer\n data-slot=\"gain-loss-bar-chart\"\n config={config}\n className={cn('w-full', className)}\n style={height !== undefined ? { height, aspectRatio: 'auto' } : undefined}\n >\n <BarChart data={data} margin={{ top: 8, right: 12, bottom: 0, left: 12 }}>\n {showGrid && <CartesianGrid vertical={false} />}\n <XAxis dataKey=\"name\" tickLine={false} axisLine={false} tickMargin={8} />\n <YAxis tickLine={false} axisLine={false} tickMargin={8} width={56} tickFormatter={valueFormatter} />\n <ReferenceLine y={0} stroke=\"var(--border)\" />\n <ChartTooltip cursor={false} content={<ChartTooltipContent hideIndicator formatter={value => valueFormatter(Number(value))} />} />\n <Bar\n dataKey=\"value\"\n isAnimationActive={animate}\n shape={props => <Rectangle {...props} fill={getDirectionColor(Number(props.payload?.value ?? 0), 0, { up: upColor, down: downColor })} />}\n />\n </BarChart>\n </ChartContainer>\n );\n};\n"],"mappings":"mMAwCA,MAAa,GAAoB,CAC/B,OACA,QAAQ,SACR,UAAU,iBACV,YAAY,gBACZ,iBAAiB,GAASA,EAAAA,oBAAoB,CAAK,EACnD,WAAW,GACX,YACA,UAAU,GACV,aAKE,EAAA,EAAA,IAAA,CAACC,EAAAA,eAAD,CACE,YAAU,sBACV,QAAA,EAAA,EAAA,QAAA,MALuC,CAAE,MAAO,CAAE,QAAO,MAAO,CAAQ,CAAE,GAAI,CAAC,EAAO,CAAO,CAKhF,EACb,WAAA,EAAA,EAAA,GAAA,CAAc,SAAU,CAAS,EACjC,MAAO,IAAW,IAAA,GAA8C,IAAA,GAAlC,CAAE,SAAQ,YAAa,MAAO,YAE5D,EAAA,EAAA,KAAA,CAACC,EAAAA,SAAD,CAAgB,OAAM,OAAQ,CAAE,IAAK,EAAG,MAAO,GAAI,OAAQ,EAAG,KAAM,EAAG,WAAvE,CACG,IAAY,EAAA,EAAA,IAAA,CAACC,EAAAA,cAAD,CAAe,SAAU,EAAQ,CAAA,GAC9C,EAAA,EAAA,IAAA,CAACC,EAAAA,MAAD,CAAO,QAAQ,OAAO,SAAU,GAAO,SAAU,GAAO,WAAY,CAAI,CAAA,GACxE,EAAA,EAAA,IAAA,CAACC,EAAAA,MAAD,CAAO,SAAU,GAAO,SAAU,GAAO,WAAY,EAAG,MAAO,GAAI,cAAe,CAAiB,CAAA,GACnG,EAAA,EAAA,IAAA,CAACC,EAAAA,cAAD,CAAe,EAAG,EAAG,OAAO,eAAiB,CAAA,GAC7C,EAAA,EAAA,IAAA,CAACC,EAAAA,aAAD,CAAc,OAAQ,GAAO,SAAS,EAAA,EAAA,IAAA,CAACC,EAAAA,oBAAD,CAAqB,cAAA,GAAc,UAAW,GAAS,EAAe,OAAO,CAAK,CAAC,CAAI,CAAA,CAAI,CAAA,GACjI,EAAA,EAAA,IAAA,CAACC,EAAAA,IAAD,CACE,QAAQ,QACR,kBAAmB,EACnB,MAAO,IAAS,EAAA,EAAA,IAAA,CAACC,EAAAA,UAAD,CAAW,GAAI,EAAO,KAAMC,EAAAA,kBAAkB,OAAO,EAAM,SAAS,OAAS,CAAC,EAAG,EAAG,CAAE,GAAI,EAAS,KAAM,CAAU,CAAC,CAAI,CAAA,CACzI,CAAA,CACO,GACI,CAAA"}
1
+ {"version":3,"file":"gain-loss-bar-chart-FUzN7DxF.cjs","names":["formatSignedPercent","ChartContainer","BarChart","CartesianGrid","XAxis","YAxis","ReferenceLine","ChartTooltip","ChartTooltipContent","Bar","Rectangle","getDirectionColor"],"sources":["../packages/components/features/charts/components/gain-loss-bar-chart.tsx"],"sourcesContent":["'use client';\n\nimport { useMemo } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { type ChartConfig, ChartContainer, ChartTooltip, ChartTooltipContent } from '@/components/ui/chart';\n\nimport { Bar, BarChart, CartesianGrid, Rectangle, ReferenceLine, XAxis, YAxis } from 'recharts';\nimport type { BaseChartProps, NamedValue } from '../types';\nimport { formatSignedPercent, getDirectionColor } from '../utils';\n\nexport type GainLossBarChartProps = BaseChartProps & {\n /** `name` is the period label (e.g. a month or quarter); `value` is the signed return. */\n data: NamedValue[];\n /** Series label. Defaults to `'Return'`. */\n label?: string;\n upColor?: string;\n downColor?: string;\n /** Formats tooltip and Y-axis values. Defaults to a signed percentage. */\n valueFormatter?: (value: number) => string;\n showGrid?: boolean;\n};\n\n/**\n * Diverging bars for period returns — bars grow up (gain) or down (loss) from a zero baseline,\n * colored accordingly. Clearer than a plain bar chart for signed data.\n *\n * @example\n * ```tsx\n * import { GainLossBarChart } from '@customafk/lunas-ui/features/charts';\n *\n * <GainLossBarChart\n * data={[\n * { name: 'Jan', value: 0.032 },\n * { name: 'Feb', value: -0.014 },\n * ]}\n * />\n * ```\n */\nexport const GainLossBarChart = ({\n data,\n label = 'Return',\n upColor = 'var(--success)',\n downColor = 'var(--danger)',\n valueFormatter = value => formatSignedPercent(value),\n showGrid = true,\n className,\n animate = true,\n height,\n}: GainLossBarChartProps) => {\n const config = useMemo<ChartConfig>(() => ({ value: { label, color: upColor } }), [label, upColor]);\n\n return (\n <ChartContainer\n data-slot=\"gain-loss-bar-chart\"\n config={config}\n className={cn('w-full', className)}\n style={height !== undefined ? { height, aspectRatio: 'auto' } : undefined}\n >\n <BarChart data={data} margin={{ top: 8, right: 12, bottom: 0, left: 12 }}>\n {showGrid && <CartesianGrid vertical={false} />}\n <XAxis dataKey=\"name\" tickLine={false} axisLine={false} tickMargin={8} />\n <YAxis tickLine={false} axisLine={false} tickMargin={8} width={56} tickFormatter={valueFormatter} />\n <ReferenceLine y={0} stroke=\"var(--border)\" />\n <ChartTooltip cursor={false} content={<ChartTooltipContent hideIndicator formatter={value => valueFormatter(Number(value))} />} />\n <Bar\n dataKey=\"value\"\n isAnimationActive={animate}\n shape={props => <Rectangle {...props} fill={getDirectionColor(Number(props.payload?.value ?? 0), 0, { up: upColor, down: downColor })} />}\n />\n </BarChart>\n </ChartContainer>\n );\n};\n"],"mappings":"mMAwCA,MAAa,GAAoB,CAC/B,OACA,QAAQ,SACR,UAAU,iBACV,YAAY,gBACZ,iBAAiB,GAASA,EAAAA,oBAAoB,CAAK,EACnD,WAAW,GACX,YACA,UAAU,GACV,aAKE,EAAA,EAAA,IAAA,CAACC,EAAAA,eAAD,CACE,YAAU,sBACV,QAAA,EAAA,EAAA,QAAA,MALuC,CAAE,MAAO,CAAE,QAAO,MAAO,CAAQ,CAAE,GAAI,CAAC,EAAO,CAAO,CAKhF,EACb,WAAA,EAAA,EAAA,GAAA,CAAc,SAAU,CAAS,EACjC,MAAO,IAAW,IAAA,GAA8C,IAAA,GAAlC,CAAE,SAAQ,YAAa,MAAO,EAE5D,UAAA,EAAA,EAAA,KAAA,CAACC,EAAAA,SAAD,CAAgB,OAAM,OAAQ,CAAE,IAAK,EAAG,MAAO,GAAI,OAAQ,EAAG,KAAM,EAAG,EAAvE,SAAA,CACG,IAAY,EAAA,EAAA,IAAA,CAACC,EAAAA,cAAD,CAAe,SAAU,EAAQ,CAAA,GAC9C,EAAA,EAAA,IAAA,CAACC,EAAAA,MAAD,CAAO,QAAQ,OAAO,SAAU,GAAO,SAAU,GAAO,WAAY,CAAI,CAAA,GACxE,EAAA,EAAA,IAAA,CAACC,EAAAA,MAAD,CAAO,SAAU,GAAO,SAAU,GAAO,WAAY,EAAG,MAAO,GAAI,cAAe,CAAiB,CAAA,GACnG,EAAA,EAAA,IAAA,CAACC,EAAAA,cAAD,CAAe,EAAG,EAAG,OAAO,eAAiB,CAAA,GAC7C,EAAA,EAAA,IAAA,CAACC,EAAAA,aAAD,CAAc,OAAQ,GAAO,SAAS,EAAA,EAAA,IAAA,CAACC,EAAAA,oBAAD,CAAqB,cAAA,GAAc,UAAW,GAAS,EAAe,OAAO,CAAK,CAAC,CAAI,CAAA,CAAI,CAAA,GACjI,EAAA,EAAA,IAAA,CAACC,EAAAA,IAAD,CACE,QAAQ,QACR,kBAAmB,EACnB,MAAO,IAAS,EAAA,EAAA,IAAA,CAACC,EAAAA,UAAD,CAAW,GAAI,EAAO,KAAMC,EAAAA,kBAAkB,OAAO,EAAM,SAAS,OAAS,CAAC,EAAG,EAAG,CAAE,GAAI,EAAS,KAAM,CAAU,CAAC,CAAI,CAAA,CACzI,CAAA,CACO,GACI,CAAA"}
@@ -1,8 +1,9 @@
1
1
  import { CredentialResponse } from "@react-oauth/google";
2
-
3
2
  //#region packages/components/systems/google.d.ts
4
3
  type GoogleProps = {
5
- /** When `true`, the Google One Tap prompt is suppressed and no login dialog is shown. */isDisabled: boolean; /** Callback invoked with the verified `CredentialResponse` after a successful Google sign-in. */
4
+ /** When `true`, the Google One Tap prompt is suppressed and no login dialog is shown. */
5
+ isDisabled: boolean;
6
+ /** Callback invoked with the verified `CredentialResponse` after a successful Google sign-in. */
6
7
  onGoogleLoginSuccess?: (params: CredentialResponse) => void | Promise<void>;
7
8
  };
8
9
  /**
@@ -21,8 +22,11 @@ type GoogleProps = {
21
22
  */
22
23
  declare const Google: React.FC<GoogleProps>;
23
24
  type ReactOAuthProps = {
24
- /** Google OAuth 2.0 client ID from the Google Cloud Console. */clientId: string; /** When `true`, the Google One Tap prompt is suppressed. */
25
- isDisabled: boolean; /** Callback invoked with the verified `CredentialResponse` after a successful Google sign-in. */
25
+ /** Google OAuth 2.0 client ID from the Google Cloud Console. */
26
+ clientId: string;
27
+ /** When `true`, the Google One Tap prompt is suppressed. */
28
+ isDisabled: boolean;
29
+ /** Callback invoked with the verified `CredentialResponse` after a successful Google sign-in. */
26
30
  onGoogleLoginSuccess?: (params: CredentialResponse) => void | Promise<void>;
27
31
  };
28
32
  /**
@@ -45,4 +49,4 @@ type ReactOAuthProps = {
45
49
  declare const ReactOAuth: React.FC<React.PropsWithChildren<ReactOAuthProps>>;
46
50
  //#endregion
47
51
  export { ReactOAuth as n, Google as t };
48
- //# sourceMappingURL=google-Bl-jBW8L.d.cts.map
52
+ //# sourceMappingURL=google-vajkoOiC.d.cts.map
@@ -1,8 +1,9 @@
1
1
  import { CredentialResponse } from "@react-oauth/google";
2
-
3
2
  //#region packages/components/systems/google.d.ts
4
3
  type GoogleProps = {
5
- /** When `true`, the Google One Tap prompt is suppressed and no login dialog is shown. */isDisabled: boolean; /** Callback invoked with the verified `CredentialResponse` after a successful Google sign-in. */
4
+ /** When `true`, the Google One Tap prompt is suppressed and no login dialog is shown. */
5
+ isDisabled: boolean;
6
+ /** Callback invoked with the verified `CredentialResponse` after a successful Google sign-in. */
6
7
  onGoogleLoginSuccess?: (params: CredentialResponse) => void | Promise<void>;
7
8
  };
8
9
  /**
@@ -21,8 +22,11 @@ type GoogleProps = {
21
22
  */
22
23
  declare const Google: React.FC<GoogleProps>;
23
24
  type ReactOAuthProps = {
24
- /** Google OAuth 2.0 client ID from the Google Cloud Console. */clientId: string; /** When `true`, the Google One Tap prompt is suppressed. */
25
- isDisabled: boolean; /** Callback invoked with the verified `CredentialResponse` after a successful Google sign-in. */
25
+ /** Google OAuth 2.0 client ID from the Google Cloud Console. */
26
+ clientId: string;
27
+ /** When `true`, the Google One Tap prompt is suppressed. */
28
+ isDisabled: boolean;
29
+ /** Callback invoked with the verified `CredentialResponse` after a successful Google sign-in. */
26
30
  onGoogleLoginSuccess?: (params: CredentialResponse) => void | Promise<void>;
27
31
  };
28
32
  /**
@@ -45,4 +49,4 @@ type ReactOAuthProps = {
45
49
  declare const ReactOAuth: React.FC<React.PropsWithChildren<ReactOAuthProps>>;
46
50
  //#endregion
47
51
  export { ReactOAuth as n, Google as t };
48
- //# sourceMappingURL=google-Bl-jBW8L.d.mts.map
52
+ //# sourceMappingURL=google-vajkoOiC.d.mts.map
@@ -1,11 +1,18 @@
1
1
  //#region packages/components/cards/grid-product-card.d.ts
2
2
  type Props = {
3
- /** Unique identifier for the product. */id: string; /** URL-friendly slug for the product. */
4
- slug: string; /** Display name of the product shown on the card. */
5
- name: string; /** URL of the product's thumbnail image. */
6
- thumbnail: string; /** Regular price of the product in VND. */
7
- price: number; /** Optional sale / discounted price in VND. */
8
- salePrice?: number; /** Optional sale discount percentage (0–100). */
3
+ /** Unique identifier for the product. */
4
+ id: string;
5
+ /** URL-friendly slug for the product. */
6
+ slug: string;
7
+ /** Display name of the product shown on the card. */
8
+ name: string;
9
+ /** URL of the product's thumbnail image. */
10
+ thumbnail: string;
11
+ /** Regular price of the product in VND. */
12
+ price: number;
13
+ /** Optional sale / discounted price in VND. */
14
+ salePrice?: number;
15
+ /** Optional sale discount percentage (0–100). */
9
16
  salePercentage?: number;
10
17
  };
11
18
  /**
@@ -27,4 +34,4 @@ type Props = {
27
34
  declare const GridProductCard: React.FC<Props>;
28
35
  //#endregion
29
36
  export { GridProductCard as t };
30
- //# sourceMappingURL=grid-product-card-bpADqDOQ.d.cts.map
37
+ //# sourceMappingURL=grid-product-card-P5X8ZPQF.d.cts.map
@@ -1,11 +1,18 @@
1
1
  //#region packages/components/cards/grid-product-card.d.ts
2
2
  type Props = {
3
- /** Unique identifier for the product. */id: string; /** URL-friendly slug for the product. */
4
- slug: string; /** Display name of the product shown on the card. */
5
- name: string; /** URL of the product's thumbnail image. */
6
- thumbnail: string; /** Regular price of the product in VND. */
7
- price: number; /** Optional sale / discounted price in VND. */
8
- salePrice?: number; /** Optional sale discount percentage (0–100). */
3
+ /** Unique identifier for the product. */
4
+ id: string;
5
+ /** URL-friendly slug for the product. */
6
+ slug: string;
7
+ /** Display name of the product shown on the card. */
8
+ name: string;
9
+ /** URL of the product's thumbnail image. */
10
+ thumbnail: string;
11
+ /** Regular price of the product in VND. */
12
+ price: number;
13
+ /** Optional sale / discounted price in VND. */
14
+ salePrice?: number;
15
+ /** Optional sale discount percentage (0–100). */
9
16
  salePercentage?: number;
10
17
  };
11
18
  /**
@@ -27,4 +34,4 @@ type Props = {
27
34
  declare const GridProductCard: React.FC<Props>;
28
35
  //#endregion
29
36
  export { GridProductCard as t };
30
- //# sourceMappingURL=grid-product-card-bpADqDOQ.d.mts.map
37
+ //# sourceMappingURL=grid-product-card-P5X8ZPQF.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"group-field-gejvx_Td.mjs","names":[],"sources":["../packages/components/features/tanstack-form/components/forms/group-field.tsx"],"sourcesContent":["import {\n Field,\n FieldContent,\n FieldContentMain,\n FieldDescription,\n FieldGroup,\n FieldLabel,\n FieldNote,\n FieldSeparator,\n} from '@/components/features/tanstack-form/components/ui/field';\n\n/**\n * Renders a labeled field group with an optional description, helper text, and a bottom separator.\n *\n * @example\n * import { TanStackFieldGroup } from '@customafk/lunas-ui/features/tanstack-form';\n *\n * <TanStackFieldGroup\n * label=\"Contact Details\"\n * description=\"Enter your contact information.\"\n * helperText=\"All fields are required.\"\n * orientation=\"horizontal\"\n * >\n * <EmailField />\n * </TanStackFieldGroup>\n */\nexport const TanStackFieldGroup: React.FC<\n React.PropsWithChildren<{\n /** Primary label displayed above the field content. */\n label: string;\n /** Secondary descriptive text shown beneath the label. */\n description?: string;\n /** Supplementary helper note rendered below the field content. */\n helperText?: string;\n /** Layout orientation of the label-to-content axis. Defaults to `'responsive'`. */\n orientation?: 'horizontal' | 'vertical' | 'responsive';\n }>\n> = ({\n label,\n description,\n helperText,\n\n orientation = 'responsive',\n children,\n}) => {\n return (\n <FieldGroup className=\"gap-y-4 px-4\">\n <Field orientation={orientation}>\n <FieldContent>\n <FieldLabel>{label}</FieldLabel>\n <FieldDescription>{description}</FieldDescription>\n </FieldContent>\n <FieldContentMain>\n {children}\n <FieldNote isShow={!!helperText}>{helperText}</FieldNote>\n </FieldContentMain>\n </Field>\n <FieldSeparator />\n </FieldGroup>\n );\n};\n"],"mappings":"gOA0BA,MAAa,GAWR,CACH,QACA,cACA,aAEA,cAAc,aACd,cAGE,EAAC,EAAD,CAAY,UAAU,wBAAtB,CACE,EAAC,EAAD,CAAoB,uBAApB,CACE,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAA,SAAa,CAAkB,CAAA,EAC/B,EAAC,EAAD,CAAA,SAAmB,CAA8B,CAAA,CACrC,CAAA,CAAA,EACd,EAAC,EAAD,CAAA,SAAA,CACG,EACD,EAAC,EAAD,CAAW,OAAQ,CAAC,CAAC,WAAa,CAAsB,CAAA,CACxC,CAAA,CAAA,CACb,IACP,EAAC,EAAD,CAAiB,CAAA,CACP"}
1
+ {"version":3,"file":"group-field-gejvx_Td.mjs","names":[],"sources":["../packages/components/features/tanstack-form/components/forms/group-field.tsx"],"sourcesContent":["import {\n Field,\n FieldContent,\n FieldContentMain,\n FieldDescription,\n FieldGroup,\n FieldLabel,\n FieldNote,\n FieldSeparator,\n} from '@/components/features/tanstack-form/components/ui/field';\n\n/**\n * Renders a labeled field group with an optional description, helper text, and a bottom separator.\n *\n * @example\n * import { TanStackFieldGroup } from '@customafk/lunas-ui/features/tanstack-form';\n *\n * <TanStackFieldGroup\n * label=\"Contact Details\"\n * description=\"Enter your contact information.\"\n * helperText=\"All fields are required.\"\n * orientation=\"horizontal\"\n * >\n * <EmailField />\n * </TanStackFieldGroup>\n */\nexport const TanStackFieldGroup: React.FC<\n React.PropsWithChildren<{\n /** Primary label displayed above the field content. */\n label: string;\n /** Secondary descriptive text shown beneath the label. */\n description?: string;\n /** Supplementary helper note rendered below the field content. */\n helperText?: string;\n /** Layout orientation of the label-to-content axis. Defaults to `'responsive'`. */\n orientation?: 'horizontal' | 'vertical' | 'responsive';\n }>\n> = ({\n label,\n description,\n helperText,\n\n orientation = 'responsive',\n children,\n}) => {\n return (\n <FieldGroup className=\"gap-y-4 px-4\">\n <Field orientation={orientation}>\n <FieldContent>\n <FieldLabel>{label}</FieldLabel>\n <FieldDescription>{description}</FieldDescription>\n </FieldContent>\n <FieldContentMain>\n {children}\n <FieldNote isShow={!!helperText}>{helperText}</FieldNote>\n </FieldContentMain>\n </Field>\n <FieldSeparator />\n </FieldGroup>\n );\n};\n"],"mappings":"gOA0BA,MAAa,GAWR,CACH,QACA,cACA,aAEA,cAAc,aACd,cAGE,EAAC,EAAD,CAAY,UAAU,eAAtB,SAAA,CACE,EAAC,EAAD,CAAoB,cAApB,SAAA,CACE,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAA,SAAa,CAAkB,CAAA,EAC/B,EAAC,EAAD,CAAA,SAAmB,CAA8B,CAAA,CACrC,CAAA,CAAA,EACd,EAAC,EAAD,CAAA,SAAA,CACG,EACD,EAAC,EAAD,CAAW,OAAQ,CAAC,CAAC,EAAa,SAAA,CAAsB,CAAA,CACxC,CAAA,CAAA,CACb,CACP,CAAA,EAAA,EAAC,EAAD,CAAiB,CAAA,CACP"}
@@ -1 +1 @@
1
- {"version":3,"file":"group-field-sVykO2JZ.cjs","names":["FieldGroup","Field","FieldContent","FieldLabel","FieldDescription","FieldContentMain","FieldNote","FieldSeparator"],"sources":["../packages/components/features/tanstack-form/components/forms/group-field.tsx"],"sourcesContent":["import {\n Field,\n FieldContent,\n FieldContentMain,\n FieldDescription,\n FieldGroup,\n FieldLabel,\n FieldNote,\n FieldSeparator,\n} from '@/components/features/tanstack-form/components/ui/field';\n\n/**\n * Renders a labeled field group with an optional description, helper text, and a bottom separator.\n *\n * @example\n * import { TanStackFieldGroup } from '@customafk/lunas-ui/features/tanstack-form';\n *\n * <TanStackFieldGroup\n * label=\"Contact Details\"\n * description=\"Enter your contact information.\"\n * helperText=\"All fields are required.\"\n * orientation=\"horizontal\"\n * >\n * <EmailField />\n * </TanStackFieldGroup>\n */\nexport const TanStackFieldGroup: React.FC<\n React.PropsWithChildren<{\n /** Primary label displayed above the field content. */\n label: string;\n /** Secondary descriptive text shown beneath the label. */\n description?: string;\n /** Supplementary helper note rendered below the field content. */\n helperText?: string;\n /** Layout orientation of the label-to-content axis. Defaults to `'responsive'`. */\n orientation?: 'horizontal' | 'vertical' | 'responsive';\n }>\n> = ({\n label,\n description,\n helperText,\n\n orientation = 'responsive',\n children,\n}) => {\n return (\n <FieldGroup className=\"gap-y-4 px-4\">\n <Field orientation={orientation}>\n <FieldContent>\n <FieldLabel>{label}</FieldLabel>\n <FieldDescription>{description}</FieldDescription>\n </FieldContent>\n <FieldContentMain>\n {children}\n <FieldNote isShow={!!helperText}>{helperText}</FieldNote>\n </FieldContentMain>\n </Field>\n <FieldSeparator />\n </FieldGroup>\n );\n};\n"],"mappings":"2EA0BA,MAAa,GAWR,CACH,QACA,cACA,aAEA,cAAc,aACd,eAGE,EAAA,EAAA,KAAA,CAACA,EAAAA,WAAD,CAAY,UAAU,wBAAtB,EACE,EAAA,EAAA,KAAA,CAACC,EAAAA,MAAD,CAAoB,uBAApB,EACE,EAAA,EAAA,KAAA,CAACC,EAAAA,aAAD,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,WAAD,CAAA,SAAa,CAAkB,CAAA,GAC/B,EAAA,EAAA,IAAA,CAACC,EAAAA,iBAAD,CAAA,SAAmB,CAA8B,CAAA,CACrC,CAAA,CAAA,GACd,EAAA,EAAA,KAAA,CAACC,EAAAA,iBAAD,CAAA,SAAA,CACG,GACD,EAAA,EAAA,IAAA,CAACC,EAAAA,UAAD,CAAW,OAAQ,CAAC,CAAC,WAAa,CAAsB,CAAA,CACxC,CAAA,CAAA,CACb,KACP,EAAA,EAAA,IAAA,CAACC,EAAAA,eAAD,CAAiB,CAAA,CACP"}
1
+ {"version":3,"file":"group-field-sVykO2JZ.cjs","names":["FieldGroup","Field","FieldContent","FieldLabel","FieldDescription","FieldContentMain","FieldNote","FieldSeparator"],"sources":["../packages/components/features/tanstack-form/components/forms/group-field.tsx"],"sourcesContent":["import {\n Field,\n FieldContent,\n FieldContentMain,\n FieldDescription,\n FieldGroup,\n FieldLabel,\n FieldNote,\n FieldSeparator,\n} from '@/components/features/tanstack-form/components/ui/field';\n\n/**\n * Renders a labeled field group with an optional description, helper text, and a bottom separator.\n *\n * @example\n * import { TanStackFieldGroup } from '@customafk/lunas-ui/features/tanstack-form';\n *\n * <TanStackFieldGroup\n * label=\"Contact Details\"\n * description=\"Enter your contact information.\"\n * helperText=\"All fields are required.\"\n * orientation=\"horizontal\"\n * >\n * <EmailField />\n * </TanStackFieldGroup>\n */\nexport const TanStackFieldGroup: React.FC<\n React.PropsWithChildren<{\n /** Primary label displayed above the field content. */\n label: string;\n /** Secondary descriptive text shown beneath the label. */\n description?: string;\n /** Supplementary helper note rendered below the field content. */\n helperText?: string;\n /** Layout orientation of the label-to-content axis. Defaults to `'responsive'`. */\n orientation?: 'horizontal' | 'vertical' | 'responsive';\n }>\n> = ({\n label,\n description,\n helperText,\n\n orientation = 'responsive',\n children,\n}) => {\n return (\n <FieldGroup className=\"gap-y-4 px-4\">\n <Field orientation={orientation}>\n <FieldContent>\n <FieldLabel>{label}</FieldLabel>\n <FieldDescription>{description}</FieldDescription>\n </FieldContent>\n <FieldContentMain>\n {children}\n <FieldNote isShow={!!helperText}>{helperText}</FieldNote>\n </FieldContentMain>\n </Field>\n <FieldSeparator />\n </FieldGroup>\n );\n};\n"],"mappings":"2EA0BA,MAAa,GAWR,CACH,QACA,cACA,aAEA,cAAc,aACd,eAGE,EAAA,EAAA,KAAA,CAACA,EAAAA,WAAD,CAAY,UAAU,eAAtB,SAAA,EACE,EAAA,EAAA,KAAA,CAACC,EAAAA,MAAD,CAAoB,cAApB,SAAA,EACE,EAAA,EAAA,KAAA,CAACC,EAAAA,aAAD,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,WAAD,CAAA,SAAa,CAAkB,CAAA,GAC/B,EAAA,EAAA,IAAA,CAACC,EAAAA,iBAAD,CAAA,SAAmB,CAA8B,CAAA,CACrC,CAAA,CAAA,GACd,EAAA,EAAA,KAAA,CAACC,EAAAA,iBAAD,CAAA,SAAA,CACG,GACD,EAAA,EAAA,IAAA,CAACC,EAAAA,UAAD,CAAW,OAAQ,CAAC,CAAC,EAAa,SAAA,CAAsB,CAAA,CACxC,CAAA,CAAA,CACb,CACP,CAAA,GAAA,EAAA,EAAA,IAAA,CAACC,EAAAA,eAAD,CAAiB,CAAA,CACP"}