Add canonical tools child routes

This commit is contained in:
2026-03-21 13:48:54 +01:00
parent fa805f3d75
commit 354c376f1d
7 changed files with 505 additions and 3 deletions

View File

@@ -50,6 +50,7 @@ It is intentionally implementation-focused:
| 2026-03-21 | Post-P1 fix 2 | Completed | Replaced the most visible light-only surface and control colors with theme-aware tokens so switching between `Light`, `Dark`, and `System` produces a clear visual change. |
| 2026-03-21 | Post-P1 fix 3 | Completed | Restored layout-level shell interactivity by rendering routed content in `InteractiveServer` mode, which re-enabled shell event handlers such as the hamburger menu and theme selector. |
| 2026-03-21 | Post-P1 fix 4 | Completed | Added early theme bootstrapping in `App.razor` and `theme.js` so the stored mode is applied before hydration and remains visible after refresh. |
| 2026-03-21 | P2.1 | Completed | Added canonical `/tools/diagnostics` and `/tools/api` routes with dedicated tooling page components, extracted the diagnostics and API content into shared tool components, and updated the `Tools` landing page to link to the new route structure. |
### Lessons Learned
@@ -69,6 +70,7 @@ It is intentionally implementation-focused:
- Theme infrastructure is not enough on its own. Any surface that keeps hardcoded light values will make the theme switch feel broken even when the selector logic is correct.
- In Blazor Web Apps, page-level render modes do not automatically make layout-level controls interactive in the way this shell expects. The routed shell itself needs an interactive render boundary.
- Persisted theme state should be applied before Blazor hydrates, not only after layout initialization. Otherwise refresh can look broken even when storage writes succeed.
- For route migration in Blazor, extracting the destination UI into shared components keeps canonical routes and temporary compatibility routes from drifting while the redirect phase is still pending.
## Target Outcomes
@@ -348,6 +350,23 @@ Establish the shared shell, tokens, typography, and theme system that every dest
## Phase 2: Shared Navigation, Search, And State Infrastructure
### Status
`In progress`
### Task Progress
| Task | Status | Notes |
| --- | --- | --- |
| `P2.1` | Completed | Canonical `Tools` child routes now exist, backed by dedicated route pages and shared tooling content components. |
| `P2.2` | Pending | Old `/diagnostics` and `/api` routes still need to become compatibility forwards. |
| `P2.3` | Pending | Recent tables state has not been introduced yet. |
| `P2.4` | Pending | Pinned tables state has not been introduced yet. |
| `P2.5` | Pending | Table-context URL parsing and serialization still needs a shared model. |
| `P2.6` | Pending | The shell omnibox is still a placeholder trigger. |
| `P2.7` | Pending | Shared primitives for chips, tabs, drawers, and inspector sections are not extracted yet. |
| `P2.8` | Pending | Table-selection logic still lives inside individual pages. |
### Goal
Build the shared interaction infrastructure needed by multiple destinations before page-specific UI work deepens.