Slot
Overview
Section titled “Overview”Slot is a Blazor approximation of the spec’s <Slot/>/asChild engine: it merges forwarded
attributes (class, style, event handlers) onto a single caller-supplied child render
fragment instead of rendering an element of its own, letting a primitive project HTML
attributes onto whatever element a consumer chooses to render.
Status on WPF
Section titled “Status on WPF”Retired per ADR-0003. WPF composes via ControlTemplate, named TemplateParts, and
TemplateBinding (the pattern every family in this port already uses, for example
NaviusSwitch’s PART_Thumb and NaviusSlider’s PART_Track/PART_Range/PART_Thumb), not
DOM-style attribute splatting onto an arbitrary child element, so there is no asChild-shaped
gap to fill. The M6 audit (2026-07-09) confirmed the retirement is real and not an
after-the-fact label: no Controls/Slot/ folder or NaviusSlot.cs exists under
Navius.Wpf.Primitives, and every audited family in this batch composes via named template
parts rather than a generic slot primitive.
Web deltas
Section titled “Web deltas”- No 1:1
NaviusSlotcontrol ships; consumer code that expects one will not compile againstNavius.Wpf.Primitives, by design. - The web family is itself already an acknowledged Radix-parity deviation on Blazor, since
Blazor cannot expose a child element’s props for merging the way
asChilddoes on the web substrate; the WPF port does not need to approximate an already-approximate mechanism. SlotMerge’sclass/style/event-composition algorithm has no WPF analog: there is no stringclassattribute or inlinestylestring to merge, and no dependent in this port assumes string-based style merging survives.