@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
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, h as h$1, c as Host, d as getAssetPath } from './index-17b4da69.js';
2
2
  import { m as h, e as useEffect, j as useState, f as useRef, n as d$2, y as y$1, b as browser, u as useReducer, c as createCommonjsModule, a as commonjsGlobal, k as useMemo } from './extends-3a3f9fe2.js';
3
- import { i as intl, a as insertCSS } from './global-e0e25c22.js';
3
+ import { i as intl, a as insertCSS } from './global-1c68ff6e.js';
4
4
  import { u as useCallback } from './use-callback-b38a1523.js';
5
5
  import { d as dist, n as ne$1, c as cn, D as De, j as j$1, a as sn, b as mn, H as He, $ as $e, S as S$1, V as Ve, M as M$1, p as pn, v as vn, x as x$1, e as D$1, Y, z as ze, A as A$1 } from './index.module-eb50a8d2.js';
6
6
  import { j as jsonpointer } from './jsonpointer-388a7082.js';
@@ -8,28 +8,28 @@ import { j as jss, c as create } from './jss-preset-default.esm-71fae192.js';
8
8
  import { g as getProps, a as getMissingProps } from './utils-454405f5.js';
9
9
  import { c as cjs } from './cjs-bdfb4486.js';
10
10
  import { E as ErrorStyles, H as HostBlock, A as AuthWrapper, a as AuthColumn, b as AuthButtonsContainer, g as gap } from './mixins-10353a39.js';
11
- import { P as PortalContainerView, a as PortalProfileView } from './sqm-portal-profile-view-ba06e776.js';
11
+ import { P as PortalContainerView, a as PortalProfileView } from './sqm-portal-profile-view-864dd5b5.js';
12
12
  import { P as PortalSectionView } from './sqm-portal-section-view-f0876545.js';
13
13
  import { T as TextSpanView } from './sqm-text-span-view-1781df94.js';
14
- import { g as gql, L as LeaderboardRankView } from './sqm-leaderboard-rank-view-cd1e8962.js';
14
+ import { g as gql, L as LeaderboardRankView } from './sqm-leaderboard-rank-view-95e6fb4f.js';
15
15
  import { u as useRerenderListener, a as useRequestRerender } from './re-render-6d5b856e.js';
16
16
  import { S as ShareLinkView } from './sqm-share-link-view-9282b8e8.js';
17
- import { p as pathToRegexp, B as BigStatView, u as useBigStat, a as useDemoBigStat } from './useDemoBigStat-a0dd50ab.js';
17
+ import { p as pathToRegexp, B as BigStatView, u as useBigStat, a as useDemoBigStat } from './useDemoBigStat-acd4b73f.js';
18
18
  import { L as LeaderboardView, u as useLeaderboard, S as ShadowViewAddon } from './ShadowViewAddon-558fabb7.js';
19
19
  import { N as NavigationSidebarView } from './sqm-navigation-sidebar-view-2242502c.js';
20
20
  import { N as NavigationSidebarItemView } from './sqm-navigation-sidebar-item-view-2d8c368c.js';
21
21
  import { S as StatContainerView } from './sqm-stat-container-view-4133feb6.js';
22
22
  import { P as PortalForgotPasswordView } from './sqm-portal-forgot-password-view-e3a6a716.js';
23
- import { P as PortalEmailVerificationView } from './sqm-portal-email-verification-view-2af31979.js';
23
+ import { P as PortalEmailVerificationView } from './sqm-portal-email-verification-view-71eb8adb.js';
24
24
  import { P as PortalResetPasswordView$1 } from './sqm-portal-reset-password-view-a4e50da2.js';
25
25
  import { P as PortalVerifyEmailView } from './sqm-portal-verify-email-view-6f18bac2.js';
26
26
  import { A as AssetCardView } from './sqm-asset-card-view-6f360937.js';
27
- import { P as PoweredByImg$1, a as PortalFooterView } from './sqm-portal-footer-view-60cd9ae5.js';
27
+ import { P as PoweredByImg$1, a as PortalFooterView } from './sqm-portal-footer-view-5cb00c4e.js';
28
28
  import { H as HeroView } from './sqm-hero-view-bfd8abd1.js';
29
29
  import { N as NameFieldsView } from './sqm-name-fields-view-4162fb7b.js';
30
- import { P as ProgramExplainerView } from './sqm-program-explainer-view-ab291eb4.js';
31
- import { P as ProgramExplainerStepView } from './sqm-program-explainer-step-view-7c0d5f71.js';
32
- import { C as CardFeedView } from './sqm-card-feed-view-81f93bc7.js';
30
+ import { P as ProgramExplainerView } from './sqm-program-explainer-view-f726f5ec.js';
31
+ import { P as ProgramExplainerStepView } from './sqm-program-explainer-step-view-e2b39225.js';
32
+ import { C as CardFeedView } from './sqm-card-feed-view-cdd1f818.js';
33
33
 
34
34
  /**
35
35
  * Build a font CSS URL using the Google Fonts CSS API
@@ -1376,6 +1376,10 @@ const PortalContainer = class {
1376
1376
  * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"]
1377
1377
  */
1378
1378
  this.gap = "xxx-large";
1379
+ /**
1380
+ * @uiName Maximum width
1381
+ */
1382
+ this.maxWidth = "100%";
1379
1383
  h(this);
1380
1384
  }
1381
1385
  disconnectedCallback() { }
@@ -1523,7 +1527,7 @@ function PortalLoginView(props) {
1523
1527
  content.secondaryButton))));
1524
1528
  }
1525
1529
 
1526
- function usePortalLogin({ nextPage }) {
1530
+ function usePortalLogin(props) {
1527
1531
  var _a, _b, _c, _d;
1528
1532
  const [request, { loading, errors, data }] = $e();
1529
1533
  const [error, setError] = useState("");
@@ -1543,7 +1547,7 @@ function usePortalLogin({ nextPage }) {
1543
1547
  if ((_a = data === null || data === void 0 ? void 0 : data.authenticateManagedIdentityWithEmailAndPassword) === null || _a === void 0 ? void 0 : _a.token) {
1544
1548
  urlParams.delete("nextPage");
1545
1549
  mn.push({
1546
- pathname: nextPageOverride || nextPage,
1550
+ pathname: nextPageOverride || props.nextPage,
1547
1551
  search: urlParams.toString() && "?" + urlParams.toString(),
1548
1552
  });
1549
1553
  }
@@ -1559,6 +1563,8 @@ function usePortalLogin({ nextPage }) {
1559
1563
  states: {
1560
1564
  loading,
1561
1565
  error: errorMessage,
1566
+ registerPath: props.registerPath,
1567
+ forgotPasswordPath: props.forgotPasswordPath
1562
1568
  },
1563
1569
  callbacks: {
1564
1570
  submit,
@@ -1598,6 +1604,14 @@ const PortalLogin = class {
1598
1604
  * @uiName Heading label
1599
1605
  */
1600
1606
  this.pageLabel = "Sign in to your account";
1607
+ /**
1608
+ * @uiName Register button redirection path
1609
+ */
1610
+ this.registerPath = "/register";
1611
+ /**
1612
+ * @uiName Forgot password button redirect path
1613
+ */
1614
+ this.forgotPasswordPath = "/forgotPassword";
1601
1615
  h(this);
1602
1616
  }
1603
1617
  disconnectedCallback() { }
@@ -1606,8 +1620,8 @@ const PortalLogin = class {
1606
1620
  ? useLoginDemo(this)
1607
1621
  : usePortalLogin(this);
1608
1622
  const content = {
1609
- forgotPasswordButton: (h$1("slot", { name: "forgotPassword" }, h$1("a", { onClick: () => mn.push("/forgotPassword") }, this.forgotPasswordLabel))),
1610
- secondaryButton: (h$1("slot", { name: "secondaryButton" }, h$1("sl-button", { type: "text", disabled: states.loading, onClick: () => mn.push("/register") }, this.registerLabel))),
1623
+ forgotPasswordButton: (h$1("slot", { name: "forgotPassword" }, h$1("a", { onClick: () => mn.push(states.forgotPasswordPath) }, this.forgotPasswordLabel))),
1624
+ secondaryButton: (h$1("slot", { name: "secondaryButton" }, h$1("sl-button", { type: "text", disabled: states.loading, onClick: () => mn.push(states.registerPath) }, this.registerLabel))),
1611
1625
  emailLabel: this.emailLabel,
1612
1626
  passwordLabel: this.passwordLabel,
1613
1627
  submitLabel: this.submitLabel,
@@ -1618,7 +1632,12 @@ const PortalLogin = class {
1618
1632
  };
1619
1633
  function useLoginDemo(props) {
1620
1634
  return cjs({
1621
- states: { error: "", loading: false },
1635
+ states: {
1636
+ error: "",
1637
+ loading: false,
1638
+ forgotPasswordPath: "/forgotPassword",
1639
+ registerPath: "/register",
1640
+ },
1622
1641
  callbacks: {
1623
1642
  submit: async (_event) => {
1624
1643
  console.log("submit");
@@ -5620,10 +5639,12 @@ function usePortalRegister(props) {
5620
5639
  delete formData.password;
5621
5640
  delete formData.confirmPassword;
5622
5641
  formData = { ...formData };
5642
+ const redirectPath = props.redirectPath;
5623
5643
  const variables = {
5624
5644
  email,
5625
5645
  password,
5626
5646
  formData,
5647
+ redirectPath,
5627
5648
  };
5628
5649
  try {
5629
5650
  await request(variables);
@@ -5673,6 +5694,7 @@ function usePortalRegister(props) {
5673
5694
  validationState,
5674
5695
  confirmPassword: props.confirmPassword,
5675
5696
  hideInputs: props.hideInputs,
5697
+ loginPath: props.loginPath,
5676
5698
  },
5677
5699
  callbacks: {
5678
5700
  submit,
@@ -5692,6 +5714,12 @@ const PortalRegister = class {
5692
5714
  * @uiName Page navigated to after registration
5693
5715
  */
5694
5716
  this.nextPage = "/";
5717
+ /**
5718
+ * The page that users are redirected to from the verification email.
5719
+ *
5720
+ * @uiName Email redirection base path
5721
+ */
5722
+ this.redirectPath = "/verifyEmail";
5695
5723
  /**
5696
5724
  * @uiName Label for email field
5697
5725
  */
@@ -5728,6 +5756,10 @@ const PortalRegister = class {
5728
5756
  * @uiName Heading label
5729
5757
  */
5730
5758
  this.pageLabel = "Register";
5759
+ /**
5760
+ * @uiName Sign in button redirection path
5761
+ */
5762
+ this.loginPath = "/login";
5731
5763
  h(this);
5732
5764
  }
5733
5765
  disconnectedCallback() { }
@@ -5737,7 +5769,7 @@ const PortalRegister = class {
5737
5769
  : usePortalRegister(this);
5738
5770
  const content = {
5739
5771
  formData: h$1("slot", { name: "formData" }),
5740
- secondaryButton: (h$1("slot", { name: "secondaryButton" }, h$1("sl-button", { type: "text", disabled: states.loading, onClick: () => mn.push("/login") }, this.loginLabel))),
5772
+ secondaryButton: (h$1("slot", { name: "secondaryButton" }, h$1("sl-button", { type: "text", disabled: states.loading, onClick: () => mn.push(states.loginPath) }, this.loginLabel))),
5741
5773
  emailLabel: this.emailLabel,
5742
5774
  passwordLabel: this.passwordLabel,
5743
5775
  submitLabel: this.submitLabel,
@@ -5755,6 +5787,7 @@ function useRegisterDemo(props) {
5755
5787
  confirmPassword: true,
5756
5788
  hideInputs: props.hideInputs || false,
5757
5789
  customPasswordField: false,
5790
+ loginPath: "/login",
5758
5791
  },
5759
5792
  callbacks: {
5760
5793
  submit: async (_event) => {
@@ -6389,8 +6422,11 @@ function useReferraltableDemo(props) {
6389
6422
  elements: {
6390
6423
  emptyElement: h$1(EmptySlot, null),
6391
6424
  loadingElement: h$1(LoadingSlot, null),
6392
- // FIXME: Even in demo mode, this should use real column names!
6393
- columns: [h$1("div", null, "Example"), h$1("div", null, "Example"), h$1("div", null, "Example")],
6425
+ columns: [
6426
+ h$1("div", null, "User"),
6427
+ h$1("div", null, "Referral Status"),
6428
+ h$1("div", null, "Rewards"),
6429
+ ],
6394
6430
  rows: [],
6395
6431
  },
6396
6432
  }, props.demoData || {}, { arrayMerge: (_, a) => a });
@@ -15172,41 +15208,6 @@ function RewardExchangeView(props) {
15172
15208
  padding: "var(--sl-spacing-medium)",
15173
15209
  position: "relative",
15174
15210
  },
15175
- CardContainer: {
15176
- "&:active": {
15177
- //boxShadow: "0 3px 10px #87ceeb6e!important",
15178
- },
15179
- },
15180
- Base: {
15181
- display: "flex",
15182
- cursor: "pointer",
15183
- textAlign: "center",
15184
- height: "120px",
15185
- "&::part(base)": {
15186
- boxShadow: "none",
15187
- width: "100%",
15188
- display: "flex",
15189
- margin: "0 auto",
15190
- },
15191
- "&::part(body)": {
15192
- padding: 0,
15193
- display: "flex",
15194
- width: "100%",
15195
- },
15196
- },
15197
- Drawer: {
15198
- "&::part(base)": {
15199
- minWidth: "400px",
15200
- maxWidth: "700px",
15201
- width: "50%",
15202
- margin: "0 auto",
15203
- right: "0",
15204
- },
15205
- "&::part(panel)": {
15206
- height: "85vh",
15207
- width: "100%",
15208
- },
15209
- },
15210
15211
  FullImage: {
15211
15212
  objectFit: "contain",
15212
15213
  maxWidth: "100%",
@@ -15214,16 +15215,6 @@ function RewardExchangeView(props) {
15214
15215
  display: "flex",
15215
15216
  margin: "0 auto",
15216
15217
  },
15217
- PreviewImage: {
15218
- objectFit: "contain",
15219
- width: "120px",
15220
- height: "118px",
15221
- flex: 0.33,
15222
- },
15223
- InputBox: {
15224
- width: "100%",
15225
- marginBottom: "20px",
15226
- },
15227
15218
  Select: {
15228
15219
  "&::part(label)": {
15229
15220
  color: "var(--sl-color-primary-500)",
@@ -15276,42 +15267,39 @@ function RewardExchangeView(props) {
15276
15267
  margin: "-9px",
15277
15268
  },
15278
15269
  },
15279
- Square: {
15280
- width: "120px",
15281
- height: "118px",
15282
- borderRadius: "3px 0 0 3px",
15270
+ Image: {
15271
+ padding: "var(--sl-spacing-small)",
15272
+ minWidth: "96px",
15273
+ maxWidth: "96px",
15283
15274
  "& .image": {
15284
15275
  width: "100%",
15285
15276
  height: "100%",
15286
15277
  objectFit: "contain",
15287
- borderRadius: "inherit",
15278
+ borderRadius: "4px",
15288
15279
  },
15289
15280
  "& .image.subdued": {
15290
15281
  filter: "brightness(0.95)",
15291
15282
  opacity: "0.5",
15292
15283
  },
15293
15284
  },
15294
- Image: {
15295
- padding: "8px",
15296
- minWidth: "96px",
15297
- maxWidth: "96px",
15285
+ Square: {
15286
+ width: "120px",
15287
+ height: "118px",
15288
+ borderRadius: "3px 0 0 3px",
15298
15289
  "& .image": {
15299
15290
  width: "100%",
15300
15291
  height: "100%",
15301
15292
  objectFit: "contain",
15302
- borderRadius: "4px",
15303
- },
15304
- "& .image.subdued": {
15305
- filter: "brightness(0.95)",
15306
- opacity: "0.5",
15293
+ borderRadius: "inherit",
15307
15294
  },
15308
15295
  },
15309
15296
  TextArea: {
15310
15297
  textAlign: "left",
15311
- padding: "12px",
15298
+ padding: "var(--sl-spacing-small)",
15299
+ paddingLeft: "0",
15312
15300
  "& .title": {
15313
- fontSize: "16px",
15314
- lineHeight: "20px",
15301
+ fontSize: "var(--sl-font-size-medium)",
15302
+ lineHeight: "var(--sl-line-height-dense)",
15315
15303
  fontWeight: "600",
15316
15304
  color: "var(--sl-color-neutral-1000)",
15317
15305
  display: "-webkit-box",
@@ -15320,9 +15308,9 @@ function RewardExchangeView(props) {
15320
15308
  overflow: "hidden",
15321
15309
  },
15322
15310
  "& .amount": {
15323
- fontSize: "14px",
15324
- lineHeight: "18px",
15325
- marginTop: "8px",
15311
+ fontSize: "var(--sl-font-size-small)",
15312
+ lineHeight: "var(--sl-line-height-dense)",
15313
+ marginTop: "var(--sl-spacing-x-small)",
15326
15314
  color: "var(--sl-color-neutral-500)",
15327
15315
  display: "-webkit-box",
15328
15316
  "-webkit-line-clamp": "1",
@@ -15330,28 +15318,31 @@ function RewardExchangeView(props) {
15330
15318
  overflow: "hidden",
15331
15319
  },
15332
15320
  "& .error": {
15333
- fontSize: "14px",
15334
- lineHeight: "18px",
15335
- marginTop: "8px",
15321
+ fontSize: "var(--sl-font-size-small)",
15322
+ lineHeight: "var(--sl-line-height-dense)",
15323
+ marginTop: "var(--sl-spacing-x-small)",
15336
15324
  fontWeight: "600",
15337
15325
  color: "var(--sl-color-warning-500)",
15338
15326
  display: "-webkit-box",
15339
15327
  "-webkit-line-clamp": "1",
15340
15328
  "-webkit-box-orient": "vertical",
15341
15329
  overflow: "hidden",
15330
+ "& .icon": {
15331
+ position: "relative",
15332
+ top: "0.1em",
15333
+ marginRight: "var(--sl-spacing-xx-small)",
15334
+ },
15342
15335
  },
15343
15336
  },
15344
15337
  ChooseAmount: {
15345
15338
  margin: "var(--sl-spacing-medium) 0",
15346
15339
  "& .title": {
15347
- //fontSize: "var(--sl-font-size-large)",
15348
- fontSize: "113%",
15340
+ fontSize: "var(--sl-font-size-large)",
15349
15341
  fontWeight: "var(--sl-font-weight-semibold)",
15350
15342
  color: "var(--sl-color-neutral-1000)",
15351
15343
  },
15352
15344
  "& .points": {
15353
- //fontSize: "var(--sl-font-size-large)",
15354
- fontSize: "113%",
15345
+ fontSize: "var(--sl-font-size-large)",
15355
15346
  fontWeight: "var(--sl-font-weight-semibold)",
15356
15347
  color: "var(--sl-color-primary-500)",
15357
15348
  },
@@ -15401,7 +15392,7 @@ function RewardExchangeView(props) {
15401
15392
  fontWeight: "var(--sl-font-weight-normal)",
15402
15393
  color: "var(--sl-color-neutral-1000)",
15403
15394
  },
15404
- "@media (max-width: 1024px)": {
15395
+ "@media (max-width: 499px)": {
15405
15396
  width: "100%",
15406
15397
  marginRight: "0",
15407
15398
  },
@@ -15413,7 +15404,7 @@ function RewardExchangeView(props) {
15413
15404
  fontWeight: "var(--sl-font-weight-normal)",
15414
15405
  color: "var(--sl-color-neutral-0)",
15415
15406
  },
15416
- "@media (max-width: 1024px)": {
15407
+ "@media (max-width: 499px)": {
15417
15408
  width: "100%",
15418
15409
  },
15419
15410
  },
@@ -15430,7 +15421,7 @@ function RewardExchangeView(props) {
15430
15421
  const sheet = jss.createStyleSheet(style);
15431
15422
  const styleString = sheet.toString();
15432
15423
  function getInput() {
15433
- var _a, _b;
15424
+ var _a, _b, _c;
15434
15425
  const item = states.selectedItem;
15435
15426
  if (!item || (item === null || item === void 0 ? void 0 : item.ruleType) === "FIXED_GLOBAL_REWARD")
15436
15427
  return h$1("span", null, item === null || item === void 0 ? void 0 : item.prettySourceValue);
@@ -15442,19 +15433,22 @@ function RewardExchangeView(props) {
15442
15433
  sourceUnit: item.sourceUnit,
15443
15434
  })));
15444
15435
  }
15445
- return (h$1("sl-select", { style: { width: "auto" }, label: "Select amount to receive", class: sheet.classes.Select, value: states.selectedStep, "onSl-select": (e) => {
15436
+ return (h$1("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) => {
15446
15437
  var _a, _b, _c, _d, _e;
15447
15438
  return callbacks.setExchangeState({
15448
15439
  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,
15449
15440
  selectedStep: (_e = (_d = e.detail) === null || _d === void 0 ? void 0 : _d.item) === null || _e === void 0 ? void 0 : _e.value,
15450
15441
  });
15451
- } }, (_b = item.steps) === null || _b === void 0 ? void 0 : _b.map((step) => {
15442
+ } }, (_c = item.steps) === null || _c === void 0 ? void 0 : _c.map((step) => {
15452
15443
  var _a, _b;
15453
15444
  return (h$1("sl-menu-item", { value: step, disabled: !step.available },
15454
15445
  step.prettyDestinationValue,
15455
15446
  h$1("div", { slot: "suffix", style: { fontSize: "75%", float: "right" } },
15456
15447
  step.prettySourceValue,
15457
- step.unavailableReasonCode && (h$1("p", { style: { fontSize: "70%", color: "#F2994A" } }, intl.formatMessage({
15448
+ step.unavailableReasonCode && (h$1("p", { style: {
15449
+ fontSize: "70%",
15450
+ color: "var(--sl-color-warning-500)",
15451
+ } }, intl.formatMessage({
15458
15452
  id: "unavailableCode",
15459
15453
  defaultMessage: (_b = (_a = states.content) === null || _a === void 0 ? void 0 : _a.text) === null || _b === void 0 ? void 0 : _b.notAvailableError,
15460
15454
  }, {
@@ -15475,12 +15469,7 @@ function RewardExchangeView(props) {
15475
15469
  : "none",
15476
15470
  borderRadius: "4px",
15477
15471
  };
15478
- const amount = item.ruleType === "FIXED_GLOBAL_REWARD"
15479
- ? item.prettySourceValue
15480
- : item.ruleType === "STEPPED_FIXED_GLOBAL_REWARD"
15481
- ? `${(_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}`
15482
- : `${item.prettySourceMinValue} to ${item.prettySourceMaxValue}`;
15483
- return (h$1("div", { key: item.key, class: item.available ? sheet.classes.CardContainer : "", style: style },
15472
+ return (h$1("div", { key: item.key, style: style },
15484
15473
  h$1("sl-card", { class: sheet.classes.Card, style: {
15485
15474
  cursor: item.unavailableReasonCode
15486
15475
  ? "not-allowed"
@@ -15510,22 +15499,32 @@ function RewardExchangeView(props) {
15510
15499
  "-webkit-line-clamp": item.unavailableReasonCode
15511
15500
  ? "1"
15512
15501
  : "2",
15513
- } }, (_c = item.name) !== null && _c !== void 0 ? _c : ""),
15502
+ } }, (_a = item.name) !== null && _a !== void 0 ? _a : ""),
15514
15503
  h$1("div", { class: "amount", style: {
15515
15504
  "-webkit-line-clamp": item.unavailableReasonCode
15516
15505
  ? "1"
15517
15506
  : "2",
15518
- } }, amount),
15519
- item.unavailableReasonCode && (h$1("div", { class: "error" }, intl.formatMessage({
15520
- id: "unavailableCode",
15521
- defaultMessage: (_e = (_d = states.content) === null || _d === void 0 ? void 0 : _d.text) === null || _e === void 0 ? void 0 : _e.notAvailableError,
15507
+ } }, intl.formatMessage({
15508
+ id: "sourceAmountMessage",
15509
+ defaultMessage: (_c = (_b = states.content) === null || _b === void 0 ? void 0 : _b.text) === null || _c === void 0 ? void 0 : _c.sourceAmountMessage,
15522
15510
  }, {
15523
- unavailableReason: item.unavailableReason ||
15524
- item.unavailableReasonCode,
15525
- sourceUnit: item.sourceUnit,
15526
- sourceValue: item.prettySourceValue ||
15527
- item.prettySourceMinValue,
15528
- }))))))));
15511
+ ruleType: item.ruleType,
15512
+ sourceValue: item.prettySourceValue,
15513
+ sourceMinValue: item.prettySourceMinValue,
15514
+ sourceMaxValue: item.prettySourceMaxValue,
15515
+ })),
15516
+ item.unavailableReasonCode && (h$1("div", { class: "error" },
15517
+ h$1("sl-icon", { class: "icon", name: "exclamation-triangle-fill" }),
15518
+ intl.formatMessage({
15519
+ id: "unavailableCode",
15520
+ defaultMessage: (_e = (_d = states.content) === null || _d === void 0 ? void 0 : _d.text) === null || _e === void 0 ? void 0 : _e.notAvailableError,
15521
+ }, {
15522
+ unavailableReason: item.unavailableReason ||
15523
+ item.unavailableReasonCode,
15524
+ sourceUnit: item.sourceUnit,
15525
+ sourceValue: item.prettySourceValue ||
15526
+ item.prettySourceMinValue,
15527
+ }))))))));
15529
15528
  })),
15530
15529
  h$1("div", { class: sheet.classes.Button },
15531
15530
  h$1("sl-button", { class: "continue right", size: "large", onClick: () => callbacks.setStage("chooseAmount"), loading: states.loading, disabled: !states.selectedItem }, states.content.text.continueText)),
@@ -15552,36 +15551,44 @@ function RewardExchangeView(props) {
15552
15551
  function confirmation() {
15553
15552
  console.log(selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.name);
15554
15553
  return (h$1("div", null,
15555
- h$1("h2", { style: { margin: "20px 0" } }, states.content.text.redeemTitle),
15554
+ h$1("h2", { style: { margin: "var(--sl-spacing-large) 0" } }, states.content.text.redeemTitle),
15556
15555
  h$1("div", { style: {
15557
15556
  textAlign: "center",
15558
15557
  marginBottom: "var(--sl-spacing-xxx-large)",
15559
15558
  } },
15560
15559
  h$1("p", null,
15561
- h$1("span", { style: { fontSize: "18px" } }, (selectedStep === null || selectedStep === void 0 ? void 0 : selectedStep.prettySourceValue) || (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.prettySourceValue))),
15560
+ h$1("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))),
15562
15561
  h$1("p", null,
15563
15562
  h$1(ExchangeArrows, null)),
15564
- h$1("div", { class: sheet.classes.CardContainer, style: {
15563
+ h$1("div", { style: {
15565
15564
  boxShadow: "none",
15566
15565
  marginBottom: "10px",
15567
15566
  flex: "1",
15568
15567
  minWidth: "100%",
15569
15568
  } },
15570
- h$1("sl-card", { style: { width: "auto", maxWidth: "350px", margin: "auto" }, class: sheet.classes.Card },
15571
- h$1("div", { class: sheet.classes.Square },
15572
- h$1("img", { class: "image", src: (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.imageUrl) ||
15573
- getAssetPath("./assets/placeholder.png") })),
15574
- h$1("div", { class: sheet.classes.TextArea, style: {
15575
- lineHeight: "18px",
15576
- alignSelf: "center",
15577
- } }, (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) || ""}`
15578
- : (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.name) || "")))),
15569
+ h$1("sl-card", { class: sheet.classes.Card, style: {
15570
+ width: "33%",
15571
+ margin: "auto",
15572
+ } },
15573
+ h$1("div", { style: {
15574
+ display: "flex",
15575
+ width: "100%",
15576
+ height: "120px",
15577
+ borderRadius: "3px",
15578
+ background: "rgba(0, 0, 0, 0)",
15579
+ } },
15580
+ h$1("div", { class: sheet.classes.Image },
15581
+ h$1("img", { class: "image", src: (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.imageUrl) ||
15582
+ getAssetPath("./assets/placeholder.png") })),
15583
+ h$1("div", { class: sheet.classes.TextArea },
15584
+ h$1("div", { class: "title" }, selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.name),
15585
+ h$1("div", { class: "amount" }, selectedStep === null || selectedStep === void 0 ? void 0 : selectedStep.destinationValue)))))),
15579
15586
  h$1("div", { class: sheet.classes.Button },
15580
15587
  h$1("sl-button", { class: "cancel", type: "text", size: "large", onClick: () => callbacks.setStage("chooseAmount") }, states.content.text.backText),
15581
15588
  h$1("sl-button", { class: "continue", size: "large", loading: states.loading, onClick: callbacks.exchangeReward }, states.content.text.redeemText))));
15582
15589
  }
15583
15590
  function success() {
15584
- var _a, _b, _c, _d;
15591
+ var _a, _b, _c, _d, _e;
15585
15592
  return (h$1("div", { class: sheet.classes.Success },
15586
15593
  h$1(Gift, null),
15587
15594
  h$1("div", { class: "title" }, states.content.text.rewardRedeemedText),
@@ -15596,8 +15603,11 @@ function RewardExchangeView(props) {
15596
15603
  (data === null || data === void 0 ? void 0 : data.fuelTankCode) && (h$1("div", { style: {
15597
15604
  width: "40%",
15598
15605
  margin: "-30px auto var(--sl-spacing-xxx-large) auto",
15606
+ textAlign: "left",
15607
+ color: "var(--sl-color-neutral-700)",
15599
15608
  } },
15600
- h$1(ShareLinkView, { shareString: data.fuelTankCode, tooltiptext: "Copied", open: states.open, onClick: callbacks.copyFuelTankCode }))),
15609
+ "Promo code",
15610
+ h$1(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 }))),
15601
15611
  h$1("div", { class: sheet.classes.Button },
15602
15612
  h$1("sl-button", { class: "continue center", type: "primary", size: "large", onClick: () => callbacks.resetState(true) }, states.content.text.doneText))));
15603
15613
  }
@@ -15622,8 +15632,8 @@ function RewardExchangeView(props) {
15622
15632
  h$1(ProgressBar, { stageCount: 3, currentStage: stageNumber })));
15623
15633
  }
15624
15634
  function loading() {
15625
- return (h$1("div", { class: sheet.classes.Grid }, [...Array(8)].map(() => {
15626
- return (h$1("div", { class: sheet.classes.CardContainer },
15635
+ return (h$1("div", { class: sheet.classes.Grid }, [...Array(states.content.text.skeletonCardNum)].map(() => {
15636
+ return (h$1("div", null,
15627
15637
  h$1("sl-card", { class: sheet.classes.Card },
15628
15638
  h$1("div", { class: sheet.classes.CardLayout },
15629
15639
  h$1("div", null,
@@ -15633,9 +15643,12 @@ function RewardExchangeView(props) {
15633
15643
  margin: "9px",
15634
15644
  "--border-radius": "4px",
15635
15645
  } })),
15636
- h$1("div", { style: { margin: "12px 12px 0 0", width: "100%" } },
15637
- h$1("sl-skeleton", { style: { marginBottom: "12px" } }),
15638
- h$1("sl-skeleton", { style: { marginBottom: "12px" } }),
15646
+ h$1("div", { style: {
15647
+ margin: "var(--sl-spacing-small) var(--sl-spacing-small) 0 0",
15648
+ width: "100%",
15649
+ } },
15650
+ h$1("sl-skeleton", { style: { marginBottom: "var(--sl-spacing-small)" } }),
15651
+ h$1("sl-skeleton", { style: { marginBottom: "var(--sl-spacing-small)" } }),
15639
15652
  h$1("sl-skeleton", { style: { width: "45%" } }))))));
15640
15653
  })));
15641
15654
  }
@@ -15674,11 +15687,11 @@ const SqmRewardExchangeList = class {
15674
15687
  /**
15675
15688
  * @uiName Choose Reward Progress Title
15676
15689
  */
15677
- this.chooseRewardTitle = "Choose reward";
15690
+ this.chooseRewardTitle = "Rewards";
15678
15691
  /**
15679
15692
  * @uiName Choose Amount Progress Title
15680
15693
  */
15681
- this.chooseAmountTitle = "Amount";
15694
+ this.chooseAmountTitle = "Select";
15682
15695
  /**
15683
15696
  * @uiName Confirmation Progress Title
15684
15697
  */
@@ -15707,11 +15720,28 @@ const SqmRewardExchangeList = class {
15707
15720
  * @uiName Confirmation Title Text
15708
15721
  */
15709
15722
  this.redeemTitle = "Confirm and redeem";
15723
+ /**
15724
+ * @uiName Redemption Success Message
15725
+ */
15710
15726
  this.redemptionSuccessText = "Successfully redeemed {sourceValue} for {destinationValue}";
15727
+ /**
15728
+ * @uiName Reward Exchange Amount Text
15729
+ */
15730
+ this.sourceAmountMessage = "{ruleType, select, FIXED_GLOBAL_REWARD {{sourceValue}} other {{sourceMinValue} to {sourceMaxValue}}}";
15731
+ /**
15732
+ * Shown when a user copies a fuel tank code
15733
+ *
15734
+ * @uiName Tool Tip Text
15735
+ */
15736
+ this.tooltiptext = "Copied";
15711
15737
  /**
15712
15738
  * @uiName Done Text
15713
15739
  */
15714
15740
  this.doneText = "Done";
15741
+ /**
15742
+ * @uiName Select Amount Text
15743
+ */
15744
+ this.selectText = "Select amount to receive";
15715
15745
  /**
15716
15746
  * @uiName Reward List Error Message
15717
15747
  */
@@ -15724,6 +15754,10 @@ const SqmRewardExchangeList = class {
15724
15754
  * @uiName Not Enough Available Error Message
15725
15755
  */
15726
15756
  this.notEnoughError = "Not enough {sourceUnit} to redeem for this reward";
15757
+ /**
15758
+ * @uiName Number of Skeleton Cards
15759
+ */
15760
+ this.skeletonCardNum = 8;
15727
15761
  h(this);
15728
15762
  }
15729
15763
  disconnectedCallback() { }
@@ -16551,19 +16585,27 @@ const SqmRouter = class {
16551
16585
  };
16552
16586
  SqmRouter.style = sqmRouterCss;
16553
16587
 
16554
- const style$8 = {
16555
- HostBlock: HostBlock,
16556
- buttonStyle: {
16557
- display: "block",
16558
- },
16559
- };
16560
- jss.setup(create());
16561
- const sheet$8 = jss.createStyleSheet(style$8);
16562
- const styleString$8 = sheet$8.toString();
16563
16588
  function ShareButtonView(props, children) {
16589
+ const vanillaStyle = `
16590
+ *::part(base) {
16591
+ background: ${props.backgroundcolor ? props.backgroundcolor : ""};
16592
+ color: ${props.textcolor ? props.textcolor : ""};
16593
+ border-radius: ${props.borderradius ? props.borderradius + "px" : ""};
16594
+ }
16595
+ `;
16596
+ const style = {
16597
+ HostBlock: HostBlock,
16598
+ buttonStyle: {
16599
+ display: "block",
16600
+ },
16601
+ };
16602
+ jss.setup(create());
16603
+ const sheet = jss.createStyleSheet(style);
16604
+ const styleString = sheet.toString();
16564
16605
  return props.hide ? (h$1(Host, { style: { display: "none" } })) : (h$1("div", null,
16565
- h$1("style", { type: "text/css" }, styleString$8),
16566
- h$1("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` },
16606
+ h$1("style", { type: "text/css" }, styleString),
16607
+ h$1("style", { type: "text/css" }, vanillaStyle),
16608
+ h$1("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` },
16567
16609
  !props.hideicon && (h$1("sl-icon", { slot: props.iconslot, name: props.icon ? props.icon : props.medium, exportparts: "icon" })),
16568
16610
  !props.hidetext && children)));
16569
16611
  }
@@ -16694,16 +16736,8 @@ const ShareButton = class {
16694
16736
  };
16695
16737
  function useDemoShareButton(props) {
16696
16738
  return cjs({
16697
- medium: props.medium,
16739
+ ...props,
16698
16740
  loading: false,
16699
- disabled: props.disabled,
16700
- pill: props.pill,
16701
- type: props.type,
16702
- size: props.size,
16703
- hideicon: props.hideicon,
16704
- hidetext: props.hidetext,
16705
- iconslot: props.iconslot,
16706
- icon: props.icon,
16707
16741
  hide: false,
16708
16742
  onClick: () => {
16709
16743
  // TODO: Provide visual feedback
@@ -18254,6 +18288,27 @@ const TextStyleWithoutIcon = () => {
18254
18288
  const props = { medium: "facebook", type: "text", hideicon: true };
18255
18289
  return h$1(ShareButtonView, Object.assign({}, props), "Share");
18256
18290
  };
18291
+ const WithCustomColors = () => {
18292
+ const props = {
18293
+ medium: "facebook",
18294
+ type: "text",
18295
+ backgroundcolor: "#3b5998",
18296
+ textcolor: "#fff",
18297
+ iconslot: "prefix",
18298
+ };
18299
+ return h$1(ShareButtonView, Object.assign({}, props), "Facebook");
18300
+ };
18301
+ const WithCustomBorderRadius = () => {
18302
+ const props = {
18303
+ medium: "facebook",
18304
+ type: "text",
18305
+ backgroundcolor: "#3b5998",
18306
+ textcolor: "#fff",
18307
+ borderradius: 8,
18308
+ iconslot: "prefix",
18309
+ };
18310
+ return h$1(ShareButtonView, Object.assign({}, props), "Facebook");
18311
+ };
18257
18312
  const FullStackIcon = () => {
18258
18313
  return (h$1("div", null,
18259
18314
  h$1("sqm-share-button", { medium: "facebook", iconslot: "prefix" },
@@ -18272,6 +18327,8 @@ const ShareButton$1 = /*#__PURE__*/Object.freeze({
18272
18327
  WithoutIcon: WithoutIcon,
18273
18328
  WithoutText: WithoutText,
18274
18329
  TextStyleWithoutIcon: TextStyleWithoutIcon,
18330
+ WithCustomColors: WithCustomColors,
18331
+ WithCustomBorderRadius: WithCustomBorderRadius,
18275
18332
  FullStackIcon: FullStackIcon
18276
18333
  });
18277
18334
 
@@ -19540,15 +19597,15 @@ const UseTaskCard = /*#__PURE__*/Object.freeze({
19540
19597
  const NewPortal_stories = {
19541
19598
  title: "New Portal",
19542
19599
  };
19543
- const style$9 = {
19600
+ const style$8 = {
19544
19601
  HeaderSubtitleBold: {
19545
19602
  "font-weight": 500,
19546
19603
  "text-decoration": "underline",
19547
19604
  },
19548
19605
  };
19549
19606
  jss.setup(create());
19550
- const sheet$9 = jss.createStyleSheet(style$9);
19551
- const styleString$9 = sheet$9.toString();
19607
+ const sheet$8 = jss.createStyleSheet(style$8);
19608
+ const styleString$8 = sheet$8.toString();
19552
19609
  const barProps = {
19553
19610
  data: {
19554
19611
  programs: [
@@ -19643,7 +19700,7 @@ const Dashboard = () => {
19643
19700
  hide: false,
19644
19701
  };
19645
19702
  return (h$1("sqm-divided-layout", { direction: "row" },
19646
- h$1("style", { type: "text/css" }, styleString$9),
19703
+ h$1("style", { type: "text/css" }, styleString$8),
19647
19704
  h$1(Sidebar, null),
19648
19705
  h$1("sqm-divided-layout", { direction: "column" },
19649
19706
  h$1(PortalContainerView, Object.assign({}, { direction: "column", padding: "xxx-large", gap: "xxx-large" }),
@@ -19701,7 +19758,7 @@ const Dashboard = () => {
19701
19758
  };
19702
19759
  const EditProfile$2 = () => {
19703
19760
  return (h$1("sqm-divided-layout", { direction: "row" },
19704
- h$1("style", { type: "text/css" }, styleString$9),
19761
+ h$1("style", { type: "text/css" }, styleString$8),
19705
19762
  h$1(Sidebar, null),
19706
19763
  h$1("sqm-divided-layout", { direction: "column" },
19707
19764
  h$1(PortalProfileView, Object.assign({}, {
@@ -19765,7 +19822,7 @@ const EditProfile$2 = () => {
19765
19822
  };
19766
19823
  const Commissions = () => {
19767
19824
  return (h$1("sqm-divided-layout", { direction: "row" },
19768
- h$1("style", { type: "text/css" }, styleString$9),
19825
+ h$1("style", { type: "text/css" }, styleString$8),
19769
19826
  h$1(Sidebar, null),
19770
19827
  h$1("sqm-divided-layout", { direction: "column" },
19771
19828
  h$1(PortalContainerView, Object.assign({}, { direction: "column", padding: "xxx-large", gap: "xxx-large" }),
@@ -19778,7 +19835,7 @@ const Commissions = () => {
19778
19835
  h$1("p", null,
19779
19836
  "for the",
19780
19837
  " ",
19781
- h$1("span", { class: sheet$9.classes.HeaderSubtitleBold }, "Partner Program #1"),
19838
+ h$1("span", { class: sheet$8.classes.HeaderSubtitleBold }, "Partner Program #1"),
19782
19839
  " ",
19783
19840
  "program"))),
19784
19841
  })),
@@ -19790,7 +19847,7 @@ const Commissions = () => {
19790
19847
  };
19791
19848
  const Activity = () => {
19792
19849
  return (h$1("sqm-divided-layout", { direction: "row" },
19793
- h$1("style", { type: "text/css" }, styleString$9),
19850
+ h$1("style", { type: "text/css" }, styleString$8),
19794
19851
  h$1(Sidebar, null),
19795
19852
  h$1("sqm-divided-layout", { direction: "column" },
19796
19853
  h$1(PortalContainerView, Object.assign({}, { direction: "column", padding: "xxx-large", gap: "xxx-large" }),
@@ -19803,7 +19860,7 @@ const Activity = () => {
19803
19860
  h$1("p", null,
19804
19861
  "for the",
19805
19862
  " ",
19806
- h$1("span", { class: sheet$9.classes.HeaderSubtitleBold }, "Partner Program #1"),
19863
+ h$1("span", { class: sheet$8.classes.HeaderSubtitleBold }, "Partner Program #1"),
19807
19864
  " ",
19808
19865
  "program"))),
19809
19866
  })),
@@ -19932,6 +19989,8 @@ const defaultProps$2 = {
19932
19989
  states: {
19933
19990
  error: "",
19934
19991
  loading: false,
19992
+ forgotPasswordPath: "/forgotPassword",
19993
+ registerPath: "/register",
19935
19994
  },
19936
19995
  callbacks: {
19937
19996
  submit: async (e) => await e,
@@ -19942,6 +20001,8 @@ const errorProps = {
19942
20001
  states: {
19943
20002
  error: "Something went wrong. Please try again.",
19944
20003
  loading: false,
20004
+ forgotPasswordPath: "/forgotPassword",
20005
+ registerPath: "/register",
19945
20006
  },
19946
20007
  callbacks: {
19947
20008
  submit: async (e) => await e,
@@ -19952,6 +20013,8 @@ const loadingProps = {
19952
20013
  states: {
19953
20014
  error: "",
19954
20015
  loading: true,
20016
+ forgotPasswordPath: "/forgotPassword",
20017
+ registerPath: "/register",
19955
20018
  },
19956
20019
  callbacks: {
19957
20020
  submit: async (e) => await e,
@@ -19979,6 +20042,7 @@ const defaultProps$3 = {
19979
20042
  loading: false,
19980
20043
  confirmPassword: true,
19981
20044
  hideInputs: false,
20045
+ loginPath: "/login"
19982
20046
  },
19983
20047
  callbacks: {
19984
20048
  submit: () => console.log("Submit!"),
@@ -19995,6 +20059,7 @@ const errorProps$1 = {
19995
20059
  loading: false,
19996
20060
  confirmPassword: true,
19997
20061
  hideInputs: false,
20062
+ loginPath: "/login"
19998
20063
  },
19999
20064
  callbacks: {
20000
20065
  submit: () => console.log("Submit!"),
@@ -20014,6 +20079,7 @@ const loadingProps$1 = {
20014
20079
  loading: true,
20015
20080
  confirmPassword: true,
20016
20081
  hideInputs: false,
20082
+ loginPath: "/login"
20017
20083
  },
20018
20084
  callbacks: {
20019
20085
  submit: () => console.log("Submit!"),
@@ -20030,6 +20096,7 @@ const slottedProps = {
20030
20096
  loading: false,
20031
20097
  confirmPassword: true,
20032
20098
  hideInputs: false,
20099
+ loginPath: "/login"
20033
20100
  },
20034
20101
  callbacks: {
20035
20102
  submit: () => console.log("Submit!"),
@@ -20056,6 +20123,7 @@ const FieldsHidden = () => {
20056
20123
  loading: true,
20057
20124
  confirmPassword: true,
20058
20125
  hideInputs: true,
20126
+ loginPath: "/login"
20059
20127
  },
20060
20128
  } }));
20061
20129
  };
@@ -20071,7 +20139,7 @@ const PortalRegister$1 = /*#__PURE__*/Object.freeze({
20071
20139
  SlottedInputs: SlottedInputs
20072
20140
  });
20073
20141
 
20074
- 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";
20142
+ 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 |";
20075
20143
 
20076
20144
  const PortalForgotPassword_stories = {
20077
20145
  title: "Components/Portal Forgot Password",
@@ -20084,6 +20152,7 @@ const defaultProps$4 = {
20084
20152
  error: "",
20085
20153
  loading: false,
20086
20154
  success: false,
20155
+ loginPath: "/login",
20087
20156
  },
20088
20157
  callbacks: {
20089
20158
  submit: async (e) => await e,
@@ -20098,6 +20167,7 @@ const errorProps$2 = {
20098
20167
  error: "Something went wrong. Please try again.",
20099
20168
  loading: false,
20100
20169
  success: false,
20170
+ loginPath: "/login",
20101
20171
  },
20102
20172
  callbacks: {
20103
20173
  submit: async (e) => await e,
@@ -20112,6 +20182,7 @@ const loadingProps$2 = {
20112
20182
  error: "",
20113
20183
  loading: true,
20114
20184
  success: false,
20185
+ loginPath: "/login",
20115
20186
  },
20116
20187
  callbacks: {
20117
20188
  submit: async (e) => await e,
@@ -20126,6 +20197,7 @@ const successProps = {
20126
20197
  error: "",
20127
20198
  loading: false,
20128
20199
  success: true,
20200
+ loginPath: "/login",
20129
20201
  },
20130
20202
  callbacks: {
20131
20203
  submit: async (e) => await e,
@@ -20149,7 +20221,7 @@ const PortalForgotPassword = /*#__PURE__*/Object.freeze({
20149
20221
  ForgotPasswordSuccess: ForgotPasswordSuccess
20150
20222
  });
20151
20223
 
20152
- 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";
20224
+ 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 |";
20153
20225
 
20154
20226
  const PortalEmailVerification_stories = {
20155
20227
  title: "Components/Portal Email Verification",
@@ -20235,7 +20307,7 @@ const PortalEmailVerification = /*#__PURE__*/Object.freeze({
20235
20307
  EmailVerificationSuccess: EmailVerificationSuccess
20236
20308
  });
20237
20309
 
20238
- 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\"";
20310
+ 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\"";
20239
20311
 
20240
20312
  const PortalResetPassword_stories = {
20241
20313
  title: "Components/Portal Reset Password",
@@ -20399,7 +20471,7 @@ const PortalResetPassword = /*#__PURE__*/Object.freeze({
20399
20471
  CodeValidating: CodeValidating
20400
20472
  });
20401
20473
 
20402
- 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 |";
20474
+ 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 |";
20403
20475
 
20404
20476
  const PortalVerifyEmail_stories = {
20405
20477
  title: "Components/Portal Verify Email",
@@ -21914,7 +21986,7 @@ const arrow_left_right = () => {
21914
21986
  h$1("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" })));
21915
21987
  };
21916
21988
 
21917
- const gift = () => {
21989
+ const Gift$1 = () => {
21918
21990
  return (h$1("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
21919
21991
  h$1("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" }),
21920
21992
  h$1("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" }),
@@ -21924,10 +21996,6 @@ const gift = () => {
21924
21996
 
21925
21997
  function ProgressBarView(props) {
21926
21998
  const { progress = 0, goal = 1, steps = false, progressBarUnit = "", repeatable = false, expired = false, finite = 0, } = props;
21927
- // console.log("progress bar props", props);
21928
- const gift1 = gift();
21929
- const gift2 = gift();
21930
- const gift3 = gift();
21931
21999
  var items = [];
21932
22000
  var columns = "";
21933
22001
  if (repeatable) {
@@ -22048,11 +22116,8 @@ function ProgressBarView(props) {
22048
22116
  marginLeft: "-100px",
22049
22117
  marginRight: "-100px",
22050
22118
  position: "relative",
22051
- display: "list-item",
22052
- listStyleType: "none",
22053
22119
  top: "-18px",
22054
22120
  filter: goal <= progress ? "" : "grayscale(100%)",
22055
- zIndex: "1",
22056
22121
  },
22057
22122
  },
22058
22123
  };
@@ -22078,7 +22143,7 @@ function ProgressBarView(props) {
22078
22143
  : progressBarUnit + clamp(progress, 0, goal)));
22079
22144
  items.push(h$1("div", { class: "remain" }));
22080
22145
  items.push(h$1("div", { class: "progress bg" }, progressBarUnit + goal));
22081
- items.push(h$1("div", { class: "gift" }, gift1));
22146
+ items.push(h$1("div", { class: "gift" }, h$1(Gift$1, null)));
22082
22147
  }
22083
22148
  function addSteps() {
22084
22149
  let ratio = 1 / goal;
@@ -22099,14 +22164,14 @@ function ProgressBarView(props) {
22099
22164
  columns += "0fr ";
22100
22165
  items.push(h$1("div", { class: "filled" }));
22101
22166
  items.push(h$1("div", { class: "progress bg" }, goal));
22102
- items.push(h$1("div", { class: "gift" }, gift1));
22167
+ items.push(h$1("div", { class: "gift" }, h$1(Gift$1, null)));
22103
22168
  }
22104
22169
  // reward fail
22105
22170
  else {
22106
22171
  columns += "0fr ";
22107
22172
  items.push(h$1("div", { class: "remain" }));
22108
22173
  items.push(h$1("div", { class: "empty bg" }, goal));
22109
- items.push(h$1("div", { class: "gift" }, gift1));
22174
+ items.push(h$1("div", { class: "gift" }, h$1(Gift$1, null)));
22110
22175
  }
22111
22176
  }
22112
22177
  function addLinearRepeatable() {
@@ -22119,10 +22184,10 @@ function ProgressBarView(props) {
22119
22184
  items.push(h$1("div", { class: progress == goal ? "progress top bg" : "progress top" }, progressBarUnit + progress));
22120
22185
  items.push(h$1("div", { class: "remain" }));
22121
22186
  items.push(h$1("div", { class: "progress bg" }, progressBarUnit + goal));
22122
- items.push(h$1("div", { class: "gift" }, gift1));
22187
+ items.push(h$1("div", { class: "gift" }, h$1(Gift$1, null)));
22123
22188
  items.push(h$1("div", { class: "remain" }));
22124
22189
  items.push(h$1("div", { class: "progress bg" }, progressBarUnit + goal * 2));
22125
- items.push(h$1("div", { class: "gift bw" }, gift2));
22190
+ items.push(h$1("div", { class: "gift bw" }, h$1(Gift$1, null)));
22126
22191
  }
22127
22192
  // single repetition
22128
22193
  else if (repetitions == 1) {
@@ -22130,18 +22195,18 @@ function ProgressBarView(props) {
22130
22195
  "0.5fr 0fr 0fr " + ratio + "fr 0fr " + (0.5 - ratio) + "fr 0fr 0fr";
22131
22196
  items.push(h$1("div", { class: "filled" }));
22132
22197
  items.push(h$1("div", { class: "progress bg" }, progressBarUnit + goal));
22133
- items.push(h$1("div", { class: "gift" }, gift1));
22198
+ items.push(h$1("div", { class: "gift" }, h$1(Gift$1, null)));
22134
22199
  items.push(h$1("div", { class: "filled" }));
22135
22200
  items.push(h$1("div", { class: progress == goal ? "progress top bg" : "progress top" }, progress == goal ? "" : progressBarUnit + progress));
22136
22201
  items.push(h$1("div", { class: "remain" }));
22137
22202
  items.push(h$1("div", { class: "progress bg" }, progressBarUnit + goal * 2));
22138
- items.push(h$1("div", { class: "gift bw" }, gift2));
22203
+ items.push(h$1("div", { class: "gift bw" }, h$1(Gift$1, null)));
22139
22204
  }
22140
22205
  // finite repetition hit
22141
22206
  else if (finite && repetitions >= finite) {
22142
22207
  if (repetitions > 2) {
22143
22208
  items.push(h$1("div", { class: "progress bg" }, progressBarUnit + goal * (finite - 2)));
22144
- items.push(h$1("div", { class: "gift start" }, gift1));
22209
+ items.push(h$1("div", { class: "gift start" }, h$1(Gift$1, null)));
22145
22210
  columns = "0fr 0fr 0.5fr 0fr 0fr 0.5fr 0fr 0fr";
22146
22211
  }
22147
22212
  else {
@@ -22149,10 +22214,10 @@ function ProgressBarView(props) {
22149
22214
  }
22150
22215
  items.push(h$1("div", { class: "filled" }));
22151
22216
  items.push(h$1("div", { class: "progress bg" }, progressBarUnit + goal * (finite - 1)));
22152
- items.push(h$1("div", { class: "gift" }, gift2));
22217
+ items.push(h$1("div", { class: "gift" }, h$1(Gift$1, null)));
22153
22218
  items.push(h$1("div", { class: "filled" }));
22154
22219
  items.push(h$1("div", { class: "progress bg" }, progressBarUnit + goal * finite));
22155
- items.push(h$1("div", { class: "gift" }, gift3));
22220
+ items.push(h$1("div", { class: "gift" }, h$1(Gift$1, null)));
22156
22221
  }
22157
22222
  // multiple repetitions
22158
22223
  else {
@@ -22163,15 +22228,15 @@ function ProgressBarView(props) {
22163
22228
  (0.5 - ratio) +
22164
22229
  "fr 0fr 0fr";
22165
22230
  items.push(h$1("div", { class: "progress bg" }, progressBarUnit + goal * (repetitions - 1)));
22166
- items.push(h$1("div", { class: "gift start" }, gift1));
22231
+ items.push(h$1("div", { class: "gift start" }, h$1(Gift$1, null)));
22167
22232
  items.push(h$1("div", { class: "filled" }));
22168
22233
  items.push(h$1("div", { class: "progress bg" }, progressBarUnit + goal * repetitions));
22169
- items.push(h$1("div", { class: "gift" }, gift2));
22234
+ items.push(h$1("div", { class: "gift" }, h$1(Gift$1, null)));
22170
22235
  items.push(h$1("div", { class: "filled" }));
22171
22236
  items.push(h$1("div", { class: progress == goal * repetitions ? "progress top bg" : "progress top" }, progress == goal * repetitions ? "" : progressBarUnit + progress));
22172
22237
  items.push(h$1("div", { class: "remain" }));
22173
22238
  items.push(h$1("div", { class: "progress bg" }, progressBarUnit + goal * (repetitions + 1)));
22174
- items.push(h$1("div", { class: "gift bw" }, gift3));
22239
+ items.push(h$1("div", { class: "gift bw" }, h$1(Gift$1, null)));
22175
22240
  }
22176
22241
  }
22177
22242
  function addStepsRepeatable() {
@@ -22186,13 +22251,13 @@ function ProgressBarView(props) {
22186
22251
  columns += "0fr ";
22187
22252
  items.push(h$1("div", { class: "remain" }));
22188
22253
  items.push(h$1("div", { class: "empty bg" }, goal));
22189
- items.push(h$1("div", { class: "gift bw" }, gift1));
22254
+ items.push(h$1("div", { class: "gift bw" }, h$1(Gift$1, null)));
22190
22255
  }
22191
22256
  else if (i == goal * 2) {
22192
22257
  columns += "0fr 0fr";
22193
22258
  items.push(h$1("div", { class: "remain" }));
22194
22259
  items.push(h$1("div", { class: "empty bg" }, goal * 2));
22195
- items.push(h$1("div", { class: "gift bw" }, gift2));
22260
+ items.push(h$1("div", { class: "gift bw" }, h$1(Gift$1, null)));
22196
22261
  }
22197
22262
  else {
22198
22263
  items.push(h$1("div", { class: "remain" }));
@@ -22203,7 +22268,7 @@ function ProgressBarView(props) {
22203
22268
  columns += "0fr ";
22204
22269
  items.push(h$1("div", { class: "filled" }));
22205
22270
  items.push(h$1("div", { class: "progress bg" }, i));
22206
- items.push(h$1("div", { class: "gift" }, gift3));
22271
+ items.push(h$1("div", { class: "gift" }, h$1(Gift$1, null)));
22207
22272
  }
22208
22273
  else {
22209
22274
  items.push(h$1("div", { class: "filled" }));
@@ -22217,7 +22282,7 @@ function ProgressBarView(props) {
22217
22282
  if (repetitions > 2) {
22218
22283
  columns += "0fr 0fr ";
22219
22284
  items.push(h$1("div", { class: "progress bg" }, goal * (finite - 2)));
22220
- items.push(h$1("div", { class: "gift start" }, gift1));
22285
+ items.push(h$1("div", { class: "gift start" }, h$1(Gift$1, null)));
22221
22286
  }
22222
22287
  for (let i = 1; i < goal * 2 + 1; i++) {
22223
22288
  columns += ratio + "fr 0fr ";
@@ -22226,20 +22291,20 @@ function ProgressBarView(props) {
22226
22291
  columns += "0fr ";
22227
22292
  items.push(h$1("div", { class: "remain" }));
22228
22293
  items.push(h$1("div", { class: "progress bg" }, goal * (finite - 1)));
22229
- items.push(h$1("div", { class: "gift bw" }, gift1));
22294
+ items.push(h$1("div", { class: "gift bw" }, h$1(Gift$1, null)));
22230
22295
  }
22231
22296
  }
22232
22297
  else if (i == goal) {
22233
22298
  columns += "0fr ";
22234
22299
  items.push(h$1("div", { class: "filled" }));
22235
22300
  items.push(h$1("div", { class: "progress bg" }, goal * (finite - 1)));
22236
- items.push(h$1("div", { class: "gift" }, gift2));
22301
+ items.push(h$1("div", { class: "gift" }, h$1(Gift$1, null)));
22237
22302
  }
22238
22303
  else if (i == goal * 2) {
22239
22304
  columns += "0fr 0fr";
22240
22305
  items.push(h$1("div", { class: "filled" }));
22241
22306
  items.push(h$1("div", { class: "progress bg" }, goal * finite));
22242
- items.push(h$1("div", { class: "gift" }, gift3));
22307
+ items.push(h$1("div", { class: "gift" }, h$1(Gift$1, null)));
22243
22308
  }
22244
22309
  else {
22245
22310
  items.push(h$1("div", { class: "filled" }));
@@ -22253,7 +22318,7 @@ function ProgressBarView(props) {
22253
22318
  let ratio = 1 / goal;
22254
22319
  columns += "0fr 0fr ";
22255
22320
  items.push(h$1("div", { class: "progress bg" }, goal * (repetitions - 1)));
22256
- items.push(h$1("div", { class: "gift start" }, gift1));
22321
+ items.push(h$1("div", { class: "gift start" }, h$1(Gift$1, null)));
22257
22322
  for (let i = 1; i < goal * 2 + 1; i++) {
22258
22323
  columns += ratio + "fr 0fr ";
22259
22324
  if (i <= goal) {
@@ -22261,7 +22326,7 @@ function ProgressBarView(props) {
22261
22326
  columns += "0fr ";
22262
22327
  items.push(h$1("div", { class: "filled" }));
22263
22328
  items.push(h$1("div", { class: "progress bg" }, i + goal * (repetitions - 1)));
22264
- items.push(h$1("div", { class: "gift" }, gift2));
22329
+ items.push(h$1("div", { class: "gift" }, h$1(Gift$1, null)));
22265
22330
  }
22266
22331
  else {
22267
22332
  items.push(h$1("div", { class: "filled" }));
@@ -22273,7 +22338,7 @@ function ProgressBarView(props) {
22273
22338
  columns += "0fr 0fr";
22274
22339
  items.push(h$1("div", { class: "remain" }));
22275
22340
  items.push(h$1("div", { class: "empty bg" }, i + goal * (repetitions - 1)));
22276
- items.push(h$1("div", { class: "gift bw" }, gift3));
22341
+ items.push(h$1("div", { class: "gift bw" }, h$1(Gift$1, null)));
22277
22342
  }
22278
22343
  else {
22279
22344
  items.push(h$1("div", { class: "remain" }));
@@ -22294,11 +22359,6 @@ function TaskCardView(props) {
22294
22359
  const checkmark_filled$1 = checkmark_filled();
22295
22360
  const arrow_left_right$1 = arrow_left_right();
22296
22361
  const style = {
22297
- // HostBlock: {
22298
- // ":host": {
22299
- // display: "inline-block",
22300
- // },
22301
- // },
22302
22362
  TaskCard: {
22303
22363
  display: "inline-block",
22304
22364
  width: "100%",
@@ -22318,7 +22378,7 @@ function TaskCardView(props) {
22318
22378
  borderColor: "var(--sl-color-primary-500)",
22319
22379
  },
22320
22380
  "& .main.expired": {
22321
- color: "var(--sl-color-neutral-400)",
22381
+ color: "var(--sl-color-neutral-600)",
22322
22382
  background: "var(--sl-color-neutral-50)",
22323
22383
  },
22324
22384
  "& .title": {
@@ -22330,17 +22390,43 @@ function TaskCardView(props) {
22330
22390
  margin: "var(--sl-spacing-medium)",
22331
22391
  },
22332
22392
  "& .container.subdued": {
22333
- opacity: "0.66",
22393
+ opacity: "0.45",
22334
22394
  },
22335
22395
  "& .container > div": {
22336
22396
  margin: "var(--sl-spacing-medium) 0",
22337
22397
  },
22338
22398
  },
22339
- Expired: {
22340
- margin: "var(--sl-spacing-medium)",
22341
- marginBottom: "calc(var(--sl-spacing-x-small)*-1)",
22399
+ NotStarted: {
22400
+ padding: "var(--sl-spacing-medium)",
22401
+ color: "var(--sl-color-primary-600)",
22402
+ border: "1px solid var(--sl-color-neutral-200)",
22403
+ borderRadius: "var(--sl-border-radius-medium) var(--sl-border-radius-medium) 0 0",
22404
+ borderBottom: "none",
22405
+ background: "var(--sl-color-primary-50)",
22406
+ fontWeight: "var(--sl-font-weight-semibold)",
22407
+ lineHeight: "var(--sl-line-height-dense)",
22408
+ "& .icon": {
22409
+ position: "relative",
22410
+ top: "0.1em",
22411
+ marginRight: "var(--sl-spacing-small)",
22412
+ color: "var(--sl-color-primary-500)",
22413
+ },
22414
+ },
22415
+ Ended: {
22416
+ padding: "var(--sl-spacing-medium)",
22342
22417
  color: "var(--sl-color-warning-600)",
22418
+ border: "1px solid var(--sl-color-neutral-200)",
22419
+ borderRadius: "var(--sl-border-radius-medium) var(--sl-border-radius-medium) 0 0",
22420
+ borderBottom: "none",
22421
+ background: "var(--sl-color-warning-50)",
22343
22422
  fontWeight: "var(--sl-font-weight-semibold)",
22423
+ lineHeight: "var(--sl-line-height-dense)",
22424
+ "& .icon": {
22425
+ position: "relative",
22426
+ top: "0.1em",
22427
+ marginRight: "var(--sl-spacing-small)",
22428
+ color: "var(--sl-color-warning-500)",
22429
+ },
22344
22430
  },
22345
22431
  Header: {
22346
22432
  display: "flex",
@@ -22411,7 +22497,7 @@ function TaskCardView(props) {
22411
22497
  },
22412
22498
  },
22413
22499
  "& .neutral": {
22414
- color: "var(--sl-color-neutral-400)",
22500
+ color: "var(--sl-color-neutral-600)",
22415
22501
  },
22416
22502
  },
22417
22503
  };
@@ -22430,16 +22516,42 @@ function TaskCardView(props) {
22430
22516
  const taskEnded = props.showExpiry && dateEnd <= dateToday;
22431
22517
  const taskNotStarted = props.showExpiry && dateToday <= dateStart;
22432
22518
  const taskUnavailable = taskEnded || taskNotStarted;
22519
+ const vanillaStyle = `
22520
+ :host{
22521
+ display: block;
22522
+ margin-bottom: 24px;
22523
+ }
22524
+ `;
22433
22525
  return (h$1("div", { class: sheet.classes.TaskCard },
22434
- h$1("div", { class: taskUnavailable
22526
+ h$1("style", { type: "text/css" },
22527
+ styleString,
22528
+ vanillaStyle),
22529
+ !props.loading && taskNotStarted && (h$1("div", { class: sheet.classes.NotStarted },
22530
+ h$1("span", { class: "icon" },
22531
+ h$1("sl-icon", { name: "info-circle-fill" })),
22532
+ intl.formatMessage({
22533
+ id: "startsOnMessage",
22534
+ defaultMessage: props.startsOnMessage,
22535
+ }, {
22536
+ startDate: dateStart.toLocaleString(luxon.DateTime.DATE_MED),
22537
+ }))),
22538
+ !props.loading && taskEnded && (h$1("div", { class: sheet.classes.Ended },
22539
+ h$1("span", { class: "icon" },
22540
+ h$1("sl-icon", { name: "exclamation-triangle-fill" })),
22541
+ intl.formatMessage({
22542
+ id: "endedMessage",
22543
+ defaultMessage: props.endedMessage,
22544
+ }, {
22545
+ endDate: dateEnd.toLocaleString(luxon.DateTime.DATE_MED),
22546
+ }))),
22547
+ h$1("div", { style: {
22548
+ borderRadius: taskUnavailable &&
22549
+ "0 0 var(--sl-border-radius-medium) var(--sl-border-radius-medium)",
22550
+ }, class: taskUnavailable
22435
22551
  ? "main expired"
22436
22552
  : taskComplete
22437
22553
  ? "main complete"
22438
22554
  : "main" },
22439
- h$1("style", { type: "text/css" }, styleString),
22440
- taskUnavailable && (h$1("div", { class: sheet.classes.Expired }, taskEnded
22441
- ? "Ended " + dateEnd.toLocaleString(luxon.DateTime.DATE_MED)
22442
- : "Starts " + dateStart.toLocaleString(luxon.DateTime.DATE_MED))),
22443
22555
  h$1("div", { class: taskComplete || taskUnavailable ? "container subdued" : "container" },
22444
22556
  h$1("div", { class: sheet.classes.Header }, props.loading ? (h$1("sl-skeleton", { style: { width: "22%", margin: "0" } })) : (h$1("div", null,
22445
22557
  showComplete && (h$1("span", { class: taskUnavailable ? "icon neutral" : "icon" }, taskComplete ? checkmark_filled$1 : checkmark_circle$1)),
@@ -22460,13 +22572,21 @@ function TaskCardView(props) {
22460
22572
  ? taskUnavailable
22461
22573
  ? "neutral"
22462
22574
  : "success"
22463
- : "" }, "Completed " +
22464
- (props.finite
22575
+ : "" }, intl.formatMessage({
22576
+ id: "completedMessage",
22577
+ defaultMessage: props.completedText,
22578
+ }, {
22579
+ finite: props.finite,
22580
+ count: props.finite
22465
22581
  ? Math.min(repetitions, props.finite)
22466
- : repetitions) +
22467
- (props.finite ? "/" + props.finite : "") +
22468
- " times"))),
22469
- props.showExpiry && !taskUnavailable && (h$1("span", null, "Ends " + dateEnd.toLocaleString(luxon.DateTime.DATE_FULL)))),
22582
+ : repetitions,
22583
+ })))),
22584
+ props.showExpiry && !taskUnavailable && (h$1("span", null, intl.formatMessage({
22585
+ id: "expiryMessage",
22586
+ defaultMessage: props.expiryMessage,
22587
+ }, {
22588
+ endDate: dateEnd.toLocaleString(luxon.DateTime.DATE_FULL),
22589
+ })))),
22470
22590
  h$1("sl-button", { class: taskUnavailable
22471
22591
  ? "action neutral"
22472
22592
  : taskComplete
@@ -22495,6 +22615,7 @@ function Details(props) {
22495
22615
  },
22496
22616
  transformOrigin: "50% 37%",
22497
22617
  transition: "transform var(--sl-transition-medium) ease",
22618
+ cursor: "pointer",
22498
22619
  },
22499
22620
  "& input:checked ~ .summary": {
22500
22621
  transition: "all var(--sl-transition-medium) ease",
@@ -22590,7 +22711,11 @@ const oneAction = {
22590
22711
  openNewTab: false,
22591
22712
  showExpiry: false,
22592
22713
  rewardDuration: null,
22714
+ completedText: "Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}",
22593
22715
  loading: false,
22716
+ expiryMessage: "Ends {endDate}",
22717
+ startsOnMessage: "Starts {startDate}",
22718
+ endedMessage: "Ended {endDate}",
22594
22719
  finite: 0,
22595
22720
  };
22596
22721
  const coupleActions = {
@@ -22607,8 +22732,12 @@ const coupleActions = {
22607
22732
  buttonLink: "https://example.com/",
22608
22733
  openNewTab: false,
22609
22734
  showExpiry: false,
22735
+ completedText: "Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}",
22610
22736
  rewardDuration: null,
22611
22737
  loading: false,
22738
+ expiryMessage: "Ends {endDate}",
22739
+ startsOnMessage: "Starts {startDate}",
22740
+ endedMessage: "Ended {endDate}",
22612
22741
  finite: 0,
22613
22742
  };
22614
22743
  const manyActions = {
@@ -22617,6 +22746,7 @@ const manyActions = {
22617
22746
  cardTitle: "Spend $500 at our Store",
22618
22747
  description: "Description of action and reward. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget quisque commodo leo.",
22619
22748
  repeatable: false,
22749
+ completedText: "Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}",
22620
22750
  showProgressBar: true,
22621
22751
  progress: 100,
22622
22752
  goal: 500,
@@ -22627,6 +22757,9 @@ const manyActions = {
22627
22757
  showExpiry: false,
22628
22758
  rewardDuration: null,
22629
22759
  loading: false,
22760
+ expiryMessage: "Ends {endDate}",
22761
+ startsOnMessage: "Starts {startDate}",
22762
+ endedMessage: "Ended {endDate}",
22630
22763
  finite: 0,
22631
22764
  };
22632
22765
  const TaskCard$1 = () => {
@@ -25999,21 +26132,21 @@ var marked = createCommonjsModule(function (module, exports) {
25999
26132
  })));
26000
26133
  });
26001
26134
 
26002
- 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";
26135
+ 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";
26003
26136
 
26004
26137
  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";
26005
26138
 
26006
- 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";
26139
+ 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";
26007
26140
 
26008
- 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";
26141
+ 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";
26009
26142
 
26010
26143
  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";
26011
26144
 
26012
- 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";
26145
+ 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";
26013
26146
 
26014
- 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";
26147
+ 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";
26015
26148
 
26016
- 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";
26149
+ 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";
26017
26150
 
26018
26151
  const PortalTemplates_stories = {
26019
26152
  title: "Templates / Portal",
@@ -26528,19 +26661,24 @@ const baseResponse = (data, stage = "chooseReward", selectedItem = null, selecte
26528
26661
  states: {
26529
26662
  content: {
26530
26663
  text: {
26531
- continueText: "Continue",
26532
- cancelText: "Cancel",
26533
- continueToConfirmationText: "Continue to confirmation",
26534
- backText: "Back",
26535
- redeemText: "Redeem",
26536
- doneText: "Done",
26664
+ buttonText: "Exchange Rewards",
26665
+ notAvailableError: "{unavailableReason, select, US_TAX {US Tax limit} INSUFFICIENT_REDEEMABLE_CREDIT {Not enough points} other {Not available} }",
26537
26666
  chooseRewardTitle: "Choose reward",
26538
26667
  chooseAmountTitle: "Amount",
26539
26668
  confirmationTitle: "Confirm",
26669
+ cancelText: "Cancel",
26670
+ backText: "Back",
26671
+ continueText: "Continue",
26672
+ continueToConfirmationText: "Continue to confirmation",
26673
+ redeemText: "Redeem",
26540
26674
  redeemTitle: "Confirm and redeem",
26675
+ redemptionSuccessText: "Successfully redeemed {sourceValue} for {destinationValue}",
26676
+ doneText: "Done",
26677
+ toolTipText: "Copied!",
26678
+ selectText: "Select amount to receive",
26679
+ sourceAmountMessage: "{ruleType, select, FIXED_GLOBAL_REWARD {{sourceValue}} other {{sourceMinValue} to {sourceMaxValue}}}",
26541
26680
  rewardRedeemedText: "Reward redeemed",
26542
- queryError: "An error occured trying to redeem this reward. Please try again.",
26543
- notAvailableError: "{unavailableReason, select, US_TAX {US Tax limit} INSUFFICIENT_REDEEMABLE_CREDIT {Not enough points} other {Not available} }",
26681
+ redemptionError: "An error occured trying to redeem this reward. Please try again",
26544
26682
  },
26545
26683
  },
26546
26684
  redeemStage: stage,
@@ -26815,7 +26953,7 @@ const props$2 = {
26815
26953
  };
26816
26954
  const steps1 = {
26817
26955
  cardTitle: "Invite your friends to Klip",
26818
- description: "Earn up to $1200 in rewards for each referral",
26956
+ description: "Send your referral link to a friend or share it through email, Twitter, or Facebook",
26819
26957
  color: "white",
26820
26958
  background: "#5B3EDA",
26821
26959
  icon: "person-plus-fill",
@@ -26864,7 +27002,7 @@ const ProgramExplainerStep_stories = {
26864
27002
  const Example1 = () => {
26865
27003
  const props = {
26866
27004
  cardTitle: "Invite your friends to Klip",
26867
- description: "Earn up to $1200 in rewards for each referral",
27005
+ description: "Send your referral link to a friend or share it through email, Twitter, or Facebook",
26868
27006
  color: "white",
26869
27007
  background: "#5B3EDA",
26870
27008
  icon: "person-plus-fill",
@@ -26984,7 +27122,7 @@ const CardFeed_stories = {
26984
27122
  };
26985
27123
  const props$3 = {
26986
27124
  width: 347,
26987
- gap: "xx-large",
27125
+ gap: 24,
26988
27126
  };
26989
27127
  const taskCardProps = {
26990
27128
  rewardAmount: "20",
@@ -26994,6 +27132,7 @@ const taskCardProps = {
26994
27132
  repeatable: false,
26995
27133
  showProgressBar: false,
26996
27134
  progress: 0,
27135
+ completedText: "Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}",
26997
27136
  goal: 1,
26998
27137
  buttonText: "Take survey",
26999
27138
  buttonLink: "https://example.com/",
@@ -27001,6 +27140,9 @@ const taskCardProps = {
27001
27140
  showExpiry: false,
27002
27141
  rewardDuration: null,
27003
27142
  loading: false,
27143
+ expiryMessage: "Ends {endDate}",
27144
+ startsOnMessage: "Starts {startDate}",
27145
+ endedMessage: "Ended {endDate}",
27004
27146
  finite: 0,
27005
27147
  };
27006
27148
  const coupleActions$1 = {
@@ -27010,6 +27152,7 @@ const coupleActions$1 = {
27010
27152
  description: "Description of action and reward. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget quisque commodo leo.",
27011
27153
  repeatable: false,
27012
27154
  showProgressBar: true,
27155
+ completedText: "Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}",
27013
27156
  steps: true,
27014
27157
  progress: 1,
27015
27158
  goal: 5,
@@ -27019,6 +27162,9 @@ const coupleActions$1 = {
27019
27162
  showExpiry: false,
27020
27163
  rewardDuration: null,
27021
27164
  loading: false,
27165
+ expiryMessage: "Ends {endDate}",
27166
+ startsOnMessage: "Starts {startDate}",
27167
+ endedMessage: "Ended {endDate}",
27022
27168
  finite: 0,
27023
27169
  };
27024
27170
  const manyActions$1 = {
@@ -27029,6 +27175,7 @@ const manyActions$1 = {
27029
27175
  repeatable: false,
27030
27176
  showProgressBar: true,
27031
27177
  progress: 100,
27178
+ completedText: "Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}",
27032
27179
  goal: 500,
27033
27180
  progressBarUnit: "$",
27034
27181
  buttonText: "Take survey",
@@ -27037,6 +27184,9 @@ const manyActions$1 = {
27037
27184
  showExpiry: false,
27038
27185
  rewardDuration: null,
27039
27186
  loading: false,
27187
+ expiryMessage: "Ends {endDate}",
27188
+ startsOnMessage: "Starts {startDate}",
27189
+ endedMessage: "Ended {endDate}",
27040
27190
  finite: 0,
27041
27191
  };
27042
27192
  const TaskCardGrid = () => {
@@ -27074,9 +27224,19 @@ const PortalContainer_stories = {
27074
27224
  const TooWideColumn = () => (h$1("div", { style: { width: "200px", border: "1px dashed grey" } },
27075
27225
  h$1("sqm-portal-container", null,
27076
27226
  h$1("div", { style: { background: "grey", border: "1px solid red" } }, "Small"),
27077
- h$1("div", { style: { background: "blue", width: "1000px" } }, "Too wide, content goes off the side of the page for ever and is hidden."))));
27227
+ h$1("div", { style: { background: "lightblue", width: "1000px" } }, "Too wide, content goes off the side of the page for ever and is hidden."))));
27078
27228
  const TooWideRow = () => (h$1("div", { style: { width: "500px", border: "1px dashed grey" } },
27079
27229
  h$1("sqm-portal-container", { direction: "row", "min-width": "160px" },
27230
+ h$1("sqm-share-button", { icon: "envelope", medium: "email", size: "medium", class: "hydrated" }, "Email a friend"),
27231
+ h$1("sqm-share-button", { medium: "twitter", size: "medium", class: "hydrated" }, "Tweet about us"),
27232
+ h$1("sqm-share-button", { medium: "facebook", size: "medium", class: "hydrated" }, "Share on Facebook"))));
27233
+ const HalfWidth = () => (h$1("div", { style: { width: "1000px", border: "1px dashed grey" } },
27234
+ h$1("sqm-portal-container", { direction: "row", minWidth: "160px", maxWidth: "50%" },
27235
+ h$1("sqm-share-button", { icon: "envelope", medium: "email", size: "medium", class: "hydrated" }, "Email a friend"),
27236
+ h$1("sqm-share-button", { medium: "twitter", size: "medium", class: "hydrated" }, "Tweet about us"),
27237
+ h$1("sqm-share-button", { medium: "facebook", size: "medium", class: "hydrated" }, "Share on Facebook"))));
27238
+ const FullWidth = () => (h$1("div", { style: { width: "1000px", border: "1px dashed grey" } },
27239
+ h$1("sqm-portal-container", { direction: "row", maxWidth: "100%" },
27080
27240
  h$1("sqm-share-button", { icon: "envelope", medium: "email", size: "medium", class: "hydrated" }, "Email a friend"),
27081
27241
  h$1("sqm-share-button", { medium: "twitter", size: "medium", class: "hydrated" }, "Tweet about us"),
27082
27242
  h$1("sqm-share-button", { medium: "facebook", size: "medium", class: "hydrated" }, "Share on Facebook"))));
@@ -27085,7 +27245,9 @@ const PortalContainer$1 = /*#__PURE__*/Object.freeze({
27085
27245
  __proto__: null,
27086
27246
  'default': PortalContainer_stories,
27087
27247
  TooWideColumn: TooWideColumn,
27088
- TooWideRow: TooWideRow
27248
+ TooWideRow: TooWideRow,
27249
+ HalfWidth: HalfWidth,
27250
+ FullWidth: FullWidth
27089
27251
  });
27090
27252
 
27091
27253
  /**
@@ -29881,12 +30043,34 @@ const TaskCard$3 = class {
29881
30043
  * @uiName Show Goal Expiry
29882
30044
  */
29883
30045
  this.showExpiry = false;
30046
+ /**
30047
+ * @uiName Expiry Date Message
30048
+ */
30049
+ this.expiryMessage = "Ends {endDate}";
29884
30050
  /**
29885
30051
  * @uiName Reward Duration
29886
30052
  * @uiWidget DateRange
29887
30053
  * @uiOptions {"allowPastDates":true, "months": 1}
29888
30054
  */
29889
30055
  this.rewardDuration = "/";
30056
+ /**
30057
+ * Shown to users before the start of the task duration.
30058
+ *
30059
+ * @uiName Start Date Message
30060
+ */
30061
+ this.startsOnMessage = "Starts {startDate}";
30062
+ /**
30063
+ * Shown to users after the end of the task duration.
30064
+ *
30065
+ * @uiName Ended Date Message
30066
+ */
30067
+ this.endedMessage = "Ended {endDate}";
30068
+ /**
30069
+ * Displays the amount of times that a user has completed a repeatable task.
30070
+ *
30071
+ * @uiName Completed Count Text
30072
+ */
30073
+ this.completedText = "Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}";
29890
30074
  /**
29891
30075
  * @uiName CTA Button Text
29892
30076
  */