@mx-cartographer/experiences 7.12.6 → 7.12.7

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,7 @@
1
+ ## [7.12.7] - 03-23-2026
2
+
3
+ - **FIXED** - Cosmetic issues in dark mode (flagged transactions and survey feedback)
4
+
1
5
  ## [7.12.6] - 03-23-2026
2
6
 
3
7
  - **FIXED** - Trends Category List Icons Fill Color.
package/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  - [Getting Started](#getting-started)
2
- - [Merging and Publishing](#merging-and-publishing)
2
+ <!-- - [Merging and Publishing](#merging-and-publishing) -->
3
3
  - [React Library Application Template](#react-library-application-template)
4
4
 
5
5
 
@@ -12,7 +12,9 @@ In order to run the project you will need to make sure that you have yarn instal
12
12
  1. The storybook project should automatically run in your local browser
13
13
  1. The QA storybook containing the latest Experience changes is [accessible here](https://experiences.kube.qa.internal.mx/?path=/docs/experiences-introduction--docs)
14
14
 
15
- ## Publishing alpha versions
15
+ <!-- Commented this out to prevent exposing internal operations in the npm registry -->
16
+
17
+ <!-- ## Publishing alpha versions
16
18
  1. Bump the version in package.json using the format `major.minor.patch-alpha.<yourinitials><n>` See [the version history](https://www.npmjs.com/package/@mx-cartographer/experiences?activeTab=versions) for examples.
17
19
  1. Run `npm publish --tag alpha`.
18
20
 
@@ -21,7 +23,7 @@ In order to run the project you will need to make sure that you have yarn instal
21
23
  1. Update CHANGELOG.md and include the version to publish using the standard `major.minor.patch`. If there are breaking changes, we bump the major, new feature we bump minor and bug fixes or minor changes, we bump patch.
22
24
  1. Request a MR review by commenting `shipit --review`
23
25
  1. Once the MR is approved, comment `shipit --publish-version=major|minor|patch`.
24
- 2. Shipit will bump the version in package.json, merge and publish the package to npm.
26
+ 2. Shipit will bump the version in package.json, merge and publish the package to npm. -->
25
27
 
26
28
 
27
29
  ## React Library Application Template
@@ -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 "./StatusIndicator-Bo80rdKq.mjs";
21
- import { T as be } from "./TransactionDetails-DWZuZgBw.mjs";
20
+ import { T as V, u as fe, S as ge, a as Ce } from "./StatusIndicator-BnYO7yL3.mjs";
21
+ import { T as be } from "./TransactionDetails-DmDYs0lX.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";
@@ -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-DE6JV3Mp.mjs";
10
+ import { R as C, A as S, a as E, M as v } from "./ManageIncome-YlYP7fi8.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 "./RecurringTransactions-CYNpe_RS.mjs";
13
13
  import { A as m } from "./Analytics-BYItVAe-.mjs";
@@ -0,0 +1,261 @@
1
+ import { jsxs as n, jsx as t } from "react/jsx-runtime";
2
+ import u from "react";
3
+ import { observer as D } from "mobx-react-lite";
4
+ import { useVirtualizer as B } from "@tanstack/react-virtual";
5
+ import b from "@mui/material/Box";
6
+ import H from "@mui/material/Divider";
7
+ import W from "@mui/material/List";
8
+ import { G as X, h as E, u as R, g as K } from "./hooks-BxkfR-Ff.mjs";
9
+ import { MerchantLogo as P, Icon as v, Text as l, P as Y, H2 as Z } from "@mxenabled/mxui";
10
+ import F from "@mui/material/ListItemAvatar";
11
+ import q from "@mui/material/ListItemText";
12
+ import s from "@mui/material/Stack";
13
+ import { useTheme as J } from "@mui/material/styles";
14
+ import { T as Q, L as ee, O as te } from "./Transaction-B_2AG36b.mjs";
15
+ import { f as re } from "./NumberFormatting-QCaNwbjv.mjs";
16
+ import { Receipt as oe } from "@mxenabled/mx-icons";
17
+ import { fromUnixTime as y } from "date-fns/fromUnixTime";
18
+ import { isSameDay as z } from "date-fns/isSameDay";
19
+ import { h as ne } from "./DateUtil-wcYTmDRD.mjs";
20
+ import { L as ie } from "./Loader-D3rjKx72.mjs";
21
+ import { A as se } from "./Analytics-BYItVAe-.mjs";
22
+ const C = () => {
23
+ if (!u.useContext(X))
24
+ throw new Error("useTransactionsUiStore() must be used within the GlobalDataContext");
25
+ return E().uiStore;
26
+ };
27
+ function ae() {
28
+ return window.opener && window.opener.location ? window.opener.location.toString() : document.referrer;
29
+ }
30
+ function ce(e) {
31
+ const r = ae().replace(/([^:]+:\/\/[^\/]+).*/, "$1"), o = window.parent || window.opener || !1;
32
+ return o && o.postMessage && r ? (o.postMessage(e, r), !0) : !1;
33
+ }
34
+ function le(e) {
35
+ return ce({
36
+ metadata: { beat_guid: e },
37
+ mx: !0,
38
+ type: "mx/moneyDashboard/insightOnTransaction"
39
+ });
40
+ }
41
+ const de = ({ transaction: e, onClick: r }) => {
42
+ const c = J().palette.mode === "dark", { associatedBeats: m } = E(), { expandedSplits: h } = C(), { transactions: d } = R(), { showInsights: f } = C(), g = e.transaction_type === Q.CREDIT, _ = u.useMemo(() => m.find((x) => x.associated_transaction_guid === e.guid), [m, e]);
43
+ return (
44
+ //TODO: implement common/components/ListItemRow.tsx
45
+ /* @__PURE__ */ n(
46
+ ee,
47
+ {
48
+ clickEventName: te.ON_TRANSACTION_LIST_ITEM_CLICK,
49
+ onClick: r ? () => r(e.guid) : void 0,
50
+ children: [
51
+ /* @__PURE__ */ t(F, { children: e.parent_guid && h.includes(e.parent_guid) ? /* @__PURE__ */ t(u.Fragment, {}) : /* @__PURE__ */ t(
52
+ P,
53
+ {
54
+ categoryGuid: e.top_level_category_guid || "",
55
+ merchantGuid: e.merchant_guid || ""
56
+ }
57
+ ) }),
58
+ /* @__PURE__ */ t(
59
+ q,
60
+ {
61
+ disableTypography: !0,
62
+ secondary: /* @__PURE__ */ n(s, { direction: "row", justifyContent: "space-between", children: [
63
+ /* @__PURE__ */ n(s, { alignItems: "center", direction: "row", gap: 4, children: [
64
+ e.is_flagged && /* @__PURE__ */ t(
65
+ v,
66
+ {
67
+ fill: !0,
68
+ name: "flag",
69
+ size: 16,
70
+ sx: { color: c ? "primary.main" : "warning.dark" }
71
+ }
72
+ ),
73
+ e.is_hidden && /* @__PURE__ */ t(v, { name: "visibility_off", size: 16 }),
74
+ e.has_been_split && /* @__PURE__ */ t(v, { name: "call_split", size: 16 }),
75
+ /* @__PURE__ */ t(l, { variant: "XSmall", children: e.has_been_split ? d.split_transaction_category_label : e.category })
76
+ ] }),
77
+ _ && f && /* @__PURE__ */ t(
78
+ l,
79
+ {
80
+ bold: !0,
81
+ color: "action.active",
82
+ onClick: (x) => {
83
+ x.stopPropagation(), x.preventDefault(), le(_.guid);
84
+ },
85
+ variant: "XSmall",
86
+ children: _.short_title
87
+ }
88
+ )
89
+ ] }),
90
+ children: /* @__PURE__ */ n(s, { direction: "row", justifyContent: "space-between", sx: { gap: 8 }, children: [
91
+ /* @__PURE__ */ n(l, { bold: !0, variant: "Body", children: [
92
+ e.is_hidden && d.hide_trnx_cancel_hidden_note,
93
+ e.payee || e.description || e.feed_description
94
+ ] }),
95
+ /* @__PURE__ */ n(
96
+ l,
97
+ {
98
+ bold: !0,
99
+ color: g ? "success.main" : "text.primary",
100
+ sx: { flexShrink: 0 },
101
+ variant: "Body",
102
+ children: [
103
+ g ? "+" : "",
104
+ re(e.amount, "0,0.00")
105
+ ]
106
+ }
107
+ )
108
+ ] })
109
+ }
110
+ )
111
+ ]
112
+ }
113
+ )
114
+ );
115
+ }, ue = D(de), me = ({
116
+ bgcolor: e = "background.default",
117
+ children: r
118
+ }) => /* @__PURE__ */ t(b, { display: "inline-block", sx: { bgcolor: e, py: 6, width: "100%" }, children: /* @__PURE__ */ t(l, { bold: !0, sx: { pl: 24 }, variant: "XSmall", children: r }) }), pe = ({ showIcon: e = !0, showSubtitle: r = !0 }) => {
119
+ const { transactions: o } = R();
120
+ return /* @__PURE__ */ n(s, { alignItems: "center", gap: 12, height: "auto", mb: 24, mt: 24, children: [
121
+ e && /* @__PURE__ */ t(oe, { color: "action", sx: { fontSize: 32 } }),
122
+ /* @__PURE__ */ t(l, { bold: !0, color: "text.secondary", variant: "Small", children: o.zero_state_no_transactions }),
123
+ r && /* @__PURE__ */ t(l, { color: "text.secondary", variant: "XSmall", children: o.zero_state_there_are_no_transactions })
124
+ ] });
125
+ }, he = D(pe), k = (e, r) => {
126
+ const o = y(r[e].date), c = y(r[e - 1]?.date);
127
+ return !z(o, c);
128
+ }, fe = (e, r) => {
129
+ const o = y(r[e].date), c = y(r[e + 1]?.date);
130
+ return z(o, c);
131
+ }, A = 65, N = 32, ge = ({
132
+ bgcolor: e,
133
+ filter: r,
134
+ height: o = "calc(100dvh - 36px)",
135
+ loader: c = /* @__PURE__ */ t(ie, { label: "Loading", size: 40 }),
136
+ onClick: m,
137
+ showInsights: h = !1,
138
+ showLoader: d = !1,
139
+ showHiddenTransactions: f = !1,
140
+ transaction: g,
141
+ width: _ = "100%",
142
+ zeroState: x = /* @__PURE__ */ t(he, {})
143
+ }) => {
144
+ const { isLoading: w, sortedTransactions: I } = E(), p = u.useMemo(() => {
145
+ const i = r ? I.filter(r) : I, a = g ?? i;
146
+ return f ? a : a.filter((S) => !S.is_hidden);
147
+ }, [I, f]), { clearExpandedSplits: O, setShowInsights: G, toggleSplit: M } = C(), { onEvent: V } = K(), $ = (i) => {
148
+ const a = p.find((S) => S.guid === i);
149
+ if (a?.has_been_split) {
150
+ M(a.guid);
151
+ return;
152
+ }
153
+ V(se.ACCOUNT_DETAILS_CLICK_TRANSACTION, {
154
+ account_guid: a?.account_guid,
155
+ transaction_guid: i
156
+ }), m?.(i);
157
+ }, L = u.useRef(null), T = B({
158
+ count: p.length,
159
+ getScrollElement: () => L.current,
160
+ estimateSize: (i) => A + (k(i, p) ? N : 0),
161
+ overscan: 5
162
+ });
163
+ return u.useEffect(() => T.measure(), [p]), u.useEffect(() => G(h), [h]), u.useEffect(() => () => O(), []), /* @__PURE__ */ t(W, { sx: { width: _ }, children: /* @__PURE__ */ t(b, { height: o, overflow: "auto", ref: L, width: _, children: /* @__PURE__ */ n(
164
+ b,
165
+ {
166
+ height: (
167
+ // set the height to auto when there are no transactions so the zero state isn't set to 0
168
+ T.getVirtualItems().length === 0 ? "auto" : T.getTotalSize()
169
+ ),
170
+ position: "relative",
171
+ width: "100%",
172
+ children: [
173
+ (w || d) && c,
174
+ !w && !d && T.getVirtualItems().length === 0 && x,
175
+ !w && !d && T.getVirtualItems().length > 0 && T.getVirtualItems().map((i) => {
176
+ const a = p[i.index], S = k(i.index, p), U = fe(i.index, p), j = A + (S ? N : 0);
177
+ return /* @__PURE__ */ n(
178
+ b,
179
+ {
180
+ sx: {
181
+ height: j,
182
+ position: "absolute",
183
+ transform: `translateY(${i.start}px)`,
184
+ width: "100%",
185
+ bgcolor: "background.paper"
186
+ },
187
+ children: [
188
+ S && /* @__PURE__ */ t(me, { bgcolor: e, children: ne(a.date) }),
189
+ /* @__PURE__ */ t(
190
+ ue,
191
+ {
192
+ ...m && { onClick: $ },
193
+ transaction: a
194
+ }
195
+ ),
196
+ /* @__PURE__ */ t(H, { sx: { ml: U ? 68 : 0 } })
197
+ ]
198
+ },
199
+ a.guid
200
+ );
201
+ })
202
+ ]
203
+ }
204
+ ) }) });
205
+ }, $e = D(ge), _e = ({
206
+ amount: e,
207
+ borderRadius: r = "2px",
208
+ completeColor: o = "success.main",
209
+ icon: c,
210
+ label: m,
211
+ leftLabel: h,
212
+ percentComplete: d = 0,
213
+ rightLabel: f,
214
+ sx: g
215
+ }) => /* @__PURE__ */ t(s, { sx: { p: 24, width: "100%", ...g }, children: /* @__PURE__ */ n(s, { className: "details-container", sx: { gap: 16 }, children: [
216
+ /* @__PURE__ */ n(s, { sx: { alignItems: "center", flexDirection: "row", gap: 12 }, children: [
217
+ /* @__PURE__ */ t(b, { children: c }),
218
+ /* @__PURE__ */ n(s, { children: [
219
+ /* @__PURE__ */ t(Y, { variant: "body2", children: m }),
220
+ typeof e == "string" ? /* @__PURE__ */ t(Z, { children: e }) : e
221
+ ] })
222
+ ] }),
223
+ /* @__PURE__ */ n(s, { sx: { gap: 4 }, children: [
224
+ /* @__PURE__ */ t(
225
+ s,
226
+ {
227
+ sx: {
228
+ bgcolor: "divider",
229
+ borderRadius: r,
230
+ flexDirection: "row",
231
+ height: 16,
232
+ width: "100%"
233
+ },
234
+ children: /* @__PURE__ */ t(
235
+ b,
236
+ {
237
+ sx: {
238
+ bgcolor: o,
239
+ borderRadius: r,
240
+ height: 16,
241
+ width: `${d}%`
242
+ }
243
+ }
244
+ )
245
+ }
246
+ ),
247
+ /* @__PURE__ */ n(s, { sx: { flexDirection: "row", justifyContent: "space-between" }, children: [
248
+ /* @__PURE__ */ t(l, { variant: "body2", children: h }),
249
+ /* @__PURE__ */ t(l, { variant: "body2", children: f })
250
+ ] })
251
+ ] })
252
+ ] }) }), Ue = _e;
253
+ export {
254
+ me as S,
255
+ $e as T,
256
+ ue as a,
257
+ Ue as b,
258
+ fe as h,
259
+ k as s,
260
+ C as u
261
+ };