Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
26c208e
chore(avalonia): prepare migration to Avalonia 12
pieckenst Apr 1, 2026
f510712
feat(avalonia-12): migrate VirtualizingWrapPanel to Avalonia 12 APIs
pieckenst Apr 1, 2026
97cf382
feat(avalonia-12): complete VirtualizingWrapPanel migration
pieckenst Apr 1, 2026
af24e0d
refactor(window-themes): restructure title bar layout in window controls
pieckenst Apr 1, 2026
fef251a
refactor(avalonia-12): update APIs and remove deprecated utilities
pieckenst Apr 1, 2026
3cdd526
chore(samples): remove browser example and upgrade to .NET 9
pieckenst Apr 1, 2026
a8accd5
refactor(avalonia-12): complete Android app initialization for Avalon…
pieckenst Apr 1, 2026
2b79227
refactor(samples): complete Avalonia 12 example app migration
pieckenst Apr 1, 2026
a5d39e2
refactor(samples): implement control page examples with interactive f…
pieckenst Apr 1, 2026
c1502f0
refactor(samples): migrate AutoCompleteBox to code-behind and wrap Op…
pieckenst Apr 1, 2026
c6736a0
refactor(messagebox): improve localization fallback handling
pieckenst Apr 1, 2026
54019c5
refactor(samples): improve control page card layout and styling
pieckenst Apr 1, 2026
7dad877
update
pieckenst Apr 1, 2026
c7fddd3
clean
pieckenst Apr 1, 2026
68fcfa0
refactor(samples): enhance ProgressBar page with interactive demo and…
pieckenst Apr 1, 2026
15614f1
refactor(samples): implement comprehensive localization across UI
pieckenst Apr 1, 2026
80d5357
refactor(samples): migrate control page cards to localization-driven …
pieckenst Apr 1, 2026
4ccc587
docs: completely rewrite README with comprehensive feature documentation
pieckenst Apr 1, 2026
492e90a
edit
pieckenst Apr 1, 2026
a6afb11
ED
pieckenst Apr 1, 2026
650e52f
ci: add GitHub Actions workflows for build and release automation
pieckenst Apr 1, 2026
c6248bd
ci: enhance build and release workflows with retry logic and validation
pieckenst Apr 1, 2026
53bd121
ci: improve package verification with comprehensive diagnostics
pieckenst Apr 1, 2026
0ff0923
chore(MaterialIcons): consolidate project configuration and upgrade t…
pieckenst Apr 1, 2026
16c5fcd
temporary package id workaround for the usage of avalonia 12 pleasant…
pieckenst Apr 1, 2026
39134a5
ci: add conditional NuGet API key authentication
pieckenst Apr 1, 2026
8df74ac
ci: add manual workflow dispatch triggers with publish and force options
pieckenst Apr 1, 2026
b237b45
feat(DataGrid): refactor theme architecture with dedicated PleasantDa…
pieckenst Apr 1, 2026
d07900f
feat(DataGrid): expand data model and add interactive column controls
pieckenst Apr 1, 2026
cc982af
feat(DataGrid): implement dynamic property binding for grid configura…
pieckenst Apr 1, 2026
65b43fa
feat(DataGrid): refactor event handler initialization in DataGridPage…
pieckenst Apr 1, 2026
1079643
feat(DataGrid): add localization strings and update UI bindings
pieckenst Apr 1, 2026
5f0a712
feat(MessageBox): add comprehensive localization and styling enhancem…
pieckenst Apr 1, 2026
3d33b28
ci(build): fix workflow dispatch publish condition check
pieckenst Apr 1, 2026
0ec9aa5
feat(MessageBox): add custom content support with localization
pieckenst Apr 1, 2026
4204c64
ci(release): enhance version extraction and tag management with valid…
pieckenst Apr 1, 2026
5940c7b
feat(PleasantDialog): add new dialog component with rich variants and…
pieckenst Apr 1, 2026
4943c96
feat(Snackbar): add localization strings and enhance page showcase
pieckenst Apr 1, 2026
fec0f7e
style(Snackbar): add max-width constraint and fix formatting
pieckenst Apr 1, 2026
b358087
feat(SplashScreen): add new component with custom content support
pieckenst Apr 1, 2026
8a5d5fb
bump alpha
pieckenst Apr 1, 2026
fac4761
more
pieckenst Apr 2, 2026
a321967
feat(PinCode): add new control with localization and example page
pieckenst Apr 2, 2026
fe8f293
refactor(example): implement localization support across all pages
pieckenst Apr 2, 2026
94b5ebb
refactor(localization): optimize property change notifications and re…
pieckenst Apr 2, 2026
67cca78
refactor(example): migrate page content to factory method pattern
pieckenst Apr 2, 2026
9b3d104
refactor(localization): persist language preference and improve event…
pieckenst Apr 2, 2026
0b01766
feat(NavigationView): add submenu popup support for compact mode
pieckenst Apr 2, 2026
ce5a719
TIMELINE CONTROL
pieckenst Apr 2, 2026
47325f3
bump alpha ver
pieckenst Apr 2, 2026
f3b7798
minor url change
pieckenst Apr 2, 2026
a2a5aa4
docs(README): add repository links section
pieckenst Apr 2, 2026
54395e4
ci(release): add AI-powered release notes generation
pieckenst Apr 2, 2026
f15566d
minor
pieckenst Apr 2, 2026
e668028
minor
pieckenst Apr 2, 2026
f7a55d7
ci(release): refactor release notes prompt generation and improve out…
pieckenst Apr 2, 2026
594d576
edit
pieckenst Apr 2, 2026
ce7cd83
ci(release): improve shell script syntax in release workflow
pieckenst Apr 2, 2026
cd9a310
docs(README): update installation instructions with fork and upstream…
pieckenst Apr 2, 2026
329210c
feat(InstallWizard): add multi-step installation wizard control
pieckenst Apr 2, 2026
7a44932
feat(InstallWizard): add localization support for wizard buttons
pieckenst Apr 2, 2026
0d1f4f4
ci(release): add GitHub Packages publishing to release workflow
pieckenst Apr 2, 2026
3ca7005
make it release for now
pieckenst Apr 2, 2026
c5144f2
ci(release): improve release notes generation security and error hand…
pieckenst Apr 2, 2026
d981820
ci(release): enhance release notes generation with detailed commit an…
pieckenst Apr 2, 2026
f564c63
ci(release): refactor release notes prompt generation with improved d…
pieckenst Apr 2, 2026
de79f6c
ci(release): refactor release notes prompt generation to use printf i…
pieckenst Apr 2, 2026
4c2eff6
feat(controls): add PleasantDrawer and PopConfirm controls with examp…
pieckenst Apr 2, 2026
2bf4ee4
fix(controls): add null checks and error handling for animations
pieckenst Apr 2, 2026
e79abed
feat(controls): add PathPicker control with file and folder selection
pieckenst Apr 2, 2026
21d1668
docs(example): add PathPicker control example page with localization
pieckenst Apr 2, 2026
ab4d48a
feat(controls): enhance PathPicker layout and styling
pieckenst Apr 2, 2026
9a10353
feat(controls): add PleasantFileChooser custom file picker UI
pieckenst Apr 3, 2026
349c39d
feat(chrome): add full screen button to caption buttons
pieckenst Apr 3, 2026
8114bc4
feat(docking): add comprehensive docking system with resizable panels…
pieckenst Apr 3, 2026
09cd38d
version
pieckenst Apr 3, 2026
da85c67
ci(release): increase token limits for release notes generation
pieckenst Apr 3, 2026
b587bb8
ci(release): refactor release notes generation into parallel AI passes
pieckenst Apr 3, 2026
6f2f43d
ci(release): refactor release notes generation into two-stage merge p…
pieckenst Apr 3, 2026
8cd0bae
ci(release): refactor release notes generation with lossless multi-pa…
pieckenst Apr 3, 2026
3ce30f6
edit
pieckenst Apr 3, 2026
1945573
ci(release): remove max-completion-tokens and persist AI pass outputs
pieckenst Apr 3, 2026
7d3c2b5
ci(release): increase job timeout and add delays between AI passes
pieckenst Apr 3, 2026
3133418
ci(release): increase delays between AI passes to 65 seconds
pieckenst Apr 3, 2026
14ec852
ci(release): switch AI inference models for cost optimization
pieckenst Apr 3, 2026
be8e7ac
switch to 4.1 because api is being weird
pieckenst Apr 3, 2026
fcf601a
feat(localization): defer language initialization until PleasantTheme…
pieckenst Apr 3, 2026
3684eed
feat(controls): add SelectionList control with example page and local…
pieckenst Apr 3, 2026
5625846
feat(controls): enhance SelectionList example with dynamic item gener…
pieckenst Apr 3, 2026
55e1eef
feat(navigation): restructure MainView with hierarchical navigation a…
pieckenst Apr 3, 2026
75e1bf8
fix(NavigationView): ensure consistent item selection behavior
pieckenst Apr 3, 2026
2b01c72
fix(NavigationView): improve leaf item deselection and selection stat…
pieckenst Apr 3, 2026
e2c5277
fix a text clipping bug - surely pr is ready now
pieckenst Apr 3, 2026
24f60c0
more length helps
pieckenst Apr 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
126 changes: 126 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
name: Build

on:
push:
branches: [ "main", "master" ]
pull_request:
branches: [ "main", "master" ]
release:
types: [ published ]
workflow_dispatch:
inputs:
publish:
description: 'Publish packages to NuGet'
type: boolean
default: false

jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 30

steps:
- uses: actions/checkout@v4

- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '9.0.x'

- name: Restore (with retry)
uses: nick-fields/retry@v3
with:
timeout_minutes: 10
max_attempts: 3
retry_wait_seconds: 15
command: |
dotnet restore src/PleasantUI/PleasantUI.csproj
dotnet restore src/PleasantUI.DataGrid/PleasantUI.DataGrid.csproj
dotnet restore src/PleasantUI.MaterialIcons/PleasantUI.MaterialIcons.csproj
dotnet restore src/PleasantUI.ToolKit/PleasantUI.ToolKit.csproj

- name: Build
run: |
dotnet build src/PleasantUI/PleasantUI.csproj --configuration Release --no-restore
dotnet build src/PleasantUI.DataGrid/PleasantUI.DataGrid.csproj --configuration Release --no-restore
dotnet build src/PleasantUI.MaterialIcons/PleasantUI.MaterialIcons.csproj --configuration Release --no-restore
dotnet build src/PleasantUI.ToolKit/PleasantUI.ToolKit.csproj --configuration Release --no-restore

- name: Verify packages exist
run: |
echo "=== Searching for all .nupkg files under src/ ==="
find src/ -name "*.nupkg" 2>/dev/null | sort

FAILED=0
for project in PleasantUI PleasantUI.DataGrid PleasantUI.MaterialIcons PleasantUI.ToolKit; do
FOUND=$(find "src/$project" -name "*.nupkg" 2>/dev/null | head -1)
if [ -z "$FOUND" ]; then
echo "ERROR: No .nupkg found anywhere under src/$project"
echo "--- Directory listing of src/$project/bin ---"
find "src/$project/bin" -type f 2>/dev/null || echo "(bin dir not found)"
FAILED=1
else
echo "OK: Found package for $project at $FOUND"
fi
done

if [ "$FAILED" -eq 1 ]; then
exit 1
fi

- name: Upload NuGet packages
uses: actions/upload-artifact@v4
with:
name: nuget-packages
path: |
src/PleasantUI/bin/Release/*.nupkg
src/PleasantUI.DataGrid/bin/Release/*.nupkg
src/PleasantUI.MaterialIcons/bin/Release/*.nupkg
src/PleasantUI.ToolKit/bin/Release/*.nupkg
if-no-files-found: error

publish:
runs-on: ubuntu-latest
needs: build
if: github.event_name == 'release' || (github.event_name == 'workflow_dispatch' && github.event.inputs.publish == 'true')
timeout-minutes: 15
permissions:
id-token: write

steps:
- name: Download packages
uses: actions/download-artifact@v4
with:
name: nuget-packages
path: nupkgs

- name: Verify downloaded packages
run: |
count=$(find nupkgs -name "*.nupkg" | wc -l)
echo "Found $count package(s)"
if [ "$count" -eq 0 ]; then
echo "ERROR: No packages to publish"
exit 1
fi
find nupkgs -name "*.nupkg"

- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '9.0.x'

- name: Publish to NuGet (Trusted Publishing, with retry)
uses: nick-fields/retry@v3
with:
timeout_minutes: 10
max_attempts: 3
retry_wait_seconds: 30
command: |
for pkg in $(find nupkgs -name "*.nupkg"); do
echo "Pushing $pkg"
if [ -n "${{ secrets.NUGET_KEY }}" ]; then
dotnet nuget push "$pkg" --source https://api.nuget.org/v3/index.json --api-key "${{ secrets.NUGET_KEY }}" --skip-duplicate
else
dotnet nuget push "$pkg" --source https://api.nuget.org/v3/index.json --skip-duplicate
fi
done
Loading