Rendered primitiveForm field variants and statesdeterministic source context state extraction
Emptyfield.select-province.emptysource observedSelectedfield.select-province.selectedagent inferredFocusfield.select-province.focusrequired derivedValidation errorfield.select-province.errorrequired derivedDisabledfield.select-province.disabledrequired derived Semantic token resolution
Surfacevar(--wl-surface)->surfacebackground->Focus ringvar(--wl-primary)->Form fieldatom API
Proposed contract
namelabeltypeplaceholderrequiredoptionserrorhelpText
Token contract
Surfacevar(--wl-surface)Textvar(--wl-ink)Placeholdervar(--wl-muted)Bordervar(--wl-primary-soft)Focus ringvar(--wl-primary)Errorvar(--wl-accent)Radiusvar(--wl-control-radius)Heightvar(--wl-control-height)2 moresemantic slots
- Newsletter and transfer forms should consume this before backend-specific mapping is introduced.