@mx-cartographer/experiences 8.0.23 → 8.0.25

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
+ ## [8.0.25] - 04-20-2026
2
+
3
+ - **ADDED** - `Error` component from MD
4
+
5
+ ## [8.0.24] - 04-20-2026
6
+
7
+ - **UPDATED** - `@tanstack/react-virtual` from 3.13.2 to 3.13.19
8
+
1
9
  ## [8.0.23] - 04-20-2026
2
10
 
3
11
  - **UPDATED** - `posthog-js` from 1.230.1 to 1.356.1
@@ -0,0 +1,11 @@
1
+ interface ErrorProps {
2
+ heading?: string;
3
+ message?: string;
4
+ iconName?: string;
5
+ buttonText?: string;
6
+ onClick?: () => void;
7
+ }
8
+ declare const _default: (({ heading: headingProp, message: messageProp, iconName, buttonText: buttonTextProp, onClick, }: ErrorProps) => import("react/jsx-runtime").JSX.Element) & {
9
+ displayName: string;
10
+ };
11
+ export default _default;
@@ -5,6 +5,7 @@ export * from './dialog';
5
5
  export * from './donuts';
6
6
  export * from './drawer';
7
7
  export { default as ErrorBoundary } from './ErrorBoundary';
8
+ export { default as Error } from './Error';
8
9
  export { default as MicroWidgetContainer } from './MicroWidgetContainer';
9
10
  export { default as MiniWidgetContainer } from './MiniWidgetContainer';
10
11
  export { WidgetContainer } from './WidgetContainer';
@@ -1,83 +1,86 @@
1
- import { G as C } from "../useCombineEvents-Bqojlv8q.mjs";
2
- import { A as Ct, b as Dt, u as At, a as Et } from "../useCombineEvents-Bqojlv8q.mjs";
3
- import { F as g, A as a } from "../Fetch-B6tMJC1r.mjs";
4
- import { B as xt } from "../BeatApi-EFHXULDx.mjs";
5
- import { C as F } from "../CategoryStore-FTxUbn0f.mjs";
6
- import { a as Bt } from "../CategoryStore-FTxUbn0f.mjs";
7
- import { N as G } from "../NotificationStore-D_e8zo5M.mjs";
8
- import { a as Mt } from "../NotificationStore-D_e8zo5M.mjs";
9
- import { a as H } from "../Transaction-C3Pg9TKf.mjs";
10
- import { H as W } from "../Help-B8mD4aLJ.mjs";
11
- import { E as Lt } from "../Help-B8mD4aLJ.mjs";
12
- import { M as Pt } from "../MicroWidgetContainer-B_EnfvCq.mjs";
13
- import { M as Nt } from "../MiniWidgetContainer-Bhkv-hpz.mjs";
14
- import { D as $t, W as Ft, u as Gt } from "../WidgetContainer-DYKMArWw.mjs";
15
- import { C as Wt } from "../ConnectDrawer-C0wjwcJt.mjs";
16
- import { f as q, c as Y, d as D } from "../BudgetUtil-DZpOoZQa.mjs";
17
- import { a as Yt, b as Qt, C as zt, e as Vt, k as Kt, h as jt, j as Zt, l as Xt } from "../BudgetUtil-DZpOoZQa.mjs";
18
- import { C as es } from "../CurrencyInput-DuMktPu3.mjs";
19
- import { L as ss } from "../Loader-D3rjKx72.mjs";
20
- import { R as os } from "../ResponsiveButton-DZFp78fJ.mjs";
21
- import { S as is } from "../SearchBox-CwDgvWVJ.mjs";
22
- import { T as Q } from "../TransactionStore-BUsgGRL1.mjs";
23
- import { S as cs } from "../TransactionStore-BUsgGRL1.mjs";
24
- import { T as ds } from "../TabContentContainer-j01JYR_7.mjs";
25
- import { I as ls } from "../IconBacking-B9oC6uL2.mjs";
26
- import { D as ps, S as _s } from "../RecurringTransactions-BbZ6MQsX.mjs";
27
- import { C as z } from "../CashflowStore-CeAzChyD.mjs";
28
- import { I as ms } from "../CashflowStore-CeAzChyD.mjs";
29
- import { c as V } from "../GoalStore-fgXt--2Y.mjs";
30
- import { C as Ss } from "../GoalStore-fgXt--2Y.mjs";
31
- import { C as ws } from "../CurrencyText-CA-E5N_y.mjs";
32
- import { E as Ds } from "../EmptyState-DHAkGsjk.mjs";
33
- import { L as Es } from "../ListItemAction-4KB7P75M.mjs";
34
- import { T as K } from "../TrendsStore-CYdTo7cN.mjs";
35
- import { L as xs } from "../TrendsStore-CYdTo7cN.mjs";
36
- import { L as Bs } from "../exportTransactionsToCSV-DgdB3TBt.mjs";
37
- import { T as Ms, a as Us } from "../ToggleListItem-BLu_fWA2.mjs";
38
- import { G as ks } from "../GlobalAccountFilter-CmnaZDS6.mjs";
39
- import { S as Rs } from "../StatusBar-BK_uYHAB.mjs";
40
- import { D as Os } from "../Donut-CpxJlVvJ.mjs";
41
- import { D as Fs } from "../Dialog-Ck34yr-d.mjs";
42
- import { jsxs as A, jsx as w } from "react/jsx-runtime";
43
- import { css as j } from "@mxenabled/cssinjs";
44
- import { D as Z, a as X } from "../SingleSegmentDonut-BgbLgwHi.mjs";
45
- import { S as Hs } from "../SingleSegmentDonut-BgbLgwHi.mjs";
46
- import { D as qs } from "../Drawer-Bbe4AMB1.mjs";
47
- import { A as Qs } from "../Analytics-0Xm_BjHU.mjs";
48
- import { D as Vs, O as Ks, a as js, f as Zs } from "../DateFormats-BMpMrZpW.mjs";
49
- import { I as Js, P as er, S as tr } from "../Account-DuOz1a27.mjs";
50
- import { b as m } from "../Category-CevNQ03n.mjs";
51
- import { C as rr, c as or, a as ar, P as ir } from "../Category-CevNQ03n.mjs";
52
- import { C as cr, f as ur, b as dr, a as hr, g as lr, i as gr } from "../NumberFormatting-QCaNwbjv.mjs";
1
+ import { G as D } from "../useCombineEvents-Bqojlv8q.mjs";
2
+ import { A as Ut, b as Lt, u as Pt, a as Rt } from "../useCombineEvents-Bqojlv8q.mjs";
3
+ import { F as p, A as a } from "../Fetch-B6tMJC1r.mjs";
4
+ import { B as Ot } from "../BeatApi-EFHXULDx.mjs";
5
+ import { C as H } from "../CategoryStore-FTxUbn0f.mjs";
6
+ import { a as Ft } from "../CategoryStore-FTxUbn0f.mjs";
7
+ import { N as W } from "../NotificationStore-D_e8zo5M.mjs";
8
+ import { a as Ht } from "../NotificationStore-D_e8zo5M.mjs";
9
+ import { a as q } from "../Transaction-C3Pg9TKf.mjs";
10
+ import { H as Y } from "../Help-B8mD4aLJ.mjs";
11
+ import { E as qt } from "../Help-B8mD4aLJ.mjs";
12
+ import { jsxs as C, jsx as f } from "react/jsx-runtime";
13
+ import { observer as Q } from "mobx-react-lite";
14
+ import { alpha as z, lighten as A, darken as E, Stack as T, Button as V } from "@mui/material";
15
+ import { Icon as j, Text as x } from "@mxenabled/mxui";
16
+ import { u as K } from "../hooks-BxkfR-Ff.mjs";
17
+ import { G as Qt, C as zt, D as Vt, W as jt, d as Kt, a as Zt, m as Xt, t as Jt, l as es, v as ts, w as ss, g as rs, y as os, f as as, b as ns, k as is, z as cs, s as us, x as ds, c as ls, q as hs, n as gs, A as ps, i as _s, r as fs, h as ms, B as ys, o as Ss, p as bs } from "../hooks-BxkfR-Ff.mjs";
18
+ import { M as Cs } from "../MicroWidgetContainer-B_EnfvCq.mjs";
19
+ import { M as As } from "../MiniWidgetContainer-Bhkv-hpz.mjs";
20
+ import { D as Ts, W as xs, u as Is } from "../WidgetContainer-DYKMArWw.mjs";
21
+ import { C as vs } from "../ConnectDrawer-C0wjwcJt.mjs";
22
+ import { f as Z, c as X, d as I } from "../BudgetUtil-DZpOoZQa.mjs";
23
+ import { a as ks, b as Us, C as Ls, e as Ps, k as Rs, h as Ns, j as Os, l as $s } from "../BudgetUtil-DZpOoZQa.mjs";
24
+ import { C as Gs } from "../CurrencyInput-DuMktPu3.mjs";
25
+ import { L as Ws } from "../Loader-D3rjKx72.mjs";
26
+ import { R as Ys } from "../ResponsiveButton-DZFp78fJ.mjs";
27
+ import { S as zs } from "../SearchBox-CwDgvWVJ.mjs";
28
+ import { T as J } from "../TransactionStore-BUsgGRL1.mjs";
29
+ import { S as js } from "../TransactionStore-BUsgGRL1.mjs";
30
+ import { T as Zs } from "../TabContentContainer-j01JYR_7.mjs";
31
+ import { I as Js } from "../IconBacking-B9oC6uL2.mjs";
32
+ import { D as tr, S as sr } from "../RecurringTransactions-BbZ6MQsX.mjs";
33
+ import { C as ee } from "../CashflowStore-CeAzChyD.mjs";
34
+ import { I as or } from "../CashflowStore-CeAzChyD.mjs";
35
+ import { c as te } from "../GoalStore-fgXt--2Y.mjs";
36
+ import { C as nr } from "../GoalStore-fgXt--2Y.mjs";
37
+ import { C as cr } from "../CurrencyText-CA-E5N_y.mjs";
38
+ import { E as dr } from "../EmptyState-DHAkGsjk.mjs";
39
+ import { L as hr } from "../ListItemAction-4KB7P75M.mjs";
40
+ import { T as se } from "../TrendsStore-CYdTo7cN.mjs";
41
+ import { L as pr } from "../TrendsStore-CYdTo7cN.mjs";
42
+ import { L as fr } from "../exportTransactionsToCSV-DgdB3TBt.mjs";
43
+ import { T as yr, a as Sr } from "../ToggleListItem-BLu_fWA2.mjs";
44
+ import { G as wr } from "../GlobalAccountFilter-CmnaZDS6.mjs";
45
+ import { S as Dr } from "../StatusBar-BK_uYHAB.mjs";
46
+ import { D as Er } from "../Donut-CpxJlVvJ.mjs";
47
+ import { D as xr } from "../Dialog-Ck34yr-d.mjs";
48
+ import { css as re } from "@mxenabled/cssinjs";
49
+ import { D as oe, a as ae } from "../SingleSegmentDonut-BgbLgwHi.mjs";
50
+ import { S as Br } from "../SingleSegmentDonut-BgbLgwHi.mjs";
51
+ import { D as Mr } from "../Drawer-Bbe4AMB1.mjs";
52
+ import { A as Ur } from "../Analytics-0Xm_BjHU.mjs";
53
+ import { D as Pr, O as Rr, a as Nr, f as Or } from "../DateFormats-BMpMrZpW.mjs";
54
+ import { I as Fr, P as Gr, S as Hr } from "../Account-DuOz1a27.mjs";
55
+ import { b as y } from "../Category-CevNQ03n.mjs";
56
+ import { C as qr, c as Yr, a as Qr, P as zr } from "../Category-CevNQ03n.mjs";
57
+ import { C as jr, f as Kr, b as Zr, a as Xr, g as Jr, i as eo } from "../NumberFormatting-QCaNwbjv.mjs";
53
58
  import { R as _ } from "../repeatingTransactions-DHIG94pi.mjs";
54
- import { R as J } from "../RecurringTransactionsStore-BE_eUfTC.mjs";
55
- import { S as _r, T as fr } from "../RecurringTransactionsStore-BE_eUfTC.mjs";
56
- import { G as yr, C as Sr, D as br, W as wr, d as Cr, a as Dr, m as Ar, t as Er, l as Tr, v as xr, w as Ir, g as Br, y as vr, u as Mr, f as Ur, b as Lr, k as kr, z as Pr, s as Rr, x as Nr, c as Or, q as $r, n as Fr, A as Gr, i as Hr, r as Wr, h as qr, B as Yr, o as Qr, p as zr } from "../hooks-BxkfR-Ff.mjs";
57
- import { u as Kr } from "../useAccountDisplayName-DKwT1mWv.mjs";
58
- import { u as Zr } from "../useInsightsEnabled-DL_oNyI0.mjs";
59
- import { u as Jr } from "../useScreenSize-CUcpY7aJ.mjs";
60
- import { useRef as ee, useEffect as te } from "react";
61
- import { u as to } from "../useWidgetLoadTimer-DgN1bTyu.mjs";
62
- import { makeAutoObservable as l, runInAction as h, reaction as R, autorun as se } from "mobx";
63
- import { A as re } from "../AccountStore-B7zfcad7.mjs";
64
- import oe from "posthog-js";
65
- import { B as ae } from "../BeatStore-C6CAT-ce.mjs";
66
- import { endOfMonth as N } from "date-fns/endOfMonth";
67
- import { startOfMonth as O } from "date-fns/startOfMonth";
68
- import { startOfToday as E } from "date-fns/startOfToday";
69
- import { D as ie } from "../DebtsStore-BZqNLaqd.mjs";
70
- import { F as ne } from "../FinstrongStore-BQxXxxYD.mjs";
71
- import { A as ce, m as ue, a as de, b as he } from "../InvestmentUtil-BItV7uEs.mjs";
72
- import { M as le } from "../MerchantStore-BzGi4JAZ.mjs";
73
- import { N as ge } from "../NetWorthStore-BqZ44-4M.mjs";
74
- import { a as pe } from "../SettingsStore-BoIoiRLj.mjs";
75
- import { addMonths as _e } from "date-fns/addMonths";
76
- import { getMonth as y } from "date-fns/getMonth";
77
- import { i as ro } from "../DateUtil-wcYTmDRD.mjs";
78
- import { L as ao, b as io, a as no, g as co } from "../Localization-CPkpIwIx.mjs";
79
- import { alpha as fe, lighten as T, darken as x } from "@mui/material";
80
- const lt = [
59
+ import { R as ne } from "../RecurringTransactionsStore-BE_eUfTC.mjs";
60
+ import { S as so, T as ro } from "../RecurringTransactionsStore-BE_eUfTC.mjs";
61
+ import { u as ao } from "../useAccountDisplayName-DKwT1mWv.mjs";
62
+ import { u as io } from "../useInsightsEnabled-DL_oNyI0.mjs";
63
+ import { u as uo } from "../useScreenSize-CUcpY7aJ.mjs";
64
+ import { useRef as ie, useEffect as ce } from "react";
65
+ import { u as ho } from "../useWidgetLoadTimer-DgN1bTyu.mjs";
66
+ import { makeAutoObservable as g, runInAction as l, reaction as O, autorun as ue } from "mobx";
67
+ import { A as de } from "../AccountStore-B7zfcad7.mjs";
68
+ import le from "posthog-js";
69
+ import { B as he } from "../BeatStore-C6CAT-ce.mjs";
70
+ import { endOfMonth as $ } from "date-fns/endOfMonth";
71
+ import { startOfMonth as F } from "date-fns/startOfMonth";
72
+ import { startOfToday as B } from "date-fns/startOfToday";
73
+ import { D as ge } from "../DebtsStore-BZqNLaqd.mjs";
74
+ import { F as pe } from "../FinstrongStore-BQxXxxYD.mjs";
75
+ import { A as _e, m as fe, a as me, b as ye } from "../InvestmentUtil-BItV7uEs.mjs";
76
+ import { M as Se } from "../MerchantStore-BzGi4JAZ.mjs";
77
+ import { N as be } from "../NetWorthStore-BqZ44-4M.mjs";
78
+ import { a as we } from "../SettingsStore-BoIoiRLj.mjs";
79
+ import { addMonths as Ce } from "date-fns/addMonths";
80
+ import { getMonth as S } from "date-fns/getMonth";
81
+ import { i as po } from "../DateUtil-wcYTmDRD.mjs";
82
+ import { L as fo, b as mo, a as yo, g as So } from "../Localization-CPkpIwIx.mjs";
83
+ const Ct = [
81
84
  { id: _.Unknown, copy: "frequency_unknown" },
82
85
  { id: _.EveryWeek, copy: "frequency_every_week" },
83
86
  { id: _.EveryOtherWeek, copy: "frequency_every_other_week" },
@@ -86,11 +89,11 @@ const lt = [
86
89
  { id: _.EveryQuarter, copy: "frequency_every_quarter" },
87
90
  { id: _.EveryOtherQuarter, copy: "frequency_every_other_quarter" },
88
91
  { id: _.EveryYear, copy: "frequency_every_year" }
89
- ], gt = {
92
+ ], Dt = {
90
93
  ERROR: "ERROR",
91
94
  LOADING: "LOADING",
92
95
  SUCCESS: "SUCCESS"
93
- }, me = [
96
+ }, De = [
94
97
  "fontFamily",
95
98
  "h1",
96
99
  "h2",
@@ -102,49 +105,49 @@ const lt = [
102
105
  "subtitle1",
103
106
  "subtitle2",
104
107
  "tiny"
105
- ], ye = [
108
+ ], Ae = [
106
109
  { key: "primary", light: "primary_color", dark: "primary_color_dark" },
107
110
  { key: "secondary", light: "neutral_color", dark: "neutral_color_dark" },
108
111
  { key: "error", light: "error_color", dark: "error_color_dark" },
109
112
  { key: "warning", light: "warning_color", dark: "warning_color_dark" },
110
113
  { key: "info", light: "info_color", dark: "info_color_dark" },
111
114
  { key: "success", light: "success_color", dark: "success_color_dark" }
112
- ], pt = (o, e, t) => {
113
- const s = o.palette.mode === "dark", r = (t?.master?.style?.font_name || e?.system_font) ?? o.typography.fontFamily, i = (d, b) => d ? {
114
- lighter: T(d, 0.5),
115
- light: T(d, 0.25),
115
+ ], At = (o, e, t) => {
116
+ const s = o.palette.mode === "dark", r = (t?.master?.style?.font_name || e?.system_font) ?? o.typography.fontFamily, n = (d, w) => d ? {
117
+ lighter: A(d, 0.5),
118
+ light: A(d, 0.25),
116
119
  main: d,
117
- dark: x(d, 0.25),
118
- darker: x(d, 0.5)
119
- } : b, n = Object.fromEntries(
120
- ye.map(({ key: d, light: b, dark: $ }) => [
120
+ dark: E(d, 0.25),
121
+ darker: E(d, 0.5)
122
+ } : w, i = Object.fromEntries(
123
+ Ae.map(({ key: d, light: w, dark: G }) => [
121
124
  d,
122
- i(
123
- e?.[s ? $ : b],
125
+ n(
126
+ e?.[s ? G : w],
124
127
  o.palette[d]
125
128
  )
126
129
  ])
127
130
  ), c = Object.fromEntries(
128
- me.map((d) => [
131
+ De.map((d) => [
129
132
  d,
130
133
  d === "fontFamily" ? r : { fontFamily: r }
131
134
  ])
132
- ), p = {
135
+ ), h = {
133
136
  MuiTabs: {
134
137
  styleOverrides: {
135
- indicator: { backgroundColor: n.primary.light }
138
+ indicator: { backgroundColor: i.primary.light }
136
139
  }
137
140
  },
138
141
  MuiPickersCalendarHeader: {
139
142
  styleOverrides: {
140
143
  switchViewButton: {
141
- color: n.primary.lighter,
142
- "&:hover": { backgroundColor: fe(n.primary.light, 0.1) }
144
+ color: i.primary.lighter,
145
+ "&:hover": { backgroundColor: z(i.primary.light, 0.1) }
143
146
  }
144
147
  }
145
148
  }
146
- }, u = e?.button_corner_radius, f = e?.card_corner_radius, S = {
147
- ...p,
149
+ }, u = e?.button_corner_radius, m = e?.card_corner_radius, b = {
150
+ ...h,
148
151
  ...u && {
149
152
  MuiButton: {
150
153
  styleOverrides: {
@@ -166,21 +169,21 @@ const lt = [
166
169
  }
167
170
  }
168
171
  },
169
- ...f && {
172
+ ...m && {
170
173
  MuiCard: {
171
- styleOverrides: { root: { borderRadius: `${f}px` } }
174
+ styleOverrides: { root: { borderRadius: `${m}px` } }
172
175
  },
173
176
  MuiPaper: {
174
- styleOverrides: { rounded: { borderRadius: `${f}px` } }
177
+ styleOverrides: { rounded: { borderRadius: `${m}px` } }
175
178
  }
176
179
  }
177
180
  };
178
- return { typography: c, palette: n, components: S };
181
+ return { typography: c, palette: i, components: b };
179
182
  };
180
- class I {
183
+ class v {
181
184
  fetchInstance;
182
185
  constructor(e) {
183
- this.fetchInstance = new g(e, "", {
186
+ this.fetchInstance = new p(e, "", {
184
187
  Accept: "application/json",
185
188
  "Content-Type": "application/json"
186
189
  });
@@ -194,90 +197,90 @@ class I {
194
197
  }
195
198
  };
196
199
  }
197
- class _t {
200
+ class Et {
198
201
  fetchInstance;
199
202
  constructor(e, t, s) {
200
- this.fetchInstance = new g(e, t, void 0, s);
203
+ this.fetchInstance = new p(e, t, void 0, s);
201
204
  }
202
205
  getLocalizedCopy = async (e) => this.fetchInstance.post(a.LOCALIZED_COPY, e).then((t) => t);
203
206
  getLocalizedContent = async (e) => this.fetchInstance.post(`${a.LOCALIZED_CONTENT}/${e}`).then((t) => t);
204
207
  }
205
- class ft {
208
+ class Tt {
206
209
  fetchInstance;
207
210
  constructor(e, t, s) {
208
- this.fetchInstance = new g(e, t, void 0, s);
211
+ this.fetchInstance = new p(e, t, void 0, s);
209
212
  }
210
213
  addScheduledPayment = async (e) => this.fetchInstance.post(a.SCHEDULED_PAYMENTS, {
211
214
  ...e,
212
215
  is_recurring: "true",
213
- transaction_type: H.DEBIT
216
+ transaction_type: q.DEBIT
214
217
  }).then((t) => t.scheduled_payment);
215
218
  getScheduledPayments = async () => this.fetchInstance.get(a.SCHEDULED_PAYMENTS).then((e) => e.scheduled_payments);
216
219
  updateScheduledPayment = async (e) => this.fetchInstance.put(`${a.SCHEDULED_PAYMENTS}/${e.guid}`, e).then((t) => t.scheduled_payment);
217
220
  deleteScheduledPayment = async (e) => this.fetchInstance.delete(`${a.SCHEDULED_PAYMENTS}/${e}`).then((t) => t);
218
221
  }
219
- class B {
222
+ class M {
220
223
  fetchInstance;
221
224
  constructor(e, t, s) {
222
- this.fetchInstance = new g(e, t, void 0, s);
225
+ this.fetchInstance = new p(e, t, void 0, s);
223
226
  }
224
227
  getUserFeatures = async () => this.fetchInstance.get(a.USER_FEATURES).then((e) => e.user_features).catch((e) => e);
225
228
  updateUser = async (e) => this.fetchInstance.put(a.USER, e).then((t) => t.user);
226
229
  updateUserProfile = async (e) => this.fetchInstance.put(`${a.USER_PROFILES}/${e.guid}`, e).then((t) => t.user_profile);
227
230
  }
228
- class v {
231
+ class k {
229
232
  fetchInstance;
230
233
  constructor(e, t) {
231
- this.fetchInstance = new g(e, t);
234
+ this.fetchInstance = new p(e, t);
232
235
  }
233
236
  requestWidgetUrl = async (e) => this.fetchInstance.post(a.WIDGET_URLS, e).then((t) => t.widget_url);
234
237
  }
235
- const mt = (o) => {
236
- const e = ee();
237
- return te(() => {
238
+ const xt = (o) => {
239
+ const e = ie();
240
+ return ce(() => {
238
241
  e.current = o;
239
242
  }, [o]), e.current;
240
- }, Se = ({
243
+ }, Ee = ({
241
244
  hasGap: o = !1,
242
245
  segments: e,
243
- size: t = Z,
244
- strokeWidth: s = X,
246
+ size: t = oe,
247
+ strokeWidth: s = ae,
245
248
  children: r
246
249
  }) => {
247
- const i = be(t), n = (t - s) / 2, c = t / 2;
248
- let p = -90 - (o ? 1 : 0), u = 0;
249
- return /* @__PURE__ */ A("div", { className: `mx-cmn-multi-segment-donut ${i}`, children: [
250
- /* @__PURE__ */ A("svg", { height: t, width: t, children: [
251
- /* @__PURE__ */ w(
250
+ const n = Te(t), i = (t - s) / 2, c = t / 2;
251
+ let h = -90 - (o ? 1 : 0), u = 0;
252
+ return /* @__PURE__ */ C("div", { className: `mx-cmn-multi-segment-donut ${n}`, children: [
253
+ /* @__PURE__ */ C("svg", { height: t, width: t, children: [
254
+ /* @__PURE__ */ f(
252
255
  "circle",
253
256
  {
254
257
  cx: c,
255
258
  cy: c,
256
259
  fill: "none",
257
- r: n,
260
+ r: i,
258
261
  stroke: "#E4E8EE",
259
262
  strokeWidth: s
260
263
  }
261
264
  ),
262
- e.map((f, S) => (p += 360 * u + (o ? 1 : 0), u = (f.percent - (o ? 0.3 : 0)) / 100, /* @__PURE__ */ w(
265
+ e.map((m, b) => (h += 360 * u + (o ? 1 : 0), u = (m.percent - (o ? 0.3 : 0)) / 100, /* @__PURE__ */ f(
263
266
  "circle",
264
267
  {
265
268
  cx: c,
266
269
  cy: c,
267
270
  fill: "none",
268
- r: n,
269
- stroke: f.color,
270
- strokeDasharray: 2 * Math.PI * n,
271
- strokeDashoffset: 2 * Math.PI * n * (1 - u),
271
+ r: i,
272
+ stroke: m.color,
273
+ strokeDasharray: 2 * Math.PI * i,
274
+ strokeDashoffset: 2 * Math.PI * i * (1 - u),
272
275
  strokeWidth: s,
273
- transform: `rotate(${p}, ${c}, ${c})`
276
+ transform: `rotate(${h}, ${c}, ${c})`
274
277
  },
275
- S
278
+ b
276
279
  )))
277
280
  ] }),
278
- /* @__PURE__ */ w("div", { className: "mx-cmn-multi-segment-donut-children", children: r })
281
+ /* @__PURE__ */ f("div", { className: "mx-cmn-multi-segment-donut-children", children: r })
279
282
  ] });
280
- }, be = (o) => j({
283
+ }, Te = (o) => re({
281
284
  height: o,
282
285
  marginTop: "-8px",
283
286
  position: "relative",
@@ -289,29 +292,56 @@ const mt = (o) => {
289
292
  top: "50%",
290
293
  transform: "translate(-50%, -50%)"
291
294
  }
292
- }), yt = Se;
293
- class we {
295
+ }), It = Ee, xe = ({
296
+ heading: o,
297
+ message: e,
298
+ iconName: t = "error",
299
+ buttonText: s,
300
+ onClick: r
301
+ }) => {
302
+ const { common: n } = K(), i = o ?? n?.error_heading, c = e ?? n?.error_message, h = s ?? n?.refresh_button;
303
+ return /* @__PURE__ */ f(T, { alignItems: "center", justifyContent: "center", style: { height: "100dvh" }, children: /* @__PURE__ */ C(
304
+ T,
305
+ {
306
+ sx: {
307
+ display: "flex",
308
+ padding: "48px 16px",
309
+ flexDirection: "column",
310
+ alignItems: "center"
311
+ },
312
+ children: [
313
+ /* @__PURE__ */ f(j, { color: "action", name: t, size: 72 }),
314
+ /* @__PURE__ */ f(x, { bold: !0, color: "text.primary", mt: 24, variant: "h2", children: i }),
315
+ /* @__PURE__ */ f(x, { color: "text.secondary", variant: "subtitle1", children: c }),
316
+ r && /* @__PURE__ */ f(V, { color: "primary", onClick: () => {
317
+ r?.();
318
+ }, sx: { mt: 48 }, variant: "contained", children: h })
319
+ ]
320
+ }
321
+ ) });
322
+ }, Bt = Q(xe);
323
+ class Ie {
294
324
  globalStore;
295
- api = new C("/", "");
325
+ api = new D("/", "");
296
326
  copy = {};
297
327
  featureNamespace = "experiences";
298
328
  isInitialized = !1;
299
329
  constructor(e) {
300
- this.globalStore = e, this.api = new C(
330
+ this.globalStore = e, this.api = new D(
301
331
  e.endpoint,
302
332
  e.sessionToken,
303
333
  e.onError
304
- ), l(this);
334
+ ), g(this);
305
335
  }
306
336
  loadCopy = async () => {
307
- await this.getCopy(this.featureNamespace), h(() => {
337
+ await this.getCopy(this.featureNamespace), l(() => {
308
338
  this.isInitialized = !0;
309
339
  });
310
340
  };
311
341
  getCopy = async (e, t = "") => {
312
342
  try {
313
343
  const s = await this.api.getGlobalCopy(e, t);
314
- h(() => {
344
+ l(() => {
315
345
  this.copy = s[e];
316
346
  });
317
347
  } catch (s) {
@@ -319,7 +349,7 @@ class we {
319
349
  }
320
350
  };
321
351
  }
322
- class Ce {
352
+ class Be {
323
353
  globalStore;
324
354
  survey = null;
325
355
  currentQuestionIndex = 0;
@@ -327,7 +357,7 @@ class Ce {
327
357
  response = null;
328
358
  responses = {};
329
359
  constructor(e) {
330
- this.globalStore = e, l(this);
360
+ this.globalStore = e, g(this);
331
361
  }
332
362
  get isLastQuestion() {
333
363
  return this.currentQuestionIndex === this.surveyQuestions.length - 1;
@@ -349,8 +379,8 @@ class Ce {
349
379
  return this.survey ? this.survey.questions : [];
350
380
  }
351
381
  loadSurvey = (e = !1) => {
352
- oe.getActiveMatchingSurveys((t) => {
353
- h(() => {
382
+ le.getActiveMatchingSurveys((t) => {
383
+ l(() => {
354
384
  if (t.length > 0) {
355
385
  const s = t.find((r) => r.id === this.surveyId);
356
386
  s && (this.survey = s, this.currentQuestionIndex = 0, this.question = s.questions[0], this.response = null, this.responses = {});
@@ -368,10 +398,10 @@ class Ce {
368
398
  this.response = e, this.question && (this.responses[`$survey_response_${this.question.id}`] = e);
369
399
  };
370
400
  }
371
- class M {
401
+ class U {
372
402
  fetchInstance;
373
403
  constructor(e, t, s) {
374
- this.fetchInstance = new g(e, t, void 0, s);
404
+ this.fetchInstance = new p(e, t, void 0, s);
375
405
  }
376
406
  addBudget = async (e, t, s = null) => this.fetchInstance.post(a.BUDGETS, {
377
407
  amount: t,
@@ -403,11 +433,11 @@ class M {
403
433
  throw t;
404
434
  });
405
435
  }
406
- class De {
407
- api = new M("/", "");
436
+ class ve {
437
+ api = new U("/", "");
408
438
  globalStore;
409
439
  alert = "";
410
- dateRange = { start: O(E()), end: N(E()) };
440
+ dateRange = { start: F(B()), end: $(B()) };
411
441
  budgets = [];
412
442
  selectedBudget;
413
443
  selectedSubBudget;
@@ -415,17 +445,17 @@ class De {
415
445
  theme = {};
416
446
  merchantBudgets = [];
417
447
  constructor(e) {
418
- this.globalStore = e, this.api = new M(e.endpoint, e.sessionToken, e.onError), l(this);
448
+ this.globalStore = e, this.api = new U(e.endpoint, e.sessionToken, e.onError), g(this);
419
449
  }
420
450
  loadBudgetData = async () => {
421
- this.globalStore.recurringTransactionsStore.isDataLoaded || await this.globalStore.recurringTransactionsStore.loadRepeatingTransactionData(), await this.loadBudgets(), R(
451
+ this.globalStore.recurringTransactionsStore.isDataLoaded || await this.globalStore.recurringTransactionsStore.loadRepeatingTransactionData(), await this.loadBudgets(), O(
422
452
  () => this.detailedBudgets,
423
453
  (e) => {
424
454
  if (e) {
425
455
  const t = this.selectedBudget;
426
- t && (this.selectedBudget = q(e, t.guid));
456
+ t && (this.selectedBudget = Z(e, t.guid));
427
457
  const s = this.selectedSubBudget;
428
- s && s.parent_guid && (this.selectedSubBudget = Y(
458
+ s && s.parent_guid && (this.selectedSubBudget = X(
429
459
  e,
430
460
  s.guid,
431
461
  s.parent_guid
@@ -435,9 +465,9 @@ class De {
435
465
  );
436
466
  };
437
467
  get detailedBudgets() {
438
- return D(
468
+ return I(
439
469
  this.budgets.filter(
440
- (e) => e.category_guid !== m.INCOME && e.category_guid !== m.TRANSFER && e.category_guid !== m.INVESTMENTS
470
+ (e) => e.category_guid !== y.INCOME && e.category_guid !== y.TRANSFER && e.category_guid !== y.INVESTMENTS
441
471
  ),
442
472
  this.globalStore.categoryStore.detailedCategories,
443
473
  this.globalStore.copyStore.copy.budgets,
@@ -446,13 +476,13 @@ class De {
446
476
  }
447
477
  // TODO: Replace this with income from recurring transactions. Income budgets are deprecated.
448
478
  get incomeBudget() {
449
- return D(
479
+ return I(
450
480
  this.budgets.filter((s) => !s.parent_guid),
451
481
  this.globalStore.categoryStore.detailedCategories,
452
482
  this.globalStore.copyStore.copy.budgets,
453
483
  this.theme
454
484
  ).reduce(
455
- (s, r) => r.category_guid !== m.INCOME ? s : !s || r.percentage > s.percentage ? r : s,
485
+ (s, r) => r.category_guid !== y.INCOME ? s : !s || r.percentage > s.percentage ? r : s,
456
486
  void 0
457
487
  )?.amount;
458
488
  }
@@ -467,7 +497,7 @@ class De {
467
497
  addBudget = async (e, t, s = null) => {
468
498
  try {
469
499
  const r = await this.api.addBudget(e, t, s);
470
- h(() => {
500
+ l(() => {
471
501
  this.budgets.push(r);
472
502
  });
473
503
  } catch (r) {
@@ -476,7 +506,7 @@ class De {
476
506
  };
477
507
  deleteBudget = async (e) => {
478
508
  try {
479
- await this.api.deleteBudget(e), h(() => {
509
+ await this.api.deleteBudget(e), l(() => {
480
510
  const t = this.budgets.findIndex((s) => s.guid === e);
481
511
  t >= 0 && this.budgets.splice(t, 1);
482
512
  });
@@ -507,7 +537,7 @@ class De {
507
537
  recalculateBudgets = async (e) => {
508
538
  try {
509
539
  for (const s of e) {
510
- const r = this.budgets.find((i) => i.category_guid === s.guid);
540
+ const r = this.budgets.find((n) => n.category_guid === s.guid);
511
541
  r ? await this.api.updateBudget({
512
542
  ...r,
513
543
  amount: s.totalAverageAmount
@@ -526,7 +556,7 @@ class De {
526
556
  updateBudget = async (e) => {
527
557
  try {
528
558
  const t = await this.api.updateBudget(e);
529
- h(() => {
559
+ l(() => {
530
560
  const s = this.budgets.findIndex((r) => r.guid === e.guid);
531
561
  s >= 0 && (this.budgets[s] = t);
532
562
  });
@@ -543,7 +573,7 @@ class De {
543
573
  addMerchantBudget = async (e, t) => {
544
574
  try {
545
575
  const s = await this.api.addMerchantBudget(e, t);
546
- return h(() => {
576
+ return l(() => {
547
577
  this.merchantBudgets.push(s);
548
578
  }), { isSuccess: !0 };
549
579
  } catch (s) {
@@ -553,9 +583,9 @@ class De {
553
583
  updateMerchantBudget = async (e) => {
554
584
  try {
555
585
  const { guid: t, amount: s } = e, r = await this.api.updateMerchantBudget(t, s);
556
- return h(() => {
557
- const i = this.merchantBudgets.findIndex((n) => n.guid === e.guid);
558
- i >= 0 && (this.merchantBudgets[i] = r);
586
+ return l(() => {
587
+ const n = this.merchantBudgets.findIndex((i) => i.guid === e.guid);
588
+ n >= 0 && (this.merchantBudgets[n] = r);
559
589
  }), { isSuccess: !0 };
560
590
  } catch (t) {
561
591
  return console.error(`Error updating merchant budget: ${t}`), { isSuccess: !1 };
@@ -563,7 +593,7 @@ class De {
563
593
  };
564
594
  deleteMerchantBudget = async (e) => {
565
595
  try {
566
- return await this.api.deleteMerchantBudget(e), h(() => {
596
+ return await this.api.deleteMerchantBudget(e), l(() => {
567
597
  const t = this.merchantBudgets.filter(
568
598
  (s) => s.guid !== e
569
599
  );
@@ -574,38 +604,38 @@ class De {
574
604
  }
575
605
  };
576
606
  }
577
- class U {
607
+ class L {
578
608
  fetchInstance;
579
609
  constructor(e, t, s) {
580
- this.fetchInstance = new g(e, t, void 0, s);
610
+ this.fetchInstance = new p(e, t, void 0, s);
581
611
  }
582
612
  createSupportTicket = async (e) => this.fetchInstance.post(a.SUPPORT_TICKETS, e).then((t) => t);
583
613
  }
584
- const Ae = (o, e) => o.guid === "general" || o.guid === "insights" ? !0 : o.flags ? o.flags.every((t) => e[t]) : !1, Ee = (o, e) => {
614
+ const Me = (o, e) => o.guid === "general" || o.guid === "insights" ? !0 : o.flags ? o.flags.every((t) => e[t]) : !1, ke = (o, e) => {
585
615
  const t = [];
586
- for (const s of W) {
616
+ for (const s of Y) {
587
617
  const r = e[s.guid];
588
618
  if (!r) continue;
589
- const i = {
619
+ const n = {
590
620
  ...s,
591
621
  title: r.label,
592
- topics: s.topics.map(({ topicKey: n }, c) => ({
593
- topicKey: n,
622
+ topics: s.topics.map(({ topicKey: i }, c) => ({
623
+ topicKey: i,
594
624
  label: r.topics[c]
595
625
  }))
596
626
  };
597
- Ae(i, o) && t.push(i);
627
+ Me(n, o) && t.push(n);
598
628
  }
599
629
  return t;
600
630
  };
601
- class Te {
631
+ class Ue {
602
632
  alert = { message: "", severity: void 0 };
603
- api = new U("/", "");
633
+ api = new L("/", "");
604
634
  appConfig;
605
635
  globalStore;
606
636
  isLoading = !1;
607
637
  constructor(e) {
608
- this.globalStore = e, this.api = new U(e.endpoint, e.sessionToken, e.onError), l(this);
638
+ this.globalStore = e, this.api = new L(e.endpoint, e.sessionToken, e.onError), g(this);
609
639
  }
610
640
  createSupportTicket = async (e) => {
611
641
  try {
@@ -624,7 +654,7 @@ class Te {
624
654
  const { client_communication_profile: e, client_profile: t } = this.globalStore.appDataStore.appData, {
625
655
  help: { category_list: s }
626
656
  } = this.globalStore.copyStore.copy;
627
- return Ee(
657
+ return ke(
628
658
  {
629
659
  ...e,
630
660
  ...t,
@@ -634,29 +664,29 @@ class Te {
634
664
  );
635
665
  }
636
666
  }
637
- class L {
667
+ class P {
638
668
  fetchInstance;
639
669
  constructor(e, t, s) {
640
- this.fetchInstance = new g(e, t, void 0, s);
670
+ this.fetchInstance = new p(e, t, void 0, s);
641
671
  }
642
672
  getHoldings = async () => this.fetchInstance.get(a.HOLDINGS).then((e) => e.holdings);
643
673
  updateHoldings = async (e) => this.fetchInstance.put(`${a.HOLDINGS}/${e.guid}`, e).then((t) => t.holding);
644
674
  }
645
- class xe {
646
- analysisType = ce.Stocks;
647
- api = new L("/", "");
675
+ class Le {
676
+ analysisType = _e.Stocks;
677
+ api = new P("/", "");
648
678
  holdings = [];
649
679
  holdingsLoaded = !1;
650
680
  globalStore;
651
681
  showConnectionsWidget = !1;
652
682
  constructor(e) {
653
- this.globalStore = e, this.api = new L(e.endpoint, e.sessionToken, e.onError), l(this);
683
+ this.globalStore = e, this.api = new P(e.endpoint, e.sessionToken, e.onError), g(this);
654
684
  }
655
685
  get analysisChartData() {
656
- return ue(de(this.visibleHoldings), this.analysisType);
686
+ return fe(me(this.visibleHoldings), this.analysisType);
657
687
  }
658
688
  get analysisDetails() {
659
- return he(this.visibleHoldings)[this.analysisType] || {};
689
+ return ye(this.visibleHoldings)[this.analysisType] || {};
660
690
  }
661
691
  get visibleHoldings() {
662
692
  return this.holdings.filter(
@@ -686,7 +716,7 @@ class xe {
686
716
  const t = await this.api.updateHoldings(e), s = this.holdings.findIndex(({ guid: r }) => r === e.guid);
687
717
  if (s >= 0) {
688
718
  const r = [...this.holdings];
689
- r[s] = t, h(() => {
719
+ r[s] = t, l(() => {
690
720
  this.holdings = r, this.holdingsLoaded = !0;
691
721
  });
692
722
  }
@@ -695,7 +725,7 @@ class xe {
695
725
  }
696
726
  };
697
727
  }
698
- const k = {
728
+ const R = {
699
729
  clientConfig: {},
700
730
  clientStyleProfile: {},
701
731
  config: {
@@ -799,22 +829,22 @@ const k = {
799
829
  postHogPublicKey: "phc_1fVYJICC69TpW4wagp9o2XqQ8E7X98cAmcR5psSpfkE",
800
830
  userFeatures: []
801
831
  };
802
- class P {
832
+ class N {
803
833
  fetchInstance;
804
834
  constructor(e, t, s) {
805
- this.fetchInstance = new g(e, t, void 0, s);
835
+ this.fetchInstance = new p(e, t, void 0, s);
806
836
  }
807
837
  getAppData = async () => this.fetchInstance.get(a.APP_DATA).then((e) => e);
808
838
  }
809
- class Ie {
839
+ class Pe {
810
840
  globalStore;
811
- api = new P("/", "");
812
- bannerApi = new I("/");
841
+ api = new N("/", "");
842
+ bannerApi = new v("/");
813
843
  appData = {};
814
844
  isAppDataLoaded = !1;
815
845
  banner = {};
816
846
  constructor(e) {
817
- this.globalStore = e, this.api = new P(e.endpoint, e.sessionToken, e.onError), l(this);
847
+ this.globalStore = e, this.api = new N(e.endpoint, e.sessionToken, e.onError), g(this);
818
848
  }
819
849
  get appConfig() {
820
850
  return this.globalStore.appConfig;
@@ -835,7 +865,7 @@ class Ie {
835
865
  return this.appData.user_profile;
836
866
  }
837
867
  setAppData = (e) => {
838
- this.appData = e, this.bannerApi = new I(e.address?.bullseye || "/"), this.isAppDataLoaded = !0;
868
+ this.appData = e, this.bannerApi = new v(e.address?.bullseye || "/"), this.isAppDataLoaded = !0;
839
869
  };
840
870
  loadAppData = async () => {
841
871
  try {
@@ -848,7 +878,7 @@ class Ie {
848
878
  loadBanner = async () => {
849
879
  try {
850
880
  const e = this.user?.guid ?? null, t = e ? await this.bannerApi.getBanner(e) : {};
851
- h(() => {
881
+ l(() => {
852
882
  this.banner = t;
853
883
  });
854
884
  } catch (e) {
@@ -859,26 +889,26 @@ class Ie {
859
889
  setUserCommunicationProfile = (e) => this.appData.user_communication_profile = e;
860
890
  setUserProfile = (e) => this.appData.user_profile = e;
861
891
  }
862
- class Be {
892
+ class Re {
863
893
  globalStore;
864
- widgetApi = new v("/", "");
894
+ widgetApi = new k("/", "");
865
895
  constructor(e) {
866
- this.globalStore = e, this.widgetApi = new v(e.endpoint, e.sessionToken), l(this);
896
+ this.globalStore = e, this.widgetApi = new k(e.endpoint, e.sessionToken), g(this);
867
897
  }
868
898
  loadWidget = async ({ widget: e = "connect_widget", mode: t = "light", ...s }) => await this.widgetApi.requestWidgetUrl({
869
899
  widget_url: { widget_type: e, color_scheme: t, ...s }
870
900
  });
871
901
  }
872
- class ve {
902
+ class Ne {
873
903
  globalStore;
874
904
  accountFilterMap = /* @__PURE__ */ new Map();
875
905
  displayedDate = /* @__PURE__ */ new Date();
876
906
  displayedDateRange = {
877
- start: O(this.displayedDate),
878
- end: N(this.displayedDate)
907
+ start: F(this.displayedDate),
908
+ end: $(this.displayedDate)
879
909
  };
880
910
  constructor(e) {
881
- l(this), this.globalStore = e, R(
911
+ g(this), this.globalStore = e, O(
882
912
  () => this.globalStore.accountStore.visibleAccounts,
883
913
  (t) => {
884
914
  this.populateAccountFilterMap(t);
@@ -928,21 +958,21 @@ class ve {
928
958
  };
929
959
  };
930
960
  get shouldDisableNextDate() {
931
- const e = y(this.displayedDate), t = y(_e(/* @__PURE__ */ new Date(), 1));
961
+ const e = S(this.displayedDate), t = S(Ce(/* @__PURE__ */ new Date(), 1));
932
962
  return e === t;
933
963
  }
934
964
  get shouldDisablePrevDate() {
935
- const e = y(this.displayedDate), t = y(/* @__PURE__ */ new Date());
965
+ const e = S(this.displayedDate), t = S(/* @__PURE__ */ new Date());
936
966
  return e === t;
937
967
  }
938
968
  }
939
- class Me {
969
+ class Oe {
940
970
  globalStore;
941
- api = new B("/", "");
971
+ api = new M("/", "");
942
972
  userFeatures = [];
943
973
  userFeaturesLoaded = !1;
944
974
  constructor(e) {
945
- this.globalStore = e, this.api = new B(e.endpoint, e.sessionToken, e.onError), l(this);
975
+ this.globalStore = e, this.api = new M(e.endpoint, e.sessionToken, e.onError), g(this);
946
976
  }
947
977
  get userProfile() {
948
978
  return this.globalStore.appDataStore.userProfile;
@@ -978,9 +1008,9 @@ class Me {
978
1008
  }
979
1009
  };
980
1010
  }
981
- class St {
1011
+ class vt {
982
1012
  // Global properties
983
- appConfig = k;
1013
+ appConfig = R;
984
1014
  endpoint = "/";
985
1015
  sessionToken = "";
986
1016
  onError;
@@ -1010,11 +1040,11 @@ class St {
1010
1040
  userStore;
1011
1041
  // UI Stores
1012
1042
  globalUiStore;
1013
- constructor(e = k, t = "/", s, r) {
1014
- this.appConfig = e, this.endpoint = t, this.sessionToken = e.options.session_token ?? "", this.onError = s, this.onStoreUpdate = r, this.accountStore = new re(this), this.appDataStore = new Ie(this), this.analyticsStore = new Ce(this), this.beatStore = new ae(this), this.budgetsStore = new De(this), this.cashflowStore = new z(this), this.categoryStore = new F(this), this.connectStore = new Be(this), this.copyStore = new we(this), this.debtsStore = new ie(this), this.finstrongStore = new ne(this), this.goalStore = new V(this), this.helpStore = new Te(this), this.holdingStore = new xe(this), this.merchantStore = new le(this), this.netWorthStore = new ge(this), this.notificationStore = new G(this), this.recurringTransactionsStore = new J(this), this.settingsStore = new pe(this), this.transactionStore = new Q(this), this.trendsStore = new K(this), this.userStore = new Me(this), this.globalUiStore = new ve(this), l(this), se(() => {
1015
- const { transactions: i } = this.transactionStore;
1043
+ constructor(e = R, t = "/", s, r) {
1044
+ this.appConfig = e, this.endpoint = t, this.sessionToken = e.options.session_token ?? "", this.onError = s, this.onStoreUpdate = r, this.accountStore = new de(this), this.appDataStore = new Pe(this), this.analyticsStore = new Be(this), this.beatStore = new he(this), this.budgetsStore = new ve(this), this.cashflowStore = new ee(this), this.categoryStore = new H(this), this.connectStore = new Re(this), this.copyStore = new Ie(this), this.debtsStore = new ge(this), this.finstrongStore = new pe(this), this.goalStore = new te(this), this.helpStore = new Ue(this), this.holdingStore = new Le(this), this.merchantStore = new Se(this), this.netWorthStore = new be(this), this.notificationStore = new W(this), this.recurringTransactionsStore = new ne(this), this.settingsStore = new we(this), this.transactionStore = new J(this), this.trendsStore = new se(this), this.userStore = new Oe(this), this.globalUiStore = new Ne(this), g(this), ue(() => {
1045
+ const { transactions: n } = this.transactionStore;
1016
1046
  this.emitUpdate({
1017
- transactions: i
1047
+ transactions: n
1018
1048
  });
1019
1049
  });
1020
1050
  }
@@ -1039,138 +1069,139 @@ class St {
1039
1069
  appData: t,
1040
1070
  associatedBeats: s,
1041
1071
  categories: r,
1042
- institutions: i,
1043
- transactionRules: n,
1072
+ institutions: n,
1073
+ transactionRules: i,
1044
1074
  transactions: c,
1045
- userFeatures: p,
1075
+ userFeatures: h,
1046
1076
  merchantBudgets: u
1047
1077
  } = {}) => {
1048
- (!t || !p) && await this.loadConfigData(), t && this.appDataStore.setAppData(t), p && this.userStore.setUserFeatures(p), e && (await this.accountStore.loadMembers(), i && this.accountStore.setInstitutions(i), this.accountStore.setAccounts(e)), s && this.transactionStore.setAssociatedBeats(s), r && this.categoryStore.setCategories(r), c && this.transactionStore.setTransactions(c), n && this.transactionStore.setTransactionRules(n), u && this.budgetsStore.setMerchantBudgets(u);
1078
+ (!t || !h) && await this.loadConfigData(), t && this.appDataStore.setAppData(t), h && this.userStore.setUserFeatures(h), e && (await this.accountStore.loadMembers(), n && this.accountStore.setInstitutions(n), this.accountStore.setAccounts(e)), s && this.transactionStore.setAssociatedBeats(s), r && this.categoryStore.setCategories(r), c && this.transactionStore.setTransactions(c), i && this.transactionStore.setTransactionRules(i), u && this.budgetsStore.setMerchantBudgets(u);
1049
1079
  };
1050
1080
  }
1051
1081
  export {
1052
- Qs as ANALYTICS_EVENTS,
1053
- Ct as AnalyticsApi,
1082
+ Ur as ANALYTICS_EVENTS,
1083
+ Ut as AnalyticsApi,
1054
1084
  a as ApiEndpoints,
1055
- I as BannerApi,
1056
- xt as BeatApi,
1057
- Yt as Calendar,
1058
- Qt as CalendarSelectionTypes,
1059
- Bt as CategoryApi,
1060
- rr as CategoryColors,
1061
- or as CategoryGuidToName,
1062
- m as CategoryGuids,
1063
- ar as CategoryIcon,
1064
- Ss as ConnectCard,
1065
- Wt as ConnectDrawer,
1066
- cr as CurrencyCodes,
1067
- zt as CurrencyDialog,
1068
- es as CurrencyInput,
1069
- ws as CurrencyText,
1070
- Vs as DATE_FORMATS_INTL,
1071
- Z as DEFAULT_DONUT_SIZE,
1072
- X as DEFAULT_STROKE_WIDTH,
1073
- ps as DataRow,
1074
- $t as DateRangeSelector,
1075
- Fs as Dialog,
1076
- Os as Donut,
1077
- qs as Drawer,
1078
- Ds as EmptyState,
1079
- Lt as ErrorBoundary,
1080
- g as Fetch,
1081
- ks as GlobalAccountFilter,
1082
- C as GlobalCopyApi,
1083
- we as GlobalCopyStore,
1084
- yr as GlobalDataContext,
1085
- Sr as GlobalDataProvider,
1086
- St as GlobalStore,
1087
- Js as INCOME_ACCOUNT_TYPES,
1088
- ls as IconBacking,
1089
- ms as InformationTooltip,
1090
- gt as LOADING_STATUS,
1091
- ao as LOCALES,
1092
- Es as ListItemAction,
1093
- xs as ListItemRow,
1094
- Bs as ListItemWrapper,
1095
- ss as Loader,
1096
- _t as LocalizedCopyApi,
1097
- Pt as MicroWidgetContainer,
1098
- Nt as MiniWidgetContainer,
1099
- yt as MultiSegmentDonut,
1100
- Mt as NotificationApi,
1101
- Ks as ORDINAL_DATE_FORMAT,
1102
- js as ORDINAL_MONTH_DAY_YEAR_FORMAT,
1103
- er as PAYMENT_ACCOUNT_TYPES,
1104
- ir as PaymentCategories,
1105
- lt as RECURRENCE_COPY,
1106
- os as ResponsiveButton,
1107
- tr as SPENDING_ACCOUNT_TYPES,
1108
- ft as ScheduledPaymentsApi,
1109
- is as SearchBox,
1110
- _s as Select,
1111
- cs as SelectionBox,
1112
- Hs as SingleSegmentDonut,
1113
- _r as Sizes,
1114
- Rs as StatusBar,
1115
- fr as TOUCH_TARGET,
1116
- ds as TabContentContainer,
1117
- Ms as ToggleButtonListItem,
1118
- Us as ToggleListItem,
1119
- B as UserApi,
1120
- Me as UserStore,
1121
- v as WidgetApi,
1122
- Ft as WidgetContainer,
1123
- br as WidgetContainerContext,
1124
- wr as WidgetContainerProvider,
1125
- Dt as analyticsSession,
1126
- io as buildDynamicCopy,
1127
- no as buildPluralCopy,
1128
- ur as formatCurrency,
1129
- Zs as formatDate,
1130
- dr as formatOrdinal,
1131
- hr as formatPercentage,
1132
- ro as fromTimestampToMonthYear,
1133
- Vt as getCategory,
1134
- Kt as getCategoryTotalsByParent,
1135
- pt as getClientTheme,
1136
- lr as getCurrencyCodes,
1137
- jt as getDetailedCategory,
1138
- Zt as getDetailedSubCategory,
1139
- co as getLocale,
1140
- Xt as isIncome,
1141
- gr as isValidNumber,
1142
- Kr as useAccountDisplayName,
1143
- Cr as useAccountStore,
1144
- Dr as useAppConfig,
1145
- Ar as useBudgetsStore,
1146
- Er as useCashflowStore,
1147
- Tr as useCategoryStore,
1148
- At as useCombineEvents,
1149
- Et as useCombinePageviews,
1150
- xr as useDebtStore,
1151
- Ir as useError,
1152
- Br as useEvent,
1153
- vr as useFinstrongStore,
1154
- Mr as useGlobalCopyStore,
1155
- Ur as useGlobalStore,
1156
- Lr as useGlobalUiStore,
1157
- kr as useGoalStore,
1158
- Pr as useHelpStore,
1159
- Rr as useHoldingStore,
1160
- Zr as useInsightsEnabled,
1161
- Nr as useLoad,
1162
- Or as useMerchantStore,
1163
- $r as useNetWorthStore,
1164
- Fr as useNotificationStore,
1165
- Gr as usePageView,
1166
- mt as usePrevious,
1167
- Hr as useRecurringTransactionsStore,
1168
- Jr as useScreenSize,
1169
- Wr as useSettingsStore,
1170
- qr as useTransactionStore,
1171
- Yr as useTrendsStore,
1172
- Qr as useUserStore,
1173
- zr as useWidgetContainerProvider,
1174
- Gt as useWidgetHeaderStyles,
1175
- to as useWidgetLoadTimer
1085
+ v as BannerApi,
1086
+ Ot as BeatApi,
1087
+ ks as Calendar,
1088
+ Us as CalendarSelectionTypes,
1089
+ Ft as CategoryApi,
1090
+ qr as CategoryColors,
1091
+ Yr as CategoryGuidToName,
1092
+ y as CategoryGuids,
1093
+ Qr as CategoryIcon,
1094
+ nr as ConnectCard,
1095
+ vs as ConnectDrawer,
1096
+ jr as CurrencyCodes,
1097
+ Ls as CurrencyDialog,
1098
+ Gs as CurrencyInput,
1099
+ cr as CurrencyText,
1100
+ Pr as DATE_FORMATS_INTL,
1101
+ oe as DEFAULT_DONUT_SIZE,
1102
+ ae as DEFAULT_STROKE_WIDTH,
1103
+ tr as DataRow,
1104
+ Ts as DateRangeSelector,
1105
+ xr as Dialog,
1106
+ Er as Donut,
1107
+ Mr as Drawer,
1108
+ dr as EmptyState,
1109
+ Bt as Error,
1110
+ qt as ErrorBoundary,
1111
+ p as Fetch,
1112
+ wr as GlobalAccountFilter,
1113
+ D as GlobalCopyApi,
1114
+ Ie as GlobalCopyStore,
1115
+ Qt as GlobalDataContext,
1116
+ zt as GlobalDataProvider,
1117
+ vt as GlobalStore,
1118
+ Fr as INCOME_ACCOUNT_TYPES,
1119
+ Js as IconBacking,
1120
+ or as InformationTooltip,
1121
+ Dt as LOADING_STATUS,
1122
+ fo as LOCALES,
1123
+ hr as ListItemAction,
1124
+ pr as ListItemRow,
1125
+ fr as ListItemWrapper,
1126
+ Ws as Loader,
1127
+ Et as LocalizedCopyApi,
1128
+ Cs as MicroWidgetContainer,
1129
+ As as MiniWidgetContainer,
1130
+ It as MultiSegmentDonut,
1131
+ Ht as NotificationApi,
1132
+ Rr as ORDINAL_DATE_FORMAT,
1133
+ Nr as ORDINAL_MONTH_DAY_YEAR_FORMAT,
1134
+ Gr as PAYMENT_ACCOUNT_TYPES,
1135
+ zr as PaymentCategories,
1136
+ Ct as RECURRENCE_COPY,
1137
+ Ys as ResponsiveButton,
1138
+ Hr as SPENDING_ACCOUNT_TYPES,
1139
+ Tt as ScheduledPaymentsApi,
1140
+ zs as SearchBox,
1141
+ sr as Select,
1142
+ js as SelectionBox,
1143
+ Br as SingleSegmentDonut,
1144
+ so as Sizes,
1145
+ Dr as StatusBar,
1146
+ ro as TOUCH_TARGET,
1147
+ Zs as TabContentContainer,
1148
+ yr as ToggleButtonListItem,
1149
+ Sr as ToggleListItem,
1150
+ M as UserApi,
1151
+ Oe as UserStore,
1152
+ k as WidgetApi,
1153
+ xs as WidgetContainer,
1154
+ Vt as WidgetContainerContext,
1155
+ jt as WidgetContainerProvider,
1156
+ Lt as analyticsSession,
1157
+ mo as buildDynamicCopy,
1158
+ yo as buildPluralCopy,
1159
+ Kr as formatCurrency,
1160
+ Or as formatDate,
1161
+ Zr as formatOrdinal,
1162
+ Xr as formatPercentage,
1163
+ po as fromTimestampToMonthYear,
1164
+ Ps as getCategory,
1165
+ Rs as getCategoryTotalsByParent,
1166
+ At as getClientTheme,
1167
+ Jr as getCurrencyCodes,
1168
+ Ns as getDetailedCategory,
1169
+ Os as getDetailedSubCategory,
1170
+ So as getLocale,
1171
+ $s as isIncome,
1172
+ eo as isValidNumber,
1173
+ ao as useAccountDisplayName,
1174
+ Kt as useAccountStore,
1175
+ Zt as useAppConfig,
1176
+ Xt as useBudgetsStore,
1177
+ Jt as useCashflowStore,
1178
+ es as useCategoryStore,
1179
+ Pt as useCombineEvents,
1180
+ Rt as useCombinePageviews,
1181
+ ts as useDebtStore,
1182
+ ss as useError,
1183
+ rs as useEvent,
1184
+ os as useFinstrongStore,
1185
+ K as useGlobalCopyStore,
1186
+ as as useGlobalStore,
1187
+ ns as useGlobalUiStore,
1188
+ is as useGoalStore,
1189
+ cs as useHelpStore,
1190
+ us as useHoldingStore,
1191
+ io as useInsightsEnabled,
1192
+ ds as useLoad,
1193
+ ls as useMerchantStore,
1194
+ hs as useNetWorthStore,
1195
+ gs as useNotificationStore,
1196
+ ps as usePageView,
1197
+ xt as usePrevious,
1198
+ _s as useRecurringTransactionsStore,
1199
+ uo as useScreenSize,
1200
+ fs as useSettingsStore,
1201
+ ms as useTransactionStore,
1202
+ ys as useTrendsStore,
1203
+ Ss as useUserStore,
1204
+ bs as useWidgetContainerProvider,
1205
+ Is as useWidgetHeaderStyles,
1206
+ ho as useWidgetLoadTimer
1176
1207
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mx-cartographer/experiences",
3
- "version": "8.0.23",
3
+ "version": "8.0.25",
4
4
  "description": "Library containing experience widgets",
5
5
  "author": "MX",
6
6
  "license": "MIT",
@@ -202,7 +202,7 @@
202
202
  "@mxenabled/mx-icons": "^1.7.0",
203
203
  "@mxenabled/mxui": "^1.5.16",
204
204
  "@mxenabled/web-widget-sdk": "^0.0.13",
205
- "@tanstack/react-virtual": "^3.13.2",
205
+ "@tanstack/react-virtual": "^3.13.19",
206
206
  "bowser": "^2.11.0",
207
207
  "d3": "^7.9.0",
208
208
  "date-fns": "^4.1.0",