@pollar/react 0.4.5 → 0.5.0
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.css +763 -138
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +45 -10
- package/dist/index.d.ts +45 -10
- package/dist/index.js +859 -176
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +857 -178
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/constants.ts","../src/components/commons.tsx","../src/components/login-modal/EmailCodeInput.tsx","../src/components/login-modal/GithubButton.tsx","../src/components/login-modal/GoogleButton.tsx","../src/components/login-modal/LoginModalTemplate.tsx","../src/components/login-modal/LoginModal.tsx","../src/components/transaction-modal/TransactionModalTemplate.tsx","../src/components/transaction-modal/TransactionModal.tsx","../src/context.tsx","../src/WalletButton.tsx"],"names":["jsxs","jsx","StateStatus","useState","useRef","AUTH_ERROR_CODES","Fragment","useEffect"],"mappings":"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","file":"index.mjs","sourcesContent":["export const LOGO_POLLAR = 'https://pollar.xyz/assets/logo_pollar.png';\nexport const LOGO_GITHUB = 'https://pollar.xyz/assets/GitHub_Invertocat_White.png';\n// export const LOGO_FREIGHTER = 'https://framerusercontent.com/images/hJLECaObEXnPQkYrO2ZccbSk.png';\nexport const LOGO_FREIGHTER = 'https://pollar.xyz/assets/logo_freighter.png';\n// export const LOGO_ALBEDO = 'https://albedo.link/img/logo.svg';\nexport const LOGO_ALBEDO = 'https://pollar.xyz/assets/logo_albedo.svg';\n","import { StateStatus, StateTransactionCodes } from '@pollar/core';\nimport { Component, type ReactNode } from 'react';\nimport { LOGO_POLLAR } from '../constants';\n\ndeclare const __POLLAR_VERSION__: string;\n\ninterface ModalErrorBoundaryState {\n crashed: boolean;\n}\n\nexport class ModalErrorBoundary extends Component<{ children: ReactNode; onClose: () => void }, ModalErrorBoundaryState> {\n state: ModalErrorBoundaryState = { crashed: false };\n\n static getDerivedStateFromError(): ModalErrorBoundaryState {\n return { crashed: true };\n }\n\n componentDidCatch(error: unknown) {\n console.error('[Pollar] Modal crashed:', error);\n }\n\n render() {\n if (this.state.crashed) {\n this.props.onClose();\n return null;\n }\n return this.props.children;\n }\n}\n\nexport const PollarModalFooter = () => {\n return (\n <div className=\"pollar-footer\">\n <span className=\"pollar-footer-protected\">Protected by</span>\n <div className=\"pollar-footer-brand\">\n <img src={LOGO_POLLAR} alt=\"Pollar\" className=\"pollar-footer-logo\" />\n <span className=\"pollar-footer-name\">Pollar</span>\n <span className=\"pollar-footer-version\">v{__POLLAR_VERSION__}</span>\n </div>\n </div>\n );\n};\n\nexport const TRANSACTION_CODE_MESSAGES: Record<StateTransactionCodes, string> = {\n NONE: '',\n BUILD_TRANSACTION_START: 'Building transaction…',\n BUILD_TRANSACTION_SUCCESS: 'Transaction built, ready to sign and send',\n BUILD_TRANSACTION_ERROR: 'Failed to build transaction',\n BUILD_TRANSACTION_ERROR_NO_WALLET: 'No wallet connected',\n SIGN_SEND_TRANSACTION_START: 'Signing and sending transaction…',\n SIGN_SEND_TRANSACTION_SUCCESS: 'Transaction signed',\n SIGN_SEND_TRANSACTION_ERROR: 'Signing rejected',\n};\n\ninterface ModalStatusBannerProps {\n message: string;\n status: StateStatus;\n onCancel?: (() => void) | undefined;\n onRetry?: (() => void) | undefined;\n}\n\nexport function ModalStatusBanner({ message, status, onCancel, onRetry }: ModalStatusBannerProps) {\n if (!message && status === StateStatus.NONE) {\n return <div className=\"pollar-status\" />;\n }\n\n const isLoading = status === StateStatus.LOADING;\n const icon =\n status === 'ERROR' ? (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden>\n <circle cx=\"7\" cy=\"7\" r=\"7\" fill=\"currentColor\" />\n <path d=\"M4.5 4.5l5 5M9.5 4.5l-5 5\" stroke=\"white\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n ) : status === 'SUCCESS' ? (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden>\n <circle cx=\"7\" cy=\"7\" r=\"7\" fill=\"currentColor\" />\n <path d=\"M3.5 7l2.5 2.5 4.5-5\" stroke=\"white\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n ) : status === 'LOADING' ? (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden>\n <circle cx=\"7\" cy=\"7\" r=\"5.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeDasharray=\"22 10\" />\n </svg>\n ) : null;\n\n return (\n <div className=\"pollar-status\" data-kind={status}>\n {icon}\n <span>{message}</span>\n {isLoading && onCancel && (\n <button type=\"button\" className=\"pollar-status-cancel\" onClick={onCancel}>\n Cancel\n </button>\n )}\n {status === StateStatus.ERROR && onRetry && (\n <button type=\"button\" className=\"pollar-status-cancel\" onClick={onRetry}>\n Retry\n </button>\n )}\n </div>\n );\n}","import { useRef, useState } from 'react';\n\ninterface EmailCodeInputProps {\n email?: string;\n onSubmit: (code: string) => void;\n}\n\nexport function EmailCodeInput({ email, onSubmit }: EmailCodeInputProps) {\n const [digits, setDigits] = useState(['', '', '', '', '', '']);\n const inputRefs = useRef<(HTMLInputElement | null)[]>([]);\n\n function submit(next: string[]) {\n if (next.every(Boolean)) onSubmit(next.join(''));\n }\n\n function handleChange(index: number, value: string) {\n const cleaned = value.replace(/\\D/g, '').slice(-1);\n const next = digits.map((d, i) => (i === index ? cleaned : d));\n setDigits(next);\n if (cleaned && index < 5) inputRefs.current[index + 1]?.focus();\n submit(next);\n }\n\n function handleKeyDown(index: number, e: React.KeyboardEvent<HTMLInputElement>) {\n if (e.key === 'Backspace' && !digits[index] && index > 0) {\n inputRefs.current[index - 1]?.focus();\n }\n }\n\n function handlePaste(e: React.ClipboardEvent<HTMLInputElement>) {\n e.preventDefault();\n const text = e.clipboardData.getData('text').replace(/\\D/g, '').slice(0, 6);\n const next = Array.from({ length: 6 }, (_, i) => text[i] ?? '');\n setDigits(next);\n inputRefs.current[Math.min(text.length - 1, 5)]?.focus();\n submit(next);\n }\n\n return (\n <div className=\"pollar-code-section\">\n <p className=\"pollar-code-label\">\n Enter the 6-digit code sent to{' '}\n {email ? <strong>{email}</strong> : 'your email'}\n </p>\n <div className=\"pollar-code-inputs\">\n {digits.map((digit, i) => (\n <input\n key={i}\n ref={(el) => {\n inputRefs.current[i] = el;\n }}\n type=\"text\"\n inputMode=\"numeric\"\n maxLength={2}\n value={digit}\n className=\"pollar-code-input\"\n onChange={(e) => handleChange(i, e.target.value)}\n onKeyDown={(e) => handleKeyDown(i, e)}\n onPaste={handlePaste}\n />\n ))}\n </div>\n </div>\n );\n}\n","// https://brand.github.com/foundations/logo\nimport './GithubButton.css';\nimport { LOGO_GITHUB } from '../../constants';\n\nexport const GithubButton = ({ disabled, onClick }: { disabled: boolean; onClick: () => void }) => {\n return (\n <button className=\"github-button\" disabled={disabled} onClick={onClick}>\n <img src={LOGO_GITHUB} alt=\"GitHub\" className=\"github-button-icon\" />\n <span className=\"github-button-contents\">Continue with GitHub</span>\n </button>\n );\n};\n","// https://developers.google.com/identity/branding-guidelines\nimport './GoogleButton.css';\n\nexport const GoogleButton = ({ disabled, onClick }: { disabled: boolean; onClick: () => void }) => {\n return (\n <button className=\"gsi-material-button\" disabled={disabled} onClick={onClick}>\n <div className=\"gsi-material-button-state\"></div>\n <div className=\"gsi-material-button-content-wrapper\">\n <div className=\"gsi-material-button-icon\">\n <svg\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 48 48\"\n // xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n style={{ display: 'block' }}\n >\n <path\n fill=\"#EA4335\"\n d=\"M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z\"\n ></path>\n <path\n fill=\"#4285F4\"\n d=\"M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z\"\n ></path>\n <path\n fill=\"#FBBC05\"\n d=\"M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z\"\n ></path>\n <path\n fill=\"#34A853\"\n d=\"M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z\"\n ></path>\n <path fill=\"none\" d=\"M0 0h48v48H0z\"></path>\n </svg>\n </div>\n <span className=\"gsi-material-button-contents\">Continue with Google</span>\n <span style={{ display: 'none' }}>Continue with Google</span>\n </div>\n </button>\n );\n};\n","'use client';\n\nimport { AUTH_ERROR_CODES, AuthState, StateStatus } from '@pollar/core';\nimport { type CSSProperties } from 'react';\nimport { LOGO_ALBEDO, LOGO_FREIGHTER, LOGO_POLLAR } from '../../constants';\nimport { ModalStatusBanner, PollarModalFooter } from '../commons';\nimport { EmailCodeInput } from './EmailCodeInput';\nimport { GithubButton } from './GithubButton';\nimport { GoogleButton } from './GoogleButton';\n\nconst AUTH_STATE_MESSAGES: Record<AuthState['step'], string> = {\n idle: '',\n creating_session: 'Initializing…',\n entering_email: '',\n sending_email: 'Sending…',\n entering_code: 'Code sent — check your inbox',\n verifying_email_code: 'Verifying…',\n opening_oauth: 'Redirecting…',\n connecting_wallet: 'Connecting wallet…',\n wallet_not_installed: 'Wallet not installed',\n authenticating_wallet: 'Signing in with wallet…',\n authenticating: 'Authenticating…',\n authenticated: 'Welcome!',\n error: '',\n};\n\nfunction authStateToStatus(step: AuthState['step']): StateStatus {\n const loading: AuthState['step'][] = [\n 'creating_session',\n 'sending_email',\n 'verifying_email_code',\n 'opening_oauth',\n 'connecting_wallet',\n 'authenticating_wallet',\n 'authenticating',\n ];\n const success: AuthState['step'][] = ['authenticated', 'entering_code'];\n const error: AuthState['step'][] = ['error', 'wallet_not_installed'];\n\n if (loading.includes(step)) return StateStatus.LOADING;\n if (success.includes(step)) return StateStatus.SUCCESS;\n if (error.includes(step)) return StateStatus.ERROR;\n return StateStatus.NONE;\n}\n\ninterface LoginModalTemplateProps {\n theme: string;\n accentColor: string;\n logoUrl: string | null;\n emailEnabled: boolean;\n embeddedWallets: boolean;\n providers: {\n google: boolean;\n discord: boolean;\n x: boolean;\n github: boolean;\n apple: boolean;\n };\n appName: string;\n email?: string;\n onEmailChange?: (email: string) => void;\n onEmailSubmit?: () => void;\n onSocialLogin?: (provider: 'google' | 'github') => void;\n onFreighterConnect?: () => void;\n onAlbedoConnect?: () => void;\n authState: AuthState;\n codeInputKey?: number;\n onCodeSubmit?: (code: string) => void;\n onBack: () => void;\n onCancel: () => void;\n onRetry: () => void;\n}\n\nexport function LoginModalTemplate({\n theme,\n accentColor,\n logoUrl,\n emailEnabled,\n embeddedWallets,\n providers,\n appName,\n email = '',\n onEmailChange,\n onEmailSubmit,\n onSocialLogin,\n onFreighterConnect,\n onAlbedoConnect,\n authState,\n codeInputKey,\n onCodeSubmit,\n onBack,\n onCancel,\n onRetry,\n}: LoginModalTemplateProps) {\n const isDark = theme === 'dark';\n const enabledSocial = Object.entries(providers).filter(([, enabled]) => enabled);\n\n const cssVars = {\n '--pollar-accent': accentColor,\n '--pollar-buttons-border-radius': '6px',\n '--pollar-buttons-height': '44px',\n '--pollar-bg': isDark ? '#1a1a1a' : '#ffffff',\n '--pollar-border': isDark ? '#374151' : '#e5e7eb',\n '--pollar-text': isDark ? '#ffffff' : '#111827',\n '--pollar-muted': isDark ? '#9ca3af' : '#6b7280',\n '--pollar-input-bg': isDark ? '#374151' : '#ffffff',\n '--pollar-error-bg': isDark ? '#2a1515' : '#fef2f2',\n '--pollar-error-border': isDark ? '#7f1d1d' : '#fecaca',\n '--pollar-error-text': isDark ? '#f87171' : '#dc2626',\n } as CSSProperties;\n\n const status = authStateToStatus(authState.step);\n const isLoading = status === StateStatus.LOADING;\n const isEmailCodeError =\n authState.step === 'error' &&\n (authState.errorCode === AUTH_ERROR_CODES.EMAIL_CODE_EXPIRED ||\n authState.errorCode === AUTH_ERROR_CODES.EMAIL_CODE_INVALID);\n const awaitingEmailCode =\n authState.step === 'entering_code' || authState.step === 'verifying_email_code' || isEmailCodeError;\n const statusMessage =\n authState.step === 'error' ? authState.message : AUTH_STATE_MESSAGES[authState.step];\n\n return (\n <div className=\"pollar-modal\" style={cssVars} onClick={(e) => e.stopPropagation()}>\n <div className=\"pollar-header\">\n <div className=\"pollar-logo-wrap\">\n <img src={logoUrl ?? LOGO_POLLAR} alt=\"Logo\" className=\"pollar-logo\" />\n </div>\n <h2 className=\"pollar-title\">{appName}</h2>\n <p className=\"pollar-subtitle\">Log in or sign up</p>\n </div>\n\n {awaitingEmailCode ? (\n <>\n <button type=\"button\" className=\"pollar-back-btn\" onClick={onBack}>\n ← Back\n </button>\n <EmailCodeInput key={codeInputKey} email={email} onSubmit={onCodeSubmit ?? (() => {})} />\n </>\n ) : (\n <>\n {emailEnabled && (\n <div className=\"pollar-email-section\">\n <input\n type=\"email\"\n placeholder=\"you@email.com\"\n value={email}\n disabled={isLoading}\n className=\"pollar-email-input\"\n onChange={(e) => onEmailChange?.(e.target.value)}\n onKeyDown={(e) => e.key === 'Enter' && onEmailSubmit?.()}\n />\n <button type=\"button\" disabled={isLoading || !email} className=\"pollar-submit-btn\" onClick={onEmailSubmit}>\n Submit\n </button>\n </div>\n )}\n\n {emailEnabled && enabledSocial.length > 0 && (\n <div className=\"pollar-divider\">\n <div className=\"pollar-divider-line\" />\n <div className=\"pollar-divider-label\">\n <span className=\"pollar-divider-text\">or continue with</span>\n </div>\n </div>\n )}\n\n {enabledSocial.length > 0 && (\n <div className=\"pollar-social-list\">\n {enabledSocial.some(([key]) => key === 'google') && (\n <GoogleButton disabled={isLoading} onClick={() => onSocialLogin?.('google')} />\n )}\n {enabledSocial.some(([key]) => key === 'github') && (\n <GithubButton disabled={isLoading} onClick={() => onSocialLogin?.('github')} />\n )}\n </div>\n )}\n\n {embeddedWallets && (\n <div className=\"pollar-wallet-section\">\n <p className=\"pollar-wallet-label\">Continue with a wallet</p>\n <button type=\"button\" disabled={isLoading} className=\"pollar-wallet-btn\" onClick={onFreighterConnect}>\n <img src={LOGO_FREIGHTER} alt=\"Freighter\" className=\"pollar-wallet-icon\" />\n Freighter\n </button>\n <button type=\"button\" disabled={isLoading} className=\"pollar-wallet-btn\" onClick={onAlbedoConnect}>\n <img src={LOGO_ALBEDO} alt=\"Albedo\" className=\"pollar-wallet-icon\" />\n Albedo\n </button>\n </div>\n )}\n </>\n )}\n\n <ModalStatusBanner\n message={statusMessage}\n status={status}\n onCancel={onCancel}\n onRetry={isEmailCodeError ? undefined : onRetry}\n />\n\n <PollarModalFooter />\n </div>\n );\n}","'use client';\n\nimport { AUTH_ERROR_CODES, AuthState, WalletType } from '@pollar/core';\nimport { useEffect, useRef, useState } from 'react';\nimport { usePollar } from '../../context';\nimport { LoginModalTemplate } from './LoginModalTemplate';\nimport './LoginModal.css';\n\ninterface LoginModalProps {\n onClose: () => void;\n}\n\nexport function LoginModal({ onClose }: LoginModalProps) {\n const [email, setEmail] = useState('');\n const { getClient, styles, config } = usePollar();\n const [authState, setAuthState] = useState<AuthState>(() => getClient().getAuthState());\n const [codeInputKey, setCodeInputKey] = useState(0);\n const pendingEmail = useRef<string | null>(null);\n\n useEffect(() => {\n return getClient().onAuthStateChange((next) => {\n setAuthState(next);\n if (next.step === 'entering_email' && pendingEmail.current) {\n getClient().sendEmailCode(pendingEmail.current);\n pendingEmail.current = null;\n }\n if (next.step === 'error' && next.errorCode === AUTH_ERROR_CODES.EMAIL_CODE_INVALID) {\n setCodeInputKey((k) => k + 1);\n }\n if (next.step === 'authenticated') {\n setTimeout(onClose, 1000);\n }\n });\n }, []);\n\n const { theme = 'light', accentColor = '#005DB4', logoUrl, emailEnabled, embeddedWallets, providers } = styles;\n\n function handleClose() {\n setEmail('');\n getClient().cancelLogin();\n onClose();\n }\n\n function handleEmailSubmit() {\n if (!email) return;\n pendingEmail.current = email;\n getClient().beginEmailLogin();\n }\n\n function handleSocialLogin(provider: 'google' | 'github') {\n getClient().loginOAuth(provider);\n }\n\n function handleWalletConnect(type: WalletType) {\n getClient().loginWallet(type);\n }\n\n function handleVerifyCode(code: string) {\n getClient().verifyEmailCode(code);\n }\n\n function handleBack() {\n setEmail('');\n getClient().cancelLogin();\n }\n\n function handleRetry() {\n getClient().logout();\n if (styles.emailEnabled) {\n getClient().beginEmailLogin();\n }\n }\n\n return (\n <div className=\"pollar-overlay\" onClick={handleClose}>\n <LoginModalTemplate\n theme={theme}\n accentColor={accentColor}\n logoUrl={logoUrl ?? null}\n emailEnabled={!!emailEnabled}\n embeddedWallets={!!embeddedWallets}\n providers={{\n google: !!providers?.google,\n discord: !!providers?.discord,\n x: !!providers?.x,\n github: !!providers?.github,\n apple: !!providers?.apple,\n }}\n appName={config.application?.name ?? 'Pollar'}\n email={email}\n onEmailChange={setEmail}\n onEmailSubmit={handleEmailSubmit}\n onSocialLogin={handleSocialLogin}\n onFreighterConnect={() => handleWalletConnect(WalletType.FREIGHTER)}\n onAlbedoConnect={() => handleWalletConnect(WalletType.ALBEDO)}\n authState={authState}\n codeInputKey={codeInputKey}\n onCodeSubmit={handleVerifyCode}\n onBack={handleBack}\n onCancel={() => getClient().cancelLogin()}\n onRetry={handleRetry}\n />\n </div>\n );\n}\n","'use client';\n\nimport { StateStatus, StateTransactionCodes, TxBuildResponse } from '@pollar/core';\nimport React, { useState } from 'react';\nimport { ModalStatusBanner, PollarModalFooter, TRANSACTION_CODE_MESSAGES } from '../commons';\n\nexport interface TransactionModalTemplateProps {\n theme: string;\n accentColor: string;\n transactionStateCode: StateTransactionCodes;\n status: StateStatus;\n buildResult: TxBuildResponse['content'] | null;\n submitResult: { hash: string; status: string } | null;\n onClose: () => void;\n onSignAndSend: () => void;\n onRetrySignAndSend: () => void;\n}\n\nexport function TransactionModalTemplate({\n theme,\n accentColor,\n transactionStateCode,\n status,\n buildResult,\n submitResult,\n onClose,\n onSignAndSend,\n onRetrySignAndSend,\n}: TransactionModalTemplateProps) {\n const isDark = theme === 'dark';\n\n const cssVars = {\n '--pollar-accent': accentColor,\n '--pollar-buttons-border-radius': '8px',\n '--pollar-buttons-height': '44px',\n '--pollar-bg': isDark ? '#1a1a1a' : '#ffffff',\n '--pollar-border': isDark ? '#374151' : '#e5e7eb',\n '--pollar-text': isDark ? '#ffffff' : '#111827',\n '--pollar-muted': isDark ? '#9ca3af' : '#6b7280',\n '--pollar-input-bg': isDark ? '#374151' : 'rgba(0,0,0,0.04)',\n '--pollar-error-text': isDark ? '#f87171' : '#dc2626',\n '--pollar-success-text': isDark ? '#4ade80' : '#16a34a',\n } as React.CSSProperties;\n\n const [showXdr, setShowXdr] = useState(false);\n const [copied, setCopied] = useState(false);\n\n function handleCopyHash() {\n if (!submitResult) return;\n navigator.clipboard.writeText(submitResult.hash).then(() => {\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n });\n }\n\n const explorerNetwork = buildResult?.summary.network?.toLowerCase().includes('testnet') ? 'testnet' : 'public';\n const explorerUrl = submitResult ? `https://stellar.expert/explorer/${explorerNetwork}/tx/${submitResult.hash}` : null;\n\n const isError = transactionStateCode.includes('ERROR');\n const isSuccess = transactionStateCode.includes('SUCCESS');\n const isBuilt = buildResult && transactionStateCode === 'BUILD_TRANSACTION_SUCCESS';\n const isDone = submitResult && transactionStateCode === 'SIGN_SEND_TRANSACTION_START';\n\n return (\n <div className=\"pollar-tx-modal\" data-theme={theme} style={cssVars} onClick={(e) => e.stopPropagation()}>\n <div className=\"pollar-tx-header\">\n <h2 className=\"pollar-tx-title\">Transaction</h2>\n <button className=\"pollar-tx-close\" onClick={onClose} aria-label=\"Close\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <path d=\"M2 2l12 12M14 2L2 14\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n </button>\n </div>\n\n {isBuilt && (\n <>\n <div className=\"pollar-tx-summary\">\n <p className=\"pollar-tx-summary-title\">Details</p>\n <ul className=\"pollar-tx-summary-lines\">\n {buildResult.summary.lines.map((line, i) => (\n <li key={i} className=\"pollar-tx-summary-line\">\n {line}\n </li>\n ))}\n </ul>\n </div>\n <div className=\"pollar-tx-meta\">\n <div className=\"pollar-tx-meta-item\">\n <span className=\"pollar-tx-meta-label\">Network</span>\n <span className=\"pollar-tx-meta-value\">{buildResult.summary.network}</span>\n </div>\n <div className=\"pollar-tx-meta-item\">\n <span className=\"pollar-tx-meta-label\">Fee</span>\n <span className=\"pollar-tx-meta-value\">{buildResult.summary.fee}</span>\n </div>\n </div>\n <div className=\"pollar-tx-xdr\">\n <button className=\"pollar-tx-xdr-toggle\" onClick={() => setShowXdr((v) => !v)}>\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n aria-hidden\n style={{ transform: showXdr ? 'rotate(90deg)' : 'rotate(0deg)', transition: 'transform 150ms' }}\n >\n <path d=\"M4 2l4 4-4 4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n Raw transaction (XDR)\n </button>\n {showXdr && <pre className=\"pollar-tx-xdr-content\">{buildResult.unsignedXdr}</pre>}\n </div>\n </>\n )}\n\n {submitResult && transactionStateCode === 'SIGN_SEND_TRANSACTION_SUCCESS' && (\n <div className=\"pollar-tx-result\">\n <span className=\"pollar-tx-result-label\">Transaction hash</span>\n <span className=\"pollar-tx-result-hash\">{submitResult.hash}</span>\n <div className=\"pollar-tx-result-actions\">\n <button className=\"pollar-tx-result-btn\" onClick={handleCopyHash}>\n {copied ? (\n <>\n <svg width=\"13\" height=\"13\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden>\n <circle cx=\"7\" cy=\"7\" r=\"7\" fill=\"currentColor\" />\n <path\n d=\"M3.5 7l2.5 2.5 4.5-5\"\n stroke=\"white\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n Copied!\n </>\n ) : (\n <>\n <svg width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\" aria-hidden>\n <rect x=\"4\" y=\"4\" width=\"8\" height=\"8\" rx=\"1.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path\n d=\"M3 9H2a1 1 0 01-1-1V2a1 1 0 011-1h6a1 1 0 011 1v1\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n Copy hash\n </>\n )}\n </button>\n {explorerUrl && (\n <a className=\"pollar-tx-result-btn\" href={explorerUrl} target=\"_blank\" rel=\"noopener noreferrer\">\n <svg width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\" aria-hidden>\n <path\n d=\"M5 2H2a1 1 0 00-1 1v8a1 1 0 001 1h8a1 1 0 001-1V8\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n <path\n d=\"M8 1h4m0 0v4m0-4L6 7\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n View on Explorer\n </a>\n )}\n </div>\n </div>\n )}\n\n {isBuilt && (\n <button className=\"pollar-tx-sign-btn\" onClick={onSignAndSend}>\n Sign & Send\n </button>\n )}\n {/*{isError && (*/}\n {/* <button className=\"pollar-tx-sign-btn\" onClick={onRetry}>*/}\n {/* Retry*/}\n {/* </button>*/}\n {/*)}*/}\n {isDone && (\n <button className=\"pollar-tx-sign-btn\" onClick={onClose}>\n Done\n </button>\n )}\n\n <ModalStatusBanner\n message={TRANSACTION_CODE_MESSAGES[transactionStateCode] ?? ''}\n status={status}\n />\n\n <PollarModalFooter />\n </div>\n );\n}\n","'use client';\n\nimport { StateTransactionCodes, TxBuildResponse, TxSignSendResponse } from '@pollar/core';\nimport { usePollar } from '../../context';\nimport './TransactionModal.css';\nimport { TransactionModalTemplate } from './TransactionModalTemplate';\n\ninterface TransactionModalProps {\n onClose: () => void;\n}\n\nconst isTxBuildResponseContent = (data: unknown): data is TxBuildResponse['content'] => {\n if (!data || typeof data !== 'object') return false;\n const d = data as Record<string, unknown>;\n return (\n typeof d.unsignedXdr === 'string' &&\n typeof d.networkPassphrase === 'string' &&\n typeof d.estimatedFee === 'string' &&\n d.summary !== null &&\n typeof d.summary === 'object'\n );\n};\n\nconst isTxSignSendResponseContent = (data: unknown): data is TxSignSendResponse['content'] => {\n if (!data || typeof data !== 'object') return false;\n const d = data as Record<string, unknown>;\n return typeof d.hash === 'string' && (d.status === 'PENDING' || d.status === 'SUCCESS' || d.status === 'FAILED');\n};\n\nexport function TransactionModal({ onClose }: TransactionModalProps) {\n const {\n getClient,\n styles,\n state: { transaction },\n } = usePollar();\n const { theme = 'light', accentColor = '#005DB4' } = styles;\n\n let buildResult: TxBuildResponse['content'] | null = null;\n const transactionStateCode = transaction.code as StateTransactionCodes;\n const content = (transaction.data as { content: unknown })?.content;\n if (isTxBuildResponseContent(content)) {\n buildResult = content;\n }\n let submitResult: TxSignSendResponse['content'] | null = null;\n if (isTxSignSendResponseContent(content)) {\n submitResult = content;\n }\n\n async function handleSignAndSend() {\n if (buildResult) {\n await getClient().submitTx(buildResult.unsignedXdr);\n }\n }\n\n return (\n <div className=\"pollar-overlay\" onClick={onClose}>\n <TransactionModalTemplate\n theme={theme}\n accentColor={accentColor}\n transactionStateCode={transactionStateCode}\n status={transaction.status}\n buildResult={buildResult}\n submitResult={submitResult}\n onClose={onClose}\n onSignAndSend={handleSignAndSend}\n onRetrySignAndSend={handleSignAndSend}\n />\n </div>\n );\n}\n","'use client';\n\nimport {\n PollarApiClient,\n PollarApplicationConfigContent,\n PollarClient,\n PollarClientConfig,\n PollarLoginOptions,\n PollarStateEntry,\n PollarStateVar,\n STATE_VAR_CODES,\n StateStatus,\n StellarClient,\n TxBuildBody,\n} from '@pollar/core';\nimport { createContext, ReactNode, useContext, useEffect, useMemo, useState } from 'react';\nimport { ModalErrorBoundary } from './components/commons';\nimport { LoginModal } from './components/login-modal/LoginModal';\nimport { TransactionModal } from './components/transaction-modal/TransactionModal';\nimport type { PollarConfig, PollarStyles } from './types';\n\nconst emptyResponse = {\n application: {\n name: '',\n },\n styles: {},\n};\n\nasync function fetchRemoteConfig(api: PollarApiClient): Promise<PollarConfig> {\n try {\n const { data, error } = await api.GET(`/applications/config`);\n if (!data || error) {\n return emptyResponse;\n }\n return data.content;\n } catch {\n return emptyResponse;\n }\n}\n\ntype PollarState = { [key in PollarStateVar]: PollarStateEntry };\n\ninterface PollarContextValue {\n walletAddress: string;\n getClient: () => PollarClient;\n openLoginModal: () => void;\n sendTransaction: (\n operation: TxBuildBody['operation'],\n params: TxBuildBody['params'],\n options?: TxBuildBody['options'],\n ) => void;\n openTransactionModal: () => void;\n isAuthenticated: boolean;\n login: (options: PollarLoginOptions) => void;\n logout: () => void;\n config: PollarConfig;\n styles: PollarStyles;\n state: PollarState;\n // stellar\n getBalance: (publicKey?: string) => any;\n buildTx: (\n operation: TxBuildBody['operation'],\n params: TxBuildBody['params'],\n options?: TxBuildBody['options'],\n ) => Promise<void>;\n submitTx: (signedXdr: string) => Promise<void>;\n}\n\nconst PollarContext = createContext<PollarContextValue | null>(null);\n\ninterface PollarProviderProps {\n config: PollarClientConfig;\n styles?: PollarStyles;\n children: ReactNode;\n}\n\nexport function PollarProvider({ config, styles: propStyles, children }: PollarProviderProps) {\n const [pollarClient] = useState<PollarClient>(() => new PollarClient(config));\n const [stellarClient] = useState<StellarClient>(() => new StellarClient(config.stellarNetwork || 'testnet'));\n const [sessionState, setSessionState] = useState<PollarApplicationConfigContent | null>(null);\n const [state, setState] = useState<PollarState>({\n network: {\n var: 'network',\n code: STATE_VAR_CODES.network.NONE,\n status: StateStatus.NONE,\n level: 'info',\n ts: 0,\n },\n transaction: {\n var: 'transaction',\n code: STATE_VAR_CODES.transaction.NONE,\n status: StateStatus.NONE,\n level: 'info',\n ts: 0,\n },\n });\n const [remoteConfig, setRemoteConfig] = useState<PollarConfig>(emptyResponse);\n const [styles, setStyles] = useState<PollarStyles>(propStyles ?? {});\n\n useEffect(() => {\n return pollarClient.onStateChange((stateEntry) => {\n setState((prevState) => {\n if (JSON.stringify(prevState[stateEntry.var]) !== JSON.stringify(stateEntry)) {\n return { ...prevState, [stateEntry.var]: stateEntry };\n }\n return prevState;\n });\n });\n }, [pollarClient]);\n\n useEffect(() => {\n return pollarClient.onAuthStateChange((authState) => {\n if (authState.step === 'authenticated') {\n setSessionState((prev) => (JSON.stringify(prev) !== JSON.stringify(authState.session) ? authState.session : prev));\n } else if (authState.step === 'idle') {\n setSessionState(null);\n }\n });\n }, [pollarClient]);\n\n useEffect(() => {\n fetchRemoteConfig(pollarClient.getApi())\n .then((fetched) => {\n setRemoteConfig(fetched);\n setStyles({\n ...fetched.styles,\n ...propStyles,\n providers: { ...fetched.styles?.providers, ...propStyles?.providers },\n });\n })\n .catch(() => {\n setStyles(propStyles ?? {});\n });\n }, [pollarClient]);\n\n const [loginModalOpen, setLoginModalOpen] = useState(false);\n const [transactionModalOpen, setTransactionModalOpen] = useState(false);\n\n const contextValue: PollarContextValue = useMemo(\n () =>\n ({\n walletAddress: sessionState?.wallet?.publicKey || '',\n getClient: () => pollarClient,\n state,\n login: (options: PollarLoginOptions) => pollarClient.login(options),\n logout: () => pollarClient.logout(),\n isAuthenticated: pollarClient.isAuthenticated(),\n buildTx: (operation, params, options) => pollarClient.buildTx(operation, params, options),\n submitTx: (signedXdr: string) => pollarClient.submitTx(signedXdr),\n sendTransaction: (operation, params, options) => {\n void pollarClient.buildTx(operation, params, options);\n setTransactionModalOpen(true);\n },\n openTransactionModal: () => setTransactionModalOpen(true),\n openLoginModal: () => setLoginModalOpen(true),\n config: remoteConfig,\n styles,\n async getBalance(publicKey?: string) {\n const pk = publicKey || sessionState?.wallet?.publicKey;\n if (pk) {\n return await stellarClient.getBalances(pk);\n }\n return { success: false, errorCode: 'NO_WALLET_FOUND', balances: [] };\n },\n }) as PollarContextValue,\n [sessionState, remoteConfig, styles, pollarClient, state],\n );\n\n return (\n <PollarContext.Provider value={contextValue}>\n {children}\n {loginModalOpen && (\n <ModalErrorBoundary onClose={() => setLoginModalOpen(false)}>\n <LoginModal onClose={() => setLoginModalOpen(false)} />\n </ModalErrorBoundary>\n )}\n {transactionModalOpen && (\n <ModalErrorBoundary onClose={() => setTransactionModalOpen(false)}>\n <TransactionModal onClose={() => setTransactionModalOpen(false)} />\n </ModalErrorBoundary>\n )}\n </PollarContext.Provider>\n );\n}\n\nexport function usePollar() {\n const ctx = useContext(PollarContext);\n if (!ctx) {\n throw new Error('usePollar must be used inside <PollarProvider>');\n }\n return ctx;\n}\n","'use client';\n\nimport { useEffect, useRef, useState } from 'react';\nimport { LOGO_POLLAR } from './constants';\nimport { usePollar } from './context';\nimport './WalletButton.css';\n\nfunction cropWallet(address: string) {\n if (address.length <= 12) return address;\n return `${address.slice(0, 6)}...${address.slice(-4)}`;\n}\n\nfunction ButtonLogo() {\n return <img src={LOGO_POLLAR} alt=\"Pollar\" width={22} height={22} className=\"wallet-btn-logo\" />;\n}\n\nexport function WalletButton() {\n const { getClient, walletAddress, styles, openLoginModal } = usePollar();\n const [open, setOpen] = useState(false);\n const [copied, setCopied] = useState(false);\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n const { theme = 'light', accentColor = '#005DB4' } = styles;\n const isDark = theme === 'dark';\n const dropdownBg = isDark ? '#18181b' : '#fff';\n const dropdownBorder = isDark ? '#3f3f46' : '#e4e4e7';\n const itemColor = isDark ? '#fafafa' : '#18181b';\n\n useEffect(() => {\n function handleClickOutside(e: MouseEvent) {\n if (wrapperRef.current && !wrapperRef.current.contains(e.target as Node)) {\n setOpen(false);\n }\n }\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, []);\n\n async function handleCopy() {\n if (!walletAddress) return;\n await navigator.clipboard.writeText(walletAddress);\n setCopied(true);\n setTimeout(() => setCopied(false), 1500);\n }\n\n function handleLogout() {\n setOpen(false);\n getClient().logout();\n }\n\n if (!walletAddress) {\n return (\n <button type=\"button\" className=\"wallet-login-btn\" style={{ backgroundColor: accentColor }} onClick={openLoginModal}>\n <ButtonLogo />\n Login with Pollar\n </button>\n );\n }\n\n return (\n <div className=\"wallet-wrapper\" ref={wrapperRef}>\n <button className=\"wallet-btn\" style={{ backgroundColor: accentColor }} onClick={() => setOpen((v) => !v)}>\n {cropWallet(walletAddress)}\n <svg\n className={`wallet-chevron${open ? ' open' : ''}`}\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"2,4 6,8 10,4\" />\n </svg>\n </button>\n\n {open && (\n <div className=\"wallet-dropdown\" style={{ backgroundColor: dropdownBg, borderColor: dropdownBorder }}>\n <button className=\"wallet-dropdown-item\" style={{ color: itemColor }} onClick={handleCopy}>\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" />\n <path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\" />\n </svg>\n {copied ? 'Copied!' : 'Copy address'}\n </button>\n <button className=\"wallet-dropdown-item danger\" onClick={handleLogout}>\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\" />\n <polyline points=\"16,17 21,12 16,7\" />\n <line x1=\"21\" y1=\"12\" x2=\"9\" y2=\"12\" />\n </svg>\n Log out\n </button>\n </div>\n )}\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/constants.ts","../src/components/commons.tsx","../src/components/kyc-modal/KycStatus.tsx","../src/components/kyc-modal/KycModalTemplate.tsx","../src/components/kyc-modal/KycModal.tsx","../src/components/login-modal/EmailCodeInput.tsx","../src/components/login-modal/GithubButton.tsx","../src/components/login-modal/GoogleButton.tsx","../src/components/login-modal/LoginModalTemplate.tsx","../src/components/login-modal/LoginModal.tsx","../src/components/ramp-widget/RouteDisplay.tsx","../src/components/ramp-widget/RampWidgetTemplate.tsx","../src/components/ramp-widget/RampWidget.tsx","../src/components/transaction-modal/TransactionModalTemplate.tsx","../src/components/transaction-modal/TransactionModal.tsx","../src/components/tx-history-modal/TxHistoryModalTemplate.tsx","../src/components/tx-history-modal/TxHistoryModal.tsx","../src/components/wallet-balance-modal/WalletBalanceModal.tsx","../src/context.tsx","../src/WalletButton.tsx"],"names":["jsxs","jsx","useState","Fragment","useRef","useEffect","AUTH_ERROR_CODES","PAGE_SIZE"],"mappings":"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","file":"index.mjs","sourcesContent":["export const LOGO_POLLAR = 'https://pollar.xyz/assets/logo_pollar.png';\nexport const LOGO_GITHUB = 'https://pollar.xyz/assets/GitHub_Invertocat_White.png';\n// export const LOGO_FREIGHTER = 'https://framerusercontent.com/images/hJLECaObEXnPQkYrO2ZccbSk.png';\nexport const LOGO_FREIGHTER = 'https://pollar.xyz/assets/logo_freighter.png';\n// export const LOGO_ALBEDO = 'https://albedo.link/img/logo.svg';\nexport const LOGO_ALBEDO = 'https://pollar.xyz/assets/logo_albedo.svg';\n","type StateStatus = 'NONE' | 'LOADING' | 'SUCCESS' | 'ERROR';\n\nimport { Component, type ReactNode } from 'react';\nimport { LOGO_POLLAR } from '../constants';\n\ndeclare const __POLLAR_VERSION__: string;\n\ninterface ModalErrorBoundaryState {\n crashed: boolean;\n}\n\nexport class ModalErrorBoundary extends Component<{ children: ReactNode; onClose: () => void }, ModalErrorBoundaryState> {\n state: ModalErrorBoundaryState = { crashed: false };\n\n static getDerivedStateFromError(): ModalErrorBoundaryState {\n return { crashed: true };\n }\n\n componentDidCatch(error: unknown) {\n console.error('[Pollar] Modal crashed:', error);\n }\n\n render() {\n if (this.state.crashed) {\n this.props.onClose();\n return null;\n }\n return this.props.children;\n }\n}\n\nexport const PollarModalFooter = () => {\n return (\n <div className=\"pollar-footer\">\n <span className=\"pollar-footer-protected\">Protected by</span>\n <div className=\"pollar-footer-brand\">\n <img src={LOGO_POLLAR} alt=\"Pollar\" className=\"pollar-footer-logo\" />\n <span className=\"pollar-footer-name\">Pollar</span>\n <span className=\"pollar-footer-version\">v{__POLLAR_VERSION__}</span>\n </div>\n </div>\n );\n};\n\ninterface ModalStatusBannerProps {\n message: string;\n status: StateStatus;\n onCancel?: (() => void) | undefined;\n onRetry?: (() => void) | undefined;\n}\n\nexport function ModalStatusBanner({ message, status, onCancel, onRetry }: ModalStatusBannerProps) {\n if (!message && status === 'NONE') {\n return <div className=\"pollar-status\" />;\n }\n\n const isLoading = status === 'LOADING';\n const icon =\n status === 'ERROR' ? (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden>\n <circle cx=\"7\" cy=\"7\" r=\"7\" fill=\"currentColor\" />\n <path d=\"M4.5 4.5l5 5M9.5 4.5l-5 5\" stroke=\"white\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n ) : status === 'SUCCESS' ? (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden>\n <circle cx=\"7\" cy=\"7\" r=\"7\" fill=\"currentColor\" />\n <path d=\"M3.5 7l2.5 2.5 4.5-5\" stroke=\"white\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n ) : status === 'LOADING' ? (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden>\n <circle cx=\"7\" cy=\"7\" r=\"5.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeDasharray=\"22 10\" />\n </svg>\n ) : null;\n\n return (\n <div className=\"pollar-status\" data-kind={status}>\n {icon}\n <span>{message}</span>\n {isLoading && onCancel && (\n <button type=\"button\" className=\"pollar-status-cancel\" onClick={onCancel}>\n Cancel\n </button>\n )}\n {status === 'ERROR' && onRetry && (\n <button type=\"button\" className=\"pollar-status-cancel\" onClick={onRetry}>\n Retry\n </button>\n )}\n </div>\n );\n}","'use client';\n\nimport type { KycStatus as KycStatusValue } from '@pollar/core';\nimport type { CSSProperties } from 'react';\n\ninterface KycStatusProps {\n status: KycStatusValue;\n className?: string;\n}\n\nconst STATUS_CONFIG: Record<KycStatusValue, { label: string; color: string; dot: boolean }> = {\n none: { label: 'Not started', color: '#6b7280', dot: false },\n pending: { label: 'Pending review', color: '#f59e0b', dot: true },\n approved: { label: 'Verified', color: '#10b981', dot: false },\n rejected: { label: 'Rejected', color: '#ef4444', dot: false },\n};\n\nexport function KycStatus({ status, className }: KycStatusProps) {\n const config = STATUS_CONFIG[status] ?? STATUS_CONFIG.none;\n return (\n <span\n className={`pollar-kyc-badge${className ? ` ${className}` : ''}`}\n style={{ '--pollar-kyc-color': config.color } as CSSProperties}\n >\n {config.dot && <span className=\"pollar-kyc-badge-dot\" />}\n {config.label}\n </span>\n );\n}\n","'use client';\n\nimport type { KycProvider, KycStartResponse, KycStatus as KycStatusValue } from '@pollar/core';\nimport type { CSSProperties } from 'react';\nimport { KycStatus as KycStatusBadge } from './KycStatus';\n\nexport type KycStep = 'select_provider' | 'verifying' | 'polling' | 'done';\n\ninterface KycModalTemplateProps {\n theme: string;\n accentColor: string;\n step: KycStep;\n providers: KycProvider[];\n selectedProvider: KycProvider | null;\n session: KycStartResponse | null;\n kycStatus: KycStatusValue;\n isLoading: boolean;\n onSelectProvider: (provider: KycProvider) => void;\n onDoneVerifying: () => void;\n onClose: () => void;\n}\n\nexport function KycModalTemplate({\n theme,\n accentColor,\n step,\n providers,\n selectedProvider,\n session,\n kycStatus,\n isLoading,\n onSelectProvider,\n onDoneVerifying,\n onClose,\n}: KycModalTemplateProps) {\n const isDark = theme === 'dark';\n\n const cssVars = {\n '--pollar-accent': accentColor,\n '--pollar-buttons-border-radius': '6px',\n '--pollar-buttons-height': '44px',\n '--pollar-bg': isDark ? '#1a1a1a' : '#ffffff',\n '--pollar-border': isDark ? '#374151' : '#e5e7eb',\n '--pollar-text': isDark ? '#ffffff' : '#111827',\n '--pollar-muted': isDark ? '#9ca3af' : '#6b7280',\n '--pollar-input-bg': isDark ? '#374151' : '#f9fafb',\n } as CSSProperties;\n\n return (\n <div className=\"pollar-kyc-modal\" style={cssVars} onClick={(e) => e.stopPropagation()}>\n <div className=\"pollar-kyc-header\">\n <h2 className=\"pollar-kyc-title\">Identity verification</h2>\n <p className=\"pollar-kyc-subtitle\">\n {step === 'select_provider' && 'Choose your verification provider'}\n {step === 'verifying' && `Verifying with ${selectedProvider?.name}`}\n {step === 'polling' && 'Waiting for verification result'}\n {step === 'done' && 'Verification complete'}\n </p>\n </div>\n\n {step === 'select_provider' && (\n <div className=\"pollar-kyc-providers\">\n {providers.length === 0 && <p style={{ color: 'var(--pollar-muted)', textAlign: 'center' }}>No providers available for your country.</p>}\n {providers.map((p) => (\n <button key={p.id} type=\"button\" className=\"pollar-kyc-provider-btn\" disabled={isLoading} onClick={() => onSelectProvider(p)}>\n <span className=\"pollar-kyc-provider-name\">{p.name}</span>\n <span className=\"pollar-kyc-provider-flow\">{p.flow}</span>\n </button>\n ))}\n </div>\n )}\n\n {step === 'verifying' && selectedProvider && (\n <>\n <div className=\"pollar-kyc-iframe-wrap\">\n {session?.kycUrl ? (\n <iframe className=\"pollar-kyc-iframe\" src={session.kycUrl} title=\"KYC verification\" allow=\"camera; microphone\" />\n ) : (\n <div className=\"pollar-kyc-iframe-mock\">\n <span>🔒</span>\n <span>\n {selectedProvider.flow === 'form'\n ? 'Form-based KYC — fields will render here once backend is connected'\n : 'KYC iframe will load here once backend is connected'}\n </span>\n <code style={{ fontSize: '0.7rem', opacity: 0.6 }}>provider: {selectedProvider.id}</code>\n </div>\n )}\n </div>\n <div className=\"pollar-modal-actions\">\n <button type=\"button\" className=\"pollar-btn-secondary\" onClick={onClose}>\n Cancel\n </button>\n <button type=\"button\" className=\"pollar-btn-primary\" onClick={onDoneVerifying}>\n I've completed verification\n </button>\n </div>\n </>\n )}\n\n {step === 'polling' && (\n <div className=\"pollar-kyc-polling\">\n <div className=\"pollar-spinner\" />\n <p className=\"pollar-kyc-polling-text\">Checking verification status…</p>\n </div>\n )}\n\n {step === 'done' && (\n <div className=\"pollar-kyc-result\">\n <span className=\"pollar-kyc-result-icon\">{kycStatus === 'approved' ? '✅' : '❌'}</span>\n <KycStatusBadge status={kycStatus} />\n <p className=\"pollar-kyc-result-text\">\n {kycStatus === 'approved' ? 'Your identity has been verified successfully.' : 'Verification was not approved. Please try again.'}\n </p>\n <div className=\"pollar-modal-actions\">\n <button type=\"button\" className=\"pollar-btn-primary\" onClick={onClose}>\n Close\n </button>\n </div>\n </div>\n )}\n </div>\n );\n}\n","'use client';\n\nimport { type KycProvider, type KycStartResponse, type KycStatus as KycStatusValue } from '@pollar/core';\nimport { useEffect, useState } from 'react';\nimport { usePollar } from '../../context';\nimport type { KycStep } from './KycModalTemplate';\nimport { KycModalTemplate } from './KycModalTemplate';\nimport '../shared.css';\nimport './KycModal.css';\n\ninterface KycModalProps {\n onClose: () => void;\n /** ISO 3166-1 alpha-2 country code to filter providers. Defaults to 'MX'. */\n country?: string;\n /** KYC level required. Defaults to 'basic'. */\n level?: 'basic' | 'intermediate' | 'enhanced';\n /** Called when KYC is successfully approved. */\n onApproved?: () => void;\n}\n\nexport function KycModal({ onClose, country = 'MX', level = 'basic', onApproved }: KycModalProps) {\n const { getClient, styles } = usePollar();\n\n const [step, setStep] = useState<KycStep>('select_provider');\n const [providers, setProviders] = useState<KycProvider[]>([]);\n const [selectedProvider, setSelectedProvider] = useState<KycProvider | null>(null);\n const [session, setSession] = useState<KycStartResponse | null>(null);\n const [kycStatus, setKycStatus] = useState<KycStatusValue>('none');\n const [isLoading, setIsLoading] = useState(false);\n\n const client = getClient();\n const { theme = 'light', accentColor = '#005DB4' } = styles;\n\n useEffect(() => {\n setIsLoading(true);\n client.getKycProviders(country)\n .then((result) => setProviders(result.providers))\n .catch(() => setProviders([]))\n .finally(() => setIsLoading(false));\n }, [country]);\n\n async function handleSelectProvider(provider: KycProvider) {\n setSelectedProvider(provider);\n setIsLoading(true);\n try {\n const result = await client.resolveKyc(provider.id, level);\n if (result.alreadyApproved) {\n setKycStatus('approved');\n setStep('done');\n onApproved?.();\n return;\n }\n setSession(result as KycStartResponse);\n setStep('verifying');\n } catch {\n setStep('select_provider');\n } finally {\n setIsLoading(false);\n }\n }\n\n async function handleDoneVerifying() {\n if (!selectedProvider) return;\n setStep('polling');\n try {\n const finalStatus = await client.pollKycStatus(selectedProvider.id, { intervalMs: 3000, timeoutMs: 120_000 });\n setKycStatus(finalStatus);\n setStep('done');\n if (finalStatus === 'approved') onApproved?.();\n } catch {\n setKycStatus('rejected');\n setStep('done');\n }\n }\n\n return (\n <div className=\"pollar-overlay\" onClick={onClose}>\n <KycModalTemplate\n theme={theme}\n accentColor={accentColor}\n step={step}\n providers={providers}\n selectedProvider={selectedProvider}\n session={session}\n kycStatus={kycStatus}\n isLoading={isLoading}\n onSelectProvider={handleSelectProvider}\n onDoneVerifying={handleDoneVerifying}\n onClose={onClose}\n />\n </div>\n );\n}\n","import { useRef, useState } from 'react';\n\ninterface EmailCodeInputProps {\n email?: string;\n onSubmit: (code: string) => void;\n}\n\nexport function EmailCodeInput({ email, onSubmit }: EmailCodeInputProps) {\n const [digits, setDigits] = useState(['', '', '', '', '', '']);\n const inputRefs = useRef<(HTMLInputElement | null)[]>([]);\n\n function submit(next: string[]) {\n if (next.every(Boolean)) onSubmit(next.join(''));\n }\n\n function handleChange(index: number, value: string) {\n const cleaned = value.replace(/\\D/g, '').slice(-1);\n const next = digits.map((d, i) => (i === index ? cleaned : d));\n setDigits(next);\n if (cleaned && index < 5) inputRefs.current[index + 1]?.focus();\n submit(next);\n }\n\n function handleKeyDown(index: number, e: React.KeyboardEvent<HTMLInputElement>) {\n if (e.key === 'Backspace' && !digits[index] && index > 0) {\n inputRefs.current[index - 1]?.focus();\n }\n }\n\n function handlePaste(e: React.ClipboardEvent<HTMLInputElement>) {\n e.preventDefault();\n const text = e.clipboardData.getData('text').replace(/\\D/g, '').slice(0, 6);\n const next = Array.from({ length: 6 }, (_, i) => text[i] ?? '');\n setDigits(next);\n inputRefs.current[Math.min(text.length - 1, 5)]?.focus();\n submit(next);\n }\n\n return (\n <div className=\"pollar-code-section\">\n <p className=\"pollar-code-label\">\n Enter the 6-digit code sent to{' '}\n {email ? <strong>{email}</strong> : 'your email'}\n </p>\n <div className=\"pollar-code-inputs\">\n {digits.map((digit, i) => (\n <input\n key={i}\n ref={(el) => {\n inputRefs.current[i] = el;\n }}\n type=\"text\"\n inputMode=\"numeric\"\n maxLength={2}\n value={digit}\n className=\"pollar-code-input\"\n onChange={(e) => handleChange(i, e.target.value)}\n onKeyDown={(e) => handleKeyDown(i, e)}\n onPaste={handlePaste}\n />\n ))}\n </div>\n </div>\n );\n}\n","// https://brand.github.com/foundations/logo\nimport './GithubButton.css';\nimport { LOGO_GITHUB } from '../../constants';\n\nexport const GithubButton = ({ disabled, onClick }: { disabled: boolean; onClick: () => void }) => {\n return (\n <button className=\"github-button\" disabled={disabled} onClick={onClick}>\n <img src={LOGO_GITHUB} alt=\"GitHub\" className=\"github-button-icon\" />\n <span className=\"github-button-contents\">Continue with GitHub</span>\n </button>\n );\n};\n","// https://developers.google.com/identity/branding-guidelines\nimport './GoogleButton.css';\n\nexport const GoogleButton = ({ disabled, onClick }: { disabled: boolean; onClick: () => void }) => {\n return (\n <button className=\"gsi-material-button\" disabled={disabled} onClick={onClick}>\n <div className=\"gsi-material-button-state\"></div>\n <div className=\"gsi-material-button-content-wrapper\">\n <div className=\"gsi-material-button-icon\">\n <svg\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 48 48\"\n // xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n style={{ display: 'block' }}\n >\n <path\n fill=\"#EA4335\"\n d=\"M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z\"\n ></path>\n <path\n fill=\"#4285F4\"\n d=\"M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z\"\n ></path>\n <path\n fill=\"#FBBC05\"\n d=\"M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z\"\n ></path>\n <path\n fill=\"#34A853\"\n d=\"M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z\"\n ></path>\n <path fill=\"none\" d=\"M0 0h48v48H0z\"></path>\n </svg>\n </div>\n <span className=\"gsi-material-button-contents\">Continue with Google</span>\n <span style={{ display: 'none' }}>Continue with Google</span>\n </div>\n </button>\n );\n};\n","'use client';\n\nimport { AUTH_ERROR_CODES, AuthState } from '@pollar/core';\n\ntype StateStatus = 'NONE' | 'LOADING' | 'SUCCESS' | 'ERROR';\nimport { type CSSProperties } from 'react';\nimport { LOGO_ALBEDO, LOGO_FREIGHTER, LOGO_POLLAR } from '../../constants';\nimport { ModalStatusBanner, PollarModalFooter } from '../commons';\nimport { EmailCodeInput } from './EmailCodeInput';\nimport { GithubButton } from './GithubButton';\nimport { GoogleButton } from './GoogleButton';\n\nconst AUTH_STATE_MESSAGES: Record<AuthState['step'], string> = {\n idle: '',\n creating_session: 'Initializing…',\n entering_email: '',\n sending_email: 'Sending…',\n entering_code: 'Code sent — check your inbox',\n verifying_email_code: 'Verifying…',\n opening_oauth: 'Redirecting…',\n connecting_wallet: 'Connecting wallet…',\n wallet_not_installed: 'Wallet not installed',\n authenticating_wallet: 'Signing in with wallet…',\n authenticating: 'Authenticating…',\n authenticated: 'Welcome!',\n error: '',\n};\n\nfunction authStateToStatus(step: AuthState['step']): StateStatus {\n const loading: AuthState['step'][] = [\n 'creating_session',\n 'sending_email',\n 'verifying_email_code',\n 'opening_oauth',\n 'connecting_wallet',\n 'authenticating_wallet',\n 'authenticating',\n ];\n const success: AuthState['step'][] = ['authenticated', 'entering_code'];\n const error: AuthState['step'][] = ['error', 'wallet_not_installed'];\n\n if (loading.includes(step)) return 'LOADING';\n if (success.includes(step)) return 'SUCCESS';\n if (error.includes(step)) return 'ERROR';\n return 'NONE';\n}\n\ninterface LoginModalTemplateProps {\n theme: string;\n accentColor: string;\n logoUrl: string | null;\n emailEnabled: boolean;\n embeddedWallets: boolean;\n providers: {\n google: boolean;\n discord: boolean;\n x: boolean;\n github: boolean;\n apple: boolean;\n };\n appName: string;\n email?: string;\n onEmailChange?: (email: string) => void;\n onEmailSubmit?: () => void;\n onSocialLogin?: (provider: 'google' | 'github') => void;\n onFreighterConnect?: () => void;\n onAlbedoConnect?: () => void;\n authState: AuthState;\n codeInputKey?: number;\n onCodeSubmit?: (code: string) => void;\n onBack: () => void;\n onCancel: () => void;\n onRetry: () => void;\n}\n\nexport function LoginModalTemplate({\n theme,\n accentColor,\n logoUrl,\n emailEnabled,\n embeddedWallets,\n providers,\n appName,\n email = '',\n onEmailChange,\n onEmailSubmit,\n onSocialLogin,\n onFreighterConnect,\n onAlbedoConnect,\n authState,\n codeInputKey,\n onCodeSubmit,\n onBack,\n onCancel,\n onRetry,\n}: LoginModalTemplateProps) {\n const isDark = theme === 'dark';\n const enabledSocial = Object.entries(providers).filter(([, enabled]) => enabled);\n\n const cssVars = {\n '--pollar-accent': accentColor,\n '--pollar-buttons-border-radius': '6px',\n '--pollar-buttons-height': '44px',\n '--pollar-bg': isDark ? '#1a1a1a' : '#ffffff',\n '--pollar-border': isDark ? '#374151' : '#e5e7eb',\n '--pollar-text': isDark ? '#ffffff' : '#111827',\n '--pollar-muted': isDark ? '#9ca3af' : '#6b7280',\n '--pollar-input-bg': isDark ? '#374151' : '#ffffff',\n '--pollar-error-bg': isDark ? '#2a1515' : '#fef2f2',\n '--pollar-error-border': isDark ? '#7f1d1d' : '#fecaca',\n '--pollar-error-text': isDark ? '#f87171' : '#dc2626',\n } as CSSProperties;\n\n const status = authStateToStatus(authState.step);\n const isLoading = status === 'LOADING';\n const isEmailCodeError =\n authState.step === 'error' &&\n (authState.errorCode === AUTH_ERROR_CODES.EMAIL_CODE_EXPIRED ||\n authState.errorCode === AUTH_ERROR_CODES.EMAIL_CODE_INVALID);\n const awaitingEmailCode =\n authState.step === 'entering_code' || authState.step === 'verifying_email_code' || isEmailCodeError;\n const statusMessage =\n authState.step === 'error' ? authState.message : AUTH_STATE_MESSAGES[authState.step];\n\n return (\n <div className=\"pollar-modal\" style={cssVars} onClick={(e) => e.stopPropagation()}>\n <div className=\"pollar-header\">\n <div className=\"pollar-logo-wrap\">\n <img src={logoUrl ?? LOGO_POLLAR} alt=\"Logo\" className=\"pollar-logo\" />\n </div>\n <h2 className=\"pollar-title\">{appName}</h2>\n <p className=\"pollar-subtitle\">Log in or sign up</p>\n </div>\n\n {awaitingEmailCode ? (\n <>\n <button type=\"button\" className=\"pollar-back-btn\" onClick={onBack}>\n ← Back\n </button>\n <EmailCodeInput key={codeInputKey} email={email} onSubmit={onCodeSubmit ?? (() => {})} />\n </>\n ) : (\n <>\n {emailEnabled && (\n <div className=\"pollar-email-section\">\n <input\n type=\"email\"\n placeholder=\"you@email.com\"\n value={email}\n disabled={isLoading}\n className=\"pollar-email-input\"\n onChange={(e) => onEmailChange?.(e.target.value)}\n onKeyDown={(e) => e.key === 'Enter' && onEmailSubmit?.()}\n />\n <button type=\"button\" disabled={isLoading || !email} className=\"pollar-submit-btn\" onClick={onEmailSubmit}>\n Submit\n </button>\n </div>\n )}\n\n {emailEnabled && enabledSocial.length > 0 && (\n <div className=\"pollar-divider\">\n <div className=\"pollar-divider-line\" />\n <div className=\"pollar-divider-label\">\n <span className=\"pollar-divider-text\">or continue with</span>\n </div>\n </div>\n )}\n\n {enabledSocial.length > 0 && (\n <div className=\"pollar-social-list\">\n {enabledSocial.some(([key]) => key === 'google') && (\n <GoogleButton disabled={isLoading} onClick={() => onSocialLogin?.('google')} />\n )}\n {enabledSocial.some(([key]) => key === 'github') && (\n <GithubButton disabled={isLoading} onClick={() => onSocialLogin?.('github')} />\n )}\n </div>\n )}\n\n {embeddedWallets && (\n <div className=\"pollar-wallet-section\">\n <p className=\"pollar-wallet-label\">Continue with a wallet</p>\n <button type=\"button\" disabled={isLoading} className=\"pollar-wallet-btn\" onClick={onFreighterConnect}>\n <img src={LOGO_FREIGHTER} alt=\"Freighter\" className=\"pollar-wallet-icon\" />\n Freighter\n </button>\n <button type=\"button\" disabled={isLoading} className=\"pollar-wallet-btn\" onClick={onAlbedoConnect}>\n <img src={LOGO_ALBEDO} alt=\"Albedo\" className=\"pollar-wallet-icon\" />\n Albedo\n </button>\n </div>\n )}\n </>\n )}\n\n <ModalStatusBanner\n message={statusMessage}\n status={status}\n onCancel={onCancel}\n onRetry={isEmailCodeError ? undefined : onRetry}\n />\n\n <PollarModalFooter />\n </div>\n );\n}","'use client';\n\nimport { AUTH_ERROR_CODES, AuthState, WalletType } from '@pollar/core';\nimport { useEffect, useRef, useState } from 'react';\nimport { usePollar } from '../../context';\nimport { LoginModalTemplate } from './LoginModalTemplate';\nimport '../shared.css';\nimport './LoginModal.css';\n\ninterface LoginModalProps {\n onClose: () => void;\n}\n\nexport function LoginModal({ onClose }: LoginModalProps) {\n const [email, setEmail] = useState('');\n const { getClient, styles, config } = usePollar();\n const [authState, setAuthState] = useState<AuthState>(() => getClient().getAuthState());\n const [codeInputKey, setCodeInputKey] = useState(0);\n const pendingEmail = useRef<string | null>(null);\n\n useEffect(() => {\n return getClient().onAuthStateChange((next) => {\n setAuthState(next);\n if (next.step === 'entering_email' && pendingEmail.current) {\n getClient().sendEmailCode(pendingEmail.current);\n pendingEmail.current = null;\n }\n if (next.step === 'error' && next.errorCode === AUTH_ERROR_CODES.EMAIL_CODE_INVALID) {\n setCodeInputKey((k) => k + 1);\n }\n if (next.step === 'authenticated') {\n setTimeout(onClose, 1000);\n }\n });\n }, []);\n\n const { theme = 'light', accentColor = '#005DB4', logoUrl, emailEnabled, embeddedWallets, providers } = styles;\n\n function handleClose() {\n setEmail('');\n getClient().cancelLogin();\n onClose();\n }\n\n function handleEmailSubmit() {\n if (!email) return;\n pendingEmail.current = email;\n getClient().beginEmailLogin();\n }\n\n function handleSocialLogin(provider: 'google' | 'github') {\n getClient().login({ provider });\n }\n\n function handleWalletConnect(type: WalletType) {\n getClient().loginWallet(type);\n }\n\n function handleVerifyCode(code: string) {\n getClient().verifyEmailCode(code);\n }\n\n function handleBack() {\n setEmail('');\n getClient().cancelLogin();\n }\n\n function handleRetry() {\n getClient().logout();\n if (styles.emailEnabled) {\n getClient().beginEmailLogin();\n }\n }\n\n return (\n <div className=\"pollar-overlay\" onClick={handleClose}>\n <LoginModalTemplate\n theme={theme}\n accentColor={accentColor}\n logoUrl={logoUrl ?? null}\n emailEnabled={!!emailEnabled}\n embeddedWallets={!!embeddedWallets}\n providers={{\n google: !!providers?.google,\n discord: !!providers?.discord,\n x: !!providers?.x,\n github: !!providers?.github,\n apple: !!providers?.apple,\n }}\n appName={config.application?.name ?? 'Pollar'}\n email={email}\n onEmailChange={setEmail}\n onEmailSubmit={handleEmailSubmit}\n onSocialLogin={handleSocialLogin}\n onFreighterConnect={() => handleWalletConnect(WalletType.FREIGHTER)}\n onAlbedoConnect={() => handleWalletConnect(WalletType.ALBEDO)}\n authState={authState}\n codeInputKey={codeInputKey}\n onCodeSubmit={handleVerifyCode}\n onBack={handleBack}\n onCancel={() => getClient().cancelLogin()}\n onRetry={handleRetry}\n />\n </div>\n );\n}\n","'use client';\n\nimport type { RampQuote } from '@pollar/core';\n\ninterface RouteDisplayProps {\n quote: RampQuote;\n onSelect: (quote: RampQuote) => void;\n}\n\nconst RAIL_LABELS: Record<string, string> = {\n SPEI: 'SPEI (Mexico)',\n PIX: 'PIX (Brazil)',\n PSE: 'PSE (Colombia)',\n ACH: 'ACH (US)',\n};\n\nexport function RouteDisplay({ quote, onSelect }: RouteDisplayProps) {\n return (\n <div\n className=\"pollar-ramp-route-card\"\n data-recommended={quote.recommended}\n role=\"button\"\n tabIndex={0}\n onClick={() => onSelect(quote)}\n onKeyDown={(e) => e.key === 'Enter' && onSelect(quote)}\n >\n <div className=\"pollar-ramp-route-left\">\n <span className=\"pollar-ramp-route-provider\">{quote.provider}</span>\n <span className=\"pollar-ramp-route-meta\">\n {RAIL_LABELS[quote.rail] ?? quote.rail} · {quote.protocol} · {quote.estimatedTime}\n </span>\n </div>\n <div className=\"pollar-ramp-route-right\">\n <span className=\"pollar-ramp-route-fee\">\n {quote.fee}% fee\n </span>\n {quote.recommended && <span className=\"pollar-ramp-route-badge\">Best rate</span>}\n </div>\n </div>\n );\n}\n","'use client';\n\nimport type { PaymentInstructions, RampDirection, RampQuote } from '@pollar/core';\nimport type { CSSProperties } from 'react';\nimport { RouteDisplay } from './RouteDisplay';\n\nexport type RampStep = 'input' | 'loading_quote' | 'select_route' | 'payment_instructions';\n\ninterface RampWidgetTemplateProps {\n theme: string;\n accentColor: string;\n step: RampStep;\n direction: RampDirection;\n amount: string;\n currency: string;\n country: string;\n quotes: RampQuote[];\n paymentInstructions: PaymentInstructions | null;\n isLoading: boolean;\n onDirectionChange: (d: RampDirection) => void;\n onAmountChange: (v: string) => void;\n onCurrencyChange: (v: string) => void;\n onCountryChange: (v: string) => void;\n onFindRoute: () => void;\n onSelectQuote: (q: RampQuote) => void;\n onCopy: (value: string) => void;\n onClose: () => void;\n}\n\nconst LOADING_STEPS = ['Detecting your country…', 'Consulting providers…', 'Route found!'];\n\nconst COUNTRY_CURRENCIES: Record<string, string> = {\n MX: 'MXN',\n BR: 'BRL',\n CO: 'COP',\n CL: 'CLP',\n PE: 'PEN',\n AR: 'ARS',\n};\n\nexport function RampWidgetTemplate({\n theme,\n accentColor,\n step,\n direction,\n amount,\n currency,\n country,\n quotes,\n paymentInstructions,\n isLoading,\n onDirectionChange,\n onAmountChange,\n onCurrencyChange,\n onCountryChange,\n onFindRoute,\n onSelectQuote,\n onCopy,\n onClose,\n}: RampWidgetTemplateProps) {\n const isDark = theme === 'dark';\n\n const cssVars = {\n '--pollar-accent': accentColor,\n '--pollar-buttons-border-radius': '6px',\n '--pollar-buttons-height': '44px',\n '--pollar-bg': isDark ? '#1a1a1a' : '#ffffff',\n '--pollar-border': isDark ? '#374151' : '#e5e7eb',\n '--pollar-text': isDark ? '#ffffff' : '#111827',\n '--pollar-muted': isDark ? '#9ca3af' : '#6b7280',\n '--pollar-input-bg': isDark ? '#374151' : '#f9fafb',\n } as CSSProperties;\n\n const stepTitle: Record<RampStep, string> = {\n input: direction === 'onramp' ? 'Buy crypto' : 'Sell crypto',\n loading_quote: 'Finding best route',\n select_route: 'Select provider',\n payment_instructions: 'Payment instructions',\n };\n\n const stepSubtitle: Record<RampStep, string> = {\n input: direction === 'onramp' ? 'Enter the amount you want to deposit' : 'Enter the amount you want to withdraw',\n loading_quote: 'Comparing providers in real time…',\n select_route: 'All prices include fees',\n payment_instructions: 'Send the exact amount to complete your transaction',\n };\n\n return (\n <div className=\"pollar-ramp-modal\" style={cssVars} onClick={(e) => e.stopPropagation()}>\n <div className=\"pollar-ramp-header\">\n <h2 className=\"pollar-ramp-title\">{stepTitle[step]}</h2>\n <p className=\"pollar-ramp-subtitle\">{stepSubtitle[step]}</p>\n </div>\n\n {step === 'input' && (\n <>\n <div className=\"pollar-ramp-tabs\">\n <button type=\"button\" className=\"pollar-ramp-tab\" data-active={direction === 'onramp'} onClick={() => onDirectionChange('onramp')}>\n Buy\n </button>\n <button type=\"button\" className=\"pollar-ramp-tab\" data-active={direction === 'offramp'} onClick={() => onDirectionChange('offramp')}>\n Sell\n </button>\n </div>\n\n <div className=\"pollar-ramp-input-row\">\n <div className=\"pollar-ramp-field\">\n <label className=\"pollar-ramp-label\">Amount</label>\n <input\n type=\"number\"\n className=\"pollar-ramp-input\"\n placeholder=\"0.00\"\n value={amount}\n min=\"0\"\n onChange={(e) => onAmountChange(e.target.value)}\n />\n </div>\n <div className=\"pollar-ramp-field\" style={{ maxWidth: 90 }}>\n <label className=\"pollar-ramp-label\">Currency</label>\n <input\n type=\"text\"\n className=\"pollar-ramp-input\"\n placeholder=\"MXN\"\n value={currency}\n maxLength={5}\n onChange={(e) => onCurrencyChange(e.target.value.toUpperCase())}\n />\n </div>\n </div>\n\n <div className=\"pollar-ramp-field\">\n <label className=\"pollar-ramp-label\">Country</label>\n <select\n className=\"pollar-ramp-input\"\n value={country}\n onChange={(e) => {\n const c = e.target.value;\n onCountryChange(c);\n if (COUNTRY_CURRENCIES[c]) onCurrencyChange(COUNTRY_CURRENCIES[c]);\n }}\n >\n <option value=\"MX\">🇲🇽 Mexico</option>\n <option value=\"BR\">🇧🇷 Brazil</option>\n <option value=\"CO\">🇨🇴 Colombia</option>\n <option value=\"CL\">🇨🇱 Chile</option>\n <option value=\"PE\">🇵🇪 Peru</option>\n <option value=\"AR\">🇦🇷 Argentina</option>\n </select>\n </div>\n\n <div className=\"pollar-modal-actions\">\n <button type=\"button\" className=\"pollar-btn-secondary\" onClick={onClose}>\n Cancel\n </button>\n <button type=\"button\" className=\"pollar-btn-primary\" disabled={!amount || isLoading} onClick={onFindRoute}>\n Find best route\n </button>\n </div>\n </>\n )}\n\n {step === 'loading_quote' && (\n <div className=\"pollar-ramp-loading\">\n {LOADING_STEPS.map((text, i) => (\n <div key={i} className=\"pollar-ramp-loading-row\">\n <div className=\"pollar-ramp-loading-dot\" />\n <span>{text}</span>\n </div>\n ))}\n </div>\n )}\n\n {step === 'select_route' && (\n <>\n <div className=\"pollar-ramp-route-list\">\n {quotes.map((q, i) => (\n <RouteDisplay key={i} quote={q} onSelect={onSelectQuote} />\n ))}\n </div>\n <button type=\"button\" className=\"pollar-btn-secondary\" onClick={onClose}>\n Cancel\n </button>\n </>\n )}\n\n {step === 'payment_instructions' && paymentInstructions && (\n <div className=\"pollar-ramp-payment\">\n <p className=\"pollar-ramp-payment-title\">{paymentInstructions.type}</p>\n\n <div className=\"pollar-ramp-payment-field\">\n <span className=\"pollar-ramp-payment-label\">\n {paymentInstructions.type === 'CLABE' ? 'CLABE number' : paymentInstructions.type === 'PIX' ? 'PIX key' : 'Account number'}\n </span>\n <div className=\"pollar-ramp-payment-value\">\n <code>{paymentInstructions.value}</code>\n <button type=\"button\" className=\"pollar-ramp-copy-btn\" onClick={() => onCopy(paymentInstructions.value)}>\n Copy\n </button>\n </div>\n </div>\n\n <div className=\"pollar-ramp-payment-field\">\n <span className=\"pollar-ramp-payment-label\">Amount to send</span>\n <div className=\"pollar-ramp-payment-value\">\n <code>\n {paymentInstructions.amount.toLocaleString()} {paymentInstructions.currency}\n </code>\n <button\n type=\"button\"\n className=\"pollar-ramp-copy-btn\"\n onClick={() => onCopy(`${paymentInstructions.amount} ${paymentInstructions.currency}`)}\n >\n Copy\n </button>\n </div>\n </div>\n\n {paymentInstructions.expiresAt && (\n <p className=\"pollar-ramp-payment-note\">\n Instructions expire at {new Date(paymentInstructions.expiresAt).toLocaleTimeString()}\n </p>\n )}\n\n <button type=\"button\" className=\"pollar-btn-primary\" onClick={onClose}>\n Done\n </button>\n </div>\n )}\n </div>\n );\n}\n","'use client';\n\nimport {\n type PaymentInstructions,\n type RampDirection,\n type RampQuote,\n type RampsOnrampBody,\n} from '@pollar/core';\nimport { useState } from 'react';\nimport { usePollar } from '../../context';\nimport type { RampStep } from './RampWidgetTemplate';\nimport { RampWidgetTemplate } from './RampWidgetTemplate';\nimport '../shared.css';\nimport './RampWidget.css';\n\ninterface RampWidgetProps {\n onClose: () => void;\n}\n\n// ─── Mock data — used until backend implements /ramps/quote and /ramps/onramp ──\n\nconst MOCK_DEFAULT_QUOTES: RampQuote[] = [\n { quoteId: 'meld-default', provider: 'Meld', fee: 1.2, feeCurrency: 'USD', rate: 1, rail: 'ACH', protocol: 'REST', estimatedTime: '~20 min', recommended: true },\n];\n\nconst MOCK_QUOTES: Partial<Record<string, RampQuote[]>> & { DEFAULT: RampQuote[] } = {\n MX: [\n { quoteId: 'etherfuse-mx', provider: 'Etherfuse', fee: 0.5, feeCurrency: 'MXN', rate: 17.2, rail: 'SPEI', protocol: 'SEP-24', estimatedTime: '~10 min', recommended: true },\n { quoteId: 'alfredpay-mx', provider: 'AlfredPay', fee: 0.8, feeCurrency: 'MXN', rate: 17.1, rail: 'SPEI', protocol: 'REST', estimatedTime: '~15 min', recommended: false },\n ],\n BR: [{ quoteId: 'abroad-br', provider: 'Abroad', fee: 0.6, feeCurrency: 'BRL', rate: 5.1, rail: 'PIX', protocol: 'REST', estimatedTime: '~5 min', recommended: true }],\n CO: [\n { quoteId: 'abroad-co', provider: 'Abroad', fee: 0.7, feeCurrency: 'COP', rate: 4100, rail: 'PSE', protocol: 'REST', estimatedTime: '~10 min', recommended: true },\n { quoteId: 'koywe-co', provider: 'Koywe', fee: 0.9, feeCurrency: 'COP', rate: 4095, rail: 'PSE', protocol: 'REST', estimatedTime: '~15 min', recommended: false },\n ],\n DEFAULT: MOCK_DEFAULT_QUOTES,\n};\n\nconst MOCK_PAYMENT: PaymentInstructions = {\n type: 'CLABE',\n value: '646180157088723456',\n amount: 1000,\n currency: 'MXN',\n expiresAt: new Date(Date.now() + 30 * 60 * 1000).toISOString(),\n};\n\n// ────────────────────────────────────────────────────────────────────────────────\n\nexport function RampWidget({ onClose }: RampWidgetProps) {\n const { getClient, walletAddress, styles } = usePollar();\n\n const [step, setStep] = useState<RampStep>('input');\n const [direction, setDirection] = useState<RampDirection>('onramp');\n const [amount, setAmount] = useState('');\n const [currency, setCurrency] = useState('MXN');\n const [country, setCountry] = useState('MX');\n const [quotes, setQuotes] = useState<RampQuote[]>([]);\n const [paymentInstructions, setPaymentInstructions] = useState<PaymentInstructions | null>(null);\n const [isLoading, setIsLoading] = useState(false);\n\n const client = getClient();\n const { theme = 'light', accentColor = '#005DB4' } = styles;\n\n async function handleFindRoute() {\n setStep('loading_quote');\n setIsLoading(true);\n\n try {\n // Real call — will work once backend implements /ramps/quote\n const result = await client.getRampsQuote({\n country,\n amount: Number(amount),\n currency,\n direction,\n });\n if (result.quotes) setQuotes(result.quotes);\n } catch {\n // Backend not ready yet — fall back to mock data\n await new Promise((r) => setTimeout(r, 1500));\n setQuotes(MOCK_QUOTES[country] ?? MOCK_DEFAULT_QUOTES);\n } finally {\n setIsLoading(false);\n setStep('select_route');\n }\n }\n\n async function handleSelectQuote(quote: RampQuote) {\n if (!walletAddress) return;\n setIsLoading(true);\n\n const body: RampsOnrampBody = {\n quoteId: `${quote.provider}-${Date.now()}`,\n amount: Number(amount),\n currency,\n country,\n walletAddress,\n };\n\n try {\n // Real call — will work once backend implements /ramps/onramp\n const result = await client.createOnRamp(body);\n setPaymentInstructions(result.paymentInstructions);\n } catch {\n // Backend not ready yet — fall back to mock data\n await new Promise((r) => setTimeout(r, 800));\n setPaymentInstructions({ ...MOCK_PAYMENT, currency });\n } finally {\n setIsLoading(false);\n setStep('payment_instructions');\n }\n }\n\n function handleCopy(value: string) {\n navigator.clipboard.writeText(value).catch(() => {});\n }\n\n return (\n <div className=\"pollar-overlay\" onClick={onClose}>\n <RampWidgetTemplate\n theme={theme}\n accentColor={accentColor}\n step={step}\n direction={direction}\n amount={amount}\n currency={currency}\n country={country}\n quotes={quotes}\n paymentInstructions={paymentInstructions}\n isLoading={isLoading}\n onDirectionChange={setDirection}\n onAmountChange={setAmount}\n onCurrencyChange={setCurrency}\n onCountryChange={setCountry}\n onFindRoute={handleFindRoute}\n onSelectQuote={handleSelectQuote}\n onCopy={handleCopy}\n onClose={onClose}\n />\n </div>\n );\n}\n","'use client';\n\nimport { TransactionState } from '@pollar/core';\nimport React, { useState } from 'react';\nimport { ModalStatusBanner, PollarModalFooter } from '../commons';\n\nexport interface TransactionModalTemplateProps {\n theme: string;\n accentColor: string;\n transaction: TransactionState;\n onClose: () => void;\n onSignAndSend: () => void;\n}\n\nexport function TransactionModalTemplate({\n theme,\n accentColor,\n transaction,\n onClose,\n onSignAndSend,\n}: TransactionModalTemplateProps) {\n const isDark = theme === 'dark';\n\n const cssVars = {\n '--pollar-accent': accentColor,\n '--pollar-buttons-border-radius': '8px',\n '--pollar-buttons-height': '44px',\n '--pollar-bg': isDark ? '#1a1a1a' : '#ffffff',\n '--pollar-border': isDark ? '#374151' : '#e5e7eb',\n '--pollar-text': isDark ? '#ffffff' : '#111827',\n '--pollar-muted': isDark ? '#9ca3af' : '#6b7280',\n '--pollar-input-bg': isDark ? '#374151' : 'rgba(0,0,0,0.04)',\n '--pollar-error-text': isDark ? '#f87171' : '#dc2626',\n '--pollar-success-text': isDark ? '#4ade80' : '#16a34a',\n } as React.CSSProperties;\n\n const [showXdr, setShowXdr] = useState(false);\n const [copied, setCopied] = useState(false);\n\n const buildData = 'buildData' in transaction ? transaction.buildData : null;\n const hash = transaction.step === 'success' ? transaction.hash : null;\n const errorDetails = transaction.step === 'error' ? (transaction.details ?? null) : null;\n\n const isBuilt = transaction.step === 'built';\n const isSigning = transaction.step === 'signing';\n const isSuccess = transaction.step === 'success';\n const isError = transaction.step === 'error';\n const showDetails = buildData !== null && (isBuilt || isSigning || isSuccess);\n\n const explorerNetwork = buildData?.summary.network?.toLowerCase().includes('testnet') ? 'testnet' : 'public';\n const explorerUrl = hash ? `https://stellar.expert/explorer/${explorerNetwork}/tx/${hash}` : null;\n\n function handleCopyHash() {\n if (!hash) return;\n navigator.clipboard.writeText(hash).then(() => {\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n });\n }\n\n const statusMessage: Record<TransactionState['step'], string> = {\n idle: '',\n building: 'Building transaction…',\n built: 'Ready to sign and send',\n signing: 'Signing and sending transaction…',\n success: 'Transaction sent successfully',\n error: 'Transaction failed',\n };\n\n return (\n <div className=\"pollar-tx-modal\" data-theme={theme} style={cssVars} onClick={(e) => e.stopPropagation()}>\n <div className=\"pollar-modal-header\">\n <h2 className=\"pollar-modal-title\">Transaction</h2>\n <button className=\"pollar-modal-close\" onClick={onClose} aria-label=\"Close\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <path d=\"M2 2l12 12M14 2L2 14\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n </button>\n </div>\n\n {showDetails && buildData && (\n <>\n <div className=\"pollar-tx-summary\">\n <p className=\"pollar-tx-summary-title\">Details</p>\n <ul className=\"pollar-tx-summary-lines\">\n {buildData.summary.lines.map((line, i) => (\n <li key={i} className=\"pollar-tx-summary-line\">\n {line}\n </li>\n ))}\n </ul>\n </div>\n <div className=\"pollar-tx-meta\">\n <div className=\"pollar-tx-meta-item\">\n <span className=\"pollar-tx-meta-label\">Network</span>\n <span className=\"pollar-tx-meta-value\">{buildData.summary.network}</span>\n </div>\n <div className=\"pollar-tx-meta-item\">\n <span className=\"pollar-tx-meta-label\">Fee</span>\n <span className=\"pollar-tx-meta-value\">{buildData.summary.fee}</span>\n </div>\n </div>\n <div className=\"pollar-tx-xdr\">\n <button className=\"pollar-tx-xdr-toggle\" onClick={() => setShowXdr((v) => !v)}>\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n aria-hidden\n style={{ transform: showXdr ? 'rotate(90deg)' : 'rotate(0deg)', transition: 'transform 150ms' }}\n >\n <path d=\"M4 2l4 4-4 4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n Raw transaction (XDR)\n </button>\n {showXdr && <pre className=\"pollar-tx-xdr-content\">{buildData.unsignedXdr}</pre>}\n </div>\n </>\n )}\n\n {isSuccess && hash && (\n <div className=\"pollar-tx-result\">\n <span className=\"pollar-tx-result-label\">Transaction hash</span>\n <span className=\"pollar-tx-result-hash\">{hash}</span>\n <div className=\"pollar-tx-result-actions\">\n <button className=\"pollar-tx-result-btn\" onClick={handleCopyHash}>\n {copied ? (\n <>\n <svg width=\"13\" height=\"13\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden>\n <circle cx=\"7\" cy=\"7\" r=\"7\" fill=\"currentColor\" />\n <path d=\"M3.5 7l2.5 2.5 4.5-5\" stroke=\"white\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n Copied!\n </>\n ) : (\n <>\n <svg width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\" aria-hidden>\n <rect x=\"4\" y=\"4\" width=\"8\" height=\"8\" rx=\"1.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M3 9H2a1 1 0 01-1-1V2a1 1 0 011-1h6a1 1 0 011 1v1\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n Copy hash\n </>\n )}\n </button>\n {explorerUrl && (\n <a className=\"pollar-tx-result-btn\" href={explorerUrl} target=\"_blank\" rel=\"noopener noreferrer\">\n <svg width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\" aria-hidden>\n <path d=\"M5 2H2a1 1 0 00-1 1v8a1 1 0 001 1h8a1 1 0 001-1V8\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <path d=\"M8 1h4m0 0v4m0-4L6 7\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n View on Explorer\n </a>\n )}\n </div>\n </div>\n )}\n\n {isError && errorDetails && (\n <div className=\"pollar-tx-error-details\">\n <p className=\"pollar-tx-error-details-label\">Error details</p>\n <pre className=\"pollar-tx-error-details-content\">{errorDetails}</pre>\n </div>\n )}\n\n {isBuilt && (\n <button className=\"pollar-btn-primary pollar-tx-sign-btn\" onClick={onSignAndSend}>\n Sign & Send\n </button>\n )}\n {isSigning && (\n <button className=\"pollar-btn-primary pollar-tx-sign-btn\" disabled>\n Signing & sending…\n </button>\n )}\n {isSuccess && (\n <button className=\"pollar-btn-primary pollar-tx-sign-btn\" onClick={onClose}>\n Done\n </button>\n )}\n\n <ModalStatusBanner message={statusMessage[transaction.step]} status={isError ? 'ERROR' : isSigning || transaction.step === 'building' ? 'LOADING' : isSuccess ? 'SUCCESS' : 'NONE'} />\n\n <PollarModalFooter />\n </div>\n );\n}","'use client';\n\nimport { usePollar } from '../../context';\nimport '../shared.css';\nimport './TransactionModal.css';\nimport { TransactionModalTemplate } from './TransactionModalTemplate';\n\ninterface TransactionModalProps {\n onClose: () => void;\n}\n\nexport function TransactionModal({ onClose }: TransactionModalProps) {\n const { getClient, styles, transaction } = usePollar();\n const { theme = 'light', accentColor = '#005DB4' } = styles;\n\n async function handleSignAndSend() {\n if (transaction.step === 'built') {\n await getClient().signAndSubmitTx(transaction.buildData.unsignedXdr);\n }\n }\n\n return (\n <div className=\"pollar-overlay\" onClick={onClose}>\n <TransactionModalTemplate\n theme={theme}\n accentColor={accentColor}\n transaction={transaction}\n onClose={onClose}\n onSignAndSend={handleSignAndSend}\n />\n </div>\n );\n}","'use client';\n\nimport { TxHistoryRecord, TxHistoryState } from '@pollar/core';\nimport { type CSSProperties } from 'react';\nimport { PollarModalFooter } from '../commons';\n\nconst PAGE_SIZE = 10;\n\ninterface TxHistoryModalTemplateProps {\n theme: string;\n accentColor: string;\n txHistory: TxHistoryState;\n offset: number;\n onRefresh: () => void;\n onPrev: () => void;\n onNext: () => void;\n onClose: () => void;\n}\n\nfunction StatusBadge({ status }: { status: TxHistoryRecord['status'] }) {\n return (\n <span className=\"pollar-hist-item-badge\" data-status={status}>\n {status}\n </span>\n );\n}\n\nfunction formatDate(iso: string): string {\n return new Date(iso).toLocaleDateString(undefined, { month: 'short', day: 'numeric', year: 'numeric' });\n}\n\nexport function TxHistoryModalTemplate({\n theme,\n accentColor,\n txHistory,\n offset,\n onRefresh,\n onPrev,\n onNext,\n onClose,\n}: TxHistoryModalTemplateProps) {\n const isDark = theme === 'dark';\n\n const cssVars = {\n '--pollar-accent': accentColor,\n '--pollar-buttons-border-radius': '8px',\n '--pollar-buttons-height': '44px',\n '--pollar-bg': isDark ? '#1a1a1a' : '#ffffff',\n '--pollar-border': isDark ? '#374151' : '#e5e7eb',\n '--pollar-text': isDark ? '#ffffff' : '#111827',\n '--pollar-muted': isDark ? '#9ca3af' : '#6b7280',\n '--pollar-input-bg': isDark ? '#374151' : 'rgba(0,0,0,0.04)',\n '--pollar-error-text': isDark ? '#f87171' : '#dc2626',\n '--pollar-success-text': isDark ? '#4ade80' : '#16a34a',\n } as CSSProperties;\n\n const isLoading = txHistory.step === 'loading';\n const records = txHistory.step === 'loaded' ? txHistory.data.records : [];\n const total = txHistory.step === 'loaded' ? txHistory.data.total : 0;\n const hasPrev = offset > 0;\n const hasNext = offset + PAGE_SIZE < total;\n const showPagination = txHistory.step === 'loaded' && total > PAGE_SIZE;\n\n return (\n <div className=\"pollar-hist-modal\" data-theme={theme} style={cssVars} onClick={(e) => e.stopPropagation()}>\n <div className=\"pollar-modal-header\">\n <h2 className=\"pollar-modal-title\">Transaction History</h2>\n <div className=\"pollar-modal-header-actions\">\n <button className=\"pollar-modal-refresh-btn\" onClick={onRefresh} disabled={isLoading}>\n <svg\n className={`pollar-modal-refresh-icon${isLoading ? ' spinning' : ''}`}\n width=\"13\"\n height=\"13\"\n viewBox=\"0 0 13 13\"\n fill=\"none\"\n aria-hidden\n >\n <path\n d=\"M11.5 6.5a5 5 0 11-1.5-3.536\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n <path d=\"M10 1v3h-3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n Refresh\n </button>\n <button className=\"pollar-modal-close\" onClick={onClose} aria-label=\"Close\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <path d=\"M2 2l12 12M14 2L2 14\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n </button>\n </div>\n </div>\n\n <div className=\"pollar-hist-list\">\n {txHistory.step === 'idle' && (\n <div className=\"pollar-modal-empty\">Click Refresh to load transactions.</div>\n )}\n {isLoading && (\n <div className=\"pollar-modal-empty\">Loading…</div>\n )}\n {txHistory.step === 'error' && (\n <div className=\"pollar-modal-empty\">{txHistory.message}</div>\n )}\n {txHistory.step === 'loaded' && records.length === 0 && (\n <div className=\"pollar-modal-empty\">No transactions yet.</div>\n )}\n {records.map((record) => (\n <div key={record.id} className=\"pollar-hist-item\">\n <span className=\"pollar-hist-item-summary\">{record.summary}</span>\n <StatusBadge status={record.status} />\n <span className=\"pollar-hist-item-meta\">\n <span>{record.operation}</span>\n {record.feeXlm && <span>· {record.feeXlm} XLM</span>}\n <span>· {formatDate(record.createdAt)}</span>\n </span>\n </div>\n ))}\n </div>\n\n {showPagination && (\n <div className=\"pollar-hist-pagination\">\n <span className=\"pollar-hist-pagination-info\">\n {offset + 1}–{Math.min(offset + PAGE_SIZE, total)} of {total}\n </span>\n <div className=\"pollar-hist-pagination-btns\">\n <button className=\"pollar-hist-page-btn\" onClick={onPrev} disabled={!hasPrev}>\n ← Prev\n </button>\n <button className=\"pollar-hist-page-btn\" onClick={onNext} disabled={!hasNext}>\n Next →\n </button>\n </div>\n </div>\n )}\n\n <PollarModalFooter />\n </div>\n );\n}","'use client';\n\nimport { useState } from 'react';\nimport { usePollar } from '../../context';\nimport '../shared.css';\nimport './TxHistoryModal.css';\nimport { TxHistoryModalTemplate } from './TxHistoryModalTemplate';\n\nconst PAGE_SIZE = 10;\n\ninterface TxHistoryModalProps {\n onClose: () => void;\n}\n\nexport function TxHistoryModal({ onClose }: TxHistoryModalProps) {\n const { getClient, styles, txHistory } = usePollar();\n const { theme = 'light', accentColor = '#005DB4' } = styles;\n const [offset, setOffset] = useState(0);\n\n function load(nextOffset: number) {\n setOffset(nextOffset);\n void getClient().fetchTxHistory({ limit: PAGE_SIZE, offset: nextOffset });\n }\n\n return (\n <div className=\"pollar-overlay\" onClick={onClose}>\n <TxHistoryModalTemplate\n theme={theme}\n accentColor={accentColor}\n txHistory={txHistory}\n offset={offset}\n onRefresh={() => load(offset)}\n onPrev={() => load(Math.max(0, offset - PAGE_SIZE))}\n onNext={() => load(offset + PAGE_SIZE)}\n onClose={onClose}\n />\n </div>\n );\n}","'use client';\n\nimport { WalletBalanceContent, WalletBalanceRecord } from '@pollar/core';\nimport { type CSSProperties, useEffect, useState } from 'react';\nimport { usePollar } from '../../context';\nimport { PollarModalFooter } from '../commons';\nimport '../shared.css';\nimport './WalletBalanceModal.css';\n\nfunction formatBalance(balance: string): string {\n const n = parseFloat(balance);\n return isNaN(n) ? balance : n.toLocaleString(undefined, { maximumFractionDigits: 7 });\n}\n\nfunction cropAddress(address: string): string {\n if (address.length <= 16) return address;\n return `${address.slice(0, 8)}...${address.slice(-8)}`;\n}\n\nfunction BalanceItem({ record }: { record: WalletBalanceRecord }) {\n const balanceDiffers = record.balance !== record.available;\n return (\n <div className=\"pollar-bal-item\">\n <span className=\"pollar-bal-asset\">{record.code}</span>\n <div className=\"pollar-bal-amounts\">\n <span className=\"pollar-bal-amount\">{formatBalance(record.balance)}</span>\n {balanceDiffers && (\n <span className=\"pollar-bal-available\">{formatBalance(record.available)} available</span>\n )}\n </div>\n </div>\n );\n}\n\ninterface WalletBalanceModalProps {\n onClose: () => void;\n}\n\nexport function WalletBalanceModal({ onClose }: WalletBalanceModalProps) {\n const { getBalance, walletAddress, styles } = usePollar();\n const { theme = 'light', accentColor = '#005DB4' } = styles;\n const isDark = theme === 'dark';\n\n const cssVars = {\n '--pollar-accent': accentColor,\n '--pollar-bg': isDark ? '#1a1a1a' : '#ffffff',\n '--pollar-border': isDark ? '#374151' : '#e5e7eb',\n '--pollar-text': isDark ? '#ffffff' : '#111827',\n '--pollar-muted': isDark ? '#9ca3af' : '#6b7280',\n '--pollar-input-bg': isDark ? '#374151' : 'rgba(0,0,0,0.04)',\n '--pollar-error-text': isDark ? '#f87171' : '#dc2626',\n } as CSSProperties;\n\n const [status, setStatus] = useState<'loading' | 'loaded' | 'error'>('loading');\n const [data, setData] = useState<WalletBalanceContent | null>(null);\n\n async function load() {\n setStatus('loading');\n const result = await getBalance();\n if (result) {\n setData(result);\n setStatus('loaded');\n } else {\n setStatus('error');\n }\n }\n\n useEffect(() => {\n void load();\n }, []);\n\n const isLoading = status === 'loading';\n\n return (\n <div className=\"pollar-overlay\" onClick={onClose}>\n <div className=\"pollar-bal-modal\" data-theme={theme} style={cssVars} onClick={(e) => e.stopPropagation()}>\n <div className=\"pollar-modal-header\">\n <h2 className=\"pollar-modal-title\">Wallet Balance</h2>\n <div className=\"pollar-modal-header-actions\">\n <button className=\"pollar-modal-refresh-btn\" onClick={load} disabled={isLoading}>\n <svg\n className={`pollar-modal-refresh-icon${isLoading ? ' spinning' : ''}`}\n width=\"13\"\n height=\"13\"\n viewBox=\"0 0 13 13\"\n fill=\"none\"\n aria-hidden\n >\n <path d=\"M11.5 6.5a5 5 0 11-1.5-3.536\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <path d=\"M10 1v3h-3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n Refresh\n </button>\n <button className=\"pollar-modal-close\" onClick={onClose} aria-label=\"Close\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <path d=\"M2 2l12 12M14 2L2 14\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n </button>\n </div>\n </div>\n\n {walletAddress && (\n <div className=\"pollar-bal-address\">{cropAddress(walletAddress)}</div>\n )}\n\n {isLoading && <div className=\"pollar-modal-empty\">Loading…</div>}\n\n {status === 'error' && (\n <div className=\"pollar-modal-error\">Failed to load balances. Check your connection.</div>\n )}\n\n {status === 'loaded' && data && !data.exists && (\n <div className=\"pollar-modal-empty\">Account not found on {data.network}.</div>\n )}\n\n {status === 'loaded' && data?.exists && data.balances.length === 0 && (\n <div className=\"pollar-modal-empty\">No balances found.</div>\n )}\n\n {status === 'loaded' && data?.exists && data.balances.length > 0 && (\n <div className=\"pollar-bal-list\">\n {data.balances.map((b) => (\n <BalanceItem key={b.code + (b.issuer ?? '')} record={b} />\n ))}\n </div>\n )}\n\n <PollarModalFooter />\n </div>\n </div>\n );\n}","'use client';\n\nimport {\n NetworkState,\n PollarApplicationConfigContent,\n PollarClient,\n PollarClientConfig,\n PollarLoginOptions,\n StellarClient,\n StellarNetwork,\n TransactionState,\n TxBuildBody,\n TxHistoryState,\n WalletBalanceContent,\n} from '@pollar/core';\nimport { createContext, ReactNode, useContext, useEffect, useMemo, useState } from 'react';\nimport { ModalErrorBoundary } from './components/commons';\nimport { KycModal } from './components/kyc-modal/KycModal';\nimport { LoginModal } from './components/login-modal/LoginModal';\nimport { RampWidget } from './components/ramp-widget/RampWidget';\nimport { TransactionModal } from './components/transaction-modal/TransactionModal';\nimport { TxHistoryModal } from './components/tx-history-modal/TxHistoryModal';\nimport { WalletBalanceModal } from './components/wallet-balance-modal/WalletBalanceModal';\nimport type { PollarConfig, PollarStyles } from './types';\n\nconst emptyResponse = {\n application: {\n name: '',\n },\n styles: {},\n};\n\nasync function fetchRemoteConfig(client: PollarClient): Promise<PollarConfig> {\n const content = await client.getAppConfig();\n return (content as PollarConfig | null) ?? emptyResponse;\n}\n\ninterface PollarContextValue {\n walletAddress: string;\n getClient: () => PollarClient;\n openLoginModal: () => void;\n\n isAuthenticated: boolean;\n login: (options: PollarLoginOptions) => void;\n logout: () => void;\n config: PollarConfig;\n styles: PollarStyles;\n // transactions\n openTransactionModal: () => void;\n transaction: TransactionState;\n buildTx: (\n operation: TxBuildBody['operation'],\n params: TxBuildBody['params'],\n options?: TxBuildBody['options'],\n ) => Promise<void>;\n signAndSubmitTx: (signedXdr: string) => Promise<void>;\n // network\n network: StellarNetwork;\n setNetwork: (network: StellarNetwork) => void;\n // stellar\n getBalance: (publicKey?: string) => Promise<WalletBalanceContent | null>;\n // kyc\n openKycModal: (options?: {\n country?: string;\n level?: 'basic' | 'intermediate' | 'enhanced';\n onApproved?: () => void;\n }) => void;\n // ramps\n openRampWidget: () => void;\n // tx history\n txHistory: TxHistoryState;\n openTxHistoryModal: () => void;\n // wallet balance\n openWalletBalanceModal: () => void;\n}\n\nconst PollarContext = createContext<PollarContextValue | null>(null);\n\ninterface PollarProviderProps {\n config: PollarClientConfig;\n styles?: PollarStyles;\n children: ReactNode;\n}\n\nexport function PollarProvider({ config, styles: propStyles, children }: PollarProviderProps) {\n const [pollarClient] = useState<PollarClient>(() => new PollarClient(config));\n const [networkState, setNetworkState] = useState<NetworkState>(() => pollarClient.getNetworkState());\n const stellarClient = useMemo(() => {\n const network = networkState.step === 'connected' ? networkState.network : 'testnet';\n return new StellarClient(network);\n }, [networkState]);\n const [sessionState, setSessionState] = useState<PollarApplicationConfigContent | null>(null);\n const [transaction, setTransaction] = useState<TransactionState>({ step: 'idle' });\n const [txHistory, setTxHistory] = useState<TxHistoryState>({ step: 'idle' });\n const [remoteConfig, setRemoteConfig] = useState<PollarConfig>(emptyResponse);\n const [styles, setStyles] = useState<PollarStyles>(propStyles ?? {});\n\n useEffect(() => {\n return pollarClient.onTransactionStateChange(setTransaction);\n }, [pollarClient]);\n\n useEffect(() => {\n return pollarClient.onTxHistoryStateChange(setTxHistory);\n }, [pollarClient]);\n\n useEffect(() => {\n return pollarClient.onNetworkStateChange((state) => {\n setNetworkState(state);\n });\n }, [pollarClient]);\n\n useEffect(() => {\n return pollarClient.onAuthStateChange((authState) => {\n if (authState.step === 'authenticated') {\n setSessionState((prev) => (JSON.stringify(prev) !== JSON.stringify(authState.session) ? authState.session : prev));\n } else if (authState.step === 'idle') {\n setSessionState(null);\n }\n });\n }, [pollarClient]);\n\n useEffect(() => {\n fetchRemoteConfig(pollarClient)\n .then((fetched) => {\n setRemoteConfig(fetched);\n setStyles({\n ...fetched.styles,\n ...propStyles,\n providers: { ...fetched.styles?.providers, ...propStyles?.providers },\n });\n })\n .catch(() => {\n setStyles(propStyles ?? {});\n });\n }, [pollarClient]);\n\n useEffect(() => {\n if (transaction.step !== 'idle') {\n setTransactionModalOpen(true);\n }\n }, [transaction.step]);\n\n const [loginModalOpen, setLoginModalOpen] = useState(false);\n const [transactionModalOpen, setTransactionModalOpen] = useState(false);\n const [kycModalOpen, setKycModalOpen] = useState(false);\n const [kycModalOptions, setKycModalOptions] = useState<{\n country?: string;\n level?: 'basic' | 'intermediate' | 'enhanced';\n onApproved?: () => void;\n }>({});\n const [rampWidgetOpen, setRampWidgetOpen] = useState(false);\n const [txHistoryModalOpen, setTxHistoryModalOpen] = useState(false);\n const [walletBalanceModalOpen, setWalletBalanceModalOpen] = useState(false);\n\n const contextValue: PollarContextValue = useMemo(\n () =>\n ({\n walletAddress: sessionState?.wallet?.publicKey || '',\n getClient: () => pollarClient,\n transaction,\n login: (options: PollarLoginOptions) => pollarClient.login(options),\n logout: () => pollarClient.logout(),\n isAuthenticated: !!sessionState?.wallet?.publicKey,\n buildTx: (operation, params, options) => pollarClient.buildTx(operation, params, options),\n signAndSubmitTx: (signedXdr: string) => pollarClient.signAndSubmitTx(signedXdr),\n openTransactionModal: () => setTransactionModalOpen(true),\n openLoginModal: () => setLoginModalOpen(true),\n openKycModal: (options = {}) => {\n setKycModalOptions(options);\n setKycModalOpen(true);\n },\n openRampWidget: () => setRampWidgetOpen(true),\n txHistory,\n openTxHistoryModal: () => setTxHistoryModalOpen(true),\n openWalletBalanceModal: () => setWalletBalanceModalOpen(true),\n network: networkState.step === 'connected' ? networkState.network : 'testnet',\n setNetwork: (network: StellarNetwork) => pollarClient.setNetwork(network),\n config: remoteConfig,\n styles,\n getBalance: (publicKey?: string) => pollarClient.getWalletBalance(publicKey),\n }) as PollarContextValue,\n [sessionState, remoteConfig, styles, pollarClient, transaction, txHistory, networkState, stellarClient],\n );\n\n return (\n <PollarContext.Provider value={contextValue}>\n {children}\n {loginModalOpen && (\n <ModalErrorBoundary onClose={() => setLoginModalOpen(false)}>\n <LoginModal onClose={() => setLoginModalOpen(false)} />\n </ModalErrorBoundary>\n )}\n {transactionModalOpen && (\n <ModalErrorBoundary onClose={() => setTransactionModalOpen(false)}>\n <TransactionModal onClose={() => setTransactionModalOpen(false)} />\n </ModalErrorBoundary>\n )}\n {kycModalOpen && (\n <ModalErrorBoundary onClose={() => setKycModalOpen(false)}>\n <KycModal\n onClose={() => setKycModalOpen(false)}\n {...(kycModalOptions.country !== undefined && { country: kycModalOptions.country })}\n {...(kycModalOptions.level !== undefined && { level: kycModalOptions.level })}\n {...(kycModalOptions.onApproved !== undefined && { onApproved: kycModalOptions.onApproved })}\n />\n </ModalErrorBoundary>\n )}\n {rampWidgetOpen && (\n <ModalErrorBoundary onClose={() => setRampWidgetOpen(false)}>\n <RampWidget onClose={() => setRampWidgetOpen(false)} />\n </ModalErrorBoundary>\n )}\n {txHistoryModalOpen && (\n <ModalErrorBoundary onClose={() => setTxHistoryModalOpen(false)}>\n <TxHistoryModal onClose={() => setTxHistoryModalOpen(false)} />\n </ModalErrorBoundary>\n )}\n {walletBalanceModalOpen && (\n <ModalErrorBoundary onClose={() => setWalletBalanceModalOpen(false)}>\n <WalletBalanceModal onClose={() => setWalletBalanceModalOpen(false)} />\n </ModalErrorBoundary>\n )}\n </PollarContext.Provider>\n );\n}\n\nexport function usePollar() {\n const ctx = useContext(PollarContext);\n if (!ctx) {\n throw new Error('usePollar must be used inside <PollarProvider>');\n }\n return ctx;\n}\n","'use client';\n\nimport { useEffect, useRef, useState } from 'react';\nimport { LOGO_POLLAR } from './constants';\nimport { usePollar } from './context';\nimport './WalletButton.css';\n\nfunction cropWallet(address: string) {\n if (address.length <= 12) return address;\n return `${address.slice(0, 6)}...${address.slice(-4)}`;\n}\n\nfunction ButtonLogo() {\n return <img src={LOGO_POLLAR} alt=\"Pollar\" width={22} height={22} className=\"wallet-btn-logo\" />;\n}\n\nexport function WalletButton() {\n const { getClient, walletAddress, styles, openLoginModal, openTxHistoryModal, openWalletBalanceModal } = usePollar();\n const [open, setOpen] = useState(false);\n const [copied, setCopied] = useState(false);\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n const { theme = 'light', accentColor = '#005DB4' } = styles;\n const isDark = theme === 'dark';\n const dropdownBg = isDark ? '#18181b' : '#fff';\n const dropdownBorder = isDark ? '#3f3f46' : '#e4e4e7';\n const itemColor = isDark ? '#fafafa' : '#18181b';\n\n useEffect(() => {\n function handleClickOutside(e: MouseEvent) {\n if (wrapperRef.current && !wrapperRef.current.contains(e.target as Node)) {\n setOpen(false);\n }\n }\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, []);\n\n async function handleCopy() {\n if (!walletAddress) return;\n await navigator.clipboard.writeText(walletAddress);\n setCopied(true);\n setTimeout(() => setCopied(false), 1500);\n }\n\n function handleLogout() {\n setOpen(false);\n getClient().logout();\n }\n\n if (!walletAddress) {\n return (\n <button type=\"button\" className=\"wallet-login-btn\" style={{ backgroundColor: accentColor }} onClick={openLoginModal}>\n <ButtonLogo />\n Login with Pollar\n </button>\n );\n }\n\n return (\n <div className=\"wallet-wrapper\" ref={wrapperRef}>\n <button className=\"wallet-btn\" style={{ backgroundColor: accentColor }} onClick={() => setOpen((v) => !v)}>\n {cropWallet(walletAddress)}\n <svg\n className={`wallet-chevron${open ? ' open' : ''}`}\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"2,4 6,8 10,4\" />\n </svg>\n </button>\n\n {open && (\n <div className=\"wallet-dropdown\" style={{ backgroundColor: dropdownBg, borderColor: dropdownBorder }}>\n <button className=\"wallet-dropdown-item\" style={{ color: itemColor }} onClick={handleCopy}>\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" />\n <path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\" />\n </svg>\n {copied ? 'Copied!' : 'Copy address'}\n </button>\n <button\n className=\"wallet-dropdown-item\"\n style={{ color: itemColor }}\n onClick={() => { setOpen(false); openWalletBalanceModal(); }}\n >\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <rect x=\"1\" y=\"4\" width=\"22\" height=\"16\" rx=\"2\" ry=\"2\" />\n <circle cx=\"16\" cy=\"12\" r=\"2\" />\n <path d=\"M22 8H12\" />\n </svg>\n Wallet balance\n </button>\n <button\n className=\"wallet-dropdown-item\"\n style={{ color: itemColor }}\n onClick={() => { setOpen(false); openTxHistoryModal(); }}\n >\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\" />\n <polyline points=\"14,2 14,8 20,8\" />\n <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\" />\n <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\" />\n <polyline points=\"10,9 9,9 8,9\" />\n </svg>\n Transaction history\n </button>\n <button className=\"wallet-dropdown-item danger\" onClick={handleLogout}>\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\" />\n <polyline points=\"16,17 21,12 16,7\" />\n <line x1=\"21\" y1=\"12\" x2=\"9\" y2=\"12\" />\n </svg>\n Log out\n </button>\n </div>\n )}\n </div>\n );\n}\n"]}
|