@mx-cartographer/experiences 9.3.8-alpha.al1 → 9.4.0

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 (312) hide show
  1. package/CHANGELOG.md +14 -3
  2. package/dist/accounts/components/AccountListItem.es.js +4 -4
  3. package/dist/accounts/components/AccountsListCompact.es.js +15 -15
  4. package/dist/accounts/components/detailsdrawer/Accounts/AccountActions.es.js +6 -6
  5. package/dist/accounts/components/detailsdrawer/Accounts/AccountConnection.es.js +6 -6
  6. package/dist/accounts/components/detailsdrawer/Accounts/AccountDetails.es.js +11 -11
  7. package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsContent.es.js +6 -6
  8. package/dist/accounts/components/detailsdrawer/Accounts/ConnectionErrorMessage.es.js +7 -7
  9. package/dist/accounts/components/detailsdrawer/Transactions/TransactionsTab.es.js +4 -4
  10. package/dist/budgets/components/BudgetDetailsDrawer.es.js +95 -134
  11. package/dist/budgets/components/BudgetDetailsDrawer.es.js.map +1 -1
  12. package/dist/budgets/components/BudgetsEmptyState.es.js +7 -7
  13. package/dist/budgets/components/budgetdetails/AddSubBudget.es.js +56 -57
  14. package/dist/budgets/components/budgetdetails/AddSubBudget.es.js.map +1 -1
  15. package/dist/budgets/components/budgetdetails/SubBudgetList.es.js +34 -35
  16. package/dist/budgets/components/budgetdetails/SubBudgetList.es.js.map +1 -1
  17. package/dist/budgets/components/shared/BudgetAmount.d.ts +3 -7
  18. package/dist/budgets/components/shared/BudgetAmount.es.js +19 -40
  19. package/dist/budgets/components/shared/BudgetAmount.es.js.map +1 -1
  20. package/dist/cashflow/CashflowOnboarding.es.js +13 -13
  21. package/dist/cashflow/components/CashflowHeading.es.js +4 -4
  22. package/dist/cashflow/components/DetailsExpenseHeader.es.js +4 -4
  23. package/dist/common/components/DataRow.es.js +6 -6
  24. package/dist/common/components/MiniWidgetContainer.es.js +9 -9
  25. package/dist/common/components/charts/linechart/CustomLine.es.js +2 -2
  26. package/dist/common/components/charts/linechart/CustomMark.es.js +2 -2
  27. package/dist/common/context/hooks.d.ts +1 -0
  28. package/dist/common/context/hooks.es.js +12 -11
  29. package/dist/common/context/hooks.es.js.map +1 -1
  30. package/dist/common/context/index.d.ts +1 -1
  31. package/dist/common/index.es.js +116 -115
  32. package/dist/core/index.es.js +27 -25
  33. package/dist/core/stores/BudgetsStore.es.js +21 -28
  34. package/dist/core/stores/BudgetsStore.es.js.map +1 -1
  35. package/dist/core/stores/GlobalStore.d.ts +2 -1
  36. package/dist/core/stores/GlobalStore.es.js +11 -9
  37. package/dist/core/stores/GlobalStore.es.js.map +1 -1
  38. package/dist/core/stores/InsightsV2Store.d.ts +24 -0
  39. package/dist/core/stores/InsightsV2Store.es.js +41 -0
  40. package/dist/core/stores/InsightsV2Store.es.js.map +1 -0
  41. package/dist/core/stores/index.d.ts +2 -0
  42. package/dist/core/types/Beat.d.ts +2 -0
  43. package/dist/core/types/Beat.es.js.map +1 -1
  44. package/dist/core/types/Insights.d.ts +90 -0
  45. package/dist/core/types/InsightsInstanceSlotData.d.ts +93 -0
  46. package/dist/core/types/InsightsInstanceSlotData.es.js +8 -0
  47. package/dist/core/types/InsightsInstanceSlotData.es.js.map +1 -0
  48. package/dist/core/types/index.d.ts +1 -0
  49. package/dist/core/utils/BudgetUtil.es.js +50 -56
  50. package/dist/core/utils/BudgetUtil.es.js.map +1 -1
  51. package/dist/debts/DebtsWidget.es.js +5 -5
  52. package/dist/debts/components/debtsdrawer/DebtDetailsContent.es.js +3 -3
  53. package/dist/debts/components/debtsdrawer/DebtDetailsTab.es.js +6 -6
  54. package/dist/debts/components/debtsdrawer/DebtScheduleTab.es.js +8 -8
  55. package/dist/finstrong/components/HaveManageableDebt/HaveManageableDebtComponent.es.js +2 -2
  56. package/dist/finstrong/components/KeyIndicatorsTabItem.es.js +8 -8
  57. package/dist/finstrong/components/SaveEnoughToLiveOn/SaveEnoughToLiveOnDrawerContent.es.js +5 -5
  58. package/dist/finstrong/components/shared/Accounts.es.js +24 -24
  59. package/dist/finstrong/components/shared/ScoreHistoryTimeline.es.js +2 -2
  60. package/dist/finstrong/components/shared/Transactions.es.js +28 -28
  61. package/dist/finstrong/util/finstrongUtils.d.ts +1 -1
  62. package/dist/goals/GoalsWidget.es.js +12 -12
  63. package/dist/insights/components/insights/CustomTransaction/CustomTransaction.es.js +13 -13
  64. package/dist/insights/components/insights/UserFeedback/UserFeedback.es.js +14 -14
  65. package/dist/insights/components/shared/DeepLinks/DirectDeposit/DirectDepositDeepLink.es.js +2 -2
  66. package/dist/insights/components/shared/DirectDeposit/DirectDepositSubHeader.es.js +9 -9
  67. package/dist/insights/components/shared/InsightsCard/BeatCard.es.js +4 -4
  68. package/dist/insights/components/shared/InsightsCard/BeatCardMUI.es.js +4 -4
  69. package/dist/insights/components/shared/InsightsCard/ContentAndDescription.es.js +2 -2
  70. package/dist/insights/components/shared/InsightsCard/ContentAndDescriptionMUI.es.js +2 -2
  71. package/dist/insights/components/shared/MenuAction.es.js +16 -16
  72. package/dist/insights-v2/CommonUtils.d.ts +1 -0
  73. package/dist/insights-v2/CommonUtils.es.js +7 -0
  74. package/dist/insights-v2/CommonUtils.es.js.map +1 -0
  75. package/dist/insights-v2/blocks/ChartBlocks/BarchartBlock/BarchartBlock.d.ts +3 -0
  76. package/dist/insights-v2/blocks/ChartBlocks/BarchartBlock/BarchartBlock.es.js +28 -0
  77. package/dist/insights-v2/blocks/ChartBlocks/BarchartBlock/BarchartBlock.es.js.map +1 -0
  78. package/dist/insights-v2/blocks/ChartBlocks/BarchartBlock/index.d.ts +1 -0
  79. package/dist/insights-v2/blocks/ChartBlocks/BarchartBlock/layout.d.ts +9 -0
  80. package/dist/insights-v2/blocks/ChartBlocks/BarchartBlock/layout.es.js +9 -0
  81. package/dist/insights-v2/blocks/ChartBlocks/BarchartBlock/layout.es.js.map +1 -0
  82. package/dist/insights-v2/blocks/ChartBlocks/BarchartBlock/utils.d.ts +18 -0
  83. package/dist/insights-v2/blocks/ChartBlocks/BarchartBlock/utils.es.js +34 -0
  84. package/dist/insights-v2/blocks/ChartBlocks/BarchartBlock/utils.es.js.map +1 -0
  85. package/dist/insights-v2/blocks/ChartBlocks/DonutChartBlock/DonutChart.d.ts +13 -0
  86. package/dist/insights-v2/blocks/ChartBlocks/DonutChartBlock/DonutChart.es.js +87 -0
  87. package/dist/insights-v2/blocks/ChartBlocks/DonutChartBlock/DonutChart.es.js.map +1 -0
  88. package/dist/insights-v2/blocks/ChartBlocks/DonutChartBlock/DonutChartBlock.d.ts +4 -0
  89. package/dist/insights-v2/blocks/ChartBlocks/DonutChartBlock/DonutChartBlock.es.js +23 -0
  90. package/dist/insights-v2/blocks/ChartBlocks/DonutChartBlock/DonutChartBlock.es.js.map +1 -0
  91. package/dist/insights-v2/blocks/ChartBlocks/DonutChartBlock/index.d.ts +1 -0
  92. package/dist/insights-v2/blocks/ChartBlocks/DonutChartBlock/layout.d.ts +19 -0
  93. package/dist/insights-v2/blocks/ChartBlocks/DonutChartBlock/layout.es.js +15 -0
  94. package/dist/insights-v2/blocks/ChartBlocks/DonutChartBlock/layout.es.js.map +1 -0
  95. package/dist/insights-v2/blocks/ChartBlocks/DonutChartBlock/utils.d.ts +3 -0
  96. package/dist/insights-v2/blocks/ChartBlocks/DonutChartBlock/utils.es.js +11 -0
  97. package/dist/insights-v2/blocks/ChartBlocks/DonutChartBlock/utils.es.js.map +1 -0
  98. package/dist/insights-v2/blocks/ChartBlocks/DoubleBarChartBlock/ChartLegend.d.ts +7 -0
  99. package/dist/insights-v2/blocks/ChartBlocks/DoubleBarChartBlock/ChartLegend.es.js +48 -0
  100. package/dist/insights-v2/blocks/ChartBlocks/DoubleBarChartBlock/ChartLegend.es.js.map +1 -0
  101. package/dist/insights-v2/blocks/ChartBlocks/DoubleBarChartBlock/CustomDoubleBar.d.ts +18 -0
  102. package/dist/insights-v2/blocks/ChartBlocks/DoubleBarChartBlock/CustomDoubleBar.es.js +45 -0
  103. package/dist/insights-v2/blocks/ChartBlocks/DoubleBarChartBlock/CustomDoubleBar.es.js.map +1 -0
  104. package/dist/insights-v2/blocks/ChartBlocks/DoubleBarChartBlock/DoubleBarChart.d.ts +2 -0
  105. package/dist/insights-v2/blocks/ChartBlocks/DoubleBarChartBlock/DoubleBarChart.es.js +125 -0
  106. package/dist/insights-v2/blocks/ChartBlocks/DoubleBarChartBlock/DoubleBarChart.es.js.map +1 -0
  107. package/dist/insights-v2/blocks/ChartBlocks/DoubleBarChartBlock/index.d.ts +1 -0
  108. package/dist/insights-v2/blocks/ChartBlocks/DoubleBarChartBlock/layout.d.ts +8 -0
  109. package/dist/insights-v2/blocks/ChartBlocks/DoubleBarChartBlock/layout.es.js +10 -0
  110. package/dist/insights-v2/blocks/ChartBlocks/DoubleBarChartBlock/layout.es.js.map +1 -0
  111. package/dist/insights-v2/blocks/ChartBlocks/DoubleProgressBarBlock/DoubleProgressBarBlock.d.ts +4 -0
  112. package/dist/insights-v2/blocks/ChartBlocks/DoubleProgressBarBlock/DoubleProgressBarBlock.es.js +28 -0
  113. package/dist/insights-v2/blocks/ChartBlocks/DoubleProgressBarBlock/DoubleProgressBarBlock.es.js.map +1 -0
  114. package/dist/insights-v2/blocks/ChartBlocks/DoubleProgressBarBlock/ProgressBar.d.ts +8 -0
  115. package/dist/insights-v2/blocks/ChartBlocks/DoubleProgressBarBlock/ProgressBar.es.js +44 -0
  116. package/dist/insights-v2/blocks/ChartBlocks/DoubleProgressBarBlock/ProgressBar.es.js.map +1 -0
  117. package/dist/insights-v2/blocks/ChartBlocks/DoubleProgressBarBlock/index.d.ts +1 -0
  118. package/dist/insights-v2/blocks/ChartBlocks/StepChartBlock/StepChartBlock.d.ts +4 -0
  119. package/dist/insights-v2/blocks/ChartBlocks/StepChartBlock/StepChartBlock.es.js +15 -0
  120. package/dist/insights-v2/blocks/ChartBlocks/StepChartBlock/StepChartBlock.es.js.map +1 -0
  121. package/dist/insights-v2/blocks/ChartBlocks/StepChartBlock/index.d.ts +9 -0
  122. package/dist/insights-v2/blocks/ChartBlocks/StepChartBlock/index.es.js +13 -0
  123. package/dist/insights-v2/blocks/ChartBlocks/StepChartBlock/index.es.js.map +1 -0
  124. package/dist/insights-v2/blocks/ChartBlocks/StepChartBlock/utils.d.ts +19 -0
  125. package/dist/insights-v2/blocks/ChartBlocks/StepChartBlock/utils.es.js +27 -0
  126. package/dist/insights-v2/blocks/ChartBlocks/StepChartBlock/utils.es.js.map +1 -0
  127. package/dist/insights-v2/blocks/ChartBlocks/StepChartBlock/variants/WithText.d.ts +5 -0
  128. package/dist/insights-v2/blocks/ChartBlocks/StepChartBlock/variants/WithText.es.js +78 -0
  129. package/dist/insights-v2/blocks/ChartBlocks/StepChartBlock/variants/WithText.es.js.map +1 -0
  130. package/dist/insights-v2/blocks/ChartBlocks/StepChartBlock/variants/WithoutText.d.ts +5 -0
  131. package/dist/insights-v2/blocks/ChartBlocks/StepChartBlock/variants/WithoutText.es.js +81 -0
  132. package/dist/insights-v2/blocks/ChartBlocks/StepChartBlock/variants/WithoutText.es.js.map +1 -0
  133. package/dist/insights-v2/blocks/ChartBlocks/index.d.ts +5 -0
  134. package/dist/insights-v2/blocks/ComponentBlocks/AccountBlock/AccountBlock.d.ts +4 -0
  135. package/dist/insights-v2/blocks/ComponentBlocks/AccountBlock/AccountBlock.es.js +200 -0
  136. package/dist/insights-v2/blocks/ComponentBlocks/AccountBlock/AccountBlock.es.js.map +1 -0
  137. package/dist/insights-v2/blocks/ComponentBlocks/AccountBlock/HeaderComponent.d.ts +5 -0
  138. package/dist/insights-v2/blocks/ComponentBlocks/AccountBlock/HeaderComponent.es.js +26 -0
  139. package/dist/insights-v2/blocks/ComponentBlocks/AccountBlock/HeaderComponent.es.js.map +1 -0
  140. package/dist/insights-v2/blocks/ComponentBlocks/AccountBlock/IconComponent.d.ts +7 -0
  141. package/dist/insights-v2/blocks/ComponentBlocks/AccountBlock/IconComponent.es.js +64 -0
  142. package/dist/insights-v2/blocks/ComponentBlocks/AccountBlock/IconComponent.es.js.map +1 -0
  143. package/dist/insights-v2/blocks/ComponentBlocks/AccountBlock/index.d.ts +1 -0
  144. package/dist/insights-v2/blocks/ComponentBlocks/AccountBlock/layout.d.ts +32 -0
  145. package/dist/insights-v2/blocks/ComponentBlocks/AccountBlock/layout.es.js +100 -0
  146. package/dist/insights-v2/blocks/ComponentBlocks/AccountBlock/layout.es.js.map +1 -0
  147. package/dist/insights-v2/blocks/ComponentBlocks/ActionBlock/ActionBlockLayer.d.ts +8 -0
  148. package/dist/insights-v2/blocks/ComponentBlocks/ActionBlock/ActionBlockLayer.es.js +41 -0
  149. package/dist/insights-v2/blocks/ComponentBlocks/ActionBlock/ActionBlockLayer.es.js.map +1 -0
  150. package/dist/insights-v2/blocks/ComponentBlocks/ActionBlock/PlaceholderActionBlock.d.ts +4 -0
  151. package/dist/insights-v2/blocks/ComponentBlocks/ActionBlock/PlaceholderActionBlock.es.js +32 -0
  152. package/dist/insights-v2/blocks/ComponentBlocks/ActionBlock/PlaceholderActionBlock.es.js.map +1 -0
  153. package/dist/insights-v2/blocks/ComponentBlocks/BudgetBlock/BudgetBlock.d.ts +3 -0
  154. package/dist/insights-v2/blocks/ComponentBlocks/BudgetBlock/BudgetBlock.es.js +50 -0
  155. package/dist/insights-v2/blocks/ComponentBlocks/BudgetBlock/BudgetBlock.es.js.map +1 -0
  156. package/dist/insights-v2/blocks/ComponentBlocks/BudgetBlock/index.d.ts +1 -0
  157. package/dist/insights-v2/blocks/ComponentBlocks/BudgetBlock/util.d.ts +7 -0
  158. package/dist/insights-v2/blocks/ComponentBlocks/BudgetBlock/util.es.js +12 -0
  159. package/dist/insights-v2/blocks/ComponentBlocks/BudgetBlock/util.es.js.map +1 -0
  160. package/dist/insights-v2/blocks/ComponentBlocks/index.d.ts +2 -0
  161. package/dist/insights-v2/blocks/ImageBlocks/ImageBlock.d.ts +4 -0
  162. package/dist/insights-v2/blocks/ImageBlocks/ImageBlock.es.js +35 -0
  163. package/dist/insights-v2/blocks/ImageBlocks/ImageBlock.es.js.map +1 -0
  164. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/SVGImageBlock.d.ts +3 -0
  165. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/SVGImageBlock.es.js +20 -0
  166. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/SVGImageBlock.es.js.map +1 -0
  167. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/images/DesignateEmergencySavingsAccount.es.js +296 -0
  168. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/images/DesignateEmergencySavingsAccount.es.js.map +1 -0
  169. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/images/FederalBankHoliday.es.js +449 -0
  170. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/images/FederalBankHoliday.es.js.map +1 -0
  171. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/images/FederalBankHolidayCibc.es.js +89 -0
  172. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/images/FederalBankHolidayCibc.es.js.map +1 -0
  173. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/images/UpcomingTaxDeadlineAlert.es.js +235 -0
  174. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/images/UpcomingTaxDeadlineAlert.es.js.map +1 -0
  175. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/images/UpcomingTaxDeadlineAlertCIBC.es.js +57 -0
  176. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/images/UpcomingTaxDeadlineAlertCIBC.es.js.map +1 -0
  177. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/index.d.ts +1 -0
  178. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/layout.d.ts +7 -0
  179. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/layout.es.js +15 -0
  180. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/layout.es.js.map +1 -0
  181. package/dist/insights-v2/blocks/ImageBlocks/index.d.ts +2 -0
  182. package/dist/insights-v2/blocks/index.d.ts +4 -0
  183. package/dist/insights-v2/blocks/types.d.ts +8 -0
  184. package/dist/insights-v2/components/AccountHeroCard.d.ts +35 -0
  185. package/dist/insights-v2/components/AccountHeroCard.es.js +91 -0
  186. package/dist/insights-v2/components/AccountHeroCard.es.js.map +1 -0
  187. package/dist/insights-v2/components/AmountPill.d.ts +16 -0
  188. package/dist/insights-v2/components/AmountPill.es.js +25 -0
  189. package/dist/insights-v2/components/AmountPill.es.js.map +1 -0
  190. package/dist/insights-v2/components/BaseLayout.d.ts +6 -0
  191. package/dist/insights-v2/components/BaseLayout.es.js +77 -0
  192. package/dist/insights-v2/components/BaseLayout.es.js.map +1 -0
  193. package/dist/insights-v2/components/ComponentBlocks/DepositLogo.d.ts +22 -0
  194. package/dist/insights-v2/components/ComponentBlocks/DepositLogo.es.js +33 -0
  195. package/dist/insights-v2/components/ComponentBlocks/DepositLogo.es.js.map +1 -0
  196. package/dist/insights-v2/components/ComponentBlocks/StatusIndicator.d.ts +14 -0
  197. package/dist/insights-v2/components/ComponentBlocks/StatusIndicator.es.js +65 -0
  198. package/dist/insights-v2/components/ComponentBlocks/StatusIndicator.es.js.map +1 -0
  199. package/dist/insights-v2/components/DesignateEmergencySavingsCard.d.ts +33 -0
  200. package/dist/insights-v2/components/DesignateEmergencySavingsCard.es.js +78 -0
  201. package/dist/insights-v2/components/DesignateEmergencySavingsCard.es.js.map +1 -0
  202. package/dist/insights-v2/components/Footer.d.ts +9 -0
  203. package/dist/insights-v2/components/Footer.es.js +25 -0
  204. package/dist/insights-v2/components/Footer.es.js.map +1 -0
  205. package/dist/insights-v2/components/Header.d.ts +8 -0
  206. package/dist/insights-v2/components/Header.es.js +41 -0
  207. package/dist/insights-v2/components/Header.es.js.map +1 -0
  208. package/dist/insights-v2/components/InsightTransactionRow.d.ts +23 -0
  209. package/dist/insights-v2/components/InsightTransactionRow.es.js +52 -0
  210. package/dist/insights-v2/components/InsightTransactionRow.es.js.map +1 -0
  211. package/dist/insights-v2/components/LogoClusterCard.d.ts +40 -0
  212. package/dist/insights-v2/components/LogoClusterCard.es.js +104 -0
  213. package/dist/insights-v2/components/LogoClusterCard.es.js.map +1 -0
  214. package/dist/insights-v2/components/LogoTile.d.ts +31 -0
  215. package/dist/insights-v2/components/LogoTile.es.js +34 -0
  216. package/dist/insights-v2/components/LogoTile.es.js.map +1 -0
  217. package/dist/insights-v2/components/MerchantHighlightCard.d.ts +34 -0
  218. package/dist/insights-v2/components/MerchantHighlightCard.es.js +64 -0
  219. package/dist/insights-v2/components/MerchantHighlightCard.es.js.map +1 -0
  220. package/dist/insights-v2/components/P2PLogoStack.d.ts +32 -0
  221. package/dist/insights-v2/components/P2PLogoStack.es.js +55 -0
  222. package/dist/insights-v2/components/P2PLogoStack.es.js.map +1 -0
  223. package/dist/insights-v2/components/SaveAnExtraCard.d.ts +27 -0
  224. package/dist/insights-v2/components/SaveAnExtraCard.es.js +57 -0
  225. package/dist/insights-v2/components/SaveAnExtraCard.es.js.map +1 -0
  226. package/dist/insights-v2/components/SavingsOpportunityCard.d.ts +18 -0
  227. package/dist/insights-v2/components/SavingsOpportunityCard.es.js +71 -0
  228. package/dist/insights-v2/components/SavingsOpportunityCard.es.js.map +1 -0
  229. package/dist/insights-v2/components/StatusMessageCard.d.ts +28 -0
  230. package/dist/insights-v2/components/StatusMessageCard.es.js +45 -0
  231. package/dist/insights-v2/components/StatusMessageCard.es.js.map +1 -0
  232. package/dist/insights-v2/components/StatusPill.d.ts +26 -0
  233. package/dist/insights-v2/components/StatusPill.es.js +30 -0
  234. package/dist/insights-v2/components/StatusPill.es.js.map +1 -0
  235. package/dist/insights-v2/components/SubHeader.d.ts +6 -0
  236. package/dist/insights-v2/components/SubHeader.es.js +40 -0
  237. package/dist/insights-v2/components/SubHeader.es.js.map +1 -0
  238. package/dist/insights-v2/components/SubscriptionHeroCard.d.ts +27 -0
  239. package/dist/insights-v2/components/SubscriptionHeroCard.es.js +63 -0
  240. package/dist/insights-v2/components/SubscriptionHeroCard.es.js.map +1 -0
  241. package/dist/insights-v2/components/TransactionListCard.d.ts +45 -0
  242. package/dist/insights-v2/components/TransactionListCard.es.js +118 -0
  243. package/dist/insights-v2/components/TransactionListCard.es.js.map +1 -0
  244. package/dist/insights-v2/components/TransferLogoCard.d.ts +44 -0
  245. package/dist/insights-v2/components/TransferLogoCard.es.js +121 -0
  246. package/dist/insights-v2/components/TransferLogoCard.es.js.map +1 -0
  247. package/dist/insights-v2/components/UpcomingBillCard.d.ts +41 -0
  248. package/dist/insights-v2/components/UpcomingBillCard.es.js +99 -0
  249. package/dist/insights-v2/components/UpcomingBillCard.es.js.map +1 -0
  250. package/dist/insights-v2/components/celebrationGradients.d.ts +19 -0
  251. package/dist/insights-v2/components/celebrationGradients.es.js +7 -0
  252. package/dist/insights-v2/components/celebrationGradients.es.js.map +1 -0
  253. package/dist/insights-v2/components/chartblocks/BarchartV2.d.ts +2 -0
  254. package/dist/insights-v2/components/chartblocks/BarchartV2.es.js +148 -0
  255. package/dist/insights-v2/components/chartblocks/BarchartV2.es.js.map +1 -0
  256. package/dist/insights-v2/components/chartblocks/EmptyBarChart.d.ts +1 -0
  257. package/dist/insights-v2/components/chartblocks/EmptyBarChart.es.js +14 -0
  258. package/dist/insights-v2/components/chartblocks/EmptyBarChart.es.js.map +1 -0
  259. package/dist/insights-v2/components/chartblocks/ThemedSVGImage.d.ts +2 -0
  260. package/dist/insights-v2/components/chartblocks/ThemedSVGImage.es.js +49 -0
  261. package/dist/insights-v2/components/chartblocks/ThemedSVGImage.es.js.map +1 -0
  262. package/dist/insights-v2/components/logoShadow.d.ts +26 -0
  263. package/dist/insights-v2/components/logoShadow.es.js +12 -0
  264. package/dist/insights-v2/components/logoShadow.es.js.map +1 -0
  265. package/dist/insights-v2/components/shared/Confetti.d.ts +15 -0
  266. package/dist/insights-v2/components/shared/Confetti.es.js +33 -0
  267. package/dist/insights-v2/components/shared/Confetti.es.js.map +1 -0
  268. package/dist/insights-v2/components/shared/images/DesignateEmergencySavings.es.js +338 -0
  269. package/dist/insights-v2/components/shared/images/DesignateEmergencySavings.es.js.map +1 -0
  270. package/dist/insights-v2/components/shared/images/PaidOffCard.es.js +85 -0
  271. package/dist/insights-v2/components/shared/images/PaidOffCard.es.js.map +1 -0
  272. package/dist/insights-v2/components/shared/images/SavingsAccountDeposit.es.js +124 -0
  273. package/dist/insights-v2/components/shared/images/SavingsAccountDeposit.es.js.map +1 -0
  274. package/dist/insights-v2/components/shared/images/SavingsOpportunityLeft.es.js +104 -0
  275. package/dist/insights-v2/components/shared/images/SavingsOpportunityLeft.es.js.map +1 -0
  276. package/dist/insights-v2/components/shared/images/SavingsOpportunityLeftDark.es.js +104 -0
  277. package/dist/insights-v2/components/shared/images/SavingsOpportunityLeftDark.es.js.map +1 -0
  278. package/dist/insights-v2/components/shared/images/SavingsOpportunityPerforation.es.js +38 -0
  279. package/dist/insights-v2/components/shared/images/SavingsOpportunityPerforation.es.js.map +1 -0
  280. package/dist/insights-v2/components/statusTokens.d.ts +12 -0
  281. package/dist/insights-v2/components/statusTokens.es.js +10 -0
  282. package/dist/insights-v2/components/statusTokens.es.js.map +1 -0
  283. package/dist/insights-v2/hooks/useContainerDimensions.d.ts +5 -0
  284. package/dist/insights-v2/hooks/useContainerDimensions.es.js +26 -0
  285. package/dist/insights-v2/hooks/useContainerDimensions.es.js.map +1 -0
  286. package/dist/insights-v2/index.d.ts +18 -0
  287. package/dist/insights-v2/index.es.js +55 -0
  288. package/dist/insights-v2/mappings/blocks.d.ts +14 -0
  289. package/dist/insights-v2/mappings/blocks.es.js +32 -0
  290. package/dist/insights-v2/mappings/blocks.es.js.map +1 -0
  291. package/dist/investments/InvestmentsWidget.es.js +10 -10
  292. package/dist/investments/components/AnalysisDetails.es.js +4 -4
  293. package/dist/investments/components/allocation/InvestementAllocationList.es.js +27 -27
  294. package/dist/microinsights/MicroCardTemplate.es.js +4 -4
  295. package/dist/microinsights/carousel/BeatList.es.js +9 -9
  296. package/dist/networth/NetWorthWidget.es.js +6 -6
  297. package/dist/networth/components/AssetsLiabilitiesDetail.es.js +2 -2
  298. package/dist/networth/components/GainsLossesDetail.es.js +13 -13
  299. package/dist/notifications/components/NotificationDrawer.es.js +5 -5
  300. package/dist/notifications/components/NotificationList.es.js +13 -13
  301. package/dist/recurringtransactions/components/MicroWidgetContent.es.js +13 -13
  302. package/dist/recurringtransactions/components/RecurrenceRow.es.js +6 -6
  303. package/dist/recurringtransactions/components/RecurringStatus.es.js +4 -4
  304. package/dist/recurringtransactions/components/RecurringTransactionDetails.es.js +19 -19
  305. package/dist/recurringtransactions/components/actions/PaymentScheduleAction.es.js +9 -9
  306. package/dist/recurringtransactions/components/recurrencecalendar/RecurrenceDay.es.js +5 -5
  307. package/dist/recurringtransactions/components/shared/recurringsettings/AddRecurringTransaction.es.js +25 -25
  308. package/dist/recurringtransactions/components/shared/recurringsettings/ManageIncome.es.js +5 -5
  309. package/dist/settings/components/notifications/NotificationSettings.es.js +12 -12
  310. package/dist/settings/components/profile/ProfileTab.es.js +20 -20
  311. package/dist/trends/TrendsWidget.es.js +25 -25
  312. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"BudgetDetailsDrawer.es.js","names":[],"sources":["../../../src/budgets/components/BudgetDetailsDrawer.tsx"],"sourcesContent":["import React from 'react'\n\nimport { observer } from 'mobx-react-lite'\n\nimport Alert from '@mui/material/Alert'\nimport Snackbar from '@mui/material/Snackbar'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport {\n Dialog,\n Drawer,\n useBudgetsStore,\n useGlobalCopyStore,\n useGlobalUiStore,\n useTransactionStore,\n} from '../../common'\nimport { type Budget, type Transaction } from '../../core'\n\nimport { BudgetDetails } from './budgetdetails/BudgetDetails'\nimport { BudgetAmount } from './shared/BudgetAmount'\nimport { buildDynamicCopy } from '../../core/utils/Localization'\n\nexport const BudgetDetailsDrawer = observer(() => {\n const { selectedAccountGuids } = useGlobalUiStore()\n const { budgets: copy, common: commonCopy } = useGlobalCopyStore()\n const {\n alert,\n dateRange,\n deleteBudget,\n selectedBudget,\n selectedSubBudget,\n setAlert,\n setSelectedBudget,\n updateBudget,\n } = useBudgetsStore()\n const { setFilter } = useTransactionStore()\n\n const [isOpen, setIsOpen] = React.useState(false)\n const [isEditOpen, setIsEditOpen] = React.useState(false)\n const [isDeleteOpen, setIsDeleteOpen] = React.useState(false)\n const [amount, setAmount] = React.useState(``)\n const [subBudgetAmounts, setSubBudgetAmounts] = React.useState<Record<string, string>>({})\n\n React.useEffect(() => {\n if (selectedBudget && !selectedSubBudget) {\n setAmount(`${selectedBudget.amount}`)\n const initialSubAmounts: Record<string, string> = {}\n selectedBudget.subBudgets.forEach((sb) => {\n initialSubAmounts[sb.guid] = `${sb.amount}`\n })\n setSubBudgetAmounts(initialSubAmounts)\n setIsOpen(true)\n setFilter({\n accounts: selectedAccountGuids,\n dateRange: dateRange,\n custom: (t: Transaction) =>\n t.category_guid === selectedBudget.category_guid ||\n t.top_level_category_guid === selectedBudget.category_guid,\n showSplits: true,\n })\n }\n }, [selectedBudget])\n\n const handleSubBudgetAmountChanged = (guid: string, newAmount: string) => {\n setSubBudgetAmounts((prev) => {\n const updated = { ...prev, [guid]: newAmount }\n const newTotal = selectedBudget?.subBudgets.reduce(\n (sum, sb) => sum + (Number(updated[sb.guid]) || 0),\n 0,\n )\n setAmount(`${newTotal ?? 0}`)\n return updated\n })\n }\n\n const handleUpdateBudget = async () => {\n if (selectedBudget) {\n if (selectedBudget.subBudgets.length > 0) {\n const updatePromises = selectedBudget.subBudgets.map((subBudget) => {\n const newAmount = Number(subBudgetAmounts[subBudget.guid] ?? subBudget.amount)\n return updateBudget({\n ...subBudget,\n amount: newAmount,\n percentage: (subBudget.category.currentAmount / (newAmount || 1)) * 100,\n } as Budget)\n })\n await Promise.all(updatePromises)\n } else {\n await updateBudget({\n ...selectedBudget,\n amount: Number(amount),\n percentage: (selectedBudget.category.totalAmount / (Number(amount) || 1)) * 100,\n } as Budget)\n }\n setIsEditOpen(false)\n setAlert(buildDynamicCopy(copy.alert_budget_updated, selectedBudget.category.name) as string)\n }\n }\n\n const handleDeleteBudget = async () => {\n if (selectedBudget) {\n await deleteBudget(selectedBudget.guid)\n setAlert(buildDynamicCopy(copy.alert_budget_deleted, selectedBudget.category.name) as string)\n }\n handleClose()\n }\n\n const handleClose = () => {\n setIsOpen(false)\n // Wait for the close animation before set the selected budget\n setTimeout(() => {\n setSelectedBudget(undefined)\n }, 250)\n }\n\n const handleEditClose = () => {\n setIsEditOpen(false)\n setAmount(`${selectedBudget?.amount}`)\n const initialSubAmounts: Record<string, string> = {}\n selectedBudget?.subBudgets.forEach((sb) => {\n initialSubAmounts[sb.guid] = `${sb.amount}`\n })\n setSubBudgetAmounts(initialSubAmounts)\n }\n\n if (!selectedBudget) {\n return undefined\n }\n\n const hasSubBudgets = selectedBudget.subBudgets.length > 0\n const isParentInvalid = amount === '' || Number(amount) < 0 || isNaN(Number(amount))\n const isSubBudgetInvalid =\n hasSubBudgets &&\n selectedBudget.subBudgets.some((sb) => {\n const val = subBudgetAmounts[sb.guid]\n return val === undefined || val === '' || Number(val) < 0 || isNaN(Number(val))\n })\n const disablePrimaryButton = hasSubBudgets ? isSubBudgetInvalid : isParentInvalid\n\n return (\n <React.Fragment>\n <Drawer\n ariaLabelClose={commonCopy.close_aria}\n isOpen={isOpen}\n onClose={handleClose}\n onPrimaryAction={() => setIsEditOpen(true)}\n onSecondaryAction={() => setIsDeleteOpen(true)}\n primaryText={copy.details_edit_button}\n secondaryColor=\"error\"\n secondaryText={copy.details_delete_button}\n title={copy.details_title}\n >\n <BudgetDetails budget={selectedBudget} />\n <Snackbar\n anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}\n autoHideDuration={3500}\n onClose={() => setAlert('')}\n open={Boolean(alert)}\n >\n <Alert closeText=\"\" onClose={() => setAlert('')} severity={'success'} variant=\"filled\">\n {alert}\n </Alert>\n </Snackbar>\n </Drawer>\n\n <Dialog\n copy={{ close_aria: commonCopy.close_aria, title: copy.details_edit_title }}\n disablePrimaryButton={disablePrimaryButton}\n isOpen={isEditOpen}\n onClose={handleEditClose}\n onPrimaryAction={handleUpdateBudget}\n onSecondaryAction={handleEditClose}\n primaryText={copy.edit_save_button}\n >\n <BudgetAmount\n amount={amount}\n categoryName={selectedBudget.category.name}\n onAmountChanged={setAmount}\n onSubBudgetAmountChanged={handleSubBudgetAmountChanged}\n originalAmount={selectedBudget.amount}\n subBudgetAmounts={subBudgetAmounts}\n subBudgets={selectedBudget.subBudgets}\n />\n </Dialog>\n\n <Dialog\n copy={{ close_aria: commonCopy.close_aria, title: copy.delete_title }}\n isOpen={isDeleteOpen}\n onClose={() => setIsDeleteOpen(false)}\n onPrimaryAction={handleDeleteBudget}\n primaryColor=\"error\"\n primaryText={copy.details_delete_button}\n secondaryColor=\"secondary\"\n >\n <Text variant=\"subtitle1\">\n {buildDynamicCopy(copy.delete_description, selectedBudget.category.name) as string}\n </Text>\n </Dialog>\n </React.Fragment>\n )\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"BudgetDetailsDrawer.es.js","names":[],"sources":["../../../src/budgets/components/BudgetDetailsDrawer.tsx"],"sourcesContent":["import React from 'react'\n\nimport { observer } from 'mobx-react-lite'\n\nimport Alert from '@mui/material/Alert'\nimport Snackbar from '@mui/material/Snackbar'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport {\n Dialog,\n Drawer,\n useBudgetsStore,\n useGlobalCopyStore,\n useGlobalUiStore,\n useTransactionStore,\n} from '../../common'\nimport { type Budget, type Transaction } from '../../core'\n\nimport { BudgetDetails } from './budgetdetails/BudgetDetails'\nimport { BudgetAmount } from './shared/BudgetAmount'\nimport { buildDynamicCopy } from '../../core/utils/Localization'\n\nexport const BudgetDetailsDrawer = observer(() => {\n const { selectedAccountGuids } = useGlobalUiStore()\n const { budgets: copy, common: commonCopy } = useGlobalCopyStore()\n const {\n alert,\n dateRange,\n deleteBudget,\n selectedBudget,\n selectedSubBudget,\n setAlert,\n setSelectedBudget,\n updateBudget,\n } = useBudgetsStore()\n const { setFilter } = useTransactionStore()\n\n const [isOpen, setIsOpen] = React.useState(false)\n const [isEditOpen, setIsEditOpen] = React.useState(false)\n const [isDeleteOpen, setIsDeleteOpen] = React.useState(false)\n const [amount, setAmount] = React.useState(``)\n\n React.useEffect(() => {\n if (selectedBudget && !selectedSubBudget) {\n setAmount(`${selectedBudget.amount}`)\n setIsOpen(true)\n setFilter({\n accounts: selectedAccountGuids,\n dateRange: dateRange,\n custom: (t: Transaction) =>\n t.category_guid === selectedBudget.category_guid ||\n t.top_level_category_guid === selectedBudget.category_guid,\n showSplits: true,\n })\n }\n }, [selectedBudget])\n\n const handleUpdateBudget = async () => {\n if (selectedBudget) {\n await updateBudget({\n ...selectedBudget,\n amount: Number(amount),\n percentage: (selectedBudget.category.totalAmount / Number(amount)) * 100,\n } as Budget)\n setIsEditOpen(false)\n setAlert(buildDynamicCopy(copy.alert_budget_updated, selectedBudget.category.name) as string)\n }\n }\n\n const handleDeleteBudget = async () => {\n if (selectedBudget) {\n await deleteBudget(selectedBudget.guid)\n setAlert(buildDynamicCopy(copy.alert_budget_deleted, selectedBudget.category.name) as string)\n }\n handleClose()\n }\n\n const handleClose = () => {\n setIsOpen(false)\n // Wait for the close animation before set the selected budget\n setTimeout(() => {\n setSelectedBudget(undefined)\n }, 250)\n }\n\n const handleEditClose = () => {\n setIsEditOpen(false)\n setAmount(`${selectedBudget?.amount}`)\n }\n\n if (!selectedBudget) {\n return undefined\n }\n\n return (\n <React.Fragment>\n <Drawer\n ariaLabelClose={commonCopy.close_aria}\n isOpen={isOpen}\n onClose={handleClose}\n onPrimaryAction={() => setIsEditOpen(true)}\n onSecondaryAction={() => setIsDeleteOpen(true)}\n primaryText={copy.details_edit_button}\n secondaryColor=\"error\"\n secondaryText={copy.details_delete_button}\n title={copy.details_title}\n >\n <BudgetDetails budget={selectedBudget} />\n <Snackbar\n anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}\n autoHideDuration={3500}\n onClose={() => setAlert('')}\n open={Boolean(alert)}\n >\n <Alert closeText=\"\" onClose={() => setAlert('')} severity={'success'} variant=\"filled\">\n {alert}\n </Alert>\n </Snackbar>\n </Drawer>\n\n <Dialog\n copy={{ close_aria: commonCopy.close_aria, title: copy.details_edit_title }}\n disablePrimaryButton={Number(amount) <= 0}\n isOpen={isEditOpen}\n onClose={handleEditClose}\n onPrimaryAction={handleUpdateBudget}\n onSecondaryAction={handleEditClose}\n primaryText={copy.edit_save_button}\n >\n <BudgetAmount\n amount={amount}\n categoryName={selectedBudget.category.name}\n onAmountChanged={setAmount}\n />\n </Dialog>\n\n <Dialog\n copy={{ close_aria: commonCopy.close_aria, title: copy.delete_title }}\n isOpen={isDeleteOpen}\n onClose={() => setIsDeleteOpen(false)}\n onPrimaryAction={handleDeleteBudget}\n primaryColor=\"error\"\n primaryText={copy.details_delete_button}\n secondaryColor=\"secondary\"\n >\n <Text variant=\"subtitle1\">\n {buildDynamicCopy(copy.delete_description, selectedBudget.category.name) as string}\n </Text>\n </Dialog>\n </React.Fragment>\n )\n})\n"],"mappings":"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"}
@@ -4,10 +4,10 @@ import E from "../../common/components/Loader.es.js";
4
4
  import { EmptyState as u } from "../../common/components/EmptyState.es.js";
5
5
  import a from "react";
6
6
  import { Fragment as j, jsx as s } from "react/jsx-runtime";
7
- var P = ({ isMiniWidget: o = !1, onConnectAccountsClick: m, createBudgetOnClick: n }) => {
8
- const { config: h } = B(), { recalculateBudgets: g } = x(), { spendCategories: d } = v(), { budgets: t } = z(), { availableWidth: b } = A(), { isMobile: l } = D(b), r = o && l, [p, i] = a.useState(!1), [y, f] = a.useState(!1), [w, c] = a.useState(!1), C = a.useMemo(() => [...d.filter((e) => e.totalAverageAmount > 0)], [d]), _ = async () => {
7
+ var P = ({ isMiniWidget: o = !1, onConnectAccountsClick: _, createBudgetOnClick: n }) => {
8
+ const { config: g } = B(), { recalculateBudgets: h } = x(), { spendCategories: d } = v(), { budgets: t } = z(), { availableWidth: b } = A(), { isMobile: l } = D(b), r = o && l, [p, i] = a.useState(!1), [y, f] = a.useState(!1), [w, c] = a.useState(!1), C = a.useMemo(() => [...d.filter((e) => e.totalAverageAmount > 0)], [d]), m = async () => {
9
9
  c(!0);
10
- const { data: e, isSuccess: S } = await g(C);
10
+ const { data: e, isSuccess: S } = await h(C);
11
11
  c(!1), S ? (e.length === 0 && f(!0), i(!1)) : i(!0);
12
12
  };
13
13
  return w ? /* @__PURE__ */ s(E, {}) : p ? /* @__PURE__ */ s(u, {
@@ -15,7 +15,7 @@ var P = ({ isMiniWidget: o = !1, onConnectAccountsClick: m, createBudgetOnClick:
15
15
  icon: "error",
16
16
  iconColor: "#4D4D4D",
17
17
  onClick: (e) => {
18
- e === "primary" ? _() : n();
18
+ e === "primary" ? m() : n();
19
19
  },
20
20
  primaryButton: t.autogenerate_budgets_error_primary_button,
21
21
  secondaryButton: t.zero_state_generate_budgets_secondary_button,
@@ -43,9 +43,9 @@ var P = ({ isMiniWidget: o = !1, onConnectAccountsClick: m, createBudgetOnClick:
43
43
  icon: "error",
44
44
  iconColor: "#4D4D4D",
45
45
  onClick: (e) => {
46
- e === "primary" ? m() : n();
46
+ e === "primary" ? _() : n();
47
47
  },
48
- primaryButton: h.show_connections_widget_in_master ? t.zero_state_generate_budgets_primary_button : void 0,
48
+ primaryButton: g.show_connections_widget_in_master ? t.zero_state_generate_budgets_primary_button : void 0,
49
49
  secondaryButton: t.zero_state_generate_budgets_secondary_button,
50
50
  subText: t.zero_state_generate_budgets_subheader,
51
51
  sx: {
@@ -74,7 +74,7 @@ var P = ({ isMiniWidget: o = !1, onConnectAccountsClick: m, createBudgetOnClick:
74
74
  icon: "bubble_chart",
75
75
  iconColor: "#1A1A1A",
76
76
  onClick: (e) => {
77
- e === "primary" ? _() : n();
77
+ e === "primary" ? m() : n();
78
78
  },
79
79
  primaryButton: t.empty_state_primary_button,
80
80
  secondaryButton: o ? void 0 : t.empty_state_secondary_button,
@@ -1,61 +1,60 @@
1
- import { useBudgetsStore as O, useCategoryStore as w, useGlobalCopyStore as D } from "../../../common/context/hooks.es.js";
2
- import L from "../../../common/components/dialog/Dialog.es.js";
3
- import N from "../../../common/components/drawer/Drawer.es.js";
4
- import { findDetailedCategory as j, findDetailedSubCategory as k } from "../../../core/utils/CategoryUtil.es.js";
5
- import { useCategoryUiStore as G } from "../../../categories/context/hooks.es.js";
6
- import P from "../../../categories/components/CategoryRow.es.js";
7
- import { BudgetAmount as T } from "../shared/BudgetAmount.es.js";
1
+ import { useBudgetsStore as v, useGlobalCopyStore as I } from "../../../common/context/hooks.es.js";
2
+ import O from "../../../common/components/dialog/Dialog.es.js";
3
+ import w from "../../../common/components/drawer/Drawer.es.js";
4
+ import { useCategoryUiStore as L } from "../../../categories/context/hooks.es.js";
5
+ import N from "../../../categories/components/CategoryRow.es.js";
6
+ import { BudgetAmount as j } from "../shared/BudgetAmount.es.js";
8
7
  import t from "react";
9
- import { observer as z } from "mobx-react-lite";
10
- import b from "@mui/material/Stack";
11
- import { Icon as y, Text as E } from "@mxenabled/mxui";
8
+ import { observer as k } from "mobx-react-lite";
9
+ import p from "@mui/material/Stack";
10
+ import { Icon as f, Text as D } from "@mxenabled/mxui";
12
11
  import { jsx as e, jsxs as m } from "react/jsx-runtime";
13
- import R from "@mui/material/Box";
14
- import $ from "@mui/material/Divider";
15
- import U from "@mui/material/List";
16
- import q from "@mui/material/ListItem";
17
- import F from "@mui/material/ListItemButton";
18
- import H from "@mui/material/ListItemText";
19
- var me = z(({ category: u, parentBudget: C }) => {
20
- const { budgets: o, common: l } = D(), { setExpandedGuid: h, setOnSelect: _ } = G(), { addBudget: S } = O(), { detailedCategories: c } = w(), [x, a] = t.useState(!1), [A, n] = t.useState(!1), [r, g] = t.useState(""), [d, p] = t.useState(void 0), i = j(c, u.guid) || u;
12
+ import G from "@mui/material/Box";
13
+ import P from "@mui/material/Divider";
14
+ import T from "@mui/material/List";
15
+ import z from "@mui/material/ListItem";
16
+ import E from "@mui/material/ListItemButton";
17
+ import R from "@mui/material/ListItemText";
18
+ var re = k(({ category: o, parentBudget: g }) => {
19
+ const { budgets: r, common: u } = I(), { setExpandedGuid: b, setOnSelect: h } = L(), { addBudget: y } = v(), [C, n] = t.useState(!1), [_, a] = t.useState(!1), [i, l] = t.useState(""), [d, c] = t.useState(void 0);
21
20
  t.useEffect(() => {
22
- _((f) => {
23
- const s = i.subCategories.find((I) => I.guid === f) || k(c, f);
24
- s && (p(s), g(`${s.currentAmount === 0 ? "" : s.currentAmount}`), n(!0));
21
+ h((A) => {
22
+ const s = o.subCategories.find((B) => B.guid === A);
23
+ s && (c(s), l(`${s.currentAmount === 0 ? "" : s.currentAmount}`), a(!0));
25
24
  });
26
- });
27
- const B = () => {
28
- h(i.guid), a(!0);
29
- }, v = async () => {
30
- d && Number(r) > 0 && (await S(d, Number(r), C.guid), n(!1), a(!1), p(void 0));
25
+ }, []);
26
+ const x = () => {
27
+ b(o.guid), n(!0);
28
+ }, S = async () => {
29
+ d && Number(i) > 0 && (await y(d, Number(i), g.guid), a(!1), n(!1), c(void 0));
31
30
  };
32
- return /* @__PURE__ */ m(R, { children: [
33
- /* @__PURE__ */ e(q, {
31
+ return /* @__PURE__ */ m(G, { children: [
32
+ /* @__PURE__ */ e(z, {
34
33
  disableGutters: !0,
35
34
  disablePadding: !0,
36
35
  sx: { bgcolor: "background.paper" },
37
- children: /* @__PURE__ */ e(F, {
38
- onClick: B,
39
- children: /* @__PURE__ */ e(H, { children: /* @__PURE__ */ m(b, {
36
+ children: /* @__PURE__ */ e(E, {
37
+ onClick: x,
38
+ children: /* @__PURE__ */ e(R, { children: /* @__PURE__ */ m(p, {
40
39
  alignItems: "center",
41
40
  direction: "row",
42
41
  justifyContent: "space-between",
43
- children: [/* @__PURE__ */ m(b, {
42
+ children: [/* @__PURE__ */ m(p, {
44
43
  alignItems: "center",
45
44
  direction: "row",
46
45
  gap: 8,
47
- children: [/* @__PURE__ */ e(y, {
46
+ children: [/* @__PURE__ */ e(f, {
48
47
  fill: !0,
49
48
  name: "add_box",
50
49
  size: 24,
51
50
  sx: { color: "primary.light" }
52
- }), /* @__PURE__ */ e(E, {
51
+ }), /* @__PURE__ */ e(D, {
53
52
  bold: !0,
54
53
  sx: { color: "primary.light" },
55
54
  variant: "body1",
56
- children: o.add_sub_budget_button
55
+ children: r.add_sub_budget_button
57
56
  })]
58
- }), /* @__PURE__ */ e(y, {
57
+ }), /* @__PURE__ */ e(f, {
59
58
  name: "chevron_right",
60
59
  size: 24,
61
60
  sx: { color: "primary.light" }
@@ -63,37 +62,37 @@ var me = z(({ category: u, parentBudget: C }) => {
63
62
  }) })
64
63
  })
65
64
  }),
66
- /* @__PURE__ */ e($, {}),
67
- /* @__PURE__ */ e(N, {
68
- ariaLabelClose: l.close_aria,
69
- isOpen: x,
70
- onClose: () => a(!1),
71
- title: o.add_sub_budget_title,
72
- children: /* @__PURE__ */ e(U, { children: /* @__PURE__ */ e(P, {
73
- category: i,
74
- subCategories: i.subCategories
65
+ /* @__PURE__ */ e(P, {}),
66
+ /* @__PURE__ */ e(w, {
67
+ ariaLabelClose: u.close_aria,
68
+ isOpen: C,
69
+ onClose: () => n(!1),
70
+ title: r.add_sub_budget_title,
71
+ children: /* @__PURE__ */ e(T, { children: /* @__PURE__ */ e(N, {
72
+ category: o,
73
+ subCategories: o.subCategories
75
74
  }) })
76
75
  }),
77
- /* @__PURE__ */ e(L, {
76
+ /* @__PURE__ */ e(O, {
78
77
  copy: {
79
- close_aria: l.close_aria,
80
- title: o.add_title
78
+ close_aria: u.close_aria,
79
+ title: r.add_title
81
80
  },
82
- disablePrimaryButton: Number(r) <= 0,
83
- isOpen: A,
84
- onClose: () => n(!1),
85
- onPrimaryAction: v,
86
- primaryText: o.add_save_button,
87
- children: /* @__PURE__ */ e(T, {
88
- amount: r,
81
+ disablePrimaryButton: Number(i) <= 0,
82
+ isOpen: _,
83
+ onClose: () => a(!1),
84
+ onPrimaryAction: S,
85
+ primaryText: r.add_save_button,
86
+ children: /* @__PURE__ */ e(j, {
87
+ amount: i,
89
88
  categoryName: d?.name || "",
90
- onAmountChanged: g
89
+ onAmountChanged: l
91
90
  })
92
91
  })
93
92
  ] });
94
93
  });
95
94
  export {
96
- me as AddSubBudget
95
+ re as AddSubBudget
97
96
  };
98
97
 
99
98
  //# sourceMappingURL=AddSubBudget.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AddSubBudget.es.js","names":[],"sources":["../../../../src/budgets/components/budgetdetails/AddSubBudget.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Box from '@mui/material/Box'\nimport Divider from '@mui/material/Divider'\nimport List from '@mui/material/List'\nimport ListItem from '@mui/material/ListItem'\nimport ListItemButton from '@mui/material/ListItemButton'\nimport ListItemText from '@mui/material/ListItemText'\nimport Stack from '@mui/material/Stack'\n\nimport { Icon, Text } from '@mxenabled/mxui'\n\nimport {\n Dialog,\n Drawer,\n useBudgetsStore,\n useCategoryStore,\n useGlobalCopyStore,\n} from '../../../common'\nimport { type DetailedBudget, type DetailedCategory } from '../../../core'\nimport { CategoryRow, useCategoryUiStore } from '../../../categories'\nimport { BudgetAmount } from '../shared/BudgetAmount'\nimport { findDetailedCategory, findDetailedSubCategory } from '../../../core/utils/CategoryUtil'\n\ninterface AddSubBudgetProps {\n category: DetailedCategory\n parentBudget: DetailedBudget\n}\n\nexport const AddSubBudget: React.FC<AddSubBudgetProps> = observer(({ category, parentBudget }) => {\n const { budgets: copy, common: commonCopy } = useGlobalCopyStore()\n const { setExpandedGuid, setOnSelect } = useCategoryUiStore()\n const { addBudget } = useBudgetsStore()\n const { detailedCategories } = useCategoryStore()\n\n const [isOpen, setIsOpen] = React.useState(false)\n const [isAddBudgetOpen, setIsAddBudgetOpen] = React.useState(false)\n const [amount, setAmount] = React.useState('')\n const [subCategory, setSubCategory] = React.useState<DetailedCategory | undefined>(undefined)\n\n const currentCategory = findDetailedCategory(detailedCategories, category.guid) || category\n\n React.useEffect(() => {\n setOnSelect((guid: string) => {\n const selected =\n currentCategory.subCategories.find((sc) => sc.guid === guid) ||\n findDetailedSubCategory(detailedCategories, guid)\n if (selected) {\n setSubCategory(selected)\n setAmount(`${selected.currentAmount === 0 ? '' : selected.currentAmount}`)\n setIsAddBudgetOpen(true)\n }\n })\n })\n\n const handleOpen = () => {\n setExpandedGuid(currentCategory.guid)\n setIsOpen(true)\n }\n\n const handleAddSubBudget = async () => {\n if (subCategory && Number(amount) > 0) {\n await addBudget(subCategory, Number(amount), parentBudget.guid)\n setIsAddBudgetOpen(false)\n setIsOpen(false)\n setSubCategory(undefined)\n }\n }\n\n return (\n <Box>\n <ListItem disableGutters={true} disablePadding={true} sx={{ bgcolor: 'background.paper' }}>\n <ListItemButton onClick={handleOpen}>\n <ListItemText>\n <Stack alignItems=\"center\" direction=\"row\" justifyContent=\"space-between\">\n <Stack alignItems=\"center\" direction=\"row\" gap={8}>\n <Icon fill={true} name=\"add_box\" size={24} sx={{ color: 'primary.light' }} />\n <Text bold={true} sx={{ color: 'primary.light' }} variant=\"body1\">\n {copy.add_sub_budget_button}\n </Text>\n </Stack>\n <Icon name=\"chevron_right\" size={24} sx={{ color: 'primary.light' }} />\n </Stack>\n </ListItemText>\n </ListItemButton>\n </ListItem>\n <Divider />\n\n <Drawer\n ariaLabelClose={commonCopy.close_aria}\n isOpen={isOpen}\n onClose={() => setIsOpen(false)}\n title={copy.add_sub_budget_title}\n >\n <List>\n <CategoryRow category={currentCategory} subCategories={currentCategory.subCategories} />\n </List>\n </Drawer>\n\n <Dialog\n copy={{ close_aria: commonCopy.close_aria, title: copy.add_title }}\n disablePrimaryButton={Number(amount) <= 0}\n isOpen={isAddBudgetOpen}\n onClose={() => setIsAddBudgetOpen(false)}\n onPrimaryAction={handleAddSubBudget}\n primaryText={copy.add_save_button}\n >\n <BudgetAmount\n amount={amount}\n categoryName={subCategory?.name || ''}\n onAmountChanged={setAmount}\n />\n </Dialog>\n </Box>\n )\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"AddSubBudget.es.js","names":[],"sources":["../../../../src/budgets/components/budgetdetails/AddSubBudget.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Box from '@mui/material/Box'\nimport Divider from '@mui/material/Divider'\nimport List from '@mui/material/List'\nimport ListItem from '@mui/material/ListItem'\nimport ListItemButton from '@mui/material/ListItemButton'\nimport ListItemText from '@mui/material/ListItemText'\nimport Stack from '@mui/material/Stack'\n\nimport { Icon, Text } from '@mxenabled/mxui'\n\nimport { Dialog, Drawer, useBudgetsStore, useGlobalCopyStore } from '../../../common'\nimport { type DetailedBudget, type DetailedCategory } from '../../../core'\nimport { CategoryRow, useCategoryUiStore } from '../../../categories'\nimport { BudgetAmount } from '../shared/BudgetAmount'\n\ninterface AddSubBudgetProps {\n category: DetailedCategory\n parentBudget: DetailedBudget\n}\n\nexport const AddSubBudget: React.FC<AddSubBudgetProps> = observer(({ category, parentBudget }) => {\n const { budgets: copy, common: commonCopy } = useGlobalCopyStore()\n const { setExpandedGuid, setOnSelect } = useCategoryUiStore()\n const { addBudget } = useBudgetsStore()\n\n const [isOpen, setIsOpen] = React.useState(false)\n const [isAddBudgetOpen, setIsAddBudgetOpen] = React.useState(false)\n const [amount, setAmount] = React.useState('')\n const [subCategory, setSubCategory] = React.useState<DetailedCategory | undefined>(undefined)\n\n React.useEffect(() => {\n setOnSelect((guid: string) => {\n const subCategory = category.subCategories.find((sc) => sc.guid === guid)\n if (subCategory) {\n setSubCategory(subCategory)\n setAmount(`${subCategory.currentAmount === 0 ? '' : subCategory.currentAmount}`)\n setIsAddBudgetOpen(true)\n }\n })\n }, [])\n\n const handleOpen = () => {\n setExpandedGuid(category.guid)\n setIsOpen(true)\n }\n\n const handleAddSubBudget = async () => {\n if (subCategory && Number(amount) > 0) {\n await addBudget(subCategory, Number(amount), parentBudget.guid)\n setIsAddBudgetOpen(false)\n setIsOpen(false)\n setSubCategory(undefined)\n }\n }\n\n return (\n <Box>\n <ListItem disableGutters={true} disablePadding={true} sx={{ bgcolor: 'background.paper' }}>\n <ListItemButton onClick={handleOpen}>\n <ListItemText>\n <Stack alignItems=\"center\" direction=\"row\" justifyContent=\"space-between\">\n <Stack alignItems=\"center\" direction=\"row\" gap={8}>\n <Icon fill={true} name=\"add_box\" size={24} sx={{ color: 'primary.light' }} />\n <Text bold={true} sx={{ color: 'primary.light' }} variant=\"body1\">\n {copy.add_sub_budget_button}\n </Text>\n </Stack>\n <Icon name=\"chevron_right\" size={24} sx={{ color: 'primary.light' }} />\n </Stack>\n </ListItemText>\n </ListItemButton>\n </ListItem>\n <Divider />\n\n <Drawer\n ariaLabelClose={commonCopy.close_aria}\n isOpen={isOpen}\n onClose={() => setIsOpen(false)}\n title={copy.add_sub_budget_title}\n >\n <List>\n <CategoryRow category={category} subCategories={category.subCategories} />\n </List>\n </Drawer>\n\n <Dialog\n copy={{ close_aria: commonCopy.close_aria, title: copy.add_title }}\n disablePrimaryButton={Number(amount) <= 0}\n isOpen={isAddBudgetOpen}\n onClose={() => setIsAddBudgetOpen(false)}\n onPrimaryAction={handleAddSubBudget}\n primaryText={copy.add_save_button}\n >\n <BudgetAmount\n amount={amount}\n categoryName={subCategory?.name || ''}\n onAmountChanged={setAmount}\n />\n </Dialog>\n </Box>\n )\n})\n"],"mappings":";;;;;;;;;;;;;;;;;AAuBA,IAAa,KAA4C,EAAA,CAAU,EAAE,UAAA,GAAU,cAAA,EAAA,MAAmB;AAChG,QAAM,EAAE,SAAS,GAAM,QAAQ,EAAA,IAAe,EAAmB,GAC3D,EAAE,iBAAA,GAAiB,aAAA,EAAA,IAAgB,EAAmB,GACtD,EAAE,WAAA,EAAA,IAAc,EAAgB,GAEhC,CAAC,GAAQ,CAAA,IAAa,EAAM,SAAS,EAAK,GAC1C,CAAC,GAAiB,CAAA,IAAsB,EAAM,SAAS,EAAK,GAC5D,CAAC,GAAQ,CAAA,IAAa,EAAM,SAAS,EAAE,GACvC,CAAC,GAAa,CAAA,IAAkB,EAAM,SAAuC,MAAS;AAE5F,EAAA,EAAM,UAAA,MAAgB;AACpB,IAAA,EAAA,CAAa,MAAiB;AAC5B,YAAM,IAAc,EAAS,cAAc,KAAA,CAAM,MAAO,EAAG,SAAS,CAAI;AACxE,MAAI,MACF,EAAe,CAAW,GAC1B,EAAU,GAAG,EAAY,kBAAkB,IAAI,KAAK,EAAY,aAAA,EAAe,GAC/E,EAAmB,EAAI;AAAA,IAE3B,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AAEL,QAAM,IAAA,MAAmB;AACvB,IAAA,EAAgB,EAAS,IAAI,GAC7B,EAAU,EAAI;AAAA,EAChB,GAEM,IAAqB,YAAY;AACrC,IAAI,KAAe,OAAO,CAAM,IAAI,MAClC,MAAM,EAAU,GAAa,OAAO,CAAM,GAAG,EAAa,IAAI,GAC9D,EAAmB,EAAK,GACxB,EAAU,EAAK,GACf,EAAe,MAAS;AAAA,EAE5B;AAEA,SACE,gBAAA,EAAC,GAAD,EAAA,UAAA;AAAA,IACE,gBAAA,EAAC,GAAD;AAAA,MAAU,gBAAgB;AAAA,MAAM,gBAAgB;AAAA,MAAM,IAAI,EAAE,SAAS,mBAAmB;AAAA,MACtF,UAAA,gBAAA,EAAC,GAAD;AAAA,QAAgB,SAAS;AAAA,QACvB,UAAA,gBAAA,EAAC,GAAD,EAAA,UACE,gBAAA,EAAC,GAAD;AAAA,UAAO,YAAW;AAAA,UAAS,WAAU;AAAA,UAAM,gBAAe;AAAA,UAA1D,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,YAAO,YAAW;AAAA,YAAS,WAAU;AAAA,YAAM,KAAK;AAAA,YAAhD,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,cAAM,MAAM;AAAA,cAAM,MAAK;AAAA,cAAU,MAAM;AAAA,cAAI,IAAI,EAAE,OAAO,gBAAgB;AAAA,YAAI,CAAA,GAC5E,gBAAA,EAAC,GAAD;AAAA,cAAM,MAAM;AAAA,cAAM,IAAI,EAAE,OAAO,gBAAgB;AAAA,cAAG,SAAQ;AAAA,cACvD,UAAA,EAAK;AAAA,YACF,CAAA,CACD;AAAA,UACP,CAAA,GAAA,gBAAA,EAAC,GAAD;AAAA,YAAM,MAAK;AAAA,YAAgB,MAAM;AAAA,YAAI,IAAI,EAAE,OAAO,gBAAgB;AAAA,UAAI,CAAA,CACjE;AAAA,QACK,CAAA,EAAA,CAAA;AAAA,MACA,CAAA;AAAA,IACR,CAAA;AAAA,IACV,gBAAA,EAAC,GAAD,CAAU,CAAA;AAAA,IAEV,gBAAA,EAAC,GAAD;AAAA,MACE,gBAAgB,EAAW;AAAA,MACnB,QAAA;AAAA,MACR,SAAA,MAAe,EAAU,EAAK;AAAA,MAC9B,OAAO,EAAK;AAAA,MAEZ,UAAA,gBAAA,EAAC,GAAD,EAAA,UACE,gBAAA,EAAC,GAAD;AAAA,QAAuB,UAAA;AAAA,QAAU,eAAe,EAAS;AAAA,MAAgB,CAAA,EACrE,CAAA;AAAA,IACA,CAAA;AAAA,IAER,gBAAA,EAAC,GAAD;AAAA,MACE,MAAM;AAAA,QAAE,YAAY,EAAW;AAAA,QAAY,OAAO,EAAK;AAAA,MAAU;AAAA,MACjE,sBAAsB,OAAO,CAAM,KAAK;AAAA,MACxC,QAAQ;AAAA,MACR,SAAA,MAAe,EAAmB,EAAK;AAAA,MACvC,iBAAiB;AAAA,MACjB,aAAa,EAAK;AAAA,MAElB,UAAA,gBAAA,EAAC,GAAD;AAAA,QACU,QAAA;AAAA,QACR,cAAc,GAAa,QAAQ;AAAA,QACnC,iBAAiB;AAAA,MAClB,CAAA;AAAA,IACK,CAAA;AAAA,EACL,EAAA,CAAA;AAET,CAAC"}
@@ -1,82 +1,81 @@
1
1
  import { buildDynamicCopy as D } from "../../../core/utils/Localization.es.js";
2
2
  import { useBudgetsStore as v, useGlobalCopyStore as O, useTransactionStore as T } from "../../../common/context/hooks.es.js";
3
3
  import f from "../../../common/components/dialog/Dialog.es.js";
4
- import N from "../../../common/components/drawer/Drawer.es.js";
5
- import w from "../../../transactions/components/shared/TransactionList.es.js";
6
- import { BudgetAmount as F } from "../shared/BudgetAmount.es.js";
7
- import { Header as L } from "./Header.es.js";
8
- import { SubBudgetZeroState as P } from "../budgetlist/SubBudgetZeroState.es.js";
9
- import { SubBudgetRow as E } from "../budgetlist/SubBudgetRow.es.js";
4
+ import w from "../../../common/components/drawer/Drawer.es.js";
5
+ import F from "../../../transactions/components/shared/TransactionList.es.js";
6
+ import { BudgetAmount as L } from "../shared/BudgetAmount.es.js";
7
+ import { Header as P } from "./Header.es.js";
8
+ import { SubBudgetZeroState as E } from "../budgetlist/SubBudgetZeroState.es.js";
9
+ import { SubBudgetRow as N } from "../budgetlist/SubBudgetRow.es.js";
10
10
  import { AddSubBudget as j } from "./AddSubBudget.es.js";
11
11
  import i from "react";
12
12
  import { observer as k } from "mobx-react-lite";
13
13
  import I from "@mui/material/Stack";
14
14
  import { Text as R } from "@mxenabled/mxui";
15
- import { jsx as t, jsxs as n } from "react/jsx-runtime";
15
+ import { jsx as t, jsxs as a } from "react/jsx-runtime";
16
16
  import $ from "@mui/material/Divider";
17
17
  import G from "@mui/material/List";
18
- var ie = k(({ budget: s }) => {
19
- const { category: _, subBudgets: c } = s, { budgets: o, common: m } = O(), { deleteBudget: b, selectedSubBudget: e, setSelectedSubBudget: h, updateBudget: S } = v(), { filter: u, setFilter: p } = T(), [B, l] = i.useState(!1), [C, d] = i.useState(!1), [a, g] = i.useState("");
18
+ var ie = k(({ budget: n }) => {
19
+ const { category: _, subBudgets: m } = n, { budgets: o, common: s } = O(), { deleteBudget: b, selectedSubBudget: e, setSelectedSubBudget: h, updateBudget: S } = v(), { filter: c, setFilter: u } = T(), [B, p] = i.useState(!1), [C, d] = i.useState(!1), [l, g] = i.useState("");
20
20
  i.useEffect(() => {
21
- e && (g(`${e.amount}`), p({
22
- ...u,
21
+ e && (g(`${e.amount}`), u({
22
+ ...c,
23
23
  custom: (r) => r.category_guid === e.category_guid
24
24
  }));
25
25
  }, [e]);
26
26
  const x = async () => {
27
- e && (await S({
27
+ e && await S({
28
28
  ...e,
29
- amount: Number(a)
30
- }), l(!1));
29
+ amount: Number(l)
30
+ });
31
31
  }, A = async () => {
32
32
  e && await b(e.guid), d(!1), y();
33
33
  }, y = () => {
34
- p({
35
- ...u,
36
- custom: (r) => r.category_guid === s.category_guid || r.top_level_category_guid === s.category_guid
34
+ u({
35
+ ...c,
36
+ custom: (r) => r.category_guid === n.category_guid || r.top_level_category_guid === n.category_guid
37
37
  }), h(void 0);
38
38
  };
39
- return /* @__PURE__ */ n(i.Fragment, { children: [
40
- /* @__PURE__ */ n(G, {
39
+ return /* @__PURE__ */ a(i.Fragment, { children: [
40
+ /* @__PURE__ */ a(G, {
41
41
  sx: { bgcolor: "background.paper" },
42
- children: [c.length === 0 ? /* @__PURE__ */ t(P, {}) : c.map((r) => /* @__PURE__ */ n(i.Fragment, { children: [/* @__PURE__ */ t(E, { budget: r }), /* @__PURE__ */ t($, {})] }, r.guid)), /* @__PURE__ */ t(j, {
42
+ children: [m.length === 0 ? /* @__PURE__ */ t(E, {}) : m.map((r) => /* @__PURE__ */ a(i.Fragment, { children: [/* @__PURE__ */ t(N, { budget: r }), /* @__PURE__ */ t($, {})] }, r.guid)), /* @__PURE__ */ t(j, {
43
43
  category: _,
44
- parentBudget: s
44
+ parentBudget: n
45
45
  })]
46
46
  }),
47
- /* @__PURE__ */ t(N, {
48
- ariaLabelClose: m.close_aria,
47
+ /* @__PURE__ */ t(w, {
48
+ ariaLabelClose: s.close_aria,
49
49
  isOpen: !!e,
50
50
  onClose: y,
51
- onPrimaryAction: () => l(!0),
51
+ onPrimaryAction: () => p(!0),
52
52
  onSecondaryAction: () => d(!0),
53
53
  primaryText: o.details_edit_button,
54
54
  secondaryText: o.details_delete_button,
55
55
  title: o.details_title,
56
- children: e && /* @__PURE__ */ n(I, {
56
+ children: e && /* @__PURE__ */ a(I, {
57
57
  gap: 24,
58
- children: [/* @__PURE__ */ t(L, { budget: e }), /* @__PURE__ */ t(w, { height: "100%" })]
58
+ children: [/* @__PURE__ */ t(P, { budget: e }), /* @__PURE__ */ t(F, { height: "100%" })]
59
59
  })
60
60
  }),
61
- e && /* @__PURE__ */ n(i.Fragment, { children: [/* @__PURE__ */ t(f, {
61
+ e && /* @__PURE__ */ a(i.Fragment, { children: [/* @__PURE__ */ t(f, {
62
62
  copy: {
63
- close_aria: m.close_aria,
63
+ close_aria: s.close_aria,
64
64
  title: o.details_edit_title
65
65
  },
66
- disablePrimaryButton: a === "" || Number(a) < 0 || isNaN(Number(a)),
66
+ disablePrimaryButton: Number(l) <= 0,
67
67
  isOpen: B,
68
- onClose: () => l(!1),
68
+ onClose: () => p(!1),
69
69
  onPrimaryAction: x,
70
70
  primaryText: o.edit_save_button,
71
- children: /* @__PURE__ */ t(F, {
72
- amount: a,
71
+ children: /* @__PURE__ */ t(L, {
72
+ amount: l,
73
73
  categoryName: e.category.name,
74
- onAmountChanged: g,
75
- originalAmount: e.amount
74
+ onAmountChanged: g
76
75
  })
77
76
  }), /* @__PURE__ */ t(f, {
78
77
  copy: {
79
- close_aria: m.close_aria,
78
+ close_aria: s.close_aria,
80
79
  title: o.delete_title
81
80
  },
82
81
  isOpen: C,
@@ -1 +1 @@
1
- {"version":3,"file":"SubBudgetList.es.js","names":[],"sources":["../../../../src/budgets/components/budgetdetails/SubBudgetList.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Divider from '@mui/material/Divider'\nimport List from '@mui/material/List'\nimport Stack from '@mui/material/Stack'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport {\n Dialog,\n Drawer,\n useBudgetsStore,\n useGlobalCopyStore,\n useTransactionStore,\n} from '../../../common'\nimport { type Budget, type DetailedBudget, type Transaction } from '../../../core'\n\nimport { TransactionList } from '../../../transactions'\n\nimport { SubBudgetZeroState } from '../budgetlist/SubBudgetZeroState'\nimport { SubBudgetRow } from '../budgetlist/SubBudgetRow'\nimport { BudgetAmount } from '../shared/BudgetAmount'\nimport { AddSubBudget } from './AddSubBudget'\nimport { Header } from './Header'\nimport { buildDynamicCopy } from '../../../core/utils/Localization'\n\ninterface SubBudgetListProps {\n budget: DetailedBudget\n}\n\nexport const SubBudgetList: React.FC<SubBudgetListProps> = observer(({ budget }) => {\n const { category, subBudgets } = budget\n const { budgets: copy, common: commonCopy } = useGlobalCopyStore()\n const { deleteBudget, selectedSubBudget, setSelectedSubBudget, updateBudget } = useBudgetsStore()\n const { filter, setFilter } = useTransactionStore()\n\n const [isEditOpen, setIsEditOpen] = React.useState(false)\n const [isDeleteOpen, setIsDeleteOpen] = React.useState(false)\n const [amount, setAmount] = React.useState(``)\n\n React.useEffect(() => {\n if (selectedSubBudget) {\n setAmount(`${selectedSubBudget.amount}`)\n setFilter({\n ...filter,\n custom: (t: Transaction) => t.category_guid === selectedSubBudget.category_guid,\n })\n }\n }, [selectedSubBudget])\n\n const handleUpdateBudget = async () => {\n if (selectedSubBudget) {\n await updateBudget({\n ...selectedSubBudget,\n amount: Number(amount),\n } as Budget)\n setIsEditOpen(false)\n }\n }\n\n const handleDeleteBudget = async () => {\n if (selectedSubBudget) {\n await deleteBudget(selectedSubBudget.guid)\n }\n setIsDeleteOpen(false)\n handleClose()\n }\n\n const handleClose = () => {\n setFilter({\n ...filter,\n custom: (t: Transaction) =>\n t.category_guid === budget.category_guid ||\n t.top_level_category_guid === budget.category_guid,\n })\n setSelectedSubBudget(undefined)\n }\n\n return (\n <React.Fragment>\n <List sx={{ bgcolor: 'background.paper' }}>\n {subBudgets.length === 0 ? (\n <SubBudgetZeroState />\n ) : (\n subBudgets.map((subBudget) => (\n <React.Fragment key={subBudget.guid}>\n <SubBudgetRow budget={subBudget} />\n <Divider />\n </React.Fragment>\n ))\n )}\n <AddSubBudget category={category} parentBudget={budget} />\n </List>\n <Drawer\n ariaLabelClose={commonCopy.close_aria}\n isOpen={Boolean(selectedSubBudget)}\n onClose={handleClose}\n onPrimaryAction={() => setIsEditOpen(true)}\n onSecondaryAction={() => setIsDeleteOpen(true)}\n primaryText={copy.details_edit_button}\n secondaryText={copy.details_delete_button}\n title={copy.details_title}\n >\n {selectedSubBudget && (\n <Stack gap={24}>\n <Header budget={selectedSubBudget} />\n <TransactionList height=\"100%\" />\n </Stack>\n )}\n </Drawer>\n\n {selectedSubBudget && (\n <React.Fragment>\n <Dialog\n copy={{ close_aria: commonCopy.close_aria, title: copy.details_edit_title }}\n disablePrimaryButton={amount === '' || Number(amount) < 0 || isNaN(Number(amount))}\n isOpen={isEditOpen}\n onClose={() => setIsEditOpen(false)}\n onPrimaryAction={handleUpdateBudget}\n primaryText={copy.edit_save_button}\n >\n <BudgetAmount\n amount={amount}\n categoryName={selectedSubBudget.category.name}\n onAmountChanged={setAmount}\n originalAmount={selectedSubBudget.amount}\n />\n </Dialog>\n\n <Dialog\n copy={{ close_aria: commonCopy.close_aria, title: copy.delete_title }}\n isOpen={isDeleteOpen}\n onClose={() => setIsDeleteOpen(false)}\n onPrimaryAction={handleDeleteBudget}\n primaryColor=\"error\"\n primaryText=\"Delete\"\n secondaryColor=\"secondary\"\n >\n <Text variant=\"subtitle1\">\n {buildDynamicCopy(copy.delete_description, selectedSubBudget.category.name) as string}\n </Text>\n </Dialog>\n </React.Fragment>\n )}\n </React.Fragment>\n )\n})\n"],"mappings":";;;;;;;;;;;;;;;;;AA+BA,IAAa,KAA8C,EAAA,CAAU,EAAE,QAAA,EAAA,MAAa;AAClF,QAAM,EAAE,UAAA,GAAU,YAAA,EAAA,IAAe,GAC3B,EAAE,SAAS,GAAM,QAAQ,EAAA,IAAe,EAAmB,GAC3D,EAAE,cAAA,GAAc,mBAAA,GAAmB,sBAAA,GAAsB,cAAA,EAAA,IAAiB,EAAgB,GAC1F,EAAE,QAAA,GAAQ,WAAA,EAAA,IAAc,EAAoB,GAE5C,CAAC,GAAY,CAAA,IAAiB,EAAM,SAAS,EAAK,GAClD,CAAC,GAAc,CAAA,IAAmB,EAAM,SAAS,EAAK,GACtD,CAAC,GAAQ,CAAA,IAAa,EAAM,SAAS,EAAE;AAE7C,EAAA,EAAM,UAAA,MAAgB;AACpB,IAAI,MACF,EAAU,GAAG,EAAkB,MAAA,EAAQ,GACvC,EAAU;AAAA,MACR,GAAG;AAAA,MACH,QAAA,CAAS,MAAmB,EAAE,kBAAkB,EAAkB;AAAA,IACpE,CAAC;AAAA,EAEL,GAAG,CAAC,CAAiB,CAAC;AAEtB,QAAM,IAAqB,YAAY;AACrC,IAAI,MACF,MAAM,EAAa;AAAA,MACjB,GAAG;AAAA,MACH,QAAQ,OAAO,CAAM;AAAA,IACvB,CAAW,GACX,EAAc,EAAK;AAAA,EAEvB,GAEM,IAAqB,YAAY;AACrC,IAAI,KACF,MAAM,EAAa,EAAkB,IAAI,GAE3C,EAAgB,EAAK,GACrB,EAAY;AAAA,EACd,GAEM,IAAA,MAAoB;AACxB,IAAA,EAAU;AAAA,MACR,GAAG;AAAA,MACH,QAAA,CAAS,MACP,EAAE,kBAAkB,EAAO,iBAC3B,EAAE,4BAA4B,EAAO;AAAA,IACzC,CAAC,GACD,EAAqB,MAAS;AAAA,EAChC;AAEA,SACE,gBAAA,EAAC,EAAM,UAAP,EAAA,UAAA;AAAA,IACE,gBAAA,EAAC,GAAD;AAAA,MAAM,IAAI,EAAE,SAAS,mBAAmB;AAAA,MAAxC,UAAA,CACG,EAAW,WAAW,IACrB,gBAAA,EAAC,GAAD,CAAqB,CAAA,IAErB,EAAW,IAAA,CAAK,MACd,gBAAA,EAAC,EAAM,UAAP,EAAA,UAAA,CACE,gBAAA,EAAC,GAAD,EAAc,QAAQ,EAAY,CAAA,GAClC,gBAAA,EAAC,GAAD,CAAU,CAAA,CACI,EAAA,GAHK,EAAU,IAGf,CACjB,GAEH,gBAAA,EAAC,GAAD;AAAA,QAAwB,UAAA;AAAA,QAAU,cAAc;AAAA,MAAS,CAAA,CACrD;AAAA;IACN,gBAAA,EAAC,GAAD;AAAA,MACE,gBAAgB,EAAW;AAAA,MAC3B,QAAQ,EAAQ;AAAA,MAChB,SAAS;AAAA,MACT,iBAAA,MAAuB,EAAc,EAAI;AAAA,MACzC,mBAAA,MAAyB,EAAgB,EAAI;AAAA,MAC7C,aAAa,EAAK;AAAA,MAClB,eAAe,EAAK;AAAA,MACpB,OAAO,EAAK;AAAA,MAEX,UAAA,KACC,gBAAA,EAAC,GAAD;AAAA,QAAO,KAAK;AAAA,QAAZ,UAAA,CACE,gBAAA,EAAC,GAAD,EAAQ,QAAQ,EAAoB,CAAA,GACpC,gBAAA,EAAC,GAAD,EAAiB,QAAO,OAAQ,CAAA,CAC3B;AAAA;IAEH,CAAA;AAAA,IAEP,KACC,gBAAA,EAAC,EAAM,UAAP,EAAA,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,MACE,MAAM;AAAA,QAAE,YAAY,EAAW;AAAA,QAAY,OAAO,EAAK;AAAA,MAAmB;AAAA,MAC1E,sBAAsB,MAAW,MAAM,OAAO,CAAM,IAAI,KAAK,MAAM,OAAO,CAAM,CAAC;AAAA,MACjF,QAAQ;AAAA,MACR,SAAA,MAAe,EAAc,EAAK;AAAA,MAClC,iBAAiB;AAAA,MACjB,aAAa,EAAK;AAAA,MAElB,UAAA,gBAAA,EAAC,GAAD;AAAA,QACU,QAAA;AAAA,QACR,cAAc,EAAkB,SAAS;AAAA,QACzC,iBAAiB;AAAA,QACjB,gBAAgB,EAAkB;AAAA,MACnC,CAAA;AAAA,IACK,CAAA,GAER,gBAAA,EAAC,GAAD;AAAA,MACE,MAAM;AAAA,QAAE,YAAY,EAAW;AAAA,QAAY,OAAO,EAAK;AAAA,MAAa;AAAA,MACpE,QAAQ;AAAA,MACR,SAAA,MAAe,EAAgB,EAAK;AAAA,MACpC,iBAAiB;AAAA,MACjB,cAAa;AAAA,MACb,aAAY;AAAA,MACZ,gBAAe;AAAA,MAEf,UAAA,gBAAA,EAAC,GAAD;AAAA,QAAM,SAAQ;AAAA,QACX,UAAA,EAAiB,EAAK,oBAAoB,EAAkB,SAAS,IAAI;AAAA,MACtE,CAAA;AAAA,IACA,CAAA,CACM,EAAA,CAAA;AAAA,EAEJ,EAAA,CAAA;AAEpB,CAAC"}
1
+ {"version":3,"file":"SubBudgetList.es.js","names":[],"sources":["../../../../src/budgets/components/budgetdetails/SubBudgetList.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Divider from '@mui/material/Divider'\nimport List from '@mui/material/List'\nimport Stack from '@mui/material/Stack'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport {\n Dialog,\n Drawer,\n useBudgetsStore,\n useGlobalCopyStore,\n useTransactionStore,\n} from '../../../common'\nimport { type Budget, type DetailedBudget, type Transaction } from '../../../core'\n\nimport { TransactionList } from '../../../transactions'\n\nimport { SubBudgetZeroState } from '../budgetlist/SubBudgetZeroState'\nimport { SubBudgetRow } from '../budgetlist/SubBudgetRow'\nimport { BudgetAmount } from '../shared/BudgetAmount'\nimport { AddSubBudget } from './AddSubBudget'\nimport { Header } from './Header'\nimport { buildDynamicCopy } from '../../../core/utils/Localization'\n\ninterface SubBudgetListProps {\n budget: DetailedBudget\n}\n\nexport const SubBudgetList: React.FC<SubBudgetListProps> = observer(({ budget }) => {\n const { category, subBudgets } = budget\n const { budgets: copy, common: commonCopy } = useGlobalCopyStore()\n const { deleteBudget, selectedSubBudget, setSelectedSubBudget, updateBudget } = useBudgetsStore()\n const { filter, setFilter } = useTransactionStore()\n\n const [isEditOpen, setIsEditOpen] = React.useState(false)\n const [isDeleteOpen, setIsDeleteOpen] = React.useState(false)\n const [amount, setAmount] = React.useState(``)\n\n React.useEffect(() => {\n if (selectedSubBudget) {\n setAmount(`${selectedSubBudget.amount}`)\n setFilter({\n ...filter,\n custom: (t: Transaction) => t.category_guid === selectedSubBudget.category_guid,\n })\n }\n }, [selectedSubBudget])\n\n const handleUpdateBudget = async () => {\n if (selectedSubBudget) {\n await updateBudget({\n ...selectedSubBudget,\n amount: Number(amount),\n } as Budget)\n }\n }\n\n const handleDeleteBudget = async () => {\n if (selectedSubBudget) {\n await deleteBudget(selectedSubBudget.guid)\n }\n setIsDeleteOpen(false)\n handleClose()\n }\n\n const handleClose = () => {\n setFilter({\n ...filter,\n custom: (t: Transaction) =>\n t.category_guid === budget.category_guid ||\n t.top_level_category_guid === budget.category_guid,\n })\n setSelectedSubBudget(undefined)\n }\n\n return (\n <React.Fragment>\n <List sx={{ bgcolor: 'background.paper' }}>\n {subBudgets.length === 0 ? (\n <SubBudgetZeroState />\n ) : (\n subBudgets.map((subBudget) => (\n <React.Fragment key={subBudget.guid}>\n <SubBudgetRow budget={subBudget} />\n <Divider />\n </React.Fragment>\n ))\n )}\n <AddSubBudget category={category} parentBudget={budget} />\n </List>\n <Drawer\n ariaLabelClose={commonCopy.close_aria}\n isOpen={Boolean(selectedSubBudget)}\n onClose={handleClose}\n onPrimaryAction={() => setIsEditOpen(true)}\n onSecondaryAction={() => setIsDeleteOpen(true)}\n primaryText={copy.details_edit_button}\n secondaryText={copy.details_delete_button}\n title={copy.details_title}\n >\n {selectedSubBudget && (\n <Stack gap={24}>\n <Header budget={selectedSubBudget} />\n <TransactionList height=\"100%\" />\n </Stack>\n )}\n </Drawer>\n\n {selectedSubBudget && (\n <React.Fragment>\n <Dialog\n copy={{ close_aria: commonCopy.close_aria, title: copy.details_edit_title }}\n disablePrimaryButton={Number(amount) <= 0}\n isOpen={isEditOpen}\n onClose={() => setIsEditOpen(false)}\n onPrimaryAction={handleUpdateBudget}\n primaryText={copy.edit_save_button}\n >\n <BudgetAmount\n amount={amount}\n categoryName={selectedSubBudget.category.name}\n onAmountChanged={setAmount}\n />\n </Dialog>\n\n <Dialog\n copy={{ close_aria: commonCopy.close_aria, title: copy.delete_title }}\n isOpen={isDeleteOpen}\n onClose={() => setIsDeleteOpen(false)}\n onPrimaryAction={handleDeleteBudget}\n primaryColor=\"error\"\n primaryText=\"Delete\"\n secondaryColor=\"secondary\"\n >\n <Text variant=\"subtitle1\">\n {buildDynamicCopy(copy.delete_description, selectedSubBudget.category.name) as string}\n </Text>\n </Dialog>\n </React.Fragment>\n )}\n </React.Fragment>\n )\n})\n"],"mappings":"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"}
@@ -1,12 +1,8 @@
1
1
  import { default as React } from 'react';
2
- import { DetailedBudget } from '../../../core';
3
- export interface BudgetAmountProps {
2
+ interface BudgetAmountProps {
4
3
  amount: string;
5
4
  categoryName: string;
6
- onAmountChanged?: (amount: string) => void;
7
- originalAmount?: number;
8
- subBudgets?: DetailedBudget[];
9
- subBudgetAmounts?: Record<string, string>;
10
- onSubBudgetAmountChanged?: (guid: string, amount: string) => void;
5
+ onAmountChanged: (amount: string) => void;
11
6
  }
12
7
  export declare const BudgetAmount: React.FC<BudgetAmountProps>;
8
+ export {};
@@ -1,48 +1,27 @@
1
- import { buildDynamicCopy as c } from "../../../core/utils/Localization.es.js";
2
- import { useBudgetsStore as T, useGlobalCopyStore as _, useRecurringTransactionsStore as A } from "../../../common/context/hooks.es.js";
3
- import { formatCurrency as C } from "../../../core/utils/NumberFormatting.es.js";
4
- import u from "../../../common/components/CurrencyInput.es.js";
1
+ import { buildDynamicCopy as r } from "../../../core/utils/Localization.es.js";
2
+ import { useBudgetsStore as a, useGlobalCopyStore as l, useRecurringTransactionsStore as f } from "../../../common/context/hooks.es.js";
3
+ import { formatCurrency as y } from "../../../core/utils/NumberFormatting.es.js";
4
+ import b from "../../../common/components/CurrencyInput.es.js";
5
5
  import "react";
6
- import m from "@mui/material/Stack";
7
- import { Text as s } from "@mxenabled/mxui";
8
- import { jsx as t, jsxs as l } from "react/jsx-runtime";
9
- var G = ({ amount: n, categoryName: i, onAmountChanged: y = () => {
10
- }, originalAmount: a, subBudgets: p = [], subBudgetAmounts: f = {}, onSubBudgetAmountChanged: g }) => {
11
- const { budgets: r } = _(), { totalBudgeted: d } = T(), { incomeTotal: h } = A(), e = p.length > 0, b = h - (a !== void 0 ? d - a + (Number(n) || 0) : d);
12
- return /* @__PURE__ */ l(m, {
6
+ import e from "@mui/material/Stack";
7
+ import { Text as m } from "@mxenabled/mxui";
8
+ import { jsx as t, jsxs as n } from "react/jsx-runtime";
9
+ var j = ({ amount: i, categoryName: u, onAmountChanged: c }) => {
10
+ const { budgets: o } = l(), { totalBudgeted: d } = a(), { incomeTotal: p } = f(), s = p - d;
11
+ return /* @__PURE__ */ n(e, {
13
12
  gap: 16,
14
- children: [
15
- /* @__PURE__ */ l(m, { children: [/* @__PURE__ */ t(s, { children: c(r.add_description_top, C(b, "0,0")) }), /* @__PURE__ */ t(s, { children: c(r.add_description_bottom, i) })] }),
16
- /* @__PURE__ */ t(u, {
17
- amount: n,
18
- autoFocus: !e,
19
- disabled: e,
20
- label: i || r.add_label,
21
- minAmount: 0,
22
- setAmount: y,
23
- sx: { ".MuiTypography-body1": { p: 0 } }
24
- }),
25
- e && /* @__PURE__ */ t(m, {
26
- gap: 12,
27
- sx: {
28
- maxHeight: 280,
29
- overflowY: "auto",
30
- pr: 4
31
- },
32
- children: p.map((o, x) => /* @__PURE__ */ t(u, {
33
- amount: f[o.guid] ?? `${o.amount}`,
34
- autoFocus: x === 0,
35
- label: o.category.name,
36
- minAmount: 0,
37
- setAmount: (S) => g?.(o.guid, S),
38
- sx: { ".MuiTypography-body1": { p: 0 } }
39
- }, o.guid))
40
- })
41
- ]
13
+ children: [/* @__PURE__ */ n(e, { children: [/* @__PURE__ */ t(m, { children: r(o.add_description_top, y(s, "0,0")) }), /* @__PURE__ */ t(m, { children: r(o.add_description_bottom, u) })] }), /* @__PURE__ */ t(b, {
14
+ amount: i,
15
+ autoFocus: !0,
16
+ label: o.add_label,
17
+ minAmount: 0,
18
+ setAmount: c,
19
+ sx: { ".MuiTypography-body1": { p: 0 } }
20
+ })]
42
21
  });
43
22
  };
44
23
  export {
45
- G as BudgetAmount
24
+ j as BudgetAmount
46
25
  };
47
26
 
48
27
  //# sourceMappingURL=BudgetAmount.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BudgetAmount.es.js","names":[],"sources":["../../../../src/budgets/components/shared/BudgetAmount.tsx"],"sourcesContent":["import React from 'react'\n\nimport Stack from '@mui/material/Stack'\nimport { Text } from '@mxenabled/mxui'\nimport {\n CurrencyInput,\n useBudgetsStore,\n useGlobalCopyStore,\n useRecurringTransactionsStore,\n} from '../../../common'\nimport { formatCurrency } from '../../../core/utils/NumberFormatting'\nimport { buildDynamicCopy } from '../../../core/utils/Localization'\nimport { DetailedBudget } from '../../../core'\n\nexport interface BudgetAmountProps {\n amount: string\n categoryName: string\n onAmountChanged?: (amount: string) => void\n originalAmount?: number\n subBudgets?: DetailedBudget[]\n subBudgetAmounts?: Record<string, string>\n onSubBudgetAmountChanged?: (guid: string, amount: string) => void\n}\n\nexport const BudgetAmount: React.FC<BudgetAmountProps> = ({\n amount,\n categoryName,\n onAmountChanged = () => {},\n originalAmount,\n subBudgets = [],\n subBudgetAmounts = {},\n onSubBudgetAmountChanged,\n}) => {\n const { budgets: copy } = useGlobalCopyStore()\n const { totalBudgeted } = useBudgetsStore()\n const { incomeTotal } = useRecurringTransactionsStore()\n\n const hasSubBudgets = subBudgets.length > 0\n\n const projectedTotalBudgeted =\n originalAmount !== undefined\n ? totalBudgeted - originalAmount + (Number(amount) || 0)\n : totalBudgeted\n\n const unbudgetedIncome = incomeTotal - projectedTotalBudgeted\n\n return (\n <Stack gap={16}>\n <Stack>\n <Text>\n {\n buildDynamicCopy(\n copy.add_description_top,\n formatCurrency(unbudgetedIncome, '0,0'),\n ) as string\n }\n </Text>\n <Text>{buildDynamicCopy(copy.add_description_bottom, categoryName) as string}</Text>\n </Stack>\n <CurrencyInput\n amount={amount}\n autoFocus={!hasSubBudgets}\n disabled={hasSubBudgets}\n label={categoryName || copy.add_label}\n minAmount={0}\n setAmount={onAmountChanged}\n sx={{ '.MuiTypography-body1': { p: 0 } }}\n />\n {hasSubBudgets && (\n <Stack\n gap={12}\n sx={{\n maxHeight: 280,\n overflowY: 'auto',\n pr: 4,\n }}\n >\n {subBudgets.map((subBudget, index) => (\n <CurrencyInput\n key={subBudget.guid}\n amount={subBudgetAmounts[subBudget.guid] ?? `${subBudget.amount}`}\n autoFocus={index === 0}\n label={subBudget.category.name}\n minAmount={0}\n setAmount={(newVal) => onSubBudgetAmountChanged?.(subBudget.guid, newVal)}\n sx={{ '.MuiTypography-body1': { p: 0 } }}\n />\n ))}\n </Stack>\n )}\n </Stack>\n )\n}\n"],"mappings":";;;;;;;;AAwBA,IAAa,IAAA,CAA6C,EACxD,QAAA,GACA,cAAA,GACA,iBAAA,IAAA,MAAwB;AAAC,GACzB,gBAAA,GACA,YAAA,IAAa,CAAC,GACd,kBAAA,IAAmB,CAAC,GACpB,0BAAA,EAAA,MACI;AACJ,QAAM,EAAE,SAAS,EAAA,IAAS,EAAmB,GACvC,EAAE,eAAA,EAAA,IAAkB,EAAgB,GACpC,EAAE,aAAA,EAAA,IAAgB,EAA8B,GAEhD,IAAgB,EAAW,SAAS,GAOpC,IAAmB,KAJvB,MAAmB,SACf,IAAgB,KAAkB,OAAO,CAAM,KAAK,KACpD;AAIN,SACE,gBAAA,EAAC,GAAD;AAAA,IAAO,KAAK;AAAA,IAAZ,UAAA;AAAA,MACE,gBAAA,EAAC,GAAD,EAAA,UAAA,CACE,gBAAA,EAAC,GAAD,EAAA,UAEI,EACE,EAAK,qBACL,EAAe,GAAkB,KAAK,CACxC,EAEE,CAAA,GACN,gBAAA,EAAC,GAAD,EAAA,UAAO,EAAiB,EAAK,wBAAwB,CAAY,EAAkB,CAAA,CAC9E,EAAA,CAAA;AAAA,MACP,gBAAA,EAAC,GAAD;AAAA,QACU,QAAA;AAAA,QACR,WAAW,CAAC;AAAA,QACZ,UAAU;AAAA,QACV,OAAO,KAAgB,EAAK;AAAA,QAC5B,WAAW;AAAA,QACX,WAAW;AAAA,QACX,IAAI,EAAE,wBAAwB,EAAE,GAAG,EAAE,EAAE;AAAA,MACxC,CAAA;AAAA,MACA,KACC,gBAAA,EAAC,GAAD;AAAA,QACE,KAAK;AAAA,QACL,IAAI;AAAA,UACF,WAAW;AAAA,UACX,WAAW;AAAA,UACX,IAAI;AAAA,QACN;AAAA,QAEC,UAAA,EAAW,IAAA,CAAK,GAAW,MAC1B,gBAAA,EAAC,GAAD;AAAA,UAEE,QAAQ,EAAiB,EAAU,IAAA,KAAS,GAAG,EAAU,MAAA;AAAA,UACzD,WAAW,MAAU;AAAA,UACrB,OAAO,EAAU,SAAS;AAAA,UAC1B,WAAW;AAAA,UACX,WAAA,CAAY,MAAW,IAA2B,EAAU,MAAM,CAAM;AAAA,UACxE,IAAI,EAAE,wBAAwB,EAAE,GAAG,EAAE,EAAE;AAAA,QACxC,GAPM,EAAU,IAOhB,CACF;AAAA,MACI,CAAA;AAAA,IAEJ;AAAA;AAEX"}
1
+ {"version":3,"file":"BudgetAmount.es.js","names":[],"sources":["../../../../src/budgets/components/shared/BudgetAmount.tsx"],"sourcesContent":["import React from 'react'\n\nimport Stack from '@mui/material/Stack'\nimport { Text } from '@mxenabled/mxui'\nimport {\n CurrencyInput,\n useBudgetsStore,\n useGlobalCopyStore,\n useRecurringTransactionsStore,\n} from '../../../common'\nimport { formatCurrency } from '../../../core/utils/NumberFormatting'\nimport { buildDynamicCopy } from '../../../core/utils/Localization'\n\ninterface BudgetAmountProps {\n amount: string\n categoryName: string\n onAmountChanged: (amount: string) => void\n}\n\nexport const BudgetAmount: React.FC<BudgetAmountProps> = ({\n amount,\n categoryName,\n onAmountChanged,\n}) => {\n const { budgets: copy } = useGlobalCopyStore()\n const { totalBudgeted } = useBudgetsStore()\n const { incomeTotal } = useRecurringTransactionsStore()\n\n const unbudgetedIncome = incomeTotal - totalBudgeted\n\n return (\n <Stack gap={16}>\n <Stack>\n <Text>\n {\n buildDynamicCopy(\n copy.add_description_top,\n formatCurrency(unbudgetedIncome, '0,0'),\n ) as string\n }\n </Text>\n <Text>{buildDynamicCopy(copy.add_description_bottom, categoryName) as string}</Text>\n </Stack>\n <CurrencyInput\n amount={amount}\n autoFocus={true}\n label={copy.add_label}\n minAmount={0}\n setAmount={onAmountChanged}\n sx={{ '.MuiTypography-body1': { p: 0 } }}\n />\n </Stack>\n )\n}\n"],"mappings":";;;;;;;;AAmBA,IAAa,IAAA,CAA6C,EACxD,QAAA,GACA,cAAA,GACA,iBAAA,EAAA,MACI;AACJ,QAAM,EAAE,SAAS,EAAA,IAAS,EAAmB,GACvC,EAAE,eAAA,EAAA,IAAkB,EAAgB,GACpC,EAAE,aAAA,EAAA,IAAgB,EAA8B,GAEhD,IAAmB,IAAc;AAEvC,SACE,gBAAA,EAAC,GAAD;AAAA,IAAO,KAAK;AAAA,IAAZ,UAAA,CACE,gBAAA,EAAC,GAAD,EAAA,UAAA,CACE,gBAAA,EAAC,GAAD,EAAA,UAEI,EACE,EAAK,qBACL,EAAe,GAAkB,KAAK,CACxC,EAEE,CAAA,GACN,gBAAA,EAAC,GAAD,EAAA,UAAO,EAAiB,EAAK,wBAAwB,CAAY,EAAkB,CAAA,CAC9E,EAAA,CAAA,GACP,gBAAA,EAAC,GAAD;AAAA,MACU,QAAA;AAAA,MACR,WAAW;AAAA,MACX,OAAO,EAAK;AAAA,MACZ,WAAW;AAAA,MACX,WAAW;AAAA,MACX,IAAI,EAAE,wBAAwB,EAAE,GAAG,EAAE,EAAE;AAAA,IACxC,CAAA,CACI;AAAA;AAEX"}