plugins/terminal/private/Get-JaxAnsiColor.ps1

function Get-JaxAnsiColor {
    [CmdletBinding()]
    param(
        [string] $HexColor,
        [switch] $IsBackground
    )

    if ([string]::IsNullOrWhiteSpace($HexColor)) {
        return $null
    }
    $hex = $HexColor.Trim()
    if ($hex.StartsWith('#')) {
        $hex = $hex.Substring(1)
    }
    if ($hex.Length -ne 6) {
        return $null
    }

    $r = [Convert]::ToInt32($hex.Substring(0, 2), 16)
    $g = [Convert]::ToInt32($hex.Substring(2, 2), 16)
    $b = [Convert]::ToInt32($hex.Substring(4, 2), 16)

    $prefix = if ($IsBackground) { '48' } else { '38' }
    return "`e[$prefix;2;$r;$g;$b" + 'm'
}