@luis-angel-martin-dzul/input-styles 0.0.27 → 0.0.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -6,8 +6,8 @@ Incluye componentes de inputs, selects, botones, paginación y más, estilizados
6
6
 
7
7
  ------
8
8
 
9
- ![Última actualización](https://img.shields.io/badge/Actualizado-28%20de%20Junio%20del%2026-blue)
10
- ![Versión](https://img.shields.io/badge/versión-0.0.20-indigo)
9
+ ![Última actualización](https://img.shields.io/badge/Actualizado-28%20de%20Agosto%20del%2026-blue)
10
+ ![Versión](https://img.shields.io/badge/versión-0.0.29-indigo)
11
11
 
12
12
  ------
13
13
 
@@ -119,7 +119,7 @@ configureStyles({
119
119
  ---
120
120
 
121
121
  ### Inputs de texto
122
- _Afecta: `InputTextStyle`, `InputNumberStyle`, `InputPasswordStyle`, `TextAreaStyle`, `InputDateStyle`, `InputDateTimeStyle`, `InputTimeStyle`, `SelectStyle`_
122
+ _Afecta: `InputTextStyle`, `InputNumberStyle`, `InputPasswordStyle`, `TextAreaStyle`, `InputDateStyle`, `InputDateTimeStyle`, `InputTimeStyle`, `SelectStyle`, `InputAutocompleteStyle`_
123
123
 
124
124
  | Token | Tipo | Default | Descripción |
125
125
  | ----- | ---- | ------- | ----------- |
@@ -155,7 +155,7 @@ configureStyles({
155
155
  ---
156
156
 
157
157
  ### Select
158
- _Afecta: `SelectStyle`_
158
+ _Afecta: `SelectStyle`, `InputAutocompleteStyle`_
159
159
 
160
160
  | Token | Tipo | Default | Descripción |
161
161
  | ----- | ---- | ------- | ----------- |
@@ -357,13 +357,14 @@ Input numérico con control preciso de dígitos, decimales, rango y formato de v
357
357
  | `numeric` | `String` | `null` | Formato tipo SQL: `"10,2"` → 10 dígitos enteros, 2 decimales. Si se omite, usa `10,2` por defecto. |
358
358
  | `min` | `String` | `null` | Valor mínimo (aplicado al perder el foco). Si es `null` o negativo, permite negativos. |
359
359
  | `max` | `String` | `null` | Valor máximo (aplicado al perder el foco). |
360
+ | `alignLeft` | `Boolean` | `false` | Posición de los botones de paso (▲/▼) respecto al valor. `false` = botones a la izquierda, valor a la derecha (`Rows \| Input`); `true` = botones a la derecha, valor a la izquierda (`Input \| Rows`). |
360
361
  | `disabled` | `Boolean` | `false` | |
361
362
  | `required` | `Boolean` | `false` | |
362
363
  | `validate` | `Boolean \| null` | `null` | |
363
364
  | `mclass` | `String` | `null` | |
364
365
 
365
366
  **Comportamiento:**
366
- - Incluye botones **caret ▲ / ▼** alineados a la izquierda del campo para aumentar/disminuir el valor en unidades (respetando `min`/`max`). No tienen separador y usan el color global de los iconos (`ICON_STATIC`).
367
+ - Incluye botones **caret ▲ / ▼** para aumentar/disminuir el valor en unidades (respetando `min`/`max`). Por defecto se alinean a la izquierda del campo (con el valor a la derecha); con `alignLeft` se mueven a la derecha y el valor pasa a la izquierda. No tienen separador y usan el color global de los iconos (`ICON_STATIC`).
367
368
  - Si **mantienes presionado** un botón, tras una breve pausa el valor cambia de forma **continua** hasta soltar.
368
369
  - Puedes escribir `0` y luego `.` para empezar los decimales: el punto se conserva a la espera de los dígitos decimales (solo si los decimales están activados en `numeric`).
369
370
  - Al **enfocar** el campo, si el valor es `0` (o está vacío) se limpia, para que al escribir reemplaces el valor en lugar de anteponerlo.
@@ -489,6 +490,78 @@ const ubicaciones = [
489
490
 
490
491
  ------
491
492
 
493
+ ## InputAutocompleteStyle
494
+
495
+ Autocomplete basado en `SelectStyle`, pero con el **input editable**: el usuario escribe para filtrar las opciones en vivo. Mantiene el mismo formato de `list` (plana o agrupada) y la misma navegación por teclado y posicionamiento automático del dropdown.
496
+
497
+ Incluye un estado de **carga/búsqueda** controlado por la prop `loading`: cuando es `true`, oculta las opciones y muestra el mensaje _"Buscando coincidencias..."_ — pensado para búsquedas asíncronas donde el listado se resuelve en el servidor.
498
+
499
+ ```vue
500
+ <InputAutocompleteStyle
501
+ v-model="pais"
502
+ label="País"
503
+ :list="paises"
504
+ placeholder="Escribe para buscar"
505
+ :loading="buscando"
506
+ return-value="value"
507
+ :validate="validate"
508
+ @search="onSearch"
509
+ />
510
+ ```
511
+
512
+ ```js
513
+ // El evento @search se emite en cada tecleo; úsalo para disparar una
514
+ // búsqueda asíncrona y controlar la prop `loading`.
515
+ function onSearch(query) {
516
+ buscando.value = true
517
+ fetchPaises(query).then(res => {
518
+ paises.value = res
519
+ buscando.value = false
520
+ })
521
+ }
522
+ ```
523
+
524
+ ```js
525
+ // Formato del array `list` — idéntico a SelectStyle (plana o agrupada)
526
+ const paises = [
527
+ { value: 1, text: 'México' },
528
+ { value: 2, text: 'España' },
529
+ { value: 3, text: 'Argentina' },
530
+ ]
531
+ ```
532
+
533
+ | Prop | Tipo | Default | Descripción |
534
+ | ---- | ---- | ------- | ----------- |
535
+ | `modelValue` | `String \| Number \| Object` | — | Valor seleccionado. |
536
+ | `list` | `Array` | `[]` | Array de opciones. Acepta lista plana `{ value, text }` o agrupada `{ label, options: [...] }`. El `value` es opcional: si se omite, se usa el `text` como valor. |
537
+ | `returnValue` | `String` | `'value'` | Qué se emite al seleccionar: `'value'` (item.value), `'text'` (item.text) u `'object'` (el item completo). |
538
+ | `loading` | `Boolean` | `false` | Cuando es `true`, oculta las opciones y muestra "Buscando coincidencias...". Úsalo mientras resuelves una búsqueda asíncrona. |
539
+ | `label` | `String` | `''` | |
540
+ | `description` | `String` | `''` | |
541
+ | `placeholder` | `String` | `''` | |
542
+ | `wrapOptions` | `Boolean` | `false` | `true` = permite que el texto de cada opción haga salto de línea; `false` = lo trunca con elipsis. |
543
+ | `disabled` | `Boolean` | `false` | |
544
+ | `required` | `Boolean` | `false` | |
545
+ | `validate` | `Boolean \| null` | `null` | |
546
+ | `mclass` | `String` | `null` | |
547
+
548
+ **Eventos:**
549
+ - `search` — se emite en cada cambio del texto escrito, con el `query` actual como payload. Ideal para búsquedas asíncronas.
550
+ - `update:modelValue` / `change` — emiten el valor al seleccionar una opción (según `returnValue`).
551
+ - `blur` — al cerrarse el dropdown.
552
+
553
+ **Comportamiento:**
554
+ - Al abrir (foco o clic en el chevron) muestra todas las opciones; al teclear, filtra por coincidencia de texto (sin distinguir mayúsculas).
555
+ - Al seleccionar una opción, el input muestra su `text`.
556
+ - Si se cierra el dropdown sin seleccionar, el input vuelve a reflejar la selección real (descarta el texto escrito sin confirmar).
557
+
558
+ **Navegación por teclado:**
559
+ - `↑` / `↓` — navegar opciones
560
+ - `Enter` — seleccionar la opción resaltada
561
+ - `Escape` — cerrar el dropdown
562
+
563
+ ------
564
+
492
565
  ## InputCheckStyle
493
566
 
494
567
  Checkbox estilizado con label y descripción.