@mx-cartographer/experiences 8.0.19 → 8.0.21

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 (55) hide show
  1. package/CHANGELOG.md +12 -4
  2. package/dist/{AccountStore-DpYvNnql.mjs → AccountStore-B7zfcad7.mjs} +1 -1
  3. package/dist/{BudgetUtil-CLhRnCoX.mjs → BudgetUtil-DZpOoZQa.mjs} +1 -1
  4. package/dist/{EmbeddedCard-xngm4vLT.mjs → EmbeddedCard-D0Pgpiuq.mjs} +89 -81
  5. package/dist/{GlobalAccountFilter-B73Pw1hJ.mjs → GlobalAccountFilter-CmnaZDS6.mjs} +27 -27
  6. package/dist/{Help-DBAosGjO.mjs → Help-BkmSY96v.mjs} +1 -1
  7. package/dist/{ManageIncome-CvfRTf-j.mjs → ManageIncome-DfKQ48km.mjs} +2 -2
  8. package/dist/{NotificationSettings-D7VqsrZy.mjs → NotificationSettings-DBT37CVB.mjs} +1 -1
  9. package/dist/{RecurringSettings-DJIUgK5A.mjs → RecurringSettings-CpFfjTIL.mjs} +1 -1
  10. package/dist/{SpendingLegend-BCnXkPCD.mjs → SpendingLegend-CypdabwS.mjs} +1 -1
  11. package/dist/{TransactionDetails-KklNHa-s.mjs → TransactionDetails-D57Cfnwh.mjs} +2 -2
  12. package/dist/WidgetContainer-DYKMArWw.mjs +468 -0
  13. package/dist/accounts/index.es.js +96 -94
  14. package/dist/budgets/index.es.js +448 -444
  15. package/dist/cashflow/index.es.js +234 -232
  16. package/dist/common/components/GlobalAccountFilter.d.ts +2 -1
  17. package/dist/common/components/WidgetContainer.d.ts +2 -1
  18. package/dist/common/components/WidgetDateRangeSelector.d.ts +12 -0
  19. package/dist/common/hooks/index.d.ts +1 -0
  20. package/dist/common/hooks/useWidgetHeaderStyles.d.ts +32 -0
  21. package/dist/common/index.es.js +133 -132
  22. package/dist/common/utils/PostMessage.d.ts +1 -0
  23. package/dist/core/types/Widgets.d.ts +1 -0
  24. package/dist/dashboard/index.es.js +3 -3
  25. package/dist/debts/components/actions/DebtsPriorityAction.d.ts +2 -1
  26. package/dist/debts/components/debtspriority/DebtsPriorityButton.d.ts +2 -1
  27. package/dist/debts/index.es.js +589 -587
  28. package/dist/finstrong/FinstrongWidget.d.ts +1 -1
  29. package/dist/finstrong/index.es.js +738 -746
  30. package/dist/goals/GoalsWidget.d.ts +1 -1
  31. package/dist/goals/index.es.js +439 -438
  32. package/dist/help/HelpWidget.d.ts +1 -1
  33. package/dist/help/index.es.js +21 -12
  34. package/dist/insights/components/index.d.ts +1 -0
  35. package/dist/insights/components/shared/InsightsCard/ClientConfigurableCta.d.ts +5 -0
  36. package/dist/insights/components/shared/InsightsCard/ContentAndDescription.d.ts +0 -2
  37. package/dist/insights/components/shared/InsightsCard/ContentAndDescriptionMUI.d.ts +0 -2
  38. package/dist/insights/components/shared/InsightsCard/Description.d.ts +0 -2
  39. package/dist/insights/components/shared/InsightsCard/DescriptionMUI.d.ts +0 -2
  40. package/dist/insights/index.es.js +562 -579
  41. package/dist/insights/types/CommonBeat.d.ts +0 -1
  42. package/dist/investments/InvestmentsWidget.d.ts +1 -1
  43. package/dist/investments/index.es.js +418 -417
  44. package/dist/networth/index.es.js +265 -278
  45. package/dist/notifications/index.es.js +1 -1
  46. package/dist/recurringtransactions/RecurringTransactionsWidget.d.ts +1 -1
  47. package/dist/recurringtransactions/index.es.js +235 -232
  48. package/dist/settings/SettingsWidget.d.ts +1 -1
  49. package/dist/settings/index.es.js +283 -282
  50. package/dist/spending/index.es.js +110 -109
  51. package/dist/transactions/index.es.js +280 -277
  52. package/dist/trends/index.es.js +623 -616
  53. package/dist/{useScreenSize-B6JyS_Lj.mjs → useScreenSize-CUcpY7aJ.mjs} +1 -1
  54. package/package.json +2 -2
  55. package/dist/WidgetContainer-D-pbSa7L.mjs +0 -441
package/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## [8.0.21] - 04-17-2026
2
+
3
+ - **ADDED** - `ClientConfigurableCta` for Insights Card
4
+
5
+ ## [8.0.20] - 04-15-2026
6
+
7
+ - **UPDATED** - Widget container header styles
8
+
1
9
  ## [8.0.19] - 04-15-2026
2
10
 
3
11
  - **ADDED** - Added `DrillDown Static Calculation Drawer` for SaveAnExtra and SaveEnoughToLiveOn beats
@@ -82,19 +90,19 @@
82
90
 
83
91
  - **UPDATED** - types by moving from common/types to core/types (BREAKING CHANGE)
84
92
 
85
- ## [7.13.21] - 04-03-2026
93
+ ## [7.13.22] - 04-03-2026
86
94
 
87
95
  - **FIXED** - `Spending` widget treating negative transactions as expenses
88
96
 
89
- ## [7.13.20] - 04-02-2026
97
+ ## [7.13.21] - 04-02-2026
90
98
 
91
99
  - **ADDED** - DonutChartV2 component for Insights MUI Refresh.
92
100
 
93
- ## [7.13.19] - 04-01-2026
101
+ ## [7.13.20] - 04-01-2026
94
102
 
95
103
  - **ADDED** - Introduced `TransactionCard` component for `Insights`.
96
104
 
97
- ## [7.13.18] - 04-01-2026
105
+ ## [7.13.19] - 04-01-2026
98
106
 
99
107
  - **FIXED** - Budget date now aligns with selected month
100
108
 
@@ -1,5 +1,5 @@
1
1
  import { makeAutoObservable as h, runInAction as a } from "mobx";
2
- import { i as g } from "./BudgetUtil-CLhRnCoX.mjs";
2
+ import { i as g } from "./BudgetUtil-DZpOoZQa.mjs";
3
3
  import { A as d } from "./AccountApi-ChQr5PAZ.mjs";
4
4
  import { d as p } from "./Accounts-o7ohkngR.mjs";
5
5
  import { A as s, d as u } from "./Account-BiB1F8lL.mjs";
@@ -27,7 +27,7 @@ import ut from "@mui/material/IconButton";
27
27
  import gt from "@mui/material/InputAdornment";
28
28
  import E from "@mui/material/Stack";
29
29
  import ft from "@mui/material/TextField";
30
- import { u as pt } from "./useScreenSize-B6JyS_Lj.mjs";
30
+ import { u as pt } from "./useScreenSize-CUcpY7aJ.mjs";
31
31
  import { m as ht } from "./hooks-BxkfR-Ff.mjs";
32
32
  import { b as T } from "./Category-CevNQ03n.mjs";
33
33
  import { b as j } from "./Localization-CPkpIwIx.mjs";
@@ -1,34 +1,34 @@
1
1
  import { jsxs as a, jsx as e } from "react/jsx-runtime";
2
- import w, { useMemo as X, useState as K, useEffect as q } from "react";
2
+ import _, { useMemo as q, useState as K, useEffect as J } from "react";
3
3
  import A from "@mui/material/Box";
4
4
  import Y from "@mui/material/Button";
5
5
  import c from "@mui/material/Stack";
6
- import { Icon as E, P as N, H3 as J, Text as f, MerchantLogo as P, H2 as tt } from "@mxenabled/mxui";
7
- import { Receipt as et, Icon as rt } from "@mxenabled/mx-icons";
8
- import { L as nt, O as it, e as ot } from "./exportTransactionsToCSV-DgdB3TBt.mjs";
6
+ import { Icon as E, P as N, H3 as P, Text as f, MerchantLogo as tt, H2 as et } from "@mxenabled/mxui";
7
+ import { Receipt as rt, Icon as nt } from "@mxenabled/mx-icons";
8
+ import { L as it, O as ot, e as at } from "./exportTransactionsToCSV-DgdB3TBt.mjs";
9
9
  import { observer as O } from "mobx-react-lite";
10
- import { useVirtualizer as at } from "@tanstack/react-virtual";
11
- import st from "@mui/material/Divider";
12
- import lt from "@mui/material/List";
13
- import { G as ct, h as W, u as H, g as dt, b as ht } from "./hooks-BxkfR-Ff.mjs";
14
- import mt from "@mui/material/ListItemAvatar";
15
- import pt from "@mui/material/ListItemText";
10
+ import { useVirtualizer as st } from "@tanstack/react-virtual";
11
+ import lt from "@mui/material/Divider";
12
+ import ct from "@mui/material/List";
13
+ import { G as dt, h as W, u as H, g as ht, b as mt } from "./hooks-BxkfR-Ff.mjs";
14
+ import pt from "@mui/material/ListItemAvatar";
15
+ import ut from "@mui/material/ListItemText";
16
16
  import { useTheme as z } from "@mui/material/styles";
17
- import { a as ut } from "./Transaction-C3Pg9TKf.mjs";
17
+ import { a as ft } from "./Transaction-C3Pg9TKf.mjs";
18
18
  import { f as B } from "./NumberFormatting-QCaNwbjv.mjs";
19
19
  import { fromUnixTime as R } from "date-fns/fromUnixTime";
20
20
  import { isSameDay as Z } from "date-fns/isSameDay";
21
- import { f as ft, D as gt } from "./DateFormats-BMpMrZpW.mjs";
22
- import { h as xt } from "./DateUtil-wcYTmDRD.mjs";
21
+ import { f as gt, D as xt } from "./DateFormats-BMpMrZpW.mjs";
22
+ import { h as bt } from "./DateUtil-wcYTmDRD.mjs";
23
23
  import { L as Q } from "./Loader-D3rjKx72.mjs";
24
- import { A as bt } from "./Analytics-0Xm_BjHU.mjs";
25
- import yt from "@mui/material/Tab";
24
+ import { A as yt } from "./Analytics-0Xm_BjHU.mjs";
25
+ import _t from "@mui/material/Tab";
26
26
  import wt from "@mui/material/Tabs";
27
- import _t from "@mui/material/IconButton";
28
- import { ChartContainer as Ct, ChartsReferenceLine as j, ChartsXAxis as vt, BarPlot as Tt } from "@mui/x-charts";
29
- import { D as Dt } from "./Drawer-Bbe4AMB1.mjs";
30
- import St from "@mui/material/Card";
31
- const It = ({ message: t, tipAriaLabel: n, onDismiss: r, onAction: i, sx: o }) => {
27
+ import Ct from "@mui/material/IconButton";
28
+ import { ChartContainer as vt, ChartsReferenceLine as j, ChartsXAxis as Tt, BarPlot as Dt } from "@mui/x-charts";
29
+ import { D as St } from "./Drawer-Bbe4AMB1.mjs";
30
+ import It from "@mui/material/Card";
31
+ const Lt = ({ message: t, tipAriaLabel: n, onDismiss: r, onAction: i, sx: o }) => {
32
32
  const l = i || r, h = i ? "chevron_right" : "close";
33
33
  return /* @__PURE__ */ a(
34
34
  c,
@@ -52,7 +52,7 @@ const It = ({ message: t, tipAriaLabel: n, onDismiss: r, onAction: i, sx: o }) =
52
52
  /* @__PURE__ */ e(N, { color: "primary.dark", fontWeight: 400, noWrap: !1, variant: "subtitle2", children: t })
53
53
  ] }),
54
54
  l && /* @__PURE__ */ e(
55
- _t,
55
+ Ct,
56
56
  {
57
57
  "aria-label": n,
58
58
  onClick: l,
@@ -64,7 +64,7 @@ const It = ({ message: t, tipAriaLabel: n, onDismiss: r, onAction: i, sx: o }) =
64
64
  ]
65
65
  }
66
66
  );
67
- }, Lt = ({
67
+ }, kt = ({
68
68
  ariaLabel: t,
69
69
  beat: n,
70
70
  chart: r,
@@ -75,7 +75,7 @@ const It = ({ message: t, tipAriaLabel: n, onDismiss: r, onAction: i, sx: o }) =
75
75
  onTabChange: g,
76
76
  tipSection: m
77
77
  }) => {
78
- const { heading: d, subHeading: u } = n, x = X(
78
+ const { heading: d, subHeading: u } = n, x = q(
79
79
  () => l ?? (o.length ? o.length - 1 : 0),
80
80
  [l, o.length]
81
81
  ), [y, p] = K(x), S = (v, T) => {
@@ -85,7 +85,7 @@ const It = ({ message: t, tipAriaLabel: n, onDismiss: r, onAction: i, sx: o }) =
85
85
  };
86
86
  return /* @__PURE__ */ a(A, { sx: { bgcolor: "background.paper", width: "100%" }, children: [
87
87
  /* @__PURE__ */ e(wt, { "aria-label": t, onChange: S, value: y, variant: "fullWidth", children: o.map((v, T) => /* @__PURE__ */ e(
88
- yt,
88
+ _t,
89
89
  {
90
90
  id: `transaction-details-tab-${T}`,
91
91
  label: v.label,
@@ -94,54 +94,61 @@ const It = ({ message: t, tipAriaLabel: n, onDismiss: r, onAction: i, sx: o }) =
94
94
  `${v.label}-${T}`
95
95
  )) }),
96
96
  /* @__PURE__ */ e(c, { sx: { pt: 16, px: 24 }, children: (d || u) && /* @__PURE__ */ a(c, { sx: { gap: 4 }, children: [
97
- d && /* @__PURE__ */ e(J, { children: d }),
97
+ d && /* @__PURE__ */ e(P, { children: d }),
98
98
  u && /* @__PURE__ */ a(c, { sx: { alignItems: "center", flexDirection: "row", gap: 8 }, children: [
99
99
  h,
100
100
  /* @__PURE__ */ e(f, { textTransform: "uppercase", variant: "body2", children: u.description })
101
101
  ] })
102
102
  ] }) }),
103
103
  r?.(y, I),
104
- m && /* @__PURE__ */ e(It, { ...m }),
104
+ m && /* @__PURE__ */ e(Lt, { ...m }),
105
105
  i?.(y)
106
106
  ] });
107
107
  }, V = () => {
108
- if (!w.useContext(ct))
108
+ if (!_.useContext(dt))
109
109
  throw new Error("useTransactionsUiStore() must be used within the GlobalDataContext");
110
110
  return W().uiStore;
111
111
  };
112
- function kt() {
112
+ function At() {
113
113
  return window.opener && window.opener.location ? window.opener.location.toString() : document.referrer;
114
114
  }
115
- function At(t) {
116
- const n = kt().replace(/([^:]+:\/\/[^\/]+).*/, "$1"), r = window.parent || window.opener || !1;
115
+ function X(t) {
116
+ const n = At().replace(/([^:]+:\/\/[^\/]+).*/, "$1"), r = window.parent || window.opener || !1;
117
117
  return r && r.postMessage && n ? (r.postMessage(t, n), !0) : !1;
118
118
  }
119
119
  function $t(t) {
120
- return At({
120
+ return X({
121
121
  metadata: { beat_guid: t },
122
122
  mx: !0,
123
123
  type: "mx/moneyDashboard/insightOnTransaction"
124
124
  });
125
125
  }
126
+ function ve(t) {
127
+ return X({
128
+ metadata: { template: t },
129
+ mx: !0,
130
+ type: "mx/pulse/client_configured_cta"
131
+ });
132
+ }
126
133
  const Et = ({ transaction: t, onClick: n }) => {
127
- const i = z().palette.mode === "dark", { associatedBeats: o } = W(), { expandedSplits: l } = V(), { transactions: h } = H(), { showInsights: g } = V(), m = t.transaction_type === ut.CREDIT, d = w.useMemo(() => o.find((u) => u.associated_transaction_guid === t.guid), [o, t]);
134
+ const i = z().palette.mode === "dark", { associatedBeats: o } = W(), { expandedSplits: l } = V(), { transactions: h } = H(), { showInsights: g } = V(), m = t.transaction_type === ft.CREDIT, d = _.useMemo(() => o.find((u) => u.associated_transaction_guid === t.guid), [o, t]);
128
135
  return (
129
136
  //TODO: implement common/components/ListItemRow.tsx
130
137
  /* @__PURE__ */ a(
131
- nt,
138
+ it,
132
139
  {
133
- clickEventName: it.ON_TRANSACTION_LIST_ITEM_CLICK,
140
+ clickEventName: ot.ON_TRANSACTION_LIST_ITEM_CLICK,
134
141
  onClick: n ? () => n(t.guid) : void 0,
135
142
  children: [
136
- /* @__PURE__ */ e(mt, { children: t.parent_guid && l.includes(t.parent_guid) ? /* @__PURE__ */ e(w.Fragment, {}) : /* @__PURE__ */ e(
137
- P,
143
+ /* @__PURE__ */ e(pt, { children: t.parent_guid && l.includes(t.parent_guid) ? /* @__PURE__ */ e(_.Fragment, {}) : /* @__PURE__ */ e(
144
+ tt,
138
145
  {
139
146
  categoryGuid: t.top_level_category_guid || "",
140
147
  merchantGuid: t.merchant_guid || ""
141
148
  }
142
149
  ) }),
143
150
  /* @__PURE__ */ e(
144
- pt,
151
+ ut,
145
152
  {
146
153
  disableTypography: !0,
147
154
  secondary: /* @__PURE__ */ a(c, { direction: "row", justifyContent: "space-between", children: [
@@ -203,7 +210,7 @@ const Et = ({ transaction: t, onClick: n }) => {
203
210
  }) => /* @__PURE__ */ e(A, { display: "inline-block", sx: { bgcolor: t, py: 6, width: "100%" }, children: /* @__PURE__ */ e(f, { bold: !0, sx: { pl: 24 }, variant: "caption", children: n }) }), Wt = ({ showIcon: t = !0, showSubtitle: n = !0 }) => {
204
211
  const { transactions: r } = H();
205
212
  return /* @__PURE__ */ a(c, { alignItems: "center", gap: 12, height: "auto", mb: 24, mt: 24, children: [
206
- t && /* @__PURE__ */ e(et, { color: "action", sx: { fontSize: 32 } }),
213
+ t && /* @__PURE__ */ e(rt, { color: "action", sx: { fontSize: 32 } }),
207
214
  /* @__PURE__ */ e(f, { bold: !0, color: "text.secondary", variant: "body2", children: r.zero_state_no_transactions }),
208
215
  n && /* @__PURE__ */ e(f, { color: "text.secondary", variant: "caption", children: r.zero_state_there_are_no_transactions })
209
216
  ] });
@@ -213,8 +220,8 @@ const Et = ({ transaction: t, onClick: n }) => {
213
220
  }, Bt = (t, n) => {
214
221
  const r = R(n[t].date), i = R(n[t + 1]?.date);
215
222
  return Z(r, i);
216
- }, ve = (t) => t?.data ? t.data.map((n) => Object.fromEntries((t.names || []).map((r, i) => [r, n[i]]))) : [], Te = (t, n = "") => t.map((i) => {
217
- const o = ft(i.date, gt.MONTH_SHORT);
223
+ }, Te = (t) => t?.data ? t.data.map((n) => Object.fromEntries((t.names || []).map((r, i) => [r, n[i]]))) : [], De = (t, n = "") => t.map((i) => {
224
+ const o = gt(i.date, xt.MONTH_SHORT);
218
225
  return {
219
226
  ariaLabel: `
220
227
  ${o},
@@ -237,26 +244,26 @@ const Et = ({ transaction: t, onClick: n }) => {
237
244
  width: d = "100%",
238
245
  zeroState: u = /* @__PURE__ */ e(zt, {})
239
246
  }) => {
240
- const { isLoading: x, sortedTransactions: y } = W(), p = w.useMemo(() => {
241
- const b = n ? y.filter(n) : y, _ = m ?? b;
242
- return g ? _ : _.filter((s) => !s.is_hidden);
243
- }, [y, g, m]), { clearExpandedSplits: S, setShowInsights: I, toggleSplit: v } = V(), { onEvent: T } = dt(), M = (b) => {
244
- const _ = p.find((s) => s.guid === b);
245
- if (_?.has_been_split) {
246
- v(_.guid);
247
+ const { isLoading: x, sortedTransactions: y } = W(), p = _.useMemo(() => {
248
+ const b = n ? y.filter(n) : y, w = m ?? b;
249
+ return g ? w : w.filter((s) => !s.is_hidden);
250
+ }, [y, g, m]), { clearExpandedSplits: S, setShowInsights: I, toggleSplit: v } = V(), { onEvent: T } = ht(), M = (b) => {
251
+ const w = p.find((s) => s.guid === b);
252
+ if (w?.has_been_split) {
253
+ v(w.guid);
247
254
  return;
248
255
  }
249
- T(bt.ACCOUNT_DETAILS_CLICK_TRANSACTION, {
250
- account_guid: _?.account_guid,
256
+ T(yt.ACCOUNT_DETAILS_CLICK_TRANSACTION, {
257
+ account_guid: w?.account_guid,
251
258
  transaction_guid: b
252
259
  }), o?.(b);
253
- }, L = w.useRef(null), k = at({
260
+ }, L = _.useRef(null), k = st({
254
261
  count: p.length,
255
262
  getScrollElement: () => L.current,
256
263
  estimateSize: (b) => U + (G(b, p) ? F : 0),
257
264
  overscan: 5
258
265
  });
259
- return w.useEffect(() => k.measure(), [p]), w.useEffect(() => I(l), [l]), w.useEffect(() => () => S(), []), /* @__PURE__ */ e(lt, { component: "div", role: "list", sx: { width: d }, children: /* @__PURE__ */ e(A, { height: r, overflow: "auto", ref: L, role: "presentation", width: d, children: /* @__PURE__ */ a(
266
+ return _.useEffect(() => k.measure(), [p]), _.useEffect(() => I(l), [l]), _.useEffect(() => () => S(), []), /* @__PURE__ */ e(ct, { component: "div", role: "list", sx: { width: d }, children: /* @__PURE__ */ e(A, { height: r, overflow: "auto", ref: L, role: "presentation", width: d, children: /* @__PURE__ */ a(
260
267
  A,
261
268
  {
262
269
  height: (
@@ -270,7 +277,7 @@ const Et = ({ transaction: t, onClick: n }) => {
270
277
  (x || h) && i,
271
278
  !x && !h && k.getVirtualItems().length === 0 && u,
272
279
  !x && !h && k.getVirtualItems().length > 0 && k.getVirtualItems().map((b) => {
273
- const _ = p[b.index], s = G(b.index, p), C = Bt(b.index, p), D = U + (s ? F : 0);
280
+ const w = p[b.index], s = G(b.index, p), C = Bt(b.index, p), D = U + (s ? F : 0);
274
281
  return /* @__PURE__ */ a(
275
282
  A,
276
283
  {
@@ -283,18 +290,18 @@ const Et = ({ transaction: t, onClick: n }) => {
283
290
  bgcolor: "background.paper"
284
291
  },
285
292
  children: [
286
- s && /* @__PURE__ */ e(Rt, { bgcolor: t, children: xt(_.date) }),
293
+ s && /* @__PURE__ */ e(Rt, { bgcolor: t, children: bt(w.date) }),
287
294
  /* @__PURE__ */ e(
288
295
  Mt,
289
296
  {
290
297
  ...o && { onClick: M },
291
- transaction: _
298
+ transaction: w
292
299
  }
293
300
  ),
294
- /* @__PURE__ */ e(st, { sx: { ml: C ? 68 : 0 } })
301
+ /* @__PURE__ */ e(lt, { sx: { ml: C ? 68 : 0 } })
295
302
  ]
296
303
  },
297
- _.guid
304
+ w.guid
298
305
  );
299
306
  })
300
307
  ]
@@ -302,7 +309,7 @@ const Et = ({ transaction: t, onClick: n }) => {
302
309
  ) }) });
303
310
  }, Nt = O(Vt), Ot = (t) => {
304
311
  const [n, r] = K({ width: 0, height: 0 });
305
- return q(() => {
312
+ return J(() => {
306
313
  const i = () => {
307
314
  if (t.current) {
308
315
  const { offsetWidth: o, offsetHeight: l } = t.current;
@@ -431,7 +438,7 @@ const Et = ({ transaction: t, onClick: n }) => {
431
438
  selectedTabIndex: d,
432
439
  trendAmountLabel: u
433
440
  }) => {
434
- const x = w.useRef(null), { height: y, width: p } = Ot(x), S = z(), I = w.useMemo(() => {
441
+ const x = _.useRef(null), { height: y, width: p } = Ot(x), S = z(), I = _.useMemo(() => {
435
442
  const s = r.map(({ value: $ }) => $), C = Math.min(...s), D = Math.max(...s);
436
443
  return {
437
444
  series: [
@@ -455,10 +462,10 @@ const Et = ({ transaction: t, onClick: n }) => {
455
462
  }
456
463
  ]
457
464
  };
458
- }, [r]), v = w.useMemo(() => {
465
+ }, [r]), v = _.useMemo(() => {
459
466
  const s = `${n}80`;
460
467
  return m ? r.map(() => n) : d == null ? [...new Array(r.length - 1).fill(s), n] : r.map((C, D) => D === d ? n : s);
461
- }, [n, r, d]), T = w.useMemo(
468
+ }, [n, r, d]), T = _.useMemo(
462
469
  () => r[d ?? r.length - 1],
463
470
  [r, d]
464
471
  ), L = r.reduce((s, C) => Math.min(s, C.value), 1 / 0) < 0, k = /* @__PURE__ */ e(
@@ -471,7 +478,7 @@ const Et = ({ transaction: t, onClick: n }) => {
471
478
  trendAmount: t?.formattedAverage,
472
479
  trendAmountLabel: u
473
480
  }
474
- ), b = g || u, _ = (s, { dataIndex: C }) => l?.(C);
481
+ ), b = g || u, w = (s, { dataIndex: C }) => l?.(C);
475
482
  return /* @__PURE__ */ a(c, { sx: { alignItems: "center", width: "100%" }, children: [
476
483
  b && h === "top" && k,
477
484
  /* @__PURE__ */ e(
@@ -493,7 +500,7 @@ const Et = ({ transaction: t, onClick: n }) => {
493
500
  }
494
501
  },
495
502
  children: /* @__PURE__ */ a(
496
- Ct,
503
+ vt,
497
504
  {
498
505
  height: y,
499
506
  margin: {
@@ -531,7 +538,7 @@ const Et = ({ transaction: t, onClick: n }) => {
531
538
  }
532
539
  ),
533
540
  /* @__PURE__ */ e(
534
- vt,
541
+ Tt,
535
542
  {
536
543
  position: "bottom",
537
544
  slots: {
@@ -568,9 +575,9 @@ const Et = ({ transaction: t, onClick: n }) => {
568
575
  }
569
576
  ),
570
577
  /* @__PURE__ */ e(
571
- Tt,
578
+ Dt,
572
579
  {
573
- onItemClick: _,
580
+ onItemClick: w,
574
581
  slots: {
575
582
  bar: (s) => {
576
583
  const { ownerState: C, ...D } = s;
@@ -616,9 +623,9 @@ const Et = ({ transaction: t, onClick: n }) => {
616
623
  title: u,
617
624
  transactionListProps: x = {}
618
625
  }) => {
619
- const { common: y, transactions: p } = H(), { isCopyLoaded: S } = ht(), { sortedTransactionsWithSplits: I, tags: v } = W();
620
- return S ? /* @__PURE__ */ e(Dt, { ariaLabelClose: y.close_aria, isOpen: h, onClose: g, title: u, children: /* @__PURE__ */ e(
621
- Lt,
626
+ const { common: y, transactions: p } = H(), { isCopyLoaded: S } = mt(), { sortedTransactionsWithSplits: I, tags: v } = W();
627
+ return S ? /* @__PURE__ */ e(St, { ariaLabelClose: y.close_aria, isOpen: h, onClose: g, title: u, children: /* @__PURE__ */ e(
628
+ kt,
622
629
  {
623
630
  ariaLabel: t,
624
631
  beat: r,
@@ -637,7 +644,7 @@ const Et = ({ transaction: t, onClick: n }) => {
637
644
  icon: l,
638
645
  onTabChange: m,
639
646
  tipSection: d,
640
- children: () => /* @__PURE__ */ a(w.Fragment, { children: [
647
+ children: () => /* @__PURE__ */ a(_.Fragment, { children: [
641
648
  /* @__PURE__ */ a(
642
649
  c,
643
650
  {
@@ -658,12 +665,12 @@ const Et = ({ transaction: t, onClick: n }) => {
658
665
  Y,
659
666
  {
660
667
  onClick: () => {
661
- ot(
668
+ at(
662
669
  x?.transaction || I,
663
670
  v
664
671
  );
665
672
  },
666
- startIcon: /* @__PURE__ */ e(rt, { name: "ios_share" }),
673
+ startIcon: /* @__PURE__ */ e(nt, { name: "ios_share" }),
667
674
  sx: { height: 28 },
668
675
  children: /* @__PURE__ */ e(f, { bold: !0, variant: "body2", children: p.export_csv_btn })
669
676
  }
@@ -675,7 +682,7 @@ const Et = ({ transaction: t, onClick: n }) => {
675
682
  ] })
676
683
  }
677
684
  ) }) : /* @__PURE__ */ e(Q, {});
678
- }, De = Ft, Kt = ({
685
+ }, Se = Ft, Kt = ({
679
686
  amount: t,
680
687
  borderRadius: n = "2px",
681
688
  count: r,
@@ -691,7 +698,7 @@ const Et = ({ transaction: t, onClick: n }) => {
691
698
  /* @__PURE__ */ e(A, { children: o }),
692
699
  /* @__PURE__ */ a(c, { children: [
693
700
  typeof r == "string" ? /* @__PURE__ */ e(N, { variant: "body2", children: l }) : r,
694
- typeof t == "string" ? /* @__PURE__ */ e(tt, { children: t }) : t
701
+ typeof t == "string" ? /* @__PURE__ */ e(et, { children: t }) : t
695
702
  ] })
696
703
  ] }),
697
704
  /* @__PURE__ */ a(c, { sx: { gap: 4 }, children: [
@@ -728,14 +735,14 @@ const Et = ({ transaction: t, onClick: n }) => {
728
735
  /* @__PURE__ */ e(f, { variant: "body2", children: m })
729
736
  ] })
730
737
  ] })
731
- ] }), Se = Kt, Ie = ({
738
+ ] }), Ie = Kt, Le = ({
732
739
  title: t,
733
740
  description: n,
734
741
  callToAction: r,
735
742
  instanceSlot: i = void 0,
736
743
  onCtaClick: o = () => {
737
744
  }
738
- }) => /* @__PURE__ */ a(St, { sx: { pt: 8, pr: 16, pb: 12, pl: 8, borderRadius: "8px" }, children: [
745
+ }) => /* @__PURE__ */ a(It, { sx: { pt: 8, pr: 16, pb: 12, pl: 8, borderRadius: "8px" }, children: [
739
746
  /* @__PURE__ */ e(
740
747
  c,
741
748
  {
@@ -786,17 +793,18 @@ const Et = ({ transaction: t, onClick: n }) => {
786
793
  ] });
787
794
  export {
788
795
  Ut as B,
789
- De as C,
790
- Ie as E,
796
+ Se as C,
797
+ Le as E,
791
798
  Rt as S,
792
799
  Nt as T,
793
800
  Mt as a,
794
- Se as b,
795
- ve as c,
796
- Te as d,
801
+ Ie as b,
802
+ Te as c,
803
+ De as d,
797
804
  Ot as e,
798
- Lt as f,
805
+ kt as f,
799
806
  Bt as h,
807
+ ve as p,
800
808
  G as s,
801
809
  V as u
802
810
  };
@@ -6,20 +6,19 @@ import C from "@mui/material/Button";
6
6
  import P from "@mui/material/Divider";
7
7
  import w from "@mui/material/IconButton";
8
8
  import O from "@mui/material/Popover";
9
- import S from "@mui/material/Stack";
10
- import D from "@mui/material/Tooltip";
11
- import { FilterAlt as A } from "@mxenabled/mx-icons";
12
- import F from "@mui/material/Checkbox";
9
+ import A from "@mui/material/Stack";
10
+ import E from "@mui/material/Tooltip";
11
+ import { FilterAlt as F } from "@mxenabled/mx-icons";
12
+ import S from "@mui/material/Checkbox";
13
13
  import G from "@mui/material/List";
14
14
  import y from "@mui/material/ListItem";
15
15
  import _ from "@mui/material/ListItemButton";
16
- import E from "@mui/material/ListItemIcon";
16
+ import H from "@mui/material/ListItemIcon";
17
17
  import v from "@mui/material/ListItemText";
18
- import { b as z, u as M, d as L } from "./hooks-BxkfR-Ff.mjs";
19
- import { u as H } from "./useScreenSize-B6JyS_Lj.mjs";
18
+ import { b as M, u as z, d as L } from "./hooks-BxkfR-Ff.mjs";
20
19
  const N = I(
21
20
  ({ allowedAccountTypes: a }) => {
22
- const { accountFilterMap: s, updateAccountFilterMap: u } = z(), { accounts: g, common: x } = M(), { account_filter: c } = x, { accountsByTypeMap: n } = L(), k = B.useMemo(
21
+ const { accountFilterMap: s, updateAccountFilterMap: u } = M(), { accounts: g, common: x } = z(), { account_filter: c } = x, { accountsByTypeMap: n } = L(), k = B.useMemo(
23
22
  () => Array.from(n.keys()).reduce((t, i) => {
24
23
  if (!a || a && a.includes(i)) {
25
24
  const o = n.get(i);
@@ -57,7 +56,7 @@ const N = I(
57
56
  sx: { py: 16 },
58
57
  children: /* @__PURE__ */ d(_, { disableGutters: !0, onClick: f, sx: { p: 0, px: 8 }, children: [
59
58
  /* @__PURE__ */ e(
60
- F,
59
+ S,
61
60
  {
62
61
  "aria-checked": m,
63
62
  checked: m,
@@ -89,7 +88,7 @@ const N = I(
89
88
  "aria-label": r,
90
89
  disableGutters: !0,
91
90
  disablePadding: !0,
92
- children: /* @__PURE__ */ d(S, { sx: { pb: 8, width: "100%" }, children: [
91
+ children: /* @__PURE__ */ d(A, { sx: { pb: 8, width: "100%" }, children: [
93
92
  /* @__PURE__ */ e(P, {}),
94
93
  /* @__PURE__ */ e(
95
94
  G,
@@ -122,8 +121,8 @@ const N = I(
122
121
  onClick: () => u(l.guid, !s.get(l.guid)),
123
122
  sx: { p: 0, minHeight: 40 },
124
123
  children: [
125
- /* @__PURE__ */ e(E, { children: /* @__PURE__ */ e(
126
- F,
124
+ /* @__PURE__ */ e(H, { children: /* @__PURE__ */ e(
125
+ S,
127
126
  {
128
127
  "aria-checked": s.get(l.guid),
129
128
  checked: s.get(l.guid),
@@ -157,22 +156,23 @@ const N = I(
157
156
  }
158
157
  );
159
158
  }
160
- ), ne = I(
159
+ ), le = I(
161
160
  ({
162
161
  allowedAccountTypes: a,
163
- onAccountFilterClick: s,
164
- sx: u = {},
165
- variant: g = "text"
162
+ isDesktop: s,
163
+ onAccountFilterClick: u,
164
+ sx: g = {},
165
+ variant: x = "text"
166
166
  }) => {
167
- const { isDesktop: x } = H(), { common: c } = M(), { accountFilterMap: n, resetAccountFilterMap: k } = z(), { detailedAccounts: p, updateAccountFilter: m } = L(), [h, f] = B.useState(null), b = (W) => {
168
- k(), f(W.currentTarget), s?.();
167
+ const { common: c } = z(), { accountFilterMap: n, resetAccountFilterMap: k } = M(), { detailedAccounts: p, updateAccountFilter: m } = L(), [h, f] = B.useState(null), b = (W) => {
168
+ k(), f(W.currentTarget), u?.();
169
169
  }, t = () => {
170
170
  f(null);
171
171
  }, i = async () => {
172
172
  await m(n), f(null);
173
173
  }, o = c.account_filter, r = !!h, l = p.length === 0;
174
- return /* @__PURE__ */ d(j, { m: 4, sx: { ...u }, children: [
175
- x ? /* @__PURE__ */ e(
174
+ return /* @__PURE__ */ d(j, { sx: { ...g }, children: [
175
+ s ? /* @__PURE__ */ e(
176
176
  C,
177
177
  {
178
178
  "aria-controls": r ? "filter_accounts" : void 0,
@@ -181,12 +181,12 @@ const N = I(
181
181
  "aria-label": o.title,
182
182
  disabled: l,
183
183
  onClick: b,
184
- startIcon: /* @__PURE__ */ e(A, { size: 24 }),
184
+ startIcon: /* @__PURE__ */ e(F, { size: 24 }),
185
185
  sx: { p: 8, whiteSpace: "nowrap", minWidth: "max-content" },
186
- variant: g,
186
+ variant: x,
187
187
  children: c.filter_button
188
188
  }
189
- ) : /* @__PURE__ */ e(D, { id: "filter-accounts", placement: "bottom", title: o.title, children: /* @__PURE__ */ e(
189
+ ) : /* @__PURE__ */ e(E, { id: "filter-accounts", placement: "bottom", title: o.title, children: /* @__PURE__ */ e(
190
190
  w,
191
191
  {
192
192
  "aria-controls": r ? "filter_accounts" : void 0,
@@ -198,7 +198,7 @@ const N = I(
198
198
  disabled: l,
199
199
  onClick: b,
200
200
  sx: { p: 8 },
201
- children: /* @__PURE__ */ e(A, { size: 24 })
201
+ children: /* @__PURE__ */ e(F, { size: 24 })
202
202
  }
203
203
  ) }),
204
204
  /* @__PURE__ */ e(
@@ -209,10 +209,10 @@ const N = I(
209
209
  onClose: t,
210
210
  open: r,
211
211
  transformOrigin: { vertical: "top", horizontal: "left" },
212
- children: /* @__PURE__ */ d(S, { children: [
212
+ children: /* @__PURE__ */ d(A, { children: [
213
213
  /* @__PURE__ */ e(N, { allowedAccountTypes: a }),
214
214
  /* @__PURE__ */ e(P, {}),
215
- /* @__PURE__ */ d(S, { direction: "row", justifyContent: "space-between", spacing: 16, sx: { p: 16 }, children: [
215
+ /* @__PURE__ */ d(A, { direction: "row", justifyContent: "space-between", spacing: 16, sx: { p: 16 }, children: [
216
216
  /* @__PURE__ */ e(C, { fullWidth: !0, onClick: t, variant: "text", children: c.cancel_button }),
217
217
  /* @__PURE__ */ e(
218
218
  C,
@@ -233,5 +233,5 @@ const N = I(
233
233
  }
234
234
  );
235
235
  export {
236
- ne as G
236
+ le as G
237
237
  };
@@ -28,7 +28,7 @@ import Dt from "@mui/material/ListItemAvatar";
28
28
  import Rt from "@mui/material/ListItem";
29
29
  import Pt from "@mui/material/ListItemIcon";
30
30
  import Gt from "@mui/material/ListItemText";
31
- import { u as Ft } from "./useScreenSize-B6JyS_Lj.mjs";
31
+ import { u as Ft } from "./useScreenSize-CUcpY7aJ.mjs";
32
32
  const kt = (e, i, n) => {
33
33
  const l = i.reduce((c, { institution_guid: d }) => (c[d] = (c[d] || 0) + 1, c), {});
34
34
  return e.filter(({ guid: c }) => !!l[c]).map(({ guid: c, ...d }) => {
@@ -17,8 +17,8 @@ import { endOfMonth as ue } from "date-fns/endOfMonth";
17
17
  import { parseISO as me } from "date-fns/parseISO";
18
18
  import J from "@mui/material/Button";
19
19
  import { Delete as pe, Add as ye, ReceiptLong as he } from "@mxenabled/mx-icons";
20
- import { T as V, u as fe, S as ge, a as Ce } from "./EmbeddedCard-xngm4vLT.mjs";
21
- import { T as be } from "./TransactionDetails-KklNHa-s.mjs";
20
+ import { T as V, u as fe, S as ge, a as Ce } from "./EmbeddedCard-D0Pgpiuq.mjs";
21
+ import { T as be } from "./TransactionDetails-D57Cfnwh.mjs";
22
22
  import { addYears as j } from "date-fns/addYears";
23
23
  import { getDayOfYear as xe } from "date-fns/getDayOfYear";
24
24
  import { setDayOfYear as Se } from "date-fns/setDayOfYear";
@@ -21,7 +21,7 @@ import { b as me } from "./Localization-CPkpIwIx.mjs";
21
21
  import { b as he, f as ue } from "./NumberFormatting-QCaNwbjv.mjs";
22
22
  import { D as B } from "./Dialog-Ck34yr-d.mjs";
23
23
  import { C as _e } from "./CurrencyInput-DuMktPu3.mjs";
24
- import { u as pe } from "./useScreenSize-B6JyS_Lj.mjs";
24
+ import { u as pe } from "./useScreenSize-CUcpY7aJ.mjs";
25
25
  import { D as K } from "./Drawer-Bbe4AMB1.mjs";
26
26
  import fe from "@mui/material/Collapse";
27
27
  import ge from "@mui/material/Card";
@@ -7,7 +7,7 @@ import R from "@mui/material/Tabs";
7
7
  import d from "@mui/material/Divider";
8
8
  import b 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-CvfRTf-j.mjs";
10
+ import { R as C, A as S, a as E, M as v } from "./ManageIncome-DfKQ48km.mjs";
11
11
  import { u as _, i as A, g as f } from "./hooks-BxkfR-Ff.mjs";
12
12
  import { R as y, F as N } from "./RepeatingTransaction-DF4vJn_v.mjs";
13
13
  import { A as m } from "./Analytics-0Xm_BjHU.mjs";
@@ -11,7 +11,7 @@ import { CategoryIcon as G, CategoryIconVariants as O, Text as y, P as $ } from
11
11
  import { D as j } from "./Donut-CpxJlVvJ.mjs";
12
12
  import { u as R } from "./useAriaLive-MkYebyUR.mjs";
13
13
  import { u as v } from "./hooks-BxkfR-Ff.mjs";
14
- import { u as V } from "./useScreenSize-B6JyS_Lj.mjs";
14
+ import { u as V } from "./useScreenSize-CUcpY7aJ.mjs";
15
15
  import { f as b } from "./NumberFormatting-QCaNwbjv.mjs";
16
16
  const D = 5, B = (i, l, g, m) => m.reduce((o, n) => {
17
17
  const a = i.find((s) => s.guid === n.category_guid);