{"version":3,"file":"CI7p7wHo.js","sources":["../../../../../../../../node_modules/lucide-svelte/dist/defaultAttributes.js","../../../../../../../../node_modules/lucide-svelte/dist/Icon.svelte","../../../../../../src/lib/themes/baseTheme.ts","../../../../../../src/lib/themes/themeRegistry.ts","../../../../../../src/lib/themes/lightTheme.ts","../../../../../../src/lib/themes/win98Theme.ts","../../../../../../src/lib/themes/plainBlackTheme.ts","../../../../../../src/lib/themes/nordTheme.ts","../../../../../../src/lib/themes/synthwaveTheme.ts","../../../../../../src/lib/stores/themeStore.ts","../../../../../../src/lib/components/common/Panel.svelte"],"sourcesContent":["/**\n * @license lucide-svelte v0.483.0 - ISC\n *\n * ISC License\n * \n * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2022 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2022.\n * \n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n * \n */\nconst defaultAttributes = {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n 'stroke-width': 2,\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n};\nexport default defaultAttributes;\n","\n\n\n {#each iconNode as [tag, attrs]}\n \n {/each}\n \n\n","// Base theme definition with types and default values\nexport interface ThemeColors {\n // Background colors\n bgDark: string;\n bgLight: string;\n hoverBgLight?: string;\n \n // Primary and secondary colors\n primary: string;\n primaryHover: string;\n secondary: string;\n secondaryHover: string;\n \n // Accent colors\n accentBlue: string;\n accentRed: string;\n accentGreen: string;\n accentYellow: string;\n accentPurple: string;\n accentCyan: string;\n \n // Hover variants\n accentGreenHover: string;\n accentBlueHover: string;\n accentRedHover: string;\n accentYellowHover?: string;\n \n // Text colors\n textPrimary: string;\n textSecondary: string;\n textDisabled: string;\n textLight?: string;\n textDark?: string;\n textOnPrimary?: string;\n textAccentGreen?: string;\n textAccentBlue?: string;\n textAccentRed?: string;\n \n // Font settings\n fontFamily?: string;\n \n // UI Settings\n panelRoundness?: \"rounded-none\" | \"rounded-sm\" | \"rounded\" | \"rounded-md\" | \"rounded-lg\" | \"rounded-xl\" | \"rounded-2xl\" | \"rounded-3xl\" | \"rounded-full\";\n swapPanelRoundness?: \"rounded-none\" | \"rounded-sm\" | \"rounded\" | \"rounded-md\" | \"rounded-lg\" | \"rounded-xl\" | \"rounded-2xl\" | \"rounded-3xl\" | \"rounded-full\";\n swapPanelBorder?: string;\n swapPanelShadow?: string;\n swapPanelInputsRounded?: boolean;\n transparentSwapPanel?: boolean;\n swapPanelBorderStyle?: 'default' | 'win95' | 'none'; // Special border style presets\n statsTableTransparent?: boolean; // Whether the stats table panel should be transparent or solid\n \n // Borders\n border: string;\n borderLight: string;\n \n // Surface colors\n surfaceDark: string;\n surfaceLight: string;\n \n // Logo properties\n logoBrightness: number;\n logoInvert: number;\n logoHoverBrightness: number;\n logoPath?: string; // Custom logo path, defaults to standard app logo if not set\n \n // Token selector dropdown colors\n tokenSelectorBg?: string;\n tokenSelectorHeaderBg?: string;\n tokenSelectorItemBg?: string;\n tokenSelectorItemHoverBg?: string;\n tokenSelectorItemActiveBg?: string;\n tokenSelectorSearchBg?: string;\n tokenSelectorBorder?: string;\n tokenSelectorRoundness?: \"rounded-none\" | \"rounded-sm\" | \"rounded\" | \"rounded-md\" | \"rounded-lg\" | \"rounded-xl\" | \"rounded-2xl\" | \"rounded-3xl\" | \"rounded-full\";\n tokenSelectorShadow?: string;\n \n // Plugin Manager colors\n pmDark: string;\n pmBorder: string;\n pmAccent: string;\n pmTextSecondary: string;\n \n // Switch button styling\n switchButtonBg?: string; // Background color for the switch button\n switchButtonHoverBg?: string; // Background color for the switch button on hover\n switchButtonBorder?: string; // Border style for the switch button\n switchButtonShadow?: string; // Shadow style for the switch button\n \n // Chart text color\n chartTextColor?: string;\n \n // Token ticker styling\n tokenTickerBg?: string; // Background color for token tickers\n tokenTickerText?: string; // Text color for token tickers\n tokenTickerBorder?: string; // Border style for token tickers\n tokenTickerBorderStyle?: 'default' | 'win95' | 'none'; // Special border style presets\n tokenTickerRoundness?: \"rounded-none\" | \"rounded-sm\" | \"rounded\" | \"rounded-md\" | \"rounded-lg\" | \"rounded-xl\" | \"rounded-2xl\" | \"rounded-3xl\" | \"rounded-full\";\n tokenTickerHoverBg?: string; // Background color on hover\n tokenTickerShadow?: string; // Shadow style for token tickers\n tokenTickerUpColor?: string; // Color for positive price changes\n tokenTickerDownColor?: string; // Color for negative price changes\n tokenTickerBgOpacity?: number; // Background opacity (0-100)\n \n // Button styling\n buttonBg?: string; // Standard button background color\n buttonHoverBg?: string; // Button hover background color\n buttonText?: string; // Button text color\n buttonBorder?: string; // Button border width and style\n buttonBorderColor?: string; // Button border color\n buttonShadow?: string; // Button shadow\n buttonRoundness?: \"rounded-none\" | \"rounded-sm\" | \"rounded\" | \"rounded-md\" | \"rounded-lg\" | \"rounded-xl\" | \"rounded-2xl\" | \"rounded-3xl\" | \"rounded-full\";\n \n // Primary button styling\n primaryButtonBg?: string; // Primary button background color\n primaryButtonHoverBg?: string; // Primary button hover background color\n primaryButtonText?: string; // Primary button text color\n primaryButtonBorder?: string; // Primary button border width and style\n primaryButtonBorderColor?: string; // Primary button border color\n \n // Swap Button styling\n swapButtonPrimaryGradientStart?: string; // Start color for the primary gradient\n swapButtonPrimaryGradientEnd?: string; // End color for the primary gradient\n swapButtonErrorGradientStart?: string; // Start color for the error gradient\n swapButtonErrorGradientEnd?: string; // End color for the error gradient\n swapButtonProcessingGradientStart?: string; // Start color for the processing gradient\n swapButtonProcessingGradientEnd?: string; // End color for the processing gradient\n swapButtonBorderColor?: string; // Border color for the swap button\n swapButtonGlowColor?: string; // Glow effect color\n swapButtonShineColor?: string; // Shine animation color\n swapButtonReadyGlowStart?: string; // Start color for the ready glow effect\n swapButtonReadyGlowEnd?: string; // End color for the ready glow effect\n swapButtonTextColor?: string; // Text color for the swap button\n swapButtonRoundness?: \"rounded-none\" | \"rounded-sm\" | \"rounded\" | \"rounded-md\" | \"rounded-lg\" | \"rounded-xl\" | \"rounded-2xl\" | \"rounded-3xl\" | \"rounded-full\";\n swapButtonShadow?: string; // Shadow for the swap button\n \n // Background configuration\n backgroundType: 'gradient' | 'solid' | 'pattern' | 'custom';\n backgroundGradient?: string;\n backgroundSolid?: string;\n backgroundImage?: string;\n backgroundOpacity?: number;\n \n // Expanded background configuration for more flexibility\n backgroundSize?: string; // CSS background-size (e.g., 'cover', 'contain', '100% 100%')\n backgroundPosition?: string; // CSS background-position (e.g., 'center', 'top left')\n backgroundRepeat?: string; // CSS background-repeat (e.g., 'no-repeat', 'repeat')\n backgroundWidth?: string; // Width of background element (e.g., '100%', '500px')\n backgroundHeight?: string; // Height of background element (e.g., '100%', '500px')\n backgroundTop?: string; // Top position of background element (e.g., '0', '10px')\n backgroundLeft?: string; // Left position of background element (e.g., '0', '10px')\n backgroundRight?: string; // Right position of background element (e.g., '0', 'auto')\n backgroundBottom?: string; // Bottom position of background element (e.g., '0', 'auto')\n \n // Parallax effect\n enableParallax?: boolean; // Whether to enable parallax effect on the background\n parallaxStrength?: number; // Strength of parallax effect (0.0-1.0, default 0.2)\n \n // Special effects\n enableNebula?: boolean;\n enableStars?: boolean;\n enableSkyline?: boolean;\n nebulaOpacity?: number;\n starsOpacity?: number;\n}\n\nexport interface ThemeDefinition {\n id: string;\n name: string;\n colors: ThemeColors;\n colorScheme: 'light' | 'dark';\n author?: string;\n authorLink?: string;\n}\n\n// Base theme default values (dark theme)\nexport const baseTheme: ThemeDefinition = {\n id: 'dark',\n name: 'Dark',\n colorScheme: 'dark',\n author: 'Kong Team',\n authorLink: 'https://kongswap.io',\n colors: {\n // Background colors\n bgDark: '#0D111F', // Deep navy\n bgLight: '#141826', // Lighter navy\n hoverBgLight: '#141826', // Same as bgLight by default in dark theme\n \n // Primary and secondary colors\n primary: '#0095EB', // Kong's brand blue\n primaryHover: '#0086D3', // Darker variant\n secondary: '#22D3EE', \n secondaryHover: '#0EA5E9',\n \n // Accent colors\n accentBlue: '#00A7FF', // Brighter blue\n accentRed: '#FF4545', // Vibrant red\n accentGreen: '#05EC86', // Vibrant green\n accentYellow: '#FFC107', // Material Yellow\n accentPurple: '#6F5DFB', // Vibrant purple\n accentCyan: '#22D3EE', \n \n // Hover variants\n accentGreenHover: '#04CE75',\n accentBlueHover: '#0090DC',\n accentRedHover: '#EB3737',\n accentYellowHover: '#FFA726', // Darker yellow\n \n // Text colors\n textPrimary: '#FFFFFF',\n textSecondary: '#B0B6C5', // Brighter secondary text\n textDisabled: '#6B7280',\n textLight: '#141826',\n textDark: '#0D111F',\n textOnPrimary: '#FFFFFF',\n textAccentGreen: '#05EC86', // Same as accent-green\n textAccentRed: '#FF4545', // Same as accent-red\n textAccentBlue: '#0095EB',\n \n // Font settings\n fontFamily: \"'Exo 2', 'Space Grotesk', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif\",\n \n // UI settings\n panelRoundness: 'rounded-lg', // Default panel roundness\n swapPanelRoundness: 'rounded-xl', // Swap panels are slightly more rounded\n swapPanelBorder: '1px solid rgba(255, 255, 255, 0.1)',\n swapPanelShadow: '0 8px 32px rgba(0, 0, 0, 0.32)',\n swapPanelInputsRounded: true,\n transparentSwapPanel: true, // Default to transparent swap panels\n swapPanelBorderStyle: 'default',\n statsTableTransparent: true, // Default to transparent stats table for modern look\n \n // Borders\n border: '#1C202E',\n borderLight: '#232735',\n \n // Surface colors\n surfaceDark: '#111523',\n surfaceLight: '#181C2A',\n \n // Logo properties\n logoBrightness: 1,\n logoInvert: 0,\n logoHoverBrightness: 0.9,\n \n // Token selector dropdown colors\n tokenSelectorBg: '#111523',\n tokenSelectorHeaderBg: '#181C2A',\n tokenSelectorItemBg: '#1C202E',\n tokenSelectorItemHoverBg: '#232735',\n tokenSelectorItemActiveBg: '#282C3A',\n tokenSelectorSearchBg: '#232735',\n tokenSelectorBorder: '1px solid rgba(255, 255, 255, 0.1)',\n tokenSelectorRoundness: 'rounded-lg',\n tokenSelectorShadow: '0 8px 32px rgba(0, 0, 0, 0.32)',\n \n // Plugin Manager colors\n pmDark: '#171923',\n pmBorder: '#282C3A',\n pmAccent: '#6F5DFB', // Same as accent-purple\n pmTextSecondary: '#9EA4BA',\n \n // Switch button styling\n switchButtonBg: '#111523',\n switchButtonHoverBg: '#232735',\n switchButtonBorder: '1px solid rgba(255, 255, 255, 0.1)',\n switchButtonShadow: '0 8px 32px rgba(0, 0, 0, 0.32)',\n \n // Chart text color\n chartTextColor: '#FFFFFF',\n \n // Token ticker styling\n tokenTickerBg: '#111523',\n tokenTickerText: '#FFFFFF',\n tokenTickerBorder: '1px solid rgba(255, 255, 255, 0.1)',\n tokenTickerBorderStyle: 'default',\n tokenTickerRoundness: 'rounded-lg',\n tokenTickerHoverBg: '#232735',\n tokenTickerShadow: '0 8px 32px rgba(0, 0, 0, 0.32)',\n tokenTickerUpColor: '#05EC86',\n tokenTickerDownColor: '#FF4545',\n tokenTickerBgOpacity: 100,\n \n // Button styling\n buttonBg: '#111523',\n buttonHoverBg: '#232735',\n buttonText: '#FFFFFF',\n buttonBorder: '1px solid rgba(255, 255, 255, 0.1)',\n buttonBorderColor: '#FFFFFF',\n buttonShadow: '0 8px 32px rgba(0, 0, 0, 0.32)',\n buttonRoundness: 'rounded-lg',\n \n // Primary button styling\n primaryButtonBg: '#0095EB',\n primaryButtonHoverBg: '#0086D3',\n primaryButtonText: '#FFFFFF',\n primaryButtonBorder: '1px solid rgba(255, 255, 255, 0.1)',\n primaryButtonBorderColor: '#FFFFFF',\n \n // Swap Button styling\n swapButtonPrimaryGradientStart: '#0095EB',\n swapButtonPrimaryGradientEnd: '#0086D3',\n swapButtonErrorGradientStart: '#FF4545',\n swapButtonErrorGradientEnd: '#EB3737',\n swapButtonProcessingGradientStart: '#6F5DFB',\n swapButtonProcessingGradientEnd: '#9EA4BA',\n swapButtonBorderColor: '#FFFFFF',\n swapButtonGlowColor: '#00A7FF',\n swapButtonShineColor: '#0090DC',\n swapButtonReadyGlowStart: '#05EC86',\n swapButtonReadyGlowEnd: '#04CE75',\n swapButtonTextColor: '#FFFFFF',\n swapButtonRoundness: 'rounded-lg',\n swapButtonShadow: '0 8px 32px rgba(0, 0, 0, 0.32)',\n \n // Background configuration\n backgroundType: 'gradient',\n backgroundGradient: 'linear-gradient(180deg, rgb(2, 6, 23) 0%, rgb(10, 15, 35) 100%)',\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n backgroundRepeat: 'no-repeat',\n backgroundWidth: '100%',\n backgroundHeight: '100%',\n backgroundTop: '0',\n backgroundLeft: '0',\n backgroundRight: 'auto',\n backgroundBottom: '0',\n enableParallax: false,\n enableNebula: true,\n enableStars: true,\n enableSkyline: true,\n nebulaOpacity: 0.3,\n starsOpacity: 0.8\n }\n}; ","// Theme Registry - Central place to manage all available themes\nimport type { ThemeDefinition } from './baseTheme';\nimport { baseTheme } from './baseTheme';\nimport { win98Theme } from './win98Theme';\nimport { plainBlackTheme } from './plainBlackTheme';\nimport { nordTheme } from './nordTheme';\nimport { lightTheme } from './lightTheme';\nimport { synthwaveTheme } from './synthwaveTheme';\n\n// Collection of all available themes\nconst themes: ThemeDefinition[] = [\n lightTheme, // Modern light theme\n baseTheme, // Default dark theme\n win98Theme, // Windows 98 light theme\n plainBlackTheme, // Plain black theme\n nordTheme, // Nord-inspired theme\n synthwaveTheme, // Synthwave sunset theme\n];\n\n/**\n * Get a theme by its ID\n * @param id The theme ID to look up\n * @returns The theme definition or the base theme if not found\n */\nexport function getThemeById(id: string): ThemeDefinition {\n return themes.find(theme => theme.id === id) || baseTheme;\n}\n\n/**\n * Get all available themes\n * @returns Array of all theme definitions\n */\nexport function getAllThemes(): ThemeDefinition[] {\n return [...themes];\n}\n\n/**\n * Add a new theme to the registry\n * @param theme The theme definition to add\n * @returns Whether the theme was successfully added\n */\nexport function registerTheme(theme: ThemeDefinition): boolean {\n // Check if a theme with this ID already exists\n if (themes.some(t => t.id === theme.id)) {\n console.warn(`Theme with ID \"${theme.id}\" already exists. Did not register.`);\n return false;\n }\n \n themes.push(theme);\n return true;\n}\n\n/**\n * Generate CSS variables from a theme definition\n * @param theme The theme to generate CSS variables for\n * @returns CSS variables as a string\n */\nexport function generateThemeVariables(theme: ThemeDefinition): string {\n const colors = theme.colors;\n const hexToRGB = (hex: string): string => {\n // Remove the hash at the start if it exists\n hex = hex.replace(/^#/, '');\n \n // Parse the hex values\n const r = parseInt(hex.length === 3 ? hex[0] + hex[0] : hex.substring(0, 2), 16);\n const g = parseInt(hex.length === 3 ? hex[1] + hex[1] : hex.substring(2, 4), 16);\n const b = parseInt(hex.length === 3 ? hex[2] + hex[2] : hex.substring(4, 6), 16);\n \n return `${r} ${g} ${b}`;\n };\n\n // Build the CSS variables\n let css = '';\n \n // Background colors\n css += `--bg-dark: ${hexToRGB(colors.bgDark)};\\n`;\n css += `--bg-light: ${hexToRGB(colors.bgLight)};\\n`;\n if (colors.hoverBgLight) {\n css += `--hover-bg-light: ${hexToRGB(colors.hoverBgLight)};\\n`;\n }\n \n // Primary and secondary colors\n css += `--primary: ${hexToRGB(colors.primary)};\\n`;\n css += `--primary-hover: ${hexToRGB(colors.primaryHover)};\\n`;\n css += `--secondary: ${hexToRGB(colors.secondary)};\\n`;\n css += `--secondary-hover: ${hexToRGB(colors.secondaryHover)};\\n`;\n \n // Accent colors\n css += `--accent-blue: ${hexToRGB(colors.accentBlue)};\\n`;\n css += `--accent-red: ${hexToRGB(colors.accentRed)};\\n`;\n css += `--accent-green: ${hexToRGB(colors.accentGreen)};\\n`;\n css += `--accent-yellow: ${hexToRGB(colors.accentYellow)};\\n`;\n css += `--accent-purple: ${hexToRGB(colors.accentPurple)};\\n`;\n css += `--accent-cyan: ${hexToRGB(colors.accentCyan)};\\n`;\n \n // Hover variants\n css += `--accent-green-hover: ${hexToRGB(colors.accentGreenHover)};\\n`;\n css += `--accent-blue-hover: ${hexToRGB(colors.accentBlueHover)};\\n`;\n css += `--accent-red-hover: ${hexToRGB(colors.accentRedHover)};\\n`;\n if (colors.accentYellowHover) {\n css += `--accent-yellow-hover: ${hexToRGB(colors.accentYellowHover)};\\n`;\n }\n \n // Text colors\n css += `--text-primary: ${hexToRGB(colors.textPrimary)};\\n`;\n css += `--text-secondary: ${hexToRGB(colors.textSecondary)};\\n`;\n css += `--text-disabled: ${hexToRGB(colors.textDisabled)};\\n`;\n if (colors.textLight) {\n css += `--text-light: ${hexToRGB(colors.textLight)};\\n`;\n }\n if (colors.textDark) {\n css += `--text-dark: ${hexToRGB(colors.textDark)};\\n`;\n }\n if (colors.textOnPrimary) {\n css += `--text-on-primary: ${hexToRGB(colors.textOnPrimary)};\\n`;\n }\n if (colors.textAccentGreen) {\n css += `--text-accent-green: ${hexToRGB(colors.textAccentGreen)};\\n`;\n }\n if (colors.textAccentBlue) {\n css += `--text-accent-blue: ${hexToRGB(colors.textAccentBlue)};\\n`;\n }\n if (colors.textAccentRed) {\n css += `--text-accent-red: ${hexToRGB(colors.textAccentRed)};\\n`;\n }\n \n // Borders\n css += `--border: ${hexToRGB(colors.border)};\\n`;\n css += `--border-light: ${hexToRGB(colors.borderLight)};\\n`;\n \n // Surface colors\n css += `--surface-dark: ${hexToRGB(colors.surfaceDark)};\\n`;\n css += `--surface-light: ${hexToRGB(colors.surfaceLight)};\\n`;\n \n // Logo properties\n css += `--logo-brightness: ${colors.logoBrightness};\\n`;\n css += `--logo-invert: ${colors.logoInvert};\\n`;\n css += `--logo-hover-brightness: ${colors.logoHoverBrightness};\\n`;\n \n // Plugin Manager colors\n css += `--pm-dark: ${hexToRGB(colors.pmDark)};\\n`;\n css += `--pm-border: ${hexToRGB(colors.pmBorder)};\\n`;\n css += `--pm-accent: ${hexToRGB(colors.pmAccent)};\\n`;\n css += `--pm-text-secondary: ${hexToRGB(colors.pmTextSecondary)};\\n`;\n \n // Token selector dropdown colors\n if (colors.tokenSelectorBg) {\n css += `--token-selector-bg: ${colors.tokenSelectorBg};\\n`;\n }\n if (colors.tokenSelectorHeaderBg) {\n css += `--token-selector-header-bg: ${colors.tokenSelectorHeaderBg};\\n`;\n }\n if (colors.tokenSelectorItemBg) {\n css += `--token-selector-item-bg: ${colors.tokenSelectorItemBg};\\n`;\n }\n if (colors.tokenSelectorItemHoverBg) {\n css += `--token-selector-item-hover-bg: ${colors.tokenSelectorItemHoverBg};\\n`;\n }\n if (colors.tokenSelectorItemActiveBg) {\n css += `--token-selector-item-active-bg: ${colors.tokenSelectorItemActiveBg};\\n`;\n }\n if (colors.tokenSelectorSearchBg) {\n css += `--token-selector-search-bg: ${colors.tokenSelectorSearchBg};\\n`;\n }\n if (colors.tokenSelectorBorder) {\n css += `--token-selector-border: ${colors.tokenSelectorBorder};\\n`;\n }\n if (colors.tokenSelectorShadow) {\n css += `--token-selector-shadow: ${colors.tokenSelectorShadow};\\n`;\n }\n \n // Chart text color (if provided)\n if (colors.chartTextColor) {\n css += `--chart-text-color: ${colors.chartTextColor};\\n`;\n }\n \n // Background configuration\n css += `--background-type: ${colors.backgroundType};\\n`;\n if (colors.backgroundGradient) {\n css += `--background-gradient: ${colors.backgroundGradient};\\n`;\n }\n if (colors.backgroundSolid) {\n css += `--background-solid: ${colors.backgroundSolid};\\n`;\n }\n if (colors.backgroundImage) {\n css += `--background-image: ${colors.backgroundImage};\\n`;\n }\n if (colors.backgroundOpacity !== undefined) {\n css += `--background-opacity: ${colors.backgroundOpacity};\\n`;\n }\n css += `--enable-nebula: ${colors.enableNebula ? 1 : 0};\\n`;\n css += `--enable-stars: ${colors.enableStars ? 1 : 0};\\n`;\n css += `--enable-skyline: ${colors.enableSkyline ? 1 : 0};\\n`;\n \n if (colors.nebulaOpacity !== undefined) {\n css += `--nebula-opacity: ${colors.nebulaOpacity};\\n`;\n }\n if (colors.starsOpacity !== undefined) {\n css += `--stars-opacity: ${colors.starsOpacity};\\n`;\n }\n \n // Font family (if provided)\n if (colors.fontFamily) {\n css += `--font-family: ${colors.fontFamily};\\n`;\n }\n \n // Color scheme\n css += `color-scheme: ${theme.colorScheme};\\n`;\n \n return css;\n} ","// Modern Light theme definition\nimport type { ThemeDefinition } from './baseTheme';\n\nexport const lightTheme: ThemeDefinition = {\n id: 'light',\n name: 'Modern Light',\n colorScheme: 'light',\n author: 'Kong Team',\n authorLink: 'https://kongswap.io',\n colors: {\n // Background colors\n bgDark: '#F5F7FA', // Light gray/blue\n bgLight: '#FFFFFF', // White\n hoverBgLight: '#EEF1F5', // Slightly darker for hover\n \n // Primary and secondary colors\n primary: '#2563EB', // Modern blue\n primaryHover: '#1D4ED8', // Darker blue\n secondary: '#0EA5E9', // Sky blue\n secondaryHover: '#0284C7', // Darker sky blue\n \n // Accent colors\n accentBlue: '#3B82F6', // Modern blue\n accentRed: '#EF4444', // Modern red\n accentGreen: '#10B981', // Modern green\n accentYellow: '#F59E0B', // Modern amber\n accentPurple: '#8B5CF6', // Modern purple\n accentCyan: '#06B6D4', // Modern cyan\n \n // Hover variants\n accentGreenHover: '#059669', // Darker green\n accentBlueHover: '#2563EB', // Darker blue\n accentRedHover: '#DC2626', // Darker red\n accentYellowHover: '#D97706', // Darker amber\n \n // Text colors\n textPrimary: '#1E293B', // Slate 800\n textSecondary: '#475569', // Slate 600\n textDisabled: '#94A3B8', // Slate 400\n textAccentGreen: '#059669', // Green 600\n textAccentRed: '#DC2626', // Red 600\n textAccentBlue: '#2563EB', // Blue 600\n textOnPrimary: '#fff',\n \n // Font settings\n fontFamily: \"'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif\",\n \n // UI settings\n panelRoundness: 'rounded-lg', // Modern rounded corners\n swapPanelRoundness: 'rounded-xl', // Slightly more rounded for swap panels\n swapPanelBorder: '1px solid rgba(203, 213, 225, 0.5)', // Light border\n swapPanelShadow: '0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.05)', // Modern shadow\n swapPanelInputsRounded: true, // Rounded inputs\n \n // Borders\n border: '#E2E8F0', // Slate 200\n borderLight: '#F1F5F9', // Slate 100\n \n // Surface colors\n surfaceDark: '#F8FAFC', // Slate 50\n surfaceLight: '#FFFFFF', // White\n \n // Logo properties - adjust for light theme\n logoBrightness: 0.9,\n logoInvert: 1, // Invert for dark logos on light background\n logoHoverBrightness: 0.8,\n \n // Token selector dropdown colors\n tokenSelectorBg: '#FFFFFF',\n tokenSelectorHeaderBg: '#F8FAFC',\n tokenSelectorItemBg: '#F8FAFC',\n tokenSelectorItemHoverBg: '#F1F5F9',\n tokenSelectorItemActiveBg: '#E2E8F0',\n tokenSelectorSearchBg: '#FFFFFF',\n tokenSelectorBorder: '1px solid rgba(203, 213, 225, 0.5)',\n tokenSelectorRoundness: 'rounded-lg',\n tokenSelectorShadow: '0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.05)',\n \n // Plugin Manager colors\n pmDark: '#F8FAFC',\n pmBorder: '#E2E8F0',\n pmAccent: '#8B5CF6', // Modern purple\n pmTextSecondary: '#475569',\n \n // Chart text color\n chartTextColor: '#1E293B',\n \n // Background configuration\n backgroundType: 'gradient',\n backgroundGradient: 'linear-gradient(180deg, rgb(241, 245, 249) 0%, rgb(248, 250, 252) 100%)',\n backgroundOpacity: 1,\n enableNebula: false,\n enableStars: false,\n enableSkyline: false\n }\n}; ","// Light theme definition (Windows 98-inspired)\nimport type { ThemeDefinition } from './baseTheme';\n\nexport const win98Theme: ThemeDefinition = {\n id: 'win98light',\n name: 'Windoge98 Light',\n colorScheme: 'light',\n author: 'Shill Gates',\n authorLink: 'https://windoge98.com',\n colors: {\n // Background colors\n bgDark: '#C3C3C3', // Windows 98 light gray\n bgLight: '#FDFFFF', // Windows 98 highlight color\n \n // Primary and secondary colors\n primary: '#010081', // Windows 98 blue\n primaryHover: '#000064', // Darker variant of Windows 98 blue\n secondary: '#008080', // Windows 98 teal\n secondaryHover: '#006464', // Darker variant of teal\n \n // Accent colors\n accentBlue: '#010081', // Windows 98 blue\n accentRed: '#FF0081', // Windows 98 pink/magenta\n accentGreen: '#008080', // Windows 98 teal as green\n accentYellow: '#FFFF00', // Windows 98 yellow\n accentPurple: '#6F5DFB', // Keeping consistent in light theme\n accentCyan: '#0891B2', \n \n // Hover variants\n accentGreenHover: '#006464', // Darker teal\n accentBlueHover: '#000064', // Darker blue\n accentRedHover: '#C80064', // Darker magenta\n accentYellowHover: '#E6E600', // Darker yellow\n \n // Text colors\n textPrimary: '#000000', // Windows 98 text\n textSecondary: '#323232', // Windows 98 dark gray\n textDisabled: '#818181', // Windows 98 dark gray\n textAccentGreen: '#008000', // More vibrant forest green\n textAccentRed: '#B00000', // More vibrant deep red\n textAccentBlue: '#00008B', // Darker blue for better contrast on gray\n textOnPrimary: '#fff',\n textLight: '#fff',\n textDark: '#000',\n \n // Font settings - Using Windows 98-style font\n fontFamily: \"'Comic Sans MS', 'MS Sans Serif', 'Segoe UI', Arial, sans-serif\",\n \n // UI settings\n panelRoundness: 'rounded', // Subtle roundness for the Windows 98 look\n swapPanelRoundness: 'rounded-none', // No rounded corners for Windows 98 style\n swapPanelBorder: 'none', // Turn off standard border - using shadow for 3D effect\n swapPanelShadow: 'inset 1px 1px 0 #FFFFFF, inset -1px -1px 0 #808080, inset 2px 2px 0 #D4D0C8, inset -2px -2px 0 #404040', // Win95 3D border effect\n swapPanelInputsRounded: false, // Square inputs for Windows 98 style\n transparentSwapPanel: false, // Solid background for Win98 panels\n swapPanelBorderStyle: 'win95', // Use the Win95 border style\n statsTableTransparent: false, // Use solid background for Win98 stats table\n \n // Borders\n border: '#818181', // Windows 98 dark gray\n borderLight: '#FDFFFF', // Windows 98 highlight color\n \n // Surface colors\n surfaceDark: '#E1E6F0',\n surfaceLight: '#C3C3C3', // Win98 standard gray for button background\n \n // Switch button specific styling - Win98 style\n switchButtonBg: '#C3C3C3', // Standard Win98 gray for default state\n switchButtonHoverBg: '#D4D0C8', // Slightly lighter gray for hover state\n switchButtonBorder: '#FDFFFF #818181 #818181 #FDFFFF', // Win98 3D border effect\n switchButtonShadow: 'inset 1px 1px 0 #FFFFFF, inset -1px -1px 0 #808080', // Win98 inner shadow\n \n // Swap Button styling for Win98 theme\n swapButtonPrimaryGradientStart: '#010081', // Windows 98 blue\n swapButtonPrimaryGradientEnd: '#000064', // Darker Win98 blue\n swapButtonErrorGradientStart: '#FF0000', // Win98 red\n swapButtonErrorGradientEnd: '#C80000', // Darker Win98 red\n swapButtonProcessingGradientStart: '#C3C3C3', // Win98 gray\n swapButtonProcessingGradientEnd: '#D4D0C8', // Lighter Win98 gray\n swapButtonBorderColor: '#FDFFFF #818181 #818181 #FDFFFF', // Win98 3D border colors\n swapButtonGlowColor: 'rgba(0, 0, 0, 0.1)', // Subtle glow effect for Win98\n swapButtonShineColor: 'rgba(255, 255, 255, 0.5)', // Shine effect color\n swapButtonReadyGlowStart: '#008080', // Win98 teal\n swapButtonReadyGlowEnd: '#006464', // Darker teal\n swapButtonTextColor: '#FFFFFF', // White text for contrast\n swapButtonRoundness: 'rounded-none', // Square corners for Win98 look\n swapButtonShadow: 'inset 1px 1px 0 #FFFFFF, inset -1px -1px 0 #808080', // Win98 inner shadow\n \n // Logo properties\n logoBrightness: 0.75,\n logoInvert: 0,\n logoHoverBrightness: 0.65,\n logoPath: '/images/exe-kong-logo2.webp', // Custom Windows 98 style logo\n \n // Chart text color\n chartTextColor: '#334155', // Darker blue-gray for better contrast\n \n // Plugin Manager colors\n pmDark: '#E1E6F0',\n pmBorder: '#C3C3C3',\n pmAccent: '#6F5DFB', // Same as accent-purple\n pmTextSecondary: '#323232',\n \n // Token ticker styling\n tokenTickerBg: '#C3C3C3', // Windows 98 light gray background (same as bgDark)\n tokenTickerText: '#000000', // Black text\n tokenTickerBorder: '1px solid #818181', // Windows 98 gray border\n tokenTickerBorderStyle: 'win95', // Windows 95 style 3D border\n tokenTickerRoundness: 'rounded-none', // Square corners for Win98 style\n tokenTickerHoverBg: '#E1E6F0', // Slight highlight on hover\n tokenTickerShadow: '2px 2px 0px rgba(0, 0, 0, 0.2)', // Windows 98 shadow\n tokenTickerUpColor: '#008000', // More vibrant forest green for price increase\n tokenTickerDownColor: '#B00000', // More vibrant deep red for price decrease\n tokenTickerBgOpacity: 100, // Solid background (100% opacity)\n \n // Button styling for win98 theme\n buttonBg: '#C3C3C3', // Standard button background\n buttonHoverBg: '#E1E6F0', // Button hover background \n buttonText: '#000000', // Button text color\n buttonBorder: '2px solid', // Button border width and style\n buttonBorderColor: '#FDFFFF #818181 #818181 #FDFFFF', // Win98 3D border effect\n buttonShadow: 'inset -1px -1px 0 #000000, inset 1px 1px 0 #FFFFFF', // Win98 inner shadow\n buttonRoundness: 'rounded-none', // No rounded corners for Win98\n \n // Primary button styling (for important actions)\n primaryButtonBg: '#010081', // Win98 blue background\n primaryButtonHoverBg: '#000064', // Darker blue on hover\n primaryButtonText: '#FFFFFF', // White text for contrast\n primaryButtonBorder: '2px solid', // Same border width/style\n primaryButtonBorderColor: '#0000A8 #000050 #000050 #0000A8', // 3D effect with matching colors\n \n // Background configuration\n backgroundType: 'pattern',\n backgroundImage: '/backgrounds/cloudbg.jpg', // Windoge splash image in backgrounds directory\n backgroundOpacity: 1.0, // Full opacity\n \n // Enhanced background configuration for Windows 98 sky\n backgroundSize: 'cover',\n backgroundPosition: 'center center',\n backgroundRepeat: 'no-repeat',\n backgroundWidth: '100%',\n backgroundHeight: '100%',\n backgroundTop: '0',\n backgroundLeft: '0',\n backgroundRight: 'auto',\n backgroundBottom: 'auto',\n \n // Enable subtle parallax effect for the clouds\n enableParallax: false,\n parallaxStrength: 0,\n \n // Disable special effects for authentic Windows 98 look\n enableNebula: false,\n enableStars: false,\n enableSkyline: false\n }\n}; ","// Plain Black theme definition\nimport type { ThemeDefinition } from './baseTheme';\n\nexport const plainBlackTheme: ThemeDefinition = {\n id: 'plain-black',\n name: 'Midnight',\n colorScheme: 'dark',\n author: 'Shill Gates',\n authorLink: 'https://www.windoge98.com/',\n colors: {\n // Background colors\n bgDark: '#000000', // Pure black\n bgLight: '#121212', // Very dark gray\n hoverBgLight: '#1E1E1E', // Slightly lighter for more prominent hover\n \n // Primary and secondary colors\n primary: '#0095EB', // Kong's brand blue\n primaryHover: '#0086D3', // Darker variant\n secondary: '#22D3EE',\n secondaryHover: '#0EA5E9',\n \n // Accent colors\n accentBlue: '#00A7FF', // Brighter blue\n accentRed: '#FF4545', // Vibrant red\n accentGreen: '#05EC86', // Vibrant green\n accentYellow: '#FFC107', // Material Yellow\n accentPurple: '#6F5DFB', // Vibrant purple\n accentCyan: '#22D3EE',\n \n // Hover variants\n accentGreenHover: '#04CE75',\n accentBlueHover: '#0090DC',\n accentRedHover: '#EB3737',\n accentYellowHover: '#FFA726', // Darker yellow\n \n // Text colors\n textPrimary: '#FFFFFF', // Pure white\n textSecondary: '#CCCCCC', // Light gray\n textDisabled: '#666666', // Medium gray\n textAccentGreen: '#05EC86', // Same as accent-green\n textAccentRed: '#FF4545', // Same as accent-red\n textAccentBlue: '#0095EB',\n \n // Font settings\n fontFamily: \"'IBM Plex Mono', monospace\",\n \n // UI settings\n panelRoundness: 'rounded-none', // Sharp corners for the brutalist plain-black theme\n swapPanelRoundness: 'rounded-none', // No rounded corners for brutalist style\n swapPanelBorder: '2px solid rgba(255, 255, 255, 0.3)', // Bright border for contrast\n swapPanelShadow: 'none', // No shadow for brutalist style\n swapPanelInputsRounded: false, // Sharp corners for all elements\n \n // Borders\n border: '#333333',\n borderLight: '#232735',\n \n // Surface colors\n surfaceDark: '#121212',\n surfaceLight: '#1A1A1A',\n \n // Logo properties\n logoBrightness: 1,\n logoInvert: 0,\n logoHoverBrightness: 0.9,\n \n // Plugin Manager colors\n pmDark: '#171717',\n pmBorder: '#282828',\n pmAccent: '#6F5DFB', // Same as accent-purple\n pmTextSecondary: '#9EA4BA',\n \n // Background configuration\n backgroundType: 'solid',\n backgroundSolid: '#000000', // Pure black background\n enableNebula: false,\n enableStars: true,\n enableSkyline: false,\n starsOpacity: 1 // Higher opacity for stars in pure black theme\n }\n}; ","// Example Custom Theme - Demonstrates how to create a new theme programmatically\nimport type { ThemeDefinition } from './baseTheme';\n\n/**\n * Nord color palette reference:\n * Polar Night (dark)\n * - nord0: #2E3440\n * - nord1: #3B4252\n * - nord2: #434C5E\n * - nord3: #4C566A\n * \n * Snow Storm (light)\n * - nord4: #D8DEE9\n * - nord5: #E5E9F0\n * - nord6: #ECEFF4\n * \n * Frost (blues)\n * - nord7: #8FBCBB\n * - nord8: #88C0D0\n * - nord9: #81A1C1\n * - nord10: #5E81AC\n * \n * Aurora (accent)\n * - nord11: #BF616A (red)\n * - nord12: #D08770 (orange)\n * - nord13: #EBCB8B (yellow)\n * - nord14: #A3BE8C (green)\n * - nord15: #B48EAD (purple)\n */\n\n// Nord-inspired theme with cool blues and soft contrasts\nexport const nordTheme: ThemeDefinition = {\n id: 'nord',\n name: 'Nordic',\n colorScheme: 'dark',\n author: 'Shill Gates',\n authorLink: 'https://www.windoge98.com/',\n colors: {\n // Background colors\n bgDark: '#2E3440', // nord0 - Polar Night darkest\n bgLight: '#3B4252', // nord1 - Polar Night lighter\n hoverBgLight: '#434C5E', // nord2 - Polar Night hover\n \n // Primary and secondary colors\n primary: '#88C0D0', // nord8 - Frost light blue\n primaryHover: '#81A1C1', // nord9 - Frost medium blue\n secondary: '#5E81AC', // nord10 - Frost dark blue\n secondaryHover: '#4C6A92', // Darker variant of nord10\n \n // Accent colors - using the aurora palette for accents\n accentBlue: '#81A1C1', // nord9 - Frost medium blue\n accentRed: '#BF616A', // nord11 - Aurora red\n accentGreen: '#A3BE8C', // nord14 - Aurora green\n accentYellow: '#EBCB8B', // nord13 - Aurora yellow\n accentPurple: '#B48EAD', // nord15 - Aurora purple\n accentCyan: '#8FBCBB', // nord7 - Frost cyan\n \n // Hover variants - slightly darker shades of the accent colors\n accentGreenHover: '#97B67E', // Darker green\n accentBlueHover: '#7393B3', // Darker blue\n accentRedHover: '#B3555E', // Darker red\n accentYellowHover: '#E1C079', // Darker yellow\n \n // Text colors - using Snow Storm palette for text\n textLight: '#ECEFF4',\n textDark: '#2E3440',\n textPrimary: '#ECEFF4', // nord6 - Snow Storm lightest\n textSecondary: '#D8DEE9', // nord4 - Snow Storm medium\n textDisabled: '#ADB5BD', // Desaturated text\n textOnPrimary: '#2E3440', // nord0 - Dark text on primary color backgrounds\n textAccentGreen: '#A3BE8C', // nord14 - Same as accent green\n textAccentRed: '#BF616A', // nord11 - Same as accent red\n textAccentBlue: '#81A1C1', // nord9 - Same as accent blue\n \n // Font settings - Using a clean font that complements the Nord theme\n fontFamily: \"'Inter', 'Rubik', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif\",\n \n // UI settings\n panelRoundness: 'rounded-md', // Slightly less rounded corners for Nord's minimalist style\n swapPanelRoundness: 'rounded-lg', // Slightly more rounded for swap panels\n swapPanelBorder: '1px solid #4C566A', // Nord's border color\n swapPanelShadow: '0 8px 24px rgba(0, 0, 0, 0.25)',\n swapPanelInputsRounded: true,\n \n // Borders - using Polar Night palette for borders\n border: '#4C566A', // nord3 - Polar Night light\n borderLight: '#434C5E', // nord2 - Polar Night medium\n \n // Surface colors - similar to background colors but can be used for cards and containers\n surfaceDark: '#2E3440', // nord0 - Same as bg-dark\n surfaceLight: '#3B4252', // nord1 - Same as bg-light\n \n // Logo properties\n logoBrightness: 1,\n logoInvert: 0,\n logoHoverBrightness: 0.9,\n \n // Chart text color\n chartTextColor: '#ECEFF4', // nord6 - Snow Storm lightest for chart text\n \n // Plugin Manager colors\n pmDark: '#292E39', // Slightly darker than bg-dark\n pmBorder: '#4C566A', // nord3 - Same as border\n pmAccent: '#B48EAD', // nord15 - Aurora purple\n pmTextSecondary: '#D8DEE9', // nord4 - Snow Storm medium\n \n // Background configuration\n backgroundType: 'pattern',\n backgroundOpacity: 0.2, // Reduced opacity so it doesn't overpower the UI\n enableNebula: false,\n enableStars: false,\n enableSkyline: false,\n nebulaOpacity: 0.2,\n }\n}; ","// Synthwave Theme - A retro-futuristic theme inspired by 80s aesthetics and sunset colors\nimport type { ThemeDefinition } from './baseTheme';\n\n/**\n * Synthwave color palette reference:\n * - Backgrounds: Deep purples and blues\n * - Gradients: Sunset-like transitions (purple to pink to orange)\n * - Accents: Bright neon pink, purple, and teal\n * - Style: 80s retro-futuristic vibes\n */\n\nexport const synthwaveTheme: ThemeDefinition = {\n id: 'synthwave',\n name: 'Synthwave Sunset',\n colorScheme: 'dark',\n author: 'Shill Gates',\n authorLink: 'https://windoge98.com',\n colors: {\n // Background colors - deep purple\n bgDark: '#16004A', // Deep purple\n bgLight: '#2F0B68', // Medium purple\n hoverBgLight: '#3A1277', // Slightly lighter purple on hover\n \n // Primary and secondary colors\n primary: '#FF36AB', // Hot pink\n primaryHover: '#E62E98', // Slightly darker pink\n secondary: '#00CCDD', // Bright teal\n secondaryHover: '#00B6C5', // Darker teal\n \n // Accent colors - vibrant neons for contrast\n accentBlue: '#4D6CFA', // Bright blue\n accentRed: '#FF3864', // Bright red/pink\n accentGreen: '#36F9B3', // Bright green\n accentYellow: '#FFB951', // Amber/gold\n accentPurple: '#9D54FF', // Bright purple\n accentCyan: '#00CCDD', // Bright teal/cyan\n \n // Hover variants - slightly darker versions\n accentGreenHover: '#2BE0A1', // Darker green\n accentBlueHover: '#3555DE', // Darker blue\n accentRedHover: '#E62954', // Darker red\n accentYellowHover: '#F5A43A', // Darker amber\n \n // Text colors\n textPrimary: '#FFFFFF', // Pure white\n textSecondary: '#D1B8FF', // Light lavender\n textDisabled: '#7E6D9E', // Muted purple\n textLight: '#FFFFFF', // White text\n textDark: '#16004A', // Dark text\n textOnPrimary: '#FFFFFF', // White text on primary\n textAccentGreen: '#36F9B3', // Same as accent green\n textAccentRed: '#FF3864', // Same as accent red\n textAccentBlue: '#4D6CFA', // Same as accent blue\n \n // Font settings - modern monospace fonts with retro-futuristic feel\n fontFamily: \"'Major Mono Display', 'Share Tech Mono', 'Space Mono', 'IBM Plex Mono', monospace\",\n \n // UI settings\n panelRoundness: 'rounded-md', // Less rounded corners\n swapPanelRoundness: 'rounded-lg', // Slightly more rounded for swap panels\n swapPanelBorder: '1px solid rgba(255, 54, 171, 0.3)', // Pink border\n swapPanelShadow: '0 0 30px rgba(255, 54, 171, 0.15), 0 0 10px rgba(79, 10, 190, 0.2)', // Pink/purple glow\n swapPanelInputsRounded: true,\n \n // Borders\n border: '#401C7A', // Dark purple border\n borderLight: '#5C3195', // Light purple border\n \n // Surface colors\n surfaceDark: '#18004F', // Dark purple for cards\n surfaceLight: '#2F0B68', // Medium purple for panels\n \n // Logo properties - make it pop\n logoBrightness: 1.1, // Slightly brighter\n logoInvert: 0, // No inversion\n logoHoverBrightness: 1.3, // Brighter on hover\n \n // Plugin Manager colors\n pmDark: '#16004A', // Same as bg-dark\n pmBorder: '#5C3195', // Same as border-light\n pmAccent: '#9D54FF', // Purple accent\n pmTextSecondary: '#D1B8FF', // Same as text-secondary\n \n // Chart text color\n chartTextColor: '#FFFFFF', // White for chart text\n \n // Button styling\n buttonBg: '#33146E', // Deep purple button background\n buttonHoverBg: '#471D8A', // Slightly lighter purple on hover\n buttonText: '#D1B8FF', // Light lavender text\n buttonBorder: '1px solid', // Standard border width\n buttonBorderColor: 'rgba(255, 54, 171, 0.4)', // Pink border with transparency\n buttonShadow: '0 0 10px rgba(255, 54, 171, 0.2)', // Subtle pink glow\n buttonRoundness: 'rounded-md', // Matching panel roundness\n \n // Primary button styling - hot pink with glow\n primaryButtonBg: '#FF36AB', // Hot pink background\n primaryButtonHoverBg: '#FF45B5', // Brighter pink on hover\n primaryButtonText: '#FFFFFF', // White text\n primaryButtonBorder: '1px solid', // Standard border width\n primaryButtonBorderColor: 'rgba(255, 54, 171, 0.7)', // More pronounced pink border\n \n // Background configuration - sunset gradient\n backgroundType: 'gradient',\n backgroundGradient: 'linear-gradient(135deg, #16004A 0%, #2F0B68 25%, #5B1A9A 50%, #7A1F7C 75%, #AA307F 100%)',\n backgroundOpacity: 1,\n enableNebula: true, // Enable nebula effect\n enableStars: true, // Enable stars\n enableSkyline: true, // Enable skyline for 80s city vibe\n nebulaOpacity: 0.4, // Subtle nebula\n starsOpacity: 0.7 // Visible stars\n }\n}; ","import { writable } from 'svelte/store';\nimport { browser } from '$app/environment';\nimport { getThemeById, generateThemeVariables, getAllThemes, registerTheme } from '../themes/themeRegistry';\nimport type { ThemeDefinition } from '../themes/baseTheme';\nimport { createNamespacedStore } from '../config/localForage.config';\nimport { get } from 'svelte/store';\nimport { auth } from '../stores/auth';\n\n// Define theme ID type based on available themes\nexport type ThemeId = 'dark' | 'light' | 'plain-black' | 'nord' | 'modern-light' | 'win98light' | 'synthwave';\n\nfunction createThemeStore() {\n const { subscribe, set } = writable('dark');\n const THEME_KEY = 'theme';\n const themeStorage = createNamespacedStore(THEME_KEY);\n let previousAuthState = { isConnected: false, principalId: null };\n \n /**\n * Get the current user ID from auth service or default to 'default'\n */\n function getUserId(): string {\n if (browser) {\n try {\n const authState = get(auth);\n return authState?.account?.owner?.toString() || 'default';\n } catch (error) {\n console.error('Failed to get user ID:', error);\n return 'default';\n }\n }\n return 'default';\n }\n \n /**\n * Apply a theme's CSS variables to the document root\n * @param themeId The ID of the theme to apply\n */\n function applyThemeStyles(themeId: ThemeId) {\n const theme = getThemeById(themeId);\n const styleElement = document.getElementById('dynamic-theme-styles') || createStyleElement();\n \n // Generate the CSS with the appropriate selector for each theme\n // This ensures theme-specific styles (like border colors) are properly scoped\n let cssContent;\n \n // Get the light or dark class based on the theme's colorScheme\n const themeClass = theme.colorScheme === 'light' ? 'light' : 'dark';\n \n // Apply CSS variables to the appropriate theme class\n cssContent = `\n /* ${theme.name} theme styles */\n :root.${themeClass} {\n ${generateThemeVariables(theme)}\n }\n \n :root.${themeClass} body {\n font-family: ${theme.colors.fontFamily || 'inherit'};\n }`;\n \n styleElement.textContent = cssContent;\n \n // Apply theme class to the HTML element by first removing all theme classes\n document.documentElement.classList.remove('light', 'dark');\n \n // Add the appropriate light/dark class based on the theme's colorScheme\n document.documentElement.classList.add(themeClass);\n \n // Also add the specific theme ID as a class for custom selectors\n document.documentElement.classList.remove(...getAllThemes().map(t => `theme-${t.id}`));\n document.documentElement.classList.add(`theme-${theme.id}`);\n \n // Mark the theme as ready\n document.documentElement.setAttribute('data-theme-ready', 'true');\n \n // Add inline style attribute to root for background CSS variables access in selectors\n // This is needed because CSS variables can't be directly used in :root selectors\n document.documentElement.setAttribute('style', \n `--background-type: ${theme.colors.backgroundType};\n --enable-nebula: ${theme.colors.enableNebula ? 1 : 0};\n --enable-stars: ${theme.colors.enableStars ? 1 : 0};\n --enable-skyline: ${theme.colors.enableSkyline ? 1 : 0};\n --font-family: ${theme.colors.fontFamily || 'inherit'};\n ${theme.colors.nebulaOpacity ? `--nebula-opacity: ${theme.colors.nebulaOpacity};` : ''}\n ${theme.colors.starsOpacity ? `--stars-opacity: ${theme.colors.starsOpacity};` : ''}\n ${theme.colors.backgroundGradient ? `--background-gradient: ${theme.colors.backgroundGradient};` : ''}\n ${theme.colors.backgroundSolid ? `--background-solid: ${theme.colors.backgroundSolid};` : ''}\n ${theme.colors.backgroundImage ? `--background-image: ${theme.colors.backgroundImage};` : ''}\n ${theme.colors.logoPath ? `--logo-path: ${theme.colors.logoPath};` : ''}\n ${theme.colors.logoInvert !== undefined ? `--logo-invert: ${theme.colors.logoInvert};` : ''}\n ${theme.colors.logoBrightness !== undefined ? `--logo-brightness: ${theme.colors.logoBrightness};` : ''}\n ${theme.colors.logoHoverBrightness !== undefined ? `--logo-hover-brightness: ${theme.colors.logoHoverBrightness};` : ''}\n \n /* Token ticker styling variables */\n ${theme.colors.tokenTickerBg ? `--token-ticker-bg: ${theme.colors.tokenTickerBg};` : ''}\n ${theme.colors.tokenTickerText ? `--token-ticker-text: ${theme.colors.tokenTickerText};` : ''}\n ${theme.colors.tokenTickerBorder ? `--token-ticker-border: ${theme.colors.tokenTickerBorder};` : ''}\n ${theme.colors.tokenTickerBorderStyle ? `--token-ticker-border-style: ${theme.colors.tokenTickerBorderStyle};` : ''}\n ${theme.colors.tokenTickerRoundness ? `--token-ticker-roundness: ${theme.colors.tokenTickerRoundness};` : ''}\n ${theme.colors.tokenTickerHoverBg ? `--token-ticker-hover-bg: ${theme.colors.tokenTickerHoverBg};` : ''}\n ${theme.colors.tokenTickerShadow ? `--token-ticker-shadow: ${theme.colors.tokenTickerShadow};` : ''}\n ${theme.colors.tokenTickerUpColor ? `--token-ticker-up-color: ${theme.colors.tokenTickerUpColor};` : ''}\n ${theme.colors.tokenTickerDownColor ? `--token-ticker-down-color: ${theme.colors.tokenTickerDownColor};` : ''}\n ${theme.colors.tokenTickerBgOpacity !== undefined ? `--token-ticker-bg-opacity: ${theme.colors.tokenTickerBgOpacity};` : ''}\n \n /* Button styling variables */\n ${theme.colors.buttonBg ? `--button-bg: ${theme.colors.buttonBg};` : ''}\n ${theme.colors.buttonHoverBg ? `--button-hover-bg: ${theme.colors.buttonHoverBg};` : ''}\n ${theme.colors.buttonText ? `--button-text: ${theme.colors.buttonText};` : ''}\n ${theme.colors.buttonBorder ? `--button-border: ${theme.colors.buttonBorder};` : ''}\n ${theme.colors.buttonBorderColor ? `--button-border-color: ${theme.colors.buttonBorderColor};` : ''}\n ${theme.colors.buttonShadow ? `--button-shadow: ${theme.colors.buttonShadow};` : ''}\n ${theme.colors.buttonRoundness ? `--button-roundness: ${theme.colors.buttonRoundness};` : ''}\n \n /* Primary button styling variables */\n ${theme.colors.primaryButtonBg ? `--primary-button-bg: ${theme.colors.primaryButtonBg};` : ''}\n ${theme.colors.primaryButtonHoverBg ? `--primary-button-hover-bg: ${theme.colors.primaryButtonHoverBg};` : ''}\n ${theme.colors.primaryButtonText ? `--primary-button-text: ${theme.colors.primaryButtonText};` : ''}\n ${theme.colors.primaryButtonBorder ? `--primary-button-border: ${theme.colors.primaryButtonBorder};` : ''}\n ${theme.colors.primaryButtonBorderColor ? `--primary-button-border-color: ${theme.colors.primaryButtonBorderColor};` : ''}\n `\n );\n }\n\n /**\n * Create a style element for dynamic theme styles\n */\n function createStyleElement() {\n const styleElement = document.createElement('style');\n styleElement.id = 'dynamic-theme-styles';\n document.head.appendChild(styleElement);\n return styleElement;\n }\n\n /**\n * Save theme to storage using localForage\n * @param themeId The ID of the theme to save\n */\n async function saveThemeToStorage(themeId: ThemeId) {\n if (browser) {\n try {\n // Get wallet ID or default to 'default'\n const walletId = getUserId();\n \n // Create a theme key with the wallet ID\n const themeKey = `${THEME_KEY}_${walletId}`;\n \n // Save to localForage\n await themeStorage.setItem(themeKey, themeId);\n \n // Also save to default key for quick access\n await themeStorage.setItem(THEME_KEY, themeId);\n \n return true;\n } catch (error) {\n console.error('Failed to save theme to storage:', error);\n return false;\n }\n }\n return false;\n }\n \n /**\n * Load theme from storage using localForage\n * @returns Promise with the stored theme ID or null if not found\n */\n async function loadThemeFromStorage(): Promise {\n if (browser) {\n try {\n // Get wallet ID or default to 'default'\n const walletId = getUserId();\n \n // First try user-specific theme\n const themeKey = `${THEME_KEY}_${walletId}`;\n const userTheme = await themeStorage.getItem(themeKey);\n \n if (userTheme) {\n return userTheme;\n }\n \n // If no user theme, try the default theme\n const defaultTheme = await themeStorage.getItem(THEME_KEY);\n if (defaultTheme) {\n return defaultTheme;\n }\n \n // If still no theme, try the global default\n const globalDefault = await themeStorage.getItem(`${THEME_KEY}_default`);\n if (globalDefault) {\n return globalDefault;\n }\n } catch (error) {\n console.error('Failed to load theme from storage:', error);\n }\n }\n return null;\n }\n\n /**\n * Get theme quickly (synchronously) for initial UI render\n * @returns Theme ID or null\n */\n function getQuickTheme(): ThemeId | null {\n if (browser) {\n try {\n // Get cached theme ID from memory if it exists\n const cachedTheme = get({ subscribe }) as ThemeId;\n if (cachedTheme) {\n return cachedTheme;\n }\n \n // Default based on system preference\n const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;\n return prefersDark ? 'dark' : 'light';\n } catch (error) {\n console.error('Error getting quick theme:', error);\n }\n }\n return 'dark';\n }\n\n /**\n * Set the current theme\n * @param themeId The ID of the theme to set\n */\n async function setTheme(themeId: ThemeId) {\n if (browser) {\n applyThemeStyles(themeId);\n await saveThemeToStorage(themeId);\n }\n set(themeId);\n }\n \n /**\n * Register a new theme and apply it\n * @param theme The theme definition to register and apply\n */\n async function registerAndApplyTheme(theme: ThemeDefinition) {\n if (browser) {\n registerTheme(theme);\n await setTheme(theme.id as ThemeId);\n return true;\n }\n return false;\n }\n\n /**\n * Toggle between available themes in a cycle\n */\n async function toggleTheme() {\n if (browser) {\n const themes = getAllThemes().map(theme => theme.id) as ThemeId[];\n \n // Get current theme\n const currentTheme = await loadThemeFromStorage() || 'dark';\n \n // Find current theme index\n const currentIndex = themes.indexOf(currentTheme);\n \n // Get next theme (cycle back to first if at the end)\n const nextIndex = (currentIndex + 1) % themes.length;\n await setTheme(themes[nextIndex]);\n }\n }\n\n /**\n * Initialize the theme from localForage or system preference\n */\n function initTheme() {\n if (browser) {\n // Check if theme is already initializing from app.html\n const isInitializing = document.documentElement.getAttribute('data-theme-initializing') === 'true';\n \n // Start with data-theme-ready=\"false\" to hide content during loading\n document.documentElement.setAttribute('data-theme-ready', 'false');\n \n // If not initializing from app.html, set a quick theme\n if (!isInitializing) {\n // Use system preference for immediate display to prevent flashing\n const quickTheme = getQuickTheme();\n const theme = getThemeById(quickTheme);\n const themeClass = theme.colorScheme === 'light' ? 'light' : 'dark';\n document.documentElement.classList.remove('light', 'dark');\n document.documentElement.classList.add(themeClass);\n } else {\n // Clear the initializing attribute\n document.documentElement.removeAttribute('data-theme-initializing');\n }\n \n // Then load from localForage (async)\n loadThemeFromStorage().then(savedTheme => {\n const availableThemes = getAllThemes().map(theme => theme.id);\n \n // Determine which theme to use\n let themeToApply: ThemeId;\n if (savedTheme && availableThemes.includes(savedTheme)) {\n themeToApply = savedTheme;\n } else {\n // Default based on system preference\n const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;\n themeToApply = prefersDark ? 'dark' : 'light';\n }\n \n // Apply color scheme class early to prevent flashing\n const theme = getThemeById(themeToApply);\n const themeClass = theme.colorScheme === 'light' ? 'light' : 'dark';\n document.documentElement.classList.remove('light', 'dark');\n document.documentElement.classList.add(themeClass);\n \n // Apply full theme \n setTimeout(() => {\n setTheme(themeToApply);\n \n // Mark theme as ready after styles are applied\n setTimeout(() => {\n document.documentElement.setAttribute('data-theme-ready', 'true');\n }, 50);\n }, 10);\n }).catch(error => {\n console.error('Error initializing theme:', error);\n \n // Fallback to dark theme in case of error\n setTheme('dark');\n });\n }\n }\n\n // Create a subscription to the auth store to reload theme when auth changes\n if (browser) {\n auth.subscribe((authState) => {\n const currentAuthState = {\n isConnected: authState.isConnected,\n principalId: authState.account?.owner?.toString() || null\n };\n \n // Check if auth state has changed in a meaningful way\n if (currentAuthState.isConnected !== previousAuthState.isConnected || \n currentAuthState.principalId !== previousAuthState.principalId) {\n \n console.log('[ThemeStore] Auth state changed, reloading theme');\n \n // Wait a bit before loading to make sure auth state has stabilized\n setTimeout(() => {\n loadThemeFromStorage().then(theme => {\n if (theme) {\n console.log('[ThemeStore] Applying theme from storage:', theme);\n setTheme(theme);\n }\n });\n }, 100);\n \n // Update previous state\n previousAuthState = currentAuthState;\n }\n });\n }\n\n // Initialize on module load\n if (browser) {\n // Delay initialization slightly to let the DOM load first\n setTimeout(initTheme, 0);\n }\n\n return {\n subscribe,\n setTheme,\n initTheme,\n toggleTheme,\n loadThemeFromStorage,\n saveThemeToStorage,\n registerAndApplyTheme\n };\n}\n\nexport const themeStore = createThemeStore();\n","\n\n\n{#if transition === 'slide'}\n
\n {#if children}\n {@render children()}\n {:else}\n {content}\n {/if}\n
\n{:else if transition === 'fade'}\n
\n {#if children}\n {@render children()}\n {:else}\n {content}\n {/if}\n
\n{:else}\n
\n {#if children}\n {@render children()}\n {:else}\n {content}\n {/if}\n
\n{/if}\n\n"],"names":["defaultAttributes","xmlns","width","height","viewBox","fill","stroke","name","color","size","strokeWidth","absoluteStrokeWidth","iconNode","$.prop","$$props","$.index","$$anchor","$$item","$.get","$$element","namespaceURI","$.NAMESPACE_SVG","nodeName","includes","$$restProps","Number","classes","filter","className","index","array","Boolean","indexOf","join","mergeClasses","$$sanitized_props","class","baseTheme","id","colorScheme","author","authorLink","colors","bgDark","bgLight","hoverBgLight","primary","primaryHover","secondary","secondaryHover","accentBlue","accentRed","accentGreen","accentYellow","accentPurple","accentCyan","accentGreenHover","accentBlueHover","accentRedHover","accentYellowHover","textPrimary","textSecondary","textDisabled","textLight","textDark","textOnPrimary","textAccentGreen","textAccentRed","textAccentBlue","fontFamily","panelRoundness","swapPanelRoundness","swapPanelBorder","swapPanelShadow","swapPanelInputsRounded","transparentSwapPanel","swapPanelBorderStyle","statsTableTransparent","border","borderLight","surfaceDark","surfaceLight","logoBrightness","logoInvert","logoHoverBrightness","tokenSelectorBg","tokenSelectorHeaderBg","tokenSelectorItemBg","tokenSelectorItemHoverBg","tokenSelectorItemActiveBg","tokenSelectorSearchBg","tokenSelectorBorder","tokenSelectorRoundness","tokenSelectorShadow","pmDark","pmBorder","pmAccent","pmTextSecondary","switchButtonBg","switchButtonHoverBg","switchButtonBorder","switchButtonShadow","chartTextColor","tokenTickerBg","tokenTickerText","tokenTickerBorder","tokenTickerBorderStyle","tokenTickerRoundness","tokenTickerHoverBg","tokenTickerShadow","tokenTickerUpColor","tokenTickerDownColor","tokenTickerBgOpacity","buttonBg","buttonHoverBg","buttonText","buttonBorder","buttonBorderColor","buttonShadow","buttonRoundness","primaryButtonBg","primaryButtonHoverBg","primaryButtonText","primaryButtonBorder","primaryButtonBorderColor","swapButtonPrimaryGradientStart","swapButtonPrimaryGradientEnd","swapButtonErrorGradientStart","swapButtonErrorGradientEnd","swapButtonProcessingGradientStart","swapButtonProcessingGradientEnd","swapButtonBorderColor","swapButtonGlowColor","swapButtonShineColor","swapButtonReadyGlowStart","swapButtonReadyGlowEnd","swapButtonTextColor","swapButtonRoundness","swapButtonShadow","backgroundType","backgroundGradient","backgroundSize","backgroundPosition","backgroundRepeat","backgroundWidth","backgroundHeight","backgroundTop","backgroundLeft","backgroundRight","backgroundBottom","enableParallax","enableNebula","enableStars","enableSkyline","nebulaOpacity","starsOpacity","themes","backgroundOpacity","logoPath","backgroundImage","parallaxStrength","backgroundSolid","getThemeById","find","theme","getAllThemes","themeStore","subscribe","set","writable","THEME_KEY","themeStorage","createNamespacedStore","previousAuthState","isConnected","principalId","getUserId","authState","get","auth","_b","_a","account","owner","toString","error","console","applyThemeStyles","themeId","styleElement","document","getElementById","createElement","head","appendChild","createStyleElement","cssContent","themeClass","hexToRGB","hex","replace","parseInt","length","substring","css","generateThemeVariables","textContent","documentElement","classList","remove","add","map","t","setAttribute","async","saveThemeToStorage","walletId","themeKey","setItem","loadThemeFromStorage","userTheme","getItem","defaultTheme","globalDefault","setTheme","initTheme","isInitializing","getAttribute","removeAttribute","cachedTheme","window","matchMedia","matches","getQuickTheme","then","savedTheme","availableThemes","themeToApply","prefersDark","setTimeout","catch","currentAuthState","log","toggleTheme","currentTheme","nextIndex","registerAndApplyTheme","some","warn","push","registerTheme","createThemeStore","variant","type","content","zIndex","roundedBorders","roundness","unpadded","animated","isSwapPanel","isSidebar","interactive","transition","transitionParams","defaultSlideParams","duration","delay","axis","defaultFadeParams","themeRoundness","params","$.derived","roundnessClass","interactiveClass","$.user_effect","$.set","set_class","div","div_1","div_2","$$render","consequent_3","alternate_3","consequent_1","alternate_4"],"mappings":"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","x_google_ignoreList":[0,1]}