PsUi
1.0.0
WPF toolkit for PowerShell. DSL-based controls, async execution, theming. No XAML.
Minimum PowerShell version
5.1
Installation Options
Owners
Copyright
(c) 2026 Jacob Labonte. All rights reserved.
Package Details
Author(s)
- Jacob Labonte
Tags
GUI Windows Forms Menu Dialog DataGrid WPF DSL
Cmdlets
Functions
Add-UiListItem Clear-UiList Get-PsUiIcon Get-PsUiIconList Get-UiListItems Get-UiThemeTemplate Get-UiValue Invoke-UiAsync New-UiAction New-UiActionCard New-UiButton New-UiButtonCard New-UiCard New-UiChart New-UiChildWindow New-UiCredential New-UiDatePicker New-UiDropdown New-UiDropdownButton New-UiExpander New-UiGlyph New-UiGrid New-UiImage New-UiInput New-UiLabel New-UiLink New-UiList New-UiPanel New-UiProgress New-UiRadioGroup New-UiSeparator New-UiSlider New-UiTab New-UiTextArea New-UiTimePicker New-UiToggle New-UiTool New-UiTree New-UiWebView Out-CSVDataGrid Out-Datagrid Out-TextEditor Register-UiHotkey Register-UiTheme Remove-UiListItem Reset-UiSession Set-UiProgress Set-UiValue Show-UiChoiceDialog Show-UiConfirmDialog Show-UiCredentialDialog Show-UiDialog Show-UiFilePicker Show-UiFolderPicker Show-UiGlyphBrowser Show-UiInputDialog Show-UiMessageDialog Show-UiPromptDialog Show-UiSaveDialog Show-WindowsObjectPicker Stop-UiAsync Update-UiChart Write-UiHostDirect
PSEditions
Dependencies
This module has no dependencies.
Release Notes
Version 1.0.0:
- Three-layer architecture: C# backend, PowerShell DSL, session state management
- Modern Fluent design with Light/Dark/HighContrast themes
- Async button actions with automatic variable hydration
- 60+ controls including DataGrid, DatePicker, Slider, List, Charts, WebView
- Multi-monitor aware window centering
- File/Folder picker dialogs, pinned dialogs, keyboard capture
- Thread-safe control proxy for cross-thread UI access
FileList
- PsUi.nuspec
- lib\desktop\Microsoft.Web.WebView2.Core.dll
- private\charts\New-ChartPieSlice.ps1
- private\Controls\Invoke-UiHotkeyAction.ps1
- private\Controls\Set-FullWidthConstraint.ps1
- private\output\Add-InputProviders.ps1
- private\output\New-DictionarySubTab.ps1
- private\output\Show-UiOutput.ps1
- private\styles\Set-ComboBoxStyle.ps1
- private\theme\Get-ContrastColor.ps1
- private\uitool\Get-UiDefinition.ps1
- public\controls\New-UiDropdown.ps1
- public\controls\New-UiToggle.ps1
- public\dialogs\Show-UiMessageDialog.ps1
- public\list\New-UiTree.ps1
- public\window\New-UiChildWindow.ps1
- PsUi.psd1
- lib\desktop\Microsoft.Web.WebView2.Wpf.dll
- private\charts\Set-ChartShapeFill.ps1
- private\Controls\New-ActionDropdownButton.ps1
- private\Controls\Set-ResponsiveConstraints.ps1
- private\output\Add-MultiTypeFilterControls.ps1
- private\output\New-ErrorDisplayRecord.ps1
- private\session\Assert-UiSession.ps1
- private\styles\Set-ContextMenuStyle.ps1
- private\theme\Get-ControlChildren.ps1
- private\uitool\Initialize-UiToolParameters.ps1
- public\controls\New-UiDropdownButton.ps1
- public\controls\New-UiWebView.ps1
- public\dialogs\Show-UiPromptDialog.ps1
- public\list\Remove-UiListItem.ps1
- resources\xaml\styles\ButtonStyle.xaml
- PsUi.psm1
- lib\desktop\PsUi.dll
- private\Controls\Close-UiParentWindow.ps1
- private\Controls\New-ClearTargetAction.ps1
- private\Controls\Set-TextBoxInputFilter.ps1
- private\output\Add-OutputLine.ps1
- private\output\New-ErrorsTab.ps1
- private\session\Clear-UiSession.ps1
- private\styles\Set-DataGridStyle.ps1
- private\theme\Get-ThemeColors.ps1
- private\uitool\Invoke-UiToolAction.ps1
- public\controls\New-UiExpander.ps1
- public\controls\Register-UiHotkey.ps1
- public\dialogs\Show-UiSaveDialog.ps1
- public\output\Out-CSVDataGrid.ps1
- resources\xaml\styles\ComboBoxStyle.xaml
- .vscode\PSScriptAnalyzerSettings.psd1
- lib\desktop\WebView2Loader.dll
- private\Controls\Complete-UiControlSetup.ps1
- private\Controls\New-ColumnVisibilityPopup.ps1
- private\Controls\Set-UiFormControlTag.ps1
- private\output\Add-ResultActionClickHandlers.ps1
- private\output\New-ExpandableValueColumn.ps1
- private\session\Get-UiActionContext.ps1
- private\styles\Set-DatePickerStyle.ps1
- private\theme\Get-UiTheme.ps1
- private\uitool\Invoke-UiToolValidation.ps1
- public\controls\New-UiGlyph.ps1
- public\controls\Set-UiProgress.ps1
- public\dialogs\Show-WindowsObjectPicker.ps1
- public\output\Out-Datagrid.ps1
- resources\xaml\styles\CommonStyles.xaml
- .vscode\settings.json
- lib\desktop\WebView2Loader.x86.dll
- private\Controls\ConvertTo-FormattedTextBlock.ps1
- private\Controls\New-DataGridContextMenu.ps1
- private\Controls\Set-UiProperties.ps1
- private\output\Add-TextResultsFilter.ps1
- private\output\New-FilterBoxWithClear.ps1
- private\session\Get-UiSession.ps1
- private\styles\Set-GroupBoxStyle.ps1
- private\theme\Initialize-UITheme.ps1
- private\uitool\Show-UiFilterBuilder.ps1
- public\controls\New-UiImage.ps1
- public\controls\Set-UiValue.ps1
- public\layout\New-UiActionCard.ps1
- public\output\Out-TextEditor.ps1
- resources\xaml\styles\ContextMenuStyle.xaml
- private\README.md
- private\charts\Add-BarChartElements.ps1
- private\Controls\ConvertTo-NormalizedKeyCombo.ps1
- private\Controls\New-PasswordInputWithPeek.ps1
- private\Controls\Start-UiButtonFeedback.ps1
- private\output\ConvertTo-DisplayValue.ps1
- private\output\New-ObjectSubTab.ps1
- private\session\Initialize-UiSession.ps1
- private\styles\Set-ListBoxStyle.ps1
- private\theme\New-ThemePopupButton.ps1
- private\uitool\Show-UiPathPicker.ps1
- public\controls\New-UiInput.ps1
- public\controls\Update-UiChart.ps1
- public\layout\New-UiButtonCard.ps1
- public\output\Write-UiHostDirect.ps1
- resources\xaml\styles\DataGridStyle.xaml
- public\README.md
- private\charts\Add-ChartAxisLabels.ps1
- private\Controls\ConvertTo-UiFileAction.ps1
- private\Controls\New-TaskbarOverlayIcon.ps1
- private\Controls\Start-UIFadeIn.ps1
- private\output\ConvertTo-SafeDataArray.ps1
- private\output\New-OutputWindow.ps1
- private\session\Invoke-UiContent.ps1
- private\styles\Set-MenuItemStyle.ps1
- private\theme\Register-UiThemeElement.ps1
- private\uitool\Show-UiToolHelp.ps1
- public\controls\New-UiLabel.ps1
- public\dialogs\Show-UiChoiceDialog.ps1
- public\layout\New-UiCard.ps1
- public\session\Get-PsUiIcon.ps1
- resources\xaml\styles\DatePickerStyle.xaml
- resources\CharList.json
- private\charts\Add-ChartYAxisTicks.ps1
- private\Controls\ConvertTo-WpfValue.ps1
- private\Controls\New-UiIconButton.ps1
- private\dialogs\New-DialogWindow.ps1
- private\output\Find-ConsoleText.ps1
- private\output\New-ProgressPanel.ps1
- private\session\Register-UiControl.ps1
- private\styles\Set-ProgressBarStyle.ps1
- private\theme\Set-ActiveTheme.ps1
- private\uitool\Update-UiToolRunButtonState.ps1
- public\controls\New-UiLink.ps1
- public\dialogs\Show-UiConfirmDialog.ps1
- public\layout\New-UiGrid.ps1
- public\session\Get-PsUiIconList.ps1
- resources\xaml\styles\GroupBoxStyle.xaml
- resources\README.md
- private\charts\Add-LineChartElements.ps1
- private\Controls\Get-ControlConditionValue.ps1
- private\Controls\New-UiLoadingSpinner.ps1
- private\dialogs\Show-ModernFolderPicker.ps1
- private\output\Get-CleanTypeName.ps1
- private\output\New-ResultsToolbar.ps1
- private\session\Register-UiControlComplete.ps1
- private\styles\Set-RadioButtonStyle.ps1
- private\theme\Set-UIResources.ps1
- public\controls\Get-UiValue.ps1
- public\controls\New-UiProgress.ps1
- public\dialogs\Show-UiCredentialDialog.ps1
- public\layout\New-UiPanel.ps1
- public\session\Get-UiThemeTemplate.ps1
- resources\xaml\styles\ScrollBarStyle.xaml
- lib\core\Microsoft.Web.WebView2.Core.dll
- private\charts\Add-PieChartElements.ps1
- private\Controls\Get-CustomLogoIcon.ps1
- private\Controls\New-UniqueControlName.ps1
- private\dialogs\Show-SimpleFolderPicker.ps1
- private\output\Get-ConsoleColorBrushMap.ps1
- private\output\New-StatusIndicator.ps1
- private\session\Set-UiDialogPosition.ps1
- private\styles\Set-SliderStyle.ps1
- private\theme\Set-UiTheme.ps1
- public\controls\New-UiAction.ps1
- public\controls\New-UiRadioGroup.ps1
- public\dialogs\Show-UiDialog.ps1
- public\layout\New-UiTab.ps1
- public\session\Invoke-UiAsync.ps1
- resources\xaml\styles\SliderStyle.xaml
- lib\core\Microsoft.Web.WebView2.Wpf.dll
- private\charts\ConvertTo-ChartData.ps1
- private\Controls\Get-IconDynamicParameter.ps1
- private\Controls\New-WindowIcon.ps1
- private\output\Add-ArrayCellPopupHandler.ps1
- private\output\Get-OutputPresenter.ps1
- private\output\New-StyledDataGrid.ps1
- private\session\Set-WindowOwner.ps1
- private\styles\Set-TabControlStyle.ps1
- private\theme\ThemeDefinitions.ps1
- public\controls\New-UiButton.ps1
- public\controls\New-UiSeparator.ps1
- public\dialogs\Show-UiFilePicker.ps1
- public\list\Add-UiListItem.ps1
- public\session\Register-UiTheme.ps1
- resources\xaml\styles\TabControlStyle.xaml
- lib\core\PsUi.dll
- private\charts\Get-ChartPalette.ps1
- private\Controls\Get-PopulatedProperties.ps1
- private\Controls\Register-ScriptBlockCondition.ps1
- private\output\Add-DataGridColumns.ps1
- private\output\Get-RawConsoleColorBrushMap.ps1
- private\output\New-TextDisplayRichTextBox.ps1
- private\styles\New-TextBoxContextMenu.ps1
- private\styles\Set-TabItemStyle.ps1
- private\theme\Update-AllControlThemes.ps1
- public\controls\New-UiChart.ps1
- public\controls\New-UiSlider.ps1
- public\dialogs\Show-UiFolderPicker.ps1
- public\list\Clear-UiList.ps1
- public\session\Reset-UiSession.ps1
- resources\xaml\styles\TextBoxStyle.xaml
- lib\core\WebView2Loader.dll
- private\charts\Invoke-ChartRedraw.ps1
- private\Controls\Initialize-UiWindowLoaded.ps1
- private\Controls\Register-SingleControlCondition.ps1
- private\output\Add-DictionaryValuePopupHandler.ps1
- private\output\Invoke-OnCompleteHandler.ps1
- private\output\New-WarningsTabFull.ps1
- private\styles\Set-ButtonStyle.ps1
- private\styles\Set-TextBoxStyle.ps1
- private\theme\Update-SingleControlTheme.ps1
- public\controls\New-UiCredential.ps1
- public\controls\New-UiTextArea.ps1
- public\dialogs\Show-UiGlyphBrowser.ps1
- public\list\Get-UiListItems.ps1
- public\session\Stop-UiAsync.ps1
- resources\xaml\Themes\SharedStyles.xaml
- lib\core\WebView2Loader.x86.dll
- private\charts\New-ChartLegend.ps1
- private\Controls\Invoke-OnUIThread.ps1
- private\Controls\Register-UiCondition.ps1
- private\output\Add-ErrorDetailsPanel.ps1
- private\output\New-ConsoleTabFull.ps1
- private\output\Register-VariableHydration.ps1
- private\styles\Set-CheckBoxStyle.ps1
- private\theme\ConvertTo-UiBrush.ps1
- private\uitool\Clear-UiToolParameters.ps1
- public\controls\New-UiDatePicker.ps1
- public\controls\New-UiTimePicker.ps1
- public\dialogs\Show-UiInputDialog.ps1
- public\list\New-UiList.ps1
- public\tool\New-UiTool.ps1
Version History
| Version | Downloads | Last updated |
|---|---|---|
| 1.0.1 | 6 | 4/18/2026 |
| 1.0.0 (current version) | 54 | 4/17/2026 |