Ir al contenido
Formularios

CountryPicker

Un país de la lista ISO, con su bandera y el nombre en el idioma de la app. Se escribe para filtrar, sin tildes.

import { CountryPicker } from "sebs7n-ui/country-picker"

Ejemplos

Básico

Los 249 países con su bandera, por nombre en el idioma de la app. Se escribe sin tildes: «peru» encuentra «Perú».

import { CountryPicker } from "sebs7n-ui/country-picker"
import { Field, FieldLabel } from "sebs7n-ui"

function Basic() {
  return (
    <Field className="w-full max-w-sm">
      <FieldLabel>País de facturación</FieldLabel>
      <CountryPicker defaultValue="AR" name="country" />
    </Field>
  )
}

SomeCountries países

`countries` limita la lista; se ordena por nombre.

import { CountryPicker } from "sebs7n-ui/country-picker"
import { Field, FieldLabel } from "sebs7n-ui"

function SomeCountries() {
  return (
    <Field className="w-full max-w-sm">
      <FieldLabel>País del emisor</FieldLabel>
      <CountryPicker countries={["AR", "UY", "CL", "PY", "BR"]} />
    </Field>
  )
}

Props

Generadas del TypeScript del paquete. Las propias del componente, más las heredadas del primitivo que tienen algo que explicar —marcadas «heredada de Base UI»—. El resto está en la línea «hereda de».

CountryPicker

PropTipoPor defectoDescripción
aria-describedbystring—El id de la ayuda o del error del campo.
aria-invalidboolean—Marca el campo inválido (borde rojo).
aria-labelstring—Nombre accesible del elemento.
aria-labelledbystring—El id del elemento que nombra el campo, si no es un <label>.
countriesreadonly string[]COUNTRY_CODESLos países de la lista, si no son todos. En el orden que sea: se ordenan por nombre.
defaultValuestringnullEl valor inicial. Es la versión no controlada de value.
disabledboolean—Apaga el campo.
idstring—El id del campo, para un <Label htmlFor>.
labelsPartial<Labels["countryPicker"]>—Textos: locale (el idioma de los nombres) y placeholder. «Limpiar» y «Sin resultados» son los de combobox.
localestring—El idioma de los nombres. Por defecto, el de labels (countryPicker.locale, es-AR).
namestring—El nombre con el que el código viaja en un formulario.
onValueChange(value: string | null) => void—Avisa el código elegido, o null al limpiar.
placeholderstring—Lo que dice el campo vacío. Por defecto, labels.placeholder («Elegí un país»).
size"sm" | "md" | "lg""md"28, 36 (default) o 40, como los campos.
valuestring—El país elegido, código ISO 3166-1 alfa-2 («AR»). null es ninguno. Pasarlo lo vuelve controlado.
classNamestring—Clases de la superficie.

Teclado

a–z
Filtran por nombre, sin tildes ni mayúsculas, o por código ISO («US» es Estados Unidos, y va primero); la primera coincidencia queda resaltada.
↓ / ↑
Abren la lista y la recorren.
Enter
Elige el país resaltado.
Escape
Cierra la lista.

Accesibilidad

  • Es un combobox con listbox de Combobox: nombre obligatorio con aria-label, aria-labelledby o un FieldLabel.
  • La bandera es decorativa (aria-hidden): la opción se lee por el nombre.
  • «Sin resultados» sale en la región viva del combobox.

Reglas de uso

  • El valor es el código ISO 3166-1 alfa-2 («AR»), que es lo que se guarda; el nombre sale de Intl.DisplayNames en countryPicker.locale de labels (o la prop locale).
  • La bandera es un emoji armado con el código: en Windows se ven las dos letras («AR»).
  • countries limita la lista (los países donde se opera). sebs7n-ui/lib/countries trae COUNTRY_CODES, isCountryCode, countryFlag y countryName, también para el servidor.
  • Solo por subpath (sebs7n-ui/country-picker): no está en el barrel, por peso.

Relacionados