@saasquatch/mint-components 1.5.0-13 → 1.5.0-17

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 (213) hide show
  1. package/CHANGELOG.md +48 -24
  2. package/dist/cjs/{global-89f66e76.js → global-5ca2a131.js} +5 -5
  3. package/dist/cjs/loader.cjs.js +2 -2
  4. package/dist/cjs/mint-components.cjs.js +2 -2
  5. package/dist/cjs/sqm-big-stat.cjs.entry.js +1 -1
  6. package/dist/cjs/sqm-brand_39.cjs.entry.js +422 -238
  7. package/dist/cjs/sqm-card-feed-view-17fd3f0a.js +369 -0
  8. package/dist/cjs/sqm-card-feed.cjs.entry.js +4 -5
  9. package/dist/cjs/{sqm-leaderboard-rank-view-510f16d3.js → sqm-leaderboard-rank-view-dff9de2e.js} +1 -1
  10. package/dist/cjs/sqm-leaderboard-rank.cjs.entry.js +2 -2
  11. package/dist/cjs/{sqm-portal-email-verification-view-5093ac20.js → sqm-portal-email-verification-view-f0cbd78b.js} +1 -1
  12. package/dist/cjs/sqm-portal-email-verification.cjs.entry.js +10 -3
  13. package/dist/cjs/{sqm-portal-footer-view-03408484.js → sqm-portal-footer-view-c714590c.js} +1 -1
  14. package/dist/cjs/sqm-portal-footer.cjs.entry.js +2 -2
  15. package/dist/cjs/sqm-portal-forgot-password.cjs.entry.js +16 -4
  16. package/dist/cjs/{sqm-portal-profile-view-1a6327e4.js → sqm-portal-profile-view-f0233000.js} +3 -2
  17. package/dist/cjs/sqm-portal-profile.cjs.entry.js +2 -2
  18. package/dist/cjs/sqm-portal-reset-password.cjs.entry.js +9 -1
  19. package/dist/cjs/sqm-portal-verify-email.cjs.entry.js +10 -2
  20. package/dist/cjs/{sqm-program-explainer-step-view-54424840.js → sqm-program-explainer-step-view-17c5e99d.js} +4 -4
  21. package/dist/cjs/sqm-program-explainer-step.cjs.entry.js +1 -1
  22. package/dist/cjs/{sqm-program-explainer-view-db516613.js → sqm-program-explainer-view-d516c9df.js} +2 -2
  23. package/dist/cjs/sqm-program-explainer.cjs.entry.js +1 -1
  24. package/dist/cjs/{useDemoBigStat-5f770877.js → useDemoBigStat-49cd314a.js} +1 -2
  25. package/dist/collection/components/sqm-big-stat/sqm-big-stat.js +20 -0
  26. package/dist/collection/components/sqm-big-stat/useBigStat.js +1 -2
  27. package/dist/collection/components/sqm-card-feed/CardFeed.stories.js +13 -1
  28. package/dist/collection/components/sqm-card-feed/sqm-card-feed-view.js +7 -10
  29. package/dist/collection/components/sqm-card-feed/sqm-card-feed.js +9 -13
  30. package/dist/collection/components/sqm-portal-container/PortalContainer.stories.js +11 -1
  31. package/dist/collection/components/sqm-portal-container/sqm-portal-container-view.js +2 -1
  32. package/dist/collection/components/sqm-portal-container/sqm-portal-container.js +25 -0
  33. package/dist/collection/components/sqm-portal-email-verification/sqm-portal-email-verification.js +27 -0
  34. package/dist/collection/components/sqm-portal-email-verification/usePortalEmailVerification.js +2 -1
  35. package/dist/collection/components/sqm-portal-forgot-password/PortalForgotPassword.stories.js +4 -0
  36. package/dist/collection/components/sqm-portal-forgot-password/sqm-portal-forgot-password.js +55 -3
  37. package/dist/collection/components/sqm-portal-forgot-password/usePortalForgotPassword.js +4 -2
  38. package/dist/collection/components/sqm-portal-login/PortalLogin.stories.js +6 -0
  39. package/dist/collection/components/sqm-portal-login/sqm-portal-login.js +59 -4
  40. package/dist/collection/components/sqm-portal-login/usePortalLogin.js +4 -2
  41. package/dist/collection/components/sqm-portal-register/PortalRegister.stories.js +5 -0
  42. package/dist/collection/components/sqm-portal-register/sqm-portal-register.js +55 -2
  43. package/dist/collection/components/sqm-portal-register/usePortalRegister.js +3 -0
  44. package/dist/collection/components/sqm-portal-reset-password/sqm-portal-reset-password.js +30 -1
  45. package/dist/collection/components/sqm-portal-reset-password/usePortalResetPassword.js +1 -1
  46. package/dist/collection/components/sqm-portal-verify-email/sqm-portal-verify-email.js +30 -1
  47. package/dist/collection/components/sqm-portal-verify-email/usePortalVerifyEmail.js +2 -2
  48. package/dist/collection/components/sqm-program-explainer/ProgramExplainer.stories.js +1 -1
  49. package/dist/collection/components/sqm-program-explainer/sqm-program-explainer-view.js +2 -2
  50. package/dist/collection/components/sqm-program-explainer-step/ProgramExplainerStep.stories.js +1 -1
  51. package/dist/collection/components/sqm-program-explainer-step/sqm-program-explainer-step-view.js +5 -5
  52. package/dist/collection/components/sqm-referral-table/sqm-referral-table.js +5 -2
  53. package/dist/collection/components/sqm-reward-exchange-list/RewardExchangeListData.js +13 -8
  54. package/dist/collection/components/sqm-reward-exchange-list/sqm-reward-exchange-list-view.js +91 -114
  55. package/dist/collection/components/sqm-reward-exchange-list/sqm-reward-exchange-list.js +113 -5
  56. package/dist/collection/components/sqm-share-button/ShareButton.stories.js +21 -0
  57. package/dist/collection/components/sqm-share-button/sqm-share-button-view.js +17 -9
  58. package/dist/collection/components/sqm-share-button/sqm-share-button.js +62 -10
  59. package/dist/collection/components/sqm-task-card/TaskCard.stories.js +12 -0
  60. package/dist/collection/components/sqm-task-card/progress-bar/SVGs.js +1 -1
  61. package/dist/collection/components/sqm-task-card/progress-bar/progress-bar-view.js +24 -31
  62. package/dist/collection/components/sqm-task-card/sqm-task-card-view.js +79 -22
  63. package/dist/collection/components/sqm-task-card/sqm-task-card.js +106 -0
  64. package/dist/collection/components/sqm-user-name/sqm-user-name.js +1 -1
  65. package/dist/collection/global/styles.js +5 -5
  66. package/dist/collection/global/styles.ts +5 -5
  67. package/dist/esm/{global-e0e25c22.js → global-1c68ff6e.js} +5 -5
  68. package/dist/esm/loader.js +2 -2
  69. package/dist/esm/mint-components.js +2 -2
  70. package/dist/esm/sqm-big-stat.entry.js +1 -1
  71. package/dist/esm/sqm-brand_39.entry.js +422 -238
  72. package/dist/esm/sqm-card-feed-view-cdd1f818.js +367 -0
  73. package/dist/esm/sqm-card-feed.entry.js +4 -5
  74. package/dist/esm/{sqm-leaderboard-rank-view-cd1e8962.js → sqm-leaderboard-rank-view-95e6fb4f.js} +1 -1
  75. package/dist/esm/sqm-leaderboard-rank.entry.js +2 -2
  76. package/dist/esm/{sqm-portal-email-verification-view-2af31979.js → sqm-portal-email-verification-view-71eb8adb.js} +1 -1
  77. package/dist/esm/sqm-portal-email-verification.entry.js +10 -3
  78. package/dist/esm/{sqm-portal-footer-view-60cd9ae5.js → sqm-portal-footer-view-5cb00c4e.js} +1 -1
  79. package/dist/esm/sqm-portal-footer.entry.js +2 -2
  80. package/dist/esm/sqm-portal-forgot-password.entry.js +16 -4
  81. package/dist/esm/{sqm-portal-profile-view-ba06e776.js → sqm-portal-profile-view-864dd5b5.js} +3 -2
  82. package/dist/esm/sqm-portal-profile.entry.js +2 -2
  83. package/dist/esm/sqm-portal-reset-password.entry.js +9 -1
  84. package/dist/esm/sqm-portal-verify-email.entry.js +10 -2
  85. package/dist/esm/{sqm-program-explainer-step-view-7c0d5f71.js → sqm-program-explainer-step-view-e2b39225.js} +4 -4
  86. package/dist/esm/sqm-program-explainer-step.entry.js +1 -1
  87. package/dist/esm/{sqm-program-explainer-view-ab291eb4.js → sqm-program-explainer-view-f726f5ec.js} +2 -2
  88. package/dist/esm/sqm-program-explainer.entry.js +1 -1
  89. package/dist/esm/{useDemoBigStat-a0dd50ab.js → useDemoBigStat-acd4b73f.js} +1 -2
  90. package/dist/esm-es5/{global-e0e25c22.js → global-1c68ff6e.js} +1 -1
  91. package/dist/esm-es5/loader.js +1 -1
  92. package/dist/esm-es5/mint-components.js +1 -1
  93. package/dist/esm-es5/sqm-big-stat.entry.js +1 -1
  94. package/dist/esm-es5/sqm-brand_39.entry.js +1 -1
  95. package/dist/esm-es5/sqm-card-feed-view-cdd1f818.js +1 -0
  96. package/dist/esm-es5/sqm-card-feed.entry.js +1 -1
  97. package/dist/esm-es5/{sqm-leaderboard-rank-view-cd1e8962.js → sqm-leaderboard-rank-view-95e6fb4f.js} +1 -1
  98. package/dist/esm-es5/sqm-leaderboard-rank.entry.js +1 -1
  99. package/dist/esm-es5/{sqm-portal-email-verification-view-2af31979.js → sqm-portal-email-verification-view-71eb8adb.js} +1 -1
  100. package/dist/esm-es5/sqm-portal-email-verification.entry.js +1 -1
  101. package/dist/esm-es5/{sqm-portal-footer-view-60cd9ae5.js → sqm-portal-footer-view-5cb00c4e.js} +1 -1
  102. package/dist/esm-es5/sqm-portal-footer.entry.js +1 -1
  103. package/dist/esm-es5/sqm-portal-forgot-password.entry.js +1 -1
  104. package/dist/esm-es5/sqm-portal-profile-view-864dd5b5.js +1 -0
  105. package/dist/esm-es5/sqm-portal-profile.entry.js +1 -1
  106. package/dist/esm-es5/sqm-portal-reset-password.entry.js +1 -1
  107. package/dist/esm-es5/sqm-portal-verify-email.entry.js +1 -1
  108. package/dist/esm-es5/{sqm-program-explainer-step-view-7c0d5f71.js → sqm-program-explainer-step-view-e2b39225.js} +1 -1
  109. package/dist/esm-es5/sqm-program-explainer-step.entry.js +1 -1
  110. package/dist/esm-es5/{sqm-program-explainer-view-ab291eb4.js → sqm-program-explainer-view-f726f5ec.js} +1 -1
  111. package/dist/esm-es5/sqm-program-explainer.entry.js +1 -1
  112. package/dist/esm-es5/{useDemoBigStat-a0dd50ab.js → useDemoBigStat-acd4b73f.js} +1 -1
  113. package/dist/mint-components/global/styles.ts +5 -5
  114. package/dist/mint-components/mint-components.esm.js +1 -1
  115. package/dist/mint-components/mint-components.js +1 -1
  116. package/dist/mint-components/{p-bbb06296.entry.js → p-05de158b.entry.js} +1 -1
  117. package/dist/mint-components/p-0b7cc270.system.js +1 -0
  118. package/dist/mint-components/p-172e487a.system.entry.js +1 -0
  119. package/dist/mint-components/{p-759d3800.entry.js → p-26e63ecb.entry.js} +2 -2
  120. package/dist/mint-components/{p-376a0b37.js → p-35ee8cdf.js} +1 -1
  121. package/dist/mint-components/p-3e187434.system.js +1 -0
  122. package/dist/mint-components/{p-5001b2d1.system.js → p-5744f326.system.js} +1 -1
  123. package/dist/mint-components/p-5896caca.system.js +1 -0
  124. package/dist/mint-components/p-59cc7a26.system.entry.js +1 -0
  125. package/dist/mint-components/{p-8b523e73.entry.js → p-5b9a5dfa.entry.js} +1 -1
  126. package/dist/mint-components/{p-f79454fc.entry.js → p-69e273b4.entry.js} +1 -1
  127. package/dist/mint-components/p-6b8d51d6.entry.js +1 -0
  128. package/dist/mint-components/{p-0d0ec6fd.system.entry.js → p-6caa44e1.system.entry.js} +1 -1
  129. package/dist/mint-components/{p-0e95b67b.js → p-700f96f5.js} +1 -1
  130. package/dist/mint-components/{p-a8246a50.system.entry.js → p-71b6d552.system.entry.js} +1 -1
  131. package/dist/mint-components/{p-02dc36a4.system.js → p-7638bf48.system.js} +1 -1
  132. package/dist/mint-components/p-7798ebd4.js +1 -0
  133. package/dist/mint-components/{p-0e8ae7e3.system.js → p-79baab87.system.js} +1 -1
  134. package/dist/mint-components/p-7f6d37d8.entry.js +1 -0
  135. package/dist/mint-components/p-878ff4ca.entry.js +1 -0
  136. package/dist/mint-components/{p-4fc31af7.system.js → p-89d63744.system.js} +1 -1
  137. package/dist/mint-components/p-8c3d0392.system.entry.js +1 -0
  138. package/dist/mint-components/{p-8a261335.system.entry.js → p-8f58ce03.system.entry.js} +1 -1
  139. package/dist/mint-components/p-9a82ec56.entry.js +1 -0
  140. package/dist/mint-components/{p-21b4044a.entry.js → p-9bc12158.entry.js} +1 -1
  141. package/dist/mint-components/p-a3a5c48f.js +1 -0
  142. package/dist/mint-components/{p-2027edc0.system.entry.js → p-a424ac85.system.entry.js} +1 -1
  143. package/dist/mint-components/{p-1f95b411.js → p-a72143af.js} +1 -1
  144. package/dist/mint-components/p-b0d598db.system.entry.js +1 -0
  145. package/dist/mint-components/p-b11625ed.system.entry.js +1 -0
  146. package/dist/mint-components/p-b2cbbcce.system.js +1 -0
  147. package/dist/mint-components/p-ba1f4bf4.system.entry.js +1 -0
  148. package/dist/mint-components/{p-f8f125a7.system.js → p-bb7fd343.system.js} +1 -1
  149. package/dist/mint-components/{p-11cd0656.js → p-bd0887fb.js} +1 -1
  150. package/dist/mint-components/{p-72a5a051.system.entry.js → p-bffad7b3.system.entry.js} +1 -1
  151. package/dist/mint-components/p-c3d0b165.entry.js +1 -0
  152. package/dist/mint-components/p-c4a8c149.system.entry.js +1 -0
  153. package/dist/mint-components/{p-046c45b1.entry.js → p-c61028b0.entry.js} +1 -1
  154. package/dist/mint-components/{p-f7f87338.js → p-cd0ff606.js} +1 -1
  155. package/dist/mint-components/{p-8fd8682c.js → p-d793d269.js} +1 -1
  156. package/dist/mint-components/{p-4b719313.js → p-da46fc91.js} +1 -1
  157. package/dist/mint-components/{p-2e63dcfd.system.js → p-f47bf492.system.js} +1 -1
  158. package/dist/mint-components/p-ff74bee4.entry.js +372 -0
  159. package/dist/types/components/sqm-big-stat/sqm-big-stat.d.ts +6 -0
  160. package/dist/types/components/sqm-card-feed/sqm-card-feed-view.d.ts +2 -1
  161. package/dist/types/components/sqm-card-feed/sqm-card-feed.d.ts +3 -4
  162. package/dist/types/components/sqm-portal-container/PortalContainer.stories.d.ts +2 -0
  163. package/dist/types/components/sqm-portal-container/sqm-portal-container-view.d.ts +1 -0
  164. package/dist/types/components/sqm-portal-container/sqm-portal-container.d.ts +4 -0
  165. package/dist/types/components/sqm-portal-email-verification/sqm-portal-email-verification.d.ts +6 -0
  166. package/dist/types/components/sqm-portal-forgot-password/sqm-portal-forgot-password-view.d.ts +1 -0
  167. package/dist/types/components/sqm-portal-forgot-password/sqm-portal-forgot-password.d.ts +10 -0
  168. package/dist/types/components/sqm-portal-forgot-password/usePortalForgotPassword.d.ts +3 -1
  169. package/dist/types/components/sqm-portal-login/sqm-portal-login-view.d.ts +2 -0
  170. package/dist/types/components/sqm-portal-login/sqm-portal-login.d.ts +8 -0
  171. package/dist/types/components/sqm-portal-login/usePortalLogin.d.ts +3 -3
  172. package/dist/types/components/sqm-portal-register/sqm-portal-register-view.d.ts +1 -0
  173. package/dist/types/components/sqm-portal-register/sqm-portal-register.d.ts +10 -0
  174. package/dist/types/components/sqm-portal-register/usePortalRegister.d.ts +1 -0
  175. package/dist/types/components/sqm-portal-reset-password/sqm-portal-reset-password.d.ts +8 -0
  176. package/dist/types/components/sqm-portal-verify-email/sqm-portal-verify-email.d.ts +8 -0
  177. package/dist/types/components/sqm-portal-verify-email/usePortalVerifyEmail.d.ts +2 -1
  178. package/dist/types/components/sqm-reward-exchange-list/RewardExchangeListData.d.ts +143 -88
  179. package/dist/types/components/sqm-reward-exchange-list/sqm-reward-exchange-list.d.ts +21 -0
  180. package/dist/types/components/sqm-share-button/ShareButton.stories.d.ts +2 -0
  181. package/dist/types/components/sqm-share-button/sqm-share-button-view.d.ts +3 -0
  182. package/dist/types/components/sqm-share-button/sqm-share-button.d.ts +12 -0
  183. package/dist/types/components/sqm-task-card/progress-bar/SVGs.d.ts +1 -1
  184. package/dist/types/components/sqm-task-card/sqm-task-card-view.d.ts +4 -0
  185. package/dist/types/components/sqm-task-card/sqm-task-card.d.ts +22 -0
  186. package/dist/types/components/sqm-user-name/sqm-user-name.d.ts +1 -1
  187. package/dist/types/components.d.ts +212 -8
  188. package/dist/types/global/styles.d.ts +1 -1
  189. package/grapesjs/grapesjs.js +1 -1
  190. package/package.json +2 -1
  191. package/dist/cjs/sqm-card-feed-view-ec75fafc.js +0 -36
  192. package/dist/esm/sqm-card-feed-view-81f93bc7.js +0 -34
  193. package/dist/esm-es5/sqm-card-feed-view-81f93bc7.js +0 -1
  194. package/dist/esm-es5/sqm-portal-profile-view-ba06e776.js +0 -1
  195. package/dist/mint-components/p-20c95798.entry.js +0 -1
  196. package/dist/mint-components/p-3f5aa202.system.js +0 -1
  197. package/dist/mint-components/p-4658d225.system.entry.js +0 -1
  198. package/dist/mint-components/p-5939212e.system.entry.js +0 -1
  199. package/dist/mint-components/p-6f498a6b.system.entry.js +0 -1
  200. package/dist/mint-components/p-77b5a0a4.js +0 -1
  201. package/dist/mint-components/p-7cdbe82a.entry.js +0 -1
  202. package/dist/mint-components/p-8a714f3f.js +0 -1
  203. package/dist/mint-components/p-91fde765.system.js +0 -1
  204. package/dist/mint-components/p-9608ce17.system.entry.js +0 -1
  205. package/dist/mint-components/p-9dd76aed.system.entry.js +0 -1
  206. package/dist/mint-components/p-9ef3c3bc.entry.js +0 -372
  207. package/dist/mint-components/p-a88a08bb.system.js +0 -1
  208. package/dist/mint-components/p-a9a6f205.entry.js +0 -1
  209. package/dist/mint-components/p-b86cbac3.system.entry.js +0 -1
  210. package/dist/mint-components/p-c65cfc9d.system.js +0 -1
  211. package/dist/mint-components/p-e36ff7fa.entry.js +0 -1
  212. package/dist/mint-components/p-ed696e43.entry.js +0 -1
  213. package/dist/mint-components/p-ef7f70f2.system.entry.js +0 -1
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-b0129cd6.js');
6
6
  const _extends = require('./extends-0302d27d.js');
7
- const global = require('./global-89f66e76.js');
7
+ const global = require('./global-5ca2a131.js');
8
8
  const useCallback = require('./use-callback-fadb2643.js');
9
9
  const index_module = require('./index.module-c0bf9df0.js');
10
10
  const jsonpointer = require('./jsonpointer-11327262.js');
@@ -12,28 +12,28 @@ const jssPresetDefault_esm = require('./jss-preset-default.esm-6304d24f.js');
12
12
  const utils = require('./utils-95e5317c.js');
13
13
  const cjs = require('./cjs-1066ec21.js');
14
14
  const mixins = require('./mixins-7b7c59fe.js');
15
- const sqmPortalProfileView = require('./sqm-portal-profile-view-1a6327e4.js');
15
+ const sqmPortalProfileView = require('./sqm-portal-profile-view-f0233000.js');
16
16
  const sqmPortalSectionView = require('./sqm-portal-section-view-3b008930.js');
17
17
  const sqmTextSpanView = require('./sqm-text-span-view-b5ae787b.js');
18
- const sqmLeaderboardRankView = require('./sqm-leaderboard-rank-view-510f16d3.js');
18
+ const sqmLeaderboardRankView = require('./sqm-leaderboard-rank-view-dff9de2e.js');
19
19
  const reRender = require('./re-render-124b56ee.js');
20
20
  const sqmShareLinkView = require('./sqm-share-link-view-a935d07e.js');
21
- const useDemoBigStat = require('./useDemoBigStat-5f770877.js');
21
+ const useDemoBigStat = require('./useDemoBigStat-49cd314a.js');
22
22
  const ShadowViewAddon = require('./ShadowViewAddon-475e00d3.js');
23
23
  const sqmNavigationSidebarView = require('./sqm-navigation-sidebar-view-d06e1885.js');
24
24
  const sqmNavigationSidebarItemView = require('./sqm-navigation-sidebar-item-view-a2bdcf05.js');
25
25
  const sqmStatContainerView = require('./sqm-stat-container-view-ee7b00ff.js');
26
26
  const sqmPortalForgotPasswordView = require('./sqm-portal-forgot-password-view-1704d285.js');
27
- const sqmPortalEmailVerificationView = require('./sqm-portal-email-verification-view-5093ac20.js');
27
+ const sqmPortalEmailVerificationView = require('./sqm-portal-email-verification-view-f0cbd78b.js');
28
28
  const sqmPortalResetPasswordView = require('./sqm-portal-reset-password-view-4d78fd6d.js');
29
29
  const sqmPortalVerifyEmailView = require('./sqm-portal-verify-email-view-b595e302.js');
30
30
  const sqmAssetCardView = require('./sqm-asset-card-view-07f86880.js');
31
- const sqmPortalFooterView = require('./sqm-portal-footer-view-03408484.js');
31
+ const sqmPortalFooterView = require('./sqm-portal-footer-view-c714590c.js');
32
32
  const sqmHeroView = require('./sqm-hero-view-bb3d00a1.js');
33
33
  const sqmNameFieldsView = require('./sqm-name-fields-view-24614ac7.js');
34
- const sqmProgramExplainerView = require('./sqm-program-explainer-view-db516613.js');
35
- const sqmProgramExplainerStepView = require('./sqm-program-explainer-step-view-54424840.js');
36
- const sqmCardFeedView = require('./sqm-card-feed-view-ec75fafc.js');
34
+ const sqmProgramExplainerView = require('./sqm-program-explainer-view-d516c9df.js');
35
+ const sqmProgramExplainerStepView = require('./sqm-program-explainer-step-view-17c5e99d.js');
36
+ const sqmCardFeedView = require('./sqm-card-feed-view-17fd3f0a.js');
37
37
 
38
38
  /**
39
39
  * Build a font CSS URL using the Google Fonts CSS API
@@ -1380,6 +1380,10 @@ const PortalContainer = class {
1380
1380
  * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"]
1381
1381
  */
1382
1382
  this.gap = "xxx-large";
1383
+ /**
1384
+ * @uiName Maximum width
1385
+ */
1386
+ this.maxWidth = "100%";
1383
1387
  _extends.h$1(this);
1384
1388
  }
1385
1389
  disconnectedCallback() { }
@@ -1527,7 +1531,7 @@ function PortalLoginView(props) {
1527
1531
  content.secondaryButton))));
1528
1532
  }
1529
1533
 
1530
- function usePortalLogin({ nextPage }) {
1534
+ function usePortalLogin(props) {
1531
1535
  var _a, _b, _c, _d;
1532
1536
  const [request, { loading, errors, data }] = index_module.$e();
1533
1537
  const [error, setError] = _extends.useState("");
@@ -1547,7 +1551,7 @@ function usePortalLogin({ nextPage }) {
1547
1551
  if ((_a = data === null || data === void 0 ? void 0 : data.authenticateManagedIdentityWithEmailAndPassword) === null || _a === void 0 ? void 0 : _a.token) {
1548
1552
  urlParams.delete("nextPage");
1549
1553
  index_module.mn.push({
1550
- pathname: nextPageOverride || nextPage,
1554
+ pathname: nextPageOverride || props.nextPage,
1551
1555
  search: urlParams.toString() && "?" + urlParams.toString(),
1552
1556
  });
1553
1557
  }
@@ -1563,6 +1567,8 @@ function usePortalLogin({ nextPage }) {
1563
1567
  states: {
1564
1568
  loading,
1565
1569
  error: errorMessage,
1570
+ registerPath: props.registerPath,
1571
+ forgotPasswordPath: props.forgotPasswordPath
1566
1572
  },
1567
1573
  callbacks: {
1568
1574
  submit,
@@ -1602,6 +1608,14 @@ const PortalLogin = class {
1602
1608
  * @uiName Heading label
1603
1609
  */
1604
1610
  this.pageLabel = "Sign in to your account";
1611
+ /**
1612
+ * @uiName Register button redirection path
1613
+ */
1614
+ this.registerPath = "/register";
1615
+ /**
1616
+ * @uiName Forgot password button redirect path
1617
+ */
1618
+ this.forgotPasswordPath = "/forgotPassword";
1605
1619
  _extends.h$1(this);
1606
1620
  }
1607
1621
  disconnectedCallback() { }
@@ -1610,8 +1624,8 @@ const PortalLogin = class {
1610
1624
  ? useLoginDemo(this)
1611
1625
  : usePortalLogin(this);
1612
1626
  const content = {
1613
- forgotPasswordButton: (index.h("slot", { name: "forgotPassword" }, index.h("a", { onClick: () => index_module.mn.push("/forgotPassword") }, this.forgotPasswordLabel))),
1614
- secondaryButton: (index.h("slot", { name: "secondaryButton" }, index.h("sl-button", { type: "text", disabled: states.loading, onClick: () => index_module.mn.push("/register") }, this.registerLabel))),
1627
+ forgotPasswordButton: (index.h("slot", { name: "forgotPassword" }, index.h("a", { onClick: () => index_module.mn.push(states.forgotPasswordPath) }, this.forgotPasswordLabel))),
1628
+ secondaryButton: (index.h("slot", { name: "secondaryButton" }, index.h("sl-button", { type: "text", disabled: states.loading, onClick: () => index_module.mn.push(states.registerPath) }, this.registerLabel))),
1615
1629
  emailLabel: this.emailLabel,
1616
1630
  passwordLabel: this.passwordLabel,
1617
1631
  submitLabel: this.submitLabel,
@@ -1622,7 +1636,12 @@ const PortalLogin = class {
1622
1636
  };
1623
1637
  function useLoginDemo(props) {
1624
1638
  return cjs.cjs({
1625
- states: { error: "", loading: false },
1639
+ states: {
1640
+ error: "",
1641
+ loading: false,
1642
+ forgotPasswordPath: "/forgotPassword",
1643
+ registerPath: "/register",
1644
+ },
1626
1645
  callbacks: {
1627
1646
  submit: async (_event) => {
1628
1647
  console.log("submit");
@@ -5624,10 +5643,12 @@ function usePortalRegister(props) {
5624
5643
  delete formData.password;
5625
5644
  delete formData.confirmPassword;
5626
5645
  formData = { ...formData };
5646
+ const redirectPath = props.redirectPath;
5627
5647
  const variables = {
5628
5648
  email,
5629
5649
  password,
5630
5650
  formData,
5651
+ redirectPath,
5631
5652
  };
5632
5653
  try {
5633
5654
  await request(variables);
@@ -5677,6 +5698,7 @@ function usePortalRegister(props) {
5677
5698
  validationState,
5678
5699
  confirmPassword: props.confirmPassword,
5679
5700
  hideInputs: props.hideInputs,
5701
+ loginPath: props.loginPath,
5680
5702
  },
5681
5703
  callbacks: {
5682
5704
  submit,
@@ -5696,6 +5718,12 @@ const PortalRegister = class {
5696
5718
  * @uiName Page navigated to after registration
5697
5719
  */
5698
5720
  this.nextPage = "/";
5721
+ /**
5722
+ * The page that users are redirected to from the verification email.
5723
+ *
5724
+ * @uiName Email redirection base path
5725
+ */
5726
+ this.redirectPath = "/verifyEmail";
5699
5727
  /**
5700
5728
  * @uiName Label for email field
5701
5729
  */
@@ -5732,6 +5760,10 @@ const PortalRegister = class {
5732
5760
  * @uiName Heading label
5733
5761
  */
5734
5762
  this.pageLabel = "Register";
5763
+ /**
5764
+ * @uiName Sign in button redirection path
5765
+ */
5766
+ this.loginPath = "/login";
5735
5767
  _extends.h$1(this);
5736
5768
  }
5737
5769
  disconnectedCallback() { }
@@ -5741,7 +5773,7 @@ const PortalRegister = class {
5741
5773
  : usePortalRegister(this);
5742
5774
  const content = {
5743
5775
  formData: index.h("slot", { name: "formData" }),
5744
- secondaryButton: (index.h("slot", { name: "secondaryButton" }, index.h("sl-button", { type: "text", disabled: states.loading, onClick: () => index_module.mn.push("/login") }, this.loginLabel))),
5776
+ secondaryButton: (index.h("slot", { name: "secondaryButton" }, index.h("sl-button", { type: "text", disabled: states.loading, onClick: () => index_module.mn.push(states.loginPath) }, this.loginLabel))),
5745
5777
  emailLabel: this.emailLabel,
5746
5778
  passwordLabel: this.passwordLabel,
5747
5779
  submitLabel: this.submitLabel,
@@ -5759,6 +5791,7 @@ function useRegisterDemo(props) {
5759
5791
  confirmPassword: true,
5760
5792
  hideInputs: props.hideInputs || false,
5761
5793
  customPasswordField: false,
5794
+ loginPath: "/login",
5762
5795
  },
5763
5796
  callbacks: {
5764
5797
  submit: async (_event) => {
@@ -6393,8 +6426,11 @@ function useReferraltableDemo(props) {
6393
6426
  elements: {
6394
6427
  emptyElement: index.h(EmptySlot, null),
6395
6428
  loadingElement: index.h(LoadingSlot, null),
6396
- // FIXME: Even in demo mode, this should use real column names!
6397
- columns: [index.h("div", null, "Example"), index.h("div", null, "Example"), index.h("div", null, "Example")],
6429
+ columns: [
6430
+ index.h("div", null, "User"),
6431
+ index.h("div", null, "Referral Status"),
6432
+ index.h("div", null, "Rewards"),
6433
+ ],
6398
6434
  rows: [],
6399
6435
  },
6400
6436
  }, props.demoData || {}, { arrayMerge: (_, a) => a });
@@ -15176,41 +15212,6 @@ function RewardExchangeView(props) {
15176
15212
  padding: "var(--sl-spacing-medium)",
15177
15213
  position: "relative",
15178
15214
  },
15179
- CardContainer: {
15180
- "&:active": {
15181
- //boxShadow: "0 3px 10px #87ceeb6e!important",
15182
- },
15183
- },
15184
- Base: {
15185
- display: "flex",
15186
- cursor: "pointer",
15187
- textAlign: "center",
15188
- height: "120px",
15189
- "&::part(base)": {
15190
- boxShadow: "none",
15191
- width: "100%",
15192
- display: "flex",
15193
- margin: "0 auto",
15194
- },
15195
- "&::part(body)": {
15196
- padding: 0,
15197
- display: "flex",
15198
- width: "100%",
15199
- },
15200
- },
15201
- Drawer: {
15202
- "&::part(base)": {
15203
- minWidth: "400px",
15204
- maxWidth: "700px",
15205
- width: "50%",
15206
- margin: "0 auto",
15207
- right: "0",
15208
- },
15209
- "&::part(panel)": {
15210
- height: "85vh",
15211
- width: "100%",
15212
- },
15213
- },
15214
15215
  FullImage: {
15215
15216
  objectFit: "contain",
15216
15217
  maxWidth: "100%",
@@ -15218,16 +15219,6 @@ function RewardExchangeView(props) {
15218
15219
  display: "flex",
15219
15220
  margin: "0 auto",
15220
15221
  },
15221
- PreviewImage: {
15222
- objectFit: "contain",
15223
- width: "120px",
15224
- height: "118px",
15225
- flex: 0.33,
15226
- },
15227
- InputBox: {
15228
- width: "100%",
15229
- marginBottom: "20px",
15230
- },
15231
15222
  Select: {
15232
15223
  "&::part(label)": {
15233
15224
  color: "var(--sl-color-primary-500)",
@@ -15280,42 +15271,39 @@ function RewardExchangeView(props) {
15280
15271
  margin: "-9px",
15281
15272
  },
15282
15273
  },
15283
- Square: {
15284
- width: "120px",
15285
- height: "118px",
15286
- borderRadius: "3px 0 0 3px",
15274
+ Image: {
15275
+ padding: "var(--sl-spacing-small)",
15276
+ minWidth: "96px",
15277
+ maxWidth: "96px",
15287
15278
  "& .image": {
15288
15279
  width: "100%",
15289
15280
  height: "100%",
15290
15281
  objectFit: "contain",
15291
- borderRadius: "inherit",
15282
+ borderRadius: "4px",
15292
15283
  },
15293
15284
  "& .image.subdued": {
15294
15285
  filter: "brightness(0.95)",
15295
15286
  opacity: "0.5",
15296
15287
  },
15297
15288
  },
15298
- Image: {
15299
- padding: "8px",
15300
- minWidth: "96px",
15301
- maxWidth: "96px",
15289
+ Square: {
15290
+ width: "120px",
15291
+ height: "118px",
15292
+ borderRadius: "3px 0 0 3px",
15302
15293
  "& .image": {
15303
15294
  width: "100%",
15304
15295
  height: "100%",
15305
15296
  objectFit: "contain",
15306
- borderRadius: "4px",
15307
- },
15308
- "& .image.subdued": {
15309
- filter: "brightness(0.95)",
15310
- opacity: "0.5",
15297
+ borderRadius: "inherit",
15311
15298
  },
15312
15299
  },
15313
15300
  TextArea: {
15314
15301
  textAlign: "left",
15315
- padding: "12px",
15302
+ padding: "var(--sl-spacing-small)",
15303
+ paddingLeft: "0",
15316
15304
  "& .title": {
15317
- fontSize: "16px",
15318
- lineHeight: "20px",
15305
+ fontSize: "var(--sl-font-size-medium)",
15306
+ lineHeight: "var(--sl-line-height-dense)",
15319
15307
  fontWeight: "600",
15320
15308
  color: "var(--sl-color-neutral-1000)",
15321
15309
  display: "-webkit-box",
@@ -15324,9 +15312,9 @@ function RewardExchangeView(props) {
15324
15312
  overflow: "hidden",
15325
15313
  },
15326
15314
  "& .amount": {
15327
- fontSize: "14px",
15328
- lineHeight: "18px",
15329
- marginTop: "8px",
15315
+ fontSize: "var(--sl-font-size-small)",
15316
+ lineHeight: "var(--sl-line-height-dense)",
15317
+ marginTop: "var(--sl-spacing-x-small)",
15330
15318
  color: "var(--sl-color-neutral-500)",
15331
15319
  display: "-webkit-box",
15332
15320
  "-webkit-line-clamp": "1",
@@ -15334,28 +15322,31 @@ function RewardExchangeView(props) {
15334
15322
  overflow: "hidden",
15335
15323
  },
15336
15324
  "& .error": {
15337
- fontSize: "14px",
15338
- lineHeight: "18px",
15339
- marginTop: "8px",
15325
+ fontSize: "var(--sl-font-size-small)",
15326
+ lineHeight: "var(--sl-line-height-dense)",
15327
+ marginTop: "var(--sl-spacing-x-small)",
15340
15328
  fontWeight: "600",
15341
15329
  color: "var(--sl-color-warning-500)",
15342
15330
  display: "-webkit-box",
15343
15331
  "-webkit-line-clamp": "1",
15344
15332
  "-webkit-box-orient": "vertical",
15345
15333
  overflow: "hidden",
15334
+ "& .icon": {
15335
+ position: "relative",
15336
+ top: "0.1em",
15337
+ marginRight: "var(--sl-spacing-xx-small)",
15338
+ },
15346
15339
  },
15347
15340
  },
15348
15341
  ChooseAmount: {
15349
15342
  margin: "var(--sl-spacing-medium) 0",
15350
15343
  "& .title": {
15351
- //fontSize: "var(--sl-font-size-large)",
15352
- fontSize: "113%",
15344
+ fontSize: "var(--sl-font-size-large)",
15353
15345
  fontWeight: "var(--sl-font-weight-semibold)",
15354
15346
  color: "var(--sl-color-neutral-1000)",
15355
15347
  },
15356
15348
  "& .points": {
15357
- //fontSize: "var(--sl-font-size-large)",
15358
- fontSize: "113%",
15349
+ fontSize: "var(--sl-font-size-large)",
15359
15350
  fontWeight: "var(--sl-font-weight-semibold)",
15360
15351
  color: "var(--sl-color-primary-500)",
15361
15352
  },
@@ -15405,7 +15396,7 @@ function RewardExchangeView(props) {
15405
15396
  fontWeight: "var(--sl-font-weight-normal)",
15406
15397
  color: "var(--sl-color-neutral-1000)",
15407
15398
  },
15408
- "@media (max-width: 1024px)": {
15399
+ "@media (max-width: 499px)": {
15409
15400
  width: "100%",
15410
15401
  marginRight: "0",
15411
15402
  },
@@ -15417,7 +15408,7 @@ function RewardExchangeView(props) {
15417
15408
  fontWeight: "var(--sl-font-weight-normal)",
15418
15409
  color: "var(--sl-color-neutral-0)",
15419
15410
  },
15420
- "@media (max-width: 1024px)": {
15411
+ "@media (max-width: 499px)": {
15421
15412
  width: "100%",
15422
15413
  },
15423
15414
  },
@@ -15434,7 +15425,7 @@ function RewardExchangeView(props) {
15434
15425
  const sheet = jssPresetDefault_esm.jss.createStyleSheet(style);
15435
15426
  const styleString = sheet.toString();
15436
15427
  function getInput() {
15437
- var _a, _b;
15428
+ var _a, _b, _c;
15438
15429
  const item = states.selectedItem;
15439
15430
  if (!item || (item === null || item === void 0 ? void 0 : item.ruleType) === "FIXED_GLOBAL_REWARD")
15440
15431
  return index.h("span", null, item === null || item === void 0 ? void 0 : item.prettySourceValue);
@@ -15446,19 +15437,22 @@ function RewardExchangeView(props) {
15446
15437
  sourceUnit: item.sourceUnit,
15447
15438
  })));
15448
15439
  }
15449
- return (index.h("sl-select", { style: { width: "auto" }, label: "Select amount to receive", class: sheet.classes.Select, value: states.selectedStep, "onSl-select": (e) => {
15440
+ return (index.h("sl-select", { style: { width: "auto" }, label: (_b = states === null || states === void 0 ? void 0 : states.content) === null || _b === void 0 ? void 0 : _b.text.selectText, class: sheet.classes.Select, value: states.selectedStep, "onSl-select": (e) => {
15450
15441
  var _a, _b, _c, _d, _e;
15451
15442
  return callbacks.setExchangeState({
15452
15443
  amount: (_c = (_b = (_a = e.detail) === null || _a === void 0 ? void 0 : _a.item) === null || _b === void 0 ? void 0 : _b.value) === null || _c === void 0 ? void 0 : _c.sourceValue,
15453
15444
  selectedStep: (_e = (_d = e.detail) === null || _d === void 0 ? void 0 : _d.item) === null || _e === void 0 ? void 0 : _e.value,
15454
15445
  });
15455
- } }, (_b = item.steps) === null || _b === void 0 ? void 0 : _b.map((step) => {
15446
+ } }, (_c = item.steps) === null || _c === void 0 ? void 0 : _c.map((step) => {
15456
15447
  var _a, _b;
15457
15448
  return (index.h("sl-menu-item", { value: step, disabled: !step.available },
15458
15449
  step.prettyDestinationValue,
15459
15450
  index.h("div", { slot: "suffix", style: { fontSize: "75%", float: "right" } },
15460
15451
  step.prettySourceValue,
15461
- step.unavailableReasonCode && (index.h("p", { style: { fontSize: "70%", color: "#F2994A" } }, global.intl.formatMessage({
15452
+ step.unavailableReasonCode && (index.h("p", { style: {
15453
+ fontSize: "70%",
15454
+ color: "var(--sl-color-warning-500)",
15455
+ } }, global.intl.formatMessage({
15462
15456
  id: "unavailableCode",
15463
15457
  defaultMessage: (_b = (_a = states.content) === null || _a === void 0 ? void 0 : _a.text) === null || _b === void 0 ? void 0 : _b.notAvailableError,
15464
15458
  }, {
@@ -15479,12 +15473,7 @@ function RewardExchangeView(props) {
15479
15473
  : "none",
15480
15474
  borderRadius: "4px",
15481
15475
  };
15482
- const amount = item.ruleType === "FIXED_GLOBAL_REWARD"
15483
- ? item.prettySourceValue
15484
- : item.ruleType === "STEPPED_FIXED_GLOBAL_REWARD"
15485
- ? `${(_a = item.steps[0]) === null || _a === void 0 ? void 0 : _a.sourceValue} to ${(_b = item.steps.slice(-1).pop()) === null || _b === void 0 ? void 0 : _b.prettySourceValue}`
15486
- : `${item.prettySourceMinValue} to ${item.prettySourceMaxValue}`;
15487
- return (index.h("div", { key: item.key, class: item.available ? sheet.classes.CardContainer : "", style: style },
15476
+ return (index.h("div", { key: item.key, style: style },
15488
15477
  index.h("sl-card", { class: sheet.classes.Card, style: {
15489
15478
  cursor: item.unavailableReasonCode
15490
15479
  ? "not-allowed"
@@ -15514,22 +15503,32 @@ function RewardExchangeView(props) {
15514
15503
  "-webkit-line-clamp": item.unavailableReasonCode
15515
15504
  ? "1"
15516
15505
  : "2",
15517
- } }, (_c = item.name) !== null && _c !== void 0 ? _c : ""),
15506
+ } }, (_a = item.name) !== null && _a !== void 0 ? _a : ""),
15518
15507
  index.h("div", { class: "amount", style: {
15519
15508
  "-webkit-line-clamp": item.unavailableReasonCode
15520
15509
  ? "1"
15521
15510
  : "2",
15522
- } }, amount),
15523
- item.unavailableReasonCode && (index.h("div", { class: "error" }, global.intl.formatMessage({
15524
- id: "unavailableCode",
15525
- defaultMessage: (_e = (_d = states.content) === null || _d === void 0 ? void 0 : _d.text) === null || _e === void 0 ? void 0 : _e.notAvailableError,
15511
+ } }, global.intl.formatMessage({
15512
+ id: "sourceAmountMessage",
15513
+ defaultMessage: (_c = (_b = states.content) === null || _b === void 0 ? void 0 : _b.text) === null || _c === void 0 ? void 0 : _c.sourceAmountMessage,
15526
15514
  }, {
15527
- unavailableReason: item.unavailableReason ||
15528
- item.unavailableReasonCode,
15529
- sourceUnit: item.sourceUnit,
15530
- sourceValue: item.prettySourceValue ||
15531
- item.prettySourceMinValue,
15532
- }))))))));
15515
+ ruleType: item.ruleType,
15516
+ sourceValue: item.prettySourceValue,
15517
+ sourceMinValue: item.prettySourceMinValue,
15518
+ sourceMaxValue: item.prettySourceMaxValue,
15519
+ })),
15520
+ item.unavailableReasonCode && (index.h("div", { class: "error" },
15521
+ index.h("sl-icon", { class: "icon", name: "exclamation-triangle-fill" }),
15522
+ global.intl.formatMessage({
15523
+ id: "unavailableCode",
15524
+ defaultMessage: (_e = (_d = states.content) === null || _d === void 0 ? void 0 : _d.text) === null || _e === void 0 ? void 0 : _e.notAvailableError,
15525
+ }, {
15526
+ unavailableReason: item.unavailableReason ||
15527
+ item.unavailableReasonCode,
15528
+ sourceUnit: item.sourceUnit,
15529
+ sourceValue: item.prettySourceValue ||
15530
+ item.prettySourceMinValue,
15531
+ }))))))));
15533
15532
  })),
15534
15533
  index.h("div", { class: sheet.classes.Button },
15535
15534
  index.h("sl-button", { class: "continue right", size: "large", onClick: () => callbacks.setStage("chooseAmount"), loading: states.loading, disabled: !states.selectedItem }, states.content.text.continueText)),
@@ -15556,36 +15555,44 @@ function RewardExchangeView(props) {
15556
15555
  function confirmation() {
15557
15556
  console.log(selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.name);
15558
15557
  return (index.h("div", null,
15559
- index.h("h2", { style: { margin: "20px 0" } }, states.content.text.redeemTitle),
15558
+ index.h("h2", { style: { margin: "var(--sl-spacing-large) 0" } }, states.content.text.redeemTitle),
15560
15559
  index.h("div", { style: {
15561
15560
  textAlign: "center",
15562
15561
  marginBottom: "var(--sl-spacing-xxx-large)",
15563
15562
  } },
15564
15563
  index.h("p", null,
15565
- index.h("span", { style: { fontSize: "18px" } }, (selectedStep === null || selectedStep === void 0 ? void 0 : selectedStep.prettySourceValue) || (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.prettySourceValue))),
15564
+ index.h("span", { style: { fontSize: "var(--sl-font-size-large)" } }, (selectedStep === null || selectedStep === void 0 ? void 0 : selectedStep.prettySourceValue) || (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.prettySourceValue))),
15566
15565
  index.h("p", null,
15567
15566
  index.h(ExchangeArrows, null)),
15568
- index.h("div", { class: sheet.classes.CardContainer, style: {
15567
+ index.h("div", { style: {
15569
15568
  boxShadow: "none",
15570
15569
  marginBottom: "10px",
15571
15570
  flex: "1",
15572
15571
  minWidth: "100%",
15573
15572
  } },
15574
- index.h("sl-card", { style: { width: "auto", maxWidth: "350px", margin: "auto" }, class: sheet.classes.Card },
15575
- index.h("div", { class: sheet.classes.Square },
15576
- index.h("img", { class: "image", src: (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.imageUrl) ||
15577
- index.getAssetPath("./assets/placeholder.png") })),
15578
- index.h("div", { class: sheet.classes.TextArea, style: {
15579
- lineHeight: "18px",
15580
- alignSelf: "center",
15581
- } }, (selectedStep === null || selectedStep === void 0 ? void 0 : selectedStep.prettyDestinationValue) ? `${selectedStep === null || selectedStep === void 0 ? void 0 : selectedStep.prettyDestinationValue} ${(selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.name) || ""}`
15582
- : (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.name) || "")))),
15573
+ index.h("sl-card", { class: sheet.classes.Card, style: {
15574
+ width: "33%",
15575
+ margin: "auto",
15576
+ } },
15577
+ index.h("div", { style: {
15578
+ display: "flex",
15579
+ width: "100%",
15580
+ height: "120px",
15581
+ borderRadius: "3px",
15582
+ background: "rgba(0, 0, 0, 0)",
15583
+ } },
15584
+ index.h("div", { class: sheet.classes.Image },
15585
+ index.h("img", { class: "image", src: (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.imageUrl) ||
15586
+ index.getAssetPath("./assets/placeholder.png") })),
15587
+ index.h("div", { class: sheet.classes.TextArea },
15588
+ index.h("div", { class: "title" }, selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.name),
15589
+ index.h("div", { class: "amount" }, selectedStep === null || selectedStep === void 0 ? void 0 : selectedStep.destinationValue)))))),
15583
15590
  index.h("div", { class: sheet.classes.Button },
15584
15591
  index.h("sl-button", { class: "cancel", type: "text", size: "large", onClick: () => callbacks.setStage("chooseAmount") }, states.content.text.backText),
15585
15592
  index.h("sl-button", { class: "continue", size: "large", loading: states.loading, onClick: callbacks.exchangeReward }, states.content.text.redeemText))));
15586
15593
  }
15587
15594
  function success() {
15588
- var _a, _b, _c, _d;
15595
+ var _a, _b, _c, _d, _e;
15589
15596
  return (index.h("div", { class: sheet.classes.Success },
15590
15597
  index.h(Gift, null),
15591
15598
  index.h("div", { class: "title" }, states.content.text.rewardRedeemedText),
@@ -15600,8 +15607,11 @@ function RewardExchangeView(props) {
15600
15607
  (data === null || data === void 0 ? void 0 : data.fuelTankCode) && (index.h("div", { style: {
15601
15608
  width: "40%",
15602
15609
  margin: "-30px auto var(--sl-spacing-xxx-large) auto",
15610
+ textAlign: "left",
15611
+ color: "var(--sl-color-neutral-700)",
15603
15612
  } },
15604
- index.h(sqmShareLinkView.ShareLinkView, { shareString: data.fuelTankCode, tooltiptext: "Copied", open: states.open, onClick: callbacks.copyFuelTankCode }))),
15613
+ "Promo code",
15614
+ index.h(sqmShareLinkView.ShareLinkView, { shareString: data.fuelTankCode, tooltiptext: (_e = states === null || states === void 0 ? void 0 : states.content) === null || _e === void 0 ? void 0 : _e.text.toopTipText, open: states.open, onClick: callbacks.copyFuelTankCode }))),
15605
15615
  index.h("div", { class: sheet.classes.Button },
15606
15616
  index.h("sl-button", { class: "continue center", type: "primary", size: "large", onClick: () => callbacks.resetState(true) }, states.content.text.doneText))));
15607
15617
  }
@@ -15626,8 +15636,8 @@ function RewardExchangeView(props) {
15626
15636
  index.h(ProgressBar, { stageCount: 3, currentStage: stageNumber })));
15627
15637
  }
15628
15638
  function loading() {
15629
- return (index.h("div", { class: sheet.classes.Grid }, [...Array(8)].map(() => {
15630
- return (index.h("div", { class: sheet.classes.CardContainer },
15639
+ return (index.h("div", { class: sheet.classes.Grid }, [...Array(states.content.text.skeletonCardNum)].map(() => {
15640
+ return (index.h("div", null,
15631
15641
  index.h("sl-card", { class: sheet.classes.Card },
15632
15642
  index.h("div", { class: sheet.classes.CardLayout },
15633
15643
  index.h("div", null,
@@ -15637,9 +15647,12 @@ function RewardExchangeView(props) {
15637
15647
  margin: "9px",
15638
15648
  "--border-radius": "4px",
15639
15649
  } })),
15640
- index.h("div", { style: { margin: "12px 12px 0 0", width: "100%" } },
15641
- index.h("sl-skeleton", { style: { marginBottom: "12px" } }),
15642
- index.h("sl-skeleton", { style: { marginBottom: "12px" } }),
15650
+ index.h("div", { style: {
15651
+ margin: "var(--sl-spacing-small) var(--sl-spacing-small) 0 0",
15652
+ width: "100%",
15653
+ } },
15654
+ index.h("sl-skeleton", { style: { marginBottom: "var(--sl-spacing-small)" } }),
15655
+ index.h("sl-skeleton", { style: { marginBottom: "var(--sl-spacing-small)" } }),
15643
15656
  index.h("sl-skeleton", { style: { width: "45%" } }))))));
15644
15657
  })));
15645
15658
  }
@@ -15678,11 +15691,11 @@ const SqmRewardExchangeList = class {
15678
15691
  /**
15679
15692
  * @uiName Choose Reward Progress Title
15680
15693
  */
15681
- this.chooseRewardTitle = "Choose reward";
15694
+ this.chooseRewardTitle = "Rewards";
15682
15695
  /**
15683
15696
  * @uiName Choose Amount Progress Title
15684
15697
  */
15685
- this.chooseAmountTitle = "Amount";
15698
+ this.chooseAmountTitle = "Select";
15686
15699
  /**
15687
15700
  * @uiName Confirmation Progress Title
15688
15701
  */
@@ -15711,11 +15724,28 @@ const SqmRewardExchangeList = class {
15711
15724
  * @uiName Confirmation Title Text
15712
15725
  */
15713
15726
  this.redeemTitle = "Confirm and redeem";
15727
+ /**
15728
+ * @uiName Redemption Success Message
15729
+ */
15714
15730
  this.redemptionSuccessText = "Successfully redeemed {sourceValue} for {destinationValue}";
15731
+ /**
15732
+ * @uiName Reward Exchange Amount Text
15733
+ */
15734
+ this.sourceAmountMessage = "{ruleType, select, FIXED_GLOBAL_REWARD {{sourceValue}} other {{sourceMinValue} to {sourceMaxValue}}}";
15735
+ /**
15736
+ * Shown when a user copies a fuel tank code
15737
+ *
15738
+ * @uiName Tool Tip Text
15739
+ */
15740
+ this.tooltiptext = "Copied";
15715
15741
  /**
15716
15742
  * @uiName Done Text
15717
15743
  */
15718
15744
  this.doneText = "Done";
15745
+ /**
15746
+ * @uiName Select Amount Text
15747
+ */
15748
+ this.selectText = "Select amount to receive";
15719
15749
  /**
15720
15750
  * @uiName Reward List Error Message
15721
15751
  */
@@ -15728,6 +15758,10 @@ const SqmRewardExchangeList = class {
15728
15758
  * @uiName Not Enough Available Error Message
15729
15759
  */
15730
15760
  this.notEnoughError = "Not enough {sourceUnit} to redeem for this reward";
15761
+ /**
15762
+ * @uiName Number of Skeleton Cards
15763
+ */
15764
+ this.skeletonCardNum = 8;
15731
15765
  _extends.h$1(this);
15732
15766
  }
15733
15767
  disconnectedCallback() { }
@@ -16555,19 +16589,27 @@ const SqmRouter = class {
16555
16589
  };
16556
16590
  SqmRouter.style = sqmRouterCss;
16557
16591
 
16558
- const style$8 = {
16559
- HostBlock: mixins.HostBlock,
16560
- buttonStyle: {
16561
- display: "block",
16562
- },
16563
- };
16564
- jssPresetDefault_esm.jss.setup(jssPresetDefault_esm.create());
16565
- const sheet$8 = jssPresetDefault_esm.jss.createStyleSheet(style$8);
16566
- const styleString$8 = sheet$8.toString();
16567
16592
  function ShareButtonView(props, children) {
16593
+ const vanillaStyle = `
16594
+ *::part(base) {
16595
+ background: ${props.backgroundcolor ? props.backgroundcolor : ""};
16596
+ color: ${props.textcolor ? props.textcolor : ""};
16597
+ border-radius: ${props.borderradius ? props.borderradius + "px" : ""};
16598
+ }
16599
+ `;
16600
+ const style = {
16601
+ HostBlock: mixins.HostBlock,
16602
+ buttonStyle: {
16603
+ display: "block",
16604
+ },
16605
+ };
16606
+ jssPresetDefault_esm.jss.setup(jssPresetDefault_esm.create());
16607
+ const sheet = jssPresetDefault_esm.jss.createStyleSheet(style);
16608
+ const styleString = sheet.toString();
16568
16609
  return props.hide ? (index.h(index.Host, { style: { display: "none" } })) : (index.h("div", null,
16569
- index.h("style", { type: "text/css" }, styleString$8),
16570
- index.h("sl-button", { class: sheet$8.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` },
16610
+ index.h("style", { type: "text/css" }, styleString),
16611
+ index.h("style", { type: "text/css" }, vanillaStyle),
16612
+ index.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` },
16571
16613
  !props.hideicon && (index.h("sl-icon", { slot: props.iconslot, name: props.icon ? props.icon : props.medium, exportparts: "icon" })),
16572
16614
  !props.hidetext && children)));
16573
16615
  }
@@ -16698,16 +16740,8 @@ const ShareButton = class {
16698
16740
  };
16699
16741
  function useDemoShareButton(props) {
16700
16742
  return cjs.cjs({
16701
- medium: props.medium,
16743
+ ...props,
16702
16744
  loading: false,
16703
- disabled: props.disabled,
16704
- pill: props.pill,
16705
- type: props.type,
16706
- size: props.size,
16707
- hideicon: props.hideicon,
16708
- hidetext: props.hidetext,
16709
- iconslot: props.iconslot,
16710
- icon: props.icon,
16711
16745
  hide: false,
16712
16746
  onClick: () => {
16713
16747
  // TODO: Provide visual feedback
@@ -18258,6 +18292,27 @@ const TextStyleWithoutIcon = () => {
18258
18292
  const props = { medium: "facebook", type: "text", hideicon: true };
18259
18293
  return index.h(ShareButtonView, Object.assign({}, props), "Share");
18260
18294
  };
18295
+ const WithCustomColors = () => {
18296
+ const props = {
18297
+ medium: "facebook",
18298
+ type: "text",
18299
+ backgroundcolor: "#3b5998",
18300
+ textcolor: "#fff",
18301
+ iconslot: "prefix",
18302
+ };
18303
+ return index.h(ShareButtonView, Object.assign({}, props), "Facebook");
18304
+ };
18305
+ const WithCustomBorderRadius = () => {
18306
+ const props = {
18307
+ medium: "facebook",
18308
+ type: "text",
18309
+ backgroundcolor: "#3b5998",
18310
+ textcolor: "#fff",
18311
+ borderradius: 8,
18312
+ iconslot: "prefix",
18313
+ };
18314
+ return index.h(ShareButtonView, Object.assign({}, props), "Facebook");
18315
+ };
18261
18316
  const FullStackIcon = () => {
18262
18317
  return (index.h("div", null,
18263
18318
  index.h("sqm-share-button", { medium: "facebook", iconslot: "prefix" },
@@ -18276,6 +18331,8 @@ const ShareButton$1 = /*#__PURE__*/Object.freeze({
18276
18331
  WithoutIcon: WithoutIcon,
18277
18332
  WithoutText: WithoutText,
18278
18333
  TextStyleWithoutIcon: TextStyleWithoutIcon,
18334
+ WithCustomColors: WithCustomColors,
18335
+ WithCustomBorderRadius: WithCustomBorderRadius,
18279
18336
  FullStackIcon: FullStackIcon
18280
18337
  });
18281
18338
 
@@ -19544,15 +19601,15 @@ const UseTaskCard = /*#__PURE__*/Object.freeze({
19544
19601
  const NewPortal_stories = {
19545
19602
  title: "New Portal",
19546
19603
  };
19547
- const style$9 = {
19604
+ const style$8 = {
19548
19605
  HeaderSubtitleBold: {
19549
19606
  "font-weight": 500,
19550
19607
  "text-decoration": "underline",
19551
19608
  },
19552
19609
  };
19553
19610
  jssPresetDefault_esm.jss.setup(jssPresetDefault_esm.create());
19554
- const sheet$9 = jssPresetDefault_esm.jss.createStyleSheet(style$9);
19555
- const styleString$9 = sheet$9.toString();
19611
+ const sheet$8 = jssPresetDefault_esm.jss.createStyleSheet(style$8);
19612
+ const styleString$8 = sheet$8.toString();
19556
19613
  const barProps = {
19557
19614
  data: {
19558
19615
  programs: [
@@ -19647,7 +19704,7 @@ const Dashboard = () => {
19647
19704
  hide: false,
19648
19705
  };
19649
19706
  return (index.h("sqm-divided-layout", { direction: "row" },
19650
- index.h("style", { type: "text/css" }, styleString$9),
19707
+ index.h("style", { type: "text/css" }, styleString$8),
19651
19708
  index.h(Sidebar, null),
19652
19709
  index.h("sqm-divided-layout", { direction: "column" },
19653
19710
  index.h(sqmPortalProfileView.PortalContainerView, Object.assign({}, { direction: "column", padding: "xxx-large", gap: "xxx-large" }),
@@ -19705,7 +19762,7 @@ const Dashboard = () => {
19705
19762
  };
19706
19763
  const EditProfile$2 = () => {
19707
19764
  return (index.h("sqm-divided-layout", { direction: "row" },
19708
- index.h("style", { type: "text/css" }, styleString$9),
19765
+ index.h("style", { type: "text/css" }, styleString$8),
19709
19766
  index.h(Sidebar, null),
19710
19767
  index.h("sqm-divided-layout", { direction: "column" },
19711
19768
  index.h(sqmPortalProfileView.PortalProfileView, Object.assign({}, {
@@ -19769,7 +19826,7 @@ const EditProfile$2 = () => {
19769
19826
  };
19770
19827
  const Commissions = () => {
19771
19828
  return (index.h("sqm-divided-layout", { direction: "row" },
19772
- index.h("style", { type: "text/css" }, styleString$9),
19829
+ index.h("style", { type: "text/css" }, styleString$8),
19773
19830
  index.h(Sidebar, null),
19774
19831
  index.h("sqm-divided-layout", { direction: "column" },
19775
19832
  index.h(sqmPortalProfileView.PortalContainerView, Object.assign({}, { direction: "column", padding: "xxx-large", gap: "xxx-large" }),
@@ -19782,7 +19839,7 @@ const Commissions = () => {
19782
19839
  index.h("p", null,
19783
19840
  "for the",
19784
19841
  " ",
19785
- index.h("span", { class: sheet$9.classes.HeaderSubtitleBold }, "Partner Program #1"),
19842
+ index.h("span", { class: sheet$8.classes.HeaderSubtitleBold }, "Partner Program #1"),
19786
19843
  " ",
19787
19844
  "program"))),
19788
19845
  })),
@@ -19794,7 +19851,7 @@ const Commissions = () => {
19794
19851
  };
19795
19852
  const Activity = () => {
19796
19853
  return (index.h("sqm-divided-layout", { direction: "row" },
19797
- index.h("style", { type: "text/css" }, styleString$9),
19854
+ index.h("style", { type: "text/css" }, styleString$8),
19798
19855
  index.h(Sidebar, null),
19799
19856
  index.h("sqm-divided-layout", { direction: "column" },
19800
19857
  index.h(sqmPortalProfileView.PortalContainerView, Object.assign({}, { direction: "column", padding: "xxx-large", gap: "xxx-large" }),
@@ -19807,7 +19864,7 @@ const Activity = () => {
19807
19864
  index.h("p", null,
19808
19865
  "for the",
19809
19866
  " ",
19810
- index.h("span", { class: sheet$9.classes.HeaderSubtitleBold }, "Partner Program #1"),
19867
+ index.h("span", { class: sheet$8.classes.HeaderSubtitleBold }, "Partner Program #1"),
19811
19868
  " ",
19812
19869
  "program"))),
19813
19870
  })),
@@ -19936,6 +19993,8 @@ const defaultProps$2 = {
19936
19993
  states: {
19937
19994
  error: "",
19938
19995
  loading: false,
19996
+ forgotPasswordPath: "/forgotPassword",
19997
+ registerPath: "/register",
19939
19998
  },
19940
19999
  callbacks: {
19941
20000
  submit: async (e) => await e,
@@ -19946,6 +20005,8 @@ const errorProps = {
19946
20005
  states: {
19947
20006
  error: "Something went wrong. Please try again.",
19948
20007
  loading: false,
20008
+ forgotPasswordPath: "/forgotPassword",
20009
+ registerPath: "/register",
19949
20010
  },
19950
20011
  callbacks: {
19951
20012
  submit: async (e) => await e,
@@ -19956,6 +20017,8 @@ const loadingProps = {
19956
20017
  states: {
19957
20018
  error: "",
19958
20019
  loading: true,
20020
+ forgotPasswordPath: "/forgotPassword",
20021
+ registerPath: "/register",
19959
20022
  },
19960
20023
  callbacks: {
19961
20024
  submit: async (e) => await e,
@@ -19983,6 +20046,7 @@ const defaultProps$3 = {
19983
20046
  loading: false,
19984
20047
  confirmPassword: true,
19985
20048
  hideInputs: false,
20049
+ loginPath: "/login"
19986
20050
  },
19987
20051
  callbacks: {
19988
20052
  submit: () => console.log("Submit!"),
@@ -19999,6 +20063,7 @@ const errorProps$1 = {
19999
20063
  loading: false,
20000
20064
  confirmPassword: true,
20001
20065
  hideInputs: false,
20066
+ loginPath: "/login"
20002
20067
  },
20003
20068
  callbacks: {
20004
20069
  submit: () => console.log("Submit!"),
@@ -20018,6 +20083,7 @@ const loadingProps$1 = {
20018
20083
  loading: true,
20019
20084
  confirmPassword: true,
20020
20085
  hideInputs: false,
20086
+ loginPath: "/login"
20021
20087
  },
20022
20088
  callbacks: {
20023
20089
  submit: () => console.log("Submit!"),
@@ -20034,6 +20100,7 @@ const slottedProps = {
20034
20100
  loading: false,
20035
20101
  confirmPassword: true,
20036
20102
  hideInputs: false,
20103
+ loginPath: "/login"
20037
20104
  },
20038
20105
  callbacks: {
20039
20106
  submit: () => console.log("Submit!"),
@@ -20060,6 +20127,7 @@ const FieldsHidden = () => {
20060
20127
  loading: true,
20061
20128
  confirmPassword: true,
20062
20129
  hideInputs: true,
20130
+ loginPath: "/login"
20063
20131
  },
20064
20132
  } }));
20065
20133
  };
@@ -20075,7 +20143,7 @@ const PortalRegister$1 = /*#__PURE__*/Object.freeze({
20075
20143
  SlottedInputs: SlottedInputs
20076
20144
  });
20077
20145
 
20078
- const scenario = "@author:\r\n@owner:ian\r\nFeature: Forgot Password\r\n\r\n @motivating\r\n Scenario: Users can request to reset their password\r\n Given a user enters their email address\r\n And that email address is linked to a previously created account\r\n When they click \"Reset Password\"\r\n Then the button enters a loading state\r\n When the password reset email is sent\r\n Then a confirmation banner is shown stating a password reset email was sent\r\n\r\n @motivating\r\n Scenario: Users are notified if sending their password reset email fails\r\n Given a user enters their email address\r\n And that email address is linked to a previously created account\r\n When they click \"Reset Password\"\r\n Then the button enters a loading state\r\n When the password reset email fails to send\r\n Then the user will not receive a password reset email\r\n And an error banner is shown stating that they should try again\r\n\r\n @motivating\r\n @landmine\r\n Scenario: If the input email is not associated to an account a success banner will be shown but an email will not be sent\r\n Given the user entered an email address that is not associated to an accoun\r\n When they click \"Reset Password\"\r\n Then the button enters a loading state\r\n But no email will be sent\r\n And a success banner is shown stating a password reset email was sent if the given email was associated to an account\r\n\r\n @motivating\r\n Scenario: Users can resend password reset email\r\n Given a user had previously requested to reset their password\r\n When they enter their email address\r\n And that email address is linked to a previously created account\r\n And they click \"Reset Password\"\r\n Then the user will receive a second password reset email\r\n And a success banner is shown stating that their email was sent\r\n";
20146
+ const scenario = "@author:derek\r\n@owner:ian\r\nFeature: Forgot Password\r\n\r\n @motivating\r\n Scenario: Users can request to reset their password\r\n Given a user enters their email address\r\n And that email address is linked to a previously created account\r\n When they click \"Reset Password\"\r\n Then the button enters a loading state\r\n When the password reset email is sent\r\n Then a confirmation banner is shown stating a password reset email was sent\r\n\r\n @motivating\r\n Scenario: Users are notified if sending their password reset email fails\r\n Given a user enters their email address\r\n And that email address is linked to a previously created account\r\n When they click \"Reset Password\"\r\n Then the button enters a loading state\r\n When the password reset email fails to send\r\n Then the user does not receive a password reset email\r\n And an error banner is shown stating that they should try again\r\n\r\n @motivating\r\n @landmine\r\n Scenario: If the input email is not associated to an account a success banner is shown but an email is not be sent\r\n Given the user entered an email address that is not associated to an accoun\r\n When they click \"Reset Password\"\r\n Then the button enters a loading state\r\n But no email is sent\r\n And a success banner is shown stating a password reset email was sent if the given email was associated to an account\r\n\r\n @motivating\r\n Scenario: Users can resend password reset email\r\n Given a user had previously requested to reset their password\r\n When they enter their email address\r\n And that email address is linked to a previously created account\r\n And they click \"Reset Password\"\r\n Then the user receives a second password reset email\r\n And a success banner is shown stating that their email was sent\r\n\r\n @motivating\r\n Scenario Outline: The email link can be configured to redirect users to a specific base path but defaults to \"/resetPassword\"\r\n Given a user viewing the password reset component\r\n And the component <mayHave> \"redirect-path\" with <value>\r\n When they request a password reset email\r\n And they click the link in the email\r\n Then they are redirected to <redirectPath>\r\n Examples:\r\n | mayHave | value | redirectPath |\r\n | doesn't have | N/A | /resetPassword |\r\n | has | /resetMyPassword | /resetMyPassword |\r\n\r\n @minutae\r\n Scenario Outline: Navigation back to the login page can be customized but defaults to \"/login\"\r\n Given a user viewing the password reset component\r\n And the component <mayHave> \"login-path\" with <value>\r\n Then they see a \"Sign In\" text button\r\n When they click \"Sign In\"\r\n Then they are redirected to <redirectPath>\r\n Examples:\r\n | mayHave | value | redirectPath |\r\n | doesn't have | N/A | /login |\r\n | has | /signin | /signin |";
20079
20147
 
20080
20148
  const PortalForgotPassword_stories = {
20081
20149
  title: "Components/Portal Forgot Password",
@@ -20088,6 +20156,7 @@ const defaultProps$4 = {
20088
20156
  error: "",
20089
20157
  loading: false,
20090
20158
  success: false,
20159
+ loginPath: "/login",
20091
20160
  },
20092
20161
  callbacks: {
20093
20162
  submit: async (e) => await e,
@@ -20102,6 +20171,7 @@ const errorProps$2 = {
20102
20171
  error: "Something went wrong. Please try again.",
20103
20172
  loading: false,
20104
20173
  success: false,
20174
+ loginPath: "/login",
20105
20175
  },
20106
20176
  callbacks: {
20107
20177
  submit: async (e) => await e,
@@ -20116,6 +20186,7 @@ const loadingProps$2 = {
20116
20186
  error: "",
20117
20187
  loading: true,
20118
20188
  success: false,
20189
+ loginPath: "/login",
20119
20190
  },
20120
20191
  callbacks: {
20121
20192
  submit: async (e) => await e,
@@ -20130,6 +20201,7 @@ const successProps = {
20130
20201
  error: "",
20131
20202
  loading: false,
20132
20203
  success: true,
20204
+ loginPath: "/login",
20133
20205
  },
20134
20206
  callbacks: {
20135
20207
  submit: async (e) => await e,
@@ -20153,7 +20225,7 @@ const PortalForgotPassword = /*#__PURE__*/Object.freeze({
20153
20225
  ForgotPasswordSuccess: ForgotPasswordSuccess
20154
20226
  });
20155
20227
 
20156
- const scenario$1 = "@author:\r\n@owner: ian\r\nFeature: Email Verification\r\n\r\n @minutae\r\n Scenario: User's redirected from registration can re-send their verification email\r\n Given a user has registered\r\n And they have been sent a verification email\r\n When they are redirected to the email verification page\r\n Then a message will be displayed\r\n And it will reflect that a email has already been sent to their email\r\n But they can still re-send the email\r\n When they click to \"Resend-Email\"\r\n Then the user will receive a verification email\r\n\r\n @motivating\r\n Scenario: Users are notified if sending the email verification message fails\r\n Given a user with an email was stored in session data from registration\r\n When they click to \"Resend-Email\"\r\n Then the button enters a loading state\r\n When an error occurs trying to send the verification email\r\n Then the user will not receive a verification email\r\n And an error banner is shown stating that they should try again\r\n\r\n @motivating\r\n Scenario: Users are notified if sending the email verification message succeeds\r\n Given a user with an email was stored in session data from registration\r\n When they click to \"Resend-Email\"\r\n Then the button enters a loading state\r\n When the email verification message sends\r\n Then the user will receive a verification email\r\n And a success banner is shown stating that their email was resent";
20228
+ const scenario$1 = "@author:derek\r\n@owner:ian\r\nFeature: Email Verification\r\n\r\n @minutae\r\n Scenario: User's redirected from registration can re-send their verification email\r\n Given a user has registered\r\n And they have been sent a verification email\r\n When they are redirected to the email verification page\r\n Then a message is displayed\r\n And it reflects that a email has been sent to their email\r\n But they can still re-send the email\r\n When they click to \"Resend-Email\"\r\n Then they receive a verification email\r\n\r\n @motivating\r\n Scenario: Users are notified if sending the email verification message fails\r\n Given a user viewing the email verification component\r\n And they have an email stored in session data from registration\r\n When they click to \"Resend-Email\"\r\n Then the button enters a loading state\r\n When an error occurs trying to send the verification email\r\n Then the user does not receive a verification email\r\n And an error banner is shown stating that they should try again\r\n\r\n @motivating\r\n Scenario: Users are notified if sending the email verification message succeeds\r\n Given a user viewing the email verification component\r\n And they have an email stored in session data from registration\r\n When they click to \"Resend-Email\"\r\n Then the button enters a loading state\r\n When the email verification message sends\r\n Then the user receives a verification email\r\n And a success banner is shown stating that their email was resent\r\n\r\n @motivating\r\n Scenario Outline: The email link can be configured to redirect users to a specific base path but defaults to \"/verifyEmail\"\r\n Given a user viewing the email verification component\r\n And they have an email stored in session data from registration\r\n And the component <mayHave> \"redirect-path\" with <value>\r\n When they resend their verification email\r\n And they click the link in the email\r\n Then they are redirected to <redirectPath>\r\n Examples:\r\n | mayHave | value | redirectPath |\r\n | doesn't have | N/A | /verifyEmail |\r\n | has | /verifyMyEmail | /verifyMyEmail |";
20157
20229
 
20158
20230
  const PortalEmailVerification_stories = {
20159
20231
  title: "Components/Portal Email Verification",
@@ -20239,7 +20311,7 @@ const PortalEmailVerification = /*#__PURE__*/Object.freeze({
20239
20311
  EmailVerificationSuccess: EmailVerificationSuccess
20240
20312
  });
20241
20313
 
20242
- const scenario$2 = "@author:\r\n@owner:ian\r\nFeature: Reset Password\r\n\r\n\r\n Background: A user in on the password reset page\r\n Given a user who has been redirected to the password reset page\r\n\r\n @motivating\r\n Scenario: Users can reset their password\r\n Given a user has a valid oob code as a url query parameter\r\n When they enter their password twice\r\n And they click \"Update\"\r\n Then their password is updated\r\n And a banner with a success message will be displayed\r\n And they can log in with their new password\r\n\r\n @motivating\r\n Scenario Outline: Users cannot reset their password with an invalid or missing oob code\r\n Given a user has a <oobCode> as a url query parameter\r\n Then they will see an error message saying that their password reset code is invalid or expired\r\n When they click \"Continue\"\r\n Then they will be redirected to \"/\"\r\n Examples:\r\n | oobCode |\r\n | invalid oob code |\r\n | non existant oob code |\r\n\r\n @motivating\r\n Scenario: Users must enter the same password twice to successfully reset their password\r\n Given a user has been redirected to the password reset page\r\n And they have a valid oob code as a url query parameter\r\n When they enter two different passwords into the password reset form\r\n And they click \"Update\"\r\n Then their password is not be reset\r\n And an error banner stating the input passwords must match appears\r\n And their password will not be reset\r\n When they enter the same password twice\r\n And they click \"Update\"\r\n Then a banner appears with a success message\r\n And they can log in with their new password\r\n\r\n @motivating\r\n Scenario: Users are redirected to \"/\" by default\r\n Given the component does not have prop \"nextPage\"\r\n And the users url does not contain a \"nextPage\" query parameter\r\n And a user has entered their password twice\r\n When they click \"Update\"\r\n Then their password is updated\r\n And they are redirected to \"/\"\r\n\r\n @motivating\r\n Scenario: Custom redirection can be configured\r\n Given the component has prop \"nextPage\" with value \"/activity\"\r\n And the users url does not contain a \"nextPage\" query parameter\r\n And a user has entered their password twice\r\n When they click \"Update\"\r\n Then their password is updated\r\n And they are redirected to \"/activity\"";
20314
+ const scenario$2 = "@author:derek\r\n@owner:ian\r\nFeature: Reset Password\r\n\r\n Background: A user in on the password reset page\r\n Given a user who has been redirected to the password reset page\r\n\r\n @motivating\r\n Scenario: Users can reset their password\r\n Given a user has a valid oob code as a url query parameter\r\n When they enter their password twice\r\n And they click \"Update\"\r\n Then their password is updated\r\n And a banner with a success message is displayed\r\n And they can log in with their new password\r\n\r\n @motivating\r\n Scenario Outline: Users cannot reset their password with an invalid or missing oob code\r\n Given a user has a <oobCode> as a url query parameter\r\n And the component <mayHave> \"failed-page\" with <value>\r\n Then they see an error message saying that their password reset code is invalid/expired\r\n When they click \"Continue\"\r\n Then they are redirected to <redirectPath>\r\n Examples:\r\n | oobCode | mayHave | value | redirectPath |\r\n | invalid oob code | doesn't have | N/A | / |\r\n | non existant oob code | doesn't have | N/A | / |\r\n | invalid oob code | has | /login | /login |\r\n | non existant oob code | has | /login | /login |\r\n\r\n @motivating\r\n Scenario: Users must enter the same password twice to successfully reset their password\r\n Given a user has been redirected to the password reset page\r\n And they have a valid oob code as a url query parameter\r\n When they enter two different passwords into the password reset form\r\n And they click \"Update\"\r\n Then their password is not be reset\r\n And an error banner stating the input passwords must match appears\r\n And their password is not be reset\r\n When they enter the same password twice\r\n And they click \"Update\"\r\n Then a banner appears with a success message\r\n And they can log in with their new password\r\n\r\n @motivating\r\n Scenario: Users are redirected to \"/\" by default\r\n Given the component does not have prop \"nextPage\"\r\n And the users url does not contain a \"nextPage\" query parameter\r\n And a user has entered their password twice\r\n When they click \"Update\"\r\n Then their password is updated\r\n And they are redirected to \"/\"\r\n\r\n @motivating\r\n Scenario: Custom redirection can be configured\r\n Given the component has prop \"nextPage\" with value \"/activity\"\r\n And the users url does not contain a \"nextPage\" query parameter\r\n And a user has entered their password twice\r\n When they click \"Update\"\r\n Then their password is updated\r\n And they are redirected to \"/activity\"";
20243
20315
 
20244
20316
  const PortalResetPassword_stories = {
20245
20317
  title: "Components/Portal Reset Password",
@@ -20403,7 +20475,7 @@ const PortalResetPassword = /*#__PURE__*/Object.freeze({
20403
20475
  CodeValidating: CodeValidating
20404
20476
  });
20405
20477
 
20406
- const scenario$3 = "@author:\r\n@owner:ian\r\nFeature: Verify Email\r\n\r\n\r\n Background: A user is on the email verification page\r\n Given a user who has been redirected to the email verification page\r\n\r\n @motivating\r\n Scenario: Verifying your email will take you to the portal login page\r\n Given a user has a valid oob code as a url query parameter\r\n When they click \"Verify Email\"\r\n Then the button will enter a loading state\r\n When their email is validated\r\n Then a button that says \"Continue\" will appear\r\n When they click \"Continue\"\r\n Then they will be redirected to login\r\n\r\n @motivating\r\n Scenario: Users will be automatically redirected if they dont click \"Continue\"\r\n Given a user has a valid oob code as a url query parameter\r\n When they click \"Verify Email\"\r\n Then the button will enter a loading state\r\n When their email is validated\r\n Then a button that says \"Continue\" will appear\r\n When they wait 5 seconds\r\n Then they will be redirected to login\r\n\r\n @motivating\r\n Scenario: Users are notified if verifying their email has failed\r\n Given a user has a valid oob code as a url query parameter\r\n When they click \"Verify Email\"\r\n Then the button will enter a loading state\r\n When their email fails to be validated\r\n Then an banner is shown stating that an error occured\r\n\r\n @motivating\r\n Scenario Outline: Users cannot verify their email with an invalid or missing oob code\r\n Given a user has a <oobCode> as a url query parameter\r\n Then they will see an error message saying that their verification code is invalid or expired\r\n When they click \"Continue\"\r\n Then they will be redirected to \"/\"\r\n Examples:\r\n | oobCode |\r\n | invalid oob code |\r\n | non existant oob code |\r\n\r\n @motivating\r\n Scenario: Users are redirected to \"/\" by default\r\n Given the component does not have prop \"nextPage\"\r\n And the users url does not contain a \"nextPage\" query parameter\r\n And a user has verified their email\r\n When they click \"Continue\"\r\n Then they will be redirected to \"/\"\r\n\r\n @motivating\r\n Scenario: Custom redirection can be configured\r\n Given the component has prop \"nextPage\" with value \"/activity\"\r\n And the users url does not contain a \"nextPage\" query parameter\r\n And a user has verified their email\r\n When they click \"Continue\"\r\n Then they will be redirected to \"/activity\"\r\n\r\n @motivating\r\n Scenario Outline: Users will be redirected to the value of the nextPage url parameter if it exists\r\n Given the component <mayHave> prop \"nextPage\" with <nextPageValue>\r\n And the users url contains a \"nextPage\" query paramater with <nextPageParamValue>\r\n And the user has verified their email\r\n When they click \"Continue\"\r\n Then they are redirected to <nextPageParamValue>\r\n Examples:\r\n | mayHave | nextPageValue | nextPageParamValue |\r\n | has | /dashboard | /activity |\r\n | does not have | N/A | /activity |";
20478
+ const scenario$3 = "@author:derek\r\n@owner:ian\r\nFeature: Verify Email\r\n\r\n Background: A user is on the email verification page\r\n Given a user who has been redirected to the email verification page\r\n\r\n @motivating\r\n Scenario: Verifying your email takes you to the portal login page\r\n Given a user has a valid oob code as a url query parameter\r\n When they click \"Verify Email\"\r\n Then the button enters a loading state\r\n When their email is validated\r\n Then a button that says \"Continue\" appears\r\n When they click \"Continue\"\r\n Then they are redirected to login\r\n\r\n @motivating\r\n Scenario: Users are automatically redirected if they dont click \"Continue\"\r\n Given a user has a valid oob code as a url query parameter\r\n When they click \"Verify Email\"\r\n Then the button enters a loading state\r\n When their email is validated\r\n Then a button that says \"Continue\" appears\r\n When they wait 5 seconds\r\n Then they are redirected to login\r\n\r\n @motivating\r\n Scenario: Users are notified if verifying their email has failed\r\n Given a user has a valid oob code as a url query parameter\r\n When they click \"Verify Email\"\r\n Then the button enters a loading state\r\n When their email fails to be validated\r\n Then an banner is shown stating that an error occured\r\n\r\n @motivating\r\n Scenario Outline: Users cannot verify their email with an invalid or missing oob code\r\n Given a user has a <oobCode> as a url query parameter\r\n And the component <mayHave> \"failed-page\" with <value>\r\n Then they see an error message saying that their verification code is invalid/expired\r\n When they click \"Continue\"\r\n Then they are redirected to <redirectPath>\r\n Examples:\r\n | oobCode | mayHave | value | redirectPath |\r\n | invalid oob code | doesn't have | N/A | / |\r\n | non existant oob code | doesn't have | N/A | / |\r\n | invalid oob code | has | /login | /login |\r\n | non existant oob code | has | /login | /login |\r\n\r\n @motivating\r\n Scenario: Users are redirected to \"/\" by default\r\n Given the component does not have prop \"nextPage\"\r\n And the users url does not contain a \"nextPage\" query parameter\r\n And a user has verified their email\r\n When they click \"Continue\"\r\n Then they are redirected to \"/\"\r\n\r\n @motivating\r\n Scenario: Custom redirection can be configured\r\n Given the component has prop \"nextPage\" with value \"/activity\"\r\n And the users url does not contain a \"nextPage\" query parameter\r\n And a user has verified their email\r\n When they click \"Continue\"\r\n Then they are redirected to \"/activity\"\r\n\r\n @motivating\r\n Scenario Outline: Users are redirected to the value of the nextPage url parameter if it exists\r\n Given the component <mayHave> prop \"nextPage\" with <nextPageValue>\r\n And the users url contains a \"nextPage\" query paramater with <nextPageParamValue>\r\n And the user has verified their email\r\n When they click \"Continue\"\r\n Then they are redirected to <nextPageParamValue>\r\n Examples:\r\n | mayHave | nextPageValue | nextPageParamValue |\r\n | has | /dashboard | /activity |\r\n | does not have | N/A | /activity |";
20407
20479
 
20408
20480
  const PortalVerifyEmail_stories = {
20409
20481
  title: "Components/Portal Verify Email",
@@ -21918,7 +21990,7 @@ const arrow_left_right = () => {
21918
21990
  index.h("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M10.265 2.789a.346.346 0 000-.489L8.066.101a.346.346 0 10-.489.489l1.61 1.609H2.073a.691.691 0 00-.69.691v1.728a.346.346 0 00.69 0V2.89h7.114L7.577 4.5a.346.346 0 10.49.488l2.198-2.2zM.101 9.21a.346.346 0 000 .489l2.2 2.199a.346.346 0 00.488-.489l-1.61-1.609h7.114c.382 0 .691-.31.691-.691V7.382a.346.346 0 00-.691 0V9.11H1.18L2.789 7.5a.346.346 0 10-.489-.488l-2.199 2.2z", fill: "currentColor" })));
21919
21991
  };
21920
21992
 
21921
- const gift = () => {
21993
+ const Gift$1 = () => {
21922
21994
  return (index.h("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
21923
21995
  index.h("path", { d: "M15 5H12.4508H9V16H13.5C14.0523 16 14.5 15.5523 14.5 15V9H15C15.5523 9 16 8.55228 16 8V6C16 5.44772 15.5523 5 15 5Z", fill: "#F2C94C" }),
21924
21996
  index.h("path", { d: "M1.5 9V15C1.5 15.5523 1.94772 16 2.5 16H7V5H4.64242H1C0.447715 5 0 5.44772 0 6V8C0 8.55228 0.447715 9 1 9H1.5Z", fill: "#F2C94C" }),
@@ -21928,10 +22000,6 @@ const gift = () => {
21928
22000
 
21929
22001
  function ProgressBarView(props) {
21930
22002
  const { progress = 0, goal = 1, steps = false, progressBarUnit = "", repeatable = false, expired = false, finite = 0, } = props;
21931
- // console.log("progress bar props", props);
21932
- const gift1 = gift();
21933
- const gift2 = gift();
21934
- const gift3 = gift();
21935
22003
  var items = [];
21936
22004
  var columns = "";
21937
22005
  if (repeatable) {
@@ -22052,11 +22120,8 @@ function ProgressBarView(props) {
22052
22120
  marginLeft: "-100px",
22053
22121
  marginRight: "-100px",
22054
22122
  position: "relative",
22055
- display: "list-item",
22056
- listStyleType: "none",
22057
22123
  top: "-18px",
22058
22124
  filter: goal <= progress ? "" : "grayscale(100%)",
22059
- zIndex: "1",
22060
22125
  },
22061
22126
  },
22062
22127
  };
@@ -22082,7 +22147,7 @@ function ProgressBarView(props) {
22082
22147
  : progressBarUnit + clamp(progress, 0, goal)));
22083
22148
  items.push(index.h("div", { class: "remain" }));
22084
22149
  items.push(index.h("div", { class: "progress bg" }, progressBarUnit + goal));
22085
- items.push(index.h("div", { class: "gift" }, gift1));
22150
+ items.push(index.h("div", { class: "gift" }, index.h(Gift$1, null)));
22086
22151
  }
22087
22152
  function addSteps() {
22088
22153
  let ratio = 1 / goal;
@@ -22103,14 +22168,14 @@ function ProgressBarView(props) {
22103
22168
  columns += "0fr ";
22104
22169
  items.push(index.h("div", { class: "filled" }));
22105
22170
  items.push(index.h("div", { class: "progress bg" }, goal));
22106
- items.push(index.h("div", { class: "gift" }, gift1));
22171
+ items.push(index.h("div", { class: "gift" }, index.h(Gift$1, null)));
22107
22172
  }
22108
22173
  // reward fail
22109
22174
  else {
22110
22175
  columns += "0fr ";
22111
22176
  items.push(index.h("div", { class: "remain" }));
22112
22177
  items.push(index.h("div", { class: "empty bg" }, goal));
22113
- items.push(index.h("div", { class: "gift" }, gift1));
22178
+ items.push(index.h("div", { class: "gift" }, index.h(Gift$1, null)));
22114
22179
  }
22115
22180
  }
22116
22181
  function addLinearRepeatable() {
@@ -22123,10 +22188,10 @@ function ProgressBarView(props) {
22123
22188
  items.push(index.h("div", { class: progress == goal ? "progress top bg" : "progress top" }, progressBarUnit + progress));
22124
22189
  items.push(index.h("div", { class: "remain" }));
22125
22190
  items.push(index.h("div", { class: "progress bg" }, progressBarUnit + goal));
22126
- items.push(index.h("div", { class: "gift" }, gift1));
22191
+ items.push(index.h("div", { class: "gift" }, index.h(Gift$1, null)));
22127
22192
  items.push(index.h("div", { class: "remain" }));
22128
22193
  items.push(index.h("div", { class: "progress bg" }, progressBarUnit + goal * 2));
22129
- items.push(index.h("div", { class: "gift bw" }, gift2));
22194
+ items.push(index.h("div", { class: "gift bw" }, index.h(Gift$1, null)));
22130
22195
  }
22131
22196
  // single repetition
22132
22197
  else if (repetitions == 1) {
@@ -22134,18 +22199,18 @@ function ProgressBarView(props) {
22134
22199
  "0.5fr 0fr 0fr " + ratio + "fr 0fr " + (0.5 - ratio) + "fr 0fr 0fr";
22135
22200
  items.push(index.h("div", { class: "filled" }));
22136
22201
  items.push(index.h("div", { class: "progress bg" }, progressBarUnit + goal));
22137
- items.push(index.h("div", { class: "gift" }, gift1));
22202
+ items.push(index.h("div", { class: "gift" }, index.h(Gift$1, null)));
22138
22203
  items.push(index.h("div", { class: "filled" }));
22139
22204
  items.push(index.h("div", { class: progress == goal ? "progress top bg" : "progress top" }, progress == goal ? "" : progressBarUnit + progress));
22140
22205
  items.push(index.h("div", { class: "remain" }));
22141
22206
  items.push(index.h("div", { class: "progress bg" }, progressBarUnit + goal * 2));
22142
- items.push(index.h("div", { class: "gift bw" }, gift2));
22207
+ items.push(index.h("div", { class: "gift bw" }, index.h(Gift$1, null)));
22143
22208
  }
22144
22209
  // finite repetition hit
22145
22210
  else if (finite && repetitions >= finite) {
22146
22211
  if (repetitions > 2) {
22147
22212
  items.push(index.h("div", { class: "progress bg" }, progressBarUnit + goal * (finite - 2)));
22148
- items.push(index.h("div", { class: "gift start" }, gift1));
22213
+ items.push(index.h("div", { class: "gift start" }, index.h(Gift$1, null)));
22149
22214
  columns = "0fr 0fr 0.5fr 0fr 0fr 0.5fr 0fr 0fr";
22150
22215
  }
22151
22216
  else {
@@ -22153,10 +22218,10 @@ function ProgressBarView(props) {
22153
22218
  }
22154
22219
  items.push(index.h("div", { class: "filled" }));
22155
22220
  items.push(index.h("div", { class: "progress bg" }, progressBarUnit + goal * (finite - 1)));
22156
- items.push(index.h("div", { class: "gift" }, gift2));
22221
+ items.push(index.h("div", { class: "gift" }, index.h(Gift$1, null)));
22157
22222
  items.push(index.h("div", { class: "filled" }));
22158
22223
  items.push(index.h("div", { class: "progress bg" }, progressBarUnit + goal * finite));
22159
- items.push(index.h("div", { class: "gift" }, gift3));
22224
+ items.push(index.h("div", { class: "gift" }, index.h(Gift$1, null)));
22160
22225
  }
22161
22226
  // multiple repetitions
22162
22227
  else {
@@ -22167,15 +22232,15 @@ function ProgressBarView(props) {
22167
22232
  (0.5 - ratio) +
22168
22233
  "fr 0fr 0fr";
22169
22234
  items.push(index.h("div", { class: "progress bg" }, progressBarUnit + goal * (repetitions - 1)));
22170
- items.push(index.h("div", { class: "gift start" }, gift1));
22235
+ items.push(index.h("div", { class: "gift start" }, index.h(Gift$1, null)));
22171
22236
  items.push(index.h("div", { class: "filled" }));
22172
22237
  items.push(index.h("div", { class: "progress bg" }, progressBarUnit + goal * repetitions));
22173
- items.push(index.h("div", { class: "gift" }, gift2));
22238
+ items.push(index.h("div", { class: "gift" }, index.h(Gift$1, null)));
22174
22239
  items.push(index.h("div", { class: "filled" }));
22175
22240
  items.push(index.h("div", { class: progress == goal * repetitions ? "progress top bg" : "progress top" }, progress == goal * repetitions ? "" : progressBarUnit + progress));
22176
22241
  items.push(index.h("div", { class: "remain" }));
22177
22242
  items.push(index.h("div", { class: "progress bg" }, progressBarUnit + goal * (repetitions + 1)));
22178
- items.push(index.h("div", { class: "gift bw" }, gift3));
22243
+ items.push(index.h("div", { class: "gift bw" }, index.h(Gift$1, null)));
22179
22244
  }
22180
22245
  }
22181
22246
  function addStepsRepeatable() {
@@ -22190,13 +22255,13 @@ function ProgressBarView(props) {
22190
22255
  columns += "0fr ";
22191
22256
  items.push(index.h("div", { class: "remain" }));
22192
22257
  items.push(index.h("div", { class: "empty bg" }, goal));
22193
- items.push(index.h("div", { class: "gift bw" }, gift1));
22258
+ items.push(index.h("div", { class: "gift bw" }, index.h(Gift$1, null)));
22194
22259
  }
22195
22260
  else if (i == goal * 2) {
22196
22261
  columns += "0fr 0fr";
22197
22262
  items.push(index.h("div", { class: "remain" }));
22198
22263
  items.push(index.h("div", { class: "empty bg" }, goal * 2));
22199
- items.push(index.h("div", { class: "gift bw" }, gift2));
22264
+ items.push(index.h("div", { class: "gift bw" }, index.h(Gift$1, null)));
22200
22265
  }
22201
22266
  else {
22202
22267
  items.push(index.h("div", { class: "remain" }));
@@ -22207,7 +22272,7 @@ function ProgressBarView(props) {
22207
22272
  columns += "0fr ";
22208
22273
  items.push(index.h("div", { class: "filled" }));
22209
22274
  items.push(index.h("div", { class: "progress bg" }, i));
22210
- items.push(index.h("div", { class: "gift" }, gift3));
22275
+ items.push(index.h("div", { class: "gift" }, index.h(Gift$1, null)));
22211
22276
  }
22212
22277
  else {
22213
22278
  items.push(index.h("div", { class: "filled" }));
@@ -22221,7 +22286,7 @@ function ProgressBarView(props) {
22221
22286
  if (repetitions > 2) {
22222
22287
  columns += "0fr 0fr ";
22223
22288
  items.push(index.h("div", { class: "progress bg" }, goal * (finite - 2)));
22224
- items.push(index.h("div", { class: "gift start" }, gift1));
22289
+ items.push(index.h("div", { class: "gift start" }, index.h(Gift$1, null)));
22225
22290
  }
22226
22291
  for (let i = 1; i < goal * 2 + 1; i++) {
22227
22292
  columns += ratio + "fr 0fr ";
@@ -22230,20 +22295,20 @@ function ProgressBarView(props) {
22230
22295
  columns += "0fr ";
22231
22296
  items.push(index.h("div", { class: "remain" }));
22232
22297
  items.push(index.h("div", { class: "progress bg" }, goal * (finite - 1)));
22233
- items.push(index.h("div", { class: "gift bw" }, gift1));
22298
+ items.push(index.h("div", { class: "gift bw" }, index.h(Gift$1, null)));
22234
22299
  }
22235
22300
  }
22236
22301
  else if (i == goal) {
22237
22302
  columns += "0fr ";
22238
22303
  items.push(index.h("div", { class: "filled" }));
22239
22304
  items.push(index.h("div", { class: "progress bg" }, goal * (finite - 1)));
22240
- items.push(index.h("div", { class: "gift" }, gift2));
22305
+ items.push(index.h("div", { class: "gift" }, index.h(Gift$1, null)));
22241
22306
  }
22242
22307
  else if (i == goal * 2) {
22243
22308
  columns += "0fr 0fr";
22244
22309
  items.push(index.h("div", { class: "filled" }));
22245
22310
  items.push(index.h("div", { class: "progress bg" }, goal * finite));
22246
- items.push(index.h("div", { class: "gift" }, gift3));
22311
+ items.push(index.h("div", { class: "gift" }, index.h(Gift$1, null)));
22247
22312
  }
22248
22313
  else {
22249
22314
  items.push(index.h("div", { class: "filled" }));
@@ -22257,7 +22322,7 @@ function ProgressBarView(props) {
22257
22322
  let ratio = 1 / goal;
22258
22323
  columns += "0fr 0fr ";
22259
22324
  items.push(index.h("div", { class: "progress bg" }, goal * (repetitions - 1)));
22260
- items.push(index.h("div", { class: "gift start" }, gift1));
22325
+ items.push(index.h("div", { class: "gift start" }, index.h(Gift$1, null)));
22261
22326
  for (let i = 1; i < goal * 2 + 1; i++) {
22262
22327
  columns += ratio + "fr 0fr ";
22263
22328
  if (i <= goal) {
@@ -22265,7 +22330,7 @@ function ProgressBarView(props) {
22265
22330
  columns += "0fr ";
22266
22331
  items.push(index.h("div", { class: "filled" }));
22267
22332
  items.push(index.h("div", { class: "progress bg" }, i + goal * (repetitions - 1)));
22268
- items.push(index.h("div", { class: "gift" }, gift2));
22333
+ items.push(index.h("div", { class: "gift" }, index.h(Gift$1, null)));
22269
22334
  }
22270
22335
  else {
22271
22336
  items.push(index.h("div", { class: "filled" }));
@@ -22277,7 +22342,7 @@ function ProgressBarView(props) {
22277
22342
  columns += "0fr 0fr";
22278
22343
  items.push(index.h("div", { class: "remain" }));
22279
22344
  items.push(index.h("div", { class: "empty bg" }, i + goal * (repetitions - 1)));
22280
- items.push(index.h("div", { class: "gift bw" }, gift3));
22345
+ items.push(index.h("div", { class: "gift bw" }, index.h(Gift$1, null)));
22281
22346
  }
22282
22347
  else {
22283
22348
  items.push(index.h("div", { class: "remain" }));
@@ -22298,11 +22363,6 @@ function TaskCardView(props) {
22298
22363
  const checkmark_filled$1 = checkmark_filled();
22299
22364
  const arrow_left_right$1 = arrow_left_right();
22300
22365
  const style = {
22301
- // HostBlock: {
22302
- // ":host": {
22303
- // display: "inline-block",
22304
- // },
22305
- // },
22306
22366
  TaskCard: {
22307
22367
  display: "inline-block",
22308
22368
  width: "100%",
@@ -22322,7 +22382,7 @@ function TaskCardView(props) {
22322
22382
  borderColor: "var(--sl-color-primary-500)",
22323
22383
  },
22324
22384
  "& .main.expired": {
22325
- color: "var(--sl-color-neutral-400)",
22385
+ color: "var(--sl-color-neutral-600)",
22326
22386
  background: "var(--sl-color-neutral-50)",
22327
22387
  },
22328
22388
  "& .title": {
@@ -22334,17 +22394,43 @@ function TaskCardView(props) {
22334
22394
  margin: "var(--sl-spacing-medium)",
22335
22395
  },
22336
22396
  "& .container.subdued": {
22337
- opacity: "0.66",
22397
+ opacity: "0.45",
22338
22398
  },
22339
22399
  "& .container > div": {
22340
22400
  margin: "var(--sl-spacing-medium) 0",
22341
22401
  },
22342
22402
  },
22343
- Expired: {
22344
- margin: "var(--sl-spacing-medium)",
22345
- marginBottom: "calc(var(--sl-spacing-x-small)*-1)",
22403
+ NotStarted: {
22404
+ padding: "var(--sl-spacing-medium)",
22405
+ color: "var(--sl-color-primary-600)",
22406
+ border: "1px solid var(--sl-color-neutral-200)",
22407
+ borderRadius: "var(--sl-border-radius-medium) var(--sl-border-radius-medium) 0 0",
22408
+ borderBottom: "none",
22409
+ background: "var(--sl-color-primary-50)",
22410
+ fontWeight: "var(--sl-font-weight-semibold)",
22411
+ lineHeight: "var(--sl-line-height-dense)",
22412
+ "& .icon": {
22413
+ position: "relative",
22414
+ top: "0.1em",
22415
+ marginRight: "var(--sl-spacing-small)",
22416
+ color: "var(--sl-color-primary-500)",
22417
+ },
22418
+ },
22419
+ Ended: {
22420
+ padding: "var(--sl-spacing-medium)",
22346
22421
  color: "var(--sl-color-warning-600)",
22422
+ border: "1px solid var(--sl-color-neutral-200)",
22423
+ borderRadius: "var(--sl-border-radius-medium) var(--sl-border-radius-medium) 0 0",
22424
+ borderBottom: "none",
22425
+ background: "var(--sl-color-warning-50)",
22347
22426
  fontWeight: "var(--sl-font-weight-semibold)",
22427
+ lineHeight: "var(--sl-line-height-dense)",
22428
+ "& .icon": {
22429
+ position: "relative",
22430
+ top: "0.1em",
22431
+ marginRight: "var(--sl-spacing-small)",
22432
+ color: "var(--sl-color-warning-500)",
22433
+ },
22348
22434
  },
22349
22435
  Header: {
22350
22436
  display: "flex",
@@ -22415,7 +22501,7 @@ function TaskCardView(props) {
22415
22501
  },
22416
22502
  },
22417
22503
  "& .neutral": {
22418
- color: "var(--sl-color-neutral-400)",
22504
+ color: "var(--sl-color-neutral-600)",
22419
22505
  },
22420
22506
  },
22421
22507
  };
@@ -22434,16 +22520,42 @@ function TaskCardView(props) {
22434
22520
  const taskEnded = props.showExpiry && dateEnd <= dateToday;
22435
22521
  const taskNotStarted = props.showExpiry && dateToday <= dateStart;
22436
22522
  const taskUnavailable = taskEnded || taskNotStarted;
22523
+ const vanillaStyle = `
22524
+ :host{
22525
+ display: block;
22526
+ margin-bottom: 24px;
22527
+ }
22528
+ `;
22437
22529
  return (index.h("div", { class: sheet.classes.TaskCard },
22438
- index.h("div", { class: taskUnavailable
22530
+ index.h("style", { type: "text/css" },
22531
+ styleString,
22532
+ vanillaStyle),
22533
+ !props.loading && taskNotStarted && (index.h("div", { class: sheet.classes.NotStarted },
22534
+ index.h("span", { class: "icon" },
22535
+ index.h("sl-icon", { name: "info-circle-fill" })),
22536
+ global.intl.formatMessage({
22537
+ id: "startsOnMessage",
22538
+ defaultMessage: props.startsOnMessage,
22539
+ }, {
22540
+ startDate: dateStart.toLocaleString(luxon.DateTime.DATE_MED),
22541
+ }))),
22542
+ !props.loading && taskEnded && (index.h("div", { class: sheet.classes.Ended },
22543
+ index.h("span", { class: "icon" },
22544
+ index.h("sl-icon", { name: "exclamation-triangle-fill" })),
22545
+ global.intl.formatMessage({
22546
+ id: "endedMessage",
22547
+ defaultMessage: props.endedMessage,
22548
+ }, {
22549
+ endDate: dateEnd.toLocaleString(luxon.DateTime.DATE_MED),
22550
+ }))),
22551
+ index.h("div", { style: {
22552
+ borderRadius: taskUnavailable &&
22553
+ "0 0 var(--sl-border-radius-medium) var(--sl-border-radius-medium)",
22554
+ }, class: taskUnavailable
22439
22555
  ? "main expired"
22440
22556
  : taskComplete
22441
22557
  ? "main complete"
22442
22558
  : "main" },
22443
- index.h("style", { type: "text/css" }, styleString),
22444
- taskUnavailable && (index.h("div", { class: sheet.classes.Expired }, taskEnded
22445
- ? "Ended " + dateEnd.toLocaleString(luxon.DateTime.DATE_MED)
22446
- : "Starts " + dateStart.toLocaleString(luxon.DateTime.DATE_MED))),
22447
22559
  index.h("div", { class: taskComplete || taskUnavailable ? "container subdued" : "container" },
22448
22560
  index.h("div", { class: sheet.classes.Header }, props.loading ? (index.h("sl-skeleton", { style: { width: "22%", margin: "0" } })) : (index.h("div", null,
22449
22561
  showComplete && (index.h("span", { class: taskUnavailable ? "icon neutral" : "icon" }, taskComplete ? checkmark_filled$1 : checkmark_circle$1)),
@@ -22464,13 +22576,21 @@ function TaskCardView(props) {
22464
22576
  ? taskUnavailable
22465
22577
  ? "neutral"
22466
22578
  : "success"
22467
- : "" }, "Completed " +
22468
- (props.finite
22579
+ : "" }, global.intl.formatMessage({
22580
+ id: "completedMessage",
22581
+ defaultMessage: props.completedText,
22582
+ }, {
22583
+ finite: props.finite,
22584
+ count: props.finite
22469
22585
  ? Math.min(repetitions, props.finite)
22470
- : repetitions) +
22471
- (props.finite ? "/" + props.finite : "") +
22472
- " times"))),
22473
- props.showExpiry && !taskUnavailable && (index.h("span", null, "Ends " + dateEnd.toLocaleString(luxon.DateTime.DATE_FULL)))),
22586
+ : repetitions,
22587
+ })))),
22588
+ props.showExpiry && !taskUnavailable && (index.h("span", null, global.intl.formatMessage({
22589
+ id: "expiryMessage",
22590
+ defaultMessage: props.expiryMessage,
22591
+ }, {
22592
+ endDate: dateEnd.toLocaleString(luxon.DateTime.DATE_FULL),
22593
+ })))),
22474
22594
  index.h("sl-button", { class: taskUnavailable
22475
22595
  ? "action neutral"
22476
22596
  : taskComplete
@@ -22499,6 +22619,7 @@ function Details(props) {
22499
22619
  },
22500
22620
  transformOrigin: "50% 37%",
22501
22621
  transition: "transform var(--sl-transition-medium) ease",
22622
+ cursor: "pointer",
22502
22623
  },
22503
22624
  "& input:checked ~ .summary": {
22504
22625
  transition: "all var(--sl-transition-medium) ease",
@@ -22594,7 +22715,11 @@ const oneAction = {
22594
22715
  openNewTab: false,
22595
22716
  showExpiry: false,
22596
22717
  rewardDuration: null,
22718
+ completedText: "Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}",
22597
22719
  loading: false,
22720
+ expiryMessage: "Ends {endDate}",
22721
+ startsOnMessage: "Starts {startDate}",
22722
+ endedMessage: "Ended {endDate}",
22598
22723
  finite: 0,
22599
22724
  };
22600
22725
  const coupleActions = {
@@ -22611,8 +22736,12 @@ const coupleActions = {
22611
22736
  buttonLink: "https://example.com/",
22612
22737
  openNewTab: false,
22613
22738
  showExpiry: false,
22739
+ completedText: "Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}",
22614
22740
  rewardDuration: null,
22615
22741
  loading: false,
22742
+ expiryMessage: "Ends {endDate}",
22743
+ startsOnMessage: "Starts {startDate}",
22744
+ endedMessage: "Ended {endDate}",
22616
22745
  finite: 0,
22617
22746
  };
22618
22747
  const manyActions = {
@@ -22621,6 +22750,7 @@ const manyActions = {
22621
22750
  cardTitle: "Spend $500 at our Store",
22622
22751
  description: "Description of action and reward. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget quisque commodo leo.",
22623
22752
  repeatable: false,
22753
+ completedText: "Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}",
22624
22754
  showProgressBar: true,
22625
22755
  progress: 100,
22626
22756
  goal: 500,
@@ -22631,6 +22761,9 @@ const manyActions = {
22631
22761
  showExpiry: false,
22632
22762
  rewardDuration: null,
22633
22763
  loading: false,
22764
+ expiryMessage: "Ends {endDate}",
22765
+ startsOnMessage: "Starts {startDate}",
22766
+ endedMessage: "Ended {endDate}",
22634
22767
  finite: 0,
22635
22768
  };
22636
22769
  const TaskCard$1 = () => {
@@ -26003,21 +26136,21 @@ var marked = _extends.createCommonjsModule(function (module, exports) {
26003
26136
  })));
26004
26137
  });
26005
26138
 
26006
- const LoginReadme = "# sqm-portal-login\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| --------------------- | ----------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- |\r\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; }; content?: { forgotPasswordButton?: any; secondaryButton?: any; emailLabel?: string; passwordLabel?: string; submitLabel?: string; pageLabel?: string; }; }` | `undefined` |\r\n| `emailLabel` | `email-label` | | `string` | `\"Email\"` |\r\n| `forgotPasswordLabel` | `forgot-password-label` | | `string` | `\"Forgot Password?\"` |\r\n| `nextPage` | `next-page` | | `string` | `\"/\"` |\r\n| `pageLabel` | `page-label` | | `string` | `\"Sign in to your account\"` |\r\n| `passwordLabel` | `password-label` | | `string` | `\"Password\"` |\r\n| `registerLabel` | `register-label` | | `string` | `\"Register\"` |\r\n| `submitLabel` | `submit-label` | | `string` | `\"Sign In\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Used by\r\n\r\n - [sqm-stencilbook](../sqm-stencilbook)\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-login --> sqm-form-message\r\n sqm-stencilbook --> sqm-portal-login\r\n style sqm-portal-login fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
26139
+ const LoginReadme = "# sqm-portal-login\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| --------------------- | ----------------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- |\r\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; forgotPasswordPath: string; registerPath: string; }; content?: { forgotPasswordButton?: any; secondaryButton?: any; emailLabel?: string; passwordLabel?: string; submitLabel?: string; pageLabel?: string; }; }` | `undefined` |\r\n| `emailLabel` | `email-label` | | `string` | `\"Email\"` |\r\n| `forgotPasswordLabel` | `forgot-password-label` | | `string` | `\"Forgot Password?\"` |\r\n| `forgotPasswordPath` | `forgot-password-path` | | `string` | `\"/forgotPassword\"` |\r\n| `nextPage` | `next-page` | | `string` | `\"/\"` |\r\n| `pageLabel` | `page-label` | | `string` | `\"Sign in to your account\"` |\r\n| `passwordLabel` | `password-label` | | `string` | `\"Password\"` |\r\n| `registerLabel` | `register-label` | | `string` | `\"Register\"` |\r\n| `registerPath` | `register-path` | | `string` | `\"/register\"` |\r\n| `submitLabel` | `submit-label` | | `string` | `\"Sign In\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Used by\r\n\r\n - [sqm-stencilbook](../sqm-stencilbook)\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-login --> sqm-form-message\r\n sqm-stencilbook --> sqm-portal-login\r\n style sqm-portal-login fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
26007
26140
 
26008
26141
  const ReferralIframeReadme = "# sqm-referral-iframe\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| -------------- | --------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------ | ----------- |\r\n| `demoData` | -- | | `{ states?: { content: { iframeSrc: string; iframeHeight: string; iframeWidth: string; }; }; data?: { shareCode: string; }; }` | `undefined` |\r\n| `iframeHeight` | `iframe-height` | | `string` | `\"100%\"` |\r\n| `iframeSrc` | `iframe-src` | | `string` | `undefined` |\r\n| `iframeWidth` | `iframe-width` | | `string` | `\"100%\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Used by\r\n\r\n - [sqm-stencilbook](../sqm-stencilbook)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-stencilbook --> sqm-referral-iframe\r\n style sqm-referral-iframe fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
26009
26142
 
26010
- const ForgotPasswordReadme = "# sqm-portal-forgot-password\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| ------------- | -------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------- |\r\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; success: boolean; }; content?: { secondaryButton: any; messageSlot: any; emailLabel?: string; submitLabel?: string; }; }` | `undefined` |\r\n| `emailLabel` | `email-label` | | `string` | `\"Email\"` |\r\n| `submitLabel` | `submit-label` | | `string` | `\"Request Password Reset\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-forgot-password --> sqm-form-message\r\n style sqm-portal-forgot-password fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
26143
+ const ForgotPasswordReadme = "# sqm-portal-forgot-password\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| -------------- | --------------- | -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------- |\r\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; success: boolean; loginPath: string; }; content?: { secondaryButton: any; messageSlot: any; emailLabel?: string; submitLabel?: string; }; }` | `undefined` |\r\n| `emailLabel` | `email-label` | | `string` | `\"Email\"` |\r\n| `loginPath` | `login-path` | | `string` | `\"/login\"` |\r\n| `redirectPath` | `redirect-path` | The page that users are redirected to from the password reset email. | `string` | `\"/resetPassword\"` |\r\n| `submitLabel` | `submit-label` | | `string` | `\"Request Password Reset\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-forgot-password --> sqm-form-message\r\n style sqm-portal-forgot-password fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
26011
26144
 
26012
- const RegisterReadme = "# sqm-portal-register\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| -------------------------- | ---------------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- |\r\n| `confirmPassword` | `confirm-password` | | `boolean` | `false` |\r\n| `confirmPasswordLabel` | `confirm-password-label` | | `string` | `\"Confirm Password\"` |\r\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; confirmPassword: boolean; hideInputs: boolean; validationState?: FormState; enablePasswordValidation?: boolean; }; content?: { formData?: any; passwordField?: any; secondaryButton?: any; emailLabel?: string; passwordLabel?: string; submitLabel?: string; pageLabel?: string; confirmPasswordLabel: string; }; refs?: { formRef: any; }; }` | `undefined` |\r\n| `emailLabel` | `email-label` | | `string` | `\"Email\"` |\r\n| `enablePasswordValidation` | `enable-password-validation` | | `boolean` | `true` |\r\n| `hideInputs` | `hide-inputs` | | `boolean` | `false` |\r\n| `loginLabel` | `login-label` | | `string` | `\"Sign in\"` |\r\n| `nextPage` | `next-page` | | `string` | `\"/\"` |\r\n| `pageLabel` | `page-label` | | `string` | `\"Register\"` |\r\n| `passwordLabel` | `password-label` | | `string` | `\"Password\"` |\r\n| `submitLabel` | `submit-label` | | `string` | `\"Register\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Used by\r\n\r\n - [sqm-stencilbook](../sqm-stencilbook)\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n- [sqm-password-field](../sqm-password-field)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-register --> sqm-form-message\r\n sqm-portal-register --> sqm-password-field\r\n sqm-stencilbook --> sqm-portal-register\r\n style sqm-portal-register fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
26145
+ const RegisterReadme = "# sqm-portal-register\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| -------------------------- | ---------------------------- | ------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- |\r\n| `confirmPassword` | `confirm-password` | | `boolean` | `false` |\r\n| `confirmPasswordLabel` | `confirm-password-label` | | `string` | `\"Confirm Password\"` |\r\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; confirmPassword: boolean; hideInputs: boolean; validationState?: FormState; enablePasswordValidation?: boolean; loginPath: string; }; content?: { formData?: any; passwordField?: any; secondaryButton?: any; emailLabel?: string; passwordLabel?: string; submitLabel?: string; pageLabel?: string; confirmPasswordLabel: string; }; refs?: { formRef: any; }; }` | `undefined` |\r\n| `emailLabel` | `email-label` | | `string` | `\"Email\"` |\r\n| `enablePasswordValidation` | `enable-password-validation` | | `boolean` | `true` |\r\n| `hideInputs` | `hide-inputs` | | `boolean` | `false` |\r\n| `loginLabel` | `login-label` | | `string` | `\"Sign in\"` |\r\n| `loginPath` | `login-path` | | `string` | `\"/login\"` |\r\n| `nextPage` | `next-page` | | `string` | `\"/\"` |\r\n| `pageLabel` | `page-label` | | `string` | `\"Register\"` |\r\n| `passwordLabel` | `password-label` | | `string` | `\"Password\"` |\r\n| `redirectPath` | `redirect-path` | The page that users are redirected to from the verification email. | `string` | `\"/verifyEmail\"` |\r\n| `submitLabel` | `submit-label` | | `string` | `\"Register\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Used by\r\n\r\n - [sqm-stencilbook](../sqm-stencilbook)\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n- [sqm-password-field](../sqm-password-field)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-register --> sqm-form-message\r\n sqm-portal-register --> sqm-password-field\r\n sqm-stencilbook --> sqm-portal-register\r\n style sqm-portal-register fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
26013
26146
 
26014
26147
  const EditProfileReadme = "# sqm-portal-profile\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| ------------------------ | --------------------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |\r\n| `countrytext` | `countrytext` | | `string` | `\"Country\"` |\r\n| `demoData` | -- | | `{ states?: { success: boolean; loading: boolean; submitDisabled: boolean; showCountry: boolean; formState: { country: string; firstName: string; lastName: string; errors: any; error: string; }; user: { id: string; accountId: string; firstName: string; lastName: string; email: string; countryCode: string; }; text: { firstnametext: string; lastnametext: string; emailtext: string; countrytext: string; editProfileHeader: string; editProfileSubHeader: string; submitChangeButtonText: string; }; }; }` | `undefined` |\r\n| `editProfileHeader` | `edit-profile-header` | | `string` | `\"Edit your profile\"` |\r\n| `editProfileSubHeader` | `edit-profile-sub-header` | | `string` | `\"Personal Information\"` |\r\n| `emailtext` | `emailtext` | | `string` | `\"Email\"` |\r\n| `firstnametext` | `firstnametext` | | `string` | `\"First Name\"` |\r\n| `lastnametext` | `lastnametext` | | `string` | `\"Last Name\"` |\r\n| `showCountry` | `show-country` | | `boolean` | `true` |\r\n| `submitChangeButtonText` | `submit-change-button-text` | | `string` | `\"Submit Changes\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-profile --> sqm-form-message\r\n style sqm-portal-profile fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
26015
26148
 
26016
- const ResetPasswordReadme = "# sqm-portal-reset-password\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| --------------------------- | ------------------------------ | ------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |\r\n| `confirmPassword` | `confirm-password` | | `boolean` | `false` |\r\n| `confirmPasswordFieldLabel` | `confirm-password-field-label` | | `string` | `\"Confirm Password\"` |\r\n| `continueButtonText` | `continue-button-text` | Displayed after a successful password reset | `string` | `\"Continue\"` |\r\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; reset: boolean; confirmPassword: boolean; oobCodeValidating: boolean; oobCodeValid: boolean; passwordDemoData?: PasswordFieldViewDemoProps; content: { passwordResetHeader: string; resetPasswordHeader: string; continueButtonText: string; resetPasswordButtonText: string; confirmPasswordFieldLabel: string; passwordFieldLabel: string; }; }; }` | `undefined` |\r\n| `nextPage` | `next-page` | | `string` | `\"/\"` |\r\n| `passwordFieldLabel` | `password-field-label` | | `string` | `\"New Password\"` |\r\n| `passwordResetHeader` | `password-reset-header` | Displayed after a successful password reset | `string` | `\"Password reset\"` |\r\n| `resetPasswordButtonText` | `reset-password-button-text` | | `string` | `\"Reset Password\"` |\r\n| `resetPasswordHeader` | `reset-password-header` | | `string` | `\"Reset your password\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n- [sqm-password-field](../sqm-password-field)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-reset-password --> sqm-form-message\r\n sqm-portal-reset-password --> sqm-password-field\r\n style sqm-portal-reset-password fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
26149
+ const ResetPasswordReadme = "# sqm-portal-reset-password\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| --------------------------- | ------------------------------ | ------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |\r\n| `confirmPassword` | `confirm-password` | | `boolean` | `false` |\r\n| `confirmPasswordFieldLabel` | `confirm-password-field-label` | | `string` | `\"Confirm Password\"` |\r\n| `continueButtonText` | `continue-button-text` | Displayed after a successful password reset | `string` | `\"Continue\"` |\r\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; reset: boolean; confirmPassword: boolean; oobCodeValidating: boolean; oobCodeValid: boolean; passwordDemoData?: PasswordFieldViewDemoProps; content: { passwordResetHeader: string; resetPasswordHeader: string; continueButtonText: string; resetPasswordButtonText: string; confirmPasswordFieldLabel: string; passwordFieldLabel: string; }; }; }` | `undefined` |\r\n| `failedPage` | `failed-page` | The page that users are redirected to if the reset fails due to outdated password reset attempt. | `string` | `\"/\"` |\r\n| `nextPage` | `next-page` | The page that users are redirected to when the password reset succeeds. | `string` | `\"/\"` |\r\n| `passwordFieldLabel` | `password-field-label` | | `string` | `\"New Password\"` |\r\n| `passwordResetHeader` | `password-reset-header` | Displayed after a successful password reset | `string` | `\"Password reset\"` |\r\n| `resetPasswordButtonText` | `reset-password-button-text` | | `string` | `\"Reset Password\"` |\r\n| `resetPasswordHeader` | `reset-password-header` | | `string` | `\"Reset your password\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n- [sqm-password-field](../sqm-password-field)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-reset-password --> sqm-form-message\r\n sqm-portal-reset-password --> sqm-password-field\r\n style sqm-portal-reset-password fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
26017
26150
 
26018
- const EmailVerificationReadme = "# sqm-portal-email-verification\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| ------------------------- | --------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |\r\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; success: boolean; }; content?: { email: string; verifyMessage: string; emailVerificationHeader: string; resendEmailButtonText: string; }; }` | `undefined` |\r\n| `emailVerificationHeader` | `email-verification-header` | | `string` | `\"Verify your email\"` |\r\n| `resendEmailButtonText` | `resend-email-button-text` | | `string` | `\"Re-send Email\"` |\r\n| `verifyMessage` | `verify-message` | | `string` | `\"A verification email was sent to {email}. Please verify your email to continue to the portal.\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-email-verification --> sqm-form-message\r\n style sqm-portal-email-verification fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
26151
+ const EmailVerificationReadme = "# sqm-portal-email-verification\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| ------------------------- | --------------------------- | ------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |\r\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; success: boolean; }; content?: { email: string; verifyMessage: string; emailVerificationHeader: string; resendEmailButtonText: string; }; }` | `undefined` |\r\n| `emailVerificationHeader` | `email-verification-header` | | `string` | `\"Verify your email\"` |\r\n| `redirectPath` | `redirect-path` | The page that users are redirected to from the verification email. | `string` | `\"/verifyEmail\"` |\r\n| `resendEmailButtonText` | `resend-email-button-text` | | `string` | `\"Re-send Email\"` |\r\n| `verifyMessage` | `verify-message` | | `string` | `\"A verification email was sent to {email}. Please verify your email to continue to the portal.\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-email-verification --> sqm-form-message\r\n style sqm-portal-email-verification fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
26019
26152
 
26020
- const EmailVerifiedReadme = "# sqm-portal-verify-email\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| ---------- | ----------- | ----------- | ---------------------------------------------------------------------------------------------------- | ----------- |\r\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; verified: boolean; }; data?: { oobCode: string; }; }` | `undefined` |\r\n| `nextPage` | `next-page` | | `string` | `\"/\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-verify-email --> sqm-form-message\r\n style sqm-portal-verify-email fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
26153
+ const EmailVerifiedReadme = "# sqm-portal-verify-email\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| ------------ | ------------- | ------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ----------- |\r\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; verified: boolean; }; data?: { oobCode: string; }; }` | `undefined` |\r\n| `failedPage` | `failed-page` | The page that users are redirected to if verification fails due to outdated verification attempt. | `string` | `\"/\"` |\r\n| `nextPage` | `next-page` | The page that users are redirected to when the verification succeeds. | `string` | `\"/\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-verify-email --> sqm-form-message\r\n style sqm-portal-verify-email fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
26021
26154
 
26022
26155
  const PortalTemplates_stories = {
26023
26156
  title: "Templates / Portal",
@@ -26532,19 +26665,24 @@ const baseResponse = (data, stage = "chooseReward", selectedItem = null, selecte
26532
26665
  states: {
26533
26666
  content: {
26534
26667
  text: {
26535
- continueText: "Continue",
26536
- cancelText: "Cancel",
26537
- continueToConfirmationText: "Continue to confirmation",
26538
- backText: "Back",
26539
- redeemText: "Redeem",
26540
- doneText: "Done",
26668
+ buttonText: "Exchange Rewards",
26669
+ notAvailableError: "{unavailableReason, select, US_TAX {US Tax limit} INSUFFICIENT_REDEEMABLE_CREDIT {Not enough points} other {Not available} }",
26541
26670
  chooseRewardTitle: "Choose reward",
26542
26671
  chooseAmountTitle: "Amount",
26543
26672
  confirmationTitle: "Confirm",
26673
+ cancelText: "Cancel",
26674
+ backText: "Back",
26675
+ continueText: "Continue",
26676
+ continueToConfirmationText: "Continue to confirmation",
26677
+ redeemText: "Redeem",
26544
26678
  redeemTitle: "Confirm and redeem",
26679
+ redemptionSuccessText: "Successfully redeemed {sourceValue} for {destinationValue}",
26680
+ doneText: "Done",
26681
+ toolTipText: "Copied!",
26682
+ selectText: "Select amount to receive",
26683
+ sourceAmountMessage: "{ruleType, select, FIXED_GLOBAL_REWARD {{sourceValue}} other {{sourceMinValue} to {sourceMaxValue}}}",
26545
26684
  rewardRedeemedText: "Reward redeemed",
26546
- queryError: "An error occured trying to redeem this reward. Please try again.",
26547
- notAvailableError: "{unavailableReason, select, US_TAX {US Tax limit} INSUFFICIENT_REDEEMABLE_CREDIT {Not enough points} other {Not available} }",
26685
+ redemptionError: "An error occured trying to redeem this reward. Please try again",
26548
26686
  },
26549
26687
  },
26550
26688
  redeemStage: stage,
@@ -26819,7 +26957,7 @@ const props$2 = {
26819
26957
  };
26820
26958
  const steps1 = {
26821
26959
  cardTitle: "Invite your friends to Klip",
26822
- description: "Earn up to $1200 in rewards for each referral",
26960
+ description: "Send your referral link to a friend or share it through email, Twitter, or Facebook",
26823
26961
  color: "white",
26824
26962
  background: "#5B3EDA",
26825
26963
  icon: "person-plus-fill",
@@ -26868,7 +27006,7 @@ const ProgramExplainerStep_stories = {
26868
27006
  const Example1 = () => {
26869
27007
  const props = {
26870
27008
  cardTitle: "Invite your friends to Klip",
26871
- description: "Earn up to $1200 in rewards for each referral",
27009
+ description: "Send your referral link to a friend or share it through email, Twitter, or Facebook",
26872
27010
  color: "white",
26873
27011
  background: "#5B3EDA",
26874
27012
  icon: "person-plus-fill",
@@ -26988,7 +27126,7 @@ const CardFeed_stories = {
26988
27126
  };
26989
27127
  const props$3 = {
26990
27128
  width: 347,
26991
- gap: "xx-large",
27129
+ gap: 24,
26992
27130
  };
26993
27131
  const taskCardProps = {
26994
27132
  rewardAmount: "20",
@@ -26998,6 +27136,7 @@ const taskCardProps = {
26998
27136
  repeatable: false,
26999
27137
  showProgressBar: false,
27000
27138
  progress: 0,
27139
+ completedText: "Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}",
27001
27140
  goal: 1,
27002
27141
  buttonText: "Take survey",
27003
27142
  buttonLink: "https://example.com/",
@@ -27005,6 +27144,9 @@ const taskCardProps = {
27005
27144
  showExpiry: false,
27006
27145
  rewardDuration: null,
27007
27146
  loading: false,
27147
+ expiryMessage: "Ends {endDate}",
27148
+ startsOnMessage: "Starts {startDate}",
27149
+ endedMessage: "Ended {endDate}",
27008
27150
  finite: 0,
27009
27151
  };
27010
27152
  const coupleActions$1 = {
@@ -27014,6 +27156,7 @@ const coupleActions$1 = {
27014
27156
  description: "Description of action and reward. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget quisque commodo leo.",
27015
27157
  repeatable: false,
27016
27158
  showProgressBar: true,
27159
+ completedText: "Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}",
27017
27160
  steps: true,
27018
27161
  progress: 1,
27019
27162
  goal: 5,
@@ -27023,6 +27166,9 @@ const coupleActions$1 = {
27023
27166
  showExpiry: false,
27024
27167
  rewardDuration: null,
27025
27168
  loading: false,
27169
+ expiryMessage: "Ends {endDate}",
27170
+ startsOnMessage: "Starts {startDate}",
27171
+ endedMessage: "Ended {endDate}",
27026
27172
  finite: 0,
27027
27173
  };
27028
27174
  const manyActions$1 = {
@@ -27033,6 +27179,7 @@ const manyActions$1 = {
27033
27179
  repeatable: false,
27034
27180
  showProgressBar: true,
27035
27181
  progress: 100,
27182
+ completedText: "Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}",
27036
27183
  goal: 500,
27037
27184
  progressBarUnit: "$",
27038
27185
  buttonText: "Take survey",
@@ -27041,6 +27188,9 @@ const manyActions$1 = {
27041
27188
  showExpiry: false,
27042
27189
  rewardDuration: null,
27043
27190
  loading: false,
27191
+ expiryMessage: "Ends {endDate}",
27192
+ startsOnMessage: "Starts {startDate}",
27193
+ endedMessage: "Ended {endDate}",
27044
27194
  finite: 0,
27045
27195
  };
27046
27196
  const TaskCardGrid = () => {
@@ -27078,9 +27228,19 @@ const PortalContainer_stories = {
27078
27228
  const TooWideColumn = () => (index.h("div", { style: { width: "200px", border: "1px dashed grey" } },
27079
27229
  index.h("sqm-portal-container", null,
27080
27230
  index.h("div", { style: { background: "grey", border: "1px solid red" } }, "Small"),
27081
- index.h("div", { style: { background: "blue", width: "1000px" } }, "Too wide, content goes off the side of the page for ever and is hidden."))));
27231
+ index.h("div", { style: { background: "lightblue", width: "1000px" } }, "Too wide, content goes off the side of the page for ever and is hidden."))));
27082
27232
  const TooWideRow = () => (index.h("div", { style: { width: "500px", border: "1px dashed grey" } },
27083
27233
  index.h("sqm-portal-container", { direction: "row", "min-width": "160px" },
27234
+ index.h("sqm-share-button", { icon: "envelope", medium: "email", size: "medium", class: "hydrated" }, "Email a friend"),
27235
+ index.h("sqm-share-button", { medium: "twitter", size: "medium", class: "hydrated" }, "Tweet about us"),
27236
+ index.h("sqm-share-button", { medium: "facebook", size: "medium", class: "hydrated" }, "Share on Facebook"))));
27237
+ const HalfWidth = () => (index.h("div", { style: { width: "1000px", border: "1px dashed grey" } },
27238
+ index.h("sqm-portal-container", { direction: "row", minWidth: "160px", maxWidth: "50%" },
27239
+ index.h("sqm-share-button", { icon: "envelope", medium: "email", size: "medium", class: "hydrated" }, "Email a friend"),
27240
+ index.h("sqm-share-button", { medium: "twitter", size: "medium", class: "hydrated" }, "Tweet about us"),
27241
+ index.h("sqm-share-button", { medium: "facebook", size: "medium", class: "hydrated" }, "Share on Facebook"))));
27242
+ const FullWidth = () => (index.h("div", { style: { width: "1000px", border: "1px dashed grey" } },
27243
+ index.h("sqm-portal-container", { direction: "row", maxWidth: "100%" },
27084
27244
  index.h("sqm-share-button", { icon: "envelope", medium: "email", size: "medium", class: "hydrated" }, "Email a friend"),
27085
27245
  index.h("sqm-share-button", { medium: "twitter", size: "medium", class: "hydrated" }, "Tweet about us"),
27086
27246
  index.h("sqm-share-button", { medium: "facebook", size: "medium", class: "hydrated" }, "Share on Facebook"))));
@@ -27089,7 +27249,9 @@ const PortalContainer$1 = /*#__PURE__*/Object.freeze({
27089
27249
  __proto__: null,
27090
27250
  'default': PortalContainer_stories,
27091
27251
  TooWideColumn: TooWideColumn,
27092
- TooWideRow: TooWideRow
27252
+ TooWideRow: TooWideRow,
27253
+ HalfWidth: HalfWidth,
27254
+ FullWidth: FullWidth
27093
27255
  });
27094
27256
 
27095
27257
  /**
@@ -29885,12 +30047,34 @@ const TaskCard$3 = class {
29885
30047
  * @uiName Show Goal Expiry
29886
30048
  */
29887
30049
  this.showExpiry = false;
30050
+ /**
30051
+ * @uiName Expiry Date Message
30052
+ */
30053
+ this.expiryMessage = "Ends {endDate}";
29888
30054
  /**
29889
30055
  * @uiName Reward Duration
29890
30056
  * @uiWidget DateRange
29891
30057
  * @uiOptions {"allowPastDates":true, "months": 1}
29892
30058
  */
29893
30059
  this.rewardDuration = "/";
30060
+ /**
30061
+ * Shown to users before the start of the task duration.
30062
+ *
30063
+ * @uiName Start Date Message
30064
+ */
30065
+ this.startsOnMessage = "Starts {startDate}";
30066
+ /**
30067
+ * Shown to users after the end of the task duration.
30068
+ *
30069
+ * @uiName Ended Date Message
30070
+ */
30071
+ this.endedMessage = "Ended {endDate}";
30072
+ /**
30073
+ * Displays the amount of times that a user has completed a repeatable task.
30074
+ *
30075
+ * @uiName Completed Count Text
30076
+ */
30077
+ this.completedText = "Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}";
29894
30078
  /**
29895
30079
  * @uiName CTA Button Text
29896
30080
  */