@passflow/react 0.14.0 → 0.15.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 (377) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/README.md +29 -16
  3. package/dist/index.cjs +2 -0
  4. package/dist/index.cjs.map +1 -0
  5. package/dist/index.es.js +143 -143
  6. package/dist/index.es.js.map +1 -1
  7. package/dist/src/components/error/index.d.cts +7 -0
  8. package/dist/src/components/error/index.d.ts +1 -1
  9. package/dist/src/components/error/index.d.ts.map +1 -1
  10. package/dist/src/components/flow/consent/index.d.cts +13 -0
  11. package/dist/src/components/flow/consent/index.d.ts +1 -1
  12. package/dist/src/components/flow/consent/index.d.ts.map +1 -1
  13. package/dist/src/components/flow/consent/screen.d.cts +9 -0
  14. package/dist/src/components/flow/consent/screen.d.ts +2 -2
  15. package/dist/src/components/flow/consent/screen.d.ts.map +1 -1
  16. package/dist/src/components/flow/device-verify/index.d.cts +10 -0
  17. package/dist/src/components/flow/device-verify/index.d.ts +1 -1
  18. package/dist/src/components/flow/device-verify/index.d.ts.map +1 -1
  19. package/dist/src/components/flow/device-verify/screen.d.cts +4 -0
  20. package/dist/src/components/flow/device-verify/screen.d.ts +2 -2
  21. package/dist/src/components/flow/device-verify/screen.d.ts.map +1 -1
  22. package/dist/src/components/flow/index.d.cts +5 -0
  23. package/dist/src/components/flow/index.d.ts +4 -4
  24. package/dist/src/components/flow/index.d.ts.map +1 -1
  25. package/dist/src/components/flow/passflow/index.d.cts +16 -0
  26. package/dist/src/components/flow/passflow/index.d.ts +5 -1
  27. package/dist/src/components/flow/passflow/index.d.ts.map +1 -1
  28. package/dist/src/components/flow/two-factor-setup/index.d.cts +10 -0
  29. package/dist/src/components/flow/two-factor-setup/index.d.ts +2 -2
  30. package/dist/src/components/flow/two-factor-setup/index.d.ts.map +1 -1
  31. package/dist/src/components/flow/two-factor-setup-magic-link/index.d.cts +35 -0
  32. package/dist/src/components/flow/two-factor-setup-magic-link/index.d.ts +2 -2
  33. package/dist/src/components/flow/two-factor-setup-magic-link/index.d.ts.map +1 -1
  34. package/dist/src/components/flow/two-factor-verify/index.d.cts +11 -0
  35. package/dist/src/components/flow/two-factor-verify/index.d.ts +2 -2
  36. package/dist/src/components/flow/two-factor-verify/index.d.ts.map +1 -1
  37. package/dist/src/components/form/forgot-password/forgot-password-success.d.cts +2 -0
  38. package/dist/src/components/form/forgot-password/forgot-password-success.d.ts +1 -1
  39. package/dist/src/components/form/forgot-password/forgot-password-success.d.ts.map +1 -1
  40. package/dist/src/components/form/forgot-password/forgot-password.d.cts +9 -0
  41. package/dist/src/components/form/forgot-password/forgot-password.d.ts +1 -1
  42. package/dist/src/components/form/forgot-password/forgot-password.d.ts.map +1 -1
  43. package/dist/src/components/form/forgot-password/index.d.cts +3 -0
  44. package/dist/src/components/form/forgot-password/index.d.ts +2 -2
  45. package/dist/src/components/form/index.d.cts +10 -0
  46. package/dist/src/components/form/index.d.ts +9 -9
  47. package/dist/src/components/form/index.d.ts.map +1 -1
  48. package/dist/src/components/form/invitation-join/index.d.cts +7 -0
  49. package/dist/src/components/form/invitation-join/index.d.ts +1 -2
  50. package/dist/src/components/form/invitation-join/index.d.ts.map +1 -1
  51. package/dist/src/components/form/reset-password/index.d.cts +9 -0
  52. package/dist/src/components/form/reset-password/index.d.ts +2 -2
  53. package/dist/src/components/form/reset-password/index.d.ts.map +1 -1
  54. package/dist/src/components/form/signin/index.d.cts +15 -0
  55. package/dist/src/components/form/signin/index.d.ts +2 -2
  56. package/dist/src/components/form/signin/index.d.ts.map +1 -1
  57. package/dist/src/components/form/signup/index.d.cts +14 -0
  58. package/dist/src/components/form/signup/index.d.ts +2 -2
  59. package/dist/src/components/form/signup/index.d.ts.map +1 -1
  60. package/dist/src/components/form/two-factor-challenge/index.d.cts +10 -0
  61. package/dist/src/components/form/two-factor-challenge/index.d.ts +1 -1
  62. package/dist/src/components/form/two-factor-challenge/index.d.ts.map +1 -1
  63. package/dist/src/components/form/two-factor-challenge/method-selector.d.cts +12 -0
  64. package/dist/src/components/form/two-factor-challenge/method-selector.d.ts +2 -2
  65. package/dist/src/components/form/two-factor-setup/index.d.cts +2 -0
  66. package/dist/src/components/form/two-factor-setup/index.d.ts +1 -1
  67. package/dist/src/components/form/two-factor-setup/two-factor-setup-form.d.cts +9 -0
  68. package/dist/src/components/form/two-factor-setup/two-factor-setup-form.d.ts +1 -1
  69. package/dist/src/components/form/two-factor-setup/two-factor-setup-form.d.ts.map +1 -1
  70. package/dist/src/components/form/two-factor-verify/index.d.cts +3 -0
  71. package/dist/src/components/form/two-factor-verify/index.d.ts +2 -2
  72. package/dist/src/components/form/two-factor-verify/index.d.ts.map +1 -1
  73. package/dist/src/components/form/two-factor-verify/two-factor-recovery-form.d.cts +13 -0
  74. package/dist/src/components/form/two-factor-verify/two-factor-recovery-form.d.ts +1 -1
  75. package/dist/src/components/form/two-factor-verify/two-factor-recovery-form.d.ts.map +1 -1
  76. package/dist/src/components/form/two-factor-verify/two-factor-verify-form.d.cts +16 -0
  77. package/dist/src/components/form/two-factor-verify/two-factor-verify-form.d.ts +1 -1
  78. package/dist/src/components/form/two-factor-verify/two-factor-verify-form.d.ts.map +1 -1
  79. package/dist/src/components/form/verify-challenge/index.d.cts +3 -0
  80. package/dist/src/components/form/verify-challenge/index.d.ts +2 -2
  81. package/dist/src/components/form/verify-challenge/timer-button.d.cts +9 -0
  82. package/dist/src/components/form/verify-challenge/timer-button.d.ts +1 -1
  83. package/dist/src/components/form/verify-challenge/timer-button.d.ts.map +1 -1
  84. package/dist/src/components/form/verify-challenge/verify-challenge-magic-link.d.cts +2 -0
  85. package/dist/src/components/form/verify-challenge/verify-challenge-magic-link.d.ts +1 -1
  86. package/dist/src/components/form/verify-challenge/verify-challenge-magic-link.d.ts.map +1 -1
  87. package/dist/src/components/form/verify-challenge/verify-challenge-otp-manual.d.cts +16 -0
  88. package/dist/src/components/form/verify-challenge/verify-challenge-otp-manual.d.ts +1 -1
  89. package/dist/src/components/form/verify-challenge/verify-challenge-otp-manual.d.ts.map +1 -1
  90. package/dist/src/components/form/verify-challenge/verify-challenge-otp-redirect.d.cts +9 -0
  91. package/dist/src/components/form/verify-challenge/verify-challenge-otp-redirect.d.ts +1 -2
  92. package/dist/src/components/form/verify-challenge/verify-challenge-otp-redirect.d.ts.map +1 -1
  93. package/dist/src/components/form/verify-challenge/verify-challenge-otp.d.cts +12 -0
  94. package/dist/src/components/form/verify-challenge/verify-challenge-otp.d.ts +2 -2
  95. package/dist/src/components/form/verify-challenge/verify-challenge-otp.d.ts.map +1 -1
  96. package/dist/src/components/form/verify-challenge/verify-challenge-success.d.cts +3 -0
  97. package/dist/src/components/form/verify-challenge/verify-challenge-success.d.ts +1 -1
  98. package/dist/src/components/form/verify-challenge/verify-challenge-success.d.ts.map +1 -1
  99. package/dist/src/components/form/wrapper/index.d.cts +2 -0
  100. package/dist/src/components/form/wrapper/index.d.ts +1 -1
  101. package/dist/src/components/passkey/index.d.cts +7 -0
  102. package/dist/src/components/passkey/index.d.ts +1 -1
  103. package/dist/src/components/passkey/index.d.ts.map +1 -1
  104. package/dist/src/components/passkey/passkey-actions.d.cts +13 -0
  105. package/dist/src/components/passkey/passkey-actions.d.ts +1 -1
  106. package/dist/src/components/passkey/passkey-actions.d.ts.map +1 -1
  107. package/dist/src/components/passkey/passkey-dialog.d.cts +10 -0
  108. package/dist/src/components/passkey/passkey-dialog.d.ts +1 -1
  109. package/dist/src/components/passkey/passkey-list.d.cts +9 -0
  110. package/dist/src/components/passkey/passkey-list.d.ts +2 -2
  111. package/dist/src/components/passkey/passkey-list.d.ts.map +1 -1
  112. package/dist/src/components/provider/index.d.cts +4 -0
  113. package/dist/src/components/provider/index.d.ts +3 -3
  114. package/dist/src/components/provider/index.d.ts.map +1 -1
  115. package/dist/src/components/provider/passflow-provider.d.cts +160 -0
  116. package/dist/src/components/provider/passflow-provider.d.ts +4 -4
  117. package/dist/src/components/provider/passflow-provider.d.ts.map +1 -1
  118. package/dist/src/components/provider/upgrade-provider.d.cts +85 -0
  119. package/dist/src/components/provider/upgrade-provider.d.ts +39 -3
  120. package/dist/src/components/provider/upgrade-provider.d.ts.map +1 -1
  121. package/dist/src/components/ui/button/index.d.cts +34 -0
  122. package/dist/src/components/ui/button/index.d.ts +3 -2
  123. package/dist/src/components/ui/button/index.d.ts.map +1 -1
  124. package/dist/src/components/ui/continuing-status/index.d.cts +8 -0
  125. package/dist/src/components/ui/continuing-status/index.d.ts +1 -1
  126. package/dist/src/components/ui/country-flag/index.d.cts +7 -0
  127. package/dist/src/components/ui/country-flag/index.d.ts +1 -1
  128. package/dist/src/components/ui/country-flag/index.d.ts.map +1 -1
  129. package/dist/src/components/ui/country-flag/positions.d.cts +245 -0
  130. package/dist/src/components/ui/country-flag/positions.d.ts +241 -241
  131. package/dist/src/components/ui/country-flag/positions.d.ts.map +1 -1
  132. package/dist/src/components/ui/dialog/index.d.cts +20 -0
  133. package/dist/src/components/ui/dialog/index.d.ts +18 -18
  134. package/dist/src/components/ui/dialog/index.d.ts.map +1 -1
  135. package/dist/src/components/ui/fields/field-otp.d.cts +48 -0
  136. package/dist/src/components/ui/fields/field-otp.d.ts +48 -0
  137. package/dist/src/components/ui/fields/field-otp.d.ts.map +1 -0
  138. package/dist/src/components/ui/fields/field-password.d.cts +13 -0
  139. package/dist/src/components/ui/fields/field-password.d.ts +4 -4
  140. package/dist/src/components/ui/fields/field-password.d.ts.map +1 -1
  141. package/dist/src/components/ui/fields/field-phone.d.cts +11 -0
  142. package/dist/src/components/ui/fields/field-phone.d.ts +1 -1
  143. package/dist/src/components/ui/fields/field-phone.d.ts.map +1 -1
  144. package/dist/src/components/ui/fields/field-text.d.cts +8 -0
  145. package/dist/src/components/ui/fields/field-text.d.ts +3 -3
  146. package/dist/src/components/ui/fields/field-text.d.ts.map +1 -1
  147. package/dist/src/components/ui/fields/index.d.cts +5 -0
  148. package/dist/src/components/ui/fields/index.d.ts +4 -3
  149. package/dist/src/components/ui/fields/index.d.ts.map +1 -1
  150. package/dist/src/components/ui/icon/index.d.cts +11 -0
  151. package/dist/src/components/ui/icon/index.d.ts +1 -1
  152. package/dist/src/components/ui/icon/index.d.ts.map +1 -1
  153. package/dist/src/components/ui/index.d.cts +14 -0
  154. package/dist/src/components/ui/index.d.ts +13 -13
  155. package/dist/src/components/ui/index.d.ts.map +1 -1
  156. package/dist/src/components/ui/link/index.d.cts +11 -0
  157. package/dist/src/components/ui/link/index.d.ts +1 -1
  158. package/dist/src/components/ui/link/index.d.ts.map +1 -1
  159. package/dist/src/components/ui/login-screen/code-entry.d.cts +4 -0
  160. package/dist/src/components/ui/login-screen/code-entry.d.ts +2 -2
  161. package/dist/src/components/ui/login-screen/consent.d.cts +15 -0
  162. package/dist/src/components/ui/login-screen/consent.d.ts +2 -2
  163. package/dist/src/components/ui/login-screen/credentials.d.cts +4 -0
  164. package/dist/src/components/ui/login-screen/credentials.d.ts +2 -2
  165. package/dist/src/components/ui/login-screen/credentials.d.ts.map +1 -1
  166. package/dist/src/components/ui/login-screen/device-approval.d.cts +4 -0
  167. package/dist/src/components/ui/login-screen/device-approval.d.ts +2 -2
  168. package/dist/src/components/ui/login-screen/general-error.d.cts +4 -0
  169. package/dist/src/components/ui/login-screen/general-error.d.ts +2 -2
  170. package/dist/src/components/ui/login-screen/index.d.cts +4 -0
  171. package/dist/src/components/ui/login-screen/index.d.ts +3 -3
  172. package/dist/src/components/ui/login-screen/index.d.ts.map +1 -1
  173. package/dist/src/components/ui/login-screen/invitation.d.cts +4 -0
  174. package/dist/src/components/ui/login-screen/invitation.d.ts +2 -2
  175. package/dist/src/components/ui/login-screen/login-screen.d.cts +4 -0
  176. package/dist/src/components/ui/login-screen/login-screen.d.ts +2 -2
  177. package/dist/src/components/ui/login-screen/passkey-progress.d.cts +4 -0
  178. package/dist/src/components/ui/login-screen/passkey-progress.d.ts +2 -2
  179. package/dist/src/components/ui/login-screen/second-factor.d.cts +4 -0
  180. package/dist/src/components/ui/login-screen/second-factor.d.ts +2 -2
  181. package/dist/src/components/ui/login-screen/shared.d.cts +15 -0
  182. package/dist/src/components/ui/login-screen/shared.d.ts +2 -2
  183. package/dist/src/components/ui/login-screen/shell.d.cts +13 -0
  184. package/dist/src/components/ui/login-screen/shell.d.ts +1 -1
  185. package/dist/src/components/ui/login-screen/shell.d.ts.map +1 -1
  186. package/dist/src/components/ui/login-screen/status.d.cts +4 -0
  187. package/dist/src/components/ui/login-screen/status.d.ts +2 -2
  188. package/dist/src/components/ui/login-screen/types.d.cts +192 -0
  189. package/dist/src/components/ui/login-screen/types.d.ts +2 -2
  190. package/dist/src/components/ui/login-screen/types.d.ts.map +1 -1
  191. package/dist/src/components/ui/popover/index.d.cts +7 -0
  192. package/dist/src/components/ui/popover/index.d.ts +5 -5
  193. package/dist/src/components/ui/popover/index.d.ts.map +1 -1
  194. package/dist/src/components/ui/providers-box/index.d.cts +10 -0
  195. package/dist/src/components/ui/providers-box/index.d.ts +2 -2
  196. package/dist/src/components/ui/providers-box/index.d.ts.map +1 -1
  197. package/dist/src/components/ui/spinner/index.d.cts +23 -0
  198. package/dist/src/components/ui/spinner/index.d.ts +1 -1
  199. package/dist/src/components/ui/spinner/index.d.ts.map +1 -1
  200. package/dist/src/components/ui/switch/index.d.cts +22 -0
  201. package/dist/src/components/ui/switch/index.d.ts +1 -1
  202. package/dist/src/components/ui/switch/index.d.ts.map +1 -1
  203. package/dist/src/components/ui/upgrade-dialog/challenge.d.cts +12 -0
  204. package/dist/src/components/ui/upgrade-dialog/challenge.d.ts +2 -2
  205. package/dist/src/components/ui/upgrade-dialog/factor-list.d.cts +20 -0
  206. package/dist/src/components/ui/upgrade-dialog/factor-list.d.ts +2 -2
  207. package/dist/src/components/ui/upgrade-dialog/index.d.cts +8 -0
  208. package/dist/src/components/ui/upgrade-dialog/index.d.ts +7 -7
  209. package/dist/src/components/ui/upgrade-dialog/index.d.ts.map +1 -1
  210. package/dist/src/components/ui/upgrade-dialog/state-mapping.d.cts +130 -0
  211. package/dist/src/components/ui/upgrade-dialog/state-mapping.d.ts +12 -1
  212. package/dist/src/components/ui/upgrade-dialog/state-mapping.d.ts.map +1 -1
  213. package/dist/src/components/ui/upgrade-dialog/status.d.cts +27 -0
  214. package/dist/src/components/ui/upgrade-dialog/status.d.ts +2 -2
  215. package/dist/src/components/ui/upgrade-dialog/types.d.cts +188 -0
  216. package/dist/src/components/ui/upgrade-dialog/upgrade-dialog.d.cts +13 -0
  217. package/dist/src/components/ui/upgrade-dialog/upgrade-dialog.d.ts +2 -2
  218. package/dist/src/components/ui/visually-hidden/index.d.cts +17 -0
  219. package/dist/src/components/ui/visually-hidden/index.d.ts +17 -0
  220. package/dist/src/components/ui/visually-hidden/index.d.ts.map +1 -0
  221. package/dist/src/constants/countries-phone-code.d.cts +253 -0
  222. package/dist/src/constants/countries-phone-code.d.ts.map +1 -1
  223. package/dist/src/constants/formats.d.cts +4 -0
  224. package/dist/src/constants/formats.d.ts.map +1 -1
  225. package/dist/src/constants/index.d.cts +3 -0
  226. package/dist/src/constants/index.d.ts +2 -2
  227. package/dist/src/context/auth-context.d.cts +23 -0
  228. package/dist/src/context/auth-context.d.ts +3 -3
  229. package/dist/src/context/auth-context.d.ts.map +1 -1
  230. package/dist/src/context/index.d.cts +6 -0
  231. package/dist/src/context/index.d.ts +5 -5
  232. package/dist/src/context/index.d.ts.map +1 -1
  233. package/dist/src/context/navigation-context.d.cts +25 -0
  234. package/dist/src/context/navigation-context.d.ts +1 -1
  235. package/dist/src/context/passflow-context.d.cts +26 -0
  236. package/dist/src/context/passflow-context.d.ts +3 -3
  237. package/dist/src/context/passflow-context.d.ts.map +1 -1
  238. package/dist/src/context/router-context.d.cts +42 -0
  239. package/dist/src/context/router-context.d.ts.map +1 -1
  240. package/dist/src/context/upgrade-context.d.cts +107 -0
  241. package/dist/src/context/upgrade-context.d.ts +24 -2
  242. package/dist/src/hocs/index.d.cts +2 -0
  243. package/dist/src/hocs/index.d.ts +1 -1
  244. package/dist/src/hocs/with-error.d.cts +8 -0
  245. package/dist/src/hocs/with-error.d.ts +5 -5
  246. package/dist/src/hocs/with-error.d.ts.map +1 -1
  247. package/dist/src/hooks/index.d.cts +28 -0
  248. package/dist/src/hooks/index.d.ts +27 -27
  249. package/dist/src/hooks/index.d.ts.map +1 -1
  250. package/dist/src/hooks/use-app-settings.d.cts +16 -0
  251. package/dist/src/hooks/use-app-settings.d.ts +1 -1
  252. package/dist/src/hooks/use-app-settings.d.ts.map +1 -1
  253. package/dist/src/hooks/use-auth-cloud-redirect.d.cts +4 -0
  254. package/dist/src/hooks/use-auth.d.cts +3 -0
  255. package/dist/src/hooks/use-auth.d.ts +1 -1
  256. package/dist/src/hooks/use-auth.d.ts.map +1 -1
  257. package/dist/src/hooks/use-consent.d.cts +68 -0
  258. package/dist/src/hooks/use-device-verify.d.cts +96 -0
  259. package/dist/src/hooks/use-device-verify.d.ts +1 -1
  260. package/dist/src/hooks/use-device-verify.d.ts.map +1 -1
  261. package/dist/src/hooks/use-forgot-password.d.cts +10 -0
  262. package/dist/src/hooks/use-forgot-password.d.ts +1 -1
  263. package/dist/src/hooks/use-join-invite.d.cts +8 -0
  264. package/dist/src/hooks/use-logout.d.cts +8 -0
  265. package/dist/src/hooks/use-navigation.d.cts +29 -0
  266. package/dist/src/hooks/use-navigation.d.ts +2 -2
  267. package/dist/src/hooks/use-navigation.d.ts.map +1 -1
  268. package/dist/src/hooks/use-outsideclick.d.cts +3 -0
  269. package/dist/src/hooks/use-outsideclick.d.ts +2 -2
  270. package/dist/src/hooks/use-outsideclick.d.ts.map +1 -1
  271. package/dist/src/hooks/use-passflow-store.d.cts +3 -0
  272. package/dist/src/hooks/use-passflow-store.d.ts +1 -1
  273. package/dist/src/hooks/use-passflow.d.cts +3 -0
  274. package/dist/src/hooks/use-passflow.d.ts +1 -1
  275. package/dist/src/hooks/use-passflow.d.ts.map +1 -1
  276. package/dist/src/hooks/use-passwordless-complete.d.cts +10 -0
  277. package/dist/src/hooks/use-passwordless-complete.d.ts +1 -1
  278. package/dist/src/hooks/use-passwordless-complete.d.ts.map +1 -1
  279. package/dist/src/hooks/use-provider.d.cts +7 -0
  280. package/dist/src/hooks/use-provider.d.ts +1 -1
  281. package/dist/src/hooks/use-provider.d.ts.map +1 -1
  282. package/dist/src/hooks/use-reset-password.d.cts +9 -0
  283. package/dist/src/hooks/use-session-expired.d.cts +49 -0
  284. package/dist/src/hooks/use-signin.d.cts +11 -0
  285. package/dist/src/hooks/use-signin.d.ts +2 -2
  286. package/dist/src/hooks/use-signin.d.ts.map +1 -1
  287. package/dist/src/hooks/use-signup.d.cts +11 -0
  288. package/dist/src/hooks/use-signup.d.ts +2 -2
  289. package/dist/src/hooks/use-signup.d.ts.map +1 -1
  290. package/dist/src/hooks/use-trusted-devices.d.cts +21 -0
  291. package/dist/src/hooks/use-trusted-devices.d.ts +1 -1
  292. package/dist/src/hooks/use-two-factor-challenge.d.cts +16 -0
  293. package/dist/src/hooks/use-two-factor-challenge.d.ts +1 -1
  294. package/dist/src/hooks/use-two-factor-manage.d.cts +15 -0
  295. package/dist/src/hooks/use-two-factor-manage.d.ts +1 -1
  296. package/dist/src/hooks/use-two-factor-methods.d.cts +14 -0
  297. package/dist/src/hooks/use-two-factor-methods.d.ts +1 -1
  298. package/dist/src/hooks/use-two-factor-setup-magic-link.d.cts +55 -0
  299. package/dist/src/hooks/use-two-factor-setup-magic-link.d.ts.map +1 -1
  300. package/dist/src/hooks/use-two-factor-setup.d.cts +18 -0
  301. package/dist/src/hooks/use-two-factor-setup.d.ts +1 -1
  302. package/dist/src/hooks/use-two-factor-status.d.cts +13 -0
  303. package/dist/src/hooks/use-two-factor-status.d.ts +1 -1
  304. package/dist/src/hooks/use-two-factor-verify.d.cts +20 -0
  305. package/dist/src/hooks/use-two-factor-verify.d.ts +2 -2
  306. package/dist/src/hooks/use-two-factor-verify.d.ts.map +1 -1
  307. package/dist/src/hooks/use-upgrade.d.cts +53 -0
  308. package/dist/src/hooks/use-upgrade.d.ts +12 -2
  309. package/dist/src/hooks/use-upgrade.d.ts.map +1 -1
  310. package/dist/src/hooks/use-user-passkeys.d.cts +12 -0
  311. package/dist/src/hooks/use-user-passkeys.d.ts +1 -1
  312. package/dist/src/index.d.cts +10 -0
  313. package/dist/src/index.d.ts +8 -8
  314. package/dist/src/index.d.ts.map +1 -1
  315. package/dist/src/types/auth-errors.d.cts +8 -0
  316. package/dist/src/types/device-errors.d.cts +95 -0
  317. package/dist/src/types/index.d.cts +26 -0
  318. package/dist/src/types/index.d.ts +4 -4
  319. package/dist/src/types/index.d.ts.map +1 -1
  320. package/dist/src/types/two-factor-errors.d.cts +14 -0
  321. package/dist/src/utils/auth-error.d.cts +7 -0
  322. package/dist/src/utils/auth-error.d.ts +1 -1
  323. package/dist/src/utils/auth-error.d.ts.map +1 -1
  324. package/dist/src/utils/classify-device-error.d.cts +35 -0
  325. package/dist/src/utils/classify-device-error.d.ts +1 -1
  326. package/dist/src/utils/classify-device-error.d.ts.map +1 -1
  327. package/dist/src/utils/classify-two-factor-error.d.cts +13 -0
  328. package/dist/src/utils/classify-two-factor-error.d.ts +1 -1
  329. package/dist/src/utils/cn.d.cts +3 -0
  330. package/dist/src/utils/cn.d.ts +1 -1
  331. package/dist/src/utils/cn.d.ts.map +1 -1
  332. package/dist/src/utils/dayjs/format.d.cts +8 -0
  333. package/dist/src/utils/dayjs/format.d.ts.map +1 -1
  334. package/dist/src/utils/dayjs/index.d.cts +2 -0
  335. package/dist/src/utils/dayjs/index.d.ts +1 -1
  336. package/dist/src/utils/get-app-version.d.cts +7 -0
  337. package/dist/src/utils/get-auth-methods.d.cts +30 -0
  338. package/dist/src/utils/get-auth-methods.d.ts +1 -1
  339. package/dist/src/utils/get-auth-methods.d.ts.map +1 -1
  340. package/dist/src/utils/get-form-labels.d.cts +10 -0
  341. package/dist/src/utils/get-form-labels.d.ts +5 -5
  342. package/dist/src/utils/get-form-labels.d.ts.map +1 -1
  343. package/dist/src/utils/get-url-errors.d.cts +5 -0
  344. package/dist/src/utils/get-url-errors.d.ts.map +1 -1
  345. package/dist/src/utils/get-url-with-tokens.d.cts +4 -0
  346. package/dist/src/utils/get-url-with-tokens.d.ts +1 -1
  347. package/dist/src/utils/get-url-with-tokens.d.ts.map +1 -1
  348. package/dist/src/utils/index.d.cts +18 -0
  349. package/dist/src/utils/index.d.ts +17 -17
  350. package/dist/src/utils/index.d.ts.map +1 -1
  351. package/dist/src/utils/invitation-auth-chrome.d.cts +8 -0
  352. package/dist/src/utils/invitation-auth-chrome.d.ts.map +1 -1
  353. package/dist/src/utils/login-theme.d.cts +8 -0
  354. package/dist/src/utils/login-theme.d.ts +1 -1
  355. package/dist/src/utils/login-theme.d.ts.map +1 -1
  356. package/dist/src/utils/second-factor.d.cts +21 -0
  357. package/dist/src/utils/second-factor.d.ts +3 -3
  358. package/dist/src/utils/second-factor.d.ts.map +1 -1
  359. package/dist/src/utils/two-factor-loop-prevention.d.cts +40 -0
  360. package/dist/src/utils/two-factor-loop-prevention.d.ts.map +1 -1
  361. package/dist/src/utils/undefined-on-catch.d.cts +2 -0
  362. package/dist/src/utils/upgrade-auth.d.cts +82 -0
  363. package/dist/src/utils/upgrade-auth.d.ts +45 -1
  364. package/dist/src/utils/upgrade-auth.d.ts.map +1 -1
  365. package/dist/src/utils/url-params.d.cts +14 -0
  366. package/dist/src/utils/url-params.d.ts.map +1 -1
  367. package/dist/src/utils/validate-url.d.cts +2 -0
  368. package/dist/src/utils/validate-url.d.ts.map +1 -1
  369. package/dist/src/utils/validation-schemas/index.d.cts +6 -0
  370. package/dist/src/utils/validation-schemas/index.d.ts +1 -1
  371. package/dist/src/utils/validation-schemas/index.d.ts.map +1 -1
  372. package/dist/style.css +1 -1
  373. package/package.json +54 -56
  374. package/dist/index.cjs.js +0 -2
  375. package/dist/index.cjs.js.map +0 -1
  376. package/dist/src/components/form/two-factor-challenge/otp-input.d.ts +0 -12
  377. package/dist/src/components/form/two-factor-challenge/otp-input.d.ts.map +0 -1
@@ -1,18 +1,18 @@
1
- export * from './validation-schemas';
2
- export { isValidUrl } from './validate-url';
3
- export { getUrlWithTokens, type TokenUrlFormat } from './get-url-with-tokens';
4
- export * from './dayjs';
5
- export { cn } from './cn';
6
- export { undefinedOnCatch } from './undefined-on-catch';
7
- export { getAuthMethods, type AuthMethods } from './get-auth-methods';
8
- export { getIdentityLabel, getPasswordlessData, getValidationErrorsLabel } from './get-form-labels';
9
- export { useUrlParams } from './url-params';
10
- export { getUrlErrors } from './get-url-errors';
11
- export { classifyTwoFactorError, getUserFriendlyErrorMessage } from './classify-two-factor-error';
12
- export { classifyDeviceError, deviceErrorOfType, DeviceApiError } from './classify-device-error';
13
- export { authErrorFor, authRedirectErrorMessage, invitationLinkErrorMessage, verificationLinkErrorMessage, verificationRequestErrorMessage, } from './auth-error';
14
- export { getInvitationAuthChrome, type InvitationAuthIntent } from './invitation-auth-chrome';
15
- export { TwoFactorLoopPrevention } from './two-factor-loop-prevention';
16
- export { routeToSecondFactor, urlCarriesTwoFactorToken } from './second-factor';
17
- export { withAuth, attachAuth, registerUpgradeAuthInstance, releaseUpgradeAuthInstance, upgradeAuthInstance, } from './upgrade-auth';
1
+ export { authErrorFor, authRedirectErrorMessage, invitationLinkErrorMessage, verificationLinkErrorMessage, verificationRequestErrorMessage, } from './auth-error.js';
2
+ export { classifyDeviceError, DeviceApiError, deviceErrorOfType } from './classify-device-error.js';
3
+ export { classifyTwoFactorError, getUserFriendlyErrorMessage } from './classify-two-factor-error.js';
4
+ export { cn } from './cn.js';
5
+ export * from './dayjs/index.js';
6
+ export { type AuthMethods, getAuthMethods } from './get-auth-methods.js';
7
+ export { getIdentityLabel, getPasswordlessData, getValidationErrorsLabel } from './get-form-labels.js';
8
+ export { getUrlErrors } from './get-url-errors.js';
9
+ export { getUrlWithTokens, type TokenUrlFormat } from './get-url-with-tokens.js';
10
+ export { getInvitationAuthChrome, type InvitationAuthIntent } from './invitation-auth-chrome.js';
11
+ export { routeToSecondFactor, urlCarriesTwoFactorToken } from './second-factor.js';
12
+ export { TwoFactorLoopPrevention } from './two-factor-loop-prevention.js';
13
+ export { undefinedOnCatch } from './undefined-on-catch.js';
14
+ export { attachAuth, registerUpgradeAuthInstance, releaseUpgradeAuthInstance, upgradeAuthInstance, withAuth, } from './upgrade-auth.js';
15
+ export { useUrlParams } from './url-params.js';
16
+ export { isValidUrl } from './validate-url.js';
17
+ export * from './validation-schemas/index.js';
18
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC9E,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AACpG,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAClG,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACjG,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,0BAA0B,EAC1B,4BAA4B,EAC5B,+BAA+B,GAChC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,uBAAuB,EAAE,KAAK,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC9F,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EACL,QAAQ,EACR,UAAU,EACV,2BAA2B,EAC3B,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,0BAA0B,EAC1B,4BAA4B,EAC5B,+BAA+B,GAChC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjG,OAAO,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAClG,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,KAAK,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AACpG,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,KAAK,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC9F,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EACL,UAAU,EACV,2BAA2B,EAC3B,0BAA0B,EAC1B,mBAAmB,EACnB,QAAQ,GACT,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export type InvitationAuthIntent = 'sign-in' | 'sign-up';
2
+ type InvitationAuthChrome = {
3
+ title: string;
4
+ subtitle: string;
5
+ };
6
+ export declare const getInvitationAuthChrome: (inviteToken: string | null | undefined, intent: InvitationAuthIntent) => InvitationAuthChrome | null;
7
+ export {};
8
+ //# sourceMappingURL=invitation-auth-chrome.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"invitation-auth-chrome.d.ts","sourceRoot":"","sources":["../../../src/utils/invitation-auth-chrome.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,SAAS,CAAC;AAEzD,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAaF,eAAO,MAAM,uBAAuB,GAClC,aAAa,MAAM,GAAG,IAAI,GAAG,SAAS,EACtC,QAAQ,oBAAoB,KAC3B,oBAAoB,GAAG,IAczB,CAAC"}
1
+ {"version":3,"file":"invitation-auth-chrome.d.ts","sourceRoot":"","sources":["../../../src/utils/invitation-auth-chrome.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,SAAS,CAAC;AAEzD,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAaF,eAAO,MAAM,uBAAuB,gBACrB,MAAM,GAAG,IAAI,GAAG,SAAS,UAC9B,oBAAoB,KAC3B,oBAAoB,GAAG,IAczB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { LoginWebAppStyle } from '@passflow/core';
2
+ export type CompatibleLoginWebAppStyle = Partial<LoginWebAppStyle> & {
3
+ /** Legacy field used by themes created before text_color was introduced. */
4
+ content_color?: string;
5
+ };
6
+ export declare const getLoginThemeCssVariables: (style: CompatibleLoginWebAppStyle) => Record<string, string | null>;
7
+ export declare const applyLoginThemeStyles: (root: HTMLElement, style: CompatibleLoginWebAppStyle) => void;
8
+ //# sourceMappingURL=login-theme.d.ts.map
@@ -1,4 +1,4 @@
1
- import { LoginWebAppStyle } from '@passflow/core';
1
+ import type { LoginWebAppStyle } from '@passflow/core';
2
2
  export type CompatibleLoginWebAppStyle = Partial<LoginWebAppStyle> & {
3
3
  /** Legacy field used by themes created before text_color was introduced. */
4
4
  content_color?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"login-theme.d.ts","sourceRoot":"","sources":["../../../src/utils/login-theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,MAAM,MAAM,0BAA0B,GAAG,OAAO,CAAC,gBAAgB,CAAC,GAAG;IACnE,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAWF,eAAO,MAAM,yBAAyB,GAAI,OAAO,0BAA0B,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAgBxG,CAAC;AAEH,eAAO,MAAM,qBAAqB,GAAI,MAAM,WAAW,EAAE,OAAO,0BAA0B,KAAG,IAK5F,CAAC"}
1
+ {"version":3,"file":"login-theme.d.ts","sourceRoot":"","sources":["../../../src/utils/login-theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,MAAM,MAAM,0BAA0B,GAAG,OAAO,CAAC,gBAAgB,CAAC,GAAG;IACnE,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAWF,eAAO,MAAM,yBAAyB,UAAW,0BAA0B,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAgBxG,CAAC;AAEH,eAAO,MAAM,qBAAqB,SAAU,WAAW,SAAS,0BAA0B,KAAG,IAK5F,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { Passflow } from '@passflow/core';
2
+ import type { NavigateFunction } from '../context/index.cjs';
3
+ /**
4
+ * Sends a sign-in that still owes its second factor to the 2FA screen.
5
+ *
6
+ * Every sign-in path can end this way: the server answers with a 2FA token in
7
+ * place of tokens, `@passflow/core` keeps it and saves no session, and
8
+ * `isTwoFactorVerificationRequired()` reads true. The caller must then stop:
9
+ * no success redirect, and no `getUrlWithTokens` — there are no tokens yet.
10
+ *
11
+ * @returns true when it navigated, so the caller returns without redirecting
12
+ */
13
+ export declare const routeToSecondFactor: (passflow: Pick<Passflow, 'isTwoFactorVerificationRequired'>, navigate: NavigateFunction, twoFactorVerifyPath: string) => boolean;
14
+ /**
15
+ * Whether the current URL is a landing that owes its second factor: a
16
+ * federated sign-in on a non-PKCE app comes back with `#tfa_token=` in the
17
+ * fragment and no tokens. Read it before `@passflow/core` is constructed,
18
+ * because core adopts the token and strips the fragment as it starts.
19
+ */
20
+ export declare const urlCarriesTwoFactorToken: () => boolean;
21
+ //# sourceMappingURL=second-factor.d.ts.map
@@ -1,5 +1,5 @@
1
- import { NavigateFunction } from '../context';
2
- import { Passflow } from '@passflow/core';
1
+ import type { Passflow } from '@passflow/core';
2
+ import type { NavigateFunction } from '../context/index.js';
3
3
  /**
4
4
  * Sends a sign-in that still owes its second factor to the 2FA screen.
5
5
  *
@@ -10,7 +10,7 @@ import { Passflow } from '@passflow/core';
10
10
  *
11
11
  * @returns true when it navigated, so the caller returns without redirecting
12
12
  */
13
- export declare const routeToSecondFactor: (passflow: Pick<Passflow, "isTwoFactorVerificationRequired">, navigate: NavigateFunction, twoFactorVerifyPath: string) => boolean;
13
+ export declare const routeToSecondFactor: (passflow: Pick<Passflow, 'isTwoFactorVerificationRequired'>, navigate: NavigateFunction, twoFactorVerifyPath: string) => boolean;
14
14
  /**
15
15
  * Whether the current URL is a landing that owes its second factor: a
16
16
  * federated sign-in on a non-PKCE app comes back with `#tfa_token=` in the
@@ -1 +1 @@
1
- {"version":3,"file":"second-factor.d.ts","sourceRoot":"","sources":["../../../src/utils/second-factor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,IAAI,CAAC,QAAQ,EAAE,iCAAiC,CAAC,EAC3D,UAAU,gBAAgB,EAC1B,qBAAqB,MAAM,KAC1B,OAIF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,QAAO,OAG3C,CAAC"}
1
+ {"version":3,"file":"second-factor.d.ts","sourceRoot":"","sources":["../../../src/utils/second-factor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAElD;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,aACpB,IAAI,CAAC,QAAQ,EAAE,iCAAiC,CAAC,YACjD,gBAAgB,uBACL,MAAM,KAC1B,OAIF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,QAAO,OAG3C,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Loop prevention for 2FA redirect cycles
3
+ */
4
+ export declare const TwoFactorLoopPrevention: {
5
+ /**
6
+ * Check if redirect should be allowed
7
+ * @returns true if redirect is safe, false if loop detected
8
+ */
9
+ canRedirect(): boolean;
10
+ /**
11
+ * Increment redirect counter
12
+ */
13
+ incrementRedirect(): void;
14
+ /**
15
+ * Get current redirect count
16
+ */
17
+ getRedirectCount(): number;
18
+ /**
19
+ * Reset redirect counter (call on successful auth)
20
+ */
21
+ reset(): void;
22
+ /**
23
+ * Track last error type to detect repeated errors
24
+ */
25
+ setLastErrorType(errorType: string): void;
26
+ /**
27
+ * Get last error type
28
+ */
29
+ getLastErrorType(): string | null;
30
+ /**
31
+ * Check if same error is repeating
32
+ */
33
+ isRepeatingError(errorType: string): boolean;
34
+ /**
35
+ * Get user-friendly message when loop is detected
36
+ */
37
+ getLoopDetectedMessage(): string;
38
+ };
39
+ export default TwoFactorLoopPrevention;
40
+ //# sourceMappingURL=two-factor-loop-prevention.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"two-factor-loop-prevention.d.ts","sourceRoot":"","sources":["../../../src/utils/two-factor-loop-prevention.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,eAAO,MAAM,uBAAuB;IAClC;;;OAGG;mBACY,OAAO;IAUtB;;OAEG;yBACkB,IAAI;IASzB;;OAEG;wBACiB,MAAM;IAS1B;;OAEG;aACM,IAAI;IASb;;OAEG;gCACyB,MAAM,GAAG,IAAI;IAQzC;;OAEG;wBACiB,MAAM,GAAG,IAAI;IAQjC;;OAEG;gCACyB,MAAM,GAAG,OAAO;IAK5C;;OAEG;8BACuB,MAAM;CAGjC,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"two-factor-loop-prevention.d.ts","sourceRoot":"","sources":["../../../src/utils/two-factor-loop-prevention.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,eAAO,MAAM,uBAAuB;IAClC;;;OAGG;IACH,WAAW,IAAI,OAAO;IAUtB;;OAEG;IACH,iBAAiB,IAAI,IAAI;IASzB;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAS1B;;OAEG;IACH,KAAK,IAAI,IAAI;IASb;;OAEG;IACH,gBAAgB,YAAY,MAAM,GAAG,IAAI;IAQzC;;OAEG;IACH,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAQjC;;OAEG;IACH,gBAAgB,YAAY,MAAM,GAAG,OAAO;IAK5C;;OAEG;IACH,sBAAsB,IAAI,MAAM;CAGjC,CAAC;eAEa,uBAAuB"}
@@ -0,0 +1,2 @@
1
+ export declare function undefinedOnCatch<T, K>(fn: (t: K) => T): (t: K) => T | undefined;
2
+ //# sourceMappingURL=undefined-on-catch.d.ts.map
@@ -0,0 +1,82 @@
1
+ /**
2
+ * The free-function adapters — `withAuth` and `attachAuth` (§13.5).
3
+ *
4
+ * The core exposes both as methods on a configured `Passflow` instance, because
5
+ * that is where the resolved interception scope is bound. The developer-facing
6
+ * form is a bare import, so these two functions translate one into the other
7
+ * and do nothing else:
8
+ *
9
+ * ```tsx
10
+ * import { attachAuth } from '@passflow/react';
11
+ *
12
+ * const api = axios.create({ baseURL: 'https://api.example.com' });
13
+ * useEffect(() => attachAuth(api), []);
14
+ * ```
15
+ *
16
+ * **NO LOGIC IN AN ADAPTER.** Neither function parses a challenge, compares a
17
+ * bar, decides scope, counts a retry or chooses an error class. Every one of
18
+ * those decisions lives in the core's `handleChallenge`, which is what makes
19
+ * all four surfaces behave identically.
20
+ *
21
+ * The instance is published by `UpgradeProvider`, which reads it from
22
+ * `PassflowContext` — so the binding is the provider's instance, resolved at
23
+ * call time rather than captured at import time.
24
+ *
25
+ * **The publication is synchronous, during the provider's render, and that is
26
+ * load-bearing.** React runs a child's effects before its parent's in the same
27
+ * commit, so publishing from the provider's `useEffect` would be too late for
28
+ * the documented `useEffect(() => attachAuth(api), [])` above: the child's
29
+ * effect would reach `requireInstance` with nothing registered and throw, and a
30
+ * throw inside an effect tears the tree down. Attach order must not matter, so
31
+ * the registry is written in render.
32
+ *
33
+ * **And the release is deferred by a microtask, which is what makes the pair
34
+ * survive React Strict Mode.** Strict Mode mounts, unmounts and remounts
35
+ * effects in development, and the child-before-parent effect order holds on the
36
+ * remount pass too — while render, which is what published the instance, does
37
+ * not run again. So an immediate release in the provider's effect cleanup
38
+ * leaves the registry empty exactly when the remounting child's effect reads
39
+ * it, and `attachAuth` throws again (verified: it does). Scheduling the release
40
+ * instead means a re-registration in the same tick cancels it, which is
41
+ * precisely a Strict Mode remount; a real unmount has no re-registration, so
42
+ * the release lands one microtask later. Nothing observes that gap but a caller
43
+ * reaching for an instance that has just been torn down.
44
+ */
45
+ import type { FetchLike, Passflow, ResponseInterceptorHost } from '@passflow/core';
46
+ /**
47
+ * Publishes the provider's `Passflow` instance to the free functions, and
48
+ * returns an unregister suitable as a React effect cleanup.
49
+ *
50
+ * Last registration wins, and the returned unregister is *deferred*: it clears
51
+ * the instance on a microtask, and only if nothing has registered in the
52
+ * meantime. See the module comment — that deferral is what keeps a Strict Mode
53
+ * mount → unmount → remount from leaving the free functions unbound, and it is
54
+ * why register and release are symmetric rather than one in render and one in a
55
+ * cleanup that nothing undoes.
56
+ */
57
+ export declare const registerUpgradeAuthInstance: (instance: Passflow) => (() => void);
58
+ /**
59
+ * Clears `instance` if it is still the registered one, and does nothing
60
+ * otherwise. Idempotent, so an effect cleanup that runs after a newer provider
61
+ * has already published cannot unbind the live instance.
62
+ */
63
+ export declare const releaseUpgradeAuthInstance: (instance: Passflow) => void;
64
+ /** The instance the free functions bind to, or `null` outside a provider. */
65
+ export declare const upgradeAuthInstance: () => Passflow | null;
66
+ /**
67
+ * Wraps a `fetch` and returns the wrapper. Installs nothing and touches no
68
+ * global — two verbs exist because the semantics genuinely differ: an axios
69
+ * interceptor mutates, a fetch wrapper returns.
70
+ */
71
+ export declare const withAuth: (next?: FetchLike) => FetchLike;
72
+ /**
73
+ * Attaches step-up handling to an axios instance the caller already owns,
74
+ * **mutating** it, and returns the `detach()` disposer — which is exactly what
75
+ * a React effect needs.
76
+ *
77
+ * The parameter is typed structurally (duck-typed on
78
+ * `interceptors.response.use`), so this package's axios version is not a
79
+ * constraint on the caller's.
80
+ */
81
+ export declare const attachAuth: (instance: ResponseInterceptorHost) => (() => void);
82
+ //# sourceMappingURL=upgrade-auth.d.ts.map
@@ -1,4 +1,48 @@
1
- import { FetchLike, Passflow, ResponseInterceptorHost } from '@passflow/core';
1
+ /**
2
+ * The free-function adapters — `withAuth` and `attachAuth` (§13.5).
3
+ *
4
+ * The core exposes both as methods on a configured `Passflow` instance, because
5
+ * that is where the resolved interception scope is bound. The developer-facing
6
+ * form is a bare import, so these two functions translate one into the other
7
+ * and do nothing else:
8
+ *
9
+ * ```tsx
10
+ * import { attachAuth } from '@passflow/react';
11
+ *
12
+ * const api = axios.create({ baseURL: 'https://api.example.com' });
13
+ * useEffect(() => attachAuth(api), []);
14
+ * ```
15
+ *
16
+ * **NO LOGIC IN AN ADAPTER.** Neither function parses a challenge, compares a
17
+ * bar, decides scope, counts a retry or chooses an error class. Every one of
18
+ * those decisions lives in the core's `handleChallenge`, which is what makes
19
+ * all four surfaces behave identically.
20
+ *
21
+ * The instance is published by `UpgradeProvider`, which reads it from
22
+ * `PassflowContext` — so the binding is the provider's instance, resolved at
23
+ * call time rather than captured at import time.
24
+ *
25
+ * **The publication is synchronous, during the provider's render, and that is
26
+ * load-bearing.** React runs a child's effects before its parent's in the same
27
+ * commit, so publishing from the provider's `useEffect` would be too late for
28
+ * the documented `useEffect(() => attachAuth(api), [])` above: the child's
29
+ * effect would reach `requireInstance` with nothing registered and throw, and a
30
+ * throw inside an effect tears the tree down. Attach order must not matter, so
31
+ * the registry is written in render.
32
+ *
33
+ * **And the release is deferred by a microtask, which is what makes the pair
34
+ * survive React Strict Mode.** Strict Mode mounts, unmounts and remounts
35
+ * effects in development, and the child-before-parent effect order holds on the
36
+ * remount pass too — while render, which is what published the instance, does
37
+ * not run again. So an immediate release in the provider's effect cleanup
38
+ * leaves the registry empty exactly when the remounting child's effect reads
39
+ * it, and `attachAuth` throws again (verified: it does). Scheduling the release
40
+ * instead means a re-registration in the same tick cancels it, which is
41
+ * precisely a Strict Mode remount; a real unmount has no re-registration, so
42
+ * the release lands one microtask later. Nothing observes that gap but a caller
43
+ * reaching for an instance that has just been torn down.
44
+ */
45
+ import type { FetchLike, Passflow, ResponseInterceptorHost } from '@passflow/core';
2
46
  /**
3
47
  * Publishes the provider's `Passflow` instance to the free functions, and
4
48
  * returns an unregister suitable as a React effect cleanup.
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade-auth.d.ts","sourceRoot":"","sources":["../../../src/utils/upgrade-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAWnF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,2BAA2B,GAAI,UAAU,QAAQ,KAAG,CAAC,MAAM,IAAI,CAY3E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,GAAI,UAAU,QAAQ,KAAG,IAE/D,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,mBAAmB,QAAO,QAAQ,GAAG,IAAsB,CAAC;AAWzE;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,SAAS,KAAG,SAAuD,CAAC;AAEpG;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,GAAI,UAAU,uBAAuB,KAAG,CAAC,MAAM,IAAI,CACtB,CAAC"}
1
+ {"version":3,"file":"upgrade-auth.d.ts","sourceRoot":"","sources":["../../../src/utils/upgrade-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAWnF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,2BAA2B,aAAc,QAAQ,KAAG,CAAC,MAAM,IAAI,CAY3E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,aAAc,QAAQ,KAAG,IAE/D,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,mBAAmB,QAAO,QAAQ,GAAG,IAAsB,CAAC;AAWzE;;;;GAIG;AACH,eAAO,MAAM,QAAQ,UAAW,SAAS,KAAG,SAAuD,CAAC;AAEpG;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,aAAc,uBAAuB,KAAG,CAAC,MAAM,IAAI,CACtB,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Utility for native handling of URL parameters
3
+ */
4
+ /**
5
+ * Get URL parameters
6
+ * @param defaultValues Default values
7
+ * @returns Object with methods getAll, get, set
8
+ */
9
+ export declare const useUrlParams: <T extends Record<string, string>>(defaultValues?: T) => {
10
+ getAll: () => Record<string, string>;
11
+ get: (key: string) => string | null;
12
+ set: (params: Record<string, string>) => void;
13
+ };
14
+ //# sourceMappingURL=url-params.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"url-params.d.ts","sourceRoot":"","sources":["../../../src/utils/url-params.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,gBAAgB,CAAC;;eAuC5D,MAAM;kBASH,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAoB5C,CAAC"}
1
+ {"version":3,"file":"url-params.d.ts","sourceRoot":"","sources":["../../../src/utils/url-params.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,kBAAkB,CAAC;;eAuC5D,MAAM;kBASH,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAoB5C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const isValidUrl: (url: string) => boolean;
2
+ //# sourceMappingURL=validate-url.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate-url.d.ts","sourceRoot":"","sources":["../../../src/utils/validate-url.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,KAAG,OAOxC,CAAC"}
1
+ {"version":3,"file":"validate-url.d.ts","sourceRoot":"","sources":["../../../src/utils/validate-url.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,QAAS,MAAM,KAAG,OAOxC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { PassflowPasswordPolicySettings } from '@passflow/core';
2
+ import * as Yup from 'yup';
3
+ export declare const emailRegex: RegExp;
4
+ export declare const phoneNumberRegex: RegExp;
5
+ export declare const passwordValidation: (passwordPolicy: PassflowPasswordPolicySettings | null) => Yup.StringSchema<string, Yup.AnyObject, undefined, "">;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
- import { PassflowPasswordPolicySettings } from '@passflow/core';
1
+ import type { PassflowPasswordPolicySettings } from '@passflow/core';
2
2
  import * as Yup from 'yup';
3
3
  export declare const emailRegex: RegExp;
4
4
  export declare const phoneNumberRegex: RegExp;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/validation-schemas/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAErE,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAE3B,eAAO,MAAM,UAAU,QACmI,CAAC;AAC3J,eAAO,MAAM,gBAAgB,QACyF,CAAC;AAEvH,eAAO,MAAM,kBAAkB,GAAI,gBAAgB,8BAA8B,GAAG,IAAI,2DA2ClF,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/validation-schemas/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAE3B,eAAO,MAAM,UAAU,QACmI,CAAC;AAC3J,eAAO,MAAM,gBAAgB,QACyF,CAAC;AAEvH,eAAO,MAAM,kBAAkB,mBAAoB,8BAA8B,GAAG,IAAI,2DA2ClF,CAAC"}
package/dist/style.css CHANGED
@@ -1,2 +1,2 @@
1
- @import "https://fonts.googleapis.com/css2?family=Gasoek+One&family=Inter:opsz,wght@14..32,100..900&display=swap";[class*=passflow-]{box-sizing:border-box;font:inherit;vertical-align:baseline;border:0;margin:0;padding:0}.passflow-article,.passflow-aside,.passflow-details,.passflow-figcaption,.passflow-figure,.passflow-footer,.passflow-header,.passflow-hgroup,.passflow-menu,.passflow-nav,.passflow-section{display:block}html{scroll-behavior:smooth;font-size:16px}body{text-rendering:optimizespeed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;line-height:1.5}.passflow-list{list-style:none}.passflow-link{color:inherit;text-decoration:none}.passflow-canvas,.passflow-image,.passflow-picture,.passflow-svg,.passflow-video{max-width:100%;display:block}.passflow-button{background:0 0;border:none;padding:0}.passflow-button,.passflow-input,.passflow-select,.passflow-textarea{color:inherit;font:inherit}.passflow-table{border-collapse:collapse;border-spacing:0}@media (prefers-reduced-motion:reduce){[class*=passflow-]{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body,html{box-sizing:border-box;margin:0;padding:0}:root{--passflow-primary:#0c59dd;--passflow-primary-dark:#0a47b1;--passflow-warning:#b42318;--passflow-warning-dark:#8f1f17;--passflow-dark:#1e1e1e;--passflow-dark-two:#2e2e2e;--passflow-dark-three:#3e3e3e;--passflow-white:#fff;--passflow-grey-one:#5f6368;--passflow-grey-two:#bfbfbf;--passflow-grey-three:#e9eaf0;--passflow-grey-four:#f3f5f7;--passflow-background:#f8f9fb;--passflow-success:#067647;--passflow-primary-color:var(--passflow-primary);--passflow-text-color:var(--passflow-dark);--passflow-secondary-text-color:var(--passflow-grey-one);--passflow-button-text-color:var(--passflow-white);--passflow-background-color:var(--passflow-white);--passflow-background-image:url();--passflow-card-color:var(--passflow-white);--passflow-branding-background-color:var(--passflow-background);--passflow-input-background-color:var(--passflow-grey-four);--passflow-input-border-color:var(--passflow-grey-four);--passflow-passkey-button-text-color:var(--passflow-white);--passflow-passkey-button-background-color:var(--passflow-dark);--passflow-divider-color:var(--passflow-grey-three);--passflow-federated_button_background_color:var(--passflow-background);--passflow-federated_button_text_color:var(--passflow-dark);--passflow-focus-color:var(--passflow-primary-color);--passflow-link-color:var(--passflow-primary-color);--passflow-font-family:"Inter",sans-serif;--passflow-h1:2rem;--passflow-h2:1.5rem;--passflow-body-1:1rem;--passflow-body-2:13px;--passflow-caption:12px;--passflow-normal:400;--passflow-medium:500;--passflow-semibold:600;--passflow-bold:700;--passflow-spacing-1:4px;--passflow-spacing-2:8px;--passflow-spacing-3:12px;--passflow-spacing-4:16px;--passflow-spacing-5:20px;--passflow-spacing-6:24px;--passflow-radius:4px;--passflow-surface-width:384px}.passflow-heading{color:var(--passflow-text-color);font-size:var(--passflow-h1);margin-bottom:var(--passflow-spacing-4);font-weight:600}.passflow-text{color:var(--passflow-text-color);font-size:var(--passflow-body-1);line-height:1.5}.passflow-secondary-text{color:var(--passflow-secondary-text-color);font-size:var(--passflow-body-2)}.passflow-secondary-font{font-family:Gasoek One,sans-serif;font-style:normal}.passflow-button{cursor:pointer;font-size:var(--passflow-body-2);padding:var(--passflow-spacing-3) var(--passflow-spacing-6);border-radius:4px;justify-content:center;align-items:center;font-weight:500;transition:all .2s;display:inline-flex;position:relative;overflow:hidden}.passflow-button:focus-visible{outline:2px solid var(--passflow-focus-color);outline-offset:2px}.passflow-button--primary{background-color:var(--passflow-primary-color);color:var(--passflow-button-text-color);box-shadow:0 3px 15px #0c59dd59}.passflow-button--primary:focus-visible,.passflow-button--primary:hover{background-color:var(--passflow-primary-color)}.passflow-button--secondary{background-color:var(--passflow-white);border:1px solid var(--passflow-primary-color);color:var(--passflow-primary-color)}.passflow-button--secondary:focus-visible,.passflow-button--secondary:hover{border-color:var(--passflow-primary-color);color:var(--passflow-primary-color)}.passflow-button--outlined{background-color:var(--passflow-white);border:1px solid var(--passflow-grey-four);color:var(--passflow-dark)}.passflow-button--outlined:focus-visible,.passflow-button--outlined:hover{background-color:var(--passflow-grey-four)}.passflow-button--warning{background-color:var(--passflow-warning);color:var(--passflow-button-text-color);box-shadow:0 5px 9px #d85d5d40}.passflow-button--warning:focus-visible,.passflow-button--warning:hover{background-color:var(--passflow-warning-dark)}.passflow-button--clean{background-color:var(--passflow-white);border:none}.passflow-button--provider{background-color:var(--passflow-federated_button_background_color)}.passflow-button--provider:focus-visible,.passflow-button--provider:hover{background-color:var(--passflow-grey-four)}.passflow-button--dark{background-color:var(--passflow-dark-three);color:var(--passflow-button-text-color);box-shadow:0 3px 15px #1e1e1e59}.passflow-button--dark:focus-visible,.passflow-button--dark:hover{opacity:.9}.passflow-button--small{max-width:28px;height:28px;padding:var(--passflow-spacing-1);width:100%}.passflow-button--medium{font-size:var(--passflow-body-2);max-width:66px;height:32px;padding:7px var(--passflow-spacing-3);width:100%}.passflow-button--big{font-size:var(--passflow-body-2);min-width:40px;max-width:336px;height:48px;padding:15px var(--passflow-spacing-2);width:100%;font-weight:600}.passflow-button--dark:disabled,.passflow-button--primary:disabled,.passflow-button--warning:disabled{background-color:var(--passflow-grey-two);box-shadow:none;cursor:not-allowed}.passflow-button--outlined:disabled,.passflow-button--secondary:disabled{background-color:var(--passflow-white);border-color:var(--passflow-grey-four);color:var(--passflow-grey-two);cursor:not-allowed}.passflow-button--clean:disabled{cursor:not-allowed;opacity:.5;background-color:#0000}.passflow-button--with-icon{gap:var(--passflow-spacing-2)}.passflow-button--as-icon{width:max-content;height:max-content;padding:0}.passflow-button--option{background-color:var(--passflow-white);border:1px solid var(--passflow-grey-four);color:var(--passflow-text-color);align-items:flex-start;gap:var(--passflow-spacing-1);max-width:none;height:auto;padding:var(--passflow-spacing-3);text-align:left;flex-direction:column;width:100%}.passflow-button--option:focus-visible,.passflow-button--option:hover{background-color:var(--passflow-grey-four)}.passflow-button--option[aria-pressed=true]{border-color:var(--passflow-primary-color)}.passflow-button--option:disabled{background-color:var(--passflow-white);border-color:var(--passflow-grey-four);cursor:not-allowed}.passflow-button__option-label{color:var(--passflow-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium)}.passflow-button__option-hint{color:var(--passflow-secondary-text-color);font-size:var(--passflow-caption);font-weight:var(--passflow-normal)}.passflow-button--option:disabled .passflow-button__option-hint,.passflow-button--option:disabled .passflow-button__option-label{color:var(--passflow-grey-two)}.passflow-button--link{color:var(--passflow-link-color);font-size:inherit;font-weight:var(--passflow-semibold);height:auto;line-height:inherit;background-color:#0000;border:none;border-radius:0;width:auto;max-width:none;padding:0;display:inline;overflow:visible}.passflow-button--link:focus-visible,.passflow-button--link:hover{text-decoration:underline}.passflow-button--link:disabled{color:var(--passflow-grey-two);cursor:not-allowed;text-decoration:none}.passflow-button-go-back-error,.passflow-button-passkey,.passflow-button-passwordless,.passflow-button-resend-magic-link,.passflow-button-resend-reset-password,.passflow-button-reset-password,.passflow-button-send-reset-password,.passflow-button-signin,.passflow-button-signup{font-size:var(--passflow-body-2);font-weight:var(--passflow-semibold);margin:0 auto;line-height:18px}.passflow-button-passkey{background-color:var(--passflow-passkey-button-background-color);color:var(--passflow-passkey-button-text-color)}.passflow-button-passwordless--active{border:1px solid var(--passflow-primary-color);color:var(--passflow-primary-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-semibold);background-color:#0000;line-height:18px}.passflow-button-show-country{background-color:var(--passflow-input-background-color);border-radius:4px;gap:4px;width:56px;min-width:56px;margin-left:8px;padding:12px 4px}.passflow-button-display-password{background-color:#0000}.passflow-send-reset-wrapper{flex-direction:column;gap:24px;display:flex}.passflow-button-resend-magic-link,.passflow-button-resend-reset-password{font-weight:var(--passflow-medium);max-width:196px}.passflow-button-go-back-error{font-weight:var(--passflow-medium);width:196px;max-width:100%}.passflow-button-resend-magic-link:hover{background-color:var(--passflow-grey-four)}.passflow-button-timer{background-color:var(--passflow-background-color);font-weight:var(--passflow-semibold);max-width:max-content;padding:3px;display:inline-block}.passflow-button-timer--active{color:var(--passflow-secondary-text-color);opacity:1!important}.passflow-button-timer--inactive{color:var(--passflow-primary-color)}.passflow-field{background-color:var(--passflow-input-background-color);color:var(--passflow-dark);font-size:var(--passflow-body-2);outline:1px solid var(--passflow-input-border-color);min-height:48px;padding:11px var(--passflow-spacing-3);border-radius:4px;justify-content:flex-start;align-items:center;width:100%;display:flex}.passflow-field::placeholder{color:var(--passflow-secondary-text-color)}.passflow-field--focused:focus-visible,.passflow-field-otp--focused:focus-visible{outline:1px solid var(--passflow-primary-color)}.passflow-field--error,.passflow-field-otp--error{outline:1px solid var(--passflow-warning)!important}.passflow-field:disabled{border-color:var(--passflow-input-border-color);color:var(--passflow-secondary-text-color);cursor:not-allowed}.passflow-field-otp,.passflow-field:disabled{background-color:var(--passflow-input-background-color)}.passflow-field-otp{color:var(--passflow-dark);font-size:var(--passflow-body-2);outline:1px solid var(--passflow-input-border-color);text-align:center;border-radius:4px;width:48px;height:48px}.passflow-ripple{background-color:#ffffff4d;border-radius:50%;animation:.6s linear passflow-ripple;position:absolute;transform:scale(0)}@keyframes passflow-ripple{to{opacity:0;transform:scale(4)}}@media (prefers-reduced-motion:reduce){.passflow-ripple{animation:none;display:none}}.passflow-container{max-width:1200px;padding:0 var(--passflow-spacing-4);width:100%;margin:0 auto}.passflow-flex{display:flex}.passflow-flex-col{flex-direction:column}.passflow-items-center{align-items:center}.passflow-justify-center{justify-content:center}.passflow-justify-between{justify-content:space-between}.passflow-mt-4{margin-top:var(--passflow-spacing-4)}.passflow-mb-4{margin-bottom:var(--passflow-spacing-4)}.passflow-gap-4{gap:var(--passflow-spacing-4)}.passflow-form-subscriptions{color:var(--passflow-secondary-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);text-align:center;max-width:384px;margin:-24px auto 0;display:flex}.passflow-field-wrapper{width:100%;position:relative}.passflow-field-container{flex-direction:column;gap:6px;width:100%;display:flex}.passflow-field-label{color:var(--passflow-secondary-text-color);font-size:var(--passflow-caption);font-weight:var(--passflow-medium);line-height:18px}.passflow-field-label--error{color:var(--passflow-warning)}.passflow-field-label-button{background-color:var(--passflow-card-color);color:var(--passflow-link-color);font-size:var(--passflow-caption);width:max-content;max-width:100%;text-decoration:none}.passflow-field-input,.passflow-field-label-button{font-weight:var(--passflow-medium);line-height:18px}.passflow-field-input{background-color:var(--passflow-input-background-color);color:var(--passflow-text-color);font-size:var(--passflow-body-2);outline:1px solid var(--passflow-input-border-color);min-height:48px;padding:11px var(--passflow-spacing-3);border-radius:4px;width:100%}.passflow-field-input--with-icon{padding-right:40px}.passflow-field-icon-button{width:28px;min-width:28px;height:28px;padding:6px;position:absolute;top:50%;right:0;transform:translate(-8px,-50%)}.passflow-field-error{justify-content:center;align-items:center;gap:4px;margin-top:4px;display:flex}.passflow-field-error-text{color:var(--passflow-warning);font-size:var(--passflow-caption);font-weight:var(--passflow-medium)}.passflow-field-phone-wrapper{background-color:var(--passflow-input-background-color);color:var(--passflow-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);outline:1px solid var(--passflow-input-border-color);border-radius:4px;justify-content:flex-start;align-items:center;width:100%;height:48px;display:flex;position:relative}.passflow-field-phone-wrapper--focus{outline:1px solid var(--passflow-primary-color)}.passflow-field-phone-wrapper--error{outline:1px solid var(--passflow-warning)}.passflow-field-phone-wrapper::placeholder{color:var(--passflow-secondary-text-color)}.passflow-field-phone-input{background-color:var(--passflow-input-background-color);color:var(--passflow-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);border-radius:4px;width:100%;height:48px;padding:0 8px}.passflow-field-phone-input:focus-within{outline:none}.passflow-field-country-search-wrapper{z-index:20;padding-left:28px;position:relative}.passflow-field-country-search,.passflow-field-country-search-wrapper{background-color:var(--passflow-input-background-color);border-radius:4px;width:100%}.passflow-field-country-search{color:var(--passflow-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);height:48px;padding:0 8px}.passflow-field-country-search::placeholder{color:var(--passflow-secondary-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);line-height:18px}.passflow-field-country-search:focus-visible{outline:none}.passflow-field-country-search-icon{position:absolute;top:50%;left:12px;transform:translateY(-50%)}.passflow-password-validation{flex-direction:column;gap:4px;margin-top:4px;display:flex}.passflow-password-validation-item{color:var(--passflow-secondary-text-color);font-size:var(--passflow-caption);font-weight:var(--passflow-medium);justify-content:flex-start;align-items:center;gap:4px;display:flex}.passflow-password-validation-item--success{color:var(--passflow-success)}.passflow-dialog-overlay{z-index:40;background-color:#1e1e1e80;position:fixed;inset:0}.passflow-dialog-content{z-index:50;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.passflow-dialog-header{text-align:center;flex-direction:column;gap:6px;display:flex}@media (width>=640px){.passflow-dialog-header{text-align:left}}.passflow-dialog-footer{flex-direction:column-reverse;gap:8px;display:flex}@media (width>=640px){.passflow-dialog-footer{flex-direction:row;justify-content:flex-end}}.passflow-dialog-title{font-size:var(--passflow-h2);font-weight:var(--passflow-semibold);letter-spacing:-.02em;line-height:1}.passflow-dialog-description{color:var(--passflow-secondary-text-color);font-size:var(--passflow-body-2)}.passflow-popover-content{background-color:var(--passflow-white);z-index:10;border-radius:4px;box-shadow:0 5px 20px #0000000d}.passflow-popover-menu{flex-direction:column;align-items:flex-start;gap:4px;width:125px;padding:6px;display:flex}.passflow-popover-menu-item{justify-content:flex-start;gap:6px;width:100%;padding:6px}.passflow-popover-menu-item:hover{background-color:var(--passflow-background)}.passflow-popover-menu-item-text{color:var(--passflow-dark-three);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium)}.passflow-popover-menu-item-text--warning{color:var(--passflow-warning)}.passflow-switch-wrapper{cursor:pointer;align-items:center;gap:12px;display:inline-flex;position:relative}.passflow-switch-label{color:var(--passflow-text-color);font-size:var(--passflow-caption);font-weight:var(--passflow-medium)}.passflow-switch-input{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.passflow-switch-track{background-color:var(--passflow-grey-two);border-radius:9999px;width:28px;height:16px;transition:background-color .2s;position:relative}.passflow-switch-track:after{background-color:var(--passflow-white);content:"";border-radius:50%;width:12px;height:12px;transition:transform .2s;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.passflow-switch-input:focus-visible+.passflow-switch-track{outline:2px solid var(--passflow-focus-color);outline-offset:2px}.passflow-switch-wrapper--disabled{cursor:not-allowed;opacity:.6}.passflow-switch-input:checked+.passflow-switch-track{background-color:var(--passflow-primary-color)}.passflow-switch-input:checked+.passflow-switch-track:after{transform:translate(12px,-50%)}[dir=rtl] .passflow-switch-input:checked+.passflow-switch-track:after{transform:translate(-14px,-50%)}.passflow-icon{background-color:#0000}.passflow-icon--small{width:16px;height:16px}.passflow-icon--medium{width:20px;height:20px}.passflow-icon--big{width:32px;height:32px}.passflow-icon--large{width:44px;height:44px}.passflow-icon--warning{stroke:var(--passflow-warning)}.passflow-icon--white{background-color:var(--passflow-white)}.passflow-icon--success{stroke:var(--passflow-primary-color)}.passflow-verify-otp{flex-direction:column;gap:32px;display:flex}.passflow-verify-otp-container{background-color:var(--passflow-card-color);border-radius:6px;flex-direction:column;gap:56px;padding:24px 24px 56px;display:flex;box-shadow:0 4px 15px #00000017}.passflow-verify-otp-button{background-color:var(--passflow-background);border:none;position:relative}.passflow-verify-otp-button-icon{position:absolute;top:50%;right:12px;transform:translateY(-50%)}.passflow-verify-otp-wrapper{flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex}.passflow-verify-otp-inputs{justify-content:center;align-items:center;gap:10px;display:flex}.passflow-verify-otp-error{justify-content:center;align-items:center;gap:4px;display:flex}.passflow-verify-otp-error-text{color:var(--passflow-warning);font-size:var(--passflow-caption);font-weight:var(--passflow-medium)}.passflow-verify-otp-resend{color:var(--passflow-secondary-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);text-align:center}.passflow-providers-box{flex-flow:wrap;justify-content:center;align-items:center;gap:8px;width:100%;display:flex}.passflow-providers-box--grid{grid-template-columns:repeat(auto-fit,minmax(49px,1fr));justify-content:stretch;align-items:stretch;gap:8px;display:grid}.passflow-provider-item{align-items:center;gap:8px;display:flex}.passflow-provider-text{color:var(--passflow-federated_button_text_color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);text-transform:capitalize}.passflow-ripple-container{position:absolute;inset:0;overflow:hidden}.passflow-ripple-effect{opacity:.6;background-color:currentColor}.passflow-form{flex-direction:column;gap:32px;width:100%;max-width:384px;display:flex}.passflow-form-switch{justify-content:center;align-items:center;width:100%;margin-bottom:-8px;display:flex}.passflow-form-container{background-color:var(--passflow-card-color);border-radius:6px;gap:24px;max-width:384px;padding:24px;box-shadow:0 4px 15px #00000017}.passflow-form-container,.passflow-form-field{flex-direction:column;justify-content:flex-start;align-items:flex-start;width:100%;display:flex}.passflow-form-field{gap:6px}.passflow-form-field__header{justify-content:space-between;align-items:center;width:100%;max-height:18px;display:flex}.passflow-form-error{justify-content:center;align-items:center;gap:4px;margin-top:4px;display:flex}.passflow-form-error-text{color:var(--passflow-warning);font-size:var(--passflow-caption);font-weight:var(--passflow-medium)}.passflow-form-actions{justify-content:center;align-items:center;width:100%;max-width:336px;margin:0 auto;display:flex}.passflow-form-actions--top-space{margin-top:-8px}.passflow-form-divider{justify-content:space-between;align-items:center;width:100%;padding:9px 0;display:flex;position:relative}.passflow-form-divider__line-left,.passflow-form-divider__line-right{background-color:var(--passflow-divider-color);width:105px;height:1px}.passflow-form-divider__text{color:var(--passflow-secondary-text-color);font-size:var(--passflow-caption);font-weight:var(--passflow-medium);background-color:#0000;padding:0 15px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.passflow-form-providers{flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:24px;width:100%;max-width:336px;margin:0 auto;display:flex}.passflow-link{color:var(--passflow-link-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-semibold);line-height:18px}.passflow-dont-have-account,.passflow-have-account,.passflow-remember-password{color:var(--passflow-secondary-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);text-align:center;line-height:18px}.passflow-country-search-wrapper{background-color:var(--passflow-card-color);scrollbar-color:var(--passflow-secondary-text-color) transparent;scrollbar-width:thin;z-index:10;border-bottom-right-radius:4px;border-bottom-left-radius:4px;width:100%;max-height:181px;position:absolute;top:2px;left:0;overflow-y:auto;transform:translateY(48px);box-shadow:0 4px 15px #00000017}.passflow-country-search-wrapper--without-preferred{max-height:170px}.passflow-country-search-wrapper::-webkit-scrollbar{width:6px}.passflow-country-search-wrapper::-webkit-scrollbar-track{background:0 0}.passflow-country-search-wrapper::-webkit-scrollbar-thumb{background-color:var(--passflow-secondary-text-color);border-radius:3px}.passflow-country-search-wrapper--show{opacity:1;visibility:visible;transition:opacity .2s,visibility .2s;display:block}.passflow-country-search-wrapper--hidden{opacity:0;visibility:hidden;display:none}.passflow-country-search-sticky-bottom,.passflow-country-search-sticky-top{background-color:var(--passflow-card-color);z-index:10;width:100%;height:10px;position:sticky;left:0;overflow-x:hidden}.passflow-country-search-sticky-top{top:0}.passflow-country-search-sticky-bottom{bottom:0}.passflow-country-search-item{background-color:var(--passflow-card-color);cursor:pointer;justify-content:flex-start;align-items:center;width:100%;max-height:32px;padding:7px 12px;transition:background-color .2s;display:flex}.passflow-country-search-item:focus,.passflow-country-search-item:hover{background-color:var(--passflow-background)}.passflow-country-search-flag{width:24px;height:18px}.passflow-country-search-name{color:var(--passflow-text-color);margin-left:8px}.passflow-country-search-code,.passflow-country-search-name{font-size:var(--passflow-body-2);font-weight:var(--passflow-medium)}.passflow-country-search-code{color:var(--passflow-secondary-text-color);margin-left:auto;transition:color .2s}.passflow-country-search-item:hover .passflow-country-search-code{color:var(--passflow-text-color)}.passflow-country-search-divider{border-bottom:1px solid var(--passflow-divider-color);font-size:var(--passflow-caption);margin:12px 12px 6px;padding-bottom:6px}.passflow-country-search-divider,.passflow-country-search-no-matches{color:var(--passflow-secondary-text-color);font-weight:var(--passflow-medium)}.passflow-country-search-no-matches{font-size:var(--passflow-body-2);text-align:center;width:100%;margin:0 auto;padding:15px;display:block}.passflow-forgot-password-success-wrapper{flex-direction:column;gap:24px;width:100%;display:flex}.passflow-forgot-password-success-container{flex-direction:column;gap:32px;width:100%;max-width:336px;margin-top:-8px;display:flex}.passflow-forgot-password-success-text{color:var(--passflow-secondary-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);text-align:center}.passflow-forgot-password-success-text--strong{font-weight:var(--passflow-bold)}.passflow-verify-challenge-magic-link-wrapper{flex-direction:column;width:100%;margin:0 auto;display:flex}.passflow-verify-challenge-magic-link-container{flex-direction:column;gap:32px;width:100%;max-width:336px;margin-top:-24px;display:flex}.passflow-verify-challenge-magic-link-text{color:var(--passflow-secondary-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);text-align:center}.passflow-verify-challenge-magic-link-text--strong{font-weight:var(--passflow-bold)}.passflow-verify-challenge-success-wrapper{gap:32px}.passflow-verify-challenge-success-container,.passflow-verify-challenge-success-wrapper{flex-direction:column;justify-content:flex-start;align-items:center;width:100%;display:flex}.passflow-verify-challenge-success-container{gap:8px}.passflow-verify-challenge-success-text{color:var(--passflow-text-color);font-size:var(--passflow-h2);font-weight:var(--passflow-bold);text-align:center}.passflow-reset-password-text,.passflow-verify-challenge-success-text-secondary{color:var(--passflow-secondary-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);text-align:center}.passflow-reset-password-text{margin-top:-32px;display:block}.passflow-form-error--critical,.passflow-form-error--persistent{text-align:center;background-color:#fef2f2;border:1px solid #fecaca;border-radius:12px;flex-direction:column;align-items:center;gap:12px;margin-top:16px;padding:20px 24px;display:flex}.passflow-form-error--critical .icon-warning,.passflow-form-error--persistent .icon-warning{color:#dc2626;flex-shrink:0;width:32px;height:32px}.passflow-form-error-content{flex-direction:column;align-items:center;gap:16px;width:100%;display:flex}.passflow-form-error--critical .passflow-form-error-text,.passflow-form-error--persistent .passflow-form-error-text{color:#991b1b;margin:0;font-size:14px;line-height:1.5}.passflow-form-error-actions{flex-direction:column;justify-content:center;align-items:center;gap:12px;width:100%;display:flex}.passflow-button-setup-2fa{white-space:nowrap;min-width:140px}.passflow-form-info{background-color:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;align-items:flex-start;gap:12px;margin-top:16px;padding:16px;display:flex}.passflow-form-info .icon-info{color:#2563eb;flex-shrink:0;width:20px;height:20px;margin-top:2px}.passflow-form-info-text{color:#1e40af;font-size:14px;line-height:1.5}.passflow-field--disabled,.passflow-field-otp--disabled{cursor:not-allowed;opacity:.5;pointer-events:none}.passflow-button-back-to-signin{white-space:nowrap;min-width:140px}.icon-info{color:#2563eb}.passflow-country-flag{color:var(--passflow-secondary-text-color);font-size:9px;font-weight:var(--passflow-bold);text-transform:uppercase;background-repeat:no-repeat;background-size:408px 384px;border-radius:2px;flex:none;justify-content:center;align-items:center;width:24px;height:18px;line-height:1;display:inline-flex;overflow:hidden}.passflow-country-flag--fallback{background-color:var(--passflow-input-background-color);outline:1px solid var(--passflow-input-border-color)}.icon-warning{filter:brightness(0)saturate()invert(17%)sepia(98%)saturate(3037%)hue-rotate(354deg)brightness(87%)contrast(90%)}.icon-white{filter:brightness(0)saturate()invert()sepia(2%)saturate(7%)hue-rotate(80deg)brightness(103%)contrast()}.passflow-icon--match-text{-webkit-mask:var(--passflow-icon-mask) center /contain no-repeat;mask:var(--passflow-icon-mask) center /contain no-repeat;background-color:currentColor;flex:none;display:inline-block}.passflow-continuing-status{color:var(--passflow-secondary-text-color);font-family:var(--passflow-font-family);font-size:var(--passflow-body-1);justify-content:center;align-items:center;min-height:100vh;display:flex}.react-international-phone-country-selector{position:relative}.react-international-phone-country-selector-button{appearance:button;background-color:var(--react-international-phone-country-selector-background-color,var(--react-international-phone-background-color,#fff));border:1px solid var(--react-international-phone-country-selector-border-color,var(--react-international-phone-border-color,#dcdcdc));box-sizing:border-box;cursor:pointer;height:var(--react-international-phone-height,36px);text-transform:none;user-select:none;justify-content:center;align-items:center;margin:0;padding:0;display:flex}.react-international-phone-country-selector-button:hover{background-color:var(--react-international-phone-country-selector-background-color-hover,#f5f5f5)}.react-international-phone-country-selector-button--hide-dropdown{cursor:auto}.react-international-phone-country-selector-button--hide-dropdown:hover{background-color:#0000}.react-international-phone-country-selector-button__button-content{justify-content:center;align-items:center;display:flex}.react-international-phone-country-selector-button__flag-emoji{margin:0 4px}.react-international-phone-country-selector-button__flag-emoji--disabled{opacity:.75}.react-international-phone-country-selector-button__dropdown-arrow{border-left:var(--react-international-phone-country-selector-arrow-size,4px) solid transparent;border-right:var(--react-international-phone-country-selector-arrow-size,4px) solid transparent;border-top:var(--react-international-phone-country-selector-arrow-size,4px) solid var(--react-international-phone-country-selector-arrow-color,#777);margin-right:4px;transition:all .1s ease-out}.react-international-phone-country-selector-button__dropdown-arrow--active{transform:rotateX(180deg)}.react-international-phone-country-selector-button__dropdown-arrow--disabled{border-top-color:var(--react-international-phone-disabled-country-selector-arrow-color,#999)}.react-international-phone-country-selector-button--disabled{cursor:auto}.react-international-phone-country-selector-button--disabled,.react-international-phone-country-selector-button--disabled:hover{background-color:var(--react-international-phone-disabled-country-selector-background-color,var(--react-international-phone-disabled-background-color,#f5f5f5))}.react-international-phone-flag-emoji{box-sizing:border-box;height:var(--react-international-phone-flag-height,24px);width:var(--react-international-phone-flag-width,24px)}.react-international-phone-country-selector-dropdown{background-color:var(--react-international-phone-dropdown-item-background-color,var(--react-international-phone-background-color,#fff));box-shadow:var(--react-international-phone-dropdown-shadow,2px 2px 16px #00000040);color:var(--react-international-phone-dropdown-item-text-color,var(--react-international-phone-text-color,#222));left:var(--react-international-phone-dropdown-left,0);max-height:200px;top:var(--react-international-phone-dropdown-top,44px);z-index:1;flex-direction:column;width:300px;margin:0;padding:4px 0;list-style:none;display:flex;position:absolute;overflow-y:scroll}.react-international-phone-country-selector-dropdown__preferred-list-divider{background:var(--react-international-phone-dropdown-preferred-list-divider-color,var(--react-international-phone-border-color,#dcdcdc));height:1px;margin:var(--react-international-phone-dropdown-preferred-list-divider-margin,0);border:none}.react-international-phone-country-selector-dropdown__list-item{box-sizing:border-box;min-height:var(--react-international-phone-dropdown-item-height,28px);align-items:center;padding:2px 8px;display:flex}.react-international-phone-country-selector-dropdown__list-item-flag-emoji{margin-right:8px}.react-international-phone-country-selector-dropdown__list-item-country-name{font-size:var(--react-international-phone-dropdown-item-font-size,14px);text-overflow:ellipsis;white-space:nowrap;margin-right:8px;overflow:hidden}.react-international-phone-country-selector-dropdown__list-item-dial-code{color:var(--react-international-phone-dropdown-item-dial-code-color,gray);font-size:var(--react-international-phone-dropdown-item-font-size,14px)}.react-international-phone-country-selector-dropdown__list-item:hover{background-color:var(--react-international-phone-selected-dropdown-item-background-color,var(--react-international-phone-selected-dropdown-item-background-color,#f5f5f5));cursor:pointer}.react-international-phone-country-selector-dropdown__list-item--focused,.react-international-phone-country-selector-dropdown__list-item--selected{background-color:var(--react-international-phone-selected-dropdown-item-background-color,#f5f5f5);color:var(--react-international-phone-selected-dropdown-item-text-color,var(--react-international-phone-text-color,#222))}.react-international-phone-country-selector-dropdown__list-item--focused .react-international-phone-country-selector-dropdown__list-item-dial-code,.react-international-phone-country-selector-dropdown__list-item--selected .react-international-phone-country-selector-dropdown__list-item-dial-code{color:var(--react-international-phone-selected-dropdown-item-dial-code-color,var(--react-international-phone-dropdown-item-dial-code-color,gray))}.react-international-phone-country-selector-dropdown__list-item--focused{background-color:var(--react-international-phone-selected-dropdown-item-background-color,var(--react-international-phone-selected-dropdown-item-background-color,#f5f5f5))}.react-international-phone-dial-code-preview{background-color:var(--react-international-phone-dial-code-preview-background-color,var(--react-international-phone-background-color,#fff));border:1px solid var(--react-international-phone-dial-code-preview-border-color,var(--react-international-phone-border-color,#dcdcdc));color:var(--react-international-phone-dial-code-preview-text-color,var(--react-international-phone-text-color,#222));font-size:var(--react-international-phone-dial-code-preview-font-size,var(--react-international-phone-font-size,13px));justify-content:center;align-items:center;margin-right:-1px;padding:0 8px;display:flex}.react-international-phone-dial-code-preview--disabled{background-color:var(--react-international-phone-dial-code-preview-disabled-background-color,var(--react-international-phone-disabled-background-color,#f5f5f5));color:var(--react-international-phone-dial-code-preview-disabled-text-color,var(--react-international-phone-disabled-text-color,#666))}.react-international-phone-input-container{display:flex}.react-international-phone-input-container .react-international-phone-country-selector-button{border-radius:var(--react-international-phone-border-radius,4px);border-top-right-radius:0;border-bottom-right-radius:0;margin-right:-1px}.react-international-phone-input-container .react-international-phone-input{background-color:var(--react-international-phone-background-color,#fff);border:1px solid var(--react-international-phone-border-color,#dcdcdc);border-radius:var(--react-international-phone-border-radius,4px);box-sizing:border-box;color:var(--react-international-phone-text-color,#222);font-family:inherit;font-size:var(--react-international-phone-font-size,13px);height:var(--react-international-phone-height,36px);border-top-left-radius:0;border-bottom-left-radius:0;margin:0;padding:0 8px;overflow:visible}.react-international-phone-input-container .react-international-phone-input:focus{outline:none}.react-international-phone-input-container .react-international-phone-input--disabled{background-color:var(--react-international-phone-disabled-background-color,#f5f5f5);color:var(--react-international-phone-disabled-text-color,#666)}.passflow-spinner{--passflow-spinner-diameter:26px;--passflow-spinner-stroke:3px;border:var(--passflow-spinner-stroke) solid var(--passflow-grey-three);border-top-color:var(--passflow-primary-color);height:var(--passflow-spinner-diameter);width:var(--passflow-spinner-diameter);border-radius:50%;flex:none;animation:.8s linear infinite passflow-spinner-spin}.passflow-spinner--small{--passflow-spinner-diameter:18px;--passflow-spinner-stroke:2px}@keyframes passflow-spinner-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.passflow-spinner{animation-duration:3s}}#passflow-wrapper{box-sizing:border-box;-webkit-font-smoothing:antialiased;font-family:Inter,sans-serif;overflow-x:hidden}#passflow-wrapper,.passflow-wrapper{width:100%;min-height:100dvh}.passflow-wrapper{background-color:var(--passflow-background-color);background-image:var(--passflow-background-image);color:var(--passflow-text-color);background-position:50%;background-repeat:no-repeat;background-size:cover;flex-direction:column;display:flex}.passflow-branding{background-color:var(--passflow-branding-background-color);border-radius:4px;flex:none;justify-content:center;align-self:flex-end;align-items:center;gap:4px;margin:0 24px 24px;padding:7px 12px;display:flex}.passflow-branding-text{color:var(--passflow-secondary-text-color);font-size:11px;font-weight:var(--passflow-bold);line-height:18px}.passflow-branding-text-secondary{font-weight:var(--passflow-normal)}.passflow-form-main-wrapper{border-radius:6px;flex:1 0 auto;justify-content:safe center;gap:32px;padding:32px 24px}.passflow-form-main-container,.passflow-form-main-wrapper{flex-direction:column;align-items:center;width:100%;display:flex}.passflow-form-main-container{justify-content:center;gap:24px;max-width:384px;margin:0 auto}.passflow-form-header{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.passflow-form-title{color:var(--passflow-text-color);font-size:var(--passflow-h2);font-weight:var(--passflow-bold)}.passflow-form-subtitle{color:var(--passflow-secondary-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);text-align:center}.passflow-form-main-container-logo{object-fit:contain;object-position:center;border-radius:8px;width:auto;max-width:min(160px,100%);height:auto;max-height:44px}.passflow-error-container{gap:32px;margin-top:-8px}.passflow-error-container,.passflow-error-container-text-wrapper{flex-direction:column;justify-content:start;align-items:center;display:flex}.passflow-error-container-text-wrapper{gap:8px}.passflow-error-container-text{color:var(--passflow-warning);font-size:var(--passflow-h2);font-weight:var(--passflow-bold);text-align:center}.passflow-error-container-text-secondary{color:var(--passflow-secondary-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);text-align:center}.icon-success{filter:brightness(0)saturate()invert(35%)sepia(38%)saturate(1173%)hue-rotate(106deg)brightness(90%)contrast(95%)}.passflow-login-screen-actions{gap:var(--passflow-spacing-4);max-width:336px;margin:0 auto}.passflow-login-screen-actions,.passflow-login-screen-notice{flex-direction:column;align-items:center;width:100%;display:flex}.passflow-login-screen-notice{gap:var(--passflow-spacing-3);max-width:384px}.passflow-login-screen-code{background-color:var(--passflow-input-background-color);box-sizing:border-box;color:var(--passflow-text-color);font-size:var(--passflow-h1);font-weight:var(--passflow-bold);padding:var(--passflow-spacing-4);user-select:all;border-radius:6px;width:100%}.passflow-login-screen-code,.passflow-login-screen-code-input{letter-spacing:.12em;text-align:center;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace}.passflow-login-screen-code-input{font-size:var(--passflow-body-1);text-transform:uppercase}.passflow-login-screen-text{color:var(--passflow-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-normal);line-height:1.5}.passflow-login-screen-centered-text{text-align:center}.passflow-login-screen-centered{text-align:center;align-items:center}.passflow-login-screen-hint{color:var(--passflow-secondary-text-color);font-size:var(--passflow-caption);font-weight:var(--passflow-medium);text-align:center;line-height:1.5}.passflow-login-screen-app-name{color:var(--passflow-text-color);font-weight:var(--passflow-semibold)}.passflow-login-screen-success{align-items:center;gap:var(--passflow-spacing-1);justify-content:center;display:flex}.passflow-login-screen-success-text{color:var(--passflow-success);font-size:var(--passflow-caption);font-weight:var(--passflow-medium)}.passflow-login-screen-spinner{border:3px solid var(--passflow-grey-three);border-top-color:var(--passflow-primary-color);border-radius:50%;width:26px;height:26px;animation:.8s linear infinite passflow-login-screen-spin}.passflow-login-screen-spinner--small{border-width:2px;width:18px;height:18px}@keyframes passflow-login-screen-spin{to{transform:rotate(1turn)}}@media (width<=480px){.passflow-form-main-wrapper{padding:24px 16px}.passflow-branding{align-self:center;margin:0 16px 16px}}@media (prefers-reduced-motion:reduce){.passflow-login-screen-spinner{animation-duration:3s}}.passflow-login-screen-status{align-items:center;gap:var(--passflow-spacing-3);flex-direction:column;width:100%;display:flex}.passflow-consent-scopes{gap:var(--passflow-spacing-2);flex-direction:column;width:100%;max-width:384px;margin:0 auto;padding:0;list-style:none;display:flex}.passflow-consent-scope{background-color:var(--passflow-card-color);border:1px solid var(--passflow-divider-color);box-sizing:border-box;gap:var(--passflow-spacing-1);padding:var(--passflow-spacing-3) var(--passflow-spacing-4);text-align:left;border-radius:6px;flex-direction:column;display:flex}.passflow-consent-scope-description{color:var(--passflow-secondary-text-color);font-size:var(--passflow-caption);font-weight:var(--passflow-normal);margin:0;line-height:1.5}.passflow-consent-actions{gap:var(--passflow-spacing-2);flex-direction:column;width:100%;max-width:336px;margin:0 auto;display:flex}.passflow-upgrade-dialog{background-color:var(--passflow-card-color);border-radius:var(--passflow-radius);box-sizing:border-box;color:var(--passflow-text-color);font-family:var(--passflow-font-family);gap:var(--passflow-spacing-6);max-height:calc(100dvh - var(--passflow-spacing-6)*2);padding:var(--passflow-spacing-6);width:min(var(--passflow-surface-width),calc(100vw - var(--passflow-spacing-6)*2));flex-direction:column;display:flex;overflow-y:auto}.passflow-upgrade-dialog__header{gap:var(--passflow-spacing-2);text-align:left;flex-direction:column;display:flex}.passflow-upgrade-dialog__form,.passflow-upgrade-dialog__status{gap:var(--passflow-spacing-4);flex-direction:column;width:100%;display:flex}.passflow-upgrade-dialog__factor{background-color:var(--passflow-input-background-color);border-radius:var(--passflow-radius);gap:var(--passflow-spacing-1);padding:var(--passflow-spacing-3);flex-direction:column;display:flex}.passflow-upgrade-dialog__factor-label{color:var(--passflow-text-color);font-size:var(--passflow-body-1);font-weight:var(--passflow-semibold)}.passflow-upgrade-dialog__factor-hint,.passflow-upgrade-dialog__status-detail{color:var(--passflow-secondary-text-color);font-size:var(--passflow-caption);font-weight:var(--passflow-normal);margin:0}.passflow-upgrade-dialog__actions,.passflow-upgrade-dialog__alternatives,.passflow-upgrade-dialog__field{gap:var(--passflow-spacing-2);flex-direction:column;width:100%;display:flex}.passflow-upgrade-dialog__alternatives{margin:0;padding:0;list-style:none}.passflow-upgrade-dialog__alternative{width:100%}.passflow-upgrade-dialog__status-head{align-items:center;gap:var(--passflow-spacing-2);display:flex}.passflow-upgrade-dialog__status-message{font-size:var(--passflow-body-1);font-weight:var(--passflow-medium)}.passflow-upgrade-dialog__status-head--success .passflow-upgrade-dialog__status-message{color:var(--passflow-success)}.passflow-upgrade-dialog__status-head--problem .passflow-upgrade-dialog__status-message{color:var(--passflow-warning)}.passflow-upgrade-dialog__status-head--neutral .passflow-upgrade-dialog__status-message,.passflow-upgrade-dialog__status-head--working .passflow-upgrade-dialog__status-message{color:var(--passflow-text-color)}.passflow-upgrade-dialog__bars{background-color:var(--passflow-input-background-color);border-radius:var(--passflow-radius);gap:var(--passflow-spacing-1);padding:var(--passflow-spacing-3);flex-direction:column;display:flex}.passflow-upgrade-dialog__bar{font-size:var(--passflow-caption);gap:var(--passflow-spacing-3);justify-content:space-between;display:flex}.passflow-upgrade-dialog__bar-term{color:var(--passflow-secondary-text-color);font-weight:var(--passflow-medium)}.passflow-upgrade-dialog__bar-value{color:var(--passflow-text-color);font-weight:var(--passflow-semibold)}
1
+ @import "https://fonts.googleapis.com/css2?family=Gasoek+One&family=Inter:opsz,wght@14..32,100..900&display=swap";[class*=passflow-]{box-sizing:border-box;font:inherit;vertical-align:baseline;border:0;margin:0;padding:0}.passflow-article,.passflow-aside,.passflow-details,.passflow-figcaption,.passflow-figure,.passflow-footer,.passflow-header,.passflow-hgroup,.passflow-menu,.passflow-nav,.passflow-section{display:block}html{scroll-behavior:smooth;font-size:16px}body{text-rendering:optimizespeed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;line-height:1.5}.passflow-list{list-style:none}.passflow-link{color:inherit;text-decoration:none}.passflow-canvas,.passflow-image,.passflow-picture,.passflow-svg,.passflow-video{max-width:100%;display:block}.passflow-button{background:0 0;border:none;padding:0}.passflow-button,.passflow-input,.passflow-select,.passflow-textarea{font:inherit;color:inherit}.passflow-table{border-collapse:collapse;border-spacing:0}@media (prefers-reduced-motion:reduce){[class*=passflow-]{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body,html{box-sizing:border-box;margin:0;padding:0}:root{--passflow-primary:#0c59dd;--passflow-primary-dark:#0a47b1;--passflow-warning:#b42318;--passflow-warning-dark:#8f1f17;--passflow-dark:#1e1e1e;--passflow-dark-two:#2e2e2e;--passflow-dark-three:#3e3e3e;--passflow-white:#fff;--passflow-grey-one:#5f6368;--passflow-grey-two:#bfbfbf;--passflow-grey-three:#e9eaf0;--passflow-grey-four:#f3f5f7;--passflow-background:#f8f9fb;--passflow-success:#067647;--passflow-primary-color:var(--passflow-primary);--passflow-text-color:var(--passflow-dark);--passflow-secondary-text-color:var(--passflow-grey-one);--passflow-button-text-color:var(--passflow-white);--passflow-background-color:var(--passflow-white);--passflow-background-image:url();--passflow-card-color:var(--passflow-white);--passflow-branding-background-color:var(--passflow-background);--passflow-input-background-color:var(--passflow-grey-four);--passflow-input-border-color:var(--passflow-grey-four);--passflow-passkey-button-text-color:var(--passflow-white);--passflow-passkey-button-background-color:var(--passflow-dark);--passflow-divider-color:var(--passflow-grey-three);--passflow-federated_button_background_color:var(--passflow-background);--passflow-federated_button_text_color:var(--passflow-dark);--passflow-focus-color:var(--passflow-primary-color);--passflow-link-color:var(--passflow-primary-color);--passflow-font-family:"Inter", sans-serif;--passflow-h1:2rem;--passflow-h2:1.5rem;--passflow-body-1:1rem;--passflow-body-2:13px;--passflow-caption:12px;--passflow-normal:400;--passflow-medium:500;--passflow-semibold:600;--passflow-bold:700;--passflow-spacing-1:4px;--passflow-spacing-2:8px;--passflow-spacing-3:12px;--passflow-spacing-4:16px;--passflow-spacing-5:20px;--passflow-spacing-6:24px;--passflow-radius:4px;--passflow-surface-width:384px}.passflow-heading{font-size:var(--passflow-h1);color:var(--passflow-text-color);margin-bottom:var(--passflow-spacing-4);font-weight:600}.passflow-text{color:var(--passflow-text-color);font-size:var(--passflow-body-1);line-height:1.5}.passflow-secondary-text{color:var(--passflow-secondary-text-color);font-size:var(--passflow-body-2)}.passflow-secondary-font{font-family:Gasoek One,sans-serif;font-style:normal}.passflow-button{padding:var(--passflow-spacing-3) var(--passflow-spacing-6);font-size:var(--passflow-body-2);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;font-weight:500;transition:all .2s;display:inline-flex;position:relative;overflow:hidden}.passflow-button:focus-visible{outline:2px solid var(--passflow-focus-color);outline-offset:2px}.passflow-button--primary{color:var(--passflow-button-text-color);background-color:var(--passflow-primary-color);box-shadow:0 3px 15px #0c59dd59}.passflow-button--primary:focus-visible,.passflow-button--primary:hover{background-color:var(--passflow-primary-color)}.passflow-button--secondary{background-color:var(--passflow-white);border:1px solid var(--passflow-primary-color);color:var(--passflow-primary-color)}.passflow-button--secondary:focus-visible,.passflow-button--secondary:hover{border-color:var(--passflow-primary-color);color:var(--passflow-primary-color)}.passflow-button--outlined{background-color:var(--passflow-white);border:1px solid var(--passflow-grey-four);color:var(--passflow-dark)}.passflow-button--outlined:focus-visible,.passflow-button--outlined:hover{background-color:var(--passflow-grey-four)}.passflow-button--warning{background-color:var(--passflow-warning);color:var(--passflow-button-text-color);box-shadow:0 5px 9px #d85d5d40}.passflow-button--warning:focus-visible,.passflow-button--warning:hover{background-color:var(--passflow-warning-dark)}.passflow-button--clean{background-color:var(--passflow-white);border:none}.passflow-button--provider{background-color:var(--passflow-federated_button_background_color)}.passflow-button--provider:focus-visible,.passflow-button--provider:hover{background-color:var(--passflow-grey-four)}.passflow-button--dark{color:var(--passflow-button-text-color);background-color:var(--passflow-dark-three);box-shadow:0 3px 15px #1e1e1e59}.passflow-button--dark:focus-visible,.passflow-button--dark:hover{opacity:.9}.passflow-button--small{width:100%;max-width:28px;height:28px;padding:var(--passflow-spacing-1)}.passflow-button--medium{width:100%;max-width:66px;height:32px;padding:7px var(--passflow-spacing-3);font-size:var(--passflow-body-2)}.passflow-button--big{width:100%;min-width:40px;max-width:336px;height:48px;padding:15px var(--passflow-spacing-2);font-size:var(--passflow-body-2);font-weight:600}.passflow-button--dark:disabled,.passflow-button--primary:disabled,.passflow-button--warning:disabled{cursor:not-allowed;background-color:var(--passflow-grey-two);box-shadow:none}.passflow-button--outlined:disabled,.passflow-button--secondary:disabled{cursor:not-allowed;background-color:var(--passflow-white);border-color:var(--passflow-grey-four);color:var(--passflow-grey-two)}.passflow-button--clean:disabled{cursor:not-allowed;opacity:.5;background-color:#0000}.passflow-button--with-icon{gap:var(--passflow-spacing-2)}.passflow-button--as-icon{width:max-content;height:max-content;padding:0}.passflow-button--option{align-items:flex-start;gap:var(--passflow-spacing-1);width:100%;max-width:none;height:auto;padding:var(--passflow-spacing-3);text-align:left;background-color:var(--passflow-white);border:1px solid var(--passflow-grey-four);color:var(--passflow-text-color);flex-direction:column}.passflow-button--option:focus-visible,.passflow-button--option:hover{background-color:var(--passflow-grey-four)}.passflow-button--option[aria-pressed=true]{border-color:var(--passflow-primary-color)}.passflow-button--option:disabled{cursor:not-allowed;background-color:var(--passflow-white);border-color:var(--passflow-grey-four)}.passflow-button__option-label{font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);color:var(--passflow-text-color)}.passflow-button__option-hint{font-size:var(--passflow-caption);font-weight:var(--passflow-normal);color:var(--passflow-secondary-text-color)}.passflow-button--option:disabled .passflow-button__option-hint,.passflow-button--option:disabled .passflow-button__option-label{color:var(--passflow-grey-two)}.passflow-button--link{width:auto;max-width:none;height:auto;color:var(--passflow-link-color);font-size:inherit;font-weight:var(--passflow-semibold);line-height:inherit;background-color:#0000;border:none;border-radius:0;padding:0;display:inline;overflow:visible}.passflow-button--link:focus-visible,.passflow-button--link:hover{text-decoration:underline}.passflow-button--link:disabled{cursor:not-allowed;color:var(--passflow-grey-two);text-decoration:none}.passflow-button-go-back-error,.passflow-button-passkey,.passflow-button-passwordless,.passflow-button-resend-magic-link,.passflow-button-resend-reset-password,.passflow-button-reset-password,.passflow-button-send-reset-password,.passflow-button-signin,.passflow-button-signup{font-size:var(--passflow-body-2);line-height:18px;font-weight:var(--passflow-semibold);margin:0 auto}.passflow-button-passkey{background-color:var(--passflow-passkey-button-background-color);color:var(--passflow-passkey-button-text-color)}.passflow-button-passwordless--active{border:1px solid var(--passflow-primary-color);color:var(--passflow-primary-color);font-size:var(--passflow-body-2);line-height:18px;font-weight:var(--passflow-semibold);background-color:#0000}.passflow-button-show-country{background-color:var(--passflow-input-background-color);border-radius:4px;gap:4px;width:56px;min-width:56px;margin-left:8px;padding:12px 4px}.passflow-button-display-password{background-color:#0000}.passflow-send-reset-wrapper{flex-direction:column;gap:24px;display:flex}.passflow-button-resend-magic-link,.passflow-button-resend-reset-password{max-width:196px;font-weight:var(--passflow-medium)}.passflow-button-go-back-error{width:196px;max-width:100%;font-weight:var(--passflow-medium)}.passflow-button-resend-magic-link:hover{background-color:var(--passflow-grey-four)}.passflow-button-timer{max-width:max-content;font-weight:var(--passflow-semibold);background-color:var(--passflow-background-color);padding:3px;display:inline-block}.passflow-button-timer--active{color:var(--passflow-secondary-text-color);opacity:1!important}.passflow-button-timer--inactive{color:var(--passflow-primary-color)}.passflow-field{width:100%;min-height:48px;padding:11px var(--passflow-spacing-3);background-color:var(--passflow-input-background-color);color:var(--passflow-dark);font-size:var(--passflow-body-2);outline:1px solid var(--passflow-input-border-color);border-radius:4px;justify-content:flex-start;align-items:center;display:flex}.passflow-field::placeholder{color:var(--passflow-secondary-text-color)}.passflow-field--focused:focus-visible{outline:1px solid var(--passflow-primary-color)}.passflow-field--error{outline:1px solid var(--passflow-warning)!important}.passflow-field:disabled{border-color:var(--passflow-input-border-color);color:var(--passflow-secondary-text-color);background-color:var(--passflow-input-background-color);cursor:not-allowed}.passflow-ripple{background-color:#ffffff4d;border-radius:50%;animation:.6s linear passflow-ripple;position:absolute;transform:scale(0)}@keyframes passflow-ripple{to{opacity:0;transform:scale(4)}}@media (prefers-reduced-motion:reduce){.passflow-ripple{animation:none;display:none}}.passflow-container{width:100%;max-width:1200px;padding:0 var(--passflow-spacing-4);margin:0 auto}.passflow-flex{display:flex}.passflow-flex-col{flex-direction:column}.passflow-items-center{align-items:center}.passflow-justify-center{justify-content:center}.passflow-justify-between{justify-content:space-between}.passflow-mt-4{margin-top:var(--passflow-spacing-4)}.passflow-mb-4{margin-bottom:var(--passflow-spacing-4)}.passflow-gap-4{gap:var(--passflow-spacing-4)}.passflow-form-subscriptions{font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);color:var(--passflow-secondary-text-color);text-align:center;max-width:384px;margin:-24px auto 0;display:flex}.passflow-field-wrapper{width:100%;position:relative}.passflow-field-container{flex-direction:column;gap:6px;width:100%;display:flex}.passflow-field-label{color:var(--passflow-secondary-text-color);font-size:var(--passflow-caption);font-weight:var(--passflow-medium);line-height:18px}.passflow-field-label--error{color:var(--passflow-warning)}.passflow-field-label-button{color:var(--passflow-link-color);font-size:var(--passflow-caption);background-color:var(--passflow-card-color);width:max-content;max-width:100%;text-decoration:none}.passflow-field-input,.passflow-field-label-button{font-weight:var(--passflow-medium);line-height:18px}.passflow-field-input{width:100%;min-height:48px;padding:11px var(--passflow-spacing-3);background-color:var(--passflow-input-background-color);color:var(--passflow-text-color);font-size:var(--passflow-body-2);outline:1px solid var(--passflow-input-border-color);border-radius:4px}.passflow-field-input--with-icon{padding-right:40px}.passflow-field-icon-button{width:28px;min-width:28px;height:28px;padding:6px;position:absolute;top:50%;right:0;transform:translate(-8px,-50%)}.passflow-field-error{justify-content:center;align-items:center;gap:4px;margin-top:4px;display:flex}.passflow-field-error-text{font-size:var(--passflow-caption);font-weight:var(--passflow-medium);color:var(--passflow-warning)}.passflow-field-phone-wrapper{background-color:var(--passflow-input-background-color);width:100%;height:48px;color:var(--passflow-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);outline:1px solid var(--passflow-input-border-color);border-radius:4px;justify-content:flex-start;align-items:center;display:flex;position:relative}.passflow-field-phone-wrapper--focus{outline:1px solid var(--passflow-primary-color)}.passflow-field-phone-wrapper--error{outline:1px solid var(--passflow-warning)}.passflow-field-phone-wrapper::placeholder{color:var(--passflow-secondary-text-color)}.passflow-field-phone-input{background-color:var(--passflow-input-background-color);width:100%;height:48px;color:var(--passflow-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);border-radius:4px;padding:0 8px}.passflow-field-phone-input:focus-within{outline:none}.passflow-field-country-search-wrapper{z-index:20;padding-left:28px;position:relative}.passflow-field-country-search,.passflow-field-country-search-wrapper{background-color:var(--passflow-input-background-color);border-radius:4px;width:100%}.passflow-field-country-search{height:48px;color:var(--passflow-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);padding:0 8px}.passflow-field-country-search::placeholder{color:var(--passflow-secondary-text-color);font-size:var(--passflow-body-2);line-height:18px;font-weight:var(--passflow-medium)}.passflow-field-country-search:focus-visible{outline:none}.passflow-field-country-search-icon{position:absolute;top:50%;left:12px;transform:translateY(-50%)}.passflow-password-validation{flex-direction:column;gap:4px;margin-top:4px;display:flex}.passflow-password-validation-item{font-size:var(--passflow-caption);font-weight:var(--passflow-medium);color:var(--passflow-secondary-text-color);justify-content:flex-start;align-items:center;gap:4px;display:flex}.passflow-password-validation-item--success{color:var(--passflow-success)}.passflow-dialog-overlay{z-index:40;background-color:#1e1e1e80;position:fixed;inset:0}.passflow-dialog-content{z-index:50;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.passflow-dialog-header{text-align:center;flex-direction:column;gap:6px;display:flex}.passflow-dialog-footer{flex-direction:column-reverse;gap:8px;display:flex}@media (width>=640px){.passflow-dialog-header{text-align:left}.passflow-dialog-footer{flex-direction:row;justify-content:flex-end}}.passflow-dialog-title{font-size:var(--passflow-h2);font-weight:var(--passflow-semibold);letter-spacing:-.02em;line-height:1}.passflow-dialog-description{font-size:var(--passflow-body-2);color:var(--passflow-secondary-text-color)}.passflow-popover-content{z-index:10;background-color:var(--passflow-white);border-radius:4px;box-shadow:0 5px 20px #0000000d}.passflow-popover-menu{flex-direction:column;align-items:flex-start;gap:4px;width:125px;padding:6px;display:flex}.passflow-popover-menu-item{justify-content:flex-start;gap:6px;width:100%;padding:6px}.passflow-popover-menu-item:hover{background-color:var(--passflow-background)}.passflow-popover-menu-item-text{font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);color:var(--passflow-dark-three)}.passflow-popover-menu-item-text--warning{color:var(--passflow-warning)}.passflow-switch-wrapper{cursor:pointer;align-items:center;gap:12px;display:inline-flex;position:relative}.passflow-switch-label{color:var(--passflow-text-color);font-size:var(--passflow-caption);font-weight:var(--passflow-medium)}.passflow-switch-input{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.passflow-switch-track{background-color:var(--passflow-grey-two);border-radius:9999px;width:28px;height:16px;transition:background-color .2s;position:relative}.passflow-switch-track:after{content:"";background-color:var(--passflow-white);border-radius:50%;width:12px;height:12px;transition:transform .2s;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.passflow-switch-input:focus-visible+.passflow-switch-track{outline:2px solid var(--passflow-focus-color);outline-offset:2px}.passflow-switch-wrapper--disabled{cursor:not-allowed;opacity:.6}.passflow-switch-input:checked+.passflow-switch-track{background-color:var(--passflow-primary-color)}.passflow-switch-input:checked+.passflow-switch-track:after{transform:translate(12px,-50%)}[dir=rtl] .passflow-switch-input:checked+.passflow-switch-track:after{transform:translate(-14px,-50%)}.passflow-icon{background-color:#0000}.passflow-icon--small{width:16px;height:16px}.passflow-icon--medium{width:20px;height:20px}.passflow-icon--big{width:32px;height:32px}.passflow-icon--large{width:44px;height:44px}.passflow-icon--warning{stroke:var(--passflow-warning)}.passflow-icon--white{background-color:var(--passflow-white)}.passflow-icon--success{stroke:var(--passflow-primary-color)}.passflow-verify-otp{flex-direction:column;gap:32px;display:flex}.passflow-verify-otp-container{background-color:var(--passflow-card-color);border-radius:6px;flex-direction:column;gap:56px;padding:24px 24px 56px;display:flex;box-shadow:0 4px 15px #00000017}.passflow-verify-otp-button{background-color:var(--passflow-background);border:none;position:relative}.passflow-verify-otp-button-icon{position:absolute;top:50%;right:12px;transform:translateY(-50%)}.passflow-verify-otp-wrapper{flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex}.passflow-verify-otp-error{justify-content:center;align-items:center;gap:4px;display:flex}.passflow-verify-otp-error-text{font-size:var(--passflow-caption);font-weight:var(--passflow-medium);color:var(--passflow-warning)}.passflow-verify-otp-resend{color:var(--passflow-secondary-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);text-align:center}.passflow-providers-box{flex-flow:wrap;justify-content:center;align-items:center;gap:8px;width:100%;display:flex}.passflow-providers-box--grid{grid-template-columns:repeat(auto-fit,minmax(49px,1fr));justify-content:stretch;align-items:stretch;gap:8px;display:grid}.passflow-provider-item{align-items:center;gap:8px;display:flex}.passflow-provider-text{color:var(--passflow-federated_button_text_color);font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);text-transform:capitalize}.passflow-ripple-container{position:absolute;inset:0;overflow:hidden}.passflow-ripple-effect{opacity:.6;background-color:currentColor}.passflow-form{flex-direction:column;gap:32px;width:100%;max-width:384px;display:flex}.passflow-form-switch{justify-content:center;align-items:center;width:100%;margin-bottom:-8px;display:flex}.passflow-form-container{background-color:var(--passflow-card-color);border-radius:6px;gap:24px;max-width:384px;padding:24px;box-shadow:0 4px 15px #00000017}.passflow-form-container,.passflow-form-field{flex-direction:column;justify-content:flex-start;align-items:flex-start;width:100%;display:flex}.passflow-form-field{gap:6px}.passflow-form-field__header{justify-content:space-between;align-items:center;width:100%;max-height:18px;display:flex}.passflow-form-error{justify-content:center;align-items:center;gap:4px;margin-top:4px;display:flex}.passflow-form-error-text{font-size:var(--passflow-caption);font-weight:var(--passflow-medium);color:var(--passflow-warning)}.passflow-form-actions{justify-content:center;align-items:center;width:100%;max-width:336px;margin:0 auto;display:flex}.passflow-form-actions--top-space{margin-top:-8px}.passflow-form-divider{justify-content:space-between;align-items:center;width:100%;padding:9px 0;display:flex;position:relative}.passflow-form-divider__line-left,.passflow-form-divider__line-right{background-color:var(--passflow-divider-color);width:105px;height:1px}.passflow-form-divider__text{color:var(--passflow-secondary-text-color);font-size:var(--passflow-caption);font-weight:var(--passflow-medium);background-color:#0000;padding:0 15px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.passflow-form-providers{flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:24px;width:100%;max-width:336px;margin:0 auto;display:flex}.passflow-link{color:var(--passflow-link-color);font-size:var(--passflow-body-2);line-height:18px;font-weight:var(--passflow-semibold)}.passflow-dont-have-account,.passflow-have-account,.passflow-remember-password{text-align:center;color:var(--passflow-secondary-text-color);font-size:var(--passflow-body-2);line-height:18px;font-weight:var(--passflow-medium)}.passflow-country-search-wrapper{z-index:10;background-color:var(--passflow-card-color);scrollbar-width:thin;scrollbar-color:var(--passflow-secondary-text-color) transparent;border-bottom-right-radius:4px;border-bottom-left-radius:4px;width:100%;max-height:181px;position:absolute;top:2px;left:0;overflow-y:auto;transform:translateY(48px);box-shadow:0 4px 15px #00000017}.passflow-country-search-wrapper--without-preferred{max-height:170px}.passflow-country-search-wrapper::-webkit-scrollbar{width:6px}.passflow-country-search-wrapper::-webkit-scrollbar-track{background:0 0}.passflow-country-search-wrapper::-webkit-scrollbar-thumb{background-color:var(--passflow-secondary-text-color);border-radius:3px}.passflow-country-search-wrapper--show{opacity:1;visibility:visible;transition:opacity .2s,visibility .2s;display:block}.passflow-country-search-wrapper--hidden{opacity:0;visibility:hidden;display:none}.passflow-country-search-sticky-bottom,.passflow-country-search-sticky-top{background-color:var(--passflow-card-color);z-index:10;width:100%;height:10px;position:sticky;left:0;overflow-x:hidden}.passflow-country-search-sticky-top{top:0}.passflow-country-search-sticky-bottom{bottom:0}.passflow-country-search-item{background-color:var(--passflow-card-color);cursor:pointer;justify-content:flex-start;align-items:center;width:100%;max-height:32px;padding:7px 12px;transition:background-color .2s;display:flex}.passflow-country-search-item:focus,.passflow-country-search-item:hover{background-color:var(--passflow-background)}.passflow-country-search-flag{width:24px;height:18px}.passflow-country-search-name{color:var(--passflow-text-color);margin-left:8px}.passflow-country-search-code,.passflow-country-search-name{font-size:var(--passflow-body-2);font-weight:var(--passflow-medium)}.passflow-country-search-code{color:var(--passflow-secondary-text-color);margin-left:auto;transition:color .2s}.passflow-country-search-item:hover .passflow-country-search-code{color:var(--passflow-text-color)}.passflow-country-search-divider{font-size:var(--passflow-caption);border-bottom:1px solid var(--passflow-divider-color);margin:12px 12px 6px;padding-bottom:6px}.passflow-country-search-divider,.passflow-country-search-no-matches,.passflow-forgot-password-success-text{font-weight:var(--passflow-medium);color:var(--passflow-secondary-text-color)}.passflow-country-search-no-matches{font-size:var(--passflow-body-2);text-align:center;width:100%;margin:0 auto;padding:15px;display:block}.passflow-forgot-password-success-wrapper{flex-direction:column;gap:24px;width:100%;display:flex}.passflow-forgot-password-success-container{flex-direction:column;gap:32px;width:100%;max-width:336px;margin-top:-8px;display:flex}.passflow-forgot-password-success-text,.passflow-verify-challenge-magic-link-text{font-size:var(--passflow-body-2);text-align:center}.passflow-forgot-password-success-text--strong{font-weight:var(--passflow-bold)}.passflow-verify-challenge-magic-link-wrapper{flex-direction:column;width:100%;margin:0 auto;display:flex}.passflow-verify-challenge-magic-link-container{flex-direction:column;gap:32px;width:100%;max-width:336px;margin-top:-24px;display:flex}.passflow-verify-challenge-magic-link-text{font-weight:var(--passflow-medium);color:var(--passflow-secondary-text-color)}.passflow-verify-challenge-magic-link-text--strong{font-weight:var(--passflow-bold)}.passflow-verify-challenge-success-wrapper{gap:32px}.passflow-verify-challenge-success-container,.passflow-verify-challenge-success-wrapper{flex-direction:column;justify-content:flex-start;align-items:center;width:100%;display:flex}.passflow-verify-challenge-success-container{gap:8px}.passflow-verify-challenge-success-text{font-size:var(--passflow-h2);font-weight:var(--passflow-bold);color:var(--passflow-text-color);text-align:center}.passflow-reset-password-text,.passflow-verify-challenge-success-text-secondary{font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);color:var(--passflow-secondary-text-color);text-align:center}.passflow-reset-password-text{margin-top:-32px;display:block}.passflow-form-error--critical,.passflow-form-error--persistent{text-align:center;background-color:#fef2f2;border:1px solid #fecaca;border-radius:12px;flex-direction:column;align-items:center;gap:12px;margin-top:16px;padding:20px 24px;display:flex}.passflow-form-error--critical .icon-warning,.passflow-form-error--persistent .icon-warning{color:#dc2626;flex-shrink:0;width:32px;height:32px}.passflow-form-error-content{flex-direction:column;align-items:center;gap:16px;width:100%;display:flex}.passflow-form-error--critical .passflow-form-error-text,.passflow-form-error--persistent .passflow-form-error-text{color:#991b1b;margin:0;font-size:14px;line-height:1.5}.passflow-form-error-actions{flex-direction:column;justify-content:center;align-items:center;gap:12px;width:100%;display:flex}.passflow-button-back-to-signin,.passflow-button-setup-2fa{white-space:nowrap;min-width:140px}.passflow-form-info{background-color:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;align-items:flex-start;gap:12px;margin-top:16px;padding:16px;display:flex}.passflow-form-info .icon-info{color:#2563eb;flex-shrink:0;width:20px;height:20px;margin-top:2px}.passflow-form-info-text{color:#1e40af;font-size:14px;line-height:1.5}.passflow-field--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.icon-info{color:#2563eb}.passflow-continuing-status{min-height:100vh;font-family:var(--passflow-font-family);font-size:var(--passflow-body-1);color:var(--passflow-secondary-text-color);justify-content:center;align-items:center;display:flex}.passflow-country-flag{width:24px;height:18px;color:var(--passflow-secondary-text-color);font-size:9px;font-weight:var(--passflow-bold);text-transform:uppercase;background-repeat:no-repeat;background-size:408px 384px;border-radius:2px;flex:none;justify-content:center;align-items:center;line-height:1;display:inline-flex;overflow:hidden}.passflow-country-flag--fallback{background-color:var(--passflow-input-background-color);outline:1px solid var(--passflow-input-border-color)}.passflow-field-otp-group{--passflow-field-otp-size:48px;--passflow-field-otp-gap:10px}.passflow-field-otp-group--disabled{cursor:not-allowed}.passflow-field-otp-slots{gap:var(--passflow-field-otp-gap)}.passflow-field-otp,.passflow-field-otp-slots{justify-content:center;align-items:center;display:flex}.passflow-field-otp{width:var(--passflow-field-otp-size);height:var(--passflow-field-otp-size);border-radius:var(--passflow-radius);background-color:var(--passflow-input-background-color);outline:1px solid var(--passflow-input-border-color);color:var(--passflow-text-color);font-size:var(--passflow-body-2);position:relative}.passflow-field-otp--active{outline-color:var(--passflow-primary-color)}.passflow-field-otp--error{outline-color:var(--passflow-warning)}.passflow-field-otp--disabled{opacity:.5}.passflow-field-otp__caret{background-color:currentColor;width:1px;height:1em;animation:1s step-end infinite passflow-field-otp-caret-blink}@keyframes passflow-field-otp-caret-blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.passflow-field-otp__caret{animation:none}}.passflow-field-otp-field{flex-direction:column;gap:6px;display:inline-flex}.react-international-phone-country-selector{position:relative}.react-international-phone-country-selector-button{height:var(--react-international-phone-height,36px);box-sizing:border-box;border:1px solid var(--react-international-phone-country-selector-border-color,var(--react-international-phone-border-color,#dcdcdc));-webkit-appearance:button;appearance:button;background-color:var(--react-international-phone-country-selector-background-color,var(--react-international-phone-background-color,#fff));cursor:pointer;text-transform:none;user-select:none;justify-content:center;align-items:center;margin:0;padding:0;display:flex}.react-international-phone-country-selector-button:hover{background-color:var(--react-international-phone-country-selector-background-color-hover,#f5f5f5)}.react-international-phone-country-selector-button--disabled,.react-international-phone-country-selector-button--hide-dropdown{cursor:auto}.react-international-phone-country-selector-button--hide-dropdown:hover{background-color:#0000}.react-international-phone-country-selector-button__button-content{justify-content:center;align-items:center;display:flex}.react-international-phone-country-selector-button__flag-emoji{margin:0 4px}.react-international-phone-country-selector-button__flag-emoji--disabled{opacity:.75}.react-international-phone-country-selector-button__dropdown-arrow{border-top:var(--react-international-phone-country-selector-arrow-size,4px) solid var(--react-international-phone-country-selector-arrow-color,#777);border-right:var(--react-international-phone-country-selector-arrow-size,4px) solid transparent;border-left:var(--react-international-phone-country-selector-arrow-size,4px) solid transparent;margin-right:4px;transition:all .1s ease-out}.react-international-phone-country-selector-button__dropdown-arrow--active{transform:rotateX(180deg)}.react-international-phone-country-selector-button__dropdown-arrow--disabled{border-top-color:var(--react-international-phone-disabled-country-selector-arrow-color,#999)}.react-international-phone-country-selector-button--disabled,.react-international-phone-country-selector-button--disabled:hover{background-color:var(--react-international-phone-disabled-country-selector-background-color,var(--react-international-phone-disabled-background-color,#f5f5f5))}.react-international-phone-flag-emoji{width:var(--react-international-phone-flag-width,24px);height:var(--react-international-phone-flag-height,24px);box-sizing:border-box}.react-international-phone-country-selector-dropdown{z-index:1;top:var(--react-international-phone-dropdown-top,44px);left:var(--react-international-phone-dropdown-left,0);background-color:var(--react-international-phone-dropdown-item-background-color,var(--react-international-phone-background-color,#fff));width:300px;max-height:200px;box-shadow:var(--react-international-phone-dropdown-shadow,2px 2px 16px #00000040);color:var(--react-international-phone-dropdown-item-text-color,var(--react-international-phone-text-color,#222));flex-direction:column;margin:0;padding:4px 0;list-style:none;display:flex;position:absolute;overflow-y:scroll}.react-international-phone-country-selector-dropdown__preferred-list-divider{height:1px;margin:var(--react-international-phone-dropdown-preferred-list-divider-margin,0);background:var(--react-international-phone-dropdown-preferred-list-divider-color,var(--react-international-phone-border-color,#dcdcdc));border:none}.react-international-phone-country-selector-dropdown__list-item{min-height:var(--react-international-phone-dropdown-item-height,28px);box-sizing:border-box;align-items:center;padding:2px 8px;display:flex}.react-international-phone-country-selector-dropdown__list-item-flag-emoji{margin-right:8px}.react-international-phone-country-selector-dropdown__list-item-country-name{font-size:var(--react-international-phone-dropdown-item-font-size,14px);text-overflow:ellipsis;white-space:nowrap;margin-right:8px;overflow:hidden}.react-international-phone-country-selector-dropdown__list-item-dial-code{color:var(--react-international-phone-dropdown-item-dial-code-color,gray);font-size:var(--react-international-phone-dropdown-item-font-size,14px)}.react-international-phone-country-selector-dropdown__list-item:hover{background-color:var(--react-international-phone-selected-dropdown-item-background-color,var(--react-international-phone-selected-dropdown-item-background-color,#f5f5f5));cursor:pointer}.react-international-phone-country-selector-dropdown__list-item--focused,.react-international-phone-country-selector-dropdown__list-item--selected{background-color:var(--react-international-phone-selected-dropdown-item-background-color,#f5f5f5);color:var(--react-international-phone-selected-dropdown-item-text-color,var(--react-international-phone-text-color,#222))}.react-international-phone-country-selector-dropdown__list-item--focused .react-international-phone-country-selector-dropdown__list-item-dial-code,.react-international-phone-country-selector-dropdown__list-item--selected .react-international-phone-country-selector-dropdown__list-item-dial-code{color:var(--react-international-phone-selected-dropdown-item-dial-code-color,var(--react-international-phone-dropdown-item-dial-code-color,gray))}.react-international-phone-country-selector-dropdown__list-item--focused{background-color:var(--react-international-phone-selected-dropdown-item-background-color,var(--react-international-phone-selected-dropdown-item-background-color,#f5f5f5))}.react-international-phone-dial-code-preview{border:1px solid var(--react-international-phone-dial-code-preview-border-color,var(--react-international-phone-border-color,#dcdcdc));background-color:var(--react-international-phone-dial-code-preview-background-color,var(--react-international-phone-background-color,#fff));color:var(--react-international-phone-dial-code-preview-text-color,var(--react-international-phone-text-color,#222));font-size:var(--react-international-phone-dial-code-preview-font-size,var(--react-international-phone-font-size,13px));justify-content:center;align-items:center;margin-right:-1px;padding:0 8px;display:flex}.react-international-phone-dial-code-preview--disabled{background-color:var(--react-international-phone-dial-code-preview-disabled-background-color,var(--react-international-phone-disabled-background-color,#f5f5f5));color:var(--react-international-phone-dial-code-preview-disabled-text-color,var(--react-international-phone-disabled-text-color,#666))}.react-international-phone-input-container{display:flex}.react-international-phone-input-container .react-international-phone-country-selector-button{border-radius:var(--react-international-phone-border-radius,4px);border-top-right-radius:0;border-bottom-right-radius:0;margin-right:-1px}.react-international-phone-input-container .react-international-phone-input{height:var(--react-international-phone-height,36px);box-sizing:border-box;border:1px solid var(--react-international-phone-border-color,#dcdcdc);border-radius:var(--react-international-phone-border-radius,4px);background-color:var(--react-international-phone-background-color,#fff);color:var(--react-international-phone-text-color,#222);font-family:inherit;font-size:var(--react-international-phone-font-size,13px);border-top-left-radius:0;border-bottom-left-radius:0;margin:0;padding:0 8px;overflow:visible}.react-international-phone-input-container .react-international-phone-input:focus{outline:none}.react-international-phone-input-container .react-international-phone-input--disabled{background-color:var(--react-international-phone-disabled-background-color,#f5f5f5);color:var(--react-international-phone-disabled-text-color,#666)}.icon-warning{filter:brightness(0)saturate()invert(17%)sepia(98%)saturate(3037%)hue-rotate(354deg)brightness(87%)contrast(90%)}.icon-white{filter:brightness(0)saturate()invert()sepia(2%)saturate(7%)hue-rotate(80deg)brightness(103%)contrast()}.passflow-icon--match-text{-webkit-mask:var(--passflow-icon-mask) center/contain no-repeat;mask:var(--passflow-icon-mask) center/contain no-repeat;background-color:currentColor;flex:none;display:inline-block}#passflow-wrapper{box-sizing:border-box;-webkit-font-smoothing:antialiased;font-family:Inter,sans-serif;overflow-x:hidden}#passflow-wrapper,.passflow-wrapper{width:100%;min-height:100dvh}.passflow-wrapper{color:var(--passflow-text-color);background-color:var(--passflow-background-color);background-image:var(--passflow-background-image);background-position:50%;background-repeat:no-repeat;background-size:cover;flex-direction:column;display:flex}.passflow-branding{background-color:var(--passflow-branding-background-color);border-radius:4px;flex:none;justify-content:center;align-self:flex-end;align-items:center;gap:4px;margin:0 24px 24px;padding:7px 12px;display:flex}.passflow-branding-text{font-size:11px;line-height:18px;font-weight:var(--passflow-bold);color:var(--passflow-secondary-text-color)}.passflow-branding-text-secondary{font-weight:var(--passflow-normal)}.passflow-form-main-wrapper{border-radius:6px;flex:1 0 auto;justify-content:safe center;gap:32px;padding:32px 24px}.passflow-form-main-container,.passflow-form-main-wrapper{flex-direction:column;align-items:center;width:100%;display:flex}.passflow-form-main-container{justify-content:center;gap:24px;max-width:384px;margin:0 auto}.passflow-form-header{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.passflow-form-title{color:var(--passflow-text-color);font-size:var(--passflow-h2);font-weight:var(--passflow-bold)}.passflow-form-subtitle{font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);color:var(--passflow-secondary-text-color);text-align:center}.passflow-form-main-container-logo{object-fit:contain;object-position:center;border-radius:8px;width:auto;max-width:min(160px,100%);height:auto;max-height:44px}.passflow-error-container{gap:32px;margin-top:-8px}.passflow-error-container,.passflow-error-container-text-wrapper{flex-direction:column;justify-content:start;align-items:center;display:flex}.passflow-error-container-text-wrapper{gap:8px}.passflow-error-container-text{font-size:var(--passflow-h2);font-weight:var(--passflow-bold);color:var(--passflow-warning);text-align:center}.passflow-error-container-text-secondary{font-size:var(--passflow-body-2);font-weight:var(--passflow-medium);color:var(--passflow-secondary-text-color);text-align:center}.icon-success{filter:brightness(0)saturate()invert(35%)sepia(38%)saturate(1173%)hue-rotate(106deg)brightness(90%)contrast(95%)}.passflow-login-screen-actions{gap:var(--passflow-spacing-4);max-width:336px;margin:0 auto}.passflow-login-screen-actions,.passflow-login-screen-notice{flex-direction:column;align-items:center;width:100%;display:flex}.passflow-login-screen-notice{gap:var(--passflow-spacing-3);max-width:384px}.passflow-login-screen-code{box-sizing:border-box;width:100%;padding:var(--passflow-spacing-4);background-color:var(--passflow-input-background-color);color:var(--passflow-text-color);font-size:var(--passflow-h1);font-weight:var(--passflow-bold);user-select:all;border-radius:6px}.passflow-login-screen-code,.passflow-login-screen-code-input{letter-spacing:.12em;text-align:center;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace}.passflow-login-screen-code-input{font-size:var(--passflow-body-1);text-transform:uppercase}.passflow-login-screen-text{color:var(--passflow-text-color);font-size:var(--passflow-body-2);font-weight:var(--passflow-normal);line-height:1.5}.passflow-login-screen-centered-text{text-align:center}.passflow-login-screen-centered{text-align:center;align-items:center}.passflow-login-screen-hint{color:var(--passflow-secondary-text-color);font-size:var(--passflow-caption);font-weight:var(--passflow-medium);text-align:center;line-height:1.5}.passflow-login-screen-app-name{color:var(--passflow-text-color);font-weight:var(--passflow-semibold)}.passflow-login-screen-success{justify-content:center;align-items:center;gap:var(--passflow-spacing-1);display:flex}.passflow-login-screen-success-text{color:var(--passflow-success);font-size:var(--passflow-caption);font-weight:var(--passflow-medium)}.passflow-login-screen-spinner{border:3px solid var(--passflow-grey-three);border-top-color:var(--passflow-primary-color);border-radius:50%;width:26px;height:26px;animation:.8s linear infinite passflow-login-screen-spin}.passflow-login-screen-spinner--small{border-width:2px;width:18px;height:18px}@keyframes passflow-login-screen-spin{to{transform:rotate(1turn)}}@media (width<=480px){.passflow-form-main-wrapper{padding:24px 16px}.passflow-branding{align-self:center;margin:0 16px 16px}}@media (prefers-reduced-motion:reduce){.passflow-login-screen-spinner{animation-duration:3s}}.passflow-login-screen-status{align-items:center;gap:var(--passflow-spacing-3);flex-direction:column;width:100%;display:flex}.passflow-consent-scopes{gap:var(--passflow-spacing-2);flex-direction:column;width:100%;max-width:384px;margin:0 auto;padding:0;list-style:none;display:flex}.passflow-consent-scope{box-sizing:border-box;padding:var(--passflow-spacing-3) var(--passflow-spacing-4);border:1px solid var(--passflow-divider-color);background-color:var(--passflow-card-color);gap:var(--passflow-spacing-1);text-align:left;border-radius:6px;flex-direction:column;display:flex}.passflow-consent-scope-description{color:var(--passflow-secondary-text-color);font-size:var(--passflow-caption);font-weight:var(--passflow-normal);margin:0;line-height:1.5}.passflow-consent-actions{gap:var(--passflow-spacing-2);flex-direction:column;width:100%;max-width:336px;margin:0 auto;display:flex}.passflow-spinner{--passflow-spinner-diameter:26px;--passflow-spinner-stroke:3px;width:var(--passflow-spinner-diameter);height:var(--passflow-spinner-diameter);border:var(--passflow-spinner-stroke) solid var(--passflow-grey-three);border-top-color:var(--passflow-primary-color);border-radius:50%;flex:none;animation:.8s linear infinite passflow-spinner-spin}.passflow-spinner--small{--passflow-spinner-diameter:18px;--passflow-spinner-stroke:2px}@keyframes passflow-spinner-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.passflow-spinner{animation-duration:3s}}.passflow-upgrade-dialog{box-sizing:border-box;gap:var(--passflow-spacing-6);width:min(var(--passflow-surface-width),100vw - var(--passflow-spacing-6) * 2);max-height:calc(100dvh - var(--passflow-spacing-6) * 2);padding:var(--passflow-spacing-6);color:var(--passflow-text-color);background-color:var(--passflow-card-color);border-radius:var(--passflow-radius);font-family:var(--passflow-font-family);flex-direction:column;display:flex;overflow-y:auto}.passflow-upgrade-dialog__header{gap:var(--passflow-spacing-2);text-align:left;flex-direction:column;display:flex}.passflow-upgrade-dialog__form,.passflow-upgrade-dialog__status{gap:var(--passflow-spacing-4);flex-direction:column;width:100%;display:flex}.passflow-upgrade-dialog__factor{gap:var(--passflow-spacing-1);padding:var(--passflow-spacing-3);background-color:var(--passflow-input-background-color);border-radius:var(--passflow-radius);flex-direction:column;display:flex}.passflow-upgrade-dialog__factor-label{font-size:var(--passflow-body-1);font-weight:var(--passflow-semibold);color:var(--passflow-text-color)}.passflow-upgrade-dialog__factor-hint,.passflow-upgrade-dialog__status-detail{font-size:var(--passflow-caption);font-weight:var(--passflow-normal);color:var(--passflow-secondary-text-color);margin:0}.passflow-upgrade-dialog__actions,.passflow-upgrade-dialog__alternatives,.passflow-upgrade-dialog__field{gap:var(--passflow-spacing-2);flex-direction:column;width:100%;display:flex}.passflow-upgrade-dialog__alternatives{margin:0;padding:0;list-style:none}.passflow-upgrade-dialog__alternative{width:100%}.passflow-upgrade-dialog__status-head{align-items:center;gap:var(--passflow-spacing-2);display:flex}.passflow-upgrade-dialog__status-message{font-size:var(--passflow-body-1);font-weight:var(--passflow-medium)}.passflow-upgrade-dialog__status-head--success .passflow-upgrade-dialog__status-message{color:var(--passflow-success)}.passflow-upgrade-dialog__status-head--problem .passflow-upgrade-dialog__status-message{color:var(--passflow-warning)}.passflow-upgrade-dialog__status-head--neutral .passflow-upgrade-dialog__status-message,.passflow-upgrade-dialog__status-head--working .passflow-upgrade-dialog__status-message{color:var(--passflow-text-color)}.passflow-upgrade-dialog__bars{gap:var(--passflow-spacing-1);padding:var(--passflow-spacing-3);background-color:var(--passflow-input-background-color);border-radius:var(--passflow-radius);flex-direction:column;display:flex}.passflow-upgrade-dialog__bar{justify-content:space-between;gap:var(--passflow-spacing-3);font-size:var(--passflow-caption);display:flex}.passflow-upgrade-dialog__bar-term{color:var(--passflow-secondary-text-color);font-weight:var(--passflow-medium)}.passflow-upgrade-dialog__bar-value{color:var(--passflow-text-color);font-weight:var(--passflow-semibold)}
2
2
  /*$vite$:1*/