@ajuarezso/sui-design-system 0.18.1 → 0.18.2

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.
@@ -10084,7 +10084,22 @@ class SuiInput {
10084
10084
  return 'text'; // split-field: control es un text input normal
10085
10085
  return t;
10086
10086
  }, ...(ngDevMode ? [{ debugName: "nativeType" }] : /* istanbul ignore next */ []));
10087
- /** Teclado que le corresponde a cada `type` cuando nadie pidió otro. */
10087
+ /**
10088
+ * Teclado que le corresponde a cada `type` cuando nadie pidió otro.
10089
+ *
10090
+ * Los que están acá cambian el teclado de verdad: `numeric`, `decimal`,
10091
+ * `tel`, `email` y `url` eligen otra grilla de teclas.
10092
+ *
10093
+ * `search` NO está, y es a propósito: en Android no cambia ninguna tecla y
10094
+ * además ROMPE la tecla de acción. Chromium, cuando el campo trae un
10095
+ * `inputmode` que no sabe convertir en teclado —`search` y `text` son los
10096
+ * dos casos—, lo manda igual pero marcándolo como campo de VARIAS LÍNEAS
10097
+ * (`TYPE_TEXT_FLAG_MULTI_LINE`, rama `default` de
10098
+ * `ImeUtils.computeEditorInfo`). Un campo de varias líneas necesita la tecla
10099
+ * de salto de línea, así que el teclado dibuja la flecha de enter y descarta
10100
+ * la lupa aunque se la hayan pedido. Sin `inputmode`, el mismo campo llega
10101
+ * como de una sola línea y la lupa aparece.
10102
+ */
10088
10103
  _inputModeAuto = computed(() => {
10089
10104
  const t = this.type();
10090
10105
  if (t === 'number')
@@ -10099,8 +10114,6 @@ class SuiInput {
10099
10114
  return 'email';
10100
10115
  if (t === 'url')
10101
10116
  return 'url';
10102
- if (t === 'search')
10103
- return 'search';
10104
10117
  return null;
10105
10118
  }, ...(ngDevMode ? [{ debugName: "_inputModeAuto" }] : /* istanbul ignore next */ []));
10106
10119
  /** `inputmode` que termina en el DOM: gana lo que pidió el consumer. */
@@ -10108,21 +10121,16 @@ class SuiInput {
10108
10121
  /**
10109
10122
  * Un campo de búsqueda abre con LUPA en la tecla de acción, siempre.
10110
10123
  *
10111
- * Va por default y no queda a cargo de cada pantalla porque el caso correcto
10112
- * NO sale solo, y en Android el propio `inputmode` lo empeora. Chromium le
10113
- * pide la lupa al teclado únicamente si el campo es `type=search` Y NO trae
10114
- * `inputmode` propio (`ImeUtils.getImeAction`). Como acá sí lo trae
10115
- * —`_inputModeAuto` le pone `search` para elegir el teclado— esa regla se
10116
- * saltea, el campo cae en la rama genérica y la tecla queda en la acción por
10117
- * descarte en vez de la lupa. Dicho de otra forma: emitir solo `inputmode`
10118
- * deja el teclado PEOR que no emitir nada.
10124
+ * Va por default y no queda a cargo de cada pantalla porque pedirla es la
10125
+ * mitad del trabajo: la otra mitad es NO pedir `inputmode="search"`, que es
10126
+ * lo que la tapaba (ver `_inputModeAuto`). Las dos decisiones viven juntas
10127
+ * acá para que no se puedan separar por accidente en una pantalla.
10119
10128
  *
10120
- * iOS llega al mismo lugar por otro camino: sin `enterkeyhint` solo pone la
10121
- * lupa si el campo vive dentro de un `form` con `action`, y acá no vive.
10129
+ * En Android el atributo alcanza solo: Chromium lo traduce a la acción
10130
+ * SEARCH del teclado sin mirar el type ni el form.
10122
10131
  *
10123
- * `enterkeyhint` es lo único que decide el ícono sin mirar nada más —ni el
10124
- * type, ni el inputmode, ni el form— así que se emite desde el componente y
10125
- * ninguna pantalla tiene que acordarse.
10132
+ * En iOS hace falta igual, porque ahí la lupa sale sola únicamente si el
10133
+ * campo vive dentro de un `form` con `action`, y acá no vive.
10126
10134
  */
10127
10135
  _enterKeyHintAuto = computed(() => this.type() === 'search' ? 'search' : null, ...(ngDevMode ? [{ debugName: "_enterKeyHintAuto" }] : /* istanbul ignore next */ []));
10128
10136
  /** `enterkeyhint` que termina en el DOM: gana lo que pidió el consumer. */