# RecipeVerification.Batch3

This repository-owned consumer project verifies Batch 3 recipe snippets for Windows/.NET Framework 4.8 build verification.

It covers:

| Recipe ID | Public route covered |
|---|---|
| `Theme.Surface.Apply` | `MASApplication.Theme`, `MASApplicationWindow.Theme`, `MASApplicationSurfaceMaterialGateway`, `MASApplicationSurfaceMaterialScope` |
| `Theme.Surface.Options` | `MASApplicationSurfaceMaterialGateway.GetSelectableMaterials()` |
| `Localization.Rtl.AttachPage` | `MASLocalizationRtl.AttachPage(window)` |
| `Localization.Rtl.AttachSection` | `MASLocalizationRtl.AttachPage(window, page)` |
| `Output.VisualCapture` | `MASApplication.Output.ExportVisualCapturePng(...)` |
| `Output.CapabilityCatalog` | `MASApplication.Output.CanExport(...)` |
| `Output.Manifest` | `MASApplication.Output.ExportCapabilityCatalogManifest(...)` |
| `DataGrid.LargeData.Boundary` | `MASDataView.DeferRefresh()`, `MASDataView.AddRows(...)`, `MASDataGrid.SetDataView(...)` |

## Build command

Run from the repository root on Windows:

```powershell
msbuild .\samples\RecipeVerification.Batch3\Nexamas.UI.RecipeVerification.Batch3.vbproj /t:Restore,Build /p:Configuration=Release /p:Platform=x64
```

## Status

The maintainer-reported Windows verification result is recorded in `docs/quality-proof/recipe-build-verification-batch3-pass-2026-07-08.md`. The covered recipes are now `Build-verified` in `docs/recipes/build-verification-ledger.md`. This does not make them `Showcase-ready`.

Generated `bin/`, `obj/`, and `.artifacts/` folders under this sample are local outputs and must be removed before full source-distribution/release proof.


## Runtime smoke

After a successful Release/x64 build, verify application/window creation, first layout, form display, and disposal:

```powershell
.\samples\RecipeVerification.Batch3\bin\x64\Release\Nexamas.UI.RecipeVerification.Batch3.exe --smoke
```

The smoke mode closes automatically. Use `eng/tests/Run-NexamasUIDocumentationSnippetProof.ps1` to build and smoke all five batches together.

## Visual host layout

The interactive host now separates Theme/Output, Localization/RTL, and the large DataGrid into four scroll-safe routes. Localization uses the page-builder overload `MASLocalizationRtl.AttachPage(window, page)`, preventing its dashboard content from being painted over the landing page.

The `--smoke` route now traverses every registered page in this batch before the form closes automatically.
