@coinbase/cdp-react 0.0.88 → 0.0.89

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.
@@ -57,6 +57,7 @@ import "../../utils/isApiError.js";
57
57
  import "../../utils/isEmailInvalid.js";
58
58
  import "../../utils/parseValuesFromPhoneNumber.js";
59
59
  import "../../utils/sendIframeMessage.js";
60
+ import "../../hooks/usePhoneNumberState.js";
60
61
  import "@coinbase/cdp-core";
61
62
  import "../EnrollMfa/EnrollMfaDescription.js";
62
63
  import "../EnrollMfa/EnrollMfaFlow.js";
@@ -332,7 +333,7 @@ import '../../assets/ExportWallet.css';const at = "ExportWallet-module__footer__
332
333
  ]
333
334
  }
334
335
  ) });
335
- }, ie = ({
336
+ }, se = ({
336
337
  address: o,
337
338
  children: e,
338
339
  onIframeReady: r,
@@ -365,7 +366,7 @@ import '../../assets/ExportWallet.css';const at = "ExportWallet-module__footer__
365
366
  };
366
367
  D.registerPackageVersion("react", q);
367
368
  export {
368
- ie as E,
369
+ se as E,
369
370
  pt as ExportWallet,
370
371
  j as ExportWalletCopyAddress,
371
372
  B as ExportWalletCopyKeyButton,
@@ -1,47 +1,49 @@
1
1
  import { jsx as l } from "react/jsx-runtime";
2
- import { c as I } from "../../chunks/lite.1fxw3LjI.js";
2
+ import { c as u } from "../../chunks/lite.1fxw3LjI.js";
3
3
  import { useMemo as b } from "react";
4
4
  import "../../chunks/CDPReactProvider.BkmtXUv1.js";
5
- import { IconAppleLogo as d } from "../../icons/IconAppleLogo.js";
6
- import { IconEnvelope as f } from "../../icons/IconEnvelope.js";
7
- import { IconGoogleColorLogo as L } from "../../icons/IconGoogleColorLogo.js";
8
- import { IconPhone as g } from "../../icons/IconPhone.js";
9
- import { IconXLogo as _ } from "../../icons/IconXLogo.js";
10
- import { LinkAuthItem as A } from "./LinkAuthItem.js";
11
- import { useLinkAuthContext as P } from "./LinkAuthProvider.js";
5
+ import { IconAppleLogo as g } from "../../icons/IconAppleLogo.js";
6
+ import { IconEnvelope as d } from "../../icons/IconEnvelope.js";
7
+ import { IconGoogleColorLogo as f } from "../../icons/IconGoogleColorLogo.js";
8
+ import { IconPhone as L } from "../../icons/IconPhone.js";
9
+ import { IconTelegramLogo as _ } from "../../icons/IconTelegramLogo.js";
10
+ import { IconXLogo as A } from "../../icons/IconXLogo.js";
11
+ import { LinkAuthItem as P } from "./LinkAuthItem.js";
12
+ import { useLinkAuthContext as T } from "./LinkAuthProvider.js";
12
13
  import '../../assets/LinkAuthItems.css';const k = "LinkAuthItems-module__list___5AimM", x = {
13
14
  list: k
14
15
  }, M = {
15
- email: { Icon: /* @__PURE__ */ l(f, { "aria-label": "Email" }), label: "Email" },
16
- sms: { Icon: /* @__PURE__ */ l(g, { "aria-label": "Phone" }), label: "Phone" },
17
- "oauth:google": { Icon: /* @__PURE__ */ l(L, { "aria-label": "Google" }), label: "Google" },
18
- "oauth:apple": { Icon: /* @__PURE__ */ l(d, { "aria-label": "Apple" }), label: "Apple" },
19
- "oauth:x": { Icon: /* @__PURE__ */ l(_, { "aria-label": "X" }), label: "X" }
20
- }, D = ({ children: m, className: s = "", onLink: e, ...c }) => {
21
- const { state: p, dispatch: i } = P(), { authMethods: a, isPending: n, methodToLink: r } = p, h = b(() => a.map((o) => {
22
- const { Icon: t, label: u } = M[o.method];
16
+ email: { Icon: /* @__PURE__ */ l(d, { "aria-label": "Email" }), label: "Email" },
17
+ sms: { Icon: /* @__PURE__ */ l(L, { "aria-label": "Phone" }), label: "Phone" },
18
+ "oauth:google": { Icon: /* @__PURE__ */ l(f, { "aria-label": "Google" }), label: "Google" },
19
+ "oauth:apple": { Icon: /* @__PURE__ */ l(g, { "aria-label": "Apple" }), label: "Apple" },
20
+ "oauth:x": { Icon: /* @__PURE__ */ l(A, { "aria-label": "X" }), label: "X" },
21
+ "oauth:telegram": { Icon: /* @__PURE__ */ l(_, { "aria-label": "Telegram" }), label: "Telegram" }
22
+ }, O = ({ children: m, className: s = "", onLink: t, ...c }) => {
23
+ const { state: p, dispatch: a } = T(), { authMethods: i, isPending: r, methodToLink: n } = p, h = b(() => i.map((o) => {
24
+ const { Icon: e, label: I } = M[o.method];
23
25
  return {
24
26
  ...o,
25
- icon: t,
26
- label: u,
27
+ icon: e,
28
+ label: I,
27
29
  onLink: async () => {
28
- i({ type: "LINK_AUTH_METHOD", payload: { method: o.method } }), await e?.(o.method);
30
+ a({ type: "LINK_AUTH_METHOD", payload: { method: o.method } }), await t?.(o.method);
29
31
  }
30
32
  };
31
- }), [a, i, e]);
32
- return /* @__PURE__ */ l("ul", { className: I(x.list, s), ...c, children: h.map(({ method: o, ...t }) => /* @__PURE__ */ l("li", { children: m?.({
33
- ...t,
33
+ }), [i, a, t]);
34
+ return /* @__PURE__ */ l("ul", { className: u(x.list, s), ...c, children: h.map(({ method: o, ...e }) => /* @__PURE__ */ l("li", { children: m?.({
35
+ ...e,
34
36
  authMethod: o,
35
- isPending: n && r === o
37
+ isPending: r && n === o
36
38
  }) || /* @__PURE__ */ l(
37
- A,
39
+ P,
38
40
  {
39
- ...t,
41
+ ...e,
40
42
  authMethod: o,
41
- isPending: n && r === o
43
+ isPending: r && n === o
42
44
  }
43
45
  ) }, o)) });
44
46
  };
45
47
  export {
46
- D as LinkAuthItems
48
+ O as LinkAuthItems
47
49
  };
@@ -1,14 +1,14 @@
1
1
  import { jsx as m } from "react/jsx-runtime";
2
2
  import { useCurrentUser as c } from "@coinbase/cdp-hooks";
3
- import { createContext as p, useContext as M, useMemo as r, useReducer as A, useEffect as f } from "react";
3
+ import { createContext as M, useContext as p, useMemo as r, useReducer as A, useEffect as f } from "react";
4
4
  import { u as L } from "../../chunks/CDPReactProvider.BkmtXUv1.js";
5
5
  import { formatPhoneNumber as k } from "../../utils/formatPhoneNumber.js";
6
- const T = {
6
+ const g = {
7
7
  methodToLink: null,
8
8
  authMethods: [],
9
9
  error: null,
10
10
  isPending: !1
11
- }, d = p(void 0), E = (e, t) => {
11
+ }, d = M(void 0), T = (e, t) => {
12
12
  switch (t) {
13
13
  case "email":
14
14
  return {
@@ -35,11 +35,16 @@ const T = {
35
35
  userAlias: (e.authenticationMethods.x?.username ? `@${e.authenticationMethods.x.username}` : e.authenticationMethods.x?.email) ?? "",
36
36
  isLinked: !!e.authenticationMethods.x
37
37
  };
38
+ case "oauth:telegram":
39
+ return {
40
+ userAlias: e.authenticationMethods.telegram?.username ? `@${e.authenticationMethods.telegram.username}` : "",
41
+ isLinked: !!e.authenticationMethods.telegram
42
+ };
38
43
  default:
39
44
  return null;
40
45
  }
41
46
  };
42
- function g(e, t) {
47
+ function E(e, t) {
43
48
  switch (t.type) {
44
49
  case "LINK_AUTH_METHOD":
45
50
  return {
@@ -71,33 +76,33 @@ function g(e, t) {
71
76
  }
72
77
  }
73
78
  const y = ({ children: e }) => {
74
- const { currentUser: t } = c(), { authMethods: a } = L(), s = r(() => {
75
- const n = [];
76
- return a.forEach((i) => {
79
+ const { currentUser: t } = c(), { authMethods: n } = L(), a = r(() => {
80
+ const i = [];
81
+ return n.forEach((s) => {
77
82
  if (!t) {
78
- n.push({
83
+ i.push({
79
84
  userAlias: "",
80
85
  isLinked: !1,
81
- method: i
86
+ method: s
82
87
  });
83
88
  return;
84
89
  }
85
- const h = E(t, i);
86
- n.push({
87
- userAlias: h?.userAlias ?? "",
88
- isLinked: h?.isLinked ?? !1,
89
- method: i
90
+ const u = T(t, s);
91
+ i.push({
92
+ userAlias: u?.userAlias ?? "",
93
+ isLinked: u?.isLinked ?? !1,
94
+ method: s
90
95
  });
91
- }), n;
92
- }, [t, a]), [u, o] = A(g, {
93
- ...T,
94
- authMethods: s
95
- }), l = r(() => ({ state: u, dispatch: o }), [u, o]);
96
+ }), i;
97
+ }, [t, n]), [h, o] = A(E, {
98
+ ...g,
99
+ authMethods: a
100
+ }), l = r(() => ({ state: h, dispatch: o }), [h, o]);
96
101
  return f(() => {
97
- o({ type: "SET_AUTH_METHODS", payload: { methods: s } });
98
- }, [o, s]), /* @__PURE__ */ m(d.Provider, { value: l, children: e });
102
+ o({ type: "SET_AUTH_METHODS", payload: { methods: a } });
103
+ }, [o, a]), /* @__PURE__ */ m(d.Provider, { value: l, children: e });
99
104
  }, C = () => {
100
- const e = M(d);
105
+ const e = p(d);
101
106
  if (!e)
102
107
  throw new Error("useLinkAuthContext must be used within a LinkAuthProvider");
103
108
  return e;
@@ -1,33 +1,33 @@
1
- import { jsx as r, jsxs as h, Fragment as C } from "react/jsx-runtime";
2
- import { useLinkOAuth as I } from "@coinbase/cdp-hooks";
3
- import { u as N } from "../../chunks/useSendComponentCallOnce.DGjALrnZ.js";
4
- import { useRef as d, useState as P, useCallback as a } from "react";
1
+ import { jsx as r, jsxs as h, Fragment as I } from "react/jsx-runtime";
2
+ import { useLinkOAuth as N } from "@coinbase/cdp-hooks";
3
+ import { u as P } from "../../chunks/useSendComponentCallOnce.DGjALrnZ.js";
4
+ import { useRef as d, useState as U, useCallback as a } from "react";
5
5
  import "../../chunks/CDPReactProvider.BkmtXUv1.js";
6
- import { useOauthStatusModal as U } from "../OAuthStatusModal/index.js";
7
- import { Banner as D } from "../ui/Banner/index.js";
8
- import { useTimeout as H } from "../../hooks/useTimeout.js";
9
- import { getMessageFromUnknownError as M } from "../../utils/getMessageFromUnknownError.js";
6
+ import { useOauthStatusModal as D } from "../OAuthStatusModal/index.js";
7
+ import { Banner as H } from "../ui/Banner/index.js";
8
+ import { useTimeout as M } from "../../hooks/useTimeout.js";
9
+ import { getMessageFromUnknownError as v } from "../../utils/getMessageFromUnknownError.js";
10
10
  import "libphonenumber-js";
11
- import { toOAuthProviderType as v } from "../../utils/toOAuthProviderType.js";
12
- import { L as V, a as j } from "../../chunks/LinkAuthFlow.B4FAtf4V.js";
13
- import { u as kt } from "../../chunks/LinkAuthFlow.B4FAtf4V.js";
14
- import { LinkAuthFlowBackButton as K } from "./LinkAuthFlowBackButton.js";
15
- import { LinkAuthItem as pt } from "./LinkAuthItem.js";
16
- import { LinkAuthItems as At } from "./LinkAuthItems.js";
17
- import { useLinkAuthContext as O, LinkAuthProvider as W } from "./LinkAuthProvider.js";
18
- import { LinkAuthTitle as $ } from "./LinkAuthTitle.js";
19
- import { methodToView as y } from "./utils.js";
20
- import '../../assets/LinkAuth.css';const b = "LinkAuth-module__header___0UuxP", G = "LinkAuth-module__error___XUo4W", k = {
11
+ import { toOAuthProviderType as V } from "../../utils/toOAuthProviderType.js";
12
+ import { L as j, a as K } from "../../chunks/LinkAuthFlow.B4FAtf4V.js";
13
+ import { u as ft } from "../../chunks/LinkAuthFlow.B4FAtf4V.js";
14
+ import { LinkAuthFlowBackButton as W } from "./LinkAuthFlowBackButton.js";
15
+ import { LinkAuthItem as Lt } from "./LinkAuthItem.js";
16
+ import { LinkAuthItems as _t } from "./LinkAuthItems.js";
17
+ import { useLinkAuthContext as x, LinkAuthProvider as $ } from "./LinkAuthProvider.js";
18
+ import { LinkAuthTitle as b } from "./LinkAuthTitle.js";
19
+ import { methodToView as O } from "./utils.js";
20
+ import '../../assets/LinkAuth.css';const G = "LinkAuth-module__header___0UuxP", J = "LinkAuth-module__error___XUo4W", k = {
21
21
  "link-auth": "LinkAuth-module__link-auth___kPJao",
22
- header: b,
23
- error: G
24
- }, J = ({ role: o = "alert", ...c }) => {
25
- const { state: i } = O(), { error: s } = i;
26
- return s ? /* @__PURE__ */ r(D, { variant: "error", role: o, ...c, children: s }) : null;
27
- }, X = ({ children: o, className: c = "", onLinkSuccess: i, ...s }) => {
28
- const { linkOAuth: f } = I(), { persistOAuthState: p } = U(), { state: u, dispatch: n } = O(), { methodToLink: x } = u, L = d(null), l = d(null), { schedule: A } = H(), E = y(x), _ = d(E), [B, m] = P("left"), e = a(
22
+ header: G,
23
+ error: J
24
+ }, X = ({ role: o = "alert", ...c }) => {
25
+ const { state: i } = x(), { error: s } = i;
26
+ return s ? /* @__PURE__ */ r(H, { variant: "error", role: o, ...c, children: s }) : null;
27
+ }, q = ({ children: o, className: c = "", onLinkSuccess: i, ...s }) => {
28
+ const { linkOAuth: f } = N(), { persistOAuthState: p, cleanupOAuthState: L } = D(), { state: u, dispatch: n } = x(), { methodToLink: E } = u, A = d(null), l = d(null), { schedule: _ } = M(), S = O(E), T = d(S), [B, m] = U("left"), e = a(
29
29
  (t) => {
30
- _.current !== t && (_.current = t, L.current?.transition.toggle(t), t === "list" && n({ type: "RESET_STATE" }), (t === "email" || t === "sms") && n({ type: "LINK_AUTH_METHOD", payload: { method: t } }));
30
+ T.current !== t && (T.current = t, A.current?.transition.toggle(t), t === "list" && n({ type: "RESET_STATE" }), (t === "email" || t === "sms") && n({ type: "LINK_AUTH_METHOD", payload: { method: t } }));
31
31
  },
32
32
  [n]
33
33
  ), F = a(() => {
@@ -37,56 +37,56 @@ import '../../assets/LinkAuth.css';const b = "LinkAuth-module__header___0UuxP",
37
37
  }
38
38
  e("list");
39
39
  }, [e]), R = a(() => {
40
- m("left"), i?.(u.methodToLink), A(() => e("list"), 800);
41
- }, [e, u.methodToLink, i, A]), S = a(
40
+ m("left"), i?.(u.methodToLink), _(() => e("list"), 800);
41
+ }, [e, u.methodToLink, i, _]), w = a(
42
42
  async (t) => {
43
43
  if (m("left"), t?.startsWith("oauth:")) {
44
- const g = v(t);
45
- if (g)
44
+ const y = V(t);
45
+ if (y)
46
46
  try {
47
- await f(g), p(!0);
48
- } catch (w) {
49
- n({
47
+ p(!0), await f(y);
48
+ } catch (C) {
49
+ L(), n({
50
50
  type: "LINK_AUTH_METHOD_ERROR",
51
- payload: { error: M(w) }
51
+ payload: { error: v(C) }
52
52
  });
53
53
  }
54
54
  } else
55
- e(y(t));
55
+ e(O(t));
56
56
  },
57
- [f, e, p, n]
58
- ), T = typeof o == "function" ? o(u) : o;
57
+ [f, e, p, L, n]
58
+ ), g = typeof o == "function" ? o(u) : o;
59
59
  return /* @__PURE__ */ r("div", { className: `${k["link-auth"]} ${c}`, ...s, children: /* @__PURE__ */ h(
60
- V,
60
+ j,
61
61
  {
62
62
  direction: B,
63
63
  onBack: F,
64
- onLink: S,
64
+ onLink: w,
65
65
  onLinkSuccess: R,
66
66
  signInRef: l,
67
- transitionRef: L,
67
+ transitionRef: A,
68
68
  children: [
69
- T,
70
- !T && /* @__PURE__ */ h(C, { children: [
69
+ g,
70
+ !g && /* @__PURE__ */ h(I, { children: [
71
71
  /* @__PURE__ */ h("div", { className: k.header, children: [
72
- /* @__PURE__ */ r($, {}),
73
- /* @__PURE__ */ r(K, {})
72
+ /* @__PURE__ */ r(b, {}),
73
+ /* @__PURE__ */ r(W, {})
74
74
  ] }),
75
- /* @__PURE__ */ r("div", { className: k.error, children: /* @__PURE__ */ r(J, {}) }),
76
- /* @__PURE__ */ r(j, {})
75
+ /* @__PURE__ */ r("div", { className: k.error, children: /* @__PURE__ */ r(X, {}) }),
76
+ /* @__PURE__ */ r(K, {})
77
77
  ] })
78
78
  ]
79
79
  }
80
80
  ) });
81
- }, mt = (o) => (N("manage_auth"), /* @__PURE__ */ r(W, { children: /* @__PURE__ */ r(X, { ...o }) }));
81
+ }, ht = (o) => (P("manage_auth"), /* @__PURE__ */ r($, { children: /* @__PURE__ */ r(q, { ...o }) }));
82
82
  export {
83
- mt as LinkAuth,
84
- J as LinkAuthError,
85
- j as LinkAuthFlow,
86
- K as LinkAuthFlowBackButton,
87
- pt as LinkAuthItem,
88
- At as LinkAuthItems,
89
- $ as LinkAuthTitle,
90
- O as useLinkAuthContext,
91
- kt as useLinkAuthFlow
83
+ ht as LinkAuth,
84
+ X as LinkAuthError,
85
+ K as LinkAuthFlow,
86
+ W as LinkAuthFlowBackButton,
87
+ Lt as LinkAuthItem,
88
+ _t as LinkAuthItems,
89
+ b as LinkAuthTitle,
90
+ x as useLinkAuthContext,
91
+ ft as useLinkAuthFlow
92
92
  };
@@ -6,6 +6,7 @@ type OAuthStatusModalContentProps = {
6
6
  };
7
7
  export declare const useOauthStatusModal: () => {
8
8
  persistOAuthState: (isAccountLink?: boolean) => void;
9
+ cleanupOAuthState: () => void;
9
10
  };
10
11
  export declare const OAuthStatusModal: () => import("react/jsx-runtime").JSX.Element;
11
12
  export declare const OAuthStatusModalContent: ({ isAccountLink, handleClose, }: OAuthStatusModalContentProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,98 +1,101 @@
1
- import { jsx as s, jsxs as r, Fragment as S } from "react/jsx-runtime";
1
+ import { jsx as s, jsxs as r, Fragment as f } from "react/jsx-runtime";
2
2
  import "@coinbase/cdp-core";
3
- import { useOAuthState as I } from "@coinbase/cdp-hooks";
3
+ import { useOAuthState as N } from "@coinbase/cdp-hooks";
4
4
  import { u as b } from "../../chunks/useSendComponentCallOnce.DGjALrnZ.js";
5
- import { useCallback as N, useState as O, useEffect as h, useRef as A } from "react";
6
- import { a as $ } from "../../chunks/CDPReactProvider.BkmtXUv1.js";
5
+ import { useCallback as g, useState as A, useEffect as S, useRef as I } from "react";
6
+ import { a as v } from "../../chunks/CDPReactProvider.BkmtXUv1.js";
7
7
  import { CoinbaseFooter as k } from "../ui/CoinbaseFooter/index.js";
8
8
  import { LoadingSpinner as w } from "../ui/LoadingSpinner/index.js";
9
- import { Modal as E, ModalContent as L, ModalTitle as y, ModalDescription as R } from "../ui/Modal/index.js";
9
+ import { Modal as L, ModalContent as E, ModalTitle as y, ModalDescription as R } from "../ui/Modal/index.js";
10
10
  import { SwitchFadeTransition as P } from "../ui/SwitchFadeTransition/index.js";
11
11
  import { VisuallyHidden as M } from "../ui/VisuallyHidden/index.js";
12
12
  import { useTimer as U } from "../../hooks/useTimer.js";
13
13
  import { IconAppleLogo as K } from "../../icons/IconAppleLogo.js";
14
14
  import { IconCheck as x } from "../../icons/IconCheck.js";
15
15
  import { IconGoogleColorLogo as G } from "../../icons/IconGoogleColorLogo.js";
16
- import { IconXLogo as H } from "../../icons/IconXLogo.js";
17
- import { IconXMark as q } from "../../icons/IconXMark.js";
16
+ import { IconTelegramLogo as H } from "../../icons/IconTelegramLogo.js";
17
+ import { IconXLogo as q } from "../../icons/IconXLogo.js";
18
+ import { IconXMark as Y } from "../../icons/IconXMark.js";
18
19
  import { capitalize as _ } from "../../utils/capitalize.js";
19
- import '../../assets/OAuthStatusModal.css';const Y = "OAuthStatusModal-module__status___vU6x7", j = "OAuthStatusModal-module__graphic___2fKoa", D = "OAuthStatusModal-module__pad___oooMz", F = "OAuthStatusModal-module__spinner___Q3dYq", z = "OAuthStatusModal-module__icon___Lj5Gf", V = "OAuthStatusModal-module__subhead___Pg9GI", W = "OAuthStatusModal-module__description___0qOZY", X = "OAuthStatusModal-module__ring___mKwSb", J = "OAuthStatusModal-module__invisible___IeRd0", t = {
20
+ import '../../assets/OAuthStatusModal.css';const j = "OAuthStatusModal-module__status___vU6x7", D = "OAuthStatusModal-module__graphic___2fKoa", F = "OAuthStatusModal-module__pad___oooMz", z = "OAuthStatusModal-module__spinner___Q3dYq", V = "OAuthStatusModal-module__icon___Lj5Gf", W = "OAuthStatusModal-module__subhead___Pg9GI", X = "OAuthStatusModal-module__description___0qOZY", J = "OAuthStatusModal-module__ring___mKwSb", Q = "OAuthStatusModal-module__invisible___IeRd0", t = {
20
21
  "oauth-status-modal": "OAuthStatusModal-module__oauth-status-modal___I69Ii",
21
22
  "transition-wrapper": "OAuthStatusModal-module__transition-wrapper___TmPRh",
22
- status: Y,
23
- graphic: j,
24
- pad: D,
25
- spinner: F,
26
- icon: z,
23
+ status: j,
24
+ graphic: D,
25
+ pad: F,
26
+ spinner: z,
27
+ icon: V,
27
28
  "icon-success": "OAuthStatusModal-module__icon-success___gqMWr",
28
29
  "icon-error": "OAuthStatusModal-module__icon-error___psI7m",
29
- subhead: V,
30
- description: W,
31
- ring: X,
30
+ subhead: W,
31
+ description: X,
32
+ ring: J,
32
33
  "ring-success": "OAuthStatusModal-module__ring-success___unyM9",
33
34
  "ring-error": "OAuthStatusModal-module__ring-error___OsgqU",
34
- invisible: J
35
- }, p = "cdp-react-sign-in-with-oauth-provider-name", g = "cdp-react-sign-in-with-oauth-is-account-link", Q = ["pending", "success", "error"], It = () => {
36
- const n = $() || "";
37
- return { persistOAuthState: N(
38
- (e) => {
35
+ invisible: Q
36
+ }, p = "cdp-react-sign-in-with-oauth-provider-name", h = "cdp-react-sign-in-with-oauth-is-account-link", Z = ["pending", "success", "error"], vt = () => {
37
+ const n = v() || "", o = g(
38
+ (a) => {
39
39
  sessionStorage.setItem(p, n), sessionStorage.setItem(
40
- g,
41
- e ? "true" : "false"
40
+ h,
41
+ a ? "true" : "false"
42
42
  );
43
43
  },
44
44
  [n]
45
- ) };
46
- }, Nt = () => {
45
+ ), e = g(() => {
46
+ sessionStorage.removeItem(p), sessionStorage.removeItem(h);
47
+ }, []);
48
+ return { persistOAuthState: o, cleanupOAuthState: e };
49
+ }, $t = () => {
47
50
  b("oauth_status_modal");
48
- const [n, o] = O(!1), { oauthState: e } = I(), [d, a] = O(!1), c = $(), u = e?.providerType || "google";
49
- return h(() => {
51
+ const [n, o] = A(!1), { oauthState: e } = N(), [a, i] = A(!1), u = v(), l = e?.providerType || "google";
52
+ return S(() => {
50
53
  if (e?.status === "pending" || e?.status === "error" || e?.status === "success") {
51
- const l = sessionStorage.getItem(p);
52
- if (l === null || l !== c)
54
+ const d = sessionStorage.getItem(p);
55
+ if (d === null || d !== u)
53
56
  return;
54
57
  sessionStorage.removeItem(p), o(!0);
55
- const m = sessionStorage.getItem(g) === "true";
56
- sessionStorage.removeItem(g), a(m);
58
+ const m = sessionStorage.getItem(h) === "true";
59
+ sessionStorage.removeItem(h), i(m);
57
60
  }
58
- }, [e?.status, c]), /* @__PURE__ */ s(E, { open: n, onOpenChange: o, children: /* @__PURE__ */ r(L, { children: [
61
+ }, [e?.status, u]), /* @__PURE__ */ s(L, { open: n, onOpenChange: o, children: /* @__PURE__ */ r(E, { children: [
59
62
  /* @__PURE__ */ s(M, { children: /* @__PURE__ */ s(y, { children: "OAuth Status" }) }),
60
63
  /* @__PURE__ */ s(M, { children: /* @__PURE__ */ r(R, { children: [
61
- d ? `Linking your ${u} account` : `Signing in with ${u}`,
64
+ a ? `Linking your ${l} account` : `Signing in with ${l}`,
62
65
  " ",
63
66
  e?.status ? `${e?.status === "success" ? "successful" : e?.status === "error" ? "failed" : "pending"}` : ""
64
67
  ] }) }),
65
- /* @__PURE__ */ s(Z, { isAccountLink: d, handleClose: () => o(!1) })
68
+ /* @__PURE__ */ s(B, { isAccountLink: a, handleClose: () => o(!1) })
66
69
  ] }) });
67
- }, Z = ({
70
+ }, B = ({
68
71
  isAccountLink: n,
69
72
  handleClose: o
70
73
  }) => {
71
- const { oauthState: e } = I(), d = e?.providerType || "google", { timeRemaining: a, start: c, reset: u } = U(), l = A(null), m = A(null), v = 250, f = N((i) => {
72
- m.current === i || i === void 0 || (m.current = i, l.current?.transition.toggle(i));
74
+ const { oauthState: e } = N(), a = e?.providerType || "google", { timeRemaining: i, start: u, reset: l } = U(), d = I(null), m = I(null), $ = 250, O = g((c) => {
75
+ m.current === c || c === void 0 || (m.current = c, d.current?.transition.toggle(c));
73
76
  }, []);
74
- return h(() => {
75
- f(e?.status), e?.status === "success" && c(3);
76
- }, [e?.status, f, c]), h(() => {
77
- a !== null && a <= 0 && (u(), o());
78
- }, [a, u, o]), /* @__PURE__ */ r("div", { className: t["oauth-status-modal"], children: [
77
+ return S(() => {
78
+ O(e?.status), e?.status === "success" && u(3);
79
+ }, [e?.status, O, u]), S(() => {
80
+ i !== null && i <= 0 && (l(), o());
81
+ }, [i, l, o]), /* @__PURE__ */ r("div", { className: t["oauth-status-modal"], children: [
79
82
  /* @__PURE__ */ s(
80
83
  P,
81
84
  {
82
85
  animateHeight: !1,
83
- timeout: v,
84
- items: Q,
86
+ timeout: $,
87
+ items: Z,
85
88
  initialEntered: !1,
86
- transitionRef: l,
89
+ transitionRef: d,
87
90
  className: t["transition-wrapper"],
88
- children: ({ itemKey: i, ...C }) => {
89
- const T = et[i];
90
- return /* @__PURE__ */ s("div", { ...C, className: t.status, children: /* @__PURE__ */ s(
91
- T,
91
+ children: ({ itemKey: c, ...T }) => {
92
+ const C = ot[c];
93
+ return /* @__PURE__ */ s("div", { ...T, className: t.status, children: /* @__PURE__ */ s(
94
+ C,
92
95
  {
93
96
  isAccountLink: n,
94
- timeRemaining: a,
95
- provider: d
97
+ timeRemaining: i,
98
+ provider: a
96
99
  }
97
100
  ) });
98
101
  }
@@ -100,9 +103,9 @@ import '../../assets/OAuthStatusModal.css';const Y = "OAuthStatusModal-module__s
100
103
  ),
101
104
  /* @__PURE__ */ s(k, {})
102
105
  ] });
103
- }, B = ({ isAccountLink: n, provider: o }) => {
104
- const e = ot[o];
105
- return /* @__PURE__ */ r(S, { children: [
106
+ }, tt = ({ isAccountLink: n, provider: o }) => {
107
+ const e = nt[o];
108
+ return /* @__PURE__ */ r(f, { children: [
106
109
  /* @__PURE__ */ r("div", { className: t.graphic, children: [
107
110
  /* @__PURE__ */ s(
108
111
  w,
@@ -118,11 +121,11 @@ import '../../assets/OAuthStatusModal.css';const Y = "OAuthStatusModal-module__s
118
121
  /* @__PURE__ */ s("p", { className: t.subhead, children: n ? `Linking your ${_(o)} account` : `Signing in with ${_(o)}` }),
119
122
  /* @__PURE__ */ s("p", { className: t.description, children: "Just a moment..." })
120
123
  ] });
121
- }, tt = ({
124
+ }, st = ({
122
125
  isAccountLink: n,
123
126
  timeRemaining: o,
124
127
  provider: e
125
- }) => /* @__PURE__ */ r(S, { children: [
128
+ }) => /* @__PURE__ */ r(f, { children: [
126
129
  /* @__PURE__ */ r("div", { className: t.graphic, children: [
127
130
  /* @__PURE__ */ s("span", { className: `${t.ring} ${t["ring-success"]}` }),
128
131
  /* @__PURE__ */ s("span", { className: `${t.icon} ${t["icon-success"]}`, children: /* @__PURE__ */ s(x, {}) })
@@ -132,27 +135,28 @@ import '../../assets/OAuthStatusModal.css';const Y = "OAuthStatusModal-module__s
132
135
  "This window will automatically close in ",
133
136
  o ?? "soon"
134
137
  ] })
135
- ] }), st = ({ isAccountLink: n }) => /* @__PURE__ */ r(S, { children: [
138
+ ] }), et = ({ isAccountLink: n }) => /* @__PURE__ */ r(f, { children: [
136
139
  /* @__PURE__ */ r("div", { className: `${t.graphic} ${t.pad}`, children: [
137
140
  /* @__PURE__ */ s("span", { className: `${t.ring} ${t["ring-error"]}` }),
138
- /* @__PURE__ */ s("span", { className: `${t.icon} ${t["icon-error"]}`, children: /* @__PURE__ */ s(q, {}) })
141
+ /* @__PURE__ */ s("span", { className: `${t.icon} ${t["icon-error"]}`, children: /* @__PURE__ */ s(Y, {}) })
139
142
  ] }),
140
143
  /* @__PURE__ */ s("p", { className: t.subhead, children: n ? "Account linking failed" : "Sign in failed" }),
141
144
  /* @__PURE__ */ s("p", { className: t.description, children: "Something went wrong. Please try again." })
142
- ] }), et = {
143
- pending: B,
144
- success: tt,
145
- error: st
146
- }, ot = {
145
+ ] }), ot = {
146
+ pending: tt,
147
+ success: st,
148
+ error: et
149
+ }, nt = {
147
150
  google: G,
148
151
  apple: K,
149
- x: H
152
+ x: q,
153
+ telegram: H
150
154
  };
151
155
  export {
152
- g as OAUTH_IS_ACCOUNT_LINK_SESSION_STORAGE_KEY,
156
+ h as OAUTH_IS_ACCOUNT_LINK_SESSION_STORAGE_KEY,
153
157
  p as OAUTH_PROVIDER_SESSION_STORAGE_KEY,
154
- Nt as OAuthStatusModal,
155
- Z as OAuthStatusModalContent,
156
- Nt as default,
157
- It as useOauthStatusModal
158
+ $t as OAuthStatusModal,
159
+ B as OAuthStatusModalContent,
160
+ $t as default,
161
+ vt as useOauthStatusModal
158
162
  };
@@ -1,23 +1,24 @@
1
1
  import { jsx as n, jsxs as r } from "react/jsx-runtime";
2
2
  import { useCallback as v, useMemo as y } from "react";
3
3
  import "../../chunks/CDPReactProvider.BkmtXUv1.js";
4
- import { useSignInWithOAuth as S } from "./hooks/useSignInWithOAuth.js";
5
- import { useSignInContext as _ } from "./SignInProvider.js";
6
- import { Button as C } from "../ui/Button/index.js";
4
+ import { useSignInWithOAuth as C } from "./hooks/useSignInWithOAuth.js";
5
+ import { useSignInContext as g } from "./SignInProvider.js";
6
+ import { Button as S } from "../ui/Button/index.js";
7
7
  import { ServerError as M } from "../ui/ServerError/index.js";
8
8
  import { IconAppleLogo as k } from "../../icons/IconAppleLogo.js";
9
9
  import { IconEnvelope as B } from "../../icons/IconEnvelope.js";
10
10
  import { IconGoogleLogo as E } from "../../icons/IconGoogleLogo.js";
11
11
  import { IconPhone as P } from "../../icons/IconPhone.js";
12
- import { IconXLogo as O } from "../../icons/IconXLogo.js";
12
+ import { IconTelegramLogo as O } from "../../icons/IconTelegramLogo.js";
13
+ import { IconXLogo as w } from "../../icons/IconXLogo.js";
13
14
  import { toOAuthProviderType as b } from "../../utils/toOAuthProviderType.js";
14
- import '../../assets/SignInAuthMethodButtons.css';const w = "SignInAuthMethodButtons-module__divider___zphEh", o = {
15
+ import '../../assets/SignInAuthMethodButtons.css';const T = "SignInAuthMethodButtons-module__divider___zphEh", o = {
15
16
  "auth-method-buttons": "SignInAuthMethodButtons-module__auth-method-buttons___jYEH7",
16
17
  "auth-btn": "SignInAuthMethodButtons-module__auth-btn___o1a09",
17
18
  "auth-btn-icon": "SignInAuthMethodButtons-module__auth-btn-icon___VjvFY",
18
19
  "auth-btn-label": "SignInAuthMethodButtons-module__auth-btn-label___mEWd3",
19
- divider: w
20
- }, g = {
20
+ divider: T
21
+ }, _ = {
21
22
  email: {
22
23
  label: "Continue with email",
23
24
  icon: /* @__PURE__ */ n(B, {})
@@ -36,41 +37,45 @@ import '../../assets/SignInAuthMethodButtons.css';const w = "SignInAuthMethodBut
36
37
  },
37
38
  "oauth:x": {
38
39
  label: "Continue with X",
40
+ icon: /* @__PURE__ */ n(w, {})
41
+ },
42
+ "oauth:telegram": {
43
+ label: "Continue with Telegram",
39
44
  icon: /* @__PURE__ */ n(O, {})
40
45
  }
41
- }, U = ({ activeMethod: u }) => {
46
+ }, q = ({ activeMethod: a }) => {
42
47
  const {
43
- state: { authMethods: a }
44
- } = _(), {
45
- signInWithOAuth: l,
48
+ state: { authMethods: l }
49
+ } = g(), {
50
+ signInWithOAuth: u,
46
51
  isPending: s,
47
52
  error: h,
48
53
  oauthProvider: c
49
- } = S(), m = v(
54
+ } = C(), m = v(
50
55
  async (t) => {
51
- const e = b(t);
52
- e && l(e);
56
+ const i = b(t);
57
+ i && u(i);
53
58
  },
54
- [l]
55
- ), { dispatch: d } = _(), i = y(() => (a || ["email"]).map((t) => {
56
- if (!g[t])
59
+ [u]
60
+ ), { dispatch: p } = g(), e = y(() => (l || ["email"]).map((t) => {
61
+ if (!_[t])
57
62
  return null;
58
- const { label: e, icon: f } = g[t], p = t.startsWith("oauth:"), A = p ? () => m(t) : () => d({ type: "SET_AUTH_METHOD", payload: { authMethod: t } }), I = p && c.current === b(t) && s;
63
+ const { label: i, icon: f } = _[t], d = t.startsWith("oauth:"), A = d ? () => m(t) : () => p({ type: "SET_AUTH_METHOD", payload: { authMethod: t } }), I = d && c.current === b(t) && s;
59
64
  return {
60
65
  key: t,
61
- label: e,
66
+ label: i,
62
67
  icon: f,
63
68
  onClick: A,
64
69
  isPending: I
65
70
  };
66
- }).filter((t) => t !== null), [a, d, m, s, c]);
67
- return !i.length || i.length === 1 && i[0].key === u ? null : /* @__PURE__ */ r("div", { className: o["auth-method-buttons"], children: [
71
+ }).filter((t) => t !== null), [l, p, m, s, c]);
72
+ return !e.length || e.length === 1 && e[0].key === a ? null : /* @__PURE__ */ r("div", { className: o["auth-method-buttons"], children: [
68
73
  /* @__PURE__ */ r("div", { className: o.divider, children: [
69
74
  /* @__PURE__ */ n("hr", {}),
70
75
  /* @__PURE__ */ n("span", { children: "or" })
71
76
  ] }),
72
- i.map((t) => t.key === u ? null : /* @__PURE__ */ r(
73
- C,
77
+ e.map((t) => t.key === a ? null : /* @__PURE__ */ r(
78
+ S,
74
79
  {
75
80
  "aria-label": t.ariaLabel,
76
81
  className: o["auth-btn"],
@@ -89,5 +94,5 @@ import '../../assets/SignInAuthMethodButtons.css';const w = "SignInAuthMethodBut
89
94
  ] });
90
95
  };
91
96
  export {
92
- U as SignInAuthMethodButtons
97
+ q as SignInAuthMethodButtons
93
98
  };
@@ -1,27 +1,30 @@
1
- import { useSignInWithOAuth as g } from "@coinbase/cdp-hooks";
2
- import { useState as c, useRef as f, useCallback as m } from "react";
3
- import { useOauthStatusModal as A } from "../../OAuthStatusModal/index.js";
4
- import { isApiError as I } from "../../../utils/isApiError.js";
1
+ import { useSignInWithOAuth as f } from "@coinbase/cdp-hooks";
2
+ import { useState as l, useRef as m, useCallback as A } from "react";
3
+ import { useOauthStatusModal as I } from "../../OAuthStatusModal/index.js";
4
+ import { isApiError as O } from "../../../utils/isApiError.js";
5
5
  const E = () => {
6
- const { signInWithOAuth: n } = g(), [r, s] = c(!1), [l, e] = c(null), o = f(null), i = "An error occurred while signing in. Please try again.", { persistOAuthState: u } = A();
6
+ const { signInWithOAuth: n } = f(), [r, e] = l(!1), [h, s] = l(null), o = m(null), i = "An error occurred while signing in. Please try again.", { persistOAuthState: u, cleanupOAuthState: a } = I();
7
7
  return {
8
- signInWithOAuth: m(
9
- async (a) => {
8
+ signInWithOAuth: A(
9
+ async (c) => {
10
10
  if (!r) {
11
- o.current = a, s(!0), e(null);
11
+ o.current = c, e(!0), s(null);
12
12
  try {
13
- await n(a), u(!1);
13
+ u(!1), await n(c);
14
14
  } catch (t) {
15
- const h = I(t) ? t : t instanceof Error && t.message || i;
16
- e(h), s(!1), console.error(t);
15
+ a();
16
+ const g = O(t) ? t : t instanceof Error && t.message || i;
17
+ s(g), console.error(t);
18
+ } finally {
19
+ e(!1);
17
20
  }
18
21
  }
19
22
  },
20
- [r, n, u]
23
+ [r, n, u, a]
21
24
  ),
22
25
  oauthProvider: o,
23
26
  isPending: r,
24
- error: l
27
+ error: h
25
28
  };
26
29
  };
27
30
  export {
@@ -1,6 +1,6 @@
1
1
  import { APIError } from '@coinbase/cdp-hooks';
2
2
  import { FormHTMLAttributes, ReactNode } from 'react';
3
- import { PhoneNumberInputProps } from '../PhoneNumberInput/PhoneNumberInput';
3
+ import { PhoneNumberInputProps } from '../PhoneNumberInput';
4
4
  export interface PhoneNumberFormProps extends Omit<FormHTMLAttributes<HTMLFormElement>, "children"> {
5
5
  countryCode: PhoneNumberInputProps["countryCode"];
6
6
  countryOptions?: PhoneNumberInputProps["countryOptions"];
@@ -1,5 +1,5 @@
1
1
  import { CountryCode } from 'libphonenumber-js';
2
- import { InputProps } from '../Input/Input';
2
+ import { InputProps } from '../Input';
3
3
  import { CountryOption } from '../../../data/countries';
4
4
  import { PhoneNumber } from '../../../utils/parseValuesFromPhoneNumber';
5
5
  export interface PhoneNumberInputProps extends Omit<InputProps, "value" | "onChange"> {
@@ -1,7 +1,6 @@
1
1
  import { HTMLAttributes, ReactNode } from 'react';
2
- interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {
2
+ export interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {
3
3
  children?: ReactNode;
4
4
  variant?: "primary" | "secondary" | "warning";
5
5
  }
6
6
  export declare const Badge: ({ children, className, variant, ...props }: BadgeProps) => import("react/jsx-runtime").JSX.Element;
7
- export {};
@@ -1,7 +1,6 @@
1
1
  import { HTMLAttributes, ReactNode } from 'react';
2
- interface BannerProps extends HTMLAttributes<HTMLElement> {
2
+ export interface BannerProps extends HTMLAttributes<HTMLElement> {
3
3
  icon?: ReactNode;
4
4
  variant?: "success" | "warning" | "error";
5
5
  }
6
6
  export declare const Banner: ({ className, children, icon, variant, ...props }: BannerProps) => import("react/jsx-runtime").JSX.Element;
7
- export {};
@@ -0,0 +1,2 @@
1
+ import { SVGProps } from 'react';
2
+ export declare const IconTelegramLogo: (props: Omit<SVGProps<SVGSVGElement>, "viewBox">) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,13 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import "react";
3
+ import { SvgIcon as C } from "./SvgIcon.js";
4
+ const n = (r) => /* @__PURE__ */ o(C, { width: "48", height: "48", viewBox: "0 0 48 48", fill: "none", ...r, children: /* @__PURE__ */ o(
5
+ "path",
6
+ {
7
+ fill: "currentColor",
8
+ d: "M41.4193 7.30899C41.4193 7.30899 45.3046 5.79399 44.9808 9.47328C44.8729 10.9883 43.9016 16.2908 43.1461 22.0262L40.5559 39.0159C40.5559 39.0159 40.3401 41.5048 38.3974 41.9377C36.4547 42.3705 33.5408 40.4227 33.0011 39.9898C32.5694 39.6652 24.9068 34.7955 22.2086 32.4148C21.4531 31.7655 20.5897 30.4669 22.3165 28.9519L33.6487 18.1305C34.9438 16.8319 36.2389 13.8019 30.8426 17.4812L15.7331 27.7616C15.7331 27.7616 14.0063 28.8437 10.7686 27.8698L3.75342 25.7055C3.75342 25.7055 1.16321 24.0823 5.58815 22.459C16.3807 17.3729 29.6555 12.1786 41.4193 7.30899Z"
9
+ }
10
+ ) });
11
+ export {
12
+ n as IconTelegramLogo
13
+ };
package/dist/index.d.ts CHANGED
@@ -26,4 +26,5 @@ export * from './theme';
26
26
  export * from './icons';
27
27
  export * from './utils';
28
28
  export { useVerifyMfaModal, type UseVerifyMfaModalOptions, type UseVerifyMfaModalReturn, } from './hooks/useVerifyMfaModal';
29
+ export { usePhoneNumberState, type UsePhoneNumberStateOptions, type UsePhoneNumberStateResult, } from './hooks/usePhoneNumberState';
29
30
  export { type IframeTheme } from './types/secureIframe';
package/dist/index.js CHANGED
@@ -2,46 +2,46 @@ import "./chunks/useSendComponentCallOnce.DGjALrnZ.js";
2
2
  import "react";
3
3
  import "./version.js";
4
4
  import { AuthButton as a } from "./components/AuthButton/index.js";
5
- import { c as l, A as p, C as x, O as i, V as s, d as M, e as d, f as u, u as c, a as I, b as g } from "./chunks/CDPReactProvider.BkmtXUv1.js";
5
+ import { c as p, A as l, C as x, O as i, V as s, d as M, e as u, f as d, u as c, a as I, b as g } from "./chunks/CDPReactProvider.BkmtXUv1.js";
6
6
  import { CopyAddress as C } from "./components/CopyAddress/index.js";
7
- import { CopyEvmKeyButton as T } from "./components/CopyEvmKeyButton/index.js";
8
- import { CopySolanaKeyButton as S } from "./components/CopySolanaKeyButton/index.js";
7
+ import { CopyEvmKeyButton as S } from "./components/CopyEvmKeyButton/index.js";
8
+ import { CopySolanaKeyButton as h } from "./components/CopySolanaKeyButton/index.js";
9
9
  import { EnrollMfa as A, EnrollMfaError as k } from "./components/EnrollMfa/index.js";
10
10
  import { EnrollMfaModal as B, EnrollMfaModalContent as L, EnrollMfaModalTrigger as w } from "./components/EnrollMfaModal/index.js";
11
- import { ExportWallet as D, ExportWalletCopyAddress as b, ExportWalletCopyKeyButton as P, ExportWalletFooter as v, E as O, a as H, b as R, c as U, d as _, ExportWalletTitle as z, ExportWalletWarning as K } from "./components/ExportWallet/index.js";
11
+ import { ExportWallet as b, ExportWalletCopyAddress as D, ExportWalletCopyKeyButton as P, ExportWalletFooter as v, E as O, a as H, b as R, c as U, d as _, ExportWalletTitle as z, ExportWalletWarning as K } from "./components/ExportWallet/index.js";
12
12
  import { Fund as j, FundFooter as G } from "./components/Fund/index.js";
13
13
  import { FundModal as q, FundModalContent as J, FundModalTrigger as Q } from "./components/FundModal/index.js";
14
14
  import { LinkAuth as Z, LinkAuthError as $ } from "./components/LinkAuth/index.js";
15
15
  import { LinkAuthModal as ro, LinkAuthModalContent as eo, LinkAuthModalTrigger as to } from "./components/LinkAuthModal/index.js";
16
16
  import { SendEvmTransactionButton as fo } from "./components/SendEvmTransactionButton/index.js";
17
17
  import { SendSolanaTransactionButton as mo } from "./components/SendSolanaTransactionButton/index.js";
18
- import { SignIn as po } from "./components/SignIn/index.js";
18
+ import { SignIn as lo } from "./components/SignIn/index.js";
19
19
  import { useSignInReducer as io } from "./components/SignIn/useSignInReducer.js";
20
20
  import { SignInModal as Mo, SignInModalContent as uo, SignInModalTrigger as co } from "./components/SignInModal/index.js";
21
21
  import { SignOutButton as go } from "./components/SignOutButton/index.js";
22
22
  import { ThemeProvider as Co, useTheme as yo } from "./components/ThemeProvider/index.js";
23
- import { VerifyMfaInline as Fo, VerifyMfaInlineBackButton as So, VerifyMfaInlineFlow as ho, useVerifyMfaInlineContext as Ao } from "./components/VerifyMfaInline/index.js";
23
+ import { VerifyMfaInline as To, VerifyMfaInlineBackButton as ho, VerifyMfaInlineFlow as Fo, useVerifyMfaInlineContext as Ao } from "./components/VerifyMfaInline/index.js";
24
24
  import { Button as Vo } from "./components/ui/Button/index.js";
25
- import { Modal as Lo, ModalClose as wo, ModalContent as Wo, ModalDescription as Do, ModalTitle as bo, ModalTrigger as Po } from "./components/ui/Modal/index.js";
25
+ import { Modal as Lo, ModalClose as wo, ModalContent as Wo, ModalDescription as bo, ModalTitle as Do, ModalTrigger as Po } from "./components/ui/Modal/index.js";
26
26
  import { cssVariables as Oo } from "./theme/cssVariables.js";
27
27
  import { theme as Ro } from "./theme/theme.js";
28
28
  import { borderRadius as _o, borderRadiusComponents as zo, borderRadiusSemantic as Ko, colors as No, colorsBase as jo, colorsComponents as Go, colorsSemantic as Xo, font as qo, fontComponents as Jo, fontSemantic as Qo, tokens as Yo, zIndex as Zo, zIndexComponents as $o, zIndexSemantic as or } from "./theme/tokens.js";
29
29
  import { flattenTokensObject as er, themeToCssVariables as tr } from "./theme/utils.js";
30
30
  import { IconAppleLogo as fr } from "./icons/IconAppleLogo.js";
31
31
  import { IconArrowLeft as mr } from "./icons/IconArrowLeft.js";
32
- import { IconArrowsUpDown as pr } from "./icons/IconArrowsUpDown.js";
32
+ import { IconArrowsUpDown as lr } from "./icons/IconArrowsUpDown.js";
33
33
  import { IconCheck as ir } from "./icons/IconCheck.js";
34
34
  import { IconCheckCircle as Mr } from "./icons/IconCheckCircle.js";
35
- import { IconChevronDown as ur } from "./icons/IconChevronDown.js";
35
+ import { IconChevronDown as dr } from "./icons/IconChevronDown.js";
36
36
  import { IconCopy as Ir } from "./icons/IconCopy.js";
37
37
  import { IconEnvelope as Er } from "./icons/IconEnvelope.js";
38
38
  import { IconExclamationCircle as yr } from "./icons/IconExclamationCircle.js";
39
- import { IconExclamationTriangle as Fr } from "./icons/IconExclamationTriangle.js";
40
- import { IconGoogleLogo as hr } from "./icons/IconGoogleLogo.js";
39
+ import { IconExclamationTriangle as Tr } from "./icons/IconExclamationTriangle.js";
40
+ import { IconGoogleLogo as Fr } from "./icons/IconGoogleLogo.js";
41
41
  import { IconLock as kr } from "./icons/IconLock.js";
42
42
  import { IconMinus as Br } from "./icons/IconMinus.js";
43
43
  import { IconPhone as wr } from "./icons/IconPhone.js";
44
- import { IconPinCode as Dr } from "./icons/IconPinCode.js";
44
+ import { IconPinCode as br } from "./icons/IconPinCode.js";
45
45
  import { IconPlus as Pr } from "./icons/IconPlus.js";
46
46
  import { IconShield as Or } from "./icons/IconShield.js";
47
47
  import { IconSmartPhone as Rr } from "./icons/IconSmartPhone.js";
@@ -52,68 +52,69 @@ import { isApiError as Xr } from "./utils/isApiError.js";
52
52
  import { isEmailInvalid as Jr } from "./utils/isEmailInvalid.js";
53
53
  import { parseValuesFromPhoneNumber as Yr } from "./utils/parseValuesFromPhoneNumber.js";
54
54
  import { sendIframeMessage as $r } from "./utils/sendIframeMessage.js";
55
+ import { usePhoneNumberState as re } from "./hooks/usePhoneNumberState.js";
55
56
  import "@coinbase/cdp-core";
56
- import { EnrollMfaDescription as re } from "./components/EnrollMfa/EnrollMfaDescription.js";
57
- import { EnrollMfaFlow as te } from "./components/EnrollMfa/EnrollMfaFlow.js";
58
- import { EnrollMfaFlowBackButton as fe } from "./components/EnrollMfa/EnrollMfaFlowBackButton.js";
59
- import { EnrollMfaFooter as me } from "./components/EnrollMfa/EnrollMfaFooter.js";
60
- import { EnrollMfaImage as pe } from "./components/EnrollMfa/EnrollMfaImage.js";
61
- import { EnrollMfaItem as ie } from "./components/EnrollMfa/EnrollMfaItem.js";
62
- import { EnrollMfaItems as Me } from "./components/EnrollMfa/EnrollMfaItems.js";
63
- import { EnrollMfaTitle as ue } from "./components/EnrollMfa/EnrollMfaTitle.js";
64
- import { useEnrollMfaContext as Ie } from "./components/EnrollMfa/EnrollMfaProvider.js";
65
- import { useEnrollMfaFlow as Ee } from "./components/EnrollMfa/EnrollMfaFlowProvider.js";
66
- import { FundForm as ye } from "./components/Fund/FundForm.js";
57
+ import { EnrollMfaDescription as te } from "./components/EnrollMfa/EnrollMfaDescription.js";
58
+ import { EnrollMfaFlow as fe } from "./components/EnrollMfa/EnrollMfaFlow.js";
59
+ import { EnrollMfaFlowBackButton as me } from "./components/EnrollMfa/EnrollMfaFlowBackButton.js";
60
+ import { EnrollMfaFooter as le } from "./components/EnrollMfa/EnrollMfaFooter.js";
61
+ import { EnrollMfaImage as ie } from "./components/EnrollMfa/EnrollMfaImage.js";
62
+ import { EnrollMfaItem as Me } from "./components/EnrollMfa/EnrollMfaItem.js";
63
+ import { EnrollMfaItems as de } from "./components/EnrollMfa/EnrollMfaItems.js";
64
+ import { EnrollMfaTitle as Ie } from "./components/EnrollMfa/EnrollMfaTitle.js";
65
+ import { useEnrollMfaContext as Ee } from "./components/EnrollMfa/EnrollMfaProvider.js";
66
+ import { useEnrollMfaFlow as ye } from "./components/EnrollMfa/EnrollMfaFlowProvider.js";
67
+ import { FundForm as Te } from "./components/Fund/FundForm.js";
67
68
  import { FundTitle as Fe } from "./components/Fund/FundTitle.js";
68
- import { useFundContext as he } from "./components/Fund/FundProvider.js";
69
- import { a as ke, u as Ve } from "./chunks/LinkAuthFlow.B4FAtf4V.js";
70
- import { LinkAuthFlowBackButton as Le } from "./components/LinkAuth/LinkAuthFlowBackButton.js";
71
- import { LinkAuthItem as We } from "./components/LinkAuth/LinkAuthItem.js";
72
- import { LinkAuthItems as be } from "./components/LinkAuth/LinkAuthItems.js";
73
- import { LinkAuthTitle as ve } from "./components/LinkAuth/LinkAuthTitle.js";
74
- import { useLinkAuthContext as He } from "./components/LinkAuth/LinkAuthProvider.js";
75
- import { SignInAuthMethodButtons as Ue } from "./components/SignIn/SignInAuthMethodButtons.js";
76
- import { SignInBackButton as ze } from "./components/SignIn/SignInBackButton.js";
77
- import { SignInDescription as Ne } from "./components/SignIn/SignInDescription.js";
78
- import { SignInFooter as Ge } from "./components/SignIn/SignInFooter.js";
79
- import { SignInForm as qe } from "./components/SignIn/SignInForm.js";
80
- import { SignInImage as Qe } from "./components/SignIn/SignInImage.js";
81
- import { SignInTitle as Ze } from "./components/SignIn/SignInTitle.js";
82
- import { useSignInContext as ot } from "./components/SignIn/SignInProvider.js";
83
- import { VerifyMfaDescription as et } from "./components/VerifyMfa/VerifyMfaDescription.js";
84
- import { VerifyMfaFlow as nt } from "./components/VerifyMfa/VerifyMfaFlow.js";
85
- import { VerifyMfaFlowBackButton as at } from "./components/VerifyMfa/VerifyMfaFlowBackButton.js";
86
- import { VerifyMfaFooter as lt } from "./components/VerifyMfa/VerifyMfaFooter.js";
87
- import { VerifyMfaImage as xt } from "./components/VerifyMfa/VerifyMfaImage.js";
88
- import { VerifyMfaItem as st } from "./components/VerifyMfa/VerifyMfaItem.js";
89
- import { VerifyMfaItems as dt } from "./components/VerifyMfa/VerifyMfaItems.js";
90
- import { VerifyMfaTitle as ct } from "./components/VerifyMfa/VerifyMfaTitle.js";
91
- import { useVerifyMfaContext as gt } from "./components/VerifyMfa/VerifyMfaProvider.js";
92
- import { useVerifyMfaFlow as Ct } from "./components/VerifyMfa/VerifyMfaFlowProvider.js";
69
+ import { useFundContext as ke } from "./components/Fund/FundProvider.js";
70
+ import { a as Be, u as Le } from "./chunks/LinkAuthFlow.B4FAtf4V.js";
71
+ import { LinkAuthFlowBackButton as We } from "./components/LinkAuth/LinkAuthFlowBackButton.js";
72
+ import { LinkAuthItem as De } from "./components/LinkAuth/LinkAuthItem.js";
73
+ import { LinkAuthItems as ve } from "./components/LinkAuth/LinkAuthItems.js";
74
+ import { LinkAuthTitle as He } from "./components/LinkAuth/LinkAuthTitle.js";
75
+ import { useLinkAuthContext as Ue } from "./components/LinkAuth/LinkAuthProvider.js";
76
+ import { SignInAuthMethodButtons as ze } from "./components/SignIn/SignInAuthMethodButtons.js";
77
+ import { SignInBackButton as Ne } from "./components/SignIn/SignInBackButton.js";
78
+ import { SignInDescription as Ge } from "./components/SignIn/SignInDescription.js";
79
+ import { SignInFooter as qe } from "./components/SignIn/SignInFooter.js";
80
+ import { SignInForm as Qe } from "./components/SignIn/SignInForm.js";
81
+ import { SignInImage as Ze } from "./components/SignIn/SignInImage.js";
82
+ import { SignInTitle as ot } from "./components/SignIn/SignInTitle.js";
83
+ import { useSignInContext as et } from "./components/SignIn/SignInProvider.js";
84
+ import { VerifyMfaDescription as nt } from "./components/VerifyMfa/VerifyMfaDescription.js";
85
+ import { VerifyMfaFlow as at } from "./components/VerifyMfa/VerifyMfaFlow.js";
86
+ import { VerifyMfaFlowBackButton as pt } from "./components/VerifyMfa/VerifyMfaFlowBackButton.js";
87
+ import { VerifyMfaFooter as xt } from "./components/VerifyMfa/VerifyMfaFooter.js";
88
+ import { VerifyMfaImage as st } from "./components/VerifyMfa/VerifyMfaImage.js";
89
+ import { VerifyMfaItem as ut } from "./components/VerifyMfa/VerifyMfaItem.js";
90
+ import { VerifyMfaItems as ct } from "./components/VerifyMfa/VerifyMfaItems.js";
91
+ import { VerifyMfaTitle as gt } from "./components/VerifyMfa/VerifyMfaTitle.js";
92
+ import { useVerifyMfaContext as Ct } from "./components/VerifyMfa/VerifyMfaProvider.js";
93
+ import { useVerifyMfaFlow as St } from "./components/VerifyMfa/VerifyMfaFlowProvider.js";
93
94
  export {
94
- l as ALL_AUTH_METHODS,
95
- p as AUTH_METHODS,
95
+ p as ALL_AUTH_METHODS,
96
+ l as AUTH_METHODS,
96
97
  a as AuthButton,
97
98
  Vo as Button,
98
99
  x as CDPReactProvider,
99
100
  C as CopyAddress,
100
- T as CopyEvmKeyButton,
101
- S as CopySolanaKeyButton,
101
+ S as CopyEvmKeyButton,
102
+ h as CopySolanaKeyButton,
102
103
  A as EnrollMfa,
103
- re as EnrollMfaDescription,
104
+ te as EnrollMfaDescription,
104
105
  k as EnrollMfaError,
105
- te as EnrollMfaFlow,
106
- fe as EnrollMfaFlowBackButton,
107
- me as EnrollMfaFooter,
108
- pe as EnrollMfaImage,
109
- ie as EnrollMfaItem,
110
- Me as EnrollMfaItems,
106
+ fe as EnrollMfaFlow,
107
+ me as EnrollMfaFlowBackButton,
108
+ le as EnrollMfaFooter,
109
+ ie as EnrollMfaImage,
110
+ Me as EnrollMfaItem,
111
+ de as EnrollMfaItems,
111
112
  B as EnrollMfaModal,
112
113
  L as EnrollMfaModalContent,
113
114
  w as EnrollMfaModalTrigger,
114
- ue as EnrollMfaTitle,
115
- D as ExportWallet,
116
- b as ExportWalletCopyAddress,
115
+ Ie as EnrollMfaTitle,
116
+ b as ExportWallet,
117
+ D as ExportWalletCopyAddress,
117
118
  P as ExportWalletCopyKeyButton,
118
119
  v as ExportWalletFooter,
119
120
  O as ExportWalletModal,
@@ -125,77 +126,77 @@ export {
125
126
  K as ExportWalletWarning,
126
127
  j as Fund,
127
128
  G as FundFooter,
128
- ye as FundForm,
129
+ Te as FundForm,
129
130
  q as FundModal,
130
131
  J as FundModalContent,
131
132
  Q as FundModalTrigger,
132
133
  Fe as FundTitle,
133
134
  fr as IconAppleLogo,
134
135
  mr as IconArrowLeft,
135
- pr as IconArrowsUpDown,
136
+ lr as IconArrowsUpDown,
136
137
  ir as IconCheck,
137
138
  Mr as IconCheckCircle,
138
- ur as IconChevronDown,
139
+ dr as IconChevronDown,
139
140
  Ir as IconCopy,
140
141
  Er as IconEnvelope,
141
142
  yr as IconExclamationCircle,
142
- Fr as IconExclamationTriangle,
143
- hr as IconGoogleLogo,
143
+ Tr as IconExclamationTriangle,
144
+ Fr as IconGoogleLogo,
144
145
  kr as IconLock,
145
146
  Br as IconMinus,
146
147
  wr as IconPhone,
147
- Dr as IconPinCode,
148
+ br as IconPinCode,
148
149
  Pr as IconPlus,
149
150
  Or as IconShield,
150
151
  Rr as IconSmartPhone,
151
152
  _r as IconXMark,
152
153
  Z as LinkAuth,
153
154
  $ as LinkAuthError,
154
- ke as LinkAuthFlow,
155
- Le as LinkAuthFlowBackButton,
156
- We as LinkAuthItem,
157
- be as LinkAuthItems,
155
+ Be as LinkAuthFlow,
156
+ We as LinkAuthFlowBackButton,
157
+ De as LinkAuthItem,
158
+ ve as LinkAuthItems,
158
159
  ro as LinkAuthModal,
159
160
  eo as LinkAuthModalContent,
160
161
  to as LinkAuthModalTrigger,
161
- ve as LinkAuthTitle,
162
+ He as LinkAuthTitle,
162
163
  Lo as Modal,
163
164
  wo as ModalClose,
164
165
  Wo as ModalContent,
165
- Do as ModalDescription,
166
- bo as ModalTitle,
166
+ bo as ModalDescription,
167
+ Do as ModalTitle,
167
168
  Po as ModalTrigger,
168
169
  i as OAUTH_METHODS,
169
170
  fo as SendEvmTransactionButton,
170
171
  mo as SendSolanaTransactionButton,
171
- po as SignIn,
172
- Ue as SignInAuthMethodButtons,
173
- ze as SignInBackButton,
174
- Ne as SignInDescription,
175
- Ge as SignInFooter,
176
- qe as SignInForm,
177
- Qe as SignInImage,
172
+ lo as SignIn,
173
+ ze as SignInAuthMethodButtons,
174
+ Ne as SignInBackButton,
175
+ Ge as SignInDescription,
176
+ qe as SignInFooter,
177
+ Qe as SignInForm,
178
+ Ze as SignInImage,
178
179
  Mo as SignInModal,
179
180
  uo as SignInModalContent,
180
181
  co as SignInModalTrigger,
181
- Ze as SignInTitle,
182
+ ot as SignInTitle,
182
183
  go as SignOutButton,
183
184
  Co as ThemeProvider,
184
185
  s as VerifyMfa,
185
- et as VerifyMfaDescription,
186
- nt as VerifyMfaFlow,
187
- at as VerifyMfaFlowBackButton,
188
- lt as VerifyMfaFooter,
189
- xt as VerifyMfaImage,
190
- Fo as VerifyMfaInline,
191
- So as VerifyMfaInlineBackButton,
192
- ho as VerifyMfaInlineFlow,
193
- st as VerifyMfaItem,
194
- dt as VerifyMfaItems,
186
+ nt as VerifyMfaDescription,
187
+ at as VerifyMfaFlow,
188
+ pt as VerifyMfaFlowBackButton,
189
+ xt as VerifyMfaFooter,
190
+ st as VerifyMfaImage,
191
+ To as VerifyMfaInline,
192
+ ho as VerifyMfaInlineBackButton,
193
+ Fo as VerifyMfaInlineFlow,
194
+ ut as VerifyMfaItem,
195
+ ct as VerifyMfaItems,
195
196
  M as VerifyMfaModal,
196
- d as VerifyMfaModalContent,
197
- u as VerifyMfaModalTrigger,
198
- ct as VerifyMfaTitle,
197
+ u as VerifyMfaModalContent,
198
+ d as VerifyMfaModalTrigger,
199
+ gt as VerifyMfaTitle,
199
200
  _o as borderRadius,
200
201
  zo as borderRadiusComponents,
201
202
  Ko as borderRadiusSemantic,
@@ -218,17 +219,18 @@ export {
218
219
  tr as themeToCssVariables,
219
220
  Yo as tokens,
220
221
  c as useAppConfig,
221
- Ie as useEnrollMfaContext,
222
- Ee as useEnrollMfaFlow,
223
- he as useFundContext,
224
- He as useLinkAuthContext,
225
- Ve as useLinkAuthFlow,
222
+ Ee as useEnrollMfaContext,
223
+ ye as useEnrollMfaFlow,
224
+ ke as useFundContext,
225
+ Ue as useLinkAuthContext,
226
+ Le as useLinkAuthFlow,
227
+ re as usePhoneNumberState,
226
228
  I as useProviderName,
227
- ot as useSignInContext,
229
+ et as useSignInContext,
228
230
  io as useSignInReducer,
229
231
  yo as useTheme,
230
- gt as useVerifyMfaContext,
231
- Ct as useVerifyMfaFlow,
232
+ Ct as useVerifyMfaContext,
233
+ St as useVerifyMfaFlow,
232
234
  Ao as useVerifyMfaInlineContext,
233
235
  g as useVerifyMfaModal,
234
236
  Zo as zIndex,
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const VERSION = "0.0.88";
1
+ export declare const VERSION = "0.0.89";
package/dist/version.js CHANGED
@@ -1,4 +1,4 @@
1
- const o = "0.0.88";
1
+ const o = "0.0.89";
2
2
  export {
3
3
  o as VERSION
4
4
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coinbase/cdp-react",
3
- "version": "0.0.88",
3
+ "version": "0.0.89",
4
4
  "type": "module",
5
5
  "dependencies": {
6
6
  "@internationalized/number": "3.6.4",
@@ -16,8 +16,8 @@
16
16
  },
17
17
  "peerDependencies": {
18
18
  "react": ">=18.2.0 <19.2.0",
19
- "@coinbase/cdp-hooks": "^0.0.88",
20
- "@coinbase/cdp-core": "^0.0.88"
19
+ "@coinbase/cdp-core": "^0.0.89",
20
+ "@coinbase/cdp-hooks": "^0.0.89"
21
21
  },
22
22
  "devDependencies": {
23
23
  "@size-limit/preset-big-lib": "^11.2.0",
@@ -49,8 +49,8 @@
49
49
  "vite": "^7.0.4",
50
50
  "vite-plugin-dts": "^4.5.4",
51
51
  "vite-plugin-lib-inject-css": "^2.2.2",
52
- "@coinbase/cdp-hooks": "^0.0.88",
53
- "@coinbase/cdp-core": "^0.0.88"
52
+ "@coinbase/cdp-core": "^0.0.89",
53
+ "@coinbase/cdp-hooks": "^0.0.89"
54
54
  },
55
55
  "size-limit": [
56
56
  {