{"version":3,"sources":["/home/runner/work/service-auth-simple/service-auth-simple/packages/up-connector/dist/index.cjs","../src/index.ts","../src/connector.ts","../src/popup-instance.ts"],"names":["connection"],"mappings":"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","file":"/home/runner/work/service-auth-simple/service-auth-simple/packages/up-connector/dist/index.cjs","sourcesContent":[null,"/**\n * @lukso/up-connector\n * Universal Profile connector with draggable avatar and connection modal\n */\n\n// Wagmi Adapter\nexport {\n  fromWagmiConnector,\n  fromWagmiConnectors,\n} from '@lukso/up-modal'\nexport type {\n  ConnectionModalView,\n  ConnectModalSetup,\n  ConnectModalTheme,\n  WagmiConnection,\n  WagmiConnector,\n  WalletConnector,\n} from '@lukso/up-modal/connect-modal'\nexport {\n  ConnectModal,\n  disconnect,\n  getConnection,\n  getWagmiSetup,\n  setupConnectModal,\n  wagmi,\n  watchConnection,\n} from '@lukso/up-modal/connect-modal'\n// Backup & Restore Modals (Lit Components)\nexport { AccountModal } from './account-modal.js'\n// Auto-setup for LUKSO products\nexport type { LuksoConnectorConfig } from './auto-setup.js'\nexport {\n  EMBEDDED_WALLET_ID,\n  EMBEDDED_WALLET_URL_DEV,\n  EMBEDDED_WALLET_URL_PROD,\n  LuksoConnector,\n  setupLuksoConnector,\n  UP_EXTENSION_ID,\n} from './auto-setup.js'\nexport { createAvatar, DraggableAvatar } from './avatar.js'\nexport { BackupModal } from './backup-modal.js'\n// Main exports\n// Default export\nexport {\n  createConnector,\n  createConnector as default,\n  UPConnector,\n} from './connector.js'\n// Enhanced popup system\nexport {\n  ModalPopupInstance,\n  WindowPopupInstance,\n} from './popup-instance.js'\nexport { RestoreModal } from './restore-modal.js'\n// Types\nexport type {\n  AddressData,\n  AvatarOptions,\n  ConnectionState,\n  ConnectorConfig,\n  PopupInstance,\n  PopupRequest,\n  UIDelegate,\n  WalletProvider,\n} from './types.js'\n// Release update\n// build 2\n","/**\n * UP Connector - Main class that orchestrates avatar and modal\n * Provides smooth avatar-to-modal animations and connection state management\n *\n * NOTE: This connector uses Lit-based modal components:\n * - <connect-modal> for wallet connection (configured via setupConnectModal())\n * - <account-modal> for account management (shows address, chain, disconnect)\n *\n * Current implementation status:\n * - ✅ Avatar integration (DraggableAvatar with IconView)\n * - ✅ Connection modal (Lit-based ConnectModal)\n * - ✅ Account management modal (Lit-based AccountModal)\n * - ✅ Wagmi synchronization\n *\n * The legacy ConnectorModal (vanilla JS) has been removed. The config.modal property\n * is deprecated and has no effect - use setupConnectModal() instead.\n *\n * Users can pre-place modal components in DOM for custom positioning:\n * - Place <connect-modal> or <account-modal> anywhere in your HTML\n * - The connector will find and reuse existing modals instead of creating new ones\n */\n\nimport { DraggableAvatar } from './avatar.js'\nimport '@lukso/up-modal/connect-modal' // Import for side-effect (registers custom element)\nimport './account-modal.js' // Import for side-effect (registers custom element)\nimport { setLuksoConfig } from '@lukso/transaction-view-headless'\nimport type {\n  ConnectModal,\n  WalletConnector,\n} from '@lukso/up-modal/connect-modal'\nimport {\n  disconnect,\n  getConnection,\n  watchConnection,\n} from '@lukso/up-modal/connect-modal'\nimport type { AccountModal } from './account-modal.js'\nimport type { ConnectionState, ConnectorConfig } from './types.js'\n\nconst DEFAULT_CONFIG: Required<\n  Omit<ConnectorConfig, 'avatar' | 'modal' | 'onConnectionChange'>\n> = {\n  autoConnect: false,\n  persistConnection: true,\n  storageKey: 'up-connector-state',\n  chainId: 42, // LUKSO mainnet\n  rpcUrl: 'https://rpc.lukso.network',\n}\n\nexport class UPConnector {\n  private config: ConnectorConfig & typeof DEFAULT_CONFIG\n  private avatar?: DraggableAvatar\n  private connectModal?: ConnectModal\n  private accountModal?: AccountModal\n  private connectionState: ConnectionState = 'disconnected'\n  private connectedAddress?: string\n  private connectedProvider?: any\n  private connectedChainId?: number\n  private wagmiUnsubscribe?: (() => void) | null\n  connectors: WalletConnector[] = []\n\n  constructor(config: ConnectorConfig = {}) {\n    this.config = { ...DEFAULT_CONFIG, ...config }\n\n    // Initialize components\n    this.init()\n  }\n\n  private async init(): Promise<void> {\n    // Create avatar immediately\n    await this.createAvatar()\n\n    // Start watching wagmi (handles both initial state and changes)\n    // This is async but non-blocking - connector works immediately\n    this.startWagmiSync()\n\n    // Try auto-connect if enabled (for non-wagmi connections)\n    if (this.config.autoConnect && this.config.persistConnection) {\n      await this.tryAutoConnect()\n    }\n  }\n\n  /**\n   * Start syncing with wagmi\n   * Checks current state and subscribes to changes\n   */\n  /**\n   * Update global Lukso config for address resolution\n   */\n  private updateLuksoConfig(chainId: number): void {\n    try {\n      if (chainId === 42) {\n        // LUKSO Mainnet\n        setLuksoConfig({\n          chainId: 42,\n          rpcUrl: 'https://rpc.lukso.network',\n        })\n      } else if (chainId === 4201) {\n        // LUKSO Testnet\n        setLuksoConfig({\n          chainId: 4201,\n          rpcUrl: 'https://rpc.testnet.lukso.network',\n        })\n      } else {\n        // Other networks - default to mainnet config but with custom chainId\n        setLuksoConfig({\n          chainId,\n          rpcUrl: this.config.rpcUrl,\n        })\n      }\n    } catch (error) {\n      console.warn('⚠️ [Connector] Failed to update Lukso config:', error)\n    }\n  }\n\n  private async startWagmiSync(): Promise<void> {\n    try {\n      // Check initial state first\n      const connection = await getConnection()\n\n      if (!connection) {\n        return\n      }\n\n      if (connection.status === 'connected' && connection.address) {\n        this.handleConnection(\n          connection.address,\n          connection.connector,\n          connection.chainId\n        )\n      }\n\n      // Subscribe to wagmi connection changes\n      this.wagmiUnsubscribe = await watchConnection((connection) => {\n        const account = {\n          isConnected: connection.status === 'connected',\n          address: connection.address,\n          chainId: connection.chainId,\n          connector: connection.connector,\n        }\n        if (account.isConnected && account.address) {\n          // Connected\n          if (\n            this.connectedAddress !== account.address ||\n            this.connectedChainId !== account.chainId\n          ) {\n            this.handleConnection(\n              account.address,\n              account.connector,\n              account.chainId\n            )\n          }\n        } else {\n          // Disconnected\n          if (this.connectionState === 'connected') {\n            this.handleDisconnection()\n          }\n        }\n      })\n    } catch (error) {\n      console.warn('⚠️ [Connector] Failed to sync with wagmi:', error)\n    }\n  }\n\n  private async createAvatar(): Promise<void> {\n    this.avatar = new DraggableAvatar({\n      // Default avatar options\n      avatarSize: 'medium',\n      initialPosition: 'top-right',\n      fallbackText: '👤',\n\n      // Override with user config\n      ...this.config.avatar,\n\n      // Connection-specific callbacks\n      onClick: (event, data) => {\n        // Call user-defined onClick first\n        this.config.avatar?.onClick?.(event, data)\n\n        // Then handle connection logic\n        this.handleAvatarClick(event)\n      },\n\n      onAddressClick: (event) => {\n        // Call user-defined callback\n        this.config.avatar?.onAddressClick?.(event)\n      },\n    })\n\n    // Update avatar connected state\n    this.updateAvatarState()\n  }\n\n  // TODO: Replace with Lit-based account management modal\n  // Legacy createModal() method removed - was using deprecated ConnectorModal\n\n  private handleAvatarClick(_event: MouseEvent): void {\n    if (this.connectionState === 'connected') {\n      // Show account management modal\n      this.showAccountModal()\n    } else {\n      // Show connection modal\n      this.showConnectionModal()\n    }\n  }\n\n  private showConnectionModal(): void {\n    // First, check if user has placed a connect-modal in the DOM\n    if (!this.connectModal) {\n      this.connectModal = document.querySelector(\n        'connect-modal'\n      ) as ConnectModal\n    }\n\n    // If still not found, create and append it\n    if (!this.connectModal) {\n      this.connectModal = document.createElement(\n        'connect-modal'\n      ) as ConnectModal\n      document.body.appendChild(this.connectModal as unknown as HTMLElement)\n\n      // Handle connect event\n      this.connectModal.addEventListener('connect', ((e: CustomEvent) => {\n        const _connector = e.detail.connector as WalletConnector\n        // TODO: Handle actual connection logic\n        // For now, this will be extended when wagmi/viem integration is added\n      }) as EventListener)\n\n      // Handle close event\n      this.connectModal.addEventListener('close', (() => {\n        // Modal closed\n      }) as EventListener)\n    }\n\n    // Modal will load connectors automatically from global setup\n    // Open the modal\n    this.connectModal.open = true\n  }\n\n  private showAccountModal(): void {\n    if (!this.connectedAddress) return\n\n    // First, check if user has placed an account-modal in the DOM\n    if (!this.accountModal) {\n      this.accountModal = document.querySelector(\n        'account-modal'\n      ) as AccountModal\n    }\n\n    // If still not found, create and append it\n    if (!this.accountModal) {\n      this.accountModal = document.createElement(\n        'account-modal'\n      ) as AccountModal\n      document.body.appendChild(this.accountModal)\n\n      // Handle disconnect event\n      this.accountModal.addEventListener('disconnect', () => {\n        this.handleDisconnection()\n      })\n    }\n\n    // Set properties and open\n    this.accountModal.address = this.connectedAddress\n    this.accountModal.chainId = this.connectedChainId\n    this.accountModal.connectorName = this.connectedProvider?.name || 'Unknown'\n    this.accountModal.open = true\n  }\n\n  private handleConnection(\n    address: string,\n    provider: any,\n    chainId?: number\n  ): void {\n    this.connectedAddress = address\n    this.connectedProvider = provider\n    this.connectedChainId = chainId\n    this.setConnectionState('connected')\n\n    // Update global Lukso config for address resolution\n    if (chainId) {\n      this.updateLuksoConfig(chainId)\n    }\n\n    // Update avatar with connected address and chainId\n    if (this.avatar) {\n      this.avatar.updateAddress(address, undefined, chainId)\n      this.avatar.setConnected(true)\n    }\n\n    // Persist connection if enabled\n    if (this.config.persistConnection) {\n      this.saveConnectionState()\n    }\n\n    // Hide connection modal if open\n    if (this.connectModal) {\n      this.connectModal.open = false\n    }\n  }\n\n  private async handleDisconnection(): Promise<void> {\n    // Disconnect from wagmi first to ensure state is clean\n    await disconnect()\n\n    this.connectedAddress = undefined\n    this.connectedProvider = undefined\n    this.connectedChainId = undefined\n    this.setConnectionState('disconnected')\n\n    // Update avatar - clear address and show disconnected state\n    if (this.avatar) {\n      this.avatar.setConnected(false)\n      // Clear the address to show fallback/disconnected state\n      this.avatar.updateAddress('')\n    }\n\n    // Clear persisted state\n    if (this.config.persistConnection) {\n      this.clearConnectionState()\n    }\n\n    // Hide connect modal if open\n    if (this.connectModal) {\n      this.connectModal.open = false\n    }\n  }\n\n  private setConnectionState(state: ConnectionState): void {\n    const prevState = this.connectionState\n    this.connectionState = state\n\n    // Update avatar state\n    this.updateAvatarState()\n\n    // Notify callback\n    if (prevState !== state) {\n      this.config.onConnectionChange?.(state, {\n        address: this.connectedAddress,\n        provider: this.connectedProvider,\n        chainId: this.connectedChainId,\n      })\n    }\n  }\n\n  private updateAvatarState(): void {\n    if (!this.avatar) return\n\n    this.avatar.setConnected(this.connectionState === 'connected')\n\n    // Update avatar address and chainId if connected\n    if (this.connectionState === 'connected' && this.connectedAddress) {\n      this.avatar.updateAddress(\n        this.connectedAddress,\n        undefined,\n        this.connectedChainId\n      )\n    }\n  }\n\n  private async tryAutoConnect(): Promise<void> {\n    const savedState = this.loadConnectionState()\n    if (!savedState?.address) return\n\n    this.setConnectionState('connecting')\n\n    try {\n      // Try to reconnect using saved provider info\n      // This would typically involve checking if the provider is still available\n      // and attempting to reconnect\n\n      // For now, simulate auto-connection\n      setTimeout(() => {\n        if (savedState.address) {\n          this.handleConnection(savedState.address, savedState.provider)\n        } else {\n          this.setConnectionState('disconnected')\n        }\n      }, 1000)\n    } catch (error) {\n      console.warn('Auto-connect failed:', error)\n      this.setConnectionState('disconnected')\n    }\n  }\n\n  private saveConnectionState(): void {\n    if (typeof localStorage === 'undefined') return\n\n    try {\n      const state = {\n        address: this.connectedAddress,\n        provider: this.connectedProvider?.constructor?.name,\n        timestamp: Date.now(),\n      }\n      localStorage.setItem(this.config.storageKey, JSON.stringify(state))\n    } catch (error) {\n      console.warn('Failed to save connection state:', error)\n    }\n  }\n\n  private loadConnectionState(): any {\n    if (typeof localStorage === 'undefined') return null\n\n    try {\n      const saved = localStorage.getItem(this.config.storageKey)\n      if (!saved) return null\n\n      const state = JSON.parse(saved)\n\n      // Check if state is not too old (24 hours)\n      const maxAge = 24 * 60 * 60 * 1000\n      if (Date.now() - state.timestamp > maxAge) {\n        this.clearConnectionState()\n        return null\n      }\n\n      return state\n    } catch (error) {\n      console.warn('Failed to load connection state:', error)\n      return null\n    }\n  }\n\n  private clearConnectionState(): void {\n    if (typeof localStorage === 'undefined') return\n\n    try {\n      localStorage.removeItem(this.config.storageKey)\n    } catch (error) {\n      console.warn('Failed to clear connection state:', error)\n    }\n  }\n\n  // Public API\n  public getAvatar(): DraggableAvatar | undefined {\n    return this.avatar\n  }\n\n  /**\n   * @deprecated Legacy modal removed. Use getConnectModal() or create account modal\n   */\n  public getModal(): undefined {\n    console.warn('getModal() is deprecated - legacy ConnectorModal removed')\n    return undefined\n  }\n\n  public getConnectModal(): ConnectModal | undefined {\n    return this.connectModal\n  }\n\n  /**\n   * @deprecated Use setupConnectModal() instead to configure wagmi connectors globally\n   */\n  public setConnectors(connectors: WalletConnector[]): void {\n    this.connectors = connectors\n    // Note: The ConnectModal now loads connectors automatically from global setup\n    // Use setupConnectModal() to configure wagmi integration\n    console.warn(\n      'setConnectors() is deprecated. Use setupConnectModal() instead.'\n    )\n  }\n\n  public async connect(providerId?: string): Promise<void> {\n    this.setConnectionState('connecting')\n\n    if (providerId) {\n      // Connect to specific provider\n      // This would be implemented based on available providers\n    } else {\n      // Show connection modal\n      this.showConnectionModal()\n    }\n  }\n\n  public disconnect(): void {\n    this.handleDisconnection()\n  }\n\n  public getConnectionState(): ConnectionState {\n    return this.connectionState\n  }\n\n  public getConnectedAddress(): string | undefined {\n    return this.connectedAddress\n  }\n\n  public getConnectedProvider(): any {\n    return this.connectedProvider\n  }\n\n  public isConnected(): boolean {\n    return this.connectionState === 'connected'\n  }\n\n  public showModal(): void {\n    if (this.isConnected()) {\n      this.showAccountModal()\n    } else {\n      this.showConnectionModal()\n    }\n  }\n\n  public hideModal(): void {\n    if (this.connectModal) {\n      this.connectModal.open = false\n    }\n  }\n\n  public updateConfig(config: Partial<ConnectorConfig>): void {\n    this.config = { ...this.config, ...config }\n\n    // Update avatar if config changed\n    if (config.avatar && this.avatar) {\n      // This would require implementing avatar config updates\n    }\n  }\n\n  public destroy(): void {\n    // Unsubscribe from wagmi changes\n    if (this.wagmiUnsubscribe) {\n      this.wagmiUnsubscribe()\n      this.wagmiUnsubscribe = undefined\n    }\n\n    this.avatar?.destroy()\n\n    // Clean up connect modal\n    if (this.connectModal) {\n      this.connectModal.open = false\n      if (this.connectModal.parentNode) {\n        this.connectModal.parentNode.removeChild(this.connectModal)\n      }\n    }\n\n    this.avatar = undefined\n    this.connectModal = undefined\n    this.connectedAddress = undefined\n    this.connectedProvider = undefined\n    this.connectionState = 'disconnected'\n  }\n}\n\n/**\n * Factory function for creating UP Connector instances\n */\nexport function createConnector(config: ConnectorConfig = {}): UPConnector {\n  return new UPConnector(config)\n}\n\nexport default UPConnector\n","/**\n * Enhanced Popup System for UP Connector\n * Provides unified interface for both popup windows and modal dialogs\n */\n\nexport interface PopupRequest {\n  mode: 'popup' | 'modal' // popup = window.open, modal = iframe in modal\n  url?: string // If present = external, if not = local content\n  size?: { width: number; height: number }\n  position?: 'center' | 'top-right'\n  allowedOrigins?: string[] // Security for message passing\n  reuseExisting?: boolean // Whether to reuse existing popups (default: true)\n}\n\nexport interface PopupInstance {\n  // Lifecycle Management\n  show(): Promise<void> // Show the popup/modal - async for consistency\n  hide(): void // Hide but preserve state\n  close(): void // Actually destroy\n\n  // Message Passing\n  postMessage(data: any): void // Send to popup/iframe\n  onMessage(handler: (data: any) => void): void // Receive from popup/iframe\n  removeMessageHandler(handler: (data: any) => void): void // Remove handler\n\n  // State Queries\n  isVisible: boolean // Whether currently visible\n  isClosed: boolean // Whether destroyed\n  contentWindow?: Window // For advanced use\n\n  // Events\n  on(\n    event: 'show' | 'hide' | 'close' | 'message',\n    handler: (...args: any[]) => void\n  ): void\n  off(\n    event: 'show' | 'hide' | 'close' | 'message',\n    handler: (...args: any[]) => void\n  ): void\n}\n\nexport interface UIDelegate {\n  createPopup(request: PopupRequest): PopupInstance\n  showPopup(request: PopupRequest): Promise<PopupInstance>\n  closeAll(): void\n}\n\n// Internal event emitter for popup instances\nclass PopupEventEmitter {\n  private handlers = new Map<string, Set<(...args: any[]) => void>>()\n\n  on(event: string, handler: (...args: any[]) => void): void {\n    if (!this.handlers.has(event)) {\n      this.handlers.set(event, new Set())\n    }\n    this.handlers.get(event)?.add(handler)\n  }\n\n  off(event: string, handler: (...args: any[]) => void): void {\n    this.handlers.get(event)?.delete(handler)\n  }\n\n  emit(event: string, ...args: any[]): void {\n    this.handlers.get(event)?.forEach((handler) => {\n      try {\n        handler(...args)\n      } catch (error) {\n        console.error('Error in popup event handler:', error)\n      }\n    })\n  }\n\n  clear(): void {\n    this.handlers.clear()\n  }\n}\n\n/**\n * Base class for popup instances\n */\nabstract class BasePopupInstance implements PopupInstance {\n  protected events = new PopupEventEmitter()\n  protected messageHandlers = new Set<(data: any) => void>()\n  protected _isClosed = false\n  protected _isVisible = false\n\n  constructor(protected request: PopupRequest) {}\n\n  abstract show(): Promise<void>\n  abstract hide(): void\n  abstract close(): void\n  abstract get contentWindow(): Window | undefined\n\n  get isVisible(): boolean {\n    return this._isVisible && !this._isClosed\n  }\n  get isClosed(): boolean {\n    return this._isClosed\n  }\n\n  postMessage(data: any): void {\n    if (!this._isClosed && this.contentWindow) {\n      try {\n        this.contentWindow.postMessage(data, '*')\n      } catch (error) {\n        console.error('Failed to post message to popup:', error)\n      }\n    }\n  }\n\n  onMessage(handler: (data: any) => void): void {\n    this.messageHandlers.add(handler)\n  }\n\n  removeMessageHandler(handler: (data: any) => void): void {\n    this.messageHandlers.delete(handler)\n  }\n\n  protected handleMessage(data: any): void {\n    this.messageHandlers.forEach((handler) => {\n      try {\n        handler(data)\n      } catch (error) {\n        console.error('Error in popup message handler:', error)\n      }\n    })\n    this.events.emit('message', data)\n  }\n\n  on(\n    event: 'show' | 'hide' | 'close' | 'message',\n    handler: (...args: any[]) => void\n  ): void {\n    this.events.on(event, handler)\n  }\n\n  off(\n    event: 'show' | 'hide' | 'close' | 'message',\n    handler: (...args: any[]) => void\n  ): void {\n    this.events.off(event, handler)\n  }\n\n  protected cleanup(): void {\n    this.messageHandlers.clear()\n    this.events.clear()\n  }\n}\n\n/**\n * Modal popup implementation (iframe in modal dialog)\n */\nexport class ModalPopupInstance extends BasePopupInstance {\n  private modalElement?: HTMLDivElement\n  private iframeElement?: HTMLIFrameElement\n  private messageListener?: (event: MessageEvent) => void\n\n  async show(): Promise<void> {\n    if (this._isClosed) {\n      throw new Error('Popup is closed')\n    }\n\n    if (!this.modalElement) {\n      await this.createElement()\n    }\n\n    return new Promise((resolve) => {\n      if (!this.modalElement) {\n        resolve()\n        return\n      }\n\n      // Add to DOM if not already present\n      if (!this.modalElement.parentNode) {\n        document.body.appendChild(this.modalElement)\n      }\n\n      this._isVisible = true\n\n      // Force reflow before adding visible class\n      this.modalElement.offsetHeight\n      this.modalElement.classList.add('visible')\n\n      this.events.emit('show')\n\n      // Wait for animation\n      setTimeout(() => resolve(), 50)\n    })\n  }\n\n  hide(): void {\n    if (!this._isVisible || this._isClosed || !this.modalElement) return\n\n    this._isVisible = false\n    this.modalElement.classList.remove('visible')\n    this.events.emit('hide')\n\n    // Remove from DOM after animation\n    setTimeout(() => {\n      if (this.modalElement?.parentNode) {\n        this.modalElement.parentNode.removeChild(this.modalElement)\n      }\n    }, 300)\n  }\n\n  close(): void {\n    if (this._isClosed) return\n\n    this._isClosed = true\n    this._isVisible = false\n\n    if (this.modalElement) {\n      this.modalElement.classList.remove('visible')\n      setTimeout(() => {\n        if (this.modalElement?.parentNode) {\n          this.modalElement.parentNode.removeChild(this.modalElement)\n        }\n      }, 300)\n    }\n\n    if (this.messageListener) {\n      window.removeEventListener('message', this.messageListener)\n    }\n\n    this.events.emit('close')\n    this.cleanup()\n  }\n\n  get contentWindow(): Window | undefined {\n    return this.iframeElement?.contentWindow || undefined\n  }\n\n  private async createElement(): Promise<void> {\n    if (typeof document === 'undefined') return\n\n    await this.createStyles()\n\n    // Create modal structure\n    this.modalElement = document.createElement('div')\n    this.modalElement.className = 'up-popup-modal'\n\n    const { width = 480, height = 640 } = this.request.size || {}\n\n    this.modalElement.innerHTML = `\n      <div class=\"up-popup-modal-content\" style=\"width: ${width}px; height: ${height}px;\">\n        <button class=\"up-popup-close\" type=\"button\">\n          <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n            <path fill-rule=\"evenodd\" d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\" clip-rule=\"evenodd\" />\n          </svg>\n        </button>\n        <iframe src=\"${this.request.url || 'about:blank'}\" allow=\"publickey-credentials-get; publickey-credentials-create\"></iframe>\n      </div>\n    `\n\n    // Get references\n    const closeButton = this.modalElement.querySelector(\n      '.up-popup-close'\n    ) as HTMLButtonElement\n    this.iframeElement = this.modalElement.querySelector(\n      'iframe'\n    ) as HTMLIFrameElement\n\n    // Event listeners\n    closeButton.addEventListener('click', () => this.hide())\n\n    this.modalElement.addEventListener('click', (e) => {\n      if (e.target === this.modalElement) {\n        this.hide()\n      }\n    })\n\n    // Message handling\n    this.messageListener = (event: MessageEvent) => {\n      // Only handle messages from our iframe\n      if (event.source === this.iframeElement?.contentWindow) {\n        this.handleMessage(event.data)\n      }\n    }\n    window.addEventListener('message', this.messageListener)\n  }\n\n  private async createStyles(): Promise<void> {\n    if (typeof document === 'undefined') return\n\n    if (document.querySelector('#up-popup-modal-styles')) return\n\n    const style = document.createElement('style')\n    style.id = 'up-popup-modal-styles'\n    style.textContent = `\n      .up-popup-modal {\n        position: fixed;\n        top: 0;\n        left: 0;\n        width: 100vw;\n        height: 100vh;\n        background: rgba(0, 0, 0, 0.5);\n        backdrop-filter: blur(8px);\n        z-index: 10000;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        opacity: 0;\n        visibility: hidden;\n        transition: all 300ms cubic-bezier(0.25, 0.46, 0.45, 0.94);\n        padding: 16px;\n      }\n\n      .up-popup-modal.visible {\n        opacity: 1;\n        visibility: visible;\n      }\n\n      .up-popup-modal-content {\n        background: white;\n        border-radius: 12px;\n        overflow: hidden;\n        position: relative;\n        box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);\n        transform: scale(0.95) translateY(20px);\n        transition: all 300ms cubic-bezier(0.25, 0.46, 0.45, 0.94);\n      }\n\n      .up-popup-modal.visible .up-popup-modal-content {\n        transform: scale(1) translateY(0);\n      }\n\n      .up-popup-close {\n        position: absolute;\n        top: 12px;\n        right: 12px;\n        z-index: 10;\n        background: rgba(255, 255, 255, 0.9);\n        border: none;\n        border-radius: 50%;\n        width: 32px;\n        height: 32px;\n        cursor: pointer;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        color: #6b7280;\n        transition: all 0.2s ease;\n      }\n\n      .up-popup-close:hover {\n        background: rgba(255, 255, 255, 1);\n        color: #374151;\n      }\n\n      .up-popup-modal iframe {\n        width: 100%;\n        height: 100%;\n        border: none;\n        border-radius: 12px;\n      }\n\n      @media (max-width: 640px) {\n        .up-popup-modal {\n          padding: 0;\n          align-items: flex-end;\n        }\n\n        .up-popup-modal-content {\n          width: 100% !important;\n          height: 85vh !important;\n          border-radius: 12px 12px 0 0;\n          transform: translateY(100%);\n        }\n\n        .up-popup-modal.visible .up-popup-modal-content {\n          transform: translateY(0);\n        }\n\n        .up-popup-modal iframe {\n          border-radius: 12px 12px 0 0;\n        }\n      }\n\n      @media (max-width: 480px) {\n        .up-popup-modal {\n          align-items: stretch;\n        }\n\n        .up-popup-modal-content {\n          height: 100vh !important;\n          border-radius: 0;\n        }\n\n        .up-popup-modal iframe {\n          border-radius: 0;\n        }\n      }\n    `\n    document.head.appendChild(style)\n  }\n}\n\n/**\n * Window popup implementation (actual popup window)\n */\nexport class WindowPopupInstance extends BasePopupInstance {\n  private popupWindow: Window | null = null\n  private messageListener?: (event: MessageEvent) => void\n\n  async show(): Promise<void> {\n    if (this._isClosed) {\n      throw new Error('Popup is closed')\n    }\n\n    if (!this.popupWindow || this.popupWindow.closed) {\n      await this.createPopupWindow()\n    }\n\n    if (this.popupWindow && !this.popupWindow.closed) {\n      this.popupWindow.focus()\n      this._isVisible = true\n      this.events.emit('show')\n    }\n  }\n\n  hide(): void {\n    // For popup windows, hide typically means minimize or move to background\n    // Since we can't directly minimize, we just blur it\n    if (this.popupWindow && !this.popupWindow.closed) {\n      this.popupWindow.blur()\n    }\n    this._isVisible = false\n    this.events.emit('hide')\n  }\n\n  close(): void {\n    if (this._isClosed) return\n\n    this._isClosed = true\n    this._isVisible = false\n\n    if (this.popupWindow && !this.popupWindow.closed) {\n      this.popupWindow.close()\n    }\n    this.popupWindow = null\n\n    if (this.messageListener) {\n      window.removeEventListener('message', this.messageListener)\n    }\n\n    this.events.emit('close')\n    this.cleanup()\n  }\n\n  get contentWindow(): Window | undefined {\n    return this.popupWindow && !this.popupWindow.closed\n      ? this.popupWindow\n      : undefined\n  }\n\n  get isVisible(): boolean {\n    return !this._isClosed && !!(this.popupWindow && !this.popupWindow.closed)\n  }\n\n  private async createPopupWindow(): Promise<void> {\n    if (!this.request.url) {\n      throw new Error('URL required for popup windows')\n    }\n\n    const { width = 400, height = 600 } = this.request.size || {}\n    const position = this.request.position || 'center'\n    const features = [\n      `width=${width}`,\n      `height=${height}`,\n      ...this.getPositionFeatures(position, width, height),\n      'scrollbars=yes',\n      'resizable=yes',\n      'status=no',\n      'location=no',\n      'toolbar=no',\n      'menubar=no',\n    ].join(',')\n\n    this.popupWindow = window.open(this.request.url, '_blank', features)\n\n    if (!this.popupWindow) {\n      throw new Error('Popup blocked or failed to open')\n    }\n\n    // Setup message listener\n    this.messageListener = (event: MessageEvent) => {\n      if (event.source === this.popupWindow) {\n        this.handleMessage(event.data)\n      }\n    }\n    window.addEventListener('message', this.messageListener)\n\n    // Monitor popup close\n    const checkClosed = () => {\n      if (this.popupWindow?.closed && !this._isClosed) {\n        this.close()\n      } else if (!this._isClosed) {\n        setTimeout(checkClosed, 1000)\n      }\n    }\n    setTimeout(checkClosed, 1000)\n  }\n\n  private getPositionFeatures(\n    position: string,\n    width: number,\n    height: number\n  ): string[] {\n    const screenLeft =\n      window.screenLeft !== undefined ? window.screenLeft : window.screenX\n    const screenTop =\n      window.screenTop !== undefined ? window.screenTop : window.screenY\n    const windowWidth =\n      window.innerWidth || document.documentElement.clientWidth || screen.width\n    const windowHeight =\n      window.innerHeight ||\n      document.documentElement.clientHeight ||\n      screen.height\n\n    let left: number\n    let top: number\n\n    switch (position) {\n      case 'top-right':\n        left = screenLeft + windowWidth - width - 20\n        top = screenTop + 20\n        break\n      default:\n        left = screenLeft + (windowWidth - width) / 2\n        top = screenTop + (windowHeight - height) / 2\n        break\n    }\n\n    return [`left=${Math.max(0, left)}`, `top=${Math.max(0, top)}`]\n  }\n}\n"]}