@mx-cartographer/experiences 7.13.14 → 7.13.16

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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## [7.13.16] - 03-31-2026
2
+
3
+ - **FIXED** - `Spending` Other bucket dropping overflow spending categories
4
+
5
+ ## [7.13.15] - 03-31-2026
6
+
7
+ - **FIXED** - a11y labeling for mini widget CTAs
8
+
1
9
  ## [7.13.14] - 03-31-2026
2
10
 
3
11
  - **FIXED** - `CategoryBudget` cosmetics change.
@@ -0,0 +1,66 @@
1
+ import { jsxs as r, jsx as i, Fragment as x } from "react/jsx-runtime";
2
+ import b from "@mui/material/Box";
3
+ import C from "@mui/material/Button";
4
+ import u from "@mui/material/Card";
5
+ import v from "@mui/material/CardHeader";
6
+ import W from "@mui/material/CardContent";
7
+ import z from "@mui/material/IconButton";
8
+ import { Icon as H, ChevronRight as I } from "@mxenabled/mx-icons";
9
+ import { H3 as y, Text as B, P as M } from "@mxenabled/mxui";
10
+ import { u as j } from "./useDimensions-CeDR9V8N.mjs";
11
+ import { W as w } from "./hooks-BxkfR-Ff.mjs";
12
+ const R = ({
13
+ children: a,
14
+ className: m = "mx-cmn-mini-widget",
15
+ closeLabel: d,
16
+ contentStyles: l,
17
+ onClose: e,
18
+ onPrimaryCtaClick: o,
19
+ primaryCtaLabel: s = "",
20
+ primaryCtaLabelAria: c = "",
21
+ subTitle: n = "",
22
+ sx: p = {},
23
+ title: t = ""
24
+ }) => {
25
+ const [h, { height: f, width: g }] = j();
26
+ return /* @__PURE__ */ r(u, { className: m, sx: { ...p }, children: [
27
+ /* @__PURE__ */ i(
28
+ v,
29
+ {
30
+ sx: { pb: 8 },
31
+ title: /* @__PURE__ */ r(x, { children: [
32
+ /* @__PURE__ */ r(
33
+ b,
34
+ {
35
+ sx: {
36
+ alignItems: "center",
37
+ display: "grid",
38
+ gap: 2,
39
+ gridTemplateColumns: "1fr auto",
40
+ pb: 4
41
+ },
42
+ children: [
43
+ t && /* @__PURE__ */ i(y, { children: t }),
44
+ e ? /* @__PURE__ */ i(z, { "aria-label": d, onClick: e, size: "small", children: /* @__PURE__ */ i(H, { name: "close", size: 24 }) }) : o && /* @__PURE__ */ i(
45
+ C,
46
+ {
47
+ "aria-label": c,
48
+ endIcon: /* @__PURE__ */ i(I, {}),
49
+ onClick: o,
50
+ size: "small",
51
+ children: /* @__PURE__ */ i(B, { bold: !0, variant: "body2", children: s })
52
+ }
53
+ )
54
+ ]
55
+ }
56
+ ),
57
+ n && /* @__PURE__ */ i(M, { color: "text.secondary", sx: { fontSize: 15, lineHeight: "20px" }, variant: "body2", children: n })
58
+ ] })
59
+ }
60
+ ),
61
+ /* @__PURE__ */ i(W, { ref: h, sx: { p: 0, ...l }, children: /* @__PURE__ */ i(w, { availableHeight: f, availableWidth: g, children: a }) })
62
+ ] });
63
+ }, J = R;
64
+ export {
65
+ J as M
66
+ };
@@ -32,7 +32,7 @@ const D = 5, B = (i, l, g, c) => c.reduce((o, n) => {
32
32
  amount: n.total
33
33
  }), o;
34
34
  }, []), nt = (i, l, g, c) => {
35
- const o = B(i, l, g, c), n = o.filter(
35
+ const n = B(i, l, g, c).filter(
36
36
  (e) => e.guid !== p.INCOME && e.guid !== p.INVESTMENTS && e.guid !== p.TRANSFER && e.amount > 0
37
37
  ).sort((e, s) => s.amount - e.amount), a = n.reduce(
38
38
  (e, s) => e + s.amount,
@@ -44,7 +44,7 @@ const D = 5, B = (i, l, g, c) => c.reduce((o, n) => {
44
44
  value: e.amount / a * 100
45
45
  }));
46
46
  if (n.length > 5) {
47
- const e = n.slice(D, o.length), s = e.reduce(
47
+ const e = n.slice(D), s = e.reduce(
48
48
  (C, u) => C + u.amount,
49
49
  0
50
50
  );
@@ -64,7 +64,7 @@ import { u as H1 } from "../useScreenSize-B6JyS_Lj.mjs";
64
64
  import { u as n1 } from "../useWidgetLoadTimer-DgN1bTyu.mjs";
65
65
  import { L as o1 } from "../Loader-D3rjKx72.mjs";
66
66
  import { W as r3 } from "../WidgetContainer-B7xDq2bM.mjs";
67
- import { M as v1 } from "../MiniWidgetContainer-xLWSV6Wz.mjs";
67
+ import { M as v1 } from "../MiniWidgetContainer-Bhkv-hpz.mjs";
68
68
  import { A as l4 } from "../AccountApi-ChQr5PAZ.mjs";
69
69
  import { A as d4 } from "../AccountStore-DpYvNnql.mjs";
70
70
  const d3 = (t, o) => {
@@ -8,7 +8,7 @@ import a from "@mui/material/Stack";
8
8
  import S from "@mui/material/styles/useTheme";
9
9
  import { Text as p, TextField as B } from "@mxenabled/mxui";
10
10
  import { L } from "../Loader-D3rjKx72.mjs";
11
- import { M as W } from "../MiniWidgetContainer-xLWSV6Wz.mjs";
11
+ import { M as W } from "../MiniWidgetContainer-Bhkv-hpz.mjs";
12
12
  import { j as f, u as b, g as q, b as E } from "../hooks-BxkfR-Ff.mjs";
13
13
  import Q from "@mui/material/ToggleButton";
14
14
  import G from "@mui/material/ToggleButtonGroup";
@@ -50,7 +50,7 @@ import { M as ct } from "../ManageIncome--_KEPuCK.mjs";
50
50
  import { u as ze } from "../useWidgetLoadTimer-DgN1bTyu.mjs";
51
51
  import { W as lt } from "../WidgetContainer-B7xDq2bM.mjs";
52
52
  import { u as dt, g as ut, C as mt } from "../BudgetUtil-CLhRnCoX.mjs";
53
- import { M as gt } from "../MiniWidgetContainer-xLWSV6Wz.mjs";
53
+ import { M as gt } from "../MiniWidgetContainer-Bhkv-hpz.mjs";
54
54
  import { b as we } from "../CategoryUtil-BVixr0d5.mjs";
55
55
  const pt = I(() => {
56
56
  const { budgets: t } = E(), { totalBudgeted: n } = w(), { incomeTotal: c } = ie(), i = c - n;
@@ -1204,6 +1204,7 @@ const It = ({
1204
1204
  {
1205
1205
  contentStyles: { height: "calc(100% - 66px)", ":last-child": { pb: 0 } },
1206
1206
  primaryCtaLabel: S ? r.get_started_cta : r.details_cta,
1207
+ primaryCtaLabelAria: r.details_cta_aria,
1207
1208
  sx: { height: "100%" },
1208
1209
  title: r.budgets_title,
1209
1210
  ...t,
@@ -1,5 +1,5 @@
1
1
  import { jsxs as o, Fragment as B, jsx as e } from "react/jsx-runtime";
2
- import p, { useState as Q } from "react";
2
+ import h, { useState as Q } from "react";
3
3
  import { observer as T } from "mobx-react-lite";
4
4
  import { addMonths as Ve } from "date-fns/addMonths";
5
5
  import { startOfToday as W } from "date-fns/startOfToday";
@@ -12,10 +12,10 @@ import { G as Qe, t as me, u as L, p as ce, d as Ne, b as P, i as U, g as ke, a
12
12
  import { C as R } from "../CurrencyText-CA-E5N_y.mjs";
13
13
  import { I as ue } from "../CashflowStore-D3MKniVM.mjs";
14
14
  import { C as qn } from "../CashflowStore-D3MKniVM.mjs";
15
- import { u as he } from "../useScreenSize-B6JyS_Lj.mjs";
15
+ import { u as pe } from "../useScreenSize-B6JyS_Lj.mjs";
16
16
  import { L as Z } from "../Loader-D3rjKx72.mjs";
17
17
  import { b as $ } from "../Localization-CPkpIwIx.mjs";
18
- import { M as Je } from "../MiniWidgetContainer-xLWSV6Wz.mjs";
18
+ import { M as Je } from "../MiniWidgetContainer-Bhkv-hpz.mjs";
19
19
  import { E as Ze } from "../EmptyState-DHAkGsjk.mjs";
20
20
  import { u as Fe } from "../useWidgetLoadTimer-DgN1bTyu.mjs";
21
21
  import { R as et } from "../RecurringSettings-XPxxB0Wf.mjs";
@@ -31,10 +31,10 @@ import { f as X } from "../NumberFormatting-QCaNwbjv.mjs";
31
31
  import { isAfter as He } from "date-fns/isAfter";
32
32
  import { isBefore as We } from "date-fns/isBefore";
33
33
  import { isToday as $e } from "date-fns/isToday";
34
- import { addDays as we } from "date-fns/addDays";
34
+ import { addDays as _e } from "date-fns/addDays";
35
35
  import { alpha as it, keyframes as at } from "@mui/material/styles";
36
36
  import { DataGridPro as rt } from "@mui/x-data-grid-pro";
37
- import { T as _e } from "../TabContentContainer-j01JYR_7.mjs";
37
+ import { T as we } from "../TabContentContainer-j01JYR_7.mjs";
38
38
  import G from "@mui/material/Button";
39
39
  import { M as st, S as ct, i as lt, d as Se, c as dt } from "../ManageIncome--_KEPuCK.mjs";
40
40
  import { D as Ge } from "../Drawer-Bbe4AMB1.mjs";
@@ -43,15 +43,15 @@ import { endOfToday as mt } from "date-fns/endOfToday";
43
43
  import { W as ut } from "../WidgetContainer-B7xDq2bM.mjs";
44
44
  import { A as Ie } from "../Analytics-BYItVAe-.mjs";
45
45
  import { A as K } from "../Account-BiB1F8lL.mjs";
46
- import { formatISO as ht } from "date-fns/formatISO";
46
+ import { formatISO as pt } from "date-fns/formatISO";
47
47
  import { fromUnixTime as De } from "date-fns/fromUnixTime";
48
- import { startOfMonth as pt } from "date-fns/startOfMonth";
48
+ import { startOfMonth as ht } from "date-fns/startOfMonth";
49
49
  import { S as ft, a as gt } from "../StatusIndicator-CIKUOoN_.mjs";
50
50
  import { F as bt, R as ve, e as Ae } from "../RecurringTransactions-BOzBqfdg.mjs";
51
51
  import { h as xt } from "../DateUtil-wcYTmDRD.mjs";
52
52
  import { F as yt, A as j } from "../Fetch-B6tMJC1r.mjs";
53
53
  const Y = () => {
54
- if (!p.useContext(Qe))
54
+ if (!h.useContext(Qe))
55
55
  throw new Error("useCashflowUiStore() must be used within the GlobalDataContext");
56
56
  return me().uiStore;
57
57
  }, Ct = ({ remaining: i }) => {
@@ -71,33 +71,33 @@ const Y = () => {
71
71
  /* @__PURE__ */ e(m, { bold: !0, sx: { flexGrow: 1, fontSize: 12 }, children: n.remaining_cash }),
72
72
  /* @__PURE__ */ e(R, { amount: i, bold: !0, sx: { fontSize: 12 } })
73
73
  ] });
74
- }, pe = T(Ct), wt = () => {
75
- const i = se(), { availableWidth: n } = ce(), { isMobile: t } = he(), { visibleCashAccounts: a, visibleCashBalance: f } = Ne(), { selectedAccountGuids: u } = P(), { cashflow: c } = L(), {
74
+ }, he = T(Ct), _t = () => {
75
+ const i = se(), { availableWidth: n } = ce(), { isMobile: t } = pe(), { visibleCashAccounts: a, visibleCashBalance: f } = Ne(), { selectedAccountGuids: u } = P(), { cashflow: c } = L(), {
76
76
  daysUntilNextIncome: l,
77
77
  expensesTilNextIncome: g,
78
78
  selectedCashAccounts: r,
79
- setNextIncome: h,
79
+ setNextIncome: p,
80
80
  setSelectedCashAccounts: d,
81
81
  setUpcomingExpenses: x
82
- } = Y(), { isDataLoaded: w, nextIncomeRecurrence: _, upcomingExpenses: A } = U();
83
- p.useEffect(() => {
82
+ } = Y(), { isDataLoaded: _, nextIncomeRecurrence: w, upcomingExpenses: A } = U();
83
+ h.useEffect(() => {
84
84
  d(
85
85
  a.filter((y) => u.includes(y.guid))
86
86
  );
87
- }, [a, u]), p.useEffect(() => {
88
- _ && h(_), x(A);
89
- }, [_, A]);
90
- const S = p.useMemo(
87
+ }, [a, u]), h.useEffect(() => {
88
+ w && p(w), x(A);
89
+ }, [w, A]);
90
+ const S = h.useMemo(
91
91
  () => a.filter((y) => u.includes(y.guid)).reduce((y, I) => y + (I?.balance || 0), 0),
92
92
  [u, A]
93
- ), k = p.useMemo(
93
+ ), k = h.useMemo(
94
94
  () => g.filter((y) => u.includes(y.accountGuid || "")).reduce((y, I) => y + I.amount, 0),
95
95
  [u, g]
96
- ), b = p.useMemo(
96
+ ), b = h.useMemo(
97
97
  () => S - k,
98
98
  [S, k]
99
99
  );
100
- return w ? /* @__PURE__ */ e(D, { className: "mx-cashflow", pl: 16, pr: 16, pt: 16, children: n > 710 ? /* @__PURE__ */ o(
100
+ return _ ? /* @__PURE__ */ e(D, { className: "mx-cashflow", pl: 16, pr: 16, pt: 16, children: n > 710 ? /* @__PURE__ */ o(
101
101
  s,
102
102
  {
103
103
  border: `1px solid ${i.palette.border.light}`,
@@ -157,7 +157,7 @@ const Y = () => {
157
157
  justifyContent: "space-between",
158
158
  px: 16,
159
159
  sx: { borderBottomLeftRadius: 4, borderBottomRightRadius: 4 },
160
- children: /* @__PURE__ */ e(pe, { remaining: b })
160
+ children: /* @__PURE__ */ e(he, { remaining: b })
161
161
  }
162
162
  ),
163
163
  /* @__PURE__ */ e(v, {}),
@@ -166,13 +166,13 @@ const Y = () => {
166
166
  /* @__PURE__ */ e(m, { bold: !0, variant: "caption", children: $(c.days, l) })
167
167
  ] })
168
168
  ] }) }) : /* @__PURE__ */ e(Z, { height: t ? 210 : 120 });
169
- }, _t = T(wt), St = ({
169
+ }, wt = T(_t), St = ({
170
170
  onPrimaryCtaClick: i,
171
171
  onSecondaryCtaClick: n,
172
172
  sx: t = {}
173
173
  }) => {
174
174
  const { cashflow: a } = L(), { isInitialized: f } = P(), { loadRepeatingTransactionData: u, income: c, isDataLoaded: l, setDateRange: g } = U();
175
- p.useEffect(() => {
175
+ h.useEffect(() => {
176
176
  g({ start: W(), end: Ve(W(), 1) }), l || u().finally();
177
177
  }, []), Fe({
178
178
  widgetName: "CashflowMiniWidget",
@@ -185,6 +185,7 @@ const Y = () => {
185
185
  className: "mx-exp-cashflow-miniwidget",
186
186
  onPrimaryCtaClick: i,
187
187
  primaryCtaLabel: a.primary_cta,
188
+ primaryCtaLabelAria: a.primary_cta_aria,
188
189
  subTitle: r || !l ? void 0 : a.sub_title,
189
190
  sx: { height: "100%", ...t },
190
191
  title: a.title,
@@ -200,7 +201,7 @@ const Y = () => {
200
201
  primaryButtonStartIcon: "add",
201
202
  subText: a.create_description
202
203
  }
203
- ) : /* @__PURE__ */ e(_t, {}))
204
+ ) : /* @__PURE__ */ e(wt, {}))
204
205
  ]
205
206
  }
206
207
  ) : /* @__PURE__ */ e(Z, {});
@@ -217,7 +218,7 @@ const Y = () => {
217
218
  borderBottomRightRadius: "3px",
218
219
  minHeight: "auto"
219
220
  },
220
- children: /* @__PURE__ */ e(pe, { remaining: i })
221
+ children: /* @__PURE__ */ e(he, { remaining: i })
221
222
  }
222
223
  );
223
224
  var te = /* @__PURE__ */ ((i) => (i.EXPENSE = "expense", i.INCOME = "income", i))(te || {});
@@ -282,7 +283,7 @@ const Dt = ({ recurrence: i }) => /* @__PURE__ */ o(B, { children: [
282
283
  ), r = l.reduce(
283
284
  (d, x) => d + x.amount,
284
285
  0
285
- ), h = g.reduce(
286
+ ), p = g.reduce(
286
287
  (d, x) => d + x.amount,
287
288
  0
288
289
  );
@@ -319,7 +320,7 @@ const Dt = ({ recurrence: i }) => /* @__PURE__ */ o(B, { children: [
319
320
  g.length > 0 && /* @__PURE__ */ e(ee, { children: /* @__PURE__ */ e(
320
321
  J,
321
322
  {
322
- subheader: /* @__PURE__ */ e(Te, { total: h, type: te.EXPENSE }),
323
+ subheader: /* @__PURE__ */ e(Te, { total: p, type: te.EXPENSE }),
323
324
  sx: { width: "100%" },
324
325
  children: g.map((d) => /* @__PURE__ */ e(Ee, { recurrence: d }, d.repeatingTransactionGuid))
325
326
  }
@@ -327,7 +328,7 @@ const Dt = ({ recurrence: i }) => /* @__PURE__ */ o(B, { children: [
327
328
  /* @__PURE__ */ e(
328
329
  It,
329
330
  {
330
- remaining: (c.available_balance || c.balance || 0) + r - h
331
+ remaining: (c.available_balance || c.balance || 0) + r - p
331
332
  }
332
333
  )
333
334
  ]
@@ -342,8 +343,8 @@ const Dt = ({ recurrence: i }) => /* @__PURE__ */ o(B, { children: [
342
343
  field: "account",
343
344
  flex: 1.5,
344
345
  headerName: t.accounts,
345
- renderCell: ({ value: { name: r, nickname: h, institution_guid: d, account_number: x } }) => {
346
- const w = h || r;
346
+ renderCell: ({ value: { name: r, nickname: p, institution_guid: d, account_number: x } }) => {
347
+ const _ = p || r;
347
348
  return /* @__PURE__ */ o(s, { alignItems: "center", flexDirection: "row", gap: 12, children: [
348
349
  /* @__PURE__ */ e(
349
350
  ye,
@@ -353,7 +354,7 @@ const Dt = ({ recurrence: i }) => /* @__PURE__ */ o(B, { children: [
353
354
  size: 16
354
355
  }
355
356
  ),
356
- /* @__PURE__ */ e(m, { variant: "body2", children: `${w} ${x ? `*${x}` : ""}` })
357
+ /* @__PURE__ */ e(m, { variant: "body2", children: `${_} ${x ? `*${x}` : ""}` })
357
358
  ] });
358
359
  }
359
360
  },
@@ -384,29 +385,29 @@ const Dt = ({ recurrence: i }) => /* @__PURE__ */ o(B, { children: [
384
385
  headerName: t.remaining,
385
386
  type: "number",
386
387
  renderCell: (r) => {
387
- const h = r.row.balance + r.row.income - r.row.expenses;
388
+ const p = r.row.balance + r.row.income - r.row.expenses;
388
389
  return /* @__PURE__ */ e(
389
390
  m,
390
391
  {
391
- color: Math.sign(h) === -1 ? n.palette.error.main : n.palette.text.primary,
392
+ color: Math.sign(p) === -1 ? n.palette.error.main : n.palette.text.primary,
392
393
  variant: "body2",
393
- children: X(h, "0,0.00")
394
+ children: X(p, "0,0.00")
394
395
  }
395
396
  );
396
397
  }
397
398
  }
398
- ], g = p.useMemo(() => c.map((r) => {
399
- const h = a.filter(
400
- re(r, { start: W(), end: we(W(), 30) })
401
- ).reduce((w, _) => w + _.amount, 0), d = f.filter(
402
- re(r, { start: W(), end: we(W(), 30) })
403
- ).reduce((w, _) => w + _.amount, 0), x = (r.balance || 0) + d - h;
399
+ ], g = h.useMemo(() => c.map((r) => {
400
+ const p = a.filter(
401
+ re(r, { start: W(), end: _e(W(), 30) })
402
+ ).reduce((_, w) => _ + w.amount, 0), d = f.filter(
403
+ re(r, { start: W(), end: _e(W(), 30) })
404
+ ).reduce((_, w) => _ + w.amount, 0), x = (r.balance || 0) + d - p;
404
405
  return {
405
406
  account: r,
406
407
  balance: r.balance || 0,
407
408
  id: r.guid,
408
409
  income: d,
409
- expenses: h,
410
+ expenses: p,
410
411
  remaining: x
411
412
  };
412
413
  }), [c, a, f]);
@@ -484,7 +485,7 @@ const Dt = ({ recurrence: i }) => /* @__PURE__ */ o(B, { children: [
484
485
  }
485
486
  }
486
487
  ) : g.map((r) => {
487
- const { name: h, nickname: d, institution_guid: x, account_number: w } = r.account, _ = d || h;
488
+ const { name: p, nickname: d, institution_guid: x, account_number: _ } = r.account, w = d || p;
488
489
  return /* @__PURE__ */ e(
489
490
  J,
490
491
  {
@@ -513,7 +514,7 @@ const Dt = ({ recurrence: i }) => /* @__PURE__ */ o(B, { children: [
513
514
  size: 16
514
515
  }
515
516
  ),
516
- /* @__PURE__ */ e(m, { variant: "body2", children: `${_} ${w ? `*${w}` : ""}` })
517
+ /* @__PURE__ */ e(m, { variant: "body2", children: `${w} ${_ ? `*${_}` : ""}` })
517
518
  ] }),
518
519
  /* @__PURE__ */ e(R, { amount: r.balance, bold: !0, variant: "body2" })
519
520
  ]
@@ -561,7 +562,7 @@ const Dt = ({ recurrence: i }) => /* @__PURE__ */ o(B, { children: [
561
562
  px: 16,
562
563
  py: 12,
563
564
  sx: { borderBottomLeftRadius: "4px", borderBottomRightRadius: "4px" },
564
- children: /* @__PURE__ */ e(pe, { remaining: r.remaining })
565
+ children: /* @__PURE__ */ e(he, { remaining: r.remaining })
565
566
  }
566
567
  )
567
568
  ] }) })
@@ -573,10 +574,10 @@ const Dt = ({ recurrence: i }) => /* @__PURE__ */ o(B, { children: [
573
574
  }
574
575
  );
575
576
  }, Rt = T(Tt), Lt = () => {
576
- const { cashflow: i } = L(), { isDesktop: n } = he(), { onEvent: t } = ke(), [a, f] = p.useState(0), u = (c, l) => {
577
+ const { cashflow: i } = L(), { isDesktop: n } = pe(), { onEvent: t } = ke(), [a, f] = h.useState(0), u = (c, l) => {
577
578
  f(l);
578
579
  };
579
- return p.useEffect(() => {
580
+ return h.useEffect(() => {
580
581
  t(a === 0 ? "cash_flow_summary" : "cash_flow_details");
581
582
  }, [a]), /* @__PURE__ */ o(D, { children: [
582
583
  /* @__PURE__ */ o(
@@ -615,8 +616,8 @@ const Dt = ({ recurrence: i }) => /* @__PURE__ */ o(B, { children: [
615
616
  }
616
617
  ),
617
618
  /* @__PURE__ */ e(D, { sx: { mb: 32 } }),
618
- /* @__PURE__ */ e(_e, { index: 0, name: "cashflow", value: a, children: /* @__PURE__ */ e(D, { sx: { m: n ? 48 : 16 }, children: /* @__PURE__ */ e(Rt, {}) }) }),
619
- /* @__PURE__ */ e(_e, { index: 1, name: "cashflow", value: a, children: /* @__PURE__ */ e(D, { sx: { m: n ? 48 : 16 }, children: /* @__PURE__ */ e(Et, {}) }) })
619
+ /* @__PURE__ */ e(we, { index: 0, name: "cashflow", value: a, children: /* @__PURE__ */ e(D, { sx: { m: n ? 48 : 16 }, children: /* @__PURE__ */ e(Rt, {}) }) }),
620
+ /* @__PURE__ */ e(we, { index: 1, name: "cashflow", value: a, children: /* @__PURE__ */ e(D, { sx: { m: n ? 48 : 16 }, children: /* @__PURE__ */ e(Et, {}) }) })
620
621
  ] });
621
622
  }, Nt = T(Lt), ae = ({
622
623
  amount: i,
@@ -643,16 +644,16 @@ const Dt = ({ recurrence: i }) => /* @__PURE__ */ o(B, { children: [
643
644
  ]
644
645
  }
645
646
  ), Re = (i, n) => (t) => t.accountGuid && i.includes(t.accountGuid) && ($e(t.expectedDate) || He(t.expectedDate, n.start)) && We(t.expectedDate, n.end), kt = () => {
646
- const { availableWidth: i } = ce(), { cashflow: n } = L(), { income: t, isDataLoaded: a, upcomingExpenses: f, upcomingIncome: u } = U(), { selectedAccountGuids: c } = P(), { dateRange: l, selectedCashAccounts: g } = Y(), [r, h] = p.useState(!1), d = p.useMemo(
647
+ const { availableWidth: i } = ce(), { cashflow: n } = L(), { income: t, isDataLoaded: a, upcomingExpenses: f, upcomingIncome: u } = U(), { selectedAccountGuids: c } = P(), { dateRange: l, selectedCashAccounts: g } = Y(), [r, p] = h.useState(!1), d = h.useMemo(
647
648
  () => f.filter(Re(c, l)),
648
649
  [l, c, f]
649
- ), x = p.useMemo(
650
+ ), x = h.useMemo(
650
651
  () => u.filter(Re(c, l)),
651
652
  [l, c, u]
652
- ), w = p.useMemo(
653
+ ), _ = h.useMemo(
653
654
  () => g.reduce((y, I) => y + (I?.balance || 0), 0),
654
655
  [g]
655
- ), _ = d.reduce((y, I) => y + I.amount, 0), A = x.reduce((y, I) => y + I.amount, 0), S = w - _ + A, k = a && t.length > 0, b = i < 725;
656
+ ), w = d.reduce((y, I) => y + I.amount, 0), A = x.reduce((y, I) => y + I.amount, 0), S = _ - w + A, k = a && t.length > 0, b = i < 725;
656
657
  return /* @__PURE__ */ o(s, { sx: { mx: b ? 16 : 0, my: b ? 24 : 42 }, children: [
657
658
  /* @__PURE__ */ o(
658
659
  s,
@@ -667,7 +668,7 @@ const Dt = ({ recurrence: i }) => /* @__PURE__ */ o(B, { children: [
667
668
  /* @__PURE__ */ e(
668
669
  ae,
669
670
  {
670
- amount: w,
671
+ amount: _,
671
672
  isMobile: b,
672
673
  label: $(n.cash_and_bank, g.length)
673
674
  }
@@ -687,7 +688,7 @@ const Dt = ({ recurrence: i }) => /* @__PURE__ */ o(B, { children: [
687
688
  ] }) : /* @__PURE__ */ e(
688
689
  G,
689
690
  {
690
- onClick: () => h(!0),
691
+ onClick: () => p(!0),
691
692
  startIcon: /* @__PURE__ */ e(M, { name: "add" }),
692
693
  sx: { fontSize: 13 },
693
694
  children: n.add_income
@@ -697,7 +698,7 @@ const Dt = ({ recurrence: i }) => /* @__PURE__ */ o(B, { children: [
697
698
  /* @__PURE__ */ e(
698
699
  ae,
699
700
  {
700
- amount: _,
701
+ amount: w,
701
702
  isMobile: b,
702
703
  label: $(n.to_be_paid_out, d.length),
703
704
  symbol: b ? "-" : void 0
@@ -728,7 +729,7 @@ const Dt = ({ recurrence: i }) => /* @__PURE__ */ o(B, { children: [
728
729
  {
729
730
  ariaLabelClose: n.close_manage_income_aria,
730
731
  isOpen: r,
731
- onClose: () => h(!1),
732
+ onClose: () => p(!1),
732
733
  shouldShowHeaderBorders: !1,
733
734
  title: n.manage_income,
734
735
  children: /* @__PURE__ */ e(st, {})
@@ -736,10 +737,10 @@ const Dt = ({ recurrence: i }) => /* @__PURE__ */ o(B, { children: [
736
737
  )
737
738
  ] });
738
739
  }, Ot = T(kt), Ft = ({ onBackClick: i, sx: n = {} }) => {
739
- const { selectedAccounts: t, selectedAccountGuids: a, shouldDisableNextDate: f, shouldDisablePrevDate: u } = P(), { onEvent: c } = ke(), { clientConfig: l } = Ke(), { visibleCashAccounts: g } = Ne(), { setFilter: r } = Oe(), { dateRange: h, setSelectedCashAccounts: d } = Y(), { loadRepeatingTransactionData: x, isDataLoaded: w, setDateRange: _ } = U(), { cashflow: A, recurring: S } = L(), { isInitialized: k } = P(), y = l?.master?.deep_link_params?.view === "manage_income", [I, ne] = p.useState(y);
740
- return p.useEffect(() => {
741
- _(h), w || x().finally();
742
- }, []), p.useEffect(() => {
740
+ const { selectedAccounts: t, selectedAccountGuids: a, shouldDisableNextDate: f, shouldDisablePrevDate: u } = P(), { onEvent: c } = ke(), { clientConfig: l } = Ke(), { visibleCashAccounts: g } = Ne(), { setFilter: r } = Oe(), { dateRange: p, setSelectedCashAccounts: d } = Y(), { loadRepeatingTransactionData: x, isDataLoaded: _, setDateRange: w } = U(), { cashflow: A, recurring: S } = L(), { isInitialized: k } = P(), y = l?.master?.deep_link_params?.view === "manage_income", [I, ne] = h.useState(y);
741
+ return h.useEffect(() => {
742
+ w(p), _ || x().finally();
743
+ }, []), h.useEffect(() => {
743
744
  const oe = g.map((O) => O.guid), ie = t.filter(
744
745
  (O) => a.includes(O.guid) && oe.includes(O.guid)
745
746
  );
@@ -749,7 +750,7 @@ const Dt = ({ recurrence: i }) => /* @__PURE__ */ o(B, { children: [
749
750
  });
750
751
  }, [g, t]), Fe({
751
752
  widgetName: "CashflowWidget",
752
- isLoaded: w
753
+ isLoaded: _
753
754
  }), k ? /* @__PURE__ */ o(
754
755
  ut,
755
756
  {
@@ -776,7 +777,7 @@ const Dt = ({ recurrence: i }) => /* @__PURE__ */ o(B, { children: [
776
777
  onRangeChanged: () => {
777
778
  }
778
779
  },
779
- dateRange: h,
780
+ dateRange: p,
780
781
  dateRangeVariant: "readonly",
781
782
  onAccountsFilterClick: () => c(Ie.CASH_FLOW_CLICK_FILTER),
782
783
  onBackClick: i,
@@ -873,7 +874,7 @@ const Dt = ({ recurrence: i }) => /* @__PURE__ */ o(B, { children: [
873
874
  CASHFLOW_LOADING_ANIMATION: `${Le}/loading-animation.gif`
874
875
  }, $t = () => {
875
876
  const { cashflow: i } = L();
876
- return /* @__PURE__ */ o(p.Fragment, { children: [
877
+ return /* @__PURE__ */ o(h.Fragment, { children: [
877
878
  /* @__PURE__ */ e("div", { children: /* @__PURE__ */ e("img", { alt: "Loading", src: je.CASHFLOW_LOADING_ANIMATION }) }),
878
879
  /* @__PURE__ */ e(de, { pb: 12, variant: "h1", children: i.loading_title }),
879
880
  /* @__PURE__ */ e(N, { children: i.loading_description })
@@ -886,7 +887,7 @@ const Dt = ({ recurrence: i }) => /* @__PURE__ */ o(B, { children: [
886
887
  transform: rotate(360deg);
887
888
  }
888
889
  `, jt = () => {
889
- const { addRepeatingTransaction: i, repeatingTransactions: n } = U(), { cashflow: t, common: a } = L(), { user: f } = Xe(), { completeOnboarding: u } = me(), { isDirty: c } = Y(), { isMobile: l } = he(), { isCopyLoaded: g, setDisplayedDate: r } = P(), { filter: h, setFilter: d, transactions: x } = Oe(), w = se(), [_, A] = Q(!0), [S, k] = p.useState(bt.EveryMonth), [b, y] = p.useState(1), [I, ne] = p.useState(15), [oe, ie] = Q(!1), [O, fe] = Q(1), [F, ze] = Q([]), [ge, le] = Q(""), H = p.useMemo(
890
+ const { addRepeatingTransaction: i, repeatingTransactions: n } = U(), { cashflow: t, common: a } = L(), { user: f } = Xe(), { completeOnboarding: u } = me(), { isDirty: c } = Y(), { isMobile: l } = pe(), { isCopyLoaded: g, setDisplayedDate: r } = P(), { filter: p, setFilter: d, transactions: x } = Oe(), _ = se(), [w, A] = Q(!0), [S, k] = h.useState(bt.EveryMonth), [b, y] = h.useState(1), [I, ne] = h.useState(15), [oe, ie] = Q(!1), [O, fe] = Q(1), [F, ze] = Q([]), [ge, le] = Q(""), H = h.useMemo(
890
891
  () => x.find((C) => C.guid === ge),
891
892
  [ge, x]
892
893
  ), Be = !!n.filter(
@@ -894,9 +895,9 @@ const Dt = ({ recurrence: i }) => /* @__PURE__ */ o(B, { children: [
894
895
  ).length, be = async () => {
895
896
  fe(2), r(
896
897
  // Beginning of the month, 90 days before today
897
- pt(Me(W(), 90)),
898
+ ht(Me(W(), 90)),
898
899
  W()
899
- ), d({ ...h, custom: Se }), fe(3);
900
+ ), d({ ...p, custom: Se }), fe(3);
900
901
  }, Ue = async () => {
901
902
  if (!(F.length < 1)) {
902
903
  ie(!0);
@@ -908,7 +909,7 @@ const Dt = ({ recurrence: i }) => /* @__PURE__ */ o(B, { children: [
908
909
  //user
909
910
  merchant_guid: E.merchant_guid,
910
911
  description: E.feed_description || E.description,
911
- predicted_occurs_on: ht(xe, { representation: "date" }),
912
+ predicted_occurs_on: pt(xe, { representation: "date" }),
912
913
  recurrence_day: xe.getDay(),
913
914
  recurrence_type: S,
914
915
  repeating_transaction_type: ve.Income,
@@ -920,14 +921,14 @@ const Dt = ({ recurrence: i }) => /* @__PURE__ */ o(B, { children: [
920
921
  }
921
922
  await u();
922
923
  }
923
- }, Pe = !H && _ || !H && F.length < 1;
924
+ }, Pe = !H && w || !H && F.length < 1;
924
925
  return g ? /* @__PURE__ */ o(
925
926
  D,
926
927
  {
927
928
  sx: {
928
929
  display: "flex",
929
930
  alignItems: l ? "flex-start" : "center",
930
- backgroundColor: w.palette.background.paper,
931
+ backgroundColor: _.palette.background.paper,
931
932
  backgroundImage: l ? null : `url(${je.CASHFLOW_ONBOARDING})`,
932
933
  backgroundRepeat: "no-repeat",
933
934
  backgroundPosition: "left 100px",
@@ -963,7 +964,7 @@ const Dt = ({ recurrence: i }) => /* @__PURE__ */ o(B, { children: [
963
964
  /* @__PURE__ */ e(de, { pb: 12, variant: "h1", children: t.add_income_title }),
964
965
  /* @__PURE__ */ e(N, { mb: 24, children: t.add_income_description }),
965
966
  F.length > 0 && !H && /* @__PURE__ */ o(B, { children: [
966
- /* @__PURE__ */ e(J, { children: F.map((C, E) => /* @__PURE__ */ o(p.Fragment, { children: [
967
+ /* @__PURE__ */ e(J, { children: F.map((C, E) => /* @__PURE__ */ o(h.Fragment, { children: [
967
968
  /* @__PURE__ */ e(ft, { bgcolor: "background.paper", children: xt(
968
969
  z(C.nextDate || C.date)
969
970
  ) }),
@@ -987,7 +988,7 @@ const Dt = ({ recurrence: i }) => /* @__PURE__ */ o(B, { children: [
987
988
  {
988
989
  bgcolor: "background.paper",
989
990
  onSearch: (C) => d({
990
- ...h,
991
+ ...p,
991
992
  custom: (E) => C ? lt(E, C) : Se(E)
992
993
  }),
993
994
  onSelected: (C) => {
@@ -7,6 +7,7 @@ interface CardContainerProps {
7
7
  onClose?: () => void;
8
8
  onPrimaryCtaClick?: () => void;
9
9
  primaryCtaLabel?: string;
10
+ primaryCtaLabelAria?: string;
10
11
  subTitle?: string;
11
12
  sx?: SxProps;
12
13
  title?: string;
@@ -11,7 +11,7 @@ import { L as Re, a as $e } from "../Transaction-CqjlF6SO.mjs";
11
11
  import { H } from "../Help-B8mD4aLJ.mjs";
12
12
  import { E as Ge } from "../Help-B8mD4aLJ.mjs";
13
13
  import { M as We } from "../MicroWidgetContainer-B_EnfvCq.mjs";
14
- import { M as Ye } from "../MiniWidgetContainer-xLWSV6Wz.mjs";
14
+ import { M as Ye } from "../MiniWidgetContainer-Bhkv-hpz.mjs";
15
15
  import { D as Ke, W as ze } from "../WidgetContainer-B7xDq2bM.mjs";
16
16
  import { C as Ve } from "../ConnectDrawer-C0wjwcJt.mjs";
17
17
  import { f as W, c as q, d as C } from "../BudgetUtil-CLhRnCoX.mjs";
@@ -36,6 +36,7 @@ export interface BudgetsCopy {
36
36
  delete_description: string;
37
37
  delete_title: string;
38
38
  details_cta: string;
39
+ details_cta_aria: string;
39
40
  details_delete_button: string;
40
41
  details_edit_button: string;
41
42
  details_edit_title: string;
@@ -48,6 +48,7 @@ export interface CashflowCopy extends AccountFilterCopy {
48
48
  payment_schedule: string;
49
49
  previous_month_aria: string;
50
50
  primary_cta: string;
51
+ primary_cta_aria: string;
51
52
  projected_expenses: string;
52
53
  projected_income: string;
53
54
  projected_monthly_income: string;
@@ -68,6 +68,7 @@ export interface RecurringCopy {
68
68
  past_transactions: string;
69
69
  payment_schedule: string;
70
70
  primary_cta: string;
71
+ primary_cta_aria: string;
71
72
  quarterly: string;
72
73
  quarterly_ordinal: string;
73
74
  recurrence_day_label: string;
@@ -4,6 +4,7 @@ export interface SpendingCopy {
4
4
  income_tab_title: string;
5
5
  mini_title: string;
6
6
  primary_cta: string;
7
+ primary_cta_aria: string;
7
8
  spend_tab_title: string;
8
9
  transactions_drawer_title: string;
9
10
  transaction_details_drawer_title: string;
@@ -51,7 +51,7 @@ import { ChartsXAxis as Zn } from "@mui/x-charts/ChartsXAxis";
51
51
  import { ChartsYAxis as Jn } from "@mui/x-charts/ChartsYAxis";
52
52
  import { startOfMonth as Tt } from "date-fns/startOfMonth";
53
53
  import { endOfMonth as At } from "date-fns/endOfMonth";
54
- import { g as eo, S as to, b as no } from "../SpendingLegend-s0rv96Ka.mjs";
54
+ import { g as eo, S as to, b as no } from "../SpendingLegend-BgjazduU.mjs";
55
55
  import { formatISO as oo } from "date-fns/formatISO";
56
56
  import { fromUnixTime as ro } from "date-fns/fromUnixTime";
57
57
  import { startOfToday as st } from "date-fns/startOfToday";
@@ -58,7 +58,7 @@ import { S as ve } from "../SkeletonLoader-BaNboJjD.mjs";
58
58
  import { u as ae } from "../useWidgetLoadTimer-DgN1bTyu.mjs";
59
59
  import { L as se } from "../Loader-D3rjKx72.mjs";
60
60
  import { W as ht } from "../WidgetContainer-B7xDq2bM.mjs";
61
- import { M as ft } from "../MiniWidgetContainer-xLWSV6Wz.mjs";
61
+ import { M as ft } from "../MiniWidgetContainer-Bhkv-hpz.mjs";
62
62
  import { u as xt } from "../useDimensions-CeDR9V8N.mjs";
63
63
  import { M as bt } from "../MicroWidgetContainer-B_EnfvCq.mjs";
64
64
  const Y = {
@@ -706,6 +706,7 @@ const Y = {
706
706
  className: "mx-exp-recurring-transactions-miniwidget",
707
707
  onPrimaryCtaClick: t,
708
708
  primaryCtaLabel: r.primary_cta,
709
+ primaryCtaLabelAria: r.primary_cta_aria,
709
710
  subTitle: r.sub_title,
710
711
  sx: n,
711
712
  title: r.mini_title,
@@ -7,14 +7,14 @@ import w from "@mui/material/Box";
7
7
  import C from "@mui/material/Stack";
8
8
  import N from "@mui/material/Tab";
9
9
  import it from "@mui/material/Tabs";
10
- import bt from "@mui/material/styles/useTheme";
11
- import { g as rt, a as st, S as $, b as Y } from "../SpendingLegend-s0rv96Ka.mjs";
12
- import { Text as T, Icon as _t } from "@mxenabled/mxui";
10
+ import _t from "@mui/material/styles/useTheme";
11
+ import { g as rt, a as st, S as $, b as Y } from "../SpendingLegend-BgjazduU.mjs";
12
+ import { Text as T, Icon as bt } from "@mxenabled/mxui";
13
13
  import { f as R } from "../NumberFormatting-QCaNwbjv.mjs";
14
- import { u as I, l as A, d as lt, b as V, a as F, h as dt, g as yt } from "../hooks-BxkfR-Ff.mjs";
15
- import { u as ct } from "../useWidgetLoadTimer-DgN1bTyu.mjs";
14
+ import { u as I, l as A, d as lt, b as V, a as F, h as ct, g as yt } from "../hooks-BxkfR-Ff.mjs";
15
+ import { u as dt } from "../useWidgetLoadTimer-DgN1bTyu.mjs";
16
16
  import { L as gt } from "../Loader-D3rjKx72.mjs";
17
- import { M as Ct } from "../MiniWidgetContainer-xLWSV6Wz.mjs";
17
+ import { M as Ct } from "../MiniWidgetContainer-Bhkv-hpz.mjs";
18
18
  import { startOfToday as q } from "date-fns/startOfToday";
19
19
  import St from "@mui/material/Button";
20
20
  import { useTheme as Tt } from "@mui/material";
@@ -36,7 +36,7 @@ const O = ({ amount: n, label: d, variant: o = "full" }) => /* @__PURE__ */ p(C,
36
36
  /* @__PURE__ */ t(T, { bold: !0, sx: { textTransform: "none" }, variant: "body1", children: d }),
37
37
  /* @__PURE__ */ t(T, { variant: "caption", children: R(n, o === "mini" ? "0,0" : "0,0.00") })
38
38
  ] }), At = () => {
39
- const n = bt(), { goals: d, spending: o } = I(), { categories: a, dateRangeCategoryTotals: i } = A(), c = l.useMemo(
39
+ const n = _t(), { goals: d, spending: o } = I(), { categories: a, dateRangeCategoryTotals: i } = A(), g = l.useMemo(
40
40
  () => [
41
41
  n.palette.chartMono.chartMono5,
42
42
  n.palette.chartMono.chartMono4,
@@ -46,14 +46,14 @@ const O = ({ amount: n, label: d, variant: o = "full" }) => /* @__PURE__ */ p(C,
46
46
  n.palette.chartMono.chartMono6
47
47
  ],
48
48
  [n]
49
- ), [e, r] = l.useState(""), [g, _] = l.useState(0), u = l.useMemo(
49
+ ), [e, r] = l.useState(""), [c, b] = l.useState(0), u = l.useMemo(
50
50
  () => rt(a, d, n, i),
51
51
  [a, i]
52
52
  ), m = l.useMemo(
53
- () => st(a, i, c),
54
- [a, i, c]
53
+ () => st(a, i, g),
54
+ [a, i, g]
55
55
  ), M = (f, D) => {
56
- _(D), r("");
56
+ b(D), r("");
57
57
  }, y = (f) => {
58
58
  r(e === f ? "" : f);
59
59
  };
@@ -63,7 +63,7 @@ const O = ({ amount: n, label: d, variant: o = "full" }) => /* @__PURE__ */ p(C,
63
63
  {
64
64
  "aria-label": o.mini_title,
65
65
  onChange: M,
66
- value: g,
66
+ value: c,
67
67
  variant: "fullWidth",
68
68
  children: [
69
69
  /* @__PURE__ */ t(
@@ -79,7 +79,7 @@ const O = ({ amount: n, label: d, variant: o = "full" }) => /* @__PURE__ */ p(C,
79
79
  variant: "mini"
80
80
  }
81
81
  ),
82
- tabIndex: g === 0 ? 0 : -1
82
+ tabIndex: c === 0 ? 0 : -1
83
83
  }
84
84
  ),
85
85
  /* @__PURE__ */ t(
@@ -95,7 +95,7 @@ const O = ({ amount: n, label: d, variant: o = "full" }) => /* @__PURE__ */ p(C,
95
95
  variant: "mini"
96
96
  }
97
97
  ),
98
- tabIndex: g === 1 ? 0 : -1
98
+ tabIndex: c === 1 ? 0 : -1
99
99
  }
100
100
  )
101
101
  ]
@@ -105,7 +105,7 @@ const O = ({ amount: n, label: d, variant: o = "full" }) => /* @__PURE__ */ p(C,
105
105
  w,
106
106
  {
107
107
  "aria-labelledby": "spending-tab",
108
- hidden: g !== 0,
108
+ hidden: c !== 0,
109
109
  id: "spending-tabpanel",
110
110
  role: "tabpanel",
111
111
  children: /* @__PURE__ */ p(C, { direction: "row", gap: 16, justifyContent: "center", p: 24, children: [
@@ -126,7 +126,7 @@ const O = ({ amount: n, label: d, variant: o = "full" }) => /* @__PURE__ */ p(C,
126
126
  w,
127
127
  {
128
128
  "aria-labelledby": "income-tab",
129
- hidden: g !== 1,
129
+ hidden: c !== 1,
130
130
  id: "income-tabpanel",
131
131
  role: "tabpanel",
132
132
  children: /* @__PURE__ */ p(C, { direction: "row", gap: 16, justifyContent: "center", p: 24, children: [
@@ -146,26 +146,27 @@ const O = ({ amount: n, label: d, variant: o = "full" }) => /* @__PURE__ */ p(C,
146
146
  )
147
147
  ] });
148
148
  }, Et = L(At), Wt = ({ onPrimaryCtaClick: n, sx: d = {} }) => {
149
- const { isAccountDataLoaded: o, loadAccountData: a } = lt(), { dateRangeTotalsLoaded: i, categoriesLoaded: c, loadCategories: e, loadDateRangeCategoryTotals: r } = A(), { spending: g } = I(), { isInitialized: _, selectedAccounts: u } = V();
150
- return ct({
149
+ const { isAccountDataLoaded: o, loadAccountData: a } = lt(), { dateRangeTotalsLoaded: i, categoriesLoaded: g, loadCategories: e, loadDateRangeCategoryTotals: r } = A(), { spending: c } = I(), { isInitialized: b, selectedAccounts: u } = V();
150
+ return dt({
151
151
  widgetName: "SpendingMiniWidget",
152
152
  isLoaded: i
153
153
  }), l.useEffect(() => {
154
- o || a().finally(), c || e().finally();
154
+ o || a().finally(), g || e().finally();
155
155
  }, []), l.useEffect(() => {
156
156
  r(
157
157
  u,
158
158
  ot(/* @__PURE__ */ new Date()),
159
159
  at(/* @__PURE__ */ new Date())
160
160
  ).finally();
161
- }, [u]), _ ? /* @__PURE__ */ t(
161
+ }, [u]), b ? /* @__PURE__ */ t(
162
162
  Ct,
163
163
  {
164
164
  className: "mx-exp-spending-miniwidget",
165
165
  onPrimaryCtaClick: n,
166
- primaryCtaLabel: g.primary_cta,
166
+ primaryCtaLabel: c.primary_cta,
167
+ primaryCtaLabelAria: c.primary_cta_aria,
167
168
  sx: { height: "100%", ...d },
168
- title: g.mini_title,
169
+ title: c.mini_title,
169
170
  children: /* @__PURE__ */ t(Et, {})
170
171
  }
171
172
  ) : /* @__PURE__ */ t(gt, {});
@@ -175,7 +176,7 @@ const O = ({ amount: n, label: d, variant: o = "full" }) => /* @__PURE__ */ p(C,
175
176
  selectedId: o = "",
176
177
  title: a
177
178
  }) => {
178
- const { spending: i } = I(), c = n.categoryData.find((e) => e.guid === o);
179
+ const { spending: i } = I(), g = n.categoryData.find((e) => e.guid === o);
179
180
  return /* @__PURE__ */ p(C, { direction: "column", justifyContent: "center", maxWidth: 400, minWidth: 275, width: "100%", children: [
180
181
  /* @__PURE__ */ t(T, { bold: !0, id: "spending-list-title", sx: { py: 12 }, variant: "h3", children: `${a} ${i.by_category}` }),
181
182
  /* @__PURE__ */ t(wt, { "aria-hidden": "true" }),
@@ -193,7 +194,7 @@ const O = ({ amount: n, label: d, variant: o = "full" }) => /* @__PURE__ */ p(C,
193
194
  children: /* @__PURE__ */ p(
194
195
  X,
195
196
  {
196
- "aria-expanded": c?.guid === e.guid,
197
+ "aria-expanded": g?.guid === e.guid,
197
198
  id: `spending-list-category-${e.guid}`,
198
199
  onClick: () => d(e.guid),
199
200
  sx: { minHeight: 44, px: 8, py: 0 },
@@ -228,7 +229,7 @@ const O = ({ amount: n, label: d, variant: o = "full" }) => /* @__PURE__ */ p(C,
228
229
  )
229
230
  }
230
231
  ),
231
- e.categoryTotals && e.categoryTotals.length > 0 && /* @__PURE__ */ t(vt, { in: c?.guid === e.guid, unmountOnExit: !0, children: /* @__PURE__ */ t(J, { sx: { borderBottom: 1, borderColor: "divider" }, children: c?.categoryTotals?.map((r) => /* @__PURE__ */ t(
232
+ e.categoryTotals && e.categoryTotals.length > 0 && /* @__PURE__ */ t(vt, { in: g?.guid === e.guid, unmountOnExit: !0, children: /* @__PURE__ */ t(J, { sx: { borderBottom: 1, borderColor: "divider" }, children: g?.categoryTotals?.map((r) => /* @__PURE__ */ t(
232
233
  Q,
233
234
  {
234
235
  sx: {
@@ -263,7 +264,7 @@ const O = ({ amount: n, label: d, variant: o = "full" }) => /* @__PURE__ */ p(C,
263
264
  selectedId: a,
264
265
  title: i
265
266
  }) => {
266
- const { isDesktop: c, isMobile: e } = Lt(), { dateRangeTotalsLoading: r } = A(), { spending: g } = I();
267
+ const { isDesktop: g, isMobile: e } = Lt(), { dateRangeTotalsLoading: r } = A(), { spending: c } = I();
267
268
  return /* @__PURE__ */ p(
268
269
  C,
269
270
  {
@@ -285,7 +286,7 @@ const O = ({ amount: n, label: d, variant: o = "full" }) => /* @__PURE__ */ p(C,
285
286
  onSelected: () => {
286
287
  },
287
288
  selectedId: "",
288
- size: c ? 400 : 300,
289
+ size: g ? 400 : 300,
289
290
  totalLabel: "Loading ...",
290
291
  variant: "full"
291
292
  }
@@ -299,8 +300,8 @@ const O = ({ amount: n, label: d, variant: o = "full" }) => /* @__PURE__ */ p(C,
299
300
  },
300
301
  onViewTransactions: o,
301
302
  selectedId: a,
302
- size: c ? 400 : 300,
303
- totalLabel: g.total_amount,
303
+ size: g ? 400 : 300,
304
+ totalLabel: c.total_amount,
304
305
  variant: "full"
305
306
  }
306
307
  ),
@@ -317,16 +318,16 @@ const O = ({ amount: n, label: d, variant: o = "full" }) => /* @__PURE__ */ p(C,
317
318
  n.palette.chartMono.chartMono6
318
319
  ], kt = () => {
319
320
  const n = Tt(), { is_mobile_webview: d } = F(), { clientConfig: o } = F(), { categories: a, dateRangeCategoryTotals: i } = A(), {
320
- goals: c,
321
+ goals: g,
321
322
  spending: e,
322
323
  transactions: r
323
- } = I(), { displayedDateRange: g, selectedAccountGuids: _ } = V(), {
324
+ } = I(), { displayedDateRange: c, selectedAccountGuids: b } = V(), {
324
325
  setFilter: u,
325
326
  sortedTransactions: m,
326
327
  sortedTransactionsWithSplits: M,
327
328
  tags: y
328
- } = dt(), f = o?.master?.deep_link_params?.account_guids, D = o?.master?.deep_link_params?.view, [x, E] = l.useState(""), [b, W] = l.useState(D === "income" ? 1 : 0), [z, H] = l.useState(""), [pt, k] = l.useState(!1), B = l.useMemo(
329
- () => rt(a, c, n, i),
329
+ } = ct(), f = o?.master?.deep_link_params?.account_guids, D = o?.master?.deep_link_params?.view, [x, E] = l.useState(""), [_, W] = l.useState(D === "income" ? 1 : 0), [z, H] = l.useState(""), [pt, k] = l.useState(!1), B = l.useMemo(
330
+ () => rt(a, g, n, i),
330
331
  [a, i]
331
332
  ), P = l.useMemo(
332
333
  () => st(a, i, Ot(n)),
@@ -341,18 +342,18 @@ const O = ({ amount: n, label: d, variant: o = "full" }) => /* @__PURE__ */ p(C,
341
342
  }, mt = (s) => {
342
343
  u({
343
344
  ...{
344
- accounts: f || _,
345
- dateRange: g
345
+ accounts: f || b,
346
+ dateRange: c
346
347
  },
347
348
  custom: (h) => x === "other" ? h.top_level_category_guid === s : h.category_guid === s,
348
349
  showSplits: !0
349
350
  }), k(!0);
350
351
  }, U = (s) => {
351
352
  const S = {
352
- accounts: f || _,
353
- dateRange: g
353
+ accounts: f || b,
354
+ dateRange: c
354
355
  };
355
- if (b === 0)
356
+ if (_ === 0)
356
357
  if (s === "other") {
357
358
  const h = B.categoryData.find((j) => j.guid === "other");
358
359
  u({
@@ -375,7 +376,7 @@ const O = ({ amount: n, label: d, variant: o = "full" }) => /* @__PURE__ */ p(C,
375
376
  Mt(M, y);
376
377
  };
377
378
  return /* @__PURE__ */ p(w, { children: [
378
- /* @__PURE__ */ p(it, { onChange: ut, value: b, variant: "fullWidth", children: [
379
+ /* @__PURE__ */ p(it, { onChange: ut, value: _, variant: "fullWidth", children: [
379
380
  /* @__PURE__ */ t(
380
381
  N,
381
382
  {
@@ -401,7 +402,7 @@ const O = ({ amount: n, label: d, variant: o = "full" }) => /* @__PURE__ */ p(C,
401
402
  }
402
403
  )
403
404
  ] }),
404
- b === 0 && /* @__PURE__ */ t(
405
+ _ === 0 && /* @__PURE__ */ t(
405
406
  nt,
406
407
  {
407
408
  data: B,
@@ -411,7 +412,7 @@ const O = ({ amount: n, label: d, variant: o = "full" }) => /* @__PURE__ */ p(C,
411
412
  title: e.spend_tab_title
412
413
  }
413
414
  ),
414
- b === 1 && /* @__PURE__ */ t(
415
+ _ === 1 && /* @__PURE__ */ t(
415
416
  nt,
416
417
  {
417
418
  data: P,
@@ -433,7 +434,7 @@ const O = ({ amount: n, label: d, variant: o = "full" }) => /* @__PURE__ */ p(C,
433
434
  St,
434
435
  {
435
436
  onClick: ht,
436
- startIcon: /* @__PURE__ */ t(_t, { name: "ios_share" }),
437
+ startIcon: /* @__PURE__ */ t(bt, { name: "ios_share" }),
437
438
  variant: "text",
438
439
  children: r.export_csv_btn
439
440
  }
@@ -454,13 +455,13 @@ const O = ({ amount: n, label: d, variant: o = "full" }) => /* @__PURE__ */ p(C,
454
455
  )
455
456
  ] });
456
457
  }, Bt = L(kt), Gt = ({ onBackClick: n, sx: d = {} }) => {
457
- const { isAccountDataLoaded: o, loadAccountData: a } = lt(), { categoriesLoaded: i, dateRangeTotalsLoaded: c, loadCategories: e, loadDateRangeCategoryTotals: r } = A(), { isTransactionDataLoaded: g, loadTransactionData: _ } = dt(), { spending: u } = I(), { displayedDateRange: m, isInitialized: M, setDisplayedDate: y, selectedAccounts: f } = V(), { onEvent: D } = yt(), { clientConfig: x } = F();
458
- ct({
458
+ const { isAccountDataLoaded: o, loadAccountData: a } = lt(), { categoriesLoaded: i, dateRangeTotalsLoaded: g, loadCategories: e, loadDateRangeCategoryTotals: r } = A(), { isTransactionDataLoaded: c, loadTransactionData: b } = ct(), { spending: u } = I(), { displayedDateRange: m, isInitialized: M, setDisplayedDate: y, selectedAccounts: f } = V(), { onEvent: D } = yt(), { clientConfig: x } = F();
459
+ dt({
459
460
  widgetName: "SpendingWidget",
460
- isLoaded: c
461
+ isLoaded: g
461
462
  }), l.useEffect(() => {
462
- const b = x?.master?.deep_link_params, W = b?.date_range ? [tt(b.date_range.from), tt(b.date_range.to)] : [ot(q()), at(q())];
463
- y(W[0], W[1]), o || a().finally(), i || e().finally(), g || _().finally(), D(et.SPENDING_VIEW);
463
+ const _ = x?.master?.deep_link_params, W = _?.date_range ? [tt(_.date_range.from), tt(_.date_range.to)] : [ot(q()), at(q())];
464
+ y(W[0], W[1]), o || a().finally(), i || e().finally(), c || b().finally(), D(et.SPENDING_VIEW);
464
465
  }, []), l.useEffect(() => {
465
466
  M && r(
466
467
  f,
@@ -468,8 +469,8 @@ const O = ({ amount: n, label: d, variant: o = "full" }) => /* @__PURE__ */ p(C,
468
469
  m.end
469
470
  ).finally();
470
471
  }, [m, M, f]);
471
- const E = (b) => {
472
- y(b[0], b[1]);
472
+ const E = (_) => {
473
+ y(_[0], _[1]);
473
474
  };
474
475
  return M ? /* @__PURE__ */ t(
475
476
  It,
@@ -42,7 +42,7 @@ import { u as Ie } from "../useWidgetLoadTimer-DgN1bTyu.mjs";
42
42
  import { L as Le } from "../Loader-D3rjKx72.mjs";
43
43
  import { W as ut } from "../WidgetContainer-B7xDq2bM.mjs";
44
44
  import { L as Ve } from "../LineChart-EAr5ox5U.mjs";
45
- import { M as Jt } from "../MiniWidgetContainer-xLWSV6Wz.mjs";
45
+ import { M as Jt } from "../MiniWidgetContainer-Bhkv-hpz.mjs";
46
46
  import { subMonths as eo } from "date-fns";
47
47
  import { TrendingUp as to, TrendingDown as oo, MultilineChart as no, ExpandLess as so, ExpandMore as ro, ArrowBack as ao } from "@mxenabled/mx-icons";
48
48
  import { M as io } from "../MicroWidgetContainer-B_EnfvCq.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mx-cartographer/experiences",
3
- "version": "7.13.14",
3
+ "version": "7.13.16",
4
4
  "description": "Library containing experience widgets",
5
5
  "author": "MX",
6
6
  "license": "MIT",
@@ -1,56 +0,0 @@
1
- import { jsxs as r, jsx as i, Fragment as g } from "react/jsx-runtime";
2
- import x from "@mui/material/Box";
3
- import C from "@mui/material/Button";
4
- import b from "@mui/material/Card";
5
- import u from "@mui/material/CardHeader";
6
- import v from "@mui/material/CardContent";
7
- import W from "@mui/material/IconButton";
8
- import { Icon as z, ChevronRight as H } from "@mxenabled/mx-icons";
9
- import { H3 as I, Text as y, P as B } from "@mxenabled/mxui";
10
- import { u as M } from "./useDimensions-CeDR9V8N.mjs";
11
- import { W as j } from "./hooks-BxkfR-Ff.mjs";
12
- const w = ({
13
- children: a,
14
- className: m = "mx-cmn-mini-widget",
15
- closeLabel: d,
16
- contentStyles: l,
17
- onClose: e,
18
- onPrimaryCtaClick: o,
19
- primaryCtaLabel: s = "",
20
- subTitle: n = "",
21
- sx: c = {},
22
- title: t = ""
23
- }) => {
24
- const [p, { height: h, width: f }] = M();
25
- return /* @__PURE__ */ r(b, { className: m, sx: { ...c }, children: [
26
- /* @__PURE__ */ i(
27
- u,
28
- {
29
- sx: { pb: 8 },
30
- title: /* @__PURE__ */ r(g, { children: [
31
- /* @__PURE__ */ r(
32
- x,
33
- {
34
- sx: {
35
- alignItems: "center",
36
- display: "grid",
37
- gap: 2,
38
- gridTemplateColumns: "1fr auto",
39
- pb: 4
40
- },
41
- children: [
42
- t && /* @__PURE__ */ i(I, { children: t }),
43
- e ? /* @__PURE__ */ i(W, { "aria-label": d, onClick: e, size: "small", children: /* @__PURE__ */ i(z, { name: "close", size: 24 }) }) : o && /* @__PURE__ */ i(C, { endIcon: /* @__PURE__ */ i(H, {}), onClick: o, size: "small", children: /* @__PURE__ */ i(y, { bold: !0, variant: "body2", children: s }) })
44
- ]
45
- }
46
- ),
47
- n && /* @__PURE__ */ i(B, { color: "text.secondary", sx: { fontSize: 15, lineHeight: "20px" }, variant: "body2", children: n })
48
- ] })
49
- }
50
- ),
51
- /* @__PURE__ */ i(v, { ref: p, sx: { p: 0, ...l }, children: /* @__PURE__ */ i(j, { availableHeight: h, availableWidth: f, children: a }) })
52
- ] });
53
- }, G = w;
54
- export {
55
- G as M
56
- };