@mx-cartographer/experiences 9.3.8-alpha.al0 → 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 (305) hide show
  1. package/CHANGELOG.md +15 -0
  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/BudgetsEmptyState.es.js +7 -7
  11. package/dist/budgets/components/budgetdetails/SubBudgetList.es.js +16 -16
  12. package/dist/budgets/components/budgetdetails/SubBudgetList.es.js.map +1 -1
  13. package/dist/cashflow/CashflowOnboarding.es.js +13 -13
  14. package/dist/cashflow/components/CashflowHeading.es.js +4 -4
  15. package/dist/cashflow/components/DetailsExpenseHeader.es.js +4 -4
  16. package/dist/common/components/DataRow.es.js +6 -6
  17. package/dist/common/components/MiniWidgetContainer.es.js +9 -9
  18. package/dist/common/components/charts/linechart/CustomLine.es.js +2 -2
  19. package/dist/common/components/charts/linechart/CustomMark.es.js +2 -2
  20. package/dist/common/context/hooks.d.ts +1 -0
  21. package/dist/common/context/hooks.es.js +12 -11
  22. package/dist/common/context/hooks.es.js.map +1 -1
  23. package/dist/common/context/index.d.ts +1 -1
  24. package/dist/common/index.es.js +116 -115
  25. package/dist/core/index.es.js +27 -25
  26. package/dist/core/stores/BudgetsStore.es.js +21 -28
  27. package/dist/core/stores/BudgetsStore.es.js.map +1 -1
  28. package/dist/core/stores/GlobalStore.d.ts +2 -1
  29. package/dist/core/stores/GlobalStore.es.js +11 -9
  30. package/dist/core/stores/GlobalStore.es.js.map +1 -1
  31. package/dist/core/stores/InsightsV2Store.d.ts +24 -0
  32. package/dist/core/stores/InsightsV2Store.es.js +41 -0
  33. package/dist/core/stores/InsightsV2Store.es.js.map +1 -0
  34. package/dist/core/stores/index.d.ts +2 -0
  35. package/dist/core/types/Beat.d.ts +2 -0
  36. package/dist/core/types/Beat.es.js.map +1 -1
  37. package/dist/core/types/Insights.d.ts +90 -0
  38. package/dist/core/types/InsightsInstanceSlotData.d.ts +93 -0
  39. package/dist/core/types/InsightsInstanceSlotData.es.js +8 -0
  40. package/dist/core/types/InsightsInstanceSlotData.es.js.map +1 -0
  41. package/dist/core/types/index.d.ts +1 -0
  42. package/dist/core/utils/BudgetUtil.es.js +50 -56
  43. package/dist/core/utils/BudgetUtil.es.js.map +1 -1
  44. package/dist/debts/DebtsWidget.es.js +5 -5
  45. package/dist/debts/components/debtsdrawer/DebtDetailsContent.es.js +3 -3
  46. package/dist/debts/components/debtsdrawer/DebtDetailsTab.es.js +6 -6
  47. package/dist/debts/components/debtsdrawer/DebtScheduleTab.es.js +8 -8
  48. package/dist/finstrong/components/HaveManageableDebt/HaveManageableDebtComponent.es.js +2 -2
  49. package/dist/finstrong/components/KeyIndicatorsTabItem.es.js +8 -8
  50. package/dist/finstrong/components/SaveEnoughToLiveOn/SaveEnoughToLiveOnDrawerContent.es.js +5 -5
  51. package/dist/finstrong/components/shared/Accounts.es.js +24 -24
  52. package/dist/finstrong/components/shared/ScoreHistoryTimeline.es.js +2 -2
  53. package/dist/finstrong/components/shared/Transactions.es.js +28 -28
  54. package/dist/finstrong/util/finstrongUtils.d.ts +1 -1
  55. package/dist/goals/GoalsWidget.es.js +12 -12
  56. package/dist/insights/components/insights/CustomTransaction/CustomTransaction.es.js +13 -13
  57. package/dist/insights/components/insights/UserFeedback/UserFeedback.es.js +14 -14
  58. package/dist/insights/components/shared/DeepLinks/DirectDeposit/DirectDepositDeepLink.es.js +2 -2
  59. package/dist/insights/components/shared/DirectDeposit/DirectDepositSubHeader.es.js +9 -9
  60. package/dist/insights/components/shared/InsightsCard/BeatCard.es.js +4 -4
  61. package/dist/insights/components/shared/InsightsCard/BeatCardMUI.es.js +4 -4
  62. package/dist/insights/components/shared/InsightsCard/ContentAndDescription.es.js +2 -2
  63. package/dist/insights/components/shared/InsightsCard/ContentAndDescriptionMUI.es.js +2 -2
  64. package/dist/insights/components/shared/MenuAction.es.js +16 -16
  65. package/dist/insights-v2/CommonUtils.d.ts +1 -0
  66. package/dist/insights-v2/CommonUtils.es.js +7 -0
  67. package/dist/insights-v2/CommonUtils.es.js.map +1 -0
  68. package/dist/insights-v2/blocks/ChartBlocks/BarchartBlock/BarchartBlock.d.ts +3 -0
  69. package/dist/insights-v2/blocks/ChartBlocks/BarchartBlock/BarchartBlock.es.js +28 -0
  70. package/dist/insights-v2/blocks/ChartBlocks/BarchartBlock/BarchartBlock.es.js.map +1 -0
  71. package/dist/insights-v2/blocks/ChartBlocks/BarchartBlock/index.d.ts +1 -0
  72. package/dist/insights-v2/blocks/ChartBlocks/BarchartBlock/layout.d.ts +9 -0
  73. package/dist/insights-v2/blocks/ChartBlocks/BarchartBlock/layout.es.js +9 -0
  74. package/dist/insights-v2/blocks/ChartBlocks/BarchartBlock/layout.es.js.map +1 -0
  75. package/dist/insights-v2/blocks/ChartBlocks/BarchartBlock/utils.d.ts +18 -0
  76. package/dist/insights-v2/blocks/ChartBlocks/BarchartBlock/utils.es.js +34 -0
  77. package/dist/insights-v2/blocks/ChartBlocks/BarchartBlock/utils.es.js.map +1 -0
  78. package/dist/insights-v2/blocks/ChartBlocks/DonutChartBlock/DonutChart.d.ts +13 -0
  79. package/dist/insights-v2/blocks/ChartBlocks/DonutChartBlock/DonutChart.es.js +87 -0
  80. package/dist/insights-v2/blocks/ChartBlocks/DonutChartBlock/DonutChart.es.js.map +1 -0
  81. package/dist/insights-v2/blocks/ChartBlocks/DonutChartBlock/DonutChartBlock.d.ts +4 -0
  82. package/dist/insights-v2/blocks/ChartBlocks/DonutChartBlock/DonutChartBlock.es.js +23 -0
  83. package/dist/insights-v2/blocks/ChartBlocks/DonutChartBlock/DonutChartBlock.es.js.map +1 -0
  84. package/dist/insights-v2/blocks/ChartBlocks/DonutChartBlock/index.d.ts +1 -0
  85. package/dist/insights-v2/blocks/ChartBlocks/DonutChartBlock/layout.d.ts +19 -0
  86. package/dist/insights-v2/blocks/ChartBlocks/DonutChartBlock/layout.es.js +15 -0
  87. package/dist/insights-v2/blocks/ChartBlocks/DonutChartBlock/layout.es.js.map +1 -0
  88. package/dist/insights-v2/blocks/ChartBlocks/DonutChartBlock/utils.d.ts +3 -0
  89. package/dist/insights-v2/blocks/ChartBlocks/DonutChartBlock/utils.es.js +11 -0
  90. package/dist/insights-v2/blocks/ChartBlocks/DonutChartBlock/utils.es.js.map +1 -0
  91. package/dist/insights-v2/blocks/ChartBlocks/DoubleBarChartBlock/ChartLegend.d.ts +7 -0
  92. package/dist/insights-v2/blocks/ChartBlocks/DoubleBarChartBlock/ChartLegend.es.js +48 -0
  93. package/dist/insights-v2/blocks/ChartBlocks/DoubleBarChartBlock/ChartLegend.es.js.map +1 -0
  94. package/dist/insights-v2/blocks/ChartBlocks/DoubleBarChartBlock/CustomDoubleBar.d.ts +18 -0
  95. package/dist/insights-v2/blocks/ChartBlocks/DoubleBarChartBlock/CustomDoubleBar.es.js +45 -0
  96. package/dist/insights-v2/blocks/ChartBlocks/DoubleBarChartBlock/CustomDoubleBar.es.js.map +1 -0
  97. package/dist/insights-v2/blocks/ChartBlocks/DoubleBarChartBlock/DoubleBarChart.d.ts +2 -0
  98. package/dist/insights-v2/blocks/ChartBlocks/DoubleBarChartBlock/DoubleBarChart.es.js +125 -0
  99. package/dist/insights-v2/blocks/ChartBlocks/DoubleBarChartBlock/DoubleBarChart.es.js.map +1 -0
  100. package/dist/insights-v2/blocks/ChartBlocks/DoubleBarChartBlock/index.d.ts +1 -0
  101. package/dist/insights-v2/blocks/ChartBlocks/DoubleBarChartBlock/layout.d.ts +8 -0
  102. package/dist/insights-v2/blocks/ChartBlocks/DoubleBarChartBlock/layout.es.js +10 -0
  103. package/dist/insights-v2/blocks/ChartBlocks/DoubleBarChartBlock/layout.es.js.map +1 -0
  104. package/dist/insights-v2/blocks/ChartBlocks/DoubleProgressBarBlock/DoubleProgressBarBlock.d.ts +4 -0
  105. package/dist/insights-v2/blocks/ChartBlocks/DoubleProgressBarBlock/DoubleProgressBarBlock.es.js +28 -0
  106. package/dist/insights-v2/blocks/ChartBlocks/DoubleProgressBarBlock/DoubleProgressBarBlock.es.js.map +1 -0
  107. package/dist/insights-v2/blocks/ChartBlocks/DoubleProgressBarBlock/ProgressBar.d.ts +8 -0
  108. package/dist/insights-v2/blocks/ChartBlocks/DoubleProgressBarBlock/ProgressBar.es.js +44 -0
  109. package/dist/insights-v2/blocks/ChartBlocks/DoubleProgressBarBlock/ProgressBar.es.js.map +1 -0
  110. package/dist/insights-v2/blocks/ChartBlocks/DoubleProgressBarBlock/index.d.ts +1 -0
  111. package/dist/insights-v2/blocks/ChartBlocks/StepChartBlock/StepChartBlock.d.ts +4 -0
  112. package/dist/insights-v2/blocks/ChartBlocks/StepChartBlock/StepChartBlock.es.js +15 -0
  113. package/dist/insights-v2/blocks/ChartBlocks/StepChartBlock/StepChartBlock.es.js.map +1 -0
  114. package/dist/insights-v2/blocks/ChartBlocks/StepChartBlock/index.d.ts +9 -0
  115. package/dist/insights-v2/blocks/ChartBlocks/StepChartBlock/index.es.js +13 -0
  116. package/dist/insights-v2/blocks/ChartBlocks/StepChartBlock/index.es.js.map +1 -0
  117. package/dist/insights-v2/blocks/ChartBlocks/StepChartBlock/utils.d.ts +19 -0
  118. package/dist/insights-v2/blocks/ChartBlocks/StepChartBlock/utils.es.js +27 -0
  119. package/dist/insights-v2/blocks/ChartBlocks/StepChartBlock/utils.es.js.map +1 -0
  120. package/dist/insights-v2/blocks/ChartBlocks/StepChartBlock/variants/WithText.d.ts +5 -0
  121. package/dist/insights-v2/blocks/ChartBlocks/StepChartBlock/variants/WithText.es.js +78 -0
  122. package/dist/insights-v2/blocks/ChartBlocks/StepChartBlock/variants/WithText.es.js.map +1 -0
  123. package/dist/insights-v2/blocks/ChartBlocks/StepChartBlock/variants/WithoutText.d.ts +5 -0
  124. package/dist/insights-v2/blocks/ChartBlocks/StepChartBlock/variants/WithoutText.es.js +81 -0
  125. package/dist/insights-v2/blocks/ChartBlocks/StepChartBlock/variants/WithoutText.es.js.map +1 -0
  126. package/dist/insights-v2/blocks/ChartBlocks/index.d.ts +5 -0
  127. package/dist/insights-v2/blocks/ComponentBlocks/AccountBlock/AccountBlock.d.ts +4 -0
  128. package/dist/insights-v2/blocks/ComponentBlocks/AccountBlock/AccountBlock.es.js +200 -0
  129. package/dist/insights-v2/blocks/ComponentBlocks/AccountBlock/AccountBlock.es.js.map +1 -0
  130. package/dist/insights-v2/blocks/ComponentBlocks/AccountBlock/HeaderComponent.d.ts +5 -0
  131. package/dist/insights-v2/blocks/ComponentBlocks/AccountBlock/HeaderComponent.es.js +26 -0
  132. package/dist/insights-v2/blocks/ComponentBlocks/AccountBlock/HeaderComponent.es.js.map +1 -0
  133. package/dist/insights-v2/blocks/ComponentBlocks/AccountBlock/IconComponent.d.ts +7 -0
  134. package/dist/insights-v2/blocks/ComponentBlocks/AccountBlock/IconComponent.es.js +64 -0
  135. package/dist/insights-v2/blocks/ComponentBlocks/AccountBlock/IconComponent.es.js.map +1 -0
  136. package/dist/insights-v2/blocks/ComponentBlocks/AccountBlock/index.d.ts +1 -0
  137. package/dist/insights-v2/blocks/ComponentBlocks/AccountBlock/layout.d.ts +32 -0
  138. package/dist/insights-v2/blocks/ComponentBlocks/AccountBlock/layout.es.js +100 -0
  139. package/dist/insights-v2/blocks/ComponentBlocks/AccountBlock/layout.es.js.map +1 -0
  140. package/dist/insights-v2/blocks/ComponentBlocks/ActionBlock/ActionBlockLayer.d.ts +8 -0
  141. package/dist/insights-v2/blocks/ComponentBlocks/ActionBlock/ActionBlockLayer.es.js +41 -0
  142. package/dist/insights-v2/blocks/ComponentBlocks/ActionBlock/ActionBlockLayer.es.js.map +1 -0
  143. package/dist/insights-v2/blocks/ComponentBlocks/ActionBlock/PlaceholderActionBlock.d.ts +4 -0
  144. package/dist/insights-v2/blocks/ComponentBlocks/ActionBlock/PlaceholderActionBlock.es.js +32 -0
  145. package/dist/insights-v2/blocks/ComponentBlocks/ActionBlock/PlaceholderActionBlock.es.js.map +1 -0
  146. package/dist/insights-v2/blocks/ComponentBlocks/BudgetBlock/BudgetBlock.d.ts +3 -0
  147. package/dist/insights-v2/blocks/ComponentBlocks/BudgetBlock/BudgetBlock.es.js +50 -0
  148. package/dist/insights-v2/blocks/ComponentBlocks/BudgetBlock/BudgetBlock.es.js.map +1 -0
  149. package/dist/insights-v2/blocks/ComponentBlocks/BudgetBlock/index.d.ts +1 -0
  150. package/dist/insights-v2/blocks/ComponentBlocks/BudgetBlock/util.d.ts +7 -0
  151. package/dist/insights-v2/blocks/ComponentBlocks/BudgetBlock/util.es.js +12 -0
  152. package/dist/insights-v2/blocks/ComponentBlocks/BudgetBlock/util.es.js.map +1 -0
  153. package/dist/insights-v2/blocks/ComponentBlocks/index.d.ts +2 -0
  154. package/dist/insights-v2/blocks/ImageBlocks/ImageBlock.d.ts +4 -0
  155. package/dist/insights-v2/blocks/ImageBlocks/ImageBlock.es.js +35 -0
  156. package/dist/insights-v2/blocks/ImageBlocks/ImageBlock.es.js.map +1 -0
  157. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/SVGImageBlock.d.ts +3 -0
  158. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/SVGImageBlock.es.js +20 -0
  159. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/SVGImageBlock.es.js.map +1 -0
  160. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/images/DesignateEmergencySavingsAccount.es.js +296 -0
  161. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/images/DesignateEmergencySavingsAccount.es.js.map +1 -0
  162. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/images/FederalBankHoliday.es.js +449 -0
  163. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/images/FederalBankHoliday.es.js.map +1 -0
  164. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/images/FederalBankHolidayCibc.es.js +89 -0
  165. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/images/FederalBankHolidayCibc.es.js.map +1 -0
  166. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/images/UpcomingTaxDeadlineAlert.es.js +235 -0
  167. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/images/UpcomingTaxDeadlineAlert.es.js.map +1 -0
  168. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/images/UpcomingTaxDeadlineAlertCIBC.es.js +57 -0
  169. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/images/UpcomingTaxDeadlineAlertCIBC.es.js.map +1 -0
  170. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/index.d.ts +1 -0
  171. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/layout.d.ts +7 -0
  172. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/layout.es.js +15 -0
  173. package/dist/insights-v2/blocks/ImageBlocks/SVGImageBlock/layout.es.js.map +1 -0
  174. package/dist/insights-v2/blocks/ImageBlocks/index.d.ts +2 -0
  175. package/dist/insights-v2/blocks/index.d.ts +4 -0
  176. package/dist/insights-v2/blocks/types.d.ts +8 -0
  177. package/dist/insights-v2/components/AccountHeroCard.d.ts +35 -0
  178. package/dist/insights-v2/components/AccountHeroCard.es.js +91 -0
  179. package/dist/insights-v2/components/AccountHeroCard.es.js.map +1 -0
  180. package/dist/insights-v2/components/AmountPill.d.ts +16 -0
  181. package/dist/insights-v2/components/AmountPill.es.js +25 -0
  182. package/dist/insights-v2/components/AmountPill.es.js.map +1 -0
  183. package/dist/insights-v2/components/BaseLayout.d.ts +6 -0
  184. package/dist/insights-v2/components/BaseLayout.es.js +77 -0
  185. package/dist/insights-v2/components/BaseLayout.es.js.map +1 -0
  186. package/dist/insights-v2/components/ComponentBlocks/DepositLogo.d.ts +22 -0
  187. package/dist/insights-v2/components/ComponentBlocks/DepositLogo.es.js +33 -0
  188. package/dist/insights-v2/components/ComponentBlocks/DepositLogo.es.js.map +1 -0
  189. package/dist/insights-v2/components/ComponentBlocks/StatusIndicator.d.ts +14 -0
  190. package/dist/insights-v2/components/ComponentBlocks/StatusIndicator.es.js +65 -0
  191. package/dist/insights-v2/components/ComponentBlocks/StatusIndicator.es.js.map +1 -0
  192. package/dist/insights-v2/components/DesignateEmergencySavingsCard.d.ts +33 -0
  193. package/dist/insights-v2/components/DesignateEmergencySavingsCard.es.js +78 -0
  194. package/dist/insights-v2/components/DesignateEmergencySavingsCard.es.js.map +1 -0
  195. package/dist/insights-v2/components/Footer.d.ts +9 -0
  196. package/dist/insights-v2/components/Footer.es.js +25 -0
  197. package/dist/insights-v2/components/Footer.es.js.map +1 -0
  198. package/dist/insights-v2/components/Header.d.ts +8 -0
  199. package/dist/insights-v2/components/Header.es.js +41 -0
  200. package/dist/insights-v2/components/Header.es.js.map +1 -0
  201. package/dist/insights-v2/components/InsightTransactionRow.d.ts +23 -0
  202. package/dist/insights-v2/components/InsightTransactionRow.es.js +52 -0
  203. package/dist/insights-v2/components/InsightTransactionRow.es.js.map +1 -0
  204. package/dist/insights-v2/components/LogoClusterCard.d.ts +40 -0
  205. package/dist/insights-v2/components/LogoClusterCard.es.js +104 -0
  206. package/dist/insights-v2/components/LogoClusterCard.es.js.map +1 -0
  207. package/dist/insights-v2/components/LogoTile.d.ts +31 -0
  208. package/dist/insights-v2/components/LogoTile.es.js +34 -0
  209. package/dist/insights-v2/components/LogoTile.es.js.map +1 -0
  210. package/dist/insights-v2/components/MerchantHighlightCard.d.ts +34 -0
  211. package/dist/insights-v2/components/MerchantHighlightCard.es.js +64 -0
  212. package/dist/insights-v2/components/MerchantHighlightCard.es.js.map +1 -0
  213. package/dist/insights-v2/components/P2PLogoStack.d.ts +32 -0
  214. package/dist/insights-v2/components/P2PLogoStack.es.js +55 -0
  215. package/dist/insights-v2/components/P2PLogoStack.es.js.map +1 -0
  216. package/dist/insights-v2/components/SaveAnExtraCard.d.ts +27 -0
  217. package/dist/insights-v2/components/SaveAnExtraCard.es.js +57 -0
  218. package/dist/insights-v2/components/SaveAnExtraCard.es.js.map +1 -0
  219. package/dist/insights-v2/components/SavingsOpportunityCard.d.ts +18 -0
  220. package/dist/insights-v2/components/SavingsOpportunityCard.es.js +71 -0
  221. package/dist/insights-v2/components/SavingsOpportunityCard.es.js.map +1 -0
  222. package/dist/insights-v2/components/StatusMessageCard.d.ts +28 -0
  223. package/dist/insights-v2/components/StatusMessageCard.es.js +45 -0
  224. package/dist/insights-v2/components/StatusMessageCard.es.js.map +1 -0
  225. package/dist/insights-v2/components/StatusPill.d.ts +26 -0
  226. package/dist/insights-v2/components/StatusPill.es.js +30 -0
  227. package/dist/insights-v2/components/StatusPill.es.js.map +1 -0
  228. package/dist/insights-v2/components/SubHeader.d.ts +6 -0
  229. package/dist/insights-v2/components/SubHeader.es.js +40 -0
  230. package/dist/insights-v2/components/SubHeader.es.js.map +1 -0
  231. package/dist/insights-v2/components/SubscriptionHeroCard.d.ts +27 -0
  232. package/dist/insights-v2/components/SubscriptionHeroCard.es.js +63 -0
  233. package/dist/insights-v2/components/SubscriptionHeroCard.es.js.map +1 -0
  234. package/dist/insights-v2/components/TransactionListCard.d.ts +45 -0
  235. package/dist/insights-v2/components/TransactionListCard.es.js +118 -0
  236. package/dist/insights-v2/components/TransactionListCard.es.js.map +1 -0
  237. package/dist/insights-v2/components/TransferLogoCard.d.ts +44 -0
  238. package/dist/insights-v2/components/TransferLogoCard.es.js +121 -0
  239. package/dist/insights-v2/components/TransferLogoCard.es.js.map +1 -0
  240. package/dist/insights-v2/components/UpcomingBillCard.d.ts +41 -0
  241. package/dist/insights-v2/components/UpcomingBillCard.es.js +99 -0
  242. package/dist/insights-v2/components/UpcomingBillCard.es.js.map +1 -0
  243. package/dist/insights-v2/components/celebrationGradients.d.ts +19 -0
  244. package/dist/insights-v2/components/celebrationGradients.es.js +7 -0
  245. package/dist/insights-v2/components/celebrationGradients.es.js.map +1 -0
  246. package/dist/insights-v2/components/chartblocks/BarchartV2.d.ts +2 -0
  247. package/dist/insights-v2/components/chartblocks/BarchartV2.es.js +148 -0
  248. package/dist/insights-v2/components/chartblocks/BarchartV2.es.js.map +1 -0
  249. package/dist/insights-v2/components/chartblocks/EmptyBarChart.d.ts +1 -0
  250. package/dist/insights-v2/components/chartblocks/EmptyBarChart.es.js +14 -0
  251. package/dist/insights-v2/components/chartblocks/EmptyBarChart.es.js.map +1 -0
  252. package/dist/insights-v2/components/chartblocks/ThemedSVGImage.d.ts +2 -0
  253. package/dist/insights-v2/components/chartblocks/ThemedSVGImage.es.js +49 -0
  254. package/dist/insights-v2/components/chartblocks/ThemedSVGImage.es.js.map +1 -0
  255. package/dist/insights-v2/components/logoShadow.d.ts +26 -0
  256. package/dist/insights-v2/components/logoShadow.es.js +12 -0
  257. package/dist/insights-v2/components/logoShadow.es.js.map +1 -0
  258. package/dist/insights-v2/components/shared/Confetti.d.ts +15 -0
  259. package/dist/insights-v2/components/shared/Confetti.es.js +33 -0
  260. package/dist/insights-v2/components/shared/Confetti.es.js.map +1 -0
  261. package/dist/insights-v2/components/shared/images/DesignateEmergencySavings.es.js +338 -0
  262. package/dist/insights-v2/components/shared/images/DesignateEmergencySavings.es.js.map +1 -0
  263. package/dist/insights-v2/components/shared/images/PaidOffCard.es.js +85 -0
  264. package/dist/insights-v2/components/shared/images/PaidOffCard.es.js.map +1 -0
  265. package/dist/insights-v2/components/shared/images/SavingsAccountDeposit.es.js +124 -0
  266. package/dist/insights-v2/components/shared/images/SavingsAccountDeposit.es.js.map +1 -0
  267. package/dist/insights-v2/components/shared/images/SavingsOpportunityLeft.es.js +104 -0
  268. package/dist/insights-v2/components/shared/images/SavingsOpportunityLeft.es.js.map +1 -0
  269. package/dist/insights-v2/components/shared/images/SavingsOpportunityLeftDark.es.js +104 -0
  270. package/dist/insights-v2/components/shared/images/SavingsOpportunityLeftDark.es.js.map +1 -0
  271. package/dist/insights-v2/components/shared/images/SavingsOpportunityPerforation.es.js +38 -0
  272. package/dist/insights-v2/components/shared/images/SavingsOpportunityPerforation.es.js.map +1 -0
  273. package/dist/insights-v2/components/statusTokens.d.ts +12 -0
  274. package/dist/insights-v2/components/statusTokens.es.js +10 -0
  275. package/dist/insights-v2/components/statusTokens.es.js.map +1 -0
  276. package/dist/insights-v2/hooks/useContainerDimensions.d.ts +5 -0
  277. package/dist/insights-v2/hooks/useContainerDimensions.es.js +26 -0
  278. package/dist/insights-v2/hooks/useContainerDimensions.es.js.map +1 -0
  279. package/dist/insights-v2/index.d.ts +18 -0
  280. package/dist/insights-v2/index.es.js +55 -0
  281. package/dist/insights-v2/mappings/blocks.d.ts +14 -0
  282. package/dist/insights-v2/mappings/blocks.es.js +32 -0
  283. package/dist/insights-v2/mappings/blocks.es.js.map +1 -0
  284. package/dist/investments/InvestmentsWidget.es.js +10 -10
  285. package/dist/investments/components/AnalysisDetails.es.js +4 -4
  286. package/dist/investments/components/allocation/InvestementAllocationList.es.js +27 -27
  287. package/dist/microinsights/MicroCardTemplate.es.js +4 -4
  288. package/dist/microinsights/carousel/BeatList.es.js +9 -9
  289. package/dist/networth/NetWorthWidget.es.js +6 -6
  290. package/dist/networth/components/AssetsLiabilitiesDetail.es.js +2 -2
  291. package/dist/networth/components/GainsLossesDetail.es.js +13 -13
  292. package/dist/notifications/components/NotificationDrawer.es.js +5 -5
  293. package/dist/notifications/components/NotificationList.es.js +13 -13
  294. package/dist/recurringtransactions/components/MicroWidgetContent.es.js +13 -13
  295. package/dist/recurringtransactions/components/RecurrenceRow.es.js +6 -6
  296. package/dist/recurringtransactions/components/RecurringStatus.es.js +4 -4
  297. package/dist/recurringtransactions/components/RecurringTransactionDetails.es.js +19 -19
  298. package/dist/recurringtransactions/components/actions/PaymentScheduleAction.es.js +9 -9
  299. package/dist/recurringtransactions/components/recurrencecalendar/RecurrenceDay.es.js +5 -5
  300. package/dist/recurringtransactions/components/shared/recurringsettings/AddRecurringTransaction.es.js +25 -25
  301. package/dist/recurringtransactions/components/shared/recurringsettings/ManageIncome.es.js +5 -5
  302. package/dist/settings/components/notifications/NotificationSettings.es.js +12 -12
  303. package/dist/settings/components/profile/ProfileTab.es.js +20 -20
  304. package/dist/trends/TrendsWidget.es.js +25 -25
  305. package/package.json +1 -1
@@ -0,0 +1,45 @@
1
+ import { STATUS_SUCCESS_TOKENS as r } from "./statusTokens.es.js";
2
+ import o from "@mui/material/Stack";
3
+ import { Text as p } from "@mxenabled/mxui";
4
+ import { jsx as e, jsxs as a } from "react/jsx-runtime";
5
+ var f = ({ bgcolor: t = r.bgcolor, borderColor: i = r.borderColor, icon: d, message: l, messageColor: s = r.textColor, sx: x }) => /* @__PURE__ */ e(o, {
6
+ sx: {
7
+ px: 16,
8
+ py: 16,
9
+ width: "100%",
10
+ ...x
11
+ },
12
+ children: /* @__PURE__ */ a(o, {
13
+ role: "status",
14
+ sx: {
15
+ alignItems: "center",
16
+ bgcolor: t,
17
+ border: "1px solid",
18
+ borderColor: i,
19
+ borderRadius: "8px",
20
+ flexDirection: "row",
21
+ gap: 4,
22
+ px: 16,
23
+ py: 14,
24
+ width: "100%"
25
+ },
26
+ children: [/* @__PURE__ */ e(o, {
27
+ sx: {
28
+ flexShrink: 0,
29
+ px: 4,
30
+ py: 6
31
+ },
32
+ children: d
33
+ }), /* @__PURE__ */ e(p, {
34
+ bold: !0,
35
+ color: s,
36
+ variant: "body1",
37
+ children: l
38
+ })]
39
+ })
40
+ });
41
+ export {
42
+ f as default
43
+ };
44
+
45
+ //# sourceMappingURL=StatusMessageCard.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusMessageCard.es.js","names":[],"sources":["../../../src/insights-v2/components/StatusMessageCard.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\n\nimport Stack from '@mui/material/Stack'\nimport type { SxProps } from '@mui/material/styles'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport { STATUS_SUCCESS_TOKENS } from './statusTokens'\n\ninterface StatusMessageCardProps {\n /** Leading status icon (e.g. a check-circle). */\n icon: ReactNode\n /** Status message. */\n message: ReactNode\n /** Card surface color token. */\n bgcolor?: string\n /** Card border color token. */\n borderColor?: string\n /** Message text color token. */\n messageColor?: string\n sx?: SxProps\n}\n\n/**\n * Single-line status/success message card: a leading icon and a bold message on\n * a colored, bordered surface.\n *\n * Figma: the `All Categorized!` success state of Uncategorized Transactions V2\n * (`Card / Content / Slot`) — green card (`success.100` bg, `success.main`\n * border, radius 8), check-circle icon + bold message. Reusable for any\n * icon + message status/empty state.\n *\n * Scope is the Content section only; Header/Description are out of scope.\n */\nconst StatusMessageCard = ({\n bgcolor = STATUS_SUCCESS_TOKENS.bgcolor,\n borderColor = STATUS_SUCCESS_TOKENS.borderColor,\n icon,\n message,\n messageColor = STATUS_SUCCESS_TOKENS.textColor,\n sx,\n}: StatusMessageCardProps) => (\n <Stack sx={{ px: 16, py: 16, width: '100%', ...sx }}>\n <Stack\n role=\"status\"\n sx={{\n alignItems: 'center',\n bgcolor,\n border: '1px solid',\n borderColor,\n borderRadius: '8px',\n flexDirection: 'row',\n gap: 4,\n px: 16,\n py: 14,\n width: '100%',\n }}\n >\n <Stack sx={{ flexShrink: 0, px: 4, py: 6 }}>{icon}</Stack>\n <Text bold={true} color={messageColor} variant=\"body1\">\n {message}\n </Text>\n </Stack>\n </Stack>\n)\n\nexport default StatusMessageCard\n"],"mappings":";;;;AAkCA,IAAM,IAAA,CAAqB,EACzB,SAAA,IAAU,EAAsB,SAChC,aAAA,IAAc,EAAsB,aACpC,MAAA,GACA,SAAA,GACA,cAAA,IAAe,EAAsB,WACrC,IAAA,EAAA,MAEA,gBAAA,EAAC,GAAD;AAAA,EAAO,IAAI;AAAA,IAAE,IAAI;AAAA,IAAI,IAAI;AAAA,IAAI,OAAO;AAAA,IAAQ,GAAG;AAAA,EAAG;AAAA,EAChD,UAAA,gBAAA,EAAC,GAAD;AAAA,IACE,MAAK;AAAA,IACL,IAAI;AAAA,MACF,YAAY;AAAA,MACZ,SAAA;AAAA,MACA,QAAQ;AAAA,MACR,aAAA;AAAA,MACA,cAAc;AAAA,MACd,eAAe;AAAA,MACf,KAAK;AAAA,MACL,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,OAAO;AAAA,IACT;AAAA,IAbF,UAAA,CAeE,gBAAA,EAAC,GAAD;AAAA,MAAO,IAAI;AAAA,QAAE,YAAY;AAAA,QAAG,IAAI;AAAA,QAAG,IAAI;AAAA,MAAE;AAAA,MAAI,UAAA;AAAA,IAAY,CAAA,GACzD,gBAAA,EAAC,GAAD;AAAA,MAAM,MAAM;AAAA,MAAM,OAAO;AAAA,MAAc,SAAQ;AAAA,MAC5C,UAAA;AAAA,IACG,CAAA,CACD;AAAA;AACF,CAAA"}
@@ -0,0 +1,26 @@
1
+ import { ReactNode } from 'react';
2
+ import { SxProps } from '@mui/material/styles';
3
+ interface StatusPillProps {
4
+ /** Pill label. */
5
+ label: ReactNode;
6
+ /** Optional leading icon (e.g. a check-circle). */
7
+ icon?: ReactNode;
8
+ /** Pill background color token. */
9
+ bgcolor?: string;
10
+ /** Pill border color token. */
11
+ borderColor?: string;
12
+ /** Label color token. */
13
+ labelColor?: string;
14
+ sx?: SxProps;
15
+ }
16
+ /**
17
+ * A small rounded status pill: optional icon + label on a tinted, bordered
18
+ * surface.
19
+ *
20
+ * Figma: the "Categorized" pill in Peer-to-Peer Categorization (`success.100`
21
+ * bg, `success.main` border, radius 999, 24px tall, check icon + `success.darker`
22
+ * `typography/subtitle2` label — regular weight, NOT bold). Reusable for any
23
+ * inline status.
24
+ */
25
+ declare const StatusPill: ({ bgcolor, borderColor, icon, label, labelColor, sx, }: StatusPillProps) => import("react/jsx-runtime").JSX.Element;
26
+ export default StatusPill;
@@ -0,0 +1,30 @@
1
+ import { STATUS_SUCCESS_TOKENS as r } from "./statusTokens.es.js";
2
+ import s from "@mui/material/Stack";
3
+ import { Text as m } from "@mxenabled/mxui";
4
+ import { jsx as x, jsxs as p } from "react/jsx-runtime";
5
+ var c = ({ bgcolor: o = r.bgcolor, borderColor: t = r.borderColor, icon: e, label: i, labelColor: l = r.textColor, sx: a }) => /* @__PURE__ */ p(s, {
6
+ sx: {
7
+ alignItems: "center",
8
+ alignSelf: "flex-start",
9
+ bgcolor: o,
10
+ border: "1px solid",
11
+ borderColor: t,
12
+ borderRadius: 999,
13
+ flexDirection: "row",
14
+ gap: 6,
15
+ minHeight: 24,
16
+ px: 16,
17
+ py: 2,
18
+ ...a
19
+ },
20
+ children: [e, /* @__PURE__ */ x(m, {
21
+ color: l,
22
+ variant: "subtitle2",
23
+ children: i
24
+ })]
25
+ });
26
+ export {
27
+ c as default
28
+ };
29
+
30
+ //# sourceMappingURL=StatusPill.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusPill.es.js","names":[],"sources":["../../../src/insights-v2/components/StatusPill.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\n\nimport Stack from '@mui/material/Stack'\nimport type { SxProps } from '@mui/material/styles'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport { STATUS_SUCCESS_TOKENS } from './statusTokens'\n\ninterface StatusPillProps {\n /** Pill label. */\n label: ReactNode\n /** Optional leading icon (e.g. a check-circle). */\n icon?: ReactNode\n /** Pill background color token. */\n bgcolor?: string\n /** Pill border color token. */\n borderColor?: string\n /** Label color token. */\n labelColor?: string\n sx?: SxProps\n}\n\n/**\n * A small rounded status pill: optional icon + label on a tinted, bordered\n * surface.\n *\n * Figma: the \"Categorized\" pill in Peer-to-Peer Categorization (`success.100`\n * bg, `success.main` border, radius 999, 24px tall, check icon + `success.darker`\n * `typography/subtitle2` label — regular weight, NOT bold). Reusable for any\n * inline status.\n */\nconst StatusPill = ({\n bgcolor = STATUS_SUCCESS_TOKENS.bgcolor,\n borderColor = STATUS_SUCCESS_TOKENS.borderColor,\n icon,\n label,\n labelColor = STATUS_SUCCESS_TOKENS.textColor,\n sx,\n}: StatusPillProps) => (\n <Stack\n sx={{\n alignItems: 'center',\n alignSelf: 'flex-start',\n bgcolor,\n border: '1px solid',\n borderColor,\n borderRadius: 999,\n flexDirection: 'row',\n gap: 6,\n minHeight: 24,\n px: 16,\n py: 2,\n ...sx,\n }}\n >\n {icon}\n <Text color={labelColor} variant=\"subtitle2\">\n {label}\n </Text>\n </Stack>\n)\n\nexport default StatusPill\n"],"mappings":";;;;AAgCA,IAAM,IAAA,CAAc,EAClB,SAAA,IAAU,EAAsB,SAChC,aAAA,IAAc,EAAsB,aACpC,MAAA,GACA,OAAA,GACA,YAAA,IAAa,EAAsB,WACnC,IAAA,EAAA,MAEA,gBAAA,EAAC,GAAD;AAAA,EACE,IAAI;AAAA,IACF,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,SAAA;AAAA,IACA,QAAQ;AAAA,IACR,aAAA;AAAA,IACA,cAAc;AAAA,IACd,eAAe;AAAA,IACf,KAAK;AAAA,IACL,WAAW;AAAA,IACX,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,GAAG;AAAA,EACL;AAAA,EAdF,UAAA,CAgBG,GACD,gBAAA,EAAC,GAAD;AAAA,IAAM,OAAO;AAAA,IAAY,SAAQ;AAAA,IAC9B,UAAA;AAAA,EACG,CAAA,CACD"}
@@ -0,0 +1,6 @@
1
+ import { Subtitle } from '../../core';
2
+ interface SubHeaderProps {
3
+ subtitle: Subtitle;
4
+ }
5
+ declare const SubHeader: ({ subtitle }: SubHeaderProps) => import("react/jsx-runtime").JSX.Element;
6
+ export default SubHeader;
@@ -0,0 +1,40 @@
1
+ import n from "@mui/material/Stack";
2
+ import { CategoryIcon as a, InstitutionLogo as u, MerchantLogo as o, Text as c } from "@mxenabled/mxui";
3
+ import { Icon as s } from "@mxenabled/mx-icons";
4
+ import { jsx as r, jsxs as d } from "react/jsx-runtime";
5
+ var m = (t) => t ? t.logo_name ? /* @__PURE__ */ r(s, {
6
+ name: t.logo_name,
7
+ size: 16,
8
+ sx: { color: t.logo_color }
9
+ }) : t.institution_guid ? /* @__PURE__ */ r(u, {
10
+ alt: t.institution_name,
11
+ institutionGuid: t.institution_guid,
12
+ size: 16
13
+ }) : t.merchant_guid ? /* @__PURE__ */ r(o, {
14
+ alt: t.merchant_name,
15
+ categoryGuid: t.category_guid,
16
+ merchantGuid: t.merchant_guid,
17
+ size: 16
18
+ }) : t.category_guid ? /* @__PURE__ */ r(a, {
19
+ categoryGuid: t.category_guid,
20
+ size: 16
21
+ }) : null : null, y = ({ subtitle: t }) => {
22
+ const { logo: e, text: i } = t;
23
+ return /* @__PURE__ */ d(n, {
24
+ sx: {
25
+ alignItems: "center",
26
+ flexDirection: "row",
27
+ gap: 8
28
+ },
29
+ children: [m(e), /* @__PURE__ */ r(c, {
30
+ color: "text.secondary",
31
+ variant: "body2",
32
+ children: i
33
+ })]
34
+ });
35
+ };
36
+ export {
37
+ y as default
38
+ };
39
+
40
+ //# sourceMappingURL=SubHeader.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubHeader.es.js","names":[],"sources":["../../../src/insights-v2/components/SubHeader.tsx"],"sourcesContent":["import Stack from '@mui/material/Stack'\n\nimport { CategoryIcon, InstitutionLogo, MerchantLogo, Text } from '@mxenabled/mxui'\nimport { Icon } from '@mxenabled/mx-icons'\nimport type { Logo, Subtitle } from '../../core'\n\ninterface SubHeaderProps {\n subtitle: Subtitle\n}\n\nconst renderLogo = (logo: Logo | undefined) => {\n if (!logo) return null\n\n if (logo.logo_name) {\n return <Icon name={logo.logo_name} size={16} sx={{ color: logo.logo_color }} />\n }\n\n if (logo.institution_guid) {\n return (\n <InstitutionLogo\n alt={logo.institution_name as string}\n institutionGuid={logo.institution_guid}\n size={16}\n />\n )\n }\n\n if (logo.merchant_guid) {\n return (\n <MerchantLogo\n alt={logo.merchant_name as string}\n categoryGuid={logo.category_guid as string}\n merchantGuid={logo.merchant_guid}\n size={16}\n />\n )\n }\n\n if (logo.category_guid) {\n return <CategoryIcon categoryGuid={logo.category_guid} size={16} />\n }\n\n return null\n}\n\nconst SubHeader = ({ subtitle }: SubHeaderProps) => {\n const { logo, text } = subtitle\n\n return (\n <Stack sx={{ alignItems: 'center', flexDirection: 'row', gap: 8 }}>\n {renderLogo(logo)}\n <Text color=\"text.secondary\" variant=\"body2\">\n {text}\n </Text>\n </Stack>\n )\n}\n\nexport default SubHeader\n"],"mappings":";;;;AAUA,IAAM,IAAA,CAAc,MACb,IAED,EAAK,YACA,gBAAA,EAAC,GAAD;AAAA,EAAM,MAAM,EAAK;AAAA,EAAW,MAAM;AAAA,EAAI,IAAI,EAAE,OAAO,EAAK,WAAW;AAAI,CAAA,IAG5E,EAAK,mBAEL,gBAAA,EAAC,GAAD;AAAA,EACE,KAAK,EAAK;AAAA,EACV,iBAAiB,EAAK;AAAA,EACtB,MAAM;AACP,CAAA,IAID,EAAK,gBAEL,gBAAA,EAAC,GAAD;AAAA,EACE,KAAK,EAAK;AAAA,EACV,cAAc,EAAK;AAAA,EACnB,cAAc,EAAK;AAAA,EACnB,MAAM;AACP,CAAA,IAID,EAAK,gBACA,gBAAA,EAAC,GAAD;AAAA,EAAc,cAAc,EAAK;AAAA,EAAe,MAAM;AAAK,CAAA,IAG7D,OA/BW,MAkCd,IAAA,CAAa,EAAE,UAAA,EAAA,MAA+B;AAClD,QAAM,EAAE,MAAA,GAAM,MAAA,EAAA,IAAS;AAEvB,SACE,gBAAA,EAAC,GAAD;AAAA,IAAO,IAAI;AAAA,MAAE,YAAY;AAAA,MAAU,eAAe;AAAA,MAAO,KAAK;AAAA,IAAE;AAAA,IAAhE,UAAA,CACG,EAAW,CAAI,GAChB,gBAAA,EAAC,GAAD;AAAA,MAAM,OAAM;AAAA,MAAiB,SAAQ;AAAA,MAClC,UAAA;AAAA,IACG,CAAA,CACD;AAAA;AAEX"}
@@ -0,0 +1,27 @@
1
+ import { ReactNode } from 'react';
2
+ import { SxProps } from '@mui/material/styles';
3
+ interface SubscriptionHeroCardProps {
4
+ /** Central hero brand/merchant logo. */
5
+ logo: ReactNode;
6
+ /** Subscription/merchant name. */
7
+ name: ReactNode;
8
+ /** Price, e.g. "$16.06 / month". Rendered as a dark pill. */
9
+ price: ReactNode;
10
+ /** Optional decorative backdrop (e.g. scattered faded logos) behind the hero. */
11
+ backdrop?: ReactNode;
12
+ /** Card surface color/background token. */
13
+ bgcolor?: string;
14
+ sx?: SxProps;
15
+ }
16
+ /**
17
+ * A hero subscription card: a centered brand logo, name, and price pill over an
18
+ * optional decorative backdrop.
19
+ *
20
+ * Figma: Upcoming Subscription Content (`Card / Content / Slot`) — padding 24,
21
+ * `background.default` surface, a 64px hero `<Logo>`, name (`h2`) and a dark
22
+ * price pill, with faded scattered logos behind.
23
+ *
24
+ * Scope is the Content section only; Header/Description are out of scope.
25
+ */
26
+ declare const SubscriptionHeroCard: ({ backdrop, bgcolor, logo, name, price, sx, }: SubscriptionHeroCardProps) => import("react/jsx-runtime").JSX.Element;
27
+ export default SubscriptionHeroCard;
@@ -0,0 +1,63 @@
1
+ import x from "./AmountPill.es.js";
2
+ import e from "@mui/material/Stack";
3
+ import { Text as p } from "@mxenabled/mxui";
4
+ import { jsx as i, jsxs as r } from "react/jsx-runtime";
5
+ import t from "@mui/material/Box";
6
+ var g = ({ backdrop: o, bgcolor: n = "background.default", logo: l, name: d, price: s, sx: a }) => /* @__PURE__ */ i(e, {
7
+ sx: {
8
+ px: 16,
9
+ width: "100%",
10
+ ...a
11
+ },
12
+ children: /* @__PURE__ */ r(t, {
13
+ sx: {
14
+ bgcolor: n,
15
+ borderRadius: "8px",
16
+ overflow: "hidden",
17
+ position: "relative",
18
+ width: "100%"
19
+ },
20
+ children: [o && /* @__PURE__ */ i(t, {
21
+ "aria-hidden": !0,
22
+ sx: {
23
+ inset: 0,
24
+ position: "absolute"
25
+ },
26
+ children: o
27
+ }), /* @__PURE__ */ r(e, {
28
+ sx: {
29
+ alignItems: "center",
30
+ gap: 12,
31
+ position: "relative",
32
+ px: 24,
33
+ py: 24
34
+ },
35
+ children: [/* @__PURE__ */ i(t, {
36
+ sx: {
37
+ display: "flex",
38
+ flexShrink: 0
39
+ },
40
+ children: l
41
+ }), /* @__PURE__ */ r(e, {
42
+ sx: {
43
+ alignItems: "center",
44
+ gap: 2
45
+ },
46
+ children: [/* @__PURE__ */ i(p, {
47
+ bold: !0,
48
+ variant: "h2",
49
+ children: d
50
+ }), /* @__PURE__ */ i(x, {
51
+ px: 10,
52
+ sx: { alignSelf: "center" },
53
+ children: s
54
+ })]
55
+ })]
56
+ })]
57
+ })
58
+ });
59
+ export {
60
+ g as default
61
+ };
62
+
63
+ //# sourceMappingURL=SubscriptionHeroCard.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubscriptionHeroCard.es.js","names":[],"sources":["../../../src/insights-v2/components/SubscriptionHeroCard.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\n\nimport Box from '@mui/material/Box'\nimport Stack from '@mui/material/Stack'\nimport type { SxProps } from '@mui/material/styles'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport AmountPill from './AmountPill'\n\ninterface SubscriptionHeroCardProps {\n /** Central hero brand/merchant logo. */\n logo: ReactNode\n /** Subscription/merchant name. */\n name: ReactNode\n /** Price, e.g. \"$16.06 / month\". Rendered as a dark pill. */\n price: ReactNode\n /** Optional decorative backdrop (e.g. scattered faded logos) behind the hero. */\n backdrop?: ReactNode\n /** Card surface color/background token. */\n bgcolor?: string\n sx?: SxProps\n}\n\n/**\n * A hero subscription card: a centered brand logo, name, and price pill over an\n * optional decorative backdrop.\n *\n * Figma: Upcoming Subscription Content (`Card / Content / Slot`) — padding 24,\n * `background.default` surface, a 64px hero `<Logo>`, name (`h2`) and a dark\n * price pill, with faded scattered logos behind.\n *\n * Scope is the Content section only; Header/Description are out of scope.\n */\nconst SubscriptionHeroCard = ({\n backdrop,\n bgcolor = 'background.default',\n logo,\n name,\n price,\n sx,\n}: SubscriptionHeroCardProps) => (\n <Stack sx={{ px: 16, width: '100%', ...sx }}>\n <Box\n sx={{\n bgcolor,\n borderRadius: '8px',\n overflow: 'hidden',\n position: 'relative',\n width: '100%',\n }}\n >\n {backdrop && (\n <Box aria-hidden={true} sx={{ inset: 0, position: 'absolute' }}>\n {backdrop}\n </Box>\n )}\n <Stack sx={{ alignItems: 'center', gap: 12, position: 'relative', px: 24, py: 24 }}>\n <Box sx={{ display: 'flex', flexShrink: 0 }}>{logo}</Box>\n <Stack sx={{ alignItems: 'center', gap: 2 }}>\n <Text bold={true} variant=\"h2\">\n {name}\n </Text>\n <AmountPill px={10} sx={{ alignSelf: 'center' }}>\n {price}\n </AmountPill>\n </Stack>\n </Stack>\n </Box>\n </Stack>\n)\n\nexport default SubscriptionHeroCard\n"],"mappings":";;;;;AAkCA,IAAM,IAAA,CAAwB,EAC5B,UAAA,GACA,SAAA,IAAU,sBACV,MAAA,GACA,MAAA,GACA,OAAA,GACA,IAAA,EAAA,MAEA,gBAAA,EAAC,GAAD;AAAA,EAAO,IAAI;AAAA,IAAE,IAAI;AAAA,IAAI,OAAO;AAAA,IAAQ,GAAG;AAAA,EAAG;AAAA,EACxC,UAAA,gBAAA,EAAC,GAAD;AAAA,IACE,IAAI;AAAA,MACF,SAAA;AAAA,MACA,cAAc;AAAA,MACd,UAAU;AAAA,MACV,UAAU;AAAA,MACV,OAAO;AAAA,IACT;AAAA,IAPF,UAAA,CASG,KACC,gBAAA,EAAC,GAAD;AAAA,MAAK,eAAa;AAAA,MAAM,IAAI;AAAA,QAAE,OAAO;AAAA,QAAG,UAAU;AAAA,MAAW;AAAA,MAC1D,UAAA;AAAA,IACE,CAAA,GAEP,gBAAA,EAAC,GAAD;AAAA,MAAO,IAAI;AAAA,QAAE,YAAY;AAAA,QAAU,KAAK;AAAA,QAAI,UAAU;AAAA,QAAY,IAAI;AAAA,QAAI,IAAI;AAAA,MAAG;AAAA,MAAjF,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,QAAK,IAAI;AAAA,UAAE,SAAS;AAAA,UAAQ,YAAY;AAAA,QAAE;AAAA,QAAI,UAAA;AAAA,MAAU,CAAA,GACxD,gBAAA,EAAC,GAAD;AAAA,QAAO,IAAI;AAAA,UAAE,YAAY;AAAA,UAAU,KAAK;AAAA,QAAE;AAAA,QAA1C,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,UAAM,MAAM;AAAA,UAAM,SAAQ;AAAA,UACvB,UAAA;AAAA,QACG,CAAA,GACN,gBAAA,EAAC,GAAD;AAAA,UAAY,IAAI;AAAA,UAAI,IAAI,EAAE,WAAW,SAAS;AAAA,UAC3C,UAAA;AAAA,QACS,CAAA,CACP;AAAA,MACF,CAAA,CAAA;AAAA,IACJ,CAAA,CAAA;AAAA;AACA,CAAA"}
@@ -0,0 +1,45 @@
1
+ import { ReactNode } from 'react';
2
+ import { SxProps } from '@mui/material/styles';
3
+ import { InsightTransactionRowProps } from './InsightTransactionRow';
4
+ export interface FooterRow {
5
+ label: ReactNode;
6
+ amount: ReactNode;
7
+ amountColor?: string;
8
+ }
9
+ type TransactionListCardVariant = 'default' | 'primary';
10
+ interface TransactionListCardProps {
11
+ /** Optional header label above the rows (e.g. "{Date}", "3 transactions"). */
12
+ header?: ReactNode;
13
+ /** One or more transaction rows. */
14
+ rows: InsightTransactionRowProps[];
15
+ /** Optional summary/total row rendered beneath a divider. */
16
+ footer?: FooterRow;
17
+ /**
18
+ * Card style:
19
+ * - `default` — grey utility header, hairline border, radius 4.
20
+ * - `primary` — filled `primary.main` header with white text and a matching
21
+ * border, radius 8 (Figma "Multi" variant).
22
+ *
23
+ * In both cases the header is borderless; the border wraps the content block
24
+ * below it.
25
+ */
26
+ variant?: TransactionListCardVariant;
27
+ /**
28
+ * Optional background applied to the Slot behind the card. Must be a valid CSS
29
+ * background string (gradient or color in CSS format); MUI theme tokens are
30
+ * not resolved here (this is the CSS `background` shorthand, not `bgcolor`), so
31
+ * use a CSS color literal instead. When set, the inner card renders borderless
32
+ * on a white surface inside the padded Slot (Figma HSA Deposit).
33
+ */
34
+ background?: string;
35
+ sx?: SxProps;
36
+ }
37
+ /**
38
+ * List card composing an optional header label, one or more
39
+ * `InsightTransactionRow`s (divided), and an optional footer/total row.
40
+ * `variant` supplies the Figma design defaults for the two card styles.
41
+ *
42
+ * Scope is the Content section only; Header/Description are out of scope.
43
+ */
44
+ declare const TransactionListCard: ({ background, footer, header, rows, variant, sx, }: TransactionListCardProps) => import("react/jsx-runtime").JSX.Element | null;
45
+ export default TransactionListCard;
@@ -0,0 +1,118 @@
1
+ import C from "./InsightTransactionRow.es.js";
2
+ import { Fragment as R } from "react";
3
+ import t from "@mui/material/Stack";
4
+ import { Text as h } from "@mxenabled/mxui";
5
+ import { Fragment as x, jsx as r, jsxs as d } from "react/jsx-runtime";
6
+ import v from "@mui/material/Box";
7
+ import p from "@mui/material/Divider";
8
+ var w = (n) => n === "primary" ? {
9
+ radius: "8px",
10
+ borderColor: "primary.main",
11
+ headerBg: "primary.main",
12
+ headerColor: "primary.contrastText",
13
+ headerBold: !1,
14
+ headerInsideBorder: !1,
15
+ headerSx: {
16
+ minHeight: 24,
17
+ px: 12,
18
+ py: 4
19
+ }
20
+ } : {
21
+ radius: "4px",
22
+ borderColor: "divider",
23
+ headerBg: "background.default",
24
+ headerColor: "text.secondary",
25
+ headerBold: !0,
26
+ headerInsideBorder: !0,
27
+ headerSx: {
28
+ minHeight: 40,
29
+ px: 16,
30
+ py: 2
31
+ }
32
+ }, H = ({ background: n, footer: l, header: a, rows: m, variant: g = "default", sx: b }) => {
33
+ if (m.length === 0) return null;
34
+ const e = w(g), i = !!n, o = i ? "8px" : e.radius, s = !!a && !i && e.headerInsideBorder, c = a ? /* @__PURE__ */ r(t, {
35
+ sx: {
36
+ bgcolor: e.headerBg,
37
+ justifyContent: "center",
38
+ ...e.headerSx
39
+ },
40
+ children: /* @__PURE__ */ r(h, {
41
+ bold: e.headerBold,
42
+ color: e.headerColor,
43
+ variant: "caption",
44
+ children: a
45
+ })
46
+ }) : null, f = l ? /* @__PURE__ */ d(x, { children: [/* @__PURE__ */ r(p, {}), /* @__PURE__ */ d(t, {
47
+ sx: {
48
+ alignItems: "center",
49
+ bgcolor: i ? "background.paper" : "background.default",
50
+ flexDirection: "row",
51
+ justifyContent: "space-between",
52
+ minHeight: 40,
53
+ px: 16,
54
+ py: 2
55
+ },
56
+ children: [/* @__PURE__ */ r(h, {
57
+ color: "text.secondary",
58
+ variant: "caption",
59
+ children: l.label
60
+ }), /* @__PURE__ */ r(h, {
61
+ bold: !0,
62
+ color: l.amountColor ?? "text.primary",
63
+ variant: "body2",
64
+ children: l.amount
65
+ })]
66
+ })] }) : null, B = /* @__PURE__ */ r(t, {
67
+ role: "list",
68
+ sx: { width: "100%" },
69
+ children: m.map((y, u) => /* @__PURE__ */ d(R, { children: [u > 0 && /* @__PURE__ */ r(p, { role: "presentation" }), /* @__PURE__ */ r(v, {
70
+ role: "listitem",
71
+ children: /* @__PURE__ */ r(C, { ...y })
72
+ })] }, u))
73
+ });
74
+ return /* @__PURE__ */ d(t, {
75
+ sx: {
76
+ ...i ? {
77
+ background: n,
78
+ p: 16
79
+ } : {
80
+ pt: 8,
81
+ px: 16
82
+ },
83
+ width: "100%",
84
+ ...b
85
+ },
86
+ children: [!s && c && /* @__PURE__ */ r(t, {
87
+ sx: {
88
+ borderTopLeftRadius: o,
89
+ borderTopRightRadius: o,
90
+ overflow: "hidden"
91
+ },
92
+ children: c
93
+ }), /* @__PURE__ */ d(t, {
94
+ sx: {
95
+ ...i ? { bgcolor: "background.paper" } : {
96
+ border: "1px solid",
97
+ borderColor: e.borderColor
98
+ },
99
+ borderBottomLeftRadius: o,
100
+ borderBottomRightRadius: o,
101
+ borderTopLeftRadius: s || !a ? o : 0,
102
+ borderTopRightRadius: s || !a ? o : 0,
103
+ overflow: "hidden",
104
+ width: "100%"
105
+ },
106
+ children: [
107
+ s && /* @__PURE__ */ d(x, { children: [c, /* @__PURE__ */ r(p, {})] }),
108
+ B,
109
+ f
110
+ ]
111
+ })]
112
+ });
113
+ };
114
+ export {
115
+ H as default
116
+ };
117
+
118
+ //# sourceMappingURL=TransactionListCard.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransactionListCard.es.js","names":[],"sources":["../../../src/insights-v2/components/TransactionListCard.tsx"],"sourcesContent":["import { Fragment, type ReactNode } from 'react'\n\nimport Box from '@mui/material/Box'\nimport Divider from '@mui/material/Divider'\nimport Stack from '@mui/material/Stack'\nimport type { SxProps } from '@mui/material/styles'\n\nimport { Text } from '@mxenabled/mxui'\n\nimport InsightTransactionRow, { type InsightTransactionRowProps } from './InsightTransactionRow'\n\nexport interface FooterRow {\n label: ReactNode\n amount: ReactNode\n amountColor?: string\n}\n\ntype TransactionListCardVariant = 'default' | 'primary'\n\ninterface TransactionListCardProps {\n /** Optional header label above the rows (e.g. \"{Date}\", \"3 transactions\"). */\n header?: ReactNode\n /** One or more transaction rows. */\n rows: InsightTransactionRowProps[]\n /** Optional summary/total row rendered beneath a divider. */\n footer?: FooterRow\n /**\n * Card style:\n * - `default` — grey utility header, hairline border, radius 4.\n * - `primary` — filled `primary.main` header with white text and a matching\n * border, radius 8 (Figma \"Multi\" variant).\n *\n * In both cases the header is borderless; the border wraps the content block\n * below it.\n */\n variant?: TransactionListCardVariant\n /**\n * Optional background applied to the Slot behind the card. Must be a valid CSS\n * background string (gradient or color in CSS format); MUI theme tokens are\n * not resolved here (this is the CSS `background` shorthand, not `bgcolor`), so\n * use a CSS color literal instead. When set, the inner card renders borderless\n * on a white surface inside the padded Slot (Figma HSA Deposit).\n */\n background?: string\n sx?: SxProps\n}\n\nconst getVariantStyles = (variant: TransactionListCardVariant) => {\n switch (variant) {\n case 'primary':\n // Borderless filled header on top of the bordered rows block.\n return {\n radius: '8px',\n borderColor: 'primary.main',\n headerBg: 'primary.main',\n headerColor: 'primary.contrastText',\n headerBold: false,\n headerInsideBorder: false,\n headerSx: { minHeight: 24, px: 12, py: 4 } as const,\n }\n default:\n // A single border wraps the card; the grey header sits inside it.\n return {\n radius: '4px',\n borderColor: 'divider',\n headerBg: 'background.default',\n headerColor: 'text.secondary',\n headerBold: true,\n headerInsideBorder: true,\n headerSx: { minHeight: 40, px: 16, py: 2 } as const,\n }\n }\n}\n\n/**\n * List card composing an optional header label, one or more\n * `InsightTransactionRow`s (divided), and an optional footer/total row.\n * `variant` supplies the Figma design defaults for the two card styles.\n *\n * Scope is the Content section only; Header/Description are out of scope.\n */\nconst TransactionListCard = ({\n background,\n footer,\n header,\n rows,\n variant = 'default',\n sx,\n}: TransactionListCardProps) => {\n // rows usually comes from mapped API data, so an empty array is reachable and\n // would render a broken border shell; render nothing instead.\n if (rows.length === 0) return null\n\n const styles = getVariantStyles(variant)\n const hasBackground = Boolean(background)\n const radius = hasBackground ? '8px' : styles.radius\n // The header sits inside the border only for the bordered `default` variant;\n // for `primary`/backgrounded cards it sits above a separately-bordered body.\n const headerInsideBorder = Boolean(header) && !hasBackground && styles.headerInsideBorder\n\n const headerBlock = header ? (\n <Stack sx={{ bgcolor: styles.headerBg, justifyContent: 'center', ...styles.headerSx }}>\n <Text bold={styles.headerBold} color={styles.headerColor} variant=\"caption\">\n {header}\n </Text>\n </Stack>\n ) : null\n\n const footerBlock = footer ? (\n <>\n <Divider />\n <Stack\n sx={{\n alignItems: 'center',\n bgcolor: hasBackground ? 'background.paper' : 'background.default',\n flexDirection: 'row',\n justifyContent: 'space-between',\n minHeight: 40,\n px: 16,\n py: 2,\n }}\n >\n <Text color=\"text.secondary\" variant=\"caption\">\n {footer.label}\n </Text>\n <Text bold={true} color={footer.amountColor ?? 'text.primary'} variant=\"body2\">\n {footer.amount}\n </Text>\n </Stack>\n </>\n ) : null\n\n const rowsBlock = (\n <Stack role=\"list\" sx={{ width: '100%' }}>\n {rows.map((row, index) => (\n // Static, caller-ordered list that may contain identical rows, so the\n // array index is the correct key (a content-based key would collide).\n // eslint-disable-next-line react/no-array-index-key\n <Fragment key={index}>\n {index > 0 && <Divider role=\"presentation\" />}\n <Box role=\"listitem\">\n <InsightTransactionRow {...row} />\n </Box>\n </Fragment>\n ))}\n </Stack>\n )\n\n return (\n <Stack\n sx={{\n ...(hasBackground ? { background, p: 16 } : { pt: 8, px: 16 }),\n width: '100%',\n ...sx,\n }}\n >\n {/* Header above the border for `primary`/backgrounded cards; top-rounded. */}\n {!headerInsideBorder && headerBlock && (\n <Stack\n sx={{\n borderTopLeftRadius: radius,\n borderTopRightRadius: radius,\n overflow: 'hidden',\n }}\n >\n {headerBlock}\n </Stack>\n )}\n\n <Stack\n sx={{\n ...(hasBackground\n ? { bgcolor: 'background.paper' }\n : { border: '1px solid', borderColor: styles.borderColor }),\n borderBottomLeftRadius: radius,\n borderBottomRightRadius: radius,\n borderTopLeftRadius: headerInsideBorder || !header ? radius : 0,\n borderTopRightRadius: headerInsideBorder || !header ? radius : 0,\n overflow: 'hidden',\n width: '100%',\n }}\n >\n {/* Header inside the border for the `default` table variant. */}\n {headerInsideBorder && (\n <>\n {headerBlock}\n <Divider />\n </>\n )}\n {rowsBlock}\n {footerBlock}\n </Stack>\n </Stack>\n )\n}\n\nexport default TransactionListCard\n"],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { ReactNode } from 'react';
2
+ import { SxProps } from '@mui/material/styles';
3
+ interface TransferLogoCardProps {
4
+ /** Source institution logo (left). */
5
+ from: ReactNode;
6
+ /** Destination institution logo (right). */
7
+ to: ReactNode;
8
+ /** Logo tile size in px (Figma: 64). */
9
+ size?: number;
10
+ /** Arrow icon rendered in the center badge. Defaults to a right arrow. */
11
+ icon?: ReactNode;
12
+ /**
13
+ * Enlarge the inner connector dots (6px vs 4px), matching the Discovered
14
+ * Accounts insight for cross-insight consistency. Default true.
15
+ */
16
+ hasBigDots?: boolean;
17
+ /** Center badge background color token. Default `neutral.darker` (dark circle
18
+ * for Switch DD default; set to `success.main` for Discovered Accounts success). */
19
+ badgeBgColor?: string;
20
+ /** Slot surface color token. Default `primary.lighter` (Figma's tinted slot,
21
+ * theme-aware: light-blue in light mode, navy in dark). */
22
+ bgcolor?: string;
23
+ /**
24
+ * Optional background image (e.g., celebration gradient) for success states.
25
+ * Layered over the `bgcolor` via `backgroundImage` (not `background` shorthand).
26
+ */
27
+ backgroundImage?: string;
28
+ /**
29
+ * Show a confetti animation filling the slot (for success/celebration states).
30
+ * Requires `useContainerDimensions` to measure the slot. Default false.
31
+ */
32
+ showConfetti?: boolean;
33
+ sx?: SxProps;
34
+ }
35
+ /**
36
+ * A from → to account transfer visual: two institution logos on a rounded track
37
+ * with a central arrow badge and connector dots between them.
38
+ *
39
+ * Figma: Switch Direct Deposit (default) Content. Structure ported from v1
40
+ * `insights/components/shared/ConnectionCard` (grid-overlaid track + row).
41
+ * Scope is the Content section only.
42
+ */
43
+ declare const TransferLogoCard: ({ badgeBgColor, bgcolor, backgroundImage, from, hasBigDots, icon, showConfetti, size, to, sx, }: TransferLogoCardProps) => import("react/jsx-runtime").JSX.Element;
44
+ export default TransferLogoCard;
@@ -0,0 +1,121 @@
1
+ import { useContainerDimensions as g } from "../hooks/useContainerDimensions.es.js";
2
+ import { Confetti as w } from "./shared/Confetti.es.js";
3
+ import { useRef as v } from "react";
4
+ import d from "@mui/material/Stack";
5
+ import { Icon as I } from "@mxenabled/mx-icons";
6
+ import { jsx as r, jsxs as n } from "react/jsx-runtime";
7
+ import t from "@mui/material/Box";
8
+ import R from "@mui/material/Card";
9
+ var C = 240, b = 40, y = 204, T = /* @__PURE__ */ r(I, {
10
+ "aria-hidden": !0,
11
+ name: "arrow_forward",
12
+ size: 20,
13
+ sx: { color: "neutral.lighter" }
14
+ }), a = ({ size: e = 4 }) => /* @__PURE__ */ r(t, { sx: {
15
+ bgcolor: "neutral.darker",
16
+ borderRadius: "4px",
17
+ height: e,
18
+ width: e
19
+ } }), D = () => {
20
+ const e = v(null), { height: i, width: o } = g(e);
21
+ return /* @__PURE__ */ r(t, {
22
+ "aria-hidden": !0,
23
+ ref: e,
24
+ sx: {
25
+ inset: 0,
26
+ position: "absolute",
27
+ zIndex: 0
28
+ },
29
+ children: /* @__PURE__ */ r(w, {
30
+ height: i,
31
+ shouldRun: i > 0,
32
+ width: o
33
+ })
34
+ });
35
+ }, K = ({ badgeBgColor: e = "neutral.darker", bgcolor: i = "primary.lighter", backgroundImage: o, from: c, hasBigDots: f = !0, icon: x = T, showConfetti: m = !1, size: s = 64, to: p, sx: u }) => {
36
+ const l = f ? 6 : 4, h = {
37
+ borderRadius: "4px",
38
+ flexShrink: 0,
39
+ height: s,
40
+ overflow: "hidden",
41
+ width: s
42
+ };
43
+ return /* @__PURE__ */ n(t, {
44
+ sx: {
45
+ bgcolor: i,
46
+ ...o && { backgroundImage: o },
47
+ p: 16,
48
+ position: "relative",
49
+ width: "100%",
50
+ ...u
51
+ },
52
+ children: [m && /* @__PURE__ */ r(D, {}), /* @__PURE__ */ r(R, {
53
+ sx: {
54
+ position: "relative",
55
+ py: 16,
56
+ zIndex: 1
57
+ },
58
+ children: /* @__PURE__ */ n(t, {
59
+ sx: {
60
+ display: "grid",
61
+ placeItems: "center"
62
+ },
63
+ children: [/* @__PURE__ */ r(t, { sx: {
64
+ bgcolor: "neutral.lighter",
65
+ borderRadius: "24px",
66
+ gridArea: "1 / 1",
67
+ height: b,
68
+ width: C
69
+ } }), /* @__PURE__ */ n(d, {
70
+ sx: {
71
+ alignItems: "center",
72
+ flexDirection: "row",
73
+ gridArea: "1 / 1",
74
+ height: s,
75
+ justifyContent: "space-between",
76
+ width: y
77
+ },
78
+ children: [
79
+ /* @__PURE__ */ r(t, {
80
+ sx: h,
81
+ children: c
82
+ }),
83
+ /* @__PURE__ */ n(d, {
84
+ sx: {
85
+ alignItems: "center",
86
+ flexDirection: "row",
87
+ gap: 4
88
+ },
89
+ children: [
90
+ /* @__PURE__ */ r(a, {}),
91
+ /* @__PURE__ */ r(a, { size: l }),
92
+ /* @__PURE__ */ r(d, {
93
+ sx: {
94
+ alignItems: "center",
95
+ bgcolor: e,
96
+ borderRadius: "50%",
97
+ height: 28,
98
+ justifyContent: "center",
99
+ width: 28
100
+ },
101
+ children: x
102
+ }),
103
+ /* @__PURE__ */ r(a, { size: l }),
104
+ /* @__PURE__ */ r(a, {})
105
+ ]
106
+ }),
107
+ /* @__PURE__ */ r(t, {
108
+ sx: h,
109
+ children: p
110
+ })
111
+ ]
112
+ })]
113
+ })
114
+ })]
115
+ });
116
+ };
117
+ export {
118
+ K as default
119
+ };
120
+
121
+ //# sourceMappingURL=TransferLogoCard.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransferLogoCard.es.js","names":[],"sources":["../../../src/insights-v2/components/TransferLogoCard.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\nimport { useRef } from 'react'\n\nimport Box from '@mui/material/Box'\nimport Card from '@mui/material/Card'\nimport Stack from '@mui/material/Stack'\nimport type { SxProps } from '@mui/material/styles'\n\nimport { Icon } from '@mxenabled/mx-icons'\n\nimport { Confetti } from './shared/Confetti'\nimport { useContainerDimensions } from '../hooks/useContainerDimensions'\n\n// Figma track/row footprints (mirrors v1 `shared/ConnectionCard`): a 240×40\n// rounded track centered behind a 204×64 row of logos + center badge.\nconst TRACK_WIDTH = 240\nconst TRACK_HEIGHT = 40\nconst ROW_WIDTH = 204\n\ninterface TransferLogoCardProps {\n /** Source institution logo (left). */\n from: ReactNode\n /** Destination institution logo (right). */\n to: ReactNode\n /** Logo tile size in px (Figma: 64). */\n size?: number\n /** Arrow icon rendered in the center badge. Defaults to a right arrow. */\n icon?: ReactNode\n /**\n * Enlarge the inner connector dots (6px vs 4px), matching the Discovered\n * Accounts insight for cross-insight consistency. Default true.\n */\n hasBigDots?: boolean\n /** Center badge background color token. Default `neutral.darker` (dark circle\n * for Switch DD default; set to `success.main` for Discovered Accounts success). */\n badgeBgColor?: string\n /** Slot surface color token. Default `primary.lighter` (Figma's tinted slot,\n * theme-aware: light-blue in light mode, navy in dark). */\n bgcolor?: string\n /**\n * Optional background image (e.g., celebration gradient) for success states.\n * Layered over the `bgcolor` via `backgroundImage` (not `background` shorthand).\n */\n backgroundImage?: string\n /**\n * Show a confetti animation filling the slot (for success/celebration states).\n * Requires `useContainerDimensions` to measure the slot. Default false.\n */\n showConfetti?: boolean\n sx?: SxProps\n}\n\n// Default center-badge glyph. Hoisted to a stable reference so it isn't\n// re-created each render (`neutral.lighter` is the theme-aware inverse of the\n// badge fill: light glyph on dark badge, and vice-versa in dark).\nconst defaultTransferIcon = (\n <Icon aria-hidden={true} name=\"arrow_forward\" size={20} sx={{ color: 'neutral.lighter' }} />\n)\n\n// Connector dot: a small rounded square that reads as a dot at this size\n// (matches v1 `ConnectionCard`'s `Dot`). `neutral.darker` is theme-aware. The\n// inner pair is larger (`bigDots`, as Discovered Accounts uses) than the outer.\nconst Dot = ({ size = 4 }: { size?: number }) => (\n <Box sx={{ bgcolor: 'neutral.darker', borderRadius: '4px', height: size, width: size }} />\n)\n\n/**\n * Confetti overlay for the success state. Measures the container and fires the\n * burst once dimensions arrive. Scoped to this component so the resize listener\n * only mounts when confetti is shown.\n */\nconst ConfettiOverlay = () => {\n const overlayRef = useRef<HTMLDivElement>(null)\n const { height, width } = useContainerDimensions(overlayRef)\n return (\n <Box aria-hidden={true} ref={overlayRef} sx={{ inset: 0, position: 'absolute', zIndex: 0 }}>\n <Confetti height={height} shouldRun={height > 0} width={width} />\n </Box>\n )\n}\n\n/**\n * A from → to account transfer visual: two institution logos on a rounded track\n * with a central arrow badge and connector dots between them.\n *\n * Figma: Switch Direct Deposit (default) Content. Structure ported from v1\n * `insights/components/shared/ConnectionCard` (grid-overlaid track + row).\n * Scope is the Content section only.\n */\nconst TransferLogoCard = ({\n badgeBgColor = 'neutral.darker',\n bgcolor = 'primary.lighter',\n backgroundImage,\n from,\n hasBigDots = true,\n icon = defaultTransferIcon,\n showConfetti = false,\n size = 64,\n to,\n sx,\n}: TransferLogoCardProps) => {\n const dotSize = hasBigDots ? 6 : 4\n const logoSx = {\n borderRadius: '4px',\n flexShrink: 0,\n height: size,\n overflow: 'hidden',\n width: size,\n } as const\n\n return (\n <Box\n sx={{\n bgcolor,\n ...(backgroundImage && { backgroundImage }),\n p: 16,\n // Positioned wrapper so the confetti overlay can fill the slot; the card\n // sits above it (zIndex). No `overflow: hidden` — that would clip the\n // burst's upper area (per the figma-to-code confetti guidance).\n position: 'relative',\n width: '100%',\n ...sx,\n }}\n >\n {showConfetti && <ConfettiOverlay />}\n <Card sx={{ position: 'relative', py: 16, zIndex: 1 }}>\n <Box sx={{ display: 'grid', placeItems: 'center' }}>\n {/* Grey track, centered behind the row via a shared grid cell. */}\n <Box\n sx={{\n bgcolor: 'neutral.lighter',\n borderRadius: '24px',\n gridArea: '1 / 1',\n height: TRACK_HEIGHT,\n width: TRACK_WIDTH,\n }}\n />\n <Stack\n sx={{\n alignItems: 'center',\n flexDirection: 'row',\n gridArea: '1 / 1',\n height: size,\n justifyContent: 'space-between',\n width: ROW_WIDTH,\n }}\n >\n <Box sx={logoSx}>{from}</Box>\n <Stack sx={{ alignItems: 'center', flexDirection: 'row', gap: 4 }}>\n <Dot />\n <Dot size={dotSize} />\n <Stack\n sx={{\n alignItems: 'center',\n bgcolor: badgeBgColor,\n borderRadius: '50%',\n height: 28,\n justifyContent: 'center',\n width: 28,\n }}\n >\n {icon}\n </Stack>\n <Dot size={dotSize} />\n <Dot />\n </Stack>\n <Box sx={logoSx}>{to}</Box>\n </Stack>\n </Box>\n </Card>\n </Box>\n )\n}\n\nexport default TransferLogoCard\n"],"mappings":"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"}