Todos los componentes (204)
Teléfono
Campos · PhoneField
Qué es y cuándo usarlo
El teléfono con prefijo de país y número en la misma caja, pero como dos controles: un Select para el prefijo y un campo tel para el número. El valor entra y sale en E.164 (+34612345678), que es lo que se guarda; lo que se escribe puede llevar espacios, guiones, puntos o paréntesis, que se quitan solos del valor (en el campo se quedan como se escribieron).
Cuándo usarlo
- Cualquier teléfono que se vaya a guardar para llamar o mandar un SMS.
- Controlado, con
valueyonChange, o sin controlar, coninitialValue(o nada): entonces el campo guarda por su cuenta lo que se escribe. En los dos casos, el prefijo elegido se queda aunque el número esté vacío. - Trae los 244 países y territorios con prefijo internacional de la UIT, cada uno con su bandera y su nombre en el idioma activo (
Intl.DisplayNames), por orden alfabético.prefixescambia la lista por una propia (se enseña en el orden en que llega),initialPrefixdice el prefijo que sale elegido (+34) einitialCountryel país, que hace falta cuando el prefijo es compartido:+1sin más es Estados Unidos,initialCountry="CA"es Canadá. - Un número guardado se reparte solo por su prefijo, y si el prefijo es compartido, por sus primeras cifras:
+1 809…es la República Dominicana y+44 1481…Guernsey. looksLikePhone(value)comprueba la forma antes de enviar (E.164, de 6 a 15 cifras); si el número existe lo sabe quien llame, no el formulario.
Cuándo no
- Un número que no es un teléfono (un código postal, una referencia):
TextField.
Teclado: Tab llega primero al prefijo y luego al número. En el prefijo, Intro, Espacio o las flechas abren la lista con el país elegido a la vista. Con la lista abierta, escribir el nombre busca («Fra» lleva a Francia; el espacio sigue buscando, «Reino U»), las flechas mueven de uno en uno, Re Pág y Av Pág de diez en diez, Inicio y Fin a los extremos, Intro elige y Escape cierra devolviendo el foco. Con el ratón, la rueda desplaza la lista. Al cambiar de país, el número se mantiene.
Accesibilidad: los dos controles tienen nombre propio: «Prefijo del país» y la etiqueta del campo. En el disparador se ve la bandera y el prefijo («+34»); en la lista, cada opción se llama por su país y su prefijo («España (+34)»). La bandera es decorativa. La ayuda y el error describen el número, y en el móvil sale el teclado de teléfono.
Aspecto fino: sin variables propias: usa las del campo (--amset-field-*), que el prefijo hereda, y se ajusta con las clases amset-phone__group, amset-phone__prefix, amset-phone__separator, amset-phone__number y, en la lista, amset-phone__option, amset-phone__country y amset-phone__dial.
Cómo se ve
Se guarda como +34612345678
<PhoneField
label="Telefono de contacto"
hint="Para avisarte cuando salga el pedido"
value={telefono}
onChange={setTelefono}
/>Props
Se importa con import { PhoneField } from '@amset/ui'. Las obligatorias van marcadas.
| Prop | Tipo | Para qué sirve |
|---|---|---|
labelobligatoria | string | Obligatoria: un campo sin etiqueta visible no entra en la libreria. |
className | string | — |
disabled | boolean | — |
error | string | — |
hint | string | — |
initialCountry | string | Pais que sale elegido al empezar, por su codigo ISO (`'CA'`). Manda sobre `initialPrefix`, y hace falta cuando el prefijo es compartido: `+1` sin mas es Estados Unidos. |
initialPrefix | string | Prefijo que sale elegido al empezar. Por defecto, España (`+34`). |
initialValue | string | Sin controlar: el valor con el que empieza, en E.164. Lo que se escribe despues lo guarda el campo. |
name | string | Para que el telefono viaje en un formulario nativo. Lo que se envia es el numero en E.164 (`+34612345678`), no el trozo que se ve en el campo. |
onChange | (e164: string) => void | — |
placeholder | string | — |
prefixes | readonly CountryPrefix[] | La lista de paises. Por defecto, los 244 con prefijo internacional (`DEFAULT_PREFIXES`), con el nombre en el idioma activo y ordenados por ese nombre. Una lista propia se enseña en el orden en que llega. |
required | boolean | — |
size | "sm" | "md" | "lg" | — |
value | string | Controlado, en E.164: `+34612345678`. Con `onChange`, quien lo usa guarda el cambio. |
variant | FieldVariant | — |
Acepta además los atributos del elemento que pinta: className, style, data-*, aria-* y sus eventos.
En el banco de pruebas
Cada estado y cada variante, para tocarlos de uno en uno, en su ficha de ui.amset.tech:
