diff --git a/.jules/vanguard.md b/.jules/vanguard.md index a93be15..7b790f8 100644 --- a/.jules/vanguard.md +++ b/.jules/vanguard.md @@ -28,3 +28,6 @@ ## 2026-06-11 - TabControl Selection Synchronization Parity **Observation:** The bifurcated architecture correctly synced navigation from the TreeView to the TabControl across all paradigms. However, bidirectional synchronization—where navigating via the TabControl updates the TreeView state—was absent in the Blazor deployment targets (Home.razor and Programmatic.razor). **Strategic Action:** Implemented identical `SelectionChanged` logic within the TabControl across the Blazor deployments to map active tabs back to the TreeView context. Introduced derived `@bind-IsSelected` boolean bindings on Razor TreeViewItems, driven from `_selectedTabIndex`, to keep navigation state synchronized between the TreeView and TabControl. +## 2026-06-15 - Vanguard Parity Integration: Button Drop Shadow Support +**Observation:** The core `Button` component supports a classic DOS-style drop shadow through the `ShadowStyle` and `ShadowBackground` dependency properties. However, this feature lacked declarative support within the Blazor wrapper (`TuiButton`) and was not effectively showcased across the cross-platform demonstration targets. +**Strategic Action:** We explicitly exposed the `ShadowStyle` and `ShadowBackground` parameters on the `TuiButton` Blazor wrapper. We then utilized these properties across the unified dual-pane architecture to consistently deploy the "Show Dialog" button with a `Solid` shadow style and `ConsoleColor.DarkGray` background across the `demo.xaml`, `Program.cs`, `Home.razor`, and `Programmatic.razor` endpoints, guaranteeing absolute visual configuration parity. diff --git a/plan.md b/plan.md new file mode 100644 index 0000000..a609a1b --- /dev/null +++ b/plan.md @@ -0,0 +1,15 @@ +1. **Update TuiButton**: + - Modify `src/Tedd.TUI.Platform.Blazor/Components/TuiButton.cs` to add `ShadowStyle` and `ShadowBackground` parameters. + - Inside `ApplyProperties`, set `_button.ShadowStyle` and `_button.ShadowBackground` based on these parameters. Default `ShadowStyle` to `ButtonShadowStyle.None` and `ShadowBackground` to `ConsoleColor.Black`. wait, `ShadowBackground` is `TuiColor`. Blazor UI seems to use strings or enums. Let's look at `TuiBorder` for how colors are handled, or just use `TuiColor` or `ConsoleColor`. `ShadowBackground` in `Button` is `TuiColor`. Since `ConsoleColor` is used widely in Blazor Demo (e.g. `Foreground="ConsoleColor.Cyan"`), and `TuiColor` implicitly converts from `ConsoleColor`, we can use `ConsoleColor` as property type if we want, or `TuiColor` struct. `TuiLabel` uses `ConsoleColor?`. Let's see `TuiLabel.cs`. + +2. **Update "Show Dialog" button in all 4 places**: + - `src/Tedd.TUI.Demo.Blazor/Pages/Home.razor`: Update `` to include `ShadowStyle="ButtonShadowStyle.Solid"` and `ShadowBackground="ConsoleColor.DarkGray"`. + - `src/Tedd.TUI.Demo.Blazor/Pages/Programmatic.razor`: Update `var btnDialog = new Button { ... BoxStyle = BoxStyle.Single, ShadowStyle = ButtonShadowStyle.Solid, ShadowBackground = ConsoleColor.DarkGray };`. + - `src/Tedd.TUI.Demo/demo.xaml`: Update `