private/components/Format-TextEntryComponent.ps1

function Format-TextEntryComponent {
  param (
    [Spectre.Console.LiveDisplayContext] $Context,
    [Spectre.Console.Layout] $RootLayout,
    [string] $TargetLayoutName,
    [string] $Sentence,
    [string] $CurrentInput,
    [int] $Timeout,
    [object] $Start
  )

  $layoutSizes = Get-SpectreLayoutSizes -Layout $RootLayout
  $targetLayoutSize = $layoutSizes[$TargetLayoutName].Width
  $targetLayout = $RootLayout[$TargetLayoutName]

  $timeLeftPanel = Format-TimeLeftComponent -Start $Start -Timeout $Timeout
  $sentencePanel = Format-SentenceComponent -Sentence $Sentence -CurrentInput $CurrentInput -AvailableWidth $targetLayoutSize

  $newLayoutData = @(
    $timeLeftPanel,
    $sentencePanel
  ) | Format-SpectreRows -Expand | Format-SpectreAligned -VerticalAlignment Middle | Format-SpectrePanel -Border None -Expand

  $targetLayout.Update($newLayoutData) | Out-Null

  $Context.Refresh()
}