@nexus-cross/dapp-ui 1.0.0-beta.1 → 1.0.1-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -109,6 +109,22 @@ interface TokenStatsResponse {
109
109
  data: TokenStats[];
110
110
  }
111
111
 
112
+ /**
113
+ * 포트폴리오 내부에서 트랜잭션을 실제로 서명/브로드캐스트할 때 호출하는 콜백.
114
+ *
115
+ * 주입되는 지갑 스택(wagmi, viem, 자체 SDK 등)에 관계없이 동일한 계약으로
116
+ * 동작시키기 위한 최소 공통 시그니처다. wagmi의 `sendTransactionAsync`를
117
+ * 그대로 전달해도 호환된다.
118
+ */
119
+ interface SendTransactionArgs {
120
+ to: `0x${string}`;
121
+ value?: bigint;
122
+ data?: `0x${string}`;
123
+ chainId?: number;
124
+ gas?: bigint;
125
+ }
126
+ type SendTransactionFn = (args: SendTransactionArgs) => Promise<`0x${string}`>;
127
+
112
128
  interface WalletInfoTriggerProps {
113
129
  asChild?: boolean;
114
130
  className?: string;
@@ -183,10 +199,17 @@ interface WalletInfoProps {
183
199
  showTotalAssets?: boolean;
184
200
  /** Total Assets 라벨 텍스트 (기본 "Total Assets USD"). */
185
201
  totalAssetsLabel?: string;
202
+ /**
203
+ * 외부(dApp)에서 주입하는 트랜잭션 전송 함수.
204
+ * `showPortfolio=true`일 때 내부 `WalletPortfolioBody`로 그대로 전달되어
205
+ * 포트폴리오 섹션에서 토큰 전송 액션을 실행할 때 호출된다.
206
+ * wagmi의 `sendTransactionAsync`를 그대로 전달해도 호환된다.
207
+ */
208
+ sendTransaction?: SendTransactionFn;
186
209
  style?: WalletInfoStyle;
187
210
  children: React.ReactNode;
188
211
  }
189
- declare function WalletInfoRoot({ env, theme, mobileBreakpoint, drawerDirection, modal, showBalance, showForgeToken, showGameToken, showQR, qrLogoSrc, walletAddress, accountName, profileImageUrl, connectorId, connectorName: connectorNameProp, connectorIconUrl: connectorIconUrlProp, preferredTokens, onSelectWallet, onCopyAddress, onDisconnect, disconnectLabel, termsUrl, termsLabel, privacyUrl, privacyLabel, open: propOpen, onOpenChange, showPortfolio, portfolioTitle, showTotalAssets, totalAssetsLabel, style, children, }: WalletInfoProps): react_jsx_runtime.JSX.Element;
212
+ declare function WalletInfoRoot({ env, theme, mobileBreakpoint, drawerDirection, modal, showBalance, showForgeToken, showGameToken, showQR, qrLogoSrc, walletAddress, accountName, profileImageUrl, connectorId, connectorName: connectorNameProp, connectorIconUrl: connectorIconUrlProp, preferredTokens, onSelectWallet, onCopyAddress, onDisconnect, disconnectLabel, termsUrl, termsLabel, privacyUrl, privacyLabel, open: propOpen, onOpenChange, showPortfolio, portfolioTitle, showTotalAssets, totalAssetsLabel, sendTransaction, style, children, }: WalletInfoProps): react_jsx_runtime.JSX.Element;
190
213
  declare const WalletInfo: typeof WalletInfoRoot & {
191
214
  Trigger: typeof WalletInfoTrigger;
192
215
  Content: typeof WalletInfoContent;
@@ -383,9 +406,16 @@ interface WalletPortfolioProps {
383
406
  walletAddress: string;
384
407
  open?: boolean;
385
408
  onOpenChange?: (open: boolean) => void;
409
+ /**
410
+ * 외부(dApp)에서 주입하는 트랜잭션 전송 함수.
411
+ * 포트폴리오 내부에서 구성한 트랜잭션 페이로드를 실제 서명/브로드캐스트할 때
412
+ * 이 함수가 호출된다. 연결된 지갑 스택(wagmi, viem, 자체 SDK 등)에
413
+ * 종속되지 않도록 외부에서 주입한다.
414
+ */
415
+ sendTransaction?: SendTransactionFn;
386
416
  children: React.ReactNode;
387
417
  }
388
- declare function WalletPortfolioRoot({ env, theme, walletAddress, open: propOpen, onOpenChange, children, }: WalletPortfolioProps): react_jsx_runtime.JSX.Element;
418
+ declare function WalletPortfolioRoot({ env, theme, walletAddress, open: propOpen, onOpenChange, sendTransaction, children, }: WalletPortfolioProps): react_jsx_runtime.JSX.Element;
389
419
  declare const WalletPortfolio: typeof WalletPortfolioRoot & {
390
420
  Trigger: typeof WalletPortfolioTrigger;
391
421
  Content: typeof WalletPortfolioContent;
@@ -407,8 +437,14 @@ interface WalletPortfolioBodyProps {
407
437
  */
408
438
  variant?: "fullscreen" | "embed" | "none";
409
439
  className?: string;
440
+ /**
441
+ * 외부(dApp)에서 주입하는 트랜잭션 전송 함수.
442
+ * `WalletPortfolio` 루트에서 사용할 때는 루트의 prop을 통해 자동으로 전달되며,
443
+ * `WalletPortfolioBody`를 단독 embed로 사용하는 경우 직접 전달해야 한다.
444
+ */
445
+ sendTransaction?: SendTransactionFn;
410
446
  }
411
- declare function WalletPortfolioBody({ env, theme, walletAddress, onBack, showHeader, variant, className, }: WalletPortfolioBodyProps): react_jsx_runtime.JSX.Element;
447
+ declare function WalletPortfolioBody({ env, theme, walletAddress, onBack, showHeader, variant, className, sendTransaction, }: WalletPortfolioBodyProps): react_jsx_runtime.JSX.Element;
412
448
 
413
449
  declare function CROSSxIcon(): react_jsx_runtime.JSX.Element;
414
450
  declare function MetaMaskIcon(): react_jsx_runtime.JSX.Element;
@@ -534,4 +570,105 @@ interface WalletDetectResult {
534
570
  }
535
571
  declare function useWalletDetect(): WalletDetectResult;
536
572
 
537
- export { AppLauncher, AppLauncherContent, type AppLauncherContentProps, type AppLauncherProps, AppLauncherTrigger, type AppLauncherTriggerProps, CONNECTOR_REGISTRY, type ChainId, ConnectorId, type ConnectorMeta, type DrawerDirection$1 as DrawerDirection, type Environment, type GlobalMenu, type GlobalMenuItem, type GlobalMenuItemUrl, type PreferredToken, TOKEN_STATS_QUERY_KEY, type Theme, type TokenBalance, type TokenBalanceResponse, type TokenStats, type TokenStatsResponse, USER_BALANCE_QUERY_KEY, WALLET_REGISTRY, type WalletConfig, WalletConnectModal, type WalletConnectModalContentProps, type WalletConnectModalProps, type WalletConnectModalStyle, type WalletConnectModalTriggerProps, type WalletHandlers, type WalletId, WalletInfo, type WalletInfoContentProps, type WalletInfoFooterProps, type WalletInfoNavProps, type WalletInfoProps, type WalletInfoStyle, type WalletInfoTriggerProps, WalletPortfolio, WalletPortfolioBody, type WalletPortfolioBodyProps, type WalletPortfolioContentProps, type WalletPortfolioProps, type WalletPortfolioTriggerProps, useGlobalMenu, useTokenBalance, useTokenStats, useWalletDetect };
573
+ /**
574
+ * Resolved wallet provider — determines which icon + display name appears
575
+ * in the connected pill.
576
+ *
577
+ * - `google` / `apple`: crossy-sdk 2.0 OAuth login types (embedded wallet)
578
+ * - `cross`: generic CROSSx mark (covers CROSSx 1.0 extension/app + 2.0
579
+ * embedded when no OAuth provider is attached)
580
+ * - `metamask` / `binance`: external wallets
581
+ */
582
+ type WalletProvider = "google" | "apple" | "cross" | "metamask" | "binance";
583
+ interface ConnectButtonProps {
584
+ /** 사용자가 Connect 버튼을 눌러 연결이 진행 중. 스피너 버튼으로 전환된다. */
585
+ isConnecting?: boolean;
586
+ /**
587
+ * 0x… 지갑 주소. 지정되면 connected pill로 렌더링된다. 없으면
588
+ * disconnected 버튼("Connect Wallet")으로 떨어진다.
589
+ */
590
+ address?: string;
591
+ /**
592
+ * 트리거 pill에 표시될 provider 아이콘 키.
593
+ *
594
+ * `address`가 있는데 `provider`가 `undefined`면 SDK 조회 중인 전이
595
+ * 상태로 취급해 placeholder 원을 띄운다(`pending` 플래시 방지).
596
+ */
597
+ provider?: WalletProvider;
598
+ /**
599
+ * 트리거 버튼 aria-label에 포함될 provider 표시 이름. 미지정 시
600
+ * `provider`로부터 기본값이 유추된다 (예: 'Google', 'CROSSx').
601
+ */
602
+ providerName?: string;
603
+ /** WalletInfo 헤더에 노출될 계정 라벨 (예: "Account 1", 사용자 지정 이름). */
604
+ accountName?: string;
605
+ /** disconnected 상태에서 버튼 클릭 핸들러. */
606
+ onConnect?: () => void;
607
+ /** connected 상태에서 WalletInfo 하단 Disconnect 클릭 핸들러. */
608
+ onDisconnect?: () => void;
609
+ /**
610
+ * 주소 복사 성공 콜백. WalletInfo의 `onCopyAddress(address, success)` 에서
611
+ * `success === true`일 때만 호출된다.
612
+ */
613
+ onCopy?: () => void;
614
+ /** 지갑 변경 chevron 클릭 핸들러. 지정하지 않으면 chevron이 숨김 처리된다. */
615
+ onSelectWallet?: () => void;
616
+ /** disconnected 버튼 라벨. 기본 'Connect Wallet'. */
617
+ label?: string;
618
+ /** isConnecting 상태 라벨. 기본 'Connecting...'. */
619
+ connectingLabel?: string;
620
+ /** WalletInfo 내장 Disconnect 버튼 라벨. 기본 'Disconnect'. */
621
+ disconnectLabel?: string;
622
+ /**
623
+ * 외부(호출부)에서 주입하는 className. disconnected / connecting /
624
+ * connected(트리거 pill)에 공통으로 적용된다. 지정하면 기본 inline
625
+ * 스타일이 비활성화되어 Tailwind 등 외부 스타일 시스템으로 완전히
626
+ * 오버라이드할 수 있다.
627
+ */
628
+ className?: string;
629
+ theme?: Theme;
630
+ env?: Environment;
631
+ showBalance?: boolean;
632
+ showPortfolio?: boolean;
633
+ drawerDirection?: DrawerDirection$1;
634
+ modal?: boolean;
635
+ connectorId?: ConnectorId;
636
+ style?: WalletInfoStyle;
637
+ sendTransaction?: SendTransactionFn;
638
+ }
639
+
640
+ /**
641
+ * 3-state wallet connect button. Caller drives the visual state:
642
+ *
643
+ * - `isConnecting === true` → 스피너 disabled 버튼
644
+ * - `address` 있음 → WalletInfo + connected pill
645
+ * - `address`가 있는데 `provider` 없음 → SDK 조회 전이 상태, placeholder 원
646
+ * - 둘 다 없음 → "Connect Wallet" 버튼
647
+ *
648
+ * view-only: wagmi / connect-kit 같은 web3 의존성은 갖지 않으며 모든
649
+ * 상태/데이터/콜백은 props로 주입받는다. 실제 wagmi 연결 로직은
650
+ * `@nexus-cross/connect-kit-react`의 상위 래퍼에서 수행한다.
651
+ */
652
+ declare function ConnectButton({ isConnecting, address, provider, providerName, accountName, onConnect, onDisconnect, onCopy, onSelectWallet, label, connectingLabel, disconnectLabel, className, theme, env, showBalance, showPortfolio, drawerDirection, modal, connectorId, style, sendTransaction, }: ConnectButtonProps): react_jsx_runtime.JSX.Element;
653
+
654
+ /**
655
+ * Wallet provider icons used by `ConnectButton`. Ported from
656
+ * `@nexus-cross/connect-kit-wagmi` so dapp-ui stays a self-contained,
657
+ * bundler-agnostic module (no SVG loader required) and doesn't pull in a
658
+ * web3 dependency for icon assets.
659
+ *
660
+ * Each icon is an inline `data:image/svg+xml` URI so it can be consumed
661
+ * directly by `<img src={...}>`.
662
+ *
663
+ * Source references mirror the ones in `connect-kit-wagmi/src/wallets/icons.ts`:
664
+ * wallet-crossx.svg → CROSSX_ICON (cross / cross-extension / cross-embedded fallback)
665
+ * wallet-metamask.svg → METAMASK_ICON
666
+ * wallet-binance.svg → BINANCE_ICON
667
+ */
668
+ declare const CROSSX_ICON: string;
669
+ declare const METAMASK_ICON: string;
670
+ declare const BINANCE_ICON: string;
671
+ declare const GOOGLE_ICON: string;
672
+ declare const APPLE_ICON: string;
673
+
674
+ export { APPLE_ICON, AppLauncher, AppLauncherContent, type AppLauncherContentProps, type AppLauncherProps, AppLauncherTrigger, type AppLauncherTriggerProps, BINANCE_ICON, CONNECTOR_REGISTRY, CROSSX_ICON, type ChainId, ConnectButton, type ConnectButtonProps, ConnectorId, type ConnectorMeta, type DrawerDirection$1 as DrawerDirection, type Environment, GOOGLE_ICON, type GlobalMenu, type GlobalMenuItem, type GlobalMenuItemUrl, METAMASK_ICON, type PreferredToken, type SendTransactionArgs, type SendTransactionFn, TOKEN_STATS_QUERY_KEY, type Theme, type TokenBalance, type TokenBalanceResponse, type TokenStats, type TokenStatsResponse, USER_BALANCE_QUERY_KEY, WALLET_REGISTRY, type WalletConfig, WalletConnectModal, type WalletConnectModalContentProps, type WalletConnectModalProps, type WalletConnectModalStyle, type WalletConnectModalTriggerProps, type WalletHandlers, type WalletId, WalletInfo, type WalletInfoContentProps, type WalletInfoFooterProps, type WalletInfoNavProps, type WalletInfoProps, type WalletInfoStyle, type WalletInfoTriggerProps, WalletPortfolio, WalletPortfolioBody, type WalletPortfolioBodyProps, type WalletPortfolioContentProps, type WalletPortfolioProps, type WalletPortfolioTriggerProps, type WalletProvider, useGlobalMenu, useTokenBalance, useTokenStats, useWalletDetect };
package/dist/index.d.ts CHANGED
@@ -109,6 +109,22 @@ interface TokenStatsResponse {
109
109
  data: TokenStats[];
110
110
  }
111
111
 
112
+ /**
113
+ * 포트폴리오 내부에서 트랜잭션을 실제로 서명/브로드캐스트할 때 호출하는 콜백.
114
+ *
115
+ * 주입되는 지갑 스택(wagmi, viem, 자체 SDK 등)에 관계없이 동일한 계약으로
116
+ * 동작시키기 위한 최소 공통 시그니처다. wagmi의 `sendTransactionAsync`를
117
+ * 그대로 전달해도 호환된다.
118
+ */
119
+ interface SendTransactionArgs {
120
+ to: `0x${string}`;
121
+ value?: bigint;
122
+ data?: `0x${string}`;
123
+ chainId?: number;
124
+ gas?: bigint;
125
+ }
126
+ type SendTransactionFn = (args: SendTransactionArgs) => Promise<`0x${string}`>;
127
+
112
128
  interface WalletInfoTriggerProps {
113
129
  asChild?: boolean;
114
130
  className?: string;
@@ -183,10 +199,17 @@ interface WalletInfoProps {
183
199
  showTotalAssets?: boolean;
184
200
  /** Total Assets 라벨 텍스트 (기본 "Total Assets USD"). */
185
201
  totalAssetsLabel?: string;
202
+ /**
203
+ * 외부(dApp)에서 주입하는 트랜잭션 전송 함수.
204
+ * `showPortfolio=true`일 때 내부 `WalletPortfolioBody`로 그대로 전달되어
205
+ * 포트폴리오 섹션에서 토큰 전송 액션을 실행할 때 호출된다.
206
+ * wagmi의 `sendTransactionAsync`를 그대로 전달해도 호환된다.
207
+ */
208
+ sendTransaction?: SendTransactionFn;
186
209
  style?: WalletInfoStyle;
187
210
  children: React.ReactNode;
188
211
  }
189
- declare function WalletInfoRoot({ env, theme, mobileBreakpoint, drawerDirection, modal, showBalance, showForgeToken, showGameToken, showQR, qrLogoSrc, walletAddress, accountName, profileImageUrl, connectorId, connectorName: connectorNameProp, connectorIconUrl: connectorIconUrlProp, preferredTokens, onSelectWallet, onCopyAddress, onDisconnect, disconnectLabel, termsUrl, termsLabel, privacyUrl, privacyLabel, open: propOpen, onOpenChange, showPortfolio, portfolioTitle, showTotalAssets, totalAssetsLabel, style, children, }: WalletInfoProps): react_jsx_runtime.JSX.Element;
212
+ declare function WalletInfoRoot({ env, theme, mobileBreakpoint, drawerDirection, modal, showBalance, showForgeToken, showGameToken, showQR, qrLogoSrc, walletAddress, accountName, profileImageUrl, connectorId, connectorName: connectorNameProp, connectorIconUrl: connectorIconUrlProp, preferredTokens, onSelectWallet, onCopyAddress, onDisconnect, disconnectLabel, termsUrl, termsLabel, privacyUrl, privacyLabel, open: propOpen, onOpenChange, showPortfolio, portfolioTitle, showTotalAssets, totalAssetsLabel, sendTransaction, style, children, }: WalletInfoProps): react_jsx_runtime.JSX.Element;
190
213
  declare const WalletInfo: typeof WalletInfoRoot & {
191
214
  Trigger: typeof WalletInfoTrigger;
192
215
  Content: typeof WalletInfoContent;
@@ -383,9 +406,16 @@ interface WalletPortfolioProps {
383
406
  walletAddress: string;
384
407
  open?: boolean;
385
408
  onOpenChange?: (open: boolean) => void;
409
+ /**
410
+ * 외부(dApp)에서 주입하는 트랜잭션 전송 함수.
411
+ * 포트폴리오 내부에서 구성한 트랜잭션 페이로드를 실제 서명/브로드캐스트할 때
412
+ * 이 함수가 호출된다. 연결된 지갑 스택(wagmi, viem, 자체 SDK 등)에
413
+ * 종속되지 않도록 외부에서 주입한다.
414
+ */
415
+ sendTransaction?: SendTransactionFn;
386
416
  children: React.ReactNode;
387
417
  }
388
- declare function WalletPortfolioRoot({ env, theme, walletAddress, open: propOpen, onOpenChange, children, }: WalletPortfolioProps): react_jsx_runtime.JSX.Element;
418
+ declare function WalletPortfolioRoot({ env, theme, walletAddress, open: propOpen, onOpenChange, sendTransaction, children, }: WalletPortfolioProps): react_jsx_runtime.JSX.Element;
389
419
  declare const WalletPortfolio: typeof WalletPortfolioRoot & {
390
420
  Trigger: typeof WalletPortfolioTrigger;
391
421
  Content: typeof WalletPortfolioContent;
@@ -407,8 +437,14 @@ interface WalletPortfolioBodyProps {
407
437
  */
408
438
  variant?: "fullscreen" | "embed" | "none";
409
439
  className?: string;
440
+ /**
441
+ * 외부(dApp)에서 주입하는 트랜잭션 전송 함수.
442
+ * `WalletPortfolio` 루트에서 사용할 때는 루트의 prop을 통해 자동으로 전달되며,
443
+ * `WalletPortfolioBody`를 단독 embed로 사용하는 경우 직접 전달해야 한다.
444
+ */
445
+ sendTransaction?: SendTransactionFn;
410
446
  }
411
- declare function WalletPortfolioBody({ env, theme, walletAddress, onBack, showHeader, variant, className, }: WalletPortfolioBodyProps): react_jsx_runtime.JSX.Element;
447
+ declare function WalletPortfolioBody({ env, theme, walletAddress, onBack, showHeader, variant, className, sendTransaction, }: WalletPortfolioBodyProps): react_jsx_runtime.JSX.Element;
412
448
 
413
449
  declare function CROSSxIcon(): react_jsx_runtime.JSX.Element;
414
450
  declare function MetaMaskIcon(): react_jsx_runtime.JSX.Element;
@@ -534,4 +570,105 @@ interface WalletDetectResult {
534
570
  }
535
571
  declare function useWalletDetect(): WalletDetectResult;
536
572
 
537
- export { AppLauncher, AppLauncherContent, type AppLauncherContentProps, type AppLauncherProps, AppLauncherTrigger, type AppLauncherTriggerProps, CONNECTOR_REGISTRY, type ChainId, ConnectorId, type ConnectorMeta, type DrawerDirection$1 as DrawerDirection, type Environment, type GlobalMenu, type GlobalMenuItem, type GlobalMenuItemUrl, type PreferredToken, TOKEN_STATS_QUERY_KEY, type Theme, type TokenBalance, type TokenBalanceResponse, type TokenStats, type TokenStatsResponse, USER_BALANCE_QUERY_KEY, WALLET_REGISTRY, type WalletConfig, WalletConnectModal, type WalletConnectModalContentProps, type WalletConnectModalProps, type WalletConnectModalStyle, type WalletConnectModalTriggerProps, type WalletHandlers, type WalletId, WalletInfo, type WalletInfoContentProps, type WalletInfoFooterProps, type WalletInfoNavProps, type WalletInfoProps, type WalletInfoStyle, type WalletInfoTriggerProps, WalletPortfolio, WalletPortfolioBody, type WalletPortfolioBodyProps, type WalletPortfolioContentProps, type WalletPortfolioProps, type WalletPortfolioTriggerProps, useGlobalMenu, useTokenBalance, useTokenStats, useWalletDetect };
573
+ /**
574
+ * Resolved wallet provider — determines which icon + display name appears
575
+ * in the connected pill.
576
+ *
577
+ * - `google` / `apple`: crossy-sdk 2.0 OAuth login types (embedded wallet)
578
+ * - `cross`: generic CROSSx mark (covers CROSSx 1.0 extension/app + 2.0
579
+ * embedded when no OAuth provider is attached)
580
+ * - `metamask` / `binance`: external wallets
581
+ */
582
+ type WalletProvider = "google" | "apple" | "cross" | "metamask" | "binance";
583
+ interface ConnectButtonProps {
584
+ /** 사용자가 Connect 버튼을 눌러 연결이 진행 중. 스피너 버튼으로 전환된다. */
585
+ isConnecting?: boolean;
586
+ /**
587
+ * 0x… 지갑 주소. 지정되면 connected pill로 렌더링된다. 없으면
588
+ * disconnected 버튼("Connect Wallet")으로 떨어진다.
589
+ */
590
+ address?: string;
591
+ /**
592
+ * 트리거 pill에 표시될 provider 아이콘 키.
593
+ *
594
+ * `address`가 있는데 `provider`가 `undefined`면 SDK 조회 중인 전이
595
+ * 상태로 취급해 placeholder 원을 띄운다(`pending` 플래시 방지).
596
+ */
597
+ provider?: WalletProvider;
598
+ /**
599
+ * 트리거 버튼 aria-label에 포함될 provider 표시 이름. 미지정 시
600
+ * `provider`로부터 기본값이 유추된다 (예: 'Google', 'CROSSx').
601
+ */
602
+ providerName?: string;
603
+ /** WalletInfo 헤더에 노출될 계정 라벨 (예: "Account 1", 사용자 지정 이름). */
604
+ accountName?: string;
605
+ /** disconnected 상태에서 버튼 클릭 핸들러. */
606
+ onConnect?: () => void;
607
+ /** connected 상태에서 WalletInfo 하단 Disconnect 클릭 핸들러. */
608
+ onDisconnect?: () => void;
609
+ /**
610
+ * 주소 복사 성공 콜백. WalletInfo의 `onCopyAddress(address, success)` 에서
611
+ * `success === true`일 때만 호출된다.
612
+ */
613
+ onCopy?: () => void;
614
+ /** 지갑 변경 chevron 클릭 핸들러. 지정하지 않으면 chevron이 숨김 처리된다. */
615
+ onSelectWallet?: () => void;
616
+ /** disconnected 버튼 라벨. 기본 'Connect Wallet'. */
617
+ label?: string;
618
+ /** isConnecting 상태 라벨. 기본 'Connecting...'. */
619
+ connectingLabel?: string;
620
+ /** WalletInfo 내장 Disconnect 버튼 라벨. 기본 'Disconnect'. */
621
+ disconnectLabel?: string;
622
+ /**
623
+ * 외부(호출부)에서 주입하는 className. disconnected / connecting /
624
+ * connected(트리거 pill)에 공통으로 적용된다. 지정하면 기본 inline
625
+ * 스타일이 비활성화되어 Tailwind 등 외부 스타일 시스템으로 완전히
626
+ * 오버라이드할 수 있다.
627
+ */
628
+ className?: string;
629
+ theme?: Theme;
630
+ env?: Environment;
631
+ showBalance?: boolean;
632
+ showPortfolio?: boolean;
633
+ drawerDirection?: DrawerDirection$1;
634
+ modal?: boolean;
635
+ connectorId?: ConnectorId;
636
+ style?: WalletInfoStyle;
637
+ sendTransaction?: SendTransactionFn;
638
+ }
639
+
640
+ /**
641
+ * 3-state wallet connect button. Caller drives the visual state:
642
+ *
643
+ * - `isConnecting === true` → 스피너 disabled 버튼
644
+ * - `address` 있음 → WalletInfo + connected pill
645
+ * - `address`가 있는데 `provider` 없음 → SDK 조회 전이 상태, placeholder 원
646
+ * - 둘 다 없음 → "Connect Wallet" 버튼
647
+ *
648
+ * view-only: wagmi / connect-kit 같은 web3 의존성은 갖지 않으며 모든
649
+ * 상태/데이터/콜백은 props로 주입받는다. 실제 wagmi 연결 로직은
650
+ * `@nexus-cross/connect-kit-react`의 상위 래퍼에서 수행한다.
651
+ */
652
+ declare function ConnectButton({ isConnecting, address, provider, providerName, accountName, onConnect, onDisconnect, onCopy, onSelectWallet, label, connectingLabel, disconnectLabel, className, theme, env, showBalance, showPortfolio, drawerDirection, modal, connectorId, style, sendTransaction, }: ConnectButtonProps): react_jsx_runtime.JSX.Element;
653
+
654
+ /**
655
+ * Wallet provider icons used by `ConnectButton`. Ported from
656
+ * `@nexus-cross/connect-kit-wagmi` so dapp-ui stays a self-contained,
657
+ * bundler-agnostic module (no SVG loader required) and doesn't pull in a
658
+ * web3 dependency for icon assets.
659
+ *
660
+ * Each icon is an inline `data:image/svg+xml` URI so it can be consumed
661
+ * directly by `<img src={...}>`.
662
+ *
663
+ * Source references mirror the ones in `connect-kit-wagmi/src/wallets/icons.ts`:
664
+ * wallet-crossx.svg → CROSSX_ICON (cross / cross-extension / cross-embedded fallback)
665
+ * wallet-metamask.svg → METAMASK_ICON
666
+ * wallet-binance.svg → BINANCE_ICON
667
+ */
668
+ declare const CROSSX_ICON: string;
669
+ declare const METAMASK_ICON: string;
670
+ declare const BINANCE_ICON: string;
671
+ declare const GOOGLE_ICON: string;
672
+ declare const APPLE_ICON: string;
673
+
674
+ export { APPLE_ICON, AppLauncher, AppLauncherContent, type AppLauncherContentProps, type AppLauncherProps, AppLauncherTrigger, type AppLauncherTriggerProps, BINANCE_ICON, CONNECTOR_REGISTRY, CROSSX_ICON, type ChainId, ConnectButton, type ConnectButtonProps, ConnectorId, type ConnectorMeta, type DrawerDirection$1 as DrawerDirection, type Environment, GOOGLE_ICON, type GlobalMenu, type GlobalMenuItem, type GlobalMenuItemUrl, METAMASK_ICON, type PreferredToken, type SendTransactionArgs, type SendTransactionFn, TOKEN_STATS_QUERY_KEY, type Theme, type TokenBalance, type TokenBalanceResponse, type TokenStats, type TokenStatsResponse, USER_BALANCE_QUERY_KEY, WALLET_REGISTRY, type WalletConfig, WalletConnectModal, type WalletConnectModalContentProps, type WalletConnectModalProps, type WalletConnectModalStyle, type WalletConnectModalTriggerProps, type WalletHandlers, type WalletId, WalletInfo, type WalletInfoContentProps, type WalletInfoFooterProps, type WalletInfoNavProps, type WalletInfoProps, type WalletInfoStyle, type WalletInfoTriggerProps, WalletPortfolio, WalletPortfolioBody, type WalletPortfolioBodyProps, type WalletPortfolioContentProps, type WalletPortfolioProps, type WalletPortfolioTriggerProps, type WalletProvider, useGlobalMenu, useTokenBalance, useTokenStats, useWalletDetect };