@mx-cartographer/experiences 7.4.5 → 7.4.6-alpha.mm0

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 (60) hide show
  1. package/CHANGELOG.md +0 -4
  2. package/dist/{Account-01wOyrH1.mjs → Account-BQE_ANvF.mjs} +1 -1
  3. package/dist/{AccountDetailsContent-COMjOzwr.mjs → AccountDetailsContent-C6LkHJuy.mjs} +8 -8
  4. package/dist/{AccountDetailsHeader-Cbi5G6fJ.mjs → AccountDetailsHeader-CCkHHK_n.mjs} +4 -4
  5. package/dist/{AccountFields-Cd_nOWmf.mjs → AccountFields-DdOw6d6w.mjs} +2 -2
  6. package/dist/{AccountListItem-DxY4cCF1.mjs → AccountListItem-CZhCiU7q.mjs} +4 -4
  7. package/dist/{AccountStore-C1zMBzHq.mjs → AccountStore-kxFbaz-K.mjs} +2 -2
  8. package/dist/{Accounts-D7QljYas.mjs → Accounts-D_768tYo.mjs} +1 -1
  9. package/dist/{BudgetUtil-Df2nII9u.mjs → BudgetUtil-C5fTz_GJ.mjs} +1 -1
  10. package/dist/{CategorySelectorDrawer-DqJK_rrL.mjs → CategorySelectorDrawer-l3tOyiqD.mjs} +1 -1
  11. package/dist/{ConnectDrawer-CuUj16NH.mjs → ConnectDrawer-g2IXvoSS.mjs} +1 -1
  12. package/dist/{ConnectionsDrawer-Bz4uwdFE.mjs → ConnectionsDrawer-vSEOHrUC.mjs} +6 -6
  13. package/dist/{CurrencyInput-BFKcs-_K.mjs → CurrencyInput-BnaVaZBU.mjs} +6 -6
  14. package/dist/{DebtsStore-Bu8rRRSL.mjs → DebtsStore-CFk9t-Ky.mjs} +1 -1
  15. package/dist/{ExportCsvAction-DzTrtPzk.mjs → ExportCsvAction-DSi2a4NQ.mjs} +3 -3
  16. package/dist/{GoalStore-CrNhjvNc.mjs → GoalStore-DxFUJRd4.mjs} +2 -2
  17. package/dist/{Help-BnPXM_N2.mjs → Help-D1I72J-F.mjs} +1 -1
  18. package/dist/{LineChart-bc1D9xBE.mjs → LineChart-B7MftxPX.mjs} +1 -1
  19. package/dist/{ListItemAction-uobBrm_a.mjs → ListItemAction-Dob72eoG.mjs} +10 -10
  20. package/dist/{ManageIncome-A69EUO5u.mjs → ManageIncome-DlAUFShc.mjs} +4 -4
  21. package/dist/{MicroWidgetContainer-DEiRnYVa.mjs → MicroWidgetContainer-4zS7jJrn.mjs} +1 -1
  22. package/dist/{MiniWidgetContainer-CmXpTylX.mjs → MiniWidgetContainer-Csioy5P7.mjs} +1 -1
  23. package/dist/{NetWorthStore-CpL_kqvx.mjs → NetWorthStore-B6sG1eiD.mjs} +2 -2
  24. package/dist/{NotificationSettings-CNmJWVeI.mjs → NotificationSettings-ByORHzRI.mjs} +3 -3
  25. package/dist/{OriginalBalanceAction-DK8_LkPz.mjs → OriginalBalanceAction-BmSYWwSx.mjs} +3 -3
  26. package/dist/{RecurringSettings-B0uObPlD.mjs → RecurringSettings-CZvd4Wuv.mjs} +12 -12
  27. package/dist/{SpendingLegend-BbrZWbFX.mjs → SpendingLegend-CbNAMdPH.mjs} +2 -2
  28. package/dist/{TransactionDetails-COH0OKNG.mjs → TransactionDetails-DnLXfvDL.mjs} +5 -5
  29. package/dist/{TransactionStore-Dz-G8Wd0.mjs → TransactionStore-BOiv_pDO.mjs} +2 -2
  30. package/dist/{User-wXzDI4M8.mjs → User-BmdvAL7I.mjs} +1 -1
  31. package/dist/{WidgetContainer-6dsjtOVg.mjs → WidgetContainer-DR_iRKNU.mjs} +2 -2
  32. package/dist/accounts/index.es.js +121 -119
  33. package/dist/analytics/index.es.js +2 -2
  34. package/dist/budgets/index.es.js +10 -10
  35. package/dist/cashflow/index.es.js +7 -7
  36. package/dist/categories/index.es.js +1 -1
  37. package/dist/common/hooks/index.d.ts +1 -0
  38. package/dist/common/hooks/useWidgetLoadTimer.d.ts +24 -0
  39. package/dist/common/index.es.js +35 -33
  40. package/dist/dashboard/index.es.js +90 -88
  41. package/dist/debts/index.es.js +9 -9
  42. package/dist/{exportTransactionsToCSV-Cz2t0lmA.mjs → exportTransactionsToCSV-DoKUltKJ.mjs} +1 -1
  43. package/dist/finstrong/index.es.js +10 -10
  44. package/dist/goals/index.es.js +249 -251
  45. package/dist/help/index.es.js +5 -5
  46. package/dist/{hooks-C41HAxM5.mjs → hooks-DtrRa6Lb.mjs} +10 -10
  47. package/dist/investments/index.es.js +3 -3
  48. package/dist/merchants/index.es.js +1 -1
  49. package/dist/networth/index.es.js +173 -173
  50. package/dist/notifications/index.es.js +2 -2
  51. package/dist/recurringtransactions/index.es.js +8 -8
  52. package/dist/settings/index.es.js +6 -6
  53. package/dist/spending/index.es.js +6 -6
  54. package/dist/transactions/index.es.js +13 -13
  55. package/dist/trends/index.es.js +9 -9
  56. package/dist/useAccountDisplayName-BUtYhbqe.mjs +15 -0
  57. package/dist/{useInsightsEnabled-CNjP5cfR.mjs → useInsightsEnabled-v_GGt72p.mjs} +1 -1
  58. package/dist/useWidgetLoadTimer-C4tYP28Y.mjs +28 -0
  59. package/package.json +1 -1
  60. package/dist/useAccountDisplayName-CMMlIOXF.mjs +0 -15
@@ -2,53 +2,54 @@ import { jsx as e, jsxs as r, Fragment as q } from "react/jsx-runtime";
2
2
  import h from "react";
3
3
  import { observer as v } from "mobx-react-lite";
4
4
  import E from "@mui/material/Box";
5
- import x from "@mui/material/Divider";
5
+ import y from "@mui/material/Divider";
6
6
  import F from "@mui/material/List";
7
7
  import O from "@mui/material/ListSubheader";
8
- import y from "@mui/system/Stack";
8
+ import A from "@mui/system/Stack";
9
9
  import { Text as g } from "@mxenabled/mxui";
10
10
  import { useTheme as J } from "@mui/material/styles";
11
- import { u as D, A as Q } from "../AccountDetailsHeader-Cbi5G6fJ.mjs";
12
- import { L as X } from "../LineChart-bc1D9xBE.mjs";
13
- import { g as e1, a as t1, b as n1 } from "../SpendingData-BuJ03S9d.mjs";
14
- import { m as l1, u as M, b, d as N, g as U, a as i1, n as o1 } from "../hooks-C41HAxM5.mjs";
15
- import { A as W, l as P, m as C1 } from "../ConnectDrawer-CuUj16NH.mjs";
16
- import { F as o3, M as C3 } from "../ConnectDrawer-CuUj16NH.mjs";
17
- import { I as G, P as $, S as j } from "../Account-01wOyrH1.mjs";
18
- import { a as d1 } from "../AccountFields-Cd_nOWmf.mjs";
19
- import { g as c3, b as s3 } from "../AccountFields-Cd_nOWmf.mjs";
20
- import { A as B } from "../AccountListItem-DxY4cCF1.mjs";
21
- import { A as c1 } from "../AccountDetailsContent-COMjOzwr.mjs";
22
- import { u as r3 } from "../AccountDetailsContent-COMjOzwr.mjs";
11
+ import { u as D, A as Q } from "../AccountDetailsHeader-CCkHHK_n.mjs";
12
+ import { L as X } from "../LineChart-B7MftxPX.mjs";
13
+ import { g as e1, a as t1, b as l1 } from "../SpendingData-BuJ03S9d.mjs";
14
+ import { m as n1, a as M, c as S, e as N, u as U, b as i1 } from "../hooks-DtrRa6Lb.mjs";
15
+ import { A as W, l as P, m as o1 } from "../ConnectDrawer-g2IXvoSS.mjs";
16
+ import { F as C3, M as d3 } from "../ConnectDrawer-g2IXvoSS.mjs";
17
+ import { I as G, P as $, S as j } from "../Account-BQE_ANvF.mjs";
18
+ import { a as C1 } from "../AccountFields-DdOw6d6w.mjs";
19
+ import { g as s3, b as a3 } from "../AccountFields-DdOw6d6w.mjs";
20
+ import { A as B } from "../AccountListItem-CZhCiU7q.mjs";
21
+ import { A as d1 } from "../AccountDetailsContent-C6LkHJuy.mjs";
22
+ import { u as L3 } from "../AccountDetailsContent-C6LkHJuy.mjs";
23
23
  import { f as I } from "../NumberFormatting-DjTD0t3W.mjs";
24
- import { D as s1 } from "../Drawer-BEtCk82g.mjs";
25
- import { A as S, W as a1 } from "../WidgetContainer-6dsjtOVg.mjs";
26
- import { C as r1 } from "../ConnectionsDrawer-Bz4uwdFE.mjs";
24
+ import { D as c1 } from "../Drawer-BEtCk82g.mjs";
25
+ import { A as x, W as s1 } from "../WidgetContainer-DR_iRKNU.mjs";
26
+ import { C as a1 } from "../ConnectionsDrawer-vSEOHrUC.mjs";
27
+ import { u as r1 } from "../useWidgetLoadTimer-C4tYP28Y.mjs";
27
28
  import { u as Y } from "../useScreenSize-B6JyS_Lj.mjs";
28
- import { L as _ } from "../Loader-DUaFpDGv.mjs";
29
+ import { L as w } from "../Loader-DUaFpDGv.mjs";
29
30
  import L1 from "@mui/material/ListItem";
30
- import { M as K } from "../MiniWidgetContainer-CmXpTylX.mjs";
31
+ import { M as K } from "../MiniWidgetContainer-Csioy5P7.mjs";
31
32
  import u1 from "@mui/material/Stack";
32
- import { A as u3, a as h3 } from "../AccountStore-C1zMBzHq.mjs";
33
+ import { A as h3, a as H3 } from "../AccountStore-kxFbaz-K.mjs";
33
34
  const h1 = (i, o) => {
34
- const l = G.includes(o) ? e1(i) : [], t = $.includes(o) ? t1(i) : [], L = j.includes(o) ? n1(i) : [];
35
- return [l, t, L].filter((C) => C.length > 0);
36
- }, H1 = (i, o, l) => {
35
+ const n = G.includes(o) ? e1(i) : [], t = $.includes(o) ? t1(i) : [], L = j.includes(o) ? l1(i) : [];
36
+ return [n, t, L].filter((C) => C.length > 0);
37
+ }, H1 = (i, o, n) => {
37
38
  const [t, L] = i, C = t, d = L ?? t, s = [];
38
39
  if (C && d && G.includes(o)) {
39
40
  const c = C[C.length - 1].y;
40
- s.push({ label: l.income_label, amount: c });
41
+ s.push({ label: n.income_label, amount: c });
41
42
  } else if ($.includes(o)) {
42
43
  const c = C[C.length - 1].y;
43
- s.push({ label: l.payments_label, amount: c });
44
+ s.push({ label: n.payments_label, amount: c });
44
45
  }
45
46
  if (d && j.includes(o)) {
46
47
  const c = d[d.length - 1].y;
47
- s.push({ label: l.spending_label, amount: c });
48
+ s.push({ label: n.spending_label, amount: c });
48
49
  }
49
50
  return s;
50
51
  }, p1 = () => {
51
- const i = J(), { selectedAccount: o } = D(), { monthlyCategoryTotals: l } = l1(), { trends: t } = M(), L = [i.palette.chart?.chart1, i.palette.chart?.chart2], C = h1(l, o.account_type), d = H1(C, o.account_type, t), s = [W.LOAN, W.MORTGAGE].includes(o.account_type);
52
+ const i = J(), { selectedAccount: o } = D(), { monthlyCategoryTotals: n } = n1(), { trends: t } = M(), L = [i.palette.chart?.chart1, i.palette.chart?.chart2], C = h1(n, o.account_type), d = H1(C, o.account_type, t), s = [W.LOAN, W.MORTGAGE].includes(o.account_type);
52
53
  return /* @__PURE__ */ e("div", { "data-testid": "TrendsChart", children: /* @__PURE__ */ e(
53
54
  X,
54
55
  {
@@ -63,59 +64,59 @@ const h1 = (i, o) => {
63
64
  }
64
65
  ) });
65
66
  }, f1 = v(p1), m1 = () => {
66
- const [i, o] = h.useState(""), { accounts: l } = M(), { selectedAccounts: t } = b(), { setSelectedAccount: L, setSelectedMember: C } = D(), { members: d } = N(), { onEvent: s } = U(), c = [...new Set(t.map((n) => n.account_type))], p = t.find((n) => i === n.guid), H = h.useMemo(
67
- () => t.filter((n) => n.is_hidden),
67
+ const [i, o] = h.useState(""), { accounts: n } = M(), { selectedAccounts: t } = S(), { setSelectedAccount: L, setSelectedMember: C } = D(), { members: d } = N(), { onEvent: s } = U(), c = [...new Set(t.map((l) => l.account_type))], H = t.find((l) => i === l.guid), p = h.useMemo(
68
+ () => t.filter((l) => l.is_hidden),
68
69
  [t]
69
70
  ), f = h.useMemo(
70
- () => t.filter((n) => n.is_closed),
71
+ () => t.filter((l) => l.is_closed),
71
72
  [t]
72
- ), R = H.reduce(
73
- (n, a) => (a.available_balance || a.balance || 0) + n,
73
+ ), R = p.reduce(
74
+ (l, a) => (a.available_balance || a.balance || 0) + l,
74
75
  0
75
- ), k = d1(f, l);
76
+ ), b = C1(f, n);
76
77
  h.useEffect(() => {
77
- if (p) {
78
- L(p);
79
- const n = d.find((a) => a.guid === p?.member_guid) || {};
80
- n && C(n);
78
+ if (H) {
79
+ L(H);
80
+ const l = d.find((a) => a.guid === H?.member_guid) || {};
81
+ l && C(l);
81
82
  }
82
- }, [p, i]);
83
- const Z = (n) => {
84
- o(n.guid), s(S.ACCOUNTS_CLICK_ACCOUNT, {
85
- account_guid: n.guid,
86
- account_type: n.account_type
83
+ }, [H, i]);
84
+ const _ = (l) => {
85
+ o(l.guid), s(x.ACCOUNTS_CLICK_ACCOUNT, {
86
+ account_guid: l.guid,
87
+ account_type: l.account_type
87
88
  });
88
- }, V = (n) => {
89
- const a = n === "hidden" ? H : f, w = n === "hidden" ? R : k, u = n === "hidden" ? l.account_hidden : l.account_closed;
89
+ }, V = (l) => {
90
+ const a = l === "hidden" ? p : f, k = l === "hidden" ? R : b, u = l === "hidden" ? n.account_hidden : n.account_closed;
90
91
  return /* @__PURE__ */ e(E, { children: /* @__PURE__ */ e(
91
92
  F,
92
93
  {
93
94
  "aria-label": u,
94
95
  subheader: /* @__PURE__ */ e(O, { component: "h2", sx: { backgroundColor: "transparent", px: 24 }, children: /* @__PURE__ */ r(
95
- y,
96
+ A,
96
97
  {
97
98
  component: "span",
98
99
  direction: "row",
99
100
  sx: { justifyContent: "space-between", color: "grey.700" },
100
101
  children: [
101
102
  /* @__PURE__ */ e(g, { bold: !0, variant: "Body", children: u }),
102
- /* @__PURE__ */ e(g, { bold: !0, variant: "Body", children: I(w, "0,0.00") })
103
+ /* @__PURE__ */ e(g, { bold: !0, variant: "Body", children: I(k, "0,0.00") })
103
104
  ]
104
105
  }
105
106
  ) }),
106
- children: /* @__PURE__ */ e(y, { children: a.map((m, A, z) => {
107
- const T = A === z.length - 1;
107
+ children: /* @__PURE__ */ e(A, { children: a.map((m, Z, z) => {
108
+ const T = Z === z.length - 1;
108
109
  return /* @__PURE__ */ r(h.Fragment, { children: [
109
110
  /* @__PURE__ */ e(
110
111
  B,
111
112
  {
112
113
  account: m,
113
- onRowClick: () => Z(m),
114
+ onRowClick: () => _(m),
114
115
  shouldShowConnectionStatus: !0
115
116
  }
116
117
  ),
117
- n === "hidden" ? /* @__PURE__ */ e(
118
- x,
118
+ l === "hidden" ? /* @__PURE__ */ e(
119
+ y,
119
120
  {
120
121
  sx: {
121
122
  mb: T ? 24 : 4,
@@ -123,7 +124,7 @@ const h1 = (i, o) => {
123
124
  }
124
125
  }
125
126
  ) : !T && /* @__PURE__ */ e(
126
- x,
127
+ y,
127
128
  {
128
129
  sx: {
129
130
  mb: 4,
@@ -137,130 +138,131 @@ const h1 = (i, o) => {
137
138
  ) });
138
139
  };
139
140
  return /* @__PURE__ */ r(E, { sx: { pt: 24 }, children: [
140
- c.map((n) => {
141
+ c.map((l) => {
141
142
  const a = t.filter(
142
- (u) => u.account_type === n && !u.is_closed && !u.is_hidden
143
- ), w = a.reduce(
143
+ (u) => u.account_type === l && !u.is_closed && !u.is_hidden
144
+ ), k = a.reduce(
144
145
  (u, m) => (m.balance || 0) + u,
145
146
  0
146
147
  );
147
148
  return a.length === 0 ? null : /* @__PURE__ */ e(
148
149
  F,
149
150
  {
150
- "aria-label": l.account_type_accounts[a[0]?.account_type],
151
+ "aria-label": n.account_type_accounts[a[0]?.account_type],
151
152
  subheader: /* @__PURE__ */ e(O, { component: "h2", sx: { backgroundColor: "transparent", px: 24 }, children: /* @__PURE__ */ r(
152
- y,
153
+ A,
153
154
  {
154
155
  component: "span",
155
156
  direction: "row",
156
157
  sx: { display: "flex", justifyContent: "space-between" },
157
158
  children: [
158
- /* @__PURE__ */ e(g, { bold: !0, variant: "Body", children: l.account_types[n] }),
159
- /* @__PURE__ */ e(g, { bold: !0, variant: "Body", children: I(w, "0,0.00") })
159
+ /* @__PURE__ */ e(g, { bold: !0, variant: "Body", children: n.account_types[l] }),
160
+ /* @__PURE__ */ e(g, { bold: !0, variant: "Body", children: I(k, "0,0.00") })
160
161
  ]
161
162
  }
162
163
  ) }),
163
- children: /* @__PURE__ */ e(y, { children: a.map((u) => {
164
- const m = t.indexOf(u) === t.length - 1, A = a.indexOf(u) === a.length - 1;
164
+ children: /* @__PURE__ */ e(A, { children: a.map((u) => {
165
+ const m = t.indexOf(u) === t.length - 1, Z = a.indexOf(u) === a.length - 1;
165
166
  return /* @__PURE__ */ r(h.Fragment, { children: [
166
167
  /* @__PURE__ */ e(
167
168
  B,
168
169
  {
169
170
  account: u,
170
- onRowClick: () => Z(u),
171
+ onRowClick: () => _(u),
171
172
  shouldShowConnectionStatus: !0
172
173
  }
173
174
  ),
174
- (!m || f.length > 0 || H.length > 0) && /* @__PURE__ */ e(
175
- x,
175
+ (!m || f.length > 0 || p.length > 0) && /* @__PURE__ */ e(
176
+ y,
176
177
  {
177
178
  sx: {
178
- mb: A ? 24 : 4,
179
- ml: A ? 24 : 68
179
+ mb: Z ? 24 : 4,
180
+ ml: Z ? 24 : 68
180
181
  }
181
182
  }
182
183
  )
183
184
  ] }, u.guid);
184
185
  }) })
185
186
  },
186
- n
187
+ l
187
188
  );
188
189
  }),
189
- H.length > 0 && V("hidden"),
190
+ p.length > 0 && V("hidden"),
190
191
  f.length > 0 && V("closed"),
191
192
  /* @__PURE__ */ r(
192
- s1,
193
+ c1,
193
194
  {
194
- ariaLabelClose: l.close_account_details_aria,
195
+ ariaLabelClose: n.close_account_details_aria,
195
196
  isOpen: !!i,
196
197
  onClose: () => o(""),
197
- title: l.account_details,
198
+ title: n.account_details,
198
199
  children: [
199
200
  /* @__PURE__ */ e(Q, { ChartComponent: f1 }),
200
- /* @__PURE__ */ e(c1, {})
201
+ /* @__PURE__ */ e(d1, {})
201
202
  ]
202
203
  }
203
204
  )
204
205
  ] });
205
206
  }, V1 = v(m1), g1 = ({ onBackClick: i, sx: o = {} }) => {
206
- const [l, t] = h.useState(!1), [L, C] = h.useState(!1), { config: d } = i1(), { accounts: s } = N(), { accounts: c, connect: p } = M(), { isCopyLoaded: H, isInitialized: f, setSelectedAccounts: R, selectedAccountGuids: k } = b(), { isDesktop: Z } = Y(), { onEvent: V } = U(), { onLoad: n } = o1();
207
- h.useEffect(() => {
207
+ const [n, t] = h.useState(!1), [L, C] = h.useState(!1), { config: d } = i1(), { accounts: s } = N(), { accounts: c, connect: H } = M(), { isCopyLoaded: p, isInitialized: f, setSelectedAccounts: R, selectedAccountGuids: b } = S(), { isDesktop: _ } = Y(), { onEvent: V } = U();
208
+ r1({
209
+ widgetName: "AccountsWidget",
210
+ isLoaded: f && p
211
+ }), h.useEffect(() => {
208
212
  R(s);
209
- }, [s]), h.useEffect(() => {
210
- f && H && n?.("AccountsWidget");
211
- }, [f, H]);
212
- const a = () => {
213
- t(!0), V(S.ACCOUNTS_CLICK_CONNECT);
214
- }, w = () => {
215
- C(!0), V(S.ACCOUNTS_CLICK_CONNECT);
213
+ }, [s]);
214
+ const l = () => {
215
+ t(!0), V(x.ACCOUNTS_CLICK_CONNECT);
216
+ }, a = () => {
217
+ C(!0), V(x.ACCOUNTS_CLICK_CONNECT);
216
218
  };
217
- return H ? /* @__PURE__ */ e(
218
- a1,
219
+ return p ? /* @__PURE__ */ e(
220
+ s1,
219
221
  {
220
222
  accountOptions: s,
221
223
  actions: d.show_connections_widget_in_master ? [
222
- { iconName: "add", label: c.add, onClick: a },
224
+ { iconName: "add", label: c.add, onClick: l },
223
225
  {
224
226
  iconName: "credit_card_gear",
225
227
  label: c.manage,
226
- onClick: w
228
+ onClick: a
227
229
  }
228
230
  ] : [],
229
- onAccountsFilterClick: () => V(S.ACCOUNTS_CLICK_FILTER),
231
+ onAccountsFilterClick: () => V(x.ACCOUNTS_CLICK_FILTER),
230
232
  onBackClick: i,
231
233
  sx: o,
232
234
  title: c.title,
233
235
  children: f ? /* @__PURE__ */ r(q, { children: [
234
- /* @__PURE__ */ r(E, { sx: { px: Z ? 24 : 12 }, children: [
235
- k.length < 1 && /* @__PURE__ */ e(g, { display: "flex", justifyContent: "center", my: 24, children: c.no_accounts }),
236
+ /* @__PURE__ */ r(E, { sx: { px: _ ? 24 : 12 }, children: [
237
+ b.length < 1 && /* @__PURE__ */ e(g, { display: "flex", justifyContent: "center", my: 24, children: c.no_accounts }),
236
238
  /* @__PURE__ */ e(V1, {})
237
239
  ] }),
238
240
  /* @__PURE__ */ e(
239
241
  P,
240
242
  {
241
243
  onClose: () => t(!1),
242
- showConnectWidget: l,
243
- title: p.mini_title
244
+ showConnectWidget: n,
245
+ title: H.mini_title
244
246
  }
245
247
  ),
246
248
  /* @__PURE__ */ e(
247
- r1,
249
+ a1,
248
250
  {
249
251
  onClose: () => C(!1),
250
252
  showConnectionsWidget: L,
251
253
  title: c.manage_connections
252
254
  }
253
255
  )
254
- ] }) : /* @__PURE__ */ e(_, {})
256
+ ] }) : /* @__PURE__ */ e(w, {})
255
257
  }
256
- ) : /* @__PURE__ */ e(_, {});
257
- }, e3 = v(g1), v1 = ({ onPrimaryCtaClick: i, sx: o }) => {
258
- const { visibleAccounts: l } = N(), { accounts: t } = M(), { isCopyLoaded: L, isInitialized: C, selectedAccounts: d, setSelectedAccounts: s } = b(), { isDesktop: c } = Y();
258
+ ) : /* @__PURE__ */ e(w, {});
259
+ }, t3 = v(g1), v1 = ({ onPrimaryCtaClick: i, sx: o }) => {
260
+ const { visibleAccounts: n } = N(), { accounts: t } = M(), { isCopyLoaded: L, isInitialized: C, selectedAccounts: d, setSelectedAccounts: s } = S(), { isDesktop: c } = Y();
259
261
  h.useEffect(() => {
260
- s(l);
261
- }, [l]);
262
- const p = h.useMemo(
263
- () => C1(d, c ? 5 : 3),
262
+ s(n);
263
+ }, [n]);
264
+ const H = h.useMemo(
265
+ () => o1(d, c ? 5 : 3),
264
266
  [d, c]
265
267
  );
266
268
  return L ? /* @__PURE__ */ e(
@@ -273,24 +275,24 @@ const h1 = (i, o) => {
273
275
  title: t.mini_title,
274
276
  children: C ? /* @__PURE__ */ r(F, { children: [
275
277
  d.length === 0 && /* @__PURE__ */ e(L1, { sx: { justifyContent: "center" }, children: t.no_accounts }),
276
- p.map((H, f) => {
277
- const R = p.indexOf(H) === p.length - 1;
278
+ H.map((p, f) => {
279
+ const R = H.indexOf(p) === H.length - 1;
278
280
  return /* @__PURE__ */ r(h.Fragment, { children: [
279
281
  /* @__PURE__ */ e(
280
282
  B,
281
283
  {
282
- account: H,
284
+ account: p,
283
285
  listItemProps: { sx: { px: 24 } },
284
286
  shouldShowConnectionStatus: !0
285
287
  }
286
288
  ),
287
- !R && /* @__PURE__ */ e(x, { "aria-hidden": "true", variant: "inset" })
289
+ !R && /* @__PURE__ */ e(y, { "aria-hidden": "true", variant: "inset" })
288
290
  ] }, `account-item${f}`);
289
291
  })
290
- ] }) : /* @__PURE__ */ e(_, {})
292
+ ] }) : /* @__PURE__ */ e(w, {})
291
293
  }
292
- ) : /* @__PURE__ */ e(_, {});
293
- }, t3 = v(v1), M1 = () => /* @__PURE__ */ r(
294
+ ) : /* @__PURE__ */ e(w, {});
295
+ }, l3 = v(v1), M1 = () => /* @__PURE__ */ r(
294
296
  "svg",
295
297
  {
296
298
  fill: "none",
@@ -751,10 +753,10 @@ const h1 = (i, o) => {
751
753
  },
752
754
  sx: o
753
755
  }) => {
754
- const { isCopyLoaded: l } = b(), { connect: t } = M(), [L, C] = h.useState(!1), d = () => {
756
+ const { isCopyLoaded: n } = S(), { connect: t } = M(), [L, C] = h.useState(!1), d = () => {
755
757
  C(!0), i();
756
758
  };
757
- return l ? /* @__PURE__ */ r(
759
+ return n ? /* @__PURE__ */ r(
758
760
  K,
759
761
  {
760
762
  className: "mx-exp-connect-miniwidget",
@@ -774,20 +776,20 @@ const h1 = (i, o) => {
774
776
  )
775
777
  ]
776
778
  }
777
- ) : /* @__PURE__ */ e(_, {});
779
+ ) : /* @__PURE__ */ e(w, {});
778
780
  }, n3 = v(_1);
779
781
  export {
780
- u3 as AccountApi,
781
- c1 as AccountDetailsContent,
782
+ h3 as AccountApi,
783
+ d1 as AccountDetailsContent,
782
784
  Q as AccountDetailsHeader,
783
- h3 as AccountStore,
784
- t3 as AccountsMiniWidget,
785
- e3 as AccountsWidget,
785
+ H3 as AccountStore,
786
+ l3 as AccountsMiniWidget,
787
+ t3 as AccountsWidget,
786
788
  n3 as ConnectMiniWidget,
787
- o3 as FieldType,
788
- C3 as MemberConnectionStatus,
789
- c3 as getAccountBalanceDetails,
790
- s3 as getAccountDetailFields,
789
+ C3 as FieldType,
790
+ d3 as MemberConnectionStatus,
791
+ s3 as getAccountBalanceDetails,
792
+ a3 as getAccountDetailFields,
791
793
  D as useAccountUiStore,
792
- r3 as useGetMergeableAccounts
794
+ L3 as useGetMergeableAccounts
793
795
  };
@@ -8,8 +8,8 @@ import a from "@mui/material/Stack";
8
8
  import _ from "@mui/material/styles/useTheme";
9
9
  import { Text as u, TextField as L } from "@mxenabled/mxui";
10
10
  import { L as W } from "../Loader-DUaFpDGv.mjs";
11
- import { M as j } from "../MiniWidgetContainer-CmXpTylX.mjs";
12
- import { k as f, u as b, g as q, b as E } from "../hooks-C41HAxM5.mjs";
11
+ import { M as j } from "../MiniWidgetContainer-Csioy5P7.mjs";
12
+ import { k as f, a as b, u as q, c as E } from "../hooks-DtrRa6Lb.mjs";
13
13
  import Q from "@mui/material/ToggleButton";
14
14
  import G from "@mui/material/ToggleButtonGroup";
15
15
  const O = () => {
@@ -8,7 +8,7 @@ import S from "@mui/material/Stack";
8
8
  import te from "@mui/material/styles/useTheme";
9
9
  import { Text as b, CategoryIcon as K, Icon as N, H1 as Ue, H3 as Ae } from "@mxenabled/mxui";
10
10
  import X from "@mui/material/List";
11
- import { u as w, i as D, j as ne, m as z, q as oe, g as V, b as ae, h as re, a as Fe, d as Te, n as He } from "../hooks-C41HAxM5.mjs";
11
+ import { a as w, i as D, j as ne, m as z, q as oe, u as V, c as ae, h as re, b as Fe, e as Te, o as He } from "../hooks-DtrRa6Lb.mjs";
12
12
  import { f as T } from "../NumberFormatting-DjTD0t3W.mjs";
13
13
  import we from "@mui/material/Button";
14
14
  import se from "@mui/material/Divider";
@@ -19,35 +19,35 @@ import q from "@mui/material/ListItemText";
19
19
  import { b as R } from "../Localization-2MODESHW.mjs";
20
20
  import { D as k } from "../Drawer-BEtCk82g.mjs";
21
21
  import We from "@mui/material/ListItemSecondaryAction";
22
- import { C as Ke } from "../CurrencyInput-BFKcs-_K.mjs";
22
+ import { C as Ke } from "../CurrencyInput-BnaVaZBU.mjs";
23
23
  import { D as G } from "../Dialog-BPTr3qHE.mjs";
24
- import { C as Xe } from "../ConnectionsDrawer-Bz4uwdFE.mjs";
24
+ import { C as Xe } from "../ConnectionsDrawer-vSEOHrUC.mjs";
25
25
  import * as O from "d3";
26
26
  import Ve from "@mui/material/Tooltip";
27
27
  import { useTheme as Ye } from "@mui/material/styles";
28
28
  import { u as ce } from "../useScreenSize-B6JyS_Lj.mjs";
29
29
  import { L as j } from "../Loader-DUaFpDGv.mjs";
30
30
  import { E as me } from "../EmptyState-DoxNUae-.mjs";
31
- import { A as L, W as Ze } from "../WidgetContainer-6dsjtOVg.mjs";
32
- import { u as qe } from "../BudgetUtil-Df2nII9u.mjs";
33
- import { M as Je } from "../MiniWidgetContainer-CmXpTylX.mjs";
31
+ import { A as L, W as Ze } from "../WidgetContainer-DR_iRKNU.mjs";
32
+ import { u as qe } from "../BudgetUtil-C5fTz_GJ.mjs";
33
+ import { M as Je } from "../MiniWidgetContainer-Csioy5P7.mjs";
34
34
  import { isAfter as Qe } from "date-fns/isAfter";
35
35
  import { startOfToday as J } from "date-fns/startOfToday";
36
36
  import et from "@mui/material/Alert";
37
37
  import tt from "@mui/material/Snackbar";
38
38
  import Ce from "@mui/material/Tab";
39
39
  import nt from "@mui/material/Tabs";
40
- import { e as ot } from "../exportTransactionsToCSV-Cz2t0lmA.mjs";
41
- import { T as De, a as at } from "../TransactionDetails-COH0OKNG.mjs";
40
+ import { e as ot } from "../exportTransactionsToCSV-DoKUltKJ.mjs";
41
+ import { T as De, a as at } from "../TransactionDetails-DnLXfvDL.mjs";
42
42
  import fe from "@mui/material/Card";
43
43
  import be from "@mui/material/CardContent";
44
44
  import { S as he } from "../StatusBar-BK_uYHAB.mjs";
45
45
  import { S as Ie } from "../SingleSegmentDonut-BgbLgwHi.mjs";
46
- import { u as rt, b as st } from "../CategorySelectorDrawer-DqJK_rrL.mjs";
46
+ import { u as rt, b as st } from "../CategorySelectorDrawer-l3tOyiqD.mjs";
47
47
  import Ee from "@mui/material/CardHeader";
48
48
  import { subDays as it } from "date-fns/subDays";
49
49
  import ct from "@mui/material/IconButton";
50
- import { M as lt } from "../ManageIncome-A69EUO5u.mjs";
50
+ import { M as lt } from "../ManageIncome-DlAUFShc.mjs";
51
51
  const dt = I(() => {
52
52
  const { budgets: t } = w(), { totalBudgeted: o } = D(), { incomeTotal: i } = ne(), s = i - o;
53
53
  return /* @__PURE__ */ m(S, { direction: "row", justifyContent: "center", my: 16, spacing: 20, children: [
@@ -8,22 +8,22 @@ import D from "@mui/material/Divider";
8
8
  import s from "@mui/material/Stack";
9
9
  import ce from "@mui/material/styles/useTheme";
10
10
  import { Text as u, P as k, Icon as j, InstitutionLogo as ye, H1 as me, H2 as Ye } from "@mxenabled/mxui";
11
- import { G as Qe, v as ue, u as N, q as le, d as Ne, b as Y, j as P, g as ke, p as He, h as Fe, n as Ve, a as Ke } from "../hooks-C41HAxM5.mjs";
11
+ import { G as Qe, v as ue, a as N, q as le, e as Ne, c as Y, j as P, u as ke, p as He, h as Fe, o as Ve, b as Ke } from "../hooks-DtrRa6Lb.mjs";
12
12
  import { C as O } from "../CurrencyText-Dr0EZ7bp.mjs";
13
13
  import { u as he } from "../useScreenSize-B6JyS_Lj.mjs";
14
14
  import { L as te } from "../Loader-DUaFpDGv.mjs";
15
15
  import { I as pe } from "../CashflowStore-D9Dpuz7X.mjs";
16
16
  import { C as zn } from "../CashflowStore-D9Dpuz7X.mjs";
17
17
  import { b as M } from "../Localization-2MODESHW.mjs";
18
- import { M as Je } from "../MiniWidgetContainer-CmXpTylX.mjs";
18
+ import { M as Je } from "../MiniWidgetContainer-Csioy5P7.mjs";
19
19
  import { E as Ze } from "../EmptyState-DoxNUae-.mjs";
20
- import { R as et } from "../RecurringSettings-B0uObPlD.mjs";
20
+ import { R as et } from "../RecurringSettings-CZvd4Wuv.mjs";
21
21
  import tt from "@mui/material/Tabs";
22
22
  import Ce from "@mui/material/Tab";
23
23
  import { getUnixTime as B } from "date-fns/getUnixTime";
24
24
  import ee from "@mui/material/List";
25
25
  import ne from "@mui/material/ListItem";
26
- import { A as nt } from "../AccountListItem-DxY4cCF1.mjs";
26
+ import { A as nt } from "../AccountListItem-CZhCiU7q.mjs";
27
27
  import { f as Q, a as V } from "../Dialog-BPTr3qHE.mjs";
28
28
  import ot from "@mui/material/ListSubheader";
29
29
  import { f as Z } from "../NumberFormatting-DjTD0t3W.mjs";
@@ -35,17 +35,17 @@ import { alpha as at, keyframes as it } from "@mui/material/styles";
35
35
  import { DataGridPro as rt } from "@mui/x-data-grid-pro";
36
36
  import { T as Se } from "../TabContentContainer-j01JYR_7.mjs";
37
37
  import G from "@mui/material/Button";
38
- import { M as st, S as ct, i as lt, d as _e, c as dt } from "../ManageIncome-A69EUO5u.mjs";
38
+ import { M as st, S as ct, i as lt, d as _e, c as dt } from "../ManageIncome-DlAUFShc.mjs";
39
39
  import { D as Ge } from "../Drawer-BEtCk82g.mjs";
40
40
  import { formatISO as mt } from "date-fns/formatISO";
41
41
  import { fromUnixTime as Ie } from "date-fns/fromUnixTime";
42
42
  import { startOfMonth as ut } from "date-fns/startOfMonth";
43
43
  import { subDays as je } from "date-fns/subDays";
44
- import { S as ht, c as pt } from "../TransactionDetails-COH0OKNG.mjs";
44
+ import { S as ht, c as pt } from "../TransactionDetails-DnLXfvDL.mjs";
45
45
  import { F as ft, R as ve, e as De } from "../RecurringTransactions-BqijW_8S.mjs";
46
46
  import { h as gt } from "../DateUtil-CBdcsyuk.mjs";
47
47
  import { endOfToday as bt } from "date-fns/endOfToday";
48
- import { W as Ae, A as Ee } from "../WidgetContainer-6dsjtOVg.mjs";
48
+ import { W as Ae, A as Ee } from "../WidgetContainer-DR_iRKNU.mjs";
49
49
  import { F as xt, A as z } from "../Fetch-DecPFeGU.mjs";
50
50
  const K = () => {
51
51
  if (!p.useContext(Qe))
@@ -1,4 +1,4 @@
1
- import { b as o, C as a, a as t, u as C } from "../CategorySelectorDrawer-DqJK_rrL.mjs";
1
+ import { b as o, C as a, a as t, u as C } from "../CategorySelectorDrawer-l3tOyiqD.mjs";
2
2
  import { C as g } from "../CategoryStore-U7hOZAbP.mjs";
3
3
  export {
4
4
  o as CategoryRow,
@@ -3,3 +3,4 @@ export { useCombineEvents, useCombinePageviews } from './useCombineEvents';
3
3
  export { useInsightsEnabled } from './useInsightsEnabled';
4
4
  export { useScreenSize } from './useScreenSize';
5
5
  export { usePrevious } from './usePrevious';
6
+ export { useWidgetLoadTimer } from './useWidgetLoadTimer';
@@ -0,0 +1,24 @@
1
+ interface UseWidgetLoadTimerOptions {
2
+ widgetName: string;
3
+ isLoaded?: boolean;
4
+ }
5
+ /**
6
+ * Tracks widget load time and sends analytics event when loading completes.
7
+ *
8
+ * Timer starts when hook is called and stops when `isLoaded` becomes true.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const SomeWidget = () => {
13
+ * const { isInitialized } = useGlobalUiStore()
14
+ *
15
+ * useWidgetLoadTimer({
16
+ * widgetName: 'SomeWidget',
17
+ * isLoaded: isInitialized,
18
+ * })
19
+ * // ...rest of widget code
20
+ * }
21
+ * ```
22
+ */
23
+ export declare const useWidgetLoadTimer: ({ widgetName, isLoaded }: UseWidgetLoadTimerOptions) => void;
24
+ export {};