@mx-cartographer/experiences 7.0.34-alpha.sms1 → 7.0.34

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.
@@ -11,7 +11,7 @@ import { L as $e } from "./Loader-DUaFpDGv.mjs";
11
11
  import U from "@mui/material/Box";
12
12
  import _e from "@mui/material/IconButton";
13
13
  import { useInView as Oe } from "react-intersection-observer";
14
- import { P as je, CategoryIcon as Ye, useTokens as Te, MerchantLogo as Xe, Icon as ie } from "@mxenabled/mxui";
14
+ import { P as Ye, CategoryIcon as je, useTokens as Te, MerchantLogo as Xe, Icon as ie } from "@mxenabled/mxui";
15
15
  import de from "@mui/material/styles/useTheme";
16
16
  import { b as Qe } from "./Category-CevNQ03n.mjs";
17
17
  import { css as qe } from "@mxenabled/cssinjs";
@@ -44,7 +44,7 @@ class ct {
44
44
  loadCopy = async () => {
45
45
  const o = await this.copyApi.getGlobalCopy(this.namespace, this.translationKey);
46
46
  We(() => {
47
- this.copyObject = o[this.translationKey], console.log("this.copyObject", this.copyObject);
47
+ this.copyObject = o[this.translationKey];
48
48
  });
49
49
  };
50
50
  get cardsCopy() {
@@ -80,8 +80,8 @@ const Ee = {
80
80
  (i, o) => ({
81
81
  ...i,
82
82
  [we(o)]: {
83
- action: D.MICRO_BEAT_CLICKED,
84
- category: x.BEAT_INTERACTION,
83
+ action: x.MICRO_BEAT_CLICKED,
84
+ category: w.BEAT_INTERACTION,
85
85
  label: ue(o),
86
86
  value: S
87
87
  }
@@ -91,8 +91,8 @@ const Ee = {
91
91
  (i, o) => ({
92
92
  ...i,
93
93
  [xe(o)]: {
94
- action: D.MICRO_BEAT_DISPLAYED,
95
- category: x.BEAT_INTERACTION,
94
+ action: x.MICRO_BEAT_DISPLAYED,
95
+ category: w.BEAT_INTERACTION,
96
96
  label: ue(o),
97
97
  value: S
98
98
  }
@@ -102,19 +102,19 @@ const Ee = {
102
102
  (i, o) => ({
103
103
  ...i,
104
104
  [De(o)]: {
105
- action: D.MICRO_BEAT_DISPLAYED_FIRST_TIME,
106
- category: x.BEAT_INTERACTION,
105
+ action: x.MICRO_BEAT_DISPLAYED_FIRST_TIME,
106
+ category: w.BEAT_INTERACTION,
107
107
  label: ue(o),
108
108
  value: S
109
109
  }
110
110
  }),
111
111
  {}
112
- ), w = {
112
+ ), W = {
113
113
  CARD: "Card",
114
114
  CAROUSEL_CONTROL: "Carousel Control",
115
115
  MICRO_WIDGET: "Micro Widget",
116
116
  VIEW_MORE: "View More"
117
- }, x = {
117
+ }, w = {
118
118
  MICRO_WIDGET_INTERACTION: "Micro Widget Interaction",
119
119
  BEAT_INTERACTION: "Beat Interaction"
120
120
  }, M = {
@@ -126,7 +126,7 @@ const Ee = {
126
126
  ON_VIEW_MORE_CLICKED: "onViewMoreClicked"
127
127
  }, Le = {
128
128
  ON_VIEW_MORE_VIEWED: "onViewMoreCardView"
129
- }, D = {
129
+ }, x = {
130
130
  CONTROL_BACKWARD: "Control Backward",
131
131
  CONTROL_FORWARD: "Control Forward",
132
132
  MICRO_BEAT_CLICKED: "Micro Beat Clicked",
@@ -140,21 +140,21 @@ const Ee = {
140
140
  MICRO_WIDGET_CAROUSEL_NO_RELEVANT_INSIGHTS: "Micro Widget Carousel No Relevant Insights"
141
141
  }, Re = {
142
142
  [k.MICRO_WIDGET_CAROUSEL]: {
143
- label: w.MICRO_WIDGET,
143
+ label: W.MICRO_WIDGET,
144
144
  name: k.MICRO_WIDGET_CAROUSEL,
145
145
  path: ge.INSIGHTS_MICRO_WIDGET,
146
146
  value: S
147
147
  },
148
148
  // zero state
149
149
  [k.MICRO_WIDGET_CAROUSEL_ZERO_STATE]: {
150
- label: w.MICRO_WIDGET,
150
+ label: W.MICRO_WIDGET,
151
151
  name: k.MICRO_WIDGET_CAROUSEL_ZERO_STATE,
152
152
  path: ge.INSIGHTS_MICRO_WIDGET,
153
153
  value: S
154
154
  },
155
155
  // no relevant cards
156
156
  [k.MICRO_WIDGET_CAROUSEL_NO_RELEVANT_INSIGHTS]: {
157
- label: w.MICRO_WIDGET,
157
+ label: W.MICRO_WIDGET,
158
158
  name: k.MICRO_WIDGET_CAROUSEL_NO_RELEVANT_INSIGHTS,
159
159
  path: "/micro-widget",
160
160
  value: S
@@ -162,40 +162,40 @@ const Ee = {
162
162
  }, Ie = {
163
163
  // carousel control interaction events - clicks and swipes
164
164
  [M.ON_CAROUSEL_BACK_CLICK]: {
165
- action: D.CONTROL_BACKWARD,
166
- category: x.MICRO_WIDGET_INTERACTION,
167
- label: w.CAROUSEL_CONTROL,
165
+ action: x.CONTROL_BACKWARD,
166
+ category: w.MICRO_WIDGET_INTERACTION,
167
+ label: W.CAROUSEL_CONTROL,
168
168
  value: S
169
169
  },
170
170
  [M.ON_CAROUSEL_FORWARD_CLICK]: {
171
- action: D.CONTROL_FORWARD,
172
- category: x.MICRO_WIDGET_INTERACTION,
173
- label: w.CAROUSEL_CONTROL,
171
+ action: x.CONTROL_FORWARD,
172
+ category: w.MICRO_WIDGET_INTERACTION,
173
+ label: W.CAROUSEL_CONTROL,
174
174
  value: S
175
175
  },
176
176
  [M.ON_CAROUSEL_BACK_SWIPE]: {
177
- action: D.SWIPE_BACKWARD,
178
- category: x.MICRO_WIDGET_INTERACTION,
179
- label: w.CAROUSEL_CONTROL,
177
+ action: x.SWIPE_BACKWARD,
178
+ category: w.MICRO_WIDGET_INTERACTION,
179
+ label: W.CAROUSEL_CONTROL,
180
180
  value: S
181
181
  },
182
182
  [M.ON_CAROUSEL_FORWARD_SWIPE]: {
183
- action: D.SWIPE_FORWARD,
184
- category: x.MICRO_WIDGET_INTERACTION,
185
- label: w.CAROUSEL_CONTROL,
183
+ action: x.SWIPE_FORWARD,
184
+ category: w.MICRO_WIDGET_INTERACTION,
185
+ label: W.CAROUSEL_CONTROL,
186
186
  value: S
187
187
  },
188
188
  // read more card events
189
189
  [M.ON_VIEW_MORE_CLICKED]: {
190
- action: D.MICRO_BEAT_CLICKED,
191
- category: x.BEAT_INTERACTION,
192
- label: w.VIEW_MORE,
190
+ action: x.MICRO_BEAT_CLICKED,
191
+ category: w.BEAT_INTERACTION,
192
+ label: W.VIEW_MORE,
193
193
  value: S
194
194
  },
195
195
  [Le.ON_VIEW_MORE_VIEWED]: {
196
- action: D.MICRO_BEAT_DISPLAYED,
197
- category: x.BEAT_INTERACTION,
198
- label: w.VIEW_MORE,
196
+ action: x.MICRO_BEAT_DISPLAYED,
197
+ category: w.BEAT_INTERACTION,
198
+ label: W.VIEW_MORE,
199
199
  value: S
200
200
  },
201
201
  ...st(),
@@ -273,8 +273,8 @@ const $ = u.createContext(null), pt = ({
273
273
  variant: c,
274
274
  widthOverrides: E
275
275
  }, g) {
276
- const y = de(), [L, O] = u.useState(!1), { cardStyle: v, linkTextStyle: B } = f, z = c ? v : { border: "none", boxShadow: "none", ...v }, R = /* @__PURE__ */ e(
277
- je,
276
+ const y = de(), [D, O] = u.useState(!1), { cardStyle: v, linkTextStyle: B } = f, z = c ? v : { border: "none", boxShadow: "none", ...v }, R = /* @__PURE__ */ e(
277
+ Ye,
278
278
  {
279
279
  className: "mx-micro-card-description",
280
280
  color: h.textColor ? "undefined" : "text.primary",
@@ -325,7 +325,7 @@ const $ = u.createContext(null), pt = ({
325
325
  ref: g,
326
326
  role: "button",
327
327
  sx: {
328
- border: L ? "1px solid rgba(82, 138, 224, 0.8)" : void 0,
328
+ border: D ? "1px solid rgba(82, 138, 224, 0.8)" : void 0,
329
329
  borderRadius: "8px",
330
330
  height: "100%"
331
331
  },
@@ -377,12 +377,12 @@ const $ = u.createContext(null), pt = ({
377
377
  children: /* @__PURE__ */ e(
378
378
  U,
379
379
  {
380
- sx: (N) => ({
381
- color: h.buttonColor ? h.buttonColor : N.palette.primary.main,
380
+ sx: (L) => ({
381
+ color: h.buttonColor ? h.buttonColor : L.palette.primary.main,
382
382
  fontSize: 14,
383
383
  fontWeight: "bold",
384
384
  px: 28,
385
- fontFamily: N.typography.fontFamily,
385
+ fontFamily: L.typography.fontFamily,
386
386
  ...B
387
387
  }),
388
388
  children: o
@@ -404,7 +404,7 @@ const $ = u.createContext(null), pt = ({
404
404
  const [o, t] = te(Qe.UNCATEGORIZED);
405
405
  return oe(() => {
406
406
  i.primary_category_guid ? t(i.primary_category_guid) : i.category_guids?.length && t(i.category_guids[0]);
407
- }, []), /* @__PURE__ */ e(Ye, { categoryGuid: o, size: 16, sx: { minWidth: 16 } });
407
+ }, []), /* @__PURE__ */ e(je, { categoryGuid: o, size: 16, sx: { minWidth: 16 } });
408
408
  }, Ct = ({ beat: i }) => {
409
409
  const o = Te(), t = ft(o);
410
410
  return /* @__PURE__ */ e(
@@ -1263,7 +1263,7 @@ const $ = u.createContext(null), pt = ({
1263
1263
  "useInsightsMicroWidgetStore() must be used within the InsightsMicroWidgetDataProvider"
1264
1264
  );
1265
1265
  return i.store.insightsMicroWidgetStore;
1266
- }, j = () => {
1266
+ }, Y = () => {
1267
1267
  const i = u.useContext($);
1268
1268
  if (!i)
1269
1269
  throw new Error("useEvent() must be used within the InsightsMicroWidgetDataProvider");
@@ -1295,9 +1295,9 @@ const $ = u.createContext(null), pt = ({
1295
1295
  }) => {
1296
1296
  const { ref: m, inView: c } = Oe({
1297
1297
  threshold: ke
1298
- }), { cardsCopy: E } = F(), { onEvent: g } = j(), { updateBeat: y, updateOffer: L } = vt();
1298
+ }), { cardsCopy: E } = F(), { onEvent: g } = Y(), { updateBeat: y, updateOffer: D } = vt();
1299
1299
  oe(() => {
1300
- c && (t.has_been_displayed ? g(xe(t.template)) : (t.guid.startsWith("OFR") ? L({
1300
+ c && (t.has_been_displayed ? g(xe(t.template)) : (t.guid.startsWith("OFR") ? D({
1301
1301
  ...t,
1302
1302
  has_been_displayed: !0
1303
1303
  }) : y({
@@ -1472,17 +1472,17 @@ const $ = u.createContext(null), pt = ({
1472
1472
  visibleCardsCount: c = 1
1473
1473
  // Default to 1 card visible
1474
1474
  }) => {
1475
- const E = u.useRef(null), g = u.useRef(null), [y, L] = u.useState(0), [O, v] = u.useState(null), [B, z] = u.useState(null), [R, N] = u.useState(null), [le, G] = u.useState(p), { carouselCopy: V } = F(), { onEvent: b } = j();
1475
+ const E = u.useRef(null), g = u.useRef(null), [y, D] = u.useState(0), [O, v] = u.useState(null), [B, z] = u.useState(null), [R, L] = u.useState(null), [le, G] = u.useState(p), { carouselCopy: N } = F(), { onEvent: b } = Y();
1476
1476
  u.useEffect(() => {
1477
1477
  if (E.current && !o) {
1478
1478
  const s = E.current.offsetWidth, A = 8;
1479
- let H;
1479
+ let V;
1480
1480
  if (c > 1) {
1481
1481
  const J = (s - (c - 1) * A) / c / 3;
1482
- H = (s - J - (c - 1) * A) / c;
1482
+ V = (s - J - (c - 1) * A) / c;
1483
1483
  } else
1484
- H = s;
1485
- N(H);
1484
+ V = s;
1485
+ L(V);
1486
1486
  }
1487
1487
  }, [c, E.current?.offsetWidth]), u.useEffect(() => {
1488
1488
  const s = g.current?.offsetWidth;
@@ -1498,17 +1498,17 @@ const $ = u.createContext(null), pt = ({
1498
1498
  ].find((se) => Z <= se.maxWidth);
1499
1499
  return ee ? ee.cardWidth : 750;
1500
1500
  };
1501
- N(A(s));
1502
- const H = () => {
1501
+ L(A(s));
1502
+ const V = () => {
1503
1503
  const Z = g.current?.offsetWidth;
1504
- typeof Z == "number" && N(A(Z));
1504
+ typeof Z == "number" && L(A(Z));
1505
1505
  };
1506
- return window.addEventListener("resize", H), () => {
1507
- window.removeEventListener("resize", H);
1506
+ return window.addEventListener("resize", V), () => {
1507
+ window.removeEventListener("resize", V);
1508
1508
  };
1509
1509
  }
1510
1510
  }, [o, g]);
1511
- const Y = () => {
1511
+ const j = () => {
1512
1512
  b(M.ON_CAROUSEL_FORWARD_CLICK, i), E.current && R && E.current.scrollTo({
1513
1513
  left: y + R + 8,
1514
1514
  top: 0,
@@ -1521,7 +1521,7 @@ const $ = u.createContext(null), pt = ({
1521
1521
  behavior: "smooth"
1522
1522
  });
1523
1523
  }, ne = () => {
1524
- E.current && L(E.current.scrollLeft);
1524
+ E.current && D(E.current.scrollLeft);
1525
1525
  }, ae = () => {
1526
1526
  if (!B || !O) return;
1527
1527
  B - O > St ? b(M.ON_CAROUSEL_FORWARD_SWIPE, i) : b(M.ON_CAROUSEL_BACK_SWIPE, i);
@@ -1540,7 +1540,7 @@ const $ = u.createContext(null), pt = ({
1540
1540
  return /* @__PURE__ */ I(
1541
1541
  K,
1542
1542
  {
1543
- "aria-label": V.carousel_title,
1543
+ "aria-label": N.carousel_title,
1544
1544
  "aria-roledescription": "carousel",
1545
1545
  ref: g,
1546
1546
  role: "group/region",
@@ -1579,9 +1579,9 @@ const $ = u.createContext(null), pt = ({
1579
1579
  },
1580
1580
  children: [
1581
1581
  t.map((s, A) => {
1582
- const H = A + 1, Z = t.length + 1, J = Je(
1583
- V.card_position_in_carousel_aria,
1584
- H.toString(),
1582
+ const V = A + 1, Z = t.length + 1, J = Je(
1583
+ N.card_position_in_carousel_aria,
1584
+ V.toString(),
1585
1585
  Z.toString()
1586
1586
  ), ee = s.micro_title && s.micro_title.length > 0, se = s.micro_description && s.micro_description.length > 0, Pe = ee ? s.micro_title : s.title, Ge = se ? s.micro_description : s.description;
1587
1587
  return /* @__PURE__ */ e(
@@ -1616,7 +1616,7 @@ const $ = u.createContext(null), pt = ({
1616
1616
  clientColorScheme: r,
1617
1617
  currentBeatIndex: ce + c - 1,
1618
1618
  numBeats: t.length + 1,
1619
- onNextClick: Y,
1619
+ onNextClick: j,
1620
1620
  onPreviousClick: X,
1621
1621
  scrollRightBoundary: Ze,
1622
1622
  scrollX: y,
@@ -1634,7 +1634,7 @@ const $ = u.createContext(null), pt = ({
1634
1634
  posthog: r,
1635
1635
  widthOverrides: l
1636
1636
  }) => {
1637
- const { carouselCopy: n } = F(), { onEvent: a } = j(), d = () => {
1637
+ const { carouselCopy: n } = F(), { onEvent: a } = Y(), d = () => {
1638
1638
  a && (a(M.ON_VIEW_MORE_CLICKED, i), t(), r?.capture("clicked_view_more"));
1639
1639
  };
1640
1640
  return n ? /* @__PURE__ */ I(
@@ -1730,7 +1730,7 @@ const $ = u.createContext(null), pt = ({
1730
1730
  variant: p,
1731
1731
  widthOverrides: _
1732
1732
  }) => {
1733
- const { cardsCopy: C } = F(), { onEvent: f } = j(), { onPageview: h } = Ve();
1733
+ const { cardsCopy: C } = F(), { onEvent: f } = Y(), { onPageview: h } = Ve();
1734
1734
  u.useEffect(() => {
1735
1735
  h(k.MICRO_WIDGET_CAROUSEL_NO_RELEVANT_INSIGHTS);
1736
1736
  }, []);
@@ -1826,7 +1826,7 @@ const $ = u.createContext(null), pt = ({
1826
1826
  },
1827
1827
  children: /* @__PURE__ */ e(et, {})
1828
1828
  }
1829
- ), W = new ut(), Lt = ({
1829
+ ), H = new ut(), Lt = ({
1830
1830
  allowSingleCardPeeking: i,
1831
1831
  areBeatsLoading: o,
1832
1832
  beats: t = [],
@@ -1850,22 +1850,22 @@ const $ = u.createContext(null), pt = ({
1850
1850
  showHeader: E,
1851
1851
  showIcon: g,
1852
1852
  showWithMargin: y = !0,
1853
- token: L = "",
1853
+ token: D = "",
1854
1854
  useDarkMode: O,
1855
1855
  userHasFullInsightFeedBeats: v,
1856
1856
  variant: B,
1857
1857
  visibleCardsCount: z = 1,
1858
1858
  widthOverrides: R
1859
1859
  }) => {
1860
- const N = Me(), [le, G] = te("STANDARD"), [V, b] = te(!1), [Y, X] = te(!1), ne = it([_], W), ae = ot([C], W);
1860
+ const L = Me(), [le, G] = te("STANDARD"), [N, b] = te(!1), [j, X] = te(!1), ne = it([_], H), ae = ot([C], H);
1861
1861
  u.useEffect(() => {
1862
- !W.isInitialized && !Y && (W.initialize(n, L, d).catch(() => X(!1)), X(!0));
1863
- }, [n, L, d, W.isInitialized, Y]), u.useEffect(() => {
1862
+ !H.isInitialized && !j && (H.initialize(n, D, d).catch(() => X(!1)), X(!0));
1863
+ }, [n, D, d, H.isInitialized, j]), u.useEffect(() => {
1864
1864
  const T = window.innerHeight;
1865
1865
  T < 180 ? G("STANDARD") : T >= 180 && T < 200 ? G("LARGE") : T >= 200 && T < 248 ? G("XLARGE") : T >= 248 && G("XXLARGE");
1866
1866
  }, [window.innerHeight]), u.useEffect(() => {
1867
- b(!o && W.isInitialized);
1868
- }, [o, W.isInitialized]);
1867
+ b(!o && H.isInitialized);
1868
+ }, [o, H.isInitialized]);
1869
1869
  const Q = {
1870
1870
  showCTAColocatedWithText: l,
1871
1871
  heightOverrides: a,
@@ -1882,11 +1882,11 @@ const $ = u.createContext(null), pt = ({
1882
1882
  };
1883
1883
  return (
1884
1884
  // The Theme provider must wrap the component so that the styles don't break when imported into other applications.
1885
- /* @__PURE__ */ I(Ue, { theme: N, children: [
1885
+ /* @__PURE__ */ I(Ue, { theme: L, children: [
1886
1886
  /* @__PURE__ */ e(be, {}),
1887
- /* @__PURE__ */ e(pt, { onEvent: ne, onPageview: ae, store: W, children: /* @__PURE__ */ I(xt, { heightOverrides: a, widthOverrides: R, children: [
1888
- (!V || !W.isInitialized) && /* @__PURE__ */ e(Dt, {}),
1889
- V && E && /* @__PURE__ */ e(
1887
+ /* @__PURE__ */ e(pt, { onEvent: ne, onPageview: ae, store: H, children: /* @__PURE__ */ I(xt, { heightOverrides: a, widthOverrides: R, children: [
1888
+ !N && /* @__PURE__ */ e(Dt, {}),
1889
+ N && E && /* @__PURE__ */ e(
1890
1890
  wt,
1891
1891
  {
1892
1892
  analyticsMetadata: me,
@@ -1896,7 +1896,7 @@ const $ = u.createContext(null), pt = ({
1896
1896
  widthOverrides: R
1897
1897
  }
1898
1898
  ),
1899
- V && !!t.length && /* @__PURE__ */ e(
1899
+ N && !!t.length && /* @__PURE__ */ e(
1900
1900
  Tt,
1901
1901
  {
1902
1902
  allowSingleCardPeeking: i,
@@ -1910,8 +1910,8 @@ const $ = u.createContext(null), pt = ({
1910
1910
  ...Q
1911
1911
  }
1912
1912
  ),
1913
- V && !t.length && v && /* @__PURE__ */ e(Fe, { clientColorScheme: r, ...q }),
1914
- V && !t.length && !v && /* @__PURE__ */ e(Be, { ...q })
1913
+ N && !t.length && v && /* @__PURE__ */ e(Fe, { clientColorScheme: r, ...q }),
1914
+ N && !t.length && !v && /* @__PURE__ */ e(Be, { ...q })
1915
1915
  ] }) })
1916
1916
  ] })
1917
1917
  );
@@ -1928,7 +1928,7 @@ const $ = u.createContext(null), pt = ({
1928
1928
  }) => {
1929
1929
  const _ = de(), { ref: C, inView: f } = Oe({
1930
1930
  threshold: ke
1931
- }), { cardsCopy: h } = F(), { onEvent: m } = j();
1931
+ }), { cardsCopy: h } = F(), { onEvent: m } = Y();
1932
1932
  oe(() => {
1933
1933
  f && (m(Le.ON_VIEW_MORE_VIEWED), n?.capture("viewed_insight", {
1934
1934
  template: "view_more_card"
@@ -1,4 +1,4 @@
1
- import { A as s, B as e, C as o, c as t, b as i, I as d, M as n, a as C, d as c, N as I, V as M, Z as g, e as h } from "../ViewMoreMicroCard-CXxtKHUM.mjs";
1
+ import { A as s, B as e, C as o, c as t, b as i, I as d, M as n, a as C, d as c, N as I, V as M, Z as g, e as h } from "../ViewMoreMicroCard-B-3SFewe.mjs";
2
2
  export {
3
3
  s as AppStore,
4
4
  e as BeatCard,
@@ -20,7 +20,7 @@ import { C as st } from "../CurrencyText-YUhH2caW.mjs";
20
20
  import { c as Me } from "../Category-CevNQ03n.mjs";
21
21
  import { b as rt } from "../Localization-2MODESHW.mjs";
22
22
  import { H as be } from "../HeaderCell-DjuifqHJ.mjs";
23
- import { T as A, b as at } from "../ViewMoreMicroCard-CXxtKHUM.mjs";
23
+ import { T as A, b as at } from "../ViewMoreMicroCard-B-3SFewe.mjs";
24
24
  import { A as y, W as Ae } from "../WidgetContainer-CPBhSP3k.mjs";
25
25
  import { a as Re, T as ke } from "../TransactionDetails-BafSm7_T.mjs";
26
26
  import { D as fe } from "../Drawer-kEE73B87.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mx-cartographer/experiences",
3
- "version": "7.0.34-alpha.sms1",
3
+ "version": "7.0.34",
4
4
  "description": "Library containing experience widgets",
5
5
  "author": "MX",
6
6
  "license": "MIT",