@saasquatch/mint-components 1.5.0-69 → 1.5.0-72

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 (177) hide show
  1. package/dist/cjs/{GenericTableView-65598160.js → GenericTableView-2cdb4c5d.js} +5 -8
  2. package/dist/cjs/{ShadowViewAddon-25f524e4.js → ShadowViewAddon-fbbacd12.js} +25 -50
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/cjs/mint-components.cjs.js +1 -1
  5. package/dist/cjs/sqm-brand_28.cjs.entry.js +24 -20
  6. package/dist/cjs/sqm-image_4.cjs.entry.js +1 -1
  7. package/dist/cjs/{sqm-portal-container-view-3bc23603.js → sqm-portal-container-view-fdfb3656.js} +1 -1
  8. package/dist/cjs/{sqm-portal-profile-view-25537e0b.js → sqm-portal-profile-view-637d2fe7.js} +1 -1
  9. package/dist/cjs/sqm-portal-profile.cjs.entry.js +2 -2
  10. package/dist/cjs/sqm-referral-table_11.cjs.entry.js +10 -351
  11. package/dist/cjs/sqm-rewards-table_9.cjs.entry.js +45 -28
  12. package/dist/cjs/sqm-stencilbook.cjs.entry.js +198 -105
  13. package/dist/cjs/sqm-tab-group.cjs.entry.js +20 -0
  14. package/dist/cjs/sqm-tab-panel.cjs.entry.js +20 -0
  15. package/dist/cjs/sqm-tab.cjs.entry.js +20 -0
  16. package/dist/cjs/useReferralTable-e473585e.js +348 -0
  17. package/dist/collection/collection-manifest.json +5 -2
  18. package/dist/collection/components/sqm-brand/sqm-brand.js +3 -0
  19. package/dist/collection/components/sqm-hero-image/sqm-hero-image.js +2 -2
  20. package/dist/collection/components/sqm-leaderboard/Leaderboard.stories.js +0 -3
  21. package/dist/collection/components/sqm-leaderboard/sqm-leaderboard-view.js +0 -1
  22. package/dist/collection/components/sqm-leaderboard/sqm-leaderboard.js +23 -10
  23. package/dist/collection/components/sqm-navigation-sidebar-item/sqm-navigation-sidebar-item.js +1 -1
  24. package/dist/collection/components/sqm-portal-container/PortalContainer.stories.js +5 -0
  25. package/dist/collection/components/sqm-portal-container/sqm-portal-container-view.js +1 -1
  26. package/dist/collection/components/sqm-portal-container/sqm-portal-container.js +20 -0
  27. package/dist/collection/components/sqm-program-explainer-step/sqm-program-explainer-step.js +6 -3
  28. package/dist/collection/components/sqm-referral-card/ReferralCard.stories.js +2 -65
  29. package/dist/collection/components/sqm-referral-card/sqm-referral-card.js +2 -42
  30. package/dist/collection/components/sqm-referral-table/ReferralTable.stories.js +41 -49
  31. package/dist/collection/components/sqm-referral-table/sqm-referral-table.js +17 -19
  32. package/dist/collection/components/sqm-referral-table/useReferralTable.js +345 -5
  33. package/dist/collection/components/sqm-reward-exchange-list/RewardExchangeListData.js +1 -1
  34. package/dist/collection/components/sqm-reward-exchange-list/assets/Reward-image.png +0 -0
  35. package/dist/collection/components/sqm-reward-exchange-list/sqm-reward-exchange-list-view.js +3 -3
  36. package/dist/collection/components/sqm-rewards-table/RewardsTable.stories.js +44 -932
  37. package/dist/collection/components/sqm-rewards-table/RewardsTableCell.stories.js +35 -4
  38. package/dist/collection/components/sqm-rewards-table/cells/sqm-rewards-table-source-cell.js +5 -1
  39. package/dist/collection/components/sqm-rewards-table/cells/sqm-rewards-table-status-cell.js +77 -2
  40. package/dist/collection/components/sqm-rewards-table/columns/sqm-rewards-table-source-column.js +2 -2
  41. package/dist/collection/components/sqm-rewards-table/sqm-rewards-table.js +20 -23
  42. package/dist/collection/components/sqm-rewards-table/useRewardsTable.js +6 -9
  43. package/dist/collection/components/sqm-share-button/ShareButton.stories.js +1 -1
  44. package/dist/collection/components/sqm-share-button/sqm-share-button-view.js +16 -40
  45. package/dist/collection/components/sqm-share-button/sqm-share-button.js +9 -3
  46. package/dist/collection/components/sqm-stencilbook/sqm-stencilbook.js +2 -0
  47. package/dist/collection/components/sqm-tab/sqm-tab.js +19 -0
  48. package/dist/collection/components/sqm-tab-group/sqm-tab-group.js +19 -0
  49. package/dist/collection/components/sqm-tab-panel/sqm-tab-panel.js +19 -0
  50. package/dist/collection/components/sqm-task-card/TaskCard.stories.js +3 -10
  51. package/dist/collection/components/sqm-task-card/sqm-task-card-view.js +5 -5
  52. package/dist/collection/components/sqm-task-card/sqm-task-card.js +1 -33
  53. package/dist/collection/components/{sqm-referral-card → sqm-timeline}/SVGs.js +0 -0
  54. package/dist/collection/components/sqm-timeline/Timeline.stories.js +64 -0
  55. package/dist/collection/components/{sqm-referral-card → sqm-timeline}/sqm-timeline-entry.js +0 -0
  56. package/dist/collection/components/{sqm-referral-card → sqm-timeline}/sqm-timeline.js +2 -0
  57. package/dist/collection/components/sqm-titled-section/TitledSection.stories.js +16 -6
  58. package/dist/collection/components/sqm-titled-section/sqm-titled-section.js +6 -3
  59. package/dist/collection/tables/GenericTableView.js +5 -8
  60. package/dist/esm/{GenericTableView-2b700cd4.js → GenericTableView-79b65de0.js} +5 -8
  61. package/dist/esm/{ShadowViewAddon-919cf983.js → ShadowViewAddon-98630948.js} +25 -50
  62. package/dist/esm/loader.js +1 -1
  63. package/dist/esm/mint-components.js +1 -1
  64. package/dist/esm/sqm-brand_28.entry.js +24 -20
  65. package/dist/esm/sqm-image_4.entry.js +1 -1
  66. package/dist/esm/{sqm-portal-container-view-624563e6.js → sqm-portal-container-view-f74db584.js} +1 -1
  67. package/dist/esm/{sqm-portal-profile-view-c0f86818.js → sqm-portal-profile-view-6a4ab589.js} +1 -1
  68. package/dist/esm/sqm-portal-profile.entry.js +2 -2
  69. package/dist/esm/sqm-referral-table_11.entry.js +50 -391
  70. package/dist/esm/sqm-rewards-table_9.entry.js +44 -27
  71. package/dist/esm/sqm-stencilbook.entry.js +198 -105
  72. package/dist/esm/sqm-tab-group.entry.js +16 -0
  73. package/dist/esm/sqm-tab-panel.entry.js +16 -0
  74. package/dist/esm/sqm-tab.entry.js +16 -0
  75. package/dist/esm/useReferralTable-bccb9ac0.js +345 -0
  76. package/dist/esm-es5/GenericTableView-79b65de0.js +1 -0
  77. package/dist/esm-es5/ShadowViewAddon-98630948.js +1 -0
  78. package/dist/esm-es5/loader.js +1 -1
  79. package/dist/esm-es5/mint-components.js +1 -1
  80. package/dist/esm-es5/sqm-brand_28.entry.js +1 -1
  81. package/dist/esm-es5/sqm-image_4.entry.js +1 -1
  82. package/dist/esm-es5/{sqm-portal-container-view-624563e6.js → sqm-portal-container-view-f74db584.js} +1 -1
  83. package/dist/esm-es5/{sqm-portal-profile-view-c0f86818.js → sqm-portal-profile-view-6a4ab589.js} +1 -1
  84. package/dist/esm-es5/sqm-portal-profile.entry.js +1 -1
  85. package/dist/esm-es5/sqm-referral-table_11.entry.js +1 -1
  86. package/dist/esm-es5/sqm-rewards-table_9.entry.js +1 -1
  87. package/dist/esm-es5/sqm-stencilbook.entry.js +1 -1
  88. package/dist/esm-es5/sqm-tab-group.entry.js +1 -0
  89. package/dist/esm-es5/sqm-tab-panel.entry.js +1 -0
  90. package/dist/esm-es5/sqm-tab.entry.js +1 -0
  91. package/dist/esm-es5/useReferralTable-bccb9ac0.js +1 -0
  92. package/dist/mint-components/assets/Reward-image.png +0 -0
  93. package/dist/mint-components/mint-components.esm.js +1 -1
  94. package/dist/mint-components/p-12c6ad5d.system.entry.js +1 -0
  95. package/dist/mint-components/p-14655192.js +161 -0
  96. package/dist/mint-components/{p-1d7902ec.system.entry.js → p-27849b7e.system.entry.js} +1 -1
  97. package/dist/mint-components/p-2d7db47e.entry.js +1 -0
  98. package/dist/mint-components/p-382a1bca.system.js +1 -0
  99. package/dist/mint-components/p-3a374367.js +1 -0
  100. package/dist/mint-components/{p-9da7df73.system.js → p-4dbf5bbf.system.js} +1 -1
  101. package/dist/mint-components/p-59454f33.system.js +1 -0
  102. package/dist/mint-components/p-5e3f4daa.system.entry.js +1 -0
  103. package/dist/mint-components/{p-b8f8422d.system.entry.js → p-61d68133.system.entry.js} +1 -1
  104. package/dist/mint-components/p-673407d4.entry.js +150 -0
  105. package/dist/mint-components/p-68c38020.entry.js +1 -0
  106. package/dist/mint-components/p-7aea48a0.entry.js +1 -0
  107. package/dist/mint-components/p-854ad349.entry.js +9 -0
  108. package/dist/mint-components/p-88765e8f.system.entry.js +1 -0
  109. package/dist/mint-components/p-8d74871c.system.js +1 -1
  110. package/dist/mint-components/p-95e36be8.entry.js +1 -0
  111. package/dist/mint-components/{p-0a1d7ec0.js → p-975d4358.js} +1 -1
  112. package/dist/mint-components/{p-3ea21dc2.entry.js → p-a2038ff2.entry.js} +1 -1
  113. package/dist/mint-components/p-aab3dc7b.system.entry.js +1 -0
  114. package/dist/mint-components/{p-0505f964.js → p-b18cc44f.js} +1 -1
  115. package/dist/mint-components/{p-1bc35369.system.js → p-bc19e1c2.system.js} +1 -1
  116. package/dist/mint-components/p-c968ea28.system.entry.js +1 -0
  117. package/dist/mint-components/p-d0acc0d5.system.js +1 -0
  118. package/dist/mint-components/p-d5f16295.entry.js +90 -0
  119. package/dist/mint-components/{p-5aa86d66.entry.js → p-d8a45132.entry.js} +2 -2
  120. package/dist/mint-components/p-de3e12a6.system.entry.js +1 -0
  121. package/dist/mint-components/p-f80e4997.system.entry.js +1 -0
  122. package/dist/mint-components/p-fc3bbee6.js +30 -0
  123. package/dist/types/components/sqm-brand/sqm-brand.d.ts +1 -0
  124. package/dist/types/components/sqm-hero-image/sqm-hero-image.d.ts +1 -1
  125. package/dist/types/components/sqm-leaderboard/Leaderboard.stories.d.ts +0 -1
  126. package/dist/types/components/sqm-leaderboard/sqm-leaderboard.d.ts +5 -3
  127. package/dist/types/components/sqm-leaderboard/useLeaderboard.d.ts +1 -0
  128. package/dist/types/components/sqm-navigation-sidebar-item/sqm-navigation-sidebar-item.d.ts +2 -0
  129. package/dist/types/components/sqm-portal-container/PortalContainer.stories.d.ts +1 -0
  130. package/dist/types/components/sqm-portal-container/sqm-portal-container-view.d.ts +1 -0
  131. package/dist/types/components/sqm-portal-container/sqm-portal-container.d.ts +4 -0
  132. package/dist/types/components/sqm-program-explainer-step/sqm-program-explainer-step.d.ts +5 -2
  133. package/dist/types/components/sqm-referral-card/ReferralCard.stories.d.ts +2 -5
  134. package/dist/types/components/sqm-referral-card/sqm-referral-card-view.d.ts +0 -2
  135. package/dist/types/components/sqm-referral-card/sqm-referral-card.d.ts +0 -8
  136. package/dist/types/components/sqm-referral-table/sqm-referral-table-view.d.ts +1 -1
  137. package/dist/types/components/sqm-referral-table/sqm-referral-table.d.ts +2 -2
  138. package/dist/types/components/sqm-referral-table/useReferralTable.d.ts +1 -0
  139. package/dist/types/components/sqm-rewards-table/RewardsTable.stories.d.ts +1 -2
  140. package/dist/types/components/sqm-rewards-table/RewardsTableCell.stories.d.ts +4 -0
  141. package/dist/types/components/sqm-rewards-table/cells/sqm-rewards-table-status-cell.d.ts +4 -1
  142. package/dist/types/components/sqm-rewards-table/sqm-rewards-table.d.ts +2 -2
  143. package/dist/types/components/sqm-rewards-table/useRewardsTable.d.ts +2 -2
  144. package/dist/types/components/sqm-share-button/sqm-share-button.d.ts +6 -2
  145. package/dist/types/components/sqm-tab/sqm-tab.d.ts +6 -0
  146. package/dist/types/components/sqm-tab-group/sqm-tab-group.d.ts +6 -0
  147. package/dist/types/components/sqm-tab-panel/sqm-tab-panel.d.ts +6 -0
  148. package/dist/types/components/sqm-task-card/sqm-task-card-view.d.ts +1 -2
  149. package/dist/types/components/sqm-task-card/sqm-task-card.d.ts +0 -4
  150. package/dist/types/components/{sqm-referral-card → sqm-timeline}/SVGs.d.ts +0 -0
  151. package/dist/types/components/sqm-timeline/Timeline.stories.d.ts +8 -0
  152. package/dist/types/components/{sqm-referral-card → sqm-timeline}/sqm-timeline-entry.d.ts +0 -0
  153. package/dist/types/components/{sqm-referral-card → sqm-timeline}/sqm-timeline.d.ts +0 -0
  154. package/dist/types/components/sqm-titled-section/sqm-titled-section.d.ts +6 -1
  155. package/dist/types/components.d.ts +112 -59
  156. package/dist/types/saasquatch.d.ts +4 -0
  157. package/dist/types/tables/GenericTableView.d.ts +1 -1
  158. package/grapesjs/grapesjs.js +1 -1
  159. package/package.json +1 -1
  160. package/dist/collection/components/sqm-reward-exchange-list/assets/placeholder.png +0 -0
  161. package/dist/collection/components/sqm-rewards-table/sqm-rewards-table-view.js +0 -96
  162. package/dist/esm-es5/GenericTableView-2b700cd4.js +0 -1
  163. package/dist/esm-es5/ShadowViewAddon-919cf983.js +0 -1
  164. package/dist/mint-components/assets/placeholder.png +0 -0
  165. package/dist/mint-components/p-187f520b.entry.js +0 -86
  166. package/dist/mint-components/p-25ca6445.entry.js +0 -150
  167. package/dist/mint-components/p-31df3a21.entry.js +0 -161
  168. package/dist/mint-components/p-4c8273dc.system.entry.js +0 -1
  169. package/dist/mint-components/p-5619a993.system.js +0 -1
  170. package/dist/mint-components/p-9a18d853.system.js +0 -1
  171. package/dist/mint-components/p-ba7c209d.system.entry.js +0 -1
  172. package/dist/mint-components/p-bad9dd35.entry.js +0 -9
  173. package/dist/mint-components/p-f5c176e4.js +0 -30
  174. package/dist/mint-components/p-f890c414.js +0 -1
  175. package/dist/mint-components/p-f9194201.system.entry.js +0 -1
  176. package/dist/mint-components/p-f92a265b.system.entry.js +0 -1
  177. package/dist/types/components/sqm-rewards-table/sqm-rewards-table-view.d.ts +0 -32
@@ -21,6 +21,7 @@ const rewardsData = {
21
21
  prettyAvailableNumber: "19",
22
22
  prettyRedeemedNumber: "0",
23
23
  statuses: ["AVAILABLE"],
24
+ pendingReasons: null,
24
25
  globalRewardKey: null,
25
26
  rewardSource: "MANUAL",
26
27
  prettyRedeemedCredit: "0 Points",
@@ -33,7 +34,7 @@ const rewardsData = {
33
34
  },
34
35
  };
35
36
  export const RewardsCellCreditFull = () => {
36
- return (h("sqm-rewards-table-reward-cell", { reward: { ...rewardsData }, availableText: "19 Points remaining" }));
37
+ return (h("sqm-rewards-table-reward-cell", { reward: { ...rewardsData }, availableText: "19 Points available" }));
37
38
  };
38
39
  const partial = {
39
40
  prettyAvailableValue: "10 Points",
@@ -42,7 +43,7 @@ const partial = {
42
43
  dateRedeemed: 1640038417468,
43
44
  };
44
45
  export const RewardsCellCreditPartial = () => {
45
- return (h("sqm-rewards-table-reward-cell", { reward: { ...rewardsData, ...partial }, availableText: "10 Points remaining" }));
46
+ return (h("sqm-rewards-table-reward-cell", { reward: { ...rewardsData, ...partial }, availableText: "10 Points available" }));
46
47
  };
47
48
  const empty = {
48
49
  prettyAvailableValue: "0 Points",
@@ -51,7 +52,7 @@ const empty = {
51
52
  dateRedeemed: 1640038417468,
52
53
  };
53
54
  export const RewardsCellCreditEmpty = () => {
54
- return (h("sqm-rewards-table-reward-cell", { reward: { ...rewardsData, ...empty }, availableText: "0 Points remaining" }));
55
+ return (h("sqm-rewards-table-reward-cell", { reward: { ...rewardsData, ...empty }, availableText: "0 Points available" }));
55
56
  };
56
57
  const singleRedeemed = {
57
58
  prettyValue: "1 Points",
@@ -66,7 +67,11 @@ export const RewardsCellSingleRedeemed = () => {
66
67
  return (h("sqm-rewards-table-reward-cell", { reward: { ...rewardsData, ...singleRedeemed } }));
67
68
  };
68
69
  export const RewardsCellNonCredit = () => {
69
- return (h("sqm-rewards-table-reward-cell", { reward: { ...rewardsData, type: "FUELTANK", prettyValue: "SaaSquatch Giftcard" } }));
70
+ return (h("sqm-rewards-table-reward-cell", { reward: {
71
+ ...rewardsData,
72
+ type: "FUELTANK",
73
+ prettyValue: "SaaSquatch Giftcard",
74
+ } }));
70
75
  };
71
76
  export const SourceCellText = () => {
72
77
  return (h("sqm-rewards-table-source-cell", { reward: rewardsData, rewardSourceText: "Manual" }));
@@ -133,6 +138,13 @@ export const SourceCellReferral = () => {
133
138
  export const SourceCellReferred = () => {
134
139
  return (h("sqm-rewards-table-source-cell", { reward: { ...rewardsData, ...referred(johnDoe) }, referralText: "Referred by" }));
135
140
  };
141
+ export const SourceCellProgram = () => {
142
+ return (h("sqm-rewards-table-source-cell", { reward: {
143
+ ...rewardsData,
144
+ rewardSource: "AUTOMATED",
145
+ program: { name: "Stencil Loyalty Program" },
146
+ }, rewardSourceText: "{rewardSource, select, MANUAL {Manual} AUTOMATED {{programId}} other {}}" }));
147
+ };
136
148
  export const SourceCellAnonymousUser = () => {
137
149
  return (h("sqm-rewards-table-source-cell", { reward: { ...rewardsData, ...referral(anon) }, referralText: "Referral to", anonymousUserText: "Anonymous User" }));
138
150
  };
@@ -172,9 +184,28 @@ export const StatusCellExpired = () => {
172
184
  const pending = {
173
185
  statuses: ["PENDING"],
174
186
  };
187
+ const us_tax = {
188
+ pendingReasons: ["US_TAX"],
189
+ };
190
+ const scheduled = {
191
+ pendingReasons: ["SCHEDULED"],
192
+ dateScheduledFor: 1640038417468,
193
+ };
194
+ const unhandled = {
195
+ pendingReasons: ["UNHANDLED_ERROR"],
196
+ };
175
197
  export const StatusCellPending = () => {
176
198
  return (h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: { ...rewardsData, ...pending } }));
177
199
  };
200
+ export const StatusCellPendingUsTax = () => {
201
+ return (h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: { ...rewardsData, ...pending, ...us_tax } }));
202
+ };
203
+ export const StatusCellPendingScheduled = () => {
204
+ return (h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: { ...rewardsData, ...pending, ...scheduled } }));
205
+ };
206
+ export const StatusCellPendingUnhandled = () => {
207
+ return (h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: { ...rewardsData, ...pending, ...unhandled } }));
208
+ };
178
209
  export const DateCell = () => {
179
210
  return (h("sqm-rewards-table-date-cell", { date: 1640038417468 }));
180
211
  };
@@ -7,11 +7,13 @@ export class RewardTableSourceCell {
7
7
  render() {
8
8
  intl.locale = this.locale;
9
9
  const RewardSource = ({ reward }) => {
10
+ var _a;
10
11
  return (h("span", null, intl.formatMessage({
11
12
  id: "rewardSourceText",
12
13
  defaultMessage: this.rewardSourceText,
13
14
  }, {
14
15
  rewardSource: reward.rewardSource,
16
+ programId: (_a = reward === null || reward === void 0 ? void 0 : reward.program) === null || _a === void 0 ? void 0 : _a.name,
15
17
  })));
16
18
  };
17
19
  const SOURCE_COLUMN_LENGTH = 21;
@@ -57,7 +59,9 @@ export class RewardTableSourceCell {
57
59
  }, {
58
60
  rewardSource: this.reward.rewardSource,
59
61
  })),
60
- h("div", null, this.reward.rewardSource == "FRIEND_SIGNUP" ? getFullName(this.reward.referral.referredUser) : getFullName(this.reward.referral.referrerUser)))) : this.reward.exchangedRewardRedemptionTransaction ? (h(RewardExchangeBadge, { reward: this.reward })) : (h(RewardSource, { reward: this.reward }));
62
+ h("div", null, this.reward.rewardSource == "FRIEND_SIGNUP"
63
+ ? getFullName(this.reward.referral.referredUser)
64
+ : getFullName(this.reward.referral.referrerUser)))) : this.reward.exchangedRewardRedemptionTransaction ? (h(RewardExchangeBadge, { reward: this.reward })) : (h(RewardSource, { reward: this.reward }));
61
65
  return h(Source, null);
62
66
  }
63
67
  static get is() { return "sqm-rewards-table-source-cell"; }
@@ -5,7 +5,11 @@ import { createStyleSheet } from "../../../styling/JSS";
5
5
  import { luxonLocale } from "../../../utils/utils";
6
6
  export class RewardTableStatusCell {
7
7
  constructor() {
8
+ this.expiryText = "Expires";
8
9
  this.locale = "en";
10
+ this.pendingUsTax = "W-9 required";
11
+ this.pendingScheduled = "Until";
12
+ this.pendingUnhandled = "Fulfillment error";
9
13
  }
10
14
  rewardStatus(reward) {
11
15
  if (reward.dateCancelled)
@@ -77,12 +81,28 @@ export class RewardTableStatusCell {
77
81
  `${rewardStatus === "AVAILABLE" && this.reward.dateExpires
78
82
  ? this.expiryText + " "
79
83
  : ""}${(_a = DateTime.fromMillis(dateShown)) === null || _a === void 0 ? void 0 : _a.setLocale(luxonLocale(luxonLocale(this.locale))).toLocaleString(DateTime.DATE_MED)}`;
84
+ const pendingReasons = rewardStatus === "PENDING" ? getRewardPendingReasons(this) : null;
85
+ console.log(pendingReasons);
80
86
  return (h("div", { style: { display: "contents" } },
81
87
  h("style", { type: "text/css" }, styleString),
82
88
  h("sl-badge", { type: badgeType, pill: true, class: rewardStatus === "REDEEMED"
83
89
  ? sheet.classes.RedeemBadge
84
90
  : sheet.classes.Badge }, statusText),
85
- h("p", { class: sheet.classes.Date }, date)));
91
+ h("p", { class: sheet.classes.Date }, pendingReasons || date)));
92
+ function getRewardPendingReasons(prop) {
93
+ var _a;
94
+ console.log(prop.reward);
95
+ const pendingCodeMap = {
96
+ US_TAX: prop.pendingUsTax,
97
+ SCHEDULED: prop.reward.dateScheduledFor &&
98
+ prop.pendingScheduled +
99
+ " " + ((_a = DateTime.fromMillis(prop.reward.dateScheduledFor)) === null || _a === void 0 ? void 0 : _a.setLocale(luxonLocale(luxonLocale(prop.locale))).toLocaleString(DateTime.DATE_MED)),
100
+ UNHANDLED_ERROR: prop.pendingUnhandled,
101
+ };
102
+ return prop.reward.pendingReasons
103
+ .map((s) => { var _a; return (_a = pendingCodeMap[s]) !== null && _a !== void 0 ? _a : s; })
104
+ .join(", ");
105
+ }
86
106
  }
87
107
  static get is() { return "sqm-rewards-table-status-cell"; }
88
108
  static get encapsulation() { return "shadow"; }
@@ -138,7 +158,8 @@ export class RewardTableStatusCell {
138
158
  "text": ""
139
159
  },
140
160
  "attribute": "expiry-text",
141
- "reflect": false
161
+ "reflect": false,
162
+ "defaultValue": "\"Expires\""
142
163
  },
143
164
  "locale": {
144
165
  "type": "string",
@@ -157,6 +178,60 @@ export class RewardTableStatusCell {
157
178
  "attribute": "locale",
158
179
  "reflect": false,
159
180
  "defaultValue": "\"en\""
181
+ },
182
+ "pendingUsTax": {
183
+ "type": "string",
184
+ "mutable": false,
185
+ "complexType": {
186
+ "original": "string",
187
+ "resolved": "string",
188
+ "references": {}
189
+ },
190
+ "required": false,
191
+ "optional": false,
192
+ "docs": {
193
+ "tags": [],
194
+ "text": ""
195
+ },
196
+ "attribute": "pending-us-tax",
197
+ "reflect": false,
198
+ "defaultValue": "\"W-9 required\""
199
+ },
200
+ "pendingScheduled": {
201
+ "type": "string",
202
+ "mutable": false,
203
+ "complexType": {
204
+ "original": "string",
205
+ "resolved": "string",
206
+ "references": {}
207
+ },
208
+ "required": false,
209
+ "optional": false,
210
+ "docs": {
211
+ "tags": [],
212
+ "text": ""
213
+ },
214
+ "attribute": "pending-scheduled",
215
+ "reflect": false,
216
+ "defaultValue": "\"Until\""
217
+ },
218
+ "pendingUnhandled": {
219
+ "type": "string",
220
+ "mutable": false,
221
+ "complexType": {
222
+ "original": "string",
223
+ "resolved": "string",
224
+ "references": {}
225
+ },
226
+ "required": false,
227
+ "optional": false,
228
+ "docs": {
229
+ "tags": [],
230
+ "text": ""
231
+ },
232
+ "attribute": "pending-unhandled",
233
+ "reflect": false,
234
+ "defaultValue": "\"Fulfillment error\""
160
235
  }
161
236
  }; }
162
237
  }
@@ -31,7 +31,7 @@ export class RewardTableUserColumn {
31
31
  /**
32
32
  * @uiName Reward Source Text
33
33
  */
34
- this.rewardSourceText = "{rewardSource, select, MANUAL {Manual} AUTOMATED {Automated} other {}}";
34
+ this.rewardSourceText = "{rewardSource, select, MANUAL {Manual} AUTOMATED {{programName}} other {}}";
35
35
  withHooks(this);
36
36
  }
37
37
  disconnectedCallback() { }
@@ -176,7 +176,7 @@ export class RewardTableUserColumn {
176
176
  },
177
177
  "attribute": "reward-source-text",
178
178
  "reflect": false,
179
- "defaultValue": "\"{rewardSource, select, MANUAL {Manual} AUTOMATED {Automated} other {}}\""
179
+ "defaultValue": "\"{rewardSource, select, MANUAL {Manual} AUTOMATED {{programName}} other {}}\""
180
180
  }
181
181
  }; }
182
182
  static get methods() { return {
@@ -24,16 +24,16 @@ export class RewardsTable {
24
24
  /** @uiName Hide Columns (Mobile View) */
25
25
  this.mdBreakpoint = 899;
26
26
  /** @uiName Empty State Image Link */
27
- this.emptyStateImgUrl = "https://res.cloudinary.com/saasquatch/image/upload/v1642618031/squatch-assets/image_4_1.png";
27
+ this.emptyStateImage = "https://res.cloudinary.com/saasquatch/image/upload/v1642618031/squatch-assets/image_4_1.png";
28
28
  /** @uiName Empty State Title */
29
- this.emptyStateTitle = "View your rewards";
29
+ this.emptyStateHeader = "View your rewards";
30
30
  /** @uiName Empty State Text */
31
31
  this.emptyStateText = "See all the rewards you have earned from referring friends and completing tasks";
32
32
  withHooks(this);
33
33
  }
34
34
  disconnectedCallback() { }
35
35
  render() {
36
- const empty = (h(EmptySlot, { emptyStateImgUrl: this.emptyStateImgUrl, emptyStateTitle: this.emptyStateTitle, emptyStateText: this.emptyStateText }));
36
+ const empty = (h(EmptySlot, { emptyStateImage: this.emptyStateImage, emptyStateHeader: this.emptyStateHeader, emptyStateText: this.emptyStateText }));
37
37
  const loading = h(LoadingSlot, null);
38
38
  const { states, data, callbacks, elements } = isDemo()
39
39
  ? useRewardsTableDemo(this)
@@ -210,7 +210,7 @@ export class RewardsTable {
210
210
  "reflect": false,
211
211
  "defaultValue": "899"
212
212
  },
213
- "emptyStateImgUrl": {
213
+ "emptyStateImage": {
214
214
  "type": "string",
215
215
  "mutable": false,
216
216
  "complexType": {
@@ -227,11 +227,11 @@ export class RewardsTable {
227
227
  }],
228
228
  "text": ""
229
229
  },
230
- "attribute": "empty-state-img-url",
230
+ "attribute": "empty-state-image",
231
231
  "reflect": false,
232
232
  "defaultValue": "\"https://res.cloudinary.com/saasquatch/image/upload/v1642618031/squatch-assets/image_4_1.png\""
233
233
  },
234
- "emptyStateTitle": {
234
+ "emptyStateHeader": {
235
235
  "type": "string",
236
236
  "mutable": false,
237
237
  "complexType": {
@@ -248,7 +248,7 @@ export class RewardsTable {
248
248
  }],
249
249
  "text": ""
250
250
  },
251
- "attribute": "empty-state-title",
251
+ "attribute": "empty-state-header",
252
252
  "reflect": false,
253
253
  "defaultValue": "\"View your rewards\""
254
254
  },
@@ -278,7 +278,7 @@ export class RewardsTable {
278
278
  "mutable": false,
279
279
  "complexType": {
280
280
  "original": "DemoData<GenericTableViewProps>",
281
- "resolved": "{ states?: { hasPrev: boolean; hasNext: boolean; show: \"loading\" | \"empty\" | \"rows\"; namespace: string; }; data?: { textOverrides: { showLabels: boolean; prevLabel: string; moreLabel: string; }; hiddenColumns: string; mdBreakpoint: number; smBreakpoint: number; }; elements?: { columns: VNode[]; rows: VNode[][]; loading?: boolean; emptyElement?: VNode; loadingElement?: VNode; page?: number; }; }",
281
+ "resolved": "{ states?: { hasPrev: boolean; hasNext: boolean; show: \"loading\" | \"empty\" | \"rows\"; namespace: string; }; data?: { textOverrides: { showLabels: boolean; prevLabel: string; moreLabel: string; }; hiddenColumns: string; mdBreakpoint: number; smBreakpoint: number; }; elements?: { columns: string[]; rows: VNode[][]; loading?: boolean; emptyElement?: VNode; loadingElement?: VNode; page?: number; }; }",
282
282
  "references": {
283
283
  "DemoData": {
284
284
  "location": "import",
@@ -338,30 +338,27 @@ function useRewardsTableDemo(props) {
338
338
  referralData: [],
339
339
  },
340
340
  elements: {
341
- emptyElement: (h(EmptySlot, { emptyStateImgUrl: "https://res.cloudinary.com/saasquatch/image/upload/v1642618031/squatch-assets/image_4_1.png", emptyStateTitle: "View your rewards", emptyStateText: "See all the rewards you have earned from referring friends and completing tasks" })),
341
+ emptyElement: (h(EmptySlot, { emptyStateImage: "https://res.cloudinary.com/saasquatch/image/upload/v1642618031/squatch-assets/image_4_1.png", emptyStateHeader: "View your rewards", emptyStateText: "See all the rewards you have earned from referring friends and completing tasks" })),
342
342
  loadingElement: h(LoadingSlot, null),
343
343
  // TODO: This should be smarter
344
344
  columns: [
345
- h("div", null, "Reward"),
346
- h("div", null, "Source"),
347
- h("div", null, "Status"),
348
- h("div", null, "Date recieved"),
345
+ "Reward",
346
+ "Source",
347
+ "Status",
348
+ "Date recieved",
349
349
  ],
350
350
  rows: [],
351
351
  },
352
352
  }, props.demoData || {}, { arrayMerge: (_, a) => a });
353
353
  }
354
- function EmptySlot({ emptyStateImgUrl, emptyStateTitle, emptyStateText, }) {
354
+ function EmptySlot({ emptyStateImage, emptyStateHeader, emptyStateText, }) {
355
355
  return (h("div", { slot: "empty", style: { display: "contents" } },
356
356
  h("sqm-table-row", null,
357
357
  h("sqm-table-cell", { colspan: 5, style: { textAlign: "center" } },
358
- h("div", { style: { padding: "var(--sl-spacing-xxx-large)" } },
359
- h("img", { src: emptyStateImgUrl, style: { width: "100px" } }),
360
- h("div", null,
361
- h("b", null, emptyStateTitle)),
362
- h("div", { style: {
363
- marginTop: "var(--sl-spacing-xx-small)",
364
- fontSize: "var(--sl-font-size-small)",
365
- color: "var(--sl-color-neutral-500)",
366
- } }, emptyStateText))))));
358
+ h("sqm-portal-container", { padding: "xxxx-large", gap: "medium" },
359
+ h("sqm-image", { "image-url": emptyStateImage, "max-width": "100px" }),
360
+ h("sqm-titled-section", { "label-margin": "xxx-small", "text-align": "center" },
361
+ h("sqm-text", { slot: "label" },
362
+ h("h3", null, emptyStateHeader)),
363
+ h("sqm-text", { slot: "content" }, emptyStateText)))))));
367
364
  }
@@ -4,6 +4,7 @@ import { h } from "@stencil/core";
4
4
  import { gql } from "graphql-request";
5
5
  import { useRerenderListener } from "../../tables/re-render";
6
6
  import { useChildElements } from "../../tables/useChildElements";
7
+ import { generateUserError } from "../sqm-referral-table/useReferralTable";
7
8
  export const CSS_NAMESPACE = "sqm-rewards-table";
8
9
  const GET_REWARDS = gql `
9
10
  query getRewards(
@@ -46,7 +47,11 @@ const GET_REWARDS = gql `
46
47
  locale: $locale
47
48
  )
48
49
  programId
50
+ program {
51
+ name
52
+ }
49
53
  statuses
54
+ pendingReasons
50
55
  globalRewardKey
51
56
  programRewardKey
52
57
  rewardSource
@@ -135,7 +140,7 @@ export function useRewardsTable(props, emptyElement, loadingElement) {
135
140
  // get the column cells (renderCell is asynchronous)
136
141
  const cellsPromise = data === null || data === void 0 ? void 0 : data.map(async (r) => {
137
142
  const cellPromise = columnComponents === null || columnComponents === void 0 ? void 0 : columnComponents.map(async (c) => tryMethod(c, () => c.renderCell([r], locale)));
138
- const cells = await Promise.all(cellPromise);
143
+ const cells = (await Promise.all(cellPromise));
139
144
  return cells;
140
145
  });
141
146
  const rows = cellsPromise && (await Promise.all(cellsPromise)).filter((i) => i);
@@ -191,14 +196,6 @@ export function useRewardsTable(props, emptyElement, loadingElement) {
191
196
  },
192
197
  };
193
198
  }
194
- function generateUserError(e) {
195
- try {
196
- return JSON.stringify(e);
197
- }
198
- catch (e) {
199
- return "An unknown error";
200
- }
201
- }
202
199
  async function tryMethod(c, callback) {
203
200
  const tag = c.tagName.toLowerCase();
204
201
  await customElements.whenDefined(tag);
@@ -94,5 +94,5 @@ export const AllMediums = () => {
94
94
  h("span", null, "Line Messenger")),
95
95
  h("br", null),
96
96
  h("sqm-share-button", { medium: "direct" },
97
- h("span", null, "Direct"))));
97
+ h("span", null, "Share"))));
98
98
  };
@@ -2,40 +2,16 @@ import { h, Host } from "@stencil/core";
2
2
  import { createStyleSheet } from "../../styling/JSS";
3
3
  import { HostBlock } from "../../global/mixins";
4
4
  const medium = {
5
- facebook: "#1877f2",
6
- twitter: "#1da1f2",
7
- email: "#666666",
8
- direct: "#00008B",
9
- linkedin: "#0077b5",
10
- sms: "#34DA50",
11
- fbmessenger: "#0084ff",
12
- whatsapp: "#25d366",
13
- linemessenger: "#00B300",
14
- pinterest: "#e60023",
15
- };
16
- const medium_text = {
17
- facebook: "#fff",
18
- twitter: "#fff",
19
- email: "#fff",
20
- direct: "#fff",
21
- linkedin: "#fff",
22
- sms: "#fff",
23
- fbmessenger: "#fff",
24
- whatsapp: "#fff",
25
- linemessenger: "#fff",
26
- pinterest: "#fff",
27
- };
28
- const medium_icon = {
29
- facebook: "facebook",
30
- twitter: "twitter",
31
- email: "envelope",
32
- direct: "send",
33
- linkedin: "linkedin",
34
- sms: "chat",
35
- fbmessenger: "messenger",
36
- whatsapp: "whatsapp",
37
- linemessenger: "line",
38
- pinterest: "pinterest",
5
+ facebook: { color: "#1877f2", text: "#fff", icon: "facebook" },
6
+ twitter: { color: "#1da1f2", text: "#fff", icon: "twitter" },
7
+ email: { color: "#666666", text: "#fff", icon: "envelope" },
8
+ direct: { color: "var(--sl-color-primary-500)", text: "#fff", icon: "send" },
9
+ linkedin: { color: "#0077b5", text: "#fff", icon: "linkedin" },
10
+ sms: { color: "#34DA50", text: "#fff", icon: "chat" },
11
+ fbmessenger: { color: "#0084ff", text: "#fff", icon: "messenger" },
12
+ whatsapp: { color: "#25d366", text: "#fff", icon: "whatsapp" },
13
+ linemessenger: { color: "#00B300", text: "#fff", icon: "line" },
14
+ pinterest: { color: "#e60023", text: "#fff", icon: "pinterest" },
39
15
  };
40
16
  export function ShareButtonView(props, children) {
41
17
  const vanillaStyle = `
@@ -43,18 +19,18 @@ export function ShareButtonView(props, children) {
43
19
  --sl-focus-ring-color-primary: ${props.backgroundcolor
44
20
  ? props.backgroundcolor
45
21
  : props.medium
46
- ? medium[props.medium]
22
+ ? medium[props.medium].color
47
23
  : ""}80!important;
48
24
 
49
25
  background: ${props.backgroundcolor
50
26
  ? props.backgroundcolor
51
27
  : props.medium
52
- ? medium[props.medium]
28
+ ? medium[props.medium].color
53
29
  : ""};
54
30
  color: ${props.textcolor
55
31
  ? props.textcolor
56
32
  : props.medium
57
- ? medium_text[props.medium]
33
+ ? medium[props.medium].text
58
34
  : ""};
59
35
  border-radius: ${props.borderradius ? props.borderradius + "px" : ""};
60
36
  }
@@ -63,7 +39,7 @@ export function ShareButtonView(props, children) {
63
39
  border-color: ${props.backgroundcolor
64
40
  ? props.backgroundcolor
65
41
  : props.medium
66
- ? medium[props.medium]
42
+ ? medium[props.medium].color
67
43
  : ""}D1!important;
68
44
  }
69
45
 
@@ -71,7 +47,7 @@ export function ShareButtonView(props, children) {
71
47
  border-color: ${props.backgroundcolor
72
48
  ? props.backgroundcolor
73
49
  : props.medium
74
- ? medium[props.medium]
50
+ ? medium[props.medium].color
75
51
  : ""}D1!important;
76
52
  }
77
53
 
@@ -95,6 +71,6 @@ export function ShareButtonView(props, children) {
95
71
  h("style", { type: "text/css" }, styleString),
96
72
  h("style", { type: "text/css" }, vanillaStyle),
97
73
  h("sl-button", { class: sheet.classes.buttonStyle, loading: props.loading, disabled: props.disabled, pill: props.pill, size: props.size, type: props.type, onClick: props.onClick, exportparts: `base: ${props.type}sharebutton-base` },
98
- !props.hideicon && (h("sl-icon", { slot: props.iconslot || "prefix", name: props.icon ? props.icon : medium_icon[props.medium], exportparts: "icon" })),
74
+ !props.hideicon && (h("sl-icon", { slot: props.iconslot || "prefix", name: props.icon ? props.icon : medium[props.medium].icon, exportparts: "icon" })),
99
75
  !props.hidetext && children)));
100
76
  }
@@ -70,10 +70,10 @@ export class ShareButton {
70
70
  "text": "string",
71
71
  "name": "uiType"
72
72
  }, {
73
- "text": "[\"facebook\", \"twitter\", \"email\", \"direct\", \"linkedin\", \"sms\", \"fbmessenger\", \"whatsapp\", \"linemessenger\", \"pinterest\", \"reminder\", \"unknown\" ]",
73
+ "text": "[\"facebook\", \"twitter\", \"email\", \"direct\", \"linkedin\", \"sms\", \"fbmessenger\", \"whatsapp\", \"linemessenger\", \"pinterest\" ]",
74
74
  "name": "uiEnum"
75
75
  }, {
76
- "text": "[\"Facebook\", \"Twitter\", \"Email\", \"Web Share Sheet\", \"Linkedin\", \"SMS\", \"Facebook Messenger\", \"Whatsapp\", \"Line Messenger\", \"Pinterest\", \"Reminder\", \"Unknown\"]",
76
+ "text": "[\"Facebook\", \"Twitter\", \"Email\", \"Web Share Sheet\", \"Linkedin\", \"SMS\", \"Facebook Messenger\", \"Whatsapp\", \"Line Messenger\", \"Pinterest\"]",
77
77
  "name": "uiEnumNames"
78
78
  }],
79
79
  "text": "The social medium to share on. Share messages and links\r\nwill be pulled from your program config and tagged for analytics."
@@ -135,6 +135,9 @@ export class ShareButton {
135
135
  "tags": [{
136
136
  "text": "Button background color",
137
137
  "name": "uiName"
138
+ }, {
139
+ "text": "color",
140
+ "name": "uiWidget"
138
141
  }],
139
142
  "text": ""
140
143
  },
@@ -155,6 +158,9 @@ export class ShareButton {
155
158
  "tags": [{
156
159
  "text": "Button text color",
157
160
  "name": "uiName"
161
+ }, {
162
+ "text": "color",
163
+ "name": "uiWidget"
158
164
  }],
159
165
  "text": ""
160
166
  },
@@ -302,7 +308,7 @@ export class ShareButton {
302
308
  "text": "Icon used in button. Will try to select an icon based on the share medium if left empty.",
303
309
  "name": "uiName"
304
310
  }],
305
- "text": ""
311
+ "text": "Options available at https://shoelace.style/components/icon"
306
312
  },
307
313
  "attribute": "icon",
308
314
  "reflect": false
@@ -55,6 +55,7 @@ import * as RewardsTable from "../sqm-rewards-table/RewardsTable.stories";
55
55
  import * as UseReferralTable from "../sqm-referral-table/UseReferralTable.stories";
56
56
  import * as HeroImage from "../sqm-hero-image/HeroImage.stories";
57
57
  import * as ReferralCard from "../sqm-referral-card/ReferralCard.stories";
58
+ import * as Timeline from "../sqm-timeline/Timeline.stories";
58
59
  import * as Image from "../sqm-image/Image.stories";
59
60
  import * as TitledSection from "../sqm-titled-section/TitledSection.stories";
60
61
  import * as Themes from "./Themes";
@@ -117,6 +118,7 @@ const stories = [
117
118
  UseReferralTable,
118
119
  HeroImage,
119
120
  ReferralCard,
121
+ Timeline,
120
122
  Image,
121
123
  TitledSection,
122
124
  ];
@@ -0,0 +1,19 @@
1
+ import { withHooks } from "@saasquatch/stencil-hooks";
2
+ import { Component, h, Host, State } from "@stencil/core";
3
+ export class Tab {
4
+ constructor() {
5
+ this.ignored = true;
6
+ withHooks(this);
7
+ }
8
+ disconnectedCallback() { }
9
+ render() {
10
+ return (h(Host, { style: { display: "block" } },
11
+ h("sl-tab", null,
12
+ h("slot", null))));
13
+ }
14
+ static get is() { return "sqm-tab"; }
15
+ static get encapsulation() { return "shadow"; }
16
+ static get states() { return {
17
+ "ignored": {}
18
+ }; }
19
+ }
@@ -0,0 +1,19 @@
1
+ import { withHooks } from "@saasquatch/stencil-hooks";
2
+ import { Component, h, Host, State } from "@stencil/core";
3
+ export class TabGroup {
4
+ constructor() {
5
+ this.ignored = true;
6
+ withHooks(this);
7
+ }
8
+ disconnectedCallback() { }
9
+ render() {
10
+ return (h(Host, { style: { display: "block" } },
11
+ h("sl-tab-group", null,
12
+ h("slot", { name: "nav" }),
13
+ h("slot", null))));
14
+ }
15
+ static get is() { return "sqm-tab-group"; }
16
+ static get states() { return {
17
+ "ignored": {}
18
+ }; }
19
+ }
@@ -0,0 +1,19 @@
1
+ import { withHooks } from "@saasquatch/stencil-hooks";
2
+ import { Component, h, Host, State } from "@stencil/core";
3
+ export class TabPanel {
4
+ constructor() {
5
+ this.ignored = true;
6
+ withHooks(this);
7
+ }
8
+ disconnectedCallback() { }
9
+ render() {
10
+ return (h(Host, { style: { display: "block" } },
11
+ h("sl-tab-panel", null,
12
+ h("slot", { name: "sqm-panel", slot: "panel" }))));
13
+ }
14
+ static get is() { return "sqm-tab-panel"; }
15
+ static get encapsulation() { return "shadow"; }
16
+ static get states() { return {
17
+ "ignored": {}
18
+ }; }
19
+ }