@saasquatch/mint-components 1.10.2-9 → 1.10.3-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/dist/cjs/{ShadowViewAddon-721bb748.js → ShadowViewAddon-c3e91cee.js} +55 -30
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/mint-components.cjs.js +1 -1
  4. package/dist/cjs/sqm-banking-info-form_16.cjs.entry.js +57 -33
  5. package/dist/cjs/sqm-big-stat_38.cjs.entry.js +64 -23
  6. package/dist/cjs/sqm-empty_4.cjs.entry.js +8 -1
  7. package/dist/cjs/{sqm-portal-container-view-5fb2ad49.js → sqm-portal-container-view-990a85a3.js} +1 -1
  8. package/dist/cjs/sqm-stencilbook.cjs.entry.js +153 -30
  9. package/dist/collection/components/sqm-empty/EmptyState.stories.js +1 -1
  10. package/dist/collection/components/sqm-image/sqm-image-view.js +1 -1
  11. package/dist/collection/components/sqm-image/sqm-image.js +20 -0
  12. package/dist/collection/components/sqm-leaderboard/Leaderboard.stories.js +130 -24
  13. package/dist/collection/components/sqm-leaderboard/sqm-leaderboard-view.js +55 -29
  14. package/dist/collection/components/sqm-leaderboard/sqm-leaderboard.js +93 -29
  15. package/dist/collection/components/sqm-leaderboard/useLeaderboard.js +40 -4
  16. package/dist/collection/components/sqm-portal-container/PortalContainer.stories.js +12 -0
  17. package/dist/collection/components/sqm-portal-container/sqm-portal-container-view.js +1 -1
  18. package/dist/collection/components/sqm-portal-container/sqm-portal-container.js +37 -0
  19. package/dist/collection/components/tax-and-cash/sqm-banking-info-form/sqm-banking-info-form-view.js +2 -1
  20. package/dist/collection/components/tax-and-cash/sqm-user-info-form/sqm-user-info-form-view.js +55 -32
  21. package/dist/esm/{ShadowViewAddon-31eb5b16.js → ShadowViewAddon-e012b2aa.js} +55 -30
  22. package/dist/esm/loader.js +1 -1
  23. package/dist/esm/mint-components.js +1 -1
  24. package/dist/esm/sqm-banking-info-form_16.entry.js +57 -33
  25. package/dist/esm/sqm-big-stat_38.entry.js +64 -23
  26. package/dist/esm/sqm-empty_4.entry.js +8 -1
  27. package/dist/esm/{sqm-portal-container-view-ab89c6cc.js → sqm-portal-container-view-6c582684.js} +1 -1
  28. package/dist/esm/sqm-stencilbook.entry.js +153 -30
  29. package/dist/esm-es5/ShadowViewAddon-e012b2aa.js +1 -0
  30. package/dist/esm-es5/loader.js +1 -1
  31. package/dist/esm-es5/mint-components.js +1 -1
  32. package/dist/esm-es5/sqm-banking-info-form_16.entry.js +1 -1
  33. package/dist/esm-es5/sqm-big-stat_38.entry.js +1 -1
  34. package/dist/esm-es5/sqm-empty_4.entry.js +1 -1
  35. package/dist/esm-es5/sqm-portal-container-view-6c582684.js +1 -0
  36. package/dist/esm-es5/sqm-stencilbook.entry.js +1 -1
  37. package/dist/mint-components/mint-components.esm.js +1 -1
  38. package/dist/mint-components/{p-d6474614.js → p-10685090.js} +23 -23
  39. package/dist/mint-components/p-2ffefa3b.entry.js +223 -0
  40. package/dist/mint-components/{p-b45ba369.entry.js → p-31e810e9.entry.js} +2 -2
  41. package/dist/mint-components/p-5de21018.system.entry.js +1 -0
  42. package/dist/mint-components/p-7497a4f6.system.entry.js +1 -0
  43. package/dist/mint-components/{p-bf723ae9.entry.js → p-81689347.entry.js} +2 -2
  44. package/dist/mint-components/p-84361da0.system.entry.js +1 -0
  45. package/dist/mint-components/p-95771f79.system.js +1 -0
  46. package/dist/mint-components/p-9f0629ba.system.entry.js +1 -0
  47. package/dist/mint-components/{p-e704842c.js → p-c7fd9e16.js} +1 -1
  48. package/dist/mint-components/p-d8d2de11.entry.js +1 -0
  49. package/dist/mint-components/p-ed17e637.system.js +1 -1
  50. package/dist/mint-components/p-ed6ebd60.system.js +1 -0
  51. package/dist/types/components/sqm-image/sqm-image-view.d.ts +1 -0
  52. package/dist/types/components/sqm-image/sqm-image.d.ts +5 -0
  53. package/dist/types/components/sqm-leaderboard/Leaderboard.stories.d.ts +5 -1
  54. package/dist/types/components/sqm-leaderboard/sqm-leaderboard-view.d.ts +6 -4
  55. package/dist/types/components/sqm-leaderboard/sqm-leaderboard.d.ts +23 -6
  56. package/dist/types/components/sqm-leaderboard/useLeaderboard.d.ts +4 -2
  57. package/dist/types/components/sqm-portal-container/PortalContainer.stories.d.ts +1 -0
  58. package/dist/types/components/sqm-portal-container/sqm-portal-container-view.d.ts +1 -0
  59. package/dist/types/components/sqm-portal-container/sqm-portal-container.d.ts +7 -0
  60. package/dist/types/components.d.ts +64 -12
  61. package/docs/docs.docx +0 -0
  62. package/docs/raisins.json +1 -1
  63. package/grapesjs/grapesjs.js +1 -1
  64. package/package.json +2 -2
  65. package/dist/esm-es5/ShadowViewAddon-31eb5b16.js +0 -1
  66. package/dist/esm-es5/sqm-portal-container-view-ab89c6cc.js +0 -1
  67. package/dist/mint-components/p-0d39c815.system.entry.js +0 -1
  68. package/dist/mint-components/p-1fe65a36.entry.js +0 -1
  69. package/dist/mint-components/p-27bd5535.entry.js +0 -187
  70. package/dist/mint-components/p-34fd1229.system.entry.js +0 -1
  71. package/dist/mint-components/p-922578e4.system.js +0 -1
  72. package/dist/mint-components/p-b567780d.system.js +0 -1
  73. package/dist/mint-components/p-c34a507e.system.entry.js +0 -1
  74. package/dist/mint-components/p-f1a1e7f3.system.entry.js +0 -1
@@ -15,8 +15,8 @@ import { p as pathToRegexp } from './index-ffa26b43.js';
15
15
  import { R as REGISTRATION_FORM_STATE_CONTEXT, u as useRegistrationFormState } from './useRegistrationFormState-9fc1ac80.js';
16
16
  import { i as isEmpty } from './utilities-3f5bba22.js';
17
17
  import { A as AsYouType } from './AsYouType-46f67d0d.js';
18
- import { b as useDemoBigStat, V as useBigStat, B as BigStatView, Q as autoColorScaleCss, K as CardFeedView, j as CheckboxFieldView, M as CouponCodeView, D as DropdownFieldView, E as EditProfileView, H as HeroView, I as InputFieldView, W as withShadowView, L as LeaderboardView, N as NameFieldsView, d as PortalChangePasswordView, i as PortalFooterView, P as PortalFrameView, e as PortalLoginView, f as PortalRegisterView, R as ReferralIframeView, X as demoRewardExchange, k as RewardExchangeView, a as useShareButton, S as ShareButtonView, C as CopyTextView, u as useShareLink, c as StatContainerView, T as TaskCardView } from './ShadowViewAddon-31eb5b16.js';
19
- import './sqm-portal-container-view-ab89c6cc.js';
18
+ import { b as useDemoBigStat, V as useBigStat, B as BigStatView, Q as autoColorScaleCss, K as CardFeedView, j as CheckboxFieldView, M as CouponCodeView, D as DropdownFieldView, E as EditProfileView, H as HeroView, I as InputFieldView, W as withShadowView, L as LeaderboardView, N as NameFieldsView, d as PortalChangePasswordView, i as PortalFooterView, P as PortalFrameView, e as PortalLoginView, f as PortalRegisterView, R as ReferralIframeView, X as demoRewardExchange, k as RewardExchangeView, a as useShareButton, S as ShareButtonView, C as CopyTextView, u as useShareLink, c as StatContainerView, T as TaskCardView } from './ShadowViewAddon-e012b2aa.js';
19
+ import './sqm-portal-container-view-6c582684.js';
20
20
 
21
21
  const BigStat = class {
22
22
  constructor(hostRef) {
@@ -1156,7 +1156,7 @@ function ImageView(props) {
1156
1156
  },
1157
1157
  Image: {
1158
1158
  minHeight: props.minHeight || "100%",
1159
- width: "100%",
1159
+ width: props.width || "100%",
1160
1160
  maxWidth: "max-content",
1161
1161
  objectFit: "cover",
1162
1162
  },
@@ -1271,6 +1271,26 @@ const GET_LEADERBOARD = dist.gql `
1271
1271
  }
1272
1272
  }
1273
1273
  `;
1274
+ const GET_LEADERBOARD_WITHOUT_NAMES = dist.gql `
1275
+ query (
1276
+ $type: String!
1277
+ $filter: UserLeaderboardFilterInput
1278
+ $locale: RSLocale
1279
+ $limit: Int!
1280
+ ) {
1281
+ userLeaderboard(type: $type, filter: $filter) {
1282
+ dateModified
1283
+ rows(limit: $limit) {
1284
+ textValue(locale: $locale)
1285
+ rank {
1286
+ rank
1287
+ denseRank
1288
+ rowNumber
1289
+ }
1290
+ }
1291
+ }
1292
+ }
1293
+ `;
1274
1294
  const GET_RANK = dist.gql `
1275
1295
  query (
1276
1296
  $type: String!
@@ -1291,6 +1311,24 @@ const GET_RANK = dist.gql `
1291
1311
  }
1292
1312
  }
1293
1313
  `;
1314
+ const GET_RANK_WITHOUT_NAMES = dist.gql `
1315
+ query (
1316
+ $type: String!
1317
+ $filter: UserLeaderboardFilterInput
1318
+ $locale: RSLocale
1319
+ ) {
1320
+ viewer {
1321
+ ... on User {
1322
+ leaderboardRank(type: $type, filter: $filter) {
1323
+ textValue(locale: $locale)
1324
+ rank
1325
+ denseRank
1326
+ rowNumber
1327
+ }
1328
+ }
1329
+ }
1330
+ }
1331
+ `;
1294
1332
  function useLeaderboard(props) {
1295
1333
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
1296
1334
  const programIdContext = H();
@@ -1316,8 +1354,8 @@ function useLeaderboard(props) {
1316
1354
  if (props.maxRows > 0) {
1317
1355
  variables["limit"] = props.maxRows;
1318
1356
  }
1319
- const { data: leaderboardData, loading: loadingLeaderboard, errors: leaderboardErrors, } = yn(GET_LEADERBOARD, variables, !(user === null || user === void 0 ? void 0 : user.jwt), { batch: false });
1320
- const { data: rankData } = yn(GET_RANK, variables, !(user === null || user === void 0 ? void 0 : user.jwt));
1357
+ const { data: leaderboardData, loading: loadingLeaderboard, errors: leaderboardErrors, } = yn(props.hideNames ? GET_LEADERBOARD_WITHOUT_NAMES : GET_LEADERBOARD, variables, !(user === null || user === void 0 ? void 0 : user.jwt), { batch: false });
1358
+ const { data: rankData } = yn(props.hideNames ? GET_RANK_WITHOUT_NAMES : GET_RANK, variables, !(user === null || user === void 0 ? void 0 : user.jwt));
1321
1359
  const leaderboardRows = (_b = leaderboardData === null || leaderboardData === void 0 ? void 0 : leaderboardData.userLeaderboard) === null || _b === void 0 ? void 0 : _b.rows;
1322
1360
  const flattenedLeaderboard = getFlattenedLeaderboard(leaderboardRows);
1323
1361
  const sortedLeaderboard = flattenedLeaderboard === null || flattenedLeaderboard === void 0 ? void 0 : flattenedLeaderboard.sort(function (a, b) {
@@ -1361,8 +1399,6 @@ function useLeaderboard(props) {
1361
1399
  },
1362
1400
  elements: {
1363
1401
  empty: props.empty,
1364
- essentials: props.essentials,
1365
- loadingstate: props.loadingstate,
1366
1402
  },
1367
1403
  };
1368
1404
  }
@@ -1370,6 +1406,12 @@ function useLeaderboard(props) {
1370
1406
  const Leaderboard = class {
1371
1407
  constructor(hostRef) {
1372
1408
  registerInstance(this, hostRef);
1409
+ /**
1410
+ * Restrict the width of the leaderboard (Can be a pixel value or a percentage i.e. "500px", "33%", etc.)
1411
+ *
1412
+ * @uiName Width
1413
+ */
1414
+ this.width = "100%";
1373
1415
  /**
1374
1416
  * Hide the viewer's leaderboard row if not in the top results.
1375
1417
  *
@@ -1378,12 +1420,16 @@ const Leaderboard = class {
1378
1420
  */
1379
1421
  this.hideViewer = false;
1380
1422
  /**
1381
- * Hides the leaderboard if user is on Essentials plan
1423
+ * @uiName Viewing user text
1424
+ */
1425
+ this.viewingUserText = "You";
1426
+ /**
1427
+ * Hide the Names of users to protect personal identifiable information
1382
1428
  *
1383
- * @uiName Hide viewing user
1429
+ * @uiName Hide users names
1384
1430
  * @default
1385
1431
  */
1386
- this.isEssentials = false;
1432
+ this.hideNames = false;
1387
1433
  /**
1388
1434
  * Title displayed for users without names
1389
1435
  * @uiName Unknown user text
@@ -1403,8 +1449,6 @@ const Leaderboard = class {
1403
1449
  render() {
1404
1450
  const props = {
1405
1451
  empty: h$1(EmptySlot, null),
1406
- essentials: h$1(EssentialsSlot, null),
1407
- loadingstate: h$1(LoadingSlot, null),
1408
1452
  usersheading: this.usersheading,
1409
1453
  statsheading: this.statsheading,
1410
1454
  rankheading: this.rankheading,
@@ -1415,8 +1459,11 @@ const Leaderboard = class {
1415
1459
  anonymousUser: this.anonymousUser,
1416
1460
  interval: this.interval,
1417
1461
  hideViewer: this.hideViewer,
1462
+ viewingUserText: this.viewingUserText,
1463
+ hideNames: this.hideNames,
1418
1464
  showRank: this.showRank,
1419
- isEssentials: this.isEssentials,
1465
+ rankSuffix: this.rankSuffix,
1466
+ width: this.width,
1420
1467
  };
1421
1468
  const demoProps = { ...props, demoData: this.demoData };
1422
1469
  const viewprops = isDemo()
@@ -1428,14 +1475,6 @@ const Leaderboard = class {
1428
1475
  function EmptySlot() {
1429
1476
  return (h$1("slot", { name: "empty" }, h$1("sqm-empty", { "empty-state-image": "https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_leaderboard2.png", "empty-state-header": "View your rank in the leaderboard", "empty-state-text": "Be the first to refer a friend and reach the top of the leaderboard" })));
1430
1477
  }
1431
- function EssentialsSlot() {
1432
- return (h$1("slot", { name: "essentials" }, h$1("sqm-empty", { "empty-state-image": "https://res.cloudinary.com/saasquatch/image/upload/v1715360191/squatch-assets/Leaderboard_Not_Available.svg", "empty-state-header": "Leaderboards aren\u2019t available on your plan", "empty-state-text": "Contact {supportText} to upgrade your plan and start leveraging gamification in your program.", "support-text": "Support", "missing-feature": "Leaderboards" })));
1433
- }
1434
- function LoadingSlot() {
1435
- return (h$1("slot", { name: "loading" }, h$1("table", null, [...Array(10)].map(() => {
1436
- return (h$1("tr", null, h$1("td", null, h$1("sl-skeleton", null))));
1437
- }))));
1438
- }
1439
1478
  function useLeaderboardDemo(props) {
1440
1479
  var _a, _b;
1441
1480
  const data = ((_b = (_a = props.demoData) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.leaderboard) || [
@@ -1491,6 +1530,10 @@ function useLeaderboardDemo(props) {
1491
1530
  : "Anonymous User",
1492
1531
  showRank: props.showRank,
1493
1532
  hideViewer: props.hideViewer,
1533
+ viewingUserText: props.viewingUserText,
1534
+ hideNames: props.hideNames,
1535
+ rankSuffix: props.rankSuffix,
1536
+ width: props.width,
1494
1537
  },
1495
1538
  },
1496
1539
  data: {
@@ -1499,8 +1542,6 @@ function useLeaderboardDemo(props) {
1499
1542
  },
1500
1543
  elements: {
1501
1544
  empty: h$1(EmptySlot, null),
1502
- essentials: h$1(EssentialsSlot, null),
1503
- loadingstate: h$1(LoadingSlot, null),
1504
1545
  },
1505
1546
  }, props.demoData || {}, { arrayMerge: (_, a) => a });
1506
1547
  }
@@ -4,7 +4,7 @@ import { i as intl } from './global-04c7d3b5.js';
4
4
  import './index.module-def4aec5.js';
5
5
  import './JSS-67b5cff8.js';
6
6
  import { g as getProps } from './utils-334c1e34.js';
7
- import { P as PortalContainerView, a as PortalSectionView } from './sqm-portal-container-view-ab89c6cc.js';
7
+ import { P as PortalContainerView, a as PortalSectionView } from './sqm-portal-container-view-6c582684.js';
8
8
 
9
9
  function EmptyStateView(props) {
10
10
  const { emptyStateHeader, emptyStateImage, emptyStateText, supportText, missingFeature = "", } = props;
@@ -67,6 +67,13 @@ const PortalContainer = class {
67
67
  * @uiName Maximum width
68
68
  */
69
69
  this.maxWidth = "100%";
70
+ /**
71
+ * @uiName Flex wrap behavior
72
+ * @uiType string
73
+ * @uiEnum ["wrap", "nowrap"]
74
+ * @uiEnumNames ["Wrap", "No Wrap"]
75
+ */
76
+ this.flexWrap = "wrap";
70
77
  /**
71
78
  * @uiName Background color
72
79
  * @uiWidget color
@@ -27,7 +27,7 @@ function PortalContainerView(props, children) {
27
27
  Container: {
28
28
  boxSizing: "border-box",
29
29
  display: props.display || "grid",
30
- flexWrap: "wrap",
30
+ flexWrap: props.flexWrap || "wrap",
31
31
  "grid-template-columns": props.direction === "row"
32
32
  ? `repeat(auto-fill, minmax(${props.minWidth}, auto))`
33
33
  : "100%",
@@ -24,8 +24,8 @@ import { P as PortalProfileView } from './sqm-portal-profile-view-ffe955c8.js';
24
24
  import './utilities-3f5bba22.js';
25
25
  import { P as PortalResetPasswordView } from './sqm-portal-reset-password-view-79a85e02.js';
26
26
  import { P as PortalVerifyEmailView } from './sqm-portal-verify-email-view-d7ea2c56.js';
27
- import { S as ShareButtonView, L as LeaderboardView, C as CopyTextView, B as BigStatView, P as PortalFrameView, E as EditProfileView, u as useShareLink, a as useShareButton, b as useDemoBigStat, c as StatContainerView, d as PortalChangePasswordView, e as PortalLoginView, f as PortalRegisterView, T as TaskCardView, g as ProgressBarView, h as PoweredByImg$1, i as PortalFooterView, H as HeroView, R as ReferralIframeView, N as NameFieldsView, j as CheckboxFieldView, D as DropdownFieldView, I as InputFieldView, k as RewardExchangeView, r as rewardExchangeCustomErrorMsg, l as rewardExchangeLongText, m as rewardExchangeSelected, n as chooseAmountFixed, o as chooseAmountFixedNoDescription, p as chooseAmountVariable, q as chooseAmountVariableNoDescription, s as chooseAmountVariableDisabled, t as chooseAmountVariableUnavailable, v as confirmFixed, w as confirmVariable, x as redemptionError, y as queryError, z as success, A as successVariable, F as loading, G as empty$1, J as rewardExchange, K as CardFeedView, M as CouponCodeView, O as ProgressBar$2, Q as autoColorScaleCss, U as ShadowViewAddon } from './ShadowViewAddon-31eb5b16.js';
28
- import { P as PortalContainerView, a as PortalSectionView } from './sqm-portal-container-view-ab89c6cc.js';
27
+ import { S as ShareButtonView, L as LeaderboardView, C as CopyTextView, B as BigStatView, P as PortalFrameView, E as EditProfileView, u as useShareLink, a as useShareButton, b as useDemoBigStat, c as StatContainerView, d as PortalChangePasswordView, e as PortalLoginView, f as PortalRegisterView, T as TaskCardView, g as ProgressBarView, h as PoweredByImg$1, i as PortalFooterView, H as HeroView, R as ReferralIframeView, N as NameFieldsView, j as CheckboxFieldView, D as DropdownFieldView, I as InputFieldView, k as RewardExchangeView, r as rewardExchangeCustomErrorMsg, l as rewardExchangeLongText, m as rewardExchangeSelected, n as chooseAmountFixed, o as chooseAmountFixedNoDescription, p as chooseAmountVariable, q as chooseAmountVariableNoDescription, s as chooseAmountVariableDisabled, t as chooseAmountVariableUnavailable, v as confirmFixed, w as confirmVariable, x as redemptionError, y as queryError, z as success, A as successVariable, F as loading, G as empty$1, J as rewardExchange, K as CardFeedView, M as CouponCodeView, O as ProgressBar$2, Q as autoColorScaleCss, U as ShadowViewAddon } from './ShadowViewAddon-e012b2aa.js';
28
+ import { P as PortalContainerView, a as PortalSectionView } from './sqm-portal-container-view-6c582684.js';
29
29
  import { O as OtherRegionSlotView, I as InvoiceTableView, T as TaxForm } from './sqm-invoice-table-view-34ac7513.js';
30
30
 
31
31
  /**
@@ -1600,8 +1600,8 @@ const SlottedIntoComponent = () => {
1600
1600
  data: {
1601
1601
  rankType: "rowNumber",
1602
1602
  leaderboard: [],
1603
- showUser: true,
1604
1603
  rowNumber: 10,
1604
+ showUser: true,
1605
1605
  userRank: {
1606
1606
  firstName: "Kutay",
1607
1607
  lastInitial: "C",
@@ -1809,7 +1809,7 @@ const BigStat = /*#__PURE__*/Object.freeze({
1809
1809
  MultipleStats: MultipleStats
1810
1810
  });
1811
1811
 
1812
- const scenario$4 = "@owner:noah @author:noah\nFeature: Leaderboard\n\tThe leaderboard supports three main cases\n\t- Top Started Referrers\n\t- Top Converted Referrers\n\t- Top Point Earners\n\tTo display these different types of leaderboards it uses the backends pre-canned options.\n\tThe backend supports filtering on programId and interval, programId is sourced from program context.\n\n Background: A user exists\n Given a user\n And they are viewing the leaderboard\n\n @motivating\n Scenario Outline: Two types of referrals leaderboards can be displayed\n Given a leaderboard has prop \"leaderboard-type\" with <value>\n And there are started referrals on the tenant\n And there are started converted on the tenant\n When the user views the leaderboard\n Then they see the referral <referralType> leaderboard\n\n Examples:\n | value | referralType |\n | topStartedReferrers | started |\n | topConvertedReferrers | converted |\n\n @motivating\n Scenario: The top point earners leaderboard can be displayed\n Given a leaderboard has prop \"leaderboard-type\" with value \"topPointEarners\"\n And there are users with points\n When the user views the leaderboard\n Then they see the top point earners leaderboard\n And text values are displayed for point counts\n\n @minutia\n Scenario Outline: Reward pretty value is used on the top point earners leaderboard\n Given top point earners leaderboard\n And the \"POINT\" reward unit has a pretty value for the following locales\n | locale |\n | en |\n | fr |\n | tr |\n When the user views the leaderboard\n And they have <locale>\n Then they see the translated pretty value in the stat value column\n\n @motivating\n Scenario Outline: Program Context is used by default to filter leaderboard results\n Given a <leaderboardType> leaderboard loaded with program context for \"my-program\"\n When the user views the leaderboard\n Then they only see <results> from \"my-program\"\n\n Examples:\n | leaderboardType | results |\n | topStartedReferrers | started referrals |\n | topConvertedReferrers | converted referrals |\n | topPointEarners | points earned |\n\n @motivating\n Scenario Outline: Program Id context can be overwritten with a prop\n Given a <leaderboardType> leaderboard has prop \"program-Id\" with value \"my-test-program\"\n When the user views the leaderboard\n Then they only see <results> from \"my-test-program\"\n\n Examples:\n | leaderboardType | results |\n | topStartedReferrers | started referrals |\n | topConvertedReferrers | converted referrals |\n | topPointEarners | points earned |\n\n @motivating\n Scenario Outline: Global leaderboards can be displayed by clearing program context\n\t\t#This is important for clients with use cases like StaffTracks global points leaderboard\n\t\t#This can also be done with a program section in a similar manner\n Given a <leaderboardType> leaderboard has prop \"program-Id\" with value \"\"\n When the user views the leaderboard\n Then they see global <results>\n\n Examples:\n | leaderboardType | results |\n | topStartedReferrers | started referrals |\n | topConvertedReferrers | converted referrals |\n | topPointEarners | points earned |\n\n @motivating\n Scenario: Leaderboard results are shown in descending order\n Given there are leaderboard results\n When the user views the leaderboard\n Then they see up to the 10 top leaderboard results\n And leaderboard is in descending order\n\n @motivating\n Scenario Outline: Leaderboard results can be filtered with a time interval\n Given a <leaderboardType> leaderboard\n And it has prop \"interval\" with value \"2021-11-02T07:00:00.000Z/2021-11-07T07:00:00.000Z\"\n When the user views the leaderboard\n Then they only see <results> from within \"2021-11-02T07:00:00.000Z/2021-11-07T07:00:00.000Z\"\n\n Examples:\n | leaderboardType | results |\n | topStartedReferrers | started referrals |\n | topConvertedReferrers | converted referrals |\n | topPointEarners | points earned |\n\n @motivating\n Scenario Outline: Leaderboard rank type can be configured\n Given a leaderboard has prop \"rank-type\" with <value>\n When the user views the leaderboard\n Then their leaderboard rank is their <rank>\n\n Examples:\n | value | rank |\n | rowNumber | row number |\n | denseRank | dense rank |\n | rank | rank |\n\n @minutia\n Scenario Outline: The max number of leaderboard rows displayed can be configured but defaults to 10\n Given a leaderboard has prop \"max-rows\" with <value>\n And the leaderboard has <resultCount>\n When the user views the leaderboard\n Then they see <number> rows\n\n Examples:\n | value | resultCount | number |\n | | 10 | 10 |\n | 5 | 10 | 5 |\n | 3 | 1 | 1 |\n | 25 | 15 | 15 |\n\n @minutiae @ui\n Scenario: Leaderboards with no results show an empty state\n Given a leaderboard has no results\n When the user views the leaderboard\n Then an empty state is dislayed\n And they see an image of a leaderboard\n And below they see \"View your rank in the leaderboard\"\n And below they see \"Be the first to refer a friend and reach the top of the leaderboard\"\n And the text is center aligned\n\n @minutiae @ui\n Scenario: A custom empty state can be provided\n Given a leaderboard has no results\n When the user views the leaderboard\n Then the contents of the \"empty\" slot are displayed\n\n @minutiae @ui\n Scenario: User is on Essentials plan\n Given the user has an Essentials plan\n When they view the leaderboard\n Then a message telling them to upgrade their plan appears:\n \"\"\"\n Contact Support to upgrade your plan and start leveraging\n gamification in your program.\n \"\"\"\n And an empty table image is displayed\n\n @minutiae @ui\n Scenario: Leaderboard headings can be customized\n Given a leaderboard\n And it has the following props\n | prop | value |\n | rankheading | Place |\n | usersheading | Customer |\n | statsheading | Referral Count |\n | show-rank | true |\n When the user views the leaderboard\n Then they see the following columns with headings\n | column | heading |\n | rank | Place |\n | user | Customer |\n | stat | Referral Count |\n\n @motivating @ui\n Scenario Outline: Leaderboard rank can be hidden or shown\n Given a leaderboard\n And it has prop \"show-rank\" with <propValue>\n When the user views the leaderboard\n Then they <maySee> the rank column\n\n Examples:\n | propValue | maySee |\n | true | see |\n | false | don't see |\n | | don't see |\n\n @motivating @ui\n Scenario: Users in the top 10 of the leaderboard results see their leaderboard row highlighted\n Given a user in the top 10 of the leaderboard results\n When they view the leaderboard\n Then they see the row with their name highlighted with brand colour\n\n @motivating @ui\n Scenario Outline: Users not in the top 10 leaderboard results can see their progress at the bottom of the leaderboard\n Given a user <mayHave> completed actions counted by the leaderboard\n And they are not in the top 10 leaderboard results\n And the leaderboard has prop \"show-user\" with <value>\n When they view the leaderboard\n Then they <maySee> \"...\" under the top 10 leaderboard results\n And under \"...\" they <maySee> a row highlighted with brand colour\n And they <maySee> their name\n And they <maySee> their leaderboard value\n And they <maySeeRank>\n\n Examples:\n | mayHave | value | maySee | maySeeRank |\n | has | true | see | see their rank |\n | hasn't | true | see | don't see their rank |\n | N/A | false | don't see | don't see their rank |\n | hasn't | | see | don't see their rank |\n\n @minutiae\n Scenario: Users without names are displayed as an \"Anonymous User\"\n Given a user\n And they do not have a first name\n And they do not have a last initial\n When they view the leaderboard\n Then they see the user displayed as \"Anonymous User\"\n\n @minutiae\n Scenario Outline: If a user only has a first or last name, then only that is displayed\n Given a user\n And they only have a <name>\n When they view the leaderboard\n Then they only see their <name>\n\n Examples:\n | name |\n | firstName |\n | lastName |\n";
1812
+ const scenario$4 = "@owner:noah @author:noah\nFeature: Leaderboard\n\tThe leaderboard supports three main cases\n\t- Top Started Referrers\n\t- Top Converted Referrers\n\t- Top Point Earners\n\tTo display these different types of leaderboards it uses the backends pre-canned options.\n\tThe backend supports filtering on programId and interval, programId is sourced from program context.\n\n Background: A user exists\n Given a user\n And they are viewing the leaderboard\n\n @motivating\n Scenario Outline: Two types of referrals leaderboards can be displayed\n Given a leaderboard has prop \"leaderboard-type\" with <value>\n And there are started referrals on the tenant\n And there are started converted on the tenant\n When the user views the leaderboard\n Then they see the referral <referralType> leaderboard\n\n Examples:\n | value | referralType |\n | topStartedReferrers | started |\n | topConvertedReferrers | converted |\n\n @motivating\n Scenario: The top point earners leaderboard can be displayed\n Given a leaderboard has prop \"leaderboard-type\" with value \"topPointEarners\"\n And there are users with points\n When the user views the leaderboard\n Then they see the top point earners leaderboard\n And text values are displayed for point counts\n\n @minutia\n Scenario Outline: Reward pretty value is used on the top point earners leaderboard\n Given top point earners leaderboard\n And the \"POINT\" reward unit has a pretty value for the following locales\n | locale |\n | en |\n | fr |\n | tr |\n When the user views the leaderboard\n And they have <locale>\n Then they see the translated pretty value in the stat value column\n\n @motivating\n Scenario Outline: Program Context is used by default to filter leaderboard results\n Given a <leaderboardType> leaderboard loaded with program context for \"my-program\"\n When the user views the leaderboard\n Then they only see <results> from \"my-program\"\n\n Examples:\n | leaderboardType | results |\n | topStartedReferrers | started referrals |\n | topConvertedReferrers | converted referrals |\n | topPointEarners | points earned |\n\n @motivating\n Scenario Outline: Program Id context can be overwritten with a prop\n Given a <leaderboardType> leaderboard has prop \"program-Id\" with value \"my-test-program\"\n When the user views the leaderboard\n Then they only see <results> from \"my-test-program\"\n\n Examples:\n | leaderboardType | results |\n | topStartedReferrers | started referrals |\n | topConvertedReferrers | converted referrals |\n | topPointEarners | points earned |\n\n @motivating\n Scenario Outline: Global leaderboards can be displayed by clearing program context\n\t\t#This is important for clients with use cases like StaffTracks global points leaderboard\n\t\t#This can also be done with a program section in a similar manner\n Given a <leaderboardType> leaderboard has prop \"program-Id\" with value \"\"\n When the user views the leaderboard\n Then they see global <results>\n\n Examples:\n | leaderboardType | results |\n | topStartedReferrers | started referrals |\n | topConvertedReferrers | converted referrals |\n | topPointEarners | points earned |\n\n @motivating\n Scenario: Leaderboard results are shown in descending order\n Given there are leaderboard results\n When the user views the leaderboard\n Then they see up to the 10 top leaderboard results\n And leaderboard is in descending order\n\n @motivating\n Scenario Outline: Leaderboard results can be filtered with a time interval\n Given a <leaderboardType> leaderboard\n And it has prop \"interval\" with value \"2021-11-02T07:00:00.000Z/2021-11-07T07:00:00.000Z\"\n When the user views the leaderboard\n Then they only see <results> from within \"2021-11-02T07:00:00.000Z/2021-11-07T07:00:00.000Z\"\n\n Examples:\n | leaderboardType | results |\n | topStartedReferrers | started referrals |\n | topConvertedReferrers | converted referrals |\n | topPointEarners | points earned |\n\n @motivating\n Scenario Outline: Leaderboard rank type can be configured\n Given a leaderboard has prop \"rank-type\" with <value>\n When the user views the leaderboard\n Then their leaderboard rank is their <rank>\n\n Examples:\n | value | rank |\n | rowNumber | row number |\n | denseRank | dense rank |\n | rank | rank |\n\n @minutia\n Scenario Outline: The max number of leaderboard rows displayed can be configured but defaults to 10\n Given a leaderboard has prop \"max-rows\" with <value>\n And the leaderboard has <resultCount>\n When the user views the leaderboard\n Then they see <number> rows\n\n Examples:\n | value | resultCount | number |\n | | 10 | 10 |\n | 5 | 10 | 5 |\n | 3 | 1 | 1 |\n | 25 | 15 | 15 |\n\n @minutiae @ui\n Scenario: Leaderboards with no results show an empty state\n Given a leaderboard has no results\n When the user views the leaderboard\n Then an empty state is dislayed\n And they see an image of a leaderboard\n And below they see \"View your rank in the leaderboard\"\n And below they see \"Be the first to refer a friend and reach the top of the leaderboard\"\n And the text is center aligned\n\n @minutiae @ui\n Scenario: A custom empty state can be provided\n Given a leaderboard has no results\n When the user views the leaderboard\n Then the contents of the \"empty\" slot are displayed\n\n @minutiae @ui\n Scenario: User is on Essentials plan\n Given the user has an Essentials plan\n When they view the leaderboard\n Then a message telling them to upgrade their plan appears:\n \"\"\"\n Contact Support to upgrade your plan and start leveraging\n gamification in your program.\n \"\"\"\n And an empty table image is displayed\n\n @minutiae @ui\n Scenario: Leaderboard headings can be customized\n Given a leaderboard\n And it has the following props\n | prop | value |\n | rankheading | Place |\n | usersheading | Customer |\n | statsheading | Referral Count |\n | show-rank | true |\n When the user views the leaderboard\n Then they see the following columns with headings\n | column | heading |\n | rank | Place |\n | user | Customer |\n | stat | Referral Count |\n\n @motivating @ui\n Scenario Outline: Leaderboard rank can be hidden or shown\n Given a leaderboard\n And it has prop \"show-rank\" with <propValue>\n When the user views the leaderboard\n Then they <maySee> the rank column\n\n Examples:\n | propValue | maySee |\n | true | see |\n | false | don't see |\n | | don't see |\n\n Scenario Outline: Users names can be hidden or shown\n Given a leaderboard\n And it has prop \"hide-names\" with <propValue>\n When the user views the leaderboard\n Then they <maySee> the referrer column\n\n Examples:\n | propValue | maySee |\n | true | don't see |\n | false | see |\n | | see |\n\n @motivating @ui\n Scenario: Users in the top 10 of the leaderboard results see their leaderboard row highlighted\n Given a user in the top 10 of the leaderboard results\n When they view the leaderboard\n Then they see the row with their name highlighted with brand colour\n\n @motivating @ui\n Scenario Outline: Users not in the top 10 leaderboard results can see their progress at the bottom of the leaderboard\n Given a user <mayHave> completed actions counted by the leaderboard\n And they are not in the top 10 leaderboard results\n And the leaderboard has prop \"show-user\" with <value>\n When they view the leaderboard\n Then they <maySee> \"...\" under the top 10 leaderboard results\n And under \"...\" they <maySee> a row highlighted with brand colour\n And they <maySee> their name\n And they <maySee> their leaderboard value\n And they <maySeeRank>\n\n Examples:\n | mayHave | value | maySee | maySeeRank |\n | has | true | see | see their rank |\n | hasn't | true | see | don't see their rank |\n | N/A | false | don't see | don't see their rank |\n | hasn't | | see | don't see their rank |\n\n @minutiae\n Scenario: Users without names are displayed as an \"Anonymous User\"\n Given a user\n And they do not have a first name\n And they do not have a last initial\n When they view the leaderboard\n Then they see the user displayed as \"Anonymous User\"\n\n @minutiae\n Scenario Outline: If a user only has a first or last name, then only that is displayed\n Given a user\n And they only have a <name>\n When they view the leaderboard\n Then they only see their <name>\n\n Examples:\n | name |\n | firstName |\n | lastName |\n";
1813
1813
 
1814
1814
  const Leaderboard_stories = {
1815
1815
  title: "Components/Leaderboard",
@@ -1891,8 +1891,8 @@ const users = [
1891
1891
  ];
1892
1892
  const pointsUsers = [
1893
1893
  {
1894
- firstName: "",
1895
- lastInitial: "",
1894
+ firstName: "Tom",
1895
+ lastInitial: "Smith",
1896
1896
  textValue: "82 Points",
1897
1897
  rank: 1,
1898
1898
  rowNumber: 1,
@@ -1966,17 +1966,12 @@ const defaultStyles$1 = {
1966
1966
  statsheading: "Referrals",
1967
1967
  rankheading: "Rank",
1968
1968
  anonymousUser: "Anonymous User",
1969
+ viewingUserText: "You",
1970
+ rankSuffix: "{rank, selectordinal, one {#st} two {#nd} few {#rd} other {#th}}",
1969
1971
  };
1970
1972
  const link = h("a", null, "Support");
1971
1973
  const defaultElements$1 = {
1972
1974
  empty: (h("sqm-empty", { "empty-state-image": "https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_leaderboard2.png", "empty-state-header": "View your rank in the leaderboard", "empty-state-text": "Be the first to refer a friend and reach the top of the leaderboard" })),
1973
- essentials: (h("sqm-empty", { "empty-state-image": "https://res.cloudinary.com/saasquatch/image/upload/v1715360191/squatch-assets/Leaderboard_Not_Available.svg", "empty-state-header": "Leaderboards aren\u2019t available on your plan", "empty-state-text": "Contact {supportText} to upgrade your plan and start leveraging gamification in your program.", "support-text": "Support" })),
1974
- loadingstate: (h("slot", { name: "loading" },
1975
- h("table", null, [...Array(10)].map(() => {
1976
- return (h("tr", null,
1977
- h("td", null,
1978
- h("sl-skeleton", null))));
1979
- })))),
1980
1975
  };
1981
1976
  const Empty$1 = () => {
1982
1977
  const props = {
@@ -2005,11 +2000,10 @@ const Empty$1 = () => {
2005
2000
  };
2006
2001
  return h(LeaderboardView, Object.assign({}, props));
2007
2002
  };
2008
- const Essentials = () => {
2003
+ const Loading = () => {
2009
2004
  const props = {
2010
2005
  states: {
2011
- loading: false,
2012
- isEssentials: true,
2006
+ loading: true,
2013
2007
  hasLeaders: false,
2014
2008
  styles: {
2015
2009
  ...defaultStyles$1,
@@ -2017,15 +2011,8 @@ const Essentials = () => {
2017
2011
  },
2018
2012
  data: {
2019
2013
  rankType: "rowNumber",
2020
- leaderboard: [],
2021
2014
  rowNumber: 10,
2022
- viewerRank: {
2023
- firstName: "Kutay",
2024
- lastInitial: "C",
2025
- textValue: "8",
2026
- rowNumber: 11,
2027
- rank: 23,
2028
- },
2015
+ leaderboard: [],
2029
2016
  },
2030
2017
  elements: {
2031
2018
  ...defaultElements$1,
@@ -2033,10 +2020,11 @@ const Essentials = () => {
2033
2020
  };
2034
2021
  return h(LeaderboardView, Object.assign({}, props));
2035
2022
  };
2036
- const Loading = () => {
2023
+ const Essentials = () => {
2037
2024
  const props = {
2038
2025
  states: {
2039
- loading: true,
2026
+ loading: false,
2027
+ isEssentials: true,
2040
2028
  hasLeaders: false,
2041
2029
  styles: {
2042
2030
  ...defaultStyles$1,
@@ -2044,8 +2032,15 @@ const Loading = () => {
2044
2032
  },
2045
2033
  data: {
2046
2034
  rankType: "rowNumber",
2047
- rowNumber: 10,
2048
2035
  leaderboard: [],
2036
+ rowNumber: 10,
2037
+ viewerRank: {
2038
+ firstName: "Kutay",
2039
+ lastInitial: "C",
2040
+ textValue: "8",
2041
+ rowNumber: 11,
2042
+ rank: 23,
2043
+ },
2049
2044
  },
2050
2045
  elements: {
2051
2046
  ...defaultElements$1,
@@ -2182,6 +2177,38 @@ const ReferralLeaderboard = () => {
2182
2177
  };
2183
2178
  return h(LeaderboardView, Object.assign({}, props));
2184
2179
  };
2180
+ const ReferralLeaderboardWithMaxWidth = () => {
2181
+ const props = {
2182
+ states: {
2183
+ loading: false,
2184
+ hasLeaders: true,
2185
+ styles: {
2186
+ ...defaultStyles$1,
2187
+ rankheading: "Rank",
2188
+ usersheading: "User",
2189
+ statsheading: "Referrals",
2190
+ showRank: false,
2191
+ maxWidth: "300px",
2192
+ },
2193
+ },
2194
+ data: {
2195
+ rankType: "rowNumber",
2196
+ leaderboard: users,
2197
+ rowNumber: 10,
2198
+ viewerRank: {
2199
+ firstName: "Viktor",
2200
+ lastInitial: "V",
2201
+ textValue: "82",
2202
+ rank: 1,
2203
+ rowNumber: 1,
2204
+ },
2205
+ },
2206
+ elements: {
2207
+ ...defaultElements$1,
2208
+ },
2209
+ };
2210
+ return h(LeaderboardView, Object.assign({}, props));
2211
+ };
2185
2212
  const PointsLeaderboard = () => {
2186
2213
  const props = {
2187
2214
  states: {
@@ -2260,7 +2287,7 @@ const ViewerOutside = () => {
2260
2287
  lastInitial: "C",
2261
2288
  textValue: "8",
2262
2289
  rowNumber: 11,
2263
- rank: 23,
2290
+ rank: 24,
2264
2291
  },
2265
2292
  },
2266
2293
  elements: {
@@ -2291,6 +2318,33 @@ const ViewerAnonymous = () => {
2291
2318
  };
2292
2319
  return h(LeaderboardView, Object.assign({}, props));
2293
2320
  };
2321
+ const HideNamesWithViewerOutside = () => {
2322
+ const props = {
2323
+ states: {
2324
+ loading: false,
2325
+ hasLeaders: true,
2326
+ styles: {
2327
+ ...defaultStyles$1,
2328
+ showRank: true,
2329
+ hideNames: true,
2330
+ },
2331
+ },
2332
+ data: {
2333
+ rankType: "rowNumber",
2334
+ leaderboard: users,
2335
+ rowNumber: 10,
2336
+ viewerRank: {
2337
+ textValue: "8",
2338
+ rowNumber: 11,
2339
+ rank: 42,
2340
+ },
2341
+ },
2342
+ elements: {
2343
+ ...defaultElements$1,
2344
+ },
2345
+ };
2346
+ return h(LeaderboardView, Object.assign({}, props));
2347
+ };
2294
2348
  const HideViewer = () => {
2295
2349
  const props = {
2296
2350
  states: {
@@ -2321,21 +2375,77 @@ const HideViewer = () => {
2321
2375
  };
2322
2376
  return h(LeaderboardView, Object.assign({}, props));
2323
2377
  };
2378
+ const HideNames = () => {
2379
+ const props = {
2380
+ states: {
2381
+ loading: false,
2382
+ hasLeaders: true,
2383
+ rowNumber: 10,
2384
+ styles: {
2385
+ ...defaultStyles$1,
2386
+ showRank: true,
2387
+ hideNames: true,
2388
+ },
2389
+ },
2390
+ data: {
2391
+ rankType: "rowNumber",
2392
+ leaderboard: users,
2393
+ rowNumber: 10,
2394
+ viewerRank: {
2395
+ firstName: "Viktor",
2396
+ lastInitial: "V",
2397
+ textValue: "82",
2398
+ rowNumber: 1,
2399
+ rank: 1,
2400
+ },
2401
+ },
2402
+ elements: {
2403
+ ...defaultElements$1,
2404
+ },
2405
+ };
2406
+ return h(LeaderboardView, Object.assign({}, props));
2407
+ };
2408
+ const LeaderboardWithNoNamesAndGraphic = () => {
2409
+ return (h("div", { style: {
2410
+ display: "flex",
2411
+ alignItems: "flex-start",
2412
+ justifyContent: "center",
2413
+ width: "100%",
2414
+ gap: "50px",
2415
+ } },
2416
+ h("div", { style: {
2417
+ display: "flex",
2418
+ flexDirection: "column",
2419
+ alignItems: "center",
2420
+ justifyContent: "center",
2421
+ gap: "10px",
2422
+ maxWidth: "30%",
2423
+ } },
2424
+ h("sqm-image", { width: "70%", alignment: "center", imageUrl: "https://res.cloudinary.com/saasquatch-staging/image/upload/v1729728469/Leaderboard_image_z87lsm.png" }),
2425
+ h("h2", { style: { margin: "auto" } }, " Top Performers"),
2426
+ h("p", { style: { margin: "0" } }, "The leaderboard highlights the top performers in real-time. Stay motivated, stay competitive!")),
2427
+ h("sqm-leaderboard", { width: "300px", usersheading: "Referrer", statsheading: "Referrals", "rank-type": "rank", "leaderboard-type": "topStartedReferrers", rankheading: "Rank", "show-rank": "true", "hide-names": "true", "hide-viewer": "true" },
2428
+ h("sqm-empty", { "empty-state-image": "https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_leaderboard2.png", "empty-state-header": "View your rank in the leaderboard", "empty-state-text": "Be the first to refer a friend and reach the top of the leaderboard" }))));
2429
+ };
2324
2430
 
2325
2431
  const Leaderboard = /*#__PURE__*/Object.freeze({
2326
2432
  __proto__: null,
2327
2433
  'default': Leaderboard_stories,
2328
2434
  Empty: Empty$1,
2329
- Essentials: Essentials,
2330
2435
  Loading: Loading,
2436
+ Essentials: Essentials,
2331
2437
  One: One,
2332
2438
  Five: Five,
2333
2439
  ReferralLeaderboard: ReferralLeaderboard,
2440
+ ReferralLeaderboardWithMaxWidth: ReferralLeaderboardWithMaxWidth,
2334
2441
  PointsLeaderboard: PointsLeaderboard,
2335
2442
  TenWithRank: TenWithRank,
2336
2443
  ViewerOutside: ViewerOutside,
2337
2444
  ViewerAnonymous: ViewerAnonymous,
2338
- HideViewer: HideViewer
2445
+ HideNamesWithViewerOutside: HideNamesWithViewerOutside,
2446
+ HideViewer: HideViewer,
2447
+ HideNames: HideNames,
2448
+ LeaderboardWithNoNamesAndGraphic: LeaderboardWithNoNamesAndGraphic
2339
2449
  });
2340
2450
 
2341
2451
  const HookStoryAddon = ({ story }, children) => {
@@ -11554,6 +11664,18 @@ const SpaceEvenly = () => {
11554
11664
  h("p", null, "Points Balance")))),
11555
11665
  h("sqm-scroll", { "scroll-id": "tab-2", outline: true, "button-type": "primary", "button-text": "Redeem your rewards", mobile: true }))));
11556
11666
  };
11667
+ const ResponsiveBox = () => {
11668
+ return (h("div", { style: { width: "100%", maxWidth: "1000px", border: "1px dashed grey" } },
11669
+ h("sqm-portal-container", { center: true, direction: "row", display: "flex", "justify-content": "space-between", "flex-wrap": "nowrap" },
11670
+ h("sqm-stat-container", { space: "xxx-large", display: "flex" },
11671
+ h("sqm-big-stat", { "flex-reverse": "true", alignment: "left", "stat-type": "/rewardsRedeemed/CREDIT/global" },
11672
+ h("sqm-text", null,
11673
+ h("p", null, "Rewards Redeemed"))),
11674
+ h("sqm-big-stat", { "flex-reverse": "true", alignment: "left", "stat-type": "/rewardBalance/CREDIT/POINT/value/global" },
11675
+ h("sqm-text", null,
11676
+ h("p", null, "Points Balance")))),
11677
+ h("sqm-scroll", { "scroll-id": "tab-2", outline: true, "button-type": "primary", "button-text": "Redeem your rewards", mobile: true }))));
11678
+ };
11557
11679
  const Start$1 = () => {
11558
11680
  return (h("div", { style: { width: "1000px", border: "1px dashed grey" } },
11559
11681
  h("sqm-portal-container", { center: true, direction: "row", display: "flex", "justify-content": "start" },
@@ -11617,6 +11739,7 @@ const PortalContainer = /*#__PURE__*/Object.freeze({
11617
11739
  SpaceBetween: SpaceBetween,
11618
11740
  SpaceAround: SpaceAround,
11619
11741
  SpaceEvenly: SpaceEvenly,
11742
+ ResponsiveBox: ResponsiveBox,
11620
11743
  Start: Start$1,
11621
11744
  Center: Center,
11622
11745
  End: End,