@stytch/react 20.0.0-next.0 → 20.0.0-next.1

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 (270) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/cjs/{StytchSSRProxy-CUOvjF03.js → StytchSSRProxy-Bz6LNYdq.js} +186 -1
  3. package/dist/cjs/StytchSSRProxy-Bz6LNYdq.js.map +1 -0
  4. package/dist/cjs/adminPortal/index.cjs +102 -26
  5. package/dist/cjs/adminPortal/index.cjs.map +1 -1
  6. package/dist/cjs/b2b/index.cjs +176 -138
  7. package/dist/cjs/b2b/index.cjs.map +1 -1
  8. package/dist/cjs/b2b/index.headless.cjs +24 -24
  9. package/dist/cjs/b2b/index.headless.cjs.map +1 -1
  10. package/dist/cjs/{idpHelpers-eUP8j58U.js → idpHelpers-Bj_7pbfW.js} +7 -191
  11. package/dist/cjs/idpHelpers-Bj_7pbfW.js.map +1 -0
  12. package/dist/cjs/{index-DfiRrtK8.js → index-Ni_dyEsz.js} +3 -3
  13. package/dist/cjs/{index-DfiRrtK8.js.map → index-Ni_dyEsz.js.map} +1 -1
  14. package/dist/cjs/index.cjs +207 -196
  15. package/dist/cjs/index.cjs.map +1 -1
  16. package/dist/cjs/index.headless.cjs +32 -32
  17. package/dist/cjs/index.headless.cjs.map +1 -1
  18. package/dist/cjs/{passwordManagerDisableAutofillProps-C0akDAKd.js → passwordManagerDisableAutofillProps-DV31RTL_.js} +2 -2
  19. package/dist/cjs/{passwordManagerDisableAutofillProps-C0akDAKd.js.map → passwordManagerDisableAutofillProps-DV31RTL_.js.map} +1 -1
  20. package/dist/cjs/{shadcn-Bbv2Hk3P.js → shadcn-B8TEzQMT.js} +99 -81
  21. package/dist/cjs/shadcn-B8TEzQMT.js.map +1 -0
  22. package/dist/cjs-dev/{StytchSSRProxy-D0B5PuT0.js → StytchSSRProxy-CxXsyme4.js} +186 -1
  23. package/dist/cjs-dev/StytchSSRProxy-CxXsyme4.js.map +1 -0
  24. package/dist/cjs-dev/adminPortal/index.cjs +102 -26
  25. package/dist/cjs-dev/adminPortal/index.cjs.map +1 -1
  26. package/dist/cjs-dev/b2b/index.cjs +176 -138
  27. package/dist/cjs-dev/b2b/index.cjs.map +1 -1
  28. package/dist/cjs-dev/b2b/index.headless.cjs +24 -24
  29. package/dist/cjs-dev/b2b/index.headless.cjs.map +1 -1
  30. package/dist/cjs-dev/{idpHelpers-DOOVv6dT.js → idpHelpers-Cf8Qq1B4.js} +7 -191
  31. package/dist/cjs-dev/idpHelpers-Cf8Qq1B4.js.map +1 -0
  32. package/dist/cjs-dev/{index-paeFcHjf.js → index-DdK3Jt4u.js} +3 -3
  33. package/dist/cjs-dev/{index-paeFcHjf.js.map → index-DdK3Jt4u.js.map} +1 -1
  34. package/dist/cjs-dev/index.cjs +207 -196
  35. package/dist/cjs-dev/index.cjs.map +1 -1
  36. package/dist/cjs-dev/index.headless.cjs +32 -32
  37. package/dist/cjs-dev/index.headless.cjs.map +1 -1
  38. package/dist/cjs-dev/{passwordManagerDisableAutofillProps-CnLBAXyr.js → passwordManagerDisableAutofillProps-D70WyvIu.js} +2 -2
  39. package/dist/cjs-dev/{passwordManagerDisableAutofillProps-CnLBAXyr.js.map → passwordManagerDisableAutofillProps-D70WyvIu.js.map} +1 -1
  40. package/dist/cjs-dev/{shadcn-CdbmlhdF.js → shadcn-C4w3DtKK.js} +99 -81
  41. package/dist/cjs-dev/shadcn-C4w3DtKK.js.map +1 -0
  42. package/dist/esm/_virtual/index.mjs +4 -4
  43. package/dist/esm/_virtual/index3.mjs +3 -5
  44. package/dist/esm/_virtual/index3.mjs.map +1 -1
  45. package/dist/esm/_virtual/index4.mjs +5 -3
  46. package/dist/esm/_virtual/index4.mjs.map +1 -1
  47. package/dist/esm/_virtual/index6.mjs +2 -2
  48. package/dist/esm/_virtual/index7.mjs +2 -2
  49. package/dist/esm/adminPortal/index.mjs +4 -1
  50. package/dist/esm/adminPortal/index.mjs.map +1 -1
  51. package/dist/esm/b2b/index.mjs.map +1 -1
  52. package/dist/esm/node_modules/lodash.merge/index.mjs +1 -1
  53. package/dist/esm/node_modules/use-sync-external-store/shim/index.mjs +1 -1
  54. package/dist/esm/packages/core/src/rpc/FrameClient.mjs +1 -0
  55. package/dist/esm/packages/core/src/rpc/FrameClient.mjs.map +1 -1
  56. package/dist/esm/packages/web/messages/b2b/en.json.mjs +10 -3
  57. package/dist/esm/packages/web/messages/b2b/en.json.mjs.map +1 -1
  58. package/dist/esm/packages/web/messages/en.json.mjs +10 -3
  59. package/dist/esm/packages/web/messages/en.json.mjs.map +1 -1
  60. package/dist/esm/packages/web/src/adminPortal/memberManagement/AccessSection.mjs +6 -3
  61. package/dist/esm/packages/web/src/adminPortal/memberManagement/AccessSection.mjs.map +1 -1
  62. package/dist/esm/packages/web/src/adminPortal/memberManagement/InviteModal.mjs +4 -1
  63. package/dist/esm/packages/web/src/adminPortal/memberManagement/InviteModal.mjs.map +1 -1
  64. package/dist/esm/packages/web/src/adminPortal/memberManagement/MemberListScreen.mjs +3 -1
  65. package/dist/esm/packages/web/src/adminPortal/memberManagement/MemberListScreen.mjs.map +1 -1
  66. package/dist/esm/packages/web/src/adminPortal/scim/SCIMConnectionRoleAssignmentsSection.mjs +6 -2
  67. package/dist/esm/packages/web/src/adminPortal/scim/SCIMConnectionRoleAssignmentsSection.mjs.map +1 -1
  68. package/dist/esm/packages/web/src/adminPortal/settings/OrgSettingsRoleAssignmentsSection.mjs +7 -3
  69. package/dist/esm/packages/web/src/adminPortal/settings/OrgSettingsRoleAssignmentsSection.mjs.map +1 -1
  70. package/dist/esm/packages/web/src/adminPortal/sso/RoleAssignmentsSection.mjs +5 -1
  71. package/dist/esm/packages/web/src/adminPortal/sso/RoleAssignmentsSection.mjs.map +1 -1
  72. package/dist/esm/packages/web/src/adminPortal/utils/theme.mjs +1 -1
  73. package/dist/esm/packages/web/src/adminPortal/utils/useRbac.mjs.map +1 -1
  74. package/dist/esm/packages/web/src/adminPortal/utils/useRoleAutocomplete.mjs +3 -3
  75. package/dist/esm/packages/web/src/adminPortal/utils/useRoleAutocomplete.mjs.map +1 -1
  76. package/dist/esm/packages/web/src/adminPortal/utils/useRoleDisplayInfo.mjs +2 -2
  77. package/dist/esm/packages/web/src/adminPortal/utils/useRoleDisplayInfo.mjs.map +1 -1
  78. package/dist/esm/packages/web/src/adminPortal/utils/useRoles.mjs +7 -2
  79. package/dist/esm/packages/web/src/adminPortal/utils/useRoles.mjs.map +1 -1
  80. package/dist/esm/packages/web/src/ui/b2b/components/OrganizationRow.mjs +1 -1
  81. package/dist/esm/packages/web/src/ui/b2b/screens/EmailConfirmation.mjs +27 -3
  82. package/dist/esm/packages/web/src/ui/b2b/screens/EmailConfirmation.mjs.map +1 -1
  83. package/dist/esm/packages/web/src/ui/b2b/screens/RecoveryCodeEntryScreen.mjs +2 -0
  84. package/dist/esm/packages/web/src/ui/b2b/screens/RecoveryCodeEntryScreen.mjs.map +1 -1
  85. package/dist/esm/packages/web/src/ui/b2b/screens/SMSOTPEntryScreen.mjs +2 -0
  86. package/dist/esm/packages/web/src/ui/b2b/screens/SMSOTPEntryScreen.mjs.map +1 -1
  87. package/dist/esm/packages/web/src/ui/b2b/utils.mjs +8 -1
  88. package/dist/esm/packages/web/src/ui/b2b/utils.mjs.map +1 -1
  89. package/dist/esm/packages/web/src/ui/b2c/components/GoogleOneTap.mjs +1 -1
  90. package/dist/esm/packages/web/src/ui/b2c/screens/Main/LoginForm/index.mjs +1 -1
  91. package/dist/esm/packages/web/src/ui/b2c/screens/Passkey/EditableRow.mjs +1 -1
  92. package/dist/esm/packages/web/src/ui/b2c/screens/Secondary/EmailConfirmation.mjs +10 -4
  93. package/dist/esm/packages/web/src/ui/b2c/screens/Secondary/EmailConfirmation.mjs.map +1 -1
  94. package/dist/esm/packages/web/src/ui/b2c/screens/Secondary/PasswordCreateAuthenticate.mjs +2 -1
  95. package/dist/esm/packages/web/src/ui/b2c/screens/Secondary/PasswordCreateAuthenticate.mjs.map +1 -1
  96. package/dist/esm/packages/web/src/ui/b2c/screens/Secondary/PasswordlessAuthenticate.mjs +5 -68
  97. package/dist/esm/packages/web/src/ui/b2c/screens/Secondary/PasswordlessAuthenticate.mjs.map +1 -1
  98. package/dist/esm/packages/web/src/ui/b2c/screens/Secondary/usePasswordlessAuthenticate.mjs +71 -0
  99. package/dist/esm/packages/web/src/ui/b2c/screens/Secondary/usePasswordlessAuthenticate.mjs.map +1 -0
  100. package/dist/esm/packages/web/src/ui/components/atoms/AnimatedContainer.mjs +1 -1
  101. package/dist/esm/packages/web/src/ui/components/atoms/Button.mjs +1 -1
  102. package/dist/esm/packages/web/src/ui/components/atoms/CircularProgress.mjs +4 -5
  103. package/dist/esm/packages/web/src/ui/components/atoms/CircularProgress.mjs.map +1 -1
  104. package/dist/esm/packages/web/src/ui/components/atoms/CodeContainer.mjs +1 -1
  105. package/dist/esm/packages/web/src/ui/components/atoms/Column.mjs +1 -1
  106. package/dist/esm/packages/web/src/ui/components/atoms/Typography.mjs +1 -1
  107. package/dist/esm/packages/web/src/ui/components/atoms/VerticalTransition.mjs +1 -1
  108. package/dist/esm/packages/web/src/ui/components/atoms/VisuallyHidden.mjs +1 -1
  109. package/dist/esm/packages/web/src/ui/components/atoms/Watermark.mjs +14 -23
  110. package/dist/esm/packages/web/src/ui/components/atoms/Watermark.mjs.map +1 -1
  111. package/dist/esm/packages/web/src/ui/components/atoms/Watermark.module.css.mjs +2 -2
  112. package/dist/esm/packages/web/src/ui/components/molecules/Badge.mjs +1 -1
  113. package/dist/esm/packages/web/src/ui/components/molecules/EmailInput.mjs +1 -1
  114. package/dist/esm/packages/web/src/ui/components/molecules/EmailInput.mjs.map +1 -1
  115. package/dist/esm/packages/web/src/ui/components/molecules/ErrorText.mjs +12 -4
  116. package/dist/esm/packages/web/src/ui/components/molecules/ErrorText.mjs.map +1 -1
  117. package/dist/esm/packages/web/src/ui/components/molecules/Input.mjs +3 -2
  118. package/dist/esm/packages/web/src/ui/components/molecules/Input.mjs.map +1 -1
  119. package/dist/esm/packages/web/src/ui/components/molecules/MainContainer.mjs +6 -6
  120. package/dist/esm/packages/web/src/ui/components/molecules/MainContainer.mjs.map +1 -1
  121. package/dist/esm/packages/web/src/ui/components/molecules/MainContainer.module.css.mjs +2 -2
  122. package/dist/esm/packages/web/src/ui/components/molecules/OtpInput.mjs +1 -1
  123. package/dist/esm/packages/web/src/ui/components/molecules/PasswordStrengthCheck.mjs +1 -1
  124. package/dist/esm/packages/web/src/ui/components/molecules/PhoneInput.mjs +3 -4
  125. package/dist/esm/packages/web/src/ui/components/molecules/PhoneInput.mjs.map +1 -1
  126. package/dist/esm/packages/web/src/ui/components/organisms/EmailConfirmationView.mjs +26 -3
  127. package/dist/esm/packages/web/src/ui/components/organisms/EmailConfirmationView.mjs.map +1 -1
  128. package/dist/esm/packages/web/src/ui/components/organisms/IDPConsentManifest.mjs +1 -1
  129. package/dist/esm/packages/web/src/ui/components/organisms/OneTapError.mjs +1 -1
  130. package/dist/esm/packages/web/src/ui/components/organisms/ResendOTPButton.mjs +2 -2
  131. package/dist/esm/packages/web/src/ui/components/organisms/ResendOTPButton.mjs.map +1 -1
  132. package/dist/esm/packages/web/src/ui/react/adminPortal/AdminPortalMemberManagement.mjs +0 -42
  133. package/dist/esm/packages/web/src/ui/react/adminPortal/AdminPortalMemberManagement.mjs.map +1 -1
  134. package/dist/esm/packages/web/src/ui/react/adminPortal/AdminPortalOrgSettings.mjs +0 -40
  135. package/dist/esm/packages/web/src/ui/react/adminPortal/AdminPortalOrgSettings.mjs.map +1 -1
  136. package/dist/esm/packages/web/src/ui/react/adminPortal/AdminPortalSCIM.mjs +0 -43
  137. package/dist/esm/packages/web/src/ui/react/adminPortal/AdminPortalSCIM.mjs.map +1 -1
  138. package/dist/esm/packages/web/src/ui/react/adminPortal/AdminPortalSSO.mjs +0 -36
  139. package/dist/esm/packages/web/src/ui/react/adminPortal/AdminPortalSSO.mjs.map +1 -1
  140. package/dist/esm/packages/web/src/ui/react/b2b/Stytch.mjs.map +1 -1
  141. package/dist/esm/packages/web/src/ui/react/bindings/createB2BComponent.mjs.map +1 -1
  142. package/dist/esm/packages/web/src/utils/crypto.mjs +1 -1
  143. package/dist/esm-dev/_virtual/index.mjs +4 -4
  144. package/dist/esm-dev/_virtual/index3.mjs +3 -5
  145. package/dist/esm-dev/_virtual/index3.mjs.map +1 -1
  146. package/dist/esm-dev/_virtual/index4.mjs +5 -3
  147. package/dist/esm-dev/_virtual/index4.mjs.map +1 -1
  148. package/dist/esm-dev/_virtual/index6.mjs +2 -2
  149. package/dist/esm-dev/_virtual/index7.mjs +2 -2
  150. package/dist/esm-dev/adminPortal/index.mjs +4 -1
  151. package/dist/esm-dev/adminPortal/index.mjs.map +1 -1
  152. package/dist/esm-dev/b2b/index.mjs.map +1 -1
  153. package/dist/esm-dev/node_modules/lodash.merge/index.mjs +1 -1
  154. package/dist/esm-dev/node_modules/use-sync-external-store/shim/index.mjs +1 -1
  155. package/dist/esm-dev/packages/core/src/rpc/FrameClient.mjs +1 -0
  156. package/dist/esm-dev/packages/core/src/rpc/FrameClient.mjs.map +1 -1
  157. package/dist/esm-dev/packages/web/messages/b2b/en.json.mjs +10 -3
  158. package/dist/esm-dev/packages/web/messages/b2b/en.json.mjs.map +1 -1
  159. package/dist/esm-dev/packages/web/messages/en.json.mjs +10 -3
  160. package/dist/esm-dev/packages/web/messages/en.json.mjs.map +1 -1
  161. package/dist/esm-dev/packages/web/src/adminPortal/memberManagement/AccessSection.mjs +6 -3
  162. package/dist/esm-dev/packages/web/src/adminPortal/memberManagement/AccessSection.mjs.map +1 -1
  163. package/dist/esm-dev/packages/web/src/adminPortal/memberManagement/InviteModal.mjs +4 -1
  164. package/dist/esm-dev/packages/web/src/adminPortal/memberManagement/InviteModal.mjs.map +1 -1
  165. package/dist/esm-dev/packages/web/src/adminPortal/memberManagement/MemberListScreen.mjs +3 -1
  166. package/dist/esm-dev/packages/web/src/adminPortal/memberManagement/MemberListScreen.mjs.map +1 -1
  167. package/dist/esm-dev/packages/web/src/adminPortal/scim/SCIMConnectionRoleAssignmentsSection.mjs +6 -2
  168. package/dist/esm-dev/packages/web/src/adminPortal/scim/SCIMConnectionRoleAssignmentsSection.mjs.map +1 -1
  169. package/dist/esm-dev/packages/web/src/adminPortal/settings/OrgSettingsRoleAssignmentsSection.mjs +7 -3
  170. package/dist/esm-dev/packages/web/src/adminPortal/settings/OrgSettingsRoleAssignmentsSection.mjs.map +1 -1
  171. package/dist/esm-dev/packages/web/src/adminPortal/sso/RoleAssignmentsSection.mjs +5 -1
  172. package/dist/esm-dev/packages/web/src/adminPortal/sso/RoleAssignmentsSection.mjs.map +1 -1
  173. package/dist/esm-dev/packages/web/src/adminPortal/utils/theme.mjs +1 -1
  174. package/dist/esm-dev/packages/web/src/adminPortal/utils/useRbac.mjs.map +1 -1
  175. package/dist/esm-dev/packages/web/src/adminPortal/utils/useRoleAutocomplete.mjs +3 -3
  176. package/dist/esm-dev/packages/web/src/adminPortal/utils/useRoleAutocomplete.mjs.map +1 -1
  177. package/dist/esm-dev/packages/web/src/adminPortal/utils/useRoleDisplayInfo.mjs +2 -2
  178. package/dist/esm-dev/packages/web/src/adminPortal/utils/useRoleDisplayInfo.mjs.map +1 -1
  179. package/dist/esm-dev/packages/web/src/adminPortal/utils/useRoles.mjs +7 -2
  180. package/dist/esm-dev/packages/web/src/adminPortal/utils/useRoles.mjs.map +1 -1
  181. package/dist/esm-dev/packages/web/src/ui/b2b/components/OrganizationRow.mjs +1 -1
  182. package/dist/esm-dev/packages/web/src/ui/b2b/screens/EmailConfirmation.mjs +27 -3
  183. package/dist/esm-dev/packages/web/src/ui/b2b/screens/EmailConfirmation.mjs.map +1 -1
  184. package/dist/esm-dev/packages/web/src/ui/b2b/screens/RecoveryCodeEntryScreen.mjs +2 -0
  185. package/dist/esm-dev/packages/web/src/ui/b2b/screens/RecoveryCodeEntryScreen.mjs.map +1 -1
  186. package/dist/esm-dev/packages/web/src/ui/b2b/screens/SMSOTPEntryScreen.mjs +2 -0
  187. package/dist/esm-dev/packages/web/src/ui/b2b/screens/SMSOTPEntryScreen.mjs.map +1 -1
  188. package/dist/esm-dev/packages/web/src/ui/b2b/utils.mjs +8 -1
  189. package/dist/esm-dev/packages/web/src/ui/b2b/utils.mjs.map +1 -1
  190. package/dist/esm-dev/packages/web/src/ui/b2c/components/GoogleOneTap.mjs +1 -1
  191. package/dist/esm-dev/packages/web/src/ui/b2c/screens/Main/LoginForm/index.mjs +1 -1
  192. package/dist/esm-dev/packages/web/src/ui/b2c/screens/Passkey/EditableRow.mjs +1 -1
  193. package/dist/esm-dev/packages/web/src/ui/b2c/screens/Secondary/EmailConfirmation.mjs +10 -4
  194. package/dist/esm-dev/packages/web/src/ui/b2c/screens/Secondary/EmailConfirmation.mjs.map +1 -1
  195. package/dist/esm-dev/packages/web/src/ui/b2c/screens/Secondary/PasswordCreateAuthenticate.mjs +2 -1
  196. package/dist/esm-dev/packages/web/src/ui/b2c/screens/Secondary/PasswordCreateAuthenticate.mjs.map +1 -1
  197. package/dist/esm-dev/packages/web/src/ui/b2c/screens/Secondary/PasswordlessAuthenticate.mjs +5 -68
  198. package/dist/esm-dev/packages/web/src/ui/b2c/screens/Secondary/PasswordlessAuthenticate.mjs.map +1 -1
  199. package/dist/esm-dev/packages/web/src/ui/b2c/screens/Secondary/usePasswordlessAuthenticate.mjs +71 -0
  200. package/dist/esm-dev/packages/web/src/ui/b2c/screens/Secondary/usePasswordlessAuthenticate.mjs.map +1 -0
  201. package/dist/esm-dev/packages/web/src/ui/components/atoms/AnimatedContainer.mjs +1 -1
  202. package/dist/esm-dev/packages/web/src/ui/components/atoms/Button.mjs +1 -1
  203. package/dist/esm-dev/packages/web/src/ui/components/atoms/CircularProgress.mjs +4 -5
  204. package/dist/esm-dev/packages/web/src/ui/components/atoms/CircularProgress.mjs.map +1 -1
  205. package/dist/esm-dev/packages/web/src/ui/components/atoms/CodeContainer.mjs +1 -1
  206. package/dist/esm-dev/packages/web/src/ui/components/atoms/Column.mjs +1 -1
  207. package/dist/esm-dev/packages/web/src/ui/components/atoms/Typography.mjs +1 -1
  208. package/dist/esm-dev/packages/web/src/ui/components/atoms/VerticalTransition.mjs +1 -1
  209. package/dist/esm-dev/packages/web/src/ui/components/atoms/VisuallyHidden.mjs +1 -1
  210. package/dist/esm-dev/packages/web/src/ui/components/atoms/Watermark.mjs +14 -23
  211. package/dist/esm-dev/packages/web/src/ui/components/atoms/Watermark.mjs.map +1 -1
  212. package/dist/esm-dev/packages/web/src/ui/components/atoms/Watermark.module.css.mjs +2 -2
  213. package/dist/esm-dev/packages/web/src/ui/components/molecules/Badge.mjs +1 -1
  214. package/dist/esm-dev/packages/web/src/ui/components/molecules/EmailInput.mjs +1 -1
  215. package/dist/esm-dev/packages/web/src/ui/components/molecules/EmailInput.mjs.map +1 -1
  216. package/dist/esm-dev/packages/web/src/ui/components/molecules/ErrorText.mjs +12 -4
  217. package/dist/esm-dev/packages/web/src/ui/components/molecules/ErrorText.mjs.map +1 -1
  218. package/dist/esm-dev/packages/web/src/ui/components/molecules/Input.mjs +3 -2
  219. package/dist/esm-dev/packages/web/src/ui/components/molecules/Input.mjs.map +1 -1
  220. package/dist/esm-dev/packages/web/src/ui/components/molecules/MainContainer.mjs +6 -6
  221. package/dist/esm-dev/packages/web/src/ui/components/molecules/MainContainer.mjs.map +1 -1
  222. package/dist/esm-dev/packages/web/src/ui/components/molecules/MainContainer.module.css.mjs +2 -2
  223. package/dist/esm-dev/packages/web/src/ui/components/molecules/OtpInput.mjs +1 -1
  224. package/dist/esm-dev/packages/web/src/ui/components/molecules/PasswordStrengthCheck.mjs +1 -1
  225. package/dist/esm-dev/packages/web/src/ui/components/molecules/PhoneInput.mjs +3 -4
  226. package/dist/esm-dev/packages/web/src/ui/components/molecules/PhoneInput.mjs.map +1 -1
  227. package/dist/esm-dev/packages/web/src/ui/components/organisms/EmailConfirmationView.mjs +26 -3
  228. package/dist/esm-dev/packages/web/src/ui/components/organisms/EmailConfirmationView.mjs.map +1 -1
  229. package/dist/esm-dev/packages/web/src/ui/components/organisms/IDPConsentManifest.mjs +1 -1
  230. package/dist/esm-dev/packages/web/src/ui/components/organisms/ResendOTPButton.mjs +2 -2
  231. package/dist/esm-dev/packages/web/src/ui/components/organisms/ResendOTPButton.mjs.map +1 -1
  232. package/dist/esm-dev/packages/web/src/ui/react/adminPortal/AdminPortalMemberManagement.mjs +0 -42
  233. package/dist/esm-dev/packages/web/src/ui/react/adminPortal/AdminPortalMemberManagement.mjs.map +1 -1
  234. package/dist/esm-dev/packages/web/src/ui/react/adminPortal/AdminPortalOrgSettings.mjs +0 -40
  235. package/dist/esm-dev/packages/web/src/ui/react/adminPortal/AdminPortalOrgSettings.mjs.map +1 -1
  236. package/dist/esm-dev/packages/web/src/ui/react/adminPortal/AdminPortalSCIM.mjs +0 -43
  237. package/dist/esm-dev/packages/web/src/ui/react/adminPortal/AdminPortalSCIM.mjs.map +1 -1
  238. package/dist/esm-dev/packages/web/src/ui/react/adminPortal/AdminPortalSSO.mjs +0 -36
  239. package/dist/esm-dev/packages/web/src/ui/react/adminPortal/AdminPortalSSO.mjs.map +1 -1
  240. package/dist/esm-dev/packages/web/src/ui/react/b2b/Stytch.mjs.map +1 -1
  241. package/dist/esm-dev/packages/web/src/ui/react/bindings/createB2BComponent.mjs.map +1 -1
  242. package/dist/esm-dev/packages/web/src/utils/crypto.mjs +1 -1
  243. package/dist/types/{StytchB2BClient-Dq-ITB7Q.d.ts → StytchB2BClient-C_7NUKZh.d.ts} +1 -1
  244. package/dist/types/{StytchClient-BV0sT3Ox.d.ts → StytchClient-Ccvk8Nj1.d.ts} +1 -2
  245. package/dist/types/adminPortal/index.d.ts +5 -4
  246. package/dist/types/b2b/index.d.ts +11 -11
  247. package/dist/types/b2b/index.headless.d.ts +4 -4
  248. package/dist/types/{createAuthUrlHandler-Ck5TyB9J.d.ts → createAuthUrlHandler-BJRA2PHG.d.ts} +939 -39
  249. package/dist/types/idpHelpers-aCVwNrDk.d.ts +36 -0
  250. package/dist/types/index.d.ts +8 -8
  251. package/dist/types/index.headless.d.ts +4 -4
  252. package/dist/types/{shadcn-CFz8Asq0.d.ts → shadcn-0e4fkV5Z.d.ts} +6 -6
  253. package/messages/b2b/en.po +6 -3
  254. package/messages/en.po +6 -3
  255. package/package.json +1 -1
  256. package/dist/cjs/StytchSSRProxy-CUOvjF03.js.map +0 -1
  257. package/dist/cjs/idpHelpers-eUP8j58U.js.map +0 -1
  258. package/dist/cjs/shadcn-Bbv2Hk3P.js.map +0 -1
  259. package/dist/cjs-dev/StytchSSRProxy-D0B5PuT0.js.map +0 -1
  260. package/dist/cjs-dev/idpHelpers-DOOVv6dT.js.map +0 -1
  261. package/dist/cjs-dev/shadcn-CdbmlhdF.js.map +0 -1
  262. package/dist/esm/packages/web/src/adminPortal/MuiClassNameSetup.mjs +0 -5
  263. package/dist/esm/packages/web/src/adminPortal/MuiClassNameSetup.mjs.map +0 -1
  264. package/dist/esm/packages/web/src/adminPortal/classNameSeed.mjs +0 -5
  265. package/dist/esm/packages/web/src/adminPortal/classNameSeed.mjs.map +0 -1
  266. package/dist/esm-dev/packages/web/src/adminPortal/MuiClassNameSetup.mjs +0 -5
  267. package/dist/esm-dev/packages/web/src/adminPortal/MuiClassNameSetup.mjs.map +0 -1
  268. package/dist/esm-dev/packages/web/src/adminPortal/classNameSeed.mjs +0 -5
  269. package/dist/esm-dev/packages/web/src/adminPortal/classNameSeed.mjs.map +0 -1
  270. package/dist/types/idpHelpers-hBhPCtAC.d.ts +0 -936
@@ -1 +0,0 @@
1
- {"version":3,"file":"shadcn-Bbv2Hk3P.js","sources":["../../../core/src/utils/country.ts","../../../core/src/utils/arrayUtils.ts","../../../web/src/ui/hooks/useIsomorphicLayoutEffect.ts","../../../web/src/ui/hooks/useEvent.ts","../../../web/src/ui/components/themes/themes.ts","../../../web/src/ui/hooks/useMediaQuery.ts","../../../web/src/ui/components/PresentationConfig.ts","../../../../node_modules/classnames/index.js","../../../../internal/style-injector/src/index.ts","../../../web/src/ui/components/atoms/Watermark.tsx","../../../web/src/ui/components/atoms/Column.tsx","../../../web/src/ui/components/atoms/animation.ts","../../../web/src/ui/components/atoms/Toast.tsx","../../../web/src/ui/components/molecules/MainContainer.tsx","../../../web/src/ui/components/atoms/Logo.tsx","../../../web/src/ui/components/atoms/Typography.tsx","../../../web/src/utils/extractErrorType.ts","../../../web/src/ui/components/molecules/ErrorText.tsx","../../../web/src/ui/components/molecules/Divider.tsx","../../../web/src/ui/components/atoms/VisuallyHidden.tsx","../../../web/src/ui/components/molecules/Input.tsx","../../../web/src/utils/handleParsePhoneNumber.ts","../../../web/src/utils/accessibility.ts","../../../web/src/assets/types.ts","../../../web/src/assets/chevron.tsx","../../../web/src/ui/components/molecules/PhoneInput.tsx","../../../web/src/ui/components/molecules/EmailInput.tsx","../../../web/src/ui/components/atoms/CircularProgress.tsx","../../../web/src/ui/components/atoms/Button.tsx","../../../web/src/utils/getTranslatedError.ts","../../../web/src/assets/logo-color/Github.tsx","../../../web/src/assets/logo-color/Gmail.tsx","../../../web/src/assets/logo-color/Google.tsx","../../../web/src/assets/logo-color/Microsoft.tsx","../../../web/src/assets/logo-color/Outlook.tsx","../../../web/src/assets/logo-color/Slack.tsx","../../../web/src/ui/components/molecules/ButtonColumn.tsx","../../../web/src/ui/components/atoms/VerticalTransition.tsx","../../../web/src/ui/components/atoms/Countdown.tsx","../../../web/src/ui/components/molecules/EmailActionLayout.tsx","../../../web/src/ui/components/molecules/EmailProviderLink.tsx","../../../web/src/ui/components/organisms/EmailConfirmationView.tsx","../../../web/src/ui/hooks/useIsMounted.ts","../../../web/src/ui/components/organisms/OneTapError.tsx","../../../web/src/ui/components/molecules/Badge.tsx","../../../web/src/ui/components/molecules/LastUsed.tsx","../../../web/src/ui/components/molecules/TextColumn.tsx","../../../../node_modules/input-otp/dist/index.mjs","../../../web/src/ui/components/molecules/OtpInput.tsx","../../../web/src/ui/components/atoms/LoadingBar.tsx","../../../web/src/ui/components/atoms/AnimatedContainer.tsx","../../../web/src/ui/components/molecules/OTPEntry.tsx","../../../web/src/ui/components/organisms/SentOTPEntry.tsx","../../../web/src/ui/components/organisms/ResendOTPButton.tsx","../../../web/src/ui/hooks/useMountEffect.ts","../../../web/src/ui/components/molecules/Confirmation.tsx","../../../web/src/ui/components/molecules/PasswordInput.tsx","../../../web/src/ui/components/molecules/PasswordStrengthCheck.tsx","../../../web/src/ui/components/molecules/PasswordError.tsx","../../../web/src/ui/components/molecules/Loading.tsx","../../../web/src/ui/components/organisms/IDPContextProvider.tsx","../../../web/src/ui/b2b/MfaState.ts","../../../web/src/ui/b2b/types/ErrorType.ts","../../../web/src/ui/b2b/types/AppScreens.ts","../../../web/src/ui/b2b/getEnabledMethods.ts","../../../web/src/ui/b2b/reducer/navigation.ts","../../../web/src/ui/b2b/reducer/mfa.ts","../../../web/src/ui/b2b/reducer/index.ts","../../../web/src/ui/b2b/GlobalContextProvider.tsx","../../../web/src/ui/components/molecules/ErrorScreen.tsx","../../../web/src/ui/components/organisms/IDPConsentManifest.tsx","../../../web/src/ui/components/organisms/IDPConsent.tsx","../../../web/src/ui/components/organisms/IDPLogout.tsx","../../../web/src/assets/logo-white/AmazonWhite.tsx","../../../web/src/assets/logo-white/AppleWhite.tsx","../../../web/src/assets/logo-white/BinanceWhite.tsx","../../../web/src/assets/logo-white/BitbucketWhite.tsx","../../../web/src/assets/logo-white/CoinbaseWhite.tsx","../../../web/src/assets/logo-white/DiscordWhite.tsx","../../../web/src/assets/logo-white/FacebookWhite.tsx","../../../web/src/assets/logo-white/FigmaWhite.tsx","../../../web/src/assets/logo-white/GithubWhite.tsx","../../../web/src/assets/logo-white/GitlabWhite.tsx","../../../web/src/assets/logo-white/GmailWhite.tsx","../../../web/src/assets/logo-white/GoogleWhite.tsx","../../../web/src/assets/logo-white/LinkedinWhite.tsx","../../../web/src/assets/logo-white/MetamaskWhite.tsx","../../../web/src/assets/logo-white/MicrosoftWhite.tsx","../../../web/src/assets/logo-white/OutlookWhite.tsx","../../../web/src/assets/logo-white/PhantomWhite.tsx","../../../web/src/assets/logo-white/SalesforceWhite.tsx","../../../web/src/assets/logo-white/SlackWhite.tsx","../../../web/src/assets/logo-white/SnapchatWhite.tsx","../../../web/src/assets/logo-white/TiktokWhite.tsx","../../../web/src/assets/logo-white/TwitchWhite.tsx","../../../web/src/assets/logo-white/XTwitterWhite.tsx","../../../web/src/assets/logo-white/YahooWhite.tsx","../../../web/src/assets/logo-black/AmazonBlack.tsx","../../../web/src/assets/logo-black/AppleBlack.tsx","../../../web/src/assets/logo-black/BinanceBlack.tsx","../../../web/src/assets/logo-black/BitbucketBlack.tsx","../../../web/src/assets/logo-black/CoinbaseBlack.tsx","../../../web/src/assets/logo-black/DiscordBlack.tsx","../../../web/src/assets/logo-black/FacebookBlack.tsx","../../../web/src/assets/logo-black/FigmaBlack.tsx","../../../web/src/assets/logo-black/GithubBlack.tsx","../../../web/src/assets/logo-black/GitlabBlack.tsx","../../../web/src/assets/logo-black/GmailBlack.tsx","../../../web/src/assets/logo-black/GoogleBlack.tsx","../../../web/src/assets/logo-black/LinkedinBlack.tsx","../../../web/src/assets/logo-black/MetamaskBlack.tsx","../../../web/src/assets/logo-black/MicrosoftBlack.tsx","../../../web/src/assets/logo-black/OutlookBlack.tsx","../../../web/src/assets/logo-black/PhantomBlack.tsx","../../../web/src/assets/logo-black/SalesforceBlack.tsx","../../../web/src/assets/logo-black/SlackBlack.tsx","../../../web/src/assets/logo-black/SnapchatBlack.tsx","../../../web/src/assets/logo-black/TiktokBlack.tsx","../../../web/src/assets/logo-black/TwitchBlack.tsx","../../../web/src/assets/logo-black/XTwitterBlack.tsx","../../../web/src/assets/logo-black/YahooBlack.tsx","../../../web/src/ui/components/altIcons.ts","../../../web/src/ui/components/themes/shadcn.ts"],"sourcesContent":["// List of Alpha-2 country codes to display in the drop down for phone number entry in our pre-built UI components.\n//\n// This list contains all allowed country codes, in alphabetical order, with the exception of the US, which is placed first as it is\n// the default and our most common user country.\n//\n// This list was built by pulling all countries from https://www.iban.com/country-codes and then removing countries that are not on our\n// unsupported countries (https://app.launchdarkly.com/default/production/features/default-banned-countries-for-phone-validation/targeting).\n//\n// Other useful links are the IBAN Alpha-2 code list (https://www.iban.com/country-codes) and Twilio's per-country notes\n// (https://www.twilio.com/en-us/guidelines/ag/sms). Just substitute the country code in that URL!\n//\n// This list is served to any customer, regardless of whether they are on the default country allowlist (only US and Canada) or they allow\n// all countries. This means that users may be able to choose a country that is not allowed for a customer and receive an error. This should\n// be improved in the future: ODEVX-34.\n\nexport const COUNTRIES_LIST = {\n US: '1', // United States of America\n AX: '358', // Aland Islands\n AS: '1684', // American Samoa\n AG: '1268', // Antigua and Barbuda\n AI: '1264', // Anguilla\n AR: '54', // Argentina\n AT: '43', // Austria\n AU: '61', // Australia\n BE: '32', // Belgium\n BJ: '229', // Benin\n BO: '591', // Bolivia\n BR: '55', // Brazil\n IO: '246', // British Indian Ocean Territory (the)\n BN: '673', // Brunei Darussalam\n BG: '359', // Bulgaria\n BF: '226', // Burkina Faso\n CM: '237', // Cameroon\n CA: '1', // Canada\n BQ: '599', // Caribbean Netherlands\n CF: '236', // Central African Republic (the)\n CL: '56', // Chile\n CX: '61', // Christmas Island\n CC: '61', // Cocos (Keeling) Islands (the)\n CO: '57', // Colombia\n CD: '243', // Congo (the Democratic Republic of the)\n CK: '682', // Cook Islands (the)\n CR: '506', // Costa Rica\n HR: '385', // Croatia\n CZ: '420', // Czechia\n DK: '45', // Denmark\n DO: '1829', // Dominican Republic (the)\n EC: '593', // Ecuador\n SV: '503', // El Salvador\n EE: '372', // Estonia\n SZ: '268', // Eswatini\n FK: '500', // Falkland Islands (the) [Malvinas]\n FI: '358', // Finland\n FR: '33', // France\n GF: '594', // French Guiana\n DE: '49', // Germany\n GH: '233', // Ghana\n GR: '30', // Greece\n GD: '1473', // Grenada\n GT: '502', // Guatemala\n GG: '44', // Guernsey\n GW: '245', // Guinea-Bissau\n GY: '592', // Guyana\n HU: '36', // Hungary\n IS: '354', // Iceland\n IN: '91', // India\n IE: '353', // Ireland\n IM: '44', // Isle of Man\n IT: '39', // Italy\n JM: '1876', // Jamaica\n JP: '81', // Japan\n KZ: '7', // Kazakhstan\n KE: '254', // Kenya\n KI: '686', // Kiribati\n KR: '82', // Korea (the Republic of)\n LV: '371', // Latvia\n LT: '370', // Lithuania\n LU: '352', // Luxembourg\n MO: '853', // Macao\n MT: '356', // Malta\n MH: '692', // Marshall Islands (the)\n MR: '222', // Mauritania\n MU: '230', // Mauritius\n YT: '262', // Mayotte\n MX: '52', // Mexico\n MC: '377', // Monaco\n ME: '382', // Montenegro\n NR: '674', // Nauru\n NL: '31', // Netherlands (the)\n NZ: '64', // New Zealand\n NI: '505', // Nicaragua\n NF: '672', // Norfolk Island\n NO: '47', // Norway\n PA: '507', // Panama\n PY: '595', // Paraguay\n PE: '51', // Peru\n PN: '870', // Pitcairn\n PL: '48', // Poland\n PT: '351', // Portugal\n PR: '1', // Puerto Rico\n RO: '40', // Romania\n BL: '590', // Saint Barthélemy\n SH: '290', // Saint Helena, Ascension and Tristan da Cunha\n KN: '1869', // Saint Kitts and Nevis\n LC: '1758', // Saint Lucia\n MF: '590', // Saint Martin (French part)\n PM: '508', // Saint Pierre and Miquelon\n SM: '378', // San Marino\n ST: '239', // Sao Tome and Principe\n SC: '248', // Seychelles\n SX: '599', // Sint Maarten (Dutch part)\n SK: '421', // Slovakia\n SI: '386', // Slovenia\n ZA: '27', // South Africa\n SS: '211', // South Sudan\n ES: '34', // Spain\n SR: '597', // Suriname\n SJ: '47', // Svalbard and Jan Mayen\n SE: '46', // Sweden\n CH: '41', // Switzerland\n TW: '886', // Taiwan\n TZ: '255', // Tanzania, United Republic of\n TK: '690', // Tokelau\n TO: '676', // Tonga\n TT: '1868', // Trinidad and Tobago\n TR: '90', // Turkey\n UA: '380', // Ukraine\n GB: '44', // United Kingdom of Great Britain and Northern Ireland (the)\n UM: '1', // United States Minor Outlying Islands (the)\n UY: '598', // Uruguay\n VA: '379', // Vatican\n EH: '212', // Western Sahara\n} as const;\n\nexport type CountryCode = keyof typeof COUNTRIES_LIST;\n","/**\n * Moves the first item that matches the predicate to the front of the array.\n * Returns a tuple of [reorderedArray, foundMatch] where foundMatch indicates\n * whether a matching item was found and moved.\n *\n * Note: Returns false if the array has only one item, but does return true even if the\n * item is found at index 0. This is behavior matches user expectation that you can't\n * really reorder an array of length 1.\n */\nfunction moveToFront<T>(array: T[], predicate: (item: T) => boolean): [reorderedArray: T[], foundMatch: boolean] {\n // If the array has only one item, it can't be moved so we return false\n if (array.length <= 1) {\n return [array, false];\n }\n\n const matchingIndex = array.findIndex(predicate);\n if (matchingIndex === -1) {\n return [array, false];\n }\n\n const reordered = [...array];\n reordered.unshift(...reordered.splice(matchingIndex, 1));\n return [reordered, true];\n}\n\n// TODO: This weird structure is because export * seems to produce a type structure\n// that consuming packages downstream had issues with. Not entirely sure why,\n// I assume it's a TS bug that will be solved in the future?\nexport const arrayUtils = {\n moveToFront,\n};\n","import { useLayoutEffect, useEffect } from 'react';\n// cc https://medium.com/@alexandereardon/uselayouteffect-and-ssr-192986cdcf7a\nconst useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;\n","import { useCallback, useRef } from 'react';\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';\n\n/**\n * Use this for callbacks that are not called during render, most commonly event callbacks.\n * The returned callback will never change and therefore trigger unwanted effects\n * when used in deps or re-render of memoized components.\n * This is a copy of proposed the useEvent hook.\n */\nexport const useEvent = <Args extends unknown[], Ret = void>(fn: (...args: Args) => Ret) => {\n const handlerRef = useRef(fn);\n useIsomorphicLayoutEffect(() => {\n handlerRef.current = fn;\n }, [fn]);\n\n return useCallback((...args: Args) => {\n const fn = handlerRef.current;\n return fn(...args);\n }, []);\n};\n","import type { Theme } from './ThemeConfig';\n\n/* eslint-disable lingui/no-unlocalized-strings */\n\nexport const defaultShared = {\n // Fonts\n 'font-family': 'system-ui, sans-serif',\n 'font-family-mono':\n \"ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, 'DejaVu Sans Mono', monospace\",\n\n // Sizes\n spacing: '4px',\n 'rounded-base': '4px',\n 'text-base': '1rem',\n 'container-width': '400px',\n 'mobile-breakpoint': '768px',\n\n // Durations\n 'transition-duration': '0.15s',\n\n 'destructive-foreground': '#fff',\n} satisfies Partial<Theme>;\n\nexport const defaultTheme: Theme = {\n ...defaultShared,\n\n 'color-scheme': 'light',\n\n // Colors\n background: 'oklch(1 0 0)',\n foreground: 'oklch(0.14 0 0)',\n\n primary: 'oklch(0.2 0 0)',\n 'primary-foreground': 'oklch(0.99 0 0)',\n\n secondary: 'oklch(0.97 0 0)',\n 'secondary-foreground': 'oklch(0.2 0 0)',\n\n muted: 'oklch(0.97 0 0)',\n 'muted-foreground': 'oklch(0.56 0 0)',\n\n accent: 'oklch(0.97 0 0)',\n 'accent-foreground': 'oklch(0.2 0 0)',\n\n border: 'oklch(0.92 0 0)',\n input: 'oklch(0.92 0 0)',\n ring: 'oklch(0.72 0 0)',\n\n destructive: 'oklch(0.577 0.245 27.325)',\n warning: 'oklch(0.67 0.16 58)',\n success: 'oklch(0.6 0.13 163)',\n};\n\nexport const defaultDarkTheme: Theme = {\n ...defaultShared,\n\n 'color-scheme': 'dark',\n\n background: 'oklch(0.145 0 0)',\n foreground: 'oklch(0.985 0 0)',\n\n primary: 'oklch(0.922 0 0)',\n 'primary-foreground': 'oklch(0.205 0 0)',\n secondary: 'oklch(0.269 0 0)',\n 'secondary-foreground': 'oklch(0.985 0 0)',\n muted: 'oklch(0.269 0 0)',\n 'muted-foreground': 'oklch(0.708 0 0)',\n accent: 'oklch(0.269 0 0)',\n 'accent-foreground': 'oklch(0.985 0 0)',\n\n border: 'oklch(1 0 0 / 10%)',\n input: 'oklch(1 0 0 / 15%)',\n ring: 'oklch(0.556 0 0)',\n\n destructive: 'oklch(0.704 0.191 22.216)',\n warning: 'oklch(0.754 0.16 58)',\n success: 'oklch(0.704 0.13 163)',\n};\n","import { useEffect, useMemo, useState } from 'react';\n\n/**\n * Return true if media query matches. The value is bound to media query list change event\n * so it will update automatically and trigger re-render when it changes. Pass in undefined\n * to disable this and cause it to return false.\n */\nexport function useMediaQuery(mediaQuery: string | undefined) {\n const query = useMemo(() => (mediaQuery ? matchMedia(mediaQuery) : undefined), [mediaQuery]);\n const [match, setMatch] = useState(() => query?.matches ?? false);\n useEffect(() => {\n if (!query) {\n setMatch(false);\n return;\n }\n\n const abortController = new AbortController();\n query.addEventListener('change', (evt) => setMatch(evt.matches), { signal: abortController.signal });\n return () => abortController.abort();\n }, [query]);\n return match;\n}\n","import { defaultTheme } from './themes/themes';\nimport { createContext, useContext, useMemo } from 'react';\nimport { PresentationConfig } from '../../types';\nimport { Theme } from './themes/ThemeConfig';\nimport { useMediaQuery } from '../hooks/useMediaQuery';\nimport { IconRegistry } from './IconRegistry';\nimport { IconNames } from '../b2c/components/Icons';\nimport { logger } from '@stytch/core';\n\nexport type PresentationOptions = {\n /**\n * When this value is false, the title and description text will not show in the SDK.\n */\n hideHeaderText: boolean;\n\n /**\n * Optional suffix for <input> id attribute so input IDs are unique.\n */\n inputIdSuffix?: string;\n\n /**\n * The configuration object for your custom logo.\n */\n logo?: {\n /**\n * The URL of your custom logo.\n */\n url: string;\n\n /**\n * Alt text for the logo. This would usually be the name of the website or your company,\n * unless this is already repeated nearby in which case this should be left empty.\n */\n alt: string;\n };\n\n /**\n * Override our icons. Currently, this only supports logos, such as those that appear in Oauth buttons.\n * This should be an object where the key is the icon name and the value is a React component\n * (not React element) with a size prop and the rest spread onto the root element.\n *\n * Note that custom logos not imported from our packages is not yet available in @stytch/vanilla-js.\n * We are looking at provide alternatives in the future.\n *\n * @example\n *\n * // Using a solid black or white icon\n * import { whiteIcons } from '@stytch/react';\n *\n * const presentation = {\n * options: {\n * icons: {\n * outlook: whiteIcons.outlook,\n * },\n * },\n * };\n *\n * // Using a custom icon\n * const presentation = {\n * icons: {\n * outlook: ({ size, ...props }) => (\n * <svg width={size} height={size} {...props}>...</svg>\n * ),\n * },\n * };\n */\n icons?: IconRegistry<string>;\n};\n\nconst defaultOptions: PresentationOptions = {\n hideHeaderText: false,\n};\n\n/**\n * Internal type -\n * @see {PresentationConfig} is the public one\n */\nexport type Presentation = {\n theme: Theme;\n options: PresentationOptions;\n\n // Internal properties\n displayWatermark: boolean;\n iconRegistry: IconRegistry<string>;\n};\n\nexport function usePresentationWithDefault(\n maybeConfig: PresentationConfig | undefined,\n displayWatermark: boolean,\n products: { id: string; icons?: Partial<IconRegistry<IconNames>> }[],\n productsName?: string,\n): Presentation {\n const { theme, options } = maybeConfig ?? {};\n\n if (process.env.NODE_ENV !== 'production') {\n const stringProducts = products.filter((p) => typeof p === 'string');\n if (stringProducts.length > 0) {\n logger.error(\n `Please add an import for ${productsName} and update config.products to\\n` +\n 'products: [' +\n products.map((p) => `${productsName}.${typeof p === 'string' ? p : p.id}`).join(', ') +\n ']',\n );\n\n throw new Error(\"'config.products' should not include strings anymore\");\n }\n }\n\n // Switch theme automatically depending on color scheme\n const isDynamic = isDynamicTheme(theme);\n const darkMode = useMediaQuery(isDynamic ? '(prefers-color-scheme: dark)' : undefined);\n\n let effectiveTheme: Partial<Theme> | undefined;\n if (isDynamic) {\n effectiveTheme = darkMode ? theme[1] : theme[0];\n } else {\n effectiveTheme = theme;\n }\n\n // Memoize the icon registry so it only need to be constructed once\n const iconRegistry = useMemo(() => {\n const registry: IconRegistry<string> = {};\n for (const product of products) {\n Object.assign(registry, product.icons);\n }\n Object.assign(registry, options?.icons);\n return registry;\n }, [products, options]);\n\n return {\n theme: {\n ...defaultTheme,\n ...effectiveTheme,\n },\n options: {\n ...defaultOptions,\n ...options,\n },\n displayWatermark,\n iconRegistry,\n };\n}\n\nexport function isDynamicTheme(\n theme: PresentationConfig['theme'],\n): theme is readonly [light: Partial<Theme>, dark: Partial<Theme>] {\n return Array.isArray(theme);\n}\n\nexport const PresentationContext = createContext<Presentation>(undefined!);\nexport const usePresentation = () => useContext(PresentationContext);\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// Custom style injector runtime implementation\n// For reference, this is the default that rollup-plugin-styler comes with\n// https://github.com/plumelo/rollup-plugin-styler/blob/main/runtime/inject-css.js\n//\n// Ours is much simpler, we use a simple event bus to handle injecting styles to both global\n// and shadow DOM. A custom injector also allows us to implement some additional features in\n// the future, such as @layer support.\n//\n// This small file is its own package so we can rely on node-resolve plugin to resolve the\n// import rather than adding additional alias plugin config.\n\nconst collected: string[] = [];\nconst handlers = new Set<(css: string) => void>();\n\n/**\n * Used by Rollup config to collect CSS strings\n */\nexport function collectCss(css: string) {\n collected.push(css);\n handlers.forEach((handler) => handler(css));\n}\n\nfunction addHandler(handler: (css: string) => void) {\n handler(collected.join('\\n'));\n handlers.add(handler);\n return () => handlers.delete(handler);\n}\n\nexport function injectCssIntoNode() {\n const node = document.createElement('style');\n let firstRender = true;\n const unsubscribe = addHandler((css) => {\n if (firstRender || document.contains(node)) {\n node.textContent += css;\n firstRender = false;\n } else {\n unsubscribe();\n }\n });\n return node;\n}\n\nlet globalStyleNode: HTMLStyleElement;\nexport function injectGlobalStyle() {\n if (!globalStyleNode) {\n globalStyleNode = injectCssIntoNode();\n document.head.appendChild(globalStyleNode);\n }\n}\n","import React from 'react';\nimport styles from './Watermark.module.css';\n\nconst Watermark = ({ label, twilio }: { label: string; twilio: string }) => (\n <a className={styles.watermark} href=\"https://stytch.com/\" target=\"_blank\" rel=\"noreferrer\">\n <svg\n className={styles.stytch}\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M9.28889 9.32076V1H5.97576V4.84842C5.97576 5.55095 5.37953 6.12046 4.64404 6.12046H2V9.32076H9.28889Z\" />\n <path d=\"M10.7111 9.32076V1H14.0242V4.84842C14.0242 5.55095 14.6205 6.12046 15.356 6.12046H18V9.32076H10.7111Z\" />\n <path d=\"M9.28889 10.6792V19H5.97576V15.1516C5.97576 14.449 5.37953 13.8795 4.64404 13.8795H2V10.6792H9.28889Z\" />\n <path d=\"M10.7111 10.6792V19H14.0242V15.1516C14.0242 14.449 14.6205 13.8795 15.356 13.8795H18V10.6792H10.7111Z\" />\n </svg>\n\n <span>{label}</span>\n\n <span>+</span>\n\n <svg\n className={styles.twilio}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"68\"\n height=\"20\"\n fill=\"none\"\n aria-label={twilio}\n >\n <g clipPath=\"url(#a)\">\n <path d=\"M48.55 11.23v-.1c0-1.01.42-1.42 1.01-1.42.6 0 1.02.41 1.02 1.42v.1c0 1-.42 1.4-1.02 1.4-.59 0-1-.4-1-1.4Zm-3.09.04c0 2.2 1.63 3.74 4.1 3.74 2.47 0 4.1-1.54 4.1-3.74v-.18c0-2.2-1.63-3.73-4.1-3.73-2.47 0-4.1 1.53-4.1 3.73v.18ZM42 6.84c0 .1.06.16.16.16h2.74c.09 0 .16-.07.16-.16V5.22c0-.1-.07-.16-.16-.16h-2.74c-.1 0-.16.06-.16.16v1.62Zm-.02 7.9c0 .1.07.16.16.16h2.74c.1 0 .16-.07.16-.16v-7.1c0-.09-.06-.15-.16-.15h-2.74c-.09 0-.16.06-.16.16v7.09Zm-3.6 0c0 .1.07.16.16.16h2.74c.1 0 .16-.07.16-.16V5.22c0-.1-.06-.16-.16-.16h-2.74c-.1 0-.16.06-.16.16v9.52Zm-3.6-7.9c0 .1.06.16.16.16h2.74c.1 0 .16-.07.16-.16V5.22c0-.1-.07-.16-.16-.16h-2.74c-.1 0-.16.06-.16.16v1.62Zm-9.34 8.06h2.65c.1 0 .13-.04.16-.13l.86-3.12.84 3.12c.03.09.07.13.16.13h2.69c.1 0 .17-.04.2-.13L34.78 8v6.74c0 .1.07.16.16.16h2.74c.1 0 .16-.07.16-.16v-7.1c0-.09-.07-.15-.16-.15h-5.55c-.09 0-.14.04-.17.15l-.63 3.05-.65-3.05c-.02-.1-.08-.15-.18-.15h-2.59c-.1 0-.16.05-.17.15l-.65 3.07-.6-3.07c-.03-.11-.09-.15-.18-.15h-4.44V5.18c0-.12-.08-.18-.22-.14L19 5.91a.2.2 0 0 0-.15.2v1.01c0 .29-.15.4-.44.4h-.58c-.09 0-.16.07-.16.17v1.99c0 .09.07.16.16.16h.98v2.5c0 1.74.63 2.67 2.72 2.67.81 0 1.45-.13 1.8-.3.1-.05.13-.12.13-.23v-1.94c0-.11-.1-.16-.23-.1-.17.08-.35.13-.55.13-.54 0-.81-.2-.81-.88V9.84h1.42c.09 0 .16-.07.16-.16V7.95l1.8 6.82c.02.1.09.13.2.13M8.44 8c0-.94.78-1.72 1.7-1.72.91 0 1.68.78 1.68 1.72 0 .93-.74 1.67-1.69 1.67-.94 0-1.68-.76-1.68-1.67Zm0 4.03a1.69 1.69 0 1 1 3.38 0 1.69 1.69 0 0 1-3.37 0ZM4.42 8c0-.94.74-1.72 1.69-1.72.94 0 1.7.78 1.7 1.72 0 .93-.77 1.67-1.7 1.67-.93 0-1.69-.76-1.69-1.67Zm0 4.03c0-.94.74-1.68 1.69-1.68.94 0 1.7.74 1.7 1.68a1.7 1.7 0 0 1-3.39 0ZM2.13 9.98a6 6 0 1 1 12 .03 6 6 0 0 1-12-.03Zm6-8.1a8.11 8.11 0 1 0 0 16.25 8.13 8.13 0 0 0 0-16.25Z\" />\n </g>\n <defs>\n <clipPath id=\"a\">\n <path fill=\"#fff\" d=\"M0 1.88h53.7v16.24H0z\" />\n </clipPath>\n </defs>\n </svg>\n </a>\n);\n\nexport default Watermark;\n","import React, { forwardRef, HTMLAttributes, FormHTMLAttributes } from 'react';\nimport classNames from 'classnames';\nimport styles from './Column.module.css';\n\nexport type ColumnProps = (\n | ({ as?: 'div' } & HTMLAttributes<HTMLDivElement>)\n | ({ as: 'form' } & FormHTMLAttributes<HTMLFormElement>)\n) & {\n gap?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;\n};\n\n/**\n * Utility for basic column layout. Use custom styling or className for more complex cases.\n */\nconst Column = forwardRef<HTMLDivElement, ColumnProps>(\n ({ as = 'div', gap, className, style: outerStyle, ...props }, ref) => {\n const Element = as as 'div';\n const style = { ...outerStyle };\n if (gap != null) {\n style.gap = gap === 1 ? 'var(--st-spacing)' : `var(--st-spacing-${gap})`;\n }\n\n return (\n <Element\n ref={ref}\n className={classNames(className, styles.column)}\n style={style}\n {...(props as HTMLAttributes<HTMLDivElement>)}\n />\n );\n },\n);\n\nexport default Column;\n","/**\n * Read the value of the --transition-duration variable from CSS\n */\nexport function getTransitionDuration(element: Element) {\n return cssTimeToMs(window.getComputedStyle(element).getPropertyValue('--st-transition-duration'));\n}\n\nfunction cssTimeToMs(time: string) {\n const t = parseFloat(time);\n if (Number.isNaN(t)) return 0;\n return time.endsWith('ms') ? t : t * 1000;\n}\n","import React, { useEffect, useRef } from 'react';\nimport { getTransitionDuration } from './animation';\nimport styles from './Toast.module.css';\n\nconst DEFAULT_DURATION = 10_000;\n\ntype Toast = {\n message: string;\n durationMs?: number;\n};\n\n// Really simple event bus. We assume ToastContainer is always mounted so no error handling in case there's\n// no listeners\nconst listeners: ((newToast: Toast) => void)[] = [];\nexport function errorToast(toast: Toast) {\n for (const listener of listeners) {\n listener(toast);\n }\n}\n\nconst steps = {\n start: { opacity: 0, translate: '0 var(--st-spacing-2)' },\n end: { opacity: 1, translate: '0' },\n};\n\nfunction animateToastOut(element: HTMLElement, duration: number) {\n const animation = element.animate([steps.end, steps.start], { duration, easing: 'ease-in-out' });\n animation.addEventListener('finish', () => element.remove());\n}\n\nexport const ToastContainer = () => {\n const containerRef = useRef<HTMLDivElement>(null);\n const toastRef = useRef<HTMLDivElement>();\n const timeoutRef = useRef<number>();\n\n // We're just going to run all of these via manual DOM manipulation since we want finer control over the element\n // lifecycle than React is going to give us\n useEffect(() => {\n const listener = (toast: Toast) => {\n if (!containerRef.current) return;\n\n const duration = getTransitionDuration(containerRef.current) * 2;\n\n const toastElement = document.createElement('div');\n toastElement.textContent = toast.message;\n toastElement.className = styles.toast;\n\n // Animate existing toast out\n if (toastRef.current) animateToastOut(toastRef.current, duration);\n\n // Create new toast and animate in\n containerRef.current.appendChild(toastElement);\n toastRef.current = toastElement;\n toastElement.animate([steps.start, steps.end], { duration, easing: 'ease-in-out' });\n\n // Animate out after set duration\n timeoutRef.current = window.setTimeout(() => {\n if (!toastRef.current) return;\n animateToastOut(toastRef.current, duration);\n toastRef.current = undefined;\n }, toast.durationMs ?? DEFAULT_DURATION);\n };\n\n listeners.push(listener);\n return () => {\n clearTimeout(timeoutRef.current);\n const index = listeners.indexOf(listener);\n if (index !== -1) listeners.splice(index, 1);\n };\n }, []);\n\n return <div className={styles.container} ref={containerRef} aria-live=\"polite\"></div>;\n};\n","import React, { CSSProperties, ReactNode, RefObject, useEffect, useMemo, useRef, useState } from 'react';\nimport { useLingui } from '@lingui/react/macro';\nimport classNames from 'classnames';\n\nimport Watermark from '../atoms/Watermark';\nimport Column from '../atoms/Column';\nimport { Theme } from '../themes/ThemeConfig';\nimport { ToastContainer } from '../atoms/Toast';\nimport { useMediaQuery } from '../../hooks/useMediaQuery';\n\n// This order is important - we need mixins to appear first so later styles can override them\nimport '../mixins';\nimport styles from './MainContainer.module.css';\n\nexport type MainContainerProps = {\n children: ReactNode;\n displayWatermark: boolean;\n theme: Theme;\n};\n\nconst MainContainer = ({ children, displayWatermark, theme }: MainContainerProps) => {\n const { t } = useLingui();\n\n const ref = useRef<HTMLDivElement>(null);\n const { className, style } = useRootStyles(theme, ref);\n\n return (\n <Column gap={6} style={style} className={classNames(styles.container, className)} ref={ref}>\n {children}\n\n {displayWatermark && (\n <div className={styles.watermarkContainer}>\n <Watermark\n label={t({ id: 'watermark.altText', message: 'Powered by Stytch' })}\n twilio={t({ id: 'watermark.twilio', message: 'Twilio' })}\n />\n </div>\n )}\n\n <ToastContainer />\n </Column>\n );\n};\n\nexport function useRootStyles(theme: Theme, ref: RefObject<HTMLDivElement>) {\n const rawBreakpoint = theme['mobile-breakpoint'];\n\n // Media queries don't play well with CSS custom properties, so as a workaround we parse var() expressions out of the\n // breakpoint string and replace them with values resolved using getComputedStyle().\n const [breakpoint, setBreakpoint] = useState(rawBreakpoint);\n useEffect(() => {\n setBreakpoint(parseCssVar(rawBreakpoint, ref.current));\n }, [rawBreakpoint, ref]);\n\n const isMobile = useMediaQuery(`(max-width: ${breakpoint})`);\n const themeVariables = useMemo(() => themeToCssVariables(theme), [theme]);\n\n return {\n style: themeVariables,\n className: classNames({ '-st-mobile': isMobile }),\n };\n}\n\nexport function themeToCssVariables(theme: Theme) {\n const { 'color-scheme': colorScheme, ...themeVariables } = theme;\n const variables = Object.fromEntries(\n // eslint-disable-next-line lingui/no-unlocalized-strings\n Object.entries(themeVariables).map(([key, value]) => [`--st-${key}`, value]),\n );\n\n if (theme['color-scheme'] === 'shadcn') {\n variables['--st-color-scheme'] = 'inherit';\n } else {\n variables['--st-color-scheme'] = colorScheme;\n variables['--st-dark-mode'] = theme['color-scheme'] === 'dark' ? '1' : '0';\n }\n\n return variables as CSSProperties;\n}\n\nexport function parseCssVar(value: string, element: HTMLElement | null): string {\n if (!element) return value;\n\n // Ideally we would use CSSStyleValue.parse() instead of regex, but that's not currently well supported\n // https://caniuse.com/mdn-api_cssstylevalue_parse_static\n const replaced = value.replace(/var\\s*\\([^)]+\\)/gi, (r) => {\n // r is going to be var(..., ...), so we use a similar regex with a capture group to match the stuff in the brackets\n // variable should always exist but defaultValue may not\n const [variable, defaultValue] = r\n .match(/\\(([^)]+)\\)/)![1]\n .split(',')\n .map((s) => s.trim());\n const propertyValue = window.getComputedStyle(element).getPropertyValue(variable);\n return propertyValue || defaultValue || r;\n });\n\n return replaced === value ? replaced : parseCssVar(replaced, element);\n}\n\nexport default MainContainer;\n","import React from 'react';\nimport styles from './Logo.module.css';\n\ntype LogoData = {\n url: string;\n alt: string;\n};\n\nconst Logo = ({ orgLogo, appLogo }: { orgLogo?: LogoData; appLogo?: LogoData }) => {\n if (!orgLogo && !appLogo) return null;\n\n return (\n <div className={styles.container}>\n {orgLogo && <img className={styles.logo} src={orgLogo.url} alt={orgLogo.alt} />}\n {appLogo && <img className={styles.logo} src={appLogo.url} alt={appLogo.alt} />}\n </div>\n );\n};\n\nexport default Logo;\n","import React, { forwardRef, HTMLAttributes } from 'react';\nimport classNames from 'classnames';\n\nimport styles from './Typography.module.css';\n\nexport type TypographyProps = HTMLAttributes<HTMLDivElement> & {\n variant?: 'header' | 'body' | 'helper';\n color?: 'foreground' | 'muted' | 'destructive' | 'warning' | 'success';\n align?: 'start' | 'center' | 'end';\n font?: 'default' | 'mono';\n weight?: 'regular' | 'medium' | 'semibold' | 'bold';\n as?: string;\n};\n\nconst Typography = forwardRef<HTMLDivElement, TypographyProps>(\n ({ variant = 'body', as = 'div', weight, font, color, align, className, ...props }, ref) => {\n // Without this cast, TS thinks Element might not even be an HTML element and so does not have className\n const Element = as as 'div';\n return (\n <Element\n {...props}\n ref={ref}\n className={classNames(\n className,\n styles.typography,\n styles[variant],\n font && styles[font + 'Font'],\n weight && styles[weight],\n color && styles[color],\n align && styles[align],\n )}\n />\n );\n },\n);\n\nexport default Typography;\n","export const extractErrorType = (error: unknown) => {\n if (error && typeof error === 'object') {\n if ('error_type' in error && typeof error.error_type === 'string') {\n return error.error_type;\n }\n }\n};\n","import React, { HTMLAttributes, ReactNode, useMemo } from 'react';\nimport Typography from '../atoms/Typography';\n\nconst DASHBOARD_REGEX = /https:\\/\\/stytch\\.com\\/[#a-zA-Z0-9/-]+/g;\n\nconst mapURLsToLinks = (str: string) => {\n const nonLinkChunks = str.split(DASHBOARD_REGEX);\n const linkChunks = Array.from(str.matchAll(DASHBOARD_REGEX)).map((el) => el[0]);\n\n const chunkResults: ReactNode[] = [];\n\n while (nonLinkChunks.length || linkChunks.length) {\n if (nonLinkChunks.length) {\n chunkResults.push(nonLinkChunks.shift());\n }\n if (linkChunks.length) {\n const chunk = linkChunks.shift();\n\n chunkResults.push(\n <a key={chunk + '__' + String(linkChunks.length)} href={chunk} target=\"_blank\" rel=\"noreferrer\">\n {chunk}\n </a>,\n );\n }\n }\n\n return chunkResults;\n};\n\ntype ErrorTextProps = Omit<HTMLAttributes<HTMLDivElement>, 'children'> & { children: string };\n\nconst ErrorText = ({ children, ...props }: ErrorTextProps) => {\n const tokens = useMemo(() => mapURLsToLinks(children), [children]);\n return (\n <Typography {...props} variant=\"helper\" color=\"destructive\">\n {tokens}\n </Typography>\n );\n};\n\nexport default ErrorText;\n","import React from 'react';\nimport { useLingui } from '@lingui/react/macro';\nimport Typography from '../atoms/Typography';\n\nimport styles from './Divider.module.css';\n\nconst Divider = () => {\n const { t } = useLingui();\n\n return (\n <div role=\"separator\" className={styles.container}>\n <div className={styles.bar} />\n <Typography variant=\"helper\">{t({ id: 'methodDivider.text', message: 'or' })}</Typography>\n <div className={styles.bar} />\n </div>\n );\n};\n\nexport default Divider;\n","import React, { ReactNode } from 'react';\nimport classNames from 'classnames';\nimport styles from './VisuallyHidden.module.css';\n\nconst VisuallyHidden = ({ children, focusable }: { children: ReactNode; focusable?: boolean }) => (\n <div className={classNames(focusable ? styles.focusable : styles.hidden)}>{children}</div>\n);\n\nexport default VisuallyHidden;\n","import React, { forwardRef, InputHTMLAttributes, ReactNode, useLayoutEffect, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { useUniqueId } from '../../../utils/uniqueId';\nimport ErrorText from './ErrorText';\nimport VisuallyHidden from '../atoms/VisuallyHidden';\nimport styles from './Input.module.css';\nimport { usePresentation } from '../PresentationConfig';\n\nexport type InputProps = InputHTMLAttributes<HTMLInputElement> & {\n label: string;\n id: string;\n containerClassName?: string;\n hideLabel?: boolean;\n action?: ReactNode;\n error?: string;\n};\n\n/**\n * Generic low level text Input element\n * A label must be provided for accessibility, but can be hidden using the `hideLabel` prop\n * You may want to use a more specific component in /molecules instead like {@link EmailInput}, {@link PasswordInput}\n */\nconst Input = forwardRef<HTMLInputElement, InputProps>(\n ({ className, label: labelText, hideLabel, action, id: idProp, containerClassName, error, ...props }, ref) => {\n const presentation = usePresentation();\n const id = idProp + (presentation.options?.inputIdSuffix || '');\n\n const errorId = useUniqueId();\n\n // Calculate the width of the action element and add it to the input padding so the input content\n // cannot go behind the action\n const actionRef = useRef<HTMLDivElement>(null);\n const [actionWidth, setActionWidth] = useState<number>();\n useLayoutEffect(() => {\n if (actionRef.current) {\n // getBoundingClientRect accounts for transformations while clientWidth does not\n setActionWidth(actionRef.current.getBoundingClientRect().width);\n }\n }, [action]);\n\n const label = (\n <label className={styles.label} htmlFor={id}>\n {labelText}\n </label>\n );\n\n if (error) {\n props['aria-invalid'] = true;\n props['aria-errormessage'] = errorId;\n }\n\n return (\n <div className={classNames(containerClassName, styles.container)}>\n {hideLabel ? <VisuallyHidden>{label}</VisuallyHidden> : label}\n\n <div className={styles.inputWrapper}>\n <input\n ref={ref}\n id={id}\n className={classNames(className, styles.input)}\n style={\n actionWidth\n ? {\n // spacing-4 because action has a 2 unit horizontal margin\n paddingInlineEnd: `calc(${actionWidth}px + var(--st-spacing-4))`,\n }\n : undefined\n }\n {...props}\n />\n {action && (\n <div ref={actionRef} className={styles.action}>\n {action}\n </div>\n )}\n </div>\n\n {error && (\n <ErrorText id={errorId} className={styles.error}>\n {error}\n </ErrorText>\n )}\n </div>\n );\n },\n);\n\nexport default Input;\n","import { CountryCode, COUNTRIES_LIST, ParsedPhoneNumberResponse } from '@stytch/core';\n\ntype ParsePhoneNumber = (phoneNumber: string, countryCode?: CountryCode) => Promise<ParsedPhoneNumberResponse>;\n\ntype ParsePhoneParams = {\n parsePhoneNumber: ParsePhoneNumber;\n phoneNumber: string;\n country?: CountryCode;\n};\n\n// Attempts to format the number in the following format (XXX) XXX-XXXX.\nexport const formatNumber = async ({ parsePhoneNumber, phoneNumber, country }: ParsePhoneParams): Promise<string> => {\n try {\n const parsedPhoneNumber = await Promise.race([\n parsePhoneNumber(phoneNumber, country),\n new Promise<undefined>((done) => setTimeout(() => done(undefined), 10000)),\n ]);\n\n if (!parsedPhoneNumber) {\n return phoneNumber;\n }\n\n return parsedPhoneNumber.national;\n } catch {\n return phoneNumber;\n }\n};\n\n// Attempts to format the number in the following format +1XXXXXXXXXX.\nexport const formatNumberToIncludeCountryCode = async ({\n parsePhoneNumber,\n phoneNumber,\n country,\n}: Required<ParsePhoneParams>): Promise<{\n isValid: boolean;\n number: string;\n}> => {\n const code = COUNTRIES_LIST[country];\n\n const fallbackNumber = `+${code}${phoneNumber}`;\n\n const fallback = {\n isValid: true,\n number: fallbackNumber,\n };\n try {\n const parsedPhoneNumber = await Promise.race([\n parsePhoneNumber(phoneNumber, country),\n new Promise<undefined>((done) => setTimeout(() => done(undefined), 2000)),\n ]);\n\n if (!parsedPhoneNumber) {\n return fallback;\n }\n\n return parsedPhoneNumber;\n } catch {\n return fallback;\n }\n};\n","import { useUniqueId } from './uniqueId';\n\n/**\n * Common props for inputs to type accessibility props.\n */\nexport type InputLabelProps = {\n 'aria-errormessage'?: string;\n 'aria-describedby'?: string;\n 'aria-invalid'?: boolean;\n};\n\n/**\n * Helper to correctly set aria-errormessage and aria-invalid. error can be anything as long as it is falsy when\n * there is no error.\n *\n * @example\n * const emailProps = useErrorProps(error);\n *\n * <EmailInput email={email} setEmail={setEmailInput} {...emailProps.input} />\n * {error && (\n * <ErrorText\n * errorMessage={parseErrorMessage(error)}\n * {...emailProps.error}\n * />\n * )}\n */\nexport function useErrorProps(error: unknown): {\n error: { id: string };\n input: { 'aria-errormessage'?: string; 'aria-invalid'?: boolean };\n} {\n // The logic is not particularly complicated but it is annoying to keep writing for every input.\n // In particular, we don't want errormessage to be set if there is no error since some components always has the\n // ErrorText component always mounted.\n //\n // Reference:\n // - aria-errormessage: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Attributes/aria-errormessage\n // - aria-invalid: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Attributes/aria-invalid\n\n const errorId = useUniqueId();\n\n if (!error) {\n return {\n error: { id: errorId },\n input: {},\n };\n } else {\n return {\n error: { id: errorId },\n input: {\n 'aria-errormessage': errorId,\n 'aria-invalid': true,\n },\n };\n }\n}\n","import type { HTMLAttributes } from 'react';\n\nexport interface IconProps extends HTMLAttributes<unknown> {\n size?: number;\n}\n\n/**\n * Default icon size in pixels\n */\nexport const DEFAULT_ICON_SIZE = 20;\n","import React from 'react';\nimport { DEFAULT_ICON_SIZE, IconProps } from './types';\n\nexport const Chevron = ({ size = DEFAULT_ICON_SIZE, ...props }: IconProps) => {\n return (\n <svg width={size} height={size} viewBox=\"0 0 25 25\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path d=\"M9.09 7.91L13.67 12.5L9.09 17.09L10.5 18.5L16.5 12.5L10.5 6.5L9.09 7.91Z\" fill=\"currentColor\" />\n </svg>\n );\n};\n","import React, { useRef, useState } from 'react';\nimport { useLingui } from '@lingui/react/macro';\nimport { COUNTRIES_LIST, CountryCode, ParsedPhoneNumberResponse } from '@stytch/core';\nimport Input from './Input';\nimport { formatNumber } from '../../../utils/handleParsePhoneNumber';\nimport { passwordManagerDisableAutofillProps } from '../../../utils/passwordManagerDisableAutofillProps';\nimport ErrorText from './ErrorText';\nimport { useErrorProps } from '../../../utils/accessibility';\nimport { Chevron } from '../../../assets';\nimport { ClientsideServicesProvider } from '../../../ClientsideServicesProvider';\nimport styles from './PhoneInput.module.css';\n\n// What the library returns by default for the US\nconst DEFAULT_TEL_PLACEHOLDER = '(201) 555-0123';\n\nexport const getPhoneNumberProps = (\n clientsideServices: ClientsideServicesProvider,\n): Pick<PhoneInputProps, 'getExampleNumber' | 'parsePhoneNumber'> => ({\n getExampleNumber: (countryCode: CountryCode) =>\n clientsideServices.getExamplePhoneNumber({ regionCode: countryCode }).then((res) => res.phoneNumber),\n\n parsePhoneNumber: (phoneNumber: string, countryCode?: CountryCode) =>\n clientsideServices.parsedPhoneNumber({\n phoneNumber,\n regionCode: countryCode,\n }),\n});\n\nexport type PhoneInputProps = {\n phone: string;\n setPhone: (phone: string) => void;\n country: CountryCode;\n setCountry: (country: CountryCode) => void;\n parsePhoneNumber: (phoneNumber: string, countryCode?: CountryCode) => Promise<ParsedPhoneNumberResponse>;\n getExampleNumber: (countryCode: CountryCode) => Promise<string | undefined>;\n hasPasskeys?: boolean;\n error?: string;\n};\n\nconst PhoneInput = ({\n phone,\n setPhone,\n country,\n setCountry,\n parsePhoneNumber,\n getExampleNumber,\n hasPasskeys,\n // Handle error ourselves instead of delegating down to <Input>\n // since the layout would be wrong in that case (it would appear to the right of the <select>)\n error,\n ...additionalProps\n}: PhoneInputProps) => {\n const { t } = useLingui();\n\n const inputProps = useErrorProps(error);\n const countryFormatter = new Intl.DisplayNames(['en'], { type: 'region' });\n const [placeholder, setPlaceholder] = useState(DEFAULT_TEL_PLACEHOLDER);\n const inputRef = useRef<HTMLInputElement>(null);\n const [phoneValue, setPhoneValue] = useState(phone);\n\n return (\n <div className={styles.container}>\n <select\n aria-label={t({ id: 'formField.countryCode.label', message: 'Country code' })}\n className={styles.select}\n autoComplete=\"tel-country-code\"\n value={country}\n onChange={async (e) => {\n const userInput = e.target.value as CountryCode;\n setCountry(userInput);\n inputRef.current?.focus();\n\n const newPlaceholder = await Promise.race([\n getExampleNumber(country), //\n new Promise<undefined>((resolve) => setTimeout(() => resolve(undefined), 100)),\n ]);\n\n if (userInput !== e.target.value) return;\n setPlaceholder(newPlaceholder ?? DEFAULT_TEL_PLACEHOLDER);\n }}\n >\n {Object.entries(COUNTRIES_LIST).map(([code, number]) => (\n <option key={code} value={code}>\n {/* Hide the name of the selected country so it doesn't show up in the <select> */}\n {code !== country ? `+${number} ${countryFormatter.of(code)}` : `+${number}`}\n </option>\n ))}\n </select>\n\n <Chevron className={styles.chevron} role=\"presentation\" />\n\n <Input\n id=\"phone-input\"\n label={t({ id: 'formField.phone.label', message: 'Phone number' })}\n hideLabel\n ref={inputRef}\n type=\"tel\"\n autoComplete={hasPasskeys ? 'username webauthn' : 'tel-national'}\n containerClassName={styles.phone}\n value={phoneValue}\n placeholder={placeholder}\n onChange={async (e) => {\n const userInput = e.target.value;\n setPhoneValue(userInput);\n\n const national = await formatNumber({\n parsePhoneNumber,\n phoneNumber: userInput,\n country,\n });\n\n // Disregard stale results\n if (userInput !== e.target.value) {\n return;\n }\n\n setPhone(national);\n setPhoneValue(national);\n }}\n required\n {...inputProps.input}\n // We want to block 1PW's autofill when passkeys is enabled for now\n // (it is breaking to our integration)\n {...(hasPasskeys ? passwordManagerDisableAutofillProps : {})}\n {...additionalProps}\n />\n\n {error && (\n <ErrorText className={styles.error} {...inputProps.error}>\n {error}\n </ErrorText>\n )}\n </div>\n );\n};\n\nexport default PhoneInput;\n","import React from 'react';\nimport { useLingui } from '@lingui/react/macro';\nimport { passwordManagerDisableAutofillProps } from '../../../utils/passwordManagerDisableAutofillProps';\nimport Input from './Input';\n\nconst EmailInput = ({\n email,\n setEmail,\n hasPasskeys = false,\n ...additionalProps\n}: {\n email: string;\n setEmail: (email: string) => void;\n hasPasskeys?: boolean;\n\n // Passed through\n hideLabel?: boolean;\n disabled?: boolean;\n error?: string;\n}) => {\n const { t } = useLingui();\n return (\n <Input\n id=\"email\"\n label={t({ id: 'formField.email.label', message: 'Email' })}\n placeholder={t({ id: 'formField.email.placeholder', message: 'example@email.com' })}\n type=\"email\"\n autoComplete={hasPasskeys ? 'username webauthn' : 'email username'}\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n required\n // We want to block 1PW's autofill when passkeys is enabled for now\n // (it is breaking to our integration)\n {...(hasPasskeys ? passwordManagerDisableAutofillProps : {})}\n {...additionalProps}\n />\n );\n};\n\nexport default EmailInput;\n","import React from 'react';\nimport { useLingui } from '@lingui/react/macro';\nimport styles from './CircularProgress.module.css';\n\nconst BASE_SIZE = 44;\n\nexport type CircularProgressProps = {\n size: number;\n thickness?: number;\n label?: string;\n};\n\n/**\n * A lightweight spinning circle loading animation heavily inspired by the\n * MUI CircularProgress component\n * https://github.com/mui/material-ui/blob/master/packages/mui-material/src/CircularProgress/CircularProgress.js\n */\nexport const CircularProgress = ({ size, label, thickness = 3.6 }: CircularProgressProps) => {\n const { t } = useLingui();\n return (\n <div\n className={styles.root}\n style={{ width: size, height: size }}\n aria-label={label ?? t({ id: 'loading.label', message: 'Loading' })}\n >\n <svg\n className={styles.svg}\n viewBox={`${BASE_SIZE / 2} ${BASE_SIZE / 2} ${BASE_SIZE} ${BASE_SIZE}`}\n role=\"presentation\"\n >\n <circle\n className={styles.animatedCircle}\n cx={BASE_SIZE}\n cy={BASE_SIZE}\n r={(BASE_SIZE - thickness) / 2}\n fill=\"none\"\n strokeWidth={thickness}\n />\n </svg>\n </div>\n );\n};\n","import React, { ReactNode, KeyboardEventHandler } from 'react';\nimport classNames from 'classnames';\nimport { CircularProgress } from './CircularProgress';\nimport styles from './Button.module.css';\n\nexport type ButtonProps = {\n variant: 'primary' | 'secondary' | 'outline' | 'ghost' | 'destructive';\n children: ReactNode;\n\n /**\n * Button is full width and content is centered\n * @default true\n */\n block?: boolean;\n\n icon?: ReactNode;\n\n /** If true, display a spinner and disables the button */\n loading?: boolean;\n disabled?: boolean;\n\n /**\n * Unlike HTML <button> we deliberately set the default to button to\n * avoid bugs where buttons inadvertently submit forms\n * @default 'button'\n **/\n type?: 'button' | 'submit' | 'reset';\n onClick?: () => void;\n onKeyDown?: KeyboardEventHandler<HTMLElement>;\n};\n\nexport function buttonClassNames({ variant, block = true }: Pick<ButtonProps, 'variant' | 'block'>) {\n return classNames(styles.button, styles[variant], {\n [styles.block]: block,\n });\n}\n\n// Base renderer for both <a> and <button> based <Button>s\nconst baseButton = (props: ButtonProps & { as?: string }) => {\n const { as, children, icon, onClick, loading, disabled = loading, block, variant, ...otherProps } = props;\n const Element = as as 'button';\n\n let buttonContent = (\n <>\n {icon}\n <span>{children}</span>\n </>\n );\n\n if (loading) {\n buttonContent = <CircularProgress size={20} />;\n }\n\n return (\n <Element className={buttonClassNames(props)} onClick={onClick} disabled={disabled} {...otherProps}>\n {buttonContent}\n </Element>\n );\n};\n\nconst Button = (props: ButtonProps) =>\n baseButton({\n type: 'button',\n as: 'button',\n ...props,\n });\n\nexport default Button;\n\n// Deriving this from ButtonProps is not very neat, but ButtonAnchor is not frequently used\nexport type ButtonAnchorProps = Omit<ButtonProps, 'type' | 'as'> & {\n href: string;\n download?: string;\n target?: string;\n rel?: string;\n};\n\nexport const ButtonAnchor = (props: ButtonAnchorProps) =>\n baseButton({\n ...props,\n // Links don't fire click event on space while buttons do, so we implement that ourselves for these\n // https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Roles/button_role#accessibility_concerns\n onKeyDown: (evt) => {\n props.onKeyDown?.(evt);\n if (evt.defaultPrevented) return;\n if (evt.key === ' ') evt.currentTarget.click();\n },\n as: 'a',\n });\n","import { StytchAPIError } from '@stytch/core/public';\nimport { MessageDescriptor } from '@lingui/core';\nimport { msg } from '@lingui/core/macro';\nimport { extractErrorType } from './extractErrorType';\n\nconst errorMessages = {\n invalid_email: msg({ id: 'error.invalidEmail', message: 'Email format is invalid.' }),\n invalid_phone_number: msg({\n id: 'error.invalidPhoneNumber',\n message: 'Phone number format is invalid. Ensure the phone number is in the E.164 format.',\n }),\n unsubscribed_phone_number: msg({\n id: 'error.unsubscribedPhoneNumber',\n message:\n \"Phone number is unsubscribed. User has unsubscribed. Resubscribe by texting 'START' before messages can be sent.\",\n }),\n inactive_email: msg({\n id: 'error.inactiveEmail',\n message:\n 'The email address is marked as inactive. Please try another email address, or contact your admin if you think this is a mistake.',\n }),\n unauthorized_credentials: msg({ id: 'error.unauthorizedCredentials', message: 'Unauthorized credentials.' }),\n user_unauthenticated: msg({\n id: 'error.userUnauthenticated',\n message: 'Must have an active session to call this method. Have you logged in yet?',\n }),\n email_not_found: msg({ id: 'error.emailNotFound', message: 'Email not found.' }),\n unable_to_auth_magic_link: msg({\n id: 'error.unableToAuthMagicLink',\n message:\n 'The magic link could not be authenticated because it was either already used or expired. Please try again.',\n }),\n no_user_password: msg({ id: 'error.noUserPassword', message: 'Password not found for this user. Please try again.' }),\n breached_password: msg({\n id: 'error.breachedPassword',\n message: 'Password appears in the list of breached passwords and must be reset.',\n }),\n reset_password: msg({ id: 'error.resetPassword', message: 'Password must be reset.' }),\n oauth_token_not_found: msg({ id: 'error.oauthTokenNotFound', message: 'OAuth Token could not be found.' }),\n invalid_code: msg({ id: 'error.invalidCode', message: 'Code format is invalid, please try again.' }),\n member_password_not_found: msg({ id: 'error.memberPasswordNotFound', message: 'Member password not found.' }),\n oauth_flow_callback_error: msg({\n id: 'error.oauthFlowCallbackError',\n message: 'An error was encountered in the callback of the OAuth flow. Please try again.',\n }),\n unauthorized_action: msg({ id: 'error.unauthorizedAction', message: 'Unauthorized action.' }),\n user_lock_limit_reached: msg({\n id: 'error.userLockLimitReached',\n message: 'Too many failed authentication attempts. Please try again later.',\n }),\n invalid_session_token: msg({ id: 'error.invalidSessionToken', message: 'Invalid session token.' }),\n session_not_found: msg({ id: 'error.sessionNotFound', message: 'Session not found.' }),\n invalid_phone_number_country_code: msg({\n id: 'error.invalidPhoneNumberCountryCode',\n message: \"The phone number's country code is invalid, unsupported, or disabled.\",\n }),\n otp_code_not_found: msg({ id: 'error.otpCodeNotFound', message: 'Invalid passcode, please try again.' }),\n duplicate_member_phone_number: msg({\n id: 'error.duplicatePhoneNumber',\n message: 'A member with the specified phone number already exists for this organization.',\n }),\n} as const;\n\n/**\n * This method is meant to be a catch all for errors that don't require special handling.\n * It will return a translated error message for the error type.\n * If the error type is not included here, it will return the error message as an untranslated string.\n */\nexport const getTranslatedError = (error: StytchAPIError, t: (descriptor: MessageDescriptor) => string) => {\n const errorType = extractErrorType(error);\n const messageDescriptor = errorMessages[errorType as keyof typeof errorMessages];\n if (messageDescriptor) {\n return t(messageDescriptor);\n }\n return error.error_message;\n};\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const GithubIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#24292F\"\n fillRule=\"evenodd\"\n d=\"M9.97 1A9.1 9.1 0 0 0 1 10.23a9.2 9.2 0 0 0 6.14 8.75c.44.1.6-.2.6-.44l-.01-1.71c-2.5.55-3.02-1.1-3.02-1.1-.4-1.07-1-1.35-1-1.35-.8-.56.07-.56.07-.56.9.06 1.38.95 1.38.95.8 1.4 2.1 1 2.61.76.08-.6.32-1 .57-1.24-2-.21-4.09-1-4.09-4.55 0-1 .36-1.83.92-2.48-.08-.22-.4-1.17.1-2.44 0 0 .75-.24 2.46.95a8.5 8.5 0 0 1 4.49 0c1.7-1.2 2.46-.95 2.46-.95.5 1.27.18 2.22.1 2.44.57.65.91 1.47.91 2.48 0 3.54-2.1 4.32-4.1 4.55.33.3.61.84.61 1.71l-.01 2.54c0 .24.16.53.6.44a9.2 9.2 0 0 0 6.14-8.75A9.1 9.1 0 0 0 9.97 1\"\n clipRule=\"evenodd\"\n className={_styles.darkInvert}\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const GmailIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path fill=\"#C5221F\" d=\"M1 5.1v1.63l1.88 1.82L5.09 9.8l.41-2.76-.4-2.56-1.15-.86A1.84 1.84 0 0 0 1 5.09\" />\n <path fill=\"#FBBC04\" d=\"m14.9 4.48-.4 2.6.4 2.72 2.02-1L19 6.73V5.09a1.84 1.84 0 0 0-2.95-1.47z\" />\n <path fill=\"#4285F4\" d=\"M2.23 16.75h2.86V9.8L1 6.73v8.8c0 .67.55 1.22 1.23 1.22\" />\n <path fill=\"#34A853\" d=\"M14.9 16.75h2.87c.68 0 1.23-.55 1.23-1.23v-8.8L14.9 9.8z\" />\n <path fill=\"#EA4335\" d=\"M10 8.16 5.1 4.48V9.8l4.9 3.68 4.9-3.68V4.48z\" />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const GoogleIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#4285F4\"\n d=\"M18.82 10.2q0-.95-.16-1.84h-8.48v3.49h4.84a4.2 4.2 0 0 1-1.8 2.7v2.27h2.92a8.8 8.8 0 0 0 2.68-6.62\"\n />\n <path\n fill=\"#34A853\"\n d=\"M10.18 19c2.43 0 4.47-.8 5.96-2.18l-2.92-2.26c-.8.54-1.83.86-3.04.86a5.4 5.4 0 0 1-5.04-3.7h-3v2.32A9 9 0 0 0 10.19 19\"\n />\n <path fill=\"#FBBC05\" d=\"M5.14 11.71a5.4 5.4 0 0 1 0-3.42V5.97h-3a8.9 8.9 0 0 0 0 8.06l2.34-1.81z\" />\n <path\n fill=\"#EA4335\"\n d=\"M10.18 4.58q2.01 0 3.44 1.35l2.58-2.58A8.98 8.98 0 0 0 2.14 5.97l3 2.32a5.4 5.4 0 0 1 5.04-3.7\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const MicrosoftIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path fill=\"#F35325\" d=\"M1 1h8.57v8.57H1z\" />\n <path fill=\"#81BC06\" d=\"M10.43 1H19v8.57h-8.57z\" />\n <path fill=\"#05A6F0\" d=\"M1 10.43h8.57V19H1z\" />\n <path fill=\"#FFBA08\" d=\"M10.43 10.43H19V19h-8.57z\" />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const OutlookIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <g clipPath=\"url(#a)\">\n <path\n fill=\"#158FDA\"\n d=\"M6.58 17.2h10.25c1.2 0 2.17-.97 2.17-2.17V7.7c0-.64-.32-1.22-.87-1.54L12.77 3.1c-.72-.4-1.6-.4-2.3 0L4.39 6.6V15c0 1.21.98 2.2 2.2 2.2\"\n />\n <path\n fill=\"url(#b)\"\n d=\"M8.61 15.82c.06-.66.48-1.24 1.09-1.5 0 0 5.55-3.11 8.3-4.73.85-.5 1-1.5 1-1.5V15a2.2 2.2 0 0 1-2.2 2.2h-6.65c-.8 0-1.46-.6-1.54-1.4\"\n />\n <path\n fill=\"#01459B\"\n d=\"m17.83 5.96-9.55 5.27 1.9 1.16c.71.42 1.74.66 2.46.25l5.08-2.85A2.3 2.3 0 0 0 19 7.69c0-1.1-.76-1.47-1.17-1.73\"\n />\n <path fill=\"#26AEE9\" d=\"M11.67 2.81q-.63 0-1.21.32L2.4 7.68l3.06 1.85 9.37-5.28-1.95-1.11q-.57-.33-1.2-.33\" />\n <path fill=\"#0078D3\" d=\"M14.83 4.25 5.46 9.53l3.06 1.86 9.56-5.27-.25-.16z\" />\n <path\n fill=\"url(#c)\"\n d=\"M1.88 5.42h7.5a.74.74 0 0 1 .75.74l-.03 7.32a.76.76 0 0 1-.76.76H1.9a.8.8 0 0 1-.78-.78l.03-7.33a.7.7 0 0 1 .72-.71\"\n />\n <g filter=\"url(#d)\">\n <path\n fill=\"url(#e)\"\n d=\"M1.88 5.42h7.5a.74.74 0 0 1 .75.74l-.03 7.32a.76.76 0 0 1-.76.76H1.9a.8.8 0 0 1-.78-.78l.03-7.33a.7.7 0 0 1 .72-.71\"\n />\n </g>\n <path\n fill=\"#fff\"\n d=\"M3.46 8.58q.28-.6.84-.94.64-.36 1.36-.36.69-.02 1.27.3.56.3.85.87.32.6.32 1.3.02.7-.28 1.36a2.2 2.2 0 0 1-1.1 1.06q-.52.21-1.05.21-.7.03-1.3-.3-.57-.3-.86-.87-.32-.6-.32-1.28-.02-.7.27-1.35m.95 2.15q.16.37.5.6t.75.21q.45 0 .8-.24.33-.24.47-.62.15-.41.13-.85 0-.44-.15-.85a1.4 1.4 0 0 0-.47-.63 1.3 1.3 0 0 0-.8-.23 1.3 1.3 0 0 0-1.25.86c-.22.57-.2 1.2.02 1.75\"\n />\n </g>\n <defs>\n <linearGradient id=\"b\" x1={12.02} x2={19} y1={15.58} y2={12.64} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#4DE2FB\" />\n <stop offset={1} stopColor=\"#28AEE8\" />\n </linearGradient>\n <linearGradient id=\"c\" x1={5.63} x2={5.62} y1={5.42} y2={14.24} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#1582D8\" />\n <stop offset={1} stopColor=\"#0A64CC\" />\n </linearGradient>\n <linearGradient id=\"e\" x1={5.63} x2={5.62} y1={5.42} y2={14.24} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#1582D8\" />\n <stop offset={1} stopColor=\"#0A64CC\" />\n </linearGradient>\n <clipPath id=\"a\">\n <path fill=\"#fff\" d=\"M0 0h20v20H0z\" />\n </clipPath>\n <filter\n id=\"d\"\n width={53.58}\n height={53.4}\n x={-15.16}\n y={-10.87}\n colorInterpolationFilters=\"sRGB\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feFlood floodOpacity={0} result=\"BackgroundImageFix\" />\n <feColorMatrix in=\"SourceAlpha\" result=\"hardAlpha\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" />\n <feOffset dx={6} dy={6} />\n <feGaussianBlur stdDeviation={11.14} />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.38 0\" />\n <feBlend in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_893_1954\" />\n <feBlend in=\"SourceGraphic\" in2=\"effect1_dropShadow_893_1954\" result=\"shape\" />\n </filter>\n </defs>\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const SlackIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#E01E5A\"\n d=\"M4.8 12.38a1.89 1.89 0 1 1-1.9-1.9h1.9zm.94 0a1.89 1.89 0 1 1 3.78 0v4.73a1.89 1.89 0 1 1-3.78 0z\"\n />\n <path\n fill=\"#36C5F0\"\n d=\"M7.63 4.78A1.89 1.89 0 1 1 9.52 2.9v1.9zm0 .96a1.89 1.89 0 1 1 0 3.79H2.89a1.89 1.89 0 1 1 0-3.79z\"\n />\n <path\n fill=\"#2EB67D\"\n d=\"M15.2 7.64a1.89 1.89 0 1 1 1.9 1.89h-1.9zm-.94 0a1.89 1.89 0 1 1-3.78 0V2.89a1.89 1.89 0 1 1 3.78 0z\"\n />\n <path\n fill=\"#ECB22E\"\n d=\"M12.37 15.22a1.89 1.89 0 1 1-1.89 1.89v-1.9zm0-.95a1.89 1.89 0 1 1 0-3.78h4.74a1.89 1.89 0 1 1 0 3.78z\"\n />\n </svg>\n);\n","import React, { ReactNode } from 'react';\nimport Column from '../atoms/Column';\nimport Divider from './Divider';\n\ntype ButtonColumnProps = { children: ReactNode } | { top: ReactNode; bottom: ReactNode };\n\n/**\n * Codifies simple button layout patterns\n * - For a single set of buttons, use children\n * - For buttons separated by dividers, use top and bottom props\n */\nconst ButtonColumn = (props: ButtonColumnProps) => {\n if ('children' in props) {\n return <Column gap={2}>{props.children}</Column>;\n }\n\n return (\n <Column gap={4}>\n {props.top && (\n // This is a bit odd but there are screens where there's nothing directly above the divider\n <ButtonColumn>{props.top}</ButtonColumn>\n )}\n <Divider />\n <ButtonColumn>{props.bottom}</ButtonColumn>\n </Column>\n );\n};\n\nexport default ButtonColumn;\n","import React, { ReactNode, useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport styles from './VerticalTransition.module.css';\n\n/**\n * Returns a state that automatically reset itself after a given number of seconds\n * @see {useCountdown} for an alternative that returns a countdown in seconds\n */\nexport function useTimedBoolean(timeoutSeconds: number) {\n const [state, setState] = useState(false);\n\n useEffect(() => {\n if (!state || !timeoutSeconds) return;\n const handler = setTimeout(() => setState(false), timeoutSeconds * 1000);\n return () => clearTimeout(handler);\n }, [state, timeoutSeconds]);\n return [state, setState] as const;\n}\n\nexport type VerticalTransitionProps = {\n primary: ReactNode;\n secondary: ReactNode;\n\n /** Customize the root class name. This element clips the two child */\n rootClassName?: string;\n\n /** Customize the two containers of primary and secondary */\n className?: string;\n} & (\n | {\n /**\n * Default. Rely on the triggered boolean to control whether primary or secondary is displayed.\n * Has aria-live, and only one of primary and secondary has aria-hidden=\"false\"\n */\n trigger?: 'manual';\n\n /**\n * Primary is displayed if false, secondary if true\n */\n triggered: boolean;\n }\n | {\n /**\n * This element must be a child of a parent that has the hoverTriggerClass class attached.\n * Both primary and secondary are always visible to screen readers\n */\n trigger: 'hover';\n\n /** Can be used to override the hover trigger */\n triggered?: boolean;\n }\n);\n\nexport const hoverTriggerClass = styles.hoverTrigger;\n\n/**\n * Toggles between primary and secondary content by sliding vertically.\n *\n * The two provided elements are placed in containers which both share the same height\n * and width of primary's content.\n *\n * Use the trigger prop to set what toggles between primary and secondary:\n * - manual: Default. Rely on the triggered boolean to control whether primary or secondary is displayed.\n * Has aria-live, and only one of primary and secondary has aria-hidden=\"false\"\n * - hover: This element must be a child of a parent that has the hoverTriggerClass class attached.\n * Both primary and secondary are always visible to screen readers\n */\nconst VerticalTransition = ({\n primary,\n secondary,\n rootClassName,\n className,\n trigger = 'manual',\n triggered,\n}: VerticalTransitionProps) => (\n <div\n className={classNames(rootClassName, styles.container, {\n [styles.triggered]: triggered,\n [styles.canTriggerByHover]: trigger === 'hover',\n })}\n // The manually triggered version is an aria-live region since it is meant to replace toasts for ephemeral updates.\n // The hover version is meant more for decorative elements, so we don't give it any special accessibility treatment\n aria-live={trigger === 'manual' ? 'polite' : undefined}\n >\n <div className={classNames(className, styles.primary)} aria-hidden={trigger === 'manual' ? triggered : undefined}>\n {primary}\n </div>\n <div\n className={classNames(className, styles.secondary)}\n aria-hidden={trigger === 'manual' ? !triggered : undefined}\n >\n {secondary}\n </div>\n </div>\n);\n\nexport default VerticalTransition;\n","import { useEffect, useState } from 'react';\n\nexport type Countdown = {\n expiration: number; // Unix epoch\n start: (durationInSeconds: number) => void;\n clear: () => void;\n};\n\nexport function useCountdown(): Countdown {\n const [expiration, setExpiration] = useState(0);\n\n const start = (durationInSeconds: number) => {\n setExpiration(Date.now() + durationInSeconds * 1_000);\n };\n\n const clear = () => {\n setExpiration(0);\n };\n\n return {\n expiration,\n start,\n clear,\n };\n}\n\nexport function formatCountdown(secondsLeft: number) {\n const minutes = Math.floor(secondsLeft / 60);\n const seconds = secondsLeft - minutes * 60;\n return minutes + ':' + String(seconds).padStart(2, '0');\n}\n\nconst getSecondsRemaining = (expiration: number) => Math.max(0, Math.ceil((expiration - Date.now()) / 1_000));\n\nexport const useTimeRemaining = (expirationEpoch: number) => {\n const [seconds, setSeconds] = useState(() => getSecondsRemaining(expirationEpoch));\n\n const codeExpired = seconds <= 0;\n useEffect(() => {\n const updateSeconds = () => setSeconds(getSecondsRemaining(expirationEpoch));\n updateSeconds();\n\n if (Date.now() >= expirationEpoch) return;\n const interval = setInterval(updateSeconds, 1000);\n\n return () => clearInterval(interval);\n }, [codeExpired, expirationEpoch]);\n\n return [seconds, !codeExpired] as const;\n};\n","import React, { ReactNode, useState } from 'react';\nimport { useLingui } from '@lingui/react/macro';\nimport { StytchSDKAPIError } from '@stytch/core/public';\nimport Typography from '../atoms/Typography';\nimport Button from '../atoms/Button';\nimport Column from '../atoms/Column';\nimport ButtonColumn from './ButtonColumn';\nimport VerticalTransition from '../atoms/VerticalTransition';\nimport { useCountdown, useTimeRemaining } from '../atoms/Countdown';\nimport { errorToast } from '../atoms/Toast';\nimport { getTranslatedError } from '../../../utils/getTranslatedError';\n\ntype EmailActionProps = {\n header: ReactNode;\n description: ReactNode;\n\n /**\n * Additional content to display below description\n * Usually used for forms. If you have buttons, use additionalActions instead.\n */\n children?: ReactNode;\n\n additionalActions?: ReactNode;\n\n /**\n * We assume pressing this button sent off an email and we will disable the button for 15 seconds.\n */\n resend?: () => Promise<unknown>;\n\n sendMagicLink?: () => Promise<unknown>;\n goBack?: () => void;\n};\n\n/**\n * Handles common layouts for simple email actions\n */\nconst EmailActionLayout = ({\n header,\n description,\n children,\n additionalActions,\n resend,\n sendMagicLink,\n goBack,\n}: EmailActionProps) => {\n const { t } = useLingui();\n\n const [emailResending, setEmailResending] = useState(false);\n const [magicLinkSent, setMagicLinkSent] = useState(false);\n\n const countdown = useCountdown();\n const [timeRemaining, active] = useTimeRemaining(countdown.expiration);\n\n const resendButton = resend && (\n <Button\n variant=\"outline\"\n onClick={async () => {\n setEmailResending(true);\n try {\n await resend();\n countdown.start(15);\n } catch (error) {\n errorToast({ message: getTranslatedError(error as StytchSDKAPIError, t) });\n countdown.clear();\n } finally {\n setEmailResending(false);\n }\n }}\n loading={emailResending}\n disabled={emailResending || active}\n >\n <VerticalTransition\n triggered={active}\n primary={t({ id: 'button.resendEmail', message: 'Resend email' })}\n secondary={t({ id: 'button.emailResent', message: `Email resent! Try again in ${timeRemaining}s` })}\n />\n </Button>\n );\n\n const goBackButton = goBack && (\n <Button variant=\"ghost\" onClick={goBack}>\n {t({ id: 'button.goBack', message: 'Go back' })}\n </Button>\n );\n\n const actions = sendMagicLink ? (\n <ButtonColumn\n top={\n <>\n {additionalActions}\n {resendButton}\n </>\n }\n bottom={\n <>\n <Button\n variant=\"outline\"\n onClick={() => {\n setMagicLinkSent(true);\n sendMagicLink().catch(() => setMagicLinkSent(false));\n }}\n loading={magicLinkSent}\n >\n {t({ id: 'button.loginWithoutPassword', message: 'Log in without a password' })}\n </Button>\n\n {goBackButton}\n </>\n }\n />\n ) : (\n <ButtonColumn>\n {additionalActions}\n {resendButton}\n {goBackButton}\n </ButtonColumn>\n );\n\n return (\n <Column gap={6}>\n <Typography variant=\"header\">{header}</Typography>\n <Typography>{description}</Typography>\n\n {children}\n\n {actions}\n </Column>\n );\n};\n\nexport default EmailActionLayout;\n","import React from 'react';\nimport { MessageDescriptor } from '@lingui/core';\nimport { msg } from '@lingui/core/macro';\nimport { useLingui } from '@lingui/react/macro';\nimport { ButtonAnchor } from '../atoms/Button';\nimport { usePresentation } from '../PresentationConfig';\nimport type { emailIcons } from '../../b2c/components/Icons';\n\ntype EmailProvider = 'gmail' | 'yahoo' | 'outlook';\n\nexport interface EmailProviderInfo {\n messageDescriptor: MessageDescriptor;\n icon: keyof typeof emailIcons;\n getUrl: (emailDomain: string | null) => string;\n}\n\nexport const emailProviderInfo = {\n gmail: {\n messageDescriptor: msg({ id: 'link.openInGmail', message: 'Open in Gmail' }),\n icon: 'gmail',\n getUrl: (emailDomain: string | null) => {\n const gmailQuery = encodeURIComponent(emailDomain ? `from:@${emailDomain} in:anywhere` : 'in:anywhere');\n return `https://mail.google.com/mail/u/0/#search/${gmailQuery}`;\n },\n },\n yahoo: {\n messageDescriptor: msg({ id: 'link.openInYahoo', message: 'Open in Yahoo' }),\n icon: 'yahoo',\n getUrl: (emailDomain: string | null) => {\n return !emailDomain\n ? 'https://mail.yahoo.com/d/search/referrer=unread'\n : `https://mail.yahoo.com/d/search/keyword=${emailDomain}`;\n },\n },\n outlook: {\n messageDescriptor: msg({ id: 'link.openInOutlook', message: 'Open in Outlook' }),\n icon: 'outlook',\n getUrl: () => `https://outlook.office.com/mail/0/inbox`,\n },\n} satisfies Record<EmailProvider, EmailProviderInfo>;\n\ntype EmailProviderProps = {\n providerInfo: EmailProviderInfo;\n emailDomain: string | null;\n};\n\nexport const EmailProviderLink = ({\n providerInfo: { icon, messageDescriptor, getUrl },\n emailDomain,\n}: EmailProviderProps) => {\n const { t } = useLingui();\n const href = getUrl(emailDomain);\n const { iconRegistry } = usePresentation();\n\n const Icon = iconRegistry[icon];\n\n return (\n <ButtonAnchor variant=\"outline\" href={href} target=\"_blank\" rel=\"noopener noreferrer\" icon={<Icon />}>\n {t(messageDescriptor)}\n </ButtonAnchor>\n );\n};\n","import React from 'react';\nimport { Trans } from '@lingui/react';\nimport { useLingui } from '@lingui/react/macro';\nimport EmailActionLayout from '../molecules/EmailActionLayout';\nimport { EmailProviderLink, emailProviderInfo } from '../molecules/EmailProviderLink';\nimport Button from '../atoms/Button';\n\n/**\n * Base component for the two EmailConfirmation in B2B and B2C. This component controls the presentation\n * and do not have any of the B2C/B2B specific code\n */\nexport const EmailConfirmationView = ({\n emailDomain,\n reset,\n email,\n showGoBack = true,\n}: {\n emailDomain: string | null;\n reset: () => void;\n email: string;\n showGoBack?: boolean;\n}) => {\n const { t } = useLingui();\n return (\n <EmailActionLayout\n header={t({ id: 'emailConfirmation.title', message: 'Check your email' })}\n description={\n <Trans\n id=\"emailConfirmation.content\"\n message=\"An email was sent to <bold>{email}</bold>.\"\n components={{ bold: <b /> }}\n values={{ email }}\n />\n }\n additionalActions={\n <>\n <EmailProviderLink emailDomain={emailDomain} providerInfo={emailProviderInfo.gmail} />\n <EmailProviderLink emailDomain={emailDomain} providerInfo={emailProviderInfo.yahoo} />\n <EmailProviderLink emailDomain={emailDomain} providerInfo={emailProviderInfo.outlook} />\n\n {showGoBack && (\n <Button variant=\"ghost\" onClick={reset}>\n {t({ id: 'button.goBack', message: 'Go back' })}\n </Button>\n )}\n </>\n }\n />\n );\n};\n","import { MutableRefObject, useEffect, useRef } from 'react';\n\nexport const useIsUnmounted = (): MutableRefObject<boolean> => {\n const isUnmounted = useRef<boolean>(false);\n\n useEffect(\n () => () => {\n isUnmounted.current = true;\n },\n [],\n );\n\n return isUnmounted;\n};\n\nexport const useIsMounted = (): MutableRefObject<boolean> => {\n const isUnmounted = useRef<boolean>(true);\n\n useEffect(\n () => () => {\n isUnmounted.current = false;\n },\n [],\n );\n\n return isUnmounted;\n};\n","/* eslint-disable lingui/no-unlocalized-strings -- messages are only shown in test environments */\n\nimport React from 'react';\nimport Typography from '../atoms/Typography';\nimport { Values } from '../../../utils/types';\n\nconst RedirectUrlsErrorMessage = ({ niceName, variableName }: { niceName: string; variableName: string }) => (\n <Typography variant=\"body\" color=\"destructive\">\n One Tap cannot render because there are no {niceName} set for this project so we are unable to verify the{' '}\n <code>{variableName}</code>&nbsp; provided in the configuration. To set {niceName} for this project please\n visit&nbsp;\n <a href=\"https://stytch.com/dashboard/redirect-urls\">the Stytch dashboard.</a>&nbsp; For more information on why\n this validation is necessary please visit&nbsp;\n <a href=\"https://stytch.com/docs/api/url-validation\">https://stytch.com/docs/api/url-validation.</a>\n </Typography>\n);\n\nexport const OneTapErrors = {\n // These come from the Google GSI Client\n OriginNotAllowedForClient: 'origin_not_allowed_for_client',\n InvalidOAuthClient: 'invalid_client',\n // These come from the API directly - err.error_type\n NoConfiguredOAuthClient: 'oauth_config_not_found',\n NoConfiguredLoginRedirectUrls: 'no_login_redirect_urls_set',\n NoConfiguredSignupRedirectUrls: 'no_signup_redirect_urls_set',\n DefaultProviderNotAllowed: 'default_provider_not_allowed',\n};\n\nexport type OneTapErrors = Values<typeof OneTapErrors>;\n\nexport const ErrorMessages = ({ error }: { error: OneTapErrors }) => {\n switch (error) {\n case OneTapErrors.OriginNotAllowedForClient:\n return (\n <Typography variant=\"body\" color=\"destructive\">\n One Tap cannot render because the current host&nbsp;\n <code>{window.location.host}</code> is not allowed for this project. Make sure to put your project&apos;s host\n into the Google API console. When using localhost for development, you must add both&nbsp;\n <code>http://localhost</code> and&nbsp;\n <code>{`http://localhost:<port_number>`}</code>&nbsp; to the Authorized JavaScript origins box. You can learn\n more&nbsp;\n <a href=\"https://stytch.com/docs/sdks\">here.</a>\n </Typography>\n );\n case OneTapErrors.InvalidOAuthClient:\n return (\n <Typography variant=\"body\" color=\"destructive\">\n One Tap cannot render because the client ID configured for your project is not recognized by Google. &nbsp;\n Please check that the client ID saved in{' '}\n <a href=\"https://stytch.com/dashboard/oauth/google\">the Stytch Dashboard</a>&nbsp; matches the client ID in\n your Google Cloud Console.\n </Typography>\n );\n case OneTapErrors.NoConfiguredOAuthClient:\n return (\n <Typography variant=\"body\" color=\"destructive\">\n One Tap cannot render because no Google OAuth client configuration could be found for this project. Please\n make sure a client is configured in the&nbsp;\n <a href=\"https://stytch.com/dashboard/oauth\">dashboard.</a>\n </Typography>\n );\n case OneTapErrors.NoConfiguredLoginRedirectUrls:\n return <RedirectUrlsErrorMessage niceName=\"login redirect URLs\" variableName=\"oauthOptions.loginRedirectURL\" />;\n case OneTapErrors.NoConfiguredSignupRedirectUrls:\n return <RedirectUrlsErrorMessage niceName=\"signup redirect URLs\" variableName=\"oauthOptions.signupRedirectURL\" />;\n case OneTapErrors.DefaultProviderNotAllowed:\n return (\n <Typography variant=\"body\" color=\"destructive\">\n One Tap cannot render because the Stytch Default OAuth Provider is not compatible with One Tap. Please\n configure your own Google client in the&nbsp;\n <a href=\"https://stytch.com/dashboard/oauth\">dashboard.</a>\n </Typography>\n );\n }\n};\n","import React from 'react';\nimport Typography from '../atoms/Typography';\n\nimport styles from './Badge.module.css';\nimport classNames from 'classnames';\n\ntype BadgeProps = {\n className?: string;\n children: string;\n};\n\nexport const Badge = ({ className, children }: BadgeProps) => (\n <div className={classNames(styles.badge, className)}>\n <Typography variant=\"helper\">{children}</Typography>\n </div>\n);\n","import React, { ReactNode } from 'react';\nimport { Badge } from './Badge';\nimport { useLingui } from '@lingui/react/macro';\nimport styles from './LastUsed.module.css';\n\nconst LastUsed = ({ children }: { children: ReactNode }) => {\n const { t } = useLingui();\n\n return (\n <div className={styles.container}>\n {children}\n <Badge className={styles.badge}>{t({ id: 'provider.lastUsed', message: 'Last used' })}</Badge>\n </div>\n );\n};\n\nexport default LastUsed;\n","import React, { ReactNode } from 'react';\nimport Column from '../atoms/Column';\nimport Typography, { TypographyProps } from '../atoms/Typography';\n\nexport type TextColumnProps = {\n header: ReactNode;\n body?: ReactNode;\n helper?: ReactNode;\n\n align?: TypographyProps['align'];\n};\n\n/**\n * Helper component for a common text layout pattern\n */\nconst TextColumn = ({ header, body, helper, align }: TextColumnProps) => (\n <Column gap={4}>\n <Typography variant=\"header\" align={align}>\n {header}\n </Typography>\n {body && <Typography align={align}>{body}</Typography>}\n {helper && (\n <Typography variant=\"helper\" align={align}>\n {helper}\n </Typography>\n )}\n </Column>\n);\n\nexport default TextColumn;\n","var Bt=Object.defineProperty,At=Object.defineProperties;var kt=Object.getOwnPropertyDescriptors;var Y=Object.getOwnPropertySymbols;var gt=Object.prototype.hasOwnProperty,Et=Object.prototype.propertyIsEnumerable;var vt=(r,s,e)=>s in r?Bt(r,s,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[s]=e,St=(r,s)=>{for(var e in s||(s={}))gt.call(s,e)&&vt(r,e,s[e]);if(Y)for(var e of Y(s))Et.call(s,e)&&vt(r,e,s[e]);return r},bt=(r,s)=>At(r,kt(s));var Pt=(r,s)=>{var e={};for(var u in r)gt.call(r,u)&&s.indexOf(u)<0&&(e[u]=r[u]);if(r!=null&&Y)for(var u of Y(r))s.indexOf(u)<0&&Et.call(r,u)&&(e[u]=r[u]);return e};import*as n from\"react\";function ht(r){let s=setTimeout(r,0),e=setTimeout(r,10),u=setTimeout(r,50);return[s,e,u]}import*as U from\"react\";function _t(r){let s=U.useRef();return U.useEffect(()=>{s.current=r}),s.current}import*as S from\"react\";var Ot=18,wt=40,Gt=`${wt}px`,xt=[\"[data-lastpass-icon-root]\",\"com-1password-button\",\"[data-dashlanecreated]\",'[style$=\"2147483647 !important;\"]'].join(\",\");function Tt({containerRef:r,inputRef:s,pushPasswordManagerStrategy:e,isFocused:u}){let[P,D]=S.useState(!1),[G,H]=S.useState(!1),[F,W]=S.useState(!1),Z=S.useMemo(()=>e===\"none\"?!1:(e===\"increase-width\"||e===\"experimental-no-flickering\")&&P&&G,[P,G,e]),T=S.useCallback(()=>{let f=r.current,h=s.current;if(!f||!h||F||e===\"none\")return;let a=f,B=a.getBoundingClientRect().left+a.offsetWidth,A=a.getBoundingClientRect().top+a.offsetHeight/2,z=B-Ot,q=A;document.querySelectorAll(xt).length===0&&document.elementFromPoint(z,q)===f||(D(!0),W(!0))},[r,s,F,e]);return S.useEffect(()=>{let f=r.current;if(!f||e===\"none\")return;function h(){let A=window.innerWidth-f.getBoundingClientRect().right;H(A>=wt)}h();let a=setInterval(h,1e3);return()=>{clearInterval(a)}},[r,e]),S.useEffect(()=>{let f=u||document.activeElement===s.current;if(e===\"none\"||!f)return;let h=setTimeout(T,0),a=setTimeout(T,2e3),B=setTimeout(T,5e3),A=setTimeout(()=>{W(!0)},6e3);return()=>{clearTimeout(h),clearTimeout(a),clearTimeout(B),clearTimeout(A)}},[s,u,e,T]),{hasPWMBadge:P,willPushPWMBadge:Z,PWM_BADGE_SPACE_WIDTH:Gt}}var jt=n.createContext({}),Lt=n.forwardRef((A,B)=>{var z=A,{value:r,onChange:s,maxLength:e,textAlign:u=\"left\",pattern:P,placeholder:D,inputMode:G=\"numeric\",onComplete:H,pushPasswordManagerStrategy:F=\"increase-width\",pasteTransformer:W,containerClassName:Z,noScriptCSSFallback:T=Nt,render:f,children:h}=z,a=Pt(z,[\"value\",\"onChange\",\"maxLength\",\"textAlign\",\"pattern\",\"placeholder\",\"inputMode\",\"onComplete\",\"pushPasswordManagerStrategy\",\"pasteTransformer\",\"containerClassName\",\"noScriptCSSFallback\",\"render\",\"children\"]);var X,lt,ut,dt,ft;let[q,nt]=n.useState(typeof a.defaultValue==\"string\"?a.defaultValue:\"\"),i=r!=null?r:q,I=_t(i),x=n.useCallback(t=>{s==null||s(t),nt(t)},[s]),m=n.useMemo(()=>P?typeof P==\"string\"?new RegExp(P):P:null,[P]),l=n.useRef(null),K=n.useRef(null),J=n.useRef({value:i,onChange:x,isIOS:typeof window!=\"undefined\"&&((lt=(X=window==null?void 0:window.CSS)==null?void 0:X.supports)==null?void 0:lt.call(X,\"-webkit-touch-callout\",\"none\"))}),V=n.useRef({prev:[(ut=l.current)==null?void 0:ut.selectionStart,(dt=l.current)==null?void 0:dt.selectionEnd,(ft=l.current)==null?void 0:ft.selectionDirection]});n.useImperativeHandle(B,()=>l.current,[]),n.useEffect(()=>{let t=l.current,o=K.current;if(!t||!o)return;J.current.value!==t.value&&J.current.onChange(t.value),V.current.prev=[t.selectionStart,t.selectionEnd,t.selectionDirection];function d(){if(document.activeElement!==t){L(null),N(null);return}let c=t.selectionStart,b=t.selectionEnd,mt=t.selectionDirection,v=t.maxLength,C=t.value,_=V.current.prev,g=-1,E=-1,w;if(C.length!==0&&c!==null&&b!==null){let Dt=c===b,Ht=c===C.length&&C.length<v;if(Dt&&!Ht){let y=c;if(y===0)g=0,E=1,w=\"forward\";else if(y===v)g=y-1,E=y,w=\"backward\";else if(v>1&&C.length>1){let et=0;if(_[0]!==null&&_[1]!==null){w=y<_[1]?\"backward\":\"forward\";let Wt=_[0]===_[1]&&_[0]<v;w===\"backward\"&&!Wt&&(et=-1)}g=et+y,E=et+y+1}}g!==-1&&E!==-1&&g!==E&&l.current.setSelectionRange(g,E,w)}let pt=g!==-1?g:c,Rt=E!==-1?E:b,yt=w!=null?w:mt;L(pt),N(Rt),V.current.prev=[pt,Rt,yt]}if(document.addEventListener(\"selectionchange\",d,{capture:!0}),d(),document.activeElement===t&&Q(!0),!document.getElementById(\"input-otp-style\")){let c=document.createElement(\"style\");if(c.id=\"input-otp-style\",document.head.appendChild(c),c.sheet){let b=\"background: transparent !important; color: transparent !important; border-color: transparent !important; opacity: 0 !important; box-shadow: none !important; -webkit-box-shadow: none !important; -webkit-text-fill-color: transparent !important;\";$(c.sheet,\"[data-input-otp]::selection { background: transparent !important; color: transparent !important; }\"),$(c.sheet,`[data-input-otp]:autofill { ${b} }`),$(c.sheet,`[data-input-otp]:-webkit-autofill { ${b} }`),$(c.sheet,\"@supports (-webkit-touch-callout: none) { [data-input-otp] { letter-spacing: -.6em !important; font-weight: 100 !important; font-stretch: ultra-condensed; font-optical-sizing: none !important; left: -1px !important; right: 1px !important; } }\"),$(c.sheet,\"[data-input-otp] + * { pointer-events: all !important; }\")}}let R=()=>{o&&o.style.setProperty(\"--root-height\",`${t.clientHeight}px`)};R();let p=new ResizeObserver(R);return p.observe(t),()=>{document.removeEventListener(\"selectionchange\",d,{capture:!0}),p.disconnect()}},[]);let[ot,rt]=n.useState(!1),[j,Q]=n.useState(!1),[M,L]=n.useState(null),[k,N]=n.useState(null);n.useEffect(()=>{ht(()=>{var R,p,c,b;(R=l.current)==null||R.dispatchEvent(new Event(\"input\"));let t=(p=l.current)==null?void 0:p.selectionStart,o=(c=l.current)==null?void 0:c.selectionEnd,d=(b=l.current)==null?void 0:b.selectionDirection;t!==null&&o!==null&&(L(t),N(o),V.current.prev=[t,o,d])})},[i,j]),n.useEffect(()=>{I!==void 0&&i!==I&&I.length<e&&i.length===e&&(H==null||H(i))},[e,H,I,i]);let O=Tt({containerRef:K,inputRef:l,pushPasswordManagerStrategy:F,isFocused:j}),st=n.useCallback(t=>{let o=t.currentTarget.value.slice(0,e);if(o.length>0&&m&&!m.test(o)){t.preventDefault();return}typeof I==\"string\"&&o.length<I.length&&document.dispatchEvent(new Event(\"selectionchange\")),x(o)},[e,x,I,m]),at=n.useCallback(()=>{var t;if(l.current){let o=Math.min(l.current.value.length,e-1),d=l.current.value.length;(t=l.current)==null||t.setSelectionRange(o,d),L(o),N(d)}Q(!0)},[e]),ct=n.useCallback(t=>{var g,E;let o=l.current;if(!W&&(!J.current.isIOS||!t.clipboardData||!o))return;let d=t.clipboardData.getData(\"text/plain\"),R=W?W(d):d;t.preventDefault();let p=(g=l.current)==null?void 0:g.selectionStart,c=(E=l.current)==null?void 0:E.selectionEnd,v=(p!==c?i.slice(0,p)+R+i.slice(c):i.slice(0,p)+R+i.slice(p)).slice(0,e);if(v.length>0&&m&&!m.test(v))return;o.value=v,x(v);let C=Math.min(v.length,e-1),_=v.length;o.setSelectionRange(C,_),L(C),N(_)},[e,x,m,i]),It=n.useMemo(()=>({position:\"relative\",cursor:a.disabled?\"default\":\"text\",userSelect:\"none\",WebkitUserSelect:\"none\",pointerEvents:\"none\"}),[a.disabled]),it=n.useMemo(()=>({position:\"absolute\",inset:0,width:O.willPushPWMBadge?`calc(100% + ${O.PWM_BADGE_SPACE_WIDTH})`:\"100%\",clipPath:O.willPushPWMBadge?`inset(0 ${O.PWM_BADGE_SPACE_WIDTH} 0 0)`:void 0,height:\"100%\",display:\"flex\",textAlign:u,opacity:\"1\",color:\"transparent\",pointerEvents:\"all\",background:\"transparent\",caretColor:\"transparent\",border:\"0 solid transparent\",outline:\"0 solid transparent\",boxShadow:\"none\",lineHeight:\"1\",letterSpacing:\"-.5em\",fontSize:\"var(--root-height)\",fontFamily:\"monospace\",fontVariantNumeric:\"tabular-nums\"}),[O.PWM_BADGE_SPACE_WIDTH,O.willPushPWMBadge,u]),Mt=n.useMemo(()=>n.createElement(\"input\",bt(St({autoComplete:a.autoComplete||\"one-time-code\"},a),{\"data-input-otp\":!0,\"data-input-otp-placeholder-shown\":i.length===0||void 0,\"data-input-otp-mss\":M,\"data-input-otp-mse\":k,inputMode:G,pattern:m==null?void 0:m.source,\"aria-placeholder\":D,style:it,maxLength:e,value:i,ref:l,onPaste:t=>{var o;ct(t),(o=a.onPaste)==null||o.call(a,t)},onChange:st,onMouseOver:t=>{var o;rt(!0),(o=a.onMouseOver)==null||o.call(a,t)},onMouseLeave:t=>{var o;rt(!1),(o=a.onMouseLeave)==null||o.call(a,t)},onFocus:t=>{var o;at(),(o=a.onFocus)==null||o.call(a,t)},onBlur:t=>{var o;Q(!1),(o=a.onBlur)==null||o.call(a,t)}})),[st,at,ct,G,it,e,k,M,a,m==null?void 0:m.source,i]),tt=n.useMemo(()=>({slots:Array.from({length:e}).map((t,o)=>{var c;let d=j&&M!==null&&k!==null&&(M===k&&o===M||o>=M&&o<k),R=i[o]!==void 0?i[o]:null,p=i[0]!==void 0?null:(c=D==null?void 0:D[o])!=null?c:null;return{char:R,placeholderChar:p,isActive:d,hasFakeCaret:d&&R===null}}),isFocused:j,isHovering:!a.disabled&&ot}),[j,ot,e,k,M,a.disabled,i]),Ct=n.useMemo(()=>f?f(tt):n.createElement(jt.Provider,{value:tt},h),[h,tt,f]);return n.createElement(n.Fragment,null,T!==null&&n.createElement(\"noscript\",null,n.createElement(\"style\",null,T)),n.createElement(\"div\",{ref:K,\"data-input-otp-container\":!0,style:It,className:Z},Ct,n.createElement(\"div\",{style:{position:\"absolute\",inset:0,pointerEvents:\"none\"}},Mt)))});Lt.displayName=\"Input\";function $(r,s){try{r.insertRule(s)}catch(e){console.error(\"input-otp could not insert CSS rule:\",s)}}var Nt=`\n[data-input-otp] {\n --nojs-bg: white !important;\n --nojs-fg: black !important;\n\n background-color: var(--nojs-bg) !important;\n color: var(--nojs-fg) !important;\n caret-color: var(--nojs-fg) !important;\n letter-spacing: .25em !important;\n text-align: center !important;\n border: 1px solid var(--nojs-fg) !important;\n border-radius: 4px !important;\n width: 100% !important;\n}\n@media (prefers-color-scheme: dark) {\n [data-input-otp] {\n --nojs-bg: black !important;\n --nojs-fg: white !important;\n }\n}`;var Kt=\"^\\\\d+$\",Jt=\"^[a-zA-Z]+$\",Qt=\"^[a-zA-Z0-9]+$\";export{Lt as OTPInput,jt as OTPInputContext,Jt as REGEXP_ONLY_CHARS,Kt as REGEXP_ONLY_DIGITS,Qt as REGEXP_ONLY_DIGITS_AND_CHARS};\n//# sourceMappingURL=index.mjs.map","import React, { useMemo, useState } from 'react';\nimport { useLingui } from '@lingui/react/macro';\nimport classNames from 'classnames';\nimport { OTPInput, RenderProps } from 'input-otp';\nimport styles from './OtpInput.module.css';\n\nconst OTP_LENGTH = 6;\n\nexport type OtpInputProps = {\n onSubmit: (otp: string) => void;\n defaultOtp?: string;\n disabled?: boolean;\n};\n\nconst transformInput = (input: string) => input.replace(/\\D/g, '').slice(0, OTP_LENGTH);\n\nconst renderSlots = ({ slots }: RenderProps) => (\n <div className={styles.slotsContainer}>\n {slots.map((slot, index) => (\n <div\n key={index}\n className={classNames(styles.otpSlot, {\n [styles.active]: slot.isActive,\n })}\n >\n <span>{slot.char}</span>\n {slot.hasFakeCaret && <div className={styles.caret} />}\n </div>\n ))}\n </div>\n);\n\nconst OtpInput = ({ defaultOtp, onSubmit, disabled, ...additionalProps }: OtpInputProps) => {\n const { t } = useLingui();\n const [otp, setOtp] = useState(defaultOtp);\n\n const isSafari = useMemo(() => {\n const ua = navigator.userAgent.toLowerCase();\n // chrom catches both chrome and chromium\n return ua.includes('safari') && !ua.includes('chrom');\n }, []);\n\n return (\n <OTPInput\n aria-label={t({ id: 'formField.otp.ariaLabel', message: 'One-time passcode' })}\n containerClassName={classNames(styles.inputContainer, {\n [styles.disabled]: disabled,\n [styles.safari]: isSafari,\n })}\n maxLength={OTP_LENGTH}\n value={otp}\n onChange={(newOtp) => setOtp(transformInput(newOtp))}\n pasteTransformer={transformInput}\n disabled={disabled}\n onComplete={onSubmit}\n pattern=\"[0-9]*\"\n render={renderSlots}\n {...additionalProps}\n />\n );\n};\n\nexport default OtpInput;\n","import React from 'react';\nimport styles from './LoadingBar.module.css';\n\n/**\n * A fake loading bar that goes to 100% over 10s\n */\nconst LoadingBar = ({ isLoading }: { isLoading: boolean }) => (\n <div role=\"progressbar\" className={styles.container}>\n {isLoading && <div className={styles.progress} />}\n </div>\n);\n\nexport default LoadingBar;\n","import React from 'react';\nimport classNames from 'classnames';\nimport styles from './AnimatedContainer.module.css';\n\nconst AnimatedContainer = ({ isOpen, children }: { isOpen: boolean; children: React.ReactNode }) => (\n <div className={classNames(styles.container, { [styles.open]: isOpen })} aria-live=\"polite\">\n <div className={styles.inner} aria-hidden={!isOpen}>\n {children}\n </div>\n </div>\n);\n\nexport default AnimatedContainer;\n","import React, { ReactNode } from 'react';\nimport { useLingui } from '@lingui/react/macro';\nimport Column from '../atoms/Column';\nimport Typography from '../atoms/Typography';\nimport TextColumn from './TextColumn';\nimport OtpInput from './OtpInput';\nimport LoadingBar from '../atoms/LoadingBar';\nimport ErrorText from './ErrorText';\nimport AnimatedContainer from '../atoms/AnimatedContainer';\nimport styles from './OTPEntry.module.css';\n\ninterface OTPEntryProps {\n header: ReactNode;\n instruction: ReactNode;\n helperContent: ReactNode;\n isSubmitting: boolean;\n onSubmit: (otp: string) => void;\n errorMessage?: string;\n}\n\nconst OTPEntry = ({ header, helperContent, instruction, isSubmitting, onSubmit, errorMessage }: OTPEntryProps) => {\n const { t } = useLingui();\n\n return (\n <Column gap={6}>\n <TextColumn header={header} body={instruction} />\n\n <Column gap={2}>\n {/* HACK: We can't have gap: 2 between OtpInput and the loading component below,\n * so instead we add padding-top: spacing-2 to progressContainer, hence the\n * slightly concerning number of nested Columns */}\n <Column>\n <OtpInput onSubmit={onSubmit} disabled={isSubmitting} />\n\n <AnimatedContainer isOpen={isSubmitting}>\n <Column className={styles.progressInner} gap={2}>\n <Typography variant=\"helper\">\n {t({ id: 'formField.passcode.status.verifying', message: 'Verifying passcode...' })}\n </Typography>\n\n <LoadingBar isLoading={isSubmitting} />\n </Column>\n </AnimatedContainer>\n </Column>\n\n <Column>\n {!isSubmitting && errorMessage && <ErrorText>{errorMessage}</ErrorText>}\n <Typography variant=\"helper\">{helperContent}</Typography>\n </Column>\n </Column>\n </Column>\n );\n};\n\nexport default OTPEntry;\n","import React from 'react';\nimport { useLingui } from '@lingui/react/macro';\nimport { Trans } from '@lingui/react';\nimport OTPEntry from '../molecules/OTPEntry';\nimport { formatCountdown, useTimeRemaining } from '../atoms/Countdown';\n\nexport interface SentOTPEntryProps {\n expiration: number; // Unix epoch milliseconds\n formattedDestination: string;\n isSubmitting: boolean;\n onSubmit: (otp: string) => void;\n errorMessage?: string;\n}\n\nexport const SentOTPEntry = ({\n expiration,\n formattedDestination,\n isSubmitting,\n onSubmit,\n errorMessage,\n}: SentOTPEntryProps) => {\n const { t } = useLingui();\n\n // Unfortunately for backwards compatibility, the variable in the localization template\n // must be named timeRemaining\n const [_timeRemaining, active] = useTimeRemaining(expiration);\n const timeRemaining = formatCountdown(_timeRemaining);\n\n const formattedText = active\n ? t({ id: 'passcode.expirationCountdown', message: `Your code expires in ${timeRemaining}.` })\n : t({ id: 'passcode.expired', message: 'Your code has expired.' });\n\n return (\n <OTPEntry\n header={t({ id: 'passcode.title', message: 'Enter passcode' })}\n helperContent={formattedText}\n instruction={\n <Trans\n id=\"passcode.sentConfirmation\"\n message=\"A 6-digit passcode was sent to you at <bold>{destination}</bold>.\"\n components={{ bold: <b /> }}\n values={{ destination: formattedDestination }}\n />\n }\n isSubmitting={isSubmitting}\n onSubmit={onSubmit}\n errorMessage={errorMessage}\n />\n );\n};\n","import React from 'react';\nimport { Countdown, useTimeRemaining } from '../atoms/Countdown';\nimport { useLingui } from '@lingui/react/macro';\nimport Button from '../atoms/Button';\nimport VerticalTransition from '../atoms/VerticalTransition';\n\nexport type ResendOTPButtonProps = {\n isSubmitting: boolean;\n resendOTP: () => Promise<void>;\n countdown: Countdown;\n};\n\nexport const ResendOTPButton = ({ isSubmitting, resendOTP, countdown }: ResendOTPButtonProps) => {\n const { t } = useLingui();\n\n const [timeRemaining, active] = useTimeRemaining(countdown.expiration);\n\n return (\n <Button\n variant=\"outline\"\n disabled={isSubmitting || active}\n onClick={() => {\n countdown.start(15);\n resendOTP().catch(() => countdown.clear());\n }}\n >\n <VerticalTransition\n primary={<span>{t({ id: 'passcode.resendCode', message: 'Resend code' })}</span>}\n secondary={t({ id: 'passcode.codeSent', message: `Code sent! Try again in ${timeRemaining}s` })}\n triggered={active}\n />\n </Button>\n );\n};\n","import { EffectCallback, useEffect, useRef } from 'react';\n\n/**\n * Run an effect only once, on mount\n * @param effect An effect to run only once, on mount\n */\nexport const useMountEffect = (effect: EffectCallback) => {\n const effectRef = useRef(effect);\n useEffect(() => effectRef.current(), []);\n};\n","import * as React from 'react';\nimport { useLingui } from '@lingui/react/macro';\nimport TextColumn from './TextColumn';\n\ntype ConfirmationProps = {\n header?: string;\n text?: string;\n};\n\nexport const Confirmation = ({ header, text }: ConfirmationProps) => {\n const { t } = useLingui();\n const defaultHeader = t({ id: 'success.title', message: 'Success!' });\n const defaultText = t({ id: 'login.success.content', message: 'You have successfully logged in.' });\n\n return <TextColumn header={header ?? defaultHeader} body={text ?? defaultText} align=\"center\" />;\n};\n","import React, { useEffect, useRef } from 'react';\nimport { useState } from 'react';\nimport Input from './Input';\nimport Button from '../atoms/Button';\nimport { useLingui } from '@lingui/react/macro';\nimport { InputLabelProps } from '../../../utils/accessibility';\n\nexport type PasswordInputProps = InputLabelProps & {\n password: string;\n setPassword: (email: string) => void;\n type: 'new' | 'current';\n\n // Passed through\n hideLabel?: boolean;\n error?: string;\n minLength?: number;\n passwordrules?: string;\n};\n\nexport const PasswordInput = ({ password, setPassword, type, ...additionalProps }: PasswordInputProps) => {\n const { t } = useLingui();\n const [visible, setVisible] = useState(false);\n\n // https://technology.blog.gov.uk/2021/04/19/simple-things-are-complicated-making-a-show-password-option/\n // Recommends setting the type back to password on submit\n const inputRef = useRef<HTMLInputElement>(null);\n useEffect(() => {\n const form = inputRef.current?.form;\n if (!form) return;\n\n const controller = new AbortController();\n form.addEventListener(\n 'submit',\n () => {\n // Don't know if this is fast enough, so we also update the DOM directly\n if (inputRef.current) inputRef.current.type = 'password';\n setVisible(false);\n },\n { signal: controller.signal },\n );\n return () => controller.abort();\n }, []);\n\n return (\n <Input\n id={`${type}-password`}\n label={t({ id: 'formField.password.label', message: 'Password' })}\n ref={inputRef}\n autoComplete={`${type}-password`}\n type={visible ? 'text' : 'password'}\n value={password}\n onChange={(e) => setPassword(e.target.value)}\n required\n action={\n <Button variant=\"ghost\" onClick={() => setVisible(!visible)}>\n {visible\n ? t({ id: 'button.hidePassword', message: 'Hide' })\n : t({ id: 'button.showPassword', message: 'Show' })}\n </Button>\n }\n {...additionalProps}\n />\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { useLingui } from '@lingui/react/macro';\nimport VisuallyHidden from '../atoms/VisuallyHidden';\nimport styles from './PasswordStrengthCheck.module.css';\n\nexport const PasswordStrengthCheck = ({ score }: { score?: number }) => {\n const { t } = useLingui();\n\n let status: string | undefined;\n if (score === 1 || score === 2) {\n status = styles.weak;\n } else if (score === 3 || score === 4) {\n status = styles.strong;\n }\n\n return (\n <div className={classNames(styles.container, status)}>\n {score != null && score > 0 && (\n <>\n {new Array(4).fill(undefined).map((_, i) => (\n <div key={i} className={classNames(styles.block, { [styles.filled]: score > i })} />\n ))}\n <VisuallyHidden>\n {t({ id: 'password.strength', message: `Password strength: ${score} out of 4.` })}\n </VisuallyHidden>\n </>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { useLingui } from '@lingui/react/macro';\nimport { msg, plural } from '@lingui/core/macro';\nimport { BootstrapData } from '@stytch/core';\n\nimport Column from '../atoms/Column';\nimport Typography from '../atoms/Typography';\nimport { PasswordStrengthCheck } from './PasswordStrengthCheck';\nimport VisuallyHidden from '../atoms/VisuallyHidden';\nimport type { PasswordInputProps } from './PasswordInput';\n\nimport styles from './PasswordError.module.css';\n\n// This list of warnings and suggestions should be exhaustive, and is pulled from https://github.com/stytchauth/zxcvbn/blob/main/feedback/feedback.go\nconst warnings = {\n 'Short keyboard patterns are easy to guess.': msg({\n id: 'password.zxcvbn.warning.shortKeyboardPatterns',\n message: 'Short keyboard patterns are easy to guess.',\n }),\n 'Straight rows of keys are easy to guess.': msg({\n id: 'password.zxcvbn.warning.straightRows',\n message: 'Straight rows of keys are easy to guess.',\n }),\n 'Repeats like \"aaa\" are easy to guess.': msg({\n id: 'password.zxcvbn.warning.repeats',\n message: 'Repeats like \"aaa\" are easy to guess.',\n }),\n 'Repeats like \"abcabcabc\" are only slightly harder to guess than \"abc\".': msg({\n id: 'password.zxcvbn.warning.longerRepeats',\n message: 'Repeats like \"abcabcabc\" are only slightly harder to guess than \"abc\".',\n }),\n 'Sequences like \"abc\" or \"6543\" are easy to guess.': msg({\n id: 'password.zxcvbn.warning.sequences',\n message: 'Sequences like \"abc\" or \"6543\" are easy to guess.',\n }),\n 'Recent years are easy to guess.': msg({\n id: 'password.zxcvbn.warning.recentYears',\n message: 'Recent years are easy to guess.',\n }),\n 'Dates are often easy to guess.': msg({\n id: 'password.zxcvbn.warning.dates',\n message: 'Dates are often easy to guess.',\n }),\n 'This is a top-10 common password.': msg({\n id: 'password.zxcvbn.warning.top10CommonPassword',\n message: 'This is a top-10 common password.',\n }),\n 'This is a top-100 common password.': msg({\n id: 'password.zxcvbn.warning.top100CommonPassword',\n message: 'This is a top-100 common password.',\n }),\n 'This is a very common password.': msg({\n id: 'password.zxcvbn.warning.veryCommonPassword',\n message: 'This is a very common password.',\n }),\n 'This is similar to a commonly used password.': msg({\n id: 'password.zxcvbn.warning.similarToCommonPassword',\n message: 'This is similar to a commonly used password.',\n }),\n 'A word by itself is easy to guess.': msg({\n id: 'password.zxcvbn.warning.wordByItself',\n message: 'A word by itself is easy to guess.',\n }),\n 'Names and surnames by themselves are easy to guess.': msg({\n id: 'password.zxcvbn.warning.names',\n message: 'Names and surnames by themselves are easy to guess.',\n }),\n 'Common names and surnames are easy to guess.': msg({\n id: 'password.zxcvbn.warning.commonNames',\n message: 'Common names and surnames are easy to guess.',\n }),\n};\n\nconst suggestions = {\n 'Use a few words, avoid common phrases.': msg({\n id: 'password.zxcvbn.suggestion.useAFewWords',\n message: 'Use a few words, avoid common phrases.',\n }),\n 'No need for symbols, digits, or uppercase letters.': msg({\n id: 'password.zxcvbn.suggestion.noSymbolsDigitsUppercase',\n message: 'No need for symbols, digits, or uppercase letters.',\n }),\n 'Add another word or two. Uncommon words are better.': msg({\n id: 'password.zxcvbn.suggestion.addWords',\n message: 'Add another word or two. Uncommon words are better.',\n }),\n 'Use a longer keyboard pattern with more turns.': msg({\n id: 'password.zxcvbn.suggestion.longerKeyboardPattern',\n message: 'Use a longer keyboard pattern with more turns.',\n }),\n 'Avoid repeated words and characters.': msg({\n id: 'password.zxcvbn.suggestion.avoidRepeats',\n message: 'Avoid repeated words and characters.',\n }),\n 'Avoid sequences.': msg({\n id: 'password.zxcvbn.suggestion.avoidSequences',\n message: 'Avoid sequences.',\n }),\n 'Avoid recent years.': msg({\n id: 'password.zxcvbn.suggestion.avoidRecentYears',\n message: 'Avoid recent years.',\n }),\n 'Avoid years that are associated with you.': msg({\n id: 'password.zxcvbn.suggestion.avoidYearsAssociatedWithYou',\n message: 'Avoid years that are associated with you.',\n }),\n 'Avoid dates and years that are associated with you.': msg({\n id: 'password.zxcvbn.suggestion.avoidDatesAndYearsAssociatedWithYou',\n message: 'Avoid dates and years that are associated with you.',\n }),\n \"Capitalization doesn't help very much.\": msg({\n id: 'password.zxcvbn.suggestion.capitalization',\n message: \"Capitalization doesn't help very much.\",\n }),\n 'All-uppercase is almost as easy to guess as all-lowercase.': msg({\n id: 'password.zxcvbn.suggestion.allUppercase',\n message: 'All-uppercase is almost as easy to guess as all-lowercase.',\n }),\n \"Reversed words aren't much harder to guess.\": msg({\n id: 'password.zxcvbn.suggestion.reversed',\n message: \"Reversed words aren't much harder to guess.\",\n }),\n \"Predictable substitutions like '@' instead of 'a' don't help very much.\": msg({\n id: 'password.zxcvbn.suggestion.predictableSubstitutions',\n message: \"Predictable substitutions like '@' instead of 'a' don't help very much.\",\n }),\n};\n\nconst labels = {\n fulfilled: msg({ id: 'password.requirement.fulfilled', message: 'Fulfilled' }),\n notFulfilled: msg({ id: 'password.requirement.notFulfilled', message: 'Not fulfilled' }),\n warning: msg({ id: 'password.requirement.warning', message: 'Warning' }),\n suggestion: msg({ id: 'password.requirement.suggestion', message: 'Suggestion' }),\n} as const;\n\nconst CrossIcon = () => (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M12.6667 4.27334L11.7267 3.33334L8.00001 7.06001L4.27334 3.33334L3.33334 4.27334L7.06001 8.00001L3.33334 11.7267L4.27334 12.6667L8.00001 8.94001L11.7267 12.6667L12.6667 11.7267L8.94001 8.00001L12.6667 4.27334Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\nconst CheckIcon = () => (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.86332 10.5833L3.08332 7.80333L2.13666 8.74333L5.86332 12.47L13.8633 4.47L12.9233 3.53L5.86332 10.5833Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport type PasswordErrorProps =\n | {\n policy: 'zxcvbn';\n passwordInvalid: boolean;\n passwordScore: number;\n isPasswordBreached: boolean;\n // zxcvbn will return 0-1 warnings\n passwordWarning?: string;\n // zxcvbn will return 1-n suggestions\n passwordSuggestions: string[];\n }\n | {\n policy: 'luds';\n passwordInvalid: boolean;\n isPasswordBreached: boolean;\n missingCharacters: number;\n missingComplexity: number;\n }\n | { policy: 'notLoaded' };\n\nconst PasswordStrengthItem = ({ children, type }: { children: string; type: keyof typeof labels }) => {\n const { t } = useLingui();\n\n // notFulfilled and warning both have the same icon and color, they only differ in label\n const color =\n type === 'suggestion'\n ? undefined //\n : type === 'fulfilled'\n ? 'success'\n : 'destructive';\n\n const icon =\n type === 'suggestion' ? (\n <span role=\"presentation\" className={styles.bullet}></span>\n ) : type === 'fulfilled' ? (\n <CheckIcon />\n ) : (\n <CrossIcon />\n );\n\n return (\n <Typography variant=\"helper\" className={styles.item} color={color} aria-atomic>\n {icon}\n <span>\n <VisuallyHidden>{t(labels[type])}: </VisuallyHidden>\n {children}\n </span>\n </Typography>\n );\n};\n\nexport const PasswordError = ({ bootstrap, ...props }: PasswordErrorProps & { bootstrap: BootstrapData }) => {\n const { t } = useLingui();\n const complexity = bootstrap.passwordConfig?.ludsComplexity ?? 0;\n const characterLength = bootstrap.passwordConfig?.ludsMinimumCount ?? 0;\n\n if (props.policy === 'notLoaded') {\n return null;\n }\n\n const { passwordInvalid, isPasswordBreached } = props;\n const passwordBreachedWarning = isPasswordBreached ? (\n <PasswordStrengthItem type=\"warning\">\n {t({\n id: 'password.strengthError.breached',\n message:\n 'This password may have been used on a different site that experienced a security issue. Please choose another password.',\n })}\n </PasswordStrengthItem>\n ) : null;\n\n if (props.policy === 'zxcvbn') {\n const { passwordScore, passwordWarning, passwordSuggestions } = props;\n\n // The list of warnings and suggestions above should be exhaustive, but we'll fall back to the untranslated string just in case.\n const translatedWarning = passwordWarning\n ? (warnings[passwordWarning as keyof typeof warnings] ?? passwordWarning)\n : null;\n const uniqueSuggestions = [...new Set(passwordSuggestions)];\n const translatedSuggestions = uniqueSuggestions.map(\n (suggestion) => suggestions[suggestion as keyof typeof suggestions] ?? suggestion,\n );\n\n return (\n <Column gap={1} aria-live=\"polite\">\n <PasswordStrengthCheck score={passwordScore} />\n\n <VisuallyHidden>\n {passwordInvalid\n ? t({ id: 'password.strength.notAccepted', message: 'Password not accepted.' })\n : t({ id: 'password.strength.accepted', message: 'Password accepted.' })}\n </VisuallyHidden>\n\n <div>\n {translatedWarning && <PasswordStrengthItem type=\"warning\">{t(translatedWarning)}</PasswordStrengthItem>}\n\n {translatedSuggestions.map((suggestion) => (\n <PasswordStrengthItem key={suggestion.id} type=\"suggestion\">\n {t(suggestion)}\n </PasswordStrengthItem>\n ))}\n\n {passwordBreachedWarning}\n </div>\n </Column>\n );\n }\n\n const { missingCharacters, missingComplexity } = props;\n return (\n <div aria-live=\"polite\">\n <VisuallyHidden>\n {passwordInvalid\n ? t({ id: 'password.strength.requirementsNotMet', message: 'Your password must meet all requirements.' })\n : t({ id: 'password.strength.accepted', message: 'Password accepted.' })}\n </VisuallyHidden>\n\n <PasswordStrengthItem type={missingCharacters === 0 ? 'fulfilled' : 'notFulfilled'}>\n {t({\n id: 'password.strengthError.minimumLength',\n message: plural(characterLength, {\n one: 'Must be at least # character long',\n other: 'Must be at least # characters long',\n }),\n })}\n </PasswordStrengthItem>\n\n <PasswordStrengthItem type={missingComplexity === 0 ? 'fulfilled' : 'notFulfilled'}>\n {t({\n id: 'password.strengthError.complexity',\n message: plural(complexity, {\n one: 'Must contain # of the following: uppercase letter, lowercase letter, number, symbol',\n other: 'Must contain # of the following: uppercase letter, lowercase letter, number, symbol',\n }),\n })}\n </PasswordStrengthItem>\n\n {passwordBreachedWarning}\n </div>\n );\n};\n\nexport function getNewPasswordProps(bootstrap: BootstrapData, passwordPolicy: PasswordErrorProps['policy']) {\n if (passwordPolicy === 'notLoaded' || passwordPolicy === 'zxcvbn' || bootstrap.passwordConfig == null) {\n // passwordrules is currently only respected by password managers so this is a safe default\n // we don't set minLength to avoid blocking\n // https://developer.apple.com/password-rules/\n return {\n type: 'new' as const,\n passwordrules: 'allowed: unicode; minlength: 10',\n } satisfies Partial<PasswordInputProps>;\n }\n\n const { ludsComplexity, ludsMinimumCount } = bootstrap.passwordConfig;\n const required = ['special', 'digit', 'upper', 'lower'].slice(0, ludsComplexity);\n return {\n type: 'new' as const,\n minLength: ludsMinimumCount,\n passwordrules: `allowed: unicode; minlength: ${ludsMinimumCount}; ${required.map((r) => `required: ${r}`).join('; ')}`,\n } satisfies Partial<PasswordInputProps>;\n}\n","import * as React from 'react';\nimport { useLingui } from '@lingui/react/macro';\nimport Typography from '../atoms/Typography';\nimport { CircularProgress } from '../atoms/CircularProgress';\nimport styles from './Loading.module.css';\n\nexport const LoggingInScreen = () => {\n const { t } = useLingui();\n return (\n <Typography variant=\"header\" align=\"center\">\n {t({ id: 'login.loading', message: 'Logging in...' })}\n </Typography>\n );\n};\n\nexport const LoadingScreen = () => (\n <div className={styles.loadingScreen}>\n <CircularProgress size={32} />\n </div>\n);\n","import React, { createContext, useContext, ReactNode } from 'react';\nimport { AuthTokenParams, B2BIDPConsentManifestGenerator } from '../../../types';\n\nconst ConsentManifestGeneratorContext = createContext<B2BIDPConsentManifestGenerator | undefined>(undefined);\n\nconst TrustedAuthTokenParamsContext = createContext<AuthTokenParams | undefined>(undefined);\n\ninterface Props {\n children: ReactNode;\n consentManifestGenerator?: B2BIDPConsentManifestGenerator;\n authTokenParams?: AuthTokenParams;\n}\n\nexport const IDPContextProvider = ({ children, consentManifestGenerator, authTokenParams }: Props) => {\n return (\n <ConsentManifestGeneratorContext.Provider value={consentManifestGenerator}>\n <TrustedAuthTokenParamsContext.Provider value={authTokenParams}>\n {children}\n </TrustedAuthTokenParamsContext.Provider>\n </ConsentManifestGeneratorContext.Provider>\n );\n};\n\nexport const useConsentManifestGenerator = (): B2BIDPConsentManifestGenerator | undefined =>\n useContext(ConsentManifestGeneratorContext);\n\nexport const useTrustedAuthTokenParams = (): AuthTokenParams | undefined => useContext(TrustedAuthTokenParamsContext);\n","import { B2BMFAProducts } from '@stytch/core/public';\nimport { CountryCode } from '@stytch/core';\nimport { AppScreens } from './types/AppScreens';\n\nexport interface MfaState {\n primaryInfo: {\n enrolledMfaMethods: B2BMFAProducts[];\n memberId: string;\n memberPhoneNumber: string | null;\n organizationId: string;\n organizationMfaOptionsSupported: B2BMFAProducts[];\n postAuthScreen: AppScreens;\n } | null;\n isEnrolling: boolean;\n smsOtp: {\n isSending: boolean;\n sendError: unknown;\n codeExpiration: Date | null;\n formattedDestination: string | null;\n enrolledNumber: {\n phoneNumber: string;\n countryCode: CountryCode;\n } | null;\n };\n totp: {\n isCreating: boolean;\n createError: unknown;\n enrollment: {\n secret: string;\n qrCode: string;\n recoveryCodes: string[];\n method: 'qr' | 'manual';\n } | null;\n };\n}\n\nexport const DEFAULT_MFA_STATE = {\n primaryInfo: null,\n isEnrolling: false,\n smsOtp: {\n isSending: false,\n sendError: null,\n codeExpiration: null,\n formattedDestination: null,\n enrolledNumber: null,\n },\n totp: {\n isCreating: false,\n createError: null,\n enrollment: null,\n },\n} as const satisfies MfaState;\n","import { Values } from '../../../utils/types';\n\n/* eslint-disable lingui/no-unlocalized-strings */\n\nexport const ErrorType = {\n Default: 'Default',\n EmailMagicLink: 'EmailMagicLink',\n Organization: 'Organization',\n CannotJoinOrgDueToAuthPolicy: 'CannotJoinOrgDueToAuthPolicy',\n AdBlockerDetected: 'AdBlockerDetected',\n OrganizationDiscoveryClaimedDomain: 'OrganizationDiscoveryClaimedDomain',\n};\nexport type ErrorType = Values<typeof ErrorType>;\n","import { Values } from '../../../utils/types';\n\n/* eslint-disable lingui/no-unlocalized-strings */\n\nexport const AppScreens = {\n Main: 'Main',\n EmailConfirmation: 'Email Confirmation',\n LoggedIn: 'Logged In',\n Discovery: 'Discovery',\n Error: 'Error',\n PasswordEmailForm: 'Password Email',\n PasswordAuthenticate: 'Password Authenticate',\n PasswordResetForm: 'Password Reset Form',\n PasswordResetVerifyConfirmation: 'Password Reset Verify Confirmation',\n PasswordForgotForm: 'Password Forgot Form',\n PasswordSetNewConfirmation: 'Password Set New Confirmation',\n MFAEnrollmentSelection: 'MFA Enrollment Selection',\n RecoveryCodeEntry: 'Recovery Code Entry',\n RecoveryCodeSave: 'Recovery Code Save',\n SMSOTPEnrollment: 'SMS OTP Enrollment',\n SMSOTPEntry: 'SMS OTP Entry',\n TOTPEnrollmentManual: 'TOTP Enrollment Manual',\n TOTPEnrollmentQRCode: 'TOTP Enrollment QR Code',\n TOTPEntry: 'TOTP Entry',\n EmailMethodSelection: 'Email Method Selection',\n EmailOTPEntry: 'Email OTP Entry',\n SSODiscoveryEmail: 'SSO Discovery Email',\n SSODiscoveryFallback: 'SSO Discovery Fallback',\n SSODiscoveryMenu: 'SSO Discovery Menu',\n} as const;\nexport type AppScreens = Values<typeof AppScreens>;\n\nexport const MainScreenComponent = {\n EmailForm: 'EmailForm',\n EmailDiscoveryForm: 'EmailDiscoveryForm',\n OAuthButtons: 'OAuthButtons',\n SSOButtons: 'SSOButtons',\n PasswordsEmailForm: 'PasswordsEmailForm',\n PasswordEmailCombined: 'PasswordEmailCombined',\n PasswordEmailCombinedDiscovery: 'PasswordEmailCombinedDiscovery',\n Divider: 'Divider',\n} as const;\nexport type MainScreenComponent = Values<typeof MainScreenComponent>;\n\nexport type ButtonComponent = typeof MainScreenComponent.SSOButtons | typeof MainScreenComponent.OAuthButtons;\n","export const getEnabledMethods = <TMethod>({\n allMethods,\n orgSupportedMethods,\n uiIncludedMethods,\n}: {\n allMethods: readonly TMethod[];\n orgSupportedMethods: readonly TMethod[];\n uiIncludedMethods: readonly TMethod[] | undefined;\n}) => {\n // If the org only supported a restricted set of methods, use that\n if (orgSupportedMethods?.length) {\n return new Set(orgSupportedMethods);\n }\n\n // Use the configured list of included methods, or all methods by default\n const methodsArr = uiIncludedMethods?.length ? uiIncludedMethods : allMethods;\n return new Set(methodsArr);\n};\n","import { AppScreens } from '../types/AppScreens';\nimport { AppState } from '../types/AppState';\n\nexport function pushHistory(screen: AppScreens, state: AppState): AppState {\n if (state.screen === screen) return state;\n\n return {\n ...state,\n screen,\n screenHistory: [...state.screenHistory, state.screen],\n };\n}\n\nexport function replaceHistory(screen: AppScreens, state: AppState): AppState {\n if (state.screen === screen) return state;\n\n return {\n ...state,\n screen,\n screenHistory: [],\n };\n}\n\nexport function canGoBack(state: AppState) {\n return state.screenHistory.length > 0;\n}\n","import { CountryCode, StringLiteralFromEnum } from '@stytch/core';\nimport {\n AuthFlowType,\n B2BAuthenticateResponseWithMFA,\n B2BMFAProducts,\n B2BSMSSendResponse,\n B2BTOTPCreateResponse,\n StytchProjectConfigurationInput,\n} from '@stytch/core/public';\nimport { Optional } from '../../../utils/Optional';\nimport { isTruthy } from '../../../utils/isTruthy';\nimport { AppState } from '../types/AppState';\nimport { ErrorType } from '../types/ErrorType';\nimport { AppScreens } from '../types/AppScreens';\nimport { DEFAULT_MFA_STATE, MfaState } from '../MfaState';\nimport { getEnabledMethods } from '../getEnabledMethods';\nimport { pushHistory, replaceHistory } from './navigation';\n\ntype PrimaryAuthenticateSuccessAction = {\n type: 'primary_authenticate_success';\n response: B2BAuthenticateResponseWithMFA<StytchProjectConfigurationInput>;\n includedMfaMethods: readonly StringLiteralFromEnum<B2BMFAProducts>[] | undefined;\n resetTokenType?: string;\n};\n\ntype TotpAuthenticateAction = {\n type: 'totp/authenticate_success';\n};\n\ntype TotpCreateAction =\n | { type: 'totp/create' }\n | {\n type: 'totp/create_success';\n response: B2BTOTPCreateResponse;\n memberId: string;\n organizationId: string;\n }\n | { type: 'totp/create_error'; error: unknown };\n\ntype TotpShowCodeAction = {\n type: 'totp/show_code';\n method?: 'qr' | 'manual';\n};\n\ntype RecoveryCodeAuthenticateAction = {\n type: 'recovery_code/authenticate_success';\n};\n\ntype RecoveryCodeSaveAcknowledgeAction = { type: 'recovery_code/save_acknowledge' };\n\ntype SmsOtpAuthenticateAction = {\n type: 'sms_otp/authenticate_success';\n};\n\ntype SmsOtpSendAction =\n | { type: 'sms_otp/send' }\n | ({\n type: 'sms_otp/send_success';\n response: B2BSMSSendResponse;\n } & Optional<{\n phoneNumber: string;\n countryCode: CountryCode;\n formattedPhoneNumber: string;\n }>)\n | { type: 'sms_otp/send_error'; error: unknown }\n | { type: 'sms_otp/format_destination'; formattedPhoneNumber: string };\n\nexport type MfaAction =\n | PrimaryAuthenticateSuccessAction\n | RecoveryCodeAuthenticateAction\n | RecoveryCodeSaveAcknowledgeAction\n | SmsOtpAuthenticateAction\n | SmsOtpSendAction\n | TotpAuthenticateAction\n | TotpCreateAction\n | TotpShowCodeAction;\n\nconst DEFAULT_SMS_OTP_EXPIRATION_MS = 1000 * 60 * 2; // 2 minutes\n\nfunction apiMfaMethodToProduct(method: 'sms_otp' | 'totp'): B2BMFAProducts;\nfunction apiMfaMethodToProduct(method: string): B2BMFAProducts | undefined;\nfunction apiMfaMethodToProduct(method: string): B2BMFAProducts | undefined {\n switch (method) {\n case 'totp':\n return B2BMFAProducts.totp;\n case 'sms_otp':\n return B2BMFAProducts.smsOtp;\n default:\n return undefined;\n }\n}\n\nfunction getNextEnrollmentScreen(enabledMethods: Set<'smsOtp' | 'totp'>) {\n // If there is only one possible method, use it\n if (enabledMethods.size === 1) {\n if (enabledMethods.has(B2BMFAProducts.totp)) {\n return AppScreens.TOTPEnrollmentQRCode;\n }\n if (enabledMethods.has(B2BMFAProducts.smsOtp)) {\n return AppScreens.SMSOTPEnrollment;\n }\n }\n\n return AppScreens.MFAEnrollmentSelection;\n}\n\nconst getSmsOtpCodeExpiration = () => new Date(Date.now() + DEFAULT_SMS_OTP_EXPIRATION_MS);\n\nexport const B2B_MFA_METHODS = [B2BMFAProducts.totp, B2BMFAProducts.smsOtp] as const;\n\nexport const mfaReducer = (state: AppState, action: MfaAction): AppState => {\n switch (action.type) {\n case 'primary_authenticate_success': {\n const memberAuthenticated = !!action.response.member_session;\n const postAuthScreen =\n action.resetTokenType === 'multi_tenant_magic_links' ? AppScreens.PasswordResetForm : AppScreens.LoggedIn;\n\n // 1. If the member is fully authenticated, there's no need to continue\n if (memberAuthenticated) {\n return replaceHistory(postAuthScreen, {\n ...state,\n mfa: DEFAULT_MFA_STATE,\n primary: {},\n });\n }\n\n // 2. Additional primary auth may be required\n if (action.response.primary_required) {\n const primaryAuthMethods = action.response.primary_required.allowed_auth_methods;\n const { email_address: email, email_address_verified: emailVerified } = action.response.member;\n\n const newBaseState = {\n ...state,\n flowState: {\n type: AuthFlowType.Organization,\n organization: action.response.organization,\n },\n formState: {\n ...state.formState,\n passwordState: { email },\n },\n primary: {\n primaryAuthMethods,\n email,\n emailVerified,\n },\n };\n\n if (primaryAuthMethods?.length === 0) {\n return replaceHistory(AppScreens.Error, {\n ...newBaseState,\n error: { type: ErrorType.CannotJoinOrgDueToAuthPolicy, canGoBack: false },\n });\n }\n\n return replaceHistory(AppScreens.Main, newBaseState);\n }\n\n // 3. Start MFA\n const memberEnrolledInSmsOtp = action.response.member.mfa_phone_number_verified;\n const memberEnrolledInTotp = !!action.response.member.totp_registration_id;\n\n const primaryInfo: MfaState['primaryInfo'] = {\n enrolledMfaMethods: (\n [memberEnrolledInTotp && B2BMFAProducts.totp, memberEnrolledInSmsOtp && B2BMFAProducts.smsOtp] as const\n ).filter(isTruthy),\n memberId: action.response.member_id,\n memberPhoneNumber: action.response.member.mfa_phone_number,\n organizationId: action.response.organization.organization_id,\n organizationMfaOptionsSupported:\n action.response.organization.mfa_methods === 'RESTRICTED'\n ? (action.response.organization.allowed_mfa_methods?.map(apiMfaMethodToProduct).filter(isTruthy) ?? [])\n : [],\n postAuthScreen,\n };\n\n const organizationSupportsMethod = (method: B2BMFAProducts) =>\n primaryInfo.organizationMfaOptionsSupported.length === 0 ||\n primaryInfo.organizationMfaOptionsSupported.includes(method);\n\n const getDefaultMethod = () => {\n const defaultMethod = apiMfaMethodToProduct(action.response.member.default_mfa_method);\n\n if (\n defaultMethod &&\n organizationSupportsMethod(defaultMethod) &&\n primaryInfo.enrolledMfaMethods.includes(defaultMethod)\n ) {\n return defaultMethod;\n }\n\n return undefined;\n };\n\n // 3A. Use the member's preferred method, or any suitable fallback if the\n // preferred method is not available for whatever reason. However, if an\n // SMS was automatically sent, we should proceed directly to SMS OTP\n // entry (even if the member's phone number is not yet verified).\n const smsImplicitlySent = action.response.mfa_required?.secondary_auth_initiated === 'sms_otp';\n const entryMethod = smsImplicitlySent\n ? B2BMFAProducts.smsOtp\n : (getDefaultMethod() ?? primaryInfo.enrolledMfaMethods.find(organizationSupportsMethod));\n if (entryMethod) {\n const mfaState: MfaState = {\n ...DEFAULT_MFA_STATE,\n primaryInfo,\n } as const;\n\n switch (entryMethod) {\n case B2BMFAProducts.totp: {\n return replaceHistory(AppScreens.TOTPEntry, {\n ...state,\n mfa: mfaState,\n primary: {},\n });\n }\n\n case B2BMFAProducts.smsOtp: {\n const nextState = {\n ...state,\n mfa: {\n ...mfaState,\n smsOtp: {\n ...mfaState.smsOtp,\n // Setting codeExpiration tells SMSOTPEntry that the SMS has already been sent\n codeExpiration: smsImplicitlySent ? getSmsOtpCodeExpiration() : null,\n },\n },\n primary: {},\n };\n\n if (memberEnrolledInSmsOtp) {\n return replaceHistory(AppScreens.SMSOTPEntry, nextState);\n } else {\n // If the user is not enrolled in SMS OTP (i.e. phone number not verified)\n // we need to allow the user to go back to enrollment to change it, so we need to\n // add it to history\n return {\n ...nextState,\n screen: AppScreens.SMSOTPEntry,\n screenHistory: [AppScreens.SMSOTPEnrollment],\n };\n }\n }\n }\n }\n\n // 3B. If the member is not enrolled in MFA, we need to enroll them. Note that\n // it's possible the member is actually enrolled, but using a method we\n // don't recognize. Unfortunately, we can't distinguish between these\n // cases; we'll offer to enroll the user, but enrollment will likely fail\n // if the member can't complete MFA first.\n\n const enabledMethods = getEnabledMethods({\n allMethods: B2B_MFA_METHODS,\n orgSupportedMethods: primaryInfo.organizationMfaOptionsSupported,\n uiIncludedMethods: action.includedMfaMethods,\n });\n\n return replaceHistory(getNextEnrollmentScreen(enabledMethods), {\n ...state,\n mfa: {\n ...DEFAULT_MFA_STATE,\n primaryInfo,\n isEnrolling: true,\n },\n primary: {},\n });\n }\n\n case 'sms_otp/send':\n return {\n ...state,\n mfa: {\n ...state.mfa,\n smsOtp: {\n ...state.mfa.smsOtp,\n isSending: true,\n sendError: null,\n },\n },\n };\n\n case 'sms_otp/send_success':\n return pushHistory(AppScreens.SMSOTPEntry, {\n ...state,\n mfa: {\n ...state.mfa,\n smsOtp: {\n ...state.mfa.smsOtp,\n isSending: false,\n sendError: null,\n codeExpiration: getSmsOtpCodeExpiration(),\n formattedDestination: action.formattedPhoneNumber ?? state.mfa.smsOtp.formattedDestination,\n enrolledNumber: action.phoneNumber\n ? {\n phoneNumber: action.phoneNumber,\n countryCode: action.countryCode,\n }\n : null,\n },\n },\n });\n\n case 'sms_otp/send_error':\n return {\n ...state,\n mfa: {\n ...state.mfa,\n smsOtp: {\n ...state.mfa.smsOtp,\n isSending: false,\n sendError: action.error,\n // If there was no code (expiration), set an expiration to an\n // arbitrary point in the past. This reveals the \"resend code\"\n // button so the user can try again.\n codeExpiration: state.mfa.smsOtp.codeExpiration ?? new Date(Date.now() - 1000),\n },\n },\n };\n\n case 'sms_otp/format_destination':\n return {\n ...state,\n mfa: {\n ...state.mfa,\n smsOtp: {\n ...state.mfa.smsOtp,\n formattedDestination: action.formattedPhoneNumber,\n },\n },\n };\n\n case 'sms_otp/authenticate_success':\n case 'recovery_code/authenticate_success':\n case 'recovery_code/save_acknowledge':\n return replaceHistory(state.mfa.primaryInfo?.postAuthScreen ?? AppScreens.LoggedIn, {\n ...state,\n mfa: DEFAULT_MFA_STATE,\n });\n\n case 'totp/authenticate_success': {\n const nextScreen = state.mfa.isEnrolling\n ? AppScreens.RecoveryCodeSave\n : (state.mfa.primaryInfo?.postAuthScreen ?? AppScreens.LoggedIn);\n return replaceHistory(nextScreen, {\n ...state,\n mfa: state.mfa.isEnrolling ? state.mfa : DEFAULT_MFA_STATE,\n });\n }\n\n case 'totp/create':\n if (state.mfa.totp.isCreating) {\n return state;\n }\n\n return {\n ...state,\n mfa: {\n ...state.mfa,\n totp: {\n ...state.mfa.totp,\n isCreating: true,\n createError: null,\n },\n },\n };\n\n case 'totp/create_success':\n if (\n !state.mfa.isEnrolling ||\n state.mfa.primaryInfo?.memberId !== action.memberId ||\n state.mfa.primaryInfo?.organizationId !== action.organizationId\n ) {\n return state;\n }\n\n return {\n ...state,\n mfa: {\n ...state.mfa,\n totp: {\n ...state.mfa.totp,\n createError: null,\n isCreating: false,\n enrollment: {\n secret: action.response.secret,\n qrCode: action.response.qr_code,\n recoveryCodes: action.response.recovery_codes,\n method: state.mfa.totp.enrollment?.method ?? 'qr',\n },\n },\n },\n };\n case 'totp/create_error':\n return {\n ...state,\n mfa: {\n ...state.mfa,\n totp: {\n ...state.mfa.totp,\n isCreating: false,\n createError: action.error,\n },\n },\n };\n\n case 'totp/show_code': {\n if (!state.mfa.isEnrolling || !state.mfa.totp.enrollment) {\n return state;\n }\n\n const method = action.method ?? state.mfa.totp.enrollment.method ?? 'qr';\n const nextScreen = method === 'manual' ? AppScreens.TOTPEnrollmentManual : AppScreens.TOTPEnrollmentQRCode;\n\n return pushHistory(nextScreen, {\n ...state,\n mfa: {\n ...state.mfa,\n totp: {\n ...state.mfa.totp,\n enrollment: {\n ...state.mfa.totp.enrollment,\n method,\n },\n },\n },\n });\n }\n\n default:\n return state;\n }\n};\n","import {\n AuthFlowType,\n DiscoveredOrganization,\n OrganizationBySlugMatch,\n SSOActiveConnection,\n} from '@stytch/core/public';\nimport { AppState } from '../types/AppState';\nimport { ErrorType } from '../types/ErrorType';\nimport { AppScreens } from '../types/AppScreens';\nimport { MfaAction, mfaReducer } from './mfa';\nimport { pushHistory, replaceHistory } from './navigation';\n\nexport type Action =\n | { type: 'transition'; screen: AppScreens; history?: 'push' | 'reset' }\n | { type: 'navigate_back' }\n | { type: 'set_error_message_and_transition'; errorType: ErrorType; canGoBack: boolean }\n | { type: 'set_user_supplied_email'; email: string }\n | { type: 'set_organization'; organization: OrganizationBySlugMatch }\n | { type: 'set_password_state'; email: string }\n | {\n type: 'set_discovery_state';\n email: string;\n discoveredOrganizations: DiscoveredOrganization[];\n }\n | { type: 'select_discovered_organization'; discoveredOrganization: DiscoveredOrganization }\n | { type: 'send_email_otp'; codeExpiration: Date }\n | { type: 'set_sso_discovery_state'; connections: SSOActiveConnection[] }\n | { type: 'use_password_auth'; email: string }\n | MfaAction;\n\nexport const reducer = (state: AppState, action: Action): AppState => {\n switch (action.type) {\n case 'transition':\n return action.history === 'push' ? pushHistory(action.screen, state) : replaceHistory(action.screen, state);\n\n case 'navigate_back': {\n const screen = state.screenHistory.at(-1);\n\n if (!screen) {\n return state;\n }\n\n const screenHistory = state.screenHistory.slice(0, -1);\n\n return {\n ...state,\n screen,\n screenHistory,\n };\n }\n case 'set_error_message_and_transition':\n return {\n ...state,\n screen: AppScreens.Error,\n error: {\n type: action.errorType,\n canGoBack: action.canGoBack,\n },\n };\n case 'set_user_supplied_email': {\n return {\n ...state,\n formState: {\n ...state.formState,\n emailState: { userSuppliedEmail: action.email },\n passwordState: { email: action.email },\n },\n };\n }\n case 'set_organization': {\n return {\n ...state,\n flowState: {\n type: AuthFlowType.Organization,\n organization: action.organization,\n },\n };\n }\n case 'set_discovery_state': {\n const discoveredOrganizations = action.discoveredOrganizations;\n\n return {\n ...state,\n formState: {\n ...state.formState,\n discoveryState: {\n email: action.email,\n discoveredOrganizations,\n },\n },\n screen: AppScreens.Discovery,\n };\n }\n case 'select_discovered_organization': {\n const { membership, organization, primary_required } = action.discoveredOrganization;\n const email = membership.member?.email_address ?? state.formState.discoveryState.email;\n\n const primaryAuthMethods = primary_required ? primary_required.allowed_auth_methods : undefined;\n\n const newBaseState = {\n ...state,\n flowState: {\n type: AuthFlowType.Organization,\n organization,\n },\n formState: {\n ...state.formState,\n passwordState: { email },\n },\n primary: {\n primaryAuthMethods,\n email,\n emailVerified: membership.member?.email_address_verified,\n },\n screen: AppScreens.Main,\n };\n\n if (primaryAuthMethods?.length === 0) {\n return {\n ...newBaseState,\n screen: AppScreens.Error,\n error: {\n type: ErrorType.CannotJoinOrgDueToAuthPolicy,\n canGoBack: true,\n },\n };\n }\n\n return newBaseState;\n }\n case 'set_password_state': {\n return {\n ...state,\n formState: {\n ...state.formState,\n passwordState: { email: action.email },\n },\n };\n }\n case 'send_email_otp': {\n return pushHistory(AppScreens.EmailOTPEntry, {\n ...state,\n formState: {\n ...state.formState,\n otpState: { codeExpiration: action.codeExpiration },\n },\n });\n }\n case 'set_sso_discovery_state': {\n const connections = action.connections;\n\n if (!connections.length) {\n return pushHistory(AppScreens.SSODiscoveryFallback, state);\n }\n\n return pushHistory(AppScreens.SSODiscoveryMenu, {\n ...state,\n formState: {\n ...state.formState,\n ssoDiscoveryState: { connections: action.connections },\n },\n });\n }\n case 'use_password_auth': {\n return pushHistory(AppScreens.PasswordAuthenticate, {\n ...state,\n formState: { ...state.formState, passwordState: { email: action.email } },\n });\n }\n\n default:\n return mfaReducer(state, action);\n }\n};\n","import React, { useContext } from 'react';\nimport { useEvent } from '../hooks/useEvent';\nimport { StytchB2BClient } from '../../b2b/StytchB2BClient';\n\nimport { AuthFlowType, Callbacks, StytchProjectConfigurationInput } from '@stytch/core/public';\nimport { StytchB2BExtendedLoginConfig } from '../../types';\nimport { DEFAULT_MFA_STATE } from './MfaState';\nimport { Action, reducer } from './reducer';\nimport { AppScreens } from './types/AppScreens';\nimport { ErrorType } from './types/ErrorType';\nimport { AppState } from './types/AppState';\nimport { noop } from '../../utils';\n\nexport type AppContext<TProjectConfiguration extends StytchProjectConfigurationInput> = {\n client: StytchB2BClient<TProjectConfiguration>;\n config: StytchB2BExtendedLoginConfig;\n callbacks?: Callbacks<TProjectConfiguration>;\n state: [AppState, React.Dispatch<Action>];\n};\n\nexport const DEFAULT_STATE: AppState = {\n screen: AppScreens.Main,\n screenHistory: [],\n formState: {\n emailState: {\n userSuppliedEmail: '',\n },\n otpState: {\n codeExpiration: null,\n },\n discoveryState: {\n email: '',\n discoveredOrganizations: [],\n },\n passwordState: {\n email: '',\n },\n ssoDiscoveryState: {\n connections: [],\n },\n },\n flowState: {\n type: AuthFlowType.Organization,\n organization: null,\n },\n mfa: DEFAULT_MFA_STATE,\n primary: {},\n error: {\n type: ErrorType.Default,\n canGoBack: false,\n },\n};\n\nexport const GlobalContext = React.createContext<AppContext<StytchProjectConfigurationInput>>({\n client: {} as StytchB2BClient<StytchProjectConfigurationInput>,\n config: {} as StytchB2BExtendedLoginConfig,\n state: [DEFAULT_STATE, () => null],\n});\n\nexport type GlobalContextProviderProps<TProjectConfiguration extends StytchProjectConfigurationInput> = {\n children: React.ReactNode;\n client: StytchB2BClient<TProjectConfiguration>;\n config: StytchB2BExtendedLoginConfig;\n callbacks?: Callbacks<TProjectConfiguration>;\n initialState?: AppState;\n};\n\nexport const GlobalContextProvider = <TProjectConfiguration extends StytchProjectConfigurationInput>({\n children,\n client,\n config,\n callbacks,\n initialState,\n}: GlobalContextProviderProps<TProjectConfiguration>) => {\n const state = React.useReducer(reducer, initialState ?? DEFAULT_STATE);\n\n return <GlobalContext.Provider value={{ client, state, config, callbacks }}>{children}</GlobalContext.Provider>;\n};\n\nexport const useGlobalContext = () => useContext(GlobalContext);\nexport const useStytch = () => useGlobalContext().client;\nexport const useGlobalReducer = () => useGlobalContext().state;\nexport const useConfig = () => useGlobalContext().config;\nexport const useErrorCallback = () => useEvent(useGlobalContext().callbacks?.onError ?? noop);\nexport const useEventCallback = () => useEvent(useGlobalContext().callbacks?.onEvent ?? noop);\n","import React, { useMemo } from 'react';\nimport { useLingui } from '@lingui/react/macro';\nimport Column from '../atoms/Column';\nimport TextColumn from './TextColumn';\nimport { useGlobalReducer } from '../../b2b/GlobalContextProvider';\nimport { AppScreens } from '../../b2b/types/AppScreens';\nimport { ErrorType } from '../../b2b/types/ErrorType';\nimport Button from '../atoms/Button';\n\nexport const ErrorDisplay = ({ text, onGoBack }: { text: string; onGoBack?: () => void }) => {\n const { t } = useLingui();\n\n return (\n <Column gap={6}>\n <TextColumn header={t({ id: 'error.title', message: 'Looks like there was an error!' })} body={text} />\n\n {onGoBack && (\n <Button variant=\"outline\" onClick={onGoBack}>\n {t({ id: 'button.goBack', message: 'Go back' })}\n </Button>\n )}\n </Column>\n );\n};\n\nexport const ErrorScreen = () => {\n const [state, dispatch] = useGlobalReducer();\n const { t } = useLingui();\n\n const { type: currentErrorType, canGoBack } = state.error;\n const organizationName = state.flowState.organization?.organization_name;\n\n const ErrorTypeMap: Record<ErrorType, string> = {\n [ErrorType.Default]: t({\n id: 'error.default',\n message: 'Something went wrong. Try again later or contact your admin for help.',\n }),\n [ErrorType.EmailMagicLink]: t({\n id: 'error.eml',\n message:\n 'Something went wrong. Your login link may have expired, been revoked, or been used more than once. Request a new login link to try again, or contact your admin for help.',\n }),\n [ErrorType.Organization]: t({\n id: 'error.organization',\n message:\n 'The organization you are looking for could not be found. If you think this is a mistake, contact your admin.',\n }),\n [ErrorType.CannotJoinOrgDueToAuthPolicy]: organizationName\n ? t({\n id: 'error.authPolicyWithOrg',\n message: `Unable to join due to ${organizationName}'s authentication policy. Please contact your admin for more information.`,\n })\n : t({\n id: 'error.authPolicyNoOrg',\n message:\n \"Unable to join due to the organization's authentication policy. Please contact your admin for more information.\",\n }),\n [ErrorType.AdBlockerDetected]: t({\n id: 'error.adBlockerDetected',\n message:\n 'The request was blocked by an Ad Blocker. Please disable your ad blocker, refresh the page, and try again.',\n }),\n [ErrorType.OrganizationDiscoveryClaimedDomain]: t({\n id: 'error.claimedDomain',\n message:\n 'Your email domain is associated with a particular organization, so you are unable to join or create other organizations. Please contact your admin for more information.',\n }),\n };\n\n const handleGoBack = useMemo(() => {\n if (canGoBack) {\n return () => dispatch({ type: 'transition', screen: AppScreens.Main });\n }\n return undefined;\n }, [canGoBack, dispatch]);\n\n return <ErrorDisplay text={ErrorTypeMap[currentErrorType]} onGoBack={handleGoBack} />;\n};\n","import React, { MouseEvent } from 'react';\nimport { IDPConsentItem, IDPConsentScreenManifest, IDPConsentSection } from '@stytch/core/public';\nimport { useLingui } from '@lingui/react/macro';\nimport classNames from 'classnames';\nimport Typography from '../atoms/Typography';\nimport Column from '../atoms/Column';\nimport { Chevron } from '../../../assets';\nimport { getTransitionDuration } from '../atoms/animation';\nimport styles from './IDPConsentManifest.module.css';\n\nconst Item = ({ item, as = 'li' }: { item: IDPConsentItem; as?: 'li' | 'div' }) => {\n if (typeof item === 'string') {\n item = { text: item };\n }\n\n const summary = <Typography variant=\"helper\">{item.text}</Typography>;\n const Element = as;\n\n if (!item.details?.length) {\n return <Element className={classNames(styles.summaryNoDetail, styles.borderBetween)}>{summary}</Element>;\n }\n\n return (\n <Element className={styles.borderBetween}>\n <details className={styles.details}>\n <summary onClick={animateToggleDetail}>\n {summary}\n <Chevron className={styles.chevron} role=\"presentation\" />\n </summary>\n\n <ul className={styles.nestedList}>\n {item.details?.map((details) => (\n <Typography as=\"li\" variant=\"helper\" key={details}>\n {details}\n </Typography>\n ))}\n </ul>\n </details>\n </Element>\n );\n};\n\nconst Section = ({ section }: { section: IDPConsentSection }) => (\n <Column gap={2}>\n <Typography weight=\"medium\">{section.header}</Typography>\n\n <ul className={styles.outerList}>\n {section.items.map((item: IDPConsentItem, i) => (\n <Item key={i} item={item} />\n ))}\n </ul>\n </Column>\n);\n\nexport const ConsentManifest = ({\n manifest,\n clientName,\n}: {\n manifest: IDPConsentScreenManifest;\n clientName: string;\n}) => {\n const { t } = useLingui();\n const sections =\n typeof manifest[0] === 'object' && 'header' in manifest[0]\n ? (manifest as IDPConsentSection[])\n : [\n {\n header: t({\n id: 'idpConsent.allowClientTo',\n message: `Allow ${clientName} to:`,\n }),\n items: manifest as IDPConsentItem[],\n },\n ];\n\n return (\n <div className={styles.manifest}>\n {sections.map((item, i) => (\n <Section key={i} section={item} />\n ))}\n </div>\n );\n};\n\nexport const UngrantableScopes = ({\n clientName,\n ungrantableScopeDescriptions,\n}: {\n clientName: string;\n ungrantableScopeDescriptions: string[];\n}) => {\n const { t } = useLingui();\n if (!ungrantableScopeDescriptions.length) return null;\n\n // Map it to a consent item so we can reuse <Item>\n const item: IDPConsentItem = {\n text: t({\n id: 'idpConsent.noPermissionsToGrant',\n message: `You do not have permissions to grant ${clientName} access to some of the requested scopes.`,\n }),\n details: ungrantableScopeDescriptions,\n };\n\n return (\n <div className={styles.ungrantable}>\n <Item item={item} as=\"div\" />\n </div>\n );\n};\n\nfunction animateToggleDetail(evt: MouseEvent<HTMLElement>) {\n const parent = evt.currentTarget.parentElement;\n if (parent?.tagName !== 'DETAILS') return;\n const detail = parent as HTMLDetailsElement;\n evt.preventDefault();\n\n const wasOpen = detail.open;\n const summaryHeight = evt.currentTarget.clientHeight + 'px';\n const detailStyles = getComputedStyle(detail);\n const closedHeight = `calc(${summaryHeight} + ${detailStyles.paddingTop} + ${detailStyles.paddingBottom})`;\n const animationOptions = {\n duration: getTransitionDuration(evt.currentTarget),\n easing: 'ease-in-out',\n };\n\n if (wasOpen) {\n const detailHeight = detail.clientHeight + 'px';\n const animation = detail.animate([{ height: detailHeight }, { height: closedHeight }], animationOptions);\n\n // Need to delay open being changed, otherwise the content will disappear immediately\n // while the animation is still running\n animation.finished.then(() => {\n detail.open = false;\n });\n } else {\n detail.open = true;\n requestAnimationFrame(() => {\n const detailHeight = detail.clientHeight + 'px';\n detail.animate([{ height: closedHeight }, { height: detailHeight }], animationOptions);\n });\n }\n}\n","import React, { PropsWithChildren, useCallback, useEffect, useMemo, useReducer } from 'react';\nimport { useLingui } from '@lingui/react/macro';\nimport { usePresentation } from '../PresentationConfig';\nimport {\n containsCustomScopes,\n createCustomScopeDescriptions,\n fallbackConsentManifestGenerator,\n OAuthAuthorizeParams,\n} from '../../../utils/idpHelpers';\nimport { ConnectedAppPublic, OAuthAuthorizeSubmitOptions, ScopeResult } from '@stytch/core/public';\nimport { BootstrapData, logger } from '@stytch/core';\nimport { LoadingScreen } from '../molecules/Loading';\nimport { ErrorDisplay } from '../molecules/ErrorScreen';\nimport { Confirmation } from '../molecules/Confirmation';\nimport Column from '../atoms/Column';\nimport Button from '../atoms/Button';\nimport Typography from '../atoms/Typography';\nimport {\n IDPOAuthFlowMissingParamError,\n StytchAPIError,\n StytchEvent,\n StytchEventType,\n StytchSDKUIError,\n} from '@stytch/core/public';\nimport { ConsentManifest, UngrantableScopes } from './IDPConsentManifest';\nimport { useConsentManifestGenerator } from './IDPContextProvider';\nimport Logo from '../atoms/Logo';\nimport ButtonColumn from '../molecules/ButtonColumn';\n\ntype Action =\n | { type: 'START_SUBMIT' }\n | { type: 'COMPLETE_SUBMIT' }\n | { type: 'START_PREFLIGHT' }\n | { type: 'PREFLIGHT_ERROR'; error: string }\n | {\n type: 'COMPLETE_PREFLIGHT';\n consent_required: boolean;\n client: ConnectedAppPublic;\n grantable_scope: string;\n ungrantable_scope: string;\n }\n | { type: 'CONSENT_DENIED' };\n\ntype IDPState = {\n // True if there is a request in progress\n loading: boolean;\n // True if we have kicked off the preflight request\n preflight: boolean;\n error: string | null;\n // True after we have submitted the form. This causes a browser redirect\n // but there is a small period before the redirect loads where we can still\n // show some limited UI\n success: boolean;\n // True if the user has denied consent\n denied: boolean;\n // Preflight results: Do we need to ask for consent? Who is asking?\n consent_required: boolean;\n client: ConnectedAppPublic | null;\n grantable_scope: string;\n ungrantable_scope: string;\n // Used as a backup client name.\n // The redirect URI's domain is parsed out to populate a missing client name\n // in the IDPConsent component.\n redirect_uri: string;\n};\n\nconst initialState = (error: string | null, params: OAuthAuthorizeParams): IDPState => ({\n loading: !error,\n preflight: !!error,\n error: error,\n success: false,\n denied: false,\n consent_required: false,\n client: null,\n grantable_scope: '',\n ungrantable_scope: '',\n redirect_uri: params.redirect_uri,\n});\n\nconst idpStateReducer = (state: IDPState, action: Action): IDPState => {\n switch (action.type) {\n case 'START_SUBMIT':\n return { ...state, loading: true };\n case 'COMPLETE_SUBMIT':\n return { ...state, loading: false, success: true };\n case 'START_PREFLIGHT':\n return { ...state, preflight: true, loading: true };\n case 'PREFLIGHT_ERROR':\n return { ...state, preflight: true, loading: false, error: action.error };\n case 'COMPLETE_PREFLIGHT':\n return {\n ...state,\n loading: false,\n client: action.client,\n consent_required: action.consent_required,\n grantable_scope: action.grantable_scope,\n ungrantable_scope: action.ungrantable_scope,\n };\n case 'CONSENT_DENIED':\n return { ...state, denied: true };\n default:\n return state;\n }\n};\n\ninterface IDPConsentState {\n state: IDPState;\n submit({ consent_granted }: { consent_granted: boolean }): Promise<void>;\n}\n\nexport const useIDPState = ({\n initialError,\n initialParams,\n oauthAuthorizeStart,\n oauthAuthorizeSubmit,\n onError,\n onEvent,\n}: {\n initialError: string | null;\n initialParams: OAuthAuthorizeParams;\n oauthAuthorizeStart(data: {\n client_id: string;\n redirect_uri: string;\n response_type: string;\n scopes: string[];\n prompt?: string;\n }): Promise<{ consent_required: boolean; client: ConnectedAppPublic; scope_results: ScopeResult[] }>;\n oauthAuthorizeSubmit(\n data: OAuthAuthorizeSubmitOptions,\n ): Promise<{ redirect_uri: string; authorization_code?: string }>;\n onError(error: StytchSDKUIError): void;\n onEvent(event: StytchEvent): void;\n}): IDPConsentState => {\n const [state, dispatch] = useReducer(idpStateReducer, initialState(initialError, initialParams));\n\n useEffect(() => {\n if (!initialError) return;\n onError(new IDPOAuthFlowMissingParamError(initialError));\n }, [initialError, onError]);\n\n const submitInternal = useCallback(\n async ({ consent_required, consent_granted }: { consent_required: boolean; consent_granted: boolean }) => {\n dispatch({ type: 'START_SUBMIT' });\n const submitResp = await oauthAuthorizeSubmit({\n ...initialParams,\n consent_granted,\n });\n\n if (submitResp.authorization_code) {\n dispatch({ type: 'COMPLETE_SUBMIT' });\n }\n\n window.location.href = submitResp.redirect_uri;\n if (consent_required && !consent_granted) {\n dispatch({ type: 'CONSENT_DENIED' });\n onEvent({\n type: StytchEventType.OAuthAuthorizeFlowConsentDenied,\n data: {},\n });\n } else {\n onEvent({\n type: StytchEventType.OAuthAuthorizeFlowComplete,\n data: {},\n });\n }\n },\n [oauthAuthorizeSubmit, initialParams, onEvent],\n );\n\n const submit = useCallback(\n ({ consent_granted }: { consent_granted: boolean }) =>\n submitInternal({\n consent_granted,\n consent_required: true,\n }),\n [submitInternal],\n );\n\n const loadClient = useCallback(async () => {\n dispatch({ type: 'START_PREFLIGHT' });\n onEvent({\n type: StytchEventType.OAuthAuthorizeFlowStart,\n data: {\n client_id: initialParams['client_id'],\n redirect_uri: initialParams['redirect_uri'],\n scope: initialParams['scopes'].join(' '),\n },\n });\n\n let startResponse;\n try {\n startResponse = await oauthAuthorizeStart(initialParams);\n } catch (e: unknown) {\n const err = StytchAPIError.from(e);\n const message = err.error_message;\n dispatch({ type: 'PREFLIGHT_ERROR', error: message });\n onError(err);\n return;\n }\n\n if (startResponse.consent_required) {\n const grantable = startResponse.scope_results\n .filter((s) => s.is_grantable)\n .map((s) => s.scope)\n .join(' ');\n const ungrantable = startResponse.scope_results\n .filter((s) => !s.is_grantable)\n .map((s) => s.scope)\n .join(' ');\n dispatch({\n type: 'COMPLETE_PREFLIGHT',\n consent_required: startResponse.consent_required,\n client: startResponse.client,\n grantable_scope: grantable,\n ungrantable_scope: ungrantable,\n });\n return;\n } else {\n await submitInternal({ consent_required: false, consent_granted: false });\n }\n }, [onEvent, initialParams, oauthAuthorizeStart, onError, submitInternal]);\n\n useEffect(() => {\n if (state.preflight) {\n return;\n }\n loadClient();\n }, [loadClient, state.preflight]);\n return { state, submit };\n};\n\ntype Props = IDPConsentState & {\n bootstrap: BootstrapData;\n bootstrapNotLoaded: boolean;\n};\nexport const IDPConsent: React.FC<Props> = ({ bootstrap, bootstrapNotLoaded, state, submit }) => {\n const { t } = useLingui();\n const { loading, error, denied, success, client } = state;\n const customConsentManifestGenerator = useConsentManifestGenerator();\n\n const clientName = useMemo(() => {\n let name = state.client?.client_name ?? '';\n // If a client name isn't provided then try and parse it from the\n // redirect URI domain.\n if (!name) {\n try {\n const u = new URL(state.redirect_uri);\n name = u.hostname;\n } catch (e) {\n logger.warn('Unable to parse host from redirect URI.', e);\n name = t({ id: 'idpConsent.defaultClientName', message: 'The App' });\n }\n }\n return name;\n }, [state.client?.client_name, state.redirect_uri, t]);\n\n const manifest = useMemo(() => {\n if (customConsentManifestGenerator) {\n try {\n return customConsentManifestGenerator({\n scopes: state.grantable_scope.split(' '),\n clientName,\n });\n } catch (e) {\n logger.error('Error rendering custom consent screen. Falling back to default consent screen.', e);\n }\n }\n\n return fallbackConsentManifestGenerator({\n scopes: state.grantable_scope.split(' '),\n rbacPolicy: bootstrap.rbacPolicy,\n clientName,\n });\n }, [customConsentManifestGenerator, state.grantable_scope, clientName, bootstrap.rbacPolicy]);\n\n const ungrantableScopeDescriptions = useMemo(() => {\n if (state.ungrantable_scope === '') return [];\n return createCustomScopeDescriptions(state.ungrantable_scope.split(' '), bootstrap.rbacPolicy);\n }, [state.ungrantable_scope, bootstrap.rbacPolicy]);\n\n if (loading || bootstrapNotLoaded) {\n return <LoadingScreen />;\n }\n if (error) {\n return <ErrorDisplay text={error} />;\n }\n if (denied) {\n return <ErrorDisplay text={t({ id: 'idpConsent.denied', message: 'Access to the application was denied.' })} />;\n }\n if (success) {\n return <Confirmation />;\n }\n return (\n <Consent\n client={client!}\n submit={submit}\n grantableScope={state.grantable_scope}\n projectName={bootstrap.projectName!}\n >\n <UngrantableScopes ungrantableScopeDescriptions={ungrantableScopeDescriptions} clientName={clientName} />\n <ConsentManifest manifest={manifest} clientName={clientName} />\n </Consent>\n );\n};\n\ntype ConsentProps = {\n client: ConnectedAppPublic;\n submit: (x: { consent_granted: boolean }) => Promise<void>;\n grantableScope: string;\n projectName: string;\n};\n\nconst Consent: React.FC<PropsWithChildren<ConsentProps>> = ({\n client,\n submit,\n grantableScope,\n projectName,\n children,\n}) => {\n const { t } = useLingui();\n const { options } = usePresentation();\n const clientName = client.client_name;\n const title = containsCustomScopes(grantableScope)\n ? t({\n id: 'idpConsent.customScopes.title',\n message: `${clientName} wants to access your ${projectName} account`,\n })\n : t({\n id: 'idpConsent.signIn.title',\n message: `Sign in to ${clientName} with ${projectName}`,\n });\n\n return (\n <Column gap={6}>\n {options.logo && <Logo appLogo={options.logo} />}\n <Typography variant=\"header\" align=\"center\">\n {title}\n </Typography>\n\n {children}\n\n <ButtonColumn>\n <Button variant=\"primary\" onClick={() => submit({ consent_granted: true })}>\n {t({\n id: 'idpConsent.button.allow',\n message: 'Allow',\n })}\n </Button>\n <Button onClick={() => submit({ consent_granted: false })} variant=\"ghost\">\n {t({\n id: 'idpConsent.button.deny',\n message: 'Deny',\n })}\n </Button>\n </ButtonColumn>\n </Column>\n );\n};\n","import React, { useCallback, useEffect, useReducer } from 'react';\nimport { useLingui } from '@lingui/react/macro';\nimport { OAuthLogoutParams } from '../../../utils/idpHelpers';\nimport { OAuthLogoutStartOptions, OAuthLogoutStartResponse } from '@stytch/core/public';\nimport { LoadingScreen } from '../molecules/Loading';\nimport { ErrorDisplay } from '../molecules/ErrorScreen';\nimport { Confirmation } from '../molecules/Confirmation';\nimport Column from '../atoms/Column';\nimport Button from '../atoms/Button';\nimport Typography from '../atoms/Typography';\nimport { IDPOAuthFlowMissingParamError, StytchAPIError, StytchSDKUIError } from '@stytch/core/public';\nimport { BootstrapData } from '@stytch/core';\nimport ButtonColumn from '../molecules/ButtonColumn';\n\ntype Action =\n | { type: 'START_PREFLIGHT' }\n | { type: 'PREFLIGHT_ERROR'; error: string }\n | {\n type: 'COMPLETE_PREFLIGHT';\n consent_required: boolean;\n redirect_uri: string;\n }\n | { type: 'CONSENT_DENIED' };\n\ntype LogoutState = {\n // True if there is a request in progress\n loading: boolean;\n // True if we have kicked off the preflight request\n preflight: boolean;\n error: string | null;\n // True if logout has been denied by the end user\n denied: boolean;\n // Preflight results: Do we need to ask for consent? Who is asking?\n consent_required: boolean;\n // Preflight results: Where do we go afterward?\n redirect_uri: string;\n};\n\nconst initialState = (error: string | null): LogoutState => ({\n loading: !error,\n preflight: !!error,\n error: error,\n denied: false,\n consent_required: false,\n redirect_uri: '',\n});\n\nconst logoutStateReducer = (state: LogoutState, action: Action): LogoutState => {\n switch (action.type) {\n case 'START_PREFLIGHT':\n return { ...state, preflight: true, loading: true };\n case 'PREFLIGHT_ERROR':\n return { ...state, preflight: true, loading: false, error: action.error };\n case 'COMPLETE_PREFLIGHT':\n return {\n ...state,\n loading: false,\n consent_required: action.consent_required,\n redirect_uri: action.redirect_uri,\n };\n case 'CONSENT_DENIED':\n return { ...state, denied: true };\n default:\n return state;\n }\n};\n\ninterface IDPLogoutState {\n state: LogoutState;\n submit({ consent_granted }: { consent_granted: boolean }): Promise<void>;\n}\n\nconst browserNavigate = (href: string) => {\n window.location.href = href;\n};\n\nexport const useLogoutState = ({\n initialError,\n initialParams,\n oauthLogoutStart,\n revokeSession,\n onError,\n navigate = browserNavigate,\n}: {\n initialError: string | null;\n initialParams: OAuthLogoutParams;\n oauthLogoutStart(data: OAuthLogoutStartOptions): Promise<OAuthLogoutStartResponse>;\n revokeSession(): Promise<unknown>;\n onError(error: StytchSDKUIError): void;\n navigate?: (href: string) => void;\n}): IDPLogoutState => {\n const [state, dispatch] = useReducer(logoutStateReducer, initialState(initialError));\n\n useEffect(() => {\n if (!initialError) return;\n onError(new IDPOAuthFlowMissingParamError(initialError));\n }, [initialError, onError]);\n\n const submitInternal = useCallback(\n async (redirectURI: string) => {\n try {\n await revokeSession();\n } catch {\n // Session may already be revoked--in any event, we still want to\n // redirect the user\n }\n navigate(redirectURI);\n },\n [revokeSession, navigate],\n );\n\n const logoutPreflight = useCallback(async () => {\n dispatch({ type: 'START_PREFLIGHT' });\n\n let startResponse;\n try {\n startResponse = await oauthLogoutStart(initialParams);\n } catch (e: unknown) {\n const err = StytchAPIError.from(e);\n const message = err.error_message;\n dispatch({ type: 'PREFLIGHT_ERROR', error: message });\n onError(err);\n return;\n }\n\n if (startResponse.consent_required) {\n dispatch({\n type: 'COMPLETE_PREFLIGHT',\n consent_required: startResponse.consent_required,\n redirect_uri: startResponse.redirect_uri,\n });\n return;\n } else {\n submitInternal(startResponse.redirect_uri);\n }\n }, [initialParams, oauthLogoutStart, onError, submitInternal]);\n\n useEffect(() => {\n if (state.preflight) {\n return;\n }\n logoutPreflight();\n }, [logoutPreflight, state.preflight]);\n\n const submit = useCallback(\n async ({ consent_granted }: { consent_granted: boolean }) => {\n if (consent_granted) {\n return submitInternal(state.redirect_uri);\n } else {\n dispatch({ type: 'CONSENT_DENIED' });\n }\n },\n [submitInternal, state],\n );\n\n return { state, submit };\n};\n\ntype Props = IDPLogoutState & {\n bootstrap: BootstrapData;\n bootstrapNotLoaded: boolean;\n};\nexport const IDPLogout = ({ state, submit, bootstrap, bootstrapNotLoaded }: Props) => {\n const { t } = useLingui();\n const { loading, error, denied } = state;\n if (loading || bootstrapNotLoaded) {\n return <LoadingScreen />;\n }\n if (error) {\n return <ErrorDisplay text={error} />;\n }\n if (denied) {\n return (\n <Confirmation\n text={t({\n id: 'idpLogout.notLoggedOut',\n message: 'You have not been logged out. You may close this page.',\n })}\n />\n );\n }\n\n const projectName = bootstrap.projectName!;\n return (\n <Column gap={6}>\n <Typography variant=\"header\" align=\"center\">\n {t({\n id: 'idpLogout.title',\n message: 'Log out?',\n })}\n </Typography>\n <Typography variant=\"body\">\n {t({\n id: 'idpLogout.confirmMessage',\n message: `Are you sure you want to log out of your ${projectName} account?`,\n })}\n </Typography>\n\n <ButtonColumn>\n <Button variant=\"primary\" onClick={() => submit({ consent_granted: true })}>\n {t({\n id: 'idpLogout.yes',\n message: 'Yes',\n })}\n </Button>\n <Button onClick={() => submit({ consent_granted: false })} variant=\"ghost\">\n {t({\n id: 'idpLogout.no',\n message: 'No',\n })}\n </Button>\n </ButtonColumn>\n </Column>\n );\n};\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const AmazonIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#fff\"\n d=\"M16.5 15.53C9.2 19 4.69 16.1 1.8 14.33c-.19-.1-.5.03-.23.34.97 1.17 4.13 3.98 8.25 3.98s6.59-2.25 6.9-2.64c.3-.4.08-.6-.22-.48m2.04-1.13c-.2-.25-1.19-.3-1.81-.22s-1.57.45-1.49.68c.04.09.13.05.56.01s1.64-.2 1.9.14c.25.33-.4 1.9-.51 2.16s.04.32.25.15.6-.6.85-1.23c.25-.62.4-1.5.25-1.69\"\n />\n <path\n fill=\"#fff\"\n fillRule=\"evenodd\"\n d=\"M11.6 8.46c0 .9.02 1.67-.44 2.47-.37.66-.96 1.06-1.62 1.06-.9 0-1.42-.68-1.42-1.69 0-1.99 1.79-2.35 3.48-2.35zm2.35 5.69a.5.5 0 0 1-.55.05c-.78-.64-.91-.94-1.34-1.55-1.28 1.3-2.19 1.7-3.85 1.7-1.96 0-3.5-1.22-3.5-3.64 0-1.9 1.03-3.19 2.5-3.82 1.26-.56 3.03-.66 4.39-.81v-.3c0-.56.04-1.22-.29-1.7-.28-.43-.83-.6-1.3-.6-.9 0-1.7.45-1.89 1.4-.04.21-.19.42-.4.43l-2.27-.25c-.19-.04-.4-.2-.34-.49C5.63 1.83 8.1 1 10.33 1c1.13 0 2.62.3 3.52 1.16 1.13 1.06 1.02 2.48 1.02 4.02v3.64c0 1.1.46 1.57.88 2.16.16.21.19.47 0 .63-.48.4-1.33 1.13-1.8 1.55z\"\n clipRule=\"evenodd\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const AppleIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#fff\"\n d=\"M16.55 7.14c-.1.08-1.86 1.12-1.86 3.43A4 4 0 0 0 17 14.2c0 .06-.35 1.3-1.18 2.56-.74 1.1-1.5 2.21-2.67 2.21s-1.47-.7-2.82-.7c-1.32 0-1.79.73-2.86.73S5.66 17.97 4.8 16.7c-1-1.48-1.8-3.78-1.8-5.96C3 7.25 5.17 5.4 7.31 5.4c1.14 0 2.09.78 2.8.78.68 0 1.74-.83 3.03-.83.5 0 2.26.05 3.41 1.79m-4.02-3.27c.53-.66.91-1.59.91-2.5q0-.22-.03-.37c-.87.03-1.9.6-2.53 1.36-.49.59-.95 1.5-.95 2.44 0 .14.03.28.04.33l.23.02c.78 0 1.76-.54 2.33-1.28\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const BinanceIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#fff\"\n d=\"m6.43 8.56 3.5-3.5 3.49 3.5 2.03-2.03L9.92 1 4.4 6.53zM4.99 10 2.96 7.97.92 10l2.04 2.03zM6.43 11.44l3.5 3.5 3.49-3.5 2.03 2.03L9.92 19 4.4 13.47zM16.89 12.03 18.92 10 16.9 7.97 14.85 10z\"\n />\n <path fill=\"#fff\" d=\"M11.99 10 9.92 7.93 8.4 9.46l-.18.18-.36.36 2.06 2.07z\" />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const BitbucketIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#fff\"\n d=\"m17.96 9.14-1.34 8.08a.9.9 0 0 1-.93.78H4.3a.9.9 0 0 1-.93-.78L1.02 2.81c-.1-.5.17-.81.64-.81h16.68c.47 0 .73.32.64.8l-.64 3.8c-.09.55-.4.78-.93.78H7.37q-.23 0-.2.26l.79 4.78q.05.18.23.2h3.62q.17-.02.23-.2l.56-3.46c.05-.43.35-.6.75-.6h3.94c.58 0 .76.29.67.78\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const CoinbaseIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path fill=\"#fff\" d=\"M10.02 14.5a4.5 4.5 0 1 1 4.44-5.25H19a9 9 0 1 0 0 1.5h-4.54a4.5 4.5 0 0 1-4.44 3.75\" />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const DiscordIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#fff\"\n d=\"M12.53 3q-.26.44-.47.92a15 15 0 0 0-4.12 0q-.21-.47-.48-.92-1.93.3-3.72 1.1a13.8 13.8 0 0 0-2.66 9.72Q3.15 15.28 5.63 16q.56-.72.98-1.5a10 10 0 0 1-1.54-.7l.38-.27c2.88 1.3 6.22 1.3 9.1 0q.19.15.38.27a10 10 0 0 1-1.54.7q.41.8.98 1.5 2.48-.7 4.55-2.18c.38-3.69-.64-6.89-2.67-9.73a15 15 0 0 0-3.71-1.08zm-5.52 8.86c-.89 0-1.62-.77-1.62-1.72 0-.94.7-1.71 1.62-1.71.9 0 1.63.77 1.62 1.71-.02.95-.72 1.72-1.62 1.72m5.98 0c-.89 0-1.62-.77-1.62-1.72 0-.94.7-1.71 1.62-1.71.91 0 1.63.77 1.62 1.71-.02.95-.72 1.72-1.62 1.72\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const FacebookIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#fff\"\n d=\"M19 10a9 9 0 1 0-11.17 8.73v-5.98H5.97V10h1.86V8.81c0-3.06 1.38-4.48 4.39-4.48.57 0 1.55.11 1.96.23v2.49Q13.83 7 13.14 7c-1.48 0-2.05.56-2.05 2.02V10h2.94l-.5 2.75h-2.44v6.18A9 9 0 0 0 19 10\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const FigmaIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#fff\"\n fillRule=\"evenodd\"\n d=\"M5.47 7.18A3.4 3.4 0 0 1 4 4.36 3.3 3.3 0 0 1 7.23 1h5.54A3.3 3.3 0 0 1 16 4.36a3.4 3.4 0 0 1-1.47 2.82A3.4 3.4 0 0 1 16 10a3.3 3.3 0 0 1-3.23 3.36h-.06c-.84 0-1.61-.33-2.19-.89v3.14c0 1.87-1.48 3.39-3.27 3.39A3.3 3.3 0 0 1 4 15.64a3.4 3.4 0 0 1 1.47-2.82A3.4 3.4 0 0 1 4 10a3.4 3.4 0 0 1 1.47-2.82M10.52 10c0 1.26.98 2.28 2.19 2.28h.06c1.2 0 2.19-1.02 2.19-2.28s-.98-2.28-2.2-2.28h-.05A2.23 2.23 0 0 0 10.52 10M9.48 7.72H7.23A2.23 2.23 0 0 0 5.04 10c0 1.25.98 2.27 2.18 2.28h2.26zm-2.25 5.64a2.23 2.23 0 0 0-2.19 2.28c0 1.25 1 2.27 2.2 2.27a2.3 2.3 0 0 0 2.24-2.3v-2.25zm2.25-6.72H7.23a2.23 2.23 0 0 1-2.19-2.28c0-1.25.98-2.27 2.2-2.27h2.24zm3.29 0h-2.25V2.09h2.25c1.2 0 2.19 1.02 2.19 2.27 0 1.26-.98 2.28-2.2 2.28\"\n clipRule=\"evenodd\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const GithubIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#fff\"\n fillRule=\"evenodd\"\n d=\"M9.97 1A9.1 9.1 0 0 0 1 10.23a9.2 9.2 0 0 0 6.14 8.75c.44.1.6-.2.6-.44l-.01-1.71c-2.5.55-3.02-1.1-3.02-1.1-.4-1.07-1-1.35-1-1.35-.8-.56.07-.56.07-.56.9.06 1.38.95 1.38.95.8 1.4 2.1 1 2.61.76.08-.6.32-1 .57-1.24-2-.21-4.09-1-4.09-4.55 0-1 .36-1.83.92-2.48-.08-.22-.4-1.17.1-2.44 0 0 .75-.24 2.46.95a8.5 8.5 0 0 1 4.49 0c1.7-1.2 2.46-.95 2.46-.95.5 1.27.18 2.22.1 2.44.57.65.91 1.47.91 2.48 0 3.54-2.1 4.32-4.1 4.55.33.3.61.84.61 1.71l-.01 2.54c0 .24.16.53.6.44a9.2 9.2 0 0 0 6.14-8.75A9.1 9.1 0 0 0 9.97 1\"\n clipRule=\"evenodd\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const GitlabIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#fff\"\n d=\"m18.7 8.2-.02-.07-2.45-6.4a.64.64 0 0 0-.64-.4.7.7 0 0 0-.37.14q-.16.13-.21.33l-1.66 5.06h-6.7L5 1.8a.64.64 0 0 0-1.22-.07l-2.46 6.4-.02.06a4.55 4.55 0 0 0 1.51 5.26l.03.02 3.73 2.8 1.85 1.4 1.12.85a.8.8 0 0 0 .92 0l1.12-.85 1.85-1.4 3.75-2.81.01-.01a4.55 4.55 0 0 0 1.51-5.26\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const GmailIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#fff\"\n d=\"M1 5.1v1.63l1.88 1.82L5.09 9.8l.41-2.76-.4-2.56-1.15-.86A1.84 1.84 0 0 0 1 5.09M14.9 4.48l-.4 2.6.4 2.72 2.02-1L19 6.73V5.09a1.84 1.84 0 0 0-2.95-1.47z\"\n />\n <path\n fill=\"#fff\"\n d=\"M2.23 16.75h2.86V9.8L1 6.73v8.8c0 .67.55 1.22 1.23 1.22M14.9 16.75h2.87c.68 0 1.23-.55 1.23-1.23v-8.8L14.9 9.8zM10 8.16 5.1 4.48V9.8l4.9 3.68 4.9-3.68V4.48z\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const GoogleIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#fff\"\n d=\"M18.82 10.2q0-.95-.16-1.84h-8.48v3.49h4.84a4.2 4.2 0 0 1-1.8 2.7v2.27h2.92a8.8 8.8 0 0 0 2.68-6.62\"\n />\n <path\n fill=\"#fff\"\n d=\"M10.18 19c2.43 0 4.47-.8 5.96-2.18l-2.92-2.26c-.8.54-1.83.86-3.04.86a5.4 5.4 0 0 1-5.04-3.7h-3v2.32A9 9 0 0 0 10.19 19\"\n />\n <path fill=\"#fff\" d=\"M5.14 11.71a5.4 5.4 0 0 1 0-3.42V5.97h-3a8.9 8.9 0 0 0 0 8.06l2.34-1.81z\" />\n <path\n fill=\"#fff\"\n d=\"M10.18 4.58q2.01 0 3.44 1.35l2.58-2.58A8.98 8.98 0 0 0 2.14 5.97l3 2.32a5.4 5.4 0 0 1 5.04-3.7\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const LinkedinIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#fff\"\n fillRule=\"evenodd\"\n d=\"M17 1a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V3c0-1.1.9-2 2-2zM3.76 16.5h2.68V7.83H3.76zm9.59-8.93C11.5 7.57 10.73 9 10.73 9V7.83H8.16v8.67h2.57v-4.55c0-1.22.56-1.94 1.64-1.94.99 0 1.46.7 1.46 1.94v4.55h2.67v-5.49c0-2.32-1.32-3.44-3.15-3.44M5.09 3.5A1.6 1.6 0 0 0 3.5 5.1c0 .88.71 1.6 1.59 1.6a1.6 1.6 0 0 0 1.58-1.6c0-.88-.7-1.6-1.58-1.6\"\n clipRule=\"evenodd\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const MetamaskIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <g fill=\"#fff\" clipPath=\"url(#a)\">\n <path d=\"m18.66 14.11-1.06 3.5-3.58-1.03-.28-.09-.41-.12-1.76-.5-.15.01-.06.22 2.17.62-2.57 1.5H9.04l-2.56-1.5 2.16-.62-.06-.22-.15-.02-2.17.63-.28.09-3.57 1.04-1.07-3.5-.34-.14 1.21 3.98 3.9-1.13 2.85 1.67h2.08l2.86-1.67 3.89 1.13L19 13.98z\" />\n <path d=\"M5.98 14.11v2.47l.28-.09v-2.23l2.17 1.6.15.02.14-.15-2.55-1.9H1.34l1.08-3.95-.26-.14L1 13.98l.34.13zm8.92-2.22-.92.22v.3l1.35-.33.01-2.2h-.19l-.1-.07v1.83l-1.11-1.03h-2.3l-.05.29h2.23z\" />\n <path d=\"M6.02 12.4v-.29l-.92-.22 1.08-1H8.4l-.05-.28H6.12l-.1.04-1.07.99V9.81l-.1.07h-.2l.02 2.2zm11.56-2.52 1.08 3.95h-4.83l-2.55 1.9.14.15.15-.02 2.17-1.6v2.23l.28.09V14.1h4.64l.34-.13-1.16-4.24z\" />\n <path d=\"M4.66 9.88h.19l.1-.07 2.97-2 .45 2.8.04.29.7 4.41.25-.1h.02l-1.2-7.64.22-2.24h3.2l.23 2.24-1.21 7.64h.02l.25.1.7-4.41.05-.28.44-2.8 2.97 2 .1.06h2.43l.26-.14L19 6.16 17.78 1.5 11.7 5.05H8.3L2.22 1.5 1 6.16l1.16 3.58.26.14zM18.7 6.15 17.6 9.6h-2.35L12.2 7.55 17.62 2zm-1.84-3.78-4.77 4.88-.2-1.98zm-8.75 2.9-.2 1.98-4.77-4.88zm-6.81.88L2.38 2l5.43 5.55L4.76 9.6H2.4z\" />\n <path d=\"M10.8 15.21H9.2l-.62.67.3 1.1h2.23l.31-1.1zm.1 1.49H9.1l-.2-.74.41-.46h1.36l.42.46zM8.4 12.82l-.03-.07-.47-1.21H6.62l-.6.57v.3l2.12.5zm-1.67-1h.97l.3.77-1.66-.4zm5.12 1.1 2.12-.52v-.29l-.6-.57h-1.29l-.47 1.2-.03.08zm1.79-.73-1.67.4.3-.77h.98z\" />\n </g>\n <defs>\n <clipPath id=\"a\">\n <path fill=\"#fff\" d=\"M1 1.5h18v17H1z\" />\n </clipPath>\n </defs>\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const MicrosoftIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path fill=\"#fff\" d=\"M1 1h8.57v8.57H1zM10.43 1H19v8.57h-8.57zM1 10.43h8.57V19H1zM10.43 10.43H19V19h-8.57z\" />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const OutlookIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path fill=\"#fff\" d=\"M12.24 4.82v3.52l1.23.77q.06.01.14 0l5.3-3.57c0-.42-.4-.72-.63-.72z\" />\n <path\n fill=\"#fff\"\n d=\"m12.24 9.65 1.12.77c.16.12.35 0 .35 0l5.2-3.46v6.48c0 .7-.46 1-.97 1h-5.7zM6.43 8.03q-.59 0-.92.54t-.34 1.42q0 .9.34 1.43t.89.52q.56 0 .9-.51.32-.51.33-1.41 0-.95-.33-1.47-.32-.52-.87-.52\"\n />\n <path\n fill=\"#fff\"\n d=\"M1.1 3.03V16.8L11.58 19V1zm7.01 9.21q-.66.88-1.73.88-1.04 0-1.7-.85a3.5 3.5 0 0 1-.65-2.2q0-1.44.66-2.33a2.1 2.1 0 0 1 1.77-.89 2 2 0 0 1 1.67.85q.64.85.64 2.24a3.7 3.7 0 0 1-.66 2.3\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const PhantomIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#fff\"\n d=\"M3.13 17.5c2.3 0 4.02-2 5.05-3.58q-.19.53-.2 1.04c0 .92.54 1.58 1.58 1.58 1.44 0 2.97-1.26 3.76-2.62a2 2 0 0 0-.08.55c0 .64.36 1.04 1.1 1.04 2.32 0 4.66-4.12 4.66-7.73 0-2.8-1.42-5.28-4.98-5.28C7.75 2.5 1 10.16 1 15.11c0 1.94 1.04 2.39 2.13 2.39m8.73-10.02c0-.7.39-1.2.96-1.2s.95.5.95 1.2-.4 1.2-.95 1.2c-.57 0-.96-.5-.96-1.2m2.98 0c0-.7.39-1.2.96-1.2.55 0 .94.5.94 1.2s-.38 1.2-.94 1.2c-.57 0-.96-.5-.96-1.2\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const SalesforceIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#fff\"\n fillRule=\"evenodd\"\n d=\"M8.49 4.92a3.1 3.1 0 0 1 2.28-1.01c1.2 0 2.22.68 2.78 1.7q.75-.35 1.57-.35c2.14 0 3.88 1.8 3.88 4.04a3.96 3.96 0 0 1-4.65 3.96c-.49.9-1.42 1.5-2.47 1.5q-.65 0-1.25-.3a3.2 3.2 0 0 1-2.97 2.04c-1.4 0-2.58-.9-3.04-2.18q-.3.06-.62.06c-1.66 0-3-1.4-3-3.13 0-1.16.6-2.17 1.5-2.71a4 4 0 0 1-.29-1.44c0-1.99 1.57-3.6 3.5-3.6 1.13 0 2.15.56 2.78 1.42\"\n clipRule=\"evenodd\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const SlackIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#fff\"\n d=\"M4.8 12.38a1.89 1.89 0 1 1-1.9-1.9h1.9zm.94 0a1.89 1.89 0 1 1 3.78 0v4.73a1.89 1.89 0 1 1-3.78 0zM7.63 4.78A1.89 1.89 0 1 1 9.52 2.9v1.9zm0 .96a1.89 1.89 0 1 1 0 3.79H2.89a1.89 1.89 0 1 1 0-3.79zM15.2 7.64a1.89 1.89 0 1 1 1.9 1.89h-1.9zm-.94 0a1.89 1.89 0 1 1-3.78 0V2.89a1.89 1.89 0 1 1 3.78 0zM12.37 15.22a1.89 1.89 0 1 1-1.89 1.89v-1.9zm0-.95a1.89 1.89 0 1 1 0-3.78h4.74a1.89 1.89 0 1 1 0 3.78z\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const SnapchatIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#fff\"\n d=\"M18.94 14.1a1.3 1.3 0 0 0-.64-.67l-.14-.07-.24-.13a5.4 5.4 0 0 1-1.97-1.68 4 4 0 0 1-.33-.6q-.06-.16-.01-.23l.1-.12.82-.53q.52-.36.74-.8a1.6 1.6 0 0 0 .08-1.3c-.23-.6-.8-.98-1.5-.98a2 2 0 0 0-.54.08q.01-.64-.04-1.29a4.83 4.83 0 0 0-2.44-3.93A5.6 5.6 0 0 0 10 1.15a5.6 5.6 0 0 0-2.82.72 4.8 4.8 0 0 0-2.44 3.93q-.06.66-.04 1.28a3 3 0 0 0-.55-.08 1.54 1.54 0 0 0-1.6 1.65q.01.33.18.64.23.43.74.8l.42.27.38.25q.08.04.12.12.05.07-.01.24-.14.3-.33.59a5.4 5.4 0 0 1-1.91 1.65c-.43.23-.89.39-1.08.9-.14.4-.05.84.32 1.21q.2.21.46.35.53.3 1.12.45.13.03.23.1c.13.12.12.3.3.55q.13.2.33.34c.37.26.78.27 1.23.3.4 0 .85.02 1.37.2q.3.11.7.36c.61.38 1.46.9 2.88.9s2.27-.52 2.9-.9q.37-.25.68-.36c.52-.17.97-.2 1.37-.2.44-.02.86-.04 1.23-.3q.24-.16.38-.41c.13-.22.13-.37.25-.47l.21-.1a5 5 0 0 0 1.14-.46q.28-.15.48-.37v-.01c.35-.37.44-.8.3-1.18m-1.27.68c-.77.42-1.28.38-1.67.64-.34.21-.14.68-.39.85-.3.21-1.2-.01-2.34.37-.95.31-1.56 1.21-3.27 1.21-1.7 0-2.3-.9-3.27-1.22-1.15-.38-2.04-.15-2.34-.36-.25-.17-.05-.64-.38-.86-.4-.25-.91-.2-1.68-.63-.5-.27-.21-.44-.05-.52 2.79-1.35 3.23-3.43 3.25-3.58.02-.2.05-.34-.16-.53-.2-.18-1.08-.73-1.32-.9-.4-.28-.59-.57-.46-.91.1-.25.32-.34.56-.34l.22.03c.44.1.87.32 1.12.38l.1.01q.19 0 .17-.22c-.03-.49-.1-1.43-.02-2.32.1-1.22.5-1.83.96-2.36A4.3 4.3 0 0 1 10 2.15a4.3 4.3 0 0 1 3.3 1.36c.46.54.86 1.14.96 2.36.08.89.01 1.84-.02 2.33q-.01.23.17.22l.1-.02c.24-.06.68-.28 1.12-.38l.22-.02c.24 0 .46.1.56.33q.17.5-.46.91c-.24.17-1.13.72-1.32.9-.21.2-.18.34-.16.53.02.16.46 2.24 3.25 3.59.17.08.44.25-.05.52\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const TiktokIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#fff\"\n fillRule=\"evenodd\"\n d=\"M11.38 1.79h2.3A4.42 4.42 0 0 0 18 5.3v.68l.01 2.41a7.6 7.6 0 0 1-4.39-1.38v6.28c0 3.14-2.6 5.7-5.8 5.7a6 6 0 0 1-3.33-1.03A5.7 5.7 0 0 1 2 13.3a5.76 5.76 0 0 1 6.59-5.64v3.16q-.37-.11-.78-.12a2.63 2.63 0 0 0-2.66 2.6c0 1 .58 1.87 1.43 2.3q.55.3 1.23.3c1.42 0 2.59-1.1 2.64-2.5V1h3.16q0 .4.08.79z\"\n clipRule=\"evenodd\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const TwitchIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#fff\"\n d=\"M5.63 1 2.5 4.21V15.8h3.75V19l3.13-3.21h2.5L17.5 10V1zm10.62 8.36-2.5 2.57h-2.5l-2.19 2.25v-2.25H6.25V2.29h10z\"\n />\n <path fill=\"#fff\" d=\"M14.38 4.54h-1.26v3.85h1.26zM10.94 4.54H9.69v3.85h1.25z\" />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const XTwitterIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#fff\"\n d=\"M11.67 8.62 18.23 1h-1.55l-5.7 6.61L6.44 1H1.2l6.87 10-6.87 8h1.55l6.01-7 4.8 7h5.24zm-2.12 2.47-.7-1-5.54-7.92H5.7l4.47 6.4.7 1 5.8 8.3H14.3z\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const YahooIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#fff\"\n fillRule=\"evenodd\"\n d=\"M1 5.74 4.92 15l-1.4 3.33h3.44l5.23-12.6H8.76l-2.13 5.4-2.1-5.4zm9.47 7.24c0 1.16.9 2.1 2.1 2.1 1.25 0 2.19-.98 2.19-2.17 0-1.18-.9-2.11-2.11-2.11-1.25 0-2.18 1-2.18 2.18m4.68-11.31L11.7 9.99h3.85L19 1.67z\"\n clipRule=\"evenodd\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const AmazonIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#000\"\n d=\"M16.5 15.53C9.2 19 4.69 16.1 1.8 14.33c-.19-.1-.5.03-.23.34.97 1.17 4.13 3.98 8.25 3.98s6.59-2.25 6.9-2.64c.3-.4.08-.6-.22-.48m2.04-1.13c-.2-.25-1.19-.3-1.81-.22s-1.57.45-1.49.68c.04.09.13.05.56.01s1.64-.2 1.9.14c.25.33-.4 1.9-.51 2.16s.04.32.25.15.6-.6.85-1.23c.25-.62.4-1.5.25-1.69\"\n />\n <path\n fill=\"#000\"\n fillRule=\"evenodd\"\n d=\"M11.6 8.46c0 .9.02 1.67-.44 2.47-.37.66-.96 1.06-1.62 1.06-.9 0-1.42-.68-1.42-1.69 0-1.99 1.79-2.35 3.48-2.35zm2.35 5.69a.5.5 0 0 1-.55.05c-.78-.64-.91-.94-1.34-1.55-1.28 1.3-2.19 1.7-3.85 1.7-1.96 0-3.5-1.22-3.5-3.64 0-1.9 1.03-3.19 2.5-3.82 1.26-.56 3.03-.66 4.39-.81v-.3c0-.56.04-1.22-.29-1.7-.28-.43-.83-.6-1.3-.6-.9 0-1.7.45-1.89 1.4-.04.21-.19.42-.4.43l-2.27-.25c-.19-.04-.4-.2-.34-.49C5.63 1.83 8.1 1 10.33 1c1.13 0 2.62.3 3.52 1.16 1.13 1.06 1.02 2.48 1.02 4.02v3.64c0 1.1.46 1.57.88 2.16.16.21.19.47 0 .63-.48.4-1.33 1.13-1.8 1.55z\"\n clipRule=\"evenodd\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const AppleIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#000\"\n d=\"M16.55 7.14c-.1.08-1.86 1.12-1.86 3.43A4 4 0 0 0 17 14.2c0 .06-.35 1.3-1.18 2.56-.74 1.1-1.5 2.21-2.67 2.21s-1.47-.7-2.82-.7c-1.32 0-1.79.73-2.86.73S5.66 17.97 4.8 16.7c-1-1.48-1.8-3.78-1.8-5.96C3 7.25 5.17 5.4 7.31 5.4c1.14 0 2.09.78 2.8.78.68 0 1.74-.83 3.03-.83.5 0 2.26.05 3.41 1.79m-4.02-3.27c.53-.66.91-1.59.91-2.5q0-.22-.03-.37c-.87.03-1.9.6-2.53 1.36-.49.59-.95 1.5-.95 2.44 0 .14.03.28.04.33l.23.02c.78 0 1.76-.54 2.33-1.28\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const BinanceIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#000\"\n d=\"m6.43 8.56 3.5-3.5 3.49 3.5 2.03-2.03L9.92 1 4.4 6.53zM4.99 10 2.96 7.97.92 10l2.04 2.03zM6.43 11.44l3.5 3.5 3.49-3.5 2.03 2.03L9.92 19 4.4 13.47zM16.89 12.03 18.92 10 16.9 7.97 14.85 10z\"\n />\n <path fill=\"#000\" d=\"M11.99 10 9.92 7.93 8.4 9.46l-.18.18-.36.36 2.06 2.07z\" />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const BitbucketIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#000\"\n d=\"m17.96 9.14-1.34 8.08a.9.9 0 0 1-.93.78H4.3a.9.9 0 0 1-.93-.78L1.02 2.81c-.1-.5.17-.81.64-.81h16.68c.47 0 .73.32.64.8l-.64 3.8c-.09.55-.4.78-.93.78H7.37q-.23 0-.2.26l.79 4.78q.05.18.23.2h3.62q.17-.02.23-.2l.56-3.46c.05-.43.35-.6.75-.6h3.94c.58 0 .76.29.67.78\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const CoinbaseIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path fill=\"#000\" d=\"M10.02 14.5a4.5 4.5 0 1 1 4.44-5.25H19a9 9 0 1 0 0 1.5h-4.54a4.5 4.5 0 0 1-4.44 3.75\" />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const DiscordIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#000\"\n d=\"M12.53 3q-.26.44-.47.92a15 15 0 0 0-4.12 0q-.21-.47-.48-.92-1.93.3-3.72 1.1a13.8 13.8 0 0 0-2.66 9.72Q3.15 15.28 5.63 16q.56-.72.98-1.5a10 10 0 0 1-1.54-.7l.38-.27c2.88 1.3 6.22 1.3 9.1 0q.19.15.38.27a10 10 0 0 1-1.54.7q.41.8.98 1.5 2.48-.7 4.55-2.18c.38-3.69-.64-6.89-2.67-9.73a15 15 0 0 0-3.71-1.08zm-5.52 8.86c-.89 0-1.62-.77-1.62-1.72 0-.94.7-1.71 1.62-1.71.9 0 1.63.77 1.62 1.71-.02.95-.72 1.72-1.62 1.72m5.98 0c-.89 0-1.62-.77-1.62-1.72 0-.94.7-1.71 1.62-1.71.91 0 1.63.77 1.62 1.71-.02.95-.72 1.72-1.62 1.72\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const FacebookIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#000\"\n d=\"M19 10a9 9 0 1 0-11.17 8.73v-5.98H5.97V10h1.86V8.81c0-3.06 1.38-4.48 4.39-4.48.57 0 1.55.11 1.96.23v2.49q-.35-.03-1.04-.03c-1.48 0-2.05.55-2.05 2V10h2.94l-.5 2.75h-2.44v6.18A9 9 0 0 0 19 10\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const FigmaIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#000\"\n fillRule=\"evenodd\"\n d=\"M5.47 7.18A3.4 3.4 0 0 1 4 4.36 3.3 3.3 0 0 1 7.23 1h5.54A3.3 3.3 0 0 1 16 4.36a3.4 3.4 0 0 1-1.47 2.82A3.4 3.4 0 0 1 16 10a3.3 3.3 0 0 1-3.23 3.36h-.06c-.84 0-1.61-.33-2.19-.89v3.14c0 1.87-1.48 3.39-3.27 3.39A3.3 3.3 0 0 1 4 15.64a3.4 3.4 0 0 1 1.47-2.82A3.4 3.4 0 0 1 4 10a3.4 3.4 0 0 1 1.47-2.82M10.52 10c0 1.26.98 2.28 2.19 2.28h.06c1.2 0 2.19-1.02 2.19-2.28s-.98-2.28-2.2-2.28h-.05A2.23 2.23 0 0 0 10.52 10M9.48 7.72H7.23A2.23 2.23 0 0 0 5.04 10c0 1.25.98 2.27 2.18 2.28h2.26zm-2.25 5.64a2.23 2.23 0 0 0-2.19 2.28c0 1.25 1 2.27 2.2 2.27a2.3 2.3 0 0 0 2.24-2.3v-2.25zm2.25-6.72H7.23a2.23 2.23 0 0 1-2.19-2.28c0-1.25.98-2.27 2.2-2.27h2.24zm3.29 0h-2.25V2.09h2.25c1.2 0 2.19 1.02 2.19 2.27 0 1.26-.98 2.28-2.2 2.28\"\n clipRule=\"evenodd\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const GithubIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#000\"\n fillRule=\"evenodd\"\n d=\"M9.97 1A9.1 9.1 0 0 0 1 10.23a9.2 9.2 0 0 0 6.14 8.75c.44.1.6-.2.6-.44l-.01-1.71c-2.5.55-3.02-1.1-3.02-1.1-.4-1.07-1-1.35-1-1.35-.8-.56.07-.56.07-.56.9.06 1.38.95 1.38.95.8 1.4 2.1 1 2.61.76.08-.6.32-1 .57-1.24-2-.21-4.09-1-4.09-4.55 0-1 .36-1.83.92-2.48-.08-.22-.4-1.17.1-2.44 0 0 .75-.24 2.46.95a8.5 8.5 0 0 1 4.49 0c1.7-1.2 2.46-.95 2.46-.95.5 1.27.18 2.22.1 2.44.57.65.91 1.47.91 2.48 0 3.54-2.1 4.32-4.1 4.55.33.3.61.84.61 1.71l-.01 2.54c0 .24.16.53.6.44a9.2 9.2 0 0 0 6.14-8.75A9.1 9.1 0 0 0 9.97 1\"\n clipRule=\"evenodd\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const GitlabIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#000\"\n d=\"m18.7 8.2-.02-.07-2.45-6.4a.64.64 0 0 0-.64-.4.7.7 0 0 0-.37.14q-.16.13-.21.33l-1.66 5.06h-6.7L5 1.8a.64.64 0 0 0-1.22-.07l-2.46 6.4-.02.06a4.55 4.55 0 0 0 1.51 5.26l.03.02 3.73 2.8 1.85 1.4 1.12.85a.8.8 0 0 0 .92 0l1.12-.85 1.85-1.4 3.75-2.81.01-.01a4.55 4.55 0 0 0 1.51-5.26\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const GmailIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#000\"\n d=\"M1 5.1v1.63l1.88 1.82L5.09 9.8l.41-2.76-.4-2.56-1.15-.86A1.84 1.84 0 0 0 1 5.09M14.9 4.48l-.4 2.6.4 2.72 2.02-1L19 6.73V5.09a1.84 1.84 0 0 0-2.95-1.47z\"\n />\n <path\n fill=\"#000\"\n d=\"M2.23 16.75h2.86V9.8L1 6.73v8.8c0 .67.55 1.22 1.23 1.22M14.9 16.75h2.87c.68 0 1.23-.55 1.23-1.23v-8.8L14.9 9.8zM10 8.16 5.1 4.48V9.8l4.9 3.68 4.9-3.68V4.48z\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const GoogleIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#000\"\n d=\"M18.82 10.2q0-.95-.16-1.84h-8.48v3.49h4.84a4.2 4.2 0 0 1-1.8 2.7v2.27h2.92a8.8 8.8 0 0 0 2.68-6.62\"\n />\n <path\n fill=\"#000\"\n d=\"M10.18 19c2.43 0 4.47-.8 5.96-2.18l-2.92-2.26c-.8.54-1.83.86-3.04.86a5.4 5.4 0 0 1-5.04-3.7h-3v2.32A9 9 0 0 0 10.19 19\"\n />\n <path fill=\"#000\" d=\"M5.14 11.71a5.4 5.4 0 0 1 0-3.42V5.97h-3a8.9 8.9 0 0 0 0 8.06l2.34-1.81z\" />\n <path\n fill=\"#000\"\n d=\"M10.18 4.58q2.01 0 3.44 1.35l2.58-2.58A8.98 8.98 0 0 0 2.14 5.97l3 2.32a5.4 5.4 0 0 1 5.04-3.7\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const LinkedinIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#000\"\n fillRule=\"evenodd\"\n d=\"M17 1a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V3c0-1.1.9-2 2-2zM3.76 16.5h2.68V7.83H3.76zm9.59-8.93C11.5 7.57 10.73 9 10.73 9V7.83H8.16v8.67h2.57v-4.55c0-1.22.56-1.94 1.64-1.94.99 0 1.46.7 1.46 1.94v4.55h2.67v-5.49c0-2.32-1.32-3.44-3.15-3.44M5.09 3.5A1.6 1.6 0 0 0 3.5 5.1c0 .88.71 1.6 1.59 1.6a1.6 1.6 0 0 0 1.58-1.6c0-.88-.7-1.6-1.58-1.6\"\n clipRule=\"evenodd\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const MetamaskIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <g fill=\"#000\" clipPath=\"url(#a)\">\n <path d=\"m18.66 14.11-1.06 3.5-3.58-1.03-.28-.09-.41-.12-1.76-.5-.15.01-.06.22 2.17.62-2.57 1.5H9.04l-2.56-1.5 2.16-.62-.06-.22-.15-.02-2.17.63-.28.09-3.57 1.04-1.07-3.5-.34-.14 1.21 3.98 3.9-1.13 2.85 1.67h2.08l2.86-1.67 3.89 1.13L19 13.98z\" />\n <path d=\"M5.98 14.11v2.47l.28-.09v-2.23l2.17 1.6.15.02.14-.15-2.55-1.9H1.34l1.08-3.95-.26-.14L1 13.98l.34.13zm8.92-2.22-.92.22v.3l1.35-.33.01-2.2h-.19l-.1-.07v1.83l-1.11-1.03h-2.3l-.05.29h2.23z\" />\n <path d=\"M6.02 12.4v-.29l-.92-.22 1.08-1H8.4l-.05-.28H6.12l-.1.04-1.07.99V9.81l-.1.07h-.2l.02 2.2zm11.56-2.52 1.08 3.95h-4.83l-2.55 1.9.14.15.15-.02 2.17-1.6v2.23l.28.09V14.1h4.64l.34-.13-1.16-4.24z\" />\n <path d=\"M4.66 9.88h.19l.1-.07 2.97-2 .45 2.8.04.29.7 4.41.25-.1h.02l-1.2-7.64.22-2.24h3.2l.23 2.24-1.21 7.64h.02l.25.1.7-4.41.05-.28.44-2.8 2.97 2 .1.06h2.43l.26-.14L19 6.16 17.78 1.5 11.7 5.05H8.3L2.22 1.5 1 6.16l1.16 3.58.26.14zM18.7 6.15 17.6 9.6h-2.35L12.2 7.55 17.62 2zm-1.84-3.78-4.77 4.88-.2-1.98zm-8.75 2.9-.2 1.98-4.77-4.88zm-6.81.88L2.38 2l5.43 5.55L4.76 9.6H2.4z\" />\n <path d=\"M10.8 15.21H9.2l-.62.67.3 1.1h2.23l.31-1.1zm.1 1.49H9.1l-.2-.74.41-.46h1.36l.42.46zM8.4 12.82l-.03-.07-.47-1.21H6.62l-.6.57v.3l2.12.5zm-1.67-1h.97l.3.77-1.66-.4zm5.12 1.1 2.12-.52v-.29l-.6-.57h-1.29l-.47 1.2-.03.08zm1.79-.73-1.67.4.3-.77h.98z\" />\n </g>\n <defs>\n <clipPath id=\"a\">\n <path fill=\"#fff\" d=\"M1 1.5h18v17H1z\" />\n </clipPath>\n </defs>\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const MicrosoftIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path fill=\"#000\" d=\"M1 1h8.57v8.57H1zM10.43 1H19v8.57h-8.57zM1 10.43h8.57V19H1zM10.43 10.43H19V19h-8.57z\" />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const OutlookIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path fill=\"#000\" d=\"M12.24 4.82v3.52l1.23.77q.06.01.14 0l5.3-3.57c0-.42-.4-.72-.63-.72z\" />\n <path\n fill=\"#000\"\n d=\"m12.24 9.65 1.12.77c.16.12.35 0 .35 0l5.2-3.46v6.48c0 .7-.46 1-.97 1h-5.7zM6.43 8.03q-.59 0-.92.54t-.34 1.42q0 .9.34 1.43t.89.52q.56 0 .9-.51.32-.51.33-1.41 0-.95-.33-1.47-.32-.52-.87-.52\"\n />\n <path\n fill=\"#000\"\n d=\"M1.1 3.03V16.8L11.58 19V1zm7.01 9.21q-.66.88-1.73.88-1.04 0-1.7-.85a3.5 3.5 0 0 1-.65-2.2q0-1.44.66-2.33a2.1 2.1 0 0 1 1.77-.89 2 2 0 0 1 1.67.85q.64.85.64 2.24a3.7 3.7 0 0 1-.66 2.3\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const PhantomIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#000\"\n d=\"M3.13 17.5c2.3 0 4.02-2 5.05-3.58q-.19.53-.2 1.04c0 .92.54 1.58 1.58 1.58 1.44 0 2.97-1.26 3.76-2.62a2 2 0 0 0-.08.55c0 .64.36 1.04 1.1 1.04 2.32 0 4.66-4.12 4.66-7.73 0-2.8-1.42-5.28-4.98-5.28C7.75 2.5 1 10.16 1 15.11c0 1.94 1.04 2.39 2.13 2.39m8.73-10.02c0-.7.39-1.2.96-1.2s.95.5.95 1.2-.4 1.2-.95 1.2c-.57 0-.96-.5-.96-1.2m2.98 0c0-.7.39-1.2.96-1.2.55 0 .94.5.94 1.2s-.38 1.2-.94 1.2c-.57 0-.96-.5-.96-1.2\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const SalesforceIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#000\"\n fillRule=\"evenodd\"\n d=\"M8.49 4.92a3.1 3.1 0 0 1 2.28-1.01c1.2 0 2.22.68 2.78 1.7q.75-.35 1.57-.35c2.14 0 3.88 1.8 3.88 4.04a3.96 3.96 0 0 1-4.65 3.96c-.49.9-1.42 1.5-2.47 1.5q-.65 0-1.25-.3a3.2 3.2 0 0 1-2.97 2.04c-1.4 0-2.58-.9-3.04-2.18q-.3.06-.62.06c-1.66 0-3-1.4-3-3.13 0-1.16.6-2.17 1.5-2.71a4 4 0 0 1-.29-1.44c0-1.99 1.57-3.6 3.5-3.6 1.13 0 2.15.56 2.78 1.42\"\n clipRule=\"evenodd\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const SlackIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#000\"\n d=\"M4.8 12.38a1.89 1.89 0 1 1-1.9-1.9h1.9zm.94 0a1.89 1.89 0 1 1 3.78 0v4.73a1.89 1.89 0 1 1-3.78 0zM7.63 4.78A1.89 1.89 0 1 1 9.52 2.9v1.9zm0 .96a1.89 1.89 0 1 1 0 3.79H2.89a1.89 1.89 0 1 1 0-3.79zM15.2 7.64a1.89 1.89 0 1 1 1.9 1.89h-1.9zm-.94 0a1.89 1.89 0 1 1-3.78 0V2.89a1.89 1.89 0 1 1 3.78 0zM12.37 15.22a1.89 1.89 0 1 1-1.89 1.89v-1.9zm0-.95a1.89 1.89 0 1 1 0-3.78h4.74a1.89 1.89 0 1 1 0 3.78z\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const SnapchatIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#000\"\n d=\"M18.94 14.1a1.3 1.3 0 0 0-.64-.67l-.14-.07-.24-.13a5.4 5.4 0 0 1-1.97-1.68 4 4 0 0 1-.33-.6q-.06-.16-.01-.23l.1-.12.82-.53q.52-.36.74-.8a1.6 1.6 0 0 0 .08-1.3c-.23-.6-.8-.98-1.5-.98a2 2 0 0 0-.54.08q.01-.64-.04-1.29a4.83 4.83 0 0 0-2.44-3.93A5.6 5.6 0 0 0 10 1.15a5.6 5.6 0 0 0-2.82.72 4.8 4.8 0 0 0-2.44 3.93q-.06.66-.04 1.28a3 3 0 0 0-.55-.08 1.54 1.54 0 0 0-1.6 1.65q.01.33.18.64.23.43.74.8l.42.27.38.25q.08.04.12.12.05.07-.01.24-.14.3-.33.59a5.4 5.4 0 0 1-1.91 1.65c-.43.23-.89.39-1.08.9-.14.4-.05.84.32 1.21q.2.21.46.35.53.3 1.12.45.13.03.23.1c.13.12.12.3.3.55q.13.2.33.34c.37.26.78.27 1.23.3.4 0 .85.02 1.37.2q.3.11.7.36c.61.38 1.46.9 2.88.9s2.27-.52 2.9-.9q.37-.25.68-.36c.52-.17.97-.2 1.37-.2.44-.02.86-.04 1.23-.3q.24-.16.38-.41c.13-.22.13-.37.25-.47l.21-.1a5 5 0 0 0 1.14-.46q.28-.15.48-.37v-.01c.35-.37.44-.8.3-1.18m-1.27.68c-.77.42-1.28.38-1.67.64-.34.21-.14.68-.39.85-.3.21-1.2-.01-2.34.37-.95.31-1.56 1.21-3.27 1.21-1.7 0-2.3-.9-3.27-1.22-1.15-.38-2.04-.15-2.34-.36-.25-.17-.05-.64-.38-.86-.4-.25-.91-.2-1.68-.63-.5-.27-.21-.44-.05-.52 2.79-1.35 3.23-3.43 3.25-3.58.02-.2.05-.34-.16-.53-.2-.18-1.08-.73-1.32-.9-.4-.28-.59-.57-.46-.91.1-.25.32-.34.56-.34l.22.03c.44.1.87.32 1.12.38l.1.01q.19 0 .17-.22c-.03-.49-.1-1.43-.02-2.32.1-1.22.5-1.83.96-2.36A4.3 4.3 0 0 1 10 2.15a4.3 4.3 0 0 1 3.3 1.36c.46.54.86 1.14.96 2.36.08.89.01 1.84-.02 2.33q-.01.23.17.22l.1-.02c.24-.06.68-.28 1.12-.38l.22-.02c.24 0 .46.1.56.33q.17.5-.46.91c-.24.17-1.13.72-1.32.9-.21.2-.18.34-.16.53.02.16.46 2.24 3.25 3.59.17.08.44.25-.05.52\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const TiktokIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#000\"\n fillRule=\"evenodd\"\n d=\"M11.38 1.79h2.3A4.42 4.42 0 0 0 18 5.3v.68l.01 2.41a7.6 7.6 0 0 1-4.39-1.38v6.28c0 3.14-2.6 5.7-5.8 5.7a6 6 0 0 1-3.33-1.03A5.7 5.7 0 0 1 2 13.3a5.76 5.76 0 0 1 6.59-5.64v3.16q-.37-.11-.78-.12a2.63 2.63 0 0 0-2.66 2.6c0 1 .58 1.87 1.43 2.3q.55.3 1.23.3c1.42 0 2.59-1.1 2.64-2.5V1h3.16q0 .4.08.79z\"\n clipRule=\"evenodd\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const TwitchIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#000\"\n d=\"M5.63 1 2.5 4.21V15.8h3.75V19l3.13-3.21h2.5L17.5 10V1zm10.62 8.36-2.5 2.57h-2.5l-2.19 2.25v-2.25H6.25V2.29h10z\"\n />\n <path fill=\"#000\" d=\"M14.38 4.54h-1.26v3.85h1.26zM10.94 4.54H9.69v3.85h1.25z\" />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const XTwitterIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#000\"\n d=\"M11.67 8.62 18.23 1h-1.55l-5.7 6.61L6.44 1H1.2l6.87 10-6.87 8h1.55l6.01-7 4.8 7h5.24zm-2.12 2.47-.7-1-5.54-7.92H5.7l4.47 6.4.7 1 5.8 8.3H14.3z\"\n />\n </svg>\n);\n","import * as React from 'react';\nimport type { SVGProps } from 'react';\n/* AUTOGENERATED: DO NOT EDIT */\nimport _styles from '../logo.module.css';\nexport const YahooIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill=\"#000\"\n fillRule=\"evenodd\"\n d=\"M1 5.74 4.92 15l-1.4 3.33h3.44l5.23-12.6H8.76l-2.13 5.4-2.1-5.4zm9.47 7.24c0 1.16.9 2.1 2.1 2.1 1.25 0 2.19-.98 2.19-2.17 0-1.18-.9-2.11-2.11-2.11-1.25 0-2.18 1-2.18 2.18m4.68-11.31L11.7 9.99h3.85L19 1.67z\"\n clipRule=\"evenodd\"\n />\n </svg>\n);\n","import * as logosWhite from '../../assets/logo-white';\nimport * as logosBlack from '../../assets/logo-black';\n\nexport const iconsWhite = {\n amazon: logosWhite.AmazonIcon,\n apple: logosWhite.AppleIcon,\n bitbucket: logosWhite.BitbucketIcon,\n coinbase: logosWhite.CoinbaseIcon,\n discord: logosWhite.DiscordIcon,\n facebook: logosWhite.FacebookIcon,\n figma: logosWhite.FigmaIcon,\n github: logosWhite.GithubIcon,\n gitlab: logosWhite.GitlabIcon,\n google: logosWhite.GoogleIcon,\n linkedin: logosWhite.LinkedinIcon,\n microsoft: logosWhite.MicrosoftIcon,\n salesforce: logosWhite.SalesforceIcon,\n slack: logosWhite.SlackIcon,\n snapchat: logosWhite.SnapchatIcon,\n tiktok: logosWhite.TiktokIcon,\n twitch: logosWhite.TwitchIcon,\n xTwitter: logosWhite.XTwitterIcon,\n yahoo: logosWhite.YahooIcon,\n phantom: logosWhite.PhantomIcon,\n metamask: logosWhite.MetamaskIcon,\n binance: logosWhite.BinanceIcon,\n gmail: logosWhite.GmailIcon,\n outlook: logosWhite.OutlookIcon,\n};\n\nexport const iconsBlack = {\n amazon: logosBlack.AmazonIcon,\n apple: logosBlack.AppleIcon,\n bitbucket: logosBlack.BitbucketIcon,\n coinbase: logosBlack.CoinbaseIcon,\n discord: logosBlack.DiscordIcon,\n facebook: logosBlack.FacebookIcon,\n figma: logosBlack.FigmaIcon,\n github: logosBlack.GithubIcon,\n gitlab: logosBlack.GitlabIcon,\n google: logosBlack.GoogleIcon,\n linkedin: logosBlack.LinkedinIcon,\n microsoft: logosBlack.MicrosoftIcon,\n salesforce: logosBlack.SalesforceIcon,\n slack: logosBlack.SlackIcon,\n snapchat: logosBlack.SnapchatIcon,\n tiktok: logosBlack.TiktokIcon,\n twitch: logosBlack.TwitchIcon,\n xTwitter: logosBlack.XTwitterIcon,\n yahoo: logosBlack.YahooIcon,\n phantom: logosBlack.PhantomIcon,\n metamask: logosBlack.MetamaskIcon,\n binance: logosBlack.BinanceIcon,\n gmail: logosBlack.GmailIcon,\n outlook: logosBlack.OutlookIcon,\n};\n","import type { Theme } from './ThemeConfig';\nimport { defaultShared, defaultTheme } from './themes';\n\nexport const shadcnTheme: Theme = {\n 'color-scheme': 'shadcn',\n\n 'font-family': `var(--font-sans, ${defaultShared['font-family']})`,\n 'font-family-mono': `var(--font-mono, ${defaultShared['font-family-mono']})`,\n 'text-base': 'var(--text-base)',\n\n 'transition-duration': defaultShared['transition-duration'],\n spacing: 'var(--spacing)',\n 'mobile-breakpoint': 'var(--breakpoint-sm)',\n\n 'rounded-base': 'calc(var(--radius) / 2.5)',\n\n 'container-width': defaultShared['container-width'],\n 'container-radius': 'var(--radius-xl)',\n\n shadow: 'var(--shadow)',\n\n background: 'var(--background)',\n foreground: 'var(--foreground)',\n\n primary: 'var(--primary)',\n 'primary-foreground': 'var(--primary-foreground)',\n secondary: 'var(--secondary)',\n 'secondary-foreground': 'var(--secondary-foreground)',\n muted: 'var(--muted)',\n 'muted-foreground': 'var(--muted-foreground)',\n accent: 'var(--accent)',\n 'accent-foreground': 'var(--accent-foreground)',\n\n border: 'var(--border)',\n input: 'var(--input)',\n ring: 'var(--ring)',\n\n destructive: 'var(--destructive)',\n 'destructive-foreground': defaultShared['destructive-foreground'],\n\n success: defaultTheme.success,\n warning: defaultTheme.warning,\n};\n"],"names":["COUNTRIES_LIST","US","AX","AS","AG","AI","AR","AT","AU","BE","BJ","BO","BR","IO","BN","BG","BF","CM","CA","BQ","CF","CL","CX","CC","CO","CD","CK","CR","HR","CZ","DK","DO","EC","SV","EE","SZ","FK","FI","FR","GF","DE","GH","GR","GD","GT","GG","GW","GY","HU","IS","IN","IE","IM","IT","JM","JP","KZ","KE","KI","KR","LV","LT","LU","MO","MT","MH","MR","MU","YT","MX","MC","ME","NR","NL","NZ","NI","NF","NO","PA","PY","PE","PN","PL","PT","PR","RO","BL","SH","KN","LC","MF","PM","SM","ST","SC","SX","SK","SI","ZA","SS","ES","SR","SJ","SE","CH","TW","TZ","TK","TO","TT","TR","UA","GB","UM","UY","VA","EH","moveToFront","array","predicate","length","matchingIndex","findIndex","reordered","unshift","splice","arrayUtils","useIsomorphicLayoutEffect","window","useLayoutEffect","useEffect","useEvent","fn","handlerRef","useRef","current","useCallback","args","defaultShared","spacing","defaultTheme","background","foreground","primary","secondary","muted","accent","border","input","ring","destructive","warning","success","defaultDarkTheme","useMediaQuery","mediaQuery","query","useMemo","matchMedia","undefined","match","setMatch","useState","matches","abortController","AbortController","addEventListener","evt","signal","abort","defaultOptions","hideHeaderText","usePresentationWithDefault","maybeConfig","displayWatermark","products","productsName","theme","options","isDynamic","isDynamicTheme","darkMode","effectiveTheme","iconRegistry","registry","product","Object","assign","icons","Array","isArray","PresentationContext","createContext","usePresentation","useContext","collected","handlers","Set","collectCss","css","push","forEach","handler","addHandler","join","add","delete","injectCssIntoNode","node","document","createElement","firstRender","unsubscribe","contains","textContent","globalStyleNode","injectGlobalStyle","head","appendChild","Watermark","label","twilio","React","a","className","styles","watermark","href","target","rel","svg","stytch","width","height","viewBox","fill","xmlns","path","d","span","aria-label","g","clipPath","defs","id","Column","forwardRef","as","gap","style","outerStyle","props","ref","Element","classNames","column","getTransitionDuration","element","cssTimeToMs","getComputedStyle","getPropertyValue","time","t","parseFloat","Number","isNaN","endsWith","DEFAULT_DURATION","listeners","errorToast","toast","listener","steps","start","opacity","translate","end","animateToastOut","duration","animation","animate","easing","remove","ToastContainer","containerRef","toastRef","timeoutRef","toastElement","message","setTimeout","durationMs","clearTimeout","index","indexOf","div","container","aria-live","MainContainer","children","useLingui","useRootStyles","watermarkContainer","rawBreakpoint","breakpoint","setBreakpoint","parseCssVar","isMobile","themeVariables","themeToCssVariables","colorScheme","variables","fromEntries","entries","map","key","value","replaced","replace","r","variable","defaultValue","split","s","trim","propertyValue","Logo","orgLogo","appLogo","img","logo","src","url","alt","Typography","variant","weight","font","color","align","typography","extractErrorType","error","error_type","DASHBOARD_REGEX","mapURLsToLinks","str","nonLinkChunks","linkChunks","from","matchAll","el","chunkResults","shift","chunk","String","ErrorText","tokens","Divider","role","bar","VisuallyHidden","focusable","hidden","Input","labelText","hideLabel","action","idProp","containerClassName","presentation","inputIdSuffix","errorId","useUniqueId","actionRef","actionWidth","setActionWidth","getBoundingClientRect","htmlFor","inputWrapper","paddingInlineEnd","formatNumber","parsePhoneNumber","phoneNumber","country","parsedPhoneNumber","Promise","race","done","national","formatNumberToIncludeCountryCode","code","fallbackNumber","fallback","isValid","number","useErrorProps","DEFAULT_ICON_SIZE","Chevron","size","DEFAULT_TEL_PLACEHOLDER","getPhoneNumberProps","clientsideServices","getExampleNumber","countryCode","getExamplePhoneNumber","regionCode","then","res","PhoneInput","phone","setPhone","setCountry","hasPasskeys","additionalProps","inputProps","countryFormatter","Intl","DisplayNames","type","placeholder","setPlaceholder","inputRef","phoneValue","setPhoneValue","select","autoComplete","onChange","e","userInput","focus","newPlaceholder","resolve","option","of","chevron","required","passwordManagerDisableAutofillProps","EmailInput","email","setEmail","BASE_SIZE","CircularProgress","thickness","root","circle","animatedCircle","cx","cy","strokeWidth","buttonClassNames","block","button","baseButton","icon","onClick","loading","disabled","otherProps","buttonContent","Button","ButtonAnchor","onKeyDown","defaultPrevented","currentTarget","click","errorMessages","invalid_email","invalid_phone_number","unsubscribed_phone_number","inactive_email","unauthorized_credentials","user_unauthenticated","email_not_found","unable_to_auth_magic_link","no_user_password","breached_password","reset_password","oauth_token_not_found","invalid_code","member_password_not_found","oauth_flow_callback_error","unauthorized_action","user_lock_limit_reached","invalid_session_token","session_not_found","invalid_phone_number_country_code","otp_code_not_found","duplicate_member_phone_number","getTranslatedError","errorType","messageDescriptor","error_message","GithubIcon","fillRule","clipRule","_styles","darkInvert","GmailIcon","GoogleIcon","MicrosoftIcon","OutlookIcon","filter","linearGradient","x1","x2","y1","y2","gradientUnits","stop","stopColor","offset","x","y","colorInterpolationFilters","filterUnits","feFlood","floodOpacity","result","feColorMatrix","in","values","feOffset","dx","dy","feGaussianBlur","stdDeviation","feComposite","in2","operator","feBlend","SlackIcon","ButtonColumn","top","bottom","useTimedBoolean","timeoutSeconds","state","setState","hoverTriggerClass","hoverTrigger","VerticalTransition","rootClassName","trigger","triggered","canTriggerByHover","aria-hidden","useCountdown","expiration","setExpiration","durationInSeconds","Date","now","clear","formatCountdown","secondsLeft","minutes","Math","floor","seconds","padStart","getSecondsRemaining","max","ceil","useTimeRemaining","expirationEpoch","setSeconds","codeExpired","updateSeconds","interval","setInterval","clearInterval","EmailActionLayout","header","description","additionalActions","resend","sendMagicLink","goBack","emailResending","setEmailResending","magicLinkSent","setMagicLinkSent","countdown","timeRemaining","active","resendButton","goBackButton","actions","catch","emailProviderInfo","gmail","getUrl","emailDomain","gmailQuery","encodeURIComponent","yahoo","outlook","EmailProviderLink","providerInfo","Icon","EmailConfirmationView","reset","showGoBack","Trans","components","bold","b","useIsUnmounted","isUnmounted","OneTapErrors","OriginNotAllowedForClient","InvalidOAuthClient","NoConfiguredOAuthClient","NoConfiguredLoginRedirectUrls","NoConfiguredSignupRedirectUrls","DefaultProviderNotAllowed","Badge","badge","LastUsed","TextColumn","body","helper","U","S","n","OTP_LENGTH","transformInput","slice","renderSlots","slots","slotsContainer","slot","otpSlot","isActive","char","hasFakeCaret","caret","OtpInput","defaultOtp","onSubmit","otp","setOtp","isSafari","ua","navigator","userAgent","toLowerCase","includes","OTPInput","inputContainer","safari","maxLength","newOtp","pasteTransformer","onComplete","pattern","render","LoadingBar","isLoading","progress","AnimatedContainer","isOpen","open","inner","OTPEntry","helperContent","instruction","isSubmitting","errorMessage","progressInner","SentOTPEntry","formattedDestination","_timeRemaining","formattedText","destination","ResendOTPButton","resendOTP","useMountEffect","effect","effectRef","Confirmation","text","defaultHeader","defaultText","PasswordInput","password","setPassword","visible","setVisible","form","controller","PasswordStrengthCheck","score","status","weak","strong","_","i","filled","warnings","suggestions","labels","fulfilled","notFulfilled","suggestion","CrossIcon","CheckIcon","PasswordStrengthItem","bullet","item","aria-atomic","PasswordError","bootstrap","complexity","passwordConfig","ludsComplexity","characterLength","ludsMinimumCount","policy","passwordInvalid","isPasswordBreached","passwordBreachedWarning","passwordScore","passwordWarning","passwordSuggestions","translatedWarning","uniqueSuggestions","translatedSuggestions","missingCharacters","missingComplexity","getNewPasswordProps","passwordPolicy","passwordrules","minLength","LoggingInScreen","LoadingScreen","loadingScreen","ConsentManifestGeneratorContext","TrustedAuthTokenParamsContext","IDPContextProvider","consentManifestGenerator","authTokenParams","Provider","useConsentManifestGenerator","useTrustedAuthTokenParams","DEFAULT_MFA_STATE","primaryInfo","isEnrolling","smsOtp","isSending","sendError","codeExpiration","enrolledNumber","totp","isCreating","createError","enrollment","ErrorType","Default","EmailMagicLink","Organization","CannotJoinOrgDueToAuthPolicy","AdBlockerDetected","OrganizationDiscoveryClaimedDomain","AppScreens","Main","EmailConfirmation","LoggedIn","Discovery","Error","PasswordEmailForm","PasswordAuthenticate","PasswordResetForm","PasswordResetVerifyConfirmation","PasswordForgotForm","PasswordSetNewConfirmation","MFAEnrollmentSelection","RecoveryCodeEntry","RecoveryCodeSave","SMSOTPEnrollment","SMSOTPEntry","TOTPEnrollmentManual","TOTPEnrollmentQRCode","TOTPEntry","EmailMethodSelection","EmailOTPEntry","SSODiscoveryEmail","SSODiscoveryFallback","SSODiscoveryMenu","MainScreenComponent","EmailForm","EmailDiscoveryForm","OAuthButtons","SSOButtons","PasswordsEmailForm","PasswordEmailCombined","PasswordEmailCombinedDiscovery","getEnabledMethods","allMethods","orgSupportedMethods","uiIncludedMethods","methodsArr","pushHistory","screen","screenHistory","replaceHistory","canGoBack","DEFAULT_SMS_OTP_EXPIRATION_MS","apiMfaMethodToProduct","method","B2BMFAProducts","getNextEnrollmentScreen","enabledMethods","has","getSmsOtpCodeExpiration","B2B_MFA_METHODS","mfaReducer","memberAuthenticated","response","member_session","postAuthScreen","resetTokenType","mfa","primary_required","primaryAuthMethods","allowed_auth_methods","email_address","email_address_verified","emailVerified","member","newBaseState","flowState","AuthFlowType","organization","formState","passwordState","memberEnrolledInSmsOtp","mfa_phone_number_verified","memberEnrolledInTotp","totp_registration_id","enrolledMfaMethods","isTruthy","memberId","member_id","memberPhoneNumber","mfa_phone_number","organizationId","organization_id","organizationMfaOptionsSupported","mfa_methods","allowed_mfa_methods","organizationSupportsMethod","getDefaultMethod","defaultMethod","default_mfa_method","smsImplicitlySent","mfa_required","secondary_auth_initiated","entryMethod","find","mfaState","nextState","includedMfaMethods","formattedPhoneNumber","nextScreen","secret","qrCode","qr_code","recoveryCodes","recovery_codes","reducer","history","at","emailState","userSuppliedEmail","discoveredOrganizations","discoveryState","membership","discoveredOrganization","otpState","connections","ssoDiscoveryState","DEFAULT_STATE","GlobalContext","client","config","GlobalContextProvider","callbacks","initialState","useReducer","useGlobalContext","useStytch","useGlobalReducer","useConfig","useErrorCallback","onError","noop","useEventCallback","onEvent","ErrorDisplay","onGoBack","ErrorScreen","dispatch","currentErrorType","organizationName","organization_name","ErrorTypeMap","handleGoBack","Item","summary","details","summaryNoDetail","borderBetween","animateToggleDetail","ul","nestedList","Section","section","outerList","items","ConsentManifest","manifest","clientName","sections","UngrantableScopes","ungrantableScopeDescriptions","ungrantable","parent","parentElement","tagName","detail","preventDefault","wasOpen","summaryHeight","clientHeight","detailStyles","closedHeight","paddingTop","paddingBottom","animationOptions","detailHeight","finished","requestAnimationFrame","params","preflight","denied","consent_required","grantable_scope","ungrantable_scope","redirect_uri","idpStateReducer","useIDPState","initialError","initialParams","oauthAuthorizeStart","oauthAuthorizeSubmit","IDPOAuthFlowMissingParamError","submitInternal","consent_granted","submitResp","authorization_code","location","StytchEventType","OAuthAuthorizeFlowConsentDenied","data","OAuthAuthorizeFlowComplete","submit","loadClient","OAuthAuthorizeFlowStart","client_id","scope","startResponse","err","StytchAPIError","grantable","scope_results","is_grantable","IDPConsent","bootstrapNotLoaded","customConsentManifestGenerator","name","client_name","u","URL","hostname","logger","warn","scopes","fallbackConsentManifestGenerator","rbacPolicy","createCustomScopeDescriptions","Consent","grantableScope","projectName","title","containsCustomScopes","logoutStateReducer","browserNavigate","useLogoutState","oauthLogoutStart","revokeSession","navigate","redirectURI","logoutPreflight","IDPLogout","AmazonIcon","AppleIcon","BinanceIcon","BitbucketIcon","CoinbaseIcon","DiscordIcon","FacebookIcon","FigmaIcon","GitlabIcon","LinkedinIcon","MetamaskIcon","PhantomIcon","SalesforceIcon","SnapchatIcon","TiktokIcon","TwitchIcon","XTwitterIcon","YahooIcon","iconsWhite","amazon","logosWhite","apple","bitbucket","coinbase","discord","facebook","figma","github","gitlab","google","linkedin","microsoft","salesforce","slack","snapchat","tiktok","twitch","xTwitter","phantom","metamask","binance","iconsBlack","logosBlack","shadcnTheme","shadow"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MAEaA,cAAAA,GAAiB;IAC5BC,EAAAA,EAAI,GAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,MAAA;IACJC,EAAAA,EAAI,MAAA;IACJC,EAAAA,EAAI,MAAA;IACJC,EAAAA,EAAI,IAAA;IACJC,EAAAA,EAAI,IAAA;IACJC,EAAAA,EAAI,IAAA;IACJC,EAAAA,EAAI,IAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,IAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,GAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,IAAA;IACJC,EAAAA,EAAI,IAAA;IACJC,EAAAA,EAAI,IAAA;IACJC,EAAAA,EAAI,IAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,IAAA;IACJC,EAAAA,EAAI,MAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,IAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,IAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,IAAA;IACJC,EAAAA,EAAI,MAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,IAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,IAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,IAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,IAAA;IACJC,EAAAA,EAAI,IAAA;IACJC,EAAAA,EAAI,MAAA;IACJC,EAAAA,EAAI,IAAA;IACJC,EAAAA,EAAI,GAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,IAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,IAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,IAAA;IACJC,EAAAA,EAAI,IAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,IAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,IAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,IAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,GAAA;IACJC,EAAAA,EAAI,IAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,MAAA;IACJC,EAAAA,EAAI,MAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,IAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,IAAA;IACJC,EAAAA,EAAI,KAAA;IACJC,EAAAA,EAAI,IAAA;IACJC,EAAAA,EAAI,IAAA;IACJC,EAAAA,EAAI,I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","x_google_ignoreList":[7,47]}