@saasquatch/mint-components 2.2.0-6 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (456) hide show
  1. package/dist/cjs/{ShadowViewAddon-1c054d52.js → ShadowViewAddon-3b477e58.js} +429 -27
  2. package/dist/cjs/{data-c03e282a.js → data-8c8a08f6.js} +90 -1
  3. package/dist/cjs/extractProps-e9c55ba8.js +35 -0
  4. package/dist/cjs/{keys-5a2c9ed2.js → keys-cff24974.js} +0 -4
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/mint-components.cjs.js +1 -1
  7. package/dist/cjs/sqm-banking-info-form_10.cjs.entry.js +101 -482
  8. package/dist/cjs/sqm-big-stat_46.cjs.entry.js +360 -424
  9. package/dist/cjs/sqm-code-verification.cjs.entry.js +6 -5
  10. package/dist/cjs/sqm-email-verification.cjs.entry.js +418 -0
  11. package/dist/cjs/sqm-empty_4.cjs.entry.js +1 -1
  12. package/dist/cjs/{sqm-portal-container-view-70a47420.js → sqm-portal-container-view-757f921b.js} +5 -6
  13. package/dist/cjs/{sqm-portal-email-verification-view-d51c2a06.js → sqm-portal-email-verification-view-abb773a7.js} +1 -1
  14. package/dist/cjs/sqm-portal-email-verification.cjs.entry.js +2 -2
  15. package/dist/cjs/sqm-portal-forgot-password_6.cjs.entry.js +5 -5
  16. package/dist/cjs/{sqm-portal-profile-view-e6927959.js → sqm-portal-profile-view-3515e1e5.js} +1 -1
  17. package/dist/cjs/sqm-portal-profile.cjs.entry.js +2 -2
  18. package/dist/cjs/{sqm-portal-registration-form-view-fd48f1d3.js → sqm-portal-registration-form-view-a45f7a52.js} +1 -1
  19. package/dist/cjs/{sqm-portal-reset-password-view-d90d77f9.js → sqm-portal-reset-password-view-a767b044.js} +1 -1
  20. package/dist/cjs/sqm-portal-reset-password.cjs.entry.js +2 -2
  21. package/dist/cjs/{sqm-portal-verify-email-view-6258dcae.js → sqm-portal-verify-email-view-717d0633.js} +1 -1
  22. package/dist/cjs/sqm-referral-table_11.cjs.entry.js +10 -28
  23. package/dist/cjs/sqm-rewards-table-customer-note-cell.cjs.entry.js +1 -1
  24. package/dist/cjs/sqm-rewards-table_9.cjs.entry.js +9 -30
  25. package/dist/cjs/sqm-stencilbook.cjs.entry.js +532 -740
  26. package/dist/cjs/{sqm-text-span-view-8a32dd8c.js → sqm-text-span-view-b9e10f5d.js} +1 -1
  27. package/dist/cjs/sqm-text-span.cjs.entry.js +1 -1
  28. package/dist/cjs/{sqm-user-info-form-view-4d56b339.js → sqm-user-info-form-view-53306f6e.js} +40 -33
  29. package/dist/cjs/sqm-widget-verification-controller.cjs.entry.js +1 -1
  30. package/dist/cjs/sqm-widget-verification.cjs.entry.js +214 -0
  31. package/dist/cjs/{usePayoutStatus-0a98ee05.js → usePayoutStatus-0192fccd.js} +5 -3
  32. package/dist/collection/collection-manifest.json +1 -1
  33. package/dist/collection/components/sqm-big-stat/useBigStat.js +5 -6
  34. package/dist/collection/components/sqm-checkbox-field/sqm-checkbox-field-view.js +1 -1
  35. package/dist/collection/components/sqm-checkbox-field/sqm-checkbox-field.js +2 -3
  36. package/dist/collection/components/sqm-portal-container/sqm-portal-container-view.js +6 -7
  37. package/dist/collection/components/sqm-portal-google-login/sqm-portal-google-login.js +1 -1
  38. package/dist/collection/components/sqm-portal-login/sqm-portal-login.js +1 -1
  39. package/dist/collection/components/sqm-referral-iframe/ReferralIframe.stories.js +1 -0
  40. package/dist/collection/components/sqm-referral-iframe/sqm-referral-iframe-view.js +1 -1
  41. package/dist/collection/components/sqm-referral-iframe/sqm-referral-iframe.js +27 -1
  42. package/dist/collection/components/sqm-referral-table/ReferralTable.stories.js +0 -1
  43. package/dist/collection/components/sqm-referral-table/ReferralTableRewardsCell.stories.js +0 -1
  44. package/dist/collection/components/sqm-referral-table/TaxAndCashReferralTable.stories.js +2 -2
  45. package/dist/collection/components/sqm-referral-table/TaxAndCashReferralTableRewardsCell.stories.js +145 -209
  46. package/dist/collection/components/sqm-referral-table/cells/sqm-referral-table-rewards-cell.js +10 -30
  47. package/dist/collection/components/sqm-rewards-table/RewardsTableCell.stories.js +0 -1
  48. package/dist/collection/components/sqm-rewards-table/TaxAndCashRewardsTable.stories.js +2 -2
  49. package/dist/collection/components/sqm-rewards-table/TaxAndCashRewardsTableCell.stories.js +137 -223
  50. package/dist/collection/components/sqm-rewards-table/cells/sqm-rewards-table-status-cell.js +10 -30
  51. package/dist/collection/components/sqm-rewards-table/useRewardsTable.js +0 -1
  52. package/dist/collection/components/sqm-share-code/sqm-share-code.js +0 -1
  53. package/dist/collection/components/sqm-share-link/ShareLink.stories.js +136 -11
  54. package/dist/collection/components/sqm-share-link/UseShareLink.stories.js +14 -5
  55. package/dist/collection/components/sqm-share-link/sqm-share-link-view.js +192 -0
  56. package/dist/collection/components/sqm-share-link/sqm-share-link.js +935 -48
  57. package/dist/collection/components/sqm-share-link/useShareLink.js +227 -14
  58. package/dist/collection/components/sqm-stencilbook/sqm-stencilbook.js +2 -4
  59. package/dist/collection/components/sqm-text-span/sqm-text-span-view.js +1 -1
  60. package/dist/collection/components/sqm-user-attribute/UserAttribute.stories.js +43 -0
  61. package/dist/collection/components/sqm-user-attribute/sqm-user-attribute-view.js +19 -0
  62. package/dist/collection/components/sqm-user-attribute/sqm-user-attribute.js +175 -0
  63. package/dist/collection/components/sqm-user-attribute/useUserAttribute.js +30 -0
  64. package/dist/collection/components/sqm-widget-verification/keys.js +0 -2
  65. package/dist/collection/components/sqm-widget-verification/sqm-code-verification/sqm-code-verification-view.js +4 -3
  66. package/dist/collection/components/sqm-widget-verification/sqm-email-verification/sqm-email-verification-view.js +2 -0
  67. package/dist/collection/components/sqm-widget-verification/sqm-email-verification/useEmailVerification.js +9 -19
  68. package/dist/collection/components/sqm-widget-verification/sqm-widget-verification.js +46 -486
  69. package/dist/collection/components/sqm-widget-verification/useWidgetVerification.js +11 -43
  70. package/dist/collection/components/tax-and-cash/data.js +0 -1
  71. package/dist/collection/components/tax-and-cash/sqm-banking-info-form/formDefinitions.js +37 -75
  72. package/dist/collection/components/tax-and-cash/sqm-banking-info-form/sqm-banking-info-form.js +13 -688
  73. package/dist/collection/components/tax-and-cash/sqm-banking-info-form/useBankingInfoForm.js +1 -95
  74. package/dist/collection/components/tax-and-cash/sqm-indirect-tax-form/sqm-indirect-tax-form.js +4 -4
  75. package/dist/collection/components/tax-and-cash/sqm-indirect-tax-form/useIndirectTaxForm.js +12 -51
  76. package/dist/collection/components/tax-and-cash/sqm-payout-details-card/sqm-payout-details-card.js +2 -2
  77. package/dist/collection/components/tax-and-cash/sqm-tax-and-cash/sqm-tax-and-cash.js +36 -7
  78. package/dist/collection/components/tax-and-cash/sqm-tax-and-cash/useTaxAndCash.js +0 -3
  79. package/dist/collection/components/tax-and-cash/sqm-tax-and-cash-dashboard/sqm-tax-and-cash-dashboard.js +2 -2
  80. package/dist/collection/components/tax-and-cash/sqm-user-info-form/UserInfoFormView.stories.js +1 -0
  81. package/dist/collection/components/tax-and-cash/sqm-user-info-form/sqm-user-info-form-view.js +18 -10
  82. package/dist/collection/components/tax-and-cash/sqm-user-info-form/sqm-user-info-form.js +25 -0
  83. package/dist/collection/components/tax-and-cash/sqm-user-info-form/useUserInfoForm.js +17 -34
  84. package/dist/esm/{ShadowViewAddon-4d554869.js → ShadowViewAddon-0b980200.js} +435 -34
  85. package/dist/esm/data-12e6aae1.js +216 -0
  86. package/dist/esm/extractProps-54064fb0.js +32 -0
  87. package/dist/esm/{global-75e96214.js → global-96c14d63.js} +1 -1
  88. package/dist/esm/{index.module-02cb914c.js → index.module-b23fdad8.js} +1 -1
  89. package/dist/esm/keys-406491dc.js +6 -0
  90. package/dist/esm/loader.js +3 -3
  91. package/dist/esm/mint-components.js +3 -3
  92. package/dist/esm/{re-render-bf46ba54.js → re-render-f30aeb6b.js} +1 -1
  93. package/dist/esm/sqm-banking-info-form_10.entry.js +95 -476
  94. package/dist/esm/sqm-big-stat_46.entry.js +364 -428
  95. package/dist/esm/sqm-close-button.entry.js +1 -1
  96. package/dist/esm/sqm-code-verification.entry.js +9 -8
  97. package/dist/esm/sqm-context-router.entry.js +1 -1
  98. package/dist/esm/sqm-email-verification.entry.js +414 -0
  99. package/dist/esm/sqm-empty_4.entry.js +3 -3
  100. package/dist/esm/sqm-google-sign-in.entry.js +1 -1
  101. package/dist/esm/sqm-graphql-client-provider.entry.js +1 -1
  102. package/dist/esm/sqm-instant-access-registration.entry.js +3 -3
  103. package/dist/esm/{sqm-lead-checkbox-field-view-bfafee56.js → sqm-lead-checkbox-field-view-7928db07.js} +1 -1
  104. package/dist/esm/sqm-lead-checkbox-field.entry.js +4 -4
  105. package/dist/esm/{sqm-lead-input-field-view-b945edf4.js → sqm-lead-input-field-view-d1b91650.js} +1 -1
  106. package/dist/esm/sqm-lead-input-field.entry.js +4 -4
  107. package/dist/esm/sqm-leaderboard-rank.entry.js +2 -2
  108. package/dist/esm/sqm-logout-current-user.entry.js +1 -1
  109. package/dist/esm/{sqm-navigation-sidebar-item-view-8d98fcf3.js → sqm-navigation-sidebar-item-view-b3beac5a.js} +1 -1
  110. package/dist/esm/sqm-navigation-sidebar-item.entry.js +2 -2
  111. package/dist/esm/sqm-navigation-sidebar.entry.js +1 -1
  112. package/dist/esm/sqm-pagination_3.entry.js +3 -3
  113. package/dist/esm/sqm-password-field.entry.js +2 -2
  114. package/dist/esm/sqm-popup-container.entry.js +1 -1
  115. package/dist/esm/{sqm-portal-container-view-a8c708cd.js → sqm-portal-container-view-200c9df8.js} +6 -7
  116. package/dist/esm/{sqm-portal-email-verification-view-58bad294.js → sqm-portal-email-verification-view-04528277.js} +2 -2
  117. package/dist/esm/sqm-portal-email-verification.entry.js +4 -4
  118. package/dist/esm/sqm-portal-forgot-password_6.entry.js +8 -8
  119. package/dist/esm/sqm-portal-logout.entry.js +1 -1
  120. package/dist/esm/{sqm-portal-profile-view-115bad4a.js → sqm-portal-profile-view-b5ea620f.js} +2 -2
  121. package/dist/esm/sqm-portal-profile.entry.js +5 -5
  122. package/dist/esm/sqm-portal-protected-route.entry.js +1 -1
  123. package/dist/esm/{sqm-portal-registration-form-view-9bf30b56.js → sqm-portal-registration-form-view-79265df5.js} +1 -1
  124. package/dist/esm/{sqm-portal-reset-password-view-f8d1689c.js → sqm-portal-reset-password-view-f84c04cf.js} +1 -1
  125. package/dist/esm/sqm-portal-reset-password.entry.js +3 -3
  126. package/dist/esm/{sqm-portal-verify-email-view-c053ead1.js → sqm-portal-verify-email-view-c61536b7.js} +2 -2
  127. package/dist/esm/sqm-qr-code.entry.js +2 -2
  128. package/dist/esm/sqm-referral-table_11.entry.js +15 -33
  129. package/dist/esm/sqm-rewards-table-customer-note-cell.entry.js +1 -1
  130. package/dist/esm/sqm-rewards-table-customer-note-column.entry.js +2 -2
  131. package/dist/esm/sqm-rewards-table_9.entry.js +14 -35
  132. package/dist/esm/sqm-stencilbook.entry.js +506 -714
  133. package/dist/esm/sqm-tab.entry.js +2 -2
  134. package/dist/esm/sqm-tabs.entry.js +3 -3
  135. package/dist/esm/{sqm-text-span-view-4db9e33f.js → sqm-text-span-view-72f43dff.js} +1 -1
  136. package/dist/esm/sqm-text-span.entry.js +1 -1
  137. package/dist/esm/{sqm-user-info-form-view-d13f9d3e.js → sqm-user-info-form-view-19d81a2b.js} +20 -13
  138. package/dist/esm/sqm-widget-verification-controller.entry.js +2 -2
  139. package/dist/esm/sqm-widget-verification.entry.js +210 -0
  140. package/dist/esm/{useChildElements-06937df7.js → useChildElements-9bccfb72.js} +1 -1
  141. package/dist/esm/{useInstantAccessRegistration-69c9ffe0.js → useInstantAccessRegistration-69fefed0.js} +2 -2
  142. package/dist/esm/{useLeadFormState-332b2796.js → useLeadFormState-dd4e8b08.js} +2 -2
  143. package/dist/esm/{usePayoutStatus-227ae365.js → usePayoutStatus-46c0c289.js} +4 -3
  144. package/dist/esm/{usePortalRegistrationForm-3a1f36a2.js → usePortalRegistrationForm-62de6fb1.js} +2 -2
  145. package/dist/esm/{useReferralCodes-25f8b792.js → useReferralCodes-52ca720f.js} +1 -1
  146. package/dist/esm/{useReferralTable-03d32c6f.js → useReferralTable-92af4133.js} +3 -3
  147. package/dist/esm/{useRegistrationFormState-aa44cfff.js → useRegistrationFormState-2c090c38.js} +1 -1
  148. package/dist/esm/{useVerificationEmail-9f2c0bab.js → useVerificationEmail-c13c3b51.js} +1 -1
  149. package/dist/esm/{utilities-cbd8f2eb.js → utilities-77b1e0cc.js} +1 -1
  150. package/dist/esm-es5/ShadowViewAddon-0b980200.js +1 -0
  151. package/dist/esm-es5/data-12e6aae1.js +1 -0
  152. package/dist/esm-es5/extractProps-54064fb0.js +1 -0
  153. package/dist/esm-es5/{global-75e96214.js → global-96c14d63.js} +1 -1
  154. package/dist/esm-es5/{index.module-02cb914c.js → index.module-b23fdad8.js} +1 -1
  155. package/dist/esm-es5/keys-406491dc.js +1 -0
  156. package/dist/esm-es5/loader.js +1 -1
  157. package/dist/esm-es5/mint-components.js +1 -1
  158. package/dist/esm-es5/{re-render-bf46ba54.js → re-render-f30aeb6b.js} +1 -1
  159. package/dist/esm-es5/sqm-banking-info-form_10.entry.js +1 -1
  160. package/dist/esm-es5/sqm-big-stat_46.entry.js +1 -1
  161. package/dist/esm-es5/sqm-close-button.entry.js +1 -1
  162. package/dist/esm-es5/sqm-code-verification.entry.js +1 -1
  163. package/dist/esm-es5/sqm-context-router.entry.js +1 -1
  164. package/dist/esm-es5/sqm-email-verification.entry.js +1 -0
  165. package/dist/esm-es5/sqm-empty_4.entry.js +1 -1
  166. package/dist/esm-es5/sqm-google-sign-in.entry.js +1 -1
  167. package/dist/esm-es5/sqm-graphql-client-provider.entry.js +1 -1
  168. package/dist/esm-es5/sqm-instant-access-registration.entry.js +1 -1
  169. package/dist/esm-es5/{sqm-lead-checkbox-field-view-bfafee56.js → sqm-lead-checkbox-field-view-7928db07.js} +1 -1
  170. package/dist/esm-es5/sqm-lead-checkbox-field.entry.js +1 -1
  171. package/dist/esm-es5/{sqm-lead-input-field-view-b945edf4.js → sqm-lead-input-field-view-d1b91650.js} +1 -1
  172. package/dist/esm-es5/sqm-lead-input-field.entry.js +1 -1
  173. package/dist/esm-es5/sqm-leaderboard-rank.entry.js +1 -1
  174. package/dist/esm-es5/sqm-logout-current-user.entry.js +1 -1
  175. package/dist/esm-es5/{sqm-navigation-sidebar-item-view-8d98fcf3.js → sqm-navigation-sidebar-item-view-b3beac5a.js} +1 -1
  176. package/dist/esm-es5/sqm-navigation-sidebar-item.entry.js +1 -1
  177. package/dist/esm-es5/sqm-navigation-sidebar.entry.js +1 -1
  178. package/dist/esm-es5/sqm-pagination_3.entry.js +1 -1
  179. package/dist/esm-es5/sqm-password-field.entry.js +1 -1
  180. package/dist/esm-es5/sqm-popup-container.entry.js +1 -1
  181. package/dist/esm-es5/sqm-portal-container-view-200c9df8.js +1 -0
  182. package/dist/esm-es5/{sqm-portal-email-verification-view-58bad294.js → sqm-portal-email-verification-view-04528277.js} +1 -1
  183. package/dist/esm-es5/sqm-portal-email-verification.entry.js +1 -1
  184. package/dist/esm-es5/sqm-portal-forgot-password_6.entry.js +1 -1
  185. package/dist/esm-es5/sqm-portal-logout.entry.js +1 -1
  186. package/dist/esm-es5/{sqm-portal-profile-view-115bad4a.js → sqm-portal-profile-view-b5ea620f.js} +1 -1
  187. package/dist/esm-es5/sqm-portal-profile.entry.js +1 -1
  188. package/dist/esm-es5/sqm-portal-protected-route.entry.js +1 -1
  189. package/dist/esm-es5/{sqm-portal-registration-form-view-9bf30b56.js → sqm-portal-registration-form-view-79265df5.js} +1 -1
  190. package/dist/esm-es5/{sqm-portal-reset-password-view-f8d1689c.js → sqm-portal-reset-password-view-f84c04cf.js} +1 -1
  191. package/dist/esm-es5/sqm-portal-reset-password.entry.js +1 -1
  192. package/dist/esm-es5/{sqm-portal-verify-email-view-c053ead1.js → sqm-portal-verify-email-view-c61536b7.js} +1 -1
  193. package/dist/esm-es5/sqm-qr-code.entry.js +1 -1
  194. package/dist/esm-es5/sqm-referral-table_11.entry.js +1 -1
  195. package/dist/esm-es5/sqm-rewards-table-customer-note-cell.entry.js +1 -1
  196. package/dist/esm-es5/sqm-rewards-table-customer-note-column.entry.js +1 -1
  197. package/dist/esm-es5/sqm-rewards-table_9.entry.js +1 -1
  198. package/dist/esm-es5/sqm-stencilbook.entry.js +1 -1
  199. package/dist/esm-es5/sqm-tab.entry.js +1 -1
  200. package/dist/esm-es5/sqm-tabs.entry.js +1 -1
  201. package/dist/esm-es5/{sqm-text-span-view-4db9e33f.js → sqm-text-span-view-72f43dff.js} +1 -1
  202. package/dist/esm-es5/sqm-text-span.entry.js +1 -1
  203. package/dist/esm-es5/sqm-user-info-form-view-19d81a2b.js +1 -0
  204. package/dist/esm-es5/sqm-widget-verification-controller.entry.js +1 -1
  205. package/dist/esm-es5/sqm-widget-verification.entry.js +1 -0
  206. package/dist/esm-es5/{useChildElements-06937df7.js → useChildElements-9bccfb72.js} +1 -1
  207. package/dist/esm-es5/{useInstantAccessRegistration-69c9ffe0.js → useInstantAccessRegistration-69fefed0.js} +1 -1
  208. package/dist/esm-es5/{useLeadFormState-332b2796.js → useLeadFormState-dd4e8b08.js} +1 -1
  209. package/dist/esm-es5/{usePayoutStatus-227ae365.js → usePayoutStatus-46c0c289.js} +2 -2
  210. package/dist/esm-es5/{usePortalRegistrationForm-3a1f36a2.js → usePortalRegistrationForm-62de6fb1.js} +1 -1
  211. package/dist/esm-es5/{useReferralCodes-25f8b792.js → useReferralCodes-52ca720f.js} +1 -1
  212. package/dist/esm-es5/{useReferralTable-03d32c6f.js → useReferralTable-92af4133.js} +1 -1
  213. package/dist/esm-es5/{useRegistrationFormState-aa44cfff.js → useRegistrationFormState-2c090c38.js} +1 -1
  214. package/dist/esm-es5/{useVerificationEmail-9f2c0bab.js → useVerificationEmail-c13c3b51.js} +1 -1
  215. package/dist/esm-es5/{utilities-cbd8f2eb.js → utilities-77b1e0cc.js} +1 -1
  216. package/dist/mint-components/mint-components.esm.js +1 -1
  217. package/dist/mint-components/mint-components.js +1 -1
  218. package/dist/mint-components/p-00b235c5.system.entry.js +1 -0
  219. package/dist/mint-components/{p-4eadbd5b.entry.js → p-013564b3.entry.js} +1 -1
  220. package/dist/mint-components/{p-1b0326d1.entry.js → p-02499e08.entry.js} +1 -1
  221. package/dist/mint-components/{p-d34564f8.system.entry.js → p-027fc3be.system.entry.js} +1 -1
  222. package/dist/mint-components/{p-bb0b5e4b.js → p-035d9b65.js} +1 -1
  223. package/dist/mint-components/{p-e651593c.system.js → p-036a2617.system.js} +1 -1
  224. package/dist/mint-components/p-044f930a.system.js +1 -0
  225. package/dist/mint-components/p-0706cf9e.system.entry.js +1 -0
  226. package/dist/mint-components/p-0797a946.js +1 -0
  227. package/dist/mint-components/{p-60b1f3d9.entry.js → p-09348341.entry.js} +1 -1
  228. package/dist/mint-components/{p-29bc5f50.entry.js → p-09f7aacd.entry.js} +2 -2
  229. package/dist/mint-components/p-0b1e90fe.system.js +1 -0
  230. package/dist/{esm/data-017e5ef2.js → mint-components/p-0c0d4065.js} +5 -24
  231. package/dist/mint-components/{p-cfea215d.js → p-0d83907e.js} +1 -1
  232. package/dist/mint-components/p-1021a49f.system.entry.js +1 -0
  233. package/dist/mint-components/p-13292317.entry.js +11 -0
  234. package/dist/mint-components/{p-731c4d33.entry.js → p-13d1b10d.entry.js} +1 -1
  235. package/dist/mint-components/{p-d284ae70.system.js → p-172675ca.system.js} +1 -1
  236. package/dist/mint-components/{p-b2ad3fca.system.js → p-19c441b2.system.js} +1 -1
  237. package/dist/mint-components/{p-dafe30c3.entry.js → p-1d92c169.entry.js} +1 -1
  238. package/dist/mint-components/{p-0815b973.system.js → p-205cfdcd.system.js} +1 -1
  239. package/dist/mint-components/{p-ae4994e1.js → p-2668335b.js} +1 -1
  240. package/dist/mint-components/{p-13bb56a8.system.entry.js → p-2b4af8e8.system.entry.js} +1 -1
  241. package/dist/mint-components/p-2d5c2bd4.system.entry.js +1 -0
  242. package/dist/mint-components/{p-2190dc73.system.js → p-30c1ef36.system.js} +1 -1
  243. package/dist/mint-components/{p-4eaa3eb7.js → p-3286ef38.js} +1 -1
  244. package/dist/mint-components/{p-eae44b42.js → p-3366b81e.js} +2 -2
  245. package/dist/mint-components/p-38c7775a.js +1 -0
  246. package/dist/mint-components/p-3adbfd0b.system.js +6 -0
  247. package/dist/mint-components/p-3af3e2c1.entry.js +25 -0
  248. package/dist/mint-components/{p-4e3db52b.entry.js → p-3bc62ca6.entry.js} +1 -1
  249. package/dist/mint-components/{p-d71a8b38.entry.js → p-40bad95a.entry.js} +2 -2
  250. package/dist/mint-components/{p-bd972473.system.js → p-43c31fd5.system.js} +1 -1
  251. package/dist/mint-components/{p-df897432.system.entry.js → p-4da5a3fe.system.entry.js} +1 -1
  252. package/dist/mint-components/{p-bcfdb510.entry.js → p-52674798.entry.js} +1 -1
  253. package/dist/mint-components/p-5492dd51.system.entry.js +1 -0
  254. package/dist/mint-components/p-57dd28bd.system.js +1 -0
  255. package/dist/mint-components/p-5b1d2866.system.js +1 -0
  256. package/dist/mint-components/{p-02c0f88e.system.entry.js → p-5b871e38.system.entry.js} +1 -1
  257. package/dist/mint-components/p-5bc5c61e.entry.js +1 -0
  258. package/dist/mint-components/{p-7ea3f49c.entry.js → p-5c4ba8a0.entry.js} +1 -1
  259. package/dist/mint-components/{p-81bc6dca.system.entry.js → p-5ce78407.system.entry.js} +1 -1
  260. package/dist/mint-components/{p-14183edc.entry.js → p-61897e72.entry.js} +1 -1
  261. package/dist/mint-components/{p-025ddad2.system.entry.js → p-626b31cb.system.entry.js} +1 -1
  262. package/dist/mint-components/{p-bf9ab2d3.js → p-642f2c89.js} +1 -1
  263. package/dist/mint-components/{p-78e6dc8d.entry.js → p-653db72e.entry.js} +1 -1
  264. package/dist/mint-components/{p-27daf264.entry.js → p-6668f9f0.entry.js} +1 -1
  265. package/dist/mint-components/{p-f368f04a.system.js → p-686dd5eb.system.js} +1 -1
  266. package/dist/mint-components/p-6c4ad51a.js +1 -0
  267. package/dist/mint-components/{p-8e148cb0.system.js → p-7265bbcb.system.js} +1 -1
  268. package/dist/mint-components/{p-2d3f7b76.system.entry.js → p-738dce27.system.entry.js} +1 -1
  269. package/dist/mint-components/{p-379cb9f1.system.js → p-7562cd98.system.js} +1 -1
  270. package/dist/mint-components/{p-5fdf0286.system.js → p-77b9cde8.system.js} +1 -1
  271. package/dist/mint-components/p-77fa2383.entry.js +1 -0
  272. package/dist/mint-components/{p-f6de2e5c.system.entry.js → p-782af7ae.system.entry.js} +1 -1
  273. package/dist/mint-components/p-7939e4af.entry.js +1 -0
  274. package/dist/mint-components/{p-1317cc92.system.js → p-7b59e13c.system.js} +1 -1
  275. package/dist/mint-components/{p-f32050f6.system.js → p-7efb8782.system.js} +1 -1
  276. package/dist/mint-components/{p-24f1d342.system.entry.js → p-80e116ec.system.entry.js} +1 -1
  277. package/dist/mint-components/p-8285869e.entry.js +9 -0
  278. package/dist/mint-components/{p-614723aa.js → p-832aea99.js} +1 -1
  279. package/dist/mint-components/{p-e920c95c.system.js → p-85721089.system.js} +1 -1
  280. package/dist/mint-components/{p-376c7608.system.js → p-8583ce0c.system.js} +1 -1
  281. package/dist/mint-components/{p-71561bb2.system.entry.js → p-8899ff38.system.entry.js} +1 -1
  282. package/dist/mint-components/p-892797eb.system.entry.js +1 -0
  283. package/dist/mint-components/{p-2ab31786.js → p-8962e023.js} +1 -1
  284. package/dist/mint-components/{p-1599a178.entry.js → p-8f2d03c7.entry.js} +1 -1
  285. package/dist/mint-components/{p-ab59c5eb.system.entry.js → p-90833864.system.entry.js} +1 -1
  286. package/dist/mint-components/p-91a96e98.entry.js +1 -0
  287. package/dist/mint-components/{p-ca5b9f4d.system.entry.js → p-9390586b.system.entry.js} +1 -1
  288. package/dist/mint-components/{p-38d04e4b.entry.js → p-95510f27.entry.js} +1 -1
  289. package/dist/mint-components/{p-432a44de.entry.js → p-982d1f6f.entry.js} +2 -3
  290. package/dist/mint-components/{p-c66e5217.system.js → p-a0c5631b.system.js} +1 -1
  291. package/dist/mint-components/{p-df88dcaa.system.js → p-a4825ec2.system.js} +1 -1
  292. package/dist/mint-components/{p-0766438e.js → p-a4f8abad.js} +1 -1
  293. package/dist/mint-components/{p-209157a9.system.entry.js → p-a96c9bbb.system.entry.js} +1 -1
  294. package/dist/mint-components/{p-eee0bcf4.entry.js → p-af407cce.entry.js} +1 -1
  295. package/dist/mint-components/p-b2b85238.entry.js +1 -0
  296. package/dist/mint-components/p-b395470f.entry.js +16 -0
  297. package/dist/mint-components/{p-45e2a83a.js → p-b3ad957c.js} +1 -1
  298. package/dist/mint-components/{p-921eb024.entry.js → p-b66f45d1.entry.js} +1 -1
  299. package/dist/mint-components/{p-cfba6b4e.system.entry.js → p-b96e90a2.system.entry.js} +1 -1
  300. package/dist/mint-components/{p-45230a44.js → p-bab4929e.js} +1 -1
  301. package/dist/mint-components/p-bba16a46.system.entry.js +1 -0
  302. package/dist/mint-components/{p-c0a85e22.js → p-bc386a7b.js} +1 -1
  303. package/dist/mint-components/p-be12607e.entry.js +281 -0
  304. package/dist/mint-components/{p-a7f72a66.js → p-bee4af5d.js} +1 -1
  305. package/dist/mint-components/p-bf188b72.system.entry.js +1 -0
  306. package/dist/mint-components/{p-6b4e5d94.system.entry.js → p-c30d0049.system.entry.js} +1 -1
  307. package/dist/mint-components/{p-30cfe3e3.system.entry.js → p-c45a929a.system.entry.js} +1 -1
  308. package/dist/mint-components/{p-50d959bd.js → p-c813ec64.js} +1 -1
  309. package/dist/mint-components/p-c8a3f3b0.js +499 -0
  310. package/dist/mint-components/{p-b3309d9b.entry.js → p-c8a8d231.entry.js} +2 -2
  311. package/dist/mint-components/{p-3354cc75.system.entry.js → p-c8bcbf8b.system.entry.js} +1 -1
  312. package/dist/mint-components/p-ca098be1.system.js +1 -0
  313. package/dist/mint-components/{p-623a0a0b.system.entry.js → p-d005df28.system.entry.js} +1 -1
  314. package/dist/mint-components/{p-8a6531d2.js → p-d0993bb9.js} +1 -1
  315. package/dist/mint-components/p-d18dedd4.js +1 -0
  316. package/dist/mint-components/{p-e1292288.system.entry.js → p-d3b1ab20.system.entry.js} +1 -1
  317. package/dist/mint-components/p-d4f332a7.entry.js +106 -0
  318. package/dist/mint-components/{p-b1765c78.system.js → p-d55c50af.system.js} +1 -1
  319. package/dist/mint-components/p-d6193876.system.js +1 -0
  320. package/dist/mint-components/{p-092c2606.entry.js → p-db0a2afd.entry.js} +1 -1
  321. package/dist/mint-components/p-de0d6fd7.js +49 -0
  322. package/dist/mint-components/p-e00ec007.js +1 -0
  323. package/dist/mint-components/{p-9a15cd5a.system.entry.js → p-e12754f5.system.entry.js} +1 -1
  324. package/dist/mint-components/p-e30abc44.js +1 -0
  325. package/dist/mint-components/{p-3218bb1d.entry.js → p-e506bf7f.entry.js} +1 -1
  326. package/dist/mint-components/p-e55aafe9.system.js +1 -0
  327. package/dist/mint-components/{p-3bbc0db2.entry.js → p-e5ea43b1.entry.js} +2 -2
  328. package/dist/mint-components/{p-abd717d4.js → p-e6240c72.js} +1 -1
  329. package/dist/mint-components/{p-3a41b39c.js → p-e84b874c.js} +1 -1
  330. package/dist/mint-components/{p-dbc8afaa.system.entry.js → p-e9485160.system.entry.js} +1 -1
  331. package/dist/mint-components/p-ea03e50e.system.js +1 -0
  332. package/dist/mint-components/p-ec0b649a.entry.js +1 -0
  333. package/dist/mint-components/{p-925aa740.system.entry.js → p-f1374258.system.entry.js} +1 -1
  334. package/dist/mint-components/{p-e6de31a7.system.entry.js → p-f39cf252.system.entry.js} +1 -1
  335. package/dist/mint-components/{p-6f6c3ac6.system.entry.js → p-f4e36adf.system.entry.js} +1 -1
  336. package/dist/mint-components/{p-02e2b13b.system.js → p-f55ecf35.system.js} +1 -1
  337. package/dist/mint-components/{p-7a091fa7.js → p-f581aac7.js} +1 -1
  338. package/dist/mint-components/{p-8d073bdf.entry.js → p-f6528f8a.entry.js} +1 -1
  339. package/dist/mint-components/{p-9ba8b28b.system.entry.js → p-f7ca4cc4.system.entry.js} +1 -1
  340. package/dist/mint-components/p-f8026ed6.system.js +1 -0
  341. package/dist/mint-components/{p-13d8ecad.js → p-f8a09b0f.js} +1 -1
  342. package/dist/mint-components/p-fb804001.system.entry.js +1 -0
  343. package/dist/mint-components/{p-0b32e1d4.system.entry.js → p-fc284f91.system.entry.js} +1 -1
  344. package/dist/mint-components/{p-099ce3d5.system.entry.js → p-fe1d3cf8.system.entry.js} +1 -1
  345. package/dist/mint-components/p-fe70e20c.entry.js +1 -0
  346. package/dist/mint-components/p-ff118a19.system.js +1 -0
  347. package/dist/types/components/sqm-checkbox-field/sqm-checkbox-field.d.ts +1 -1
  348. package/dist/types/components/sqm-referral-iframe/sqm-referral-iframe-view.d.ts +1 -0
  349. package/dist/types/components/sqm-referral-iframe/sqm-referral-iframe.d.ts +5 -0
  350. package/dist/types/components/sqm-referral-table/TaxAndCashReferralTableRewardsCell.stories.d.ts +1 -18
  351. package/dist/types/components/sqm-rewards-table/TaxAndCashRewardsTableCell.stories.d.ts +7 -19
  352. package/dist/types/components/sqm-share-link/ShareLink.stories.d.ts +9 -0
  353. package/dist/types/components/sqm-share-link/UseShareLink.stories.d.ts +6 -0
  354. package/dist/types/components/sqm-share-link/sqm-share-link-view.d.ts +41 -0
  355. package/dist/types/components/sqm-share-link/sqm-share-link.d.ts +195 -2
  356. package/dist/types/components/sqm-share-link/useShareLink.d.ts +33 -4
  357. package/dist/types/components/sqm-user-attribute/UserAttribute.stories.d.ts +11 -0
  358. package/dist/types/components/sqm-user-attribute/sqm-user-attribute-view.d.ts +8 -0
  359. package/dist/types/components/sqm-user-attribute/sqm-user-attribute.d.ts +45 -0
  360. package/dist/types/components/sqm-user-attribute/useUserAttribute.d.ts +3 -0
  361. package/dist/types/components/sqm-widget-verification/keys.d.ts +0 -2
  362. package/dist/types/components/sqm-widget-verification/sqm-widget-verification.d.ts +7 -75
  363. package/dist/types/components/sqm-widget-verification/useWidgetVerification.d.ts +0 -2
  364. package/dist/types/components/tax-and-cash/data.d.ts +0 -1
  365. package/dist/types/components/tax-and-cash/sqm-banking-info-form/formDefinitions.d.ts +0 -2
  366. package/dist/types/components/tax-and-cash/sqm-banking-info-form/sqm-banking-info-form-view.d.ts +0 -4
  367. package/dist/types/components/tax-and-cash/sqm-banking-info-form/sqm-banking-info-form.d.ts +0 -165
  368. package/dist/types/components/tax-and-cash/sqm-indirect-tax-form/useIndirectTaxForm.d.ts +0 -7
  369. package/dist/types/components/tax-and-cash/sqm-tax-and-cash/sqm-tax-and-cash.d.ts +5 -0
  370. package/dist/types/components/tax-and-cash/sqm-user-info-form/sqm-user-info-form-view.d.ts +1 -0
  371. package/dist/types/components/tax-and-cash/sqm-user-info-form/sqm-user-info-form.d.ts +4 -0
  372. package/dist/types/components.d.ts +472 -613
  373. package/dist/types/saasquatch.d.ts +0 -2
  374. package/docs/docs.docx +0 -0
  375. package/docs/raisins.json +1 -1
  376. package/grapesjs/grapesjs.js +1 -1
  377. package/package.json +15 -3
  378. package/readme.md +60 -1
  379. package/dist/cjs/eventKeys-7af4df4d.js +0 -5
  380. package/dist/cjs/parseStates-d1effc19.js +0 -16
  381. package/dist/cjs/sqm-email-verification_2.cjs.entry.js +0 -886
  382. package/dist/cjs/sqm-partner-info-modal-view-97770d03.js +0 -149
  383. package/dist/cjs/utils-15ce04e3.js +0 -93
  384. package/dist/collection/components/sqm-partner-info-modal/PartnerInfoModal.stories.js +0 -171
  385. package/dist/collection/components/sqm-partner-info-modal/sqm-partner-info-modal-view.js +0 -143
  386. package/dist/collection/components/sqm-partner-info-modal/sqm-partner-info-modal.js +0 -669
  387. package/dist/collection/components/sqm-partner-info-modal/usePartnerInfoModal.js +0 -269
  388. package/dist/collection/components/sqm-widget-verification/WidgetVerification.stories.js +0 -16
  389. package/dist/esm/eventKeys-f76b6a03.js +0 -3
  390. package/dist/esm/keys-1054056a.js +0 -8
  391. package/dist/esm/parseStates-ed75e224.js +0 -14
  392. package/dist/esm/sqm-email-verification_2.entry.js +0 -881
  393. package/dist/esm/sqm-partner-info-modal-view-5709904e.js +0 -146
  394. package/dist/esm/utils-17daa419.js +0 -85
  395. package/dist/esm-es5/ShadowViewAddon-4d554869.js +0 -1
  396. package/dist/esm-es5/data-017e5ef2.js +0 -1
  397. package/dist/esm-es5/eventKeys-f76b6a03.js +0 -1
  398. package/dist/esm-es5/keys-1054056a.js +0 -1
  399. package/dist/esm-es5/parseStates-ed75e224.js +0 -1
  400. package/dist/esm-es5/sqm-email-verification_2.entry.js +0 -1
  401. package/dist/esm-es5/sqm-partner-info-modal-view-5709904e.js +0 -1
  402. package/dist/esm-es5/sqm-portal-container-view-a8c708cd.js +0 -1
  403. package/dist/esm-es5/sqm-user-info-form-view-d13f9d3e.js +0 -1
  404. package/dist/esm-es5/utils-17daa419.js +0 -1
  405. package/dist/mint-components/p-00046ec1.js +0 -116
  406. package/dist/mint-components/p-00dd7f08.js +0 -1
  407. package/dist/mint-components/p-0102ad17.system.entry.js +0 -1
  408. package/dist/mint-components/p-0a6489fa.entry.js +0 -1
  409. package/dist/mint-components/p-0f042aa6.entry.js +0 -116
  410. package/dist/mint-components/p-115dfc03.system.js +0 -1
  411. package/dist/mint-components/p-13f3a647.js +0 -1
  412. package/dist/mint-components/p-1d86895f.system.js +0 -1
  413. package/dist/mint-components/p-1f387c7b.system.js +0 -1
  414. package/dist/mint-components/p-1faa6ddf.system.entry.js +0 -1
  415. package/dist/mint-components/p-28ed2ae9.js +0 -1
  416. package/dist/mint-components/p-31edeff4.system.js +0 -1
  417. package/dist/mint-components/p-3254fbb4.entry.js +0 -291
  418. package/dist/mint-components/p-4034f157.js +0 -1
  419. package/dist/mint-components/p-4691e9d5.system.js +0 -1
  420. package/dist/mint-components/p-4a8ffa03.system.js +0 -1
  421. package/dist/mint-components/p-4e34bcb1.system.js +0 -1
  422. package/dist/mint-components/p-4f9dc974.js +0 -1
  423. package/dist/mint-components/p-53d90eb5.js +0 -463
  424. package/dist/mint-components/p-5e300ec1.system.js +0 -6
  425. package/dist/mint-components/p-6af71f23.entry.js +0 -9
  426. package/dist/mint-components/p-6c23abd8.entry.js +0 -1
  427. package/dist/mint-components/p-6f8dde97.system.js +0 -1
  428. package/dist/mint-components/p-753d06ef.entry.js +0 -133
  429. package/dist/mint-components/p-7aace2b3.system.js +0 -1
  430. package/dist/mint-components/p-87f86492.js +0 -1
  431. package/dist/mint-components/p-8ae8968c.js +0 -1
  432. package/dist/mint-components/p-8f15bf17.entry.js +0 -1
  433. package/dist/mint-components/p-99eecdcb.system.entry.js +0 -1
  434. package/dist/mint-components/p-9b15ee47.system.js +0 -1
  435. package/dist/mint-components/p-a49d9288.entry.js +0 -1
  436. package/dist/mint-components/p-b0ab1065.system.entry.js +0 -1
  437. package/dist/mint-components/p-b1b20d42.entry.js +0 -11
  438. package/dist/mint-components/p-b52a7da9.system.entry.js +0 -1
  439. package/dist/mint-components/p-b699f76e.system.js +0 -1
  440. package/dist/mint-components/p-b6a1e2ac.js +0 -1
  441. package/dist/mint-components/p-b7370480.js +0 -1
  442. package/dist/mint-components/p-badf28bb.system.js +0 -1
  443. package/dist/mint-components/p-c41d536d.entry.js +0 -1
  444. package/dist/mint-components/p-ce7d824b.js +0 -49
  445. package/dist/mint-components/p-d08408b3.entry.js +0 -1
  446. package/dist/mint-components/p-d6ccb6fc.entry.js +0 -1
  447. package/dist/mint-components/p-e516e8ca.system.entry.js +0 -1
  448. package/dist/mint-components/p-e93cdcbd.system.js +0 -1
  449. package/dist/mint-components/p-eb285d38.system.entry.js +0 -1
  450. package/dist/mint-components/p-f782ff10.system.entry.js +0 -1
  451. package/dist/types/components/sqm-partner-info-modal/PartnerInfoModal.stories.d.ts +0 -15
  452. package/dist/types/components/sqm-partner-info-modal/sqm-partner-info-modal-view.d.ts +0 -50
  453. package/dist/types/components/sqm-partner-info-modal/sqm-partner-info-modal.d.ts +0 -122
  454. package/dist/types/components/sqm-partner-info-modal/usePartnerInfoModal.d.ts +0 -17
  455. package/dist/types/components/sqm-widget-verification/WidgetVerification.stories.d.ts +0 -8
  456. package/docs/stats.json +0 -122783
@@ -1,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
  }
@@ -107,8 +107,7 @@ import * as LeadFormDropdownField from "../sqm-lead-form/LeadFormDropdownField.s
107
107
  import * as LeadCheckboxField from "../sqm-lead-form/LeadCheckboxField.stories";
108
108
  import * as Skeleton from "../sqm-skeleton/Skeleton.stories";
109
109
  import * as UserInfoFormView from "../tax-and-cash/sqm-user-info-form/UserInfoFormView.stories";
110
- import * as PartnerInfoModal from "../sqm-partner-info-modal/PartnerInfoModal.stories";
111
- import * as WidgetVerification from "../sqm-widget-verification/WidgetVerification.stories";
110
+ import * as UserAttribute from "../sqm-user-attribute/UserAttribute.stories";
112
111
  import { ShadowViewAddon } from "../../ShadowViewAddon";
113
112
  import { CucumberAddon } from "./CucumberAddon";
114
113
  import { HookStoryAddon } from "./HookStoryAddon";
@@ -220,8 +219,7 @@ const stories = [
220
219
  TaxAndCashRewardsTable,
221
220
  TaxAndCashReferralTableRewardsCell,
222
221
  TaxAndCashReferralTable,
223
- PartnerInfoModal,
224
- WidgetVerification,
222
+ UserAttribute,
225
223
  ];
226
224
  /**
227
225
  * 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
+ }
@@ -1,6 +1,4 @@
1
1
  export const SHOW_CODE_NAMESPACE = "sq:code-verification";
2
- export const SHOW_PARTNER_MODAL_NAMESPACE = "sq:show-partner-modal";
3
- export const PARTNER_CREATED_NAMESPACE = "sq:partner-created";
4
2
  export const VERIFICATION_EMAIL_NAMESPACE = "sq:verification-email";
5
3
  export const VERIFICATION_PARENT_NAMESPACE = "sq:verification-context";
6
4
  export const VERIFICATION_EVENT_KEY = "sq:code-verified";
@@ -54,6 +54,7 @@ const style = {
54
54
  },
55
55
  ContinueButton: {
56
56
  width: "100%",
57
+ maxWidth: "100px",
57
58
  },
58
59
  FooterContainer: {
59
60
  display: "flex",
@@ -131,7 +132,7 @@ export function WidgetCodeVerificationView(props) {
131
132
  h("sl-input", { class: inputClass, name: "code" }),
132
133
  h("sl-input", { class: inputClass, name: "code" })),
133
134
  states.verifyFailed && (h("p", { class: sheet.classes.ErrorText }, text.invalidCodeText)),
134
- h("div", { class: sheet.classes.FooterContainer },
135
- h(TextSpanView, { type: "p" }, resendCodeText)),
136
- h("sl-button", { class: sheet.classes.ContinueButton, onClick: callbacks.submitCode, disabled: states.loading || states.initialiseLoading, loading: states.loading || states.initialiseLoading, exportparts: "base: primarybutton-base", type: "primary" }, text.verifyText)))));
135
+ h("sl-button", { class: sheet.classes.ContinueButton, onClick: callbacks.submitCode, disabled: states.loading || states.initialiseLoading, loading: states.loading || states.initialiseLoading, exportparts: "base: primarybutton-base", type: "primary" }, text.verifyText)),
136
+ h("div", { class: sheet.classes.FooterContainer },
137
+ h(TextSpanView, { type: "p" }, resendCodeText)))));
137
138
  }
@@ -14,9 +14,11 @@ const style = {
14
14
  gap: "var(--sl-spacing-medium)",
15
15
  position: "relative",
16
16
  flexDirection: "column",
17
+ maxWidth: "320px",
17
18
  },
18
19
  ContinueButton: {
19
20
  width: "100%",
21
+ maxWidth: "100px",
20
22
  },
21
23
  SkeletonOne: {
22
24
  width: "50%",
@@ -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,39 +80,29 @@ export function useWidgetEmailVerification(props) {
80
80
  setLoading(false);
81
81
  }, [initialized]);
82
82
  const submitEmail = async (e) => {
83
- var _a, _b, _c, _d;
84
83
  e.preventDefault();
85
84
  if (!(data === null || data === void 0 ? void 0 : data.viewer))
86
85
  return;
87
86
  setLoading(true);
88
- setMutationError(false);
89
- setError(false);
90
- let toAddress = data.viewer.email;
87
+ const toAddress = data.viewer.email;
91
88
  if (!toAddress) {
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 : "";
89
+ // If no email on the user, set one
90
+ const formData = e.detail.formData;
91
+ const newEmail = formData.get("email").toString();
94
92
  if (!emailRegex.test(newEmail)) {
95
93
  setError(true);
96
- setLoading(false);
97
94
  return;
98
95
  }
99
- const upsertResult = await upsertUserEmail(newEmail);
100
- if (!upsertResult || !((_d = upsertResult.upsertUser) === null || _d === void 0 ? void 0 : _d.email)) {
96
+ const result = await upsertUserEmail(newEmail);
97
+ if (!result || !result.user.email)
101
98
  setError(true);
102
- setLoading(false);
103
- return;
104
- }
105
- toAddress = upsertResult.upsertUser.email;
106
99
  }
107
100
  // UI should not allow this call til initialisation is done
108
- if (!initialized) {
109
- setLoading(false);
101
+ if (!initialized)
110
102
  return;
111
- }
112
103
  const result = await sendEmail();
113
- if (!result || !result.success) {
104
+ if (!result || !result.success)
114
105
  setMutationError(true);
115
- }
116
106
  else {
117
107
  // This is used to let the code verification widget know an email was already sent
118
108
  setEmail(toAddress);