@privy-io/react-auth 2.0.5 → 2.0.6

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 (45) hide show
  1. package/dist/cjs/client.js +1 -1
  2. package/dist/cjs/config.js +1 -1
  3. package/dist/cjs/configuration/context.js +1 -1
  4. package/dist/cjs/connectors/embeddedProvider.js +1 -1
  5. package/dist/cjs/connectors/ethereum/index.js +1 -1
  6. package/dist/cjs/connectors/index.js +1 -1
  7. package/dist/cjs/constants.js +1 -1
  8. package/dist/cjs/embedded-wallets/solana/provider.js +1 -1
  9. package/dist/cjs/hooks/privy-provider.js +1 -1
  10. package/dist/cjs/hooks/useMfaEnrollment.js +1 -1
  11. package/dist/cjs/index.js +1 -1
  12. package/dist/cjs/{privy-provider-BJZXBWyw.js → privy-provider-B8LaAjk_.js} +1 -1
  13. package/dist/cjs/screens/Funding/ManualTransferScreen.js +1 -1
  14. package/dist/cjs/screens/MfaScreens/EnrollPasskey.js +1 -1
  15. package/dist/cjs/screens/MfaScreens/MfaEnrollmentFlowScreen.js +1 -1
  16. package/dist/dts/farcaster.d.mts +1 -1
  17. package/dist/dts/farcaster.d.ts +1 -1
  18. package/dist/dts/index.d.mts +19 -8
  19. package/dist/dts/index.d.ts +19 -8
  20. package/dist/dts/smart-wallets.d.mts +1 -1
  21. package/dist/dts/smart-wallets.d.ts +1 -1
  22. package/dist/dts/solana.d.mts +4 -4
  23. package/dist/dts/solana.d.ts +4 -4
  24. package/dist/dts/{types-DQ7QKE2m.d.mts → types-B-zTuIEL.d.mts} +7 -0
  25. package/dist/dts/{types-DQ7QKE2m.d.ts → types-B-zTuIEL.d.ts} +7 -0
  26. package/dist/dts/ui.d.mts +1 -1
  27. package/dist/dts/ui.d.ts +1 -1
  28. package/dist/dts/{useSolanaWallets-C61-2PbZ.d.ts → useSolanaWallets-DdM-QdoK.d.mts} +1 -1
  29. package/dist/dts/{useSolanaWallets-C61-2PbZ.d.mts → useSolanaWallets-DdM-QdoK.d.ts} +1 -1
  30. package/dist/esm/client.mjs +1 -1
  31. package/dist/esm/config.mjs +1 -1
  32. package/dist/esm/configuration/context.mjs +1 -1
  33. package/dist/esm/connectors/embeddedProvider.mjs +1 -1
  34. package/dist/esm/connectors/ethereum/index.mjs +1 -1
  35. package/dist/esm/connectors/index.mjs +1 -1
  36. package/dist/esm/constants.mjs +1 -1
  37. package/dist/esm/embedded-wallets/solana/provider.mjs +1 -1
  38. package/dist/esm/hooks/privy-provider.mjs +1 -1
  39. package/dist/esm/hooks/useMfaEnrollment.mjs +1 -1
  40. package/dist/esm/index.mjs +1 -1
  41. package/dist/esm/{privy-provider-SxHxPcTS.mjs → privy-provider-CuvYT8ML.mjs} +2 -2
  42. package/dist/esm/screens/Funding/ManualTransferScreen.mjs +1 -1
  43. package/dist/esm/screens/MfaScreens/EnrollPasskey.mjs +1 -1
  44. package/dist/esm/screens/MfaScreens/MfaEnrollmentFlowScreen.mjs +1 -1
  45. package/package.json +3 -3
@@ -1 +1 @@
1
- import{jsx as o,Fragment as e,jsxs as n}from"react/jsx-runtime";import{useState as t,useEffect as r,useMemo as s}from"react";import{formatTokenAmount as i,formatWeiAmount as a}from"@privy-io/js-sdk-core";import{PrimaryButton as m}from"../../components/Button.mjs";import{FlexContainer as c}from"../../components/Layouts.mjs";import{BlobbyFooter as l}from"../../components/ModalFooter.mjs";import{QrCode as p}from"../../components/QrCode.mjs";import d from"../../components/embedded-wallets/FundWalletMethodHeader.mjs";import{InfoBanner as u}from"../../components/ui/banners/InfoBanner.mjs";import{Subtitle as h}from"../../components/ui/typography/Subtitle.mjs";import{Title as j}from"../../components/ui/typography/Title.mjs";import{WalletInfoCard as f}from"../../components/ui/wallet/WalletInfoCard.mjs";import{useAppConfig as g}from"../../configuration/context.mjs";import{usePrivyInternal as y}from"../../hooks/internal-context.mjs";import{usePrivyModal as v}from"../../hooks/modal-context.mjs";import{useWalletBalance as b}from"../../hooks/useWalletBalance.mjs";import{useWallets as C}from"../../hooks/useWallets.mjs";import{ON_RAMP_COMPLETE_ANALYTICS_EVENT as I}from"../../lib/funding/analytics.mjs";import{getNativeCurrencyFromLamports as S}from"../../lib/solana/transaction.mjs";import{getErc20Balance as k}from"../../lib/wallets/actions/getErc20Balance.mjs";import{usePlugins as w}from"../../plugins/context/PrivyPluginContext.mjs";import{SOLANA_FUNDING_PLUGIN_ID as T}from"../../plugins/solana-funding/id.mjs";import{Blobby as E}from"../../svg/blobby.mjs";import{formatWalletAddress as x}from"../../utils/index.mjs";import{ModalScreen as A}from"../index.mjs";import{useSolanaWallets as M}from"../../hooks/solana/useSolanaWallets.mjs";import"styled-components";import"../../components/Loader.mjs";import"../../svg/protected-by-privy.mjs";import"../../config.mjs";import"../../configuration/defaultClientConfig.mjs";import"../../constants.mjs";import"../../configuration/login-methods.mjs";import"../../configuration/wallets.mjs";import"../../connectors/chains/index.mjs";import"../../connectors/chains/arbitrum.mjs";import"../../connectors/chains/arbitrumSepolia.mjs";import"../../connectors/chains/avalanche.mjs";import"../../connectors/chains/avalancheFuji.mjs";import"../../connectors/chains/base.mjs";import"../../connectors/chains/baseSepolia.mjs";import"../../connectors/chains/berachainArtio.mjs";import"../../connectors/chains/celo.mjs";import"../../connectors/chains/celoAlfajores.mjs";import"../../connectors/chains/filecoin.mjs";import"../../connectors/chains/filecoinCalibration.mjs";import"../../connectors/chains/garnetHolesky.mjs";import"../../connectors/chains/holesky.mjs";import"../../connectors/chains/linea.mjs";import"../../connectors/chains/lineaTestnet.mjs";import"../../connectors/chains/lukso.mjs";import"../../connectors/chains/mainnet.mjs";import"../../connectors/chains/optimism.mjs";import"../../connectors/chains/optimismSepolia.mjs";import"../../connectors/chains/polygon.mjs";import"../../connectors/chains/polygonAmoy.mjs";import"../../connectors/chains/redstone.mjs";import"../../connectors/chains/sepolia.mjs";import"../../connectors/chains/zora.mjs";import"../../connectors/chains/zoraSepolia.mjs";import"../../connectors/chains/zoraTestnet.mjs";import"../../connectors/chains/utils.mjs";import"../../lib/solana/index.mjs";import"../../theme.mjs";import"tinycolor2";import"../../lib/cybr53.mjs";import"qrcode";import"../../svg/black-rounded-square.mjs";import"../../connectors/get-legacy-injected-providers.mjs";import"../../connectors/is-wallet-installed.mjs";import"../../errors.mjs";import"ofetch";import"../../utils/eth/getPublicClient.mjs";import"viem";import"../../components/ModalHeader.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"../../hooks/index.mjs";import"@heroicons/react/24/outline/InformationCircleIcon";import"../../components/ui/chips/Chip.mjs";import"../../components/ui/animation/LoadingSkeleton.mjs";import"../../components/ui/layout/Column.mjs";import"../../components/ui/typography/ErrorMessage.mjs";import"../../components/ui/typography/LabelXs.mjs";import"../../components/ui/wallet/Address.mjs";import"@heroicons/react/24/outline/CheckIcon";import"@heroicons/react/24/outline/Square2StackIcon";import"../../components/ui/wallet/shared.mjs";import"../../components/PrefetchedImage.mjs";import"../../utils/buffer/readBigInt64LE.mjs";const L=()=>{let{wallets:E}=C(),{wallets:L}=M(),{data:R,setModalData:D,navigate:P,lastScreen:F}=v(),{rpcConfig:O,appId:W,createAnalyticsEvent:q,closePrivyModal:z}=y(),H=g(),[_,U]=t(void 0),[Q,X]=t(!1),$=w(),G=R?.funding,{reloadBalance:Y}=b({rpcConfig:O,appId:W,address:"ethereum"===G.chainType?G.address:void 0,chain:"ethereum"===G.chainType?G.chain:void 0}),J="solana"===G.chainType,K=J?"SOL":G.erc20Address?G.erc20ContractInfo?.symbol:G.chain.nativeCurrency.symbol,V=J?L.find((({address:o})=>o===G.address)):E.find((({address:o})=>x(o)===x(G.address)));if(!G)return D({errorModalData:{error:Error("Couldn't find funding config"),previousScreen:F||A.FUNDING_METHOD_SELECTION_SCREEN},funding:R?.funding,sendTransaction:R?.sendTransaction}),P(A.ERROR_SCREEN),/*#__PURE__*/o(e,{});r((()=>{let o=J?async function(){if("solana"!==G.chainType)return;let o=$(T);o?o.getBalance({address:G.address,cluster:G.cluster}).then((o=>{let e=BigInt(o);_&&e>_&&(X(!0),q({eventName:I,payload:{provider:"manual",status:"success",chainType:"solana",address:V?.address,value:(e-_).toString()}})),U(e)})):console.warn("Unable to load solana plugin, skipping balance")}:async function(){"ethereum"===G.chainType&&(async()=>{if(!G.erc20Address)return await Y()??BigInt(0);{let{balance:o}=await k({chain:G.chain,address:G.address,erc20Address:G.erc20Address,rpcConfig:O,appId:W});return o}})().then((o=>{_&&o>_&&(X(!0),q({eventName:I,payload:{provider:"manual",status:"success",chainType:"ethereum",address:V?.address,value:(o-_).toString()}})),U(o)})).catch((()=>U(void 0)))},e=setInterval(o,2e3);return o(),()=>clearInterval(e)}),[_]);let Z=s((()=>void 0!==_&&_>=parseFloat(G.amount)),[_,G.amount]),oo=s((()=>null==_?"":G.isUSDC?i({amount:_,decimals:6}):J?S(_,3,!0,!0):null!=G.erc20ContractInfo?.decimals?i({amount:_,decimals:G.erc20ContractInfo.decimals}):a({wei:_})),[_,J,G]),eo="ethereum"===G.chainType?G.chain.name:N[G.cluster.name];/*#__PURE__*/return n(e,{children:[/*#__PURE__*/o(d,{}),/*#__PURE__*/n(j,{children:["Receive ",G.amount," ",K]}),/*#__PURE__*/n(h,{children:["Scan this code or copy your wallet address to receive funds on ",eo,"."]}),/*#__PURE__*/n(c,{style:{gap:"1rem",margin:"1rem 0"},children:[/*#__PURE__*/o(p,{url:G.address,size:200,squareLogoElement:B}),/*#__PURE__*/n(u,{theme:H.appearance.palette.colorScheme,children:["Make sure to send funds on ",eo,"."]}),/*#__PURE__*/o(f,{title:"Your wallet",errMsg:void 0,showIcon:!0,isLoading:!G||void 0===_,isPulsing:!Z,balance:`${oo} ${K}`,address:G.address,statusColor:Z?"green":"gray"}),Q&&/*#__PURE__*/o(m,{onClick:()=>z({shouldCallAuthOnSuccess:!1,isSuccess:!0}),children:"Continue"})]}),/*#__PURE__*/o(l,{})]})};let B=({...e})=>/*#__PURE__*/o(E,{color:"black",...e}),N={devnet:"Devnet","mainnet-beta":"Solana",testnet:"Testnet"};export{L as ManualTransferScreen};
1
+ import{jsx as o,Fragment as e,jsxs as n}from"react/jsx-runtime";import{useState as t,useEffect as r,useMemo as s}from"react";import{formatTokenAmount as i,formatWeiAmount as a}from"@privy-io/js-sdk-core";import{PrimaryButton as m}from"../../components/Button.mjs";import{FlexContainer as c}from"../../components/Layouts.mjs";import{BlobbyFooter as l}from"../../components/ModalFooter.mjs";import{QrCode as p}from"../../components/QrCode.mjs";import d from"../../components/embedded-wallets/FundWalletMethodHeader.mjs";import{InfoBanner as u}from"../../components/ui/banners/InfoBanner.mjs";import{Subtitle as h}from"../../components/ui/typography/Subtitle.mjs";import{Title as j}from"../../components/ui/typography/Title.mjs";import{WalletInfoCard as f}from"../../components/ui/wallet/WalletInfoCard.mjs";import{useAppConfig as g}from"../../configuration/context.mjs";import{usePrivyInternal as y}from"../../hooks/internal-context.mjs";import{usePrivyModal as v}from"../../hooks/modal-context.mjs";import{useWalletBalance as b}from"../../hooks/useWalletBalance.mjs";import{useWallets as C}from"../../hooks/useWallets.mjs";import{ON_RAMP_COMPLETE_ANALYTICS_EVENT as I}from"../../lib/funding/analytics.mjs";import{getNativeCurrencyFromLamports as S}from"../../lib/solana/transaction.mjs";import{getErc20Balance as k}from"../../lib/wallets/actions/getErc20Balance.mjs";import{usePlugins as w}from"../../plugins/context/PrivyPluginContext.mjs";import{SOLANA_FUNDING_PLUGIN_ID as T}from"../../plugins/solana-funding/id.mjs";import{Blobby as E}from"../../svg/blobby.mjs";import{formatWalletAddress as x}from"../../utils/index.mjs";import{ModalScreen as A}from"../index.mjs";import{useSolanaWallets as M}from"../../hooks/solana/useSolanaWallets.mjs";import"styled-components";import"../../components/Loader.mjs";import"../../svg/protected-by-privy.mjs";import"../../config.mjs";import"../../configuration/defaultClientConfig.mjs";import"../../constants.mjs";import"../../configuration/login-methods.mjs";import"../../configuration/wallets.mjs";import"../../connectors/chains/index.mjs";import"../../connectors/chains/arbitrum.mjs";import"../../connectors/chains/arbitrumSepolia.mjs";import"../../connectors/chains/avalanche.mjs";import"../../connectors/chains/avalancheFuji.mjs";import"../../connectors/chains/base.mjs";import"../../connectors/chains/baseSepolia.mjs";import"../../connectors/chains/berachainArtio.mjs";import"../../connectors/chains/celo.mjs";import"../../connectors/chains/celoAlfajores.mjs";import"../../connectors/chains/filecoin.mjs";import"../../connectors/chains/filecoinCalibration.mjs";import"../../connectors/chains/garnetHolesky.mjs";import"../../connectors/chains/holesky.mjs";import"../../connectors/chains/linea.mjs";import"../../connectors/chains/lineaTestnet.mjs";import"../../connectors/chains/lukso.mjs";import"../../connectors/chains/mainnet.mjs";import"../../connectors/chains/optimism.mjs";import"../../connectors/chains/optimismSepolia.mjs";import"../../connectors/chains/polygon.mjs";import"../../connectors/chains/polygonAmoy.mjs";import"../../connectors/chains/redstone.mjs";import"../../connectors/chains/sepolia.mjs";import"../../connectors/chains/zora.mjs";import"../../connectors/chains/zoraSepolia.mjs";import"../../connectors/chains/zoraTestnet.mjs";import"../../connectors/chains/utils.mjs";import"../../lib/solana/index.mjs";import"../../theme.mjs";import"tinycolor2";import"../../lib/cybr53.mjs";import"qrcode";import"../../svg/black-rounded-square.mjs";import"../../connectors/get-legacy-injected-providers.mjs";import"../../connectors/is-wallet-installed.mjs";import"../../errors.mjs";import"ofetch";import"../../utils/eth/getPublicClient.mjs";import"viem";import"../../components/ModalHeader.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"../../hooks/index.mjs";import"@heroicons/react/24/outline/InformationCircleIcon";import"../../components/ui/chips/Chip.mjs";import"../../components/ui/animation/LoadingSkeleton.mjs";import"../../components/ui/layout/Column.mjs";import"../../components/ui/typography/ErrorMessage.mjs";import"../../components/ui/typography/LabelXs.mjs";import"../../components/ui/wallet/Address.mjs";import"@heroicons/react/24/outline/CheckIcon";import"@heroicons/react/24/outline/Square2StackIcon";import"../../components/ui/wallet/shared.mjs";import"../../components/PrefetchedImage.mjs";import"../../utils/buffer/readBigInt64LE.mjs";const L=()=>{let{wallets:E}=C(),{wallets:L}=M(),{data:R,setModalData:D,navigate:P,lastScreen:F}=v(),{rpcConfig:O,appId:W,createAnalyticsEvent:q,closePrivyModal:z}=y(),H=g(),[$,_]=t(void 0),[U,Q]=t(!1),X=w(),G=R?.funding,{reloadBalance:Y}=b({rpcConfig:O,appId:W,address:"ethereum"===G.chainType?G.address:void 0,chain:"ethereum"===G.chainType?G.chain:void 0}),J="solana"===G.chainType,K=J?"SOL":G.erc20Address?G.erc20ContractInfo?.symbol:G.chain.nativeCurrency.symbol,V=J?L.find((({address:o})=>o===G.address)):E.find((({address:o})=>x(o)===x(G.address)));if(!G)return D({errorModalData:{error:Error("Couldn't find funding config"),previousScreen:F||A.FUNDING_METHOD_SELECTION_SCREEN},funding:R?.funding,sendTransaction:R?.sendTransaction}),P(A.ERROR_SCREEN),/*#__PURE__*/o(e,{});r((()=>{let o=J?async function(){if("solana"!==G.chainType)return;let o=X(T);o?o.getBalance({address:G.address,cluster:G.cluster}).then((o=>{let e=BigInt(o);$&&e>$&&(Q(!0),q({eventName:I,payload:{provider:"manual",status:"success",chainType:"solana",address:V?.address,value:(e-$).toString()}})),_(e)})):console.warn("Unable to load solana plugin, skipping balance")}:async function(){"ethereum"===G.chainType&&(async()=>{if(!G.erc20Address)return await Y()??BigInt(0);{let{balance:o}=await k({chain:G.chain,address:G.address,erc20Address:G.erc20Address,rpcConfig:O,appId:W});return o}})().then((o=>{$&&o>$&&(Q(!0),q({eventName:I,payload:{provider:"manual",status:"success",chainType:"ethereum",address:V?.address,value:(o-$).toString()}})),_(o)})).catch((()=>_(void 0)))},e=setInterval(o,2e3);return o(),()=>clearInterval(e)}),[$]);let Z=s((()=>void 0!==$&&$>=parseFloat(G.amount)),[$,G.amount]),oo=s((()=>null==$?"":G.isUSDC?i({amount:$,decimals:6}):J?S($,3,!0,!0):null!=G.erc20ContractInfo?.decimals?i({amount:$,decimals:G.erc20ContractInfo.decimals}):a({wei:$})),[$,J,G]),eo="ethereum"===G.chainType?G.chain.name:N[G.cluster.name];/*#__PURE__*/return n(e,{children:[/*#__PURE__*/o(d,{}),/*#__PURE__*/n(j,{children:["Receive ",G.amount," ",K]}),/*#__PURE__*/n(h,{children:["Scan this code or copy your wallet address to receive funds on ",eo,"."]}),/*#__PURE__*/n(c,{style:{gap:"1rem",margin:"1rem 0"},children:[/*#__PURE__*/o(p,{url:`${G.chainType}:${G.address}`,size:200,squareLogoElement:B}),/*#__PURE__*/n(u,{theme:H.appearance.palette.colorScheme,children:["Make sure to send funds on ",eo,"."]}),/*#__PURE__*/o(f,{title:"Your wallet",errMsg:void 0,showIcon:!0,isLoading:!G||void 0===$,isPulsing:!Z,balance:`${oo} ${K}`,address:G.address,statusColor:Z?"green":"gray"}),U&&/*#__PURE__*/o(m,{onClick:()=>z({shouldCallAuthOnSuccess:!1,isSuccess:!0}),children:"Continue"})]}),/*#__PURE__*/o(l,{})]})};let B=({...e})=>/*#__PURE__*/o(E,{color:"black",...e}),N={devnet:"Devnet","mainnet-beta":"Solana",testnet:"Testnet"};export{L as ManualTransferScreen};
@@ -1 +1 @@
1
- import{jsx as o,jsxs as e,Fragment as n}from"react/jsx-runtime";import i from"@heroicons/react/24/outline/ArrowRightEndOnRectangleIcon";import r from"@heroicons/react/24/outline/CheckCircleIcon";import t from"@heroicons/react/24/outline/ClockIcon";import s from"@heroicons/react/24/outline/ShieldCheckIcon";import{useState as c,useMemo as m}from"react";import{styled as a}from"styled-components";import{PrimaryButton as l}from"../../components/Button.mjs";import{Loader as p}from"../../components/Loader.mjs";import{ModalFooter as d}from"../../components/ModalFooter.mjs";import{ModalHeader as h}from"../../components/ModalHeader.mjs";import{usePrivyInternal as u}from"../../hooks/internal-context.mjs";import{usePrivyModal as y}from"../../hooks/modal-context.mjs";import{usePrivyContext as j}from"../../hooks/privy-context.mjs";import{useMfaEnrollment as f}from"../../hooks/useMfaEnrollment.mjs";import{FaceId as k}from"../../svg/face-id.mjs";import{FingerPrint as g}from"../../svg/fingerprint.mjs";import{ErrorScreenView as C}from"../ErrorScreen.mjs";import{DoubleIconWrapper as w}from"../LinkPasskeyScreen.mjs";import{AppLogoContainer as b,Title as v,List as I,ListItem as x,ListItemIcon as S,IconWrapper as P,SubTitle as A,BottomSection as W}from"./StyledComponents.mjs";import"../../configuration/context.mjs";import"../../config.mjs";import"../../configuration/defaultClientConfig.mjs";import"../../constants.mjs";import"../../configuration/login-methods.mjs";import"../../configuration/wallets.mjs";import"../../connectors/chains/index.mjs";import"../../connectors/chains/arbitrum.mjs";import"../../connectors/chains/arbitrumSepolia.mjs";import"../../connectors/chains/avalanche.mjs";import"../../connectors/chains/avalancheFuji.mjs";import"../../connectors/chains/base.mjs";import"../../connectors/chains/baseSepolia.mjs";import"../../connectors/chains/berachainArtio.mjs";import"../../connectors/chains/celo.mjs";import"../../connectors/chains/celoAlfajores.mjs";import"../../connectors/chains/filecoin.mjs";import"../../connectors/chains/filecoinCalibration.mjs";import"../../connectors/chains/garnetHolesky.mjs";import"../../connectors/chains/holesky.mjs";import"../../connectors/chains/linea.mjs";import"../../connectors/chains/lineaTestnet.mjs";import"../../connectors/chains/lukso.mjs";import"../../connectors/chains/mainnet.mjs";import"../../connectors/chains/optimism.mjs";import"../../connectors/chains/optimismSepolia.mjs";import"../../connectors/chains/polygon.mjs";import"../../connectors/chains/polygonAmoy.mjs";import"../../connectors/chains/redstone.mjs";import"../../connectors/chains/sepolia.mjs";import"../../connectors/chains/zora.mjs";import"../../connectors/chains/zoraSepolia.mjs";import"../../connectors/chains/zoraTestnet.mjs";import"../../connectors/chains/utils.mjs";import"../../lib/solana/index.mjs";import"../../theme.mjs";import"tinycolor2";import"../../lib/cybr53.mjs";import"../../svg/protected-by-privy.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"../../hooks/index.mjs";import"../../components/PrefetchedImage.mjs";import"../index.mjs";import"@heroicons/react/24/outline/ExclamationTriangleIcon";import"@heroicons/react/24/outline/PhoneIcon";import"../../components/CircleBorder.mjs";import"../../components/layout/StackedContainer.mjs";import"../../embedded-wallets/errors.mjs";import"../../embedded-wallets/types.mjs";import"../../errors.mjs";import"ofetch";import"../../hooks/captcha-context.mjs";import"../../utils/index.mjs";import"../../connectors/get-legacy-injected-providers.mjs";import"../../connectors/is-wallet-installed.mjs";import"../../utils/eth/getPublicClient.mjs";import"viem";import"../../svg/lock-closed.mjs";import"@heroicons/react/24/outline/TrashIcon";import"@heroicons/react/24/solid/CheckBadgeIcon";import"@heroicons/react/24/solid/LockClosedIcon";const E=({onComplete:e,onClose:n,onReset:i})=>{let{user:r}=j(),{data:t}=y(),{initLinkWithPasskey:s,linkWithPasskey:a}=u(),{initEnrollmentWithPasskey:l,submitEnrollmentWithPasskey:p}=f(),[d,h]=c(!1),[k,g]=c(!1),[w,b]=c(!1),[v,I]=c(null),x=m((()=>r?.linkedAccounts.filter((o=>"passkey"===o.type))??[]),[r]),S=()=>{t?.mfaEnrollmentFlow?.onSuccess(),e()},P=async o=>{h(!0);try{await l(),await p({credentialIds:o}),b(!0)}catch(o){I(o)}finally{h(!1)}},A=async()=>{g(!0),I(null);try{await s();let o=await a(),e=o?.linkedAccounts.filter((o=>"passkey"===o.type)).map((o=>o.credentialId))??[];await P(e)}catch(o){I(o)}finally{g(!1)}};return 0===x.length||k?/*#__PURE__*/o(T,{onReset:i,onClose:n,onClick:A,isCreating:k}):w?/*#__PURE__*/o(F,{onClick:S,onClose:S}):v?/*#__PURE__*/o(C,{error:v,backFn:()=>I(null),onClick:()=>I(null)}):/*#__PURE__*/o(B,{passkeys:x,isSubmitting:d,isCreating:k,onReset:i,onClose:n,onSubmitEnrollment:()=>P(x.map((o=>o.credentialId))),onAddPasskey:A})};let T=({onReset:r,onClose:c,onClick:m,isCreating:a})=>/*#__PURE__*/e(n,{children:[/*#__PURE__*/o(h,{backFn:r,onClose:c},"header"),/*#__PURE__*/o(b,{children:/*#__PURE__*/e(w,{children:[/*#__PURE__*/o(k,{}),/*#__PURE__*/o(g,{})]})}),/*#__PURE__*/o(v,{children:"Set up passkey verification"}),/*#__PURE__*/e(I,{children:[/*#__PURE__*/e(x,{children:[/*#__PURE__*/o(S,{children:/*#__PURE__*/o(s,{})}),"Verify with Touch ID, Face ID, PIN, or hardware key"]}),/*#__PURE__*/e(x,{children:[/*#__PURE__*/o(S,{children:/*#__PURE__*/o(t,{})}),"Takes seconds to set up and use"]}),/*#__PURE__*/e(x,{children:[/*#__PURE__*/o(S,{children:/*#__PURE__*/o(i,{})}),"Use your passkey to verify transactions and login to your account"]})]}),/*#__PURE__*/o(l,{style:{marginTop:"2.25rem"},onClick:m,loading:a,children:"Add a new passkey"}),/*#__PURE__*/o(d,{})]}),B=({onReset:i,onClose:r,onAddPasskey:t,onSubmitEnrollment:s,passkeys:m,isSubmitting:a,isCreating:u})=>{let[y,j]=c(!1),f=y?m.length:m.length>3?2:3;/*#__PURE__*/return e(n,{children:[/*#__PURE__*/o(h,{backFn:y?()=>j(!1):i,onClose:r},"header"),!y&&/*#__PURE__*/o(b,{children:/*#__PURE__*/e(w,{children:[/*#__PURE__*/o(k,{}),/*#__PURE__*/o(g,{})]})}),/*#__PURE__*/o(v,{children:"Enable your passkeys for verification"}),/*#__PURE__*/e(I,{children:[m.slice(0,f).map((n=>/*#__PURE__*/e(L,{children:[/*#__PURE__*/o(N,{children:z(n)}),/*#__PURE__*/e(R,{children:["Last used: ",n.latestVerifiedAt?.toLocaleString()]})]},n.credentialId))),!y&&m.length>3&&/*#__PURE__*/o(M,{onClick:()=>j(!0),children:"View All"})]}),/*#__PURE__*/o(l,{style:{marginTop:"1.5rem"},onClick:s,loading:a,children:"Enable passkeys"}),m.length<5&&/*#__PURE__*/o(M,{style:{marginTop:"0.5rem"},onClick:t,disabled:u,children:u?/*#__PURE__*/o(p,{style:{height:"1rem",width:"1rem",borderWidth:2}}):"Add new passkey"}),/*#__PURE__*/o(d,{})]})},F=({onClick:i,onClose:t})=>/*#__PURE__*/e(n,{children:[/*#__PURE__*/o(h,{onClose:t},"header"),/*#__PURE__*/o(P,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/o(r,{})}),/*#__PURE__*/o(v,{children:"Passkey verification added"}),/*#__PURE__*/o(A,{children:"From now on, you'll use the passkey whenever you use your Privy wallet."}),/*#__PURE__*/o(W,{children:/*#__PURE__*/o(l,{onClick:i,children:"Done"})}),/*#__PURE__*/o(d,{})]}),L=/*#__PURE__*/a.div.withConfig({displayName:"PasskeyItem",componentId:"sc-926c6706-0"})(["&&{padding:0.75rem 1rem;text-align:left;border-radius:0.5rem;border:1px solid var(--privy-color-foreground-4);width:100%;}"]),N=/*#__PURE__*/a.div.withConfig({displayName:"PasskeyItemTitle",componentId:"sc-926c6706-1"})(["font-size:0.875rem;line-height:1.375rem;font-weight:500;color:var(--privy-color-foreground-1);"]),R=/*#__PURE__*/a.div.withConfig({displayName:"PasskeyItemSubtitle",componentId:"sc-926c6706-2"})(["font-size:0.75rem;font-weight:400;line-height:1.125rem;color:var(--privy-color-foreground-2);"]),z=o=>o.authenticatorName?o.createdWithBrowser?`${o.authenticatorName} on ${o.createdWithBrowser}`:o.authenticatorName:o.createdWithBrowser?o.createdWithOs?`${o.createdWithBrowser} on ${o.createdWithOs}`:`${o.createdWithBrowser}`:"Unknown device";const M=/*#__PURE__*/a.button.withConfig({displayName:"StyledLink",componentId:"sc-926c6706-3"})(["&&{width:100%;font-size:0.875rem;line-height:1rem;@media (min-width:440px){font-size:14px;}display:flex;gap:12px;justify-content:center;padding:0.75rem 1rem;background-color:var(--privy-color-background);transition:background-color 200ms ease;color:var(--privy-color-accent);:focus{outline:none;box-shadow:none;}}"]);export{E as EnrollPasskey,M as StyledLink};
1
+ import{jsx as o,jsxs as e,Fragment as n}from"react/jsx-runtime";import i from"@heroicons/react/24/outline/ArrowRightEndOnRectangleIcon";import r from"@heroicons/react/24/outline/CheckCircleIcon";import t from"@heroicons/react/24/outline/ClockIcon";import s from"@heroicons/react/24/outline/ShieldCheckIcon";import{useState as c,useMemo as m}from"react";import{styled as a}from"styled-components";import{PrimaryButton as l}from"../../components/Button.mjs";import{Loader as p}from"../../components/Loader.mjs";import{ModalFooter as d}from"../../components/ModalFooter.mjs";import{ModalHeader as h}from"../../components/ModalHeader.mjs";import{usePrivyInternal as u}from"../../hooks/internal-context.mjs";import{usePrivyModal as y}from"../../hooks/modal-context.mjs";import{usePrivyContext as f}from"../../hooks/privy-context.mjs";import{useMfaEnrollment as j}from"../../hooks/useMfaEnrollment.mjs";import{FaceId as k}from"../../svg/face-id.mjs";import{FingerPrint as g}from"../../svg/fingerprint.mjs";import{ErrorScreenView as C}from"../ErrorScreen.mjs";import{DoubleIconWrapper as w}from"../LinkPasskeyScreen.mjs";import{AppLogoContainer as b,Title as v,List as I,ListItem as x,ListItemIcon as S,IconWrapper as P,SubTitle as A,BottomSection as E}from"./StyledComponents.mjs";import"../../configuration/context.mjs";import"../../config.mjs";import"../../configuration/defaultClientConfig.mjs";import"../../constants.mjs";import"../../configuration/login-methods.mjs";import"../../configuration/wallets.mjs";import"../../connectors/chains/index.mjs";import"../../connectors/chains/arbitrum.mjs";import"../../connectors/chains/arbitrumSepolia.mjs";import"../../connectors/chains/avalanche.mjs";import"../../connectors/chains/avalancheFuji.mjs";import"../../connectors/chains/base.mjs";import"../../connectors/chains/baseSepolia.mjs";import"../../connectors/chains/berachainArtio.mjs";import"../../connectors/chains/celo.mjs";import"../../connectors/chains/celoAlfajores.mjs";import"../../connectors/chains/filecoin.mjs";import"../../connectors/chains/filecoinCalibration.mjs";import"../../connectors/chains/garnetHolesky.mjs";import"../../connectors/chains/holesky.mjs";import"../../connectors/chains/linea.mjs";import"../../connectors/chains/lineaTestnet.mjs";import"../../connectors/chains/lukso.mjs";import"../../connectors/chains/mainnet.mjs";import"../../connectors/chains/optimism.mjs";import"../../connectors/chains/optimismSepolia.mjs";import"../../connectors/chains/polygon.mjs";import"../../connectors/chains/polygonAmoy.mjs";import"../../connectors/chains/redstone.mjs";import"../../connectors/chains/sepolia.mjs";import"../../connectors/chains/zora.mjs";import"../../connectors/chains/zoraSepolia.mjs";import"../../connectors/chains/zoraTestnet.mjs";import"../../connectors/chains/utils.mjs";import"../../lib/solana/index.mjs";import"../../theme.mjs";import"tinycolor2";import"../../lib/cybr53.mjs";import"../../svg/protected-by-privy.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/QuestionMarkCircleIcon";import"@heroicons/react/24/outline/XMarkIcon";import"../../hooks/index.mjs";import"../../components/PrefetchedImage.mjs";import"../index.mjs";import"@heroicons/react/24/outline/ExclamationTriangleIcon";import"@heroicons/react/24/outline/PhoneIcon";import"../../components/CircleBorder.mjs";import"../../components/layout/StackedContainer.mjs";import"../../embedded-wallets/errors.mjs";import"../../embedded-wallets/types.mjs";import"../../errors.mjs";import"ofetch";import"../../hooks/captcha-context.mjs";import"../../utils/index.mjs";import"../../connectors/get-legacy-injected-providers.mjs";import"../../connectors/is-wallet-installed.mjs";import"../../utils/eth/getPublicClient.mjs";import"viem";import"../../svg/lock-closed.mjs";import"@heroicons/react/24/outline/TrashIcon";import"@heroicons/react/24/solid/CheckBadgeIcon";import"@heroicons/react/24/solid/LockClosedIcon";const W=({onComplete:e,onClose:n,onReset:i})=>{let{user:r}=f(),{data:t}=y(),{initLinkWithPasskey:s,linkWithPasskey:a}=u(),{initEnrollmentWithPasskey:l,submitEnrollmentWithPasskey:p}=j(),[d,h]=c(!1),[k,g]=c(!1),[w,b]=c(!1),[v,I]=c(null),x=m((()=>r?.linkedAccounts.filter((o=>"passkey"===o.type))??[]),[r]),S=()=>{t?.mfaEnrollmentFlow?.onSuccess(),e()},P=async o=>{h(!0);try{await l(),await p({credentialIds:o},{removeForLogin:t?.mfaEnrollmentFlow?.shouldUnlinkOnUnenrollMfa}),b(!0)}catch(o){I(o)}finally{h(!1)}},A=async()=>{g(!0),I(null);try{await s();let o=await a(),e=o?.linkedAccounts.filter((o=>"passkey"===o.type)).map((o=>o.credentialId))??[];await P(e)}catch(o){I(o)}finally{g(!1)}};return 0===x.length||k?/*#__PURE__*/o(F,{onReset:i,onClose:n,onClick:A,isCreating:k}):w?/*#__PURE__*/o(B,{onClick:S,onClose:S}):v?/*#__PURE__*/o(C,{error:v,backFn:()=>I(null),onClick:()=>I(null)}):/*#__PURE__*/o(T,{passkeys:x,isSubmitting:d,isCreating:k,onReset:i,onClose:n,onSubmitEnrollment:()=>P(x.map((o=>o.credentialId))),onAddPasskey:A})};let F=({onReset:r,onClose:c,onClick:m,isCreating:a})=>/*#__PURE__*/e(n,{children:[/*#__PURE__*/o(h,{backFn:r,onClose:c},"header"),/*#__PURE__*/o(b,{children:/*#__PURE__*/e(w,{children:[/*#__PURE__*/o(k,{}),/*#__PURE__*/o(g,{})]})}),/*#__PURE__*/o(v,{children:"Set up passkey verification"}),/*#__PURE__*/e(I,{children:[/*#__PURE__*/e(x,{children:[/*#__PURE__*/o(S,{children:/*#__PURE__*/o(s,{})}),"Verify with Touch ID, Face ID, PIN, or hardware key"]}),/*#__PURE__*/e(x,{children:[/*#__PURE__*/o(S,{children:/*#__PURE__*/o(t,{})}),"Takes seconds to set up and use"]}),/*#__PURE__*/e(x,{children:[/*#__PURE__*/o(S,{children:/*#__PURE__*/o(i,{})}),"Use your passkey to verify transactions and login to your account"]})]}),/*#__PURE__*/o(l,{style:{marginTop:"2.25rem"},onClick:m,loading:a,children:"Add a new passkey"}),/*#__PURE__*/o(d,{})]}),T=({onReset:i,onClose:r,onAddPasskey:t,onSubmitEnrollment:s,passkeys:m,isSubmitting:a,isCreating:u})=>{let[y,f]=c(!1),j=y?m.length:m.length>3?2:3;/*#__PURE__*/return e(n,{children:[/*#__PURE__*/o(h,{backFn:y?()=>f(!1):i,onClose:r},"header"),!y&&/*#__PURE__*/o(b,{children:/*#__PURE__*/e(w,{children:[/*#__PURE__*/o(k,{}),/*#__PURE__*/o(g,{})]})}),/*#__PURE__*/o(v,{children:"Enable your passkeys for verification"}),/*#__PURE__*/e(I,{children:[m.slice(0,j).map((n=>/*#__PURE__*/e(L,{children:[/*#__PURE__*/o(N,{children:z(n)}),/*#__PURE__*/e(R,{children:["Last used: ",n.latestVerifiedAt?.toLocaleString()]})]},n.credentialId))),!y&&m.length>3&&/*#__PURE__*/o(M,{onClick:()=>f(!0),children:"View All"})]}),/*#__PURE__*/o(l,{style:{marginTop:"1.5rem"},onClick:s,loading:a,children:"Enable passkeys"}),m.length<5&&/*#__PURE__*/o(M,{style:{marginTop:"0.5rem"},onClick:t,disabled:u,children:u?/*#__PURE__*/o(p,{style:{height:"1rem",width:"1rem",borderWidth:2}}):"Add new passkey"}),/*#__PURE__*/o(d,{})]})},B=({onClick:i,onClose:t})=>/*#__PURE__*/e(n,{children:[/*#__PURE__*/o(h,{onClose:t},"header"),/*#__PURE__*/o(P,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/o(r,{})}),/*#__PURE__*/o(v,{children:"Passkey verification added"}),/*#__PURE__*/o(A,{children:"From now on, you'll use the passkey whenever you use your Privy wallet."}),/*#__PURE__*/o(E,{children:/*#__PURE__*/o(l,{onClick:i,children:"Done"})}),/*#__PURE__*/o(d,{})]}),L=/*#__PURE__*/a.div.withConfig({displayName:"PasskeyItem",componentId:"sc-f71dd8ba-0"})(["&&{padding:0.75rem 1rem;text-align:left;border-radius:0.5rem;border:1px solid var(--privy-color-foreground-4);width:100%;}"]),N=/*#__PURE__*/a.div.withConfig({displayName:"PasskeyItemTitle",componentId:"sc-f71dd8ba-1"})(["font-size:0.875rem;line-height:1.375rem;font-weight:500;color:var(--privy-color-foreground-1);"]),R=/*#__PURE__*/a.div.withConfig({displayName:"PasskeyItemSubtitle",componentId:"sc-f71dd8ba-2"})(["font-size:0.75rem;font-weight:400;line-height:1.125rem;color:var(--privy-color-foreground-2);"]),z=o=>o.authenticatorName?o.createdWithBrowser?`${o.authenticatorName} on ${o.createdWithBrowser}`:o.authenticatorName:o.createdWithBrowser?o.createdWithOs?`${o.createdWithBrowser} on ${o.createdWithOs}`:`${o.createdWithBrowser}`:"Unknown device";const M=/*#__PURE__*/a.button.withConfig({displayName:"StyledLink",componentId:"sc-f71dd8ba-3"})(["&&{width:100%;font-size:0.875rem;line-height:1rem;@media (min-width:440px){font-size:14px;}display:flex;gap:12px;justify-content:center;padding:0.75rem 1rem;background-color:var(--privy-color-background);transition:background-color 200ms ease;color:var(--privy-color-accent);:focus{outline:none;box-shadow:none;}}"]);export{W as EnrollPasskey,M as StyledLink};
@@ -1 +1 @@
1
- import{jsxs as o,Fragment as e,jsx as n}from"react/jsx-runtime";import t from"@heroicons/react/24/outline/QuestionMarkCircleIcon";import r from"@heroicons/react/24/outline/ShieldCheckIcon";import i from"@heroicons/react/24/solid/CheckBadgeIcon";import s from"@heroicons/react/24/solid/IdentificationIcon";import{useState as c,useEffect as m}from"react";import{PrimaryButton as a,SecondaryButton as l}from"../../components/Button.mjs";import{Loader as p}from"../../components/Loader.mjs";import{ModalFooter as h}from"../../components/ModalFooter.mjs";import{ModalHeader as d}from"../../components/ModalHeader.mjs";import{usePrivyInternal as u}from"../../hooks/internal-context.mjs";import{usePrivyModal as j}from"../../hooks/modal-context.mjs";import{usePrivyContext as f}from"../../hooks/privy-context.mjs";import{useMfa as y}from"../../hooks/useMfa.mjs";import{useMfaEnrollment as k}from"../../hooks/useMfaEnrollment.mjs";import{MfaShieldIcon as g}from"../../svg/mfa-shield.mjs";import{EnrollLandingScreen as C}from"./EnrollLandingScreen.mjs";import{EnrollPasskey as v}from"./EnrollPasskey.mjs";import{EnrollSms as M}from"./EnrollSms.mjs";import{EnrollTotp as I}from"./EnrollTotp.mjs";import{AppLogoContainer as b,Container as w,IconWrapper as S,Title as A,SubTitle as x,BottomSection as P,List as R,ListItem as E,ListItemIcon as F}from"./StyledComponents.mjs";import"styled-components";import"../../configuration/context.mjs";import"../../config.mjs";import"../../configuration/defaultClientConfig.mjs";import"../../constants.mjs";import"../../configuration/login-methods.mjs";import"../../configuration/wallets.mjs";import"../../connectors/chains/index.mjs";import"../../connectors/chains/arbitrum.mjs";import"../../connectors/chains/arbitrumSepolia.mjs";import"../../connectors/chains/avalanche.mjs";import"../../connectors/chains/avalancheFuji.mjs";import"../../connectors/chains/base.mjs";import"../../connectors/chains/baseSepolia.mjs";import"../../connectors/chains/berachainArtio.mjs";import"../../connectors/chains/celo.mjs";import"../../connectors/chains/celoAlfajores.mjs";import"../../connectors/chains/filecoin.mjs";import"../../connectors/chains/filecoinCalibration.mjs";import"../../connectors/chains/garnetHolesky.mjs";import"../../connectors/chains/holesky.mjs";import"../../connectors/chains/linea.mjs";import"../../connectors/chains/lineaTestnet.mjs";import"../../connectors/chains/lukso.mjs";import"../../connectors/chains/mainnet.mjs";import"../../connectors/chains/optimism.mjs";import"../../connectors/chains/optimismSepolia.mjs";import"../../connectors/chains/polygon.mjs";import"../../connectors/chains/polygonAmoy.mjs";import"../../connectors/chains/redstone.mjs";import"../../connectors/chains/sepolia.mjs";import"../../connectors/chains/zora.mjs";import"../../connectors/chains/zoraSepolia.mjs";import"../../connectors/chains/zoraTestnet.mjs";import"../../connectors/chains/utils.mjs";import"../../lib/solana/index.mjs";import"../../theme.mjs";import"tinycolor2";import"../../lib/cybr53.mjs";import"../../svg/protected-by-privy.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/XMarkIcon";import"../../hooks/index.mjs";import"../../components/PrefetchedImage.mjs";import"../index.mjs";import"@heroicons/react/24/outline/ChevronRightIcon";import"@heroicons/react/24/outline/DevicePhoneMobileIcon";import"@heroicons/react/24/outline/FingerPrintIcon";import"@heroicons/react/24/outline/MinusCircleIcon";import"@heroicons/react/24/outline/PhoneIcon";import"../../components/ui/chips/Chip.mjs";import"../../components/ui/animation/LoadingSkeleton.mjs";import"../LandingScreen/styles.mjs";import"@heroicons/react/24/outline/ArrowRightEndOnRectangleIcon";import"@heroicons/react/24/outline/CheckCircleIcon";import"@heroicons/react/24/outline/ClockIcon";import"../../svg/face-id.mjs";import"../../svg/fingerprint.mjs";import"../ErrorScreen.mjs";import"@heroicons/react/24/outline/ExclamationTriangleIcon";import"../../components/CircleBorder.mjs";import"../../components/layout/StackedContainer.mjs";import"../../embedded-wallets/errors.mjs";import"../../embedded-wallets/types.mjs";import"../../errors.mjs";import"ofetch";import"../../hooks/captcha-context.mjs";import"../../utils/index.mjs";import"../../connectors/get-legacy-injected-providers.mjs";import"../../connectors/is-wallet-installed.mjs";import"../../utils/eth/getPublicClient.mjs";import"viem";import"../../svg/lock-closed.mjs";import"../LinkPasskeyScreen.mjs";import"@heroicons/react/24/outline/TrashIcon";import"@heroicons/react/24/solid/LockClosedIcon";import"@privy-io/js-sdk-core";import"../../components/ConnectPhoneForm.mjs";import"../../recent-login/context.mjs";import"../../hooks/events-context.mjs";import"../../storage.mjs";import"../../components/PhoneCountryDropdown.mjs";import"../../components/PinInput.mjs";import"react-device-detect";import"../../components/CopyToClipboard.mjs";import"../../svg/checkmark.mjs";import"../../svg/copy.mjs";import"../../components/Layouts.mjs";import"../../svg/qr-codes.mjs";import"@heroicons/react/24/solid/ShieldCheckIcon";import"../../components/QrCode.mjs";import"qrcode";import"../../svg/black-rounded-square.mjs";import"../../svg/coinbase-wallet.mjs";const T=()=>{let{user:T,enrollInMfa:L}=f(),[B,W]=c(null),{unenrollWithSms:q,unenrollWithTotp:z,unenrollWithPasskey:D}=k(),{app:H,ready:O,data:Q,onUserCloseViaDialogOrKeybindRef:Y}=j(),{closePrivyModal:K}=u(),{promptMfa:N}=y(),{initEnrollmentWithTotp:U}=k(),[V,X]=c(!1),[G,J]=c(null),[Z,$]=c(null),_=()=>{K({shouldCallAuthOnSuccess:!0}),L(!1),setTimeout((()=>{W(null),J(null)}),500)},{initEnrollmentWithPasskey:oo,submitEnrollmentWithPasskey:eo}=k(),[no,to]=c(!1),[ro,io]=c(null);Y.current=_;let so=T?.mfaMethods.includes("sms"),co=!!T?.phone,mo=T?.mfaMethods.includes("totp"),ao=T?.mfaMethods.includes("passkey"),lo=so||mo||ao,po=T?.linkedAccounts.filter((o=>"passkey"===o.type)).map((o=>o.credentialId))??[];function ho(){W(null),J(null)}if(m((()=>{lo&&X(!0)}),[lo]),!O||!T||!H/*#__PURE__*/)return o(e,{children:[/*#__PURE__*/n(d,{onClose:_},"header"),/*#__PURE__*/n(b,{children:/*#__PURE__*/n(g,{})}),/*#__PURE__*/n(w,{children:/*#__PURE__*/n(p,{})}),/*#__PURE__*/n(h,{})]});if("sms"===B)/*#__PURE__*/return o(e,{children:[/*#__PURE__*/n(d,{backFn:ho,onClose:_},"header"),/*#__PURE__*/n(S,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/n(t,{})}),/*#__PURE__*/n(A,{children:"Remove SMS verification?"}),/*#__PURE__*/o(x,{children:["MFA adds an extra layer of security to your ",H?.name," account. Make sure you have other methods to secure your account."]}),/*#__PURE__*/n(P,{children:/*#__PURE__*/n(a,{warn:!0,onClick:async function(){W(null);try{await q()}catch(o){W(null)}},children:"Remove SMS for MFA"})}),/*#__PURE__*/n(h,{})]});if("totp"===B)/*#__PURE__*/return o(e,{children:[/*#__PURE__*/n(d,{backFn:ho,onClose:_},"header"),/*#__PURE__*/n(S,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/n(t,{})}),/*#__PURE__*/n(A,{children:"Remove Authenticator App verification?"}),/*#__PURE__*/o(x,{children:["MFA adds an extra layer of security to your ",H?.name," account. Make sure you have other methods to secure your account."]}),/*#__PURE__*/n(P,{children:/*#__PURE__*/n(a,{warn:!0,onClick:async function(){W(null);try{await z()}catch(o){W(null)}},children:"Remove Authenticator App for MFA"})}),/*#__PURE__*/n(h,{})]});if("passkey"===B)/*#__PURE__*/return o(e,{children:[/*#__PURE__*/n(d,{backFn:ho,onClose:_},"header"),/*#__PURE__*/n(S,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/n(t,{})}),/*#__PURE__*/n(A,{children:"Are you sure you want to remove passkey verification?"}),/*#__PURE__*/n(x,{children:"Removing your passkey will remove as both a verification method and a login method."}),/*#__PURE__*/n(P,{children:/*#__PURE__*/n(a,{warn:!0,onClick:async function(){W(null);try{await D()}catch(o){W(null)}},children:"Yes, remove"})}),/*#__PURE__*/n(h,{})]});if(0===Q.mfaEnrollmentFlow.mfaMethods.length&&!lo)/*#__PURE__*/return o(e,{children:[/*#__PURE__*/n(d,{onClose:_},"header"),/*#__PURE__*/n(S,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/n(r,{})}),/*#__PURE__*/n(A,{children:"Add more security"}),/*#__PURE__*/o(x,{children:[H?.name," does not have any verification methods enabled."]}),/*#__PURE__*/n(P,{children:/*#__PURE__*/n(a,{onClick:_,children:"Close"})}),/*#__PURE__*/n(h,{})]});let uo=!lo&&!V;return uo?/*#__PURE__*/o(e,{children:[/*#__PURE__*/n(d,{onClose:_},"header"),/*#__PURE__*/n(S,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/n(r,{})}),/*#__PURE__*/n(A,{children:"Transaction Protection"}),/*#__PURE__*/n(x,{children:"Set up transaction protection to add an extra layer of security to your account"}),/*#__PURE__*/o(R,{children:[/*#__PURE__*/o(E,{children:[/*#__PURE__*/n(F,{children:/*#__PURE__*/n(i,{})}),"Enable 2-Step verification for your ",H?.name," wallet."]}),/*#__PURE__*/o(E,{children:[/*#__PURE__*/n(F,{children:/*#__PURE__*/n(s,{})}),"You'll be prompted to authenticate to complete transactions."]})]}),/*#__PURE__*/o(P,{children:[/*#__PURE__*/n(a,{onClick:()=>X(!0),children:"Continue"}),/*#__PURE__*/n(l,{onClick:_,children:"Not now"})]}),/*#__PURE__*/n(h,{})]}):"sms"===G?/*#__PURE__*/n(M,{onComplete:_,onReset:ho,onClose:_}):"totp"===G&&Z?/*#__PURE__*/n(I,{onComplete:_,onClose:_,onReset:ho,totpInfo:Z}):"passkey"===G?/*#__PURE__*/n(v,{onComplete:_,onReset:ho,onClose:_}):/*#__PURE__*/n(C,{showIntro:uo,userMfaMethods:T.mfaMethods,appMfaMethods:H.mfa.methods,userHasAuthSms:co,onBackToIntro:function(){X(!1)},handleSelectMethod:async function(o){return await N().catch(io),"totp"===o?(J(o),$(null),void U().then((o=>{$(o)})).catch((()=>{$(null),ho()}))):"passkey"===o&&1===po.length?await async function(){to(!0);try{await oo(),await eo({credentialIds:po})}catch(o){io(o)}finally{to(!1)}}():void J(o)},isTotpLoading:"totp"===G&&!Z,isPasskeyLoading:no,error:ro,onClose:_,setRemovingMfaMethod:async o=>{await N().catch(io),W(o)}})};export{T as MfaEnrollmentFlowScreen};
1
+ import{jsxs as o,Fragment as e,jsx as n}from"react/jsx-runtime";import t from"@heroicons/react/24/outline/QuestionMarkCircleIcon";import r from"@heroicons/react/24/outline/ShieldCheckIcon";import i from"@heroicons/react/24/solid/CheckBadgeIcon";import s from"@heroicons/react/24/solid/IdentificationIcon";import{useState as c,useEffect as m}from"react";import{PrimaryButton as a,SecondaryButton as l}from"../../components/Button.mjs";import{Loader as p}from"../../components/Loader.mjs";import{ModalFooter as h}from"../../components/ModalFooter.mjs";import{ModalHeader as d}from"../../components/ModalHeader.mjs";import{usePrivyInternal as u}from"../../hooks/internal-context.mjs";import{usePrivyModal as j}from"../../hooks/modal-context.mjs";import{usePrivyContext as f}from"../../hooks/privy-context.mjs";import{useMfa as y}from"../../hooks/useMfa.mjs";import{useMfaEnrollment as k}from"../../hooks/useMfaEnrollment.mjs";import{MfaShieldIcon as g}from"../../svg/mfa-shield.mjs";import{EnrollLandingScreen as v}from"./EnrollLandingScreen.mjs";import{EnrollPasskey as C}from"./EnrollPasskey.mjs";import{EnrollSms as M}from"./EnrollSms.mjs";import{EnrollTotp as w}from"./EnrollTotp.mjs";import{AppLogoContainer as I,Container as b,IconWrapper as S,Title as A,SubTitle as x,BottomSection as F,List as E,ListItem as P,ListItemIcon as R}from"./StyledComponents.mjs";import"styled-components";import"../../configuration/context.mjs";import"../../config.mjs";import"../../configuration/defaultClientConfig.mjs";import"../../constants.mjs";import"../../configuration/login-methods.mjs";import"../../configuration/wallets.mjs";import"../../connectors/chains/index.mjs";import"../../connectors/chains/arbitrum.mjs";import"../../connectors/chains/arbitrumSepolia.mjs";import"../../connectors/chains/avalanche.mjs";import"../../connectors/chains/avalancheFuji.mjs";import"../../connectors/chains/base.mjs";import"../../connectors/chains/baseSepolia.mjs";import"../../connectors/chains/berachainArtio.mjs";import"../../connectors/chains/celo.mjs";import"../../connectors/chains/celoAlfajores.mjs";import"../../connectors/chains/filecoin.mjs";import"../../connectors/chains/filecoinCalibration.mjs";import"../../connectors/chains/garnetHolesky.mjs";import"../../connectors/chains/holesky.mjs";import"../../connectors/chains/linea.mjs";import"../../connectors/chains/lineaTestnet.mjs";import"../../connectors/chains/lukso.mjs";import"../../connectors/chains/mainnet.mjs";import"../../connectors/chains/optimism.mjs";import"../../connectors/chains/optimismSepolia.mjs";import"../../connectors/chains/polygon.mjs";import"../../connectors/chains/polygonAmoy.mjs";import"../../connectors/chains/redstone.mjs";import"../../connectors/chains/sepolia.mjs";import"../../connectors/chains/zora.mjs";import"../../connectors/chains/zoraSepolia.mjs";import"../../connectors/chains/zoraTestnet.mjs";import"../../connectors/chains/utils.mjs";import"../../lib/solana/index.mjs";import"../../theme.mjs";import"tinycolor2";import"../../lib/cybr53.mjs";import"../../svg/protected-by-privy.mjs";import"@heroicons/react/24/outline/ArrowLeftIcon";import"@heroicons/react/24/outline/ArrowRightIcon";import"@heroicons/react/24/outline/XMarkIcon";import"../../hooks/index.mjs";import"../../components/PrefetchedImage.mjs";import"../index.mjs";import"@heroicons/react/24/outline/ChevronRightIcon";import"@heroicons/react/24/outline/DevicePhoneMobileIcon";import"@heroicons/react/24/outline/FingerPrintIcon";import"@heroicons/react/24/outline/MinusCircleIcon";import"@heroicons/react/24/outline/PhoneIcon";import"../../components/ui/chips/Chip.mjs";import"../../components/ui/animation/LoadingSkeleton.mjs";import"../LandingScreen/styles.mjs";import"@heroicons/react/24/outline/ArrowRightEndOnRectangleIcon";import"@heroicons/react/24/outline/CheckCircleIcon";import"@heroicons/react/24/outline/ClockIcon";import"../../svg/face-id.mjs";import"../../svg/fingerprint.mjs";import"../ErrorScreen.mjs";import"@heroicons/react/24/outline/ExclamationTriangleIcon";import"../../components/CircleBorder.mjs";import"../../components/layout/StackedContainer.mjs";import"../../embedded-wallets/errors.mjs";import"../../embedded-wallets/types.mjs";import"../../errors.mjs";import"ofetch";import"../../hooks/captcha-context.mjs";import"../../utils/index.mjs";import"../../connectors/get-legacy-injected-providers.mjs";import"../../connectors/is-wallet-installed.mjs";import"../../utils/eth/getPublicClient.mjs";import"viem";import"../../svg/lock-closed.mjs";import"../LinkPasskeyScreen.mjs";import"@heroicons/react/24/outline/TrashIcon";import"@heroicons/react/24/solid/LockClosedIcon";import"@privy-io/js-sdk-core";import"../../components/ConnectPhoneForm.mjs";import"../../recent-login/context.mjs";import"../../hooks/events-context.mjs";import"../../storage.mjs";import"../../components/PhoneCountryDropdown.mjs";import"../../components/PinInput.mjs";import"react-device-detect";import"../../components/CopyToClipboard.mjs";import"../../svg/checkmark.mjs";import"../../svg/copy.mjs";import"../../components/Layouts.mjs";import"../../svg/qr-codes.mjs";import"@heroicons/react/24/solid/ShieldCheckIcon";import"../../components/QrCode.mjs";import"qrcode";import"../../svg/black-rounded-square.mjs";import"../../svg/coinbase-wallet.mjs";const L=()=>{let{user:L,enrollInMfa:T}=f(),[B,U]=c(null),{unenrollWithSms:O,unenrollWithTotp:W,unenrollWithPasskey:q}=k(),{app:z,ready:D,data:H,onUserCloseViaDialogOrKeybindRef:Q}=j(),{closePrivyModal:Y}=u(),{promptMfa:K}=y(),{initEnrollmentWithTotp:N}=k(),[V,X]=c(!1),[G,J]=c(null),[Z,$]=c(null),_=()=>{Y({shouldCallAuthOnSuccess:!0}),T(!1),setTimeout((()=>{U(null),J(null)}),500)},{initEnrollmentWithPasskey:oo,submitEnrollmentWithPasskey:eo}=k(),[no,to]=c(!1),[ro,io]=c(null);Q.current=_;let so=L?.mfaMethods.includes("sms"),co=!!L?.phone,mo=L?.mfaMethods.includes("totp"),ao=L?.mfaMethods.includes("passkey"),lo=so||mo||ao,po=L?.linkedAccounts.filter((o=>"passkey"===o.type)).map((o=>o.credentialId))??[];function ho(){U(null),J(null)}if(m((()=>{lo&&X(!0)}),[lo]),!D||!L||!z/*#__PURE__*/)return o(e,{children:[/*#__PURE__*/n(d,{onClose:_},"header"),/*#__PURE__*/n(I,{children:/*#__PURE__*/n(g,{})}),/*#__PURE__*/n(b,{children:/*#__PURE__*/n(p,{})}),/*#__PURE__*/n(h,{})]});if("sms"===B)/*#__PURE__*/return o(e,{children:[/*#__PURE__*/n(d,{backFn:ho,onClose:_},"header"),/*#__PURE__*/n(S,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/n(t,{})}),/*#__PURE__*/n(A,{children:"Remove SMS verification?"}),/*#__PURE__*/o(x,{children:["MFA adds an extra layer of security to your ",z?.name," account. Make sure you have other methods to secure your account."]}),/*#__PURE__*/n(F,{children:/*#__PURE__*/n(a,{warn:!0,onClick:async function(){U(null);try{await O()}catch(o){U(null)}},children:"Remove SMS for MFA"})}),/*#__PURE__*/n(h,{})]});if("totp"===B)/*#__PURE__*/return o(e,{children:[/*#__PURE__*/n(d,{backFn:ho,onClose:_},"header"),/*#__PURE__*/n(S,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/n(t,{})}),/*#__PURE__*/n(A,{children:"Remove Authenticator App verification?"}),/*#__PURE__*/o(x,{children:["MFA adds an extra layer of security to your ",z?.name," account. Make sure you have other methods to secure your account."]}),/*#__PURE__*/n(F,{children:/*#__PURE__*/n(a,{warn:!0,onClick:async function(){U(null);try{await W()}catch(o){U(null)}},children:"Remove Authenticator App for MFA"})}),/*#__PURE__*/n(h,{})]});if("passkey"===B){let r=H?.mfaEnrollmentFlow?.shouldUnlinkOnUnenrollMfa??!0;/*#__PURE__*/return o(e,{children:[/*#__PURE__*/n(d,{backFn:ho,onClose:_},"header"),/*#__PURE__*/n(S,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/n(t,{})}),/*#__PURE__*/n(A,{children:"Are you sure you want to remove this passkey?"}),/*#__PURE__*/n(x,{children:r?"Removing your passkey will remove as both a verification method and a login method.":"Removing your passkey will remove as a verification method."}),/*#__PURE__*/n(F,{children:/*#__PURE__*/n(a,{warn:!0,onClick:async function(){U(null);try{await q({removeForLogin:H?.mfaEnrollmentFlow?.shouldUnlinkOnUnenrollMfa})}catch(o){U(null)}},children:"Yes, remove"})}),/*#__PURE__*/n(h,{})]})}if(0===H.mfaEnrollmentFlow.mfaMethods.length&&!lo)/*#__PURE__*/return o(e,{children:[/*#__PURE__*/n(d,{onClose:_},"header"),/*#__PURE__*/n(S,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/n(r,{})}),/*#__PURE__*/n(A,{children:"Add more security"}),/*#__PURE__*/o(x,{children:[z?.name," does not have any verification methods enabled."]}),/*#__PURE__*/n(F,{children:/*#__PURE__*/n(a,{onClick:_,children:"Close"})}),/*#__PURE__*/n(h,{})]});let uo=!lo&&!V;return uo?/*#__PURE__*/o(e,{children:[/*#__PURE__*/n(d,{onClose:_},"header"),/*#__PURE__*/n(S,{style:{marginBottom:"1.5rem"},children:/*#__PURE__*/n(r,{})}),/*#__PURE__*/n(A,{children:"Transaction Protection"}),/*#__PURE__*/n(x,{children:"Set up transaction protection to add an extra layer of security to your account"}),/*#__PURE__*/o(E,{children:[/*#__PURE__*/o(P,{children:[/*#__PURE__*/n(R,{children:/*#__PURE__*/n(i,{})}),"Enable 2-Step verification for your ",z?.name," wallet."]}),/*#__PURE__*/o(P,{children:[/*#__PURE__*/n(R,{children:/*#__PURE__*/n(s,{})}),"You'll be prompted to authenticate to complete transactions."]})]}),/*#__PURE__*/o(F,{children:[/*#__PURE__*/n(a,{onClick:()=>X(!0),children:"Continue"}),/*#__PURE__*/n(l,{onClick:_,children:"Not now"})]}),/*#__PURE__*/n(h,{})]}):"sms"===G?/*#__PURE__*/n(M,{onComplete:_,onReset:ho,onClose:_}):"totp"===G&&Z?/*#__PURE__*/n(w,{onComplete:_,onClose:_,onReset:ho,totpInfo:Z}):"passkey"===G?/*#__PURE__*/n(C,{onComplete:_,onReset:ho,onClose:_}):/*#__PURE__*/n(v,{showIntro:uo,userMfaMethods:L.mfaMethods,appMfaMethods:z.mfa.methods,userHasAuthSms:co,onBackToIntro:function(){X(!1)},handleSelectMethod:async function(o){return await K().catch(io),"totp"===o?(J(o),$(null),void N().then((o=>{$(o)})).catch((()=>{$(null),ho()}))):"passkey"===o&&1===po.length?await async function(){to(!0);try{await oo(),await eo({credentialIds:po},{removeForLogin:H?.mfaEnrollmentFlow?.shouldUnlinkOnUnenrollMfa})}catch(o){io(o)}finally{to(!1)}}():void J(o)},isTotpLoading:"totp"===G&&!Z,isPasskeyLoading:no,error:ro,onClose:_,setRemovingMfaMethod:async o=>{await K().catch(io),U(o)}})};export{L as MfaEnrollmentFlowScreen};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@privy-io/react-auth",
3
- "version": "2.0.5",
3
+ "version": "2.0.6",
4
4
  "description": "React client for the Privy Auth API",
5
5
  "keywords": [
6
6
  "authentication",
@@ -133,7 +133,7 @@
133
133
  "@heroicons/react": "^2.1.1",
134
134
  "@marsidev/react-turnstile": "^0.4.1",
135
135
  "@metamask/eth-sig-util": "^6.0.0",
136
- "@privy-io/js-sdk-core": "0.41.0",
136
+ "@privy-io/js-sdk-core": "0.41.1",
137
137
  "@simplewebauthn/browser": "^9.0.1",
138
138
  "@solana/wallet-adapter-base": "^0.9.23",
139
139
  "@solana/wallet-standard-wallet-adapter-base": "^1.1.2",
@@ -172,7 +172,7 @@
172
172
  "@jest/globals": "^29.7.0",
173
173
  "@privy-io/build-config": "*",
174
174
  "@privy-io/eslint-config-custom": "*",
175
- "@privy-io/public-api": "2.18.1",
175
+ "@privy-io/public-api": "2.18.2",
176
176
  "@privy-io/testing": "*",
177
177
  "@rollup/plugin-commonjs": "^26.0.1",
178
178
  "@rollup/plugin-node-resolve": "^15.3.0",