@saasquatch/mint-components 1.3.2-6 → 1.3.3-0

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 (382) hide show
  1. package/dist/cjs/{ShadowViewAddon-75c18b96.js → ShadowViewAddon-b021dc8c.js} +1 -1
  2. package/dist/cjs/{global-041b5338.js → global-5610b310.js} +176 -334
  3. package/dist/cjs/{index.module-6a7bda18.js → index.module-03ce03c2.js} +0 -1
  4. package/dist/cjs/loader.cjs.js +3 -4
  5. package/dist/cjs/mint-components.cjs.js +3 -4
  6. package/dist/cjs/{re-render-7cdb2d81.js → re-render-b5efae5f.js} +1 -1
  7. package/dist/cjs/sqm-asset-card.cjs.entry.js +1 -1
  8. package/dist/cjs/sqm-big-stat.cjs.entry.js +2 -2
  9. package/dist/cjs/{sqm-divided-layout_28.cjs.entry.js → sqm-divided-layout_26.cjs.entry.js} +152 -1886
  10. package/dist/cjs/sqm-graphql-client-provider.cjs.entry.js +1 -1
  11. package/dist/cjs/{index-19309631.js → sqm-leaderboard-rank-view-c287ac06.js} +10 -3
  12. package/dist/cjs/sqm-leaderboard-rank.cjs.entry.js +7 -9
  13. package/dist/cjs/sqm-leaderboard.cjs.entry.js +2 -2
  14. package/dist/cjs/sqm-name-fields.cjs.entry.js +1 -1
  15. package/dist/cjs/{sqm-navigation-sidebar-item-view-e99b4a10.js → sqm-navigation-sidebar-item-view-153503f0.js} +1 -1
  16. package/dist/cjs/sqm-navigation-sidebar-item.cjs.entry.js +2 -2
  17. package/dist/cjs/sqm-popup-container.cjs.entry.js +1 -1
  18. package/dist/cjs/{sqm-portal-email-verification-view-5e955797.js → sqm-portal-email-verification-view-1d8728f9.js} +1 -1
  19. package/dist/cjs/sqm-portal-email-verification.cjs.entry.js +3 -4
  20. package/dist/cjs/{sqm-portal-footer-view-9089feb7.js → sqm-portal-footer-view-dc4b0667.js} +1 -1
  21. package/dist/cjs/sqm-portal-footer.cjs.entry.js +3 -4
  22. package/dist/cjs/sqm-portal-forgot-password.cjs.entry.js +9 -4
  23. package/dist/cjs/sqm-portal-logout.cjs.entry.js +1 -1
  24. package/dist/cjs/{sqm-portal-profile-view-a23ea292.js → sqm-portal-profile-view-a7519f19.js} +1 -1
  25. package/dist/cjs/sqm-portal-profile.cjs.entry.js +3 -4
  26. package/dist/cjs/sqm-portal-protected-route.cjs.entry.js +1 -1
  27. package/dist/cjs/sqm-portal-reset-password.cjs.entry.js +1 -1
  28. package/dist/cjs/sqm-portal-verify-email.cjs.entry.js +1 -1
  29. package/dist/cjs/sqm-referral-table-column.cjs.entry.js +2 -2
  30. package/dist/cjs/sqm-referral-table-date-column.cjs.entry.js +2 -2
  31. package/dist/cjs/sqm-referral-table-rewards-column.cjs.entry.js +2 -2
  32. package/dist/cjs/sqm-referral-table-status-column.cjs.entry.js +2 -2
  33. package/dist/cjs/sqm-referral-table-user-column.cjs.entry.js +2 -2
  34. package/dist/cjs/sqm-share-code.cjs.entry.js +1 -1
  35. package/dist/cjs/{useDemoBigStat-d7c65044.js → useDemoBigStat-2025ee9b.js} +21 -91
  36. package/dist/collection/collection-manifest.json +3 -6
  37. package/dist/collection/components/sqm-big-stat/sqm-big-stat.js +1 -1
  38. package/dist/collection/components/sqm-big-stat/useBigStat.js +20 -89
  39. package/dist/collection/components/sqm-big-stat/useDemoBigStat.js +0 -1
  40. package/dist/collection/components/sqm-portal-forgot-password/sqm-portal-forgot-password.js +28 -3
  41. package/dist/collection/components/sqm-portal-forgot-password/usePortalForgotPassword.js +2 -1
  42. package/dist/collection/components/sqm-portal-login/sqm-portal-login.js +59 -4
  43. package/dist/collection/components/sqm-portal-login/usePortalLogin.js +4 -2
  44. package/dist/collection/components/sqm-portal-register/sqm-portal-register.js +28 -2
  45. package/dist/collection/components/sqm-portal-register/usePortalRegister.js +1 -0
  46. package/dist/collection/components/sqm-referral-table/columns/sqm-referral-table-column.js +1 -1
  47. package/dist/collection/components/sqm-referral-table/columns/sqm-referral-table-date-column.js +1 -1
  48. package/dist/collection/components/sqm-referral-table/columns/sqm-referral-table-rewards-column.js +1 -1
  49. package/dist/collection/components/sqm-referral-table/columns/sqm-referral-table-status-column.js +1 -1
  50. package/dist/collection/components/sqm-referral-table/columns/sqm-referral-table-user-column.js +1 -1
  51. package/dist/collection/{tables → components/sqm-referral-table}/re-render.js +0 -0
  52. package/dist/collection/{tables → components/sqm-referral-table}/sqm-table-cell.js +0 -0
  53. package/dist/collection/{tables → components/sqm-referral-table}/sqm-table-row.js +0 -0
  54. package/dist/collection/{tables → components/sqm-referral-table}/useChildElements.js +0 -0
  55. package/dist/collection/components/sqm-referral-table/useReferralTable.js +2 -2
  56. package/dist/collection/components/sqm-stencilbook/CucumberAddon.js +1 -3
  57. package/dist/collection/components/sqm-stencilbook/sqm-stencilbook.js +36 -44
  58. package/dist/collection/global/styles.js +69 -278
  59. package/dist/collection/global/styles.ts +69 -278
  60. package/dist/collection/{components/sqm-asset-card → stories}/AssetCard.stories.js +2 -2
  61. package/dist/collection/{components/sqm-big-stat → stories}/BigStat.stories.js +3 -10
  62. package/dist/collection/{components/sqm-portal-change-password → stories}/ChangePassword.stories.js +3 -3
  63. package/dist/collection/{components/sqm-divided-layout → stories}/DividedLayout.stories.js +4 -4
  64. package/dist/collection/{components/sqm-edit-profile → stories}/EditProfileForm.stories.js +2 -2
  65. package/dist/collection/{components/sqm-form-message → stories}/FormMessage.stories.js +1 -1
  66. package/dist/collection/{components/sqm-hero → stories}/Hero.stories.js +2 -2
  67. package/dist/collection/{components/sqm-leaderboard → stories}/Leaderboard.stories.js +2 -2
  68. package/dist/collection/{components/sqm-leaderboard-rank → stories}/LeaderboardRank.stories.js +2 -2
  69. package/dist/collection/{components/sqm-name-fields → stories}/NameFields.stories.js +2 -2
  70. package/dist/collection/{components/sqm-navigation-sidebar → stories}/NavigationSidebar.stories.js +3 -3
  71. package/dist/collection/stories/NewPortal.stories.js +15 -15
  72. package/dist/collection/{components/sqm-password-field → stories}/PasswordField.stories.js +1 -1
  73. package/dist/collection/{components/sqm-portal-email-verification → stories}/PortalEmailVerification.stories.js +3 -3
  74. package/dist/collection/{components/sqm-portal-footer → stories}/PortalFooter.stories.js +2 -2
  75. package/dist/collection/{components/sqm-portal-forgot-password → stories}/PortalForgotPassword.stories.js +7 -3
  76. package/dist/collection/{components/sqm-portal-frame → stories}/PortalFrame.stories.js +2 -2
  77. package/dist/collection/{components/sqm-portal-login → stories}/PortalLogin.stories.js +8 -2
  78. package/dist/collection/{components/sqm-portal-profile → stories}/PortalProfile.stories.js +2 -2
  79. package/dist/collection/{components/sqm-portal-register → stories}/PortalRegister.stories.js +7 -2
  80. package/dist/collection/{components/sqm-portal-reset-password → stories}/PortalResetPassword.stories.js +3 -3
  81. package/dist/collection/{components/sqm-portal-verify-email → stories}/PortalVerifyEmail.stories.js +3 -3
  82. package/dist/collection/{components/sqm-program-menu → stories}/ProgramMenu.stories.js +2 -2
  83. package/dist/collection/{components/sqm-referral-iframe → stories}/ReferralIframe.stories.js +2 -2
  84. package/dist/collection/{components/sqm-referral-table → stories}/ReferralTable.stories.js +2 -2
  85. package/dist/collection/{components/sqm-referral-table → stories}/ReferralTableCell.stories.js +1 -1
  86. package/dist/collection/{components/sqm-referral-table → stories}/ReferralTableRewardsCell.stories.js +1 -1
  87. package/dist/collection/{components/sqm-rewards-table → stories}/Router.stories.js +1 -1
  88. package/dist/collection/{components/sqm-share-button → stories}/ShareButton.stories.js +2 -2
  89. package/dist/collection/{components/sqm-share-link → stories}/ShareLink.stories.js +2 -2
  90. package/dist/collection/{components/sqm-navigation-sidebar-item → stories}/SidebarItem.stories.js +2 -2
  91. package/dist/collection/{components/sqm-big-stat → stories}/UseBigStat.stories.js +4 -4
  92. package/dist/collection/{components/sqm-edit-profile → stories}/UseEditProfile.stories.js +1 -1
  93. package/dist/collection/{components/sqm-leaderboard → stories}/UseLeaderboard.stories.js +3 -3
  94. package/dist/collection/{components/sqm-share-button → stories}/UseShareButton.stories.js +2 -2
  95. package/dist/collection/{components/sqm-share-link → stories}/UseShareLink.stories.js +3 -3
  96. package/dist/collection/{components/sqm-user-name → stories}/UserName.stories.js +3 -3
  97. package/dist/esm/{ShadowViewAddon-fff5d35d.js → ShadowViewAddon-2e3ea31f.js} +1 -1
  98. package/dist/esm/{global-5ecbf81a.js → global-cc82aa03.js} +123 -281
  99. package/dist/esm/{index.module-f80561db.js → index.module-33c313d2.js} +1 -1
  100. package/dist/esm/loader.js +3 -4
  101. package/dist/esm/mint-components.js +3 -4
  102. package/dist/esm/{re-render-9ab5fe0f.js → re-render-338d931e.js} +1 -1
  103. package/dist/esm/sqm-asset-card.entry.js +1 -1
  104. package/dist/esm/sqm-big-stat.entry.js +2 -2
  105. package/dist/esm/{sqm-divided-layout_28.entry.js → sqm-divided-layout_26.entry.js} +149 -1881
  106. package/dist/esm/sqm-graphql-client-provider.entry.js +1 -1
  107. package/dist/esm/{index-2f5dd0a1.js → sqm-leaderboard-rank-view-4f48da0c.js} +9 -3
  108. package/dist/esm/sqm-leaderboard-rank.entry.js +3 -5
  109. package/dist/esm/sqm-leaderboard.entry.js +2 -2
  110. package/dist/esm/sqm-name-fields.entry.js +1 -1
  111. package/dist/esm/{sqm-navigation-sidebar-item-view-8a3f374b.js → sqm-navigation-sidebar-item-view-5dfa535f.js} +1 -1
  112. package/dist/esm/sqm-navigation-sidebar-item.entry.js +2 -2
  113. package/dist/esm/sqm-popup-container.entry.js +1 -1
  114. package/dist/esm/{sqm-portal-email-verification-view-90781be2.js → sqm-portal-email-verification-view-87bf8191.js} +1 -1
  115. package/dist/esm/sqm-portal-email-verification.entry.js +3 -4
  116. package/dist/esm/{sqm-portal-footer-view-c317518e.js → sqm-portal-footer-view-da135cff.js} +1 -1
  117. package/dist/esm/sqm-portal-footer.entry.js +3 -4
  118. package/dist/esm/sqm-portal-forgot-password.entry.js +9 -4
  119. package/dist/esm/sqm-portal-logout.entry.js +1 -1
  120. package/dist/esm/{sqm-portal-profile-view-824c8242.js → sqm-portal-profile-view-8781176c.js} +1 -1
  121. package/dist/esm/sqm-portal-profile.entry.js +3 -4
  122. package/dist/esm/sqm-portal-protected-route.entry.js +1 -1
  123. package/dist/esm/sqm-portal-reset-password.entry.js +1 -1
  124. package/dist/esm/sqm-portal-verify-email.entry.js +1 -1
  125. package/dist/esm/sqm-referral-table-column.entry.js +2 -2
  126. package/dist/esm/sqm-referral-table-date-column.entry.js +2 -2
  127. package/dist/esm/sqm-referral-table-rewards-column.entry.js +2 -2
  128. package/dist/esm/sqm-referral-table-status-column.entry.js +2 -2
  129. package/dist/esm/sqm-referral-table-user-column.entry.js +2 -2
  130. package/dist/esm/sqm-share-code.entry.js +1 -1
  131. package/dist/esm/{useDemoBigStat-3d4832ef.js → useDemoBigStat-2fe92931.js} +21 -91
  132. package/dist/esm-es5/{ShadowViewAddon-fff5d35d.js → ShadowViewAddon-2e3ea31f.js} +1 -1
  133. package/dist/esm-es5/{global-5ecbf81a.js → global-cc82aa03.js} +16 -2
  134. package/dist/esm-es5/{index.module-f80561db.js → index.module-33c313d2.js} +1 -1
  135. package/dist/esm-es5/loader.js +1 -1
  136. package/dist/esm-es5/mint-components.js +1 -1
  137. package/dist/esm-es5/{re-render-9ab5fe0f.js → re-render-338d931e.js} +1 -1
  138. package/dist/esm-es5/sqm-asset-card.entry.js +1 -1
  139. package/dist/esm-es5/sqm-big-stat.entry.js +1 -1
  140. package/dist/esm-es5/sqm-divided-layout_26.entry.js +1 -0
  141. package/dist/esm-es5/sqm-graphql-client-provider.entry.js +1 -1
  142. package/dist/esm-es5/sqm-leaderboard-rank-view-4f48da0c.js +1 -0
  143. package/dist/esm-es5/sqm-leaderboard-rank.entry.js +1 -1
  144. package/dist/esm-es5/sqm-leaderboard.entry.js +1 -1
  145. package/dist/esm-es5/sqm-name-fields.entry.js +1 -1
  146. package/dist/esm-es5/{sqm-navigation-sidebar-item-view-8a3f374b.js → sqm-navigation-sidebar-item-view-5dfa535f.js} +1 -1
  147. package/dist/esm-es5/sqm-navigation-sidebar-item.entry.js +1 -1
  148. package/dist/esm-es5/sqm-popup-container.entry.js +1 -1
  149. package/dist/esm-es5/{sqm-portal-email-verification-view-90781be2.js → sqm-portal-email-verification-view-87bf8191.js} +1 -1
  150. package/dist/esm-es5/sqm-portal-email-verification.entry.js +1 -1
  151. package/dist/esm-es5/{sqm-portal-footer-view-c317518e.js → sqm-portal-footer-view-da135cff.js} +1 -1
  152. package/dist/esm-es5/sqm-portal-footer.entry.js +1 -1
  153. package/dist/esm-es5/sqm-portal-forgot-password.entry.js +1 -1
  154. package/dist/esm-es5/sqm-portal-logout.entry.js +1 -1
  155. package/dist/esm-es5/{sqm-portal-profile-view-824c8242.js → sqm-portal-profile-view-8781176c.js} +1 -1
  156. package/dist/esm-es5/sqm-portal-profile.entry.js +1 -1
  157. package/dist/esm-es5/sqm-portal-protected-route.entry.js +1 -1
  158. package/dist/esm-es5/sqm-portal-reset-password.entry.js +1 -1
  159. package/dist/esm-es5/sqm-portal-verify-email.entry.js +1 -1
  160. package/dist/esm-es5/sqm-referral-table-column.entry.js +1 -1
  161. package/dist/esm-es5/sqm-referral-table-date-column.entry.js +1 -1
  162. package/dist/esm-es5/sqm-referral-table-rewards-column.entry.js +1 -1
  163. package/dist/esm-es5/sqm-referral-table-status-column.entry.js +1 -1
  164. package/dist/esm-es5/sqm-referral-table-user-column.entry.js +1 -1
  165. package/dist/esm-es5/sqm-share-code.entry.js +1 -1
  166. package/dist/esm-es5/useDemoBigStat-2fe92931.js +1 -0
  167. package/dist/mint-components/global/styles.ts +69 -278
  168. package/dist/mint-components/mint-components.esm.js +1 -1
  169. package/dist/mint-components/mint-components.js +1 -1
  170. package/dist/mint-components/{p-5f28af29.entry.js → p-01722953.entry.js} +1 -1
  171. package/dist/mint-components/{p-4ba2faf2.system.entry.js → p-086aaa1e.system.entry.js} +1 -1
  172. package/dist/mint-components/{p-6cdc70f4.entry.js → p-0f84ebfe.entry.js} +1 -1
  173. package/dist/mint-components/{p-e475a5ff.system.entry.js → p-1369c11a.system.entry.js} +1 -1
  174. package/dist/mint-components/{p-a7f0b2f6.entry.js → p-156464b2.entry.js} +1 -1
  175. package/dist/mint-components/p-1915df27.system.entry.js +1 -0
  176. package/dist/mint-components/{p-3b0acfcd.system.js → p-1996e9c8.system.js} +1 -1
  177. package/dist/mint-components/p-21bb74aa.system.entry.js +1 -0
  178. package/dist/mint-components/{p-1ac9c24b.system.entry.js → p-2a6f038c.system.entry.js} +1 -1
  179. package/dist/mint-components/p-2ad23b02.system.entry.js +1 -0
  180. package/dist/mint-components/{p-fcaa5886.system.entry.js → p-33b57b39.system.entry.js} +1 -1
  181. package/dist/mint-components/{p-1b414d8f.system.entry.js → p-34dea514.system.entry.js} +1 -1
  182. package/dist/mint-components/{p-e9ab90a1.entry.js → p-36de7c74.entry.js} +1 -1
  183. package/dist/mint-components/p-39c466fb.entry.js +1 -0
  184. package/dist/mint-components/{p-8e37c08d.js → p-4843c461.js} +1 -1
  185. package/dist/mint-components/{p-844fd903.js → p-48cdbd66.js} +1 -1
  186. package/dist/mint-components/{p-2bce988c.js → p-4a313a31.js} +1 -1
  187. package/dist/mint-components/p-4cabd25b.entry.js +1 -0
  188. package/dist/mint-components/p-4e61f958.system.js +1 -0
  189. package/dist/mint-components/p-5950e58a.entry.js +1 -0
  190. package/dist/mint-components/{p-db723323.system.entry.js → p-683a4971.system.entry.js} +1 -1
  191. package/dist/mint-components/p-6a44136e.js +227 -0
  192. package/dist/mint-components/p-7129015b.system.js +1 -0
  193. package/dist/mint-components/{p-16535642.system.entry.js → p-713ea21e.system.entry.js} +1 -1
  194. package/dist/mint-components/{p-ceeaf074.system.js → p-754060c8.system.js} +35 -21
  195. package/dist/mint-components/{p-3fd33dee.system.entry.js → p-772341ce.system.entry.js} +1 -1
  196. package/dist/mint-components/{p-0688c9c2.system.entry.js → p-775529b9.system.entry.js} +1 -1
  197. package/dist/mint-components/{p-2a025d2a.system.entry.js → p-7b7613cf.system.entry.js} +1 -1
  198. package/dist/mint-components/{p-505f5c59.system.entry.js → p-7c3a270c.system.entry.js} +1 -1
  199. package/dist/mint-components/p-83bdbf25.js +1 -0
  200. package/dist/mint-components/{p-00190438.js → p-846cebe7.js} +1 -1
  201. package/dist/mint-components/{p-1fb688a9.system.js → p-871ed4c8.system.js} +1 -1
  202. package/dist/mint-components/p-8cbc24b8.entry.js +9 -0
  203. package/dist/mint-components/p-8d65fef3.entry.js +1 -0
  204. package/dist/mint-components/{p-3052c913.system.js → p-8e87084e.system.js} +1 -1
  205. package/dist/mint-components/{p-844f9bad.entry.js → p-a011c13c.entry.js} +1 -1
  206. package/dist/mint-components/{p-d3787c3a.entry.js → p-b1e03222.entry.js} +1 -1
  207. package/dist/mint-components/p-b3bda4e8.entry.js +1 -0
  208. package/dist/mint-components/{p-aba21f90.entry.js → p-b3e976e0.entry.js} +1 -1
  209. package/dist/mint-components/p-b462e84e.system.js +1 -0
  210. package/dist/mint-components/{p-f1e1086e.js → p-b4fc47a0.js} +17 -2
  211. package/dist/mint-components/{p-cc3510c8.js → p-bbb3ff09.js} +1 -1
  212. package/dist/mint-components/p-c03c68c1.entry.js +1 -0
  213. package/dist/mint-components/{p-d9cc041f.entry.js → p-c1cadf29.entry.js} +1 -1
  214. package/dist/mint-components/p-c324b1e8.system.js +1 -0
  215. package/dist/mint-components/{p-82d7a2ba.entry.js → p-c32fb8e5.entry.js} +1 -1
  216. package/dist/mint-components/p-c35bb682.system.entry.js +1 -0
  217. package/dist/mint-components/{p-57a53dbd.system.entry.js → p-c434c33a.system.entry.js} +1 -1
  218. package/dist/mint-components/{p-1813b9b9.system.js → p-c43f3b6b.system.js} +1 -1
  219. package/dist/mint-components/p-cff66d2e.entry.js +1 -0
  220. package/dist/mint-components/{p-82ab88fe.system.js → p-d1604020.system.js} +1 -1
  221. package/dist/mint-components/p-d482d10c.entry.js +1 -0
  222. package/dist/mint-components/p-d8a80855.entry.js +1 -0
  223. package/dist/mint-components/{p-af06ea5b.system.entry.js → p-dd0b0a4a.system.entry.js} +1 -1
  224. package/dist/mint-components/{p-5dfc6804.system.entry.js → p-e2fc8abf.system.entry.js} +1 -1
  225. package/dist/mint-components/p-e52c77cd.entry.js +13 -0
  226. package/dist/mint-components/p-e835c56c.system.entry.js +1 -0
  227. package/dist/mint-components/{p-434ee9c1.js → p-e83632dd.js} +1 -1
  228. package/dist/mint-components/{p-04516274.system.entry.js → p-ead730e0.system.entry.js} +1 -1
  229. package/dist/mint-components/p-ec3b7256.entry.js +230 -0
  230. package/dist/mint-components/p-ec8f1962.system.entry.js +1 -0
  231. package/dist/mint-components/p-ee6f5a1c.system.js +1 -0
  232. package/dist/mint-components/{p-05cca77b.js → p-f02360c9.js} +1 -1
  233. package/dist/mint-components/{p-a4a00461.entry.js → p-f4a9712a.entry.js} +2 -2
  234. package/dist/mint-components/p-fa20e730.entry.js +1 -0
  235. package/dist/mint-components/{p-a0045707.system.entry.js → p-ff3c9d53.system.entry.js} +1 -1
  236. package/dist/mint-components/p-ff3d1ed1.system.entry.js +1 -0
  237. package/dist/types/components/sqm-big-stat/sqm-big-stat-view.d.ts +0 -1
  238. package/dist/types/components/sqm-big-stat/useBigStat.d.ts +1 -4
  239. package/dist/types/components/sqm-portal-forgot-password/sqm-portal-forgot-password-view.d.ts +1 -0
  240. package/dist/types/components/sqm-portal-forgot-password/sqm-portal-forgot-password.d.ts +4 -0
  241. package/dist/types/components/sqm-portal-forgot-password/usePortalForgotPassword.d.ts +2 -1
  242. package/dist/types/components/sqm-portal-login/sqm-portal-login-view.d.ts +2 -0
  243. package/dist/types/components/sqm-portal-login/sqm-portal-login.d.ts +8 -0
  244. package/dist/types/components/sqm-portal-login/usePortalLogin.d.ts +3 -3
  245. package/dist/types/components/sqm-portal-register/sqm-portal-register-view.d.ts +1 -0
  246. package/dist/types/components/sqm-portal-register/sqm-portal-register.d.ts +4 -0
  247. package/dist/types/components/sqm-portal-register/usePortalRegister.d.ts +1 -0
  248. package/dist/types/{tables → components/sqm-referral-table}/re-render.d.ts +0 -0
  249. package/dist/types/{tables → components/sqm-referral-table}/sqm-table-cell.d.ts +0 -0
  250. package/dist/types/{tables → components/sqm-referral-table}/sqm-table-row.d.ts +0 -0
  251. package/dist/types/{tables → components/sqm-referral-table}/useChildElements.d.ts +0 -0
  252. package/dist/types/components.d.ts +32 -237
  253. package/dist/types/global/styles.d.ts +1 -1
  254. package/dist/types/{components/sqm-asset-card → stories}/AssetCard.stories.d.ts +0 -0
  255. package/dist/types/{components/sqm-big-stat → stories}/BigStat.stories.d.ts +0 -0
  256. package/dist/types/{components/sqm-portal-change-password → stories}/ChangePassword.stories.d.ts +0 -0
  257. package/dist/types/{components/sqm-divided-layout → stories}/DividedLayout.stories.d.ts +0 -0
  258. package/dist/types/{components/sqm-edit-profile → stories}/EditProfileForm.stories.d.ts +0 -0
  259. package/dist/types/{components/sqm-form-message → stories}/FormMessage.stories.d.ts +0 -0
  260. package/dist/types/{components/sqm-hero → stories}/Hero.stories.d.ts +0 -0
  261. package/dist/types/{components/sqm-leaderboard → stories}/Leaderboard.stories.d.ts +0 -0
  262. package/dist/types/{components/sqm-leaderboard-rank → stories}/LeaderboardRank.stories.d.ts +0 -0
  263. package/dist/types/{components/sqm-name-fields → stories}/NameFields.stories.d.ts +0 -0
  264. package/dist/types/{components/sqm-navigation-sidebar → stories}/NavigationSidebar.stories.d.ts +0 -0
  265. package/dist/types/{components/sqm-password-field → stories}/PasswordField.stories.d.ts +0 -0
  266. package/dist/types/{components/sqm-portal-email-verification → stories}/PortalEmailVerification.stories.d.ts +0 -0
  267. package/dist/types/{components/sqm-portal-footer → stories}/PortalFooter.stories.d.ts +0 -0
  268. package/dist/types/{components/sqm-portal-forgot-password → stories}/PortalForgotPassword.stories.d.ts +0 -0
  269. package/dist/types/{components/sqm-portal-frame → stories}/PortalFrame.stories.d.ts +0 -0
  270. package/dist/types/{components/sqm-portal-login → stories}/PortalLogin.stories.d.ts +0 -0
  271. package/dist/types/{components/sqm-portal-profile → stories}/PortalProfile.stories.d.ts +0 -0
  272. package/dist/types/{components/sqm-portal-register → stories}/PortalRegister.stories.d.ts +0 -0
  273. package/dist/types/{components/sqm-portal-reset-password → stories}/PortalResetPassword.stories.d.ts +0 -0
  274. package/dist/types/{components/sqm-portal-verify-email → stories}/PortalVerifyEmail.stories.d.ts +0 -0
  275. package/dist/types/{components/sqm-program-menu → stories}/ProgramMenu.stories.d.ts +0 -0
  276. package/dist/types/{components/sqm-referral-iframe → stories}/ReferralIframe.stories.d.ts +0 -0
  277. package/dist/types/{components/sqm-referral-table → stories}/ReferralTable.stories.d.ts +0 -0
  278. package/dist/types/{components/sqm-referral-table → stories}/ReferralTableCell.stories.d.ts +0 -0
  279. package/dist/types/{components/sqm-referral-table → stories}/ReferralTableRewardsCell.stories.d.ts +0 -0
  280. package/dist/types/{components/sqm-rewards-table → stories}/Router.stories.d.ts +0 -0
  281. package/dist/types/{components/sqm-share-button → stories}/ShareButton.stories.d.ts +0 -0
  282. package/dist/types/{components/sqm-share-link → stories}/ShareLink.stories.d.ts +0 -0
  283. package/dist/types/{components/sqm-navigation-sidebar-item → stories}/SidebarItem.stories.d.ts +0 -0
  284. package/dist/types/{components/sqm-big-stat → stories}/UseBigStat.stories.d.ts +0 -0
  285. package/dist/types/{components/sqm-edit-profile → stories}/UseEditProfile.stories.d.ts +0 -0
  286. package/dist/types/{components/sqm-leaderboard → stories}/UseLeaderboard.stories.d.ts +0 -0
  287. package/dist/types/{components/sqm-share-button → stories}/UseShareButton.stories.d.ts +0 -0
  288. package/dist/types/{components/sqm-share-link → stories}/UseShareLink.stories.d.ts +0 -0
  289. package/dist/types/stories/UserName.stories.d.ts +6 -0
  290. package/grapesjs/grapesjs.js +1 -1
  291. package/package.json +2 -2
  292. package/dist/cjs/sqm-leaderboard-rank-view-35015d30.js +0 -10
  293. package/dist/cjs/sqm-rewards-table.cjs.entry.js +0 -332
  294. package/dist/cjs/tslib.es6-0e81fab1.js +0 -56
  295. package/dist/cjs/useChildElements-428ca5b8.js +0 -21
  296. package/dist/collection/components/sqm-reward-exchange-list/SVGs.js +0 -8
  297. package/dist/collection/components/sqm-reward-exchange-list/UseRewardExchangeList.stories.js +0 -143
  298. package/dist/collection/components/sqm-reward-exchange-list/assets/Reward-icon.png +0 -0
  299. package/dist/collection/components/sqm-reward-exchange-list/progressBar.js +0 -60
  300. package/dist/collection/components/sqm-reward-exchange-list/sqm-reward-exchange-list-view.js +0 -255
  301. package/dist/collection/components/sqm-reward-exchange-list/sqm-reward-exchange-list.js +0 -121
  302. package/dist/collection/components/sqm-reward-exchange-list/useRewardExchangeList.js +0 -198
  303. package/dist/collection/components/sqm-rewards-table/sqm-rewards-table.js +0 -222
  304. package/dist/collection/components/sqm-rewards-table/useRewardsTable.js +0 -195
  305. package/dist/collection/components/sqm-task-card/Matrix.js +0 -63
  306. package/dist/collection/components/sqm-task-card/SVGs.js +0 -9
  307. package/dist/collection/components/sqm-task-card/TaskCard.stories.js +0 -330
  308. package/dist/collection/components/sqm-task-card/UseTaskCard.stories.js +0 -41
  309. package/dist/collection/components/sqm-task-card/progress-bar/SVGs.js +0 -7
  310. package/dist/collection/components/sqm-task-card/progress-bar/progress-bar-view.js +0 -311
  311. package/dist/collection/components/sqm-task-card/progress-bar/progress-bar.stories.js +0 -53
  312. package/dist/collection/components/sqm-task-card/sqm-task-card-view.js +0 -164
  313. package/dist/collection/components/sqm-task-card/sqm-task-card.js +0 -384
  314. package/dist/collection/tables/GenericTableView.js +0 -51
  315. package/dist/collection/tables/TableSlots.js +0 -22
  316. package/dist/esm/sqm-leaderboard-rank-view-da91f5f3.js +0 -8
  317. package/dist/esm/sqm-rewards-table.entry.js +0 -328
  318. package/dist/esm/tslib.es6-7ac9d7e4.js +0 -53
  319. package/dist/esm/useChildElements-506f00d0.js +0 -19
  320. package/dist/esm-es5/index-2f5dd0a1.js +0 -1
  321. package/dist/esm-es5/sqm-divided-layout_28.entry.js +0 -1
  322. package/dist/esm-es5/sqm-leaderboard-rank-view-da91f5f3.js +0 -1
  323. package/dist/esm-es5/sqm-rewards-table.entry.js +0 -1
  324. package/dist/esm-es5/tslib.es6-7ac9d7e4.js +0 -15
  325. package/dist/esm-es5/useChildElements-506f00d0.js +0 -1
  326. package/dist/esm-es5/useDemoBigStat-3d4832ef.js +0 -1
  327. package/dist/mint-components/assets/Reward-icon.png +0 -0
  328. package/dist/mint-components/p-0c07c81a.js +0 -227
  329. package/dist/mint-components/p-11c75956.entry.js +0 -1
  330. package/dist/mint-components/p-16da5146.entry.js +0 -1
  331. package/dist/mint-components/p-189219ee.system.js +0 -1
  332. package/dist/mint-components/p-21dfdeb8.entry.js +0 -1
  333. package/dist/mint-components/p-23a0bdae.entry.js +0 -1
  334. package/dist/mint-components/p-2d209222.system.entry.js +0 -1
  335. package/dist/mint-components/p-2f171597.entry.js +0 -1
  336. package/dist/mint-components/p-337b49ee.entry.js +0 -1
  337. package/dist/mint-components/p-55e02769.entry.js +0 -13
  338. package/dist/mint-components/p-58d9b2f0.js +0 -15
  339. package/dist/mint-components/p-6d545e13.entry.js +0 -1
  340. package/dist/mint-components/p-6e9944ed.system.entry.js +0 -1
  341. package/dist/mint-components/p-70837c1c.entry.js +0 -49
  342. package/dist/mint-components/p-71d942af.entry.js +0 -9
  343. package/dist/mint-components/p-7c138c84.entry.js +0 -1
  344. package/dist/mint-components/p-7c13e32e.system.entry.js +0 -1
  345. package/dist/mint-components/p-7c261ea0.system.entry.js +0 -1
  346. package/dist/mint-components/p-8034f81c.system.entry.js +0 -1
  347. package/dist/mint-components/p-8c16f04e.js +0 -1
  348. package/dist/mint-components/p-8f04bed2.entry.js +0 -288
  349. package/dist/mint-components/p-91d39961.system.js +0 -1
  350. package/dist/mint-components/p-a0cfd3d9.system.js +0 -1
  351. package/dist/mint-components/p-aefa270d.entry.js +0 -1
  352. package/dist/mint-components/p-b3af1c6f.js +0 -1
  353. package/dist/mint-components/p-bf04a8e1.system.entry.js +0 -1
  354. package/dist/mint-components/p-bf055b6c.system.js +0 -1
  355. package/dist/mint-components/p-c3866bfa.system.entry.js +0 -1
  356. package/dist/mint-components/p-dd6a666e.system.js +0 -15
  357. package/dist/mint-components/p-dfc3cf82.js +0 -1
  358. package/dist/mint-components/p-e19a57a4.system.entry.js +0 -1
  359. package/dist/mint-components/p-e2ebe90c.entry.js +0 -1
  360. package/dist/mint-components/p-ecbabf6e.system.js +0 -1
  361. package/dist/mint-components/p-f41ab9e1.system.js +0 -1
  362. package/dist/mint-components/p-fca9971b.system.js +0 -1
  363. package/dist/types/components/sqm-reward-exchange-list/SVGs.d.ts +0 -3
  364. package/dist/types/components/sqm-reward-exchange-list/UseRewardExchangeList.stories.d.ts +0 -28
  365. package/dist/types/components/sqm-reward-exchange-list/progressBar.d.ts +0 -4
  366. package/dist/types/components/sqm-reward-exchange-list/sqm-reward-exchange-list-view.d.ts +0 -27
  367. package/dist/types/components/sqm-reward-exchange-list/sqm-reward-exchange-list.d.ts +0 -20
  368. package/dist/types/components/sqm-reward-exchange-list/useRewardExchangeList.d.ts +0 -43
  369. package/dist/types/components/sqm-rewards-table/sqm-rewards-table.d.ts +0 -32
  370. package/dist/types/components/sqm-rewards-table/useRewardsTable.d.ts +0 -5
  371. package/dist/types/components/sqm-task-card/Matrix.d.ts +0 -11
  372. package/dist/types/components/sqm-task-card/SVGs.d.ts +0 -2
  373. package/dist/types/components/sqm-task-card/TaskCard.stories.d.ts +0 -11
  374. package/dist/types/components/sqm-task-card/UseTaskCard.stories.d.ts +0 -10
  375. package/dist/types/components/sqm-task-card/progress-bar/SVGs.d.ts +0 -1
  376. package/dist/types/components/sqm-task-card/progress-bar/progress-bar-view.d.ts +0 -9
  377. package/dist/types/components/sqm-task-card/progress-bar/progress-bar.stories.d.ts +0 -12
  378. package/dist/types/components/sqm-task-card/sqm-task-card-view.d.ts +0 -16
  379. package/dist/types/components/sqm-task-card/sqm-task-card.d.ts +0 -73
  380. package/dist/types/components/sqm-user-name/UserName.stories.d.ts +0 -6
  381. package/dist/types/tables/GenericTableView.d.ts +0 -29
  382. package/dist/types/tables/TableSlots.d.ts +0 -8
@@ -1,10 +1,9 @@
1
- import { h, r as registerInstance, c as Host, d as getAssetPath } from './index-17b4da69.js';
1
+ import { h, r as registerInstance, c as Host } from './index-17b4da69.js';
2
2
  import { m as h$1, j as useState, e as useEffect, f as useRef, n as d$2, y as y$1, b as browser, u as useReducer, c as createCommonjsModule, a as commonjsGlobal, k as useMemo } from './extends-3a3f9fe2.js';
3
- import { i as intl, a as insertCSS } from './global-5ecbf81a.js';
3
+ import { i as intl, a as insertCSS } from './global-cc82aa03.js';
4
4
  import { u as useCallback } from './use-callback-b38a1523.js';
5
- import { d as dist, T as T$1, e as en, b as be, j as j$1, Z as Ze, r as rn, D as De, q as qe, P as P$1, E as Ee, M as M$1, a as sn, c as an, x as x$1, f as D$1, L as L$1, N as Ne } from './index.module-f80561db.js';
5
+ import { d as dist, T as T$1, e as en, b as be, j as j$1, Z as Ze, r as rn, D as De, q as qe, P as P$1, E as Ee, M as M$1, a as sn, c as an, x as x$1, f as D$1, L as L$1 } from './index.module-33c313d2.js';
6
6
  import { j as jsonpointer } from './jsonpointer-388a7082.js';
7
- import './tslib.es6-7ac9d7e4.js';
8
7
  import { j as jss, c as create } from './jss-preset-default.esm-71fae192.js';
9
8
  import { g as getProps, a as getMissingProps } from './utils-454405f5.js';
10
9
  import { c as cjs } from './cjs-bdfb4486.js';
@@ -12,23 +11,21 @@ import { E as ErrorStyles, H as HostBlock, A as AuthWrapper, a as AuthColumn, b
12
11
  import { P as PortalContainerView } from './sqm-portal-container-view-73757ca5.js';
13
12
  import { P as PortalSectionView } from './sqm-portal-section-view-f0876545.js';
14
13
  import { T as TextSpanView } from './sqm-text-span-view-1781df94.js';
15
- import { g as gql } from './index-2f5dd0a1.js';
16
- import { u as useRerenderListener } from './re-render-9ab5fe0f.js';
17
- import { u as useChildElements } from './useChildElements-506f00d0.js';
18
- import { p as pathToRegexp, B as BigStatView, u as useBigStat, a as useDemoBigStat } from './useDemoBigStat-3d4832ef.js';
14
+ import { g as gql, L as LeaderboardRankView } from './sqm-leaderboard-rank-view-4f48da0c.js';
15
+ import { u as useRerenderListener } from './re-render-338d931e.js';
16
+ import { p as pathToRegexp, B as BigStatView, u as useBigStat, a as useDemoBigStat } from './useDemoBigStat-2fe92931.js';
19
17
  import { S as ShareLinkView } from './sqm-share-link-view-9282b8e8.js';
20
- import { L as LeaderboardView, u as useLeaderboard, S as ShadowViewAddon } from './ShadowViewAddon-fff5d35d.js';
21
- import { L as LeaderboardRankView } from './sqm-leaderboard-rank-view-da91f5f3.js';
18
+ import { L as LeaderboardView, u as useLeaderboard, S as ShadowViewAddon } from './ShadowViewAddon-2e3ea31f.js';
22
19
  import { N as NavigationSidebarView } from './sqm-navigation-sidebar-view-2242502c.js';
23
- import { N as NavigationSidebarItemView } from './sqm-navigation-sidebar-item-view-8a3f374b.js';
20
+ import { N as NavigationSidebarItemView } from './sqm-navigation-sidebar-item-view-5dfa535f.js';
24
21
  import { S as StatContainerView } from './sqm-stat-container-view-4133feb6.js';
25
- import { P as PortalProfileView } from './sqm-portal-profile-view-824c8242.js';
22
+ import { P as PortalProfileView } from './sqm-portal-profile-view-8781176c.js';
26
23
  import { P as PortalForgotPasswordView } from './sqm-portal-forgot-password-view-e3a6a716.js';
27
- import { P as PortalEmailVerificationView } from './sqm-portal-email-verification-view-90781be2.js';
24
+ import { P as PortalEmailVerificationView } from './sqm-portal-email-verification-view-87bf8191.js';
28
25
  import { P as PortalResetPasswordView$1 } from './sqm-portal-reset-password-view-a4e50da2.js';
29
26
  import { P as PortalVerifyEmailView } from './sqm-portal-verify-email-view-6f18bac2.js';
30
27
  import { A as AssetCardView } from './sqm-asset-card-view-6f360937.js';
31
- import { P as PoweredByImg$1, a as PortalFooterView } from './sqm-portal-footer-view-c317518e.js';
28
+ import { P as PoweredByImg$1, a as PortalFooterView } from './sqm-portal-footer-view-da135cff.js';
32
29
  import { H as HeroView } from './sqm-hero-view-bfd8abd1.js';
33
30
  import { N as NameFieldsView } from './sqm-name-fields-view-4162fb7b.js';
34
31
 
@@ -1393,7 +1390,7 @@ function PortalLoginView(props) {
1393
1390
  content.secondaryButton))));
1394
1391
  }
1395
1392
 
1396
- function usePortalLogin({ nextPage }) {
1393
+ function usePortalLogin(props) {
1397
1394
  var _a, _b, _c, _d;
1398
1395
  const [request, { loading, errors, data }] = qe();
1399
1396
  const [error, setError] = useState("");
@@ -1413,7 +1410,7 @@ function usePortalLogin({ nextPage }) {
1413
1410
  if ((_a = data === null || data === void 0 ? void 0 : data.authenticateManagedIdentityWithEmailAndPassword) === null || _a === void 0 ? void 0 : _a.token) {
1414
1411
  urlParams.delete("nextPage");
1415
1412
  rn.push({
1416
- pathname: nextPageOverride || nextPage,
1413
+ pathname: nextPageOverride || props.nextPage,
1417
1414
  search: urlParams.toString() && "?" + urlParams.toString(),
1418
1415
  });
1419
1416
  }
@@ -1429,6 +1426,8 @@ function usePortalLogin({ nextPage }) {
1429
1426
  states: {
1430
1427
  loading,
1431
1428
  error: errorMessage,
1429
+ registerPath: props.registerPath,
1430
+ forgotPasswordPath: props.registerPath
1432
1431
  },
1433
1432
  callbacks: {
1434
1433
  submit,
@@ -1468,6 +1467,14 @@ const PortalLogin = class {
1468
1467
  * @uiName Heading label
1469
1468
  */
1470
1469
  this.pageLabel = "Sign in to your account";
1470
+ /**
1471
+ * @uiName Routing path to register page
1472
+ */
1473
+ this.registerPath = "/register";
1474
+ /**
1475
+ * @uiName Routing path to forgot password page
1476
+ */
1477
+ this.forgotPasswordPath = "/forgotPassword";
1471
1478
  h$1(this);
1472
1479
  }
1473
1480
  disconnectedCallback() { }
@@ -1476,8 +1483,8 @@ const PortalLogin = class {
1476
1483
  ? useLoginDemo(this)
1477
1484
  : usePortalLogin(this);
1478
1485
  const content = {
1479
- forgotPasswordButton: (h("slot", { name: "forgotPassword" }, h("a", { onClick: () => rn.push("/forgotPassword") }, this.forgotPasswordLabel))),
1480
- secondaryButton: (h("slot", { name: "secondaryButton" }, h("sl-button", { type: "text", disabled: states.loading, onClick: () => rn.push("/register") }, this.registerLabel))),
1486
+ forgotPasswordButton: (h("slot", { name: "forgotPassword" }, h("a", { onClick: () => rn.push(states.forgotPasswordPath) }, this.forgotPasswordLabel))),
1487
+ secondaryButton: (h("slot", { name: "secondaryButton" }, h("sl-button", { type: "text", disabled: states.loading, onClick: () => rn.push(states.registerPath) }, this.registerLabel))),
1481
1488
  emailLabel: this.emailLabel,
1482
1489
  passwordLabel: this.passwordLabel,
1483
1490
  submitLabel: this.submitLabel,
@@ -1488,7 +1495,12 @@ const PortalLogin = class {
1488
1495
  };
1489
1496
  function useLoginDemo(props) {
1490
1497
  return cjs({
1491
- states: { error: "", loading: false },
1498
+ states: {
1499
+ error: "",
1500
+ loading: false,
1501
+ forgotPasswordPath: "/forgotPassword",
1502
+ registerPath: "/register",
1503
+ },
1492
1504
  callbacks: {
1493
1505
  submit: async (_event) => {
1494
1506
  console.log("submit");
@@ -5543,6 +5555,7 @@ function usePortalRegister(props) {
5543
5555
  validationState,
5544
5556
  confirmPassword: props.confirmPassword,
5545
5557
  hideInputs: props.hideInputs,
5558
+ loginPath: props.loginPath
5546
5559
  },
5547
5560
  callbacks: {
5548
5561
  submit,
@@ -5598,6 +5611,10 @@ const PortalRegister = class {
5598
5611
  * @uiName Heading label
5599
5612
  */
5600
5613
  this.pageLabel = "Register";
5614
+ /**
5615
+ * @uiName Routing path to login page
5616
+ */
5617
+ this.loginPath = "/login";
5601
5618
  h$1(this);
5602
5619
  }
5603
5620
  disconnectedCallback() { }
@@ -5607,7 +5624,7 @@ const PortalRegister = class {
5607
5624
  : usePortalRegister(this);
5608
5625
  const content = {
5609
5626
  formData: h("slot", { name: "formData" }),
5610
- secondaryButton: (h("slot", { name: "secondaryButton" }, h("sl-button", { type: "text", disabled: states.loading, onClick: () => rn.push("/login") }, this.loginLabel))),
5627
+ secondaryButton: (h("slot", { name: "secondaryButton" }, h("sl-button", { type: "text", disabled: states.loading, onClick: () => rn.push(states.loginPath) }, this.loginLabel))),
5611
5628
  emailLabel: this.emailLabel,
5612
5629
  passwordLabel: this.passwordLabel,
5613
5630
  submitLabel: this.submitLabel,
@@ -5625,6 +5642,7 @@ function useRegisterDemo(props) {
5625
5642
  confirmPassword: true,
5626
5643
  hideInputs: props.hideInputs || false,
5627
5644
  customPasswordField: false,
5645
+ loginPath: "/login",
5628
5646
  },
5629
5647
  callbacks: {
5630
5648
  submit: async (_event) => {
@@ -5875,6 +5893,21 @@ function ReferralTableView(props) {
5875
5893
  h("sl-button", { size: "small", loading: states.loading, disabled: !states.hasNext, onClick: callbacks.nextPage, exportparts: "base: defaultbutton-base" }, data.textOverrides.moreLabel))));
5876
5894
  }
5877
5895
 
5896
+ function useChildElements() {
5897
+ const host = P$1();
5898
+ const initialState = host.children.length ? Array.from(host.children) : [];
5899
+ const [childElements, setChildElements] = useState(initialState);
5900
+ useEffect(() => {
5901
+ const observer = new MutationObserver(() => {
5902
+ const children = Array.from(host.children);
5903
+ setChildElements([...children]);
5904
+ });
5905
+ observer.observe(host, { childList: true });
5906
+ return () => observer.disconnect();
5907
+ }, [host]);
5908
+ return childElements;
5909
+ }
5910
+
5878
5911
  const GET_REFERRER_DATA = gql `
5879
5912
  query getReferrals($programId: ID, $rewardFilter: RewardFilterInput) {
5880
5913
  viewer {
@@ -14733,575 +14766,6 @@ const ReferralTableUserCell = class {
14733
14766
  }
14734
14767
  };
14735
14768
 
14736
- const GET_EXCHANGE_LIST = dist.gql `
14737
- query getExchangeList {
14738
- viewer {
14739
- ... on User {
14740
- visibleRewardExchangeItems(limit: 20, offset: 0) {
14741
- data {
14742
- key
14743
- name
14744
- description
14745
- imageUrl
14746
- available
14747
- unavailableReason
14748
- unavailableReasonCode
14749
- ruleType
14750
- sourceUnit
14751
- sourceValue
14752
- prettySourceValue
14753
- sourceMinValue
14754
- prettySourceMinValue
14755
- sourceMaxValue
14756
- prettySourceMaxValue
14757
- destinationMinValue
14758
- prettyDestinationMinValue
14759
- destinationMaxValue
14760
- prettyDestinationMaxValue
14761
- globalRewardKey
14762
- destinationUnit
14763
- steps {
14764
- sourceValue
14765
- prettySourceValue
14766
- destinationValue
14767
- prettyDestinationValue
14768
- available
14769
- unavailableReasonCode
14770
- }
14771
- }
14772
- totalCount
14773
- }
14774
- }
14775
- }
14776
- }
14777
- `;
14778
- const EXCHANGE = dist.gql `
14779
- mutation exchange($exchangeRewardInput: ExchangeRewardInput!) {
14780
- exchangeReward(exchangeRewardInput: $exchangeRewardInput) {
14781
- reward {
14782
- id
14783
- fuelTankCode
14784
- }
14785
- }
14786
- }
14787
- `;
14788
- function useRewardExchangeList(props) {
14789
- var _a, _b, _c, _d;
14790
- const drawerRef = useRef();
14791
- const [exchangeState, setExchangeState] = useReducer((state, next) => ({
14792
- ...state,
14793
- ...next,
14794
- }), {
14795
- selectedItem: undefined,
14796
- selectedStep: undefined,
14797
- redeemStage: "",
14798
- amount: 0,
14799
- exchangeError: false,
14800
- });
14801
- const { selectedItem, selectedStep, redeemStage, amount, exchangeError } = exchangeState;
14802
- const user = T$1();
14803
- const [exchange, { data: exchangeResponse, errors }] = be(EXCHANGE);
14804
- const { data, loading } = en(GET_EXCHANGE_LIST, !(user === null || user === void 0 ? void 0 : user.jwt));
14805
- useEffect(() => {
14806
- var _a, _b;
14807
- if ((_b = (_a = exchangeResponse === null || exchangeResponse === void 0 ? void 0 : exchangeResponse.exchangeReward) === null || _a === void 0 ? void 0 : _a.reward) === null || _b === void 0 ? void 0 : _b.id) {
14808
- setExchangeState({ redeemStage: "success" });
14809
- }
14810
- if (!!errors) {
14811
- console.log("YEA");
14812
- setExchangeState({ exchangeError: true });
14813
- }
14814
- }, [exchangeResponse, errors]);
14815
- function openDrawer() {
14816
- var _a;
14817
- setExchangeState({ redeemStage: "chooseReward" });
14818
- (_a = drawerRef.current) === null || _a === void 0 ? void 0 : _a.show();
14819
- }
14820
- function exchangeReward() {
14821
- if (!selectedItem)
14822
- return;
14823
- let exchangeVariables = {
14824
- accountId: user === null || user === void 0 ? void 0 : user.accountId,
14825
- userId: user.id,
14826
- };
14827
- switch (selectedItem.ruleType) {
14828
- case "FIXED_GLOBAL_REWARD":
14829
- exchangeVariables = {
14830
- ...exchangeVariables,
14831
- redeemCreditInput: {
14832
- amount: selectedItem.sourceValue,
14833
- unit: selectedItem.sourceUnit,
14834
- },
14835
- globalRewardKey: selectedItem.globalRewardKey,
14836
- };
14837
- break;
14838
- case "VARIABLE_GLOBAL_REWARD":
14839
- exchangeVariables = {
14840
- ...exchangeVariables,
14841
- redeemCreditInput: {
14842
- amount: amount,
14843
- unit: selectedItem.sourceUnit,
14844
- },
14845
- globalRewardKey: selectedItem.globalRewardKey,
14846
- rewardInput: {
14847
- valueInCents: selectedStep.destinationValue,
14848
- },
14849
- };
14850
- break;
14851
- case "VARIABLE_CREDIT_REWARD":
14852
- exchangeVariables = {
14853
- ...exchangeVariables,
14854
- redeemCreditInput: {
14855
- amount: amount,
14856
- unit: selectedItem.sourceUnit,
14857
- },
14858
- rewardInput: {
14859
- type: "CREDIT",
14860
- unit: selectedItem.destinationUnit,
14861
- assignedCredit: selectedStep.destinationValue,
14862
- },
14863
- };
14864
- break;
14865
- default:
14866
- exchangeVariables = {
14867
- ...exchangeVariables,
14868
- redeemCreditInput: {
14869
- amount: selectedItem.sourceValue,
14870
- unit: selectedItem.sourceUnit,
14871
- },
14872
- globalRewardKey: selectedItem.globalRewardKey,
14873
- };
14874
- }
14875
- exchange({ exchangeRewardInput: exchangeVariables });
14876
- }
14877
- const resetState = useCallback((e) => {
14878
- var _a, _b;
14879
- // selects also trigger an sl-hide event :(
14880
- //@ts-ignore - componentId is not private here
14881
- if (((_a = e === null || e === void 0 ? void 0 : e.target) === null || _a === void 0 ? void 0 : _a.componentId) !== ((_b = drawerRef.current) === null || _b === void 0 ? void 0 : _b.componentId))
14882
- return;
14883
- setExchangeState({
14884
- amount: 0,
14885
- selectedStep: undefined,
14886
- selectedItem: undefined,
14887
- exchangeError: false,
14888
- });
14889
- }, []);
14890
- useEffect(() => {
14891
- if (!(drawerRef === null || drawerRef === void 0 ? void 0 : drawerRef.current))
14892
- return;
14893
- const drawer = drawerRef.current;
14894
- // Clear input value when drawer is closed
14895
- drawer.addEventListener("sl-hide", resetState);
14896
- return () => {
14897
- drawer.removeEventListener("sl-hide", resetState);
14898
- };
14899
- }, [drawerRef.current]);
14900
- function setStage(stage) {
14901
- setExchangeState({ redeemStage: stage });
14902
- }
14903
- return {
14904
- states: {
14905
- content: {
14906
- text: props,
14907
- },
14908
- selectedItem,
14909
- redeemStage,
14910
- amount,
14911
- selectedStep,
14912
- exchangeError,
14913
- loading,
14914
- },
14915
- data: {
14916
- exchangeList: (_b = (_a = data === null || data === void 0 ? void 0 : data.viewer) === null || _a === void 0 ? void 0 : _a.visibleRewardExchangeItems) === null || _b === void 0 ? void 0 : _b.data,
14917
- //@ts-ignore
14918
- fuelTankCode: (_d = (_c = exchangeResponse === null || exchangeResponse === void 0 ? void 0 : exchangeResponse.exchangeReward) === null || _c === void 0 ? void 0 : _c.reward) === null || _d === void 0 ? void 0 : _d.fuelTankCode,
14919
- },
14920
- callbacks: {
14921
- exchangeReward,
14922
- openDrawer,
14923
- setExchangeState,
14924
- setStage,
14925
- },
14926
- refs: {
14927
- drawerRef,
14928
- },
14929
- };
14930
- }
14931
-
14932
- const LeftArrow = () => (h("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", style: { marginBottom: "-2px", marginRight: "5px" } },
14933
- h("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M7.34655 1.90573C7.75405 2.31323 7.75405 2.97392 7.34655 3.38143L3.56266 7.16531H14.9565C15.5328 7.16531 16 7.6325 16 8.20879C16 8.78509 15.5328 9.25227 14.9565 9.25227H3.56266L7.69437 13.384C8.10188 13.7915 8.10188 14.4522 7.69437 14.8597C7.28687 15.2672 6.62617 15.2672 6.21867 14.8597L0.305628 8.94664C-0.101876 8.53914 -0.101876 7.87845 0.305628 7.47094L5.87084 1.90573C6.27835 1.49822 6.93904 1.49822 7.34655 1.90573Z", fill: "#858585" })));
14934
- const ExchangeArrows = () => (h("svg", { width: "30", height: "30", viewBox: "0 0 30 30", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
14935
- h("circle", { cx: "15", cy: "15", r: "15", fill: "white" }),
14936
- h("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M10.6255 21.783C10.5129 21.8963 10.3597 21.96 10.2 21.96C10.0402 21.96 9.88705 21.8963 9.77442 21.783L5.87442 17.8597C5.64081 17.6247 5.64194 17.2448 5.87695 17.0112C6.11197 16.7775 6.49186 16.7787 6.72548 17.0137L9.59995 19.9054V8.52001C9.59995 8.18864 9.86858 7.92001 10.2 7.92001C10.5313 7.92001 10.8 8.18864 10.8 8.52001V19.9054L13.6744 17.0137C13.908 16.7787 14.2879 16.7775 14.5229 17.0112C14.758 17.2448 14.7591 17.6247 14.5255 17.8597L10.6255 21.783ZM20.2255 8.09707C20.1129 7.98378 19.9597 7.92007 19.8 7.92007C19.6402 7.92007 19.487 7.98378 19.3744 8.09707L15.4744 12.0204C15.2408 12.2554 15.2419 12.6353 15.477 12.8689C15.712 13.1025 16.0919 13.1014 16.3255 12.8664L19.2 9.97473V21.3601C19.2 21.6914 19.4686 21.9601 19.8 21.9601C20.1313 21.9601 20.4 21.6914 20.4 21.3601V9.97473L23.2744 12.8664C23.508 13.1014 23.8879 13.1025 24.1229 12.8689C24.358 12.6353 24.3591 12.2554 24.1255 12.0204L20.2255 8.09707Z", fill: "#333333" })));
14937
- const CheckMark = () => (h("svg", { style: { top: "-4px", position: "relative", left: "2px" }, xmlns: "http://www.w3.org/2000/svg", width: "10", height: "7", viewBox: "0 0 10 7", fill: "none" },
14938
- h("path", { d: "M2.12828 2.71485C1.72536 2.33712 1.09253 2.35754 0.714799 2.76045C0.337068 3.16336 0.357483 3.7962 0.760395 4.17393L2.12828 2.71485ZM3.81471 5.66661L3.13076 6.39615C3.51542 6.75677 4.11399 6.75677 4.49865 6.39615L3.81471 5.66661ZM9.23939 1.95171C9.6423 1.57397 9.66271 0.941139 9.28498 0.538227C8.90725 0.135315 8.27442 0.114901 7.87151 0.492631L9.23939 1.95171ZM0.760395 4.17393L3.13076 6.39615L4.49865 4.93708L2.12828 2.71485L0.760395 4.17393ZM4.49865 6.39615L9.23939 1.95171L7.87151 0.492631L3.13076 4.93708L4.49865 6.39615Z", fill: "white" })));
14939
-
14940
- function Dot({ active, completed, incomplete, }) {
14941
- return (h("div", { style: {
14942
- flex: "0 0 0",
14943
- content: "''",
14944
- height: "4px",
14945
- borderRadius: "4px",
14946
- background: incomplete ? "#E5E5E5" : "#9E9E9E",
14947
- position: "relative",
14948
- bottom: "0",
14949
- left: "0",
14950
- display: "flex",
14951
- justifyContent: "center",
14952
- columnGap: "50px",
14953
- marginRight: "-2px",
14954
- boxSizing: "content-box",
14955
- } },
14956
- h("div", { style: {
14957
- backgroundColor: completed ? "#9E9E9E" : "#FFF",
14958
- border: active
14959
- ? "2px solid #9E9E9E"
14960
- : incomplete
14961
- ? "2px solid #E5E5E5"
14962
- : "none",
14963
- borderRadius: "50%",
14964
- width: completed ? "14px" : "10px",
14965
- height: completed ? "14px" : "10px",
14966
- margin: "-5px auto 0px",
14967
- zIndex: "1",
14968
- boxSizing: "content-box",
14969
- } }, completed && h(CheckMark, null))));
14970
- }
14971
- function ProgressLine({ incomplete = false, active = false }) {
14972
- return (h("div", { style: {
14973
- content: "''",
14974
- flex: "0.5 0.5 0",
14975
- height: "4px",
14976
- borderRadius: "4px",
14977
- background: incomplete || active ? "#E5E5E5" : "#9E9E9E",
14978
- position: "relative",
14979
- bottom: "0",
14980
- left: "0",
14981
- display: "flex",
14982
- justifyContent: "center",
14983
- columnGap: "50px",
14984
- marginRight: "-2px",
14985
- boxSizing: "content-box",
14986
- } }));
14987
- }
14988
- function Progress({ active, completed, incomplete }) {
14989
- return [
14990
- h(ProgressLine, { incomplete: incomplete }),
14991
- h(Dot, { active: active, completed: completed, incomplete: incomplete }),
14992
- h(ProgressLine, { incomplete: incomplete, active: active }),
14993
- ];
14994
- }
14995
- function ProgressBar({ stageCount, currentStage, }) {
14996
- return (h("div", { style: { display: "flex", columnGap: "-2px" } }, Array.from(Array(stageCount).keys()).map((stage) => (h(Progress, { active: currentStage === stage, completed: currentStage > stage, incomplete: currentStage < stage })))));
14997
- }
14998
-
14999
- const stageList = ["chooseReward", "chooseAmount", "confirmation", "success"];
15000
- const stageProgressList = {
15001
- chooseReward: "Choose reward",
15002
- chooseAmount: "Amount",
15003
- confirmation: "Confirm",
15004
- };
15005
- function RewardExchangeView(props) {
15006
- const style = {
15007
- Container: {
15008
- position: "relative",
15009
- display: "flex",
15010
- },
15011
- CardContainer: {
15012
- "&:hover": {
15013
- boxShadow: "0 3px 10px #87ceeb6e!important",
15014
- },
15015
- },
15016
- Base: {
15017
- display: "flex",
15018
- cursor: "pointer",
15019
- textAlign: "center",
15020
- height: "120px",
15021
- "&::part(base)": {
15022
- width: "100%",
15023
- maxWidth: "350px",
15024
- display: "flex",
15025
- margin: "0 auto",
15026
- },
15027
- "&::part(body)": {
15028
- padding: 0,
15029
- display: "flex",
15030
- width: "100%",
15031
- },
15032
- },
15033
- Drawer: {
15034
- "&::part(base)": {
15035
- minWidth: "400px",
15036
- maxWidth: "700px",
15037
- width: "50%",
15038
- margin: "0 auto",
15039
- right: "0",
15040
- },
15041
- "&::part(panel)": {
15042
- height: "85vh",
15043
- width: "100%",
15044
- },
15045
- },
15046
- FullImage: {
15047
- objectFit: "contain",
15048
- maxWidth: "100%",
15049
- height: "100px",
15050
- },
15051
- PreviewImage: {
15052
- objectFit: "contain",
15053
- width: "120px",
15054
- height: "120px",
15055
- flex: 0.33,
15056
- },
15057
- InputBox: {
15058
- width: "100%",
15059
- marginBottom: "20px",
15060
- },
15061
- Select: {
15062
- "&::part(base)": {
15063
- flex: "0.75",
15064
- },
15065
- "&::part(menu)": {
15066
- maxHeight: "40vh",
15067
- },
15068
- },
15069
- Buttons: {
15070
- marginLeft: "auto",
15071
- width: "100%",
15072
- maxWidth: "300px",
15073
- },
15074
- Button: {
15075
- margin: "10px 0",
15076
- display: "block",
15077
- textAlign: "center",
15078
- cursor: "pointer",
15079
- },
15080
- };
15081
- // JSS config
15082
- jss.setup(create());
15083
- const sheet = jss.createStyleSheet(style);
15084
- const styleString = sheet.toString();
15085
- const { states, data, callbacks, refs } = props;
15086
- const { selectedItem, selectedStep } = states;
15087
- function getInput() {
15088
- var _a, _b;
15089
- const item = states.selectedItem;
15090
- if (!item || (item === null || item === void 0 ? void 0 : item.ruleType) === "FIXED_GLOBAL_REWARD")
15091
- return h("span", null);
15092
- if (!((_a = item.steps) === null || _a === void 0 ? void 0 : _a.length)) {
15093
- return h("p", null,
15094
- "Not enough ",
15095
- item.sourceUnit,
15096
- " to redeem for this reward.");
15097
- }
15098
- return (h("sl-select", { style: { width: "auto" }, label: "Select amount to receive", class: sheet.classes.Select, value: states.selectedStep, "onSl-select": (e) => {
15099
- var _a, _b, _c, _d, _e;
15100
- return callbacks.setExchangeState({
15101
- amount: (_c = (_b = (_a = e.detail) === null || _a === void 0 ? void 0 : _a.item) === null || _b === void 0 ? void 0 : _b.value) === null || _c === void 0 ? void 0 : _c.sourceValue,
15102
- selectedStep: (_e = (_d = e.detail) === null || _d === void 0 ? void 0 : _d.item) === null || _e === void 0 ? void 0 : _e.value,
15103
- });
15104
- } }, (_b = item.steps) === null || _b === void 0 ? void 0 : _b.map((step) => (h("sl-menu-item", { value: step, disabled: !step.available },
15105
- step.prettyDestinationValue,
15106
- h("div", { slot: "suffix", style: { fontSize: "75%", float: "right" } },
15107
- step.prettySourceValue,
15108
- step.unavailableReasonCode && (h("p", { style: { fontSize: "70%", color: "#F2994A" } }, step.unavailableReasonCode))))))));
15109
- }
15110
- function chooseReward() {
15111
- var _a;
15112
- const nextStage = (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.ruleType) === "FIXED_GLOBAL_REWARD"
15113
- ? "confirmation"
15114
- : "chooseAmount";
15115
- console.log({ nextStage, ruleType: selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.ruleType });
15116
- return [
15117
- h("div", { style: {
15118
- display: "grid",
15119
- justifyContent: "center",
15120
- gap: "20px",
15121
- gridTemplateColumns: "repeat(auto-fill, minmax(220px, 1fr))",
15122
- } }, (_a = data.exchangeList) === null || _a === void 0 ? void 0 : _a.map((item) => {
15123
- const style = {
15124
- boxShadow: item.key === (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.key) ? "0 1px 8px #87ceeb" : "none",
15125
- marginBottom: "10px 0",
15126
- flex: "1",
15127
- minWidth: "100%",
15128
- color: !item.available && "#eee",
15129
- };
15130
- const amount = item.ruleType === "FIXED_GLOBAL_REWARD"
15131
- ? item.prettySourceValue
15132
- : `${item.sourceMinValue} to ${item.sourceMaxValue} ${item.sourceUnit}`;
15133
- return (h("div", { key: item.key, class: item.available ? sheet.classes.CardContainer : "", style: style },
15134
- h("sl-card", { class: sheet.classes.Base, onClick: () => item.available &&
15135
- callbacks.setExchangeState({ selectedItem: item }) },
15136
- (item === null || item === void 0 ? void 0 : item.imageUrl) && (h("img", { class: sheet.classes.PreviewImage, src: (item === null || item === void 0 ? void 0 : item.imageUrl) || getAssetPath("./assets/Reward-icon.png") })),
15137
- h("p", { style: { margin: "0", flex: "1", fontSize: "90%" } },
15138
- h("b", null, item.description),
15139
- h("p", { style: { margin: "0" } }, amount),
15140
- item.unavailableReasonCode && (h("p", { style: {
15141
- fontSize: "70%",
15142
- color: "#F2994A",
15143
- marginTop: "0",
15144
- } }, item.unavailableReasonCode))))));
15145
- })),
15146
- h("div", { class: sheet.classes.Buttons },
15147
- h("sl-button", { onClick: () => callbacks.setStage(nextStage), style: { display: "block" }, class: sheet.classes.Button, disabled: !states.selectedItem }, "Continue"),
15148
- h("a", { onClick: () => { var _a; return (_a = refs.drawerRef.current) === null || _a === void 0 ? void 0 : _a.hide(); }, style: { display: "block" }, class: sheet.classes.Button }, "Cancel")),
15149
- ];
15150
- }
15151
- function chooseAmount() {
15152
- const input = getInput();
15153
- return (h("div", null,
15154
- h("div", { style: { width: "50%", margin: "0 auto" } }, (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.imageUrl) && (h("img", { class: sheet.classes.FullImage, src: selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.imageUrl }))),
15155
- h("p", null, selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.description),
15156
- h("div", { class: sheet.classes.InputBox }, input),
15157
- h("div", { class: sheet.classes.Buttons },
15158
- h("sl-button", { onClick: () => callbacks.setStage("confirmation"), disabled: input && !states.amount, style: { display: "block" }, class: sheet.classes.Button }, "Continue"),
15159
- h("a", { onClick: () => callbacks.setStage("chooseReward"), style: { display: "block" }, class: sheet.classes.Button }, "Back"))));
15160
- }
15161
- console.log({ selectedItem, selectedStep });
15162
- function confirmation() {
15163
- const previousStage = (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.ruleType) === "FIXED_GLOBAL_REWARD"
15164
- ? "chooseReward"
15165
- : "chooseAmount";
15166
- return (h("div", null,
15167
- h("h2", null, "Confirm and redeem"),
15168
- h("div", { style: { textAlign: "center" } },
15169
- h("p", null,
15170
- h("b", null, selectedStep === null || selectedStep === void 0 ? void 0 : selectedStep.prettySourceValue)),
15171
- h("p", null,
15172
- h(ExchangeArrows, null)),
15173
- h("div", { class: sheet.classes.CardContainer, style: {
15174
- boxShadow: "none",
15175
- marginBottom: "10px",
15176
- flex: "1",
15177
- minWidth: "100%",
15178
- } },
15179
- h("sl-card", { class: sheet.classes.Base },
15180
- h("img", { class: sheet.classes.PreviewImage, src: (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.imageUrl) ||
15181
- getAssetPath("./assets/Reward-icon.png") }),
15182
- h("p", { style: { marginBottom: "0", flex: "1" } }, selectedStep === null || selectedStep === void 0 ? void 0 : selectedStep.prettyDestinationValue)))),
15183
- h("div", { class: sheet.classes.Buttons },
15184
- h("sl-button", { onClick: callbacks.exchangeReward, style: { display: "block" }, class: sheet.classes.Button }, "Redeem"),
15185
- h("a", { onClick: () => callbacks.setStage(previousStage), style: { display: "block" }, class: sheet.classes.Button }, "Back"))));
15186
- }
15187
- function success() {
15188
- return (h("div", { style: { textAlign: "center" } },
15189
- h("img", { class: sheet.classes.FullImage, src: getAssetPath("./assets/Reward-icon.png") }),
15190
- h("p", { style: { color: "forestgreen" } }, "Reward Redeemed"),
15191
- (data === null || data === void 0 ? void 0 : data.fuelTankCode) && h("pre", null, data === null || data === void 0 ? void 0 : data.fuelTankCode),
15192
- h("sl-button", { onClick: () => { var _a, _b; return (_b = (_a = refs.drawerRef) === null || _a === void 0 ? void 0 : _a.current) === null || _b === void 0 ? void 0 : _b.hide(); } }, "Done")));
15193
- }
15194
- const stages = {
15195
- chooseReward: () => chooseReward(),
15196
- chooseAmount: () => chooseAmount(),
15197
- confirmation: () => confirmation(),
15198
- success: () => success(),
15199
- };
15200
- const currentStage = stages[states.redeemStage];
15201
- function stageMap() {
15202
- const stageNumber = stageList.indexOf(states.redeemStage);
15203
- return (h("div", { style: { fontSize: "80%", marginBottom: "20px" } },
15204
- h("div", { style: {
15205
- marginTop: "5px",
15206
- display: "flex",
15207
- justifyContent: "center",
15208
- textAlign: "center",
15209
- whiteSpace: "nowrap",
15210
- marginBottom: "6px",
15211
- } }, Object.keys(stageProgressList).map((stage) => {
15212
- if (stage === states.redeemStage)
15213
- return (h("b", { style: { flex: "1 1 0" } },
15214
- " ",
15215
- stageProgressList[stage]));
15216
- return h("i", { style: { flex: "1 1 0" } }, stageProgressList[stage]);
15217
- })),
15218
- h(ProgressBar, { stageCount: 3, currentStage: stageNumber })));
15219
- }
15220
- const BackButton = () => {
15221
- if (states.redeemStage === "success")
15222
- return "";
15223
- let previousStage = "";
15224
- if (states.redeemStage === "confirmation") {
15225
- previousStage =
15226
- (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.ruleType) === "FIXED_GLOBAL_REWARD"
15227
- ? "chooseReward"
15228
- : "chooseAmount";
15229
- }
15230
- else if (states.redeemStage === "chooseAmount") {
15231
- previousStage = "chooseReward";
15232
- }
15233
- return (h("div", { slot: "label" },
15234
- h("a", { style: { cursor: "pointer", fontSize: "80%", color: "#858585" }, onClick: () => callbacks.setStage(previousStage) },
15235
- h(LeftArrow, null),
15236
- " Back")));
15237
- };
15238
- return (h("div", { class: sheet.classes.Container },
15239
- h("style", { type: "text/css" }, styleString),
15240
- h("div", null,
15241
- h("sl-drawer", { ref: (ref) => (refs.drawerRef.current = ref), placement: "right", class: sheet.classes.Drawer, open: stageList.indexOf(states.redeemStage) >= 0 },
15242
- h(BackButton, null),
15243
- stageMap(),
15244
- currentStage && currentStage(),
15245
- states.exchangeError &&
15246
- "Something went wrong. Please contact support or try again."),
15247
- h("sl-button", { loading: states.loading, onClick: () => callbacks.openDrawer() }, "Redeem Rewards"))));
15248
- }
15249
-
15250
- const SqmRewardExchangeList = class {
15251
- constructor(hostRef) {
15252
- registerInstance(this, hostRef);
15253
- this.ignored = true;
15254
- /**
15255
- * @uiName Exchange button text
15256
- */
15257
- this.buttonText = "Exchange Rewards";
15258
- h$1(this);
15259
- }
15260
- disconnectedCallback() { }
15261
- render() {
15262
- // const missingProps = getMissingProps([
15263
- // {
15264
- // attribute: "listType",
15265
- // value: this.listType,
15266
- // },
15267
- // ]);
15268
- // if (missingProps) {
15269
- // return <RequiredPropsError missingProps={missingProps} />;
15270
- // }
15271
- const { states, data, callbacks, refs } = j$1()
15272
- ? useRewardExchangeListDemo(getProps(this))
15273
- : useRewardExchangeList(getProps(this));
15274
- return (h(Host, { style: { display: "contents" } }, h(RewardExchangeView, { states: states, data: data, callbacks: callbacks, refs: refs })));
15275
- }
15276
- static get assetsDirs() { return ["assets"]; }
15277
- };
15278
- function useRewardExchangeListDemo(props) {
15279
- return cjs({
15280
- states: {
15281
- content: {
15282
- text: props,
15283
- },
15284
- redeemStage: "",
15285
- amount: 0,
15286
- selectedStep: undefined,
15287
- exchangeError: false,
15288
- loading: false,
15289
- },
15290
- data: {
15291
- shareCode: "SHARECODE123",
15292
- },
15293
- callbacks: {
15294
- exchangeReward: () => { },
15295
- openDrawer: () => { },
15296
- setExchangeState: (_) => { },
15297
- setStage: (_) => { },
15298
- },
15299
- refs: {
15300
- drawerRef: {},
15301
- },
15302
- }, props.demoData || {}, { arrayMerge: (_, a) => a });
15303
- }
15304
-
15305
14769
  const debug$1 = browser("sq:useRouter");
15306
14770
  function matchPath(pattern, page) {
15307
14771
  if (!pattern)
@@ -17044,7 +16508,7 @@ var _createEmotion = createEmotion({
17044
16508
  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}}
17045
16509
 
17046
16510
  const ShareButton_stories = {
17047
- title: "Components/Share Button",
16511
+ title: "Share Button",
17048
16512
  };
17049
16513
  const WithIcon = () => {
17050
16514
  const props = { medium: "facebook", iconslot: "suffix" };
@@ -17100,7 +16564,7 @@ const ShareButton$1 = /*#__PURE__*/Object.freeze({
17100
16564
  });
17101
16565
 
17102
16566
  const ShareLink_stories = {
17103
- title: "Components/Share Link",
16567
+ title: "Share Link",
17104
16568
  };
17105
16569
  const Default = () => {
17106
16570
  const props = {
@@ -17141,15 +16605,14 @@ const ShareLink$1 = /*#__PURE__*/Object.freeze({
17141
16605
  });
17142
16606
 
17143
16607
  const BigStat_stories = {
17144
- title: "Components/Big Stat",
16608
+ title: "Big Stat",
17145
16609
  };
17146
16610
  const Default$1 = () => {
17147
- const props = { value: 990000, statvalue: "9.900,00" };
16611
+ const props = { statvalue: "9.900,00" };
17148
16612
  return h(BigStatView, Object.assign({}, props), "Big stat");
17149
16613
  };
17150
16614
  const LeftAlign = () => {
17151
16615
  const props = {
17152
- value: 500,
17153
16616
  statvalue: "500",
17154
16617
  alignment: "left",
17155
16618
  };
@@ -17157,7 +16620,6 @@ const LeftAlign = () => {
17157
16620
  };
17158
16621
  const RightAlign = () => {
17159
16622
  const props = {
17160
- value: 500,
17161
16623
  statvalue: "500",
17162
16624
  alignment: "right",
17163
16625
  };
@@ -17165,7 +16627,6 @@ const RightAlign = () => {
17165
16627
  };
17166
16628
  const FlexReverse = () => {
17167
16629
  const props = {
17168
- value: 500,
17169
16630
  statvalue: "500",
17170
16631
  flexReverse: true,
17171
16632
  };
@@ -17173,7 +16634,6 @@ const FlexReverse = () => {
17173
16634
  };
17174
16635
  const FlexReverseRight = () => {
17175
16636
  const props = {
17176
- value: 500,
17177
16637
  statvalue: "500",
17178
16638
  flexReverse: true,
17179
16639
  alignment: "right",
@@ -17182,7 +16642,6 @@ const FlexReverseRight = () => {
17182
16642
  };
17183
16643
  const FlexReverseLeft = () => {
17184
16644
  const props = {
17185
- value: 500,
17186
16645
  statvalue: "500",
17187
16646
  flexReverse: true,
17188
16647
  alignment: "left",
@@ -17191,14 +16650,12 @@ const FlexReverseLeft = () => {
17191
16650
  };
17192
16651
  const NoStatValue = () => {
17193
16652
  const props = {
17194
- value: 0,
17195
16653
  statvalue: "...",
17196
16654
  };
17197
16655
  return h(BigStatView, Object.assign({}, props), "Big stat");
17198
16656
  };
17199
16657
  const InvalidStatValue = () => {
17200
16658
  const props = {
17201
- value: 0,
17202
16659
  statvalue: "!!!",
17203
16660
  };
17204
16661
  return h(BigStatView, Object.assign({}, props), "Big stat");
@@ -17218,7 +16675,7 @@ const BigStat = /*#__PURE__*/Object.freeze({
17218
16675
  });
17219
16676
 
17220
16677
  const Leaderboard_stories = {
17221
- title: "Components/Leaderboard",
16678
+ title: "Leaderboard",
17222
16679
  parameters: {
17223
16680
  tagname: "sqm-leaderboard",
17224
16681
  },
@@ -17495,7 +16952,7 @@ const Router = /*#__PURE__*/Object.freeze({
17495
16952
  });
17496
16953
 
17497
16954
  const LeaderboardRank_stories = {
17498
- title: "Components/Leaderboard Rank",
16955
+ title: "Leaderboard Rank",
17499
16956
  };
17500
16957
  const First = () => {
17501
16958
  const props = { data: { rank: "1st" } };
@@ -17542,7 +16999,7 @@ function setupLoggedOut() {
17542
16999
  };
17543
17000
  }
17544
17001
  const PortalFrame_stories = {
17545
- title: "Components/Portal Frame",
17002
+ title: "Portal Frame",
17546
17003
  };
17547
17004
  const defaultProps = {
17548
17005
  data: {
@@ -17637,7 +17094,7 @@ const PortalFrame$1 = /*#__PURE__*/Object.freeze({
17637
17094
  });
17638
17095
 
17639
17096
  const EditProfileForm_stories = {
17640
- title: "Components/Edit Profile Form",
17097
+ title: "Edit Profile Form",
17641
17098
  };
17642
17099
  const defaultProps$1 = {
17643
17100
  states: {
@@ -18084,7 +17541,7 @@ const UseLeaderboard = /*#__PURE__*/Object.freeze({
18084
17541
  });
18085
17542
 
18086
17543
  const FormMessage_stories = {
18087
- title: "Components/Form Message",
17544
+ title: "Form Message",
18088
17545
  };
18089
17546
  const SuccessAlert = () => {
18090
17547
  return (h("sqm-form-message", { type: "success" },
@@ -18120,211 +17577,31 @@ const FormMessage$1 = /*#__PURE__*/Object.freeze({
18120
17577
  FullStackSuccess: FullStackSuccess
18121
17578
  });
18122
17579
 
18123
- const EXCHANGE$1 = dist.gql `
18124
- mutation exchange($exchangeRewardInput: ExchangeRewardInput!) {
18125
- exchangeReward(exchangeRewardInput: $exchangeRewardInput) {
18126
- reward {
18127
- id
18128
- }
18129
- }
18130
- }
18131
- `;
18132
- const UseRewardExchangeList_stories = {
18133
- title: "Hooks / useRewardExchange",
17580
+ const NewPortal_stories = {
17581
+ title: "New Portal",
18134
17582
  };
18135
- function setupGraphQL$6() {
18136
- const id = "testestest";
18137
- const accountId = id;
18138
- const programId = "sam-partner-test-2";
18139
- //@ts-ignore
18140
- window.widgetIdent = {
18141
- tenantAlias: "test_a8b41jotf8a1v",
18142
- appDomain: "https://staging.referralsaasquatch.com",
18143
- programId,
18144
- };
18145
- useEffect(() => {
18146
- L$1({
18147
- accountId,
18148
- id,
18149
- jwt: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImFjY291bnRJZCI6InRlc3Rlc3Rlc3QiLCJpZCI6InRlc3Rlc3Rlc3QifX0.qYnU5hNeIj9C_G3NogfG7btgCPGZC7JRXY0MG6a63zs",
18150
- });
18151
- return () => {
18152
- window.widgetIdent = undefined;
18153
- L$1(undefined);
18154
- };
18155
- }, []);
18156
- return { id, accountId };
18157
- }
18158
- function useExchangeButton() {
18159
- const { id, accountId } = setupGraphQL$6();
18160
- const [points, setPoints] = useState(10);
18161
- const [rate, setRate] = useState(100);
18162
- const [exchange, { data, errors }] = Ne(EXCHANGE$1);
18163
- return {
18164
- states: {
18165
- points,
18166
- rate,
18167
- },
18168
- data: {
18169
- id,
18170
- accountId,
18171
- data,
18172
- errors,
18173
- },
18174
- callbacks: {
18175
- exchange,
18176
- setPoints,
18177
- setRate,
18178
- },
18179
- };
18180
- }
18181
- const DefaultView = (props) => {
18182
- const { states, data, callbacks } = props;
18183
- return (h("div", null,
18184
- h("div", null,
18185
- h("label", null, "Rate:"),
18186
- h("input", { value: states.rate, onInput: (e) =>
18187
- // @ts-ignore
18188
- callbacks.setRate(e.target.value) })),
18189
- h("input", { value: states.points, onInput: (e) =>
18190
- // @ts-ignore
18191
- callbacks.setPoints(e.target.value) }),
18192
- h("button", { onClick: () => callbacks.exchange(props.input) }, "Exchange"),
18193
- h("details", null,
18194
- h("summary", null, "response"),
18195
- h("h4", null, "data"),
18196
- h("div", { style: { maxWidth: "500px" } },
18197
- h("pre", { style: { width: "500px", whiteSpace: "pre-wrap" } }, JSON.stringify(data.data))),
18198
- h("h4", null, "errors"),
18199
- h("div", { style: { maxWidth: "500px" } },
18200
- h("pre", { style: { maxWidth: "500px", whiteSpace: "pre-wrap" } }, JSON.stringify(data.errors))))));
17583
+ const style$8 = {
17584
+ HeaderSubtitleBold: {
17585
+ "font-weight": 500,
17586
+ "text-decoration": "underline",
17587
+ },
18201
17588
  };
18202
- const RewardList = createHookStory(() => {
18203
- setupGraphQL$6();
18204
- return (h("sqm-reward-exchange-list", { "list-type": "something" }));
18205
- });
18206
- const FixedGlobalReward = createHookStory(() => {
18207
- const { states, data, callbacks } = useExchangeButton();
18208
- return (h(DefaultView, { states: states, data: data, callbacks: callbacks, input: {
18209
- exchangeRewardInput: {
18210
- userId: data.id,
18211
- accountId: data.accountId,
18212
- redeemCreditInput: {
18213
- amount: states.points,
18214
- unit: "POINT",
18215
- },
18216
- globalRewardKey: "gc1",
18217
- },
18218
- } }));
18219
- });
18220
- const VariableGlobalReward = createHookStory(() => {
18221
- const { states, data, callbacks } = useExchangeButton();
18222
- return (h(DefaultView, { states: states, data: data, callbacks: callbacks, input: {
18223
- exchangeRewardInput: {
18224
- userId: data.id,
18225
- accountId: data.accountId,
18226
- redeemCreditInput: {
18227
- amount: states.points,
18228
- unit: "POINT",
18229
- },
18230
- globalRewardKey: "gc1",
18231
- rewardInput: {
18232
- valueInCents: Math.ceil(states.points * states.rate),
18233
- },
17589
+ jss.setup(create());
17590
+ const sheet$8 = jss.createStyleSheet(style$8);
17591
+ const styleString$8 = sheet$8.toString();
17592
+ const barProps = {
17593
+ data: {
17594
+ programs: [
17595
+ {
17596
+ key: "program1",
17597
+ label: "My Referral Program",
18234
17598
  },
18235
- } }));
18236
- });
18237
- const VariableCreditReward = createHookStory(() => {
18238
- const { states, data, callbacks } = useExchangeButton();
18239
- return (h(DefaultView, { states: states, data: data, callbacks: callbacks, input: {
18240
- exchangeRewardInput: {
18241
- userId: data.id,
18242
- accountId: data.accountId,
18243
- redeemCreditInput: {
18244
- amount: states.points,
18245
- unit: "POINT",
18246
- },
18247
- rewardInput: {
18248
- type: "CREDIT",
18249
- unit: "foo",
18250
- assignedCredit: Math.ceil(states.points * states.rate),
18251
- },
17599
+ {
17600
+ key: "program2",
17601
+ label: "My Rewards Program",
18252
17602
  },
18253
- } }));
18254
- });
18255
-
18256
- const UseRewardExchangeList = /*#__PURE__*/Object.freeze({
18257
- __proto__: null,
18258
- 'default': UseRewardExchangeList_stories,
18259
- RewardList: RewardList,
18260
- FixedGlobalReward: FixedGlobalReward,
18261
- VariableGlobalReward: VariableGlobalReward,
18262
- VariableCreditReward: VariableCreditReward
18263
- });
18264
-
18265
- const JWT = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImlkIjoic2FtK2tsaXBAc2Fhc3F1YXQuY2giLCJhY2NvdW50SWQiOiJzYW0ra2xpcEBzYWFzcXVhdC5jaCJ9fQ.FMNZ6oajyr6SiCcRqKKdyPqvNTvWROQ60MKAyfvWGfc";
18266
- const UseTaskCard_stories = {
18267
- title: "Hooks / useTaskCard",
18268
- };
18269
- function setupGraphQL$7() {
18270
- const id = "sam+klip@saasquat.ch";
18271
- const accountId = id;
18272
- const programId = "klip-referral-program";
18273
- //@ts-ignore
18274
- window.widgetIdent = {
18275
- tenantAlias: "test_a74miwdpofztj",
18276
- appDomain: "https://staging.referralsaasquatch.com",
18277
- programId,
18278
- };
18279
- useEffect(() => {
18280
- L$1({
18281
- accountId,
18282
- id,
18283
- jwt: JWT,
18284
- });
18285
- return () => {
18286
- window.widgetIdent = undefined;
18287
- L$1(undefined);
18288
- };
18289
- }, []);
18290
- return { id, accountId };
18291
- }
18292
- const TaskCard = createHookStory(() => {
18293
- setupGraphQL$7();
18294
- return (h("sqm-task-card", { "card-title": "Comment on 5 articles", "button-text": "Start reading", goal: 5, steps: true, "show-progress-bar": true }));
18295
- });
18296
-
18297
- const UseTaskCard = /*#__PURE__*/Object.freeze({
18298
- __proto__: null,
18299
- 'default': UseTaskCard_stories,
18300
- TaskCard: TaskCard
18301
- });
18302
-
18303
- const NewPortal_stories = {
18304
- title: "New Portal",
18305
- };
18306
- const style$8 = {
18307
- HeaderSubtitleBold: {
18308
- "font-weight": 500,
18309
- "text-decoration": "underline",
18310
- },
18311
- };
18312
- jss.setup(create());
18313
- const sheet$8 = jss.createStyleSheet(style$8);
18314
- const styleString$8 = sheet$8.toString();
18315
- const barProps = {
18316
- data: {
18317
- programs: [
18318
- {
18319
- key: "program1",
18320
- label: "My Referral Program",
18321
- },
18322
- {
18323
- key: "program2",
18324
- label: "My Rewards Program",
18325
- },
18326
- ],
18327
- },
17603
+ ],
17604
+ },
18328
17605
  };
18329
17606
  const item1Props = {
18330
17607
  states: {
@@ -18419,10 +17696,10 @@ const Dashboard = () => {
18419
17696
  h("h1", null, "John Smith"))),
18420
17697
  })),
18421
17698
  h(StatContainerView, Object.assign({}, { space: "64px" }),
18422
- h(BigStatView, Object.assign({}, { statvalue: "2,345", value: 234500 }), "Clicks"),
18423
- h(BigStatView, Object.assign({}, { statvalue: "58", value: 58 }), "Referrals"),
18424
- h(BigStatView, Object.assign({}, { statvalue: "$10,540", value: 1054000 }), "Earned"),
18425
- h(BigStatView, Object.assign({}, { statvalue: "$2,305", value: 230500 }), "Awaiting Payout"))),
17699
+ h(BigStatView, Object.assign({}, { statvalue: "2,345" }), "Clicks"),
17700
+ h(BigStatView, Object.assign({}, { statvalue: "58" }), "Referrals"),
17701
+ h(BigStatView, Object.assign({}, { statvalue: "$10,540" }), "Earned"),
17702
+ h(BigStatView, Object.assign({}, { statvalue: "$2,305" }), "Awaiting Payout"))),
18426
17703
  h(PortalContainerView, Object.assign({}, { direction: "column", padding: "xxx-large", gap: "xxx-large" }),
18427
17704
  h(PortalSectionView, Object.assign({}, {
18428
17705
  labelMargin: "x-large",
@@ -18546,10 +17823,10 @@ const Commissions = () => {
18546
17823
  "program"))),
18547
17824
  })),
18548
17825
  h(StatContainerView, Object.assign({}, { space: "64px" }),
18549
- h(BigStatView, Object.assign({}, { statvalue: "$ 1,000", value: 100000 }), "Total Earned"),
18550
- h(BigStatView, Object.assign({}, { statvalue: "$ 800", value: 80000 }), "Available"),
18551
- h(BigStatView, Object.assign({}, { statvalue: "$ 180", value: 18000 }), "Pending"),
18552
- h(BigStatView, Object.assign({}, { statvalue: "$ 20", value: 2000 }), "Redeemed"))))));
17826
+ h(BigStatView, Object.assign({}, { statvalue: "$ 1,000" }), "Total Earned"),
17827
+ h(BigStatView, Object.assign({}, { statvalue: "$ 800" }), "Available"),
17828
+ h(BigStatView, Object.assign({}, { statvalue: "$ 180" }), "Pending"),
17829
+ h(BigStatView, Object.assign({}, { statvalue: "$ 20" }), "Redeemed"))))));
18553
17830
  };
18554
17831
  const Activity = () => {
18555
17832
  return (h("sqm-divided-layout", { direction: "row" },
@@ -18576,10 +17853,10 @@ const Activity = () => {
18576
17853
  label: (h("sqm-text", null,
18577
17854
  h("h3", null, "Referral Activity"))),
18578
17855
  content: (h(StatContainerView, Object.assign({}, { space: "64px" }),
18579
- h(BigStatView, Object.assign({}, { statvalue: "1,000", value: 100000 }), "Total Referrals"),
18580
- h(BigStatView, Object.assign({}, { statvalue: "800", value: 800 }), "Converted"),
18581
- h(BigStatView, Object.assign({}, { statvalue: "180", value: 180 }), "Pending"),
18582
- h(BigStatView, Object.assign({}, { statvalue: "20", value: 20 }), "Disqualified"))),
17856
+ h(BigStatView, Object.assign({}, { statvalue: "1,000" }), "Total Referrals"),
17857
+ h(BigStatView, Object.assign({}, { statvalue: "800" }), "Converted"),
17858
+ h(BigStatView, Object.assign({}, { statvalue: "180" }), "Pending"),
17859
+ h(BigStatView, Object.assign({}, { statvalue: "20" }), "Disqualified"))),
18583
17860
  }))),
18584
17861
  h(PortalSectionView, Object.assign({}, {
18585
17862
  labelMargin: "x-large",
@@ -18587,9 +17864,9 @@ const Activity = () => {
18587
17864
  label: (h("sqm-text", null,
18588
17865
  h("h3", null, "Traffic Generated"))),
18589
17866
  content: (h(StatContainerView, Object.assign({}, { space: "64px" }),
18590
- h(BigStatView, Object.assign({}, { statvalue: "1,000", value: 1000 }), "Clicks"),
18591
- h(BigStatView, Object.assign({}, { statvalue: "800", value: 800 }), "From share link"),
18592
- h(BigStatView, Object.assign({}, { statvalue: "180", value: 180 }), "From share mediums"))),
17867
+ h(BigStatView, Object.assign({}, { statvalue: "1,000" }), "Clicks"),
17868
+ h(BigStatView, Object.assign({}, { statvalue: "800" }), "From share link"),
17869
+ h(BigStatView, Object.assign({}, { statvalue: "180" }), "From share mediums"))),
18593
17870
  })))));
18594
17871
  };
18595
17872
 
@@ -18603,7 +17880,7 @@ const NewPortal = /*#__PURE__*/Object.freeze({
18603
17880
  });
18604
17881
 
18605
17882
  const SidebarItem_stories = {
18606
- title: "Components/Sidebar Item",
17883
+ title: "Sidebar Item",
18607
17884
  };
18608
17885
  const InactiveItem = () => {
18609
17886
  const props = {
@@ -18640,7 +17917,7 @@ const SidebarItem = /*#__PURE__*/Object.freeze({
18640
17917
  });
18641
17918
 
18642
17919
  const NavigationSidebar_stories = {
18643
- title: "Components/Navigation Sidebar",
17920
+ title: "Navigation Sidebar",
18644
17921
  };
18645
17922
  const DefaultNavigationSidebar = () => {
18646
17923
  const barProps = {
@@ -18689,12 +17966,14 @@ const NavigationSidebar = /*#__PURE__*/Object.freeze({
18689
17966
  });
18690
17967
 
18691
17968
  const PortalLogin_stories = {
18692
- title: "Components/Portal Login",
17969
+ title: "Portal Login",
18693
17970
  };
18694
17971
  const defaultProps$2 = {
18695
17972
  states: {
18696
17973
  error: "",
18697
17974
  loading: false,
17975
+ forgotPasswordPath: "/forgotPassword",
17976
+ registerPath: "/register",
18698
17977
  },
18699
17978
  callbacks: {
18700
17979
  submit: async (e) => await e,
@@ -18705,6 +17984,8 @@ const errorProps = {
18705
17984
  states: {
18706
17985
  error: "Something went wrong. Please try again.",
18707
17986
  loading: false,
17987
+ forgotPasswordPath: "/forgotPassword",
17988
+ registerPath: "/register",
18708
17989
  },
18709
17990
  callbacks: {
18710
17991
  submit: async (e) => await e,
@@ -18715,6 +17996,8 @@ const loadingProps = {
18715
17996
  states: {
18716
17997
  error: "",
18717
17998
  loading: true,
17999
+ forgotPasswordPath: "/forgotPassword",
18000
+ registerPath: "/register",
18718
18001
  },
18719
18002
  callbacks: {
18720
18003
  submit: async (e) => await e,
@@ -18734,7 +18017,7 @@ const PortalLogin$1 = /*#__PURE__*/Object.freeze({
18734
18017
  });
18735
18018
 
18736
18019
  const PortalRegister_stories = {
18737
- title: "Components/Portal Register",
18020
+ title: "Portal Register",
18738
18021
  };
18739
18022
  const defaultProps$3 = {
18740
18023
  states: {
@@ -18742,6 +18025,7 @@ const defaultProps$3 = {
18742
18025
  loading: false,
18743
18026
  confirmPassword: true,
18744
18027
  hideInputs: false,
18028
+ loginPath: "/login"
18745
18029
  },
18746
18030
  callbacks: {
18747
18031
  submit: () => console.log("Submit!"),
@@ -18758,6 +18042,7 @@ const errorProps$1 = {
18758
18042
  loading: false,
18759
18043
  confirmPassword: true,
18760
18044
  hideInputs: false,
18045
+ loginPath: "/login"
18761
18046
  },
18762
18047
  callbacks: {
18763
18048
  submit: () => console.log("Submit!"),
@@ -18777,6 +18062,7 @@ const loadingProps$1 = {
18777
18062
  loading: true,
18778
18063
  confirmPassword: true,
18779
18064
  hideInputs: false,
18065
+ loginPath: "/login"
18780
18066
  },
18781
18067
  callbacks: {
18782
18068
  submit: () => console.log("Submit!"),
@@ -18793,6 +18079,7 @@ const slottedProps = {
18793
18079
  loading: false,
18794
18080
  confirmPassword: true,
18795
18081
  hideInputs: false,
18082
+ loginPath: "/login"
18796
18083
  },
18797
18084
  callbacks: {
18798
18085
  submit: () => console.log("Submit!"),
@@ -18819,6 +18106,7 @@ const FieldsHidden = () => {
18819
18106
  loading: true,
18820
18107
  confirmPassword: true,
18821
18108
  hideInputs: true,
18109
+ loginPath: "/login"
18822
18110
  },
18823
18111
  } }));
18824
18112
  };
@@ -18837,7 +18125,7 @@ const PortalRegister$1 = /*#__PURE__*/Object.freeze({
18837
18125
  const scenario = "@author:\r\n@owner:ian\r\nFeature: Forgot Password\r\n\r\n @motivating\r\n Scenario: Users can request to reset their password\r\n Given a user enters their email address\r\n And that email address is linked to a previously created account\r\n When they click \"Reset Password\"\r\n Then the button enters a loading state\r\n When the password reset email is sent\r\n Then a confirmation banner is shown stating a password reset email was sent\r\n\r\n @motivating\r\n Scenario: Users are notified if sending their password reset email fails\r\n Given a user enters their email address\r\n And that email address is linked to a previously created account\r\n When they click \"Reset Password\"\r\n Then the button enters a loading state\r\n When the password reset email fails to send\r\n Then the user will not receive a password reset email\r\n And an error banner is shown stating that they should try again\r\n\r\n @motivating\r\n @landmine\r\n Scenario: If the input email is not associated to an account a success banner will be shown but an email will not be sent\r\n Given the user entered an email address that is not associated to an accoun\r\n When they click \"Reset Password\"\r\n Then the button enters a loading state\r\n But no email will be sent\r\n And a success banner is shown stating a password reset email was sent if the given email was associated to an account\r\n\r\n @motivating\r\n Scenario: Users can resend password reset email\r\n Given a user had previously requested to reset their password\r\n When they enter their email address\r\n And that email address is linked to a previously created account\r\n And they click \"Reset Password\"\r\n Then the user will receive a second password reset email\r\n And a success banner is shown stating that their email was sent\r\n";
18838
18126
 
18839
18127
  const PortalForgotPassword_stories = {
18840
- title: "Components/Portal Forgot Password",
18128
+ title: "Portal Forgot Password",
18841
18129
  parameters: {
18842
18130
  scenario,
18843
18131
  },
@@ -18847,6 +18135,7 @@ const defaultProps$4 = {
18847
18135
  error: "",
18848
18136
  loading: false,
18849
18137
  success: false,
18138
+ loginPath: "/login",
18850
18139
  },
18851
18140
  callbacks: {
18852
18141
  submit: async (e) => await e,
@@ -18861,6 +18150,7 @@ const errorProps$2 = {
18861
18150
  error: "Something went wrong. Please try again.",
18862
18151
  loading: false,
18863
18152
  success: false,
18153
+ loginPath: "/login",
18864
18154
  },
18865
18155
  callbacks: {
18866
18156
  submit: async (e) => await e,
@@ -18875,6 +18165,7 @@ const loadingProps$2 = {
18875
18165
  error: "",
18876
18166
  loading: true,
18877
18167
  success: false,
18168
+ loginPath: "/login",
18878
18169
  },
18879
18170
  callbacks: {
18880
18171
  submit: async (e) => await e,
@@ -18889,6 +18180,7 @@ const successProps = {
18889
18180
  error: "",
18890
18181
  loading: false,
18891
18182
  success: true,
18183
+ loginPath: "/login",
18892
18184
  },
18893
18185
  callbacks: {
18894
18186
  submit: async (e) => await e,
@@ -18915,7 +18207,7 @@ const PortalForgotPassword = /*#__PURE__*/Object.freeze({
18915
18207
  const scenario$1 = "@author:\r\n@owner: ian\r\nFeature: Email Verification\r\n\r\n @minutae\r\n Scenario: User's redirected from registration can re-send their verification email\r\n Given a user has registered\r\n And they have been sent a verification email\r\n When they are redirected to the email verification page\r\n Then a message will be displayed\r\n And it will reflect that a email has already been sent to their email\r\n But they can still re-send the email\r\n When they click to \"Resend-Email\"\r\n Then the user will receive a verification email\r\n\r\n @motivating\r\n Scenario: Users are notified if sending the email verification message fails\r\n Given a user with an email was stored in session data from registration\r\n When they click to \"Resend-Email\"\r\n Then the button enters a loading state\r\n When an error occurs trying to send the verification email\r\n Then the user will not receive a verification email\r\n And an error banner is shown stating that they should try again\r\n\r\n @motivating\r\n Scenario: Users are notified if sending the email verification message succeeds\r\n Given a user with an email was stored in session data from registration\r\n When they click to \"Resend-Email\"\r\n Then the button enters a loading state\r\n When the email verification message sends\r\n Then the user will receive a verification email\r\n And a success banner is shown stating that their email was resent";
18916
18208
 
18917
18209
  const PortalEmailVerification_stories = {
18918
- title: "Components/Portal Email Verification",
18210
+ title: "Portal Email Verification",
18919
18211
  parameters: {
18920
18212
  scenario: scenario$1,
18921
18213
  },
@@ -19001,7 +18293,7 @@ const PortalEmailVerification = /*#__PURE__*/Object.freeze({
19001
18293
  const scenario$2 = "@author:\r\n@owner:ian\r\nFeature: Reset Password\r\n\r\n\r\n Background: A user in on the password reset page\r\n Given a user who has been redirected to the password reset page\r\n\r\n @motivating\r\n Scenario: Users can reset their password\r\n Given a user has a valid oob code as a url query parameter\r\n When they enter their password twice\r\n And they click \"Update\"\r\n Then their password is updated\r\n And a banner with a success message will be displayed\r\n And they can log in with their new password\r\n\r\n @motivating\r\n Scenario Outline: Users cannot reset their password with an invalid or missing oob code\r\n Given a user has a <oobCode> as a url query parameter\r\n Then they will see an error message saying that their password reset code is invalid or expired\r\n When they click \"Continue\"\r\n Then they will be redirected to \"/\"\r\n Examples:\r\n | oobCode |\r\n | invalid oob code |\r\n | non existant oob code |\r\n\r\n @motivating\r\n Scenario: Users must enter the same password twice to successfully reset their password\r\n Given a user has been redirected to the password reset page\r\n And they have a valid oob code as a url query parameter\r\n When they enter two different passwords into the password reset form\r\n And they click \"Update\"\r\n Then their password is not be reset\r\n And an error banner stating the input passwords must match appears\r\n And their password will not be reset\r\n When they enter the same password twice\r\n And they click \"Update\"\r\n Then a banner appears with a success message\r\n And they can log in with their new password\r\n\r\n @motivating\r\n Scenario: Users are redirected to \"/\" by default\r\n Given the component does not have prop \"nextPage\"\r\n And the users url does not contain a \"nextPage\" query parameter\r\n And a user has entered their password twice\r\n When they click \"Update\"\r\n Then their password is updated\r\n And they are redirected to \"/\"\r\n\r\n @motivating\r\n Scenario: Custom redirection can be configured\r\n Given the component has prop \"nextPage\" with value \"/activity\"\r\n And the users url does not contain a \"nextPage\" query parameter\r\n And a user has entered their password twice\r\n When they click \"Update\"\r\n Then their password is updated\r\n And they are redirected to \"/activity\"";
19002
18294
 
19003
18295
  const PortalResetPassword_stories = {
19004
- title: "Components/Portal Reset Password",
18296
+ title: "Portal Reset Password",
19005
18297
  parameters: {
19006
18298
  scenario: scenario$2,
19007
18299
  },
@@ -19165,7 +18457,7 @@ const PortalResetPassword = /*#__PURE__*/Object.freeze({
19165
18457
  const scenario$3 = "@author:\r\n@owner:ian\r\nFeature: Verify Email\r\n\r\n\r\n Background: A user is on the email verification page\r\n Given a user who has been redirected to the email verification page\r\n\r\n @motivating\r\n Scenario: Verifying your email will take you to the portal login page\r\n Given a user has a valid oob code as a url query parameter\r\n When they click \"Verify Email\"\r\n Then the button will enter a loading state\r\n When their email is validated\r\n Then a button that says \"Continue\" will appear\r\n When they click \"Continue\"\r\n Then they will be redirected to login\r\n\r\n @motivating\r\n Scenario: Users will be automatically redirected if they dont click \"Continue\"\r\n Given a user has a valid oob code as a url query parameter\r\n When they click \"Verify Email\"\r\n Then the button will enter a loading state\r\n When their email is validated\r\n Then a button that says \"Continue\" will appear\r\n When they wait 5 seconds\r\n Then they will be redirected to login\r\n\r\n @motivating\r\n Scenario: Users are notified if verifying their email has failed\r\n Given a user has a valid oob code as a url query parameter\r\n When they click \"Verify Email\"\r\n Then the button will enter a loading state\r\n When their email fails to be validated\r\n Then an banner is shown stating that an error occured\r\n\r\n @motivating\r\n Scenario Outline: Users cannot verify their email with an invalid or missing oob code\r\n Given a user has a <oobCode> as a url query parameter\r\n Then they will see an error message saying that their verification code is invalid or expired\r\n When they click \"Continue\"\r\n Then they will be redirected to \"/\"\r\n Examples:\r\n | oobCode |\r\n | invalid oob code |\r\n | non existant oob code |\r\n\r\n @motivating\r\n Scenario: Users are redirected to \"/\" by default\r\n Given the component does not have prop \"nextPage\"\r\n And the users url does not contain a \"nextPage\" query parameter\r\n And a user has verified their email\r\n When they click \"Continue\"\r\n Then they will be redirected to \"/\"\r\n\r\n @motivating\r\n Scenario: Custom redirection can be configured\r\n Given the component has prop \"nextPage\" with value \"/activity\"\r\n And the users url does not contain a \"nextPage\" query parameter\r\n And a user has verified their email\r\n When they click \"Continue\"\r\n Then they will be redirected to \"/activity\"\r\n\r\n @motivating\r\n Scenario Outline: Users will be redirected to the value of the nextPage url parameter if it exists\r\n Given the component <mayHave> prop \"nextPage\" with <nextPageValue>\r\n And the users url contains a \"nextPage\" query paramater with <nextPageParamValue>\r\n And the user has verified their email\r\n When they click \"Continue\"\r\n Then they are redirected to <nextPageParamValue>\r\n Examples:\r\n | mayHave | nextPageValue | nextPageParamValue |\r\n | has | /dashboard | /activity |\r\n | does not have | N/A | /activity |";
19166
18458
 
19167
18459
  const PortalVerifyEmail_stories = {
19168
- title: "Components/Portal Verify Email",
18460
+ title: "Portal Verify Email",
19169
18461
  parameters: {
19170
18462
  scenario: scenario$3,
19171
18463
  },
@@ -19209,7 +18501,7 @@ const PortalVerifyEmail = /*#__PURE__*/Object.freeze({
19209
18501
  });
19210
18502
 
19211
18503
  const AssetCard_stories = {
19212
- title: "Components/Asset Card",
18504
+ title: "Asset Card",
19213
18505
  };
19214
18506
  const Default$7 = () => {
19215
18507
  const props = {
@@ -19245,7 +18537,7 @@ const AssetCard = /*#__PURE__*/Object.freeze({
19245
18537
  });
19246
18538
 
19247
18539
  const DividedLayout_stories = {
19248
- title: "Components/Divided Layout",
18540
+ title: "Divided Layout",
19249
18541
  };
19250
18542
  const barProps$1 = {
19251
18543
  data: {
@@ -19337,7 +18629,7 @@ const DividedLayout$1 = /*#__PURE__*/Object.freeze({
19337
18629
  const scenario$4 = "Feature: Change Password\r\n\r\n @motivating\r\n Scenario: Users can change their password\r\n Given a user has registered for the portal\r\n And they have a password\r\n When they navigate to the edit profile page\r\n And click \"Change your password...\"\r\n Then a popup will appear\r\n When they enter their new password\r\n And confirm it\r\n And click \"Change Password\"\r\n Then they will see a success banner stating that the change was successful\r\n When they logout\r\n And try to login\r\n Then they will not be able to login with their old password\r\n But they will be able to login with their new password\r\n\r\n @motivating\r\n Scenario: Users must confirm their password change\r\n Given a user has registered for the portal\r\n When they navigate to the edit profile page\r\n And click \"Change your password...\"\r\n Then a popup will appear\r\n When they enter their new password\r\n But they enter a different password to confirm\r\n And click \"Change Password\"\r\n Then they will see an error banner stating that the passwords didnt match\r\n When they logout\r\n And try to login\r\n Then they will be able to login with their existing password\r\n\r\n @motivating\r\n Scenario: Users must enter a new password and confirm it to change their password\r\n Given a user has registered for the portal\r\n When they navigate to the edit profile page\r\n And click \"Change your password...\"\r\n Then a popup will appear\r\n When they click \"Change password\"\r\n Then a validation error will appear for the new password field\r\n And their password will not be changed\r\n When they enter a new password\r\n And they click \"Change password\"\r\n Then a validation error will appear for the confirm new password field\r\n And their password will not be changed\r\n\r\n @motivating\r\n Scenario: An error banner will be displayed if the password change fails\r\n Given a user has registered for the portal\r\n When they navigate to the edit profile page\r\n And click \"Change your password...\"\r\n When they enter their new password\r\n And confirm it\r\n And click \"Change Password\"\r\n But the change fails\r\n Then they will see an error banner stating that the change failed\r\n When they logout\r\n And try to login\r\n Then they will be able to login with their existing password";
19338
18630
 
19339
18631
  const ChangePassword_stories = {
19340
- title: "Components/Change Password",
18632
+ title: "Change Password",
19341
18633
  parameters: {
19342
18634
  scenario: scenario$4,
19343
18635
  },
@@ -19493,7 +18785,7 @@ const ChangePassword = /*#__PURE__*/Object.freeze({
19493
18785
  });
19494
18786
 
19495
18787
  const PortalProfile_stories = {
19496
- title: "Components/Portal Profile",
18788
+ title: "Portal Profile",
19497
18789
  };
19498
18790
  // const style = {};
19499
18791
  jss.setup(create());
@@ -19734,7 +19026,7 @@ const PortalProfile = /*#__PURE__*/Object.freeze({
19734
19026
  });
19735
19027
 
19736
19028
  const ReferralTableRewardsCell_stories = {
19737
- title: "Components/Referral Table Rewards Cell",
19029
+ title: "Referral Table Rewards Cell",
19738
19030
  };
19739
19031
  const baseReward = {
19740
19032
  id: "123",
@@ -19966,7 +19258,7 @@ const ReferralTableRewardsCell$1 = /*#__PURE__*/Object.freeze({
19966
19258
  });
19967
19259
 
19968
19260
  const ReferralTable_stories = {
19969
- title: "Components/Referral Table",
19261
+ title: "Referral Table",
19970
19262
  };
19971
19263
  const loadingElement = (h("div", { slot: "loading", style: { display: "contents" } },
19972
19264
  h("sqm-table-row", null,
@@ -20453,7 +19745,7 @@ const ReferralTable$1 = /*#__PURE__*/Object.freeze({
20453
19745
  });
20454
19746
 
20455
19747
  const ReferralTableCell_stories = {
20456
- title: "Components/Referral Table Cell",
19748
+ title: "Referral Table Cell",
20457
19749
  };
20458
19750
  const TableCell = () => {
20459
19751
  return (h("sqm-referral-table-cell", { innerTemplate: "Table Cell Text" }));
@@ -20526,28 +19818,28 @@ const ReferralTableCell$1 = /*#__PURE__*/Object.freeze({
20526
19818
  });
20527
19819
 
20528
19820
  const UserName_stories = {
20529
- title: "Tests/User Name",
19821
+ title: "User Name",
20530
19822
  };
20531
- const DemoData = () => {
19823
+ const FullStack$1 = () => {
20532
19824
  return (h("sqm-user-name", { demoData: {
20533
19825
  loading: false,
20534
19826
  loadingText: "...",
20535
19827
  username: "Test Testerson",
20536
19828
  } }));
20537
19829
  };
20538
- const Username = () => {
19830
+ const FullStackDefault = () => {
20539
19831
  return h("sqm-user-name", null);
20540
19832
  };
20541
19833
 
20542
19834
  const UserName = /*#__PURE__*/Object.freeze({
20543
19835
  __proto__: null,
20544
19836
  'default': UserName_stories,
20545
- DemoData: DemoData,
20546
- Username: Username
19837
+ FullStack: FullStack$1,
19838
+ FullStackDefault: FullStackDefault
20547
19839
  });
20548
19840
 
20549
19841
  const PasswordField_stories = {
20550
- title: "Components/Portal Password Field",
19842
+ title: "Portal Password Field",
20551
19843
  };
20552
19844
  const Start = () => {
20553
19845
  return (h("sqm-password-field", { demoData: {
@@ -20594,953 +19886,6 @@ const PasswordField = /*#__PURE__*/Object.freeze({
20594
19886
  ValidationError: ValidationError
20595
19887
  });
20596
19888
 
20597
- const checkmark_circle = () => {
20598
- return (h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "18", height: "18", viewBox: "0 0 18 18" },
20599
- h("path", { fill: "currentColor", "fill-rule": "evenodd", d: "M1.636 9a7.364 7.364 0 1114.728 0A7.364 7.364 0 011.636 9zM9 0a9 9 0 100 18A9 9 0 009 0zm5.192 6.266a.982.982 0 00-1.548-1.208l-4.787 6.137-2.58-2.58a.982.982 0 00-1.39 1.388l3.367 3.366a.982.982 0 001.468-.09l5.47-7.013z", "clip-rule": "evenodd" })));
20600
- };
20601
- const arrow_left_right = () => {
20602
- return (h("svg", { width: 11, height: 12, fill: "none", xmlns: "http://www.w3.org/2000/svg" },
20603
- h("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M10.265 2.789a.346.346 0 000-.489L8.066.101a.346.346 0 10-.489.489l1.61 1.609H2.073a.691.691 0 00-.69.691v1.728a.346.346 0 00.69 0V2.89h7.114L7.577 4.5a.346.346 0 10.49.488l2.198-2.2zM.101 9.21a.346.346 0 000 .489l2.2 2.199a.346.346 0 00.488-.489l-1.61-1.609h7.114c.382 0 .691-.31.691-.691V7.382a.346.346 0 00-.691 0V9.11H1.18L2.789 7.5a.346.346 0 10-.489-.488l-2.199 2.2z", fill: "currentColor" })));
20604
- };
20605
-
20606
- const gift = () => {
20607
- return (h("svg", { width: 16, height: 16, fill: "none", xmlns: "http://www.w3.org/2000/svg" },
20608
- h("path", { d: "M15 5H9v11h4.5a1 1 0 001-1V9h.5a1 1 0 001-1V6a1 1 0 00-1-1zM1.5 9v6a1 1 0 001 1H7V5H1a1 1 0 00-1 1v2a1 1 0 001 1h.5z", fill: "var(--sl-color-primary-200)" }),
20609
- h("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M1.5 9v1h13V9h-13z", fill: "var(--sl-color-primary-300)" }),
20610
- h("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M14 2.71c0 .886-1.33 2.227-2 2.29H9v11H7.002V5H4.588C3.212 4.702 2 3.645 2 2.52 2 1.426 2.476.558 3.342.183 4.169-.176 5.125.02 5.88.545c.927.643 1.447 1.851 1.919 2.947l.123.286.12-.272C8.51 2.45 9.045 1.243 9.94.596c.793-.573 1.801-.79 2.672-.397.9.405 1.388 1.336 1.388 2.51zM10.612 1.5c.48-.347 1.056-.41 1.548 0 .428.357.45.525.506.93l.01.07c0 .599-.516 1.5-1.032 1.5-.366 0-.653-.003-.922-.006-.49-.005-.92-.01-1.657.006.14-.272.252-.533.36-.782.285-.667.534-1.246 1.187-1.718zm-5.673 0c-.233-.161-.766-.09-.987.006-.183.08-.456.32-.456 1.015 0 .674 1.092 1.257 1.092 1.257S5.454 4 7.002 4c-.527-1.305-1.273-1.951-2.063-2.5z", fill: "var(--sl-color-primary-600)" })));
20611
- };
20612
-
20613
- function ProgressBarView(props) {
20614
- const { progress = 0, goal = 1, steps = false, progressBarUnit = "", repeatable = false, } = props;
20615
- console.log("progress bar props", props);
20616
- const gift1 = gift();
20617
- const gift2 = gift();
20618
- const gift3 = gift();
20619
- var items = [];
20620
- var columns = "";
20621
- var repetitions = Math.floor(progress / goal);
20622
- if (repeatable) {
20623
- if (steps) {
20624
- addStepsRepeatable();
20625
- }
20626
- else {
20627
- addLinearRepeatable();
20628
- }
20629
- }
20630
- // non repeatable
20631
- else {
20632
- if (steps) {
20633
- addSteps();
20634
- }
20635
- else {
20636
- addLinear();
20637
- }
20638
- }
20639
- const style = {
20640
- ProgressBar: {
20641
- "& .progress-bar": {
20642
- height: "15px",
20643
- marginTop: "var(--sl-spacing-xx-large)",
20644
- marginBottom: "var(--sl-spacing-xx-large)",
20645
- marginRight: "var(--sl-spacing-x-small)",
20646
- fontSize: "var(--sl-font-size-x-small)",
20647
- display: "grid",
20648
- gridTemplateColumns: columns,
20649
- lineHeight: "45px",
20650
- userSelect: "none",
20651
- },
20652
- "& .progress-bar.repeatable-steps": {
20653
- marginLeft: "var(--sl-spacing-x-small)",
20654
- },
20655
- "& .filled:after": {
20656
- content: '""',
20657
- display: "flex",
20658
- width: "100%",
20659
- height: "4px",
20660
- borderRadius: "4px",
20661
- backgroundColor: "var(--sl-color-primary-500)",
20662
- },
20663
- "& .progress": {
20664
- display: "block",
20665
- textAlign: "center",
20666
- marginLeft: "-100px",
20667
- marginRight: "-100px",
20668
- },
20669
- "& .progress::after": {
20670
- content: '""',
20671
- width: "12px",
20672
- height: "12px",
20673
- display: "flex",
20674
- backgroundColor: "var(--sl-color-primary-500)",
20675
- borderRadius: "50%",
20676
- position: "relative",
20677
- left: "47%",
20678
- top: "-85%",
20679
- },
20680
- "& .progress.bg:after": {
20681
- width: "0",
20682
- height: "0",
20683
- border: "none",
20684
- },
20685
- "& .progress.top": {
20686
- position: "relative",
20687
- top: "-40px",
20688
- },
20689
- "& .progress.top:after": {
20690
- top: "-16%",
20691
- },
20692
- "& .empty": {
20693
- display: "block",
20694
- textAlign: "center",
20695
- marginLeft: "-100px",
20696
- marginRight: "-100px",
20697
- },
20698
- "& .empty::after": {
20699
- content: '""',
20700
- width: "12px",
20701
- height: "12px",
20702
- border: "2px solid #E0E0E0",
20703
- margin: "-2px",
20704
- display: "flex",
20705
- backgroundColor: "white",
20706
- borderRadius: "50%",
20707
- position: "relative",
20708
- left: "47%",
20709
- top: "-85%",
20710
- },
20711
- "& .empty.bg:after": {
20712
- width: "0",
20713
- height: "0",
20714
- border: "none",
20715
- },
20716
- "& .remain:after": {
20717
- content: '""',
20718
- display: "flex",
20719
- width: "100%",
20720
- height: "4px",
20721
- borderRadius: "4px",
20722
- backgroundColor: "#E0E0E0",
20723
- },
20724
- "& .gift.bw": {
20725
- filter: "grayscale(100%)",
20726
- },
20727
- "& .gift.start": {
20728
- transform: "scale(80%)",
20729
- top: "-20px",
20730
- },
20731
- "& .gift": {
20732
- textAlign: "center",
20733
- marginLeft: "-100px",
20734
- marginRight: "-100px",
20735
- position: "relative",
20736
- display: "list-item",
20737
- listStyleType: "none",
20738
- top: "-18px",
20739
- filter: goal <= progress ? "" : "grayscale(100%)",
20740
- zIndex: "1",
20741
- },
20742
- },
20743
- };
20744
- jss.setup(create());
20745
- const sheet = jss.createStyleSheet(style);
20746
- const styleString = sheet.toString();
20747
- return (h("div", { class: sheet.classes.ProgressBar },
20748
- h("style", { type: "text/css" }, styleString),
20749
- h("div", { class: repetitions > 1 ? "progress-bar repeatable-steps" : "progress-bar" }, items)));
20750
- function clamp(x, min, max) {
20751
- return Math.min(Math.max(x, min), max);
20752
- }
20753
- function addLinear() {
20754
- const ratio = progress / goal;
20755
- columns =
20756
- clamp(ratio, 0, 1) + "fr 0fr " + clamp(1 - ratio, 0, 1) + "fr 0fr 0fr";
20757
- items.push(h("div", { class: "filled" }));
20758
- items.push(h("div", { class: clamp(progress, 0, goal) == goal ? "progress top bg" : "progress top" }, clamp(progress, 0, goal) == goal
20759
- ? ""
20760
- : progressBarUnit + clamp(progress, 0, goal)));
20761
- items.push(h("div", { class: "remain" }));
20762
- items.push(h("div", { class: "progress bg" }, goal));
20763
- items.push(h("div", { class: "gift" }, gift1));
20764
- }
20765
- function addSteps() {
20766
- let ratio = 1 / goal;
20767
- for (let i = 1; i < goal; i++) {
20768
- columns += ratio + "fr 0fr ";
20769
- if (i > progress) {
20770
- items.push(h("div", { class: "remain" }));
20771
- items.push(h("div", { class: "empty" }, i));
20772
- }
20773
- else {
20774
- items.push(h("div", { class: "filled" }));
20775
- items.push(h("div", { class: "progress" }, i));
20776
- }
20777
- }
20778
- columns += ratio + "fr 0fr ";
20779
- // reward success
20780
- if (goal <= progress) {
20781
- columns += "0fr ";
20782
- items.push(h("div", { class: "filled" }));
20783
- items.push(h("div", { class: "progress bg" }, goal));
20784
- items.push(h("div", { class: "gift" }, gift1));
20785
- }
20786
- // reward fail
20787
- else {
20788
- columns += "0fr ";
20789
- items.push(h("div", { class: "remain" }));
20790
- items.push(h("div", { class: "empty bg" }, goal));
20791
- items.push(h("div", { class: "gift" }, gift1));
20792
- }
20793
- }
20794
- function addLinearRepeatable() {
20795
- let repetitions = Math.floor(progress / goal);
20796
- let ratio = ((progress % goal) / goal) * 0.5;
20797
- // 0 repetition
20798
- if (repetitions == 0) {
20799
- columns = ratio + "fr 0fr " + (0.5 - ratio) + "fr 0fr 0fr 0.5fr 0fr 0fr";
20800
- items.push(h("div", { class: "filled" }));
20801
- items.push(h("div", { class: progress == goal ? "progress top bg" : "progress top" }, progressBarUnit + progress));
20802
- items.push(h("div", { class: "remain" }));
20803
- items.push(h("div", { class: "progress bg" }, progressBarUnit + goal));
20804
- items.push(h("div", { class: "gift" }, gift1));
20805
- items.push(h("div", { class: "remain" }));
20806
- items.push(h("div", { class: "progress bg" }, progressBarUnit + goal * 2));
20807
- items.push(h("div", { class: "gift bw" }, gift2));
20808
- }
20809
- // single repetition
20810
- else if (repetitions == 1) {
20811
- columns =
20812
- "0.5fr 0fr 0fr " + ratio + "fr 0fr " + (0.5 - ratio) + "fr 0fr 0fr";
20813
- items.push(h("div", { class: "filled" }));
20814
- items.push(h("div", { class: "progress bg" }, progressBarUnit + goal));
20815
- items.push(h("div", { class: "gift" }, gift1));
20816
- items.push(h("div", { class: "filled" }));
20817
- items.push(h("div", { class: progress == goal ? "progress top bg" : "progress top" }, progress == goal ? "" : progressBarUnit + progress));
20818
- items.push(h("div", { class: "remain" }));
20819
- items.push(h("div", { class: "progress bg" }, progressBarUnit + goal * 2));
20820
- items.push(h("div", { class: "gift bw" }, gift2));
20821
- }
20822
- // multiple repetitions
20823
- else {
20824
- columns =
20825
- "0fr 0fr 0.5fr 0fr 0fr " +
20826
- ratio +
20827
- "fr 0fr " +
20828
- (0.5 - ratio) +
20829
- "fr 0fr 0fr";
20830
- items.push(h("div", { class: "progress bg" }, progressBarUnit + goal * (repetitions - 1)));
20831
- items.push(h("div", { class: "gift start" }, gift1));
20832
- items.push(h("div", { class: "filled" }));
20833
- items.push(h("div", { class: "progress bg" }, progressBarUnit + goal * repetitions));
20834
- items.push(h("div", { class: "gift" }, gift2));
20835
- items.push(h("div", { class: "filled" }));
20836
- items.push(h("div", { class: progress == goal * repetitions ? "progress top bg" : "progress top" }, progress == goal * repetitions ? "" : progressBarUnit + progress));
20837
- items.push(h("div", { class: "remain" }));
20838
- items.push(h("div", { class: "progress bg" }, progressBarUnit + goal * (repetitions + 1)));
20839
- items.push(h("div", { class: "gift bw" }, gift3));
20840
- }
20841
- }
20842
- function addStepsRepeatable() {
20843
- let repetitions = Math.floor(progress / goal);
20844
- // no or single repetition
20845
- if (repetitions < 2) {
20846
- let ratio = 1 / goal;
20847
- for (let i = 1; i < goal * 2 + 1; i++) {
20848
- columns += ratio + "fr 0fr ";
20849
- if (i > progress) {
20850
- if (i == goal) {
20851
- columns += "0fr ";
20852
- items.push(h("div", { class: "remain" }));
20853
- items.push(h("div", { class: "empty bg" }, goal));
20854
- items.push(h("div", { class: "gift bw" }, gift1));
20855
- }
20856
- else if (i == goal * 2) {
20857
- columns += "0fr 0fr";
20858
- items.push(h("div", { class: "remain" }));
20859
- items.push(h("div", { class: "empty bg" }, goal * 2));
20860
- items.push(h("div", { class: "gift bw" }, gift2));
20861
- }
20862
- else {
20863
- items.push(h("div", { class: "remain" }));
20864
- items.push(h("div", { class: "empty" }, progressBarUnit + i));
20865
- }
20866
- }
20867
- else if (i == goal) {
20868
- columns += "0fr ";
20869
- items.push(h("div", { class: "filled" }));
20870
- items.push(h("div", { class: "progress bg" }, i));
20871
- items.push(h("div", { class: "gift" }, gift3));
20872
- }
20873
- else {
20874
- items.push(h("div", { class: "filled" }));
20875
- items.push(h("div", { class: "progress" }, i));
20876
- }
20877
- }
20878
- }
20879
- // case repetition many
20880
- else {
20881
- let position = (progress % goal) + goal;
20882
- let ratio = 1 / goal;
20883
- columns += "0fr 0fr ";
20884
- items.push(h("div", { class: "progress bg" }, goal * (repetitions - 1)));
20885
- items.push(h("div", { class: "gift start" }, gift1));
20886
- for (let i = 1; i < goal * 2 + 1; i++) {
20887
- columns += ratio + "fr 0fr ";
20888
- if (i <= goal) {
20889
- if (i == goal) {
20890
- columns += "0fr ";
20891
- items.push(h("div", { class: "filled" }));
20892
- items.push(h("div", { class: "progress bg" }, i + goal * (repetitions - 1)));
20893
- items.push(h("div", { class: "gift" }, gift2));
20894
- }
20895
- else {
20896
- items.push(h("div", { class: "filled" }));
20897
- items.push(h("div", { class: "progress" }, i + goal * (repetitions - 1)));
20898
- }
20899
- }
20900
- else if (i > position) {
20901
- if (i == goal * 2) {
20902
- columns += "0fr 0fr";
20903
- items.push(h("div", { class: "remain" }));
20904
- items.push(h("div", { class: "empty bg" }, i + goal * (repetitions - 1)));
20905
- items.push(h("div", { class: "gift bw" }, gift3));
20906
- }
20907
- else {
20908
- items.push(h("div", { class: "remain" }));
20909
- items.push(h("div", { class: "empty" }, i + goal * (repetitions - 1)));
20910
- }
20911
- }
20912
- else {
20913
- items.push(h("div", { class: "filled" }));
20914
- items.push(h("div", { class: "progress" }, i + goal * (repetitions - 1)));
20915
- }
20916
- }
20917
- }
20918
- }
20919
- }
20920
-
20921
- function TaskCardView(props) {
20922
- const { points, cardTitle, description, showProgressBar, progress = 0, goal, rewardUnit, repeatable, showExpire, dateExpires, buttonText, buttonLink, loading, } = props;
20923
- console.log({ props });
20924
- const checkmark_circle$1 = checkmark_circle();
20925
- const arrow_left_right$1 = arrow_left_right();
20926
- const style = {
20927
- HostBlock: HostBlock,
20928
- TaskCard: {
20929
- "& .main > div": {
20930
- margin: "var(--sl-spacing-medium)",
20931
- },
20932
- "& .main": {
20933
- position: "relative",
20934
- boxSizing: "border-box",
20935
- minWidth: "347px",
20936
- background: "var(--sl-color-white)",
20937
- border: "1px solid var(--sl-color-gray-300)",
20938
- borderRadius: "var(--sl-border-radius-medium)",
20939
- fontSize: "var(--sl-font-size-small)",
20940
- lineHeight: "var(--sl-line-height-dense)",
20941
- },
20942
- "& .main.complete": {
20943
- background: "var(--sl-color-primary-50)",
20944
- borderColor: "var(--sl-color-primary-700)",
20945
- },
20946
- },
20947
- Header: {
20948
- display: "flex",
20949
- "& .icon": {
20950
- alignSelf: "center",
20951
- lineHeight: "0",
20952
- color: "var(--sl-color-primary-700)",
20953
- fontSize: "var(--sl-font-size-large)",
20954
- marginRight: "var(--sl-spacing-x-small)",
20955
- },
20956
- "& .value": {
20957
- alignSelf: "center",
20958
- color: "var(--sl-color-black)",
20959
- fontSize: "var(--sl-font-size-x-large)",
20960
- fontWeight: "var(--sl-font-weight-semibold)",
20961
- lineHeight: "100%",
20962
- marginRight: "var(--sl-spacing-xx-small)",
20963
- },
20964
- "& .text": {
20965
- alignSelf: "end",
20966
- textTransform: "uppercase",
20967
- color: "var(--sl-color-gray-600)",
20968
- fontSize: "var(--sl-font-size-x-small)",
20969
- lineHeight: "var(--sl-font-size-medium)",
20970
- marginRight: "var(--sl-spacing-xx-small)",
20971
- },
20972
- },
20973
- Title: {
20974
- color: "var(--sl-color-black)",
20975
- fontSize: "var(--sl-font-size-small)",
20976
- },
20977
- Footer: {
20978
- display: "flex",
20979
- "& .icon": {
20980
- fontSize: "var(--sl-font-size-xx-small)",
20981
- marginRight: "var(--sl-spacing-xx-small)",
20982
- },
20983
- "& .text": {
20984
- marginTop: "auto",
20985
- fontSize: "var(--sl-font-size-x-small)",
20986
- color: "var(--sl-color-gray-600)",
20987
- },
20988
- "& .action": {
20989
- marginTop: "auto",
20990
- marginLeft: "auto",
20991
- },
20992
- "& sl-button.action::part(base) ": {
20993
- color: "var(--sl-color-white)",
20994
- background: "var(--sl-color-primary-500)",
20995
- border: "1px solid var(--sl-color-primary-500)",
20996
- borderRadius: "var(--sl-border-radius-medium)",
20997
- },
20998
- },
20999
- };
21000
- jss.setup(create());
21001
- const sheet = jss.createStyleSheet(style);
21002
- const styleString = sheet.toString();
21003
- const showComplete = progress >= goal;
21004
- const repetitions = showProgressBar ? Math.floor(progress / goal) : progress;
21005
- console.log({ showProgressBar, loading });
21006
- return (h("div", { class: sheet.classes.TaskCard },
21007
- h("div", { class: showComplete ? "main complete" : "main" },
21008
- h("style", { type: "text/css" }, styleString),
21009
- h("div", { class: sheet.classes.Header },
21010
- showComplete && h("span", { class: "icon" }, checkmark_circle$1),
21011
- h("span", { class: "value" }, points),
21012
- h("span", { class: "text" }, rewardUnit)),
21013
- h("div", { class: sheet.classes.Title }, cardTitle),
21014
- showProgressBar && loading ? (h("sl-skeleton", { style: { width: "98%", margin: "0 auto" } })) : (showProgressBar && h(ProgressBarView, Object.assign({}, props))),
21015
- h(Details, { description: description }),
21016
- h("div", { class: sheet.classes.Footer },
21017
- h("span", { class: "text" },
21018
- repeatable && (h("div", null,
21019
- h("span", { class: "icon" }, arrow_left_right$1),
21020
- h("span", null,
21021
- "Completed ",
21022
- repetitions,
21023
- " times"))),
21024
- showExpire && (h("span", null,
21025
- "Ends ",
21026
- " ",
21027
- dateExpires))),
21028
- h("sl-button", { class: "action", size: "small", onClick: () => alert(buttonLink), disabled: showComplete && repeatable == false }, showComplete && repeatable == false
21029
- ? "Task completed"
21030
- : buttonText)))));
21031
- }
21032
- function Details(props) {
21033
- const style = {
21034
- Description: {
21035
- "& input[type=checkbox]": {
21036
- display: "none",
21037
- },
21038
- "& input:checked ~ .details": {
21039
- transform: "rotate(-180deg)",
21040
- },
21041
- "& .details": {
21042
- position: "absolute",
21043
- top: "var(--sl-spacing-medium)",
21044
- right: "var(--sl-spacing-medium)",
21045
- color: "var(--sl-color-gray-700)",
21046
- fontSize: "var(--sl-font-size-large)",
21047
- "& :hover": {
21048
- color: "var(--sl-color-primary-700)",
21049
- },
21050
- transformOrigin: "50% 37%",
21051
- transition: "transform var(--sl-transition-medium) ease",
21052
- },
21053
- "& input:checked ~ .summary": {
21054
- transition: "max-height var(--sl-transition-medium) ease",
21055
- maxHeight: "300px",
21056
- },
21057
- "& .summary": {
21058
- display: "block",
21059
- overflow: "hidden",
21060
- color: "var(--sl-color-gray-700)",
21061
- fontSize: "var(--sl-font-size-x-small)",
21062
- maxHeight: "0px",
21063
- transition: "max-height var(--sl-transition-fast) ease-out",
21064
- },
21065
- },
21066
- };
21067
- jss.setup(create());
21068
- const sheet = jss.createStyleSheet(style);
21069
- const styleString = sheet.toString();
21070
- const rid = Math.random().toString(36).slice(2);
21071
- return (h("div", null,
21072
- h("style", { type: "text/css" }, styleString),
21073
- h("span", { class: sheet.classes.Description },
21074
- h("input", { type: "checkbox", id: "details-" + rid }),
21075
- h("label", { class: "details", htmlFor: "details-" + rid },
21076
- h("sl-icon", { name: "chevron-down" })),
21077
- h("span", { class: "summary" }, props.description))));
21078
- }
21079
-
21080
- const scenario$5 = "@author:\r\n@owner:\r\nFeature: Task Card\r\n\r\n\tScenario Outline: Task Card View\r\n\r\n\t\tGiven <points>, <title>, <description>, <progress>, <goal>, <buttonText>, <buttonLink>,\r\n\t\tThen <points> is shown on the top left corner of the header area\r\n\t\tAnd <title> is shown in the body area left aligned and in bold text\r\n\t\tAnd <buttonText> is shown on the bottom right corner of the footer area\r\n\t\tWhen the user clicks on details icon\r\n\t\tThen <description> becomes visible\r\n\r\n\t\tExamples:\r\n\t\t\t| points | title | description | progress | goal | buttonText | buttonLink |\r\n\t\t\t| 20 | Complete a survey | Description of action | 0 | 1 | Take Survey | www.example.com |\r\n\r\n\tScenario Outline: Task Card Single Action\r\n\r\n\t\tGiven a task card\r\n\t\tAnd showProgressBar has value false\r\n\r\n\tScenario Outline: Single Action Repeatable\r\n\r\n\r\n\tScenario Outline: Task Card Expiry\r\n\r\n\t\tGiven a task card component\r\n\t\tAnd it has expire value true\r\n\t\tAnd it has <dateExpire>\r\n\t\tThen <dateExpire> is shown on the lower left corner of the task card\r\n";
21081
-
21082
- const TaskCard_stories = {
21083
- title: "Components/Task Card/",
21084
- parameters: {
21085
- scenario: scenario$5,
21086
- },
21087
- };
21088
- const resizable = {
21089
- width: "347px",
21090
- minWidth: "347px",
21091
- resize: "horizontal",
21092
- height: "fit-content",
21093
- overflow: "hidden",
21094
- };
21095
- const NotRepeatable = () => {
21096
- const oneAction = {
21097
- points: 20,
21098
- showExpire: false,
21099
- rewardUnit: "Points",
21100
- cardTitle: "Complete a survey",
21101
- repeatable: false,
21102
- description: "Description of action and reward. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget quisque commodo leo.",
21103
- buttonText: "Take survey",
21104
- goal: 1,
21105
- buttonLink: "https://example.com/",
21106
- showProgressBar: false,
21107
- loading: false,
21108
- };
21109
- const coupleActions = {
21110
- points: 40,
21111
- rewardUnit: "Points",
21112
- cardTitle: "Comment on 5 articles",
21113
- showProgressBar: true,
21114
- showExpire: false,
21115
- goal: 5,
21116
- repeatable: false,
21117
- steps: true,
21118
- description: "Description of action and reward. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget quisque commodo leo.",
21119
- buttonText: "Start reading",
21120
- buttonLink: "https://example.com/",
21121
- loading: false,
21122
- };
21123
- const manyActions = {
21124
- points: 150,
21125
- rewardUnit: "Points",
21126
- cardTitle: "Spend $500 at our Store",
21127
- showProgressBar: true,
21128
- showExpire: false,
21129
- goal: 500,
21130
- repeatable: false,
21131
- unit: "$",
21132
- description: "Description of action and reward. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget quisque commodo leo.",
21133
- buttonText: "Visit our Store",
21134
- buttonLink: "https://example.com/",
21135
- loading: false,
21136
- };
21137
- return (h("div", { style: { display: "inline-flex", gap: "32px" } },
21138
- h("div", { style: resizable },
21139
- h("h4", null, "One Action"),
21140
- h(TaskCardView, Object.assign({}, oneAction, { progress: 0 })),
21141
- " ",
21142
- h("h5", null),
21143
- h(TaskCardView, Object.assign({}, oneAction, { progress: 1 })),
21144
- " ",
21145
- h("h5", null)),
21146
- h("div", { style: resizable },
21147
- h("h4", null, "A Couple Actions"),
21148
- h(TaskCardView, Object.assign({}, coupleActions, { progress: 0 })),
21149
- " ",
21150
- h("h5", null),
21151
- h(TaskCardView, Object.assign({}, coupleActions, { progress: 1 })),
21152
- " ",
21153
- h("h5", null),
21154
- h(TaskCardView, Object.assign({}, coupleActions, { progress: 5 })),
21155
- " ",
21156
- h("h5", null)),
21157
- h("div", { style: resizable },
21158
- h("h4", null, "Many Actions"),
21159
- h(TaskCardView, Object.assign({}, manyActions, { progress: 0 })),
21160
- " ",
21161
- h("h5", null),
21162
- h(TaskCardView, Object.assign({}, manyActions, { progress: 230 })),
21163
- " ",
21164
- h("h5", null),
21165
- h(TaskCardView, Object.assign({}, manyActions, { progress: 500 })),
21166
- " ",
21167
- h("h5", null))));
21168
- };
21169
- const NotRepeatableWithExpiry = () => {
21170
- const oneAction = {
21171
- points: 20,
21172
- rewardUnit: "Points",
21173
- cardTitle: "Complete a survey",
21174
- description: "Description of action and reward. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget quisque commodo leo.",
21175
- buttonText: "Take survey",
21176
- goal: 1,
21177
- showExpire: true,
21178
- repeatable: false,
21179
- dateExpires: "Nov 1, 2021",
21180
- buttonLink: "https://example.com/",
21181
- showProgressBar: false,
21182
- loading: false,
21183
- };
21184
- const coupleActions = {
21185
- points: 40,
21186
- rewardUnit: "Points",
21187
- cardTitle: "Comment on 5 articles",
21188
- showProgressBar: true,
21189
- goal: 5,
21190
- steps: true,
21191
- description: "Description of action and reward. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget quisque commodo leo.",
21192
- buttonText: "Start reading",
21193
- showExpire: true,
21194
- repeatable: false,
21195
- dateExpires: "Nov 1, 2021",
21196
- buttonLink: "https://example.com/",
21197
- loading: false,
21198
- };
21199
- const manyActions = {
21200
- points: 150,
21201
- rewardUnit: "Points",
21202
- repeatable: false,
21203
- cardTitle: "Spend $500 at our Store",
21204
- showProgressBar: true,
21205
- goal: 500,
21206
- unit: "$",
21207
- description: "Description of action and reward. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget quisque commodo leo.",
21208
- buttonText: "Visit our Store",
21209
- showExpire: true,
21210
- dateExpires: "Nov 1, 2021",
21211
- buttonLink: "https://example.com/",
21212
- loading: false,
21213
- };
21214
- return (h("div", { style: { display: "inline-flex", gap: "32px" } },
21215
- h("div", { style: resizable },
21216
- h("h4", null, "One Action"),
21217
- h(TaskCardView, Object.assign({}, oneAction, { progress: 0 })),
21218
- " ",
21219
- h("h5", null),
21220
- h(TaskCardView, Object.assign({}, oneAction, { progress: 1 })),
21221
- " ",
21222
- h("h5", null)),
21223
- h("div", { style: resizable },
21224
- h("h4", null, "A Couple Actions"),
21225
- h(TaskCardView, Object.assign({}, coupleActions, { progress: 0 })),
21226
- " ",
21227
- h("h5", null),
21228
- h(TaskCardView, Object.assign({}, coupleActions, { progress: 1 })),
21229
- " ",
21230
- h("h5", null),
21231
- h(TaskCardView, Object.assign({}, coupleActions, { progress: 5 })),
21232
- " ",
21233
- h("h5", null)),
21234
- h("div", { style: resizable },
21235
- h("h4", null, "Many Actions"),
21236
- h(TaskCardView, Object.assign({}, manyActions, { progress: 0 })),
21237
- " ",
21238
- h("h5", null),
21239
- h(TaskCardView, Object.assign({}, manyActions, { progress: 230 })),
21240
- " ",
21241
- h("h5", null),
21242
- h(TaskCardView, Object.assign({}, manyActions, { progress: 500 })),
21243
- " ",
21244
- h("h5", null))));
21245
- };
21246
- const Repeatable = () => {
21247
- const oneAction = {
21248
- points: 20,
21249
- rewardUnit: "Points",
21250
- showExpire: false,
21251
- cardTitle: "Complete a survey",
21252
- description: "Description of action and reward. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget quisque commodo leo.",
21253
- buttonText: "Take survey",
21254
- goal: 1,
21255
- repeatable: true,
21256
- buttonLink: "https://example.com/",
21257
- showProgressBar: false,
21258
- loading: false,
21259
- };
21260
- const coupleActions = {
21261
- points: 40,
21262
- rewardUnit: "Points",
21263
- showExpire: false,
21264
- cardTitle: "Comment on 5 articles",
21265
- showProgressBar: true,
21266
- repeatable: true,
21267
- goal: 5,
21268
- steps: true,
21269
- description: "Description of action and reward. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget quisque commodo leo.",
21270
- buttonText: "Start reading",
21271
- buttonLink: "https://example.com/",
21272
- loading: false,
21273
- };
21274
- const manyActions = {
21275
- points: 150,
21276
- rewardUnit: "Points",
21277
- showExpire: false,
21278
- cardTitle: "Spend $500 at our Store",
21279
- showProgressBar: true,
21280
- repeatable: true,
21281
- goal: 500,
21282
- unit: "$",
21283
- description: "Description of action and reward. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget quisque commodo leo.",
21284
- buttonText: "Visit our Store",
21285
- buttonLink: "https://example.com/",
21286
- loading: false,
21287
- };
21288
- return (h("div", { style: { display: "inline-flex", gap: "32px" } },
21289
- h("div", { style: resizable },
21290
- h("h4", null, "One Action"),
21291
- h(TaskCardView, Object.assign({}, oneAction, { progress: 0 })),
21292
- " ",
21293
- h("h5", null),
21294
- h(TaskCardView, Object.assign({}, oneAction, { progress: 1 })),
21295
- " ",
21296
- h("h5", null)),
21297
- h("div", { style: resizable },
21298
- h("h4", null, "A Couple Actions"),
21299
- h(TaskCardView, Object.assign({}, coupleActions, { progress: 1 })),
21300
- " ",
21301
- h("h5", null),
21302
- h(TaskCardView, Object.assign({}, coupleActions, { progress: 5 })),
21303
- " ",
21304
- h("h5", null),
21305
- h(TaskCardView, Object.assign({}, coupleActions, { progress: 7 })),
21306
- " ",
21307
- h("h5", null),
21308
- h(TaskCardView, Object.assign({}, coupleActions, { progress: 10 })),
21309
- " ",
21310
- h("h5", null)),
21311
- h("div", { style: resizable },
21312
- h("h4", null, "Many Actions"),
21313
- h(TaskCardView, Object.assign({}, manyActions, { progress: 100 })),
21314
- " ",
21315
- h("h5", null),
21316
- h(TaskCardView, Object.assign({}, manyActions, { progress: 500 })),
21317
- " ",
21318
- h("h5", null),
21319
- h(TaskCardView, Object.assign({}, manyActions, { progress: 650 })),
21320
- " ",
21321
- h("h5", null),
21322
- h(TaskCardView, Object.assign({}, manyActions, { progress: 1000 })),
21323
- " ",
21324
- h("h5", null))));
21325
- };
21326
- const RepeatableWithExpiry = () => {
21327
- const oneAction = {
21328
- points: 20,
21329
- rewardUnit: "Points",
21330
- cardTitle: "Complete a survey",
21331
- description: "Description of action and reward. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget quisque commodo leo.",
21332
- buttonText: "Take survey",
21333
- goal: 1,
21334
- repeatable: true,
21335
- showExpire: true,
21336
- dateExpires: "Nov 1, 2021",
21337
- buttonLink: "https://example.com/",
21338
- showProgressBar: false,
21339
- loading: false,
21340
- };
21341
- const coupleActions = {
21342
- points: 40,
21343
- rewardUnit: "Points",
21344
- cardTitle: "Comment on 5 articles",
21345
- showProgressBar: true,
21346
- repeatable: true,
21347
- goal: 5,
21348
- steps: true,
21349
- description: "Description of action and reward. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget quisque commodo leo.",
21350
- buttonText: "Start reading",
21351
- showExpire: true,
21352
- dateExpires: "Nov 1, 2021",
21353
- buttonLink: "https://example.com/",
21354
- loading: false,
21355
- };
21356
- const manyActions = {
21357
- points: 150,
21358
- rewardUnit: "Points",
21359
- cardTitle: "Spend $500 at our Store",
21360
- showProgressBar: true,
21361
- repeatable: true,
21362
- goal: 500,
21363
- unit: "$",
21364
- description: "Description of action and reward. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut eget quisque commodo leo.",
21365
- buttonText: "Visit our Store",
21366
- showExpire: true,
21367
- dateExpires: "Nov 1, 2021",
21368
- buttonLink: "https://example.com/",
21369
- loading: false,
21370
- };
21371
- return (h("div", { style: { display: "inline-flex", gap: "32px" } },
21372
- h("div", { style: resizable },
21373
- h("h4", null, "One Action"),
21374
- h(TaskCardView, Object.assign({}, oneAction, { progress: 0 })),
21375
- " ",
21376
- h("h5", null),
21377
- h(TaskCardView, Object.assign({}, oneAction, { progress: 1 })),
21378
- " ",
21379
- h("h5", null)),
21380
- h("div", { style: resizable },
21381
- h("h4", null, "A Couple Actions"),
21382
- h(TaskCardView, Object.assign({}, coupleActions, { progress: 1 })),
21383
- " ",
21384
- h("h5", null),
21385
- h(TaskCardView, Object.assign({}, coupleActions, { progress: 5 })),
21386
- " ",
21387
- h("h5", null),
21388
- h(TaskCardView, Object.assign({}, coupleActions, { progress: 7 })),
21389
- " ",
21390
- h("h5", null),
21391
- h(TaskCardView, Object.assign({}, coupleActions, { progress: 10 })),
21392
- " ",
21393
- h("h5", null)),
21394
- h("div", { style: resizable },
21395
- h("h4", null, "Many Actions"),
21396
- h(TaskCardView, Object.assign({}, manyActions, { progress: 100 })),
21397
- " ",
21398
- h("h5", null),
21399
- h(TaskCardView, Object.assign({}, manyActions, { progress: 500 })),
21400
- " ",
21401
- h("h5", null),
21402
- h(TaskCardView, Object.assign({}, manyActions, { progress: 650 })),
21403
- " ",
21404
- h("h5", null),
21405
- h(TaskCardView, Object.assign({}, manyActions, { progress: 1000 })),
21406
- " ",
21407
- h("h5", null))));
21408
- };
21409
-
21410
- const TaskCard$1 = /*#__PURE__*/Object.freeze({
21411
- __proto__: null,
21412
- 'default': TaskCard_stories,
21413
- NotRepeatable: NotRepeatable,
21414
- NotRepeatableWithExpiry: NotRepeatableWithExpiry,
21415
- Repeatable: Repeatable,
21416
- RepeatableWithExpiry: RepeatableWithExpiry
21417
- });
21418
-
21419
- /**
21420
- * Displays a cartesian product of the input props
21421
- *
21422
- * @returns
21423
- */
21424
- function MatrixStory({ matrix, props, Component, }) {
21425
- const propMatrix = Object.keys(matrix).map((propKey) => {
21426
- const propValues = matrix[propKey];
21427
- return propValues.map((val) => {
21428
- return {
21429
- [propKey]: val,
21430
- };
21431
- });
21432
- });
21433
- const combinations = cartesian(...propMatrix);
21434
- const propsCombinations = combinations.map((combo) => {
21435
- return combo.reduce((props, prop) => {
21436
- return {
21437
- ...props,
21438
- ...prop,
21439
- };
21440
- }, {});
21441
- });
21442
- return propsCombinations.map((combo) => {
21443
- const example = { ...props, ...combo };
21444
- return (h("div", null,
21445
- h(PropsTable, { values: example }),
21446
- h("hr", null),
21447
- h(Component, Object.assign({}, example))));
21448
- });
21449
- }
21450
- function PropsTable({ values }) {
21451
- return (h("table", null,
21452
- h("tbody", null, Object.keys(values).map((key) => {
21453
- return (h("tr", null,
21454
- h("th", null, key),
21455
- h("td", null, JSON.stringify(values[key]))));
21456
- }))));
21457
- }
21458
- /**
21459
- * Source: https://stackoverflow.com/questions/15298912/javascript-generating-combinations-from-n-arrays-with-m-elements
21460
- *
21461
- * TODO: Could replace with a fork of https://www.npmjs.com/package/cartesian
21462
- *
21463
- * @param args - an array of arrays
21464
- * @returns combinations of the elements in those array
21465
- */
21466
- function cartesian(...args) {
21467
- var r = [], max = args.length - 1;
21468
- function helper(arr, i) {
21469
- for (var j = 0, l = args[i].length; j < l; j++) {
21470
- var a = arr.slice(0); // clone arr
21471
- a.push(args[i][j]);
21472
- if (i == max)
21473
- r.push(a);
21474
- else
21475
- helper(a, i + 1);
21476
- }
21477
- }
21478
- helper([], 0);
21479
- return r;
21480
- }
21481
-
21482
- const scenario$6 = "@author:\r\n@owner:\r\nFeature: Task Card Progress Bar\r\n\r\n\tScenario Outline: Progress Bar\r\n\r\n\t\tGiven <progress> and <goal>\r\n\t\tThen I have <progressBar>\r\n\t\tAnd <progressBar> shows <progress> with <unit> above\r\n\t\tAnd gift icon has <color>\r\n\t\tAnd gift icon shows <goal> with <unit> below\r\n\r\n\t\tExamples:\r\n\t\t\t| progress | goal | progressBar | unit | color |\r\n\t\t\t| -100 | 500 | ●――――――――――――――――――🎁 | $ | no |\r\n\t\t\t| 0 | 500 | ●――――――――――――――――――🎁 | $ | no |\r\n\t\t\t| 250 | 500 | ―――――――――●―――――――――🎁 | $ | no |\r\n\t\t\t| 500 | 500 | ―――――――――――――――――――🎁 | $ | yes |\r\n\t\t\t| 1000 | 500 | ―――――――――――――――――――🎁 | $ | yes |\r\n\r\n\tScenario Outline: Progress Bar Steps\r\n\r\n\t\tGiven <progress> and <goal>\r\n\t\tAnd steps is enabled\r\n\t\tThen I have <progressBar>\r\n\t\tAnd <progressBar> has incrementing steps from 1 to <goal>\r\n\t\tAnd gift icon has <color>\r\n\t\tAnd gift icon shows <goal> below\r\n\r\n\t\tExamples:\r\n\t\t\t| progress | goal | progressBar | color |\r\n\t\t\t| -1 | 5 | ―――○―――○―――○―――○―――🎁 | no |\r\n\t\t\t| 0 | 5 | ―――○―――○―――○―――○―――🎁 | no |\r\n\t\t\t| 1 | 5 | ―――●―――○―――○―――○―――🎁 | no |\r\n\t\t\t| 5 | 5 | ―――○―――○―――○―――●―――🎁 | yes |\r\n\t\t\t| 7 | 5 | ―――○―――○―――○―――●―――🎁 | yes |\r\n\r\n\r\n\tScenario Outline: Progress Bar Repeatable\r\n\r\n\t\tGiven <progress> and <goal>\r\n\t\tThen I have <progressBar>\r\n\t\tAnd <progressBar> shows <progress> with <unit> above\r\n\t\tAnd <icon1> has <color1>\r\n\t\tAnd <icon2> has <color2>\r\n\t\tAnd <icon3> has <color3>\r\n\t\tAnd <icon1> shows <text1> below\r\n\t\tAnd <icon2> shows <text2> below\r\n\t\tAnd <icon3> shows <text3> below\r\n\r\n\t\tExamples:\r\n\t\t\t| progress | goal | progressBar | unit | icon1 | icon2 | icon3 | color1 | color2 | color3 | text 1 | text 2 | text 3 |\r\n\t\t\t| 250 | 500 | ――――●――――🎁―――――――🎁 | $ | NA | gift | gift | NA | no | no | NA | 500 | 1000 |\r\n\t\t\t| 500 | 500 | ―――――――――🎁―――――――🎁 | $ | NA | gift | gift | NA | yes | no | NA | 500 | 1000 |\r\n\t\t\t| 750 | 500 | ―――――――――🎁―――●―――🎁 | $ | NA | gift | gift | NA | yes | no | NA | 500 | 1000 |\r\n\t\t\t| 1000 | 500 | 🎁―――――――🎁―――――――🎁 | $ | gift | gift | gift | yes | yes | no | 500 | 1000 | 1500 |\r\n\t\t\t| 1250 | 500 | 🎁―――――――🎁―――●―――🎁 | $ | gift | gift | gift | yes | yes | no | 500 | 1000 | 1500 |\r\n\r\n\t# \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t math logic inside text ?\r\n\t# | 1250 | 500 | 🎁―――――――🎁―――●―――🎁 | gift | gift | gift | yes | yes | no | goal * (⌊ progress / goal ⌋ - 1) | goal * ⌊ progress / goal ⌋ | goal * (⌊ progress / goal ⌋ +1) |\r\n\r\n\r\n\tScenario Outline: Progress Bar Steps Repeatable\r\n\r\n\t\tGiven <progress> and <goal>\r\n\t\tAnd steps is enabled\r\n\t\tThen I have <progressBar>\r\n\t\tAnd <progressBar> has incrementing steps\r\n\r\n\t\tExamples:\r\n\t\t\t| progress | goal | progressBar |";
21483
-
21484
- const progressBar_stories = {
21485
- title: "Components/Task Card Progress Bar",
21486
- parameters: {
21487
- scenario: scenario$6,
21488
- },
21489
- };
21490
- const Default$a = () => {
21491
- return h(ProgressBarView, null);
21492
- };
21493
- const ProgressBar$1 = () => {
21494
- const props = {
21495
- progress: 0,
21496
- goal: 500,
21497
- progressBarUnit: "$",
21498
- };
21499
- return (h("div", null,
21500
- h(MatrixStory, { matrix: { progress: [-100, 0, 100, 500, 1000] }, props: props, Component: ProgressBarView })));
21501
- };
21502
- const ProgressBarSteps = () => {
21503
- const props = {
21504
- progress: 0,
21505
- steps: true,
21506
- goal: 5,
21507
- progressBarUnit: "$",
21508
- };
21509
- return (h("div", null,
21510
- h(MatrixStory, { matrix: { progress: [-1, 0, 1, 5, 7] }, props: props, Component: ProgressBarView })));
21511
- };
21512
- const ProgressBarRepeatable = () => {
21513
- const props = {
21514
- progress: 0,
21515
- goal: 500,
21516
- progressBarUnit: "$",
21517
- repeatable: true,
21518
- };
21519
- return (h("div", null,
21520
- h(MatrixStory, { matrix: { progress: [100, 500, 650, 1200] }, props: props, Component: ProgressBarView })));
21521
- };
21522
- const ProgressBarStepsRepeatable = () => {
21523
- const props = {
21524
- progress: 0,
21525
- steps: true,
21526
- goal: 5,
21527
- progressBarUnit: "$",
21528
- repeatable: true,
21529
- };
21530
- return (h("div", null,
21531
- h(MatrixStory, { matrix: { progress: [1, 5, 7, 12] }, props: props, Component: ProgressBarView })));
21532
- };
21533
-
21534
- const TaskCardProgressBar = /*#__PURE__*/Object.freeze({
21535
- __proto__: null,
21536
- 'default': progressBar_stories,
21537
- Default: Default$a,
21538
- ProgressBar: ProgressBar$1,
21539
- ProgressBarSteps: ProgressBarSteps,
21540
- ProgressBarRepeatable: ProgressBarRepeatable,
21541
- ProgressBarStepsRepeatable: ProgressBarStepsRepeatable
21542
- });
21543
-
21544
19889
  const portalTemplate = "<sqm-portal-frame>\r\n <a slot=\"header\" href=\"/\">\r\n <sqm-text style=\"height: 60px\">\r\n <img\r\n style=\"height: 60px\"\r\n src=\"https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png\"\r\n />\r\n </sqm-text>\r\n </a>\r\n <sqb-program-section program-id=\"referral-program\">\r\n <sqm-router>\r\n <template\r\n path=\"/:path(\\bregister\\b|\\bemailVerification\\b|\\blogin\\b|\\bverifyEmail\\b|\\bforgotPassword\\b|\\bresetPassword\\b|\\blogout\\b)\"\r\n >\r\n <sqm-graphql-client-provider\r\n domain=\"https://managed-identity.saasquatch.com\"\r\n >\r\n <sqm-hero\r\n background=\"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80\"\r\n >\r\n <sqm-router>\r\n <template path=\"/register\">\r\n <sqm-portal-register>\r\n <sqm-name-fields slot=\"formData\"></sqm-name-fields>\r\n </sqm-portal-register>\r\n </template>\r\n\r\n <template path=\"/emailVerification\">\r\n <sqm-portal-protected-route\r\n redirect-to=\"/login\"\r\n ></sqm-portal-protected-route>\r\n <sqm-portal-email-verification></sqm-portal-email-verification>\r\n </template>\r\n\r\n <template path=\"/login\">\r\n <sqm-portal-login></sqm-portal-login>\r\n </template>\r\n\r\n <template path=\"/verifyEmail\">\r\n <sqm-portal-verify-email></sqm-portal-verify-email>\r\n </template>\r\n\r\n <template path=\"/forgotPassword\">\r\n <sqm-portal-forgot-password\r\n email-label=\"Business Email\"\r\n ></sqm-portal-forgot-password>\r\n </template>\r\n\r\n <template path=\"/resetPassword\">\r\n <sqm-portal-reset-password\r\n confirm-password=\"true\"\r\n ></sqm-portal-reset-password>\r\n </template>\r\n <template path=\"/logout\">\r\n <sqm-portal-logout next-page=\"/login\"></sqm-portal-logout>\r\n </template>\r\n </sqm-router>\r\n </sqm-hero>\r\n </sqm-graphql-client-provider>\r\n </template>\r\n </sqm-router>\r\n <sqm-router>\r\n <template path=\"/:path(\\bactivity\\b|\\beditProfile\\b)?\">\r\n <sqm-divided-layout\r\n direction=\"row\"\r\n style=\"\r\n border-top: 1px solid #eaeaea;\r\n border-bottom: 1px solid #eaeaea;\r\n \"\r\n >\r\n <sqm-navigation-sidebar>\r\n <sqm-navigation-sidebar-item\r\n path=\"/\"\r\n icon=\"house\"\r\n label=\"Dashboard\"\r\n ></sqm-navigation-sidebar-item>\r\n <sqm-navigation-sidebar-item\r\n path=\"/activity\"\r\n icon=\"bar-chart\"\r\n label=\"Activity\"\r\n ></sqm-navigation-sidebar-item>\r\n <sqm-navigation-sidebar-item\r\n path=\"/editProfile\"\r\n icon=\"person\"\r\n label=\"Edit Profile\"\r\n ></sqm-navigation-sidebar-item>\r\n <sqm-navigation-sidebar-item\r\n path=\"/logout\"\r\n icon=\"box-arrow-right\"\r\n label=\"Logout\"\r\n ></sqm-navigation-sidebar-item>\r\n </sqm-navigation-sidebar>\r\n <sqm-divided-layout direction=\"column\">\r\n <sqm-router>\r\n <template path=\"/\">\r\n <sqm-portal-protected-route\r\n require-email-verification=\"true\"\r\n redirect-to=\"/login\"\r\n redirect-to-unverified=\"/emailVerification\"\r\n ></sqm-portal-protected-route>\r\n <sqb-widget\r\n widget-type=\"p/referral-program/w/referrerWidget\"\r\n track-loads=\"true\"\r\n ></sqb-widget>\r\n </template>\r\n <template path=\"/editProfile\">\r\n <sqm-portal-protected-route\r\n require-email-verification=\"true\"\r\n redirect-to=\"/login\"\r\n redirect-to-unverified=\"/emailVerification\"\r\n ></sqm-portal-protected-route>\r\n <sqm-portal-container direction=\"column\" gap=\"xxx-large\">\r\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\r\n ><sqm-portal-container direction=\"column\" gap=\"xxx-large\">\r\n <sqm-graphql-client-provider\r\n domain=\"https://managed-identity.saasquatch.com\"\r\n >\r\n <sqm-portal-change-password></sqm-portal-change-password>\r\n </sqm-graphql-client-provider>\r\n </sqm-portal-container>\r\n </template>\r\n\r\n <template path=\"/activity\">\r\n <sqm-portal-protected-route\r\n require-email-verification=\"true\"\r\n redirect-to=\"/login\"\r\n redirect-to-unverified=\"/emailVerification\"\r\n ></sqm-portal-protected-route>\r\n <sqm-portal-container\r\n direction=\"column\"\r\n padding=\"xxx-large\"\r\n gap=\"xxx-large\"\r\n >\r\n <sqm-text> <h1>Activity</h1></sqm-text>\r\n <sqm-stat-container space=\"xxxx-large\"\r\n ><sqm-big-stat\r\n flex-reverse=\"true\"\r\n alignment=\"left\"\r\n stat-type=\"/referralsCount\"\r\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\r\n >\r\n <sqm-big-stat\r\n flex-reverse=\"true\"\r\n alignment=\"left\"\r\n stat-type=\"/rewardsCountFiltered/AVAILABLE\"\r\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\r\n >\r\n <sqm-big-stat\r\n flex-reverse=\"true\"\r\n alignment=\"left\"\r\n stat-type=\"/rewardBalance/CREDIT/CENTS\"\r\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\r\n >\r\n </sqm-stat-container>\r\n <sqm-referral-table>\r\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\r\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\r\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\r\n <sqm-referral-table-date-column\r\n column-title=\"Referred\"\r\n date-shown=\"dateReferralStarted\"\r\n ></sqm-referral-table-date-column> </sqm-referral-table\r\n ></sqm-portal-container>\r\n </template>\r\n </sqm-router>\r\n </sqm-divided-layout>\r\n </sqm-divided-layout>\r\n </template>\r\n </sqm-router>\r\n </sqb-program-section>\r\n <sqm-portal-footer\r\n slot=\"footer\"\r\n support-email=\"support@example.com\"\r\n terms-link=\"https://example.com\"\r\n faq-link=\"https://example.com\"\r\n terms-text=\"Terms And Conditions\"\r\n faq-text=\"FAQ\"\r\n show-powered-by=\"true\"\r\n ></sqm-portal-footer>\r\n</sqm-portal-frame>\r\n";
21545
19890
 
21546
19891
  const portalLeadSubmitTemplate = "<sqm-portal-frame>\r\n <a slot=\"header\" href=\"/\">\r\n <sqm-text style=\"height: 60px\">\r\n <img\r\n style=\"height: 60px\"\r\n src=\"https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png\"\r\n />\r\n </sqm-text>\r\n </a>\r\n <sqb-program-section program-id=\"referral-program\">\r\n <sqm-router>\r\n <template\r\n path=\"/:path(\\bregister\\b|\\bemailVerification\\b|\\blogin\\b|\\bverifyEmail\\b|\\bforgotPassword\\b|\\bresetPassword\\b|\\blogout\\b)\"\r\n >\r\n <sqm-graphql-client-provider\r\n domain=\"https://managed-identity.saasquatch.com\"\r\n >\r\n <sqm-hero\r\n background=\"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80\"\r\n >\r\n <sqm-router>\r\n <template path=\"/register\">\r\n <sqm-portal-register>\r\n <sqm-name-fields slot=\"formData\"></sqm-name-fields>\r\n </sqm-portal-register>\r\n </template>\r\n\r\n <template path=\"/emailVerification\">\r\n <sqm-portal-protected-route\r\n redirect-to=\"/login\"\r\n ></sqm-portal-protected-route>\r\n <sqm-portal-email-verification></sqm-portal-email-verification>\r\n </template>\r\n\r\n <template path=\"/login\">\r\n <sqm-portal-login></sqm-portal-login>\r\n </template>\r\n\r\n <template path=\"/verifyEmail\">\r\n <sqm-portal-verify-email></sqm-portal-verify-email>\r\n </template>\r\n\r\n <template path=\"/forgotPassword\">\r\n <sqm-portal-forgot-password\r\n email-label=\"Business Email\"\r\n ></sqm-portal-forgot-password>\r\n </template>\r\n\r\n <template path=\"/resetPassword\">\r\n <sqm-portal-reset-password\r\n confirm-password=\"true\"\r\n ></sqm-portal-reset-password>\r\n </template>\r\n <template path=\"/logout\">\r\n <sqm-portal-logout next-page=\"/login\"></sqm-portal-logout>\r\n </template>\r\n </sqm-router>\r\n </sqm-hero>\r\n </sqm-graphql-client-provider>\r\n </template>\r\n </sqm-router>\r\n <sqm-router>\r\n <template path=\"/:path(\\bactivity\\b|\\beditProfile\\b|\\brefer\\b)?\">\r\n <sqm-divided-layout\r\n direction=\"row\"\r\n style=\"\r\n border-top: 1px solid #eaeaea;\r\n border-bottom: 1px solid #eaeaea;\r\n \"\r\n >\r\n <sqm-navigation-sidebar>\r\n <sqm-navigation-sidebar-item\r\n path=\"/\"\r\n icon=\"house\"\r\n label=\"Dashboard\"\r\n ></sqm-navigation-sidebar-item>\r\n <sqm-navigation-sidebar-item\r\n path=\"/refer\"\r\n icon=\"inbox\"\r\n label=\"Submit A Lead\"\r\n ></sqm-navigation-sidebar-item>\r\n <sqm-navigation-sidebar-item\r\n path=\"/activity\"\r\n icon=\"bar-chart\"\r\n label=\"Activity\"\r\n ></sqm-navigation-sidebar-item>\r\n <sqm-navigation-sidebar-item\r\n path=\"/editProfile\"\r\n icon=\"person\"\r\n label=\"Edit Profile\"\r\n ></sqm-navigation-sidebar-item>\r\n <sqm-navigation-sidebar-item\r\n path=\"/logout\"\r\n icon=\"box-arrow-right\"\r\n label=\"Logout\"\r\n ></sqm-navigation-sidebar-item>\r\n </sqm-navigation-sidebar>\r\n <sqm-divided-layout direction=\"column\">\r\n <sqm-router>\r\n <template path=\"/\">\r\n <sqm-portal-protected-route\r\n require-email-verification=\"true\"\r\n redirect-to=\"/login\"\r\n redirect-to-unverified=\"/emailVerification\"\r\n ></sqm-portal-protected-route>\r\n <sqb-widget\r\n widget-type=\"p/referral-program/w/referrerWidget\"\r\n track-loads=\"true\"\r\n ></sqb-widget>\r\n </template>\r\n <template path=\"/editProfile\">\r\n <sqm-portal-protected-route\r\n require-email-verification=\"true\"\r\n redirect-to=\"/login\"\r\n redirect-to-unverified=\"/emailVerification\"\r\n ></sqm-portal-protected-route>\r\n <sqm-portal-container direction=\"column\" gap=\"xxx-large\">\r\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\r\n ><sqm-portal-container direction=\"column\" gap=\"xxx-large\">\r\n <sqm-graphql-client-provider\r\n domain=\"https://managed-identity.saasquatch.com\"\r\n >\r\n <sqm-portal-change-password></sqm-portal-change-password>\r\n </sqm-graphql-client-provider>\r\n </sqm-portal-container>\r\n </template>\r\n <template path=\"/refer\">\r\n <sqm-portal-protected-route\r\n require-email-verification=\"true\"\r\n redirect-to=\"/login\"\r\n redirect-to-unverified=\"/emailVerification\"\r\n ></sqm-portal-protected-route>\r\n <sqm-referral-iframe></sqm-referral-iframe>\r\n </template>\r\n <template path=\"/activity\">\r\n <sqm-portal-protected-route\r\n require-email-verification=\"true\"\r\n redirect-to=\"/login\"\r\n redirect-to-unverified=\"/emailVerification\"\r\n ></sqm-portal-protected-route>\r\n <sqm-portal-container\r\n direction=\"column\"\r\n padding=\"xxx-large\"\r\n gap=\"xxx-large\"\r\n >\r\n <sqm-text> <h1>Activity</h1></sqm-text>\r\n <sqm-stat-container space=\"xxxx-large\"\r\n ><sqm-big-stat\r\n flex-reverse=\"true\"\r\n alignment=\"left\"\r\n stat-type=\"/referralsCount\"\r\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\r\n >\r\n <sqm-big-stat\r\n flex-reverse=\"true\"\r\n alignment=\"left\"\r\n stat-type=\"/rewardsCountFiltered/AVAILABLE\"\r\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\r\n >\r\n <sqm-big-stat\r\n flex-reverse=\"true\"\r\n alignment=\"left\"\r\n stat-type=\"/rewardBalance/CREDIT/CENTS\"\r\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\r\n >\r\n </sqm-stat-container>\r\n <sqm-referral-table>\r\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\r\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\r\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\r\n <sqm-referral-table-date-column\r\n column-title=\"Referred\"\r\n date-shown=\"dateReferralStarted\"\r\n ></sqm-referral-table-date-column> </sqm-referral-table\r\n ></sqm-portal-container>\r\n </template>\r\n </sqm-router>\r\n </sqm-divided-layout>\r\n </sqm-divided-layout>\r\n </template>\r\n </sqm-router>\r\n </sqb-program-section>\r\n <sqm-portal-footer\r\n slot=\"footer\"\r\n support-email=\"support@example.com\"\r\n terms-link=\"https://example.com\"\r\n faq-link=\"https://example.com\"\r\n terms-text=\"Terms And Conditions\"\r\n faq-text=\"FAQ\"\r\n show-powered-by=\"true\"\r\n ></sqm-portal-footer>\r\n</sqm-portal-frame>\r\n";
@@ -24547,13 +22892,13 @@ var marked = createCommonjsModule(function (module, exports) {
24547
22892
  })));
24548
22893
  });
24549
22894
 
24550
- const LoginReadme = "# sqm-portal-login\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| --------------------- | ----------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- |\r\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; }; content?: { forgotPasswordButton?: any; secondaryButton?: any; emailLabel?: string; passwordLabel?: string; submitLabel?: string; pageLabel?: string; }; }` | `undefined` |\r\n| `emailLabel` | `email-label` | | `string` | `\"Email\"` |\r\n| `forgotPasswordLabel` | `forgot-password-label` | | `string` | `\"Forgot Password?\"` |\r\n| `nextPage` | `next-page` | | `string` | `\"/\"` |\r\n| `pageLabel` | `page-label` | | `string` | `\"Sign in to your account\"` |\r\n| `passwordLabel` | `password-label` | | `string` | `\"Password\"` |\r\n| `registerLabel` | `register-label` | | `string` | `\"Register\"` |\r\n| `submitLabel` | `submit-label` | | `string` | `\"Sign In\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Used by\r\n\r\n - [sqm-stencilbook](../sqm-stencilbook)\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-login --> sqm-form-message\r\n sqm-stencilbook --> sqm-portal-login\r\n style sqm-portal-login fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
22895
+ const LoginReadme = "# sqm-portal-login\r\n\r\n\r\n\r\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` | | `string` | `\"/forgotPassword\"` |\n| `nextPage` | `next-page` | | `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` | | `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";
24551
22896
 
24552
22897
  const ReferralIframeReadme = "# sqm-referral-iframe\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| -------------- | --------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------ | ----------- |\r\n| `demoData` | -- | | `{ states?: { content: { iframeSrc: string; iframeHeight: string; iframeWidth: string; }; }; data?: { shareCode: string; }; }` | `undefined` |\r\n| `iframeHeight` | `iframe-height` | | `string` | `\"100%\"` |\r\n| `iframeSrc` | `iframe-src` | | `string` | `undefined` |\r\n| `iframeWidth` | `iframe-width` | | `string` | `\"100%\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Used by\r\n\r\n - [sqm-stencilbook](../sqm-stencilbook)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-stencilbook --> sqm-referral-iframe\r\n style sqm-referral-iframe fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
24553
22898
 
24554
- const ForgotPasswordReadme = "# sqm-portal-forgot-password\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| ------------- | -------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------- |\r\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; success: boolean; }; content?: { secondaryButton: any; messageSlot: any; emailLabel?: string; submitLabel?: string; }; }` | `undefined` |\r\n| `emailLabel` | `email-label` | | `string` | `\"Email\"` |\r\n| `submitLabel` | `submit-label` | | `string` | `\"Request Password Reset\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-forgot-password --> sqm-form-message\r\n style sqm-portal-forgot-password fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
22899
+ const ForgotPasswordReadme = "# sqm-portal-forgot-password\r\n\r\n\r\n\r\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| `loginPath` | `login-path` | | `string` | `\"/login\"` |\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";
24555
22900
 
24556
- const RegisterReadme = "# sqm-portal-register\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| -------------------------- | ---------------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- |\r\n| `confirmPassword` | `confirm-password` | | `boolean` | `false` |\r\n| `confirmPasswordLabel` | `confirm-password-label` | | `string` | `\"Confirm Password\"` |\r\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; confirmPassword: boolean; hideInputs: boolean; validationState?: FormState; enablePasswordValidation?: boolean; }; refs?: { formRef: any; }; content?: { formData?: any; passwordField?: any; secondaryButton?: any; emailLabel?: string; passwordLabel?: string; submitLabel?: string; pageLabel?: string; confirmPasswordLabel: string; }; }` | `undefined` |\r\n| `emailLabel` | `email-label` | | `string` | `\"Email\"` |\r\n| `enablePasswordValidation` | `enable-password-validation` | | `boolean` | `true` |\r\n| `hideInputs` | `hide-inputs` | | `boolean` | `false` |\r\n| `loginLabel` | `login-label` | | `string` | `\"Sign in\"` |\r\n| `nextPage` | `next-page` | | `string` | `\"/\"` |\r\n| `pageLabel` | `page-label` | | `string` | `\"Register\"` |\r\n| `passwordLabel` | `password-label` | | `string` | `\"Password\"` |\r\n| `submitLabel` | `submit-label` | | `string` | `\"Register\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Used by\r\n\r\n - [sqm-stencilbook](../sqm-stencilbook)\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n- [sqm-password-field](../sqm-password-field)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-register --> sqm-form-message\r\n sqm-portal-register --> sqm-password-field\r\n sqm-stencilbook --> sqm-portal-register\r\n style sqm-portal-register fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
22901
+ const RegisterReadme = "# sqm-portal-register\r\n\r\n\r\n\r\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; validationState?: FormState; enablePasswordValidation?: boolean; loginPath: string; }; refs?: { formRef: any; }; content?: { formData?: any; passwordField?: any; secondaryButton?: any; emailLabel?: string; passwordLabel?: string; submitLabel?: string; pageLabel?: string; confirmPasswordLabel: string; }; }` | `undefined` |\n| `emailLabel` | `email-label` | | `string` | `\"Email\"` |\n| `enablePasswordValidation` | `enable-password-validation` | | `boolean` | `true` |\n| `hideInputs` | `hide-inputs` | | `boolean` | `false` |\n| `loginLabel` | `login-label` | | `string` | `\"Sign in\"` |\n| `loginPath` | `login-path` | | `string` | `\"/login\"` |\n| `nextPage` | `next-page` | | `string` | `\"/\"` |\n| `pageLabel` | `page-label` | | `string` | `\"Register\"` |\n| `passwordLabel` | `password-label` | | `string` | `\"Password\"` |\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";
24557
22902
 
24558
22903
  const EditProfileReadme = "# sqm-portal-profile\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| ------------------------ | --------------------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |\r\n| `countrytext` | `countrytext` | | `string` | `\"Country\"` |\r\n| `demoData` | -- | | `{ states?: { success: boolean; loading: boolean; submitDisabled: boolean; showCountry: boolean; formState: { country: string; firstName: string; lastName: string; errors: any; error: string; }; user: { id: string; accountId: string; firstName: string; lastName: string; email: string; countryCode: string; }; text: { firstnametext: string; lastnametext: string; emailtext: string; countrytext: string; editProfileHeader: string; editProfileSubHeader: string; submitChangeButtonText: string; }; }; }` | `undefined` |\r\n| `editProfileHeader` | `edit-profile-header` | | `string` | `\"Edit your profile\"` |\r\n| `editProfileSubHeader` | `edit-profile-sub-header` | | `string` | `\"Personal Information\"` |\r\n| `emailtext` | `emailtext` | | `string` | `\"Email\"` |\r\n| `firstnametext` | `firstnametext` | | `string` | `\"First Name\"` |\r\n| `lastnametext` | `lastnametext` | | `string` | `\"Last Name\"` |\r\n| `showCountry` | `show-country` | | `boolean` | `true` |\r\n| `submitChangeButtonText` | `submit-change-button-text` | | `string` | `\"Submit Changes\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-profile --> sqm-form-message\r\n style sqm-portal-profile fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
24559
22904
 
@@ -24759,7 +23104,7 @@ const ProgramMenu$1 = /*#__PURE__*/Object.freeze({
24759
23104
  const PoweredByImg_stories = {
24760
23105
  title: "Powered By",
24761
23106
  };
24762
- const Default$b = () => {
23107
+ const Default$a = () => {
24763
23108
  return h(PoweredByImg$1, null);
24764
23109
  };
24765
23110
  const CustomColor = () => {
@@ -24772,17 +23117,17 @@ const CustomWidthAndHeight = () => {
24772
23117
  const PoweredByImg = /*#__PURE__*/Object.freeze({
24773
23118
  __proto__: null,
24774
23119
  'default': PoweredByImg_stories,
24775
- Default: Default$b,
23120
+ Default: Default$a,
24776
23121
  CustomColor: CustomColor,
24777
23122
  CustomWidthAndHeight: CustomWidthAndHeight
24778
23123
  });
24779
23124
 
24780
- const scenario$7 = "Feature: Portal Footer\r\n\r\n Background: A user is viewing the portal\r\n Given a hosted portal\r\n And a user is viewing the portal\r\n And the portal has a footer\r\n\r\n Scenario Outline: FAQ and T&C links/text are configurable and open in a new page when clicked\r\n Given the footer has prop \"terms-link\" with value \"https://example.com/terms\"\r\n And prop \"terms-text\" with value \"Terms and Conditions\"\r\n And prop \"faq-link\" with value \"https://example.com/FAQ\"\r\n And prop \"faq-text\" with value \"Visit FAQ\"\r\n When a user clicks on the \"Visit FAQ\" link\r\n Then they will be redirected to \"https://example.com/FAQ\" in a new page\r\n When they go back to the portal\r\n And click on the \"Terms and Conditions\" link\r\n Then they will be redirected to \"https://example.com/terms\" in a new page\r\n\r\n Scenario Outline: FAQ/T&C Links are not shown if a link is not provided\r\n Given the footer does not have <linkProp>\r\n But it <mayHave> <textProp> with <value>\r\n Then the <link> will not be shown in the footer\r\n Examples:\r\n | linkProp | mayHave | textProp | value | link |\r\n | terms-link | has | termsText | Terms and Conditions | T&C Link |\r\n | faq-link | has | faqText | Visit FAQ | FAQ Link |\r\n | terms-link | doesn't have | | | T&C Link |\r\n | faq-link | doesn't have | | | FAQ Link |\r\n\r\n Scenario Outline: The support email and text is configurable but has a default\r\n Given the footer <mayHave> <emailPropWithValue>\r\n And the footer <mayAlsoHave> <textPropWithValue>\r\n Then the footer's support email text is <renderedEmailText>\r\n And the email address will be a mailto link with <mailtoEmail>\r\n When the user clicks on the email address mailto Link\r\n Then the users preferred email client will open with a draft email to <mailtoEmail>\r\n Examples:\r\n | mayHave | emailPropWithValue | mayAlsoHave | textPropWithValue | mailtoEmail | renderedEmailText |\r\n | has | support@saasquatch.com | has | For support please contact {email} | support@saasquatch.com | For support please contact support@saasquatch.com |\r\n | doesn't have | N/A | doesn't have | N/A | support@example.com | For program support, contact support@example.com |\r\n\r\n Scenario Outline: Powered by SaaSquatch is shown by default\r\n Given the footer <mayHaveProp> \"show-powered-by\" with <value>\r\n Then the powered by SaaSquatch image <mayBeShown>\r\n Examples:\r\n | mayHaveProp | value | mayBeShown |\r\n | has prop | true | is shown |\r\n | has prop | false | isn't shown |\r\n | has prop | test | is shown |\r\n | has prop | | is shown |\r\n | doesn't have prop | | is shown |\r\n\r\n Scenario: Powered By Saasquatch links out to \"https://saasquatch.com\"\r\n Given the footer has the powered by SaaSquatch image\r\n When a user clicks on it\r\n Then they will be redirected to \"https://saasquatch.com\" in a new page";
23125
+ const scenario$5 = "Feature: Portal Footer\r\n\r\n Background: A user is viewing the portal\r\n Given a hosted portal\r\n And a user is viewing the portal\r\n And the portal has a footer\r\n\r\n Scenario Outline: FAQ and T&C links/text are configurable and open in a new page when clicked\r\n Given the footer has prop \"terms-link\" with value \"https://example.com/terms\"\r\n And prop \"terms-text\" with value \"Terms and Conditions\"\r\n And prop \"faq-link\" with value \"https://example.com/FAQ\"\r\n And prop \"faq-text\" with value \"Visit FAQ\"\r\n When a user clicks on the \"Visit FAQ\" link\r\n Then they will be redirected to \"https://example.com/FAQ\" in a new page\r\n When they go back to the portal\r\n And click on the \"Terms and Conditions\" link\r\n Then they will be redirected to \"https://example.com/terms\" in a new page\r\n\r\n Scenario Outline: FAQ/T&C Links are not shown if a link is not provided\r\n Given the footer does not have <linkProp>\r\n But it <mayHave> <textProp> with <value>\r\n Then the <link> will not be shown in the footer\r\n Examples:\r\n | linkProp | mayHave | textProp | value | link |\r\n | terms-link | has | termsText | Terms and Conditions | T&C Link |\r\n | faq-link | has | faqText | Visit FAQ | FAQ Link |\r\n | terms-link | doesn't have | | | T&C Link |\r\n | faq-link | doesn't have | | | FAQ Link |\r\n\r\n Scenario Outline: The support email and text is configurable but has a default\r\n Given the footer <mayHave> <emailPropWithValue>\r\n And the footer <mayAlsoHave> <textPropWithValue>\r\n Then the footer's support email text is <renderedEmailText>\r\n And the email address will be a mailto link with <mailtoEmail>\r\n When the user clicks on the email address mailto Link\r\n Then the users preferred email client will open with a draft email to <mailtoEmail>\r\n Examples:\r\n | mayHave | emailPropWithValue | mayAlsoHave | textPropWithValue | mailtoEmail | renderedEmailText |\r\n | has | support@saasquatch.com | has | For support please contact {email} | support@saasquatch.com | For support please contact support@saasquatch.com |\r\n | doesn't have | N/A | doesn't have | N/A | support@example.com | For program support, contact support@example.com |\r\n\r\n Scenario Outline: Powered by SaaSquatch is shown by default\r\n Given the footer <mayHaveProp> \"show-powered-by\" with <value>\r\n Then the powered by SaaSquatch image <mayBeShown>\r\n Examples:\r\n | mayHaveProp | value | mayBeShown |\r\n | has prop | true | is shown |\r\n | has prop | false | isn't shown |\r\n | has prop | test | is shown |\r\n | has prop | | is shown |\r\n | doesn't have prop | | is shown |\r\n\r\n Scenario: Powered By Saasquatch links out to \"https://saasquatch.com\"\r\n Given the footer has the powered by SaaSquatch image\r\n When a user clicks on it\r\n Then they will be redirected to \"https://saasquatch.com\" in a new page";
24781
23126
 
24782
23127
  const PortalFooter_stories = {
24783
23128
  title: "Portal Footer",
24784
23129
  parameters: {
24785
- scenario: scenario$7,
23130
+ scenario: scenario$5,
24786
23131
  },
24787
23132
  };
24788
23133
  const defaultProps$9 = {
@@ -24811,12 +23156,12 @@ const PortalFooter = /*#__PURE__*/Object.freeze({
24811
23156
  FooterNoPoweredBy: FooterNoPoweredBy
24812
23157
  });
24813
23158
 
24814
- const scenario$8 = "Feature: Hero Unit\r\n\r\n Background: A portal with a hero unit exists\r\n Given a hosted portal\r\n And the portal has hero unit on the login page\r\n And a user is viewing the login page\r\n\r\n Scenario: The hero unit defaults to a single column layout\r\n Given a hero unit does not have a \"columns\" prop\r\n But the following html is wrapped by the hero unit\r\n \"\"\"\r\n <sqm-portal-login></sqm-portal-login>\r\n <div slot=\"secondary-column\">\r\n <h1 style=\"text-align:center\">Get Referring!</h1>\r\n <p style=\"text-align:center\">\r\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do\r\n eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim\r\n ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut\r\n aliquip ex ea commodo consequat. Duis aute irure dolor in\r\n reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla\r\n pariatur.\r\n </p>\r\n </div>\r\n \"\"\"\r\n Then only a single column will be displayed\r\n And within it will be the login component\r\n\r\n Scenario Outline: The hero unit supports single or dual column layouts\r\n Given a hero unit with prop \"columns\" having <columnValue>\r\n And it wraps <html>\r\n Then the hero unit displays <columnValue> columns\r\n Examples:\r\n | columnValue | html |\r\n | 1 | <h1>Column 1!</h1> |\r\n | 2 | <h1>Column 1!</h1><div slot=\"secondary-column\"><h1 style=\"text-align:center\">Column 2!</h1></div> |\r\n\r\n Scenario: HTML to be displayed in the second column comes from the \"secondary-column\" slot\r\n Given a hero unit with \"columns\" \"2\"\r\n And the following html\r\n \"\"\"\r\n <h1>Column 1!</h1>\r\n <div>\r\n <h1 style=\"text-align:center\">Column 2!</h1>\r\n </div>\r\n \"\"\"\r\n When the hero unit is rendered\r\n Then only one column is displayed with content\r\n And column 1 will contain the \"Column 1!\" text\r\n And column 1 will contain the \"Column 2!\" text\r\n When the div for column two is updated to have 'slot=\"secondary-column\"'\r\n Then the two columns are displayed with content\r\n And column 1 will contain the \"Column 1!\" text\r\n And column 2 will contain the \"Column 2!\" text\r\n\r\n Scenario Outline: A background for the hero unit can be set as an image or colour\r\n Given a hero unit with <backgroundPropValue>\r\n Then the background will be <background>\r\n Examples:\r\n | background | background |\r\n | https://images.unsplash.com/photo-1599676821464-3555954838d | image of misty mountains |\r\n | LightSlateGrey | light slate grey |\r\n | #00FF00 | green |\r\n | rgb(128,0,128) | purple |\r\n\r\n Scenario Outline: Wrap Direction can be configured for mobile experiences\r\n Given a hero unit with the following HTML\r\n \"\"\"\r\n <h1>Column 1!</h1>\r\n <div slot=\"secondary-column\">\r\n <h1 style=\"text-align:center\">Column 2!</h1>\r\n </div>\r\n \"\"\"\r\n And prop \"wrap-direction\" has <value>\r\n When the window width is less than 600px\r\n Then the two columns will stack\r\n And <column> will be on top\r\n Examples:\r\n | value | column |\r\n | wrap | 1 |\r\n | wrap-reverse | 2 |\r\n | | 1 |";
23159
+ const scenario$6 = "Feature: Hero Unit\r\n\r\n Background: A portal with a hero unit exists\r\n Given a hosted portal\r\n And the portal has hero unit on the login page\r\n And a user is viewing the login page\r\n\r\n Scenario: The hero unit defaults to a single column layout\r\n Given a hero unit does not have a \"columns\" prop\r\n But the following html is wrapped by the hero unit\r\n \"\"\"\r\n <sqm-portal-login></sqm-portal-login>\r\n <div slot=\"secondary-column\">\r\n <h1 style=\"text-align:center\">Get Referring!</h1>\r\n <p style=\"text-align:center\">\r\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do\r\n eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim\r\n ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut\r\n aliquip ex ea commodo consequat. Duis aute irure dolor in\r\n reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla\r\n pariatur.\r\n </p>\r\n </div>\r\n \"\"\"\r\n Then only a single column will be displayed\r\n And within it will be the login component\r\n\r\n Scenario Outline: The hero unit supports single or dual column layouts\r\n Given a hero unit with prop \"columns\" having <columnValue>\r\n And it wraps <html>\r\n Then the hero unit displays <columnValue> columns\r\n Examples:\r\n | columnValue | html |\r\n | 1 | <h1>Column 1!</h1> |\r\n | 2 | <h1>Column 1!</h1><div slot=\"secondary-column\"><h1 style=\"text-align:center\">Column 2!</h1></div> |\r\n\r\n Scenario: HTML to be displayed in the second column comes from the \"secondary-column\" slot\r\n Given a hero unit with \"columns\" \"2\"\r\n And the following html\r\n \"\"\"\r\n <h1>Column 1!</h1>\r\n <div>\r\n <h1 style=\"text-align:center\">Column 2!</h1>\r\n </div>\r\n \"\"\"\r\n When the hero unit is rendered\r\n Then only one column is displayed with content\r\n And column 1 will contain the \"Column 1!\" text\r\n And column 1 will contain the \"Column 2!\" text\r\n When the div for column two is updated to have 'slot=\"secondary-column\"'\r\n Then the two columns are displayed with content\r\n And column 1 will contain the \"Column 1!\" text\r\n And column 2 will contain the \"Column 2!\" text\r\n\r\n Scenario Outline: A background for the hero unit can be set as an image or colour\r\n Given a hero unit with <backgroundPropValue>\r\n Then the background will be <background>\r\n Examples:\r\n | background | background |\r\n | https://images.unsplash.com/photo-1599676821464-3555954838d | image of misty mountains |\r\n | LightSlateGrey | light slate grey |\r\n | #00FF00 | green |\r\n | rgb(128,0,128) | purple |\r\n\r\n Scenario Outline: Wrap Direction can be configured for mobile experiences\r\n Given a hero unit with the following HTML\r\n \"\"\"\r\n <h1>Column 1!</h1>\r\n <div slot=\"secondary-column\">\r\n <h1 style=\"text-align:center\">Column 2!</h1>\r\n </div>\r\n \"\"\"\r\n And prop \"wrap-direction\" has <value>\r\n When the window width is less than 600px\r\n Then the two columns will stack\r\n And <column> will be on top\r\n Examples:\r\n | value | column |\r\n | wrap | 1 |\r\n | wrap-reverse | 2 |\r\n | | 1 |";
24815
23160
 
24816
23161
  const Hero_stories = {
24817
23162
  title: "Hero Layout",
24818
23163
  parameters: {
24819
- scenario: scenario$8,
23164
+ scenario: scenario$6,
24820
23165
  },
24821
23166
  };
24822
23167
  const LoginOneColumn = () => {
@@ -24993,12 +23338,12 @@ const Hero = /*#__PURE__*/Object.freeze({
24993
23338
  TwoColumnLoginWithImgElement: TwoColumnLoginWithImgElement
24994
23339
  });
24995
23340
 
24996
- const scenario$9 = "@owner:sam\r\n@author:sam\r\n\r\nFeature: Referral Iframe\r\n\r\n Used to provide an external form for submitting referral leads using the current user's referral code\r\n\r\n Background: A user is logged in\r\n Given there is a logged in user\r\n\r\n @motivating\r\n Scenario: Referral code is passed to the iframe as a query parameter\r\n Given the \"iframe-src\" is \"https://example.com\"\r\n And the user has navigated to \"/refer\"\r\n And the user's referral code is \"BOBBYREFER\"\r\n When the iframe content is loaded\r\n Then the iframe url will be \"https://example.com?rsCode=BOBBYREFER\"\r\n\r\n @ui\r\n Scenario Outline: The height and width of the iFrame can be controlled via props\r\n Given the \"iframe-src\" is \"https://example.com\"\r\n And the iframe content is 1000x1000\r\n And the \"iframe-height\" is set to <heightValue>\r\n And the \"iframe-width\" is set to <widthValue>\r\n Then the content of the iframe will be displayed with scrollbars\r\n And the dimension of the iFrame displayed will be 500x500\r\n When the \"iframe-height\" is set to <heightValue>\r\n And the \"iframe-width\" is set to <widthValue>\r\n Then the full content of the iframe will be displayed on the page\r\n And the dimension of the iFrame displayed will be 1000x1000\r\n Examples:\r\n | heightValue | widthValue |\r\n | 500px | 500px |\r\n | 50% | 50% |\r\n\r\n @minutae\r\n Scenario Outline: The iFrame will fail fast if a iFrame source isn't provided\r\n Given \"iframe-src\" <mayBeAnAttribute>\r\n And it <mayHaveValue>\r\n When a user views the referral iFrame component\r\n Then an alert with an error message is displayed in place of the iFrame\r\n And it has a details section\r\n When \"More details\" is clicked\r\n Then the following information will be displayed\r\n | component being used |\r\n | missing attribute(s) |\r\n\r\n Examples:\r\n | mayBeAnAttribute | mayHaveValue |\r\n | is not an attribute | N/A |\r\n | is an attribute | \"\" |\r\n | is an attribute | |";
23341
+ const scenario$7 = "@owner:sam\r\n@author:sam\r\n\r\nFeature: Referral Iframe\r\n\r\n Used to provide an external form for submitting referral leads using the current user's referral code\r\n\r\n Background: A user is logged in\r\n Given there is a logged in user\r\n\r\n @motivating\r\n Scenario: Referral code is passed to the iframe as a query parameter\r\n Given the \"iframe-src\" is \"https://example.com\"\r\n And the user has navigated to \"/refer\"\r\n And the user's referral code is \"BOBBYREFER\"\r\n When the iframe content is loaded\r\n Then the iframe url will be \"https://example.com?rsCode=BOBBYREFER\"\r\n\r\n @ui\r\n Scenario Outline: The height and width of the iFrame can be controlled via props\r\n Given the \"iframe-src\" is \"https://example.com\"\r\n And the iframe content is 1000x1000\r\n And the \"iframe-height\" is set to <heightValue>\r\n And the \"iframe-width\" is set to <widthValue>\r\n Then the content of the iframe will be displayed with scrollbars\r\n And the dimension of the iFrame displayed will be 500x500\r\n When the \"iframe-height\" is set to <heightValue>\r\n And the \"iframe-width\" is set to <widthValue>\r\n Then the full content of the iframe will be displayed on the page\r\n And the dimension of the iFrame displayed will be 1000x1000\r\n Examples:\r\n | heightValue | widthValue |\r\n | 500px | 500px |\r\n | 50% | 50% |\r\n\r\n @minutae\r\n Scenario Outline: The iFrame will fail fast if a iFrame source isn't provided\r\n Given \"iframe-src\" <mayBeAnAttribute>\r\n And it <mayHaveValue>\r\n When a user views the referral iFrame component\r\n Then an alert with an error message is displayed in place of the iFrame\r\n And it has a details section\r\n When \"More details\" is clicked\r\n Then the following information will be displayed\r\n | component being used |\r\n | missing attribute(s) |\r\n\r\n Examples:\r\n | mayBeAnAttribute | mayHaveValue |\r\n | is not an attribute | N/A |\r\n | is an attribute | \"\" |\r\n | is an attribute | |";
24997
23342
 
24998
23343
  const ReferralIframe_stories = {
24999
23344
  title: "Referral Iframe",
25000
23345
  parameters: {
25001
- scenario: scenario$9,
23346
+ scenario: scenario$7,
25002
23347
  },
25003
23348
  };
25004
23349
  const props = {
@@ -25029,12 +23374,12 @@ const ReferralIframe$1 = /*#__PURE__*/Object.freeze({
25029
23374
  ReferralIframeError: ReferralIframeError
25030
23375
  });
25031
23376
 
25032
- const scenario$a = "@owner:sam\r\n@author:sam\r\n\r\nFeature: Name Fields\r\n\r\n Fields to be used to fill the first and last name of a user during registration\r\n\r\n Background:\r\n Given the current page is \"/register\"\r\n\r\n @motivating\r\n Scenario: Both first name and last name are required\r\n Given the email field has valid input\r\n And the password field has valid input\r\n And first name field is empty\r\n And last name field is empty\r\n When register is clicked\r\n Then the name fields will be highlighted in red\r\n And the error messages will say \"Cannot be empty\"\r\n\r\n @motivating\r\n Scenario: First and last name are upserted with the SaaSquatch user\r\n Given all fields have been filled with data\r\n | firstName | lastName | email | password |\r\n | Bob | Testerson | bob@example.com | SecurePassword1 |\r\n When register is clicked\r\n Then the email verification page will be loaded\r\n And the user will be upserted\r\n And the SaaSquatch user will contain data\r\n | firstName | lastName | email |\r\n | Bob | Testerson | bob@example.com |\r\n\r\n";
23377
+ const scenario$8 = "@owner:sam\r\n@author:sam\r\n\r\nFeature: Name Fields\r\n\r\n Fields to be used to fill the first and last name of a user during registration\r\n\r\n Background:\r\n Given the current page is \"/register\"\r\n\r\n @motivating\r\n Scenario: Both first name and last name are required\r\n Given the email field has valid input\r\n And the password field has valid input\r\n And first name field is empty\r\n And last name field is empty\r\n When register is clicked\r\n Then the name fields will be highlighted in red\r\n And the error messages will say \"Cannot be empty\"\r\n\r\n @motivating\r\n Scenario: First and last name are upserted with the SaaSquatch user\r\n Given all fields have been filled with data\r\n | firstName | lastName | email | password |\r\n | Bob | Testerson | bob@example.com | SecurePassword1 |\r\n When register is clicked\r\n Then the email verification page will be loaded\r\n And the user will be upserted\r\n And the SaaSquatch user will contain data\r\n | firstName | lastName | email |\r\n | Bob | Testerson | bob@example.com |\r\n\r\n";
25033
23378
 
25034
23379
  const NameFields_stories = {
25035
23380
  title: "Name Fields",
25036
23381
  parameters: {
25037
- scenario: scenario$a,
23382
+ scenario: scenario$8,
25038
23383
  },
25039
23384
  };
25040
23385
  const props$1 = {
@@ -27652,9 +25997,7 @@ const CucumberAddon = ({ story }, children) => {
27652
25997
  // No scenario or invalid. Ignoring.
27653
25998
  }
27654
25999
  return (h("div", null,
27655
- h("details", null,
27656
- h("summary", null, "Specs"),
27657
- result && h("pre", { innerHTML: result.value })),
26000
+ result && h("pre", { innerHTML: result.value }),
27658
26001
  children));
27659
26002
  };
27660
26003
 
@@ -27691,8 +26034,6 @@ const stories = [
27691
26034
  ReferralTableRewardsCell$1,
27692
26035
  UserName,
27693
26036
  PasswordField,
27694
- TaskCard$1,
27695
- TaskCardProgressBar,
27696
26037
  PortalTemplates,
27697
26038
  ProgramMenu$1,
27698
26039
  PoweredByImg,
@@ -27700,8 +26041,6 @@ const stories = [
27700
26041
  Hero,
27701
26042
  ReferralIframe$1,
27702
26043
  NameFields$1,
27703
- UseRewardExchangeList,
27704
- UseTaskCard,
27705
26044
  ];
27706
26045
  const StencilStorybook = class {
27707
26046
  constructor(hostRef) {
@@ -27741,77 +26080,6 @@ const TableRow = class {
27741
26080
  }
27742
26081
  };
27743
26082
 
27744
- const TaskCard$2 = class {
27745
- constructor(hostRef) {
27746
- registerInstance(this, hostRef);
27747
- this.ignored = true;
27748
- /**
27749
- * @uiName Reward Amount
27750
- */
27751
- this.points = 0;
27752
- /**
27753
- * @uiName Reward Unit
27754
- */
27755
- this.rewardUnit = "Points";
27756
- /**
27757
- * @uiName Title Text
27758
- */
27759
- this.cardTitle = "Title Text";
27760
- /**
27761
- * @uiName Description Text
27762
- */
27763
- this.description = "Description Text";
27764
- /**
27765
- * @uiName Goal Repeatable
27766
- */
27767
- this.repeatable = false;
27768
- /**
27769
- * @uiName Show Progress Bar
27770
- */
27771
- this.showProgressBar = false;
27772
- /**
27773
- * @uiName Goal Progress Source
27774
- */
27775
- this.progressSource = "";
27776
- /**
27777
- * @uiName Goal Completion Number
27778
- */
27779
- this.goal = 1;
27780
- /**
27781
- * @uiName Progress Bar Steps
27782
- */
27783
- this.steps = false;
27784
- /**
27785
- * @uiName Show Goal Expiry
27786
- */
27787
- this.showExpire = false;
27788
- /**
27789
- * @uiName CTA Button Text
27790
- */
27791
- this.buttonText = "Complete Action";
27792
- /**
27793
- * @uiName CTA Button Link
27794
- */
27795
- this.buttonLink = "https://example.com/";
27796
- /**
27797
- * Select what type of stat to display for the goal. Manual paths are also supported.
27798
- *
27799
- * @uiWidget StatTypeSelectWidget
27800
- * @uiName Stat Type
27801
- * @uiOptions {"version": 1.1}
27802
- */
27803
- this.statType = "/programGoals/count/Referral-Started%2Freferrals";
27804
- h$1(this);
27805
- }
27806
- disconnectedCallback() { }
27807
- render() {
27808
- const { props } = j$1() ? useDemoBigStat(this) : useBigStat(this);
27809
- const { value, statvalue } = props;
27810
- console.log(props, j$1());
27811
- return (h(TaskCardView, Object.assign({}, getProps(this), { progress: value, loading: value === undefined })));
27812
- }
27813
- };
27814
-
27815
26083
  const debug$2 = browser("sq:global");
27816
26084
  const textStyles = `
27817
26085
  sqm-text {
@@ -27937,4 +26205,4 @@ function useUserNameDemo(props) {
27937
26205
  }, props.demoData || {}, { arrayMerge: (_, a) => a });
27938
26206
  }
27939
26207
 
27940
- export { DividedLayout as sqm_divided_layout, EditProfile as sqm_edit_profile, FormMessage as sqm_form_message, SqmHookStoryContainer as sqm_hook_story_container, NavigationMenu as sqm_navigation_menu, PortalPasswordField as sqm_password_field, PortalChangePassword as sqm_portal_change_password, PortalFrame as sqm_portal_frame, PortalLogin as sqm_portal_login, PortalRegister as sqm_portal_register, ProgramMenu as sqm_program_menu, SqmReferralIframe as sqm_referral_iframe, ReferralTable as sqm_referral_table, ReferralTableCell as sqm_referral_table_cell, ReferralTableDateCell as sqm_referral_table_date_cell, ReferralTableRewardsCell as sqm_referral_table_rewards_cell, ReferralTableStatusCell as sqm_referral_table_status_cell, ReferralTableUserCell as sqm_referral_table_user_cell, SqmRewardExchangeList as sqm_reward_exchange_list, SqmRouter as sqm_router, ShareButton as sqm_share_button, ShareLink as sqm_share_link, StencilStorybook as sqm_stencilbook, TableCell$1 as sqm_table_cell, TableRow as sqm_table_row, TaskCard$2 as sqm_task_card, Text as sqm_text, UserName$1 as sqm_user_name };
26208
+ export { DividedLayout as sqm_divided_layout, EditProfile as sqm_edit_profile, FormMessage as sqm_form_message, SqmHookStoryContainer as sqm_hook_story_container, NavigationMenu as sqm_navigation_menu, PortalPasswordField as sqm_password_field, PortalChangePassword as sqm_portal_change_password, PortalFrame as sqm_portal_frame, PortalLogin as sqm_portal_login, PortalRegister as sqm_portal_register, ProgramMenu as sqm_program_menu, SqmReferralIframe as sqm_referral_iframe, ReferralTable as sqm_referral_table, ReferralTableCell as sqm_referral_table_cell, ReferralTableDateCell as sqm_referral_table_date_cell, ReferralTableRewardsCell as sqm_referral_table_rewards_cell, ReferralTableStatusCell as sqm_referral_table_status_cell, ReferralTableUserCell as sqm_referral_table_user_cell, SqmRouter as sqm_router, ShareButton as sqm_share_button, ShareLink as sqm_share_link, StencilStorybook as sqm_stencilbook, TableCell$1 as sqm_table_cell, TableRow as sqm_table_row, Text as sqm_text, UserName$1 as sqm_user_name };