E-mail List Editor
What It Is For
Lets staff maintain a contact’s ordered e-mail addresses and make one address primary while staying in the contact form. The ordered e-mail collection and its form adapter provide first-row primary selection, row editing and supplied validation. The local duplicate hint reads fixture contacts; it has no live duplicate or uniqueness request.
Where It Is Used
Used by the E-mail Addresses form adapter in Create Contact and Edit Contact; it edits contact collections and provides no organization e-mail contract. The shared E-mail Addresses form adapter embeds the list in Create Contact and Edit Contact. The enclosing screen supplies error text and navigation to a duplicate record.
How It Behaves
An empty collection already presents its first input. The shared blank-row mechanism leaves a still-blank provisional row outside the committed list. The first committed row is primary; choosing another star moves that entire entry to the front without changing its key. Add appends a blank committed row and requests focus, while Remove filters the selected key out. Blur normalizes the address through the shared formatter, and Enter is prevented from submitting the enclosing form. The counter and Add limit use the committed list.
Its Contract
The caller owns the ordered list, error lookup and navigation. Every edit reports a replacement list, leaving saving and server uniqueness checks to the contact screen. The duplicate notice searches the console’s mock contact data for the normalized primary address; it is not a live uniqueness query. The notice says saving can continue, which describes that advisory interaction rather than a guarantee that the service will accept the record.
States
Empty: A provisional first input appears with no Add or Remove action and a disabled primary star. Populated: Committed rows appear in order; the first is primary. Limit reached: Add Email is disabled at three committed entries. Invalid: The input is marked invalid and its supplied error is an alert. Fixture duplicate: The primary row offers a nonblocking notice and an Open action when the mock lookup finds a match.
Accessibility
Inputs use e-mail mode and primary or numbered accessible names. Remove identifies the address; the star has pressed state and a disabled explanation. Errors have alert semantics. Added rows request focus; the initial provisional row does not. Keyboard and screen-reader coverage beyond these attributes is unverified. Accessibility verification is an open obligation recorded in the component accessibility finding.
Open Design Questions
The recorded interaction is observed implementation, with proposed design intent. Component criteria need complete executable bindings and browser accessibility review. Screen owners must wire the registered components into their designs; this slice records usage without changing those screen contracts.