@vasakgroup/vue-libvasak 0.14.1 → 0.15.1

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
- interface Props {
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
- alt?: string;
4
- tooltip?: string;
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<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
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<Props> & 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>;
@@ -3,6 +3,15 @@ type __VLS_Props = {
3
3
  /** La segunda línea: qué hacer, o por qué está vacío. */
4
4
  note?: string;
5
5
  icon?: string;
6
+ /**
7
+ * La variante del icono del tema.
8
+ *
9
+ * Igual que en `AlertMessage`. Hace falta porque no todos los nombres
10
+ * existen en las dos: el gestor de archivos pide `search` en la
11
+ * monocroma y `folder-open` en la de color, y pedir la que no está deja
12
+ * un hueco del tamaño del icono en vez de un icono.
13
+ */
14
+ iconType?: 'icon' | 'symbol';
6
15
  /** Con borde punteado para una caja dentro de una sección. */
7
16
  bordered?: boolean;
8
17
  };
@@ -12,6 +21,7 @@ type __VLS_Slots = {} & {
12
21
  };
13
22
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
14
23
  icon: string;
24
+ iconType: "icon" | "symbol";
15
25
  bordered: boolean;
16
26
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
17
27
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -1,7 +1,12 @@
1
1
  interface Props {
2
2
  icon: string;
3
- alt?: string;
4
- tooltip?: string;
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;