syntaqxThe code boxes sit in the middle of signing in and confirming an email, a code is sent once, and nothing says "Please fill out this field". On the sign-in's second step and email confirmation the six boxes, the recovery link, the hint and the error are centred under the heading that already says what to enter; the label is for screen readers only there. Two-factor settings keep the labelled field, aligned left. A password manager that fills the code often sends the form itself too, and with the boxes sending it at the sixth digit the same code went twice: identity takes each authenticator code once (two_factor.last_step), so the second was refused and said "That code is not right" even when the code was right. While one sending is on its way, any other is now dropped by a submit listener on the form, which runs before React Router's, and the boxes never send a code again while one is out. The boxes are no longer `required`, which drew the browser's bubble over invisible input; an empty code is refused by the server as before. A refused code still clears the boxes and focuses them, and the red goes as soon as something new is typed. Checked: apps/web tsc -b and npm test (993), and the sign-in form in headless Chrome driven over CDP with an action that counts what reaches it: a filled code, the filler's own submit, the boxes' submit and one more while it was out reached the action once; after the refusal the boxes were empty, focused and red, and one typed digit took the red away. Not tried with a real password manager.db67273History
- ..
- accordion.tsx
- alert-dialog.tsx
- alert.tsx
- avatar.tsx
- badge.tsx
- breadcrumb.tsx
- button.tsx
- card.tsx
- checkbox.tsx
- collapsible.tsx
- combobox.tsx
- command.tsx
- dialog.tsx
- dropdown-menu.tsx
- field.tsx
- file-drop.tsx
- hint.tsx
- hover-card.tsx
- index.tsx
- input-otp.tsx
- input.tsx
- kbd.tsx
- label.tsx
- nav-tabs.tsx
- popover.tsx
- progress.tsx
- radio-group.tsx
- scroll-area.tsx
- select.tsx
- separator.tsx
- sheet.tsx
- sidebar.tsx
- skeleton.tsx
- slider.tsx
- switch.tsx
- tab-strip.tsx
- table.tsx
- tabs.tsx
- textarea.tsx
- toggle-group.tsx
- tooltip.tsx