@saasquatch/mint-components 2.2.0-6 → 2.2.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 (456) hide show
  1. package/dist/cjs/{ShadowViewAddon-1c054d52.js → ShadowViewAddon-3b477e58.js} +429 -27
  2. package/dist/cjs/{data-c03e282a.js → data-8c8a08f6.js} +90 -1
  3. package/dist/cjs/extractProps-e9c55ba8.js +35 -0
  4. package/dist/cjs/{keys-5a2c9ed2.js → keys-cff24974.js} +0 -4
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/mint-components.cjs.js +1 -1
  7. package/dist/cjs/sqm-banking-info-form_10.cjs.entry.js +101 -482
  8. package/dist/cjs/sqm-big-stat_46.cjs.entry.js +360 -424
  9. package/dist/cjs/sqm-code-verification.cjs.entry.js +6 -5
  10. package/dist/cjs/sqm-email-verification.cjs.entry.js +418 -0
  11. package/dist/cjs/sqm-empty_4.cjs.entry.js +1 -1
  12. package/dist/cjs/{sqm-portal-container-view-70a47420.js → sqm-portal-container-view-757f921b.js} +5 -6
  13. package/dist/cjs/{sqm-portal-email-verification-view-d51c2a06.js → sqm-portal-email-verification-view-abb773a7.js} +1 -1
  14. package/dist/cjs/sqm-portal-email-verification.cjs.entry.js +2 -2
  15. package/dist/cjs/sqm-portal-forgot-password_6.cjs.entry.js +5 -5
  16. package/dist/cjs/{sqm-portal-profile-view-e6927959.js → sqm-portal-profile-view-3515e1e5.js} +1 -1
  17. package/dist/cjs/sqm-portal-profile.cjs.entry.js +2 -2
  18. package/dist/cjs/{sqm-portal-registration-form-view-fd48f1d3.js → sqm-portal-registration-form-view-a45f7a52.js} +1 -1
  19. package/dist/cjs/{sqm-portal-reset-password-view-d90d77f9.js → sqm-portal-reset-password-view-a767b044.js} +1 -1
  20. package/dist/cjs/sqm-portal-reset-password.cjs.entry.js +2 -2
  21. package/dist/cjs/{sqm-portal-verify-email-view-6258dcae.js → sqm-portal-verify-email-view-717d0633.js} +1 -1
  22. package/dist/cjs/sqm-referral-table_11.cjs.entry.js +10 -28
  23. package/dist/cjs/sqm-rewards-table-customer-note-cell.cjs.entry.js +1 -1
  24. package/dist/cjs/sqm-rewards-table_9.cjs.entry.js +9 -30
  25. package/dist/cjs/sqm-stencilbook.cjs.entry.js +532 -740
  26. package/dist/cjs/{sqm-text-span-view-8a32dd8c.js → sqm-text-span-view-b9e10f5d.js} +1 -1
  27. package/dist/cjs/sqm-text-span.cjs.entry.js +1 -1
  28. package/dist/cjs/{sqm-user-info-form-view-4d56b339.js → sqm-user-info-form-view-53306f6e.js} +40 -33
  29. package/dist/cjs/sqm-widget-verification-controller.cjs.entry.js +1 -1
  30. package/dist/cjs/sqm-widget-verification.cjs.entry.js +214 -0
  31. package/dist/cjs/{usePayoutStatus-0a98ee05.js → usePayoutStatus-0192fccd.js} +5 -3
  32. package/dist/collection/collection-manifest.json +1 -1
  33. package/dist/collection/components/sqm-big-stat/useBigStat.js +5 -6
  34. package/dist/collection/components/sqm-checkbox-field/sqm-checkbox-field-view.js +1 -1
  35. package/dist/collection/components/sqm-checkbox-field/sqm-checkbox-field.js +2 -3
  36. package/dist/collection/components/sqm-portal-container/sqm-portal-container-view.js +6 -7
  37. package/dist/collection/components/sqm-portal-google-login/sqm-portal-google-login.js +1 -1
  38. package/dist/collection/components/sqm-portal-login/sqm-portal-login.js +1 -1
  39. package/dist/collection/components/sqm-referral-iframe/ReferralIframe.stories.js +1 -0
  40. package/dist/collection/components/sqm-referral-iframe/sqm-referral-iframe-view.js +1 -1
  41. package/dist/collection/components/sqm-referral-iframe/sqm-referral-iframe.js +27 -1
  42. package/dist/collection/components/sqm-referral-table/ReferralTable.stories.js +0 -1
  43. package/dist/collection/components/sqm-referral-table/ReferralTableRewardsCell.stories.js +0 -1
  44. package/dist/collection/components/sqm-referral-table/TaxAndCashReferralTable.stories.js +2 -2
  45. package/dist/collection/components/sqm-referral-table/TaxAndCashReferralTableRewardsCell.stories.js +145 -209
  46. package/dist/collection/components/sqm-referral-table/cells/sqm-referral-table-rewards-cell.js +10 -30
  47. package/dist/collection/components/sqm-rewards-table/RewardsTableCell.stories.js +0 -1
  48. package/dist/collection/components/sqm-rewards-table/TaxAndCashRewardsTable.stories.js +2 -2
  49. package/dist/collection/components/sqm-rewards-table/TaxAndCashRewardsTableCell.stories.js +137 -223
  50. package/dist/collection/components/sqm-rewards-table/cells/sqm-rewards-table-status-cell.js +10 -30
  51. package/dist/collection/components/sqm-rewards-table/useRewardsTable.js +0 -1
  52. package/dist/collection/components/sqm-share-code/sqm-share-code.js +0 -1
  53. package/dist/collection/components/sqm-share-link/ShareLink.stories.js +136 -11
  54. package/dist/collection/components/sqm-share-link/UseShareLink.stories.js +14 -5
  55. package/dist/collection/components/sqm-share-link/sqm-share-link-view.js +192 -0
  56. package/dist/collection/components/sqm-share-link/sqm-share-link.js +935 -48
  57. package/dist/collection/components/sqm-share-link/useShareLink.js +227 -14
  58. package/dist/collection/components/sqm-stencilbook/sqm-stencilbook.js +2 -4
  59. package/dist/collection/components/sqm-text-span/sqm-text-span-view.js +1 -1
  60. package/dist/collection/components/sqm-user-attribute/UserAttribute.stories.js +43 -0
  61. package/dist/collection/components/sqm-user-attribute/sqm-user-attribute-view.js +19 -0
  62. package/dist/collection/components/sqm-user-attribute/sqm-user-attribute.js +175 -0
  63. package/dist/collection/components/sqm-user-attribute/useUserAttribute.js +30 -0
  64. package/dist/collection/components/sqm-widget-verification/keys.js +0 -2
  65. package/dist/collection/components/sqm-widget-verification/sqm-code-verification/sqm-code-verification-view.js +4 -3
  66. package/dist/collection/components/sqm-widget-verification/sqm-email-verification/sqm-email-verification-view.js +2 -0
  67. package/dist/collection/components/sqm-widget-verification/sqm-email-verification/useEmailVerification.js +9 -19
  68. package/dist/collection/components/sqm-widget-verification/sqm-widget-verification.js +46 -486
  69. package/dist/collection/components/sqm-widget-verification/useWidgetVerification.js +11 -43
  70. package/dist/collection/components/tax-and-cash/data.js +0 -1
  71. package/dist/collection/components/tax-and-cash/sqm-banking-info-form/formDefinitions.js +37 -75
  72. package/dist/collection/components/tax-and-cash/sqm-banking-info-form/sqm-banking-info-form.js +13 -688
  73. package/dist/collection/components/tax-and-cash/sqm-banking-info-form/useBankingInfoForm.js +1 -95
  74. package/dist/collection/components/tax-and-cash/sqm-indirect-tax-form/sqm-indirect-tax-form.js +4 -4
  75. package/dist/collection/components/tax-and-cash/sqm-indirect-tax-form/useIndirectTaxForm.js +12 -51
  76. package/dist/collection/components/tax-and-cash/sqm-payout-details-card/sqm-payout-details-card.js +2 -2
  77. package/dist/collection/components/tax-and-cash/sqm-tax-and-cash/sqm-tax-and-cash.js +36 -7
  78. package/dist/collection/components/tax-and-cash/sqm-tax-and-cash/useTaxAndCash.js +0 -3
  79. package/dist/collection/components/tax-and-cash/sqm-tax-and-cash-dashboard/sqm-tax-and-cash-dashboard.js +2 -2
  80. package/dist/collection/components/tax-and-cash/sqm-user-info-form/UserInfoFormView.stories.js +1 -0
  81. package/dist/collection/components/tax-and-cash/sqm-user-info-form/sqm-user-info-form-view.js +18 -10
  82. package/dist/collection/components/tax-and-cash/sqm-user-info-form/sqm-user-info-form.js +25 -0
  83. package/dist/collection/components/tax-and-cash/sqm-user-info-form/useUserInfoForm.js +17 -34
  84. package/dist/esm/{ShadowViewAddon-4d554869.js → ShadowViewAddon-0b980200.js} +435 -34
  85. package/dist/esm/data-12e6aae1.js +216 -0
  86. package/dist/esm/extractProps-54064fb0.js +32 -0
  87. package/dist/esm/{global-75e96214.js → global-96c14d63.js} +1 -1
  88. package/dist/esm/{index.module-02cb914c.js → index.module-b23fdad8.js} +1 -1
  89. package/dist/esm/keys-406491dc.js +6 -0
  90. package/dist/esm/loader.js +3 -3
  91. package/dist/esm/mint-components.js +3 -3
  92. package/dist/esm/{re-render-bf46ba54.js → re-render-f30aeb6b.js} +1 -1
  93. package/dist/esm/sqm-banking-info-form_10.entry.js +95 -476
  94. package/dist/esm/sqm-big-stat_46.entry.js +364 -428
  95. package/dist/esm/sqm-close-button.entry.js +1 -1
  96. package/dist/esm/sqm-code-verification.entry.js +9 -8
  97. package/dist/esm/sqm-context-router.entry.js +1 -1
  98. package/dist/esm/sqm-email-verification.entry.js +414 -0
  99. package/dist/esm/sqm-empty_4.entry.js +3 -3
  100. package/dist/esm/sqm-google-sign-in.entry.js +1 -1
  101. package/dist/esm/sqm-graphql-client-provider.entry.js +1 -1
  102. package/dist/esm/sqm-instant-access-registration.entry.js +3 -3
  103. package/dist/esm/{sqm-lead-checkbox-field-view-bfafee56.js → sqm-lead-checkbox-field-view-7928db07.js} +1 -1
  104. package/dist/esm/sqm-lead-checkbox-field.entry.js +4 -4
  105. package/dist/esm/{sqm-lead-input-field-view-b945edf4.js → sqm-lead-input-field-view-d1b91650.js} +1 -1
  106. package/dist/esm/sqm-lead-input-field.entry.js +4 -4
  107. package/dist/esm/sqm-leaderboard-rank.entry.js +2 -2
  108. package/dist/esm/sqm-logout-current-user.entry.js +1 -1
  109. package/dist/esm/{sqm-navigation-sidebar-item-view-8d98fcf3.js → sqm-navigation-sidebar-item-view-b3beac5a.js} +1 -1
  110. package/dist/esm/sqm-navigation-sidebar-item.entry.js +2 -2
  111. package/dist/esm/sqm-navigation-sidebar.entry.js +1 -1
  112. package/dist/esm/sqm-pagination_3.entry.js +3 -3
  113. package/dist/esm/sqm-password-field.entry.js +2 -2
  114. package/dist/esm/sqm-popup-container.entry.js +1 -1
  115. package/dist/esm/{sqm-portal-container-view-a8c708cd.js → sqm-portal-container-view-200c9df8.js} +6 -7
  116. package/dist/esm/{sqm-portal-email-verification-view-58bad294.js → sqm-portal-email-verification-view-04528277.js} +2 -2
  117. package/dist/esm/sqm-portal-email-verification.entry.js +4 -4
  118. package/dist/esm/sqm-portal-forgot-password_6.entry.js +8 -8
  119. package/dist/esm/sqm-portal-logout.entry.js +1 -1
  120. package/dist/esm/{sqm-portal-profile-view-115bad4a.js → sqm-portal-profile-view-b5ea620f.js} +2 -2
  121. package/dist/esm/sqm-portal-profile.entry.js +5 -5
  122. package/dist/esm/sqm-portal-protected-route.entry.js +1 -1
  123. package/dist/esm/{sqm-portal-registration-form-view-9bf30b56.js → sqm-portal-registration-form-view-79265df5.js} +1 -1
  124. package/dist/esm/{sqm-portal-reset-password-view-f8d1689c.js → sqm-portal-reset-password-view-f84c04cf.js} +1 -1
  125. package/dist/esm/sqm-portal-reset-password.entry.js +3 -3
  126. package/dist/esm/{sqm-portal-verify-email-view-c053ead1.js → sqm-portal-verify-email-view-c61536b7.js} +2 -2
  127. package/dist/esm/sqm-qr-code.entry.js +2 -2
  128. package/dist/esm/sqm-referral-table_11.entry.js +15 -33
  129. package/dist/esm/sqm-rewards-table-customer-note-cell.entry.js +1 -1
  130. package/dist/esm/sqm-rewards-table-customer-note-column.entry.js +2 -2
  131. package/dist/esm/sqm-rewards-table_9.entry.js +14 -35
  132. package/dist/esm/sqm-stencilbook.entry.js +506 -714
  133. package/dist/esm/sqm-tab.entry.js +2 -2
  134. package/dist/esm/sqm-tabs.entry.js +3 -3
  135. package/dist/esm/{sqm-text-span-view-4db9e33f.js → sqm-text-span-view-72f43dff.js} +1 -1
  136. package/dist/esm/sqm-text-span.entry.js +1 -1
  137. package/dist/esm/{sqm-user-info-form-view-d13f9d3e.js → sqm-user-info-form-view-19d81a2b.js} +20 -13
  138. package/dist/esm/sqm-widget-verification-controller.entry.js +2 -2
  139. package/dist/esm/sqm-widget-verification.entry.js +210 -0
  140. package/dist/esm/{useChildElements-06937df7.js → useChildElements-9bccfb72.js} +1 -1
  141. package/dist/esm/{useInstantAccessRegistration-69c9ffe0.js → useInstantAccessRegistration-69fefed0.js} +2 -2
  142. package/dist/esm/{useLeadFormState-332b2796.js → useLeadFormState-dd4e8b08.js} +2 -2
  143. package/dist/esm/{usePayoutStatus-227ae365.js → usePayoutStatus-46c0c289.js} +4 -3
  144. package/dist/esm/{usePortalRegistrationForm-3a1f36a2.js → usePortalRegistrationForm-62de6fb1.js} +2 -2
  145. package/dist/esm/{useReferralCodes-25f8b792.js → useReferralCodes-52ca720f.js} +1 -1
  146. package/dist/esm/{useReferralTable-03d32c6f.js → useReferralTable-92af4133.js} +3 -3
  147. package/dist/esm/{useRegistrationFormState-aa44cfff.js → useRegistrationFormState-2c090c38.js} +1 -1
  148. package/dist/esm/{useVerificationEmail-9f2c0bab.js → useVerificationEmail-c13c3b51.js} +1 -1
  149. package/dist/esm/{utilities-cbd8f2eb.js → utilities-77b1e0cc.js} +1 -1
  150. package/dist/esm-es5/ShadowViewAddon-0b980200.js +1 -0
  151. package/dist/esm-es5/data-12e6aae1.js +1 -0
  152. package/dist/esm-es5/extractProps-54064fb0.js +1 -0
  153. package/dist/esm-es5/{global-75e96214.js → global-96c14d63.js} +1 -1
  154. package/dist/esm-es5/{index.module-02cb914c.js → index.module-b23fdad8.js} +1 -1
  155. package/dist/esm-es5/keys-406491dc.js +1 -0
  156. package/dist/esm-es5/loader.js +1 -1
  157. package/dist/esm-es5/mint-components.js +1 -1
  158. package/dist/esm-es5/{re-render-bf46ba54.js → re-render-f30aeb6b.js} +1 -1
  159. package/dist/esm-es5/sqm-banking-info-form_10.entry.js +1 -1
  160. package/dist/esm-es5/sqm-big-stat_46.entry.js +1 -1
  161. package/dist/esm-es5/sqm-close-button.entry.js +1 -1
  162. package/dist/esm-es5/sqm-code-verification.entry.js +1 -1
  163. package/dist/esm-es5/sqm-context-router.entry.js +1 -1
  164. package/dist/esm-es5/sqm-email-verification.entry.js +1 -0
  165. package/dist/esm-es5/sqm-empty_4.entry.js +1 -1
  166. package/dist/esm-es5/sqm-google-sign-in.entry.js +1 -1
  167. package/dist/esm-es5/sqm-graphql-client-provider.entry.js +1 -1
  168. package/dist/esm-es5/sqm-instant-access-registration.entry.js +1 -1
  169. package/dist/esm-es5/{sqm-lead-checkbox-field-view-bfafee56.js → sqm-lead-checkbox-field-view-7928db07.js} +1 -1
  170. package/dist/esm-es5/sqm-lead-checkbox-field.entry.js +1 -1
  171. package/dist/esm-es5/{sqm-lead-input-field-view-b945edf4.js → sqm-lead-input-field-view-d1b91650.js} +1 -1
  172. package/dist/esm-es5/sqm-lead-input-field.entry.js +1 -1
  173. package/dist/esm-es5/sqm-leaderboard-rank.entry.js +1 -1
  174. package/dist/esm-es5/sqm-logout-current-user.entry.js +1 -1
  175. package/dist/esm-es5/{sqm-navigation-sidebar-item-view-8d98fcf3.js → sqm-navigation-sidebar-item-view-b3beac5a.js} +1 -1
  176. package/dist/esm-es5/sqm-navigation-sidebar-item.entry.js +1 -1
  177. package/dist/esm-es5/sqm-navigation-sidebar.entry.js +1 -1
  178. package/dist/esm-es5/sqm-pagination_3.entry.js +1 -1
  179. package/dist/esm-es5/sqm-password-field.entry.js +1 -1
  180. package/dist/esm-es5/sqm-popup-container.entry.js +1 -1
  181. package/dist/esm-es5/sqm-portal-container-view-200c9df8.js +1 -0
  182. package/dist/esm-es5/{sqm-portal-email-verification-view-58bad294.js → sqm-portal-email-verification-view-04528277.js} +1 -1
  183. package/dist/esm-es5/sqm-portal-email-verification.entry.js +1 -1
  184. package/dist/esm-es5/sqm-portal-forgot-password_6.entry.js +1 -1
  185. package/dist/esm-es5/sqm-portal-logout.entry.js +1 -1
  186. package/dist/esm-es5/{sqm-portal-profile-view-115bad4a.js → sqm-portal-profile-view-b5ea620f.js} +1 -1
  187. package/dist/esm-es5/sqm-portal-profile.entry.js +1 -1
  188. package/dist/esm-es5/sqm-portal-protected-route.entry.js +1 -1
  189. package/dist/esm-es5/{sqm-portal-registration-form-view-9bf30b56.js → sqm-portal-registration-form-view-79265df5.js} +1 -1
  190. package/dist/esm-es5/{sqm-portal-reset-password-view-f8d1689c.js → sqm-portal-reset-password-view-f84c04cf.js} +1 -1
  191. package/dist/esm-es5/sqm-portal-reset-password.entry.js +1 -1
  192. package/dist/esm-es5/{sqm-portal-verify-email-view-c053ead1.js → sqm-portal-verify-email-view-c61536b7.js} +1 -1
  193. package/dist/esm-es5/sqm-qr-code.entry.js +1 -1
  194. package/dist/esm-es5/sqm-referral-table_11.entry.js +1 -1
  195. package/dist/esm-es5/sqm-rewards-table-customer-note-cell.entry.js +1 -1
  196. package/dist/esm-es5/sqm-rewards-table-customer-note-column.entry.js +1 -1
  197. package/dist/esm-es5/sqm-rewards-table_9.entry.js +1 -1
  198. package/dist/esm-es5/sqm-stencilbook.entry.js +1 -1
  199. package/dist/esm-es5/sqm-tab.entry.js +1 -1
  200. package/dist/esm-es5/sqm-tabs.entry.js +1 -1
  201. package/dist/esm-es5/{sqm-text-span-view-4db9e33f.js → sqm-text-span-view-72f43dff.js} +1 -1
  202. package/dist/esm-es5/sqm-text-span.entry.js +1 -1
  203. package/dist/esm-es5/sqm-user-info-form-view-19d81a2b.js +1 -0
  204. package/dist/esm-es5/sqm-widget-verification-controller.entry.js +1 -1
  205. package/dist/esm-es5/sqm-widget-verification.entry.js +1 -0
  206. package/dist/esm-es5/{useChildElements-06937df7.js → useChildElements-9bccfb72.js} +1 -1
  207. package/dist/esm-es5/{useInstantAccessRegistration-69c9ffe0.js → useInstantAccessRegistration-69fefed0.js} +1 -1
  208. package/dist/esm-es5/{useLeadFormState-332b2796.js → useLeadFormState-dd4e8b08.js} +1 -1
  209. package/dist/esm-es5/{usePayoutStatus-227ae365.js → usePayoutStatus-46c0c289.js} +2 -2
  210. package/dist/esm-es5/{usePortalRegistrationForm-3a1f36a2.js → usePortalRegistrationForm-62de6fb1.js} +1 -1
  211. package/dist/esm-es5/{useReferralCodes-25f8b792.js → useReferralCodes-52ca720f.js} +1 -1
  212. package/dist/esm-es5/{useReferralTable-03d32c6f.js → useReferralTable-92af4133.js} +1 -1
  213. package/dist/esm-es5/{useRegistrationFormState-aa44cfff.js → useRegistrationFormState-2c090c38.js} +1 -1
  214. package/dist/esm-es5/{useVerificationEmail-9f2c0bab.js → useVerificationEmail-c13c3b51.js} +1 -1
  215. package/dist/esm-es5/{utilities-cbd8f2eb.js → utilities-77b1e0cc.js} +1 -1
  216. package/dist/mint-components/mint-components.esm.js +1 -1
  217. package/dist/mint-components/mint-components.js +1 -1
  218. package/dist/mint-components/p-00b235c5.system.entry.js +1 -0
  219. package/dist/mint-components/{p-4eadbd5b.entry.js → p-013564b3.entry.js} +1 -1
  220. package/dist/mint-components/{p-1b0326d1.entry.js → p-02499e08.entry.js} +1 -1
  221. package/dist/mint-components/{p-d34564f8.system.entry.js → p-027fc3be.system.entry.js} +1 -1
  222. package/dist/mint-components/{p-bb0b5e4b.js → p-035d9b65.js} +1 -1
  223. package/dist/mint-components/{p-e651593c.system.js → p-036a2617.system.js} +1 -1
  224. package/dist/mint-components/p-044f930a.system.js +1 -0
  225. package/dist/mint-components/p-0706cf9e.system.entry.js +1 -0
  226. package/dist/mint-components/p-0797a946.js +1 -0
  227. package/dist/mint-components/{p-60b1f3d9.entry.js → p-09348341.entry.js} +1 -1
  228. package/dist/mint-components/{p-29bc5f50.entry.js → p-09f7aacd.entry.js} +2 -2
  229. package/dist/mint-components/p-0b1e90fe.system.js +1 -0
  230. package/dist/{esm/data-017e5ef2.js → mint-components/p-0c0d4065.js} +5 -24
  231. package/dist/mint-components/{p-cfea215d.js → p-0d83907e.js} +1 -1
  232. package/dist/mint-components/p-1021a49f.system.entry.js +1 -0
  233. package/dist/mint-components/p-13292317.entry.js +11 -0
  234. package/dist/mint-components/{p-731c4d33.entry.js → p-13d1b10d.entry.js} +1 -1
  235. package/dist/mint-components/{p-d284ae70.system.js → p-172675ca.system.js} +1 -1
  236. package/dist/mint-components/{p-b2ad3fca.system.js → p-19c441b2.system.js} +1 -1
  237. package/dist/mint-components/{p-dafe30c3.entry.js → p-1d92c169.entry.js} +1 -1
  238. package/dist/mint-components/{p-0815b973.system.js → p-205cfdcd.system.js} +1 -1
  239. package/dist/mint-components/{p-ae4994e1.js → p-2668335b.js} +1 -1
  240. package/dist/mint-components/{p-13bb56a8.system.entry.js → p-2b4af8e8.system.entry.js} +1 -1
  241. package/dist/mint-components/p-2d5c2bd4.system.entry.js +1 -0
  242. package/dist/mint-components/{p-2190dc73.system.js → p-30c1ef36.system.js} +1 -1
  243. package/dist/mint-components/{p-4eaa3eb7.js → p-3286ef38.js} +1 -1
  244. package/dist/mint-components/{p-eae44b42.js → p-3366b81e.js} +2 -2
  245. package/dist/mint-components/p-38c7775a.js +1 -0
  246. package/dist/mint-components/p-3adbfd0b.system.js +6 -0
  247. package/dist/mint-components/p-3af3e2c1.entry.js +25 -0
  248. package/dist/mint-components/{p-4e3db52b.entry.js → p-3bc62ca6.entry.js} +1 -1
  249. package/dist/mint-components/{p-d71a8b38.entry.js → p-40bad95a.entry.js} +2 -2
  250. package/dist/mint-components/{p-bd972473.system.js → p-43c31fd5.system.js} +1 -1
  251. package/dist/mint-components/{p-df897432.system.entry.js → p-4da5a3fe.system.entry.js} +1 -1
  252. package/dist/mint-components/{p-bcfdb510.entry.js → p-52674798.entry.js} +1 -1
  253. package/dist/mint-components/p-5492dd51.system.entry.js +1 -0
  254. package/dist/mint-components/p-57dd28bd.system.js +1 -0
  255. package/dist/mint-components/p-5b1d2866.system.js +1 -0
  256. package/dist/mint-components/{p-02c0f88e.system.entry.js → p-5b871e38.system.entry.js} +1 -1
  257. package/dist/mint-components/p-5bc5c61e.entry.js +1 -0
  258. package/dist/mint-components/{p-7ea3f49c.entry.js → p-5c4ba8a0.entry.js} +1 -1
  259. package/dist/mint-components/{p-81bc6dca.system.entry.js → p-5ce78407.system.entry.js} +1 -1
  260. package/dist/mint-components/{p-14183edc.entry.js → p-61897e72.entry.js} +1 -1
  261. package/dist/mint-components/{p-025ddad2.system.entry.js → p-626b31cb.system.entry.js} +1 -1
  262. package/dist/mint-components/{p-bf9ab2d3.js → p-642f2c89.js} +1 -1
  263. package/dist/mint-components/{p-78e6dc8d.entry.js → p-653db72e.entry.js} +1 -1
  264. package/dist/mint-components/{p-27daf264.entry.js → p-6668f9f0.entry.js} +1 -1
  265. package/dist/mint-components/{p-f368f04a.system.js → p-686dd5eb.system.js} +1 -1
  266. package/dist/mint-components/p-6c4ad51a.js +1 -0
  267. package/dist/mint-components/{p-8e148cb0.system.js → p-7265bbcb.system.js} +1 -1
  268. package/dist/mint-components/{p-2d3f7b76.system.entry.js → p-738dce27.system.entry.js} +1 -1
  269. package/dist/mint-components/{p-379cb9f1.system.js → p-7562cd98.system.js} +1 -1
  270. package/dist/mint-components/{p-5fdf0286.system.js → p-77b9cde8.system.js} +1 -1
  271. package/dist/mint-components/p-77fa2383.entry.js +1 -0
  272. package/dist/mint-components/{p-f6de2e5c.system.entry.js → p-782af7ae.system.entry.js} +1 -1
  273. package/dist/mint-components/p-7939e4af.entry.js +1 -0
  274. package/dist/mint-components/{p-1317cc92.system.js → p-7b59e13c.system.js} +1 -1
  275. package/dist/mint-components/{p-f32050f6.system.js → p-7efb8782.system.js} +1 -1
  276. package/dist/mint-components/{p-24f1d342.system.entry.js → p-80e116ec.system.entry.js} +1 -1
  277. package/dist/mint-components/p-8285869e.entry.js +9 -0
  278. package/dist/mint-components/{p-614723aa.js → p-832aea99.js} +1 -1
  279. package/dist/mint-components/{p-e920c95c.system.js → p-85721089.system.js} +1 -1
  280. package/dist/mint-components/{p-376c7608.system.js → p-8583ce0c.system.js} +1 -1
  281. package/dist/mint-components/{p-71561bb2.system.entry.js → p-8899ff38.system.entry.js} +1 -1
  282. package/dist/mint-components/p-892797eb.system.entry.js +1 -0
  283. package/dist/mint-components/{p-2ab31786.js → p-8962e023.js} +1 -1
  284. package/dist/mint-components/{p-1599a178.entry.js → p-8f2d03c7.entry.js} +1 -1
  285. package/dist/mint-components/{p-ab59c5eb.system.entry.js → p-90833864.system.entry.js} +1 -1
  286. package/dist/mint-components/p-91a96e98.entry.js +1 -0
  287. package/dist/mint-components/{p-ca5b9f4d.system.entry.js → p-9390586b.system.entry.js} +1 -1
  288. package/dist/mint-components/{p-38d04e4b.entry.js → p-95510f27.entry.js} +1 -1
  289. package/dist/mint-components/{p-432a44de.entry.js → p-982d1f6f.entry.js} +2 -3
  290. package/dist/mint-components/{p-c66e5217.system.js → p-a0c5631b.system.js} +1 -1
  291. package/dist/mint-components/{p-df88dcaa.system.js → p-a4825ec2.system.js} +1 -1
  292. package/dist/mint-components/{p-0766438e.js → p-a4f8abad.js} +1 -1
  293. package/dist/mint-components/{p-209157a9.system.entry.js → p-a96c9bbb.system.entry.js} +1 -1
  294. package/dist/mint-components/{p-eee0bcf4.entry.js → p-af407cce.entry.js} +1 -1
  295. package/dist/mint-components/p-b2b85238.entry.js +1 -0
  296. package/dist/mint-components/p-b395470f.entry.js +16 -0
  297. package/dist/mint-components/{p-45e2a83a.js → p-b3ad957c.js} +1 -1
  298. package/dist/mint-components/{p-921eb024.entry.js → p-b66f45d1.entry.js} +1 -1
  299. package/dist/mint-components/{p-cfba6b4e.system.entry.js → p-b96e90a2.system.entry.js} +1 -1
  300. package/dist/mint-components/{p-45230a44.js → p-bab4929e.js} +1 -1
  301. package/dist/mint-components/p-bba16a46.system.entry.js +1 -0
  302. package/dist/mint-components/{p-c0a85e22.js → p-bc386a7b.js} +1 -1
  303. package/dist/mint-components/p-be12607e.entry.js +281 -0
  304. package/dist/mint-components/{p-a7f72a66.js → p-bee4af5d.js} +1 -1
  305. package/dist/mint-components/p-bf188b72.system.entry.js +1 -0
  306. package/dist/mint-components/{p-6b4e5d94.system.entry.js → p-c30d0049.system.entry.js} +1 -1
  307. package/dist/mint-components/{p-30cfe3e3.system.entry.js → p-c45a929a.system.entry.js} +1 -1
  308. package/dist/mint-components/{p-50d959bd.js → p-c813ec64.js} +1 -1
  309. package/dist/mint-components/p-c8a3f3b0.js +499 -0
  310. package/dist/mint-components/{p-b3309d9b.entry.js → p-c8a8d231.entry.js} +2 -2
  311. package/dist/mint-components/{p-3354cc75.system.entry.js → p-c8bcbf8b.system.entry.js} +1 -1
  312. package/dist/mint-components/p-ca098be1.system.js +1 -0
  313. package/dist/mint-components/{p-623a0a0b.system.entry.js → p-d005df28.system.entry.js} +1 -1
  314. package/dist/mint-components/{p-8a6531d2.js → p-d0993bb9.js} +1 -1
  315. package/dist/mint-components/p-d18dedd4.js +1 -0
  316. package/dist/mint-components/{p-e1292288.system.entry.js → p-d3b1ab20.system.entry.js} +1 -1
  317. package/dist/mint-components/p-d4f332a7.entry.js +106 -0
  318. package/dist/mint-components/{p-b1765c78.system.js → p-d55c50af.system.js} +1 -1
  319. package/dist/mint-components/p-d6193876.system.js +1 -0
  320. package/dist/mint-components/{p-092c2606.entry.js → p-db0a2afd.entry.js} +1 -1
  321. package/dist/mint-components/p-de0d6fd7.js +49 -0
  322. package/dist/mint-components/p-e00ec007.js +1 -0
  323. package/dist/mint-components/{p-9a15cd5a.system.entry.js → p-e12754f5.system.entry.js} +1 -1
  324. package/dist/mint-components/p-e30abc44.js +1 -0
  325. package/dist/mint-components/{p-3218bb1d.entry.js → p-e506bf7f.entry.js} +1 -1
  326. package/dist/mint-components/p-e55aafe9.system.js +1 -0
  327. package/dist/mint-components/{p-3bbc0db2.entry.js → p-e5ea43b1.entry.js} +2 -2
  328. package/dist/mint-components/{p-abd717d4.js → p-e6240c72.js} +1 -1
  329. package/dist/mint-components/{p-3a41b39c.js → p-e84b874c.js} +1 -1
  330. package/dist/mint-components/{p-dbc8afaa.system.entry.js → p-e9485160.system.entry.js} +1 -1
  331. package/dist/mint-components/p-ea03e50e.system.js +1 -0
  332. package/dist/mint-components/p-ec0b649a.entry.js +1 -0
  333. package/dist/mint-components/{p-925aa740.system.entry.js → p-f1374258.system.entry.js} +1 -1
  334. package/dist/mint-components/{p-e6de31a7.system.entry.js → p-f39cf252.system.entry.js} +1 -1
  335. package/dist/mint-components/{p-6f6c3ac6.system.entry.js → p-f4e36adf.system.entry.js} +1 -1
  336. package/dist/mint-components/{p-02e2b13b.system.js → p-f55ecf35.system.js} +1 -1
  337. package/dist/mint-components/{p-7a091fa7.js → p-f581aac7.js} +1 -1
  338. package/dist/mint-components/{p-8d073bdf.entry.js → p-f6528f8a.entry.js} +1 -1
  339. package/dist/mint-components/{p-9ba8b28b.system.entry.js → p-f7ca4cc4.system.entry.js} +1 -1
  340. package/dist/mint-components/p-f8026ed6.system.js +1 -0
  341. package/dist/mint-components/{p-13d8ecad.js → p-f8a09b0f.js} +1 -1
  342. package/dist/mint-components/p-fb804001.system.entry.js +1 -0
  343. package/dist/mint-components/{p-0b32e1d4.system.entry.js → p-fc284f91.system.entry.js} +1 -1
  344. package/dist/mint-components/{p-099ce3d5.system.entry.js → p-fe1d3cf8.system.entry.js} +1 -1
  345. package/dist/mint-components/p-fe70e20c.entry.js +1 -0
  346. package/dist/mint-components/p-ff118a19.system.js +1 -0
  347. package/dist/types/components/sqm-checkbox-field/sqm-checkbox-field.d.ts +1 -1
  348. package/dist/types/components/sqm-referral-iframe/sqm-referral-iframe-view.d.ts +1 -0
  349. package/dist/types/components/sqm-referral-iframe/sqm-referral-iframe.d.ts +5 -0
  350. package/dist/types/components/sqm-referral-table/TaxAndCashReferralTableRewardsCell.stories.d.ts +1 -18
  351. package/dist/types/components/sqm-rewards-table/TaxAndCashRewardsTableCell.stories.d.ts +7 -19
  352. package/dist/types/components/sqm-share-link/ShareLink.stories.d.ts +9 -0
  353. package/dist/types/components/sqm-share-link/UseShareLink.stories.d.ts +6 -0
  354. package/dist/types/components/sqm-share-link/sqm-share-link-view.d.ts +41 -0
  355. package/dist/types/components/sqm-share-link/sqm-share-link.d.ts +195 -2
  356. package/dist/types/components/sqm-share-link/useShareLink.d.ts +33 -4
  357. package/dist/types/components/sqm-user-attribute/UserAttribute.stories.d.ts +11 -0
  358. package/dist/types/components/sqm-user-attribute/sqm-user-attribute-view.d.ts +8 -0
  359. package/dist/types/components/sqm-user-attribute/sqm-user-attribute.d.ts +45 -0
  360. package/dist/types/components/sqm-user-attribute/useUserAttribute.d.ts +3 -0
  361. package/dist/types/components/sqm-widget-verification/keys.d.ts +0 -2
  362. package/dist/types/components/sqm-widget-verification/sqm-widget-verification.d.ts +7 -75
  363. package/dist/types/components/sqm-widget-verification/useWidgetVerification.d.ts +0 -2
  364. package/dist/types/components/tax-and-cash/data.d.ts +0 -1
  365. package/dist/types/components/tax-and-cash/sqm-banking-info-form/formDefinitions.d.ts +0 -2
  366. package/dist/types/components/tax-and-cash/sqm-banking-info-form/sqm-banking-info-form-view.d.ts +0 -4
  367. package/dist/types/components/tax-and-cash/sqm-banking-info-form/sqm-banking-info-form.d.ts +0 -165
  368. package/dist/types/components/tax-and-cash/sqm-indirect-tax-form/useIndirectTaxForm.d.ts +0 -7
  369. package/dist/types/components/tax-and-cash/sqm-tax-and-cash/sqm-tax-and-cash.d.ts +5 -0
  370. package/dist/types/components/tax-and-cash/sqm-user-info-form/sqm-user-info-form-view.d.ts +1 -0
  371. package/dist/types/components/tax-and-cash/sqm-user-info-form/sqm-user-info-form.d.ts +4 -0
  372. package/dist/types/components.d.ts +472 -613
  373. package/dist/types/saasquatch.d.ts +0 -2
  374. package/docs/docs.docx +0 -0
  375. package/docs/raisins.json +1 -1
  376. package/grapesjs/grapesjs.js +1 -1
  377. package/package.json +15 -3
  378. package/readme.md +60 -1
  379. package/dist/cjs/eventKeys-7af4df4d.js +0 -5
  380. package/dist/cjs/parseStates-d1effc19.js +0 -16
  381. package/dist/cjs/sqm-email-verification_2.cjs.entry.js +0 -886
  382. package/dist/cjs/sqm-partner-info-modal-view-97770d03.js +0 -149
  383. package/dist/cjs/utils-15ce04e3.js +0 -93
  384. package/dist/collection/components/sqm-partner-info-modal/PartnerInfoModal.stories.js +0 -171
  385. package/dist/collection/components/sqm-partner-info-modal/sqm-partner-info-modal-view.js +0 -143
  386. package/dist/collection/components/sqm-partner-info-modal/sqm-partner-info-modal.js +0 -669
  387. package/dist/collection/components/sqm-partner-info-modal/usePartnerInfoModal.js +0 -269
  388. package/dist/collection/components/sqm-widget-verification/WidgetVerification.stories.js +0 -16
  389. package/dist/esm/eventKeys-f76b6a03.js +0 -3
  390. package/dist/esm/keys-1054056a.js +0 -8
  391. package/dist/esm/parseStates-ed75e224.js +0 -14
  392. package/dist/esm/sqm-email-verification_2.entry.js +0 -881
  393. package/dist/esm/sqm-partner-info-modal-view-5709904e.js +0 -146
  394. package/dist/esm/utils-17daa419.js +0 -85
  395. package/dist/esm-es5/ShadowViewAddon-4d554869.js +0 -1
  396. package/dist/esm-es5/data-017e5ef2.js +0 -1
  397. package/dist/esm-es5/eventKeys-f76b6a03.js +0 -1
  398. package/dist/esm-es5/keys-1054056a.js +0 -1
  399. package/dist/esm-es5/parseStates-ed75e224.js +0 -1
  400. package/dist/esm-es5/sqm-email-verification_2.entry.js +0 -1
  401. package/dist/esm-es5/sqm-partner-info-modal-view-5709904e.js +0 -1
  402. package/dist/esm-es5/sqm-portal-container-view-a8c708cd.js +0 -1
  403. package/dist/esm-es5/sqm-user-info-form-view-d13f9d3e.js +0 -1
  404. package/dist/esm-es5/utils-17daa419.js +0 -1
  405. package/dist/mint-components/p-00046ec1.js +0 -116
  406. package/dist/mint-components/p-00dd7f08.js +0 -1
  407. package/dist/mint-components/p-0102ad17.system.entry.js +0 -1
  408. package/dist/mint-components/p-0a6489fa.entry.js +0 -1
  409. package/dist/mint-components/p-0f042aa6.entry.js +0 -116
  410. package/dist/mint-components/p-115dfc03.system.js +0 -1
  411. package/dist/mint-components/p-13f3a647.js +0 -1
  412. package/dist/mint-components/p-1d86895f.system.js +0 -1
  413. package/dist/mint-components/p-1f387c7b.system.js +0 -1
  414. package/dist/mint-components/p-1faa6ddf.system.entry.js +0 -1
  415. package/dist/mint-components/p-28ed2ae9.js +0 -1
  416. package/dist/mint-components/p-31edeff4.system.js +0 -1
  417. package/dist/mint-components/p-3254fbb4.entry.js +0 -291
  418. package/dist/mint-components/p-4034f157.js +0 -1
  419. package/dist/mint-components/p-4691e9d5.system.js +0 -1
  420. package/dist/mint-components/p-4a8ffa03.system.js +0 -1
  421. package/dist/mint-components/p-4e34bcb1.system.js +0 -1
  422. package/dist/mint-components/p-4f9dc974.js +0 -1
  423. package/dist/mint-components/p-53d90eb5.js +0 -463
  424. package/dist/mint-components/p-5e300ec1.system.js +0 -6
  425. package/dist/mint-components/p-6af71f23.entry.js +0 -9
  426. package/dist/mint-components/p-6c23abd8.entry.js +0 -1
  427. package/dist/mint-components/p-6f8dde97.system.js +0 -1
  428. package/dist/mint-components/p-753d06ef.entry.js +0 -133
  429. package/dist/mint-components/p-7aace2b3.system.js +0 -1
  430. package/dist/mint-components/p-87f86492.js +0 -1
  431. package/dist/mint-components/p-8ae8968c.js +0 -1
  432. package/dist/mint-components/p-8f15bf17.entry.js +0 -1
  433. package/dist/mint-components/p-99eecdcb.system.entry.js +0 -1
  434. package/dist/mint-components/p-9b15ee47.system.js +0 -1
  435. package/dist/mint-components/p-a49d9288.entry.js +0 -1
  436. package/dist/mint-components/p-b0ab1065.system.entry.js +0 -1
  437. package/dist/mint-components/p-b1b20d42.entry.js +0 -11
  438. package/dist/mint-components/p-b52a7da9.system.entry.js +0 -1
  439. package/dist/mint-components/p-b699f76e.system.js +0 -1
  440. package/dist/mint-components/p-b6a1e2ac.js +0 -1
  441. package/dist/mint-components/p-b7370480.js +0 -1
  442. package/dist/mint-components/p-badf28bb.system.js +0 -1
  443. package/dist/mint-components/p-c41d536d.entry.js +0 -1
  444. package/dist/mint-components/p-ce7d824b.js +0 -49
  445. package/dist/mint-components/p-d08408b3.entry.js +0 -1
  446. package/dist/mint-components/p-d6ccb6fc.entry.js +0 -1
  447. package/dist/mint-components/p-e516e8ca.system.entry.js +0 -1
  448. package/dist/mint-components/p-e93cdcbd.system.js +0 -1
  449. package/dist/mint-components/p-eb285d38.system.entry.js +0 -1
  450. package/dist/mint-components/p-f782ff10.system.entry.js +0 -1
  451. package/dist/types/components/sqm-partner-info-modal/PartnerInfoModal.stories.d.ts +0 -15
  452. package/dist/types/components/sqm-partner-info-modal/sqm-partner-info-modal-view.d.ts +0 -50
  453. package/dist/types/components/sqm-partner-info-modal/sqm-partner-info-modal.d.ts +0 -122
  454. package/dist/types/components/sqm-partner-info-modal/usePartnerInfoModal.d.ts +0 -17
  455. package/dist/types/components/sqm-widget-verification/WidgetVerification.stories.d.ts +0 -8
  456. package/docs/stats.json +0 -122783
@@ -1,41 +1,39 @@
1
1
  import { h, r as registerInstance, c as Host } from './index-38ad4957.js';
2
- import './global-75e96214.js';
2
+ import './global-96c14d63.js';
3
3
  import { a as commonjsGlobal, u as useMemo, k as useState, c as createCommonjsModule, f as useEffect, n as h$1 } from './dom-context-hooks.module-50442785.js';
4
- import { j as jn, s as setUserIdentity, m as setProgramId, k as kn, d as dist, X as Xe } from './index.module-02cb914c.js';
4
+ import { j as jn, s as setUserIdentity, m as setProgramId, k as kn, d as dist, X as Xe } from './index.module-b23fdad8.js';
5
5
  import './cjs-bdfb4486.js';
6
6
  import './utils-334c1e34.js';
7
7
  import { c as createStyleSheet } from './JSS-67b5cff8.js';
8
- import './useReferralCodes-25f8b792.js';
8
+ import './useReferralCodes-52ca720f.js';
9
9
  import './mixins-f750863a.js';
10
10
  import { C as CopyTextView } from './copy-text-view-87259b11.js';
11
- import './sqm-text-span-view-4db9e33f.js';
12
- import { b as PortalRegisterView, P as PortalForgotPasswordView, a as PortalLoginView, c as PortalVerifyEmailView } from './sqm-portal-verify-email-view-c053ead1.js';
13
- import { P as PortalRegistrationFormView } from './sqm-portal-registration-form-view-9bf30b56.js';
11
+ import './sqm-text-span-view-72f43dff.js';
12
+ import { b as PortalRegisterView, P as PortalForgotPasswordView, a as PortalLoginView, c as PortalVerifyEmailView } from './sqm-portal-verify-email-view-c61536b7.js';
13
+ import { P as PortalRegistrationFormView } from './sqm-portal-registration-form-view-79265df5.js';
14
14
  import { G as GenericTableView } from './GenericTableView-8c72ac30.js';
15
- import './useChildElements-06937df7.js';
15
+ import './useChildElements-9bccfb72.js';
16
16
  import { l as luxon } from './luxon-1be92a8e.js';
17
17
  import { C as CloseButtonView } from './sqm-close-button-view-fd9012e7.js';
18
18
  import './index-ffa26b43.js';
19
19
  import './imageUrl-4775f17b.js';
20
20
  import { E as EmailRegistrationView } from './email-registration-view-4cdb4129.js';
21
- import { L as LeadCheckboxFieldView } from './sqm-lead-checkbox-field-view-bfafee56.js';
21
+ import { L as LeadCheckboxFieldView } from './sqm-lead-checkbox-field-view-7928db07.js';
22
22
  import { L as LeaderboardRankView } from './sqm-leaderboard-rank-view-7a682cc3.js';
23
23
  import { L as LogoutCurrentUserView } from './sqm-logout-current-user-view-376c1bf6.js';
24
24
  import { N as NavigationSidebarView } from './sqm-navigation-sidebar-view-2b66457a.js';
25
- import { N as NavigationSidebarItemView } from './sqm-navigation-sidebar-item-view-8d98fcf3.js';
26
- import { P as PortalEmailVerificationView } from './sqm-portal-email-verification-view-58bad294.js';
27
- import { P as PortalProfileView } from './sqm-portal-profile-view-115bad4a.js';
28
- import './utilities-cbd8f2eb.js';
29
- import { P as PortalResetPasswordView } from './sqm-portal-reset-password-view-f8d1689c.js';
25
+ import { N as NavigationSidebarItemView } from './sqm-navigation-sidebar-item-view-b3beac5a.js';
26
+ import { P as PortalEmailVerificationView } from './sqm-portal-email-verification-view-04528277.js';
27
+ import { P as PortalProfileView } from './sqm-portal-profile-view-b5ea620f.js';
28
+ import './utilities-77b1e0cc.js';
29
+ import { P as PortalResetPasswordView } from './sqm-portal-reset-password-view-f84c04cf.js';
30
30
  import './ErrorView-74cb3af8.js';
31
31
  import { Q as QrCodeView } from './sqm-qr-code-view-ce476721.js';
32
- import { S as StatContainerView, B as BigStatView, a as ShareButtonView, P as PortalChangePasswordView, b as PoweredByImg$1, c as BaseRegistrationFormView, u as useDemoBigStat, T as TaskCardView, C as CardFeedView, d as CheckboxFieldView, e as CouponCodeView, D as DropdownFieldView, E as EditProfileView, L as LeaderboardView, H as HeroView, I as InputFieldView, N as NameFieldsView, f as ChangeMarktingView, g as PortalFooterView, h as PortalFrameView, R as ReferralIframeView, i as RewardExchangeView, r as rewardExchangeCustomErrorMsg, j as rewardExchangeLongText, k as rewardExchangeSelected, l as chooseAmountFixed, m as chooseAmountFixedNoDescription, n as chooseAmountVariable, o as chooseAmountVariableNoDescription, p as chooseAmountVariableDisabled, q as chooseAmountVariableUnavailable, s as confirmFixed, t as confirmVariable, v as redemptionError, w as queryError, x as success, y as successVariable, z as loading, A as empty$1, F as rewardExchange, G as useShareButton, J as useShareLink, K as ProgressBarView, M as ProgressBar$2, O as LeadFormView, Q as LeadDropdownFieldView, U as ShadowViewAddon } from './ShadowViewAddon-4d554869.js';
33
- import { P as PortalContainerView, a as PortalSectionView } from './sqm-portal-container-view-a8c708cd.js';
34
- import { I as InvoiceTableView, a as INDIRECT_TAX_SPAIN_REGIONS, b as INDIRECT_TAX_PROVINCES, O as OtherRegionSlotView, U as UserInfoFormView$1 } from './sqm-user-info-form-view-d13f9d3e.js';
35
- import { t as taxTypeToName, L as LoadingView } from './utils-17daa419.js';
36
- import { L as LeadInputFieldView } from './sqm-lead-input-field-view-b945edf4.js';
37
- import './data-017e5ef2.js';
38
- import { P as PartnerInfoModalView } from './sqm-partner-info-modal-view-5709904e.js';
32
+ import { S as StatContainerView, B as BigStatView, a as ShareButtonView, P as PortalChangePasswordView, b as PoweredByImg$1, c as BaseRegistrationFormView, u as useDemoBigStat, T as TaskCardView, C as CardFeedView, d as CheckboxFieldView, e as CouponCodeView, D as DropdownFieldView, E as EditProfileView, L as LeaderboardView, H as HeroView, I as InputFieldView, N as NameFieldsView, f as ChangeMarktingView, g as PortalFooterView, h as PortalFrameView, R as ReferralIframeView, i as RewardExchangeView, r as rewardExchangeCustomErrorMsg, j as rewardExchangeLongText, k as rewardExchangeSelected, l as chooseAmountFixed, m as chooseAmountFixedNoDescription, n as chooseAmountVariable, o as chooseAmountVariableNoDescription, p as chooseAmountVariableDisabled, q as chooseAmountVariableUnavailable, s as confirmFixed, t as confirmVariable, v as redemptionError, w as queryError, x as success, y as successVariable, z as loading, A as empty$1, F as rewardExchange, G as useShareButton, J as ShareLinkView, K as useShareLink, M as ProgressBarView, O as ProgressBar$2, Q as LeadFormView, U as LeadDropdownFieldView, V as ShadowViewAddon } from './ShadowViewAddon-0b980200.js';
33
+ import { P as PortalContainerView, a as PortalSectionView } from './sqm-portal-container-view-200c9df8.js';
34
+ import { I as InvoiceTableView, a as INDIRECT_TAX_SPAIN_REGIONS, b as INDIRECT_TAX_PROVINCES, O as OtherRegionSlotView, U as UserInfoFormView$1 } from './sqm-user-info-form-view-19d81a2b.js';
35
+ import { t as taxTypeToName, L as LoadingView } from './data-12e6aae1.js';
36
+ import { L as LeadInputFieldView } from './sqm-lead-input-field-view-d1b91650.js';
39
37
 
40
38
  /**
41
39
  * lodash (Custom Build) <https://lodash.com/>
@@ -10702,6 +10700,7 @@ const props$1 = {
10702
10700
  iframeSrc: "https://example.com",
10703
10701
  iframeHeight: "100%",
10704
10702
  iframeWidth: "100%",
10703
+ codeParam: "rsCode",
10705
10704
  },
10706
10705
  },
10707
10706
  };
@@ -10725,7 +10724,7 @@ const column = "@author:noah\n@owner:noah\nFeature: Referral Table User Column\n
10725
10724
 
10726
10725
  const date = "@author:noah\n@owner:noah\nFeature: Referral Table Date Column\n\n Shows the date of each referral\n\n Background:\n Given the date column is included in the referral table\n\n @motivating\n @ui\n Scenario Outline: The title of the date column is configurable\n Given the \"column-title\" prop is set to <value>\n Then the date column is shown with <columTitle>\n Examples:\n | value | columnTitle |\n | | Date Converted |\n | My column title | My column title |\n\n @motivating\n Scenario Outline: A configurable date associated with the referral is shown for each referral\n Given the \"date-shown\" prop is set to <dateType>\n And referrals exist\n Then for each referral the <referralDate> is shown in the table\n And the date is localized to the users locale\n Examples:\n | dateType | referralDate |\n | dateReferralStarted | date referral started |\n | dateReferralPaid | date referral paid |\n | dateReferralEnded | date referral ended |\n | dateModerated | date moderated |\n | dateUserModified | date user modified |\n | dateConverted | date converted |\n | dateModified | date modified |\n | | date converted |";
10727
10726
 
10728
- const rewards = "@author:noah @owner:noah\nFeature: Referral Table Reward Column\n Shows the reward associated with each referral\n\n Background:\n Given the status column is included in the referral table\n And at least one referral exists\n\n @motivating\n Scenario Outline: State precedence ladder\n Given a reward, its referral's fraud state, and the user's tax connection\n Then <rule> is produced\n And the <resultingState>, <resultingBadgeText>, and <resultingDescriptionBody> is determined in the following <order>:\n\n Examples:\n | order | rule | resultingState | resultingBadgeText | resultingDescriptionBody |\n | 1 | referral.fraudData.moderationStatus is \"DENIED\" | DENIED | Denied | Denied on Jan 1, 2026. Contact support. |\n | 2 | referral.fraudData.moderationStatus is \"PENDING\" | PENDING_REVIEW | Pending | Pending since Jan 1, 2026 |\n | 3 | reward.rewardedCash is true AND impactConnection is NOT connected | PENDING_PARTNER_CREATION | Pending | Complete your tax and cash payout setup to receive your rewards |\n | 4 | reward.rewardedCash is true AND impactConnection is connected AND publisher.withdrawalSettings is missing | PENDING_PARTNER_CREATION | Pending | Complete your tax and cash payout setup to receive your rewards |\n | 5 | partnerFundsTransfer.status is \"REVERSED\" | PAYOUT_CANCELLED | Payout Cancelled | If you think this is a mistake, contact our Support team. |\n | 6 | partnerFundsTransfer.status is \"OVERDUE\" | PAYOUT_FAILED | Payout Failed | Payout failed due to a fulfillment issue and is currently being retried. |\n | 7 | partnerFundsTransfer.dateScheduled is in the future | PROCESSING | Payment Processing | Processing until Jan 1, 2026. Payout is then scheduled based on your settings. |\n | 8 | partnerFundsTransfer.status is \"TRANSFERRED\" / \"NOT_YET_DUE\", or dateScheduled has passed without REVERSED/OVERDUE | PAYOUT_APPROVED | Payout Approved | Processing until Jan 1, 2026. Payout is then scheduled based on your settings. |\n | 9 | reward.pendingReasons includes \"US_TAX\" AND impactConnection.taxHandlingEnabled is false | PENDING | Pending | Available on Jan 1, 2026 (if dateScheduledFor set; else no body line) |\n | 10 | reward.pendingReasons includes \"US_TAX\" AND impactConnection.connected is false | PENDING_PARTNER_CREATION | Pending | Complete your tax and cash payout setup to receive your rewards |\n | 11 | reward.pendingReasons includes \"US_TAX\" AND publisher.requiredTaxDocumentType is set AND publisher.currentTaxDocument is missing | PENDING_TAX_SUBMISSION | Pending | Submit your tax documents to receive your rewards |\n | 12 | reward.pendingReasons includes \"US_TAX\" AND publisher.currentTaxDocument.status is \"INACTIVE\" / \"INVALID_W9_ELECTRONIC_DOCUMENT\" / \"INVALID_W9_ELECTRONIC_DOCUMENT_CHECK_INTERNAL\" | PENDING_NEW_TAX_FORM | Pending | Invalid tax form. Submit a new form to receive your rewards. |\n | 13 | reward.pendingReasons includes \"US_TAX\" AND publisher.currentTaxDocument.status is \"NOT_VERIFIED\" | PENDING_TAX_REVIEW | Pending | Awaiting tax form review |\n | 14 | reward.pendingReasons includes \"US_TAX\" AND publisher.currentTaxDocument.status is \"ACTIVE\" AND publisher.withdrawalSettings missing | PENDING_PARTNER_CREATION | Pending | Complete your tax and cash payout setup to receive your rewards |\n | 15 | reward.pendingReasons includes \"MISSING_PAYOUT_CONFIGURATION\" | PENDING_PARTNER_CREATION | Pending | Complete your tax and cash payout setup to receive your rewards |\n | 16 | statuses includes \"REDEEMED\" | REDEEMED | Redeemed | (no state-specific body line) |\n | 17 | statuses includes \"CANCELLED\" | CANCELLED | Cancelled | Reward cancelled on Jan 1, 2026 |\n | 18 | statuses includes \"EXPIRED\" | EXPIRED | Expired | Reward expired on Jan 1, 2026 |\n | 19 | statuses includes \"PENDING\" | PENDING | Pending (or \"Pending for {date}\" overlay if dateScheduledFor set) | Available on Jan 1, 2026 (if dateScheduledFor set; else no body line) |\n | 20 | statuses includes \"AVAILABLE\" | AVAILABLE | Available (plus info pill \"{expiringText} {relative}\" if dateExpires set) | Reward expiring on Jan 1, 2026 |\n\n @motivating @ui\n Scenario Outline: The referral reward and its status are shown for each referral\n Then for each referral reward there exists a reward cell\n And the reward type and value is displayed in the cell\n And the status of each reward is displayed as a pill in the cell\n And rewards of <status> have a <pillColour> pill with the text <statusText>\n\n Examples:\n | status | pillColour | statusText |\n | Available | success | Available |\n | Pending | warning | Pending |\n | Pending Fraud Review | warning | Pending |\n | Pending Tax Review | warning | Pending |\n | Pending New Tax Form | warning | Pending |\n | Pending Tax Submission | warning | Pending |\n | Pending Partner Creation | warning | Pending |\n | Cancelled | danger | Cancelled |\n | Payout Overdue | danger | Payout Failed |\n | Payout Reversed | danger | Payout Cancelled |\n | Expired | danger | Expired |\n | Denied | danger | Denied |\n | Redeemed | primary | Redeemed |\n | Payout Transferred | primary | Payout Approved |\n | Payout Not Yet Due | primary | Payout Approved |\n | Payout Processing | primary | Payment Processing |\n\n @motivating\n Scenario: The pending period of a referral reward is shown inside the pill if scheduled\n Given a reward that is pending\n And the reward has a scheduled date in the future\n Then the status pill of the reward will contain the text \"Pending for <relativeTime>\"\n And the date is localized to the user's locale\n\n Examples:\n | relativeTime |\n | 2 days |\n | 1 week |\n | 3 months |\n\n @motivating\n Scenario: The expiry date of a reward is shown in a secondary pill\n Given a reward that is available\n And the reward has a set expiry date\n Then an additional info pill will appear next to the status pill with the text \"Expiring in <relativeTime>\"\n And the date is localized to the user's locale\n\n Examples:\n | relativeTime |\n | 2 days |\n | 1 week |\n\n @motivating @ui\n Scenario Outline: Expanding the reward cell shows specific detailed status messages\n When a reward cell is clicked\n Then it expands to show the detail view\n And if the reward status is <status>\n Then the detail text displays <detailMessage>\n\n Examples: Payout States\n | status | detailMessage |\n | Payout Approved | Processing until {date}. Payout is then scheduled based on your settings. |\n | Payout Failed | Payout failed due to a fulfillment issue and is currently being retried. |\n | Payout Cancelled | If you think this is a mistake, contact our Support team. |\n | Processing | Processing until {date}. Payout is then scheduled based on your settings. |\n\n Examples: Tax Compliance States\n | status | detailMessage |\n | Pending Tax Review | Awaiting tax form review |\n | Pending New Tax Form | Invalid tax form. Submit a new form to receive your rewards. |\n | Pending Tax Submission | Submit your tax documents to receive your rewards |\n | Pending Partner Creation | Complete your tax and cash payout setup to receive your rewards |\n\n Examples: Standard States\n | status | detailMessage |\n | Available | Reward expiring on |\n | Cancelled | Reward cancelled on |\n | Pending | Available on |\n | Pending Review | Pending since |\n | Denied | Denied on |\n | Expired | Reward expired on |\n | Redeemed | Redeemed |\n\n @motivating\n Scenario: Fuel Tank codes are displayed in the expanded view\n Given a reward has a Fuel Tank code\n When the reward cell is clicked\n Then the expanded details display the text \"Your code is\"\n And the code <fuelTankCode> is displayed in bold\n\n @motivating\n Scenario: Fraud denial help text is displayed\n Given a reward has been denied due to fraud\n And the component has \"deniedHelpText\" configured\n When the reward cell is clicked\n Then the expanded details display the denied help text next to the denial date\n\n @minutia\n Scenario: Payout-related reward statuses are determined by the state of the Paid Funds Transfer\n Given a reward exists\n And the reward has a connected Paid Funds Transfer (PFT)\n When the PFT is in <pftState>\n Then the reward's status is <status>\n And the status text displays <text>\n And the status is displayed in a <pillColour> pill\n\n Examples:\n | pftState | status | text | pillColour |\n | transfer date is in the future | PROCESSING | Payment Processing | primary |\n | successfully transferred to payment provider | PAYOUT_TRANSFERRED | Payout Approved | primary |\n | approved but payout scheduled date not yet arrived | PAYOUT_NOT_YET_DUE | Payout Approved | primary |\n | failed due to fulfillment issue and retrying | PAYOUT_OVERDUE | Payout Failed | danger |\n | reversed or cancelled after being processed | PAYOUT_REVERSED | Payout Cancelled | danger |\n";
10727
+ const rewards = "@author:noah @owner:noah\nFeature: Referral Table Reward Column\n Shows the reward associated with each referral\n\n Background: \n Given the status column is included in the referral table\n And at least one referral exists\n\n\n\n @motivating @ui\n Scenario Outline: The referral reward and its status are shown for each referral\n Then for each referral reward there exists a reward cell\n And the reward type and value is displayed in the cell\n And the status of each reward is displayed as a pill in the cell\n And rewards of <status> have a <pillColour> pill with the text <statusText>\n\n Examples: \n | status | pillColour | statusText |\n | Available | success | Available |\n | Pending | warning | Pending |\n | Pending Fraud Review | warning | Pending |\n | Pending Tax Review | warning | Pending |\n | Pending New Tax Form | warning | Pending |\n | Pending Tax Submission | warning | Pending |\n | Pending Partner Creation | warning | Pending |\n | Cancelled | danger | Cancelled |\n | Payout Overdue | danger | Payout Failed |\n | Payout Reversed | danger | Payout Cancelled |\n | Expired | danger | Expired |\n | Denied | danger | Denied |\n | Redeemed | primary | Redeemed |\n | Payout Transferred | primary | Payout Approved |\n | Payout Not Yet Due | primary | Payout Approved |\n | Payout Processing | primary | Payment Processing |\n\n @motivating\n Scenario: The pending period of a referral reward is shown inside the pill if scheduled\n Given a reward that is pending\n And the reward has a scheduled date in the future\n Then the status pill of the reward will contain the text \"Pending for <relativeTime>\"\n And the date is localized to the user's locale\n\n Examples: \n | relativeTime |\n | 2 days |\n | 1 week |\n | 3 months |\n\n @motivating\n Scenario: The expiry date of a reward is shown in a secondary pill\n Given a reward that is available\n And the reward has a set expiry date\n Then an additional info pill will appear next to the status pill with the text \"Expiring in <relativeTime>\"\n And the date is localized to the user's locale\n\n Examples: \n | relativeTime |\n | 2 days |\n | 1 week |\n\n @motivating @ui\n Scenario Outline: Expanding the reward cell shows specific detailed status messages\n When a reward cell is clicked\n Then it expands to show the detail view\n And if the reward status is <status>\n Then the detail text displays <detailMessage>\n\n Examples: Payout States\n | status | detailMessage |\n | Payout Approved | Processing until {date}. Payout is then scheduled based on your settings. |\n | Payout Failed | Payout failed due to a fulfillment issue and is currently being retried. |\n | Payout Cancelled | If you think this is a mistake, contact our Support team. |\n | Processing | Processing until {date}. Payout is then scheduled based on your settings. |\n\n Examples: Tax Compliance States\n | status | detailMessage |\n | Pending Tax Review | Awaiting tax form review |\n | Pending New Tax Form | Invalid tax form. Submit a new form to receive your rewards. |\n | Pending Tax Submission | Submit your tax documents to receive your rewards |\n | Pending Partner Creation | Complete your tax and cash payout setup to receive your rewards |\n\n Examples: Standard States\n | status | detailMessage |\n | Available | Reward expiring on |\n | Cancelled | Reward cancelled on |\n | Pending | Available on |\n | Pending Review | Pending since |\n | Denied | Denied on |\n | Expired | Reward expired on |\n | Redeemed | Redeemed |\n\n @motivating\n Scenario: Fuel Tank codes are displayed in the expanded view\n Given a reward has a Fuel Tank code\n When the reward cell is clicked\n Then the expanded details display the text \"Your code is\"\n And the code <fuelTankCode> is displayed in bold\n\n @motivating\n Scenario: Fraud denial help text is displayed\n Given a reward has been denied due to fraud\n And the component has \"deniedHelpText\" configured\n When the reward cell is clicked\n Then the expanded details display the denied help text next to the denial date\n\n @minutia\n Scenario: Payout-related reward statuses are determined by the state of the Paid Funds Transfer\n Given a reward exists\n And the reward has a connected Paid Funds Transfer (PFT)\n When the PFT is in <pftState>\n Then the reward's status is <status>\n And the status text displays <text>\n And the status is displayed in a <pillColour> pill\n\n Examples:\n | pftState | status | text | pillColour |\n | transfer date is in the future | PROCESSING | Payment Processing | primary |\n | successfully transferred to payment provider | PAYOUT_TRANSFERRED | Payout Approved | primary |\n | approved but payout scheduled date not yet arrived | PAYOUT_NOT_YET_DUE | Payout Approved | primary |\n | failed due to fulfillment issue and retrying | PAYOUT_OVERDUE | Payout Failed | danger |\n | reversed or cancelled after being processed | PAYOUT_REVERSED | Payout Cancelled | danger |\n";
10729
10728
 
10730
10729
  const status = "@author:noah\n@owner:noah\nFeature: Referral Table Status Column\n\n Shows the status of each referral\n\n Background:\n Given the status column is included in the referral table\n\n @motivating\n @ui\n Scenario: The title of the date column is configurable\n Given the \"column-title\" prop is set to \"My column title\"\n Then the date column is shown with \"My column title\"\n\n @motivating\n Scenario: The status column's fraudStatus maps to the fraud status of the referral\n Given at least one referral\n Then the referral cell fraud status is set to `moderationStatus` of the referral\n\n @motivating\n Scenario Outline: The status column displays the status of each referral\n Given referrals exist\n Then the status of each referral is displayed\n And the status <status> is displayed as text from <statusTextProp> in a <pillColour> pill\n\n Examples:\n | status | statusTextProp | pillColour |\n | In Progress | inProgressStatusText | Orange |\n | Converted | convertedStatusText | Green |\n | Pending | pendingReviewStatusText | Orange |\n | Denied | deniedStatusText | Red |\n";
10731
10730
 
@@ -10892,7 +10891,6 @@ const cashPayoutSentReward = {
10892
10891
  statuses: ["AVAILABLE"],
10893
10892
  globalRewardKey: "Key",
10894
10893
  rewardRedemptionTransactions: null,
10895
- rewardedCash: true,
10896
10894
  };
10897
10895
  const nullExpiresIn = {
10898
10896
  dateExpires: null,
@@ -11254,7 +11252,6 @@ const baseReward$1 = {
11254
11252
  },
11255
11253
  ],
11256
11254
  },
11257
- rewardedCash: false,
11258
11255
  };
11259
11256
  // Reward Status Cases
11260
11257
  const pendingReward$1 = {
@@ -11809,274 +11806,193 @@ const ReferralTable = /*#__PURE__*/Object.freeze({
11809
11806
  const TaxAndCashReferralTableRewardsCell_stories = {
11810
11807
  title: "Components/Tax And Cash Referral Table Rewards Cell",
11811
11808
  };
11812
- // Reusable timestamps (current date is May 2026)
11813
- const PAST = 1640995200000; // Jan 1, 2022
11814
- const FUTURE = 2779257600000; // ~2058
11809
+ function getDays$1() {
11810
+ return luxon.DateTime.now().toMillis() + 600000000;
11811
+ }
11812
+ function getMonths$1() {
11813
+ return luxon.DateTime.now().toMillis() + 10000000000;
11814
+ }
11815
11815
  const cashReward = {
11816
11816
  id: "1234",
11817
11817
  type: "CREDIT",
11818
11818
  value: 50,
11819
11819
  unit: "USD",
11820
11820
  name: "test",
11821
- dateScheduledFor: null,
11822
- dateExpires: null,
11823
- dateCancelled: null,
11824
- dateRedeemed: null,
11821
+ dateScheduledFor: getDays$1(),
11822
+ dateExpires: getMonths$1(),
11823
+ dateCancelled: 134400,
11824
+ dateRedeemed: 0,
11825
11825
  fuelTankCode: null,
11826
11826
  fuelTankType: null,
11827
11827
  currency: "USD",
11828
11828
  prettyValue: "$50.00",
11829
- statuses: [],
11829
+ statuses: ["AVAILABLE"],
11830
11830
  globalRewardKey: "Key",
11831
11831
  rewardRedemptionTransactions: null,
11832
11832
  partnerFundsTransfer: null,
11833
- rewardedCash: true,
11834
11833
  };
11835
- // ============================================================
11836
- // Reusable tax connections
11837
- // ============================================================
11838
- const fullySetupTaxConnection = {
11834
+ const taxConnection = {
11839
11835
  connected: true,
11840
11836
  taxHandlingEnabled: true,
11841
11837
  publisher: {
11842
11838
  requiredTaxDocumentType: "W9",
11843
- currentTaxDocument: {
11844
- status: "ACTIVE",
11845
- type: "W9",
11846
- dateCreated: PAST,
11847
- },
11848
11839
  withdrawalSettings: { paymentMethod: "BANK_TRANSFER" },
11849
11840
  payoutsAccount: null,
11850
- },
11851
- };
11852
- const connectedNoWithdrawalSettings = {
11853
- connected: true,
11854
- taxHandlingEnabled: true,
11855
- publisher: {
11856
- requiredTaxDocumentType: "W9",
11857
11841
  currentTaxDocument: {
11858
11842
  status: "ACTIVE",
11859
11843
  type: "W9",
11860
- dateCreated: PAST,
11844
+ dateCreated: 1627427794891,
11861
11845
  },
11862
- withdrawalSettings: null,
11863
- payoutsAccount: null,
11864
11846
  },
11865
11847
  };
11866
- const notConnectedTaxConnection = {
11867
- connected: false,
11868
- taxHandlingEnabled: true,
11869
- publisher: null,
11848
+ const defaultPFT = {
11849
+ id: "ID1234",
11850
+ status: null,
11851
+ dateCreated: null,
11852
+ dateScheduled: null,
11853
+ dateTransferred: null,
11854
+ };
11855
+ const defaultTaxDocument = {
11856
+ status: "NOT_VERIFIED",
11857
+ type: "W9",
11858
+ dateCreated: luxon.DateTime.now().toMillis() - 1000000,
11870
11859
  };
11871
11860
  const defaultProps$o = {
11872
11861
  statusText: "{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} PENDING_REVIEW {Pending} PAYOUT_APPROVED {Payout Approved} PROCESSING {Payment Processing} PAYOUT_FAILED {Payout Failed} PAYOUT_CANCELLED {Payout Cancelled} PENDING_TAX_REVIEW {Pending} PENDING_NEW_TAX_FORM {Pending} PENDING_TAX_SUBMISSION {Pending} PENDING_PARTNER_CREATION {Pending} DENIED {Denied} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }",
11873
- statusLongText: "{status, select, AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} PENDING {Available on} PENDING_REVIEW {Pending since} PAYOUT_APPROVED {Processing until {scheduledPayoutDate}. Payout is then scheduled based on your settings.} PAYOUT_FAILED {Payout failed due to a fulfillment issue and is currently being retried.} PAYOUT_CANCELLED {If you think this is a mistake, contact our Support team.} PENDING_TAX_REVIEW {Awaiting tax form review} PENDING_NEW_TAX_FORM {Invalid tax form. Submit a new form to receive your rewards.} PROCESSING {Processing until {scheduledPayoutDate}. Payout is then scheduled based on your settings.} PENDING_TAX_SUBMISSION {Submit your tax documents to receive your rewards} PENDING_PARTNER_CREATION {Complete cash payout setup to receive your rewards} DENIED {Denied on} EXPIRED {Reward expired on} other {Not available} }",
11862
+ statusLongText: "{status, select, AVAILABLE {Reward expiring on} CANCELLED {Reward cancelled on} PENDING {Available on} PENDING_REVIEW {Pending since} PAYOUT_APPROVED {Processing until {scheduledPayoutDate}. Payout is then scheduled based on your settings.} PAYOUT_FAILED {Payout failed due to a fulfillment issue and is currently being retried.} PAYOUT_CANCELLED {If you think this is a mistake, contact our Support team.} PENDING_TAX_REVIEW {Awaiting tax form review} PENDING_NEW_TAX_FORM {Invalid tax form. Submit a new form to receive your rewards.} PROCESSING {Processing until {scheduledPayoutDate}. Payout is then scheduled based on your settings.} PENDING_TAX_SUBMISSION {Submit your tax documents to receive your rewards} PENDING_PARTNER_CREATION {Complete your tax and cash payout setup to receive your rewards} DENIED {Denied on} EXPIRED {Reward expired on} other {Not available} }",
11874
11863
  rewardReceivedText: "Reward received on",
11875
11864
  hideDetails: false,
11876
11865
  };
11877
- // ============================================================
11878
- // STATE PRECEDENCE LADDER one story per rule
11879
- // (See referral-table-rewards-column-new.feature § 2)
11880
- // ============================================================
11881
- // 1. Fraud check denied the referral state is DENIED
11882
- const RewardsCellFraudDenied = () => (h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11883
- {
11884
- ...cashReward,
11885
- referral: { fraudData: { moderationStatus: "DENIED" } },
11886
- },
11887
- ], taxConnection: fullySetupTaxConnection }, defaultProps$o)));
11888
- // 2. Fraud check is still pending review → state is PENDING_REVIEW
11889
- const RewardsCellFraudPendingReview = () => (h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11890
- {
11891
- ...cashReward,
11892
- referral: { fraudData: { moderationStatus: "PENDING" } },
11893
- },
11894
- ], taxConnection: fullySetupTaxConnection }, defaultProps$o)));
11895
- // 3a. Cash reward but the user has not connected an Impact partner → shows the partner-setup prompt
11896
- const RewardsCellPartnerNotCreatedSetupNotStarted = () => (h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [{ ...cashReward, statuses: ["AVAILABLE"] }], taxConnection: notConnectedTaxConnection }, defaultProps$o)));
11897
- // 3b. Cash reward, partner is connected but withdrawal settings are missing → shows the partner-setup prompt
11898
- const RewardsCellPartnerCreatedSetupStartedButIncomplete = () => (h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11899
- {
11900
- ...cashReward,
11901
- partnerFundsTransfer: {
11902
- id: "pft-not-yet-due",
11903
- status: "NOT_YET_DUE",
11904
- dateCreated: PAST,
11905
- dateScheduled: FUTURE,
11906
- dateTransferred: null,
11866
+ const CashReward = () => {
11867
+ return (h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [{ ...cashReward }], taxConnection: taxConnection }, defaultProps$o)));
11868
+ };
11869
+ const PayoutApproved = () => {
11870
+ return (h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11871
+ {
11872
+ ...cashReward,
11873
+ partnerFundsTransfer: {
11874
+ ...defaultPFT,
11875
+ status: "TRANSFERRED",
11876
+ dateScheduled: Date.now() - 600000000,
11877
+ },
11907
11878
  },
11908
- },
11909
- ], taxConnection: connectedNoWithdrawalSettings }, defaultProps$o)));
11910
- // 4. Partner funds transfer was reversed → state is PAYOUT_CANCELLED
11911
- const RewardsCellPayoutCancelled = () => (h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11912
- {
11913
- ...cashReward,
11914
- partnerFundsTransfer: {
11915
- id: "pft-reversed",
11916
- status: "REVERSED",
11917
- dateCreated: PAST,
11918
- dateScheduled: PAST,
11919
- dateTransferred: null,
11879
+ ], taxConnection: taxConnection }, defaultProps$o)));
11880
+ };
11881
+ const PayoutProcessing = () => {
11882
+ return (h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11883
+ {
11884
+ ...cashReward,
11885
+ partnerFundsTransfer: {
11886
+ ...defaultPFT,
11887
+ dateCreated: 1355612521321,
11888
+ dateScheduled: getDays$1(),
11889
+ },
11920
11890
  },
11921
- },
11922
- ], taxConnection: fullySetupTaxConnection }, defaultProps$o)));
11923
- // 5. Partner funds transfer is overdue → state is PAYOUT_FAILED
11924
- const RewardsCellPayoutFailed = () => (h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11925
- {
11926
- ...cashReward,
11927
- partnerFundsTransfer: {
11928
- id: "pft-overdue",
11929
- status: "OVERDUE",
11930
- dateCreated: PAST,
11931
- dateScheduled: PAST,
11932
- dateTransferred: null,
11891
+ ], taxConnection: taxConnection }, defaultProps$o)));
11892
+ };
11893
+ const PayoutFailed$1 = () => {
11894
+ return (h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11895
+ {
11896
+ ...cashReward,
11897
+ partnerFundsTransfer: {
11898
+ ...defaultPFT,
11899
+ status: "OVERDUE",
11900
+ dateScheduled: Date.now() - 100000,
11901
+ },
11933
11902
  },
11934
- },
11935
- ], taxConnection: fullySetupTaxConnection }, defaultProps$o)));
11936
- // 6. Partner funds transfer is scheduled for a future date → state is PROCESSING
11937
- const RewardsCellPayoutProcessing = () => (h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11938
- {
11939
- ...cashReward,
11940
- partnerFundsTransfer: {
11941
- id: "pft-processing",
11942
- status: null,
11943
- dateCreated: PAST,
11944
- dateScheduled: FUTURE,
11945
- dateTransferred: null,
11903
+ ], taxConnection: taxConnection }, defaultProps$o)));
11904
+ };
11905
+ const PayoutCancelled$1 = () => {
11906
+ return (h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11907
+ {
11908
+ ...cashReward,
11909
+ partnerFundsTransfer: {
11910
+ ...defaultPFT,
11911
+ status: "REVERSED",
11912
+ dateScheduled: Date.now() - 100000,
11913
+ },
11946
11914
  },
11947
- },
11948
- ], taxConnection: fullySetupTaxConnection }, defaultProps$o)));
11949
- // 7. Partner funds transfer has been transferred → state is PAYOUT_APPROVED
11950
- const RewardsCellPayoutApproved = () => (h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11951
- {
11952
- ...cashReward,
11953
- partnerFundsTransfer: {
11954
- id: "pft-transferred",
11955
- status: "TRANSFERRED",
11956
- dateCreated: PAST,
11957
- dateScheduled: PAST,
11958
- dateTransferred: PAST,
11915
+ ], taxConnection: taxConnection }, defaultProps$o)));
11916
+ };
11917
+ const PendingTaxReview$1 = () => {
11918
+ return (h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11919
+ {
11920
+ ...cashReward,
11921
+ statuses: ["PENDING"],
11922
+ pendingReasons: ["US_TAX"],
11959
11923
  },
11960
- },
11961
- ], taxConnection: fullySetupTaxConnection }, defaultProps$o)));
11962
- // 8. Reward is pending US_TAX but tax handling is disabled → state is PENDING (W-9 required)
11963
- const RewardsCellPendingW9Required = () => (h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11964
- {
11965
- ...cashReward,
11966
- statuses: ["PENDING"],
11967
- pendingReasons: ["US_TAX"],
11968
- },
11969
- ], taxConnection: { ...fullySetupTaxConnection, taxHandlingEnabled: false } }, defaultProps$o)));
11970
- // 9. Reward is pending US_TAX and the partner is not connected → shows the partner-setup prompt
11971
- const RewardsCellUsTaxPartnerNotConnected = () => (h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11972
- {
11973
- ...cashReward,
11974
- statuses: ["PENDING"],
11975
- pendingReasons: ["US_TAX"],
11976
- },
11977
- ], taxConnection: notConnectedTaxConnection }, defaultProps$o)));
11978
- // 10. Partner is connected but has not submitted any tax documents → shows the submit-tax-docs prompt
11979
- const RewardsCellPendingTaxSubmission = () => (h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11980
- {
11981
- ...cashReward,
11982
- statuses: ["PENDING"],
11983
- pendingReasons: ["US_TAX"],
11984
- },
11985
- ], taxConnection: {
11986
- ...fullySetupTaxConnection,
11987
- publisher: {
11988
- ...fullySetupTaxConnection.publisher,
11989
- currentTaxDocument: null,
11990
- },
11991
- } }, defaultProps$o)));
11992
- // 11. Partner's tax document is inactive (rejected) → shows the submit-a-new-form prompt
11993
- const RewardsCellPendingNewTaxForm = () => (h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11994
- {
11995
- ...cashReward,
11996
- statuses: ["PENDING"],
11997
- pendingReasons: ["US_TAX"],
11998
- },
11999
- ], taxConnection: {
12000
- ...fullySetupTaxConnection,
12001
- publisher: {
12002
- ...fullySetupTaxConnection.publisher,
12003
- currentTaxDocument: {
12004
- status: "INACTIVE",
12005
- type: "W9",
12006
- dateCreated: PAST,
11924
+ ], taxConnection: {
11925
+ ...taxConnection,
11926
+ publisher: {
11927
+ ...taxConnection.publisher,
11928
+ currentTaxDocument: {
11929
+ ...defaultTaxDocument,
11930
+ status: "NOT_VERIFIED",
11931
+ },
12007
11932
  },
12008
- },
12009
- } }, defaultProps$o)));
12010
- // 12. Partner's tax document is awaiting verification → shows the awaiting-review prompt
12011
- const RewardsCellPendingTaxReview = () => (h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
12012
- {
12013
- ...cashReward,
12014
- statuses: ["PENDING"],
12015
- pendingReasons: ["US_TAX"],
12016
- },
12017
- ], taxConnection: {
12018
- ...fullySetupTaxConnection,
12019
- publisher: {
12020
- ...fullySetupTaxConnection.publisher,
12021
- currentTaxDocument: {
12022
- status: "NOT_VERIFIED",
12023
- type: "W9",
12024
- dateCreated: PAST,
11933
+ } }, defaultProps$o)));
11934
+ };
11935
+ const PendingNewTaxForm$1 = () => {
11936
+ return (h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11937
+ {
11938
+ ...cashReward,
11939
+ statuses: ["PENDING"],
11940
+ pendingReasons: ["US_TAX"],
12025
11941
  },
12026
- },
12027
- } }, defaultProps$o)));
12028
- // 13. Partner has an active tax form but has not configured withdrawal settings → shows the partner-setup prompt
12029
- const RewardsCellExistingTaxFormNoWithdrawalSettings = () => (h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
12030
- {
12031
- ...cashReward,
12032
- statuses: ["PENDING"],
12033
- pendingReasons: ["US_TAX"],
12034
- },
12035
- ], taxConnection: connectedNoWithdrawalSettings }, defaultProps$o)));
12036
- // 14. Reward has MISSING_PAYOUT_CONFIGURATION pending reason → shows the partner-setup prompt
12037
- const RewardsCellMissingPayoutConfiguration = () => (h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
12038
- {
12039
- ...cashReward,
12040
- statuses: ["PENDING"],
12041
- pendingReasons: ["MISSING_PAYOUT_CONFIGURATION"],
12042
- },
12043
- ], taxConnection: connectedNoWithdrawalSettings }, defaultProps$o)));
12044
- // 18. Reward does not match any precedence rule → state is undefined (Not available)
12045
- const RewardsCellNoMatchingRule = () => (h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [{ ...cashReward, statuses: [] }], taxConnection: fullySetupTaxConnection }, defaultProps$o)));
12046
- // ============================================================
12047
- // Aliases kept for backwards compatibility with existing references
12048
- // ============================================================
12049
- const CashReward = RewardsCellPayoutApproved;
12050
- const PayoutApproved = RewardsCellPayoutApproved;
12051
- const PayoutProcessing = RewardsCellPayoutProcessing;
12052
- const PayoutFailed$1 = RewardsCellPayoutFailed;
12053
- const PayoutCancelled$1 = RewardsCellPayoutCancelled;
12054
- const PendingTaxReview$1 = RewardsCellPendingTaxReview;
12055
- const PendingNewTaxForm$1 = RewardsCellPendingNewTaxForm;
12056
- const PendingTaxSubmission$1 = RewardsCellPendingTaxSubmission;
12057
- const PartnerNotCreatedSetupNotStarted = RewardsCellPartnerNotCreatedSetupNotStarted;
12058
- const PartnerCreatedSetupStartedButIncomplete = RewardsCellPartnerCreatedSetupStartedButIncomplete;
12059
- const PendingW9 = RewardsCellPendingW9Required;
11942
+ ], taxConnection: {
11943
+ ...taxConnection,
11944
+ publisher: {
11945
+ ...taxConnection.publisher,
11946
+ currentTaxDocument: {
11947
+ ...defaultTaxDocument,
11948
+ status: "INACTIVE",
11949
+ },
11950
+ },
11951
+ } }, defaultProps$o)));
11952
+ };
11953
+ const PendingTaxSubmission$1 = () => {
11954
+ return (h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11955
+ {
11956
+ ...cashReward,
11957
+ statuses: ["PENDING"],
11958
+ pendingReasons: ["US_TAX"],
11959
+ },
11960
+ ], taxConnection: {
11961
+ ...taxConnection,
11962
+ publisher: {
11963
+ ...taxConnection.publisher,
11964
+ currentTaxDocument: null,
11965
+ },
11966
+ } }, defaultProps$o)));
11967
+ };
11968
+ const PendingPartnerCreation$1 = () => {
11969
+ return (h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11970
+ {
11971
+ ...cashReward,
11972
+ statuses: ["PENDING"],
11973
+ pendingReasons: ["MISSING_PAYOUT_CONFIGURATION"],
11974
+ },
11975
+ ], taxConnection: {
11976
+ ...taxConnection,
11977
+ connected: false,
11978
+ } }, defaultProps$o)));
11979
+ };
11980
+ const PendingW9 = () => {
11981
+ return (h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11982
+ {
11983
+ ...cashReward,
11984
+ statuses: ["PENDING"],
11985
+ pendingReasons: ["US_TAX"],
11986
+ },
11987
+ ], taxConnection: {
11988
+ ...taxConnection,
11989
+ taxHandlingEnabled: false,
11990
+ } }, defaultProps$o)));
11991
+ };
12060
11992
 
12061
11993
  const TaxAndCashReferralTableRewardsCell = /*#__PURE__*/Object.freeze({
12062
11994
  __proto__: null,
12063
11995
  'default': TaxAndCashReferralTableRewardsCell_stories,
12064
- RewardsCellFraudDenied: RewardsCellFraudDenied,
12065
- RewardsCellFraudPendingReview: RewardsCellFraudPendingReview,
12066
- RewardsCellPartnerNotCreatedSetupNotStarted: RewardsCellPartnerNotCreatedSetupNotStarted,
12067
- RewardsCellPartnerCreatedSetupStartedButIncomplete: RewardsCellPartnerCreatedSetupStartedButIncomplete,
12068
- RewardsCellPayoutCancelled: RewardsCellPayoutCancelled,
12069
- RewardsCellPayoutFailed: RewardsCellPayoutFailed,
12070
- RewardsCellPayoutProcessing: RewardsCellPayoutProcessing,
12071
- RewardsCellPayoutApproved: RewardsCellPayoutApproved,
12072
- RewardsCellPendingW9Required: RewardsCellPendingW9Required,
12073
- RewardsCellUsTaxPartnerNotConnected: RewardsCellUsTaxPartnerNotConnected,
12074
- RewardsCellPendingTaxSubmission: RewardsCellPendingTaxSubmission,
12075
- RewardsCellPendingNewTaxForm: RewardsCellPendingNewTaxForm,
12076
- RewardsCellPendingTaxReview: RewardsCellPendingTaxReview,
12077
- RewardsCellExistingTaxFormNoWithdrawalSettings: RewardsCellExistingTaxFormNoWithdrawalSettings,
12078
- RewardsCellMissingPayoutConfiguration: RewardsCellMissingPayoutConfiguration,
12079
- RewardsCellNoMatchingRule: RewardsCellNoMatchingRule,
12080
11996
  CashReward: CashReward,
12081
11997
  PayoutApproved: PayoutApproved,
12082
11998
  PayoutProcessing: PayoutProcessing,
@@ -12085,8 +12001,7 @@ const TaxAndCashReferralTableRewardsCell = /*#__PURE__*/Object.freeze({
12085
12001
  PendingTaxReview: PendingTaxReview$1,
12086
12002
  PendingNewTaxForm: PendingNewTaxForm$1,
12087
12003
  PendingTaxSubmission: PendingTaxSubmission$1,
12088
- PartnerNotCreatedSetupNotStarted: PartnerNotCreatedSetupNotStarted,
12089
- PartnerCreatedSetupStartedButIncomplete: PartnerCreatedSetupStartedButIncomplete,
12004
+ PendingPartnerCreation: PendingPartnerCreation$1,
12090
12005
  PendingW9: PendingW9
12091
12006
  });
12092
12007
 
@@ -12163,7 +12078,7 @@ const taxAndCashTableProps = {
12163
12078
  h("sqm-referral-table-user-cell", { name: "Partner Creation User" }),
12164
12079
  h(Converted, null),
12165
12080
  h(DateCell$1, null),
12166
- h(PartnerNotCreatedSetupNotStarted, null),
12081
+ h(PendingPartnerCreation$1, null),
12167
12082
  ],
12168
12083
  [
12169
12084
  h("sqm-referral-table-user-cell", { name: "Missing W9 User" }),
@@ -12507,7 +12422,7 @@ const scenario2 = "@author:derek\n@owner:derek\nFeature: Reward Table reward Col
12507
12422
 
12508
12423
  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 \"Your Friend\" 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 \"Your Friend\"\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\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";
12509
12424
 
12510
- const scenario3 = "@author:derek @owner:derek\nFeature: Reward Table Status Column\n Shows the status of each reward\n\n Background:\n Given the status column is included in the reward table\n\n @motivating @ui\n Scenario Outline: The title of the status column is configurable\n Given the \"column-title\" prop is set to <value>\n Then the status column is shown with <columnTitle>\n\n Examples:\n | value | columnTitle |\n | Status | |\n | My column title | My column title |\n\n @motivating @ui\n Scenario Outline: The status column displays the status of each reward\n Given a user\n And they have a <status> reward\n When they view the reward table\n Then the status of their reward is displayed in <pillColour> pill with <text>\n\n Examples:\n | status | text | pillColour |\n | AVAILABLE | Available | success |\n | CANCELLED | Cancelled | danger |\n | PENDING | Pending | warning |\n | EXPIRED | Expired | danger |\n | REDEEMED | Redeemed | primary |\n | PENDING_REVIEW | Pending | warning |\n | PAYOUT_TRANSFERRED | Payout Approved | primary |\n | PAYOUT_NOT_YET_DUE | Payout Approved | primary |\n | PAYOUT_OVERDUE | Payout Failed | danger |\n | PAYOUT_REVERSED | Payout Cancelled | danger |\n | PROCESSING | Processing | warning |\n | PENDING_TAX_REVIEW | Pending | warning |\n | PENDING_NEW_TAX_FORM | Pending | warning |\n | PENDING_TAX_SUBMISSION | Pending | warning |\n | PENDING_PARTNER_CREATION | Pending | warning |\n | DENIED | Denied | danger |\n\n @motivating\n Scenario Outline: Status precedence ladder\n Given a reward, its referral fraud state, the user's Impact tax connection\n Then <rule> is produced\n And the <resultingStatus>, <resultingBadgeText>, and <resultingDescription> is determined in the following <order>:\n\n Examples:\n | order | rule | resultingStatus | resultingBadgeText | resultingDescription |\n | 1 | referral.fraudData.moderationStatus is \"DENIED\" | DENIED | Denied | Detected self-referral |\n | 2 | referral.fraudData.moderationStatus is \"PENDING\" | PENDING_REVIEW | Pending | Awaiting review |\n | 3 | reward.rewardedCash is true AND impactConnection is NOT connected | PENDING | Pending | Complete your cash payout setup to receive your rewards. |\n | 4 | reward.rewardedCash is true AND impactConnection is connected AND publisher.withdrawalSettings is missing | PENDING | Pending | Complete your cash payout setup to receive your rewards. |\n | 5 | partnerFundsTransfer.status is \"REVERSED\" | PAYOUT_CANCELLED | Payout Cancelled | If you think this is a mistake, contact our Support team. |\n | 6 | partnerFundsTransfer.status is \"OVERDUE\" | PAYOUT_FAILED | Payout Failed | Payout failed due to a fulfillment issue and is currently being retried. |\n | 7 | reward.pendingReasons includes \"MISSING_PAYOUT_CONFIGURATION\" AND publisher.withdrawalSettings is missing | PENDING | Pending | Complete your cash payout setup to receive your rewards. |\n | 8 | partnerFundsTransfer.dateScheduled is in the future | PROCESSING | Payment Processing | Processing until Jan 1, 2026. Payout is then scheduled based on your settings. |\n | 9 | partnerFundsTransfer.status is \"TRANSFERRED\" / \"NOT_YET_DUE\", or dateScheduled has passed without REVERSED/OVERDUE | PAYOUT_APPROVED | Payout Approved | Payout approved and scheduled for payment based on your settings. |\n | 10 | reward.dateCancelled is set | CANCELLED | Cancelled | Jan 1, 2026 |\n | 11 | reward.statuses includes \"EXPIRED\" | EXPIRED | Expired | Jan 1, 2026 |\n | 12 | reward.statuses includes \"PENDING\" | PENDING | Pending | Until Jan 1, 2026 |\n | 13 | statuses includes \"REDEEMED\" | REDEEMED | Redeemed | Jan 1, 2026 |\n | 14 | statuses includes \"AVAILABLE\" | AVAILABLE | Available | Expires Jan 1, 2026 |\n | 15 | statuses includes \"CANCELLED\" | CANCELLED | Cancelled | Jan 1, 2026 |\n# This spec should probably be inserted in to the above spec after rule 9 because it gets invoked when the reward state is pending\n# and does not hit the rules that output pending from above\n\n @motivating\n Scenario Outline: PENDING description precedence ladder\n Given a PENDING reward, its pendingReasons, and the user's Impact tax connection\n Then <rule> is produced\n And the <resultingStatus>, <resultingBadgeText>, and <resultingDescription> is determined in the following order:\n\n Examples:\n | order | rule | resultingStatus | resultingBadgeText | resultingDescription |\n | 1 | pendingReasons includes \"US_TAX\" AND impactConnection.taxHandlingEnabled is false | PENDING | Pending | W-9 required |\n | 2 | pendingReasons includes \"US_TAX\" AND impactConnection is NOT connected | PENDING | Pending | Complete your tax and cash payout setup to receive your rewards. |\n | 3 | pendingReasons includes \"US_TAX\" AND publisher.requiredTaxDocumentType is set AND publisher.currentTaxDocument is missing | PENDING | Pending | Submit your tax documents to receive your rewards. |\n | 4 | pendingReasons includes \"US_TAX\" AND publisher.requiredTaxDocumentType is set AND publisher.currentTaxDocument.status is \"INACTIVE\" | PENDING | Pending | Invalid tax form. Submit a new form to receive your rewards. |\n | 5 | pendingReasons includes \"US_TAX\" AND publisher.requiredTaxDocumentType is set AND publisher.currentTaxDocument.status is \"NOT_VERIFIED\" | PENDING | Pending | Awaiting tax form review. |\n | 6 | pendingReasons includes \"US_TAX\" AND publisher.withdrawalSettings is missing | PENDING | Pending | Complete your tax and cash payout setup to receive your rewards. |\n | 7 | pendingReasons includes \"MISSING_PAYOUT_CONFIGURATION\" | PENDING | Pending | Complete your tax and cash payout setup to receive your rewards. |\n | 8 | reward.rewardedCash is true AND impactConnection is NOT connected (fallback when no pendingReason returned) | PENDING | Pending | Complete your tax and cash payout setup to receive your rewards. |\n | 9 | reward.rewardedCash is true AND impactConnection is connected AND publisher.withdrawalSettings is missing (fallback) | PENDING | Pending | Complete your tax and cash payout setup to receive your rewards. |\n\n @motivating\n Scenario Outline: Reward status related information is displayed under status pills\n Given a user\n And they have a <reward>\n And their program is\n When they view the reward table\n Then they see their reward\n And under the pill is <text>\n And the date is localized to the users locale\n\n Examples: Standard Rewards\n | reward | text |\n | available reward with an expiry date | Expires <localized date> |\n | redeemed reward | <localized date> |\n | expired reward | <localized date> |\n | cancelled reward | <localized date> |\n | pending reward with a scheduled date | Until <localized date> |\n\n Examples: Tax & Payout Rewards\n | reward | text |\n | pending reward due to W9 | W-9 required |\n | pending reward due to fulfillment error | Fulfillment error |\n | reward pending review of referral | Awaiting review |\n | pending reward due to no connected Impact partner | Complete your tax and cash payout setup to receive your rewards. |\n | pending reward due to an invalid tax document | Invalid tax form. Submit a new form to receive your rewards. |\n | pending reward due to user required to submit a tax document | Submit your tax documents to receive your rewards. |\n | pending reward due to tax document being in review | Awaiting tax form review. |\n | reward whose payout is processing | Processing until <localized date>. Payout is then scheduled based on your settings. |\n | reward whose payout failed | Payout failed due to a fulfillment issue and is currently being retried. |\n | reward whose payout was approved | Payout approved and scheduled for payment based on your settings. |\n | reward whose payout was cancelled | If you think this is a mistake, contact our Support team. |\n | cancelled reward from denied referral | Detected self-referral |\n\n @minutia\n Scenario Outline: Tax-related reward statuses are based on the user's Impact tax connection\n Given a user\n And they are in a program that has Impact tax handling enabled\n And they have at least one pending reward\n And the reward's pending reasons include \"MISSING_PAYOUT_CONFIGURATION\"\n Then the status description will be\n \"\"\"\n Complete your tax and cash payout setup to receive your rewards.\n \"\"\"\n\n @motivating\n Scenario Outline: Statuses can be customized via ICU format\n Given the \"status-text\" prop is \"{status, select, AVAILABLE {Redeem me!} CANCELLED {Unavailable} PENDING {Coming soon!} EXPIRED {Past due} REDEEMED {Spent} PENDING_REVIEW {Pending Review!} PAYOUT_SENT {Payout Sent!} PAYOUT_FAILED {Payout Failed!} PENDING_TAX_REVIEW {Pending Tax Review!} PENDING_NEW_TAX_FORM {Pending new tax form!} PENDING_TAX_SUBMISSION {Pending tax submission!} PENDING_PARTNER_CREATION {Pending partner creation!} DENIED {Unlucky!}}\"\n And a user\n And they have a <status> reward\n When they view the reward table\n Then the status of their reward is displayed in <pillColour> pill with <text>\n\n Examples:\n | status | text | pillColour |\n | AVAILABLE | Redeem me! | success |\n | CANCELLED | Unavailable | danger |\n | PENDING | Coming soon! | warning |\n | EXPIRED | Past due | danger |\n | REDEEMED | Spent | primary |\n | PENDING_REVIEW | Pending Review! | warning |\n | PAYOUT_TRANSFERRED | Payout Approved! | primary |\n | PAYOUT_NOT_YET_DUE | Payout Approved! | primary |\n | PAYOUT_OVERDUE | Payout Failed! | danger |\n | PAYOUT_REVERSED | Payout Cancelled! | danger |\n | DENIED | Unlucky! | danger |\n\n @minutia @ui\n Scenario Outline: Expiry status date text can be configured\n Given the \"expiry-text\" prop has <value>\n And a user with an available reward with an expiry date\n When they view the reward table\n Then they see <text> under the Available Status pill\n\n Examples:\n | value | text |\n | Expires | Expires <localized date> |\n | Redeem before | Redeem before <localized date> |\n\n @motivating\n Scenario: Payout-related reward statuses are determined by the state of the Paid Funds Transfer\n Given a user has a reward with a connected Paid Funds Transfer (PFT)\n When the PFT is in <pftState>\n Then the reward's status is <status>\n And the status is displayed in a <pillColour> pill with <text>\n And under the pill is <description>\n\n Examples:\n | pftState | status | text | pillColour | description |\n | transfer date is in the future | PROCESSING | Processing | warning | Processing until <localized date>. Payout is then scheduled based on your settings. |\n | successfully transferred to payment provider | PAYOUT_TRANSFERRED | Payout Approved | primary | Payout approved and scheduled for payment based on your settings. |\n | approved but payout scheduled date not yet arrived | PAYOUT_NOT_YET_DUE | Payout Approved | primary | Payout approved and scheduled for payment based on your settings. |\n | failed due to fulfillment issue and retrying | PAYOUT_OVERDUE | Payout Failed | danger | Payout failed due to a fulfillment issue and is currently being retried. |\n | reversed or cancelled after being processed | PAYOUT_REVERSED | Payout Cancelled | danger | If you think this is a mistake, contact our Support team. |\n";
12425
+ const scenario3 = "@author:derek @owner:derek\nFeature: Reward Table Status Column\n Shows the status of each reward\n\n Background:\n Given the status column is included in the reward table\n\n @motivating @ui\n Scenario Outline: The title of the status column is configurable\n Given the \"column-title\" prop is set to <value>\n Then the status column is shown with <columnTitle>\n\n Examples:\n | value | columnTitle |\n | Status | |\n | My column title | My column title |\n\n @motivating @ui\n Scenario Outline: The status column displays the status of each reward\n Given a user\n And they have a <status> reward\n When they view the reward table\n Then the status of their reward is displayed in <pillColour> pill with <text>\n\n Examples:\n | status | text | pillColour |\n | AVAILABLE | Available | success |\n | CANCELLED | Cancelled | danger |\n | PENDING | Pending | warning |\n | EXPIRED | Expired | danger |\n | REDEEMED | Redeemed | primary |\n | PENDING_REVIEW | Pending | warning |\n | PAYOUT_TRANSFERRED | Payout Approved | primary |\n | PAYOUT_NOT_YET_DUE | Payout Approved | primary |\n | PAYOUT_OVERDUE | Payout Failed | danger |\n | PAYOUT_REVERSED | Payout Cancelled | danger |\n | PROCESSING | Processing | warning |\n | PENDING_TAX_REVIEW | Pending | warning |\n | PENDING_NEW_TAX_FORM | Pending | warning |\n | PENDING_TAX_SUBMISSION | Pending | warning |\n | PENDING_PARTNER_CREATION | Pending | warning |\n | DENIED | Denied | danger |\n\n @motivating\n Scenario Outline: Reward status related information is displayed under status pills\n Given a user\n And they have a <reward>\n And their program is\n When they view the reward table\n Then they see their reward\n And under the pill is <text>\n And the date is localized to the users locale\n\n Examples: Standard Rewards\n | reward | text |\n | available reward with an expiry date | Expires <localized date> |\n | redeemed reward | <localized date> |\n | expired reward | <localized date> |\n | cancelled reward | <localized date> |\n | pending reward with a scheduled date | Until <localized date> |\n \n Examples: Tax & Payout Rewards\n | reward | text |\n | pending reward due to W9 | W-9 required |\n | pending reward due to fulfillment error | Fulfillment error |\n | reward pending review of referral | Awaiting review |\n | pending reward due to no connected Impact partner | Complete your tax and cash payout setup to receive your rewards. |\n | pending reward due to an invalid tax document | Invalid tax form. Submit a new form to receive your rewards. |\n | pending reward due to user required to submit a tax document | Submit your tax documents to receive your rewards. |\n | pending reward due to tax document being in review | Awaiting tax form review. |\n | reward whose payout is processing | Processing until <localized date>. Payout is then scheduled based on your settings. |\n | reward whose payout failed | Payout failed due to a fulfillment issue and is currently being retried. |\n | reward whose payout was approved | Payout approved and scheduled for payment based on your settings. |\n | reward whose payout was cancelled | If you think this is a mistake, contact our Support team. |\n | cancelled reward from denied referral | Detected self-referral |\n\n @minutia\n Scenario Outline: Tax-related reward statuses are based on the user's Impact tax connection\n Given a user\n And they are in a program that has Impact tax handling enabled\n And they have at least one pending reward\n And the reward's pending reasons include \"MISSING_PAYOUT_CONFIGURATION\"\n Then the status description will be\n \"\"\"\n Complete your tax and cash payout setup to receive your rewards.\n \"\"\"\n\n @motivating\n Scenario Outline: Statuses can be customized via ICU format\n Given the \"status-text\" prop is \"{status, select, AVAILABLE {Redeem me!} CANCELLED {Unavailable} PENDING {Coming soon!} EXPIRED {Past due} REDEEMED {Spent} PENDING_REVIEW {Pending Review!} PAYOUT_SENT {Payout Sent!} PAYOUT_FAILED {Payout Failed!} PENDING_TAX_REVIEW {Pending Tax Review!} PENDING_NEW_TAX_FORM {Pending new tax form!} PENDING_TAX_SUBMISSION {Pending tax submission!} PENDING_PARTNER_CREATION {Pending partner creation!} DENIED {Unlucky!}}\"\n And a user\n And they have a <status> reward\n When they view the reward table\n Then the status of their reward is displayed in <pillColour> pill with <text>\n\n Examples:\n | status | text | pillColour |\n | AVAILABLE | Redeem me! | success |\n | CANCELLED | Unavailable | danger |\n | PENDING | Coming soon! | warning |\n | EXPIRED | Past due | danger |\n | REDEEMED | Spent | primary |\n | PENDING_REVIEW | Pending Review! | warning |\n | PAYOUT_TRANSFERRED | Payout Approved! | primary |\n | PAYOUT_NOT_YET_DUE | Payout Approved! | primary |\n | PAYOUT_OVERDUE | Payout Failed! | danger |\n | PAYOUT_REVERSED | Payout Cancelled! | danger |\n | DENIED | Unlucky! | danger |\n\n @minutia @ui\n Scenario Outline: Expiry status date text can be configured\n Given the \"expiry-text\" prop has <value>\n And a user with an available reward with an expiry date\n When they view the reward table\n Then they see <text> under the Available Status pill\n\n Examples:\n | value | text |\n | Expires | Expires <localized date> |\n | Redeem before | Redeem before <localized date> |\n\n @motivating\n Scenario: Payout-related reward statuses are determined by the state of the Paid Funds Transfer\n Given a user has a reward with a connected Paid Funds Transfer (PFT)\n When the PFT is in <pftState>\n Then the reward's status is <status>\n And the status is displayed in a <pillColour> pill with <text>\n And under the pill is <description>\n\n Examples:\n | pftState | status | text | pillColour | description |\n | transfer date is in the future | PROCESSING | Processing | warning | Processing until <localized date>. Payout is then scheduled based on your settings. |\n | successfully transferred to payment provider | PAYOUT_TRANSFERRED | Payout Approved | primary | Payout approved and scheduled for payment based on your settings. |\n | approved but payout scheduled date not yet arrived | PAYOUT_NOT_YET_DUE | Payout Approved | primary | Payout approved and scheduled for payment based on your settings. |\n | failed due to fulfillment issue and retrying | PAYOUT_OVERDUE | Payout Failed | danger | Payout failed due to a fulfillment issue and is currently being retried. |\n | reversed or cancelled after being processed | PAYOUT_REVERSED | Payout Cancelled | danger | If you think this is a mistake, contact our Support team. |";
12511
12426
 
12512
12427
  const scenario$x = scenario1 + scenario2 + scenario3 + scenario4;
12513
12428
  const RewardsTableCell_stories = {
@@ -13035,9 +12950,6 @@ const RewardsTable$1 = /*#__PURE__*/Object.freeze({
13035
12950
  const TaxAndCashRewardsTableCell_stories = {
13036
12951
  title: "Components/Tax And Cash Rewards Table Cell",
13037
12952
  };
13038
- // Reusable timestamps (current date is May 2026)
13039
- const PAST$1 = 1640995200000; // Jan 1, 2022
13040
- const FUTURE$1 = 2779257600000; // ~2058
13041
12953
  const cashReward$1 = {
13042
12954
  id: "68c34fd98a6cb4f5f8394084",
13043
12955
  type: "CREDIT",
@@ -13057,13 +12969,13 @@ const cashReward$1 = {
13057
12969
  name: "Cash",
13058
12970
  },
13059
12971
  name: null,
13060
- dateCreated: PAST$1,
13061
- dateScheduledFor: null,
13062
- dateGiven: PAST$1,
12972
+ dateCreated: 1757630425085,
12973
+ dateScheduledFor: 1757631025115,
12974
+ dateGiven: 1757630737115,
13063
12975
  dateExpires: null,
13064
12976
  dateCancelled: null,
13065
- dateRedeemed: null,
13066
- dateModified: PAST$1,
12977
+ dateRedeemed: 1757630737115,
12978
+ dateModified: 1757630737115,
13067
12979
  rewardSource: "MANUAL",
13068
12980
  fuelTankCode: null,
13069
12981
  fuelTankType: null,
@@ -13096,266 +13008,161 @@ const cashReward$1 = {
13096
13008
  },
13097
13009
  referral: null,
13098
13010
  description: null,
13099
- statuses: [],
13011
+ statuses: ["REDEEMED"],
13100
13012
  rewardRedemptionTransactions: {
13101
13013
  data: null,
13102
13014
  },
13103
13015
  exchangedRewardRedemptionTransaction: null,
13104
13016
  pendingReasons: [],
13105
- rewardedCash: true,
13106
13017
  };
13107
- // ============================================================
13108
- // Reusable tax connections
13109
- // ============================================================
13110
- const fullySetupTaxConnection$1 = {
13111
- connected: true,
13112
- taxHandlingEnabled: true,
13113
- connectionStatus: "COMPLETED",
13114
- publisher: {
13115
- requiredTaxDocumentType: "W9",
13116
- currentTaxDocument: {
13117
- status: "ACTIVE",
13118
- type: "W9",
13119
- dateCreated: PAST$1,
13120
- },
13121
- withdrawalSettings: { paymentMethod: "BANK_TRANSFER" },
13122
- payoutsAccount: null,
13018
+ const pending$1 = {
13019
+ statuses: ["PENDING"],
13020
+ };
13021
+ const processingPFT = {
13022
+ partnerFundsTransfer: {
13023
+ id: "123",
13024
+ status: null,
13025
+ dateCreated: 1355612521321,
13026
+ dateScheduled: 2779257600000,
13027
+ dateTransferred: null,
13123
13028
  },
13124
13029
  };
13125
- const connectedNoWithdrawalSettings$1 = {
13030
+ const taxConnection$1 = {
13126
13031
  connected: true,
13127
13032
  taxHandlingEnabled: true,
13128
- connectionStatus: "COMPLETED",
13129
13033
  publisher: {
13130
- requiredTaxDocumentType: "W9",
13034
+ requiredTaxDocumentType: "W8BEN",
13131
13035
  currentTaxDocument: {
13132
- status: "ACTIVE",
13133
- type: "W9",
13134
- dateCreated: PAST$1,
13036
+ status: "NOT_VERIFIED",
13037
+ type: "W8BEN",
13038
+ dateCreated: 321321487,
13039
+ },
13040
+ withdrawalSettings: {
13041
+ paymentMethod: "BANK_TRANSFER",
13135
13042
  },
13136
- withdrawalSettings: null,
13137
13043
  payoutsAccount: null,
13138
13044
  },
13139
13045
  };
13140
- const notConnectedTaxConnection$1 = {
13141
- connected: false,
13142
- taxHandlingEnabled: true,
13143
- connectionStatus: "NOT_STARTED",
13144
- publisher: null,
13145
- };
13146
- // ============================================================
13147
- // Reward Cell (kept from original)
13148
- // ============================================================
13149
- const CashReward$1 = () => (h("sqm-rewards-table-reward-cell", { reward: { ...cashReward$1, statuses: ["REDEEMED"], dateRedeemed: PAST$1 }, availableText: "{availableAmount} remaining" }));
13150
- // ============================================================
13151
- // STATUS PRECEDENCE LADDER — one story per rule
13152
- // (See sqm-rewards-table-status-column-new.feature § 2)
13153
- // ============================================================
13154
- // 1. Fraud check denied the referral → status is Denied
13155
- const StatusCellFraudDenied = () => (h("sqm-rewards-table-status-cell", { statusText: "Denied", reward: {
13156
- ...cashReward$1,
13157
- referral: { fraudData: { moderationStatus: "DENIED" } },
13158
- }, taxConnection: fullySetupTaxConnection$1 }));
13159
- // 2. Fraud check is still pending review → status is Pending Review
13160
- const StatusCellFraudPendingReview = () => (h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: {
13161
- ...cashReward$1,
13162
- referral: { fraudData: { moderationStatus: "PENDING" } },
13163
- }, taxConnection: fullySetupTaxConnection$1 }));
13164
- // 3. Partner funds transfer was reversed → status is Payout Cancelled
13165
- const StatusCellPayoutCancelled = () => (h("sqm-rewards-table-status-cell", { statusText: "Payout Cancelled", reward: {
13166
- ...cashReward$1,
13167
- partnerFundsTransfer: {
13168
- id: "pft-reversed",
13169
- status: "REVERSED",
13170
- dateCreated: PAST$1,
13171
- dateScheduled: PAST$1,
13172
- dateTransferred: null,
13173
- },
13174
- }, taxConnection: fullySetupTaxConnection$1 }));
13175
- // 4. Partner funds transfer is overdue → status is Payout Failed
13176
- const StatusCellPayoutFailed = () => (h("sqm-rewards-table-status-cell", { statusText: "Payout Failed", reward: {
13177
- ...cashReward$1,
13178
- partnerFundsTransfer: {
13179
- id: "pft-overdue",
13180
- status: "OVERDUE",
13181
- dateCreated: PAST$1,
13182
- dateScheduled: PAST$1,
13183
- dateTransferred: null,
13184
- },
13185
- }, taxConnection: fullySetupTaxConnection$1 }));
13186
- // 5. Connected partner has not finished withdrawal settings setup → status is Pending
13187
- const StatusCellPartnerCreatedSetupStartedButIncomplete = () => (h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: {
13188
- ...cashReward$1,
13189
- partnerFundsTransfer: {
13190
- id: "pft-not-yet-due",
13191
- status: "NOT_YET_DUE",
13192
- dateCreated: PAST$1,
13193
- dateScheduled: FUTURE$1,
13194
- dateTransferred: null,
13195
- },
13196
- }, taxConnection: connectedNoWithdrawalSettings$1 }));
13197
- // Reward is pending US_TAX and the partner has not been created yet → shows the partner-setup prompt
13198
- const StatusCellPartnerNotCreatedSetupNotStarted = () => (h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: {
13199
- ...cashReward$1,
13200
- statuses: ["PENDING"],
13201
- pendingReasons: ["US_TAX"],
13202
- }, taxConnection: notConnectedTaxConnection$1 }));
13203
- // 6. Reward has MISSING_PAYOUT_CONFIGURATION pending reason and no withdrawal settings → status is Pending
13204
- const StatusCellMissingPayoutConfiguration = () => (h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: {
13205
- ...cashReward$1,
13206
- statuses: ["PENDING"],
13207
- pendingReasons: ["MISSING_PAYOUT_CONFIGURATION"],
13208
- }, taxConnection: connectedNoWithdrawalSettings$1 }));
13209
- // 7. Partner funds transfer is scheduled for a future date → status is Processing
13210
- const StatusCellPayoutProcessing = () => (h("sqm-rewards-table-status-cell", { statusText: "Processing", reward: {
13211
- ...cashReward$1,
13212
- partnerFundsTransfer: {
13213
- id: "pft-processing",
13214
- status: null,
13215
- dateCreated: PAST$1,
13216
- dateScheduled: FUTURE$1,
13217
- dateTransferred: null,
13218
- },
13219
- }, taxConnection: fullySetupTaxConnection$1 }));
13220
- // 8. Partner funds transfer has been transferred → status is Payout Approved
13221
- const StatusCellPayoutApproved = () => (h("sqm-rewards-table-status-cell", { statusText: "Payout Approved", reward: {
13222
- ...cashReward$1,
13223
- partnerFundsTransfer: {
13224
- id: "pft-transferred",
13225
- status: "TRANSFERRED",
13226
- dateCreated: PAST$1,
13227
- dateScheduled: PAST$1,
13228
- dateTransferred: PAST$1,
13229
- },
13230
- }, taxConnection: fullySetupTaxConnection$1 }));
13231
- // 9. Reward has a cancellation date set → status is Cancelled
13232
- const StatusCellRewardCancelled = () => (h("sqm-rewards-table-status-cell", { statusText: "Cancelled", reward: {
13233
- ...cashReward$1,
13234
- statuses: ["CANCELLED"],
13235
- dateCancelled: PAST$1,
13236
- }, taxConnection: fullySetupTaxConnection$1 }));
13237
- // 10. Reward statuses include EXPIRED → status is Expired
13238
- const StatusCellRewardExpired = () => (h("sqm-rewards-table-status-cell", { statusText: "Expired", reward: {
13239
- ...cashReward$1,
13240
- statuses: ["EXPIRED"],
13241
- dateExpires: PAST$1,
13242
- }, taxConnection: fullySetupTaxConnection$1 }));
13243
- // 11. Reward is pending and scheduled for a future date → status is Pending with the scheduled date shown
13244
- const StatusCellPendingScheduled$1 = () => (h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: {
13245
- ...cashReward$1,
13246
- statuses: ["PENDING"],
13247
- pendingReasons: ["SCHEDULED"],
13248
- dateScheduledFor: FUTURE$1,
13249
- }, taxConnection: fullySetupTaxConnection$1 }));
13250
- // 12. Reward does not match any precedence rule → no badge text, no description
13251
- const StatusCellNoMatchingRule = () => (h("sqm-rewards-table-status-cell", { statusText: "", reward: {
13252
- ...cashReward$1,
13253
- statuses: [],
13254
- }, taxConnection: fullySetupTaxConnection$1 }));
13255
- // ============================================================
13256
- // US_TAX getTaxPendingReasons branches (Pending Description Resolution § 5)
13257
- // ============================================================
13258
- // Reward is pending US_TAX but tax handling is disabled → shows "W-9 required"
13259
- const StatusCellPendingW9Required = () => (h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: {
13260
- ...cashReward$1,
13261
- statuses: ["PENDING"],
13262
- pendingReasons: ["US_TAX"],
13263
- }, taxConnection: { ...fullySetupTaxConnection$1, taxHandlingEnabled: false } }));
13264
- // Partner is connected but has not submitted any tax documents → shows the submit-tax-docs prompt
13265
- const StatusCellPendingTaxSubmission = () => (h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: {
13266
- ...cashReward$1,
13267
- statuses: ["PENDING"],
13268
- pendingReasons: ["US_TAX"],
13269
- }, taxConnection: {
13270
- ...fullySetupTaxConnection$1,
13271
- publisher: {
13272
- ...fullySetupTaxConnection$1.publisher,
13273
- currentTaxDocument: null,
13274
- },
13275
- } }));
13276
- // Partner's tax document is inactive (rejected) → shows the submit-a-new-form prompt
13277
- const StatusCellPendingNewTaxForm = () => (h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: {
13278
- ...cashReward$1,
13279
- statuses: ["PENDING"],
13280
- pendingReasons: ["US_TAX"],
13281
- }, taxConnection: {
13282
- ...fullySetupTaxConnection$1,
13283
- publisher: {
13284
- ...fullySetupTaxConnection$1.publisher,
13285
- currentTaxDocument: {
13286
- status: "INACTIVE",
13287
- type: "W9",
13288
- dateCreated: PAST$1,
13046
+ const CashReward$1 = () => {
13047
+ return (h("sqm-rewards-table-reward-cell", { reward: { ...cashReward$1 }, availableText: "{availableAmount} remaining" }));
13048
+ };
13049
+ const StatusCellPendingTaxReview = () => {
13050
+ return (h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: { ...cashReward$1, ...pending$1, pendingReasons: ["US_TAX"] }, taxConnection: {
13051
+ ...taxConnection$1,
13052
+ publisher: {
13053
+ requiredTaxDocumentType: "W8BEN",
13054
+ currentTaxDocument: {
13055
+ status: "",
13056
+ },
13057
+ ...taxConnection$1.publisher,
13289
13058
  },
13290
- },
13291
- } }));
13292
- // Partner's tax document is awaiting verification → shows the awaiting-review prompt
13293
- const StatusCellPendingTaxReview = () => (h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: {
13294
- ...cashReward$1,
13295
- statuses: ["PENDING"],
13296
- pendingReasons: ["US_TAX"],
13297
- }, taxConnection: {
13298
- ...fullySetupTaxConnection$1,
13299
- publisher: {
13300
- ...fullySetupTaxConnection$1.publisher,
13301
- currentTaxDocument: {
13302
- status: "NOT_VERIFIED",
13303
- type: "W9",
13304
- dateCreated: PAST$1,
13059
+ } }));
13060
+ };
13061
+ const StatusCellPendingNewTaxForm = () => {
13062
+ return (h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: {
13063
+ ...cashReward$1,
13064
+ statuses: ["PENDING"],
13065
+ pendingReasons: ["US_TAX"],
13066
+ }, taxConnection: {
13067
+ connected: true,
13068
+ taxHandlingEnabled: true,
13069
+ publisher: {
13070
+ requiredTaxDocumentType: "W8BEN",
13071
+ withdrawalSettings: {
13072
+ paymentMethod: "BANK_TRANSFER",
13073
+ },
13074
+ payoutsAccount: null,
13075
+ currentTaxDocument: {
13076
+ status: "INACTIVE",
13077
+ type: "W8BEN",
13078
+ dateCreated: 321321487,
13079
+ },
13305
13080
  },
13306
- },
13307
- } }));
13308
- // Partner has an active tax form but has not configured withdrawal settings → shows the partner-setup prompt
13309
- const StatusCellExistingTaxFormNoWithdrawalSettings = () => (h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: {
13310
- ...cashReward$1,
13311
- statuses: ["PENDING"],
13312
- pendingReasons: ["US_TAX"],
13313
- }, taxConnection: connectedNoWithdrawalSettings$1 }));
13314
- // Partner is connected, no tax form is required, but withdrawal settings are not submitted → shows the partner-setup prompt
13315
- const StatusCellConnectedNoTaxRequiredNoWithdrawalSettings = () => (h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: {
13316
- ...cashReward$1,
13317
- statuses: ["PENDING"],
13318
- pendingReasons: [],
13319
- }, taxConnection: {
13320
- connected: true,
13321
- taxHandlingEnabled: true,
13322
- connectionStatus: "COMPLETED",
13323
- publisher: {
13324
- requiredTaxDocumentType: null,
13325
- currentTaxDocument: null,
13326
- withdrawalSettings: null,
13327
- payoutsAccount: null,
13328
- },
13329
- } }));
13330
- // Aliases kept for the table-level stories file
13331
- const StatusCellPayoutSent = StatusCellPayoutApproved;
13332
- const StatusCellPendingW9 = StatusCellPendingW9Required;
13081
+ } }));
13082
+ };
13083
+ const StatusCellPendingTaxSubmission = () => {
13084
+ return (h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: { ...cashReward$1, ...pending$1, pendingReasons: ["US_TAX"] }, taxConnection: {
13085
+ ...taxConnection$1,
13086
+ publisher: {
13087
+ ...taxConnection$1.publisher,
13088
+ requiredTaxDocumentType: "W8BEN",
13089
+ currentTaxDocument: null,
13090
+ },
13091
+ } }));
13092
+ };
13093
+ const StatusCellPendingPartnerCreation = () => {
13094
+ return (h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: {
13095
+ ...cashReward$1,
13096
+ ...pending$1,
13097
+ pendingReasons: ["US_TAX"],
13098
+ }, taxConnection: {
13099
+ ...taxConnection$1,
13100
+ connected: false,
13101
+ } }));
13102
+ };
13103
+ const StatusCellPendingW9 = () => {
13104
+ return (h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: {
13105
+ ...cashReward$1,
13106
+ ...pending$1,
13107
+ pendingReasons: ["US_TAX"],
13108
+ }, taxConnection: {
13109
+ ...taxConnection$1,
13110
+ taxHandlingEnabled: false,
13111
+ } }));
13112
+ };
13113
+ const StatusCellPayoutSent = () => {
13114
+ return (h("sqm-rewards-table-status-cell", { statusText: "Payout Sent", reward: {
13115
+ ...cashReward$1,
13116
+ partnerFundsTransfer: {
13117
+ id: "transfer-123",
13118
+ status: "TRANSFERRED",
13119
+ dateScheduled: 1640995200000,
13120
+ dateTransferred: 1640995200000,
13121
+ dateCreated: 1640995200000,
13122
+ },
13123
+ }, taxConnection: taxConnection$1 }));
13124
+ };
13125
+ const StatusCellPayoutFailed = () => {
13126
+ return (h("sqm-rewards-table-status-cell", { statusText: "Payout Failed", reward: {
13127
+ ...cashReward$1,
13128
+ partnerFundsTransfer: {
13129
+ id: "transfer-failed",
13130
+ status: "OVERDUE",
13131
+ dateScheduled: 1640995200000,
13132
+ dateTransferred: null,
13133
+ dateCreated: 1640995200000,
13134
+ },
13135
+ } }));
13136
+ };
13137
+ const StatusCellPayoutProcessing = () => {
13138
+ return (h("sqm-rewards-table-status-cell", { statusText: "Payment Processing", reward: { ...cashReward$1, ...processingPFT } }));
13139
+ };
13140
+ const StatusCellPayoutCancelled = () => {
13141
+ return (h("sqm-rewards-table-status-cell", { statusText: "Payout Cancelled", reward: {
13142
+ ...cashReward$1,
13143
+ partnerFundsTransfer: {
13144
+ id: "transfer-reversed",
13145
+ status: "REVERSED",
13146
+ dateScheduled: 1640995200000,
13147
+ dateTransferred: null,
13148
+ dateCreated: 1640995200000,
13149
+ },
13150
+ } }));
13151
+ };
13333
13152
 
13334
13153
  const TaxAndCashRewardsTableCell = /*#__PURE__*/Object.freeze({
13335
13154
  __proto__: null,
13336
13155
  'default': TaxAndCashRewardsTableCell_stories,
13337
13156
  CashReward: CashReward$1,
13338
- StatusCellFraudDenied: StatusCellFraudDenied,
13339
- StatusCellFraudPendingReview: StatusCellFraudPendingReview,
13340
- StatusCellPayoutCancelled: StatusCellPayoutCancelled,
13341
- StatusCellPayoutFailed: StatusCellPayoutFailed,
13342
- StatusCellPartnerCreatedSetupStartedButIncomplete: StatusCellPartnerCreatedSetupStartedButIncomplete,
13343
- StatusCellPartnerNotCreatedSetupNotStarted: StatusCellPartnerNotCreatedSetupNotStarted,
13344
- StatusCellMissingPayoutConfiguration: StatusCellMissingPayoutConfiguration,
13345
- StatusCellPayoutProcessing: StatusCellPayoutProcessing,
13346
- StatusCellPayoutApproved: StatusCellPayoutApproved,
13347
- StatusCellRewardCancelled: StatusCellRewardCancelled,
13348
- StatusCellRewardExpired: StatusCellRewardExpired,
13349
- StatusCellPendingScheduled: StatusCellPendingScheduled$1,
13350
- StatusCellNoMatchingRule: StatusCellNoMatchingRule,
13351
- StatusCellPendingW9Required: StatusCellPendingW9Required,
13352
- StatusCellPendingTaxSubmission: StatusCellPendingTaxSubmission,
13353
- StatusCellPendingNewTaxForm: StatusCellPendingNewTaxForm,
13354
13157
  StatusCellPendingTaxReview: StatusCellPendingTaxReview,
13355
- StatusCellExistingTaxFormNoWithdrawalSettings: StatusCellExistingTaxFormNoWithdrawalSettings,
13356
- StatusCellConnectedNoTaxRequiredNoWithdrawalSettings: StatusCellConnectedNoTaxRequiredNoWithdrawalSettings,
13158
+ StatusCellPendingNewTaxForm: StatusCellPendingNewTaxForm,
13159
+ StatusCellPendingTaxSubmission: StatusCellPendingTaxSubmission,
13160
+ StatusCellPendingPartnerCreation: StatusCellPendingPartnerCreation,
13161
+ StatusCellPendingW9: StatusCellPendingW9,
13357
13162
  StatusCellPayoutSent: StatusCellPayoutSent,
13358
- StatusCellPendingW9: StatusCellPendingW9
13163
+ StatusCellPayoutFailed: StatusCellPayoutFailed,
13164
+ StatusCellPayoutProcessing: StatusCellPayoutProcessing,
13165
+ StatusCellPayoutCancelled: StatusCellPayoutCancelled
13359
13166
  });
13360
13167
 
13361
13168
  const TaxAndCashRewardsTable_stories = {
@@ -13414,7 +13221,7 @@ const r_pending_tax_review = [
13414
13221
  ];
13415
13222
  const r_pending_partner_creation = [
13416
13223
  h(CashReward$1, null),
13417
- h(StatusCellPartnerNotCreatedSetupNotStarted, null),
13224
+ h(StatusCellPendingPartnerCreation, null),
13418
13225
  h(SourceCellReferral, null),
13419
13226
  h(DateCell$2, null),
13420
13227
  ];
@@ -14244,21 +14051,145 @@ const CustomStyles$1 = () => {
14244
14051
  return h(CopyTextView, Object.assign({}, props));
14245
14052
  };
14246
14053
  const CustomStylesWithDemoHooks = () => {
14247
- const props = {
14248
- copyString: "https://noah.example.com",
14249
- open: false,
14250
- tooltiptext: "Copied!",
14251
- backgroundColor: "#1ed760",
14252
- borderRadius: "30px",
14253
- textColor: "red",
14254
- buttonType: "primary",
14255
- borderColor: "#121212",
14256
- };
14257
- return (h("sqm-share-link", { demoData: { ...props }, backgroundColor: "#1ed760" }));
14054
+ return (h("sqm-share-link", { demoData: {
14055
+ copyTextViewProps: {
14056
+ copyString: "https://noah.example.com",
14057
+ open: false,
14058
+ tooltiptext: "Copied!",
14059
+ backgroundColor: "#1ed760",
14060
+ borderRadius: "30px",
14061
+ textColor: "red",
14062
+ buttonType: "primary",
14063
+ borderColor: "#121212",
14064
+ },
14065
+ }, backgroundColor: "#1ed760" }));
14258
14066
  };
14259
14067
  const FullStack = () => {
14260
14068
  return h("sqm-share-link", null);
14261
14069
  };
14070
+ // Customize URL stories
14071
+ const noopFn = () => { };
14072
+ const defaultCustomizeProps = {
14073
+ copyTextViewProps: {
14074
+ copyString: "https://ssqt.co/abc123",
14075
+ open: false,
14076
+ tooltiptext: "Copied!",
14077
+ },
14078
+ allowCustomization: true,
14079
+ customizeLinkLabel: "Customize Link",
14080
+ saveLabelText: "Save",
14081
+ savingLabelText: "Saving...",
14082
+ cancelLabelText: "Cancel",
14083
+ editLabelText: "Edit your link",
14084
+ charactersRemainingText: "{count} characters remaining",
14085
+ validatingLabelText: "Validating...",
14086
+ isEditing: false,
14087
+ editValue: "",
14088
+ domainPrefix: "https://ssqt.co/",
14089
+ editsRemaining: 3,
14090
+ maxEdits: 5,
14091
+ limitReached: false,
14092
+ validationError: null,
14093
+ isValidating: false,
14094
+ isSaving: false,
14095
+ characterLimit: 15,
14096
+ minCharacters: 3,
14097
+ charactersRemaining: 15,
14098
+ editLimitText: "You can edit your link up to 5 times.",
14099
+ editLimitReachedText: "5 edit limit reached. To make more changes, please contact {supportLink}.",
14100
+ supportLinkText: "Support",
14101
+ customizeDisabled: false,
14102
+ customizeDisabledTooltip: "Link customization is not available.",
14103
+ minCharactersText: "Minimum 3 characters",
14104
+ onCustomizeClick: noopFn,
14105
+ onEditValueChange: noopFn,
14106
+ onSave: noopFn,
14107
+ onCancel: noopFn,
14108
+ };
14109
+ const CustomizeUrlDefault = () => {
14110
+ return h(ShareLinkView, Object.assign({}, defaultCustomizeProps));
14111
+ };
14112
+ const CustomizeUrlEditing = () => {
14113
+ return (h(ShareLinkView, Object.assign({}, {
14114
+ ...defaultCustomizeProps,
14115
+ isEditing: true,
14116
+ editValue: "nvoiwb18",
14117
+ charactersRemaining: 7,
14118
+ })));
14119
+ };
14120
+ const CustomizeUrlCustomized = () => {
14121
+ return (h(ShareLinkView, Object.assign({}, {
14122
+ ...defaultCustomizeProps,
14123
+ copyTextViewProps: {
14124
+ ...defaultCustomizeProps.copyTextViewProps,
14125
+ copyString: "https://ssqt.co/bobtesterson",
14126
+ },
14127
+ })));
14128
+ };
14129
+ const CustomizeUrlLimitReached = () => {
14130
+ return (h(ShareLinkView, Object.assign({}, {
14131
+ ...defaultCustomizeProps,
14132
+ copyTextViewProps: {
14133
+ ...defaultCustomizeProps.copyTextViewProps,
14134
+ copyString: "https://ssqt.co/bobtesterson",
14135
+ },
14136
+ editsRemaining: 0,
14137
+ limitReached: true,
14138
+ })));
14139
+ };
14140
+ const CustomizeUrlDisabled = () => {
14141
+ return (h(ShareLinkView, Object.assign({}, {
14142
+ ...defaultCustomizeProps,
14143
+ customizeDisabled: true,
14144
+ })));
14145
+ };
14146
+ const CustomizeUrlValidationError = () => {
14147
+ return (h(ShareLinkView, Object.assign({}, {
14148
+ ...defaultCustomizeProps,
14149
+ isEditing: true,
14150
+ editValue: "nvoiwb18",
14151
+ charactersRemaining: 7,
14152
+ validationError: {
14153
+ code: "EXISTING_CODE_CONFLICT",
14154
+ title: "This link is already taken",
14155
+ description: "Try adding numbers, a dash or underscore to create a unique link.",
14156
+ },
14157
+ })));
14158
+ };
14159
+ const CustomizeUrlInvalidCharacters = () => {
14160
+ return (h(ShareLinkView, Object.assign({}, {
14161
+ ...defaultCustomizeProps,
14162
+ isEditing: true,
14163
+ editValue: "nvoiwb18",
14164
+ charactersRemaining: 7,
14165
+ validationError: {
14166
+ code: "INVALID_CHARACTER",
14167
+ title: "Please use only letters, numbers, dashes and underscores",
14168
+ description: "Special characters can break the link when sharing.",
14169
+ },
14170
+ })));
14171
+ };
14172
+ const CustomizeUrlProfanity = () => {
14173
+ return (h(ShareLinkView, Object.assign({}, {
14174
+ ...defaultCustomizeProps,
14175
+ isEditing: true,
14176
+ editValue: "nvoiwb18",
14177
+ charactersRemaining: 7,
14178
+ validationError: {
14179
+ code: "BLOCKED_WORD",
14180
+ title: "Please try a different link",
14181
+ description: "This link contains a restricted word.",
14182
+ },
14183
+ })));
14184
+ };
14185
+ const CustomizeUrlSaving = () => {
14186
+ return (h(ShareLinkView, Object.assign({}, {
14187
+ ...defaultCustomizeProps,
14188
+ isEditing: true,
14189
+ editValue: "bobtesterson",
14190
+ isSaving: true,
14191
+ })));
14192
+ };
14262
14193
 
14263
14194
  const ShareLink = /*#__PURE__*/Object.freeze({
14264
14195
  __proto__: null,
@@ -14273,7 +14204,16 @@ const ShareLink = /*#__PURE__*/Object.freeze({
14273
14204
  CopyButtonBelow: CopyButtonBelow$3,
14274
14205
  CustomStyles: CustomStyles$1,
14275
14206
  CustomStylesWithDemoHooks: CustomStylesWithDemoHooks,
14276
- FullStack: FullStack
14207
+ FullStack: FullStack,
14208
+ CustomizeUrlDefault: CustomizeUrlDefault,
14209
+ CustomizeUrlEditing: CustomizeUrlEditing,
14210
+ CustomizeUrlCustomized: CustomizeUrlCustomized,
14211
+ CustomizeUrlLimitReached: CustomizeUrlLimitReached,
14212
+ CustomizeUrlDisabled: CustomizeUrlDisabled,
14213
+ CustomizeUrlValidationError: CustomizeUrlValidationError,
14214
+ CustomizeUrlInvalidCharacters: CustomizeUrlInvalidCharacters,
14215
+ CustomizeUrlProfanity: CustomizeUrlProfanity,
14216
+ CustomizeUrlSaving: CustomizeUrlSaving
14277
14217
  });
14278
14218
 
14279
14219
  const UseShareLink_stories = {
@@ -14311,11 +14251,11 @@ const BareBonesView$1 = createHookStory(() => {
14311
14251
  return (h("div", null,
14312
14252
  "Sharelink:",
14313
14253
  " ",
14314
- h("code", { style: { borderStyle: "solid", borderWidth: "1px", padding: "2px" } }, res.copyString)));
14254
+ h("code", { style: { borderStyle: "solid", borderWidth: "1px", padding: "2px" } }, res.copyTextViewProps.copyString)));
14315
14255
  });
14316
14256
  const RegularView$2 = createHookStory(() => {
14317
14257
  setupGraphQL$c();
14318
- return (h(CopyTextView, Object.assign({}, useShareLink({
14258
+ return (h(ShareLinkView, Object.assign({}, useShareLink({
14319
14259
  programId: "klip-referral-program",
14320
14260
  tooltiptext: "Copied to clipboard",
14321
14261
  tooltiplifespan: 1000,
@@ -14323,19 +14263,29 @@ const RegularView$2 = createHookStory(() => {
14323
14263
  });
14324
14264
  const FastTooltip = createHookStory(() => {
14325
14265
  setupGraphQL$c();
14326
- return (h(CopyTextView, Object.assign({}, useShareLink({
14266
+ return (h(ShareLinkView, Object.assign({}, useShareLink({
14327
14267
  programId: "klip-referral-program",
14328
- tooltiptext: "⠀⠀⠀⠀⠀⠀⠀⠀⠀HELLO THERE!!!\n⠀⠀⠀⡯⡯⡾⠝⠘⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢊⠘⡮⣣⠪⠢⡑⡌\n⠀⠀⠀⠟⠝⠈⠀⠀⠀⠡⠀⠠⢈⠠⢐⢠⢂⢔⣐⢄⡂⢔⠀⡁⢉⠸⢨⢑⠕⡌\n⠀⠀⡀⠁⠀⠀⠀⡀⢂⠡⠈⡔⣕⢮⣳⢯⣿⣻⣟⣯⣯⢷⣫⣆⡂⠀⠀⢐⠑⡌\n⢀⠠⠐⠈⠀⢀⢂⠢⡂⠕⡁⣝⢮⣳⢽⡽⣾⣻⣿⣯⡯⣟⣞⢾⢜⢆⠀⡀⠀⠪\n⣬⠂⠀⠀⢀⢂⢪⠨⢂⠥⣺⡪⣗⢗⣽⢽⡯⣿⣽⣷⢿⡽⡾⡽⣝⢎⠀⠀⠀⢡\n⣿⠀⠀⠀⢂⠢⢂⢥⢱⡹⣪⢞⡵⣻⡪⡯⡯⣟⡾⣿⣻⡽⣯⡻⣪⠧⠑⠀⠁⢐\n⣿⠀⠀⠀⠢⢑⠠⠑⠕⡝⡎⡗⡝⡎⣞⢽⡹⣕⢯⢻⠹⡹⢚⠝⡷⡽⡨⠀⠀⢔\n⣿⡯⠀⢈⠈⢄⠂⠂⠐⠀⠌⠠⢑⠱⡱⡱⡑⢔⠁⠀⡀⠐⠐⠐⡡⡹⣪⠀⠀⢘\n⣿⣽⠀⡀⡊⠀⠐⠨⠈⡁⠂⢈⠠⡱⡽⣷⡑⠁⠠⠑⠀⢉⢇⣤⢘⣪⢽⠀⢌⢎\n⣿⢾⠀⢌⠌⠀⡁⠢⠂⠐⡀⠀⢀⢳⢽⣽⡺⣨⢄⣑⢉⢃⢭⡲⣕⡭⣹⠠⢐⢗\n⣿⡗⠀⠢⠡⡱⡸⣔⢵⢱⢸⠈⠀⡪⣳⣳⢹⢜⡵⣱⢱⡱⣳⡹⣵⣻⢔⢅⢬⡷\n⣷⡇⡂⠡⡑⢕⢕⠕⡑⠡⢂⢊⢐⢕⡝⡮⡧⡳⣝⢴⡐⣁⠃⡫⡒⣕⢏⡮⣷⡟\n⣷⣻⣅⠑⢌⠢⠁⢐⠠⠑⡐⠐⠌⡪⠮⡫⠪⡪⡪⣺⢸⠰⠡⠠⠐⢱⠨⡪⡪⡰\n⣯⢷⣟⣇⡂⡂⡌⡀⠀⠁⡂⠅⠂⠀⡑⡄⢇⠇⢝⡨⡠⡁⢐⠠⢀⢪⡐⡜⡪⡊\n⣿⢽⡾⢹⡄⠕⡅⢇⠂⠑⣴⡬⣬⣬⣆⢮⣦⣷⣵⣷⡗⢃⢮⠱⡸⢰⢱⢸⢨⢌\n⣯⢯⣟⠸⣳⡅⠜⠔⡌⡐⠈⠻⠟⣿⢿⣿⣿⠿⡻⣃⠢⣱⡳⡱⡩⢢⠣⡃⠢⠁\n⡯⣟⣞⡇⡿⣽⡪⡘⡰⠨⢐⢀⠢⢢⢄⢤⣰⠼⡾⢕⢕⡵⣝⠎⢌⢪⠪⡘⡌⠀\n⡯⣳⠯⠚⢊⠡⡂⢂⠨⠊⠔⡑⠬⡸⣘⢬⢪⣪⡺⡼⣕⢯⢞⢕⢝⠎⢻⢼⣀⠀\n⠁⡂⠔⡁⡢⠣⢀⠢⠀⠅⠱⡐⡱⡘⡔⡕⡕⣲⡹⣎⡮⡏⡑⢜⢼⡱⢩⣗⣯⣟\n⢀⢂⢑⠀⡂⡃⠅⠊⢄⢑⠠⠑⢕⢕⢝⢮⢺⢕⢟⢮⢊⢢⢱⢄⠃⣇⣞⢞⣞⢾\n⢀⠢⡑⡀⢂⢊⠠⠁⡂⡐⠀⠅⡈⠪⠪⠪⠣⠫⠑⡁⢔⠕⣜⣜⢦⡰⡎⡯⡾⡽",
14268
+ tooltiptext: "Copied to clipboard",
14329
14269
  tooltiplifespan: 500,
14330
14270
  }))));
14331
14271
  });
14272
+ const CustomizeUrlEnabled = createHookStory(() => {
14273
+ setupGraphQL$c();
14274
+ return (h(ShareLinkView, Object.assign({}, useShareLink({
14275
+ programId: "klip-referral-program",
14276
+ tooltiptext: "Copied to clipboard",
14277
+ tooltiplifespan: 1000,
14278
+ allowCustomization: true,
14279
+ }))));
14280
+ });
14332
14281
 
14333
14282
  const UseShareLink = /*#__PURE__*/Object.freeze({
14334
14283
  __proto__: null,
14335
14284
  'default': UseShareLink_stories,
14336
14285
  BareBonesView: BareBonesView$1,
14337
14286
  RegularView: RegularView$2,
14338
- FastTooltip: FastTooltip
14287
+ FastTooltip: FastTooltip,
14288
+ CustomizeUrlEnabled: CustomizeUrlEnabled
14339
14289
  });
14340
14290
 
14341
14291
  const scenario$C = "@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";
@@ -18618,6 +18568,7 @@ const defaultText = {
18618
18568
  region: "Region",
18619
18569
  postalCode: "Postal Code",
18620
18570
  currency: "Currency",
18571
+ currencyHelpText: "Select your preferred currency for payouts",
18621
18572
  allowBankingCollection: "I agree to the {termsAndConditionsLink}",
18622
18573
  personalInformation: "Personal Information",
18623
18574
  continueButton: "Continue",
@@ -18889,215 +18840,57 @@ const UserInfoFormView = /*#__PURE__*/Object.freeze({
18889
18840
  DisabledForm: DisabledForm
18890
18841
  });
18891
18842
 
18892
- const PartnerInfoModal_stories = {
18893
- title: "Components/Partner Info Modal",
18894
- };
18895
- const demoCountries = [
18896
- { countryCode: "US", displayName: "United States" },
18897
- { countryCode: "CA", displayName: "Canada" },
18898
- { countryCode: "GB", displayName: "United Kingdom" },
18899
- { countryCode: "AU", displayName: "Australia" },
18900
- { countryCode: "DE", displayName: "Germany" },
18901
- { countryCode: "FR", displayName: "France" },
18902
- { countryCode: "JP", displayName: "Japan" },
18903
- ];
18904
- const demoCurrencies = [
18905
- { currencyCode: "USD", displayName: "US Dollar" },
18906
- { currencyCode: "CAD", displayName: "Canadian Dollar" },
18907
- { currencyCode: "GBP", displayName: "British Pound" },
18908
- { currencyCode: "EUR", displayName: "Euro" },
18909
- { currencyCode: "AUD", displayName: "Australian Dollar" },
18910
- ];
18911
- const noopCallbacks = {
18912
- onCountryChange: (e) => console.log("Country changed:", e),
18913
- onCurrencyChange: (e) => console.log("Currency changed:", e),
18914
- onCheckboxChange: (e) => console.log("Checkbox changed:", e),
18915
- setCountrySearch: (v) => console.log("Country search:", v),
18916
- setCurrencySearch: (v) => console.log("Currency search:", v),
18917
- onSubmit: () => console.log("Submit"),
18918
- onClose: () => console.log("Close"),
18919
- };
18920
- const defaultText$1 = {
18921
- modalHeader: "Let's get you ready for rewards",
18922
- modalHeaderExistingPartner: "We found an existing account",
18923
- descriptionNewPartner: "Confirm your country and currency now to get your future rewards faster.",
18924
- descriptionExistingPartner: "We noticed you are already an Impact.com partner, please confirm your information.",
18925
- supportDescriptionExistingPartner: "If this is a mistake, please contact Support or sign up for this referral program with a different email.",
18926
- supportLink: "Support",
18927
- countryLabel: "Country",
18928
- currencyLabel: "Currency",
18929
- submitButtonLabel: "Submit",
18930
- confirmButtonLabel: "Confirm",
18931
- searchCountryPlaceholder: "Search for a country",
18932
- searchCurrencyPlaceholder: "Search for a currency",
18933
- bankingCollectionText: "",
18934
- allowBankingCollection: "I have read the {termsAndConditionsLink} and allow impact.com to collect my tax and banking information",
18935
- termsAndConditionsLabel: "terms and conditions",
18936
- termsAndConditionsLink: "https://terms.advocate.impact.com/PayoutTermsAndConditions.html",
18937
- };
18938
- const defaultProps$y = {
18939
- states: {
18940
- open: true,
18941
- loading: false,
18942
- submitting: false,
18943
- isExistingPartner: false,
18944
- countryCode: null,
18945
- currency: null,
18946
- error: "",
18947
- success: false,
18948
- filteredCountries: demoCountries,
18949
- filteredCurrencies: demoCurrencies,
18950
- allowBankingCollection: false,
18951
- disabled: false,
18843
+ const scenario$G = "@owner:zach @author:zach\nFeature: User Attribute\n Displays a user's custom field value.\n\n Background: A user exists\n Given a user is logged in\n And the user has custom fields\n\n @motivating\n Scenario: A custom field value is displayed\n Given the component has prop \"value\" with value \"firstName\"\n And the user has a custom field \"firstName\" with value \"John\"\n When the component is rendered\n Then the text \"John\" is displayed\n\n @landmine\n Scenario: Nothing is rendered when the custom field does not exist\n Given the component has prop \"value\" with value \"nonExistentField\"\n And the user does not have a custom field \"nonExistentField\"\n Then component is not rendered\n And nothing is displayed\n\n @motivating\n Scenario: Nothing is rendered while user data is loading\n Given the component is loading user data\n When the component is rendered\n Then component is not rendered\n And nothing is displayed\n\n @motivating\n Scenario Outline: Optional styling props can be applied to customize the text appearance\n Given the component has prop <prop> with value <value>\n When the component is rendered\n Then the text is displayed with <cssProperty> set to <value>\n\n Examples:\n | prop | value | cssProperty |\n | fontSize | 24 | font-size |\n | color | #E91E63 | color |\n | fontWeight | 700 | font-weight |\n\n @minutia\n Scenario: Style props are optional and default to no custom styling\n Given the component has no style props set\n When the component is rendered\n Then the text is displayed with default browser styles\n";
18844
+
18845
+ const UserAttribute_stories = {
18846
+ title: "Components/User Attribute",
18847
+ parameters: {
18848
+ scenario: scenario$G,
18952
18849
  },
18953
- callbacks: noopCallbacks,
18954
- text: defaultText$1,
18955
- };
18956
- const NewPartnerEmpty = () => {
18957
- return h(PartnerInfoModalView, Object.assign({}, defaultProps$y));
18958
- };
18959
- const NewPartnerPrefilled = () => {
18960
- const props = {
18961
- ...defaultProps$y,
18962
- states: {
18963
- ...defaultProps$y.states,
18964
- countryCode: "US",
18965
- currency: "",
18966
- },
18967
- };
18968
- return h(PartnerInfoModalView, Object.assign({}, props));
18969
- };
18970
- const NewPartnerFullySelected = () => {
18971
- const props = {
18972
- ...defaultProps$y,
18973
- states: {
18974
- ...defaultProps$y.states,
18975
- countryCode: "US",
18976
- currency: "USD",
18977
- },
18978
- };
18979
- return h(PartnerInfoModalView, Object.assign({}, props));
18980
- };
18981
- const ExistingPartnerConfirm = () => {
18982
- const props = {
18983
- ...defaultProps$y,
18984
- states: {
18985
- ...defaultProps$y.states,
18986
- isExistingPartner: true,
18987
- countryCode: "CA",
18988
- currency: "CAD",
18989
- },
18990
- };
18991
- return h(PartnerInfoModalView, Object.assign({}, props));
18992
- };
18993
- const ExistingPartnerEmpty = () => {
18994
- const props = {
18995
- ...defaultProps$y,
18996
- states: {
18997
- ...defaultProps$y.states,
18998
- isExistingPartner: true,
18999
- countryCode: "",
19000
- currency: "",
19001
- },
19002
- };
19003
- return h(PartnerInfoModalView, Object.assign({}, props));
19004
- };
19005
- const Submitting = () => {
19006
- const props = {
19007
- ...defaultProps$y,
19008
- states: {
19009
- ...defaultProps$y.states,
19010
- countryCode: "GB",
19011
- currency: "GBP",
19012
- submitting: true,
19013
- },
19014
- };
19015
- return h(PartnerInfoModalView, Object.assign({}, props));
19016
18850
  };
19017
- const WithError$3 = () => {
19018
- const props = {
19019
- ...defaultProps$y,
19020
- states: {
19021
- ...defaultProps$y.states,
19022
- countryCode: "US",
19023
- currency: "USD",
19024
- error: "An error occurred while creating your partner account. Please try again.",
19025
- },
19026
- };
19027
- return h(PartnerInfoModalView, Object.assign({}, props));
19028
- };
19029
- const ValidationError$1 = () => {
19030
- const props = {
19031
- ...defaultProps$y,
19032
- states: {
19033
- ...defaultProps$y.states,
19034
- countryCode: "",
19035
- currency: "",
19036
- error: "Please select both a country and currency.",
19037
- },
19038
- };
19039
- return h(PartnerInfoModalView, Object.assign({}, props));
18851
+ const Default$x = () => {
18852
+ return (h("sqm-user-attribute", { demoData: {
18853
+ loading: false,
18854
+ value: "impact.com",
18855
+ } }));
19040
18856
  };
19041
- const Closed = () => {
19042
- const props = {
19043
- ...defaultProps$y,
19044
- states: {
19045
- ...defaultProps$y.states,
19046
- open: false,
19047
- },
19048
- };
19049
- return h(PartnerInfoModalView, Object.assign({}, props));
18857
+ /*
18858
+ Verifies that an sqm-user-attribute with no valid value
18859
+ collapses completely and does not create extra space
18860
+ (e.g. a double gap) in a flex layout.
18861
+ */
18862
+ const InvalidValue = () => {
18863
+ return (h("div", { style: { display: "flex", flexDirection: "column", gap: "16px" } },
18864
+ h("div", { style: { background: "#e0e0e0", padding: "8px" } }, "Above"),
18865
+ h("sqm-user-attribute", { demoData: {
18866
+ loading: false,
18867
+ value: null,
18868
+ } }),
18869
+ h("div", { style: { background: "#e0e0e0", padding: "8px" } }, "Below")));
19050
18870
  };
19051
- const SQMComponentExistingPartner = () => {
19052
- return (h("sqm-partner-info-modal", { "support-link": "Support", "support-description-existing-partner": "If this is a mistake, please contact {supportLink} or sign up for this referral program with a different email.", "allow-banking-collection": "I have read the {termsAndConditionsLink} and allow impact.com to collect my tax and banking information", "terms-and-conditions-label": "terms and conditions", "terms-and-conditions-link": "https://terms.advocate.impact.com/PayoutTermsAndConditions.html", demoData: {
19053
- states: { open: true, isExistingPartner: true },
18871
+ const Loading$h = () => {
18872
+ return (h("sqm-user-attribute", { demoData: {
18873
+ loading: true,
18874
+ value: "impact.com",
19054
18875
  } }));
19055
18876
  };
19056
- const SQMComponentNewPartner = () => {
19057
- return (h("sqm-partner-info-modal", { demoData: {
19058
- states: { open: true, isExistingPartner: false },
18877
+ const WithCustomStyles = () => {
18878
+ return (h("sqm-user-attribute", { demoData: {
18879
+ loading: false,
18880
+ value: "impact.com",
18881
+ fontSize: 24,
18882
+ color: "#4CAF50",
18883
+ fontWeight: 700,
19059
18884
  } }));
19060
18885
  };
19061
18886
 
19062
- const PartnerInfoModal = /*#__PURE__*/Object.freeze({
19063
- __proto__: null,
19064
- 'default': PartnerInfoModal_stories,
19065
- NewPartnerEmpty: NewPartnerEmpty,
19066
- NewPartnerPrefilled: NewPartnerPrefilled,
19067
- NewPartnerFullySelected: NewPartnerFullySelected,
19068
- ExistingPartnerConfirm: ExistingPartnerConfirm,
19069
- ExistingPartnerEmpty: ExistingPartnerEmpty,
19070
- Submitting: Submitting,
19071
- WithError: WithError$3,
19072
- ValidationError: ValidationError$1,
19073
- Closed: Closed,
19074
- SQMComponentExistingPartner: SQMComponentExistingPartner,
19075
- SQMComponentNewPartner: SQMComponentNewPartner
19076
- });
19077
-
19078
- const WidgetVerification_stories = {
19079
- title: "Components/Widget Verification",
19080
- };
19081
- const Step1Email = () => (h("sqm-widget-verification", { stateController: JSON.stringify({
19082
- "sqm-widget-verification": { showCode: false },
19083
- }) }));
19084
- const Step2Code = () => (h("sqm-widget-verification", { stateController: JSON.stringify({
19085
- "sqm-widget-verification": { showCode: true },
19086
- }) }));
19087
- const Step3PartnerModal = () => (h("sqm-widget-verification", { stateController: JSON.stringify({
19088
- "sqm-widget-verification": { showPartnerModal: true },
19089
- }) }));
19090
- const Loading$h = () => (h("sqm-widget-verification", { stateController: JSON.stringify({
19091
- "sqm-widget-verification": { loading: true },
19092
- }) }));
19093
-
19094
- const WidgetVerification = /*#__PURE__*/Object.freeze({
18887
+ const UserAttribute = /*#__PURE__*/Object.freeze({
19095
18888
  __proto__: null,
19096
- 'default': WidgetVerification_stories,
19097
- Step1Email: Step1Email,
19098
- Step2Code: Step2Code,
19099
- Step3PartnerModal: Step3PartnerModal,
19100
- Loading: Loading$h
18889
+ 'default': UserAttribute_stories,
18890
+ Default: Default$x,
18891
+ InvalidValue: InvalidValue,
18892
+ Loading: Loading$h,
18893
+ WithCustomStyles: WithCustomStyles
19101
18894
  });
19102
18895
 
19103
18896
  function deepFreeze(obj) {
@@ -21793,8 +21586,7 @@ const stories = [
21793
21586
  TaxAndCashRewardsTable,
21794
21587
  TaxAndCashReferralTableRewardsCell,
21795
21588
  TaxAndCashReferralTable$1,
21796
- PartnerInfoModal,
21797
- WidgetVerification,
21589
+ UserAttribute,
21798
21590
  ];
21799
21591
  const StencilStorybook = class {
21800
21592
  constructor(hostRef) {