@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
@@ -1,7 +1,7 @@
1
1
  import { h, r as registerInstance, c as Host } from './index-17b4da69.js';
2
- import { m as h$1, k as useState, f as useEffect, i as useRef, n as d$2, y as y$1, e as useReducer, c as createCommonjsModule, b as browser, a as commonjsGlobal, u as useMemo } from './extends-faeb047d.js';
2
+ import { m as h$1, k as useState, f as useEffect, i as useRef, n as d$2, y as y$1, b as browser, e as useReducer, c as createCommonjsModule, a as commonjsGlobal, u as useMemo } from './extends-faeb047d.js';
3
3
  import { i as intl, a as insertCSS } from './global-736dc1ae.js';
4
- import { d as dist, T as T$1, e as en, b as be, j as j$1, Z as Ze, r as rn, P as P$1, E as Ee, u as useCallback, M as M$1, a as sn, c as an, x as x$1, D as D$1 } from './index.module-7a2b1f9b.js';
4
+ import { d as dist, T as T$1, e as en, b as be, j as j$1, Z as Ze, r as rn, q as qe, P as P$1, E as Ee, u as useCallback, M as M$1, a as sn, c as an, x as x$1, D as D$1 } from './index.module-7a2b1f9b.js';
5
5
  import { j as jsonpointer } from './jsonpointer-388a7082.js';
6
6
  import { j as jss, c as create } from './jss-preset-default.esm-5aaab97b.js';
7
7
  import { g as getProps } from './utils-5ce97f37.js';
@@ -14,18 +14,19 @@ import { p as pathToRegexp, B as BigStatView, u as useBigStat, a as useDemoBigSt
14
14
  import { S as ShareLinkView } from './sqm-share-link-view-077b643a.js';
15
15
  import { L as LeaderboardView, u as useLeaderboard, S as ShadowViewAddon } from './ShadowViewAddon-37d4d088.js';
16
16
  import { N as NavigationSidebarView } from './sqm-navigation-sidebar-view-88b569ee.js';
17
- import { N as NavigationSidebarItemView } from './sqm-navigation-sidebar-item-view-a75802bb.js';
17
+ import { N as NavigationSidebarItemView } from './sqm-navigation-sidebar-item-view-000b0afb.js';
18
18
  import { P as PortalSectionView } from './sqm-portal-section-view-4ff6dcfb.js';
19
19
  import { P as PortalContainerView } from './sqm-portal-container-view-262b17b1.js';
20
20
  import { S as StatContainerView } from './sqm-stat-container-view-fc69587b.js';
21
- import { P as PortalProfileView } from './sqm-portal-profile-view-2801882b.js';
22
- import { P as PortalChangePasswordView } from './sqm-portal-change-password-view-8dbe1ea3.js';
23
- import { P as PortalLoginView } from './sqm-portal-login-view-7e56a959.js';
21
+ import { P as PortalProfileView } from './sqm-portal-profile-view-72e966e2.js';
22
+ import { P as PortalChangePasswordView } from './sqm-portal-change-password-view-24a4adf7.js';
24
23
  import { P as PortalForgotPasswordView } from './sqm-portal-forgot-password-view-97566434.js';
25
- import { P as PortalEmailVerificationView } from './sqm-portal-email-verification-view-964d21fe.js';
26
- import { P as PortalResetPasswordView$1 } from './sqm-portal-reset-password-view-6c1d23eb.js';
24
+ import { P as PortalEmailVerificationView } from './sqm-portal-email-verification-view-03495ffa.js';
25
+ import { P as PortalResetPasswordView$1 } from './sqm-portal-reset-password-view-1441849e.js';
27
26
  import { P as PortalVerifyEmailView } from './sqm-portal-verify-email-view-094a5a58.js';
28
27
  import { A as AssetCardView } from './sqm-asset-card-view-90c2a945.js';
28
+ import { P as PoweredByImg$1, a as PortalFooterView } from './sqm-portal-footer-view-728c427c.js';
29
+ import { H as HeroView } from './sqm-hero-view-5b9bbae2.js';
29
30
 
30
31
  function DividedLayoutView(props, children) {
31
32
  const getBorder = () => {
@@ -1160,6 +1161,155 @@ function usePortalFrameDemo(footerContent, headerContent, props) {
1160
1161
  }
1161
1162
 
1162
1163
  const style$3 = {
1164
+ Wrapper: AuthWrapper,
1165
+ Column: AuthColumn,
1166
+ ForgotButtonContainer: {
1167
+ display: "inline",
1168
+ cursor: "pointer",
1169
+ "font-size": "13px",
1170
+ "font-weight": "600",
1171
+ color: "#AAAAAA",
1172
+ margin: "0",
1173
+ },
1174
+ ButtonsContainer: AuthButtonsContainer,
1175
+ };
1176
+ const vanillaStyle$1 = `
1177
+ :host {
1178
+ margin: 0 auto;
1179
+ width: 100%;
1180
+ display: block;
1181
+ }
1182
+ :host([hidden]): {
1183
+ display: none;
1184
+ }
1185
+ `;
1186
+ jss.setup(create());
1187
+ const sheet$3 = jss.createStyleSheet(style$3);
1188
+ const styleString$3 = sheet$3.toString();
1189
+ function PortalLoginView(props) {
1190
+ const { states, callbacks, content } = props;
1191
+ return (h("div", { class: sheet$3.classes.Wrapper },
1192
+ h("style", { type: "text/css" },
1193
+ vanillaStyle$1,
1194
+ styleString$3),
1195
+ h(TextSpanView, { type: "h3" }, content.pageLabel),
1196
+ h("sl-form", { class: sheet$3.classes.Column, "onSl-submit": callbacks.submit },
1197
+ props.states.error && (h("sqm-form-message", { type: "error", exportparts: "erroralert-icon" },
1198
+ h("div", { part: "erroralert-text" }, props.states.error))),
1199
+ h("sl-input", { exportparts: "label: input-label", type: "email", name: "/email", label: content.emailLabel || "Email", disabled: states.loading, required: true }),
1200
+ h("div", null,
1201
+ h("sl-input", { exportparts: "label: input-label", type: "password", name: "/password", label: content.passwordLabel || "Password", disabled: states.loading, required: true }),
1202
+ h("div", { class: sheet$3.classes.ForgotButtonContainer }, content.forgotPasswordButton)),
1203
+ h("div", { class: sheet$3.classes.ButtonsContainer },
1204
+ h("sl-button", { submit: true, loading: states.loading, exportparts: "base: primarybutton-base", type: "primary" }, content.submitLabel || "Login"),
1205
+ content.secondaryButton))));
1206
+ }
1207
+
1208
+ function usePortalLogin({ nextPage }) {
1209
+ var _a, _b, _c, _d;
1210
+ const [request, { loading, errors, data }] = qe();
1211
+ const [error, setError] = useState("");
1212
+ const urlParams = new URLSearchParams(window.location.search);
1213
+ const nextPageOverride = urlParams.get("nextPage");
1214
+ const submit = async (event) => {
1215
+ setError("");
1216
+ let formData = event.detail.formData;
1217
+ formData === null || formData === void 0 ? void 0 : formData.forEach((value, key) => {
1218
+ jsonpointer.set(formData, key, value);
1219
+ });
1220
+ const variables = { email: formData.email, password: formData.password };
1221
+ await request(variables);
1222
+ };
1223
+ useEffect(() => {
1224
+ var _a;
1225
+ if ((_a = data === null || data === void 0 ? void 0 : data.authenticateManagedIdentityWithEmailAndPassword) === null || _a === void 0 ? void 0 : _a.token) {
1226
+ urlParams.delete("nextPage");
1227
+ rn.push({
1228
+ pathname: nextPageOverride || nextPage,
1229
+ search: urlParams.toString() && "?" + urlParams.toString(),
1230
+ });
1231
+ }
1232
+ }, [(_a = data === null || data === void 0 ? void 0 : data.authenticateManagedIdentityWithEmailAndPassword) === null || _a === void 0 ? void 0 : _a.token]);
1233
+ useEffect(() => {
1234
+ var _a;
1235
+ 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"])) {
1236
+ setError("Network request failed.");
1237
+ }
1238
+ }, [errors]);
1239
+ 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;
1240
+ return {
1241
+ states: {
1242
+ loading,
1243
+ error: errorMessage,
1244
+ },
1245
+ callbacks: {
1246
+ submit,
1247
+ },
1248
+ };
1249
+ }
1250
+
1251
+ const PortalLogin = class {
1252
+ constructor(hostRef) {
1253
+ registerInstance(this, hostRef);
1254
+ this.ignored = true;
1255
+ /**
1256
+ * @uiName Page navigated to after sign-in
1257
+ */
1258
+ this.nextPage = "/";
1259
+ /**
1260
+ * @uiName Label for email field
1261
+ */
1262
+ this.emailLabel = "Email";
1263
+ /**
1264
+ * @uiName Label for password field
1265
+ */
1266
+ this.passwordLabel = "Password";
1267
+ /**
1268
+ * @uiName Label for submit button
1269
+ */
1270
+ this.submitLabel = "Sign In";
1271
+ /**
1272
+ * @uiName Label for forgotten password button
1273
+ */
1274
+ this.forgotPasswordLabel = "Forgot Password?";
1275
+ /**
1276
+ * @uiName Label for register navigation button
1277
+ */
1278
+ this.registerLabel = "Register";
1279
+ /**
1280
+ * @uiName Heading label
1281
+ */
1282
+ this.pageLabel = "Sign in to your account";
1283
+ h$1(this);
1284
+ }
1285
+ disconnectedCallback() { }
1286
+ render() {
1287
+ const { states, callbacks } = j$1()
1288
+ ? useLoginDemo(this)
1289
+ : usePortalLogin(this);
1290
+ const content = {
1291
+ forgotPasswordButton: (h("slot", { name: "forgotPassword" }, h("a", { onClick: () => rn.push("/forgotPassword") }, this.forgotPasswordLabel))),
1292
+ secondaryButton: (h("slot", { name: "secondaryButton" }, h("sl-button", { type: "text", disabled: states.loading, onClick: () => rn.push("/register") }, this.registerLabel))),
1293
+ emailLabel: this.emailLabel,
1294
+ passwordLabel: this.passwordLabel,
1295
+ submitLabel: this.submitLabel,
1296
+ pageLabel: this.pageLabel,
1297
+ };
1298
+ return (h(PortalLoginView, { states: states, callbacks: callbacks, content: content }));
1299
+ }
1300
+ };
1301
+ function useLoginDemo(props) {
1302
+ return cjs({
1303
+ states: { error: "", loading: false },
1304
+ callbacks: {
1305
+ submit: async (_event) => {
1306
+ console.log("submit");
1307
+ },
1308
+ },
1309
+ }, props.demoData || {}, { arrayMerge: (_, a) => a });
1310
+ }
1311
+
1312
+ const style$4 = {
1163
1313
  Wrapper: { ...AuthWrapper, "max-width": "600px" },
1164
1314
  Column: AuthColumn,
1165
1315
  HostBlock: HostBlock,
@@ -1170,7 +1320,7 @@ const style$3 = {
1170
1320
  ButtonsContainer: AuthButtonsContainer,
1171
1321
  ErrorStyle: ErrorStyles,
1172
1322
  };
1173
- const vanillaStyle$1 = `
1323
+ const vanillaStyle$2 = `
1174
1324
  sqm-portal-register {
1175
1325
  margin: 0 auto;
1176
1326
  width: 100%;
@@ -1188,22 +1338,23 @@ sqm-portal-register {
1188
1338
  }
1189
1339
  `;
1190
1340
  jss.setup(create());
1191
- const sheet$3 = jss.createStyleSheet(style$3);
1192
- const styleString$3 = sheet$3.toString();
1341
+ const sheet$4 = jss.createStyleSheet(style$4);
1342
+ const styleString$4 = sheet$4.toString();
1193
1343
  function PortalRegisterView(props) {
1194
1344
  var _a, _b, _c, _d, _e, _f, _g, _h;
1195
1345
  const { states, refs, callbacks, content } = props;
1196
1346
  if (states.error) {
1197
1347
  window.scrollTo({ top: 0, left: 0, behavior: "smooth" });
1198
1348
  }
1199
- return (h("div", { class: sheet$3.classes.Wrapper },
1349
+ return (h("div", { class: sheet$4.classes.Wrapper },
1200
1350
  h("style", { type: "text/css" },
1201
- vanillaStyle$1,
1202
- styleString$3),
1351
+ vanillaStyle$2,
1352
+ styleString$4),
1203
1353
  h(TextSpanView, { type: "h3" }, content.pageLabel),
1204
- h("sl-form", { class: sheet$3.classes.Column, "onSl-submit": callbacks.submit, ref: (el) => (refs.formRef.current = el), novalidate: true },
1354
+ h("sl-form", { class: sheet$4.classes.Column, "onSl-submit": callbacks.submit, ref: (el) => (refs.formRef.current = el), novalidate: true },
1205
1355
  states.error && (h("sqm-form-message", { type: "error", exportparts: "erroralert-icon" },
1206
1356
  h("div", { part: "erroralert-text" }, props.states.error))),
1357
+ content.formData,
1207
1358
  !states.hideInputs && (h("sl-input", Object.assign({ exportparts: "label: input-label", type: "email", name: "/email", label: content.emailLabel || "Email", disabled: states.loading, required: true, validationError: ({ value }) => {
1208
1359
  if (!value) {
1209
1360
  return "Cannot be empty";
@@ -1213,21 +1364,20 @@ function PortalRegisterView(props) {
1213
1364
  return "Must be a valid email address";
1214
1365
  }
1215
1366
  } }, (((_b = (_a = states.validationState) === null || _a === void 0 ? void 0 : _a.validationErrors) === null || _b === void 0 ? void 0 : _b.email) ? {
1216
- class: sheet$3.classes.ErrorStyle,
1367
+ class: sheet$4.classes.ErrorStyle,
1217
1368
  helpText: ((_d = (_c = states.validationState) === null || _c === void 0 ? void 0 : _c.validationErrors) === null || _d === void 0 ? void 0 : _d.email) ||
1218
1369
  "Cannot be empty",
1219
1370
  }
1220
1371
  : [])))),
1221
- !states.hideInputs && (h("sqm-password-field", { "enable-validation": states.enablePasswordValidation })),
1372
+ !states.hideInputs && (h("sqm-password-field", { fieldLabel: content.passwordLabel, "enable-validation": states.enablePasswordValidation })),
1222
1373
  content.passwordField,
1223
- !states.hideInputs && states.confirmPassword && (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) ? {
1224
- class: sheet$3.classes.ErrorStyle,
1374
+ !states.hideInputs && states.confirmPassword && (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) ? {
1375
+ class: sheet$4.classes.ErrorStyle,
1225
1376
  helpText: ((_h = (_g = states.validationState) === null || _g === void 0 ? void 0 : _g.validationErrors) === null || _h === void 0 ? void 0 : _h.confirmPassword) ||
1226
1377
  "Cannot be empty",
1227
1378
  }
1228
1379
  : [])))),
1229
- content.formData,
1230
- h("div", { class: sheet$3.classes.ButtonsContainer },
1380
+ h("div", { class: sheet$4.classes.ButtonsContainer },
1231
1381
  h("sl-button", { submit: true, loading: states.loading, exportparts: "base: primarybutton-base", type: "primary" }, content.submitLabel || "Register"),
1232
1382
  content.secondaryButton))));
1233
1383
  }
@@ -5234,6 +5384,10 @@ const PortalRegister = class {
5234
5384
  * @uiName Label for login navigation button
5235
5385
  */
5236
5386
  this.loginLabel = "Sign in";
5387
+ /**
5388
+ * @uiName Label for confirm password field
5389
+ */
5390
+ this.confirmPasswordLabel = "Confirm Password";
5237
5391
  /**
5238
5392
  * @uiName Show confirm password field
5239
5393
  */
@@ -5264,6 +5418,7 @@ const PortalRegister = class {
5264
5418
  passwordLabel: this.passwordLabel,
5265
5419
  submitLabel: this.submitLabel,
5266
5420
  pageLabel: this.pageLabel,
5421
+ confirmPasswordLabel: this.confirmPasswordLabel,
5267
5422
  };
5268
5423
  return (h(PortalRegisterView, { states: states, callbacks: callbacks, content: content, refs: refs }));
5269
5424
  }
@@ -5274,7 +5429,7 @@ function useRegisterDemo(props) {
5274
5429
  error: "",
5275
5430
  loading: false,
5276
5431
  confirmPassword: true,
5277
- hideInputs: false,
5432
+ hideInputs: props.hideInputs || false,
5278
5433
  customPasswordField: false,
5279
5434
  },
5280
5435
  callbacks: {
@@ -5289,7 +5444,51 @@ function useRegisterDemo(props) {
5289
5444
  }, props.demoData || {}, { arrayMerge: (_, a) => a });
5290
5445
  }
5291
5446
 
5292
- const style$4 = {
5447
+ const debug = browser('sq:useProgramMenu');
5448
+ const UPDATE_PROGRAM_EVENT = 'sq:update-program-id';
5449
+ function useProgramMenu(props) {
5450
+ const programId = M$1();
5451
+ const host = P$1();
5452
+ debug({ programId, props });
5453
+ const ref = useRef();
5454
+ const [, rerender] = Ze();
5455
+ useEffect(() => {
5456
+ var _a;
5457
+ (_a = ref.current) === null || _a === void 0 ? void 0 : _a.addEventListener('sl-select', (e) => {
5458
+ const programId = e.detail.item.value;
5459
+ // setProgramId(programId);
5460
+ host.dispatchEvent(new CustomEvent(UPDATE_PROGRAM_EVENT, {
5461
+ detail: programId,
5462
+ bubbles: true,
5463
+ composed: true,
5464
+ }));
5465
+ });
5466
+ }, [ref.current]);
5467
+ return {
5468
+ data: {
5469
+ programId,
5470
+ },
5471
+ callbacks: {
5472
+ rerender,
5473
+ },
5474
+ ref,
5475
+ };
5476
+ }
5477
+
5478
+ const ProgramMenu = class {
5479
+ constructor(hostRef) {
5480
+ registerInstance(this, hostRef);
5481
+ this.ignored = true;
5482
+ h$1(this);
5483
+ }
5484
+ disconnectedCallback() { }
5485
+ render() {
5486
+ const { data, ref } = useProgramMenu(getProps(this));
5487
+ return (h(Host, { style: { display: "contents" } }, h("sl-select", { style: { paddingBottom: "var(--sl-spacing-large)" }, value: data.programId, ref: (r) => (ref.current = r) }, h("slot", null))));
5488
+ }
5489
+ };
5490
+
5491
+ const style$5 = {
5293
5492
  THead: {
5294
5493
  padding: "var(--sl-spacing-small) var(--sl-spacing-medium) var(--sl-spacing-small) 0",
5295
5494
  "text-align": "left",
@@ -5312,29 +5511,29 @@ const style$4 = {
5312
5511
  },
5313
5512
  };
5314
5513
  jss.setup(create());
5315
- const sheet$4 = jss.createStyleSheet(style$4);
5316
- const styleString$4 = sheet$4.toString();
5514
+ const sheet$5 = jss.createStyleSheet(style$5);
5515
+ const styleString$5 = sheet$5.toString();
5317
5516
  function ReferralTableView(props) {
5318
5517
  var _a, _b;
5319
5518
  const { states, data, callbacks, elements } = props;
5320
5519
  const { columns, rows } = elements;
5321
5520
  return (h("div", null,
5322
- h("style", { type: "text/css" }, styleString$4),
5323
- h("table", { class: sheet$4.classes.Table },
5521
+ h("style", { type: "text/css" }, styleString$5),
5522
+ h("table", { class: sheet$5.classes.Table },
5324
5523
  data.textOverrides.showLabels && (h("thead", null,
5325
- h("tr", null, columns === null || columns === void 0 ? void 0 : columns.map((column) => (h("th", { class: sheet$4.classes.THead },
5524
+ h("tr", null, columns === null || columns === void 0 ? void 0 : columns.map((column) => (h("th", { class: sheet$5.classes.THead },
5326
5525
  h(TextSpanView, { type: "h3" }, column))))))),
5327
5526
  h("tbody", null, states.loading
5328
5527
  ? elements.loadingElement
5329
5528
  : !((_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)
5330
5529
  ? elements.emptyElement
5331
- : rows === null || rows === void 0 ? void 0 : rows.map((row, i) => (h("tr", { class: sheet$4.classes.TRow, style: {
5530
+ : rows === null || rows === void 0 ? void 0 : rows.map((row, i) => (h("tr", { class: sheet$5.classes.TRow, style: {
5332
5531
  borderTop: `${!data.textOverrides.showLabels && i === 0
5333
5532
  ? "none"
5334
5533
  : ""}`,
5335
- }, part: "table-row" }, row.map((cell) => (h("td", { class: sheet$4.classes.TCell },
5534
+ }, part: "table-row" }, row.map((cell) => (h("td", { class: sheet$5.classes.TCell },
5336
5535
  h(TextSpanView, { type: "p" }, cell))))))))),
5337
- h("div", { class: sheet$4.classes.ButtonContainer, part: "sqm-referral-table-button-wrapper" },
5536
+ h("div", { class: sheet$5.classes.ButtonContainer, part: "sqm-referral-table-button-wrapper" },
5338
5537
  h("sl-button", { size: "small", disabled: !states.hasPrev, loading: states.loading, onClick: callbacks.prevPage, exportparts: "base: defaultbutton-base" }, data.textOverrides.prevLabel),
5339
5538
  h("sl-button", { size: "small", loading: states.loading, disabled: !states.hasNext, onClick: callbacks.nextPage, exportparts: "base: defaultbutton-base" }, data.textOverrides.moreLabel))));
5340
5539
  }
@@ -14202,7 +14401,7 @@ const ReferralTableUserCell = class {
14202
14401
  }
14203
14402
  };
14204
14403
 
14205
- const debug = browser("sq:useRouter");
14404
+ const debug$1 = browser("sq:useRouter");
14206
14405
  function matchPath(pattern, page) {
14207
14406
  if (!pattern)
14208
14407
  return;
@@ -14230,7 +14429,7 @@ function useRouter() {
14230
14429
  useEffect(() => {
14231
14430
  var _a, _b;
14232
14431
  if (!container || !slot) {
14233
- debug("DOM not ready for navigation rendering on:", page);
14432
+ debug$1("DOM not ready for navigation rendering on:", page);
14234
14433
  return;
14235
14434
  }
14236
14435
  // <template>
@@ -14245,7 +14444,7 @@ function useRouter() {
14245
14444
  });
14246
14445
  //@ts-ignore - can't access template attributes directly
14247
14446
  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;
14248
- debug({
14447
+ debug$1({
14249
14448
  containerDatasetPage: container.dataset.page,
14250
14449
  templatePath,
14251
14450
  page,
@@ -14253,15 +14452,15 @@ function useRouter() {
14253
14452
  // if no routes found, and the old route doesn't match the new route
14254
14453
  if (!template) {
14255
14454
  // No matching page, display nothing
14256
- debug("No matching page found for ", page, ", so render nothing");
14455
+ debug$1("No matching page found for ", page, ", so render nothing");
14257
14456
  container.innerHTML = "";
14258
14457
  container.dataset.page = page;
14259
14458
  return;
14260
14459
  }
14261
- debug("Page updated to ", page, template);
14460
+ debug$1("Page updated to ", page, template);
14262
14461
  // if pathToRegexp results truthy or page is an exact match
14263
14462
  if (!!matchPath(templatePath, container.dataset.page)) {
14264
- debug("don't rerender");
14463
+ debug$1("don't rerender");
14265
14464
  // Same page, do not re-render
14266
14465
  // Reduces dom mutations, speeds up page speed
14267
14466
  }
@@ -14294,19 +14493,19 @@ const SqmRouter = class {
14294
14493
  };
14295
14494
  SqmRouter.style = sqmRouterCss;
14296
14495
 
14297
- const style$5 = {
14496
+ const style$6 = {
14298
14497
  HostBlock: HostBlock,
14299
14498
  buttonStyle: {
14300
14499
  display: "block",
14301
14500
  },
14302
14501
  };
14303
14502
  jss.setup(create());
14304
- const sheet$5 = jss.createStyleSheet(style$5);
14305
- const styleString$5 = sheet$5.toString();
14503
+ const sheet$6 = jss.createStyleSheet(style$6);
14504
+ const styleString$6 = sheet$6.toString();
14306
14505
  function ShareButtonView(props, children) {
14307
14506
  return props.hide ? (h(Host, { style: { display: "none" } })) : (h("div", null,
14308
- h("style", { type: "text/css" }, styleString$5),
14309
- 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` },
14507
+ h("style", { type: "text/css" }, styleString$6),
14508
+ 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` },
14310
14509
  !props.hideicon && (h("sl-icon", { slot: props.iconslot, name: props.icon ? props.icon : props.medium })),
14311
14510
  !props.hidetext && children)));
14312
14511
  }
@@ -16218,6 +16417,25 @@ const Leaderboard = /*#__PURE__*/Object.freeze({
16218
16417
  Five: Five
16219
16418
  });
16220
16419
 
16420
+ const HookStoryAddon = ({ story }, children) => {
16421
+ var _a;
16422
+ const hookStory = (_a = story.story.parameters) === null || _a === void 0 ? void 0 : _a.hookStory;
16423
+ if (!hookStory) {
16424
+ return children;
16425
+ }
16426
+ const randomInt = Math.round(Math.random() * 100000);
16427
+ const RandomTagName = "sqm-hook-story-container-" + randomInt;
16428
+ return (h(RandomTagName, null,
16429
+ h("sqm-hook-story-container", { hookStory: hookStory })));
16430
+ };
16431
+ function createHookStory(hookStory) {
16432
+ const story = () => h("div", null);
16433
+ story.parameters = {
16434
+ hookStory,
16435
+ };
16436
+ return story;
16437
+ }
16438
+
16221
16439
  const Router_stories = {
16222
16440
  title: "Tests/Router",
16223
16441
  };
@@ -16284,7 +16502,7 @@ const routes = `
16284
16502
  </pre>
16285
16503
  </sqm-route>
16286
16504
  `;
16287
- const TemplateNavigation = () => {
16505
+ const TemplateNavigation = createHookStory(() => {
16288
16506
  return (h("div", null,
16289
16507
  h("button", { onClick: () => rn.push("/") }, "/"),
16290
16508
  h("button", { onClick: () => rn.push("/foo") }, "/foo"),
@@ -16297,8 +16515,8 @@ const TemplateNavigation = () => {
16297
16515
  h("button", { onClick: () => rn.forward() }, "Forward"),
16298
16516
  h("hr", null),
16299
16517
  h("sqm-router", { innerHTML: templates })));
16300
- };
16301
- const RouteNavigation = () => {
16518
+ });
16519
+ const RouteNavigation = createHookStory(() => {
16302
16520
  return (h("div", null,
16303
16521
  h("button", { onClick: () => rn.push("/") }, "/"),
16304
16522
  h("button", { onClick: () => rn.push("/foo") }, "/foo"),
@@ -16311,8 +16529,8 @@ const RouteNavigation = () => {
16311
16529
  h("button", { onClick: () => rn.forward() }, "Forward"),
16312
16530
  h("hr", null),
16313
16531
  h("sqm-router", { innerHTML: routes })));
16314
- };
16315
- const Styling = () => {
16532
+ });
16533
+ const Styling = createHookStory(() => {
16316
16534
  return (h("div", null,
16317
16535
  h("button", { onClick: () => rn.push("/") }, "/"),
16318
16536
  h("button", { onClick: () => rn.push("/foo") }, "/foo"),
@@ -16323,14 +16541,49 @@ const Styling = () => {
16323
16541
  <div>Column 1</div>
16324
16542
  <div>Column 2 </div>
16325
16543
  </template>` }))));
16326
- };
16544
+ });
16545
+ function useTemplate(templateString) {
16546
+ const [editedTemplate, setEditedTemplate] = useState(templateString);
16547
+ const [previewTemplate, setPreviewTemplate] = useState(templateString);
16548
+ function setPath(e) {
16549
+ //@ts-ignore
16550
+ rn.push(e.target.value);
16551
+ }
16552
+ return {
16553
+ states: { previewTemplate, editedTemplate },
16554
+ callbacks: { setEditedTemplate, setPreviewTemplate, setPath },
16555
+ };
16556
+ }
16557
+ const defaultRouter = `
16558
+ <sqm-router>
16559
+ <template path="/">
16560
+ <div>hello world</div>
16561
+ </template>
16562
+ </sqm-router>
16563
+ `;
16564
+ function TemplateView(props) {
16565
+ const { states, callbacks } = props;
16566
+ return [
16567
+ h("textarea", { style: { width: "100%", height: "300px" }, onChange: (e) => callbacks.setEditedTemplate(e.target.value) }, states.editedTemplate),
16568
+ h("button", { onClick: () => callbacks.setPreviewTemplate(states.editedTemplate) }, "Update Preview"),
16569
+ h("label", null,
16570
+ "Current path:",
16571
+ h("input", { onInput: callbacks.setPath, value: "/" })),
16572
+ h("div", { innerHTML: states.previewTemplate }),
16573
+ ];
16574
+ }
16575
+ const RouterPlayground = createHookStory(() => {
16576
+ const { states, callbacks } = useTemplate(defaultRouter);
16577
+ return h(TemplateView, { states: states, callbacks: callbacks });
16578
+ });
16327
16579
 
16328
16580
  const Router = /*#__PURE__*/Object.freeze({
16329
16581
  __proto__: null,
16330
16582
  'default': Router_stories,
16331
16583
  TemplateNavigation: TemplateNavigation,
16332
16584
  RouteNavigation: RouteNavigation,
16333
- Styling: Styling
16585
+ Styling: Styling,
16586
+ RouterPlayground: RouterPlayground
16334
16587
  });
16335
16588
 
16336
16589
  const LeaderboardRank_stories = {
@@ -16543,25 +16796,6 @@ const EditProfile$1 = /*#__PURE__*/Object.freeze({
16543
16796
  FullStackFrameWithMenu: FullStackFrameWithMenu
16544
16797
  });
16545
16798
 
16546
- const HookStoryAddon = ({ story }, children) => {
16547
- var _a;
16548
- const hookStory = (_a = story.story.parameters) === null || _a === void 0 ? void 0 : _a.hookStory;
16549
- if (!hookStory) {
16550
- return children;
16551
- }
16552
- const randomInt = Math.round(Math.random() * 100000);
16553
- const RandomTagName = "sqm-hook-story-container-" + randomInt;
16554
- return (h(RandomTagName, null,
16555
- h("sqm-hook-story-container", { hookStory: hookStory })));
16556
- };
16557
- function createHookStory(hookStory) {
16558
- const story = () => h("div", null);
16559
- story.parameters = {
16560
- hookStory,
16561
- };
16562
- return story;
16563
- }
16564
-
16565
16799
  const UseShareLink_stories = {
16566
16800
  title: "Hooks / useShareLink",
16567
16801
  };
@@ -16751,6 +16985,7 @@ const GlobalRewardsCountPctDiscountPending = createHookStory(() => View("/reward
16751
16985
  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?"));
16752
16986
  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?"));
16753
16987
  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?"));
16988
+ 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?"));
16754
16989
  const GlobalRewardsCountByIntegration = createHookStory(() => View("/integrationRewardsCountFiltered/AVAILABLE/global", "/(integrationRewardsCountFiltered)/:format([PENDING|CANCELLED|EXPIRED|REDEEMED|AVAILABLE]*)?/:global?"));
16755
16990
  const GlobalRewardsCountByPendingIntegration = createHookStory(() => View("/integrationRewardsCountFiltered/PENDING/global", "/(integrationRewardsCountFiltered)/:format([PENDING|CANCELLED|EXPIRED|REDEEMED|AVAILABLE]*)?/:global?"));
16756
16991
  const RewardsMonth = createHookStory(() => View("/rewardsMonth", "/(rewardsMonth)/:global?"));
@@ -16787,6 +17022,7 @@ const UseBigStat = /*#__PURE__*/Object.freeze({
16787
17022
  RewardsCountByUnit: RewardsCountByUnit,
16788
17023
  GlobalRewardsCountByUnit: GlobalRewardsCountByUnit,
16789
17024
  GlobalPendingRewardsCount: GlobalPendingRewardsCount,
17025
+ RewardsAvailableCount: RewardsAvailableCount,
16790
17026
  GlobalRewardsCountByIntegration: GlobalRewardsCountByIntegration,
16791
17027
  GlobalRewardsCountByPendingIntegration: GlobalRewardsCountByPendingIntegration,
16792
17028
  RewardsMonth: RewardsMonth,
@@ -16961,15 +17197,15 @@ const FormMessage$1 = /*#__PURE__*/Object.freeze({
16961
17197
  const NewPortal_stories = {
16962
17198
  title: "New Portal",
16963
17199
  };
16964
- const style$6 = {
17200
+ const style$7 = {
16965
17201
  HeaderSubtitleBold: {
16966
17202
  "font-weight": 500,
16967
17203
  "text-decoration": "underline",
16968
17204
  },
16969
17205
  };
16970
17206
  jss.setup(create());
16971
- const sheet$6 = jss.createStyleSheet(style$6);
16972
- const styleString$6 = sheet$6.toString();
17207
+ const sheet$7 = jss.createStyleSheet(style$7);
17208
+ const styleString$7 = sheet$7.toString();
16973
17209
  const barProps = {
16974
17210
  data: {
16975
17211
  programs: [
@@ -17064,7 +17300,7 @@ const Dashboard = () => {
17064
17300
  hide: false,
17065
17301
  };
17066
17302
  return (h("sqm-divided-layout", { direction: "row" },
17067
- h("style", { type: "text/css" }, styleString$6),
17303
+ h("style", { type: "text/css" }, styleString$7),
17068
17304
  h(Sidebar, null),
17069
17305
  h("sqm-divided-layout", { direction: "column" },
17070
17306
  h(PortalContainerView, Object.assign({}, { direction: "column", padding: "xxx-large", gap: "xxx-large" }),
@@ -17122,7 +17358,7 @@ const Dashboard = () => {
17122
17358
  };
17123
17359
  const EditProfile$2 = () => {
17124
17360
  return (h("sqm-divided-layout", { direction: "row" },
17125
- h("style", { type: "text/css" }, styleString$6),
17361
+ h("style", { type: "text/css" }, styleString$7),
17126
17362
  h(Sidebar, null),
17127
17363
  h("sqm-divided-layout", { direction: "column" },
17128
17364
  h(PortalProfileView, Object.assign({}, {
@@ -17144,6 +17380,9 @@ const EditProfile$2 = () => {
17144
17380
  lastnametext: "Last Name",
17145
17381
  emailtext: "Email",
17146
17382
  countrytext: "Country",
17383
+ editProfileHeader: "Edit your profile",
17384
+ editProfileSubHeader: "Personal Information",
17385
+ submitChangeButtonText: "Submit Changes",
17147
17386
  },
17148
17387
  formState: {
17149
17388
  country: "Canada",
@@ -17159,7 +17398,22 @@ const EditProfile$2 = () => {
17159
17398
  },
17160
17399
  })),
17161
17400
  h(PortalChangePasswordView, Object.assign({}, {
17162
- states: { open: true, error: "", loading: false, success: false },
17401
+ states: {
17402
+ open: true,
17403
+ error: "",
17404
+ loading: false,
17405
+ success: false,
17406
+ content: {
17407
+ modalChangePasswordHeader: "Change Password",
17408
+ cancelText: "Cancel",
17409
+ changePasswordButtonText: "Change Password",
17410
+ passwordFieldLabel: "Password",
17411
+ confirmPasswordFieldLabel: "Confirm new password",
17412
+ successMessage: "Your password has been updated.",
17413
+ portalChangePasswordHeader: "Password",
17414
+ portalChangePasswordButtonText: "Change your password...",
17415
+ },
17416
+ },
17163
17417
  callbacks: {
17164
17418
  setOpen: () => console.log("open"),
17165
17419
  submit: () => console.log("submit"),
@@ -17168,7 +17422,7 @@ const EditProfile$2 = () => {
17168
17422
  };
17169
17423
  const Commissions = () => {
17170
17424
  return (h("sqm-divided-layout", { direction: "row" },
17171
- h("style", { type: "text/css" }, styleString$6),
17425
+ h("style", { type: "text/css" }, styleString$7),
17172
17426
  h(Sidebar, null),
17173
17427
  h("sqm-divided-layout", { direction: "column" },
17174
17428
  h(PortalContainerView, Object.assign({}, { direction: "column", padding: "xxx-large", gap: "xxx-large" }),
@@ -17181,7 +17435,7 @@ const Commissions = () => {
17181
17435
  h("p", null,
17182
17436
  "for the",
17183
17437
  " ",
17184
- h("span", { class: sheet$6.classes.HeaderSubtitleBold }, "Partner Program #1"),
17438
+ h("span", { class: sheet$7.classes.HeaderSubtitleBold }, "Partner Program #1"),
17185
17439
  " ",
17186
17440
  "program"))),
17187
17441
  })),
@@ -17193,7 +17447,7 @@ const Commissions = () => {
17193
17447
  };
17194
17448
  const Activity = () => {
17195
17449
  return (h("sqm-divided-layout", { direction: "row" },
17196
- h("style", { type: "text/css" }, styleString$6),
17450
+ h("style", { type: "text/css" }, styleString$7),
17197
17451
  h(Sidebar, null),
17198
17452
  h("sqm-divided-layout", { direction: "column" },
17199
17453
  h(PortalContainerView, Object.assign({}, { direction: "column", padding: "xxx-large", gap: "xxx-large" }),
@@ -17206,7 +17460,7 @@ const Activity = () => {
17206
17460
  h("p", null,
17207
17461
  "for the",
17208
17462
  " ",
17209
- h("span", { class: sheet$6.classes.HeaderSubtitleBold }, "Partner Program #1"),
17463
+ h("span", { class: sheet$7.classes.HeaderSubtitleBold }, "Partner Program #1"),
17210
17464
  " ",
17211
17465
  "program"))),
17212
17466
  })),
@@ -17365,7 +17619,7 @@ const Default$2 = () => h(PortalLoginView, Object.assign({}, defaultProps$2));
17365
17619
  const LoginWithError = () => h(PortalLoginView, Object.assign({}, errorProps));
17366
17620
  const LoginLoading = () => h(PortalLoginView, Object.assign({}, loadingProps));
17367
17621
 
17368
- const PortalLogin = /*#__PURE__*/Object.freeze({
17622
+ const PortalLogin$1 = /*#__PURE__*/Object.freeze({
17369
17623
  __proto__: null,
17370
17624
  'default': PortalLogin_stories,
17371
17625
  Default: Default$2,
@@ -17390,7 +17644,7 @@ const defaultProps$3 = {
17390
17644
  refs: {
17391
17645
  formRef: {},
17392
17646
  },
17393
- content: { pageLabel: "Register" },
17647
+ content: { pageLabel: "Register", confirmPasswordLabel: "Confirm Password" },
17394
17648
  };
17395
17649
  const errorProps$1 = {
17396
17650
  states: {
@@ -17406,7 +17660,10 @@ const errorProps$1 = {
17406
17660
  refs: {
17407
17661
  formRef: {},
17408
17662
  },
17409
- content: { pageLabel: "Register" },
17663
+ content: {
17664
+ pageLabel: "Register",
17665
+ confirmPasswordLabel: "Confirm Password",
17666
+ },
17410
17667
  };
17411
17668
  const loadingProps$1 = {
17412
17669
  states: {
@@ -17422,7 +17679,7 @@ const loadingProps$1 = {
17422
17679
  refs: {
17423
17680
  formRef: {},
17424
17681
  },
17425
- content: { pageLabel: "Register" },
17682
+ content: { pageLabel: "Register", confirmPasswordLabel: "Confirm Password" },
17426
17683
  };
17427
17684
  const slottedProps = {
17428
17685
  states: {
@@ -17440,6 +17697,7 @@ const slottedProps = {
17440
17697
  },
17441
17698
  content: {
17442
17699
  pageLabel: "Register",
17700
+ confirmPasswordLabel: "Confirm Password",
17443
17701
  formData: (h("div", null,
17444
17702
  h("sl-input", { style: { marginBottom: "var(--sl-spacing-x-large)" }, exportparts: "label: input-label", label: "Slotted Input", required: true }),
17445
17703
  h("sl-input", { exportparts: "label: input-label", label: "Slotted Input 2", required: true }))),
@@ -17568,6 +17826,8 @@ const defaultProps$5 = {
17568
17826
  content: {
17569
17827
  email: "email@example.com",
17570
17828
  verifyMessage: "A verification email was sent to {email}. Please verify your email to continue to the portal.",
17829
+ emailVerificationHeader: "Verify your email",
17830
+ resendEmailButtonText: "Re-send Email",
17571
17831
  },
17572
17832
  };
17573
17833
  const errorProps$3 = {
@@ -17582,6 +17842,8 @@ const errorProps$3 = {
17582
17842
  content: {
17583
17843
  email: "email@example.com",
17584
17844
  verifyMessage: "A verification email was sent to {email}. Please verify your email to continue to the portal.",
17845
+ emailVerificationHeader: "Verify your email",
17846
+ resendEmailButtonText: "Re-send Email",
17585
17847
  },
17586
17848
  };
17587
17849
  const loadingProps$3 = {
@@ -17596,6 +17858,8 @@ const loadingProps$3 = {
17596
17858
  content: {
17597
17859
  email: "email@example.com",
17598
17860
  verifyMessage: "A verification email was sent to {email}. Please verify your email to continue to the portal.",
17861
+ emailVerificationHeader: "Verify your email",
17862
+ resendEmailButtonText: "Re-send Email",
17599
17863
  },
17600
17864
  };
17601
17865
  const successProps$1 = {
@@ -17610,6 +17874,8 @@ const successProps$1 = {
17610
17874
  content: {
17611
17875
  email: "email@example.com",
17612
17876
  verifyMessage: "A verification email was sent to {email}. Please verify your email to continue to the portal.",
17877
+ emailVerificationHeader: "Verify your email",
17878
+ resendEmailButtonText: "Re-send Email",
17613
17879
  },
17614
17880
  };
17615
17881
  const Default$5 = () => h(PortalEmailVerificationView, Object.assign({}, defaultProps$5));
@@ -17642,6 +17908,13 @@ const defaultProps$6 = {
17642
17908
  confirmPassword: true,
17643
17909
  oobCodeValidating: false,
17644
17910
  oobCodeValid: true,
17911
+ content: {
17912
+ passwordResetHeader: "Password reset",
17913
+ resetPasswordHeader: "Reset your password",
17914
+ continueButtonText: "Continue",
17915
+ resetPasswordButtonText: "Reset Password",
17916
+ confirmPasswordFieldLabel: "Confirm Password",
17917
+ },
17645
17918
  },
17646
17919
  callbacks: {
17647
17920
  submit: async (e) => await e,
@@ -17657,6 +17930,13 @@ const defaultPropsNoConfirm = {
17657
17930
  confirmPassword: false,
17658
17931
  oobCodeValidating: false,
17659
17932
  oobCodeValid: true,
17933
+ content: {
17934
+ passwordResetHeader: "Password reset",
17935
+ resetPasswordHeader: "Reset your password",
17936
+ continueButtonText: "Continue",
17937
+ resetPasswordButtonText: "Reset Password",
17938
+ confirmPasswordFieldLabel: "Confirm Password",
17939
+ },
17660
17940
  },
17661
17941
  callbacks: {
17662
17942
  submit: async (e) => await e,
@@ -17672,6 +17952,13 @@ const errorProps$4 = {
17672
17952
  confirmPassword: true,
17673
17953
  oobCodeValidating: false,
17674
17954
  oobCodeValid: true,
17955
+ content: {
17956
+ passwordResetHeader: "Password reset",
17957
+ resetPasswordHeader: "Reset your password",
17958
+ continueButtonText: "Continue",
17959
+ resetPasswordButtonText: "Reset Password",
17960
+ confirmPasswordFieldLabel: "Confirm Password",
17961
+ },
17675
17962
  },
17676
17963
  callbacks: {
17677
17964
  submit: async (e) => await e,
@@ -17687,6 +17974,13 @@ const loadingProps$4 = {
17687
17974
  confirmPassword: true,
17688
17975
  oobCodeValidating: false,
17689
17976
  oobCodeValid: true,
17977
+ content: {
17978
+ passwordResetHeader: "Password reset",
17979
+ resetPasswordHeader: "Reset your password",
17980
+ continueButtonText: "Continue",
17981
+ resetPasswordButtonText: "Reset Password",
17982
+ confirmPasswordFieldLabel: "Confirm Password",
17983
+ },
17690
17984
  },
17691
17985
  callbacks: {
17692
17986
  submit: async (e) => await e,
@@ -17702,6 +17996,13 @@ const successProps$2 = {
17702
17996
  confirmPassword: true,
17703
17997
  oobCodeValidating: false,
17704
17998
  oobCodeValid: true,
17999
+ content: {
18000
+ passwordResetHeader: "Password reset",
18001
+ resetPasswordHeader: "Reset your password",
18002
+ continueButtonText: "Continue",
18003
+ resetPasswordButtonText: "Reset Password",
18004
+ confirmPasswordFieldLabel: "Confirm Password",
18005
+ },
17705
18006
  },
17706
18007
  callbacks: {
17707
18008
  submit: async (e) => await e,
@@ -17717,6 +18018,13 @@ const validatingCodeProps = {
17717
18018
  confirmPassword: true,
17718
18019
  oobCodeValidating: false,
17719
18020
  oobCodeValid: false,
18021
+ content: {
18022
+ passwordResetHeader: "Password reset",
18023
+ resetPasswordHeader: "Reset your password",
18024
+ continueButtonText: "Continue",
18025
+ resetPasswordButtonText: "Reset Password",
18026
+ confirmPasswordFieldLabel: "Confirm Password",
18027
+ },
17720
18028
  },
17721
18029
  callbacks: {
17722
18030
  submit: async (e) => await e,
@@ -17923,14 +18231,44 @@ const ChangePassword_stories = {
17923
18231
  },
17924
18232
  };
17925
18233
  const defaultProps$7 = {
17926
- states: { open: false, loading: false, success: false, error: "" },
18234
+ states: {
18235
+ open: false,
18236
+ loading: false,
18237
+ success: false,
18238
+ error: "",
18239
+ content: {
18240
+ modalChangePasswordHeader: "Change Password",
18241
+ cancelText: "Cancel",
18242
+ changePasswordButtonText: "Change Password",
18243
+ passwordFieldLabel: "Password",
18244
+ confirmPasswordFieldLabel: "Confirm new password",
18245
+ successMessage: "Your password has been updated.",
18246
+ portalChangePasswordHeader: "Password",
18247
+ portalChangePasswordButtonText: "Change your password...",
18248
+ },
18249
+ },
17927
18250
  callbacks: {
17928
18251
  setOpen: (o) => console.log(o),
17929
18252
  submit: (e) => console.log("Submit", e),
17930
18253
  },
17931
18254
  };
17932
18255
  const openProps = {
17933
- states: { open: true, loading: false, success: false, error: "" },
18256
+ states: {
18257
+ open: true,
18258
+ loading: false,
18259
+ success: false,
18260
+ error: "",
18261
+ content: {
18262
+ modalChangePasswordHeader: "Change Password",
18263
+ cancelText: "Cancel",
18264
+ changePasswordButtonText: "Change Password",
18265
+ passwordFieldLabel: "Password",
18266
+ confirmPasswordFieldLabel: "Confirm new password",
18267
+ successMessage: "Your password has been updated.",
18268
+ portalChangePasswordHeader: "Password",
18269
+ portalChangePasswordButtonText: "Change your password...",
18270
+ },
18271
+ },
17934
18272
  callbacks: {
17935
18273
  setOpen: (o) => console.log(o),
17936
18274
  submit: (e) => console.log("Submit", e),
@@ -17942,6 +18280,16 @@ const errorProps$6 = {
17942
18280
  loading: false,
17943
18281
  success: false,
17944
18282
  error: "Network error. Please try again.",
18283
+ content: {
18284
+ modalChangePasswordHeader: "Change Password",
18285
+ cancelText: "Cancel",
18286
+ changePasswordButtonText: "Change Password",
18287
+ passwordFieldLabel: "Password",
18288
+ confirmPasswordFieldLabel: "Confirm new password",
18289
+ successMessage: "Your password has been updated.",
18290
+ portalChangePasswordHeader: "Password",
18291
+ portalChangePasswordButtonText: "Change your password...",
18292
+ },
17945
18293
  },
17946
18294
  callbacks: {
17947
18295
  setOpen: (o) => console.log(o),
@@ -17954,6 +18302,16 @@ const passwordErrorProps = {
17954
18302
  loading: false,
17955
18303
  success: false,
17956
18304
  error: "Passwords do not match.",
18305
+ content: {
18306
+ modalChangePasswordHeader: "Change Password",
18307
+ cancelText: "Cancel",
18308
+ changePasswordButtonText: "Change Password",
18309
+ passwordFieldLabel: "Password",
18310
+ confirmPasswordFieldLabel: "Confirm new password",
18311
+ successMessage: "Your password has been updated.",
18312
+ portalChangePasswordHeader: "Password",
18313
+ portalChangePasswordButtonText: "Change your password...",
18314
+ },
17957
18315
  },
17958
18316
  callbacks: {
17959
18317
  setOpen: (o) => console.log(o),
@@ -17966,6 +18324,16 @@ const loadingProps$5 = {
17966
18324
  loading: true,
17967
18325
  success: false,
17968
18326
  error: "",
18327
+ content: {
18328
+ modalChangePasswordHeader: "Change Password",
18329
+ cancelText: "Cancel",
18330
+ changePasswordButtonText: "Change Password",
18331
+ passwordFieldLabel: "Password",
18332
+ confirmPasswordFieldLabel: "Confirm new password",
18333
+ successMessage: "Your password has been updated.",
18334
+ portalChangePasswordHeader: "Password",
18335
+ portalChangePasswordButtonText: "Change your password...",
18336
+ },
17969
18337
  },
17970
18338
  callbacks: {
17971
18339
  setOpen: (o) => console.log(o),
@@ -17978,6 +18346,16 @@ const successProps$3 = {
17978
18346
  loading: false,
17979
18347
  success: true,
17980
18348
  error: "",
18349
+ content: {
18350
+ modalChangePasswordHeader: "Change Password",
18351
+ cancelText: "Cancel",
18352
+ changePasswordButtonText: "Change Password",
18353
+ passwordFieldLabel: "Password",
18354
+ confirmPasswordFieldLabel: "Confirm new password",
18355
+ successMessage: "Your password has been updated.",
18356
+ portalChangePasswordHeader: "Password",
18357
+ portalChangePasswordButtonText: "Change your password...",
18358
+ },
17981
18359
  },
17982
18360
  callbacks: {
17983
18361
  setOpen: (o) => console.log(o),
@@ -18028,6 +18406,9 @@ const defaultProps$8 = {
18028
18406
  lastnametext: "Last Name",
18029
18407
  emailtext: "Email",
18030
18408
  countrytext: "Country",
18409
+ editProfileHeader: "Edit your profile",
18410
+ editProfileSubHeader: "Personal Information",
18411
+ submitChangeButtonText: "Submit Changes",
18031
18412
  },
18032
18413
  formState: {
18033
18414
  country: "Canada",
@@ -18061,6 +18442,9 @@ const noCountry = {
18061
18442
  lastnametext: "Last Name",
18062
18443
  emailtext: "Email",
18063
18444
  countrytext: "Country",
18445
+ editProfileHeader: "Edit your profile",
18446
+ editProfileSubHeader: "Personal Information",
18447
+ submitChangeButtonText: "Submit Changes",
18064
18448
  },
18065
18449
  formState: {
18066
18450
  country: "Canada",
@@ -18094,6 +18478,9 @@ const loadingProps$6 = {
18094
18478
  lastnametext: "Last Name",
18095
18479
  emailtext: "Email",
18096
18480
  countrytext: "Country",
18481
+ editProfileHeader: "Edit your profile",
18482
+ editProfileSubHeader: "Personal Information",
18483
+ submitChangeButtonText: "Submit Changes",
18097
18484
  },
18098
18485
  formState: {
18099
18486
  country: "Canada",
@@ -18127,6 +18514,9 @@ const disabledProps = {
18127
18514
  lastnametext: "Last Name",
18128
18515
  emailtext: "Email",
18129
18516
  countrytext: "Country",
18517
+ editProfileHeader: "Edit your profile",
18518
+ editProfileSubHeader: "Personal Information",
18519
+ submitChangeButtonText: "Submit Changes",
18130
18520
  },
18131
18521
  formState: {
18132
18522
  country: "Canada",
@@ -18160,6 +18550,9 @@ const errorProps$7 = {
18160
18550
  lastnametext: "Last Name",
18161
18551
  emailtext: "Email",
18162
18552
  countrytext: "Country",
18553
+ editProfileHeader: "Edit your profile",
18554
+ editProfileSubHeader: "Personal Information",
18555
+ submitChangeButtonText: "Submit Changes",
18163
18556
  },
18164
18557
  formState: {
18165
18558
  country: "Canada",
@@ -18193,6 +18586,9 @@ const successProps$4 = {
18193
18586
  lastnametext: "Last Name",
18194
18587
  emailtext: "Email",
18195
18588
  countrytext: "Country",
18589
+ editProfileHeader: "Edit your profile",
18590
+ editProfileSubHeader: "Personal Information",
18591
+ submitChangeButtonText: "Submit Changes",
18196
18592
  },
18197
18593
  formState: {
18198
18594
  country: "Canada",
@@ -19086,6 +19482,3361 @@ const PasswordField = /*#__PURE__*/Object.freeze({
19086
19482
  ValidationError: ValidationError
19087
19483
  });
19088
19484
 
19485
+ 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";
19486
+
19487
+ 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";
19488
+
19489
+ 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";
19490
+
19491
+ 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";
19492
+
19493
+ 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 >";
19494
+
19495
+ 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";
19496
+
19497
+ 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";
19498
+
19499
+ 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>";
19500
+
19501
+ 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>";
19502
+
19503
+ 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";
19504
+
19505
+ 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";
19506
+
19507
+ 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";
19508
+
19509
+ const resetPasswordTemplate = "<sqm-portal-reset-password confirm-password=\"true\"></sqm-portal-reset-password>\r\n";
19510
+
19511
+ const emailVerifiedTemplate = "<sqm-portal-verify-email></sqm-portal-verify-email>\r\n";
19512
+
19513
+ 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";
19514
+
19515
+ var marked = createCommonjsModule(function (module, exports) {
19516
+ /**
19517
+ * marked - a markdown parser
19518
+ * Copyright (c) 2011-2021, Christopher Jeffrey. (MIT Licensed)
19519
+ * https://github.com/markedjs/marked
19520
+ */
19521
+
19522
+ /**
19523
+ * DO NOT EDIT THIS FILE
19524
+ * The code in this file is generated from files in ./src/
19525
+ */
19526
+
19527
+ (function (global, factory) {
19528
+ module.exports = factory() ;
19529
+ }(commonjsGlobal, (function () {
19530
+ function _defineProperties(target, props) {
19531
+ for (var i = 0; i < props.length; i++) {
19532
+ var descriptor = props[i];
19533
+ descriptor.enumerable = descriptor.enumerable || false;
19534
+ descriptor.configurable = true;
19535
+ if ("value" in descriptor) descriptor.writable = true;
19536
+ Object.defineProperty(target, descriptor.key, descriptor);
19537
+ }
19538
+ }
19539
+
19540
+ function _createClass(Constructor, protoProps, staticProps) {
19541
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
19542
+ if (staticProps) _defineProperties(Constructor, staticProps);
19543
+ return Constructor;
19544
+ }
19545
+
19546
+ function _unsupportedIterableToArray(o, minLen) {
19547
+ if (!o) return;
19548
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
19549
+ var n = Object.prototype.toString.call(o).slice(8, -1);
19550
+ if (n === "Object" && o.constructor) n = o.constructor.name;
19551
+ if (n === "Map" || n === "Set") return Array.from(o);
19552
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
19553
+ }
19554
+
19555
+ function _arrayLikeToArray(arr, len) {
19556
+ if (len == null || len > arr.length) len = arr.length;
19557
+
19558
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
19559
+
19560
+ return arr2;
19561
+ }
19562
+
19563
+ function _createForOfIteratorHelperLoose(o, allowArrayLike) {
19564
+ var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
19565
+ if (it) return (it = it.call(o)).next.bind(it);
19566
+
19567
+ if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
19568
+ if (it) o = it;
19569
+ var i = 0;
19570
+ return function () {
19571
+ if (i >= o.length) return {
19572
+ done: true
19573
+ };
19574
+ return {
19575
+ done: false,
19576
+ value: o[i++]
19577
+ };
19578
+ };
19579
+ }
19580
+
19581
+ throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
19582
+ }
19583
+
19584
+ var defaults$5 = {exports: {}};
19585
+
19586
+ function getDefaults$1() {
19587
+ return {
19588
+ baseUrl: null,
19589
+ breaks: false,
19590
+ extensions: null,
19591
+ gfm: true,
19592
+ headerIds: true,
19593
+ headerPrefix: '',
19594
+ highlight: null,
19595
+ langPrefix: 'language-',
19596
+ mangle: true,
19597
+ pedantic: false,
19598
+ renderer: null,
19599
+ sanitize: false,
19600
+ sanitizer: null,
19601
+ silent: false,
19602
+ smartLists: false,
19603
+ smartypants: false,
19604
+ tokenizer: null,
19605
+ walkTokens: null,
19606
+ xhtml: false
19607
+ };
19608
+ }
19609
+
19610
+ function changeDefaults$1(newDefaults) {
19611
+ defaults$5.exports.defaults = newDefaults;
19612
+ }
19613
+
19614
+ defaults$5.exports = {
19615
+ defaults: getDefaults$1(),
19616
+ getDefaults: getDefaults$1,
19617
+ changeDefaults: changeDefaults$1
19618
+ };
19619
+
19620
+ /**
19621
+ * Helpers
19622
+ */
19623
+ var escapeTest = /[&<>"']/;
19624
+ var escapeReplace = /[&<>"']/g;
19625
+ var escapeTestNoEncode = /[<>"']|&(?!#?\w+;)/;
19626
+ var escapeReplaceNoEncode = /[<>"']|&(?!#?\w+;)/g;
19627
+ var escapeReplacements = {
19628
+ '&': '&amp;',
19629
+ '<': '&lt;',
19630
+ '>': '&gt;',
19631
+ '"': '&quot;',
19632
+ "'": '&#39;'
19633
+ };
19634
+
19635
+ var getEscapeReplacement = function getEscapeReplacement(ch) {
19636
+ return escapeReplacements[ch];
19637
+ };
19638
+
19639
+ function escape$2(html, encode) {
19640
+ if (encode) {
19641
+ if (escapeTest.test(html)) {
19642
+ return html.replace(escapeReplace, getEscapeReplacement);
19643
+ }
19644
+ } else {
19645
+ if (escapeTestNoEncode.test(html)) {
19646
+ return html.replace(escapeReplaceNoEncode, getEscapeReplacement);
19647
+ }
19648
+ }
19649
+
19650
+ return html;
19651
+ }
19652
+
19653
+ var unescapeTest = /&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;
19654
+
19655
+ function unescape$1(html) {
19656
+ // explicitly match decimal, hex, and named HTML entities
19657
+ return html.replace(unescapeTest, function (_, n) {
19658
+ n = n.toLowerCase();
19659
+ if (n === 'colon') return ':';
19660
+
19661
+ if (n.charAt(0) === '#') {
19662
+ return n.charAt(1) === 'x' ? String.fromCharCode(parseInt(n.substring(2), 16)) : String.fromCharCode(+n.substring(1));
19663
+ }
19664
+
19665
+ return '';
19666
+ });
19667
+ }
19668
+
19669
+ var caret = /(^|[^\[])\^/g;
19670
+
19671
+ function edit$1(regex, opt) {
19672
+ regex = regex.source || regex;
19673
+ opt = opt || '';
19674
+ var obj = {
19675
+ replace: function replace(name, val) {
19676
+ val = val.source || val;
19677
+ val = val.replace(caret, '$1');
19678
+ regex = regex.replace(name, val);
19679
+ return obj;
19680
+ },
19681
+ getRegex: function getRegex() {
19682
+ return new RegExp(regex, opt);
19683
+ }
19684
+ };
19685
+ return obj;
19686
+ }
19687
+
19688
+ var nonWordAndColonTest = /[^\w:]/g;
19689
+ var originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;
19690
+
19691
+ function cleanUrl$1(sanitize, base, href) {
19692
+ if (sanitize) {
19693
+ var prot;
19694
+
19695
+ try {
19696
+ prot = decodeURIComponent(unescape$1(href)).replace(nonWordAndColonTest, '').toLowerCase();
19697
+ } catch (e) {
19698
+ return null;
19699
+ }
19700
+
19701
+ if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {
19702
+ return null;
19703
+ }
19704
+ }
19705
+
19706
+ if (base && !originIndependentUrl.test(href)) {
19707
+ href = resolveUrl(base, href);
19708
+ }
19709
+
19710
+ try {
19711
+ href = encodeURI(href).replace(/%25/g, '%');
19712
+ } catch (e) {
19713
+ return null;
19714
+ }
19715
+
19716
+ return href;
19717
+ }
19718
+
19719
+ var baseUrls = {};
19720
+ var justDomain = /^[^:]+:\/*[^/]*$/;
19721
+ var protocol = /^([^:]+:)[\s\S]*$/;
19722
+ var domain = /^([^:]+:\/*[^/]*)[\s\S]*$/;
19723
+
19724
+ function resolveUrl(base, href) {
19725
+ if (!baseUrls[' ' + base]) {
19726
+ // we can ignore everything in base after the last slash of its path component,
19727
+ // but we might need to add _that_
19728
+ // https://tools.ietf.org/html/rfc3986#section-3
19729
+ if (justDomain.test(base)) {
19730
+ baseUrls[' ' + base] = base + '/';
19731
+ } else {
19732
+ baseUrls[' ' + base] = rtrim$1(base, '/', true);
19733
+ }
19734
+ }
19735
+
19736
+ base = baseUrls[' ' + base];
19737
+ var relativeBase = base.indexOf(':') === -1;
19738
+
19739
+ if (href.substring(0, 2) === '//') {
19740
+ if (relativeBase) {
19741
+ return href;
19742
+ }
19743
+
19744
+ return base.replace(protocol, '$1') + href;
19745
+ } else if (href.charAt(0) === '/') {
19746
+ if (relativeBase) {
19747
+ return href;
19748
+ }
19749
+
19750
+ return base.replace(domain, '$1') + href;
19751
+ } else {
19752
+ return base + href;
19753
+ }
19754
+ }
19755
+
19756
+ var noopTest$1 = {
19757
+ exec: function noopTest() {}
19758
+ };
19759
+
19760
+ function merge$2(obj) {
19761
+ var i = 1,
19762
+ target,
19763
+ key;
19764
+
19765
+ for (; i < arguments.length; i++) {
19766
+ target = arguments[i];
19767
+
19768
+ for (key in target) {
19769
+ if (Object.prototype.hasOwnProperty.call(target, key)) {
19770
+ obj[key] = target[key];
19771
+ }
19772
+ }
19773
+ }
19774
+
19775
+ return obj;
19776
+ }
19777
+
19778
+ function splitCells$1(tableRow, count) {
19779
+ // ensure that every cell-delimiting pipe has a space
19780
+ // before it to distinguish it from an escaped pipe
19781
+ var row = tableRow.replace(/\|/g, function (match, offset, str) {
19782
+ var escaped = false,
19783
+ curr = offset;
19784
+
19785
+ while (--curr >= 0 && str[curr] === '\\') {
19786
+ escaped = !escaped;
19787
+ }
19788
+
19789
+ if (escaped) {
19790
+ // odd number of slashes means | is escaped
19791
+ // so we leave it alone
19792
+ return '|';
19793
+ } else {
19794
+ // add space before unescaped |
19795
+ return ' |';
19796
+ }
19797
+ }),
19798
+ cells = row.split(/ \|/);
19799
+ var i = 0; // First/last cell in a row cannot be empty if it has no leading/trailing pipe
19800
+
19801
+ if (!cells[0].trim()) {
19802
+ cells.shift();
19803
+ }
19804
+
19805
+ if (!cells[cells.length - 1].trim()) {
19806
+ cells.pop();
19807
+ }
19808
+
19809
+ if (cells.length > count) {
19810
+ cells.splice(count);
19811
+ } else {
19812
+ while (cells.length < count) {
19813
+ cells.push('');
19814
+ }
19815
+ }
19816
+
19817
+ for (; i < cells.length; i++) {
19818
+ // leading or trailing whitespace is ignored per the gfm spec
19819
+ cells[i] = cells[i].trim().replace(/\\\|/g, '|');
19820
+ }
19821
+
19822
+ return cells;
19823
+ } // Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').
19824
+ // /c*$/ is vulnerable to REDOS.
19825
+ // invert: Remove suffix of non-c chars instead. Default falsey.
19826
+
19827
+
19828
+ function rtrim$1(str, c, invert) {
19829
+ var l = str.length;
19830
+
19831
+ if (l === 0) {
19832
+ return '';
19833
+ } // Length of suffix matching the invert condition.
19834
+
19835
+
19836
+ var suffLen = 0; // Step left until we fail to match the invert condition.
19837
+
19838
+ while (suffLen < l) {
19839
+ var currChar = str.charAt(l - suffLen - 1);
19840
+
19841
+ if (currChar === c && !invert) {
19842
+ suffLen++;
19843
+ } else if (currChar !== c && invert) {
19844
+ suffLen++;
19845
+ } else {
19846
+ break;
19847
+ }
19848
+ }
19849
+
19850
+ return str.substr(0, l - suffLen);
19851
+ }
19852
+
19853
+ function findClosingBracket$1(str, b) {
19854
+ if (str.indexOf(b[1]) === -1) {
19855
+ return -1;
19856
+ }
19857
+
19858
+ var l = str.length;
19859
+ var level = 0,
19860
+ i = 0;
19861
+
19862
+ for (; i < l; i++) {
19863
+ if (str[i] === '\\') {
19864
+ i++;
19865
+ } else if (str[i] === b[0]) {
19866
+ level++;
19867
+ } else if (str[i] === b[1]) {
19868
+ level--;
19869
+
19870
+ if (level < 0) {
19871
+ return i;
19872
+ }
19873
+ }
19874
+ }
19875
+
19876
+ return -1;
19877
+ }
19878
+
19879
+ function checkSanitizeDeprecation$1(opt) {
19880
+ if (opt && opt.sanitize && !opt.silent) {
19881
+ 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');
19882
+ }
19883
+ } // copied from https://stackoverflow.com/a/5450113/806777
19884
+
19885
+
19886
+ function repeatString$1(pattern, count) {
19887
+ if (count < 1) {
19888
+ return '';
19889
+ }
19890
+
19891
+ var result = '';
19892
+
19893
+ while (count > 1) {
19894
+ if (count & 1) {
19895
+ result += pattern;
19896
+ }
19897
+
19898
+ count >>= 1;
19899
+ pattern += pattern;
19900
+ }
19901
+
19902
+ return result + pattern;
19903
+ }
19904
+
19905
+ var helpers = {
19906
+ escape: escape$2,
19907
+ unescape: unescape$1,
19908
+ edit: edit$1,
19909
+ cleanUrl: cleanUrl$1,
19910
+ resolveUrl: resolveUrl,
19911
+ noopTest: noopTest$1,
19912
+ merge: merge$2,
19913
+ splitCells: splitCells$1,
19914
+ rtrim: rtrim$1,
19915
+ findClosingBracket: findClosingBracket$1,
19916
+ checkSanitizeDeprecation: checkSanitizeDeprecation$1,
19917
+ repeatString: repeatString$1
19918
+ };
19919
+
19920
+ var defaults$4 = defaults$5.exports.defaults;
19921
+ var rtrim = helpers.rtrim,
19922
+ splitCells = helpers.splitCells,
19923
+ _escape = helpers.escape,
19924
+ findClosingBracket = helpers.findClosingBracket;
19925
+
19926
+ function outputLink(cap, link, raw, lexer) {
19927
+ var href = link.href;
19928
+ var title = link.title ? _escape(link.title) : null;
19929
+ var text = cap[1].replace(/\\([\[\]])/g, '$1');
19930
+
19931
+ if (cap[0].charAt(0) !== '!') {
19932
+ lexer.state.inLink = true;
19933
+ var token = {
19934
+ type: 'link',
19935
+ raw: raw,
19936
+ href: href,
19937
+ title: title,
19938
+ text: text,
19939
+ tokens: lexer.inlineTokens(text, [])
19940
+ };
19941
+ lexer.state.inLink = false;
19942
+ return token;
19943
+ } else {
19944
+ return {
19945
+ type: 'image',
19946
+ raw: raw,
19947
+ href: href,
19948
+ title: title,
19949
+ text: _escape(text)
19950
+ };
19951
+ }
19952
+ }
19953
+
19954
+ function indentCodeCompensation(raw, text) {
19955
+ var matchIndentToCode = raw.match(/^(\s+)(?:```)/);
19956
+
19957
+ if (matchIndentToCode === null) {
19958
+ return text;
19959
+ }
19960
+
19961
+ var indentToCode = matchIndentToCode[1];
19962
+ return text.split('\n').map(function (node) {
19963
+ var matchIndentInNode = node.match(/^\s+/);
19964
+
19965
+ if (matchIndentInNode === null) {
19966
+ return node;
19967
+ }
19968
+
19969
+ var indentInNode = matchIndentInNode[0];
19970
+
19971
+ if (indentInNode.length >= indentToCode.length) {
19972
+ return node.slice(indentToCode.length);
19973
+ }
19974
+
19975
+ return node;
19976
+ }).join('\n');
19977
+ }
19978
+ /**
19979
+ * Tokenizer
19980
+ */
19981
+
19982
+
19983
+ var Tokenizer_1 = /*#__PURE__*/function () {
19984
+ function Tokenizer(options) {
19985
+ this.options = options || defaults$4;
19986
+ }
19987
+
19988
+ var _proto = Tokenizer.prototype;
19989
+
19990
+ _proto.space = function space(src) {
19991
+ var cap = this.rules.block.newline.exec(src);
19992
+
19993
+ if (cap) {
19994
+ if (cap[0].length > 1) {
19995
+ return {
19996
+ type: 'space',
19997
+ raw: cap[0]
19998
+ };
19999
+ }
20000
+
20001
+ return {
20002
+ raw: '\n'
20003
+ };
20004
+ }
20005
+ };
20006
+
20007
+ _proto.code = function code(src) {
20008
+ var cap = this.rules.block.code.exec(src);
20009
+
20010
+ if (cap) {
20011
+ var text = cap[0].replace(/^ {1,4}/gm, '');
20012
+ return {
20013
+ type: 'code',
20014
+ raw: cap[0],
20015
+ codeBlockStyle: 'indented',
20016
+ text: !this.options.pedantic ? rtrim(text, '\n') : text
20017
+ };
20018
+ }
20019
+ };
20020
+
20021
+ _proto.fences = function fences(src) {
20022
+ var cap = this.rules.block.fences.exec(src);
20023
+
20024
+ if (cap) {
20025
+ var raw = cap[0];
20026
+ var text = indentCodeCompensation(raw, cap[3] || '');
20027
+ return {
20028
+ type: 'code',
20029
+ raw: raw,
20030
+ lang: cap[2] ? cap[2].trim() : cap[2],
20031
+ text: text
20032
+ };
20033
+ }
20034
+ };
20035
+
20036
+ _proto.heading = function heading(src) {
20037
+ var cap = this.rules.block.heading.exec(src);
20038
+
20039
+ if (cap) {
20040
+ var text = cap[2].trim(); // remove trailing #s
20041
+
20042
+ if (/#$/.test(text)) {
20043
+ var trimmed = rtrim(text, '#');
20044
+
20045
+ if (this.options.pedantic) {
20046
+ text = trimmed.trim();
20047
+ } else if (!trimmed || / $/.test(trimmed)) {
20048
+ // CommonMark requires space before trailing #s
20049
+ text = trimmed.trim();
20050
+ }
20051
+ }
20052
+
20053
+ var token = {
20054
+ type: 'heading',
20055
+ raw: cap[0],
20056
+ depth: cap[1].length,
20057
+ text: text,
20058
+ tokens: []
20059
+ };
20060
+ this.lexer.inline(token.text, token.tokens);
20061
+ return token;
20062
+ }
20063
+ };
20064
+
20065
+ _proto.hr = function hr(src) {
20066
+ var cap = this.rules.block.hr.exec(src);
20067
+
20068
+ if (cap) {
20069
+ return {
20070
+ type: 'hr',
20071
+ raw: cap[0]
20072
+ };
20073
+ }
20074
+ };
20075
+
20076
+ _proto.blockquote = function blockquote(src) {
20077
+ var cap = this.rules.block.blockquote.exec(src);
20078
+
20079
+ if (cap) {
20080
+ var text = cap[0].replace(/^ *> ?/gm, '');
20081
+ return {
20082
+ type: 'blockquote',
20083
+ raw: cap[0],
20084
+ tokens: this.lexer.blockTokens(text, []),
20085
+ text: text
20086
+ };
20087
+ }
20088
+ };
20089
+
20090
+ _proto.list = function list(src) {
20091
+ var cap = this.rules.block.list.exec(src);
20092
+
20093
+ if (cap) {
20094
+ var raw, istask, ischecked, indent, i, blankLine, endsWithBlankLine, line, lines, itemContents;
20095
+ var bull = cap[1].trim();
20096
+ var isordered = bull.length > 1;
20097
+ var list = {
20098
+ type: 'list',
20099
+ raw: '',
20100
+ ordered: isordered,
20101
+ start: isordered ? +bull.slice(0, -1) : '',
20102
+ loose: false,
20103
+ items: []
20104
+ };
20105
+ bull = isordered ? "\\d{1,9}\\" + bull.slice(-1) : "\\" + bull;
20106
+
20107
+ if (this.options.pedantic) {
20108
+ bull = isordered ? bull : '[*+-]';
20109
+ } // Get next list item
20110
+
20111
+
20112
+ var itemRegex = new RegExp("^( {0,3}" + bull + ")((?: [^\\n]*| *)(?:\\n[^\\n]*)*(?:\\n|$))"); // Get each top-level item
20113
+
20114
+ while (src) {
20115
+ if (this.rules.block.hr.test(src)) {
20116
+ // End list if we encounter an HR (possibly move into itemRegex?)
20117
+ break;
20118
+ }
20119
+
20120
+ if (!(cap = itemRegex.exec(src))) {
20121
+ break;
20122
+ }
20123
+
20124
+ lines = cap[2].split('\n');
20125
+
20126
+ if (this.options.pedantic) {
20127
+ indent = 2;
20128
+ itemContents = lines[0].trimLeft();
20129
+ } else {
20130
+ indent = cap[2].search(/[^ ]/); // Find first non-space char
20131
+
20132
+ indent = cap[1].length + (indent > 4 ? 1 : indent); // intented code blocks after 4 spaces; indent is always 1
20133
+
20134
+ itemContents = lines[0].slice(indent - cap[1].length);
20135
+ }
20136
+
20137
+ blankLine = false;
20138
+ raw = cap[0];
20139
+
20140
+ if (!lines[0] && /^ *$/.test(lines[1])) {
20141
+ // items begin with at most one blank line
20142
+ raw = cap[1] + lines.slice(0, 2).join('\n') + '\n';
20143
+ list.loose = true;
20144
+ lines = [];
20145
+ }
20146
+
20147
+ var nextBulletRegex = new RegExp("^ {0," + Math.min(3, indent - 1) + "}(?:[*+-]|\\d{1,9}[.)])");
20148
+
20149
+ for (i = 1; i < lines.length; i++) {
20150
+ line = lines[i];
20151
+
20152
+ if (this.options.pedantic) {
20153
+ // Re-align to follow commonmark nesting rules
20154
+ line = line.replace(/^ {1,4}(?=( {4})*[^ ])/g, ' ');
20155
+ } // End list item if found start of new bullet
20156
+
20157
+
20158
+ if (nextBulletRegex.test(line)) {
20159
+ raw = cap[1] + lines.slice(0, i).join('\n') + '\n';
20160
+ break;
20161
+ } // Until we encounter a blank line, item contents do not need indentation
20162
+
20163
+
20164
+ if (!blankLine) {
20165
+ if (!line.trim()) {
20166
+ // Check if current line is empty
20167
+ blankLine = true;
20168
+ } // Dedent if possible
20169
+
20170
+
20171
+ if (line.search(/[^ ]/) >= indent) {
20172
+ itemContents += '\n' + line.slice(indent);
20173
+ } else {
20174
+ itemContents += '\n' + line;
20175
+ }
20176
+
20177
+ continue;
20178
+ } // Dedent this line
20179
+
20180
+
20181
+ if (line.search(/[^ ]/) >= indent || !line.trim()) {
20182
+ itemContents += '\n' + line.slice(indent);
20183
+ continue;
20184
+ } else {
20185
+ // Line was not properly indented; end of this item
20186
+ raw = cap[1] + lines.slice(0, i).join('\n') + '\n';
20187
+ break;
20188
+ }
20189
+ }
20190
+
20191
+ if (!list.loose) {
20192
+ // If the previous item ended with a blank line, the list is loose
20193
+ if (endsWithBlankLine) {
20194
+ list.loose = true;
20195
+ } else if (/\n *\n *$/.test(raw)) {
20196
+ endsWithBlankLine = true;
20197
+ }
20198
+ } // Check for task list items
20199
+
20200
+
20201
+ if (this.options.gfm) {
20202
+ istask = /^\[[ xX]\] /.exec(itemContents);
20203
+
20204
+ if (istask) {
20205
+ ischecked = istask[0] !== '[ ] ';
20206
+ itemContents = itemContents.replace(/^\[[ xX]\] +/, '');
20207
+ }
20208
+ }
20209
+
20210
+ list.items.push({
20211
+ type: 'list_item',
20212
+ raw: raw,
20213
+ task: !!istask,
20214
+ checked: ischecked,
20215
+ loose: false,
20216
+ text: itemContents
20217
+ });
20218
+ list.raw += raw;
20219
+ src = src.slice(raw.length);
20220
+ } // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic
20221
+
20222
+
20223
+ list.items[list.items.length - 1].raw = raw.trimRight();
20224
+ list.items[list.items.length - 1].text = itemContents.trimRight();
20225
+ list.raw = list.raw.trimRight();
20226
+ var l = list.items.length; // Item child tokens handled here at end because we needed to have the final item to trim it first
20227
+
20228
+ for (i = 0; i < l; i++) {
20229
+ this.lexer.state.top = false;
20230
+ list.items[i].tokens = this.lexer.blockTokens(list.items[i].text, []);
20231
+
20232
+ if (list.items[i].tokens.some(function (t) {
20233
+ return t.type === 'space';
20234
+ })) {
20235
+ list.loose = true;
20236
+ list.items[i].loose = true;
20237
+ }
20238
+ }
20239
+
20240
+ return list;
20241
+ }
20242
+ };
20243
+
20244
+ _proto.html = function html(src) {
20245
+ var cap = this.rules.block.html.exec(src);
20246
+
20247
+ if (cap) {
20248
+ var token = {
20249
+ type: 'html',
20250
+ raw: cap[0],
20251
+ pre: !this.options.sanitizer && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'),
20252
+ text: cap[0]
20253
+ };
20254
+
20255
+ if (this.options.sanitize) {
20256
+ token.type = 'paragraph';
20257
+ token.text = this.options.sanitizer ? this.options.sanitizer(cap[0]) : _escape(cap[0]);
20258
+ token.tokens = [];
20259
+ this.lexer.inline(token.text, token.tokens);
20260
+ }
20261
+
20262
+ return token;
20263
+ }
20264
+ };
20265
+
20266
+ _proto.def = function def(src) {
20267
+ var cap = this.rules.block.def.exec(src);
20268
+
20269
+ if (cap) {
20270
+ if (cap[3]) cap[3] = cap[3].substring(1, cap[3].length - 1);
20271
+ var tag = cap[1].toLowerCase().replace(/\s+/g, ' ');
20272
+ return {
20273
+ type: 'def',
20274
+ tag: tag,
20275
+ raw: cap[0],
20276
+ href: cap[2],
20277
+ title: cap[3]
20278
+ };
20279
+ }
20280
+ };
20281
+
20282
+ _proto.table = function table(src) {
20283
+ var cap = this.rules.block.table.exec(src);
20284
+
20285
+ if (cap) {
20286
+ var item = {
20287
+ type: 'table',
20288
+ header: splitCells(cap[1]).map(function (c) {
20289
+ return {
20290
+ text: c
20291
+ };
20292
+ }),
20293
+ align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */),
20294
+ rows: cap[3] ? cap[3].replace(/\n$/, '').split('\n') : []
20295
+ };
20296
+
20297
+ if (item.header.length === item.align.length) {
20298
+ item.raw = cap[0];
20299
+ var l = item.align.length;
20300
+ var i, j, k, row;
20301
+
20302
+ for (i = 0; i < l; i++) {
20303
+ if (/^ *-+: *$/.test(item.align[i])) {
20304
+ item.align[i] = 'right';
20305
+ } else if (/^ *:-+: *$/.test(item.align[i])) {
20306
+ item.align[i] = 'center';
20307
+ } else if (/^ *:-+ *$/.test(item.align[i])) {
20308
+ item.align[i] = 'left';
20309
+ } else {
20310
+ item.align[i] = null;
20311
+ }
20312
+ }
20313
+
20314
+ l = item.rows.length;
20315
+
20316
+ for (i = 0; i < l; i++) {
20317
+ item.rows[i] = splitCells(item.rows[i], item.header.length).map(function (c) {
20318
+ return {
20319
+ text: c
20320
+ };
20321
+ });
20322
+ } // parse child tokens inside headers and cells
20323
+ // header child tokens
20324
+
20325
+
20326
+ l = item.header.length;
20327
+
20328
+ for (j = 0; j < l; j++) {
20329
+ item.header[j].tokens = [];
20330
+ this.lexer.inlineTokens(item.header[j].text, item.header[j].tokens);
20331
+ } // cell child tokens
20332
+
20333
+
20334
+ l = item.rows.length;
20335
+
20336
+ for (j = 0; j < l; j++) {
20337
+ row = item.rows[j];
20338
+
20339
+ for (k = 0; k < row.length; k++) {
20340
+ row[k].tokens = [];
20341
+ this.lexer.inlineTokens(row[k].text, row[k].tokens);
20342
+ }
20343
+ }
20344
+
20345
+ return item;
20346
+ }
20347
+ }
20348
+ };
20349
+
20350
+ _proto.lheading = function lheading(src) {
20351
+ var cap = this.rules.block.lheading.exec(src);
20352
+
20353
+ if (cap) {
20354
+ var token = {
20355
+ type: 'heading',
20356
+ raw: cap[0],
20357
+ depth: cap[2].charAt(0) === '=' ? 1 : 2,
20358
+ text: cap[1],
20359
+ tokens: []
20360
+ };
20361
+ this.lexer.inline(token.text, token.tokens);
20362
+ return token;
20363
+ }
20364
+ };
20365
+
20366
+ _proto.paragraph = function paragraph(src) {
20367
+ var cap = this.rules.block.paragraph.exec(src);
20368
+
20369
+ if (cap) {
20370
+ var token = {
20371
+ type: 'paragraph',
20372
+ raw: cap[0],
20373
+ text: cap[1].charAt(cap[1].length - 1) === '\n' ? cap[1].slice(0, -1) : cap[1],
20374
+ tokens: []
20375
+ };
20376
+ this.lexer.inline(token.text, token.tokens);
20377
+ return token;
20378
+ }
20379
+ };
20380
+
20381
+ _proto.text = function text(src) {
20382
+ var cap = this.rules.block.text.exec(src);
20383
+
20384
+ if (cap) {
20385
+ var token = {
20386
+ type: 'text',
20387
+ raw: cap[0],
20388
+ text: cap[0],
20389
+ tokens: []
20390
+ };
20391
+ this.lexer.inline(token.text, token.tokens);
20392
+ return token;
20393
+ }
20394
+ };
20395
+
20396
+ _proto.escape = function escape(src) {
20397
+ var cap = this.rules.inline.escape.exec(src);
20398
+
20399
+ if (cap) {
20400
+ return {
20401
+ type: 'escape',
20402
+ raw: cap[0],
20403
+ text: _escape(cap[1])
20404
+ };
20405
+ }
20406
+ };
20407
+
20408
+ _proto.tag = function tag(src) {
20409
+ var cap = this.rules.inline.tag.exec(src);
20410
+
20411
+ if (cap) {
20412
+ if (!this.lexer.state.inLink && /^<a /i.test(cap[0])) {
20413
+ this.lexer.state.inLink = true;
20414
+ } else if (this.lexer.state.inLink && /^<\/a>/i.test(cap[0])) {
20415
+ this.lexer.state.inLink = false;
20416
+ }
20417
+
20418
+ if (!this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\s|>)/i.test(cap[0])) {
20419
+ this.lexer.state.inRawBlock = true;
20420
+ } else if (this.lexer.state.inRawBlock && /^<\/(pre|code|kbd|script)(\s|>)/i.test(cap[0])) {
20421
+ this.lexer.state.inRawBlock = false;
20422
+ }
20423
+
20424
+ return {
20425
+ type: this.options.sanitize ? 'text' : 'html',
20426
+ raw: cap[0],
20427
+ inLink: this.lexer.state.inLink,
20428
+ inRawBlock: this.lexer.state.inRawBlock,
20429
+ text: this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : _escape(cap[0]) : cap[0]
20430
+ };
20431
+ }
20432
+ };
20433
+
20434
+ _proto.link = function link(src) {
20435
+ var cap = this.rules.inline.link.exec(src);
20436
+
20437
+ if (cap) {
20438
+ var trimmedUrl = cap[2].trim();
20439
+
20440
+ if (!this.options.pedantic && /^</.test(trimmedUrl)) {
20441
+ // commonmark requires matching angle brackets
20442
+ if (!/>$/.test(trimmedUrl)) {
20443
+ return;
20444
+ } // ending angle bracket cannot be escaped
20445
+
20446
+
20447
+ var rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\');
20448
+
20449
+ if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {
20450
+ return;
20451
+ }
20452
+ } else {
20453
+ // find closing parenthesis
20454
+ var lastParenIndex = findClosingBracket(cap[2], '()');
20455
+
20456
+ if (lastParenIndex > -1) {
20457
+ var start = cap[0].indexOf('!') === 0 ? 5 : 4;
20458
+ var linkLen = start + cap[1].length + lastParenIndex;
20459
+ cap[2] = cap[2].substring(0, lastParenIndex);
20460
+ cap[0] = cap[0].substring(0, linkLen).trim();
20461
+ cap[3] = '';
20462
+ }
20463
+ }
20464
+
20465
+ var href = cap[2];
20466
+ var title = '';
20467
+
20468
+ if (this.options.pedantic) {
20469
+ // split pedantic href and title
20470
+ var link = /^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(href);
20471
+
20472
+ if (link) {
20473
+ href = link[1];
20474
+ title = link[3];
20475
+ }
20476
+ } else {
20477
+ title = cap[3] ? cap[3].slice(1, -1) : '';
20478
+ }
20479
+
20480
+ href = href.trim();
20481
+
20482
+ if (/^</.test(href)) {
20483
+ if (this.options.pedantic && !/>$/.test(trimmedUrl)) {
20484
+ // pedantic allows starting angle bracket without ending angle bracket
20485
+ href = href.slice(1);
20486
+ } else {
20487
+ href = href.slice(1, -1);
20488
+ }
20489
+ }
20490
+
20491
+ return outputLink(cap, {
20492
+ href: href ? href.replace(this.rules.inline._escapes, '$1') : href,
20493
+ title: title ? title.replace(this.rules.inline._escapes, '$1') : title
20494
+ }, cap[0], this.lexer);
20495
+ }
20496
+ };
20497
+
20498
+ _proto.reflink = function reflink(src, links) {
20499
+ var cap;
20500
+
20501
+ if ((cap = this.rules.inline.reflink.exec(src)) || (cap = this.rules.inline.nolink.exec(src))) {
20502
+ var link = (cap[2] || cap[1]).replace(/\s+/g, ' ');
20503
+ link = links[link.toLowerCase()];
20504
+
20505
+ if (!link || !link.href) {
20506
+ var text = cap[0].charAt(0);
20507
+ return {
20508
+ type: 'text',
20509
+ raw: text,
20510
+ text: text
20511
+ };
20512
+ }
20513
+
20514
+ return outputLink(cap, link, cap[0], this.lexer);
20515
+ }
20516
+ };
20517
+
20518
+ _proto.emStrong = function emStrong(src, maskedSrc, prevChar) {
20519
+ if (prevChar === void 0) {
20520
+ prevChar = '';
20521
+ }
20522
+
20523
+ var match = this.rules.inline.emStrong.lDelim.exec(src);
20524
+ if (!match) return; // _ can't be between two alphanumerics. \p{L}\p{N} includes non-english alphabet/numbers as well
20525
+
20526
+ 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;
20527
+ var nextChar = match[1] || match[2] || '';
20528
+
20529
+ if (!nextChar || nextChar && (prevChar === '' || this.rules.inline.punctuation.exec(prevChar))) {
20530
+ var lLength = match[0].length - 1;
20531
+ var rDelim,
20532
+ rLength,
20533
+ delimTotal = lLength,
20534
+ midDelimTotal = 0;
20535
+ var endReg = match[0][0] === '*' ? this.rules.inline.emStrong.rDelimAst : this.rules.inline.emStrong.rDelimUnd;
20536
+ endReg.lastIndex = 0; // Clip maskedSrc to same section of string as src (move to lexer?)
20537
+
20538
+ maskedSrc = maskedSrc.slice(-1 * src.length + lLength);
20539
+
20540
+ while ((match = endReg.exec(maskedSrc)) != null) {
20541
+ rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];
20542
+ if (!rDelim) continue; // skip single * in __abc*abc__
20543
+
20544
+ rLength = rDelim.length;
20545
+
20546
+ if (match[3] || match[4]) {
20547
+ // found another Left Delim
20548
+ delimTotal += rLength;
20549
+ continue;
20550
+ } else if (match[5] || match[6]) {
20551
+ // either Left or Right Delim
20552
+ if (lLength % 3 && !((lLength + rLength) % 3)) {
20553
+ midDelimTotal += rLength;
20554
+ continue; // CommonMark Emphasis Rules 9-10
20555
+ }
20556
+ }
20557
+
20558
+ delimTotal -= rLength;
20559
+ if (delimTotal > 0) continue; // Haven't found enough closing delimiters
20560
+ // Remove extra characters. *a*** -> *a*
20561
+
20562
+ rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal); // Create `em` if smallest delimiter has odd char count. *a***
20563
+
20564
+ if (Math.min(lLength, rLength) % 2) {
20565
+ var _text = src.slice(1, lLength + match.index + rLength);
20566
+
20567
+ return {
20568
+ type: 'em',
20569
+ raw: src.slice(0, lLength + match.index + rLength + 1),
20570
+ text: _text,
20571
+ tokens: this.lexer.inlineTokens(_text, [])
20572
+ };
20573
+ } // Create 'strong' if smallest delimiter has even char count. **a***
20574
+
20575
+
20576
+ var text = src.slice(2, lLength + match.index + rLength - 1);
20577
+ return {
20578
+ type: 'strong',
20579
+ raw: src.slice(0, lLength + match.index + rLength + 1),
20580
+ text: text,
20581
+ tokens: this.lexer.inlineTokens(text, [])
20582
+ };
20583
+ }
20584
+ }
20585
+ };
20586
+
20587
+ _proto.codespan = function codespan(src) {
20588
+ var cap = this.rules.inline.code.exec(src);
20589
+
20590
+ if (cap) {
20591
+ var text = cap[2].replace(/\n/g, ' ');
20592
+ var hasNonSpaceChars = /[^ ]/.test(text);
20593
+ var hasSpaceCharsOnBothEnds = /^ /.test(text) && / $/.test(text);
20594
+
20595
+ if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {
20596
+ text = text.substring(1, text.length - 1);
20597
+ }
20598
+
20599
+ text = _escape(text, true);
20600
+ return {
20601
+ type: 'codespan',
20602
+ raw: cap[0],
20603
+ text: text
20604
+ };
20605
+ }
20606
+ };
20607
+
20608
+ _proto.br = function br(src) {
20609
+ var cap = this.rules.inline.br.exec(src);
20610
+
20611
+ if (cap) {
20612
+ return {
20613
+ type: 'br',
20614
+ raw: cap[0]
20615
+ };
20616
+ }
20617
+ };
20618
+
20619
+ _proto.del = function del(src) {
20620
+ var cap = this.rules.inline.del.exec(src);
20621
+
20622
+ if (cap) {
20623
+ return {
20624
+ type: 'del',
20625
+ raw: cap[0],
20626
+ text: cap[2],
20627
+ tokens: this.lexer.inlineTokens(cap[2], [])
20628
+ };
20629
+ }
20630
+ };
20631
+
20632
+ _proto.autolink = function autolink(src, mangle) {
20633
+ var cap = this.rules.inline.autolink.exec(src);
20634
+
20635
+ if (cap) {
20636
+ var text, href;
20637
+
20638
+ if (cap[2] === '@') {
20639
+ text = _escape(this.options.mangle ? mangle(cap[1]) : cap[1]);
20640
+ href = 'mailto:' + text;
20641
+ } else {
20642
+ text = _escape(cap[1]);
20643
+ href = text;
20644
+ }
20645
+
20646
+ return {
20647
+ type: 'link',
20648
+ raw: cap[0],
20649
+ text: text,
20650
+ href: href,
20651
+ tokens: [{
20652
+ type: 'text',
20653
+ raw: text,
20654
+ text: text
20655
+ }]
20656
+ };
20657
+ }
20658
+ };
20659
+
20660
+ _proto.url = function url(src, mangle) {
20661
+ var cap;
20662
+
20663
+ if (cap = this.rules.inline.url.exec(src)) {
20664
+ var text, href;
20665
+
20666
+ if (cap[2] === '@') {
20667
+ text = _escape(this.options.mangle ? mangle(cap[0]) : cap[0]);
20668
+ href = 'mailto:' + text;
20669
+ } else {
20670
+ // do extended autolink path validation
20671
+ var prevCapZero;
20672
+
20673
+ do {
20674
+ prevCapZero = cap[0];
20675
+ cap[0] = this.rules.inline._backpedal.exec(cap[0])[0];
20676
+ } while (prevCapZero !== cap[0]);
20677
+
20678
+ text = _escape(cap[0]);
20679
+
20680
+ if (cap[1] === 'www.') {
20681
+ href = 'http://' + text;
20682
+ } else {
20683
+ href = text;
20684
+ }
20685
+ }
20686
+
20687
+ return {
20688
+ type: 'link',
20689
+ raw: cap[0],
20690
+ text: text,
20691
+ href: href,
20692
+ tokens: [{
20693
+ type: 'text',
20694
+ raw: text,
20695
+ text: text
20696
+ }]
20697
+ };
20698
+ }
20699
+ };
20700
+
20701
+ _proto.inlineText = function inlineText(src, smartypants) {
20702
+ var cap = this.rules.inline.text.exec(src);
20703
+
20704
+ if (cap) {
20705
+ var text;
20706
+
20707
+ if (this.lexer.state.inRawBlock) {
20708
+ text = this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : _escape(cap[0]) : cap[0];
20709
+ } else {
20710
+ text = _escape(this.options.smartypants ? smartypants(cap[0]) : cap[0]);
20711
+ }
20712
+
20713
+ return {
20714
+ type: 'text',
20715
+ raw: cap[0],
20716
+ text: text
20717
+ };
20718
+ }
20719
+ };
20720
+
20721
+ return Tokenizer;
20722
+ }();
20723
+
20724
+ var noopTest = helpers.noopTest,
20725
+ edit = helpers.edit,
20726
+ merge$1 = helpers.merge;
20727
+ /**
20728
+ * Block-Level Grammar
20729
+ */
20730
+
20731
+ var block$1 = {
20732
+ newline: /^(?: *(?:\n|$))+/,
20733
+ code: /^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,
20734
+ fences: /^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,
20735
+ hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,
20736
+ heading: /^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,
20737
+ blockquote: /^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,
20738
+ list: /^( {0,3}bull)( [^\n]+?)?(?:\n|$)/,
20739
+ html: '^ {0,3}(?:' // optional indentation
20740
+ + '<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)' // (1)
20741
+ + '|comment[^\\n]*(\\n+|$)' // (2)
20742
+ + '|<\\?[\\s\\S]*?(?:\\?>\\n*|$)' // (3)
20743
+ + '|<![A-Z][\\s\\S]*?(?:>\\n*|$)' // (4)
20744
+ + '|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)' // (5)
20745
+ + '|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n *)+\\n|$)' // (6)
20746
+ + '|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)' // (7) open tag
20747
+ + '|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)' // (7) closing tag
20748
+ + ')',
20749
+ def: /^ {0,3}\[(label)\]: *\n? *<?([^\s>]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,
20750
+ table: noopTest,
20751
+ lheading: /^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,
20752
+ // regex template, placeholders will be replaced according to different paragraph
20753
+ // interruption rules of commonmark and the original markdown spec:
20754
+ _paragraph: /^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html| +\n)[^\n]+)*)/,
20755
+ text: /^[^\n]+/
20756
+ };
20757
+ block$1._label = /(?!\s*\])(?:\\[\[\]]|[^\[\]])+/;
20758
+ block$1._title = /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/;
20759
+ block$1.def = edit(block$1.def).replace('label', block$1._label).replace('title', block$1._title).getRegex();
20760
+ block$1.bullet = /(?:[*+-]|\d{1,9}[.)])/;
20761
+ block$1.listItemStart = edit(/^( *)(bull) */).replace('bull', block$1.bullet).getRegex();
20762
+ 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();
20763
+ 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';
20764
+ block$1._comment = /<!--(?!-?>)[\s\S]*?(?:-->|$)/;
20765
+ 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();
20766
+ 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
20767
+ .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
20768
+ .replace('html', '</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)').replace('tag', block$1._tag) // pars can be interrupted by type (6) html blocks
20769
+ .getRegex();
20770
+ block$1.blockquote = edit(block$1.blockquote).replace('paragraph', block$1.paragraph).getRegex();
20771
+ /**
20772
+ * Normal Block Grammar
20773
+ */
20774
+
20775
+ block$1.normal = merge$1({}, block$1);
20776
+ /**
20777
+ * GFM Block Grammar
20778
+ */
20779
+
20780
+ block$1.gfm = merge$1({}, block$1.normal, {
20781
+ table: '^ *([^\\n ].*\\|.*)\\n' // Header
20782
+ + ' {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?' // Align
20783
+ + '(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)' // Cells
20784
+
20785
+ });
20786
+ 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
20787
+ .replace('html', '</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)').replace('tag', block$1._tag) // tables can be interrupted by type (6) html blocks
20788
+ .getRegex();
20789
+ /**
20790
+ * Pedantic grammar (original John Gruber's loose markdown specification)
20791
+ */
20792
+
20793
+ block$1.pedantic = merge$1({}, block$1.normal, {
20794
+ html: edit('^ *(?:comment *(?:\\n|\\s*$)' + '|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)' // closed tag
20795
+ + '|<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(),
20796
+ def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,
20797
+ heading: /^(#{1,6})(.*)(?:\n+|$)/,
20798
+ fences: noopTest,
20799
+ // fences not supported
20800
+ 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()
20801
+ });
20802
+ /**
20803
+ * Inline-Level Grammar
20804
+ */
20805
+
20806
+ var inline$1 = {
20807
+ escape: /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,
20808
+ autolink: /^<(scheme:[^\s\x00-\x1f<>]*|email)>/,
20809
+ url: noopTest,
20810
+ tag: '^comment' + '|^</[a-zA-Z][\\w:-]*\\s*>' // self-closing tag
20811
+ + '|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>' // open tag
20812
+ + '|^<\\?[\\s\\S]*?\\?>' // processing instruction, e.g. <?php ?>
20813
+ + '|^<![a-zA-Z]+\\s[\\s\\S]*?>' // declaration, e.g. <!DOCTYPE html>
20814
+ + '|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>',
20815
+ // CDATA section
20816
+ link: /^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,
20817
+ reflink: /^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,
20818
+ nolink: /^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,
20819
+ reflinkSearch: 'reflink|nolink(?!\\()',
20820
+ emStrong: {
20821
+ lDelim: /^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,
20822
+ // (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.
20823
+ // () Skip orphan delim inside strong (1) #*** (2) a***#, a*** (3) #***a, ***a (4) ***# (5) #***# (6) a***a
20824
+ rDelimAst: /^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,
20825
+ rDelimUnd: /^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/ // ^- Not allowed for _
20826
+
20827
+ },
20828
+ code: /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,
20829
+ br: /^( {2,}|\\)\n(?!\s*$)/,
20830
+ del: noopTest,
20831
+ text: /^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,
20832
+ punctuation: /^([\spunctuation])/
20833
+ }; // list of punctuation marks from CommonMark spec
20834
+ // without * and _ to handle the different emphasis markers * and _
20835
+
20836
+ inline$1._punctuation = '!"#$%&\'()+\\-.,/:;<=>?@\\[\\]`^{|}~';
20837
+ inline$1.punctuation = edit(inline$1.punctuation).replace(/punctuation/g, inline$1._punctuation).getRegex(); // sequences em should skip over [title](link), `code`, <html>
20838
+
20839
+ inline$1.blockSkip = /\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g;
20840
+ inline$1.escapedEmSt = /\\\*|\\_/g;
20841
+ inline$1._comment = edit(block$1._comment).replace('(?:-->|$)', '-->').getRegex();
20842
+ inline$1.emStrong.lDelim = edit(inline$1.emStrong.lDelim).replace(/punct/g, inline$1._punctuation).getRegex();
20843
+ inline$1.emStrong.rDelimAst = edit(inline$1.emStrong.rDelimAst, 'g').replace(/punct/g, inline$1._punctuation).getRegex();
20844
+ inline$1.emStrong.rDelimUnd = edit(inline$1.emStrong.rDelimUnd, 'g').replace(/punct/g, inline$1._punctuation).getRegex();
20845
+ inline$1._escapes = /\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g;
20846
+ inline$1._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;
20847
+ 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])?)+(?![-_])/;
20848
+ inline$1.autolink = edit(inline$1.autolink).replace('scheme', inline$1._scheme).replace('email', inline$1._email).getRegex();
20849
+ inline$1._attribute = /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/;
20850
+ inline$1.tag = edit(inline$1.tag).replace('comment', inline$1._comment).replace('attribute', inline$1._attribute).getRegex();
20851
+ inline$1._label = /(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/;
20852
+ inline$1._href = /<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/;
20853
+ inline$1._title = /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/;
20854
+ inline$1.link = edit(inline$1.link).replace('label', inline$1._label).replace('href', inline$1._href).replace('title', inline$1._title).getRegex();
20855
+ inline$1.reflink = edit(inline$1.reflink).replace('label', inline$1._label).getRegex();
20856
+ inline$1.reflinkSearch = edit(inline$1.reflinkSearch, 'g').replace('reflink', inline$1.reflink).replace('nolink', inline$1.nolink).getRegex();
20857
+ /**
20858
+ * Normal Inline Grammar
20859
+ */
20860
+
20861
+ inline$1.normal = merge$1({}, inline$1);
20862
+ /**
20863
+ * Pedantic Inline Grammar
20864
+ */
20865
+
20866
+ inline$1.pedantic = merge$1({}, inline$1.normal, {
20867
+ strong: {
20868
+ start: /^__|\*\*/,
20869
+ middle: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,
20870
+ endAst: /\*\*(?!\*)/g,
20871
+ endUnd: /__(?!_)/g
20872
+ },
20873
+ em: {
20874
+ start: /^_|\*/,
20875
+ middle: /^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,
20876
+ endAst: /\*(?!\*)/g,
20877
+ endUnd: /_(?!_)/g
20878
+ },
20879
+ link: edit(/^!?\[(label)\]\((.*?)\)/).replace('label', inline$1._label).getRegex(),
20880
+ reflink: edit(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace('label', inline$1._label).getRegex()
20881
+ });
20882
+ /**
20883
+ * GFM Inline Grammar
20884
+ */
20885
+
20886
+ inline$1.gfm = merge$1({}, inline$1.normal, {
20887
+ escape: edit(inline$1.escape).replace('])', '~|])').getRegex(),
20888
+ _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,
20889
+ url: /^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,
20890
+ _backpedal: /(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,
20891
+ del: /^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,
20892
+ text: /^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/
20893
+ });
20894
+ inline$1.gfm.url = edit(inline$1.gfm.url, 'i').replace('email', inline$1.gfm._extended_email).getRegex();
20895
+ /**
20896
+ * GFM + Line Breaks Inline Grammar
20897
+ */
20898
+
20899
+ inline$1.breaks = merge$1({}, inline$1.gfm, {
20900
+ br: edit(inline$1.br).replace('{2,}', '*').getRegex(),
20901
+ text: edit(inline$1.gfm.text).replace('\\b_', '\\b_| {2,}\\n').replace(/\{2,\}/g, '*').getRegex()
20902
+ });
20903
+ var rules = {
20904
+ block: block$1,
20905
+ inline: inline$1
20906
+ };
20907
+
20908
+ var Tokenizer$1 = Tokenizer_1;
20909
+ var defaults$3 = defaults$5.exports.defaults;
20910
+ var block = rules.block,
20911
+ inline = rules.inline;
20912
+ var repeatString = helpers.repeatString;
20913
+ /**
20914
+ * smartypants text replacement
20915
+ */
20916
+
20917
+ function smartypants(text) {
20918
+ return text // em-dashes
20919
+ .replace(/---/g, "\u2014") // en-dashes
20920
+ .replace(/--/g, "\u2013") // opening singles
20921
+ .replace(/(^|[-\u2014/(\[{"\s])'/g, "$1\u2018") // closing singles & apostrophes
20922
+ .replace(/'/g, "\u2019") // opening doubles
20923
+ .replace(/(^|[-\u2014/(\[{\u2018\s])"/g, "$1\u201C") // closing doubles
20924
+ .replace(/"/g, "\u201D") // ellipses
20925
+ .replace(/\.{3}/g, "\u2026");
20926
+ }
20927
+ /**
20928
+ * mangle email addresses
20929
+ */
20930
+
20931
+
20932
+ function mangle(text) {
20933
+ var out = '',
20934
+ i,
20935
+ ch;
20936
+ var l = text.length;
20937
+
20938
+ for (i = 0; i < l; i++) {
20939
+ ch = text.charCodeAt(i);
20940
+
20941
+ if (Math.random() > 0.5) {
20942
+ ch = 'x' + ch.toString(16);
20943
+ }
20944
+
20945
+ out += '&#' + ch + ';';
20946
+ }
20947
+
20948
+ return out;
20949
+ }
20950
+ /**
20951
+ * Block Lexer
20952
+ */
20953
+
20954
+
20955
+ var Lexer_1 = /*#__PURE__*/function () {
20956
+ function Lexer(options) {
20957
+ this.tokens = [];
20958
+ this.tokens.links = Object.create(null);
20959
+ this.options = options || defaults$3;
20960
+ this.options.tokenizer = this.options.tokenizer || new Tokenizer$1();
20961
+ this.tokenizer = this.options.tokenizer;
20962
+ this.tokenizer.options = this.options;
20963
+ this.tokenizer.lexer = this;
20964
+ this.inlineQueue = [];
20965
+ this.state = {
20966
+ inLink: false,
20967
+ inRawBlock: false,
20968
+ top: true
20969
+ };
20970
+ var rules = {
20971
+ block: block.normal,
20972
+ inline: inline.normal
20973
+ };
20974
+
20975
+ if (this.options.pedantic) {
20976
+ rules.block = block.pedantic;
20977
+ rules.inline = inline.pedantic;
20978
+ } else if (this.options.gfm) {
20979
+ rules.block = block.gfm;
20980
+
20981
+ if (this.options.breaks) {
20982
+ rules.inline = inline.breaks;
20983
+ } else {
20984
+ rules.inline = inline.gfm;
20985
+ }
20986
+ }
20987
+
20988
+ this.tokenizer.rules = rules;
20989
+ }
20990
+ /**
20991
+ * Expose Rules
20992
+ */
20993
+
20994
+
20995
+ /**
20996
+ * Static Lex Method
20997
+ */
20998
+ Lexer.lex = function lex(src, options) {
20999
+ var lexer = new Lexer(options);
21000
+ return lexer.lex(src);
21001
+ }
21002
+ /**
21003
+ * Static Lex Inline Method
21004
+ */
21005
+ ;
21006
+
21007
+ Lexer.lexInline = function lexInline(src, options) {
21008
+ var lexer = new Lexer(options);
21009
+ return lexer.inlineTokens(src);
21010
+ }
21011
+ /**
21012
+ * Preprocessing
21013
+ */
21014
+ ;
21015
+
21016
+ var _proto = Lexer.prototype;
21017
+
21018
+ _proto.lex = function lex(src) {
21019
+ src = src.replace(/\r\n|\r/g, '\n').replace(/\t/g, ' ');
21020
+ this.blockTokens(src, this.tokens);
21021
+ var next;
21022
+
21023
+ while (next = this.inlineQueue.shift()) {
21024
+ this.inlineTokens(next.src, next.tokens);
21025
+ }
21026
+
21027
+ return this.tokens;
21028
+ }
21029
+ /**
21030
+ * Lexing
21031
+ */
21032
+ ;
21033
+
21034
+ _proto.blockTokens = function blockTokens(src, tokens) {
21035
+ var _this = this;
21036
+
21037
+ if (tokens === void 0) {
21038
+ tokens = [];
21039
+ }
21040
+
21041
+ if (this.options.pedantic) {
21042
+ src = src.replace(/^ +$/gm, '');
21043
+ }
21044
+
21045
+ var token, lastToken, cutSrc, lastParagraphClipped;
21046
+
21047
+ while (src) {
21048
+ if (this.options.extensions && this.options.extensions.block && this.options.extensions.block.some(function (extTokenizer) {
21049
+ if (token = extTokenizer.call({
21050
+ lexer: _this
21051
+ }, src, tokens)) {
21052
+ src = src.substring(token.raw.length);
21053
+ tokens.push(token);
21054
+ return true;
21055
+ }
21056
+
21057
+ return false;
21058
+ })) {
21059
+ continue;
21060
+ } // newline
21061
+
21062
+
21063
+ if (token = this.tokenizer.space(src)) {
21064
+ src = src.substring(token.raw.length);
21065
+
21066
+ if (token.type) {
21067
+ tokens.push(token);
21068
+ }
21069
+
21070
+ continue;
21071
+ } // code
21072
+
21073
+
21074
+ if (token = this.tokenizer.code(src)) {
21075
+ src = src.substring(token.raw.length);
21076
+ lastToken = tokens[tokens.length - 1]; // An indented code block cannot interrupt a paragraph.
21077
+
21078
+ if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {
21079
+ lastToken.raw += '\n' + token.raw;
21080
+ lastToken.text += '\n' + token.text;
21081
+ this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;
21082
+ } else {
21083
+ tokens.push(token);
21084
+ }
21085
+
21086
+ continue;
21087
+ } // fences
21088
+
21089
+
21090
+ if (token = this.tokenizer.fences(src)) {
21091
+ src = src.substring(token.raw.length);
21092
+ tokens.push(token);
21093
+ continue;
21094
+ } // heading
21095
+
21096
+
21097
+ if (token = this.tokenizer.heading(src)) {
21098
+ src = src.substring(token.raw.length);
21099
+ tokens.push(token);
21100
+ continue;
21101
+ } // hr
21102
+
21103
+
21104
+ if (token = this.tokenizer.hr(src)) {
21105
+ src = src.substring(token.raw.length);
21106
+ tokens.push(token);
21107
+ continue;
21108
+ } // blockquote
21109
+
21110
+
21111
+ if (token = this.tokenizer.blockquote(src)) {
21112
+ src = src.substring(token.raw.length);
21113
+ tokens.push(token);
21114
+ continue;
21115
+ } // list
21116
+
21117
+
21118
+ if (token = this.tokenizer.list(src)) {
21119
+ src = src.substring(token.raw.length);
21120
+ tokens.push(token);
21121
+ continue;
21122
+ } // html
21123
+
21124
+
21125
+ if (token = this.tokenizer.html(src)) {
21126
+ src = src.substring(token.raw.length);
21127
+ tokens.push(token);
21128
+ continue;
21129
+ } // def
21130
+
21131
+
21132
+ if (token = this.tokenizer.def(src)) {
21133
+ src = src.substring(token.raw.length);
21134
+ lastToken = tokens[tokens.length - 1];
21135
+
21136
+ if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {
21137
+ lastToken.raw += '\n' + token.raw;
21138
+ lastToken.text += '\n' + token.raw;
21139
+ this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;
21140
+ } else if (!this.tokens.links[token.tag]) {
21141
+ this.tokens.links[token.tag] = {
21142
+ href: token.href,
21143
+ title: token.title
21144
+ };
21145
+ }
21146
+
21147
+ continue;
21148
+ } // table (gfm)
21149
+
21150
+
21151
+ if (token = this.tokenizer.table(src)) {
21152
+ src = src.substring(token.raw.length);
21153
+ tokens.push(token);
21154
+ continue;
21155
+ } // lheading
21156
+
21157
+
21158
+ if (token = this.tokenizer.lheading(src)) {
21159
+ src = src.substring(token.raw.length);
21160
+ tokens.push(token);
21161
+ continue;
21162
+ } // top-level paragraph
21163
+ // prevent paragraph consuming extensions by clipping 'src' to extension start
21164
+
21165
+
21166
+ cutSrc = src;
21167
+
21168
+ if (this.options.extensions && this.options.extensions.startBlock) {
21169
+ (function () {
21170
+ var startIndex = Infinity;
21171
+ var tempSrc = src.slice(1);
21172
+ var tempStart = void 0;
21173
+
21174
+ _this.options.extensions.startBlock.forEach(function (getStartIndex) {
21175
+ tempStart = getStartIndex.call({
21176
+ lexer: this
21177
+ }, tempSrc);
21178
+
21179
+ if (typeof tempStart === 'number' && tempStart >= 0) {
21180
+ startIndex = Math.min(startIndex, tempStart);
21181
+ }
21182
+ });
21183
+
21184
+ if (startIndex < Infinity && startIndex >= 0) {
21185
+ cutSrc = src.substring(0, startIndex + 1);
21186
+ }
21187
+ })();
21188
+ }
21189
+
21190
+ if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {
21191
+ lastToken = tokens[tokens.length - 1];
21192
+
21193
+ if (lastParagraphClipped && lastToken.type === 'paragraph') {
21194
+ lastToken.raw += '\n' + token.raw;
21195
+ lastToken.text += '\n' + token.text;
21196
+ this.inlineQueue.pop();
21197
+ this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;
21198
+ } else {
21199
+ tokens.push(token);
21200
+ }
21201
+
21202
+ lastParagraphClipped = cutSrc.length !== src.length;
21203
+ src = src.substring(token.raw.length);
21204
+ continue;
21205
+ } // text
21206
+
21207
+
21208
+ if (token = this.tokenizer.text(src)) {
21209
+ src = src.substring(token.raw.length);
21210
+ lastToken = tokens[tokens.length - 1];
21211
+
21212
+ if (lastToken && lastToken.type === 'text') {
21213
+ lastToken.raw += '\n' + token.raw;
21214
+ lastToken.text += '\n' + token.text;
21215
+ this.inlineQueue.pop();
21216
+ this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;
21217
+ } else {
21218
+ tokens.push(token);
21219
+ }
21220
+
21221
+ continue;
21222
+ }
21223
+
21224
+ if (src) {
21225
+ var errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);
21226
+
21227
+ if (this.options.silent) {
21228
+ console.error(errMsg);
21229
+ break;
21230
+ } else {
21231
+ throw new Error(errMsg);
21232
+ }
21233
+ }
21234
+ }
21235
+
21236
+ this.state.top = true;
21237
+ return tokens;
21238
+ };
21239
+
21240
+ _proto.inline = function inline(src, tokens) {
21241
+ this.inlineQueue.push({
21242
+ src: src,
21243
+ tokens: tokens
21244
+ });
21245
+ }
21246
+ /**
21247
+ * Lexing/Compiling
21248
+ */
21249
+ ;
21250
+
21251
+ _proto.inlineTokens = function inlineTokens(src, tokens) {
21252
+ var _this2 = this;
21253
+
21254
+ if (tokens === void 0) {
21255
+ tokens = [];
21256
+ }
21257
+
21258
+ var token, lastToken, cutSrc; // String with links masked to avoid interference with em and strong
21259
+
21260
+ var maskedSrc = src;
21261
+ var match;
21262
+ var keepPrevChar, prevChar; // Mask out reflinks
21263
+
21264
+ if (this.tokens.links) {
21265
+ var links = Object.keys(this.tokens.links);
21266
+
21267
+ if (links.length > 0) {
21268
+ while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {
21269
+ if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {
21270
+ maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);
21271
+ }
21272
+ }
21273
+ }
21274
+ } // Mask out other blocks
21275
+
21276
+
21277
+ while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {
21278
+ maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);
21279
+ } // Mask out escaped em & strong delimiters
21280
+
21281
+
21282
+ while ((match = this.tokenizer.rules.inline.escapedEmSt.exec(maskedSrc)) != null) {
21283
+ maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);
21284
+ }
21285
+
21286
+ while (src) {
21287
+ if (!keepPrevChar) {
21288
+ prevChar = '';
21289
+ }
21290
+
21291
+ keepPrevChar = false; // extensions
21292
+
21293
+ if (this.options.extensions && this.options.extensions.inline && this.options.extensions.inline.some(function (extTokenizer) {
21294
+ if (token = extTokenizer.call({
21295
+ lexer: _this2
21296
+ }, src, tokens)) {
21297
+ src = src.substring(token.raw.length);
21298
+ tokens.push(token);
21299
+ return true;
21300
+ }
21301
+
21302
+ return false;
21303
+ })) {
21304
+ continue;
21305
+ } // escape
21306
+
21307
+
21308
+ if (token = this.tokenizer.escape(src)) {
21309
+ src = src.substring(token.raw.length);
21310
+ tokens.push(token);
21311
+ continue;
21312
+ } // tag
21313
+
21314
+
21315
+ if (token = this.tokenizer.tag(src)) {
21316
+ src = src.substring(token.raw.length);
21317
+ lastToken = tokens[tokens.length - 1];
21318
+
21319
+ if (lastToken && token.type === 'text' && lastToken.type === 'text') {
21320
+ lastToken.raw += token.raw;
21321
+ lastToken.text += token.text;
21322
+ } else {
21323
+ tokens.push(token);
21324
+ }
21325
+
21326
+ continue;
21327
+ } // link
21328
+
21329
+
21330
+ if (token = this.tokenizer.link(src)) {
21331
+ src = src.substring(token.raw.length);
21332
+ tokens.push(token);
21333
+ continue;
21334
+ } // reflink, nolink
21335
+
21336
+
21337
+ if (token = this.tokenizer.reflink(src, this.tokens.links)) {
21338
+ src = src.substring(token.raw.length);
21339
+ lastToken = tokens[tokens.length - 1];
21340
+
21341
+ if (lastToken && token.type === 'text' && lastToken.type === 'text') {
21342
+ lastToken.raw += token.raw;
21343
+ lastToken.text += token.text;
21344
+ } else {
21345
+ tokens.push(token);
21346
+ }
21347
+
21348
+ continue;
21349
+ } // em & strong
21350
+
21351
+
21352
+ if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {
21353
+ src = src.substring(token.raw.length);
21354
+ tokens.push(token);
21355
+ continue;
21356
+ } // code
21357
+
21358
+
21359
+ if (token = this.tokenizer.codespan(src)) {
21360
+ src = src.substring(token.raw.length);
21361
+ tokens.push(token);
21362
+ continue;
21363
+ } // br
21364
+
21365
+
21366
+ if (token = this.tokenizer.br(src)) {
21367
+ src = src.substring(token.raw.length);
21368
+ tokens.push(token);
21369
+ continue;
21370
+ } // del (gfm)
21371
+
21372
+
21373
+ if (token = this.tokenizer.del(src)) {
21374
+ src = src.substring(token.raw.length);
21375
+ tokens.push(token);
21376
+ continue;
21377
+ } // autolink
21378
+
21379
+
21380
+ if (token = this.tokenizer.autolink(src, mangle)) {
21381
+ src = src.substring(token.raw.length);
21382
+ tokens.push(token);
21383
+ continue;
21384
+ } // url (gfm)
21385
+
21386
+
21387
+ if (!this.state.inLink && (token = this.tokenizer.url(src, mangle))) {
21388
+ src = src.substring(token.raw.length);
21389
+ tokens.push(token);
21390
+ continue;
21391
+ } // text
21392
+ // prevent inlineText consuming extensions by clipping 'src' to extension start
21393
+
21394
+
21395
+ cutSrc = src;
21396
+
21397
+ if (this.options.extensions && this.options.extensions.startInline) {
21398
+ (function () {
21399
+ var startIndex = Infinity;
21400
+ var tempSrc = src.slice(1);
21401
+ var tempStart = void 0;
21402
+
21403
+ _this2.options.extensions.startInline.forEach(function (getStartIndex) {
21404
+ tempStart = getStartIndex.call({
21405
+ lexer: this
21406
+ }, tempSrc);
21407
+
21408
+ if (typeof tempStart === 'number' && tempStart >= 0) {
21409
+ startIndex = Math.min(startIndex, tempStart);
21410
+ }
21411
+ });
21412
+
21413
+ if (startIndex < Infinity && startIndex >= 0) {
21414
+ cutSrc = src.substring(0, startIndex + 1);
21415
+ }
21416
+ })();
21417
+ }
21418
+
21419
+ if (token = this.tokenizer.inlineText(cutSrc, smartypants)) {
21420
+ src = src.substring(token.raw.length);
21421
+
21422
+ if (token.raw.slice(-1) !== '_') {
21423
+ // Track prevChar before string of ____ started
21424
+ prevChar = token.raw.slice(-1);
21425
+ }
21426
+
21427
+ keepPrevChar = true;
21428
+ lastToken = tokens[tokens.length - 1];
21429
+
21430
+ if (lastToken && lastToken.type === 'text') {
21431
+ lastToken.raw += token.raw;
21432
+ lastToken.text += token.text;
21433
+ } else {
21434
+ tokens.push(token);
21435
+ }
21436
+
21437
+ continue;
21438
+ }
21439
+
21440
+ if (src) {
21441
+ var errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);
21442
+
21443
+ if (this.options.silent) {
21444
+ console.error(errMsg);
21445
+ break;
21446
+ } else {
21447
+ throw new Error(errMsg);
21448
+ }
21449
+ }
21450
+ }
21451
+
21452
+ return tokens;
21453
+ };
21454
+
21455
+ _createClass(Lexer, null, [{
21456
+ key: "rules",
21457
+ get: function get() {
21458
+ return {
21459
+ block: block,
21460
+ inline: inline
21461
+ };
21462
+ }
21463
+ }]);
21464
+
21465
+ return Lexer;
21466
+ }();
21467
+
21468
+ var defaults$2 = defaults$5.exports.defaults;
21469
+ var cleanUrl = helpers.cleanUrl,
21470
+ escape$1 = helpers.escape;
21471
+ /**
21472
+ * Renderer
21473
+ */
21474
+
21475
+ var Renderer_1 = /*#__PURE__*/function () {
21476
+ function Renderer(options) {
21477
+ this.options = options || defaults$2;
21478
+ }
21479
+
21480
+ var _proto = Renderer.prototype;
21481
+
21482
+ _proto.code = function code(_code, infostring, escaped) {
21483
+ var lang = (infostring || '').match(/\S*/)[0];
21484
+
21485
+ if (this.options.highlight) {
21486
+ var out = this.options.highlight(_code, lang);
21487
+
21488
+ if (out != null && out !== _code) {
21489
+ escaped = true;
21490
+ _code = out;
21491
+ }
21492
+ }
21493
+
21494
+ _code = _code.replace(/\n$/, '') + '\n';
21495
+
21496
+ if (!lang) {
21497
+ return '<pre><code>' + (escaped ? _code : escape$1(_code, true)) + '</code></pre>\n';
21498
+ }
21499
+
21500
+ return '<pre><code class="' + this.options.langPrefix + escape$1(lang, true) + '">' + (escaped ? _code : escape$1(_code, true)) + '</code></pre>\n';
21501
+ };
21502
+
21503
+ _proto.blockquote = function blockquote(quote) {
21504
+ return '<blockquote>\n' + quote + '</blockquote>\n';
21505
+ };
21506
+
21507
+ _proto.html = function html(_html) {
21508
+ return _html;
21509
+ };
21510
+
21511
+ _proto.heading = function heading(text, level, raw, slugger) {
21512
+ if (this.options.headerIds) {
21513
+ return '<h' + level + ' id="' + this.options.headerPrefix + slugger.slug(raw) + '">' + text + '</h' + level + '>\n';
21514
+ } // ignore IDs
21515
+
21516
+
21517
+ return '<h' + level + '>' + text + '</h' + level + '>\n';
21518
+ };
21519
+
21520
+ _proto.hr = function hr() {
21521
+ return this.options.xhtml ? '<hr/>\n' : '<hr>\n';
21522
+ };
21523
+
21524
+ _proto.list = function list(body, ordered, start) {
21525
+ var type = ordered ? 'ol' : 'ul',
21526
+ startatt = ordered && start !== 1 ? ' start="' + start + '"' : '';
21527
+ return '<' + type + startatt + '>\n' + body + '</' + type + '>\n';
21528
+ };
21529
+
21530
+ _proto.listitem = function listitem(text) {
21531
+ return '<li>' + text + '</li>\n';
21532
+ };
21533
+
21534
+ _proto.checkbox = function checkbox(checked) {
21535
+ return '<input ' + (checked ? 'checked="" ' : '') + 'disabled="" type="checkbox"' + (this.options.xhtml ? ' /' : '') + '> ';
21536
+ };
21537
+
21538
+ _proto.paragraph = function paragraph(text) {
21539
+ return '<p>' + text + '</p>\n';
21540
+ };
21541
+
21542
+ _proto.table = function table(header, body) {
21543
+ if (body) body = '<tbody>' + body + '</tbody>';
21544
+ return '<table>\n' + '<thead>\n' + header + '</thead>\n' + body + '</table>\n';
21545
+ };
21546
+
21547
+ _proto.tablerow = function tablerow(content) {
21548
+ return '<tr>\n' + content + '</tr>\n';
21549
+ };
21550
+
21551
+ _proto.tablecell = function tablecell(content, flags) {
21552
+ var type = flags.header ? 'th' : 'td';
21553
+ var tag = flags.align ? '<' + type + ' align="' + flags.align + '">' : '<' + type + '>';
21554
+ return tag + content + '</' + type + '>\n';
21555
+ } // span level renderer
21556
+ ;
21557
+
21558
+ _proto.strong = function strong(text) {
21559
+ return '<strong>' + text + '</strong>';
21560
+ };
21561
+
21562
+ _proto.em = function em(text) {
21563
+ return '<em>' + text + '</em>';
21564
+ };
21565
+
21566
+ _proto.codespan = function codespan(text) {
21567
+ return '<code>' + text + '</code>';
21568
+ };
21569
+
21570
+ _proto.br = function br() {
21571
+ return this.options.xhtml ? '<br/>' : '<br>';
21572
+ };
21573
+
21574
+ _proto.del = function del(text) {
21575
+ return '<del>' + text + '</del>';
21576
+ };
21577
+
21578
+ _proto.link = function link(href, title, text) {
21579
+ href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);
21580
+
21581
+ if (href === null) {
21582
+ return text;
21583
+ }
21584
+
21585
+ var out = '<a href="' + escape$1(href) + '"';
21586
+
21587
+ if (title) {
21588
+ out += ' title="' + title + '"';
21589
+ }
21590
+
21591
+ out += '>' + text + '</a>';
21592
+ return out;
21593
+ };
21594
+
21595
+ _proto.image = function image(href, title, text) {
21596
+ href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);
21597
+
21598
+ if (href === null) {
21599
+ return text;
21600
+ }
21601
+
21602
+ var out = '<img src="' + href + '" alt="' + text + '"';
21603
+
21604
+ if (title) {
21605
+ out += ' title="' + title + '"';
21606
+ }
21607
+
21608
+ out += this.options.xhtml ? '/>' : '>';
21609
+ return out;
21610
+ };
21611
+
21612
+ _proto.text = function text(_text) {
21613
+ return _text;
21614
+ };
21615
+
21616
+ return Renderer;
21617
+ }();
21618
+
21619
+ /**
21620
+ * TextRenderer
21621
+ * returns only the textual part of the token
21622
+ */
21623
+
21624
+ var TextRenderer_1 = /*#__PURE__*/function () {
21625
+ function TextRenderer() {}
21626
+
21627
+ var _proto = TextRenderer.prototype;
21628
+
21629
+ // no need for block level renderers
21630
+ _proto.strong = function strong(text) {
21631
+ return text;
21632
+ };
21633
+
21634
+ _proto.em = function em(text) {
21635
+ return text;
21636
+ };
21637
+
21638
+ _proto.codespan = function codespan(text) {
21639
+ return text;
21640
+ };
21641
+
21642
+ _proto.del = function del(text) {
21643
+ return text;
21644
+ };
21645
+
21646
+ _proto.html = function html(text) {
21647
+ return text;
21648
+ };
21649
+
21650
+ _proto.text = function text(_text) {
21651
+ return _text;
21652
+ };
21653
+
21654
+ _proto.link = function link(href, title, text) {
21655
+ return '' + text;
21656
+ };
21657
+
21658
+ _proto.image = function image(href, title, text) {
21659
+ return '' + text;
21660
+ };
21661
+
21662
+ _proto.br = function br() {
21663
+ return '';
21664
+ };
21665
+
21666
+ return TextRenderer;
21667
+ }();
21668
+
21669
+ /**
21670
+ * Slugger generates header id
21671
+ */
21672
+
21673
+ var Slugger_1 = /*#__PURE__*/function () {
21674
+ function Slugger() {
21675
+ this.seen = {};
21676
+ }
21677
+
21678
+ var _proto = Slugger.prototype;
21679
+
21680
+ _proto.serialize = function serialize(value) {
21681
+ return value.toLowerCase().trim() // remove html tags
21682
+ .replace(/<[!\/a-z].*?>/ig, '') // remove unwanted chars
21683
+ .replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g, '').replace(/\s/g, '-');
21684
+ }
21685
+ /**
21686
+ * Finds the next safe (unique) slug to use
21687
+ */
21688
+ ;
21689
+
21690
+ _proto.getNextSafeSlug = function getNextSafeSlug(originalSlug, isDryRun) {
21691
+ var slug = originalSlug;
21692
+ var occurenceAccumulator = 0;
21693
+
21694
+ if (this.seen.hasOwnProperty(slug)) {
21695
+ occurenceAccumulator = this.seen[originalSlug];
21696
+
21697
+ do {
21698
+ occurenceAccumulator++;
21699
+ slug = originalSlug + '-' + occurenceAccumulator;
21700
+ } while (this.seen.hasOwnProperty(slug));
21701
+ }
21702
+
21703
+ if (!isDryRun) {
21704
+ this.seen[originalSlug] = occurenceAccumulator;
21705
+ this.seen[slug] = 0;
21706
+ }
21707
+
21708
+ return slug;
21709
+ }
21710
+ /**
21711
+ * Convert string to unique id
21712
+ * @param {object} options
21713
+ * @param {boolean} options.dryrun Generates the next unique slug without updating the internal accumulator.
21714
+ */
21715
+ ;
21716
+
21717
+ _proto.slug = function slug(value, options) {
21718
+ if (options === void 0) {
21719
+ options = {};
21720
+ }
21721
+
21722
+ var slug = this.serialize(value);
21723
+ return this.getNextSafeSlug(slug, options.dryrun);
21724
+ };
21725
+
21726
+ return Slugger;
21727
+ }();
21728
+
21729
+ var Renderer$1 = Renderer_1;
21730
+ var TextRenderer$1 = TextRenderer_1;
21731
+ var Slugger$1 = Slugger_1;
21732
+ var defaults$1 = defaults$5.exports.defaults;
21733
+ var unescape = helpers.unescape;
21734
+ /**
21735
+ * Parsing & Compiling
21736
+ */
21737
+
21738
+ var Parser_1 = /*#__PURE__*/function () {
21739
+ function Parser(options) {
21740
+ this.options = options || defaults$1;
21741
+ this.options.renderer = this.options.renderer || new Renderer$1();
21742
+ this.renderer = this.options.renderer;
21743
+ this.renderer.options = this.options;
21744
+ this.textRenderer = new TextRenderer$1();
21745
+ this.slugger = new Slugger$1();
21746
+ }
21747
+ /**
21748
+ * Static Parse Method
21749
+ */
21750
+
21751
+
21752
+ Parser.parse = function parse(tokens, options) {
21753
+ var parser = new Parser(options);
21754
+ return parser.parse(tokens);
21755
+ }
21756
+ /**
21757
+ * Static Parse Inline Method
21758
+ */
21759
+ ;
21760
+
21761
+ Parser.parseInline = function parseInline(tokens, options) {
21762
+ var parser = new Parser(options);
21763
+ return parser.parseInline(tokens);
21764
+ }
21765
+ /**
21766
+ * Parse Loop
21767
+ */
21768
+ ;
21769
+
21770
+ var _proto = Parser.prototype;
21771
+
21772
+ _proto.parse = function parse(tokens, top) {
21773
+ if (top === void 0) {
21774
+ top = true;
21775
+ }
21776
+
21777
+ var out = '',
21778
+ i,
21779
+ j,
21780
+ k,
21781
+ l2,
21782
+ l3,
21783
+ row,
21784
+ cell,
21785
+ header,
21786
+ body,
21787
+ token,
21788
+ ordered,
21789
+ start,
21790
+ loose,
21791
+ itemBody,
21792
+ item,
21793
+ checked,
21794
+ task,
21795
+ checkbox,
21796
+ ret;
21797
+ var l = tokens.length;
21798
+
21799
+ for (i = 0; i < l; i++) {
21800
+ token = tokens[i]; // Run any renderer extensions
21801
+
21802
+ if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {
21803
+ ret = this.options.extensions.renderers[token.type].call({
21804
+ parser: this
21805
+ }, token);
21806
+
21807
+ if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(token.type)) {
21808
+ out += ret || '';
21809
+ continue;
21810
+ }
21811
+ }
21812
+
21813
+ switch (token.type) {
21814
+ case 'space':
21815
+ {
21816
+ continue;
21817
+ }
21818
+
21819
+ case 'hr':
21820
+ {
21821
+ out += this.renderer.hr();
21822
+ continue;
21823
+ }
21824
+
21825
+ case 'heading':
21826
+ {
21827
+ out += this.renderer.heading(this.parseInline(token.tokens), token.depth, unescape(this.parseInline(token.tokens, this.textRenderer)), this.slugger);
21828
+ continue;
21829
+ }
21830
+
21831
+ case 'code':
21832
+ {
21833
+ out += this.renderer.code(token.text, token.lang, token.escaped);
21834
+ continue;
21835
+ }
21836
+
21837
+ case 'table':
21838
+ {
21839
+ header = ''; // header
21840
+
21841
+ cell = '';
21842
+ l2 = token.header.length;
21843
+
21844
+ for (j = 0; j < l2; j++) {
21845
+ cell += this.renderer.tablecell(this.parseInline(token.header[j].tokens), {
21846
+ header: true,
21847
+ align: token.align[j]
21848
+ });
21849
+ }
21850
+
21851
+ header += this.renderer.tablerow(cell);
21852
+ body = '';
21853
+ l2 = token.rows.length;
21854
+
21855
+ for (j = 0; j < l2; j++) {
21856
+ row = token.rows[j];
21857
+ cell = '';
21858
+ l3 = row.length;
21859
+
21860
+ for (k = 0; k < l3; k++) {
21861
+ cell += this.renderer.tablecell(this.parseInline(row[k].tokens), {
21862
+ header: false,
21863
+ align: token.align[k]
21864
+ });
21865
+ }
21866
+
21867
+ body += this.renderer.tablerow(cell);
21868
+ }
21869
+
21870
+ out += this.renderer.table(header, body);
21871
+ continue;
21872
+ }
21873
+
21874
+ case 'blockquote':
21875
+ {
21876
+ body = this.parse(token.tokens);
21877
+ out += this.renderer.blockquote(body);
21878
+ continue;
21879
+ }
21880
+
21881
+ case 'list':
21882
+ {
21883
+ ordered = token.ordered;
21884
+ start = token.start;
21885
+ loose = token.loose;
21886
+ l2 = token.items.length;
21887
+ body = '';
21888
+
21889
+ for (j = 0; j < l2; j++) {
21890
+ item = token.items[j];
21891
+ checked = item.checked;
21892
+ task = item.task;
21893
+ itemBody = '';
21894
+
21895
+ if (item.task) {
21896
+ checkbox = this.renderer.checkbox(checked);
21897
+
21898
+ if (loose) {
21899
+ if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {
21900
+ item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;
21901
+
21902
+ if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {
21903
+ item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;
21904
+ }
21905
+ } else {
21906
+ item.tokens.unshift({
21907
+ type: 'text',
21908
+ text: checkbox
21909
+ });
21910
+ }
21911
+ } else {
21912
+ itemBody += checkbox;
21913
+ }
21914
+ }
21915
+
21916
+ itemBody += this.parse(item.tokens, loose);
21917
+ body += this.renderer.listitem(itemBody, task, checked);
21918
+ }
21919
+
21920
+ out += this.renderer.list(body, ordered, start);
21921
+ continue;
21922
+ }
21923
+
21924
+ case 'html':
21925
+ {
21926
+ // TODO parse inline content if parameter markdown=1
21927
+ out += this.renderer.html(token.text);
21928
+ continue;
21929
+ }
21930
+
21931
+ case 'paragraph':
21932
+ {
21933
+ out += this.renderer.paragraph(this.parseInline(token.tokens));
21934
+ continue;
21935
+ }
21936
+
21937
+ case 'text':
21938
+ {
21939
+ body = token.tokens ? this.parseInline(token.tokens) : token.text;
21940
+
21941
+ while (i + 1 < l && tokens[i + 1].type === 'text') {
21942
+ token = tokens[++i];
21943
+ body += '\n' + (token.tokens ? this.parseInline(token.tokens) : token.text);
21944
+ }
21945
+
21946
+ out += top ? this.renderer.paragraph(body) : body;
21947
+ continue;
21948
+ }
21949
+
21950
+ default:
21951
+ {
21952
+ var errMsg = 'Token with "' + token.type + '" type was not found.';
21953
+
21954
+ if (this.options.silent) {
21955
+ console.error(errMsg);
21956
+ return;
21957
+ } else {
21958
+ throw new Error(errMsg);
21959
+ }
21960
+ }
21961
+ }
21962
+ }
21963
+
21964
+ return out;
21965
+ }
21966
+ /**
21967
+ * Parse Inline Tokens
21968
+ */
21969
+ ;
21970
+
21971
+ _proto.parseInline = function parseInline(tokens, renderer) {
21972
+ renderer = renderer || this.renderer;
21973
+ var out = '',
21974
+ i,
21975
+ token,
21976
+ ret;
21977
+ var l = tokens.length;
21978
+
21979
+ for (i = 0; i < l; i++) {
21980
+ token = tokens[i]; // Run any renderer extensions
21981
+
21982
+ if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {
21983
+ ret = this.options.extensions.renderers[token.type].call({
21984
+ parser: this
21985
+ }, token);
21986
+
21987
+ if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {
21988
+ out += ret || '';
21989
+ continue;
21990
+ }
21991
+ }
21992
+
21993
+ switch (token.type) {
21994
+ case 'escape':
21995
+ {
21996
+ out += renderer.text(token.text);
21997
+ break;
21998
+ }
21999
+
22000
+ case 'html':
22001
+ {
22002
+ out += renderer.html(token.text);
22003
+ break;
22004
+ }
22005
+
22006
+ case 'link':
22007
+ {
22008
+ out += renderer.link(token.href, token.title, this.parseInline(token.tokens, renderer));
22009
+ break;
22010
+ }
22011
+
22012
+ case 'image':
22013
+ {
22014
+ out += renderer.image(token.href, token.title, token.text);
22015
+ break;
22016
+ }
22017
+
22018
+ case 'strong':
22019
+ {
22020
+ out += renderer.strong(this.parseInline(token.tokens, renderer));
22021
+ break;
22022
+ }
22023
+
22024
+ case 'em':
22025
+ {
22026
+ out += renderer.em(this.parseInline(token.tokens, renderer));
22027
+ break;
22028
+ }
22029
+
22030
+ case 'codespan':
22031
+ {
22032
+ out += renderer.codespan(token.text);
22033
+ break;
22034
+ }
22035
+
22036
+ case 'br':
22037
+ {
22038
+ out += renderer.br();
22039
+ break;
22040
+ }
22041
+
22042
+ case 'del':
22043
+ {
22044
+ out += renderer.del(this.parseInline(token.tokens, renderer));
22045
+ break;
22046
+ }
22047
+
22048
+ case 'text':
22049
+ {
22050
+ out += renderer.text(token.text);
22051
+ break;
22052
+ }
22053
+
22054
+ default:
22055
+ {
22056
+ var errMsg = 'Token with "' + token.type + '" type was not found.';
22057
+
22058
+ if (this.options.silent) {
22059
+ console.error(errMsg);
22060
+ return;
22061
+ } else {
22062
+ throw new Error(errMsg);
22063
+ }
22064
+ }
22065
+ }
22066
+ }
22067
+
22068
+ return out;
22069
+ };
22070
+
22071
+ return Parser;
22072
+ }();
22073
+
22074
+ var Lexer = Lexer_1;
22075
+ var Parser = Parser_1;
22076
+ var Tokenizer = Tokenizer_1;
22077
+ var Renderer = Renderer_1;
22078
+ var TextRenderer = TextRenderer_1;
22079
+ var Slugger = Slugger_1;
22080
+ var merge = helpers.merge,
22081
+ checkSanitizeDeprecation = helpers.checkSanitizeDeprecation,
22082
+ escape = helpers.escape;
22083
+ var getDefaults = defaults$5.exports.getDefaults,
22084
+ changeDefaults = defaults$5.exports.changeDefaults,
22085
+ defaults = defaults$5.exports.defaults;
22086
+ /**
22087
+ * Marked
22088
+ */
22089
+
22090
+ function marked(src, opt, callback) {
22091
+ // throw error in case of non string input
22092
+ if (typeof src === 'undefined' || src === null) {
22093
+ throw new Error('marked(): input parameter is undefined or null');
22094
+ }
22095
+
22096
+ if (typeof src !== 'string') {
22097
+ throw new Error('marked(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected');
22098
+ }
22099
+
22100
+ if (typeof opt === 'function') {
22101
+ callback = opt;
22102
+ opt = null;
22103
+ }
22104
+
22105
+ opt = merge({}, marked.defaults, opt || {});
22106
+ checkSanitizeDeprecation(opt);
22107
+
22108
+ if (callback) {
22109
+ var highlight = opt.highlight;
22110
+ var tokens;
22111
+
22112
+ try {
22113
+ tokens = Lexer.lex(src, opt);
22114
+ } catch (e) {
22115
+ return callback(e);
22116
+ }
22117
+
22118
+ var done = function done(err) {
22119
+ var out;
22120
+
22121
+ if (!err) {
22122
+ try {
22123
+ if (opt.walkTokens) {
22124
+ marked.walkTokens(tokens, opt.walkTokens);
22125
+ }
22126
+
22127
+ out = Parser.parse(tokens, opt);
22128
+ } catch (e) {
22129
+ err = e;
22130
+ }
22131
+ }
22132
+
22133
+ opt.highlight = highlight;
22134
+ return err ? callback(err) : callback(null, out);
22135
+ };
22136
+
22137
+ if (!highlight || highlight.length < 3) {
22138
+ return done();
22139
+ }
22140
+
22141
+ delete opt.highlight;
22142
+ if (!tokens.length) return done();
22143
+ var pending = 0;
22144
+ marked.walkTokens(tokens, function (token) {
22145
+ if (token.type === 'code') {
22146
+ pending++;
22147
+ setTimeout(function () {
22148
+ highlight(token.text, token.lang, function (err, code) {
22149
+ if (err) {
22150
+ return done(err);
22151
+ }
22152
+
22153
+ if (code != null && code !== token.text) {
22154
+ token.text = code;
22155
+ token.escaped = true;
22156
+ }
22157
+
22158
+ pending--;
22159
+
22160
+ if (pending === 0) {
22161
+ done();
22162
+ }
22163
+ });
22164
+ }, 0);
22165
+ }
22166
+ });
22167
+
22168
+ if (pending === 0) {
22169
+ done();
22170
+ }
22171
+
22172
+ return;
22173
+ }
22174
+
22175
+ try {
22176
+ var _tokens = Lexer.lex(src, opt);
22177
+
22178
+ if (opt.walkTokens) {
22179
+ marked.walkTokens(_tokens, opt.walkTokens);
22180
+ }
22181
+
22182
+ return Parser.parse(_tokens, opt);
22183
+ } catch (e) {
22184
+ e.message += '\nPlease report this to https://github.com/markedjs/marked.';
22185
+
22186
+ if (opt.silent) {
22187
+ return '<p>An error occurred:</p><pre>' + escape(e.message + '', true) + '</pre>';
22188
+ }
22189
+
22190
+ throw e;
22191
+ }
22192
+ }
22193
+ /**
22194
+ * Options
22195
+ */
22196
+
22197
+
22198
+ marked.options = marked.setOptions = function (opt) {
22199
+ merge(marked.defaults, opt);
22200
+ changeDefaults(marked.defaults);
22201
+ return marked;
22202
+ };
22203
+
22204
+ marked.getDefaults = getDefaults;
22205
+ marked.defaults = defaults;
22206
+ /**
22207
+ * Use Extension
22208
+ */
22209
+
22210
+ marked.use = function () {
22211
+ var _this = this;
22212
+
22213
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
22214
+ args[_key] = arguments[_key];
22215
+ }
22216
+
22217
+ var opts = merge.apply(void 0, [{}].concat(args));
22218
+ var extensions = marked.defaults.extensions || {
22219
+ renderers: {},
22220
+ childTokens: {}
22221
+ };
22222
+ var hasExtensions;
22223
+ args.forEach(function (pack) {
22224
+ // ==-- Parse "addon" extensions --== //
22225
+ if (pack.extensions) {
22226
+ hasExtensions = true;
22227
+ pack.extensions.forEach(function (ext) {
22228
+ if (!ext.name) {
22229
+ throw new Error('extension name required');
22230
+ }
22231
+
22232
+ if (ext.renderer) {
22233
+ // Renderer extensions
22234
+ var prevRenderer = extensions.renderers ? extensions.renderers[ext.name] : null;
22235
+
22236
+ if (prevRenderer) {
22237
+ // Replace extension with func to run new extension but fall back if false
22238
+ extensions.renderers[ext.name] = function () {
22239
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
22240
+ args[_key2] = arguments[_key2];
22241
+ }
22242
+
22243
+ var ret = ext.renderer.apply(this, args);
22244
+
22245
+ if (ret === false) {
22246
+ ret = prevRenderer.apply(this, args);
22247
+ }
22248
+
22249
+ return ret;
22250
+ };
22251
+ } else {
22252
+ extensions.renderers[ext.name] = ext.renderer;
22253
+ }
22254
+ }
22255
+
22256
+ if (ext.tokenizer) {
22257
+ // Tokenizer Extensions
22258
+ if (!ext.level || ext.level !== 'block' && ext.level !== 'inline') {
22259
+ throw new Error("extension level must be 'block' or 'inline'");
22260
+ }
22261
+
22262
+ if (extensions[ext.level]) {
22263
+ extensions[ext.level].unshift(ext.tokenizer);
22264
+ } else {
22265
+ extensions[ext.level] = [ext.tokenizer];
22266
+ }
22267
+
22268
+ if (ext.start) {
22269
+ // Function to check for start of token
22270
+ if (ext.level === 'block') {
22271
+ if (extensions.startBlock) {
22272
+ extensions.startBlock.push(ext.start);
22273
+ } else {
22274
+ extensions.startBlock = [ext.start];
22275
+ }
22276
+ } else if (ext.level === 'inline') {
22277
+ if (extensions.startInline) {
22278
+ extensions.startInline.push(ext.start);
22279
+ } else {
22280
+ extensions.startInline = [ext.start];
22281
+ }
22282
+ }
22283
+ }
22284
+ }
22285
+
22286
+ if (ext.childTokens) {
22287
+ // Child tokens to be visited by walkTokens
22288
+ extensions.childTokens[ext.name] = ext.childTokens;
22289
+ }
22290
+ });
22291
+ } // ==-- Parse "overwrite" extensions --== //
22292
+
22293
+
22294
+ if (pack.renderer) {
22295
+ (function () {
22296
+ var renderer = marked.defaults.renderer || new Renderer();
22297
+
22298
+ var _loop = function _loop(prop) {
22299
+ var prevRenderer = renderer[prop]; // Replace renderer with func to run extension, but fall back if false
22300
+
22301
+ renderer[prop] = function () {
22302
+ for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
22303
+ args[_key3] = arguments[_key3];
22304
+ }
22305
+
22306
+ var ret = pack.renderer[prop].apply(renderer, args);
22307
+
22308
+ if (ret === false) {
22309
+ ret = prevRenderer.apply(renderer, args);
22310
+ }
22311
+
22312
+ return ret;
22313
+ };
22314
+ };
22315
+
22316
+ for (var prop in pack.renderer) {
22317
+ _loop(prop);
22318
+ }
22319
+
22320
+ opts.renderer = renderer;
22321
+ })();
22322
+ }
22323
+
22324
+ if (pack.tokenizer) {
22325
+ (function () {
22326
+ var tokenizer = marked.defaults.tokenizer || new Tokenizer();
22327
+
22328
+ var _loop2 = function _loop2(prop) {
22329
+ var prevTokenizer = tokenizer[prop]; // Replace tokenizer with func to run extension, but fall back if false
22330
+
22331
+ tokenizer[prop] = function () {
22332
+ for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
22333
+ args[_key4] = arguments[_key4];
22334
+ }
22335
+
22336
+ var ret = pack.tokenizer[prop].apply(tokenizer, args);
22337
+
22338
+ if (ret === false) {
22339
+ ret = prevTokenizer.apply(tokenizer, args);
22340
+ }
22341
+
22342
+ return ret;
22343
+ };
22344
+ };
22345
+
22346
+ for (var prop in pack.tokenizer) {
22347
+ _loop2(prop);
22348
+ }
22349
+
22350
+ opts.tokenizer = tokenizer;
22351
+ })();
22352
+ } // ==-- Parse WalkTokens extensions --== //
22353
+
22354
+
22355
+ if (pack.walkTokens) {
22356
+ var walkTokens = marked.defaults.walkTokens;
22357
+
22358
+ opts.walkTokens = function (token) {
22359
+ pack.walkTokens.call(_this, token);
22360
+
22361
+ if (walkTokens) {
22362
+ walkTokens(token);
22363
+ }
22364
+ };
22365
+ }
22366
+
22367
+ if (hasExtensions) {
22368
+ opts.extensions = extensions;
22369
+ }
22370
+
22371
+ marked.setOptions(opts);
22372
+ });
22373
+ };
22374
+ /**
22375
+ * Run callback for every token
22376
+ */
22377
+
22378
+
22379
+ marked.walkTokens = function (tokens, callback) {
22380
+ var _loop3 = function _loop3() {
22381
+ var token = _step.value;
22382
+ callback(token);
22383
+
22384
+ switch (token.type) {
22385
+ case 'table':
22386
+ {
22387
+ for (var _iterator2 = _createForOfIteratorHelperLoose(token.header), _step2; !(_step2 = _iterator2()).done;) {
22388
+ var cell = _step2.value;
22389
+ marked.walkTokens(cell.tokens, callback);
22390
+ }
22391
+
22392
+ for (var _iterator3 = _createForOfIteratorHelperLoose(token.rows), _step3; !(_step3 = _iterator3()).done;) {
22393
+ var row = _step3.value;
22394
+
22395
+ for (var _iterator4 = _createForOfIteratorHelperLoose(row), _step4; !(_step4 = _iterator4()).done;) {
22396
+ var _cell = _step4.value;
22397
+ marked.walkTokens(_cell.tokens, callback);
22398
+ }
22399
+ }
22400
+
22401
+ break;
22402
+ }
22403
+
22404
+ case 'list':
22405
+ {
22406
+ marked.walkTokens(token.items, callback);
22407
+ break;
22408
+ }
22409
+
22410
+ default:
22411
+ {
22412
+ if (marked.defaults.extensions && marked.defaults.extensions.childTokens && marked.defaults.extensions.childTokens[token.type]) {
22413
+ // Walk any extensions
22414
+ marked.defaults.extensions.childTokens[token.type].forEach(function (childTokens) {
22415
+ marked.walkTokens(token[childTokens], callback);
22416
+ });
22417
+ } else if (token.tokens) {
22418
+ marked.walkTokens(token.tokens, callback);
22419
+ }
22420
+ }
22421
+ }
22422
+ };
22423
+
22424
+ for (var _iterator = _createForOfIteratorHelperLoose(tokens), _step; !(_step = _iterator()).done;) {
22425
+ _loop3();
22426
+ }
22427
+ };
22428
+ /**
22429
+ * Parse Inline
22430
+ */
22431
+
22432
+
22433
+ marked.parseInline = function (src, opt) {
22434
+ // throw error in case of non string input
22435
+ if (typeof src === 'undefined' || src === null) {
22436
+ throw new Error('marked.parseInline(): input parameter is undefined or null');
22437
+ }
22438
+
22439
+ if (typeof src !== 'string') {
22440
+ throw new Error('marked.parseInline(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected');
22441
+ }
22442
+
22443
+ opt = merge({}, marked.defaults, opt || {});
22444
+ checkSanitizeDeprecation(opt);
22445
+
22446
+ try {
22447
+ var tokens = Lexer.lexInline(src, opt);
22448
+
22449
+ if (opt.walkTokens) {
22450
+ marked.walkTokens(tokens, opt.walkTokens);
22451
+ }
22452
+
22453
+ return Parser.parseInline(tokens, opt);
22454
+ } catch (e) {
22455
+ e.message += '\nPlease report this to https://github.com/markedjs/marked.';
22456
+
22457
+ if (opt.silent) {
22458
+ return '<p>An error occurred:</p><pre>' + escape(e.message + '', true) + '</pre>';
22459
+ }
22460
+
22461
+ throw e;
22462
+ }
22463
+ };
22464
+ /**
22465
+ * Expose
22466
+ */
22467
+
22468
+
22469
+ marked.Parser = Parser;
22470
+ marked.parser = Parser.parse;
22471
+ marked.Renderer = Renderer;
22472
+ marked.TextRenderer = TextRenderer;
22473
+ marked.Lexer = Lexer;
22474
+ marked.lexer = Lexer.lex;
22475
+ marked.Tokenizer = Tokenizer;
22476
+ marked.Slugger = Slugger;
22477
+ marked.parse = marked;
22478
+ var marked_1 = marked;
22479
+
22480
+ return marked_1;
22481
+
22482
+ })));
22483
+ });
22484
+
22485
+ 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";
22486
+
22487
+ 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";
22488
+
22489
+ 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";
22490
+
22491
+ 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";
22492
+
22493
+ 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";
22494
+
22495
+ 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";
22496
+
22497
+ 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";
22498
+
22499
+ const PortalTemplates_stories = {
22500
+ title: "Templates / Portal",
22501
+ };
22502
+ // slot="footer"
22503
+ // support-email="john@foodservicerewards.com"
22504
+ // terms-link="example.com"
22505
+ // faq-link="example.com"
22506
+ // padding="large"
22507
+ // show-powered-by="false"
22508
+ // powered-by-link="https://www.saasquatch.com/"
22509
+ function useTemplate$1(templateString) {
22510
+ const [editedTemplate, setEditedTemplate] = useState(templateString);
22511
+ const [previewTemplate, setPreviewTemplate] = useState(templateString);
22512
+ return {
22513
+ states: { previewTemplate, editedTemplate },
22514
+ callbacks: { setEditedTemplate, setPreviewTemplate },
22515
+ };
22516
+ }
22517
+ function TemplateView$1(props) {
22518
+ const { states, callbacks, readme } = props;
22519
+ return [
22520
+ h("textarea", { style: { width: "100%", height: "300px" }, onChange: (e) => callbacks.setEditedTemplate(e.target.value) }, states.editedTemplate),
22521
+ h("button", { onClick: () => callbacks.setPreviewTemplate(states.editedTemplate) }, "Update Preview"),
22522
+ readme ? (h("details", null,
22523
+ h("summary", null, "Props readme"),
22524
+ h("div", { innerHTML: marked(readme) }))) : (""),
22525
+ h("div", { innerHTML: states.previewTemplate }),
22526
+ ];
22527
+ }
22528
+ function Buttons({ callbacks, states, template }) {
22529
+ return (h("div", null,
22530
+ h("button", { onClick: () => callbacks.setPreviewTemplate(states.editedTemplate) }, "Update Preview"),
22531
+ h("button", { style: { marginLeft: "10px" }, onClick: () => callbacks.setPreviewTemplate(template) }, "Preview Dashboard")));
22532
+ }
22533
+ function DefaultTemplateView(props) {
22534
+ const { states, callbacks } = props;
22535
+ return (h("div", null,
22536
+ h("textarea", { style: { width: "100%", height: "300px" }, onChange: (e) => callbacks.setEditedTemplate(e.target.value) }, states.editedTemplate),
22537
+ h(Buttons, { states: states, callbacks: callbacks, template: props.template }),
22538
+ h("h2", null, "Navigation"),
22539
+ h("div", { style: {
22540
+ display: "grid",
22541
+ gridTemplateColumns: "repeat(9, 80px)",
22542
+ gridGap: "10px",
22543
+ } },
22544
+ h("button", { onClick: () => rn.push("/") }, "Dashboard"),
22545
+ h("button", { onClick: () => rn.push("/activity") }, "Activity"),
22546
+ h("button", { onClick: () => rn.push("/editProfile") }, "Edit Profile"),
22547
+ h("button", { onClick: () => rn.push("/login") }, "Login"),
22548
+ h("button", { onClick: () => rn.push("/register") }, "Register"),
22549
+ h("button", { onClick: () => rn.push("/emailVerification") }, "Email Verification"),
22550
+ h("button", { onClick: () => rn.push("/verifyEmail") }, "Verify Email"),
22551
+ h("button", { onClick: () => rn.push("/forgotPassword") }, "Forgot Password"),
22552
+ h("button", { onClick: () => rn.push("/resetPassword") }, "Reset Password")),
22553
+ h("br", null),
22554
+ h("div", { innerHTML: states.previewTemplate })));
22555
+ }
22556
+ const DefaultPortal = createHookStory(() => {
22557
+ const { states, callbacks } = useTemplate$1(portalTemplate);
22558
+ return (h(DefaultTemplateView, { states: states, callbacks: callbacks, template: portalTemplateWithDashboard }));
22559
+ });
22560
+ const MultiProgramPortal = createHookStory(() => {
22561
+ const { states, callbacks } = useTemplate$1(multiProgramTemplate);
22562
+ return (h(DefaultTemplateView, { states: states, callbacks: callbacks, template: multiProgramTemplateWithDashboard }));
22563
+ });
22564
+ const Login = createHookStory(() => {
22565
+ const { states, callbacks } = useTemplate$1(loginTemplate);
22566
+ return (h(TemplateView$1, { states: states, callbacks: callbacks, readme: LoginReadme }));
22567
+ });
22568
+ const ForgotPassword = createHookStory(() => {
22569
+ const { states, callbacks } = useTemplate$1(forgotPasswordTemplate);
22570
+ return (h(TemplateView$1, { states: states, callbacks: callbacks, readme: ForgotPasswordReadme }));
22571
+ });
22572
+ const Register = createHookStory(() => {
22573
+ const { states, callbacks } = useTemplate$1(registerTemplate);
22574
+ return (h(TemplateView$1, { states: states, callbacks: callbacks, readme: RegisterReadme }));
22575
+ });
22576
+ const Dashboard$1 = createHookStory(() => {
22577
+ const { states, callbacks } = useTemplate$1(dashboardTemplate);
22578
+ return h(TemplateView$1, { states: states, callbacks: callbacks });
22579
+ });
22580
+ const Activity$1 = createHookStory(() => {
22581
+ const { states, callbacks } = useTemplate$1(activityTemplate);
22582
+ return h(TemplateView$1, { states: states, callbacks: callbacks });
22583
+ });
22584
+ const EditProfile$3 = createHookStory(() => {
22585
+ const { states, callbacks } = useTemplate$1(editProfileTemplate);
22586
+ return (h(TemplateView$1, { states: states, callbacks: callbacks, readme: EditProfileReadme }));
22587
+ });
22588
+ const ResetPassword = createHookStory(() => {
22589
+ const { states, callbacks } = useTemplate$1(resetPasswordTemplate);
22590
+ return (h(TemplateView$1, { states: states, callbacks: callbacks, readme: ResetPasswordReadme }));
22591
+ });
22592
+ const EmailVerification = createHookStory(() => {
22593
+ const { states, callbacks } = useTemplate$1(emailVerificationTemplate);
22594
+ return (h(TemplateView$1, { states: states, callbacks: callbacks, readme: EmailVerificationReadme }));
22595
+ });
22596
+ const EmailVerified = createHookStory(() => {
22597
+ const { states, callbacks } = useTemplate$1(emailVerifiedTemplate);
22598
+ return (h(TemplateView$1, { states: states, callbacks: callbacks, readme: EmailVerifiedReadme }));
22599
+ });
22600
+ const Widget = createHookStory(() => {
22601
+ return (h("sqb-widget", { "widget-type": "p/Vacay-referral/w/referrerWidget", demoData: {
22602
+ data: {
22603
+ html: dashboardTemplate,
22604
+ },
22605
+ } }));
22606
+ });
22607
+ const ResetPasswordEmail = createHookStory(() => {
22608
+ const { states, callbacks } = useTemplate$1(resetPasswordEmailTemplate);
22609
+ return h(TemplateView$1, { states: states, callbacks: callbacks });
22610
+ });
22611
+ const VerifyEmail = createHookStory(() => {
22612
+ const { states, callbacks } = useTemplate$1(verifyEmailTemplate);
22613
+ return h(TemplateView$1, { states: states, callbacks: callbacks });
22614
+ });
22615
+
22616
+ const PortalTemplates = /*#__PURE__*/Object.freeze({
22617
+ __proto__: null,
22618
+ 'default': PortalTemplates_stories,
22619
+ DefaultPortal: DefaultPortal,
22620
+ MultiProgramPortal: MultiProgramPortal,
22621
+ Login: Login,
22622
+ ForgotPassword: ForgotPassword,
22623
+ Register: Register,
22624
+ Dashboard: Dashboard$1,
22625
+ Activity: Activity$1,
22626
+ EditProfile: EditProfile$3,
22627
+ ResetPassword: ResetPassword,
22628
+ EmailVerification: EmailVerification,
22629
+ EmailVerified: EmailVerified,
22630
+ Widget: Widget,
22631
+ ResetPasswordEmail: ResetPasswordEmail,
22632
+ VerifyEmail: VerifyEmail
22633
+ });
22634
+
22635
+ const ProgramMenu_stories = {
22636
+ title: "Program Menu",
22637
+ };
22638
+ const OneProgram = createHookStory(() => {
22639
+ return (h("sqm-program-menu", null,
22640
+ h("sl-menu-item", { value: "referral-program" }, "Referral Program")));
22641
+ });
22642
+ const TwoProgram = createHookStory(() => {
22643
+ return (h("sqm-program-menu", null,
22644
+ h("sl-menu-item", { value: "referral-program" }, "Referral Program"),
22645
+ h("sl-menu-item", { value: "partner-program" }, "Partner Program")));
22646
+ });
22647
+ const FiveProgram = createHookStory(() => {
22648
+ return (h("sqm-program-menu", null,
22649
+ h("sl-menu-item", { value: "program1" }, "Program 1"),
22650
+ h("sl-menu-item", { value: "program2" }, "Program 2"),
22651
+ h("sl-menu-item", { value: "program3" }, "Program 3"),
22652
+ h("sl-menu-item", { value: "program4" }, "Program 4"),
22653
+ h("sl-menu-item", { value: "program5" }, "Program 5")));
22654
+ });
22655
+ const ProgramMenuWithSwitch = createHookStory(() => {
22656
+ return (h("div", null,
22657
+ h("sqb-program-section", { "program-id": "Vacay-referral" },
22658
+ h("sqm-program-menu", null,
22659
+ h("sl-menu-item", { value: "Vacay-referral" }, "Vacay-referral"),
22660
+ h("sl-menu-item", { value: "vacay-affiliates" }, "vacay-affiliates")),
22661
+ h("sqb-program-switch", null,
22662
+ h("template", { "program-id": "Vacay-referral" },
22663
+ h("sqb-widget", { "widget-type": "p/Vacay-referral/w/referrerWidget", demoData: {
22664
+ data: { html: dashboardTemplate },
22665
+ } })),
22666
+ h("template", { "program-id": "vacay-affiliates" },
22667
+ h("sqb-widget", { "widget-type": "p/vacay-affiliates/w/referrerWidget", demoData: {
22668
+ data: { html: dashboardTemplate },
22669
+ } }))))));
22670
+ });
22671
+
22672
+ const ProgramMenu$1 = /*#__PURE__*/Object.freeze({
22673
+ __proto__: null,
22674
+ 'default': ProgramMenu_stories,
22675
+ OneProgram: OneProgram,
22676
+ TwoProgram: TwoProgram,
22677
+ FiveProgram: FiveProgram,
22678
+ ProgramMenuWithSwitch: ProgramMenuWithSwitch
22679
+ });
22680
+
22681
+ const PoweredByImg_stories = {
22682
+ title: "Powered By",
22683
+ };
22684
+ const Default$a = () => {
22685
+ return h(PoweredByImg$1, null);
22686
+ };
22687
+ const CustomColor = () => {
22688
+ return h(PoweredByImg$1, { color: "salmon" });
22689
+ };
22690
+ const CustomWidthAndHeight = () => {
22691
+ return h(PoweredByImg$1, { width: 300, height: 50 });
22692
+ };
22693
+
22694
+ const PoweredByImg = /*#__PURE__*/Object.freeze({
22695
+ __proto__: null,
22696
+ 'default': PoweredByImg_stories,
22697
+ Default: Default$a,
22698
+ CustomColor: CustomColor,
22699
+ CustomWidthAndHeight: CustomWidthAndHeight
22700
+ });
22701
+
22702
+ const PortalFooter_stories = {
22703
+ title: "Portal Footer",
22704
+ parameters: {},
22705
+ };
22706
+ const defaultProps$9 = {
22707
+ supportEmail: "support@example.com",
22708
+ supportText: "For program support, contact {email}",
22709
+ showPoweredBy: true,
22710
+ poweredByLink: "https://saasquatch.com",
22711
+ paddingTop: "large",
22712
+ paddingRight: "large",
22713
+ paddingBottom: "large",
22714
+ paddingLeft: "large",
22715
+ };
22716
+ const DefaultFooter = () => h(PortalFooterView, Object.assign({}, defaultProps$9));
22717
+ const FooterWithTerms = () => (h(PortalFooterView, Object.assign({}, defaultProps$9, { termsLink: "https://example.com", termsText: "Terms and Conditions" })));
22718
+ const FooterWithFAQ = () => (h(PortalFooterView, Object.assign({}, defaultProps$9, { faqLink: "https://example.com", faqText: "FAQ" })));
22719
+ const FooterWithTermsAndFAQ = () => (h(PortalFooterView, Object.assign({}, defaultProps$9, { termsLink: "https://example.com", termsText: "Terms and Conditions", faqLink: "https://example.com", faqText: "FAQ" })));
22720
+ const FooterNoPoweredBy = () => (h(PortalFooterView, Object.assign({}, defaultProps$9, { termsLink: "https://example.com", termsText: "Terms and Conditions", faqLink: "https://example.com", faqText: "FAQ", showPoweredBy: false })));
22721
+
22722
+ const PortalFooter = /*#__PURE__*/Object.freeze({
22723
+ __proto__: null,
22724
+ 'default': PortalFooter_stories,
22725
+ DefaultFooter: DefaultFooter,
22726
+ FooterWithTerms: FooterWithTerms,
22727
+ FooterWithFAQ: FooterWithFAQ,
22728
+ FooterWithTermsAndFAQ: FooterWithTermsAndFAQ,
22729
+ FooterNoPoweredBy: FooterNoPoweredBy
22730
+ });
22731
+
22732
+ const Hero_stories = {
22733
+ title: "Hero Layout",
22734
+ parameters: {
22735
+ // scenario,
22736
+ },
22737
+ };
22738
+ const LoginOneColumn = () => {
22739
+ const props = {
22740
+ states: {
22741
+ columns: 1,
22742
+ wrapDirection: "wrap",
22743
+ },
22744
+ content: {
22745
+ primaryColumn: [
22746
+ h("h1", { style: { textAlign: "center" } }, "Get Referring!"),
22747
+ h("sqm-portal-login", null)
22748
+ ]
22749
+ },
22750
+ };
22751
+ return (h("div", { style: { height: "800px" } },
22752
+ h(HeroView, Object.assign({}, props))));
22753
+ };
22754
+ const LoginOneColumnWithColor = () => {
22755
+ const props = {
22756
+ states: {
22757
+ columns: 1,
22758
+ wrapDirection: "wrap",
22759
+ background: "LightSlateGrey",
22760
+ },
22761
+ content: {
22762
+ primaryColumn: h("sqm-portal-login", null),
22763
+ },
22764
+ };
22765
+ return (h("div", { style: { height: "800px" } },
22766
+ h(HeroView, Object.assign({}, props))));
22767
+ };
22768
+ const LoginOneColumnWithImage = () => {
22769
+ const props = {
22770
+ states: {
22771
+ columns: 1,
22772
+ wrapDirection: "wrap",
22773
+ background: "https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80",
22774
+ },
22775
+ content: { primaryColumn: h("sqm-portal-login", null) },
22776
+ };
22777
+ return (h("div", { style: { height: "800px" } },
22778
+ h(HeroView, Object.assign({}, props))));
22779
+ };
22780
+ const TwoColumnLogin = () => {
22781
+ const props = {
22782
+ states: {
22783
+ columns: 2,
22784
+ wrapDirection: "wrap",
22785
+ },
22786
+ content: {
22787
+ primaryColumn: (h("sqm-portal-login", { style: { width: "85%" } })),
22788
+ secondaryColumn: (h("div", { style: { width: "85%" } },
22789
+ h("h1", { style: { textAlign: "center" } }, "Get Referring!"),
22790
+ 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."))),
22791
+ },
22792
+ };
22793
+ return (h("div", { style: { height: "800px" } },
22794
+ h(HeroView, Object.assign({}, props))));
22795
+ };
22796
+ const TwoColumnLoginReverseWrap = () => {
22797
+ const props = {
22798
+ states: {
22799
+ columns: 2,
22800
+ wrapDirection: "wrap-reverse",
22801
+ },
22802
+ content: {
22803
+ primaryColumn: (h("sqm-portal-login", { style: { width: "85%" } })),
22804
+ secondaryColumn: (h("div", { style: { width: "85%" } },
22805
+ h("h1", { style: { textAlign: "center" } }, "Get Referring!"),
22806
+ 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."))),
22807
+ },
22808
+ };
22809
+ return (h("div", { style: { height: "800px" } },
22810
+ h(HeroView, Object.assign({}, props))));
22811
+ };
22812
+ const TwoColumnLoginWithImage = () => {
22813
+ const props = {
22814
+ states: {
22815
+ columns: 2,
22816
+ wrapDirection: "wrap",
22817
+ },
22818
+ content: {
22819
+ primaryColumn: (h("div", { style: { width: "85%" } },
22820
+ h("h1", { style: { textAlign: "center" } }, "Get Referring!"),
22821
+ h("sqm-portal-login", null))),
22822
+ secondaryColumn: (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" })),
22823
+ },
22824
+ };
22825
+ return (h("div", { style: { height: "800px" } },
22826
+ h(HeroView, Object.assign({}, props))));
22827
+ };
22828
+
22829
+ const Hero = /*#__PURE__*/Object.freeze({
22830
+ __proto__: null,
22831
+ 'default': Hero_stories,
22832
+ LoginOneColumn: LoginOneColumn,
22833
+ LoginOneColumnWithColor: LoginOneColumnWithColor,
22834
+ LoginOneColumnWithImage: LoginOneColumnWithImage,
22835
+ TwoColumnLogin: TwoColumnLogin,
22836
+ TwoColumnLoginReverseWrap: TwoColumnLoginReverseWrap,
22837
+ TwoColumnLoginWithImage: TwoColumnLoginWithImage
22838
+ });
22839
+
19089
22840
  function deepFreeze(obj) {
19090
22841
  if (obj instanceof Map) {
19091
22842
  obj.clear = obj.delete = obj.set = function () {
@@ -21688,7 +25439,7 @@ const stories = [
21688
25439
  NewPortal,
21689
25440
  SidebarItem,
21690
25441
  NavigationSidebar,
21691
- PortalLogin,
25442
+ PortalLogin$1,
21692
25443
  PortalRegister$1,
21693
25444
  PortalForgotPassword,
21694
25445
  PortalEmailVerification,
@@ -21703,6 +25454,11 @@ const stories = [
21703
25454
  ReferralTableRewardsCell$1,
21704
25455
  UserName,
21705
25456
  PasswordField,
25457
+ PortalTemplates,
25458
+ ProgramMenu$1,
25459
+ PoweredByImg,
25460
+ PortalFooter,
25461
+ Hero
21706
25462
  ];
21707
25463
  const StencilStorybook = class {
21708
25464
  constructor(hostRef) {
@@ -21742,7 +25498,7 @@ const TableRow = class {
21742
25498
  }
21743
25499
  };
21744
25500
 
21745
- const debug$1 = browser("sq:global");
25501
+ const debug$2 = browser("sq:global");
21746
25502
  const textStyles = `
21747
25503
  sqm-text {
21748
25504
  display: block;
@@ -21802,7 +25558,7 @@ const Text = class {
21802
25558
  insertCSS(textStyles);
21803
25559
  }
21804
25560
  catch (error) {
21805
- debug$1(error);
25561
+ debug$2(error);
21806
25562
  }
21807
25563
  }
21808
25564
  render() {
@@ -21867,4 +25623,4 @@ function useUserNameDemo(props) {
21867
25623
  }, props.demoData || {}, { arrayMerge: (_, a) => a });
21868
25624
  }
21869
25625
 
21870
- export { DividedLayout as sqm_divided_layout, EditProfile as sqm_edit_profile, FormMessage as sqm_form_message, SqmHookStoryContainer as sqm_hook_story_container, NavigationMenu as sqm_navigation_menu, PortalPasswordField as sqm_password_field, PortalFrame as sqm_portal_frame, PortalRegister as sqm_portal_register, ReferralTable as sqm_referral_table, ReferralTableCell as sqm_referral_table_cell, ReferralTableDateCell as sqm_referral_table_date_cell, ReferralTableRewardsCell as sqm_referral_table_rewards_cell, ReferralTableStatusCell as sqm_referral_table_status_cell, ReferralTableUserCell as sqm_referral_table_user_cell, SqmRouter as sqm_router, ShareButton as sqm_share_button, ShareLink as sqm_share_link, StencilStorybook as sqm_stencilbook, TableCell$1 as sqm_table_cell, TableRow as sqm_table_row, Text as sqm_text, UserName$1 as sqm_user_name };
25626
+ export { DividedLayout as sqm_divided_layout, EditProfile as sqm_edit_profile, FormMessage as sqm_form_message, SqmHookStoryContainer as sqm_hook_story_container, NavigationMenu as sqm_navigation_menu, PortalPasswordField as sqm_password_field, PortalFrame as sqm_portal_frame, PortalLogin as sqm_portal_login, PortalRegister as sqm_portal_register, ProgramMenu as sqm_program_menu, ReferralTable as sqm_referral_table, ReferralTableCell as sqm_referral_table_cell, ReferralTableDateCell as sqm_referral_table_date_cell, ReferralTableRewardsCell as sqm_referral_table_rewards_cell, ReferralTableStatusCell as sqm_referral_table_status_cell, ReferralTableUserCell as sqm_referral_table_user_cell, SqmRouter as sqm_router, ShareButton as sqm_share_button, ShareLink as sqm_share_link, StencilStorybook as sqm_stencilbook, TableCell$1 as sqm_table_cell, TableRow as sqm_table_row, Text as sqm_text, UserName$1 as sqm_user_name };