@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
@@ -12,9 +12,9 @@ const JSS = require('./JSS-8503a151.js');
12
12
  require('./useReferralCodes-0f7948af.js');
13
13
  require('./mixins-4761d472.js');
14
14
  const copyTextView = require('./copy-text-view-bb2c0ea7.js');
15
- require('./sqm-text-span-view-8a32dd8c.js');
16
- const sqmPortalVerifyEmailView = require('./sqm-portal-verify-email-view-6258dcae.js');
17
- const sqmPortalRegistrationFormView = require('./sqm-portal-registration-form-view-fd48f1d3.js');
15
+ require('./sqm-text-span-view-b9e10f5d.js');
16
+ const sqmPortalVerifyEmailView = require('./sqm-portal-verify-email-view-717d0633.js');
17
+ const sqmPortalRegistrationFormView = require('./sqm-portal-registration-form-view-a45f7a52.js');
18
18
  const GenericTableView = require('./GenericTableView-be5648e4.js');
19
19
  require('./useChildElements-041127d7.js');
20
20
  const luxon = require('./luxon-c1ad356a.js');
@@ -27,19 +27,17 @@ const sqmLeaderboardRankView = require('./sqm-leaderboard-rank-view-67fd7934.js'
27
27
  const sqmLogoutCurrentUserView = require('./sqm-logout-current-user-view-f330d641.js');
28
28
  const sqmNavigationSidebarView = require('./sqm-navigation-sidebar-view-6616e3e0.js');
29
29
  const sqmNavigationSidebarItemView = require('./sqm-navigation-sidebar-item-view-49b152dd.js');
30
- const sqmPortalEmailVerificationView = require('./sqm-portal-email-verification-view-d51c2a06.js');
31
- const sqmPortalProfileView = require('./sqm-portal-profile-view-e6927959.js');
30
+ const sqmPortalEmailVerificationView = require('./sqm-portal-email-verification-view-abb773a7.js');
31
+ const sqmPortalProfileView = require('./sqm-portal-profile-view-3515e1e5.js');
32
32
  require('./utilities-fcdb9504.js');
33
- const sqmPortalResetPasswordView = require('./sqm-portal-reset-password-view-d90d77f9.js');
33
+ const sqmPortalResetPasswordView = require('./sqm-portal-reset-password-view-a767b044.js');
34
34
  require('./ErrorView-ee7b0f36.js');
35
35
  const sqmQrCodeView = require('./sqm-qr-code-view-1f2daa76.js');
36
- const ShadowViewAddon = require('./ShadowViewAddon-1c054d52.js');
37
- const sqmPortalContainerView = require('./sqm-portal-container-view-70a47420.js');
38
- const sqmUserInfoFormView = require('./sqm-user-info-form-view-4d56b339.js');
39
- const utils = require('./utils-15ce04e3.js');
36
+ const ShadowViewAddon = require('./ShadowViewAddon-3b477e58.js');
37
+ const sqmPortalContainerView = require('./sqm-portal-container-view-757f921b.js');
38
+ const sqmUserInfoFormView = require('./sqm-user-info-form-view-53306f6e.js');
39
+ const data = require('./data-8c8a08f6.js');
40
40
  const sqmLeadInputFieldView = require('./sqm-lead-input-field-view-0cd7ebdb.js');
41
- require('./data-c03e282a.js');
42
- const sqmPartnerInfoModalView = require('./sqm-partner-info-modal-view-97770d03.js');
43
41
 
44
42
  /**
45
43
  * lodash (Custom Build) <https://lodash.com/>
@@ -10706,6 +10704,7 @@ const props$1 = {
10706
10704
  iframeSrc: "https://example.com",
10707
10705
  iframeHeight: "100%",
10708
10706
  iframeWidth: "100%",
10707
+ codeParam: "rsCode",
10709
10708
  },
10710
10709
  },
10711
10710
  };
@@ -10729,7 +10728,7 @@ const column = "@author:noah\n@owner:noah\nFeature: Referral Table User Column\n
10729
10728
 
10730
10729
  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 |";
10731
10730
 
10732
- 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";
10731
+ 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";
10733
10732
 
10734
10733
  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";
10735
10734
 
@@ -10896,7 +10895,6 @@ const cashPayoutSentReward = {
10896
10895
  statuses: ["AVAILABLE"],
10897
10896
  globalRewardKey: "Key",
10898
10897
  rewardRedemptionTransactions: null,
10899
- rewardedCash: true,
10900
10898
  };
10901
10899
  const nullExpiresIn = {
10902
10900
  dateExpires: null,
@@ -11258,7 +11256,6 @@ const baseReward$1 = {
11258
11256
  },
11259
11257
  ],
11260
11258
  },
11261
- rewardedCash: false,
11262
11259
  };
11263
11260
  // Reward Status Cases
11264
11261
  const pendingReward$1 = {
@@ -11813,274 +11810,193 @@ const ReferralTable = /*#__PURE__*/Object.freeze({
11813
11810
  const TaxAndCashReferralTableRewardsCell_stories = {
11814
11811
  title: "Components/Tax And Cash Referral Table Rewards Cell",
11815
11812
  };
11816
- // Reusable timestamps (current date is May 2026)
11817
- const PAST = 1640995200000; // Jan 1, 2022
11818
- const FUTURE = 2779257600000; // ~2058
11813
+ function getDays$1() {
11814
+ return luxon.luxon.DateTime.now().toMillis() + 600000000;
11815
+ }
11816
+ function getMonths$1() {
11817
+ return luxon.luxon.DateTime.now().toMillis() + 10000000000;
11818
+ }
11819
11819
  const cashReward = {
11820
11820
  id: "1234",
11821
11821
  type: "CREDIT",
11822
11822
  value: 50,
11823
11823
  unit: "USD",
11824
11824
  name: "test",
11825
- dateScheduledFor: null,
11826
- dateExpires: null,
11827
- dateCancelled: null,
11828
- dateRedeemed: null,
11825
+ dateScheduledFor: getDays$1(),
11826
+ dateExpires: getMonths$1(),
11827
+ dateCancelled: 134400,
11828
+ dateRedeemed: 0,
11829
11829
  fuelTankCode: null,
11830
11830
  fuelTankType: null,
11831
11831
  currency: "USD",
11832
11832
  prettyValue: "$50.00",
11833
- statuses: [],
11833
+ statuses: ["AVAILABLE"],
11834
11834
  globalRewardKey: "Key",
11835
11835
  rewardRedemptionTransactions: null,
11836
11836
  partnerFundsTransfer: null,
11837
- rewardedCash: true,
11838
11837
  };
11839
- // ============================================================
11840
- // Reusable tax connections
11841
- // ============================================================
11842
- const fullySetupTaxConnection = {
11838
+ const taxConnection = {
11843
11839
  connected: true,
11844
11840
  taxHandlingEnabled: true,
11845
11841
  publisher: {
11846
11842
  requiredTaxDocumentType: "W9",
11847
- currentTaxDocument: {
11848
- status: "ACTIVE",
11849
- type: "W9",
11850
- dateCreated: PAST,
11851
- },
11852
11843
  withdrawalSettings: { paymentMethod: "BANK_TRANSFER" },
11853
11844
  payoutsAccount: null,
11854
- },
11855
- };
11856
- const connectedNoWithdrawalSettings = {
11857
- connected: true,
11858
- taxHandlingEnabled: true,
11859
- publisher: {
11860
- requiredTaxDocumentType: "W9",
11861
11845
  currentTaxDocument: {
11862
11846
  status: "ACTIVE",
11863
11847
  type: "W9",
11864
- dateCreated: PAST,
11848
+ dateCreated: 1627427794891,
11865
11849
  },
11866
- withdrawalSettings: null,
11867
- payoutsAccount: null,
11868
11850
  },
11869
11851
  };
11870
- const notConnectedTaxConnection = {
11871
- connected: false,
11872
- taxHandlingEnabled: true,
11873
- publisher: null,
11852
+ const defaultPFT = {
11853
+ id: "ID1234",
11854
+ status: null,
11855
+ dateCreated: null,
11856
+ dateScheduled: null,
11857
+ dateTransferred: null,
11858
+ };
11859
+ const defaultTaxDocument = {
11860
+ status: "NOT_VERIFIED",
11861
+ type: "W9",
11862
+ dateCreated: luxon.luxon.DateTime.now().toMillis() - 1000000,
11874
11863
  };
11875
11864
  const defaultProps$o = {
11876
11865
  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} }",
11877
- 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} }",
11866
+ 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} }",
11878
11867
  rewardReceivedText: "Reward received on",
11879
11868
  hideDetails: false,
11880
11869
  };
11881
- // ============================================================
11882
- // STATE PRECEDENCE LADDER one story per rule
11883
- // (See referral-table-rewards-column-new.feature § 2)
11884
- // ============================================================
11885
- // 1. Fraud check denied the referral state is DENIED
11886
- const RewardsCellFraudDenied = () => (index.h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11887
- {
11888
- ...cashReward,
11889
- referral: { fraudData: { moderationStatus: "DENIED" } },
11890
- },
11891
- ], taxConnection: fullySetupTaxConnection }, defaultProps$o)));
11892
- // 2. Fraud check is still pending review → state is PENDING_REVIEW
11893
- const RewardsCellFraudPendingReview = () => (index.h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11894
- {
11895
- ...cashReward,
11896
- referral: { fraudData: { moderationStatus: "PENDING" } },
11897
- },
11898
- ], taxConnection: fullySetupTaxConnection }, defaultProps$o)));
11899
- // 3a. Cash reward but the user has not connected an Impact partner → shows the partner-setup prompt
11900
- const RewardsCellPartnerNotCreatedSetupNotStarted = () => (index.h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [{ ...cashReward, statuses: ["AVAILABLE"] }], taxConnection: notConnectedTaxConnection }, defaultProps$o)));
11901
- // 3b. Cash reward, partner is connected but withdrawal settings are missing → shows the partner-setup prompt
11902
- const RewardsCellPartnerCreatedSetupStartedButIncomplete = () => (index.h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11903
- {
11904
- ...cashReward,
11905
- partnerFundsTransfer: {
11906
- id: "pft-not-yet-due",
11907
- status: "NOT_YET_DUE",
11908
- dateCreated: PAST,
11909
- dateScheduled: FUTURE,
11910
- dateTransferred: null,
11870
+ const CashReward = () => {
11871
+ return (index.h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [{ ...cashReward }], taxConnection: taxConnection }, defaultProps$o)));
11872
+ };
11873
+ const PayoutApproved = () => {
11874
+ return (index.h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11875
+ {
11876
+ ...cashReward,
11877
+ partnerFundsTransfer: {
11878
+ ...defaultPFT,
11879
+ status: "TRANSFERRED",
11880
+ dateScheduled: Date.now() - 600000000,
11881
+ },
11911
11882
  },
11912
- },
11913
- ], taxConnection: connectedNoWithdrawalSettings }, defaultProps$o)));
11914
- // 4. Partner funds transfer was reversed → state is PAYOUT_CANCELLED
11915
- const RewardsCellPayoutCancelled = () => (index.h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11916
- {
11917
- ...cashReward,
11918
- partnerFundsTransfer: {
11919
- id: "pft-reversed",
11920
- status: "REVERSED",
11921
- dateCreated: PAST,
11922
- dateScheduled: PAST,
11923
- dateTransferred: null,
11883
+ ], taxConnection: taxConnection }, defaultProps$o)));
11884
+ };
11885
+ const PayoutProcessing = () => {
11886
+ return (index.h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11887
+ {
11888
+ ...cashReward,
11889
+ partnerFundsTransfer: {
11890
+ ...defaultPFT,
11891
+ dateCreated: 1355612521321,
11892
+ dateScheduled: getDays$1(),
11893
+ },
11924
11894
  },
11925
- },
11926
- ], taxConnection: fullySetupTaxConnection }, defaultProps$o)));
11927
- // 5. Partner funds transfer is overdue → state is PAYOUT_FAILED
11928
- const RewardsCellPayoutFailed = () => (index.h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11929
- {
11930
- ...cashReward,
11931
- partnerFundsTransfer: {
11932
- id: "pft-overdue",
11933
- status: "OVERDUE",
11934
- dateCreated: PAST,
11935
- dateScheduled: PAST,
11936
- dateTransferred: null,
11895
+ ], taxConnection: taxConnection }, defaultProps$o)));
11896
+ };
11897
+ const PayoutFailed$1 = () => {
11898
+ return (index.h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11899
+ {
11900
+ ...cashReward,
11901
+ partnerFundsTransfer: {
11902
+ ...defaultPFT,
11903
+ status: "OVERDUE",
11904
+ dateScheduled: Date.now() - 100000,
11905
+ },
11937
11906
  },
11938
- },
11939
- ], taxConnection: fullySetupTaxConnection }, defaultProps$o)));
11940
- // 6. Partner funds transfer is scheduled for a future date → state is PROCESSING
11941
- const RewardsCellPayoutProcessing = () => (index.h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11942
- {
11943
- ...cashReward,
11944
- partnerFundsTransfer: {
11945
- id: "pft-processing",
11946
- status: null,
11947
- dateCreated: PAST,
11948
- dateScheduled: FUTURE,
11949
- dateTransferred: null,
11907
+ ], taxConnection: taxConnection }, defaultProps$o)));
11908
+ };
11909
+ const PayoutCancelled$1 = () => {
11910
+ return (index.h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11911
+ {
11912
+ ...cashReward,
11913
+ partnerFundsTransfer: {
11914
+ ...defaultPFT,
11915
+ status: "REVERSED",
11916
+ dateScheduled: Date.now() - 100000,
11917
+ },
11950
11918
  },
11951
- },
11952
- ], taxConnection: fullySetupTaxConnection }, defaultProps$o)));
11953
- // 7. Partner funds transfer has been transferred → state is PAYOUT_APPROVED
11954
- const RewardsCellPayoutApproved = () => (index.h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11955
- {
11956
- ...cashReward,
11957
- partnerFundsTransfer: {
11958
- id: "pft-transferred",
11959
- status: "TRANSFERRED",
11960
- dateCreated: PAST,
11961
- dateScheduled: PAST,
11962
- dateTransferred: PAST,
11919
+ ], taxConnection: taxConnection }, defaultProps$o)));
11920
+ };
11921
+ const PendingTaxReview$1 = () => {
11922
+ return (index.h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11923
+ {
11924
+ ...cashReward,
11925
+ statuses: ["PENDING"],
11926
+ pendingReasons: ["US_TAX"],
11963
11927
  },
11964
- },
11965
- ], taxConnection: fullySetupTaxConnection }, defaultProps$o)));
11966
- // 8. Reward is pending US_TAX but tax handling is disabled → state is PENDING (W-9 required)
11967
- const RewardsCellPendingW9Required = () => (index.h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11968
- {
11969
- ...cashReward,
11970
- statuses: ["PENDING"],
11971
- pendingReasons: ["US_TAX"],
11972
- },
11973
- ], taxConnection: { ...fullySetupTaxConnection, taxHandlingEnabled: false } }, defaultProps$o)));
11974
- // 9. Reward is pending US_TAX and the partner is not connected → shows the partner-setup prompt
11975
- const RewardsCellUsTaxPartnerNotConnected = () => (index.h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11976
- {
11977
- ...cashReward,
11978
- statuses: ["PENDING"],
11979
- pendingReasons: ["US_TAX"],
11980
- },
11981
- ], taxConnection: notConnectedTaxConnection }, defaultProps$o)));
11982
- // 10. Partner is connected but has not submitted any tax documents → shows the submit-tax-docs prompt
11983
- const RewardsCellPendingTaxSubmission = () => (index.h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11984
- {
11985
- ...cashReward,
11986
- statuses: ["PENDING"],
11987
- pendingReasons: ["US_TAX"],
11988
- },
11989
- ], taxConnection: {
11990
- ...fullySetupTaxConnection,
11991
- publisher: {
11992
- ...fullySetupTaxConnection.publisher,
11993
- currentTaxDocument: null,
11994
- },
11995
- } }, defaultProps$o)));
11996
- // 11. Partner's tax document is inactive (rejected) → shows the submit-a-new-form prompt
11997
- const RewardsCellPendingNewTaxForm = () => (index.h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11998
- {
11999
- ...cashReward,
12000
- statuses: ["PENDING"],
12001
- pendingReasons: ["US_TAX"],
12002
- },
12003
- ], taxConnection: {
12004
- ...fullySetupTaxConnection,
12005
- publisher: {
12006
- ...fullySetupTaxConnection.publisher,
12007
- currentTaxDocument: {
12008
- status: "INACTIVE",
12009
- type: "W9",
12010
- dateCreated: PAST,
11928
+ ], taxConnection: {
11929
+ ...taxConnection,
11930
+ publisher: {
11931
+ ...taxConnection.publisher,
11932
+ currentTaxDocument: {
11933
+ ...defaultTaxDocument,
11934
+ status: "NOT_VERIFIED",
11935
+ },
12011
11936
  },
12012
- },
12013
- } }, defaultProps$o)));
12014
- // 12. Partner's tax document is awaiting verification → shows the awaiting-review prompt
12015
- const RewardsCellPendingTaxReview = () => (index.h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
12016
- {
12017
- ...cashReward,
12018
- statuses: ["PENDING"],
12019
- pendingReasons: ["US_TAX"],
12020
- },
12021
- ], taxConnection: {
12022
- ...fullySetupTaxConnection,
12023
- publisher: {
12024
- ...fullySetupTaxConnection.publisher,
12025
- currentTaxDocument: {
12026
- status: "NOT_VERIFIED",
12027
- type: "W9",
12028
- dateCreated: PAST,
11937
+ } }, defaultProps$o)));
11938
+ };
11939
+ const PendingNewTaxForm$1 = () => {
11940
+ return (index.h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11941
+ {
11942
+ ...cashReward,
11943
+ statuses: ["PENDING"],
11944
+ pendingReasons: ["US_TAX"],
12029
11945
  },
12030
- },
12031
- } }, defaultProps$o)));
12032
- // 13. Partner has an active tax form but has not configured withdrawal settings → shows the partner-setup prompt
12033
- const RewardsCellExistingTaxFormNoWithdrawalSettings = () => (index.h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
12034
- {
12035
- ...cashReward,
12036
- statuses: ["PENDING"],
12037
- pendingReasons: ["US_TAX"],
12038
- },
12039
- ], taxConnection: connectedNoWithdrawalSettings }, defaultProps$o)));
12040
- // 14. Reward has MISSING_PAYOUT_CONFIGURATION pending reason → shows the partner-setup prompt
12041
- const RewardsCellMissingPayoutConfiguration = () => (index.h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
12042
- {
12043
- ...cashReward,
12044
- statuses: ["PENDING"],
12045
- pendingReasons: ["MISSING_PAYOUT_CONFIGURATION"],
12046
- },
12047
- ], taxConnection: connectedNoWithdrawalSettings }, defaultProps$o)));
12048
- // 18. Reward does not match any precedence rule → state is undefined (Not available)
12049
- const RewardsCellNoMatchingRule = () => (index.h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [{ ...cashReward, statuses: [] }], taxConnection: fullySetupTaxConnection }, defaultProps$o)));
12050
- // ============================================================
12051
- // Aliases kept for backwards compatibility with existing references
12052
- // ============================================================
12053
- const CashReward = RewardsCellPayoutApproved;
12054
- const PayoutApproved = RewardsCellPayoutApproved;
12055
- const PayoutProcessing = RewardsCellPayoutProcessing;
12056
- const PayoutFailed$1 = RewardsCellPayoutFailed;
12057
- const PayoutCancelled$1 = RewardsCellPayoutCancelled;
12058
- const PendingTaxReview$1 = RewardsCellPendingTaxReview;
12059
- const PendingNewTaxForm$1 = RewardsCellPendingNewTaxForm;
12060
- const PendingTaxSubmission$1 = RewardsCellPendingTaxSubmission;
12061
- const PartnerNotCreatedSetupNotStarted = RewardsCellPartnerNotCreatedSetupNotStarted;
12062
- const PartnerCreatedSetupStartedButIncomplete = RewardsCellPartnerCreatedSetupStartedButIncomplete;
12063
- const PendingW9 = RewardsCellPendingW9Required;
11946
+ ], taxConnection: {
11947
+ ...taxConnection,
11948
+ publisher: {
11949
+ ...taxConnection.publisher,
11950
+ currentTaxDocument: {
11951
+ ...defaultTaxDocument,
11952
+ status: "INACTIVE",
11953
+ },
11954
+ },
11955
+ } }, defaultProps$o)));
11956
+ };
11957
+ const PendingTaxSubmission$1 = () => {
11958
+ return (index.h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11959
+ {
11960
+ ...cashReward,
11961
+ statuses: ["PENDING"],
11962
+ pendingReasons: ["US_TAX"],
11963
+ },
11964
+ ], taxConnection: {
11965
+ ...taxConnection,
11966
+ publisher: {
11967
+ ...taxConnection.publisher,
11968
+ currentTaxDocument: null,
11969
+ },
11970
+ } }, defaultProps$o)));
11971
+ };
11972
+ const PendingPartnerCreation$1 = () => {
11973
+ return (index.h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11974
+ {
11975
+ ...cashReward,
11976
+ statuses: ["PENDING"],
11977
+ pendingReasons: ["MISSING_PAYOUT_CONFIGURATION"],
11978
+ },
11979
+ ], taxConnection: {
11980
+ ...taxConnection,
11981
+ connected: false,
11982
+ } }, defaultProps$o)));
11983
+ };
11984
+ const PendingW9 = () => {
11985
+ return (index.h("sqm-referral-table-rewards-cell", Object.assign({ rewards: [
11986
+ {
11987
+ ...cashReward,
11988
+ statuses: ["PENDING"],
11989
+ pendingReasons: ["US_TAX"],
11990
+ },
11991
+ ], taxConnection: {
11992
+ ...taxConnection,
11993
+ taxHandlingEnabled: false,
11994
+ } }, defaultProps$o)));
11995
+ };
12064
11996
 
12065
11997
  const TaxAndCashReferralTableRewardsCell = /*#__PURE__*/Object.freeze({
12066
11998
  __proto__: null,
12067
11999
  'default': TaxAndCashReferralTableRewardsCell_stories,
12068
- RewardsCellFraudDenied: RewardsCellFraudDenied,
12069
- RewardsCellFraudPendingReview: RewardsCellFraudPendingReview,
12070
- RewardsCellPartnerNotCreatedSetupNotStarted: RewardsCellPartnerNotCreatedSetupNotStarted,
12071
- RewardsCellPartnerCreatedSetupStartedButIncomplete: RewardsCellPartnerCreatedSetupStartedButIncomplete,
12072
- RewardsCellPayoutCancelled: RewardsCellPayoutCancelled,
12073
- RewardsCellPayoutFailed: RewardsCellPayoutFailed,
12074
- RewardsCellPayoutProcessing: RewardsCellPayoutProcessing,
12075
- RewardsCellPayoutApproved: RewardsCellPayoutApproved,
12076
- RewardsCellPendingW9Required: RewardsCellPendingW9Required,
12077
- RewardsCellUsTaxPartnerNotConnected: RewardsCellUsTaxPartnerNotConnected,
12078
- RewardsCellPendingTaxSubmission: RewardsCellPendingTaxSubmission,
12079
- RewardsCellPendingNewTaxForm: RewardsCellPendingNewTaxForm,
12080
- RewardsCellPendingTaxReview: RewardsCellPendingTaxReview,
12081
- RewardsCellExistingTaxFormNoWithdrawalSettings: RewardsCellExistingTaxFormNoWithdrawalSettings,
12082
- RewardsCellMissingPayoutConfiguration: RewardsCellMissingPayoutConfiguration,
12083
- RewardsCellNoMatchingRule: RewardsCellNoMatchingRule,
12084
12000
  CashReward: CashReward,
12085
12001
  PayoutApproved: PayoutApproved,
12086
12002
  PayoutProcessing: PayoutProcessing,
@@ -12089,8 +12005,7 @@ const TaxAndCashReferralTableRewardsCell = /*#__PURE__*/Object.freeze({
12089
12005
  PendingTaxReview: PendingTaxReview$1,
12090
12006
  PendingNewTaxForm: PendingNewTaxForm$1,
12091
12007
  PendingTaxSubmission: PendingTaxSubmission$1,
12092
- PartnerNotCreatedSetupNotStarted: PartnerNotCreatedSetupNotStarted,
12093
- PartnerCreatedSetupStartedButIncomplete: PartnerCreatedSetupStartedButIncomplete,
12008
+ PendingPartnerCreation: PendingPartnerCreation$1,
12094
12009
  PendingW9: PendingW9
12095
12010
  });
12096
12011
 
@@ -12167,7 +12082,7 @@ const taxAndCashTableProps = {
12167
12082
  index.h("sqm-referral-table-user-cell", { name: "Partner Creation User" }),
12168
12083
  index.h(Converted, null),
12169
12084
  index.h(DateCell$1, null),
12170
- index.h(PartnerNotCreatedSetupNotStarted, null),
12085
+ index.h(PendingPartnerCreation$1, null),
12171
12086
  ],
12172
12087
  [
12173
12088
  index.h("sqm-referral-table-user-cell", { name: "Missing W9 User" }),
@@ -12511,7 +12426,7 @@ const scenario2 = "@author:derek\n@owner:derek\nFeature: Reward Table reward Col
12511
12426
 
12512
12427
  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";
12513
12428
 
12514
- 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";
12429
+ 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. |";
12515
12430
 
12516
12431
  const scenario$x = scenario1 + scenario2 + scenario3 + scenario4;
12517
12432
  const RewardsTableCell_stories = {
@@ -13039,9 +12954,6 @@ const RewardsTable$1 = /*#__PURE__*/Object.freeze({
13039
12954
  const TaxAndCashRewardsTableCell_stories = {
13040
12955
  title: "Components/Tax And Cash Rewards Table Cell",
13041
12956
  };
13042
- // Reusable timestamps (current date is May 2026)
13043
- const PAST$1 = 1640995200000; // Jan 1, 2022
13044
- const FUTURE$1 = 2779257600000; // ~2058
13045
12957
  const cashReward$1 = {
13046
12958
  id: "68c34fd98a6cb4f5f8394084",
13047
12959
  type: "CREDIT",
@@ -13061,13 +12973,13 @@ const cashReward$1 = {
13061
12973
  name: "Cash",
13062
12974
  },
13063
12975
  name: null,
13064
- dateCreated: PAST$1,
13065
- dateScheduledFor: null,
13066
- dateGiven: PAST$1,
12976
+ dateCreated: 1757630425085,
12977
+ dateScheduledFor: 1757631025115,
12978
+ dateGiven: 1757630737115,
13067
12979
  dateExpires: null,
13068
12980
  dateCancelled: null,
13069
- dateRedeemed: null,
13070
- dateModified: PAST$1,
12981
+ dateRedeemed: 1757630737115,
12982
+ dateModified: 1757630737115,
13071
12983
  rewardSource: "MANUAL",
13072
12984
  fuelTankCode: null,
13073
12985
  fuelTankType: null,
@@ -13100,266 +13012,161 @@ const cashReward$1 = {
13100
13012
  },
13101
13013
  referral: null,
13102
13014
  description: null,
13103
- statuses: [],
13015
+ statuses: ["REDEEMED"],
13104
13016
  rewardRedemptionTransactions: {
13105
13017
  data: null,
13106
13018
  },
13107
13019
  exchangedRewardRedemptionTransaction: null,
13108
13020
  pendingReasons: [],
13109
- rewardedCash: true,
13110
13021
  };
13111
- // ============================================================
13112
- // Reusable tax connections
13113
- // ============================================================
13114
- const fullySetupTaxConnection$1 = {
13115
- connected: true,
13116
- taxHandlingEnabled: true,
13117
- connectionStatus: "COMPLETED",
13118
- publisher: {
13119
- requiredTaxDocumentType: "W9",
13120
- currentTaxDocument: {
13121
- status: "ACTIVE",
13122
- type: "W9",
13123
- dateCreated: PAST$1,
13124
- },
13125
- withdrawalSettings: { paymentMethod: "BANK_TRANSFER" },
13126
- payoutsAccount: null,
13022
+ const pending$1 = {
13023
+ statuses: ["PENDING"],
13024
+ };
13025
+ const processingPFT = {
13026
+ partnerFundsTransfer: {
13027
+ id: "123",
13028
+ status: null,
13029
+ dateCreated: 1355612521321,
13030
+ dateScheduled: 2779257600000,
13031
+ dateTransferred: null,
13127
13032
  },
13128
13033
  };
13129
- const connectedNoWithdrawalSettings$1 = {
13034
+ const taxConnection$1 = {
13130
13035
  connected: true,
13131
13036
  taxHandlingEnabled: true,
13132
- connectionStatus: "COMPLETED",
13133
13037
  publisher: {
13134
- requiredTaxDocumentType: "W9",
13038
+ requiredTaxDocumentType: "W8BEN",
13135
13039
  currentTaxDocument: {
13136
- status: "ACTIVE",
13137
- type: "W9",
13138
- dateCreated: PAST$1,
13040
+ status: "NOT_VERIFIED",
13041
+ type: "W8BEN",
13042
+ dateCreated: 321321487,
13043
+ },
13044
+ withdrawalSettings: {
13045
+ paymentMethod: "BANK_TRANSFER",
13139
13046
  },
13140
- withdrawalSettings: null,
13141
13047
  payoutsAccount: null,
13142
13048
  },
13143
13049
  };
13144
- const notConnectedTaxConnection$1 = {
13145
- connected: false,
13146
- taxHandlingEnabled: true,
13147
- connectionStatus: "NOT_STARTED",
13148
- publisher: null,
13149
- };
13150
- // ============================================================
13151
- // Reward Cell (kept from original)
13152
- // ============================================================
13153
- const CashReward$1 = () => (index.h("sqm-rewards-table-reward-cell", { reward: { ...cashReward$1, statuses: ["REDEEMED"], dateRedeemed: PAST$1 }, availableText: "{availableAmount} remaining" }));
13154
- // ============================================================
13155
- // STATUS PRECEDENCE LADDER — one story per rule
13156
- // (See sqm-rewards-table-status-column-new.feature § 2)
13157
- // ============================================================
13158
- // 1. Fraud check denied the referral → status is Denied
13159
- const StatusCellFraudDenied = () => (index.h("sqm-rewards-table-status-cell", { statusText: "Denied", reward: {
13160
- ...cashReward$1,
13161
- referral: { fraudData: { moderationStatus: "DENIED" } },
13162
- }, taxConnection: fullySetupTaxConnection$1 }));
13163
- // 2. Fraud check is still pending review → status is Pending Review
13164
- const StatusCellFraudPendingReview = () => (index.h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: {
13165
- ...cashReward$1,
13166
- referral: { fraudData: { moderationStatus: "PENDING" } },
13167
- }, taxConnection: fullySetupTaxConnection$1 }));
13168
- // 3. Partner funds transfer was reversed → status is Payout Cancelled
13169
- const StatusCellPayoutCancelled = () => (index.h("sqm-rewards-table-status-cell", { statusText: "Payout Cancelled", reward: {
13170
- ...cashReward$1,
13171
- partnerFundsTransfer: {
13172
- id: "pft-reversed",
13173
- status: "REVERSED",
13174
- dateCreated: PAST$1,
13175
- dateScheduled: PAST$1,
13176
- dateTransferred: null,
13177
- },
13178
- }, taxConnection: fullySetupTaxConnection$1 }));
13179
- // 4. Partner funds transfer is overdue → status is Payout Failed
13180
- const StatusCellPayoutFailed = () => (index.h("sqm-rewards-table-status-cell", { statusText: "Payout Failed", reward: {
13181
- ...cashReward$1,
13182
- partnerFundsTransfer: {
13183
- id: "pft-overdue",
13184
- status: "OVERDUE",
13185
- dateCreated: PAST$1,
13186
- dateScheduled: PAST$1,
13187
- dateTransferred: null,
13188
- },
13189
- }, taxConnection: fullySetupTaxConnection$1 }));
13190
- // 5. Connected partner has not finished withdrawal settings setup → status is Pending
13191
- const StatusCellPartnerCreatedSetupStartedButIncomplete = () => (index.h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: {
13192
- ...cashReward$1,
13193
- partnerFundsTransfer: {
13194
- id: "pft-not-yet-due",
13195
- status: "NOT_YET_DUE",
13196
- dateCreated: PAST$1,
13197
- dateScheduled: FUTURE$1,
13198
- dateTransferred: null,
13199
- },
13200
- }, taxConnection: connectedNoWithdrawalSettings$1 }));
13201
- // Reward is pending US_TAX and the partner has not been created yet → shows the partner-setup prompt
13202
- const StatusCellPartnerNotCreatedSetupNotStarted = () => (index.h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: {
13203
- ...cashReward$1,
13204
- statuses: ["PENDING"],
13205
- pendingReasons: ["US_TAX"],
13206
- }, taxConnection: notConnectedTaxConnection$1 }));
13207
- // 6. Reward has MISSING_PAYOUT_CONFIGURATION pending reason and no withdrawal settings → status is Pending
13208
- const StatusCellMissingPayoutConfiguration = () => (index.h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: {
13209
- ...cashReward$1,
13210
- statuses: ["PENDING"],
13211
- pendingReasons: ["MISSING_PAYOUT_CONFIGURATION"],
13212
- }, taxConnection: connectedNoWithdrawalSettings$1 }));
13213
- // 7. Partner funds transfer is scheduled for a future date → status is Processing
13214
- const StatusCellPayoutProcessing = () => (index.h("sqm-rewards-table-status-cell", { statusText: "Processing", reward: {
13215
- ...cashReward$1,
13216
- partnerFundsTransfer: {
13217
- id: "pft-processing",
13218
- status: null,
13219
- dateCreated: PAST$1,
13220
- dateScheduled: FUTURE$1,
13221
- dateTransferred: null,
13222
- },
13223
- }, taxConnection: fullySetupTaxConnection$1 }));
13224
- // 8. Partner funds transfer has been transferred → status is Payout Approved
13225
- const StatusCellPayoutApproved = () => (index.h("sqm-rewards-table-status-cell", { statusText: "Payout Approved", reward: {
13226
- ...cashReward$1,
13227
- partnerFundsTransfer: {
13228
- id: "pft-transferred",
13229
- status: "TRANSFERRED",
13230
- dateCreated: PAST$1,
13231
- dateScheduled: PAST$1,
13232
- dateTransferred: PAST$1,
13233
- },
13234
- }, taxConnection: fullySetupTaxConnection$1 }));
13235
- // 9. Reward has a cancellation date set → status is Cancelled
13236
- const StatusCellRewardCancelled = () => (index.h("sqm-rewards-table-status-cell", { statusText: "Cancelled", reward: {
13237
- ...cashReward$1,
13238
- statuses: ["CANCELLED"],
13239
- dateCancelled: PAST$1,
13240
- }, taxConnection: fullySetupTaxConnection$1 }));
13241
- // 10. Reward statuses include EXPIRED → status is Expired
13242
- const StatusCellRewardExpired = () => (index.h("sqm-rewards-table-status-cell", { statusText: "Expired", reward: {
13243
- ...cashReward$1,
13244
- statuses: ["EXPIRED"],
13245
- dateExpires: PAST$1,
13246
- }, taxConnection: fullySetupTaxConnection$1 }));
13247
- // 11. Reward is pending and scheduled for a future date → status is Pending with the scheduled date shown
13248
- const StatusCellPendingScheduled$1 = () => (index.h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: {
13249
- ...cashReward$1,
13250
- statuses: ["PENDING"],
13251
- pendingReasons: ["SCHEDULED"],
13252
- dateScheduledFor: FUTURE$1,
13253
- }, taxConnection: fullySetupTaxConnection$1 }));
13254
- // 12. Reward does not match any precedence rule → no badge text, no description
13255
- const StatusCellNoMatchingRule = () => (index.h("sqm-rewards-table-status-cell", { statusText: "", reward: {
13256
- ...cashReward$1,
13257
- statuses: [],
13258
- }, taxConnection: fullySetupTaxConnection$1 }));
13259
- // ============================================================
13260
- // US_TAX getTaxPendingReasons branches (Pending Description Resolution § 5)
13261
- // ============================================================
13262
- // Reward is pending US_TAX but tax handling is disabled → shows "W-9 required"
13263
- const StatusCellPendingW9Required = () => (index.h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: {
13264
- ...cashReward$1,
13265
- statuses: ["PENDING"],
13266
- pendingReasons: ["US_TAX"],
13267
- }, taxConnection: { ...fullySetupTaxConnection$1, taxHandlingEnabled: false } }));
13268
- // Partner is connected but has not submitted any tax documents → shows the submit-tax-docs prompt
13269
- const StatusCellPendingTaxSubmission = () => (index.h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: {
13270
- ...cashReward$1,
13271
- statuses: ["PENDING"],
13272
- pendingReasons: ["US_TAX"],
13273
- }, taxConnection: {
13274
- ...fullySetupTaxConnection$1,
13275
- publisher: {
13276
- ...fullySetupTaxConnection$1.publisher,
13277
- currentTaxDocument: null,
13278
- },
13279
- } }));
13280
- // Partner's tax document is inactive (rejected) → shows the submit-a-new-form prompt
13281
- const StatusCellPendingNewTaxForm = () => (index.h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: {
13282
- ...cashReward$1,
13283
- statuses: ["PENDING"],
13284
- pendingReasons: ["US_TAX"],
13285
- }, taxConnection: {
13286
- ...fullySetupTaxConnection$1,
13287
- publisher: {
13288
- ...fullySetupTaxConnection$1.publisher,
13289
- currentTaxDocument: {
13290
- status: "INACTIVE",
13291
- type: "W9",
13292
- dateCreated: PAST$1,
13050
+ const CashReward$1 = () => {
13051
+ return (index.h("sqm-rewards-table-reward-cell", { reward: { ...cashReward$1 }, availableText: "{availableAmount} remaining" }));
13052
+ };
13053
+ const StatusCellPendingTaxReview = () => {
13054
+ return (index.h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: { ...cashReward$1, ...pending$1, pendingReasons: ["US_TAX"] }, taxConnection: {
13055
+ ...taxConnection$1,
13056
+ publisher: {
13057
+ requiredTaxDocumentType: "W8BEN",
13058
+ currentTaxDocument: {
13059
+ status: "",
13060
+ },
13061
+ ...taxConnection$1.publisher,
13293
13062
  },
13294
- },
13295
- } }));
13296
- // Partner's tax document is awaiting verification → shows the awaiting-review prompt
13297
- const StatusCellPendingTaxReview = () => (index.h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: {
13298
- ...cashReward$1,
13299
- statuses: ["PENDING"],
13300
- pendingReasons: ["US_TAX"],
13301
- }, taxConnection: {
13302
- ...fullySetupTaxConnection$1,
13303
- publisher: {
13304
- ...fullySetupTaxConnection$1.publisher,
13305
- currentTaxDocument: {
13306
- status: "NOT_VERIFIED",
13307
- type: "W9",
13308
- dateCreated: PAST$1,
13063
+ } }));
13064
+ };
13065
+ const StatusCellPendingNewTaxForm = () => {
13066
+ return (index.h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: {
13067
+ ...cashReward$1,
13068
+ statuses: ["PENDING"],
13069
+ pendingReasons: ["US_TAX"],
13070
+ }, taxConnection: {
13071
+ connected: true,
13072
+ taxHandlingEnabled: true,
13073
+ publisher: {
13074
+ requiredTaxDocumentType: "W8BEN",
13075
+ withdrawalSettings: {
13076
+ paymentMethod: "BANK_TRANSFER",
13077
+ },
13078
+ payoutsAccount: null,
13079
+ currentTaxDocument: {
13080
+ status: "INACTIVE",
13081
+ type: "W8BEN",
13082
+ dateCreated: 321321487,
13083
+ },
13309
13084
  },
13310
- },
13311
- } }));
13312
- // Partner has an active tax form but has not configured withdrawal settings → shows the partner-setup prompt
13313
- const StatusCellExistingTaxFormNoWithdrawalSettings = () => (index.h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: {
13314
- ...cashReward$1,
13315
- statuses: ["PENDING"],
13316
- pendingReasons: ["US_TAX"],
13317
- }, taxConnection: connectedNoWithdrawalSettings$1 }));
13318
- // Partner is connected, no tax form is required, but withdrawal settings are not submitted → shows the partner-setup prompt
13319
- const StatusCellConnectedNoTaxRequiredNoWithdrawalSettings = () => (index.h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: {
13320
- ...cashReward$1,
13321
- statuses: ["PENDING"],
13322
- pendingReasons: [],
13323
- }, taxConnection: {
13324
- connected: true,
13325
- taxHandlingEnabled: true,
13326
- connectionStatus: "COMPLETED",
13327
- publisher: {
13328
- requiredTaxDocumentType: null,
13329
- currentTaxDocument: null,
13330
- withdrawalSettings: null,
13331
- payoutsAccount: null,
13332
- },
13333
- } }));
13334
- // Aliases kept for the table-level stories file
13335
- const StatusCellPayoutSent = StatusCellPayoutApproved;
13336
- const StatusCellPendingW9 = StatusCellPendingW9Required;
13085
+ } }));
13086
+ };
13087
+ const StatusCellPendingTaxSubmission = () => {
13088
+ return (index.h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: { ...cashReward$1, ...pending$1, pendingReasons: ["US_TAX"] }, taxConnection: {
13089
+ ...taxConnection$1,
13090
+ publisher: {
13091
+ ...taxConnection$1.publisher,
13092
+ requiredTaxDocumentType: "W8BEN",
13093
+ currentTaxDocument: null,
13094
+ },
13095
+ } }));
13096
+ };
13097
+ const StatusCellPendingPartnerCreation = () => {
13098
+ return (index.h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: {
13099
+ ...cashReward$1,
13100
+ ...pending$1,
13101
+ pendingReasons: ["US_TAX"],
13102
+ }, taxConnection: {
13103
+ ...taxConnection$1,
13104
+ connected: false,
13105
+ } }));
13106
+ };
13107
+ const StatusCellPendingW9 = () => {
13108
+ return (index.h("sqm-rewards-table-status-cell", { statusText: "Pending", reward: {
13109
+ ...cashReward$1,
13110
+ ...pending$1,
13111
+ pendingReasons: ["US_TAX"],
13112
+ }, taxConnection: {
13113
+ ...taxConnection$1,
13114
+ taxHandlingEnabled: false,
13115
+ } }));
13116
+ };
13117
+ const StatusCellPayoutSent = () => {
13118
+ return (index.h("sqm-rewards-table-status-cell", { statusText: "Payout Sent", reward: {
13119
+ ...cashReward$1,
13120
+ partnerFundsTransfer: {
13121
+ id: "transfer-123",
13122
+ status: "TRANSFERRED",
13123
+ dateScheduled: 1640995200000,
13124
+ dateTransferred: 1640995200000,
13125
+ dateCreated: 1640995200000,
13126
+ },
13127
+ }, taxConnection: taxConnection$1 }));
13128
+ };
13129
+ const StatusCellPayoutFailed = () => {
13130
+ return (index.h("sqm-rewards-table-status-cell", { statusText: "Payout Failed", reward: {
13131
+ ...cashReward$1,
13132
+ partnerFundsTransfer: {
13133
+ id: "transfer-failed",
13134
+ status: "OVERDUE",
13135
+ dateScheduled: 1640995200000,
13136
+ dateTransferred: null,
13137
+ dateCreated: 1640995200000,
13138
+ },
13139
+ } }));
13140
+ };
13141
+ const StatusCellPayoutProcessing = () => {
13142
+ return (index.h("sqm-rewards-table-status-cell", { statusText: "Payment Processing", reward: { ...cashReward$1, ...processingPFT } }));
13143
+ };
13144
+ const StatusCellPayoutCancelled = () => {
13145
+ return (index.h("sqm-rewards-table-status-cell", { statusText: "Payout Cancelled", reward: {
13146
+ ...cashReward$1,
13147
+ partnerFundsTransfer: {
13148
+ id: "transfer-reversed",
13149
+ status: "REVERSED",
13150
+ dateScheduled: 1640995200000,
13151
+ dateTransferred: null,
13152
+ dateCreated: 1640995200000,
13153
+ },
13154
+ } }));
13155
+ };
13337
13156
 
13338
13157
  const TaxAndCashRewardsTableCell = /*#__PURE__*/Object.freeze({
13339
13158
  __proto__: null,
13340
13159
  'default': TaxAndCashRewardsTableCell_stories,
13341
13160
  CashReward: CashReward$1,
13342
- StatusCellFraudDenied: StatusCellFraudDenied,
13343
- StatusCellFraudPendingReview: StatusCellFraudPendingReview,
13344
- StatusCellPayoutCancelled: StatusCellPayoutCancelled,
13345
- StatusCellPayoutFailed: StatusCellPayoutFailed,
13346
- StatusCellPartnerCreatedSetupStartedButIncomplete: StatusCellPartnerCreatedSetupStartedButIncomplete,
13347
- StatusCellPartnerNotCreatedSetupNotStarted: StatusCellPartnerNotCreatedSetupNotStarted,
13348
- StatusCellMissingPayoutConfiguration: StatusCellMissingPayoutConfiguration,
13349
- StatusCellPayoutProcessing: StatusCellPayoutProcessing,
13350
- StatusCellPayoutApproved: StatusCellPayoutApproved,
13351
- StatusCellRewardCancelled: StatusCellRewardCancelled,
13352
- StatusCellRewardExpired: StatusCellRewardExpired,
13353
- StatusCellPendingScheduled: StatusCellPendingScheduled$1,
13354
- StatusCellNoMatchingRule: StatusCellNoMatchingRule,
13355
- StatusCellPendingW9Required: StatusCellPendingW9Required,
13356
- StatusCellPendingTaxSubmission: StatusCellPendingTaxSubmission,
13357
- StatusCellPendingNewTaxForm: StatusCellPendingNewTaxForm,
13358
13161
  StatusCellPendingTaxReview: StatusCellPendingTaxReview,
13359
- StatusCellExistingTaxFormNoWithdrawalSettings: StatusCellExistingTaxFormNoWithdrawalSettings,
13360
- StatusCellConnectedNoTaxRequiredNoWithdrawalSettings: StatusCellConnectedNoTaxRequiredNoWithdrawalSettings,
13162
+ StatusCellPendingNewTaxForm: StatusCellPendingNewTaxForm,
13163
+ StatusCellPendingTaxSubmission: StatusCellPendingTaxSubmission,
13164
+ StatusCellPendingPartnerCreation: StatusCellPendingPartnerCreation,
13165
+ StatusCellPendingW9: StatusCellPendingW9,
13361
13166
  StatusCellPayoutSent: StatusCellPayoutSent,
13362
- StatusCellPendingW9: StatusCellPendingW9
13167
+ StatusCellPayoutFailed: StatusCellPayoutFailed,
13168
+ StatusCellPayoutProcessing: StatusCellPayoutProcessing,
13169
+ StatusCellPayoutCancelled: StatusCellPayoutCancelled
13363
13170
  });
13364
13171
 
13365
13172
  const TaxAndCashRewardsTable_stories = {
@@ -13418,7 +13225,7 @@ const r_pending_tax_review = [
13418
13225
  ];
13419
13226
  const r_pending_partner_creation = [
13420
13227
  index.h(CashReward$1, null),
13421
- index.h(StatusCellPartnerNotCreatedSetupNotStarted, null),
13228
+ index.h(StatusCellPendingPartnerCreation, null),
13422
13229
  index.h(SourceCellReferral, null),
13423
13230
  index.h(DateCell$2, null),
13424
13231
  ];
@@ -14248,21 +14055,145 @@ const CustomStyles$1 = () => {
14248
14055
  return index.h(copyTextView.CopyTextView, Object.assign({}, props));
14249
14056
  };
14250
14057
  const CustomStylesWithDemoHooks = () => {
14251
- const props = {
14252
- copyString: "https://noah.example.com",
14253
- open: false,
14254
- tooltiptext: "Copied!",
14255
- backgroundColor: "#1ed760",
14256
- borderRadius: "30px",
14257
- textColor: "red",
14258
- buttonType: "primary",
14259
- borderColor: "#121212",
14260
- };
14261
- return (index.h("sqm-share-link", { demoData: { ...props }, backgroundColor: "#1ed760" }));
14058
+ return (index.h("sqm-share-link", { demoData: {
14059
+ copyTextViewProps: {
14060
+ copyString: "https://noah.example.com",
14061
+ open: false,
14062
+ tooltiptext: "Copied!",
14063
+ backgroundColor: "#1ed760",
14064
+ borderRadius: "30px",
14065
+ textColor: "red",
14066
+ buttonType: "primary",
14067
+ borderColor: "#121212",
14068
+ },
14069
+ }, backgroundColor: "#1ed760" }));
14262
14070
  };
14263
14071
  const FullStack = () => {
14264
14072
  return index.h("sqm-share-link", null);
14265
14073
  };
14074
+ // Customize URL stories
14075
+ const noopFn = () => { };
14076
+ const defaultCustomizeProps = {
14077
+ copyTextViewProps: {
14078
+ copyString: "https://ssqt.co/abc123",
14079
+ open: false,
14080
+ tooltiptext: "Copied!",
14081
+ },
14082
+ allowCustomization: true,
14083
+ customizeLinkLabel: "Customize Link",
14084
+ saveLabelText: "Save",
14085
+ savingLabelText: "Saving...",
14086
+ cancelLabelText: "Cancel",
14087
+ editLabelText: "Edit your link",
14088
+ charactersRemainingText: "{count} characters remaining",
14089
+ validatingLabelText: "Validating...",
14090
+ isEditing: false,
14091
+ editValue: "",
14092
+ domainPrefix: "https://ssqt.co/",
14093
+ editsRemaining: 3,
14094
+ maxEdits: 5,
14095
+ limitReached: false,
14096
+ validationError: null,
14097
+ isValidating: false,
14098
+ isSaving: false,
14099
+ characterLimit: 15,
14100
+ minCharacters: 3,
14101
+ charactersRemaining: 15,
14102
+ editLimitText: "You can edit your link up to 5 times.",
14103
+ editLimitReachedText: "5 edit limit reached. To make more changes, please contact {supportLink}.",
14104
+ supportLinkText: "Support",
14105
+ customizeDisabled: false,
14106
+ customizeDisabledTooltip: "Link customization is not available.",
14107
+ minCharactersText: "Minimum 3 characters",
14108
+ onCustomizeClick: noopFn,
14109
+ onEditValueChange: noopFn,
14110
+ onSave: noopFn,
14111
+ onCancel: noopFn,
14112
+ };
14113
+ const CustomizeUrlDefault = () => {
14114
+ return index.h(ShadowViewAddon.ShareLinkView, Object.assign({}, defaultCustomizeProps));
14115
+ };
14116
+ const CustomizeUrlEditing = () => {
14117
+ return (index.h(ShadowViewAddon.ShareLinkView, Object.assign({}, {
14118
+ ...defaultCustomizeProps,
14119
+ isEditing: true,
14120
+ editValue: "nvoiwb18",
14121
+ charactersRemaining: 7,
14122
+ })));
14123
+ };
14124
+ const CustomizeUrlCustomized = () => {
14125
+ return (index.h(ShadowViewAddon.ShareLinkView, Object.assign({}, {
14126
+ ...defaultCustomizeProps,
14127
+ copyTextViewProps: {
14128
+ ...defaultCustomizeProps.copyTextViewProps,
14129
+ copyString: "https://ssqt.co/bobtesterson",
14130
+ },
14131
+ })));
14132
+ };
14133
+ const CustomizeUrlLimitReached = () => {
14134
+ return (index.h(ShadowViewAddon.ShareLinkView, Object.assign({}, {
14135
+ ...defaultCustomizeProps,
14136
+ copyTextViewProps: {
14137
+ ...defaultCustomizeProps.copyTextViewProps,
14138
+ copyString: "https://ssqt.co/bobtesterson",
14139
+ },
14140
+ editsRemaining: 0,
14141
+ limitReached: true,
14142
+ })));
14143
+ };
14144
+ const CustomizeUrlDisabled = () => {
14145
+ return (index.h(ShadowViewAddon.ShareLinkView, Object.assign({}, {
14146
+ ...defaultCustomizeProps,
14147
+ customizeDisabled: true,
14148
+ })));
14149
+ };
14150
+ const CustomizeUrlValidationError = () => {
14151
+ return (index.h(ShadowViewAddon.ShareLinkView, Object.assign({}, {
14152
+ ...defaultCustomizeProps,
14153
+ isEditing: true,
14154
+ editValue: "nvoiwb18",
14155
+ charactersRemaining: 7,
14156
+ validationError: {
14157
+ code: "EXISTING_CODE_CONFLICT",
14158
+ title: "This link is already taken",
14159
+ description: "Try adding numbers, a dash or underscore to create a unique link.",
14160
+ },
14161
+ })));
14162
+ };
14163
+ const CustomizeUrlInvalidCharacters = () => {
14164
+ return (index.h(ShadowViewAddon.ShareLinkView, Object.assign({}, {
14165
+ ...defaultCustomizeProps,
14166
+ isEditing: true,
14167
+ editValue: "nvoiwb18",
14168
+ charactersRemaining: 7,
14169
+ validationError: {
14170
+ code: "INVALID_CHARACTER",
14171
+ title: "Please use only letters, numbers, dashes and underscores",
14172
+ description: "Special characters can break the link when sharing.",
14173
+ },
14174
+ })));
14175
+ };
14176
+ const CustomizeUrlProfanity = () => {
14177
+ return (index.h(ShadowViewAddon.ShareLinkView, Object.assign({}, {
14178
+ ...defaultCustomizeProps,
14179
+ isEditing: true,
14180
+ editValue: "nvoiwb18",
14181
+ charactersRemaining: 7,
14182
+ validationError: {
14183
+ code: "BLOCKED_WORD",
14184
+ title: "Please try a different link",
14185
+ description: "This link contains a restricted word.",
14186
+ },
14187
+ })));
14188
+ };
14189
+ const CustomizeUrlSaving = () => {
14190
+ return (index.h(ShadowViewAddon.ShareLinkView, Object.assign({}, {
14191
+ ...defaultCustomizeProps,
14192
+ isEditing: true,
14193
+ editValue: "bobtesterson",
14194
+ isSaving: true,
14195
+ })));
14196
+ };
14266
14197
 
14267
14198
  const ShareLink = /*#__PURE__*/Object.freeze({
14268
14199
  __proto__: null,
@@ -14277,7 +14208,16 @@ const ShareLink = /*#__PURE__*/Object.freeze({
14277
14208
  CopyButtonBelow: CopyButtonBelow$3,
14278
14209
  CustomStyles: CustomStyles$1,
14279
14210
  CustomStylesWithDemoHooks: CustomStylesWithDemoHooks,
14280
- FullStack: FullStack
14211
+ FullStack: FullStack,
14212
+ CustomizeUrlDefault: CustomizeUrlDefault,
14213
+ CustomizeUrlEditing: CustomizeUrlEditing,
14214
+ CustomizeUrlCustomized: CustomizeUrlCustomized,
14215
+ CustomizeUrlLimitReached: CustomizeUrlLimitReached,
14216
+ CustomizeUrlDisabled: CustomizeUrlDisabled,
14217
+ CustomizeUrlValidationError: CustomizeUrlValidationError,
14218
+ CustomizeUrlInvalidCharacters: CustomizeUrlInvalidCharacters,
14219
+ CustomizeUrlProfanity: CustomizeUrlProfanity,
14220
+ CustomizeUrlSaving: CustomizeUrlSaving
14281
14221
  });
14282
14222
 
14283
14223
  const UseShareLink_stories = {
@@ -14315,11 +14255,11 @@ const BareBonesView$1 = createHookStory(() => {
14315
14255
  return (index.h("div", null,
14316
14256
  "Sharelink:",
14317
14257
  " ",
14318
- index.h("code", { style: { borderStyle: "solid", borderWidth: "1px", padding: "2px" } }, res.copyString)));
14258
+ index.h("code", { style: { borderStyle: "solid", borderWidth: "1px", padding: "2px" } }, res.copyTextViewProps.copyString)));
14319
14259
  });
14320
14260
  const RegularView$2 = createHookStory(() => {
14321
14261
  setupGraphQL$c();
14322
- return (index.h(copyTextView.CopyTextView, Object.assign({}, ShadowViewAddon.useShareLink({
14262
+ return (index.h(ShadowViewAddon.ShareLinkView, Object.assign({}, ShadowViewAddon.useShareLink({
14323
14263
  programId: "klip-referral-program",
14324
14264
  tooltiptext: "Copied to clipboard",
14325
14265
  tooltiplifespan: 1000,
@@ -14327,19 +14267,29 @@ const RegularView$2 = createHookStory(() => {
14327
14267
  });
14328
14268
  const FastTooltip = createHookStory(() => {
14329
14269
  setupGraphQL$c();
14330
- return (index.h(copyTextView.CopyTextView, Object.assign({}, ShadowViewAddon.useShareLink({
14270
+ return (index.h(ShadowViewAddon.ShareLinkView, Object.assign({}, ShadowViewAddon.useShareLink({
14331
14271
  programId: "klip-referral-program",
14332
- tooltiptext: "⠀⠀⠀⠀⠀⠀⠀⠀⠀HELLO THERE!!!\n⠀⠀⠀⡯⡯⡾⠝⠘⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢊⠘⡮⣣⠪⠢⡑⡌\n⠀⠀⠀⠟⠝⠈⠀⠀⠀⠡⠀⠠⢈⠠⢐⢠⢂⢔⣐⢄⡂⢔⠀⡁⢉⠸⢨⢑⠕⡌\n⠀⠀⡀⠁⠀⠀⠀⡀⢂⠡⠈⡔⣕⢮⣳⢯⣿⣻⣟⣯⣯⢷⣫⣆⡂⠀⠀⢐⠑⡌\n⢀⠠⠐⠈⠀⢀⢂⠢⡂⠕⡁⣝⢮⣳⢽⡽⣾⣻⣿⣯⡯⣟⣞⢾⢜⢆⠀⡀⠀⠪\n⣬⠂⠀⠀⢀⢂⢪⠨⢂⠥⣺⡪⣗⢗⣽⢽⡯⣿⣽⣷⢿⡽⡾⡽⣝⢎⠀⠀⠀⢡\n⣿⠀⠀⠀⢂⠢⢂⢥⢱⡹⣪⢞⡵⣻⡪⡯⡯⣟⡾⣿⣻⡽⣯⡻⣪⠧⠑⠀⠁⢐\n⣿⠀⠀⠀⠢⢑⠠⠑⠕⡝⡎⡗⡝⡎⣞⢽⡹⣕⢯⢻⠹⡹⢚⠝⡷⡽⡨⠀⠀⢔\n⣿⡯⠀⢈⠈⢄⠂⠂⠐⠀⠌⠠⢑⠱⡱⡱⡑⢔⠁⠀⡀⠐⠐⠐⡡⡹⣪⠀⠀⢘\n⣿⣽⠀⡀⡊⠀⠐⠨⠈⡁⠂⢈⠠⡱⡽⣷⡑⠁⠠⠑⠀⢉⢇⣤⢘⣪⢽⠀⢌⢎\n⣿⢾⠀⢌⠌⠀⡁⠢⠂⠐⡀⠀⢀⢳⢽⣽⡺⣨⢄⣑⢉⢃⢭⡲⣕⡭⣹⠠⢐⢗\n⣿⡗⠀⠢⠡⡱⡸⣔⢵⢱⢸⠈⠀⡪⣳⣳⢹⢜⡵⣱⢱⡱⣳⡹⣵⣻⢔⢅⢬⡷\n⣷⡇⡂⠡⡑⢕⢕⠕⡑⠡⢂⢊⢐⢕⡝⡮⡧⡳⣝⢴⡐⣁⠃⡫⡒⣕⢏⡮⣷⡟\n⣷⣻⣅⠑⢌⠢⠁⢐⠠⠑⡐⠐⠌⡪⠮⡫⠪⡪⡪⣺⢸⠰⠡⠠⠐⢱⠨⡪⡪⡰\n⣯⢷⣟⣇⡂⡂⡌⡀⠀⠁⡂⠅⠂⠀⡑⡄⢇⠇⢝⡨⡠⡁⢐⠠⢀⢪⡐⡜⡪⡊\n⣿⢽⡾⢹⡄⠕⡅⢇⠂⠑⣴⡬⣬⣬⣆⢮⣦⣷⣵⣷⡗⢃⢮⠱⡸⢰⢱⢸⢨⢌\n⣯⢯⣟⠸⣳⡅⠜⠔⡌⡐⠈⠻⠟⣿⢿⣿⣿⠿⡻⣃⠢⣱⡳⡱⡩⢢⠣⡃⠢⠁\n⡯⣟⣞⡇⡿⣽⡪⡘⡰⠨⢐⢀⠢⢢⢄⢤⣰⠼⡾⢕⢕⡵⣝⠎⢌⢪⠪⡘⡌⠀\n⡯⣳⠯⠚⢊⠡⡂⢂⠨⠊⠔⡑⠬⡸⣘⢬⢪⣪⡺⡼⣕⢯⢞⢕⢝⠎⢻⢼⣀⠀\n⠁⡂⠔⡁⡢⠣⢀⠢⠀⠅⠱⡐⡱⡘⡔⡕⡕⣲⡹⣎⡮⡏⡑⢜⢼⡱⢩⣗⣯⣟\n⢀⢂⢑⠀⡂⡃⠅⠊⢄⢑⠠⠑⢕⢕⢝⢮⢺⢕⢟⢮⢊⢢⢱⢄⠃⣇⣞⢞⣞⢾\n⢀⠢⡑⡀⢂⢊⠠⠁⡂⡐⠀⠅⡈⠪⠪⠪⠣⠫⠑⡁⢔⠕⣜⣜⢦⡰⡎⡯⡾⡽",
14272
+ tooltiptext: "Copied to clipboard",
14333
14273
  tooltiplifespan: 500,
14334
14274
  }))));
14335
14275
  });
14276
+ const CustomizeUrlEnabled = createHookStory(() => {
14277
+ setupGraphQL$c();
14278
+ return (index.h(ShadowViewAddon.ShareLinkView, Object.assign({}, ShadowViewAddon.useShareLink({
14279
+ programId: "klip-referral-program",
14280
+ tooltiptext: "Copied to clipboard",
14281
+ tooltiplifespan: 1000,
14282
+ allowCustomization: true,
14283
+ }))));
14284
+ });
14336
14285
 
14337
14286
  const UseShareLink = /*#__PURE__*/Object.freeze({
14338
14287
  __proto__: null,
14339
14288
  'default': UseShareLink_stories,
14340
14289
  BareBonesView: BareBonesView$1,
14341
14290
  RegularView: RegularView$2,
14342
- FastTooltip: FastTooltip
14291
+ FastTooltip: FastTooltip,
14292
+ CustomizeUrlEnabled: CustomizeUrlEnabled
14343
14293
  });
14344
14294
 
14345
14295
  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";
@@ -16640,7 +16590,7 @@ const dashboardProps = {
16640
16590
  disabled: false,
16641
16591
  status: "ACTIVE",
16642
16592
  documentType: "W9",
16643
- documentTypeString: utils.taxTypeToName("W9"),
16593
+ documentTypeString: data.taxTypeToName("W9"),
16644
16594
  dateSubmitted: "Jan 18th, 2025",
16645
16595
  noFormNeeded: false,
16646
16596
  country: "United Kingdom",
@@ -16658,7 +16608,7 @@ const dashboardProps = {
16658
16608
  },
16659
16609
  };
16660
16610
  const GeneralLoadingView = () => {
16661
- return index.h(utils.LoadingView, null);
16611
+ return index.h(data.LoadingView, null);
16662
16612
  };
16663
16613
  const GeneralErrorView = () => {
16664
16614
  return (index.h("sqm-form-message", { type: "error" },
@@ -16997,7 +16947,7 @@ const StepThreeWithDocusign = () => {
16997
16947
  return (index.h("sqm-docusign-form", { demoData: {
16998
16948
  states: {
16999
16949
  documentType: "W9",
17000
- documentTypeString: utils.taxTypeToName("W9"),
16950
+ documentTypeString: data.taxTypeToName("W9"),
17001
16951
  ...docusignFormProps.states,
17002
16952
  },
17003
16953
  } }));
@@ -17007,7 +16957,7 @@ const StepThreeWithDocusignW8BEN = () => {
17007
16957
  states: {
17008
16958
  ...docusignFormProps.states,
17009
16959
  documentType: "W8BEN",
17010
- documentTypeString: utils.taxTypeToName("W8BEN"),
16960
+ documentTypeString: data.taxTypeToName("W8BEN"),
17011
16961
  },
17012
16962
  } }));
17013
16963
  };
@@ -17016,7 +16966,7 @@ const StepThreeWithDocusignW8BENE = () => {
17016
16966
  states: {
17017
16967
  ...docusignFormProps.states,
17018
16968
  documentType: "W8BENE",
17019
- documentTypeString: utils.taxTypeToName("W8BENE"),
16969
+ documentTypeString: data.taxTypeToName("W8BENE"),
17020
16970
  formState: {
17021
16971
  taxFormExpired: false,
17022
16972
  participantType: "businessEntity",
@@ -17112,7 +17062,7 @@ const StepThreeWithDocusignModalOpen = () => {
17112
17062
  return (index.h("sqm-docusign-form", { demoData: {
17113
17063
  states: {
17114
17064
  documentType: "W9",
17115
- documentTypeString: utils.taxTypeToName("W9"),
17065
+ documentTypeString: data.taxTypeToName("W9"),
17116
17066
  ...docusignFormProps.states,
17117
17067
  showModal: true,
17118
17068
  },
@@ -17185,7 +17135,7 @@ const TaxAndCashDashboardActiveW8BENForm = () => {
17185
17135
  noFormNeeded: false,
17186
17136
  canEditPayoutInfo: true,
17187
17137
  documentType: "W8BEN",
17188
- documentTypeString: utils.taxTypeToName("W8BEN"),
17138
+ documentTypeString: data.taxTypeToName("W8BEN"),
17189
17139
  country: "United Kingdom",
17190
17140
  indirectTaxType: "VAT",
17191
17141
  indirectTaxNumber: "123456",
@@ -17203,7 +17153,7 @@ const TaxAndCashDashboardActiveW8BENEForm = () => {
17203
17153
  noFormNeeded: false,
17204
17154
  canEditPayoutInfo: true,
17205
17155
  documentType: "W8BENE",
17206
- documentTypeString: utils.taxTypeToName("W8BENE"),
17156
+ documentTypeString: data.taxTypeToName("W8BENE"),
17207
17157
  country: "United Kingdom",
17208
17158
  indirectTaxType: "VAT",
17209
17159
  indirectTaxNumber: "123456",
@@ -17221,7 +17171,7 @@ const TaxAndCashDashboardNotActiveW9Form = () => {
17221
17171
  canEditPayoutInfo: true,
17222
17172
  status: "INACTIVE",
17223
17173
  documentType: "W9",
17224
- documentTypeString: utils.taxTypeToName("W9"),
17174
+ documentTypeString: data.taxTypeToName("W9"),
17225
17175
  country: "United Kingdom",
17226
17176
  indirectTaxType: "VAT",
17227
17177
  indirectTaxNumber: "123456",
@@ -17241,7 +17191,7 @@ const TaxAndCashDashboardNotActiveW8Form = () => {
17241
17191
  canEditPayoutInfo: true,
17242
17192
  status: "INACTIVE",
17243
17193
  documentType: "W8BEN",
17244
- documentTypeString: utils.taxTypeToName("W8BEN"),
17194
+ documentTypeString: data.taxTypeToName("W8BEN"),
17245
17195
  country: "United Kingdom",
17246
17196
  indirectTaxType: "VAT",
17247
17197
  indirectTaxNumber: "123456",
@@ -17278,7 +17228,7 @@ const TaxAndCashDashboardNotVerifiedW9Form = () => {
17278
17228
  disabled: false,
17279
17229
  status: "NOT_VERIFIED",
17280
17230
  documentType: "W9",
17281
- documentTypeString: utils.taxTypeToName("W9"),
17231
+ documentTypeString: data.taxTypeToName("W9"),
17282
17232
  noFormNeeded: false,
17283
17233
  country: "United States",
17284
17234
  indirectTaxType: "VAT",
@@ -17299,7 +17249,7 @@ const TaxAndCashDashboardNotVerifiedW8BENForm = () => {
17299
17249
  disabled: false,
17300
17250
  status: "NOT_VERIFIED",
17301
17251
  documentType: "W8BEN",
17302
- documentTypeString: utils.taxTypeToName("W8BEN"),
17252
+ documentTypeString: data.taxTypeToName("W8BEN"),
17303
17253
  dateSubmitted: "Jan 18th, 2025",
17304
17254
  noFormNeeded: false,
17305
17255
  country: "United Kingdom",
@@ -17320,7 +17270,7 @@ const TaxAndCashDashboardNotVerifiedW8BENEForm = () => {
17320
17270
  disabled: false,
17321
17271
  status: "NOT_VERIFIED",
17322
17272
  documentType: "W8BENE",
17323
- documentTypeString: utils.taxTypeToName("W8BENE"),
17273
+ documentTypeString: data.taxTypeToName("W8BENE"),
17324
17274
  dateSubmitted: "Jan 18th, 2025",
17325
17275
  noFormNeeded: false,
17326
17276
  country: "United Kingdom",
@@ -17341,7 +17291,7 @@ const TaxAndCashDashboardNotActiveW8BENEForm = () => {
17341
17291
  disabled: false,
17342
17292
  status: "NOT_ACTIVE",
17343
17293
  documentType: "W8BENE",
17344
- documentTypeString: utils.taxTypeToName("W8BENE"),
17294
+ documentTypeString: data.taxTypeToName("W8BENE"),
17345
17295
  dateSubmitted: "Jan 18th, 2025",
17346
17296
  noFormNeeded: false,
17347
17297
  indirectTaxNumber: "123456",
@@ -17361,7 +17311,7 @@ const TaxAndCashDashboardNoFormNeeded = () => {
17361
17311
  canEditPayoutInfo: true,
17362
17312
  disabled: false,
17363
17313
  documentType: "W9",
17364
- documentTypeString: utils.taxTypeToName("W9"),
17314
+ documentTypeString: data.taxTypeToName("W9"),
17365
17315
  dateSubmitted: "Jan 18th, 2025",
17366
17316
  noFormNeeded: true,
17367
17317
  province: "Ontario",
@@ -17383,7 +17333,7 @@ const TaxAndCashDashboardIndirectTaxCanada = () => {
17383
17333
  status: "ACTIVE",
17384
17334
  disabled: false,
17385
17335
  documentType: "W8BENE",
17386
- documentTypeString: utils.taxTypeToName("W8BENE"),
17336
+ documentTypeString: data.taxTypeToName("W8BENE"),
17387
17337
  dateSubmitted: "Jan 18th, 2025",
17388
17338
  noFormNeeded: false,
17389
17339
  province: "Ontario",
@@ -17405,7 +17355,7 @@ const TaxAndCashDashboardIndirectTaxCanadaQuebec = () => {
17405
17355
  status: "ACTIVE",
17406
17356
  disabled: false,
17407
17357
  documentType: "W8BENE",
17408
- documentTypeString: utils.taxTypeToName("W8BENE"),
17358
+ documentTypeString: data.taxTypeToName("W8BENE"),
17409
17359
  dateSubmitted: "Jan 18th, 2025",
17410
17360
  noFormNeeded: false,
17411
17361
  province: "Quebec",
@@ -17428,7 +17378,7 @@ const TaxAndCashDashboardIndirectTaxSpain = () => {
17428
17378
  status: "ACTIVE",
17429
17379
  disabled: false,
17430
17380
  documentType: "W8BENE",
17431
- documentTypeString: utils.taxTypeToName("W8BENE"),
17381
+ documentTypeString: data.taxTypeToName("W8BENE"),
17432
17382
  dateSubmitted: "Jan 18th, 2025",
17433
17383
  noFormNeeded: false,
17434
17384
  country: "Spain",
@@ -17450,7 +17400,7 @@ const TaxAndCashDashboardIndirectTaxNotRegistered = () => {
17450
17400
  canEditPayoutInfo: true,
17451
17401
  status: "ACTIVE",
17452
17402
  documentType: "W8BEN",
17453
- documentTypeString: utils.taxTypeToName("W8BEN"),
17403
+ documentTypeString: data.taxTypeToName("W8BEN"),
17454
17404
  dateSubmitted: "Jan 18th, 2025",
17455
17405
  noFormNeeded: false,
17456
17406
  notRegistered: true,
@@ -17468,7 +17418,7 @@ const TaxAndCashDashboardIdentityVerifcationRequired = () => {
17468
17418
  canEditPayoutInfo: true,
17469
17419
  status: "ACTIVE",
17470
17420
  documentType: "W8BEN",
17471
- documentTypeString: utils.taxTypeToName("W8BEN"),
17421
+ documentTypeString: data.taxTypeToName("W8BEN"),
17472
17422
  dateSubmitted: "Jan 18th, 2025",
17473
17423
  noFormNeeded: false,
17474
17424
  notRegistered: true,
@@ -17486,7 +17436,7 @@ const TaxAndCashDashboardIdentityVerifcationRequiredInternal = () => {
17486
17436
  canEditPayoutInfo: true,
17487
17437
  status: "ACTIVE",
17488
17438
  documentType: "W8BEN",
17489
- documentTypeString: utils.taxTypeToName("W8BEN"),
17439
+ documentTypeString: data.taxTypeToName("W8BEN"),
17490
17440
  dateSubmitted: "Jan 18th, 2025",
17491
17441
  noFormNeeded: false,
17492
17442
  notRegistered: true,
@@ -17504,7 +17454,7 @@ const TaxAndCashDashboardIdentityVerifcationReviewInternal = () => {
17504
17454
  canEditPayoutInfo: true,
17505
17455
  status: "ACTIVE",
17506
17456
  documentType: "W8BEN",
17507
- documentTypeString: utils.taxTypeToName("W8BEN"),
17457
+ documentTypeString: data.taxTypeToName("W8BEN"),
17508
17458
  dateSubmitted: "Jan 18th, 2025",
17509
17459
  noFormNeeded: false,
17510
17460
  notRegistered: true,
@@ -17522,7 +17472,7 @@ const TaxAndCashDashboardIdentityVerifcationFailedInternal = () => {
17522
17472
  canEditPayoutInfo: true,
17523
17473
  status: "ACTIVE",
17524
17474
  documentType: "W8BEN",
17525
- documentTypeString: utils.taxTypeToName("W8BEN"),
17475
+ documentTypeString: data.taxTypeToName("W8BEN"),
17526
17476
  dateSubmitted: "Jan 18th, 2025",
17527
17477
  noFormNeeded: false,
17528
17478
  notRegistered: true,
@@ -17540,7 +17490,7 @@ const TaxAndCashDashboardW9ThresholdReached = () => {
17540
17490
  canEditPayoutInfo: true,
17541
17491
  status: null,
17542
17492
  documentType: "W9",
17543
- documentTypeString: utils.taxTypeToName("W9"),
17493
+ documentTypeString: data.taxTypeToName("W9"),
17544
17494
  dateSubmitted: "Jan 18th, 2025",
17545
17495
  noFormNeeded: false,
17546
17496
  notRegistered: false,
@@ -17559,7 +17509,7 @@ const TaxAndCashDashboardNewTaxForm = () => {
17559
17509
  canEditPayoutInfo: true,
17560
17510
  status: "ACTIVE",
17561
17511
  documentType: "W8BEN",
17562
- documentTypeString: utils.taxTypeToName("W8BEN"),
17512
+ documentTypeString: data.taxTypeToName("W8BEN"),
17563
17513
  dateSubmitted: "Jan 18th, 2025",
17564
17514
  noFormNeeded: false,
17565
17515
  notRegistered: true,
@@ -17578,7 +17528,7 @@ const TaxAndCashDashboardPayoutsOnHold = () => {
17578
17528
  disabled: true,
17579
17529
  status: "ACTIVE",
17580
17530
  documentType: "W8BEN",
17581
- documentTypeString: utils.taxTypeToName("W8BEN"),
17531
+ documentTypeString: data.taxTypeToName("W8BEN"),
17582
17532
  dateSubmitted: "Jan 18th, 2025",
17583
17533
  noFormNeeded: false,
17584
17534
  indirectTaxNumber: "123456",
@@ -17598,7 +17548,7 @@ const TaxAndCashDashboardNoTaxFormRequiredAndBeneficiaryNameInvalid = () => {
17598
17548
  disabled: true,
17599
17549
  status: "ACTIVE",
17600
17550
  documentType: undefined,
17601
- documentTypeString: utils.taxTypeToName("W9"),
17551
+ documentTypeString: data.taxTypeToName("W9"),
17602
17552
  dateSubmitted: "Jan 18th, 2025",
17603
17553
  noFormNeeded: true,
17604
17554
  indirectTaxNumber: "123456",
@@ -17618,7 +17568,7 @@ const TaxAndCashDashboardNoTaxFormRequiredAndBeneficiaryNameInvalidUS = () => {
17618
17568
  disabled: true,
17619
17569
  status: "ACTIVE",
17620
17570
  documentType: undefined,
17621
- documentTypeString: utils.taxTypeToName("W9"),
17571
+ documentTypeString: data.taxTypeToName("W9"),
17622
17572
  dateSubmitted: "Jan 18th, 2025",
17623
17573
  noFormNeeded: true,
17624
17574
  indirectTaxNumber: "123456",
@@ -17679,7 +17629,7 @@ const TaxAndCashDashboardFallbackDocumentTypeW9 = () => {
17679
17629
  disabled: false,
17680
17630
  status: "ACTIVE",
17681
17631
  documentType: "W9",
17682
- documentTypeString: utils.taxTypeToName("W9"),
17632
+ documentTypeString: data.taxTypeToName("W9"),
17683
17633
  dateSubmitted: "Mar 15, 2025",
17684
17634
  noFormNeeded: false,
17685
17635
  indirectTaxNumber: "123456",
@@ -17700,7 +17650,7 @@ const TaxAndCashDashboardFallbackDocumentTypeW8BEN = () => {
17700
17650
  disabled: false,
17701
17651
  status: "ACTIVE",
17702
17652
  documentType: "W8BEN",
17703
- documentTypeString: utils.taxTypeToName("W8BEN"),
17653
+ documentTypeString: data.taxTypeToName("W8BEN"),
17704
17654
  dateSubmitted: "Feb 20, 2025",
17705
17655
  noFormNeeded: false,
17706
17656
  indirectTaxNumber: "654321",
@@ -17742,7 +17692,7 @@ const TaxAndCashDashboardLoading = () => {
17742
17692
  disabled: false,
17743
17693
  status: "ACTIVE",
17744
17694
  documentType: "W9",
17745
- documentTypeString: utils.taxTypeToName("W9"),
17695
+ documentTypeString: data.taxTypeToName("W9"),
17746
17696
  dateSubmitted: "Jan 18th, 2025",
17747
17697
  noFormNeeded: false,
17748
17698
  loading: true,
@@ -17761,7 +17711,7 @@ const TaxAndCashDashboardWithLoadingError = () => {
17761
17711
  canEditPayoutInfo: true,
17762
17712
  status: "ACTIVE",
17763
17713
  documentType: "W9",
17764
- documentTypeString: utils.taxTypeToName("W9"),
17714
+ documentTypeString: data.taxTypeToName("W9"),
17765
17715
  dateSubmitted: "Jan 18th, 2025",
17766
17716
  noFormNeeded: false,
17767
17717
  loading: true,
@@ -17781,7 +17731,7 @@ const TaxAndCashDashboardWithGeneralError = () => {
17781
17731
  disabled: false,
17782
17732
  status: "ACTIVE",
17783
17733
  documentType: "W9",
17784
- documentTypeString: utils.taxTypeToName("W9"),
17734
+ documentTypeString: data.taxTypeToName("W9"),
17785
17735
  dateSubmitted: "Jan 18th, 2025",
17786
17736
  noFormNeeded: false,
17787
17737
  indirectTaxNumber: "123456",
@@ -17805,7 +17755,7 @@ const TaxAndCashDashboardDisabled = () => {
17805
17755
  disabled: true,
17806
17756
  status: "ACTIVE",
17807
17757
  documentType: "W8BEN",
17808
- documentTypeString: utils.taxTypeToName("W8BEN"),
17758
+ documentTypeString: data.taxTypeToName("W8BEN"),
17809
17759
  dateSubmitted: "Jan 18th, 2025",
17810
17760
  noFormNeeded: false,
17811
17761
  indirectTaxNumber: "123456",
@@ -18622,6 +18572,7 @@ const defaultText = {
18622
18572
  region: "Region",
18623
18573
  postalCode: "Postal Code",
18624
18574
  currency: "Currency",
18575
+ currencyHelpText: "Select your preferred currency for payouts",
18625
18576
  allowBankingCollection: "I agree to the {termsAndConditionsLink}",
18626
18577
  personalInformation: "Personal Information",
18627
18578
  continueButton: "Continue",
@@ -18893,215 +18844,57 @@ const UserInfoFormView = /*#__PURE__*/Object.freeze({
18893
18844
  DisabledForm: DisabledForm
18894
18845
  });
18895
18846
 
18896
- const PartnerInfoModal_stories = {
18897
- title: "Components/Partner Info Modal",
18898
- };
18899
- const demoCountries = [
18900
- { countryCode: "US", displayName: "United States" },
18901
- { countryCode: "CA", displayName: "Canada" },
18902
- { countryCode: "GB", displayName: "United Kingdom" },
18903
- { countryCode: "AU", displayName: "Australia" },
18904
- { countryCode: "DE", displayName: "Germany" },
18905
- { countryCode: "FR", displayName: "France" },
18906
- { countryCode: "JP", displayName: "Japan" },
18907
- ];
18908
- const demoCurrencies = [
18909
- { currencyCode: "USD", displayName: "US Dollar" },
18910
- { currencyCode: "CAD", displayName: "Canadian Dollar" },
18911
- { currencyCode: "GBP", displayName: "British Pound" },
18912
- { currencyCode: "EUR", displayName: "Euro" },
18913
- { currencyCode: "AUD", displayName: "Australian Dollar" },
18914
- ];
18915
- const noopCallbacks = {
18916
- onCountryChange: (e) => console.log("Country changed:", e),
18917
- onCurrencyChange: (e) => console.log("Currency changed:", e),
18918
- onCheckboxChange: (e) => console.log("Checkbox changed:", e),
18919
- setCountrySearch: (v) => console.log("Country search:", v),
18920
- setCurrencySearch: (v) => console.log("Currency search:", v),
18921
- onSubmit: () => console.log("Submit"),
18922
- onClose: () => console.log("Close"),
18923
- };
18924
- const defaultText$1 = {
18925
- modalHeader: "Let's get you ready for rewards",
18926
- modalHeaderExistingPartner: "We found an existing account",
18927
- descriptionNewPartner: "Confirm your country and currency now to get your future rewards faster.",
18928
- descriptionExistingPartner: "We noticed you are already an Impact.com partner, please confirm your information.",
18929
- supportDescriptionExistingPartner: "If this is a mistake, please contact Support or sign up for this referral program with a different email.",
18930
- supportLink: "Support",
18931
- countryLabel: "Country",
18932
- currencyLabel: "Currency",
18933
- submitButtonLabel: "Submit",
18934
- confirmButtonLabel: "Confirm",
18935
- searchCountryPlaceholder: "Search for a country",
18936
- searchCurrencyPlaceholder: "Search for a currency",
18937
- bankingCollectionText: "",
18938
- allowBankingCollection: "I have read the {termsAndConditionsLink} and allow impact.com to collect my tax and banking information",
18939
- termsAndConditionsLabel: "terms and conditions",
18940
- termsAndConditionsLink: "https://terms.advocate.impact.com/PayoutTermsAndConditions.html",
18941
- };
18942
- const defaultProps$y = {
18943
- states: {
18944
- open: true,
18945
- loading: false,
18946
- submitting: false,
18947
- isExistingPartner: false,
18948
- countryCode: null,
18949
- currency: null,
18950
- error: "",
18951
- success: false,
18952
- filteredCountries: demoCountries,
18953
- filteredCurrencies: demoCurrencies,
18954
- allowBankingCollection: false,
18955
- disabled: false,
18847
+ 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";
18848
+
18849
+ const UserAttribute_stories = {
18850
+ title: "Components/User Attribute",
18851
+ parameters: {
18852
+ scenario: scenario$G,
18956
18853
  },
18957
- callbacks: noopCallbacks,
18958
- text: defaultText$1,
18959
- };
18960
- const NewPartnerEmpty = () => {
18961
- return index.h(sqmPartnerInfoModalView.PartnerInfoModalView, Object.assign({}, defaultProps$y));
18962
- };
18963
- const NewPartnerPrefilled = () => {
18964
- const props = {
18965
- ...defaultProps$y,
18966
- states: {
18967
- ...defaultProps$y.states,
18968
- countryCode: "US",
18969
- currency: "",
18970
- },
18971
- };
18972
- return index.h(sqmPartnerInfoModalView.PartnerInfoModalView, Object.assign({}, props));
18973
- };
18974
- const NewPartnerFullySelected = () => {
18975
- const props = {
18976
- ...defaultProps$y,
18977
- states: {
18978
- ...defaultProps$y.states,
18979
- countryCode: "US",
18980
- currency: "USD",
18981
- },
18982
- };
18983
- return index.h(sqmPartnerInfoModalView.PartnerInfoModalView, Object.assign({}, props));
18984
- };
18985
- const ExistingPartnerConfirm = () => {
18986
- const props = {
18987
- ...defaultProps$y,
18988
- states: {
18989
- ...defaultProps$y.states,
18990
- isExistingPartner: true,
18991
- countryCode: "CA",
18992
- currency: "CAD",
18993
- },
18994
- };
18995
- return index.h(sqmPartnerInfoModalView.PartnerInfoModalView, Object.assign({}, props));
18996
- };
18997
- const ExistingPartnerEmpty = () => {
18998
- const props = {
18999
- ...defaultProps$y,
19000
- states: {
19001
- ...defaultProps$y.states,
19002
- isExistingPartner: true,
19003
- countryCode: "",
19004
- currency: "",
19005
- },
19006
- };
19007
- return index.h(sqmPartnerInfoModalView.PartnerInfoModalView, Object.assign({}, props));
19008
- };
19009
- const Submitting = () => {
19010
- const props = {
19011
- ...defaultProps$y,
19012
- states: {
19013
- ...defaultProps$y.states,
19014
- countryCode: "GB",
19015
- currency: "GBP",
19016
- submitting: true,
19017
- },
19018
- };
19019
- return index.h(sqmPartnerInfoModalView.PartnerInfoModalView, Object.assign({}, props));
19020
18854
  };
19021
- const WithError$3 = () => {
19022
- const props = {
19023
- ...defaultProps$y,
19024
- states: {
19025
- ...defaultProps$y.states,
19026
- countryCode: "US",
19027
- currency: "USD",
19028
- error: "An error occurred while creating your partner account. Please try again.",
19029
- },
19030
- };
19031
- return index.h(sqmPartnerInfoModalView.PartnerInfoModalView, Object.assign({}, props));
19032
- };
19033
- const ValidationError$1 = () => {
19034
- const props = {
19035
- ...defaultProps$y,
19036
- states: {
19037
- ...defaultProps$y.states,
19038
- countryCode: "",
19039
- currency: "",
19040
- error: "Please select both a country and currency.",
19041
- },
19042
- };
19043
- return index.h(sqmPartnerInfoModalView.PartnerInfoModalView, Object.assign({}, props));
18855
+ const Default$x = () => {
18856
+ return (index.h("sqm-user-attribute", { demoData: {
18857
+ loading: false,
18858
+ value: "impact.com",
18859
+ } }));
19044
18860
  };
19045
- const Closed = () => {
19046
- const props = {
19047
- ...defaultProps$y,
19048
- states: {
19049
- ...defaultProps$y.states,
19050
- open: false,
19051
- },
19052
- };
19053
- return index.h(sqmPartnerInfoModalView.PartnerInfoModalView, Object.assign({}, props));
18861
+ /*
18862
+ Verifies that an sqm-user-attribute with no valid value
18863
+ collapses completely and does not create extra space
18864
+ (e.g. a double gap) in a flex layout.
18865
+ */
18866
+ const InvalidValue = () => {
18867
+ return (index.h("div", { style: { display: "flex", flexDirection: "column", gap: "16px" } },
18868
+ index.h("div", { style: { background: "#e0e0e0", padding: "8px" } }, "Above"),
18869
+ index.h("sqm-user-attribute", { demoData: {
18870
+ loading: false,
18871
+ value: null,
18872
+ } }),
18873
+ index.h("div", { style: { background: "#e0e0e0", padding: "8px" } }, "Below")));
19054
18874
  };
19055
- const SQMComponentExistingPartner = () => {
19056
- return (index.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: {
19057
- states: { open: true, isExistingPartner: true },
18875
+ const Loading$h = () => {
18876
+ return (index.h("sqm-user-attribute", { demoData: {
18877
+ loading: true,
18878
+ value: "impact.com",
19058
18879
  } }));
19059
18880
  };
19060
- const SQMComponentNewPartner = () => {
19061
- return (index.h("sqm-partner-info-modal", { demoData: {
19062
- states: { open: true, isExistingPartner: false },
18881
+ const WithCustomStyles = () => {
18882
+ return (index.h("sqm-user-attribute", { demoData: {
18883
+ loading: false,
18884
+ value: "impact.com",
18885
+ fontSize: 24,
18886
+ color: "#4CAF50",
18887
+ fontWeight: 700,
19063
18888
  } }));
19064
18889
  };
19065
18890
 
19066
- const PartnerInfoModal = /*#__PURE__*/Object.freeze({
19067
- __proto__: null,
19068
- 'default': PartnerInfoModal_stories,
19069
- NewPartnerEmpty: NewPartnerEmpty,
19070
- NewPartnerPrefilled: NewPartnerPrefilled,
19071
- NewPartnerFullySelected: NewPartnerFullySelected,
19072
- ExistingPartnerConfirm: ExistingPartnerConfirm,
19073
- ExistingPartnerEmpty: ExistingPartnerEmpty,
19074
- Submitting: Submitting,
19075
- WithError: WithError$3,
19076
- ValidationError: ValidationError$1,
19077
- Closed: Closed,
19078
- SQMComponentExistingPartner: SQMComponentExistingPartner,
19079
- SQMComponentNewPartner: SQMComponentNewPartner
19080
- });
19081
-
19082
- const WidgetVerification_stories = {
19083
- title: "Components/Widget Verification",
19084
- };
19085
- const Step1Email = () => (index.h("sqm-widget-verification", { stateController: JSON.stringify({
19086
- "sqm-widget-verification": { showCode: false },
19087
- }) }));
19088
- const Step2Code = () => (index.h("sqm-widget-verification", { stateController: JSON.stringify({
19089
- "sqm-widget-verification": { showCode: true },
19090
- }) }));
19091
- const Step3PartnerModal = () => (index.h("sqm-widget-verification", { stateController: JSON.stringify({
19092
- "sqm-widget-verification": { showPartnerModal: true },
19093
- }) }));
19094
- const Loading$h = () => (index.h("sqm-widget-verification", { stateController: JSON.stringify({
19095
- "sqm-widget-verification": { loading: true },
19096
- }) }));
19097
-
19098
- const WidgetVerification = /*#__PURE__*/Object.freeze({
18891
+ const UserAttribute = /*#__PURE__*/Object.freeze({
19099
18892
  __proto__: null,
19100
- 'default': WidgetVerification_stories,
19101
- Step1Email: Step1Email,
19102
- Step2Code: Step2Code,
19103
- Step3PartnerModal: Step3PartnerModal,
19104
- Loading: Loading$h
18893
+ 'default': UserAttribute_stories,
18894
+ Default: Default$x,
18895
+ InvalidValue: InvalidValue,
18896
+ Loading: Loading$h,
18897
+ WithCustomStyles: WithCustomStyles
19105
18898
  });
19106
18899
 
19107
18900
  function deepFreeze(obj) {
@@ -21797,8 +21590,7 @@ const stories = [
21797
21590
  TaxAndCashRewardsTable,
21798
21591
  TaxAndCashReferralTableRewardsCell,
21799
21592
  TaxAndCashReferralTable$1,
21800
- PartnerInfoModal,
21801
- WidgetVerification,
21593
+ UserAttribute,
21802
21594
  ];
21803
21595
  const StencilStorybook = class {
21804
21596
  constructor(hostRef) {