/** * Core types for UP Connector */ // Re-export AddressData from transaction-view-core if available export type AddressData = { address: string name?: string lsp4TokenName?: string lsp4TokenSymbol?: string baseAsset?: { lsp4TokenName?: string lsp4TokenSymbol?: string } profileImages?: any[] avatar?: any[] icon?: any[] images?: any[] __gqltype?: string __identity?: string identity?: string } /** * Avatar configuration options */ export interface AvatarOptions { // IconView integration options address?: string resolved?: AddressData size?: 'x-small' | 'small' | 'medium' | 'large' | 'auto' label?: string chainId?: number // Network to resolve address on (42 = mainnet, 4201 = testnet) forceUnresolved?: boolean // Fallback options (when not using IconView) fallbackColor?: string fallbackText?: string fallbackImage?: string // Avatar container options - aligned with IconView sizes avatarSize?: 'x-small' | 'small' | 'medium' | 'large' | 'x-large' | '2x-large' // Behavior options initialPosition?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' hideThreshold?: number hideOffset?: number // Animation options transitionDuration?: string transitionEasing?: string // Container container?: HTMLElement // Component loading componentLoader?: () => Promise // Callbacks onPositionChange?: (position: string) => void onHide?: () => void onShow?: () => void onClick?: ( event: MouseEvent, data: { address?: string; resolved?: AddressData } ) => void onAddressClick?: (event: CustomEvent) => void onTransactionStart?: () => void onTransactionComplete?: () => void } /** * Connection state */ export type ConnectionState = | 'disconnected' | 'connecting' | 'connected' | 'error' /** * Wallet provider information */ export interface WalletProvider { id: string name: string icon: string description?: string isInstalled: boolean isRecommended?: boolean downloadUrl?: string connect: () => Promise<{ address: string; provider: any }> } /** * Connection modal options * @deprecated Legacy modal options - no longer used by ConnectModal (Lit component) * The Lit-based ConnectModal is configured globally via setupConnectModal() * and controlled via the `open` property. These options are kept for * backwards compatibility but have no effect. */ export interface ModalOptions { // Appearance theme?: 'light' | 'dark' | 'auto' borderRadius?: number // Behavior closeOnBackdrop?: boolean closeOnEscape?: boolean showCloseButton?: boolean // Animation animationDuration?: number animationEasing?: string // Modal positioning (for animation from avatar) animateFrom?: { x: number y: number width: number height: number } // Wallet provider filtering providers?: string[] // Provider IDs to show hideProviders?: string[] // Provider IDs to hide // Callbacks onConnect?: (result: { address: string; provider: any }) => void onDisconnect?: () => void onClose?: () => void onProviderClick?: (provider: WalletProvider) => void } /** * UP Connector configuration */ export interface ConnectorConfig { // Avatar configuration avatar?: AvatarOptions // Modal configuration /** * @deprecated Legacy modal configuration - no longer used * Use setupConnectModal() globally to configure the Lit-based ConnectModal * @see setupConnectModal */ modal?: ModalOptions // Global settings autoConnect?: boolean persistConnection?: boolean storageKey?: string // Network settings chainId?: number rpcUrl?: string // Callbacks onConnectionChange?: (state: ConnectionState, data?: any) => void } // Re-export popup interfaces for convenience export type { PopupInstance, PopupRequest, UIDelegate, } from './popup-instance.js'