@mx-cartographer/experiences 9.1.0-alpha.bb1 → 9.1.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 (245) hide show
  1. package/CHANGELOG.md +75 -0
  2. package/README.md +10 -10
  3. package/dist/Account-DR7Plrqy.mjs +119 -0
  4. package/dist/Account-DR7Plrqy.mjs.map +1 -0
  5. package/dist/AccountDetailsDrawer-CZPeLsCq.mjs +922 -0
  6. package/dist/AccountDetailsDrawer-CZPeLsCq.mjs.map +1 -0
  7. package/dist/AccountDetailsHeader-BvbCUQSS.mjs +231 -0
  8. package/dist/AccountDetailsHeader-BvbCUQSS.mjs.map +1 -0
  9. package/dist/AccountUtils-B8ZzWI-d.mjs +28 -0
  10. package/dist/AccountUtils-B8ZzWI-d.mjs.map +1 -0
  11. package/dist/Analytics-CkYXKvco.mjs +54 -0
  12. package/dist/Analytics-CkYXKvco.mjs.map +1 -0
  13. package/dist/Analytics-WeZYytR0.mjs +140 -0
  14. package/dist/Analytics-WeZYytR0.mjs.map +1 -0
  15. package/dist/ApiEndpoints-DXwIYNUV.mjs +50 -0
  16. package/dist/ApiEndpoints-DXwIYNUV.mjs.map +1 -0
  17. package/dist/BeatMaterialIcon-1KOfRZrA.mjs +27 -0
  18. package/dist/BeatMaterialIcon-1KOfRZrA.mjs.map +1 -0
  19. package/dist/BudgetUtil-Bg2AQJpQ.mjs +75 -0
  20. package/dist/BudgetUtil-Bg2AQJpQ.mjs.map +1 -0
  21. package/dist/Category-DEKZGLYe.mjs +302 -0
  22. package/dist/Category-DEKZGLYe.mjs.map +1 -0
  23. package/dist/CategorySelectorDrawer-NJsFsKP1.mjs +431 -0
  24. package/dist/CategorySelectorDrawer-NJsFsKP1.mjs.map +1 -0
  25. package/dist/Connect-BH0Pt6zc.mjs +43 -0
  26. package/dist/Connect-BH0Pt6zc.mjs.map +1 -0
  27. package/dist/ConnectCard-D7uxoH5Y.mjs +55 -0
  28. package/dist/ConnectCard-D7uxoH5Y.mjs.map +1 -0
  29. package/dist/ConnectDrawer-CW4LA3H3.mjs +58 -0
  30. package/dist/ConnectDrawer-CW4LA3H3.mjs.map +1 -0
  31. package/dist/ConnectionsDrawer-CZU9ku-k.mjs +54 -0
  32. package/dist/ConnectionsDrawer-CZU9ku-k.mjs.map +1 -0
  33. package/dist/CurrencyDialog-DumQCTPO.mjs +374 -0
  34. package/dist/CurrencyDialog-DumQCTPO.mjs.map +1 -0
  35. package/dist/CurrencyInput-DaGEQaLW.mjs +88 -0
  36. package/dist/CurrencyInput-DaGEQaLW.mjs.map +1 -0
  37. package/dist/CurrencyText-CCbE6MmF.mjs +21 -0
  38. package/dist/CurrencyText-CCbE6MmF.mjs.map +1 -0
  39. package/dist/DateFormats-HudZ3Bjs.mjs +65 -0
  40. package/dist/DateFormats-HudZ3Bjs.mjs.map +1 -0
  41. package/dist/DateUtil-CzBmbjmA.mjs +75 -0
  42. package/dist/DateUtil-CzBmbjmA.mjs.map +1 -0
  43. package/dist/DebtUtils-i4pI2Uoe.mjs +154 -0
  44. package/dist/DebtUtils-i4pI2Uoe.mjs.map +1 -0
  45. package/dist/Dialog-Bvd2n8hz.mjs +67 -0
  46. package/dist/Dialog-Bvd2n8hz.mjs.map +1 -0
  47. package/dist/Donut-SzzfZDHF.mjs +89 -0
  48. package/dist/Donut-SzzfZDHF.mjs.map +1 -0
  49. package/dist/Drawer-DsnW2o0v.mjs +175 -0
  50. package/dist/Drawer-DsnW2o0v.mjs.map +1 -0
  51. package/dist/EmbeddedCard-DH8vQ3qN.mjs +859 -0
  52. package/dist/EmbeddedCard-DH8vQ3qN.mjs.map +1 -0
  53. package/dist/EmptyState-CJUDc3kD.mjs +85 -0
  54. package/dist/EmptyState-CJUDc3kD.mjs.map +1 -0
  55. package/dist/Error-Dtw6yxkf.mjs +85 -0
  56. package/dist/Error-Dtw6yxkf.mjs.map +1 -0
  57. package/dist/ErrorBoundary-CsdOcnJ9.mjs +24 -0
  58. package/dist/ErrorBoundary-CsdOcnJ9.mjs.map +1 -0
  59. package/dist/ExportCsvAction-C9KWH3Az.mjs +25 -0
  60. package/dist/ExportCsvAction-C9KWH3Az.mjs.map +1 -0
  61. package/dist/GlobalAccountFilter-BhzR5Vb1.mjs +230 -0
  62. package/dist/GlobalAccountFilter-BhzR5Vb1.mjs.map +1 -0
  63. package/dist/GlobalCopyApi-wcnDUzMV.mjs +129 -0
  64. package/dist/GlobalCopyApi-wcnDUzMV.mjs.map +1 -0
  65. package/dist/GoalsUtil-C9EnLWvC.mjs +108 -0
  66. package/dist/GoalsUtil-C9EnLWvC.mjs.map +1 -0
  67. package/dist/HeaderCell-P8w6CmfO.mjs +7 -0
  68. package/dist/HeaderCell-P8w6CmfO.mjs.map +1 -0
  69. package/dist/Help-CkQTjORd.mjs +300 -0
  70. package/dist/Help-CkQTjORd.mjs.map +1 -0
  71. package/dist/Help-aERwhajy.mjs +3210 -0
  72. package/dist/Help-aERwhajy.mjs.map +1 -0
  73. package/dist/IconBacking-DgT8DCeh.mjs +40 -0
  74. package/dist/IconBacking-DgT8DCeh.mjs.map +1 -0
  75. package/dist/InformationTooltip-4su8bn1e.mjs +42 -0
  76. package/dist/InformationTooltip-4su8bn1e.mjs.map +1 -0
  77. package/dist/InvestmentUtil-BItV7uEs.mjs +135 -0
  78. package/dist/InvestmentUtil-BItV7uEs.mjs.map +1 -0
  79. package/dist/LineChart-CUfiH86G.mjs +613 -0
  80. package/dist/LineChart-CUfiH86G.mjs.map +1 -0
  81. package/dist/ListItemAction-BqUCLj_w.mjs +70 -0
  82. package/dist/ListItemAction-BqUCLj_w.mjs.map +1 -0
  83. package/dist/ListItemRow-kH1rn8Xu.mjs +68 -0
  84. package/dist/ListItemRow-kH1rn8Xu.mjs.map +1 -0
  85. package/dist/ListItemWrapper-DRse79Iu.mjs +44 -0
  86. package/dist/ListItemWrapper-DRse79Iu.mjs.map +1 -0
  87. package/dist/Loader-CxeBwuPG.mjs +22 -0
  88. package/dist/Loader-CxeBwuPG.mjs.map +1 -0
  89. package/dist/Localization-DnoVyBNK.mjs +39 -0
  90. package/dist/Localization-DnoVyBNK.mjs.map +1 -0
  91. package/dist/ManageIncome-Dcsnnz86.mjs +906 -0
  92. package/dist/ManageIncome-Dcsnnz86.mjs.map +1 -0
  93. package/dist/MicroWidgetContainer-B2NnKBgW.mjs +46 -0
  94. package/dist/MicroWidgetContainer-B2NnKBgW.mjs.map +1 -0
  95. package/dist/MiniWidgetContainer-Bmv_WeUd.mjs +67 -0
  96. package/dist/MiniWidgetContainer-Bmv_WeUd.mjs.map +1 -0
  97. package/dist/NetWorthUtils-DfSH3z70.mjs +96 -0
  98. package/dist/NetWorthUtils-DfSH3z70.mjs.map +1 -0
  99. package/dist/Notification-DTNYSd8P.mjs +8 -0
  100. package/dist/Notification-DTNYSd8P.mjs.map +1 -0
  101. package/dist/NotificationSettings-CW7okUrk.mjs +678 -0
  102. package/dist/NotificationSettings-CW7okUrk.mjs.map +1 -0
  103. package/dist/NotificationUtils-BRGFTePr.mjs +24 -0
  104. package/dist/NotificationUtils-BRGFTePr.mjs.map +1 -0
  105. package/dist/NumberFormatting--XMeeBfr.mjs +50 -0
  106. package/dist/NumberFormatting--XMeeBfr.mjs.map +1 -0
  107. package/dist/OriginalBalanceAction-YrvxBYAl.mjs +115 -0
  108. package/dist/OriginalBalanceAction-YrvxBYAl.mjs.map +1 -0
  109. package/dist/RecurringSettings-D8hBbXV_.mjs +89 -0
  110. package/dist/RecurringSettings-D8hBbXV_.mjs.map +1 -0
  111. package/dist/RecurringTransactionsUtil-CHWmqvW5.mjs +299 -0
  112. package/dist/RecurringTransactionsUtil-CHWmqvW5.mjs.map +1 -0
  113. package/dist/ResponsiveButton-CC9F_Ezk.mjs +46 -0
  114. package/dist/ResponsiveButton-CC9F_Ezk.mjs.map +1 -0
  115. package/dist/SearchBox-Cpgu_gdO.mjs +51 -0
  116. package/dist/SearchBox-Cpgu_gdO.mjs.map +1 -0
  117. package/dist/Select-CSpkK5cR.mjs +62 -0
  118. package/dist/Select-CSpkK5cR.mjs.map +1 -0
  119. package/dist/SelectionBox-B4xELRgp.mjs +49 -0
  120. package/dist/SelectionBox-B4xELRgp.mjs.map +1 -0
  121. package/dist/SingleSegmentDonut-7Uy6VEld.mjs +70 -0
  122. package/dist/SingleSegmentDonut-7Uy6VEld.mjs.map +1 -0
  123. package/dist/Sizes-DISGrlUg.mjs +7 -0
  124. package/dist/Sizes-DISGrlUg.mjs.map +1 -0
  125. package/dist/SkeletonLoader-BaNboJjD.mjs +39 -0
  126. package/dist/SkeletonLoader-BaNboJjD.mjs.map +1 -0
  127. package/dist/SpendingData-Fii_xATx.mjs +54 -0
  128. package/dist/SpendingData-Fii_xATx.mjs.map +1 -0
  129. package/dist/SpendingLegend-CxvNOg3c.mjs +204 -0
  130. package/dist/SpendingLegend-CxvNOg3c.mjs.map +1 -0
  131. package/dist/StatusBar-CPfSXe80.mjs +31 -0
  132. package/dist/StatusBar-CPfSXe80.mjs.map +1 -0
  133. package/dist/TabContentContainer-B0eYJP5p.mjs +49 -0
  134. package/dist/TabContentContainer-B0eYJP5p.mjs.map +1 -0
  135. package/dist/ToggleListItem-Dl1lXNwj.mjs +92 -0
  136. package/dist/ToggleListItem-Dl1lXNwj.mjs.map +1 -0
  137. package/dist/TransactionDetails-roZ5xLq8.mjs +1708 -0
  138. package/dist/TransactionDetails-roZ5xLq8.mjs.map +1 -0
  139. package/dist/TransactionUtils-BphBJBbU.mjs +235 -0
  140. package/dist/TransactionUtils-BphBJBbU.mjs.map +1 -0
  141. package/dist/TrendsUtil-D9z3kIj_.mjs +70 -0
  142. package/dist/TrendsUtil-D9z3kIj_.mjs.map +1 -0
  143. package/dist/UserStore-C1fdL3Iu.mjs +3054 -0
  144. package/dist/UserStore-C1fdL3Iu.mjs.map +1 -0
  145. package/dist/ViewMoreMicroCard-fnwE0hqd.mjs +1280 -0
  146. package/dist/ViewMoreMicroCard-fnwE0hqd.mjs.map +1 -0
  147. package/dist/WidgetContainer-DJnp6t6c.mjs +483 -0
  148. package/dist/WidgetContainer-DJnp6t6c.mjs.map +1 -0
  149. package/dist/accounts/components/detailsdrawer/Accounts/AccountDetailsDrawer.d.ts +6 -0
  150. package/dist/accounts/index.d.ts +1 -0
  151. package/dist/accounts/index.es.js +784 -12
  152. package/dist/accounts/index.es.js.map +1 -0
  153. package/dist/analytics/index.es.js +140 -155
  154. package/dist/analytics/index.es.js.map +1 -0
  155. package/dist/budgets/index.es.js +1267 -1317
  156. package/dist/budgets/index.es.js.map +1 -0
  157. package/dist/cashflow/index.es.js +943 -1047
  158. package/dist/cashflow/index.es.js.map +1 -0
  159. package/dist/categories/index.es.js +5 -4
  160. package/dist/categories/index.es.js.map +1 -0
  161. package/dist/common/components/DataRow.d.ts +1 -0
  162. package/dist/common/components/ListItemWrapper.d.ts +2 -1
  163. package/dist/common/constants/Analytics.d.ts +3 -0
  164. package/dist/common/index.es.js +310 -101
  165. package/dist/common/index.es.js.map +1 -0
  166. package/dist/core/index.es.js +105 -80
  167. package/dist/core/index.es.js.map +1 -0
  168. package/dist/core/stores/RecurringTransactionsStore.d.ts +29 -1
  169. package/dist/core/stores/TransactionStore.d.ts +1 -0
  170. package/dist/core/types/localization/RecurringCopy.d.ts +14 -1
  171. package/dist/core/types/localization/SpendingCopy.d.ts +1 -0
  172. package/dist/core/utils/DateUtil.d.ts +2 -0
  173. package/dist/core/utils/RecurringTransactionsUtil.d.ts +2 -1
  174. package/dist/dashboard/index.es.js +142 -185
  175. package/dist/dashboard/index.es.js.map +1 -0
  176. package/dist/debts/index.es.js +1273 -1384
  177. package/dist/debts/index.es.js.map +1 -0
  178. package/dist/finstrong/index.es.js +3473 -3367
  179. package/dist/finstrong/index.es.js.map +1 -0
  180. package/dist/goals/index.es.js +984 -1103
  181. package/dist/goals/index.es.js.map +1 -0
  182. package/dist/help/index.es.js +26 -3
  183. package/dist/help/index.es.js.map +1 -0
  184. package/dist/hooks-97sNJ_lf.mjs +78 -0
  185. package/dist/hooks-97sNJ_lf.mjs.map +1 -0
  186. package/dist/insights/components/insights/WeeklyNoSpendDays/BubbleWeek.d.ts +4 -1
  187. package/dist/insights/components/insights/WeeklyNoSpendDays/WeeklyNoSpendDays.d.ts +4 -2
  188. package/dist/insights/index.es.js +4871 -93
  189. package/dist/insights/index.es.js.map +1 -0
  190. package/dist/investments/index.es.js +1523 -1533
  191. package/dist/investments/index.es.js.map +1 -0
  192. package/dist/merchants/index.es.js +65 -75
  193. package/dist/merchants/index.es.js.map +1 -0
  194. package/dist/microinsights/index.es.js +826 -15
  195. package/dist/microinsights/index.es.js.map +1 -0
  196. package/dist/networth/index.es.js +504 -550
  197. package/dist/networth/index.es.js.map +1 -0
  198. package/dist/notifications/index.es.js +162 -169
  199. package/dist/notifications/index.es.js.map +1 -0
  200. package/dist/recurringtransactions/components/RecurringTransactionDetails.d.ts +3 -2
  201. package/dist/recurringtransactions/components/RecurringTransactionDetailsDrawer.d.ts +3 -0
  202. package/dist/recurringtransactions/components/RecurringTransactionList.d.ts +11 -0
  203. package/dist/recurringtransactions/components/UpcomingRecurrenceCard.d.ts +8 -0
  204. package/dist/recurringtransactions/components/actions/LinkTransactionDrawer.d.ts +10 -0
  205. package/dist/recurringtransactions/components/actions/MarkAsPaidDialog.d.ts +7 -0
  206. package/dist/recurringtransactions/components/actions/MarkAsUnpaidDialog.d.ts +7 -0
  207. package/dist/recurringtransactions/index.es.js +1012 -10
  208. package/dist/recurringtransactions/index.es.js.map +1 -0
  209. package/dist/settings/index.es.js +892 -13
  210. package/dist/settings/index.es.js.map +1 -0
  211. package/dist/spending/index.es.js +457 -400
  212. package/dist/spending/index.es.js.map +1 -0
  213. package/dist/transactions/components/shared/transactionlist/TransactionRow.d.ts +1 -0
  214. package/dist/transactions/index.es.js +604 -10
  215. package/dist/transactions/index.es.js.map +1 -0
  216. package/dist/trends/index.es.js +1408 -1268
  217. package/dist/trends/index.es.js.map +1 -0
  218. package/dist/useAccountDisplayName-BsiXA0qf.mjs +24 -0
  219. package/dist/useAccountDisplayName-BsiXA0qf.mjs.map +1 -0
  220. package/dist/useAriaLive-MkYebyUR.mjs +36 -0
  221. package/dist/useAriaLive-MkYebyUR.mjs.map +1 -0
  222. package/dist/useDimensions-CeDR9V8N.mjs +37 -0
  223. package/dist/useDimensions-CeDR9V8N.mjs.map +1 -0
  224. package/dist/useInsightsEnabled-D5Sdm0TJ.mjs +12 -0
  225. package/dist/useInsightsEnabled-D5Sdm0TJ.mjs.map +1 -0
  226. package/dist/useScreenSize-mWpmnh5w.mjs +37 -0
  227. package/dist/useScreenSize-mWpmnh5w.mjs.map +1 -0
  228. package/dist/useWidgetLoadTimer-B0tB-yzL.mjs +20 -0
  229. package/dist/useWidgetLoadTimer-B0tB-yzL.mjs.map +1 -0
  230. package/package.json +30 -30
  231. package/dist/Analytics-BKzTPees.mjs +0 -61
  232. package/dist/GlobalCopyApi-BeXzaDH9.mjs +0 -487
  233. package/dist/HeaderCell-EhCUSjvj.mjs +0 -10
  234. package/dist/Loader-BlVzRtUd.mjs +0 -73
  235. package/dist/MiniWidgetContainer-COwnjfy7.mjs +0 -110
  236. package/dist/OriginalBalanceAction-sbiqaxok.mjs +0 -110
  237. package/dist/SpendingLegend-D15ixlQ1.mjs +0 -222
  238. package/dist/accounts-DkyAiLpg.mjs +0 -15632
  239. package/dist/core-BexP5oiV.mjs +0 -4047
  240. package/dist/help-CctDYrAH.mjs +0 -2308
  241. package/dist/insights/components/insights/P2pCategorization/_tests_/P2pCategorizationMultipleTransaction.test.d.ts +0 -0
  242. package/dist/insights/components/insights/P2pCategorization/_tests_/P2pCategorizationSingleTransaction.test.d.ts +0 -0
  243. package/dist/microinsights-CRf3ChsJ.mjs +0 -1814
  244. package/dist/recurringtransactions-gbJ_NA8u.mjs +0 -1564
  245. package/dist/settings-ZMHe439l.mjs +0 -1526
@@ -1,6 +1,11 @@
1
+ import { AlertProps } from '@mui/material';
1
2
  import { RepeatingTransactionsApi } from '../api';
2
- import { Recurrence, RepeatingTransaction, Transaction, DateRange } from '../types';
3
+ import { Recurrence, RecurringCopy, RepeatingTransaction, Transaction, DateRange } from '../types';
3
4
  import { GlobalStore } from './GlobalStore';
5
+ interface RecurringAlertProps {
6
+ message: string;
7
+ severity: AlertProps['severity'];
8
+ }
4
9
  export declare class RecurringTransactionsStore {
5
10
  globalStore: GlobalStore;
6
11
  api: RepeatingTransactionsApi;
@@ -8,7 +13,11 @@ export declare class RecurringTransactionsStore {
8
13
  isDataLoaded: boolean;
9
14
  selectedDay: Date | undefined;
10
15
  dateRange: DateRange;
16
+ selectedRepeatingTransactionGuid: string | null;
17
+ selectedRecurrence: Recurrence | null;
18
+ alert: RecurringAlertProps;
11
19
  constructor(globalStore: GlobalStore);
20
+ get copy(): RecurringCopy;
12
21
  get detailedRepeatingTransactions(): RepeatingTransaction[];
13
22
  /**
14
23
  * Returns all recurrences built from repeating transactions and filtered by accounts.
@@ -80,6 +89,9 @@ export declare class RecurringTransactionsStore {
80
89
  * Get the recurrences for the currently selected day.
81
90
  */
82
91
  get selectedDayRecurrences(): Recurrence[] | undefined;
92
+ get selectedRepeatingTransaction(): RepeatingTransaction | undefined;
93
+ setSelectedRepeatingTransactionGuid: (guid: string | null) => string | null;
94
+ setSelectedRecurrence: (recurrence: Recurrence | null) => Recurrence | null;
83
95
  setRepeatingTransactions: (repeating: RepeatingTransaction[]) => void;
84
96
  /**
85
97
  * Set the date range for filtering recurrences.
@@ -112,4 +124,20 @@ export declare class RecurringTransactionsStore {
112
124
  * @param transaction - The repeating transaction to update.
113
125
  */
114
126
  updateRepeatingTransaction: (transaction: RepeatingTransaction) => Promise<void>;
127
+ /**
128
+ * Mark a recurrence as paid by linking a transaction to the repeating transaction.
129
+ * @param repeatingTransactionGuid - The GUID of the repeating transaction.
130
+ * @param transaction - The transaction to link.
131
+ */
132
+ markRecurrenceAsPaid: (repeatingTransactionGuid: string, transaction: Transaction) => Promise<void>;
133
+ /**
134
+ * Mark a recurrence as unpaid by unlinking the associated transaction from the repeating transaction.
135
+ * @param transaction - The transaction to unlink.
136
+ */
137
+ markRecurrenceAsUnpaid: (transaction: Transaction) => Promise<void>;
138
+ setAlert: (message: string, severity?: RecurringAlertProps["severity"]) => {
139
+ message: string;
140
+ severity: import('@mui/types').OverridableStringUnion<import('@mui/material').AlertColor, import('@mui/material').AlertPropsColorOverrides> | undefined;
141
+ };
115
142
  }
143
+ export {};
@@ -31,6 +31,7 @@ export declare class TransactionStore {
31
31
  transactionRules: TransactionRule[];
32
32
  transactionRulesLoaded: boolean;
33
33
  transactionRulesLoading: boolean;
34
+ transactionSplitting: boolean;
34
35
  cachedStartDate: Date;
35
36
  filter: TransactionFilter;
36
37
  isLoading: boolean;
@@ -50,8 +50,17 @@ export interface RecurringCopy {
50
50
  income_details: string;
51
51
  income_schedule: string;
52
52
  last_day_of_month: string;
53
+ link_transaction_button: string;
54
+ link_transaction_description: string;
55
+ link_transaction_error: string;
56
+ link_transaction_success: string;
53
57
  manage_expenses: string;
58
+ more_menu_aria: string;
54
59
  manage_income: string;
60
+ mark_as_paid_cta: string;
61
+ mark_as_paid_dialog_title: string;
62
+ mark_as_unpaid_cta: string;
63
+ mark_as_unpaid_dialog_title: string;
55
64
  mini_title: string;
56
65
  missed: string;
57
66
  missed_on: string;
@@ -63,8 +72,8 @@ export interface RecurringCopy {
63
72
  paid: string;
64
73
  paid_activity: string;
65
74
  paid_on: string;
66
- paid_transactions: string;
67
75
  past: string;
76
+ past_activity: string;
68
77
  past_transactions: string;
69
78
  payment_schedule: string;
70
79
  primary_cta: string;
@@ -93,6 +102,10 @@ export interface RecurringCopy {
93
102
  twice_a_month_ordinal: string;
94
103
  transaction_details_drawer_title: string;
95
104
  upcoming: string;
105
+ unlink_transaction_button: string;
106
+ unlink_transaction_description: string;
107
+ unlink_transaction_error: string;
108
+ unlink_transaction_success: string;
96
109
  upcoming_activity: string;
97
110
  upcoming_on: string;
98
111
  unknown: string;
@@ -1,5 +1,6 @@
1
1
  export interface SpendingCopy {
2
2
  by_category: string;
3
+ chart_description: string;
3
4
  close_drawer_aria: string;
4
5
  income_tab_title: string;
5
6
  mini_title: string;
@@ -1,5 +1,7 @@
1
1
  export declare const getNextWeeklyDate: (date: Date) => Date;
2
2
  export declare const getNextBiWeeklyDate: (date: Date) => Date;
3
+ export declare const getTwiceMonthlyDates: (day1: number, day2: number) => Date[];
4
+ export declare const getNextTwiceMonthlyDate: (day1: number, day2: number) => Date;
3
5
  export declare const getNextMonthlyDate: (date: Date) => Date;
4
6
  export declare const getNextBiMonthlyDate: (date: Date) => Date;
5
7
  export declare const getNextQuarterlyDate: (date: Date) => Date;
@@ -9,4 +9,5 @@ export declare const buildAllRecurrences: (repeatingTransactions: RepeatingTrans
9
9
  export declare const augmentRepeatingTransactions: (accounts: Account[], repeatingTransactions: RepeatingTransaction[], transactions: Transaction[]) => RepeatingTransaction[];
10
10
  export declare const groupRecurrencesByDate: (recurrences: Recurrence[]) => GroupedRecurrence[];
11
11
  export declare const getFrequencyLabel: (copy: RecurringCopy, repeatingTransaction: RepeatingTransaction, showOrdinal: boolean) => string;
12
- export declare const getNextPaymentDate: (frequency: Frequency, date: Date, recurrenceDay?: number) => Date;
12
+ export declare const getNextPaymentDate: (frequency: Frequency, date: Date, recurrenceDay?: number, secondRecurrenceDay?: number) => Date;
13
+ export declare const getNextUpcomingDate: (recurringTransaction: RepeatingTransaction, recurrences: Recurrence[]) => Date;
@@ -1,198 +1,155 @@
1
- import { Hn as y, Kn as S, mr as x } from "../accounts-DkyAiLpg.mjs";
2
- import { n as M } from "../Analytics-BKzTPees.mjs";
3
- import { i as C, m as v, p as b } from "../Loader-BlVzRtUd.mjs";
4
- import i from "react";
5
- import { observer as u } from "mobx-react-lite";
6
- import a from "@mui/material/Stack";
7
- import { H2 as D, Icon as _, P as z } from "@mxenabled/mxui";
8
- import G from "@mui/material/Button";
9
- import W from "@mui/material/Paper";
10
1
  import { jsx as e, jsxs as c } from "react/jsx-runtime";
11
- import { useTheme as k } from "@mui/material/styles";
12
- import A from "@mui/material/Box";
2
+ import o from "react";
3
+ import { observer as p } from "mobx-react-lite";
4
+ import u from "@mui/material/Grid";
5
+ import m from "@mui/material/Skeleton";
6
+ import s from "@mui/material/Stack";
7
+ import { useTheme as S } from "@mui/material/styles";
8
+ import { e as w, u as b, i as v } from "../hooks-97sNJ_lf.mjs";
9
+ import C from "@mui/material/Paper";
10
+ import { Icon as _, H2 as M, P as D } from "@mxenabled/mxui";
11
+ import { useMediaQuery as G } from "@mui/system";
12
+ import z from "@mui/material/Box";
13
+ import W from "@mui/material/Button";
14
+ import k from "@mui/material/IconButton";
15
+ import A from "@mui/material/Tooltip";
13
16
  import I from "@mui/material/useMediaQuery";
14
- import B from "@mui/material/IconButton";
15
- import F from "@mui/material/Tooltip";
16
- import l from "@mui/material/Skeleton";
17
- import { useMediaQuery as R } from "@mui/system";
18
- import m from "@mui/material/Grid";
19
- var j = u(() => {
20
- const t = k(), { appDataStore: { banner: n, loadBanner: s, user: o } } = v();
21
- return i.useEffect(() => {
22
- s().finally();
23
- }, [o]), n?.image_url ? /* @__PURE__ */ e(a, {
24
- sx: {
25
- alignItems: "center",
26
- width: "100%",
27
- mb: 24
28
- },
29
- children: /* @__PURE__ */ e("a", {
30
- href: n?.redirect_url,
31
- rel: "noreferrer",
32
- style: { width: "100%" },
33
- target: "_blank",
34
- children: /* @__PURE__ */ e("img", {
35
- alt: "",
36
- src: n.image_url,
37
- style: {
38
- width: "100%",
39
- height: "auto",
40
- border: `1px solid ${t.palette.grey[300]}`
17
+ import { G as B } from "../GlobalAccountFilter-BhzR5Vb1.mjs";
18
+ import { u as y } from "../useScreenSize-mWpmnh5w.mjs";
19
+ import { C as F } from "../ConnectDrawer-CW4LA3H3.mjs";
20
+ import { u as R } from "../useWidgetLoadTimer-B0tB-yzL.mjs";
21
+ const T = p(() => {
22
+ const t = S(), {
23
+ appDataStore: { banner: r, loadBanner: i, user: a }
24
+ } = w();
25
+ return o.useEffect(() => {
26
+ i().finally();
27
+ }, [a]), r?.image_url ? /* @__PURE__ */ e(
28
+ s,
29
+ {
30
+ sx: {
31
+ alignItems: "center",
32
+ width: "100%",
33
+ mb: 24
34
+ },
35
+ children: /* @__PURE__ */ e(
36
+ "a",
37
+ {
38
+ href: r?.redirect_url,
39
+ rel: "noreferrer",
40
+ style: {
41
+ width: "100%"
42
+ },
43
+ target: "_blank",
44
+ children: /* @__PURE__ */ e(
45
+ "img",
46
+ {
47
+ alt: "",
48
+ src: r.image_url,
49
+ style: {
50
+ width: "100%",
51
+ height: "auto",
52
+ border: `1px solid ${t.palette.grey[300]}`
53
+ }
54
+ }
55
+ )
41
56
  }
42
- })
43
- })
44
- }) : null;
45
- }), H = ({ handleConnectClick: t }) => {
46
- const { common: n } = b();
47
- return /* @__PURE__ */ e(A, { children: I("(max-width: 700px)") ? /* @__PURE__ */ e(F, {
48
- id: "add-accounts",
49
- placement: "bottom",
50
- title: n.add_accounts,
51
- children: /* @__PURE__ */ e(B, {
57
+ )
58
+ }
59
+ ) : null;
60
+ }), $ = ({ handleConnectClick: t }) => {
61
+ const { common: r } = b(), i = I("(max-width: 700px)");
62
+ return /* @__PURE__ */ e(z, { children: i ? /* @__PURE__ */ e(A, { id: "add-accounts", placement: "bottom", title: r.add_accounts, children: /* @__PURE__ */ e(
63
+ k,
64
+ {
52
65
  "aria-controls": "add_accounts",
53
66
  "aria-describedby": "add-accounts",
54
67
  "aria-haspopup": !0,
55
- "aria-label": n.add_accounts,
68
+ "aria-label": r.add_accounts,
56
69
  color: "primary",
57
70
  onClick: t,
58
- children: /* @__PURE__ */ e(_, {
59
- name: "add",
60
- size: 24
61
- })
62
- })
63
- }) : /* @__PURE__ */ e(G, {
64
- "aria-controls": "add_accounts",
65
- "aria-haspopup": !0,
66
- "aria-label": n.add_accounts,
67
- onClick: t,
68
- startIcon: /* @__PURE__ */ e(_, {
69
- name: "add",
70
- size: 24
71
- }),
72
- sx: {
73
- p: 12,
74
- whiteSpace: "nowrap",
75
- minWidth: "max-content"
76
- },
77
- variant: "text",
78
- children: n.add_accounts
79
- }) });
80
- }, Q = u(H), T = () => {
81
- const [t, n] = i.useState(!1), s = R("(max-width:320px)"), { common: o, connect: h } = b(), { config: d } = C(), { isMobile: p } = x(), g = () => {
82
- const r = (/* @__PURE__ */ new Date()).getHours();
83
- return r > 1 && r < 12 ? o.good_morning : r >= 12 && r < 18 ? o.good_afternoon : o.good_evening;
71
+ children: /* @__PURE__ */ e(_, { name: "add", size: 24 })
72
+ }
73
+ ) }) : /* @__PURE__ */ e(
74
+ W,
75
+ {
76
+ "aria-controls": "add_accounts",
77
+ "aria-haspopup": !0,
78
+ "aria-label": r.add_accounts,
79
+ onClick: t,
80
+ startIcon: /* @__PURE__ */ e(_, { name: "add", size: 24 }),
81
+ sx: {
82
+ p: 12,
83
+ whiteSpace: "nowrap",
84
+ minWidth: "max-content"
85
+ },
86
+ variant: "text",
87
+ children: r.add_accounts
88
+ }
89
+ ) });
90
+ }, j = p($), Q = () => {
91
+ const [t, r] = o.useState(!1), i = G("(max-width:320px)"), { common: a, connect: g } = b(), { config: d } = v(), { isMobile: f } = y(), x = () => {
92
+ const l = (/* @__PURE__ */ new Date()).getHours();
93
+ return l > 1 && l < 12 ? a.good_morning : l >= 12 && l < 18 ? a.good_afternoon : a.good_evening;
84
94
  };
85
- return /* @__PURE__ */ c(i.Fragment, { children: [/* @__PURE__ */ e(W, {
86
- sx: {
87
- gap: 12,
88
- mb: p ? 24 : 0,
89
- p: 24
90
- },
91
- children: /* @__PURE__ */ c(a, {
92
- alignItems: "center",
93
- flexDirection: "row",
94
- justifyContent: "space-between",
95
- children: [/* @__PURE__ */ c(a, { children: [/* @__PURE__ */ e(D, {
96
- variant: s ? "h2" : "h1",
97
- children: g()
98
- }), /* @__PURE__ */ e(z, {
99
- color: "text.secondary",
100
- children: o.heres_your_spending_overview
101
- })] }), /* @__PURE__ */ c(a, {
102
- flexDirection: "row",
103
- children: [d.show_connections_widget_in_master && /* @__PURE__ */ e(Q, { handleConnectClick: () => n(!0) }), /* @__PURE__ */ e(S, {})]
104
- })]
105
- })
106
- }), t && /* @__PURE__ */ e(y, {
107
- onClose: () => n(!1),
108
- showConnectWidget: t,
109
- title: h.mini_title
110
- })] });
111
- }, P = u(T), f = /* @__PURE__ */ (function(t) {
112
- return t[t.Main = 0] = "Main", t[t.RightSide = 1] = "RightSide", t[t.Disabled = 2] = "Disabled", t;
113
- })({}), $ = ({ widgets: t, isLoading: n }) => {
114
- const { isDesktop: s, isMobile: o } = x(), { copyStore: h } = v();
115
- M({
95
+ return /* @__PURE__ */ c(o.Fragment, { children: [
96
+ /* @__PURE__ */ e(C, { sx: { gap: 12, mb: f ? 24 : 0, p: 24 }, children: /* @__PURE__ */ c(s, { alignItems: "center", flexDirection: "row", justifyContent: "space-between", children: [
97
+ /* @__PURE__ */ c(s, { children: [
98
+ /* @__PURE__ */ e(M, { variant: i ? "h2" : "h1", children: x() }),
99
+ /* @__PURE__ */ e(D, { color: "text.secondary", children: a.heres_your_spending_overview })
100
+ ] }),
101
+ /* @__PURE__ */ c(s, { flexDirection: "row", children: [
102
+ d.show_connections_widget_in_master && /* @__PURE__ */ e(j, { handleConnectClick: () => r(!0) }),
103
+ /* @__PURE__ */ e(B, {})
104
+ ] })
105
+ ] }) }),
106
+ t && /* @__PURE__ */ e(
107
+ F,
108
+ {
109
+ onClose: () => r(!1),
110
+ showConnectWidget: t,
111
+ title: g.mini_title
112
+ }
113
+ )
114
+ ] });
115
+ }, H = p(Q);
116
+ var h = /* @__PURE__ */ ((t) => (t[t.Main = 0] = "Main", t[t.RightSide = 1] = "RightSide", t[t.Disabled = 2] = "Disabled", t))(h || {});
117
+ const P = ({ widgets: t, isLoading: r }) => {
118
+ const { isDesktop: i, isMobile: a } = y(), { copyStore: g } = w();
119
+ R({
116
120
  widgetName: "Dashboard",
117
- isLoaded: !n
118
- });
119
- const d = i.useMemo(() => t.filter((r) => r.location !== f.Disabled).sort((r, w) => r.index - w.index), [t]), p = i.useMemo(() => d.filter((r) => r.location === f.Main), [d]), g = i.useMemo(() => d.filter((r) => r.location === f.RightSide), [d]);
120
- return /* @__PURE__ */ c(m, {
121
- container: !0,
122
- spacing: o ? 0 : 24,
123
- children: [
124
- /* @__PURE__ */ e(m, {
125
- size: 12,
126
- sx: { pt: 16 },
127
- children: h.isInitialized && /* @__PURE__ */ e(P, {})
128
- }),
129
- /* @__PURE__ */ c(m, {
130
- size: {
131
- xs: 12,
132
- lg: 8
133
- },
134
- children: [
135
- /* @__PURE__ */ e(j, {}),
136
- n && /* @__PURE__ */ c(a, {
137
- direction: "column",
138
- spacing: 24,
139
- children: [
140
- /* @__PURE__ */ e(l, {
141
- height: 100,
142
- variant: "rounded",
143
- width: "100%"
144
- }),
145
- /* @__PURE__ */ e(l, {
146
- height: 300,
147
- variant: "rounded",
148
- width: "100%"
149
- }),
150
- /* @__PURE__ */ e(l, {
151
- height: 300,
152
- variant: "rounded",
153
- width: "100%"
154
- })
155
- ]
156
- }),
157
- !n && /* @__PURE__ */ e(a, {
158
- direction: "column",
159
- spacing: 24,
160
- children: s ? p.map((r) => /* @__PURE__ */ e(i.Fragment, { children: r.component }, r.index)) : d.map((r) => /* @__PURE__ */ e(i.Fragment, { children: r.component }, r.index))
161
- })
162
- ]
163
- }),
164
- s && /* @__PURE__ */ e(m, {
165
- size: { lg: 4 },
166
- children: n ? /* @__PURE__ */ c(a, {
167
- direction: "column",
168
- spacing: 24,
169
- children: [
170
- /* @__PURE__ */ e(l, {
171
- height: 200,
172
- variant: "rounded",
173
- width: "100%"
174
- }),
175
- /* @__PURE__ */ e(l, {
176
- height: 100,
177
- variant: "rounded",
178
- width: "100%"
179
- }),
180
- /* @__PURE__ */ e(l, {
181
- height: 300,
182
- variant: "rounded",
183
- width: "100%"
184
- })
185
- ]
186
- }) : /* @__PURE__ */ e(a, {
187
- direction: "column",
188
- spacing: 24,
189
- children: g.map((r) => /* @__PURE__ */ e(i.Fragment, { children: r.component }, r.index))
190
- })
191
- })
192
- ]
121
+ isLoaded: !r
193
122
  });
194
- }, ae = u($);
123
+ const d = o.useMemo(
124
+ () => t.filter((n) => n.location !== h.Disabled).sort((n, l) => n.index - l.index),
125
+ [t]
126
+ ), f = o.useMemo(
127
+ () => d.filter((n) => n.location === h.Main),
128
+ [d]
129
+ ), x = o.useMemo(
130
+ () => d.filter((n) => n.location === h.RightSide),
131
+ [d]
132
+ );
133
+ return /* @__PURE__ */ c(u, { container: !0, spacing: a ? 0 : 24, children: [
134
+ /* @__PURE__ */ e(u, { size: 12, sx: { pt: 16 }, children: g.isInitialized && /* @__PURE__ */ e(H, {}) }),
135
+ /* @__PURE__ */ c(u, { size: { xs: 12, lg: 8 }, children: [
136
+ /* @__PURE__ */ e(T, {}),
137
+ r && /* @__PURE__ */ c(s, { direction: "column", spacing: 24, children: [
138
+ /* @__PURE__ */ e(m, { height: 100, variant: "rounded", width: "100%" }),
139
+ /* @__PURE__ */ e(m, { height: 300, variant: "rounded", width: "100%" }),
140
+ /* @__PURE__ */ e(m, { height: 300, variant: "rounded", width: "100%" })
141
+ ] }),
142
+ !r && /* @__PURE__ */ e(s, { direction: "column", spacing: 24, children: i ? f.map((n) => /* @__PURE__ */ e(o.Fragment, { children: n.component }, n.index)) : d.map((n) => /* @__PURE__ */ e(o.Fragment, { children: n.component }, n.index)) })
143
+ ] }),
144
+ i && /* @__PURE__ */ e(u, { size: { lg: 4 }, children: r ? /* @__PURE__ */ c(s, { direction: "column", spacing: 24, children: [
145
+ /* @__PURE__ */ e(m, { height: 200, variant: "rounded", width: "100%" }),
146
+ /* @__PURE__ */ e(m, { height: 100, variant: "rounded", width: "100%" }),
147
+ /* @__PURE__ */ e(m, { height: 300, variant: "rounded", width: "100%" })
148
+ ] }) : /* @__PURE__ */ e(s, { direction: "column", spacing: 24, children: x.map((n) => /* @__PURE__ */ e(o.Fragment, { children: n.component }, n.index)) }) })
149
+ ] });
150
+ }, se = p(P);
195
151
  export {
196
- ae as Dashboard,
197
- f as DashboardLocation
152
+ se as Dashboard,
153
+ h as DashboardLocation
198
154
  };
155
+ //# sourceMappingURL=index.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es.js","sources":["../../src/common/components/Banner.tsx","../../src/common/components/addaccounts/AddAccounts.tsx","../../src/dashboard/Greeting.tsx","../../src/dashboard/constants/Dashboard.ts","../../src/dashboard/Dashboard.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport { useTheme } from '@mui/material/styles'\nimport Stack from '@mui/material/Stack'\n\nimport { useGlobalStore } from '..'\n\nexport const Banner = observer(() => {\n const theme = useTheme()\n const {\n appDataStore: { banner, loadBanner, user },\n } = useGlobalStore()\n\n React.useEffect(() => {\n loadBanner().finally()\n }, [user])\n\n if (!banner?.image_url) {\n return null\n }\n\n return (\n <Stack\n sx={{\n alignItems: 'center',\n width: '100%',\n mb: 24,\n }}\n >\n <a\n href={banner?.redirect_url}\n rel=\"noreferrer\"\n style={{\n width: '100%',\n }}\n target=\"_blank\"\n >\n <img\n alt=\"\"\n src={banner.image_url}\n style={{\n width: '100%',\n height: 'auto',\n border: `1px solid ${theme.palette.grey['300']}`,\n }}\n />\n </a>\n </Stack>\n )\n})\n","import { observer } from 'mobx-react-lite'\n\nimport Box from '@mui/material/Box'\nimport Button from '@mui/material/Button'\nimport IconButton from '@mui/material/IconButton'\nimport Tooltip from '@mui/material/Tooltip'\nimport useMediaQuery from '@mui/material/useMediaQuery'\n\nimport { Icon } from '@mxenabled/mxui'\n\nimport { useGlobalCopyStore } from '../../../common'\n\ninterface AddAccountsProps {\n handleConnectClick: () => void\n}\n\nconst AddAccounts = ({ handleConnectClick }: AddAccountsProps) => {\n const { common: copy } = useGlobalCopyStore()\n const isSmallerThan700 = useMediaQuery('(max-width: 700px)')\n\n return (\n <Box>\n {isSmallerThan700 ? (\n <Tooltip id=\"add-accounts\" placement=\"bottom\" title={copy.add_accounts}>\n <IconButton\n aria-controls=\"add_accounts\"\n aria-describedby=\"add-accounts\"\n aria-haspopup={true}\n aria-label={copy.add_accounts}\n color=\"primary\"\n onClick={handleConnectClick}\n >\n <Icon name=\"add\" size={24} />\n </IconButton>\n </Tooltip>\n ) : (\n <Button\n aria-controls=\"add_accounts\"\n aria-haspopup={true}\n aria-label={copy.add_accounts}\n onClick={handleConnectClick}\n startIcon={<Icon name=\"add\" size={24} />}\n sx={{\n p: 12,\n whiteSpace: 'nowrap',\n minWidth: 'max-content',\n }}\n variant=\"text\"\n >\n {copy.add_accounts}\n </Button>\n )}\n </Box>\n )\n}\n\nexport default observer(AddAccounts)\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Stack from '@mui/material/Stack'\nimport Paper from '@mui/material/Paper'\n\nimport { H2, P } from '@mxenabled/mxui'\nimport { useMediaQuery } from '@mui/system'\n\nimport { ConnectDrawer, useAppConfig, useGlobalCopyStore, useScreenSize } from '../common'\n\nimport AddAccounts from '../common/components/addaccounts/AddAccounts'\nimport { GlobalAccountFilter } from '../common/components/GlobalAccountFilter'\n\nconst Greeting = () => {\n const [showConnectWidget, setShowConnectWidget] = React.useState(false)\n\n const isSmallMobileDevice = useMediaQuery('(max-width:320px)')\n\n const { common: commonCopy, connect: connectCopy } = useGlobalCopyStore()\n const { config } = useAppConfig()\n const { isMobile } = useScreenSize()\n\n const getGreeting = () => {\n const now = new Date()\n const hour = now.getHours()\n\n if (hour > 1 && hour < 12) {\n return commonCopy.good_morning\n } else if (hour >= 12 && hour < 18) {\n return commonCopy.good_afternoon\n } else {\n return commonCopy.good_evening\n }\n }\n\n return (\n <React.Fragment>\n <Paper sx={{ gap: 12, mb: isMobile ? 24 : 0, p: 24 }}>\n <Stack alignItems=\"center\" flexDirection=\"row\" justifyContent=\"space-between\">\n <Stack>\n <H2 variant={isSmallMobileDevice ? 'h2' : 'h1'}>{getGreeting()}</H2>\n <P color=\"text.secondary\">{commonCopy.heres_your_spending_overview}</P>\n </Stack>\n <Stack flexDirection=\"row\">\n {config.show_connections_widget_in_master && (\n <AddAccounts handleConnectClick={() => setShowConnectWidget(true)} />\n )}\n <GlobalAccountFilter />\n </Stack>\n </Stack>\n </Paper>\n {showConnectWidget && (\n <ConnectDrawer\n onClose={() => setShowConnectWidget(false)}\n showConnectWidget={showConnectWidget}\n title={connectCopy.mini_title}\n />\n )}\n </React.Fragment>\n )\n}\n\nexport default observer(Greeting)\n","export enum DashboardLocation {\n Main = 0,\n RightSide = 1,\n Disabled = 2,\n}\n","import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport Grid from '@mui/material/Grid'\nimport Skeleton from '@mui/material/Skeleton'\nimport Stack from '@mui/material/Stack'\n\nimport { useGlobalStore, useScreenSize, useWidgetLoadTimer } from '../common'\n\nimport { Banner } from '../common/components/Banner'\n\nimport Greeting from './Greeting'\nimport { DashboardLocation } from './constants/Dashboard'\nimport type { DashboardWidget } from './types/DashboardTypes'\n\nexport interface DashboardProps {\n widgets: DashboardWidget[]\n isLoading: boolean\n}\n\nconst Dashboard: React.FC<DashboardProps> = ({ widgets, isLoading }) => {\n const { isDesktop, isMobile } = useScreenSize()\n const { copyStore } = useGlobalStore()\n\n useWidgetLoadTimer({\n widgetName: 'Dashboard',\n isLoaded: !isLoading,\n })\n\n const sortedWidgets = React.useMemo(\n () =>\n widgets\n .filter((widget) => widget.location !== DashboardLocation.Disabled)\n .sort((w1, w2) => w1.index - w2.index),\n [widgets],\n )\n\n const mainWidgets = React.useMemo(\n () => sortedWidgets.filter((widget) => widget.location === DashboardLocation.Main),\n [sortedWidgets],\n )\n\n const sideWidgets = React.useMemo(\n () => sortedWidgets.filter((widget) => widget.location === DashboardLocation.RightSide),\n [sortedWidgets],\n )\n\n return (\n <Grid container={true} spacing={isMobile ? 0 : 24}>\n <Grid size={12} sx={{ pt: 16 }}>\n {copyStore.isInitialized && <Greeting />}\n </Grid>\n\n {/* Main Column */}\n <Grid size={{ xs: 12, lg: 8 }}>\n <Banner />\n {isLoading && (\n <Stack direction=\"column\" spacing={24}>\n <Skeleton height={100} variant=\"rounded\" width=\"100%\" />\n <Skeleton height={300} variant=\"rounded\" width=\"100%\" />\n <Skeleton height={300} variant=\"rounded\" width=\"100%\" />\n </Stack>\n )}\n {!isLoading && (\n <Stack direction=\"column\" spacing={24}>\n {isDesktop\n ? mainWidgets.map((widget) => (\n <React.Fragment key={widget.index}>{widget.component}</React.Fragment>\n ))\n : sortedWidgets.map((widget) => (\n <React.Fragment key={widget.index}>{widget.component}</React.Fragment>\n ))}\n </Stack>\n )}\n </Grid>\n\n {/* Right Column */}\n {isDesktop && (\n <Grid size={{ lg: 4 }}>\n {isLoading ? (\n <Stack direction=\"column\" spacing={24}>\n <Skeleton height={200} variant=\"rounded\" width=\"100%\" />\n <Skeleton height={100} variant=\"rounded\" width=\"100%\" />\n <Skeleton height={300} variant=\"rounded\" width=\"100%\" />\n </Stack>\n ) : (\n <Stack direction=\"column\" spacing={24}>\n {sideWidgets.map((widget) => (\n <React.Fragment key={widget.index}>{widget.component}</React.Fragment>\n ))}\n </Stack>\n )}\n </Grid>\n )}\n </Grid>\n )\n}\n\nexport default observer(Dashboard)\n"],"names":["Banner","observer","theme","useTheme","banner","loadBanner","user","useGlobalStore","React","jsx","Stack","AddAccounts","handleConnectClick","copy","useGlobalCopyStore","isSmallerThan700","useMediaQuery","Box","Tooltip","IconButton","Icon","Button","AddAccounts$1","Greeting","showConnectWidget","setShowConnectWidget","isSmallMobileDevice","commonCopy","connectCopy","config","useAppConfig","isMobile","useScreenSize","getGreeting","hour","jsxs","Paper","H2","P","GlobalAccountFilter","ConnectDrawer","Greeting$1","DashboardLocation","Dashboard","widgets","isLoading","isDesktop","copyStore","useWidgetLoadTimer","sortedWidgets","widget","w1","w2","mainWidgets","sideWidgets","Grid","Skeleton","Dashboard_default"],"mappings":"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"}