@vasakgroup/vue-libvasak 0.14.1 → 0.15.0
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.
|
@@ -1,21 +1,58 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Un botón de icono que alterna algo: Wi-Fi, Bluetooth, el tema.
|
|
3
|
+
*
|
|
4
|
+
* ── Lo que le faltaba ───────────────────────────────────────────────────────
|
|
5
|
+
*
|
|
6
|
+
* Es un `<button>` cuyo único contenido es un `<img>`, y ese `img` llevaba un
|
|
7
|
+
* `alt` que por omisión era la cadena vacía. O sea que **por omisión el botón
|
|
8
|
+
* no tenía nombre**: un lector de pantalla decía «botón» y nada más. Por eso
|
|
9
|
+
* `label` es obligatorio y reemplaza a `alt` y `tooltip`, que eran dos formas
|
|
10
|
+
* de nombrar lo mismo y ninguna obligaba a hacerlo.
|
|
11
|
+
*
|
|
12
|
+
* Tampoco decía si estaba encendido, que junto con el nombre es todo lo que
|
|
13
|
+
* este control transmite.
|
|
14
|
+
*/
|
|
15
|
+
type __VLS_Props = {
|
|
2
16
|
icon: string;
|
|
3
|
-
|
|
4
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Qué controla este botón, ya traducido. Obligatorio: el botón no tiene
|
|
19
|
+
* más contenido que un icono, y un icono no tiene nada que leer.
|
|
20
|
+
*/
|
|
21
|
+
label: string;
|
|
22
|
+
/**
|
|
23
|
+
* El estado de dos posiciones, cuando el botón **realmente alterna algo**.
|
|
24
|
+
*
|
|
25
|
+
* Se deja en `null` —lo que viene por omisión— en los que abren un panel:
|
|
26
|
+
* ahí `aria-pressed` mentiría, diría «no presionado» sobre algo que no
|
|
27
|
+
* tiene dos estados, y lo que hay es sólo el resaltado de `isActive`.
|
|
28
|
+
*
|
|
29
|
+
* Es `boolean | null` y no `boolean | undefined` por una trampa de Vue:
|
|
30
|
+
* **una propiedad booleana que no se pasa llega como `false`**, no como
|
|
31
|
+
* `undefined`, salvo que tenga un valor por omisión declarado. La copia
|
|
32
|
+
* del escritorio tenía este mismo criterio escrito en su comentario y no
|
|
33
|
+
* lo cumplía: medida, ponía `aria-pressed="false"` en todos los botones
|
|
34
|
+
* que abren un panel. Declarar el `null` es lo que apaga esa conversión, y además es lo que Vue
|
|
35
|
+
* saca del atributo.
|
|
36
|
+
*
|
|
37
|
+
* El `?? undefined` de la plantilla es para el chequeo de tipos y no
|
|
38
|
+
* para el navegador —`aria-pressed` no acepta `null` en los tipos,
|
|
39
|
+
* aunque en el DOM `null` y `undefined` borran el atributo igual—. Sin
|
|
40
|
+
* él no cambia nada de lo que se dibuja, y el chequeo queda en rojo.
|
|
41
|
+
*/
|
|
42
|
+
pressed?: boolean | null;
|
|
5
43
|
isActive?: boolean;
|
|
6
44
|
isLoading?: boolean;
|
|
7
45
|
iconClass?: Record<string, boolean>;
|
|
8
46
|
customClass?: Record<string, boolean>;
|
|
9
|
-
}
|
|
10
|
-
declare const __VLS_export: import("vue").DefineComponent<
|
|
47
|
+
};
|
|
48
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
11
49
|
click: () => any;
|
|
12
|
-
}, string, import("vue").PublicProps, Readonly<
|
|
50
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
13
51
|
onClick?: (() => any) | undefined;
|
|
14
52
|
}>, {
|
|
15
|
-
alt: string;
|
|
16
53
|
customClass: Record<string, boolean>;
|
|
17
|
-
tooltip: string;
|
|
18
54
|
iconClass: Record<string, boolean>;
|
|
55
|
+
pressed: boolean | null;
|
|
19
56
|
isActive: boolean;
|
|
20
57
|
isLoading: boolean;
|
|
21
58
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
interface Props {
|
|
2
2
|
icon: string;
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Qué regula el deslizador, ya traducido. Obligatorio: el `input` no tiene
|
|
5
|
+
* `<label>` asociado ni texto propio.
|
|
6
|
+
*/
|
|
7
|
+
label: string;
|
|
8
|
+
/** El nombre de la acción del botón, si no es el mismo que el del deslizador. */
|
|
9
|
+
buttonLabel?: string;
|
|
5
10
|
modelValue: number;
|
|
6
11
|
min?: number;
|
|
7
12
|
max?: number;
|
|
@@ -16,8 +21,6 @@ declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {},
|
|
|
16
21
|
"onUpdate:modelValue"?: ((value: number) => any) | undefined;
|
|
17
22
|
onButtonClick?: (() => any) | undefined;
|
|
18
23
|
}>, {
|
|
19
|
-
alt: string;
|
|
20
|
-
tooltip: string;
|
|
21
24
|
min: number;
|
|
22
25
|
max: number;
|
|
23
26
|
showButton: boolean;
|
|
@@ -21,8 +21,8 @@ declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, i
|
|
|
21
21
|
alt: string;
|
|
22
22
|
badge: number | null;
|
|
23
23
|
customClass: string | Record<string, boolean>;
|
|
24
|
-
tooltip: string;
|
|
25
24
|
iconClass: string | Record<string, boolean>;
|
|
25
|
+
tooltip: string;
|
|
26
26
|
tooltipClass: string | Record<string, boolean>;
|
|
27
27
|
showCustomTooltip: boolean;
|
|
28
28
|
customTooltipText: string;
|