@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 +1 @@
1
- {"version":3,"file":"PasswordlessAuthenticate.mjs","sources":["../../../../../../../../../../web/src/ui/b2c/screens/Secondary/PasswordlessAuthenticate.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { DEFAULT_OTP_EXPIRATION_MINUTES } from '@stytch/core';\nimport { OTPMethods, StytchAPIError, StytchEventType, StytchSDKAPIError } from '@stytch/core/public';\nimport { EmailConfirmation } from './EmailConfirmation';\nimport { OTPAuthenticate } from './OTPAuthenticate';\nimport Divider from '../../../components/molecules/Divider';\nimport { convertMagicLinkOptions, convertPasswordResetOptions } from '../../../../utils';\nimport {\n AppScreens,\n useConfig,\n useErrorCallback,\n useEventCallback,\n useGlobalReducer,\n useStytch,\n} from '../../GlobalContextProvider';\nimport { useMountEffect } from '../../../hooks/useMountEffect';\nimport Button from '../../../components/atoms/Button';\nimport ErrorText from '../../../components/molecules/ErrorText';\nimport { getTranslatedError } from '../../../../utils/getTranslatedError';\nimport { useLingui } from '@lingui/react/macro';\nimport Column from '../../../components/atoms/Column';\n\ntype PasswordlessAuthenticateProps = {\n secondaryType: 'eml' | 'otp' | undefined;\n};\n\nexport const PasswordlessAuthenticate = ({ secondaryType }: PasswordlessAuthenticateProps) => {\n const { t } = useLingui();\n const stytchClient = useStytch();\n const config = useConfig();\n const [state, dispatch] = useGlobalReducer();\n const onEvent = useEventCallback();\n const onError = useErrorCallback();\n\n const [errorMessage, setErrorMessage] = useState('');\n\n const { sendLink, sendCode } = usePasswordlessAuthenticate();\n const passwordOptions = config.passwordOptions;\n\n const email = state.formState.passwordState.email;\n\n const resetPassword = () => {\n stytchClient.passwords\n .resetByEmailStart(convertPasswordResetOptions(email, passwordOptions))\n .then((data) => {\n onEvent({ type: StytchEventType.PasswordResetByEmailStart, data });\n dispatch({ type: 'transition', screen: AppScreens.PasswordSetNew });\n })\n .catch((e: StytchAPIError) => {\n onError(e);\n setErrorMessage(getTranslatedError(e, t));\n });\n };\n\n useMountEffect(() => {\n switch (secondaryType) {\n case 'eml':\n sendLink();\n return;\n\n case 'otp':\n sendCode();\n return;\n\n default:\n stytchClient.passwords\n .resetByEmailStart(convertPasswordResetOptions(email, passwordOptions))\n .then((data) => {\n onEvent({ type: StytchEventType.PasswordResetByEmailStart, data });\n dispatch({ type: 'transition', screen: AppScreens.PasswordSetNew });\n })\n .catch((e: StytchAPIError) => {\n onError(e);\n });\n return;\n }\n });\n\n if (!secondaryType) {\n return null;\n }\n\n return (\n <>\n {secondaryType === 'eml' ? (\n <EmailConfirmation showGoBack={false} /> //\n ) : (\n <OTPAuthenticate hideBackButton />\n )}\n\n <Divider />\n\n <Column gap={2}>\n <Button onClick={resetPassword} variant=\"outline\">\n {t({ id: 'button.createPasswordInstead', message: 'Create a password instead' })}\n </Button>\n {errorMessage && <ErrorText>{errorMessage}</ErrorText>}\n </Column>\n </>\n );\n};\n\nexport function usePasswordlessAuthenticate() {\n const stytchClient = useStytch();\n const { emailMagicLinksOptions, otpOptions } = useConfig();\n const [state, dispatch] = useGlobalReducer();\n const onEvent = useEventCallback();\n const onError = useErrorCallback();\n\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n const email = state.formState.passwordState.email;\n\n const sendLink = async () => {\n setIsSubmitting(true);\n\n try {\n const data = await stytchClient.magicLinks.email.loginOrCreate(\n email,\n convertMagicLinkOptions(emailMagicLinksOptions),\n );\n onEvent({ type: StytchEventType.MagicLinkLoginOrCreateEvent, data: { ...data, email } });\n dispatch({ type: 'set_magic_link_email', email: email });\n } catch (e) {\n onError(e as StytchSDKAPIError);\n throw e;\n } finally {\n setIsSubmitting(false);\n }\n };\n\n const sendCode = async () => {\n setIsSubmitting(true);\n\n try {\n const data = await stytchClient.otps.email.loginOrCreate(email, {\n expiration_minutes: otpOptions?.expirationMinutes ?? DEFAULT_OTP_EXPIRATION_MINUTES,\n locale: otpOptions?.locale,\n });\n onEvent({ type: StytchEventType.OTPsLoginOrCreateEvent, data });\n dispatch({\n type: 'update_otp_state',\n otpState: {\n type: OTPMethods.Email,\n methodId: data.method_id,\n otpDestination: email,\n },\n });\n } catch (e) {\n onError(e as StytchSDKAPIError);\n throw e;\n } finally {\n setIsSubmitting(false);\n }\n };\n\n return {\n sendLink,\n sendCode,\n isSubmitting,\n };\n}\n"],"names":["PasswordlessAuthenticate","secondaryType","useLingui","stytchClient","useStytch","config","useConfig","state","dispatch","useGlobalReducer","onEvent","useEventCallback","onError","useErrorCallback","errorMessage","setErrorMessage","useState","sendLink","sendCode","usePasswordlessAuthenticate","passwordOptions","email","formState","passwordState","resetPassword","passwords","resetByEmailStart","convertPasswordResetOptions","then","data","type","StytchEventType","PasswordResetByEmailStart","screen","AppScreens","PasswordSetNew","catch","e","getTranslatedError","useMountEffect","React","EmailConfirmation","showGoBack","OTPAuthenticate","hideBackButton","Divider","Column","gap","Button","onClick","variant","ErrorText","emailMagicLinksOptions","otpOptions","isSubmitting","setIsSubmitting","magicLinks","loginOrCreate","convertMagicLinkOptions","MagicLinkLoginOrCreateEvent","otps","expiration_minutes","expirationMinutes","DEFAULT_OTP_EXPIRATION_MINUTES","locale","OTPsLoginOrCreateEvent","otpState","OTPMethods","Email","methodId","method_id","otpDestination"],"mappings":"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"}
1
+ {"version":3,"file":"PasswordlessAuthenticate.mjs","sources":["../../../../../../../../../../web/src/ui/b2c/screens/Secondary/PasswordlessAuthenticate.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { StytchAPIError, StytchEventType } from '@stytch/core/public';\nimport { EmailConfirmation } from './EmailConfirmation';\nimport { OTPAuthenticate } from './OTPAuthenticate';\nimport Divider from '../../../components/molecules/Divider';\nimport { convertPasswordResetOptions } from '../../../../utils';\nimport {\n AppScreens,\n useConfig,\n useErrorCallback,\n useEventCallback,\n useGlobalReducer,\n useStytch,\n} from '../../GlobalContextProvider';\nimport { useMountEffect } from '../../../hooks/useMountEffect';\nimport Button from '../../../components/atoms/Button';\nimport ErrorText from '../../../components/molecules/ErrorText';\nimport { getTranslatedError } from '../../../../utils/getTranslatedError';\nimport { useLingui } from '@lingui/react/macro';\nimport Column from '../../../components/atoms/Column';\nimport { usePasswordlessAuthenticate } from './usePasswordlessAuthenticate';\n\ntype PasswordlessAuthenticateProps = {\n secondaryType: 'eml' | 'otp' | undefined;\n};\n\nexport const PasswordlessAuthenticate = ({ secondaryType }: PasswordlessAuthenticateProps) => {\n const { t } = useLingui();\n const stytchClient = useStytch();\n const config = useConfig();\n const [state, dispatch] = useGlobalReducer();\n const onEvent = useEventCallback();\n const onError = useErrorCallback();\n\n const [errorMessage, setErrorMessage] = useState('');\n\n const { sendLink, sendCode } = usePasswordlessAuthenticate();\n const passwordOptions = config.passwordOptions;\n\n const email = state.formState.passwordState.email;\n\n const resetPassword = () => {\n stytchClient.passwords\n .resetByEmailStart(convertPasswordResetOptions(email, passwordOptions))\n .then((data) => {\n onEvent({ type: StytchEventType.PasswordResetByEmailStart, data });\n dispatch({ type: 'transition', screen: AppScreens.PasswordSetNew });\n })\n .catch((e: StytchAPIError) => {\n onError(e);\n setErrorMessage(getTranslatedError(e, t));\n });\n };\n\n useMountEffect(() => {\n switch (secondaryType) {\n case 'eml':\n sendLink();\n return;\n\n case 'otp':\n sendCode();\n return;\n\n default:\n stytchClient.passwords\n .resetByEmailStart(convertPasswordResetOptions(email, passwordOptions))\n .then((data) => {\n onEvent({ type: StytchEventType.PasswordResetByEmailStart, data });\n dispatch({ type: 'transition', screen: AppScreens.PasswordSetNew });\n })\n .catch((e: StytchAPIError) => {\n onError(e);\n });\n return;\n }\n });\n\n if (!secondaryType) {\n return null;\n }\n\n return (\n <>\n {secondaryType === 'eml' ? <EmailConfirmation showGoBack={false} /> : <OTPAuthenticate hideBackButton />}\n\n <Divider />\n\n <Column gap={2}>\n <Button onClick={resetPassword} variant=\"outline\">\n {t({ id: 'button.createPasswordInstead', message: 'Create a password instead' })}\n </Button>\n {errorMessage && <ErrorText>{errorMessage}</ErrorText>}\n </Column>\n </>\n );\n};\n"],"names":["PasswordlessAuthenticate","secondaryType","useLingui","stytchClient","useStytch","config","useConfig","state","dispatch","useGlobalReducer","onEvent","useEventCallback","onError","useErrorCallback","errorMessage","setErrorMessage","useState","sendLink","sendCode","usePasswordlessAuthenticate","passwordOptions","email","formState","passwordState","resetPassword","passwords","resetByEmailStart","convertPasswordResetOptions","then","data","type","StytchEventType","PasswordResetByEmailStart","screen","AppScreens","PasswordSetNew","catch","e","getTranslatedError","useMountEffect","React","EmailConfirmation","showGoBack","OTPAuthenticate","hideBackButton","Divider","Column","gap","Button","onClick","variant","ErrorText"],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ import { useState } from 'react';
2
+ import { useStytch, useConfig, useGlobalReducer, useEventCallback, useErrorCallback } from '../../GlobalContextProvider.mjs';
3
+ import { convertMagicLinkOptions } from '../../../../utils/index.mjs';
4
+ import { DEFAULT_OTP_EXPIRATION_MINUTES } from '../../../../../../core/src/constants.mjs';
5
+ import { StytchEventType, OTPMethods } from '../../../../../../core/src/public/ui.mjs';
6
+
7
+ function usePasswordlessAuthenticate() {
8
+ const stytchClient = useStytch();
9
+ const { emailMagicLinksOptions, otpOptions } = useConfig();
10
+ const [state, dispatch] = useGlobalReducer();
11
+ const onEvent = useEventCallback();
12
+ const onError = useErrorCallback();
13
+ const [isSubmitting, setIsSubmitting] = useState(false);
14
+ const email = state.formState.passwordState.email;
15
+ const sendLink = async ()=>{
16
+ setIsSubmitting(true);
17
+ try {
18
+ const data = await stytchClient.magicLinks.email.loginOrCreate(email, convertMagicLinkOptions(emailMagicLinksOptions));
19
+ onEvent({
20
+ type: StytchEventType.MagicLinkLoginOrCreateEvent,
21
+ data: {
22
+ ...data,
23
+ email
24
+ }
25
+ });
26
+ dispatch({
27
+ type: 'set_magic_link_email',
28
+ email: email
29
+ });
30
+ } catch (e) {
31
+ onError(e);
32
+ throw e;
33
+ } finally{
34
+ setIsSubmitting(false);
35
+ }
36
+ };
37
+ const sendCode = async ()=>{
38
+ setIsSubmitting(true);
39
+ try {
40
+ const data = await stytchClient.otps.email.loginOrCreate(email, {
41
+ expiration_minutes: otpOptions?.expirationMinutes ?? DEFAULT_OTP_EXPIRATION_MINUTES,
42
+ locale: otpOptions?.locale
43
+ });
44
+ onEvent({
45
+ type: StytchEventType.OTPsLoginOrCreateEvent,
46
+ data
47
+ });
48
+ dispatch({
49
+ type: 'update_otp_state',
50
+ otpState: {
51
+ type: OTPMethods.Email,
52
+ methodId: data.method_id,
53
+ otpDestination: email
54
+ }
55
+ });
56
+ } catch (e) {
57
+ onError(e);
58
+ throw e;
59
+ } finally{
60
+ setIsSubmitting(false);
61
+ }
62
+ };
63
+ return {
64
+ sendLink,
65
+ sendCode,
66
+ isSubmitting
67
+ };
68
+ }
69
+
70
+ export { usePasswordlessAuthenticate };
71
+ //# sourceMappingURL=usePasswordlessAuthenticate.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePasswordlessAuthenticate.mjs","sources":["../../../../../../../../../../web/src/ui/b2c/screens/Secondary/usePasswordlessAuthenticate.ts"],"sourcesContent":["import { useState } from 'react';\nimport { DEFAULT_OTP_EXPIRATION_MINUTES } from '@stytch/core';\nimport { OTPMethods, StytchEventType, StytchSDKAPIError } from '@stytch/core/public';\nimport {\n useConfig,\n useErrorCallback,\n useEventCallback,\n useGlobalReducer,\n useStytch,\n} from '../../GlobalContextProvider';\nimport { convertMagicLinkOptions } from '../../../../utils';\n\nexport function usePasswordlessAuthenticate() {\n const stytchClient = useStytch();\n const { emailMagicLinksOptions, otpOptions } = useConfig();\n const [state, dispatch] = useGlobalReducer();\n const onEvent = useEventCallback();\n const onError = useErrorCallback();\n\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n const email = state.formState.passwordState.email;\n\n const sendLink = async () => {\n setIsSubmitting(true);\n\n try {\n const data = await stytchClient.magicLinks.email.loginOrCreate(\n email,\n convertMagicLinkOptions(emailMagicLinksOptions),\n );\n onEvent({ type: StytchEventType.MagicLinkLoginOrCreateEvent, data: { ...data, email } });\n dispatch({ type: 'set_magic_link_email', email: email });\n } catch (e) {\n onError(e as StytchSDKAPIError);\n throw e;\n } finally {\n setIsSubmitting(false);\n }\n };\n\n const sendCode = async () => {\n setIsSubmitting(true);\n\n try {\n const data = await stytchClient.otps.email.loginOrCreate(email, {\n expiration_minutes: otpOptions?.expirationMinutes ?? DEFAULT_OTP_EXPIRATION_MINUTES,\n locale: otpOptions?.locale,\n });\n onEvent({ type: StytchEventType.OTPsLoginOrCreateEvent, data });\n dispatch({\n type: 'update_otp_state',\n otpState: {\n type: OTPMethods.Email,\n methodId: data.method_id,\n otpDestination: email,\n },\n });\n } catch (e) {\n onError(e as StytchSDKAPIError);\n throw e;\n } finally {\n setIsSubmitting(false);\n }\n };\n\n return {\n sendLink,\n sendCode,\n isSubmitting,\n };\n}\n"],"names":["usePasswordlessAuthenticate","stytchClient","useStytch","emailMagicLinksOptions","otpOptions","useConfig","state","dispatch","useGlobalReducer","onEvent","useEventCallback","onError","useErrorCallback","isSubmitting","setIsSubmitting","useState","email","formState","passwordState","sendLink","data","magicLinks","loginOrCreate","convertMagicLinkOptions","type","StytchEventType","MagicLinkLoginOrCreateEvent","e","sendCode","otps","expiration_minutes","expirationMinutes","DEFAULT_OTP_EXPIRATION_MINUTES","locale","OTPsLoginOrCreateEvent","otpState","OTPMethods","Email","methodId","method_id","otpDestination"],"mappings":";;;;;;AAYO,SAASA,2BAAAA,GAAAA;AACd,IAAA,MAAMC,YAAAA,GAAeC,SAAAA,EAAAA;AACrB,IAAA,MAAM,EAAEC,sBAAsB,EAAEC,UAAU,EAAE,GAAGC,SAAAA,EAAAA;IAC/C,MAAM,CAACC,KAAAA,EAAOC,QAAAA,CAAS,GAAGC,gBAAAA,EAAAA;AAC1B,IAAA,MAAMC,OAAAA,GAAUC,gBAAAA,EAAAA;AAChB,IAAA,MAAMC,OAAAA,GAAUC,gBAAAA,EAAAA;AAEhB,IAAA,MAAM,CAACC,YAAAA,EAAcC,eAAAA,CAAgB,GAAGC,QAAAA,CAAS,KAAA,CAAA;AAEjD,IAAA,MAAMC,QAAQV,KAAAA,CAAMW,SAAS,CAACC,aAAa,CAACF,KAAK;AAEjD,IAAA,MAAMG,QAAAA,GAAW,UAAA;QACfL,eAAAA,CAAgB,IAAA,CAAA;QAEhB,IAAI;YACF,MAAMM,IAAAA,GAAO,MAAMnB,YAAAA,CAAaoB,UAAU,CAACL,KAAK,CAACM,aAAa,CAC5DN,KAAAA,EACAO,uBAAAA,CAAwBpB,sBAAAA,CAAAA,CAAAA;YAE1BM,OAAAA,CAAQ;AAAEe,gBAAAA,IAAAA,EAAMC,gBAAgBC,2BAA2B;gBAAEN,IAAAA,EAAM;AAAE,oBAAA,GAAGA,IAAI;AAAEJ,oBAAAA;AAAM;AAAE,aAAA,CAAA;YACtFT,QAAAA,CAAS;gBAAEiB,IAAAA,EAAM,sBAAA;gBAAwBR,KAAAA,EAAOA;AAAM,aAAA,CAAA;AACxD,QAAA,CAAA,CAAE,OAAOW,CAAAA,EAAG;YACVhB,OAAAA,CAAQgB,CAAAA,CAAAA;YACR,MAAMA,CAAAA;QACR,CAAA,QAAU;YACRb,eAAAA,CAAgB,KAAA,CAAA;AAClB,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAMc,QAAAA,GAAW,UAAA;QACfd,eAAAA,CAAgB,IAAA,CAAA;QAEhB,IAAI;YACF,MAAMM,IAAAA,GAAO,MAAMnB,YAAAA,CAAa4B,IAAI,CAACb,KAAK,CAACM,aAAa,CAACN,KAAAA,EAAO;AAC9Dc,gBAAAA,kBAAAA,EAAoB1B,YAAY2B,iBAAAA,IAAqBC,8BAAAA;AACrDC,gBAAAA,MAAAA,EAAQ7B,UAAAA,EAAY6B;AACtB,aAAA,CAAA;YACAxB,OAAAA,CAAQ;AAAEe,gBAAAA,IAAAA,EAAMC,gBAAgBS,sBAAsB;AAAEd,gBAAAA;AAAK,aAAA,CAAA;YAC7Db,QAAAA,CAAS;gBACPiB,IAAAA,EAAM,kBAAA;gBACNW,QAAAA,EAAU;AACRX,oBAAAA,IAAAA,EAAMY,WAAWC,KAAK;AACtBC,oBAAAA,QAAAA,EAAUlB,KAAKmB,SAAS;oBACxBC,cAAAA,EAAgBxB;AAClB;AACF,aAAA,CAAA;AACF,QAAA,CAAA,CAAE,OAAOW,CAAAA,EAAG;YACVhB,OAAAA,CAAQgB,CAAAA,CAAAA;YACR,MAAMA,CAAAA;QACR,CAAA,QAAU;YACRb,eAAAA,CAAgB,KAAA,CAAA;AAClB,QAAA;AACF,IAAA,CAAA;IAEA,OAAO;AACLK,QAAAA,QAAAA;AACAS,QAAAA,QAAAA;AACAf,QAAAA;AACF,KAAA;AACF;;;;"}
@@ -1,5 +1,5 @@
1
1
  import React__default from 'react';
2
- import classNames from '../../../../../../_virtual/index3.mjs';
2
+ import classNames from '../../../../../../_virtual/index.mjs';
3
3
  import modules_d098bf60 from './AnimatedContainer.module.css.mjs';
4
4
 
5
5
  const AnimatedContainer = ({ isOpen, children })=>/*#__PURE__*/ React__default.createElement("div", {
@@ -1,5 +1,5 @@
1
1
  import React__default from 'react';
2
- import classNames from '../../../../../../_virtual/index3.mjs';
2
+ import classNames from '../../../../../../_virtual/index.mjs';
3
3
  import { CircularProgress } from './CircularProgress.mjs';
4
4
  import modules_b0070f27 from './Button.module.css.mjs';
5
5
 
@@ -14,15 +14,14 @@ const BASE_SIZE = 44;
14
14
  style: {
15
15
  width: size,
16
16
  height: size
17
- },
17
+ }
18
+ }, /*#__PURE__*/ React__default.createElement("svg", {
19
+ className: modules_eaa8372d.svg,
20
+ viewBox: `${BASE_SIZE / 2} ${BASE_SIZE / 2} ${BASE_SIZE} ${BASE_SIZE}`,
18
21
  "aria-label": label ?? $__i18n._({
19
22
  id: "loading.label",
20
23
  message: "Loading"
21
24
  })
22
- }, /*#__PURE__*/ React__default.createElement("svg", {
23
- className: modules_eaa8372d.svg,
24
- viewBox: `${BASE_SIZE / 2} ${BASE_SIZE / 2} ${BASE_SIZE} ${BASE_SIZE}`,
25
- role: "presentation"
26
25
  }, /*#__PURE__*/ React__default.createElement("circle", {
27
26
  className: modules_eaa8372d.animatedCircle,
28
27
  cx: BASE_SIZE,
@@ -1 +1 @@
1
- {"version":3,"file":"CircularProgress.mjs","sources":["../../../../../../../../../web/src/ui/components/atoms/CircularProgress.tsx"],"sourcesContent":["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"],"names":["BASE_SIZE","CircularProgress","size","label","thickness","useLingui","React","div","className","styles","root","style","width","height","aria-label","svg","viewBox","role","circle","animatedCircle","cx","cy","r","fill","strokeWidth"],"mappings":";;;;AAIA,MAAMA,SAAAA,GAAY,EAAA;AAQlB;;;;IAKO,MAAMC,gBAAAA,GAAmB,CAAC,EAAEC,IAAI,EAAEC,KAAK,EAAEC,SAAAA,GAAY,GAAG,EAAyB,GAAA;AACtF,IAAA,MAAM,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,GAAA,EAAA,GAAQC,SAAAA,EAAAA;AACd,IAAA,qBACEC,cAAA,CAAA,aAAA,CAACC,KAAAA,EAAAA;AACCC,QAAAA,SAAAA,EAAWC,iBAAOC,IAAI;QACtBC,KAAAA,EAAO;YAAEC,KAAAA,EAAOV,IAAAA;YAAMW,MAAAA,EAAQX;AAAK,SAAA;QACnCY,YAAAA,EAAYX,KAAAA,IAAAA,OAAAA,CAAAA,CAAAA,CAAAA;;;;qBAEZG,cAAA,CAAA,aAAA,CAACS,KAAAA,EAAAA;AACCP,QAAAA,SAAAA,EAAWC,iBAAOM,GAAG;AACrBC,QAAAA,OAAAA,EAAS,CAAA,EAAGhB,SAAAA,GAAY,CAAA,CAAE,CAAC,EAAEA,SAAAA,GAAY,CAAA,CAAE,CAAC,EAAEA,SAAAA,CAAU,CAAC,EAAEA,SAAAA,CAAAA,CAAW;QACtEiB,IAAAA,EAAK;qBAELX,cAAA,CAAA,aAAA,CAACY,QAAAA,EAAAA;AACCV,QAAAA,SAAAA,EAAWC,iBAAOU,cAAc;QAChCC,EAAAA,EAAIpB,SAAAA;QACJqB,EAAAA,EAAIrB,SAAAA;AACJsB,QAAAA,CAAAA,EAAG,CAACtB,SAAAA,GAAYI,SAAQ,IAAK,CAAA;QAC7BmB,IAAAA,EAAK,MAAA;QACLC,WAAAA,EAAapB;;AAKvB;;;;"}
1
+ {"version":3,"file":"CircularProgress.mjs","sources":["../../../../../../../../../web/src/ui/components/atoms/CircularProgress.tsx"],"sourcesContent":["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 className={styles.root} style={{ width: size, height: size }}>\n <svg\n className={styles.svg}\n viewBox={`${BASE_SIZE / 2} ${BASE_SIZE / 2} ${BASE_SIZE} ${BASE_SIZE}`}\n aria-label={label ?? t({ id: 'loading.label', message: 'Loading' })}\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"],"names":["BASE_SIZE","CircularProgress","size","label","thickness","useLingui","React","div","className","styles","root","style","width","height","svg","viewBox","aria-label","circle","animatedCircle","cx","cy","r","fill","strokeWidth"],"mappings":";;;;AAIA,MAAMA,SAAAA,GAAY,EAAA;AAQlB;;;;IAKO,MAAMC,gBAAAA,GAAmB,CAAC,EAAEC,IAAI,EAAEC,KAAK,EAAEC,SAAAA,GAAY,GAAG,EAAyB,GAAA;AACtF,IAAA,MAAM,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,GAAA,EAAA,GAAQC,SAAAA,EAAAA;AACd,IAAA,qBACEC,cAAA,CAAA,aAAA,CAACC,KAAAA,EAAAA;AAAIC,QAAAA,SAAAA,EAAWC,iBAAOC,IAAI;QAAEC,KAAAA,EAAO;YAAEC,KAAAA,EAAOV,IAAAA;YAAMW,MAAAA,EAAQX;AAAK;qBAC9DI,cAAA,CAAA,aAAA,CAACQ,KAAAA,EAAAA;AACCN,QAAAA,SAAAA,EAAWC,iBAAOK,GAAG;AACrBC,QAAAA,OAAAA,EAAS,CAAA,EAAGf,SAAAA,GAAY,CAAA,CAAE,CAAC,EAAEA,SAAAA,GAAY,CAAA,CAAE,CAAC,EAAEA,SAAAA,CAAU,CAAC,EAAEA,SAAAA,CAAAA,CAAW;QACtEgB,YAAAA,EAAYb,KAAAA,IAAAA,OAAAA,CAAAA,CAAAA,CAAAA;;;;qBAEZG,cAAA,CAAA,aAAA,CAACW,QAAAA,EAAAA;AACCT,QAAAA,SAAAA,EAAWC,iBAAOS,cAAc;QAChCC,EAAAA,EAAInB,SAAAA;QACJoB,EAAAA,EAAIpB,SAAAA;AACJqB,QAAAA,CAAAA,EAAG,CAACrB,SAAAA,GAAYI,SAAQ,IAAK,CAAA;QAC7BkB,IAAAA,EAAK,MAAA;QACLC,WAAAA,EAAanB;;AAKvB;;;;"}
@@ -1,6 +1,6 @@
1
1
  import React__default from 'react';
2
2
  import modules_51b5745b from './CodeContainer.module.css.mjs';
3
- import classNames from '../../../../../../_virtual/index3.mjs';
3
+ import classNames from '../../../../../../_virtual/index.mjs';
4
4
 
5
5
  const CodeContainer = ({ children, className, ...props })=>/*#__PURE__*/ React__default.createElement("div", {
6
6
  className: classNames(className, modules_51b5745b.container),
@@ -1,5 +1,5 @@
1
1
  import React__default, { forwardRef } from 'react';
2
- import classNames from '../../../../../../_virtual/index3.mjs';
2
+ import classNames from '../../../../../../_virtual/index.mjs';
3
3
  import modules_82bdfbfc from './Column.module.css.mjs';
4
4
 
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  import React__default, { forwardRef } from 'react';
2
- import classNames from '../../../../../../_virtual/index3.mjs';
2
+ import classNames from '../../../../../../_virtual/index.mjs';
3
3
  import modules_1d7499fc from './Typography.module.css.mjs';
4
4
 
5
5
  const Typography = /*#__PURE__*/ forwardRef(({ variant = 'body', as = 'div', weight, font, color, align, className, ...props }, ref)=>{
@@ -1,5 +1,5 @@
1
1
  import React__default, { useState, useEffect } from 'react';
2
- import classNames from '../../../../../../_virtual/index3.mjs';
2
+ import classNames from '../../../../../../_virtual/index.mjs';
3
3
  import modules_654ad754 from './VerticalTransition.module.css.mjs';
4
4
 
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  import React__default from 'react';
2
- import classNames from '../../../../../../_virtual/index3.mjs';
2
+ import classNames from '../../../../../../_virtual/index.mjs';
3
3
  import modules_b0018d5a from './VisuallyHidden.module.css.mjs';
4
4
 
5
5
  const VisuallyHidden = ({ children, focusable })=>/*#__PURE__*/ React__default.createElement("div", {
@@ -1,42 +1,33 @@
1
1
  import React__default from 'react';
2
2
  import modules_b8928cee from './Watermark.module.css.mjs';
3
3
 
4
- const Watermark = ({ label, twilio })=>/*#__PURE__*/ React__default.createElement("a", {
4
+ const Watermark = ({ label, logoText })=>/*#__PURE__*/ React__default.createElement("a", {
5
5
  className: modules_b8928cee.watermark,
6
6
  href: "https://stytch.com/",
7
7
  target: "_blank",
8
8
  rel: "noreferrer"
9
- }, /*#__PURE__*/ React__default.createElement("svg", {
10
- className: modules_b8928cee.stytch,
11
- width: "20",
12
- height: "20",
13
- viewBox: "0 0 20 20",
9
+ }, /*#__PURE__*/ React__default.createElement("span", null, label, " "), /*#__PURE__*/ React__default.createElement("svg", {
10
+ xmlns: "http://www.w3.org/2000/svg",
14
11
  fill: "none",
15
- xmlns: "http://www.w3.org/2000/svg"
12
+ viewBox: "0 0 261 40",
13
+ "aria-label": logoText,
14
+ height: "25px"
16
15
  }, /*#__PURE__*/ React__default.createElement("path", {
17
- d: "M9.28889 9.32076V1H5.97576V4.84842C5.97576 5.55095 5.37953 6.12046 4.64404 6.12046H2V9.32076H9.28889Z"
18
- }), /*#__PURE__*/ React__default.createElement("path", {
19
- d: "M10.7111 9.32076V1H14.0242V4.84842C14.0242 5.55095 14.6205 6.12046 15.356 6.12046H18V9.32076H10.7111Z"
20
- }), /*#__PURE__*/ React__default.createElement("path", {
21
- d: "M9.28889 10.6792V19H5.97576V15.1516C5.97576 14.449 5.37953 13.8795 4.64404 13.8795H2V10.6792H9.28889Z"
16
+ className: modules_b8928cee.stytch,
17
+ d: "M29.7 12.82c0 .8.65 1.44 1.45 1.44h4.72c1.36 0 2.59.8 3.14 2.05l3.64 8.16 3.4-8.1a3.44 3.44 0 0 1 3.18-2.1h3.28v-5.3h3.94v3.85c0 .8.65 1.44 1.45 1.44h2.7v3.22h-4.15v7.61c0 1.55.4 1.95 1.94 1.95h2.06v3.3H56.6c-2.67 0-4.09-1.42-4.09-4.1v-8.76h-1.99c-.44 0-.77.19-.93.52L44.5 29l-.02 1.33c0 2.9-1.57 4.7-4.09 4.7h-6.55v-3.36h4.95c1.51 0 1.95-.07 1.95-1.65v-.83L35.44 18c-.16-.32-.49-.5-.93-.5h-4.8v7.6c0 1.55.39 1.95 1.93 1.95h1.95v3.3h-3.74c-2.68 0-4.1-1.42-4.1-4.1V8.98h3.95v3.84ZM16.72 8.98c4.47 0 6.79 1.78 7.07 5.43h-4.14c-.2-1.61-1.17-2.4-2.98-2.4-1.69 0-2.86 1.01-2.86 2.6s.67 2.32 2.56 2.77l2.47.6c3.63.9 5.26 2.69 5.26 5.8 0 4.17-2.84 6.57-7.43 6.57-4.6 0-7.2-2.11-7.55-6.12h3.98c.25 2.01 1.5 3.03 3.57 3.03 2.06 0 3.4-1.12 3.4-2.85 0-1.63-.83-2.45-2.94-2.93l-2.5-.57c-2.21-.53-4.85-1.97-4.85-5.83 0-3.65 2.8-6.1 6.94-6.1Zm64.68 0v7.4l.26-.32c.92-1.13 1.86-1.78 3.93-1.78 3.51 0 5.53 2.21 5.53 6.07v10h-3.94v-9.51c0-1.2-.34-2.14-.98-2.75a2.62 2.62 0 0 0-2.02-.67c-1.9.12-2.78 1.6-2.78 4.66v8.26h-3.94V8.98h3.94Zm-12.66 5.3c4.23 0 6.74 1.96 7.1 5.52h-3.9c-.3-1.51-1.28-2.22-3.07-2.22h-.26c-2.34 0-3.86 1.86-3.86 4.73s1.51 4.73 3.86 4.73h.26c1.79 0 2.76-.71 3.06-2.22h3.91c-.36 3.56-2.87 5.52-7.1 5.52-4.47 0-7.59-3.3-7.59-8.03 0-4.73 3.12-8.03 7.6-8.03Z"
22
18
  }), /*#__PURE__*/ React__default.createElement("path", {
23
- d: "M10.7111 10.6792V19H14.0242V15.1516C14.0242 14.449 14.6205 13.8795 15.356 13.8795H18V10.6792H10.7111Z"
24
- })), /*#__PURE__*/ React__default.createElement("span", null, label), /*#__PURE__*/ React__default.createElement("span", null, "+"), /*#__PURE__*/ React__default.createElement("svg", {
25
- className: modules_b8928cee.twilio,
26
- xmlns: "http://www.w3.org/2000/svg",
27
- width: "68",
28
- height: "20",
29
- fill: "none",
30
- "aria-label": twilio
31
- }, /*#__PURE__*/ React__default.createElement("g", {
19
+ fill: "currentColor",
20
+ d: "M112.37 25.42v-4.1h-4.1V19h4.1v-4.12h2.47V19h4.07v2.3h-4.07v4.11h-2.47Z"
21
+ }), /*#__PURE__*/ React__default.createElement("g", {
32
22
  clipPath: "url(#a)"
33
23
  }, /*#__PURE__*/ React__default.createElement("path", {
34
- 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"
24
+ className: modules_b8928cee.twilio,
25
+ d: "M239.55 22.64v-.2c0-2.18.9-3.05 2.18-3.05 1.28 0 2.17.87 2.17 3.05v.2c0 2.15-.9 3.02-2.17 3.02-1.28 0-2.18-.87-2.18-3.02Zm-6.64.09c0 4.73 3.51 8.04 8.82 8.04 5.3 0 8.81-3.31 8.81-8.04v-.38c0-4.73-3.5-8.02-8.81-8.02-5.3 0-8.82 3.29-8.82 8.02v.38Zm-7.45-9.53c0 .2.14.35.35.35h5.88c.2 0 .35-.14.35-.35V9.72c0-.2-.14-.35-.34-.35h-5.9c-.2 0-.34.14-.34.35v3.48Zm-.03 16.99c0 .2.14.35.35.35h5.88c.2 0 .35-.15.35-.35V14.94c0-.2-.14-.35-.34-.35h-5.9c-.2 0-.34.15-.34.35V30.2Zm-7.74 0c0 .2.14.35.34.35h5.9c.2 0 .34-.15.34-.35V9.72c0-.2-.14-.35-.35-.35h-5.89c-.2 0-.34.14-.34.35v20.47Zm-7.75-16.99c0 .2.15.35.35.35h5.89c.2 0 .35-.14.35-.35V9.72c0-.2-.15-.35-.35-.35h-5.89c-.2 0-.35.14-.35.35v3.48Zm-20.07 17.34h5.69c.2 0 .29-.1.35-.3l1.85-6.7 1.8 6.7c.06.2.15.3.35.3h5.77c.23 0 .38-.1.44-.3l3.82-14.54v14.49c0 .2.15.35.35.35h5.89c.2 0 .35-.15.35-.35V14.94c0-.2-.15-.34-.35-.34h-11.92c-.2 0-.32.08-.38.32l-1.36 6.56-1.4-6.56c-.02-.2-.16-.32-.37-.32h-5.57c-.2 0-.34.11-.37.32l-1.4 6.62-1.3-6.62c-.06-.24-.18-.32-.38-.32h-9.54V9.63c0-.26-.17-.38-.46-.29L176 11.2a.44.44 0 0 0-.32.43v2.18c0 .61-.32.87-.93.87h-1.24c-.2 0-.35.15-.35.35v4.27c0 .2.15.35.35.35h2.09v5.37c0 3.75 1.36 5.75 5.85 5.75 1.75 0 3.1-.29 3.86-.64.23-.12.3-.26.3-.5v-4.17c0-.24-.21-.35-.5-.2a2.8 2.8 0 0 1-1.19.26c-1.16 0-1.74-.44-1.74-1.9v-3.97h3.05c.2 0 .34-.15.34-.35v-3.72l3.86 14.67c.06.2.2.29.44.29m-36.52-14.87c0-2 1.65-3.69 3.63-3.69a3.7 3.7 0 0 1 3.62 3.69c0 2-1.6 3.6-3.62 3.6a3.6 3.6 0 0 1-3.63-3.6Zm0 8.68a3.63 3.63 0 1 1 7.26 0 3.63 3.63 0 0 1-7.26 0Zm-8.7-8.68c0-2 1.6-3.69 3.63-3.69a3.68 3.68 0 0 1 3.65 3.69c0 2-1.65 3.6-3.66 3.6-2 0-3.62-1.63-3.62-3.6Zm0 8.68a3.6 3.6 0 0 1 3.63-3.63 3.63 3.63 0 1 1-3.62 3.63Zm-4.9-4.38a12.9 12.9 0 0 1 12.9-12.87 12.9 12.9 0 0 1 0 25.78c-7.1 0-12.9-5.83-12.9-12.91Zm12.9-17.43a17.44 17.44 0 0 0-17.48 17.43 17.47 17.47 0 1 0 17.49-17.42Z"
35
26
  })), /*#__PURE__*/ React__default.createElement("defs", null, /*#__PURE__*/ React__default.createElement("clipPath", {
36
27
  id: "a"
37
28
  }, /*#__PURE__*/ React__default.createElement("path", {
38
29
  fill: "#fff",
39
- d: "M0 1.88h53.7v16.24H0z"
30
+ d: "M135.18 2.54h115.44v34.91H135.18z"
40
31
  })))));
41
32
 
42
33
  export { Watermark as default };
@@ -1 +1 @@
1
- {"version":3,"file":"Watermark.mjs","sources":["../../../../../../../../../web/src/ui/components/atoms/Watermark.tsx"],"sourcesContent":["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"],"names":["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"],"mappings":";;;AAGA,MAAMA,SAAAA,GAAY,CAAC,EAAEC,KAAK,EAAEC,MAAM,EAAqC,iBACrEC,cAAA,CAAA,aAAA,CAACC,GAAAA,EAAAA;AAAEC,QAAAA,SAAAA,EAAWC,iBAAOC,SAAS;QAAEC,IAAAA,EAAK,qBAAA;QAAsBC,MAAAA,EAAO,QAAA;QAASC,GAAAA,EAAI;qBAC7EP,cAAA,CAAA,aAAA,CAACQ,KAAAA,EAAAA;AACCN,QAAAA,SAAAA,EAAWC,iBAAOM,MAAM;QACxBC,KAAAA,EAAM,IAAA;QACNC,MAAAA,EAAO,IAAA;QACPC,OAAAA,EAAQ,WAAA;QACRC,IAAAA,EAAK,MAAA;QACLC,KAAAA,EAAM;qBAENd,cAAA,CAAA,aAAA,CAACe,MAAAA,EAAAA;QAAKC,CAAAA,EAAE;sBACRhB,cAAA,CAAA,aAAA,CAACe,MAAAA,EAAAA;QAAKC,CAAAA,EAAE;sBACRhB,cAAA,CAAA,aAAA,CAACe,MAAAA,EAAAA;QAAKC,CAAAA,EAAE;sBACRhB,cAAA,CAAA,aAAA,CAACe,MAAAA,EAAAA;QAAKC,CAAAA,EAAE;AAGV,KAAA,CAAA,CAAA,gBAAAhB,cAAA,CAAA,aAAA,CAACiB,MAAAA,EAAAA,IAAAA,EAAMnB,KAAAA,CAAAA,gBAEPE,cAAA,CAAA,aAAA,CAACiB,MAAAA,EAAAA,IAAAA,EAAK,oBAENjB,cAAA,CAAA,aAAA,CAACQ,KAAAA,EAAAA;AACCN,QAAAA,SAAAA,EAAWC,iBAAOJ,MAAM;QACxBe,KAAAA,EAAM,4BAAA;QACNJ,KAAAA,EAAM,IAAA;QACNC,MAAAA,EAAO,IAAA;QACPE,IAAAA,EAAK,MAAA;QACLK,YAAAA,EAAYnB;qBAEZC,cAAA,CAAA,aAAA,CAACmB,GAAAA,EAAAA;QAAEC,QAAAA,EAAS;qBACVpB,cAAA,CAAA,aAAA,CAACe,MAAAA,EAAAA;QAAKC,CAAAA,EAAE;AAEV,KAAA,CAAA,CAAA,gBAAAhB,cAAA,CAAA,aAAA,CAACqB,4BACCrB,cAAA,CAAA,aAAA,CAACoB,UAAAA,EAAAA;QAASE,EAAAA,EAAG;qBACXtB,cAAA,CAAA,aAAA,CAACe,MAAAA,EAAAA;QAAKF,IAAAA,EAAK,MAAA;QAAOG,CAAAA,EAAE;;;;;"}
1
+ {"version":3,"file":"Watermark.mjs","sources":["../../../../../../../../../web/src/ui/components/atoms/Watermark.tsx"],"sourcesContent":["import React from 'react';\nimport styles from './Watermark.module.css';\n\nconst Watermark = ({ label, logoText }: { label: string; logoText: string }) => (\n <a className={styles.watermark} href=\"https://stytch.com/\" target=\"_blank\" rel=\"noreferrer\">\n <span>{label} </span>\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 261 40\" aria-label={logoText} height=\"25px\">\n <path\n className={styles.stytch}\n d=\"M29.7 12.82c0 .8.65 1.44 1.45 1.44h4.72c1.36 0 2.59.8 3.14 2.05l3.64 8.16 3.4-8.1a3.44 3.44 0 0 1 3.18-2.1h3.28v-5.3h3.94v3.85c0 .8.65 1.44 1.45 1.44h2.7v3.22h-4.15v7.61c0 1.55.4 1.95 1.94 1.95h2.06v3.3H56.6c-2.67 0-4.09-1.42-4.09-4.1v-8.76h-1.99c-.44 0-.77.19-.93.52L44.5 29l-.02 1.33c0 2.9-1.57 4.7-4.09 4.7h-6.55v-3.36h4.95c1.51 0 1.95-.07 1.95-1.65v-.83L35.44 18c-.16-.32-.49-.5-.93-.5h-4.8v7.6c0 1.55.39 1.95 1.93 1.95h1.95v3.3h-3.74c-2.68 0-4.1-1.42-4.1-4.1V8.98h3.95v3.84ZM16.72 8.98c4.47 0 6.79 1.78 7.07 5.43h-4.14c-.2-1.61-1.17-2.4-2.98-2.4-1.69 0-2.86 1.01-2.86 2.6s.67 2.32 2.56 2.77l2.47.6c3.63.9 5.26 2.69 5.26 5.8 0 4.17-2.84 6.57-7.43 6.57-4.6 0-7.2-2.11-7.55-6.12h3.98c.25 2.01 1.5 3.03 3.57 3.03 2.06 0 3.4-1.12 3.4-2.85 0-1.63-.83-2.45-2.94-2.93l-2.5-.57c-2.21-.53-4.85-1.97-4.85-5.83 0-3.65 2.8-6.1 6.94-6.1Zm64.68 0v7.4l.26-.32c.92-1.13 1.86-1.78 3.93-1.78 3.51 0 5.53 2.21 5.53 6.07v10h-3.94v-9.51c0-1.2-.34-2.14-.98-2.75a2.62 2.62 0 0 0-2.02-.67c-1.9.12-2.78 1.6-2.78 4.66v8.26h-3.94V8.98h3.94Zm-12.66 5.3c4.23 0 6.74 1.96 7.1 5.52h-3.9c-.3-1.51-1.28-2.22-3.07-2.22h-.26c-2.34 0-3.86 1.86-3.86 4.73s1.51 4.73 3.86 4.73h.26c1.79 0 2.76-.71 3.06-2.22h3.91c-.36 3.56-2.87 5.52-7.1 5.52-4.47 0-7.59-3.3-7.59-8.03 0-4.73 3.12-8.03 7.6-8.03Z\"\n />\n <path fill=\"currentColor\" d=\"M112.37 25.42v-4.1h-4.1V19h4.1v-4.12h2.47V19h4.07v2.3h-4.07v4.11h-2.47Z\" />\n <g clipPath=\"url(#a)\">\n <path\n className={styles.twilio}\n d=\"M239.55 22.64v-.2c0-2.18.9-3.05 2.18-3.05 1.28 0 2.17.87 2.17 3.05v.2c0 2.15-.9 3.02-2.17 3.02-1.28 0-2.18-.87-2.18-3.02Zm-6.64.09c0 4.73 3.51 8.04 8.82 8.04 5.3 0 8.81-3.31 8.81-8.04v-.38c0-4.73-3.5-8.02-8.81-8.02-5.3 0-8.82 3.29-8.82 8.02v.38Zm-7.45-9.53c0 .2.14.35.35.35h5.88c.2 0 .35-.14.35-.35V9.72c0-.2-.14-.35-.34-.35h-5.9c-.2 0-.34.14-.34.35v3.48Zm-.03 16.99c0 .2.14.35.35.35h5.88c.2 0 .35-.15.35-.35V14.94c0-.2-.14-.35-.34-.35h-5.9c-.2 0-.34.15-.34.35V30.2Zm-7.74 0c0 .2.14.35.34.35h5.9c.2 0 .34-.15.34-.35V9.72c0-.2-.14-.35-.35-.35h-5.89c-.2 0-.34.14-.34.35v20.47Zm-7.75-16.99c0 .2.15.35.35.35h5.89c.2 0 .35-.14.35-.35V9.72c0-.2-.15-.35-.35-.35h-5.89c-.2 0-.35.14-.35.35v3.48Zm-20.07 17.34h5.69c.2 0 .29-.1.35-.3l1.85-6.7 1.8 6.7c.06.2.15.3.35.3h5.77c.23 0 .38-.1.44-.3l3.82-14.54v14.49c0 .2.15.35.35.35h5.89c.2 0 .35-.15.35-.35V14.94c0-.2-.15-.34-.35-.34h-11.92c-.2 0-.32.08-.38.32l-1.36 6.56-1.4-6.56c-.02-.2-.16-.32-.37-.32h-5.57c-.2 0-.34.11-.37.32l-1.4 6.62-1.3-6.62c-.06-.24-.18-.32-.38-.32h-9.54V9.63c0-.26-.17-.38-.46-.29L176 11.2a.44.44 0 0 0-.32.43v2.18c0 .61-.32.87-.93.87h-1.24c-.2 0-.35.15-.35.35v4.27c0 .2.15.35.35.35h2.09v5.37c0 3.75 1.36 5.75 5.85 5.75 1.75 0 3.1-.29 3.86-.64.23-.12.3-.26.3-.5v-4.17c0-.24-.21-.35-.5-.2a2.8 2.8 0 0 1-1.19.26c-1.16 0-1.74-.44-1.74-1.9v-3.97h3.05c.2 0 .34-.15.34-.35v-3.72l3.86 14.67c.06.2.2.29.44.29m-36.52-14.87c0-2 1.65-3.69 3.63-3.69a3.7 3.7 0 0 1 3.62 3.69c0 2-1.6 3.6-3.62 3.6a3.6 3.6 0 0 1-3.63-3.6Zm0 8.68a3.63 3.63 0 1 1 7.26 0 3.63 3.63 0 0 1-7.26 0Zm-8.7-8.68c0-2 1.6-3.69 3.63-3.69a3.68 3.68 0 0 1 3.65 3.69c0 2-1.65 3.6-3.66 3.6-2 0-3.62-1.63-3.62-3.6Zm0 8.68a3.6 3.6 0 0 1 3.63-3.63 3.63 3.63 0 1 1-3.62 3.63Zm-4.9-4.38a12.9 12.9 0 0 1 12.9-12.87 12.9 12.9 0 0 1 0 25.78c-7.1 0-12.9-5.83-12.9-12.91Zm12.9-17.43a17.44 17.44 0 0 0-17.48 17.43 17.47 17.47 0 1 0 17.49-17.42Z\"\n />\n </g>\n <defs>\n <clipPath id=\"a\">\n <path fill=\"#fff\" d=\"M135.18 2.54h115.44v34.91H135.18z\" />\n </clipPath>\n </defs>\n </svg>\n </a>\n);\n\nexport default Watermark;\n"],"names":["Watermark","label","logoText","React","a","className","styles","watermark","href","target","rel","span","svg","xmlns","fill","viewBox","aria-label","height","path","stytch","d","g","clipPath","twilio","defs","id"],"mappings":";;;AAGA,MAAMA,SAAAA,GAAY,CAAC,EAAEC,KAAK,EAAEC,QAAQ,EAAuC,iBACzEC,cAAA,CAAA,aAAA,CAACC,GAAAA,EAAAA;AAAEC,QAAAA,SAAAA,EAAWC,iBAAOC,SAAS;QAAEC,IAAAA,EAAK,qBAAA;QAAsBC,MAAAA,EAAO,QAAA;QAASC,GAAAA,EAAI;qBAC7EP,cAAA,CAAA,aAAA,CAACQ,MAAAA,EAAAA,IAAAA,EAAMV,KAAAA,EAAM,GAAA,CAAA,gBACbE,cAAA,CAAA,aAAA,CAACS,KAAAA,EAAAA;QAAIC,KAAAA,EAAM,4BAAA;QAA6BC,IAAAA,EAAK,MAAA;QAAOC,OAAAA,EAAQ,YAAA;QAAaC,YAAAA,EAAYd,QAAAA;QAAUe,MAAAA,EAAO;qBACpGd,cAAA,CAAA,aAAA,CAACe,MAAAA,EAAAA;AACCb,QAAAA,SAAAA,EAAWC,iBAAOa,MAAM;QACxBC,CAAAA,EAAE;sBAEJjB,cAAA,CAAA,aAAA,CAACe,MAAAA,EAAAA;QAAKJ,IAAAA,EAAK,cAAA;QAAeM,CAAAA,EAAE;sBAC5BjB,cAAA,CAAA,aAAA,CAACkB,GAAAA,EAAAA;QAAEC,QAAAA,EAAS;qBACVnB,cAAA,CAAA,aAAA,CAACe,MAAAA,EAAAA;AACCb,QAAAA,SAAAA,EAAWC,iBAAOiB,MAAM;QACxBH,CAAAA,EAAE;AAGN,KAAA,CAAA,CAAA,gBAAAjB,cAAA,CAAA,aAAA,CAACqB,4BACCrB,cAAA,CAAA,aAAA,CAACmB,UAAAA,EAAAA;QAASG,EAAAA,EAAG;qBACXtB,cAAA,CAAA,aAAA,CAACe,MAAAA,EAAAA;QAAKJ,IAAAA,EAAK,MAAA;QAAOM,CAAAA,EAAE;;;;;"}
@@ -1,8 +1,8 @@
1
1
  import { collectCss } from '../../../../../../internal/style-injector/src/index.mjs';
2
2
 
3
- var css = ".Watermark_module_watermark__a805ba24{align-items:center;border-radius:var(--st-rounded-md);color:var(--st-muted-foreground);display:flex;gap:var(--st-spacing-2);padding:var(--st-spacing-2) var(--st-spacing-3);transition:background var(--st-transition-duration),color var(--st-transition-duration)}.Watermark_module_watermark__a805ba24 span{font-size:var(--st-text-sm);line-height:var(--st-line-height-sm)}.Watermark_module_watermark__a805ba24:hover{background:var(--st-accent);color:var(--st-accent-foreground)}.Watermark_module_stytch__a805ba24 path{fill:currentColor}.Watermark_module_twilio__a805ba24 path{fill:hsl(353,84.7%,calc(56.5%*(1 + var(--st-dark-mode, 0))))}";
3
+ var css = ".Watermark_module_watermark__f06cda63{align-items:center;border-radius:var(--st-rounded-md);color:var(--st-muted-foreground);display:flex;gap:var(--st-spacing-2);padding:var(--st-spacing-2) var(--st-spacing-3);transition:background var(--st-transition-duration),color var(--st-transition-duration)}.Watermark_module_watermark__f06cda63 span{font-size:var(--st-text-sm);line-height:var(--st-line-height-sm);margin-right:-6px}.Watermark_module_watermark__f06cda63:hover{background:var(--st-accent);color:var(--st-accent-foreground)}.Watermark_module_stytch__f06cda63{fill:var(--st-foreground)}.Watermark_module_twilio__f06cda63{fill:hsl(353,84.7%,calc(56.5%*(1 + var(--st-dark-mode, 0))))}";
4
4
  collectCss(css);
5
- var modules_b8928cee = {"watermark":"Watermark_module_watermark__a805ba24 inputBase_module_focusRing__06c14ae4","stytch":"Watermark_module_stytch__a805ba24","twilio":"Watermark_module_twilio__a805ba24"};
5
+ var modules_b8928cee = {"watermark":"Watermark_module_watermark__f06cda63 inputBase_module_focusRing__06c14ae4","stytch":"Watermark_module_stytch__f06cda63","twilio":"Watermark_module_twilio__f06cda63"};
6
6
 
7
7
  export { css, modules_b8928cee as default };
8
8
  //# sourceMappingURL=Watermark.module.css.mjs.map
@@ -1,7 +1,7 @@
1
1
  import React__default from 'react';
2
2
  import Typography from '../atoms/Typography.mjs';
3
3
  import modules_35eb8564 from './Badge.module.css.mjs';
4
- import classNames from '../../../../../../_virtual/index3.mjs';
4
+ import classNames from '../../../../../../_virtual/index.mjs';
5
5
 
6
6
  const Badge = ({ className, children })=>/*#__PURE__*/ React__default.createElement("div", {
7
7
  className: classNames(modules_35eb8564.badge, className)
@@ -16,7 +16,7 @@ const EmailInput = ({ email, setEmail, hasPasskeys = false, ...additionalProps }
16
16
  message: "example@email.com"
17
17
  }),
18
18
  type: "email",
19
- autoComplete: hasPasskeys ? 'username webauthn' : 'email username',
19
+ autoComplete: hasPasskeys ? 'username webauthn' : 'email',
20
20
  value: email,
21
21
  onChange: (e)=>setEmail(e.target.value),
22
22
  required: true,
@@ -1 +1 @@
1
- {"version":3,"file":"EmailInput.mjs","sources":["../../../../../../../../../web/src/ui/components/molecules/EmailInput.tsx"],"sourcesContent":["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"],"names":["EmailInput","email","setEmail","hasPasskeys","additionalProps","useLingui","React","Input","id","label","placeholder","type","autoComplete","value","onChange","e","target","required","passwordManagerDisableAutofillProps"],"mappings":";;;;;AAKA,MAAMA,UAAAA,GAAa,CAAC,EAClBC,KAAK,EACLC,QAAQ,EACRC,WAAAA,GAAc,KAAK,EACnB,GAAGC,eAAAA,EAUJ,GAAA;AACC,IAAA,MAAM,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,GAAA,EAAA,GAAQC,SAAAA,EAAAA;AACd,IAAA,qBACEC,cAAA,CAAA,aAAA,CAACC,KAAAA,EAAAA;QACCC,EAAAA,EAAG,OAAA;QACHC,KAAK,EAAA,OAAA,CAAA,CAAA,CAAA;;;;QACLC,WAAW,EAAA,OAAA,CAAA,CAAA,CAAA;;;;QACXC,IAAAA,EAAK,OAAA;AACLC,QAAAA,YAAAA,EAAcT,cAAc,mBAAA,GAAsB,gBAAA;QAClDU,KAAAA,EAAOZ,KAAAA;AACPa,QAAAA,QAAAA,EAAU,CAACC,CAAAA,GAAMb,QAAAA,CAASa,CAAAA,CAAEC,MAAM,CAACH,KAAK,CAAA;QACxCI,QAAAA,EAAAA,IAAAA;QAGC,GAAId,WAAAA,GAAce,mCAAAA,GAAsC,EAAE;AAC1D,QAAA,GAAGd;;AAGV;;;;"}
1
+ {"version":3,"file":"EmailInput.mjs","sources":["../../../../../../../../../web/src/ui/components/molecules/EmailInput.tsx"],"sourcesContent":["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'}\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"],"names":["EmailInput","email","setEmail","hasPasskeys","additionalProps","useLingui","React","Input","id","label","placeholder","type","autoComplete","value","onChange","e","target","required","passwordManagerDisableAutofillProps"],"mappings":";;;;;AAKA,MAAMA,UAAAA,GAAa,CAAC,EAClBC,KAAK,EACLC,QAAQ,EACRC,WAAAA,GAAc,KAAK,EACnB,GAAGC,eAAAA,EAUJ,GAAA;AACC,IAAA,MAAM,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,GAAA,EAAA,GAAQC,SAAAA,EAAAA;AACd,IAAA,qBACEC,cAAA,CAAA,aAAA,CAACC,KAAAA,EAAAA;QACCC,EAAAA,EAAG,OAAA;QACHC,KAAK,EAAA,OAAA,CAAA,CAAA,CAAA;;;;QACLC,WAAW,EAAA,OAAA,CAAA,CAAA,CAAA;;;;QACXC,IAAAA,EAAK,OAAA;AACLC,QAAAA,YAAAA,EAAcT,cAAc,mBAAA,GAAsB,OAAA;QAClDU,KAAAA,EAAOZ,KAAAA;AACPa,QAAAA,QAAAA,EAAU,CAACC,CAAAA,GAAMb,QAAAA,CAASa,CAAAA,CAAEC,MAAM,CAACH,KAAK,CAAA;QACxCI,QAAAA,EAAAA,IAAAA;QAGC,GAAId,WAAAA,GAAce,mCAAAA,GAAsC,EAAE;AAC1D,QAAA,GAAGd;;AAGV;;;;"}
@@ -1,5 +1,6 @@
1
- import React__default, { useMemo } from 'react';
1
+ import React__default, { useMemo, useState } from 'react';
2
2
  import Typography from '../atoms/Typography.mjs';
3
+ import { useMountEffect } from '../../hooks/useMountEffect.mjs';
3
4
 
4
5
  const DASHBOARD_REGEX = /https:\/\/stytch\.com\/[#a-zA-Z0-9/-]+/g;
5
6
  const mapURLsToLinks = (str)=>{
@@ -26,11 +27,18 @@ const ErrorText = ({ children, ...props })=>{
26
27
  const tokens = useMemo(()=>mapURLsToLinks(children), [
27
28
  children
28
29
  ]);
29
- return /*#__PURE__*/ React__default.createElement(Typography, {
30
+ // HACK: Screen readers only read elements in aria-live regions if they are new or changed. We first render the
31
+ // aria-live div, then render the inner children second so the error message is "new" and therefore read out
32
+ const [render, setRender] = useState(false);
33
+ useMountEffect(()=>setRender(true));
34
+ return /*#__PURE__*/ React__default.createElement("div", {
35
+ "aria-live": "polite"
36
+ }, render && /*#__PURE__*/ React__default.createElement(Typography, {
30
37
  ...props,
31
38
  variant: "helper",
32
- color: "destructive"
33
- }, tokens);
39
+ color: "destructive",
40
+ key: children
41
+ }, tokens));
34
42
  };
35
43
 
36
44
  export { ErrorText as default };
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorText.mjs","sources":["../../../../../../../../../web/src/ui/components/molecules/ErrorText.tsx"],"sourcesContent":["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"],"names":["DASHBOARD_REGEX","mapURLsToLinks","str","nonLinkChunks","split","linkChunks","Array","from","matchAll","map","el","chunkResults","length","push","shift","chunk","React","a","key","String","href","target","rel","ErrorText","children","props","tokens","useMemo","Typography","variant","color"],"mappings":";;;AAGA,MAAMA,eAAAA,GAAkB,yCAAA;AAExB,MAAMC,iBAAiB,CAACC,GAAAA,GAAAA;IACtB,MAAMC,aAAAA,GAAgBD,GAAAA,CAAIE,KAAK,CAACJ,eAAAA,CAAAA;AAChC,IAAA,MAAMK,UAAAA,GAAaC,KAAAA,CAAMC,IAAI,CAACL,IAAIM,QAAQ,CAACR,eAAAA,CAAAA,CAAAA,CAAkBS,GAAG,CAAC,CAACC,EAAAA,GAAOA,EAAE,CAAC,CAAA,CAAE,CAAA;AAE9E,IAAA,MAAMC,eAA4B,EAAE;AAEpC,IAAA,MAAOR,aAAAA,CAAcS,MAAM,IAAIP,UAAAA,CAAWO,MAAM,CAAE;QAChD,IAAIT,aAAAA,CAAcS,MAAM,EAAE;YACxBD,YAAAA,CAAaE,IAAI,CAACV,aAAAA,CAAcW,KAAK,EAAA,CAAA;AACvC,QAAA;QACA,IAAIT,UAAAA,CAAWO,MAAM,EAAE;YACrB,MAAMG,KAAAA,GAAQV,WAAWS,KAAK,EAAA;YAE9BH,YAAAA,CAAaE,IAAI,eACfG,cAAA,CAAA,aAAA,CAACC,GAAAA,EAAAA;AAAEC,gBAAAA,GAAAA,EAAKH,KAAAA,GAAQ,IAAA,GAAOI,MAAAA,CAAOd,UAAAA,CAAWO,MAAM,CAAA;gBAAGQ,IAAAA,EAAML,KAAAA;gBAAOM,MAAAA,EAAO,QAAA;gBAASC,GAAAA,EAAI;AAChFP,aAAAA,EAAAA,KAAAA,CAAAA,CAAAA;AAGP,QAAA;AACF,IAAA;IAEA,OAAOJ,YAAAA;AACT,CAAA;AAIA,MAAMY,YAAY,CAAC,EAAEC,QAAQ,EAAE,GAAGC,KAAAA,EAAuB,GAAA;AACvD,IAAA,MAAMC,MAAAA,GAASC,OAAAA,CAAQ,IAAM1B,cAAAA,CAAeuB,QAAAA,CAAAA,EAAW;AAACA,QAAAA;AAAS,KAAA,CAAA;AACjE,IAAA,qBACER,cAAA,CAAA,aAAA,CAACY,UAAAA,EAAAA;AAAY,QAAA,GAAGH,KAAK;QAAEI,OAAAA,EAAQ,QAAA;QAASC,KAAAA,EAAM;AAC3CJ,KAAAA,EAAAA,MAAAA,CAAAA;AAGP;;;;"}
1
+ {"version":3,"file":"ErrorText.mjs","sources":["../../../../../../../../../web/src/ui/components/molecules/ErrorText.tsx"],"sourcesContent":["import React, { HTMLAttributes, ReactNode, useMemo, useState } from 'react';\nimport Typography from '../atoms/Typography';\nimport { useMountEffect } from '../../hooks/useMountEffect';\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\n // HACK: Screen readers only read elements in aria-live regions if they are new or changed. We first render the\n // aria-live div, then render the inner children second so the error message is \"new\" and therefore read out\n const [render, setRender] = useState(false);\n useMountEffect(() => setRender(true));\n\n return (\n <div aria-live=\"polite\">\n {render && (\n <Typography {...props} variant=\"helper\" color=\"destructive\" key={children}>\n {tokens}\n </Typography>\n )}\n </div>\n );\n};\n\nexport default ErrorText;\n"],"names":["DASHBOARD_REGEX","mapURLsToLinks","str","nonLinkChunks","split","linkChunks","Array","from","matchAll","map","el","chunkResults","length","push","shift","chunk","React","a","key","String","href","target","rel","ErrorText","children","props","tokens","useMemo","render","setRender","useState","useMountEffect","div","aria-live","Typography","variant","color"],"mappings":";;;;AAIA,MAAMA,eAAAA,GAAkB,yCAAA;AAExB,MAAMC,iBAAiB,CAACC,GAAAA,GAAAA;IACtB,MAAMC,aAAAA,GAAgBD,GAAAA,CAAIE,KAAK,CAACJ,eAAAA,CAAAA;AAChC,IAAA,MAAMK,UAAAA,GAAaC,KAAAA,CAAMC,IAAI,CAACL,IAAIM,QAAQ,CAACR,eAAAA,CAAAA,CAAAA,CAAkBS,GAAG,CAAC,CAACC,EAAAA,GAAOA,EAAE,CAAC,CAAA,CAAE,CAAA;AAE9E,IAAA,MAAMC,eAA4B,EAAE;AAEpC,IAAA,MAAOR,aAAAA,CAAcS,MAAM,IAAIP,UAAAA,CAAWO,MAAM,CAAE;QAChD,IAAIT,aAAAA,CAAcS,MAAM,EAAE;YACxBD,YAAAA,CAAaE,IAAI,CAACV,aAAAA,CAAcW,KAAK,EAAA,CAAA;AACvC,QAAA;QACA,IAAIT,UAAAA,CAAWO,MAAM,EAAE;YACrB,MAAMG,KAAAA,GAAQV,WAAWS,KAAK,EAAA;YAE9BH,YAAAA,CAAaE,IAAI,eACfG,cAAA,CAAA,aAAA,CAACC,GAAAA,EAAAA;AAAEC,gBAAAA,GAAAA,EAAKH,KAAAA,GAAQ,IAAA,GAAOI,MAAAA,CAAOd,UAAAA,CAAWO,MAAM,CAAA;gBAAGQ,IAAAA,EAAML,KAAAA;gBAAOM,MAAAA,EAAO,QAAA;gBAASC,GAAAA,EAAI;AAChFP,aAAAA,EAAAA,KAAAA,CAAAA,CAAAA;AAGP,QAAA;AACF,IAAA;IAEA,OAAOJ,YAAAA;AACT,CAAA;AAIA,MAAMY,YAAY,CAAC,EAAEC,QAAQ,EAAE,GAAGC,KAAAA,EAAuB,GAAA;AACvD,IAAA,MAAMC,MAAAA,GAASC,OAAAA,CAAQ,IAAM1B,cAAAA,CAAeuB,QAAAA,CAAAA,EAAW;AAACA,QAAAA;AAAS,KAAA,CAAA;;;AAIjE,IAAA,MAAM,CAACI,MAAAA,EAAQC,SAAAA,CAAU,GAAGC,QAAAA,CAAS,KAAA,CAAA;AACrCC,IAAAA,cAAAA,CAAe,IAAMF,SAAAA,CAAU,IAAA,CAAA,CAAA;AAE/B,IAAA,qBACEb,cAAA,CAAA,aAAA,CAACgB,KAAAA,EAAAA;QAAIC,WAAAA,EAAU;AACZL,KAAAA,EAAAA,MAAAA,kBACCZ,cAAA,CAAA,aAAA,CAACkB,UAAAA,EAAAA;AAAY,QAAA,GAAGT,KAAK;QAAEU,OAAAA,EAAQ,QAAA;QAASC,KAAAA,EAAM,aAAA;QAAclB,GAAAA,EAAKM;AAC9DE,KAAAA,EAAAA,MAAAA,CAAAA,CAAAA;AAKX;;;;"}
@@ -1,5 +1,5 @@
1
1
  import React__default, { forwardRef, useRef, useState, useLayoutEffect } from 'react';
2
- import classNames from '../../../../../../_virtual/index3.mjs';
2
+ import classNames from '../../../../../../_virtual/index.mjs';
3
3
  import { useUniqueId } from '../../../utils/uniqueId.mjs';
4
4
  import ErrorText from './ErrorText.mjs';
5
5
  import VisuallyHidden from '../atoms/VisuallyHidden.mjs';
@@ -52,7 +52,8 @@ import { usePresentation } from '../PresentationConfig.mjs';
52
52
  className: modules_d963aab3.action
53
53
  }, action)), error && /*#__PURE__*/ React__default.createElement(ErrorText, {
54
54
  id: errorId,
55
- className: modules_d963aab3.error
55
+ className: modules_d963aab3.error,
56
+ "aria-live": "polite"
56
57
  }, error));
57
58
  });
58
59
 
@@ -1 +1 @@
1
- {"version":3,"file":"Input.mjs","sources":["../../../../../../../../../web/src/ui/components/molecules/Input.tsx"],"sourcesContent":["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"],"names":["Input","forwardRef","className","label","labelText","hideLabel","action","id","idProp","containerClassName","error","props","ref","presentation","usePresentation","options","inputIdSuffix","errorId","useUniqueId","actionRef","useRef","actionWidth","setActionWidth","useState","useLayoutEffect","current","getBoundingClientRect","width","React","styles","htmlFor","div","classNames","container","VisuallyHidden","inputWrapper","input","style","paddingInlineEnd","undefined","ErrorText"],"mappings":";;;;;;;;AAiBA;;;;IAKA,MAAMA,sBAAQC,UAAAA,CACZ,CAAC,EAAEC,SAAS,EAAEC,KAAAA,EAAOC,SAAS,EAAEC,SAAS,EAAEC,MAAM,EAAEC,EAAAA,EAAIC,MAAM,EAAEC,kBAAkB,EAAEC,KAAK,EAAE,GAAGC,KAAAA,EAAO,EAAEC,GAAAA,GAAAA;AACpG,IAAA,MAAMC,YAAAA,GAAeC,eAAAA,EAAAA;AACrB,IAAA,MAAMP,KAAKC,MAAAA,IAAUK,aAAaE,OAAO,EAAEC,iBAAiB,EAAC,CAAA;AAE7D,IAAA,MAAMC,OAAAA,GAAUC,WAAAA,EAAAA;;;AAIhB,IAAA,MAAMC,YAAYC,MAAAA,CAAuB,IAAA,CAAA;IACzC,MAAM,CAACC,WAAAA,EAAaC,cAAAA,CAAe,GAAGC,QAAAA,EAAAA;IACtCC,eAAAA,CAAgB,IAAA;QACd,IAAIL,SAAAA,CAAUM,OAAO,EAAE;;AAErBH,YAAAA,cAAAA,CAAeH,SAAAA,CAAUM,OAAO,CAACC,qBAAqB,GAAGC,KAAK,CAAA;AAChE,QAAA;IACF,CAAA,EAAG;AAACrB,QAAAA;AAAO,KAAA,CAAA;AAEX,IAAA,MAAMH,sBACJyB,cAAA,CAAA,aAAA,CAACzB,OAAAA,EAAAA;AAAMD,QAAAA,SAAAA,EAAW2B,iBAAO1B,KAAK;QAAE2B,OAAAA,EAASvB;AACtCH,KAAAA,EAAAA,SAAAA,CAAAA;AAIL,IAAA,IAAIM,KAAAA,EAAO;QACTC,KAAK,CAAC,eAAe,GAAG,IAAA;QACxBA,KAAK,CAAC,oBAAoB,GAAGM,OAAAA;AAC/B,IAAA;AAEA,IAAA,qBACEW,cAAA,CAAA,aAAA,CAACG,KAAAA,EAAAA;QAAI7B,SAAAA,EAAW8B,UAAAA,CAAWvB,kBAAAA,EAAoBoB,gBAAAA,CAAOI,SAAS;AAC5D5B,KAAAA,EAAAA,SAAAA,iBAAYuB,cAAA,CAAA,aAAA,CAACM,cAAAA,EAAAA,IAAAA,EAAgB/B,KAAAA,CAAAA,GAA0BA,KAAAA,gBAExDyB,cAAA,CAAA,aAAA,CAACG,KAAAA,EAAAA;AAAI7B,QAAAA,SAAAA,EAAW2B,iBAAOM;qBACrBP,cAAA,CAAA,aAAA,CAACQ,OAAAA,EAAAA;QACCxB,GAAAA,EAAKA,GAAAA;QACLL,EAAAA,EAAIA,EAAAA;QACJL,SAAAA,EAAW8B,UAAAA,CAAW9B,SAAAA,EAAW2B,gBAAAA,CAAOO,KAAK,CAAA;AAC7CC,QAAAA,KAAAA,EACEhB,WAAAA,GACI;;AAEEiB,YAAAA,gBAAAA,EAAkB,CAAC,KAAK,EAAEjB,WAAAA,CAAY,yBAAyB;SACjE,GACAkB,SAAAA;AAEL,QAAA,GAAG5B;AAELL,KAAAA,CAAAA,EAAAA,MAAAA,kBACCsB,cAAA,CAAA,aAAA,CAACG,KAAAA,EAAAA;QAAInB,GAAAA,EAAKO,SAAAA;AAAWjB,QAAAA,SAAAA,EAAW2B,iBAAOvB;AACpCA,KAAAA,EAAAA,MAAAA,CAAAA,CAAAA,EAKNI,uBACCkB,cAAA,CAAA,aAAA,CAACY,SAAAA,EAAAA;QAAUjC,EAAAA,EAAIU,OAAAA;AAASf,QAAAA,SAAAA,EAAW2B,iBAAOnB;AACvCA,KAAAA,EAAAA,KAAAA,CAAAA,CAAAA;AAKX,CAAA;;;;"}
1
+ {"version":3,"file":"Input.mjs","sources":["../../../../../../../../../web/src/ui/components/molecules/Input.tsx"],"sourcesContent":["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} aria-live=\"polite\">\n {error}\n </ErrorText>\n )}\n </div>\n );\n },\n);\n\nexport default Input;\n"],"names":["Input","forwardRef","className","label","labelText","hideLabel","action","id","idProp","containerClassName","error","props","ref","presentation","usePresentation","options","inputIdSuffix","errorId","useUniqueId","actionRef","useRef","actionWidth","setActionWidth","useState","useLayoutEffect","current","getBoundingClientRect","width","React","styles","htmlFor","div","classNames","container","VisuallyHidden","inputWrapper","input","style","paddingInlineEnd","undefined","ErrorText","aria-live"],"mappings":";;;;;;;;AAiBA;;;;IAKA,MAAMA,sBAAQC,UAAAA,CACZ,CAAC,EAAEC,SAAS,EAAEC,KAAAA,EAAOC,SAAS,EAAEC,SAAS,EAAEC,MAAM,EAAEC,EAAAA,EAAIC,MAAM,EAAEC,kBAAkB,EAAEC,KAAK,EAAE,GAAGC,KAAAA,EAAO,EAAEC,GAAAA,GAAAA;AACpG,IAAA,MAAMC,YAAAA,GAAeC,eAAAA,EAAAA;AACrB,IAAA,MAAMP,KAAKC,MAAAA,IAAUK,aAAaE,OAAO,EAAEC,iBAAiB,EAAC,CAAA;AAE7D,IAAA,MAAMC,OAAAA,GAAUC,WAAAA,EAAAA;;;AAIhB,IAAA,MAAMC,YAAYC,MAAAA,CAAuB,IAAA,CAAA;IACzC,MAAM,CAACC,WAAAA,EAAaC,cAAAA,CAAe,GAAGC,QAAAA,EAAAA;IACtCC,eAAAA,CAAgB,IAAA;QACd,IAAIL,SAAAA,CAAUM,OAAO,EAAE;;AAErBH,YAAAA,cAAAA,CAAeH,SAAAA,CAAUM,OAAO,CAACC,qBAAqB,GAAGC,KAAK,CAAA;AAChE,QAAA;IACF,CAAA,EAAG;AAACrB,QAAAA;AAAO,KAAA,CAAA;AAEX,IAAA,MAAMH,sBACJyB,cAAA,CAAA,aAAA,CAACzB,OAAAA,EAAAA;AAAMD,QAAAA,SAAAA,EAAW2B,iBAAO1B,KAAK;QAAE2B,OAAAA,EAASvB;AACtCH,KAAAA,EAAAA,SAAAA,CAAAA;AAIL,IAAA,IAAIM,KAAAA,EAAO;QACTC,KAAK,CAAC,eAAe,GAAG,IAAA;QACxBA,KAAK,CAAC,oBAAoB,GAAGM,OAAAA;AAC/B,IAAA;AAEA,IAAA,qBACEW,cAAA,CAAA,aAAA,CAACG,KAAAA,EAAAA;QAAI7B,SAAAA,EAAW8B,UAAAA,CAAWvB,kBAAAA,EAAoBoB,gBAAAA,CAAOI,SAAS;AAC5D5B,KAAAA,EAAAA,SAAAA,iBAAYuB,cAAA,CAAA,aAAA,CAACM,cAAAA,EAAAA,IAAAA,EAAgB/B,KAAAA,CAAAA,GAA0BA,KAAAA,gBAExDyB,cAAA,CAAA,aAAA,CAACG,KAAAA,EAAAA;AAAI7B,QAAAA,SAAAA,EAAW2B,iBAAOM;qBACrBP,cAAA,CAAA,aAAA,CAACQ,OAAAA,EAAAA;QACCxB,GAAAA,EAAKA,GAAAA;QACLL,EAAAA,EAAIA,EAAAA;QACJL,SAAAA,EAAW8B,UAAAA,CAAW9B,SAAAA,EAAW2B,gBAAAA,CAAOO,KAAK,CAAA;AAC7CC,QAAAA,KAAAA,EACEhB,WAAAA,GACI;;AAEEiB,YAAAA,gBAAAA,EAAkB,CAAC,KAAK,EAAEjB,WAAAA,CAAY,yBAAyB;SACjE,GACAkB,SAAAA;AAEL,QAAA,GAAG5B;AAELL,KAAAA,CAAAA,EAAAA,MAAAA,kBACCsB,cAAA,CAAA,aAAA,CAACG,KAAAA,EAAAA;QAAInB,GAAAA,EAAKO,SAAAA;AAAWjB,QAAAA,SAAAA,EAAW2B,iBAAOvB;AACpCA,KAAAA,EAAAA,MAAAA,CAAAA,CAAAA,EAKNI,uBACCkB,cAAA,CAAA,aAAA,CAACY,SAAAA,EAAAA;QAAUjC,EAAAA,EAAIU,OAAAA;AAASf,QAAAA,SAAAA,EAAW2B,iBAAOnB,KAAK;QAAE+B,WAAAA,EAAU;AACxD/B,KAAAA,EAAAA,KAAAA,CAAAA,CAAAA;AAKX,CAAA;;;;"}
@@ -1,6 +1,6 @@
1
1
  import React__default, { useRef, useState, useEffect, useMemo } from 'react';
2
2
  import { useLingui } from '../../../../../../node_modules/@lingui/react/dist/index.mjs';
3
- import classNames from '../../../../../../_virtual/index3.mjs';
3
+ import classNames from '../../../../../../_virtual/index.mjs';
4
4
  import Watermark from '../atoms/Watermark.mjs';
5
5
  import Column from '../atoms/Column.mjs';
6
6
  import { ToastContainer } from '../atoms/Toast.mjs';
@@ -23,12 +23,12 @@ const MainContainer = ({ children, displayWatermark, theme })=>{
23
23
  className: modules_852c89cd.watermarkContainer
24
24
  }, /*#__PURE__*/ React__default.createElement(Watermark, {
25
25
  label: $__i18n._({
26
- id: "watermark.altText",
27
- message: "Powered by Stytch"
26
+ id: "watermark.poweredBy",
27
+ message: "Powered by"
28
28
  }),
29
- twilio: $__i18n._({
30
- id: "watermark.twilio",
31
- message: "Twilio"
29
+ logoText: $__i18n._({
30
+ id: "watermark.altText",
31
+ message: "Stytch + Twilio"
32
32
  })
33
33
  })), /*#__PURE__*/ React__default.createElement(ToastContainer, null));
34
34
  };
@@ -1 +1 @@
1
- {"version":3,"file":"MainContainer.mjs","sources":["../../../../../../../../../web/src/ui/components/molecules/MainContainer.tsx"],"sourcesContent":["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"],"names":["MainContainer","children","displayWatermark","theme","useLingui","ref","useRef","className","style","useRootStyles","React","Column","gap","classNames","styles","container","div","watermarkContainer","Watermark","label","twilio","ToastContainer","rawBreakpoint","breakpoint","setBreakpoint","useState","useEffect","parseCssVar","current","isMobile","useMediaQuery","themeVariables","useMemo","themeToCssVariables","colorScheme","variables","Object","fromEntries","entries","map","key","value","element","replaced","replace","r","variable","defaultValue","match","split","s","trim","propertyValue","window","getComputedStyle","getPropertyValue"],"mappings":"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"}
1
+ {"version":3,"file":"MainContainer.mjs","sources":["../../../../../../../../../web/src/ui/components/molecules/MainContainer.tsx"],"sourcesContent":["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.poweredBy', message: 'Powered by' })}\n logoText={t({ id: 'watermark.altText', message: 'Stytch + 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"],"names":["MainContainer","children","displayWatermark","theme","useLingui","ref","useRef","className","style","useRootStyles","React","Column","gap","classNames","styles","container","div","watermarkContainer","Watermark","label","logoText","ToastContainer","rawBreakpoint","breakpoint","setBreakpoint","useState","useEffect","parseCssVar","current","isMobile","useMediaQuery","themeVariables","useMemo","themeToCssVariables","colorScheme","variables","Object","fromEntries","entries","map","key","value","element","replaced","replace","r","variable","defaultValue","match","split","s","trim","propertyValue","window","getComputedStyle","getPropertyValue"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { collectCss } from '../../../../../../internal/style-injector/src/index.mjs';
2
2
 
3
- var css = ".MainContainer_module_container__11af03ef{background-color:var(--st-background);border:1px solid var(--st-container-border);border-radius:var(--st-container-radius);color:var(--st-foreground);max-width:var(--st-container-width);padding:var(--st-spacing-10) var(--st-spacing-9)}.MainContainer_module_watermarkContainer__11af03ef{display:flex;justify-content:center}";
3
+ var css = ".MainContainer_module_container__d1278a0c{background-color:var(--st-background);border:1px solid var(--st-container-border);border-radius:var(--st-container-radius);color:var(--st-foreground);max-width:var(--st-container-width);padding:var(--st-spacing-10) var(--st-spacing-9);width:100%}.MainContainer_module_watermarkContainer__d1278a0c{display:flex;justify-content:center}";
4
4
  collectCss(css);
5
- var modules_852c89cd = {"container":"MainContainer_module_container__11af03ef Root_module_root__942a6873","watermarkContainer":"MainContainer_module_watermarkContainer__11af03ef"};
5
+ var modules_852c89cd = {"container":"MainContainer_module_container__d1278a0c Root_module_root__942a6873","watermarkContainer":"MainContainer_module_watermarkContainer__d1278a0c"};
6
6
 
7
7
  export { css, modules_852c89cd as default };
8
8
  //# sourceMappingURL=MainContainer.module.css.mjs.map