@mx-cartographer/experiences 7.11.6 → 7.11.7-alpha.mm1

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.
@@ -5,19 +5,19 @@ import F from "@mui/material/Box";
5
5
  import O from "@mui/material/Divider";
6
6
  import H from "@mui/material/List";
7
7
  import p from "@mui/material/Stack";
8
- import { MerchantLogo as Q, Text as S, P as G, InstitutionLogo as ie } from "@mxenabled/mxui";
9
- import se from "@mui/material/ListItem";
10
- import ce from "@mui/material/ListItemAvatar";
11
- import le from "@mui/material/ListItemButton";
12
- import de from "@mui/material/ListItemText";
13
- import { F as d, S as M, D as z, g as $, R as T, e as _e } from "./RecurringTransactions-B_I4_FGO.mjs";
14
- import { subDays as X } from "date-fns/subDays";
15
- import { startOfToday as E } from "date-fns/startOfToday";
8
+ import { MerchantLogo as Q, Text as S, P as G, InstitutionLogo as se } from "@mxenabled/mxui";
9
+ import ce from "@mui/material/ListItem";
10
+ import le from "@mui/material/ListItemAvatar";
11
+ import de from "@mui/material/ListItemButton";
12
+ import _e from "@mui/material/ListItemText";
13
+ import { F as d, S as M, D as z, g as $, R as T, e as X } from "./RecurringTransactions-B_I4_FGO.mjs";
14
+ import { subDays as Z } from "date-fns/subDays";
15
+ import { startOfToday as R } from "date-fns/startOfToday";
16
16
  import { endOfMonth as ue } from "date-fns/endOfMonth";
17
17
  import { parseISO as me } from "date-fns/parseISO";
18
- import Z from "@mui/material/Button";
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 J, u as fe, S as ge, a as Ce } from "./TransactionList-DrtItQUk.mjs";
20
+ import { T as V, u as fe, S as ge, a as Ce } from "./TransactionList-DrtItQUk.mjs";
21
21
  import { T as be } from "./TransactionDetails-Cym3mIjc.mjs";
22
22
  import { addYears as j } from "date-fns/addYears";
23
23
  import { getDayOfYear as xe } from "date-fns/getDayOfYear";
@@ -25,19 +25,19 @@ import { setDayOfYear as Se } from "date-fns/setDayOfYear";
25
25
  import { AdapterDateFns as ve } from "@mui/x-date-pickers/AdapterDateFnsV3";
26
26
  import { DatePicker as De } from "@mui/x-date-pickers";
27
27
  import { LocalizationProvider as we } from "@mui/x-date-pickers/LocalizationProvider";
28
- import { u as w, i as Y, g as P, b as Ae, h as V, o as Ie } from "./hooks-0kWPTHNb.mjs";
29
- import { b as Re, f as ee } from "./NumberFormatting-DjTD0t3W.mjs";
28
+ import { u as w, i as Y, g as P, b as Ae, h as ee, o as Ie } from "./hooks-0kWPTHNb.mjs";
29
+ import { b as Ee, f as te } from "./NumberFormatting-DjTD0t3W.mjs";
30
30
  import { D as N } from "./Drawer-DV4NTsFg.mjs";
31
31
  import { A as L } from "./Analytics-i5h6BxR1.mjs";
32
- import { f as Ee, D as Te } from "./DateFormats-Cs-NbEZ7.mjs";
32
+ import { f as Re, D as Te } from "./DateFormats-Cs-NbEZ7.mjs";
33
33
  import { D as Le } from "./Dialog-DdCwLgrl.mjs";
34
34
  import { formatISO as Oe } from "date-fns/formatISO";
35
35
  import { fromUnixTime as ke } from "date-fns/fromUnixTime";
36
36
  import { S as Ne } from "./SearchBox-B7km148n.mjs";
37
37
  import { h as Me } from "./DateUtil-CVXVMbjf.mjs";
38
38
  import { b as B } from "./Category-CevNQ03n.mjs";
39
- import { T as te } from "./Transaction-BNO5Yz-B.mjs";
40
- const ne = ({
39
+ import { T as ne } from "./Transaction-BNO5Yz-B.mjs";
40
+ const re = ({
41
41
  frequency: n,
42
42
  firstDay: t,
43
43
  secondDay: o,
@@ -67,10 +67,10 @@ const ne = ({
67
67
  { id: 6, label: r.weekday_saturday }
68
68
  ], h = [...Array(31).keys()].map((b) => ({
69
69
  id: b + 1,
70
- label: Re(b + 1)
70
+ label: Ee(b + 1)
71
71
  }));
72
72
  h[30].label += ` (${r.last_day_of_month})`;
73
- const g = h.slice(0, 15), v = h.slice(14), C = n === d.EveryWeek || n === d.EveryOtherWeek, f = n === d.TwiceAMonth || n === d.EveryMonth || n === d.EveryOtherMonth || n === d.EveryQuarter || n === d.EveryOtherQuarter, A = Se(E(), t), y = A < E() ? j(A, 1) : A, D = (b) => {
73
+ const g = h.slice(0, 15), v = h.slice(14), C = n === d.EveryWeek || n === d.EveryOtherWeek, f = n === d.TwiceAMonth || n === d.EveryMonth || n === d.EveryOtherMonth || n === d.EveryQuarter || n === d.EveryOtherQuarter, A = Se(R(), t), y = A < R() ? j(A, 1) : A, D = (b) => {
74
74
  b && s(xe(b));
75
75
  };
76
76
  return /* @__PURE__ */ c(p, { gap: 24, sx: { m: 24 }, children: [
@@ -115,8 +115,8 @@ const ne = ({
115
115
  {
116
116
  disablePast: !0,
117
117
  label: r.next_payment_date,
118
- maxDate: X(j(E(), 1), 1),
119
- minDate: E(),
118
+ maxDate: Z(j(R(), 1), 1),
119
+ minDate: R(),
120
120
  onChange: D,
121
121
  value: y
122
122
  }
@@ -152,7 +152,7 @@ const ne = ({
152
152
  onPrimaryAction: C,
153
153
  title: t.payment_schedule,
154
154
  children: /* @__PURE__ */ e(
155
- ne,
155
+ re,
156
156
  {
157
157
  firstDay: m,
158
158
  frequency: r,
@@ -167,11 +167,11 @@ const ne = ({
167
167
  ] });
168
168
  }), Ge = I(
169
169
  ({ onDeleted: n, recurringTransaction: t }) => {
170
- const { recurring: o } = w(), { selectedAccountGuids: i } = Ae(), { onEvent: s } = P(), { deleteRepeatingTransaction: l } = Y(), { setFilter: r, transactions: a } = V(), { amount: m, description: h, merchant_guid: g } = t, [v, C] = _.useState(!1), [f, A] = _.useState("");
170
+ const { recurring: o } = w(), { selectedAccountGuids: i } = Ae(), { onEvent: s } = P(), { deleteRepeatingTransaction: l } = Y(), { setFilter: r, transactions: a } = ee(), { amount: m, description: h, merchant_guid: g } = t, [v, C] = _.useState(!1), [f, A] = _.useState("");
171
171
  _.useEffect(() => {
172
172
  r({
173
173
  accounts: i,
174
- dateRange: { start: X(E(), 90), end: ue(E()) },
174
+ dateRange: { start: Z(R(), 90), end: ue(R()) },
175
175
  custom: (u) => u.repeating_transaction_guid === t.guid
176
176
  });
177
177
  }, [t]);
@@ -197,10 +197,14 @@ const ne = ({
197
197
  /* @__PURE__ */ e(S, { bold: !0, variant: "body1", children: h }),
198
198
  /* @__PURE__ */ c(G, { color: D ? "success.main" : "text.primary", sx: { my: 4 }, variant: "H1", children: [
199
199
  D ? "+" : "",
200
- ee(m, "0,0.00")
200
+ te(m, "0,0.00")
201
201
  ] }),
202
- /* @__PURE__ */ e(S, { color: "text.secondary", variant: "body2", children: `${o.next_payment_date}: ${Ee(
203
- me(t.predicted_occurs_on),
202
+ /* @__PURE__ */ e(S, { color: "text.secondary", variant: "body2", children: `TEST ${o.next_payment_date}: ${Re(
203
+ X(
204
+ t.recurrence_type,
205
+ me(t.predicted_occurs_on),
206
+ t.recurrence_day
207
+ ),
204
208
  Te.MONTH_DAY_YEAR
205
209
  )}` })
206
210
  ] }),
@@ -231,7 +235,7 @@ const ne = ({
231
235
  /* @__PURE__ */ e(O, {})
232
236
  ] }),
233
237
  /* @__PURE__ */ e(
234
- Z,
238
+ J,
235
239
  {
236
240
  color: "error",
237
241
  onClick: U,
@@ -242,7 +246,7 @@ const ne = ({
242
246
  }
243
247
  ),
244
248
  /* @__PURE__ */ e(S, { bold: !0, sx: { ml: 24, mt: 16 }, variant: "Body", children: o.paid_transactions }),
245
- /* @__PURE__ */ e(J, { height: "30dvh", onClick: A }),
249
+ /* @__PURE__ */ e(V, { height: "30dvh", onClick: A }),
246
250
  /* @__PURE__ */ e(
247
251
  N,
248
252
  {
@@ -275,23 +279,23 @@ const ne = ({
275
279
  () => t.transactions.length === 0 ? "" : t.transactions[0].category_guid || "",
276
280
  [t]
277
281
  ), r = t.account?.displayName || "", a = t.repeating_transaction_type === T.Income, m = $(o, t, !0);
278
- return /* @__PURE__ */ c(se, { disableGutters: !0, disablePadding: !0, children: [
279
- /* @__PURE__ */ c(le, { onClick: () => {
282
+ return /* @__PURE__ */ c(ce, { disableGutters: !0, disablePadding: !0, children: [
283
+ /* @__PURE__ */ c(de, { onClick: () => {
280
284
  n(t), s(!0);
281
285
  }, children: [
282
- /* @__PURE__ */ e(ce, { children: /* @__PURE__ */ e(
286
+ /* @__PURE__ */ e(le, { children: /* @__PURE__ */ e(
283
287
  Q,
284
288
  {
285
289
  categoryGuid: l,
286
290
  merchantGuid: t.merchant_guid
287
291
  }
288
292
  ) }),
289
- /* @__PURE__ */ e(de, { children: /* @__PURE__ */ c(p, { direction: "row", gap: 4, sx: { justifyContent: "space-between" }, children: [
293
+ /* @__PURE__ */ e(_e, { children: /* @__PURE__ */ c(p, { direction: "row", gap: 4, sx: { justifyContent: "space-between" }, children: [
290
294
  /* @__PURE__ */ c(p, { direction: "column", sx: { width: "50%" }, children: [
291
295
  /* @__PURE__ */ e(S, { bold: !0, variant: "body1", children: t.description }),
292
296
  /* @__PURE__ */ c(p, { alignItems: "center", direction: "row", gap: 6, children: [
293
297
  t.account?.institution_guid && /* @__PURE__ */ e(
294
- ie,
298
+ se,
295
299
  {
296
300
  alt: r,
297
301
  institutionGuid: t.account?.institution_guid,
@@ -310,7 +314,7 @@ const ne = ({
310
314
  variant: "body1",
311
315
  children: [
312
316
  a ? "+" : "",
313
- ee(t.amount, "0,0.00")
317
+ te(t.amount, "0,0.00")
314
318
  ]
315
319
  }
316
320
  ),
@@ -372,7 +376,7 @@ const ne = ({
372
376
  }
373
377
  ),
374
378
  /* @__PURE__ */ e(
375
- J,
379
+ V,
376
380
  {
377
381
  bgcolor: n,
378
382
  filter: (a) => !!a.merchant_guid,
@@ -403,7 +407,7 @@ const ne = ({
403
407
  /* @__PURE__ */ c(F, { children: [
404
408
  /* @__PURE__ */ e(S, { bold: !0, sx: { mx: 24 }, variant: "Body", children: m.payment_schedule }),
405
409
  /* @__PURE__ */ e(
406
- ne,
410
+ re,
407
411
  {
408
412
  firstDay: t,
409
413
  frequency: i,
@@ -416,24 +420,24 @@ const ne = ({
416
420
  ] })
417
421
  ] });
418
422
  }
419
- ), q = (n) => n.top_level_category_guid !== B.INCOME && n.transaction_type === te.DEBIT, ze = (n, t) => q(n) ? n.payee?.toLowerCase().includes(t.toLowerCase()) || n.description.toLowerCase().includes(t.toLowerCase()) || n.feed_description.toLowerCase().includes(t.toLowerCase()) : !1, W = (n) => n.top_level_category_guid === B.INCOME || n.top_level_category_guid === B.TRANSFER && n.transaction_type === te.CREDIT, Be = (n, t) => W(n) ? n.payee?.toLowerCase().includes(t.toLowerCase()) || n.description?.toLowerCase().includes(t.toLowerCase()) || n.feed_description?.toLowerCase().includes(t.toLowerCase()) : !1, re = I(
423
+ ), q = (n) => n.top_level_category_guid !== B.INCOME && n.transaction_type === ne.DEBIT, ze = (n, t) => q(n) ? n.payee?.toLowerCase().includes(t.toLowerCase()) || n.description.toLowerCase().includes(t.toLowerCase()) || n.feed_description.toLowerCase().includes(t.toLowerCase()) : !1, W = (n) => n.top_level_category_guid === B.INCOME || n.top_level_category_guid === B.TRANSFER && n.transaction_type === ne.CREDIT, Be = (n, t) => W(n) ? n.payee?.toLowerCase().includes(t.toLowerCase()) || n.description?.toLowerCase().includes(t.toLowerCase()) || n.feed_description?.toLowerCase().includes(t.toLowerCase()) : !1, oe = I(
420
424
  ({
421
425
  isIncome: n = !1,
422
426
  label: t,
423
427
  onAddRecurringTransaction: o = () => null
424
428
  }) => {
425
- const { recurring: i } = w(), { filter: s, setFilter: l, transactions: r } = V(), { addRepeatingTransaction: a } = Y(), { user: m } = Ie(), [h, g] = _.useState(!1), [v, C] = _.useState(""), [f, A] = _.useState(d.EveryMonth), [y, D] = _.useState(1), [b, U] = _.useState(15), u = _.useMemo(
429
+ const { recurring: i } = w(), { filter: s, setFilter: l, transactions: r } = ee(), { addRepeatingTransaction: a } = Y(), { user: m } = Ie(), [h, g] = _.useState(!1), [v, C] = _.useState(""), [f, A] = _.useState(d.EveryMonth), [y, D] = _.useState(1), [b, U] = _.useState(15), u = _.useMemo(
426
430
  () => r.find((x) => x.guid === v),
427
431
  [v, r]
428
- ), oe = () => {
432
+ ), ae = () => {
429
433
  g(!0), l(n ? { ...s, custom: W } : { ...s, custom: q });
430
- }, ae = async () => {
434
+ }, ie = async () => {
431
435
  if (!u) {
432
436
  K();
433
437
  return;
434
438
  }
435
439
  o();
436
- const x = _e(f, ke(u.date), y), R = {
440
+ const x = X(f, ke(u.date), y), E = {
437
441
  account_guid: u.account_guid,
438
442
  amount: u.amount,
439
443
  created_by: 0,
@@ -448,12 +452,12 @@ const ne = ({
448
452
  transaction_type: u.transaction_type,
449
453
  user_guid: m.guid
450
454
  };
451
- await a(R, u), K();
455
+ await a(E, u), K();
452
456
  }, K = () => {
453
457
  C(""), g(!1);
454
458
  };
455
459
  return /* @__PURE__ */ c(k, { children: [
456
- /* @__PURE__ */ e(Z, { onClick: oe, startIcon: /* @__PURE__ */ e(ye, { size: 24 }), variant: "contained", children: t }),
460
+ /* @__PURE__ */ e(J, { onClick: ae, startIcon: /* @__PURE__ */ e(ye, { size: 24 }), variant: "contained", children: t }),
457
461
  /* @__PURE__ */ e(
458
462
  N,
459
463
  {
@@ -468,7 +472,7 @@ const ne = ({
468
472
  onSearch: (x) => {
469
473
  l({
470
474
  ...s,
471
- custom: (R) => n ? x ? Be(R, x) : W(R) : x ? ze(R, x) : q(R)
475
+ custom: (E) => n ? x ? Be(E, x) : W(E) : x ? ze(E, x) : q(E)
472
476
  });
473
477
  },
474
478
  onSelected: (x) => C(x)
@@ -482,7 +486,7 @@ const ne = ({
482
486
  ariaLabelClose: i.close_drawer_aria,
483
487
  isOpen: !!v,
484
488
  onClose: () => C(""),
485
- onPrimaryAction: ae,
489
+ onPrimaryAction: ie,
486
490
  title: n ? i.income_details : i.expense_details,
487
491
  children: u && /* @__PURE__ */ e(
488
492
  Ue,
@@ -508,7 +512,7 @@ const ne = ({
508
512
  /* @__PURE__ */ e(G, { sx: { my: 8, fontWeight: 600 }, variant: "body1", children: s }),
509
513
  /* @__PURE__ */ e(G, { color: "text.secondary", sx: { mb: 32 }, variant: "subtitle2", children: l }),
510
514
  /* @__PURE__ */ e(
511
- re,
515
+ oe,
512
516
  {
513
517
  isIncome: i,
514
518
  label: r,
@@ -521,7 +525,7 @@ const ne = ({
521
525
  )
522
526
  ] });
523
527
  }
524
- ), Et = I(({ forOverview: n = !1 }) => {
528
+ ), Rt = I(({ forOverview: n = !1 }) => {
525
529
  const { recurring: t } = w(), { detailedRepeatingTransactions: o } = Y(), { onEvent: i } = P(), s = (a) => {
526
530
  i(L.RECURRING_TRANSACTIONS_CLICK_INCOME, {
527
531
  repeating_transaction_guid: a.guid
@@ -563,7 +567,7 @@ const ne = ({
563
567
  textAlign: "right"
564
568
  },
565
569
  children: /* @__PURE__ */ e(
566
- re,
570
+ oe,
567
571
  {
568
572
  isIncome: !0,
569
573
  label: t.add_income,
@@ -578,8 +582,8 @@ const ne = ({
578
582
  ) : /* @__PURE__ */ e(qe, { zeroStateFor: "income" }) });
579
583
  });
580
584
  export {
581
- re as A,
582
- Et as M,
585
+ oe as A,
586
+ Rt as M,
583
587
  Ye as R,
584
588
  Pe as S,
585
589
  qe as a,
@@ -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-C05btqU-.mjs";
10
+ import { R as C, A as S, a as E, M as v } from "./ManageIncome-hcfDOav_.mjs";
11
11
  import { u as _, i as A, g as f } from "./hooks-0kWPTHNb.mjs";
12
12
  import { R as y, F as N } from "./RecurringTransactions-B_I4_FGO.mjs";
13
13
  import { A as m } from "./Analytics-i5h6BxR1.mjs";
@@ -46,7 +46,7 @@ import { u as it, b as ct } from "../CategorySelectorDrawer-zT9pFvTa.mjs";
46
46
  import We from "@mui/material/CardHeader";
47
47
  import { subDays as lt } from "date-fns/subDays";
48
48
  import dt from "@mui/material/IconButton";
49
- import { M as ut } from "../ManageIncome-C05btqU-.mjs";
49
+ import { M as ut } from "../ManageIncome-hcfDOav_.mjs";
50
50
  import { u as He } from "../useWidgetLoadTimer-yzSfT9dS.mjs";
51
51
  import { W as mt } from "../WidgetContainer-BEpJCqAV.mjs";
52
52
  import { u as gt, C as pt } from "../BudgetUtil-C71e-szt.mjs";
@@ -18,7 +18,7 @@ import { b as $ } from "../Localization-2MODESHW.mjs";
18
18
  import { M as Je } from "../MiniWidgetContainer-B4gbUTJ2.mjs";
19
19
  import { E as Ze } from "../EmptyState-DHAkGsjk.mjs";
20
20
  import { u as Oe } from "../useWidgetLoadTimer-yzSfT9dS.mjs";
21
- import { R as et } from "../RecurringSettings-B0SSXpiK.mjs";
21
+ import { R as et } from "../RecurringSettings-6BSR4_lO.mjs";
22
22
  import tt from "@mui/material/Tabs";
23
23
  import ye from "@mui/material/Tab";
24
24
  import { getUnixTime as z } from "date-fns/getUnixTime";
@@ -36,7 +36,7 @@ import { alpha as at, keyframes as it } from "@mui/material/styles";
36
36
  import { DataGridPro as rt } from "@mui/x-data-grid-pro";
37
37
  import { T as we } from "../TabContentContainer-j01JYR_7.mjs";
38
38
  import G from "@mui/material/Button";
39
- import { M as st, S as ct, i as lt, d as _e, c as dt } from "../ManageIncome-C05btqU-.mjs";
39
+ import { M as st, S as ct, i as lt, d as _e, c as dt } from "../ManageIncome-hcfDOav_.mjs";
40
40
  import { D as Ge } from "../Drawer-DV4NTsFg.mjs";
41
41
  import { subDays as Me } from "date-fns/subDays";
42
42
  import { endOfToday as mt } from "date-fns/endOfToday";
@@ -56,10 +56,10 @@ import { formatISO as oo } from "date-fns/formatISO";
56
56
  import { fromUnixTime as ro } from "date-fns/fromUnixTime";
57
57
  import { startOfToday as st } from "date-fns/startOfToday";
58
58
  import { subDays as ao } from "date-fns/subDays";
59
- import { c as io, d as ct, S as so, i as co } from "../ManageIncome-C05btqU-.mjs";
59
+ import { c as io, d as ct, S as so, i as co } from "../ManageIncome-hcfDOav_.mjs";
60
60
  import { LocalizationProvider as lo, DatePicker as po, StaticDatePicker as _o } from "@mui/x-date-pickers";
61
61
  import { AdapterDateFns as Ot } from "@mui/x-date-pickers/AdapterDateFnsV3";
62
- import { R as uo } from "../RecurringSettings-B0SSXpiK.mjs";
62
+ import { R as uo } from "../RecurringSettings-6BSR4_lO.mjs";
63
63
  import { LocalizationProvider as ho } from "@mui/x-date-pickers/LocalizationProvider";
64
64
  import { format as mo } from "date-fns/format";
65
65
  import go from "@mui/lab/Timeline";
@@ -6,8 +6,8 @@ import { endOfToday as Z } from "date-fns/endOfToday";
6
6
  import { startOfMonth as G } from "date-fns/startOfMonth";
7
7
  import { startOfToday as J } from "date-fns/startOfToday";
8
8
  import { subDays as Q } from "date-fns/subDays";
9
- import { R as Te } from "../RecurringSettings-B0SSXpiK.mjs";
10
- import { M as Ln } from "../RecurringSettings-B0SSXpiK.mjs";
9
+ import { R as Te } from "../RecurringSettings-6BSR4_lO.mjs";
10
+ import { M as Ln } from "../RecurringSettings-6BSR4_lO.mjs";
11
11
  import { addMonths as $e } from "date-fns/addMonths";
12
12
  import { subMonths as Be } from "date-fns/subMonths";
13
13
  import { isBefore as Pe } from "date-fns/isBefore";
@@ -40,8 +40,8 @@ import nt from "@mui/material/ListSubheader";
40
40
  import it from "@mui/material/ListItemAvatar";
41
41
  import rt from "@mui/material/ListItemButton";
42
42
  import ot from "@mui/material/ListItemText";
43
- import { b as at } from "../ManageIncome-C05btqU-.mjs";
44
- import { c as Gn, M as On, S as kn } from "../ManageIncome-C05btqU-.mjs";
43
+ import { b as at } from "../ManageIncome-hcfDOav_.mjs";
44
+ import { c as Gn, M as On, S as kn } from "../ManageIncome-hcfDOav_.mjs";
45
45
  import { f as M } from "../NumberFormatting-DjTD0t3W.mjs";
46
46
  import { D as ie } from "../Drawer-DV4NTsFg.mjs";
47
47
  import { b as E } from "../Localization-2MODESHW.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mx-cartographer/experiences",
3
- "version": "7.11.6",
3
+ "version": "7.11.7-alpha.mm1",
4
4
  "description": "Library containing experience widgets",
5
5
  "author": "MX",
6
6
  "license": "MIT",