@saasquatch/mint-components 2.2.0-1 → 2.2.0-10

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 (460) hide show
  1. package/dist/cjs/{ShadowViewAddon-2b3f51be.js → ShadowViewAddon-3b477e58.js} +434 -32
  2. package/dist/cjs/{data-6b5095f8.js → data-89ac73dd.js} +2 -1
  3. package/dist/cjs/{global-0f8b1267.js → global-b7b1b8fe.js} +3126 -3177
  4. package/dist/cjs/{index.module-42d413d9.js → index.module-f8c8495f.js} +149 -154
  5. package/dist/cjs/loader.cjs.js +3 -3
  6. package/dist/cjs/mint-components.cjs.js +3 -3
  7. package/dist/cjs/{re-render-69bde9ee.js → re-render-72a0ef45.js} +1 -1
  8. package/dist/cjs/sqm-banking-info-form_10.cjs.entry.js +53 -312
  9. package/dist/cjs/{sqm-big-stat_46.cjs.entry.js → sqm-big-stat_47.cjs.entry.js} +421 -47
  10. package/dist/cjs/sqm-close-button.cjs.entry.js +1 -1
  11. package/dist/cjs/sqm-code-verification.cjs.entry.js +4 -4
  12. package/dist/cjs/sqm-context-router.cjs.entry.js +1 -1
  13. package/dist/cjs/sqm-email-verification_2.cjs.entry.js +60 -38
  14. package/dist/cjs/sqm-empty_4.cjs.entry.js +3 -3
  15. package/dist/cjs/sqm-google-sign-in.cjs.entry.js +1 -1
  16. package/dist/cjs/sqm-graphql-client-provider.cjs.entry.js +1 -1
  17. package/dist/cjs/sqm-instant-access-registration.cjs.entry.js +3 -3
  18. package/dist/cjs/{sqm-lead-checkbox-field-view-d90f8941.js → sqm-lead-checkbox-field-view-0af2a157.js} +1 -1
  19. package/dist/cjs/sqm-lead-checkbox-field.cjs.entry.js +4 -4
  20. package/dist/cjs/{sqm-lead-input-field-view-818d9e9a.js → sqm-lead-input-field-view-0cd7ebdb.js} +1 -1
  21. package/dist/cjs/sqm-lead-input-field.cjs.entry.js +4 -4
  22. package/dist/cjs/sqm-leaderboard-rank.cjs.entry.js +2 -2
  23. package/dist/cjs/sqm-logout-current-user.cjs.entry.js +1 -1
  24. package/dist/cjs/{sqm-navigation-sidebar-item-view-20693e59.js → sqm-navigation-sidebar-item-view-49b152dd.js} +1 -1
  25. package/dist/cjs/sqm-navigation-sidebar-item.cjs.entry.js +2 -2
  26. package/dist/cjs/sqm-navigation-sidebar.cjs.entry.js +1 -1
  27. package/dist/cjs/sqm-pagination_3.cjs.entry.js +3 -3
  28. package/dist/cjs/{sqm-partner-info-modal-view-431ff976.js → sqm-partner-info-modal-view-f6faecf5.js} +9 -3
  29. package/dist/cjs/sqm-password-field.cjs.entry.js +2 -2
  30. package/dist/cjs/sqm-popup-container.cjs.entry.js +1 -1
  31. package/dist/cjs/{sqm-portal-container-view-70a47420.js → sqm-portal-container-view-757f921b.js} +5 -6
  32. package/dist/cjs/{sqm-portal-email-verification-view-60f8e0a7.js → sqm-portal-email-verification-view-abb773a7.js} +2 -2
  33. package/dist/cjs/sqm-portal-email-verification.cjs.entry.js +4 -4
  34. package/dist/cjs/sqm-portal-forgot-password_6.cjs.entry.js +8 -8
  35. package/dist/cjs/sqm-portal-logout.cjs.entry.js +1 -1
  36. package/dist/cjs/{sqm-portal-profile-view-2bfd7afd.js → sqm-portal-profile-view-3515e1e5.js} +2 -2
  37. package/dist/cjs/sqm-portal-profile.cjs.entry.js +5 -5
  38. package/dist/cjs/sqm-portal-protected-route.cjs.entry.js +1 -1
  39. package/dist/cjs/{sqm-portal-registration-form-view-fd48f1d3.js → sqm-portal-registration-form-view-a45f7a52.js} +1 -1
  40. package/dist/cjs/{sqm-portal-reset-password-view-d90d77f9.js → sqm-portal-reset-password-view-a767b044.js} +1 -1
  41. package/dist/cjs/sqm-portal-reset-password.cjs.entry.js +3 -3
  42. package/dist/cjs/{sqm-portal-verify-email-view-b31638f8.js → sqm-portal-verify-email-view-717d0633.js} +2 -2
  43. package/dist/cjs/sqm-qr-code.cjs.entry.js +2 -2
  44. package/dist/cjs/sqm-referral-table_11.cjs.entry.js +33 -15
  45. package/dist/cjs/sqm-rewards-table-customer-note-cell.cjs.entry.js +1 -1
  46. package/dist/cjs/sqm-rewards-table-customer-note-column.cjs.entry.js +2 -2
  47. package/dist/cjs/sqm-rewards-table_9.cjs.entry.js +35 -14
  48. package/dist/cjs/sqm-stencilbook.cjs.entry.js +723 -345
  49. package/dist/cjs/sqm-tab.cjs.entry.js +2 -2
  50. package/dist/cjs/sqm-tabs.cjs.entry.js +3 -3
  51. package/dist/cjs/{sqm-text-span-view-8a32dd8c.js → sqm-text-span-view-b9e10f5d.js} +1 -1
  52. package/dist/cjs/sqm-text-span.cjs.entry.js +1 -1
  53. package/dist/cjs/{sqm-user-info-form-view-f1127a60.js → sqm-user-info-form-view-0e1ddbe4.js} +4 -389
  54. package/dist/cjs/sqm-widget-verification-controller.cjs.entry.js +1 -1
  55. package/dist/cjs/{useChildElements-89bc50a9.js → useChildElements-041127d7.js} +1 -1
  56. package/dist/cjs/{usePayoutStatus-cf050a03.js → useIndirectTaxForm-c3c1ec56.js} +292 -1
  57. package/dist/cjs/{useInstantAccessRegistration-651aa95b.js → useInstantAccessRegistration-2398df36.js} +2 -2
  58. package/dist/cjs/{useLeadFormState-76d3b511.js → useLeadFormState-b4c2ab5b.js} +2 -2
  59. package/dist/cjs/{usePortalRegistrationForm-31822dc4.js → usePortalRegistrationForm-23ee2d62.js} +2 -2
  60. package/dist/cjs/{useReferralCodes-89c2b972.js → useReferralCodes-0f7948af.js} +1 -1
  61. package/dist/cjs/{useReferralTable-d3ddfd05.js → useReferralTable-6e9de0d5.js} +3 -3
  62. package/dist/cjs/{useRegistrationFormState-a223f597.js → useRegistrationFormState-4fe5b770.js} +1 -1
  63. package/dist/cjs/{useVerificationEmail-994bc32f.js → useVerificationEmail-5d19aa99.js} +1 -1
  64. package/dist/cjs/{utilities-096934ea.js → utilities-fcdb9504.js} +1 -1
  65. package/dist/cjs/utils-a3b3d05b.js +478 -0
  66. package/dist/collection/collection-manifest.json +1 -0
  67. package/dist/collection/components/sqm-big-stat/useBigStat.js +5 -6
  68. package/dist/collection/components/sqm-checkbox-field/sqm-checkbox-field-view.js +1 -1
  69. package/dist/collection/components/sqm-checkbox-field/sqm-checkbox-field.js +2 -3
  70. package/dist/collection/components/sqm-partner-info-modal/PartnerInfoModal.stories.js +11 -0
  71. package/dist/collection/components/sqm-partner-info-modal/sqm-partner-info-modal-view.js +8 -2
  72. package/dist/collection/components/sqm-partner-info-modal/sqm-partner-info-modal.js +39 -10
  73. package/dist/collection/components/sqm-partner-info-modal/usePartnerInfoModal.js +24 -19
  74. package/dist/collection/components/sqm-portal-container/sqm-portal-container-view.js +6 -7
  75. package/dist/collection/components/sqm-portal-google-login/sqm-portal-google-login.js +1 -1
  76. package/dist/collection/components/sqm-portal-login/sqm-portal-login.js +1 -1
  77. package/dist/collection/components/sqm-referral-iframe/ReferralIframe.stories.js +1 -0
  78. package/dist/collection/components/sqm-referral-iframe/sqm-referral-iframe-view.js +1 -1
  79. package/dist/collection/components/sqm-referral-iframe/sqm-referral-iframe.js +27 -1
  80. package/dist/collection/components/sqm-referral-table/ReferralTable.stories.js +1 -0
  81. package/dist/collection/components/sqm-referral-table/ReferralTableRewardsCell.stories.js +1 -0
  82. package/dist/collection/components/sqm-referral-table/TaxAndCashReferralTableRewardsCell.stories.js +209 -157
  83. package/dist/collection/components/sqm-referral-table/cells/sqm-referral-table-rewards-cell.js +30 -10
  84. package/dist/collection/components/sqm-rewards-table/RewardsTableCell.stories.js +1 -0
  85. package/dist/collection/components/sqm-rewards-table/TaxAndCashRewardsTableCell.stories.js +223 -148
  86. package/dist/collection/components/sqm-rewards-table/cells/sqm-rewards-table-status-cell.js +30 -10
  87. package/dist/collection/components/sqm-rewards-table/useRewardsTable.js +1 -0
  88. package/dist/collection/components/sqm-share-code/sqm-share-code.js +0 -1
  89. package/dist/collection/components/sqm-share-link/ShareLink.stories.js +136 -11
  90. package/dist/collection/components/sqm-share-link/UseShareLink.stories.js +14 -5
  91. package/dist/collection/components/sqm-share-link/sqm-share-link-view.js +192 -0
  92. package/dist/collection/components/sqm-share-link/sqm-share-link.js +935 -48
  93. package/dist/collection/components/sqm-share-link/useShareLink.js +227 -14
  94. package/dist/collection/components/sqm-stencilbook/sqm-stencilbook.js +2 -0
  95. package/dist/collection/components/sqm-text-span/sqm-text-span-view.js +1 -1
  96. package/dist/collection/components/sqm-user-attribute/UserAttribute.stories.js +43 -0
  97. package/dist/collection/components/sqm-user-attribute/sqm-user-attribute-view.js +19 -0
  98. package/dist/collection/components/sqm-user-attribute/sqm-user-attribute.js +175 -0
  99. package/dist/collection/components/sqm-user-attribute/useUserAttribute.js +30 -0
  100. package/dist/collection/components/sqm-widget-verification/sqm-email-verification/useEmailVerification.js +19 -9
  101. package/dist/collection/components/sqm-widget-verification/useWidgetVerification.js +5 -1
  102. package/dist/collection/components/tax-and-cash/data.js +1 -0
  103. package/dist/collection/components/tax-and-cash/sqm-banking-info-form/formDefinitions.js +19 -1
  104. package/dist/collection/components/tax-and-cash/sqm-banking-info-form/sqm-banking-info-form.js +50 -0
  105. package/dist/collection/components/tax-and-cash/sqm-indirect-tax-form/sqm-indirect-tax-form.js +4 -4
  106. package/dist/collection/components/tax-and-cash/sqm-payout-details-card/sqm-payout-details-card.js +2 -2
  107. package/dist/collection/components/tax-and-cash/sqm-tax-and-cash/sqm-tax-and-cash.js +65 -7
  108. package/dist/collection/components/tax-and-cash/sqm-tax-and-cash/useTaxAndCash.js +49 -3
  109. package/dist/collection/components/tax-and-cash/sqm-tax-and-cash-dashboard/sqm-tax-and-cash-dashboard.js +2 -2
  110. package/dist/esm/{ShadowViewAddon-78b791d2.js → ShadowViewAddon-e115fa1c.js} +435 -34
  111. package/dist/esm/{data-33c16dff.js → data-8698cbc6.js} +2 -1
  112. package/dist/esm/{global-39f55ec2.js → global-75e96214.js} +3126 -3177
  113. package/dist/esm/{index.module-cede12c6.js → index.module-02cb914c.js} +150 -153
  114. package/dist/esm/{keys-d7c5c851.js → keys-1054056a.js} +1 -1
  115. package/dist/esm/loader.js +3 -3
  116. package/dist/esm/mint-components.js +3 -3
  117. package/dist/esm/{re-render-7a0c7976.js → re-render-bf46ba54.js} +1 -1
  118. package/dist/esm/sqm-banking-info-form_10.entry.js +42 -301
  119. package/dist/esm/{sqm-big-stat_46.entry.js → sqm-big-stat_47.entry.js} +421 -48
  120. package/dist/esm/sqm-close-button.entry.js +1 -1
  121. package/dist/esm/sqm-code-verification.entry.js +5 -5
  122. package/dist/esm/sqm-context-router.entry.js +1 -1
  123. package/dist/esm/sqm-email-verification_2.entry.js +61 -39
  124. package/dist/esm/sqm-empty_4.entry.js +3 -3
  125. package/dist/esm/sqm-google-sign-in.entry.js +1 -1
  126. package/dist/esm/sqm-graphql-client-provider.entry.js +1 -1
  127. package/dist/esm/sqm-instant-access-registration.entry.js +3 -3
  128. package/dist/esm/{sqm-lead-checkbox-field-view-7cee2b4e.js → sqm-lead-checkbox-field-view-bfafee56.js} +1 -1
  129. package/dist/esm/sqm-lead-checkbox-field.entry.js +4 -4
  130. package/dist/esm/{sqm-lead-input-field-view-11a4f9a9.js → sqm-lead-input-field-view-b945edf4.js} +1 -1
  131. package/dist/esm/sqm-lead-input-field.entry.js +4 -4
  132. package/dist/esm/sqm-leaderboard-rank.entry.js +2 -2
  133. package/dist/esm/sqm-logout-current-user.entry.js +1 -1
  134. package/dist/esm/{sqm-navigation-sidebar-item-view-48e7e0d3.js → sqm-navigation-sidebar-item-view-8d98fcf3.js} +1 -1
  135. package/dist/esm/sqm-navigation-sidebar-item.entry.js +2 -2
  136. package/dist/esm/sqm-navigation-sidebar.entry.js +1 -1
  137. package/dist/esm/sqm-pagination_3.entry.js +3 -3
  138. package/dist/esm/{sqm-partner-info-modal-view-b3c33bc3.js → sqm-partner-info-modal-view-d6f3a215.js} +9 -3
  139. package/dist/esm/sqm-password-field.entry.js +2 -2
  140. package/dist/esm/sqm-popup-container.entry.js +1 -1
  141. package/dist/esm/{sqm-portal-container-view-a8c708cd.js → sqm-portal-container-view-200c9df8.js} +6 -7
  142. package/dist/esm/{sqm-portal-email-verification-view-33f5c108.js → sqm-portal-email-verification-view-fde1eb35.js} +2 -2
  143. package/dist/esm/sqm-portal-email-verification.entry.js +4 -4
  144. package/dist/esm/sqm-portal-forgot-password_6.entry.js +8 -8
  145. package/dist/esm/sqm-portal-logout.entry.js +1 -1
  146. package/dist/esm/{sqm-portal-profile-view-88fd6a93.js → sqm-portal-profile-view-2018590a.js} +2 -2
  147. package/dist/esm/sqm-portal-profile.entry.js +5 -5
  148. package/dist/esm/sqm-portal-protected-route.entry.js +1 -1
  149. package/dist/esm/{sqm-portal-registration-form-view-9bf30b56.js → sqm-portal-registration-form-view-79265df5.js} +1 -1
  150. package/dist/esm/{sqm-portal-reset-password-view-f8d1689c.js → sqm-portal-reset-password-view-f84c04cf.js} +1 -1
  151. package/dist/esm/sqm-portal-reset-password.entry.js +3 -3
  152. package/dist/esm/{sqm-portal-verify-email-view-0b70c1b1.js → sqm-portal-verify-email-view-590f964b.js} +2 -2
  153. package/dist/esm/sqm-qr-code.entry.js +2 -2
  154. package/dist/esm/sqm-referral-table_11.entry.js +33 -15
  155. package/dist/esm/sqm-rewards-table-customer-note-cell.entry.js +1 -1
  156. package/dist/esm/sqm-rewards-table-customer-note-column.entry.js +2 -2
  157. package/dist/esm/sqm-rewards-table_9.entry.js +35 -14
  158. package/dist/esm/sqm-stencilbook.entry.js +721 -343
  159. package/dist/esm/sqm-tab.entry.js +2 -2
  160. package/dist/esm/sqm-tabs.entry.js +3 -3
  161. package/dist/esm/{sqm-text-span-view-4db9e33f.js → sqm-text-span-view-72f43dff.js} +1 -1
  162. package/dist/esm/sqm-text-span.entry.js +1 -1
  163. package/dist/esm/{sqm-user-info-form-view-e732dc4d.js → sqm-user-info-form-view-e1ba6009.js} +4 -386
  164. package/dist/esm/sqm-widget-verification-controller.entry.js +2 -2
  165. package/dist/esm/{useChildElements-c26d7347.js → useChildElements-06937df7.js} +1 -1
  166. package/dist/esm/{usePayoutStatus-fa504d49.js → useIndirectTaxForm-b2888ea5.js} +291 -3
  167. package/dist/esm/{useInstantAccessRegistration-e2392f42.js → useInstantAccessRegistration-69c9ffe0.js} +2 -2
  168. package/dist/esm/{useLeadFormState-9099c8d4.js → useLeadFormState-332b2796.js} +2 -2
  169. package/dist/esm/{usePortalRegistrationForm-5844032a.js → usePortalRegistrationForm-3a1f36a2.js} +2 -2
  170. package/dist/esm/{useReferralCodes-3cde72d4.js → useReferralCodes-25f8b792.js} +1 -1
  171. package/dist/esm/{useReferralTable-35e6d4c1.js → useReferralTable-03d32c6f.js} +3 -3
  172. package/dist/esm/{useRegistrationFormState-1813bdef.js → useRegistrationFormState-aa44cfff.js} +1 -1
  173. package/dist/esm/{useVerificationEmail-cb3d51e3.js → useVerificationEmail-9f2c0bab.js} +1 -1
  174. package/dist/esm/{utilities-c9e730ed.js → utilities-cbd8f2eb.js} +1 -1
  175. package/dist/esm/utils-4f5cd04c.js +467 -0
  176. package/dist/esm-es5/ShadowViewAddon-e115fa1c.js +1 -0
  177. package/dist/esm-es5/data-8698cbc6.js +1 -0
  178. package/dist/esm-es5/global-75e96214.js +271 -0
  179. package/dist/esm-es5/index.module-02cb914c.js +1 -0
  180. package/dist/esm-es5/{keys-d7c5c851.js → keys-1054056a.js} +1 -1
  181. package/dist/esm-es5/loader.js +1 -1
  182. package/dist/esm-es5/mint-components.js +1 -1
  183. package/dist/esm-es5/{re-render-7a0c7976.js → re-render-bf46ba54.js} +1 -1
  184. package/dist/esm-es5/sqm-banking-info-form_10.entry.js +1 -1
  185. package/dist/esm-es5/sqm-big-stat_47.entry.js +1 -0
  186. package/dist/esm-es5/sqm-close-button.entry.js +1 -1
  187. package/dist/esm-es5/sqm-code-verification.entry.js +1 -1
  188. package/dist/esm-es5/sqm-context-router.entry.js +1 -1
  189. package/dist/esm-es5/sqm-email-verification_2.entry.js +1 -1
  190. package/dist/esm-es5/sqm-empty_4.entry.js +1 -1
  191. package/dist/esm-es5/sqm-google-sign-in.entry.js +1 -1
  192. package/dist/esm-es5/sqm-graphql-client-provider.entry.js +1 -1
  193. package/dist/esm-es5/sqm-instant-access-registration.entry.js +1 -1
  194. package/dist/esm-es5/{sqm-lead-checkbox-field-view-7cee2b4e.js → sqm-lead-checkbox-field-view-bfafee56.js} +1 -1
  195. package/dist/esm-es5/sqm-lead-checkbox-field.entry.js +1 -1
  196. package/dist/esm-es5/{sqm-lead-input-field-view-11a4f9a9.js → sqm-lead-input-field-view-b945edf4.js} +1 -1
  197. package/dist/esm-es5/sqm-lead-input-field.entry.js +1 -1
  198. package/dist/esm-es5/sqm-leaderboard-rank.entry.js +1 -1
  199. package/dist/esm-es5/sqm-logout-current-user.entry.js +1 -1
  200. package/dist/esm-es5/{sqm-navigation-sidebar-item-view-48e7e0d3.js → sqm-navigation-sidebar-item-view-8d98fcf3.js} +1 -1
  201. package/dist/esm-es5/sqm-navigation-sidebar-item.entry.js +1 -1
  202. package/dist/esm-es5/sqm-navigation-sidebar.entry.js +1 -1
  203. package/dist/esm-es5/sqm-pagination_3.entry.js +1 -1
  204. package/dist/esm-es5/sqm-partner-info-modal-view-d6f3a215.js +1 -0
  205. package/dist/esm-es5/sqm-password-field.entry.js +1 -1
  206. package/dist/esm-es5/sqm-popup-container.entry.js +1 -1
  207. package/dist/esm-es5/sqm-portal-container-view-200c9df8.js +1 -0
  208. package/dist/esm-es5/{sqm-portal-email-verification-view-33f5c108.js → sqm-portal-email-verification-view-fde1eb35.js} +1 -1
  209. package/dist/esm-es5/sqm-portal-email-verification.entry.js +1 -1
  210. package/dist/esm-es5/sqm-portal-forgot-password_6.entry.js +1 -1
  211. package/dist/esm-es5/sqm-portal-logout.entry.js +1 -1
  212. package/dist/esm-es5/{sqm-portal-profile-view-88fd6a93.js → sqm-portal-profile-view-2018590a.js} +1 -1
  213. package/dist/esm-es5/sqm-portal-profile.entry.js +1 -1
  214. package/dist/esm-es5/sqm-portal-protected-route.entry.js +1 -1
  215. package/dist/esm-es5/{sqm-portal-registration-form-view-9bf30b56.js → sqm-portal-registration-form-view-79265df5.js} +1 -1
  216. package/dist/esm-es5/{sqm-portal-reset-password-view-f8d1689c.js → sqm-portal-reset-password-view-f84c04cf.js} +1 -1
  217. package/dist/esm-es5/sqm-portal-reset-password.entry.js +1 -1
  218. package/dist/esm-es5/{sqm-portal-verify-email-view-0b70c1b1.js → sqm-portal-verify-email-view-590f964b.js} +1 -1
  219. package/dist/esm-es5/sqm-qr-code.entry.js +1 -1
  220. package/dist/esm-es5/sqm-referral-table_11.entry.js +1 -1
  221. package/dist/esm-es5/sqm-rewards-table-customer-note-cell.entry.js +1 -1
  222. package/dist/esm-es5/sqm-rewards-table-customer-note-column.entry.js +1 -1
  223. package/dist/esm-es5/sqm-rewards-table_9.entry.js +1 -1
  224. package/dist/esm-es5/sqm-stencilbook.entry.js +1 -1
  225. package/dist/esm-es5/sqm-tab.entry.js +1 -1
  226. package/dist/esm-es5/sqm-tabs.entry.js +1 -1
  227. package/dist/esm-es5/{sqm-text-span-view-4db9e33f.js → sqm-text-span-view-72f43dff.js} +1 -1
  228. package/dist/esm-es5/sqm-text-span.entry.js +1 -1
  229. package/dist/esm-es5/sqm-user-info-form-view-e1ba6009.js +1 -0
  230. package/dist/esm-es5/sqm-widget-verification-controller.entry.js +1 -1
  231. package/dist/esm-es5/{useChildElements-c26d7347.js → useChildElements-06937df7.js} +1 -1
  232. package/dist/esm-es5/useIndirectTaxForm-b2888ea5.js +6 -0
  233. package/dist/esm-es5/{useInstantAccessRegistration-e2392f42.js → useInstantAccessRegistration-69c9ffe0.js} +1 -1
  234. package/dist/esm-es5/{useLeadFormState-9099c8d4.js → useLeadFormState-332b2796.js} +1 -1
  235. package/dist/esm-es5/{usePortalRegistrationForm-5844032a.js → usePortalRegistrationForm-3a1f36a2.js} +1 -1
  236. package/dist/esm-es5/{useReferralCodes-3cde72d4.js → useReferralCodes-25f8b792.js} +1 -1
  237. package/dist/esm-es5/{useReferralTable-35e6d4c1.js → useReferralTable-03d32c6f.js} +1 -1
  238. package/dist/esm-es5/{useRegistrationFormState-1813bdef.js → useRegistrationFormState-aa44cfff.js} +1 -1
  239. package/dist/esm-es5/{useVerificationEmail-cb3d51e3.js → useVerificationEmail-9f2c0bab.js} +1 -1
  240. package/dist/esm-es5/{utilities-c9e730ed.js → utilities-cbd8f2eb.js} +1 -1
  241. package/dist/esm-es5/utils-4f5cd04c.js +1 -0
  242. package/dist/mint-components/mint-components.esm.js +1 -1
  243. package/dist/mint-components/mint-components.js +1 -1
  244. package/dist/mint-components/{p-52748a87.system.entry.js → p-025ddad2.system.entry.js} +1 -1
  245. package/dist/mint-components/{p-5c9d030a.system.entry.js → p-02c0f88e.system.entry.js} +1 -1
  246. package/dist/mint-components/{p-140e6a15.system.js → p-02e2b13b.system.js} +1 -1
  247. package/dist/mint-components/{p-095b7128.js → p-0766438e.js} +1 -1
  248. package/dist/mint-components/{p-86381dc7.system.js → p-0815b973.system.js} +1 -1
  249. package/dist/mint-components/{p-37658fec.entry.js → p-092c2606.entry.js} +1 -1
  250. package/dist/mint-components/{p-6a4496b3.system.entry.js → p-099ce3d5.system.entry.js} +1 -1
  251. package/dist/mint-components/p-0a6489fa.entry.js +1 -0
  252. package/dist/mint-components/p-0afa6148.js +1 -0
  253. package/dist/mint-components/p-0b1e90fe.system.js +1 -0
  254. package/dist/mint-components/{p-3756d0d1.system.entry.js → p-0b32e1d4.system.entry.js} +1 -1
  255. package/dist/mint-components/{p-9b33e2a7.system.js → p-1317cc92.system.js} +1 -1
  256. package/dist/mint-components/{p-45475cf9.system.entry.js → p-13bb56a8.system.entry.js} +1 -1
  257. package/dist/mint-components/{p-731c4d33.entry.js → p-13d1b10d.entry.js} +1 -1
  258. package/dist/mint-components/{p-438f6702.js → p-13d8ecad.js} +152 -152
  259. package/dist/mint-components/{p-9c1b0c8b.entry.js → p-14183edc.entry.js} +1 -1
  260. package/dist/mint-components/{p-3461a8cb.entry.js → p-1599a178.entry.js} +1 -1
  261. package/dist/mint-components/p-1b0326d1.entry.js +1 -0
  262. package/dist/mint-components/p-1d398dbc.entry.js +11 -0
  263. package/dist/mint-components/p-1d86895f.system.js +1 -0
  264. package/dist/mint-components/p-1e6a2945.js +1 -0
  265. package/dist/mint-components/p-1efb42e2.js +499 -0
  266. package/dist/mint-components/p-1f387c7b.system.js +1 -0
  267. package/dist/mint-components/{p-21e7079a.system.entry.js → p-209157a9.system.entry.js} +1 -1
  268. package/dist/mint-components/p-2190dc73.system.js +1 -0
  269. package/dist/mint-components/{p-60085f20.system.entry.js → p-24f1d342.system.entry.js} +1 -1
  270. package/dist/mint-components/{p-a67f2ccf.entry.js → p-27daf264.entry.js} +1 -1
  271. package/dist/mint-components/{p-991f60fc.entry.js → p-29bc5f50.entry.js} +2 -2
  272. package/dist/mint-components/p-2d3f7b76.system.entry.js +1 -0
  273. package/dist/mint-components/p-2ed13619.entry.js +1 -0
  274. package/dist/mint-components/{p-62e1c8b2.system.entry.js → p-30cfe3e3.system.entry.js} +1 -1
  275. package/dist/mint-components/{p-6b1a6b0c.system.js → p-31815fb6.system.js} +1 -1
  276. package/dist/mint-components/{p-9bd53e4d.system.entry.js → p-3354cc75.system.entry.js} +1 -1
  277. package/dist/mint-components/p-335a5736.entry.js +1 -0
  278. package/dist/mint-components/{p-dbdb2a46.system.entry.js → p-33ca28ba.system.entry.js} +1 -1
  279. package/dist/mint-components/{p-63102c04.entry.js → p-3596e241.entry.js} +5 -5
  280. package/dist/mint-components/{p-28e0062c.system.js → p-376c7608.system.js} +1 -1
  281. package/dist/mint-components/p-37e24621.system.entry.js +1 -0
  282. package/dist/mint-components/{p-0c43b6ff.entry.js → p-38d04e4b.entry.js} +1 -1
  283. package/dist/mint-components/{p-857a2d77.js → p-3a41b39c.js} +1 -1
  284. package/dist/mint-components/{p-f972e5c9.entry.js → p-3bbc0db2.entry.js} +1 -1
  285. package/dist/mint-components/{p-9e43f1eb.entry.js → p-432a44de.entry.js} +3 -2
  286. package/dist/mint-components/{p-3c88d2ed.js → p-45230a44.js} +2 -2
  287. package/dist/mint-components/p-4691e9d5.system.js +1 -0
  288. package/dist/mint-components/{p-1d49dddc.entry.js → p-4d73a616.entry.js} +1 -1
  289. package/dist/mint-components/{p-160828b4.entry.js → p-4e3db52b.entry.js} +1 -1
  290. package/dist/mint-components/{p-bcadd021.js → p-4eaa3eb7.js} +1 -1
  291. package/dist/mint-components/{p-62212b9a.entry.js → p-4eadbd5b.entry.js} +1 -1
  292. package/dist/mint-components/{p-1bff74c0.js → p-4f9dc974.js} +1 -1
  293. package/dist/mint-components/{p-247cfbdc.system.entry.js → p-51ae6716.system.entry.js} +1 -1
  294. package/dist/mint-components/p-56b33268.system.entry.js +1 -0
  295. package/dist/mint-components/p-58c24352.system.js +6 -0
  296. package/dist/mint-components/{p-8ecc8875.js → p-5c52100b.js} +2 -1
  297. package/dist/mint-components/{p-7547180f.system.js → p-5fdf0286.system.js} +1 -1
  298. package/dist/mint-components/{p-f11d29fd.entry.js → p-60b1f3d9.entry.js} +1 -1
  299. package/dist/mint-components/{p-95aaf35a.system.entry.js → p-623a0a0b.system.entry.js} +1 -1
  300. package/dist/mint-components/{p-f368f04a.system.js → p-686dd5eb.system.js} +1 -1
  301. package/dist/mint-components/{p-16deb1a9.system.entry.js → p-6b4e5d94.system.entry.js} +1 -1
  302. package/dist/mint-components/{p-c8e45671.system.entry.js → p-6f6c3ac6.system.entry.js} +1 -1
  303. package/dist/mint-components/{p-379cb9f1.system.js → p-7562cd98.system.js} +1 -1
  304. package/dist/mint-components/{p-00463c83.system.js → p-7628e56f.system.js} +1 -1
  305. package/dist/mint-components/{p-f4a57aed.entry.js → p-78e6dc8d.entry.js} +1 -1
  306. package/dist/mint-components/{p-3c333076.js → p-7a091fa7.js} +1 -1
  307. package/dist/mint-components/{p-9d6984e7.entry.js → p-7cbdf341.entry.js} +2 -2
  308. package/dist/mint-components/p-7d2d9ef9.system.js +1 -0
  309. package/dist/mint-components/{p-b5fed7c6.entry.js → p-7ea3f49c.entry.js} +1 -1
  310. package/dist/mint-components/{p-fb4ab5ba.system.entry.js → p-81bc6dca.system.entry.js} +1 -1
  311. package/dist/mint-components/{p-19293c16.entry.js → p-84495fb8.entry.js} +1 -1
  312. package/dist/mint-components/{p-691d34f1.system.entry.js → p-86d20b47.system.entry.js} +1 -1
  313. package/dist/mint-components/p-87f86492.js +1 -0
  314. package/dist/mint-components/{p-71561bb2.system.entry.js → p-8899ff38.system.entry.js} +1 -1
  315. package/dist/mint-components/p-8a6531d2.js +1 -0
  316. package/dist/mint-components/p-8ae8968c.js +1 -0
  317. package/dist/mint-components/p-8e148cb0.system.js +271 -0
  318. package/dist/mint-components/p-8f15bf17.entry.js +1 -0
  319. package/dist/mint-components/{p-1b0cbbae.entry.js → p-921eb024.entry.js} +1 -1
  320. package/dist/mint-components/{p-2f4d8ab8.system.entry.js → p-925aa740.system.entry.js} +1 -1
  321. package/dist/mint-components/p-99eecdcb.system.entry.js +1 -0
  322. package/dist/mint-components/{p-b5c0bad5.system.entry.js → p-9a15cd5a.system.entry.js} +1 -1
  323. package/dist/mint-components/p-9c1f5317.system.js +1 -0
  324. package/dist/mint-components/p-9f48640d.js +1 -0
  325. package/dist/mint-components/p-a38eece5.system.entry.js +1 -0
  326. package/dist/mint-components/{p-df88dcaa.system.js → p-a4825ec2.system.js} +1 -1
  327. package/dist/mint-components/p-a49d9288.entry.js +1 -0
  328. package/dist/mint-components/{p-357040e6.system.entry.js → p-ab59c5eb.system.entry.js} +1 -1
  329. package/dist/mint-components/{p-8474aa63.js → p-abd717d4.js} +1 -1
  330. package/dist/mint-components/p-abe9f5b1.js +99 -0
  331. package/dist/mint-components/p-ae2f610e.system.js +1 -0
  332. package/dist/mint-components/p-b222bace.system.entry.js +1 -0
  333. package/dist/mint-components/{p-d355336b.system.js → p-b2ad3fca.system.js} +1 -1
  334. package/dist/mint-components/{p-5dc9e95b.entry.js → p-b3309d9b.entry.js} +1 -1
  335. package/dist/mint-components/{p-45e2a83a.js → p-b3ad957c.js} +1 -1
  336. package/dist/mint-components/p-b419f9ac.entry.js +299 -0
  337. package/dist/mint-components/{p-567a5ded.js → p-b871d158.js} +1 -1
  338. package/dist/mint-components/p-b96ed8eb.js +1 -0
  339. package/dist/mint-components/p-badf28bb.system.js +1 -0
  340. package/dist/mint-components/{p-32d078a3.js → p-bb0b5e4b.js} +1 -1
  341. package/dist/mint-components/{p-608da224.entry.js → p-bcfdb510.entry.js} +1 -1
  342. package/dist/mint-components/p-be6a0dee.system.js +1 -0
  343. package/dist/mint-components/{p-a7f72a66.js → p-bee4af5d.js} +1 -1
  344. package/dist/mint-components/{p-092db51a.js → p-bf9ab2d3.js} +1 -1
  345. package/dist/mint-components/{p-3c555674.js → p-c0a85e22.js} +1 -1
  346. package/dist/mint-components/{p-fe944f94.system.entry.js → p-c0f8f977.system.entry.js} +1 -1
  347. package/dist/mint-components/p-c41d536d.entry.js +1 -0
  348. package/dist/mint-components/{p-77117f6c.system.js → p-c66e5217.system.js} +1 -1
  349. package/dist/mint-components/{p-50d959bd.js → p-c813ec64.js} +1 -1
  350. package/dist/mint-components/p-cdabd9de.system.js +1 -0
  351. package/dist/mint-components/p-cfc35705.system.entry.js +1 -0
  352. package/dist/mint-components/{p-8f9c1387.js → p-cfea215d.js} +1 -1
  353. package/dist/mint-components/p-d08408b3.entry.js +1 -0
  354. package/dist/mint-components/{p-a86ce218.system.js → p-d284ae70.system.js} +1 -1
  355. package/dist/mint-components/{p-998c989a.system.entry.js → p-d34564f8.system.entry.js} +1 -1
  356. package/dist/mint-components/{p-e1292288.system.entry.js → p-d3b1ab20.system.entry.js} +1 -1
  357. package/dist/mint-components/p-db6bf7cf.system.entry.js +1 -0
  358. package/dist/mint-components/{p-b451970a.system.entry.js → p-df897432.system.entry.js} +1 -1
  359. package/dist/mint-components/p-e30abc44.js +1 -0
  360. package/dist/mint-components/{p-3218bb1d.entry.js → p-e506bf7f.entry.js} +1 -1
  361. package/dist/mint-components/{p-e4dbca9a.system.js → p-e651593c.system.js} +1 -1
  362. package/dist/mint-components/{p-ecdbe09b.system.entry.js → p-e6de31a7.system.entry.js} +1 -1
  363. package/dist/mint-components/{p-4723526d.js → p-e8e7af06.js} +1 -1
  364. package/dist/mint-components/{p-36395228.system.js → p-e920c95c.system.js} +1 -1
  365. package/dist/mint-components/{p-0d75a207.js → p-eae44b42.js} +1 -1
  366. package/dist/mint-components/p-ebc519bc.system.js +1 -0
  367. package/dist/mint-components/{p-886fb141.entry.js → p-ef32fa8f.entry.js} +1 -1
  368. package/dist/mint-components/p-f32050f6.system.js +1 -0
  369. package/dist/mint-components/{p-d5a1c979.system.entry.js → p-f6de2e5c.system.entry.js} +1 -1
  370. package/dist/mint-components/{p-7a08d288.system.entry.js → p-fa85ea51.system.entry.js} +1 -1
  371. package/dist/mint-components/p-ff013776.entry.js +9 -0
  372. package/dist/mint-components/p-ffcebe78.entry.js +83 -0
  373. package/dist/types/components/sqm-checkbox-field/sqm-checkbox-field.d.ts +1 -1
  374. package/dist/types/components/sqm-partner-info-modal/PartnerInfoModal.stories.d.ts +2 -0
  375. package/dist/types/components/sqm-partner-info-modal/sqm-partner-info-modal-view.d.ts +1 -0
  376. package/dist/types/components/sqm-partner-info-modal/sqm-partner-info-modal.d.ts +8 -1
  377. package/dist/types/components/sqm-referral-iframe/sqm-referral-iframe-view.d.ts +1 -0
  378. package/dist/types/components/sqm-referral-iframe/sqm-referral-iframe.d.ts +5 -0
  379. package/dist/types/components/sqm-referral-table/TaxAndCashReferralTableRewardsCell.stories.d.ts +16 -0
  380. package/dist/types/components/sqm-rewards-table/TaxAndCashRewardsTableCell.stories.d.ts +18 -7
  381. package/dist/types/components/sqm-share-link/ShareLink.stories.d.ts +9 -0
  382. package/dist/types/components/sqm-share-link/UseShareLink.stories.d.ts +6 -0
  383. package/dist/types/components/sqm-share-link/sqm-share-link-view.d.ts +41 -0
  384. package/dist/types/components/sqm-share-link/sqm-share-link.d.ts +195 -2
  385. package/dist/types/components/sqm-share-link/useShareLink.d.ts +33 -4
  386. package/dist/types/components/sqm-user-attribute/UserAttribute.stories.d.ts +11 -0
  387. package/dist/types/components/sqm-user-attribute/sqm-user-attribute-view.d.ts +8 -0
  388. package/dist/types/components/sqm-user-attribute/sqm-user-attribute.d.ts +45 -0
  389. package/dist/types/components/sqm-user-attribute/useUserAttribute.d.ts +3 -0
  390. package/dist/types/components/tax-and-cash/data.d.ts +2 -0
  391. package/dist/types/components/tax-and-cash/sqm-banking-info-form/formDefinitions.d.ts +6 -0
  392. package/dist/types/components/tax-and-cash/sqm-banking-info-form/sqm-banking-info-form.d.ts +8 -0
  393. package/dist/types/components/tax-and-cash/sqm-banking-info-form/useBankingInfoForm.d.ts +2 -0
  394. package/dist/types/components/tax-and-cash/sqm-tax-and-cash/sqm-tax-and-cash.d.ts +10 -0
  395. package/dist/types/components.d.ts +487 -6
  396. package/dist/types/saasquatch.d.ts +1 -0
  397. package/docs/docs.docx +0 -0
  398. package/docs/raisins.json +1 -1
  399. package/docs/stats.json +122783 -0
  400. package/grapesjs/grapesjs.js +1 -1
  401. package/package.json +2 -2
  402. package/readme.md +60 -1
  403. package/dist/cjs/utils-a8e0bd9b.js +0 -93
  404. package/dist/esm/utils-8267d3d8.js +0 -85
  405. package/dist/esm-es5/ShadowViewAddon-78b791d2.js +0 -1
  406. package/dist/esm-es5/data-33c16dff.js +0 -1
  407. package/dist/esm-es5/global-39f55ec2.js +0 -285
  408. package/dist/esm-es5/index.module-cede12c6.js +0 -1
  409. package/dist/esm-es5/sqm-big-stat_46.entry.js +0 -1
  410. package/dist/esm-es5/sqm-partner-info-modal-view-b3c33bc3.js +0 -1
  411. package/dist/esm-es5/sqm-portal-container-view-a8c708cd.js +0 -1
  412. package/dist/esm-es5/sqm-user-info-form-view-e732dc4d.js +0 -1
  413. package/dist/esm-es5/usePayoutStatus-fa504d49.js +0 -6
  414. package/dist/esm-es5/utils-8267d3d8.js +0 -1
  415. package/dist/mint-components/p-0553e659.js +0 -463
  416. package/dist/mint-components/p-0b2a428f.system.entry.js +0 -1
  417. package/dist/mint-components/p-0fec43e8.system.js +0 -1
  418. package/dist/mint-components/p-16416781.system.entry.js +0 -1
  419. package/dist/mint-components/p-1c413a06.system.js +0 -1
  420. package/dist/mint-components/p-28fe7357.system.entry.js +0 -1
  421. package/dist/mint-components/p-3181e54a.entry.js +0 -1
  422. package/dist/mint-components/p-36b91873.entry.js +0 -11
  423. package/dist/mint-components/p-370e0d75.js +0 -1
  424. package/dist/mint-components/p-38dc2f60.entry.js +0 -1
  425. package/dist/mint-components/p-440d3788.entry.js +0 -133
  426. package/dist/mint-components/p-4c47beb0.system.js +0 -1
  427. package/dist/mint-components/p-55627a5c.entry.js +0 -1
  428. package/dist/mint-components/p-5e26014d.system.js +0 -1
  429. package/dist/mint-components/p-63c299f1.system.js +0 -1
  430. package/dist/mint-components/p-64f56cc9.system.js +0 -285
  431. package/dist/mint-components/p-6d15ce09.system.entry.js +0 -1
  432. package/dist/mint-components/p-70a90ad8.system.entry.js +0 -1
  433. package/dist/mint-components/p-70e34ae1.system.js +0 -6
  434. package/dist/mint-components/p-7a744cb2.entry.js +0 -9
  435. package/dist/mint-components/p-7e36a1ff.js +0 -1
  436. package/dist/mint-components/p-837c4cf8.js +0 -1
  437. package/dist/mint-components/p-86a70151.entry.js +0 -1
  438. package/dist/mint-components/p-8b258a3e.system.js +0 -1
  439. package/dist/mint-components/p-96e4e6a4.entry.js +0 -1
  440. package/dist/mint-components/p-987a54e2.system.js +0 -1
  441. package/dist/mint-components/p-996eb820.entry.js +0 -1
  442. package/dist/mint-components/p-a8891ebd.js +0 -1
  443. package/dist/mint-components/p-a8ecdc44.system.js +0 -1
  444. package/dist/mint-components/p-b1b8e629.system.js +0 -1
  445. package/dist/mint-components/p-b2bde2f5.entry.js +0 -1
  446. package/dist/mint-components/p-b699f76e.system.js +0 -1
  447. package/dist/mint-components/p-b6a1e2ac.js +0 -1
  448. package/dist/mint-components/p-c7535e70.system.entry.js +0 -1
  449. package/dist/mint-components/p-c84a2512.system.js +0 -1
  450. package/dist/mint-components/p-ce11858c.js +0 -1
  451. package/dist/mint-components/p-d01949f7.system.entry.js +0 -1
  452. package/dist/mint-components/p-d20188db.js +0 -1
  453. package/dist/mint-components/p-d43c728e.entry.js +0 -291
  454. package/dist/mint-components/p-d6714617.entry.js +0 -1
  455. package/dist/mint-components/p-dd5d8095.js +0 -1
  456. package/dist/mint-components/p-e95402dc.js +0 -49
  457. package/dist/mint-components/p-e9e05970.system.entry.js +0 -1
  458. package/dist/mint-components/p-ed3ae5ba.system.js +0 -1
  459. package/dist/mint-components/p-ee0f1cf1.system.js +0 -1
  460. package/shoelace/assets/icons/twitter-x.svg +0 -4
@@ -1,16 +1,15 @@
1
- import { useEngagementMedium, useMutation, useParentValue, useProgramId, useQuery, useUserIdentity, } from "@saasquatch/component-boilerplate";
2
- import { useState } from "@saasquatch/universal-hooks";
1
+ import { useEngagementMedium, useLazyQuery, useMutation, useParentValue, useProgramId, useQuery, useRefreshDispatcher, useUserIdentity, } from "@saasquatch/component-boilerplate";
2
+ import { useRef, useState } from "@saasquatch/universal-hooks";
3
3
  import { gql } from "graphql-request";
4
4
  import { REFERRAL_CODES_NAMESPACE, SET_CODE_COPIED, } from "../sqm-referral-codes/useReferralCodes";
5
+ const MAX_EDITS = 5;
6
+ const CHARACTER_LIMIT = 15;
7
+ const MIN_CHARACTERS = 3;
5
8
  const MessageLinkQuery = gql `
6
- query ($programId: ID, $engagementMedium: UserEngagementMedium!) {
9
+ query ($programId: ID) {
7
10
  user: viewer {
8
11
  ... on User {
9
- shareLink(
10
- programId: $programId
11
- engagementMedium: $engagementMedium
12
- shareMedium: DIRECT
13
- )
12
+ shareLink(programId: $programId)
14
13
  }
15
14
  }
16
15
  }
@@ -20,19 +19,115 @@ const WIDGET_ENGAGEMENT_EVENT = gql `
20
19
  createUserAnalyticsEvent(eventMeta: $eventMeta)
21
20
  }
22
21
  `;
22
+ const ADD_SHARE_LINK_CODE = gql `
23
+ mutation ($addShareLinkCodeInput: AddShareLinkCodeInput!) {
24
+ addShareLinkCode(addShareLinkCodeInput: $addShareLinkCodeInput) {
25
+ linkCode {
26
+ linkCode
27
+ shortUrl
28
+ referralCode {
29
+ code
30
+ }
31
+ }
32
+ }
33
+ }
34
+ `;
35
+ const VALIDATE_LINK_CODE = gql `
36
+ query validateLinkCode($linkCode: String!) {
37
+ validateLinkCode(linkCode: $linkCode) {
38
+ valid
39
+ invalidReason
40
+ }
41
+ }
42
+ `;
43
+ const GET_LINK_DOMAIN = gql `
44
+ query getLinkDomain {
45
+ tenantSettings {
46
+ primaryLinkDomain {
47
+ host
48
+ }
49
+ }
50
+ }
51
+ `;
52
+ const SHARE_LINK_EDIT_COUNT = gql `
53
+ query shareLinkEditCount {
54
+ viewer {
55
+ ... on User {
56
+ shareLinkCodes {
57
+ totalCount
58
+ data {
59
+ isVanity
60
+ }
61
+ }
62
+ }
63
+ }
64
+ }
65
+ `;
66
+ function parseShareUrl(url) {
67
+ try {
68
+ const parsed = new URL(url);
69
+ return {
70
+ url: parsed.origin + parsed.pathname,
71
+ domain: parsed.origin + "/",
72
+ path: parsed.pathname.slice(1),
73
+ };
74
+ }
75
+ catch {
76
+ return { url, domain: url, path: "" };
77
+ }
78
+ }
23
79
  export function useShareLink(props) {
24
- var _a, _b;
80
+ var _a, _b, _c, _d, _e, _f, _g;
25
81
  const { programId = useProgramId() } = props;
26
82
  const user = useUserIdentity();
27
83
  const engagementMedium = useEngagementMedium();
28
84
  const contextData = useParentValue(REFERRAL_CODES_NAMESPACE);
29
- const { data } = useQuery(MessageLinkQuery, { programId, engagementMedium }, !(user === null || user === void 0 ? void 0 : user.jwt) || !!props.linkOverride || (contextData === null || contextData === void 0 ? void 0 : contextData.shareLink) !== undefined);
85
+ const { data, refetch } = useQuery(MessageLinkQuery, { programId }, !(user === null || user === void 0 ? void 0 : user.jwt) || !!props.linkOverride || (contextData === null || contextData === void 0 ? void 0 : contextData.shareLink) !== undefined);
30
86
  const [sendLoadEvent] = useMutation(WIDGET_ENGAGEMENT_EVENT);
31
- const [setCopied, copiedRes] = useMutation(SET_CODE_COPIED);
32
- const copyString = (_b = ((contextData === null || contextData === void 0 ? void 0 : contextData.shareLink) || ((_a = data === null || data === void 0 ? void 0 : data.user) === null || _a === void 0 ? void 0 : _a.shareLink))) !== null && _b !== void 0 ? _b :
87
+ const [setCopied] = useMutation(SET_CODE_COPIED);
88
+ const [addShareLinkCode, { loading: isSaving }] = useMutation(ADD_SHARE_LINK_CODE);
89
+ const [validateLinkCode] = useLazyQuery(VALIDATE_LINK_CODE);
90
+ const { refresh } = useRefreshDispatcher();
91
+ const { data: linkDomainData } = useQuery(GET_LINK_DOMAIN, {}, !(user === null || user === void 0 ? void 0 : user.jwt) || !props.allowCustomization);
92
+ const { data: editCountData, refetch: refetchEditCount } = useQuery(SHARE_LINK_EDIT_COUNT, {}, !(user === null || user === void 0 ? void 0 : user.jwt) || !props.allowCustomization);
93
+ const { url: copyString, domain: domainPrefix, path: pathSuffix, } = parseShareUrl((_b = ((contextData === null || contextData === void 0 ? void 0 : contextData.shareLink) || ((_a = data === null || data === void 0 ? void 0 : data.user) === null || _a === void 0 ? void 0 : _a.shareLink))) !== null && _b !== void 0 ? _b :
33
94
  // Shown during loading
34
- "...";
95
+ "...");
35
96
  const [open, setOpen] = useState(false);
97
+ const [isEditing, setIsEditing] = useState(false);
98
+ const [editValue, setEditValue] = useState("");
99
+ const [validationError, setValidationError] = useState(null);
100
+ const [isValidating, setIsValidating] = useState(false);
101
+ const debounceTimerRef = useRef(undefined);
102
+ const latestValidationValueRef = useRef("");
103
+ const hasPrimaryLinkDomain = ((_c = linkDomainData === null || linkDomainData === void 0 ? void 0 : linkDomainData.tenantSettings) === null || _c === void 0 ? void 0 : _c.primaryLinkDomain) != null;
104
+ const customizeDisabled = !hasPrimaryLinkDomain;
105
+ const vanityCount = (_g = (_f = (_e = (_d = editCountData === null || editCountData === void 0 ? void 0 : editCountData.viewer) === null || _d === void 0 ? void 0 : _d.shareLinkCodes) === null || _e === void 0 ? void 0 : _e.data) === null || _f === void 0 ? void 0 : _f.filter((code) => code.isVanity).length) !== null && _g !== void 0 ? _g : 0;
106
+ const editCount = vanityCount;
107
+ const editsRemaining = Math.max(0, MAX_EDITS - editCount);
108
+ const limitReached = editsRemaining <= 0;
109
+ function mapErrorCodeToInfo(errorCode) {
110
+ if (!errorCode)
111
+ return null;
112
+ const errorMap = {
113
+ EXISTING_CODE_CONFLICT: {
114
+ code: "EXISTING_CODE_CONFLICT",
115
+ title: props.linkTakenErrorTitle,
116
+ description: props.linkTakenErrorDescription,
117
+ },
118
+ INVALID_CHARACTER: {
119
+ code: "INVALID_CHARACTER",
120
+ title: props.invalidCharactersErrorTitle,
121
+ description: props.invalidCharactersErrorDescription,
122
+ },
123
+ BLOCKED_WORD: {
124
+ code: "BLOCKED_WORD",
125
+ title: props.restrictedWordsErrorTitle,
126
+ description: props.restrictedWordsErrorDescription,
127
+ },
128
+ };
129
+ return errorMap[errorCode];
130
+ }
36
131
  async function onClick() {
37
132
  if (contextData) {
38
133
  await setCopied({ referralCode: contextData.referralCode });
@@ -56,5 +151,123 @@ export function useShareLink(props) {
56
151
  },
57
152
  });
58
153
  }
59
- return { ...props, onClick, open, copyString: copyString };
154
+ function onCustomizeClick() {
155
+ if (limitReached || customizeDisabled)
156
+ return;
157
+ setIsEditing(true);
158
+ setEditValue(editCount === 0 ? "" : pathSuffix);
159
+ setValidationError(null);
160
+ }
161
+ function onEditValueChange(value) {
162
+ const trimmed = value.slice(0, CHARACTER_LIMIT);
163
+ setEditValue(trimmed);
164
+ setValidationError(null);
165
+ latestValidationValueRef.current = trimmed;
166
+ if (debounceTimerRef.current)
167
+ clearTimeout(debounceTimerRef.current);
168
+ if (!trimmed || trimmed.length < MIN_CHARACTERS) {
169
+ setIsValidating(false);
170
+ return;
171
+ }
172
+ setIsValidating(true);
173
+ debounceTimerRef.current = setTimeout(async () => {
174
+ var _a, _b;
175
+ const requestedValue = trimmed;
176
+ try {
177
+ const result = await validateLinkCode({ linkCode: requestedValue });
178
+ // Discard stale responses if the user has continued typing
179
+ if (latestValidationValueRef.current !== requestedValue)
180
+ return;
181
+ if (!((_a = result === null || result === void 0 ? void 0 : result.validateLinkCode) === null || _a === void 0 ? void 0 : _a.valid)) {
182
+ const reason = (_b = result === null || result === void 0 ? void 0 : result.validateLinkCode) === null || _b === void 0 ? void 0 : _b.invalidReason;
183
+ setValidationError(mapErrorCodeToInfo(reason));
184
+ }
185
+ }
186
+ catch {
187
+ // Validation query failed — don't block the user
188
+ if (latestValidationValueRef.current !== requestedValue)
189
+ return;
190
+ }
191
+ if (latestValidationValueRef.current === requestedValue) {
192
+ setIsValidating(false);
193
+ }
194
+ }, 500);
195
+ }
196
+ async function onSave() {
197
+ var _a, _b;
198
+ if (!editValue ||
199
+ editValue.length < MIN_CHARACTERS ||
200
+ validationError ||
201
+ isValidating)
202
+ return;
203
+ try {
204
+ await addShareLinkCode({
205
+ addShareLinkCodeInput: {
206
+ userId: user === null || user === void 0 ? void 0 : user.id,
207
+ accountId: user === null || user === void 0 ? void 0 : user.accountId,
208
+ programId,
209
+ linkCode: editValue,
210
+ makeShareLinkCodePrimaryForReferralCode: true,
211
+ },
212
+ });
213
+ setIsEditing(false);
214
+ await Promise.all([refetch(), refetchEditCount()]);
215
+ refresh();
216
+ }
217
+ catch (e) {
218
+ const errorCode = (_a = e === null || e === void 0 ? void 0 : e.extensions) === null || _a === void 0 ? void 0 : _a.code;
219
+ setValidationError((_b = mapErrorCodeToInfo(errorCode)) !== null && _b !== void 0 ? _b : {
220
+ code: null,
221
+ title: props.saveErrorTitle,
222
+ description: (e === null || e === void 0 ? void 0 : e.message) || props.saveErrorDescription,
223
+ });
224
+ }
225
+ }
226
+ function onCancel() {
227
+ setIsEditing(false);
228
+ setEditValue("");
229
+ setValidationError(null);
230
+ setIsValidating(false);
231
+ latestValidationValueRef.current = "";
232
+ if (debounceTimerRef.current)
233
+ clearTimeout(debounceTimerRef.current);
234
+ }
235
+ return {
236
+ copyTextViewProps: {
237
+ ...props,
238
+ onClick,
239
+ open,
240
+ copyString,
241
+ },
242
+ minCharactersText: props.minCharactersText,
243
+ allowCustomization: props.allowCustomization,
244
+ customizeLinkLabel: props.customizeLinkButtonLabel,
245
+ saveLabelText: props.saveLabelText,
246
+ savingLabelText: props.savingLabelText,
247
+ cancelLabelText: props.cancelLabelText,
248
+ editLabelText: props.editLabelText,
249
+ charactersRemainingText: props.charactersRemainingText,
250
+ validatingLabelText: props.validatingLabelText,
251
+ isEditing,
252
+ editValue,
253
+ domainPrefix,
254
+ editsRemaining,
255
+ maxEdits: MAX_EDITS,
256
+ limitReached,
257
+ validationError,
258
+ isValidating,
259
+ isSaving,
260
+ characterLimit: CHARACTER_LIMIT,
261
+ minCharacters: MIN_CHARACTERS,
262
+ charactersRemaining: CHARACTER_LIMIT - editValue.length,
263
+ editLimitText: props.editLimitText,
264
+ editLimitReachedText: props.editLimitReachedText,
265
+ supportLinkText: props.supportLinkText,
266
+ customizeDisabled,
267
+ customizeDisabledTooltip: props.customizeDisabledTooltip,
268
+ onCustomizeClick,
269
+ onEditValueChange,
270
+ onSave,
271
+ onCancel,
272
+ };
60
273
  }
@@ -109,6 +109,7 @@ import * as Skeleton from "../sqm-skeleton/Skeleton.stories";
109
109
  import * as UserInfoFormView from "../tax-and-cash/sqm-user-info-form/UserInfoFormView.stories";
110
110
  import * as PartnerInfoModal from "../sqm-partner-info-modal/PartnerInfoModal.stories";
111
111
  import * as WidgetVerification from "../sqm-widget-verification/WidgetVerification.stories";
112
+ import * as UserAttribute from "../sqm-user-attribute/UserAttribute.stories";
112
113
  import { ShadowViewAddon } from "../../ShadowViewAddon";
113
114
  import { CucumberAddon } from "./CucumberAddon";
114
115
  import { HookStoryAddon } from "./HookStoryAddon";
@@ -222,6 +223,7 @@ const stories = [
222
223
  TaxAndCashReferralTable,
223
224
  PartnerInfoModal,
224
225
  WidgetVerification,
226
+ UserAttribute,
225
227
  ];
226
228
  /**
227
229
  * For internal documentation
@@ -50,7 +50,7 @@ export function TextSpanView(props, children) {
50
50
  display: inline;
51
51
  }
52
52
  `;
53
- return (h("span", { class: sheet.classes[type], part: "sqm-text-span-base" },
53
+ return (h("span", { class: sheet.classes[type], part: "sqm-text-span" },
54
54
  h("style", { type: "text/css" },
55
55
  vanillaStyle,
56
56
  styleString),
@@ -0,0 +1,43 @@
1
+ import { h } from "@stencil/core";
2
+ import scenario from "./user-attribute.feature";
3
+ export default {
4
+ title: "Components/User Attribute",
5
+ parameters: {
6
+ scenario,
7
+ },
8
+ };
9
+ export const Default = () => {
10
+ return (h("sqm-user-attribute", { demoData: {
11
+ loading: false,
12
+ value: "impact.com",
13
+ } }));
14
+ };
15
+ /*
16
+ Verifies that an sqm-user-attribute with no valid value
17
+ collapses completely and does not create extra space
18
+ (e.g. a double gap) in a flex layout.
19
+ */
20
+ export const InvalidValue = () => {
21
+ return (h("div", { style: { display: "flex", flexDirection: "column", gap: "16px" } },
22
+ h("div", { style: { background: "#e0e0e0", padding: "8px" } }, "Above"),
23
+ h("sqm-user-attribute", { demoData: {
24
+ loading: false,
25
+ value: null,
26
+ } }),
27
+ h("div", { style: { background: "#e0e0e0", padding: "8px" } }, "Below")));
28
+ };
29
+ export const Loading = () => {
30
+ return (h("sqm-user-attribute", { demoData: {
31
+ loading: true,
32
+ value: "impact.com",
33
+ } }));
34
+ };
35
+ export const WithCustomStyles = () => {
36
+ return (h("sqm-user-attribute", { demoData: {
37
+ loading: false,
38
+ value: "impact.com",
39
+ fontSize: 24,
40
+ color: "#4CAF50",
41
+ fontWeight: 700,
42
+ } }));
43
+ };
@@ -0,0 +1,19 @@
1
+ import { h, Host } from "@stencil/core";
2
+ import { createStyleSheet } from "../../styling/JSS";
3
+ export function UserAttributeView(props) {
4
+ const style = {
5
+ P: {
6
+ margin: "0",
7
+ padding: "0",
8
+ fontSize: props.fontSize ? `${props.fontSize}px` : "inherit",
9
+ fontWeight: props.fontWeight || "inherit",
10
+ color: props.color || "var(--sqm-text)",
11
+ },
12
+ };
13
+ const sheet = createStyleSheet(style);
14
+ const styleString = sheet.toString();
15
+ const loadingSkeleton = (h("sqm-skeleton", { width: "200px", height: "20px" }));
16
+ return (h(Host, null,
17
+ h("style", null, styleString),
18
+ h("p", { class: sheet.classes.P, part: "sqm-base" }, props.loading ? loadingSkeleton : props.value)));
19
+ }
@@ -0,0 +1,175 @@
1
+ import { isDemo } from "@saasquatch/component-boilerplate";
2
+ import { withHooks } from "@saasquatch/stencil-hooks";
3
+ import { Component, h, Host, Prop, State } from "@stencil/core";
4
+ import deepmerge from "deepmerge";
5
+ import { UserAttributeView, } from "./sqm-user-attribute-view";
6
+ import { useUserAttribute } from "./useUserAttribute";
7
+ /**
8
+ * @uiName User Attribute
9
+ * @exampleGroup Advanced
10
+ * @example User Attribute - <sqm-user-attribute value="lastSeenDate"></sqm-user-attribute>
11
+ */
12
+ export class UserAttribute {
13
+ constructor() {
14
+ this.ignored = true;
15
+ withHooks(this);
16
+ }
17
+ disconnectedCallback() { }
18
+ render() {
19
+ const props = isDemo() ? useCustomFieldsDemo(this) : useUserAttribute(this);
20
+ if (props.value == null) {
21
+ return h(Host, { style: { display: "none" } });
22
+ }
23
+ return h(UserAttributeView, Object.assign({}, props));
24
+ }
25
+ static get is() { return "sqm-user-attribute"; }
26
+ static get encapsulation() { return "shadow"; }
27
+ static get properties() { return {
28
+ "value": {
29
+ "type": "any",
30
+ "mutable": false,
31
+ "complexType": {
32
+ "original": "string | number",
33
+ "resolved": "number | string",
34
+ "references": {}
35
+ },
36
+ "required": false,
37
+ "optional": false,
38
+ "docs": {
39
+ "tags": [{
40
+ "text": "Custom field key",
41
+ "name": "uiName"
42
+ }, {
43
+ "text": "customFieldSelector",
44
+ "name": "uiWidget"
45
+ }],
46
+ "text": "The custom field key to display."
47
+ },
48
+ "attribute": "value",
49
+ "reflect": false
50
+ },
51
+ "fontSize": {
52
+ "type": "number",
53
+ "mutable": false,
54
+ "complexType": {
55
+ "original": "number",
56
+ "resolved": "number",
57
+ "references": {}
58
+ },
59
+ "required": false,
60
+ "optional": true,
61
+ "docs": {
62
+ "tags": [{
63
+ "text": "Font size",
64
+ "name": "uiName"
65
+ }, {
66
+ "text": "Style",
67
+ "name": "uiGroup"
68
+ }],
69
+ "text": "Number in pixels."
70
+ },
71
+ "attribute": "font-size",
72
+ "reflect": false
73
+ },
74
+ "color": {
75
+ "type": "string",
76
+ "mutable": false,
77
+ "complexType": {
78
+ "original": "string",
79
+ "resolved": "string",
80
+ "references": {}
81
+ },
82
+ "required": false,
83
+ "optional": true,
84
+ "docs": {
85
+ "tags": [{
86
+ "text": "Color",
87
+ "name": "uiName"
88
+ }, {
89
+ "text": "color",
90
+ "name": "uiWidget"
91
+ }, {
92
+ "text": "color",
93
+ "name": "format"
94
+ }, {
95
+ "text": "Style",
96
+ "name": "uiGroup"
97
+ }],
98
+ "text": ""
99
+ },
100
+ "attribute": "color",
101
+ "reflect": false
102
+ },
103
+ "fontWeight": {
104
+ "type": "number",
105
+ "mutable": false,
106
+ "complexType": {
107
+ "original": "number",
108
+ "resolved": "number",
109
+ "references": {}
110
+ },
111
+ "required": false,
112
+ "optional": true,
113
+ "docs": {
114
+ "tags": [{
115
+ "text": "Font weight",
116
+ "name": "uiName"
117
+ }, {
118
+ "text": "Style",
119
+ "name": "uiGroup"
120
+ }, {
121
+ "text": "[100, 200, 300, 400, 500, 600, 700, 800, 900]",
122
+ "name": "uiEnum"
123
+ }, {
124
+ "text": "[\"Thin\", \"Extra Light\", \"Light\", \"Normal\", \"Medium\", \"Semi Bold\", \"Bold\", \"Extra Bold\", \"Heavy\"]",
125
+ "name": "uiEnumNames"
126
+ }],
127
+ "text": "Font weight"
128
+ },
129
+ "attribute": "font-weight",
130
+ "reflect": false
131
+ },
132
+ "demoData": {
133
+ "type": "unknown",
134
+ "mutable": false,
135
+ "complexType": {
136
+ "original": "DemoData<UserAttributeViewProps>",
137
+ "resolved": "{ loading?: boolean; value?: string; fontSize?: number; color?: string; fontWeight?: number; }",
138
+ "references": {
139
+ "DemoData": {
140
+ "location": "import",
141
+ "path": "../../global/demo"
142
+ },
143
+ "UserAttributeViewProps": {
144
+ "location": "import",
145
+ "path": "./sqm-user-attribute-view"
146
+ }
147
+ }
148
+ },
149
+ "required": false,
150
+ "optional": true,
151
+ "docs": {
152
+ "tags": [{
153
+ "text": undefined,
154
+ "name": "undocumented"
155
+ }, {
156
+ "text": "object",
157
+ "name": "uiType"
158
+ }],
159
+ "text": ""
160
+ }
161
+ }
162
+ }; }
163
+ static get states() { return {
164
+ "ignored": {}
165
+ }; }
166
+ }
167
+ function useCustomFieldsDemo(props) {
168
+ return deepmerge({
169
+ loading: false,
170
+ value: "Custom Field Value",
171
+ fontSize: props.fontSize,
172
+ color: props.color,
173
+ fontWeight: props.fontWeight,
174
+ }, props.demoData || {}, { arrayMerge: (_, a) => a });
175
+ }
@@ -0,0 +1,30 @@
1
+ import { useQuery, useUserIdentity } from "@saasquatch/component-boilerplate";
2
+ import { gql } from "graphql-request";
3
+ import { DateTime } from "luxon";
4
+ const GET_CUSTOM_FIELDS = gql `
5
+ query getCustomFields {
6
+ viewer {
7
+ ... on User {
8
+ customFields
9
+ }
10
+ }
11
+ }
12
+ `;
13
+ export function useUserAttribute(props) {
14
+ var _a, _b;
15
+ const user = useUserIdentity();
16
+ const res = useQuery(GET_CUSTOM_FIELDS, {}, !(user === null || user === void 0 ? void 0 : user.jwt));
17
+ const loading = res.loading;
18
+ const customFields = (_b = (_a = res.data) === null || _a === void 0 ? void 0 : _a.viewer) === null || _b === void 0 ? void 0 : _b.customFields;
19
+ let value = customFields === null || customFields === void 0 ? void 0 : customFields[props.value];
20
+ if (props.value === "lastSeenDate" && typeof value === "number") {
21
+ value = DateTime.fromMillis(value).toLocaleString(DateTime.DATE_MED);
22
+ }
23
+ return {
24
+ loading,
25
+ value,
26
+ fontSize: props.fontSize,
27
+ color: props.color,
28
+ fontWeight: props.fontWeight,
29
+ };
30
+ }
@@ -61,7 +61,7 @@ export function useUpsertUserEmail() {
61
61
  }
62
62
  export function useWidgetEmailVerification(props) {
63
63
  const [_, setShowCode] = useParent(SHOW_CODE_NAMESPACE);
64
- const [email, setEmail] = useParent(VERIFICATION_EMAIL_NAMESPACE);
64
+ const [_email, setEmail] = useParent(VERIFICATION_EMAIL_NAMESPACE);
65
65
  const [emailExists, setEmailExists] = useState(false);
66
66
  const [error, setError] = useState(false);
67
67
  const [mutationError, setMutationError] = useState(false);
@@ -80,29 +80,39 @@ export function useWidgetEmailVerification(props) {
80
80
  setLoading(false);
81
81
  }, [initialized]);
82
82
  const submitEmail = async (e) => {
83
+ var _a, _b, _c, _d;
83
84
  e.preventDefault();
84
85
  if (!(data === null || data === void 0 ? void 0 : data.viewer))
85
86
  return;
86
87
  setLoading(true);
87
- const toAddress = data.viewer.email;
88
+ setMutationError(false);
89
+ setError(false);
90
+ let toAddress = data.viewer.email;
88
91
  if (!toAddress) {
89
- // If no email on the user, set one
90
- const formData = e.detail.formData;
91
- const newEmail = formData.get("email").toString();
92
+ const formData = (_a = e.detail) === null || _a === void 0 ? void 0 : _a.formData;
93
+ const newEmail = (_c = (_b = formData === null || formData === void 0 ? void 0 : formData.get("email")) === null || _b === void 0 ? void 0 : _b.toString()) !== null && _c !== void 0 ? _c : "";
92
94
  if (!emailRegex.test(newEmail)) {
93
95
  setError(true);
96
+ setLoading(false);
94
97
  return;
95
98
  }
96
- const result = await upsertUserEmail(newEmail);
97
- if (!result || !result.user.email)
99
+ const upsertResult = await upsertUserEmail(newEmail);
100
+ if (!upsertResult || !((_d = upsertResult.upsertUser) === null || _d === void 0 ? void 0 : _d.email)) {
98
101
  setError(true);
102
+ setLoading(false);
103
+ return;
104
+ }
105
+ toAddress = upsertResult.upsertUser.email;
99
106
  }
100
107
  // UI should not allow this call til initialisation is done
101
- if (!initialized)
108
+ if (!initialized) {
109
+ setLoading(false);
102
110
  return;
111
+ }
103
112
  const result = await sendEmail();
104
- if (!result || !result.success)
113
+ if (!result || !result.success) {
105
114
  setMutationError(true);
115
+ }
106
116
  else {
107
117
  // This is used to let the code verification widget know an email was already sent
108
118
  setEmail(toAddress);
@@ -2,7 +2,7 @@ import { useLazyQuery, useParentState, useSetParent, } from "@saasquatch/compone
2
2
  import { useState } from "@saasquatch/stencil-hooks";
3
3
  import { useEffect } from "@saasquatch/universal-hooks";
4
4
  import { gql } from "graphql-request";
5
- import { PARTNER_CREATED_NAMESPACE, SHOW_CODE_NAMESPACE, SHOW_PARTNER_MODAL_NAMESPACE, VERIFICATION_PARENT_NAMESPACE, } from "./keys";
5
+ import { PARTNER_CREATED_NAMESPACE, SHOW_CODE_NAMESPACE, SHOW_PARTNER_MODAL_NAMESPACE, VERIFICATION_EMAIL_NAMESPACE, VERIFICATION_PARENT_NAMESPACE, } from "./keys";
6
6
  const USER_LOOKUP = gql `
7
7
  query checkUserVerification {
8
8
  viewer {
@@ -27,6 +27,10 @@ export function useWidgetVerification() {
27
27
  namespace: SHOW_CODE_NAMESPACE,
28
28
  initialValue: false,
29
29
  });
30
+ useParentState({
31
+ namespace: VERIFICATION_EMAIL_NAMESPACE,
32
+ initialValue: undefined,
33
+ });
30
34
  const setContext = useSetParent(VERIFICATION_PARENT_NAMESPACE);
31
35
  const [loading, setLoading] = useState(true);
32
36
  const [showPartnerModal, setShowPartnerModal] = useParentState({
@@ -14,6 +14,7 @@ export const GET_USER = gql `
14
14
  user: viewer {
15
15
  ... on User {
16
16
  id
17
+ accountId
17
18
  firstName
18
19
  lastName
19
20
  email