Maskable
FormInput con máscara basada en tokens, máscaras dinámicas, auto-uppercase, soporte de pegado y binding con wire:model.
Uso básico
<x-kore::maskable wire:model="phone" label="Teléfono" mask="(##) ####-####" /><x-kore::maskable wire:model="phone" label="Teléfono" mask="(##) ####-####" />Tokens de máscara
# = dígito, A = letra, * = cualquier carácter, ! = letra auto-mayúscula. Todo lo demás es literal.
{{-- Teléfono --}}
<x-kore::maskable label="Teléfono" mask="(##) ####-####" />
{{-- RFC con auto-mayúscula --}}
<x-kore::maskable label="RFC" mask="!!!!######!!!" />
{{-- Código postal --}}
<x-kore::maskable label="Código postal" mask="#####" />{{-- Teléfono --}}
<x-kore::maskable label="Teléfono" mask="(##) ####-####" />
{{-- RFC con auto-mayúscula --}}
<x-kore::maskable label="RFC" mask="!!!!######!!!" />
{{-- Código postal --}}
<x-kore::maskable label="Código postal" mask="#####" />Máscaras dinámicas
Pasa un array de máscaras para inputs con diferentes longitudes. La mejor máscara se selecciona automáticamente.
<x-kore::maskable
:mask="['(##) ####-####', '(##) #####-####']"
label="Teléfono"
/><x-kore::maskable
:mask="['(##) ####-####', '(##) #####-####']"
label="Teléfono"
/>Valor formateado
Por defecto, Livewire recibe el valor sin formato (solo dígitos/letras). Con emit-formatted, recibe el valor con la máscara aplicada.
{{-- Valor raw: "5512345678" --}}
<x-kore::maskable wire:model="phone" label="Raw" mask="(##) ####-####" />
{{-- Valor formateado: "(55) 1234-5678" --}}
<x-kore::maskable wire:model="phone" label="Formateado" mask="(##) ####-####" emit-formatted />{{-- Valor raw: "5512345678" --}}
<x-kore::maskable wire:model="phone" label="Raw" mask="(##) ####-####" />
{{-- Valor formateado: "(55) 1234-5678" --}}
<x-kore::maskable wire:model="phone" label="Formateado" mask="(##) ####-####" emit-formatted />Iconos
Iconos Lucide a la izquierda y/o derecha del input.
<x-kore::maskable label="Teléfono" mask="(##) ####-####" icon="phone" />
<x-kore::maskable label="RFC" mask="!!!!######!!!" icon="file-text" clearable /><x-kore::maskable label="Teléfono" mask="(##) ####-####" icon="phone" />
<x-kore::maskable label="RFC" mask="!!!!######!!!" icon="file-text" clearable />Tamaños
Tres tamaños disponibles.
<x-kore::maskable label="Small" size="sm" mask="#####" />
<x-kore::maskable label="Medium" size="md" mask="#####" />
<x-kore::maskable label="Large" size="lg" mask="#####" /><x-kore::maskable label="Small" size="sm" mask="#####" />
<x-kore::maskable label="Medium" size="md" mask="#####" />
<x-kore::maskable label="Large" size="lg" mask="#####" />Estados
Disabled, readonly, required y error.
Este campo es requerido
<x-kore::maskable label="Disabled" mask="(##) ####-####" disabled />
<x-kore::maskable label="Readonly" mask="(##) ####-####" readonly />
<x-kore::maskable label="Required" mask="(##) ####-####" required />
<x-kore::maskable label="Con error" mask="(##) ####-####" error="Este campo es requerido" /><x-kore::maskable label="Disabled" mask="(##) ####-####" disabled />
<x-kore::maskable label="Readonly" mask="(##) ####-####" readonly />
<x-kore::maskable label="Required" mask="(##) ####-####" required />
<x-kore::maskable label="Con error" mask="(##) ####-####" error="Este campo es requerido" />Props
| Prop | Tipo | Default | Descripción |
|---|---|---|---|
label
|
string|null | null | Texto de la etiqueta |
hint
|
string|null | null | Texto de ayuda debajo del campo |
name
|
string|null | null | Nombre para detección de errores |
error
|
string|null | null | Mensaje de error manual |
size
|
string | md | Tamaño: sm, md, lg |
mask
|
string|array|null | null | Patrón(es) de máscara. Array para máscaras dinámicas |
emitFormatted
|
bool | false | Enviar valor formateado a Livewire en lugar del raw |
slotChar
|
string | _ | Carácter placeholder para posiciones vacías |
autoClear
|
bool | false | Limpiar valor al perder el foco si está incompleto |
icon
|
string|null | null | Icono Lucide izquierdo |
iconRight
|
string|null | null | Icono Lucide derecho |
clearable
|
bool | false | Mostrar botón de limpiar |
disabled
|
bool | false | Estado deshabilitado |
readonly
|
bool | false | Estado de solo lectura |
required
|
bool | false | Campo obligatorio con asterisco |
showError
|
bool | true | Auto-detectar errores del \$errors bag |
Configuración
Defaults globales en config/kore-ui.php.
'form' => [
'maskable' => [
'slot_char' => '_',
'auto_clear' => false,
'emit_formatted' => false,
],
],'form' => [
'maskable' => [
'slot_char' => '_',
'auto_clear' => false,
'emit_formatted' => false,
],
],