@mx-cartographer/experiences 7.6.0 → 7.6.2

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,4 +1,12 @@
1
- ## [7.6.0] - 14-01-2025
1
+ ## [7.6.2] - 01-14-2026
2
+
3
+ - **UPDATED** - Hover, axes, titles, descriptions, role for Account Details charts
4
+
5
+ ## [7.6.1] - 01-14-2026
6
+
7
+ - **UPDATED** - Improved ADA support for `Goals` reorder
8
+
9
+ ## [7.6.0] - 01-14-2026
2
10
 
3
11
  - **UPDATED** - Migrated MUI X-Charts from v7 to v8
4
12
 
@@ -11,7 +11,7 @@ import I from "@mui/material/Divider";
11
11
  import v from "@mui/material/ListItem";
12
12
  import N from "@mui/material/ListItemButton";
13
13
  import w from "@mui/material/ListItemText";
14
- import { u as D } from "./AccountDetailsHeader-B21Y8_ED.mjs";
14
+ import { u as D } from "./AccountDetailsHeader-D8wbZdBk.mjs";
15
15
  import { d as z, u as E, g as O, h as X } from "./hooks-ZMp65DFz.mjs";
16
16
  import { A as at } from "./AccountListItem-Dikzsimi.mjs";
17
17
  import { A as M } from "./WidgetContainer-DyotIGdv.mjs";
@@ -0,0 +1,95 @@
1
+ import { jsx as t, jsxs as a } from "react/jsx-runtime";
2
+ import { observer as f } from "mobx-react-lite";
3
+ import s from "@mui/material/Stack";
4
+ import { H3 as T, InstitutionLogo as x, Text as l, H2 as D } from "@mxenabled/mxui";
5
+ import p from "react";
6
+ import { G as N, d as C, m as P, f as G, u as O } from "./hooks-ZMp65DFz.mjs";
7
+ import { g as R } from "./AccountFields-D9Jil_7P.mjs";
8
+ import { A as r } from "./ConnectDrawer-cXpqSnbj.mjs";
9
+ import w from "@mui/material/Card";
10
+ import v from "@mui/material/CardContent";
11
+ import L from "@mui/material/CardHeader";
12
+ import { L as H } from "./Loader-DUaFpDGv.mjs";
13
+ import { I as M, P as U, S as Y } from "./Account-CQ5cFk24.mjs";
14
+ import { u as j } from "./useAccountDisplayName-DSUFGGaF.mjs";
15
+ import { f as z } from "./NumberFormatting-DjTD0t3W.mjs";
16
+ const _ = () => {
17
+ if (!p.useContext(N))
18
+ throw new Error("useCategoryUiStore() must be used within the GlobalDataContext");
19
+ return C().uiStore;
20
+ }, B = (i, e) => {
21
+ const c = [r.LOAN, r.MORTGAGE, r.PROPERTY].includes(
22
+ i
23
+ ), n = [
24
+ r.CREDIT_CARD,
25
+ r.LINE_OF_CREDIT,
26
+ r.PREPAID,
27
+ r.CHECKING_LINE_OF_CREDIT
28
+ ].includes(i);
29
+ return c ? { title: e.label_payments, description: e.chart_title_payments } : n ? { title: e.label_payments_spend, description: e.chart_title_payments_spend } : { title: e.label_income_spend, description: e.chart_title_income_spend };
30
+ }, k = ({
31
+ sx: i,
32
+ ChartComponent: e,
33
+ header: c
34
+ }) => {
35
+ const { loadMonthlyCategoryTotals: n } = P(), { isInitialized: o } = G(), { selectedAccount: d } = _(), [u, m] = p.useState(!1);
36
+ return p.useEffect(() => {
37
+ o && n([d]).finally(() => {
38
+ m(!0);
39
+ });
40
+ }, [o, d]), !o || !u ? /* @__PURE__ */ t(H, {}) : /* @__PURE__ */ a(
41
+ w,
42
+ {
43
+ sx: {
44
+ "& .MuiCardContent-root:last-child": {
45
+ pb: 0
46
+ },
47
+ ...i
48
+ },
49
+ children: [
50
+ /* @__PURE__ */ t(L, { sx: { pb: 0 }, title: /* @__PURE__ */ t(T, { sx: { pb: 4 }, children: c }) }),
51
+ /* @__PURE__ */ t(v, { sx: { p: 0 }, children: e ? /* @__PURE__ */ t(e, {}) : null })
52
+ ]
53
+ }
54
+ );
55
+ }, F = f(k), V = ({
56
+ customDetailsChart: i,
57
+ ChartComponent: e
58
+ }) => {
59
+ const { institutions: c } = C(), { selectedAccount: n } = _(), { accounts: o } = O(), { firstSubtitle: d, firstValue: u, hasAvailableBalance: m, secondSubtitle: h, secondValue: b } = R(n, o), A = c.find(
60
+ (I) => I.guid === n?.institution_guid
61
+ ), S = [
62
+ ...M,
63
+ ...U,
64
+ ...Y
65
+ ].includes(n.account_type), g = j(n), { title: y, description: E } = B(n.account_type, o);
66
+ return /* @__PURE__ */ a(s, { bgcolor: "background.default", p: 24, children: [
67
+ /* @__PURE__ */ a(s, { gap: 12, children: [
68
+ /* @__PURE__ */ t(
69
+ x,
70
+ {
71
+ alt: o.institution_logo_alt,
72
+ institutionGuid: n.institution_guid || "",
73
+ size: 64
74
+ }
75
+ ),
76
+ /* @__PURE__ */ t(l, { variant: "Small", children: A?.name })
77
+ ] }),
78
+ /* @__PURE__ */ a(s, { gap: 8, mb: 24, mt: 4, children: [
79
+ /* @__PURE__ */ t(D, { children: g }),
80
+ /* @__PURE__ */ a(s, { direction: "row", justifyContent: "space-between", children: [
81
+ /* @__PURE__ */ t(l, { bold: m, variant: "Body", children: d }),
82
+ /* @__PURE__ */ t(l, { bold: !0, variant: "Body", children: z(u, "0,0.00") })
83
+ ] }),
84
+ /* @__PURE__ */ a(s, { direction: "row", justifyContent: "space-between", children: [
85
+ /* @__PURE__ */ t(l, { variant: "Small", children: h }),
86
+ /* @__PURE__ */ t(l, { variant: "Small", children: b })
87
+ ] })
88
+ ] }),
89
+ S && /* @__PURE__ */ t(s, { "aria-label": E, role: "img", children: i || /* @__PURE__ */ t(F, { ChartComponent: e, header: y }) })
90
+ ] });
91
+ }, at = f(V);
92
+ export {
93
+ at as A,
94
+ _ as u
95
+ };
@@ -2,6 +2,7 @@ import { default as React } from 'react';
2
2
  import { MiniWidgetProps } from '../../../../common';
3
3
  interface AccountDetailsChartProps extends MiniWidgetProps {
4
4
  ChartComponent?: React.ComponentType;
5
+ header?: string;
5
6
  }
6
7
  declare const _default: React.FunctionComponent<AccountDetailsChartProps>;
7
8
  export default _default;
@@ -1,28 +1,28 @@
1
- import { jsx as e, jsxs as r, Fragment as J } from "react/jsx-runtime";
1
+ 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 y from "@mui/material/Divider";
5
+ import x from "@mui/material/Divider";
6
6
  import F from "@mui/material/List";
7
7
  import O from "@mui/material/ListSubheader";
8
8
  import Z from "@mui/system/Stack";
9
9
  import { Text as g } from "@mxenabled/mxui";
10
- import { useTheme as Q } from "@mui/material/styles";
11
- import { u as U, A as X } from "../AccountDetailsHeader-B21Y8_ED.mjs";
10
+ import { useTheme as J } from "@mui/material/styles";
11
+ import { u as U, A as Q } from "../AccountDetailsHeader-D8wbZdBk.mjs";
12
12
  import { L as e1 } from "../LineChart-BF4QA-Lx.mjs";
13
13
  import { g as t1, a as n1, b as l1 } from "../SpendingData-zOn0cwrq.mjs";
14
14
  import { m as i1, u as M, b as S, d as W, g as P, a as o1 } from "../hooks-ZMp65DFz.mjs";
15
15
  import { A as I, l as G, m as C1 } from "../ConnectDrawer-cXpqSnbj.mjs";
16
16
  import { F as C3, M as d3 } from "../ConnectDrawer-cXpqSnbj.mjs";
17
- import { I as $, P as j, S as Y } from "../Account-CQ5cFk24.mjs";
17
+ import { I as $, P as Y, S as j } from "../Account-CQ5cFk24.mjs";
18
18
  import { a as d1 } from "../AccountFields-D9Jil_7P.mjs";
19
19
  import { g as s3, b as a3 } from "../AccountFields-D9Jil_7P.mjs";
20
20
  import { A as N } from "../AccountListItem-Dikzsimi.mjs";
21
- import { A as c1 } from "../AccountDetailsContent-ZWkttor7.mjs";
22
- import { u as L3 } from "../AccountDetailsContent-ZWkttor7.mjs";
21
+ import { A as c1 } from "../AccountDetailsContent-D4oOgcoI.mjs";
22
+ import { u as L3 } from "../AccountDetailsContent-D4oOgcoI.mjs";
23
23
  import { f as D } from "../NumberFormatting-DjTD0t3W.mjs";
24
24
  import { D as s1 } from "../Drawer-HUhV0NVP.mjs";
25
- import { A as x, W as a1 } from "../WidgetContainer-DyotIGdv.mjs";
25
+ import { A as y, W as a1 } from "../WidgetContainer-DyotIGdv.mjs";
26
26
  import { C as r1 } from "../ConnectionsDrawer-CecygbxT.mjs";
27
27
  import { u as K } from "../useScreenSize-B6JyS_Lj.mjs";
28
28
  import { u as B } from "../useWidgetLoadTimer-hIOioiKx.mjs";
@@ -32,24 +32,24 @@ import { M as z } from "../MiniWidgetContainer-98-hKFqm.mjs";
32
32
  import u1 from "@mui/material/Stack";
33
33
  import { A as h3, a as H3 } from "../AccountStore-CMEXKMhd.mjs";
34
34
  const h1 = (o, C) => {
35
- const l = $.includes(C) ? t1(o) : [], t = j.includes(C) ? n1(o) : [], L = Y.includes(C) ? l1(o) : [];
35
+ const l = $.includes(C) ? t1(o) : [], t = Y.includes(C) ? n1(o) : [], L = j.includes(C) ? l1(o) : [];
36
36
  return [l, t, L].filter((i) => i.length > 0);
37
37
  }, H1 = (o, C, l) => {
38
38
  const [t, L] = o, i = t, d = L ?? t, s = [];
39
39
  if (i && d && $.includes(C)) {
40
40
  const c = i[i.length - 1].y;
41
41
  s.push({ label: l.income_label, amount: c });
42
- } else if (j.includes(C)) {
42
+ } else if (Y.includes(C)) {
43
43
  const c = i[i.length - 1].y;
44
44
  s.push({ label: l.payments_label, amount: c });
45
45
  }
46
- if (d && Y.includes(C)) {
46
+ if (d && j.includes(C)) {
47
47
  const c = d[d.length - 1].y;
48
48
  s.push({ label: l.spending_label, amount: c });
49
49
  }
50
50
  return s;
51
51
  }, p1 = () => {
52
- const o = Q(), { selectedAccount: C } = U(), { monthlyCategoryTotals: l } = i1(), { trends: t } = M(), L = [o.palette.chart?.chart1, o.palette.chart?.chart2], i = h1(l, C.account_type), d = H1(i, C.account_type, t), s = [I.LOAN, I.MORTGAGE].includes(C.account_type);
52
+ const o = J(), { selectedAccount: C } = U(), { monthlyCategoryTotals: l } = i1(), { trends: t } = M(), L = [o.palette.chart?.chart1, o.palette.chart?.chart2], i = h1(l, C.account_type), d = H1(i, C.account_type, t), s = [I.LOAN, I.MORTGAGE].includes(C.account_type);
53
53
  return /* @__PURE__ */ e("div", { "data-testid": "TrendsChart", children: /* @__PURE__ */ e(
54
54
  e1,
55
55
  {
@@ -58,8 +58,14 @@ const h1 = (o, C) => {
58
58
  height: 185,
59
59
  labels: d,
60
60
  showAverage: s,
61
+ showAxisHighlight: !0,
61
62
  showBars: s,
62
63
  showLegend: !0,
64
+ showTooltip: !0,
65
+ showXAxis: !0,
66
+ showXAxisTicks: !0,
67
+ showYAxis: !0,
68
+ showYAxisTicks: !0,
63
69
  valueFormatterString: "0,0"
64
70
  }
65
71
  ) });
@@ -81,13 +87,13 @@ const h1 = (o, C) => {
81
87
  n && i(n);
82
88
  }
83
89
  }, [H, o]);
84
- const _ = (n) => {
85
- C(n.guid), s(x.ACCOUNTS_CLICK_ACCOUNT, {
90
+ const A = (n) => {
91
+ C(n.guid), s(y.ACCOUNTS_CLICK_ACCOUNT, {
86
92
  account_guid: n.guid,
87
93
  account_type: n.account_type
88
94
  });
89
95
  }, V = (n) => {
90
- const a = n === "hidden" ? p : m, k = n === "hidden" ? R : b, u = n === "hidden" ? l.account_hidden : l.account_closed;
96
+ const a = n === "hidden" ? p : m, T = n === "hidden" ? R : b, u = n === "hidden" ? l.account_hidden : l.account_closed;
91
97
  return /* @__PURE__ */ e(E, { children: /* @__PURE__ */ e(
92
98
  F,
93
99
  {
@@ -100,31 +106,31 @@ const h1 = (o, C) => {
100
106
  sx: { justifyContent: "space-between", color: "grey.700" },
101
107
  children: [
102
108
  /* @__PURE__ */ e(g, { bold: !0, variant: "Body", children: u }),
103
- /* @__PURE__ */ e(g, { bold: !0, variant: "Body", children: D(k, "0,0.00") })
109
+ /* @__PURE__ */ e(g, { bold: !0, variant: "Body", children: D(T, "0,0.00") })
104
110
  ]
105
111
  }
106
112
  ) }),
107
- children: /* @__PURE__ */ e(Z, { children: a.map((f, A, q) => {
108
- const T = A === q.length - 1;
113
+ children: /* @__PURE__ */ e(Z, { children: a.map((f, _, X) => {
114
+ const k = _ === X.length - 1;
109
115
  return /* @__PURE__ */ r(h.Fragment, { children: [
110
116
  /* @__PURE__ */ e(
111
117
  N,
112
118
  {
113
119
  account: f,
114
- onRowClick: () => _(f),
120
+ onRowClick: () => A(f),
115
121
  shouldShowConnectionStatus: !0
116
122
  }
117
123
  ),
118
124
  n === "hidden" ? /* @__PURE__ */ e(
119
- y,
125
+ x,
120
126
  {
121
127
  sx: {
122
- mb: T ? 24 : 4,
123
- ml: T ? 24 : 68
128
+ mb: k ? 24 : 4,
129
+ ml: k ? 24 : 68
124
130
  }
125
131
  }
126
- ) : !T && /* @__PURE__ */ e(
127
- y,
132
+ ) : !k && /* @__PURE__ */ e(
133
+ x,
128
134
  {
129
135
  sx: {
130
136
  mb: 4,
@@ -141,7 +147,7 @@ const h1 = (o, C) => {
141
147
  c.map((n) => {
142
148
  const a = t.filter(
143
149
  (u) => u.account_type === n && !u.is_closed && !u.is_hidden
144
- ), k = a.reduce(
150
+ ), T = a.reduce(
145
151
  (u, f) => (f.balance || 0) + u,
146
152
  0
147
153
  );
@@ -157,27 +163,27 @@ const h1 = (o, C) => {
157
163
  sx: { display: "flex", justifyContent: "space-between" },
158
164
  children: [
159
165
  /* @__PURE__ */ e(g, { bold: !0, variant: "Body", children: l.account_types[n] }),
160
- /* @__PURE__ */ e(g, { bold: !0, variant: "Body", children: D(k, "0,0.00") })
166
+ /* @__PURE__ */ e(g, { bold: !0, variant: "Body", children: D(T, "0,0.00") })
161
167
  ]
162
168
  }
163
169
  ) }),
164
170
  children: /* @__PURE__ */ e(Z, { children: a.map((u) => {
165
- const f = t.indexOf(u) === t.length - 1, A = a.indexOf(u) === a.length - 1;
171
+ const f = t.indexOf(u) === t.length - 1, _ = a.indexOf(u) === a.length - 1;
166
172
  return /* @__PURE__ */ r(h.Fragment, { children: [
167
173
  /* @__PURE__ */ e(
168
174
  N,
169
175
  {
170
176
  account: u,
171
- onRowClick: () => _(u),
177
+ onRowClick: () => A(u),
172
178
  shouldShowConnectionStatus: !0
173
179
  }
174
180
  ),
175
181
  (!f || m.length > 0 || p.length > 0) && /* @__PURE__ */ e(
176
- y,
182
+ x,
177
183
  {
178
184
  sx: {
179
- mb: A ? 24 : 4,
180
- ml: A ? 24 : 68
185
+ mb: _ ? 24 : 4,
186
+ ml: _ ? 24 : 68
181
187
  }
182
188
  }
183
189
  )
@@ -197,14 +203,14 @@ const h1 = (o, C) => {
197
203
  onClose: () => C(""),
198
204
  title: l.account_details,
199
205
  children: [
200
- /* @__PURE__ */ e(X, { ChartComponent: m1 }),
206
+ /* @__PURE__ */ e(Q, { ChartComponent: m1 }),
201
207
  /* @__PURE__ */ e(c1, {})
202
208
  ]
203
209
  }
204
210
  )
205
211
  ] });
206
212
  }, V1 = v(f1), g1 = ({ onBackClick: o, sx: C = {} }) => {
207
- const [l, t] = h.useState(!1), [L, i] = h.useState(!1), { config: d } = o1(), { accounts: s } = W(), { accounts: c, connect: H } = M(), { isCopyLoaded: p, isInitialized: m, setSelectedAccounts: R, selectedAccountGuids: b } = S(), { isDesktop: _ } = K(), { onEvent: V } = P();
213
+ const [l, t] = h.useState(!1), [L, i] = h.useState(!1), { config: d } = o1(), { accounts: s } = W(), { accounts: c, connect: H } = M(), { isCopyLoaded: p, isInitialized: m, setSelectedAccounts: R, selectedAccountGuids: b } = S(), { isDesktop: A } = K(), { onEvent: V } = P();
208
214
  B({
209
215
  widgetName: "AccountsWidget",
210
216
  isLoaded: m && p
@@ -212,9 +218,9 @@ const h1 = (o, C) => {
212
218
  R(s);
213
219
  }, [s]);
214
220
  const n = () => {
215
- t(!0), V(x.ACCOUNTS_CLICK_CONNECT);
221
+ t(!0), V(y.ACCOUNTS_CLICK_CONNECT);
216
222
  }, a = () => {
217
- i(!0), V(x.ACCOUNTS_CLICK_CONNECT);
223
+ i(!0), V(y.ACCOUNTS_CLICK_CONNECT);
218
224
  };
219
225
  return p ? /* @__PURE__ */ e(
220
226
  a1,
@@ -228,12 +234,12 @@ const h1 = (o, C) => {
228
234
  onClick: a
229
235
  }
230
236
  ] : [],
231
- onAccountsFilterClick: () => V(x.ACCOUNTS_CLICK_FILTER),
237
+ onAccountsFilterClick: () => V(y.ACCOUNTS_CLICK_FILTER),
232
238
  onBackClick: o,
233
239
  sx: C,
234
240
  title: c.title,
235
- children: m ? /* @__PURE__ */ r(J, { children: [
236
- /* @__PURE__ */ r(E, { sx: { px: _ ? 24 : 12 }, children: [
241
+ children: m ? /* @__PURE__ */ r(q, { children: [
242
+ /* @__PURE__ */ r(E, { sx: { px: A ? 24 : 12 }, children: [
237
243
  b.length < 1 && /* @__PURE__ */ e(g, { display: "flex", justifyContent: "center", my: 24, children: c.no_accounts }),
238
244
  /* @__PURE__ */ e(V1, {})
239
245
  ] }),
@@ -289,7 +295,7 @@ const h1 = (o, C) => {
289
295
  shouldShowConnectionStatus: !0
290
296
  }
291
297
  ),
292
- !R && /* @__PURE__ */ e(y, { "aria-hidden": "true", variant: "inset" })
298
+ !R && /* @__PURE__ */ e(x, { "aria-hidden": "true", variant: "inset" })
293
299
  ] }, `account-item${m}`);
294
300
  })
295
301
  ] }) : /* @__PURE__ */ e(w, {})
@@ -751,7 +757,7 @@ const h1 = (o, C) => {
751
757
  }
752
758
  )
753
759
  ] });
754
- }, w1 = v(R1), _1 = ({
760
+ }, w1 = v(R1), A1 = ({
755
761
  onPrimaryCtaClick: o = () => {
756
762
  },
757
763
  sx: C
@@ -783,11 +789,11 @@ const h1 = (o, C) => {
783
789
  ]
784
790
  }
785
791
  ) : /* @__PURE__ */ e(w, {});
786
- }, l3 = v(_1);
792
+ }, l3 = v(A1);
787
793
  export {
788
794
  h3 as AccountApi,
789
795
  c1 as AccountDetailsContent,
790
- X as AccountDetailsHeader,
796
+ Q as AccountDetailsHeader,
791
797
  H3 as AccountStore,
792
798
  n3 as AccountsMiniWidget,
793
799
  t3 as AccountsWidget,
@@ -0,0 +1,5 @@
1
+ import { AccountType, AccountsCopy } from '../../common';
2
+ export declare const getChartLabels: (accountType: AccountType, copy: AccountsCopy) => {
3
+ title: string;
4
+ description: string;
5
+ };
@@ -45,6 +45,9 @@ export interface AccountsCopy {
45
45
  apy: string;
46
46
  available_balance: string;
47
47
  available_credit: string;
48
+ chart_title_income_spend: string;
49
+ chart_title_payments: string;
50
+ chart_title_payments_spend: string;
48
51
  close_aria: string;
49
52
  close_account_details_aria: string;
50
53
  close_drawer: string;
@@ -73,6 +76,9 @@ export interface AccountsCopy {
73
76
  interest_rate: string;
74
77
  is_closed: string;
75
78
  is_hidden: string;
79
+ label_income_spend: string;
80
+ label_payments: string;
81
+ label_payments_spend: string;
76
82
  manage: string;
77
83
  manage_connection: string;
78
84
  manage_connections: string;
@@ -75,8 +75,10 @@ export interface GoalsCopy {
75
75
  manage_saving_goals: string;
76
76
  manage_saving_title: string;
77
77
  mark_as_complete_button: string;
78
- reorder_goals_title: string;
78
+ reorder_goals_announcement: string;
79
79
  reorder_goals_description: string;
80
+ reorder_goals_drag_aria_label: string;
81
+ reorder_goals_title: string;
80
82
  retirement: string;
81
83
  retirement_goal_description: string;
82
84
  retirement_goal_label: string;
@@ -16,7 +16,7 @@ import { G as Me, w as q, u as S, l as V, g as F, d as Z, b as Pe } from "../hoo
16
16
  import { u as Y } from "../useScreenSize-B6JyS_Lj.mjs";
17
17
  import { D as te } from "../Drawer-HUhV0NVP.mjs";
18
18
  import { b as E } from "../Localization-2MODESHW.mjs";
19
- import { A as ke, u as Ne } from "../AccountDetailsHeader-B21Y8_ED.mjs";
19
+ import { A as ke, u as Ne } from "../AccountDetailsHeader-D8wbZdBk.mjs";
20
20
  import Fe from "@mui/material/Card";
21
21
  import Re from "@mui/material/CardContent";
22
22
  import Le from "@mui/material/CardHeader";