@coinbase/cdp-react 0.0.86 → 0.0.88

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 (113) hide show
  1. package/dist/assets/CDPReactProvider.css +1 -1
  2. package/dist/assets/EnrollMfaFlow.css +1 -1
  3. package/dist/assets/VerifyMfaFlow.css +1 -1
  4. package/dist/assets/VerifyMfaFlowBackButton.css +1 -0
  5. package/dist/assets/VerifyMfaInline.css +1 -1
  6. package/dist/assets/VerifyMfaItem.css +1 -0
  7. package/dist/assets/VerifyMfaItems.css +1 -0
  8. package/dist/assets/sms.css +1 -0
  9. package/dist/chunks/CDPReactProvider.BkmtXUv1.js +337 -0
  10. package/dist/chunks/{LinkAuthFlow.BaUSMzGH.js → LinkAuthFlow.B4FAtf4V.js} +13 -13
  11. package/dist/chunks/index.BX4k-ruQ.js +12 -0
  12. package/dist/chunks/index.Bgx0-QLY.js +12 -0
  13. package/dist/chunks/{index.C_DV0Ud7.js → index.DgrgIsTX.js} +1 -1
  14. package/dist/chunks/useSendComponentCallOnce.DGjALrnZ.js +278 -0
  15. package/dist/components/AuthButton/index.js +1 -1
  16. package/dist/components/CDPReactProvider/index.js +1 -1
  17. package/dist/components/CopyEvmKeyButton/index.js +1 -1
  18. package/dist/components/CopySolanaKeyButton/index.js +1 -1
  19. package/dist/components/EnrollMfa/EnrollMfaDescription.js +4 -3
  20. package/dist/components/EnrollMfa/EnrollMfaFlow.js +27 -26
  21. package/dist/components/EnrollMfa/EnrollMfaFlowBackButton.js +7 -6
  22. package/dist/components/EnrollMfa/EnrollMfaFlowProvider.d.ts +1 -1
  23. package/dist/components/EnrollMfa/EnrollMfaFlowProvider.js +5 -4
  24. package/dist/components/EnrollMfa/EnrollMfaImage.js +7 -6
  25. package/dist/components/EnrollMfa/EnrollMfaItem.js +7 -6
  26. package/dist/components/EnrollMfa/EnrollMfaItems.js +28 -25
  27. package/dist/components/EnrollMfa/EnrollMfaProvider.js +22 -17
  28. package/dist/components/EnrollMfa/EnrollMfaTitle.js +8 -7
  29. package/dist/components/EnrollMfa/index.js +134 -128
  30. package/dist/components/EnrollMfa/methods/sms.d.ts +6 -0
  31. package/dist/components/EnrollMfa/methods/sms.js +148 -0
  32. package/dist/components/EnrollMfa/methods/totp.js +24 -19
  33. package/dist/components/EnrollMfa/types.d.ts +17 -5
  34. package/dist/components/EnrollMfa/types.js +1 -0
  35. package/dist/components/EnrollMfa/useEnrollMfaReducer.js +51 -38
  36. package/dist/components/EnrollMfaModal/index.js +2 -2
  37. package/dist/components/ExportWallet/index.js +109 -101
  38. package/dist/components/ExportWalletModal/index.js +2 -2
  39. package/dist/components/Fund/index.js +2 -2
  40. package/dist/components/FundModal/index.js +2 -2
  41. package/dist/components/LinkAuth/LinkAuthFlow.js +2 -2
  42. package/dist/components/LinkAuth/LinkAuthFlowBackButton.js +2 -2
  43. package/dist/components/LinkAuth/LinkAuthFlowProvider.js +2 -2
  44. package/dist/components/LinkAuth/LinkAuthItem.js +1 -1
  45. package/dist/components/LinkAuth/LinkAuthItems.js +1 -1
  46. package/dist/components/LinkAuth/LinkAuthProvider.js +1 -1
  47. package/dist/components/LinkAuth/index.js +4 -4
  48. package/dist/components/LinkAuth/types.js +1 -1
  49. package/dist/components/LinkAuth/utils.js +1 -1
  50. package/dist/components/LinkAuthModal/index.js +3 -3
  51. package/dist/components/OAuthStatusModal/index.js +2 -2
  52. package/dist/components/SendEvmTransactionButton/index.js +1 -1
  53. package/dist/components/SendSolanaTransactionButton/index.js +1 -1
  54. package/dist/components/SignIn/SignInAuthMethodButtons.js +1 -1
  55. package/dist/components/SignIn/SignInBackButton.js +12 -12
  56. package/dist/components/SignIn/SignInDescription.js +2 -2
  57. package/dist/components/SignIn/SignInForm.js +2 -2
  58. package/dist/components/SignIn/SignInImage.js +1 -1
  59. package/dist/components/SignIn/SignInProvider.js +1 -1
  60. package/dist/components/SignIn/SignInTitle.js +2 -2
  61. package/dist/components/SignIn/flows/SignInWithEmail.js +1 -1
  62. package/dist/components/SignIn/flows/SignInWithOAuth.js +1 -1
  63. package/dist/components/SignIn/flows/SignInWithSms.js +74 -84
  64. package/dist/components/SignIn/index.js +2 -2
  65. package/dist/components/SignIn/types.d.ts +2 -0
  66. package/dist/components/SignIn/types.js +1 -1
  67. package/dist/components/SignIn/useSignInReducer.js +20 -6
  68. package/dist/components/SignInModal/index.js +2 -2
  69. package/dist/components/SignOutButton/index.js +1 -1
  70. package/dist/components/VerifyMfa/VerifyMfaDescription.d.ts +1 -1
  71. package/dist/components/VerifyMfa/VerifyMfaDescription.js +24 -14
  72. package/dist/components/VerifyMfa/VerifyMfaFlow.d.ts +5 -4
  73. package/dist/components/VerifyMfa/VerifyMfaFlow.js +52 -13
  74. package/dist/components/VerifyMfa/VerifyMfaFlowBackButton.d.ts +9 -0
  75. package/dist/components/VerifyMfa/VerifyMfaFlowBackButton.js +40 -0
  76. package/dist/components/VerifyMfa/VerifyMfaFlowProvider.d.ts +23 -0
  77. package/dist/components/VerifyMfa/VerifyMfaFlowProvider.js +37 -0
  78. package/dist/components/VerifyMfa/VerifyMfaImage.d.ts +1 -1
  79. package/dist/components/VerifyMfa/VerifyMfaImage.js +25 -13
  80. package/dist/components/VerifyMfa/VerifyMfaItem.d.ts +10 -0
  81. package/dist/components/VerifyMfa/VerifyMfaItem.js +27 -0
  82. package/dist/components/VerifyMfa/VerifyMfaItems.d.ts +9 -0
  83. package/dist/components/VerifyMfa/VerifyMfaItems.js +31 -0
  84. package/dist/components/VerifyMfa/VerifyMfaProvider.js +27 -14
  85. package/dist/components/VerifyMfa/VerifyMfaTitle.d.ts +1 -1
  86. package/dist/components/VerifyMfa/VerifyMfaTitle.js +23 -13
  87. package/dist/components/VerifyMfa/index.d.ts +6 -2
  88. package/dist/components/VerifyMfa/index.js +24 -15
  89. package/dist/components/VerifyMfa/methods/sms.d.ts +6 -0
  90. package/dist/components/VerifyMfa/methods/sms.js +90 -0
  91. package/dist/components/VerifyMfa/methods/totp.js +40 -39
  92. package/dist/components/VerifyMfa/types.d.ts +21 -2
  93. package/dist/components/VerifyMfa/types.js +1 -0
  94. package/dist/components/VerifyMfa/useVerifyMfaReducer.d.ts +2 -1
  95. package/dist/components/VerifyMfa/useVerifyMfaReducer.js +29 -4
  96. package/dist/components/VerifyMfaInline/index.d.ts +1 -1
  97. package/dist/components/VerifyMfaInline/index.js +133 -116
  98. package/dist/components/VerifyMfaModal/index.js +8 -6
  99. package/dist/components/ui/SwitchTransition/index.js +3 -3
  100. package/dist/hooks/usePhoneNumberState.d.ts +15 -0
  101. package/dist/hooks/usePhoneNumberState.js +39 -0
  102. package/dist/hooks/useTransitionMap.js +24 -22
  103. package/dist/hooks/useVerifyMfaModal.js +2 -2
  104. package/dist/index.js +60 -52
  105. package/dist/utils/transition.d.ts +3 -3
  106. package/dist/utils/transition.js +21 -20
  107. package/dist/version.d.ts +1 -1
  108. package/dist/version.js +1 -1
  109. package/package.json +6 -6
  110. package/dist/chunks/CDPReactProvider.CIQm4C4z.js +0 -299
  111. package/dist/chunks/index.CKQKBoX2.js +0 -9
  112. package/dist/chunks/index.Dp-lIxM1.js +0 -9
  113. package/dist/chunks/useSendComponentCallOnce.BHZMuo6E.js +0 -273
@@ -1,6 +1,6 @@
1
1
  import { jsx as m } from "react/jsx-runtime";
2
2
  import { useSignOut as r } from "@coinbase/cdp-hooks";
3
- import { u as e } from "../../chunks/useSendComponentCallOnce.BHZMuo6E.js";
3
+ import { u as e } from "../../chunks/useSendComponentCallOnce.DGjALrnZ.js";
4
4
  import "react";
5
5
  import { c } from "../../chunks/lite.1fxw3LjI.js";
6
6
  import { Button as a } from "../ui/Button/index.js";
@@ -3,4 +3,4 @@ import { VerifyMfaMethodComponentProps } from './types';
3
3
  export interface VerifyMfaDescriptionProps extends VerifyMfaMethodComponentProps, HTMLAttributes<HTMLElement> {
4
4
  as?: ElementType;
5
5
  }
6
- export declare const VerifyMfaDescription: ({ as: Component, children, className, method: methodFromProps, step: stepFromProps, ...props }: VerifyMfaDescriptionProps) => import("react/jsx-runtime").JSX.Element;
6
+ export declare const VerifyMfaDescription: ({ as: Component, children, className, method: methodFromProps, step: stepFromProps, ...props }: VerifyMfaDescriptionProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -1,21 +1,31 @@
1
- import { jsx as s } from "react/jsx-runtime";
1
+ import { jsx as r } from "react/jsx-runtime";
2
2
  import "react";
3
- import { m as f } from "../../chunks/index.Dp-lIxM1.js";
3
+ import { m as d } from "../../chunks/index.BX4k-ruQ.js";
4
4
  import "@coinbase/cdp-hooks";
5
+ import "@coinbase/cdp-core";
5
6
  import { useVerifyMfaContext as a } from "./VerifyMfaProvider.js";
6
- import '../../assets/VerifyMfaDescription.css';const y = "VerifyMfaDescription-module__description___mDWgu", _ = {
7
- description: y
8
- }, x = ({
9
- as: i = "p",
10
- children: t,
11
- className: r = "",
12
- method: n,
13
- step: p,
14
- ...m
7
+ import '../../assets/VerifyMfaDescription.css';const u = "VerifyMfaDescription-module__description___mDWgu", y = {
8
+ description: u
9
+ }, g = ({
10
+ as: n = "p",
11
+ children: e,
12
+ className: p = "",
13
+ method: m,
14
+ step: c,
15
+ ...f
15
16
  }) => {
16
- const { state: o } = a(), c = p || o.step, e = n || o.method, d = f[e].description;
17
- return /* @__PURE__ */ s(i, { className: `${_.description} ${r}`, ...m, children: t || /* @__PURE__ */ s(d, { step: c, method: e }) });
17
+ const { state: o } = a(), s = c || o.step, i = m || o.method;
18
+ let t;
19
+ if (e)
20
+ t = e;
21
+ else if (s === "list")
22
+ t = null;
23
+ else {
24
+ const l = d[i].description;
25
+ t = /* @__PURE__ */ r(l, { step: s, method: i });
26
+ }
27
+ return t ? /* @__PURE__ */ r(n, { className: `${y.description} ${p}`, ...f, children: t }) : null;
18
28
  };
19
29
  export {
20
- x as VerifyMfaDescription
30
+ g as VerifyMfaDescription
21
31
  };
@@ -1,11 +1,12 @@
1
1
  import { HTMLAttributes, ReactNode } from 'react';
2
- import { MfaMethod, VerifyMfaState } from './types';
2
+ import { MfaMethod, VerifyMfaStep } from './types';
3
3
  export interface VerifyMfaFlowProps extends Omit<HTMLAttributes<HTMLElement>, "children"> {
4
4
  autoFocus?: boolean;
5
+ animateHeight?: boolean;
5
6
  children?: (props: {
6
- step: VerifyMfaState["step"];
7
+ step: VerifyMfaStep;
7
8
  method: MfaMethod;
8
- Form: ReactNode;
9
+ Content: ReactNode;
9
10
  }) => ReactNode;
10
11
  }
11
- export declare const VerifyMfaFlow: ({ autoFocus, children, className, ...props }: VerifyMfaFlowProps) => import("react/jsx-runtime").JSX.Element;
12
+ export declare const VerifyMfaFlow: ({ autoFocus, animateHeight, children, className, ...props }: VerifyMfaFlowProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,19 +1,58 @@
1
- import { jsx as r } from "react/jsx-runtime";
1
+ import { jsx as t, jsxs as y } from "react/jsx-runtime";
2
2
  import "react";
3
- import { m as h } from "../../chunks/index.Dp-lIxM1.js";
3
+ import { Button as S } from "../ui/Button/index.js";
4
+ import { SwitchSlideTransition as v } from "../ui/SwitchSlideTransition/index.js";
5
+ import { m as F } from "../../chunks/index.BX4k-ruQ.js";
4
6
  import "@coinbase/cdp-hooks";
5
- import { useVerifyMfaContext as l } from "./VerifyMfaProvider.js";
6
- import '../../assets/VerifyMfaFlow.css';const u = {
7
- "method-wrapper": "VerifyMfaFlow-module__method-wrapper___LEPzD"
8
- }, F = ({
9
- autoFocus: s = !0,
10
- children: t,
11
- className: m = "",
12
- ...p
7
+ import "@coinbase/cdp-core";
8
+ import { STEPS as $ } from "./useVerifyMfaReducer.js";
9
+ import { useVerifyMfaFlowInternal as g } from "./VerifyMfaFlowProvider.js";
10
+ import { VerifyMfaItems as x } from "./VerifyMfaItems.js";
11
+ import { useVerifyMfaContext as C } from "./VerifyMfaProvider.js";
12
+ import '../../assets/VerifyMfaFlow.css';const z = "VerifyMfaFlow-module__wrapper___lzVPg", E = "VerifyMfaFlow-module__list___-N0zn", o = {
13
+ wrapper: z,
14
+ "pad-top": "VerifyMfaFlow-module__pad-top___gF1z2",
15
+ list: E
16
+ }, b = ({
17
+ autoFocus: n = !0,
18
+ animateHeight: m = !0,
19
+ children: s,
20
+ className: l = "",
21
+ ...a
13
22
  }) => {
14
- const { state: n, onSuccess: a, onError: i } = l(), { method: o, step: c } = n, f = h[o].content;
15
- return /* @__PURE__ */ r("div", { className: `${u["method-wrapper"]} ${m}`, ...p, children: /* @__PURE__ */ r(f, { autoFocus: s, step: c, onSuccess: a, onError: i, children: ({ step: d, Content: e }) => t ? t({ step: d, method: o, Form: e }) : e }) });
23
+ const { state: p, onSuccess: d, onError: c } = C(), { direction: h, selectMethod: _, showMethodList: u, transitionRef: w } = g(), { method: i, methods: f } = p;
24
+ return /* @__PURE__ */ t(
25
+ v,
26
+ {
27
+ autoFocus: n,
28
+ animateHeight: m,
29
+ items: $,
30
+ initialEntered: !0,
31
+ timeout: 250,
32
+ direction: h,
33
+ transitionRef: w,
34
+ children: ({ itemKey: r, ...M }) => {
35
+ let e = null;
36
+ if (r === "verification") {
37
+ const V = F[i].content;
38
+ e = /* @__PURE__ */ y("div", { className: `${o.wrapper} ${o["pad-top"]} ${l}`, ...a, children: [
39
+ /* @__PURE__ */ t(
40
+ V,
41
+ {
42
+ autoFocus: n,
43
+ step: r,
44
+ onSuccess: d,
45
+ onError: c
46
+ }
47
+ ),
48
+ f.length > 1 && i === f[0] && /* @__PURE__ */ t(S, { variant: "transparentPrimary", fullWidth: !0, onClick: u, children: "Use a different method" })
49
+ ] });
50
+ } else r === "list" && (e = /* @__PURE__ */ t("div", { className: `${o.wrapper} ${l}`, ...a, children: /* @__PURE__ */ t(x, { className: o.list, onSelect: _ }) }));
51
+ return /* @__PURE__ */ t("div", { ...M, children: s ? s({ step: r, method: i, Content: e }) : e });
52
+ }
53
+ }
54
+ );
16
55
  };
17
56
  export {
18
- F as VerifyMfaFlow
57
+ b as VerifyMfaFlow
19
58
  };
@@ -0,0 +1,9 @@
1
+ import { ButtonHTMLAttributes } from 'react';
2
+ import { ButtonProps } from '../ui/Button/Button';
3
+ import { VerifyMfaStep } from './types';
4
+ export interface VerifyMfaFlowBackButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
5
+ step?: VerifyMfaStep;
6
+ size?: ButtonProps["size"];
7
+ variant?: ButtonProps["variant"];
8
+ }
9
+ export declare const VerifyMfaFlowBackButton: ({ ["aria-label"]: ariaLabel, children, className, size, onClick, variant, step: stepFromProps, ...props }: VerifyMfaFlowBackButtonProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,40 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import { c as p } from "../../chunks/lite.1fxw3LjI.js";
3
+ import "react";
4
+ import { Button as u } from "../ui/Button/index.js";
5
+ import { IconArrowLeft as _ } from "../../icons/IconArrowLeft.js";
6
+ import "@coinbase/cdp-hooks";
7
+ import "@coinbase/cdp-core";
8
+ import { useVerifyMfaFlowInternal as b } from "./VerifyMfaFlowProvider.js";
9
+ import { useVerifyMfaContext as y } from "./VerifyMfaProvider.js";
10
+ import '../../assets/VerifyMfaFlowBackButton.css';const B = "VerifyMfaFlowBackButton-module__button___cAv9W", d = "VerifyMfaFlowBackButton-module__icon___ezNaM", r = {
11
+ button: B,
12
+ icon: d
13
+ }, C = ({
14
+ ["aria-label"]: e = "Back",
15
+ children: n,
16
+ className: a = "",
17
+ size: c = "md",
18
+ onClick: i,
19
+ variant: s = "transparentSecondary",
20
+ step: m,
21
+ ...f
22
+ }) => {
23
+ const { back: l } = b(), { state: t } = y();
24
+ return (m || t.step) === "verification" && t.method === t.methods[0] ? null : /* @__PURE__ */ o(
25
+ u,
26
+ {
27
+ type: "button",
28
+ "aria-label": e,
29
+ className: p(r.button, a),
30
+ onClick: i ?? l,
31
+ size: c,
32
+ variant: s,
33
+ ...f,
34
+ children: n || /* @__PURE__ */ o(_, { className: r.icon })
35
+ }
36
+ );
37
+ };
38
+ export {
39
+ C as VerifyMfaFlowBackButton
40
+ };
@@ -0,0 +1,23 @@
1
+ import { ReactNode, RefObject } from 'react';
2
+ import { SwitchSlideTransitionRef } from '../ui/SwitchSlideTransition';
3
+ import { MfaMethod, VerifyMfaStep } from './types';
4
+ export interface VerifyMfaFlowContextValue {
5
+ back: () => void;
6
+ direction: "left" | "right";
7
+ selectMethod: (method: MfaMethod) => void;
8
+ showMethodList: () => void;
9
+ }
10
+ export interface VerifyMfaFlowContextValueInternal extends VerifyMfaFlowContextValue {
11
+ transitionRef: RefObject<SwitchSlideTransitionRef<VerifyMfaStep> | null> | null;
12
+ }
13
+ export interface VerifyMfaFlowProviderProps {
14
+ children?: ReactNode;
15
+ direction: VerifyMfaFlowContextValue["direction"];
16
+ onBack: VerifyMfaFlowContextValue["back"];
17
+ onSelectMethod: VerifyMfaFlowContextValue["selectMethod"];
18
+ onShowMethodList: VerifyMfaFlowContextValue["showMethodList"];
19
+ transitionRef: VerifyMfaFlowContextValueInternal["transitionRef"];
20
+ }
21
+ export declare const useVerifyMfaFlowInternal: () => VerifyMfaFlowContextValueInternal;
22
+ export declare const useVerifyMfaFlow: () => VerifyMfaFlowContextValue;
23
+ export declare const VerifyMfaFlowProvider: ({ children, direction, onBack, onSelectMethod, onShowMethodList, transitionRef, }: VerifyMfaFlowProviderProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,37 @@
1
+ import { jsx as a } from "react/jsx-runtime";
2
+ import { createContext as u, useContext as l, useMemo as c } from "react";
3
+ import "@coinbase/cdp-hooks";
4
+ import "@coinbase/cdp-core";
5
+ const f = u(null), w = () => {
6
+ const e = l(f);
7
+ if (!e)
8
+ throw new Error("useVerifyMfaFlowInternal must be used within a VerifyMfaFlowProvider");
9
+ return e;
10
+ }, y = () => {
11
+ const { transitionRef: e, ...r } = w();
12
+ return r;
13
+ }, F = ({
14
+ children: e,
15
+ direction: r,
16
+ onBack: t,
17
+ onSelectMethod: o,
18
+ onShowMethodList: n,
19
+ transitionRef: s
20
+ }) => {
21
+ const i = c(
22
+ () => ({
23
+ back: t,
24
+ direction: r,
25
+ selectMethod: o,
26
+ showMethodList: n,
27
+ transitionRef: s
28
+ }),
29
+ [t, r, o, n, s]
30
+ );
31
+ return /* @__PURE__ */ a(f.Provider, { value: i, children: e });
32
+ };
33
+ export {
34
+ F as VerifyMfaFlowProvider,
35
+ y as useVerifyMfaFlow,
36
+ w as useVerifyMfaFlowInternal
37
+ };
@@ -3,4 +3,4 @@ import { VerifyMfaMethodComponentProps } from './types';
3
3
  export interface VerifyMfaImageProps extends VerifyMfaMethodComponentProps, HTMLAttributes<HTMLElement> {
4
4
  as?: ElementType;
5
5
  }
6
- export declare const VerifyMfaImage: ({ as: Component, children, className, method: methodFromProps, step: stepFromProps, ...props }: VerifyMfaImageProps) => import("react/jsx-runtime").JSX.Element;
6
+ export declare const VerifyMfaImage: ({ as: Component, children, className, method: methodFromProps, step: stepFromProps, ...props }: VerifyMfaImageProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -1,21 +1,33 @@
1
- import { jsx as o } from "react/jsx-runtime";
1
+ import { jsx as t } from "react/jsx-runtime";
2
2
  import "react";
3
- import { m as c } from "../../chunks/index.Dp-lIxM1.js";
3
+ import { Badge as l } from "../ui/Badge/index.js";
4
+ import { IconShield as g } from "../../icons/IconShield.js";
5
+ import { m as d } from "../../chunks/index.BX4k-ruQ.js";
4
6
  import "@coinbase/cdp-hooks";
5
- import { useVerifyMfaContext as g } from "./VerifyMfaProvider.js";
6
- import '../../assets/VerifyMfaImage.css';const d = "VerifyMfaImage-module__image___xftcN", y = {
7
- image: d
8
- }, u = ({
7
+ import "@coinbase/cdp-core";
8
+ import { useVerifyMfaContext as h } from "./VerifyMfaProvider.js";
9
+ import '../../assets/VerifyMfaImage.css';const y = "VerifyMfaImage-module__image___xftcN", u = {
10
+ image: y
11
+ }, $ = ({
9
12
  as: s = "div",
10
- children: t,
13
+ children: o,
11
14
  className: a = "",
12
- method: i,
13
- step: r,
14
- ...f
15
+ method: n,
16
+ step: f,
17
+ ...p
15
18
  }) => {
16
- const { state: e } = g(), n = r || e.step, m = i || e.method, p = c[m].image;
17
- return /* @__PURE__ */ o(s, { className: `${y.image} ${a}`, ...f, children: t || /* @__PURE__ */ o(p, { step: n, method: m }) });
19
+ const { state: m } = h(), i = f || m.step, r = n || m.method;
20
+ let e;
21
+ if (o)
22
+ e = o;
23
+ else if (i === "list")
24
+ e = /* @__PURE__ */ t(l, { variant: "primary", children: /* @__PURE__ */ t(g, {}) });
25
+ else {
26
+ const c = d[r].image;
27
+ e = /* @__PURE__ */ t(c, { step: i, method: r });
28
+ }
29
+ return e ? /* @__PURE__ */ t(s, { className: `${u.image} ${a}`, ...p, children: e }) : null;
18
30
  };
19
31
  export {
20
- u as VerifyMfaImage
32
+ $ as VerifyMfaImage
21
33
  };
@@ -0,0 +1,10 @@
1
+ import { MouseEventHandler, ReactNode } from 'react';
2
+ import { MfaMethod } from './types';
3
+ export interface VerifyMfaItemProps {
4
+ method: MfaMethod;
5
+ icon?: ReactNode;
6
+ label: string;
7
+ onSelect: MouseEventHandler<HTMLButtonElement>;
8
+ }
9
+ declare const VerifyMfaItem: ({ icon, label, onSelect }: VerifyMfaItemProps) => import("react/jsx-runtime").JSX.Element;
10
+ export { VerifyMfaItem };
@@ -0,0 +1,27 @@
1
+ import { jsxs as s, jsx as o } from "react/jsx-runtime";
2
+ import "react";
3
+ import { Button as i } from "../ui/Button/index.js";
4
+ import "@coinbase/cdp-hooks";
5
+ import "@coinbase/cdp-core";
6
+ import '../../assets/VerifyMfaItem.css';const m = "VerifyMfaItem-module__btn___7ZZjy", c = "VerifyMfaItem-module__icon___gse6F", a = "VerifyMfaItem-module__text___aV6B6", t = {
7
+ btn: m,
8
+ icon: c,
9
+ text: a
10
+ }, u = ({ icon: e, label: n, onSelect: r }) => /* @__PURE__ */ s(
11
+ i,
12
+ {
13
+ size: "md",
14
+ fullWidth: !0,
15
+ variant: "control",
16
+ className: t.btn,
17
+ onClick: r,
18
+ type: "button",
19
+ children: [
20
+ e && /* @__PURE__ */ o("span", { className: t.icon, children: e }),
21
+ /* @__PURE__ */ o("span", { className: t.text, children: n })
22
+ ]
23
+ }
24
+ );
25
+ export {
26
+ u as VerifyMfaItem
27
+ };
@@ -0,0 +1,9 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ import { MfaMethod } from './types';
3
+ import { VerifyMfaItemProps } from './VerifyMfaItem';
4
+ interface VerifyMfaItemsProps extends Omit<HTMLAttributes<HTMLUListElement>, "children" | "onSelect"> {
5
+ children?: (props: VerifyMfaItemProps) => ReactNode;
6
+ onSelect?: (method: MfaMethod) => void;
7
+ }
8
+ declare const VerifyMfaItems: ({ children, className, onSelect, ...props }: VerifyMfaItemsProps) => import("react/jsx-runtime").JSX.Element;
9
+ export { VerifyMfaItems, type VerifyMfaItemsProps };
@@ -0,0 +1,31 @@
1
+ import { jsx as t } from "react/jsx-runtime";
2
+ import { c as a } from "../../chunks/lite.1fxw3LjI.js";
3
+ import { useMemo as f } from "react";
4
+ import { IconPhone as u } from "../../icons/IconPhone.js";
5
+ import { IconPinCode as I } from "../../icons/IconPinCode.js";
6
+ import "@coinbase/cdp-hooks";
7
+ import "@coinbase/cdp-core";
8
+ import { VerifyMfaItem as M } from "./VerifyMfaItem.js";
9
+ import { useVerifyMfaContext as y } from "./VerifyMfaProvider.js";
10
+ import '../../assets/VerifyMfaItems.css';const _ = "VerifyMfaItems-module__list___ITk0B", x = {
11
+ list: _
12
+ }, V = {
13
+ totp: { Icon: /* @__PURE__ */ t(I, {}), label: "Authenticator app" },
14
+ sms: { Icon: /* @__PURE__ */ t(u, {}), label: "SMS" }
15
+ }, B = ({ children: i, className: n = "", onSelect: e, ...c }) => {
16
+ const { state: l } = y(), { methods: m } = l, p = f(() => m.map((o) => {
17
+ const { Icon: r, label: s } = V[o];
18
+ return {
19
+ method: o,
20
+ icon: r,
21
+ label: s,
22
+ onSelect: () => e?.(o)
23
+ };
24
+ }), [m, e]);
25
+ return /* @__PURE__ */ t("ul", { className: a(x.list, n), ...c, children: p.map(
26
+ ({ method: o, ...r }, s) => s === 0 ? null : /* @__PURE__ */ t("li", { children: i?.({ ...r, method: o }) || /* @__PURE__ */ t(M, { ...r, method: o }) }, o)
27
+ ) });
28
+ };
29
+ export {
30
+ B as VerifyMfaItems
31
+ };
@@ -1,28 +1,41 @@
1
- import { jsx as n } from "react/jsx-runtime";
2
- import { createContext as a, useContext as u, useMemo as c } from "react";
3
- import "@coinbase/cdp-hooks";
4
- import { useVerifyMfaReducer as m } from "./useVerifyMfaReducer.js";
5
- const d = {
1
+ import { jsx as d } from "react/jsx-runtime";
2
+ import { getEnrolledMfaMethods as u } from "@coinbase/cdp-core";
3
+ import { useCurrentUser as c } from "@coinbase/cdp-hooks";
4
+ import { createContext as p, useContext as l, useMemo as n, useEffect as h } from "react";
5
+ import { useVerifyMfaReducer as M } from "./useVerifyMfaReducer.js";
6
+ const x = {
6
7
  method: "totp",
7
8
  methods: ["totp"],
8
9
  step: "verification",
10
+ flowDirection: "left",
9
11
  mfaCode: "",
10
12
  error: null,
11
13
  isPending: !1,
12
14
  isSuccess: !1
13
- }, s = a(null), y = () => {
14
- const e = u(s);
15
+ }, a = p(null), E = () => {
16
+ const e = l(a);
15
17
  if (!e)
16
18
  throw new Error("useVerifyMfaContext must be used within a VerifyMfaProvider");
17
19
  return e;
18
- }, C = ({ children: e, onError: t, onSuccess: o }) => {
19
- const [r, i] = m({ ...d }), f = c(
20
- () => ({ state: r, dispatch: i, onSuccess: o, onError: t }),
21
- [r, i, o, t]
20
+ }, P = ({ children: e, onError: f, onSuccess: i }) => {
21
+ const { currentUser: s } = c(), t = n(
22
+ () => s ? u(s) : ["totp"],
23
+ [s]
24
+ ), [o, r] = M({
25
+ ...x,
26
+ methods: t,
27
+ method: t[0] || "totp"
28
+ });
29
+ h(() => {
30
+ t.join(",") !== o.methods.join(",") && r({ type: "SET_METHODS", payload: { methods: t } });
31
+ }, [t, r, o.methods]);
32
+ const m = n(
33
+ () => ({ state: o, dispatch: r, onSuccess: i, onError: f }),
34
+ [o, r, i, f]
22
35
  );
23
- return /* @__PURE__ */ n(s.Provider, { value: f, children: e });
36
+ return /* @__PURE__ */ d(a.Provider, { value: m, children: e });
24
37
  };
25
38
  export {
26
- C as VerifyMfaProvider,
27
- y as useVerifyMfaContext
39
+ P as VerifyMfaProvider,
40
+ E as useVerifyMfaContext
28
41
  };
@@ -3,4 +3,4 @@ import { VerifyMfaMethodComponentProps } from './types';
3
3
  export interface VerifyMfaTitleProps extends VerifyMfaMethodComponentProps, HTMLAttributes<HTMLElement> {
4
4
  as?: ElementType;
5
5
  }
6
- export declare const VerifyMfaTitle: ({ as: Component, children, className, method: methodFromProps, step: stepFromProps, ...props }: VerifyMfaTitleProps) => import("react/jsx-runtime").JSX.Element;
6
+ export declare const VerifyMfaTitle: ({ as: Component, children, className, method: methodFromProps, step: stepFromProps, ...props }: VerifyMfaTitleProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -1,21 +1,31 @@
1
- import { jsx as s } from "react/jsx-runtime";
1
+ import { jsx as e, Fragment as c } from "react/jsx-runtime";
2
2
  import "react";
3
- import { m as d } from "../../chunks/index.Dp-lIxM1.js";
3
+ import { m as d } from "../../chunks/index.BX4k-ruQ.js";
4
4
  import "@coinbase/cdp-hooks";
5
+ import "@coinbase/cdp-core";
5
6
  import { useVerifyMfaContext as h } from "./VerifyMfaProvider.js";
6
- import '../../assets/VerifyMfaTitle.css';const c = "VerifyMfaTitle-module__heading___18nul", l = {
7
- heading: c
8
- }, x = ({
9
- as: i = "h2",
10
- children: t,
7
+ import '../../assets/VerifyMfaTitle.css';const u = "VerifyMfaTitle-module__heading___18nul", y = {
8
+ heading: u
9
+ }, C = ({
10
+ as: r = "h2",
11
+ children: o,
11
12
  className: m = "",
12
- method: n,
13
- step: r,
14
- ...a
13
+ method: l,
14
+ step: a,
15
+ ...f
15
16
  }) => {
16
- const { state: e } = h(), f = r || e.step, o = n || e.method, p = d[o].title;
17
- return /* @__PURE__ */ s(i, { className: `${l.heading} ${m}`, ...a, children: t || /* @__PURE__ */ s(p, { step: f, method: o }) });
17
+ const { state: i } = h(), s = a || i.step, n = l || i.method;
18
+ let t;
19
+ if (o)
20
+ t = o;
21
+ else if (s === "list")
22
+ t = /* @__PURE__ */ e(c, { children: "Verify it's you" });
23
+ else {
24
+ const p = d[n].title;
25
+ t = /* @__PURE__ */ e(p, { step: s, method: n });
26
+ }
27
+ return t ? /* @__PURE__ */ e(r, { className: `${y.heading} ${m}`, ...f, children: t }) : null;
18
28
  };
19
29
  export {
20
- x as VerifyMfaTitle
30
+ C as VerifyMfaTitle
21
31
  };
@@ -1,10 +1,14 @@
1
1
  import { APIError } from '@coinbase/cdp-hooks';
2
2
  import { HTMLAttributes, ReactNode } from 'react';
3
- import { VerifyMfaAction, VerifyMfaState } from './types';
3
+ import { VerifyMfaAction, VerifyMfaState, VerifyMfaStep } from './types';
4
4
  import { VerifyMfaDescription, VerifyMfaDescriptionProps } from './VerifyMfaDescription';
5
5
  import { VerifyMfaFlow, VerifyMfaFlowProps } from './VerifyMfaFlow';
6
+ import { VerifyMfaFlowBackButton, VerifyMfaFlowBackButtonProps } from './VerifyMfaFlowBackButton';
7
+ import { useVerifyMfaFlow, VerifyMfaFlowContextValue } from './VerifyMfaFlowProvider';
6
8
  import { VerifyMfaFooter } from './VerifyMfaFooter';
7
9
  import { VerifyMfaImage, VerifyMfaImageProps } from './VerifyMfaImage';
10
+ import { VerifyMfaItem, VerifyMfaItemProps } from './VerifyMfaItem';
11
+ import { VerifyMfaItems, VerifyMfaItemsProps } from './VerifyMfaItems';
8
12
  import { useVerifyMfaContext, VerifyMfaContextValue } from './VerifyMfaProvider';
9
13
  import { VerifyMfaTitle, VerifyMfaTitleProps } from './VerifyMfaTitle';
10
14
  interface VerifyMfaProps extends Omit<HTMLAttributes<HTMLDivElement>, "children" | "onSubmit" | "onError"> {
@@ -13,4 +17,4 @@ interface VerifyMfaProps extends Omit<HTMLAttributes<HTMLDivElement>, "children"
13
17
  onError?: (error: APIError | Error) => void;
14
18
  }
15
19
  declare const VerifyMfa: ({ onSuccess, onError, ...props }: VerifyMfaProps) => import("react/jsx-runtime").JSX.Element;
16
- export { VerifyMfa, VerifyMfaDescription, VerifyMfaFooter, VerifyMfaFlow, VerifyMfaImage, VerifyMfaTitle, useVerifyMfaContext, type VerifyMfaProps, type VerifyMfaDescriptionProps, type VerifyMfaFlowProps, type VerifyMfaImageProps, type VerifyMfaTitleProps, type VerifyMfaAction, type VerifyMfaState, type VerifyMfaContextValue, };
20
+ export { VerifyMfa, VerifyMfaDescription, VerifyMfaFlow, VerifyMfaFlowBackButton, VerifyMfaFooter, VerifyMfaImage, VerifyMfaItem, VerifyMfaItems, VerifyMfaTitle, useVerifyMfaContext, useVerifyMfaFlow, type VerifyMfaProps, type VerifyMfaContextValue, type VerifyMfaDescriptionProps, type VerifyMfaFlowBackButtonProps, type VerifyMfaFlowContextValue, type VerifyMfaFlowProps, type VerifyMfaImageProps, type VerifyMfaItemProps, type VerifyMfaItemsProps, type VerifyMfaTitleProps, type VerifyMfaAction, type VerifyMfaState, type VerifyMfaStep, };
@@ -1,20 +1,29 @@
1
1
  import "react/jsx-runtime";
2
2
  import "@coinbase/cdp-hooks";
3
- import "../../chunks/useSendComponentCallOnce.BHZMuo6E.js";
3
+ import "../../chunks/useSendComponentCallOnce.DGjALrnZ.js";
4
4
  import "react";
5
- import { V as m } from "../../chunks/CDPReactProvider.CIQm4C4z.js";
6
- import { VerifyMfaDescription as a } from "./VerifyMfaDescription.js";
7
- import { VerifyMfaFlow as V } from "./VerifyMfaFlow.js";
8
- import { VerifyMfaFooter as M } from "./VerifyMfaFooter.js";
9
- import { VerifyMfaImage as l } from "./VerifyMfaImage.js";
10
- import { useVerifyMfaContext as F } from "./VerifyMfaProvider.js";
11
- import { VerifyMfaTitle as g } from "./VerifyMfaTitle.js";
5
+ import { V as p } from "../../chunks/CDPReactProvider.BkmtXUv1.js";
6
+ import "@coinbase/cdp-core";
7
+ import { VerifyMfaDescription as x } from "./VerifyMfaDescription.js";
8
+ import { VerifyMfaFlow as y } from "./VerifyMfaFlow.js";
9
+ import { VerifyMfaFlowBackButton as s } from "./VerifyMfaFlowBackButton.js";
10
+ import { useVerifyMfaFlow as F } from "./VerifyMfaFlowProvider.js";
11
+ import { VerifyMfaFooter as u } from "./VerifyMfaFooter.js";
12
+ import { VerifyMfaImage as I } from "./VerifyMfaImage.js";
13
+ import { VerifyMfaItem as B } from "./VerifyMfaItem.js";
14
+ import { VerifyMfaItems as k } from "./VerifyMfaItems.js";
15
+ import { useVerifyMfaContext as D } from "./VerifyMfaProvider.js";
16
+ import { VerifyMfaTitle as b } from "./VerifyMfaTitle.js";
12
17
  export {
13
- m as VerifyMfa,
14
- a as VerifyMfaDescription,
15
- V as VerifyMfaFlow,
16
- M as VerifyMfaFooter,
17
- l as VerifyMfaImage,
18
- g as VerifyMfaTitle,
19
- F as useVerifyMfaContext
18
+ p as VerifyMfa,
19
+ x as VerifyMfaDescription,
20
+ y as VerifyMfaFlow,
21
+ s as VerifyMfaFlowBackButton,
22
+ u as VerifyMfaFooter,
23
+ I as VerifyMfaImage,
24
+ B as VerifyMfaItem,
25
+ k as VerifyMfaItems,
26
+ b as VerifyMfaTitle,
27
+ D as useVerifyMfaContext,
28
+ F as useVerifyMfaFlow
20
29
  };
@@ -0,0 +1,6 @@
1
+ import { MfaMethodConfig, MfaMethodContentProps, VerifyMfaMethodComponentProps } from '../types';
2
+ export declare const SmsContent: ({ autoFocus, onError, onSuccess, children, }: MfaMethodContentProps) => import("react/jsx-runtime").JSX.Element;
3
+ export declare const SmsTitle: (_props: VerifyMfaMethodComponentProps) => import("react/jsx-runtime").JSX.Element;
4
+ export declare const SmsImage: (_props: VerifyMfaMethodComponentProps) => import("react/jsx-runtime").JSX.Element;
5
+ export declare const SmsDescription: (_props: VerifyMfaMethodComponentProps) => import("react/jsx-runtime").JSX.Element;
6
+ export declare const smsMethodConfig: MfaMethodConfig;