/**
 * UI state management
 */

export function createUIState(ref, computed) {
    // --- UI State ---
    const browser = ref('unknown');
    const isSidebarCollapsed = ref(false);
    const searchTipsExpanded = ref(false);
    const isUserMenuOpen = ref(false);
    const isDarkMode = ref(false);
    const currentColorScheme = ref('blue');
    const showColorSchemeModal = ref(false);
    const windowWidth = ref(window.innerWidth);
    const mobileTab = ref('transcript');
    const isMetadataExpanded = ref(false);
    const expandedSection = ref('settings');  // 'notes' or 'settings'

    // --- i18n State ---
    const currentLanguage = ref('en');
    const currentLanguageName = ref('English');
    const availableLanguages = ref([]);
    const showLanguageMenu = ref(false);

    // --- Column Resizing State ---
    const leftColumnWidth = ref(60);
    const rightColumnWidth = ref(40);
    const isResizing = ref(false);

    // --- Transcription State ---
    const transcriptionViewMode = ref('simple');
    const legendExpanded = ref(false);
    const highlightedSpeaker = ref(null);
    const processingIndicatorMinimized = ref(false);

    // --- Virtual Scroll State ---
    // For transcript panel virtual scrolling (performance optimization for long transcriptions)
    const transcriptScrollTop = ref(0);
    const transcriptContainerHeight = ref(0);
    const transcriptItemHeight = 48; // Estimated height per segment in pixels

    // --- Computed Properties ---
    const isMobileScreen = computed(() => {
        return windowWidth.value < 1024;
    });

    // --- Color Scheme Definitions ---
    const colorSchemes = {
        light: [
            { id: 'blue', name: 'Ocean Blue', description: 'Classic blue theme with professional appeal', class: '' },
            { id: 'emerald', name: 'Forest Emerald', description: 'Fresh green theme for a natural feel', class: 'theme-light-emerald' },
            { id: 'purple', name: 'Royal Purple', description: 'Elegant purple theme with sophistication', class: 'theme-light-purple' },
            { id: 'rose', name: 'Sunset Rose', description: 'Warm pink theme with gentle energy', class: 'theme-light-rose' },
            { id: 'amber', name: 'Golden Amber', description: 'Warm yellow theme for brightness', class: 'theme-light-amber' },
            { id: 'teal', name: 'Ocean Teal', description: 'Cool teal theme for tranquility', class: 'theme-light-teal' }
        ],
        dark: [
            { id: 'blue', name: 'Midnight Blue', description: 'Deep blue theme for focused work', class: '' },
            { id: 'emerald', name: 'Dark Forest', description: 'Rich green theme for comfortable viewing', class: 'theme-dark-emerald' },
            { id: 'purple', name: 'Deep Purple', description: 'Mysterious purple theme for creativity', class: 'theme-dark-purple' },
            { id: 'rose', name: 'Dark Rose', description: 'Muted pink theme with subtle warmth', class: 'theme-dark-rose' },
            { id: 'amber', name: 'Dark Amber', description: 'Warm brown theme for cozy sessions', class: 'theme-dark-amber' },
            { id: 'teal', name: 'Deep Teal', description: 'Dark teal theme for calm focus', class: 'theme-dark-teal' }
        ]
    };

    return {
        // UI
        browser,
        isSidebarCollapsed,
        searchTipsExpanded,
        isUserMenuOpen,
        isDarkMode,
        currentColorScheme,
        showColorSchemeModal,
        windowWidth,
        mobileTab,
        isMetadataExpanded,
        expandedSection,

        // i18n
        currentLanguage,
        currentLanguageName,
        availableLanguages,
        showLanguageMenu,

        // Column Resizing
        leftColumnWidth,
        rightColumnWidth,
        isResizing,

        // Transcription
        transcriptionViewMode,
        legendExpanded,
        highlightedSpeaker,
        processingIndicatorMinimized,

        // Virtual Scroll
        transcriptScrollTop,
        transcriptContainerHeight,
        transcriptItemHeight,

        // Computed
        isMobileScreen,

        // Constants
        colorSchemes
    };
}
