@passflow/react 0.17.0 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/dist/index.cjs +1 -1
  3. package/dist/index.cjs.map +1 -1
  4. package/dist/index.es.js +154 -133
  5. package/dist/index.es.js.map +1 -1
  6. package/dist/src/components/flow/passflow/index.d.cts +7 -1
  7. package/dist/src/components/flow/passflow/index.d.ts +7 -1
  8. package/dist/src/components/flow/passflow/index.d.ts.map +1 -1
  9. package/dist/src/components/form/reset-password/index.d.cts +2 -0
  10. package/dist/src/components/form/reset-password/index.d.ts +2 -0
  11. package/dist/src/components/form/reset-password/index.d.ts.map +1 -1
  12. package/dist/src/components/form/signin/index.d.cts +2 -1
  13. package/dist/src/components/form/signin/index.d.ts +2 -1
  14. package/dist/src/components/form/signin/index.d.ts.map +1 -1
  15. package/dist/src/components/form/signup/index.d.cts +2 -1
  16. package/dist/src/components/form/signup/index.d.ts +2 -1
  17. package/dist/src/components/form/signup/index.d.ts.map +1 -1
  18. package/dist/src/components/form/verify-challenge/verify-challenge-approval.d.cts +13 -0
  19. package/dist/src/components/form/verify-challenge/verify-challenge-approval.d.ts +13 -0
  20. package/dist/src/components/form/verify-challenge/verify-challenge-approval.d.ts.map +1 -0
  21. package/dist/src/components/form/verify-challenge/verify-challenge-magic-link.d.cts +6 -1
  22. package/dist/src/components/form/verify-challenge/verify-challenge-magic-link.d.ts +6 -1
  23. package/dist/src/components/form/verify-challenge/verify-challenge-magic-link.d.ts.map +1 -1
  24. package/dist/src/components/form/verify-challenge/verify-challenge-otp.d.ts.map +1 -1
  25. package/dist/src/components/provider/passflow-provider.d.cts +5 -14
  26. package/dist/src/components/provider/passflow-provider.d.ts +5 -14
  27. package/dist/src/components/provider/passflow-provider.d.ts.map +1 -1
  28. package/dist/src/components/ui/button/index.d.ts.map +1 -1
  29. package/dist/src/components/ui/fields/field-otp.d.cts +3 -1
  30. package/dist/src/components/ui/fields/field-otp.d.ts +3 -1
  31. package/dist/src/components/ui/fields/field-otp.d.ts.map +1 -1
  32. package/dist/src/components/ui/login-screen/credentials.d.ts.map +1 -1
  33. package/dist/src/components/ui/login-screen/email-code.d.cts +25 -0
  34. package/dist/src/components/ui/login-screen/email-code.d.ts +25 -0
  35. package/dist/src/components/ui/login-screen/email-code.d.ts.map +1 -0
  36. package/dist/src/components/ui/login-screen/index.d.cts +1 -1
  37. package/dist/src/components/ui/login-screen/index.d.ts +1 -1
  38. package/dist/src/components/ui/login-screen/index.d.ts.map +1 -1
  39. package/dist/src/components/ui/login-screen/login-screen.d.ts.map +1 -1
  40. package/dist/src/components/ui/login-screen/new-password.d.cts +10 -0
  41. package/dist/src/components/ui/login-screen/new-password.d.ts +10 -0
  42. package/dist/src/components/ui/login-screen/new-password.d.ts.map +1 -0
  43. package/dist/src/components/ui/login-screen/passwordless-approval.d.cts +4 -0
  44. package/dist/src/components/ui/login-screen/passwordless-approval.d.ts +4 -0
  45. package/dist/src/components/ui/login-screen/passwordless-approval.d.ts.map +1 -0
  46. package/dist/src/components/ui/login-screen/passwordless-waiting.d.cts +4 -0
  47. package/dist/src/components/ui/login-screen/passwordless-waiting.d.ts +4 -0
  48. package/dist/src/components/ui/login-screen/passwordless-waiting.d.ts.map +1 -0
  49. package/dist/src/components/ui/login-screen/status.d.ts.map +1 -1
  50. package/dist/src/components/ui/login-screen/types.d.cts +107 -3
  51. package/dist/src/components/ui/login-screen/types.d.ts +107 -3
  52. package/dist/src/components/ui/login-screen/types.d.ts.map +1 -1
  53. package/dist/src/context/navigation-context.d.cts +3 -0
  54. package/dist/src/context/navigation-context.d.ts +3 -0
  55. package/dist/src/context/navigation-context.d.ts.map +1 -1
  56. package/dist/src/hooks/index.d.cts +1 -0
  57. package/dist/src/hooks/index.d.ts +1 -0
  58. package/dist/src/hooks/index.d.ts.map +1 -1
  59. package/dist/src/hooks/use-email-code-step.d.cts +39 -0
  60. package/dist/src/hooks/use-email-code-step.d.ts +39 -0
  61. package/dist/src/hooks/use-email-code-step.d.ts.map +1 -0
  62. package/dist/src/hooks/use-join-invite.d.ts.map +1 -1
  63. package/dist/src/hooks/use-provider.d.cts +2 -1
  64. package/dist/src/hooks/use-provider.d.ts +2 -1
  65. package/dist/src/hooks/use-provider.d.ts.map +1 -1
  66. package/dist/src/hooks/use-reset-password.d.cts +14 -1
  67. package/dist/src/hooks/use-reset-password.d.ts +14 -1
  68. package/dist/src/hooks/use-reset-password.d.ts.map +1 -1
  69. package/dist/src/hooks/use-signin.d.cts +6 -0
  70. package/dist/src/hooks/use-signin.d.ts +6 -0
  71. package/dist/src/hooks/use-signin.d.ts.map +1 -1
  72. package/dist/src/hooks/use-signup.d.cts +6 -0
  73. package/dist/src/hooks/use-signup.d.ts +6 -0
  74. package/dist/src/hooks/use-signup.d.ts.map +1 -1
  75. package/dist/src/index.d.cts +1 -0
  76. package/dist/src/index.d.ts +1 -0
  77. package/dist/src/index.d.ts.map +1 -1
  78. package/dist/src/types/auth-errors.d.cts +2 -0
  79. package/dist/src/types/auth-errors.d.ts +2 -0
  80. package/dist/src/types/auth-errors.d.ts.map +1 -1
  81. package/dist/src/types/email-verification.d.cts +18 -0
  82. package/dist/src/types/email-verification.d.ts +18 -0
  83. package/dist/src/types/email-verification.d.ts.map +1 -0
  84. package/dist/src/types/index.d.cts +2 -0
  85. package/dist/src/types/index.d.ts +2 -0
  86. package/dist/src/types/index.d.ts.map +1 -1
  87. package/dist/src/utils/auth-error.d.cts +77 -0
  88. package/dist/src/utils/auth-error.d.ts +77 -0
  89. package/dist/src/utils/auth-error.d.ts.map +1 -1
  90. package/dist/src/utils/email-verification.d.cts +44 -0
  91. package/dist/src/utils/email-verification.d.ts +44 -0
  92. package/dist/src/utils/email-verification.d.ts.map +1 -0
  93. package/dist/src/utils/get-url-errors.d.ts.map +1 -1
  94. package/dist/src/utils/index.d.cts +3 -2
  95. package/dist/src/utils/index.d.ts +3 -2
  96. package/dist/src/utils/index.d.ts.map +1 -1
  97. package/dist/src/utils/url-params.d.cts +17 -0
  98. package/dist/src/utils/url-params.d.ts +17 -0
  99. package/dist/src/utils/url-params.d.ts.map +1 -1
  100. package/dist/style.css +1 -1
  101. package/package.json +6 -3
@@ -1,9 +1,15 @@
1
- import type { SuccessAuthRedirect } from '../../../types/index.cjs';
1
+ import type { FederatedLanding, SuccessAuthRedirect } from '../../../types/index.cjs';
2
2
  import { type FlowLocation, type FlowNavigate } from './flow-router.cjs';
3
3
  export type { FlowLocation as PassflowFlowLocation, FlowNavigate as PassflowFlowNavigate } from './flow-router.cjs';
4
4
  type PassflowBaseProps = {
5
5
  successAuthRedirect?: SuccessAuthRedirect;
6
6
  federatedDisplayMode?: 'modal' | 'redirect';
7
+ /**
8
+ * Where a federated redirect comes back. `app` (the default) keeps today's redirect URL. `login-page`, for a hosted
9
+ * login page on a PKCE app, comes back to this page, which exchanges the code and forwards the tokens to
10
+ * `successAuthRedirect`, else the app's default redirect.
11
+ */
12
+ federatedLanding?: FederatedLanding;
7
13
  error?: string;
8
14
  relyingPartyId?: string;
9
15
  /**
@@ -1,9 +1,15 @@
1
- import type { SuccessAuthRedirect } from '../../../types/index.js';
1
+ import type { FederatedLanding, SuccessAuthRedirect } from '../../../types/index.js';
2
2
  import { type FlowLocation, type FlowNavigate } from './flow-router.js';
3
3
  export type { FlowLocation as PassflowFlowLocation, FlowNavigate as PassflowFlowNavigate } from './flow-router.js';
4
4
  type PassflowBaseProps = {
5
5
  successAuthRedirect?: SuccessAuthRedirect;
6
6
  federatedDisplayMode?: 'modal' | 'redirect';
7
+ /**
8
+ * Where a federated redirect comes back. `app` (the default) keeps today's redirect URL. `login-page`, for a hosted
9
+ * login page on a PKCE app, comes back to this page, which exchanges the code and forwards the tokens to
10
+ * `successAuthRedirect`, else the app's default redirect.
11
+ */
12
+ federatedLanding?: FederatedLanding;
7
13
  error?: string;
8
14
  relyingPartyId?: string;
9
15
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/flow/passflow/index.tsx"],"names":[],"mappings":"AAeA,OAAO,oBAAoB,CAAC;AAI5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,OAAO,EAOL,KAAK,YAAY,EAEjB,KAAK,YAAY,EAOlB,MAAM,eAAe,CAAC;AAEvB,YAAY,EAAE,YAAY,IAAI,oBAAoB,EAAE,YAAY,IAAI,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAEhH,KAAK,iBAAiB,GAAG;IACvB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,oBAAoB,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,UAAU,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC3C,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAC3C,CACI;IACE,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,GACD;IACE;;;;;OAKG;IACH,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,EAAE,YAAY,CAAC;CACxB,CACJ,CAAC;AAuOJ,eAAO,MAAM,YAAY,8DAA6C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/flow/passflow/index.tsx"],"names":[],"mappings":"AAeA,OAAO,oBAAoB,CAAC;AAI5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAErE,OAAO,EAOL,KAAK,YAAY,EAEjB,KAAK,YAAY,EAOlB,MAAM,eAAe,CAAC;AAEvB,YAAY,EAAE,YAAY,IAAI,oBAAoB,EAAE,YAAY,IAAI,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAEhH,KAAK,iBAAiB,GAAG;IACvB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,oBAAoB,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAC5C;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,UAAU,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC3C,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAC3C,CACI;IACE,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,GACD;IACE;;;;;OAKG;IACH,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,EAAE,YAAY,CAAC;CACxB,CACJ,CAAC;AA+QJ,eAAO,MAAM,YAAY,8DAA6C,CAAC"}
@@ -3,6 +3,8 @@ import type { SuccessAuthRedirect } from '../../../types/index.cjs';
3
3
  type TResetPassword = {
4
4
  successAuthRedirect?: SuccessAuthRedirect;
5
5
  twoFactorVerifyPath?: string;
6
+ /** Where `Back to sign in` goes once the password is saved. */
7
+ signInPath?: string;
6
8
  };
7
9
  export declare const ResetPassword: FC<TResetPassword>;
8
10
  export {};
@@ -3,6 +3,8 @@ import type { SuccessAuthRedirect } from '../../../types/index.js';
3
3
  type TResetPassword = {
4
4
  successAuthRedirect?: SuccessAuthRedirect;
5
5
  twoFactorVerifyPath?: string;
6
+ /** Where `Back to sign in` goes once the password is saved. */
7
+ signInPath?: string;
6
8
  };
7
9
  export declare const ResetPassword: FC<TResetPassword>;
8
10
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/reset-password/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAehC,OAAO,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAUnD,KAAK,cAAc,GAAG;IACpB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAMF,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,cAAc,CAiJ5C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/reset-password/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAMhC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,OAAO,oBAAoB,CAAC;AAM5B,KAAK,cAAc,GAAG;IACpB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAWF,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,cAAc,CA8G5C,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import type { FC } from 'react';
2
- import type { SuccessAuthRedirect } from '../../../types/index.cjs';
2
+ import type { FederatedLanding, SuccessAuthRedirect } from '../../../types/index.cjs';
3
3
  export type TSignIn = {
4
4
  successAuthRedirect?: SuccessAuthRedirect;
5
5
  relyingPartyId?: string;
6
6
  federatedDisplayMode?: 'modal' | 'redirect';
7
+ federatedLanding?: FederatedLanding;
7
8
  signUpPath?: string;
8
9
  verifyOTPPath?: string;
9
10
  verifyMagicLinkPath?: string;
@@ -1,9 +1,10 @@
1
1
  import type { FC } from 'react';
2
- import type { SuccessAuthRedirect } from '../../../types/index.js';
2
+ import type { FederatedLanding, SuccessAuthRedirect } from '../../../types/index.js';
3
3
  export type TSignIn = {
4
4
  successAuthRedirect?: SuccessAuthRedirect;
5
5
  relyingPartyId?: string;
6
6
  federatedDisplayMode?: 'modal' | 'redirect';
7
+ federatedLanding?: FederatedLanding;
7
8
  signUpPath?: string;
8
9
  verifyOTPPath?: string;
9
10
  verifyMagicLinkPath?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/signin/index.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAQhC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAkDnD,MAAM,MAAM,OAAO,GAAG;IACpB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,OAAO,CAyLlC,CAAC;AAEF,eAAO,MAAM,MAAM,wDAAwC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/signin/index.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAchC,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAmDrE,MAAM,MAAM,OAAO,GAAG;IACpB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAC5C,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,OAAO,CA6OlC,CAAC;AAEF,eAAO,MAAM,MAAM,wDAAwC,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import type { FC } from 'react';
2
- import type { SuccessAuthRedirect } from '../../../types/index.cjs';
2
+ import type { FederatedLanding, SuccessAuthRedirect } from '../../../types/index.cjs';
3
3
  export type TSignUp = {
4
4
  successAuthRedirect?: SuccessAuthRedirect;
5
5
  relyingPartyId?: string;
6
6
  federatedDisplayMode?: 'modal' | 'redirect';
7
+ federatedLanding?: FederatedLanding;
7
8
  signInPath?: string;
8
9
  verifyOTPPath?: string;
9
10
  verifyMagicLinkPath?: string;
@@ -1,9 +1,10 @@
1
1
  import type { FC } from 'react';
2
- import type { SuccessAuthRedirect } from '../../../types/index.js';
2
+ import type { FederatedLanding, SuccessAuthRedirect } from '../../../types/index.js';
3
3
  export type TSignUp = {
4
4
  successAuthRedirect?: SuccessAuthRedirect;
5
5
  relyingPartyId?: string;
6
6
  federatedDisplayMode?: 'modal' | 'redirect';
7
+ federatedLanding?: FederatedLanding;
7
8
  signInPath?: string;
8
9
  verifyOTPPath?: string;
9
10
  verifyMagicLinkPath?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/signup/index.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAQhC,OAAO,KAAK,EAAiB,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAsDlE,MAAM,MAAM,OAAO,GAAG;IACpB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,OAAO,CAuKlC,CAAC;AAEF,eAAO,MAAM,MAAM,wDAAwC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/signup/index.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAchC,OAAO,KAAK,EAAiB,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAuDpF,MAAM,MAAM,OAAO,GAAG;IACpB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAC5C,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,OAAO,CA2NlC,CAAC;AAEF,eAAO,MAAM,MAAM,wDAAwC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { type FC } from 'react';
2
+ type VerifyChallengeApprovalProps = {
3
+ challengeId: string | null;
4
+ otp: string | null;
5
+ };
6
+ /**
7
+ * The device that opened an emailed link on a row only another device can sign in with. Opening it writes nothing: the
8
+ * user reads the request, then approves with the code shown on the other device, or denies. Errors from these calls
9
+ * are plain and carry no code, but are not logged here anyway, because this screen holds the OTP and the match code.
10
+ */
11
+ export declare const VerifyChallengeApproval: FC<VerifyChallengeApprovalProps>;
12
+ export {};
13
+ //# sourceMappingURL=verify-challenge-approval.d.ts.map
@@ -0,0 +1,13 @@
1
+ import { type FC } from 'react';
2
+ type VerifyChallengeApprovalProps = {
3
+ challengeId: string | null;
4
+ otp: string | null;
5
+ };
6
+ /**
7
+ * The device that opened an emailed link on a row only another device can sign in with. Opening it writes nothing: the
8
+ * user reads the request, then approves with the code shown on the other device, or denies. Errors from these calls
9
+ * are plain and carry no code, but are not logged here anyway, because this screen holds the OTP and the match code.
10
+ */
11
+ export declare const VerifyChallengeApproval: FC<VerifyChallengeApprovalProps>;
12
+ export {};
13
+ //# sourceMappingURL=verify-challenge-approval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify-challenge-approval.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/verify-challenge/verify-challenge-approval.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,EAAuB,MAAM,OAAO,CAAC;AAarD,KAAK,4BAA4B,GAAG;IAClC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB,CAAC;AAeF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,EAAE,CAAC,4BAA4B,CA2GpE,CAAC"}
@@ -1,2 +1,7 @@
1
- export declare const VerifyChallengeMagicLink: () => import("react").JSX.Element;
1
+ import { type FC } from 'react';
2
+ type VerifyChallengeMagicLinkProps = {
3
+ signInPath?: string;
4
+ };
5
+ export declare const VerifyChallengeMagicLink: FC<VerifyChallengeMagicLinkProps>;
6
+ export {};
2
7
  //# sourceMappingURL=verify-challenge-magic-link.d.ts.map
@@ -1,2 +1,7 @@
1
- export declare const VerifyChallengeMagicLink: () => import("react").JSX.Element;
1
+ import { type FC } from 'react';
2
+ type VerifyChallengeMagicLinkProps = {
3
+ signInPath?: string;
4
+ };
5
+ export declare const VerifyChallengeMagicLink: FC<VerifyChallengeMagicLinkProps>;
6
+ export {};
2
7
  //# sourceMappingURL=verify-challenge-magic-link.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"verify-challenge-magic-link.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/verify-challenge/verify-challenge-magic-link.tsx"],"names":[],"mappings":"AAKA,OAAO,oBAAoB,CAAC;AAQ5B,eAAO,MAAM,wBAAwB,mCAyDpC,CAAC"}
1
+ {"version":3,"file":"verify-challenge-magic-link.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/verify-challenge/verify-challenge-magic-link.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,EAAgC,MAAM,OAAO,CAAC;AAK9D,OAAO,oBAAoB,CAAC;AAkM5B,KAAK,6BAA6B,GAAG;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,EAAE,CAAC,6BAA6B,CAuBtE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"verify-challenge-otp.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/verify-challenge/verify-challenge-otp.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAInD,OAAO,oBAAoB,CAAC;AAI5B,KAAK,mBAAmB,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAgBF,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,mBAAmB,CA4EtD,CAAC"}
1
+ {"version":3,"file":"verify-challenge-otp.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/verify-challenge/verify-challenge-otp.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAKnD,OAAO,oBAAoB,CAAC;AAI5B,KAAK,mBAAmB,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAgBF,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,mBAAmB,CAgFtD,CAAC"}
@@ -2,6 +2,8 @@ import { type PassflowConfig } from '@passflow/core';
2
2
  import React, { type FC, type ReactNode } from 'react';
3
3
  import { type UpgradeProviderProps } from './upgrade-provider.cjs';
4
4
  import { type NavigateFunction, type RouterType } from '../../context/index.cjs';
5
+ import { readParentChallengeIdFromURL } from '../../utils/url-params.cjs';
6
+ export { readParentChallengeIdFromURL };
5
7
  /**
6
8
  * The assurance-upgrade options a consumer may set on `PassflowProvider`.
7
9
  *
@@ -54,27 +56,17 @@ type PassflowProviderProps = PassflowConfig & {
54
56
  *
55
57
  * - /auth/login — password login
56
58
  * - /auth/register — password sign-up
57
- * - /auth/passwordless/* — OTP / magic-link start+complete
59
+ * - /auth/passwordless/start|complete — OTP / magic-link; the status and
60
+ * approval calls take no parent
58
61
  * - /auth/passkey/* — passkey registration/auth
59
62
  * - /auth/2fa/* — second-factor verify
63
+ * - /auth/validate — emailed sign-up / sign-in code
60
64
  * - /auth/federated/start — federated start (callback is server)
61
65
  * - /auth/session/exchange — RFC 8693-style session exchange
62
66
  * (ADR-2; activated on Leg 2 of
63
67
  * OIDC two-step flows)
64
68
  */
65
69
  export declare const AUTH_ENDPOINT_PATTERN: RegExp;
66
- /**
67
- * Read `parent_challenge_id` from the current URL's query string.
68
- * Returns `undefined` when not present so callers can short-circuit
69
- * the OIDC interceptor on non-OIDC mounts.
70
- *
71
- * Lowercases only the parameter KEYS (not values) so the
72
- * KSUID-shaped value isn't corrupted on the way through. (URL params
73
- * are case-sensitive per RFC 3986; some Passflow URLs use mixed
74
- * case like `appId=...`. The lowercase-keys treatment mirrors what
75
- * the bundled login-app was doing pre-SDK-migration.)
76
- */
77
- export declare const readParentChallengeIdFromURL: () => string | undefined;
78
70
  /**
79
71
  * Has the OIDC interceptor already taken ownership of the post-login navigation?
80
72
  *
@@ -156,5 +148,4 @@ export type OIDCExchangeContextValue = {
156
148
  };
157
149
  export declare const OIDCExchangeContext: React.Context<OIDCExchangeContextValue>;
158
150
  export declare const PassflowProvider: FC<PassflowProviderProps>;
159
- export {};
160
151
  //# sourceMappingURL=passflow-provider.d.ts.map
@@ -2,6 +2,8 @@ import { type PassflowConfig } from '@passflow/core';
2
2
  import React, { type FC, type ReactNode } from 'react';
3
3
  import { type UpgradeProviderProps } from './upgrade-provider.js';
4
4
  import { type NavigateFunction, type RouterType } from '../../context/index.js';
5
+ import { readParentChallengeIdFromURL } from '../../utils/url-params.js';
6
+ export { readParentChallengeIdFromURL };
5
7
  /**
6
8
  * The assurance-upgrade options a consumer may set on `PassflowProvider`.
7
9
  *
@@ -54,27 +56,17 @@ type PassflowProviderProps = PassflowConfig & {
54
56
  *
55
57
  * - /auth/login — password login
56
58
  * - /auth/register — password sign-up
57
- * - /auth/passwordless/* — OTP / magic-link start+complete
59
+ * - /auth/passwordless/start|complete — OTP / magic-link; the status and
60
+ * approval calls take no parent
58
61
  * - /auth/passkey/* — passkey registration/auth
59
62
  * - /auth/2fa/* — second-factor verify
63
+ * - /auth/validate — emailed sign-up / sign-in code
60
64
  * - /auth/federated/start — federated start (callback is server)
61
65
  * - /auth/session/exchange — RFC 8693-style session exchange
62
66
  * (ADR-2; activated on Leg 2 of
63
67
  * OIDC two-step flows)
64
68
  */
65
69
  export declare const AUTH_ENDPOINT_PATTERN: RegExp;
66
- /**
67
- * Read `parent_challenge_id` from the current URL's query string.
68
- * Returns `undefined` when not present so callers can short-circuit
69
- * the OIDC interceptor on non-OIDC mounts.
70
- *
71
- * Lowercases only the parameter KEYS (not values) so the
72
- * KSUID-shaped value isn't corrupted on the way through. (URL params
73
- * are case-sensitive per RFC 3986; some Passflow URLs use mixed
74
- * case like `appId=...`. The lowercase-keys treatment mirrors what
75
- * the bundled login-app was doing pre-SDK-migration.)
76
- */
77
- export declare const readParentChallengeIdFromURL: () => string | undefined;
78
70
  /**
79
71
  * Has the OIDC interceptor already taken ownership of the post-login navigation?
80
72
  *
@@ -156,5 +148,4 @@ export type OIDCExchangeContextValue = {
156
148
  };
157
149
  export declare const OIDCExchangeContext: React.Context<OIDCExchangeContextValue>;
158
150
  export declare const PassflowProvider: FC<PassflowProviderProps>;
159
- export {};
160
151
  //# sourceMappingURL=passflow-provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"passflow-provider.d.ts","sourceRoot":"","sources":["../../../../src/components/provider/passflow-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,cAAc,EAA2B,MAAM,gBAAgB,CAAC;AAC7G,OAAO,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,SAAS,EAAiE,MAAM,OAAO,CAAC;AACtH,OAAO,EAAmB,KAAK,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAGpG,OAAO,EAIL,KAAK,gBAAgB,EAIrB,KAAK,UAAU,EAEhB,MAAM,WAAW,CAAC;AAEnB,OAAO,oBAAoB,CAAC;AAE5B;;;;;;;GAOG;AACH,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,oBAAoB,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC;AAEpG,KAAK,qBAAqB,GAAG,cAAc,GAAG;IAC5C,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,sBAAsB,CAAC;IAC3C;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,qBAAqB,QACkE,CAAC;AAErG;;;;;;;;;;GAUG;AACH,eAAO,MAAM,4BAA4B,QAAO,MAAM,GAAG,SAQxD,CAAC;AAiCF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,uBAAuB,QAAO,OAA+B,CAAC;AAqK3E;;;GAGG;AACH,KAAK,mBAAmB,GAAG;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IAKvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH;;;;;;GAMG;AACH,KAAK,aAAa,GAAG,MAAM,GAAG,YAAY,GAAG,kBAAkB,GAAG,mBAAmB,CAAC;AAmLtF;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,aAAa,EAAE,aAAa,CAAC;CAC9B,CAAC;AAwCF,eAAO,MAAM,mBAAmB,yCAE9B,CAAC;AAEH,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CA0JtD,CAAC"}
1
+ {"version":3,"file":"passflow-provider.d.ts","sourceRoot":"","sources":["../../../../src/components/provider/passflow-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EAKpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,SAAS,EAAiE,MAAM,OAAO,CAAC;AACtH,OAAO,EAAmB,KAAK,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAGpG,OAAO,EAKL,KAAK,gBAAgB,EAIrB,KAAK,UAAU,EAEhB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,oBAAoB,CAAC;AAE5B,OAAO,EAAE,4BAA4B,EAAE,CAAC;AAExC;;;;;;;GAOG;AACH,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,oBAAoB,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC;AAEpG,KAAK,qBAAqB,GAAG,cAAc,GAAG;IAC5C,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,sBAAsB,CAAC;IAC3C;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,qBAAqB,QAC6F,CAAC;AAiChI;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,uBAAuB,QAAO,OAA+B,CAAC;AAqK3E;;;GAGG;AACH,KAAK,mBAAmB,GAAG;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IAKvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH;;;;;;GAMG;AACH,KAAK,aAAa,GAAG,MAAM,GAAG,YAAY,GAAG,kBAAkB,GAAG,mBAAmB,CAAC;AAmLtF;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,aAAa,EAAE,aAAa,CAAC;CAC9B,CAAC;AAwFF,eAAO,MAAM,mBAAmB,yCAE9B,CAAC;AAEH,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CAgKtD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/button/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,oBAAoB,EAEzB,KAAK,EAAE,EAGP,KAAK,iBAAiB,EAGvB,MAAM,OAAO,CAAC;AAEf,OAAO,oBAAoB,CAAC;AAE5B,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,WAAW,CASlC,CAAC;AAEF,KAAK,OAAO,GAAG,iBAAiB,GAC9B,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IACxC,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjC;;OAEG;IACH,OAAO,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC9G,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEJ,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,OAAO,CAkF9B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/button/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,oBAAoB,EAEzB,KAAK,EAAE,EAGP,KAAK,iBAAiB,EAGvB,MAAM,OAAO,CAAC;AAEf,OAAO,oBAAoB,CAAC;AAE5B,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,WAAW,CASlC,CAAC;AAEF,KAAK,OAAO,GAAG,iBAAiB,GAC9B,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IACxC,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjC;;OAEG;IACH,OAAO,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC9G,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEJ,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,OAAO,CA2F9B,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { FC } from 'react';
1
+ import type { FC, Ref } from 'react';
2
2
  export type FieldOtpCharset = 'numeric' | 'alphanumeric';
3
3
  export type FieldOtpState = 'default' | 'error' | 'disabled';
4
4
  type FieldOtpBaseProps = {
@@ -19,6 +19,8 @@ type FieldOtpBaseProps = {
19
19
  /** Id of the element that describes it, such as the error message. */
20
20
  describedBy?: string;
21
21
  autoFocus?: boolean;
22
+ /** The one real `<input>`, so a screen can return focus to it after the field was locked. */
23
+ ref?: Ref<HTMLInputElement>;
22
24
  };
23
25
  /**
24
26
  * The code field is named either by a visible label it draws itself (`label`),
@@ -1,4 +1,4 @@
1
- import type { FC } from 'react';
1
+ import type { FC, Ref } from 'react';
2
2
  export type FieldOtpCharset = 'numeric' | 'alphanumeric';
3
3
  export type FieldOtpState = 'default' | 'error' | 'disabled';
4
4
  type FieldOtpBaseProps = {
@@ -19,6 +19,8 @@ type FieldOtpBaseProps = {
19
19
  /** Id of the element that describes it, such as the error message. */
20
20
  describedBy?: string;
21
21
  autoFocus?: boolean;
22
+ /** The one real `<input>`, so a screen can return focus to it after the field was locked. */
23
+ ref?: Ref<HTMLInputElement>;
22
24
  };
23
25
  /**
24
26
  * The code field is named either by a visible label it draws itself (`label`),
@@ -1 +1 @@
1
- {"version":3,"file":"field-otp.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/fields/field-otp.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,oBAAoB,CAAC;AAC5B,OAAO,iBAAiB,CAAC;AAEzB,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,cAAc,CAAC;AAEzD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;AAE7D,KAAK,iBAAiB,GAAG;IACvB,wEAAwE;IACxE,EAAE,EAAE,MAAM,CAAC;IACX,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,wDAAwD;IACxD,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,2FAA2F;IAC3F,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,+FAA+F;IAC/F,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAC3C,CACI;IACE,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,KAAK,CAAC;CACpB,GACD;IACE,oGAAoG;IACpG,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CACJ,CAAC;AAsBJ;;;;;;;;GAQG;AACH,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,aAAa,CAwDtC,CAAC"}
1
+ {"version":3,"file":"field-otp.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/fields/field-otp.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAErC,OAAO,oBAAoB,CAAC;AAC5B,OAAO,iBAAiB,CAAC;AAEzB,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,cAAc,CAAC;AAEzD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;AAE7D,KAAK,iBAAiB,GAAG;IACvB,wEAAwE;IACxE,EAAE,EAAE,MAAM,CAAC;IACX,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,wDAAwD;IACxD,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,2FAA2F;IAC3F,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,+FAA+F;IAC/F,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6FAA6F;IAC7F,GAAG,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;CAC7B,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAC3C,CACI;IACE,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,KAAK,CAAC;CACpB,GACD;IACE,oGAAoG;IACpG,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CACJ,CAAC;AAsBJ;;;;;;;;GAQG;AACH,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,aAAa,CA0DtC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/login-screen/credentials.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAchC,OAAO,KAAK,EAAE,qBAAqB,EAA0B,MAAM,SAAS,CAAC;AAqB7E,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CAsXtD,CAAC"}
1
+ {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/login-screen/credentials.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAchC,OAAO,KAAK,EAAE,qBAAqB,EAA0B,MAAM,SAAS,CAAC;AAqB7E,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CAiYtD,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { FC } from 'react';
2
+ import type { LoginEmailCodeResend, LoginEmailCodeState } from './types.cjs';
3
+ type EmailCodeResendButtonProps = LoginEmailCodeResend & {
4
+ /** Locked by the step itself, while a verify is in flight. */
5
+ locked: boolean;
6
+ };
7
+ /**
8
+ * Resend, with its own cooldown. The countdown is drawn in the label but hidden
9
+ * from assistive technology, so the name stays `Resend code` and is not re-read
10
+ * every second. While it counts down, the button is `aria-disabled`: it keeps
11
+ * focus after a press instead of dropping the keyboard user.
12
+ *
13
+ * The step remounts it (`key`) when `restartKey` changes, which restarts the
14
+ * cooldown for a code the server sent again.
15
+ */
16
+ export declare const EmailCodeResendButton: FC<EmailCodeResendButtonProps>;
17
+ /**
18
+ * The emailed verification code step: the server's prompt names a row of code
19
+ * boxes; six digits submit by themselves. A failed verify or a resend clears the
20
+ * typed code. While a verify is in flight the code, Resend and the way back are
21
+ * locked, and focus returns to the code when it ends.
22
+ */
23
+ export declare const LoginEmailCode: FC<LoginEmailCodeState>;
24
+ export {};
25
+ //# sourceMappingURL=email-code.d.ts.map
@@ -0,0 +1,25 @@
1
+ import type { FC } from 'react';
2
+ import type { LoginEmailCodeResend, LoginEmailCodeState } from './types.js';
3
+ type EmailCodeResendButtonProps = LoginEmailCodeResend & {
4
+ /** Locked by the step itself, while a verify is in flight. */
5
+ locked: boolean;
6
+ };
7
+ /**
8
+ * Resend, with its own cooldown. The countdown is drawn in the label but hidden
9
+ * from assistive technology, so the name stays `Resend code` and is not re-read
10
+ * every second. While it counts down, the button is `aria-disabled`: it keeps
11
+ * focus after a press instead of dropping the keyboard user.
12
+ *
13
+ * The step remounts it (`key`) when `restartKey` changes, which restarts the
14
+ * cooldown for a code the server sent again.
15
+ */
16
+ export declare const EmailCodeResendButton: FC<EmailCodeResendButtonProps>;
17
+ /**
18
+ * The emailed verification code step: the server's prompt names a row of code
19
+ * boxes; six digits submit by themselves. A failed verify or a resend clears the
20
+ * typed code. While a verify is in flight the code, Resend and the way back are
21
+ * locked, and focus returns to the code when it ends.
22
+ */
23
+ export declare const LoginEmailCode: FC<LoginEmailCodeState>;
24
+ export {};
25
+ //# sourceMappingURL=email-code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-code.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/login-screen/email-code.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAa,MAAM,OAAO,CAAC;AAM3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AASzE,KAAK,0BAA0B,GAAG,oBAAoB,GAAG;IACvD,8DAA8D;IAC9D,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC,0BAA0B,CA0ChE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAgGlD,CAAC"}
@@ -1,4 +1,4 @@
1
1
  export { LoginScreen } from './login-screen.cjs';
2
2
  export { LoginAlert } from './shared.cjs';
3
- export type { LoginCodeEntryState, LoginConsentScope, LoginConsentState, LoginCredentialsState, LoginCredentialsValues, LoginDeviceApprovalState, LoginGeneralErrorState, LoginIdentityMethod, LoginInvitationState, LoginMethodConfig, LoginPasskeyProgressState, LoginScreenChrome, LoginScreenLink, LoginScreenNotice as LoginScreenNoticeProps, LoginScreenProps, LoginScreenState, LoginSecondFactorMethod, LoginSecondFactorState, LoginStatusState, } from './types.cjs';
3
+ export type { LoginCodeEntryState, LoginConsentScope, LoginConsentState, LoginCredentialsState, LoginCredentialsValues, LoginDeviceApprovalState, LoginEmailCodeResend, LoginEmailCodeState, LoginGeneralErrorState, LoginIdentityMethod, LoginInvitationState, LoginMethodConfig, LoginNewPasswordState, LoginPasskeyProgressState, LoginPasswordlessApprovalFormState, LoginPasswordlessApprovalLoadingState, LoginPasswordlessApprovalState, LoginPasswordlessWaitingState, LoginScreenAction, LoginScreenChrome, LoginScreenLink, LoginScreenNotice as LoginScreenNoticeProps, LoginScreenProps, LoginScreenState, LoginSecondFactorMethod, LoginSecondFactorState, LoginStatusState, } from './types.cjs';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
1
  export { LoginScreen } from './login-screen.js';
2
2
  export { LoginAlert } from './shared.js';
3
- export type { LoginCodeEntryState, LoginConsentScope, LoginConsentState, LoginCredentialsState, LoginCredentialsValues, LoginDeviceApprovalState, LoginGeneralErrorState, LoginIdentityMethod, LoginInvitationState, LoginMethodConfig, LoginPasskeyProgressState, LoginScreenChrome, LoginScreenLink, LoginScreenNotice as LoginScreenNoticeProps, LoginScreenProps, LoginScreenState, LoginSecondFactorMethod, LoginSecondFactorState, LoginStatusState, } from './types.js';
3
+ export type { LoginCodeEntryState, LoginConsentScope, LoginConsentState, LoginCredentialsState, LoginCredentialsValues, LoginDeviceApprovalState, LoginEmailCodeResend, LoginEmailCodeState, LoginGeneralErrorState, LoginIdentityMethod, LoginInvitationState, LoginMethodConfig, LoginNewPasswordState, LoginPasskeyProgressState, LoginPasswordlessApprovalFormState, LoginPasswordlessApprovalLoadingState, LoginPasswordlessApprovalState, LoginPasswordlessWaitingState, LoginScreenAction, LoginScreenChrome, LoginScreenLink, LoginScreenNotice as LoginScreenNoticeProps, LoginScreenProps, LoginScreenState, LoginSecondFactorMethod, LoginSecondFactorState, LoginStatusState, } from './types.js';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/login-screen/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,IAAI,sBAAsB,EAC3C,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/login-screen/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,yBAAyB,EACzB,kCAAkC,EAClC,qCAAqC,EACrC,8BAA8B,EAC9B,6BAA6B,EAC7B,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,IAAI,sBAAsB,EAC3C,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,SAAS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"login-screen.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/login-screen/login-screen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAWhC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CA6C5C,CAAC"}
1
+ {"version":3,"file":"login-screen.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/login-screen/login-screen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAehC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAuD5C,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { FC } from 'react';
2
+ import type { LoginNewPasswordState } from './types.cjs';
3
+ /**
4
+ * Choosing a new password, checked against the app's password policy as it is
5
+ * typed: for a reset, or to finish an account started by email. The field keeps
6
+ * `id="password"`, and the button the `passflow-button-reset-password` class, so an
7
+ * app's custom CSS still finds them.
8
+ */
9
+ export declare const LoginNewPassword: FC<LoginNewPasswordState>;
10
+ //# sourceMappingURL=new-password.d.ts.map
@@ -0,0 +1,10 @@
1
+ import type { FC } from 'react';
2
+ import type { LoginNewPasswordState } from './types.js';
3
+ /**
4
+ * Choosing a new password, checked against the app's password policy as it is
5
+ * typed: for a reset, or to finish an account started by email. The field keeps
6
+ * `id="password"`, and the button the `passflow-button-reset-password` class, so an
7
+ * app's custom CSS still finds them.
8
+ */
9
+ export declare const LoginNewPassword: FC<LoginNewPasswordState>;
10
+ //# sourceMappingURL=new-password.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new-password.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/login-screen/new-password.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAMhC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAOrD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CAoFtD,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { FC } from 'react';
2
+ import type { LoginPasswordlessApprovalState } from './types.cjs';
3
+ export declare const LoginPasswordlessApproval: FC<LoginPasswordlessApprovalState>;
4
+ //# sourceMappingURL=passwordless-approval.d.ts.map
@@ -0,0 +1,4 @@
1
+ import type { FC } from 'react';
2
+ import type { LoginPasswordlessApprovalState } from './types.js';
3
+ export declare const LoginPasswordlessApproval: FC<LoginPasswordlessApprovalState>;
4
+ //# sourceMappingURL=passwordless-approval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passwordless-approval.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/login-screen/passwordless-approval.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAa,MAAM,OAAO,CAAC;AAK3C,OAAO,KAAK,EAAsC,8BAA8B,EAAE,MAAM,SAAS,CAAC;AAgGlG,eAAO,MAAM,yBAAyB,EAAE,EAAE,CAAC,8BAA8B,CAStE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { FC } from 'react';
2
+ import type { LoginPasswordlessWaitingState } from './types.cjs';
3
+ export declare const LoginPasswordlessWaiting: FC<LoginPasswordlessWaitingState>;
4
+ //# sourceMappingURL=passwordless-waiting.d.ts.map
@@ -0,0 +1,4 @@
1
+ import type { FC } from 'react';
2
+ import type { LoginPasswordlessWaitingState } from './types.js';
3
+ export declare const LoginPasswordlessWaiting: FC<LoginPasswordlessWaitingState>;
4
+ //# sourceMappingURL=passwordless-waiting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passwordless-waiting.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/login-screen/passwordless-waiting.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAGhC,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,SAAS,CAAC;AAE7D,eAAO,MAAM,wBAAwB,EAAE,EAAE,CAAC,6BAA6B,CAyBtE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/login-screen/status.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAIhC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAgC5C,CAAC"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/login-screen/status.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAIhC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAyC5C,CAAC"}