public/controls/status/Hide-UiStatusBar.ps1

function Hide-UiStatusBar {
    <#
    .SYNOPSIS
        Collapses a status bar from view without removing it.
    .DESCRIPTION
        Sets Visibility to Collapsed so the bar takes no space and disappears.
        Safe to call from any thread. State is preserved - Show-UiStatusBar
        restores it.
    .PARAMETER Variable
        Optional session variable name. When omitted, the registered status bar is
        resolved automatically (window bars win over inline ones).
    .EXAMPLE
        Hide-UiStatusBar
    .EXAMPLE
        Hide-UiStatusBar -Variable 'mainBar'
    #>

    [CmdletBinding()]
    param(
        [string]$Variable
    )

    $session = Get-UiSession
    if (!$session) { return }

    $outcome = Invoke-OnUIThread -ArgumentList $session, $Variable -ScriptBlock {
        param($session, $Variable)

        $bar = Resolve-UiStatusBar -Session $session -Variable $Variable
        if (!$bar) { return 'NoBar' }
        $bar.Visibility = [System.Windows.Visibility]::Collapsed
    }

    if ($outcome -eq 'NoBar') {
        $hint = if ($Variable) { "no control registered as '$Variable'" }
        else { "no status bar registered in this session" }
        Write-Warning "Hide-UiStatusBar: $hint"
    }
}