@ajuarezso/sui-design-system 0.18.0 → 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,13 +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 en Android el
10112
- * caso correcto NO sale solo: Chromium solo le pide la lupa al teclado si el
10113
- * campo es `type=search` Y NO tiene `inputmode` propio. Como acá sí lo tiene
10114
- * (`_inputModeAuto` le pone `search` para elegir el teclado), esa regla no
10115
- * aplica y la tecla cae en la acción genérica — la flecha azul de enviar.
10116
- * `enterkeyhint` es lo único que decide el ícono sin importar el resto, así
10117
- * que se emite desde el componente y ninguna pantalla tiene que acordarse.
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.
10128
+ *
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.
10131
+ *
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.
10118
10134
  */
10119
10135
  _enterKeyHintAuto = computed(() => this.type() === 'search' ? 'search' : null, ...(ngDevMode ? [{ debugName: "_enterKeyHintAuto" }] : /* istanbul ignore next */ []));
10120
10136
  /** `enterkeyhint` que termina en el DOM: gana lo que pidió el consumer. */