SignupForm
A ready-made account-creation form — name/email/password/confirm fields, a live password-strength checklist, and a required terms checkbox — emits `submit` with the collected values instead of calling an API itself.
<UiSignupForm />Basic — live password requirements, confirm-password match check, required terms checkbox
The password field sets PasswordInput's min-length/require-uppercase/require-lowercase/require-number — its live checklist is what drives this form's own password validity, tracked via v-model:valid rather than re-implemented here. require-special-char is deliberately left off; add it yourself (and update the submit-time check) if your backend requires it.
'Confirm password' is a plain Input, not another PasswordInput — it doesn't get its own reveal toggle or requirements checklist, it's just checked against password on submit.
The 'Sign in' and terms/privacy links point to /login, /terms, and /privacy — plain hardcoded routes, not props. Add matching pages in your app, or copy the component and change the links if yours differ.
Loading
loading disables every field and swaps the submit button's label and icon for a spinner, for while the request is in flight.
Error
error is shown above the fields — where a failed signup belongs, since it's about the attempt rather than about any one input.
Purely presentational — it validates the fields client-side and emits submit with the raw values, but never calls an API itself. Wire @submit to your own registration request, and set loading/error from its result.
Color
color applies to the submit button and the links, so the whole form picks up one accent.
API Reference
Generated from the component's source — props, slots and emits as the component actually declares them.
Props
booleanfalse"neutral" | "primary" | "secondary" | "success" | "error" | "warning" | "info" | "pending"'neutral'Emits
submit[payload: { name: string; email: string; password: string }]Types
type Color = "neutral" | "primary" | "secondary" | "success" | "error" | "warning" | "info" | "pending";