@saasquatch/mint-components 1.2.1 → 1.2.2-11

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 (200) hide show
  1. package/CHANGELOG.md +32 -9
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/mint-components.cjs.js +1 -1
  4. package/dist/cjs/{sqm-divided-layout_22.cjs.entry.js → sqm-divided-layout_24.cjs.entry.js} +3846 -88
  5. package/dist/cjs/sqm-hero-view-9a179fd2.js +77 -0
  6. package/dist/cjs/sqm-hero.cjs.entry.js +33 -0
  7. package/dist/cjs/{sqm-navigation-sidebar-item-view-089d0eed.js → sqm-navigation-sidebar-item-view-647457cc.js} +2 -2
  8. package/dist/cjs/sqm-navigation-sidebar-item.cjs.entry.js +3 -3
  9. package/dist/cjs/{sqm-portal-change-password-view-8d932bce.js → sqm-portal-change-password-view-faf6ad39.js} +15 -8
  10. package/dist/cjs/sqm-portal-change-password.cjs.entry.js +59 -4
  11. package/dist/cjs/{sqm-portal-email-verification-view-d6b7b37e.js → sqm-portal-email-verification-view-626fc886.js} +3 -3
  12. package/dist/cjs/sqm-portal-email-verification.cjs.entry.js +14 -2
  13. package/dist/cjs/sqm-portal-footer-view-be3adcf2.js +80 -0
  14. package/dist/cjs/sqm-portal-footer.cjs.entry.js +58 -0
  15. package/dist/cjs/{sqm-portal-profile-view-db5658ba.js → sqm-portal-profile-view-76e3e4bb.js} +5 -5
  16. package/dist/cjs/sqm-portal-profile.cjs.entry.js +25 -7
  17. package/dist/cjs/{sqm-portal-reset-password-view-3980aa63.js → sqm-portal-reset-password-view-b7b52d16.js} +10 -6
  18. package/dist/cjs/sqm-portal-reset-password.cjs.entry.js +42 -4
  19. package/dist/cjs/sqm-portal-verify-email.cjs.entry.js +1 -1
  20. package/dist/collection/assets/PoweredBySaaSquatch.png +0 -0
  21. package/dist/collection/collection-manifest.json +2 -0
  22. package/dist/collection/components/sqm-hero/sqm-hero-view.js +73 -0
  23. package/dist/collection/components/sqm-hero/sqm-hero.js +95 -0
  24. package/dist/collection/components/sqm-navigation-sidebar-item/sqm-navigation-sidebar-item-view.js +2 -2
  25. package/dist/collection/components/sqm-navigation-sidebar-item/sqm-navigation-sidebar-item.js +2 -2
  26. package/dist/collection/components/sqm-portal-change-password/sqm-portal-change-password-view.js +15 -8
  27. package/dist/collection/components/sqm-portal-change-password/sqm-portal-change-password.js +215 -2
  28. package/dist/collection/components/sqm-portal-change-password/usePortalChangePassword.js +11 -1
  29. package/dist/collection/components/sqm-portal-email-verification/sqm-portal-email-verification-view.js +3 -3
  30. package/dist/collection/components/sqm-portal-email-verification/sqm-portal-email-verification.js +55 -3
  31. package/dist/collection/components/sqm-portal-email-verification/usePortalEmailVerification.js +2 -0
  32. package/dist/collection/components/sqm-portal-footer/PoweredByImg.js +11 -0
  33. package/dist/collection/components/sqm-portal-footer/sqm-portal-footer-view.js +65 -0
  34. package/dist/collection/components/sqm-portal-footer/sqm-portal-footer.js +305 -0
  35. package/dist/collection/components/sqm-portal-profile/sqm-portal-profile-view.js +5 -5
  36. package/dist/collection/components/sqm-portal-profile/sqm-portal-profile.js +90 -12
  37. package/dist/collection/components/sqm-portal-profile/usePortalProfile.js +3 -0
  38. package/dist/collection/components/sqm-portal-register/sqm-portal-register-view.js +3 -3
  39. package/dist/collection/components/sqm-portal-register/sqm-portal-register.js +28 -2
  40. package/dist/collection/components/sqm-portal-reset-password/sqm-portal-reset-password-view.js +10 -6
  41. package/dist/collection/components/sqm-portal-reset-password/sqm-portal-reset-password.js +137 -1
  42. package/dist/collection/components/sqm-portal-reset-password/usePortalResetPassword.js +10 -3
  43. package/dist/collection/components/sqm-portal-verify-email/sqm-portal-verify-email.js +1 -1
  44. package/dist/collection/components/sqm-program-menu/sqm-program-menu.js +0 -6
  45. package/dist/collection/components/sqm-stencilbook/sqm-stencilbook.js +10 -0
  46. package/dist/collection/stories/ChangePassword.stories.js +72 -2
  47. package/dist/collection/stories/Hero.stories.js +98 -0
  48. package/dist/collection/stories/NewPortal.stories.js +19 -1
  49. package/dist/collection/stories/PortalEmailVerification.stories.js +8 -0
  50. package/dist/collection/stories/PortalFooter.stories.js +21 -0
  51. package/dist/collection/stories/PortalProfile.stories.js +18 -0
  52. package/dist/collection/stories/PortalRegister.stories.js +7 -3
  53. package/dist/collection/stories/PortalResetPassword.stories.js +42 -0
  54. package/dist/collection/stories/PortalTemplates.stories.js +143 -0
  55. package/dist/collection/stories/PoweredByImg.stories.js +14 -0
  56. package/dist/collection/stories/ProgramMenu.stories.js +39 -0
  57. package/dist/collection/stories/Router.stories.js +42 -6
  58. package/dist/collection/stories/UseBigStat.stories.js +1 -0
  59. package/dist/esm/loader.js +1 -1
  60. package/dist/esm/mint-components.js +1 -1
  61. package/dist/esm/{sqm-divided-layout_22.entry.js → sqm-divided-layout_24.entry.js} +3844 -88
  62. package/dist/esm/sqm-hero-view-5b9bbae2.js +75 -0
  63. package/dist/esm/sqm-hero.entry.js +29 -0
  64. package/dist/esm/{sqm-navigation-sidebar-item-view-a75802bb.js → sqm-navigation-sidebar-item-view-000b0afb.js} +2 -2
  65. package/dist/esm/sqm-navigation-sidebar-item.entry.js +3 -3
  66. package/dist/esm/{sqm-portal-change-password-view-8dbe1ea3.js → sqm-portal-change-password-view-24a4adf7.js} +15 -8
  67. package/dist/esm/sqm-portal-change-password.entry.js +59 -4
  68. package/dist/esm/{sqm-portal-email-verification-view-964d21fe.js → sqm-portal-email-verification-view-03495ffa.js} +3 -3
  69. package/dist/esm/sqm-portal-email-verification.entry.js +14 -2
  70. package/dist/esm/sqm-portal-footer-view-728c427c.js +77 -0
  71. package/dist/esm/sqm-portal-footer.entry.js +54 -0
  72. package/dist/esm/{sqm-portal-profile-view-2801882b.js → sqm-portal-profile-view-72e966e2.js} +5 -5
  73. package/dist/esm/sqm-portal-profile.entry.js +25 -7
  74. package/dist/esm/{sqm-portal-reset-password-view-6c1d23eb.js → sqm-portal-reset-password-view-1441849e.js} +10 -6
  75. package/dist/esm/sqm-portal-reset-password.entry.js +42 -4
  76. package/dist/esm/sqm-portal-verify-email.entry.js +1 -1
  77. package/dist/esm-es5/loader.js +1 -1
  78. package/dist/esm-es5/mint-components.js +1 -1
  79. package/dist/esm-es5/sqm-divided-layout_24.entry.js +1 -0
  80. package/dist/esm-es5/sqm-hero-view-5b9bbae2.js +1 -0
  81. package/dist/esm-es5/sqm-hero.entry.js +1 -0
  82. package/dist/esm-es5/sqm-navigation-sidebar-item-view-000b0afb.js +1 -0
  83. package/dist/esm-es5/sqm-navigation-sidebar-item.entry.js +1 -1
  84. package/dist/esm-es5/sqm-portal-change-password-view-24a4adf7.js +1 -0
  85. package/dist/esm-es5/sqm-portal-change-password.entry.js +1 -1
  86. package/dist/esm-es5/sqm-portal-email-verification-view-03495ffa.js +1 -0
  87. package/dist/esm-es5/sqm-portal-email-verification.entry.js +1 -1
  88. package/dist/esm-es5/sqm-portal-footer-view-728c427c.js +1 -0
  89. package/dist/esm-es5/sqm-portal-footer.entry.js +1 -0
  90. package/dist/esm-es5/{sqm-portal-profile-view-2801882b.js → sqm-portal-profile-view-72e966e2.js} +1 -1
  91. package/dist/esm-es5/sqm-portal-profile.entry.js +1 -1
  92. package/dist/esm-es5/sqm-portal-reset-password-view-1441849e.js +1 -0
  93. package/dist/esm-es5/sqm-portal-reset-password.entry.js +1 -1
  94. package/dist/esm-es5/sqm-portal-verify-email.entry.js +1 -1
  95. package/dist/mint-components/mint-components.esm.js +1 -1
  96. package/dist/mint-components/p-0747c54d.system.js +1 -1
  97. package/dist/mint-components/{p-1fd262be.system.js → p-1adc0488.system.js} +1 -1
  98. package/dist/mint-components/p-20fa60f6.system.entry.js +1 -0
  99. package/dist/mint-components/p-2addaaff.system.entry.js +1 -0
  100. package/dist/mint-components/p-3a9d8fd9.js +1 -0
  101. package/dist/mint-components/p-3adace56.entry.js +1 -0
  102. package/dist/mint-components/p-51db87f4.js +1 -0
  103. package/dist/mint-components/p-5442b8ad.js +1 -0
  104. package/dist/mint-components/p-609d6b60.system.entry.js +1 -0
  105. package/dist/mint-components/p-634d5bcc.entry.js +222 -0
  106. package/dist/mint-components/p-659298ed.system.entry.js +1 -0
  107. package/dist/mint-components/p-69e263e0.entry.js +1 -0
  108. package/dist/mint-components/p-6dfcecca.entry.js +33 -0
  109. package/dist/mint-components/p-70dd58a4.system.js +1 -0
  110. package/dist/mint-components/p-759095b4.entry.js +1 -0
  111. package/dist/mint-components/p-79e5f02c.entry.js +1 -0
  112. package/dist/mint-components/p-875d1fdc.system.entry.js +1 -0
  113. package/dist/mint-components/p-8a9ebc3f.system.entry.js +1 -0
  114. package/dist/mint-components/p-8dc6f789.js +1 -0
  115. package/dist/mint-components/p-a741d57c.system.js +1 -0
  116. package/dist/mint-components/p-b7159234.system.js +1 -0
  117. package/dist/mint-components/p-c196dc61.js +1 -0
  118. package/dist/mint-components/{p-eb944c84.system.js → p-c366f729.system.js} +1 -1
  119. package/dist/mint-components/p-c5c2d834.system.js +1 -0
  120. package/dist/mint-components/p-d24845cd.js +1 -0
  121. package/dist/mint-components/{p-5d46f5cc.entry.js → p-d37839f3.entry.js} +1 -1
  122. package/dist/mint-components/p-d441144e.js +1 -0
  123. package/dist/mint-components/{p-0396ec57.system.entry.js → p-d65a1cfd.system.entry.js} +1 -1
  124. package/dist/mint-components/p-d95dc3f1.system.js +1 -0
  125. package/dist/mint-components/p-dfcc1950.entry.js +1 -0
  126. package/dist/mint-components/p-e48cd2c5.system.entry.js +1 -0
  127. package/dist/mint-components/p-e6ce03b2.system.entry.js +1 -0
  128. package/dist/mint-components/p-fa4d1c58.entry.js +1 -0
  129. package/dist/types/components/sqm-hero/sqm-hero-view.d.ts +13 -0
  130. package/dist/types/components/sqm-hero/sqm-hero.d.ts +16 -0
  131. package/dist/types/components/sqm-portal-change-password/sqm-portal-change-password-view.d.ts +10 -0
  132. package/dist/types/components/sqm-portal-change-password/sqm-portal-change-password.d.ts +32 -0
  133. package/dist/types/components/sqm-portal-change-password/usePortalChangePassword.d.ts +11 -1
  134. package/dist/types/components/sqm-portal-email-verification/sqm-portal-email-verification-view.d.ts +2 -0
  135. package/dist/types/components/sqm-portal-email-verification/sqm-portal-email-verification.d.ts +9 -1
  136. package/dist/types/components/sqm-portal-email-verification/usePortalEmailVerification.d.ts +2 -0
  137. package/dist/types/components/sqm-portal-footer/PoweredByImg.d.ts +7 -0
  138. package/dist/types/components/sqm-portal-footer/sqm-portal-footer-view.d.ts +16 -0
  139. package/dist/types/components/sqm-portal-footer/sqm-portal-footer.d.ts +57 -0
  140. package/dist/types/components/sqm-portal-profile/sqm-portal-profile-view.d.ts +3 -0
  141. package/dist/types/components/sqm-portal-profile/sqm-portal-profile.d.ts +17 -5
  142. package/dist/types/components/sqm-portal-profile/usePortalProfile.d.ts +3 -0
  143. package/dist/types/components/sqm-portal-register/sqm-portal-register-view.d.ts +1 -0
  144. package/dist/types/components/sqm-portal-register/sqm-portal-register.d.ts +4 -0
  145. package/dist/types/components/sqm-portal-reset-password/sqm-portal-reset-password-view.d.ts +7 -0
  146. package/dist/types/components/sqm-portal-reset-password/sqm-portal-reset-password.d.ts +24 -0
  147. package/dist/types/components/sqm-portal-reset-password/usePortalResetPassword.d.ts +2 -4
  148. package/dist/types/components.d.ts +314 -12
  149. package/dist/types/saasquatch.d.ts +1 -1
  150. package/dist/types/stories/Hero.stories.d.ts +11 -0
  151. package/dist/types/stories/PortalFooter.stories.d.ts +10 -0
  152. package/dist/types/stories/PortalTemplates.stories.d.ts +88 -0
  153. package/dist/types/stories/PoweredByImg.stories.d.ts +7 -0
  154. package/dist/types/stories/ProgramMenu.stories.d.ts +28 -0
  155. package/dist/types/stories/Router.stories.d.ts +24 -3
  156. package/dist/types/stories/UseBigStat.stories.d.ts +6 -0
  157. package/dist/types/stories/templates.d.ts +4 -0
  158. package/grapesjs/grapesjs.js +1 -1
  159. package/package.json +2 -1
  160. package/dist/cjs/sqm-portal-login-view-20530cd5.js +0 -53
  161. package/dist/cjs/sqm-portal-login.cjs.entry.js +0 -119
  162. package/dist/cjs/sqm-program-menu.cjs.entry.js +0 -57
  163. package/dist/collection/components/sqm-program-menu/sqm-program-menu.css +0 -25
  164. package/dist/esm/sqm-portal-login-view-7e56a959.js +0 -51
  165. package/dist/esm/sqm-portal-login.entry.js +0 -115
  166. package/dist/esm/sqm-program-menu.entry.js +0 -53
  167. package/dist/esm-es5/sqm-divided-layout_22.entry.js +0 -1
  168. package/dist/esm-es5/sqm-navigation-sidebar-item-view-a75802bb.js +0 -1
  169. package/dist/esm-es5/sqm-portal-change-password-view-8dbe1ea3.js +0 -1
  170. package/dist/esm-es5/sqm-portal-email-verification-view-964d21fe.js +0 -1
  171. package/dist/esm-es5/sqm-portal-login-view-7e56a959.js +0 -1
  172. package/dist/esm-es5/sqm-portal-login.entry.js +0 -1
  173. package/dist/esm-es5/sqm-portal-reset-password-view-6c1d23eb.js +0 -1
  174. package/dist/esm-es5/sqm-program-menu.entry.js +0 -1
  175. package/dist/mint-components/p-18142b08.system.entry.js +0 -1
  176. package/dist/mint-components/p-2019910e.system.entry.js +0 -1
  177. package/dist/mint-components/p-3f40e878.js +0 -1
  178. package/dist/mint-components/p-42ca40ee.system.entry.js +0 -1
  179. package/dist/mint-components/p-4a4f97e3.system.js +0 -1
  180. package/dist/mint-components/p-4e298f2f.entry.js +0 -1
  181. package/dist/mint-components/p-4f7e972b.entry.js +0 -222
  182. package/dist/mint-components/p-511ee8d5.js +0 -1
  183. package/dist/mint-components/p-5c2d4489.entry.js +0 -33
  184. package/dist/mint-components/p-6dcb4084.js +0 -1
  185. package/dist/mint-components/p-6edab0e1.js +0 -1
  186. package/dist/mint-components/p-7b5f70cf.system.entry.js +0 -1
  187. package/dist/mint-components/p-7cf1b6bc.system.js +0 -1
  188. package/dist/mint-components/p-8a647b42.entry.js +0 -1
  189. package/dist/mint-components/p-8a9e36b0.entry.js +0 -1
  190. package/dist/mint-components/p-9ec68457.system.js +0 -1
  191. package/dist/mint-components/p-a19cb5dc.entry.js +0 -1
  192. package/dist/mint-components/p-ac1285f3.js +0 -1
  193. package/dist/mint-components/p-aca6d934.system.entry.js +0 -1
  194. package/dist/mint-components/p-ae8f2817.entry.js +0 -1
  195. package/dist/mint-components/p-bcd56164.system.entry.js +0 -1
  196. package/dist/mint-components/p-cccfe42a.system.js +0 -1
  197. package/dist/mint-components/p-d2dfc374.js +0 -1
  198. package/dist/mint-components/p-db23f907.system.entry.js +0 -1
  199. package/dist/mint-components/p-e896917e.entry.js +0 -1
  200. package/dist/mint-components/p-f305ea91.system.entry.js +0 -1
@@ -18,18 +18,19 @@ const useDemoBigStat = require('./useDemoBigStat-91a13c03.js');
18
18
  const sqmShareLinkView = require('./sqm-share-link-view-b51bbce5.js');
19
19
  const ShadowViewAddon = require('./ShadowViewAddon-bb9682fe.js');
20
20
  const sqmNavigationSidebarView = require('./sqm-navigation-sidebar-view-3fd81c5f.js');
21
- const sqmNavigationSidebarItemView = require('./sqm-navigation-sidebar-item-view-089d0eed.js');
21
+ const sqmNavigationSidebarItemView = require('./sqm-navigation-sidebar-item-view-647457cc.js');
22
22
  const sqmPortalSectionView = require('./sqm-portal-section-view-3b008930.js');
23
23
  const sqmPortalContainerView = require('./sqm-portal-container-view-d144735a.js');
24
24
  const sqmStatContainerView = require('./sqm-stat-container-view-ee7b00ff.js');
25
- const sqmPortalProfileView = require('./sqm-portal-profile-view-db5658ba.js');
26
- const sqmPortalChangePasswordView = require('./sqm-portal-change-password-view-8d932bce.js');
27
- const sqmPortalLoginView = require('./sqm-portal-login-view-20530cd5.js');
25
+ const sqmPortalProfileView = require('./sqm-portal-profile-view-76e3e4bb.js');
26
+ const sqmPortalChangePasswordView = require('./sqm-portal-change-password-view-faf6ad39.js');
28
27
  const sqmPortalForgotPasswordView = require('./sqm-portal-forgot-password-view-13a5c2f3.js');
29
- const sqmPortalEmailVerificationView = require('./sqm-portal-email-verification-view-d6b7b37e.js');
30
- const sqmPortalResetPasswordView = require('./sqm-portal-reset-password-view-3980aa63.js');
28
+ const sqmPortalEmailVerificationView = require('./sqm-portal-email-verification-view-626fc886.js');
29
+ const sqmPortalResetPasswordView = require('./sqm-portal-reset-password-view-b7b52d16.js');
31
30
  const sqmPortalVerifyEmailView = require('./sqm-portal-verify-email-view-8d9f3f5f.js');
32
31
  const sqmAssetCardView = require('./sqm-asset-card-view-07f86880.js');
32
+ const sqmPortalFooterView = require('./sqm-portal-footer-view-be3adcf2.js');
33
+ const sqmHeroView = require('./sqm-hero-view-9a179fd2.js');
33
34
 
34
35
  function DividedLayoutView(props, children) {
35
36
  const getBorder = () => {
@@ -1164,6 +1165,155 @@ function usePortalFrameDemo(footerContent, headerContent, props) {
1164
1165
  }
1165
1166
 
1166
1167
  const style$3 = {
1168
+ Wrapper: mixins.AuthWrapper,
1169
+ Column: mixins.AuthColumn,
1170
+ ForgotButtonContainer: {
1171
+ display: "inline",
1172
+ cursor: "pointer",
1173
+ "font-size": "13px",
1174
+ "font-weight": "600",
1175
+ color: "#AAAAAA",
1176
+ margin: "0",
1177
+ },
1178
+ ButtonsContainer: mixins.AuthButtonsContainer,
1179
+ };
1180
+ const vanillaStyle$1 = `
1181
+ :host {
1182
+ margin: 0 auto;
1183
+ width: 100%;
1184
+ display: block;
1185
+ }
1186
+ :host([hidden]): {
1187
+ display: none;
1188
+ }
1189
+ `;
1190
+ jssPresetDefault_esm.jss.setup(jssPresetDefault_esm.create());
1191
+ const sheet$3 = jssPresetDefault_esm.jss.createStyleSheet(style$3);
1192
+ const styleString$3 = sheet$3.toString();
1193
+ function PortalLoginView(props) {
1194
+ const { states, callbacks, content } = props;
1195
+ return (index.h("div", { class: sheet$3.classes.Wrapper },
1196
+ index.h("style", { type: "text/css" },
1197
+ vanillaStyle$1,
1198
+ styleString$3),
1199
+ index.h(sqmTextSpanView.TextSpanView, { type: "h3" }, content.pageLabel),
1200
+ index.h("sl-form", { class: sheet$3.classes.Column, "onSl-submit": callbacks.submit },
1201
+ props.states.error && (index.h("sqm-form-message", { type: "error", exportparts: "erroralert-icon" },
1202
+ index.h("div", { part: "erroralert-text" }, props.states.error))),
1203
+ index.h("sl-input", { exportparts: "label: input-label", type: "email", name: "/email", label: content.emailLabel || "Email", disabled: states.loading, required: true }),
1204
+ index.h("div", null,
1205
+ index.h("sl-input", { exportparts: "label: input-label", type: "password", name: "/password", label: content.passwordLabel || "Password", disabled: states.loading, required: true }),
1206
+ index.h("div", { class: sheet$3.classes.ForgotButtonContainer }, content.forgotPasswordButton)),
1207
+ index.h("div", { class: sheet$3.classes.ButtonsContainer },
1208
+ index.h("sl-button", { submit: true, loading: states.loading, exportparts: "base: primarybutton-base", type: "primary" }, content.submitLabel || "Login"),
1209
+ content.secondaryButton))));
1210
+ }
1211
+
1212
+ function usePortalLogin({ nextPage }) {
1213
+ var _a, _b, _c, _d;
1214
+ const [request, { loading, errors, data }] = index_module.qe();
1215
+ const [error, setError] = _extends.useState("");
1216
+ const urlParams = new URLSearchParams(window.location.search);
1217
+ const nextPageOverride = urlParams.get("nextPage");
1218
+ const submit = async (event) => {
1219
+ setError("");
1220
+ let formData = event.detail.formData;
1221
+ formData === null || formData === void 0 ? void 0 : formData.forEach((value, key) => {
1222
+ jsonpointer.jsonpointer.set(formData, key, value);
1223
+ });
1224
+ const variables = { email: formData.email, password: formData.password };
1225
+ await request(variables);
1226
+ };
1227
+ _extends.useEffect(() => {
1228
+ var _a;
1229
+ if ((_a = data === null || data === void 0 ? void 0 : data.authenticateManagedIdentityWithEmailAndPassword) === null || _a === void 0 ? void 0 : _a.token) {
1230
+ urlParams.delete("nextPage");
1231
+ index_module.rn.push({
1232
+ pathname: nextPageOverride || nextPage,
1233
+ search: urlParams.toString() && "?" + urlParams.toString(),
1234
+ });
1235
+ }
1236
+ }, [(_a = data === null || data === void 0 ? void 0 : data.authenticateManagedIdentityWithEmailAndPassword) === null || _a === void 0 ? void 0 : _a.token]);
1237
+ _extends.useEffect(() => {
1238
+ var _a;
1239
+ if ((errors === null || errors === void 0 ? void 0 : errors.message) || ((_a = errors === null || errors === void 0 ? void 0 : errors.response) === null || _a === void 0 ? void 0 : _a["error"])) {
1240
+ setError("Network request failed.");
1241
+ }
1242
+ }, [errors]);
1243
+ const errorMessage = ((_d = (_c = (_b = errors === null || errors === void 0 ? void 0 : errors.response) === null || _b === void 0 ? void 0 : _b.errors) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.message) || error;
1244
+ return {
1245
+ states: {
1246
+ loading,
1247
+ error: errorMessage,
1248
+ },
1249
+ callbacks: {
1250
+ submit,
1251
+ },
1252
+ };
1253
+ }
1254
+
1255
+ const PortalLogin = class {
1256
+ constructor(hostRef) {
1257
+ index.registerInstance(this, hostRef);
1258
+ this.ignored = true;
1259
+ /**
1260
+ * @uiName Page navigated to after sign-in
1261
+ */
1262
+ this.nextPage = "/";
1263
+ /**
1264
+ * @uiName Label for email field
1265
+ */
1266
+ this.emailLabel = "Email";
1267
+ /**
1268
+ * @uiName Label for password field
1269
+ */
1270
+ this.passwordLabel = "Password";
1271
+ /**
1272
+ * @uiName Label for submit button
1273
+ */
1274
+ this.submitLabel = "Sign In";
1275
+ /**
1276
+ * @uiName Label for forgotten password button
1277
+ */
1278
+ this.forgotPasswordLabel = "Forgot Password?";
1279
+ /**
1280
+ * @uiName Label for register navigation button
1281
+ */
1282
+ this.registerLabel = "Register";
1283
+ /**
1284
+ * @uiName Heading label
1285
+ */
1286
+ this.pageLabel = "Sign in to your account";
1287
+ _extends.h$1(this);
1288
+ }
1289
+ disconnectedCallback() { }
1290
+ render() {
1291
+ const { states, callbacks } = index_module.j()
1292
+ ? useLoginDemo(this)
1293
+ : usePortalLogin(this);
1294
+ const content = {
1295
+ forgotPasswordButton: (index.h("slot", { name: "forgotPassword" }, index.h("a", { onClick: () => index_module.rn.push("/forgotPassword") }, this.forgotPasswordLabel))),
1296
+ secondaryButton: (index.h("slot", { name: "secondaryButton" }, index.h("sl-button", { type: "text", disabled: states.loading, onClick: () => index_module.rn.push("/register") }, this.registerLabel))),
1297
+ emailLabel: this.emailLabel,
1298
+ passwordLabel: this.passwordLabel,
1299
+ submitLabel: this.submitLabel,
1300
+ pageLabel: this.pageLabel,
1301
+ };
1302
+ return (index.h(PortalLoginView, { states: states, callbacks: callbacks, content: content }));
1303
+ }
1304
+ };
1305
+ function useLoginDemo(props) {
1306
+ return cjs.cjs({
1307
+ states: { error: "", loading: false },
1308
+ callbacks: {
1309
+ submit: async (_event) => {
1310
+ console.log("submit");
1311
+ },
1312
+ },
1313
+ }, props.demoData || {}, { arrayMerge: (_, a) => a });
1314
+ }
1315
+
1316
+ const style$4 = {
1167
1317
  Wrapper: { ...mixins.AuthWrapper, "max-width": "600px" },
1168
1318
  Column: mixins.AuthColumn,
1169
1319
  HostBlock: mixins.HostBlock,
@@ -1174,7 +1324,7 @@ const style$3 = {
1174
1324
  ButtonsContainer: mixins.AuthButtonsContainer,
1175
1325
  ErrorStyle: mixins.ErrorStyles,
1176
1326
  };
1177
- const vanillaStyle$1 = `
1327
+ const vanillaStyle$2 = `
1178
1328
  sqm-portal-register {
1179
1329
  margin: 0 auto;
1180
1330
  width: 100%;
@@ -1192,22 +1342,23 @@ sqm-portal-register {
1192
1342
  }
1193
1343
  `;
1194
1344
  jssPresetDefault_esm.jss.setup(jssPresetDefault_esm.create());
1195
- const sheet$3 = jssPresetDefault_esm.jss.createStyleSheet(style$3);
1196
- const styleString$3 = sheet$3.toString();
1345
+ const sheet$4 = jssPresetDefault_esm.jss.createStyleSheet(style$4);
1346
+ const styleString$4 = sheet$4.toString();
1197
1347
  function PortalRegisterView(props) {
1198
1348
  var _a, _b, _c, _d, _e, _f, _g, _h;
1199
1349
  const { states, refs, callbacks, content } = props;
1200
1350
  if (states.error) {
1201
1351
  window.scrollTo({ top: 0, left: 0, behavior: "smooth" });
1202
1352
  }
1203
- return (index.h("div", { class: sheet$3.classes.Wrapper },
1353
+ return (index.h("div", { class: sheet$4.classes.Wrapper },
1204
1354
  index.h("style", { type: "text/css" },
1205
- vanillaStyle$1,
1206
- styleString$3),
1355
+ vanillaStyle$2,
1356
+ styleString$4),
1207
1357
  index.h(sqmTextSpanView.TextSpanView, { type: "h3" }, content.pageLabel),
1208
- index.h("sl-form", { class: sheet$3.classes.Column, "onSl-submit": callbacks.submit, ref: (el) => (refs.formRef.current = el), novalidate: true },
1358
+ index.h("sl-form", { class: sheet$4.classes.Column, "onSl-submit": callbacks.submit, ref: (el) => (refs.formRef.current = el), novalidate: true },
1209
1359
  states.error && (index.h("sqm-form-message", { type: "error", exportparts: "erroralert-icon" },
1210
1360
  index.h("div", { part: "erroralert-text" }, props.states.error))),
1361
+ content.formData,
1211
1362
  !states.hideInputs && (index.h("sl-input", Object.assign({ exportparts: "label: input-label", type: "email", name: "/email", label: content.emailLabel || "Email", disabled: states.loading, required: true, validationError: ({ value }) => {
1212
1363
  if (!value) {
1213
1364
  return "Cannot be empty";
@@ -1217,21 +1368,20 @@ function PortalRegisterView(props) {
1217
1368
  return "Must be a valid email address";
1218
1369
  }
1219
1370
  } }, (((_b = (_a = states.validationState) === null || _a === void 0 ? void 0 : _a.validationErrors) === null || _b === void 0 ? void 0 : _b.email) ? {
1220
- class: sheet$3.classes.ErrorStyle,
1371
+ class: sheet$4.classes.ErrorStyle,
1221
1372
  helpText: ((_d = (_c = states.validationState) === null || _c === void 0 ? void 0 : _c.validationErrors) === null || _d === void 0 ? void 0 : _d.email) ||
1222
1373
  "Cannot be empty",
1223
1374
  }
1224
1375
  : [])))),
1225
- !states.hideInputs && (index.h("sqm-password-field", { "enable-validation": states.enablePasswordValidation })),
1376
+ !states.hideInputs && (index.h("sqm-password-field", { fieldLabel: content.passwordLabel, "enable-validation": states.enablePasswordValidation })),
1226
1377
  content.passwordField,
1227
- !states.hideInputs && states.confirmPassword && (index.h("sl-input", Object.assign({ exportparts: "label: input-label", type: "password", name: "/confirmPassword", label: "Confirm Password", disabled: states.loading, required: true }, (((_f = (_e = states.validationState) === null || _e === void 0 ? void 0 : _e.validationErrors) === null || _f === void 0 ? void 0 : _f.confirmPassword) ? {
1228
- class: sheet$3.classes.ErrorStyle,
1378
+ !states.hideInputs && states.confirmPassword && (index.h("sl-input", Object.assign({ exportparts: "label: input-label", type: "password", name: "/confirmPassword", label: content.confirmPasswordLabel, disabled: states.loading, required: true }, (((_f = (_e = states.validationState) === null || _e === void 0 ? void 0 : _e.validationErrors) === null || _f === void 0 ? void 0 : _f.confirmPassword) ? {
1379
+ class: sheet$4.classes.ErrorStyle,
1229
1380
  helpText: ((_h = (_g = states.validationState) === null || _g === void 0 ? void 0 : _g.validationErrors) === null || _h === void 0 ? void 0 : _h.confirmPassword) ||
1230
1381
  "Cannot be empty",
1231
1382
  }
1232
1383
  : [])))),
1233
- content.formData,
1234
- index.h("div", { class: sheet$3.classes.ButtonsContainer },
1384
+ index.h("div", { class: sheet$4.classes.ButtonsContainer },
1235
1385
  index.h("sl-button", { submit: true, loading: states.loading, exportparts: "base: primarybutton-base", type: "primary" }, content.submitLabel || "Register"),
1236
1386
  content.secondaryButton))));
1237
1387
  }
@@ -5238,6 +5388,10 @@ const PortalRegister = class {
5238
5388
  * @uiName Label for login navigation button
5239
5389
  */
5240
5390
  this.loginLabel = "Sign in";
5391
+ /**
5392
+ * @uiName Label for confirm password field
5393
+ */
5394
+ this.confirmPasswordLabel = "Confirm Password";
5241
5395
  /**
5242
5396
  * @uiName Show confirm password field
5243
5397
  */
@@ -5268,6 +5422,7 @@ const PortalRegister = class {
5268
5422
  passwordLabel: this.passwordLabel,
5269
5423
  submitLabel: this.submitLabel,
5270
5424
  pageLabel: this.pageLabel,
5425
+ confirmPasswordLabel: this.confirmPasswordLabel,
5271
5426
  };
5272
5427
  return (index.h(PortalRegisterView, { states: states, callbacks: callbacks, content: content, refs: refs }));
5273
5428
  }
@@ -5278,7 +5433,7 @@ function useRegisterDemo(props) {
5278
5433
  error: "",
5279
5434
  loading: false,
5280
5435
  confirmPassword: true,
5281
- hideInputs: false,
5436
+ hideInputs: props.hideInputs || false,
5282
5437
  customPasswordField: false,
5283
5438
  },
5284
5439
  callbacks: {
@@ -5293,7 +5448,51 @@ function useRegisterDemo(props) {
5293
5448
  }, props.demoData || {}, { arrayMerge: (_, a) => a });
5294
5449
  }
5295
5450
 
5296
- const style$4 = {
5451
+ const debug = _extends.browser('sq:useProgramMenu');
5452
+ const UPDATE_PROGRAM_EVENT = 'sq:update-program-id';
5453
+ function useProgramMenu(props) {
5454
+ const programId = index_module.M();
5455
+ const host = index_module.P();
5456
+ debug({ programId, props });
5457
+ const ref = _extends.useRef();
5458
+ const [, rerender] = index_module.Ze();
5459
+ _extends.useEffect(() => {
5460
+ var _a;
5461
+ (_a = ref.current) === null || _a === void 0 ? void 0 : _a.addEventListener('sl-select', (e) => {
5462
+ const programId = e.detail.item.value;
5463
+ // setProgramId(programId);
5464
+ host.dispatchEvent(new CustomEvent(UPDATE_PROGRAM_EVENT, {
5465
+ detail: programId,
5466
+ bubbles: true,
5467
+ composed: true,
5468
+ }));
5469
+ });
5470
+ }, [ref.current]);
5471
+ return {
5472
+ data: {
5473
+ programId,
5474
+ },
5475
+ callbacks: {
5476
+ rerender,
5477
+ },
5478
+ ref,
5479
+ };
5480
+ }
5481
+
5482
+ const ProgramMenu = class {
5483
+ constructor(hostRef) {
5484
+ index.registerInstance(this, hostRef);
5485
+ this.ignored = true;
5486
+ _extends.h$1(this);
5487
+ }
5488
+ disconnectedCallback() { }
5489
+ render() {
5490
+ const { data, ref } = useProgramMenu(utils.getProps(this));
5491
+ return (index.h(index.Host, { style: { display: "contents" } }, index.h("sl-select", { style: { paddingBottom: "var(--sl-spacing-large)" }, value: data.programId, ref: (r) => (ref.current = r) }, index.h("slot", null))));
5492
+ }
5493
+ };
5494
+
5495
+ const style$5 = {
5297
5496
  THead: {
5298
5497
  padding: "var(--sl-spacing-small) var(--sl-spacing-medium) var(--sl-spacing-small) 0",
5299
5498
  "text-align": "left",
@@ -5316,29 +5515,29 @@ const style$4 = {
5316
5515
  },
5317
5516
  };
5318
5517
  jssPresetDefault_esm.jss.setup(jssPresetDefault_esm.create());
5319
- const sheet$4 = jssPresetDefault_esm.jss.createStyleSheet(style$4);
5320
- const styleString$4 = sheet$4.toString();
5518
+ const sheet$5 = jssPresetDefault_esm.jss.createStyleSheet(style$5);
5519
+ const styleString$5 = sheet$5.toString();
5321
5520
  function ReferralTableView(props) {
5322
5521
  var _a, _b;
5323
5522
  const { states, data, callbacks, elements } = props;
5324
5523
  const { columns, rows } = elements;
5325
5524
  return (index.h("div", null,
5326
- index.h("style", { type: "text/css" }, styleString$4),
5327
- index.h("table", { class: sheet$4.classes.Table },
5525
+ index.h("style", { type: "text/css" }, styleString$5),
5526
+ index.h("table", { class: sheet$5.classes.Table },
5328
5527
  data.textOverrides.showLabels && (index.h("thead", null,
5329
- index.h("tr", null, columns === null || columns === void 0 ? void 0 : columns.map((column) => (index.h("th", { class: sheet$4.classes.THead },
5528
+ index.h("tr", null, columns === null || columns === void 0 ? void 0 : columns.map((column) => (index.h("th", { class: sheet$5.classes.THead },
5330
5529
  index.h(sqmTextSpanView.TextSpanView, { type: "h3" }, column))))))),
5331
5530
  index.h("tbody", null, states.loading
5332
5531
  ? elements.loadingElement
5333
5532
  : !((_a = elements === null || elements === void 0 ? void 0 : elements.rows) === null || _a === void 0 ? void 0 : _a.length) && !((_b = data.referralData) === null || _b === void 0 ? void 0 : _b.length)
5334
5533
  ? elements.emptyElement
5335
- : rows === null || rows === void 0 ? void 0 : rows.map((row, i) => (index.h("tr", { class: sheet$4.classes.TRow, style: {
5534
+ : rows === null || rows === void 0 ? void 0 : rows.map((row, i) => (index.h("tr", { class: sheet$5.classes.TRow, style: {
5336
5535
  borderTop: `${!data.textOverrides.showLabels && i === 0
5337
5536
  ? "none"
5338
5537
  : ""}`,
5339
- }, part: "table-row" }, row.map((cell) => (index.h("td", { class: sheet$4.classes.TCell },
5538
+ }, part: "table-row" }, row.map((cell) => (index.h("td", { class: sheet$5.classes.TCell },
5340
5539
  index.h(sqmTextSpanView.TextSpanView, { type: "p" }, cell))))))))),
5341
- index.h("div", { class: sheet$4.classes.ButtonContainer, part: "sqm-referral-table-button-wrapper" },
5540
+ index.h("div", { class: sheet$5.classes.ButtonContainer, part: "sqm-referral-table-button-wrapper" },
5342
5541
  index.h("sl-button", { size: "small", disabled: !states.hasPrev, loading: states.loading, onClick: callbacks.prevPage, exportparts: "base: defaultbutton-base" }, data.textOverrides.prevLabel),
5343
5542
  index.h("sl-button", { size: "small", loading: states.loading, disabled: !states.hasNext, onClick: callbacks.nextPage, exportparts: "base: defaultbutton-base" }, data.textOverrides.moreLabel))));
5344
5543
  }
@@ -14206,7 +14405,7 @@ const ReferralTableUserCell = class {
14206
14405
  }
14207
14406
  };
14208
14407
 
14209
- const debug = _extends.browser("sq:useRouter");
14408
+ const debug$1 = _extends.browser("sq:useRouter");
14210
14409
  function matchPath(pattern, page) {
14211
14410
  if (!pattern)
14212
14411
  return;
@@ -14234,7 +14433,7 @@ function useRouter() {
14234
14433
  _extends.useEffect(() => {
14235
14434
  var _a, _b;
14236
14435
  if (!container || !slot) {
14237
- debug("DOM not ready for navigation rendering on:", page);
14436
+ debug$1("DOM not ready for navigation rendering on:", page);
14238
14437
  return;
14239
14438
  }
14240
14439
  // <template>
@@ -14249,7 +14448,7 @@ function useRouter() {
14249
14448
  });
14250
14449
  //@ts-ignore - can't access template attributes directly
14251
14450
  const templatePath = (_b = (_a = template === null || template === void 0 ? void 0 : template.attributes) === null || _a === void 0 ? void 0 : _a.path) === null || _b === void 0 ? void 0 : _b.nodeValue;
14252
- debug({
14451
+ debug$1({
14253
14452
  containerDatasetPage: container.dataset.page,
14254
14453
  templatePath,
14255
14454
  page,
@@ -14257,15 +14456,15 @@ function useRouter() {
14257
14456
  // if no routes found, and the old route doesn't match the new route
14258
14457
  if (!template) {
14259
14458
  // No matching page, display nothing
14260
- debug("No matching page found for ", page, ", so render nothing");
14459
+ debug$1("No matching page found for ", page, ", so render nothing");
14261
14460
  container.innerHTML = "";
14262
14461
  container.dataset.page = page;
14263
14462
  return;
14264
14463
  }
14265
- debug("Page updated to ", page, template);
14464
+ debug$1("Page updated to ", page, template);
14266
14465
  // if pathToRegexp results truthy or page is an exact match
14267
14466
  if (!!matchPath(templatePath, container.dataset.page)) {
14268
- debug("don't rerender");
14467
+ debug$1("don't rerender");
14269
14468
  // Same page, do not re-render
14270
14469
  // Reduces dom mutations, speeds up page speed
14271
14470
  }
@@ -14298,19 +14497,19 @@ const SqmRouter = class {
14298
14497
  };
14299
14498
  SqmRouter.style = sqmRouterCss;
14300
14499
 
14301
- const style$5 = {
14500
+ const style$6 = {
14302
14501
  HostBlock: mixins.HostBlock,
14303
14502
  buttonStyle: {
14304
14503
  display: "block",
14305
14504
  },
14306
14505
  };
14307
14506
  jssPresetDefault_esm.jss.setup(jssPresetDefault_esm.create());
14308
- const sheet$5 = jssPresetDefault_esm.jss.createStyleSheet(style$5);
14309
- const styleString$5 = sheet$5.toString();
14507
+ const sheet$6 = jssPresetDefault_esm.jss.createStyleSheet(style$6);
14508
+ const styleString$6 = sheet$6.toString();
14310
14509
  function ShareButtonView(props, children) {
14311
14510
  return props.hide ? (index.h(index.Host, { style: { display: "none" } })) : (index.h("div", null,
14312
- index.h("style", { type: "text/css" }, styleString$5),
14313
- index.h("sl-button", { class: sheet$5.classes.buttonStyle, loading: props.loading, disabled: props.disabled, pill: props.pill, size: props.size, type: props.type, onClick: props.onClick, exportparts: `base: ${props.type}sharebutton-base` },
14511
+ index.h("style", { type: "text/css" }, styleString$6),
14512
+ index.h("sl-button", { class: sheet$6.classes.buttonStyle, loading: props.loading, disabled: props.disabled, pill: props.pill, size: props.size, type: props.type, onClick: props.onClick, exportparts: `base: ${props.type}sharebutton-base` },
14314
14513
  !props.hideicon && (index.h("sl-icon", { slot: props.iconslot, name: props.icon ? props.icon : props.medium })),
14315
14514
  !props.hidetext && children)));
14316
14515
  }
@@ -16222,6 +16421,25 @@ const Leaderboard = /*#__PURE__*/Object.freeze({
16222
16421
  Five: Five
16223
16422
  });
16224
16423
 
16424
+ const HookStoryAddon = ({ story }, children) => {
16425
+ var _a;
16426
+ const hookStory = (_a = story.story.parameters) === null || _a === void 0 ? void 0 : _a.hookStory;
16427
+ if (!hookStory) {
16428
+ return children;
16429
+ }
16430
+ const randomInt = Math.round(Math.random() * 100000);
16431
+ const RandomTagName = "sqm-hook-story-container-" + randomInt;
16432
+ return (index.h(RandomTagName, null,
16433
+ index.h("sqm-hook-story-container", { hookStory: hookStory })));
16434
+ };
16435
+ function createHookStory(hookStory) {
16436
+ const story = () => index.h("div", null);
16437
+ story.parameters = {
16438
+ hookStory,
16439
+ };
16440
+ return story;
16441
+ }
16442
+
16225
16443
  const Router_stories = {
16226
16444
  title: "Tests/Router",
16227
16445
  };
@@ -16288,7 +16506,7 @@ const routes = `
16288
16506
  </pre>
16289
16507
  </sqm-route>
16290
16508
  `;
16291
- const TemplateNavigation = () => {
16509
+ const TemplateNavigation = createHookStory(() => {
16292
16510
  return (index.h("div", null,
16293
16511
  index.h("button", { onClick: () => index_module.rn.push("/") }, "/"),
16294
16512
  index.h("button", { onClick: () => index_module.rn.push("/foo") }, "/foo"),
@@ -16301,8 +16519,8 @@ const TemplateNavigation = () => {
16301
16519
  index.h("button", { onClick: () => index_module.rn.forward() }, "Forward"),
16302
16520
  index.h("hr", null),
16303
16521
  index.h("sqm-router", { innerHTML: templates })));
16304
- };
16305
- const RouteNavigation = () => {
16522
+ });
16523
+ const RouteNavigation = createHookStory(() => {
16306
16524
  return (index.h("div", null,
16307
16525
  index.h("button", { onClick: () => index_module.rn.push("/") }, "/"),
16308
16526
  index.h("button", { onClick: () => index_module.rn.push("/foo") }, "/foo"),
@@ -16315,8 +16533,8 @@ const RouteNavigation = () => {
16315
16533
  index.h("button", { onClick: () => index_module.rn.forward() }, "Forward"),
16316
16534
  index.h("hr", null),
16317
16535
  index.h("sqm-router", { innerHTML: routes })));
16318
- };
16319
- const Styling = () => {
16536
+ });
16537
+ const Styling = createHookStory(() => {
16320
16538
  return (index.h("div", null,
16321
16539
  index.h("button", { onClick: () => index_module.rn.push("/") }, "/"),
16322
16540
  index.h("button", { onClick: () => index_module.rn.push("/foo") }, "/foo"),
@@ -16327,14 +16545,49 @@ const Styling = () => {
16327
16545
  <div>Column 1</div>
16328
16546
  <div>Column 2 </div>
16329
16547
  </template>` }))));
16330
- };
16548
+ });
16549
+ function useTemplate(templateString) {
16550
+ const [editedTemplate, setEditedTemplate] = _extends.useState(templateString);
16551
+ const [previewTemplate, setPreviewTemplate] = _extends.useState(templateString);
16552
+ function setPath(e) {
16553
+ //@ts-ignore
16554
+ index_module.rn.push(e.target.value);
16555
+ }
16556
+ return {
16557
+ states: { previewTemplate, editedTemplate },
16558
+ callbacks: { setEditedTemplate, setPreviewTemplate, setPath },
16559
+ };
16560
+ }
16561
+ const defaultRouter = `
16562
+ <sqm-router>
16563
+ <template path="/">
16564
+ <div>hello world</div>
16565
+ </template>
16566
+ </sqm-router>
16567
+ `;
16568
+ function TemplateView(props) {
16569
+ const { states, callbacks } = props;
16570
+ return [
16571
+ index.h("textarea", { style: { width: "100%", height: "300px" }, onChange: (e) => callbacks.setEditedTemplate(e.target.value) }, states.editedTemplate),
16572
+ index.h("button", { onClick: () => callbacks.setPreviewTemplate(states.editedTemplate) }, "Update Preview"),
16573
+ index.h("label", null,
16574
+ "Current path:",
16575
+ index.h("input", { onInput: callbacks.setPath, value: "/" })),
16576
+ index.h("div", { innerHTML: states.previewTemplate }),
16577
+ ];
16578
+ }
16579
+ const RouterPlayground = createHookStory(() => {
16580
+ const { states, callbacks } = useTemplate(defaultRouter);
16581
+ return index.h(TemplateView, { states: states, callbacks: callbacks });
16582
+ });
16331
16583
 
16332
16584
  const Router = /*#__PURE__*/Object.freeze({
16333
16585
  __proto__: null,
16334
16586
  'default': Router_stories,
16335
16587
  TemplateNavigation: TemplateNavigation,
16336
16588
  RouteNavigation: RouteNavigation,
16337
- Styling: Styling
16589
+ Styling: Styling,
16590
+ RouterPlayground: RouterPlayground
16338
16591
  });
16339
16592
 
16340
16593
  const LeaderboardRank_stories = {
@@ -16547,25 +16800,6 @@ const EditProfile$1 = /*#__PURE__*/Object.freeze({
16547
16800
  FullStackFrameWithMenu: FullStackFrameWithMenu
16548
16801
  });
16549
16802
 
16550
- const HookStoryAddon = ({ story }, children) => {
16551
- var _a;
16552
- const hookStory = (_a = story.story.parameters) === null || _a === void 0 ? void 0 : _a.hookStory;
16553
- if (!hookStory) {
16554
- return children;
16555
- }
16556
- const randomInt = Math.round(Math.random() * 100000);
16557
- const RandomTagName = "sqm-hook-story-container-" + randomInt;
16558
- return (index.h(RandomTagName, null,
16559
- index.h("sqm-hook-story-container", { hookStory: hookStory })));
16560
- };
16561
- function createHookStory(hookStory) {
16562
- const story = () => index.h("div", null);
16563
- story.parameters = {
16564
- hookStory,
16565
- };
16566
- return story;
16567
- }
16568
-
16569
16803
  const UseShareLink_stories = {
16570
16804
  title: "Hooks / useShareLink",
16571
16805
  };
@@ -16755,6 +16989,7 @@ const GlobalRewardsCountPctDiscountPending = createHookStory(() => View("/reward
16755
16989
  const RewardsCountByUnit = createHookStory(() => View("/rewardsCountFiltered/CREDIT/COFFEE", "/(rewardsCountFiltered)/:statType([INTEGRATION|PCT_DISCOUNT|CREDIT]*)?/:unit((?!global)(?!PENDING)(?!CANCELLED)(?!EXPIRED)(?!REDEEMED)(?!AVAILABLE)[a-zA-Z0-9%]+)?/:status([PENDING|CANCELLED|EXPIRED|REDEEMED|AVAILABLE]*)?/:global?"));
16756
16990
  const GlobalRewardsCountByUnit = createHookStory(() => View("/rewardsCountFiltered/CREDIT/COFFEE/global", "/(rewardsCountFiltered)/:statType([INTEGRATION|PCT_DISCOUNT|CREDIT]*)?/:unit((?!global)(?!PENDING)(?!CANCELLED)(?!EXPIRED)(?!REDEEMED)(?!AVAILABLE)[a-zA-Z0-9%]+)?/:status([PENDING|CANCELLED|EXPIRED|REDEEMED|AVAILABLE]*)?/:global?"));
16757
16991
  const GlobalPendingRewardsCount = createHookStory(() => View("/rewardsCountFiltered/CREDIT/COFFEE/PENDING/global", "/(rewardsCountFiltered)/:statType([INTEGRATION|PCT_DISCOUNT|CREDIT]*)?/:unit((?!global)(?!PENDING)(?!CANCELLED)(?!EXPIRED)(?!REDEEMED)(?!AVAILABLE)[a-zA-Z0-9%]+)?/:status([PENDING|CANCELLED|EXPIRED|REDEEMED|AVAILABLE]*)?/:global?"));
16992
+ const RewardsAvailableCount = createHookStory(() => View("/rewardsCountFiltered/AVAILABLE", "/(rewardsCountFiltered)/:statType([INTEGRATION|PCT_DISCOUNT|CREDIT]*)?/:unit((?!global)(?!PENDING)(?!CANCELLED)(?!EXPIRED)(?!REDEEMED)(?!AVAILABLE)[a-zA-Z0-9%]+)?/:status([PENDING|CANCELLED|EXPIRED|REDEEMED|AVAILABLE]*)?/:global?"));
16758
16993
  const GlobalRewardsCountByIntegration = createHookStory(() => View("/integrationRewardsCountFiltered/AVAILABLE/global", "/(integrationRewardsCountFiltered)/:format([PENDING|CANCELLED|EXPIRED|REDEEMED|AVAILABLE]*)?/:global?"));
16759
16994
  const GlobalRewardsCountByPendingIntegration = createHookStory(() => View("/integrationRewardsCountFiltered/PENDING/global", "/(integrationRewardsCountFiltered)/:format([PENDING|CANCELLED|EXPIRED|REDEEMED|AVAILABLE]*)?/:global?"));
16760
16995
  const RewardsMonth = createHookStory(() => View("/rewardsMonth", "/(rewardsMonth)/:global?"));
@@ -16791,6 +17026,7 @@ const UseBigStat = /*#__PURE__*/Object.freeze({
16791
17026
  RewardsCountByUnit: RewardsCountByUnit,
16792
17027
  GlobalRewardsCountByUnit: GlobalRewardsCountByUnit,
16793
17028
  GlobalPendingRewardsCount: GlobalPendingRewardsCount,
17029
+ RewardsAvailableCount: RewardsAvailableCount,
16794
17030
  GlobalRewardsCountByIntegration: GlobalRewardsCountByIntegration,
16795
17031
  GlobalRewardsCountByPendingIntegration: GlobalRewardsCountByPendingIntegration,
16796
17032
  RewardsMonth: RewardsMonth,
@@ -16965,15 +17201,15 @@ const FormMessage$1 = /*#__PURE__*/Object.freeze({
16965
17201
  const NewPortal_stories = {
16966
17202
  title: "New Portal",
16967
17203
  };
16968
- const style$6 = {
17204
+ const style$7 = {
16969
17205
  HeaderSubtitleBold: {
16970
17206
  "font-weight": 500,
16971
17207
  "text-decoration": "underline",
16972
17208
  },
16973
17209
  };
16974
17210
  jssPresetDefault_esm.jss.setup(jssPresetDefault_esm.create());
16975
- const sheet$6 = jssPresetDefault_esm.jss.createStyleSheet(style$6);
16976
- const styleString$6 = sheet$6.toString();
17211
+ const sheet$7 = jssPresetDefault_esm.jss.createStyleSheet(style$7);
17212
+ const styleString$7 = sheet$7.toString();
16977
17213
  const barProps = {
16978
17214
  data: {
16979
17215
  programs: [
@@ -17068,7 +17304,7 @@ const Dashboard = () => {
17068
17304
  hide: false,
17069
17305
  };
17070
17306
  return (index.h("sqm-divided-layout", { direction: "row" },
17071
- index.h("style", { type: "text/css" }, styleString$6),
17307
+ index.h("style", { type: "text/css" }, styleString$7),
17072
17308
  index.h(Sidebar, null),
17073
17309
  index.h("sqm-divided-layout", { direction: "column" },
17074
17310
  index.h(sqmPortalContainerView.PortalContainerView, Object.assign({}, { direction: "column", padding: "xxx-large", gap: "xxx-large" }),
@@ -17126,7 +17362,7 @@ const Dashboard = () => {
17126
17362
  };
17127
17363
  const EditProfile$2 = () => {
17128
17364
  return (index.h("sqm-divided-layout", { direction: "row" },
17129
- index.h("style", { type: "text/css" }, styleString$6),
17365
+ index.h("style", { type: "text/css" }, styleString$7),
17130
17366
  index.h(Sidebar, null),
17131
17367
  index.h("sqm-divided-layout", { direction: "column" },
17132
17368
  index.h(sqmPortalProfileView.PortalProfileView, Object.assign({}, {
@@ -17148,6 +17384,9 @@ const EditProfile$2 = () => {
17148
17384
  lastnametext: "Last Name",
17149
17385
  emailtext: "Email",
17150
17386
  countrytext: "Country",
17387
+ editProfileHeader: "Edit your profile",
17388
+ editProfileSubHeader: "Personal Information",
17389
+ submitChangeButtonText: "Submit Changes",
17151
17390
  },
17152
17391
  formState: {
17153
17392
  country: "Canada",
@@ -17163,7 +17402,22 @@ const EditProfile$2 = () => {
17163
17402
  },
17164
17403
  })),
17165
17404
  index.h(sqmPortalChangePasswordView.PortalChangePasswordView, Object.assign({}, {
17166
- states: { open: true, error: "", loading: false, success: false },
17405
+ states: {
17406
+ open: true,
17407
+ error: "",
17408
+ loading: false,
17409
+ success: false,
17410
+ content: {
17411
+ modalChangePasswordHeader: "Change Password",
17412
+ cancelText: "Cancel",
17413
+ changePasswordButtonText: "Change Password",
17414
+ passwordFieldLabel: "Password",
17415
+ confirmPasswordFieldLabel: "Confirm new password",
17416
+ successMessage: "Your password has been updated.",
17417
+ portalChangePasswordHeader: "Password",
17418
+ portalChangePasswordButtonText: "Change your password...",
17419
+ },
17420
+ },
17167
17421
  callbacks: {
17168
17422
  setOpen: () => console.log("open"),
17169
17423
  submit: () => console.log("submit"),
@@ -17172,7 +17426,7 @@ const EditProfile$2 = () => {
17172
17426
  };
17173
17427
  const Commissions = () => {
17174
17428
  return (index.h("sqm-divided-layout", { direction: "row" },
17175
- index.h("style", { type: "text/css" }, styleString$6),
17429
+ index.h("style", { type: "text/css" }, styleString$7),
17176
17430
  index.h(Sidebar, null),
17177
17431
  index.h("sqm-divided-layout", { direction: "column" },
17178
17432
  index.h(sqmPortalContainerView.PortalContainerView, Object.assign({}, { direction: "column", padding: "xxx-large", gap: "xxx-large" }),
@@ -17185,7 +17439,7 @@ const Commissions = () => {
17185
17439
  index.h("p", null,
17186
17440
  "for the",
17187
17441
  " ",
17188
- index.h("span", { class: sheet$6.classes.HeaderSubtitleBold }, "Partner Program #1"),
17442
+ index.h("span", { class: sheet$7.classes.HeaderSubtitleBold }, "Partner Program #1"),
17189
17443
  " ",
17190
17444
  "program"))),
17191
17445
  })),
@@ -17197,7 +17451,7 @@ const Commissions = () => {
17197
17451
  };
17198
17452
  const Activity = () => {
17199
17453
  return (index.h("sqm-divided-layout", { direction: "row" },
17200
- index.h("style", { type: "text/css" }, styleString$6),
17454
+ index.h("style", { type: "text/css" }, styleString$7),
17201
17455
  index.h(Sidebar, null),
17202
17456
  index.h("sqm-divided-layout", { direction: "column" },
17203
17457
  index.h(sqmPortalContainerView.PortalContainerView, Object.assign({}, { direction: "column", padding: "xxx-large", gap: "xxx-large" }),
@@ -17210,7 +17464,7 @@ const Activity = () => {
17210
17464
  index.h("p", null,
17211
17465
  "for the",
17212
17466
  " ",
17213
- index.h("span", { class: sheet$6.classes.HeaderSubtitleBold }, "Partner Program #1"),
17467
+ index.h("span", { class: sheet$7.classes.HeaderSubtitleBold }, "Partner Program #1"),
17214
17468
  " ",
17215
17469
  "program"))),
17216
17470
  })),
@@ -17365,11 +17619,11 @@ const loadingProps = {
17365
17619
  },
17366
17620
  content: { pageLabel: "Sign in to your account" }
17367
17621
  };
17368
- const Default$2 = () => index.h(sqmPortalLoginView.PortalLoginView, Object.assign({}, defaultProps$2));
17369
- const LoginWithError = () => index.h(sqmPortalLoginView.PortalLoginView, Object.assign({}, errorProps));
17370
- const LoginLoading = () => index.h(sqmPortalLoginView.PortalLoginView, Object.assign({}, loadingProps));
17622
+ const Default$2 = () => index.h(PortalLoginView, Object.assign({}, defaultProps$2));
17623
+ const LoginWithError = () => index.h(PortalLoginView, Object.assign({}, errorProps));
17624
+ const LoginLoading = () => index.h(PortalLoginView, Object.assign({}, loadingProps));
17371
17625
 
17372
- const PortalLogin = /*#__PURE__*/Object.freeze({
17626
+ const PortalLogin$1 = /*#__PURE__*/Object.freeze({
17373
17627
  __proto__: null,
17374
17628
  'default': PortalLogin_stories,
17375
17629
  Default: Default$2,
@@ -17394,7 +17648,7 @@ const defaultProps$3 = {
17394
17648
  refs: {
17395
17649
  formRef: {},
17396
17650
  },
17397
- content: { pageLabel: "Register" },
17651
+ content: { pageLabel: "Register", confirmPasswordLabel: "Confirm Password" },
17398
17652
  };
17399
17653
  const errorProps$1 = {
17400
17654
  states: {
@@ -17410,7 +17664,10 @@ const errorProps$1 = {
17410
17664
  refs: {
17411
17665
  formRef: {},
17412
17666
  },
17413
- content: { pageLabel: "Register" },
17667
+ content: {
17668
+ pageLabel: "Register",
17669
+ confirmPasswordLabel: "Confirm Password",
17670
+ },
17414
17671
  };
17415
17672
  const loadingProps$1 = {
17416
17673
  states: {
@@ -17426,7 +17683,7 @@ const loadingProps$1 = {
17426
17683
  refs: {
17427
17684
  formRef: {},
17428
17685
  },
17429
- content: { pageLabel: "Register" },
17686
+ content: { pageLabel: "Register", confirmPasswordLabel: "Confirm Password" },
17430
17687
  };
17431
17688
  const slottedProps = {
17432
17689
  states: {
@@ -17444,6 +17701,7 @@ const slottedProps = {
17444
17701
  },
17445
17702
  content: {
17446
17703
  pageLabel: "Register",
17704
+ confirmPasswordLabel: "Confirm Password",
17447
17705
  formData: (index.h("div", null,
17448
17706
  index.h("sl-input", { style: { marginBottom: "var(--sl-spacing-x-large)" }, exportparts: "label: input-label", label: "Slotted Input", required: true }),
17449
17707
  index.h("sl-input", { exportparts: "label: input-label", label: "Slotted Input 2", required: true }))),
@@ -17572,6 +17830,8 @@ const defaultProps$5 = {
17572
17830
  content: {
17573
17831
  email: "email@example.com",
17574
17832
  verifyMessage: "A verification email was sent to {email}. Please verify your email to continue to the portal.",
17833
+ emailVerificationHeader: "Verify your email",
17834
+ resendEmailButtonText: "Re-send Email",
17575
17835
  },
17576
17836
  };
17577
17837
  const errorProps$3 = {
@@ -17586,6 +17846,8 @@ const errorProps$3 = {
17586
17846
  content: {
17587
17847
  email: "email@example.com",
17588
17848
  verifyMessage: "A verification email was sent to {email}. Please verify your email to continue to the portal.",
17849
+ emailVerificationHeader: "Verify your email",
17850
+ resendEmailButtonText: "Re-send Email",
17589
17851
  },
17590
17852
  };
17591
17853
  const loadingProps$3 = {
@@ -17600,6 +17862,8 @@ const loadingProps$3 = {
17600
17862
  content: {
17601
17863
  email: "email@example.com",
17602
17864
  verifyMessage: "A verification email was sent to {email}. Please verify your email to continue to the portal.",
17865
+ emailVerificationHeader: "Verify your email",
17866
+ resendEmailButtonText: "Re-send Email",
17603
17867
  },
17604
17868
  };
17605
17869
  const successProps$1 = {
@@ -17614,6 +17878,8 @@ const successProps$1 = {
17614
17878
  content: {
17615
17879
  email: "email@example.com",
17616
17880
  verifyMessage: "A verification email was sent to {email}. Please verify your email to continue to the portal.",
17881
+ emailVerificationHeader: "Verify your email",
17882
+ resendEmailButtonText: "Re-send Email",
17617
17883
  },
17618
17884
  };
17619
17885
  const Default$5 = () => index.h(sqmPortalEmailVerificationView.PortalEmailVerificationView, Object.assign({}, defaultProps$5));
@@ -17646,6 +17912,13 @@ const defaultProps$6 = {
17646
17912
  confirmPassword: true,
17647
17913
  oobCodeValidating: false,
17648
17914
  oobCodeValid: true,
17915
+ content: {
17916
+ passwordResetHeader: "Password reset",
17917
+ resetPasswordHeader: "Reset your password",
17918
+ continueButtonText: "Continue",
17919
+ resetPasswordButtonText: "Reset Password",
17920
+ confirmPasswordFieldLabel: "Confirm Password",
17921
+ },
17649
17922
  },
17650
17923
  callbacks: {
17651
17924
  submit: async (e) => await e,
@@ -17661,6 +17934,13 @@ const defaultPropsNoConfirm = {
17661
17934
  confirmPassword: false,
17662
17935
  oobCodeValidating: false,
17663
17936
  oobCodeValid: true,
17937
+ content: {
17938
+ passwordResetHeader: "Password reset",
17939
+ resetPasswordHeader: "Reset your password",
17940
+ continueButtonText: "Continue",
17941
+ resetPasswordButtonText: "Reset Password",
17942
+ confirmPasswordFieldLabel: "Confirm Password",
17943
+ },
17664
17944
  },
17665
17945
  callbacks: {
17666
17946
  submit: async (e) => await e,
@@ -17676,6 +17956,13 @@ const errorProps$4 = {
17676
17956
  confirmPassword: true,
17677
17957
  oobCodeValidating: false,
17678
17958
  oobCodeValid: true,
17959
+ content: {
17960
+ passwordResetHeader: "Password reset",
17961
+ resetPasswordHeader: "Reset your password",
17962
+ continueButtonText: "Continue",
17963
+ resetPasswordButtonText: "Reset Password",
17964
+ confirmPasswordFieldLabel: "Confirm Password",
17965
+ },
17679
17966
  },
17680
17967
  callbacks: {
17681
17968
  submit: async (e) => await e,
@@ -17691,6 +17978,13 @@ const loadingProps$4 = {
17691
17978
  confirmPassword: true,
17692
17979
  oobCodeValidating: false,
17693
17980
  oobCodeValid: true,
17981
+ content: {
17982
+ passwordResetHeader: "Password reset",
17983
+ resetPasswordHeader: "Reset your password",
17984
+ continueButtonText: "Continue",
17985
+ resetPasswordButtonText: "Reset Password",
17986
+ confirmPasswordFieldLabel: "Confirm Password",
17987
+ },
17694
17988
  },
17695
17989
  callbacks: {
17696
17990
  submit: async (e) => await e,
@@ -17706,6 +18000,13 @@ const successProps$2 = {
17706
18000
  confirmPassword: true,
17707
18001
  oobCodeValidating: false,
17708
18002
  oobCodeValid: true,
18003
+ content: {
18004
+ passwordResetHeader: "Password reset",
18005
+ resetPasswordHeader: "Reset your password",
18006
+ continueButtonText: "Continue",
18007
+ resetPasswordButtonText: "Reset Password",
18008
+ confirmPasswordFieldLabel: "Confirm Password",
18009
+ },
17709
18010
  },
17710
18011
  callbacks: {
17711
18012
  submit: async (e) => await e,
@@ -17721,6 +18022,13 @@ const validatingCodeProps = {
17721
18022
  confirmPassword: true,
17722
18023
  oobCodeValidating: false,
17723
18024
  oobCodeValid: false,
18025
+ content: {
18026
+ passwordResetHeader: "Password reset",
18027
+ resetPasswordHeader: "Reset your password",
18028
+ continueButtonText: "Continue",
18029
+ resetPasswordButtonText: "Reset Password",
18030
+ confirmPasswordFieldLabel: "Confirm Password",
18031
+ },
17724
18032
  },
17725
18033
  callbacks: {
17726
18034
  submit: async (e) => await e,
@@ -17927,14 +18235,44 @@ const ChangePassword_stories = {
17927
18235
  },
17928
18236
  };
17929
18237
  const defaultProps$7 = {
17930
- states: { open: false, loading: false, success: false, error: "" },
18238
+ states: {
18239
+ open: false,
18240
+ loading: false,
18241
+ success: false,
18242
+ error: "",
18243
+ content: {
18244
+ modalChangePasswordHeader: "Change Password",
18245
+ cancelText: "Cancel",
18246
+ changePasswordButtonText: "Change Password",
18247
+ passwordFieldLabel: "Password",
18248
+ confirmPasswordFieldLabel: "Confirm new password",
18249
+ successMessage: "Your password has been updated.",
18250
+ portalChangePasswordHeader: "Password",
18251
+ portalChangePasswordButtonText: "Change your password...",
18252
+ },
18253
+ },
17931
18254
  callbacks: {
17932
18255
  setOpen: (o) => console.log(o),
17933
18256
  submit: (e) => console.log("Submit", e),
17934
18257
  },
17935
18258
  };
17936
18259
  const openProps = {
17937
- states: { open: true, loading: false, success: false, error: "" },
18260
+ states: {
18261
+ open: true,
18262
+ loading: false,
18263
+ success: false,
18264
+ error: "",
18265
+ content: {
18266
+ modalChangePasswordHeader: "Change Password",
18267
+ cancelText: "Cancel",
18268
+ changePasswordButtonText: "Change Password",
18269
+ passwordFieldLabel: "Password",
18270
+ confirmPasswordFieldLabel: "Confirm new password",
18271
+ successMessage: "Your password has been updated.",
18272
+ portalChangePasswordHeader: "Password",
18273
+ portalChangePasswordButtonText: "Change your password...",
18274
+ },
18275
+ },
17938
18276
  callbacks: {
17939
18277
  setOpen: (o) => console.log(o),
17940
18278
  submit: (e) => console.log("Submit", e),
@@ -17946,6 +18284,16 @@ const errorProps$6 = {
17946
18284
  loading: false,
17947
18285
  success: false,
17948
18286
  error: "Network error. Please try again.",
18287
+ content: {
18288
+ modalChangePasswordHeader: "Change Password",
18289
+ cancelText: "Cancel",
18290
+ changePasswordButtonText: "Change Password",
18291
+ passwordFieldLabel: "Password",
18292
+ confirmPasswordFieldLabel: "Confirm new password",
18293
+ successMessage: "Your password has been updated.",
18294
+ portalChangePasswordHeader: "Password",
18295
+ portalChangePasswordButtonText: "Change your password...",
18296
+ },
17949
18297
  },
17950
18298
  callbacks: {
17951
18299
  setOpen: (o) => console.log(o),
@@ -17958,6 +18306,16 @@ const passwordErrorProps = {
17958
18306
  loading: false,
17959
18307
  success: false,
17960
18308
  error: "Passwords do not match.",
18309
+ content: {
18310
+ modalChangePasswordHeader: "Change Password",
18311
+ cancelText: "Cancel",
18312
+ changePasswordButtonText: "Change Password",
18313
+ passwordFieldLabel: "Password",
18314
+ confirmPasswordFieldLabel: "Confirm new password",
18315
+ successMessage: "Your password has been updated.",
18316
+ portalChangePasswordHeader: "Password",
18317
+ portalChangePasswordButtonText: "Change your password...",
18318
+ },
17961
18319
  },
17962
18320
  callbacks: {
17963
18321
  setOpen: (o) => console.log(o),
@@ -17970,6 +18328,16 @@ const loadingProps$5 = {
17970
18328
  loading: true,
17971
18329
  success: false,
17972
18330
  error: "",
18331
+ content: {
18332
+ modalChangePasswordHeader: "Change Password",
18333
+ cancelText: "Cancel",
18334
+ changePasswordButtonText: "Change Password",
18335
+ passwordFieldLabel: "Password",
18336
+ confirmPasswordFieldLabel: "Confirm new password",
18337
+ successMessage: "Your password has been updated.",
18338
+ portalChangePasswordHeader: "Password",
18339
+ portalChangePasswordButtonText: "Change your password...",
18340
+ },
17973
18341
  },
17974
18342
  callbacks: {
17975
18343
  setOpen: (o) => console.log(o),
@@ -17982,6 +18350,16 @@ const successProps$3 = {
17982
18350
  loading: false,
17983
18351
  success: true,
17984
18352
  error: "",
18353
+ content: {
18354
+ modalChangePasswordHeader: "Change Password",
18355
+ cancelText: "Cancel",
18356
+ changePasswordButtonText: "Change Password",
18357
+ passwordFieldLabel: "Password",
18358
+ confirmPasswordFieldLabel: "Confirm new password",
18359
+ successMessage: "Your password has been updated.",
18360
+ portalChangePasswordHeader: "Password",
18361
+ portalChangePasswordButtonText: "Change your password...",
18362
+ },
17985
18363
  },
17986
18364
  callbacks: {
17987
18365
  setOpen: (o) => console.log(o),
@@ -18032,6 +18410,9 @@ const defaultProps$8 = {
18032
18410
  lastnametext: "Last Name",
18033
18411
  emailtext: "Email",
18034
18412
  countrytext: "Country",
18413
+ editProfileHeader: "Edit your profile",
18414
+ editProfileSubHeader: "Personal Information",
18415
+ submitChangeButtonText: "Submit Changes",
18035
18416
  },
18036
18417
  formState: {
18037
18418
  country: "Canada",
@@ -18065,6 +18446,9 @@ const noCountry = {
18065
18446
  lastnametext: "Last Name",
18066
18447
  emailtext: "Email",
18067
18448
  countrytext: "Country",
18449
+ editProfileHeader: "Edit your profile",
18450
+ editProfileSubHeader: "Personal Information",
18451
+ submitChangeButtonText: "Submit Changes",
18068
18452
  },
18069
18453
  formState: {
18070
18454
  country: "Canada",
@@ -18098,6 +18482,9 @@ const loadingProps$6 = {
18098
18482
  lastnametext: "Last Name",
18099
18483
  emailtext: "Email",
18100
18484
  countrytext: "Country",
18485
+ editProfileHeader: "Edit your profile",
18486
+ editProfileSubHeader: "Personal Information",
18487
+ submitChangeButtonText: "Submit Changes",
18101
18488
  },
18102
18489
  formState: {
18103
18490
  country: "Canada",
@@ -18131,6 +18518,9 @@ const disabledProps = {
18131
18518
  lastnametext: "Last Name",
18132
18519
  emailtext: "Email",
18133
18520
  countrytext: "Country",
18521
+ editProfileHeader: "Edit your profile",
18522
+ editProfileSubHeader: "Personal Information",
18523
+ submitChangeButtonText: "Submit Changes",
18134
18524
  },
18135
18525
  formState: {
18136
18526
  country: "Canada",
@@ -18164,6 +18554,9 @@ const errorProps$7 = {
18164
18554
  lastnametext: "Last Name",
18165
18555
  emailtext: "Email",
18166
18556
  countrytext: "Country",
18557
+ editProfileHeader: "Edit your profile",
18558
+ editProfileSubHeader: "Personal Information",
18559
+ submitChangeButtonText: "Submit Changes",
18167
18560
  },
18168
18561
  formState: {
18169
18562
  country: "Canada",
@@ -18197,6 +18590,9 @@ const successProps$4 = {
18197
18590
  lastnametext: "Last Name",
18198
18591
  emailtext: "Email",
18199
18592
  countrytext: "Country",
18593
+ editProfileHeader: "Edit your profile",
18594
+ editProfileSubHeader: "Personal Information",
18595
+ submitChangeButtonText: "Submit Changes",
18200
18596
  },
18201
18597
  formState: {
18202
18598
  country: "Canada",
@@ -19090,6 +19486,3361 @@ const PasswordField = /*#__PURE__*/Object.freeze({
19090
19486
  ValidationError: ValidationError
19091
19487
  });
19092
19488
 
19489
+ 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://docs.saasquatch.com/assets/images/saasquatch-logo-centered-no-slogan-RGB-300dpi.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 path=\"/:path(\\bregister\\b|\\bemailVerification\\b|\\blogin\\b|\\bverifyEmail\\b|\\bforgotPassword\\b|\\bresetPassword\\b|\\blogout\\b)\">\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 <sl-input\r\n slot=\"formData\"\r\n exportparts=\"label: input-label\"\r\n type=\"text\"\r\n style=\"margin-bottom: 5px\"\r\n name=\"/firstName\"\r\n label=\"First Name\"\r\n required\r\n ></sl-input>\r\n <sl-input\r\n slot=\"formData\"\r\n exportparts=\"label: input-label\"\r\n type=\"text\"\r\n style=\"margin-bottom: 5px\"\r\n name=\"/lastName\"\r\n label=\"Last Name\"\r\n required\r\n ></sl-input>\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 direction=\"row\">\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 ></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\r\n direction=\"column\"\r\n padding=\"xxx-large\"\r\n gap=\"xxx-large\"\r\n >\r\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\r\n ><sqm-portal-container\r\n direction=\"column\"\r\n padding=\"xxx-large\"\r\n gap=\"xxx-large\"\r\n >\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> <h2>Activity</h2></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 <div slot=\"loading\" style=\"display: contents\">\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n </div>\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 show-powered-by=\"true\"\r\n ></sqm-portal-footer>\r\n</sqm-portal-frame>\r\n";
19490
+
19491
+ const portalTemplateWithDashboard = "<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://docs.saasquatch.com/assets/images/saasquatch-logo-centered-no-slogan-RGB-300dpi.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 <sl-input\r\n slot=\"formData\"\r\n exportparts=\"label: input-label\"\r\n type=\"text\"\r\n style=\"margin-bottom: 5px\"\r\n name=\"/firstName\"\r\n label=\"First Name\"\r\n required\r\n ></sl-input>\r\n <sl-input\r\n slot=\"formData\"\r\n exportparts=\"label: input-label\"\r\n type=\"text\"\r\n style=\"margin-bottom: 5px\"\r\n name=\"/lastName\"\r\n label=\"Last Name\"\r\n required\r\n ></sl-input>\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 direction=\"row\">\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 <sqm-portal-container\r\n direction=\"column\"\r\n padding=\"xxx-large\"\r\n gap=\"xxx-large\"\r\n ><sqm-titled-section label-margin=\"xx-small\"\r\n ><sqm-text slot=\"label\"> <p>Welcome back,</p> </sqm-text\r\n ><sqm-text slot=\"content\">\r\n <h1>\r\n <sqm-user-name\r\n fallback=\"Anonymous User\"\r\n ></sqm-user-name>\r\n </h1> </sqm-text\r\n ></sqm-titled-section>\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 ><sqm-big-stat\r\n style=\"white-space: nowrap\"\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> </sqm-portal-container\r\n ><sqm-portal-container\r\n direction=\"column\"\r\n padding=\"xxx-large\"\r\n gap=\"xxx-large\"\r\n >\r\n <sqm-titled-section padding=\"none\" label-margin=\"x-large\"\r\n ><sqm-text slot=\"label\">\r\n <h2>Partner and Profit</h2> </sqm-text\r\n ><sqm-text slot=\"content\">\r\n <p>\r\n Get rewarded for referring potential customers to\r\n SaaSquatch. Earn commission for each successful lead you\r\n send our way\r\n </p>\r\n </sqm-text></sqm-titled-section\r\n >\r\n <sqm-titled-section label-margin=\"small\" padding=\"none\"\r\n ><sqm-text slot=\"label\">\r\n <h3>Share your referral link</h3> </sqm-text\r\n ><sqm-share-link slot=\"content\"></sqm-share-link\r\n ></sqm-titled-section>\r\n <sqm-titled-section label-margin=\"small\" padding=\"none\">\r\n <sqm-text slot=\"label\">\r\n <h3>Share your referral code</h3> </sqm-text\r\n ><sqm-share-code slot=\"content\"></sqm-share-code>\r\n </sqm-titled-section>\r\n <sqm-titled-section label-margin=\"small\" padding=\"none\"\r\n ><sqm-text slot=\"label\">\r\n <h3>Share via social media</h3> </sqm-text\r\n ><sqm-portal-container\r\n slot=\"content\"\r\n direction=\"row\"\r\n padding=\"none\"\r\n gap=\"xxx-large\"\r\n min-width=\"160px\"\r\n ><sqm-share-button\r\n icon=\"envelope\"\r\n medium=\"email\"\r\n size=\"medium\"\r\n pill=\"true\"\r\n >Email a friend</sqm-share-button\r\n ><sqm-share-button\r\n medium=\"twitter\"\r\n size=\"medium\"\r\n pill=\"true\"\r\n >Tweet about us</sqm-share-button\r\n ><sqm-share-button\r\n medium=\"facebook\"\r\n size=\"medium\"\r\n pill=\"true\"\r\n >Share on Facebook</sqm-share-button\r\n ></sqm-portal-container\r\n ></sqm-titled-section\r\n ></sqm-portal-container\r\n >\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\r\n direction=\"column\"\r\n padding=\"xxx-large\"\r\n gap=\"xxx-large\"\r\n >\r\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\r\n ><sqm-portal-container\r\n direction=\"column\"\r\n padding=\"xxx-large\"\r\n gap=\"xxx-large\"\r\n >\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> <h2>Activity</h2></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 <div slot=\"loading\" style=\"display: contents\">\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n </div>\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 show-powered-by=\"true\"\r\n ></sqm-portal-footer>\r\n</sqm-portal-frame>\r\n";
19492
+
19493
+ const multiProgramTemplate = "<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://docs.saasquatch.com/assets/images/saasquatch-logo-centered-no-slogan-RGB-300dpi.png\"\r\n />\r\n </sqm-text>\r\n </a>\r\n <sqb-program-section program-id=\"referral-program-1\">\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 <sl-input\r\n slot=\"formData\"\r\n exportparts=\"label: input-label\"\r\n type=\"text\"\r\n style=\"margin-bottom: 5px\"\r\n name=\"/firstName\"\r\n label=\"First Name\"\r\n required\r\n ></sl-input>\r\n <sl-input\r\n slot=\"formData\"\r\n exportparts=\"label: input-label\"\r\n type=\"text\"\r\n style=\"margin-bottom: 5px\"\r\n name=\"/lastName\"\r\n label=\"Last Name\"\r\n required\r\n ></sl-input>\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 direction=\"row\">\r\n <sqm-navigation-sidebar>\r\n <sqm-program-menu>\r\n <sl-menu-item value=\"referral-program-1\"\r\n >Referral Program 1</sl-menu-item\r\n >\r\n <sl-menu-item value=\"referral-program-2\"\r\n >Referral Program 2</sl-menu-item\r\n >\r\n </sqm-program-menu>\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-program-switch>\r\n <template program-id=\"referral-program-1\">\r\n <sqb-widget\r\n widget-type=\"p/referral-program-1/w/referrerWidget\"\r\n ></sqb-widget>\r\n </template>\r\n <template program-id=\"referral-program-2\">\r\n <sqb-widget\r\n widget-type=\"p/referral-program-2/w/referrerWidget\"\r\n ></sqb-widget>\r\n </template>\r\n </sqb-program-switch>\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\r\n direction=\"column\"\r\n padding=\"xxx-large\"\r\n gap=\"xxx-large\"\r\n >\r\n <sqm-portal-profile></sqm-portal-profile></sqm-portal-container\r\n ><sqm-portal-container\r\n direction=\"column\"\r\n padding=\"xxx-large\"\r\n gap=\"xxx-large\"\r\n >\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=\"/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> <h2>Activity</h2></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 <div slot=\"loading\" style=\"display: contents\">\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n </div>\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 show-powered-by=\"true\"\r\n ></sqm-portal-footer>\r\n</sqm-portal-frame>\r\n";
19494
+
19495
+ const multiProgramTemplateWithDashboard = "<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://docs.saasquatch.com/assets/images/saasquatch-logo-centered-no-slogan-RGB-300dpi.png\"\r\n />\r\n </sqm-text>\r\n </a>\r\n <sqb-program-section program-id=\"referral-program-1\">\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 <sl-input\r\n slot=\"formData\"\r\n exportparts=\"label: input-label\"\r\n type=\"text\"\r\n style=\"margin-bottom: 5px\"\r\n name=\"/firstName\"\r\n label=\"First Name\"\r\n required\r\n ></sl-input>\r\n <sl-input\r\n slot=\"formData\"\r\n exportparts=\"label: input-label\"\r\n type=\"text\"\r\n style=\"margin-bottom: 5px\"\r\n name=\"/lastName\"\r\n label=\"Last Name\"\r\n required\r\n ></sl-input>\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 <sqm-router>\r\n <template path=\"/:path(\\bactivity\\b|\\beditProfile\\b)?\">\r\n <sqm-divided-layout direction=\"row\">\r\n <sqm-navigation-sidebar>\r\n <sqm-program-menu>\r\n <sl-menu-item value=\"referral-program-1\"\r\n >Referral Program 1</sl-menu-item\r\n >\r\n <sl-menu-item value=\"referral-program-2\"\r\n >Referral Program 2</sl-menu-item\r\n >\r\n </sqm-program-menu>\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 ><sqm-portal-container\r\n direction=\"column\"\r\n padding=\"xxx-large\"\r\n gap=\"xxx-large\"\r\n ><sqm-titled-section label-margin=\"xx-small\"\r\n ><sqm-text slot=\"label\"> <p>Welcome back,</p> </sqm-text\r\n ><sqm-text slot=\"content\">\r\n <h1>\r\n <sqm-user-name\r\n fallback=\"Anonymous User\"\r\n ></sqm-user-name>\r\n </h1> </sqm-text\r\n ></sqm-titled-section>\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 style=\"white-space: nowrap\"\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> </sqm-portal-container\r\n ><sqm-portal-container\r\n direction=\"column\"\r\n padding=\"xxx-large\"\r\n gap=\"xxx-large\"\r\n >\r\n <sqm-titled-section padding=\"none\" label-margin=\"x-large\"\r\n ><sqm-text slot=\"label\">\r\n <h2>Partner and Profit</h2> </sqm-text\r\n ><sqm-text slot=\"content\">\r\n <p>\r\n Get rewarded for referring potential customers to\r\n SaaSquatch. Earn commission for each successful lead you\r\n send our way\r\n </p>\r\n </sqm-text></sqm-titled-section\r\n >\r\n <sqm-titled-section label-margin=\"small\" padding=\"none\"\r\n ><sqm-text slot=\"label\">\r\n <h3>Share your referral link</h3> </sqm-text\r\n ><sqm-share-link slot=\"content\"></sqm-share-link\r\n ></sqm-titled-section>\r\n <sqm-titled-section label-margin=\"small\" padding=\"none\">\r\n <sqm-text slot=\"label\">\r\n <h3>Share your referral code</h3> </sqm-text\r\n ><sqm-share-code slot=\"content\"></sqm-share-code>\r\n </sqm-titled-section>\r\n <sqm-titled-section label-margin=\"small\" padding=\"none\"\r\n ><sqm-text slot=\"label\">\r\n <h3>Share via social media</h3> </sqm-text\r\n ><sqm-portal-container\r\n slot=\"content\"\r\n direction=\"row\"\r\n padding=\"none\"\r\n gap=\"xxx-large\"\r\n min-width=\"160px\"\r\n ><sqm-share-button\r\n icon=\"envelope\"\r\n medium=\"email\"\r\n size=\"medium\"\r\n pill=\"true\"\r\n >Email a friend</sqm-share-button\r\n ><sqm-share-button\r\n medium=\"twitter\"\r\n size=\"medium\"\r\n pill=\"true\"\r\n >Tweet about us</sqm-share-button\r\n ><sqm-share-button\r\n medium=\"facebook\"\r\n size=\"medium\"\r\n pill=\"true\"\r\n >Share on Facebook</sqm-share-button\r\n ></sqm-portal-container\r\n ></sqm-titled-section\r\n ></sqm-portal-container\r\n >\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\r\n direction=\"column\"\r\n padding=\"xxx-large\"\r\n gap=\"xxx-large\"\r\n >\r\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\r\n ><sqm-portal-container\r\n direction=\"column\"\r\n padding=\"xxx-large\"\r\n gap=\"xxx-large\"\r\n >\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=\"/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> <h2>Activity</h2></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 <div slot=\"loading\" style=\"display: contents\">\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n </div>\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 show-powered-by=\"true\"\r\n ></sqm-portal-footer>\r\n</sqm-portal-frame>\r\n";
19496
+
19497
+ const dashboardTemplate = "<sqm-portal-container direction=\"column\" padding=\"xxx-large\" gap=\"xxx-large\"\r\n ><sqm-titled-section label-margin=\"xx-small\"\r\n ><sqm-text slot=\"label\"> <p>Welcome back,</p> </sqm-text\r\n ><sqm-text slot=\"content\">\r\n <h1>\r\n <sqm-user-name fallback=\"Anonymous User\"></sqm-user-name>\r\n </h1> </sqm-text\r\n ></sqm-titled-section>\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 ><sqm-big-stat\r\n style=\"white-space: nowrap\"\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> </sqm-portal-container\r\n ><sqm-portal-container direction=\"column\" padding=\"xxx-large\" gap=\"xxx-large\">\r\n <sqm-titled-section padding=\"none\" label-margin=\"x-large\"\r\n ><sqm-text slot=\"label\"> <h2>Partner and Profit</h2> </sqm-text\r\n ><sqm-text slot=\"content\">\r\n <p>\r\n Get rewarded for referring potential customers to SaaSquatch. Earn\r\n commission for each successful lead you send our way\r\n </p>\r\n </sqm-text></sqm-titled-section\r\n >\r\n <sqm-titled-section label-margin=\"small\" padding=\"none\"\r\n ><sqm-text slot=\"label\"> <h3>Share your referral link</h3> </sqm-text\r\n ><sqm-share-link slot=\"content\"></sqm-share-link\r\n ></sqm-titled-section>\r\n <sqm-titled-section label-margin=\"small\" padding=\"none\">\r\n <sqm-text slot=\"label\"> <h3>Share your referral code</h3> </sqm-text\r\n ><sqm-share-code slot=\"content\"></sqm-share-code>\r\n </sqm-titled-section>\r\n <sqm-titled-section label-margin=\"small\" padding=\"none\"\r\n ><sqm-text slot=\"label\"> <h3>Share via social media</h3> </sqm-text\r\n ><sqm-portal-container\r\n slot=\"content\"\r\n direction=\"row\"\r\n padding=\"none\"\r\n gap=\"xxx-large\"\r\n min-width=\"160px\"\r\n ><sqm-share-button\r\n icon=\"envelope\"\r\n medium=\"email\"\r\n size=\"medium\"\r\n pill=\"true\"\r\n >Email a friend</sqm-share-button\r\n ><sqm-share-button medium=\"twitter\" size=\"medium\" pill=\"true\"\r\n >Tweet about us</sqm-share-button\r\n ><sqm-share-button medium=\"facebook\" size=\"medium\" pill=\"true\"\r\n >Share on Facebook</sqm-share-button\r\n ></sqm-portal-container\r\n ></sqm-titled-section\r\n ></sqm-portal-container\r\n >";
19498
+
19499
+ const editProfileTemplate = "<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\" padding=\"xxx-large\" gap=\"xxx-large\">\r\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\r\n><sqm-portal-container direction=\"column\" padding=\"xxx-large\" gap=\"xxx-large\">\r\n <sqm-graphql-client-provider domain=\"https://managed-identity.saasquatch.com\">\r\n <sqm-portal-change-password></sqm-portal-change-password>\r\n </sqm-graphql-client-provider>\r\n</sqm-portal-container>\r\n";
19500
+
19501
+ const activityTemplate = "<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\" padding=\"xxx-large\" gap=\"xxx-large\">\r\n <sqm-text> <h2>Activity</h2></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>Subscribers</p></sqm-text></sqm-big-stat\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 <div slot=\"loading\" style=\"display: contents\">\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"><sl-skeleton></sl-skeleton></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"><sl-skeleton></sl-skeleton></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"><sl-skeleton></sl-skeleton></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"><sl-skeleton></sl-skeleton></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"><sl-skeleton></sl-skeleton></sqm-table-cell>\r\n </sqm-table-row>\r\n </div>\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";
19502
+
19503
+ const resetPasswordEmailTemplate = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional //EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\r\n\r\n<html\r\n xmlns=\"http://www.w3.org/1999/xhtml\"\r\n xmlns:o=\"urn:schemas-microsoft-com:office:office\"\r\n xmlns:v=\"urn:schemas-microsoft-com:vml\"\r\n>\r\n <head>\r\n <!--[if gte mso 9\r\n ]><xml\r\n ><o:OfficeDocumentSettings\r\n ><o:AllowPNG /><o:PixelsPerInch\r\n >96</o:PixelsPerInch\r\n ></o:OfficeDocumentSettings\r\n ></xml\r\n ><!\r\n [endif]-->\r\n <meta content=\"text/html; charset=utf-8\" http-equiv=\"Content-Type\" />\r\n <meta content=\"width=device-width\" name=\"viewport\" />\r\n <!--[if !mso]><!-->\r\n <meta content=\"IE=edge\" http-equiv=\"X-UA-Compatible\" />\r\n <!--<![endif]-->\r\n <title></title>\r\n <!--[if !mso]><!-->\r\n <!--<![endif]-->\r\n <style type=\"text/css\">\r\n body {\r\n margin: 0;\r\n padding: 0;\r\n }\r\n\r\n table,\r\n td,\r\n tr {\r\n vertical-align: top;\r\n border-collapse: collapse;\r\n }\r\n\r\n * {\r\n line-height: inherit;\r\n }\r\n\r\n a[x-apple-data-detectors=\"true\"] {\r\n color: inherit !important;\r\n text-decoration: none !important;\r\n }\r\n </style>\r\n <style id=\"media-query\" type=\"text/css\">\r\n @media (max-width: 520px) {\r\n .block-grid,\r\n .col {\r\n min-width: 320px !important;\r\n max-width: 100% !important;\r\n display: block !important;\r\n }\r\n\r\n .block-grid {\r\n width: 100% !important;\r\n }\r\n\r\n .col {\r\n width: 100% !important;\r\n }\r\n\r\n .col_cont {\r\n margin: 0 auto;\r\n }\r\n\r\n img.fullwidth,\r\n img.fullwidthOnMobile {\r\n max-width: 100% !important;\r\n }\r\n\r\n .no-stack .col {\r\n min-width: 0 !important;\r\n display: table-cell !important;\r\n }\r\n\r\n .no-stack.two-up .col {\r\n width: 50% !important;\r\n }\r\n\r\n .no-stack .col.num2 {\r\n width: 16.6% !important;\r\n }\r\n\r\n .no-stack .col.num3 {\r\n width: 25% !important;\r\n }\r\n\r\n .no-stack .col.num4 {\r\n width: 33% !important;\r\n }\r\n\r\n .no-stack .col.num5 {\r\n width: 41.6% !important;\r\n }\r\n\r\n .no-stack .col.num6 {\r\n width: 50% !important;\r\n }\r\n\r\n .no-stack .col.num7 {\r\n width: 58.3% !important;\r\n }\r\n\r\n .no-stack .col.num8 {\r\n width: 66.6% !important;\r\n }\r\n\r\n .no-stack .col.num9 {\r\n width: 75% !important;\r\n }\r\n\r\n .no-stack .col.num10 {\r\n width: 83.3% !important;\r\n }\r\n\r\n .video-block {\r\n max-width: none !important;\r\n }\r\n\r\n .mobile_hide {\r\n min-height: 0px;\r\n max-height: 0px;\r\n max-width: 0px;\r\n display: none;\r\n overflow: hidden;\r\n font-size: 0px;\r\n }\r\n\r\n .desktop_hide {\r\n display: block !important;\r\n max-height: none !important;\r\n }\r\n }\r\n </style>\r\n <style id=\"icon-media-query\" type=\"text/css\">\r\n @media (max-width: 520px) {\r\n .icons-inner {\r\n text-align: center;\r\n }\r\n\r\n .icons-inner td {\r\n margin: 0 auto;\r\n }\r\n }\r\n </style>\r\n </head>\r\n <body\r\n class=\"clean-body\"\r\n style=\"\r\n margin: 0;\r\n padding: 0;\r\n -webkit-text-size-adjust: 100%;\r\n background-color: #ffffff;\r\n \"\r\n >\r\n <!--[if IE]><div class=\"ie-browser\"><![endif]-->\r\n <table\r\n bgcolor=\"#FFFFFF\"\r\n cellpadding=\"0\"\r\n cellspacing=\"0\"\r\n class=\"nl-container\"\r\n role=\"presentation\"\r\n style=\"\r\n table-layout: fixed;\r\n vertical-align: top;\r\n min-width: 320px;\r\n border-spacing: 0;\r\n border-collapse: collapse;\r\n mso-table-lspace: 0pt;\r\n mso-table-rspace: 0pt;\r\n background-color: #ffffff;\r\n width: 100%;\r\n \"\r\n valign=\"top\"\r\n width=\"100%\"\r\n >\r\n <tbody>\r\n <tr style=\"vertical-align: top\" valign=\"top\">\r\n <td style=\"word-break: break-word; vertical-align: top\" valign=\"top\">\r\n <!--[if (mso)|(IE)]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td align=\"center\" style=\"background-color:#FFFFFF\"><![endif]-->\r\n <div style=\"background-color: transparent\">\r\n <div\r\n class=\"block-grid\"\r\n style=\"\r\n min-width: 320px;\r\n max-width: 500px;\r\n overflow-wrap: break-word;\r\n word-wrap: break-word;\r\n word-break: break-word;\r\n margin: 0 auto;\r\n background-color: transparent;\r\n \"\r\n >\r\n <div\r\n style=\"\r\n border-collapse: collapse;\r\n display: table;\r\n width: 100%;\r\n background-color: transparent;\r\n \"\r\n >\r\n <!--[if (mso)|(IE)]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"background-color:transparent;\"><tr><td align=\"center\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"width:500px\"><tr class=\"layout-full-width\" style=\"background-color:transparent\"><![endif]-->\r\n <!--[if (mso)|(IE)]><td align=\"center\" width=\"500\" style=\"background-color:transparent;width:500px; border-top: 0px solid transparent; border-left: 0px solid transparent; border-bottom: 0px solid transparent; border-right: 0px solid transparent;\" valign=\"top\"><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td style=\"padding-right: 0px; padding-left: 0px; padding-top:5px; padding-bottom:5px;\"><![endif]-->\r\n <div\r\n class=\"col num12\"\r\n style=\"\r\n min-width: 320px;\r\n max-width: 500px;\r\n display: table-cell;\r\n vertical-align: top;\r\n width: 500px;\r\n \"\r\n >\r\n <div class=\"col_cont\" style=\"width: 100% !important\">\r\n <!--[if (!mso)&(!IE)]><!-->\r\n <div\r\n style=\"\r\n border-top: 0px solid transparent;\r\n border-left: 0px solid transparent;\r\n border-bottom: 0px solid transparent;\r\n border-right: 0px solid transparent;\r\n padding-top: 5px;\r\n padding-bottom: 5px;\r\n padding-right: 0px;\r\n padding-left: 0px;\r\n \"\r\n >\r\n <!--<![endif]-->\r\n <table\r\n cellpadding=\"0\"\r\n cellspacing=\"0\"\r\n role=\"presentation\"\r\n style=\"\r\n table-layout: fixed;\r\n vertical-align: top;\r\n border-spacing: 0;\r\n border-collapse: collapse;\r\n mso-table-lspace: 0pt;\r\n mso-table-rspace: 0pt;\r\n \"\r\n valign=\"top\"\r\n width=\"100%\"\r\n >\r\n <tr style=\"vertical-align: top\" valign=\"top\">\r\n <td\r\n align=\"center\"\r\n style=\"\r\n word-break: break-word;\r\n vertical-align: top;\r\n padding-bottom: 20px;\r\n padding-left: 10px;\r\n padding-right: 10px;\r\n padding-top: 10px;\r\n text-align: center;\r\n width: 100%;\r\n \"\r\n valign=\"top\"\r\n width=\"100%\"\r\n >\r\n <h1\r\n style=\"\r\n color: #444445;\r\n direction: ltr;\r\n font-family: 'Helvetica Neue', Helvetica,\r\n Arial, sans-serif;\r\n font-size: 20px;\r\n font-weight: normal;\r\n letter-spacing: normal;\r\n line-height: 120%;\r\n text-align: left;\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n \"\r\n >\r\n <strong>Reset your password</strong>\r\n </h1>\r\n </td>\r\n </tr>\r\n </table>\r\n <!--[if mso]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td style=\"padding-right: 10px; padding-left: 10px; padding-top: 10px; padding-bottom: 10px; font-family: Arial, sans-serif\"><![endif]-->\r\n <div\r\n style=\"\r\n color: #444445;\r\n font-family: Arial, Helvetica Neue, Helvetica,\r\n sans-serif;\r\n line-height: 1.8;\r\n padding-top: 10px;\r\n padding-right: 10px;\r\n padding-bottom: 10px;\r\n padding-left: 10px;\r\n \"\r\n >\r\n <div\r\n class=\"txtTinyMce-wrapper\"\r\n style=\"\r\n font-size: 14px;\r\n line-height: 1.8;\r\n color: #444445;\r\n font-family: Arial, Helvetica Neue, Helvetica,\r\n sans-serif;\r\n mso-line-height-alt: 25px;\r\n \"\r\n >\r\n <p\r\n style=\"\r\n margin: 0;\r\n font-size: 14px;\r\n line-height: 1.8;\r\n word-break: break-word;\r\n mso-line-height-alt: 25px;\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n \"\r\n >\r\n <span style=\"font-size: 14px\"\r\n >We received a request to reset your password.\r\n Click the button below to reset your\r\n password.</span\r\n >\r\n </p>\r\n </div>\r\n </div>\r\n <div\r\n align=\"center\"\r\n class=\"button-container\"\r\n style=\"\r\n padding-top: 10px;\r\n padding-right: 10px;\r\n padding-bottom: 10px;\r\n padding-left: 10px;\r\n \"\r\n >\r\n <!--[if mso]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"border-spacing: 0; border-collapse: collapse; mso-table-lspace:0pt; mso-table-rspace:0pt;\"><tr><td style=\"padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px\" align=\"center\"><v:roundrect xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:w=\"urn:schemas-microsoft-com:office:word\" target=\"_blank\" href={{validationLink}} style=\"height:31.5pt;width:390pt;v-text-anchor:middle;\" arcsize=\"12%\" stroke=\"false\" fillcolor=\"#2270ee\"><w:anchorlock/><v:textbox inset=\"0,0,0,0\"><center style=\"color:#ffffff; font-family:Arial, sans-serif; font-size:14px\"><!\r\n [endif]--><a\r\n href=\"{{validationLink}}\"\r\n target=\"_blank\"\r\n style=\"\r\n -webkit-text-size-adjust: none;\r\n text-decoration: none;\r\n display: block;\r\n color: #ffffff;\r\n background-color: #2270ee;\r\n border-radius: 5px;\r\n -webkit-border-radius: 5px;\r\n -moz-border-radius: 5px;\r\n width: 100%;\r\n width: calc(100% - 2px);\r\n border-top: 1px solid #2270ee;\r\n border-right: 1px solid #2270ee;\r\n border-bottom: 1px solid #2270ee;\r\n border-left: 1px solid #2270ee;\r\n padding-top: 5px;\r\n padding-bottom: 5px;\r\n font-family: 'Helvetica Neue', Helvetica, Arial,\r\n sans-serif;\r\n text-align: center;\r\n mso-border-alt: none;\r\n word-break: keep-all;\r\n \"\r\n target=\"_blank\"\r\n ><span\r\n style=\"\r\n padding-left: 20px;\r\n padding-right: 20px;\r\n font-size: 14px;\r\n display: inline-block;\r\n letter-spacing: undefined;\r\n \"\r\n ><span\r\n style=\"\r\n font-size: 16px;\r\n line-height: 2;\r\n word-break: break-word;\r\n mso-line-height-alt: 32px;\r\n \"\r\n ><span\r\n style=\"font-size: 14px; line-height: 28px\"\r\n >Reset Password</span\r\n ></span\r\n ></span\r\n ></a\r\n >\r\n <!--[if mso]></center></v:textbox></v:roundrect></td></tr></table><![endif]-->\r\n </div>\r\n <!--[if mso]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td style=\"padding-right: 10px; padding-left: 10px; padding-top: 15px; padding-bottom: 15px; font-family: Arial, sans-serif\"><![endif]-->\r\n <div\r\n style=\"\r\n color: #444445;\r\n font-family: Arial, Helvetica Neue, Helvetica,\r\n sans-serif;\r\n line-height: 1.2;\r\n padding-top: 15px;\r\n padding-right: 10px;\r\n padding-bottom: 15px;\r\n padding-left: 10px;\r\n \"\r\n >\r\n <div\r\n class=\"txtTinyMce-wrapper\"\r\n style=\"\r\n font-size: 14px;\r\n line-height: 1.2;\r\n color: #444445;\r\n font-family: Arial, Helvetica Neue, Helvetica,\r\n sans-serif;\r\n mso-line-height-alt: 17px;\r\n \"\r\n >\r\n <p\r\n style=\"\r\n margin: 0;\r\n font-size: 12px;\r\n line-height: 1.2;\r\n word-break: break-word;\r\n mso-line-height-alt: 14px;\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n \"\r\n >\r\n <span style=\"font-size: 12px\"\r\n >If you didn't request a password reset please\r\n ignore this email. Your password will not\r\n change.</span\r\n >\r\n </p>\r\n </div>\r\n </div>\r\n <!--[if mso]></td></tr></table><![endif]-->\r\n <!--[if (!mso)&(!IE)]><!-->\r\n </div>\r\n <!--<![endif]-->\r\n </div>\r\n </div>\r\n <!--[if (mso)|(IE)]></td></tr></table><![endif]-->\r\n <!--[if (mso)|(IE)]></td></tr></table></td></tr></table><![endif]-->\r\n </div>\r\n </div>\r\n </div>\r\n <!--[if (mso)|(IE)]></td></tr></table><![endif]-->\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <!--[if (IE)]></div><![endif]-->\r\n </body>\r\n</html>";
19504
+
19505
+ const verifyEmailTemplate = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional //EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\r\n\r\n<html\r\n xmlns=\"http://www.w3.org/1999/xhtml\"\r\n xmlns:o=\"urn:schemas-microsoft-com:office:office\"\r\n xmlns:v=\"urn:schemas-microsoft-com:vml\"\r\n>\r\n <head>\r\n <!--[if gte mso 9\r\n ]><xml\r\n ><o:OfficeDocumentSettings\r\n ><o:AllowPNG /><o:PixelsPerInch\r\n >96</o:PixelsPerInch\r\n ></o:OfficeDocumentSettings\r\n ></xml\r\n ><!\r\n [endif]-->\r\n <meta content=\"text/html; charset=utf-8\" http-equiv=\"Content-Type\" />\r\n <meta content=\"width=device-width\" name=\"viewport\" />\r\n <!--[if !mso]><!-->\r\n <meta content=\"IE=edge\" http-equiv=\"X-UA-Compatible\" />\r\n <!--<![endif]-->\r\n <title></title>\r\n <!--[if !mso]><!-->\r\n <!--<![endif]-->\r\n <style type=\"text/css\">\r\n body {\r\n margin: 0;\r\n padding: 0;\r\n }\r\n\r\n table,\r\n td,\r\n tr {\r\n vertical-align: top;\r\n border-collapse: collapse;\r\n }\r\n\r\n * {\r\n line-height: inherit;\r\n }\r\n\r\n a[x-apple-data-detectors=\"true\"] {\r\n color: inherit !important;\r\n text-decoration: none !important;\r\n }\r\n </style>\r\n <style id=\"media-query\" type=\"text/css\">\r\n @media (max-width: 520px) {\r\n .block-grid,\r\n .col {\r\n min-width: 320px !important;\r\n max-width: 100% !important;\r\n display: block !important;\r\n }\r\n\r\n .block-grid {\r\n width: 100% !important;\r\n }\r\n\r\n .col {\r\n width: 100% !important;\r\n }\r\n\r\n .col_cont {\r\n margin: 0 auto;\r\n }\r\n\r\n img.fullwidth,\r\n img.fullwidthOnMobile {\r\n max-width: 100% !important;\r\n }\r\n\r\n .no-stack .col {\r\n min-width: 0 !important;\r\n display: table-cell !important;\r\n }\r\n\r\n .no-stack.two-up .col {\r\n width: 50% !important;\r\n }\r\n\r\n .no-stack .col.num2 {\r\n width: 16.6% !important;\r\n }\r\n\r\n .no-stack .col.num3 {\r\n width: 25% !important;\r\n }\r\n\r\n .no-stack .col.num4 {\r\n width: 33% !important;\r\n }\r\n\r\n .no-stack .col.num5 {\r\n width: 41.6% !important;\r\n }\r\n\r\n .no-stack .col.num6 {\r\n width: 50% !important;\r\n }\r\n\r\n .no-stack .col.num7 {\r\n width: 58.3% !important;\r\n }\r\n\r\n .no-stack .col.num8 {\r\n width: 66.6% !important;\r\n }\r\n\r\n .no-stack .col.num9 {\r\n width: 75% !important;\r\n }\r\n\r\n .no-stack .col.num10 {\r\n width: 83.3% !important;\r\n }\r\n\r\n .video-block {\r\n max-width: none !important;\r\n }\r\n\r\n .mobile_hide {\r\n min-height: 0px;\r\n max-height: 0px;\r\n max-width: 0px;\r\n display: none;\r\n overflow: hidden;\r\n font-size: 0px;\r\n }\r\n\r\n .desktop_hide {\r\n display: block !important;\r\n max-height: none !important;\r\n }\r\n }\r\n </style>\r\n <style id=\"icon-media-query\" type=\"text/css\">\r\n @media (max-width: 520px) {\r\n .icons-inner {\r\n text-align: center;\r\n }\r\n\r\n .icons-inner td {\r\n margin: 0 auto;\r\n }\r\n }\r\n </style>\r\n </head>\r\n <body\r\n class=\"clean-body\"\r\n style=\"\r\n margin: 0;\r\n padding: 0;\r\n -webkit-text-size-adjust: 100%;\r\n background-color: #ffffff;\r\n \"\r\n >\r\n <!--[if IE]><div class=\"ie-browser\"><![endif]-->\r\n <table\r\n bgcolor=\"#FFFFFF\"\r\n cellpadding=\"0\"\r\n cellspacing=\"0\"\r\n class=\"nl-container\"\r\n role=\"presentation\"\r\n style=\"\r\n table-layout: fixed;\r\n vertical-align: top;\r\n min-width: 320px;\r\n border-spacing: 0;\r\n border-collapse: collapse;\r\n mso-table-lspace: 0pt;\r\n mso-table-rspace: 0pt;\r\n background-color: #ffffff;\r\n width: 100%;\r\n \"\r\n valign=\"top\"\r\n width=\"100%\"\r\n >\r\n <tbody>\r\n <tr style=\"vertical-align: top\" valign=\"top\">\r\n <td style=\"word-break: break-word; vertical-align: top\" valign=\"top\">\r\n <!--[if (mso)|(IE)]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td align=\"center\" style=\"background-color:#FFFFFF\"><![endif]-->\r\n <div style=\"background-color: transparent\">\r\n <div\r\n class=\"block-grid\"\r\n style=\"\r\n min-width: 320px;\r\n max-width: 500px;\r\n overflow-wrap: break-word;\r\n word-wrap: break-word;\r\n word-break: break-word;\r\n margin: 0 auto;\r\n background-color: transparent;\r\n \"\r\n >\r\n <div\r\n style=\"\r\n border-collapse: collapse;\r\n display: table;\r\n width: 100%;\r\n background-color: transparent;\r\n \"\r\n >\r\n <!--[if (mso)|(IE)]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"background-color:transparent;\"><tr><td align=\"center\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"width:500px\"><tr class=\"layout-full-width\" style=\"background-color:transparent\"><![endif]-->\r\n <!--[if (mso)|(IE)]><td align=\"center\" width=\"500\" style=\"background-color:transparent;width:500px; border-top: 0px solid transparent; border-left: 0px solid transparent; border-bottom: 0px solid transparent; border-right: 0px solid transparent;\" valign=\"top\"><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td style=\"padding-right: 0px; padding-left: 0px; padding-top:5px; padding-bottom:5px;\"><![endif]-->\r\n <div\r\n class=\"col num12\"\r\n style=\"\r\n min-width: 320px;\r\n max-width: 500px;\r\n display: table-cell;\r\n vertical-align: top;\r\n width: 500px;\r\n \"\r\n >\r\n <div class=\"col_cont\" style=\"width: 100% !important\">\r\n <!--[if (!mso)&(!IE)]><!-->\r\n <div\r\n style=\"\r\n border-top: 0px solid transparent;\r\n border-left: 0px solid transparent;\r\n border-bottom: 0px solid transparent;\r\n border-right: 0px solid transparent;\r\n padding-top: 5px;\r\n padding-bottom: 5px;\r\n padding-right: 0px;\r\n padding-left: 0px;\r\n \"\r\n >\r\n <!--<![endif]-->\r\n <table\r\n cellpadding=\"0\"\r\n cellspacing=\"0\"\r\n role=\"presentation\"\r\n style=\"\r\n table-layout: fixed;\r\n vertical-align: top;\r\n border-spacing: 0;\r\n border-collapse: collapse;\r\n mso-table-lspace: 0pt;\r\n mso-table-rspace: 0pt;\r\n \"\r\n valign=\"top\"\r\n width=\"100%\"\r\n >\r\n <tr style=\"vertical-align: top\" valign=\"top\">\r\n <td\r\n align=\"center\"\r\n style=\"\r\n word-break: break-word;\r\n vertical-align: top;\r\n padding-bottom: 20px;\r\n padding-left: 10px;\r\n padding-right: 10px;\r\n padding-top: 10px;\r\n text-align: center;\r\n width: 100%;\r\n \"\r\n valign=\"top\"\r\n width=\"100%\"\r\n >\r\n <h1\r\n style=\"\r\n color: #444445;\r\n direction: ltr;\r\n font-family: 'Helvetica Neue', Helvetica,\r\n Arial, sans-serif;\r\n font-size: 20px;\r\n font-weight: normal;\r\n letter-spacing: normal;\r\n line-height: 120%;\r\n text-align: left;\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n \"\r\n >\r\n <strong>Verify your email address</strong>\r\n </h1>\r\n </td>\r\n </tr>\r\n </table>\r\n <!--[if mso]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td style=\"padding-right: 10px; padding-left: 10px; padding-top: 10px; padding-bottom: 10px; font-family: Arial, sans-serif\"><![endif]-->\r\n <div\r\n style=\"\r\n color: #444445;\r\n font-family: Arial, Helvetica Neue, Helvetica,\r\n sans-serif;\r\n line-height: 1.8;\r\n padding-top: 10px;\r\n padding-right: 10px;\r\n padding-bottom: 10px;\r\n padding-left: 10px;\r\n \"\r\n >\r\n <div\r\n class=\"txtTinyMce-wrapper\"\r\n style=\"\r\n font-size: 14px;\r\n line-height: 1.8;\r\n color: #444445;\r\n font-family: Arial, Helvetica Neue, Helvetica,\r\n sans-serif;\r\n mso-line-height-alt: 25px;\r\n \"\r\n >\r\n <p\r\n style=\"\r\n margin: 0;\r\n font-size: 14px;\r\n line-height: 1.8;\r\n word-break: break-word;\r\n mso-line-height-alt: 25px;\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n \"\r\n >\r\n <span style=\"font-size: 14px\"\r\n >Thank you for signing up! Please click the button below\r\n to verify your email address.</span\r\n >\r\n </p>\r\n </div>\r\n </div>\r\n <!--[if mso]></td></tr></table><![endif]-->\r\n <div\r\n align=\"center\"\r\n class=\"button-container\"\r\n style=\"\r\n padding-top: 10px;\r\n padding-right: 10px;\r\n padding-bottom: 10px;\r\n padding-left: 10px;\r\n \"\r\n >\r\n <!--[if mso]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"border-spacing: 0; border-collapse: collapse; mso-table-lspace:0pt; mso-table-rspace:0pt;\"><tr><td style=\"padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px\" align=\"center\"><v:roundrect xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:w=\"urn:schemas-microsoft-com:office:word\" target=\"_blank\" href={{validationLink}} style=\"height:31.5pt;width:390pt;v-text-anchor:middle;\" arcsize=\"12%\" stroke=\"false\" fillcolor=\"#2270ee\"><w:anchorlock/><v:textbox inset=\"0,0,0,0\"><center style=\"color:#ffffff; font-family:Arial, sans-serif; font-size:14px\"><!\r\n [endif]--><a\r\n href={{validationLink}}\r\n\t\t\t\t\t\t\ttarget=\"_blank\"\r\n style=\"\r\n -webkit-text-size-adjust: none;\r\n text-decoration: none;\r\n display: block;\r\n color: #ffffff;\r\n background-color: #2270ee;\r\n border-radius: 5px;\r\n -webkit-border-radius: 5px;\r\n -moz-border-radius: 5px;\r\n width: 100%;\r\n width: calc(100% - 2px);\r\n border-top: 1px solid #2270ee;\r\n border-right: 1px solid #2270ee;\r\n border-bottom: 1px solid #2270ee;\r\n border-left: 1px solid #2270ee;\r\n padding-top: 5px;\r\n padding-bottom: 5px;\r\n font-family: 'Helvetica Neue', Helvetica, Arial,\r\n sans-serif;\r\n text-align: center;\r\n mso-border-alt: none;\r\n word-break: keep-all;\r\n \"\r\n target=\"_blank\"\r\n ><span\r\n style=\"\r\n padding-left: 20px;\r\n padding-right: 20px;\r\n font-size: 14px;\r\n display: inline-block;\r\n letter-spacing: undefined;\r\n \"\r\n ><span\r\n style=\"\r\n font-size: 16px;\r\n line-height: 2;\r\n word-break: break-word;\r\n mso-line-height-alt: 32px;\r\n \"\r\n ><span\r\n style=\"font-size: 14px; line-height: 28px\"\r\n >Verify Email</span\r\n ></span\r\n ></span\r\n ></a\r\n >\r\n <!--[if mso]></center></v:textbox></v:roundrect></td></tr></table><![endif]-->\r\n </div>\r\n <!--<![endif]-->\r\n </div>\r\n </div>\r\n <!--[if (mso)|(IE)]></td></tr></table><![endif]-->\r\n <!--[if (mso)|(IE)]></td></tr></table></td></tr></table><![endif]-->\r\n </div>\r\n </div>\r\n </div>\r\n <!--[if (mso)|(IE)]></td></tr></table><![endif]-->\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <!--[if (IE)]></div><![endif]-->\r\n </body>\r\n</html>";
19506
+
19507
+ const loginTemplate = "<sqm-hero background=\"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80\">\r\n <sqm-portal-login></sqm-portal-login>\r\n</sqm-hero>\r\n";
19508
+
19509
+ const registerTemplate = "<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-portal-register>\r\n <sl-input\r\n slot=\"formData\"\r\n exportparts=\"label: input-label\"\r\n type=\"text\"\r\n style=\"margin-bottom: 5px\"\r\n name=\"/firstName\"\r\n label=\"First Name\"\r\n required\r\n ></sl-input>\r\n <sl-input\r\n slot=\"formData\"\r\n exportparts=\"label: input-label\"\r\n type=\"text\"\r\n style=\"margin-bottom: 5px\"\r\n name=\"/lastName\"\r\n label=\"Last Name\"\r\n required\r\n ></sl-input>\r\n </sqm-portal-register>\r\n</sqm-hero>\r\n";
19510
+
19511
+ const forgotPasswordTemplate = "<sqm-hero background=\"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80\">\r\n <sqm-portal-forgot-password\r\n email-label=\"Business Email\"\r\n ></sqm-portal-forgot-password>\r\n</sqm-hero>\r\n";
19512
+
19513
+ const resetPasswordTemplate = "<sqm-portal-reset-password confirm-password=\"true\"></sqm-portal-reset-password>\r\n";
19514
+
19515
+ const emailVerifiedTemplate = "<sqm-portal-verify-email></sqm-portal-verify-email>\r\n";
19516
+
19517
+ const emailVerificationTemplate = "<sqm-portal-protected-route redirect-to=\"/login\"></sqm-portal-protected-route>\r\n<sqm-portal-email-verification></sqm-portal-email-verification>\r\n";
19518
+
19519
+ var marked = _extends.createCommonjsModule(function (module, exports) {
19520
+ /**
19521
+ * marked - a markdown parser
19522
+ * Copyright (c) 2011-2021, Christopher Jeffrey. (MIT Licensed)
19523
+ * https://github.com/markedjs/marked
19524
+ */
19525
+
19526
+ /**
19527
+ * DO NOT EDIT THIS FILE
19528
+ * The code in this file is generated from files in ./src/
19529
+ */
19530
+
19531
+ (function (global, factory) {
19532
+ module.exports = factory() ;
19533
+ }(_extends.commonjsGlobal, (function () {
19534
+ function _defineProperties(target, props) {
19535
+ for (var i = 0; i < props.length; i++) {
19536
+ var descriptor = props[i];
19537
+ descriptor.enumerable = descriptor.enumerable || false;
19538
+ descriptor.configurable = true;
19539
+ if ("value" in descriptor) descriptor.writable = true;
19540
+ Object.defineProperty(target, descriptor.key, descriptor);
19541
+ }
19542
+ }
19543
+
19544
+ function _createClass(Constructor, protoProps, staticProps) {
19545
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
19546
+ if (staticProps) _defineProperties(Constructor, staticProps);
19547
+ return Constructor;
19548
+ }
19549
+
19550
+ function _unsupportedIterableToArray(o, minLen) {
19551
+ if (!o) return;
19552
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
19553
+ var n = Object.prototype.toString.call(o).slice(8, -1);
19554
+ if (n === "Object" && o.constructor) n = o.constructor.name;
19555
+ if (n === "Map" || n === "Set") return Array.from(o);
19556
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
19557
+ }
19558
+
19559
+ function _arrayLikeToArray(arr, len) {
19560
+ if (len == null || len > arr.length) len = arr.length;
19561
+
19562
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
19563
+
19564
+ return arr2;
19565
+ }
19566
+
19567
+ function _createForOfIteratorHelperLoose(o, allowArrayLike) {
19568
+ var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
19569
+ if (it) return (it = it.call(o)).next.bind(it);
19570
+
19571
+ if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
19572
+ if (it) o = it;
19573
+ var i = 0;
19574
+ return function () {
19575
+ if (i >= o.length) return {
19576
+ done: true
19577
+ };
19578
+ return {
19579
+ done: false,
19580
+ value: o[i++]
19581
+ };
19582
+ };
19583
+ }
19584
+
19585
+ throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
19586
+ }
19587
+
19588
+ var defaults$5 = {exports: {}};
19589
+
19590
+ function getDefaults$1() {
19591
+ return {
19592
+ baseUrl: null,
19593
+ breaks: false,
19594
+ extensions: null,
19595
+ gfm: true,
19596
+ headerIds: true,
19597
+ headerPrefix: '',
19598
+ highlight: null,
19599
+ langPrefix: 'language-',
19600
+ mangle: true,
19601
+ pedantic: false,
19602
+ renderer: null,
19603
+ sanitize: false,
19604
+ sanitizer: null,
19605
+ silent: false,
19606
+ smartLists: false,
19607
+ smartypants: false,
19608
+ tokenizer: null,
19609
+ walkTokens: null,
19610
+ xhtml: false
19611
+ };
19612
+ }
19613
+
19614
+ function changeDefaults$1(newDefaults) {
19615
+ defaults$5.exports.defaults = newDefaults;
19616
+ }
19617
+
19618
+ defaults$5.exports = {
19619
+ defaults: getDefaults$1(),
19620
+ getDefaults: getDefaults$1,
19621
+ changeDefaults: changeDefaults$1
19622
+ };
19623
+
19624
+ /**
19625
+ * Helpers
19626
+ */
19627
+ var escapeTest = /[&<>"']/;
19628
+ var escapeReplace = /[&<>"']/g;
19629
+ var escapeTestNoEncode = /[<>"']|&(?!#?\w+;)/;
19630
+ var escapeReplaceNoEncode = /[<>"']|&(?!#?\w+;)/g;
19631
+ var escapeReplacements = {
19632
+ '&': '&amp;',
19633
+ '<': '&lt;',
19634
+ '>': '&gt;',
19635
+ '"': '&quot;',
19636
+ "'": '&#39;'
19637
+ };
19638
+
19639
+ var getEscapeReplacement = function getEscapeReplacement(ch) {
19640
+ return escapeReplacements[ch];
19641
+ };
19642
+
19643
+ function escape$2(html, encode) {
19644
+ if (encode) {
19645
+ if (escapeTest.test(html)) {
19646
+ return html.replace(escapeReplace, getEscapeReplacement);
19647
+ }
19648
+ } else {
19649
+ if (escapeTestNoEncode.test(html)) {
19650
+ return html.replace(escapeReplaceNoEncode, getEscapeReplacement);
19651
+ }
19652
+ }
19653
+
19654
+ return html;
19655
+ }
19656
+
19657
+ var unescapeTest = /&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;
19658
+
19659
+ function unescape$1(html) {
19660
+ // explicitly match decimal, hex, and named HTML entities
19661
+ return html.replace(unescapeTest, function (_, n) {
19662
+ n = n.toLowerCase();
19663
+ if (n === 'colon') return ':';
19664
+
19665
+ if (n.charAt(0) === '#') {
19666
+ return n.charAt(1) === 'x' ? String.fromCharCode(parseInt(n.substring(2), 16)) : String.fromCharCode(+n.substring(1));
19667
+ }
19668
+
19669
+ return '';
19670
+ });
19671
+ }
19672
+
19673
+ var caret = /(^|[^\[])\^/g;
19674
+
19675
+ function edit$1(regex, opt) {
19676
+ regex = regex.source || regex;
19677
+ opt = opt || '';
19678
+ var obj = {
19679
+ replace: function replace(name, val) {
19680
+ val = val.source || val;
19681
+ val = val.replace(caret, '$1');
19682
+ regex = regex.replace(name, val);
19683
+ return obj;
19684
+ },
19685
+ getRegex: function getRegex() {
19686
+ return new RegExp(regex, opt);
19687
+ }
19688
+ };
19689
+ return obj;
19690
+ }
19691
+
19692
+ var nonWordAndColonTest = /[^\w:]/g;
19693
+ var originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;
19694
+
19695
+ function cleanUrl$1(sanitize, base, href) {
19696
+ if (sanitize) {
19697
+ var prot;
19698
+
19699
+ try {
19700
+ prot = decodeURIComponent(unescape$1(href)).replace(nonWordAndColonTest, '').toLowerCase();
19701
+ } catch (e) {
19702
+ return null;
19703
+ }
19704
+
19705
+ if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {
19706
+ return null;
19707
+ }
19708
+ }
19709
+
19710
+ if (base && !originIndependentUrl.test(href)) {
19711
+ href = resolveUrl(base, href);
19712
+ }
19713
+
19714
+ try {
19715
+ href = encodeURI(href).replace(/%25/g, '%');
19716
+ } catch (e) {
19717
+ return null;
19718
+ }
19719
+
19720
+ return href;
19721
+ }
19722
+
19723
+ var baseUrls = {};
19724
+ var justDomain = /^[^:]+:\/*[^/]*$/;
19725
+ var protocol = /^([^:]+:)[\s\S]*$/;
19726
+ var domain = /^([^:]+:\/*[^/]*)[\s\S]*$/;
19727
+
19728
+ function resolveUrl(base, href) {
19729
+ if (!baseUrls[' ' + base]) {
19730
+ // we can ignore everything in base after the last slash of its path component,
19731
+ // but we might need to add _that_
19732
+ // https://tools.ietf.org/html/rfc3986#section-3
19733
+ if (justDomain.test(base)) {
19734
+ baseUrls[' ' + base] = base + '/';
19735
+ } else {
19736
+ baseUrls[' ' + base] = rtrim$1(base, '/', true);
19737
+ }
19738
+ }
19739
+
19740
+ base = baseUrls[' ' + base];
19741
+ var relativeBase = base.indexOf(':') === -1;
19742
+
19743
+ if (href.substring(0, 2) === '//') {
19744
+ if (relativeBase) {
19745
+ return href;
19746
+ }
19747
+
19748
+ return base.replace(protocol, '$1') + href;
19749
+ } else if (href.charAt(0) === '/') {
19750
+ if (relativeBase) {
19751
+ return href;
19752
+ }
19753
+
19754
+ return base.replace(domain, '$1') + href;
19755
+ } else {
19756
+ return base + href;
19757
+ }
19758
+ }
19759
+
19760
+ var noopTest$1 = {
19761
+ exec: function noopTest() {}
19762
+ };
19763
+
19764
+ function merge$2(obj) {
19765
+ var i = 1,
19766
+ target,
19767
+ key;
19768
+
19769
+ for (; i < arguments.length; i++) {
19770
+ target = arguments[i];
19771
+
19772
+ for (key in target) {
19773
+ if (Object.prototype.hasOwnProperty.call(target, key)) {
19774
+ obj[key] = target[key];
19775
+ }
19776
+ }
19777
+ }
19778
+
19779
+ return obj;
19780
+ }
19781
+
19782
+ function splitCells$1(tableRow, count) {
19783
+ // ensure that every cell-delimiting pipe has a space
19784
+ // before it to distinguish it from an escaped pipe
19785
+ var row = tableRow.replace(/\|/g, function (match, offset, str) {
19786
+ var escaped = false,
19787
+ curr = offset;
19788
+
19789
+ while (--curr >= 0 && str[curr] === '\\') {
19790
+ escaped = !escaped;
19791
+ }
19792
+
19793
+ if (escaped) {
19794
+ // odd number of slashes means | is escaped
19795
+ // so we leave it alone
19796
+ return '|';
19797
+ } else {
19798
+ // add space before unescaped |
19799
+ return ' |';
19800
+ }
19801
+ }),
19802
+ cells = row.split(/ \|/);
19803
+ var i = 0; // First/last cell in a row cannot be empty if it has no leading/trailing pipe
19804
+
19805
+ if (!cells[0].trim()) {
19806
+ cells.shift();
19807
+ }
19808
+
19809
+ if (!cells[cells.length - 1].trim()) {
19810
+ cells.pop();
19811
+ }
19812
+
19813
+ if (cells.length > count) {
19814
+ cells.splice(count);
19815
+ } else {
19816
+ while (cells.length < count) {
19817
+ cells.push('');
19818
+ }
19819
+ }
19820
+
19821
+ for (; i < cells.length; i++) {
19822
+ // leading or trailing whitespace is ignored per the gfm spec
19823
+ cells[i] = cells[i].trim().replace(/\\\|/g, '|');
19824
+ }
19825
+
19826
+ return cells;
19827
+ } // Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').
19828
+ // /c*$/ is vulnerable to REDOS.
19829
+ // invert: Remove suffix of non-c chars instead. Default falsey.
19830
+
19831
+
19832
+ function rtrim$1(str, c, invert) {
19833
+ var l = str.length;
19834
+
19835
+ if (l === 0) {
19836
+ return '';
19837
+ } // Length of suffix matching the invert condition.
19838
+
19839
+
19840
+ var suffLen = 0; // Step left until we fail to match the invert condition.
19841
+
19842
+ while (suffLen < l) {
19843
+ var currChar = str.charAt(l - suffLen - 1);
19844
+
19845
+ if (currChar === c && !invert) {
19846
+ suffLen++;
19847
+ } else if (currChar !== c && invert) {
19848
+ suffLen++;
19849
+ } else {
19850
+ break;
19851
+ }
19852
+ }
19853
+
19854
+ return str.substr(0, l - suffLen);
19855
+ }
19856
+
19857
+ function findClosingBracket$1(str, b) {
19858
+ if (str.indexOf(b[1]) === -1) {
19859
+ return -1;
19860
+ }
19861
+
19862
+ var l = str.length;
19863
+ var level = 0,
19864
+ i = 0;
19865
+
19866
+ for (; i < l; i++) {
19867
+ if (str[i] === '\\') {
19868
+ i++;
19869
+ } else if (str[i] === b[0]) {
19870
+ level++;
19871
+ } else if (str[i] === b[1]) {
19872
+ level--;
19873
+
19874
+ if (level < 0) {
19875
+ return i;
19876
+ }
19877
+ }
19878
+ }
19879
+
19880
+ return -1;
19881
+ }
19882
+
19883
+ function checkSanitizeDeprecation$1(opt) {
19884
+ if (opt && opt.sanitize && !opt.silent) {
19885
+ console.warn('marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options');
19886
+ }
19887
+ } // copied from https://stackoverflow.com/a/5450113/806777
19888
+
19889
+
19890
+ function repeatString$1(pattern, count) {
19891
+ if (count < 1) {
19892
+ return '';
19893
+ }
19894
+
19895
+ var result = '';
19896
+
19897
+ while (count > 1) {
19898
+ if (count & 1) {
19899
+ result += pattern;
19900
+ }
19901
+
19902
+ count >>= 1;
19903
+ pattern += pattern;
19904
+ }
19905
+
19906
+ return result + pattern;
19907
+ }
19908
+
19909
+ var helpers = {
19910
+ escape: escape$2,
19911
+ unescape: unescape$1,
19912
+ edit: edit$1,
19913
+ cleanUrl: cleanUrl$1,
19914
+ resolveUrl: resolveUrl,
19915
+ noopTest: noopTest$1,
19916
+ merge: merge$2,
19917
+ splitCells: splitCells$1,
19918
+ rtrim: rtrim$1,
19919
+ findClosingBracket: findClosingBracket$1,
19920
+ checkSanitizeDeprecation: checkSanitizeDeprecation$1,
19921
+ repeatString: repeatString$1
19922
+ };
19923
+
19924
+ var defaults$4 = defaults$5.exports.defaults;
19925
+ var rtrim = helpers.rtrim,
19926
+ splitCells = helpers.splitCells,
19927
+ _escape = helpers.escape,
19928
+ findClosingBracket = helpers.findClosingBracket;
19929
+
19930
+ function outputLink(cap, link, raw, lexer) {
19931
+ var href = link.href;
19932
+ var title = link.title ? _escape(link.title) : null;
19933
+ var text = cap[1].replace(/\\([\[\]])/g, '$1');
19934
+
19935
+ if (cap[0].charAt(0) !== '!') {
19936
+ lexer.state.inLink = true;
19937
+ var token = {
19938
+ type: 'link',
19939
+ raw: raw,
19940
+ href: href,
19941
+ title: title,
19942
+ text: text,
19943
+ tokens: lexer.inlineTokens(text, [])
19944
+ };
19945
+ lexer.state.inLink = false;
19946
+ return token;
19947
+ } else {
19948
+ return {
19949
+ type: 'image',
19950
+ raw: raw,
19951
+ href: href,
19952
+ title: title,
19953
+ text: _escape(text)
19954
+ };
19955
+ }
19956
+ }
19957
+
19958
+ function indentCodeCompensation(raw, text) {
19959
+ var matchIndentToCode = raw.match(/^(\s+)(?:```)/);
19960
+
19961
+ if (matchIndentToCode === null) {
19962
+ return text;
19963
+ }
19964
+
19965
+ var indentToCode = matchIndentToCode[1];
19966
+ return text.split('\n').map(function (node) {
19967
+ var matchIndentInNode = node.match(/^\s+/);
19968
+
19969
+ if (matchIndentInNode === null) {
19970
+ return node;
19971
+ }
19972
+
19973
+ var indentInNode = matchIndentInNode[0];
19974
+
19975
+ if (indentInNode.length >= indentToCode.length) {
19976
+ return node.slice(indentToCode.length);
19977
+ }
19978
+
19979
+ return node;
19980
+ }).join('\n');
19981
+ }
19982
+ /**
19983
+ * Tokenizer
19984
+ */
19985
+
19986
+
19987
+ var Tokenizer_1 = /*#__PURE__*/function () {
19988
+ function Tokenizer(options) {
19989
+ this.options = options || defaults$4;
19990
+ }
19991
+
19992
+ var _proto = Tokenizer.prototype;
19993
+
19994
+ _proto.space = function space(src) {
19995
+ var cap = this.rules.block.newline.exec(src);
19996
+
19997
+ if (cap) {
19998
+ if (cap[0].length > 1) {
19999
+ return {
20000
+ type: 'space',
20001
+ raw: cap[0]
20002
+ };
20003
+ }
20004
+
20005
+ return {
20006
+ raw: '\n'
20007
+ };
20008
+ }
20009
+ };
20010
+
20011
+ _proto.code = function code(src) {
20012
+ var cap = this.rules.block.code.exec(src);
20013
+
20014
+ if (cap) {
20015
+ var text = cap[0].replace(/^ {1,4}/gm, '');
20016
+ return {
20017
+ type: 'code',
20018
+ raw: cap[0],
20019
+ codeBlockStyle: 'indented',
20020
+ text: !this.options.pedantic ? rtrim(text, '\n') : text
20021
+ };
20022
+ }
20023
+ };
20024
+
20025
+ _proto.fences = function fences(src) {
20026
+ var cap = this.rules.block.fences.exec(src);
20027
+
20028
+ if (cap) {
20029
+ var raw = cap[0];
20030
+ var text = indentCodeCompensation(raw, cap[3] || '');
20031
+ return {
20032
+ type: 'code',
20033
+ raw: raw,
20034
+ lang: cap[2] ? cap[2].trim() : cap[2],
20035
+ text: text
20036
+ };
20037
+ }
20038
+ };
20039
+
20040
+ _proto.heading = function heading(src) {
20041
+ var cap = this.rules.block.heading.exec(src);
20042
+
20043
+ if (cap) {
20044
+ var text = cap[2].trim(); // remove trailing #s
20045
+
20046
+ if (/#$/.test(text)) {
20047
+ var trimmed = rtrim(text, '#');
20048
+
20049
+ if (this.options.pedantic) {
20050
+ text = trimmed.trim();
20051
+ } else if (!trimmed || / $/.test(trimmed)) {
20052
+ // CommonMark requires space before trailing #s
20053
+ text = trimmed.trim();
20054
+ }
20055
+ }
20056
+
20057
+ var token = {
20058
+ type: 'heading',
20059
+ raw: cap[0],
20060
+ depth: cap[1].length,
20061
+ text: text,
20062
+ tokens: []
20063
+ };
20064
+ this.lexer.inline(token.text, token.tokens);
20065
+ return token;
20066
+ }
20067
+ };
20068
+
20069
+ _proto.hr = function hr(src) {
20070
+ var cap = this.rules.block.hr.exec(src);
20071
+
20072
+ if (cap) {
20073
+ return {
20074
+ type: 'hr',
20075
+ raw: cap[0]
20076
+ };
20077
+ }
20078
+ };
20079
+
20080
+ _proto.blockquote = function blockquote(src) {
20081
+ var cap = this.rules.block.blockquote.exec(src);
20082
+
20083
+ if (cap) {
20084
+ var text = cap[0].replace(/^ *> ?/gm, '');
20085
+ return {
20086
+ type: 'blockquote',
20087
+ raw: cap[0],
20088
+ tokens: this.lexer.blockTokens(text, []),
20089
+ text: text
20090
+ };
20091
+ }
20092
+ };
20093
+
20094
+ _proto.list = function list(src) {
20095
+ var cap = this.rules.block.list.exec(src);
20096
+
20097
+ if (cap) {
20098
+ var raw, istask, ischecked, indent, i, blankLine, endsWithBlankLine, line, lines, itemContents;
20099
+ var bull = cap[1].trim();
20100
+ var isordered = bull.length > 1;
20101
+ var list = {
20102
+ type: 'list',
20103
+ raw: '',
20104
+ ordered: isordered,
20105
+ start: isordered ? +bull.slice(0, -1) : '',
20106
+ loose: false,
20107
+ items: []
20108
+ };
20109
+ bull = isordered ? "\\d{1,9}\\" + bull.slice(-1) : "\\" + bull;
20110
+
20111
+ if (this.options.pedantic) {
20112
+ bull = isordered ? bull : '[*+-]';
20113
+ } // Get next list item
20114
+
20115
+
20116
+ var itemRegex = new RegExp("^( {0,3}" + bull + ")((?: [^\\n]*| *)(?:\\n[^\\n]*)*(?:\\n|$))"); // Get each top-level item
20117
+
20118
+ while (src) {
20119
+ if (this.rules.block.hr.test(src)) {
20120
+ // End list if we encounter an HR (possibly move into itemRegex?)
20121
+ break;
20122
+ }
20123
+
20124
+ if (!(cap = itemRegex.exec(src))) {
20125
+ break;
20126
+ }
20127
+
20128
+ lines = cap[2].split('\n');
20129
+
20130
+ if (this.options.pedantic) {
20131
+ indent = 2;
20132
+ itemContents = lines[0].trimLeft();
20133
+ } else {
20134
+ indent = cap[2].search(/[^ ]/); // Find first non-space char
20135
+
20136
+ indent = cap[1].length + (indent > 4 ? 1 : indent); // intented code blocks after 4 spaces; indent is always 1
20137
+
20138
+ itemContents = lines[0].slice(indent - cap[1].length);
20139
+ }
20140
+
20141
+ blankLine = false;
20142
+ raw = cap[0];
20143
+
20144
+ if (!lines[0] && /^ *$/.test(lines[1])) {
20145
+ // items begin with at most one blank line
20146
+ raw = cap[1] + lines.slice(0, 2).join('\n') + '\n';
20147
+ list.loose = true;
20148
+ lines = [];
20149
+ }
20150
+
20151
+ var nextBulletRegex = new RegExp("^ {0," + Math.min(3, indent - 1) + "}(?:[*+-]|\\d{1,9}[.)])");
20152
+
20153
+ for (i = 1; i < lines.length; i++) {
20154
+ line = lines[i];
20155
+
20156
+ if (this.options.pedantic) {
20157
+ // Re-align to follow commonmark nesting rules
20158
+ line = line.replace(/^ {1,4}(?=( {4})*[^ ])/g, ' ');
20159
+ } // End list item if found start of new bullet
20160
+
20161
+
20162
+ if (nextBulletRegex.test(line)) {
20163
+ raw = cap[1] + lines.slice(0, i).join('\n') + '\n';
20164
+ break;
20165
+ } // Until we encounter a blank line, item contents do not need indentation
20166
+
20167
+
20168
+ if (!blankLine) {
20169
+ if (!line.trim()) {
20170
+ // Check if current line is empty
20171
+ blankLine = true;
20172
+ } // Dedent if possible
20173
+
20174
+
20175
+ if (line.search(/[^ ]/) >= indent) {
20176
+ itemContents += '\n' + line.slice(indent);
20177
+ } else {
20178
+ itemContents += '\n' + line;
20179
+ }
20180
+
20181
+ continue;
20182
+ } // Dedent this line
20183
+
20184
+
20185
+ if (line.search(/[^ ]/) >= indent || !line.trim()) {
20186
+ itemContents += '\n' + line.slice(indent);
20187
+ continue;
20188
+ } else {
20189
+ // Line was not properly indented; end of this item
20190
+ raw = cap[1] + lines.slice(0, i).join('\n') + '\n';
20191
+ break;
20192
+ }
20193
+ }
20194
+
20195
+ if (!list.loose) {
20196
+ // If the previous item ended with a blank line, the list is loose
20197
+ if (endsWithBlankLine) {
20198
+ list.loose = true;
20199
+ } else if (/\n *\n *$/.test(raw)) {
20200
+ endsWithBlankLine = true;
20201
+ }
20202
+ } // Check for task list items
20203
+
20204
+
20205
+ if (this.options.gfm) {
20206
+ istask = /^\[[ xX]\] /.exec(itemContents);
20207
+
20208
+ if (istask) {
20209
+ ischecked = istask[0] !== '[ ] ';
20210
+ itemContents = itemContents.replace(/^\[[ xX]\] +/, '');
20211
+ }
20212
+ }
20213
+
20214
+ list.items.push({
20215
+ type: 'list_item',
20216
+ raw: raw,
20217
+ task: !!istask,
20218
+ checked: ischecked,
20219
+ loose: false,
20220
+ text: itemContents
20221
+ });
20222
+ list.raw += raw;
20223
+ src = src.slice(raw.length);
20224
+ } // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic
20225
+
20226
+
20227
+ list.items[list.items.length - 1].raw = raw.trimRight();
20228
+ list.items[list.items.length - 1].text = itemContents.trimRight();
20229
+ list.raw = list.raw.trimRight();
20230
+ var l = list.items.length; // Item child tokens handled here at end because we needed to have the final item to trim it first
20231
+
20232
+ for (i = 0; i < l; i++) {
20233
+ this.lexer.state.top = false;
20234
+ list.items[i].tokens = this.lexer.blockTokens(list.items[i].text, []);
20235
+
20236
+ if (list.items[i].tokens.some(function (t) {
20237
+ return t.type === 'space';
20238
+ })) {
20239
+ list.loose = true;
20240
+ list.items[i].loose = true;
20241
+ }
20242
+ }
20243
+
20244
+ return list;
20245
+ }
20246
+ };
20247
+
20248
+ _proto.html = function html(src) {
20249
+ var cap = this.rules.block.html.exec(src);
20250
+
20251
+ if (cap) {
20252
+ var token = {
20253
+ type: 'html',
20254
+ raw: cap[0],
20255
+ pre: !this.options.sanitizer && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'),
20256
+ text: cap[0]
20257
+ };
20258
+
20259
+ if (this.options.sanitize) {
20260
+ token.type = 'paragraph';
20261
+ token.text = this.options.sanitizer ? this.options.sanitizer(cap[0]) : _escape(cap[0]);
20262
+ token.tokens = [];
20263
+ this.lexer.inline(token.text, token.tokens);
20264
+ }
20265
+
20266
+ return token;
20267
+ }
20268
+ };
20269
+
20270
+ _proto.def = function def(src) {
20271
+ var cap = this.rules.block.def.exec(src);
20272
+
20273
+ if (cap) {
20274
+ if (cap[3]) cap[3] = cap[3].substring(1, cap[3].length - 1);
20275
+ var tag = cap[1].toLowerCase().replace(/\s+/g, ' ');
20276
+ return {
20277
+ type: 'def',
20278
+ tag: tag,
20279
+ raw: cap[0],
20280
+ href: cap[2],
20281
+ title: cap[3]
20282
+ };
20283
+ }
20284
+ };
20285
+
20286
+ _proto.table = function table(src) {
20287
+ var cap = this.rules.block.table.exec(src);
20288
+
20289
+ if (cap) {
20290
+ var item = {
20291
+ type: 'table',
20292
+ header: splitCells(cap[1]).map(function (c) {
20293
+ return {
20294
+ text: c
20295
+ };
20296
+ }),
20297
+ align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */),
20298
+ rows: cap[3] ? cap[3].replace(/\n$/, '').split('\n') : []
20299
+ };
20300
+
20301
+ if (item.header.length === item.align.length) {
20302
+ item.raw = cap[0];
20303
+ var l = item.align.length;
20304
+ var i, j, k, row;
20305
+
20306
+ for (i = 0; i < l; i++) {
20307
+ if (/^ *-+: *$/.test(item.align[i])) {
20308
+ item.align[i] = 'right';
20309
+ } else if (/^ *:-+: *$/.test(item.align[i])) {
20310
+ item.align[i] = 'center';
20311
+ } else if (/^ *:-+ *$/.test(item.align[i])) {
20312
+ item.align[i] = 'left';
20313
+ } else {
20314
+ item.align[i] = null;
20315
+ }
20316
+ }
20317
+
20318
+ l = item.rows.length;
20319
+
20320
+ for (i = 0; i < l; i++) {
20321
+ item.rows[i] = splitCells(item.rows[i], item.header.length).map(function (c) {
20322
+ return {
20323
+ text: c
20324
+ };
20325
+ });
20326
+ } // parse child tokens inside headers and cells
20327
+ // header child tokens
20328
+
20329
+
20330
+ l = item.header.length;
20331
+
20332
+ for (j = 0; j < l; j++) {
20333
+ item.header[j].tokens = [];
20334
+ this.lexer.inlineTokens(item.header[j].text, item.header[j].tokens);
20335
+ } // cell child tokens
20336
+
20337
+
20338
+ l = item.rows.length;
20339
+
20340
+ for (j = 0; j < l; j++) {
20341
+ row = item.rows[j];
20342
+
20343
+ for (k = 0; k < row.length; k++) {
20344
+ row[k].tokens = [];
20345
+ this.lexer.inlineTokens(row[k].text, row[k].tokens);
20346
+ }
20347
+ }
20348
+
20349
+ return item;
20350
+ }
20351
+ }
20352
+ };
20353
+
20354
+ _proto.lheading = function lheading(src) {
20355
+ var cap = this.rules.block.lheading.exec(src);
20356
+
20357
+ if (cap) {
20358
+ var token = {
20359
+ type: 'heading',
20360
+ raw: cap[0],
20361
+ depth: cap[2].charAt(0) === '=' ? 1 : 2,
20362
+ text: cap[1],
20363
+ tokens: []
20364
+ };
20365
+ this.lexer.inline(token.text, token.tokens);
20366
+ return token;
20367
+ }
20368
+ };
20369
+
20370
+ _proto.paragraph = function paragraph(src) {
20371
+ var cap = this.rules.block.paragraph.exec(src);
20372
+
20373
+ if (cap) {
20374
+ var token = {
20375
+ type: 'paragraph',
20376
+ raw: cap[0],
20377
+ text: cap[1].charAt(cap[1].length - 1) === '\n' ? cap[1].slice(0, -1) : cap[1],
20378
+ tokens: []
20379
+ };
20380
+ this.lexer.inline(token.text, token.tokens);
20381
+ return token;
20382
+ }
20383
+ };
20384
+
20385
+ _proto.text = function text(src) {
20386
+ var cap = this.rules.block.text.exec(src);
20387
+
20388
+ if (cap) {
20389
+ var token = {
20390
+ type: 'text',
20391
+ raw: cap[0],
20392
+ text: cap[0],
20393
+ tokens: []
20394
+ };
20395
+ this.lexer.inline(token.text, token.tokens);
20396
+ return token;
20397
+ }
20398
+ };
20399
+
20400
+ _proto.escape = function escape(src) {
20401
+ var cap = this.rules.inline.escape.exec(src);
20402
+
20403
+ if (cap) {
20404
+ return {
20405
+ type: 'escape',
20406
+ raw: cap[0],
20407
+ text: _escape(cap[1])
20408
+ };
20409
+ }
20410
+ };
20411
+
20412
+ _proto.tag = function tag(src) {
20413
+ var cap = this.rules.inline.tag.exec(src);
20414
+
20415
+ if (cap) {
20416
+ if (!this.lexer.state.inLink && /^<a /i.test(cap[0])) {
20417
+ this.lexer.state.inLink = true;
20418
+ } else if (this.lexer.state.inLink && /^<\/a>/i.test(cap[0])) {
20419
+ this.lexer.state.inLink = false;
20420
+ }
20421
+
20422
+ if (!this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\s|>)/i.test(cap[0])) {
20423
+ this.lexer.state.inRawBlock = true;
20424
+ } else if (this.lexer.state.inRawBlock && /^<\/(pre|code|kbd|script)(\s|>)/i.test(cap[0])) {
20425
+ this.lexer.state.inRawBlock = false;
20426
+ }
20427
+
20428
+ return {
20429
+ type: this.options.sanitize ? 'text' : 'html',
20430
+ raw: cap[0],
20431
+ inLink: this.lexer.state.inLink,
20432
+ inRawBlock: this.lexer.state.inRawBlock,
20433
+ text: this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : _escape(cap[0]) : cap[0]
20434
+ };
20435
+ }
20436
+ };
20437
+
20438
+ _proto.link = function link(src) {
20439
+ var cap = this.rules.inline.link.exec(src);
20440
+
20441
+ if (cap) {
20442
+ var trimmedUrl = cap[2].trim();
20443
+
20444
+ if (!this.options.pedantic && /^</.test(trimmedUrl)) {
20445
+ // commonmark requires matching angle brackets
20446
+ if (!/>$/.test(trimmedUrl)) {
20447
+ return;
20448
+ } // ending angle bracket cannot be escaped
20449
+
20450
+
20451
+ var rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\');
20452
+
20453
+ if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {
20454
+ return;
20455
+ }
20456
+ } else {
20457
+ // find closing parenthesis
20458
+ var lastParenIndex = findClosingBracket(cap[2], '()');
20459
+
20460
+ if (lastParenIndex > -1) {
20461
+ var start = cap[0].indexOf('!') === 0 ? 5 : 4;
20462
+ var linkLen = start + cap[1].length + lastParenIndex;
20463
+ cap[2] = cap[2].substring(0, lastParenIndex);
20464
+ cap[0] = cap[0].substring(0, linkLen).trim();
20465
+ cap[3] = '';
20466
+ }
20467
+ }
20468
+
20469
+ var href = cap[2];
20470
+ var title = '';
20471
+
20472
+ if (this.options.pedantic) {
20473
+ // split pedantic href and title
20474
+ var link = /^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(href);
20475
+
20476
+ if (link) {
20477
+ href = link[1];
20478
+ title = link[3];
20479
+ }
20480
+ } else {
20481
+ title = cap[3] ? cap[3].slice(1, -1) : '';
20482
+ }
20483
+
20484
+ href = href.trim();
20485
+
20486
+ if (/^</.test(href)) {
20487
+ if (this.options.pedantic && !/>$/.test(trimmedUrl)) {
20488
+ // pedantic allows starting angle bracket without ending angle bracket
20489
+ href = href.slice(1);
20490
+ } else {
20491
+ href = href.slice(1, -1);
20492
+ }
20493
+ }
20494
+
20495
+ return outputLink(cap, {
20496
+ href: href ? href.replace(this.rules.inline._escapes, '$1') : href,
20497
+ title: title ? title.replace(this.rules.inline._escapes, '$1') : title
20498
+ }, cap[0], this.lexer);
20499
+ }
20500
+ };
20501
+
20502
+ _proto.reflink = function reflink(src, links) {
20503
+ var cap;
20504
+
20505
+ if ((cap = this.rules.inline.reflink.exec(src)) || (cap = this.rules.inline.nolink.exec(src))) {
20506
+ var link = (cap[2] || cap[1]).replace(/\s+/g, ' ');
20507
+ link = links[link.toLowerCase()];
20508
+
20509
+ if (!link || !link.href) {
20510
+ var text = cap[0].charAt(0);
20511
+ return {
20512
+ type: 'text',
20513
+ raw: text,
20514
+ text: text
20515
+ };
20516
+ }
20517
+
20518
+ return outputLink(cap, link, cap[0], this.lexer);
20519
+ }
20520
+ };
20521
+
20522
+ _proto.emStrong = function emStrong(src, maskedSrc, prevChar) {
20523
+ if (prevChar === void 0) {
20524
+ prevChar = '';
20525
+ }
20526
+
20527
+ var match = this.rules.inline.emStrong.lDelim.exec(src);
20528
+ if (!match) return; // _ can't be between two alphanumerics. \p{L}\p{N} includes non-english alphabet/numbers as well
20529
+
20530
+ if (match[3] && prevChar.match(/(?:[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08C7\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\u9FFC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7BF\uA7C2-\uA7CA\uA7F5-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE40-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD23\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF45\uDF51-\uDF54\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF30-\uDF3B]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF2\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82C[\uDC00-\uDD1E\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDD\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])/)) return;
20531
+ var nextChar = match[1] || match[2] || '';
20532
+
20533
+ if (!nextChar || nextChar && (prevChar === '' || this.rules.inline.punctuation.exec(prevChar))) {
20534
+ var lLength = match[0].length - 1;
20535
+ var rDelim,
20536
+ rLength,
20537
+ delimTotal = lLength,
20538
+ midDelimTotal = 0;
20539
+ var endReg = match[0][0] === '*' ? this.rules.inline.emStrong.rDelimAst : this.rules.inline.emStrong.rDelimUnd;
20540
+ endReg.lastIndex = 0; // Clip maskedSrc to same section of string as src (move to lexer?)
20541
+
20542
+ maskedSrc = maskedSrc.slice(-1 * src.length + lLength);
20543
+
20544
+ while ((match = endReg.exec(maskedSrc)) != null) {
20545
+ rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];
20546
+ if (!rDelim) continue; // skip single * in __abc*abc__
20547
+
20548
+ rLength = rDelim.length;
20549
+
20550
+ if (match[3] || match[4]) {
20551
+ // found another Left Delim
20552
+ delimTotal += rLength;
20553
+ continue;
20554
+ } else if (match[5] || match[6]) {
20555
+ // either Left or Right Delim
20556
+ if (lLength % 3 && !((lLength + rLength) % 3)) {
20557
+ midDelimTotal += rLength;
20558
+ continue; // CommonMark Emphasis Rules 9-10
20559
+ }
20560
+ }
20561
+
20562
+ delimTotal -= rLength;
20563
+ if (delimTotal > 0) continue; // Haven't found enough closing delimiters
20564
+ // Remove extra characters. *a*** -> *a*
20565
+
20566
+ rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal); // Create `em` if smallest delimiter has odd char count. *a***
20567
+
20568
+ if (Math.min(lLength, rLength) % 2) {
20569
+ var _text = src.slice(1, lLength + match.index + rLength);
20570
+
20571
+ return {
20572
+ type: 'em',
20573
+ raw: src.slice(0, lLength + match.index + rLength + 1),
20574
+ text: _text,
20575
+ tokens: this.lexer.inlineTokens(_text, [])
20576
+ };
20577
+ } // Create 'strong' if smallest delimiter has even char count. **a***
20578
+
20579
+
20580
+ var text = src.slice(2, lLength + match.index + rLength - 1);
20581
+ return {
20582
+ type: 'strong',
20583
+ raw: src.slice(0, lLength + match.index + rLength + 1),
20584
+ text: text,
20585
+ tokens: this.lexer.inlineTokens(text, [])
20586
+ };
20587
+ }
20588
+ }
20589
+ };
20590
+
20591
+ _proto.codespan = function codespan(src) {
20592
+ var cap = this.rules.inline.code.exec(src);
20593
+
20594
+ if (cap) {
20595
+ var text = cap[2].replace(/\n/g, ' ');
20596
+ var hasNonSpaceChars = /[^ ]/.test(text);
20597
+ var hasSpaceCharsOnBothEnds = /^ /.test(text) && / $/.test(text);
20598
+
20599
+ if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {
20600
+ text = text.substring(1, text.length - 1);
20601
+ }
20602
+
20603
+ text = _escape(text, true);
20604
+ return {
20605
+ type: 'codespan',
20606
+ raw: cap[0],
20607
+ text: text
20608
+ };
20609
+ }
20610
+ };
20611
+
20612
+ _proto.br = function br(src) {
20613
+ var cap = this.rules.inline.br.exec(src);
20614
+
20615
+ if (cap) {
20616
+ return {
20617
+ type: 'br',
20618
+ raw: cap[0]
20619
+ };
20620
+ }
20621
+ };
20622
+
20623
+ _proto.del = function del(src) {
20624
+ var cap = this.rules.inline.del.exec(src);
20625
+
20626
+ if (cap) {
20627
+ return {
20628
+ type: 'del',
20629
+ raw: cap[0],
20630
+ text: cap[2],
20631
+ tokens: this.lexer.inlineTokens(cap[2], [])
20632
+ };
20633
+ }
20634
+ };
20635
+
20636
+ _proto.autolink = function autolink(src, mangle) {
20637
+ var cap = this.rules.inline.autolink.exec(src);
20638
+
20639
+ if (cap) {
20640
+ var text, href;
20641
+
20642
+ if (cap[2] === '@') {
20643
+ text = _escape(this.options.mangle ? mangle(cap[1]) : cap[1]);
20644
+ href = 'mailto:' + text;
20645
+ } else {
20646
+ text = _escape(cap[1]);
20647
+ href = text;
20648
+ }
20649
+
20650
+ return {
20651
+ type: 'link',
20652
+ raw: cap[0],
20653
+ text: text,
20654
+ href: href,
20655
+ tokens: [{
20656
+ type: 'text',
20657
+ raw: text,
20658
+ text: text
20659
+ }]
20660
+ };
20661
+ }
20662
+ };
20663
+
20664
+ _proto.url = function url(src, mangle) {
20665
+ var cap;
20666
+
20667
+ if (cap = this.rules.inline.url.exec(src)) {
20668
+ var text, href;
20669
+
20670
+ if (cap[2] === '@') {
20671
+ text = _escape(this.options.mangle ? mangle(cap[0]) : cap[0]);
20672
+ href = 'mailto:' + text;
20673
+ } else {
20674
+ // do extended autolink path validation
20675
+ var prevCapZero;
20676
+
20677
+ do {
20678
+ prevCapZero = cap[0];
20679
+ cap[0] = this.rules.inline._backpedal.exec(cap[0])[0];
20680
+ } while (prevCapZero !== cap[0]);
20681
+
20682
+ text = _escape(cap[0]);
20683
+
20684
+ if (cap[1] === 'www.') {
20685
+ href = 'http://' + text;
20686
+ } else {
20687
+ href = text;
20688
+ }
20689
+ }
20690
+
20691
+ return {
20692
+ type: 'link',
20693
+ raw: cap[0],
20694
+ text: text,
20695
+ href: href,
20696
+ tokens: [{
20697
+ type: 'text',
20698
+ raw: text,
20699
+ text: text
20700
+ }]
20701
+ };
20702
+ }
20703
+ };
20704
+
20705
+ _proto.inlineText = function inlineText(src, smartypants) {
20706
+ var cap = this.rules.inline.text.exec(src);
20707
+
20708
+ if (cap) {
20709
+ var text;
20710
+
20711
+ if (this.lexer.state.inRawBlock) {
20712
+ text = this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : _escape(cap[0]) : cap[0];
20713
+ } else {
20714
+ text = _escape(this.options.smartypants ? smartypants(cap[0]) : cap[0]);
20715
+ }
20716
+
20717
+ return {
20718
+ type: 'text',
20719
+ raw: cap[0],
20720
+ text: text
20721
+ };
20722
+ }
20723
+ };
20724
+
20725
+ return Tokenizer;
20726
+ }();
20727
+
20728
+ var noopTest = helpers.noopTest,
20729
+ edit = helpers.edit,
20730
+ merge$1 = helpers.merge;
20731
+ /**
20732
+ * Block-Level Grammar
20733
+ */
20734
+
20735
+ var block$1 = {
20736
+ newline: /^(?: *(?:\n|$))+/,
20737
+ code: /^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,
20738
+ fences: /^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,
20739
+ hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,
20740
+ heading: /^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,
20741
+ blockquote: /^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,
20742
+ list: /^( {0,3}bull)( [^\n]+?)?(?:\n|$)/,
20743
+ html: '^ {0,3}(?:' // optional indentation
20744
+ + '<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)' // (1)
20745
+ + '|comment[^\\n]*(\\n+|$)' // (2)
20746
+ + '|<\\?[\\s\\S]*?(?:\\?>\\n*|$)' // (3)
20747
+ + '|<![A-Z][\\s\\S]*?(?:>\\n*|$)' // (4)
20748
+ + '|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)' // (5)
20749
+ + '|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n *)+\\n|$)' // (6)
20750
+ + '|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)' // (7) open tag
20751
+ + '|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)' // (7) closing tag
20752
+ + ')',
20753
+ def: /^ {0,3}\[(label)\]: *\n? *<?([^\s>]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,
20754
+ table: noopTest,
20755
+ lheading: /^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,
20756
+ // regex template, placeholders will be replaced according to different paragraph
20757
+ // interruption rules of commonmark and the original markdown spec:
20758
+ _paragraph: /^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html| +\n)[^\n]+)*)/,
20759
+ text: /^[^\n]+/
20760
+ };
20761
+ block$1._label = /(?!\s*\])(?:\\[\[\]]|[^\[\]])+/;
20762
+ block$1._title = /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/;
20763
+ block$1.def = edit(block$1.def).replace('label', block$1._label).replace('title', block$1._title).getRegex();
20764
+ block$1.bullet = /(?:[*+-]|\d{1,9}[.)])/;
20765
+ block$1.listItemStart = edit(/^( *)(bull) */).replace('bull', block$1.bullet).getRegex();
20766
+ block$1.list = edit(block$1.list).replace(/bull/g, block$1.bullet).replace('hr', '\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))').replace('def', '\\n+(?=' + block$1.def.source + ')').getRegex();
20767
+ block$1._tag = 'address|article|aside|base|basefont|blockquote|body|caption' + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption' + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe' + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option' + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr' + '|track|ul';
20768
+ block$1._comment = /<!--(?!-?>)[\s\S]*?(?:-->|$)/;
20769
+ block$1.html = edit(block$1.html, 'i').replace('comment', block$1._comment).replace('tag', block$1._tag).replace('attribute', / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex();
20770
+ block$1.paragraph = edit(block$1._paragraph).replace('hr', block$1.hr).replace('heading', ' {0,3}#{1,6} ').replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs
20771
+ .replace('blockquote', ' {0,3}>').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt
20772
+ .replace('html', '</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)').replace('tag', block$1._tag) // pars can be interrupted by type (6) html blocks
20773
+ .getRegex();
20774
+ block$1.blockquote = edit(block$1.blockquote).replace('paragraph', block$1.paragraph).getRegex();
20775
+ /**
20776
+ * Normal Block Grammar
20777
+ */
20778
+
20779
+ block$1.normal = merge$1({}, block$1);
20780
+ /**
20781
+ * GFM Block Grammar
20782
+ */
20783
+
20784
+ block$1.gfm = merge$1({}, block$1.normal, {
20785
+ table: '^ *([^\\n ].*\\|.*)\\n' // Header
20786
+ + ' {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?' // Align
20787
+ + '(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)' // Cells
20788
+
20789
+ });
20790
+ block$1.gfm.table = edit(block$1.gfm.table).replace('hr', block$1.hr).replace('heading', ' {0,3}#{1,6} ').replace('blockquote', ' {0,3}>').replace('code', ' {4}[^\\n]').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt
20791
+ .replace('html', '</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)').replace('tag', block$1._tag) // tables can be interrupted by type (6) html blocks
20792
+ .getRegex();
20793
+ /**
20794
+ * Pedantic grammar (original John Gruber's loose markdown specification)
20795
+ */
20796
+
20797
+ block$1.pedantic = merge$1({}, block$1.normal, {
20798
+ html: edit('^ *(?:comment *(?:\\n|\\s*$)' + '|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)' // closed tag
20799
+ + '|<tag(?:"[^"]*"|\'[^\']*\'|\\s[^\'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))').replace('comment', block$1._comment).replace(/tag/g, '(?!(?:' + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub' + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)' + '\\b)\\w+(?!:|[^\\w\\s@]*@)\\b').getRegex(),
20800
+ def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,
20801
+ heading: /^(#{1,6})(.*)(?:\n+|$)/,
20802
+ fences: noopTest,
20803
+ // fences not supported
20804
+ paragraph: edit(block$1.normal._paragraph).replace('hr', block$1.hr).replace('heading', ' *#{1,6} *[^\n]').replace('lheading', block$1.lheading).replace('blockquote', ' {0,3}>').replace('|fences', '').replace('|list', '').replace('|html', '').getRegex()
20805
+ });
20806
+ /**
20807
+ * Inline-Level Grammar
20808
+ */
20809
+
20810
+ var inline$1 = {
20811
+ escape: /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,
20812
+ autolink: /^<(scheme:[^\s\x00-\x1f<>]*|email)>/,
20813
+ url: noopTest,
20814
+ tag: '^comment' + '|^</[a-zA-Z][\\w:-]*\\s*>' // self-closing tag
20815
+ + '|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>' // open tag
20816
+ + '|^<\\?[\\s\\S]*?\\?>' // processing instruction, e.g. <?php ?>
20817
+ + '|^<![a-zA-Z]+\\s[\\s\\S]*?>' // declaration, e.g. <!DOCTYPE html>
20818
+ + '|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>',
20819
+ // CDATA section
20820
+ link: /^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,
20821
+ reflink: /^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,
20822
+ nolink: /^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,
20823
+ reflinkSearch: 'reflink|nolink(?!\\()',
20824
+ emStrong: {
20825
+ lDelim: /^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,
20826
+ // (1) and (2) can only be a Right Delimiter. (3) and (4) can only be Left. (5) and (6) can be either Left or Right.
20827
+ // () Skip orphan delim inside strong (1) #*** (2) a***#, a*** (3) #***a, ***a (4) ***# (5) #***# (6) a***a
20828
+ rDelimAst: /^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,
20829
+ rDelimUnd: /^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/ // ^- Not allowed for _
20830
+
20831
+ },
20832
+ code: /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,
20833
+ br: /^( {2,}|\\)\n(?!\s*$)/,
20834
+ del: noopTest,
20835
+ text: /^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,
20836
+ punctuation: /^([\spunctuation])/
20837
+ }; // list of punctuation marks from CommonMark spec
20838
+ // without * and _ to handle the different emphasis markers * and _
20839
+
20840
+ inline$1._punctuation = '!"#$%&\'()+\\-.,/:;<=>?@\\[\\]`^{|}~';
20841
+ inline$1.punctuation = edit(inline$1.punctuation).replace(/punctuation/g, inline$1._punctuation).getRegex(); // sequences em should skip over [title](link), `code`, <html>
20842
+
20843
+ inline$1.blockSkip = /\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g;
20844
+ inline$1.escapedEmSt = /\\\*|\\_/g;
20845
+ inline$1._comment = edit(block$1._comment).replace('(?:-->|$)', '-->').getRegex();
20846
+ inline$1.emStrong.lDelim = edit(inline$1.emStrong.lDelim).replace(/punct/g, inline$1._punctuation).getRegex();
20847
+ inline$1.emStrong.rDelimAst = edit(inline$1.emStrong.rDelimAst, 'g').replace(/punct/g, inline$1._punctuation).getRegex();
20848
+ inline$1.emStrong.rDelimUnd = edit(inline$1.emStrong.rDelimUnd, 'g').replace(/punct/g, inline$1._punctuation).getRegex();
20849
+ inline$1._escapes = /\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g;
20850
+ inline$1._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;
20851
+ inline$1._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;
20852
+ inline$1.autolink = edit(inline$1.autolink).replace('scheme', inline$1._scheme).replace('email', inline$1._email).getRegex();
20853
+ inline$1._attribute = /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/;
20854
+ inline$1.tag = edit(inline$1.tag).replace('comment', inline$1._comment).replace('attribute', inline$1._attribute).getRegex();
20855
+ inline$1._label = /(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/;
20856
+ inline$1._href = /<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/;
20857
+ inline$1._title = /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/;
20858
+ inline$1.link = edit(inline$1.link).replace('label', inline$1._label).replace('href', inline$1._href).replace('title', inline$1._title).getRegex();
20859
+ inline$1.reflink = edit(inline$1.reflink).replace('label', inline$1._label).getRegex();
20860
+ inline$1.reflinkSearch = edit(inline$1.reflinkSearch, 'g').replace('reflink', inline$1.reflink).replace('nolink', inline$1.nolink).getRegex();
20861
+ /**
20862
+ * Normal Inline Grammar
20863
+ */
20864
+
20865
+ inline$1.normal = merge$1({}, inline$1);
20866
+ /**
20867
+ * Pedantic Inline Grammar
20868
+ */
20869
+
20870
+ inline$1.pedantic = merge$1({}, inline$1.normal, {
20871
+ strong: {
20872
+ start: /^__|\*\*/,
20873
+ middle: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,
20874
+ endAst: /\*\*(?!\*)/g,
20875
+ endUnd: /__(?!_)/g
20876
+ },
20877
+ em: {
20878
+ start: /^_|\*/,
20879
+ middle: /^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,
20880
+ endAst: /\*(?!\*)/g,
20881
+ endUnd: /_(?!_)/g
20882
+ },
20883
+ link: edit(/^!?\[(label)\]\((.*?)\)/).replace('label', inline$1._label).getRegex(),
20884
+ reflink: edit(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace('label', inline$1._label).getRegex()
20885
+ });
20886
+ /**
20887
+ * GFM Inline Grammar
20888
+ */
20889
+
20890
+ inline$1.gfm = merge$1({}, inline$1.normal, {
20891
+ escape: edit(inline$1.escape).replace('])', '~|])').getRegex(),
20892
+ _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,
20893
+ url: /^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,
20894
+ _backpedal: /(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,
20895
+ del: /^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,
20896
+ text: /^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/
20897
+ });
20898
+ inline$1.gfm.url = edit(inline$1.gfm.url, 'i').replace('email', inline$1.gfm._extended_email).getRegex();
20899
+ /**
20900
+ * GFM + Line Breaks Inline Grammar
20901
+ */
20902
+
20903
+ inline$1.breaks = merge$1({}, inline$1.gfm, {
20904
+ br: edit(inline$1.br).replace('{2,}', '*').getRegex(),
20905
+ text: edit(inline$1.gfm.text).replace('\\b_', '\\b_| {2,}\\n').replace(/\{2,\}/g, '*').getRegex()
20906
+ });
20907
+ var rules = {
20908
+ block: block$1,
20909
+ inline: inline$1
20910
+ };
20911
+
20912
+ var Tokenizer$1 = Tokenizer_1;
20913
+ var defaults$3 = defaults$5.exports.defaults;
20914
+ var block = rules.block,
20915
+ inline = rules.inline;
20916
+ var repeatString = helpers.repeatString;
20917
+ /**
20918
+ * smartypants text replacement
20919
+ */
20920
+
20921
+ function smartypants(text) {
20922
+ return text // em-dashes
20923
+ .replace(/---/g, "\u2014") // en-dashes
20924
+ .replace(/--/g, "\u2013") // opening singles
20925
+ .replace(/(^|[-\u2014/(\[{"\s])'/g, "$1\u2018") // closing singles & apostrophes
20926
+ .replace(/'/g, "\u2019") // opening doubles
20927
+ .replace(/(^|[-\u2014/(\[{\u2018\s])"/g, "$1\u201C") // closing doubles
20928
+ .replace(/"/g, "\u201D") // ellipses
20929
+ .replace(/\.{3}/g, "\u2026");
20930
+ }
20931
+ /**
20932
+ * mangle email addresses
20933
+ */
20934
+
20935
+
20936
+ function mangle(text) {
20937
+ var out = '',
20938
+ i,
20939
+ ch;
20940
+ var l = text.length;
20941
+
20942
+ for (i = 0; i < l; i++) {
20943
+ ch = text.charCodeAt(i);
20944
+
20945
+ if (Math.random() > 0.5) {
20946
+ ch = 'x' + ch.toString(16);
20947
+ }
20948
+
20949
+ out += '&#' + ch + ';';
20950
+ }
20951
+
20952
+ return out;
20953
+ }
20954
+ /**
20955
+ * Block Lexer
20956
+ */
20957
+
20958
+
20959
+ var Lexer_1 = /*#__PURE__*/function () {
20960
+ function Lexer(options) {
20961
+ this.tokens = [];
20962
+ this.tokens.links = Object.create(null);
20963
+ this.options = options || defaults$3;
20964
+ this.options.tokenizer = this.options.tokenizer || new Tokenizer$1();
20965
+ this.tokenizer = this.options.tokenizer;
20966
+ this.tokenizer.options = this.options;
20967
+ this.tokenizer.lexer = this;
20968
+ this.inlineQueue = [];
20969
+ this.state = {
20970
+ inLink: false,
20971
+ inRawBlock: false,
20972
+ top: true
20973
+ };
20974
+ var rules = {
20975
+ block: block.normal,
20976
+ inline: inline.normal
20977
+ };
20978
+
20979
+ if (this.options.pedantic) {
20980
+ rules.block = block.pedantic;
20981
+ rules.inline = inline.pedantic;
20982
+ } else if (this.options.gfm) {
20983
+ rules.block = block.gfm;
20984
+
20985
+ if (this.options.breaks) {
20986
+ rules.inline = inline.breaks;
20987
+ } else {
20988
+ rules.inline = inline.gfm;
20989
+ }
20990
+ }
20991
+
20992
+ this.tokenizer.rules = rules;
20993
+ }
20994
+ /**
20995
+ * Expose Rules
20996
+ */
20997
+
20998
+
20999
+ /**
21000
+ * Static Lex Method
21001
+ */
21002
+ Lexer.lex = function lex(src, options) {
21003
+ var lexer = new Lexer(options);
21004
+ return lexer.lex(src);
21005
+ }
21006
+ /**
21007
+ * Static Lex Inline Method
21008
+ */
21009
+ ;
21010
+
21011
+ Lexer.lexInline = function lexInline(src, options) {
21012
+ var lexer = new Lexer(options);
21013
+ return lexer.inlineTokens(src);
21014
+ }
21015
+ /**
21016
+ * Preprocessing
21017
+ */
21018
+ ;
21019
+
21020
+ var _proto = Lexer.prototype;
21021
+
21022
+ _proto.lex = function lex(src) {
21023
+ src = src.replace(/\r\n|\r/g, '\n').replace(/\t/g, ' ');
21024
+ this.blockTokens(src, this.tokens);
21025
+ var next;
21026
+
21027
+ while (next = this.inlineQueue.shift()) {
21028
+ this.inlineTokens(next.src, next.tokens);
21029
+ }
21030
+
21031
+ return this.tokens;
21032
+ }
21033
+ /**
21034
+ * Lexing
21035
+ */
21036
+ ;
21037
+
21038
+ _proto.blockTokens = function blockTokens(src, tokens) {
21039
+ var _this = this;
21040
+
21041
+ if (tokens === void 0) {
21042
+ tokens = [];
21043
+ }
21044
+
21045
+ if (this.options.pedantic) {
21046
+ src = src.replace(/^ +$/gm, '');
21047
+ }
21048
+
21049
+ var token, lastToken, cutSrc, lastParagraphClipped;
21050
+
21051
+ while (src) {
21052
+ if (this.options.extensions && this.options.extensions.block && this.options.extensions.block.some(function (extTokenizer) {
21053
+ if (token = extTokenizer.call({
21054
+ lexer: _this
21055
+ }, src, tokens)) {
21056
+ src = src.substring(token.raw.length);
21057
+ tokens.push(token);
21058
+ return true;
21059
+ }
21060
+
21061
+ return false;
21062
+ })) {
21063
+ continue;
21064
+ } // newline
21065
+
21066
+
21067
+ if (token = this.tokenizer.space(src)) {
21068
+ src = src.substring(token.raw.length);
21069
+
21070
+ if (token.type) {
21071
+ tokens.push(token);
21072
+ }
21073
+
21074
+ continue;
21075
+ } // code
21076
+
21077
+
21078
+ if (token = this.tokenizer.code(src)) {
21079
+ src = src.substring(token.raw.length);
21080
+ lastToken = tokens[tokens.length - 1]; // An indented code block cannot interrupt a paragraph.
21081
+
21082
+ if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {
21083
+ lastToken.raw += '\n' + token.raw;
21084
+ lastToken.text += '\n' + token.text;
21085
+ this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;
21086
+ } else {
21087
+ tokens.push(token);
21088
+ }
21089
+
21090
+ continue;
21091
+ } // fences
21092
+
21093
+
21094
+ if (token = this.tokenizer.fences(src)) {
21095
+ src = src.substring(token.raw.length);
21096
+ tokens.push(token);
21097
+ continue;
21098
+ } // heading
21099
+
21100
+
21101
+ if (token = this.tokenizer.heading(src)) {
21102
+ src = src.substring(token.raw.length);
21103
+ tokens.push(token);
21104
+ continue;
21105
+ } // hr
21106
+
21107
+
21108
+ if (token = this.tokenizer.hr(src)) {
21109
+ src = src.substring(token.raw.length);
21110
+ tokens.push(token);
21111
+ continue;
21112
+ } // blockquote
21113
+
21114
+
21115
+ if (token = this.tokenizer.blockquote(src)) {
21116
+ src = src.substring(token.raw.length);
21117
+ tokens.push(token);
21118
+ continue;
21119
+ } // list
21120
+
21121
+
21122
+ if (token = this.tokenizer.list(src)) {
21123
+ src = src.substring(token.raw.length);
21124
+ tokens.push(token);
21125
+ continue;
21126
+ } // html
21127
+
21128
+
21129
+ if (token = this.tokenizer.html(src)) {
21130
+ src = src.substring(token.raw.length);
21131
+ tokens.push(token);
21132
+ continue;
21133
+ } // def
21134
+
21135
+
21136
+ if (token = this.tokenizer.def(src)) {
21137
+ src = src.substring(token.raw.length);
21138
+ lastToken = tokens[tokens.length - 1];
21139
+
21140
+ if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {
21141
+ lastToken.raw += '\n' + token.raw;
21142
+ lastToken.text += '\n' + token.raw;
21143
+ this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;
21144
+ } else if (!this.tokens.links[token.tag]) {
21145
+ this.tokens.links[token.tag] = {
21146
+ href: token.href,
21147
+ title: token.title
21148
+ };
21149
+ }
21150
+
21151
+ continue;
21152
+ } // table (gfm)
21153
+
21154
+
21155
+ if (token = this.tokenizer.table(src)) {
21156
+ src = src.substring(token.raw.length);
21157
+ tokens.push(token);
21158
+ continue;
21159
+ } // lheading
21160
+
21161
+
21162
+ if (token = this.tokenizer.lheading(src)) {
21163
+ src = src.substring(token.raw.length);
21164
+ tokens.push(token);
21165
+ continue;
21166
+ } // top-level paragraph
21167
+ // prevent paragraph consuming extensions by clipping 'src' to extension start
21168
+
21169
+
21170
+ cutSrc = src;
21171
+
21172
+ if (this.options.extensions && this.options.extensions.startBlock) {
21173
+ (function () {
21174
+ var startIndex = Infinity;
21175
+ var tempSrc = src.slice(1);
21176
+ var tempStart = void 0;
21177
+
21178
+ _this.options.extensions.startBlock.forEach(function (getStartIndex) {
21179
+ tempStart = getStartIndex.call({
21180
+ lexer: this
21181
+ }, tempSrc);
21182
+
21183
+ if (typeof tempStart === 'number' && tempStart >= 0) {
21184
+ startIndex = Math.min(startIndex, tempStart);
21185
+ }
21186
+ });
21187
+
21188
+ if (startIndex < Infinity && startIndex >= 0) {
21189
+ cutSrc = src.substring(0, startIndex + 1);
21190
+ }
21191
+ })();
21192
+ }
21193
+
21194
+ if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {
21195
+ lastToken = tokens[tokens.length - 1];
21196
+
21197
+ if (lastParagraphClipped && lastToken.type === 'paragraph') {
21198
+ lastToken.raw += '\n' + token.raw;
21199
+ lastToken.text += '\n' + token.text;
21200
+ this.inlineQueue.pop();
21201
+ this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;
21202
+ } else {
21203
+ tokens.push(token);
21204
+ }
21205
+
21206
+ lastParagraphClipped = cutSrc.length !== src.length;
21207
+ src = src.substring(token.raw.length);
21208
+ continue;
21209
+ } // text
21210
+
21211
+
21212
+ if (token = this.tokenizer.text(src)) {
21213
+ src = src.substring(token.raw.length);
21214
+ lastToken = tokens[tokens.length - 1];
21215
+
21216
+ if (lastToken && lastToken.type === 'text') {
21217
+ lastToken.raw += '\n' + token.raw;
21218
+ lastToken.text += '\n' + token.text;
21219
+ this.inlineQueue.pop();
21220
+ this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;
21221
+ } else {
21222
+ tokens.push(token);
21223
+ }
21224
+
21225
+ continue;
21226
+ }
21227
+
21228
+ if (src) {
21229
+ var errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);
21230
+
21231
+ if (this.options.silent) {
21232
+ console.error(errMsg);
21233
+ break;
21234
+ } else {
21235
+ throw new Error(errMsg);
21236
+ }
21237
+ }
21238
+ }
21239
+
21240
+ this.state.top = true;
21241
+ return tokens;
21242
+ };
21243
+
21244
+ _proto.inline = function inline(src, tokens) {
21245
+ this.inlineQueue.push({
21246
+ src: src,
21247
+ tokens: tokens
21248
+ });
21249
+ }
21250
+ /**
21251
+ * Lexing/Compiling
21252
+ */
21253
+ ;
21254
+
21255
+ _proto.inlineTokens = function inlineTokens(src, tokens) {
21256
+ var _this2 = this;
21257
+
21258
+ if (tokens === void 0) {
21259
+ tokens = [];
21260
+ }
21261
+
21262
+ var token, lastToken, cutSrc; // String with links masked to avoid interference with em and strong
21263
+
21264
+ var maskedSrc = src;
21265
+ var match;
21266
+ var keepPrevChar, prevChar; // Mask out reflinks
21267
+
21268
+ if (this.tokens.links) {
21269
+ var links = Object.keys(this.tokens.links);
21270
+
21271
+ if (links.length > 0) {
21272
+ while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {
21273
+ if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {
21274
+ maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);
21275
+ }
21276
+ }
21277
+ }
21278
+ } // Mask out other blocks
21279
+
21280
+
21281
+ while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {
21282
+ maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);
21283
+ } // Mask out escaped em & strong delimiters
21284
+
21285
+
21286
+ while ((match = this.tokenizer.rules.inline.escapedEmSt.exec(maskedSrc)) != null) {
21287
+ maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);
21288
+ }
21289
+
21290
+ while (src) {
21291
+ if (!keepPrevChar) {
21292
+ prevChar = '';
21293
+ }
21294
+
21295
+ keepPrevChar = false; // extensions
21296
+
21297
+ if (this.options.extensions && this.options.extensions.inline && this.options.extensions.inline.some(function (extTokenizer) {
21298
+ if (token = extTokenizer.call({
21299
+ lexer: _this2
21300
+ }, src, tokens)) {
21301
+ src = src.substring(token.raw.length);
21302
+ tokens.push(token);
21303
+ return true;
21304
+ }
21305
+
21306
+ return false;
21307
+ })) {
21308
+ continue;
21309
+ } // escape
21310
+
21311
+
21312
+ if (token = this.tokenizer.escape(src)) {
21313
+ src = src.substring(token.raw.length);
21314
+ tokens.push(token);
21315
+ continue;
21316
+ } // tag
21317
+
21318
+
21319
+ if (token = this.tokenizer.tag(src)) {
21320
+ src = src.substring(token.raw.length);
21321
+ lastToken = tokens[tokens.length - 1];
21322
+
21323
+ if (lastToken && token.type === 'text' && lastToken.type === 'text') {
21324
+ lastToken.raw += token.raw;
21325
+ lastToken.text += token.text;
21326
+ } else {
21327
+ tokens.push(token);
21328
+ }
21329
+
21330
+ continue;
21331
+ } // link
21332
+
21333
+
21334
+ if (token = this.tokenizer.link(src)) {
21335
+ src = src.substring(token.raw.length);
21336
+ tokens.push(token);
21337
+ continue;
21338
+ } // reflink, nolink
21339
+
21340
+
21341
+ if (token = this.tokenizer.reflink(src, this.tokens.links)) {
21342
+ src = src.substring(token.raw.length);
21343
+ lastToken = tokens[tokens.length - 1];
21344
+
21345
+ if (lastToken && token.type === 'text' && lastToken.type === 'text') {
21346
+ lastToken.raw += token.raw;
21347
+ lastToken.text += token.text;
21348
+ } else {
21349
+ tokens.push(token);
21350
+ }
21351
+
21352
+ continue;
21353
+ } // em & strong
21354
+
21355
+
21356
+ if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {
21357
+ src = src.substring(token.raw.length);
21358
+ tokens.push(token);
21359
+ continue;
21360
+ } // code
21361
+
21362
+
21363
+ if (token = this.tokenizer.codespan(src)) {
21364
+ src = src.substring(token.raw.length);
21365
+ tokens.push(token);
21366
+ continue;
21367
+ } // br
21368
+
21369
+
21370
+ if (token = this.tokenizer.br(src)) {
21371
+ src = src.substring(token.raw.length);
21372
+ tokens.push(token);
21373
+ continue;
21374
+ } // del (gfm)
21375
+
21376
+
21377
+ if (token = this.tokenizer.del(src)) {
21378
+ src = src.substring(token.raw.length);
21379
+ tokens.push(token);
21380
+ continue;
21381
+ } // autolink
21382
+
21383
+
21384
+ if (token = this.tokenizer.autolink(src, mangle)) {
21385
+ src = src.substring(token.raw.length);
21386
+ tokens.push(token);
21387
+ continue;
21388
+ } // url (gfm)
21389
+
21390
+
21391
+ if (!this.state.inLink && (token = this.tokenizer.url(src, mangle))) {
21392
+ src = src.substring(token.raw.length);
21393
+ tokens.push(token);
21394
+ continue;
21395
+ } // text
21396
+ // prevent inlineText consuming extensions by clipping 'src' to extension start
21397
+
21398
+
21399
+ cutSrc = src;
21400
+
21401
+ if (this.options.extensions && this.options.extensions.startInline) {
21402
+ (function () {
21403
+ var startIndex = Infinity;
21404
+ var tempSrc = src.slice(1);
21405
+ var tempStart = void 0;
21406
+
21407
+ _this2.options.extensions.startInline.forEach(function (getStartIndex) {
21408
+ tempStart = getStartIndex.call({
21409
+ lexer: this
21410
+ }, tempSrc);
21411
+
21412
+ if (typeof tempStart === 'number' && tempStart >= 0) {
21413
+ startIndex = Math.min(startIndex, tempStart);
21414
+ }
21415
+ });
21416
+
21417
+ if (startIndex < Infinity && startIndex >= 0) {
21418
+ cutSrc = src.substring(0, startIndex + 1);
21419
+ }
21420
+ })();
21421
+ }
21422
+
21423
+ if (token = this.tokenizer.inlineText(cutSrc, smartypants)) {
21424
+ src = src.substring(token.raw.length);
21425
+
21426
+ if (token.raw.slice(-1) !== '_') {
21427
+ // Track prevChar before string of ____ started
21428
+ prevChar = token.raw.slice(-1);
21429
+ }
21430
+
21431
+ keepPrevChar = true;
21432
+ lastToken = tokens[tokens.length - 1];
21433
+
21434
+ if (lastToken && lastToken.type === 'text') {
21435
+ lastToken.raw += token.raw;
21436
+ lastToken.text += token.text;
21437
+ } else {
21438
+ tokens.push(token);
21439
+ }
21440
+
21441
+ continue;
21442
+ }
21443
+
21444
+ if (src) {
21445
+ var errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);
21446
+
21447
+ if (this.options.silent) {
21448
+ console.error(errMsg);
21449
+ break;
21450
+ } else {
21451
+ throw new Error(errMsg);
21452
+ }
21453
+ }
21454
+ }
21455
+
21456
+ return tokens;
21457
+ };
21458
+
21459
+ _createClass(Lexer, null, [{
21460
+ key: "rules",
21461
+ get: function get() {
21462
+ return {
21463
+ block: block,
21464
+ inline: inline
21465
+ };
21466
+ }
21467
+ }]);
21468
+
21469
+ return Lexer;
21470
+ }();
21471
+
21472
+ var defaults$2 = defaults$5.exports.defaults;
21473
+ var cleanUrl = helpers.cleanUrl,
21474
+ escape$1 = helpers.escape;
21475
+ /**
21476
+ * Renderer
21477
+ */
21478
+
21479
+ var Renderer_1 = /*#__PURE__*/function () {
21480
+ function Renderer(options) {
21481
+ this.options = options || defaults$2;
21482
+ }
21483
+
21484
+ var _proto = Renderer.prototype;
21485
+
21486
+ _proto.code = function code(_code, infostring, escaped) {
21487
+ var lang = (infostring || '').match(/\S*/)[0];
21488
+
21489
+ if (this.options.highlight) {
21490
+ var out = this.options.highlight(_code, lang);
21491
+
21492
+ if (out != null && out !== _code) {
21493
+ escaped = true;
21494
+ _code = out;
21495
+ }
21496
+ }
21497
+
21498
+ _code = _code.replace(/\n$/, '') + '\n';
21499
+
21500
+ if (!lang) {
21501
+ return '<pre><code>' + (escaped ? _code : escape$1(_code, true)) + '</code></pre>\n';
21502
+ }
21503
+
21504
+ return '<pre><code class="' + this.options.langPrefix + escape$1(lang, true) + '">' + (escaped ? _code : escape$1(_code, true)) + '</code></pre>\n';
21505
+ };
21506
+
21507
+ _proto.blockquote = function blockquote(quote) {
21508
+ return '<blockquote>\n' + quote + '</blockquote>\n';
21509
+ };
21510
+
21511
+ _proto.html = function html(_html) {
21512
+ return _html;
21513
+ };
21514
+
21515
+ _proto.heading = function heading(text, level, raw, slugger) {
21516
+ if (this.options.headerIds) {
21517
+ return '<h' + level + ' id="' + this.options.headerPrefix + slugger.slug(raw) + '">' + text + '</h' + level + '>\n';
21518
+ } // ignore IDs
21519
+
21520
+
21521
+ return '<h' + level + '>' + text + '</h' + level + '>\n';
21522
+ };
21523
+
21524
+ _proto.hr = function hr() {
21525
+ return this.options.xhtml ? '<hr/>\n' : '<hr>\n';
21526
+ };
21527
+
21528
+ _proto.list = function list(body, ordered, start) {
21529
+ var type = ordered ? 'ol' : 'ul',
21530
+ startatt = ordered && start !== 1 ? ' start="' + start + '"' : '';
21531
+ return '<' + type + startatt + '>\n' + body + '</' + type + '>\n';
21532
+ };
21533
+
21534
+ _proto.listitem = function listitem(text) {
21535
+ return '<li>' + text + '</li>\n';
21536
+ };
21537
+
21538
+ _proto.checkbox = function checkbox(checked) {
21539
+ return '<input ' + (checked ? 'checked="" ' : '') + 'disabled="" type="checkbox"' + (this.options.xhtml ? ' /' : '') + '> ';
21540
+ };
21541
+
21542
+ _proto.paragraph = function paragraph(text) {
21543
+ return '<p>' + text + '</p>\n';
21544
+ };
21545
+
21546
+ _proto.table = function table(header, body) {
21547
+ if (body) body = '<tbody>' + body + '</tbody>';
21548
+ return '<table>\n' + '<thead>\n' + header + '</thead>\n' + body + '</table>\n';
21549
+ };
21550
+
21551
+ _proto.tablerow = function tablerow(content) {
21552
+ return '<tr>\n' + content + '</tr>\n';
21553
+ };
21554
+
21555
+ _proto.tablecell = function tablecell(content, flags) {
21556
+ var type = flags.header ? 'th' : 'td';
21557
+ var tag = flags.align ? '<' + type + ' align="' + flags.align + '">' : '<' + type + '>';
21558
+ return tag + content + '</' + type + '>\n';
21559
+ } // span level renderer
21560
+ ;
21561
+
21562
+ _proto.strong = function strong(text) {
21563
+ return '<strong>' + text + '</strong>';
21564
+ };
21565
+
21566
+ _proto.em = function em(text) {
21567
+ return '<em>' + text + '</em>';
21568
+ };
21569
+
21570
+ _proto.codespan = function codespan(text) {
21571
+ return '<code>' + text + '</code>';
21572
+ };
21573
+
21574
+ _proto.br = function br() {
21575
+ return this.options.xhtml ? '<br/>' : '<br>';
21576
+ };
21577
+
21578
+ _proto.del = function del(text) {
21579
+ return '<del>' + text + '</del>';
21580
+ };
21581
+
21582
+ _proto.link = function link(href, title, text) {
21583
+ href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);
21584
+
21585
+ if (href === null) {
21586
+ return text;
21587
+ }
21588
+
21589
+ var out = '<a href="' + escape$1(href) + '"';
21590
+
21591
+ if (title) {
21592
+ out += ' title="' + title + '"';
21593
+ }
21594
+
21595
+ out += '>' + text + '</a>';
21596
+ return out;
21597
+ };
21598
+
21599
+ _proto.image = function image(href, title, text) {
21600
+ href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);
21601
+
21602
+ if (href === null) {
21603
+ return text;
21604
+ }
21605
+
21606
+ var out = '<img src="' + href + '" alt="' + text + '"';
21607
+
21608
+ if (title) {
21609
+ out += ' title="' + title + '"';
21610
+ }
21611
+
21612
+ out += this.options.xhtml ? '/>' : '>';
21613
+ return out;
21614
+ };
21615
+
21616
+ _proto.text = function text(_text) {
21617
+ return _text;
21618
+ };
21619
+
21620
+ return Renderer;
21621
+ }();
21622
+
21623
+ /**
21624
+ * TextRenderer
21625
+ * returns only the textual part of the token
21626
+ */
21627
+
21628
+ var TextRenderer_1 = /*#__PURE__*/function () {
21629
+ function TextRenderer() {}
21630
+
21631
+ var _proto = TextRenderer.prototype;
21632
+
21633
+ // no need for block level renderers
21634
+ _proto.strong = function strong(text) {
21635
+ return text;
21636
+ };
21637
+
21638
+ _proto.em = function em(text) {
21639
+ return text;
21640
+ };
21641
+
21642
+ _proto.codespan = function codespan(text) {
21643
+ return text;
21644
+ };
21645
+
21646
+ _proto.del = function del(text) {
21647
+ return text;
21648
+ };
21649
+
21650
+ _proto.html = function html(text) {
21651
+ return text;
21652
+ };
21653
+
21654
+ _proto.text = function text(_text) {
21655
+ return _text;
21656
+ };
21657
+
21658
+ _proto.link = function link(href, title, text) {
21659
+ return '' + text;
21660
+ };
21661
+
21662
+ _proto.image = function image(href, title, text) {
21663
+ return '' + text;
21664
+ };
21665
+
21666
+ _proto.br = function br() {
21667
+ return '';
21668
+ };
21669
+
21670
+ return TextRenderer;
21671
+ }();
21672
+
21673
+ /**
21674
+ * Slugger generates header id
21675
+ */
21676
+
21677
+ var Slugger_1 = /*#__PURE__*/function () {
21678
+ function Slugger() {
21679
+ this.seen = {};
21680
+ }
21681
+
21682
+ var _proto = Slugger.prototype;
21683
+
21684
+ _proto.serialize = function serialize(value) {
21685
+ return value.toLowerCase().trim() // remove html tags
21686
+ .replace(/<[!\/a-z].*?>/ig, '') // remove unwanted chars
21687
+ .replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g, '').replace(/\s/g, '-');
21688
+ }
21689
+ /**
21690
+ * Finds the next safe (unique) slug to use
21691
+ */
21692
+ ;
21693
+
21694
+ _proto.getNextSafeSlug = function getNextSafeSlug(originalSlug, isDryRun) {
21695
+ var slug = originalSlug;
21696
+ var occurenceAccumulator = 0;
21697
+
21698
+ if (this.seen.hasOwnProperty(slug)) {
21699
+ occurenceAccumulator = this.seen[originalSlug];
21700
+
21701
+ do {
21702
+ occurenceAccumulator++;
21703
+ slug = originalSlug + '-' + occurenceAccumulator;
21704
+ } while (this.seen.hasOwnProperty(slug));
21705
+ }
21706
+
21707
+ if (!isDryRun) {
21708
+ this.seen[originalSlug] = occurenceAccumulator;
21709
+ this.seen[slug] = 0;
21710
+ }
21711
+
21712
+ return slug;
21713
+ }
21714
+ /**
21715
+ * Convert string to unique id
21716
+ * @param {object} options
21717
+ * @param {boolean} options.dryrun Generates the next unique slug without updating the internal accumulator.
21718
+ */
21719
+ ;
21720
+
21721
+ _proto.slug = function slug(value, options) {
21722
+ if (options === void 0) {
21723
+ options = {};
21724
+ }
21725
+
21726
+ var slug = this.serialize(value);
21727
+ return this.getNextSafeSlug(slug, options.dryrun);
21728
+ };
21729
+
21730
+ return Slugger;
21731
+ }();
21732
+
21733
+ var Renderer$1 = Renderer_1;
21734
+ var TextRenderer$1 = TextRenderer_1;
21735
+ var Slugger$1 = Slugger_1;
21736
+ var defaults$1 = defaults$5.exports.defaults;
21737
+ var unescape = helpers.unescape;
21738
+ /**
21739
+ * Parsing & Compiling
21740
+ */
21741
+
21742
+ var Parser_1 = /*#__PURE__*/function () {
21743
+ function Parser(options) {
21744
+ this.options = options || defaults$1;
21745
+ this.options.renderer = this.options.renderer || new Renderer$1();
21746
+ this.renderer = this.options.renderer;
21747
+ this.renderer.options = this.options;
21748
+ this.textRenderer = new TextRenderer$1();
21749
+ this.slugger = new Slugger$1();
21750
+ }
21751
+ /**
21752
+ * Static Parse Method
21753
+ */
21754
+
21755
+
21756
+ Parser.parse = function parse(tokens, options) {
21757
+ var parser = new Parser(options);
21758
+ return parser.parse(tokens);
21759
+ }
21760
+ /**
21761
+ * Static Parse Inline Method
21762
+ */
21763
+ ;
21764
+
21765
+ Parser.parseInline = function parseInline(tokens, options) {
21766
+ var parser = new Parser(options);
21767
+ return parser.parseInline(tokens);
21768
+ }
21769
+ /**
21770
+ * Parse Loop
21771
+ */
21772
+ ;
21773
+
21774
+ var _proto = Parser.prototype;
21775
+
21776
+ _proto.parse = function parse(tokens, top) {
21777
+ if (top === void 0) {
21778
+ top = true;
21779
+ }
21780
+
21781
+ var out = '',
21782
+ i,
21783
+ j,
21784
+ k,
21785
+ l2,
21786
+ l3,
21787
+ row,
21788
+ cell,
21789
+ header,
21790
+ body,
21791
+ token,
21792
+ ordered,
21793
+ start,
21794
+ loose,
21795
+ itemBody,
21796
+ item,
21797
+ checked,
21798
+ task,
21799
+ checkbox,
21800
+ ret;
21801
+ var l = tokens.length;
21802
+
21803
+ for (i = 0; i < l; i++) {
21804
+ token = tokens[i]; // Run any renderer extensions
21805
+
21806
+ if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {
21807
+ ret = this.options.extensions.renderers[token.type].call({
21808
+ parser: this
21809
+ }, token);
21810
+
21811
+ if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(token.type)) {
21812
+ out += ret || '';
21813
+ continue;
21814
+ }
21815
+ }
21816
+
21817
+ switch (token.type) {
21818
+ case 'space':
21819
+ {
21820
+ continue;
21821
+ }
21822
+
21823
+ case 'hr':
21824
+ {
21825
+ out += this.renderer.hr();
21826
+ continue;
21827
+ }
21828
+
21829
+ case 'heading':
21830
+ {
21831
+ out += this.renderer.heading(this.parseInline(token.tokens), token.depth, unescape(this.parseInline(token.tokens, this.textRenderer)), this.slugger);
21832
+ continue;
21833
+ }
21834
+
21835
+ case 'code':
21836
+ {
21837
+ out += this.renderer.code(token.text, token.lang, token.escaped);
21838
+ continue;
21839
+ }
21840
+
21841
+ case 'table':
21842
+ {
21843
+ header = ''; // header
21844
+
21845
+ cell = '';
21846
+ l2 = token.header.length;
21847
+
21848
+ for (j = 0; j < l2; j++) {
21849
+ cell += this.renderer.tablecell(this.parseInline(token.header[j].tokens), {
21850
+ header: true,
21851
+ align: token.align[j]
21852
+ });
21853
+ }
21854
+
21855
+ header += this.renderer.tablerow(cell);
21856
+ body = '';
21857
+ l2 = token.rows.length;
21858
+
21859
+ for (j = 0; j < l2; j++) {
21860
+ row = token.rows[j];
21861
+ cell = '';
21862
+ l3 = row.length;
21863
+
21864
+ for (k = 0; k < l3; k++) {
21865
+ cell += this.renderer.tablecell(this.parseInline(row[k].tokens), {
21866
+ header: false,
21867
+ align: token.align[k]
21868
+ });
21869
+ }
21870
+
21871
+ body += this.renderer.tablerow(cell);
21872
+ }
21873
+
21874
+ out += this.renderer.table(header, body);
21875
+ continue;
21876
+ }
21877
+
21878
+ case 'blockquote':
21879
+ {
21880
+ body = this.parse(token.tokens);
21881
+ out += this.renderer.blockquote(body);
21882
+ continue;
21883
+ }
21884
+
21885
+ case 'list':
21886
+ {
21887
+ ordered = token.ordered;
21888
+ start = token.start;
21889
+ loose = token.loose;
21890
+ l2 = token.items.length;
21891
+ body = '';
21892
+
21893
+ for (j = 0; j < l2; j++) {
21894
+ item = token.items[j];
21895
+ checked = item.checked;
21896
+ task = item.task;
21897
+ itemBody = '';
21898
+
21899
+ if (item.task) {
21900
+ checkbox = this.renderer.checkbox(checked);
21901
+
21902
+ if (loose) {
21903
+ if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {
21904
+ item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;
21905
+
21906
+ if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {
21907
+ item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;
21908
+ }
21909
+ } else {
21910
+ item.tokens.unshift({
21911
+ type: 'text',
21912
+ text: checkbox
21913
+ });
21914
+ }
21915
+ } else {
21916
+ itemBody += checkbox;
21917
+ }
21918
+ }
21919
+
21920
+ itemBody += this.parse(item.tokens, loose);
21921
+ body += this.renderer.listitem(itemBody, task, checked);
21922
+ }
21923
+
21924
+ out += this.renderer.list(body, ordered, start);
21925
+ continue;
21926
+ }
21927
+
21928
+ case 'html':
21929
+ {
21930
+ // TODO parse inline content if parameter markdown=1
21931
+ out += this.renderer.html(token.text);
21932
+ continue;
21933
+ }
21934
+
21935
+ case 'paragraph':
21936
+ {
21937
+ out += this.renderer.paragraph(this.parseInline(token.tokens));
21938
+ continue;
21939
+ }
21940
+
21941
+ case 'text':
21942
+ {
21943
+ body = token.tokens ? this.parseInline(token.tokens) : token.text;
21944
+
21945
+ while (i + 1 < l && tokens[i + 1].type === 'text') {
21946
+ token = tokens[++i];
21947
+ body += '\n' + (token.tokens ? this.parseInline(token.tokens) : token.text);
21948
+ }
21949
+
21950
+ out += top ? this.renderer.paragraph(body) : body;
21951
+ continue;
21952
+ }
21953
+
21954
+ default:
21955
+ {
21956
+ var errMsg = 'Token with "' + token.type + '" type was not found.';
21957
+
21958
+ if (this.options.silent) {
21959
+ console.error(errMsg);
21960
+ return;
21961
+ } else {
21962
+ throw new Error(errMsg);
21963
+ }
21964
+ }
21965
+ }
21966
+ }
21967
+
21968
+ return out;
21969
+ }
21970
+ /**
21971
+ * Parse Inline Tokens
21972
+ */
21973
+ ;
21974
+
21975
+ _proto.parseInline = function parseInline(tokens, renderer) {
21976
+ renderer = renderer || this.renderer;
21977
+ var out = '',
21978
+ i,
21979
+ token,
21980
+ ret;
21981
+ var l = tokens.length;
21982
+
21983
+ for (i = 0; i < l; i++) {
21984
+ token = tokens[i]; // Run any renderer extensions
21985
+
21986
+ if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {
21987
+ ret = this.options.extensions.renderers[token.type].call({
21988
+ parser: this
21989
+ }, token);
21990
+
21991
+ if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {
21992
+ out += ret || '';
21993
+ continue;
21994
+ }
21995
+ }
21996
+
21997
+ switch (token.type) {
21998
+ case 'escape':
21999
+ {
22000
+ out += renderer.text(token.text);
22001
+ break;
22002
+ }
22003
+
22004
+ case 'html':
22005
+ {
22006
+ out += renderer.html(token.text);
22007
+ break;
22008
+ }
22009
+
22010
+ case 'link':
22011
+ {
22012
+ out += renderer.link(token.href, token.title, this.parseInline(token.tokens, renderer));
22013
+ break;
22014
+ }
22015
+
22016
+ case 'image':
22017
+ {
22018
+ out += renderer.image(token.href, token.title, token.text);
22019
+ break;
22020
+ }
22021
+
22022
+ case 'strong':
22023
+ {
22024
+ out += renderer.strong(this.parseInline(token.tokens, renderer));
22025
+ break;
22026
+ }
22027
+
22028
+ case 'em':
22029
+ {
22030
+ out += renderer.em(this.parseInline(token.tokens, renderer));
22031
+ break;
22032
+ }
22033
+
22034
+ case 'codespan':
22035
+ {
22036
+ out += renderer.codespan(token.text);
22037
+ break;
22038
+ }
22039
+
22040
+ case 'br':
22041
+ {
22042
+ out += renderer.br();
22043
+ break;
22044
+ }
22045
+
22046
+ case 'del':
22047
+ {
22048
+ out += renderer.del(this.parseInline(token.tokens, renderer));
22049
+ break;
22050
+ }
22051
+
22052
+ case 'text':
22053
+ {
22054
+ out += renderer.text(token.text);
22055
+ break;
22056
+ }
22057
+
22058
+ default:
22059
+ {
22060
+ var errMsg = 'Token with "' + token.type + '" type was not found.';
22061
+
22062
+ if (this.options.silent) {
22063
+ console.error(errMsg);
22064
+ return;
22065
+ } else {
22066
+ throw new Error(errMsg);
22067
+ }
22068
+ }
22069
+ }
22070
+ }
22071
+
22072
+ return out;
22073
+ };
22074
+
22075
+ return Parser;
22076
+ }();
22077
+
22078
+ var Lexer = Lexer_1;
22079
+ var Parser = Parser_1;
22080
+ var Tokenizer = Tokenizer_1;
22081
+ var Renderer = Renderer_1;
22082
+ var TextRenderer = TextRenderer_1;
22083
+ var Slugger = Slugger_1;
22084
+ var merge = helpers.merge,
22085
+ checkSanitizeDeprecation = helpers.checkSanitizeDeprecation,
22086
+ escape = helpers.escape;
22087
+ var getDefaults = defaults$5.exports.getDefaults,
22088
+ changeDefaults = defaults$5.exports.changeDefaults,
22089
+ defaults = defaults$5.exports.defaults;
22090
+ /**
22091
+ * Marked
22092
+ */
22093
+
22094
+ function marked(src, opt, callback) {
22095
+ // throw error in case of non string input
22096
+ if (typeof src === 'undefined' || src === null) {
22097
+ throw new Error('marked(): input parameter is undefined or null');
22098
+ }
22099
+
22100
+ if (typeof src !== 'string') {
22101
+ throw new Error('marked(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected');
22102
+ }
22103
+
22104
+ if (typeof opt === 'function') {
22105
+ callback = opt;
22106
+ opt = null;
22107
+ }
22108
+
22109
+ opt = merge({}, marked.defaults, opt || {});
22110
+ checkSanitizeDeprecation(opt);
22111
+
22112
+ if (callback) {
22113
+ var highlight = opt.highlight;
22114
+ var tokens;
22115
+
22116
+ try {
22117
+ tokens = Lexer.lex(src, opt);
22118
+ } catch (e) {
22119
+ return callback(e);
22120
+ }
22121
+
22122
+ var done = function done(err) {
22123
+ var out;
22124
+
22125
+ if (!err) {
22126
+ try {
22127
+ if (opt.walkTokens) {
22128
+ marked.walkTokens(tokens, opt.walkTokens);
22129
+ }
22130
+
22131
+ out = Parser.parse(tokens, opt);
22132
+ } catch (e) {
22133
+ err = e;
22134
+ }
22135
+ }
22136
+
22137
+ opt.highlight = highlight;
22138
+ return err ? callback(err) : callback(null, out);
22139
+ };
22140
+
22141
+ if (!highlight || highlight.length < 3) {
22142
+ return done();
22143
+ }
22144
+
22145
+ delete opt.highlight;
22146
+ if (!tokens.length) return done();
22147
+ var pending = 0;
22148
+ marked.walkTokens(tokens, function (token) {
22149
+ if (token.type === 'code') {
22150
+ pending++;
22151
+ setTimeout(function () {
22152
+ highlight(token.text, token.lang, function (err, code) {
22153
+ if (err) {
22154
+ return done(err);
22155
+ }
22156
+
22157
+ if (code != null && code !== token.text) {
22158
+ token.text = code;
22159
+ token.escaped = true;
22160
+ }
22161
+
22162
+ pending--;
22163
+
22164
+ if (pending === 0) {
22165
+ done();
22166
+ }
22167
+ });
22168
+ }, 0);
22169
+ }
22170
+ });
22171
+
22172
+ if (pending === 0) {
22173
+ done();
22174
+ }
22175
+
22176
+ return;
22177
+ }
22178
+
22179
+ try {
22180
+ var _tokens = Lexer.lex(src, opt);
22181
+
22182
+ if (opt.walkTokens) {
22183
+ marked.walkTokens(_tokens, opt.walkTokens);
22184
+ }
22185
+
22186
+ return Parser.parse(_tokens, opt);
22187
+ } catch (e) {
22188
+ e.message += '\nPlease report this to https://github.com/markedjs/marked.';
22189
+
22190
+ if (opt.silent) {
22191
+ return '<p>An error occurred:</p><pre>' + escape(e.message + '', true) + '</pre>';
22192
+ }
22193
+
22194
+ throw e;
22195
+ }
22196
+ }
22197
+ /**
22198
+ * Options
22199
+ */
22200
+
22201
+
22202
+ marked.options = marked.setOptions = function (opt) {
22203
+ merge(marked.defaults, opt);
22204
+ changeDefaults(marked.defaults);
22205
+ return marked;
22206
+ };
22207
+
22208
+ marked.getDefaults = getDefaults;
22209
+ marked.defaults = defaults;
22210
+ /**
22211
+ * Use Extension
22212
+ */
22213
+
22214
+ marked.use = function () {
22215
+ var _this = this;
22216
+
22217
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
22218
+ args[_key] = arguments[_key];
22219
+ }
22220
+
22221
+ var opts = merge.apply(void 0, [{}].concat(args));
22222
+ var extensions = marked.defaults.extensions || {
22223
+ renderers: {},
22224
+ childTokens: {}
22225
+ };
22226
+ var hasExtensions;
22227
+ args.forEach(function (pack) {
22228
+ // ==-- Parse "addon" extensions --== //
22229
+ if (pack.extensions) {
22230
+ hasExtensions = true;
22231
+ pack.extensions.forEach(function (ext) {
22232
+ if (!ext.name) {
22233
+ throw new Error('extension name required');
22234
+ }
22235
+
22236
+ if (ext.renderer) {
22237
+ // Renderer extensions
22238
+ var prevRenderer = extensions.renderers ? extensions.renderers[ext.name] : null;
22239
+
22240
+ if (prevRenderer) {
22241
+ // Replace extension with func to run new extension but fall back if false
22242
+ extensions.renderers[ext.name] = function () {
22243
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
22244
+ args[_key2] = arguments[_key2];
22245
+ }
22246
+
22247
+ var ret = ext.renderer.apply(this, args);
22248
+
22249
+ if (ret === false) {
22250
+ ret = prevRenderer.apply(this, args);
22251
+ }
22252
+
22253
+ return ret;
22254
+ };
22255
+ } else {
22256
+ extensions.renderers[ext.name] = ext.renderer;
22257
+ }
22258
+ }
22259
+
22260
+ if (ext.tokenizer) {
22261
+ // Tokenizer Extensions
22262
+ if (!ext.level || ext.level !== 'block' && ext.level !== 'inline') {
22263
+ throw new Error("extension level must be 'block' or 'inline'");
22264
+ }
22265
+
22266
+ if (extensions[ext.level]) {
22267
+ extensions[ext.level].unshift(ext.tokenizer);
22268
+ } else {
22269
+ extensions[ext.level] = [ext.tokenizer];
22270
+ }
22271
+
22272
+ if (ext.start) {
22273
+ // Function to check for start of token
22274
+ if (ext.level === 'block') {
22275
+ if (extensions.startBlock) {
22276
+ extensions.startBlock.push(ext.start);
22277
+ } else {
22278
+ extensions.startBlock = [ext.start];
22279
+ }
22280
+ } else if (ext.level === 'inline') {
22281
+ if (extensions.startInline) {
22282
+ extensions.startInline.push(ext.start);
22283
+ } else {
22284
+ extensions.startInline = [ext.start];
22285
+ }
22286
+ }
22287
+ }
22288
+ }
22289
+
22290
+ if (ext.childTokens) {
22291
+ // Child tokens to be visited by walkTokens
22292
+ extensions.childTokens[ext.name] = ext.childTokens;
22293
+ }
22294
+ });
22295
+ } // ==-- Parse "overwrite" extensions --== //
22296
+
22297
+
22298
+ if (pack.renderer) {
22299
+ (function () {
22300
+ var renderer = marked.defaults.renderer || new Renderer();
22301
+
22302
+ var _loop = function _loop(prop) {
22303
+ var prevRenderer = renderer[prop]; // Replace renderer with func to run extension, but fall back if false
22304
+
22305
+ renderer[prop] = function () {
22306
+ for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
22307
+ args[_key3] = arguments[_key3];
22308
+ }
22309
+
22310
+ var ret = pack.renderer[prop].apply(renderer, args);
22311
+
22312
+ if (ret === false) {
22313
+ ret = prevRenderer.apply(renderer, args);
22314
+ }
22315
+
22316
+ return ret;
22317
+ };
22318
+ };
22319
+
22320
+ for (var prop in pack.renderer) {
22321
+ _loop(prop);
22322
+ }
22323
+
22324
+ opts.renderer = renderer;
22325
+ })();
22326
+ }
22327
+
22328
+ if (pack.tokenizer) {
22329
+ (function () {
22330
+ var tokenizer = marked.defaults.tokenizer || new Tokenizer();
22331
+
22332
+ var _loop2 = function _loop2(prop) {
22333
+ var prevTokenizer = tokenizer[prop]; // Replace tokenizer with func to run extension, but fall back if false
22334
+
22335
+ tokenizer[prop] = function () {
22336
+ for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
22337
+ args[_key4] = arguments[_key4];
22338
+ }
22339
+
22340
+ var ret = pack.tokenizer[prop].apply(tokenizer, args);
22341
+
22342
+ if (ret === false) {
22343
+ ret = prevTokenizer.apply(tokenizer, args);
22344
+ }
22345
+
22346
+ return ret;
22347
+ };
22348
+ };
22349
+
22350
+ for (var prop in pack.tokenizer) {
22351
+ _loop2(prop);
22352
+ }
22353
+
22354
+ opts.tokenizer = tokenizer;
22355
+ })();
22356
+ } // ==-- Parse WalkTokens extensions --== //
22357
+
22358
+
22359
+ if (pack.walkTokens) {
22360
+ var walkTokens = marked.defaults.walkTokens;
22361
+
22362
+ opts.walkTokens = function (token) {
22363
+ pack.walkTokens.call(_this, token);
22364
+
22365
+ if (walkTokens) {
22366
+ walkTokens(token);
22367
+ }
22368
+ };
22369
+ }
22370
+
22371
+ if (hasExtensions) {
22372
+ opts.extensions = extensions;
22373
+ }
22374
+
22375
+ marked.setOptions(opts);
22376
+ });
22377
+ };
22378
+ /**
22379
+ * Run callback for every token
22380
+ */
22381
+
22382
+
22383
+ marked.walkTokens = function (tokens, callback) {
22384
+ var _loop3 = function _loop3() {
22385
+ var token = _step.value;
22386
+ callback(token);
22387
+
22388
+ switch (token.type) {
22389
+ case 'table':
22390
+ {
22391
+ for (var _iterator2 = _createForOfIteratorHelperLoose(token.header), _step2; !(_step2 = _iterator2()).done;) {
22392
+ var cell = _step2.value;
22393
+ marked.walkTokens(cell.tokens, callback);
22394
+ }
22395
+
22396
+ for (var _iterator3 = _createForOfIteratorHelperLoose(token.rows), _step3; !(_step3 = _iterator3()).done;) {
22397
+ var row = _step3.value;
22398
+
22399
+ for (var _iterator4 = _createForOfIteratorHelperLoose(row), _step4; !(_step4 = _iterator4()).done;) {
22400
+ var _cell = _step4.value;
22401
+ marked.walkTokens(_cell.tokens, callback);
22402
+ }
22403
+ }
22404
+
22405
+ break;
22406
+ }
22407
+
22408
+ case 'list':
22409
+ {
22410
+ marked.walkTokens(token.items, callback);
22411
+ break;
22412
+ }
22413
+
22414
+ default:
22415
+ {
22416
+ if (marked.defaults.extensions && marked.defaults.extensions.childTokens && marked.defaults.extensions.childTokens[token.type]) {
22417
+ // Walk any extensions
22418
+ marked.defaults.extensions.childTokens[token.type].forEach(function (childTokens) {
22419
+ marked.walkTokens(token[childTokens], callback);
22420
+ });
22421
+ } else if (token.tokens) {
22422
+ marked.walkTokens(token.tokens, callback);
22423
+ }
22424
+ }
22425
+ }
22426
+ };
22427
+
22428
+ for (var _iterator = _createForOfIteratorHelperLoose(tokens), _step; !(_step = _iterator()).done;) {
22429
+ _loop3();
22430
+ }
22431
+ };
22432
+ /**
22433
+ * Parse Inline
22434
+ */
22435
+
22436
+
22437
+ marked.parseInline = function (src, opt) {
22438
+ // throw error in case of non string input
22439
+ if (typeof src === 'undefined' || src === null) {
22440
+ throw new Error('marked.parseInline(): input parameter is undefined or null');
22441
+ }
22442
+
22443
+ if (typeof src !== 'string') {
22444
+ throw new Error('marked.parseInline(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected');
22445
+ }
22446
+
22447
+ opt = merge({}, marked.defaults, opt || {});
22448
+ checkSanitizeDeprecation(opt);
22449
+
22450
+ try {
22451
+ var tokens = Lexer.lexInline(src, opt);
22452
+
22453
+ if (opt.walkTokens) {
22454
+ marked.walkTokens(tokens, opt.walkTokens);
22455
+ }
22456
+
22457
+ return Parser.parseInline(tokens, opt);
22458
+ } catch (e) {
22459
+ e.message += '\nPlease report this to https://github.com/markedjs/marked.';
22460
+
22461
+ if (opt.silent) {
22462
+ return '<p>An error occurred:</p><pre>' + escape(e.message + '', true) + '</pre>';
22463
+ }
22464
+
22465
+ throw e;
22466
+ }
22467
+ };
22468
+ /**
22469
+ * Expose
22470
+ */
22471
+
22472
+
22473
+ marked.Parser = Parser;
22474
+ marked.parser = Parser.parse;
22475
+ marked.Renderer = Renderer;
22476
+ marked.TextRenderer = TextRenderer;
22477
+ marked.Lexer = Lexer;
22478
+ marked.lexer = Lexer.lex;
22479
+ marked.Tokenizer = Tokenizer;
22480
+ marked.Slugger = Slugger;
22481
+ marked.parse = marked;
22482
+ var marked_1 = marked;
22483
+
22484
+ return marked_1;
22485
+
22486
+ })));
22487
+ });
22488
+
22489
+ 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";
22490
+
22491
+ 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";
22492
+
22493
+ const RegisterReadme = "# sqm-portal-register\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| -------------------------- | ---------------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- |\r\n| `confirmPassword` | `confirm-password` | | `boolean` | `false` |\r\n| `confirmPasswordLabel` | `confirm-password-label` | | `string` | `\"Confirm Password\"` |\r\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; confirmPassword: boolean; hideInputs: boolean; validationState?: FormState; enablePasswordValidation?: boolean; }; content?: { formData?: any; passwordField?: any; secondaryButton?: any; emailLabel?: string; passwordLabel?: string; submitLabel?: string; pageLabel?: string; confirmPasswordLabel: string; }; refs?: { formRef: any; }; }` | `undefined` |\r\n| `emailLabel` | `email-label` | | `string` | `\"Email\"` |\r\n| `enablePasswordValidation` | `enable-password-validation` | | `boolean` | `true` |\r\n| `hideInputs` | `hide-inputs` | | `boolean` | `false` |\r\n| `loginLabel` | `login-label` | | `string` | `\"Sign in\"` |\r\n| `nextPage` | `next-page` | | `string` | `\"/\"` |\r\n| `pageLabel` | `page-label` | | `string` | `\"Register\"` |\r\n| `passwordLabel` | `password-label` | | `string` | `\"Password\"` |\r\n| `submitLabel` | `submit-label` | | `string` | `\"Register\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Used by\r\n\r\n - [sqm-stencilbook](../sqm-stencilbook)\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n- [sqm-password-field](../sqm-password-field)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-register --> sqm-form-message\r\n sqm-portal-register --> sqm-password-field\r\n sqm-stencilbook --> sqm-portal-register\r\n style sqm-portal-register fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
22494
+
22495
+ 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";
22496
+
22497
+ const ResetPasswordReadme = "# sqm-portal-reset-password\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| --------------------------- | ------------------------------ | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------- |\r\n| `confirmPassword` | `confirm-password` | | `boolean` | `false` |\r\n| `confirmPasswordFieldLabel` | `confirm-password-field-label` | | `string` | `\"Confirm Password\"` |\r\n| `continueButtonText` | `continue-button-text` | Displayed after a successful password reset | `string` | `\"Continue\"` |\r\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; reset: boolean; confirmPassword: boolean; oobCodeValidating: boolean; oobCodeValid: boolean; passwordDemoData?: PasswordFieldViewDemoProps; content: { passwordResetHeader: string; resetPasswordHeader: string; continueButtonText: string; resetPasswordButtonText: string; confirmPasswordFieldLabel: string; }; }; }` | `undefined` |\r\n| `nextPage` | `next-page` | | `string` | `\"/\"` |\r\n| `passwordResetHeader` | `password-reset-header` | Displayed after a successful password reset | `string` | `\"Password reset\"` |\r\n| `resetPasswordButtonText` | `reset-password-button-text` | | `string` | `\"Reset Password\"` |\r\n| `resetPasswordHeader` | `reset-password-header` | | `string` | `\"Reset your password\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n- [sqm-password-field](../sqm-password-field)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-reset-password --> sqm-form-message\r\n sqm-portal-reset-password --> sqm-password-field\r\n style sqm-portal-reset-password fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
22498
+
22499
+ const EmailVerificationReadme = "# sqm-portal-email-verification\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| ------------------------- | --------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |\r\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; success: boolean; }; content?: { email: string; verifyMessage: string; emailVerificationHeader: string; resendEmailButtonText: string; }; }` | `undefined` |\r\n| `emailVerificationHeader` | `email-verification-header` | | `string` | `\"Verify your email\"` |\r\n| `resendEmailButtonText` | `resend-email-button-text` | | `string` | `\"Re-send Email\"` |\r\n| `verifyMessage` | `verify-message` | | `string` | `\"A verification email was sent to {email}. Please verify your email to continue to the portal.\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-email-verification --> sqm-form-message\r\n style sqm-portal-email-verification fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
22500
+
22501
+ const EmailVerifiedReadme = "# sqm-portal-verify-email\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| ---------- | ----------- | ----------- | ---------------------------------------------------------------------------------------------------- | ----------- |\r\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; verified: boolean; }; data?: { oobCode: string; }; }` | `undefined` |\r\n| `nextPage` | `next-page` | | `string` | `\"/\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-verify-email --> sqm-form-message\r\n style sqm-portal-verify-email fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
22502
+
22503
+ const PortalTemplates_stories = {
22504
+ title: "Templates / Portal",
22505
+ };
22506
+ // slot="footer"
22507
+ // support-email="john@foodservicerewards.com"
22508
+ // terms-link="example.com"
22509
+ // faq-link="example.com"
22510
+ // padding="large"
22511
+ // show-powered-by="false"
22512
+ // powered-by-link="https://www.saasquatch.com/"
22513
+ function useTemplate$1(templateString) {
22514
+ const [editedTemplate, setEditedTemplate] = _extends.useState(templateString);
22515
+ const [previewTemplate, setPreviewTemplate] = _extends.useState(templateString);
22516
+ return {
22517
+ states: { previewTemplate, editedTemplate },
22518
+ callbacks: { setEditedTemplate, setPreviewTemplate },
22519
+ };
22520
+ }
22521
+ function TemplateView$1(props) {
22522
+ const { states, callbacks, readme } = props;
22523
+ return [
22524
+ index.h("textarea", { style: { width: "100%", height: "300px" }, onChange: (e) => callbacks.setEditedTemplate(e.target.value) }, states.editedTemplate),
22525
+ index.h("button", { onClick: () => callbacks.setPreviewTemplate(states.editedTemplate) }, "Update Preview"),
22526
+ readme ? (index.h("details", null,
22527
+ index.h("summary", null, "Props readme"),
22528
+ index.h("div", { innerHTML: marked(readme) }))) : (""),
22529
+ index.h("div", { innerHTML: states.previewTemplate }),
22530
+ ];
22531
+ }
22532
+ function Buttons({ callbacks, states, template }) {
22533
+ return (index.h("div", null,
22534
+ index.h("button", { onClick: () => callbacks.setPreviewTemplate(states.editedTemplate) }, "Update Preview"),
22535
+ index.h("button", { style: { marginLeft: "10px" }, onClick: () => callbacks.setPreviewTemplate(template) }, "Preview Dashboard")));
22536
+ }
22537
+ function DefaultTemplateView(props) {
22538
+ const { states, callbacks } = props;
22539
+ return (index.h("div", null,
22540
+ index.h("textarea", { style: { width: "100%", height: "300px" }, onChange: (e) => callbacks.setEditedTemplate(e.target.value) }, states.editedTemplate),
22541
+ index.h(Buttons, { states: states, callbacks: callbacks, template: props.template }),
22542
+ index.h("h2", null, "Navigation"),
22543
+ index.h("div", { style: {
22544
+ display: "grid",
22545
+ gridTemplateColumns: "repeat(9, 80px)",
22546
+ gridGap: "10px",
22547
+ } },
22548
+ index.h("button", { onClick: () => index_module.rn.push("/") }, "Dashboard"),
22549
+ index.h("button", { onClick: () => index_module.rn.push("/activity") }, "Activity"),
22550
+ index.h("button", { onClick: () => index_module.rn.push("/editProfile") }, "Edit Profile"),
22551
+ index.h("button", { onClick: () => index_module.rn.push("/login") }, "Login"),
22552
+ index.h("button", { onClick: () => index_module.rn.push("/register") }, "Register"),
22553
+ index.h("button", { onClick: () => index_module.rn.push("/emailVerification") }, "Email Verification"),
22554
+ index.h("button", { onClick: () => index_module.rn.push("/verifyEmail") }, "Verify Email"),
22555
+ index.h("button", { onClick: () => index_module.rn.push("/forgotPassword") }, "Forgot Password"),
22556
+ index.h("button", { onClick: () => index_module.rn.push("/resetPassword") }, "Reset Password")),
22557
+ index.h("br", null),
22558
+ index.h("div", { innerHTML: states.previewTemplate })));
22559
+ }
22560
+ const DefaultPortal = createHookStory(() => {
22561
+ const { states, callbacks } = useTemplate$1(portalTemplate);
22562
+ return (index.h(DefaultTemplateView, { states: states, callbacks: callbacks, template: portalTemplateWithDashboard }));
22563
+ });
22564
+ const MultiProgramPortal = createHookStory(() => {
22565
+ const { states, callbacks } = useTemplate$1(multiProgramTemplate);
22566
+ return (index.h(DefaultTemplateView, { states: states, callbacks: callbacks, template: multiProgramTemplateWithDashboard }));
22567
+ });
22568
+ const Login = createHookStory(() => {
22569
+ const { states, callbacks } = useTemplate$1(loginTemplate);
22570
+ return (index.h(TemplateView$1, { states: states, callbacks: callbacks, readme: LoginReadme }));
22571
+ });
22572
+ const ForgotPassword = createHookStory(() => {
22573
+ const { states, callbacks } = useTemplate$1(forgotPasswordTemplate);
22574
+ return (index.h(TemplateView$1, { states: states, callbacks: callbacks, readme: ForgotPasswordReadme }));
22575
+ });
22576
+ const Register = createHookStory(() => {
22577
+ const { states, callbacks } = useTemplate$1(registerTemplate);
22578
+ return (index.h(TemplateView$1, { states: states, callbacks: callbacks, readme: RegisterReadme }));
22579
+ });
22580
+ const Dashboard$1 = createHookStory(() => {
22581
+ const { states, callbacks } = useTemplate$1(dashboardTemplate);
22582
+ return index.h(TemplateView$1, { states: states, callbacks: callbacks });
22583
+ });
22584
+ const Activity$1 = createHookStory(() => {
22585
+ const { states, callbacks } = useTemplate$1(activityTemplate);
22586
+ return index.h(TemplateView$1, { states: states, callbacks: callbacks });
22587
+ });
22588
+ const EditProfile$3 = createHookStory(() => {
22589
+ const { states, callbacks } = useTemplate$1(editProfileTemplate);
22590
+ return (index.h(TemplateView$1, { states: states, callbacks: callbacks, readme: EditProfileReadme }));
22591
+ });
22592
+ const ResetPassword = createHookStory(() => {
22593
+ const { states, callbacks } = useTemplate$1(resetPasswordTemplate);
22594
+ return (index.h(TemplateView$1, { states: states, callbacks: callbacks, readme: ResetPasswordReadme }));
22595
+ });
22596
+ const EmailVerification = createHookStory(() => {
22597
+ const { states, callbacks } = useTemplate$1(emailVerificationTemplate);
22598
+ return (index.h(TemplateView$1, { states: states, callbacks: callbacks, readme: EmailVerificationReadme }));
22599
+ });
22600
+ const EmailVerified = createHookStory(() => {
22601
+ const { states, callbacks } = useTemplate$1(emailVerifiedTemplate);
22602
+ return (index.h(TemplateView$1, { states: states, callbacks: callbacks, readme: EmailVerifiedReadme }));
22603
+ });
22604
+ const Widget = createHookStory(() => {
22605
+ return (index.h("sqb-widget", { "widget-type": "p/Vacay-referral/w/referrerWidget", demoData: {
22606
+ data: {
22607
+ html: dashboardTemplate,
22608
+ },
22609
+ } }));
22610
+ });
22611
+ const ResetPasswordEmail = createHookStory(() => {
22612
+ const { states, callbacks } = useTemplate$1(resetPasswordEmailTemplate);
22613
+ return index.h(TemplateView$1, { states: states, callbacks: callbacks });
22614
+ });
22615
+ const VerifyEmail = createHookStory(() => {
22616
+ const { states, callbacks } = useTemplate$1(verifyEmailTemplate);
22617
+ return index.h(TemplateView$1, { states: states, callbacks: callbacks });
22618
+ });
22619
+
22620
+ const PortalTemplates = /*#__PURE__*/Object.freeze({
22621
+ __proto__: null,
22622
+ 'default': PortalTemplates_stories,
22623
+ DefaultPortal: DefaultPortal,
22624
+ MultiProgramPortal: MultiProgramPortal,
22625
+ Login: Login,
22626
+ ForgotPassword: ForgotPassword,
22627
+ Register: Register,
22628
+ Dashboard: Dashboard$1,
22629
+ Activity: Activity$1,
22630
+ EditProfile: EditProfile$3,
22631
+ ResetPassword: ResetPassword,
22632
+ EmailVerification: EmailVerification,
22633
+ EmailVerified: EmailVerified,
22634
+ Widget: Widget,
22635
+ ResetPasswordEmail: ResetPasswordEmail,
22636
+ VerifyEmail: VerifyEmail
22637
+ });
22638
+
22639
+ const ProgramMenu_stories = {
22640
+ title: "Program Menu",
22641
+ };
22642
+ const OneProgram = createHookStory(() => {
22643
+ return (index.h("sqm-program-menu", null,
22644
+ index.h("sl-menu-item", { value: "referral-program" }, "Referral Program")));
22645
+ });
22646
+ const TwoProgram = createHookStory(() => {
22647
+ return (index.h("sqm-program-menu", null,
22648
+ index.h("sl-menu-item", { value: "referral-program" }, "Referral Program"),
22649
+ index.h("sl-menu-item", { value: "partner-program" }, "Partner Program")));
22650
+ });
22651
+ const FiveProgram = createHookStory(() => {
22652
+ return (index.h("sqm-program-menu", null,
22653
+ index.h("sl-menu-item", { value: "program1" }, "Program 1"),
22654
+ index.h("sl-menu-item", { value: "program2" }, "Program 2"),
22655
+ index.h("sl-menu-item", { value: "program3" }, "Program 3"),
22656
+ index.h("sl-menu-item", { value: "program4" }, "Program 4"),
22657
+ index.h("sl-menu-item", { value: "program5" }, "Program 5")));
22658
+ });
22659
+ const ProgramMenuWithSwitch = createHookStory(() => {
22660
+ return (index.h("div", null,
22661
+ index.h("sqb-program-section", { "program-id": "Vacay-referral" },
22662
+ index.h("sqm-program-menu", null,
22663
+ index.h("sl-menu-item", { value: "Vacay-referral" }, "Vacay-referral"),
22664
+ index.h("sl-menu-item", { value: "vacay-affiliates" }, "vacay-affiliates")),
22665
+ index.h("sqb-program-switch", null,
22666
+ index.h("template", { "program-id": "Vacay-referral" },
22667
+ index.h("sqb-widget", { "widget-type": "p/Vacay-referral/w/referrerWidget", demoData: {
22668
+ data: { html: dashboardTemplate },
22669
+ } })),
22670
+ index.h("template", { "program-id": "vacay-affiliates" },
22671
+ index.h("sqb-widget", { "widget-type": "p/vacay-affiliates/w/referrerWidget", demoData: {
22672
+ data: { html: dashboardTemplate },
22673
+ } }))))));
22674
+ });
22675
+
22676
+ const ProgramMenu$1 = /*#__PURE__*/Object.freeze({
22677
+ __proto__: null,
22678
+ 'default': ProgramMenu_stories,
22679
+ OneProgram: OneProgram,
22680
+ TwoProgram: TwoProgram,
22681
+ FiveProgram: FiveProgram,
22682
+ ProgramMenuWithSwitch: ProgramMenuWithSwitch
22683
+ });
22684
+
22685
+ const PoweredByImg_stories = {
22686
+ title: "Powered By",
22687
+ };
22688
+ const Default$a = () => {
22689
+ return index.h(sqmPortalFooterView.PoweredByImg, null);
22690
+ };
22691
+ const CustomColor = () => {
22692
+ return index.h(sqmPortalFooterView.PoweredByImg, { color: "salmon" });
22693
+ };
22694
+ const CustomWidthAndHeight = () => {
22695
+ return index.h(sqmPortalFooterView.PoweredByImg, { width: 300, height: 50 });
22696
+ };
22697
+
22698
+ const PoweredByImg = /*#__PURE__*/Object.freeze({
22699
+ __proto__: null,
22700
+ 'default': PoweredByImg_stories,
22701
+ Default: Default$a,
22702
+ CustomColor: CustomColor,
22703
+ CustomWidthAndHeight: CustomWidthAndHeight
22704
+ });
22705
+
22706
+ const PortalFooter_stories = {
22707
+ title: "Portal Footer",
22708
+ parameters: {},
22709
+ };
22710
+ const defaultProps$9 = {
22711
+ supportEmail: "support@example.com",
22712
+ supportText: "For program support, contact {email}",
22713
+ showPoweredBy: true,
22714
+ poweredByLink: "https://saasquatch.com",
22715
+ paddingTop: "large",
22716
+ paddingRight: "large",
22717
+ paddingBottom: "large",
22718
+ paddingLeft: "large",
22719
+ };
22720
+ const DefaultFooter = () => index.h(sqmPortalFooterView.PortalFooterView, Object.assign({}, defaultProps$9));
22721
+ const FooterWithTerms = () => (index.h(sqmPortalFooterView.PortalFooterView, Object.assign({}, defaultProps$9, { termsLink: "https://example.com", termsText: "Terms and Conditions" })));
22722
+ const FooterWithFAQ = () => (index.h(sqmPortalFooterView.PortalFooterView, Object.assign({}, defaultProps$9, { faqLink: "https://example.com", faqText: "FAQ" })));
22723
+ const FooterWithTermsAndFAQ = () => (index.h(sqmPortalFooterView.PortalFooterView, Object.assign({}, defaultProps$9, { termsLink: "https://example.com", termsText: "Terms and Conditions", faqLink: "https://example.com", faqText: "FAQ" })));
22724
+ const FooterNoPoweredBy = () => (index.h(sqmPortalFooterView.PortalFooterView, Object.assign({}, defaultProps$9, { termsLink: "https://example.com", termsText: "Terms and Conditions", faqLink: "https://example.com", faqText: "FAQ", showPoweredBy: false })));
22725
+
22726
+ const PortalFooter = /*#__PURE__*/Object.freeze({
22727
+ __proto__: null,
22728
+ 'default': PortalFooter_stories,
22729
+ DefaultFooter: DefaultFooter,
22730
+ FooterWithTerms: FooterWithTerms,
22731
+ FooterWithFAQ: FooterWithFAQ,
22732
+ FooterWithTermsAndFAQ: FooterWithTermsAndFAQ,
22733
+ FooterNoPoweredBy: FooterNoPoweredBy
22734
+ });
22735
+
22736
+ const Hero_stories = {
22737
+ title: "Hero Layout",
22738
+ parameters: {
22739
+ // scenario,
22740
+ },
22741
+ };
22742
+ const LoginOneColumn = () => {
22743
+ const props = {
22744
+ states: {
22745
+ columns: 1,
22746
+ wrapDirection: "wrap",
22747
+ },
22748
+ content: {
22749
+ primaryColumn: [
22750
+ index.h("h1", { style: { textAlign: "center" } }, "Get Referring!"),
22751
+ index.h("sqm-portal-login", null)
22752
+ ]
22753
+ },
22754
+ };
22755
+ return (index.h("div", { style: { height: "800px" } },
22756
+ index.h(sqmHeroView.HeroView, Object.assign({}, props))));
22757
+ };
22758
+ const LoginOneColumnWithColor = () => {
22759
+ const props = {
22760
+ states: {
22761
+ columns: 1,
22762
+ wrapDirection: "wrap",
22763
+ background: "LightSlateGrey",
22764
+ },
22765
+ content: {
22766
+ primaryColumn: index.h("sqm-portal-login", null),
22767
+ },
22768
+ };
22769
+ return (index.h("div", { style: { height: "800px" } },
22770
+ index.h(sqmHeroView.HeroView, Object.assign({}, props))));
22771
+ };
22772
+ const LoginOneColumnWithImage = () => {
22773
+ const props = {
22774
+ states: {
22775
+ columns: 1,
22776
+ wrapDirection: "wrap",
22777
+ background: "https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80",
22778
+ },
22779
+ content: { primaryColumn: index.h("sqm-portal-login", null) },
22780
+ };
22781
+ return (index.h("div", { style: { height: "800px" } },
22782
+ index.h(sqmHeroView.HeroView, Object.assign({}, props))));
22783
+ };
22784
+ const TwoColumnLogin = () => {
22785
+ const props = {
22786
+ states: {
22787
+ columns: 2,
22788
+ wrapDirection: "wrap",
22789
+ },
22790
+ content: {
22791
+ primaryColumn: (index.h("sqm-portal-login", { style: { width: "85%" } })),
22792
+ secondaryColumn: (index.h("div", { style: { width: "85%" } },
22793
+ index.h("h1", { style: { textAlign: "center" } }, "Get Referring!"),
22794
+ index.h("p", null, "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur."))),
22795
+ },
22796
+ };
22797
+ return (index.h("div", { style: { height: "800px" } },
22798
+ index.h(sqmHeroView.HeroView, Object.assign({}, props))));
22799
+ };
22800
+ const TwoColumnLoginReverseWrap = () => {
22801
+ const props = {
22802
+ states: {
22803
+ columns: 2,
22804
+ wrapDirection: "wrap-reverse",
22805
+ },
22806
+ content: {
22807
+ primaryColumn: (index.h("sqm-portal-login", { style: { width: "85%" } })),
22808
+ secondaryColumn: (index.h("div", { style: { width: "85%" } },
22809
+ index.h("h1", { style: { textAlign: "center" } }, "Get Referring!"),
22810
+ index.h("p", null, "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur."))),
22811
+ },
22812
+ };
22813
+ return (index.h("div", { style: { height: "800px" } },
22814
+ index.h(sqmHeroView.HeroView, Object.assign({}, props))));
22815
+ };
22816
+ const TwoColumnLoginWithImage = () => {
22817
+ const props = {
22818
+ states: {
22819
+ columns: 2,
22820
+ wrapDirection: "wrap",
22821
+ },
22822
+ content: {
22823
+ primaryColumn: (index.h("div", { style: { width: "85%" } },
22824
+ index.h("h1", { style: { textAlign: "center" } }, "Get Referring!"),
22825
+ index.h("sqm-portal-login", null))),
22826
+ secondaryColumn: (index.h("img", { src: "https://images.unsplash.com/photo-1629004021495-83fe9b730acb?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=735&q=80" })),
22827
+ },
22828
+ };
22829
+ return (index.h("div", { style: { height: "800px" } },
22830
+ index.h(sqmHeroView.HeroView, Object.assign({}, props))));
22831
+ };
22832
+
22833
+ const Hero = /*#__PURE__*/Object.freeze({
22834
+ __proto__: null,
22835
+ 'default': Hero_stories,
22836
+ LoginOneColumn: LoginOneColumn,
22837
+ LoginOneColumnWithColor: LoginOneColumnWithColor,
22838
+ LoginOneColumnWithImage: LoginOneColumnWithImage,
22839
+ TwoColumnLogin: TwoColumnLogin,
22840
+ TwoColumnLoginReverseWrap: TwoColumnLoginReverseWrap,
22841
+ TwoColumnLoginWithImage: TwoColumnLoginWithImage
22842
+ });
22843
+
19093
22844
  function deepFreeze(obj) {
19094
22845
  if (obj instanceof Map) {
19095
22846
  obj.clear = obj.delete = obj.set = function () {
@@ -21692,7 +25443,7 @@ const stories = [
21692
25443
  NewPortal,
21693
25444
  SidebarItem,
21694
25445
  NavigationSidebar,
21695
- PortalLogin,
25446
+ PortalLogin$1,
21696
25447
  PortalRegister$1,
21697
25448
  PortalForgotPassword,
21698
25449
  PortalEmailVerification,
@@ -21707,6 +25458,11 @@ const stories = [
21707
25458
  ReferralTableRewardsCell$1,
21708
25459
  UserName,
21709
25460
  PasswordField,
25461
+ PortalTemplates,
25462
+ ProgramMenu$1,
25463
+ PoweredByImg,
25464
+ PortalFooter,
25465
+ Hero
21710
25466
  ];
21711
25467
  const StencilStorybook = class {
21712
25468
  constructor(hostRef) {
@@ -21746,7 +25502,7 @@ const TableRow = class {
21746
25502
  }
21747
25503
  };
21748
25504
 
21749
- const debug$1 = _extends.browser("sq:global");
25505
+ const debug$2 = _extends.browser("sq:global");
21750
25506
  const textStyles = `
21751
25507
  sqm-text {
21752
25508
  display: block;
@@ -21806,7 +25562,7 @@ const Text = class {
21806
25562
  global.insertCSS(textStyles);
21807
25563
  }
21808
25564
  catch (error) {
21809
- debug$1(error);
25565
+ debug$2(error);
21810
25566
  }
21811
25567
  }
21812
25568
  render() {
@@ -21878,7 +25634,9 @@ exports.sqm_hook_story_container = SqmHookStoryContainer;
21878
25634
  exports.sqm_navigation_menu = NavigationMenu;
21879
25635
  exports.sqm_password_field = PortalPasswordField;
21880
25636
  exports.sqm_portal_frame = PortalFrame;
25637
+ exports.sqm_portal_login = PortalLogin;
21881
25638
  exports.sqm_portal_register = PortalRegister;
25639
+ exports.sqm_program_menu = ProgramMenu;
21882
25640
  exports.sqm_referral_table = ReferralTable;
21883
25641
  exports.sqm_referral_table_cell = ReferralTableCell;
21884
25642
  exports.sqm_referral_table_date_cell = ReferralTableDateCell;