@saasquatch/mint-components 1.5.0-13 → 1.5.0-17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. package/CHANGELOG.md +48 -24
  2. package/dist/cjs/{global-89f66e76.js → global-5ca2a131.js} +5 -5
  3. package/dist/cjs/loader.cjs.js +2 -2
  4. package/dist/cjs/mint-components.cjs.js +2 -2
  5. package/dist/cjs/sqm-big-stat.cjs.entry.js +1 -1
  6. package/dist/cjs/sqm-brand_39.cjs.entry.js +422 -238
  7. package/dist/cjs/sqm-card-feed-view-17fd3f0a.js +369 -0
  8. package/dist/cjs/sqm-card-feed.cjs.entry.js +4 -5
  9. package/dist/cjs/{sqm-leaderboard-rank-view-510f16d3.js → sqm-leaderboard-rank-view-dff9de2e.js} +1 -1
  10. package/dist/cjs/sqm-leaderboard-rank.cjs.entry.js +2 -2
  11. package/dist/cjs/{sqm-portal-email-verification-view-5093ac20.js → sqm-portal-email-verification-view-f0cbd78b.js} +1 -1
  12. package/dist/cjs/sqm-portal-email-verification.cjs.entry.js +10 -3
  13. package/dist/cjs/{sqm-portal-footer-view-03408484.js → sqm-portal-footer-view-c714590c.js} +1 -1
  14. package/dist/cjs/sqm-portal-footer.cjs.entry.js +2 -2
  15. package/dist/cjs/sqm-portal-forgot-password.cjs.entry.js +16 -4
  16. package/dist/cjs/{sqm-portal-profile-view-1a6327e4.js → sqm-portal-profile-view-f0233000.js} +3 -2
  17. package/dist/cjs/sqm-portal-profile.cjs.entry.js +2 -2
  18. package/dist/cjs/sqm-portal-reset-password.cjs.entry.js +9 -1
  19. package/dist/cjs/sqm-portal-verify-email.cjs.entry.js +10 -2
  20. package/dist/cjs/{sqm-program-explainer-step-view-54424840.js → sqm-program-explainer-step-view-17c5e99d.js} +4 -4
  21. package/dist/cjs/sqm-program-explainer-step.cjs.entry.js +1 -1
  22. package/dist/cjs/{sqm-program-explainer-view-db516613.js → sqm-program-explainer-view-d516c9df.js} +2 -2
  23. package/dist/cjs/sqm-program-explainer.cjs.entry.js +1 -1
  24. package/dist/cjs/{useDemoBigStat-5f770877.js → useDemoBigStat-49cd314a.js} +1 -2
  25. package/dist/collection/components/sqm-big-stat/sqm-big-stat.js +20 -0
  26. package/dist/collection/components/sqm-big-stat/useBigStat.js +1 -2
  27. package/dist/collection/components/sqm-card-feed/CardFeed.stories.js +13 -1
  28. package/dist/collection/components/sqm-card-feed/sqm-card-feed-view.js +7 -10
  29. package/dist/collection/components/sqm-card-feed/sqm-card-feed.js +9 -13
  30. package/dist/collection/components/sqm-portal-container/PortalContainer.stories.js +11 -1
  31. package/dist/collection/components/sqm-portal-container/sqm-portal-container-view.js +2 -1
  32. package/dist/collection/components/sqm-portal-container/sqm-portal-container.js +25 -0
  33. package/dist/collection/components/sqm-portal-email-verification/sqm-portal-email-verification.js +27 -0
  34. package/dist/collection/components/sqm-portal-email-verification/usePortalEmailVerification.js +2 -1
  35. package/dist/collection/components/sqm-portal-forgot-password/PortalForgotPassword.stories.js +4 -0
  36. package/dist/collection/components/sqm-portal-forgot-password/sqm-portal-forgot-password.js +55 -3
  37. package/dist/collection/components/sqm-portal-forgot-password/usePortalForgotPassword.js +4 -2
  38. package/dist/collection/components/sqm-portal-login/PortalLogin.stories.js +6 -0
  39. package/dist/collection/components/sqm-portal-login/sqm-portal-login.js +59 -4
  40. package/dist/collection/components/sqm-portal-login/usePortalLogin.js +4 -2
  41. package/dist/collection/components/sqm-portal-register/PortalRegister.stories.js +5 -0
  42. package/dist/collection/components/sqm-portal-register/sqm-portal-register.js +55 -2
  43. package/dist/collection/components/sqm-portal-register/usePortalRegister.js +3 -0
  44. package/dist/collection/components/sqm-portal-reset-password/sqm-portal-reset-password.js +30 -1
  45. package/dist/collection/components/sqm-portal-reset-password/usePortalResetPassword.js +1 -1
  46. package/dist/collection/components/sqm-portal-verify-email/sqm-portal-verify-email.js +30 -1
  47. package/dist/collection/components/sqm-portal-verify-email/usePortalVerifyEmail.js +2 -2
  48. package/dist/collection/components/sqm-program-explainer/ProgramExplainer.stories.js +1 -1
  49. package/dist/collection/components/sqm-program-explainer/sqm-program-explainer-view.js +2 -2
  50. package/dist/collection/components/sqm-program-explainer-step/ProgramExplainerStep.stories.js +1 -1
  51. package/dist/collection/components/sqm-program-explainer-step/sqm-program-explainer-step-view.js +5 -5
  52. package/dist/collection/components/sqm-referral-table/sqm-referral-table.js +5 -2
  53. package/dist/collection/components/sqm-reward-exchange-list/RewardExchangeListData.js +13 -8
  54. package/dist/collection/components/sqm-reward-exchange-list/sqm-reward-exchange-list-view.js +91 -114
  55. package/dist/collection/components/sqm-reward-exchange-list/sqm-reward-exchange-list.js +113 -5
  56. package/dist/collection/components/sqm-share-button/ShareButton.stories.js +21 -0
  57. package/dist/collection/components/sqm-share-button/sqm-share-button-view.js +17 -9
  58. package/dist/collection/components/sqm-share-button/sqm-share-button.js +62 -10
  59. package/dist/collection/components/sqm-task-card/TaskCard.stories.js +12 -0
  60. package/dist/collection/components/sqm-task-card/progress-bar/SVGs.js +1 -1
  61. package/dist/collection/components/sqm-task-card/progress-bar/progress-bar-view.js +24 -31
  62. package/dist/collection/components/sqm-task-card/sqm-task-card-view.js +79 -22
  63. package/dist/collection/components/sqm-task-card/sqm-task-card.js +106 -0
  64. package/dist/collection/components/sqm-user-name/sqm-user-name.js +1 -1
  65. package/dist/collection/global/styles.js +5 -5
  66. package/dist/collection/global/styles.ts +5 -5
  67. package/dist/esm/{global-e0e25c22.js → global-1c68ff6e.js} +5 -5
  68. package/dist/esm/loader.js +2 -2
  69. package/dist/esm/mint-components.js +2 -2
  70. package/dist/esm/sqm-big-stat.entry.js +1 -1
  71. package/dist/esm/sqm-brand_39.entry.js +422 -238
  72. package/dist/esm/sqm-card-feed-view-cdd1f818.js +367 -0
  73. package/dist/esm/sqm-card-feed.entry.js +4 -5
  74. package/dist/esm/{sqm-leaderboard-rank-view-cd1e8962.js → sqm-leaderboard-rank-view-95e6fb4f.js} +1 -1
  75. package/dist/esm/sqm-leaderboard-rank.entry.js +2 -2
  76. package/dist/esm/{sqm-portal-email-verification-view-2af31979.js → sqm-portal-email-verification-view-71eb8adb.js} +1 -1
  77. package/dist/esm/sqm-portal-email-verification.entry.js +10 -3
  78. package/dist/esm/{sqm-portal-footer-view-60cd9ae5.js → sqm-portal-footer-view-5cb00c4e.js} +1 -1
  79. package/dist/esm/sqm-portal-footer.entry.js +2 -2
  80. package/dist/esm/sqm-portal-forgot-password.entry.js +16 -4
  81. package/dist/esm/{sqm-portal-profile-view-ba06e776.js → sqm-portal-profile-view-864dd5b5.js} +3 -2
  82. package/dist/esm/sqm-portal-profile.entry.js +2 -2
  83. package/dist/esm/sqm-portal-reset-password.entry.js +9 -1
  84. package/dist/esm/sqm-portal-verify-email.entry.js +10 -2
  85. package/dist/esm/{sqm-program-explainer-step-view-7c0d5f71.js → sqm-program-explainer-step-view-e2b39225.js} +4 -4
  86. package/dist/esm/sqm-program-explainer-step.entry.js +1 -1
  87. package/dist/esm/{sqm-program-explainer-view-ab291eb4.js → sqm-program-explainer-view-f726f5ec.js} +2 -2
  88. package/dist/esm/sqm-program-explainer.entry.js +1 -1
  89. package/dist/esm/{useDemoBigStat-a0dd50ab.js → useDemoBigStat-acd4b73f.js} +1 -2
  90. package/dist/esm-es5/{global-e0e25c22.js → global-1c68ff6e.js} +1 -1
  91. package/dist/esm-es5/loader.js +1 -1
  92. package/dist/esm-es5/mint-components.js +1 -1
  93. package/dist/esm-es5/sqm-big-stat.entry.js +1 -1
  94. package/dist/esm-es5/sqm-brand_39.entry.js +1 -1
  95. package/dist/esm-es5/sqm-card-feed-view-cdd1f818.js +1 -0
  96. package/dist/esm-es5/sqm-card-feed.entry.js +1 -1
  97. package/dist/esm-es5/{sqm-leaderboard-rank-view-cd1e8962.js → sqm-leaderboard-rank-view-95e6fb4f.js} +1 -1
  98. package/dist/esm-es5/sqm-leaderboard-rank.entry.js +1 -1
  99. package/dist/esm-es5/{sqm-portal-email-verification-view-2af31979.js → sqm-portal-email-verification-view-71eb8adb.js} +1 -1
  100. package/dist/esm-es5/sqm-portal-email-verification.entry.js +1 -1
  101. package/dist/esm-es5/{sqm-portal-footer-view-60cd9ae5.js → sqm-portal-footer-view-5cb00c4e.js} +1 -1
  102. package/dist/esm-es5/sqm-portal-footer.entry.js +1 -1
  103. package/dist/esm-es5/sqm-portal-forgot-password.entry.js +1 -1
  104. package/dist/esm-es5/sqm-portal-profile-view-864dd5b5.js +1 -0
  105. package/dist/esm-es5/sqm-portal-profile.entry.js +1 -1
  106. package/dist/esm-es5/sqm-portal-reset-password.entry.js +1 -1
  107. package/dist/esm-es5/sqm-portal-verify-email.entry.js +1 -1
  108. package/dist/esm-es5/{sqm-program-explainer-step-view-7c0d5f71.js → sqm-program-explainer-step-view-e2b39225.js} +1 -1
  109. package/dist/esm-es5/sqm-program-explainer-step.entry.js +1 -1
  110. package/dist/esm-es5/{sqm-program-explainer-view-ab291eb4.js → sqm-program-explainer-view-f726f5ec.js} +1 -1
  111. package/dist/esm-es5/sqm-program-explainer.entry.js +1 -1
  112. package/dist/esm-es5/{useDemoBigStat-a0dd50ab.js → useDemoBigStat-acd4b73f.js} +1 -1
  113. package/dist/mint-components/global/styles.ts +5 -5
  114. package/dist/mint-components/mint-components.esm.js +1 -1
  115. package/dist/mint-components/mint-components.js +1 -1
  116. package/dist/mint-components/{p-bbb06296.entry.js → p-05de158b.entry.js} +1 -1
  117. package/dist/mint-components/p-0b7cc270.system.js +1 -0
  118. package/dist/mint-components/p-172e487a.system.entry.js +1 -0
  119. package/dist/mint-components/{p-759d3800.entry.js → p-26e63ecb.entry.js} +2 -2
  120. package/dist/mint-components/{p-376a0b37.js → p-35ee8cdf.js} +1 -1
  121. package/dist/mint-components/p-3e187434.system.js +1 -0
  122. package/dist/mint-components/{p-5001b2d1.system.js → p-5744f326.system.js} +1 -1
  123. package/dist/mint-components/p-5896caca.system.js +1 -0
  124. package/dist/mint-components/p-59cc7a26.system.entry.js +1 -0
  125. package/dist/mint-components/{p-8b523e73.entry.js → p-5b9a5dfa.entry.js} +1 -1
  126. package/dist/mint-components/{p-f79454fc.entry.js → p-69e273b4.entry.js} +1 -1
  127. package/dist/mint-components/p-6b8d51d6.entry.js +1 -0
  128. package/dist/mint-components/{p-0d0ec6fd.system.entry.js → p-6caa44e1.system.entry.js} +1 -1
  129. package/dist/mint-components/{p-0e95b67b.js → p-700f96f5.js} +1 -1
  130. package/dist/mint-components/{p-a8246a50.system.entry.js → p-71b6d552.system.entry.js} +1 -1
  131. package/dist/mint-components/{p-02dc36a4.system.js → p-7638bf48.system.js} +1 -1
  132. package/dist/mint-components/p-7798ebd4.js +1 -0
  133. package/dist/mint-components/{p-0e8ae7e3.system.js → p-79baab87.system.js} +1 -1
  134. package/dist/mint-components/p-7f6d37d8.entry.js +1 -0
  135. package/dist/mint-components/p-878ff4ca.entry.js +1 -0
  136. package/dist/mint-components/{p-4fc31af7.system.js → p-89d63744.system.js} +1 -1
  137. package/dist/mint-components/p-8c3d0392.system.entry.js +1 -0
  138. package/dist/mint-components/{p-8a261335.system.entry.js → p-8f58ce03.system.entry.js} +1 -1
  139. package/dist/mint-components/p-9a82ec56.entry.js +1 -0
  140. package/dist/mint-components/{p-21b4044a.entry.js → p-9bc12158.entry.js} +1 -1
  141. package/dist/mint-components/p-a3a5c48f.js +1 -0
  142. package/dist/mint-components/{p-2027edc0.system.entry.js → p-a424ac85.system.entry.js} +1 -1
  143. package/dist/mint-components/{p-1f95b411.js → p-a72143af.js} +1 -1
  144. package/dist/mint-components/p-b0d598db.system.entry.js +1 -0
  145. package/dist/mint-components/p-b11625ed.system.entry.js +1 -0
  146. package/dist/mint-components/p-b2cbbcce.system.js +1 -0
  147. package/dist/mint-components/p-ba1f4bf4.system.entry.js +1 -0
  148. package/dist/mint-components/{p-f8f125a7.system.js → p-bb7fd343.system.js} +1 -1
  149. package/dist/mint-components/{p-11cd0656.js → p-bd0887fb.js} +1 -1
  150. package/dist/mint-components/{p-72a5a051.system.entry.js → p-bffad7b3.system.entry.js} +1 -1
  151. package/dist/mint-components/p-c3d0b165.entry.js +1 -0
  152. package/dist/mint-components/p-c4a8c149.system.entry.js +1 -0
  153. package/dist/mint-components/{p-046c45b1.entry.js → p-c61028b0.entry.js} +1 -1
  154. package/dist/mint-components/{p-f7f87338.js → p-cd0ff606.js} +1 -1
  155. package/dist/mint-components/{p-8fd8682c.js → p-d793d269.js} +1 -1
  156. package/dist/mint-components/{p-4b719313.js → p-da46fc91.js} +1 -1
  157. package/dist/mint-components/{p-2e63dcfd.system.js → p-f47bf492.system.js} +1 -1
  158. package/dist/mint-components/p-ff74bee4.entry.js +372 -0
  159. package/dist/types/components/sqm-big-stat/sqm-big-stat.d.ts +6 -0
  160. package/dist/types/components/sqm-card-feed/sqm-card-feed-view.d.ts +2 -1
  161. package/dist/types/components/sqm-card-feed/sqm-card-feed.d.ts +3 -4
  162. package/dist/types/components/sqm-portal-container/PortalContainer.stories.d.ts +2 -0
  163. package/dist/types/components/sqm-portal-container/sqm-portal-container-view.d.ts +1 -0
  164. package/dist/types/components/sqm-portal-container/sqm-portal-container.d.ts +4 -0
  165. package/dist/types/components/sqm-portal-email-verification/sqm-portal-email-verification.d.ts +6 -0
  166. package/dist/types/components/sqm-portal-forgot-password/sqm-portal-forgot-password-view.d.ts +1 -0
  167. package/dist/types/components/sqm-portal-forgot-password/sqm-portal-forgot-password.d.ts +10 -0
  168. package/dist/types/components/sqm-portal-forgot-password/usePortalForgotPassword.d.ts +3 -1
  169. package/dist/types/components/sqm-portal-login/sqm-portal-login-view.d.ts +2 -0
  170. package/dist/types/components/sqm-portal-login/sqm-portal-login.d.ts +8 -0
  171. package/dist/types/components/sqm-portal-login/usePortalLogin.d.ts +3 -3
  172. package/dist/types/components/sqm-portal-register/sqm-portal-register-view.d.ts +1 -0
  173. package/dist/types/components/sqm-portal-register/sqm-portal-register.d.ts +10 -0
  174. package/dist/types/components/sqm-portal-register/usePortalRegister.d.ts +1 -0
  175. package/dist/types/components/sqm-portal-reset-password/sqm-portal-reset-password.d.ts +8 -0
  176. package/dist/types/components/sqm-portal-verify-email/sqm-portal-verify-email.d.ts +8 -0
  177. package/dist/types/components/sqm-portal-verify-email/usePortalVerifyEmail.d.ts +2 -1
  178. package/dist/types/components/sqm-reward-exchange-list/RewardExchangeListData.d.ts +143 -88
  179. package/dist/types/components/sqm-reward-exchange-list/sqm-reward-exchange-list.d.ts +21 -0
  180. package/dist/types/components/sqm-share-button/ShareButton.stories.d.ts +2 -0
  181. package/dist/types/components/sqm-share-button/sqm-share-button-view.d.ts +3 -0
  182. package/dist/types/components/sqm-share-button/sqm-share-button.d.ts +12 -0
  183. package/dist/types/components/sqm-task-card/progress-bar/SVGs.d.ts +1 -1
  184. package/dist/types/components/sqm-task-card/sqm-task-card-view.d.ts +4 -0
  185. package/dist/types/components/sqm-task-card/sqm-task-card.d.ts +22 -0
  186. package/dist/types/components/sqm-user-name/sqm-user-name.d.ts +1 -1
  187. package/dist/types/components.d.ts +212 -8
  188. package/dist/types/global/styles.d.ts +1 -1
  189. package/grapesjs/grapesjs.js +1 -1
  190. package/package.json +2 -1
  191. package/dist/cjs/sqm-card-feed-view-ec75fafc.js +0 -36
  192. package/dist/esm/sqm-card-feed-view-81f93bc7.js +0 -34
  193. package/dist/esm-es5/sqm-card-feed-view-81f93bc7.js +0 -1
  194. package/dist/esm-es5/sqm-portal-profile-view-ba06e776.js +0 -1
  195. package/dist/mint-components/p-20c95798.entry.js +0 -1
  196. package/dist/mint-components/p-3f5aa202.system.js +0 -1
  197. package/dist/mint-components/p-4658d225.system.entry.js +0 -1
  198. package/dist/mint-components/p-5939212e.system.entry.js +0 -1
  199. package/dist/mint-components/p-6f498a6b.system.entry.js +0 -1
  200. package/dist/mint-components/p-77b5a0a4.js +0 -1
  201. package/dist/mint-components/p-7cdbe82a.entry.js +0 -1
  202. package/dist/mint-components/p-8a714f3f.js +0 -1
  203. package/dist/mint-components/p-91fde765.system.js +0 -1
  204. package/dist/mint-components/p-9608ce17.system.entry.js +0 -1
  205. package/dist/mint-components/p-9dd76aed.system.entry.js +0 -1
  206. package/dist/mint-components/p-9ef3c3bc.entry.js +0 -372
  207. package/dist/mint-components/p-a88a08bb.system.js +0 -1
  208. package/dist/mint-components/p-a9a6f205.entry.js +0 -1
  209. package/dist/mint-components/p-b86cbac3.system.entry.js +0 -1
  210. package/dist/mint-components/p-c65cfc9d.system.js +0 -1
  211. package/dist/mint-components/p-e36ff7fa.entry.js +0 -1
  212. package/dist/mint-components/p-ed696e43.entry.js +0 -1
  213. package/dist/mint-components/p-ef7f70f2.system.entry.js +0 -1
@@ -0,0 +1,367 @@
1
+ import { h } from './index-17b4da69.js';
2
+ import { j as jss, c as create } from './jss-preset-default.esm-71fae192.js';
3
+
4
+ const DEFAULT_MAX_COL_WIDTH = 500;
5
+ const DEFAULT_COLS = "auto";
6
+ const DEFAULT_DEBOUNCE_MS = 300;
7
+ const DEFAULT_GAP_PX = 24;
8
+ const COL_COUNT_CSS_VAR_NAME = `--_masonry-layout-col-count`;
9
+ const GAP_CSS_VAR_NAME = `--_masonry-layout-gap`;
10
+ // https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType
11
+ const ELEMENT_NODE_TYPE = 1;
12
+ const DEBOUNCE_MAP = new Map();
13
+ /**
14
+ * Returns a number attribute from an element.
15
+ * @param $elem
16
+ * @param name
17
+ * @param defaultValue
18
+ */
19
+ function getNumberAttribute($elem, name, defaultValue) {
20
+ const value = parseFloat($elem.getAttribute(name) || "");
21
+ return isNaN(value) ? defaultValue : value;
22
+ }
23
+ /**
24
+ * Returns the amount of cols that the masonry grid should have.
25
+ * @param totalWidth
26
+ * @param cols
27
+ * @param maxColWidth
28
+ */
29
+ function getColCount(totalWidth, cols, maxColWidth) {
30
+ return isNaN(cols)
31
+ ? Math.max(1, Math.ceil(totalWidth / maxColWidth))
32
+ : cols;
33
+ }
34
+ /**
35
+ * Debounces a function.
36
+ * @param cb
37
+ * @param ms
38
+ * @param id
39
+ */
40
+ function debounce(cb, ms, id) {
41
+ const existingTimeout = DEBOUNCE_MAP.get(id);
42
+ if (existingTimeout != null)
43
+ window.clearTimeout(existingTimeout);
44
+ DEBOUNCE_MAP.set(id, window.setTimeout(cb, ms));
45
+ }
46
+ /**
47
+ * Returns the index of the column with the smallest height.
48
+ * @param colHeights
49
+ */
50
+ function findSmallestColIndex(colHeights) {
51
+ let smallestIndex = 0;
52
+ let smallestHeight = Infinity;
53
+ colHeights.forEach((height, i) => {
54
+ if (height < smallestHeight) {
55
+ smallestHeight = height;
56
+ smallestIndex = i;
57
+ }
58
+ });
59
+ return smallestIndex;
60
+ }
61
+
62
+ /**
63
+ * Template for the masonry layout.
64
+ * Max width of each column is computed as the width in percentage of
65
+ * the column minus the total with of the gaps divided between each column.
66
+ */
67
+ const $template = document.createElement("template");
68
+ $template.innerHTML = `
69
+ <style>
70
+ :host {
71
+ display: flex;
72
+ align-items: flex-start;
73
+ justify-content: stretch;
74
+ }
75
+
76
+ .column {
77
+ max-width: calc((100% / var(${COL_COUNT_CSS_VAR_NAME}, 1) - ((var(${GAP_CSS_VAR_NAME}, ${DEFAULT_GAP_PX}px) * (var(${COL_COUNT_CSS_VAR_NAME}, 1) - 1) / var(${COL_COUNT_CSS_VAR_NAME}, 1)))));
78
+ width: 100%;
79
+ flex: 1;
80
+ display: flex;
81
+ flex-direction: column;
82
+ }
83
+
84
+ .column:not(:last-child) {
85
+ margin-right: var(${GAP_CSS_VAR_NAME}, ${DEFAULT_GAP_PX}px);
86
+ }
87
+
88
+ .column ::slotted(*) {
89
+ margin-bottom: var(${GAP_CSS_VAR_NAME}, ${DEFAULT_GAP_PX}px);
90
+ box-sizing: border-box;
91
+ width: 100%;
92
+ }
93
+
94
+ /* Hide the items that has not yet found the correct slot */
95
+ #unset-items {
96
+ opacity: 0;
97
+ position: absolute;
98
+ pointer-events: none;
99
+ }
100
+ </style>
101
+ <div id="unset-items">
102
+ <slot></slot>
103
+ </div>
104
+ `;
105
+ // Use polyfill only in browsers that lack native Shadow DOM.
106
+ window.ShadyCSS && window.ShadyCSS.prepareTemplateStyles($template, "masonry-layout");
107
+ /**
108
+ * Masonry layout web component. It places the slotted elements in the optimal position based
109
+ * on the available vertical space, just like mason fitting stones in a wall.
110
+ * @example <masonry-layout><div class="item"></div><div class="item"></div></masonry-layout>
111
+ * @csspart column - Each column of the masonry layout.
112
+ * @csspart column-index - The specific column at the given index (eg. column-0 would target the first column and so on)
113
+ * @slot - Items that should be distributed in the layout.
114
+ */
115
+ class MasonryLayout extends HTMLElement {
116
+ /**
117
+ * Attach the shadow DOM.
118
+ */
119
+ constructor() {
120
+ super();
121
+ // Unique debounce ID so different masonry layouts on one page won't affect eachother
122
+ this.debounceId = `layout_${Math.random()}`;
123
+ // Resize observer that layouts when necessary
124
+ this.ro = undefined;
125
+ // The current request animation frame callback
126
+ this.currentRequestAnimationFrameCallback = undefined;
127
+ const shadow = this.attachShadow({ mode: "open" });
128
+ shadow.appendChild($template.content.cloneNode(true));
129
+ this.onSlotChange = this.onSlotChange.bind(this);
130
+ this.onResize = this.onResize.bind(this);
131
+ this.layout = this.layout.bind(this);
132
+ this.$unsetElementsSlot = this.shadowRoot.querySelector("#unset-items > slot");
133
+ }
134
+ // The observed attributes.
135
+ // Whenever one of these changes we need to update the layout.
136
+ static get observedAttributes() {
137
+ return ["maxcolwidth", "gap", "cols"];
138
+ }
139
+ /**
140
+ * The maximum width of each column if cols are set to auto.
141
+ * @attr maxcolwidth
142
+ * @param v
143
+ */
144
+ set maxColWidth(v) {
145
+ this.setAttribute("maxcolwidth", v.toString());
146
+ }
147
+ get maxColWidth() {
148
+ return getNumberAttribute(this, "maxcolwidth", DEFAULT_MAX_COL_WIDTH);
149
+ }
150
+ /**
151
+ * The amount of columns.
152
+ * @attr cols
153
+ * @param v
154
+ */
155
+ set cols(v) {
156
+ this.setAttribute("cols", v.toString());
157
+ }
158
+ get cols() {
159
+ return getNumberAttribute(this, "cols", DEFAULT_COLS);
160
+ }
161
+ /**
162
+ * The gap in pixels between the columns.
163
+ * @attr gap
164
+ * @param v
165
+ */
166
+ set gap(v) {
167
+ this.setAttribute("gap", v.toString());
168
+ }
169
+ get gap() {
170
+ return getNumberAttribute(this, "gap", DEFAULT_GAP_PX);
171
+ }
172
+ /**
173
+ * The ms of debounce when the element resizes.
174
+ * @attr debounce
175
+ * @param v
176
+ */
177
+ set debounce(v) {
178
+ this.setAttribute("debounce", v.toString());
179
+ }
180
+ get debounce() {
181
+ return getNumberAttribute(this, "debounce", DEFAULT_DEBOUNCE_MS);
182
+ }
183
+ /**
184
+ * The column elements.
185
+ */
186
+ get $columns() {
187
+ return Array.from(this.shadowRoot.querySelectorAll(`.column`));
188
+ }
189
+ /**
190
+ * Hook up event listeners when added to the DOM.
191
+ */
192
+ connectedCallback() {
193
+ this.$unsetElementsSlot.addEventListener("slotchange", this.onSlotChange);
194
+ // Attach resize observer so we can relayout eachtime the size changes
195
+ if ("ResizeObserver" in window) {
196
+ this.ro = new ResizeObserver(this.onResize);
197
+ this.ro.observe(this);
198
+ }
199
+ else {
200
+ window.addEventListener("resize", this.onResize);
201
+ }
202
+ }
203
+ /**
204
+ * Remove event listeners when removed from the DOM.
205
+ */
206
+ disconnectedCallback() {
207
+ this.$unsetElementsSlot.removeEventListener("slotchange", this.onSlotChange);
208
+ window.removeEventListener("resize", this.onResize);
209
+ if (this.ro != null) {
210
+ this.ro.unobserve(this);
211
+ }
212
+ }
213
+ /**
214
+ * Updates the layout when one of the observed attributes changes.
215
+ */
216
+ attributeChangedCallback(name) {
217
+ switch (name) {
218
+ case "gap":
219
+ this.style.setProperty(GAP_CSS_VAR_NAME, `${this.gap}px`);
220
+ break;
221
+ }
222
+ // Recalculate the layout
223
+ this.scheduleLayout();
224
+ }
225
+ /**
226
+ *
227
+ */
228
+ onSlotChange() {
229
+ // Grab unset elements
230
+ const $unsetElements = (this.$unsetElementsSlot.assignedNodes() || [])
231
+ .filter(node => node.nodeType === ELEMENT_NODE_TYPE);
232
+ // If there are more items not yet set layout straight awy to avoid the item being delayed in its render.
233
+ if ($unsetElements.length > 0) {
234
+ this.layout();
235
+ }
236
+ }
237
+ /**
238
+ * Each time the element resizes we need to schedule a layout
239
+ * if the amount available columns has has changed.
240
+ * @param entries
241
+ */
242
+ onResize(entries) {
243
+ // Grab the width of the element. If it isn't provided by the resize observer entry
244
+ // we compute it ourselves by looking at the offset width of the element.
245
+ const { width } = entries != null && Array.isArray(entries) && entries.length > 0
246
+ ? entries[0].contentRect : { width: this.offsetWidth };
247
+ // Get the amount of columns we should have
248
+ const colCount = getColCount(width, this.cols, this.maxColWidth);
249
+ // Compare the amount of columns we should have to the current amount of columns.
250
+ // Schedule a layout if they are no longer the same.
251
+ if (colCount !== this.$columns.length) {
252
+ this.scheduleLayout();
253
+ }
254
+ }
255
+ /**
256
+ * Render X amount of columns.
257
+ * @param colCount
258
+ */
259
+ renderCols(colCount) {
260
+ // Get the current columns
261
+ const $columns = this.$columns;
262
+ // If the amount of columns is correct we don't have to add new columns.
263
+ if ($columns.length === colCount) {
264
+ return;
265
+ }
266
+ // Remove all of the current columns
267
+ for (const $column of $columns) {
268
+ $column.parentNode && $column.parentNode.removeChild($column);
269
+ }
270
+ // Add some new columns
271
+ for (let i = 0; i < colCount; i++) {
272
+ // Create a column element
273
+ const $column = document.createElement(`div`);
274
+ $column.classList.add(`column`);
275
+ $column.setAttribute(`part`, `column column-${i}`);
276
+ // Add a slot with the name set to the index of the column
277
+ const $slot = document.createElement(`slot`);
278
+ $slot.setAttribute(`name`, i.toString());
279
+ // Append the slot to the column an the column to the shadow root.
280
+ $column.appendChild($slot);
281
+ this.shadowRoot.appendChild($column);
282
+ }
283
+ // Set the column count so we can compute the correct width of the columns
284
+ this.style.setProperty(COL_COUNT_CSS_VAR_NAME, colCount.toString());
285
+ // Commit the changes for ShadyCSS
286
+ window.ShadyCSS && window.ShadyCSS.styleElement(this);
287
+ }
288
+ /**
289
+ * Schedules a layout.
290
+ * @param ms
291
+ */
292
+ scheduleLayout(ms = this.debounce) {
293
+ debounce(this.layout, ms, this.debounceId);
294
+ }
295
+ /**
296
+ * Layouts the elements.
297
+ */
298
+ layout() {
299
+ // Cancel the current animation frame callback
300
+ if (this.currentRequestAnimationFrameCallback != null) {
301
+ window.cancelAnimationFrame(this.currentRequestAnimationFrameCallback);
302
+ }
303
+ // Layout in the next animationframe
304
+ this.currentRequestAnimationFrameCallback = requestAnimationFrame(() => {
305
+ // console.time("layout");
306
+ // Compute relevant values we are going to use for layouting the elements.
307
+ const gap = this.gap;
308
+ const $elements = Array.from(this.children)
309
+ .filter(node => node.nodeType === ELEMENT_NODE_TYPE);
310
+ const colCount = getColCount(this.offsetWidth, this.cols, this.maxColWidth);
311
+ // Have an array that keeps track of the highest col height.
312
+ const colHeights = Array(colCount).fill(0);
313
+ // Instead of interleaving reads and writes we create an array for all writes so we can batch them at once.
314
+ const writes = [];
315
+ // Go through all elements and figure out what column (aka slot) they should be put in.
316
+ // We only do reads in this for loop and postpone the writes
317
+ for (const $elem of $elements) {
318
+ // Read the height of the element
319
+ const height = $elem.getBoundingClientRect().height;
320
+ // Find the currently smallest column
321
+ let smallestColIndex = findSmallestColIndex(colHeights);
322
+ // Add the height of the item and the gap to the column heights.
323
+ // It is very important we add the gap since the more elements we have,
324
+ // the bigger the role the margins play when computing the actual height of the columns.
325
+ colHeights[smallestColIndex] += height + gap;
326
+ // Set the slot on the element to get the element to the correct column.
327
+ // Only do it if the slot has actually changed.
328
+ const newSlot = smallestColIndex.toString();
329
+ if ($elem.slot !== newSlot) {
330
+ writes.push(() => ($elem.slot = newSlot));
331
+ }
332
+ }
333
+ // Batch all the writes at once
334
+ for (const write of writes) {
335
+ write();
336
+ }
337
+ // Render the columns
338
+ this.renderCols(colCount);
339
+ // Commit the changes for ShadyCSS
340
+ window.ShadyCSS && window.ShadyCSS.styleElement(this);
341
+ // console.timeEnd("layout");
342
+ });
343
+ }
344
+ }
345
+ customElements.define("masonry-layout", MasonryLayout);
346
+
347
+ function CardFeedView(props, children) {
348
+ const style = {
349
+ Container: {
350
+ columnGap: props.gap + "px",
351
+ columnWidth: props.width + "px",
352
+ "& > div": {
353
+ // display: "inline-block!important",
354
+ marginBottom: "24px",
355
+ },
356
+ },
357
+ };
358
+ jss.setup(create());
359
+ const sheet = jss.createStyleSheet(style);
360
+ const styleString = sheet.toString();
361
+ console.log(props);
362
+ return (h("div", null,
363
+ h("style", { type: "text/css" }, styleString),
364
+ h("div", { class: sheet.classes.Container }, children)));
365
+ }
366
+
367
+ export { CardFeedView as C };
@@ -2,7 +2,7 @@ import { r as registerInstance, h as h$1 } from './index-17b4da69.js';
2
2
  import { m as h } from './extends-3a3f9fe2.js';
3
3
  import './jss-preset-default.esm-71fae192.js';
4
4
  import { g as getProps } from './utils-454405f5.js';
5
- import { C as CardFeedView } from './sqm-card-feed-view-81f93bc7.js';
5
+ import { C as CardFeedView } from './sqm-card-feed-view-cdd1f818.js';
6
6
 
7
7
  const CardFeed = class {
8
8
  constructor(hostRef) {
@@ -13,11 +13,10 @@ const CardFeed = class {
13
13
  */
14
14
  this.width = 347;
15
15
  /**
16
- * @uiName Horizontal Gap
17
- * @uiType string
18
- * @uiEnum ["none", "xxx-small", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "xxxx-large"]
16
+ * @uiName Column Gap
17
+ * @uiType number
19
18
  */
20
- this.gap = "xx-large";
19
+ this.gap = 24;
21
20
  h(this);
22
21
  }
23
22
  disconnectedCallback() { }
@@ -1,5 +1,5 @@
1
1
  import { h } from './index-17b4da69.js';
2
- import { _ as __assign } from './global-e0e25c22.js';
2
+ import { _ as __assign } from './global-1c68ff6e.js';
3
3
  import { f as parse } from './index.module-eb50a8d2.js';
4
4
 
5
5
  var docCache = new Map();
@@ -1,10 +1,10 @@
1
1
  import { r as registerInstance, h as h$1 } from './index-17b4da69.js';
2
2
  import { m as h } from './extends-3a3f9fe2.js';
3
- import { i as intl, c as createIntl } from './global-e0e25c22.js';
3
+ import { i as intl, c as createIntl } from './global-1c68ff6e.js';
4
4
  import './use-callback-b38a1523.js';
5
5
  import { M, n as ne, c as cn, j } from './index.module-eb50a8d2.js';
6
6
  import { c as cjs } from './cjs-bdfb4486.js';
7
- import { g as gql, L as LeaderboardRankView } from './sqm-leaderboard-rank-view-cd1e8962.js';
7
+ import { g as gql, L as LeaderboardRankView } from './sqm-leaderboard-rank-view-95e6fb4f.js';
8
8
 
9
9
  const GET_RANK = gql `
10
10
  query ($type: String!, $filter: UserLeaderboardFilterInput) {
@@ -1,5 +1,5 @@
1
1
  import { h } from './index-17b4da69.js';
2
- import { i as intl } from './global-e0e25c22.js';
2
+ import { i as intl } from './global-1c68ff6e.js';
3
3
  import { j as jss, c as create } from './jss-preset-default.esm-71fae192.js';
4
4
  import { A as AuthWrapper, a as AuthColumn } from './mixins-10353a39.js';
5
5
  import { T as TextSpanView } from './sqm-text-span-view-1781df94.js';
@@ -1,13 +1,13 @@
1
1
  import { r as registerInstance, h as h$1 } from './index-17b4da69.js';
2
2
  import { j as useState, e as useEffect, m as h } from './extends-3a3f9fe2.js';
3
- import './global-e0e25c22.js';
3
+ import './global-1c68ff6e.js';
4
4
  import './use-callback-b38a1523.js';
5
5
  import { i as an, n as ne, j } from './index.module-eb50a8d2.js';
6
6
  import './jss-preset-default.esm-71fae192.js';
7
7
  import { c as cjs } from './cjs-bdfb4486.js';
8
8
  import './mixins-10353a39.js';
9
9
  import './sqm-text-span-view-1781df94.js';
10
- import { P as PortalEmailVerificationView } from './sqm-portal-email-verification-view-2af31979.js';
10
+ import { P as PortalEmailVerificationView } from './sqm-portal-email-verification-view-71eb8adb.js';
11
11
 
12
12
  function usePortalEmailVerification(props) {
13
13
  var _a, _b, _c, _d, _e;
@@ -23,7 +23,8 @@ function usePortalEmailVerification(props) {
23
23
  return;
24
24
  setError("");
25
25
  const urlParams = nextPage ? { nextPage } : null;
26
- const variables = { email, urlParams };
26
+ const redirectPath = props.redirectPath;
27
+ const variables = { email, urlParams, redirectPath };
27
28
  await request(variables);
28
29
  };
29
30
  useEffect(() => {
@@ -59,6 +60,12 @@ const PortalEmailVerification = class {
59
60
  constructor(hostRef) {
60
61
  registerInstance(this, hostRef);
61
62
  this.ignored = true;
63
+ /**
64
+ * The page that users are redirected to from the verification email.
65
+ *
66
+ * @uiName Email redirection base path
67
+ */
68
+ this.redirectPath = "/verifyEmail";
62
69
  /**
63
70
  * @uiName Email verification header text
64
71
  */
@@ -1,5 +1,5 @@
1
1
  import { h } from './index-17b4da69.js';
2
- import { i as intl } from './global-e0e25c22.js';
2
+ import { i as intl } from './global-1c68ff6e.js';
3
3
  import { j as jss, c as create } from './jss-preset-default.esm-71fae192.js';
4
4
 
5
5
  function PoweredByImg({ color = "#A6A6A6", width = 190, height = 29, }) {
@@ -1,11 +1,11 @@
1
1
  import { r as registerInstance, h as h$1 } from './index-17b4da69.js';
2
2
  import { m as h } from './extends-3a3f9fe2.js';
3
- import './global-e0e25c22.js';
3
+ import './global-1c68ff6e.js';
4
4
  import './use-callback-b38a1523.js';
5
5
  import './index.module-eb50a8d2.js';
6
6
  import './jss-preset-default.esm-71fae192.js';
7
7
  import { g as getProps } from './utils-454405f5.js';
8
- import { a as PortalFooterView } from './sqm-portal-footer-view-60cd9ae5.js';
8
+ import { a as PortalFooterView } from './sqm-portal-footer-view-5cb00c4e.js';
9
9
 
10
10
  const PortalFooter = class {
11
11
  constructor(hostRef) {
@@ -9,7 +9,7 @@ import './mixins-10353a39.js';
9
9
  import './sqm-text-span-view-1781df94.js';
10
10
  import { P as PortalForgotPasswordView } from './sqm-portal-forgot-password-view-e3a6a716.js';
11
11
 
12
- function usePortalForgotPassword() {
12
+ function usePortalForgotPassword(props) {
13
13
  var _a, _b, _c, _d;
14
14
  const [success, setSuccess] = useState(false);
15
15
  const [error, setError] = useState("");
@@ -23,7 +23,8 @@ function usePortalForgotPassword() {
23
23
  jsonpointer.set(formData, key, value);
24
24
  });
25
25
  const urlParams = nextPage ? { nextPage } : null;
26
- const variables = { email: formData.email, urlParams };
26
+ const redirectPath = props.redirectPath;
27
+ const variables = { email: formData.email, urlParams, redirectPath };
27
28
  await request(variables);
28
29
  };
29
30
  useEffect(() => {
@@ -42,6 +43,7 @@ function usePortalForgotPassword() {
42
43
  loading,
43
44
  error: ((_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,
44
45
  success,
46
+ loginPath: props.loginPath,
45
47
  },
46
48
  callbacks: {
47
49
  submit,
@@ -53,6 +55,12 @@ const PortalForgotPassword = class {
53
55
  constructor(hostRef) {
54
56
  registerInstance(this, hostRef);
55
57
  this.ignored = true;
58
+ /**
59
+ * The page that users are redirected to from the password reset email.
60
+ *
61
+ * @uiName Email redirection base path
62
+ */
63
+ this.redirectPath = "/resetPassword";
56
64
  /**
57
65
  * @uiName Email label
58
66
  */
@@ -61,15 +69,19 @@ const PortalForgotPassword = class {
61
69
  * @uiName Password reset button text
62
70
  */
63
71
  this.submitLabel = "Request Password Reset";
72
+ /**
73
+ * @uiName Routing path to login page
74
+ */
75
+ this.loginPath = "/login";
64
76
  h(this);
65
77
  }
66
78
  disconnectedCallback() { }
67
79
  render() {
68
80
  const { states, callbacks } = j()
69
81
  ? usePortalForgotPasswordDemo(this)
70
- : usePortalForgotPassword();
82
+ : usePortalForgotPassword(this);
71
83
  const content = {
72
- secondaryButton: (h$1("slot", { name: "secondaryButton" }, h$1("sl-button", { type: "text", disabled: states.loading, onClick: () => mn.push("/login") }, "Sign In"))),
84
+ secondaryButton: (h$1("slot", { name: "secondaryButton" }, h$1("sl-button", { type: "text", disabled: states.loading, onClick: () => mn.push(states.loginPath) }, "Sign In"))),
73
85
  messageSlot: (h$1("slot", { name: "messageSlot" }, "Enter your email below to receive a password reset link.")),
74
86
  emailLabel: this.emailLabel,
75
87
  submitLabel: this.submitLabel,
@@ -1,5 +1,5 @@
1
1
  import { h } from './index-17b4da69.js';
2
- import { i as intl } from './global-e0e25c22.js';
2
+ import { i as intl } from './global-1c68ff6e.js';
3
3
  import { j as jss, c as create } from './jss-preset-default.esm-71fae192.js';
4
4
  import { T as TextSpanView } from './sqm-text-span-view-1781df94.js';
5
5
 
@@ -12,12 +12,13 @@ function PortalContainerView(props, children) {
12
12
  : "100%",
13
13
  "grid-gap": `var(--sl-spacing-${props.gap})`,
14
14
  padding: props.padding === "none" ? "0" : `var(--sl-spacing-${props.padding})`,
15
+ maxWidth: props.maxWidth ? props.maxWidth : "",
15
16
  },
16
17
  };
17
18
  const vanillaStyle = `
18
19
  :host{
19
20
  width: 100%;
20
- display: "block";
21
+ display: block;
21
22
  }`;
22
23
  jss.setup(create());
23
24
  const sheet = jss.createStyleSheet(style);
@@ -1,12 +1,12 @@
1
1
  import { r as registerInstance, h as h$1 } from './index-17b4da69.js';
2
2
  import { j as useState, e as useEffect, m as h } from './extends-3a3f9fe2.js';
3
- import './global-e0e25c22.js';
3
+ import './global-1c68ff6e.js';
4
4
  import './use-callback-b38a1523.js';
5
5
  import { d as dist, n as ne, c as cn, D as De, j } from './index.module-eb50a8d2.js';
6
6
  import './jss-preset-default.esm-71fae192.js';
7
7
  import { g as getProps } from './utils-454405f5.js';
8
8
  import { c as cjs } from './cjs-bdfb4486.js';
9
- import { a as PortalProfileView } from './sqm-portal-profile-view-ba06e776.js';
9
+ import { a as PortalProfileView } from './sqm-portal-profile-view-864dd5b5.js';
10
10
  import './sqm-text-span-view-1781df94.js';
11
11
 
12
12
  const GET_USER = dist.gql `
@@ -41,7 +41,7 @@ function usePortalResetPassword(props) {
41
41
  };
42
42
  const failed = () => {
43
43
  mn.push({
44
- pathname: "/",
44
+ pathname: props.failedPage,
45
45
  search: urlParams.toString() && "?" + urlParams.toString(),
46
46
  });
47
47
  };
@@ -89,9 +89,17 @@ const PortalResetPassword = class {
89
89
  registerInstance(this, hostRef);
90
90
  this.ignored = true;
91
91
  /**
92
+ * The page that users are redirected to when the password reset succeeds.
93
+ *
92
94
  * @uiName Next page path
93
95
  */
94
96
  this.nextPage = "/";
97
+ /**
98
+ * The page that users are redirected to if the reset fails due to outdated password reset attempt.
99
+ *
100
+ * @uiName Failed page redirection path
101
+ */
102
+ this.failedPage = "/";
95
103
  /**
96
104
  * @uiName Show confirm password
97
105
  */
@@ -8,7 +8,7 @@ import './mixins-10353a39.js';
8
8
  import './sqm-text-span-view-1781df94.js';
9
9
  import { P as PortalVerifyEmailView } from './sqm-portal-verify-email-view-6f18bac2.js';
10
10
 
11
- function usePortalVerifyEmail({ nextPage }) {
11
+ function usePortalVerifyEmail({ nextPage, failedPage }) {
12
12
  var _a, _b, _c, _d, _e;
13
13
  const [verified, setVerified] = useState(false);
14
14
  const [disableContinue, setDisableContinue] = useState(true);
@@ -21,7 +21,7 @@ function usePortalVerifyEmail({ nextPage }) {
21
21
  urlParams.delete("oobCode");
22
22
  const failed = () => {
23
23
  return mn.push({
24
- pathname: "/",
24
+ pathname: failedPage,
25
25
  search: urlParams.toString() && "?" + urlParams.toString(),
26
26
  });
27
27
  };
@@ -92,9 +92,17 @@ const PortalVerifyEmail = class {
92
92
  registerInstance(this, hostRef);
93
93
  this.ignored = true;
94
94
  /**
95
+ * The page that users are redirected to when the verification succeeds.
96
+ *
95
97
  * @uiName Next page path
96
98
  */
97
99
  this.nextPage = "/";
100
+ /**
101
+ * The page that users are redirected to if verification fails due to outdated verification attempt.
102
+ *
103
+ * @uiName Failed page redirection path
104
+ */
105
+ this.failedPage = "/";
98
106
  h(this);
99
107
  }
100
108
  disconnectedCallback() { }
@@ -11,14 +11,14 @@ function ProgramExplainerStepView(props) {
11
11
  background: props.background,
12
12
  padding: "var(--sl-spacing-large)",
13
13
  paddingBottom: "var(--sl-spacing-xxx-large)",
14
- "@media (max-width: 768px)": {
14
+ "@media (max-width: 499px)": {
15
15
  flexDirection: "row",
16
16
  width: "auto",
17
17
  paddingBottom: "var(--sl-spacing-large)",
18
18
  },
19
19
  },
20
20
  Text: {
21
- "@media (max-width: 768px)": {
21
+ "@media (max-width: 499px)": {
22
22
  marginLeft: "var(--sl-spacing-large)",
23
23
  },
24
24
  },
@@ -28,14 +28,14 @@ function ProgramExplainerStepView(props) {
28
28
  fontWeight: "var(--sl-font-weight-bold)",
29
29
  lineHeight: "var(--sl-line-height-dense)",
30
30
  marginTop: "var(--sl-spacing-large)",
31
- "@media (max-width: 768px)": {
31
+ "@media (max-width: 499px)": {
32
32
  margin: "0",
33
33
  },
34
34
  },
35
35
  Description: {
36
36
  fontSize: "var(--sl-font-size-medium)",
37
37
  marginTop: "var(--sl-spacing-small)",
38
- "@media (max-width: 768px)": {
38
+ "@media (max-width: 499px)": {
39
39
  marginTop: "var(--sl-spacing-x-small)",
40
40
  },
41
41
  },