+
+ @ChildContent
+ @if (!string.IsNullOrEmpty(Hint)) {
@Hint
}
+ @if (!string.IsNullOrEmpty(Error)) {
@Error
}
+
+
+@code {
+ [Parameter, EditorRequired] public string Label { get; set; } = string.Empty;
+ [Parameter] public string? Hint { get; set; }
+ [Parameter] public string? Error { get; set; }
+ [Parameter] public RenderFragment? ChildContent { get; set; }
+}
+```
+
+**Step 4:** Run → PASS. **Step 5:** Commit `feat(theme): TechButton/TechCard/TechField`.
+
+---
+
+## Task 9: ThemeHead (stylesheet entry point)
+
+**Classification:** small
+**Estimated implement time:** ~2 min
+**Parallelizable with:** Task 2, 3, 4, 5, 7, 8
+
+**Files:**
+- Create: `src/ZB.MOM.WW.Theme/Components/ThemeHead.razor`
+- Test: `tests/ZB.MOM.WW.Theme.Tests/ThemeHeadTests.cs`
+
+**Step 1: failing test:**
+```csharp
+namespace ZB.MOM.WW.Theme.Tests;
+
+public class ThemeHeadTests : TestContext
+{
+ [Fact]
+ public void Emits_theme_and_layout_links_to_content_path()
+ {
+ var cut = RenderComponent