@mx-cartographer/experiences 7.6.4 → 7.6.6

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,12 @@
1
+ ## [7.6.6] - 01-14-2026
2
+
3
+ - **ADDED** - General parent category rows when displaying sub-categories
4
+ - **FIXED** - Issue where income category on Trends table would display a `+-` before the number
5
+
6
+ ## [7.6.5] - 01-14-2026
7
+
8
+ - **UPDATED** - Added a11y labels for chart/table toggle
9
+
1
10
  ## [7.6.4] - 01-15-2026
2
11
 
3
12
  - **UPDATED** - Fixes for `Finstrong` Profile and KeyIndicatorsDrawer
@@ -1,18 +1,18 @@
1
1
  import { jsxs as u, jsx as l } from "react/jsx-runtime";
2
- import x from "react";
3
- import S from "@mui/material/ListItem";
4
- import R from "@mui/material/ListItemButton";
5
- import D from "@mui/material/ListItemIcon";
6
- import A from "@mui/material/ListItemText";
2
+ import T from "react";
3
+ import x from "@mui/material/ListItem";
4
+ import S from "@mui/material/ListItemButton";
5
+ import f from "@mui/material/ListItemIcon";
6
+ import R from "@mui/material/ListItemText";
7
7
  import h from "@mui/material/Stack";
8
8
  import { Text as b } from "@mxenabled/mxui";
9
- import { makeAutoObservable as N } from "mobx";
10
- import { addSeconds as v } from "date-fns/addSeconds";
11
- import { differenceInCalendarMonths as w } from "date-fns/differenceInCalendarMonths";
12
- import { endOfMonth as _ } from "date-fns/endOfMonth";
13
- import { subMonths as I } from "date-fns/subMonths";
14
- import { b as E, C, c as f } from "./Category-CevNQ03n.mjs";
15
- import { f as L, a as M } from "./Dialog-BlnUNqVo.mjs";
9
+ import { makeAutoObservable as A } from "mobx";
10
+ import { addSeconds as N } from "date-fns/addSeconds";
11
+ import { differenceInCalendarMonths as v } from "date-fns/differenceInCalendarMonths";
12
+ import { endOfMonth as D } from "date-fns/endOfMonth";
13
+ import { subMonths as w } from "date-fns/subMonths";
14
+ import { b as I, C as _, c as O } from "./Category-CevNQ03n.mjs";
15
+ import { f as C, a as L } from "./Dialog-BlnUNqVo.mjs";
16
16
  const rt = ({
17
17
  onClick: e,
18
18
  leftIcon: t,
@@ -23,9 +23,9 @@ const rt = ({
23
23
  titleBold: i = !0,
24
24
  rightContentBold: c = !0
25
25
  }) => {
26
- const g = /* @__PURE__ */ u(x.Fragment, { children: [
27
- t && /* @__PURE__ */ l(D, { sx: { ml: 0 }, children: t }),
28
- /* @__PURE__ */ l(A, { children: /* @__PURE__ */ u(
26
+ const g = /* @__PURE__ */ u(T.Fragment, { children: [
27
+ t && /* @__PURE__ */ l(f, { sx: { ml: 0 }, children: t }),
28
+ /* @__PURE__ */ l(R, { children: /* @__PURE__ */ u(
29
29
  h,
30
30
  {
31
31
  sx: {
@@ -40,14 +40,14 @@ const rt = ({
40
40
  ] }),
41
41
  /* @__PURE__ */ u(h, { sx: { flexDirection: "row", alignItems: "center", gap: 1 }, children: [
42
42
  a && /* @__PURE__ */ l(b, { bold: c, display: "flex", variant: "body1", children: a }),
43
- o && /* @__PURE__ */ l(D, { children: o })
43
+ o && /* @__PURE__ */ l(f, { children: o })
44
44
  ] })
45
45
  ]
46
46
  }
47
47
  ) })
48
48
  ] });
49
- return /* @__PURE__ */ l(S, { sx: { bgcolor: "background.paper" }, children: e ? /* @__PURE__ */ l(
50
- R,
49
+ return /* @__PURE__ */ l(x, { sx: { bgcolor: "background.paper" }, children: e ? /* @__PURE__ */ l(
50
+ S,
51
51
  {
52
52
  onClick: e,
53
53
  sx: {
@@ -68,8 +68,8 @@ const rt = ({
68
68
  children: g
69
69
  }
70
70
  ) });
71
- }, O = (e) => C[e] ?? C.default, W = (e) => f[e];
72
- function F(e, t) {
71
+ }, E = (e) => _[e] ?? _.default, G = (e) => O[e];
72
+ function W(e, t) {
73
73
  const o = [], r = new Date(e);
74
74
  for (; r <= t; ) {
75
75
  const n = r.getFullYear(), a = String(r.getMonth() + 1).padStart(2, "0");
@@ -77,7 +77,7 @@ function F(e, t) {
77
77
  }
78
78
  return o;
79
79
  }
80
- const G = (e) => e.reduce((t, o) => {
80
+ const F = (e) => e.reduce((t, o) => {
81
81
  const r = {
82
82
  top_level_category_guid: o.top_level_category_guid,
83
83
  category_guid: o.category_guid,
@@ -86,27 +86,24 @@ const G = (e) => e.reduce((t, o) => {
86
86
  }, { top_level_category_guid: n, category_guid: a } = r;
87
87
  return t[a] || (t[a] = []), t[a].push(r), n !== a && (t[n] || (t[n] = []), t[n].push(r)), t;
88
88
  }, {}), at = (e, t, o) => {
89
- const r = G(e), n = F(t, o);
89
+ const r = F(e), n = W(t, o);
90
90
  return Object.entries(r).map(([a, i]) => {
91
91
  const c = i[0].top_level_category_guid, g = n.map((m) => {
92
- const s = i.filter((y) => y.year_month === m).reduce((y, T) => y + Math.abs(T.amount), 0), d = Number(String(m).slice(0, 4)), p = Number(String(m).slice(4));
92
+ const s = i.filter((y) => y.year_month === m).reduce((y, M) => y + Math.abs(M.amount), 0), d = Number(String(m).slice(0, 4)), p = Number(String(m).slice(4));
93
93
  return { x: new Date(d, p - 1), y: s };
94
94
  }).sort((m, s) => m.x.getTime() - s.x.getTime());
95
95
  return {
96
96
  top_level_category_guid: c,
97
97
  category_guid: a,
98
- category_name: W(a),
99
- category_color: O(c),
98
+ category_name: G(a),
99
+ category_color: E(c),
100
100
  dataset: g
101
101
  };
102
102
  });
103
103
  }, nt = (e, t) => {
104
104
  const o = typeof e == "string" ? parseFloat(e.replace(/[^0-9.-]+/g, "")) : e, r = typeof t == "string" ? parseFloat(t.replace(/[^0-9.-]+/g, "")) : t;
105
105
  return (o || 0) - (r || 0);
106
- }, st = (e, t) => {
107
- const o = f[e] || "", r = f[t] || "";
108
- return o.localeCompare(r);
109
- }, $ = (e, t) => {
106
+ }, st = (e, t) => e.indexOf("General") >= 0 ? 1 : e.localeCompare(t), $ = (e, t) => {
110
107
  const o = e.subCategories.filter((a) => a.currentAmount !== 0), r = e.totalMonthlyAmounts.slice(-t), n = (a) => a.substring(0, 3) + " " + a.slice(-4);
111
108
  return r.map((a) => {
112
109
  const i = n(a.label), c = o.map((s) => {
@@ -130,7 +127,7 @@ const G = (e) => e.reduce((t, o) => {
130
127
  })) : [], r = e ? $(e, t) : [];
131
128
  return { monthlyAmounts: o, tooltipLabels: r };
132
129
  }, k = (e) => e.slice().filter(
133
- (t) => t.totalAmount !== 0 && !t.isTransfer && t.guid !== E.INVESTMENTS
130
+ (t) => t.totalAmount !== 0 && !t.isTransfer && t.guid !== I.INVESTMENTS
134
131
  ).sort((t, o) => Math.abs(o.totalAmount) - Math.abs(t.totalAmount));
135
132
  class it {
136
133
  globalStore;
@@ -139,9 +136,9 @@ class it {
139
136
  visibleListLength = 5;
140
137
  constructor(t) {
141
138
  this.globalStore = t, this.selectedDateRange = {
142
- start: v(_(I(/* @__PURE__ */ new Date(), 6)), 1),
143
- end: _(/* @__PURE__ */ new Date())
144
- }, N(this);
139
+ start: N(D(w(/* @__PURE__ */ new Date(), 6)), 1),
140
+ end: D(/* @__PURE__ */ new Date())
141
+ }, A(this);
145
142
  }
146
143
  setSelectedCategoryData = (t) => {
147
144
  this.selectedCategoryData = t;
@@ -158,10 +155,10 @@ class it {
158
155
  );
159
156
  }
160
157
  get selectedDateRangeMonthCount() {
161
- return w(this.selectedDateRange.end, this.selectedDateRange.start) + 1;
158
+ return v(this.selectedDateRange.end, this.selectedDateRange.start) + 1;
162
159
  }
163
160
  get selectedDateRangeMonthRange() {
164
- const t = L(this.selectedDateRange.start, M.MONTH_LONG), o = L(this.selectedDateRange.end, M.MONTH_LONG);
161
+ const t = C(this.selectedDateRange.start, L.MONTH_LONG), o = C(this.selectedDateRange.end, L.MONTH_LONG);
165
162
  return `${t} - ${o}`;
166
163
  }
167
164
  get visibleCategories() {
@@ -30,8 +30,8 @@ import { C as mr, G as _r, M as fr, T as yr } from "../GoalStore-nm-xgH5C.mjs";
30
30
  import { C as br } from "../CurrencyText-Dr0EZ7bp.mjs";
31
31
  import { E as xr } from "../EmptyState-DoxNUae-.mjs";
32
32
  import { L as vr } from "../ListItemAction-DjHOd3sz.mjs";
33
- import { T as ct } from "../TrendsStore-BFbkWt-O.mjs";
34
- import { L as Ar } from "../TrendsStore-BFbkWt-O.mjs";
33
+ import { T as ct } from "../TrendsStore-CQAsOAvy.mjs";
34
+ import { L as Ar } from "../TrendsStore-CQAsOAvy.mjs";
35
35
  import { A as Tr, B as Br, I as Ir, N as Nr, T as Mr, a as $r } from "../ToggleListItem-ciFTiqRS.mjs";
36
36
  import { jsxs as y, jsx as n } from "react/jsx-runtime";
37
37
  import dt, { useRef as lt, useEffect as ut } from "react";
@@ -57,4 +57,7 @@ export interface CommonCopy {
57
57
  settings: string;
58
58
  six_month_total: string;
59
59
  unhide_button: string;
60
+ view_chart: string;
61
+ view_table: string;
62
+ view_toggle: string;
60
63
  }
@@ -1,8 +1,10 @@
1
1
  export interface TrendsCopy {
2
2
  all_categories: string;
3
3
  categories: string;
4
+ category_general: string;
4
5
  category_income: string;
5
6
  category_spending: string;
7
+ category_title: string;
6
8
  close_category_details: string;
7
9
  empty_state_primary: string;
8
10
  empty_state_sub_text: string;
@@ -17,6 +19,7 @@ export interface TrendsCopy {
17
19
  primary_cta: string;
18
20
  spending_label: string;
19
21
  sub_title: string;
22
+ table_column_total: string;
20
23
  title: string;
21
24
  transaction: string;
22
25
  transactions: string;