@mx-cartographer/experiences 7.6.21 → 7.6.23

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 (31) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/CategorySelectorDrawer-cQKX5dZb.mjs +418 -0
  3. package/dist/{ManageIncome-1FRPmZFq.mjs → ManageIncome-DMVbsehr.mjs} +2 -2
  4. package/dist/{RecurringSettings-z0XUW9qx.mjs → RecurringSettings-C_9BmZvv.mjs} +2 -2
  5. package/dist/{SpendingLegend-BLAhLb1w.mjs → SpendingLegend-BZsjOYfi.mjs} +1 -1
  6. package/dist/{TransactionDetails-BKoBKUNp.mjs → TransactionDetails-CTc7ilRf.mjs} +151 -148
  7. package/dist/{WidgetContainer-COyiIVSd.mjs → WidgetContainer-CpuFZNTe.mjs} +164 -192
  8. package/dist/accounts/index.es.js +2 -2
  9. package/dist/budgets/index.es.js +4 -4
  10. package/dist/cashflow/index.es.js +4 -4
  11. package/dist/categories/components/CustomCategories/AddSubcategory.d.ts +1 -0
  12. package/dist/categories/components/CustomCategories/DeleteSubcategory.d.ts +1 -0
  13. package/dist/categories/components/CustomCategories/RenameSubcategory.d.ts +1 -0
  14. package/dist/categories/components/SubcategoryRow.d.ts +1 -0
  15. package/dist/categories/index.es.js +1 -1
  16. package/dist/common/index.es.js +1 -1
  17. package/dist/common/types/localization/CategoryCopy.d.ts +3 -0
  18. package/dist/debts/index.es.js +1 -1
  19. package/dist/finstrong/index.es.js +5 -5
  20. package/dist/goals/index.es.js +223 -222
  21. package/dist/help/index.es.js +1 -1
  22. package/dist/investments/index.es.js +1 -1
  23. package/dist/networth/index.es.js +1 -1
  24. package/dist/recurringtransactions/index.es.js +5 -5
  25. package/dist/settings/index.es.js +2 -2
  26. package/dist/spending/index.es.js +22 -22
  27. package/dist/transactions/index.es.js +67 -66
  28. package/dist/trends/index.es.js +2 -2
  29. package/dist/useAriaLive-B3_pRUio.mjs +35 -0
  30. package/package.json +1 -1
  31. package/dist/CategorySelectorDrawer-DywvMfPe.mjs +0 -399
package/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## [7.6.23] - 01-23-2026
2
+
3
+ - **FIXED** - ADA - Goals Header
4
+
5
+ ## [7.6.22] - 01-22-2026
6
+
7
+ - **UPDATED** - Transactions details and list actions a11y imrovements
8
+
1
9
  ## [7.6.21] - 01-22-2026
2
10
 
3
11
  - **FIXED** - Spending widget subcategories to use parent category when in 'Other'
@@ -0,0 +1,418 @@
1
+ import { jsx as t, jsxs as g } from "react/jsx-runtime";
2
+ import { observer as E } from "mobx-react-lite";
3
+ import _ from "react";
4
+ import K from "@mui/material/Stack";
5
+ import { G as V, m as b, u as h, g as D, b as U } from "./hooks-ZMp65DFz.mjs";
6
+ import Y from "@mui/material/List";
7
+ import W from "@mui/material/Paper";
8
+ import k from "@mui/material/Divider";
9
+ import x from "@mui/material/ListItem";
10
+ import F from "@mui/material/ListItemAvatar";
11
+ import N from "@mui/material/ListItemButton";
12
+ import M from "@mui/material/ListItemIcon";
13
+ import G from "@mui/material/ListItemText";
14
+ import { CheckCircle as j, Edit as X, Delete as z, ExpandMore as q } from "@mxenabled/mx-icons";
15
+ import { Text as I, TextField as H, CategoryIcon as J } from "@mxenabled/mxui";
16
+ import Q from "@mui/material/Collapse";
17
+ import Z from "@mui/material/DialogContent";
18
+ import { b as p } from "./Localization-2MODESHW.mjs";
19
+ import { a as ee } from "./Dialog-B4PI-_bL.mjs";
20
+ import te from "@mui/material/Box";
21
+ import oe from "@mui/material/Chip";
22
+ import v from "@mui/material/IconButton";
23
+ import { u as ae } from "./useAriaLive-B3_pRUio.mjs";
24
+ import { S as re } from "./SearchBox-B2_zLv8-.mjs";
25
+ import { L as P } from "./Loader-DUaFpDGv.mjs";
26
+ import { D as ne } from "./Drawer-DV4NTsFg.mjs";
27
+ const S = () => {
28
+ if (!_.useContext(V))
29
+ throw new Error("useCategoryUiStore() must be used within the GlobalDataContext");
30
+ return b().uiStore;
31
+ }, C = {
32
+ ON_CATEGORY_EXPANDED: "onCategoryExpanded",
33
+ ON_CATEGORY_COLLAPSED: "onCategoryCollapsed",
34
+ ON_CATEGORY_SELECTED: "onCategorySelected",
35
+ ON_SUBCATEGORY_ADD_CLICK: "onSubcategoryAddClick",
36
+ ON_SUBCATEGORY_ADD_CANCEL_CLICK: "onSubcategoryAddCancelClick",
37
+ ON_SUBCATEGORY_ADDED: "onSubcategoryAdded",
38
+ ON_SUBCATEGORY_EDIT_CLICK: "onSubcategoryEditClick",
39
+ ON_SUBCATEGORY_EDIT_CANCEL_CLICK: "onSubcategoryEditCancelClick",
40
+ ON_SUBCATEGORY_DELETE_CLICK: "onSubcategoryDeleteClick",
41
+ ON_SUBCATEGORY_DELETED: "onSubcategoryDeleted",
42
+ ON_SUBCATEGORY_SAVED: "onSubcategorySaved"
43
+ };
44
+ var L = /* @__PURE__ */ ((e) => (e.ADD = "add", e.EDIT = "edit", e.DELETE = "delete", e))(L || {});
45
+ const se = ({
46
+ categoryName: e = "",
47
+ onClose: s,
48
+ onSave: o,
49
+ isOpen: l,
50
+ type: i
51
+ }) => {
52
+ const [a, c] = _.useState(e), { categories: r } = h(), { setShouldDisableDrawerScroll: n } = S();
53
+ let d = "", m = [];
54
+ const u = i === "delete";
55
+ switch (i) {
56
+ case "add":
57
+ d = r.add_subcategory_title;
58
+ break;
59
+ case "edit":
60
+ d = p(r.edit_subcategory_title, e);
61
+ break;
62
+ case "delete":
63
+ d = r.delete_subcategory_heading, m = p(
64
+ r.all_transactions_in_this_subcategory,
65
+ /* @__PURE__ */ t(I, { bold: !0, children: p(r.all_parent_category, e) })
66
+ );
67
+ break;
68
+ }
69
+ return /* @__PURE__ */ t(
70
+ ee,
71
+ {
72
+ copy: {
73
+ title: d
74
+ },
75
+ disablePrimaryButton: !a,
76
+ isOpen: l,
77
+ onClose: () => {
78
+ n(!1), s();
79
+ },
80
+ onPrimaryAction: () => {
81
+ n(!1), o(a);
82
+ },
83
+ children: /* @__PURE__ */ t(Z, { children: u ? /* @__PURE__ */ t(I, { children: m }) : /* @__PURE__ */ t(
84
+ H,
85
+ {
86
+ inputProps: {
87
+ "aria-label": i === "edit" ? r.edit_subcategory_aria : r.add_subcategory_aria
88
+ },
89
+ name: "modify-subcategory",
90
+ onChange: (y) => c(y.target.value),
91
+ placeholder: r.input_placeholder,
92
+ sx: { width: "100%" },
93
+ value: a
94
+ }
95
+ ) })
96
+ }
97
+ );
98
+ }, R = E(se), ie = ({ announce: e, parentCategory: s }) => {
99
+ const [o, l] = _.useState(!1), { addCategory: i } = b(), { categories: a } = h(), { onEvent: c } = D(), { setShouldDisableDrawerScroll: r } = S(), n = async (u) => {
100
+ await i(u.trim(), s.guid), e(p(a.add_subcategory_announcement, u)), c(C.ON_SUBCATEGORY_ADDED), l(!1);
101
+ }, d = async () => {
102
+ c(C.ON_SUBCATEGORY_ADD_CLICK), r(!0), l(!0);
103
+ }, m = () => {
104
+ l(!1), c(C.ON_SUBCATEGORY_ADD_CANCEL_CLICK);
105
+ };
106
+ return /* @__PURE__ */ g(x, { disableGutters: !0, disablePadding: !0, children: [
107
+ /* @__PURE__ */ t(N, { onClick: d, sx: { ml: 60 }, children: /* @__PURE__ */ t(
108
+ G,
109
+ {
110
+ primary: a.add_subcategory_button,
111
+ primaryTypographyProps: { color: "primary", fontWeight: "normal", variant: "Body" }
112
+ }
113
+ ) }),
114
+ o && /* @__PURE__ */ t(
115
+ R,
116
+ {
117
+ isOpen: o,
118
+ onClose: m,
119
+ onSave: n,
120
+ type: L.ADD
121
+ }
122
+ )
123
+ ] });
124
+ }, ce = E(ie), le = ({
125
+ announce: e,
126
+ setShowRename: s,
127
+ subCategory: o,
128
+ showRename: l
129
+ }) => {
130
+ const { onEvent: i } = D(), { updateCategory: a } = b(), { categories: c } = h(), r = async (d) => {
131
+ await a({ ...o, name: d }), e(p(c.edit_subcategory_announcement, o.name, d)), i(C.ON_SUBCATEGORY_SAVED), s(!1);
132
+ }, n = () => {
133
+ s(!1), i(C.ON_SUBCATEGORY_EDIT_CANCEL_CLICK);
134
+ };
135
+ return /* @__PURE__ */ t(
136
+ R,
137
+ {
138
+ categoryName: o.name,
139
+ isOpen: l,
140
+ onClose: n,
141
+ onSave: r,
142
+ type: L.EDIT
143
+ }
144
+ );
145
+ }, de = E(le), ue = ({
146
+ announce: e,
147
+ parentCategory: s,
148
+ showDelete: o,
149
+ setShowDelete: l,
150
+ subCategory: i
151
+ }) => {
152
+ const { onEvent: a } = D(), { removeCategory: c } = b(), { categories: r } = h(), n = () => {
153
+ l(!1), a(C.ON_SUBCATEGORY_DELETE_CLICK);
154
+ }, d = async () => {
155
+ await c(i.guid), e(p(r.delete_subcategory_announcement, i.name)), a(C.ON_SUBCATEGORY_DELETED), l(!1);
156
+ };
157
+ return /* @__PURE__ */ t(
158
+ R,
159
+ {
160
+ categoryName: s.name,
161
+ isOpen: o,
162
+ onClose: n,
163
+ onSave: d,
164
+ type: L.DELETE
165
+ }
166
+ );
167
+ }, me = E(ue), Ce = ({
168
+ announce: e,
169
+ parentCategory: s,
170
+ subCategory: o
171
+ }) => {
172
+ const {
173
+ onSelect: l,
174
+ selectedGuid: i,
175
+ setSelectedGuid: a,
176
+ setShouldDisableDrawerScroll: c,
177
+ showSelected: r,
178
+ unselectable: n,
179
+ unselectableText: d
180
+ } = S(), { categories: m } = h(), { onEvent: u } = D(), [y, f] = _.useState(!1), [O, A] = _.useState(!1), T = !!o.revision, w = o.guid === i, B = !n.some(($) => $ === o.guid);
181
+ return /* @__PURE__ */ g(
182
+ x,
183
+ {
184
+ className: "mx-cat-subcategory-row",
185
+ disableGutters: !0,
186
+ disablePadding: !0,
187
+ sx: { pl: 58 },
188
+ children: [
189
+ /* @__PURE__ */ g(
190
+ N,
191
+ {
192
+ "aria-pressed": w,
193
+ color: "secondary",
194
+ onClick: () => {
195
+ B && (a(o.guid), l(o.guid), u(C.ON_CATEGORY_SELECTED));
196
+ },
197
+ sx: { height: 44 },
198
+ children: [
199
+ /* @__PURE__ */ t(
200
+ G,
201
+ {
202
+ primary: o.name,
203
+ primaryTypographyProps: { fontWeight: "normal", variant: "Body" }
204
+ }
205
+ ),
206
+ r && w && /* @__PURE__ */ t(j, { fontSize: "small" }),
207
+ !B && /* @__PURE__ */ t(oe, { label: d })
208
+ ]
209
+ }
210
+ ),
211
+ T && /* @__PURE__ */ g(te, { className: "mx-cat-subcategory-edit-container", sx: { marginRight: 24 }, children: [
212
+ /* @__PURE__ */ t(
213
+ v,
214
+ {
215
+ "aria-label": p(m.edit_subcategory_aria, o.name),
216
+ onClick: () => {
217
+ f(!0), c(!0), u(C.ON_SUBCATEGORY_EDIT_CLICK);
218
+ },
219
+ children: /* @__PURE__ */ t(X, { color: "secondary" })
220
+ }
221
+ ),
222
+ /* @__PURE__ */ t(
223
+ v,
224
+ {
225
+ "aria-label": p(m.delete_subcategory_aria, o.name),
226
+ edge: "end",
227
+ onClick: () => {
228
+ A(!0), c(!0), u(C.ON_SUBCATEGORY_DELETE_CLICK);
229
+ },
230
+ children: /* @__PURE__ */ t(z, { color: "secondary" })
231
+ }
232
+ )
233
+ ] }),
234
+ O && /* @__PURE__ */ t(
235
+ me,
236
+ {
237
+ announce: e,
238
+ parentCategory: s,
239
+ setShowDelete: A,
240
+ showDelete: O,
241
+ subCategory: o
242
+ }
243
+ ),
244
+ y && /* @__PURE__ */ t(
245
+ de,
246
+ {
247
+ announce: e,
248
+ setShowRename: f,
249
+ showRename: y,
250
+ subCategory: o
251
+ }
252
+ )
253
+ ]
254
+ }
255
+ );
256
+ }, ge = E(Ce), _e = ({ categories: e, parentCategory: s }) => {
257
+ const { expandedGuid: o, searchValue: l } = S(), { announce: i, ariaLive: a } = ae(), c = s.guid === o, r = !!l;
258
+ return /* @__PURE__ */ g(
259
+ Q,
260
+ {
261
+ in: c || r,
262
+ sx: { backgroundColor: "background.default" },
263
+ timeout: "auto",
264
+ unmountOnExit: !0,
265
+ children: [
266
+ a,
267
+ /* @__PURE__ */ g(
268
+ Y,
269
+ {
270
+ "aria-labelledby": `category-${s.guid}`,
271
+ className: "mx-cat-subcategory-list",
272
+ id: `subcategories-${s.guid}`,
273
+ children: [
274
+ e.map((n) => /* @__PURE__ */ g(_.Fragment, { children: [
275
+ /* @__PURE__ */ t(
276
+ ge,
277
+ {
278
+ announce: i,
279
+ parentCategory: s,
280
+ subCategory: n
281
+ }
282
+ ),
283
+ /* @__PURE__ */ t(k, { sx: { ml: 58 } })
284
+ ] }, n.guid)),
285
+ !r && /* @__PURE__ */ t(ce, { announce: i, parentCategory: s })
286
+ ]
287
+ }
288
+ )
289
+ ]
290
+ }
291
+ );
292
+ }, Ee = E(_e), pe = ({ category: e, subCategories: s }) => {
293
+ const { expandedGuid: o, searchValue: l, setExpandedGuid: i } = S(), { onEvent: a } = D(), c = e.guid === o, r = () => {
294
+ const n = e.guid !== o ? e.guid : null;
295
+ i(n), a(n ? C.ON_CATEGORY_EXPANDED : C.ON_CATEGORY_COLLAPSED);
296
+ };
297
+ return /* @__PURE__ */ g(_.Fragment, { children: [
298
+ /* @__PURE__ */ t(x, { disableGutters: !0, disablePadding: !0, children: /* @__PURE__ */ g(
299
+ N,
300
+ {
301
+ "aria-controls": `subcategories-${e.guid}`,
302
+ "aria-expanded": e.guid === o,
303
+ "aria-label": e.name,
304
+ id: `category-${e.guid}`,
305
+ onClick: r,
306
+ children: [
307
+ /* @__PURE__ */ t(F, { children: /* @__PURE__ */ t(J, { categoryGuid: e.guid }) }),
308
+ /* @__PURE__ */ t(
309
+ G,
310
+ {
311
+ primary: e.name,
312
+ primaryTypographyProps: { fontWeight: "normal", variant: "Body" }
313
+ }
314
+ ),
315
+ /* @__PURE__ */ t(M, { children: /* @__PURE__ */ t(
316
+ q,
317
+ {
318
+ sx: {
319
+ transition: "transform 0.3s ease-in-out",
320
+ transform: c || l ? "rotate(180deg)" : "rotate(0deg)"
321
+ }
322
+ }
323
+ ) })
324
+ ]
325
+ },
326
+ e.guid
327
+ ) }),
328
+ /* @__PURE__ */ t(k, { sx: { ml: 58 } }),
329
+ /* @__PURE__ */ t(Ee, { categories: s, parentCategory: e })
330
+ ] });
331
+ }, he = E(pe), Se = () => {
332
+ const { categories: e } = b(), { searchValue: s } = S(), { categories: o } = h(), i = ((a, c = "") => a.reduce((r, n) => {
333
+ if (n.parent_guid === null) {
334
+ const m = [
335
+ {
336
+ ...n,
337
+ name: p(o.all_parent_category, n.name),
338
+ parent_guid: n.guid
339
+ },
340
+ ...a
341
+ ].filter(
342
+ (u) => u.parent_guid === n.guid && u.name.toLowerCase().includes(c.toLowerCase())
343
+ );
344
+ if (n.name.toLowerCase().includes(c.toLowerCase()) || m.length > 0)
345
+ return [...r, { category: { ...n }, children: m }];
346
+ }
347
+ return r;
348
+ }, []))(e, s);
349
+ return /* @__PURE__ */ t(W, { className: "mx-cat-category-list", sx: { boxShadow: "none" }, children: /* @__PURE__ */ t(Y, { children: i.map((a) => /* @__PURE__ */ t(
350
+ he,
351
+ {
352
+ category: a.category,
353
+ subCategories: a.children
354
+ },
355
+ a.category.guid
356
+ )) }) });
357
+ }, ye = E(Se), be = ({
358
+ initialSelected: e,
359
+ onSelect: s = void 0,
360
+ showSelected: o = !0,
361
+ unselectable: l = [],
362
+ unselectableText: i = "Unselectable"
363
+ }) => {
364
+ const { categories: a, loadCategories: c } = b(), { common: r } = h(), { isCopyLoaded: n } = U(), {
365
+ searchValue: d,
366
+ setOnSelect: m,
367
+ setSearchValue: u,
368
+ setSelectedGuid: y,
369
+ setShowSelected: f,
370
+ setUnselectable: O,
371
+ setUnselectableText: A
372
+ } = S();
373
+ return _.useEffect(() => {
374
+ s && m(s);
375
+ }), _.useEffect(() => {
376
+ a.length || c();
377
+ }, []), _.useEffect(() => {
378
+ e && y(e), f(o), O(l), A(i);
379
+ }, [e, o, l, i]), n ? /* @__PURE__ */ g(K, { className: "mx-cat-category-selector", sx: { width: "100%" }, children: [
380
+ /* @__PURE__ */ t(
381
+ re,
382
+ {
383
+ ariaLabel: r.search_aria,
384
+ cancelAriaLabel: r.cancel_search_aria,
385
+ onChange: (T) => u(T),
386
+ placeholder: r.search_placeholder,
387
+ searchValue: d
388
+ }
389
+ ),
390
+ /* @__PURE__ */ t(ye, {})
391
+ ] }) : /* @__PURE__ */ t(P, {});
392
+ }, De = E(be), fe = ({
393
+ id: e,
394
+ onClose: s,
395
+ title: o,
396
+ showDrawer: l,
397
+ ...i
398
+ }) => {
399
+ const { common: a } = h(), { isCopyLoaded: c } = U();
400
+ return c ? /* @__PURE__ */ t(
401
+ ne,
402
+ {
403
+ ariaLabelClose: a.close_aria,
404
+ className: "mx-cat-category-selector-drawer",
405
+ id: e,
406
+ isOpen: l,
407
+ onClose: s,
408
+ title: o,
409
+ children: /* @__PURE__ */ t(De, { ...i })
410
+ }
411
+ ) : /* @__PURE__ */ t(P, {});
412
+ }, Je = E(fe);
413
+ export {
414
+ De as C,
415
+ Je as a,
416
+ he as b,
417
+ S as u
418
+ };
@@ -17,7 +17,7 @@ import { endOfMonth as _e } from "date-fns/endOfMonth";
17
17
  import { parseISO as me } from "date-fns/parseISO";
18
18
  import $ from "@mui/material/Button";
19
19
  import { Delete as pe, Add as he, ReceiptLong as ye } from "@mxenabled/mx-icons";
20
- import { T as X, a as ge, u as fe, S as Ce, b as be } from "./TransactionDetails-BKoBKUNp.mjs";
20
+ import { T as X, a as ge, u as fe, S as Ce, b as be } from "./TransactionDetails-CTc7ilRf.mjs";
21
21
  import { getDayOfYear as xe } from "date-fns/getDayOfYear";
22
22
  import { setDayOfYear as Se } from "date-fns/setDayOfYear";
23
23
  import { AdapterDateFns as ve } from "@mui/x-date-pickers/AdapterDateFnsV3";
@@ -26,7 +26,7 @@ import { LocalizationProvider as Ae } from "@mui/x-date-pickers/LocalizationProv
26
26
  import { u as w, j as F, g as G, b as Ie, h as Z, o as De } from "./hooks-ZMp65DFz.mjs";
27
27
  import { b as Ee, f as J } from "./NumberFormatting-DjTD0t3W.mjs";
28
28
  import { D as O } from "./Drawer-DV4NTsFg.mjs";
29
- import { A as R } from "./WidgetContainer-COyiIVSd.mjs";
29
+ import { A as R } from "./WidgetContainer-CpuFZNTe.mjs";
30
30
  import { f as Re, D as Te, a as Le } from "./Dialog-B4PI-_bL.mjs";
31
31
  import { formatISO as Oe } from "date-fns/formatISO";
32
32
  import { fromUnixTime as ke } from "date-fns/fromUnixTime";
@@ -7,10 +7,10 @@ import b from "@mui/material/Tabs";
7
7
  import d from "@mui/material/Divider";
8
8
  import R from "@mui/material/List";
9
9
  import T from "@mui/material/Stack";
10
- import { R as C, A as S, a as E, M as v } from "./ManageIncome-1FRPmZFq.mjs";
10
+ import { R as C, A as S, a as E, M as v } from "./ManageIncome-DMVbsehr.mjs";
11
11
  import { u as _, j as A, g as f } from "./hooks-ZMp65DFz.mjs";
12
12
  import { R as y, F as N } from "./RecurringTransactions-Bf4lX0Cn.mjs";
13
- import { A as m } from "./WidgetContainer-COyiIVSd.mjs";
13
+ import { A as m } from "./WidgetContainer-CpuFZNTe.mjs";
14
14
  const I = h(() => {
15
15
  const { recurring: g } = _(), { repeatingTransactions: n } = A(), { onEvent: o } = f(), l = (r) => {
16
16
  o(m.RECURRING_TRANSACTIONS_CLICK_EXPENSE, {
@@ -8,7 +8,7 @@ import f from "@mui/material/Stack";
8
8
  import { useTheme as k } from "@mui/material/styles";
9
9
  import { CategoryIcon as A, CategoryIconVariants as G, Text as h } from "@mxenabled/mxui";
10
10
  import { D as O } from "./Donut-Dmy3JTWd.mjs";
11
- import { u as $ } from "./WidgetContainer-COyiIVSd.mjs";
11
+ import { u as $ } from "./useAriaLive-B3_pRUio.mjs";
12
12
  import { u as j } from "./hooks-ZMp65DFz.mjs";
13
13
  import { u as R } from "./useScreenSize-B6JyS_Lj.mjs";
14
14
  import { f as D } from "./NumberFormatting-DjTD0t3W.mjs";