public/formatting/New-SpectreGridRow.ps1

<#
.SYNOPSIS
Creates a new SpectreGridRow object.
 
.DESCRIPTION
Creates a new SpectreGridRow object with the specified columns for use in Format-SpectreGrid. PowerShell collapses nested arrays, so you must use this function to create an array of SpectreGridRow objects to provide to Format-SpectreGrid.
 
.PARAMETER Data
An array of renderable items containing the data to be displayed in the columns of this row.
 
.EXAMPLE
# **Example 1**
# This example demonstrates how to create a grid with two rows and three columns.
$columns = @()
$columns += "Column 1" | Format-SpectrePanel
$columns += "Column 2" | Format-SpectrePanel
$columns += "Column 3" | Format-SpectrePanel
 
$rows = @(
  (New-SpectreGridRow -Data $columns),
  (New-SpectreGridRow -Data $columns)
)
 
$rows | Format-SpectreGrid
#>

function New-SpectreGridRow {
    [Reflection.AssemblyMetadata("title", "New-SpectreGridRow")]
    param (
        [Parameter(Mandatory)]
        [array]$Data
    )

    $renderableColumns = @()
    foreach ($column in $Data) {
        $renderableColumns += ConvertTo-Renderable $column
    }

    $gridRow = [SpectreGridRow]::new($renderableColumns)
    
    return $gridRow
}