@saasquatch/mint-components 1.12.0-8 → 1.12.1-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (382) hide show
  1. package/dist/cjs/{ShadowViewAddon-040cffad.js → ShadowViewAddon-c3e91cee.js} +22 -25
  2. package/dist/cjs/{global-c3637175.js → global-02e50f09.js} +2 -2
  3. package/dist/cjs/{index.module-b8d9d0ba.js → index.module-df530553.js} +18 -55
  4. package/dist/cjs/loader.cjs.js +3 -3
  5. package/dist/cjs/mint-components.cjs.js +3 -3
  6. package/dist/cjs/{re-render-5bde3d2e.js → re-render-1976e05e.js} +4 -4
  7. package/dist/cjs/sqm-asset-card.cjs.entry.js +1 -1
  8. package/dist/cjs/sqm-banking-info-form_16.cjs.entry.js +139 -224
  9. package/dist/cjs/sqm-big-stat_39.cjs.entry.js +218 -386
  10. package/dist/cjs/sqm-close-button.cjs.entry.js +1 -1
  11. package/dist/cjs/sqm-context-router.cjs.entry.js +2 -2
  12. package/dist/cjs/sqm-empty_4.cjs.entry.js +2 -2
  13. package/dist/cjs/sqm-graphql-client-provider.cjs.entry.js +5 -5
  14. package/dist/cjs/sqm-instant-access-registration.cjs.entry.js +3 -3
  15. package/dist/cjs/{sqm-invoice-table-view-5d3a2d35.js → sqm-invoice-table-view-e3b03a00.js} +1 -59
  16. package/dist/cjs/sqm-leaderboard-rank.cjs.entry.js +5 -5
  17. package/dist/cjs/sqm-logout-current-user.cjs.entry.js +3 -3
  18. package/dist/cjs/{sqm-navigation-sidebar-item-view-a2135064.js → sqm-navigation-sidebar-item-view-a125ec5f.js} +2 -2
  19. package/dist/cjs/sqm-navigation-sidebar-item.cjs.entry.js +3 -3
  20. package/dist/cjs/sqm-navigation-sidebar.cjs.entry.js +3 -3
  21. package/dist/cjs/sqm-password-field.cjs.entry.js +2 -2
  22. package/dist/cjs/sqm-popup-container.cjs.entry.js +4 -4
  23. package/dist/cjs/{sqm-portal-email-verification-view-050dbe0f.js → sqm-portal-email-verification-view-292b5bf4.js} +1 -1
  24. package/dist/cjs/sqm-portal-email-verification.cjs.entry.js +8 -8
  25. package/dist/cjs/sqm-portal-forgot-password.cjs.entry.js +4 -4
  26. package/dist/cjs/sqm-portal-logout.cjs.entry.js +2 -2
  27. package/dist/cjs/{sqm-portal-profile-view-d97086bc.js → sqm-portal-profile-view-fde54e35.js} +1 -1
  28. package/dist/cjs/sqm-portal-profile.cjs.entry.js +7 -7
  29. package/dist/cjs/sqm-portal-protected-route.cjs.entry.js +5 -5
  30. package/dist/cjs/sqm-portal-registration-form-view-621348a6.js +85 -0
  31. package/dist/cjs/sqm-portal-registration-form.cjs.entry.js +13 -88
  32. package/dist/cjs/sqm-portal-reset-password.cjs.entry.js +6 -6
  33. package/dist/cjs/sqm-portal-verify-email.cjs.entry.js +6 -6
  34. package/dist/cjs/sqm-referral-table_11.cjs.entry.js +5 -5
  35. package/dist/cjs/sqm-referred-registration.cjs.entry.js +3 -3
  36. package/dist/cjs/sqm-rewards-table-customer-note-column.cjs.entry.js +2 -2
  37. package/dist/cjs/sqm-rewards-table_9.cjs.entry.js +10 -10
  38. package/dist/cjs/sqm-stencilbook.cjs.entry.js +366 -377
  39. package/dist/cjs/sqm-tab.cjs.entry.js +2 -2
  40. package/dist/cjs/sqm-tabs.cjs.entry.js +4 -4
  41. package/dist/cjs/{useChildElements-410d2435.js → useChildElements-e0d44916.js} +2 -2
  42. package/dist/cjs/{useInstantAccessRegistration-ccf81eae.js → useInstantAccessRegistration-bbe746d1.js} +3 -3
  43. package/dist/cjs/{useReferralTable-824ac152.js → useReferralTable-a76adb0d.js} +9 -9
  44. package/dist/cjs/{useRegistrationFormState-f9ce55be.js → useRegistrationFormState-876ed65d.js} +2 -2
  45. package/dist/cjs/{utilities-f7de6c04.js → utilities-cec9dd36.js} +1 -1
  46. package/dist/collection/collection-manifest.json +1 -6
  47. package/dist/collection/components/sqm-big-stat/useBigStat.js +3 -6
  48. package/dist/collection/components/sqm-checkbox-field/sqm-checkbox-field.js +5 -5
  49. package/dist/collection/components/sqm-marketing-emails-checkbox/MarketingEmailsCheckbox.stories.js +11 -0
  50. package/dist/collection/components/sqm-marketing-emails-checkbox/sqm-marketing-emails-checkbox.js +160 -0
  51. package/dist/collection/components/sqm-portal-registration-form/PortalRegistrationForm.stories.js +5 -1
  52. package/dist/collection/components/sqm-portal-registration-form/sqm-portal-registration-form-view.js +1 -1
  53. package/dist/collection/components/sqm-portal-registration-form/sqm-portal-registration-form.js +3 -2
  54. package/dist/collection/components/sqm-stencilbook/sqm-stencilbook.js +4 -8
  55. package/dist/collection/components/tax-and-cash/BankingForm.stories.js +0 -2
  56. package/dist/collection/components/tax-and-cash/TaxForm.stories.js +0 -56
  57. package/dist/collection/components/tax-and-cash/sqm-banking-info-form/sqm-banking-info-form.js +1 -5
  58. package/dist/collection/components/tax-and-cash/sqm-banking-info-form/useBankingInfoForm.js +38 -101
  59. package/dist/collection/components/tax-and-cash/sqm-docusign-form/docusign-iframe/DocusignIframe.js +2 -15
  60. package/dist/collection/components/tax-and-cash/sqm-tax-and-cash/data.js +0 -6
  61. package/dist/collection/components/tax-and-cash/sqm-tax-and-cash/sqm-tax-and-cash.js +8 -8
  62. package/dist/collection/components/tax-and-cash/sqm-tax-and-cash/useTaxAndCash.js +2 -2
  63. package/dist/collection/components/tax-and-cash/sqm-tax-and-cash-dashboard/sqm-tax-and-cash-dashboard-view.js +0 -11
  64. package/dist/collection/components/tax-and-cash/sqm-tax-and-cash-dashboard/sqm-tax-and-cash-dashboard.js +9 -10
  65. package/dist/collection/components/tax-and-cash/sqm-tax-and-cash-dashboard/useTaxAndCashDashboard.js +1 -2
  66. package/dist/collection/components/tax-and-cash/sqm-user-info-form/sqm-user-info-form-view.js +2 -2
  67. package/dist/collection/components/tax-and-cash/sqm-user-info-form/useUserInfoForm.js +11 -14
  68. package/dist/esm/{ShadowViewAddon-69b61037.js → ShadowViewAddon-e012b2aa.js} +22 -25
  69. package/dist/esm/{global-6306a9b8.js → global-04c7d3b5.js} +2 -2
  70. package/dist/esm/{index.module-6c840c4e.js → index.module-def4aec5.js} +3 -40
  71. package/dist/esm/loader.js +3 -3
  72. package/dist/esm/mint-components.js +3 -3
  73. package/dist/esm/{re-render-1bcfd0de.js → re-render-12fd274a.js} +4 -4
  74. package/dist/esm/sqm-asset-card.entry.js +1 -1
  75. package/dist/esm/sqm-banking-info-form_16.entry.js +138 -223
  76. package/dist/esm/sqm-big-stat_39.entry.js +217 -385
  77. package/dist/esm/sqm-close-button.entry.js +1 -1
  78. package/dist/esm/sqm-context-router.entry.js +2 -2
  79. package/dist/esm/sqm-empty_4.entry.js +2 -2
  80. package/dist/esm/sqm-graphql-client-provider.entry.js +5 -5
  81. package/dist/esm/sqm-instant-access-registration.entry.js +3 -3
  82. package/dist/esm/{sqm-invoice-table-view-e9075c0b.js → sqm-invoice-table-view-6e13a323.js} +1 -59
  83. package/dist/esm/sqm-leaderboard-rank.entry.js +5 -5
  84. package/dist/esm/sqm-logout-current-user.entry.js +3 -3
  85. package/dist/esm/{sqm-navigation-sidebar-item-view-f8e78810.js → sqm-navigation-sidebar-item-view-60ef06cc.js} +2 -2
  86. package/dist/esm/sqm-navigation-sidebar-item.entry.js +3 -3
  87. package/dist/esm/sqm-navigation-sidebar.entry.js +3 -3
  88. package/dist/esm/sqm-password-field.entry.js +2 -2
  89. package/dist/esm/sqm-popup-container.entry.js +4 -4
  90. package/dist/esm/{sqm-portal-email-verification-view-c6ac5430.js → sqm-portal-email-verification-view-4307c992.js} +1 -1
  91. package/dist/esm/sqm-portal-email-verification.entry.js +8 -8
  92. package/dist/esm/sqm-portal-forgot-password.entry.js +4 -4
  93. package/dist/esm/sqm-portal-logout.entry.js +2 -2
  94. package/dist/esm/{sqm-portal-profile-view-15ddbec8.js → sqm-portal-profile-view-ffe955c8.js} +1 -1
  95. package/dist/esm/sqm-portal-profile.entry.js +7 -7
  96. package/dist/esm/sqm-portal-protected-route.entry.js +5 -5
  97. package/dist/esm/sqm-portal-registration-form-view-1d3066e1.js +83 -0
  98. package/dist/esm/sqm-portal-registration-form.entry.js +18 -93
  99. package/dist/esm/sqm-portal-reset-password.entry.js +6 -6
  100. package/dist/esm/sqm-portal-verify-email.entry.js +6 -6
  101. package/dist/esm/sqm-referral-table_11.entry.js +5 -5
  102. package/dist/esm/sqm-referred-registration.entry.js +3 -3
  103. package/dist/esm/sqm-rewards-table-customer-note-column.entry.js +2 -2
  104. package/dist/esm/sqm-rewards-table_9.entry.js +10 -10
  105. package/dist/esm/sqm-stencilbook.entry.js +366 -377
  106. package/dist/esm/sqm-tab.entry.js +2 -2
  107. package/dist/esm/sqm-tabs.entry.js +4 -4
  108. package/dist/esm/stencil-hooks.module-ac12ca1c.js +1 -1
  109. package/dist/esm/{useChildElements-fc84e640.js → useChildElements-32e1bda1.js} +2 -2
  110. package/dist/esm/{useInstantAccessRegistration-8b0a4556.js → useInstantAccessRegistration-46b89952.js} +3 -3
  111. package/dist/esm/{useReferralTable-f6ffa103.js → useReferralTable-f4de0650.js} +9 -9
  112. package/dist/esm/{useRegistrationFormState-849e27f7.js → useRegistrationFormState-9fc1ac80.js} +2 -2
  113. package/dist/esm/{utilities-443732be.js → utilities-3f5bba22.js} +1 -1
  114. package/dist/esm-es5/ShadowViewAddon-e012b2aa.js +1 -0
  115. package/dist/esm-es5/{global-6306a9b8.js → global-04c7d3b5.js} +2 -2
  116. package/dist/esm-es5/index.module-def4aec5.js +1 -0
  117. package/dist/esm-es5/loader.js +1 -1
  118. package/dist/esm-es5/mint-components.js +1 -1
  119. package/dist/esm-es5/{re-render-1bcfd0de.js → re-render-12fd274a.js} +1 -1
  120. package/dist/esm-es5/sqm-asset-card.entry.js +1 -1
  121. package/dist/esm-es5/sqm-banking-info-form_16.entry.js +1 -1
  122. package/dist/esm-es5/sqm-big-stat_39.entry.js +1 -1
  123. package/dist/esm-es5/sqm-close-button.entry.js +1 -1
  124. package/dist/esm-es5/sqm-context-router.entry.js +1 -1
  125. package/dist/esm-es5/sqm-empty_4.entry.js +1 -1
  126. package/dist/esm-es5/sqm-graphql-client-provider.entry.js +1 -1
  127. package/dist/esm-es5/sqm-instant-access-registration.entry.js +1 -1
  128. package/dist/esm-es5/sqm-invoice-table-view-6e13a323.js +1 -0
  129. package/dist/esm-es5/sqm-leaderboard-rank.entry.js +1 -1
  130. package/dist/esm-es5/sqm-logout-current-user.entry.js +1 -1
  131. package/dist/esm-es5/sqm-navigation-sidebar-item-view-60ef06cc.js +1 -0
  132. package/dist/esm-es5/sqm-navigation-sidebar-item.entry.js +1 -1
  133. package/dist/esm-es5/sqm-navigation-sidebar.entry.js +1 -1
  134. package/dist/esm-es5/sqm-password-field.entry.js +1 -1
  135. package/dist/esm-es5/sqm-popup-container.entry.js +1 -1
  136. package/dist/esm-es5/{sqm-portal-email-verification-view-c6ac5430.js → sqm-portal-email-verification-view-4307c992.js} +1 -1
  137. package/dist/esm-es5/sqm-portal-email-verification.entry.js +1 -1
  138. package/dist/esm-es5/sqm-portal-forgot-password.entry.js +1 -1
  139. package/dist/esm-es5/sqm-portal-logout.entry.js +1 -1
  140. package/dist/esm-es5/{sqm-portal-profile-view-15ddbec8.js → sqm-portal-profile-view-ffe955c8.js} +1 -1
  141. package/dist/esm-es5/sqm-portal-profile.entry.js +1 -1
  142. package/dist/esm-es5/sqm-portal-protected-route.entry.js +1 -1
  143. package/dist/esm-es5/sqm-portal-registration-form-view-1d3066e1.js +1 -0
  144. package/dist/esm-es5/sqm-portal-registration-form.entry.js +1 -1
  145. package/dist/esm-es5/sqm-portal-reset-password.entry.js +1 -1
  146. package/dist/esm-es5/sqm-portal-verify-email.entry.js +1 -1
  147. package/dist/esm-es5/sqm-referral-table_11.entry.js +1 -1
  148. package/dist/esm-es5/sqm-referred-registration.entry.js +1 -1
  149. package/dist/esm-es5/sqm-rewards-table-customer-note-column.entry.js +1 -1
  150. package/dist/esm-es5/sqm-rewards-table_9.entry.js +1 -1
  151. package/dist/esm-es5/sqm-stencilbook.entry.js +1 -1
  152. package/dist/esm-es5/sqm-tab.entry.js +1 -1
  153. package/dist/esm-es5/sqm-tabs.entry.js +1 -1
  154. package/dist/esm-es5/stencil-hooks.module-ac12ca1c.js +1 -1
  155. package/dist/esm-es5/{useChildElements-fc84e640.js → useChildElements-32e1bda1.js} +1 -1
  156. package/dist/esm-es5/useInstantAccessRegistration-46b89952.js +1 -0
  157. package/dist/esm-es5/{useReferralTable-f6ffa103.js → useReferralTable-f4de0650.js} +1 -1
  158. package/dist/esm-es5/useRegistrationFormState-9fc1ac80.js +1 -0
  159. package/dist/esm-es5/{utilities-443732be.js → utilities-3f5bba22.js} +1 -1
  160. package/dist/mint-components/mint-components.esm.js +1 -1
  161. package/dist/mint-components/mint-components.js +1 -1
  162. package/dist/mint-components/{p-f450654b.system.entry.js → p-01cfff8a.system.entry.js} +1 -1
  163. package/dist/mint-components/{p-94454880.entry.js → p-021a735d.entry.js} +1 -1
  164. package/dist/mint-components/{p-ac51940e.system.js → p-02424350.system.js} +1 -1
  165. package/dist/mint-components/p-03494732.entry.js +1 -0
  166. package/dist/mint-components/{p-59818690.system.entry.js → p-07f675ab.system.entry.js} +1 -1
  167. package/dist/mint-components/{p-11d1b212.js → p-0b9fa97f.js} +1 -1
  168. package/dist/mint-components/{p-5becb2ff.system.js → p-0d8c53ac.system.js} +1 -1
  169. package/dist/mint-components/{p-9eae245f.js → p-10685090.js} +4 -7
  170. package/dist/mint-components/p-10e89d0a.entry.js +1 -0
  171. package/dist/mint-components/{p-012daf3c.entry.js → p-137ea86e.entry.js} +1 -1
  172. package/dist/mint-components/p-1c857edb.entry.js +33 -0
  173. package/dist/mint-components/{p-e12d3414.system.entry.js → p-1dd69917.system.entry.js} +1 -1
  174. package/dist/mint-components/p-2a414b2e.system.js +2 -2
  175. package/dist/mint-components/{p-d468925f.entry.js → p-2dd67762.entry.js} +1 -1
  176. package/dist/mint-components/{p-1d27da33.js → p-2ee2ebba.js} +2 -2
  177. package/dist/mint-components/{p-84b25a46.entry.js → p-3223ba7b.entry.js} +1 -1
  178. package/dist/mint-components/{p-f4cbbe47.entry.js → p-32d1d162.entry.js} +1 -1
  179. package/dist/mint-components/{p-cb433855.system.entry.js → p-35d84041.system.entry.js} +1 -1
  180. package/dist/mint-components/{p-4babe350.system.js → p-3d4656bb.system.js} +1 -1
  181. package/dist/mint-components/{p-f36e33ff.entry.js → p-3ec16698.entry.js} +2 -2
  182. package/dist/mint-components/p-40b1de58.js +1 -0
  183. package/dist/mint-components/p-4112e198.system.js +1 -0
  184. package/dist/mint-components/{p-04348a9b.js → p-41a11a7f.js} +1 -1
  185. package/dist/mint-components/p-44787d6e.system.js +1 -0
  186. package/dist/mint-components/{p-be1ae1ed.system.entry.js → p-4502ed11.system.entry.js} +1 -1
  187. package/dist/mint-components/p-458b2894.entry.js +9 -0
  188. package/dist/mint-components/{p-e0e7635a.js → p-4d233cd4.js} +1 -1
  189. package/dist/mint-components/{p-cd44de66.system.js → p-4df8f1d2.system.js} +1 -1
  190. package/dist/mint-components/{p-7dd1ff31.system.entry.js → p-4ea58025.system.entry.js} +1 -1
  191. package/dist/mint-components/{p-a45b03d2.entry.js → p-4edde470.entry.js} +1 -1
  192. package/dist/mint-components/p-51f517a2.js +1 -0
  193. package/dist/mint-components/{p-bee1e573.entry.js → p-56f14840.entry.js} +1 -1
  194. package/dist/mint-components/{p-0527d90b.system.entry.js → p-58ef25d3.system.entry.js} +1 -1
  195. package/dist/mint-components/{p-fc422446.system.js → p-59fe4ad1.system.js} +1 -1
  196. package/dist/mint-components/p-5b333fa8.system.entry.js +1 -0
  197. package/dist/mint-components/p-5be235f9.entry.js +1 -0
  198. package/dist/mint-components/{p-bc826117.system.entry.js → p-5cac90e8.system.entry.js} +1 -1
  199. package/dist/mint-components/{p-22425c71.system.entry.js → p-5f1c4160.system.entry.js} +1 -1
  200. package/dist/mint-components/{p-0121e044.js → p-61eab172.js} +1 -1
  201. package/dist/mint-components/{p-4eae91a9.system.js → p-674a64fe.system.js} +1 -1
  202. package/dist/mint-components/{p-76392386.entry.js → p-6cef104b.entry.js} +1 -1
  203. package/dist/mint-components/{p-0893073b.entry.js → p-7049e9b0.entry.js} +1 -1
  204. package/dist/mint-components/p-711ba77e.system.entry.js +1 -0
  205. package/dist/mint-components/p-770368bc.system.js +1 -0
  206. package/dist/mint-components/{p-c3babfa4.system.entry.js → p-7731f793.system.entry.js} +1 -1
  207. package/dist/mint-components/p-79191f88.entry.js +1 -0
  208. package/dist/mint-components/p-7f088154.entry.js +1 -0
  209. package/dist/mint-components/{p-3e7ec0f3.system.entry.js → p-8679ed9f.system.entry.js} +1 -1
  210. package/dist/mint-components/{p-6c928c7d.entry.js → p-86990110.entry.js} +1 -1
  211. package/dist/mint-components/{p-d83b0cf3.js → p-8704937c.js} +1 -1
  212. package/dist/mint-components/p-8b5b78ca.entry.js +1 -0
  213. package/dist/mint-components/p-8e907ac7.system.entry.js +1 -0
  214. package/dist/mint-components/p-91669312.entry.js +1 -0
  215. package/dist/mint-components/p-95771f79.system.js +1 -0
  216. package/dist/mint-components/p-96242551.system.entry.js +1 -0
  217. package/dist/mint-components/{p-f56348dc.system.entry.js → p-9c310991.system.entry.js} +1 -1
  218. package/dist/mint-components/{p-9ec008cb.system.entry.js → p-9f0629ba.system.entry.js} +1 -1
  219. package/dist/mint-components/{p-f531a5c9.system.entry.js → p-a1dba9a1.system.entry.js} +1 -1
  220. package/dist/mint-components/p-a6a7dcaa.js +1 -0
  221. package/dist/mint-components/{p-9cdbd1ac.system.entry.js → p-a7c2ced2.system.entry.js} +1 -1
  222. package/dist/mint-components/p-a8f7cb95.js +1 -0
  223. package/dist/mint-components/{p-03dbe2ce.entry.js → p-a9050eb0.entry.js} +1 -1
  224. package/dist/mint-components/{p-fd21ae8f.entry.js → p-aad11a68.entry.js} +1 -1
  225. package/dist/mint-components/p-aee2304a.entry.js +223 -0
  226. package/dist/mint-components/{p-04ced592.system.entry.js → p-af062c8f.system.entry.js} +1 -1
  227. package/dist/mint-components/{p-1f7d7524.system.entry.js → p-afd366ae.system.entry.js} +1 -1
  228. package/dist/mint-components/p-b370fca8.system.js +1 -0
  229. package/dist/mint-components/{p-5291891c.entry.js → p-b4c52c5a.entry.js} +2 -2
  230. package/dist/mint-components/{p-36e9296e.system.entry.js → p-b5861974.system.entry.js} +1 -1
  231. package/dist/mint-components/{p-83c9f37b.system.entry.js → p-b6fc1227.system.entry.js} +1 -1
  232. package/dist/mint-components/p-bb00db59.js +1 -0
  233. package/dist/mint-components/{p-5fba1a04.system.entry.js → p-be4b748a.system.entry.js} +1 -1
  234. package/dist/mint-components/{p-8d554a89.system.js → p-c84659a3.system.js} +1 -1
  235. package/dist/mint-components/{p-9e0230c3.entry.js → p-ce5afa40.entry.js} +1 -1
  236. package/dist/mint-components/{p-2816bf6a.js → p-ce621bcc.js} +1 -1
  237. package/dist/mint-components/{p-88bf51b7.system.entry.js → p-cf690d55.system.entry.js} +1 -1
  238. package/dist/mint-components/p-d5de2646.system.entry.js +1 -0
  239. package/dist/mint-components/{p-4671e644.entry.js → p-d8d2de11.entry.js} +1 -1
  240. package/dist/mint-components/p-d8e68e16.entry.js +13 -0
  241. package/dist/mint-components/{p-4e373c3d.system.js → p-dd7ee007.system.js} +1 -1
  242. package/dist/mint-components/{p-d35d8c06.entry.js → p-e3735866.entry.js} +2 -2
  243. package/dist/mint-components/p-e6d74386.system.entry.js +1 -0
  244. package/dist/mint-components/{p-68747d88.js → p-eaada4da.js} +1 -1
  245. package/dist/mint-components/{p-51d53165.system.entry.js → p-eba44835.system.entry.js} +1 -1
  246. package/dist/mint-components/p-ec41d6a4.entry.js +174 -0
  247. package/dist/mint-components/{p-43621f12.system.js → p-ed095674.system.js} +1 -1
  248. package/dist/mint-components/p-ed17e637.system.js +1 -0
  249. package/dist/mint-components/{p-c1f4fb6d.system.entry.js → p-fb20eb5e.system.entry.js} +1 -1
  250. package/dist/mint-components/p-fd2c5407.js +2 -2
  251. package/dist/types/components/sqm-checkbox-field/sqm-checkbox-field-view.d.ts +1 -1
  252. package/dist/types/components/sqm-checkbox-field/sqm-checkbox-field.d.ts +4 -4
  253. package/dist/types/components/sqm-marketing-emails-checkbox/MarketingEmailsCheckbox.stories.d.ts +8 -0
  254. package/dist/types/components/sqm-marketing-emails-checkbox/sqm-marketing-emails-checkbox.d.ts +34 -0
  255. package/dist/types/components/sqm-portal-registration-form/PortalRegistrationForm.stories.d.ts +1 -0
  256. package/dist/types/components/sqm-portal-registration-form/sqm-portal-registration-form-view.d.ts +1 -0
  257. package/dist/types/components/sqm-portal-registration-form/sqm-portal-registration-form.d.ts +1 -1
  258. package/dist/types/components/tax-and-cash/TaxForm.stories.d.ts +0 -2
  259. package/dist/types/components/tax-and-cash/sqm-banking-info-form/sqm-banking-info-form-view.d.ts +0 -2
  260. package/dist/types/components/tax-and-cash/sqm-docusign-form/useDocusignForm.d.ts +1 -1
  261. package/dist/types/components/tax-and-cash/sqm-tax-and-cash/data.d.ts +0 -5
  262. package/dist/types/components/tax-and-cash/sqm-tax-and-cash/sqm-tax-and-cash.d.ts +2 -2
  263. package/dist/types/components/tax-and-cash/sqm-tax-and-cash-dashboard/sqm-tax-and-cash-dashboard-view.d.ts +0 -5
  264. package/dist/types/components/tax-and-cash/sqm-tax-and-cash-dashboard/sqm-tax-and-cash-dashboard.d.ts +2 -2
  265. package/dist/types/components.d.ts +108 -591
  266. package/docs/docs.docx +0 -0
  267. package/docs/raisins.json +1 -1
  268. package/grapesjs/grapesjs.js +1 -1
  269. package/package.json +2 -2
  270. package/dist/cjs/extractProps-fd93ba62.js +0 -21
  271. package/dist/cjs/keys-cff24974.js +0 -11
  272. package/dist/cjs/sqm-code-verification.cjs.entry.js +0 -345
  273. package/dist/cjs/sqm-email-verification.cjs.entry.js +0 -283
  274. package/dist/cjs/sqm-scroll.cjs.entry.js +0 -109
  275. package/dist/cjs/sqm-widget-verification-internal.cjs.entry.js +0 -103
  276. package/dist/cjs/sqm-widget-verification.cjs.entry.js +0 -210
  277. package/dist/cjs/useVerificationEmail-6aacdb71.js +0 -169
  278. package/dist/collection/components/sqm-payout-button-scroll/PayoutButtonScroll.stories.js +0 -8
  279. package/dist/collection/components/sqm-payout-button-scroll/sqm-payout-button-scroll-view.js +0 -23
  280. package/dist/collection/components/sqm-payout-button-scroll/sqm-payout-button-scroll.js +0 -118
  281. package/dist/collection/components/sqm-payout-button-scroll/usePayoutButton.js +0 -44
  282. package/dist/collection/components/sqm-widget-verification/keys.js +0 -4
  283. package/dist/collection/components/sqm-widget-verification/sqm-code-verification/WidgetCodeVerification.stories.js +0 -36
  284. package/dist/collection/components/sqm-widget-verification/sqm-code-verification/sqm-code-verification-view.js +0 -128
  285. package/dist/collection/components/sqm-widget-verification/sqm-code-verification/sqm-code-verification.js +0 -301
  286. package/dist/collection/components/sqm-widget-verification/sqm-code-verification/useCodeVerification.js +0 -156
  287. package/dist/collection/components/sqm-widget-verification/sqm-email-verification/WidgetEmailVerification.stories.js +0 -42
  288. package/dist/collection/components/sqm-widget-verification/sqm-email-verification/sqm-email-verification-view.js +0 -91
  289. package/dist/collection/components/sqm-widget-verification/sqm-email-verification/sqm-email-verification.js +0 -226
  290. package/dist/collection/components/sqm-widget-verification/sqm-email-verification/useEmailVerification.js +0 -126
  291. package/dist/collection/components/sqm-widget-verification/sqm-widget-verification-internal.js +0 -339
  292. package/dist/collection/components/sqm-widget-verification/sqm-widget-verification.js +0 -557
  293. package/dist/collection/components/sqm-widget-verification/useVerificationEmail.js +0 -165
  294. package/dist/collection/components/tax-and-cash/sqm-payout-status-alert/PayoutStatusAlert.stories.js +0 -22
  295. package/dist/collection/components/tax-and-cash/sqm-payout-status-alert/sqm-payout-status-alert-view.js +0 -116
  296. package/dist/collection/components/tax-and-cash/sqm-payout-status-alert/sqm-payout-status-alert.js +0 -354
  297. package/dist/collection/components/tax-and-cash/sqm-payout-status-alert/usePayoutStatus.js +0 -65
  298. package/dist/esm/extractProps-ae1afbb3.js +0 -19
  299. package/dist/esm/keys-db1897ae.js +0 -6
  300. package/dist/esm/sqm-code-verification.entry.js +0 -341
  301. package/dist/esm/sqm-email-verification.entry.js +0 -279
  302. package/dist/esm/sqm-scroll.entry.js +0 -105
  303. package/dist/esm/sqm-widget-verification-internal.entry.js +0 -99
  304. package/dist/esm/sqm-widget-verification.entry.js +0 -206
  305. package/dist/esm/useVerificationEmail-c32696ba.js +0 -167
  306. package/dist/esm-es5/ShadowViewAddon-69b61037.js +0 -1
  307. package/dist/esm-es5/extractProps-ae1afbb3.js +0 -1
  308. package/dist/esm-es5/index.module-6c840c4e.js +0 -1
  309. package/dist/esm-es5/keys-db1897ae.js +0 -1
  310. package/dist/esm-es5/sqm-code-verification.entry.js +0 -1
  311. package/dist/esm-es5/sqm-email-verification.entry.js +0 -1
  312. package/dist/esm-es5/sqm-invoice-table-view-e9075c0b.js +0 -1
  313. package/dist/esm-es5/sqm-navigation-sidebar-item-view-f8e78810.js +0 -1
  314. package/dist/esm-es5/sqm-scroll.entry.js +0 -1
  315. package/dist/esm-es5/sqm-widget-verification-internal.entry.js +0 -1
  316. package/dist/esm-es5/sqm-widget-verification.entry.js +0 -1
  317. package/dist/esm-es5/useInstantAccessRegistration-8b0a4556.js +0 -1
  318. package/dist/esm-es5/useRegistrationFormState-849e27f7.js +0 -1
  319. package/dist/esm-es5/useVerificationEmail-c32696ba.js +0 -1
  320. package/dist/mint-components/p-0c9ad5f3.system.entry.js +0 -1
  321. package/dist/mint-components/p-1649ee1e.entry.js +0 -240
  322. package/dist/mint-components/p-1712a9fd.entry.js +0 -11
  323. package/dist/mint-components/p-1b861be5.entry.js +0 -1
  324. package/dist/mint-components/p-1e616d45.system.js +0 -1
  325. package/dist/mint-components/p-26468242.js +0 -1
  326. package/dist/mint-components/p-2868f475.entry.js +0 -1
  327. package/dist/mint-components/p-3925bcd6.entry.js +0 -13
  328. package/dist/mint-components/p-39840341.js +0 -1
  329. package/dist/mint-components/p-39e412e8.system.entry.js +0 -1
  330. package/dist/mint-components/p-4364001c.entry.js +0 -12
  331. package/dist/mint-components/p-54ffae13.entry.js +0 -194
  332. package/dist/mint-components/p-5a23b560.system.entry.js +0 -1
  333. package/dist/mint-components/p-63ac51e1.system.entry.js +0 -1
  334. package/dist/mint-components/p-64491210.system.entry.js +0 -1
  335. package/dist/mint-components/p-8690f682.system.js +0 -1
  336. package/dist/mint-components/p-93576222.system.js +0 -1
  337. package/dist/mint-components/p-947fe79b.entry.js +0 -1
  338. package/dist/mint-components/p-9596e97c.system.entry.js +0 -1
  339. package/dist/mint-components/p-974070c4.system.entry.js +0 -1
  340. package/dist/mint-components/p-99c15c5e.entry.js +0 -1
  341. package/dist/mint-components/p-9d34f4f0.entry.js +0 -33
  342. package/dist/mint-components/p-a4282d02.system.entry.js +0 -1
  343. package/dist/mint-components/p-a85f57bb.entry.js +0 -1
  344. package/dist/mint-components/p-a8645c1b.system.js +0 -1
  345. package/dist/mint-components/p-b1e8a802.entry.js +0 -1
  346. package/dist/mint-components/p-b2a99637.system.js +0 -1
  347. package/dist/mint-components/p-bdd6bb13.js +0 -1
  348. package/dist/mint-components/p-c3b37bbf.js +0 -1
  349. package/dist/mint-components/p-c510fb88.entry.js +0 -1
  350. package/dist/mint-components/p-c92a743e.entry.js +0 -1
  351. package/dist/mint-components/p-c9fb6102.entry.js +0 -1
  352. package/dist/mint-components/p-ca809fdd.system.js +0 -1
  353. package/dist/mint-components/p-d238372a.system.entry.js +0 -1
  354. package/dist/mint-components/p-d7806f31.js +0 -48
  355. package/dist/mint-components/p-def516b8.system.js +0 -1
  356. package/dist/mint-components/p-e01ac27c.system.js +0 -1
  357. package/dist/mint-components/p-e45a8501.system.entry.js +0 -1
  358. package/dist/mint-components/p-ead27698.system.entry.js +0 -1
  359. package/dist/mint-components/p-f340214f.entry.js +0 -25
  360. package/dist/mint-components/p-f55060db.js +0 -1
  361. package/dist/mint-components/p-f655a7df.js +0 -1
  362. package/dist/mint-components/p-fffc3590.entry.js +0 -9
  363. package/dist/types/components/sqm-payout-button-scroll/PayoutButtonScroll.stories.d.ts +0 -5
  364. package/dist/types/components/sqm-payout-button-scroll/sqm-payout-button-scroll-view.d.ts +0 -10
  365. package/dist/types/components/sqm-payout-button-scroll/sqm-payout-button-scroll.d.ts +0 -26
  366. package/dist/types/components/sqm-payout-button-scroll/usePayoutButton.d.ts +0 -7
  367. package/dist/types/components/sqm-widget-verification/keys.d.ts +0 -4
  368. package/dist/types/components/sqm-widget-verification/sqm-code-verification/WidgetCodeVerification.stories.d.ts +0 -9
  369. package/dist/types/components/sqm-widget-verification/sqm-code-verification/sqm-code-verification-view.d.ts +0 -26
  370. package/dist/types/components/sqm-widget-verification/sqm-code-verification/sqm-code-verification.d.ts +0 -54
  371. package/dist/types/components/sqm-widget-verification/sqm-code-verification/useCodeVerification.d.ts +0 -25
  372. package/dist/types/components/sqm-widget-verification/sqm-email-verification/WidgetEmailVerification.stories.d.ts +0 -10
  373. package/dist/types/components/sqm-widget-verification/sqm-email-verification/sqm-email-verification-view.d.ts +0 -21
  374. package/dist/types/components/sqm-widget-verification/sqm-email-verification/sqm-email-verification.d.ts +0 -40
  375. package/dist/types/components/sqm-widget-verification/sqm-email-verification/useEmailVerification.d.ts +0 -10
  376. package/dist/types/components/sqm-widget-verification/sqm-widget-verification-internal.d.ts +0 -20
  377. package/dist/types/components/sqm-widget-verification/sqm-widget-verification.d.ts +0 -87
  378. package/dist/types/components/sqm-widget-verification/useVerificationEmail.d.ts +0 -14
  379. package/dist/types/components/tax-and-cash/sqm-payout-status-alert/PayoutStatusAlert.stories.d.ts +0 -10
  380. package/dist/types/components/tax-and-cash/sqm-payout-status-alert/sqm-payout-status-alert-view.d.ts +0 -30
  381. package/dist/types/components/tax-and-cash/sqm-payout-status-alert/sqm-payout-status-alert.d.ts +0 -62
  382. package/dist/types/components/tax-and-cash/sqm-payout-status-alert/usePayoutStatus.d.ts +0 -19
@@ -1,12 +1,12 @@
1
1
  import { h, r as registerInstance, c as Host } from './index-17b4da69.js';
2
2
  import { a as commonjsGlobal, u as useMemo, k as useState, f as useEffect, c as createCommonjsModule, n as h$1 } from './stencil-hooks.module-ac12ca1c.js';
3
- import './global-6306a9b8.js';
4
- import { x as xn, j as jn, a as setUserIdentity, d as dist, o as an, p as setProgramId } from './index.module-6c840c4e.js';
3
+ import './global-04c7d3b5.js';
4
+ import { $ as $n, S as Sn, b as setUserIdentity, d as dist, X as Xe, o as setProgramId } from './index.module-def4aec5.js';
5
5
  import './cjs-bdfb4486.js';
6
6
  import './mixins-f60a614c.js';
7
7
  import { c as createStyleSheet } from './JSS-67b5cff8.js';
8
8
  import { G as GenericTableView } from './GenericTableView-d59d8ab4.js';
9
- import './useChildElements-fc84e640.js';
9
+ import './useChildElements-32e1bda1.js';
10
10
  import { l as luxon } from './luxon-7600be8d.js';
11
11
  import './utils-334c1e34.js';
12
12
  import './sqm-text-span-view-8d140661.js';
@@ -17,16 +17,17 @@ import { E as EmailRegistrationView } from './email-registration-view-a89a88bf.j
17
17
  import { L as LeaderboardRankView } from './sqm-leaderboard-rank-view-10657658.js';
18
18
  import { L as LogoutCurrentUserView } from './sqm-logout-current-user-view-2c6122cd.js';
19
19
  import { N as NavigationSidebarView } from './sqm-navigation-sidebar-view-0312e073.js';
20
- import { N as NavigationSidebarItemView } from './sqm-navigation-sidebar-item-view-f8e78810.js';
21
- import { P as PortalEmailVerificationView } from './sqm-portal-email-verification-view-c6ac5430.js';
20
+ import { N as NavigationSidebarItemView } from './sqm-navigation-sidebar-item-view-60ef06cc.js';
21
+ import { P as PortalEmailVerificationView } from './sqm-portal-email-verification-view-4307c992.js';
22
22
  import { P as PortalForgotPasswordView } from './sqm-portal-forgot-password-view-c2ed8fed.js';
23
- import { P as PortalProfileView } from './sqm-portal-profile-view-15ddbec8.js';
24
- import './utilities-443732be.js';
23
+ import { P as PortalProfileView } from './sqm-portal-profile-view-ffe955c8.js';
24
+ import './utilities-3f5bba22.js';
25
+ import { P as PortalRegistrationFormView } from './sqm-portal-registration-form-view-1d3066e1.js';
25
26
  import { P as PortalResetPasswordView } from './sqm-portal-reset-password-view-79a85e02.js';
26
27
  import { P as PortalVerifyEmailView } from './sqm-portal-verify-email-view-d7ea2c56.js';
27
- import { S as ShareButtonView, L as LeaderboardView, C as CopyTextView, B as BigStatView, P as PortalFrameView, E as EditProfileView, u as useShareLink, a as useShareButton, b as useDemoBigStat, c as StatContainerView, d as PortalChangePasswordView, e as PortalLoginView, f as PortalRegisterView, T as TaskCardView, g as ProgressBarView, h as PoweredByImg$1, i as PortalFooterView, H as HeroView, R as ReferralIframeView, N as NameFieldsView, j as CheckboxFieldView, D as DropdownFieldView, I as InputFieldView, k as RewardExchangeView, r as rewardExchangeCustomErrorMsg, l as rewardExchangeLongText, m as rewardExchangeSelected, n as chooseAmountFixed, o as chooseAmountFixedNoDescription, p as chooseAmountVariable, q as chooseAmountVariableNoDescription, s as chooseAmountVariableDisabled, t as chooseAmountVariableUnavailable, v as confirmFixed, w as confirmVariable, x as redemptionError, y as queryError, z as success, A as successVariable, F as loading, G as empty$1, J as rewardExchange, K as CardFeedView, M as CouponCodeView, O as ProgressBar$2, Q as autoColorScaleCss, U as ShadowViewAddon } from './ShadowViewAddon-69b61037.js';
28
+ import { S as ShareButtonView, L as LeaderboardView, C as CopyTextView, B as BigStatView, P as PortalFrameView, E as EditProfileView, u as useShareLink, a as useShareButton, b as useDemoBigStat, c as StatContainerView, d as PortalChangePasswordView, e as PortalLoginView, f as PortalRegisterView, T as TaskCardView, g as ProgressBarView, h as PoweredByImg$1, i as PortalFooterView, H as HeroView, R as ReferralIframeView, N as NameFieldsView, j as CheckboxFieldView, D as DropdownFieldView, I as InputFieldView, k as RewardExchangeView, r as rewardExchangeCustomErrorMsg, l as rewardExchangeLongText, m as rewardExchangeSelected, n as chooseAmountFixed, o as chooseAmountFixedNoDescription, p as chooseAmountVariable, q as chooseAmountVariableNoDescription, s as chooseAmountVariableDisabled, t as chooseAmountVariableUnavailable, v as confirmFixed, w as confirmVariable, x as redemptionError, y as queryError, z as success, A as successVariable, F as loading, G as empty$1, J as rewardExchange, K as CardFeedView, M as CouponCodeView, O as ProgressBar$2, Q as autoColorScaleCss, U as ShadowViewAddon } from './ShadowViewAddon-e012b2aa.js';
28
29
  import { P as PortalContainerView, a as PortalSectionView } from './sqm-portal-container-view-6c582684.js';
29
- import { O as OtherRegionSlotView, I as InvoiceTableView, T as TaxForm } from './sqm-invoice-table-view-e9075c0b.js';
30
+ import { O as OtherRegionSlotView, I as InvoiceTableView, T as TaxForm } from './sqm-invoice-table-view-6e13a323.js';
30
31
 
31
32
  /**
32
33
  * lodash (Custom Build) <https://lodash.com/>
@@ -2535,36 +2536,36 @@ const routes = `
2535
2536
  `;
2536
2537
  const TemplateNavigation = createHookStory(() => {
2537
2538
  return (h("div", null,
2538
- h("button", { onClick: () => xn.push("/") }, "/"),
2539
- h("button", { onClick: () => xn.push("/foo") }, "/foo"),
2540
- h("button", { onClick: () => xn.push("/bar") }, "/bar"),
2541
- h("button", { onClick: () => xn.push("/baz/bang") }, "/baz/bang"),
2542
- h("button", { onClick: () => xn.push("/refer") }, "/refer"),
2543
- h("button", { onClick: () => xn.push("/refer/1") }, "/refer/1"),
2544
- h("button", { onClick: () => xn.push("/refer/2") }, "/refer/2"),
2545
- h("button", { onClick: () => xn.back() }, "Back"),
2546
- h("button", { onClick: () => xn.forward() }, "Forward"),
2539
+ h("button", { onClick: () => $n.push("/") }, "/"),
2540
+ h("button", { onClick: () => $n.push("/foo") }, "/foo"),
2541
+ h("button", { onClick: () => $n.push("/bar") }, "/bar"),
2542
+ h("button", { onClick: () => $n.push("/baz/bang") }, "/baz/bang"),
2543
+ h("button", { onClick: () => $n.push("/refer") }, "/refer"),
2544
+ h("button", { onClick: () => $n.push("/refer/1") }, "/refer/1"),
2545
+ h("button", { onClick: () => $n.push("/refer/2") }, "/refer/2"),
2546
+ h("button", { onClick: () => $n.back() }, "Back"),
2547
+ h("button", { onClick: () => $n.forward() }, "Forward"),
2547
2548
  h("hr", null),
2548
2549
  h("sqm-router", { innerHTML: templates })));
2549
2550
  });
2550
2551
  const RouteNavigation = createHookStory(() => {
2551
2552
  return (h("div", null,
2552
- h("button", { onClick: () => xn.push("/") }, "/"),
2553
- h("button", { onClick: () => xn.push("/foo") }, "/foo"),
2554
- h("button", { onClick: () => xn.push("/bar") }, "/bar"),
2555
- h("button", { onClick: () => xn.push("/baz/bang") }, "/baz/bang"),
2556
- h("button", { onClick: () => xn.push("/refer") }, "/refer"),
2557
- h("button", { onClick: () => xn.push("/refer/1") }, "/refer/1"),
2558
- h("button", { onClick: () => xn.push("/refer/2") }, "/refer/2"),
2559
- h("button", { onClick: () => xn.back() }, "Back"),
2560
- h("button", { onClick: () => xn.forward() }, "Forward"),
2553
+ h("button", { onClick: () => $n.push("/") }, "/"),
2554
+ h("button", { onClick: () => $n.push("/foo") }, "/foo"),
2555
+ h("button", { onClick: () => $n.push("/bar") }, "/bar"),
2556
+ h("button", { onClick: () => $n.push("/baz/bang") }, "/baz/bang"),
2557
+ h("button", { onClick: () => $n.push("/refer") }, "/refer"),
2558
+ h("button", { onClick: () => $n.push("/refer/1") }, "/refer/1"),
2559
+ h("button", { onClick: () => $n.push("/refer/2") }, "/refer/2"),
2560
+ h("button", { onClick: () => $n.back() }, "Back"),
2561
+ h("button", { onClick: () => $n.forward() }, "Forward"),
2561
2562
  h("hr", null),
2562
2563
  h("sqm-router", { innerHTML: routes })));
2563
2564
  });
2564
2565
  const Styling = createHookStory(() => {
2565
2566
  return (h("div", null,
2566
- h("button", { onClick: () => xn.push("/") }, "/"),
2567
- h("button", { onClick: () => xn.push("/foo") }, "/foo"),
2567
+ h("button", { onClick: () => $n.push("/") }, "/"),
2568
+ h("button", { onClick: () => $n.push("/foo") }, "/foo"),
2568
2569
  h("hr", null),
2569
2570
  h("div", { style: { display: "flex", justifyContent: "space-around" } },
2570
2571
  h("sqm-router", { innerHTML: `<template path="/">
@@ -2578,7 +2579,7 @@ function useTemplate(templateString) {
2578
2579
  const [previewTemplate, setPreviewTemplate] = useState(templateString);
2579
2580
  function setPath(e) {
2580
2581
  //@ts-ignore
2581
- xn.push(e.target.value);
2582
+ $n.push(e.target.value);
2582
2583
  }
2583
2584
  return {
2584
2585
  states: { previewTemplate, editedTemplate },
@@ -2742,8 +2743,8 @@ const FullStackFrame = () => {
2742
2743
  "Current path:",
2743
2744
  " ",
2744
2745
  h("code", null,
2745
- h("strong", null, (_a = jn()) === null || _a === void 0 ? void 0 : _a.pathname))),
2746
- h("button", { onClick: xn.back }, "Go Back")));
2746
+ h("strong", null, (_a = Sn()) === null || _a === void 0 ? void 0 : _a.pathname))),
2747
+ h("button", { onClick: $n.back }, "Go Back")));
2747
2748
  };
2748
2749
  const FullStackFrameLoggedOut = () => {
2749
2750
  var _a;
@@ -2767,8 +2768,8 @@ const FullStackFrameLoggedOut = () => {
2767
2768
  "Current path:",
2768
2769
  " ",
2769
2770
  h("code", null,
2770
- h("strong", null, (_a = jn()) === null || _a === void 0 ? void 0 : _a.pathname))),
2771
- h("button", { onClick: xn.back }, "Go Back")));
2771
+ h("strong", null, (_a = Sn()) === null || _a === void 0 ? void 0 : _a.pathname))),
2772
+ h("button", { onClick: $n.back }, "Go Back")));
2772
2773
  };
2773
2774
 
2774
2775
  const PortalFrame = /*#__PURE__*/Object.freeze({
@@ -3495,7 +3496,7 @@ function useExchangeButton() {
3495
3496
  const { id, accountId } = setupGraphQL$6();
3496
3497
  const [points, setPoints] = useState(10);
3497
3498
  const [rate, setRate] = useState(100);
3498
- const [exchange, { data, errors }] = an(EXCHANGE);
3499
+ const [exchange, { data, errors }] = Xe(EXCHANGE);
3499
3500
  return {
3500
3501
  states: {
3501
3502
  points,
@@ -4096,16 +4097,16 @@ function DefaultTemplateView(props) {
4096
4097
  gridTemplateColumns: "repeat(9, 80px)",
4097
4098
  gridGap: "10px",
4098
4099
  } },
4099
- h("button", { onClick: () => xn.push("/") }, "Dashboard"),
4100
- props.leadSubmit && (h("button", { onClick: () => xn.push("/refer") }, "Submit a Referral")),
4101
- h("button", { onClick: () => xn.push("/activity") }, "Activity"),
4102
- h("button", { onClick: () => xn.push("/editProfile") }, "Edit Profile"),
4103
- h("button", { onClick: () => xn.push("/login") }, "Login"),
4104
- h("button", { onClick: () => xn.push("/register") }, "Register"),
4105
- h("button", { onClick: () => xn.push("/emailVerification") }, "Email Verification"),
4106
- h("button", { onClick: () => xn.push("/verifyEmail") }, "Verify Email"),
4107
- h("button", { onClick: () => xn.push("/forgotPassword") }, "Forgot Password"),
4108
- h("button", { onClick: () => xn.push("/resetPassword") }, "Reset Password")),
4100
+ h("button", { onClick: () => $n.push("/") }, "Dashboard"),
4101
+ props.leadSubmit && (h("button", { onClick: () => $n.push("/refer") }, "Submit a Referral")),
4102
+ h("button", { onClick: () => $n.push("/activity") }, "Activity"),
4103
+ h("button", { onClick: () => $n.push("/editProfile") }, "Edit Profile"),
4104
+ h("button", { onClick: () => $n.push("/login") }, "Login"),
4105
+ h("button", { onClick: () => $n.push("/register") }, "Register"),
4106
+ h("button", { onClick: () => $n.push("/emailVerification") }, "Email Verification"),
4107
+ h("button", { onClick: () => $n.push("/verifyEmail") }, "Verify Email"),
4108
+ h("button", { onClick: () => $n.push("/forgotPassword") }, "Forgot Password"),
4109
+ h("button", { onClick: () => $n.push("/resetPassword") }, "Reset Password")),
4109
4110
  h("br", null),
4110
4111
  h("div", { innerHTML: states.previewTemplate })));
4111
4112
  }
@@ -7417,6 +7418,126 @@ const PortalRegister = /*#__PURE__*/Object.freeze({
7417
7418
  TermsAndConditions: TermsAndConditions
7418
7419
  });
7419
7420
 
7421
+ const PortalRegistrationForm_stories = {
7422
+ title: "Components/Microsite Register Form New",
7423
+ };
7424
+ const defaultProps$4 = {
7425
+ states: {
7426
+ error: "",
7427
+ loading: false,
7428
+ confirmPassword: true,
7429
+ hideInputs: false,
7430
+ loginPath: "/login",
7431
+ },
7432
+ callbacks: {
7433
+ submit: () => console.log("Submit!"),
7434
+ inputFunction: () => { },
7435
+ },
7436
+ refs: {
7437
+ formRef: {},
7438
+ },
7439
+ content: { pageLabel: "Register", confirmPasswordLabel: "Confirm Password" },
7440
+ };
7441
+ const errorProps$2 = {
7442
+ states: {
7443
+ error: "Something went wrong. Please try again.",
7444
+ loading: false,
7445
+ confirmPassword: true,
7446
+ hideInputs: false,
7447
+ loginPath: "/login",
7448
+ },
7449
+ callbacks: {
7450
+ submit: () => console.log("Submit!"),
7451
+ inputFunction: () => { },
7452
+ },
7453
+ refs: {
7454
+ formRef: {},
7455
+ },
7456
+ content: {
7457
+ pageLabel: "Register",
7458
+ confirmPasswordLabel: "Confirm Password",
7459
+ },
7460
+ };
7461
+ const loadingProps$2 = {
7462
+ states: {
7463
+ error: "",
7464
+ loading: true,
7465
+ confirmPassword: true,
7466
+ hideInputs: false,
7467
+ loginPath: "/login",
7468
+ },
7469
+ callbacks: {
7470
+ submit: () => console.log("Submit!"),
7471
+ inputFunction: () => { },
7472
+ },
7473
+ refs: {
7474
+ formRef: {},
7475
+ },
7476
+ content: { pageLabel: "Register", confirmPasswordLabel: "Confirm Password" },
7477
+ };
7478
+ const slottedProps$1 = {
7479
+ states: {
7480
+ error: "",
7481
+ loading: false,
7482
+ confirmPassword: true,
7483
+ hideInputs: false,
7484
+ loginPath: "/login",
7485
+ },
7486
+ callbacks: {
7487
+ submit: () => console.log("Submit!"),
7488
+ inputFunction: () => { },
7489
+ },
7490
+ refs: {
7491
+ formRef: {},
7492
+ },
7493
+ content: {
7494
+ pageLabel: "Register",
7495
+ confirmPasswordLabel: "Confirm Password",
7496
+ formData: (h("div", null,
7497
+ h("sl-input", { style: { marginBottom: "var(--sl-spacing-x-large)" }, exportparts: "label: input-label, base: input-base", label: "Slotted Input", required: true }),
7498
+ h("sl-input", { exportparts: "label: input-label, base: input-base", label: "Slotted Input 2", required: true }))),
7499
+ },
7500
+ };
7501
+ const Default$4 = () => h(PortalRegistrationFormView, Object.assign({}, defaultProps$4));
7502
+ const RegisterWithError$1 = () => (h(PortalRegistrationFormView, Object.assign({}, errorProps$2)));
7503
+ const RegisterLoading$1 = () => (h(PortalRegistrationFormView, Object.assign({}, loadingProps$2)));
7504
+ const FieldsHidden$1 = () => {
7505
+ return (h("sqm-portal-register", { demoData: {
7506
+ states: {
7507
+ error: "",
7508
+ loading: true,
7509
+ registrationFormState: {},
7510
+ confirmPassword: true,
7511
+ hideInputs: true,
7512
+ loginPath: "/login",
7513
+ },
7514
+ } }));
7515
+ };
7516
+ const SlottedInputs$1 = () => (h(PortalRegistrationFormView, Object.assign({}, slottedProps$1)));
7517
+ const RegisterWithMarketingEmailsCheckbox = () => (h(PortalRegistrationFormView, Object.assign({}, defaultProps$4, { content: {
7518
+ ...defaultProps$4.content,
7519
+ emailOptIn: (h("sqm-checkbox-field", { checkboxLabel: "I would like to receive marketing and promotional emails for this referral program" })),
7520
+ } })));
7521
+ const TermsAndConditions$1 = () => (h(PortalRegistrationFormView, Object.assign({}, defaultProps$4, { content: {
7522
+ ...defaultProps$4.content,
7523
+ terms: (h("p", null,
7524
+ "By signing up you agree to the",
7525
+ " ",
7526
+ h("a", { href: "https://example.com", target: "_blank" }, "Terms and Conditions"))),
7527
+ } })));
7528
+
7529
+ const NewPortalRegistrationForm = /*#__PURE__*/Object.freeze({
7530
+ __proto__: null,
7531
+ 'default': PortalRegistrationForm_stories,
7532
+ Default: Default$4,
7533
+ RegisterWithError: RegisterWithError$1,
7534
+ RegisterLoading: RegisterLoading$1,
7535
+ FieldsHidden: FieldsHidden$1,
7536
+ SlottedInputs: SlottedInputs$1,
7537
+ RegisterWithMarketingEmailsCheckbox: RegisterWithMarketingEmailsCheckbox,
7538
+ TermsAndConditions: TermsAndConditions$1
7539
+ });
7540
+
7420
7541
  const scenario$6 = "@author:derek\n@owner:ian\nFeature: Forgot Password\n\n @motivating\n Scenario: Users can request to reset their password\n Given a user enters their email address\n And that email address is linked to a previously created account\n When they click \"Reset Password\"\n Then the button enters a loading state\n When the password reset email is sent\n Then a confirmation banner is shown stating a password reset email was sent\n\n @motivating\n Scenario: Users are notified if sending their password reset email fails\n Given a user enters their email address\n And that email address is linked to a previously created account\n When they click \"Reset Password\"\n Then the button enters a loading state\n When the password reset email fails to send\n Then the user does not receive a password reset email\n And an error banner is shown stating that they should try again\n\n @motivating\n @landmine\n Scenario: If the input email is not associated to an account a success banner is shown but an email is not be sent\n Given the user entered an email address that is not associated to an accoun\n When they click \"Reset Password\"\n Then the button enters a loading state\n But no email is sent\n And a success banner is shown stating a password reset email was sent if the given email was associated to an account\n\n @motivating\n Scenario: Users can resend password reset email\n Given a user had previously requested to reset their password\n When they enter their email address\n And that email address is linked to a previously created account\n And they click \"Reset Password\"\n Then the user receives a second password reset email\n And a success banner is shown stating that their email was sent\n\n @motivating\n Scenario Outline: The email link can be configured to redirect users to a specific base path but defaults to \"/resetPassword\"\n Given a user viewing the password reset component\n And the component <mayHave> \"redirect-path\" with <value>\n When they request a password reset email\n And they click the link in the email\n Then they are redirected to <redirectPath>\n Examples:\n | mayHave | value | redirectPath |\n | doesn't have | N/A | /resetPassword |\n | has | /resetMyPassword | /resetMyPassword |\n\n @minutia\n Scenario Outline: Navigation back to the login page can be customized but defaults to \"/login\"\n Given a user viewing the password reset component\n And the component <mayHave> \"login-path\" with <value>\n Then they see a \"Sign In\" text button\n When they click \"Sign In\"\n Then they are redirected to <redirectPath>\n Examples:\n | mayHave | value | redirectPath |\n | doesn't have | N/A | /login |\n | has | /signin | /signin |";
7421
7542
 
7422
7543
  const PortalForgotPassword_stories = {
@@ -7425,7 +7546,7 @@ const PortalForgotPassword_stories = {
7425
7546
  scenario: scenario$6,
7426
7547
  },
7427
7548
  };
7428
- const defaultProps$4 = {
7549
+ const defaultProps$5 = {
7429
7550
  states: {
7430
7551
  error: "",
7431
7552
  loading: false,
@@ -7440,7 +7561,7 @@ const defaultProps$4 = {
7440
7561
  messageSlot: "Enter your email below to receive a password reset link.",
7441
7562
  },
7442
7563
  };
7443
- const errorProps$2 = {
7564
+ const errorProps$3 = {
7444
7565
  states: {
7445
7566
  error: "Something went wrong. Please try again.",
7446
7567
  loading: false,
@@ -7455,7 +7576,7 @@ const errorProps$2 = {
7455
7576
  messageSlot: "Enter your email below to receive a password reset link.",
7456
7577
  },
7457
7578
  };
7458
- const loadingProps$2 = {
7579
+ const loadingProps$3 = {
7459
7580
  states: {
7460
7581
  error: "",
7461
7582
  loading: true,
@@ -7485,15 +7606,15 @@ const successProps = {
7485
7606
  messageSlot: "Enter your email below to receive a password reset link.",
7486
7607
  },
7487
7608
  };
7488
- const Default$4 = () => h(PortalForgotPasswordView, Object.assign({}, defaultProps$4));
7489
- const ForgotPasswordWithError = () => (h(PortalForgotPasswordView, Object.assign({}, errorProps$2)));
7490
- const ForgotPasswordLoading = () => (h(PortalForgotPasswordView, Object.assign({}, loadingProps$2)));
7609
+ const Default$5 = () => h(PortalForgotPasswordView, Object.assign({}, defaultProps$5));
7610
+ const ForgotPasswordWithError = () => (h(PortalForgotPasswordView, Object.assign({}, errorProps$3)));
7611
+ const ForgotPasswordLoading = () => (h(PortalForgotPasswordView, Object.assign({}, loadingProps$3)));
7491
7612
  const ForgotPasswordSuccess = () => (h(PortalForgotPasswordView, Object.assign({}, successProps)));
7492
7613
 
7493
7614
  const PortalForgotPassword = /*#__PURE__*/Object.freeze({
7494
7615
  __proto__: null,
7495
7616
  'default': PortalForgotPassword_stories,
7496
- Default: Default$4,
7617
+ Default: Default$5,
7497
7618
  ForgotPasswordWithError: ForgotPasswordWithError,
7498
7619
  ForgotPasswordLoading: ForgotPasswordLoading,
7499
7620
  ForgotPasswordSuccess: ForgotPasswordSuccess
@@ -7526,12 +7647,12 @@ const defaultStates = {
7526
7647
  loadingVerification: false,
7527
7648
  countdown: 10,
7528
7649
  };
7529
- const defaultProps$5 = {
7650
+ const defaultProps$6 = {
7530
7651
  states: defaultStates,
7531
7652
  callbacks: defaultCallbacks,
7532
7653
  content: defaultContent,
7533
7654
  };
7534
- const errorProps$3 = {
7655
+ const errorProps$4 = {
7535
7656
  states: {
7536
7657
  ...defaultStates,
7537
7658
  error: "Something went wrong. Please try again.",
@@ -7539,7 +7660,7 @@ const errorProps$3 = {
7539
7660
  callbacks: defaultCallbacks,
7540
7661
  content: defaultContent,
7541
7662
  };
7542
- const loadingProps$3 = {
7663
+ const loadingProps$4 = {
7543
7664
  states: {
7544
7665
  ...defaultStates,
7545
7666
  loading: true,
@@ -7564,16 +7685,16 @@ const loadingVerificationProps = {
7564
7685
  callbacks: defaultCallbacks,
7565
7686
  content: defaultContent,
7566
7687
  };
7567
- const Default$5 = () => h(PortalEmailVerificationView, Object.assign({}, defaultProps$5));
7568
- const EmailVerificationWithError = () => (h(PortalEmailVerificationView, Object.assign({}, errorProps$3)));
7569
- const EmailVerificationLoading = () => (h(PortalEmailVerificationView, Object.assign({}, loadingProps$3)));
7688
+ const Default$6 = () => h(PortalEmailVerificationView, Object.assign({}, defaultProps$6));
7689
+ const EmailVerificationWithError = () => (h(PortalEmailVerificationView, Object.assign({}, errorProps$4)));
7690
+ const EmailVerificationLoading = () => (h(PortalEmailVerificationView, Object.assign({}, loadingProps$4)));
7570
7691
  const EmailVerificationCheckingVerification = () => (h(PortalEmailVerificationView, Object.assign({}, loadingVerificationProps)));
7571
7692
  const EmailVerificationSuccess = () => (h(PortalEmailVerificationView, Object.assign({}, successProps$1)));
7572
7693
 
7573
7694
  const PortalEmailVerification = /*#__PURE__*/Object.freeze({
7574
7695
  __proto__: null,
7575
7696
  'default': PortalEmailVerification_stories,
7576
- Default: Default$5,
7697
+ Default: Default$6,
7577
7698
  EmailVerificationWithError: EmailVerificationWithError,
7578
7699
  EmailVerificationLoading: EmailVerificationLoading,
7579
7700
  EmailVerificationCheckingVerification: EmailVerificationCheckingVerification,
@@ -7588,7 +7709,7 @@ const PortalResetPassword_stories = {
7588
7709
  scenario: scenario$8,
7589
7710
  },
7590
7711
  };
7591
- const defaultProps$6 = {
7712
+ const defaultProps$7 = {
7592
7713
  states: {
7593
7714
  error: "",
7594
7715
  loading: false,
@@ -7634,7 +7755,7 @@ const defaultPropsNoConfirm = {
7634
7755
  failed: () => console.log("failed"),
7635
7756
  },
7636
7757
  };
7637
- const errorProps$4 = {
7758
+ const errorProps$5 = {
7638
7759
  states: {
7639
7760
  error: "Something went wrong. Please try again.",
7640
7761
  loading: false,
@@ -7657,7 +7778,7 @@ const errorProps$4 = {
7657
7778
  failed: () => console.log("failed"),
7658
7779
  },
7659
7780
  };
7660
- const loadingProps$4 = {
7781
+ const loadingProps$5 = {
7661
7782
  states: {
7662
7783
  error: "",
7663
7784
  loading: true,
@@ -7726,17 +7847,17 @@ const validatingCodeProps = {
7726
7847
  failed: () => console.log("failed"),
7727
7848
  },
7728
7849
  };
7729
- const Default$6 = () => h(PortalResetPasswordView, Object.assign({}, defaultProps$6));
7850
+ const Default$7 = () => h(PortalResetPasswordView, Object.assign({}, defaultProps$7));
7730
7851
  const DefaultWithoutConfirmField = () => (h(PortalResetPasswordView, Object.assign({}, defaultPropsNoConfirm)));
7731
- const ResetPasswordWithError = () => (h(PortalResetPasswordView, Object.assign({}, errorProps$4)));
7732
- const ResetPasswordLoading = () => (h(PortalResetPasswordView, Object.assign({}, loadingProps$4)));
7852
+ const ResetPasswordWithError = () => (h(PortalResetPasswordView, Object.assign({}, errorProps$5)));
7853
+ const ResetPasswordLoading = () => (h(PortalResetPasswordView, Object.assign({}, loadingProps$5)));
7733
7854
  const ResetPasswordSuccess = () => (h(PortalResetPasswordView, Object.assign({}, successProps$2)));
7734
7855
  const CodeValidating = () => (h(PortalResetPasswordView, Object.assign({}, validatingCodeProps)));
7735
7856
 
7736
7857
  const PortalResetPassword = /*#__PURE__*/Object.freeze({
7737
7858
  __proto__: null,
7738
7859
  'default': PortalResetPassword_stories,
7739
- Default: Default$6,
7860
+ Default: Default$7,
7740
7861
  DefaultWithoutConfirmField: DefaultWithoutConfirmField,
7741
7862
  ResetPasswordWithError: ResetPasswordWithError,
7742
7863
  ResetPasswordLoading: ResetPasswordLoading,
@@ -7752,7 +7873,7 @@ const PortalVerifyEmail_stories = {
7752
7873
  scenario: scenario$9,
7753
7874
  },
7754
7875
  };
7755
- const errorProps$5 = {
7876
+ const errorProps$6 = {
7756
7877
  states: {
7757
7878
  error: "Something went wrong. Please try again.",
7758
7879
  loading: false,
@@ -7786,7 +7907,7 @@ const verifiedProps = {
7786
7907
  },
7787
7908
  content: {},
7788
7909
  };
7789
- const EmailVerificationWithError$1 = () => (h(PortalVerifyEmailView, Object.assign({}, errorProps$5)));
7910
+ const EmailVerificationWithError$1 = () => (h(PortalVerifyEmailView, Object.assign({}, errorProps$6)));
7790
7911
  const EmailVerificationSuccess$1 = () => (h(PortalVerifyEmailView, Object.assign({}, verifiedProps)));
7791
7912
 
7792
7913
  const PortalVerifyEmail = /*#__PURE__*/Object.freeze({
@@ -7799,7 +7920,7 @@ const PortalVerifyEmail = /*#__PURE__*/Object.freeze({
7799
7920
  const AssetCard_stories = {
7800
7921
  title: "Components/Asset Card",
7801
7922
  };
7802
- const Default$7 = () => {
7923
+ const Default$8 = () => {
7803
7924
  const props = {
7804
7925
  text: { titleText: "Marketing Banner" },
7805
7926
  imgUrl: "https://res.cloudinary.com/saasquatch/image/upload/v1634255445/squatch-assets/Copy_of_saasquatch-logo-tree-large-horizontal.png",
@@ -7827,7 +7948,7 @@ const CardWithNoImg = () => {
7827
7948
  const AssetCard = /*#__PURE__*/Object.freeze({
7828
7949
  __proto__: null,
7829
7950
  'default': AssetCard_stories,
7830
- Default: Default$7,
7951
+ Default: Default$8,
7831
7952
  CardWithLongText: CardWithLongText,
7832
7953
  CardWithNoImg: CardWithNoImg
7833
7954
  });
@@ -7916,7 +8037,7 @@ const ChangePassword_stories = {
7916
8037
  scenario: scenario$a,
7917
8038
  },
7918
8039
  };
7919
- const defaultProps$7 = {
8040
+ const defaultProps$8 = {
7920
8041
  states: {
7921
8042
  open: false,
7922
8043
  loading: false,
@@ -7960,7 +8081,7 @@ const openProps = {
7960
8081
  submit: (e) => console.log("Submit", e),
7961
8082
  },
7962
8083
  };
7963
- const errorProps$6 = {
8084
+ const errorProps$7 = {
7964
8085
  states: {
7965
8086
  open: true,
7966
8087
  loading: false,
@@ -8004,7 +8125,7 @@ const passwordErrorProps = {
8004
8125
  submit: (e) => console.log("Submit", e),
8005
8126
  },
8006
8127
  };
8007
- const loadingProps$5 = {
8128
+ const loadingProps$6 = {
8008
8129
  states: {
8009
8130
  open: true,
8010
8131
  loading: true,
@@ -8048,17 +8169,17 @@ const successProps$3 = {
8048
8169
  submit: (e) => console.log("Submit", e),
8049
8170
  },
8050
8171
  };
8051
- const Default$8 = () => h(PortalChangePasswordView, Object.assign({}, defaultProps$7));
8172
+ const Default$9 = () => h(PortalChangePasswordView, Object.assign({}, defaultProps$8));
8052
8173
  const Open = () => h(PortalChangePasswordView, Object.assign({}, openProps));
8053
- const Error$2 = () => h(PortalChangePasswordView, Object.assign({}, errorProps$6));
8174
+ const Error$2 = () => h(PortalChangePasswordView, Object.assign({}, errorProps$7));
8054
8175
  const PaswordError = () => (h(PortalChangePasswordView, Object.assign({}, passwordErrorProps)));
8055
- const Loading$1 = () => h(PortalChangePasswordView, Object.assign({}, loadingProps$5));
8176
+ const Loading$1 = () => h(PortalChangePasswordView, Object.assign({}, loadingProps$6));
8056
8177
  const Success = () => h(PortalChangePasswordView, Object.assign({}, successProps$3));
8057
8178
 
8058
8179
  const ChangePassword = /*#__PURE__*/Object.freeze({
8059
8180
  __proto__: null,
8060
8181
  'default': ChangePassword_stories,
8061
- Default: Default$8,
8182
+ Default: Default$9,
8062
8183
  Open: Open,
8063
8184
  Error: Error$2,
8064
8185
  PaswordError: PaswordError,
@@ -8069,7 +8190,7 @@ const ChangePassword = /*#__PURE__*/Object.freeze({
8069
8190
  const PortalProfile_stories = {
8070
8191
  title: "Components/Microsite Profile",
8071
8192
  };
8072
- const defaultProps$8 = {
8193
+ const defaultProps$9 = {
8073
8194
  states: {
8074
8195
  success: false,
8075
8196
  loading: false,
@@ -8141,7 +8262,7 @@ const noCountry = {
8141
8262
  onChange: (e) => console.log(e),
8142
8263
  },
8143
8264
  };
8144
- const loadingProps$6 = {
8265
+ const loadingProps$7 = {
8145
8266
  states: {
8146
8267
  success: false,
8147
8268
  loading: true,
@@ -8213,7 +8334,7 @@ const disabledProps = {
8213
8334
  onChange: (e) => console.log(e),
8214
8335
  },
8215
8336
  };
8216
- const errorProps$7 = {
8337
+ const errorProps$8 = {
8217
8338
  states: {
8218
8339
  success: false,
8219
8340
  loading: false,
@@ -8285,17 +8406,17 @@ const successProps$4 = {
8285
8406
  onChange: (e) => console.log(e),
8286
8407
  },
8287
8408
  };
8288
- const Default$9 = () => h(PortalProfileView, Object.assign({}, defaultProps$8));
8409
+ const Default$a = () => h(PortalProfileView, Object.assign({}, defaultProps$9));
8289
8410
  const DefaultNoCountry = () => h(PortalProfileView, Object.assign({}, noCountry));
8290
- const Loading$2 = () => h(PortalProfileView, Object.assign({}, loadingProps$6));
8411
+ const Loading$2 = () => h(PortalProfileView, Object.assign({}, loadingProps$7));
8291
8412
  const Disabled$1 = () => h(PortalProfileView, Object.assign({}, disabledProps));
8292
- const Error$3 = () => h(PortalProfileView, Object.assign({}, errorProps$7));
8413
+ const Error$3 = () => h(PortalProfileView, Object.assign({}, errorProps$8));
8293
8414
  const Success$1 = () => h(PortalProfileView, Object.assign({}, successProps$4));
8294
8415
 
8295
8416
  const PortalProfile = /*#__PURE__*/Object.freeze({
8296
8417
  __proto__: null,
8297
8418
  'default': PortalProfile_stories,
8298
- Default: Default$9,
8419
+ Default: Default$a,
8299
8420
  DefaultNoCountry: DefaultNoCountry,
8300
8421
  Loading: Loading$2,
8301
8422
  Disabled: Disabled$1,
@@ -10255,7 +10376,7 @@ const ProgramMenu = /*#__PURE__*/Object.freeze({
10255
10376
  const PoweredByImg_stories = {
10256
10377
  title: "Powered By",
10257
10378
  };
10258
- const Default$a = () => {
10379
+ const Default$b = () => {
10259
10380
  return h(PoweredByImg$1, null);
10260
10381
  };
10261
10382
  const CustomColor = () => {
@@ -10268,7 +10389,7 @@ const CustomWidthAndHeight = () => {
10268
10389
  const PoweredByImg = /*#__PURE__*/Object.freeze({
10269
10390
  __proto__: null,
10270
10391
  'default': PoweredByImg_stories,
10271
- Default: Default$a,
10392
+ Default: Default$b,
10272
10393
  CustomColor: CustomColor,
10273
10394
  CustomWidthAndHeight: CustomWidthAndHeight
10274
10395
  });
@@ -10281,7 +10402,7 @@ const PortalFooter_stories = {
10281
10402
  scenario: scenario$f,
10282
10403
  },
10283
10404
  };
10284
- const defaultProps$9 = {
10405
+ const defaultProps$a = {
10285
10406
  supportEmail: "support@example.com",
10286
10407
  supportText: "For program support, contact {email}",
10287
10408
  hidePoweredBy: false,
@@ -10291,12 +10412,12 @@ const defaultProps$9 = {
10291
10412
  paddingBottom: "large",
10292
10413
  paddingLeft: "large",
10293
10414
  };
10294
- const DefaultFooter = () => h(PortalFooterView, Object.assign({}, defaultProps$9));
10295
- const FooterWithTerms = () => (h(PortalFooterView, Object.assign({}, defaultProps$9, { termsLink: "https://example.com", termsText: "Terms and Conditions" })));
10296
- const FooterWithFAQ = () => (h(PortalFooterView, Object.assign({}, defaultProps$9, { faqLink: "https://example.com", faqText: "FAQ" })));
10297
- const FooterWithTermsAndFAQ = () => (h(PortalFooterView, Object.assign({}, defaultProps$9, { termsLink: "https://example.com", termsText: "Terms and Conditions", faqLink: "https://example.com", faqText: "FAQ" })));
10298
- const FooterNoPoweredBy = () => (h(PortalFooterView, Object.assign({}, defaultProps$9, { termsLink: "https://example.com", termsText: "Terms and Conditions", faqLink: "https://example.com", faqText: "FAQ", hidePoweredBy: true })));
10299
- const FooterNoSupportText = () => (h(PortalFooterView, Object.assign({}, defaultProps$9, { termsLink: "https://example.com", termsText: "Terms and Conditions", faqLink: "https://example.com", faqText: "FAQ", hideSupportText: true })));
10415
+ const DefaultFooter = () => h(PortalFooterView, Object.assign({}, defaultProps$a));
10416
+ const FooterWithTerms = () => (h(PortalFooterView, Object.assign({}, defaultProps$a, { termsLink: "https://example.com", termsText: "Terms and Conditions" })));
10417
+ const FooterWithFAQ = () => (h(PortalFooterView, Object.assign({}, defaultProps$a, { faqLink: "https://example.com", faqText: "FAQ" })));
10418
+ const FooterWithTermsAndFAQ = () => (h(PortalFooterView, Object.assign({}, defaultProps$a, { termsLink: "https://example.com", termsText: "Terms and Conditions", faqLink: "https://example.com", faqText: "FAQ" })));
10419
+ const FooterNoPoweredBy = () => (h(PortalFooterView, Object.assign({}, defaultProps$a, { termsLink: "https://example.com", termsText: "Terms and Conditions", faqLink: "https://example.com", faqText: "FAQ", hidePoweredBy: true })));
10420
+ const FooterNoSupportText = () => (h(PortalFooterView, Object.assign({}, defaultProps$a, { termsLink: "https://example.com", termsText: "Terms and Conditions", faqLink: "https://example.com", faqText: "FAQ", hideSupportText: true })));
10300
10421
 
10301
10422
  const PortalFooter = /*#__PURE__*/Object.freeze({
10302
10423
  __proto__: null,
@@ -10578,7 +10699,7 @@ const props$1 = {
10578
10699
  },
10579
10700
  },
10580
10701
  };
10581
- const errorProps$8 = {
10702
+ const errorProps$9 = {
10582
10703
  states: {
10583
10704
  registrationFormState: {
10584
10705
  validationErrors: {
@@ -10596,7 +10717,7 @@ const NameFields = () => {
10596
10717
  return h(NameFieldsView, Object.assign({}, props$1));
10597
10718
  };
10598
10719
  const NameFieldsWithErrors = () => {
10599
- return h(NameFieldsView, Object.assign({}, errorProps$8));
10720
+ return h(NameFieldsView, Object.assign({}, errorProps$9));
10600
10721
  };
10601
10722
 
10602
10723
  const NameFields$1 = /*#__PURE__*/Object.freeze({
@@ -10614,7 +10735,7 @@ const CheckboxField_stories = {
10614
10735
  scenario: scenario$j,
10615
10736
  },
10616
10737
  };
10617
- const defaultProps$a = {
10738
+ const defaultProps$b = {
10618
10739
  states: {
10619
10740
  registrationFormState: {
10620
10741
  validationErrors: {},
@@ -10655,35 +10776,35 @@ const defaultRegisterProps = {
10655
10776
  invalidEmailErrorMessage: "Must be a valid email address",
10656
10777
  },
10657
10778
  };
10658
- const Default$b = createHookStory(() => (h(CheckboxFieldView, Object.assign({}, defaultProps$a))));
10659
- const DefaultChecked = createHookStory(() => (h(CheckboxFieldView, Object.assign({}, defaultProps$a, { states: {
10660
- ...defaultProps$a.states,
10779
+ const Default$c = createHookStory(() => (h(CheckboxFieldView, Object.assign({}, defaultProps$b))));
10780
+ const DefaultChecked = createHookStory(() => (h(CheckboxFieldView, Object.assign({}, defaultProps$b, { states: {
10781
+ ...defaultProps$b.states,
10661
10782
  checked: true,
10662
10783
  } }))));
10663
- const CustomLabel = createHookStory(() => (h(CheckboxFieldView, Object.assign({}, defaultProps$a, { content: {
10664
- ...defaultProps$a.content,
10784
+ const CustomLabel = createHookStory(() => (h(CheckboxFieldView, Object.assign({}, defaultProps$b, { content: {
10785
+ ...defaultProps$b.content,
10665
10786
  checkboxLabel: "I Agree",
10666
10787
  } }))));
10667
- const Error$4 = createHookStory(() => (h(CheckboxFieldView, Object.assign({}, defaultProps$a, { states: {
10668
- ...defaultProps$a.states,
10788
+ const Error$4 = createHookStory(() => (h(CheckboxFieldView, Object.assign({}, defaultProps$b, { states: {
10789
+ ...defaultProps$b.states,
10669
10790
  registrationFormState: {
10670
10791
  validationErrors: {
10671
10792
  agree: "Must be checked",
10672
10793
  },
10673
10794
  },
10674
10795
  } }))));
10675
- const CustomError = createHookStory(() => (h(CheckboxFieldView, Object.assign({}, defaultProps$a, { states: {
10676
- ...defaultProps$a.states,
10796
+ const CustomError = createHookStory(() => (h(CheckboxFieldView, Object.assign({}, defaultProps$b, { states: {
10797
+ ...defaultProps$b.states,
10677
10798
  registrationFormState: {
10678
10799
  validationErrors: {
10679
10800
  agree: "Must be checked",
10680
10801
  },
10681
10802
  },
10682
10803
  }, content: {
10683
- ...defaultProps$a.content,
10804
+ ...defaultProps$b.content,
10684
10805
  errorMessage: "This checkbox must be checked to continue",
10685
10806
  } }))));
10686
- const TermsAndConditions$1 = createHookStory(() => (h(PortalRegisterView, Object.assign({}, defaultRegisterProps, {
10807
+ const TermsAndConditions$2 = createHookStory(() => (h(PortalRegisterView, Object.assign({}, defaultRegisterProps, {
10687
10808
  //@ts-ignore
10688
10809
  content: {
10689
10810
  ...defaultRegisterProps.content,
@@ -10710,16 +10831,34 @@ const TermsAndConditionsLongCustomLabel = createHookStory(() => (h(PortalRegiste
10710
10831
  const CheckboxField = /*#__PURE__*/Object.freeze({
10711
10832
  __proto__: null,
10712
10833
  'default': CheckboxField_stories,
10713
- Default: Default$b,
10834
+ Default: Default$c,
10714
10835
  DefaultChecked: DefaultChecked,
10715
10836
  CustomLabel: CustomLabel,
10716
10837
  Error: Error$4,
10717
10838
  CustomError: CustomError,
10718
- TermsAndConditions: TermsAndConditions$1,
10839
+ TermsAndConditions: TermsAndConditions$2,
10719
10840
  TermsAndConditionsCustomLabel: TermsAndConditionsCustomLabel,
10720
10841
  TermsAndConditionsLongCustomLabel: TermsAndConditionsLongCustomLabel
10721
10842
  });
10722
10843
 
10844
+ const scenario$k = "@owner:zach\n@author:zach\nFeature: Marketing Emails Checkbox\n\n A checkbox that is used to opt in for referral program marketing emails.\n\n Background: A user is on the portal registration page\n Given a user is viewing the \"/register\"\n And \"/register\" contains the registration form\n And the registration form has the following fields\n | fields |\n | first name |\n | last name |\n | email |\n | password |\n | Marketing Emails Checkbox |\n \n @motivating\n Scenario: Checkbox is optional by default\n Given the user is filling out the registration form\n And the name fields have valid input\n And the email field has valid input\n And the password field has valid input\n And the checkbox is not checked\n When they try to register\n Then the form is submitted\n And there is no error for the checkbox\n\n Scenario: The form field name is provided by default\n Given the customer has added a marketing emails checkbox to their registration form\n Then the field name is automatically set to \"marketing-emails\"\n And the name is configurable \n\n\n\n ";
10845
+
10846
+ const MarketingEmailsCheckbox_stories = {
10847
+ title: "Components/Marketing Emails Checkbox",
10848
+ parameters: {
10849
+ scenario: scenario$k,
10850
+ },
10851
+ };
10852
+ const Default$d = () => {
10853
+ return h("sqm-marketing-emails-checkbox", null);
10854
+ };
10855
+
10856
+ const MarketingEmailsCheckbox = /*#__PURE__*/Object.freeze({
10857
+ __proto__: null,
10858
+ 'default': MarketingEmailsCheckbox_stories,
10859
+ Default: Default$d
10860
+ });
10861
+
10723
10862
  const UseCheckboxField_stories = {
10724
10863
  title: "Hooks / useCheckboxField",
10725
10864
  parameters: {
@@ -10749,7 +10888,7 @@ function setupGraphQL$9() {
10749
10888
  }, []);
10750
10889
  return { id, accountId };
10751
10890
  }
10752
- const TermsAndConditions$2 = createHookStory(() => {
10891
+ const TermsAndConditions$3 = createHookStory(() => {
10753
10892
  setupGraphQL$9();
10754
10893
  return (h("sqm-portal-register", null,
10755
10894
  h("div", { slot: "terms" },
@@ -10787,7 +10926,7 @@ const MissingName = createHookStory(() => {
10787
10926
  const UseCheckboxField = /*#__PURE__*/Object.freeze({
10788
10927
  __proto__: null,
10789
10928
  'default': UseCheckboxField_stories,
10790
- TermsAndConditions: TermsAndConditions$2,
10929
+ TermsAndConditions: TermsAndConditions$3,
10791
10930
  TermsAndConditionsWithLabel: TermsAndConditionsWithLabel,
10792
10931
  MultipleCheckboxes: MultipleCheckboxes,
10793
10932
  OptionalCheckboxes: OptionalCheckboxes,
@@ -10797,7 +10936,7 @@ const UseCheckboxField = /*#__PURE__*/Object.freeze({
10797
10936
  const DropdownField_stories = {
10798
10937
  title: "Components/Dropdown Field",
10799
10938
  };
10800
- const defaultProps$b = {
10939
+ const defaultProps$c = {
10801
10940
  states: {
10802
10941
  registrationFormState: {},
10803
10942
  },
@@ -10812,24 +10951,24 @@ const defaultProps$b = {
10812
10951
  ],
10813
10952
  },
10814
10953
  };
10815
- const Default$c = createHookStory(() => (h(DropdownFieldView, Object.assign({}, defaultProps$b))));
10816
- const CustomLabel$1 = createHookStory(() => (h(DropdownFieldView, Object.assign({}, defaultProps$b, { content: {
10817
- ...defaultProps$b.content,
10954
+ const Default$e = createHookStory(() => (h(DropdownFieldView, Object.assign({}, defaultProps$c))));
10955
+ const CustomLabel$1 = createHookStory(() => (h(DropdownFieldView, Object.assign({}, defaultProps$c, { content: {
10956
+ ...defaultProps$c.content,
10818
10957
  dropdownLabel: "Pick your favorite",
10819
10958
  } }))));
10820
- const Error$5 = createHookStory(() => (h(DropdownFieldView, Object.assign({}, defaultProps$b, { states: {
10821
- ...defaultProps$b.states,
10959
+ const Error$5 = createHookStory(() => (h(DropdownFieldView, Object.assign({}, defaultProps$c, { states: {
10960
+ ...defaultProps$c.states,
10822
10961
  registrationFormState: {
10823
10962
  validationErrors: {
10824
10963
  options: "Must select an option",
10825
10964
  },
10826
10965
  },
10827
10966
  } }))));
10828
- const CustomError$1 = createHookStory(() => (h(DropdownFieldView, Object.assign({}, defaultProps$b, { content: {
10829
- ...defaultProps$b.content,
10967
+ const CustomError$1 = createHookStory(() => (h(DropdownFieldView, Object.assign({}, defaultProps$c, { content: {
10968
+ ...defaultProps$c.content,
10830
10969
  errorMessage: "An option must be selected to continue",
10831
10970
  }, states: {
10832
- ...defaultProps$b.states,
10971
+ ...defaultProps$c.states,
10833
10972
  registrationFormState: {
10834
10973
  validationErrors: {
10835
10974
  options: "Must select an option",
@@ -10840,7 +10979,7 @@ const CustomError$1 = createHookStory(() => (h(DropdownFieldView, Object.assign(
10840
10979
  const DropdownField = /*#__PURE__*/Object.freeze({
10841
10980
  __proto__: null,
10842
10981
  'default': DropdownField_stories,
10843
- Default: Default$c,
10982
+ Default: Default$e,
10844
10983
  CustomLabel: CustomLabel$1,
10845
10984
  Error: Error$5,
10846
10985
  CustomError: CustomError$1
@@ -10905,15 +11044,15 @@ const UseDropdownField = /*#__PURE__*/Object.freeze({
10905
11044
  MissingName: MissingName$1
10906
11045
  });
10907
11046
 
10908
- const scenario$k = "@author:derek\n@owner:derek\nFeature: Form Input Field\n\n This component is used as a custom registration field during registration. The field can be text,\n a date or phone number. A motivating use case is to ask for a users company name, this value would then be mapped\n through the Managed Identity Service and upserted on the user after registration.\n\n Background: A user exists and is viewing the hosted portal registration\n Given a user is viewing \"/register\"\n And \"/register\" contains the registration form\n And the registration form has a custom input field\n\n @motivating\n Scenario Outline: Input fields are required by default but can be optional\n Given the input has prop \"field-optional\" with <value>\n And the input is empty\n When the user tries to register\n Then the input <mayBe> highlighted in red\n And an error message <mayAppear> in red below\n And form submission <mayBe> blocked\n Examples:\n | value | mayBe | mayAppear |\n | false | is | appears |\n | | is | appears |\n | true | isn't | doesn't appear |\n\n @motivating\n Scenario: Input field labels are configurable\n Given the input has prop \"field-label\" with value \"My Custom Input\"\n When the user views the registration form\n Then they see the input field\n And it has label \"My Custom Input\" above the input\n\n @minutia\n Scenario Outline: The validation error message is configurable\n The error message string is evaluated as an ICU string, but currently is provided no context\n Given the input is required\n And it has prop \"error-message\" with <value>\n When the user tries to register\n But they haven't filled in the input\n Then they see <errorMessage> below\n Examples:\n | value | errorMessage |\n | | Cannot be empty |\n | My Custom Message | My Custom Message |\n\n @motivating\n Scenario: Form data attribute name is configurable\n Given the input has prop \"field-name\" with value \"myCustomField\"\n When the user types \"testing testing\" into the input\n And they register\n Then \"testing testing\" is submitted under \"myCustomField\" in the form data\n\n @motivating\n Scenario Outline: The input field is a text input by default\n Given the input <mayHave> prop \"field-type\" with <value>\n When the user views the input field\n Then it is a text input\n Examples:\n | mayHave | value |\n | has | text |\n | doesn't have | |\n\n @motivating\n Scenario: Date type inputs are supported\n Given the input has prop \"field-type\" \"date\"\n When the user views the input field\n Then they see \"mm/dd/yyyy\" as a placeholder\n And they see a calendar icon on the right\n When they start typing a date\n Then it maintains the \"mm/dd/yyyy\" format\n When they click the calendar icon\n Then a dropdown appears\n And they see a calendar\n When they select a date\n Then it is applied to the input\n\n @landmine\n Scenario: The clear text button in the date picker does not clear the date\n Due to an incompatibility between our shoelace version and the browser, the clear funtionality is not supported currently\n Given the input has prop \"field-type\" \"date\"\n And the user has entered a date\n When they click the calendar icon\n And click the 'clear' text button\n Then their selected date is not cleared\n\n @motivating\n Scenario: Phone number type inputs are supported\n Given the input has prop \"field-type\" with value \"tel\"\n When the user starts typing a phone number in the input\n Then it is formatted into the following form \"(XXX) XXX-XXXX\"\n When they pre-fix their phone number with a \"1\"\n Then it is formatted into the following form \"1 (XXX) XXX-XXXX\"\n\n @landmine\n Scenario: Telephone formatting is removed after 10 numbers\n Given a user using a phone number input field\n And they entered their 10 character phone number\n And it was not prefixed with a 1\n When they add another character\n Then the formatting is removed\n\n @landmine\n Scenario Outline: Input values are always recorded as strings in the form data\n Given the input has prop \"field-type\" with <value>\n And it has a \"field-name\"\n When the user inputs <formInput>\n And they register\n Then <formData> is recorded in the form data as a string\n Examples:\n | value | formInput | formData |\n | text | Hello there | Hello there |\n | date | 05/07/2021 | 2021-05-07 |\n | tel | (250) 234-9877 | (250) 234-9877 |\n\n @minutia\n Scenario Outline: The input field component fails fast if a field name isn't provided\n Given the input <mayHave> prop \"field-name\"\n And it <mayHavePropValue>\n When a user views the input\n Then an alert with an error message is displayed in place of the input\n And it has a details section\n When \"More details\" is clicked\n Then the following information is displayed\n | information |\n | component being used |\n | missing attribute(s) |\n Examples:\n | mayBeAnAttribute | mayHavePropValue |\n | doesn't have | N/A |\n | has | \"\" |\n | has | |";
11047
+ const scenario$l = "@author:derek\n@owner:derek\nFeature: Form Input Field\n\n This component is used as a custom registration field during registration. The field can be text,\n a date or phone number. A motivating use case is to ask for a users company name, this value would then be mapped\n through the Managed Identity Service and upserted on the user after registration.\n\n Background: A user exists and is viewing the hosted portal registration\n Given a user is viewing \"/register\"\n And \"/register\" contains the registration form\n And the registration form has a custom input field\n\n @motivating\n Scenario Outline: Input fields are required by default but can be optional\n Given the input has prop \"field-optional\" with <value>\n And the input is empty\n When the user tries to register\n Then the input <mayBe> highlighted in red\n And an error message <mayAppear> in red below\n And form submission <mayBe> blocked\n Examples:\n | value | mayBe | mayAppear |\n | false | is | appears |\n | | is | appears |\n | true | isn't | doesn't appear |\n\n @motivating\n Scenario: Input field labels are configurable\n Given the input has prop \"field-label\" with value \"My Custom Input\"\n When the user views the registration form\n Then they see the input field\n And it has label \"My Custom Input\" above the input\n\n @minutia\n Scenario Outline: The validation error message is configurable\n The error message string is evaluated as an ICU string, but currently is provided no context\n Given the input is required\n And it has prop \"error-message\" with <value>\n When the user tries to register\n But they haven't filled in the input\n Then they see <errorMessage> below\n Examples:\n | value | errorMessage |\n | | Cannot be empty |\n | My Custom Message | My Custom Message |\n\n @motivating\n Scenario: Form data attribute name is configurable\n Given the input has prop \"field-name\" with value \"myCustomField\"\n When the user types \"testing testing\" into the input\n And they register\n Then \"testing testing\" is submitted under \"myCustomField\" in the form data\n\n @motivating\n Scenario Outline: The input field is a text input by default\n Given the input <mayHave> prop \"field-type\" with <value>\n When the user views the input field\n Then it is a text input\n Examples:\n | mayHave | value |\n | has | text |\n | doesn't have | |\n\n @motivating\n Scenario: Date type inputs are supported\n Given the input has prop \"field-type\" \"date\"\n When the user views the input field\n Then they see \"mm/dd/yyyy\" as a placeholder\n And they see a calendar icon on the right\n When they start typing a date\n Then it maintains the \"mm/dd/yyyy\" format\n When they click the calendar icon\n Then a dropdown appears\n And they see a calendar\n When they select a date\n Then it is applied to the input\n\n @landmine\n Scenario: The clear text button in the date picker does not clear the date\n Due to an incompatibility between our shoelace version and the browser, the clear funtionality is not supported currently\n Given the input has prop \"field-type\" \"date\"\n And the user has entered a date\n When they click the calendar icon\n And click the 'clear' text button\n Then their selected date is not cleared\n\n @motivating\n Scenario: Phone number type inputs are supported\n Given the input has prop \"field-type\" with value \"tel\"\n When the user starts typing a phone number in the input\n Then it is formatted into the following form \"(XXX) XXX-XXXX\"\n When they pre-fix their phone number with a \"1\"\n Then it is formatted into the following form \"1 (XXX) XXX-XXXX\"\n\n @landmine\n Scenario: Telephone formatting is removed after 10 numbers\n Given a user using a phone number input field\n And they entered their 10 character phone number\n And it was not prefixed with a 1\n When they add another character\n Then the formatting is removed\n\n @landmine\n Scenario Outline: Input values are always recorded as strings in the form data\n Given the input has prop \"field-type\" with <value>\n And it has a \"field-name\"\n When the user inputs <formInput>\n And they register\n Then <formData> is recorded in the form data as a string\n Examples:\n | value | formInput | formData |\n | text | Hello there | Hello there |\n | date | 05/07/2021 | 2021-05-07 |\n | tel | (250) 234-9877 | (250) 234-9877 |\n\n @minutia\n Scenario Outline: The input field component fails fast if a field name isn't provided\n Given the input <mayHave> prop \"field-name\"\n And it <mayHavePropValue>\n When a user views the input\n Then an alert with an error message is displayed in place of the input\n And it has a details section\n When \"More details\" is clicked\n Then the following information is displayed\n | information |\n | component being used |\n | missing attribute(s) |\n Examples:\n | mayBeAnAttribute | mayHavePropValue |\n | doesn't have | N/A |\n | has | \"\" |\n | has | |";
10909
11048
 
10910
11049
  const InputField_stories = {
10911
11050
  title: "Components/Input Field",
10912
11051
  parameters: {
10913
- scenario: scenario$k,
11052
+ scenario: scenario$l,
10914
11053
  },
10915
11054
  };
10916
- const defaultProps$c = {
11055
+ const defaultProps$d = {
10917
11056
  states: {
10918
11057
  registrationFormState: {
10919
11058
  validationErrors: {},
@@ -10950,21 +11089,21 @@ const defaultRegisterProps$1 = {
10950
11089
  invalidEmailErrorMessage: "Must be a valid email address",
10951
11090
  },
10952
11091
  };
10953
- const Default$d = () => h(InputFieldView, Object.assign({}, defaultProps$c));
10954
- const CustomLabel$2 = () => (h(InputFieldView, Object.assign({}, defaultProps$c, { content: { ...defaultProps$c.content, fieldLabel: "My Label" } })));
10955
- const Error$6 = () => (h(InputFieldView, Object.assign({}, defaultProps$c, { states: {
10956
- ...defaultProps$c.states,
11092
+ const Default$f = () => h(InputFieldView, Object.assign({}, defaultProps$d));
11093
+ const CustomLabel$2 = () => (h(InputFieldView, Object.assign({}, defaultProps$d, { content: { ...defaultProps$d.content, fieldLabel: "My Label" } })));
11094
+ const Error$6 = () => (h(InputFieldView, Object.assign({}, defaultProps$d, { states: {
11095
+ ...defaultProps$d.states,
10957
11096
  registrationFormState: {
10958
11097
  validationErrors: {
10959
11098
  field: "Cannot be empty",
10960
11099
  },
10961
11100
  },
10962
11101
  } })));
10963
- const CustomError$2 = () => (h(InputFieldView, Object.assign({}, defaultProps$c, { content: {
10964
- ...defaultProps$c.content,
11102
+ const CustomError$2 = () => (h(InputFieldView, Object.assign({}, defaultProps$d, { content: {
11103
+ ...defaultProps$d.content,
10965
11104
  errorMessage: "A value must be entered to continue",
10966
11105
  }, states: {
10967
- ...defaultProps$c.states,
11106
+ ...defaultProps$d.states,
10968
11107
  registrationFormState: {
10969
11108
  validationErrors: {
10970
11109
  field: "Cannot be empty",
@@ -10972,27 +11111,27 @@ const CustomError$2 = () => (h(InputFieldView, Object.assign({}, defaultProps$c,
10972
11111
  },
10973
11112
  } })));
10974
11113
  const DateType = () => {
10975
- return (h(InputFieldView, Object.assign({}, defaultProps$c, { content: {
10976
- ...defaultProps$c.content,
11114
+ return (h(InputFieldView, Object.assign({}, defaultProps$d, { content: {
11115
+ ...defaultProps$d.content,
10977
11116
  fieldLabel: "Date",
10978
11117
  fieldType: "date",
10979
11118
  } })));
10980
11119
  };
10981
11120
  const TelType = () => {
10982
- return (h(InputFieldView, Object.assign({}, defaultProps$c, { content: {
10983
- ...defaultProps$c.content,
11121
+ return (h(InputFieldView, Object.assign({}, defaultProps$d, { content: {
11122
+ ...defaultProps$d.content,
10984
11123
  fieldLabel: "Phone Number",
10985
11124
  fieldType: "tel",
10986
11125
  } })));
10987
11126
  };
10988
11127
  const RegistrationField = () => (h(PortalRegisterView, Object.assign({}, defaultRegisterProps$1, { content: {
10989
11128
  ...defaultRegisterProps$1.content,
10990
- formData: h(InputFieldView, Object.assign({}, defaultProps$c)),
11129
+ formData: h(InputFieldView, Object.assign({}, defaultProps$d)),
10991
11130
  } })));
10992
11131
  const RegistrationFieldCustomLabel = () => (h(PortalRegisterView, Object.assign({}, defaultRegisterProps$1, { content: {
10993
11132
  ...defaultRegisterProps$1.content,
10994
- formData: (h(InputFieldView, Object.assign({}, defaultProps$c, { content: {
10995
- ...defaultProps$c.content,
11133
+ formData: (h(InputFieldView, Object.assign({}, defaultProps$d, { content: {
11134
+ ...defaultProps$d.content,
10996
11135
  fieldLabel: "Data",
10997
11136
  } }))),
10998
11137
  } })));
@@ -11000,7 +11139,7 @@ const RegistrationFieldCustomLabel = () => (h(PortalRegisterView, Object.assign(
11000
11139
  const InputField = /*#__PURE__*/Object.freeze({
11001
11140
  __proto__: null,
11002
11141
  'default': InputField_stories,
11003
- Default: Default$d,
11142
+ Default: Default$f,
11004
11143
  CustomLabel: CustomLabel$2,
11005
11144
  Error: Error$6,
11006
11145
  CustomError: CustomError$2,
@@ -11013,7 +11152,7 @@ const InputField = /*#__PURE__*/Object.freeze({
11013
11152
  const UseInputField_stories = {
11014
11153
  title: "Hooks / useInputField",
11015
11154
  parameters: {
11016
- scenario: scenario$k,
11155
+ scenario: scenario$l,
11017
11156
  },
11018
11157
  };
11019
11158
  function setupGraphQL$b() {
@@ -11095,12 +11234,12 @@ const UseInputField = /*#__PURE__*/Object.freeze({
11095
11234
  MissingName: MissingName$2
11096
11235
  });
11097
11236
 
11098
- const scenario$l = "@author:derek\n@owner:derek\nFeature: Reward Exchange List\n\n The Reward Exchange List gives end users the power to exchange their rewards for other rewards.\n It populates a list from the reward exchange rules set up on a given tenant.\n\n Background:\n Given a tenant with reward exchange rules\n\n @motivating\n @ui\n Scenario: The empty state is shown if there are no visible exchanges\n Given a user with no visible exchanges\n When they view the reward exchange\n Then no exchange options are displayed\n And they see an image of a present\n And \"Redeem Rewards\" in bold\n And \"Use your points to redeem rewards once they become available\" below the bolded text\n And the pagination buttons are disabled\n\n @minutia\n @ui\n Scenario: A custom empty state can be provided\n Given a user with no visible exchanges\n And a custom empty state has been supplied in the \"empty\" slot\n When they view the reward exchange\n Then they see the custom empty state\n\n @motivating\n @ui\n Scenario: A Loading Skeleton is displayed when the reward exchange rules are loading\n Given a user\n When they load the reward exchange list\n Then they see a loading Skeleton\n And it has 8 skeleton cards\n When the reward exchange rules have loaded\n Then the skeleton is replaced with reward exchange options\n\n @motivating\n Scenario: An error banner appears when the reward exchange list fails to load\n Given a user trying to view the reward exchange list\n But it fails to load\n Then an error banner is displayed\n And it displays \"Unable to load reward exchange list. Please try again\"\n\n @motivating\n @ui\n Scenario: The exchange progress bar progresses through the exchange process\n Given a user who is eligible for the tenants reward exchange rules\n When they view the reward exchange list\n Then the process bar displays the following elements\n | elements |\n | Step 1 `Rewards` title in black |\n | Step 1 circle with green outline, white fill and number 1 in green |\n | Step 2 `Select` title in grey |\n | Step 2 circle with grey fill and number 2 in white |\n | Step 3 `Confirm` title in grey |\n | Step 3 circle with grey fill and number 3 in white |\n | lines between all steps are greyed out |\n When they continue to the selection page\n Then the progress bar displays the following elements\n | elements |\n | Step 1 `Rewards` title in black |\n | Step 1 circle with white checkmark and green fill |\n | Step 2 `Select` title in black |\n | Step 2 circle with green outline, white fill and number 2 in green |\n | Step 3 `Confirm` title in grey |\n | Step 3 circle with grey fill and number 3 in white |\n | Green line between step 1 and 2 |\n | Grey line between step 2 and 3 |\n When they continue to the confirmation page\n Then the progress bar displays the following elements\n | elements |\n | Step 1 `Rewards` title in black |\n | Step 1 circle with white checkmark and green fill |\n | Step 2 `Select` title in black |\n | Step 2 circle with white checkmark and green fill |\n | Step 3 `Confirm` title in black |\n | Step 3 circle with green outline, white fill and number 3 in green |\n | Green line between all steps |\n When they continue to the redemption page\n Then the progress bar displays the following elements\n | elements |\n | Step 1 `Rewards` title in black |\n | Step 1 circle with white checkmark and green fill |\n | Step 2 `Select` title in black |\n | Step 2 circle with white checkmark and green fill |\n | Step 3 `Confirm` title in black |\n | Step 3 circle with white checkmark and green fill |\n | Green line between all steps |\n\n @motivating\n Scenario: Users must choose a reward exchange option to continue to the selection page\n Given a user who is eligible for the tenants reward exchange rules\n When they view the reward exchange list\n Then the 'Continue' button is disabled\n When they select a reward exchange card\n Then the card is outlined in brand colour with a brand colour cirlcular check box icon in the top right\n And the continue button is no longer disabled\n When they click \"Continue\"\n Then they are brought to the selection page\n\n @motivating\n @ui\n Scenario: Reward exchange rule names and images are used in the reward exchange cards\n Given a tenant reward exchange rule\n And it has name \"My Visa Exchange Rule\"\n And it has an image\n When a user views the reward exchange list\n Then they see a exchange card with title \"My Visa Exchange Rule\"\n And the exchange image on the left hand side of the card\n\n @motivating\n Scenario Outline: Reward exchange source values are displayed on reward exchange cards\n Given a <type> reward exchange rule\n When a user views the reward exchange list\n Then they see <text> under the name on the exchange option cards\n And the pretty values are localized to a user locale\n Examples:\n | type | text |\n | FIXED_GLOBAL_REWARD | the exchange source pretty value |\n | STEPPED_FIXED_GLOBAL_REWARD | the exchange source min pretty value to the source max pretty value |\n | VARIABLE_GLOBAL_REWARD | the exchange source min pretty value to the source max pretty value |\n | VARIABLE_CREDIT_REWARD | the exchange source min pretty value to the source max pretty value |\n\n @motivating\n Scenario Outline: Reward exchange cards can display customized error messages\n Given a reward exchange rule\n And it has <availabilityPredicate>\n And the reward exchange list has prop \"not-available-error\" with <value>\n When the user views the reward exchange list\n Then the card for the reward exchange rule is disabled\n And <message> is displayed\n Examples:\n | availabilityPredicate | value | message |\n | 'champion' in user.segments ? \"NOT_CHAMPION\" : true | {unavailableReasonCode, select, NOT_CHAMPION {Sorry must be a champion!} other {unavailableReasonCode} } | Sorry must be a champion! |\n | user.customFields.purchaseCount < 10 ? \"MORE_PURCHASE\" : true | {unavailableReasonCode, select, MORE_PURCHASE {Complete 10 purchases to unlock} other {unavailableReasonCode} } | Complete 10 purchases to unlock |\n\n @motivating\n Scenario: Exchange options are disabled if they put a user over the W9 limit\n Given a user who is approaching their W9 limit\n And a reward exchange rule\n And its destination reward has a US taxable value that would put the user over their limit\n When they view the reward exchange list\n Then the reward exchange card is disabled\n And a \"US Tax Limit\" error message is displayed on to the right of a exclamation triangle icon\n And the text is orange\n And the icon is orange\n\n @motivating\n Scenario Outline: Exchange options are disabled if a users lacks enough credit to redeem\n Given a <type> reward exchange rule\n But the user lacks enough credit to exchange for it\n When they view the reward exchange list\n Then the reward exchange card is disabled\n And a <text> error message is displayed on to the right of a exclamation triangle icon\n And the text is orange\n And the icon is orange\n Examples:\n | type | text |\n | FIXED_GLOBAL_REWARD | {prettySourceValue} required |\n | STEPPED_FIXED_GLOBAL_REWARD | {prettySourceMinValue} required |\n | VARIABLE_GLOBAL_REWARD | {prettySourceMinValue} required |\n | VARIABLE_CREDIT_REWARD | {prettySourceMinValue} required |\n\n @motivating\n Scenario: Users can go back to the Rewards page from the Select page\n Given a user viewing the Select page\n Then they see a \"Cancel\" text button\n And a \"Continue to confirmation\" brand colour button in the bottom right corner\n When they click \"Cancel\"\n Then they return to the Rewards page\n\n @motivating\n Scenario: Users can go back to the Select Page from the Confirm page\n Given a user viewing the Confirm page\n Then they see a \"Back\" text button\n And a \"Redeem\" brand colour button in the bottom right corner\n When they click \"Back\"\n Then they return to the Select Page\n\n @motivating\n Scenario: Reward rules with visibility predicates that evaluates to false are not shown\n Given a tenant reward exchange rule with visibility predicates that evaluates to false\n When a user views the reward exchange list\n Then they do not see the card for that reward exchange rule\n\n @motivating\n Scenario Outline: Users can choose their reward option for variable rewards on the Select page\n Given a <type> exchange rule\n And it has the following fields\n | fields |\n | name |\n | description |\n | image |\n When a user views the reward exchange list\n And they progress to the Select page for this exchange\n Then they see the exchange rule image on the left hand side\n And on the right hand side they see the following in this order from top to bottom\n | elements |\n | exchange name |\n | exchange description |\n | select list with all exchange options using pretty values, destination reward above source reward |\n Examples:\n | type |\n | STEPPED_FIXED_GLOBAL_REWARD |\n | VARIABLE_GLOBAL_REWARD |\n | VARIABLE_CREDIT_REWARD |\n\n @motivating\n Scenario: Users who selected a fixed exchange rule see exchange information on the Select page\n Given a \"FIXED_GLOBAL_REWARD\" exchange rule\n And it has the following fields\n | fields |\n | name |\n | description |\n | image |\n When a user views the reward exchange list\n And they progress to the Select page for this exchange\n Then they see the exchange rule image on the left hand side\n And on the right hand side they see the following in this order from top to bottom\n | elements |\n | exchange name |\n | exchange source pretty value displayed in brand colour |\n | exchange description |\n\n @motivating\n Scenario Outline: Users selection variable rewards can only select rewards they are eligible to exchange for\n Given a <type> exchange rule\n When a user views the reward exchange list\n And they progress to the Select page for this exchange\n Then they see a drop down with all the reward exchange selections\n When they click on the drop down\n But they are not eligible for all of the exchanges options <dueToReason>\n Then the ineligble options are disabled\n And under the source value is <text>\n Examples:\n | type | dueToReason | text |\n | STEPPED_FIXED_GLOBAL_REWARD | due to insufficent source value | {prettySourceValue} required |\n | VARIABLE_GLOBAL_REWARD | due to insufficent source value | {prettySourceValue} required |\n | VARIABLE_CREDIT_REWARD | due to insufficent source value | {prettySourceValue} required |\n | STEPPED_FIXED_GLOBAL_REWARD | W9 | US Tax Limit |\n | VARIABLE_GLOBAL_REWARD | W9 | US Tax Limit |\n | VARIABLE_CREDIT_REWARD | W9 | US Tax Limit |\n\n @motivating\n Scenario Outline: The Confirm page allows users to view their exchange before committing\n Given a <type> exchange rule\n When a user views the reward exchange list\n And they select the exchange\n And they progress to Confirm page\n Then they see a row with title \"Reward\"\n And it contains the exchange name\n And it contains the exchange image\n And they <maySee> a row with title \"Reward Amount\"\n And it <mayContain> <amountTitle>\n And they see a row with title \"Cost to Redeem\"\n And it contains the source reward pretty value in bolded text\n Examples:\n | type | maySee | mayContain | amountTitle |\n | FIXED_GLOBAL_REWARD | don't | doesn't contain | N/A |\n | VARIABLE_GLOBAL_REWARD | see | contains | the pretty destination value |\n | STEPPED_FIXED_GLOBAL_REWARD | see | contains | the pretty destination value |\n | VARIABLE_CREDIT_REWARD | see | contains | the pretty destination value |\n\n @motivating\n Scenario: An error banner is displayed if an error occurs during redemeption\n Given a user has selected a reward to exchange\n And is on the confirmation page\n When they click \"Redeem\"\n But an error occurs\n Then an error banner appears\n And it contains details about the error\n And the reward exchange is not completed\n\n @motivating\n Scenario: Confetti is displayed when a reward exchange succeeds\n Given a user has selected a reward to exchange\n And they are on the confirmation page\n When they click \"Redeem\"\n And the exchange is successful\n Then they see confetti centered on the success page\n And they see text describing what they exchanged for their new reward\n And they see a \"Done\" brand colour button\n When they click \"Done\"\n Then they see the Rewards page\n\n @motivating\n Scenario: Fuel tank codes are shown when a reward exchange succeeds\n Given a user has selected to exchange for a fuel tank reward\n When they complete the reward exchange\n And are on the success page\n Then they see a textbox with their fuel tank code\n And a clipboard icon\n When they click the clipboard icon\n Then their fuel tank code is copied to their clipboard\n\n @motivating\n Scenario Outline: Users can exchange for any type of reward\n Given a <type> reward exchange rule for a <reward>\n And a user who has enough source credit to exchange for the reward\n When they go through the exchange flow\n And exchange for their reward\n Then their credit is exchanged for the <reward>\n Examples:\n | type | reward |\n | FIXED_GLOBAL_REWARD | gift card |\n | FIXED_GLOBAL_REWARD | fuel tank code |\n | FIXED_GLOBAL_REWARD | discount |\n | FIXED_GLOBAL_REWARD | credit reward |\n | STEPPED_FIXED_GLOBAL_REWARD | gift card |\n | STEPPED_FIXED_GLOBAL_REWARD | discount |\n | STEPPED_FIXED_GLOBAL_REWARD | credit reward |\n | VARIABLE_GLOBAL_REWARD | gift card |\n | VARIABLE_GLOBAL_REWARD | discount |\n | VARIABLE_GLOBAL_REWARD | credit reward |\n | VARIABLE_CREDIT_REWARD | credit reward |";
11237
+ const scenario$m = "@author:derek\n@owner:derek\nFeature: Reward Exchange List\n\n The Reward Exchange List gives end users the power to exchange their rewards for other rewards.\n It populates a list from the reward exchange rules set up on a given tenant.\n\n Background:\n Given a tenant with reward exchange rules\n\n @motivating\n @ui\n Scenario: The empty state is shown if there are no visible exchanges\n Given a user with no visible exchanges\n When they view the reward exchange\n Then no exchange options are displayed\n And they see an image of a present\n And \"Redeem Rewards\" in bold\n And \"Use your points to redeem rewards once they become available\" below the bolded text\n And the pagination buttons are disabled\n\n @minutia\n @ui\n Scenario: A custom empty state can be provided\n Given a user with no visible exchanges\n And a custom empty state has been supplied in the \"empty\" slot\n When they view the reward exchange\n Then they see the custom empty state\n\n @motivating\n @ui\n Scenario: A Loading Skeleton is displayed when the reward exchange rules are loading\n Given a user\n When they load the reward exchange list\n Then they see a loading Skeleton\n And it has 8 skeleton cards\n When the reward exchange rules have loaded\n Then the skeleton is replaced with reward exchange options\n\n @motivating\n Scenario: An error banner appears when the reward exchange list fails to load\n Given a user trying to view the reward exchange list\n But it fails to load\n Then an error banner is displayed\n And it displays \"Unable to load reward exchange list. Please try again\"\n\n @motivating\n @ui\n Scenario: The exchange progress bar progresses through the exchange process\n Given a user who is eligible for the tenants reward exchange rules\n When they view the reward exchange list\n Then the process bar displays the following elements\n | elements |\n | Step 1 `Rewards` title in black |\n | Step 1 circle with green outline, white fill and number 1 in green |\n | Step 2 `Select` title in grey |\n | Step 2 circle with grey fill and number 2 in white |\n | Step 3 `Confirm` title in grey |\n | Step 3 circle with grey fill and number 3 in white |\n | lines between all steps are greyed out |\n When they continue to the selection page\n Then the progress bar displays the following elements\n | elements |\n | Step 1 `Rewards` title in black |\n | Step 1 circle with white checkmark and green fill |\n | Step 2 `Select` title in black |\n | Step 2 circle with green outline, white fill and number 2 in green |\n | Step 3 `Confirm` title in grey |\n | Step 3 circle with grey fill and number 3 in white |\n | Green line between step 1 and 2 |\n | Grey line between step 2 and 3 |\n When they continue to the confirmation page\n Then the progress bar displays the following elements\n | elements |\n | Step 1 `Rewards` title in black |\n | Step 1 circle with white checkmark and green fill |\n | Step 2 `Select` title in black |\n | Step 2 circle with white checkmark and green fill |\n | Step 3 `Confirm` title in black |\n | Step 3 circle with green outline, white fill and number 3 in green |\n | Green line between all steps |\n When they continue to the redemption page\n Then the progress bar displays the following elements\n | elements |\n | Step 1 `Rewards` title in black |\n | Step 1 circle with white checkmark and green fill |\n | Step 2 `Select` title in black |\n | Step 2 circle with white checkmark and green fill |\n | Step 3 `Confirm` title in black |\n | Step 3 circle with white checkmark and green fill |\n | Green line between all steps |\n\n @motivating\n Scenario: Users must choose a reward exchange option to continue to the selection page\n Given a user who is eligible for the tenants reward exchange rules\n When they view the reward exchange list\n Then the 'Continue' button is disabled\n When they select a reward exchange card\n Then the card is outlined in brand colour with a brand colour cirlcular check box icon in the top right\n And the continue button is no longer disabled\n When they click \"Continue\"\n Then they are brought to the selection page\n\n @motivating\n @ui\n Scenario: Reward exchange rule names and images are used in the reward exchange cards\n Given a tenant reward exchange rule\n And it has name \"My Visa Exchange Rule\"\n And it has an image\n When a user views the reward exchange list\n Then they see a exchange card with title \"My Visa Exchange Rule\"\n And the exchange image on the left hand side of the card\n\n @motivating\n Scenario Outline: Reward exchange source values are displayed on reward exchange cards\n Given a <type> reward exchange rule\n When a user views the reward exchange list\n Then they see <text> under the name on the exchange option cards\n And the pretty values are localized to a user locale\n Examples:\n | type | text |\n | FIXED_GLOBAL_REWARD | the exchange source pretty value |\n | STEPPED_FIXED_GLOBAL_REWARD | the exchange source min pretty value to the source max pretty value |\n | VARIABLE_GLOBAL_REWARD | the exchange source min pretty value to the source max pretty value |\n | VARIABLE_CREDIT_REWARD | the exchange source min pretty value to the source max pretty value |\n\n @motivating\n Scenario Outline: Reward exchange cards can display customized error messages\n Given a reward exchange rule\n And it has <availabilityPredicate>\n And the reward exchange list has prop \"not-available-error\" with <value>\n When the user views the reward exchange list\n Then the card for the reward exchange rule is disabled\n And <message> is displayed\n Examples:\n | availabilityPredicate | value | message |\n | 'champion' in user.segments ? \"NOT_CHAMPION\" : true | {unavailableReasonCode, select, NOT_CHAMPION {Sorry must be a champion!} other {unavailableReasonCode} } | Sorry must be a champion! |\n | user.customFields.purchaseCount < 10 ? \"MORE_PURCHASE\" : true | {unavailableReasonCode, select, MORE_PURCHASE {Complete 10 purchases to unlock} other {unavailableReasonCode} } | Complete 10 purchases to unlock |\n\n @motivating\n Scenario: Exchange options are disabled if they put a user over the W9 limit\n Given a user who is approaching their W9 limit\n And a reward exchange rule\n And its destination reward has a US taxable value that would put the user over their limit\n When they view the reward exchange list\n Then the reward exchange card is disabled\n And a \"US Tax Limit\" error message is displayed on to the right of a exclamation triangle icon\n And the text is orange\n And the icon is orange\n\n @motivating\n Scenario Outline: Exchange options are disabled if a users lacks enough credit to redeem\n Given a <type> reward exchange rule\n But the user lacks enough credit to exchange for it\n When they view the reward exchange list\n Then the reward exchange card is disabled\n And a <text> error message is displayed on to the right of a exclamation triangle icon\n And the text is orange\n And the icon is orange\n Examples:\n | type | text |\n | FIXED_GLOBAL_REWARD | {prettySourceValue} required |\n | STEPPED_FIXED_GLOBAL_REWARD | {prettySourceMinValue} required |\n | VARIABLE_GLOBAL_REWARD | {prettySourceMinValue} required |\n | VARIABLE_CREDIT_REWARD | {prettySourceMinValue} required |\n\n @motivating\n Scenario: Users can go back to the Rewards page from the Select page\n Given a user viewing the Select page\n Then they see a \"Cancel\" text button\n And a \"Continue to confirmation\" brand colour button in the bottom right corner\n When they click \"Cancel\"\n Then they return to the Rewards page\n\n @motivating\n Scenario: Users can go back to the Select Page from the Confirm page\n Given a user viewing the Confirm page\n Then they see a \"Back\" text button\n And a \"Redeem\" brand colour button in the bottom right corner\n When they click \"Back\"\n Then they return to the Select Page\n\n @motivating\n Scenario: Reward rules with visibility predicates that evaluates to false are not shown\n Given a tenant reward exchange rule with visibility predicates that evaluates to false\n When a user views the reward exchange list\n Then they do not see the card for that reward exchange rule\n\n @motivating\n Scenario Outline: Users can choose their reward option for variable rewards on the Select page\n Given a <type> exchange rule\n And it has the following fields\n | fields |\n | name |\n | description |\n | image |\n When a user views the reward exchange list\n And they progress to the Select page for this exchange\n Then they see the exchange rule image on the left hand side\n And on the right hand side they see the following in this order from top to bottom\n | elements |\n | exchange name |\n | exchange description |\n | select list with all exchange options using pretty values, destination reward above source reward |\n Examples:\n | type |\n | STEPPED_FIXED_GLOBAL_REWARD |\n | VARIABLE_GLOBAL_REWARD |\n | VARIABLE_CREDIT_REWARD |\n\n @motivating\n Scenario: Users who selected a fixed exchange rule see exchange information on the Select page\n Given a \"FIXED_GLOBAL_REWARD\" exchange rule\n And it has the following fields\n | fields |\n | name |\n | description |\n | image |\n When a user views the reward exchange list\n And they progress to the Select page for this exchange\n Then they see the exchange rule image on the left hand side\n And on the right hand side they see the following in this order from top to bottom\n | elements |\n | exchange name |\n | exchange source pretty value displayed in brand colour |\n | exchange description |\n\n @motivating\n Scenario Outline: Users selection variable rewards can only select rewards they are eligible to exchange for\n Given a <type> exchange rule\n When a user views the reward exchange list\n And they progress to the Select page for this exchange\n Then they see a drop down with all the reward exchange selections\n When they click on the drop down\n But they are not eligible for all of the exchanges options <dueToReason>\n Then the ineligble options are disabled\n And under the source value is <text>\n Examples:\n | type | dueToReason | text |\n | STEPPED_FIXED_GLOBAL_REWARD | due to insufficent source value | {prettySourceValue} required |\n | VARIABLE_GLOBAL_REWARD | due to insufficent source value | {prettySourceValue} required |\n | VARIABLE_CREDIT_REWARD | due to insufficent source value | {prettySourceValue} required |\n | STEPPED_FIXED_GLOBAL_REWARD | W9 | US Tax Limit |\n | VARIABLE_GLOBAL_REWARD | W9 | US Tax Limit |\n | VARIABLE_CREDIT_REWARD | W9 | US Tax Limit |\n\n @motivating\n Scenario Outline: The Confirm page allows users to view their exchange before committing\n Given a <type> exchange rule\n When a user views the reward exchange list\n And they select the exchange\n And they progress to Confirm page\n Then they see a row with title \"Reward\"\n And it contains the exchange name\n And it contains the exchange image\n And they <maySee> a row with title \"Reward Amount\"\n And it <mayContain> <amountTitle>\n And they see a row with title \"Cost to Redeem\"\n And it contains the source reward pretty value in bolded text\n Examples:\n | type | maySee | mayContain | amountTitle |\n | FIXED_GLOBAL_REWARD | don't | doesn't contain | N/A |\n | VARIABLE_GLOBAL_REWARD | see | contains | the pretty destination value |\n | STEPPED_FIXED_GLOBAL_REWARD | see | contains | the pretty destination value |\n | VARIABLE_CREDIT_REWARD | see | contains | the pretty destination value |\n\n @motivating\n Scenario: An error banner is displayed if an error occurs during redemeption\n Given a user has selected a reward to exchange\n And is on the confirmation page\n When they click \"Redeem\"\n But an error occurs\n Then an error banner appears\n And it contains details about the error\n And the reward exchange is not completed\n\n @motivating\n Scenario: Confetti is displayed when a reward exchange succeeds\n Given a user has selected a reward to exchange\n And they are on the confirmation page\n When they click \"Redeem\"\n And the exchange is successful\n Then they see confetti centered on the success page\n And they see text describing what they exchanged for their new reward\n And they see a \"Done\" brand colour button\n When they click \"Done\"\n Then they see the Rewards page\n\n @motivating\n Scenario: Fuel tank codes are shown when a reward exchange succeeds\n Given a user has selected to exchange for a fuel tank reward\n When they complete the reward exchange\n And are on the success page\n Then they see a textbox with their fuel tank code\n And a clipboard icon\n When they click the clipboard icon\n Then their fuel tank code is copied to their clipboard\n\n @motivating\n Scenario Outline: Users can exchange for any type of reward\n Given a <type> reward exchange rule for a <reward>\n And a user who has enough source credit to exchange for the reward\n When they go through the exchange flow\n And exchange for their reward\n Then their credit is exchanged for the <reward>\n Examples:\n | type | reward |\n | FIXED_GLOBAL_REWARD | gift card |\n | FIXED_GLOBAL_REWARD | fuel tank code |\n | FIXED_GLOBAL_REWARD | discount |\n | FIXED_GLOBAL_REWARD | credit reward |\n | STEPPED_FIXED_GLOBAL_REWARD | gift card |\n | STEPPED_FIXED_GLOBAL_REWARD | discount |\n | STEPPED_FIXED_GLOBAL_REWARD | credit reward |\n | VARIABLE_GLOBAL_REWARD | gift card |\n | VARIABLE_GLOBAL_REWARD | discount |\n | VARIABLE_GLOBAL_REWARD | credit reward |\n | VARIABLE_CREDIT_REWARD | credit reward |";
11099
11238
 
11100
11239
  const RewardExchangeList_stories = {
11101
11240
  title: "Components/Reward Exchange List",
11102
11241
  parameters: {
11103
- scenario: scenario$l,
11242
+ scenario: scenario$m,
11104
11243
  },
11105
11244
  };
11106
11245
  const StoryBase = (props) => () => {
@@ -11148,12 +11287,12 @@ const RewardExchangeList = /*#__PURE__*/Object.freeze({
11148
11287
  Empty: Empty$2
11149
11288
  });
11150
11289
 
11151
- const scenario$m = "@author:derek\n@owner:derek\nFeature: Program Explainer\n\n @motivating\n @ui\n Scenario Outline: The program explainer wraps program explainer steps and aligns them\n Given a program explainer component\n And it has <number> program explainer steps as components\n When a user views the program explainer\n Then they see <number> steps aligned horizontally\n And they have equal height/width\n And equal padding in between\n When they are viewed on a screen smaller than 500px\n Then the steps stack vertically with equal padding in between\n And they have equal width\n But height may vary\n Examples:\n | number |\n | 2 |\n | 3 |\n | 4 |\n\n @motivating\n @ui\n Scenario: The program explainer displays a section header\n Given a program explainer step with props\n | prop | value |\n | header | My Header |\n And it has program explainer steps as children\n When a user views the program explainer\n Then they see \"My Header\" centered above the explainer steps\n\n @motivating\n @ui\n Scenario: Colours are customizable\n Given a program explainer with props\n | prop | value |\n | text-color | purple |\n | background-color | grey |\n When a user views the program explainer\n Then the header is purple\n And the background between steos is grey\n";
11290
+ const scenario$n = "@author:derek\n@owner:derek\nFeature: Program Explainer\n\n @motivating\n @ui\n Scenario Outline: The program explainer wraps program explainer steps and aligns them\n Given a program explainer component\n And it has <number> program explainer steps as components\n When a user views the program explainer\n Then they see <number> steps aligned horizontally\n And they have equal height/width\n And equal padding in between\n When they are viewed on a screen smaller than 500px\n Then the steps stack vertically with equal padding in between\n And they have equal width\n But height may vary\n Examples:\n | number |\n | 2 |\n | 3 |\n | 4 |\n\n @motivating\n @ui\n Scenario: The program explainer displays a section header\n Given a program explainer step with props\n | prop | value |\n | header | My Header |\n And it has program explainer steps as children\n When a user views the program explainer\n Then they see \"My Header\" centered above the explainer steps\n\n @motivating\n @ui\n Scenario: Colours are customizable\n Given a program explainer with props\n | prop | value |\n | text-color | purple |\n | background-color | grey |\n When a user views the program explainer\n Then the header is purple\n And the background between steos is grey\n";
11152
11291
 
11153
11292
  const ProgramExplainer_stories = {
11154
11293
  title: "Components/Program Explainer",
11155
11294
  parameters: {
11156
- scenario: scenario$m,
11295
+ scenario: scenario$n,
11157
11296
  },
11158
11297
  };
11159
11298
  const OneStep = () => {
@@ -11209,12 +11348,12 @@ const ProgramExplainer = /*#__PURE__*/Object.freeze({
11209
11348
  ProgramExplainerGeneric: ProgramExplainerGeneric
11210
11349
  });
11211
11350
 
11212
- const scenario$n = "@author:derek\n@owner:derek\nFeature: Program Explainer Step\n\n @motivating\n @ui\n Scenario: The program explainer step displays a icon, header and description\n Given a program explainer step with props\n | prop | value |\n | header | My Header |\n | description | My program explainer description |\n | icon | person-plus-fill |\n When a user views the explainer step\n Then they see an person icon with a + in the top left hand corner\n And the icon is weight 300 brand colour\n And below they see \"My Header\" in large bold font\n And below they see \"My program explainer description\" in medium font\n And the step background colour is weight 50 brand colour\n\n @motivating\n @ui\n Scenario: The program explainer can display an image in place of an icon\n Given a program explainer\n And it has an \"image-url\" prop with a value of a valid url to an image\n When a user views the explainer step\n Then the image is displayed in place of an incon in the top left hand corner\n\n @motivating\n @ui\n Scenario: Colours are customizable\n Given a program explainer step with props\n | prop | value |\n | text-color | purple |\n | background-color | grey |\n When a user views the explainer step\n Then they see the step background is grey\n And the header text is purple\n And the description text is purple\n";
11351
+ const scenario$o = "@author:derek\n@owner:derek\nFeature: Program Explainer Step\n\n @motivating\n @ui\n Scenario: The program explainer step displays a icon, header and description\n Given a program explainer step with props\n | prop | value |\n | header | My Header |\n | description | My program explainer description |\n | icon | person-plus-fill |\n When a user views the explainer step\n Then they see an person icon with a + in the top left hand corner\n And the icon is weight 300 brand colour\n And below they see \"My Header\" in large bold font\n And below they see \"My program explainer description\" in medium font\n And the step background colour is weight 50 brand colour\n\n @motivating\n @ui\n Scenario: The program explainer can display an image in place of an icon\n Given a program explainer\n And it has an \"image-url\" prop with a value of a valid url to an image\n When a user views the explainer step\n Then the image is displayed in place of an incon in the top left hand corner\n\n @motivating\n @ui\n Scenario: Colours are customizable\n Given a program explainer step with props\n | prop | value |\n | text-color | purple |\n | background-color | grey |\n When a user views the explainer step\n Then they see the step background is grey\n And the header text is purple\n And the description text is purple\n";
11213
11352
 
11214
11353
  const ProgramExplainerStep_stories = {
11215
11354
  title: "Components/Program Explainer Step",
11216
11355
  parameters: {
11217
- scenario: scenario$n,
11356
+ scenario: scenario$o,
11218
11357
  },
11219
11358
  };
11220
11359
  const ProgramExplainerStep = () => {
@@ -11231,12 +11370,12 @@ const ProgramExplainerStep$1 = /*#__PURE__*/Object.freeze({
11231
11370
  ProgramExplainerStepCustom: ProgramExplainerStepCustom
11232
11371
  });
11233
11372
 
11234
- const scenario$o = "@author:derek\n@owner:logan\nFeature: Brand Configuration\n\n\t@motivating\n\tScenario: The brand components creates a colour pallet from a brand colour and applies it to children\n\t\tGiven a brand component with \"brand-color\" \"#4225c4\"\n\t\tAnd it is wrapping several mint components\n\t\tWhen a user views the children components\n\t\tThen the following css variables are set\n\t\t\t| variable | value |\n\t\t\t| --sl-color-primary-50 | hsla(251, 68%, 95%, 1) |\n\t\t\t| --sl-color-primary-100 | hsla(251, 68%, 86%, 1) |\n\t\t\t| --sl-color-primary-200 | hsla(251, 68%, 76%, 1) |\n\t\t\t| --sl-color-primary-300 | hsla(251, 68%, 66%, 1) |\n\t\t\t| --sl-color-primary-400 | hsla(251, 68%, 56%, 1) |\n\t\t\t| --sl-color-primary-500 | hsla(251, 68%, 46%, 1) |\n\t\t\t| --sl-color-primary-600 | hsla(251, 68%, 39%, 1) |\n\t\t\t| --sl-color-primary-700 | hsla(251, 68%, 32%, 1) |\n\t\t\t| --sl-color-primary-800 | hsla(251, 68%, 25%, 1) |\n\t\t\t| --sl-color-primary-900 | hsla(251, 68%, 18%, 1) |\n\t\t\t| --sl-color-primary-950 | hsla(251, 68%, 15%, 1) |\n\t\t\t| --sl-focus-ring-color-primary | var(--sl-color-primary-100) |\n\t\t\t| --sl-input-border-color-focus | var(--sl-color-primary-500) |\n\t\t\t| --sl-color-primary-hue | var(--sl-color-primary-500) |\n\t\tAnd they are applied to the children components\n\t\tBut they are not applied to any components outside of the brand component\n\t\tAnd they are not applied to any vanilla components\n\n\t@minutia\n\tScenario Outline: The brand colour can be hex, HSL or rgb\n\t\tGiven a brand component with \"brand-color\" <colour>\n\t\tAnd it is wrapping several mint components\n\t\tWhen a user views the children components\n\t\tThen the colour is used to create a brand palete\n\t\tAnd it is applied to the children components\n\t\tExamples:\n\t\t\t| colour |\n\t\t\t| #4225c4 |\n\t\t\t| rgb(66, 37, 196) |\n\t\t\t| hsl(251, 68%, 46%) |\n\t\t\t| hsla(251, 68%, 46%, 1) |\n\n\t@motivating\n\tScenario: The brand component can apply a brand font to children components\n\t\tGiven a brand component with \"brand-font\" \"Nunito Sans\"\n\t\tAnd it is wrapping several mint components\n\t\tWhen a user views the children components\n\t\tThen the following css variables are set\n\t\t\t| variable | value |\n\t\t\t| --sl-font-sans | \"Nunito Sans\", arial |\n\t\t\t| --sl-input-font-family | \"Nunito Sans\", arial |\n\t\t\t| --sl-tooltip-font-family | \"Nunito Sans\", arial |\n\t\t\t| font-family | \"Nunito Sans\", arial |\n\t\tAnd they are applied to the children components\n\t\tAnd the children component's text is \"Nunito Sans\"";
11373
+ const scenario$p = "@author:derek\n@owner:logan\nFeature: Brand Configuration\n\n\t@motivating\n\tScenario: The brand components creates a colour pallet from a brand colour and applies it to children\n\t\tGiven a brand component with \"brand-color\" \"#4225c4\"\n\t\tAnd it is wrapping several mint components\n\t\tWhen a user views the children components\n\t\tThen the following css variables are set\n\t\t\t| variable | value |\n\t\t\t| --sl-color-primary-50 | hsla(251, 68%, 95%, 1) |\n\t\t\t| --sl-color-primary-100 | hsla(251, 68%, 86%, 1) |\n\t\t\t| --sl-color-primary-200 | hsla(251, 68%, 76%, 1) |\n\t\t\t| --sl-color-primary-300 | hsla(251, 68%, 66%, 1) |\n\t\t\t| --sl-color-primary-400 | hsla(251, 68%, 56%, 1) |\n\t\t\t| --sl-color-primary-500 | hsla(251, 68%, 46%, 1) |\n\t\t\t| --sl-color-primary-600 | hsla(251, 68%, 39%, 1) |\n\t\t\t| --sl-color-primary-700 | hsla(251, 68%, 32%, 1) |\n\t\t\t| --sl-color-primary-800 | hsla(251, 68%, 25%, 1) |\n\t\t\t| --sl-color-primary-900 | hsla(251, 68%, 18%, 1) |\n\t\t\t| --sl-color-primary-950 | hsla(251, 68%, 15%, 1) |\n\t\t\t| --sl-focus-ring-color-primary | var(--sl-color-primary-100) |\n\t\t\t| --sl-input-border-color-focus | var(--sl-color-primary-500) |\n\t\t\t| --sl-color-primary-hue | var(--sl-color-primary-500) |\n\t\tAnd they are applied to the children components\n\t\tBut they are not applied to any components outside of the brand component\n\t\tAnd they are not applied to any vanilla components\n\n\t@minutia\n\tScenario Outline: The brand colour can be hex, HSL or rgb\n\t\tGiven a brand component with \"brand-color\" <colour>\n\t\tAnd it is wrapping several mint components\n\t\tWhen a user views the children components\n\t\tThen the colour is used to create a brand palete\n\t\tAnd it is applied to the children components\n\t\tExamples:\n\t\t\t| colour |\n\t\t\t| #4225c4 |\n\t\t\t| rgb(66, 37, 196) |\n\t\t\t| hsl(251, 68%, 46%) |\n\t\t\t| hsla(251, 68%, 46%, 1) |\n\n\t@motivating\n\tScenario: The brand component can apply a brand font to children components\n\t\tGiven a brand component with \"brand-font\" \"Nunito Sans\"\n\t\tAnd it is wrapping several mint components\n\t\tWhen a user views the children components\n\t\tThen the following css variables are set\n\t\t\t| variable | value |\n\t\t\t| --sl-font-sans | \"Nunito Sans\", arial |\n\t\t\t| --sl-input-font-family | \"Nunito Sans\", arial |\n\t\t\t| --sl-tooltip-font-family | \"Nunito Sans\", arial |\n\t\t\t| font-family | \"Nunito Sans\", arial |\n\t\tAnd they are applied to the children components\n\t\tAnd the children component's text is \"Nunito Sans\"";
11235
11374
 
11236
11375
  const SqmBrand_stories = {
11237
11376
  title: "Components/Brand",
11238
11377
  parameters: {
11239
- scenario: scenario$o,
11378
+ scenario: scenario$p,
11240
11379
  },
11241
11380
  };
11242
11381
  const SampleComponents = () => (h("div", { style: { padding: "10px", border: "5px solid #EEE" } },
@@ -11337,12 +11476,12 @@ const BrandStories = /*#__PURE__*/Object.freeze({
11337
11476
  Fonts: Fonts
11338
11477
  });
11339
11478
 
11340
- const scenario$p = "@author:kutay\n@owner:kutay\nFeature: Card Feed\n\n\tThe Card Feed component displays Task Card components in a grid layout.\n\n\tBackground: A user on the portal is viewing the widget\n\t\tGiven a user viewing the Card Feed component\n\n\t@motivating\n\tScenario: The Card Feed component displays Task Cards given as children slots\n\t\tGiven a Card Feed component\n\t\tAnd it is wrapping a number of task cards as children\n\t\tWhen the user views the Card Feed\n\t\tThen the task cards are displayed in a masonry layout\n\t\tWhen the card feed with grows or shrinks in width\n\t\tThen the number of columns adjust to the given width\n\n\t@motivating\n\t@ui\n\tScenario Outline: The Card Feed component can have a maximum width\n\t\tGiven a Card Feed component\n\t\tAnd it is wrapping a number of task cards as children\n\t\tAnd has prop \"width\" has a provided <value>\n\t\tThen the task cards are displayed in a masonry layout\n\t\tWhen the card feed with grows or shrinks in width\n\t\tThen the number of columns adjust to the given width\n\t\tAnd the task cards do not exceed <width>\n\t\tExamples:\n\t\t\t| value | width |\n\t\t\t| | 347px |\n\t\t\t| 200 | 200px |\n\t\t\t| 400 | 400px |\n\n\t@motivating\n\t@ui\n\tScenario Outline: The Card Feed component gap between task cards can be customized\n\t\tGiven a Card Feed component\n\t\tAnd it is wrapping a number of task cards as children\n\t\tAnd has prop \"gap\" has a provided <value>\n\t\tThen the task cards are displayed in a masonry layout\n\t\tAnd the gap between the columns is the <gap>\n\t\tExamples:\n\t\t\t| value | gap |\n\t\t\t| | 24px |\n\t\t\t| 20 | 20px |\n\t\t\t| 50 | 50px |";
11479
+ const scenario$q = "@author:kutay\n@owner:kutay\nFeature: Card Feed\n\n\tThe Card Feed component displays Task Card components in a grid layout.\n\n\tBackground: A user on the portal is viewing the widget\n\t\tGiven a user viewing the Card Feed component\n\n\t@motivating\n\tScenario: The Card Feed component displays Task Cards given as children slots\n\t\tGiven a Card Feed component\n\t\tAnd it is wrapping a number of task cards as children\n\t\tWhen the user views the Card Feed\n\t\tThen the task cards are displayed in a masonry layout\n\t\tWhen the card feed with grows or shrinks in width\n\t\tThen the number of columns adjust to the given width\n\n\t@motivating\n\t@ui\n\tScenario Outline: The Card Feed component can have a maximum width\n\t\tGiven a Card Feed component\n\t\tAnd it is wrapping a number of task cards as children\n\t\tAnd has prop \"width\" has a provided <value>\n\t\tThen the task cards are displayed in a masonry layout\n\t\tWhen the card feed with grows or shrinks in width\n\t\tThen the number of columns adjust to the given width\n\t\tAnd the task cards do not exceed <width>\n\t\tExamples:\n\t\t\t| value | width |\n\t\t\t| | 347px |\n\t\t\t| 200 | 200px |\n\t\t\t| 400 | 400px |\n\n\t@motivating\n\t@ui\n\tScenario Outline: The Card Feed component gap between task cards can be customized\n\t\tGiven a Card Feed component\n\t\tAnd it is wrapping a number of task cards as children\n\t\tAnd has prop \"gap\" has a provided <value>\n\t\tThen the task cards are displayed in a masonry layout\n\t\tAnd the gap between the columns is the <gap>\n\t\tExamples:\n\t\t\t| value | gap |\n\t\t\t| | 24px |\n\t\t\t| 20 | 20px |\n\t\t\t| 50 | 50px |";
11341
11480
 
11342
11481
  const CardFeed_stories = {
11343
11482
  title: "Components/Card Feed",
11344
11483
  parameters: {
11345
- scenario: scenario$p,
11484
+ scenario: scenario$q,
11346
11485
  },
11347
11486
  };
11348
11487
  const oneAction$1 = {
@@ -11579,12 +11718,12 @@ const CardFeed = /*#__PURE__*/Object.freeze({
11579
11718
  CardFeedGeneric: CardFeedGeneric
11580
11719
  });
11581
11720
 
11582
- const scenario$q = "@author:kutay\n@owner:noah\nFeature: Portal Container\n\n\t@motivating\n\t@ui\n\tScenario: Horizontal content overflows, but does not stretch\n\t\tGiven there are two element in the container\n\t\tAnd the first is small\n\t\tAnd the second would stretch the container wider than it's parent\n\t\tThen the second one is clipped\n\t\tAnd the first one doesn't stretch\n\n\t@landmine\n\t@ui\n\tScenario: `max-width` is required for displaying as a row\n\t\tGiven I have `direction` to \"row\"\n\t\tAnd I have not set a `max-width`\n\t\tThen it displays as a column\n\n\t@motivating\n\t@ui\n\tScenario Outline: Content padding can be customized\n\t\tGiven prop \"padding\" has <value>\n\t\tThen <padding> is applied to content\n\n\t\tExamples:\n\t\t\t| value | padding |\n\t\t\t| none | no padding |\n\t\t\t| xxx-small | xxx-small |\n\t\t\t| xx-small | xx-small |\n\t\t\t| x-small | x-small |\n\t\t\t| small | small |\n\t\t\t| medium | medium |\n\t\t\t| large | large |\n\t\t\t| x-large | x-large |\n\t\t\t| xx-large | xx-large |\n\t\t\t| xxx-large | xxx-large |\n\t\t\t| xxxx-large | xxxx-large |\n\t\t\t| N/A | no padding |\n\n\n\t@motivating\n\t@ui\n\tScenario Outline: Gap between content elements can be customized\n\t\tGiven prop \"gap\" has <value>\n\t\tThen <gap> is applied to elements between content\n\n\t\tExamples:\n\t\t\t| value | gap |\n\t\t\t| none | no padding |\n\t\t\t| xxx-small | xxx-small |\n\t\t\t| xx-small | xx-small |\n\t\t\t| x-small | x-small |\n\t\t\t| small | small |\n\t\t\t| medium | medium |\n\t\t\t| large | large |\n\t\t\t| x-large | x-large |\n\t\t\t| xx-large | xx-large |\n\t\t\t| xxx-large | xxx-large |\n\t\t\t| xxxx-large | xxxx-large |\n\t\t\t| N/A | no padding |\n\n\t@minutia\n\t@ui\n\tScenario: Content can be center aligned in horizontal view\n\t\tGiven I have supplied the prop \"center\"\n\t\tThen the content is center aligned\n\n\t@minutia\n\t@ui\n\tScenario: Content in the last row can span full width with display in horizontal view\n\t\tGiven I have `display` to \"flex\"\n\t\tThen the content is full width on the last row\n\n\t@motivating\n\t@ui\n\tScenario Outline: Content can be aligned along the x-axis\n\t\tGiven prop \"justify-content\" has <value>\n\t\tThen content within the container is aligned <alignment>\n\n\t\tExamples:\n\t\t\t| value | alignment |\n\t\t\t| none | no alignment |\n\t\t\t| start | to the start |\n\t\t\t| center | to the center |\n\t\t\t| end | to the end |\n\t\t\t| space-between | with space between |\n\t\t\t| space-around | with space around |\n\t\t\t| space-evenly | with space evenly |\n\n\n\t@motivating\n\t@ui\n\tScenario Outline: Component background color can be customized\n\t\tGiven a user is viewing the Portal Container component\n\t\tThen the default value is \"#ffffff00\"\n\t\tWhen the prop \"background-color\" has <value>\n\t\tThen the background has color <backgroundColor>\n\t\tExamples:\n\t\t\t| value | backgroundColor |\n\t\t\t| empty (default value) | var(--sl-color-neutral-0) (#ffffff) |\n\t\t\t| aquamarine | #7fffd4 |\n";
11721
+ const scenario$r = "@author:kutay\n@owner:noah\nFeature: Portal Container\n\n\t@motivating\n\t@ui\n\tScenario: Horizontal content overflows, but does not stretch\n\t\tGiven there are two element in the container\n\t\tAnd the first is small\n\t\tAnd the second would stretch the container wider than it's parent\n\t\tThen the second one is clipped\n\t\tAnd the first one doesn't stretch\n\n\t@landmine\n\t@ui\n\tScenario: `max-width` is required for displaying as a row\n\t\tGiven I have `direction` to \"row\"\n\t\tAnd I have not set a `max-width`\n\t\tThen it displays as a column\n\n\t@motivating\n\t@ui\n\tScenario Outline: Content padding can be customized\n\t\tGiven prop \"padding\" has <value>\n\t\tThen <padding> is applied to content\n\n\t\tExamples:\n\t\t\t| value | padding |\n\t\t\t| none | no padding |\n\t\t\t| xxx-small | xxx-small |\n\t\t\t| xx-small | xx-small |\n\t\t\t| x-small | x-small |\n\t\t\t| small | small |\n\t\t\t| medium | medium |\n\t\t\t| large | large |\n\t\t\t| x-large | x-large |\n\t\t\t| xx-large | xx-large |\n\t\t\t| xxx-large | xxx-large |\n\t\t\t| xxxx-large | xxxx-large |\n\t\t\t| N/A | no padding |\n\n\n\t@motivating\n\t@ui\n\tScenario Outline: Gap between content elements can be customized\n\t\tGiven prop \"gap\" has <value>\n\t\tThen <gap> is applied to elements between content\n\n\t\tExamples:\n\t\t\t| value | gap |\n\t\t\t| none | no padding |\n\t\t\t| xxx-small | xxx-small |\n\t\t\t| xx-small | xx-small |\n\t\t\t| x-small | x-small |\n\t\t\t| small | small |\n\t\t\t| medium | medium |\n\t\t\t| large | large |\n\t\t\t| x-large | x-large |\n\t\t\t| xx-large | xx-large |\n\t\t\t| xxx-large | xxx-large |\n\t\t\t| xxxx-large | xxxx-large |\n\t\t\t| N/A | no padding |\n\n\t@minutia\n\t@ui\n\tScenario: Content can be center aligned in horizontal view\n\t\tGiven I have supplied the prop \"center\"\n\t\tThen the content is center aligned\n\n\t@minutia\n\t@ui\n\tScenario: Content in the last row can span full width with display in horizontal view\n\t\tGiven I have `display` to \"flex\"\n\t\tThen the content is full width on the last row\n\n\t@motivating\n\t@ui\n\tScenario Outline: Content can be aligned along the x-axis\n\t\tGiven prop \"justify-content\" has <value>\n\t\tThen content within the container is aligned <alignment>\n\n\t\tExamples:\n\t\t\t| value | alignment |\n\t\t\t| none | no alignment |\n\t\t\t| start | to the start |\n\t\t\t| center | to the center |\n\t\t\t| end | to the end |\n\t\t\t| space-between | with space between |\n\t\t\t| space-around | with space around |\n\t\t\t| space-evenly | with space evenly |\n\n\n\t@motivating\n\t@ui\n\tScenario Outline: Component background color can be customized\n\t\tGiven a user is viewing the Portal Container component\n\t\tThen the default value is \"#ffffff00\"\n\t\tWhen the prop \"background-color\" has <value>\n\t\tThen the background has color <backgroundColor>\n\t\tExamples:\n\t\t\t| value | backgroundColor |\n\t\t\t| empty (default value) | var(--sl-color-neutral-0) (#ffffff) |\n\t\t\t| aquamarine | #7fffd4 |\n";
11583
11722
 
11584
11723
  const PortalContainer_stories = {
11585
11724
  title: "Components/Microsite Container",
11586
11725
  parameters: {
11587
- scenario: scenario$q,
11726
+ scenario: scenario$r,
11588
11727
  },
11589
11728
  };
11590
11729
  const TooWideColumn = () => (h("div", { style: { width: "200px", border: "1px dashed grey" } },
@@ -11752,11 +11891,11 @@ const scenario3 = "@author:derek @owner:derek\nFeature: Reward Table Status Colu
11752
11891
 
11753
11892
  const scenario4 = "@author:derek @owner:derek\nFeature: Reward Table Source Column\n Shows the source of each reward\n\n @motivating @ui\n Scenario Outline: The title of the source column is configurable\n Given the \"column-title\" prop is set to <value>\n Then the source column is shown with <columnTitle>\n\n Examples:\n | value | columnTitle |\n | Source | |\n | My column title | My column title |\n\n @motivating @ui\n Scenario: The source column displays manual if the reward is caused by a manual action\n Given a user with a \"MANUAL\" reward\n When they view the rewards table\n Then the source of their reward is displayed as \"Manual\"\n\n @motivating @ui\n Scenario: The source column displays the program name if the reward is caused automatically by a program\n Given a user with a \"AUTOMATED\" program reward\n And the program has name \"Loyalty Program\"\n When they view the rewards table\n Then the source of their reward is displayed as \"Loyalty Program\"\n\n @motivating @ui\n Scenario Outline: The source column displays customizable reward exchange text with amount if the reward is caused by reward exchange\n Given the \"reward-exchange-text\" prop is <propValue>\n And a user with a \"MANUAL\" reward\n But it was created by a reward exchange\n Then they view the rewards table\n Then the source displays <exchangeText>\n And under it displays the following\n | prettyRedeemedCredit → prettyValue |\n\n Examples:\n | propValue | exchangeText |\n | | Reward Exchange |\n | Exchanged | Exchanged |\n\n @motivating @ui\n Scenario Outline: The source column displays customizable referral information if the reward is from a referral\n Given the \"reward-source-text\" prop is <propValue>\n And a user with a referral reward\n And that reward has <rewardSource>\n When they view the rewards table\n Then then source displays <referralText>\n And under it displays the full name of the <referralUser>\n\n Examples:\n | propValue | rewardSource | referralText | referralUser |\n | | REFERRED | Referred by | referrer user |\n | | FRIEND_SIGNUP | Referral to | referred user |\n | {rewardSource, select, FRIEND_SIGNUP {You Referred} REFERRED {Referred you} other {}} | REFERRED | Referred you | referrer user |\n | {rewardSource, select, FRIEND_SIGNUP {You Referred} REFERRED {Referred you} other {}} | FRIEND_SIGNUP | You Referred | referred user |\n\n @motivating @ui\n Scenario Outline: The source column displays the existing name for a referral if either the first name or last name does not exist\n Given a user with a referral reward\n And referral user exists\n And referral user has <name>\n But referral user has no <otherName>\n When they view the rewards table\n Then referral user's name is displayed as <name>\n\n Examples:\n | name | otherName |\n | first.name | last.name |\n | last.name | first.name |\n\n @motivating @ui\n Scenario Outline: The source column displays referral as \"Anonymous User\" if the referral user has no names\n Given a user with a referral reward\n And that reward has <rewardSource>\n And the <referralUser> has no first name\n And the <referralUser> has no last name\n When they view the rewards table\n Then then source displays <sourceText>\n And under it displays \"Anonymous User\"\n\n Examples:\n | rewardSource | referralUser | sourceText |\n | FRIEND_SIGNUP | referrer | Referral to |\n | REFERRED | referred user | Referred by |\n\n @motivating @ui\n Scenario Outline: The source column displays referral as \"Deleted User\" if the referral user is deleted in the system\n Given a user with a referral reward\n And that reward has <rewardSource>\n But <referral> user was deleted\n When they view the rewards table\n Then the source displays <sourceText>\n And under it displays \"Deleted User\"\n\n Examples:\n | rewardSource | referral | sourceText |\n | \"FRIEND_SIGNUP\" | referrer | Referral to |\n | \"REFERRED\" | referred | Referred by |\n# AL: TODO DELETED REFERRAL SPEC\n\n @motivating @ui\n Scenario Outline: The source column displays referral as \"Deleted referral\" if the referral user is deleted in the system\n Given a user with a referral reward\n And that reward has <rewardSource>\n But <referral> user was deleted\n When they view the rewards table\n Then the source displays <sourceText>\n And under it displays \"Deleted referral\"\n\n Examples:\n | rewardSource | referral | sourceText |\n | \"FRIEND_SIGNUP\" | referrer | Referral to |\n | \"REFERRED\" | referred | Referred by |\n\n @minutia @ui\n Scenario Outline: Name fallbacks for referral users without names are customizable\n Given <prop> with <value>\n And a user with a referral reward\n But the referral user <hadAction>\n When they view the rewards table\n Then the source displays <value> as the referral user\n\n Examples:\n | prop | value | hadAction |\n | deleted-user | Former Customer | was deleted |\n | anonymous-user | Nameless User | had first and last name deleted |\n\n @motivating\n Scenario Outline: Source text can be customized\n Given the \"reward-source-text\" prop is \"{rewardSource, select, MANUAL {Support} AUTOMATED {Loyalty Program} other {}}\"\n And a user with a <rewardSource> reward\n When they view the rewards table\n Then the source is <sourceText>\n\n Examples:\n | rewardSource | sourceText |\n | MANUAL | Support |\n | AUTOMATED | Loyalty Program |\n";
11754
11893
 
11755
- const scenario$r = scenario1 + scenario2 + scenario3 + scenario4;
11894
+ const scenario$s = scenario1 + scenario2 + scenario3 + scenario4;
11756
11895
  const RewardsTableCell_stories = {
11757
11896
  title: "Components/Rewards Table Cell",
11758
11897
  parameters: {
11759
- scenario: scenario$r,
11898
+ scenario: scenario$s,
11760
11899
  },
11761
11900
  };
11762
11901
  const rewardsData$1 = {
@@ -12205,12 +12344,12 @@ const RewardsTableCell = /*#__PURE__*/Object.freeze({
12205
12344
  EmptyCell: EmptyCell$2
12206
12345
  });
12207
12346
 
12208
- const scenario$s = "@owner:sam\n@author:sam\nFeature: Rewards Table\n\n Shows a list of rewards as a table\n\n @motivating\n @ui\n Scenario: The empty state is shown if there are no rewards\n Given a user with rewards\n When they view the reward table\n Then no rewards are displayed\n And they see an image with a user icon\n And \"View your rewards\" in bold\n And \"See all the rewards you have earned from referring friends and completing tasks\" below the bolded text\n And the pagination buttons are disabled\n\n @minutia\n @ui\n Scenario: A custom empty state can be provided\n Given a user with no rewards\n And a custom empty state has been supplied in the \"empty\" slot\n When they view the reward table\n Then they see the custom empty state\n\n @minutia\n @ui\n Scenario: The loading state is shown while rewards are loading\n Given the table is loading\n Then the loading state is shown in the table\n And a custom loading state can be supplied in the \"loading\" slot\n And the pagination buttons are disabled\n\n @motivating\n @ui\n Scenario Outline: The table becomes paginated when the number of rewards exceeds the per page limit\n Given the user has <number of rewards>\n And the table is configured to show <page limit> rewards per page\n Then the table will have <number of pages> page(s)\n And pagination buttons will allow users to navigate between pages\n And the pagination button to go to the next page is disabled on the last page of rewards\n And the pagination button to go to the previous page is disabled on the first page of rewards\n Examples:\n | number of rewards | page limit | number of pages |\n | 0 | 4 | 1 |\n | 1 | 4 | 1 |\n | 3 | 4 | 1 |\n | 5 | 4 | 2 |\n | 42 | 4 | 11 |\n\n @motivating\n @ui\n Scenario: The table converts to a card view on tablet and mobile window sizes\n Given a user with rewards\n When they view the table\n And their window size is smaller than \"799px\"\n Then rewards are displayed as cards\n And they are in two columns\n When their window size is smaller than \"599px\"\n Then the rewards are displayed as cards in a singular column\n\n @motivating\n @ui\n Scenario: Table and Mobile beakpoints can be configured\n Given the reward table has been configured with the following props\n | prop | value |\n | smBreakpoint | 599 |\n | mdBreakpoint | 799 |\n And a user with rewards\n When they view the table\n And their window size is smaller than \"799px\"\n Then rewards are displayed as cards\n And they are in two columns\n When their window size is smaller than \"599px\"\n Then the rewards are displayed as cards in a singular column\n\n @motivating\n @ui\n Scenario Outline: By default the first column heading is hidden in mobile\n Given a reward table with 4 columns\n And prop \"hidden-columns\" with <hideColumnValue>\n And a user with rewards\n When they view the reward table\n And their window size is below the tablet breakpoint\n Then reward cards are displayed\n And the titles of <columnsArehidden> within the card\n Examples:\n | hideColumnValue | columnsArehidden |\n | | the first column |\n | 0,1,2 | the first, second and third columns |\n | 3 | the fourth column |\n\n @motivating\n Scenario: Only rewards which occured in the program specific by \"program-id\" are shown\n Given the table is configured with \"program-id\"\n Then only rewards from the program with \"program-id\" are shown\n\n @landmine\n Scenario: When a `classic` program Id is set then any reward without a programId is shown\n There is no easy way for the backend to filter for \"classic\" programs,\n thus we are filtering for rewards without programId's.\n\n Given the \"program-id\" of the table is set to \"classic\"\n Then rewards from classic programs are shown\n And manual rewards are shown\n\n @minutia\n @ui\n Scenario: Column heading can be hidden\n Given the table is configured with \"hide-labels\" set to \"true\"\n Then the table is displayed without column headings";
12347
+ const scenario$t = "@owner:sam\n@author:sam\nFeature: Rewards Table\n\n Shows a list of rewards as a table\n\n @motivating\n @ui\n Scenario: The empty state is shown if there are no rewards\n Given a user with rewards\n When they view the reward table\n Then no rewards are displayed\n And they see an image with a user icon\n And \"View your rewards\" in bold\n And \"See all the rewards you have earned from referring friends and completing tasks\" below the bolded text\n And the pagination buttons are disabled\n\n @minutia\n @ui\n Scenario: A custom empty state can be provided\n Given a user with no rewards\n And a custom empty state has been supplied in the \"empty\" slot\n When they view the reward table\n Then they see the custom empty state\n\n @minutia\n @ui\n Scenario: The loading state is shown while rewards are loading\n Given the table is loading\n Then the loading state is shown in the table\n And a custom loading state can be supplied in the \"loading\" slot\n And the pagination buttons are disabled\n\n @motivating\n @ui\n Scenario Outline: The table becomes paginated when the number of rewards exceeds the per page limit\n Given the user has <number of rewards>\n And the table is configured to show <page limit> rewards per page\n Then the table will have <number of pages> page(s)\n And pagination buttons will allow users to navigate between pages\n And the pagination button to go to the next page is disabled on the last page of rewards\n And the pagination button to go to the previous page is disabled on the first page of rewards\n Examples:\n | number of rewards | page limit | number of pages |\n | 0 | 4 | 1 |\n | 1 | 4 | 1 |\n | 3 | 4 | 1 |\n | 5 | 4 | 2 |\n | 42 | 4 | 11 |\n\n @motivating\n @ui\n Scenario: The table converts to a card view on tablet and mobile window sizes\n Given a user with rewards\n When they view the table\n And their window size is smaller than \"799px\"\n Then rewards are displayed as cards\n And they are in two columns\n When their window size is smaller than \"599px\"\n Then the rewards are displayed as cards in a singular column\n\n @motivating\n @ui\n Scenario: Table and Mobile beakpoints can be configured\n Given the reward table has been configured with the following props\n | prop | value |\n | smBreakpoint | 599 |\n | mdBreakpoint | 799 |\n And a user with rewards\n When they view the table\n And their window size is smaller than \"799px\"\n Then rewards are displayed as cards\n And they are in two columns\n When their window size is smaller than \"599px\"\n Then the rewards are displayed as cards in a singular column\n\n @motivating\n @ui\n Scenario Outline: By default the first column heading is hidden in mobile\n Given a reward table with 4 columns\n And prop \"hidden-columns\" with <hideColumnValue>\n And a user with rewards\n When they view the reward table\n And their window size is below the tablet breakpoint\n Then reward cards are displayed\n And the titles of <columnsArehidden> within the card\n Examples:\n | hideColumnValue | columnsArehidden |\n | | the first column |\n | 0,1,2 | the first, second and third columns |\n | 3 | the fourth column |\n\n @motivating\n Scenario: Only rewards which occured in the program specific by \"program-id\" are shown\n Given the table is configured with \"program-id\"\n Then only rewards from the program with \"program-id\" are shown\n\n @landmine\n Scenario: When a `classic` program Id is set then any reward without a programId is shown\n There is no easy way for the backend to filter for \"classic\" programs,\n thus we are filtering for rewards without programId's.\n\n Given the \"program-id\" of the table is set to \"classic\"\n Then rewards from classic programs are shown\n And manual rewards are shown\n\n @minutia\n @ui\n Scenario: Column heading can be hidden\n Given the table is configured with \"hide-labels\" set to \"true\"\n Then the table is displayed without column headings";
12209
12348
 
12210
12349
  const RewardsTable_stories = {
12211
12350
  title: "Components/Rewards Table",
12212
12351
  parameters: {
12213
- scenario: scenario$s,
12352
+ scenario: scenario$t,
12214
12353
  },
12215
12354
  };
12216
12355
  const loadingElement$1 = (h("div", { slot: "loading", style: { display: "contents" } },
@@ -12522,12 +12661,12 @@ const UseReferralTable = /*#__PURE__*/Object.freeze({
12522
12661
  ReferralTableFr: ReferralTableFr
12523
12662
  });
12524
12663
 
12525
- const scenario$t = "@author:kutay\n@owner:kutay\nFeature: Hero Image\n\n\tThe Hero Image component displays media images with a header, description and button using an overlay or a double column layout to offer an attrative widget page.\n\n\tBackground: A user on the portal is viewing the widget\n\t\tGiven a user viewing the Hero Image component\n\n\t@motivating\n\t@ui\n\tScenario: Overlay image displays header, description, and button with brand color\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | \"https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png\" |\n\t\t\t| header | \"Klip Rewards\" |\n\t\t\t| description | \"Refer friends or complete tasks while using Klip to earn rewards\" |\n\t\t\t| button-text | \"Start earning\" |\n\t\t\t| layout | \"overlay\" |\n\t\tThen they see their image\n\t\tAnd the image has no padding\n\t\tAnd it has a brand colour overlay\n\t\tAnd \"Klip Rewards\" is displayed over top of the image in xxx-large font\n\t\tAnd below \"Refer friends or complete tasks while using Klip to earn rewards\" is displayed over top of the image in x-large font\n\t\tAnd below they see a brand coloured button with text \"Start earning\"\n\t\tAnd the text section has xxx-large padding\n\t\tWhen the component is scaled down to 599px\n\t\tThen the image is scaled to fit content\n\n\t@motivating\n\t@ui\n\tScenario Outline: Overlay image crop can be aligned left, center or right\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | \"https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png\" |\n\t\t\t| header | \"Klip Rewards\" |\n\t\t\t| description | \"Refer friends or complete tasks while using Klip to earn rewards\" |\n\t\t\t| button-text | \"Start earning\" |\n\t\t\t| layout | \"overlay\" |\n\t\t\t| image-pos | <value> |\n\t\tThen the image with overlay is displayed\n\t\tWhen the component is scaled down to 599px\n\t\tThen the image is <alignment> to fit content\n\t\tExamples:\n\t\t\t| value | alignment |\n\t\t\t| left | left aligned |\n\t\t\t| center | centered |\n\t\t\t| right | right aligned |\n\t\t\t| N/A | centered |\n\n\t@motivating\n\t@ui\n\tScenario Outline: Overlay padding is configurable\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | \"https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png\" |\n\t\t\t| header | \"Klip Rewards\" |\n\t\t\t| description | \"Refer friends or complete tasks while using Klip to earn rewards\" |\n\t\t\t| button-text | \"Start earning\" |\n\t\t\t| layout | \"overlay\" |\n\t\t\t| padding-text | <value> |\n\t\tThen the image with overlay is displayed\n\t\tAnd <padding> is applied around header, description and button\n\t\tExamples:\n\t\t\t| value | padding |\n\t\t\t| none | no padding |\n\t\t\t| xxx-small | xxx-small |\n\t\t\t| xx-small | xx-small |\n\t\t\t| x-small | x-small |\n\t\t\t| small | small |\n\t\t\t| medium | medium |\n\t\t\t| large | large |\n\t\t\t| x-large | x-large |\n\t\t\t| xx-large | xx-large |\n\t\t\t| xxx-large | xxx-large |\n\t\t\t| xxxx-large | xxxx-large |\n\t\t\t| N/A | no padding |\n\n\t@motivating\n\t@ui\n\tScenario Outline: Overlay color and background is configurable\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | \"https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png\" |\n\t\t\t| header | \"Klip Rewards\" |\n\t\t\t| description | \"Refer friends or complete tasks while using Klip to earn rewards\" |\n\t\t\t| button-text | \"Start earning\" |\n\t\t\t| layout | \"overlay\" |\n\t\t\t| text-color | <textColor> |\n\t\t\t| overlay-color | <overlayColor> |\n\t\t\t| overlay-opacity | <overlayOpacity> |\n\t\tThen the image with overlay is displayed\n\t\tAnd the overlay is <overlayColor>\n\t\tAnd the overlay has <overlayOpacity>\n\t\tAnd the text is <textColor>\n\t\tExamples:\n\t\t\t| textColor | overlayColor | overlayOpacity |\n\t\t\t| #fffc4b | #ff7f7f | 0.9 |\n\t\t\t| #1d0314 | #4baa1a | 0 |\n\t\t\t| #211a27 | #aa481a | 1 |\n\n\t@motivating\n\t@ui\n\tScenario: Two-column layout displays an image on one side and on the other side a header, description, and button\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | \"https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png\" |\n\t\t\t| header | \"Klip Rewards\" |\n\t\t\t| description | \"Refer friends or complete tasks while using Klip to earn rewards\" |\n\t\t\t| button-text | \"Start earning\" |\n\t\t\t| layout | \"columns\" |\n\t\tThen the image is displayed on the left\n\t\tAnd the following elements are displayed on the right\n\t\t\t| elements |\n\t\t\t| header |\n\t\t\t| description |\n\t\t\t| button |\n\t\tWhen the component is scaled down to 599px\n\t\tThen the two-column layout switches to a row layout\n\t\tAnd the image is displayed on top\n\t\tAnd the content is displayed below\n\n\t@motivating\n\t@ui\n\tScenario Outline: Image position is configurable for desktop and mobile\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | \"https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png\" |\n\t\t\t| header | \"Klip Rewards\" |\n\t\t\t| description | \"Refer friends or complete tasks while using Klip to earn rewards\" |\n\t\t\t| button-text | \"Start earning\" |\n\t\t\t| layout | \"columns\" |\n\t\t\t| image-pos | <imagePos> |\n\t\t\t| image-mobile-pos | <imageMobilePos> |\n\t\tThen the image is displayed on the <imagePos>\n\t\tWhen the component is scaled down to 599px\n\t\tThen two-column layout switches to a row layout\n\t\tAnd image is displayed on the <imageMobilePos>\n\t\tExamples:\n\t\t\t| imagePos | imageMobilePos |\n\t\t\t| left | top |\n\t\t\t| right | bottom |\n\n\t@motivating\n\t@ui\n\tScenario Outline: Padding is configurable for the image and text of two column layouts\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | \"https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png\" |\n\t\t\t| header | \"Klip Rewards\" |\n\t\t\t| description | \"Refer friends or complete tasks while using Klip to earn rewards\" |\n\t\t\t| button-text | \"Start earning\" |\n\t\t\t| layout | \"columns\" |\n\t\t\t| padding-text | <paddingText> |\n\t\t\t| padding-image | <paddingImage> |\n\t\tThen the two column layout is displayed\n\t\tAnd the image has padding <paddingImage>\n\t\tAnd the text has padding <paddingText>\n\t\tExamples:\n\t\t\t| paddingText | paddingImage |\n\t\t\t| xxx-small | xxx-small |\n\t\t\t| xx-small | xx-small |\n\t\t\t| x-small | x-small |\n\t\t\t| small | small |\n\t\t\t| medium | medium |\n\t\t\t| large | large |\n\t\t\t| x-large | x-large |\n\t\t\t| xx-large | xx-large |\n\t\t\t| xxx-large | xxx-large |\n\t\t\t| xxxx-large | xxxx-large |\n\t\t\t| none | none |\n\n\t@motivating\n\t@ui\n\tScenario Outline: Two-column layout image division percentage is configurable\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | \"https://res.cloudinary.com/saasquatch/image/upload/v1644000248/squatch-assets/MVgOJn7.png\" |\n\t\t\t| header | \"Klip Rewards\" |\n\t\t\t| description | \"Refer friends or complete tasks while using Klip to earn rewards\" |\n\t\t\t| button-text | \"Start earning\" |\n\t\t\t| layout | \"columns\" |\n\t\t\t| image-percentage | <percent> |\n\t\tThen the two column layout is displayed\n\t\tAnd the image takes up <percent> of the two-column layout\n\t\tAnd the text elements take up the remainder of the space\n\t\tExamples:\n\t\t\t| percent |\n\t\t\t| 25% |\n\t\t\t| 42% |\n\t\t\t| 66% |\n\n\t@motivating\n\t@ui\n\tScenario: Two-column layout text and background color is configurable\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | \"https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png\" |\n\t\t\t| header | \"Klip Rewards\" |\n\t\t\t| description | \"Refer friends or complete tasks while using Klip to earn rewards\" |\n\t\t\t| button-text | \"Start earning\" |\n\t\t\t| layout | \"columns\" |\n\t\t\t| text-color | <textColor> |\n\t\t\t| background-color | <backgroundColor> |\n\t\tThen the two column layout is displayed\n\t\tAnd the text has color <textColor>\n\t\tAnd the background has color <backgroundColor>\n\t\tExamples:\n\t\t\t| textColor | backgroundColor |\n\t\t\t| #fffc4b | #ff7f7f |\n\t\t\t| #1d0314 | #4baa1a |\n\t\t\t| #211a27 | #aa481a |";
12664
+ const scenario$u = "@author:kutay\n@owner:kutay\nFeature: Hero Image\n\n\tThe Hero Image component displays media images with a header, description and button using an overlay or a double column layout to offer an attrative widget page.\n\n\tBackground: A user on the portal is viewing the widget\n\t\tGiven a user viewing the Hero Image component\n\n\t@motivating\n\t@ui\n\tScenario: Overlay image displays header, description, and button with brand color\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | \"https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png\" |\n\t\t\t| header | \"Klip Rewards\" |\n\t\t\t| description | \"Refer friends or complete tasks while using Klip to earn rewards\" |\n\t\t\t| button-text | \"Start earning\" |\n\t\t\t| layout | \"overlay\" |\n\t\tThen they see their image\n\t\tAnd the image has no padding\n\t\tAnd it has a brand colour overlay\n\t\tAnd \"Klip Rewards\" is displayed over top of the image in xxx-large font\n\t\tAnd below \"Refer friends or complete tasks while using Klip to earn rewards\" is displayed over top of the image in x-large font\n\t\tAnd below they see a brand coloured button with text \"Start earning\"\n\t\tAnd the text section has xxx-large padding\n\t\tWhen the component is scaled down to 599px\n\t\tThen the image is scaled to fit content\n\n\t@motivating\n\t@ui\n\tScenario Outline: Overlay image crop can be aligned left, center or right\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | \"https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png\" |\n\t\t\t| header | \"Klip Rewards\" |\n\t\t\t| description | \"Refer friends or complete tasks while using Klip to earn rewards\" |\n\t\t\t| button-text | \"Start earning\" |\n\t\t\t| layout | \"overlay\" |\n\t\t\t| image-pos | <value> |\n\t\tThen the image with overlay is displayed\n\t\tWhen the component is scaled down to 599px\n\t\tThen the image is <alignment> to fit content\n\t\tExamples:\n\t\t\t| value | alignment |\n\t\t\t| left | left aligned |\n\t\t\t| center | centered |\n\t\t\t| right | right aligned |\n\t\t\t| N/A | centered |\n\n\t@motivating\n\t@ui\n\tScenario Outline: Overlay padding is configurable\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | \"https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png\" |\n\t\t\t| header | \"Klip Rewards\" |\n\t\t\t| description | \"Refer friends or complete tasks while using Klip to earn rewards\" |\n\t\t\t| button-text | \"Start earning\" |\n\t\t\t| layout | \"overlay\" |\n\t\t\t| padding-text | <value> |\n\t\tThen the image with overlay is displayed\n\t\tAnd <padding> is applied around header, description and button\n\t\tExamples:\n\t\t\t| value | padding |\n\t\t\t| none | no padding |\n\t\t\t| xxx-small | xxx-small |\n\t\t\t| xx-small | xx-small |\n\t\t\t| x-small | x-small |\n\t\t\t| small | small |\n\t\t\t| medium | medium |\n\t\t\t| large | large |\n\t\t\t| x-large | x-large |\n\t\t\t| xx-large | xx-large |\n\t\t\t| xxx-large | xxx-large |\n\t\t\t| xxxx-large | xxxx-large |\n\t\t\t| N/A | no padding |\n\n\t@motivating\n\t@ui\n\tScenario Outline: Overlay color and background is configurable\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | \"https://res.cloudinary.com/saasquatch/image/upload/v1644000278/squatch-assets/bTwu1Um.png\" |\n\t\t\t| header | \"Klip Rewards\" |\n\t\t\t| description | \"Refer friends or complete tasks while using Klip to earn rewards\" |\n\t\t\t| button-text | \"Start earning\" |\n\t\t\t| layout | \"overlay\" |\n\t\t\t| text-color | <textColor> |\n\t\t\t| overlay-color | <overlayColor> |\n\t\t\t| overlay-opacity | <overlayOpacity> |\n\t\tThen the image with overlay is displayed\n\t\tAnd the overlay is <overlayColor>\n\t\tAnd the overlay has <overlayOpacity>\n\t\tAnd the text is <textColor>\n\t\tExamples:\n\t\t\t| textColor | overlayColor | overlayOpacity |\n\t\t\t| #fffc4b | #ff7f7f | 0.9 |\n\t\t\t| #1d0314 | #4baa1a | 0 |\n\t\t\t| #211a27 | #aa481a | 1 |\n\n\t@motivating\n\t@ui\n\tScenario: Two-column layout displays an image on one side and on the other side a header, description, and button\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | \"https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png\" |\n\t\t\t| header | \"Klip Rewards\" |\n\t\t\t| description | \"Refer friends or complete tasks while using Klip to earn rewards\" |\n\t\t\t| button-text | \"Start earning\" |\n\t\t\t| layout | \"columns\" |\n\t\tThen the image is displayed on the left\n\t\tAnd the following elements are displayed on the right\n\t\t\t| elements |\n\t\t\t| header |\n\t\t\t| description |\n\t\t\t| button |\n\t\tWhen the component is scaled down to 599px\n\t\tThen the two-column layout switches to a row layout\n\t\tAnd the image is displayed on top\n\t\tAnd the content is displayed below\n\n\t@motivating\n\t@ui\n\tScenario Outline: Image position is configurable for desktop and mobile\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | \"https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png\" |\n\t\t\t| header | \"Klip Rewards\" |\n\t\t\t| description | \"Refer friends or complete tasks while using Klip to earn rewards\" |\n\t\t\t| button-text | \"Start earning\" |\n\t\t\t| layout | \"columns\" |\n\t\t\t| image-pos | <imagePos> |\n\t\t\t| image-mobile-pos | <imageMobilePos> |\n\t\tThen the image is displayed on the <imagePos>\n\t\tWhen the component is scaled down to 599px\n\t\tThen two-column layout switches to a row layout\n\t\tAnd image is displayed on the <imageMobilePos>\n\t\tExamples:\n\t\t\t| imagePos | imageMobilePos |\n\t\t\t| left | top |\n\t\t\t| right | bottom |\n\n\t@motivating\n\t@ui\n\tScenario Outline: Padding is configurable for the image and text of two column layouts\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | \"https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png\" |\n\t\t\t| header | \"Klip Rewards\" |\n\t\t\t| description | \"Refer friends or complete tasks while using Klip to earn rewards\" |\n\t\t\t| button-text | \"Start earning\" |\n\t\t\t| layout | \"columns\" |\n\t\t\t| padding-text | <paddingText> |\n\t\t\t| padding-image | <paddingImage> |\n\t\tThen the two column layout is displayed\n\t\tAnd the image has padding <paddingImage>\n\t\tAnd the text has padding <paddingText>\n\t\tExamples:\n\t\t\t| paddingText | paddingImage |\n\t\t\t| xxx-small | xxx-small |\n\t\t\t| xx-small | xx-small |\n\t\t\t| x-small | x-small |\n\t\t\t| small | small |\n\t\t\t| medium | medium |\n\t\t\t| large | large |\n\t\t\t| x-large | x-large |\n\t\t\t| xx-large | xx-large |\n\t\t\t| xxx-large | xxx-large |\n\t\t\t| xxxx-large | xxxx-large |\n\t\t\t| none | none |\n\n\t@motivating\n\t@ui\n\tScenario Outline: Two-column layout image division percentage is configurable\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | \"https://res.cloudinary.com/saasquatch/image/upload/v1644000248/squatch-assets/MVgOJn7.png\" |\n\t\t\t| header | \"Klip Rewards\" |\n\t\t\t| description | \"Refer friends or complete tasks while using Klip to earn rewards\" |\n\t\t\t| button-text | \"Start earning\" |\n\t\t\t| layout | \"columns\" |\n\t\t\t| image-percentage | <percent> |\n\t\tThen the two column layout is displayed\n\t\tAnd the image takes up <percent> of the two-column layout\n\t\tAnd the text elements take up the remainder of the space\n\t\tExamples:\n\t\t\t| percent |\n\t\t\t| 25% |\n\t\t\t| 42% |\n\t\t\t| 66% |\n\n\t@motivating\n\t@ui\n\tScenario: Two-column layout text and background color is configurable\n\t\tGiven a Hero Image component configured with the following props\n\t\t\t| prop | value |\n\t\t\t| image-url | \"https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png\" |\n\t\t\t| header | \"Klip Rewards\" |\n\t\t\t| description | \"Refer friends or complete tasks while using Klip to earn rewards\" |\n\t\t\t| button-text | \"Start earning\" |\n\t\t\t| layout | \"columns\" |\n\t\t\t| text-color | <textColor> |\n\t\t\t| background-color | <backgroundColor> |\n\t\tThen the two column layout is displayed\n\t\tAnd the text has color <textColor>\n\t\tAnd the background has color <backgroundColor>\n\t\tExamples:\n\t\t\t| textColor | backgroundColor |\n\t\t\t| #fffc4b | #ff7f7f |\n\t\t\t| #1d0314 | #4baa1a |\n\t\t\t| #211a27 | #aa481a |";
12526
12665
 
12527
12666
  const HeroImage_stories = {
12528
12667
  title: "Components/Hero Image",
12529
12668
  parameters: {
12530
- scenario: scenario$t,
12669
+ scenario: scenario$u,
12531
12670
  },
12532
12671
  };
12533
12672
  const OverlayHeader = () => {
@@ -12600,12 +12739,12 @@ const HeroImage = /*#__PURE__*/Object.freeze({
12600
12739
  ColumnsCustomColors: ColumnsCustomColors
12601
12740
  });
12602
12741
 
12603
- const scenario$u = "@author:kutay\n@owner:kutay\nFeature: Referral Card\n\n\tThe Referral Card component takes in two slots and displays them side by side.\n\n\tBackground: A user on the portal is viewing the widget\n\t\tGiven a user viewing the Referral Card component\n\n\t@motivating\n\t@ui\n\tScenario: Referral Card component displays provided content in left and right slots side by side\n\t\tGiven a Referral Card component\n\t\tAnd a slot with the name \"left\"\n\t\tAnd a slot with the name \"right\"\n\t\tWhen the user views the referral card\n\t\tThen the slot contents are displayed the card with equal width\n\t\tWhen the component is scaled down to 499px\n\t\tThen the column layout switches to row layout\n\t\tAnd the \"left\" slot content is displayed above the \"right\" slot content\n\n\t@minutia\n\t@ui\n\tScenario: Left or right column content spans the whole card if there is no content in the other column\n\t\tGiven a Referral Card component\n\t\tAnd there content in one column\n\t\tAnd there is no content in the other column\n\t\tThen the column with content spans 100% of the card width\n\t\tAnd the column with content respects the container's padding\n\t\tAnd the column without content has zero width\n\n\t@motivating\n\t@ui\n\tScenario Outline: Referral Card component content can be vertically aligned start, center, end\n\t\tGiven a Referral Card component\n\t\tAnd a slot with the name \"left\"\n\t\tAnd a slot with the name \"right\"\n\t\tAnd the prop \"vertical-alignment\" has <value>\n\t\tThen slots contents are displayed inside the card\n\t\tAnd slots are vertically aligned to <alignment> of the card\n\t\tExamples:\n\t\t\t| value | alignment |\n\t\t\t| start | the top |\n\t\t\t| center | the center |\n\t\t\t| end | the bottom |\n\t\t\t| N/A | the top |\n\n\t@ui\n\tScenario Outline: Container border can be toggled\n\t\tGiven a user is viewing the referral card component\n\t\tThen the default value for the prop \"include-border\" is \"true\"\n\t\tWhen \"include-border\" has <value>\n\t\tThen the referral card component's border <maybe> included\n\t\tExamples:\n\t\t\t| value | maybe |\n\t\t\t| true | is |\n\t\t\t| false | isn't |\n\t\t\t| empty (no value) | is |\n\n\t@motivating\n\t@ui\n\tScenario Outline: Component background color can be customized\n\t\tGiven a user is viewing the Referral Card component\n\t\tThen the default value is \"#ffffff\"\n\t\tWhen the prop \"background-color\" has <value>\n\t\tThen the background has color <backgroundColor>\n\t\tExamples:\n\t\t\t| value | backgroundColor |\n\t\t\t| empty (default value) | var(--sl-color-neutral-0) (#ffffff) |\n\t\t\t| aquamarine | #7fffd4 |\n\n\t@motivating\n\t@ui\n\tScenario Outline: Container padding can be customized\n\t\tGiven a user is looking at the component\n\t\tThen the default values for \"padding-top\", \"padding-bottom\", \"padding-left\", \"padding-right\" is \"large\"\n\t\tWhen prop \"padding-top\" has <value>\n\t\tThen <padding> is applied to content\n\t\tAnd the same applies to \"padding-bottom\", \"padding-left\", \"padding-right\"\n\n\t\tExamples:\n\t\t\t| value | padding |\n\t\t\t| none | no padding |\n\t\t\t| xxx-small | xxx-small |\n\t\t\t| xx-small | xx-small |\n\t\t\t| x-small | x-small |\n\t\t\t| small | small |\n\t\t\t| medium | medium |\n\t\t\t| large | large |\n\t\t\t| x-large | x-large |\n\t\t\t| xx-large | xx-large |\n\t\t\t| xxx-large | xxx-large |\n\t\t\t| xxxx-large | xxxx-large |\n\t\t\t| N/A | no padding |";
12742
+ const scenario$v = "@author:kutay\n@owner:kutay\nFeature: Referral Card\n\n\tThe Referral Card component takes in two slots and displays them side by side.\n\n\tBackground: A user on the portal is viewing the widget\n\t\tGiven a user viewing the Referral Card component\n\n\t@motivating\n\t@ui\n\tScenario: Referral Card component displays provided content in left and right slots side by side\n\t\tGiven a Referral Card component\n\t\tAnd a slot with the name \"left\"\n\t\tAnd a slot with the name \"right\"\n\t\tWhen the user views the referral card\n\t\tThen the slot contents are displayed the card with equal width\n\t\tWhen the component is scaled down to 499px\n\t\tThen the column layout switches to row layout\n\t\tAnd the \"left\" slot content is displayed above the \"right\" slot content\n\n\t@minutia\n\t@ui\n\tScenario: Left or right column content spans the whole card if there is no content in the other column\n\t\tGiven a Referral Card component\n\t\tAnd there content in one column\n\t\tAnd there is no content in the other column\n\t\tThen the column with content spans 100% of the card width\n\t\tAnd the column with content respects the container's padding\n\t\tAnd the column without content has zero width\n\n\t@motivating\n\t@ui\n\tScenario Outline: Referral Card component content can be vertically aligned start, center, end\n\t\tGiven a Referral Card component\n\t\tAnd a slot with the name \"left\"\n\t\tAnd a slot with the name \"right\"\n\t\tAnd the prop \"vertical-alignment\" has <value>\n\t\tThen slots contents are displayed inside the card\n\t\tAnd slots are vertically aligned to <alignment> of the card\n\t\tExamples:\n\t\t\t| value | alignment |\n\t\t\t| start | the top |\n\t\t\t| center | the center |\n\t\t\t| end | the bottom |\n\t\t\t| N/A | the top |\n\n\t@ui\n\tScenario Outline: Container border can be toggled\n\t\tGiven a user is viewing the referral card component\n\t\tThen the default value for the prop \"include-border\" is \"true\"\n\t\tWhen \"include-border\" has <value>\n\t\tThen the referral card component's border <maybe> included\n\t\tExamples:\n\t\t\t| value | maybe |\n\t\t\t| true | is |\n\t\t\t| false | isn't |\n\t\t\t| empty (no value) | is |\n\n\t@motivating\n\t@ui\n\tScenario Outline: Component background color can be customized\n\t\tGiven a user is viewing the Referral Card component\n\t\tThen the default value is \"#ffffff\"\n\t\tWhen the prop \"background-color\" has <value>\n\t\tThen the background has color <backgroundColor>\n\t\tExamples:\n\t\t\t| value | backgroundColor |\n\t\t\t| empty (default value) | var(--sl-color-neutral-0) (#ffffff) |\n\t\t\t| aquamarine | #7fffd4 |\n\n\t@motivating\n\t@ui\n\tScenario Outline: Container padding can be customized\n\t\tGiven a user is looking at the component\n\t\tThen the default values for \"padding-top\", \"padding-bottom\", \"padding-left\", \"padding-right\" is \"large\"\n\t\tWhen prop \"padding-top\" has <value>\n\t\tThen <padding> is applied to content\n\t\tAnd the same applies to \"padding-bottom\", \"padding-left\", \"padding-right\"\n\n\t\tExamples:\n\t\t\t| value | padding |\n\t\t\t| none | no padding |\n\t\t\t| xxx-small | xxx-small |\n\t\t\t| xx-small | xx-small |\n\t\t\t| x-small | x-small |\n\t\t\t| small | small |\n\t\t\t| medium | medium |\n\t\t\t| large | large |\n\t\t\t| x-large | x-large |\n\t\t\t| xx-large | xx-large |\n\t\t\t| xxx-large | xxx-large |\n\t\t\t| xxxx-large | xxxx-large |\n\t\t\t| N/A | no padding |";
12604
12743
 
12605
12744
  const ReferralCard_stories = {
12606
12745
  title: "Components/Referral Card",
12607
12746
  parameters: {
12608
- scenario: scenario$u,
12747
+ scenario: scenario$v,
12609
12748
  },
12610
12749
  };
12611
12750
  const media = (slot) => {
@@ -12738,11 +12877,11 @@ const scenarioTimeline = "@author:derek\n@owner:kutay\nFeature: Timeline\n\n
12738
12877
 
12739
12878
  const scenarioTimelineEntry = "@author:derek\n@owner:kutay\nFeature: Timeline Entry\n\n @motivating\n @ui\n Scenario: Timeline entries have an icon, a reward and an entry desciption\n Given an timeline entry with the following props\n | prop | value |\n | unit | Visa Giftcard |\n | reward | 50$ |\n | desc | Earn a 50$ Visa Giftcard for each referral you make |\n When a user views the entry\n Then they see a gift icon\n And see \"$50 VISA GIFTCARRD\" to the right\n And \"$50\" is bolded with x-large font size\n And below they see \"Earn a 50$ Visa Giftcard for each referral you make\"\n\n @motivating\n @ui\n Scenario Outline: Icon can either be a gift or a brand colour cirle\n Given a timeline entry with \"icon\" <iconPropValue>\n When a user views the entry\n Then they see an <icon>\n Examples:\n | iconPropValue 1 | icon |\n | gift | gift |\n | circle | brand colour circle |\n | | gift |\n\n @motivating\n @ui\n Scenario: A timeline entry can display a line to connect it to another entry\n Given a timeline entry with \"line\" \"true\"\n When a user views the entry\n Then they see the entry\n But it has a brand colour line connecting it to the next timeline entry\n";
12740
12879
 
12741
- const scenario$v = scenarioTimeline + scenarioTimelineEntry;
12880
+ const scenario$w = scenarioTimeline + scenarioTimelineEntry;
12742
12881
  const Timeline_stories = {
12743
12882
  title: "Components/Timeline",
12744
12883
  parameters: {
12745
- scenario: scenario$v,
12884
+ scenario: scenario$w,
12746
12885
  },
12747
12886
  };
12748
12887
  const TimelineWith1Reward = () => {
@@ -12815,12 +12954,12 @@ const Timeline = /*#__PURE__*/Object.freeze({
12815
12954
  TimelineWith4Rewards: TimelineWith4Rewards
12816
12955
  });
12817
12956
 
12818
- const scenario$w = "@author:kutay\n@owner:kutay\nFeature: Image\n\n\tBackground: A user on the portal is viewing the widget\n\t\tGiven a user viewing the image component\n\n\t@motivating\n\t@ui\n\tScenario: Image is displayed from URL\n\t\tGiven an Image component\n\t\tAnd prop \"image-url\" is provided with a valid image url\n\t\tThen the image is displayed\n\t\tAnd it is centered\n\n\t@motivating\n\t@ui\n\tScenario Outline: Images can be aligned left, center or right\n\t\tGiven an Image component\n\t\tAnd prop \"image-url\" is provided with a valid image url\n\t\tAnd prop \"align\" has <value>\n\t\tThen the image is displayed\n\t\tAnd it is aligned to the <value>\n\t\tExamples:\n\t\t\t| value |\n\t\t\t| left |\n\t\t\t| center |\n\t\t\t| right |\n\n\t@motivating\n\t@ui\n\tScenario: Image background can be assigned a color\n\t\tGiven an Image component\n\t\tAnd prop \"image-url\" is provided with a valid image url\n\t\tAnd prop \"background-color\" is provided a color\n\t\tThen the image is displayed\n\t\tAnd the background is the provided color\n\n\t@motivating\n\t@ui\n\tScenario: Image minimum height can be constrained\n\t\tGiven an Image component\n\t\tAnd prop \"image-url\" is provided\n\t\tAnd prop \"min-height\" is given a minimum value\n\t\tThen the image is displayed\n\t\tAnd the container size changes\n\t\tThen the image does not shrink below its minimum height";
12957
+ const scenario$x = "@author:kutay\n@owner:kutay\nFeature: Image\n\n\tBackground: A user on the portal is viewing the widget\n\t\tGiven a user viewing the image component\n\n\t@motivating\n\t@ui\n\tScenario: Image is displayed from URL\n\t\tGiven an Image component\n\t\tAnd prop \"image-url\" is provided with a valid image url\n\t\tThen the image is displayed\n\t\tAnd it is centered\n\n\t@motivating\n\t@ui\n\tScenario Outline: Images can be aligned left, center or right\n\t\tGiven an Image component\n\t\tAnd prop \"image-url\" is provided with a valid image url\n\t\tAnd prop \"align\" has <value>\n\t\tThen the image is displayed\n\t\tAnd it is aligned to the <value>\n\t\tExamples:\n\t\t\t| value |\n\t\t\t| left |\n\t\t\t| center |\n\t\t\t| right |\n\n\t@motivating\n\t@ui\n\tScenario: Image background can be assigned a color\n\t\tGiven an Image component\n\t\tAnd prop \"image-url\" is provided with a valid image url\n\t\tAnd prop \"background-color\" is provided a color\n\t\tThen the image is displayed\n\t\tAnd the background is the provided color\n\n\t@motivating\n\t@ui\n\tScenario: Image minimum height can be constrained\n\t\tGiven an Image component\n\t\tAnd prop \"image-url\" is provided\n\t\tAnd prop \"min-height\" is given a minimum value\n\t\tThen the image is displayed\n\t\tAnd the container size changes\n\t\tThen the image does not shrink below its minimum height";
12819
12958
 
12820
12959
  const Image_stories = {
12821
12960
  title: "Components/Image",
12822
12961
  parameters: {
12823
- scenario: scenario$w,
12962
+ scenario: scenario$x,
12824
12963
  },
12825
12964
  };
12826
12965
  const Image = () => {
@@ -12853,12 +12992,12 @@ const Image$1 = /*#__PURE__*/Object.freeze({
12853
12992
  MinimumHeight: MinimumHeight
12854
12993
  });
12855
12994
 
12856
- const scenario$x = "@author:derek\n@owner:noah\nFeature: Titled Section\n\n Background: The titled section has a label and content\n Given a titled section\n And it has a label\n And it has content in the content slot\n\n @motivating\n @ui\n Scenario: Text alignment defaults to left align but can be configured\n Given the titled section has \"text-align\" <textAlignPropValue>\n When a user views the titled section\n Then the text in the label is <aligned>\n And the text in the content is <aligned>\n Examples:\n | textAlignPropValue | aligned |\n | center | center |\n | left | left |\n | right | right |\n | | left |\n\n @minutia\n @ui\n Scenario: Label margin is configurable\n Given the titled section has \"label-margin\" <marginPropValue>\n When a user views the titled section\n Then <marginPropValue> margin is between the label and content\n Examples:\n | marginPropValue | margin |\n | none | no |\n | xxx-small | xxx-small |\n | xx-small | xx-small |\n | x-small | x-small |\n | small | small |\n | medium | medium |\n | large | large |\n | x-large | x-large |\n | xx-large | xx-large |\n | xxx-large | xxx-large |\n | xxxx-large | xxxx-large |\n | | no |\n\n @minutia\n @ui\n Scenario Outline: Titled section padding is configurable\n Given the titled section has \"padding\" <paddingPropValue>\n When a user views the titled section\n Then <paddingPropValue> padding is applied around the titled section\n Examples:\n | paddingPropValue | padding |\n | none | no |\n | xxx-small | xxx-small |\n | xx-small | xx-small |\n | x-small | x-small |\n | small | small |\n | medium | medium |\n | large | large |\n | x-large | x-large |\n | xx-large | xx-large |\n | xxx-large | xxx-large |\n | xxxx-large | xxxx-large |\n | | no |";
12995
+ const scenario$y = "@author:derek\n@owner:noah\nFeature: Titled Section\n\n Background: The titled section has a label and content\n Given a titled section\n And it has a label\n And it has content in the content slot\n\n @motivating\n @ui\n Scenario: Text alignment defaults to left align but can be configured\n Given the titled section has \"text-align\" <textAlignPropValue>\n When a user views the titled section\n Then the text in the label is <aligned>\n And the text in the content is <aligned>\n Examples:\n | textAlignPropValue | aligned |\n | center | center |\n | left | left |\n | right | right |\n | | left |\n\n @minutia\n @ui\n Scenario: Label margin is configurable\n Given the titled section has \"label-margin\" <marginPropValue>\n When a user views the titled section\n Then <marginPropValue> margin is between the label and content\n Examples:\n | marginPropValue | margin |\n | none | no |\n | xxx-small | xxx-small |\n | xx-small | xx-small |\n | x-small | x-small |\n | small | small |\n | medium | medium |\n | large | large |\n | x-large | x-large |\n | xx-large | xx-large |\n | xxx-large | xxx-large |\n | xxxx-large | xxxx-large |\n | | no |\n\n @minutia\n @ui\n Scenario Outline: Titled section padding is configurable\n Given the titled section has \"padding\" <paddingPropValue>\n When a user views the titled section\n Then <paddingPropValue> padding is applied around the titled section\n Examples:\n | paddingPropValue | padding |\n | none | no |\n | xxx-small | xxx-small |\n | xx-small | xx-small |\n | x-small | x-small |\n | small | small |\n | medium | medium |\n | large | large |\n | x-large | x-large |\n | xx-large | xx-large |\n | xxx-large | xxx-large |\n | xxxx-large | xxxx-large |\n | | no |";
12857
12996
 
12858
12997
  const TitledSection_stories = {
12859
12998
  title: "Components/Titled Section",
12860
12999
  parameters: {
12861
- scenario: scenario$x,
13000
+ scenario: scenario$y,
12862
13001
  },
12863
13002
  };
12864
13003
  const AlignLeft = () => {
@@ -13254,12 +13393,12 @@ const Scroll = /*#__PURE__*/Object.freeze({
13254
13393
  ShoelaceProps: ShoelaceProps
13255
13394
  });
13256
13395
 
13257
- const scenario$y = "@author:Zach\n@owner:Zach\nFeature: Tabs\n\n The Tabs takes in the Tab component as children and maps through to display their header and content.\n\n Background: A user on the portal is viewing the widget\n Given a user viewing the Tabs component\n\n @motivating\n Scenario: Content inside the active tab is shown\n Given the header is set to <tabHeader>\n And the content inside is <tabContent>\n And the user has clicked <tabHeader>\n Then the <tabContent> is shown\n Examples:\n | tabHeader | tabContent |\n | Settings | This is the settings tab |\n | General | This is the general tab |\n | History | This is the history tab |\n\n @motivating\n @ui\n Scenario: The placement of the tabs is configurable\n Given The placement prop has been passed a valid <placement>\n Then tabs are placed on the <placementResult>\n Examples:\n | placement | placementResult |\n | | top of the content |\n | left | left hand side of the content |\n | right | right hand side of the content |\n | bottom | bottom of the content |\n\n\n @minutia\n @ui\n Scenario Outline: Tabs are setup to use the brand color\n Given the brand color is set to darkblue\n Then the text inside the active tab is darkblue\n And the underline of the active tab is darkblue\n\n @ui\n Scenario: Tabs are responsive\n Given the user is on a mobile device\n When there are more tabs than the horizontal space allows for\n Then clickable arrows appear on the left and right of the tabs\n And the tabs are scrollable\n\n @landmine\n Scenario: Program section cannot be used inside of tabs\n Given a tabs component\n And tab containing a program section with program-id \"test123\"\n And the program section wraps a component using program context\n When the tabs component is rendered\n Then the \"sq:program-id\" event listener for the program section is removed\n And the component does not use program-id \"test123\" to source its data\n And falls back to the global program id";
13396
+ const scenario$z = "@author:Zach\n@owner:Zach\nFeature: Tabs\n\n The Tabs takes in the Tab component as children and maps through to display their header and content.\n\n Background: A user on the portal is viewing the widget\n Given a user viewing the Tabs component\n\n @motivating\n Scenario: Content inside the active tab is shown\n Given the header is set to <tabHeader>\n And the content inside is <tabContent>\n And the user has clicked <tabHeader>\n Then the <tabContent> is shown\n Examples:\n | tabHeader | tabContent |\n | Settings | This is the settings tab |\n | General | This is the general tab |\n | History | This is the history tab |\n\n @motivating\n @ui\n Scenario: The placement of the tabs is configurable\n Given The placement prop has been passed a valid <placement>\n Then tabs are placed on the <placementResult>\n Examples:\n | placement | placementResult |\n | | top of the content |\n | left | left hand side of the content |\n | right | right hand side of the content |\n | bottom | bottom of the content |\n\n\n @minutia\n @ui\n Scenario Outline: Tabs are setup to use the brand color\n Given the brand color is set to darkblue\n Then the text inside the active tab is darkblue\n And the underline of the active tab is darkblue\n\n @ui\n Scenario: Tabs are responsive\n Given the user is on a mobile device\n When there are more tabs than the horizontal space allows for\n Then clickable arrows appear on the left and right of the tabs\n And the tabs are scrollable\n\n @landmine\n Scenario: Program section cannot be used inside of tabs\n Given a tabs component\n And tab containing a program section with program-id \"test123\"\n And the program section wraps a component using program context\n When the tabs component is rendered\n Then the \"sq:program-id\" event listener for the program section is removed\n And the component does not use program-id \"test123\" to source its data\n And falls back to the global program id";
13258
13397
 
13259
13398
  const Tabs_stories = {
13260
13399
  title: "Components/Tabs",
13261
13400
  parameters: {
13262
- scenario: scenario$y,
13401
+ scenario: scenario$z,
13263
13402
  },
13264
13403
  };
13265
13404
  const SimpleTabs = () => (h("div", { style: { maxWidth: "700px", margin: "auto" }, innerHTML: `
@@ -13759,12 +13898,12 @@ const Tabs = /*#__PURE__*/Object.freeze({
13759
13898
  RightTabs: RightTabs
13760
13899
  });
13761
13900
 
13762
- const scenario$z = "@author:johan\n@owner:johan\nFeature: Share Code\n\n The share code component is a box that allows users to see and copy their referral code for a given program\n\n Background: Environment\n Given there is a valid program ID in the environment\n And there is a valid user ID and account ID in the environment\n\n @motivating\n Scenario: A Users referral code can be copied to their clipboard\n Given tooltiptext is \"hello tooltip\"\n When the component renders\n Then there is a textbox with the user's share code\n When the clipboard icon is clicked\n Then the code is copied to clipboard\n And a tooltip will appear for ~1 second\n\n @minutia\n Scenario: Tooltip lifespan defaults to 2000\n Given the tooltip's lifespan is set to 2000\n And there is tooltip text\n When the component renders\n And the clipboard icon is clicked\n Then a tooltip will appear for ~2 seconds\n\n @minutia\n Scenario: Demo\n Given isDemo() returns true\n Then the share code is \"SHARECODE001\"\n And the component won't be interactive\n And the tooltip is hidden\n\n @minutia\n Scenario: Program ID can be sourced from prop\n Given the programId prop is set to \"program-a\"\n And window.widgetIdent.programId is set to \"program-b\"\n When the component renders\n Then the share code is for \"program-a\"\n\n @minutia\n Scenario: Program ID can be sourced from window\n Given the programId prop is unset\n And window.widgetIdent.programId is set to \"program-b\"\n When the component renders\n Then the share code is for \"program-b\"\n\n @minutia\n Scenario: An analytic event is fired when a user copies their code\n Given a user viewing the share code component\n And the component is rendered for \"program-a\"\n When they click to copy their code\n Then an \"USER_REFERRAL_PROGRAM_ENGAGEMENT_EVENT\" analytic event is fired\n And it is for \"program-a\"\n And it has share medium \"DIRECT\"\n\n\n @ui\n Scenario Outline: user can edit the alignment of the share code text\n Given a user is editing the share code component\n Then they see \"Align text\" props\n And the default value is \"left\"\n When they change the option to <option>\n Then they see the text in <position>\n Examples:\n | option | position |\n | left | left |\n | center | center |\n | right | right |\n\n @ui\n Scenario Outline: The position of the copy button can be changed\n Given a user is editing the share code component\n Then they see \"Style\" props\n And the default value is \"icon\"\n When they change the option to <option>\n Then they see the copy button in <position>\n Examples:\n | option | position |\n | button outside | outside the input, on the right |\n | button below | outside the input, below |\n | icon | inside the input as an icon |\n";
13901
+ const scenario$A = "@author:johan\n@owner:johan\nFeature: Share Code\n\n The share code component is a box that allows users to see and copy their referral code for a given program\n\n Background: Environment\n Given there is a valid program ID in the environment\n And there is a valid user ID and account ID in the environment\n\n @motivating\n Scenario: A Users referral code can be copied to their clipboard\n Given tooltiptext is \"hello tooltip\"\n When the component renders\n Then there is a textbox with the user's share code\n When the clipboard icon is clicked\n Then the code is copied to clipboard\n And a tooltip will appear for ~1 second\n\n @minutia\n Scenario: Tooltip lifespan defaults to 2000\n Given the tooltip's lifespan is set to 2000\n And there is tooltip text\n When the component renders\n And the clipboard icon is clicked\n Then a tooltip will appear for ~2 seconds\n\n @minutia\n Scenario: Demo\n Given isDemo() returns true\n Then the share code is \"SHARECODE001\"\n And the component won't be interactive\n And the tooltip is hidden\n\n @minutia\n Scenario: Program ID can be sourced from prop\n Given the programId prop is set to \"program-a\"\n And window.widgetIdent.programId is set to \"program-b\"\n When the component renders\n Then the share code is for \"program-a\"\n\n @minutia\n Scenario: Program ID can be sourced from window\n Given the programId prop is unset\n And window.widgetIdent.programId is set to \"program-b\"\n When the component renders\n Then the share code is for \"program-b\"\n\n @minutia\n Scenario: An analytic event is fired when a user copies their code\n Given a user viewing the share code component\n And the component is rendered for \"program-a\"\n When they click to copy their code\n Then an \"USER_REFERRAL_PROGRAM_ENGAGEMENT_EVENT\" analytic event is fired\n And it is for \"program-a\"\n And it has share medium \"DIRECT\"\n\n\n @ui\n Scenario Outline: user can edit the alignment of the share code text\n Given a user is editing the share code component\n Then they see \"Align text\" props\n And the default value is \"left\"\n When they change the option to <option>\n Then they see the text in <position>\n Examples:\n | option | position |\n | left | left |\n | center | center |\n | right | right |\n\n @ui\n Scenario Outline: The position of the copy button can be changed\n Given a user is editing the share code component\n Then they see \"Style\" props\n And the default value is \"icon\"\n When they change the option to <option>\n Then they see the copy button in <position>\n Examples:\n | option | position |\n | button outside | outside the input, on the right |\n | button below | outside the input, below |\n | icon | inside the input as an icon |\n";
13763
13902
 
13764
13903
  const ShareCode_stories = {
13765
13904
  title: "Components/Share Code",
13766
13905
  parameters: {
13767
- scenario: scenario$z,
13906
+ scenario: scenario$A,
13768
13907
  },
13769
13908
  };
13770
13909
  const ShareCode = () => {
@@ -13829,7 +13968,7 @@ const EmailRegistration_stories = {
13829
13968
  // scenario,
13830
13969
  },
13831
13970
  };
13832
- const defaultProps$d = {
13971
+ const defaultProps$e = {
13833
13972
  states: {
13834
13973
  error: "",
13835
13974
  loading: false,
@@ -13848,59 +13987,59 @@ const defaultProps$d = {
13848
13987
  fraudErrorMessageTitle: "Looks like you tried referring yourself",
13849
13988
  },
13850
13989
  };
13851
- const Default$e = () => h(EmailRegistrationView, Object.assign({}, defaultProps$d));
13990
+ const Default$g = () => h(EmailRegistrationView, Object.assign({}, defaultProps$e));
13852
13991
  const HasFirstNameLastName = () => (h(EmailRegistrationView, Object.assign({}, {
13853
- ...defaultProps$d,
13992
+ ...defaultProps$e,
13854
13993
  content: {
13855
- ...defaultProps$d.content,
13994
+ ...defaultProps$e.content,
13856
13995
  includeName: true,
13857
13996
  },
13858
13997
  })));
13859
13998
  const WithSlots = () => (h(EmailRegistrationView, Object.assign({}, {
13860
- ...defaultProps$d,
13999
+ ...defaultProps$e,
13861
14000
  content: {
13862
- ...defaultProps$d.content,
14001
+ ...defaultProps$e.content,
13863
14002
  topSlot: h("div", null, "Hello this is the top slot"),
13864
14003
  bottomSlot: h("div", null, "Hello this is the bottom slot"),
13865
14004
  },
13866
14005
  })));
13867
14006
  const NoBorder$1 = () => (h(EmailRegistrationView, Object.assign({}, {
13868
- ...defaultProps$d,
14007
+ ...defaultProps$e,
13869
14008
  content: {
13870
- ...defaultProps$d.content,
14009
+ ...defaultProps$e.content,
13871
14010
  hideBorder: true,
13872
14011
  },
13873
14012
  })));
13874
14013
  const BackgroundColor$2 = () => (h(EmailRegistrationView, Object.assign({}, {
13875
- ...defaultProps$d,
14014
+ ...defaultProps$e,
13876
14015
  content: {
13877
- ...defaultProps$d.content,
14016
+ ...defaultProps$e.content,
13878
14017
  backgroundColor: "aquamarine",
13879
14018
  },
13880
14019
  })));
13881
14020
  const Loading$4 = () => (h(EmailRegistrationView, Object.assign({}, {
13882
- ...defaultProps$d,
14021
+ ...defaultProps$e,
13883
14022
  states: {
13884
14023
  error: "",
13885
14024
  loading: true,
13886
14025
  },
13887
14026
  })));
13888
14027
  const Error$8 = () => (h(EmailRegistrationView, Object.assign({}, {
13889
- ...defaultProps$d,
14028
+ ...defaultProps$e,
13890
14029
  states: {
13891
14030
  error: "Something went wrong. Please try again.",
13892
14031
  loading: false,
13893
14032
  },
13894
14033
  })));
13895
14034
  const FraudError = () => (h(EmailRegistrationView, Object.assign({}, {
13896
- ...defaultProps$d,
14035
+ ...defaultProps$e,
13897
14036
  states: {
13898
14037
  error: "FRAUD",
13899
14038
  loading: false,
13900
14039
  },
13901
14040
  })));
13902
14041
  const EmptyEmailError = () => (h(EmailRegistrationView, Object.assign({}, {
13903
- ...defaultProps$d,
14042
+ ...defaultProps$e,
13904
14043
  states: {
13905
14044
  error: "Something went wrong. Please try again.",
13906
14045
  loading: false,
@@ -13913,7 +14052,7 @@ const EmptyEmailError = () => (h(EmailRegistrationView, Object.assign({}, {
13913
14052
  const EmailRegistration = /*#__PURE__*/Object.freeze({
13914
14053
  __proto__: null,
13915
14054
  'default': EmailRegistration_stories,
13916
- Default: Default$e,
14055
+ Default: Default$g,
13917
14056
  HasFirstNameLastName: HasFirstNameLastName,
13918
14057
  WithSlots: WithSlots,
13919
14058
  NoBorder: NoBorder$1,
@@ -13924,15 +14063,15 @@ const EmailRegistration = /*#__PURE__*/Object.freeze({
13924
14063
  EmptyEmailError: EmptyEmailError
13925
14064
  });
13926
14065
 
13927
- const scenario$A = "@author:truman\n@owner:truman\nFeature: Coupon Code\n\n The coupon code component is a box that allows users to see and copy their coupon code for a given program\n\n @motivating\n Scenario: Component only fetches codes from current program\n Given a user has multiple rewards from various programs\n When the component is loaded\n Then it fetches the user's rewards from only the program associated with the widget\n\n @motivating\n Scenario: Component only looks at fueltank rewards\n Given a user has multiple rewards of different types\n When the component is loaded\n Then it filters the user's reward to only return FUELTANK rewards\n\n\n @motivating\n Scenario: The first (i.e. most recently received) reward is the reward that is displayed\n Given a user has at least one fueltank reward\n And the fueltank reward is available\n Then the coupon code component shows the first reward returned\n And this reward is the most recently received reward by the user\n\n @motivating\n Scenario Outline: Coupon code has multiple states depending on reward status\n Given a user has at least one fueltank reward\n And the reward has most recent status <status>\n And the dateScheduledFor field is <dateScheduledFor>\n Then the component's status is set to <componentStatus>\n And the <errorMessageTextProp> is displayed under the input field\n\n Examples:\n | status | dateScheduledFor | componentStatus | errorMessageTextProp |\n | AVAILABLE | null | AVAILABLE | N/A |\n | EXPIRED | null | EXPIRED | expiredErrorMessage |\n | REDEEMED | null | REDEEMED | redeemedMessage |\n | CANCELLED | null | CANCELLED | cancelledErrorMessage |\n | PENDING | null | EMPTY_TANK | fullfillmentErrorMessage |\n | PENDING | 123412341234 | PENDING | pendingErrorMessage |\n | null | null | ERROR | genericErrorMessage |\n\n Scenario Outline: Coupon code's error message text props are grouped\n Given an end user is viewing the coupon code component in the widget editor\n And they are looking at the component's properties\n Then they see <prop>\n And <prop> is grouped under \"Coupon code error\"\n Examples:\n | prop |\n | N/A |\n | expiredErrorMessage |\n | redeemedMessage |\n | cancelledErrorMessage |\n | fullfillmentErrorMessage |\n | pendingErrorMessage |\n | genericErrorMessage |\n\n @minutia\n Scenario: Tooltip lifespan defaults to 2000\n Given the tooltip's lifespan is set to 2000\n And there is tooltip text\n When the component renders\n And the clipboard icon is clicked\n Then a tooltip appears for ~2 seconds\n\n @ui\n Scenario: Component shows an error state when there is an error\n Given a user is viewing the coupon code component\n When there is an error in the coupon code\n Then in place of the coupon code is an alert banner\n And the alert banner gives information about the error to the user\n\n @ui\n Scenario: Component shows an loading state\n Given a user is viewing the coupon code component\n When the coupon code is loading in\n Then the text inside the input is \"Loading...\"\n And the coupon code input box has a gray background\n And the cursor is set to \"default\"\n And the user cannot copy the text\n\n @ui\n Scenario Outline: User can edit the alignment of the coupon code text\n Given a user is editing the coupon code component\n Then they see \"Align text\" props\n And the default value is \"left\"\n When they change the option to <option>\n Then they see the text in <position>\n Examples:\n | option | position |\n | left | left |\n | center | center |\n | right | right |\n\n @ui\n Scenario Outline: The position of the copy button can be changed\n Given a user is editing the coupon code component\n Then they see \"Style\" props\n And the default value is \"icon\"\n When they change the option to <option>\n Then they see the copy button in <position>\n Examples:\n | option | position |\n | button outside | outside the input, on the right |\n | button below | outside the input, below |\n | icon | inside the input as an icon |\n\n @minutia\n Scenario: ICU string converts to a date\n Given a user is viewing a live coupon code code component\n And the \"pendingErrorText\" has the \"{unpendDate}\" ICU string\n And the program is configured for rewards to be pending\n Then the user will see an info alert banner\n And the ICU string is converted to the unpend date\n";
14066
+ const scenario$B = "@author:truman\n@owner:truman\nFeature: Coupon Code\n\n The coupon code component is a box that allows users to see and copy their coupon code for a given program\n\n @motivating\n Scenario: Component only fetches codes from current program\n Given a user has multiple rewards from various programs\n When the component is loaded\n Then it fetches the user's rewards from only the program associated with the widget\n\n @motivating\n Scenario: Component only looks at fueltank rewards\n Given a user has multiple rewards of different types\n When the component is loaded\n Then it filters the user's reward to only return FUELTANK rewards\n\n\n @motivating\n Scenario: The first (i.e. most recently received) reward is the reward that is displayed\n Given a user has at least one fueltank reward\n And the fueltank reward is available\n Then the coupon code component shows the first reward returned\n And this reward is the most recently received reward by the user\n\n @motivating\n Scenario Outline: Coupon code has multiple states depending on reward status\n Given a user has at least one fueltank reward\n And the reward has most recent status <status>\n And the dateScheduledFor field is <dateScheduledFor>\n Then the component's status is set to <componentStatus>\n And the <errorMessageTextProp> is displayed under the input field\n\n Examples:\n | status | dateScheduledFor | componentStatus | errorMessageTextProp |\n | AVAILABLE | null | AVAILABLE | N/A |\n | EXPIRED | null | EXPIRED | expiredErrorMessage |\n | REDEEMED | null | REDEEMED | redeemedMessage |\n | CANCELLED | null | CANCELLED | cancelledErrorMessage |\n | PENDING | null | EMPTY_TANK | fullfillmentErrorMessage |\n | PENDING | 123412341234 | PENDING | pendingErrorMessage |\n | null | null | ERROR | genericErrorMessage |\n\n Scenario Outline: Coupon code's error message text props are grouped\n Given an end user is viewing the coupon code component in the widget editor\n And they are looking at the component's properties\n Then they see <prop>\n And <prop> is grouped under \"Coupon code error\"\n Examples:\n | prop |\n | N/A |\n | expiredErrorMessage |\n | redeemedMessage |\n | cancelledErrorMessage |\n | fullfillmentErrorMessage |\n | pendingErrorMessage |\n | genericErrorMessage |\n\n @minutia\n Scenario: Tooltip lifespan defaults to 2000\n Given the tooltip's lifespan is set to 2000\n And there is tooltip text\n When the component renders\n And the clipboard icon is clicked\n Then a tooltip appears for ~2 seconds\n\n @ui\n Scenario: Component shows an error state when there is an error\n Given a user is viewing the coupon code component\n When there is an error in the coupon code\n Then in place of the coupon code is an alert banner\n And the alert banner gives information about the error to the user\n\n @ui\n Scenario: Component shows an loading state\n Given a user is viewing the coupon code component\n When the coupon code is loading in\n Then the text inside the input is \"Loading...\"\n And the coupon code input box has a gray background\n And the cursor is set to \"default\"\n And the user cannot copy the text\n\n @ui\n Scenario Outline: User can edit the alignment of the coupon code text\n Given a user is editing the coupon code component\n Then they see \"Align text\" props\n And the default value is \"left\"\n When they change the option to <option>\n Then they see the text in <position>\n Examples:\n | option | position |\n | left | left |\n | center | center |\n | right | right |\n\n @ui\n Scenario Outline: The position of the copy button can be changed\n Given a user is editing the coupon code component\n Then they see \"Style\" props\n And the default value is \"icon\"\n When they change the option to <option>\n Then they see the copy button in <position>\n Examples:\n | option | position |\n | button outside | outside the input, on the right |\n | button below | outside the input, below |\n | icon | inside the input as an icon |\n\n @minutia\n Scenario: ICU string converts to a date\n Given a user is viewing a live coupon code code component\n And the \"pendingErrorText\" has the \"{unpendDate}\" ICU string\n And the program is configured for rewards to be pending\n Then the user will see an info alert banner\n And the ICU string is converted to the unpend date\n";
13928
14067
 
13929
14068
  const CouponCode_stories = {
13930
14069
  title: "Components/Coupon Code",
13931
14070
  parameters: {
13932
- scenario: scenario$A,
14071
+ scenario: scenario$B,
13933
14072
  },
13934
14073
  };
13935
- const defaultProps$e = {
14074
+ const defaultProps$f = {
13936
14075
  tooltiptext: "Copied to Clipboard",
13937
14076
  copyString: "THANKSJANE125uv125",
13938
14077
  open: false,
@@ -13957,43 +14096,43 @@ const TextAlignRight$2 = () => {
13957
14096
  return h("sqm-coupon-code", { textAlign: "right" });
13958
14097
  };
13959
14098
  const CopyButton$2 = () => {
13960
- return (h("sqm-coupon-code", Object.assign({}, defaultProps$e, { buttonStyle: "button-outside" })));
14099
+ return (h("sqm-coupon-code", Object.assign({}, defaultProps$f, { buttonStyle: "button-outside" })));
13961
14100
  };
13962
14101
  const CopyButtonCustomLabel = () => {
13963
- return (h("sqm-coupon-code", Object.assign({}, defaultProps$e, { buttonStyle: "button-outside", "copy-button-label": "test long custom label" })));
14102
+ return (h("sqm-coupon-code", Object.assign({}, defaultProps$f, { buttonStyle: "button-outside", "copy-button-label": "test long custom label" })));
13964
14103
  };
13965
14104
  const CopyButtonBelow$2 = () => {
13966
- return (h("sqm-coupon-code", Object.assign({}, defaultProps$e, { buttonStyle: "button-below" })));
14105
+ return (h("sqm-coupon-code", Object.assign({}, defaultProps$f, { buttonStyle: "button-below" })));
13967
14106
  };
13968
14107
  const CopyButtonBelowCustomLabel = () => {
13969
- return (h("sqm-coupon-code", Object.assign({}, defaultProps$e, { buttonStyle: "button-below", "copy-button-label": "test long custom label" })));
14108
+ return (h("sqm-coupon-code", Object.assign({}, defaultProps$f, { buttonStyle: "button-below", "copy-button-label": "test long custom label" })));
13970
14109
  };
13971
14110
  const Loading$5 = () => {
13972
- return h(CouponCodeView, Object.assign({}, defaultProps$e, { loading: true }));
14111
+ return h(CouponCodeView, Object.assign({}, defaultProps$f, { loading: true }));
13973
14112
  };
13974
14113
  const CopyButtonLoading = () => {
13975
- return (h(CouponCodeView, Object.assign({}, defaultProps$e, { buttonStyle: "button-outside", loading: true })));
14114
+ return (h(CouponCodeView, Object.assign({}, defaultProps$f, { buttonStyle: "button-outside", loading: true })));
13976
14115
  };
13977
14116
  const CopyButtonBelowLoading = () => {
13978
- return (h(CouponCodeView, Object.assign({}, defaultProps$e, { buttonStyle: "button-below", loading: true })));
14117
+ return (h(CouponCodeView, Object.assign({}, defaultProps$f, { buttonStyle: "button-below", loading: true })));
13979
14118
  };
13980
14119
  const ErrorGeneric = () => {
13981
- return (h(CouponCodeView, Object.assign({}, defaultProps$e, { errorType: "warning", error: true, errorText: "We couldn't fetch your code. Please try again later or reach out to the Support team for help resolving this issue." })));
14120
+ return (h(CouponCodeView, Object.assign({}, defaultProps$f, { errorType: "warning", error: true, errorText: "We couldn't fetch your code. Please try again later or reach out to the Support team for help resolving this issue." })));
13982
14121
  };
13983
14122
  const ErrorPending = () => {
13984
- return (h(CouponCodeView, Object.assign({}, defaultProps$e, { errorType: "info", error: true, errorText: "Your code will be available on April 24, 2023. Mark your calendar and come back then to redeem your reward!" })));
14123
+ return (h(CouponCodeView, Object.assign({}, defaultProps$f, { errorType: "info", error: true, errorText: "Your code will be available on April 24, 2023. Mark your calendar and come back then to redeem your reward!" })));
13985
14124
  };
13986
14125
  const ErrorFullfillment = () => {
13987
- return (h(CouponCodeView, Object.assign({}, defaultProps$e, { errorType: "warning", error: true, errorText: "We couldn't fetch your code. Please try again later or reach out to the Support team for help resolving this issue." })));
14126
+ return (h(CouponCodeView, Object.assign({}, defaultProps$f, { errorType: "warning", error: true, errorText: "We couldn't fetch your code. Please try again later or reach out to the Support team for help resolving this issue." })));
13988
14127
  };
13989
14128
  const ErrorCancelled = () => {
13990
- return (h(CouponCodeView, Object.assign({}, defaultProps$e, { errorType: "warning", error: true, errorText: "This code has been cancelled. Please reach out to the Support team for help resolving this issue." })));
14129
+ return (h(CouponCodeView, Object.assign({}, defaultProps$f, { errorType: "warning", error: true, errorText: "This code has been cancelled. Please reach out to the Support team for help resolving this issue." })));
13991
14130
  };
13992
14131
  const ErrorExpired = () => {
13993
- return (h(CouponCodeView, Object.assign({}, defaultProps$e, { errorType: "warning", error: true, errorText: "Looks like this code has expired. Please reach out to the Support team for help resolving this issue." })));
14132
+ return (h(CouponCodeView, Object.assign({}, defaultProps$f, { errorType: "warning", error: true, errorText: "Looks like this code has expired. Please reach out to the Support team for help resolving this issue." })));
13994
14133
  };
13995
14134
  const ErrorRedeemed = () => {
13996
- return (h(CouponCodeView, Object.assign({}, defaultProps$e, { errorType: "success", error: true, errorText: "Looks like you\u2019ve already redeemed this code." })));
14135
+ return (h(CouponCodeView, Object.assign({}, defaultProps$f, { errorType: "success", error: true, errorText: "Looks like you\u2019ve already redeemed this code." })));
13997
14136
  };
13998
14137
 
13999
14138
  const CouponCode$1 = /*#__PURE__*/Object.freeze({
@@ -14019,55 +14158,55 @@ const CouponCode$1 = /*#__PURE__*/Object.freeze({
14019
14158
  ErrorRedeemed: ErrorRedeemed
14020
14159
  });
14021
14160
 
14022
- const scenario$B = "@author:noah\n@owner:noah\n\nFeature: Logout Current User\n\n Background:\n Given a user viewing an instant access widget\n\n @motivating\n @ui\n Scenario: A user on an instant access widget\n Given the user is identified\n And the user is logged in\n Then the component identifies the user by displaying their email in an ICU string\n And the users email displayed in the ICU string using hte \"{email}\" variable\n\n @motivating\n @ui\n Scenario: Users can switch who they are identified as through a link\n Given the user is identified\n And the user is logged in\n When the user clicks the link in the component\n Then the saved user identity is emptied\n And they are sent back to the registration form to re-identify themselves\n\n @minutia\n Scenario: Logout link empties the saved User Identity\n Given a valid user identity\n And the user is viewing the \"logged-in\" template\n When they click the logout link\n Then the user identity is set to \"undefined\"\n And the user is returned to the \"logged-out\" template";
14161
+ const scenario$C = "@author:noah\n@owner:noah\n\nFeature: Logout Current User\n\n Background:\n Given a user viewing an instant access widget\n\n @motivating\n @ui\n Scenario: A user on an instant access widget\n Given the user is identified\n And the user is logged in\n Then the component identifies the user by displaying their email in an ICU string\n And the users email displayed in the ICU string using hte \"{email}\" variable\n\n @motivating\n @ui\n Scenario: Users can switch who they are identified as through a link\n Given the user is identified\n And the user is logged in\n When the user clicks the link in the component\n Then the saved user identity is emptied\n And they are sent back to the registration form to re-identify themselves\n\n @minutia\n Scenario: Logout link empties the saved User Identity\n Given a valid user identity\n And the user is viewing the \"logged-in\" template\n When they click the logout link\n Then the user identity is set to \"undefined\"\n And the user is returned to the \"logged-out\" template";
14023
14162
 
14024
14163
  const LogoutCurrentUser_stories = {
14025
14164
  title: "Components/Logout Current User",
14026
14165
  parameters: {
14027
- scenario: scenario$B,
14166
+ scenario: scenario$C,
14028
14167
  },
14029
14168
  };
14030
- const defaultProps$f = {
14169
+ const defaultProps$g = {
14031
14170
  filledInEmailText: "Currently showing referral data for noah.clarke@saasquatch.com",
14032
14171
  onSwitchClick: () => console.log("clicked"),
14033
14172
  switchUserText: "not you?",
14034
14173
  loading: false,
14035
14174
  emailErrorText: "Error fetching email",
14036
14175
  };
14037
- const Default$f = () => {
14038
- return h(LogoutCurrentUserView, Object.assign({}, defaultProps$f));
14176
+ const Default$h = () => {
14177
+ return h(LogoutCurrentUserView, Object.assign({}, defaultProps$g));
14039
14178
  };
14040
14179
 
14041
14180
  const LogoutCurrentUser = /*#__PURE__*/Object.freeze({
14042
14181
  __proto__: null,
14043
14182
  'default': LogoutCurrentUser_stories,
14044
- Default: Default$f
14183
+ Default: Default$h
14045
14184
  });
14046
14185
 
14047
- const scenario$C = "@author:noah\n@owner:noah\n\nFeature: Link Button\n\n\t@ui\n\tScenario: Links can be opened in the same tab\n\t\tWhen a user clicks the button\n\t\tThen a link opens in the same tab\n\t\tAnd if the component is in an iFrame then the link is opened in the parent window not the iFrame\n\n\t@ui\n\tScenario: Links can be opened in a new tab\n\t\tWhen a user clicks the button\n\t\tThen a link opens in a new tab\n\t\tAnd if the component is in an iFrame then the link is still opened in a new tab\n\n\n\t@ui\n\tScenario: Props control the link and button text\n\t\tGiven the \"link\" prop is set to \"https://www.example.com\"\n\t\tAnd the \"buttonText\" prop is set to \"Click me!\"\n\t\tThen a button is shown with the text \"Click me!\"\n\t\tAnd when clicked the button opens https://www.example.com\n\n\t@ui\n\tScenario Outline: The button type can be set\n\t\tGiven the button type is set to <value>\n\t\tThen a <buttonType> is shown\n\t\tExamples:\n\t\t\t| value | buttonType |\n\t\t\t| <null> | primary |\n\t\t\t| default | default |\n\t\t\t| primary | primary |\n\t\t\t| success | success |\n\t\t\t| neutral | neutral |\n\t\t\t| warning | warning |\n\t\t\t| danger | danger |";
14186
+ const scenario$D = "@author:noah\n@owner:noah\n\nFeature: Link Button\n\n\t@ui\n\tScenario: Links can be opened in the same tab\n\t\tWhen a user clicks the button\n\t\tThen a link opens in the same tab\n\t\tAnd if the component is in an iFrame then the link is opened in the parent window not the iFrame\n\n\t@ui\n\tScenario: Links can be opened in a new tab\n\t\tWhen a user clicks the button\n\t\tThen a link opens in a new tab\n\t\tAnd if the component is in an iFrame then the link is still opened in a new tab\n\n\n\t@ui\n\tScenario: Props control the link and button text\n\t\tGiven the \"link\" prop is set to \"https://www.example.com\"\n\t\tAnd the \"buttonText\" prop is set to \"Click me!\"\n\t\tThen a button is shown with the text \"Click me!\"\n\t\tAnd when clicked the button opens https://www.example.com\n\n\t@ui\n\tScenario Outline: The button type can be set\n\t\tGiven the button type is set to <value>\n\t\tThen a <buttonType> is shown\n\t\tExamples:\n\t\t\t| value | buttonType |\n\t\t\t| <null> | primary |\n\t\t\t| default | default |\n\t\t\t| primary | primary |\n\t\t\t| success | success |\n\t\t\t| neutral | neutral |\n\t\t\t| warning | warning |\n\t\t\t| danger | danger |";
14048
14187
 
14049
14188
  const LinkButton_stories = {
14050
14189
  title: "Components/Link Button",
14051
14190
  parameters: {
14052
- scenario: scenario$C,
14191
+ scenario: scenario$D,
14053
14192
  },
14054
14193
  };
14055
- const defaultProps$g = {
14194
+ const defaultProps$h = {
14056
14195
  link: "https://example.com",
14057
14196
  openInNewTab: false,
14058
14197
  buttonText: "Button Text",
14059
14198
  };
14060
- const Default$g = () => {
14061
- return h("sqm-link-button", Object.assign({}, defaultProps$g));
14199
+ const Default$i = () => {
14200
+ return h("sqm-link-button", Object.assign({}, defaultProps$h));
14062
14201
  };
14063
14202
  const OpenInNewTab = () => {
14064
- return (h("sqm-link-button", Object.assign({}, { ...defaultProps$g, openInNewTab: true })));
14203
+ return (h("sqm-link-button", Object.assign({}, { ...defaultProps$h, openInNewTab: true })));
14065
14204
  };
14066
14205
 
14067
14206
  const LinkButton = /*#__PURE__*/Object.freeze({
14068
14207
  __proto__: null,
14069
14208
  'default': LinkButton_stories,
14070
- Default: Default$g,
14209
+ Default: Default$i,
14071
14210
  OpenInNewTab: OpenInNewTab
14072
14211
  });
14073
14212
 
@@ -14077,7 +14216,7 @@ const CloseButton_stories = {
14077
14216
  // scenario,
14078
14217
  },
14079
14218
  };
14080
- const defaultProps$h = {};
14219
+ const defaultProps$i = {};
14081
14220
  const containerStyles = {
14082
14221
  position: "relative",
14083
14222
  width: "500px",
@@ -14085,22 +14224,22 @@ const containerStyles = {
14085
14224
  border: "1px solid black",
14086
14225
  padding: "25px",
14087
14226
  };
14088
- const Default$h = () => {
14089
- return h(CloseButtonView, Object.assign({}, defaultProps$h));
14227
+ const Default$j = () => {
14228
+ return h(CloseButtonView, Object.assign({}, defaultProps$i));
14090
14229
  };
14091
14230
  const InAContainer = () => {
14092
14231
  return (h("div", { style: containerStyles },
14093
- h(CloseButtonView, Object.assign({}, defaultProps$h))));
14232
+ h(CloseButtonView, Object.assign({}, defaultProps$i))));
14094
14233
  };
14095
14234
  const CustomColor$1 = () => {
14096
14235
  return (h("div", { style: containerStyles },
14097
- h(CloseButtonView, Object.assign({}, { ...defaultProps$h, color: "blue" }))));
14236
+ h(CloseButtonView, Object.assign({}, { ...defaultProps$i, color: "blue" }))));
14098
14237
  };
14099
14238
 
14100
14239
  const CloseButton = /*#__PURE__*/Object.freeze({
14101
14240
  __proto__: null,
14102
14241
  'default': CloseButton_stories,
14103
- Default: Default$h,
14242
+ Default: Default$j,
14104
14243
  InAContainer: InAContainer,
14105
14244
  CustomColor: CustomColor$1
14106
14245
  });
@@ -14290,17 +14429,17 @@ const RadioCardView = ({ title, icon, description, selected, }) => {
14290
14429
  const RadioCard_stories = {
14291
14430
  title: "Components/Radio Card",
14292
14431
  };
14293
- const defaultProps$i = {
14432
+ const defaultProps$j = {
14294
14433
  selected: false,
14295
14434
  title: "Card Title",
14296
14435
  description: "Description text goes here",
14297
14436
  icon: "apple",
14298
14437
  };
14299
14438
  const DefaultView$1 = () => {
14300
- return h(RadioCardView, Object.assign({}, defaultProps$i));
14439
+ return h(RadioCardView, Object.assign({}, defaultProps$j));
14301
14440
  };
14302
14441
  const Selected = () => {
14303
- return h(RadioCardView, Object.assign({}, defaultProps$i, { selected: true }));
14442
+ return h(RadioCardView, Object.assign({}, defaultProps$j, { selected: true }));
14304
14443
  };
14305
14444
 
14306
14445
  const RadioCard = /*#__PURE__*/Object.freeze({
@@ -14313,13 +14452,13 @@ const RadioCard = /*#__PURE__*/Object.freeze({
14313
14452
  const ProgressBar_stories = {
14314
14453
  title: "Components/Progress Bar",
14315
14454
  };
14316
- const defaultProps$j = {
14455
+ const defaultProps$k = {
14317
14456
  progress: 2,
14318
14457
  goal: 4,
14319
14458
  steps: true,
14320
14459
  };
14321
14460
  const TaxAndPayoutsProgressBar = () => {
14322
- return h(ProgressBar$2, Object.assign({}, defaultProps$j, { stageCount: 4, currentStage: 2 }));
14461
+ return h(ProgressBar$2, Object.assign({}, defaultProps$k, { stageCount: 4, currentStage: 2 }));
14323
14462
  };
14324
14463
 
14325
14464
  const ProgressBar$1 = /*#__PURE__*/Object.freeze({
@@ -14391,7 +14530,6 @@ const BankingForm_stories = {
14391
14530
  };
14392
14531
  const bankingFormProps = {
14393
14532
  states: {
14394
- showVerification: false,
14395
14533
  hideSteps: false,
14396
14534
  disabled: false,
14397
14535
  loading: false,
@@ -14408,7 +14546,6 @@ const bankingFormProps = {
14408
14546
  loadingError: false,
14409
14547
  },
14410
14548
  callbacks: {
14411
- onVerification: () => { },
14412
14549
  onSubmit: async () => console.log("Submit"),
14413
14550
  setPaymentMethodChecked: () => { },
14414
14551
  setPaymentScheduleChecked: () => { },
@@ -14991,152 +15128,6 @@ const UseInvoiceTableCells = /*#__PURE__*/Object.freeze({
14991
15128
  InvoiceTableDemoHook: InvoiceTableDemoHook
14992
15129
  });
14993
15130
 
14994
- const WidgetEmailVerification_stories = {
14995
- title: "Components/Widget Email Verification",
14996
- };
14997
- const defaultProps$k = {
14998
- email: "",
14999
- error: false,
15000
- loading: false,
15001
- initialLoading: false,
15002
- sendCodeError: false,
15003
- };
15004
- const Default$i = () => (h("sqm-email-verification", { demoData: {} }));
15005
- const EmailIsPrefilled = () => (h("sqm-email-verification", { demoData: {
15006
- states: {
15007
- ...defaultProps$k,
15008
- email: "test@example.com",
15009
- },
15010
- } }));
15011
- const Loading$7 = () => (h("sqm-email-verification", { demoData: {
15012
- states: {
15013
- ...defaultProps$k,
15014
- initialLoading: true,
15015
- },
15016
- } }));
15017
- const SaveLoading = () => (h("sqm-email-verification", { demoData: {
15018
- states: {
15019
- ...defaultProps$k,
15020
- loading: true,
15021
- },
15022
- } }));
15023
- const InvalidEmail = () => (h("sqm-email-verification", { demoData: {
15024
- states: {
15025
- ...defaultProps$k,
15026
- error: true,
15027
- },
15028
- } }));
15029
- const SendCodeError = () => (h("sqm-email-verification", { demoData: {
15030
- states: {
15031
- ...defaultProps$k,
15032
- sendCodeError: true,
15033
- },
15034
- } }));
15035
-
15036
- const WidgetEmailVerification = /*#__PURE__*/Object.freeze({
15037
- __proto__: null,
15038
- 'default': WidgetEmailVerification_stories,
15039
- Default: Default$i,
15040
- EmailIsPrefilled: EmailIsPrefilled,
15041
- Loading: Loading$7,
15042
- SaveLoading: SaveLoading,
15043
- InvalidEmail: InvalidEmail,
15044
- SendCodeError: SendCodeError
15045
- });
15046
-
15047
- const WidgetCodeVerification_stories = {
15048
- title: "Components/Widget Code Verification",
15049
- };
15050
- const defaultProps$l = {
15051
- initialiseLoading: false,
15052
- email: "testemail@example.com",
15053
- loading: false,
15054
- verifyFailed: false,
15055
- emailResent: false,
15056
- };
15057
- const Default$j = () => (h("sqm-code-verification", { demoData: { states: defaultProps$l } }));
15058
- const InitialLoading = () => (h("sqm-code-verification", { demoData: {
15059
- states: {
15060
- ...defaultProps$l,
15061
- initialiseLoading: true,
15062
- },
15063
- } }));
15064
- const Loading$8 = () => (h("sqm-code-verification", { demoData: {
15065
- states: {
15066
- ...defaultProps$l,
15067
- loading: true,
15068
- },
15069
- } }));
15070
- const CodeResent = () => (h("sqm-code-verification", { demoData: {
15071
- states: {
15072
- ...defaultProps$l,
15073
- emailResent: true,
15074
- },
15075
- } }));
15076
- const VerificationFailed = () => (h("sqm-code-verification", { demoData: {
15077
- states: {
15078
- ...defaultProps$l,
15079
- verifyFailed: true,
15080
- },
15081
- } }));
15082
-
15083
- const WidgetCodeVerification = /*#__PURE__*/Object.freeze({
15084
- __proto__: null,
15085
- 'default': WidgetCodeVerification_stories,
15086
- Default: Default$j,
15087
- InitialLoading: InitialLoading,
15088
- Loading: Loading$8,
15089
- CodeResent: CodeResent,
15090
- VerificationFailed: VerificationFailed
15091
- });
15092
-
15093
- const PayoutButtonScroll_stories = {
15094
- title: "Components/Payout Scroll Button",
15095
- };
15096
- const defaultProps$m = {
15097
- payoutSettingsComplete: true,
15098
- };
15099
- const CompletedTaxForm = () => (h("sqm-payout-button-scroll", { demoData: { states: { ...defaultProps$m, payoutSettingsComplete: true } } }));
15100
-
15101
- const PayoutButtonScroll = /*#__PURE__*/Object.freeze({
15102
- __proto__: null,
15103
- 'default': PayoutButtonScroll_stories,
15104
- CompletedTaxForm: CompletedTaxForm
15105
- });
15106
-
15107
- const PayoutStatusAlert_stories = {
15108
- title: "Components/Payout Status Alert",
15109
- };
15110
- const defaultProps$n = {
15111
- error: false,
15112
- status: "INFORMATION_REQUIRED",
15113
- loading: false,
15114
- showVerifyIdentity: false,
15115
- };
15116
- const InformationRequired = () => (h("sqm-payout-status-alert", { demoData: { states: defaultProps$n } }));
15117
- const VerifyIdentity = () => (h("sqm-payout-status-alert", { demoData: { states: { ...defaultProps$n, status: "VERIFICATION_NEEDED" } } }));
15118
- const VerifyIdentityOpen = () => (h("sqm-payout-status-alert", { demoData: {
15119
- states: {
15120
- ...defaultProps$n,
15121
- status: "VERIFICATION_NEEDED",
15122
- showVerifyIdentity: true,
15123
- },
15124
- } }));
15125
- const Hold = () => (h("sqm-payout-status-alert", { demoData: { states: { ...defaultProps$n, status: "HOLD" } } }));
15126
- const Loading$9 = () => (h("sqm-payout-status-alert", { demoData: { states: { ...defaultProps$n, loading: true } } }));
15127
- const Error$a = () => (h("sqm-payout-status-alert", { demoData: { states: { ...defaultProps$n, error: true } } }));
15128
-
15129
- const PayoutStatusAlert = /*#__PURE__*/Object.freeze({
15130
- __proto__: null,
15131
- 'default': PayoutStatusAlert_stories,
15132
- InformationRequired: InformationRequired,
15133
- VerifyIdentity: VerifyIdentity,
15134
- VerifyIdentityOpen: VerifyIdentityOpen,
15135
- Hold: Hold,
15136
- Loading: Loading$9,
15137
- Error: Error$a
15138
- });
15139
-
15140
15131
  /**
15141
15132
  *
15142
15133
  * Themes
@@ -17827,6 +17818,7 @@ const stories = [
17827
17818
  ReferralIframe$1,
17828
17819
  NameFields$1,
17829
17820
  CheckboxField,
17821
+ MarketingEmailsCheckbox,
17830
17822
  DropdownField,
17831
17823
  InputField,
17832
17824
  RewardExchangeList,
@@ -17860,10 +17852,7 @@ const stories = [
17860
17852
  TaxFormSlots,
17861
17853
  PayoutDetailsCard,
17862
17854
  BankingInfoForm,
17863
- WidgetEmailVerification,
17864
- WidgetCodeVerification,
17865
- PayoutButtonScroll,
17866
- PayoutStatusAlert,
17855
+ NewPortalRegistrationForm,
17867
17856
  ];
17868
17857
  const StencilStorybook = class {
17869
17858
  constructor(hostRef) {