Private/Style/ConvertTo-BorderChars.ps1

function ConvertTo-BorderChars {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory)]
        [string]$Style
    )

    $borderMap = @{
        'None'    = [PSCustomObject]@{ TL = '';                  T = '';                  TR = '';                  L = '';                  R = '';                  BL = '';                  B = '';                  BR = '' }
        'Normal'  = [PSCustomObject]@{ TL = [char]0x250C;        T = [char]0x2500;        TR = [char]0x2510;        L = [char]0x2502;        R = [char]0x2502;        BL = [char]0x2514;        B = [char]0x2500;        BR = [char]0x2518 }
        'Rounded' = [PSCustomObject]@{ TL = [char]0x256D;        T = [char]0x2500;        TR = [char]0x256E;        L = [char]0x2502;        R = [char]0x2502;        BL = [char]0x2570;        B = [char]0x2500;        BR = [char]0x256F }
        'Thick'   = [PSCustomObject]@{ TL = [char]0x250F;        T = [char]0x2501;        TR = [char]0x2513;        L = [char]0x2503;        R = [char]0x2503;        BL = [char]0x2517;        B = [char]0x2501;        BR = [char]0x251B }
        'Double'  = [PSCustomObject]@{ TL = [char]0x2554;        T = [char]0x2550;        TR = [char]0x2557;        L = [char]0x2551;        R = [char]0x2551;        BL = [char]0x255A;        B = [char]0x2550;        BR = [char]0x255D }
    }

    if ($borderMap.ContainsKey($Style)) {
        return $borderMap[$Style]
    }

    $errorRecord = [System.Management.Automation.ErrorRecord]::new(
        [System.ArgumentException]::new("Unknown border style: '$Style'"),
        'InvalidBorderStyle',
        [System.Management.Automation.ErrorCategory]::InvalidArgument,
        $Style
    )
    $PSCmdlet.WriteError($errorRecord)
    return $borderMap['None']
}