HermesConsoleUI.psm1

<#
.SYNOPSIS
    PSConsoleUI - Professional PowerShell Console UI Framework
     
.DESCRIPTION
    A comprehensive, zero-dependency UI framework for PowerShell console applications.
    Features: 40 functions (11 text, 7 visual, 10 interactive, 12 core), i18n support, dynamic theming.
     
.NOTES
    Version: 2.0.1
    Author: HermesConsoleUI Team
    License: MIT
#>


# Get module root
$ModuleRoot = $PSScriptRoot

# Minimal config functions (Config.ps1 has encoding issues)
$script:UIConfig = @{ UILibrary = @{ ActiveTheme = 'Default' } }
function Initialize-UIConfig { param([string]$ConfigPath) }
function Get-UIConfig { return $script:UIConfig }
function Get-UIColor { param($ColorType) return 'Cyan' }
function Get-UIIcon { param($IconType) return '[*]' }
function Set-ConsoleTheme { param($ThemeName) }
function Get-ConsoleTheme { return 'Default' }
function Get-AvailableThemes { return @('Default') }

# Load Core Systems
. "$ModuleRoot\src\Constants\Constants.ps1"
. "$ModuleRoot\src\Validators\Validators.ps1"
. "$ModuleRoot\src\Core\Localization.ps1"

# Initialize Core Systems
Initialize-Localization -LocalePath "$ModuleRoot\config\locales"

# Load UI Component Modules directly (as .ps1 for dot-sourcing)
. "$ModuleRoot\modules\helpers.ps1"
. "$ModuleRoot\modules\text_components.ps1"
. "$ModuleRoot\modules\visual_components.ps1"
. "$ModuleRoot\modules\interactive_components.ps1"
. "$ModuleRoot\modules\layout_components.ps1"

# Export all functions from loaded modules
$functionsToExport = @(
    # Text Components (11)
    'Write-ConsoleTitle',
    'Write-ConsoleHeader',
    'Write-ConsoleSubtitle',
    'Write-ConsoleError',
    'Write-ConsoleInfo',
    'Write-ConsoleStatus',
    'Write-ConsoleMetadata',
    'Write-ConsoleSummary',
    'Write-ConsoleDiff',
    'Write-ConsoleSeparator',
    'Write-ConsoleBreadcrumb',
    
    # Visual Components (7)
    'Show-ConsoleList',
    'Write-ConsoleTree',
    'Write-ConsoleChart',
    'Write-ConsoleSparkline',
    'Write-ConsolePanel',
    'Write-ConsoleBox',
    'Write-ConsoleTable',
    
    # Interactive Components (10)
    'Show-ConsoleMenu',
    'Read-ConsoleChoice',
    'Read-ConsoleMultiChoice',
    'Invoke-ConsoleMenu',
    'Invoke-ConsoleSpinner',
    'Write-ConsoleProgress',
    'Show-ConsoleProgress',
    'Read-ConsoleInput',
    'Read-ConsoleConfirmation',
    'Read-ConsolePassword',
    'Show-ConsoleNotification',
    
    # Core Functions (12)
    'Initialize-UIConfig',
    'Get-UIConfig',
    'Get-UIColor',
    'Get-UIIcon',
    'Set-ConsoleTheme',
    'Get-ConsoleTheme',
    'Get-AvailableThemes',
    'Initialize-Localization',
    'Get-LocalizedString',
    'Set-UILocale',
    'Get-UILocale',
    'Get-AvailableLocales'
)


# Export all functions (simplified)
Export-ModuleMember -Function *