@saasquatch/mint-components 1.6.8-9 → 1.6.9

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 (657) hide show
  1. package/LICENSE +1 -1
  2. package/dist/cjs/{ShadowViewAddon-b706b992.js → ShadowViewAddon-f670c663.js} +271 -83
  3. package/dist/cjs/email-registration-view-f347daa7.js +79 -0
  4. package/dist/cjs/{global-48c25606.js → global-40232313.js} +8 -2
  5. package/dist/cjs/{index.module-f6afc139.js → index.module-4314dfb1.js} +227 -237
  6. package/dist/cjs/loader.cjs.js +3 -4
  7. package/dist/cjs/mint-components.cjs.js +3 -4
  8. package/dist/cjs/{re-render-552514cb.js → re-render-9a4ef430.js} +3 -3
  9. package/dist/cjs/{sqm-asset-card-view-79099616.js → sqm-asset-card-view-a0e33f21.js} +2 -2
  10. package/dist/cjs/sqm-asset-card.cjs.entry.js +2 -3
  11. package/dist/cjs/{sqm-big-stat_37.cjs.entry.js → sqm-big-stat_39.cjs.entry.js} +594 -291
  12. package/dist/cjs/sqm-close-button-view-fd6e8f60.js +28 -0
  13. package/dist/cjs/sqm-close-button.cjs.entry.js +41 -0
  14. package/dist/cjs/sqm-empty_5.cjs.entry.js +14 -7
  15. package/dist/cjs/sqm-form-message.cjs.entry.js +4 -1
  16. package/dist/cjs/sqm-graphql-client-provider.cjs.entry.js +5 -6
  17. package/dist/cjs/sqm-header-logo.cjs.entry.js +3 -3
  18. package/dist/cjs/sqm-instant-access-registration.cjs.entry.js +158 -0
  19. package/dist/cjs/sqm-leaderboard-rank.cjs.entry.js +5 -6
  20. package/dist/cjs/{sqm-user-identifier-view-90b36758.js → sqm-logout-current-user-view-555c7729.js} +8 -6
  21. package/dist/cjs/sqm-logout-current-user.cjs.entry.js +62 -0
  22. package/dist/cjs/{sqm-navigation-sidebar-item-view-c39b695c.js → sqm-navigation-sidebar-item-view-f66a1735.js} +4 -4
  23. package/dist/cjs/sqm-navigation-sidebar-item.cjs.entry.js +3 -4
  24. package/dist/cjs/{sqm-navigation-sidebar-view-b830e8d8.js → sqm-navigation-sidebar-view-dd53f947.js} +2 -2
  25. package/dist/cjs/sqm-navigation-sidebar.cjs.entry.js +3 -4
  26. package/dist/cjs/sqm-password-field.cjs.entry.js +5 -6
  27. package/dist/cjs/sqm-popup-container.cjs.entry.js +6 -7
  28. package/dist/cjs/{sqm-portal-container-view-6accb54a.js → sqm-portal-container-view-5fb2ad49.js} +4 -3
  29. package/dist/cjs/{sqm-portal-email-verification-view-2e646897.js → sqm-portal-email-verification-view-338e9288.js} +2 -2
  30. package/dist/cjs/sqm-portal-email-verification.cjs.entry.js +16 -17
  31. package/dist/cjs/{sqm-portal-forgot-password-view-f73bb724.js → sqm-portal-forgot-password-view-0142350f.js} +2 -2
  32. package/dist/cjs/sqm-portal-forgot-password.cjs.entry.js +12 -13
  33. package/dist/cjs/sqm-portal-logout.cjs.entry.js +3 -4
  34. package/dist/cjs/{sqm-portal-profile-view-52bc73ad.js → sqm-portal-profile-view-4847f1ea.js} +3 -3
  35. package/dist/cjs/sqm-portal-profile.cjs.entry.js +15 -16
  36. package/dist/cjs/sqm-portal-protected-route.cjs.entry.js +8 -9
  37. package/dist/cjs/sqm-portal-registration-form.cjs.entry.js +25 -26
  38. package/dist/cjs/{sqm-portal-reset-password-view-e182df83.js → sqm-portal-reset-password-view-d5bc7afc.js} +1 -1
  39. package/dist/cjs/sqm-portal-reset-password.cjs.entry.js +16 -17
  40. package/dist/cjs/{sqm-portal-verify-email-view-fd739843.js → sqm-portal-verify-email-view-f6c7287e.js} +3 -3
  41. package/dist/cjs/sqm-portal-verify-email.cjs.entry.js +10 -11
  42. package/dist/cjs/sqm-referral-table_11.cjs.entry.js +37 -38
  43. package/dist/cjs/sqm-referred-registration.cjs.entry.js +90 -11
  44. package/dist/cjs/sqm-rewards-table-customer-note-cell.cjs.entry.js +1 -1
  45. package/dist/cjs/sqm-rewards-table-customer-note-column.cjs.entry.js +3 -4
  46. package/dist/cjs/sqm-rewards-table_9.cjs.entry.js +33 -34
  47. package/dist/cjs/sqm-stencilbook.cjs.entry.js +548 -343
  48. package/dist/cjs/sqm-tab.cjs.entry.js +2 -3
  49. package/dist/cjs/sqm-tabs.cjs.entry.js +4 -5
  50. package/dist/cjs/{sqm-text-span-view-3c734dbb.js → sqm-text-span-view-e1cd9bd3.js} +1 -1
  51. package/dist/cjs/sqm-text-span.cjs.entry.js +1 -1
  52. package/dist/cjs/{useChildElements-a8f7f5ca.js → useChildElements-749f9c9c.js} +2 -2
  53. package/dist/cjs/useInstantAccessRegistration-1fea58e7.js +87 -0
  54. package/dist/cjs/{useReferralTable-f53a9a1b.js → useReferralTable-650b1957.js} +7 -7
  55. package/dist/cjs/{useRegistrationFormState-99160dad.js → useRegistrationFormState-67c0b5ff.js} +2 -2
  56. package/dist/collection/collection-manifest.json +4 -3
  57. package/dist/collection/components/sqm-asset-card/sqm-asset-card-view.js +2 -2
  58. package/dist/collection/components/sqm-asset-card/sqm-asset-card.js +2 -2
  59. package/dist/collection/components/sqm-big-stat/sqm-big-stat.js +3 -3
  60. package/dist/collection/components/sqm-brand/sqm-brand.js +3 -3
  61. package/dist/collection/components/sqm-card-feed/sqm-card-feed.js +4 -4
  62. package/dist/collection/components/sqm-checkbox-field/CheckboxField.stories.js +6 -1
  63. package/dist/collection/components/sqm-checkbox-field/sqm-checkbox-field-view.js +1 -1
  64. package/dist/collection/components/sqm-checkbox-field/sqm-checkbox-field.js +9 -9
  65. package/dist/collection/components/sqm-close-button/CloseButton.stories.js +27 -0
  66. package/dist/collection/components/sqm-close-button/sqm-close-button-view.js +23 -0
  67. package/dist/collection/components/sqm-close-button/sqm-close-button.js +65 -0
  68. package/dist/collection/components/sqm-coupon-code/CouponCode.stories.js +41 -11
  69. package/dist/collection/components/sqm-coupon-code/sqm-coupon-code-view.js +30 -0
  70. package/dist/collection/components/sqm-coupon-code/sqm-coupon-code.js +282 -45
  71. package/dist/collection/components/sqm-coupon-code/useCouponCode.js +88 -11
  72. package/dist/collection/components/sqm-divided-layout/sqm-divided-layout-view.js +1 -1
  73. package/dist/collection/components/sqm-divided-layout/sqm-divided-layout.js +2 -2
  74. package/dist/collection/components/sqm-dropdown-field/sqm-dropdown-field-view.js +1 -1
  75. package/dist/collection/components/sqm-dropdown-field/sqm-dropdown-field.js +5 -5
  76. package/dist/collection/components/sqm-edit-profile/sqm-edit-profile-view.js +4 -4
  77. package/dist/collection/components/sqm-edit-profile/sqm-edit-profile.js +7 -7
  78. package/dist/collection/components/sqm-empty/sqm-empty-view.js +1 -1
  79. package/dist/collection/components/sqm-form-message/FormMessage.stories.js +4 -0
  80. package/dist/collection/components/sqm-form-message/sqm-form-message.css +5 -0
  81. package/dist/collection/components/sqm-form-message/sqm-form-message.js +8 -3
  82. package/dist/collection/components/sqm-header-logo/sqm-header-logo.js +6 -6
  83. package/dist/collection/components/sqm-hero/Hero.stories.js +30 -0
  84. package/dist/collection/components/sqm-hero/sqm-hero-view.js +6 -5
  85. package/dist/collection/components/sqm-hero/sqm-hero.js +42 -8
  86. package/dist/collection/components/sqm-hero-image/sqm-hero-image-view.js +10 -9
  87. package/dist/collection/components/sqm-hero-image/sqm-hero-image.js +21 -21
  88. package/dist/collection/components/sqm-image/sqm-image-view.js +1 -1
  89. package/dist/collection/components/sqm-image/sqm-image.js +5 -5
  90. package/dist/collection/components/sqm-input-field/InputField.stories.js +6 -1
  91. package/dist/collection/components/sqm-input-field/sqm-input-field-view.js +1 -1
  92. package/dist/collection/components/sqm-input-field/sqm-input-field.js +6 -6
  93. package/dist/collection/components/sqm-instant-access-registration/sqm-instant-access-registration.js +574 -0
  94. package/dist/collection/components/sqm-instant-access-registration/useInstantAccessRegistration.js +82 -0
  95. package/dist/collection/components/sqm-leaderboard/sqm-leaderboard-view.js +2 -2
  96. package/dist/collection/components/sqm-leaderboard/sqm-leaderboard.js +13 -13
  97. package/dist/collection/components/sqm-leaderboard-rank/sqm-leaderboard-rank.js +6 -6
  98. package/dist/collection/components/sqm-link-button/LinkButton.stories.js +3 -4
  99. package/dist/collection/components/sqm-link-button/sqm-link-button-view.js +7 -4
  100. package/dist/collection/components/sqm-link-button/sqm-link-button.js +40 -6
  101. package/dist/collection/components/sqm-logout-current-user/LogoutCurrentUser.stories.js +17 -0
  102. package/dist/collection/components/{sqm-user-identifier/sqm-user-identifier-view.js → sqm-logout-current-user/sqm-logout-current-user-view.js} +7 -5
  103. package/dist/collection/components/{sqm-user-identifier/sqm-user-identifier.js → sqm-logout-current-user/sqm-logout-current-user.js} +31 -45
  104. package/dist/collection/components/sqm-logout-current-user/useLogoutCurrentUser.js +14 -0
  105. package/dist/collection/components/sqm-name-fields/sqm-name-fields.js +4 -4
  106. package/dist/collection/components/sqm-navigation-menu/sqm-navigation-menu.js +2 -2
  107. package/dist/collection/components/sqm-navigation-sidebar/sqm-navigation-sidebar-view.js +2 -2
  108. package/dist/collection/components/sqm-navigation-sidebar-item/sqm-navigation-sidebar-item-view.js +2 -2
  109. package/dist/collection/components/sqm-navigation-sidebar-item/sqm-navigation-sidebar-item.js +1 -1
  110. package/dist/collection/components/sqm-password-field/sqm-password-field-view.js +1 -1
  111. package/dist/collection/components/sqm-password-field/sqm-password-field.js +4 -4
  112. package/dist/collection/components/sqm-popup-container/sqm-popup-container-view.js +2 -2
  113. package/dist/collection/components/sqm-popup-container/sqm-popup-container.js +5 -5
  114. package/dist/collection/components/sqm-portal-change-password/sqm-portal-change-password.js +16 -16
  115. package/dist/collection/components/sqm-portal-container/PortalContainer.stories.js +12 -0
  116. package/dist/collection/components/sqm-portal-container/sqm-portal-container-view.js +2 -1
  117. package/dist/collection/components/sqm-portal-container/sqm-portal-container.js +40 -3
  118. package/dist/collection/components/sqm-portal-email-verification/sqm-portal-email-verification.js +12 -12
  119. package/dist/collection/components/sqm-portal-footer/sqm-portal-footer-view.js +1 -1
  120. package/dist/collection/components/sqm-portal-footer/sqm-portal-footer.js +40 -24
  121. package/dist/collection/components/sqm-portal-forgot-password/sqm-portal-forgot-password-view.js +1 -1
  122. package/dist/collection/components/sqm-portal-forgot-password/sqm-portal-forgot-password.js +12 -12
  123. package/dist/collection/components/sqm-portal-frame/sqm-portal-frame-view.js +3 -3
  124. package/dist/collection/components/sqm-portal-login/sqm-portal-login-view.js +1 -1
  125. package/dist/collection/components/sqm-portal-login/sqm-portal-login.js +18 -18
  126. package/dist/collection/components/sqm-portal-logout/sqm-portal-logout.js +3 -2
  127. package/dist/collection/components/sqm-portal-profile/sqm-portal-profile-view.js +1 -1
  128. package/dist/collection/components/sqm-portal-profile/sqm-portal-profile.js +16 -16
  129. package/dist/collection/components/sqm-portal-protected-route/sqm-portal-protected-route.js +6 -6
  130. package/dist/collection/components/sqm-portal-register/PortalRegister.stories.js +16 -2
  131. package/dist/collection/components/sqm-portal-register/sqm-portal-register-view.js +5 -5
  132. package/dist/collection/components/sqm-portal-register/sqm-portal-register.js +151 -25
  133. package/dist/collection/components/sqm-portal-register/usePortalRegister.js +5 -5
  134. package/dist/collection/components/sqm-portal-registration-form/sqm-portal-registration-form-view.js +1 -1
  135. package/dist/collection/components/sqm-portal-registration-form/sqm-portal-registration-form.js +35 -35
  136. package/dist/collection/components/sqm-portal-reset-password/sqm-portal-reset-password.js +18 -18
  137. package/dist/collection/components/sqm-portal-verify-email/sqm-portal-verify-email-view.js +2 -2
  138. package/dist/collection/components/sqm-portal-verify-email/sqm-portal-verify-email.js +4 -4
  139. package/dist/collection/components/sqm-program-explainer/sqm-program-explainer-view.js +3 -3
  140. package/dist/collection/components/sqm-program-explainer/sqm-program-explainer.js +3 -3
  141. package/dist/collection/components/sqm-program-explainer-step/sqm-program-explainer-step-view.js +4 -4
  142. package/dist/collection/components/sqm-program-explainer-step/sqm-program-explainer-step.js +3 -3
  143. package/dist/collection/components/sqm-referral-card/ReferralCard.stories.js +23 -0
  144. package/dist/collection/components/sqm-referral-card/sqm-referral-card-view.js +27 -32
  145. package/dist/collection/components/sqm-referral-card/sqm-referral-card.js +246 -3
  146. package/dist/collection/components/sqm-referral-iframe/sqm-referral-iframe.js +5 -5
  147. package/dist/collection/components/sqm-referral-table/cells/sqm-referral-table-rewards-cell.js +7 -7
  148. package/dist/collection/components/sqm-referral-table/columns/sqm-referral-table-column.js +1 -1
  149. package/dist/collection/components/sqm-referral-table/columns/sqm-referral-table-date-column.js +4 -4
  150. package/dist/collection/components/sqm-referral-table/columns/sqm-referral-table-rewards-column.js +14 -14
  151. package/dist/collection/components/sqm-referral-table/columns/sqm-referral-table-status-column.js +6 -6
  152. package/dist/collection/components/sqm-referral-table/columns/sqm-referral-table-user-column.js +6 -6
  153. package/dist/collection/components/sqm-referral-table/sqm-referral-table.js +16 -16
  154. package/dist/collection/components/sqm-referred-registration/sqm-referred-registration.js +379 -18
  155. package/dist/collection/components/sqm-reward-exchange-list/sqm-reward-exchange-list-view.js +1 -1
  156. package/dist/collection/components/sqm-reward-exchange-list/sqm-reward-exchange-list.js +50 -50
  157. package/dist/collection/components/sqm-rewards-table/cells/sqm-rewards-table-reward-cell.js +3 -3
  158. package/dist/collection/components/sqm-rewards-table/columns/sqm-rewards-table-date-column.js +4 -4
  159. package/dist/collection/components/sqm-rewards-table/columns/sqm-rewards-table-note-column.js +2 -2
  160. package/dist/collection/components/sqm-rewards-table/columns/sqm-rewards-table-reward-column.js +8 -8
  161. package/dist/collection/components/sqm-rewards-table/columns/sqm-rewards-table-source-column.js +12 -12
  162. package/dist/collection/components/sqm-rewards-table/columns/sqm-rewards-table-status-column.js +12 -12
  163. package/dist/collection/components/sqm-rewards-table/sqm-rewards-table.js +12 -12
  164. package/dist/collection/components/sqm-route/sqm-route.js +1 -1
  165. package/dist/collection/components/sqm-scroll/sqm-scroll.js +9 -9
  166. package/dist/collection/components/sqm-share-button/sqm-share-button.js +17 -17
  167. package/dist/collection/components/sqm-share-code/ShareCode.stories.js +4 -9
  168. package/dist/collection/components/sqm-share-code/sqm-share-code.js +30 -31
  169. package/dist/collection/components/sqm-share-link/ShareLink.stories.js +4 -9
  170. package/dist/collection/components/sqm-share-link/sqm-share-link.js +32 -33
  171. package/dist/collection/components/sqm-stat-container/sqm-stat-container-view.js +3 -3
  172. package/dist/collection/components/sqm-stat-container/sqm-stat-container.js +2 -2
  173. package/dist/collection/components/sqm-stencilbook/sqm-stencilbook.js +4 -2
  174. package/dist/collection/components/sqm-tab/sqm-tab.js +1 -1
  175. package/dist/collection/components/sqm-table-cell/sqm-table-cell.js +2 -2
  176. package/dist/collection/components/sqm-tabs/sqm-tabs.js +1 -1
  177. package/dist/collection/components/sqm-task-card/DetailsView.js +1 -1
  178. package/dist/collection/components/sqm-task-card/sqm-task-card-view.js +3 -3
  179. package/dist/collection/components/sqm-task-card/sqm-task-card.js +36 -36
  180. package/dist/collection/components/sqm-text-span/sqm-text-span-view.js +1 -1
  181. package/dist/collection/components/sqm-timeline/sqm-timeline-entry-view.js +2 -2
  182. package/dist/collection/components/sqm-timeline/sqm-timeline-entry.js +2 -2
  183. package/dist/collection/components/sqm-titled-section/sqm-portal-section-view.js +2 -2
  184. package/dist/collection/components/sqm-titled-section/sqm-titled-section.js +6 -6
  185. package/dist/collection/components/sqm-user-name/sqm-user-name.js +4 -4
  186. package/dist/collection/components/views/EmailRegistration.stories.js +38 -3
  187. package/dist/collection/components/views/copy-text-view.js +44 -27
  188. package/dist/collection/components/views/email-registration-view.js +34 -7
  189. package/dist/collection/global/styles.js +6 -0
  190. package/dist/collection/global/styles.ts +6 -0
  191. package/dist/collection/stories/PortalTemplates.stories.js +2 -42
  192. package/dist/collection/stories/Widget.stories.js +24 -26
  193. package/dist/collection/utils/DefaultTemplateView.js +31 -0
  194. package/dist/collection/utils/TemplateView.js +13 -0
  195. package/dist/esm/{ShadowViewAddon-8acfeb00.js → ShadowViewAddon-86f7b900.js} +272 -86
  196. package/dist/esm/email-registration-view-0a11e959.js +77 -0
  197. package/dist/esm/{global-170c4499.js → global-9992475a.js} +9 -3
  198. package/dist/esm/{index.module-0ba0774e.js → index.module-bbce47bd.js} +210 -221
  199. package/dist/esm/loader.js +4 -5
  200. package/dist/esm/{luxon-1e38d7f1.js → luxon-f01e85fe.js} +1 -1
  201. package/dist/esm/mint-components.js +4 -5
  202. package/dist/esm/{re-render-22de5b23.js → re-render-88ac4fa7.js} +4 -4
  203. package/dist/esm/{sqm-asset-card-view-b2ac5a23.js → sqm-asset-card-view-9d93fbdd.js} +2 -2
  204. package/dist/esm/sqm-asset-card.entry.js +3 -4
  205. package/dist/esm/{sqm-big-stat_37.entry.js → sqm-big-stat_39.entry.js} +596 -295
  206. package/dist/esm/sqm-close-button-view-dc65b4e3.js +26 -0
  207. package/dist/esm/sqm-close-button.entry.js +37 -0
  208. package/dist/esm/sqm-empty_5.entry.js +15 -8
  209. package/dist/esm/sqm-form-message.entry.js +5 -2
  210. package/dist/esm/sqm-graphql-client-provider.entry.js +6 -7
  211. package/dist/esm/sqm-header-logo.entry.js +4 -4
  212. package/dist/esm/sqm-instant-access-registration.entry.js +154 -0
  213. package/dist/esm/sqm-leaderboard-rank.entry.js +6 -7
  214. package/dist/esm/{sqm-user-identifier-view-dbf71a5e.js → sqm-logout-current-user-view-2d740794.js} +8 -6
  215. package/dist/esm/sqm-logout-current-user.entry.js +58 -0
  216. package/dist/esm/{sqm-navigation-sidebar-item-view-5a4ac267.js → sqm-navigation-sidebar-item-view-debb6dfe.js} +4 -4
  217. package/dist/esm/sqm-navigation-sidebar-item.entry.js +4 -5
  218. package/dist/esm/{sqm-navigation-sidebar-view-feb719ce.js → sqm-navigation-sidebar-view-414bcb19.js} +2 -2
  219. package/dist/esm/sqm-navigation-sidebar.entry.js +4 -5
  220. package/dist/esm/sqm-password-field.entry.js +6 -7
  221. package/dist/esm/sqm-popup-container.entry.js +7 -8
  222. package/dist/esm/{sqm-portal-container-view-83b417f0.js → sqm-portal-container-view-ab89c6cc.js} +4 -3
  223. package/dist/esm/{sqm-portal-email-verification-view-889fcc01.js → sqm-portal-email-verification-view-a93d12ca.js} +2 -2
  224. package/dist/esm/sqm-portal-email-verification.entry.js +16 -17
  225. package/dist/esm/{sqm-portal-forgot-password-view-9970dee2.js → sqm-portal-forgot-password-view-41afcace.js} +2 -2
  226. package/dist/esm/sqm-portal-forgot-password.entry.js +13 -14
  227. package/dist/esm/sqm-portal-logout.entry.js +4 -5
  228. package/dist/esm/{sqm-portal-profile-view-ac955752.js → sqm-portal-profile-view-1022dd7b.js} +3 -3
  229. package/dist/esm/sqm-portal-profile.entry.js +16 -17
  230. package/dist/esm/sqm-portal-protected-route.entry.js +9 -10
  231. package/dist/esm/sqm-portal-registration-form.entry.js +25 -26
  232. package/dist/esm/{sqm-portal-reset-password-view-1f0f3bf8.js → sqm-portal-reset-password-view-0df781f6.js} +1 -1
  233. package/dist/esm/sqm-portal-reset-password.entry.js +17 -18
  234. package/dist/esm/{sqm-portal-verify-email-view-8d453021.js → sqm-portal-verify-email-view-1db4fae6.js} +3 -3
  235. package/dist/esm/sqm-portal-verify-email.entry.js +11 -12
  236. package/dist/esm/sqm-referral-table_11.entry.js +39 -40
  237. package/dist/esm/sqm-referred-registration.entry.js +91 -12
  238. package/dist/esm/sqm-rewards-table-customer-note-cell.entry.js +2 -2
  239. package/dist/esm/sqm-rewards-table-customer-note-column.entry.js +4 -5
  240. package/dist/esm/sqm-rewards-table_9.entry.js +35 -36
  241. package/dist/esm/sqm-stencilbook.entry.js +541 -336
  242. package/dist/esm/sqm-tab.entry.js +3 -4
  243. package/dist/esm/sqm-tabs.entry.js +5 -6
  244. package/dist/esm/{sqm-text-span-view-2f7d6d14.js → sqm-text-span-view-8d140661.js} +1 -1
  245. package/dist/esm/sqm-text-span.entry.js +2 -2
  246. package/dist/esm/{stencil-hooks.module-b48b45ec.js → stencil-hooks.module-14b87f98.js} +1 -1
  247. package/dist/esm/{useChildElements-fd458906.js → useChildElements-ae207f6d.js} +3 -3
  248. package/dist/esm/useInstantAccessRegistration-175820dc.js +85 -0
  249. package/dist/esm/{useReferralTable-a3d6051e.js → useReferralTable-3aa578fa.js} +9 -9
  250. package/dist/esm/{useRegistrationFormState-29e30121.js → useRegistrationFormState-7bf6c145.js} +3 -3
  251. package/dist/esm-es5/ShadowViewAddon-86f7b900.js +1 -0
  252. package/dist/esm-es5/email-registration-view-0a11e959.js +1 -0
  253. package/dist/esm-es5/{global-170c4499.js → global-9992475a.js} +2 -2
  254. package/dist/esm-es5/index.module-bbce47bd.js +1 -0
  255. package/dist/esm-es5/loader.js +1 -1
  256. package/dist/esm-es5/{luxon-1e38d7f1.js → luxon-f01e85fe.js} +1 -1
  257. package/dist/esm-es5/mint-components.js +1 -1
  258. package/dist/esm-es5/{re-render-22de5b23.js → re-render-88ac4fa7.js} +1 -1
  259. package/dist/esm-es5/sqm-asset-card-view-9d93fbdd.js +1 -0
  260. package/dist/esm-es5/sqm-asset-card.entry.js +1 -1
  261. package/dist/esm-es5/sqm-big-stat_39.entry.js +1 -0
  262. package/dist/esm-es5/sqm-close-button-view-dc65b4e3.js +1 -0
  263. package/dist/esm-es5/sqm-close-button.entry.js +1 -0
  264. package/dist/esm-es5/sqm-empty_5.entry.js +1 -1
  265. package/dist/esm-es5/sqm-form-message.entry.js +1 -1
  266. package/dist/esm-es5/sqm-graphql-client-provider.entry.js +1 -1
  267. package/dist/esm-es5/sqm-header-logo.entry.js +1 -1
  268. package/dist/esm-es5/sqm-instant-access-registration.entry.js +1 -0
  269. package/dist/esm-es5/sqm-leaderboard-rank.entry.js +1 -1
  270. package/dist/esm-es5/sqm-logout-current-user-view-2d740794.js +1 -0
  271. package/dist/esm-es5/sqm-logout-current-user.entry.js +1 -0
  272. package/dist/esm-es5/sqm-navigation-sidebar-item-view-debb6dfe.js +1 -0
  273. package/dist/esm-es5/sqm-navigation-sidebar-item.entry.js +1 -1
  274. package/dist/esm-es5/{sqm-navigation-sidebar-view-feb719ce.js → sqm-navigation-sidebar-view-414bcb19.js} +1 -1
  275. package/dist/esm-es5/sqm-navigation-sidebar.entry.js +1 -1
  276. package/dist/esm-es5/sqm-password-field.entry.js +1 -1
  277. package/dist/esm-es5/sqm-popup-container.entry.js +1 -1
  278. package/dist/esm-es5/sqm-portal-container-view-ab89c6cc.js +1 -0
  279. package/dist/esm-es5/{sqm-portal-email-verification-view-889fcc01.js → sqm-portal-email-verification-view-a93d12ca.js} +1 -1
  280. package/dist/esm-es5/sqm-portal-email-verification.entry.js +1 -1
  281. package/dist/esm-es5/sqm-portal-forgot-password-view-41afcace.js +1 -0
  282. package/dist/esm-es5/sqm-portal-forgot-password.entry.js +1 -1
  283. package/dist/esm-es5/sqm-portal-logout.entry.js +1 -1
  284. package/dist/esm-es5/sqm-portal-profile-view-1022dd7b.js +1 -0
  285. package/dist/esm-es5/sqm-portal-profile.entry.js +1 -1
  286. package/dist/esm-es5/sqm-portal-protected-route.entry.js +1 -1
  287. package/dist/esm-es5/sqm-portal-registration-form.entry.js +1 -1
  288. package/dist/esm-es5/{sqm-portal-reset-password-view-1f0f3bf8.js → sqm-portal-reset-password-view-0df781f6.js} +1 -1
  289. package/dist/esm-es5/sqm-portal-reset-password.entry.js +1 -1
  290. package/dist/esm-es5/sqm-portal-verify-email-view-1db4fae6.js +1 -0
  291. package/dist/esm-es5/sqm-portal-verify-email.entry.js +1 -1
  292. package/dist/esm-es5/sqm-referral-table_11.entry.js +1 -1
  293. package/dist/esm-es5/sqm-referred-registration.entry.js +1 -1
  294. package/dist/esm-es5/sqm-rewards-table-customer-note-cell.entry.js +1 -1
  295. package/dist/esm-es5/sqm-rewards-table-customer-note-column.entry.js +1 -1
  296. package/dist/esm-es5/sqm-rewards-table_9.entry.js +1 -1
  297. package/dist/esm-es5/sqm-stencilbook.entry.js +1 -1
  298. package/dist/esm-es5/sqm-tab.entry.js +1 -1
  299. package/dist/esm-es5/sqm-tabs.entry.js +1 -1
  300. package/dist/esm-es5/{sqm-text-span-view-2f7d6d14.js → sqm-text-span-view-8d140661.js} +1 -1
  301. package/dist/esm-es5/sqm-text-span.entry.js +1 -1
  302. package/dist/esm-es5/{stencil-hooks.module-b48b45ec.js → stencil-hooks.module-14b87f98.js} +1 -1
  303. package/dist/esm-es5/{useChildElements-fd458906.js → useChildElements-ae207f6d.js} +1 -1
  304. package/dist/esm-es5/useInstantAccessRegistration-175820dc.js +1 -0
  305. package/dist/esm-es5/{useReferralTable-a3d6051e.js → useReferralTable-3aa578fa.js} +1 -1
  306. package/dist/esm-es5/useRegistrationFormState-7bf6c145.js +1 -0
  307. package/dist/mint-components/global/styles.ts +6 -0
  308. package/dist/mint-components/mint-components.esm.js +1 -1
  309. package/dist/mint-components/mint-components.js +1 -1
  310. package/dist/mint-components/p-0076de9e.js +1 -0
  311. package/dist/mint-components/{p-64242338.system.js → p-082fe308.system.js} +1 -1
  312. package/dist/mint-components/p-0ab63c5d.system.entry.js +1 -0
  313. package/dist/mint-components/p-0bf5a9b8.system.entry.js +1 -0
  314. package/dist/mint-components/p-0f59af44.system.entry.js +1 -0
  315. package/dist/mint-components/p-11ee41b2.entry.js +9 -0
  316. package/dist/mint-components/p-11f90784.entry.js +13 -0
  317. package/dist/mint-components/{p-7d31f692.js → p-128c36cb.js} +1 -1
  318. package/dist/mint-components/p-1437b793.system.js +1 -0
  319. package/dist/mint-components/p-16394ed3.system.entry.js +1 -0
  320. package/dist/mint-components/{p-96b05458.system.entry.js → p-16a009a5.system.entry.js} +1 -1
  321. package/dist/mint-components/{p-9cdf8d74.entry.js → p-192d008d.entry.js} +2 -2
  322. package/dist/mint-components/p-194d5ee8.system.entry.js +1 -0
  323. package/dist/mint-components/p-1c9d83b4.entry.js +1 -0
  324. package/dist/mint-components/p-1db4e037.system.entry.js +1 -0
  325. package/dist/mint-components/p-1fdf691b.js +1 -0
  326. package/dist/mint-components/{p-7d7baf55.entry.js → p-230ee2cf.entry.js} +2 -2
  327. package/dist/mint-components/p-25233df5.js +1 -0
  328. package/dist/mint-components/p-29edd49c.system.js +1 -0
  329. package/dist/mint-components/{p-3c189cea.system.js → p-2b6c19e0.system.js} +1 -1
  330. package/dist/mint-components/p-2bf86715.js +1 -0
  331. package/dist/mint-components/p-2de46e95.system.entry.js +1 -0
  332. package/dist/mint-components/p-3036cf58.system.js +1 -0
  333. package/dist/mint-components/p-307ef2b0.system.js +1 -0
  334. package/dist/mint-components/p-33f0d220.system.js +1 -0
  335. package/dist/mint-components/{p-d6c78b10.entry.js → p-399a1963.entry.js} +2 -2
  336. package/dist/mint-components/{p-b79c0e38.system.js → p-3cc28285.system.js} +1 -1
  337. package/dist/mint-components/p-3d34ec61.system.js +1 -0
  338. package/dist/mint-components/p-438599c9.entry.js +1 -0
  339. package/dist/mint-components/p-44dad7ec.entry.js +1 -0
  340. package/dist/mint-components/p-44f77c0b.system.entry.js +1 -0
  341. package/dist/mint-components/p-45b73581.system.js +1 -0
  342. package/dist/mint-components/p-46be1518.system.js +1 -0
  343. package/dist/mint-components/p-474aa3f6.entry.js +1 -0
  344. package/dist/mint-components/{p-bb6f60a6.system.js → p-4f775e84.system.js} +1 -1
  345. package/dist/mint-components/p-4fb813da.entry.js +1 -0
  346. package/dist/mint-components/p-539f8759.system.js +1 -0
  347. package/dist/mint-components/{p-bd63ef52.system.js → p-56525896.system.js} +1 -1
  348. package/dist/mint-components/p-56a7983b.js +1 -0
  349. package/dist/mint-components/{p-9076f688.js → p-58778ecb.js} +1 -1
  350. package/dist/mint-components/p-58852f54.entry.js +1 -0
  351. package/dist/mint-components/{p-f8dd6bac.js → p-5d0c9424.js} +1 -1
  352. package/dist/mint-components/p-5df5e5f9.system.entry.js +1 -0
  353. package/dist/mint-components/p-5e4833bf.system.js +1 -0
  354. package/dist/mint-components/p-608f0ed5.js +1 -0
  355. package/dist/mint-components/p-6147a73f.entry.js +1 -0
  356. package/dist/mint-components/{p-a59be693.js → p-67abcc4a.js} +4 -4
  357. package/dist/mint-components/p-6cdd171b.entry.js +1 -0
  358. package/dist/mint-components/p-6ec0be2a.entry.js +1 -0
  359. package/dist/mint-components/p-71584f5f.system.entry.js +1 -0
  360. package/dist/mint-components/p-744a6dac.system.js +1 -0
  361. package/dist/mint-components/p-75ddf3ca.js +1 -0
  362. package/dist/mint-components/p-79d72296.system.entry.js +1 -0
  363. package/dist/mint-components/p-79da7f18.js +1 -0
  364. package/dist/mint-components/p-7d3414ba.system.entry.js +1 -0
  365. package/dist/mint-components/p-7f8f0db3.entry.js +1 -0
  366. package/dist/mint-components/p-8bc630b0.system.entry.js +1 -0
  367. package/dist/mint-components/{p-0c7a3116.system.entry.js → p-8e649005.system.entry.js} +1 -1
  368. package/dist/mint-components/p-8f3486f6.entry.js +187 -0
  369. package/dist/mint-components/{p-ed801cb7.js → p-901f5b80.js} +1 -1
  370. package/dist/mint-components/p-922578e4.system.js +1 -0
  371. package/dist/mint-components/p-92cb27b6.entry.js +1 -0
  372. package/dist/mint-components/p-9907bc8a.js +1 -0
  373. package/dist/mint-components/p-9b2e0181.js +268 -0
  374. package/dist/mint-components/p-9b4eaec3.system.entry.js +1 -0
  375. package/dist/mint-components/{p-657acf81.system.js → p-9e2e4fbe.system.js} +1 -1
  376. package/dist/mint-components/p-9eae314d.entry.js +1 -0
  377. package/dist/mint-components/p-9fc8505c.entry.js +1 -0
  378. package/dist/mint-components/p-a217deee.js +1 -0
  379. package/dist/mint-components/p-a35aa347.entry.js +1 -0
  380. package/dist/mint-components/{p-9d9da716.js → p-a44dff0a.js} +1 -1
  381. package/dist/mint-components/p-a6c68191.entry.js +1 -0
  382. package/dist/mint-components/p-aaeeec70.system.entry.js +1 -0
  383. package/dist/mint-components/{p-8f58a603.system.js → p-ad7d5f56.system.js} +1 -1
  384. package/dist/mint-components/{p-3cbdb360.system.entry.js → p-b668aa0b.system.entry.js} +1 -1
  385. package/dist/mint-components/p-bbe7d182.system.entry.js +1 -0
  386. package/dist/mint-components/p-bd86123f.entry.js +1 -0
  387. package/dist/mint-components/{p-96e98d06.system.js → p-c06048c9.system.js} +1 -1
  388. package/dist/mint-components/p-c5577dd7.system.js +1 -0
  389. package/dist/mint-components/p-c6795c0c.entry.js +1 -0
  390. package/dist/mint-components/p-c80304f8.system.entry.js +1 -0
  391. package/dist/mint-components/p-c8d74710.entry.js +1 -0
  392. package/dist/mint-components/p-c9ff4821.entry.js +1 -0
  393. package/dist/mint-components/p-cadf178d.entry.js +1 -0
  394. package/dist/mint-components/p-cb900cb6.system.js +1 -0
  395. package/dist/mint-components/p-cbe95ae4.system.entry.js +1 -0
  396. package/dist/mint-components/p-cd9e6c32.system.entry.js +1 -0
  397. package/dist/mint-components/p-d349add6.system.entry.js +1 -0
  398. package/dist/mint-components/{p-25254dd1.js → p-d576140e.js} +1 -1
  399. package/dist/mint-components/p-d5a32584.entry.js +1 -0
  400. package/dist/mint-components/p-d6d40daa.system.entry.js +1 -0
  401. package/dist/mint-components/p-db24ac64.js +1 -0
  402. package/dist/mint-components/p-db27e30b.js +1 -0
  403. package/dist/mint-components/{p-085290c7.system.entry.js → p-e341e670.system.entry.js} +1 -1
  404. package/dist/mint-components/p-e4ed1803.entry.js +1 -0
  405. package/dist/mint-components/p-e56cabdd.system.js +1 -0
  406. package/dist/mint-components/p-e704842c.js +1 -0
  407. package/dist/mint-components/p-e753d5f0.system.entry.js +1 -0
  408. package/dist/mint-components/p-ee469a91.entry.js +1 -0
  409. package/dist/mint-components/p-ee4cbecb.entry.js +1 -0
  410. package/dist/mint-components/{p-a90b4c3f.js → p-efd129de.js} +1 -1
  411. package/dist/mint-components/{p-70263662.system.js → p-f1aed7cc.system.js} +2 -2
  412. package/dist/mint-components/p-f2724390.system.entry.js +1 -0
  413. package/dist/mint-components/p-f2944edb.system.entry.js +1 -0
  414. package/dist/mint-components/p-f665d57c.system.entry.js +1 -0
  415. package/dist/mint-components/{p-da70e75d.entry.js → p-f82bb604.entry.js} +1 -1
  416. package/dist/mint-components/p-fb93c962.js +1 -0
  417. package/dist/mint-components/p-fd5d6181.system.entry.js +1 -0
  418. package/dist/mint-components/{p-d9643307.system.entry.js → p-ff3b0ece.system.entry.js} +1 -1
  419. package/dist/types/components/sqm-asset-card/sqm-asset-card.d.ts +2 -2
  420. package/dist/types/components/sqm-big-stat/sqm-big-stat.d.ts +2 -2
  421. package/dist/types/components/sqm-brand/sqm-brand.d.ts +3 -3
  422. package/dist/types/components/sqm-card-feed/sqm-card-feed.d.ts +2 -2
  423. package/dist/types/components/sqm-checkbox-field/sqm-checkbox-field.d.ts +5 -5
  424. package/dist/types/components/sqm-close-button/CloseButton.stories.d.ts +8 -0
  425. package/dist/types/components/sqm-close-button/sqm-close-button-view.d.ts +5 -0
  426. package/dist/types/components/sqm-close-button/sqm-close-button.d.ts +14 -0
  427. package/dist/types/components/sqm-coupon-code/CouponCode.stories.d.ts +15 -4
  428. package/dist/types/components/sqm-coupon-code/sqm-coupon-code-view.d.ts +6 -0
  429. package/dist/types/components/sqm-coupon-code/sqm-coupon-code.d.ts +70 -20
  430. package/dist/types/components/sqm-coupon-code/useCouponCode.d.ts +9 -2
  431. package/dist/types/components/sqm-divided-layout/sqm-divided-layout.d.ts +1 -1
  432. package/dist/types/components/sqm-dropdown-field/sqm-dropdown-field.d.ts +3 -3
  433. package/dist/types/components/sqm-edit-profile/sqm-edit-profile.d.ts +7 -7
  434. package/dist/types/components/sqm-form-message/FormMessage.stories.d.ts +1 -0
  435. package/dist/types/components/sqm-form-message/sqm-form-message.d.ts +4 -2
  436. package/dist/types/components/sqm-header-logo/sqm-header-logo.d.ts +3 -3
  437. package/dist/types/components/sqm-hero/Hero.stories.d.ts +2 -0
  438. package/dist/types/components/sqm-hero/sqm-hero-view.d.ts +1 -0
  439. package/dist/types/components/sqm-hero/sqm-hero.d.ts +12 -5
  440. package/dist/types/components/sqm-hero-image/sqm-hero-image.d.ts +13 -13
  441. package/dist/types/components/sqm-image/sqm-image.d.ts +4 -4
  442. package/dist/types/components/sqm-input-field/sqm-input-field.d.ts +4 -4
  443. package/dist/types/components/sqm-instant-access-registration/sqm-instant-access-registration.d.ts +111 -0
  444. package/dist/types/components/sqm-instant-access-registration/useInstantAccessRegistration.d.ts +11 -0
  445. package/dist/types/components/sqm-leaderboard/sqm-leaderboard.d.ts +10 -10
  446. package/dist/types/components/sqm-leaderboard-rank/sqm-leaderboard-rank.d.ts +5 -5
  447. package/dist/types/components/sqm-link-button/sqm-link-button-view.d.ts +2 -2
  448. package/dist/types/components/sqm-link-button/sqm-link-button.d.ts +10 -3
  449. package/dist/types/components/sqm-logout-current-user/sqm-logout-current-user-view.d.ts +6 -0
  450. package/dist/types/components/sqm-logout-current-user/sqm-logout-current-user.d.ts +28 -0
  451. package/dist/types/components/sqm-logout-current-user/useLogoutCurrentUser.d.ts +3 -0
  452. package/dist/types/components/sqm-name-fields/sqm-name-fields.d.ts +2 -2
  453. package/dist/types/components/sqm-navigation-menu/sqm-navigation-menu.d.ts +2 -2
  454. package/dist/types/components/sqm-navigation-sidebar-item/sqm-navigation-sidebar-item.d.ts +1 -1
  455. package/dist/types/components/sqm-password-field/sqm-password-field.d.ts +2 -2
  456. package/dist/types/components/sqm-popup-container/sqm-popup-container.d.ts +5 -5
  457. package/dist/types/components/sqm-portal-change-password/sqm-portal-change-password.d.ts +8 -8
  458. package/dist/types/components/sqm-portal-container/PortalContainer.stories.d.ts +1 -0
  459. package/dist/types/components/sqm-portal-container/sqm-portal-container-view.d.ts +1 -0
  460. package/dist/types/components/sqm-portal-container/sqm-portal-container.d.ts +10 -3
  461. package/dist/types/components/sqm-portal-email-verification/sqm-portal-email-verification.d.ts +6 -6
  462. package/dist/types/components/sqm-portal-footer/sqm-portal-footer.d.ts +17 -13
  463. package/dist/types/components/sqm-portal-forgot-password/sqm-portal-forgot-password.d.ts +6 -6
  464. package/dist/types/components/sqm-portal-login/sqm-portal-login.d.ts +9 -9
  465. package/dist/types/components/sqm-portal-logout/sqm-portal-logout.d.ts +2 -1
  466. package/dist/types/components/sqm-portal-profile/sqm-portal-profile.d.ts +8 -8
  467. package/dist/types/components/sqm-portal-protected-route/sqm-portal-protected-route.d.ts +3 -3
  468. package/dist/types/components/sqm-portal-register/sqm-portal-register-view.d.ts +2 -0
  469. package/dist/types/components/sqm-portal-register/sqm-portal-register.d.ts +40 -12
  470. package/dist/types/components/sqm-portal-registration-form/sqm-portal-registration-form.d.ts +18 -18
  471. package/dist/types/components/sqm-portal-reset-password/sqm-portal-reset-password.d.ts +9 -9
  472. package/dist/types/components/sqm-portal-verify-email/sqm-portal-verify-email.d.ts +2 -2
  473. package/dist/types/components/sqm-program-explainer/sqm-program-explainer.d.ts +3 -3
  474. package/dist/types/components/sqm-program-explainer-step/sqm-program-explainer-step.d.ts +3 -3
  475. package/dist/types/components/sqm-referral-card/ReferralCard.stories.d.ts +5 -0
  476. package/dist/types/components/sqm-referral-card/sqm-referral-card-view.d.ts +9 -0
  477. package/dist/types/components/sqm-referral-card/sqm-referral-card.d.ts +45 -1
  478. package/dist/types/components/sqm-referral-iframe/sqm-referral-iframe.d.ts +3 -3
  479. package/dist/types/components/sqm-referral-table/columns/sqm-referral-table-column.d.ts +1 -1
  480. package/dist/types/components/sqm-referral-table/columns/sqm-referral-table-date-column.d.ts +2 -2
  481. package/dist/types/components/sqm-referral-table/columns/sqm-referral-table-rewards-column.d.ts +6 -6
  482. package/dist/types/components/sqm-referral-table/columns/sqm-referral-table-status-column.d.ts +3 -3
  483. package/dist/types/components/sqm-referral-table/columns/sqm-referral-table-user-column.d.ts +3 -3
  484. package/dist/types/components/sqm-referral-table/sqm-referral-table.d.ts +8 -8
  485. package/dist/types/components/sqm-referred-registration/sqm-referred-registration.d.ts +80 -6
  486. package/dist/types/components/sqm-reward-exchange-list/sqm-reward-exchange-list.d.ts +25 -25
  487. package/dist/types/components/sqm-rewards-table/columns/sqm-rewards-table-date-column.d.ts +2 -2
  488. package/dist/types/components/sqm-rewards-table/columns/sqm-rewards-table-note-column.d.ts +1 -1
  489. package/dist/types/components/sqm-rewards-table/columns/sqm-rewards-table-reward-column.d.ts +4 -4
  490. package/dist/types/components/sqm-rewards-table/columns/sqm-rewards-table-source-column.d.ts +6 -6
  491. package/dist/types/components/sqm-rewards-table/columns/sqm-rewards-table-status-column.d.ts +6 -6
  492. package/dist/types/components/sqm-rewards-table/sqm-rewards-table.d.ts +6 -6
  493. package/dist/types/components/sqm-route/sqm-route.d.ts +1 -1
  494. package/dist/types/components/sqm-scroll/sqm-scroll.d.ts +7 -7
  495. package/dist/types/components/sqm-share-button/sqm-share-button.d.ts +12 -12
  496. package/dist/types/components/sqm-share-code/ShareCode.stories.d.ts +1 -1
  497. package/dist/types/components/sqm-share-code/sqm-share-code.d.ts +13 -15
  498. package/dist/types/components/sqm-share-link/ShareLink.stories.d.ts +1 -1
  499. package/dist/types/components/sqm-share-link/sqm-share-link.d.ts +13 -15
  500. package/dist/types/components/sqm-stat-container/sqm-stat-container.d.ts +1 -1
  501. package/dist/types/components/sqm-tab/sqm-tab.d.ts +1 -1
  502. package/dist/types/components/sqm-table-cell/sqm-table-cell.d.ts +1 -1
  503. package/dist/types/components/sqm-tabs/sqm-tabs.d.ts +1 -1
  504. package/dist/types/components/sqm-task-card/sqm-task-card.d.ts +21 -21
  505. package/dist/types/components/sqm-timeline/sqm-timeline-entry.d.ts +2 -2
  506. package/dist/types/components/sqm-titled-section/sqm-titled-section.d.ts +3 -3
  507. package/dist/types/components/sqm-user-name/sqm-user-name.d.ts +2 -2
  508. package/dist/types/components/views/EmailRegistration.stories.d.ts +3 -0
  509. package/dist/types/components/views/copy-text-view.d.ts +5 -2
  510. package/dist/types/components/views/email-registration-view.d.ts +10 -0
  511. package/dist/types/components.d.ts +1400 -846
  512. package/dist/types/global/styles.d.ts +1 -1
  513. package/dist/types/stories/PortalTemplates.stories.d.ts +0 -1
  514. package/dist/types/stories/Widget.stories.d.ts +16 -4
  515. package/dist/types/utils/DefaultTemplateView.d.ts +1 -0
  516. package/dist/types/utils/TemplateView.d.ts +1 -0
  517. package/docs/docs.docx +0 -0
  518. package/docs/raisins.json +1 -1
  519. package/grapesjs/grapesjs.js +1 -1
  520. package/package.json +4 -4
  521. package/dist/cjs/email-registration-view-a483578e.js +0 -52
  522. package/dist/cjs/sqm-hero-view-ddd1ef43.js +0 -149
  523. package/dist/cjs/sqm-hero.cjs.entry.js +0 -58
  524. package/dist/cjs/sqm-link-button-view-2ee270e0.js +0 -27
  525. package/dist/cjs/sqm-link-button.cjs.entry.js +0 -23
  526. package/dist/cjs/sqm-passwordless-registration.cjs.entry.js +0 -81
  527. package/dist/cjs/sqm-user-identifier.cjs.entry.js +0 -52
  528. package/dist/cjs/use-callback-86e9ac75.js +0 -7
  529. package/dist/cjs/usePasswordlessRegistration-983ebab7.js +0 -46
  530. package/dist/collection/components/sqm-passwordless-registration/sqm-passwordless-registration.js +0 -215
  531. package/dist/collection/components/sqm-passwordless-registration/usePasswordlessRegistration.js +0 -41
  532. package/dist/collection/components/sqm-user-identifier/UserIdentifier.stories.js +0 -17
  533. package/dist/collection/components/sqm-user-identifier/useUserIdentifer.js +0 -9
  534. package/dist/esm/email-registration-view-0ed79e24.js +0 -50
  535. package/dist/esm/sqm-hero-view-875c927d.js +0 -147
  536. package/dist/esm/sqm-hero.entry.js +0 -54
  537. package/dist/esm/sqm-link-button-view-90aeb27f.js +0 -25
  538. package/dist/esm/sqm-link-button.entry.js +0 -19
  539. package/dist/esm/sqm-passwordless-registration.entry.js +0 -77
  540. package/dist/esm/sqm-user-identifier.entry.js +0 -48
  541. package/dist/esm/use-callback-051c06c6.js +0 -5
  542. package/dist/esm/usePasswordlessRegistration-94f265fe.js +0 -44
  543. package/dist/esm-es5/ShadowViewAddon-8acfeb00.js +0 -1
  544. package/dist/esm-es5/email-registration-view-0ed79e24.js +0 -1
  545. package/dist/esm-es5/index.module-0ba0774e.js +0 -1
  546. package/dist/esm-es5/sqm-asset-card-view-b2ac5a23.js +0 -1
  547. package/dist/esm-es5/sqm-big-stat_37.entry.js +0 -1
  548. package/dist/esm-es5/sqm-hero-view-875c927d.js +0 -1
  549. package/dist/esm-es5/sqm-hero.entry.js +0 -1
  550. package/dist/esm-es5/sqm-link-button-view-90aeb27f.js +0 -1
  551. package/dist/esm-es5/sqm-link-button.entry.js +0 -1
  552. package/dist/esm-es5/sqm-navigation-sidebar-item-view-5a4ac267.js +0 -1
  553. package/dist/esm-es5/sqm-passwordless-registration.entry.js +0 -1
  554. package/dist/esm-es5/sqm-portal-container-view-83b417f0.js +0 -1
  555. package/dist/esm-es5/sqm-portal-forgot-password-view-9970dee2.js +0 -1
  556. package/dist/esm-es5/sqm-portal-profile-view-ac955752.js +0 -1
  557. package/dist/esm-es5/sqm-portal-verify-email-view-8d453021.js +0 -1
  558. package/dist/esm-es5/sqm-user-identifier-view-dbf71a5e.js +0 -1
  559. package/dist/esm-es5/sqm-user-identifier.entry.js +0 -1
  560. package/dist/esm-es5/use-callback-051c06c6.js +0 -1
  561. package/dist/esm-es5/usePasswordlessRegistration-94f265fe.js +0 -1
  562. package/dist/esm-es5/useRegistrationFormState-29e30121.js +0 -1
  563. package/dist/mint-components/p-03ad8655.js +0 -1
  564. package/dist/mint-components/p-045af9fb.system.entry.js +0 -1
  565. package/dist/mint-components/p-0597b64f.js +0 -1
  566. package/dist/mint-components/p-0a410d79.entry.js +0 -1
  567. package/dist/mint-components/p-0b6ee047.entry.js +0 -13
  568. package/dist/mint-components/p-0c5aadd5.system.entry.js +0 -1
  569. package/dist/mint-components/p-0d395b4f.system.entry.js +0 -1
  570. package/dist/mint-components/p-0e359e2a.entry.js +0 -9
  571. package/dist/mint-components/p-0eddbe09.entry.js +0 -1
  572. package/dist/mint-components/p-129c07fd.js +0 -268
  573. package/dist/mint-components/p-135c3cef.entry.js +0 -1
  574. package/dist/mint-components/p-16dda971.system.entry.js +0 -1
  575. package/dist/mint-components/p-18e7d7c6.system.entry.js +0 -1
  576. package/dist/mint-components/p-19244318.system.entry.js +0 -1
  577. package/dist/mint-components/p-19a3833c.system.entry.js +0 -1
  578. package/dist/mint-components/p-1b9c1909.entry.js +0 -1
  579. package/dist/mint-components/p-1d9cb344.entry.js +0 -1
  580. package/dist/mint-components/p-1f54fd38.system.js +0 -1
  581. package/dist/mint-components/p-221878e3.entry.js +0 -1
  582. package/dist/mint-components/p-26117a7d.system.js +0 -1
  583. package/dist/mint-components/p-2a7686a6.system.entry.js +0 -1
  584. package/dist/mint-components/p-2b9ae018.system.js +0 -1
  585. package/dist/mint-components/p-30239975.system.js +0 -1
  586. package/dist/mint-components/p-30689236.system.entry.js +0 -1
  587. package/dist/mint-components/p-30ec7d38.entry.js +0 -1
  588. package/dist/mint-components/p-3552b5c5.entry.js +0 -1
  589. package/dist/mint-components/p-35d6d322.system.js +0 -1
  590. package/dist/mint-components/p-3d339fa9.js +0 -1
  591. package/dist/mint-components/p-3f075d21.entry.js +0 -1
  592. package/dist/mint-components/p-3fe1485c.entry.js +0 -1
  593. package/dist/mint-components/p-4336876b.js +0 -1
  594. package/dist/mint-components/p-494829ff.js +0 -1
  595. package/dist/mint-components/p-4994b24c.system.js +0 -1
  596. package/dist/mint-components/p-4ace5def.system.entry.js +0 -1
  597. package/dist/mint-components/p-517a5669.system.js +0 -1
  598. package/dist/mint-components/p-56306cfd.system.js +0 -1
  599. package/dist/mint-components/p-58362d80.system.entry.js +0 -1
  600. package/dist/mint-components/p-58d65ecc.js +0 -1
  601. package/dist/mint-components/p-5a8866c0.system.entry.js +0 -1
  602. package/dist/mint-components/p-5de1699d.js +0 -1
  603. package/dist/mint-components/p-62306484.entry.js +0 -1
  604. package/dist/mint-components/p-689d022a.js +0 -1
  605. package/dist/mint-components/p-6c0409fe.system.entry.js +0 -1
  606. package/dist/mint-components/p-6ddc2a08.js +0 -1
  607. package/dist/mint-components/p-6e9cfc74.entry.js +0 -1
  608. package/dist/mint-components/p-71fe4061.js +0 -1
  609. package/dist/mint-components/p-72cb7a2e.system.entry.js +0 -1
  610. package/dist/mint-components/p-730db569.system.entry.js +0 -1
  611. package/dist/mint-components/p-76c339cd.system.js +0 -1
  612. package/dist/mint-components/p-7ef716a7.js +0 -1
  613. package/dist/mint-components/p-8322ad92.entry.js +0 -1
  614. package/dist/mint-components/p-83927707.js +0 -1
  615. package/dist/mint-components/p-8478a86e.system.entry.js +0 -1
  616. package/dist/mint-components/p-88ce114f.system.entry.js +0 -1
  617. package/dist/mint-components/p-8e0d9535.entry.js +0 -1
  618. package/dist/mint-components/p-8eb7dbfa.entry.js +0 -1
  619. package/dist/mint-components/p-919ea20a.system.entry.js +0 -1
  620. package/dist/mint-components/p-94607792.entry.js +0 -1
  621. package/dist/mint-components/p-97763c36.system.js +0 -1
  622. package/dist/mint-components/p-97988090.system.entry.js +0 -1
  623. package/dist/mint-components/p-97fa9d3e.system.entry.js +0 -1
  624. package/dist/mint-components/p-9cbc79f6.system.entry.js +0 -1
  625. package/dist/mint-components/p-a2f7a2f3.system.js +0 -1
  626. package/dist/mint-components/p-a7451d8c.entry.js +0 -1
  627. package/dist/mint-components/p-addba64e.entry.js +0 -1
  628. package/dist/mint-components/p-b27a0503.system.entry.js +0 -1
  629. package/dist/mint-components/p-ba3b21d2.system.entry.js +0 -1
  630. package/dist/mint-components/p-ba50a107.system.entry.js +0 -1
  631. package/dist/mint-components/p-bb451c6e.system.js +0 -1
  632. package/dist/mint-components/p-bd037777.entry.js +0 -1
  633. package/dist/mint-components/p-bf021a55.entry.js +0 -1
  634. package/dist/mint-components/p-bfd347b4.js +0 -1
  635. package/dist/mint-components/p-bfdbe27c.js +0 -1
  636. package/dist/mint-components/p-bfecc81e.system.js +0 -1
  637. package/dist/mint-components/p-c2c3d7fd.entry.js +0 -1
  638. package/dist/mint-components/p-c3765ad9.system.entry.js +0 -1
  639. package/dist/mint-components/p-c3777cf3.system.entry.js +0 -1
  640. package/dist/mint-components/p-c4b6454d.system.entry.js +0 -1
  641. package/dist/mint-components/p-d16b1f37.entry.js +0 -1
  642. package/dist/mint-components/p-d6fe7dee.entry.js +0 -171
  643. package/dist/mint-components/p-de055c6b.system.js +0 -1
  644. package/dist/mint-components/p-e633ae08.entry.js +0 -1
  645. package/dist/mint-components/p-eb25d055.system.js +0 -1
  646. package/dist/mint-components/p-f0a3c195.system.js +0 -1
  647. package/dist/mint-components/p-f27766d6.entry.js +0 -1
  648. package/dist/mint-components/p-f66b4b3a.js +0 -1
  649. package/dist/mint-components/p-f778fc9e.entry.js +0 -1
  650. package/dist/mint-components/p-f8bbbea1.js +0 -1
  651. package/dist/mint-components/p-f8d9e861.system.js +0 -1
  652. package/dist/types/components/sqm-passwordless-registration/sqm-passwordless-registration.d.ts +0 -37
  653. package/dist/types/components/sqm-passwordless-registration/usePasswordlessRegistration.d.ts +0 -9
  654. package/dist/types/components/sqm-user-identifier/sqm-user-identifier-view.d.ts +0 -6
  655. package/dist/types/components/sqm-user-identifier/sqm-user-identifier.d.ts +0 -30
  656. package/dist/types/components/sqm-user-identifier/useUserIdentifer.d.ts +0 -3
  657. /package/dist/types/components/{sqm-user-identifier/UserIdentifier.stories.d.ts → sqm-logout-current-user/LogoutCurrentUser.stories.d.ts} +0 -0
@@ -1,31 +1,29 @@
1
1
  import { h, r as registerInstance, c as Host } from './index-17b4da69.js';
2
- import { a as commonjsGlobal, k as useMemo, i as useState, u as useEffect, c as createCommonjsModule, m as h$1 } from './stencil-hooks.module-b48b45ec.js';
3
- import './global-170c4499.js';
4
- import './use-callback-051c06c6.js';
5
- import { g as gn, c as mn, e as setUserIdentity, d as dist, z as ze, o as setProgramId } from './index.module-0ba0774e.js';
2
+ import { a as commonjsGlobal, u as useMemo, j as useState, f as useEffect, c as createCommonjsModule, m as h$1 } from './stencil-hooks.module-14b87f98.js';
3
+ import './global-9992475a.js';
4
+ import { p as pn, v as vn, e as setUserIdentity, d as dist, J as Je, j as setProgramId } from './index.module-bbce47bd.js';
6
5
  import './cjs-bdfb4486.js';
7
6
  import './mixins-f60a614c.js';
8
7
  import { c as createStyleSheet } from './JSS-67b5cff8.js';
9
8
  import { G as GenericTableView } from './GenericTableView-266126f9.js';
10
- import './useChildElements-fd458906.js';
11
- import { l as luxon } from './luxon-1e38d7f1.js';
9
+ import './useChildElements-ae207f6d.js';
10
+ import { l as luxon } from './luxon-f01e85fe.js';
12
11
  import './utils-334c1e34.js';
13
- import './sqm-text-span-view-2f7d6d14.js';
14
- import { A as AssetCardView } from './sqm-asset-card-view-b2ac5a23.js';
15
- import { H as HeroView } from './sqm-hero-view-875c927d.js';
12
+ import './sqm-text-span-view-8d140661.js';
13
+ import { A as AssetCardView } from './sqm-asset-card-view-9d93fbdd.js';
14
+ import { C as CloseButtonView } from './sqm-close-button-view-dc65b4e3.js';
15
+ import { E as EmailRegistrationView } from './email-registration-view-0a11e959.js';
16
16
  import { L as LeaderboardRankView } from './sqm-leaderboard-rank-view-10657658.js';
17
- import { L as LinkButtonView } from './sqm-link-button-view-90aeb27f.js';
18
- import { N as NavigationSidebarView } from './sqm-navigation-sidebar-view-feb719ce.js';
19
- import { N as NavigationSidebarItemView } from './sqm-navigation-sidebar-item-view-5a4ac267.js';
20
- import { E as EmailRegistrationView } from './email-registration-view-0ed79e24.js';
21
- import { P as PortalEmailVerificationView } from './sqm-portal-email-verification-view-889fcc01.js';
22
- import { P as PortalForgotPasswordView } from './sqm-portal-forgot-password-view-9970dee2.js';
23
- import { P as PortalProfileView } from './sqm-portal-profile-view-ac955752.js';
24
- import { P as PortalResetPasswordView } from './sqm-portal-reset-password-view-1f0f3bf8.js';
25
- import { P as PortalVerifyEmailView } from './sqm-portal-verify-email-view-8d453021.js';
26
- import { S as ShareButtonView, L as LeaderboardView, C as CopyTextView, B as BigStatView, P as PortalFrameView, E as EditProfileView, u as useShareLink, a as useShareButton, b as useDemoBigStat, c as StatContainerView, d as PortalChangePasswordView, e as PortalLoginView, f as PortalRegisterView, T as TaskCardView, g as ProgressBarView, h as PoweredByImg$1, i as PortalFooterView, R as ReferralIframeView, N as NameFieldsView, j as CheckboxFieldView, D as DropdownFieldView, I as InputFieldView, k as RewardExchangeView, r as rewardExchangeCustomErrorMsg, l as rewardExchangeLongText, m as rewardExchangeSelected, n as chooseAmountFixed, o as chooseAmountFixedNoDescription, p as chooseAmountVariable, q as chooseAmountVariableNoDescription, s as chooseAmountVariableDisabled, t as chooseAmountVariableUnavailable, v as confirmFixed, w as confirmVariable, x as redemptionError, y as queryError, z as success, A as successVariable, F as loading, G as empty$1, H as rewardExchange, J as CardFeedView, K as autoColorScaleCss, M as ShadowViewAddon } from './ShadowViewAddon-8acfeb00.js';
27
- import { P as PortalContainerView, a as PortalSectionView } from './sqm-portal-container-view-83b417f0.js';
28
- import { U as UserIdentifierView } from './sqm-user-identifier-view-dbf71a5e.js';
17
+ import { L as LogoutCurrentUserView } from './sqm-logout-current-user-view-2d740794.js';
18
+ import { N as NavigationSidebarView } from './sqm-navigation-sidebar-view-414bcb19.js';
19
+ import { N as NavigationSidebarItemView } from './sqm-navigation-sidebar-item-view-debb6dfe.js';
20
+ import { P as PortalEmailVerificationView } from './sqm-portal-email-verification-view-a93d12ca.js';
21
+ import { P as PortalForgotPasswordView } from './sqm-portal-forgot-password-view-41afcace.js';
22
+ import { P as PortalProfileView } from './sqm-portal-profile-view-1022dd7b.js';
23
+ import { P as PortalResetPasswordView } from './sqm-portal-reset-password-view-0df781f6.js';
24
+ import { P as PortalVerifyEmailView } from './sqm-portal-verify-email-view-1db4fae6.js';
25
+ import { S as ShareButtonView, L as LeaderboardView, C as CopyTextView, B as BigStatView, P as PortalFrameView, E as EditProfileView, u as useShareLink, a as useShareButton, b as useDemoBigStat, c as StatContainerView, d as PortalChangePasswordView, e as PortalLoginView, f as PortalRegisterView, T as TaskCardView, g as ProgressBarView, h as PoweredByImg$1, i as PortalFooterView, H as HeroView, R as ReferralIframeView, N as NameFieldsView, j as CheckboxFieldView, D as DropdownFieldView, I as InputFieldView, k as RewardExchangeView, r as rewardExchangeCustomErrorMsg, l as rewardExchangeLongText, m as rewardExchangeSelected, n as chooseAmountFixed, o as chooseAmountFixedNoDescription, p as chooseAmountVariable, q as chooseAmountVariableNoDescription, s as chooseAmountVariableDisabled, t as chooseAmountVariableUnavailable, v as confirmFixed, w as confirmVariable, x as redemptionError, y as queryError, z as success, A as successVariable, F as loading, G as empty$1, J as rewardExchange, K as CardFeedView, M as CouponCodeView, O as autoColorScaleCss, Q as ShadowViewAddon } from './ShadowViewAddon-86f7b900.js';
26
+ import { P as PortalContainerView, a as PortalSectionView } from './sqm-portal-container-view-ab89c6cc.js';
29
27
 
30
28
  /**
31
29
  * lodash (Custom Build) <https://lodash.com/>
@@ -1441,7 +1439,7 @@ var _createEmotion = createEmotion({
1441
1439
  }),
1442
1440
  css = _createEmotion.css;
1443
1441
 
1444
- function i$1(){return (i$1=Object.assign||function(n){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var r in o)Object.prototype.hasOwnProperty.call(o,r)&&(n[r]=o[r]);}return n}).apply(this,arguments)}function s(n,t){return t||(t=n.slice(0)),n.raw=t,n}var a$1,l,u,c$1=css(a$1||(a$1=s(['\n width: 100vw;\n height: 100vh;\n\n .story-book-outer-div {\n .story-div {\n font-family: "Arial", sans-serif;\n font-size: 12px;\n }\n padding-bottom: 500px;\n }\n\n .story-div {\n position: fixed;\n box-sizing: border-box;\n top: 0;\n width: 250px;\n height: 100vh;\n z-index: 999;\n overflow-y: scroll;\n background: white;\n margin-bottom: 32px;\n }\n\n .header {\n padding: 24px 0 16px 16px;\n margin-bottom: 24px;\n color: white;\n background: #333;\n cursor: pointer;\n\n h2 {\n letter-spacing: 3px;\n font-weight: 400;\n }\n }\n\n .parentStoryList {\n list-style: none;\n padding-left: 16px;\n\n summary {\n margin-bottom: 4px;\n }\n }\n .parentStory {\n cursor: pointer;\n }\n .parentStory.selected {\n font-weight: bold;\n }\n\n .subStory {\n font-size: 12px;\n cursor: pointer;\n line-height: 1.5em;\n margin-top: 4px;\n\n a {\n display: block;\n padding: 4px 4px 4px 16px;\n }\n }\n .subStory:hover {\n background-color: #eee;\n }\n .subStory.selected {\n background-color: lightgreen;\n }\n\n .component {\n padding: 24px 16px;\n }\n\n h4.group-header {\n margin: 8px 0;\n text-transform: uppercase;\n font-weight: 600;\n font-size: 14px;\n color: #575757;\n }\n\n .group-wrapper {\n margin-bottom: 24px;\n }\n\n .dynamic-display-wrapper {\n position: fixed;\n display: flex;\n flex-direction: column;\n bottom: 0;\n left: 100%;\n padding: 16px;\n z-index: 1000;\n background: white;\n transform: translateX(-100%);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);\n\n & > :not(:first-child) {\n margin-top: 12px;\n }\n\n p {\n font-size: 12px;\n margin: 0;\n padding: 0;\n }\n\n .button-wrapper {\n display: flex;\n\n & > :not(:first-child) {\n margin-left: 12px;\n }\n }\n\n & button {\n border: 1px solid #eaeaea;\n background: white;\n border-radius: 4px;\n color: #777;\n padding: 4px 12px;\n justify-content: center;\n align-items: center;\n text-align: center;\n\n &.active {\n background: #555;\n border-color: #555;\n color: white;\n }\n }\n }\n'])));function p$1(n,t){var o,r=t.story.title.split("/"),e=r[1]?r[0]:"_";return i$1({},n,((o={})[e]=[].concat(n[e]||[],[{story:i$1({},t.story,{title:r[1]||r[0]}),subs:t.subs}]).sort(function(n,t){return n.story.title.localeCompare(t.story.title)}),o))}function d$1(n){return {story:n.default,subs:function(n,t){if(null==n)return {};var o,r,e={},i=Object.keys(n);for(r=0;r<i.length;r++)t.indexOf(o=i[r])>=0||(e[o]=n[o]);return e}(n,["default"])}}function f(a,f){var b=f.h,y=void 0===b?h:b,g=f.title,m=void 0===g?"Stencilbook":g,x=f.homepage,h$1=void 0===x?y("h3",null,"Select a story!"):x,v=f.addons,k=void 0===v?[]:v,w=useMemo(function(){return a.map(d$1).reduce(p$1,{_:[]})},a),S=useState(void 0),C=S[0],z=S[1],O=null==C?void 0:C.key,j=useState("desktop"),T=j[0],_=j[1],B=useState(!0),D=B[0],L=B[1],N=useState(!1),q=N[0],A=N[1],M=function(){return y("div",{class:"dynamic-display-wrapper"},y("div",{class:"button-wrapper"},y("button",{class:"desktop"===T?"active":"",onClick:function(){return _("desktop")}},"Desktop"),y("button",{class:"tablet"===T?"active":"",onClick:function(){return _("tablet")}},"Tablet"),y("button",{class:"mobile"===T?"active":"",onClick:function(){return _("mobile")}},"Mobile")),y("p",null,"Note: Currently doesn't test breakpoints, use the native tester for now"),y("hr",null),y("button",{class:q?"active":"",onClick:function(){return A(function(n){return !n})}},"Toggle Dark Background"),y("hr",null),y("button",{class:D?"active":"",onClick:function(){return L(function(n){return !n})}},"Toggle Sidebar"))},P="mobile"===T?"375px":"tablet"===T?"768px":"1124px",V=css(l||(l=s(["\n max-width: ",";\n margin-left: ",";\n "])),P,D?"250px":"0px"),X=css(u||(u=s(["\n display: none;\n "])));document.body.style.backgroundColor=q?"#232323":"#fafafa";var E=function(n){var t=n.selected,o=k.reduce(function(n,o){return function(){return y(o,{story:i$1({},t)},y(n,null))}},null==t?void 0:t.story);return y(o,null)},F=function(){return y("div",{class:"story-book-outer-div"},y("div",{class:"story-div "+(D?"":X)},y("div",{class:"header",onClick:function(){z(void 0);}},y("h2",null,m)),y("ul",{class:"parentStoryList"},Object.keys(w).sort().map(function(n){return y("div",{class:"group-wrapper"},"_"!==n&&y("h4",{class:"group-header"},n),w[n].map(function(t){return y("li",{class:"parentStory"},y("details",{style:{marginBottom:"10px"}},y("summary",{style:{outline:"none"}},t.story.title),t.subs&&Object.keys(t.subs).map(function(o){var e=n+"/"+o,i=t.subs[o],s=i.storyName||lodash_startcase(o);return y("div",{class:"subStory "+(O===e?"selected":"")},y("a",{onClick:function(){return function(n,t,o,r){z({key:t,story:n,parent:o,label:r});}(i,e,t.story,s)}},s))})))}))}))),y(M,null),y("div",{class:"component "+V},!O&&h$1,O&&y("div",null,y("h3",null,C.label),y(E,{selected:C}))))};return {class:c$1,children:y(F,null),View:F,selected:C}}
1442
+ function i$1(){return (i$1=Object.assign||function(n){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var r in o)Object.prototype.hasOwnProperty.call(o,r)&&(n[r]=o[r]);}return n}).apply(this,arguments)}function a$1(n,t){return t||(t=n.slice(0)),n.raw=t,n}var s,l,c$1,u=css(s||(s=a$1(['\n width: 100vw;\n height: 100vh;\n\n .story-book-outer-div {\n .story-div {\n font-family: "Arial", sans-serif;\n font-size: 12px;\n }\n padding-bottom: 500px;\n }\n\n .story-div {\n position: fixed;\n box-sizing: border-box;\n top: 0;\n width: 250px;\n height: 100vh;\n z-index: 999;\n overflow-y: scroll;\n background: white;\n margin-bottom: 32px;\n }\n\n .header {\n padding: 24px 0 16px 16px;\n margin-bottom: 24px;\n color: white;\n background: #333;\n cursor: pointer;\n\n h2 {\n letter-spacing: 3px;\n font-weight: 400;\n }\n }\n\n .parentStoryList {\n list-style: none;\n padding-left: 16px;\n\n summary {\n margin-bottom: 4px;\n }\n }\n .parentStory {\n cursor: pointer;\n }\n .parentStory.selected {\n font-weight: bold;\n }\n\n .subStory {\n font-size: 12px;\n cursor: pointer;\n line-height: 1.5em;\n margin-top: 4px;\n\n a {\n display: block;\n padding: 4px 4px 4px 16px;\n }\n }\n .subStory:hover {\n background-color: #eee;\n }\n .subStory.selected {\n background-color: lightgreen;\n }\n\n .component {\n padding: 24px 16px;\n }\n\n h4.group-header {\n margin: 8px 0;\n text-transform: uppercase;\n font-weight: 600;\n font-size: 14px;\n color: #575757;\n }\n\n .group-wrapper {\n margin-bottom: 24px;\n }\n\n .dynamic-display-wrapper {\n position: fixed;\n display: flex;\n flex-direction: column;\n bottom: 0;\n left: 100%;\n padding: 16px;\n z-index: 1000;\n background: white;\n transform: translateX(-100%);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);\n\n & > :not(:first-child) {\n margin-top: 12px;\n }\n\n p {\n font-size: 12px;\n margin: 0;\n padding: 0;\n }\n\n .button-wrapper {\n display: flex;\n\n & > :not(:first-child) {\n margin-left: 12px;\n }\n }\n\n & button {\n border: 1px solid #eaeaea;\n background: white;\n border-radius: 4px;\n color: #777;\n padding: 4px 12px;\n justify-content: center;\n align-items: center;\n text-align: center;\n\n &.active {\n background: #555;\n border-color: #555;\n color: white;\n }\n }\n }\n'])));function p$1(n,t){var o,r=t.story.title.split("/"),e=r[1]?r[0]:"_";return i$1({},n,((o={})[e]=[].concat(n[e]||[],[{story:i$1({},t.story,{title:r[1]||r[0]}),subs:t.subs}]).sort(function(n,t){return n.story.title.localeCompare(t.story.title)}),o))}function d$1(n){return {story:n.default,subs:function(n,t){if(null==n)return {};var o,r,e={},i=Object.keys(n);for(r=0;r<i.length;r++)t.indexOf(o=i[r])>=0||(e[o]=n[o]);return e}(n,["default"])}}function f(s,f){var m=f.h,y=void 0===m?h:m,b=f.title,g=void 0===b?"Stencilbook":b,x=f.homepage,h$1=void 0===x?y("h3",null,"Select a story!"):x,v=f.addons,w=void 0===v?[]:v,k=useMemo(function(){return s.map(d$1).reduce(p$1,{_:[]})},s),S=decodeURIComponent(window.location.hash).replace("#",""),C=useState(q(S)),z=C[0],O=C[1],j=null==z?void 0:z.key,I=useState("desktop")[0],R=useState(!0),U=R[0],_=R[1],B=useState(!1),L=B[0],T=B[1];function q(n){var t;if(n){var o=decodeURIComponent(n).split("-"),r=o[1],e=o[2],i=null==(t=k[o[0]])?void 0:t.find(function(n){return n.story.title===r}),a=i.subs[e];return {key:n,story:a,parent:null==i?void 0:i.story,label:null==a?void 0:a.name}}}var A=function(){return y("div",{class:"dynamic-display-wrapper"},y("button",{class:L?"active":"",onClick:function(){return T(function(n){return !n})}},"Toggle Dark Background"),y("button",{class:U?"active":"",onClick:function(){return _(function(n){return !n})}},"Toggle Sidebar"))},D="mobile"===I?"375px":"tablet"===I?"768px":"1124px",N=css(l||(l=a$1(["\n max-width: ",";\n margin-left: ",";\n "])),D,U?"250px":"0px"),P=css(c$1||(c$1=a$1(["\n display: none;\n "])));document.body.style.backgroundColor=L?"#232323":"#fafafa";var V=function(n){var t=n.selected,o=w.reduce(function(n,o){return function(){return y(o,{story:i$1({},t)},y(n,null))}},null==t?void 0:t.story);return y(o,null)},X=function(){return y("div",{class:"story-book-outer-div"},y("div",{class:"story-div "+(U?"":P)},y("div",{class:"header",onClick:function(){O(void 0);}},y("h2",null,g)),y("ul",{class:"parentStoryList"},Object.keys(k).sort().map(function(n){return y("div",{class:"group-wrapper"},"_"!==n&&y("h4",{class:"group-header"},n),k[n].map(function(t){return y("li",{class:"parentStory"},y("details",{style:{marginBottom:"10px"}},y("summary",{style:{outline:"none"}},t.story.title),t.subs&&Object.keys(t.subs).map(function(o){var e=n+"-"+t.story.title+"-"+o,i=t.subs[o].storyName||lodash_startcase(o);return y("div",{class:"subStory "+(j===e?"selected":"")},y("a",{onClick:function(){return function(n){window.location.hash=encodeURIComponent(n),O(q(n));}(e)}},i))})))}))}))),y(A,null),y("div",{class:"component "+N},!j&&h$1,j&&y("div",null,y("h3",null,z.label),y(V,{selected:z}))))};return {class:u,children:y(X,null),View:X,selected:z}}
1445
1443
 
1446
1444
  const scenario = "@author:noah\n@owner:noah\nFeature: Share Button\n\n The share button redirects users to a platform where they can share their referral link\n\n @motivating\n @ui\n Scenario Outline: Share button displays for various platforms\n Given the share button's medium prop is \"<medium>\"\n And the button's child is text saying \"BUTTON_TEXT\"\n When the share button is rendered\n Then the button has text \"BUTTON_TEXT\"\n And the button is <colour>\n And it displays an <icon> beside the text\n And clicking the button redirects to an appropriate link\n Examples:\n | medium | colour | icon |\n | facebook | #1877f2 | facebook logo |\n | twitter | #1da1f2 | twitter logo |\n | email | #666666 | envelope |\n | direct | brand colour | paper plane |\n | linkedin | #0077b5 | linkedIn logo |\n | sms | #34DA50 | chat bubble |\n | fbmessenger | #0084ff | messenger logo |\n | whatsapp | #25d366 | whatsapp logo |\n | linemessenger | #00B300 | linemessenger logo |\n | pinterest | #e60023 | pinterest logo |\n\n @minutia\n @ui\n Scenario Outline: Default icons can be overwritten\n Given a share button for any medium with <iconPropValue>\n When the share button is rendered\n Then it displays a <iconPropValue> instead of the share mediums default icon\n Examples:\n | iconPropValue |\n | basket |\n | bluetooth |\n | bandaid |\n\n @motivating\n @ui\n Scenario Outline: Default share medium colours can be overwritten\n Given a share button for any medium with <backgroundColourPropValue>\n When the share button is rendered\n Then the share button is <backgroundColourPropValue>\n Examples:\n | backgroundColourPropValue |\n | blue |\n | black |\n | green |\n\n @minutia\n @ui\n Scenario Outline: Share medium icons and text can be hidden\n Given a share button with <prop> <value>\n When the share button is rendered\n Then <element> is hidden\n Examples:\n | prop | value | element |\n | hideicon | true | icon |\n | hidetext | true | text |\n\n @minutia\n @ui\n Scenario Outline: Icons can be on either side of the text\n Given a share button with <iconslotPropValue>\n When the share button is rendered\n Then the icon is displayed to the <direction> of the text\n Examples:\n | iconslotPropValue | direction |\n | suffix | right |\n | prefix | left |\n | prefix | left |\n\n @minutia\n Scenario: Unsupported browsers hide native share buttons\n Given the share button's medium prop is \"direct\"\n And your browser does not support the Web Share API\n Then the share button is hidden\n\n @minutia\n Scenario: SMS share buttons are hidden on non Android and iOS devices\n Given the share button's medium is \"sms\"\n And the share button is being viewed on a device which is not an Android or iOS device\n Then the share button is hidden\n\n @motivating\n Scenario: Facebook share buttons uses SquatchAndroid sharing features\n Given the share button's medium is \"facebook\"\n And the share button is being viewed in a web view with the SquatchAndroid API\n And the Facebook app is available\n Then tapping the share button opens the phone's Facebook app\n And a share activity is opened with the share link prefilled\n\n @motivating\n Scenario: SquatchAndroid falls back to the Facebook website if no app is available\n Given the share button's medium is \"facebook\"\n And the share button is being viewed in a web view with the SquatchAndroid API\n And the Facebook app is not available\n Then tapping the share button opens the the Facebook mobile site in the device's browser\n And a share activity is opened with the share link prefilled\n\n @minutia\n Scenario: A supplied program ID is used if available\n Given the program id is supplied to the component in the \"programId\" prop\n Then the program ID in the \"programId\" prop is used to retrieve share links\n\n @minutia\n Scenario: The program ID is automatically fetched from context\n Given the program id is not supplied to the component in the \"programId\" prop\n Then the program ID is retrieved from context";
1447
1445
 
@@ -1621,7 +1619,7 @@ const EmptyState = /*#__PURE__*/Object.freeze({
1621
1619
  SlottedIntoComponent: SlottedIntoComponent
1622
1620
  });
1623
1621
 
1624
- const scenario$2 = "@author:johan\n@owner:johan\nFeature: Share Link\n\n The share link component is a box that allows users to see and copy their share link for a given program\n\n Background: Environment\n Given there is a valid program ID in the environment\n And there is a valid user ID and account ID in the environment\n\n @motivating\n Scenario: A Users sharelink can be copied to their clipboard\n Given tooltipText is \"hello tooltip\"\n When the component renders\n Then there is a textbox with the user's share link\n When the clipboard icon is clicked\n Then the link is copied to clipboard\n And a tooltip appears for ~1 second\n\n @minutia\n Scenario: Tooltip lifespan defaults to 2000\n Given the tooltip's lifespan is set to 2000\n And there is tooltip text\n When the component renders\n And the clipboard icon is clicked\n Then a tooltip appears for ~2 seconds\n\n @minutia\n Scenario: Demo\n Given isDemo() returns true\n Then the share link is \"https://www.example.com/sharelink/abc\"\n And the component won't be interactive\n And the tooltip is hidden\n\n @minutia\n Scenario: Program ID can be sourced from prop\n Given the programId prop is set to \"program-a\"\n And window.widgetIdent.programId is set to \"program-b\"\n When the component renders\n Then the share link is for \"program-a\"\n\n @minutia\n Scenario: Program ID can be sourced from window\n Given the programId prop is unset\n And window.widgetIdent.programId is set to \"program-b\"\n When the component renders\n Then the share link is for \"program-b\"\n\n @minutia\n Scenario: An analytic event is fired when a user copies their sharelink\n Given a user viewing the share link component\n And the component is rendered for \"program-a\"\n When they click to copy their link\n Then an \"USER_REFERRAL_PROGRAM_ENGAGEMENT_EVENT\" analytic event is fired\n And it is for \"program-a\"\n And it has share medium \"DIRECT\"\n";
1622
+ const scenario$2 = "@author:johan\n@owner:johan\nFeature: Share Link\n\n The share link component is a box that allows users to see and copy their share link for a given program\n\n Background: Environment\n Given there is a valid program ID in the environment\n And there is a valid user ID and account ID in the environment\n\n @motivating\n Scenario: A Users sharelink can be copied to their clipboard\n Given tooltipText is \"hello tooltip\"\n When the component renders\n Then there is a textbox with the user's share link\n When the clipboard icon is clicked\n Then the link is copied to clipboard\n And a tooltip appears for ~1 second\n\n @minutia\n Scenario: Tooltip lifespan defaults to 2000\n Given the tooltip's lifespan is set to 2000\n And there is tooltip text\n When the component renders\n And the clipboard icon is clicked\n Then a tooltip appears for ~2 seconds\n\n @minutia\n Scenario: Demo\n Given isDemo() returns true\n Then the share link is \"https://www.example.com/sharelink/abc\"\n And the component won't be interactive\n And the tooltip is hidden\n\n @minutia\n Scenario: Program ID can be sourced from prop\n Given the programId prop is set to \"program-a\"\n And window.widgetIdent.programId is set to \"program-b\"\n When the component renders\n Then the share link is for \"program-a\"\n\n @minutia\n Scenario: Program ID can be sourced from window\n Given the programId prop is unset\n And window.widgetIdent.programId is set to \"program-b\"\n When the component renders\n Then the share link is for \"program-b\"\n\n @minutia\n Scenario: An analytic event is fired when a user copies their sharelink\n Given a user viewing the share link component\n And the component is rendered for \"program-a\"\n When they click to copy their link\n Then an \"USER_REFERRAL_PROGRAM_ENGAGEMENT_EVENT\" analytic event is fired\n And it is for \"program-a\"\n And it has share medium \"DIRECT\"\n\n\n @ui\n Scenario Outline: user can edit the alignment of the share link text\n Given a user is editing the share link component\n Then they see \"Align text\" props\n And the default value is \"left\"\n When they change the option to <option>\n Then they see the text in <position>\n Examples:\n | option | position |\n | left | left |\n | center | center |\n | right | right |\n\n @ui\n Scenario Outline: The position of the copy button can be changed\n Given a user is editing the share link component\n Then they see \"Style\" props\n And the default value is \"icon\"\n When they change the option to <option>\n Then they see the copy button in <position>\n Examples:\n | option | position |\n | button outside | outside the input, on the right |\n | button below | outside the input, below |\n | icon | inside the input as an icon |\n";
1625
1623
 
1626
1624
  const ShareLink_stories = {
1627
1625
  title: "Components/Share Link",
@@ -1667,6 +1665,9 @@ const Error$1 = () => {
1667
1665
  const TextAlignCenter = () => {
1668
1666
  return h("sqm-share-link", { textAlign: "center" });
1669
1667
  };
1668
+ const TextAlignRight = () => {
1669
+ return h("sqm-share-link", { textAlign: "right" });
1670
+ };
1670
1671
  const CopyButton = () => {
1671
1672
  return (h(CopyTextView, Object.assign({}, {
1672
1673
  copyString: "https://noah.example.com",
@@ -1675,20 +1676,12 @@ const CopyButton = () => {
1675
1676
  isCopyIcon: false,
1676
1677
  })));
1677
1678
  };
1678
- const CopyButtonInside = () => {
1679
- return (h(CopyTextView, Object.assign({}, {
1680
- copyString: "https://noah.example.com",
1681
- open: false,
1682
- tooltiptext: "Copied!",
1683
- buttonStyle: "button inside",
1684
- })));
1685
- };
1686
1679
  const CopyButtonBelow = () => {
1687
1680
  return (h(CopyTextView, Object.assign({}, {
1688
1681
  copyString: "https://noah.example.com",
1689
1682
  open: false,
1690
1683
  tooltiptext: "Copied!",
1691
- buttonStyle: "button below",
1684
+ buttonStyle: "button-below",
1692
1685
  })));
1693
1686
  };
1694
1687
  const FullStack = () => {
@@ -1703,8 +1696,8 @@ const ShareLink = /*#__PURE__*/Object.freeze({
1703
1696
  Disabled: Disabled,
1704
1697
  Error: Error$1,
1705
1698
  TextAlignCenter: TextAlignCenter,
1699
+ TextAlignRight: TextAlignRight,
1706
1700
  CopyButton: CopyButton,
1707
- CopyButtonInside: CopyButtonInside,
1708
1701
  CopyButtonBelow: CopyButtonBelow,
1709
1702
  FullStack: FullStack
1710
1703
  });
@@ -2396,36 +2389,36 @@ const routes = `
2396
2389
  `;
2397
2390
  const TemplateNavigation = createHookStory(() => {
2398
2391
  return (h("div", null,
2399
- h("button", { onClick: () => gn.push("/") }, "/"),
2400
- h("button", { onClick: () => gn.push("/foo") }, "/foo"),
2401
- h("button", { onClick: () => gn.push("/bar") }, "/bar"),
2402
- h("button", { onClick: () => gn.push("/baz/bang") }, "/baz/bang"),
2403
- h("button", { onClick: () => gn.push("/refer") }, "/refer"),
2404
- h("button", { onClick: () => gn.push("/refer/1") }, "/refer/1"),
2405
- h("button", { onClick: () => gn.push("/refer/2") }, "/refer/2"),
2406
- h("button", { onClick: () => gn.back() }, "Back"),
2407
- h("button", { onClick: () => gn.forward() }, "Forward"),
2392
+ h("button", { onClick: () => pn.push("/") }, "/"),
2393
+ h("button", { onClick: () => pn.push("/foo") }, "/foo"),
2394
+ h("button", { onClick: () => pn.push("/bar") }, "/bar"),
2395
+ h("button", { onClick: () => pn.push("/baz/bang") }, "/baz/bang"),
2396
+ h("button", { onClick: () => pn.push("/refer") }, "/refer"),
2397
+ h("button", { onClick: () => pn.push("/refer/1") }, "/refer/1"),
2398
+ h("button", { onClick: () => pn.push("/refer/2") }, "/refer/2"),
2399
+ h("button", { onClick: () => pn.back() }, "Back"),
2400
+ h("button", { onClick: () => pn.forward() }, "Forward"),
2408
2401
  h("hr", null),
2409
2402
  h("sqm-router", { innerHTML: templates })));
2410
2403
  });
2411
2404
  const RouteNavigation = createHookStory(() => {
2412
2405
  return (h("div", null,
2413
- h("button", { onClick: () => gn.push("/") }, "/"),
2414
- h("button", { onClick: () => gn.push("/foo") }, "/foo"),
2415
- h("button", { onClick: () => gn.push("/bar") }, "/bar"),
2416
- h("button", { onClick: () => gn.push("/baz/bang") }, "/baz/bang"),
2417
- h("button", { onClick: () => gn.push("/refer") }, "/refer"),
2418
- h("button", { onClick: () => gn.push("/refer/1") }, "/refer/1"),
2419
- h("button", { onClick: () => gn.push("/refer/2") }, "/refer/2"),
2420
- h("button", { onClick: () => gn.back() }, "Back"),
2421
- h("button", { onClick: () => gn.forward() }, "Forward"),
2406
+ h("button", { onClick: () => pn.push("/") }, "/"),
2407
+ h("button", { onClick: () => pn.push("/foo") }, "/foo"),
2408
+ h("button", { onClick: () => pn.push("/bar") }, "/bar"),
2409
+ h("button", { onClick: () => pn.push("/baz/bang") }, "/baz/bang"),
2410
+ h("button", { onClick: () => pn.push("/refer") }, "/refer"),
2411
+ h("button", { onClick: () => pn.push("/refer/1") }, "/refer/1"),
2412
+ h("button", { onClick: () => pn.push("/refer/2") }, "/refer/2"),
2413
+ h("button", { onClick: () => pn.back() }, "Back"),
2414
+ h("button", { onClick: () => pn.forward() }, "Forward"),
2422
2415
  h("hr", null),
2423
2416
  h("sqm-router", { innerHTML: routes })));
2424
2417
  });
2425
2418
  const Styling = createHookStory(() => {
2426
2419
  return (h("div", null,
2427
- h("button", { onClick: () => gn.push("/") }, "/"),
2428
- h("button", { onClick: () => gn.push("/foo") }, "/foo"),
2420
+ h("button", { onClick: () => pn.push("/") }, "/"),
2421
+ h("button", { onClick: () => pn.push("/foo") }, "/foo"),
2429
2422
  h("hr", null),
2430
2423
  h("div", { style: { display: "flex", justifyContent: "space-around" } },
2431
2424
  h("sqm-router", { innerHTML: `<template path="/">
@@ -2439,7 +2432,7 @@ function useTemplate(templateString) {
2439
2432
  const [previewTemplate, setPreviewTemplate] = useState(templateString);
2440
2433
  function setPath(e) {
2441
2434
  //@ts-ignore
2442
- gn.push(e.target.value);
2435
+ pn.push(e.target.value);
2443
2436
  }
2444
2437
  return {
2445
2438
  states: { previewTemplate, editedTemplate },
@@ -2603,8 +2596,8 @@ const FullStackFrame = () => {
2603
2596
  "Current path:",
2604
2597
  " ",
2605
2598
  h("code", null,
2606
- h("strong", null, (_a = mn()) === null || _a === void 0 ? void 0 : _a.pathname))),
2607
- h("button", { onClick: gn.back }, "Go Back")));
2599
+ h("strong", null, (_a = vn()) === null || _a === void 0 ? void 0 : _a.pathname))),
2600
+ h("button", { onClick: pn.back }, "Go Back")));
2608
2601
  };
2609
2602
  const FullStackFrameLoggedOut = () => {
2610
2603
  var _a;
@@ -2628,8 +2621,8 @@ const FullStackFrameLoggedOut = () => {
2628
2621
  "Current path:",
2629
2622
  " ",
2630
2623
  h("code", null,
2631
- h("strong", null, (_a = mn()) === null || _a === void 0 ? void 0 : _a.pathname))),
2632
- h("button", { onClick: gn.back }, "Go Back")));
2624
+ h("strong", null, (_a = vn()) === null || _a === void 0 ? void 0 : _a.pathname))),
2625
+ h("button", { onClick: pn.back }, "Go Back")));
2633
2626
  };
2634
2627
 
2635
2628
  const PortalFrame = /*#__PURE__*/Object.freeze({
@@ -3250,6 +3243,10 @@ const ErrorAlert = () => {
3250
3243
  return (h("sqm-form-message", { type: "error" },
3251
3244
  h("div", null, "This is an error message")));
3252
3245
  };
3246
+ const WarningAlert = () => {
3247
+ return (h("sqm-form-message", { type: "warning" },
3248
+ h("div", null, "This is an error message")));
3249
+ };
3253
3250
  const InfoAlert = () => {
3254
3251
  return (h("sqm-form-message", { type: "info" },
3255
3252
  h("div", null, "This is an info message")));
@@ -3272,6 +3269,7 @@ const FormMessage = /*#__PURE__*/Object.freeze({
3272
3269
  'default': FormMessage_stories,
3273
3270
  SuccessAlert: SuccessAlert,
3274
3271
  ErrorAlert: ErrorAlert,
3272
+ WarningAlert: WarningAlert,
3275
3273
  InfoAlert: InfoAlert,
3276
3274
  FullStackSuccess: FullStackSuccess
3277
3275
  });
@@ -3315,7 +3313,7 @@ function useExchangeButton() {
3315
3313
  const { id, accountId } = setupGraphQL$6();
3316
3314
  const [points, setPoints] = useState(10);
3317
3315
  const [rate, setRate] = useState(100);
3318
- const [exchange, { data, errors }] = ze(EXCHANGE);
3316
+ const [exchange, { data, errors }] = Je(EXCHANGE);
3319
3317
  return {
3320
3318
  states: {
3321
3319
  points,
@@ -3882,55 +3880,53 @@ const NewPortal = /*#__PURE__*/Object.freeze({
3882
3880
  Activity: Activity
3883
3881
  });
3884
3882
 
3885
- const referralWidget = "<sqm-brand brand-color=\"#4225c4\" brand-font=\"Nunito Sans\">\n <sqm-portal-container\n direction=\"column\"\n padding=\"small\"\n gap=\"xxx-large\"\n display=\"grid\"\n max-width=\"100%\"\n >\n <sqm-portal-container\n direction=\"column\"\n padding=\"none\"\n gap=\"xxx-large\"\n display=\"grid\"\n max-width=\"100%\"\n >\n <sqm-hero-image\n image-url=\"https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png\"\n header=\"MyCompany Rewards\"\n description=\"Refer a friend and earn up to $1200 in rewards\"\n layout=\"columns\"\n image-pos=\"right\"\n background-color=\"#F9F9F9\"\n >\n </sqm-hero-image>\n </sqm-portal-container>\n <sqm-portal-container\n direction=\"column\"\n padding=\"none\"\n gap=\"xxx-large\"\n max-width=\"770px\"\n center\n display=\"grid\"\n >\n <sqm-stat-container space=\"xxx-large\" display=\"flex\">\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/referralsCount\"\n >\n <p>Referrals</p>\n </sqm-big-stat>\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/integrationRewardsCountFiltered/AVAILABLE/global\"\n >\n <p>Giftcards</p>\n </sqm-big-stat>\n </sqm-stat-container>\n <sqm-portal-container\n gap=\"large\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <sqm-titled-section\n text-align=\"center\"\n label-margin=\"xxx-small\"\n padding=\"none\"\n >\n <h3 slot=\"label\">Get rewarded when your friend uses our product</h3>\n </sqm-titled-section>\n <sqm-referral-card vertical-alignment=\"start\">\n <sqm-portal-container\n gap=\"large\"\n slot=\"left\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <p>They’ll get a $50 credit towards a new account and you’ll get:</p>\n <sqm-timeline icon=\"circle\">\n <sqm-timeline-entry\n reward=\"$50\"\n unit=\"visa giftcard\"\n desc=\"Your friend purchases a Business plan\"\n icon=\"circle\"\n >\n </sqm-timeline-entry>\n <sqm-timeline-entry\n reward=\"$200\"\n unit=\"visa giftcard\"\n desc=\"Our sales team qualifies your friend as a good fit for our Enterprise plan\"\n icon=\"circle\"\n >\n </sqm-timeline-entry>\n <sqm-timeline-entry\n reward=\"$1000\"\n unit=\"visa giftcard\"\n desc=\"Your friend purchases an Enterprise plan\"\n icon=\"circle\"\n >\n </sqm-timeline-entry>\n </sqm-timeline>\n </sqm-portal-container>\n <sqm-portal-container\n gap=\"large\"\n slot=\"right\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <p>>Choose how you want to share</p>\n <p><sub>Your unique referral link:</sub></p>\n <sqm-share-link\n tooltip-text=\"Copied to Clipboard\"\n tooltip-lifespan=\"1000\"\n >\n </sqm-share-link>\n <sqm-portal-container\n gap=\"x-small\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <sqm-share-button\n medium=\"email\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Share via email\n </sqm-share-button>\n <sqm-share-button\n medium=\"linkedin\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Share on LinkedIn\n </sqm-share-button>\n <sqm-share-button\n medium=\"twitter\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Tweet about us\n </sqm-share-button>\n </sqm-portal-container>\n </sqm-portal-container>\n </sqm-referral-card>\n </sqm-portal-container>\n <sqm-portal-container\n gap=\"large\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <sqm-titled-section\n padding=\"none\"\n text-align=\"center\"\n label-margin=\"xx-small\"\n >\n <h3 slot=\"label\">Referral History</h3>\n </sqm-titled-section>\n <sqm-referral-table\n per-page=\"4\"\n hidden-columns=\"2\"\n more-label=\"Next\"\n prev-label=\"Prev\"\n sm-breakpoint=\"599\"\n md-breakpoint=\"799\"\n >\n <sqm-referral-table-user-column\n column-title=\"User\"\n anonymous-user=\"Anonymous User\"\n deleted-user=\"Deleted User\"\n >\n </sqm-referral-table-user-column>\n <sqm-referral-table-status-column\n column-title=\"Referral status\"\n converted-status-text=\"Converted\"\n in-progress-status-text=\"In Progress\"\n >\n </sqm-referral-table-status-column>\n <sqm-referral-table-rewards-column\n column-title=\"Rewards\"\n expiring-text=\"Expiring in\"\n fuel-tank-text=\"Your code is\"\n pending-for-text=\"{status} for {date}\"\n reward-received-text=\"Reward received on\"\n status-long-text=\"{status, select, AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} PENDING {Available on} EXPIRED {Reward expired on} other {Not available} }\"\n status-text=\"{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }\"\n >\n </sqm-referral-table-rewards-column>\n <sqm-referral-table-date-column\n column-title=\"Date referred\"\n date-shown=\"dateReferralStarted\"\n >\n </sqm-referral-table-date-column>\n <sqm-empty\n slot=\"empty\"\n empty-state-image=\"https://res.cloudinary.com/saasquatch/image/upload/v1644000223/squatch-assets/empty_referral2.png\"\n empty-state-header=\"View your referral details\"\n empty-state-text=\"Refer a friend to view the status of your referrals and rewards earned\"\n ></sqm-empty>\n </sqm-referral-table>\n </sqm-portal-container>\n <sqm-portal-footer\n support-email=\"support@example.com\"\n terms-link=\"https://example.com\"\n faq-link=\"https://example.com\"\n terms-text=\"Terms And Conditions\"\n faq-text=\"FAQ\"\n show-powered-by=\"true\"\n padding-bottom=\"none\"\n padding-left=\"none\"\n padding-right=\"none\"\n padding-top=\"none\"\n ></sqm-portal-footer>\n </sqm-portal-container>\n </sqm-portal-container>\n</sqm-brand>\n";
3886
-
3887
- const monoWidget = "<sqm-brand brand-color=\"#4225c4\" brand-font=\"Nunito Sans\">\n <sqm-portal-container\n direction=\"column\"\n padding=\"small\"\n gap=\"xxx-large\"\n display=\"grid\"\n max-width=\"100%\"\n >\n <sqm-portal-container\n direction=\"column\"\n padding=\"none\"\n gap=\"xxx-large\"\n display=\"grid\"\n max-width=\"100%\"\n >\n <sqm-hero-image\n image-url=\"https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png\"\n header=\"MyCompany Rewards\"\n description=\"Refer friends and complete tasks to earn rewards\"\n layout=\"columns\"\n image-pos=\"right\"\n background-color=\"#F9F9F9\"\n image-mobile-pos=\"top\"\n image-percentage=\"50\"\n padding-image=\"none\"\n padding-text=\"xxxx-large\"\n >\n </sqm-hero-image>\n </sqm-portal-container>\n <sqm-portal-container\n direction=\"column\"\n padding=\"none\"\n gap=\"xxx-large\"\n max-width=\"770px\"\n center\n display=\"grid\"\n >\n <sqm-stat-container space=\"xxx-large\" display=\"flex\">\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/referralsCount\"\n >\n <p>Referrals</p>\n </sqm-big-stat>\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/integrationRewardsCountFiltered/AVAILABLE/global\"\n >\n <p>Giftcards Earned</p>\n </sqm-big-stat>\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardBalance/CREDIT/POINT/value/global\"\n >\n <p>Points Balance</p>\n </sqm-big-stat>\n </sqm-stat-container>\n <sqm-portal-container\n gap=\"xx-large\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <sqm-titled-section\n text-align=\"center\"\n label-margin=\"xxx-small\"\n padding=\"none\"\n >\n <h3 slot=\"label\">Share $50 with friends</h3>\n <p slot=\"content\">\n They’ll get a $50 credit towards a new account and you’ll get up to\n $1200\n </p>\n </sqm-titled-section>\n <sqm-referral-card vertical-alignment=\"start\">\n <sqm-portal-container\n gap=\"large\"\n slot=\"left\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <p>They’ll get a $50 credit towards a new account and you’ll get:</p>\n <sqm-timeline icon=\"circle\">\n <sqm-timeline-entry\n reward=\"$50\"\n unit=\"visa giftcard\"\n desc=\"Your friend purchases a Business plan\"\n icon=\"circle\"\n >\n </sqm-timeline-entry>\n <sqm-timeline-entry\n reward=\"$200\"\n unit=\"visa giftcard\"\n desc=\"Our sales team qualifies your friend as a good fit for our Enterprise plan\"\n icon=\"circle\"\n >\n </sqm-timeline-entry>\n <sqm-timeline-entry\n reward=\"$1000\"\n unit=\"visa giftcard\"\n desc=\"Your friend purchases an Enterprise plan\"\n icon=\"circle\"\n >\n </sqm-timeline-entry>\n </sqm-timeline>\n </sqm-portal-container>\n <sqm-portal-container\n gap=\"large\"\n slot=\"right\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <p>Choose how you want to share:</p>\n <p><sub>Your unique referral link:</sub></p>\n <sqm-share-link\n tooltip-text=\"Copied to Clipboard\"\n tooltip-lifespan=\"1000\"\n >\n </sqm-share-link>\n <sqm-portal-container\n gap=\"x-small\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <sqm-share-button\n medium=\"email\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Share via email\n </sqm-share-button>\n <sqm-share-button\n medium=\"linkedin\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Share on LinkedIn\n </sqm-share-button>\n <sqm-share-button\n medium=\"twitter\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Tweet about us\n </sqm-share-button>\n </sqm-portal-container>\n </sqm-portal-container>\n </sqm-referral-card>\n <sqm-portal-container\n gap=\"xx-large\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n min-width=\"\"\n padding=\"none\"\n >\n <sqm-titled-section text-align=\"center\" label-margin=\"xxx-small\">\n <h3 slot=\"label\">Earn more rewards</h3>\n <p slot=\"content\">\n Get points while using our product. Use those points to redeem\n rewards like one free month of Enterprise or two plane tickets to\n anywhere in North America\n </p>\n </sqm-titled-section>\n <sqm-card-feed gap=\"24\" width=\"347\">\n <sqm-task-card\n reward-amount=\"20\"\n goal=\"1\"\n card-title=\"Complete a Survey\"\n description=\"Fill out our NPS survey and get 20 points for giving us honest feedback.\"\n button-text=\"Take survey\"\n reward-unit=\"Points\"\n completed-text=\"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\"\n ended-message=\"Ended {endDate}\"\n expiry-message=\"Ends {endDate}\"\n finite=\"0\"\n starts-on-message=\"Starts {startDate}\"\n >\n </sqm-task-card>\n <sqm-task-card\n reward-amount=\"250\"\n goal=\"500\"\n show-progress-bar\n card-title=\"Spend $500\"\n description=\"Earn 250 points when you spend $500 or more.\"\n button-text=\"See plans\"\n completed-text=\"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\"\n ended-message=\"Ended {endDate}\"\n expiry-message=\"Ends {endDate}\"\n progress-bar-unit=\"$\"\n finite=\"0\"\n reward-unit=\"Points\"\n starts-on-message=\"Starts {startDate}\"\n >\n </sqm-task-card>\n <sqm-task-card\n goal=\"1\"\n reward-amount=\"50\"\n card-title=\"Follow Us on Twitter\"\n description=\"Earn 50 points when you follow us on Twitter!\"\n button-text=\"Follow\"\n button-link=\"https://twitter.com/\"\n open-new-tab=\"true\"\n event-key=\"socialFollow\"\n completed-text=\"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\"\n ended-message=\"Ended {endDate}\"\n expiry-message=\"Ends {endDate}\"\n finite=\"0\"\n reward-unit=\"Points\"\n starts-on-message=\"Starts {startDate}\"\n >\n </sqm-task-card>\n <sqm-task-card\n reward-amount=\"1\"\n reward-unit=\"Free Month\"\n goal=\"1\"\n card-title=\"Upgrade Your Plan\"\n description=\"Receive one free month for being a committed customer when you upgrade your plan.\"\n button-text=\"Upgrade\"\n completed-text=\"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\"\n ended-message=\"Ended {endDate}\"\n expiry-message=\"Ends {endDate}\"\n open-new-tab=\"false\"\n finite=\"0\"\n starts-on-message=\"Starts {startDate}\"\n >\n </sqm-task-card>\n </sqm-card-feed>\n </sqm-portal-container>\n <sqm-tabs>\n <sqm-tab header=\"Referral history\">\n <sqm-referral-table\n per-page=\"4\"\n hidden-columns=\"2\"\n more-label=\"Next\"\n prev-label=\"Prev\"\n sm-breakpoint=\"599\"\n md-breakpoint=\"799\"\n >\n <sqm-referral-table-user-column\n column-title=\"User\"\n anonymous-user=\"Anonymous User\"\n deleted-user=\"Deleted User\"\n >\n </sqm-referral-table-user-column>\n <sqm-referral-table-status-column\n column-title=\"Referral status\"\n converted-status-text=\"Converted\"\n in-progress-status-text=\"In Progress\"\n >\n </sqm-referral-table-status-column>\n <sqm-referral-table-rewards-column\n column-title=\"Rewards\"\n expiring-text=\"Expiring in\"\n fuel-tank-text=\"Your code is\"\n pending-for-text=\"{status} for {date}\"\n reward-received-text=\"Reward received on\"\n status-long-text=\"{status, select, AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} PENDING {Available on} EXPIRED {Reward expired on} other {Not available} }\"\n status-text=\"{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }\"\n >\n </sqm-referral-table-rewards-column>\n <sqm-referral-table-date-column\n column-title=\"Date referred\"\n date-shown=\"dateReferralStarted\"\n >\n </sqm-referral-table-date-column>\n <sqm-empty\n slot=\"empty\"\n empty-state-image=\"https://res.cloudinary.com/saasquatch/image/upload/v1644000223/squatch-assets/empty_referral2.png\"\n empty-state-header=\"View your referral details\"\n empty-state-text=\"Refer a friend to view the status of your referrals and rewards earned\"\n >\n </sqm-empty>\n </sqm-referral-table>\n </sqm-tab>\n <sqm-tab header=\"Reward history\">\n <sqm-rewards-table\n per-page=\"4\"\n program-id=\"\"\n hidden-columns=\"0\"\n more-label=\"Next\"\n prev-label=\"Prev\"\n sm-breakpoint=\"599\"\n md-breakpoint=\"799\"\n >\n <sqm-rewards-table-reward-column\n available-text=\"{availableAmount} remaining\"\n column-title=\"Reward\"\n copy-text=\"Copied!\"\n redeemed-text=\"{redeemedAmount} redeemed\"\n >\n </sqm-rewards-table-reward-column>\n <sqm-rewards-table-source-column\n anonymous-user=\"Anonymous User\"\n column-title=\"Source\"\n deleted-user=\"Deleted User\"\n referral-text=\"{rewardSource, select, FRIEND_SIGNUP {Referral to} REFERRED {Referred by} other {}}\"\n reward-exchange-text=\"Reward Exchange\"\n reward-source-text=\"{rewardSource, select, MANUAL {Manual} AUTOMATED {{programName}} other {}}\"\n >\n </sqm-rewards-table-source-column>\n <sqm-rewards-table-status-column\n column-title=\"Status\"\n expiry-text=\"Expires on \"\n status-text=\"{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }\"\n >\n </sqm-rewards-table-status-column>\n <sqm-rewards-table-date-column\n column-title=\"Date received\"\n date-shown=\"dateGiven\"\n >\n </sqm-rewards-table-date-column>\n <sqm-empty\n slot=\"empty\"\n empty-state-image=\"https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_reward2.png\"\n empty-state-header=\"View your rewards\"\n empty-state-text=\"Refer friends and complete tasks to view the details of your rewards\"\n >\n </sqm-empty>\n </sqm-rewards-table>\n </sqm-tab>\n </sqm-tabs>\n </sqm-portal-container>\n <sqm-portal-footer\n support-email=\"support@example.com\"\n terms-link=\"https://example.com\"\n faq-link=\"https://example.com\"\n terms-text=\"Terms And Conditions\"\n faq-text=\"FAQ\"\n show-powered-by=\"true\"\n padding-bottom=\"none\"\n padding-left=\"none\"\n padding-right=\"none\"\n padding-top=\"none\"\n ></sqm-portal-footer>\n </sqm-portal-container>\n </sqm-portal-container>\n</sqm-brand>\n";
3888
-
3889
- const loyaltyWidget = "<sqm-brand brand-color=\"#4225c4\" brand-font=\"Nunito Sans\">\n <sqm-portal-container\n direction=\"column\"\n padding=\"small\"\n gap=\"xxxx-large\"\n display=\"grid\"\n max-width=\"100%\"\n >\n <sqm-portal-container\n direction=\"column\"\n padding=\"none\"\n gap=\"xxx-large\"\n display=\"grid\"\n max-width=\"100%\"\n >\n <sqm-hero-image\n image-url=\"https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png\"\n header=\"MyCompany Rewards\"\n description=\"Complete tasks to earn rewards\"\n layout=\"overlay\"\n padding-image=\"xxxx-large\"\n padding-text=\"xxx-large\"\n image-pos=\"center\"\n overlay-color=\"#5e5669\"\n overlay-opacity=\"0.9\"\n >\n </sqm-hero-image>\n <sqm-portal-container\n direction=\"column\"\n padding=\"none\"\n gap=\"xxx-large\"\n max-width=\"770px\"\n center\n display=\"grid\"\n >\n <sqm-program-explainer header=\"How it works\">\n <sqm-program-explainer-step\n description=\"Complete tasks like uploading your first video or sharing videos with friends\"\n header=\"Earn points for using our product\"\n icon=\"cash-stack\"\n text-color=\"#000000\"\n >\n </sqm-program-explainer-step>\n <sqm-program-explainer-step\n description=\"Redeem rewards like one free month of Enterprise or two plane tickets to anywhere in North America\"\n header=\"Redeem rewards with your points\"\n icon=\"people\"\n text-color=\"#000000\"\n >\n </sqm-program-explainer-step>\n </sqm-program-explainer>\n <sqm-portal-container\n center\n direction=\"row\"\n display=\"flex\"\n justify-content=\"space-between\"\n gap=\"xxx-large\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <sqm-stat-container space=\"xxx-large\" display=\"flex\">\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardsRedeemed/CREDIT/POINTS\"\n >\n <p>Points Redeemed</p>\n </sqm-big-stat>\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardBalance/CREDIT/POINT/value/global\"\n >\n <p>Points Balance</p>\n </sqm-big-stat>\n </sqm-stat-container>\n </sqm-portal-container>\n <sqm-portal-container\n direction=\"column\"\n padding=\"none\"\n gap=\"xx-large\"\n display=\"grid\"\n max-width=\"100%\"\n >\n <sqm-titled-section\n label-margin=\"small\"\n padding=\"none\"\n text-align=\"center\"\n >\n <h3 slot=\"label\">Earn points</h3>\n </sqm-titled-section>\n <sqm-card-feed gap=\"24\" width=\"347\">\n <sqm-task-card\n reward-amount=\"20\"\n goal=\"1\"\n card-title=\"Complete a Survey\"\n description=\"Fill out our NPS survey and get 20 points for giving us honest feedback.\"\n button-text=\"Take survey\"\n reward-unit=\"Points\"\n completed-text=\"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\"\n ended-message=\"Ended {endDate}\"\n expiry-message=\"Ends {endDate}\"\n finite=\"0\"\n starts-on-message=\"Starts {startDate}\"\n >\n </sqm-task-card>\n <sqm-task-card\n reward-amount=\"250\"\n goal=\"500\"\n show-progress-bar\n card-title=\"Spend $500\"\n description=\"Earn 250 points when you spend $500 or more.\"\n button-text=\"See plans\"\n completed-text=\"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\"\n ended-message=\"Ended {endDate}\"\n expiry-message=\"Ends {endDate}\"\n progress-bar-unit=\"$\"\n finite=\"0\"\n reward-unit=\"Points\"\n starts-on-message=\"Starts {startDate}\"\n >\n </sqm-task-card>\n <sqm-task-card\n goal=\"1\"\n reward-amount=\"50\"\n card-title=\"Follow Us on Twitter\"\n description=\"Earn 50 points when you follow us on Twitter!\"\n button-text=\"Follow\"\n button-link=\"https://twitter.com/\"\n open-new-tab=\"true\"\n event-key=\"socialFollow\"\n completed-text=\"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\"\n ended-message=\"Ended {endDate}\"\n expiry-message=\"Ends {endDate}\"\n finite=\"0\"\n reward-unit=\"Points\"\n starts-on-message=\"Starts {startDate}\"\n >\n </sqm-task-card>\n <sqm-task-card\n reward-amount=\"1\"\n reward-unit=\"Free Month\"\n goal=\"1\"\n card-title=\"Upgrade Your Plan\"\n description=\"Receive one free month for being a committed customer when you upgrade your plan.\"\n button-text=\"Upgrade\"\n completed-text=\"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\"\n ended-message=\"Ended {endDate}\"\n expiry-message=\"Ends {endDate}\"\n open-new-tab=\"false\"\n finite=\"0\"\n starts-on-message=\"Starts {startDate}\"\n >\n </sqm-task-card>\n </sqm-card-feed>\n <sqm-portal-container\n gap=\"large\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <sqm-titled-section\n padding=\"none\"\n text-align=\"center\"\n label-margin=\"xx-small\"\n >\n <h3 slot=\"label\">Reward History</h3>\n </sqm-titled-section>\n <sqm-rewards-table\n per-page=\"4\"\n hidden-columns=\"0\"\n more-label=\"Next\"\n prev-label=\"Prev\"\n sm-breakpoint=\"599\"\n md-breakpoint=\"799\"\n >\n <sqm-rewards-table-reward-column\n available-text=\"{availableAmount} remaining\"\n column-title=\"Reward\"\n copy-text=\"Copied!\"\n redeemed-text=\"{redeemedAmount} redeemed\"\n >\n </sqm-rewards-table-reward-column>\n <sqm-rewards-table-source-column\n anonymous-user=\"Anonymous User\"\n column-title=\"Source\"\n deleted-user=\"Deleted User\"\n referral-text=\"{rewardSource, select, FRIEND_SIGNUP {Referral to} REFERRED {Referred by} other {}}\"\n reward-exchange-text=\"Reward Exchange\"\n reward-source-text=\"{rewardSource, select, MANUAL {Manual} AUTOMATED {{programName}} other {}}\"\n >\n </sqm-rewards-table-source-column>\n <sqm-rewards-table-status-column\n column-title=\"Status\"\n expiry-text=\"Expires on \"\n status-text=\"{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }\"\n >\n </sqm-rewards-table-status-column>\n <sqm-rewards-table-date-column\n column-title=\"Date received\"\n date-shown=\"dateGiven\"\n >\n </sqm-rewards-table-date-column>\n <sqm-empty\n slot=\"empty\"\n empty-state-image=\"https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_reward2.png\"\n empty-state-header=\"View your rewards\"\n empty-state-text=\"Refer friends and complete tasks to view the details of your rewards\"\n >\n </sqm-empty>\n </sqm-rewards-table>\n </sqm-portal-container>\n </sqm-portal-container>\n <sqm-portal-footer\n support-email=\"support@example.com\"\n terms-link=\"https://example.com\"\n faq-link=\"https://example.com\"\n terms-text=\"Terms And Conditions\"\n faq-text=\"FAQ\"\n show-powered-by=\"true\"\n padding-bottom=\"none\"\n padding-left=\"none\"\n padding-right=\"none\"\n padding-top=\"none\"\n ></sqm-portal-footer>\n </sqm-portal-container>\n </sqm-portal-container>\n </sqm-portal-container>\n</sqm-brand>\n";
3890
-
3891
- const instantAccessShareWidget = "<sqm-brand>\n <sqm-portal-container\n direction=\"column\"\n padding=\"none\"\n gap=\"xx-large\"\n max-width=\"770px\"\n center\n display=\"grid\"\n >\n <sqm-referral-card vertical-alignment=\"start\">\n <sqm-titled-section\n text-align=\"center\"\n label-margin=\"xxx-small\"\n padding=\"none\"\n slot=\"header\"\n >\n <h3 slot=\"label\">Share &#x24;50 with friends</h3>\n <p slot=\"content\">\n They&#x2019;ll get a &#x24;50 credit towards a new account and\n you&#x2019;ll get up to &#x24;1200\n </p>\n </sqm-titled-section>\n <sqm-portal-container\n gap=\"large\"\n slot=\"left\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <p>How to get rewarded!</p>\n <sqm-timeline icon=\"circle\">\n <sqm-timeline-entry\n reward=\"$50\"\n unit=\"visa giftcard\"\n desc=\"Your friend purchases a Business plan\"\n icon=\"circle\"\n >\n </sqm-timeline-entry>\n <sqm-timeline-entry\n reward=\"$200\"\n unit=\"visa giftcard\"\n desc=\"Our sales team qualifies your friend as a good fit for our Enterprise plan\"\n icon=\"circle\"\n >\n </sqm-timeline-entry>\n <sqm-timeline-entry\n reward=\"$1000\"\n unit=\"visa giftcard\"\n desc=\"Your friend purchases an Enterprise plan\"\n icon=\"circle\"\n >\n </sqm-timeline-entry>\n </sqm-timeline>\n </sqm-portal-container>\n <sqm-portal-container\n gap=\"large\"\n slot=\"right\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <p>Choose how you want to share:</p>\n <p><sub>Your unique referral link:</sub></p>\n <sqm-share-link\n tooltip-text=\"Copied to Clipboard\"\n tooltip-lifespan=\"1000\"\n >\n </sqm-share-link>\n <sqm-portal-container\n gap=\"x-small\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <sqm-share-button\n medium=\"email\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Share via email\n </sqm-share-button>\n <sqm-share-button\n medium=\"linkedin\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Share on LinkedIn\n </sqm-share-button>\n <sqm-share-button\n medium=\"twitter\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Tweet about us\n </sqm-share-button>\n </sqm-portal-container>\n </sqm-portal-container>\n <sqm-portal-container\n slot=\"footer\"\n direction=\"column\"\n gap=\"small\"\n justify-content=\"center\"\n display=\"flex\"\n padding=\"large\"\n >\n <sqm-user-identifier\n switch-user-link=\"https://www.example.com\"\n ></sqm-user-identifier\n ><sqm-portal-footer\n padding-top=\"none\"\n padding-bottom=\"none\"\n padding-left=\"none\"\n padding-right=\"none\"\n ></sqm-portal-footer>\n </sqm-portal-container>\n </sqm-referral-card>\n </sqm-portal-container>\n</sqm-brand>\n";
3892
-
3893
- const instantAccessCouponWidget = "<sqm-brand>\n <sqm-portal-container\n direction=\"column\"\n padding=\"none\"\n gap=\"xx-large\"\n max-width=\"770px\"\n center\n display=\"grid\"\n >\n <sqm-referral-card vertical-alignment=\"start\">\n <sqm-portal-container\n gap=\"large\"\n direction=\"column\"\n display=\"flex\"\n justify-content=\"center\"\n max-width=\"100%\"\n padding=\"none\"\n slot=\"header\"\n >\n <sqm-titled-section\n text-align=\"center\"\n label-margin=\"xxx-small\"\n padding=\"none\"\n >\n <h3 slot=\"label\">You got $50 off thanks to a friend!</h3>\n\n <p slot=\"content\">\n Description about sharing the products wiht friends will make your\n life 100 times better!\n </p>\n </sqm-titled-section>\n\n <sqm-portal-container>\n <p>\n The coupon code has some conditions that are described concisely in\n this paragraph so that you don’t get upset if the code doesn’t work\n </p></sqm-portal-container\n >\n\n <sqm-coupon-code></sqm-coupon-code>\n </sqm-portal-container>\n\n <sqm-portal-footer\n slot=\"footer\"\n padding-top=\"none\"\n padding-bottom=\"none\"\n padding-left=\"none\"\n padding-right=\"none\"\n ></sqm-portal-footer>\n </sqm-referral-card>\n </sqm-portal-container>\n</sqm-brand>\n";
3894
-
3895
- const instantAccessReferrerRegistationWidget = "<sqm-brand>\n <sqm-passwordless-registration include-name=\"true\">\n <sqm-titled-section\n text-align=\"center\"\n label-margin=\"xxx-small\"\n padding=\"none\"\n slot=\"top-slot\"\n >\n <h3 slot=\"label\">Share &#x24;50 with friends</h3>\n <p slot=\"content\">\n They&#x2019;ll get a &#x24;50 credit towards a new account and\n you&#x2019;ll get up to &#x24;1200\n </p>\n </sqm-titled-section>\n\n <sqm-portal-footer\n hide-support-text=\"true\"\n terms-link=\"https://example.com\"\n terms-text=\"Terms And Conditions\"\n faq-text=\"FAQ\"\n show-powered-by=\"true\"\n padding-bottom=\"none\"\n padding-left=\"none\"\n padding-right=\"none\"\n padding-top=\"none\"\n slot=\"bottom-slot\"\n ></sqm-portal-footer>\n </sqm-passwordless-registration>\n</sqm-brand>\n";
3883
+ const referralWidget = "<sqm-brand brand-color=\"#4225c4\" brand-font=\"Nunito Sans\">\n <sqm-portal-container\n direction=\"column\"\n padding=\"small\"\n gap=\"xxx-large\"\n display=\"grid\"\n max-width=\"100%\"\n background-color=\"#ffffff\"\n >\n <sqm-portal-container\n direction=\"column\"\n padding=\"none\"\n gap=\"xxx-large\"\n display=\"grid\"\n max-width=\"100%\"\n >\n <sqm-hero-image\n image-url=\"https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png\"\n header=\"MyCompany Rewards\"\n description=\"Refer a friend and earn up to $1200 in rewards\"\n layout=\"columns\"\n image-pos=\"right\"\n background-color=\"#F9F9F9\"\n >\n </sqm-hero-image>\n </sqm-portal-container>\n <sqm-portal-container\n direction=\"column\"\n padding=\"none\"\n gap=\"xxx-large\"\n max-width=\"770px\"\n center\n display=\"grid\"\n >\n <sqm-stat-container space=\"xxx-large\" display=\"flex\">\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/referralsCount\"\n >\n <p>Referrals</p>\n </sqm-big-stat>\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/integrationRewardsCountFiltered/AVAILABLE/global\"\n >\n <p>Giftcards</p>\n </sqm-big-stat>\n </sqm-stat-container>\n <sqm-portal-container\n gap=\"large\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <sqm-titled-section\n text-align=\"center\"\n label-margin=\"xxx-small\"\n padding=\"none\"\n >\n <h3 slot=\"label\">Get rewarded when your friend uses our product</h3>\n </sqm-titled-section>\n <sqm-referral-card vertical-alignment=\"start\">\n <sqm-portal-container\n gap=\"large\"\n slot=\"left\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <p>\n They’ll get a $50 credit towards a new account and you’ll get:\n </p>\n <sqm-timeline icon=\"circle\">\n <sqm-timeline-entry\n reward=\"$50\"\n unit=\"visa giftcard\"\n desc=\"Your friend purchases a Business plan\"\n icon=\"circle\"\n >\n </sqm-timeline-entry>\n <sqm-timeline-entry\n reward=\"$200\"\n unit=\"visa giftcard\"\n desc=\"Our sales team qualifies your friend as a good fit for our Enterprise plan\"\n icon=\"circle\"\n >\n </sqm-timeline-entry>\n <sqm-timeline-entry\n reward=\"$1000\"\n unit=\"visa giftcard\"\n desc=\"Your friend purchases an Enterprise plan\"\n icon=\"circle\"\n >\n </sqm-timeline-entry>\n </sqm-timeline>\n </sqm-portal-container>\n <sqm-portal-container\n gap=\"large\"\n slot=\"right\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <p>>Choose how you want to share</p>\n <p><sub>Your unique referral link:</sub></p>\n <sqm-share-link\n tooltip-text=\"Copied to Clipboard\"\n tooltip-lifespan=\"1000\"\n >\n </sqm-share-link>\n <sqm-portal-container\n gap=\"x-small\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <sqm-share-button\n medium=\"email\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Share via email\n </sqm-share-button>\n <sqm-share-button\n medium=\"linkedin\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Share on LinkedIn\n </sqm-share-button>\n <sqm-share-button\n medium=\"twitter\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Tweet about us\n </sqm-share-button>\n </sqm-portal-container>\n </sqm-portal-container>\n </sqm-referral-card>\n </sqm-portal-container>\n <sqm-portal-container\n gap=\"large\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <sqm-titled-section\n padding=\"none\"\n text-align=\"center\"\n label-margin=\"xx-small\"\n >\n <h3 slot=\"label\">Referral History</h3>\n </sqm-titled-section>\n <sqm-referral-table\n per-page=\"4\"\n hidden-columns=\"2\"\n more-label=\"Next\"\n prev-label=\"Prev\"\n sm-breakpoint=\"599\"\n md-breakpoint=\"799\"\n >\n <sqm-referral-table-user-column\n column-title=\"User\"\n anonymous-user=\"Anonymous User\"\n deleted-user=\"Deleted User\"\n >\n </sqm-referral-table-user-column>\n <sqm-referral-table-status-column\n column-title=\"Referral status\"\n converted-status-text=\"Converted\"\n in-progress-status-text=\"In Progress\"\n >\n </sqm-referral-table-status-column>\n <sqm-referral-table-rewards-column\n column-title=\"Rewards\"\n expiring-text=\"Expiring in\"\n fuel-tank-text=\"Your code is\"\n pending-for-text=\"{status} for {date}\"\n reward-received-text=\"Reward received on\"\n status-long-text=\"{status, select, AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} PENDING {Available on} EXPIRED {Reward expired on} other {Not available} }\"\n status-text=\"{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }\"\n >\n </sqm-referral-table-rewards-column>\n <sqm-referral-table-date-column\n column-title=\"Date referred\"\n date-shown=\"dateReferralStarted\"\n >\n </sqm-referral-table-date-column>\n <sqm-empty\n slot=\"empty\"\n empty-state-image=\"https://res.cloudinary.com/saasquatch/image/upload/v1644000223/squatch-assets/empty_referral2.png\"\n empty-state-header=\"View your referral details\"\n empty-state-text=\"Refer a friend to view the status of your referrals and rewards earned\"\n ></sqm-empty>\n </sqm-referral-table>\n </sqm-portal-container>\n <sqm-portal-footer\n support-email=\"support@example.com\"\n terms-link=\"https:\\/\\/example.com\"\n faq-link=\"https:\\/\\/example.com\"\n terms-text=\"Terms And Conditions\"\n faq-text=\"FAQ\"\n show-powered-by=\"true\"\n padding-bottom=\"none\"\n padding-left=\"none\"\n padding-right=\"none\"\n padding-top=\"none\"\n ></sqm-portal-footer>\n </sqm-portal-container>\n </sqm-portal-container>\n</sqm-brand>\n";
3896
3884
 
3897
- const instantAccessReferredRegistationWidget = "<sqm-brand>\n <sqm-referred-registration register-label=\"Get $50 off\">\n <sqm-titled-section\n text-align=\"center\"\n label-margin=\"xxx-small\"\n padding=\"none\"\n slot=\"top-slot\"\n >\n <h3 slot=\"label\">You got $50 off thanks to a friend!</h3>\n <p slot=\"content\">\n Description about sharing the products with friends will make your life\n 100 times better!\n </p>\n </sqm-titled-section>\n\n <div slot=\"bottom-slot\">\n <p style=\"text-align: center; margin-top: 0; margin-bottom: 1.5rem\">\n *Valid on purchases of $75 or more\n </p>\n <sqm-portal-footer\n hide-support-text=\"true\"\n terms-link=\"https://example.com\"\n terms-text=\"Terms And Conditions\"\n faq-text=\"FAQ\"\n show-powered-by=\"true\"\n padding-bottom=\"none\"\n padding-left=\"none\"\n padding-right=\"none\"\n padding-top=\"none\"\n ></sqm-portal-footer>\n </div>\n </sqm-referred-registration>\n</sqm-brand>\n";
3885
+ const monoWidget = "<sqm-brand brand-color=\"#4225c4\" brand-font=\"Nunito Sans\">\n <sqm-portal-container\n direction=\"column\"\n padding=\"small\"\n gap=\"xxx-large\"\n display=\"grid\"\n max-width=\"100%\"\n background-color=\"#ffffff\"\n >\n <sqm-portal-container\n direction=\"column\"\n padding=\"none\"\n gap=\"xxx-large\"\n display=\"grid\"\n max-width=\"100%\"\n >\n <sqm-hero-image\n image-url=\"https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png\"\n header=\"MyCompany Rewards\"\n description=\"Refer friends and complete tasks to earn rewards\"\n layout=\"columns\"\n image-pos=\"right\"\n background-color=\"#F9F9F9\"\n image-mobile-pos=\"top\"\n image-percentage=\"50\"\n padding-image=\"none\"\n padding-text=\"xxxx-large\"\n >\n </sqm-hero-image>\n </sqm-portal-container>\n <sqm-portal-container\n direction=\"column\"\n padding=\"none\"\n gap=\"xxx-large\"\n max-width=\"770px\"\n center\n display=\"grid\"\n >\n <sqm-stat-container space=\"xxx-large\" display=\"flex\">\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/referralsCount\"\n >\n <p>Referrals</p>\n </sqm-big-stat>\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/integrationRewardsCountFiltered/AVAILABLE/global\"\n >\n <p>Giftcards Earned</p>\n </sqm-big-stat>\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardBalance/CREDIT/POINT/value/global\"\n >\n <p>Points Balance</p>\n </sqm-big-stat>\n </sqm-stat-container>\n <sqm-portal-container\n gap=\"xx-large\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <sqm-titled-section\n text-align=\"center\"\n label-margin=\"xxx-small\"\n padding=\"none\"\n >\n <h3 slot=\"label\">Share $50 with friends</h3>\n <p slot=\"content\">\n They’ll get a $50 credit towards a new account and you’ll get up to\n $1200\n </p>\n </sqm-titled-section>\n <sqm-referral-card vertical-alignment=\"start\">\n <sqm-portal-container\n gap=\"large\"\n slot=\"left\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <p>\n They’ll get a $50 credit towards a new account and you’ll get:\n </p>\n <sqm-timeline icon=\"circle\">\n <sqm-timeline-entry\n reward=\"$50\"\n unit=\"visa giftcard\"\n desc=\"Your friend purchases a Business plan\"\n icon=\"circle\"\n >\n </sqm-timeline-entry>\n <sqm-timeline-entry\n reward=\"$200\"\n unit=\"visa giftcard\"\n desc=\"Our sales team qualifies your friend as a good fit for our Enterprise plan\"\n icon=\"circle\"\n >\n </sqm-timeline-entry>\n <sqm-timeline-entry\n reward=\"$1000\"\n unit=\"visa giftcard\"\n desc=\"Your friend purchases an Enterprise plan\"\n icon=\"circle\"\n >\n </sqm-timeline-entry>\n </sqm-timeline>\n </sqm-portal-container>\n <sqm-portal-container\n gap=\"large\"\n slot=\"right\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <p>Choose how you want to share:</p>\n <p><sub>Your unique referral link:</sub></p>\n <sqm-share-link\n tooltip-text=\"Copied to Clipboard\"\n tooltip-lifespan=\"1000\"\n >\n </sqm-share-link>\n <sqm-portal-container\n gap=\"x-small\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <sqm-share-button\n medium=\"email\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Share via email\n </sqm-share-button>\n <sqm-share-button\n medium=\"linkedin\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Share on LinkedIn\n </sqm-share-button>\n <sqm-share-button\n medium=\"twitter\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Tweet about us\n </sqm-share-button>\n </sqm-portal-container>\n </sqm-portal-container>\n </sqm-referral-card>\n <sqm-portal-container\n gap=\"xx-large\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n min-width=\"\"\n padding=\"none\"\n >\n <sqm-titled-section text-align=\"center\" label-margin=\"xxx-small\">\n <h3 slot=\"label\">Earn more rewards</h3>\n <p slot=\"content\">\n Get points while using our product. Use those points to redeem\n rewards like one free month of Enterprise or two plane tickets to\n anywhere in North America\n </p>\n </sqm-titled-section>\n <sqm-card-feed gap=\"24\" width=\"347\">\n <sqm-task-card\n reward-amount=\"20\"\n goal=\"1\"\n card-title=\"Complete a Survey\"\n description=\"Fill out our NPS survey and get 20 points for giving us honest feedback.\"\n button-text=\"Take survey\"\n reward-unit=\"Points\"\n completed-text=\"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\"\n ended-message=\"Ended {endDate}\"\n expiry-message=\"Ends {endDate}\"\n finite=\"0\"\n starts-on-message=\"Starts {startDate}\"\n >\n </sqm-task-card>\n <sqm-task-card\n reward-amount=\"250\"\n goal=\"500\"\n show-progress-bar\n card-title=\"Spend $500\"\n description=\"Earn 250 points when you spend $500 or more.\"\n button-text=\"See plans\"\n completed-text=\"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\"\n ended-message=\"Ended {endDate}\"\n expiry-message=\"Ends {endDate}\"\n progress-bar-unit=\"$\"\n finite=\"0\"\n reward-unit=\"Points\"\n starts-on-message=\"Starts {startDate}\"\n >\n </sqm-task-card>\n <sqm-task-card\n goal=\"1\"\n reward-amount=\"50\"\n card-title=\"Follow Us on Twitter\"\n description=\"Earn 50 points when you follow us on Twitter!\"\n button-text=\"Follow\"\n button-link=\"https://twitter.com/\"\n open-new-tab=\"true\"\n event-key=\"socialFollow\"\n completed-text=\"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\"\n ended-message=\"Ended {endDate}\"\n expiry-message=\"Ends {endDate}\"\n finite=\"0\"\n reward-unit=\"Points\"\n starts-on-message=\"Starts {startDate}\"\n >\n </sqm-task-card>\n <sqm-task-card\n reward-amount=\"1\"\n reward-unit=\"Free Month\"\n goal=\"1\"\n card-title=\"Upgrade Your Plan\"\n description=\"Receive one free month for being a committed customer when you upgrade your plan.\"\n button-text=\"Upgrade\"\n completed-text=\"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\"\n ended-message=\"Ended {endDate}\"\n expiry-message=\"Ends {endDate}\"\n open-new-tab=\"false\"\n finite=\"0\"\n starts-on-message=\"Starts {startDate}\"\n >\n </sqm-task-card>\n </sqm-card-feed>\n </sqm-portal-container>\n <sqm-tabs>\n <sqm-tab header=\"Referral history\">\n <sqm-referral-table\n per-page=\"4\"\n hidden-columns=\"2\"\n more-label=\"Next\"\n prev-label=\"Prev\"\n sm-breakpoint=\"599\"\n md-breakpoint=\"799\"\n >\n <sqm-referral-table-user-column\n column-title=\"User\"\n anonymous-user=\"Anonymous User\"\n deleted-user=\"Deleted User\"\n >\n </sqm-referral-table-user-column>\n <sqm-referral-table-status-column\n column-title=\"Referral status\"\n converted-status-text=\"Converted\"\n in-progress-status-text=\"In Progress\"\n >\n </sqm-referral-table-status-column>\n <sqm-referral-table-rewards-column\n column-title=\"Rewards\"\n expiring-text=\"Expiring in\"\n fuel-tank-text=\"Your code is\"\n pending-for-text=\"{status} for {date}\"\n reward-received-text=\"Reward received on\"\n status-long-text=\"{status, select, AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} PENDING {Available on} EXPIRED {Reward expired on} other {Not available} }\"\n status-text=\"{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }\"\n >\n </sqm-referral-table-rewards-column>\n <sqm-referral-table-date-column\n column-title=\"Date referred\"\n date-shown=\"dateReferralStarted\"\n >\n </sqm-referral-table-date-column>\n <sqm-empty\n slot=\"empty\"\n empty-state-image=\"https://res.cloudinary.com/saasquatch/image/upload/v1644000223/squatch-assets/empty_referral2.png\"\n empty-state-header=\"View your referral details\"\n empty-state-text=\"Refer a friend to view the status of your referrals and rewards earned\"\n >\n </sqm-empty>\n </sqm-referral-table>\n </sqm-tab>\n <sqm-tab header=\"Reward history\">\n <sqm-rewards-table\n per-page=\"4\"\n program-id=\"\"\n hidden-columns=\"0\"\n more-label=\"Next\"\n prev-label=\"Prev\"\n sm-breakpoint=\"599\"\n md-breakpoint=\"799\"\n >\n <sqm-rewards-table-reward-column\n available-text=\"{availableAmount} remaining\"\n column-title=\"Reward\"\n copy-text=\"Copied!\"\n redeemed-text=\"{redeemedAmount} redeemed\"\n >\n </sqm-rewards-table-reward-column>\n <sqm-rewards-table-source-column\n anonymous-user=\"Anonymous User\"\n column-title=\"Source\"\n deleted-user=\"Deleted User\"\n referral-text=\"{rewardSource, select, FRIEND_SIGNUP {Referral to} REFERRED {Referred by} other {}}\"\n reward-exchange-text=\"Reward Exchange\"\n reward-source-text=\"{rewardSource, select, MANUAL {Manual} AUTOMATED {{programName}} other {}}\"\n >\n </sqm-rewards-table-source-column>\n <sqm-rewards-table-status-column\n column-title=\"Status\"\n expiry-text=\"Expires on \"\n status-text=\"{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }\"\n >\n </sqm-rewards-table-status-column>\n <sqm-rewards-table-date-column\n column-title=\"Date received\"\n date-shown=\"dateGiven\"\n >\n </sqm-rewards-table-date-column>\n <sqm-empty\n slot=\"empty\"\n empty-state-image=\"https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_reward2.png\"\n empty-state-header=\"View your rewards\"\n empty-state-text=\"Refer friends and complete tasks to view the details of your rewards\"\n >\n </sqm-empty>\n </sqm-rewards-table>\n </sqm-tab>\n </sqm-tabs>\n </sqm-portal-container>\n <sqm-portal-footer\n support-email=\"support@example.com\"\n terms-link=\"https:\\/\\/example.com\"\n faq-link=\"https:\\/\\/example.com\"\n terms-text=\"Terms And Conditions\"\n faq-text=\"FAQ\"\n show-powered-by=\"true\"\n padding-bottom=\"none\"\n padding-left=\"none\"\n padding-right=\"none\"\n padding-top=\"none\"\n ></sqm-portal-footer>\n </sqm-portal-container>\n </sqm-portal-container>\n</sqm-brand>\n";
3898
3886
 
3899
- const portalTemplate = "<sqm-portal-frame>\n <a slot=\"header\" href=\"/\">\n <sqm-text style=\"height: 60px\">\n <img\n style=\"height: 60px\"\n src=\"https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png\"\n />\n </sqm-text>\n </a>\n <sqb-program-section program-id=\"referral-program\">\n <sqm-router>\n <template\n path=\"/:path(\\bregister\\b|\\bemailVerification\\b|\\blogin\\b|\\bverifyEmail\\b|\\bforgotPassword\\b|\\bresetPassword\\b|\\blogout\\b)\"\n >\n <sqm-hero\n background=\"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80\"\n >\n <sqm-router>\n <template path=\"/register\">\n <sqm-portal-register>\n <sqm-name-fields slot=\"formData\"></sqm-name-fields>\n </sqm-portal-register>\n </template>\n\n <template path=\"/emailVerification\">\n <sqm-portal-protected-route\n redirect-to=\"/login\"\n ></sqm-portal-protected-route>\n <sqm-portal-email-verification></sqm-portal-email-verification>\n </template>\n\n <template path=\"/login\">\n <sqm-portal-login></sqm-portal-login>\n </template>\n\n <template path=\"/verifyEmail\">\n <sqm-portal-verify-email></sqm-portal-verify-email>\n </template>\n\n <template path=\"/forgotPassword\">\n <sqm-portal-forgot-password\n email-label=\"Business Email\"\n ></sqm-portal-forgot-password>\n </template>\n\n <template path=\"/resetPassword\">\n <sqm-portal-reset-password\n confirm-password=\"true\"\n ></sqm-portal-reset-password>\n </template>\n <template path=\"/logout\">\n <sqm-portal-logout next-page=\"/login\"></sqm-portal-logout>\n </template>\n </sqm-router>\n </sqm-hero>\n </template>\n </sqm-router>\n <sqm-router>\n <template path=\"/:path(\\bactivity\\b|\\beditProfile\\b)?\">\n <sqm-divided-layout\n direction=\"row\"\n style=\"\n border-top: 1px solid #eaeaea;\n border-bottom: 1px solid #eaeaea;\n \"\n >\n <sqm-navigation-sidebar>\n <sqm-navigation-sidebar-item\n path=\"/\"\n icon=\"house\"\n label=\"Dashboard\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/activity\"\n icon=\"bar-chart\"\n label=\"Activity\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/editProfile\"\n icon=\"person\"\n label=\"Edit Profile\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/logout\"\n icon=\"box-arrow-right\"\n label=\"Logout\"\n ></sqm-navigation-sidebar-item>\n </sqm-navigation-sidebar>\n <sqm-divided-layout direction=\"column\">\n <sqm-router>\n <template path=\"/\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqb-widget\n widget-type=\"p/referral-program/w/referrerWidget\"\n track-loads=\"true\"\n ></sqb-widget>\n </template>\n <template path=\"/editProfile\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqm-portal-container direction=\"column\" gap=\"xxx-large\">\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\n ><sqm-portal-container direction=\"column\" gap=\"xxx-large\">\n <sqm-portal-change-password></sqm-portal-change-password>\n </sqm-portal-container>\n </template>\n\n <template path=\"/activity\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqm-portal-container\n direction=\"column\"\n padding=\"xxx-large\"\n gap=\"xxx-large\"\n >\n <sqm-text> <h1>Activity</h1></sqm-text>\n <sqm-stat-container space=\"xxxx-large\"\n ><sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/referralsCount\"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardsCountFiltered/AVAILABLE\"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardBalance/CREDIT/CENTS\"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container>\n <sqm-referral-table>\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\n <sqm-referral-table-date-column\n column-title=\"Referred\"\n date-shown=\"dateReferralStarted\"\n ></sqm-referral-table-date-column> </sqm-referral-table\n ></sqm-portal-container>\n </template>\n </sqm-router>\n </sqm-divided-layout>\n </sqm-divided-layout>\n </template>\n </sqm-router>\n </sqb-program-section>\n <sqm-portal-footer\n slot=\"footer\"\n support-email=\"support@example.com\"\n terms-link=\"https://example.com\"\n faq-link=\"https://example.com\"\n terms-text=\"Terms And Conditions\"\n faq-text=\"FAQ\"\n show-powered-by=\"true\"\n ></sqm-portal-footer>\n</sqm-portal-frame>\n";
3900
-
3901
- const portalLeadSubmitTemplate = "<sqm-portal-frame>\n <a slot=\"header\" href=\"/\">\n <sqm-text style=\"height: 60px\">\n <img\n style=\"height: 60px\"\n src=\"https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png\"\n />\n </sqm-text>\n </a>\n <sqb-program-section program-id=\"referral-program\">\n <sqm-router>\n <template\n path=\"/:path(\\bregister\\b|\\bemailVerification\\b|\\blogin\\b|\\bverifyEmail\\b|\\bforgotPassword\\b|\\bresetPassword\\b|\\blogout\\b)\"\n >\n <sqm-hero\n background=\"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80\"\n >\n <sqm-router>\n <template path=\"/register\">\n <sqm-portal-register>\n <sqm-name-fields slot=\"formData\"></sqm-name-fields>\n </sqm-portal-register>\n </template>\n\n <template path=\"/emailVerification\">\n <sqm-portal-protected-route\n redirect-to=\"/login\"\n ></sqm-portal-protected-route>\n <sqm-portal-email-verification></sqm-portal-email-verification>\n </template>\n\n <template path=\"/login\">\n <sqm-portal-login></sqm-portal-login>\n </template>\n\n <template path=\"/verifyEmail\">\n <sqm-portal-verify-email></sqm-portal-verify-email>\n </template>\n\n <template path=\"/forgotPassword\">\n <sqm-portal-forgot-password\n email-label=\"Business Email\"\n ></sqm-portal-forgot-password>\n </template>\n\n <template path=\"/resetPassword\">\n <sqm-portal-reset-password\n confirm-password=\"true\"\n ></sqm-portal-reset-password>\n </template>\n <template path=\"/logout\">\n <sqm-portal-logout next-page=\"/login\"></sqm-portal-logout>\n </template>\n </sqm-router>\n </sqm-hero>\n </template>\n </sqm-router>\n <sqm-router>\n <template path=\"/:path(\\bactivity\\b|\\beditProfile\\b|\\brefer\\b)?\">\n <sqm-divided-layout\n direction=\"row\"\n style=\"\n border-top: 1px solid #eaeaea;\n border-bottom: 1px solid #eaeaea;\n \"\n >\n <sqm-navigation-sidebar>\n <sqm-navigation-sidebar-item\n path=\"/\"\n icon=\"house\"\n label=\"Dashboard\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/refer\"\n icon=\"inbox\"\n label=\"Submit A Lead\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/activity\"\n icon=\"bar-chart\"\n label=\"Activity\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/editProfile\"\n icon=\"person\"\n label=\"Edit Profile\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/logout\"\n icon=\"box-arrow-right\"\n label=\"Logout\"\n ></sqm-navigation-sidebar-item>\n </sqm-navigation-sidebar>\n <sqm-divided-layout direction=\"column\">\n <sqm-router>\n <template path=\"/\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqb-widget\n widget-type=\"p/referral-program/w/referrerWidget\"\n track-loads=\"true\"\n ></sqb-widget>\n </template>\n <template path=\"/editProfile\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqm-portal-container direction=\"column\" gap=\"xxx-large\">\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\n ><sqm-portal-container direction=\"column\" gap=\"xxx-large\">\n <sqm-portal-change-password></sqm-portal-change-password>\n </sqm-portal-container>\n </template>\n <template path=\"/refer\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqm-referral-iframe></sqm-referral-iframe>\n </template>\n <template path=\"/activity\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqm-portal-container\n direction=\"column\"\n padding=\"xxx-large\"\n gap=\"xxx-large\"\n >\n <sqm-text> <h1>Activity</h1></sqm-text>\n <sqm-stat-container space=\"xxxx-large\"\n ><sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/referralsCount\"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardsCountFiltered/AVAILABLE\"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardBalance/CREDIT/CENTS\"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container>\n <sqm-referral-table>\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\n <sqm-referral-table-date-column\n column-title=\"Referred\"\n date-shown=\"dateReferralStarted\"\n ></sqm-referral-table-date-column> </sqm-referral-table\n ></sqm-portal-container>\n </template>\n </sqm-router>\n </sqm-divided-layout>\n </sqm-divided-layout>\n </template>\n </sqm-router>\n </sqb-program-section>\n <sqm-portal-footer\n slot=\"footer\"\n support-email=\"support@example.com\"\n terms-link=\"https://example.com\"\n faq-link=\"https://example.com\"\n terms-text=\"Terms And Conditions\"\n faq-text=\"FAQ\"\n show-powered-by=\"true\"\n ></sqm-portal-footer>\n</sqm-portal-frame>\n";
3902
-
3903
- const portalLeadSubmitTemplateWithDashboard = "<sqm-portal-frame>\n <a slot=\"header\" href=\"/\">\n <sqm-text style=\"height: 60px\">\n <img\n style=\"height: 60px\"\n src=\"https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png\"\n />\n </sqm-text>\n </a>\n <sqb-program-section program-id=\"referral-program\">\n <sqm-router>\n <template\n path=\"/:path(\\bregister\\b|\\bemailVerification\\b|\\blogin\\b|\\bverifyEmail\\b|\\bforgotPassword\\b|\\bresetPassword\\b|\\blogout\\b)\"\n >\n <sqm-hero\n background=\"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80\"\n >\n <sqm-router>\n <template path=\"/register\">\n <sqm-portal-register>\n <sqm-name-fields slot=\"formData\"></sqm-name-fields>\n </sqm-portal-register>\n </template>\n\n <template path=\"/emailVerification\">\n <sqm-portal-protected-route\n redirect-to=\"/login\"\n ></sqm-portal-protected-route>\n <sqm-portal-email-verification></sqm-portal-email-verification>\n </template>\n\n <template path=\"/login\">\n <sqm-portal-login></sqm-portal-login>\n </template>\n\n <template path=\"/verifyEmail\">\n <sqm-portal-verify-email></sqm-portal-verify-email>\n </template>\n\n <template path=\"/forgotPassword\">\n <sqm-portal-forgot-password\n email-label=\"Business Email\"\n ></sqm-portal-forgot-password>\n </template>\n\n <template path=\"/resetPassword\">\n <sqm-portal-reset-password\n confirm-password=\"true\"\n ></sqm-portal-reset-password>\n </template>\n <template path=\"/logout\">\n <sqm-portal-logout next-page=\"/login\"></sqm-portal-logout>\n </template>\n </sqm-router>\n </sqm-hero>\n </template>\n </sqm-router>\n <sqm-router>\n <template path=\"/:path(\\bactivity\\b|\\beditProfile\\b|\\brefer\\b)?\">\n <sqm-divided-layout\n direction=\"row\"\n style=\"\n border-top: 1px solid #eaeaea;\n border-bottom: 1px solid #eaeaea;\n \"\n >\n <sqm-navigation-sidebar>\n <sqm-navigation-sidebar-item\n path=\"/\"\n icon=\"house\"\n label=\"Dashboard\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/refer\"\n icon=\"inbox\"\n label=\"Submit A Lead\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/activity\"\n icon=\"bar-chart\"\n label=\"Activity\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/editProfile\"\n icon=\"person\"\n label=\"Edit Profile\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/logout\"\n icon=\"box-arrow-right\"\n label=\"Logout\"\n ></sqm-navigation-sidebar-item>\n </sqm-navigation-sidebar>\n <sqm-divided-layout direction=\"column\">\n <sqm-router>\n <template path=\"/\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqm-portal-container\n direction=\"column\"\n padding=\"xxx-large\"\n gap=\"xxx-large\"\n ><sqm-titled-section label-margin=\"xx-small\"\n ><sqm-text slot=\"label\"> <p>Welcome back,</p> </sqm-text\n ><sqm-text slot=\"content\">\n <h1>\n <sqm-user-name\n fallback=\"Anonymous User\"\n ></sqm-user-name>\n </h1> </sqm-text\n ></sqm-titled-section>\n <sqm-stat-container space=\"xxxx-large\"\n ><sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/referralsCount\"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardsCountFiltered/AVAILABLE\"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardBalance/CREDIT/CENTS\"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container> </sqm-portal-container\n ><sqm-portal-container\n direction=\"column\"\n padding=\"xxx-large\"\n gap=\"xxx-large\"\n >\n <sqm-titled-section padding=\"none\" label-margin=\"x-large\"\n ><sqm-text slot=\"label\">\n <h2>Partner and Profit</h2> </sqm-text\n ><sqm-text slot=\"content\">\n <p>\n Get rewarded for referring potential customers to\n SaaSquatch. Earn commission for each successful lead you\n send our way\n </p>\n </sqm-text></sqm-titled-section\n >\n <sqm-titled-section label-margin=\"small\" padding=\"none\"\n ><sqm-text slot=\"label\">\n <h3>Share your referral link</h3> </sqm-text\n ><sqm-share-link slot=\"content\"></sqm-share-link\n ></sqm-titled-section>\n <sqm-titled-section label-margin=\"small\" padding=\"none\">\n <sqm-text slot=\"label\">\n <h3>Share your referral code</h3> </sqm-text\n ><sqm-share-code slot=\"content\"></sqm-share-code>\n </sqm-titled-section>\n <sqm-titled-section label-margin=\"small\" padding=\"none\"\n ><sqm-text slot=\"label\">\n <h3>Share via social media</h3> </sqm-text\n ><sqm-portal-container\n slot=\"content\"\n direction=\"row\"\n padding=\"none\"\n gap=\"xxx-large\"\n min-width=\"160px\"\n ><sqm-share-button\n icon=\"envelope\"\n medium=\"email\"\n size=\"medium\"\n pill=\"true\"\n >Email a friend</sqm-share-button\n ><sqm-share-button\n medium=\"twitter\"\n size=\"medium\"\n pill=\"true\"\n >Tweet about us</sqm-share-button\n ><sqm-share-button\n medium=\"facebook\"\n size=\"medium\"\n pill=\"true\"\n >Share on Facebook</sqm-share-button\n ></sqm-portal-container\n ></sqm-titled-section\n ></sqm-portal-container\n >\n </template>\n <template path=\"/editProfile\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqm-portal-container direction=\"column\" gap=\"xxx-large\">\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\n ><sqm-portal-container direction=\"column\" gap=\"xxx-large\">\n <sqm-portal-change-password></sqm-portal-change-password>\n </sqm-portal-container>\n </template>\n <template path=\"/refer\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqm-referral-iframe></sqm-referral-iframe>\n </template>\n <template path=\"/activity\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqm-portal-container\n direction=\"column\"\n padding=\"xxx-large\"\n gap=\"xxx-large\"\n >\n <sqm-text> <h1>Activity</h1></sqm-text>\n <sqm-stat-container space=\"xxxx-large\"\n ><sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/referralsCount\"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardsCountFiltered/AVAILABLE\"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardBalance/CREDIT/CENTS\"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container>\n <sqm-referral-table>\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\n <sqm-referral-table-date-column\n column-title=\"Referred\"\n date-shown=\"dateReferralStarted\"\n ></sqm-referral-table-date-column> </sqm-referral-table\n ></sqm-portal-container>\n </template>\n </sqm-router>\n </sqm-divided-layout>\n </sqm-divided-layout>\n </template>\n </sqm-router>\n </sqb-program-section>\n <sqm-portal-footer\n slot=\"footer\"\n support-email=\"support@example.com\"\n terms-link=\"https://example.com\"\n faq-link=\"https://example.com\"\n terms-text=\"Terms And Conditions\"\n faq-text=\"FAQ\"\n show-powered-by=\"true\"\n ></sqm-portal-footer>\n</sqm-portal-frame>\n";
3904
-
3905
- const portalTemplateWithDashboard = "<sqm-portal-frame>\n <a slot=\"header\" href=\"/\">\n <sqm-text style=\"height: 60px\">\n <img\n style=\"height: 60px\"\n src=\"https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png\"\n />\n </sqm-text>\n </a>\n <sqb-program-section program-id=\"referral-program\">\n <sqm-router>\n <template\n path=\"/:path(\\bregister\\b|\\bemailVerification\\b|\\blogin\\b|\\bverifyEmail\\b|\\bforgotPassword\\b|\\bresetPassword\\b|\\blogout\\b)\"\n >\n <sqm-hero\n background=\"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80\"\n >\n <sqm-router>\n <template path=\"/register\">\n <sqm-portal-register>\n <sqm-name-fields slot=\"formData\"></sqm-name-fields>\n </sqm-portal-register>\n </template>\n\n <template path=\"/emailVerification\">\n <sqm-portal-protected-route\n redirect-to=\"/login\"\n ></sqm-portal-protected-route>\n <sqm-portal-email-verification></sqm-portal-email-verification>\n </template>\n\n <template path=\"/login\">\n <sqm-portal-login></sqm-portal-login>\n </template>\n\n <template path=\"/verifyEmail\">\n <sqm-portal-verify-email></sqm-portal-verify-email>\n </template>\n\n <template path=\"/forgotPassword\">\n <sqm-portal-forgot-password\n email-label=\"Business Email\"\n ></sqm-portal-forgot-password>\n </template>\n\n <template path=\"/resetPassword\">\n <sqm-portal-reset-password\n confirm-password=\"true\"\n ></sqm-portal-reset-password>\n </template>\n <template path=\"/logout\">\n <sqm-portal-logout next-page=\"/login\"></sqm-portal-logout>\n </template>\n </sqm-router>\n </sqm-hero>\n </template>\n </sqm-router>\n <sqm-router>\n <template path=\"/:path(\\bactivity\\b|\\beditProfile\\b)?\">\n <sqm-divided-layout\n direction=\"row\"\n style=\"\n border-top: 1px solid #eaeaea;\n border-bottom: 1px solid #eaeaea;\n \"\n >\n <sqm-navigation-sidebar>\n <sqm-navigation-sidebar-item\n path=\"/\"\n icon=\"house\"\n label=\"Dashboard\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/activity\"\n icon=\"bar-chart\"\n label=\"Activity\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/editProfile\"\n icon=\"person\"\n label=\"Edit Profile\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/logout\"\n icon=\"box-arrow-right\"\n label=\"Logout\"\n ></sqm-navigation-sidebar-item>\n </sqm-navigation-sidebar>\n <sqm-divided-layout direction=\"column\">\n <sqm-router>\n <template path=\"/\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqm-portal-container\n direction=\"column\"\n padding=\"xxx-large\"\n gap=\"xxx-large\"\n ><sqm-titled-section label-margin=\"xx-small\"\n ><sqm-text slot=\"label\"> <p>Welcome back,</p> </sqm-text\n ><sqm-text slot=\"content\">\n <h1>\n <sqm-user-name\n fallback=\"Anonymous User\"\n ></sqm-user-name>\n </h1> </sqm-text\n ></sqm-titled-section>\n <sqm-stat-container space=\"xxxx-large\"\n ><sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/referralsCount\"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n ><sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardBalance/CREDIT/CENTS\"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container> </sqm-portal-container\n ><sqm-portal-container\n direction=\"column\"\n padding=\"xxx-large\"\n gap=\"xxx-large\"\n >\n <sqm-titled-section padding=\"none\" label-margin=\"x-large\"\n ><sqm-text slot=\"label\">\n <h2>Partner and Profit</h2> </sqm-text\n ><sqm-text slot=\"content\">\n <p>\n Get rewarded for referring potential customers to\n SaaSquatch. Earn commission for each successful lead you\n send our way\n </p>\n </sqm-text></sqm-titled-section\n >\n <sqm-titled-section label-margin=\"small\" padding=\"none\"\n ><sqm-text slot=\"label\">\n <h3>Share your referral link</h3> </sqm-text\n ><sqm-share-link slot=\"content\"></sqm-share-link\n ></sqm-titled-section>\n <sqm-titled-section label-margin=\"small\" padding=\"none\">\n <sqm-text slot=\"label\">\n <h3>Share your referral code</h3> </sqm-text\n ><sqm-share-code slot=\"content\"></sqm-share-code>\n </sqm-titled-section>\n <sqm-titled-section label-margin=\"small\" padding=\"none\"\n ><sqm-text slot=\"label\">\n <h3>Share via social media</h3> </sqm-text\n ><sqm-portal-container\n slot=\"content\"\n direction=\"row\"\n padding=\"none\"\n gap=\"xxx-large\"\n min-width=\"160px\"\n ><sqm-share-button\n icon=\"envelope\"\n medium=\"email\"\n size=\"medium\"\n pill=\"true\"\n >Email a friend</sqm-share-button\n ><sqm-share-button\n medium=\"twitter\"\n size=\"medium\"\n pill=\"true\"\n >Tweet about us</sqm-share-button\n ><sqm-share-button\n medium=\"facebook\"\n size=\"medium\"\n pill=\"true\"\n >Share on Facebook</sqm-share-button\n ></sqm-portal-container\n ></sqm-titled-section\n ></sqm-portal-container\n >\n </template>\n <template path=\"/editProfile\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqm-portal-container direction=\"column\" gap=\"xxx-large\">\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\n ><sqm-portal-container direction=\"column\" gap=\"xxx-large\">\n <sqm-portal-change-password></sqm-portal-change-password>\n </sqm-portal-container>\n </template>\n\n <template path=\"/activity\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqm-portal-container\n direction=\"column\"\n padding=\"xxx-large\"\n gap=\"xxx-large\"\n >\n <sqm-text> <h1>Activity</h1></sqm-text>\n <sqm-stat-container space=\"xxxx-large\"\n ><sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/referralsCount\"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardsCountFiltered/AVAILABLE\"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardBalance/CREDIT/CENTS\"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container>\n <sqm-referral-table>\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\n <sqm-referral-table-date-column\n column-title=\"Referred\"\n date-shown=\"dateReferralStarted\"\n ></sqm-referral-table-date-column> </sqm-referral-table\n ></sqm-portal-container>\n </template>\n </sqm-router>\n </sqm-divided-layout>\n </sqm-divided-layout>\n </template>\n </sqm-router>\n </sqb-program-section>\n <sqm-portal-footer\n slot=\"footer\"\n support-email=\"support@example.com\"\n terms-link=\"https://example.com\"\n faq-link=\"https://example.com\"\n terms-text=\"Terms And Conditions\"\n faq-text=\"FAQ\"\n show-powered-by=\"true\"\n ></sqm-portal-footer>\n</sqm-portal-frame>\n";
3906
-
3907
- const multiProgramTemplate = "<sqm-portal-frame>\n <a slot=\"header\" href=\"/\">\n <sqm-text style=\"height: 60px\">\n <img\n style=\"height: 60px\"\n src=\"https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png\"\n />\n </sqm-text>\n </a>\n <sqb-program-section program-id=\"referral-program-1\">\n <sqm-router>\n <template\n path=\"/:path(\\bregister\\b|\\bemailVerification\\b|\\blogin\\b|\\bverifyEmail\\b|\\bforgotPassword\\b|\\bresetPassword\\b|\\blogout\\b)\"\n >\n <sqm-hero\n background=\"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80\"\n >\n <sqm-router>\n <template path=\"/register\">\n <sqm-portal-register>\n <sqm-name-fields slot=\"formData\"></sqm-name-fields>\n </sqm-portal-register>\n </template>\n\n <template path=\"/emailVerification\">\n <sqm-portal-protected-route\n redirect-to=\"/login\"\n ></sqm-portal-protected-route>\n <sqm-portal-email-verification></sqm-portal-email-verification>\n </template>\n\n <template path=\"/login\">\n <sqm-portal-login></sqm-portal-login>\n </template>\n\n <template path=\"/verifyEmail\">\n <sqm-portal-verify-email></sqm-portal-verify-email>\n </template>\n\n <template path=\"/forgotPassword\">\n <sqm-portal-forgot-password\n email-label=\"Business Email\"\n ></sqm-portal-forgot-password>\n </template>\n\n <template path=\"/resetPassword\">\n <sqm-portal-reset-password\n confirm-password=\"true\"\n ></sqm-portal-reset-password>\n </template>\n <template path=\"/logout\">\n <sqm-portal-logout next-page=\"/login\"></sqm-portal-logout>\n </template>\n </sqm-router>\n </sqm-hero>\n </template>\n </sqm-router>\n <sqm-router>\n <template path=\"/:path(\\bactivity\\b|\\beditProfile\\b)?\">\n <sqm-divided-layout\n direction=\"row\"\n style=\"\n border-top: 1px solid #eaeaea;\n border-bottom: 1px solid #eaeaea;\n \"\n >\n <sqm-navigation-sidebar>\n <sqm-program-menu>\n <sl-menu-item value=\"referral-program-1\"\n >Referral Program 1</sl-menu-item\n >\n <sl-menu-item value=\"referral-program-2\"\n >Referral Program 2</sl-menu-item\n >\n </sqm-program-menu>\n <sqm-navigation-sidebar-item\n path=\"/\"\n icon=\"house\"\n label=\"Dashboard\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/activity\"\n icon=\"bar-chart\"\n label=\"Activity\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/editProfile\"\n icon=\"person\"\n label=\"Edit Profile\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/logout\"\n icon=\"box-arrow-right\"\n label=\"Logout\"\n ></sqm-navigation-sidebar-item>\n </sqm-navigation-sidebar>\n <sqm-divided-layout direction=\"column\">\n <sqm-router>\n <template path=\"/\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqb-program-switch>\n <template program-id=\"referral-program-1\">\n <sqb-widget\n widget-type=\"p/referral-program-1/w/referrerWidget\"\n track-loads=\"true\"\n ></sqb-widget>\n </template>\n <template program-id=\"referral-program-2\">\n <sqb-widget\n widget-type=\"p/referral-program-2/w/referrerWidget\"\n track-loads=\"true\"\n ></sqb-widget>\n </template>\n </sqb-program-switch>\n </template>\n <template path=\"/editProfile\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqm-portal-container direction=\"column\" gap=\"xxx-large\">\n <sqm-portal-profile></sqm-portal-profile></sqm-portal-container\n ><sqm-portal-container direction=\"column\" gap=\"xxx-large\">\n <sqm-portal-change-password></sqm-portal-change-password>\n </sqm-portal-container>\n </template>\n <template path=\"/activity\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqm-portal-container\n direction=\"column\"\n padding=\"xxx-large\"\n gap=\"xxx-large\"\n >\n <sqm-text> <h1>Activity</h1></sqm-text>\n <sqm-stat-container space=\"xxxx-large\"\n ><sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/referralsCount\"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardsCountFiltered/AVAILABLE\"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardBalance/CREDIT/CENTS\"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container>\n <sqm-referral-table>\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\n <sqm-referral-table-date-column\n column-title=\"Referred\"\n date-shown=\"dateReferralStarted\"\n ></sqm-referral-table-date-column> </sqm-referral-table\n ></sqm-portal-container>\n </template>\n </sqm-router>\n </sqm-divided-layout>\n </sqm-divided-layout>\n </template>\n </sqm-router>\n </sqb-program-section>\n <sqm-portal-footer\n slot=\"footer\"\n support-email=\"support@example.com\"\n terms-link=\"https://example.com\"\n faq-link=\"https://example.com\"\n terms-text=\"Terms And Conditions\"\n faq-text=\"FAQ\"\n show-powered-by=\"true\"\n ></sqm-portal-footer>\n</sqm-portal-frame>\n";
3887
+ const loyaltyWidget = "<sqm-brand brand-color=\"#4225c4\" brand-font=\"Nunito Sans\">\n <sqm-portal-container\n direction=\"column\"\n padding=\"small\"\n gap=\"xxxx-large\"\n display=\"grid\"\n max-width=\"100%\"\n background-color=\"#ffffff\"\n >\n <sqm-portal-container\n direction=\"column\"\n padding=\"none\"\n gap=\"xxx-large\"\n display=\"grid\"\n max-width=\"100%\"\n >\n <sqm-hero-image\n image-url=\"https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png\"\n header=\"MyCompany Rewards\"\n description=\"Complete tasks to earn rewards\"\n layout=\"overlay\"\n padding-image=\"xxxx-large\"\n padding-text=\"xxx-large\"\n image-pos=\"center\"\n overlay-color=\"#5e5669\"\n overlay-opacity=\"0.9\"\n >\n </sqm-hero-image>\n <sqm-portal-container\n direction=\"column\"\n padding=\"none\"\n gap=\"xxx-large\"\n max-width=\"770px\"\n center\n display=\"grid\"\n >\n <sqm-program-explainer header=\"How it works\">\n <sqm-program-explainer-step\n description=\"Complete tasks like uploading your first video or sharing videos with friends\"\n header=\"Earn points for using our product\"\n icon=\"cash-stack\"\n text-color=\"#000000\"\n >\n </sqm-program-explainer-step>\n <sqm-program-explainer-step\n description=\"Redeem rewards like one free month of Enterprise or two plane tickets to anywhere in North America\"\n header=\"Redeem rewards with your points\"\n icon=\"people\"\n text-color=\"#000000\"\n >\n </sqm-program-explainer-step>\n </sqm-program-explainer>\n <sqm-portal-container\n center\n direction=\"row\"\n display=\"flex\"\n justify-content=\"space-between\"\n gap=\"xxx-large\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <sqm-stat-container space=\"xxx-large\" display=\"flex\">\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardsRedeemed/CREDIT/POINTS\"\n >\n <p>Points Redeemed</p>\n </sqm-big-stat>\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardBalance/CREDIT/POINT/value/global\"\n >\n <p>Points Balance</p>\n </sqm-big-stat>\n </sqm-stat-container>\n </sqm-portal-container>\n <sqm-portal-container\n direction=\"column\"\n padding=\"none\"\n gap=\"xx-large\"\n display=\"grid\"\n max-width=\"100%\"\n >\n <sqm-titled-section\n label-margin=\"small\"\n padding=\"none\"\n text-align=\"center\"\n >\n <h3 slot=\"label\">Earn points</h3>\n </sqm-titled-section>\n <sqm-card-feed gap=\"24\" width=\"347\">\n <sqm-task-card\n reward-amount=\"20\"\n goal=\"1\"\n card-title=\"Complete a Survey\"\n description=\"Fill out our NPS survey and get 20 points for giving us honest feedback.\"\n button-text=\"Take survey\"\n reward-unit=\"Points\"\n completed-text=\"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\"\n ended-message=\"Ended {endDate}\"\n expiry-message=\"Ends {endDate}\"\n finite=\"0\"\n starts-on-message=\"Starts {startDate}\"\n >\n </sqm-task-card>\n <sqm-task-card\n reward-amount=\"250\"\n goal=\"500\"\n show-progress-bar\n card-title=\"Spend $500\"\n description=\"Earn 250 points when you spend $500 or more.\"\n button-text=\"See plans\"\n completed-text=\"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\"\n ended-message=\"Ended {endDate}\"\n expiry-message=\"Ends {endDate}\"\n progress-bar-unit=\"$\"\n finite=\"0\"\n reward-unit=\"Points\"\n starts-on-message=\"Starts {startDate}\"\n >\n </sqm-task-card>\n <sqm-task-card\n goal=\"1\"\n reward-amount=\"50\"\n card-title=\"Follow Us on Twitter\"\n description=\"Earn 50 points when you follow us on Twitter!\"\n button-text=\"Follow\"\n button-link=\"https://twitter.com/\"\n open-new-tab=\"true\"\n event-key=\"socialFollow\"\n completed-text=\"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\"\n ended-message=\"Ended {endDate}\"\n expiry-message=\"Ends {endDate}\"\n finite=\"0\"\n reward-unit=\"Points\"\n starts-on-message=\"Starts {startDate}\"\n >\n </sqm-task-card>\n <sqm-task-card\n reward-amount=\"1\"\n reward-unit=\"Free Month\"\n goal=\"1\"\n card-title=\"Upgrade Your Plan\"\n description=\"Receive one free month for being a committed customer when you upgrade your plan.\"\n button-text=\"Upgrade\"\n completed-text=\"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\"\n ended-message=\"Ended {endDate}\"\n expiry-message=\"Ends {endDate}\"\n open-new-tab=\"false\"\n finite=\"0\"\n starts-on-message=\"Starts {startDate}\"\n >\n </sqm-task-card>\n </sqm-card-feed>\n <sqm-portal-container\n gap=\"large\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <sqm-titled-section\n padding=\"none\"\n text-align=\"center\"\n label-margin=\"xx-small\"\n >\n <h3 slot=\"label\">Reward History</h3>\n </sqm-titled-section>\n <sqm-rewards-table\n per-page=\"4\"\n hidden-columns=\"0\"\n more-label=\"Next\"\n prev-label=\"Prev\"\n sm-breakpoint=\"599\"\n md-breakpoint=\"799\"\n >\n <sqm-rewards-table-reward-column\n available-text=\"{availableAmount} remaining\"\n column-title=\"Reward\"\n copy-text=\"Copied!\"\n redeemed-text=\"{redeemedAmount} redeemed\"\n >\n </sqm-rewards-table-reward-column>\n <sqm-rewards-table-source-column\n anonymous-user=\"Anonymous User\"\n column-title=\"Source\"\n deleted-user=\"Deleted User\"\n referral-text=\"{rewardSource, select, FRIEND_SIGNUP {Referral to} REFERRED {Referred by} other {}}\"\n reward-exchange-text=\"Reward Exchange\"\n reward-source-text=\"{rewardSource, select, MANUAL {Manual} AUTOMATED {{programName}} other {}}\"\n >\n </sqm-rewards-table-source-column>\n <sqm-rewards-table-status-column\n column-title=\"Status\"\n expiry-text=\"Expires on \"\n status-text=\"{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }\"\n >\n </sqm-rewards-table-status-column>\n <sqm-rewards-table-date-column\n column-title=\"Date received\"\n date-shown=\"dateGiven\"\n >\n </sqm-rewards-table-date-column>\n <sqm-empty\n slot=\"empty\"\n empty-state-image=\"https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_reward2.png\"\n empty-state-header=\"View your rewards\"\n empty-state-text=\"Refer friends and complete tasks to view the details of your rewards\"\n >\n </sqm-empty>\n </sqm-rewards-table>\n </sqm-portal-container>\n </sqm-portal-container>\n <sqm-portal-footer\n support-email=\"support@example.com\"\n terms-link=\"https:\\/\\/example.com\"\n faq-link=\"https:\\/\\/example.com\"\n terms-text=\"Terms And Conditions\"\n faq-text=\"FAQ\"\n show-powered-by=\"true\"\n padding-bottom=\"none\"\n padding-left=\"none\"\n padding-right=\"none\"\n padding-top=\"none\"\n ></sqm-portal-footer>\n </sqm-portal-container>\n </sqm-portal-container>\n </sqm-portal-container>\n</sqm-brand>\n";
3908
3888
 
3909
- const multiProgramTemplateWithDashboard = "<sqm-portal-frame>\n <a slot=\"header\" href=\"/\">\n <sqm-text style=\"height: 60px\">\n <img\n style=\"height: 60px\"\n src=\"https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png\"\n />\n </sqm-text>\n </a>\n <sqb-program-section program-id=\"referral-program-1\">\n <sqm-hero\n background=\"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80\"\n >\n <sqm-router>\n <template path=\"/register\">\n <sqm-portal-register>\n <sqm-name-fields slot=\"formData\"></sqm-name-fields>\n </sqm-portal-register>\n </template>\n\n <template path=\"/emailVerification\">\n <sqm-portal-protected-route\n redirect-to=\"/login\"\n ></sqm-portal-protected-route>\n <sqm-portal-email-verification></sqm-portal-email-verification>\n </template>\n\n <template path=\"/login\">\n <sqm-portal-login></sqm-portal-login>\n </template>\n\n <template path=\"/verifyEmail\">\n <sqm-portal-verify-email></sqm-portal-verify-email>\n </template>\n\n <template path=\"/forgotPassword\">\n <sqm-portal-forgot-password\n email-label=\"Business Email\"\n ></sqm-portal-forgot-password>\n </template>\n\n <template path=\"/resetPassword\">\n <sqm-portal-reset-password\n confirm-password=\"true\"\n ></sqm-portal-reset-password>\n </template>\n <template path=\"/logout\">\n <sqm-portal-logout next-page=\"/login\"></sqm-portal-logout>\n </template>\n </sqm-router>\n </sqm-hero>\n <sqm-router>\n <template path=\"/:path(\\bactivity\\b|\\beditProfile\\b)?\">\n <sqm-divided-layout\n direction=\"row\"\n style=\"\n border-top: 1px solid #eaeaea;\n border-bottom: 1px solid #eaeaea;\n \"\n >\n <sqm-navigation-sidebar>\n <sqm-program-menu>\n <sl-menu-item value=\"referral-program-1\"\n >Referral Program 1</sl-menu-item\n >\n <sl-menu-item value=\"referral-program-2\"\n >Referral Program 2</sl-menu-item\n >\n </sqm-program-menu>\n <sqm-navigation-sidebar-item\n path=\"/\"\n icon=\"house\"\n label=\"Dashboard\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/activity\"\n icon=\"bar-chart\"\n label=\"Activity\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/editProfile\"\n icon=\"person\"\n label=\"Edit Profile\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/logout\"\n icon=\"box-arrow-right\"\n label=\"Logout\"\n ></sqm-navigation-sidebar-item>\n </sqm-navigation-sidebar>\n <sqm-divided-layout direction=\"column\">\n <sqm-router>\n <template path=\"/\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route\n ><sqm-portal-container\n direction=\"column\"\n padding=\"xxx-large\"\n gap=\"xxx-large\"\n ><sqm-titled-section label-margin=\"xx-small\"\n ><sqm-text slot=\"label\"> <p>Welcome back,</p> </sqm-text\n ><sqm-text slot=\"content\">\n <h1>\n <sqm-user-name\n fallback=\"Anonymous User\"\n ></sqm-user-name>\n </h1> </sqm-text\n ></sqm-titled-section>\n <sqm-stat-container space=\"xxxx-large\"\n ><sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/referralsCount\"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardsCountFiltered/AVAILABLE\"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardBalance/CREDIT/CENTS\"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container> </sqm-portal-container\n ><sqm-portal-container\n direction=\"column\"\n padding=\"xxx-large\"\n gap=\"xxx-large\"\n >\n <sqm-titled-section padding=\"none\" label-margin=\"x-large\"\n ><sqm-text slot=\"label\">\n <h2>Partner and Profit</h2> </sqm-text\n ><sqm-text slot=\"content\">\n <p>\n Get rewarded for referring potential customers to\n SaaSquatch. Earn commission for each successful lead you\n send our way\n </p>\n </sqm-text></sqm-titled-section\n >\n <sqm-titled-section label-margin=\"small\" padding=\"none\"\n ><sqm-text slot=\"label\">\n <h3>Share your referral link</h3> </sqm-text\n ><sqm-share-link slot=\"content\"></sqm-share-link\n ></sqm-titled-section>\n <sqm-titled-section label-margin=\"small\" padding=\"none\">\n <sqm-text slot=\"label\">\n <h3>Share your referral code</h3> </sqm-text\n ><sqm-share-code slot=\"content\"></sqm-share-code>\n </sqm-titled-section>\n <sqm-titled-section label-margin=\"small\" padding=\"none\"\n ><sqm-text slot=\"label\">\n <h3>Share via social media</h3> </sqm-text\n ><sqm-portal-container\n slot=\"content\"\n direction=\"row\"\n padding=\"none\"\n gap=\"xxx-large\"\n min-width=\"160px\"\n ><sqm-share-button\n icon=\"envelope\"\n medium=\"email\"\n size=\"medium\"\n pill=\"true\"\n >Email a friend</sqm-share-button\n ><sqm-share-button\n medium=\"twitter\"\n size=\"medium\"\n pill=\"true\"\n >Tweet about us</sqm-share-button\n ><sqm-share-button\n medium=\"facebook\"\n size=\"medium\"\n pill=\"true\"\n >Share on Facebook</sqm-share-button\n ></sqm-portal-container\n ></sqm-titled-section\n ></sqm-portal-container\n >\n </template>\n <template path=\"/editProfile\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqm-portal-container direction=\"column\" gap=\"xxx-large\">\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\n ><sqm-portal-container direction=\"column\" gap=\"xxx-large\">\n <sqm-portal-change-password></sqm-portal-change-password>\n </sqm-portal-container>\n </template>\n <template path=\"/activity\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqm-portal-container\n direction=\"column\"\n padding=\"xxx-large\"\n gap=\"xxx-large\"\n >\n <sqm-text> <h1>Activity</h1></sqm-text>\n <sqm-stat-container space=\"xxxx-large\"\n ><sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/referralsCount\"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardsCountFiltered/AVAILABLE\"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardBalance/CREDIT/CENTS\"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container>\n <sqm-referral-table>\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\n <sqm-referral-table-date-column\n column-title=\"Referred\"\n date-shown=\"dateReferralStarted\"\n ></sqm-referral-table-date-column> </sqm-referral-table\n ></sqm-portal-container>\n </template>\n </sqm-router>\n </sqm-divided-layout>\n </sqm-divided-layout>\n </template>\n </sqm-router>\n </sqb-program-section>\n <sqm-portal-footer\n slot=\"footer\"\n support-email=\"support@example.com\"\n terms-link=\"https://example.com\"\n faq-link=\"https://example.com\"\n terms-text=\"Terms And Conditions\"\n faq-text=\"FAQ\"\n show-powered-by=\"true\"\n ></sqm-portal-footer>\n</sqm-portal-frame>\n";
3889
+ const instantAccessReferrerShareWidget = "<sqm-hero\n background=\"https://res.cloudinary.com/saasquatch/image/upload/v1683589933/Portal%20Assets/Screen-Shot-2022-01-06-at-3.23.58-AM.png\"\n columns=\"2\"\n padding-size=\"medium\"\n wrap-direction=\"wrap\"\n secondary-background=\"#FFFFFF\"\n min-height=\"200\"\n ><sqm-referral-card\n vertical-alignment=\"start\"\n slot=\"secondary-column\"\n padding-bottom=\"small\"\n padding-left=\"x-large\"\n padding-right=\"x-large\"\n padding-top=\"small\"\n >\n <sqm-titled-section\n text-align=\"center\"\n label-margin=\"none\"\n padding=\"none\"\n slot=\"header\"\n ><h1 slot=\"label\">Invite your friends to unlock rewards!</h1>\n <p slot=\"content\">\n They&#x2019;ll get a &#x24;50 credit towards a new account and\n you&#x2019;ll get a &#x24;50 in credit for each friend you refer.\n </p></sqm-titled-section\n >\n <sqm-portal-container\n gap=\"small\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n slot=\"left\"\n >\n <p style=\"margin: 0\">Choose how you want to share:</p>\n <sqm-share-link\n tooltip-text=\"Copied to Clipboard\"\n tooltip-lifespan=\"1000\"\n >\n </sqm-share-link>\n <sqm-share-button\n medium=\"email\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Share via email\n </sqm-share-button>\n <sqm-share-button\n medium=\"linkedin\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Share on LinkedIn\n </sqm-share-button>\n <sqm-share-button\n medium=\"twitter\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Tweet about us\n </sqm-share-button> </sqm-portal-container\n ><sqm-portal-container\n display=\"flex\"\n slot=\"footer\"\n gap=\"small\"\n justify-content=\"center\"\n >\n <sqm-logout-current-user\n user-identification-text=\"{email}\"\n switch-user-link=\"#\"\n switch-user-text=\"not you?\"\n ></sqm-logout-current-user>\n <sqm-portal-footer\n support-email=\"support@example.com\"\n show-powered-by=\"true\"\n padding-bottom=\"x-small\"\n padding-left=\"none\"\n padding-right=\"none\"\n padding-top=\"none\"\n hide-support-text\n terms-text=\"Terms And Conditions\"\n terms-link=\"https://example.com\"\n ></sqm-portal-footer></sqm-portal-container\n ></sqm-referral-card>\n</sqm-hero>\n";
3910
3890
 
3911
- const dashboardTemplate = "<sqm-portal-container direction=\"column\" padding=\"xxx-large\" gap=\"xxx-large\"\n ><sqm-titled-section label-margin=\"xx-small\"\n ><sqm-text slot=\"label\"> <p>Welcome back,</p> </sqm-text\n ><sqm-text slot=\"content\">\n <h1>\n <sqm-user-name fallback=\"Anonymous User\"></sqm-user-name>\n </h1> </sqm-text\n ></sqm-titled-section>\n <sqm-stat-container space=\"xxxx-large\"\n ><sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/referralsCount\"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardsCountFiltered/AVAILABLE\"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardBalance/CREDIT/CENTS\"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container> </sqm-portal-container\n><sqm-portal-container direction=\"column\" padding=\"xxx-large\" gap=\"xxx-large\">\n <sqm-titled-section padding=\"none\" label-margin=\"x-large\"\n ><sqm-text slot=\"label\"> <h2>Partner and Profit</h2> </sqm-text\n ><sqm-text slot=\"content\">\n <p>\n Get rewarded for referring potential customers to SaaSquatch. Earn\n commission for each successful lead you send our way\n </p>\n </sqm-text></sqm-titled-section\n >\n <sqm-titled-section label-margin=\"small\" padding=\"none\"\n ><sqm-text slot=\"label\"> <h3>Share your referral link</h3> </sqm-text\n ><sqm-share-link slot=\"content\"></sqm-share-link\n ></sqm-titled-section>\n <sqm-titled-section label-margin=\"small\" padding=\"none\">\n <sqm-text slot=\"label\"> <h3>Share your referral code</h3> </sqm-text\n ><sqm-share-code slot=\"content\"></sqm-share-code>\n </sqm-titled-section>\n <sqm-titled-section label-margin=\"small\" padding=\"none\"\n ><sqm-text slot=\"label\"> <h3>Share via social media</h3> </sqm-text\n ><sqm-portal-container\n slot=\"content\"\n direction=\"row\"\n padding=\"none\"\n gap=\"xxx-large\"\n min-width=\"160px\"\n ><sqm-share-button\n icon=\"envelope\"\n medium=\"email\"\n size=\"medium\"\n pill=\"true\"\n >Email a friend</sqm-share-button\n ><sqm-share-button medium=\"twitter\" size=\"medium\" pill=\"true\"\n >Tweet about us</sqm-share-button\n ><sqm-share-button medium=\"facebook\" size=\"medium\" pill=\"true\"\n >Share on Facebook</sqm-share-button\n ></sqm-portal-container\n ></sqm-titled-section\n ></sqm-portal-container\n>\n";
3891
+ const instantAccessFriendCouponWidget = "<sqm-hero\n background=\"https://res.cloudinary.com/saasquatch/image/upload/v1683589933/Portal%20Assets/Screen-Shot-2022-01-06-at-3.23.58-AM.png\"\n columns=\"2\"\n padding-size=\"medium\"\n wrap-direction=\"wrap\"\n secondary-background=\"#FFFFFF\"\n>\n <sqm-referral-card\n vertical-alignment=\"start\"\n padding-bottom=\"small\"\n padding-left=\"x-large\"\n padding-right=\"x-large\"\n padding-top=\"small\"\n slot=\"secondary-column\"\n >\n <sqm-portal-container\n gap=\"large\"\n direction=\"column\"\n display=\"flex\"\n justify-content=\"center\"\n max-width=\"100%\"\n padding=\"none\"\n slot=\"header\"\n >\n <sqm-titled-section\n text-align=\"center\"\n label-margin=\"xxx-small\"\n padding=\"none\"\n >\n <h1 slot=\"label\">You got &#x24;50 off thanks to a friend!</h1>\n <p slot=\"content\">\n <span> Use this reward to get &#x24;50 off your next purchase. </span>\n </p>\n </sqm-titled-section>\n\n <sqm-coupon-code copy-button-style=\"button-outside\"></sqm-coupon-code>\n </sqm-portal-container>\n\n <sqm-portal-footer\n slot=\"footer\"\n show-powered-by=\"true\"\n padding-bottom=\"none\"\n padding-left=\"none\"\n padding-right=\"none\"\n padding-top=\"none\"\n hide-support-text\n terms-text=\"Terms And Conditions\"\n terms-link=\"https://example.com\"\n ></sqm-portal-footer>\n </sqm-referral-card>\n</sqm-hero>\n";
3912
3892
 
3913
- const leadSubmitTemplate = "<sqm-referral-iframe></sqm-referral-iframe>\n";
3893
+ const instantAccessReferrerRegistrationWidget = "<sqm-hero\n background=\"https://res.cloudinary.com/saasquatch/image/upload/v1683589933/Portal%20Assets/Screen-Shot-2022-01-06-at-3.23.58-AM.png\"\n columns=\"2\"\n padding-size=\"medium\"\n wrap-direction=\"wrap\"\n secondary-background=\"#FFFFFF\"\n ><sqm-instant-access-registration\n padding-bottom=\"small\"\n padding-left=\"x-large\"\n padding-right=\"x-large\"\n padding-top=\"small\"\n slot=\"secondary-column\"\n ><sqm-titled-section\n text-align=\"center\"\n label-margin=\"small\"\n padding=\"none\"\n slot=\"top\"\n ><div slot=\"label\"><h1>Invite your friends to unlock rewards!</h1></div>\n\n <p slot=\"content\">\n They&#x2019;ll get a &#x24;50 credit towards a new account and\n you&#x2019;ll get a &#x24;50 in credit for each friend you refer.\n </p> </sqm-titled-section\n ><sqm-portal-footer\n slot=\"bottom\"\n support-email=\"support@example.com\"\n show-powered-by=\"true\"\n padding-bottom=\"x-small\"\n padding-left=\"none\"\n padding-right=\"none\"\n padding-top=\"none\"\n hide-support-text\n terms-text=\"Terms And Conditions\"\n terms-link=\"https://example.com\"\n ></sqm-portal-footer\n ></sqm-instant-access-registration>\n</sqm-hero>\n";
3914
3894
 
3915
- const editProfileTemplate = "<sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n></sqm-portal-protected-route>\n<sqm-portal-container direction=\"column\" gap=\"xxx-large\">\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\n><sqm-portal-container direction=\"column\" gap=\"xxx-large\">\n <sqm-portal-change-password></sqm-portal-change-password>\n</sqm-portal-container>\n";
3895
+ const instantAccessFriendRegistrationWidget = "<sqm-hero\n background=\"https://res.cloudinary.com/saasquatch/image/upload/v1683589933/Portal%20Assets/Screen-Shot-2022-01-06-at-3.23.58-AM.png\"\n columns=\"2\"\n padding-size=\"medium\"\n wrap-direction=\"wrap\"\n secondary-background=\"#FFFFFF\"\n ><sqm-referred-registration\n slot=\"secondary-column\"\n register-label=\"Get $50 off\"\n padding-bottom=\"small\"\n padding-left=\"x-large\"\n padding-right=\"x-large\"\n padding-top=\"small\"\n ><sqm-titled-section\n text-align=\"center\"\n label-margin=\"small\"\n padding=\"none\"\n slot=\"top\"\n ><h1 slot=\"label\">You got &#x24;50 off thanks to a friend!</h1>\n <p slot=\"content\">\n <span>Use this reward to get &#x24;50 off your next purchase.</span>\n </p>\n </sqm-titled-section>\n <div slot=\"bottom\">\n <p style=\"text-align: center\">*Valid on purchases of &#x24;75 or more</p>\n <sqm-portal-footer\n slot=\"footer\"\n show-powered-by=\"true\"\n padding-bottom=\"none\"\n padding-left=\"none\"\n padding-right=\"none\"\n padding-top=\"none\"\n hide-support-text\n terms-text=\"Terms And Conditions\"\n terms-link=\"https://example.com\"\n ></sqm-portal-footer>\n </div> </sqm-referred-registration\n></sqm-hero>\n";
3916
3896
 
3917
- const activityTemplate = "<sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n></sqm-portal-protected-route>\n<sqm-portal-container direction=\"column\" padding=\"xxx-large\" gap=\"xxx-large\">\n <sqm-text> <h1>Activity</h1></sqm-text>\n <sqm-stat-container space=\"xxxx-large\"\n ><sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/referralsCount\"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardsCountFiltered/AVAILABLE\"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardBalance/CREDIT/CENTS\"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container>\n <sqm-referral-table>\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\n <sqm-referral-table-date-column\n column-title=\"Referred\"\n date-shown=\"dateReferralStarted\"\n ></sqm-referral-table-date-column> </sqm-referral-table\n></sqm-portal-container>\n";
3897
+ const paypalReferralWidget = "<sqm-brand brand-color=\"#4225c4\" brand-font=\"Nunito Sans\">\n <sqm-portal-container\n direction=\"column\"\n padding=\"small\"\n gap=\"xxx-large\"\n display=\"grid\"\n max-width=\"100%\"\n background-color=\"#ffffff\"\n >\n <sqm-portal-container\n direction=\"column\"\n padding=\"none\"\n gap=\"xxx-large\"\n display=\"grid\"\n max-width=\"100%\"\n >\n <sqm-hero-image\n image-url=\"https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png\"\n header=\"MyCompany Rewards\"\n description=\"Refer a friend and earn up to $1200 in rewards\"\n layout=\"columns\"\n image-pos=\"right\"\n background-color=\"#F9F9F9\"\n >\n </sqm-hero-image>\n </sqm-portal-container>\n <sqm-portal-container\n direction=\"column\"\n padding=\"none\"\n gap=\"xxx-large\"\n max-width=\"770px\"\n center\n display=\"grid\"\n >\n <sqm-stat-container space=\"xxx-large\" display=\"flex\">\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/referralsCount\"\n >\n <p>Referrals</p>\n </sqm-big-stat>\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/integrationRewardsCountFiltered/AVAILABLE/global\"\n >\n <p>Giftcards</p>\n </sqm-big-stat>\n </sqm-stat-container>\n <sqp-account-details\n schedule-header-text=\"Schedule\"\n integration-alert-text=\"Looks like this feature is turned off at the moment. Come back later to see if it’s enabled. \"\n integration-alert-header=\"PayPal payouts are currently disabled\"\n details-header-text=\"Payout details\"\n pay-pal-account-header-text=\"PayPal account\"\n connect-pay-pal-description-text=\"Connect your PayPal account to automatically receive payments/cash rewards.\"\n connect-pay-pal-account-button-text=\"Connect account\"\n w-9-tax-label=\"Awaiting W-9 tax form\"\n upcoming-payment-label=\"Upcoming\"\n recent-payment-label=\"Recent payment\"\n other-currencies-label=\"other currencies\"\n next-payout-label=\"Next payout\"\n next-payment-label=\"Next payment\"\n header-text=\"PayPal account\"\n edit-text=\"Edit\"\n account-label=\"Account\"\n success-message=\"Success!\"\n submit-pay-pal-account-button-text=\"Connect account\"\n pay-pal-email-label-help-text=\"Enter the email used for your PayPal account.\"\n pay-pal-email-label=\"PayPal email\"\n modal-connect-pay-pal-account-header=\"Connect PayPal account\"\n disconnect-account-header-text=\"Disconnect account\"\n disconnect-account-description-text=\"You will not be able to receive payments if you disconnect your PayPal account.\"\n ></sqp-account-details>\n <sqm-portal-container\n gap=\"large\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <sqm-titled-section\n text-align=\"center\"\n label-margin=\"xxx-small\"\n padding=\"none\"\n >\n <h3 slot=\"label\">Get rewarded when your friend uses our product</h3>\n </sqm-titled-section>\n <sqm-referral-card vertical-alignment=\"start\">\n <sqm-portal-container\n gap=\"large\"\n slot=\"left\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <p>\n They’ll get a $50 credit towards a new account and you’ll get:\n </p>\n <sqm-timeline icon=\"circle\">\n <sqm-timeline-entry\n reward=\"$50\"\n unit=\"visa giftcard\"\n desc=\"Your friend purchases a Business plan\"\n icon=\"circle\"\n >\n </sqm-timeline-entry>\n <sqm-timeline-entry\n reward=\"$200\"\n unit=\"visa giftcard\"\n desc=\"Our sales team qualifies your friend as a good fit for our Enterprise plan\"\n icon=\"circle\"\n >\n </sqm-timeline-entry>\n <sqm-timeline-entry\n reward=\"$1000\"\n unit=\"visa giftcard\"\n desc=\"Your friend purchases an Enterprise plan\"\n icon=\"circle\"\n >\n </sqm-timeline-entry>\n </sqm-timeline>\n </sqm-portal-container>\n <sqm-portal-container\n gap=\"large\"\n slot=\"right\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <p>>Choose how you want to share</p>\n <p><sub>Your unique referral link:</sub></p>\n <sqm-share-link\n tooltip-text=\"Copied to Clipboard\"\n tooltip-lifespan=\"1000\"\n >\n </sqm-share-link>\n <sqm-portal-container\n gap=\"x-small\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <sqm-share-button\n medium=\"email\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Share via email\n </sqm-share-button>\n <sqm-share-button\n medium=\"linkedin\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Share on LinkedIn\n </sqm-share-button>\n <sqm-share-button\n medium=\"twitter\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Tweet about us\n </sqm-share-button>\n </sqm-portal-container>\n </sqm-portal-container>\n </sqm-referral-card>\n </sqm-portal-container>\n <sqm-portal-container\n gap=\"large\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <sqm-titled-section\n padding=\"none\"\n text-align=\"center\"\n label-margin=\"xx-small\"\n >\n <h3 slot=\"label\">Referral History</h3>\n </sqm-titled-section>\n <sqm-referral-table\n per-page=\"4\"\n hidden-columns=\"2\"\n more-label=\"Next\"\n prev-label=\"Prev\"\n sm-breakpoint=\"599\"\n md-breakpoint=\"799\"\n >\n <sqm-referral-table-user-column\n column-title=\"User\"\n anonymous-user=\"Anonymous User\"\n deleted-user=\"Deleted User\"\n >\n </sqm-referral-table-user-column>\n <sqm-referral-table-status-column\n column-title=\"Referral status\"\n converted-status-text=\"Converted\"\n in-progress-status-text=\"In Progress\"\n >\n </sqm-referral-table-status-column>\n <sqp-rewards-column\n column-title=\"Rewards\"\n expiring-text=\"Expiring in\"\n fuel-tank-text=\"Your code is\"\n pending-for-text=\"{status} for {date}\"\n reward-blocked-text=\"Payout blocked on {date}.\"\n reward-on-hold-text=\"Payout on hold and in review since {date}.\"\n reward-paid-out-text=\"Paid out on {date}.\"\n reward-payout-failed-text=\"This payout will be retried up to 3 times. If it still fails it will be retried in the next payout cycle. Last attempted on {date}.\"\n reward-payout-in-progress-text=\"Payout processing started on {date}.\"\n reward-received-text=\"Reward received on\"\n reward-refunded-text=\"Payout refunded on {date}.\"\n reward-returned-text=\"The email you provided does not link to an existing PayPal account. Payout expired on {date}.\"\n reward-reversed-text=\"Payout reversed on {date}.\"\n reward-unclaimed-text=\"The email you provided does not link to an existing PayPal account. Payout expires on {date}.\"\n status-long-text=\"{status, select, INPROGRESS {In Progress} TRANSFERRED {Transferred} AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} REDEEMED {Redeemed on} PENDING {Available on} EXPIRED {Reward expired on} SUCCESS {Paid out on} FAILED {This payout will be retried up to 3 times. If it still fails it will be retried in the next payout cycle. Last attempted on} PAYPAL_PENDING {Payout process started on} UNCLAIMED {The email you provided does not link to an existing PayPal account. Payout expires on} ONHOLD {Payout on hold and in review since} REFUNDED {Payout refunded on} RETURNED {Payout returned on} REVERSED {Payout reversed on} BLOCKED {Payout blocked on} other {Not available} }\"\n status-text=\"{status, select, AVAILABLE {Available} CANCELLED {Cancelled} EXPIRED {Expired} REDEEMED {Redeemed} PENDING {Pending} SUCCESS {Paid Out} FAILED {Failed} PAYPAL_PENDING {In progress} UNCLAIMED {Unclaimed} ONHOLD {In progress} REFUNDED {Refunded} RETURNED {Returned} REVERSED {Reversed} BLOCKED {Blocked} other {Not available} }\"\n ></sqp-rewards-column>\n <sqm-referral-table-date-column\n column-title=\"Date referred\"\n date-shown=\"dateReferralStarted\"\n >\n </sqm-referral-table-date-column>\n <sqm-empty\n slot=\"empty\"\n empty-state-image=\"https://res.cloudinary.com/saasquatch/image/upload/v1644000223/squatch-assets/empty_referral2.png\"\n empty-state-header=\"View your referral details\"\n empty-state-text=\"Refer a friend to view the status of your referrals and rewards earned\"\n ></sqm-empty>\n </sqm-referral-table>\n </sqm-portal-container>\n <sqm-portal-footer\n support-email=\"support@example.com\"\n terms-link=\"https:\\/\\/example.com\"\n faq-link=\"https:\\/\\/example.com\"\n terms-text=\"Terms And Conditions\"\n faq-text=\"FAQ\"\n show-powered-by=\"true\"\n padding-bottom=\"none\"\n padding-left=\"none\"\n padding-right=\"none\"\n padding-top=\"none\"\n ></sqm-portal-footer>\n </sqm-portal-container>\n </sqm-portal-container>\n</sqm-brand>\n";
3918
3898
 
3919
- const resetPasswordEmailTemplate = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional //EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n\n<html\n xmlns=\"http://www.w3.org/1999/xhtml\"\n xmlns:o=\"urn:schemas-microsoft-com:office:office\"\n xmlns:v=\"urn:schemas-microsoft-com:vml\"\n>\n <head>\n <!--[if gte mso 9\n ]><xml\n ><o:OfficeDocumentSettings\n ><o:AllowPNG /><o:PixelsPerInch\n >96</o:PixelsPerInch\n ></o:OfficeDocumentSettings\n ></xml\n ><!\n [endif]-->\n <meta content=\"text/html; charset=utf-8\" http-equiv=\"Content-Type\" />\n <meta content=\"width=device-width\" name=\"viewport\" />\n <!--[if !mso]><!-->\n <meta content=\"IE=edge\" http-equiv=\"X-UA-Compatible\" />\n <!--<![endif]-->\n <title></title>\n <!--[if !mso]><!-->\n <!--<![endif]-->\n <style type=\"text/css\">\n body {\n margin: 0;\n padding: 0;\n }\n\n table,\n td,\n tr {\n vertical-align: top;\n border-collapse: collapse;\n }\n\n * {\n line-height: inherit;\n }\n\n a[x-apple-data-detectors=\"true\"] {\n color: inherit !important;\n text-decoration: none !important;\n }\n </style>\n <style id=\"media-query\" type=\"text/css\">\n @media (max-width: 520px) {\n .block-grid,\n .col {\n min-width: 320px !important;\n max-width: 100% !important;\n display: block !important;\n }\n\n .block-grid {\n width: 100% !important;\n }\n\n .col {\n width: 100% !important;\n }\n\n .col_cont {\n margin: 0 auto;\n }\n\n img.fullwidth,\n img.fullwidthOnMobile {\n max-width: 100% !important;\n }\n\n .no-stack .col {\n min-width: 0 !important;\n display: table-cell !important;\n }\n\n .no-stack.two-up .col {\n width: 50% !important;\n }\n\n .no-stack .col.num2 {\n width: 16.6% !important;\n }\n\n .no-stack .col.num3 {\n width: 25% !important;\n }\n\n .no-stack .col.num4 {\n width: 33% !important;\n }\n\n .no-stack .col.num5 {\n width: 41.6% !important;\n }\n\n .no-stack .col.num6 {\n width: 50% !important;\n }\n\n .no-stack .col.num7 {\n width: 58.3% !important;\n }\n\n .no-stack .col.num8 {\n width: 66.6% !important;\n }\n\n .no-stack .col.num9 {\n width: 75% !important;\n }\n\n .no-stack .col.num10 {\n width: 83.3% !important;\n }\n\n .video-block {\n max-width: none !important;\n }\n\n .mobile_hide {\n min-height: 0px;\n max-height: 0px;\n max-width: 0px;\n display: none;\n overflow: hidden;\n font-size: 0px;\n }\n\n .desktop_hide {\n display: block !important;\n max-height: none !important;\n }\n }\n </style>\n <style id=\"icon-media-query\" type=\"text/css\">\n @media (max-width: 520px) {\n .icons-inner {\n text-align: center;\n }\n\n .icons-inner td {\n margin: 0 auto;\n }\n }\n </style>\n </head>\n <body\n class=\"clean-body\"\n style=\"\n margin: 0;\n padding: 0;\n -webkit-text-size-adjust: 100%;\n background-color: #ffffff;\n \"\n >\n <!--[if IE]><div class=\"ie-browser\"><![endif]-->\n <table\n bgcolor=\"#FFFFFF\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n class=\"nl-container\"\n role=\"presentation\"\n style=\"\n table-layout: fixed;\n vertical-align: top;\n min-width: 320px;\n border-spacing: 0;\n border-collapse: collapse;\n mso-table-lspace: 0pt;\n mso-table-rspace: 0pt;\n background-color: #ffffff;\n width: 100%;\n \"\n valign=\"top\"\n width=\"100%\"\n >\n <tbody>\n <tr style=\"vertical-align: top\" valign=\"top\">\n <td style=\"word-break: break-word; vertical-align: top\" valign=\"top\">\n <!--[if (mso)|(IE)]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td align=\"center\" style=\"background-color:#FFFFFF\"><![endif]-->\n <div style=\"background-color: transparent\">\n <div\n class=\"block-grid\"\n style=\"\n min-width: 320px;\n max-width: 500px;\n overflow-wrap: break-word;\n word-wrap: break-word;\n word-break: break-word;\n margin: 0 auto;\n background-color: transparent;\n \"\n >\n <div\n style=\"\n border-collapse: collapse;\n display: table;\n width: 100%;\n background-color: transparent;\n \"\n >\n <!--[if (mso)|(IE)]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"background-color:transparent;\"><tr><td align=\"center\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"width:500px\"><tr class=\"layout-full-width\" style=\"background-color:transparent\"><![endif]-->\n <!--[if (mso)|(IE)]><td align=\"center\" width=\"500\" style=\"background-color:transparent;width:500px; border-top: 0px solid transparent; border-left: 0px solid transparent; border-bottom: 0px solid transparent; border-right: 0px solid transparent;\" valign=\"top\"><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td style=\"padding-right: 0px; padding-left: 0px; padding-top:5px; padding-bottom:5px;\"><![endif]-->\n <div\n class=\"col num12\"\n style=\"\n min-width: 320px;\n max-width: 500px;\n display: table-cell;\n vertical-align: top;\n width: 500px;\n \"\n >\n <div class=\"col_cont\" style=\"width: 100% !important\">\n <!--[if (!mso)&(!IE)]><!-->\n <div\n style=\"\n border-top: 0px solid transparent;\n border-left: 0px solid transparent;\n border-bottom: 0px solid transparent;\n border-right: 0px solid transparent;\n padding-top: 5px;\n padding-bottom: 5px;\n padding-right: 0px;\n padding-left: 0px;\n \"\n >\n <!--<![endif]-->\n <table\n cellpadding=\"0\"\n cellspacing=\"0\"\n role=\"presentation\"\n style=\"\n table-layout: fixed;\n vertical-align: top;\n border-spacing: 0;\n border-collapse: collapse;\n mso-table-lspace: 0pt;\n mso-table-rspace: 0pt;\n \"\n valign=\"top\"\n width=\"100%\"\n >\n <tr style=\"vertical-align: top\" valign=\"top\">\n <td\n align=\"center\"\n style=\"\n word-break: break-word;\n vertical-align: top;\n padding-bottom: 20px;\n padding-left: 10px;\n padding-right: 10px;\n padding-top: 10px;\n text-align: center;\n width: 100%;\n \"\n valign=\"top\"\n width=\"100%\"\n >\n <h1\n style=\"\n color: #444445;\n direction: ltr;\n font-family: 'Helvetica Neue', Helvetica,\n Arial, sans-serif;\n font-size: 20px;\n font-weight: normal;\n letter-spacing: normal;\n line-height: 120%;\n text-align: left;\n margin-top: 0;\n margin-bottom: 0;\n \"\n >\n <strong>Reset your password</strong>\n </h1>\n </td>\n </tr>\n </table>\n <!--[if mso]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td style=\"padding-right: 10px; padding-left: 10px; padding-top: 10px; padding-bottom: 10px; font-family: Arial, sans-serif\"><![endif]-->\n <div\n style=\"\n color: #444445;\n font-family: Arial, Helvetica Neue, Helvetica,\n sans-serif;\n line-height: 1.8;\n padding-top: 10px;\n padding-right: 10px;\n padding-bottom: 10px;\n padding-left: 10px;\n \"\n >\n <div\n class=\"txtTinyMce-wrapper\"\n style=\"\n font-size: 14px;\n line-height: 1.8;\n color: #444445;\n font-family: Arial, Helvetica Neue, Helvetica,\n sans-serif;\n mso-line-height-alt: 25px;\n \"\n >\n <p\n style=\"\n margin: 0;\n font-size: 14px;\n line-height: 1.8;\n word-break: break-word;\n mso-line-height-alt: 25px;\n margin-top: 0;\n margin-bottom: 0;\n \"\n >\n <span style=\"font-size: 14px\"\n >We received a request to reset your password.\n Click the button below to reset your\n password.</span\n >\n </p>\n </div>\n </div>\n <div\n align=\"center\"\n class=\"button-container\"\n style=\"\n padding-top: 10px;\n padding-right: 10px;\n padding-bottom: 10px;\n padding-left: 10px;\n \"\n >\n <!--[if mso]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"border-spacing: 0; border-collapse: collapse; mso-table-lspace:0pt; mso-table-rspace:0pt;\"><tr><td style=\"padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px\" align=\"center\"><v:roundrect xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:w=\"urn:schemas-microsoft-com:office:word\" target=\"_blank\" href={{validationLink}} style=\"height:31.5pt;width:390pt;v-text-anchor:middle;\" arcsize=\"12%\" stroke=\"false\" fillcolor=\"#2270ee\"><w:anchorlock/><v:textbox inset=\"0,0,0,0\"><center style=\"color:#ffffff; font-family:Arial, sans-serif; font-size:14px\"><!\n [endif]--><a\n href=\"{{validationLink}}\"\n target=\"_blank\"\n style=\"\n -webkit-text-size-adjust: none;\n text-decoration: none;\n display: block;\n color: #ffffff;\n background-color: #2270ee;\n border-radius: 5px;\n -webkit-border-radius: 5px;\n -moz-border-radius: 5px;\n width: 100%;\n width: calc(100% - 2px);\n border-top: 1px solid #2270ee;\n border-right: 1px solid #2270ee;\n border-bottom: 1px solid #2270ee;\n border-left: 1px solid #2270ee;\n padding-top: 5px;\n padding-bottom: 5px;\n font-family: 'Helvetica Neue', Helvetica, Arial,\n sans-serif;\n text-align: center;\n mso-border-alt: none;\n word-break: keep-all;\n \"\n target=\"_blank\"\n ><span\n style=\"\n padding-left: 20px;\n padding-right: 20px;\n font-size: 14px;\n display: inline-block;\n letter-spacing: undefined;\n \"\n ><span\n style=\"\n font-size: 16px;\n line-height: 2;\n word-break: break-word;\n mso-line-height-alt: 32px;\n \"\n ><span\n style=\"font-size: 14px; line-height: 28px\"\n >Reset Password</span\n ></span\n ></span\n ></a\n >\n <!--[if mso]></center></v:textbox></v:roundrect></td></tr></table><![endif]-->\n </div>\n <!--[if mso]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td style=\"padding-right: 10px; padding-left: 10px; padding-top: 15px; padding-bottom: 15px; font-family: Arial, sans-serif\"><![endif]-->\n <div\n style=\"\n color: #444445;\n font-family: Arial, Helvetica Neue, Helvetica,\n sans-serif;\n line-height: 1.2;\n padding-top: 15px;\n padding-right: 10px;\n padding-bottom: 15px;\n padding-left: 10px;\n \"\n >\n <div\n class=\"txtTinyMce-wrapper\"\n style=\"\n font-size: 14px;\n line-height: 1.2;\n color: #444445;\n font-family: Arial, Helvetica Neue, Helvetica,\n sans-serif;\n mso-line-height-alt: 17px;\n \"\n >\n <p\n style=\"\n margin: 0;\n font-size: 12px;\n line-height: 1.2;\n word-break: break-word;\n mso-line-height-alt: 14px;\n margin-top: 0;\n margin-bottom: 0;\n \"\n >\n <span style=\"font-size: 12px\"\n >If you didn't request a password reset please\n ignore this email. Your password will not\n change.</span\n >\n </p>\n </div>\n </div>\n <!--[if mso]></td></tr></table><![endif]-->\n <!--[if (!mso)&(!IE)]><!-->\n </div>\n <!--<![endif]-->\n </div>\n </div>\n <!--[if (mso)|(IE)]></td></tr></table><![endif]-->\n <!--[if (mso)|(IE)]></td></tr></table></td></tr></table><![endif]-->\n </div>\n </div>\n </div>\n <!--[if (mso)|(IE)]></td></tr></table><![endif]-->\n </td>\n </tr>\n </tbody>\n </table>\n <!--[if (IE)]></div><![endif]-->\n </body>\n</html>";
3899
+ const paypalMonoWidget = "<sqm-brand brand-color=\"#4225c4\" brand-font=\"Nunito Sans\">\n <sqm-portal-container\n direction=\"column\"\n padding=\"small\"\n gap=\"xxx-large\"\n display=\"grid\"\n max-width=\"100%\"\n background-color=\"#ffffff\"\n >\n <sqm-portal-container\n direction=\"column\"\n padding=\"none\"\n gap=\"xxx-large\"\n display=\"grid\"\n max-width=\"100%\"\n >\n <sqm-hero-image\n image-url=\"https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png\"\n header=\"MyCompany Rewards\"\n description=\"Refer friends and complete tasks to earn rewards\"\n layout=\"columns\"\n image-pos=\"right\"\n background-color=\"#F9F9F9\"\n image-mobile-pos=\"top\"\n image-percentage=\"50\"\n padding-image=\"none\"\n padding-text=\"xxxx-large\"\n >\n </sqm-hero-image>\n </sqm-portal-container>\n <sqm-portal-container\n direction=\"column\"\n padding=\"none\"\n gap=\"xxx-large\"\n max-width=\"770px\"\n center\n display=\"grid\"\n >\n <sqm-stat-container space=\"xxx-large\" display=\"flex\">\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/referralsCount\"\n >\n <p>Referrals</p>\n </sqm-big-stat>\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/integrationRewardsCountFiltered/AVAILABLE/global\"\n >\n <p>Giftcards Earned</p>\n </sqm-big-stat>\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardBalance/CREDIT/POINT/value/global\"\n >\n <p>Points Balance</p>\n </sqm-big-stat>\n </sqm-stat-container>\n <sqp-account-details\n schedule-header-text=\"Schedule\"\n integration-alert-text=\"Looks like this feature is turned off at the moment. Come back later to see if it’s enabled. \"\n integration-alert-header=\"PayPal payouts are currently disabled\"\n details-header-text=\"Payout details\"\n pay-pal-account-header-text=\"PayPal account\"\n connect-pay-pal-description-text=\"Connect your PayPal account to automatically receive payments/cash rewards.\"\n connect-pay-pal-account-button-text=\"Connect account\"\n w-9-tax-label=\"Awaiting W-9 tax form\"\n upcoming-payment-label=\"Upcoming\"\n recent-payment-label=\"Recent payment\"\n other-currencies-label=\"other currencies\"\n next-payout-label=\"Next payout\"\n next-payment-label=\"Next payment\"\n header-text=\"PayPal account\"\n edit-text=\"Edit\"\n account-label=\"Account\"\n success-message=\"Success!\"\n submit-pay-pal-account-button-text=\"Connect account\"\n pay-pal-email-label-help-text=\"Enter the email used for your PayPal account.\"\n pay-pal-email-label=\"PayPal email\"\n modal-connect-pay-pal-account-header=\"Connect PayPal account\"\n disconnect-account-header-text=\"Disconnect account\"\n disconnect-account-description-text=\"You will not be able to receive payments if you disconnect your PayPal account.\"\n ></sqp-account-details>\n <sqm-portal-container\n gap=\"xx-large\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <sqm-titled-section\n text-align=\"center\"\n label-margin=\"xxx-small\"\n padding=\"none\"\n >\n <h3 slot=\"label\">Share $50 with friends</h3>\n <p slot=\"content\">\n They’ll get a $50 credit towards a new account and you’ll get up to\n $1200\n </p>\n </sqm-titled-section>\n <sqm-referral-card vertical-alignment=\"start\">\n <sqm-portal-container\n gap=\"large\"\n slot=\"left\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <p>\n They’ll get a $50 credit towards a new account and you’ll get:\n </p>\n <sqm-timeline icon=\"circle\">\n <sqm-timeline-entry\n reward=\"$50\"\n unit=\"visa giftcard\"\n desc=\"Your friend purchases a Business plan\"\n icon=\"circle\"\n >\n </sqm-timeline-entry>\n <sqm-timeline-entry\n reward=\"$200\"\n unit=\"visa giftcard\"\n desc=\"Our sales team qualifies your friend as a good fit for our Enterprise plan\"\n icon=\"circle\"\n >\n </sqm-timeline-entry>\n <sqm-timeline-entry\n reward=\"$1000\"\n unit=\"visa giftcard\"\n desc=\"Your friend purchases an Enterprise plan\"\n icon=\"circle\"\n >\n </sqm-timeline-entry>\n </sqm-timeline>\n </sqm-portal-container>\n <sqm-portal-container\n gap=\"large\"\n slot=\"right\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <p>Choose how you want to share:</p>\n <p><sub>Your unique referral link:</sub></p>\n <sqm-share-link\n tooltip-text=\"Copied to Clipboard\"\n tooltip-lifespan=\"1000\"\n >\n </sqm-share-link>\n <sqm-portal-container\n gap=\"x-small\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <sqm-share-button\n medium=\"email\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Share via email\n </sqm-share-button>\n <sqm-share-button\n medium=\"linkedin\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Share on LinkedIn\n </sqm-share-button>\n <sqm-share-button\n medium=\"twitter\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Tweet about us\n </sqm-share-button>\n </sqm-portal-container>\n </sqm-portal-container>\n </sqm-referral-card>\n <sqm-portal-container\n gap=\"xx-large\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n min-width=\"\"\n padding=\"none\"\n >\n <sqm-titled-section text-align=\"center\" label-margin=\"xxx-small\">\n <h3 slot=\"label\">Earn more rewards</h3>\n <p slot=\"content\">\n Get points while using our product. Use those points to redeem\n rewards like one free month of Enterprise or two plane tickets to\n anywhere in North America\n </p>\n </sqm-titled-section>\n <sqm-card-feed gap=\"24\" width=\"347\">\n <sqm-task-card\n reward-amount=\"20\"\n goal=\"1\"\n card-title=\"Complete a Survey\"\n description=\"Fill out our NPS survey and get 20 points for giving us honest feedback.\"\n button-text=\"Take survey\"\n reward-unit=\"Points\"\n completed-text=\"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\"\n ended-message=\"Ended {endDate}\"\n expiry-message=\"Ends {endDate}\"\n finite=\"0\"\n starts-on-message=\"Starts {startDate}\"\n >\n </sqm-task-card>\n <sqm-task-card\n reward-amount=\"250\"\n goal=\"500\"\n show-progress-bar\n card-title=\"Spend $500\"\n description=\"Earn 250 points when you spend $500 or more.\"\n button-text=\"See plans\"\n completed-text=\"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\"\n ended-message=\"Ended {endDate}\"\n expiry-message=\"Ends {endDate}\"\n progress-bar-unit=\"$\"\n finite=\"0\"\n reward-unit=\"Points\"\n starts-on-message=\"Starts {startDate}\"\n >\n </sqm-task-card>\n <sqm-task-card\n goal=\"1\"\n reward-amount=\"50\"\n card-title=\"Follow Us on Twitter\"\n description=\"Earn 50 points when you follow us on Twitter!\"\n button-text=\"Follow\"\n button-link=\"https://twitter.com/\"\n open-new-tab=\"true\"\n event-key=\"socialFollow\"\n completed-text=\"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\"\n ended-message=\"Ended {endDate}\"\n expiry-message=\"Ends {endDate}\"\n finite=\"0\"\n reward-unit=\"Points\"\n starts-on-message=\"Starts {startDate}\"\n >\n </sqm-task-card>\n <sqm-task-card\n reward-amount=\"1\"\n reward-unit=\"Free Month\"\n goal=\"1\"\n card-title=\"Upgrade Your Plan\"\n description=\"Receive one free month for being a committed customer when you upgrade your plan.\"\n button-text=\"Upgrade\"\n completed-text=\"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\"\n ended-message=\"Ended {endDate}\"\n expiry-message=\"Ends {endDate}\"\n open-new-tab=\"false\"\n finite=\"0\"\n starts-on-message=\"Starts {startDate}\"\n >\n </sqm-task-card>\n </sqm-card-feed>\n </sqm-portal-container>\n <sqm-tabs>\n <sqm-tab header=\"Referral history\">\n <sqm-referral-table\n per-page=\"4\"\n hidden-columns=\"2\"\n more-label=\"Next\"\n prev-label=\"Prev\"\n sm-breakpoint=\"599\"\n md-breakpoint=\"799\"\n >\n <sqm-referral-table-user-column\n column-title=\"User\"\n anonymous-user=\"Anonymous User\"\n deleted-user=\"Deleted User\"\n >\n </sqm-referral-table-user-column>\n <sqm-referral-table-status-column\n column-title=\"Referral status\"\n converted-status-text=\"Converted\"\n in-progress-status-text=\"In Progress\"\n >\n </sqm-referral-table-status-column>\n <sqp-rewards-column\n column-title=\"Rewards\"\n expiring-text=\"Expiring in\"\n fuel-tank-text=\"Your code is\"\n pending-for-text=\"{status} for {date}\"\n reward-blocked-text=\"Payout blocked on {date}.\"\n reward-on-hold-text=\"Payout on hold and in review since {date}.\"\n reward-paid-out-text=\"Paid out on {date}.\"\n reward-payout-failed-text=\"This payout will be retried up to 3 times. If it still fails it will be retried in the next payout cycle. Last attempted on {date}.\"\n reward-payout-in-progress-text=\"Payout processing started on {date}.\"\n reward-received-text=\"Reward received on\"\n reward-refunded-text=\"Payout refunded on {date}.\"\n reward-returned-text=\"The email you provided does not link to an existing PayPal account. Payout expired on {date}.\"\n reward-reversed-text=\"Payout reversed on {date}.\"\n reward-unclaimed-text=\"The email you provided does not link to an existing PayPal account. Payout expires on {date}.\"\n status-long-text=\"{status, select, INPROGRESS {In Progress} TRANSFERRED {Transferred} AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} REDEEMED {Redeemed on} PENDING {Available on} EXPIRED {Reward expired on} SUCCESS {Paid out on} FAILED {This payout will be retried up to 3 times. If it still fails it will be retried in the next payout cycle. Last attempted on} PAYPAL_PENDING {Payout process started on} UNCLAIMED {The email you provided does not link to an existing PayPal account. Payout expires on} ONHOLD {Payout on hold and in review since} REFUNDED {Payout refunded on} RETURNED {Payout returned on} REVERSED {Payout reversed on} BLOCKED {Payout blocked on} other {Not available} }\"\n status-text=\"{status, select, AVAILABLE {Available} CANCELLED {Cancelled} EXPIRED {Expired} REDEEMED {Redeemed} PENDING {Pending} SUCCESS {Paid Out} FAILED {Failed} PAYPAL_PENDING {In progress} UNCLAIMED {Unclaimed} ONHOLD {In progress} REFUNDED {Refunded} RETURNED {Returned} REVERSED {Reversed} BLOCKED {Blocked} other {Not available} }\"\n ></sqp-rewards-column>\n <sqm-referral-table-date-column\n column-title=\"Date referred\"\n date-shown=\"dateReferralStarted\"\n >\n </sqm-referral-table-date-column>\n <sqm-empty\n slot=\"empty\"\n empty-state-image=\"https://res.cloudinary.com/saasquatch/image/upload/v1644000223/squatch-assets/empty_referral2.png\"\n empty-state-header=\"View your referral details\"\n empty-state-text=\"Refer a friend to view the status of your referrals and rewards earned\"\n >\n </sqm-empty>\n </sqm-referral-table>\n </sqm-tab>\n <sqm-tab header=\"Reward history\">\n <sqm-rewards-table\n per-page=\"4\"\n program-id=\"\"\n hidden-columns=\"0\"\n more-label=\"Next\"\n prev-label=\"Prev\"\n sm-breakpoint=\"599\"\n md-breakpoint=\"799\"\n >\n <sqm-rewards-table-reward-column\n available-text=\"{availableAmount} remaining\"\n column-title=\"Reward\"\n copy-text=\"Copied!\"\n redeemed-text=\"{redeemedAmount} redeemed\"\n >\n </sqm-rewards-table-reward-column>\n <sqm-rewards-table-source-column\n anonymous-user=\"Anonymous User\"\n column-title=\"Source\"\n deleted-user=\"Deleted User\"\n referral-text=\"{rewardSource, select, FRIEND_SIGNUP {Referral to} REFERRED {Referred by} other {}}\"\n reward-exchange-text=\"Reward Exchange\"\n reward-source-text=\"{rewardSource, select, MANUAL {Manual} AUTOMATED {{programName}} other {}}\"\n >\n </sqm-rewards-table-source-column>\n <sqp-status-column\n column-title=\"Status\"\n expiry-text=\"Expires on \"\n pending-scheduled=\"Until\"\n pending-unhandled=\"Fulfillment error\"\n pending-us-tax=\"W-9 required\"\n reward-blocked-text=\"Payout blocked on\"\n reward-on-hold-text=\"Payout on hold and in review since\"\n reward-paid-out-text=\"Paid out on\"\n reward-payout-failed-text=\"This payout will be retried up to 3 times. If it still fails it will be retried in the next payout cycle. Last attempted on\"\n reward-payout-in-progress-text=\"Payout processing started on\"\n reward-refunded-text=\"Payout refunded on\"\n reward-returned-text=\"The email you provided does not link to an existing PayPal account. Payout expired on\"\n reward-reversed-text=\"Payout reversed on\"\n reward-unclaimed-text=\"The email you provided does not link to an existing PayPal account. Payout expires on\"\n status-text=\"{status, select, AVAILABLE {Available} CANCELLED {Cancelled} EXPIRED {Expired} REDEEMED {Redeemed} PENDING {Pending} SUCCESS {Paid Out} FAILED {Failed} PAYPAL_PENDING {In progress} UNCLAIMED {Unclaimed} ONHOLD {In progress} REFUNDED {Refunded} RETURNED {Returned} REVERSED {Reversed} BLOCKED {Blocked} other {Not available} }\"\n ></sqp-status-column>\n <sqm-rewards-table-date-column\n column-title=\"Date received\"\n date-shown=\"dateGiven\"\n >\n </sqm-rewards-table-date-column>\n <sqm-empty\n slot=\"empty\"\n empty-state-image=\"https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_reward2.png\"\n empty-state-header=\"View your rewards\"\n empty-state-text=\"Refer friends and complete tasks to view the details of your rewards\"\n >\n </sqm-empty>\n </sqm-rewards-table>\n </sqm-tab>\n </sqm-tabs>\n </sqm-portal-container>\n <sqm-portal-footer\n support-email=\"support@example.com\"\n terms-link=\"https://example.com\"\n faq-link=\"https://example.com\"\n terms-text=\"Terms And Conditions\"\n faq-text=\"FAQ\"\n show-powered-by=\"true\"\n padding-bottom=\"none\"\n padding-left=\"none\"\n padding-right=\"none\"\n padding-top=\"none\"\n ></sqm-portal-footer>\n </sqm-portal-container>\n </sqm-portal-container>\n</sqm-brand>\n";
3920
3900
 
3921
- const verifyEmailTemplate = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional //EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n\n<html\n xmlns=\"http://www.w3.org/1999/xhtml\"\n xmlns:o=\"urn:schemas-microsoft-com:office:office\"\n xmlns:v=\"urn:schemas-microsoft-com:vml\"\n>\n <head>\n <!--[if gte mso 9\n ]><xml\n ><o:OfficeDocumentSettings\n ><o:AllowPNG /><o:PixelsPerInch\n >96</o:PixelsPerInch\n ></o:OfficeDocumentSettings\n ></xml\n ><!\n [endif]-->\n <meta content=\"text/html; charset=utf-8\" http-equiv=\"Content-Type\" />\n <meta content=\"width=device-width\" name=\"viewport\" />\n <!--[if !mso]><!-->\n <meta content=\"IE=edge\" http-equiv=\"X-UA-Compatible\" />\n <!--<![endif]-->\n <title></title>\n <!--[if !mso]><!-->\n <!--<![endif]-->\n <style type=\"text/css\">\n body {\n margin: 0;\n padding: 0;\n }\n\n table,\n td,\n tr {\n vertical-align: top;\n border-collapse: collapse;\n }\n\n * {\n line-height: inherit;\n }\n\n a[x-apple-data-detectors=\"true\"] {\n color: inherit !important;\n text-decoration: none !important;\n }\n </style>\n <style id=\"media-query\" type=\"text/css\">\n @media (max-width: 520px) {\n .block-grid,\n .col {\n min-width: 320px !important;\n max-width: 100% !important;\n display: block !important;\n }\n\n .block-grid {\n width: 100% !important;\n }\n\n .col {\n width: 100% !important;\n }\n\n .col_cont {\n margin: 0 auto;\n }\n\n img.fullwidth,\n img.fullwidthOnMobile {\n max-width: 100% !important;\n }\n\n .no-stack .col {\n min-width: 0 !important;\n display: table-cell !important;\n }\n\n .no-stack.two-up .col {\n width: 50% !important;\n }\n\n .no-stack .col.num2 {\n width: 16.6% !important;\n }\n\n .no-stack .col.num3 {\n width: 25% !important;\n }\n\n .no-stack .col.num4 {\n width: 33% !important;\n }\n\n .no-stack .col.num5 {\n width: 41.6% !important;\n }\n\n .no-stack .col.num6 {\n width: 50% !important;\n }\n\n .no-stack .col.num7 {\n width: 58.3% !important;\n }\n\n .no-stack .col.num8 {\n width: 66.6% !important;\n }\n\n .no-stack .col.num9 {\n width: 75% !important;\n }\n\n .no-stack .col.num10 {\n width: 83.3% !important;\n }\n\n .video-block {\n max-width: none !important;\n }\n\n .mobile_hide {\n min-height: 0px;\n max-height: 0px;\n max-width: 0px;\n display: none;\n overflow: hidden;\n font-size: 0px;\n }\n\n .desktop_hide {\n display: block !important;\n max-height: none !important;\n }\n }\n </style>\n <style id=\"icon-media-query\" type=\"text/css\">\n @media (max-width: 520px) {\n .icons-inner {\n text-align: center;\n }\n\n .icons-inner td {\n margin: 0 auto;\n }\n }\n </style>\n </head>\n <body\n class=\"clean-body\"\n style=\"\n margin: 0;\n padding: 0;\n -webkit-text-size-adjust: 100%;\n background-color: #ffffff;\n \"\n >\n <!--[if IE]><div class=\"ie-browser\"><![endif]-->\n <table\n bgcolor=\"#FFFFFF\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n class=\"nl-container\"\n role=\"presentation\"\n style=\"\n table-layout: fixed;\n vertical-align: top;\n min-width: 320px;\n border-spacing: 0;\n border-collapse: collapse;\n mso-table-lspace: 0pt;\n mso-table-rspace: 0pt;\n background-color: #ffffff;\n width: 100%;\n \"\n valign=\"top\"\n width=\"100%\"\n >\n <tbody>\n <tr style=\"vertical-align: top\" valign=\"top\">\n <td style=\"word-break: break-word; vertical-align: top\" valign=\"top\">\n <!--[if (mso)|(IE)]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td align=\"center\" style=\"background-color:#FFFFFF\"><![endif]-->\n <div style=\"background-color: transparent\">\n <div\n class=\"block-grid\"\n style=\"\n min-width: 320px;\n max-width: 500px;\n overflow-wrap: break-word;\n word-wrap: break-word;\n word-break: break-word;\n margin: 0 auto;\n background-color: transparent;\n \"\n >\n <div\n style=\"\n border-collapse: collapse;\n display: table;\n width: 100%;\n background-color: transparent;\n \"\n >\n <!--[if (mso)|(IE)]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"background-color:transparent;\"><tr><td align=\"center\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"width:500px\"><tr class=\"layout-full-width\" style=\"background-color:transparent\"><![endif]-->\n <!--[if (mso)|(IE)]><td align=\"center\" width=\"500\" style=\"background-color:transparent;width:500px; border-top: 0px solid transparent; border-left: 0px solid transparent; border-bottom: 0px solid transparent; border-right: 0px solid transparent;\" valign=\"top\"><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td style=\"padding-right: 0px; padding-left: 0px; padding-top:5px; padding-bottom:5px;\"><![endif]-->\n <div\n class=\"col num12\"\n style=\"\n min-width: 320px;\n max-width: 500px;\n display: table-cell;\n vertical-align: top;\n width: 500px;\n \"\n >\n <div class=\"col_cont\" style=\"width: 100% !important\">\n <!--[if (!mso)&(!IE)]><!-->\n <div\n style=\"\n border-top: 0px solid transparent;\n border-left: 0px solid transparent;\n border-bottom: 0px solid transparent;\n border-right: 0px solid transparent;\n padding-top: 5px;\n padding-bottom: 5px;\n padding-right: 0px;\n padding-left: 0px;\n \"\n >\n <!--<![endif]-->\n <table\n cellpadding=\"0\"\n cellspacing=\"0\"\n role=\"presentation\"\n style=\"\n table-layout: fixed;\n vertical-align: top;\n border-spacing: 0;\n border-collapse: collapse;\n mso-table-lspace: 0pt;\n mso-table-rspace: 0pt;\n \"\n valign=\"top\"\n width=\"100%\"\n >\n <tr style=\"vertical-align: top\" valign=\"top\">\n <td\n align=\"center\"\n style=\"\n word-break: break-word;\n vertical-align: top;\n padding-bottom: 20px;\n padding-left: 10px;\n padding-right: 10px;\n padding-top: 10px;\n text-align: center;\n width: 100%;\n \"\n valign=\"top\"\n width=\"100%\"\n >\n <h1\n style=\"\n color: #444445;\n direction: ltr;\n font-family: 'Helvetica Neue', Helvetica,\n Arial, sans-serif;\n font-size: 20px;\n font-weight: normal;\n letter-spacing: normal;\n line-height: 120%;\n text-align: left;\n margin-top: 0;\n margin-bottom: 0;\n \"\n >\n <strong>Verify your email address</strong>\n </h1>\n </td>\n </tr>\n </table>\n <!--[if mso]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td style=\"padding-right: 10px; padding-left: 10px; padding-top: 10px; padding-bottom: 10px; font-family: Arial, sans-serif\"><![endif]-->\n <div\n style=\"\n color: #444445;\n font-family: Arial, Helvetica Neue, Helvetica,\n sans-serif;\n line-height: 1.8;\n padding-top: 10px;\n padding-right: 10px;\n padding-bottom: 10px;\n padding-left: 10px;\n \"\n >\n <div\n class=\"txtTinyMce-wrapper\"\n style=\"\n font-size: 14px;\n line-height: 1.8;\n color: #444445;\n font-family: Arial, Helvetica Neue, Helvetica,\n sans-serif;\n mso-line-height-alt: 25px;\n \"\n >\n <p\n style=\"\n margin: 0;\n font-size: 14px;\n line-height: 1.8;\n word-break: break-word;\n mso-line-height-alt: 25px;\n margin-top: 0;\n margin-bottom: 0;\n \"\n >\n <span style=\"font-size: 14px\"\n >Thank you for signing up! Please click the button below\n to verify your email address.</span\n >\n </p>\n </div>\n </div>\n <!--[if mso]></td></tr></table><![endif]-->\n <div\n align=\"center\"\n class=\"button-container\"\n style=\"\n padding-top: 10px;\n padding-right: 10px;\n padding-bottom: 10px;\n padding-left: 10px;\n \"\n >\n <!--[if mso]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"border-spacing: 0; border-collapse: collapse; mso-table-lspace:0pt; mso-table-rspace:0pt;\"><tr><td style=\"padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px\" align=\"center\"><v:roundrect xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:w=\"urn:schemas-microsoft-com:office:word\" target=\"_blank\" href={{validationLink}} style=\"height:31.5pt;width:390pt;v-text-anchor:middle;\" arcsize=\"12%\" stroke=\"false\" fillcolor=\"#2270ee\"><w:anchorlock/><v:textbox inset=\"0,0,0,0\"><center style=\"color:#ffffff; font-family:Arial, sans-serif; font-size:14px\"><!\n [endif]--><a\n href={{validationLink}}\n\t\t\t\t\t\t\ttarget=\"_blank\"\n style=\"\n -webkit-text-size-adjust: none;\n text-decoration: none;\n display: block;\n color: #ffffff;\n background-color: #2270ee;\n border-radius: 5px;\n -webkit-border-radius: 5px;\n -moz-border-radius: 5px;\n width: 100%;\n width: calc(100% - 2px);\n border-top: 1px solid #2270ee;\n border-right: 1px solid #2270ee;\n border-bottom: 1px solid #2270ee;\n border-left: 1px solid #2270ee;\n padding-top: 5px;\n padding-bottom: 5px;\n font-family: 'Helvetica Neue', Helvetica, Arial,\n sans-serif;\n text-align: center;\n mso-border-alt: none;\n word-break: keep-all;\n \"\n target=\"_blank\"\n ><span\n style=\"\n padding-left: 20px;\n padding-right: 20px;\n font-size: 14px;\n display: inline-block;\n letter-spacing: undefined;\n \"\n ><span\n style=\"\n font-size: 16px;\n line-height: 2;\n word-break: break-word;\n mso-line-height-alt: 32px;\n \"\n ><span\n style=\"font-size: 14px; line-height: 28px\"\n >Verify Email</span\n ></span\n ></span\n ></a\n >\n <!--[if mso]></center></v:textbox></v:roundrect></td></tr></table><![endif]-->\n </div>\n <!--<![endif]-->\n </div>\n </div>\n <!--[if (mso)|(IE)]></td></tr></table><![endif]-->\n <!--[if (mso)|(IE)]></td></tr></table></td></tr></table><![endif]-->\n </div>\n </div>\n </div>\n <!--[if (mso)|(IE)]></td></tr></table><![endif]-->\n </td>\n </tr>\n </tbody>\n </table>\n <!--[if (IE)]></div><![endif]-->\n </body>\n</html>";
3922
-
3923
- const loginTemplate = "<sqm-hero background=\"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80\">\n <sqm-portal-login></sqm-portal-login>\n</sqm-hero>\n";
3924
-
3925
- const registerTemplate = "<sqm-hero\n background=\"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80\"\n>\n <sqm-portal-register>\n <sqm-name-fields slot=\"formData\"></sqm-name-fields>\n </sqm-portal-register>\n</sqm-hero>\n";
3926
-
3927
- const forgotPasswordTemplate = "<sqm-hero background=\"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80\">\n <sqm-portal-forgot-password\n email-label=\"Business Email\"\n ></sqm-portal-forgot-password>\n</sqm-hero>\n";
3928
-
3929
- const resetPasswordTemplate = "<sqm-portal-reset-password confirm-password=\"true\"></sqm-portal-reset-password>\n";
3930
-
3931
- const emailVerifiedTemplate = "<sqm-portal-verify-email></sqm-portal-verify-email>\n";
3932
-
3933
- const emailVerificationTemplate = "<sqm-portal-protected-route redirect-to=\"/login\"></sqm-portal-protected-route>\n<sqm-portal-email-verification></sqm-portal-email-verification>\n";
3901
+ function Buttons({ callbacks, states, template }) {
3902
+ return (h("div", null,
3903
+ h("button", { onClick: () => callbacks.setPreviewTemplate(states.editedTemplate) }, "Update Preview"),
3904
+ h("button", { style: { marginLeft: "10px" }, onClick: () => callbacks.setPreviewTemplate(template) }, "Preview Dashboard")));
3905
+ }
3906
+ function DefaultTemplateView(props) {
3907
+ const { states, callbacks } = props;
3908
+ return (h("div", { style: { height: "50vh" } },
3909
+ h("textarea", { style: { width: "100%", height: "300px" }, onChange: (e) => callbacks.setEditedTemplate(e.target.value) }, states.editedTemplate),
3910
+ h(Buttons, { states: states, callbacks: callbacks, template: props.template }),
3911
+ h("h2", null, "Navigation"),
3912
+ h("div", { style: {
3913
+ display: "grid",
3914
+ gridTemplateColumns: "repeat(9, 80px)",
3915
+ gridGap: "10px",
3916
+ } },
3917
+ h("button", { onClick: () => pn.push("/") }, "Dashboard"),
3918
+ props.leadSubmit && (h("button", { onClick: () => pn.push("/refer") }, "Submit a Referral")),
3919
+ h("button", { onClick: () => pn.push("/activity") }, "Activity"),
3920
+ h("button", { onClick: () => pn.push("/editProfile") }, "Edit Profile"),
3921
+ h("button", { onClick: () => pn.push("/login") }, "Login"),
3922
+ h("button", { onClick: () => pn.push("/register") }, "Register"),
3923
+ h("button", { onClick: () => pn.push("/emailVerification") }, "Email Verification"),
3924
+ h("button", { onClick: () => pn.push("/verifyEmail") }, "Verify Email"),
3925
+ h("button", { onClick: () => pn.push("/forgotPassword") }, "Forgot Password"),
3926
+ h("button", { onClick: () => pn.push("/resetPassword") }, "Reset Password")),
3927
+ h("br", null),
3928
+ h("div", { innerHTML: states.previewTemplate })));
3929
+ }
3934
3930
 
3935
3931
  var marked = createCommonjsModule(function (module, exports) {
3936
3932
  /**
@@ -6902,33 +6898,6 @@ var marked = createCommonjsModule(function (module, exports) {
6902
6898
  })));
6903
6899
  });
6904
6900
 
6905
- const LoginReadme = "# sqm-portal-login\n\n\n\n<!-- Auto Generated Below -->\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| --------------------- | ----------------------- | ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- |\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` |\n| `emailLabel` | `email-label` | | `string` | `\"Email\"` |\n| `forgotPasswordLabel` | `forgot-password-label` | | `string` | `\"Forgot Password?\"` |\n| `forgotPasswordPath` | `forgot-password-path` | Redirect participants to this page to reset their password | `string` | `\"/forgotPassword\"` |\n| `nextPage` | `next-page` | Redirect participants to this page after they successfully login. | `string` | `\"/\"` |\n| `pageLabel` | `page-label` | | `string` | `\"Sign in to your account\"` |\n| `passwordLabel` | `password-label` | | `string` | `\"Password\"` |\n| `registerLabel` | `register-label` | | `string` | `\"Register\"` |\n| `registerPath` | `register-path` | Redirect participants to this page to start registration. | `string` | `\"/register\"` |\n| `submitLabel` | `submit-label` | | `string` | `\"Sign In\"` |\n\n\n## Dependencies\n\n### Used by\n\n - [sqm-stencilbook](../sqm-stencilbook)\n\n### Depends on\n\n- [sqm-form-message](../sqm-form-message)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-portal-login --> sqm-form-message\n sqm-stencilbook --> sqm-portal-login\n style sqm-portal-login fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n";
6906
-
6907
- const ReferralIframeReadme = "# sqm-referral-iframe\n\n\n\n<!-- Auto Generated Below -->\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| -------------- | --------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | ----------- |\n| `demoData` | -- | | `{ states?: { content: { iframeSrc: string; iframeHeight: string; iframeWidth: string; }; }; data?: { shareCode: string; }; }` | `undefined` |\n| `iframeHeight` | `iframe-height` | Define the height of the iframe with any valid CSS height value. Example: 100px, 5rem, or auto. | `string` | `\"100%\"` |\n| `iframeSrc` | `iframe-src` | URL of iframe to display | `string` | `undefined` |\n| `iframeWidth` | `iframe-width` | Define the width of the iframe with any valid CSS width value. Example: 100px, 5rem, or auto. | `string` | `\"100%\"` |\n\n\n## Dependencies\n\n### Used by\n\n - [sqm-stencilbook](../sqm-stencilbook)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-stencilbook --> sqm-referral-iframe\n style sqm-referral-iframe fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n";
6908
-
6909
- const ForgotPasswordReadme = "# sqm-portal-forgot-password\n\n\n\n<!-- Auto Generated Below -->\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| -------------- | --------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ |\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; success: boolean; loginPath: string; }; content?: { secondaryButton: any; messageSlot: any; emailLabel?: string; submitLabel?: string; }; }` | `undefined` |\n| `emailLabel` | `email-label` | | `string` | `\"Email\"` |\n| `headerText` | `header-text` | | `string` | `\"Enter your email below to receive a password reset link.\"` |\n| `loginPath` | `login-path` | | `string` | `\"/login\"` |\n| `loginText` | `login-text` | Sign In Link Text | `string` | `\"Sign In\"` |\n| `redirectPath` | `redirect-path` | Redirect participants to this page after they verify their email. | `string` | `\"/resetPassword\"` |\n| `submitLabel` | `submit-label` | | `string` | `\"Request Password Reset\"` |\n\n\n## Dependencies\n\n### Depends on\n\n- [sqm-form-message](../sqm-form-message)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-portal-forgot-password --> sqm-form-message\n style sqm-portal-forgot-password fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n";
6910
-
6911
- const RegisterReadme = "# sqm-portal-register\n\n\n\n<!-- Auto Generated Below -->\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| --------------------------- | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- |\n| `confirmPassword` | `confirm-password` | | `boolean` | `false` |\n| `confirmPasswordLabel` | `confirm-password-label` | | `string` | `\"Confirm Password\"` |\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; confirmPassword: boolean; hideInputs: boolean; registrationFormState: RegistrationFormState; disablePasswordValidation?: boolean; loginPath: string; }; refs?: { formRef: any; }; content?: { formData?: VNode; terms?: VNode; passwordField?: VNode; secondaryButton?: VNode; emailLabel?: string; passwordLabel?: string; submitLabel?: string; pageLabel?: string; confirmPasswordLabel: string; }; }` | `undefined` |\n| `disablePasswordValidation` | `disable-password-validation` | | `boolean` | `false` |\n| `emailLabel` | `email-label` | | `string` | `\"Email\"` |\n| `hideInputs` | `hide-inputs` | Hides the email and password fields. Note: If you hide default inputs, you must add additional input fields. They must have the input name attributes \"email\" and \"password\" for this form to succeed. | `boolean` | `false` |\n| `loginLabel` | `login-label` | | `string` | `\"Sign in\"` |\n| `loginPath` | `login-path` | Redirect participants to this page after clicking the login button. | `string` | `\"/login\"` |\n| `nextPage` | `next-page` | Redirect participants to this page from their verification email | `string` | `\"/\"` |\n| `pageLabel` | `page-label` | | `string` | `\"Register\"` |\n| `passwordLabel` | `password-label` | | `string` | `\"Password\"` |\n| `redirectPath` | `redirect-path` | The page that participants are redirected to from the verification email. | `string` | `\"/verifyEmail\"` |\n| `submitLabel` | `submit-label` | | `string` | `\"Register\"` |\n\n\n## Dependencies\n\n### Used by\n\n - [sqm-stencilbook](../sqm-stencilbook)\n\n### Depends on\n\n- [sqm-form-message](../sqm-form-message)\n- [sqm-password-field](../sqm-password-field)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-portal-register --> sqm-form-message\n sqm-portal-register --> sqm-password-field\n sqm-stencilbook --> sqm-portal-register\n style sqm-portal-register fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n";
6912
-
6913
- const EditProfileReadme = "# sqm-portal-profile\n\n\n\n<!-- Auto Generated Below -->\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| ------------------------ | --------------------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |\n| `countrytext` | `countrytext` | | `string` | `\"Country\"` |\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` |\n| `editProfileHeader` | `edit-profile-header` | | `string` | `\"Edit your profile\"` |\n| `editProfileSubHeader` | `edit-profile-sub-header` | | `string` | `\"Personal Information\"` |\n| `emailtext` | `emailtext` | | `string` | `\"Email\"` |\n| `firstnametext` | `firstnametext` | | `string` | `\"First Name\"` |\n| `hideCountry` | `hide-country` | | `boolean` | `false` |\n| `lastnametext` | `lastnametext` | | `string` | `\"Last Name\"` |\n| `submitChangeButtonText` | `submit-change-button-text` | | `string` | `\"Submit Changes\"` |\n\n\n## Dependencies\n\n### Depends on\n\n- [sqm-form-message](../sqm-form-message)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-portal-profile --> sqm-form-message\n style sqm-portal-profile fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n";
6914
-
6915
- const ResetPasswordReadme = "# sqm-portal-reset-password\n\n\n\n<!-- Auto Generated Below -->\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| --------------------------- | ------------------------------ | -------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |\n| `confirmPassword` | `confirm-password` | | `boolean` | `false` |\n| `confirmPasswordFieldLabel` | `confirm-password-field-label` | | `string` | `\"Confirm Password\"` |\n| `continueButtonText` | `continue-button-text` | Button text displayed after a successful password reset. | `string` | `\"Continue\"` |\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` |\n| `failedPage` | `failed-page` | Redirect participants to this page if password reset fails due to an outdated reset attempt. | `string` | `\"/\"` |\n| `nextPage` | `next-page` | Redirect participants to this page when they successfully reset their password. | `string` | `\"/\"` |\n| `passwordFieldLabel` | `password-field-label` | | `string` | `\"New Password\"` |\n| `passwordResetHeader` | `password-reset-header` | Displayed after a successful password reset. | `string` | `\"Password reset\"` |\n| `resetPasswordButtonText` | `reset-password-button-text` | | `string` | `\"Reset Password\"` |\n| `resetPasswordHeader` | `reset-password-header` | | `string` | `\"Reset your password\"` |\n\n\n## Dependencies\n\n### Depends on\n\n- [sqm-form-message](../sqm-form-message)\n- [sqm-password-field](../sqm-password-field)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-portal-reset-password --> sqm-form-message\n sqm-portal-reset-password --> sqm-password-field\n style sqm-portal-reset-password fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n";
6916
-
6917
- const EmailVerificationReadme = "# sqm-portal-email-verification\n\n\n\n<!-- Auto Generated Below -->\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| ---------------------------- | ------------------------------ | ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; success: boolean; isVerified?: boolean; loadingVerification?: boolean; countdown?: number; }; content?: { email: string; verifyMessage: string; emailVerificationHeader: string; resendEmailButtonText: string; verificationStatusMessage?: string; verificationLoadingMessage?: string; }; }` | `undefined` |\n| `emailVerificationHeader` | `email-verification-header` | | `string` | `\"Verify your email\"` |\n| `redirectPath` | `redirect-path` | Redirect participants to this page from their verification email. | `string` | `\"/verifyEmail\"` |\n| `resendEmailButtonText` | `resend-email-button-text` | | `string` | `\"Re-send Email\"` |\n| `verificationLoadingMessage` | `verification-loading-message` | | `string` | `\"Checking verification status\"` |\n| `verificationStatusMessage` | `verification-status-message` | | `string` | `\"Checking verification status in {countdown}\"` |\n| `verifyMessage` | `verify-message` | | `string` | `\"A verification email was sent to {email}. Please verify your email to continue to the portal. Resending an email will invalidate the previous email.\"` |\n\n\n## Dependencies\n\n### Depends on\n\n- [sqm-form-message](../sqm-form-message)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-portal-email-verification --> sqm-form-message\n style sqm-portal-email-verification fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n";
6918
-
6919
- const EmailVerifiedReadme = "# sqm-portal-verify-email\n\n\n\n<!-- Auto Generated Below -->\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| ------------ | ------------- | ------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ----------- |\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; verified: boolean; }; data?: { oobCode: string; }; }` | `undefined` |\n| `failedPage` | `failed-page` | Redirect participants to this page if verification fails due to an outdated verification attempt. | `string` | `\"/\"` |\n| `nextPage` | `next-page` | Redirect participants to this page when they successfully verify their email. | `string` | `\"/\"` |\n\n\n## Dependencies\n\n### Depends on\n\n- [sqm-form-message](../sqm-form-message)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-portal-verify-email --> sqm-form-message\n style sqm-portal-verify-email fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n";
6920
-
6921
- const PortalTemplates_stories = {
6922
- title: "Templates / Portal",
6923
- };
6924
- function useTemplate$1(templateString) {
6925
- const [editedTemplate, setEditedTemplate] = useState(templateString);
6926
- const [previewTemplate, setPreviewTemplate] = useState(templateString);
6927
- return {
6928
- states: { previewTemplate, editedTemplate },
6929
- callbacks: { setEditedTemplate, setPreviewTemplate },
6930
- };
6931
- }
6932
6901
  function TemplateView$1(props) {
6933
6902
  const { states, callbacks, readme } = props;
6934
6903
  return [
@@ -6940,124 +6909,6 @@ function TemplateView$1(props) {
6940
6909
  h("div", { innerHTML: states.previewTemplate }),
6941
6910
  ];
6942
6911
  }
6943
- function Buttons({ callbacks, states, template }) {
6944
- return (h("div", null,
6945
- h("button", { onClick: () => callbacks.setPreviewTemplate(states.editedTemplate) }, "Update Preview"),
6946
- h("button", { style: { marginLeft: "10px" }, onClick: () => callbacks.setPreviewTemplate(template) }, "Preview Dashboard")));
6947
- }
6948
- function DefaultTemplateView(props) {
6949
- const { states, callbacks } = props;
6950
- return (h("div", { style: { height: "50vh" } },
6951
- h("textarea", { style: { width: "100%", height: "300px" }, onChange: (e) => callbacks.setEditedTemplate(e.target.value) }, states.editedTemplate),
6952
- h(Buttons, { states: states, callbacks: callbacks, template: props.template }),
6953
- h("h2", null, "Navigation"),
6954
- h("div", { style: {
6955
- display: "grid",
6956
- gridTemplateColumns: "repeat(9, 80px)",
6957
- gridGap: "10px",
6958
- } },
6959
- h("button", { onClick: () => gn.push("/") }, "Dashboard"),
6960
- props.leadSubmit && (h("button", { onClick: () => gn.push("/refer") }, "Submit a Referral")),
6961
- h("button", { onClick: () => gn.push("/activity") }, "Activity"),
6962
- h("button", { onClick: () => gn.push("/editProfile") }, "Edit Profile"),
6963
- h("button", { onClick: () => gn.push("/login") }, "Login"),
6964
- h("button", { onClick: () => gn.push("/register") }, "Register"),
6965
- h("button", { onClick: () => gn.push("/emailVerification") }, "Email Verification"),
6966
- h("button", { onClick: () => gn.push("/verifyEmail") }, "Verify Email"),
6967
- h("button", { onClick: () => gn.push("/forgotPassword") }, "Forgot Password"),
6968
- h("button", { onClick: () => gn.push("/resetPassword") }, "Reset Password")),
6969
- h("br", null),
6970
- h("div", { innerHTML: states.previewTemplate })));
6971
- }
6972
- const DefaultPortal = createHookStory(() => {
6973
- const { states, callbacks } = useTemplate$1(portalTemplate);
6974
- return (h(DefaultTemplateView, { states: states, callbacks: callbacks, template: portalTemplateWithDashboard }));
6975
- });
6976
- const MultiProgramPortal = createHookStory(() => {
6977
- const { states, callbacks } = useTemplate$1(multiProgramTemplate);
6978
- return (h(DefaultTemplateView, { states: states, callbacks: callbacks, template: multiProgramTemplateWithDashboard }));
6979
- });
6980
- const LeadSubmitPortal = createHookStory(() => {
6981
- const { states, callbacks } = useTemplate$1(portalLeadSubmitTemplate);
6982
- return (h(DefaultTemplateView, { states: states, callbacks: callbacks, template: portalLeadSubmitTemplateWithDashboard, leadSubmit: true }));
6983
- });
6984
- const Login = createHookStory(() => {
6985
- const { states, callbacks } = useTemplate$1(loginTemplate);
6986
- return (h(TemplateView$1, { states: states, callbacks: callbacks, readme: LoginReadme }));
6987
- });
6988
- const ForgotPassword = createHookStory(() => {
6989
- const { states, callbacks } = useTemplate$1(forgotPasswordTemplate);
6990
- return (h(TemplateView$1, { states: states, callbacks: callbacks, readme: ForgotPasswordReadme }));
6991
- });
6992
- const Register = createHookStory(() => {
6993
- const { states, callbacks } = useTemplate$1(registerTemplate);
6994
- return (h(TemplateView$1, { states: states, callbacks: callbacks, readme: RegisterReadme }));
6995
- });
6996
- const Dashboard$1 = createHookStory(() => {
6997
- const { states, callbacks } = useTemplate$1(dashboardTemplate);
6998
- return h(TemplateView$1, { states: states, callbacks: callbacks });
6999
- });
7000
- const LeadSubmitIframe = createHookStory(() => {
7001
- const { states, callbacks } = useTemplate$1(leadSubmitTemplate);
7002
- return (h(TemplateView$1, { states: states, callbacks: callbacks, readme: ReferralIframeReadme }));
7003
- });
7004
- const Activity$1 = createHookStory(() => {
7005
- const { states, callbacks } = useTemplate$1(activityTemplate);
7006
- return h(TemplateView$1, { states: states, callbacks: callbacks });
7007
- });
7008
- const EditProfile$2 = createHookStory(() => {
7009
- const { states, callbacks } = useTemplate$1(editProfileTemplate);
7010
- return (h(TemplateView$1, { states: states, callbacks: callbacks, readme: EditProfileReadme }));
7011
- });
7012
- const ResetPassword = createHookStory(() => {
7013
- const { states, callbacks } = useTemplate$1(resetPasswordTemplate);
7014
- return (h(TemplateView$1, { states: states, callbacks: callbacks, readme: ResetPasswordReadme }));
7015
- });
7016
- const EmailVerification = createHookStory(() => {
7017
- const { states, callbacks } = useTemplate$1(emailVerificationTemplate);
7018
- return (h(TemplateView$1, { states: states, callbacks: callbacks, readme: EmailVerificationReadme }));
7019
- });
7020
- const EmailVerified = createHookStory(() => {
7021
- const { states, callbacks } = useTemplate$1(emailVerifiedTemplate);
7022
- return (h(TemplateView$1, { states: states, callbacks: callbacks, readme: EmailVerifiedReadme }));
7023
- });
7024
- const Widget = createHookStory(() => {
7025
- return (h("sqb-widget", { "widget-type": "p/Vacay-referral/w/referrerWidget", demoData: {
7026
- data: {
7027
- html: dashboardTemplate,
7028
- },
7029
- } }));
7030
- });
7031
- const ResetPasswordEmail = createHookStory(() => {
7032
- const { states, callbacks } = useTemplate$1(resetPasswordEmailTemplate);
7033
- return h(TemplateView$1, { states: states, callbacks: callbacks });
7034
- });
7035
- const VerifyEmail = createHookStory(() => {
7036
- const { states, callbacks } = useTemplate$1(verifyEmailTemplate);
7037
- return h(TemplateView$1, { states: states, callbacks: callbacks });
7038
- });
7039
-
7040
- const PortalTemplates = /*#__PURE__*/Object.freeze({
7041
- __proto__: null,
7042
- 'default': PortalTemplates_stories,
7043
- TemplateView: TemplateView$1,
7044
- DefaultPortal: DefaultPortal,
7045
- MultiProgramPortal: MultiProgramPortal,
7046
- LeadSubmitPortal: LeadSubmitPortal,
7047
- Login: Login,
7048
- ForgotPassword: ForgotPassword,
7049
- Register: Register,
7050
- Dashboard: Dashboard$1,
7051
- LeadSubmitIframe: LeadSubmitIframe,
7052
- Activity: Activity$1,
7053
- EditProfile: EditProfile$2,
7054
- ResetPassword: ResetPassword,
7055
- EmailVerification: EmailVerification,
7056
- EmailVerified: EmailVerified,
7057
- Widget: Widget,
7058
- ResetPasswordEmail: ResetPasswordEmail,
7059
- VerifyEmail: VerifyEmail
7060
- });
7061
6912
 
7062
6913
  const Widget_stories = {
7063
6914
  title: "Templates / Widgets",
@@ -7069,7 +6920,7 @@ const Widget_stories = {
7069
6920
  // padding="large"
7070
6921
  // show-powered-by="false"
7071
6922
  // powered-by-link="https://www.saasquatch.com/"
7072
- function useTemplate$2(templateString) {
6923
+ function useTemplate$1(templateString) {
7073
6924
  const [editedTemplate, setEditedTemplate] = useState(templateString);
7074
6925
  const [previewTemplate, setPreviewTemplate] = useState(templateString);
7075
6926
  return {
@@ -7077,58 +6928,55 @@ function useTemplate$2(templateString) {
7077
6928
  callbacks: { setEditedTemplate, setPreviewTemplate },
7078
6929
  };
7079
6930
  }
7080
- function Buttons$1({ callbacks, states, template }) {
7081
- return (h("div", null,
7082
- h("button", { onClick: () => callbacks.setPreviewTemplate(states.editedTemplate) }, "Update Preview"),
7083
- h("button", { style: { marginLeft: "10px" }, onClick: () => callbacks.setPreviewTemplate(template) }, "Preview Dashboard")));
7084
- }
7085
- function DefaultTemplateView$1(props) {
7086
- const { states, callbacks } = props;
7087
- return (h("div", { style: { height: "50vh" } },
7088
- h("textarea", { style: { width: "100%", height: "300px" }, onChange: (e) => callbacks.setEditedTemplate(e.target.value) }, states.editedTemplate),
7089
- h(Buttons$1, { states: states, callbacks: callbacks, template: props.template }),
7090
- h("br", null),
7091
- h("div", { innerHTML: states.previewTemplate })));
7092
- }
7093
6931
  const ReferralWidget = createHookStory(() => {
7094
- const { states, callbacks } = useTemplate$2(referralWidget);
7095
- return (h(DefaultTemplateView$1, { states: states, callbacks: callbacks, template: referralWidget }));
6932
+ const { states, callbacks } = useTemplate$1(referralWidget);
6933
+ return (h(DefaultTemplateView, { states: states, callbacks: callbacks, template: referralWidget }));
7096
6934
  });
7097
6935
  const MonoWidget = createHookStory(() => {
7098
- const { states, callbacks } = useTemplate$2(monoWidget);
7099
- return (h(DefaultTemplateView$1, { states: states, callbacks: callbacks, template: monoWidget }));
6936
+ const { states, callbacks } = useTemplate$1(monoWidget);
6937
+ return (h(DefaultTemplateView, { states: states, callbacks: callbacks, template: monoWidget }));
7100
6938
  });
7101
6939
  const Loyalty = createHookStory(() => {
7102
- const { states, callbacks } = useTemplate$2(loyaltyWidget);
7103
- return (h(DefaultTemplateView$1, { states: states, callbacks: callbacks, template: loyaltyWidget }));
6940
+ const { states, callbacks } = useTemplate$1(loyaltyWidget);
6941
+ return (h(DefaultTemplateView, { states: states, callbacks: callbacks, template: loyaltyWidget }));
6942
+ });
6943
+ const InstantAccessReferrerShareWidget = createHookStory(() => {
6944
+ const { states, callbacks } = useTemplate$1(instantAccessReferrerShareWidget);
6945
+ return h(TemplateView$1, { states: states, callbacks: callbacks });
6946
+ });
6947
+ const PaypalMonoWidget = createHookStory(() => {
6948
+ const { states, callbacks } = useTemplate$1(paypalMonoWidget);
6949
+ return h(TemplateView$1, { states: states, callbacks: callbacks });
7104
6950
  });
7105
- const InstantAccessShareWidget = createHookStory(() => {
7106
- const { states, callbacks } = useTemplate$2(instantAccessShareWidget);
6951
+ const PaypalReferralWidget = createHookStory(() => {
6952
+ const { states, callbacks } = useTemplate$1(paypalReferralWidget);
7107
6953
  return h(TemplateView$1, { states: states, callbacks: callbacks });
7108
6954
  });
7109
- const InstantAccessCouponWidget = createHookStory(() => {
7110
- const { states, callbacks } = useTemplate$2(instantAccessCouponWidget);
6955
+ const InstantAccessFriendCouponWidget = createHookStory(() => {
6956
+ const { states, callbacks } = useTemplate$1(instantAccessFriendCouponWidget);
7111
6957
  return h(TemplateView$1, { states: states, callbacks: callbacks });
7112
6958
  });
7113
- const InstantAccessReferrerRegistationWidget = createHookStory(() => {
7114
- const { states, callbacks } = useTemplate$2(instantAccessReferrerRegistationWidget);
6959
+ const InstantAccessReferrerRegistrationWidget = createHookStory(() => {
6960
+ const { states, callbacks } = useTemplate$1(instantAccessReferrerRegistrationWidget);
7115
6961
  return h(TemplateView$1, { states: states, callbacks: callbacks });
7116
6962
  });
7117
- const InsantAccessReferredRegistationWidget = createHookStory(() => {
7118
- const { states, callbacks } = useTemplate$2(instantAccessReferredRegistationWidget);
6963
+ const InstantAccessFriendRegistrationWidget = createHookStory(() => {
6964
+ const { states, callbacks } = useTemplate$1(instantAccessFriendRegistrationWidget);
7119
6965
  return h(TemplateView$1, { states: states, callbacks: callbacks });
7120
6966
  });
7121
6967
 
7122
- const Widget$1 = /*#__PURE__*/Object.freeze({
6968
+ const Widget = /*#__PURE__*/Object.freeze({
7123
6969
  __proto__: null,
7124
6970
  'default': Widget_stories,
7125
6971
  ReferralWidget: ReferralWidget,
7126
6972
  MonoWidget: MonoWidget,
7127
6973
  Loyalty: Loyalty,
7128
- InstantAccessShareWidget: InstantAccessShareWidget,
7129
- InstantAccessCouponWidget: InstantAccessCouponWidget,
7130
- InstantAccessReferrerRegistationWidget: InstantAccessReferrerRegistationWidget,
7131
- InsantAccessReferredRegistationWidget: InsantAccessReferredRegistationWidget
6974
+ InstantAccessReferrerShareWidget: InstantAccessReferrerShareWidget,
6975
+ PaypalMonoWidget: PaypalMonoWidget,
6976
+ PaypalReferralWidget: PaypalReferralWidget,
6977
+ InstantAccessFriendCouponWidget: InstantAccessFriendCouponWidget,
6978
+ InstantAccessReferrerRegistrationWidget: InstantAccessReferrerRegistrationWidget,
6979
+ InstantAccessFriendRegistrationWidget: InstantAccessFriendRegistrationWidget
7132
6980
  });
7133
6981
 
7134
6982
  const SidebarItem_stories = {
@@ -7273,7 +7121,12 @@ const defaultProps$3 = {
7273
7121
  refs: {
7274
7122
  formRef: {},
7275
7123
  },
7276
- content: { pageLabel: "Register", confirmPasswordLabel: "Confirm Password" },
7124
+ content: {
7125
+ pageLabel: "Register",
7126
+ confirmPasswordLabel: "Confirm Password",
7127
+ requiredFieldErrorMessage: "Cannot be empty",
7128
+ invalidEmailErrorMessage: "Must be a valid email address",
7129
+ },
7277
7130
  };
7278
7131
  const errorProps$1 = {
7279
7132
  states: {
@@ -7294,6 +7147,8 @@ const errorProps$1 = {
7294
7147
  content: {
7295
7148
  pageLabel: "Register",
7296
7149
  confirmPasswordLabel: "Confirm Password",
7150
+ requiredFieldErrorMessage: "Cannot be empty",
7151
+ invalidEmailErrorMessage: "Must be a valid email address",
7297
7152
  },
7298
7153
  };
7299
7154
  const loadingProps$1 = {
@@ -7312,7 +7167,12 @@ const loadingProps$1 = {
7312
7167
  refs: {
7313
7168
  formRef: {},
7314
7169
  },
7315
- content: { pageLabel: "Register", confirmPasswordLabel: "Confirm Password" },
7170
+ content: {
7171
+ pageLabel: "Register",
7172
+ confirmPasswordLabel: "Confirm Password",
7173
+ requiredFieldErrorMessage: "Cannot be empty",
7174
+ invalidEmailErrorMessage: "Must be a valid email address",
7175
+ },
7316
7176
  };
7317
7177
  const slottedProps = {
7318
7178
  states: {
@@ -7333,6 +7193,8 @@ const slottedProps = {
7333
7193
  content: {
7334
7194
  pageLabel: "Register",
7335
7195
  confirmPasswordLabel: "Confirm Password",
7196
+ requiredFieldErrorMessage: "Cannot be empty",
7197
+ invalidEmailErrorMessage: "Must be a valid email address",
7336
7198
  formData: (h("div", null,
7337
7199
  h("sl-input", { style: { marginBottom: "var(--sl-spacing-x-large)" }, exportparts: "label: input-label", label: "Slotted Input", required: true }),
7338
7200
  h("sl-input", { exportparts: "label: input-label", label: "Slotted Input 2", required: true }))),
@@ -9765,6 +9627,158 @@ const TaskCard$2 = /*#__PURE__*/Object.freeze({
9765
9627
  ProgressBarStepsFinite: ProgressBarStepsFinite
9766
9628
  });
9767
9629
 
9630
+ const portalTemplate = "<sqm-portal-frame>\n <a slot=\"header\" href=\"/\">\n <sqm-text style=\"height: 60px\">\n <img\n style=\"height: 60px\"\n src=\"https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png\"\n />\n </sqm-text>\n </a>\n <sqb-program-section program-id=\"referral-program\">\n <sqm-router>\n <template\n path=\"/:path(\\bregister\\b|\\bemailVerification\\b|\\blogin\\b|\\bverifyEmail\\b|\\bforgotPassword\\b|\\bresetPassword\\b|\\blogout\\b)\"\n >\n <sqm-hero\n background=\"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80\"\n >\n <sqm-router>\n <template path=\"/register\">\n <sqm-portal-register>\n <sqm-name-fields slot=\"formData\"></sqm-name-fields>\n </sqm-portal-register>\n </template>\n\n <template path=\"/emailVerification\">\n <sqm-portal-protected-route\n redirect-to=\"/login\"\n ></sqm-portal-protected-route>\n <sqm-portal-email-verification></sqm-portal-email-verification>\n </template>\n\n <template path=\"/login\">\n <sqm-portal-login></sqm-portal-login>\n </template>\n\n <template path=\"/verifyEmail\">\n <sqm-portal-verify-email></sqm-portal-verify-email>\n </template>\n\n <template path=\"/forgotPassword\">\n <sqm-portal-forgot-password\n email-label=\"Business Email\"\n ></sqm-portal-forgot-password>\n </template>\n\n <template path=\"/resetPassword\">\n <sqm-portal-reset-password\n confirm-password=\"true\"\n ></sqm-portal-reset-password>\n </template>\n <template path=\"/logout\">\n <sqm-portal-logout next-page=\"/login\"></sqm-portal-logout>\n </template>\n </sqm-router>\n </sqm-hero>\n </template>\n </sqm-router>\n <sqm-router>\n <template path=\"/:path(\\bactivity\\b|\\beditProfile\\b)?\">\n <sqm-divided-layout\n direction=\"row\"\n style=\"\n border-top: 1px solid #eaeaea;\n border-bottom: 1px solid #eaeaea;\n \"\n >\n <sqm-navigation-sidebar>\n <sqm-navigation-sidebar-item\n path=\"/\"\n icon=\"house\"\n label=\"Dashboard\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/activity\"\n icon=\"bar-chart\"\n label=\"Activity\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/editProfile\"\n icon=\"person\"\n label=\"Edit Profile\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/logout\"\n icon=\"box-arrow-right\"\n label=\"Logout\"\n ></sqm-navigation-sidebar-item>\n </sqm-navigation-sidebar>\n <sqm-divided-layout direction=\"column\">\n <sqm-router>\n <template path=\"/\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqb-widget\n widget-type=\"p/referral-program/w/referrerWidget\"\n track-loads=\"true\"\n ></sqb-widget>\n </template>\n <template path=\"/editProfile\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqm-portal-container direction=\"column\" gap=\"xxx-large\">\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\n ><sqm-portal-container direction=\"column\" gap=\"xxx-large\">\n <sqm-portal-change-password></sqm-portal-change-password>\n </sqm-portal-container>\n </template>\n\n <template path=\"/activity\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqm-portal-container\n direction=\"column\"\n padding=\"xxx-large\"\n gap=\"xxx-large\"\n >\n <sqm-text> <h1>Activity</h1></sqm-text>\n <sqm-stat-container space=\"xxxx-large\"\n ><sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/referralsCount\"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardsCountFiltered/AVAILABLE\"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardBalance/CREDIT/CENTS\"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container>\n <sqm-referral-table>\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\n <sqm-referral-table-date-column\n column-title=\"Referred\"\n date-shown=\"dateReferralStarted\"\n ></sqm-referral-table-date-column> </sqm-referral-table\n ></sqm-portal-container>\n </template>\n </sqm-router>\n </sqm-divided-layout>\n </sqm-divided-layout>\n </template>\n </sqm-router>\n </sqb-program-section>\n <sqm-portal-footer\n slot=\"footer\"\n support-email=\"support@example.com\"\n terms-link=\"https://example.com\"\n faq-link=\"https://example.com\"\n terms-text=\"Terms And Conditions\"\n faq-text=\"FAQ\"\n show-powered-by=\"true\"\n ></sqm-portal-footer>\n</sqm-portal-frame>\n";
9631
+
9632
+ const portalLeadSubmitTemplate = "<sqm-portal-frame>\n <a slot=\"header\" href=\"/\">\n <sqm-text style=\"height: 60px\">\n <img\n style=\"height: 60px\"\n src=\"https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png\"\n />\n </sqm-text>\n </a>\n <sqb-program-section program-id=\"referral-program\">\n <sqm-router>\n <template\n path=\"/:path(\\bregister\\b|\\bemailVerification\\b|\\blogin\\b|\\bverifyEmail\\b|\\bforgotPassword\\b|\\bresetPassword\\b|\\blogout\\b)\"\n >\n <sqm-hero\n background=\"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80\"\n >\n <sqm-router>\n <template path=\"/register\">\n <sqm-portal-register>\n <sqm-name-fields slot=\"formData\"></sqm-name-fields>\n </sqm-portal-register>\n </template>\n\n <template path=\"/emailVerification\">\n <sqm-portal-protected-route\n redirect-to=\"/login\"\n ></sqm-portal-protected-route>\n <sqm-portal-email-verification></sqm-portal-email-verification>\n </template>\n\n <template path=\"/login\">\n <sqm-portal-login></sqm-portal-login>\n </template>\n\n <template path=\"/verifyEmail\">\n <sqm-portal-verify-email></sqm-portal-verify-email>\n </template>\n\n <template path=\"/forgotPassword\">\n <sqm-portal-forgot-password\n email-label=\"Business Email\"\n ></sqm-portal-forgot-password>\n </template>\n\n <template path=\"/resetPassword\">\n <sqm-portal-reset-password\n confirm-password=\"true\"\n ></sqm-portal-reset-password>\n </template>\n <template path=\"/logout\">\n <sqm-portal-logout next-page=\"/login\"></sqm-portal-logout>\n </template>\n </sqm-router>\n </sqm-hero>\n </template>\n </sqm-router>\n <sqm-router>\n <template path=\"/:path(\\bactivity\\b|\\beditProfile\\b|\\brefer\\b)?\">\n <sqm-divided-layout\n direction=\"row\"\n style=\"\n border-top: 1px solid #eaeaea;\n border-bottom: 1px solid #eaeaea;\n \"\n >\n <sqm-navigation-sidebar>\n <sqm-navigation-sidebar-item\n path=\"/\"\n icon=\"house\"\n label=\"Dashboard\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/refer\"\n icon=\"inbox\"\n label=\"Submit A Lead\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/activity\"\n icon=\"bar-chart\"\n label=\"Activity\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/editProfile\"\n icon=\"person\"\n label=\"Edit Profile\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/logout\"\n icon=\"box-arrow-right\"\n label=\"Logout\"\n ></sqm-navigation-sidebar-item>\n </sqm-navigation-sidebar>\n <sqm-divided-layout direction=\"column\">\n <sqm-router>\n <template path=\"/\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqb-widget\n widget-type=\"p/referral-program/w/referrerWidget\"\n track-loads=\"true\"\n ></sqb-widget>\n </template>\n <template path=\"/editProfile\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqm-portal-container direction=\"column\" gap=\"xxx-large\">\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\n ><sqm-portal-container direction=\"column\" gap=\"xxx-large\">\n <sqm-portal-change-password></sqm-portal-change-password>\n </sqm-portal-container>\n </template>\n <template path=\"/refer\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqm-referral-iframe></sqm-referral-iframe>\n </template>\n <template path=\"/activity\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqm-portal-container\n direction=\"column\"\n padding=\"xxx-large\"\n gap=\"xxx-large\"\n >\n <sqm-text> <h1>Activity</h1></sqm-text>\n <sqm-stat-container space=\"xxxx-large\"\n ><sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/referralsCount\"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardsCountFiltered/AVAILABLE\"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardBalance/CREDIT/CENTS\"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container>\n <sqm-referral-table>\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\n <sqm-referral-table-date-column\n column-title=\"Referred\"\n date-shown=\"dateReferralStarted\"\n ></sqm-referral-table-date-column> </sqm-referral-table\n ></sqm-portal-container>\n </template>\n </sqm-router>\n </sqm-divided-layout>\n </sqm-divided-layout>\n </template>\n </sqm-router>\n </sqb-program-section>\n <sqm-portal-footer\n slot=\"footer\"\n support-email=\"support@example.com\"\n terms-link=\"https://example.com\"\n faq-link=\"https://example.com\"\n terms-text=\"Terms And Conditions\"\n faq-text=\"FAQ\"\n show-powered-by=\"true\"\n ></sqm-portal-footer>\n</sqm-portal-frame>\n";
9633
+
9634
+ const portalLeadSubmitTemplateWithDashboard = "<sqm-portal-frame>\n <a slot=\"header\" href=\"/\">\n <sqm-text style=\"height: 60px\">\n <img\n style=\"height: 60px\"\n src=\"https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png\"\n />\n </sqm-text>\n </a>\n <sqb-program-section program-id=\"referral-program\">\n <sqm-router>\n <template\n path=\"/:path(\\bregister\\b|\\bemailVerification\\b|\\blogin\\b|\\bverifyEmail\\b|\\bforgotPassword\\b|\\bresetPassword\\b|\\blogout\\b)\"\n >\n <sqm-hero\n background=\"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80\"\n >\n <sqm-router>\n <template path=\"/register\">\n <sqm-portal-register>\n <sqm-name-fields slot=\"formData\"></sqm-name-fields>\n </sqm-portal-register>\n </template>\n\n <template path=\"/emailVerification\">\n <sqm-portal-protected-route\n redirect-to=\"/login\"\n ></sqm-portal-protected-route>\n <sqm-portal-email-verification></sqm-portal-email-verification>\n </template>\n\n <template path=\"/login\">\n <sqm-portal-login></sqm-portal-login>\n </template>\n\n <template path=\"/verifyEmail\">\n <sqm-portal-verify-email></sqm-portal-verify-email>\n </template>\n\n <template path=\"/forgotPassword\">\n <sqm-portal-forgot-password\n email-label=\"Business Email\"\n ></sqm-portal-forgot-password>\n </template>\n\n <template path=\"/resetPassword\">\n <sqm-portal-reset-password\n confirm-password=\"true\"\n ></sqm-portal-reset-password>\n </template>\n <template path=\"/logout\">\n <sqm-portal-logout next-page=\"/login\"></sqm-portal-logout>\n </template>\n </sqm-router>\n </sqm-hero>\n </template>\n </sqm-router>\n <sqm-router>\n <template path=\"/:path(\\bactivity\\b|\\beditProfile\\b|\\brefer\\b)?\">\n <sqm-divided-layout\n direction=\"row\"\n style=\"\n border-top: 1px solid #eaeaea;\n border-bottom: 1px solid #eaeaea;\n \"\n >\n <sqm-navigation-sidebar>\n <sqm-navigation-sidebar-item\n path=\"/\"\n icon=\"house\"\n label=\"Dashboard\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/refer\"\n icon=\"inbox\"\n label=\"Submit A Lead\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/activity\"\n icon=\"bar-chart\"\n label=\"Activity\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/editProfile\"\n icon=\"person\"\n label=\"Edit Profile\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/logout\"\n icon=\"box-arrow-right\"\n label=\"Logout\"\n ></sqm-navigation-sidebar-item>\n </sqm-navigation-sidebar>\n <sqm-divided-layout direction=\"column\">\n <sqm-router>\n <template path=\"/\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqm-portal-container\n direction=\"column\"\n padding=\"xxx-large\"\n gap=\"xxx-large\"\n ><sqm-titled-section label-margin=\"xx-small\"\n ><sqm-text slot=\"label\"> <p>Welcome back,</p> </sqm-text\n ><sqm-text slot=\"content\">\n <h1>\n <sqm-user-name\n fallback=\"Anonymous User\"\n ></sqm-user-name>\n </h1> </sqm-text\n ></sqm-titled-section>\n <sqm-stat-container space=\"xxxx-large\"\n ><sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/referralsCount\"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardsCountFiltered/AVAILABLE\"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardBalance/CREDIT/CENTS\"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container> </sqm-portal-container\n ><sqm-portal-container\n direction=\"column\"\n padding=\"xxx-large\"\n gap=\"xxx-large\"\n >\n <sqm-titled-section padding=\"none\" label-margin=\"x-large\"\n ><sqm-text slot=\"label\">\n <h2>Partner and Profit</h2> </sqm-text\n ><sqm-text slot=\"content\">\n <p>\n Get rewarded for referring potential customers to\n SaaSquatch. Earn commission for each successful lead you\n send our way\n </p>\n </sqm-text></sqm-titled-section\n >\n <sqm-titled-section label-margin=\"small\" padding=\"none\"\n ><sqm-text slot=\"label\">\n <h3>Share your referral link</h3> </sqm-text\n ><sqm-share-link slot=\"content\"></sqm-share-link\n ></sqm-titled-section>\n <sqm-titled-section label-margin=\"small\" padding=\"none\">\n <sqm-text slot=\"label\">\n <h3>Share your referral code</h3> </sqm-text\n ><sqm-share-code slot=\"content\"></sqm-share-code>\n </sqm-titled-section>\n <sqm-titled-section label-margin=\"small\" padding=\"none\"\n ><sqm-text slot=\"label\">\n <h3>Share via social media</h3> </sqm-text\n ><sqm-portal-container\n slot=\"content\"\n direction=\"row\"\n padding=\"none\"\n gap=\"xxx-large\"\n min-width=\"160px\"\n ><sqm-share-button\n icon=\"envelope\"\n medium=\"email\"\n size=\"medium\"\n pill=\"true\"\n >Email a friend</sqm-share-button\n ><sqm-share-button\n medium=\"twitter\"\n size=\"medium\"\n pill=\"true\"\n >Tweet about us</sqm-share-button\n ><sqm-share-button\n medium=\"facebook\"\n size=\"medium\"\n pill=\"true\"\n >Share on Facebook</sqm-share-button\n ></sqm-portal-container\n ></sqm-titled-section\n ></sqm-portal-container\n >\n </template>\n <template path=\"/editProfile\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqm-portal-container direction=\"column\" gap=\"xxx-large\">\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\n ><sqm-portal-container direction=\"column\" gap=\"xxx-large\">\n <sqm-portal-change-password></sqm-portal-change-password>\n </sqm-portal-container>\n </template>\n <template path=\"/refer\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqm-referral-iframe></sqm-referral-iframe>\n </template>\n <template path=\"/activity\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqm-portal-container\n direction=\"column\"\n padding=\"xxx-large\"\n gap=\"xxx-large\"\n >\n <sqm-text> <h1>Activity</h1></sqm-text>\n <sqm-stat-container space=\"xxxx-large\"\n ><sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/referralsCount\"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardsCountFiltered/AVAILABLE\"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardBalance/CREDIT/CENTS\"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container>\n <sqm-referral-table>\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\n <sqm-referral-table-date-column\n column-title=\"Referred\"\n date-shown=\"dateReferralStarted\"\n ></sqm-referral-table-date-column> </sqm-referral-table\n ></sqm-portal-container>\n </template>\n </sqm-router>\n </sqm-divided-layout>\n </sqm-divided-layout>\n </template>\n </sqm-router>\n </sqb-program-section>\n <sqm-portal-footer\n slot=\"footer\"\n support-email=\"support@example.com\"\n terms-link=\"https://example.com\"\n faq-link=\"https://example.com\"\n terms-text=\"Terms And Conditions\"\n faq-text=\"FAQ\"\n show-powered-by=\"true\"\n ></sqm-portal-footer>\n</sqm-portal-frame>\n";
9635
+
9636
+ const portalTemplateWithDashboard = "<sqm-portal-frame>\n <a slot=\"header\" href=\"/\">\n <sqm-text style=\"height: 60px\">\n <img\n style=\"height: 60px\"\n src=\"https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png\"\n />\n </sqm-text>\n </a>\n <sqb-program-section program-id=\"referral-program\">\n <sqm-router>\n <template\n path=\"/:path(\\bregister\\b|\\bemailVerification\\b|\\blogin\\b|\\bverifyEmail\\b|\\bforgotPassword\\b|\\bresetPassword\\b|\\blogout\\b)\"\n >\n <sqm-hero\n background=\"https://res.cloudinary.com/saasquatch/image/upload/v1683589787/Portal%20Assets/photo-1599676821464-3555954838dc.jpg\"\n >\n <sqm-router>\n <template path=\"/register\">\n <sqm-portal-register>\n <sqm-name-fields slot=\"formData\"></sqm-name-fields>\n </sqm-portal-register>\n </template>\n\n <template path=\"/emailVerification\">\n <sqm-portal-protected-route\n redirect-to=\"/login\"\n ></sqm-portal-protected-route>\n <sqm-portal-email-verification></sqm-portal-email-verification>\n </template>\n\n <template path=\"/login\">\n <sqm-portal-login></sqm-portal-login>\n </template>\n\n <template path=\"/verifyEmail\">\n <sqm-portal-verify-email></sqm-portal-verify-email>\n </template>\n\n <template path=\"/forgotPassword\">\n <sqm-portal-forgot-password\n email-label=\"Business Email\"\n ></sqm-portal-forgot-password>\n </template>\n\n <template path=\"/resetPassword\">\n <sqm-portal-reset-password\n confirm-password=\"true\"\n ></sqm-portal-reset-password>\n </template>\n <template path=\"/logout\">\n <sqm-portal-logout next-page=\"/login\"></sqm-portal-logout>\n </template>\n </sqm-router>\n </sqm-hero>\n </template>\n </sqm-router>\n <sqm-router>\n <template path=\"/:path(\\bactivity\\b|\\beditProfile\\b)?\">\n <sqm-divided-layout\n direction=\"row\"\n style=\"\n border-top: 1px solid #eaeaea;\n border-bottom: 1px solid #eaeaea;\n \"\n >\n <sqm-navigation-sidebar>\n <sqm-navigation-sidebar-item\n path=\"/\"\n icon=\"house\"\n label=\"Dashboard\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/activity\"\n icon=\"bar-chart\"\n label=\"Activity\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/editProfile\"\n icon=\"person\"\n label=\"Edit Profile\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/logout\"\n icon=\"box-arrow-right\"\n label=\"Logout\"\n ></sqm-navigation-sidebar-item>\n </sqm-navigation-sidebar>\n <sqm-divided-layout direction=\"column\">\n <sqm-router>\n <template path=\"/\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqm-portal-container\n direction=\"column\"\n padding=\"xxx-large\"\n gap=\"xxx-large\"\n ><sqm-titled-section label-margin=\"xx-small\"\n ><sqm-text slot=\"label\"> <p>Welcome back,</p> </sqm-text\n ><sqm-text slot=\"content\">\n <h1>\n <sqm-user-name\n fallback=\"Anonymous User\"\n ></sqm-user-name>\n </h1> </sqm-text\n ></sqm-titled-section>\n <sqm-stat-container space=\"xxxx-large\"\n ><sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/referralsCount\"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n ><sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardBalance/CREDIT/CENTS\"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container> </sqm-portal-container\n ><sqm-portal-container\n direction=\"column\"\n padding=\"xxx-large\"\n gap=\"xxx-large\"\n >\n <sqm-titled-section padding=\"none\" label-margin=\"x-large\"\n ><sqm-text slot=\"label\">\n <h2>Partner and Profit</h2> </sqm-text\n ><sqm-text slot=\"content\">\n <p>\n Get rewarded for referring potential customers to\n SaaSquatch. Earn commission for each successful lead you\n send our way\n </p>\n </sqm-text></sqm-titled-section\n >\n <sqm-titled-section label-margin=\"small\" padding=\"none\"\n ><sqm-text slot=\"label\">\n <h3>Share your referral link</h3> </sqm-text\n ><sqm-share-link slot=\"content\"></sqm-share-link\n ></sqm-titled-section>\n <sqm-titled-section label-margin=\"small\" padding=\"none\">\n <sqm-text slot=\"label\">\n <h3>Share your referral code</h3> </sqm-text\n ><sqm-share-code slot=\"content\"></sqm-share-code>\n </sqm-titled-section>\n <sqm-titled-section label-margin=\"small\" padding=\"none\"\n ><sqm-text slot=\"label\">\n <h3>Share via social media</h3> </sqm-text\n ><sqm-portal-container\n slot=\"content\"\n direction=\"row\"\n padding=\"none\"\n gap=\"xxx-large\"\n min-width=\"160px\"\n ><sqm-share-button\n icon=\"envelope\"\n medium=\"email\"\n size=\"medium\"\n pill=\"true\"\n >Email a friend</sqm-share-button\n ><sqm-share-button\n medium=\"twitter\"\n size=\"medium\"\n pill=\"true\"\n >Tweet about us</sqm-share-button\n ><sqm-share-button\n medium=\"facebook\"\n size=\"medium\"\n pill=\"true\"\n >Share on Facebook</sqm-share-button\n ></sqm-portal-container\n ></sqm-titled-section\n ></sqm-portal-container\n >\n </template>\n <template path=\"/editProfile\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqm-portal-container direction=\"column\" gap=\"xxx-large\">\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\n ><sqm-portal-container direction=\"column\" gap=\"xxx-large\">\n <sqm-portal-change-password></sqm-portal-change-password>\n </sqm-portal-container>\n </template>\n\n <template path=\"/activity\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqm-portal-container\n direction=\"column\"\n padding=\"xxx-large\"\n gap=\"xxx-large\"\n >\n <sqm-text> <h1>Activity</h1></sqm-text>\n <sqm-stat-container space=\"xxxx-large\"\n ><sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/referralsCount\"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardsCountFiltered/AVAILABLE\"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardBalance/CREDIT/CENTS\"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container>\n <sqm-referral-table>\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\n <sqm-referral-table-date-column\n column-title=\"Referred\"\n date-shown=\"dateReferralStarted\"\n ></sqm-referral-table-date-column> </sqm-referral-table\n ></sqm-portal-container>\n </template>\n </sqm-router>\n </sqm-divided-layout>\n </sqm-divided-layout>\n </template>\n </sqm-router>\n </sqb-program-section>\n <sqm-portal-footer\n slot=\"footer\"\n support-email=\"support@example.com\"\n terms-link=\"https://example.com\"\n faq-link=\"https://example.com\"\n terms-text=\"Terms And Conditions\"\n faq-text=\"FAQ\"\n show-powered-by=\"true\"\n ></sqm-portal-footer>\n</sqm-portal-frame>\n";
9637
+
9638
+ const multiProgramTemplate = "<sqm-portal-frame>\n <a slot=\"header\" href=\"/\">\n <sqm-text style=\"height: 60px\">\n <img\n style=\"height: 60px\"\n src=\"https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png\"\n />\n </sqm-text>\n </a>\n <sqb-program-section program-id=\"referral-program-1\">\n <sqm-router>\n <template\n path=\"/:path(\\bregister\\b|\\bemailVerification\\b|\\blogin\\b|\\bverifyEmail\\b|\\bforgotPassword\\b|\\bresetPassword\\b|\\blogout\\b)\"\n >\n <sqm-hero\n background=\"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80\"\n >\n <sqm-router>\n <template path=\"/register\">\n <sqm-portal-register>\n <sqm-name-fields slot=\"formData\"></sqm-name-fields>\n </sqm-portal-register>\n </template>\n\n <template path=\"/emailVerification\">\n <sqm-portal-protected-route\n redirect-to=\"/login\"\n ></sqm-portal-protected-route>\n <sqm-portal-email-verification></sqm-portal-email-verification>\n </template>\n\n <template path=\"/login\">\n <sqm-portal-login></sqm-portal-login>\n </template>\n\n <template path=\"/verifyEmail\">\n <sqm-portal-verify-email></sqm-portal-verify-email>\n </template>\n\n <template path=\"/forgotPassword\">\n <sqm-portal-forgot-password\n email-label=\"Business Email\"\n ></sqm-portal-forgot-password>\n </template>\n\n <template path=\"/resetPassword\">\n <sqm-portal-reset-password\n confirm-password=\"true\"\n ></sqm-portal-reset-password>\n </template>\n <template path=\"/logout\">\n <sqm-portal-logout next-page=\"/login\"></sqm-portal-logout>\n </template>\n </sqm-router>\n </sqm-hero>\n </template>\n </sqm-router>\n <sqm-router>\n <template path=\"/:path(\\bactivity\\b|\\beditProfile\\b)?\">\n <sqm-divided-layout\n direction=\"row\"\n style=\"\n border-top: 1px solid #eaeaea;\n border-bottom: 1px solid #eaeaea;\n \"\n >\n <sqm-navigation-sidebar>\n <sqm-program-menu>\n <sl-menu-item value=\"referral-program-1\"\n >Referral Program 1</sl-menu-item\n >\n <sl-menu-item value=\"referral-program-2\"\n >Referral Program 2</sl-menu-item\n >\n </sqm-program-menu>\n <sqm-navigation-sidebar-item\n path=\"/\"\n icon=\"house\"\n label=\"Dashboard\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/activity\"\n icon=\"bar-chart\"\n label=\"Activity\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/editProfile\"\n icon=\"person\"\n label=\"Edit Profile\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/logout\"\n icon=\"box-arrow-right\"\n label=\"Logout\"\n ></sqm-navigation-sidebar-item>\n </sqm-navigation-sidebar>\n <sqm-divided-layout direction=\"column\">\n <sqm-router>\n <template path=\"/\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqb-program-switch>\n <template program-id=\"referral-program-1\">\n <sqb-widget\n widget-type=\"p/referral-program-1/w/referrerWidget\"\n track-loads=\"true\"\n ></sqb-widget>\n </template>\n <template program-id=\"referral-program-2\">\n <sqb-widget\n widget-type=\"p/referral-program-2/w/referrerWidget\"\n track-loads=\"true\"\n ></sqb-widget>\n </template>\n </sqb-program-switch>\n </template>\n <template path=\"/editProfile\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqm-portal-container direction=\"column\" gap=\"xxx-large\">\n <sqm-portal-profile></sqm-portal-profile></sqm-portal-container\n ><sqm-portal-container direction=\"column\" gap=\"xxx-large\">\n <sqm-portal-change-password></sqm-portal-change-password>\n </sqm-portal-container>\n </template>\n <template path=\"/activity\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqm-portal-container\n direction=\"column\"\n padding=\"xxx-large\"\n gap=\"xxx-large\"\n >\n <sqm-text> <h1>Activity</h1></sqm-text>\n <sqm-stat-container space=\"xxxx-large\"\n ><sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/referralsCount\"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardsCountFiltered/AVAILABLE\"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardBalance/CREDIT/CENTS\"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container>\n <sqm-referral-table>\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\n <sqm-referral-table-date-column\n column-title=\"Referred\"\n date-shown=\"dateReferralStarted\"\n ></sqm-referral-table-date-column> </sqm-referral-table\n ></sqm-portal-container>\n </template>\n </sqm-router>\n </sqm-divided-layout>\n </sqm-divided-layout>\n </template>\n </sqm-router>\n </sqb-program-section>\n <sqm-portal-footer\n slot=\"footer\"\n support-email=\"support@example.com\"\n terms-link=\"https://example.com\"\n faq-link=\"https://example.com\"\n terms-text=\"Terms And Conditions\"\n faq-text=\"FAQ\"\n show-powered-by=\"true\"\n ></sqm-portal-footer>\n</sqm-portal-frame>\n";
9639
+
9640
+ const multiProgramTemplateWithDashboard = "<sqm-portal-frame>\n <a slot=\"header\" href=\"/\">\n <sqm-text style=\"height: 60px\">\n <img\n style=\"height: 60px\"\n src=\"https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png\"\n />\n </sqm-text>\n </a>\n <sqb-program-section program-id=\"referral-program-1\">\n <sqm-hero\n background=\"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80\"\n >\n <sqm-router>\n <template path=\"/register\">\n <sqm-portal-register>\n <sqm-name-fields slot=\"formData\"></sqm-name-fields>\n </sqm-portal-register>\n </template>\n\n <template path=\"/emailVerification\">\n <sqm-portal-protected-route\n redirect-to=\"/login\"\n ></sqm-portal-protected-route>\n <sqm-portal-email-verification></sqm-portal-email-verification>\n </template>\n\n <template path=\"/login\">\n <sqm-portal-login></sqm-portal-login>\n </template>\n\n <template path=\"/verifyEmail\">\n <sqm-portal-verify-email></sqm-portal-verify-email>\n </template>\n\n <template path=\"/forgotPassword\">\n <sqm-portal-forgot-password\n email-label=\"Business Email\"\n ></sqm-portal-forgot-password>\n </template>\n\n <template path=\"/resetPassword\">\n <sqm-portal-reset-password\n confirm-password=\"true\"\n ></sqm-portal-reset-password>\n </template>\n <template path=\"/logout\">\n <sqm-portal-logout next-page=\"/login\"></sqm-portal-logout>\n </template>\n </sqm-router>\n </sqm-hero>\n <sqm-router>\n <template path=\"/:path(\\bactivity\\b|\\beditProfile\\b)?\">\n <sqm-divided-layout\n direction=\"row\"\n style=\"\n border-top: 1px solid #eaeaea;\n border-bottom: 1px solid #eaeaea;\n \"\n >\n <sqm-navigation-sidebar>\n <sqm-program-menu>\n <sl-menu-item value=\"referral-program-1\"\n >Referral Program 1</sl-menu-item\n >\n <sl-menu-item value=\"referral-program-2\"\n >Referral Program 2</sl-menu-item\n >\n </sqm-program-menu>\n <sqm-navigation-sidebar-item\n path=\"/\"\n icon=\"house\"\n label=\"Dashboard\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/activity\"\n icon=\"bar-chart\"\n label=\"Activity\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/editProfile\"\n icon=\"person\"\n label=\"Edit Profile\"\n ></sqm-navigation-sidebar-item>\n <sqm-navigation-sidebar-item\n path=\"/logout\"\n icon=\"box-arrow-right\"\n label=\"Logout\"\n ></sqm-navigation-sidebar-item>\n </sqm-navigation-sidebar>\n <sqm-divided-layout direction=\"column\">\n <sqm-router>\n <template path=\"/\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route\n ><sqm-portal-container\n direction=\"column\"\n padding=\"xxx-large\"\n gap=\"xxx-large\"\n ><sqm-titled-section label-margin=\"xx-small\"\n ><sqm-text slot=\"label\"> <p>Welcome back,</p> </sqm-text\n ><sqm-text slot=\"content\">\n <h1>\n <sqm-user-name\n fallback=\"Anonymous User\"\n ></sqm-user-name>\n </h1> </sqm-text\n ></sqm-titled-section>\n <sqm-stat-container space=\"xxxx-large\"\n ><sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/referralsCount\"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardsCountFiltered/AVAILABLE\"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardBalance/CREDIT/CENTS\"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container> </sqm-portal-container\n ><sqm-portal-container\n direction=\"column\"\n padding=\"xxx-large\"\n gap=\"xxx-large\"\n >\n <sqm-titled-section padding=\"none\" label-margin=\"x-large\"\n ><sqm-text slot=\"label\">\n <h2>Partner and Profit</h2> </sqm-text\n ><sqm-text slot=\"content\">\n <p>\n Get rewarded for referring potential customers to\n SaaSquatch. Earn commission for each successful lead you\n send our way\n </p>\n </sqm-text></sqm-titled-section\n >\n <sqm-titled-section label-margin=\"small\" padding=\"none\"\n ><sqm-text slot=\"label\">\n <h3>Share your referral link</h3> </sqm-text\n ><sqm-share-link slot=\"content\"></sqm-share-link\n ></sqm-titled-section>\n <sqm-titled-section label-margin=\"small\" padding=\"none\">\n <sqm-text slot=\"label\">\n <h3>Share your referral code</h3> </sqm-text\n ><sqm-share-code slot=\"content\"></sqm-share-code>\n </sqm-titled-section>\n <sqm-titled-section label-margin=\"small\" padding=\"none\"\n ><sqm-text slot=\"label\">\n <h3>Share via social media</h3> </sqm-text\n ><sqm-portal-container\n slot=\"content\"\n direction=\"row\"\n padding=\"none\"\n gap=\"xxx-large\"\n min-width=\"160px\"\n ><sqm-share-button\n icon=\"envelope\"\n medium=\"email\"\n size=\"medium\"\n pill=\"true\"\n >Email a friend</sqm-share-button\n ><sqm-share-button\n medium=\"twitter\"\n size=\"medium\"\n pill=\"true\"\n >Tweet about us</sqm-share-button\n ><sqm-share-button\n medium=\"facebook\"\n size=\"medium\"\n pill=\"true\"\n >Share on Facebook</sqm-share-button\n ></sqm-portal-container\n ></sqm-titled-section\n ></sqm-portal-container\n >\n </template>\n <template path=\"/editProfile\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqm-portal-container direction=\"column\" gap=\"xxx-large\">\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\n ><sqm-portal-container direction=\"column\" gap=\"xxx-large\">\n <sqm-portal-change-password></sqm-portal-change-password>\n </sqm-portal-container>\n </template>\n <template path=\"/activity\">\n <sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n ></sqm-portal-protected-route>\n <sqm-portal-container\n direction=\"column\"\n padding=\"xxx-large\"\n gap=\"xxx-large\"\n >\n <sqm-text> <h1>Activity</h1></sqm-text>\n <sqm-stat-container space=\"xxxx-large\"\n ><sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/referralsCount\"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardsCountFiltered/AVAILABLE\"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardBalance/CREDIT/CENTS\"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container>\n <sqm-referral-table>\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\n <sqm-referral-table-date-column\n column-title=\"Referred\"\n date-shown=\"dateReferralStarted\"\n ></sqm-referral-table-date-column> </sqm-referral-table\n ></sqm-portal-container>\n </template>\n </sqm-router>\n </sqm-divided-layout>\n </sqm-divided-layout>\n </template>\n </sqm-router>\n </sqb-program-section>\n <sqm-portal-footer\n slot=\"footer\"\n support-email=\"support@example.com\"\n terms-link=\"https://example.com\"\n faq-link=\"https://example.com\"\n terms-text=\"Terms And Conditions\"\n faq-text=\"FAQ\"\n show-powered-by=\"true\"\n ></sqm-portal-footer>\n</sqm-portal-frame>\n";
9641
+
9642
+ const dashboardTemplate = "<sqm-portal-container direction=\"column\" padding=\"xxx-large\" gap=\"xxx-large\"\n ><sqm-titled-section label-margin=\"xx-small\"\n ><sqm-text slot=\"label\"> <p>Welcome back,</p> </sqm-text\n ><sqm-text slot=\"content\">\n <h1>\n <sqm-user-name fallback=\"Anonymous User\"></sqm-user-name>\n </h1> </sqm-text\n ></sqm-titled-section>\n <sqm-stat-container space=\"xxxx-large\"\n ><sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/referralsCount\"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardsCountFiltered/AVAILABLE\"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardBalance/CREDIT/CENTS\"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container> </sqm-portal-container\n><sqm-portal-container direction=\"column\" padding=\"xxx-large\" gap=\"xxx-large\">\n <sqm-titled-section padding=\"none\" label-margin=\"x-large\"\n ><sqm-text slot=\"label\"> <h2>Partner and Profit</h2> </sqm-text\n ><sqm-text slot=\"content\">\n <p>\n Get rewarded for referring potential customers to SaaSquatch. Earn\n commission for each successful lead you send our way\n </p>\n </sqm-text></sqm-titled-section\n >\n <sqm-titled-section label-margin=\"small\" padding=\"none\"\n ><sqm-text slot=\"label\"> <h3>Share your referral link</h3> </sqm-text\n ><sqm-share-link slot=\"content\"></sqm-share-link\n ></sqm-titled-section>\n <sqm-titled-section label-margin=\"small\" padding=\"none\">\n <sqm-text slot=\"label\"> <h3>Share your referral code</h3> </sqm-text\n ><sqm-share-code slot=\"content\"></sqm-share-code>\n </sqm-titled-section>\n <sqm-titled-section label-margin=\"small\" padding=\"none\"\n ><sqm-text slot=\"label\"> <h3>Share via social media</h3> </sqm-text\n ><sqm-portal-container\n slot=\"content\"\n direction=\"row\"\n padding=\"none\"\n gap=\"xxx-large\"\n min-width=\"160px\"\n ><sqm-share-button\n icon=\"envelope\"\n medium=\"email\"\n size=\"medium\"\n pill=\"true\"\n >Email a friend</sqm-share-button\n ><sqm-share-button medium=\"twitter\" size=\"medium\" pill=\"true\"\n >Tweet about us</sqm-share-button\n ><sqm-share-button medium=\"facebook\" size=\"medium\" pill=\"true\"\n >Share on Facebook</sqm-share-button\n ></sqm-portal-container\n ></sqm-titled-section\n ></sqm-portal-container\n>\n";
9643
+
9644
+ const leadSubmitTemplate = "<sqm-referral-iframe></sqm-referral-iframe>\n";
9645
+
9646
+ const editProfileTemplate = "<sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n></sqm-portal-protected-route>\n<sqm-portal-container direction=\"column\" gap=\"xxx-large\">\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\n><sqm-portal-container direction=\"column\" gap=\"xxx-large\">\n <sqm-portal-change-password></sqm-portal-change-password>\n</sqm-portal-container>\n";
9647
+
9648
+ const activityTemplate = "<sqm-portal-protected-route\n require-email-verification=\"true\"\n redirect-to=\"/login\"\n redirect-to-unverified=\"/emailVerification\"\n></sqm-portal-protected-route>\n<sqm-portal-container direction=\"column\" padding=\"xxx-large\" gap=\"xxx-large\">\n <sqm-text> <h1>Activity</h1></sqm-text>\n <sqm-stat-container space=\"xxxx-large\"\n ><sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/referralsCount\"\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardsCountFiltered/AVAILABLE\"\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\n >\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardBalance/CREDIT/CENTS\"\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\n >\n </sqm-stat-container>\n <sqm-referral-table>\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\n <sqm-referral-table-date-column\n column-title=\"Referred\"\n date-shown=\"dateReferralStarted\"\n ></sqm-referral-table-date-column> </sqm-referral-table\n></sqm-portal-container>\n";
9649
+
9650
+ const resetPasswordEmailTemplate = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional //EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n\n<html\n xmlns=\"http://www.w3.org/1999/xhtml\"\n xmlns:o=\"urn:schemas-microsoft-com:office:office\"\n xmlns:v=\"urn:schemas-microsoft-com:vml\"\n>\n <head>\n <!--[if gte mso 9\n ]><xml\n ><o:OfficeDocumentSettings\n ><o:AllowPNG /><o:PixelsPerInch\n >96</o:PixelsPerInch\n ></o:OfficeDocumentSettings\n ></xml\n ><!\n [endif]-->\n <meta content=\"text/html; charset=utf-8\" http-equiv=\"Content-Type\" />\n <meta content=\"width=device-width\" name=\"viewport\" />\n <!--[if !mso]><!-->\n <meta content=\"IE=edge\" http-equiv=\"X-UA-Compatible\" />\n <!--<![endif]-->\n <title></title>\n <!--[if !mso]><!-->\n <!--<![endif]-->\n <style type=\"text/css\">\n body {\n margin: 0;\n padding: 0;\n }\n\n table,\n td,\n tr {\n vertical-align: top;\n border-collapse: collapse;\n }\n\n * {\n line-height: inherit;\n }\n\n a[x-apple-data-detectors=\"true\"] {\n color: inherit !important;\n text-decoration: none !important;\n }\n </style>\n <style id=\"media-query\" type=\"text/css\">\n @media (max-width: 520px) {\n .block-grid,\n .col {\n min-width: 320px !important;\n max-width: 100% !important;\n display: block !important;\n }\n\n .block-grid {\n width: 100% !important;\n }\n\n .col {\n width: 100% !important;\n }\n\n .col_cont {\n margin: 0 auto;\n }\n\n img.fullwidth,\n img.fullwidthOnMobile {\n max-width: 100% !important;\n }\n\n .no-stack .col {\n min-width: 0 !important;\n display: table-cell !important;\n }\n\n .no-stack.two-up .col {\n width: 50% !important;\n }\n\n .no-stack .col.num2 {\n width: 16.6% !important;\n }\n\n .no-stack .col.num3 {\n width: 25% !important;\n }\n\n .no-stack .col.num4 {\n width: 33% !important;\n }\n\n .no-stack .col.num5 {\n width: 41.6% !important;\n }\n\n .no-stack .col.num6 {\n width: 50% !important;\n }\n\n .no-stack .col.num7 {\n width: 58.3% !important;\n }\n\n .no-stack .col.num8 {\n width: 66.6% !important;\n }\n\n .no-stack .col.num9 {\n width: 75% !important;\n }\n\n .no-stack .col.num10 {\n width: 83.3% !important;\n }\n\n .video-block {\n max-width: none !important;\n }\n\n .mobile_hide {\n min-height: 0px;\n max-height: 0px;\n max-width: 0px;\n display: none;\n overflow: hidden;\n font-size: 0px;\n }\n\n .desktop_hide {\n display: block !important;\n max-height: none !important;\n }\n }\n </style>\n <style id=\"icon-media-query\" type=\"text/css\">\n @media (max-width: 520px) {\n .icons-inner {\n text-align: center;\n }\n\n .icons-inner td {\n margin: 0 auto;\n }\n }\n </style>\n </head>\n <body\n class=\"clean-body\"\n style=\"\n margin: 0;\n padding: 0;\n -webkit-text-size-adjust: 100%;\n background-color: #ffffff;\n \"\n >\n <!--[if IE]><div class=\"ie-browser\"><![endif]-->\n <table\n bgcolor=\"#FFFFFF\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n class=\"nl-container\"\n role=\"presentation\"\n style=\"\n table-layout: fixed;\n vertical-align: top;\n min-width: 320px;\n border-spacing: 0;\n border-collapse: collapse;\n mso-table-lspace: 0pt;\n mso-table-rspace: 0pt;\n background-color: #ffffff;\n width: 100%;\n \"\n valign=\"top\"\n width=\"100%\"\n >\n <tbody>\n <tr style=\"vertical-align: top\" valign=\"top\">\n <td style=\"word-break: break-word; vertical-align: top\" valign=\"top\">\n <!--[if (mso)|(IE)]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td align=\"center\" style=\"background-color:#FFFFFF\"><![endif]-->\n <div style=\"background-color: transparent\">\n <div\n class=\"block-grid\"\n style=\"\n min-width: 320px;\n max-width: 500px;\n overflow-wrap: break-word;\n word-wrap: break-word;\n word-break: break-word;\n margin: 0 auto;\n background-color: transparent;\n \"\n >\n <div\n style=\"\n border-collapse: collapse;\n display: table;\n width: 100%;\n background-color: transparent;\n \"\n >\n <!--[if (mso)|(IE)]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"background-color:transparent;\"><tr><td align=\"center\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"width:500px\"><tr class=\"layout-full-width\" style=\"background-color:transparent\"><![endif]-->\n <!--[if (mso)|(IE)]><td align=\"center\" width=\"500\" style=\"background-color:transparent;width:500px; border-top: 0px solid transparent; border-left: 0px solid transparent; border-bottom: 0px solid transparent; border-right: 0px solid transparent;\" valign=\"top\"><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td style=\"padding-right: 0px; padding-left: 0px; padding-top:5px; padding-bottom:5px;\"><![endif]-->\n <div\n class=\"col num12\"\n style=\"\n min-width: 320px;\n max-width: 500px;\n display: table-cell;\n vertical-align: top;\n width: 500px;\n \"\n >\n <div class=\"col_cont\" style=\"width: 100% !important\">\n <!--[if (!mso)&(!IE)]><!-->\n <div\n style=\"\n border-top: 0px solid transparent;\n border-left: 0px solid transparent;\n border-bottom: 0px solid transparent;\n border-right: 0px solid transparent;\n padding-top: 5px;\n padding-bottom: 5px;\n padding-right: 0px;\n padding-left: 0px;\n \"\n >\n <!--<![endif]-->\n <table\n cellpadding=\"0\"\n cellspacing=\"0\"\n role=\"presentation\"\n style=\"\n table-layout: fixed;\n vertical-align: top;\n border-spacing: 0;\n border-collapse: collapse;\n mso-table-lspace: 0pt;\n mso-table-rspace: 0pt;\n \"\n valign=\"top\"\n width=\"100%\"\n >\n <tr style=\"vertical-align: top\" valign=\"top\">\n <td\n align=\"center\"\n style=\"\n word-break: break-word;\n vertical-align: top;\n padding-bottom: 20px;\n padding-left: 10px;\n padding-right: 10px;\n padding-top: 10px;\n text-align: center;\n width: 100%;\n \"\n valign=\"top\"\n width=\"100%\"\n >\n <h1\n style=\"\n color: #444445;\n direction: ltr;\n font-family: 'Helvetica Neue', Helvetica,\n Arial, sans-serif;\n font-size: 20px;\n font-weight: normal;\n letter-spacing: normal;\n line-height: 120%;\n text-align: left;\n margin-top: 0;\n margin-bottom: 0;\n \"\n >\n <strong>Reset your password</strong>\n </h1>\n </td>\n </tr>\n </table>\n <!--[if mso]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td style=\"padding-right: 10px; padding-left: 10px; padding-top: 10px; padding-bottom: 10px; font-family: Arial, sans-serif\"><![endif]-->\n <div\n style=\"\n color: #444445;\n font-family: Arial, Helvetica Neue, Helvetica,\n sans-serif;\n line-height: 1.8;\n padding-top: 10px;\n padding-right: 10px;\n padding-bottom: 10px;\n padding-left: 10px;\n \"\n >\n <div\n class=\"txtTinyMce-wrapper\"\n style=\"\n font-size: 14px;\n line-height: 1.8;\n color: #444445;\n font-family: Arial, Helvetica Neue, Helvetica,\n sans-serif;\n mso-line-height-alt: 25px;\n \"\n >\n <p\n style=\"\n margin: 0;\n font-size: 14px;\n line-height: 1.8;\n word-break: break-word;\n mso-line-height-alt: 25px;\n margin-top: 0;\n margin-bottom: 0;\n \"\n >\n <span style=\"font-size: 14px\"\n >We received a request to reset your password.\n Click the button below to reset your\n password.</span\n >\n </p>\n </div>\n </div>\n <div\n align=\"center\"\n class=\"button-container\"\n style=\"\n padding-top: 10px;\n padding-right: 10px;\n padding-bottom: 10px;\n padding-left: 10px;\n \"\n >\n <!--[if mso]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"border-spacing: 0; border-collapse: collapse; mso-table-lspace:0pt; mso-table-rspace:0pt;\"><tr><td style=\"padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px\" align=\"center\"><v:roundrect xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:w=\"urn:schemas-microsoft-com:office:word\" target=\"_blank\" href={{validationLink}} style=\"height:31.5pt;width:390pt;v-text-anchor:middle;\" arcsize=\"12%\" stroke=\"false\" fillcolor=\"#2270ee\"><w:anchorlock/><v:textbox inset=\"0,0,0,0\"><center style=\"color:#ffffff; font-family:Arial, sans-serif; font-size:14px\"><!\n [endif]--><a\n href=\"{{validationLink}}\"\n target=\"_blank\"\n style=\"\n -webkit-text-size-adjust: none;\n text-decoration: none;\n display: block;\n color: #ffffff;\n background-color: #2270ee;\n border-radius: 5px;\n -webkit-border-radius: 5px;\n -moz-border-radius: 5px;\n width: 100%;\n width: calc(100% - 2px);\n border-top: 1px solid #2270ee;\n border-right: 1px solid #2270ee;\n border-bottom: 1px solid #2270ee;\n border-left: 1px solid #2270ee;\n padding-top: 5px;\n padding-bottom: 5px;\n font-family: 'Helvetica Neue', Helvetica, Arial,\n sans-serif;\n text-align: center;\n mso-border-alt: none;\n word-break: keep-all;\n \"\n target=\"_blank\"\n ><span\n style=\"\n padding-left: 20px;\n padding-right: 20px;\n font-size: 14px;\n display: inline-block;\n letter-spacing: undefined;\n \"\n ><span\n style=\"\n font-size: 16px;\n line-height: 2;\n word-break: break-word;\n mso-line-height-alt: 32px;\n \"\n ><span\n style=\"font-size: 14px; line-height: 28px\"\n >Reset Password</span\n ></span\n ></span\n ></a\n >\n <!--[if mso]></center></v:textbox></v:roundrect></td></tr></table><![endif]-->\n </div>\n <!--[if mso]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td style=\"padding-right: 10px; padding-left: 10px; padding-top: 15px; padding-bottom: 15px; font-family: Arial, sans-serif\"><![endif]-->\n <div\n style=\"\n color: #444445;\n font-family: Arial, Helvetica Neue, Helvetica,\n sans-serif;\n line-height: 1.2;\n padding-top: 15px;\n padding-right: 10px;\n padding-bottom: 15px;\n padding-left: 10px;\n \"\n >\n <div\n class=\"txtTinyMce-wrapper\"\n style=\"\n font-size: 14px;\n line-height: 1.2;\n color: #444445;\n font-family: Arial, Helvetica Neue, Helvetica,\n sans-serif;\n mso-line-height-alt: 17px;\n \"\n >\n <p\n style=\"\n margin: 0;\n font-size: 12px;\n line-height: 1.2;\n word-break: break-word;\n mso-line-height-alt: 14px;\n margin-top: 0;\n margin-bottom: 0;\n \"\n >\n <span style=\"font-size: 12px\"\n >If you didn't request a password reset please\n ignore this email. Your password will not\n change.</span\n >\n </p>\n </div>\n </div>\n <!--[if mso]></td></tr></table><![endif]-->\n <!--[if (!mso)&(!IE)]><!-->\n </div>\n <!--<![endif]-->\n </div>\n </div>\n <!--[if (mso)|(IE)]></td></tr></table><![endif]-->\n <!--[if (mso)|(IE)]></td></tr></table></td></tr></table><![endif]-->\n </div>\n </div>\n </div>\n <!--[if (mso)|(IE)]></td></tr></table><![endif]-->\n </td>\n </tr>\n </tbody>\n </table>\n <!--[if (IE)]></div><![endif]-->\n </body>\n</html>";
9651
+
9652
+ const verifyEmailTemplate = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional //EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n\n<html\n xmlns=\"http://www.w3.org/1999/xhtml\"\n xmlns:o=\"urn:schemas-microsoft-com:office:office\"\n xmlns:v=\"urn:schemas-microsoft-com:vml\"\n>\n <head>\n <!--[if gte mso 9\n ]><xml\n ><o:OfficeDocumentSettings\n ><o:AllowPNG /><o:PixelsPerInch\n >96</o:PixelsPerInch\n ></o:OfficeDocumentSettings\n ></xml\n ><!\n [endif]-->\n <meta content=\"text/html; charset=utf-8\" http-equiv=\"Content-Type\" />\n <meta content=\"width=device-width\" name=\"viewport\" />\n <!--[if !mso]><!-->\n <meta content=\"IE=edge\" http-equiv=\"X-UA-Compatible\" />\n <!--<![endif]-->\n <title></title>\n <!--[if !mso]><!-->\n <!--<![endif]-->\n <style type=\"text/css\">\n body {\n margin: 0;\n padding: 0;\n }\n\n table,\n td,\n tr {\n vertical-align: top;\n border-collapse: collapse;\n }\n\n * {\n line-height: inherit;\n }\n\n a[x-apple-data-detectors=\"true\"] {\n color: inherit !important;\n text-decoration: none !important;\n }\n </style>\n <style id=\"media-query\" type=\"text/css\">\n @media (max-width: 520px) {\n .block-grid,\n .col {\n min-width: 320px !important;\n max-width: 100% !important;\n display: block !important;\n }\n\n .block-grid {\n width: 100% !important;\n }\n\n .col {\n width: 100% !important;\n }\n\n .col_cont {\n margin: 0 auto;\n }\n\n img.fullwidth,\n img.fullwidthOnMobile {\n max-width: 100% !important;\n }\n\n .no-stack .col {\n min-width: 0 !important;\n display: table-cell !important;\n }\n\n .no-stack.two-up .col {\n width: 50% !important;\n }\n\n .no-stack .col.num2 {\n width: 16.6% !important;\n }\n\n .no-stack .col.num3 {\n width: 25% !important;\n }\n\n .no-stack .col.num4 {\n width: 33% !important;\n }\n\n .no-stack .col.num5 {\n width: 41.6% !important;\n }\n\n .no-stack .col.num6 {\n width: 50% !important;\n }\n\n .no-stack .col.num7 {\n width: 58.3% !important;\n }\n\n .no-stack .col.num8 {\n width: 66.6% !important;\n }\n\n .no-stack .col.num9 {\n width: 75% !important;\n }\n\n .no-stack .col.num10 {\n width: 83.3% !important;\n }\n\n .video-block {\n max-width: none !important;\n }\n\n .mobile_hide {\n min-height: 0px;\n max-height: 0px;\n max-width: 0px;\n display: none;\n overflow: hidden;\n font-size: 0px;\n }\n\n .desktop_hide {\n display: block !important;\n max-height: none !important;\n }\n }\n </style>\n <style id=\"icon-media-query\" type=\"text/css\">\n @media (max-width: 520px) {\n .icons-inner {\n text-align: center;\n }\n\n .icons-inner td {\n margin: 0 auto;\n }\n }\n </style>\n </head>\n <body\n class=\"clean-body\"\n style=\"\n margin: 0;\n padding: 0;\n -webkit-text-size-adjust: 100%;\n background-color: #ffffff;\n \"\n >\n <!--[if IE]><div class=\"ie-browser\"><![endif]-->\n <table\n bgcolor=\"#FFFFFF\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n class=\"nl-container\"\n role=\"presentation\"\n style=\"\n table-layout: fixed;\n vertical-align: top;\n min-width: 320px;\n border-spacing: 0;\n border-collapse: collapse;\n mso-table-lspace: 0pt;\n mso-table-rspace: 0pt;\n background-color: #ffffff;\n width: 100%;\n \"\n valign=\"top\"\n width=\"100%\"\n >\n <tbody>\n <tr style=\"vertical-align: top\" valign=\"top\">\n <td style=\"word-break: break-word; vertical-align: top\" valign=\"top\">\n <!--[if (mso)|(IE)]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td align=\"center\" style=\"background-color:#FFFFFF\"><![endif]-->\n <div style=\"background-color: transparent\">\n <div\n class=\"block-grid\"\n style=\"\n min-width: 320px;\n max-width: 500px;\n overflow-wrap: break-word;\n word-wrap: break-word;\n word-break: break-word;\n margin: 0 auto;\n background-color: transparent;\n \"\n >\n <div\n style=\"\n border-collapse: collapse;\n display: table;\n width: 100%;\n background-color: transparent;\n \"\n >\n <!--[if (mso)|(IE)]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"background-color:transparent;\"><tr><td align=\"center\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"width:500px\"><tr class=\"layout-full-width\" style=\"background-color:transparent\"><![endif]-->\n <!--[if (mso)|(IE)]><td align=\"center\" width=\"500\" style=\"background-color:transparent;width:500px; border-top: 0px solid transparent; border-left: 0px solid transparent; border-bottom: 0px solid transparent; border-right: 0px solid transparent;\" valign=\"top\"><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td style=\"padding-right: 0px; padding-left: 0px; padding-top:5px; padding-bottom:5px;\"><![endif]-->\n <div\n class=\"col num12\"\n style=\"\n min-width: 320px;\n max-width: 500px;\n display: table-cell;\n vertical-align: top;\n width: 500px;\n \"\n >\n <div class=\"col_cont\" style=\"width: 100% !important\">\n <!--[if (!mso)&(!IE)]><!-->\n <div\n style=\"\n border-top: 0px solid transparent;\n border-left: 0px solid transparent;\n border-bottom: 0px solid transparent;\n border-right: 0px solid transparent;\n padding-top: 5px;\n padding-bottom: 5px;\n padding-right: 0px;\n padding-left: 0px;\n \"\n >\n <!--<![endif]-->\n <table\n cellpadding=\"0\"\n cellspacing=\"0\"\n role=\"presentation\"\n style=\"\n table-layout: fixed;\n vertical-align: top;\n border-spacing: 0;\n border-collapse: collapse;\n mso-table-lspace: 0pt;\n mso-table-rspace: 0pt;\n \"\n valign=\"top\"\n width=\"100%\"\n >\n <tr style=\"vertical-align: top\" valign=\"top\">\n <td\n align=\"center\"\n style=\"\n word-break: break-word;\n vertical-align: top;\n padding-bottom: 20px;\n padding-left: 10px;\n padding-right: 10px;\n padding-top: 10px;\n text-align: center;\n width: 100%;\n \"\n valign=\"top\"\n width=\"100%\"\n >\n <h1\n style=\"\n color: #444445;\n direction: ltr;\n font-family: 'Helvetica Neue', Helvetica,\n Arial, sans-serif;\n font-size: 20px;\n font-weight: normal;\n letter-spacing: normal;\n line-height: 120%;\n text-align: left;\n margin-top: 0;\n margin-bottom: 0;\n \"\n >\n <strong>Verify your email address</strong>\n </h1>\n </td>\n </tr>\n </table>\n <!--[if mso]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td style=\"padding-right: 10px; padding-left: 10px; padding-top: 10px; padding-bottom: 10px; font-family: Arial, sans-serif\"><![endif]-->\n <div\n style=\"\n color: #444445;\n font-family: Arial, Helvetica Neue, Helvetica,\n sans-serif;\n line-height: 1.8;\n padding-top: 10px;\n padding-right: 10px;\n padding-bottom: 10px;\n padding-left: 10px;\n \"\n >\n <div\n class=\"txtTinyMce-wrapper\"\n style=\"\n font-size: 14px;\n line-height: 1.8;\n color: #444445;\n font-family: Arial, Helvetica Neue, Helvetica,\n sans-serif;\n mso-line-height-alt: 25px;\n \"\n >\n <p\n style=\"\n margin: 0;\n font-size: 14px;\n line-height: 1.8;\n word-break: break-word;\n mso-line-height-alt: 25px;\n margin-top: 0;\n margin-bottom: 0;\n \"\n >\n <span style=\"font-size: 14px\"\n >Thank you for signing up! Please click the button below\n to verify your email address.</span\n >\n </p>\n </div>\n </div>\n <!--[if mso]></td></tr></table><![endif]-->\n <div\n align=\"center\"\n class=\"button-container\"\n style=\"\n padding-top: 10px;\n padding-right: 10px;\n padding-bottom: 10px;\n padding-left: 10px;\n \"\n >\n <!--[if mso]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"border-spacing: 0; border-collapse: collapse; mso-table-lspace:0pt; mso-table-rspace:0pt;\"><tr><td style=\"padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px\" align=\"center\"><v:roundrect xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:w=\"urn:schemas-microsoft-com:office:word\" target=\"_blank\" href={{validationLink}} style=\"height:31.5pt;width:390pt;v-text-anchor:middle;\" arcsize=\"12%\" stroke=\"false\" fillcolor=\"#2270ee\"><w:anchorlock/><v:textbox inset=\"0,0,0,0\"><center style=\"color:#ffffff; font-family:Arial, sans-serif; font-size:14px\"><!\n [endif]--><a\n href={{validationLink}}\n\t\t\t\t\t\t\ttarget=\"_blank\"\n style=\"\n -webkit-text-size-adjust: none;\n text-decoration: none;\n display: block;\n color: #ffffff;\n background-color: #2270ee;\n border-radius: 5px;\n -webkit-border-radius: 5px;\n -moz-border-radius: 5px;\n width: 100%;\n width: calc(100% - 2px);\n border-top: 1px solid #2270ee;\n border-right: 1px solid #2270ee;\n border-bottom: 1px solid #2270ee;\n border-left: 1px solid #2270ee;\n padding-top: 5px;\n padding-bottom: 5px;\n font-family: 'Helvetica Neue', Helvetica, Arial,\n sans-serif;\n text-align: center;\n mso-border-alt: none;\n word-break: keep-all;\n \"\n target=\"_blank\"\n ><span\n style=\"\n padding-left: 20px;\n padding-right: 20px;\n font-size: 14px;\n display: inline-block;\n letter-spacing: undefined;\n \"\n ><span\n style=\"\n font-size: 16px;\n line-height: 2;\n word-break: break-word;\n mso-line-height-alt: 32px;\n \"\n ><span\n style=\"font-size: 14px; line-height: 28px\"\n >Verify Email</span\n ></span\n ></span\n ></a\n >\n <!--[if mso]></center></v:textbox></v:roundrect></td></tr></table><![endif]-->\n </div>\n <!--<![endif]-->\n </div>\n </div>\n <!--[if (mso)|(IE)]></td></tr></table><![endif]-->\n <!--[if (mso)|(IE)]></td></tr></table></td></tr></table><![endif]-->\n </div>\n </div>\n </div>\n <!--[if (mso)|(IE)]></td></tr></table><![endif]-->\n </td>\n </tr>\n </tbody>\n </table>\n <!--[if (IE)]></div><![endif]-->\n </body>\n</html>";
9653
+
9654
+ const loginTemplate = "<sqm-hero background=\"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80\">\n <sqm-portal-login></sqm-portal-login>\n</sqm-hero>\n";
9655
+
9656
+ const registerTemplate = "<sqm-hero\n background=\"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80\"\n>\n <sqm-portal-register>\n <sqm-name-fields slot=\"formData\"></sqm-name-fields>\n </sqm-portal-register>\n</sqm-hero>\n";
9657
+
9658
+ const forgotPasswordTemplate = "<sqm-hero background=\"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80\">\n <sqm-portal-forgot-password\n email-label=\"Business Email\"\n ></sqm-portal-forgot-password>\n</sqm-hero>\n";
9659
+
9660
+ const resetPasswordTemplate = "<sqm-portal-reset-password confirm-password=\"true\"></sqm-portal-reset-password>\n";
9661
+
9662
+ const emailVerifiedTemplate = "<sqm-portal-verify-email></sqm-portal-verify-email>\n";
9663
+
9664
+ const emailVerificationTemplate = "<sqm-portal-protected-route redirect-to=\"/login\"></sqm-portal-protected-route>\n<sqm-portal-email-verification></sqm-portal-email-verification>\n";
9665
+
9666
+ const LoginReadme = "# sqm-portal-login\n\n\n\n<!-- Auto Generated Below -->\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| --------------------- | ----------------------- | ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- |\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` |\n| `emailLabel` | `email-label` | | `string` | `\"Email\"` |\n| `forgotPasswordLabel` | `forgot-password-label` | | `string` | `\"Forgot Password?\"` |\n| `forgotPasswordPath` | `forgot-password-path` | Redirect participants to this page to reset their password | `string` | `\"/forgotPassword\"` |\n| `nextPage` | `next-page` | Redirect participants to this page after they successfully login. | `string` | `\"/\"` |\n| `pageLabel` | `page-label` | | `string` | `\"Sign in to your account\"` |\n| `passwordLabel` | `password-label` | | `string` | `\"Password\"` |\n| `registerLabel` | `register-label` | | `string` | `\"Register\"` |\n| `registerPath` | `register-path` | Redirect participants to this page to start registration. | `string` | `\"/register\"` |\n| `submitLabel` | `submit-label` | | `string` | `\"Sign In\"` |\n\n\n## Dependencies\n\n### Used by\n\n - [sqm-stencilbook](../sqm-stencilbook)\n\n### Depends on\n\n- [sqm-form-message](../sqm-form-message)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-portal-login --> sqm-form-message\n sqm-stencilbook --> sqm-portal-login\n style sqm-portal-login fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n";
9667
+
9668
+ const ReferralIframeReadme = "# sqm-referral-iframe\n\n\n\n<!-- Auto Generated Below -->\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| -------------- | --------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | ----------- |\n| `demoData` | -- | | `{ states?: { content: { iframeSrc: string; iframeHeight: string; iframeWidth: string; }; }; data?: { shareCode: string; }; }` | `undefined` |\n| `iframeHeight` | `iframe-height` | Define the height of the iframe with any valid CSS height value. Example: 100px, 5rem, or auto. | `string` | `\"100%\"` |\n| `iframeSrc` | `iframe-src` | URL of iframe to display | `string` | `undefined` |\n| `iframeWidth` | `iframe-width` | Define the width of the iframe with any valid CSS width value. Example: 100px, 5rem, or auto. | `string` | `\"100%\"` |\n\n\n## Dependencies\n\n### Used by\n\n - [sqm-stencilbook](../sqm-stencilbook)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-stencilbook --> sqm-referral-iframe\n style sqm-referral-iframe fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n";
9669
+
9670
+ const ForgotPasswordReadme = "# sqm-portal-forgot-password\n\n\n\n<!-- Auto Generated Below -->\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| -------------- | --------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ |\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; success: boolean; loginPath: string; }; content?: { secondaryButton: any; messageSlot: any; emailLabel?: string; submitLabel?: string; }; }` | `undefined` |\n| `emailLabel` | `email-label` | | `string` | `\"Email\"` |\n| `headerText` | `header-text` | | `string` | `\"Enter your email below to receive a password reset link.\"` |\n| `loginPath` | `login-path` | | `string` | `\"/login\"` |\n| `loginText` | `login-text` | Sign in link text | `string` | `\"Sign In\"` |\n| `redirectPath` | `redirect-path` | Redirect participants to this page after they verify their email. | `string` | `\"/resetPassword\"` |\n| `submitLabel` | `submit-label` | | `string` | `\"Request Password Reset\"` |\n\n\n## Dependencies\n\n### Depends on\n\n- [sqm-form-message](../sqm-form-message)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-portal-forgot-password --> sqm-form-message\n style sqm-portal-forgot-password fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n";
9671
+
9672
+ const RegisterReadme = "# sqm-portal-register\n\n\n\n<!-- Auto Generated Below -->\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| ------------------------------ | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- |\n| `confirmPassword` | `confirm-password` | | `boolean` | `false` |\n| `confirmPasswordLabel` | `confirm-password-label` | | `string` | `\"Confirm Password\"` |\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; confirmPassword: boolean; hideInputs: boolean; registrationFormState: RegistrationFormState; disablePasswordValidation?: boolean; loginPath: string; }; refs?: { formRef: any; }; content?: { formData?: VNode; terms?: VNode; passwordField?: VNode; secondaryButton?: VNode; emailLabel?: string; passwordLabel?: string; submitLabel?: string; pageLabel?: string; confirmPasswordLabel: string; requiredFieldErrorMessage: string; invalidEmailErrorMessage: string; }; }` | `undefined` |\n| `disablePasswordValidation` | `disable-password-validation` | | `boolean` | `false` |\n| `emailLabel` | `email-label` | | `string` | `\"Email\"` |\n| `hideInputs` | `hide-inputs` | Hides the email and password fields. Note: If you hide default inputs, you must add additional input fields. They must have the input name attributes \"email\" and \"password\" for this form to succeed. | `boolean` | `false` |\n| `invalidEmailErrorMessage` | `invalid-email-error-message` | The message to be displayed when the email used is invalid or blocked. | `string` | `\"Must be a valid email address\"` |\n| `loginLabel` | `login-label` | | `string` | `\"Sign in\"` |\n| `loginPath` | `login-path` | Redirect participants to this page after clicking the login button. | `string` | `\"/login\"` |\n| `networkErrorMessage` | `network-error-message` | The message to be displayed when a the form submission fails unexpectedly. | `string` | `\"Network request failed.\"` |\n| `nextPage` | `next-page` | Redirect participants to this page from their verification email | `string` | `\"/\"` |\n| `pageLabel` | `page-label` | | `string` | `\"Register\"` |\n| `passwordLabel` | `password-label` | | `string` | `\"Password\"` |\n| `passwordMismatchErrorMessage` | `password-mismatch-error-message` | The message to be displayed when password inputs do not match. | `string` | `\"Passwords do not match.\"` |\n| `redirectPath` | `redirect-path` | The page that participants are redirected to from the verification email. | `string` | `\"/verifyEmail\"` |\n| `requiredFieldErrorMessage` | `required-field-error-message` | The message to be displayed when a required field is not filled. | `string` | `\"Cannot be empty\"` |\n| `submitLabel` | `submit-label` | | `string` | `\"Register\"` |\n\n\n## Dependencies\n\n### Used by\n\n - [sqm-stencilbook](../sqm-stencilbook)\n\n### Depends on\n\n- [sqm-form-message](../sqm-form-message)\n- [sqm-password-field](../sqm-password-field)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-portal-register --> sqm-form-message\n sqm-portal-register --> sqm-password-field\n sqm-stencilbook --> sqm-portal-register\n style sqm-portal-register fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n";
9673
+
9674
+ const EditProfileReadme = "# sqm-portal-profile\n\n\n\n<!-- Auto Generated Below -->\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| ------------------------ | --------------------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |\n| `countrytext` | `countrytext` | | `string` | `\"Country\"` |\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` |\n| `editProfileHeader` | `edit-profile-header` | | `string` | `\"Edit your profile\"` |\n| `editProfileSubHeader` | `edit-profile-sub-header` | | `string` | `\"Personal Information\"` |\n| `emailtext` | `emailtext` | | `string` | `\"Email\"` |\n| `firstnametext` | `firstnametext` | | `string` | `\"First Name\"` |\n| `hideCountry` | `hide-country` | | `boolean` | `false` |\n| `lastnametext` | `lastnametext` | | `string` | `\"Last Name\"` |\n| `submitChangeButtonText` | `submit-change-button-text` | | `string` | `\"Submit Changes\"` |\n\n\n## Dependencies\n\n### Depends on\n\n- [sqm-form-message](../sqm-form-message)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-portal-profile --> sqm-form-message\n style sqm-portal-profile fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n";
9675
+
9676
+ const ResetPasswordReadme = "# sqm-portal-reset-password\n\n\n\n<!-- Auto Generated Below -->\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| --------------------------- | ------------------------------ | -------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |\n| `confirmPassword` | `confirm-password` | | `boolean` | `false` |\n| `confirmPasswordFieldLabel` | `confirm-password-field-label` | | `string` | `\"Confirm Password\"` |\n| `continueButtonText` | `continue-button-text` | Button text displayed after a successful password reset. | `string` | `\"Continue\"` |\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` |\n| `failedPage` | `failed-page` | Redirect participants to this page if password reset fails due to an outdated reset attempt. | `string` | `\"/\"` |\n| `nextPage` | `next-page` | Redirect participants to this page when they successfully reset their password. | `string` | `\"/\"` |\n| `passwordFieldLabel` | `password-field-label` | | `string` | `\"New Password\"` |\n| `passwordResetHeader` | `password-reset-header` | Displayed after a successful password reset. | `string` | `\"Password reset\"` |\n| `resetPasswordButtonText` | `reset-password-button-text` | | `string` | `\"Reset Password\"` |\n| `resetPasswordHeader` | `reset-password-header` | | `string` | `\"Reset your password\"` |\n\n\n## Dependencies\n\n### Depends on\n\n- [sqm-form-message](../sqm-form-message)\n- [sqm-password-field](../sqm-password-field)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-portal-reset-password --> sqm-form-message\n sqm-portal-reset-password --> sqm-password-field\n style sqm-portal-reset-password fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n";
9677
+
9678
+ const EmailVerificationReadme = "# sqm-portal-email-verification\n\n\n\n<!-- Auto Generated Below -->\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| ---------------------------- | ------------------------------ | ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; success: boolean; isVerified?: boolean; loadingVerification?: boolean; countdown?: number; }; content?: { email: string; verifyMessage: string; emailVerificationHeader: string; resendEmailButtonText: string; verificationStatusMessage?: string; verificationLoadingMessage?: string; }; }` | `undefined` |\n| `emailVerificationHeader` | `email-verification-header` | | `string` | `\"Verify your email\"` |\n| `redirectPath` | `redirect-path` | Redirect participants to this page from their verification email. | `string` | `\"/verifyEmail\"` |\n| `resendEmailButtonText` | `resend-email-button-text` | | `string` | `\"Re-send Email\"` |\n| `verificationLoadingMessage` | `verification-loading-message` | | `string` | `\"Checking verification status\"` |\n| `verificationStatusMessage` | `verification-status-message` | | `string` | `\"Checking verification status in {countdown}\"` |\n| `verifyMessage` | `verify-message` | | `string` | `\"A verification email was sent to {email}. Please verify your email to continue to the portal. Resending an email will invalidate the previous email.\"` |\n\n\n## Dependencies\n\n### Depends on\n\n- [sqm-form-message](../sqm-form-message)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-portal-email-verification --> sqm-form-message\n style sqm-portal-email-verification fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n";
9679
+
9680
+ const EmailVerifiedReadme = "# sqm-portal-verify-email\n\n\n\n<!-- Auto Generated Below -->\n\n\n## Properties\n\n| Property | Attribute | Description | Type | Default |\n| ------------ | ------------- | ------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ----------- |\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; verified: boolean; }; data?: { oobCode: string; }; }` | `undefined` |\n| `failedPage` | `failed-page` | Redirect participants to this page if verification fails due to an outdated verification attempt. | `string` | `\"/\"` |\n| `nextPage` | `next-page` | Redirect participants to this page when they successfully verify their email. | `string` | `\"/\"` |\n\n\n## Dependencies\n\n### Depends on\n\n- [sqm-form-message](../sqm-form-message)\n\n### Graph\n```mermaid\ngraph TD;\n sqm-portal-verify-email --> sqm-form-message\n style sqm-portal-verify-email fill:#f9f,stroke:#333,stroke-width:4px\n```\n\n----------------------------------------------\n\n*Built with [StencilJS](https://stenciljs.com/)*\n";
9681
+
9682
+ const PortalTemplates_stories = {
9683
+ title: "Templates / Portal",
9684
+ };
9685
+ function useTemplate$2(templateString) {
9686
+ const [editedTemplate, setEditedTemplate] = useState(templateString);
9687
+ const [previewTemplate, setPreviewTemplate] = useState(templateString);
9688
+ return {
9689
+ states: { previewTemplate, editedTemplate },
9690
+ callbacks: { setEditedTemplate, setPreviewTemplate },
9691
+ };
9692
+ }
9693
+ const DefaultPortal = createHookStory(() => {
9694
+ const { states, callbacks } = useTemplate$2(portalTemplate);
9695
+ return (h(DefaultTemplateView, { states: states, callbacks: callbacks, template: portalTemplateWithDashboard }));
9696
+ });
9697
+ const MultiProgramPortal = createHookStory(() => {
9698
+ const { states, callbacks } = useTemplate$2(multiProgramTemplate);
9699
+ return (h(DefaultTemplateView, { states: states, callbacks: callbacks, template: multiProgramTemplateWithDashboard }));
9700
+ });
9701
+ const LeadSubmitPortal = createHookStory(() => {
9702
+ const { states, callbacks } = useTemplate$2(portalLeadSubmitTemplate);
9703
+ return (h(DefaultTemplateView, { states: states, callbacks: callbacks, template: portalLeadSubmitTemplateWithDashboard, leadSubmit: true }));
9704
+ });
9705
+ const Login = createHookStory(() => {
9706
+ const { states, callbacks } = useTemplate$2(loginTemplate);
9707
+ return (h(TemplateView$1, { states: states, callbacks: callbacks, readme: LoginReadme }));
9708
+ });
9709
+ const ForgotPassword = createHookStory(() => {
9710
+ const { states, callbacks } = useTemplate$2(forgotPasswordTemplate);
9711
+ return (h(TemplateView$1, { states: states, callbacks: callbacks, readme: ForgotPasswordReadme }));
9712
+ });
9713
+ const Register = createHookStory(() => {
9714
+ const { states, callbacks } = useTemplate$2(registerTemplate);
9715
+ return (h(TemplateView$1, { states: states, callbacks: callbacks, readme: RegisterReadme }));
9716
+ });
9717
+ const Dashboard$1 = createHookStory(() => {
9718
+ const { states, callbacks } = useTemplate$2(dashboardTemplate);
9719
+ return h(TemplateView$1, { states: states, callbacks: callbacks });
9720
+ });
9721
+ const LeadSubmitIframe = createHookStory(() => {
9722
+ const { states, callbacks } = useTemplate$2(leadSubmitTemplate);
9723
+ return (h(TemplateView$1, { states: states, callbacks: callbacks, readme: ReferralIframeReadme }));
9724
+ });
9725
+ const Activity$1 = createHookStory(() => {
9726
+ const { states, callbacks } = useTemplate$2(activityTemplate);
9727
+ return h(TemplateView$1, { states: states, callbacks: callbacks });
9728
+ });
9729
+ const EditProfile$2 = createHookStory(() => {
9730
+ const { states, callbacks } = useTemplate$2(editProfileTemplate);
9731
+ return (h(TemplateView$1, { states: states, callbacks: callbacks, readme: EditProfileReadme }));
9732
+ });
9733
+ const ResetPassword = createHookStory(() => {
9734
+ const { states, callbacks } = useTemplate$2(resetPasswordTemplate);
9735
+ return (h(TemplateView$1, { states: states, callbacks: callbacks, readme: ResetPasswordReadme }));
9736
+ });
9737
+ const EmailVerification = createHookStory(() => {
9738
+ const { states, callbacks } = useTemplate$2(emailVerificationTemplate);
9739
+ return (h(TemplateView$1, { states: states, callbacks: callbacks, readme: EmailVerificationReadme }));
9740
+ });
9741
+ const EmailVerified = createHookStory(() => {
9742
+ const { states, callbacks } = useTemplate$2(emailVerifiedTemplate);
9743
+ return (h(TemplateView$1, { states: states, callbacks: callbacks, readme: EmailVerifiedReadme }));
9744
+ });
9745
+ const Widget$1 = createHookStory(() => {
9746
+ return (h("sqb-widget", { "widget-type": "p/Vacay-referral/w/referrerWidget", demoData: {
9747
+ data: {
9748
+ html: dashboardTemplate,
9749
+ },
9750
+ } }));
9751
+ });
9752
+ const ResetPasswordEmail = createHookStory(() => {
9753
+ const { states, callbacks } = useTemplate$2(resetPasswordEmailTemplate);
9754
+ return h(TemplateView$1, { states: states, callbacks: callbacks });
9755
+ });
9756
+ const VerifyEmail = createHookStory(() => {
9757
+ const { states, callbacks } = useTemplate$2(verifyEmailTemplate);
9758
+ return h(TemplateView$1, { states: states, callbacks: callbacks });
9759
+ });
9760
+
9761
+ const PortalTemplates = /*#__PURE__*/Object.freeze({
9762
+ __proto__: null,
9763
+ 'default': PortalTemplates_stories,
9764
+ DefaultPortal: DefaultPortal,
9765
+ MultiProgramPortal: MultiProgramPortal,
9766
+ LeadSubmitPortal: LeadSubmitPortal,
9767
+ Login: Login,
9768
+ ForgotPassword: ForgotPassword,
9769
+ Register: Register,
9770
+ Dashboard: Dashboard$1,
9771
+ LeadSubmitIframe: LeadSubmitIframe,
9772
+ Activity: Activity$1,
9773
+ EditProfile: EditProfile$2,
9774
+ ResetPassword: ResetPassword,
9775
+ EmailVerification: EmailVerification,
9776
+ EmailVerified: EmailVerified,
9777
+ Widget: Widget$1,
9778
+ ResetPasswordEmail: ResetPasswordEmail,
9779
+ VerifyEmail: VerifyEmail
9780
+ });
9781
+
9768
9782
  const ProgramMenu_stories = {
9769
9783
  title: "Components/Program Menu",
9770
9784
  };
@@ -9832,7 +9846,7 @@ const PoweredByImg = /*#__PURE__*/Object.freeze({
9832
9846
  CustomWidthAndHeight: CustomWidthAndHeight
9833
9847
  });
9834
9848
 
9835
- const scenario$f = "Feature: Portal Footer\n\n Background: A user is viewing the portal\n Given a hosted portal\n And a user is viewing the portal\n And the portal has a footer\n\n Scenario Outline: FAQ and T&C links/text are configurable and open in a new page when clicked\n Given the footer has prop \"terms-link\" with value \"https://example.com/terms\"\n And prop \"terms-text\" with value \"Terms and Conditions\"\n And prop \"faq-link\" with value \"https://example.com/FAQ\"\n And prop \"faq-text\" with value \"Visit FAQ\"\n When a user clicks on the \"Visit FAQ\" link\n Then they will be redirected to \"https://example.com/FAQ\" in a new page\n When they go back to the portal\n And click on the \"Terms and Conditions\" link\n Then they will be redirected to \"https://example.com/terms\" in a new page\n\n Scenario Outline: FAQ/T&C Links are not shown if a link is not provided\n Given the footer does not have <linkProp>\n But it <mayHave> <textProp> with <value>\n Then the <link> will not be shown in the footer\n Examples:\n | linkProp | mayHave | textProp | value | link |\n | terms-link | has | termsText | Terms and Conditions | T&C Link |\n | faq-link | has | faqText | Visit FAQ | FAQ Link |\n | terms-link | doesn't have | | | T&C Link |\n | faq-link | doesn't have | | | FAQ Link |\n\n Scenario Outline: The support email and text is configurable but has a default\n Given the footer <mayHave> <emailPropWithValue>\n And the footer <mayAlsoHave> <textPropWithValue>\n Then the footer's support email text is <renderedEmailText>\n And the email address will be a mailto link with <mailtoEmail>\n When the user clicks on the email address mailto Link\n Then the users preferred email client will open with a draft email to <mailtoEmail>\n Examples:\n | mayHave | emailPropWithValue | mayAlsoHave | textPropWithValue | mailtoEmail | renderedEmailText |\n | has | support@saasquatch.com | has | For support please contact {email} | support@saasquatch.com | For support please contact support@saasquatch.com |\n | doesn't have | N/A | doesn't have | N/A | support@example.com | For program support, contact support@example.com |\n\n Scenario Outline: Powered by SaaSquatch is shown by default\n Given the footer <mayHaveProp> \"hide-powered-by\" with <value>\n Then the powered by SaaSquatch image <mayBeShown>\n Examples:\n | mayHaveProp | value | mayBeShown |\n | has prop | true | isn't shown |\n | has prop | false | is shown |\n | has prop | test | isn't shown |\n | has prop | | isn't shown |\n | doesn't have prop | | is shown |\n\n Scenario Outline: Support text is shown by default\n Given the footer <mayHaveProp> \"hide-support-text\" with <value>\n Then the support text <mayBeShown>\n Examples:\n | mayHaveProp | value | mayBeShown |\n | has prop | true | isn't shown |\n | has prop | false | is shown |\n | has prop | test | isn't shown |\n | has prop | | isn't shown |\n | doesn't have prop | | is shown |\n\n Scenario: Powered By Saasquatch links out to \"https://saasquatch.com\"\n Given the footer has the powered by SaaSquatch image\n When a user clicks on it\n Then they will be redirected to \"https://saasquatch.com\" in a new page";
9849
+ const scenario$f = "Feature: Portal Footer\n\n Background: A user is viewing the portal\n Given a hosted portal\n And a user is viewing the portal\n And the portal has a footer\n\n Scenario Outline: FAQ and T&C links/text are configurable and open in a new page when clicked\n Given the footer has prop \"terms-link\" with value \"https://example.com/terms\"\n And prop \"terms-text\" with value \"Terms and Conditions\"\n And prop \"faq-link\" with value \"https://example.com/FAQ\"\n And prop \"faq-text\" with value \"Visit FAQ\"\n When a user clicks on the \"Visit FAQ\" link\n Then they will be redirected to \"https://example.com/FAQ\" in a new page\n When they go back to the portal\n And click on the \"Terms and Conditions\" link\n Then they will be redirected to \"https://example.com/terms\" in a new page\n\n Scenario Outline: FAQ/T&C Links are not shown if a link is not provided\n Given the footer does not have <linkProp>\n But it <mayHave> <textProp> with <value>\n Then the <link> will not be shown in the footer\n Examples:\n | linkProp | mayHave | textProp | value | link |\n | terms-link | has | termsText | Terms and Conditions | T&C Link |\n | faq-link | has | faqText | Visit FAQ | FAQ Link |\n | terms-link | doesn't have | | | T&C Link |\n | faq-link | doesn't have | | | FAQ Link |\n\n Scenario Outline: The support email and text is configurable but has a default\n Given the footer <mayHave> <emailPropWithValue>\n And the footer <mayAlsoHave> <textPropWithValue>\n Then the footer's support email text is <renderedEmailText>\n And the email address will be a mailto link with <mailtoEmail>\n When the user clicks on the email address mailto Link\n Then the users preferred email client will open with a draft email to <mailtoEmail>\n Examples:\n | mayHave | emailPropWithValue | mayAlsoHave | textPropWithValue | mailtoEmail | renderedEmailText |\n | has | support@saasquatch.com | has | For support please contact {email} | support@saasquatch.com | For support please contact support@saasquatch.com |\n | doesn't have | N/A | doesn't have | N/A | support@example.com | For program support, contact support@example.com |\n\n Scenario Outline: Powered by SaaSquatch can be hidden\n Given the footer <mayHaveProp> \"hide-powered-by\" with <value>\n Then the powered by SaaSquatch image <mayBeShown>\n Examples:\n | mayHaveProp | value | mayBeShown |\n | has prop | true (default) | isn't shown |\n | has prop | false | is shown |\n | has prop | test | isn't shown |\n | has prop | | isn't shown |\n | doesn't have prop | | is shown |\n\n Scenario Outline: Support text can be hidden\n Given the footer <mayHaveProp> \"hide-support-text\" with <value>\n Then the support text <mayBeShown>\n Examples:\n | mayHaveProp | value | mayBeShown |\n | has prop | false (default) | is shown |\n | has prop | true | isn't shown |\n | has prop | test | isn't shown |\n | has prop | | isn't shown |\n | doesn't have prop | | is shown |\n\n Scenario: Powered By Saasquatch links out to marketing website\n Given the footer has the powered by SaaSquatch image\n When a user clicks on it\n Then they will be redirected to \"https://www.saasquatch.com/?utm_source=app&utm_medium=user-widget&utm_campaign=referral-widget\" in a new page";
9836
9850
 
9837
9851
  const PortalFooter_stories = {
9838
9852
  title: "Components/Portal Footer",
@@ -9868,7 +9882,7 @@ const PortalFooter = /*#__PURE__*/Object.freeze({
9868
9882
  FooterNoSupportText: FooterNoSupportText
9869
9883
  });
9870
9884
 
9871
- const scenario$g = "Feature: Hero Unit\n\n Background: A portal with a hero unit exists\n Given a hosted portal\n And the portal has hero unit on the login page\n And a user is viewing the login page\n\n Scenario: The hero unit defaults to a single column layout\n Given a hero unit does not have a \"columns\" prop\n But the following html is wrapped by the hero unit\n \"\"\"\n <sqm-portal-login></sqm-portal-login>\n <div slot=\"secondary-column\">\n <h1 style=\"text-align:center\">Get Referring!</h1>\n <p style=\"text-align:center\">\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do\n eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim\n ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut\n aliquip ex ea commodo consequat. Duis aute irure dolor in\n reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla\n pariatur.\n </p>\n </div>\n \"\"\"\n Then only a single column will be displayed\n And within it will be the login component\n\n Scenario Outline: The hero unit supports single or dual column layouts\n Given a hero unit with prop \"columns\" having <columnValue>\n And it wraps <html>\n Then the hero unit displays <columnValue> columns\n Examples:\n | columnValue | html |\n | 1 | <h1>Column 1!</h1> |\n | 2 | <h1>Column 1!</h1><div slot=\"secondary-column\"><h1 style=\"text-align:center\">Column 2!</h1></div> |\n\n Scenario: HTML to be displayed in the second column comes from the \"secondary-column\" slot\n Given a hero unit with \"columns\" \"2\"\n And the following html\n \"\"\"\n <h1>Column 1!</h1>\n <div>\n <h1 style=\"text-align:center\">Column 2!</h1>\n </div>\n \"\"\"\n When the hero unit is rendered\n Then only one column is displayed with content\n And column 1 will contain the \"Column 1!\" text\n And column 1 will contain the \"Column 2!\" text\n When the div for column two is updated to have 'slot=\"secondary-column\"'\n Then the two columns are displayed with content\n And column 1 will contain the \"Column 1!\" text\n And column 2 will contain the \"Column 2!\" text\n\n Scenario Outline: A background for the hero unit can be set as an image or colour\n Given a hero unit with <backgroundPropValue>\n Then the background will be <background>\n Examples:\n | background | background |\n | https://images.unsplash.com/photo-1599676821464-3555954838d | image of misty mountains |\n | LightSlateGrey | light slate grey |\n | #00FF00 | green |\n | rgb(128,0,128) | purple |\n\n Scenario Outline: Wrap Direction can be configured for mobile experiences\n Given a hero unit with the following HTML\n \"\"\"\n <h1>Column 1!</h1>\n <div slot=\"secondary-column\">\n <h1 style=\"text-align:center\">Column 2!</h1>\n </div>\n \"\"\"\n And prop \"wrap-direction\" has <value>\n When the window width is less than 600px\n Then the two columns will stack\n And <column> will be on top\n Examples:\n | value | column |\n | wrap | 1 |\n | wrap-reverse | 2 |\n | | 1 |";
9885
+ const scenario$g = "@author:noah\n@owner:noah\n\nFeature: Hero Unit\n\n Background: A portal with a hero unit exists\n Given a hosted portal\n And the portal has hero unit on the login page\n And a user is viewing the login page\n\n Scenario: The hero unit defaults to a single column layout\n Given a hero unit does not have a \"columns\" prop\n But the following html is wrapped by the hero unit\n \"\"\"\n <sqm-portal-login></sqm-portal-login>\n <div slot=\"secondary-column\">\n <h1 style=\"text-align:center\">Get Referring!</h1>\n <p style=\"text-align:center\">\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do\n eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim\n ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut\n aliquip ex ea commodo consequat. Duis aute irure dolor in\n reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla\n pariatur.\n </p>\n </div>\n \"\"\"\n Then only a single column will be displayed\n And within it will be the login component\n\n Scenario Outline: The hero unit supports single or dual column layouts\n Given a hero unit with prop \"columns\" having <columnValue>\n And it wraps <html>\n Then the hero unit displays <columnValue> columns\n Examples:\n | columnValue | html |\n | 1 | <h1>Column 1!</h1> |\n | 2 | <h1>Column 1!</h1><div slot=\"secondary-column\"><h1 style=\"text-align:center\">Column 2!</h1></div> |\n\n Scenario: HTML to be displayed in the second column comes from the \"secondary-column\" slot\n Given a hero unit with \"columns\" \"2\"\n And the following html\n \"\"\"\n <h1>Column 1!</h1>\n <div>\n <h1 style=\"text-align:center\">Column 2!</h1>\n </div>\n \"\"\"\n When the hero unit is rendered\n Then only one column is displayed with content\n And column 1 will contain the \"Column 1!\" text\n And column 1 will contain the \"Column 2!\" text\n When the div for column two is updated to have 'slot=\"secondary-column\"'\n Then the two columns are displayed with content\n And column 1 will contain the \"Column 1!\" text\n And column 2 will contain the \"Column 2!\" text\n\n Scenario Outline: A background for the hero unit can be set as an image or colour\n Given a hero unit with <backgroundPropValue>\n Then the background will be <background>\n Examples:\n | background | background |\n | https://images.unsplash.com/photo-1599676821464-3555954838dc | image of misty mountains |\n | LightSlateGrey | light slate grey |\n | #00FF00 | green |\n | rgb(128,0,128) | purple |\n\n Scenario Outline: Wrap Direction can be configured for mobile experiences\n Given a hero unit with the following HTML\n \"\"\"\n <h1>Column 1!</h1>\n <div slot=\"secondary-column\">\n <h1 style=\"text-align:center\">Column 2!</h1>\n </div>\n \"\"\"\n And prop \"wrap-direction\" has <value>\n When the window width is less than 600px\n Then the two columns will stack\n And <column> will be on top\n Examples:\n | value | column |\n | wrap | 1 |\n | wrap-reverse | 2 |\n | <null> | 1 |\n\n Scenario Outline: Minimum height can be customized\n Given the option \"Mininum Height (in px)\" is <value>\n Then the hero image minimum height is <effectiveValue>\n And the change is reflected in mobile view\n Examples:\n | value | effectiveValue |\n | unset (default value) | 200px |\n | 200px | 500px |";
9872
9886
 
9873
9887
  const Hero_stories = {
9874
9888
  title: "Components/Hero Layout",
@@ -9882,6 +9896,7 @@ const LoginOneColumn = () => {
9882
9896
  columns: 1,
9883
9897
  wrapDirection: "wrap",
9884
9898
  paddingSize: "large",
9899
+ minHeight: 0,
9885
9900
  },
9886
9901
  content: {
9887
9902
  primaryColumn: [
@@ -9893,12 +9908,17 @@ const LoginOneColumn = () => {
9893
9908
  return (h("div", { style: { height: "800px" } },
9894
9909
  h(HeroView, Object.assign({}, props))));
9895
9910
  };
9911
+ const LoginOneColumnWithMinHeight = () => {
9912
+ return (h("sqm-hero", { background: "https://res.cloudinary.com/saasquatch/image/upload/v1683589933/Portal%20Assets/Screen-Shot-2022-01-06-at-3.23.58-AM.png", columns: 1, "padding-size": "medium", "wrap-direction": "wrap", "secondary-background": "#FFFFFF" },
9913
+ h("sqm-portal-login", null)));
9914
+ };
9896
9915
  const LoginOneColumnWithColor = () => {
9897
9916
  const props = {
9898
9917
  states: {
9899
9918
  columns: 1,
9900
9919
  wrapDirection: "wrap",
9901
9920
  paddingSize: "large",
9921
+ minHeight: 0,
9902
9922
  background: "LightSlateGrey",
9903
9923
  },
9904
9924
  content: {
@@ -9914,6 +9934,7 @@ const LoginOneColumnWithImage = () => {
9914
9934
  columns: 1,
9915
9935
  wrapDirection: "wrap",
9916
9936
  paddingSize: "large",
9937
+ minHeight: 0,
9917
9938
  background: "https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80",
9918
9939
  },
9919
9940
  content: { primaryColumn: h("sqm-portal-login", null) },
@@ -9927,6 +9948,7 @@ const TwoColumnLoginLargePadding = () => {
9927
9948
  columns: 2,
9928
9949
  wrapDirection: "wrap",
9929
9950
  paddingSize: "large",
9951
+ minHeight: 0,
9930
9952
  background: "https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80",
9931
9953
  secondaryBackground: "LightSlateGrey",
9932
9954
  },
@@ -9946,6 +9968,7 @@ const TwoColumnLoginMediumPadding = () => {
9946
9968
  columns: 2,
9947
9969
  wrapDirection: "wrap",
9948
9970
  paddingSize: "medium",
9971
+ minHeight: 0,
9949
9972
  background: "https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80",
9950
9973
  secondaryBackground: "LightSlateGrey",
9951
9974
  },
@@ -9965,6 +9988,7 @@ const TwoColumnLoginSmallPadding = () => {
9965
9988
  columns: 2,
9966
9989
  wrapDirection: "wrap",
9967
9990
  paddingSize: "small",
9991
+ minHeight: 0,
9968
9992
  background: "https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80",
9969
9993
  secondaryBackground: "LightSlateGrey",
9970
9994
  },
@@ -9984,6 +10008,7 @@ const TwoColumnLoginNoPadding = () => {
9984
10008
  columns: 2,
9985
10009
  wrapDirection: "wrap",
9986
10010
  paddingSize: "none",
10011
+ minHeight: 0,
9987
10012
  background: "https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80",
9988
10013
  secondaryBackground: "LightSlateGrey",
9989
10014
  },
@@ -10004,6 +10029,7 @@ const TwoColumnLoginReverseWrap = () => {
10004
10029
  wrapDirection: "wrap-reverse",
10005
10030
  background: "LightSlateGrey",
10006
10031
  paddingSize: "large",
10032
+ minHeight: 0,
10007
10033
  secondaryBackground: "https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80",
10008
10034
  },
10009
10035
  content: {
@@ -10022,6 +10048,7 @@ const TwoColumnLoginWithImgElement = () => {
10022
10048
  columns: 2,
10023
10049
  wrapDirection: "wrap",
10024
10050
  paddingSize: "large",
10051
+ minHeight: 0,
10025
10052
  },
10026
10053
  content: {
10027
10054
  primaryColumn: (h("div", null,
@@ -10035,11 +10062,29 @@ const TwoColumnLoginWithImgElement = () => {
10035
10062
  return (h("div", { style: { height: "800px" } },
10036
10063
  h(HeroView, Object.assign({}, props))));
10037
10064
  };
10065
+ const MinHeight = () => {
10066
+ const props = {
10067
+ states: {
10068
+ columns: 2,
10069
+ wrapDirection: "wrap",
10070
+ paddingSize: "large",
10071
+ minHeight: 600,
10072
+ background: "https://images.unsplash.com/photo-1487528278747-ba99ed528ebc?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2070&q=80",
10073
+ },
10074
+ content: {
10075
+ secondaryColumn: (h("div", null,
10076
+ h("h1", { style: { textAlign: "center" } }, "Get Referring!"),
10077
+ h("sqm-portal-login", null))),
10078
+ },
10079
+ };
10080
+ return h(HeroView, Object.assign({}, props));
10081
+ };
10038
10082
 
10039
10083
  const Hero = /*#__PURE__*/Object.freeze({
10040
10084
  __proto__: null,
10041
10085
  'default': Hero_stories,
10042
10086
  LoginOneColumn: LoginOneColumn,
10087
+ LoginOneColumnWithMinHeight: LoginOneColumnWithMinHeight,
10043
10088
  LoginOneColumnWithColor: LoginOneColumnWithColor,
10044
10089
  LoginOneColumnWithImage: LoginOneColumnWithImage,
10045
10090
  TwoColumnLoginLargePadding: TwoColumnLoginLargePadding,
@@ -10047,7 +10092,8 @@ const Hero = /*#__PURE__*/Object.freeze({
10047
10092
  TwoColumnLoginSmallPadding: TwoColumnLoginSmallPadding,
10048
10093
  TwoColumnLoginNoPadding: TwoColumnLoginNoPadding,
10049
10094
  TwoColumnLoginReverseWrap: TwoColumnLoginReverseWrap,
10050
- TwoColumnLoginWithImgElement: TwoColumnLoginWithImgElement
10095
+ TwoColumnLoginWithImgElement: TwoColumnLoginWithImgElement,
10096
+ MinHeight: MinHeight
10051
10097
  });
10052
10098
 
10053
10099
  const scenario$h = "@owner:sam\n@author:sam\n\nFeature: Referral Iframe\n\n Used to provide an external form for submitting referral leads using the current user's referral code\n\n Background: A user is logged in\n Given there is a logged in user\n\n @motivating\n Scenario: Referral code is passed to the iframe as a query parameter\n Given the \"iframe-src\" is \"https://example.com\"\n And the user has navigated to \"/refer\"\n And the user's referral code is \"BOBBYREFER\"\n When the iframe content is loaded\n Then the iframe url will be \"https://example.com?rsCode=BOBBYREFER\"\n\n @ui\n Scenario Outline: The height and width of the iFrame can be controlled via props\n Given the \"iframe-src\" is \"https://example.com\"\n And the iframe content is 1000x1000\n And the \"iframe-height\" is set to <heightValue>\n And the \"iframe-width\" is set to <widthValue>\n Then the content of the iframe will be displayed with scrollbars\n And the dimension of the iFrame displayed will be 500x500\n When the \"iframe-height\" is set to <heightValue>\n And the \"iframe-width\" is set to <widthValue>\n Then the full content of the iframe will be displayed on the page\n And the dimension of the iFrame displayed will be 1000x1000\n Examples:\n | heightValue | widthValue |\n | 500px | 500px |\n | 50% | 50% |\n\n @minutia\n Scenario Outline: The iFrame will fail fast if a iFrame source isn't provided\n Given \"iframe-src\" <mayBeAnAttribute>\n And it <mayHaveValue>\n When a user views the referral iFrame component\n Then an alert with an error message is displayed in place of the iFrame\n And it has a details section\n When \"More details\" is clicked\n Then the following information will be displayed\n | component being used |\n | missing attribute(s) |\n\n Examples:\n | mayBeAnAttribute | mayHaveValue |\n | is not an attribute | N/A |\n | is an attribute | \"\" |\n | is an attribute | |";
@@ -10175,7 +10221,12 @@ const defaultRegisterProps = {
10175
10221
  refs: {
10176
10222
  formRef: {},
10177
10223
  },
10178
- content: { pageLabel: "Register", confirmPasswordLabel: "Confirm Password" },
10224
+ content: {
10225
+ pageLabel: "Register",
10226
+ confirmPasswordLabel: "Confirm Password",
10227
+ requiredFieldErrorMessage: "Cannot be empty",
10228
+ invalidEmailErrorMessage: "Must be a valid email address",
10229
+ },
10179
10230
  };
10180
10231
  const Default$b = createHookStory(() => (h(CheckboxFieldView, Object.assign({}, defaultProps$a))));
10181
10232
  const DefaultChecked = createHookStory(() => (h(CheckboxFieldView, Object.assign({}, defaultProps$a, { states: {
@@ -10465,7 +10516,12 @@ const defaultRegisterProps$1 = {
10465
10516
  refs: {
10466
10517
  formRef: {},
10467
10518
  },
10468
- content: { pageLabel: "Register", confirmPasswordLabel: "Confirm Password" },
10519
+ content: {
10520
+ pageLabel: "Register",
10521
+ confirmPasswordLabel: "Confirm Password",
10522
+ requiredFieldErrorMessage: "Cannot be empty",
10523
+ invalidEmailErrorMessage: "Must be a valid email address",
10524
+ },
10469
10525
  };
10470
10526
  const Default$d = () => h(InputFieldView, Object.assign({}, defaultProps$c));
10471
10527
  const CustomLabel$2 = () => (h(InputFieldView, Object.assign({}, defaultProps$c, { content: { ...defaultProps$c.content, fieldLabel: "My Label" } })));
@@ -11096,7 +11152,7 @@ const CardFeed = /*#__PURE__*/Object.freeze({
11096
11152
  CardFeedGeneric: CardFeedGeneric
11097
11153
  });
11098
11154
 
11099
- const scenario$q = "@author:kutay\n@owner:noah\nFeature: Portal Container\n\n\t@motivating\n\t@ui\n\tScenario: Horizontal content overflows, but does not stretch\n\t\tGiven there are two element in the container\n\t\tAnd the first is small\n\t\tAnd the second would stretch the container wider than it's parent\n\t\tThen the second one is clipped\n\t\tAnd the first one doesn't stretch\n\n\t@landmine\n\t@ui\n\tScenario: `max-width` is required for displaying as a row\n\t\tGiven I have `direction` to \"row\"\n\t\tAnd I have not set a `max-width`\n\t\tThen it displays as a column\n\n\t@motivating\n\t@ui\n\tScenario Outline: Content padding can be customized\n\t\tGiven prop \"padding\" has <value>\n\t\tThen <padding> is applied to content\n\n\t\tExamples:\n\t\t\t| value | padding |\n\t\t\t| none | no padding |\n\t\t\t| xxx-small | xxx-small |\n\t\t\t| xx-small | xx-small |\n\t\t\t| x-small | x-small |\n\t\t\t| small | small |\n\t\t\t| medium | medium |\n\t\t\t| large | large |\n\t\t\t| x-large | x-large |\n\t\t\t| xx-large | xx-large |\n\t\t\t| xxx-large | xxx-large |\n\t\t\t| xxxx-large | xxxx-large |\n\t\t\t| N/A | no padding |\n\n\n\t@motivating\n\t@ui\n\tScenario Outline: Gap between content elements can be customized\n\t\tGiven prop \"gap\" has <value>\n\t\tThen <gap> is applied to elements between content\n\n\t\tExamples:\n\t\t\t| value | gap |\n\t\t\t| none | no padding |\n\t\t\t| xxx-small | xxx-small |\n\t\t\t| xx-small | xx-small |\n\t\t\t| x-small | x-small |\n\t\t\t| small | small |\n\t\t\t| medium | medium |\n\t\t\t| large | large |\n\t\t\t| x-large | x-large |\n\t\t\t| xx-large | xx-large |\n\t\t\t| xxx-large | xxx-large |\n\t\t\t| xxxx-large | xxxx-large |\n\t\t\t| N/A | no padding |\n\n\t@minutia\n\t@ui\n\tScenario: Content can be center aligned in horizontal view\n\t\tGiven I have supplied the prop \"center\"\n\t\tThen the content is center aligned\n\n\t@minutia\n\t@ui\n\tScenario: Content in the last row can span full width with display in horizontal view\n\t\tGiven I have `display` to \"flex\"\n\t\tThen the content is full width on the last row\n\n\t@motivating\n\t@ui\n\tScenario Outline: Content can be aligned along the x-axis \n\t\tGiven prop \"justify-content\" has <value>\n\t\tThen content within the container is aligned <alignment>\n\n\t\tExamples:\n\t\t\t| value | alignment |\n\t\t\t| none | no alignment |\n\t\t\t| start | to the start |\n\t\t\t| center | to the center |\n\t\t\t| end | to the end |\n\t\t\t| space-between | with space between |\n\t\t\t| space-around | with space around |\n\t\t\t| space-evenly | with space evenly |";
11155
+ const scenario$q = "@author:kutay\n@owner:noah\nFeature: Portal Container\n\n\t@motivating\n\t@ui\n\tScenario: Horizontal content overflows, but does not stretch\n\t\tGiven there are two element in the container\n\t\tAnd the first is small\n\t\tAnd the second would stretch the container wider than it's parent\n\t\tThen the second one is clipped\n\t\tAnd the first one doesn't stretch\n\n\t@landmine\n\t@ui\n\tScenario: `max-width` is required for displaying as a row\n\t\tGiven I have `direction` to \"row\"\n\t\tAnd I have not set a `max-width`\n\t\tThen it displays as a column\n\n\t@motivating\n\t@ui\n\tScenario Outline: Content padding can be customized\n\t\tGiven prop \"padding\" has <value>\n\t\tThen <padding> is applied to content\n\n\t\tExamples:\n\t\t\t| value | padding |\n\t\t\t| none | no padding |\n\t\t\t| xxx-small | xxx-small |\n\t\t\t| xx-small | xx-small |\n\t\t\t| x-small | x-small |\n\t\t\t| small | small |\n\t\t\t| medium | medium |\n\t\t\t| large | large |\n\t\t\t| x-large | x-large |\n\t\t\t| xx-large | xx-large |\n\t\t\t| xxx-large | xxx-large |\n\t\t\t| xxxx-large | xxxx-large |\n\t\t\t| N/A | no padding |\n\n\n\t@motivating\n\t@ui\n\tScenario Outline: Gap between content elements can be customized\n\t\tGiven prop \"gap\" has <value>\n\t\tThen <gap> is applied to elements between content\n\n\t\tExamples:\n\t\t\t| value | gap |\n\t\t\t| none | no padding |\n\t\t\t| xxx-small | xxx-small |\n\t\t\t| xx-small | xx-small |\n\t\t\t| x-small | x-small |\n\t\t\t| small | small |\n\t\t\t| medium | medium |\n\t\t\t| large | large |\n\t\t\t| x-large | x-large |\n\t\t\t| xx-large | xx-large |\n\t\t\t| xxx-large | xxx-large |\n\t\t\t| xxxx-large | xxxx-large |\n\t\t\t| N/A | no padding |\n\n\t@minutia\n\t@ui\n\tScenario: Content can be center aligned in horizontal view\n\t\tGiven I have supplied the prop \"center\"\n\t\tThen the content is center aligned\n\n\t@minutia\n\t@ui\n\tScenario: Content in the last row can span full width with display in horizontal view\n\t\tGiven I have `display` to \"flex\"\n\t\tThen the content is full width on the last row\n\n\t@motivating\n\t@ui\n\tScenario Outline: Content can be aligned along the x-axis\n\t\tGiven prop \"justify-content\" has <value>\n\t\tThen content within the container is aligned <alignment>\n\n\t\tExamples:\n\t\t\t| value | alignment |\n\t\t\t| none | no alignment |\n\t\t\t| start | to the start |\n\t\t\t| center | to the center |\n\t\t\t| end | to the end |\n\t\t\t| space-between | with space between |\n\t\t\t| space-around | with space around |\n\t\t\t| space-evenly | with space evenly |\n\n\n\t@motivating\n\t@ui\n\tScenario Outline: Component background color can be customized\n\t\tGiven a user is viewing the Portal Container component\n\t\tThen the default value is \"#ffffff00\"\n\t\tWhen the prop \"background-color\" has <value>\n\t\tThen the background has color <backgroundColor>\n\t\tExamples:\n\t\t\t| value | backgroundColor |\n\t\t\t| empty (default value) | var(--sl-color-neutral-0) (#ffffff) |\n\t\t\t| aquamarine | #7fffd4 |\n";
11100
11156
 
11101
11157
  const PortalContainer_stories = {
11102
11158
  title: "Components/Portal Container",
@@ -11215,6 +11271,18 @@ const End = () => {
11215
11271
  h("p", null, "Points Balance")))),
11216
11272
  h("sqm-scroll", { "scroll-id": "tab-2", outline: true, "button-type": "primary", "button-text": "Redeem your rewards", mobile: true }))));
11217
11273
  };
11274
+ const BackgroundColor = () => {
11275
+ return (h("div", { style: { width: "1000px", border: "1px dashed grey" } },
11276
+ h("sqm-portal-container", { center: true, direction: "row", display: "flex", "justify-content": "start", "background-color": "red" },
11277
+ h("sqm-stat-container", { space: "xxx-large", display: "flex" },
11278
+ h("sqm-big-stat", { "flex-reverse": "true", alignment: "left", "stat-type": "/rewardsRedeemed/CREDIT/global" },
11279
+ h("sqm-text", null,
11280
+ h("p", null, "Rewards Redeemed"))),
11281
+ h("sqm-big-stat", { "flex-reverse": "true", alignment: "left", "stat-type": "/rewardBalance/CREDIT/POINT/value/global" },
11282
+ h("sqm-text", null,
11283
+ h("p", null, "Points Balance")))),
11284
+ h("sqm-scroll", { "scroll-id": "tab-2", outline: true, "button-type": "primary", "button-text": "Redeem your rewards", mobile: true }))));
11285
+ };
11218
11286
 
11219
11287
  const PortalContainer = /*#__PURE__*/Object.freeze({
11220
11288
  __proto__: null,
@@ -11232,7 +11300,8 @@ const PortalContainer = /*#__PURE__*/Object.freeze({
11232
11300
  SpaceEvenly: SpaceEvenly,
11233
11301
  Start: Start$1,
11234
11302
  Center: Center,
11235
- End: End
11303
+ End: End,
11304
+ BackgroundColor: BackgroundColor
11236
11305
  });
11237
11306
 
11238
11307
  const scenario1 = "@author:derek\n@owner:derek\nFeature: Reward Table Date Column\n\n Shows the date of each reward\n\n Background:\n Given the date column is included in the reward table\n\n @motivating\n @ui\n Scenario Outline: The title of the date column is configurable\n Given the \"column-title\" prop is set to <value>\n Then the date column is shown with <columnTitle>\n Examples:\n | value | columnTitle |\n | Date received | |\n | My column title | My column title |\n\n @motivating\n Scenario Outline: A configurable date associated with the reward is shown for each reward\n Given the \"date-shown\" prop is set to <dateType>\n And a user with rewards\n When they view the date column\n Then for each reward the <rewardDate> is shown in the table\n And the date is localized to the users locale\n Examples:\n | dateType | rewardDate |\n | dateGiven | date given |\n | dateExpires | date expires |\n | dateCancelled | date cancelled |\n | dateRedeemed | date redeemed |\n | dateScheduledFor | date scheduled for |\n | | date given |";
@@ -11872,7 +11941,7 @@ const HeroImage = /*#__PURE__*/Object.freeze({
11872
11941
  ColumnsCustomColors: ColumnsCustomColors
11873
11942
  });
11874
11943
 
11875
- const scenario$u = "@author:kutay\n@owner:kutay\nFeature: Referral Card\n\n\tThe Referral Card component takes in two slots and displays them side by side.\n\n\tBackground: A user on the portal is viewing the widget\n\t\tGiven a user viewing the Referral Card component\n\n\t@motivating\n\t@ui\n\tScenario: Referral Card component displays provided content in left and right slots side by side\n\t\tGiven a Referral Card component\n\t\tAnd a slot with the name \"left\"\n\t\tAnd a slot with the name \"right\"\n\t\tWhen the user views the referral card\n\t\tThen the slot contents are displayed the card with equal width\n\t\tWhen the component is scaled down to 499px\n\t\tThen the column layout switches to row layout\n\t\tAnd the \"left\" slot content is displayed above the \"right\" slot content\n\n\t@motivating\n\t@ui\n\tScenario Outline: Referral Card component content can be vertically aligned start, center, end\n\t\tGiven a Referral Card component\n\t\tAnd a slot with the name \"left\"\n\t\tAnd a slot with the name \"right\"\n\t\tAnd the prop \"vertical-alignment\" has <value>\n\t\tThen slots contents are displayed inside the card\n\t\tAnd slots are vertically aligned to <alignment> of the card\n\t\tExamples:\n\t\t\t| value | alignment |\n\t\t\t| start | the top |\n\t\t\t| center | the center |\n\t\t\t| end | the bottom |\n\t\t\t| N/A | the top |\n\n";
11944
+ const scenario$u = "@author:kutay\n@owner:kutay\nFeature: Referral Card\n\n\tThe Referral Card component takes in two slots and displays them side by side.\n\n\tBackground: A user on the portal is viewing the widget\n\t\tGiven a user viewing the Referral Card component\n\n\t@motivating\n\t@ui\n\tScenario: Referral Card component displays provided content in left and right slots side by side\n\t\tGiven a Referral Card component\n\t\tAnd a slot with the name \"left\"\n\t\tAnd a slot with the name \"right\"\n\t\tWhen the user views the referral card\n\t\tThen the slot contents are displayed the card with equal width\n\t\tWhen the component is scaled down to 499px\n\t\tThen the column layout switches to row layout\n\t\tAnd the \"left\" slot content is displayed above the \"right\" slot content\n\n\t@minutia\n\t@ui\n\tScenario: Left or right column content spans the whole card if there is no content in the other column\n\t\tGiven a Referral Card component\n\t\tAnd there content in one column\n\t\tAnd there is no content in the other column\n\t\tThen the column with content spans 100% of the card width\n\t\tAnd the column with content respects the container's padding\n\t\tAnd the column without content has zero width\n\n\t@motivating\n\t@ui\n\tScenario Outline: Referral Card component content can be vertically aligned start, center, end\n\t\tGiven a Referral Card component\n\t\tAnd a slot with the name \"left\"\n\t\tAnd a slot with the name \"right\"\n\t\tAnd the prop \"vertical-alignment\" has <value>\n\t\tThen slots contents are displayed inside the card\n\t\tAnd slots are vertically aligned to <alignment> of the card\n\t\tExamples:\n\t\t\t| value | alignment |\n\t\t\t| start | the top |\n\t\t\t| center | the center |\n\t\t\t| end | the bottom |\n\t\t\t| N/A | the top |\n\n\t@ui\n\tScenario Outline: Container border can be toggled\n\t\tGiven a user is viewing the referral card component\n\t\tThen the default value for the prop \"include-border\" is \"true\"\n\t\tWhen \"include-border\" has <value>\n\t\tThen the referral card component's border <maybe> included\n\t\tExamples:\n\t\t\t| value | maybe |\n\t\t\t| true | is |\n\t\t\t| false | isn't |\n\t\t\t| empty (no value) | is |\n\n\t@motivating\n\t@ui\n\tScenario Outline: Component background color can be customized\n\t\tGiven a user is viewing the Referral Card component\n\t\tThen the default value is \"#ffffff\"\n\t\tWhen the prop \"background-color\" has <value>\n\t\tThen the background has color <backgroundColor>\n\t\tExamples:\n\t\t\t| value | backgroundColor |\n\t\t\t| empty (default value) | var(--sl-color-neutral-0) (#ffffff) |\n\t\t\t| aquamarine | #7fffd4 |\n\n\t@motivating\n\t@ui\n\tScenario Outline: Container padding can be customized\n\t\tGiven a user is looking at the component\n\t\tThen the default values for \"padding-top\", \"padding-bottom\", \"padding-left\", \"padding-right\" is \"large\"\n\t\tWhen prop \"padding-top\" has <value>\n\t\tThen <padding> is applied to content\n\t\tAnd the same applies to \"padding-bottom\", \"padding-left\", \"padding-right\"\n\n\t\tExamples:\n\t\t\t| value | padding |\n\t\t\t| none | no padding |\n\t\t\t| xxx-small | xxx-small |\n\t\t\t| xx-small | xx-small |\n\t\t\t| x-small | x-small |\n\t\t\t| small | small |\n\t\t\t| medium | medium |\n\t\t\t| large | large |\n\t\t\t| x-large | x-large |\n\t\t\t| xx-large | xx-large |\n\t\t\t| xxx-large | xxx-large |\n\t\t\t| xxxx-large | xxxx-large |\n\t\t\t| N/A | no padding |";
11876
11945
 
11877
11946
  const ReferralCard_stories = {
11878
11947
  title: "Components/Referral Card",
@@ -11907,6 +11976,11 @@ const ImageAndShareButtons = () => {
11907
11976
  media("left"),
11908
11977
  sharebutton("right")));
11909
11978
  };
11979
+ const LimitWidth = () => {
11980
+ return (h("sqm-referral-card", { limitWidth: true },
11981
+ media("left"),
11982
+ sharebutton("right")));
11983
+ };
11910
11984
  const TimelineAndShareButtons = () => {
11911
11985
  return (h("sqm-referral-card", null,
11912
11986
  timeline("left", 3),
@@ -11932,6 +12006,12 @@ const FlippedSlots = () => {
11932
12006
  timeline("right", 3),
11933
12007
  sharebutton("left")));
11934
12008
  };
12009
+ const NoLeft = () => {
12010
+ return h("sqm-referral-card", null, timeline("right", 3));
12011
+ };
12012
+ const NoRight = () => {
12013
+ return h("sqm-referral-card", null, sharebutton("left"));
12014
+ };
11935
12015
  const WithHeader = () => {
11936
12016
  return (h("sqm-referral-card", null,
11937
12017
  h("h3", { slot: "header" }, "Header slot content"),
@@ -11944,6 +12024,18 @@ const WithFooter = () => {
11944
12024
  sharebutton("left"),
11945
12025
  h("sqm-portal-footer", { slot: "footer" })));
11946
12026
  };
12027
+ const NoBorder = () => {
12028
+ return (h("sqm-referral-card", { "hide-border": "true" },
12029
+ timeline("right", 3),
12030
+ sharebutton("left"),
12031
+ h("sqm-portal-footer", { slot: "footer" })));
12032
+ };
12033
+ const BackgroundColor$1 = () => {
12034
+ return (h("sqm-referral-card", { "background-color": "aquamarine" },
12035
+ timeline("right", 3),
12036
+ sharebutton("left"),
12037
+ h("sqm-portal-footer", { slot: "footer" })));
12038
+ };
11947
12039
  const ReferralCardGeneric = () => {
11948
12040
  return (h("sqm-referral-card", { "vertical-alignment": "center" },
11949
12041
  h("sqm-portal-container", { slot: "left", gap: "x-small" },
@@ -11968,13 +12060,18 @@ const ReferralCard = /*#__PURE__*/Object.freeze({
11968
12060
  __proto__: null,
11969
12061
  'default': ReferralCard_stories,
11970
12062
  ImageAndShareButtons: ImageAndShareButtons,
12063
+ LimitWidth: LimitWidth,
11971
12064
  TimelineAndShareButtons: TimelineAndShareButtons,
11972
12065
  StartAlignment: StartAlignment,
11973
12066
  CenterAlignment: CenterAlignment,
11974
12067
  EndAlignment: EndAlignment,
11975
12068
  FlippedSlots: FlippedSlots,
12069
+ NoLeft: NoLeft,
12070
+ NoRight: NoRight,
11976
12071
  WithHeader: WithHeader,
11977
12072
  WithFooter: WithFooter,
12073
+ NoBorder: NoBorder,
12074
+ BackgroundColor: BackgroundColor$1,
11978
12075
  ReferralCardGeneric: ReferralCardGeneric
11979
12076
  });
11980
12077
 
@@ -13003,7 +13100,7 @@ const Tabs = /*#__PURE__*/Object.freeze({
13003
13100
  RightTabs: RightTabs
13004
13101
  });
13005
13102
 
13006
- const scenario$z = "@author:johan\n@owner:johan\nFeature: Share Code\n\n The share code component is a box that allows users to see and copy their referral code for a given program\n \n Background: Environment\n Given there is a valid program ID in the environment\n And there is a valid user ID and account ID in the environment\n\n @motivating\n Scenario: A Users referral code can be copied to their clipboard\n Given tooltiptext is \"hello tooltip\"\n When the component renders\n Then there is a textbox with the user's share link\n When the clipboard icon is clicked\n Then the link is copied to clipboard\n And a tooltip will appear for ~1 second\n\n @minutia\n Scenario: Tooltip lifespan defaults to 2000\n Given the tooltip's lifespan is set to 2000\n And there is tooltip text\n When the component renders\n And the clipboard icon is clicked\n Then a tooltip will appear for ~2 seconds\n\n @minutia\n Scenario: Demo\n Given isDemo() returns true\n Then the share link is \"https://www.example.com/sharelink/abc\"\n And the component won't be interactive\n And the tooltip is hidden\n\n @minutia\n Scenario: Program ID can be sourced from prop\n Given the programId prop is set to \"program-a\"\n And window.widgetIdent.programId is set to \"program-b\"\n When the component renders\n Then the share link is for \"program-a\"\n\n @minutia\n Scenario: Program ID can be sourced from window\n Given the programId prop is unset\n And window.widgetIdent.programId is set to \"program-b\"\n When the component renders\n Then the share link is for \"program-b\"\n\n @minutia\n Scenario: An analytic event is fired when a user copies their code\n Given a user viewing the share code component\n And the component is rendered for \"program-a\"\n When they click to copy their code\n Then an \"USER_REFERRAL_PROGRAM_ENGAGEMENT_EVENT\" analytic event is fired\n And it is for \"program-a\"\n And it has share medium \"DIRECT\"\n";
13103
+ const scenario$z = "@author:johan\n@owner:johan\nFeature: Share Code\n\n The share code component is a box that allows users to see and copy their referral code for a given program\n\n Background: Environment\n Given there is a valid program ID in the environment\n And there is a valid user ID and account ID in the environment\n\n @motivating\n Scenario: A Users referral code can be copied to their clipboard\n Given tooltiptext is \"hello tooltip\"\n When the component renders\n Then there is a textbox with the user's share code\n When the clipboard icon is clicked\n Then the code is copied to clipboard\n And a tooltip will appear for ~1 second\n\n @minutia\n Scenario: Tooltip lifespan defaults to 2000\n Given the tooltip's lifespan is set to 2000\n And there is tooltip text\n When the component renders\n And the clipboard icon is clicked\n Then a tooltip will appear for ~2 seconds\n\n @minutia\n Scenario: Demo\n Given isDemo() returns true\n Then the share code is \"SHARECODE001\"\n And the component won't be interactive\n And the tooltip is hidden\n\n @minutia\n Scenario: Program ID can be sourced from prop\n Given the programId prop is set to \"program-a\"\n And window.widgetIdent.programId is set to \"program-b\"\n When the component renders\n Then the share code is for \"program-a\"\n\n @minutia\n Scenario: Program ID can be sourced from window\n Given the programId prop is unset\n And window.widgetIdent.programId is set to \"program-b\"\n When the component renders\n Then the share code is for \"program-b\"\n\n @minutia\n Scenario: An analytic event is fired when a user copies their code\n Given a user viewing the share code component\n And the component is rendered for \"program-a\"\n When they click to copy their code\n Then an \"USER_REFERRAL_PROGRAM_ENGAGEMENT_EVENT\" analytic event is fired\n And it is for \"program-a\"\n And it has share medium \"DIRECT\"\n\n\n @ui\n Scenario Outline: user can edit the alignment of the share code text\n Given a user is editing the share code component\n Then they see \"Align text\" props\n And the default value is \"left\"\n When they change the option to <option>\n Then they see the text in <position>\n Examples:\n | option | position |\n | left | left |\n | center | center |\n | right | right |\n\n @ui\n Scenario Outline: The position of the copy button can be changed\n Given a user is editing the share code component\n Then they see \"Style\" props\n And the default value is \"icon\"\n When they change the option to <option>\n Then they see the copy button in <position>\n Examples:\n | option | position |\n | button outside | outside the input, on the right |\n | button below | outside the input, below |\n | icon | inside the input as an icon |\n";
13007
13104
 
13008
13105
  const ShareCode_stories = {
13009
13106
  title: "Components/Share Code",
@@ -13020,6 +13117,9 @@ const CustomTooltipText = () => {
13020
13117
  const TextAlignCenter$1 = () => {
13021
13118
  return h("sqm-share-code", { textAlign: "center" });
13022
13119
  };
13120
+ const TextAlignRight$1 = () => {
13121
+ return h("sqm-share-code", { textAlign: "right" });
13122
+ };
13023
13123
  const CustomTooltipDuration = () => {
13024
13124
  return (h("sqm-share-code", { tooltiplifespan: 5000, tooltiptext: "CUSTOM TOOLTIP TEXT" }));
13025
13125
  };
@@ -13031,20 +13131,12 @@ const CopyButton$1 = () => {
13031
13131
  isCopyIcon: false,
13032
13132
  })));
13033
13133
  };
13034
- const CopyButtonInside$1 = () => {
13035
- return (h(CopyTextView, Object.assign({}, {
13036
- copyString: "https://noah.example.com",
13037
- open: false,
13038
- tooltiptext: "Copied!",
13039
- buttonStyle: "button inside",
13040
- })));
13041
- };
13042
13134
  const CopyButtonBelow$1 = () => {
13043
13135
  return (h(CopyTextView, Object.assign({}, {
13044
13136
  copyString: "https://noah.example.com",
13045
13137
  open: false,
13046
13138
  tooltiptext: "Copied!",
13047
- buttonStyle: "button below",
13139
+ buttonStyle: "button-below",
13048
13140
  })));
13049
13141
  };
13050
13142
  const Error$7 = () => {
@@ -13064,9 +13156,9 @@ const ShareCode$1 = /*#__PURE__*/Object.freeze({
13064
13156
  ShareCode: ShareCode,
13065
13157
  CustomTooltipText: CustomTooltipText,
13066
13158
  TextAlignCenter: TextAlignCenter$1,
13159
+ TextAlignRight: TextAlignRight$1,
13067
13160
  CustomTooltipDuration: CustomTooltipDuration,
13068
13161
  CopyButton: CopyButton$1,
13069
- CopyButtonInside: CopyButtonInside$1,
13070
13162
  CopyButtonBelow: CopyButtonBelow$1,
13071
13163
  Error: Error$7
13072
13164
  });
@@ -13086,20 +13178,45 @@ const defaultProps$d = {
13086
13178
  callbacks: {
13087
13179
  submit: async (e) => await e,
13088
13180
  },
13089
- content: {},
13181
+ content: {
13182
+ invalidEmailErrorMessage: "Must be a valid email address",
13183
+ requiredFieldErrorMessage: "Cannot be empty",
13184
+ paddingTop: "large",
13185
+ paddingRight: "large",
13186
+ paddingBottom: "large",
13187
+ paddingLeft: "large",
13188
+ },
13090
13189
  };
13091
13190
  const Default$e = () => h(EmailRegistrationView, Object.assign({}, defaultProps$d));
13092
- const HasFirstNameLastName = () => (h(EmailRegistrationView, Object.assign({}, defaultProps$d, {
13191
+ const HasFirstNameLastName = () => (h(EmailRegistrationView, Object.assign({}, {
13192
+ ...defaultProps$d,
13093
13193
  content: {
13194
+ ...defaultProps$d.content,
13094
13195
  includeName: true,
13095
13196
  },
13096
13197
  })));
13097
- const WithSlots = () => (h(EmailRegistrationView, Object.assign({}, defaultProps$d, {
13198
+ const WithSlots = () => (h(EmailRegistrationView, Object.assign({}, {
13199
+ ...defaultProps$d,
13098
13200
  content: {
13201
+ ...defaultProps$d.content,
13099
13202
  topSlot: h("div", null, "Hello this is the top slot"),
13100
13203
  bottomSlot: h("div", null, "Hello this is the bottom slot"),
13101
13204
  },
13102
13205
  })));
13206
+ const NoBorder$1 = () => (h(EmailRegistrationView, Object.assign({}, {
13207
+ ...defaultProps$d,
13208
+ content: {
13209
+ ...defaultProps$d.content,
13210
+ hideBorder: true,
13211
+ },
13212
+ })));
13213
+ const BackgroundColor$2 = () => (h(EmailRegistrationView, Object.assign({}, {
13214
+ ...defaultProps$d,
13215
+ content: {
13216
+ ...defaultProps$d.content,
13217
+ backgroundColor: "aquamarine",
13218
+ },
13219
+ })));
13103
13220
  const Loading$4 = () => (h(EmailRegistrationView, Object.assign({}, {
13104
13221
  ...defaultProps$d,
13105
13222
  states: {
@@ -13114,6 +13231,16 @@ const Error$8 = () => (h(EmailRegistrationView, Object.assign({}, {
13114
13231
  loading: false,
13115
13232
  },
13116
13233
  })));
13234
+ const EmptyEmailError = () => (h(EmailRegistrationView, Object.assign({}, {
13235
+ ...defaultProps$d,
13236
+ states: {
13237
+ error: "Something went wrong. Please try again.",
13238
+ loading: false,
13239
+ registrationFormState: {
13240
+ validationErrors: { email: "Email cannot be empty" },
13241
+ },
13242
+ },
13243
+ })));
13117
13244
 
13118
13245
  const EmailRegistration = /*#__PURE__*/Object.freeze({
13119
13246
  __proto__: null,
@@ -13121,14 +13248,19 @@ const EmailRegistration = /*#__PURE__*/Object.freeze({
13121
13248
  Default: Default$e,
13122
13249
  HasFirstNameLastName: HasFirstNameLastName,
13123
13250
  WithSlots: WithSlots,
13251
+ NoBorder: NoBorder$1,
13252
+ BackgroundColor: BackgroundColor$2,
13124
13253
  Loading: Loading$4,
13125
- Error: Error$8
13254
+ Error: Error$8,
13255
+ EmptyEmailError: EmptyEmailError
13126
13256
  });
13127
13257
 
13258
+ const scenario$A = "@author:truman\n@owner:truman\nFeature: Coupon Code\n\n The coupon code component is a box that allows users to see and copy their coupon code for a given program\n\n @motivating\n Scenario: Component only fetches codes from current program\n Given a user has multiple rewards from various programs\n When the component is loaded\n Then it fetches the user's rewards from only the program associated with the widget\n\n @motivating\n Scenario: Component only looks at fueltank rewards\n Given a user has multiple rewards of different types\n When the component is loaded\n Then it filters the user's reward to only return FUELTANK rewards\n\n\n @motivating\n Scenario: The first (i.e. most recently received) reward is the reward that is displayed\n Given a user has at least one fueltank reward\n And the fueltank reward is available\n Then the coupon code component shows the first reward returned\n And this reward is the most recently received reward by the user\n\n @motivating\n Scenario Outline: Coupon code has multiple states depending on reward status\n Given a user has at least one fueltank reward\n And the reward has most recent status <status>\n And the dateScheduledFor field is <dateScheduledFor>\n Then the component's status is set to <componentStatus>\n And the <errorMessageTextProp> is displayed under the input field\n\n Examples:\n | status | dateScheduledFor | componentStatus | errorMessageTextProp |\n | AVAILABLE | null | AVAILABLE | N/A |\n | EXPIRED | null | EXPIRED | expiredErrorMessage |\n | REDEEMED | null | REDEEMED | redeemedMessage |\n | CANCELLED | null | CANCELLED | cancelledErrorMessage |\n | PENDING | null | EMPTY_TANK | fullfillmentErrorMessage |\n | PENDING | 123412341234 | PENDING | pendingErrorMessage |\n | null | null | ERROR | genericErrorMessage |\n\n Scenario Outline: Coupon code's error message text props are grouped\n Given an end user is viewing the coupon code component in the widget editor\n And they are looking at the component's properties\n Then they see <prop>\n And <prop> is grouped under \"Coupon code error\"\n Examples:\n | prop |\n | N/A |\n | expiredErrorMessage |\n | redeemedMessage |\n | cancelledErrorMessage |\n | fullfillmentErrorMessage |\n | pendingErrorMessage |\n | genericErrorMessage |\n\n @minutia\n Scenario: Tooltip lifespan defaults to 2000\n Given the tooltip's lifespan is set to 2000\n And there is tooltip text\n When the component renders\n And the clipboard icon is clicked\n Then a tooltip appears for ~2 seconds\n\n @ui\n Scenario: Component shows an error state when there is an error\n Given a user is viewing the coupon code component\n When there is an error in the coupon code\n Then in place of the coupon code is an alert banner\n And the alert banner gives information about the error to the user\n\n @ui\n Scenario: Component shows an loading state\n Given a user is viewing the coupon code component\n When the coupon code is loading in\n Then the text inside the input is \"Loading...\"\n And the coupon code input box has a gray background\n And the cursor is set to \"default\"\n And the user cannot copy the text\n\n @ui\n Scenario Outline: User can edit the alignment of the coupon code text\n Given a user is editing the coupon code component\n Then they see \"Align text\" props\n And the default value is \"left\"\n When they change the option to <option>\n Then they see the text in <position>\n Examples:\n | option | position |\n | left | left |\n | center | center |\n | right | right |\n\n @ui\n Scenario Outline: The position of the copy button can be changed\n Given a user is editing the coupon code component\n Then they see \"Style\" props\n And the default value is \"icon\"\n When they change the option to <option>\n Then they see the copy button in <position>\n Examples:\n | option | position |\n | button outside | outside the input, on the right |\n | button below | outside the input, below |\n | icon | inside the input as an icon |\n\n @minutia\n Scenario: ICU string converts to a date\n Given a user is viewing a live coupon code code component\n And the \"pendingErrorText\" has the \"{unpendDate}\" ICU string\n And the program is configured for rewards to be pending\n Then the user will see an info alert banner\n And the ICU string is converted to the unpend date\n";
13259
+
13128
13260
  const CouponCode_stories = {
13129
13261
  title: "Components/Coupon Code",
13130
13262
  parameters: {
13131
- // scenario,
13263
+ scenario: scenario$A,
13132
13264
  },
13133
13265
  };
13134
13266
  const defaultProps$e = {
@@ -13136,7 +13268,9 @@ const defaultProps$e = {
13136
13268
  copyString: "THANKSJANE125uv125",
13137
13269
  open: false,
13138
13270
  copyButtonLabel: "Copy Coupon",
13139
- errorText: "Oops! Looks like we weren’t able to retrieve a code for you. Please try again later.",
13271
+ inputPlaceholderText: "CODE ERROR",
13272
+ couponCodeLabel: "Your coupon code:",
13273
+ error: false,
13140
13274
  };
13141
13275
  const CouponCode = () => {
13142
13276
  return h("sqm-coupon-code", { tooltiptext: "Copied to Clipboard" });
@@ -13150,20 +13284,47 @@ const CustomTooltipDuration$1 = () => {
13150
13284
  const TextAlignCenter$2 = () => {
13151
13285
  return h("sqm-coupon-code", { textAlign: "center" });
13152
13286
  };
13287
+ const TextAlignRight$2 = () => {
13288
+ return h("sqm-coupon-code", { textAlign: "right" });
13289
+ };
13153
13290
  const CopyButton$2 = () => {
13154
- return h("sqm-coupon-code", { buttonStyle: "button outside" });
13291
+ return (h("sqm-coupon-code", Object.assign({}, defaultProps$e, { buttonStyle: "button-outside" })));
13155
13292
  };
13156
- const CopyButtonInside$2 = () => {
13157
- return (h(CopyTextView, Object.assign({}, defaultProps$e, { buttonStyle: "button inside" })));
13293
+ const CopyButtonCustomLabel = () => {
13294
+ return (h("sqm-coupon-code", Object.assign({}, defaultProps$e, { buttonStyle: "button-outside", "copy-button-label": "test long custom label" })));
13158
13295
  };
13159
13296
  const CopyButtonBelow$2 = () => {
13160
- return (h(CopyTextView, Object.assign({}, defaultProps$e, { buttonStyle: "button below" })));
13297
+ return (h("sqm-coupon-code", Object.assign({}, defaultProps$e, { buttonStyle: "button-below" })));
13298
+ };
13299
+ const CopyButtonBelowCustomLabel = () => {
13300
+ return (h("sqm-coupon-code", Object.assign({}, defaultProps$e, { buttonStyle: "button-below", "copy-button-label": "test long custom label" })));
13161
13301
  };
13162
- const Error$9 = () => {
13163
- return h(CopyTextView, Object.assign({}, defaultProps$e, { error: true }));
13302
+ const Loading$5 = () => {
13303
+ return h(CouponCodeView, Object.assign({}, defaultProps$e, { loading: true }));
13164
13304
  };
13165
- const ErrorButtonBelow = () => {
13166
- return (h(CopyTextView, Object.assign({}, defaultProps$e, { error: true, buttonStyle: "button below" })));
13305
+ const CopyButtonLoading = () => {
13306
+ return (h(CouponCodeView, Object.assign({}, defaultProps$e, { buttonStyle: "button-outside", loading: true })));
13307
+ };
13308
+ const CopyButtonBelowLoading = () => {
13309
+ return (h(CouponCodeView, Object.assign({}, defaultProps$e, { buttonStyle: "button-below", loading: true })));
13310
+ };
13311
+ const ErrorGeneric = () => {
13312
+ return (h(CouponCodeView, Object.assign({}, defaultProps$e, { errorType: "warning", error: true, errorText: "We couldn't fetch your code. Please try again later or reach out to the Support team for help resolving this issue." })));
13313
+ };
13314
+ const ErrorPending = () => {
13315
+ return (h(CouponCodeView, Object.assign({}, defaultProps$e, { errorType: "info", error: true, errorText: "Your code will be available on April 24, 2023. Mark your calendar and come back then to redeem your reward!" })));
13316
+ };
13317
+ const ErrorFullfillment = () => {
13318
+ return (h(CouponCodeView, Object.assign({}, defaultProps$e, { errorType: "warning", error: true, errorText: "We couldn't fetch your code. Please try again later or reach out to the Support team for help resolving this issue." })));
13319
+ };
13320
+ const ErrorCancelled = () => {
13321
+ return (h(CouponCodeView, Object.assign({}, defaultProps$e, { errorType: "warning", error: true, errorText: "This code has been cancelled. Please reach out to the Support team for help resolving this issue." })));
13322
+ };
13323
+ const ErrorExpired = () => {
13324
+ return (h(CouponCodeView, Object.assign({}, defaultProps$e, { errorType: "warning", error: true, errorText: "Looks like this code has expired. Please reach out to the Support team for help resolving this issue." })));
13325
+ };
13326
+ const ErrorRedeemed = () => {
13327
+ return (h(CouponCodeView, Object.assign({}, defaultProps$e, { errorType: "success", error: true, errorText: "Looks like you\u2019ve already redeemed this code." })));
13167
13328
  };
13168
13329
 
13169
13330
  const CouponCode$1 = /*#__PURE__*/Object.freeze({
@@ -13173,54 +13334,63 @@ const CouponCode$1 = /*#__PURE__*/Object.freeze({
13173
13334
  CustomTooltipText: CustomTooltipText$1,
13174
13335
  CustomTooltipDuration: CustomTooltipDuration$1,
13175
13336
  TextAlignCenter: TextAlignCenter$2,
13337
+ TextAlignRight: TextAlignRight$2,
13176
13338
  CopyButton: CopyButton$2,
13177
- CopyButtonInside: CopyButtonInside$2,
13339
+ CopyButtonCustomLabel: CopyButtonCustomLabel,
13178
13340
  CopyButtonBelow: CopyButtonBelow$2,
13179
- Error: Error$9,
13180
- ErrorButtonBelow: ErrorButtonBelow
13181
- });
13182
-
13183
- const scenario$A = "@author:noah\n@owner:noah\n\nFeature: User Identifier\n\n\tScenario: A user on a passwordless widget\n\t\tGiven a user viewing a passwordless widget\n\t\tAnd the user is identified\n\t\tAnd the user is not logged in\n\t\tThen the component identifies the user by email\n\n\tScenario: Users can switch who they are identified as through a link\n\t\tGiven a user viewing a passwordless widget\n\t\tAnd the user is identified\n\t\tAnd the user is not logged in\n\t\tWhen the user clicks the link in the component\n\t\tThen they are sent back to the registration form to re-identify themselves";
13184
-
13185
- const UserIdentifier_stories = {
13186
- title: "Components/User Identifier",
13341
+ CopyButtonBelowCustomLabel: CopyButtonBelowCustomLabel,
13342
+ Loading: Loading$5,
13343
+ CopyButtonLoading: CopyButtonLoading,
13344
+ CopyButtonBelowLoading: CopyButtonBelowLoading,
13345
+ ErrorGeneric: ErrorGeneric,
13346
+ ErrorPending: ErrorPending,
13347
+ ErrorFullfillment: ErrorFullfillment,
13348
+ ErrorCancelled: ErrorCancelled,
13349
+ ErrorExpired: ErrorExpired,
13350
+ ErrorRedeemed: ErrorRedeemed
13351
+ });
13352
+
13353
+ const scenario$B = "@author:noah\n@owner:noah\n\nFeature: Logout Current User\n\n Background:\n Given a user viewing an instant access widget\n\n @motivating\n @ui\n Scenario: A user on an instant access widget\n Given the user is identified\n And the user is logged in\n Then the component identifies the user by displaying their email in an ICU string\n And the users email displayed in the ICU string using hte \"{email}\" variable\n\n @motivating\n @ui\n Scenario: Users can switch who they are identified as through a link\n Given the user is identified\n And the user is logged in\n When the user clicks the link in the component\n Then the saved user identity is emptied\n And they are sent back to the registration form to re-identify themselves\n\n @minutia\n Scenario: Logout link empties the saved User Identity\n Given a valid user identity\n And the user is viewing the \"logged-in\" template\n When they click the logout link\n Then the user identity is set to \"undefined\"\n And the user is returned to the \"logged-out\" template";
13354
+
13355
+ const LogoutCurrentUser_stories = {
13356
+ title: "Components/Logout Current User",
13187
13357
  parameters: {
13188
- scenario: scenario$A,
13358
+ scenario: scenario$B,
13189
13359
  },
13190
13360
  };
13191
13361
  const defaultProps$f = {
13192
- userIdentificationText: "Currently showing referral data for noah.clarke@saasquatch.com",
13193
- switchUserLink: "example.com",
13362
+ filledInEmailText: "Currently showing referral data for noah.clarke@saasquatch.com",
13363
+ onSwitchClick: () => console.log("clicked"),
13194
13364
  switchUserText: "not you?",
13195
13365
  };
13196
13366
  const Default$f = () => {
13197
- return h(UserIdentifierView, Object.assign({}, defaultProps$f));
13367
+ return h(LogoutCurrentUserView, Object.assign({}, defaultProps$f));
13198
13368
  };
13199
13369
 
13200
- const UserIdentifier = /*#__PURE__*/Object.freeze({
13370
+ const LogoutCurrentUser = /*#__PURE__*/Object.freeze({
13201
13371
  __proto__: null,
13202
- 'default': UserIdentifier_stories,
13372
+ 'default': LogoutCurrentUser_stories,
13203
13373
  Default: Default$f
13204
13374
  });
13205
13375
 
13206
- const scenario$B = "@author:noah\n@owner:noah\n\nFeature: Link Button\n\n\tScenario: When a user clicks the button a link open\n\t\tWhen a user clicks the button\n\t\tThen a link opens\n\t\tAnd if `openInNewTab` is set to true then the link opens in a new tab";
13376
+ const scenario$C = "@author:noah\n@owner:noah\n\nFeature: Link Button\n\n\t@ui\n\tScenario: Links can be opened in the same tab\n\t\tWhen a user clicks the button\n\t\tThen a link opens in the same tab\n\t\tAnd if the component is in an iFrame then the link is opened in the parent window not the iFrame\n\n\t@ui\n\tScenario: Links can be opened in a new tab\n\t\tWhen a user clicks the button\n\t\tThen a link opens in a new tab\n\t\tAnd if the component is in an iFrame then the link is still opened in a new tab\n\n\n\t@ui\n\tScenario: Props control the link and button text\n\t\tGiven the \"link\" prop is set to \"https://www.example.com\"\n\t\tAnd the \"buttonText\" prop is set to \"Click me!\"\n\t\tThen a button is shown with the text \"Click me!\"\n\t\tAnd when clicked the button opens https://www.example.com\n\n\t@ui\n\tScenario Outline: The button type can be set\n\t\tGiven the button type is set to <value>\n\t\tThen a <buttonType> is shown\n\t\tExamples:\n\t\t\t| value | buttonType |\n\t\t\t| <null> | primary |\n\t\t\t| default | default |\n\t\t\t| primary | primary |\n\t\t\t| success | success |\n\t\t\t| neutral | neutral |\n\t\t\t| warning | warning |\n\t\t\t| danger | danger |";
13207
13377
 
13208
13378
  const LinkButton_stories = {
13209
13379
  title: "Components/Link Button",
13210
13380
  parameters: {
13211
- scenario: scenario$B,
13381
+ scenario: scenario$C,
13212
13382
  },
13213
13383
  };
13214
13384
  const defaultProps$g = {
13215
- buttonSlot: h("span", null, "Test Slot Content"),
13216
13385
  link: "https://example.com",
13217
13386
  openInNewTab: false,
13387
+ buttonText: "Button Text",
13218
13388
  };
13219
13389
  const Default$g = () => {
13220
- return h(LinkButtonView, Object.assign({}, defaultProps$g));
13390
+ return h("sqm-link-button", Object.assign({}, defaultProps$g));
13221
13391
  };
13222
13392
  const OpenInNewTab = () => {
13223
- return h(LinkButtonView, Object.assign({}, { ...defaultProps$g, openInNewTab: true }));
13393
+ return (h("sqm-link-button", Object.assign({}, { ...defaultProps$g, openInNewTab: true })));
13224
13394
  };
13225
13395
 
13226
13396
  const LinkButton = /*#__PURE__*/Object.freeze({
@@ -13230,6 +13400,40 @@ const LinkButton = /*#__PURE__*/Object.freeze({
13230
13400
  OpenInNewTab: OpenInNewTab
13231
13401
  });
13232
13402
 
13403
+ const CloseButton_stories = {
13404
+ title: "Components/Close Button",
13405
+ parameters: {
13406
+ // scenario,
13407
+ },
13408
+ };
13409
+ const defaultProps$h = {};
13410
+ const containerStyles = {
13411
+ position: "relative",
13412
+ width: "500px",
13413
+ height: "500px",
13414
+ border: "1px solid black",
13415
+ padding: "25px",
13416
+ };
13417
+ const Default$h = () => {
13418
+ return h(CloseButtonView, Object.assign({}, defaultProps$h));
13419
+ };
13420
+ const InAContainer = () => {
13421
+ return (h("div", { style: containerStyles },
13422
+ h(CloseButtonView, Object.assign({}, defaultProps$h))));
13423
+ };
13424
+ const CustomColor$1 = () => {
13425
+ return (h("div", { style: containerStyles },
13426
+ h(CloseButtonView, Object.assign({}, { ...defaultProps$h, color: "blue" }))));
13427
+ };
13428
+
13429
+ const CloseButton = /*#__PURE__*/Object.freeze({
13430
+ __proto__: null,
13431
+ 'default': CloseButton_stories,
13432
+ Default: Default$h,
13433
+ InAContainer: InAContainer,
13434
+ CustomColor: CustomColor$1
13435
+ });
13436
+
13233
13437
  /**
13234
13438
  *
13235
13439
  * Themes
@@ -13242,7 +13446,7 @@ const LinkButton = /*#__PURE__*/Object.freeze({
13242
13446
  *
13243
13447
  */
13244
13448
  //
13245
- const Default$h = `
13449
+ const Default$i = `
13246
13450
  // No CSS
13247
13451
  `;
13248
13452
  const Orangey = `
@@ -13276,7 +13480,7 @@ const Klip = `
13276
13480
 
13277
13481
  const Themes = /*#__PURE__*/Object.freeze({
13278
13482
  __proto__: null,
13279
- Default: Default$h,
13483
+ Default: Default$i,
13280
13484
  Orangey: Orangey,
13281
13485
  Netflix: Netflix,
13282
13486
  SaaSquatchCorporate: SaaSquatchCorporate,
@@ -15909,7 +16113,7 @@ const stories = [
15909
16113
  PasswordField,
15910
16114
  TaskCard$2,
15911
16115
  PortalTemplates,
15912
- Widget$1,
16116
+ Widget,
15913
16117
  ProgramMenu,
15914
16118
  PoweredByImg,
15915
16119
  PortalFooter,
@@ -15940,9 +16144,10 @@ const stories = [
15940
16144
  Tabs,
15941
16145
  ShareCode$1,
15942
16146
  CouponCode$1,
15943
- UserIdentifier,
16147
+ LogoutCurrentUser,
15944
16148
  LinkButton,
15945
16149
  EmailRegistration,
16150
+ CloseButton,
15946
16151
  ];
15947
16152
  const StencilStorybook = class {
15948
16153
  constructor(hostRef) {