@moni-labs/moni-ui 0.3.0 → 0.3.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.
- package/custom-elements.json +5230 -1007
- package/dist/components/_base/moni-element.d.ts +16 -9
- package/dist/components/_base/moni-element.d.ts.map +1 -1
- package/dist/components/_base/moni-element.js +63 -9
- package/dist/components/index.js +2 -2
- package/dist/components/loading-shapes.d.ts +19 -0
- package/dist/components/loading-shapes.d.ts.map +1 -1
- package/dist/components/loading-shapes.js +19 -0
- package/dist/components/moni-app-bar.d.ts +72 -62
- package/dist/components/moni-app-bar.d.ts.map +1 -1
- package/dist/components/moni-app-bar.js +72 -62
- package/dist/components/moni-badge.d.ts +64 -65
- package/dist/components/moni-badge.d.ts.map +1 -1
- package/dist/components/moni-badge.js +64 -66
- package/dist/components/moni-bottom-sheet.d.ts +129 -61
- package/dist/components/moni-bottom-sheet.d.ts.map +1 -1
- package/dist/components/moni-bottom-sheet.js +217 -131
- package/dist/components/moni-button-group.d.ts +107 -29
- package/dist/components/moni-button-group.d.ts.map +1 -1
- package/dist/components/moni-button-group.js +107 -29
- package/dist/components/moni-button-segment.d.ts +53 -12
- package/dist/components/moni-button-segment.d.ts.map +1 -1
- package/dist/components/moni-button-segment.js +53 -12
- package/dist/components/moni-button.d.ts +116 -38
- package/dist/components/moni-button.d.ts.map +1 -1
- package/dist/components/moni-button.js +128 -38
- package/dist/components/moni-card.d.ts +68 -50
- package/dist/components/moni-card.d.ts.map +1 -1
- package/dist/components/moni-card.js +68 -50
- package/dist/components/moni-carousel.d.ts +484 -53
- package/dist/components/moni-carousel.d.ts.map +1 -1
- package/dist/components/moni-carousel.js +1024 -245
- package/dist/components/moni-checkbox.d.ts +49 -46
- package/dist/components/moni-checkbox.d.ts.map +1 -1
- package/dist/components/moni-checkbox.js +55 -48
- package/dist/components/moni-chip.d.ts +100 -33
- package/dist/components/moni-chip.d.ts.map +1 -1
- package/dist/components/moni-chip.js +104 -34
- package/dist/components/moni-color-field.d.ts +99 -24
- package/dist/components/moni-color-field.d.ts.map +1 -1
- package/dist/components/moni-color-field.js +99 -24
- package/dist/components/moni-context-menu.d.ts +72 -26
- package/dist/components/moni-context-menu.d.ts.map +1 -1
- package/dist/components/moni-context-menu.js +76 -30
- package/dist/components/moni-dialog.d.ts +84 -59
- package/dist/components/moni-dialog.d.ts.map +1 -1
- package/dist/components/moni-dialog.js +105 -58
- package/dist/components/moni-divider.d.ts +39 -27
- package/dist/components/moni-divider.d.ts.map +1 -1
- package/dist/components/moni-divider.js +42 -30
- package/dist/components/moni-expansion.d.ts +32 -22
- package/dist/components/moni-expansion.d.ts.map +1 -1
- package/dist/components/moni-expansion.js +32 -22
- package/dist/components/moni-fab-menu.d.ts +61 -23
- package/dist/components/moni-fab-menu.d.ts.map +1 -1
- package/dist/components/moni-fab-menu.js +69 -31
- package/dist/components/moni-fab.d.ts +86 -28
- package/dist/components/moni-fab.d.ts.map +1 -1
- package/dist/components/moni-fab.js +92 -34
- package/dist/components/moni-file-field.d.ts +118 -30
- package/dist/components/moni-file-field.d.ts.map +1 -1
- package/dist/components/moni-file-field.js +118 -30
- package/dist/components/moni-icon.d.ts +40 -35
- package/dist/components/moni-icon.d.ts.map +1 -1
- package/dist/components/moni-icon.js +43 -38
- package/dist/components/moni-list-item.d.ts +46 -33
- package/dist/components/moni-list-item.d.ts.map +1 -1
- package/dist/components/moni-list-item.js +61 -41
- package/dist/components/moni-list.d.ts +30 -20
- package/dist/components/moni-list.d.ts.map +1 -1
- package/dist/components/moni-list.js +36 -21
- package/dist/components/moni-loading-indicator.d.ts +54 -22
- package/dist/components/moni-loading-indicator.d.ts.map +1 -1
- package/dist/components/moni-loading-indicator.js +54 -22
- package/dist/components/moni-menu-item.d.ts +23 -16
- package/dist/components/moni-menu-item.d.ts.map +1 -1
- package/dist/components/moni-menu-item.js +23 -16
- package/dist/components/moni-menu.d.ts +81 -28
- package/dist/components/moni-menu.d.ts.map +1 -1
- package/dist/components/moni-menu.js +81 -30
- package/dist/components/moni-morph-modal.d.ts +141 -0
- package/dist/components/moni-morph-modal.d.ts.map +1 -1
- package/dist/components/moni-morph-modal.js +295 -58
- package/dist/components/moni-nav-item.d.ts +59 -29
- package/dist/components/moni-nav-item.d.ts.map +1 -1
- package/dist/components/moni-nav-item.js +59 -29
- package/dist/components/moni-nav.d.ts +94 -35
- package/dist/components/moni-nav.d.ts.map +1 -1
- package/dist/components/moni-nav.js +94 -35
- package/dist/components/moni-progress.d.ts +99 -55
- package/dist/components/moni-progress.d.ts.map +1 -1
- package/dist/components/moni-progress.js +99 -55
- package/dist/components/moni-radio.d.ts +62 -50
- package/dist/components/moni-radio.d.ts.map +1 -1
- package/dist/components/moni-radio.js +65 -52
- package/dist/components/moni-ripple.d.ts +74 -59
- package/dist/components/moni-ripple.d.ts.map +1 -1
- package/dist/components/moni-ripple.js +74 -59
- package/dist/components/moni-segmented-button.d.ts +91 -16
- package/dist/components/moni-segmented-button.d.ts.map +1 -1
- package/dist/components/moni-segmented-button.js +94 -17
- package/dist/components/moni-select-option.d.ts +30 -23
- package/dist/components/moni-select-option.d.ts.map +1 -1
- package/dist/components/moni-select-option.js +30 -23
- package/dist/components/moni-select.d.ts +300 -35
- package/dist/components/moni-select.d.ts.map +1 -1
- package/dist/components/moni-select.js +323 -39
- package/dist/components/moni-side-sheet.d.ts +94 -32
- package/dist/components/moni-side-sheet.d.ts.map +1 -1
- package/dist/components/moni-side-sheet.js +94 -32
- package/dist/components/moni-slider.d.ts +152 -41
- package/dist/components/moni-slider.d.ts.map +1 -1
- package/dist/components/moni-slider.js +154 -42
- package/dist/components/moni-snackbar.d.ts +53 -43
- package/dist/components/moni-snackbar.d.ts.map +1 -1
- package/dist/components/moni-snackbar.js +53 -43
- package/dist/components/moni-split-button.d.ts +63 -18
- package/dist/components/moni-split-button.d.ts.map +1 -1
- package/dist/components/moni-split-button.js +63 -18
- package/dist/components/moni-step.d.ts +36 -24
- package/dist/components/moni-step.d.ts.map +1 -1
- package/dist/components/moni-step.js +41 -29
- package/dist/components/moni-stepper.d.ts +64 -27
- package/dist/components/moni-stepper.d.ts.map +1 -1
- package/dist/components/moni-stepper.js +72 -34
- package/dist/components/moni-switch.d.ts +57 -46
- package/dist/components/moni-switch.d.ts.map +1 -1
- package/dist/components/moni-switch.js +59 -47
- package/dist/components/moni-tab.d.ts +26 -18
- package/dist/components/moni-tab.d.ts.map +1 -1
- package/dist/components/moni-tab.js +29 -21
- package/dist/components/moni-tabs.d.ts +34 -28
- package/dist/components/moni-tabs.d.ts.map +1 -1
- package/dist/components/moni-tabs.js +34 -28
- package/dist/components/moni-text-field.d.ts +139 -29
- package/dist/components/moni-text-field.d.ts.map +1 -1
- package/dist/components/moni-text-field.js +157 -31
- package/dist/components/moni-textarea.d.ts +127 -29
- package/dist/components/moni-textarea.d.ts.map +1 -1
- package/dist/components/moni-textarea.js +131 -32
- package/dist/components/moni-time-picker.d.ts +114 -24
- package/dist/components/moni-time-picker.d.ts.map +1 -1
- package/dist/components/moni-time-picker.js +127 -33
- package/dist/components/moni-toolbar.d.ts +37 -23
- package/dist/components/moni-toolbar.d.ts.map +1 -1
- package/dist/components/moni-toolbar.js +37 -23
- package/dist/components/moni-tooltip.d.ts +100 -36
- package/dist/components/moni-tooltip.d.ts.map +1 -1
- package/dist/components/moni-tooltip.js +104 -40
- package/dist/components/moni-typography.d.ts +68 -30
- package/dist/components/moni-typography.d.ts.map +1 -1
- package/dist/components/moni-typography.js +70 -32
- package/dist/styles/tokens.css +7 -7
- package/dist/types/events.d.ts +17 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/events.js +1 -0
- package/dist/utils/event-emitter.d.ts +13 -0
- package/dist/utils/event-emitter.d.ts.map +1 -0
- package/dist/utils/event-emitter.js +13 -0
- package/package.json +2 -1
- package/src/components/_base/moni-element.ts +73 -9
- package/src/components/index.ts +2 -2
- package/src/components/loading-shapes.ts +19 -0
- package/src/components/moni-app-bar.test.ts +10 -10
- package/src/components/moni-app-bar.ts +72 -62
- package/src/components/moni-badge.ts +64 -66
- package/src/components/moni-bottom-sheet.test.ts +39 -45
- package/src/components/moni-bottom-sheet.ts +222 -131
- package/src/components/moni-button-group.test.ts +14 -14
- package/src/components/moni-button-group.ts +107 -29
- package/src/components/moni-button-segment.ts +53 -12
- package/src/components/moni-button.test.ts +28 -26
- package/src/components/moni-button.ts +139 -39
- package/src/components/moni-card.test.ts +6 -6
- package/src/components/moni-card.ts +70 -50
- package/src/components/moni-carousel.test.ts +12 -12
- package/src/components/moni-carousel.ts +1129 -269
- package/src/components/moni-checkbox.test.ts +7 -7
- package/src/components/moni-checkbox.ts +62 -48
- package/src/components/moni-chip.test.ts +17 -17
- package/src/components/moni-chip.ts +112 -34
- package/src/components/moni-color-field.test.ts +5 -5
- package/src/components/moni-color-field.ts +108 -24
- package/src/components/moni-context-menu.test.ts +11 -11
- package/src/components/moni-context-menu.ts +76 -30
- package/src/components/moni-dialog.ts +108 -59
- package/src/components/moni-divider.test.ts +4 -4
- package/src/components/moni-divider.ts +42 -30
- package/src/components/moni-expansion.ts +32 -22
- package/src/components/moni-fab-menu.test.ts +11 -11
- package/src/components/moni-fab-menu.ts +69 -31
- package/src/components/moni-fab.test.ts +16 -16
- package/src/components/moni-fab.ts +100 -34
- package/src/components/moni-file-field.test.ts +8 -8
- package/src/components/moni-file-field.ts +132 -30
- package/src/components/moni-icon.test.ts +11 -11
- package/src/components/moni-icon.ts +43 -38
- package/src/components/moni-list-item.test.ts +10 -10
- package/src/components/moni-list-item.ts +61 -41
- package/src/components/moni-list.ts +37 -21
- package/src/components/moni-loading-indicator.test.ts +3 -3
- package/src/components/moni-loading-indicator.ts +54 -22
- package/src/components/moni-menu-item.ts +23 -16
- package/src/components/moni-menu.test.ts +7 -7
- package/src/components/moni-menu.ts +87 -30
- package/src/components/moni-morph-modal.test.ts +18 -17
- package/src/components/moni-morph-modal.ts +327 -60
- package/src/components/moni-nav-item.ts +59 -29
- package/src/components/moni-nav.test.ts +11 -11
- package/src/components/moni-nav.ts +94 -35
- package/src/components/moni-progress.test.ts +9 -9
- package/src/components/moni-progress.ts +100 -56
- package/src/components/moni-radio.test.ts +8 -8
- package/src/components/moni-radio.ts +71 -51
- package/src/components/moni-ripple.ts +74 -59
- package/src/components/moni-segmented-button.test.ts +4 -4
- package/src/components/moni-segmented-button.ts +94 -17
- package/src/components/moni-select-option.ts +30 -23
- package/src/components/moni-select.test.ts +11 -11
- package/src/components/moni-select.ts +361 -50
- package/src/components/moni-side-sheet.test.ts +7 -7
- package/src/components/moni-side-sheet.ts +94 -32
- package/src/components/moni-slider.test.ts +7 -7
- package/src/components/moni-slider.ts +165 -42
- package/src/components/moni-snackbar.test.ts +8 -8
- package/src/components/moni-snackbar.ts +53 -43
- package/src/components/moni-split-button.ts +63 -18
- package/src/components/moni-step.test.ts +7 -7
- package/src/components/moni-step.ts +41 -29
- package/src/components/moni-stepper.test.ts +7 -7
- package/src/components/moni-stepper.ts +72 -34
- package/src/components/moni-switch.test.ts +12 -12
- package/src/components/moni-switch.ts +66 -47
- package/src/components/moni-tab.test.ts +5 -5
- package/src/components/moni-tab.ts +29 -21
- package/src/components/moni-tabs.ts +34 -28
- package/src/components/moni-text-field.test.ts +13 -13
- package/src/components/moni-text-field.ts +181 -30
- package/src/components/moni-textarea.test.ts +17 -17
- package/src/components/moni-textarea.ts +155 -31
- package/src/components/moni-time-picker.test.ts +5 -5
- package/src/components/moni-time-picker.ts +128 -33
- package/src/components/moni-toolbar.test.ts +8 -8
- package/src/components/moni-toolbar.ts +37 -23
- package/src/components/moni-tooltip.test.ts +15 -15
- package/src/components/moni-tooltip.ts +107 -40
- package/src/components/moni-typography.test.ts +10 -10
- package/src/components/moni-typography.ts +73 -32
- package/src/styles/tokens.css +7 -7
- package/src/types/events.ts +17 -0
- package/src/utils/event-emitter.ts +26 -0
|
@@ -14,54 +14,64 @@ import { html, css } from 'lit';
|
|
|
14
14
|
import { customElement, property, queryAssignedElements } from 'lit/decorators.js';
|
|
15
15
|
import { MoniElement, sharedStyles } from './_base/index.js';
|
|
16
16
|
/**
|
|
17
|
-
* Material Design 3 Stepper
|
|
17
|
+
* Componente Material Design 3 Stepper (Pasos/Progresión).
|
|
18
18
|
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
19
|
+
* Un contenedor para una progresión lineal de elementos `<moni-step>`. Los steppers
|
|
20
|
+
* transmiten el progreso a través de pasos numerados e indican la posición
|
|
21
|
+
* actual del usuario dentro de un flujo.
|
|
22
22
|
*
|
|
23
|
-
* **
|
|
23
|
+
* **Referencia a la especificación M3:** `m3-docs/components/progress-indicators/specs.md`
|
|
24
24
|
*
|
|
25
|
-
* **
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* stepper
|
|
29
|
-
* -
|
|
30
|
-
* -
|
|
31
|
-
* -
|
|
25
|
+
* **Orquestación:**
|
|
26
|
+
* Este componente actúa como orquestador para sus hijos `<moni-step>` en los slots.
|
|
27
|
+
* Cada vez que cambia la propiedad `current` o se añaden/eliminan hijos, el
|
|
28
|
+
* stepper itera sobre todos los pasos hijos e inyecta su estado:
|
|
29
|
+
* - Asigna el `index` secuencial (basado en 0) a cada paso.
|
|
30
|
+
* - Establece `active=true` en el paso que coincide con el índice `current`.
|
|
31
|
+
* - Establece `completed=true` en todos los pasos anteriores al índice `current`.
|
|
32
32
|
*
|
|
33
|
-
* **
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
33
|
+
* **Diseño visual:**
|
|
34
|
+
* El stepper maneja el diseño (flex row o column basado en `orientation`)
|
|
35
|
+
* y asegura que las líneas conectoras entre los pasos se rendericen correctamente a través de
|
|
36
|
+
* pseudo-elementos CSS definidos en los estilos del `<moni-step>` hijo.
|
|
37
37
|
*
|
|
38
38
|
* @example
|
|
39
39
|
* ```html
|
|
40
40
|
* <moni-stepper current="1" orientation="horizontal">
|
|
41
|
-
* <moni-step title="
|
|
42
|
-
* <moni-step title="
|
|
43
|
-
* <moni-step title="
|
|
41
|
+
* <moni-step title="Paso 1"></moni-step>
|
|
42
|
+
* <moni-step title="Paso 2"></moni-step>
|
|
43
|
+
* <moni-step title="Paso 3"></moni-step>
|
|
44
44
|
* </moni-stepper>
|
|
45
45
|
*
|
|
46
46
|
* <script>
|
|
47
47
|
* const stepper = document.querySelector('moni-stepper');
|
|
48
|
-
* //
|
|
48
|
+
* // Mover al siguiente paso
|
|
49
49
|
* stepper.current = 2;
|
|
50
50
|
* </script>
|
|
51
51
|
* ```
|
|
52
52
|
*
|
|
53
|
-
* @slot default - `<moni-step
|
|
53
|
+
* @slot default - Elementos `<moni-step>`.
|
|
54
54
|
*/
|
|
55
55
|
let MoniStepper = class MoniStepper extends MoniElement {
|
|
56
56
|
constructor() {
|
|
57
57
|
super(...arguments);
|
|
58
58
|
this.orientation = 'horizontal';
|
|
59
59
|
this.current = 0;
|
|
60
|
+
/**
|
|
61
|
+
* Handler dinámico del slot.
|
|
62
|
+
* Detecta si el usuario añade o elimina pasos nativos (`<moni-step>`)
|
|
63
|
+
* desde el DOM en tiempo de ejecución, forzando una re-sincronización.
|
|
64
|
+
*/
|
|
60
65
|
this._onSlotChange = () => {
|
|
61
66
|
// Steps may have been added/removed; re-sync.
|
|
62
67
|
this._syncSteps();
|
|
63
68
|
};
|
|
64
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Hook del ciclo de vida reactivo (Lit).
|
|
72
|
+
* Cuando la orientación o el índice actual cambian, sincroniza
|
|
73
|
+
* el estado hacia todos los elementos hijos (`<moni-step>`).
|
|
74
|
+
*/
|
|
65
75
|
updated(changed) {
|
|
66
76
|
if (changed.has('current') ||
|
|
67
77
|
changed.has('orientation') ||
|
|
@@ -70,24 +80,39 @@ let MoniStepper = class MoniStepper extends MoniElement {
|
|
|
70
80
|
}
|
|
71
81
|
}
|
|
72
82
|
/**
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
83
|
+
* Propaga el índice del paso actual a cada elemento hijo `<moni-step>` en los slots,
|
|
84
|
+
* calculando e inyectando el estado de `index`, `completed` y `active`.
|
|
85
|
+
*
|
|
86
|
+
* **Diferimiento por microtarea (`Promise.resolve().then(...)`):**
|
|
87
|
+
* `@queryAssignedElements` de Lit se ejecuta sincrónicamente y no está disponible hasta
|
|
88
|
+
* después del primer renderizado conectado. Diferirlo a una microtarea asegura que los hijos
|
|
89
|
+
* en los slots hayan terminado su propio ciclo de vida `firstUpdated()` antes de que les escribamos
|
|
90
|
+
* el estado. Sin este diferimiento, escribir `step.active = true` durante el `updated()`
|
|
91
|
+
* del padre puede desencadenar renderizados hijos antes de que se apliquen sus estilos.
|
|
92
|
+
*
|
|
93
|
+
* **Respaldo de `querySelectorAll`:**
|
|
94
|
+
* `_steps` (de `@queryAssignedElements`) devuelve un array vacío antes del primer
|
|
95
|
+
* renderizado o cuando no hay elementos `<moni-step>` presentes en el slot. El respaldo
|
|
96
|
+
* a `querySelectorAll('moni-step')` maneja casos extremos donde se añaden pasos
|
|
97
|
+
* programáticamente sin pasar por el mecanismo de slots de Lit.
|
|
77
98
|
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
99
|
+
* **Bucle de inyección de estado:**
|
|
100
|
+
* Para cada `<moni-step>` en la posición `stepIndex`:
|
|
101
|
+
* - `stepElement.index = stepIndex` — proporciona el número de paso para su etiqueta.
|
|
102
|
+
* - `stepElement.completed = stepIndex < current` — verdadero para todos los pasos anteriores a `current`.
|
|
103
|
+
* - `stepElement.active = stepIndex === current` — verdadero solo para el paso en `current`.
|
|
80
104
|
*/
|
|
81
105
|
_syncSteps() {
|
|
82
106
|
Promise.resolve().then(() => {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
107
|
+
// Usa el resultado de @queryAssignedElements de Lit primero; usa una consulta DOM en vivo como respaldo.
|
|
108
|
+
let stepElements = this._steps || [];
|
|
109
|
+
if (stepElements.length === 0) {
|
|
110
|
+
stepElements = Array.from(this.querySelectorAll('moni-step'));
|
|
86
111
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
112
|
+
stepElements.forEach((stepElement, stepIndex) => {
|
|
113
|
+
stepElement.index = stepIndex;
|
|
114
|
+
stepElement.completed = stepIndex < this.current;
|
|
115
|
+
stepElement.active = stepIndex === this.current;
|
|
91
116
|
});
|
|
92
117
|
});
|
|
93
118
|
}
|
|
@@ -116,6 +141,19 @@ let MoniStepper = class MoniStepper extends MoniElement {
|
|
|
116
141
|
}
|
|
117
142
|
`
|
|
118
143
|
]; }
|
|
144
|
+
/**
|
|
145
|
+
* Renderiza el contenedor de lista ordenada (`<ol>`) que contiene los hijos `<moni-step>` en los slots.
|
|
146
|
+
*
|
|
147
|
+
* **Anatomía:**
|
|
148
|
+
* - El `<ol>` usa `list-style: none` y un diseño flex (fila o columna, basado en
|
|
149
|
+
* `orientation`) en lugar del renderizado nativo de lista ordenada, porque la
|
|
150
|
+
* visualización del número de paso es manejada por cada hijo `<moni-step>`.
|
|
151
|
+
* - La vinculación del evento `@slotchange` asegura que se llame a `_syncSteps()`
|
|
152
|
+
* cada vez que el consumidor añade o elimina elementos `<moni-step>` en tiempo de ejecución,
|
|
153
|
+
* manteniendo los estados `index`, `active` y `completed` sincronizados.
|
|
154
|
+
* - Cada `<moni-step>` en el slot está estilizado con `flex: 1` para que todos los pasos
|
|
155
|
+
* compartan el ancho disponible equitativamente (horizontal) o la altura (vertical).
|
|
156
|
+
*/
|
|
119
157
|
render() {
|
|
120
158
|
return html `<ol class="list" part="stepper">
|
|
121
159
|
<slot @slotchange=${this._onSlotChange}></slot>
|
|
@@ -7,114 +7,125 @@
|
|
|
7
7
|
import { MoniElement } from './_base/index.js';
|
|
8
8
|
import './moni-icon.js';
|
|
9
9
|
/**
|
|
10
|
-
* Material Design 3 Switch
|
|
10
|
+
* Componente Material Design 3 Switch (Interruptor).
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
12
|
+
* Los switches alternan el estado de una configuración individual entre encendido y apagado.
|
|
13
|
+
* Son el equivalente binario encendido/apagado de una casilla de verificación (checkbox),
|
|
14
|
+
* pero optimizados para alternar un solo estado en lugar de seleccionar de una lista.
|
|
15
15
|
*
|
|
16
|
-
* **
|
|
16
|
+
* **Referencia a la especificación M3:** `m3-docs/components/switch/specs.md`
|
|
17
17
|
*
|
|
18
|
-
* **M3
|
|
19
|
-
* - Track: 52dp × 32dp, 2dp
|
|
20
|
-
* -
|
|
21
|
-
* - State layer:
|
|
22
|
-
* -
|
|
18
|
+
* **Medidas M3:**
|
|
19
|
+
* - Pista (Track): 52dp × 32dp, borde de 2dp, forma de píldora con radio completo.
|
|
20
|
+
* - Control (Thumb): 16dp no seleccionado → 24dp seleccionado → 28dp presionado.
|
|
21
|
+
* - Capa de estado (State layer): ripple circular de 40dp en estados de hover/focus/pressed.
|
|
22
|
+
* - Icono (opcional): icono de 16dp renderizado dentro del control (thumb) cuando `icon` está activado.
|
|
23
23
|
*
|
|
24
|
-
* **
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* `<span>`
|
|
28
|
-
*
|
|
29
|
-
*
|
|
24
|
+
* **Arquitectura visual:**
|
|
25
|
+
* Al igual que `<moni-checkbox>`, el `<input type="checkbox" role="switch">` nativo
|
|
26
|
+
* ocupa espacio real en el diseño pero está oculto visualmente mediante `opacity: 0`. Dos
|
|
27
|
+
* pseudo-elementos de un `<span>` renderizan la pista (`::after`) y el control (`::before`).
|
|
28
|
+
* Cuando `icon=true`, los elementos `<i>` renderizan los glifos `close` y `check` dentro
|
|
29
|
+
* del control, y su visibilidad se alterna mediante CSS en base al estado verificado (checked).
|
|
30
30
|
*
|
|
31
|
-
* @fires change -
|
|
32
|
-
*
|
|
31
|
+
* @fires change - Burbujea y está compuesto. Se dispara cuando el switch se alterna.
|
|
32
|
+
* Lee `element.checked` para obtener el nuevo estado.
|
|
33
33
|
*
|
|
34
34
|
* @example
|
|
35
35
|
* ```html
|
|
36
|
-
* <moni-switch label="
|
|
37
|
-
* <moni-switch icon checked label="
|
|
36
|
+
* <moni-switch label="Modo oscuro" name="dark-mode"></moni-switch>
|
|
37
|
+
* <moni-switch icon checked label="Notificaciones"></moni-switch>
|
|
38
38
|
*
|
|
39
39
|
* <script>
|
|
40
40
|
* document.querySelector('moni-switch').addEventListener('change', (e) => {
|
|
41
|
-
* console.log('
|
|
41
|
+
* console.log('activado:', e.target.checked);
|
|
42
42
|
* });
|
|
43
43
|
* </script>
|
|
44
44
|
* ```
|
|
45
45
|
*
|
|
46
|
-
* @csspart switch -
|
|
46
|
+
* @csspart switch - El elemento `<label>` exterior que contiene el switch.
|
|
47
47
|
*/
|
|
48
48
|
export declare class MoniSwitch extends MoniElement {
|
|
49
|
+
static formAssociated: boolean;
|
|
50
|
+
private _internals;
|
|
51
|
+
constructor();
|
|
49
52
|
/**
|
|
50
|
-
*
|
|
53
|
+
* Etiqueta de texto mostrada a la derecha del switch.
|
|
51
54
|
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
55
|
+
* Cuando no está vacía, se renderiza como un span de texto con padding después de la pista.
|
|
56
|
+
* Cuando está vacía, se renderiza el slot por defecto, permitiendo etiquetas HTML personalizadas.
|
|
54
57
|
*
|
|
55
58
|
* @default ''
|
|
56
59
|
*/
|
|
57
60
|
label: string;
|
|
58
61
|
/**
|
|
59
|
-
*
|
|
62
|
+
* Indica si el switch está en el estado "encendido" (marcado/checked).
|
|
60
63
|
*
|
|
61
|
-
*
|
|
62
|
-
* -
|
|
63
|
-
* -
|
|
64
|
-
* -
|
|
64
|
+
* Cuando es `true`:
|
|
65
|
+
* - La pista se llena con el color `--primary`.
|
|
66
|
+
* - El control (thumb) crece de 16dp a 24dp y se desliza hacia el borde final (trailing).
|
|
67
|
+
* - El color del control cambia a `--on-primary`.
|
|
65
68
|
*
|
|
66
69
|
* @default false
|
|
67
70
|
*/
|
|
68
71
|
checked: boolean;
|
|
69
72
|
/**
|
|
70
|
-
*
|
|
73
|
+
* Cuando es `true`, el switch no es interactivo y se renderiza al 50% de opacidad.
|
|
71
74
|
*
|
|
72
75
|
* @default false
|
|
73
76
|
*/
|
|
74
77
|
disabled: boolean;
|
|
75
78
|
/**
|
|
76
|
-
*
|
|
79
|
+
* Cuando es `true`, renderiza glifos de iconos dentro del control (thumb).
|
|
77
80
|
*
|
|
78
|
-
*
|
|
79
|
-
* - Unchecked
|
|
80
|
-
* - Checked
|
|
81
|
+
* Utiliza ligaduras de Material Symbols:
|
|
82
|
+
* - Estado desmarcado (Unchecked): icono `close`.
|
|
83
|
+
* - Estado marcado (Checked): icono `check`.
|
|
81
84
|
*
|
|
82
|
-
*
|
|
85
|
+
* El tamaño del icono (16dp) se establece a través de la propiedad CSS `--_thumb`.
|
|
83
86
|
*
|
|
84
87
|
* @default false
|
|
85
88
|
*/
|
|
86
89
|
icon: boolean;
|
|
87
90
|
/**
|
|
88
|
-
*
|
|
91
|
+
* Reenviado al atributo nativo `<input name>` para participar en formularios.
|
|
89
92
|
*
|
|
90
93
|
* @default ''
|
|
91
94
|
*/
|
|
92
95
|
name: string;
|
|
93
96
|
/**
|
|
94
|
-
*
|
|
95
|
-
*
|
|
97
|
+
* Reenviado al atributo nativo `<input value>`.
|
|
98
|
+
* El valor enviado en un formulario cuando este switch está marcado.
|
|
96
99
|
*
|
|
97
100
|
* @default ''
|
|
98
101
|
*/
|
|
99
102
|
value: string;
|
|
100
|
-
/**
|
|
103
|
+
/** Referencia directa al elemento input nativo para acceso programático. */
|
|
101
104
|
private _input;
|
|
102
105
|
/**
|
|
103
|
-
*
|
|
106
|
+
* Sincroniza `checked` y `disabled` de forma imperativa en el input nativo después del renderizado.
|
|
104
107
|
*
|
|
105
|
-
* @param changed -
|
|
108
|
+
* @param changed - Mapa de los nombres de las propiedades modificadas a sus valores anteriores.
|
|
106
109
|
*/
|
|
107
110
|
updated(changed: Map<string, unknown>): void;
|
|
108
111
|
/**
|
|
109
|
-
*
|
|
112
|
+
* Maneja el evento nativo `change` del input.
|
|
110
113
|
*
|
|
111
|
-
*
|
|
112
|
-
*
|
|
114
|
+
* Actualiza `this.checked` y vuelve a despachar un evento `'change'` compuesto
|
|
115
|
+
* para que burbujee a través de los límites del shadow DOM.
|
|
113
116
|
*
|
|
114
|
-
* @param e -
|
|
117
|
+
* @param e - El evento nativo `change` desde el `<input>` oculto.
|
|
115
118
|
*/
|
|
116
119
|
private _onChange;
|
|
117
120
|
static styles: import("lit").CSSResult[];
|
|
121
|
+
/**
|
|
122
|
+
* Renderiza el switch como un `<input type="checkbox">` oculto + pista visual mediante `<span>`.
|
|
123
|
+
*
|
|
124
|
+
* El input oculto ocupa espacio de diseño real (para el área de clic/hit area) pero tiene opacidad 0;
|
|
125
|
+
* el `<span>` proporciona la píldora visual y el control (thumb) (vía `::before`/`::after`).
|
|
126
|
+
* La vinculación `.checked` asegura que el estado del input en el DOM se mantenga sincronizado con
|
|
127
|
+
* `this.checked`.
|
|
128
|
+
*/
|
|
118
129
|
render(): import("lit").TemplateResult<1>;
|
|
119
130
|
}
|
|
120
131
|
declare global {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"moni-switch.d.ts","sourceRoot":"","sources":["../../src/components/moni-switch.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,WAAW,EAAgB,MAAM,kBAAkB,CAAC;AAC7D,OAAO,gBAAgB,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,qBACa,UAAW,SAAQ,WAAW;IAC1C;;;;;;;OAOG;IAC0B,KAAK,SAAM;IAExC;;;;;;;;;OASG;IACyC,OAAO,UAAS;IAE5D;;;;OAIG;IACyC,QAAQ,UAAS;IAE7D;;;;;;;;;;OAUG;IACyC,IAAI,UAAS;IAEzD;;;;OAIG;IAC0B,IAAI,SAAM;IAEvC;;;;;OAKG;IAC0B,KAAK,SAAM;IAExC,4EAA4E;IAC5D,OAAO,CAAC,MAAM,CAAoB;IAElD;;;;OAIG;IACM,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"moni-switch.d.ts","sourceRoot":"","sources":["../../src/components/moni-switch.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,WAAW,EAAgB,MAAM,kBAAkB,CAAC;AAC7D,OAAO,gBAAgB,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,qBACa,UAAW,SAAQ,WAAW;IAC1C,MAAM,CAAC,cAAc,UAAQ;IAC7B,OAAO,CAAC,UAAU,CAAmB;;IAOrC;;;;;;;OAOG;IAC0B,KAAK,SAAM;IAExC;;;;;;;;;OASG;IACyC,OAAO,UAAS;IAE5D;;;;OAIG;IACyC,QAAQ,UAAS;IAE7D;;;;;;;;;;OAUG;IACyC,IAAI,UAAS;IAEzD;;;;OAIG;IAC0B,IAAI,SAAM;IAEvC;;;;;OAKG;IAC0B,KAAK,SAAM;IAExC,4EAA4E;IAC5D,OAAO,CAAC,MAAM,CAAoB;IAElD;;;;OAIG;IACM,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAU9C;;;;;;;OAOG;IACH,OAAO,CAAC,SAAS;IAKjB,OAAgB,MAAM,4BAiKpB;IAEF;;;;;;;OAOG;IACM,MAAM;CAmBf;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,aAAa,EAAE,UAAU,CAAC;KAC1B;CACD;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -16,119 +16,123 @@ import { ifDefined } from 'lit/directives/if-defined.js';
|
|
|
16
16
|
import { MoniElement, sharedStyles } from './_base/index.js';
|
|
17
17
|
import './moni-icon.js';
|
|
18
18
|
/**
|
|
19
|
-
* Material Design 3 Switch
|
|
19
|
+
* Componente Material Design 3 Switch (Interruptor).
|
|
20
20
|
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
21
|
+
* Los switches alternan el estado de una configuración individual entre encendido y apagado.
|
|
22
|
+
* Son el equivalente binario encendido/apagado de una casilla de verificación (checkbox),
|
|
23
|
+
* pero optimizados para alternar un solo estado en lugar de seleccionar de una lista.
|
|
24
24
|
*
|
|
25
|
-
* **
|
|
25
|
+
* **Referencia a la especificación M3:** `m3-docs/components/switch/specs.md`
|
|
26
26
|
*
|
|
27
|
-
* **M3
|
|
28
|
-
* - Track: 52dp × 32dp, 2dp
|
|
29
|
-
* -
|
|
30
|
-
* - State layer:
|
|
31
|
-
* -
|
|
27
|
+
* **Medidas M3:**
|
|
28
|
+
* - Pista (Track): 52dp × 32dp, borde de 2dp, forma de píldora con radio completo.
|
|
29
|
+
* - Control (Thumb): 16dp no seleccionado → 24dp seleccionado → 28dp presionado.
|
|
30
|
+
* - Capa de estado (State layer): ripple circular de 40dp en estados de hover/focus/pressed.
|
|
31
|
+
* - Icono (opcional): icono de 16dp renderizado dentro del control (thumb) cuando `icon` está activado.
|
|
32
32
|
*
|
|
33
|
-
* **
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
* `<span>`
|
|
37
|
-
*
|
|
38
|
-
*
|
|
33
|
+
* **Arquitectura visual:**
|
|
34
|
+
* Al igual que `<moni-checkbox>`, el `<input type="checkbox" role="switch">` nativo
|
|
35
|
+
* ocupa espacio real en el diseño pero está oculto visualmente mediante `opacity: 0`. Dos
|
|
36
|
+
* pseudo-elementos de un `<span>` renderizan la pista (`::after`) y el control (`::before`).
|
|
37
|
+
* Cuando `icon=true`, los elementos `<i>` renderizan los glifos `close` y `check` dentro
|
|
38
|
+
* del control, y su visibilidad se alterna mediante CSS en base al estado verificado (checked).
|
|
39
39
|
*
|
|
40
|
-
* @fires change -
|
|
41
|
-
*
|
|
40
|
+
* @fires change - Burbujea y está compuesto. Se dispara cuando el switch se alterna.
|
|
41
|
+
* Lee `element.checked` para obtener el nuevo estado.
|
|
42
42
|
*
|
|
43
43
|
* @example
|
|
44
44
|
* ```html
|
|
45
|
-
* <moni-switch label="
|
|
46
|
-
* <moni-switch icon checked label="
|
|
45
|
+
* <moni-switch label="Modo oscuro" name="dark-mode"></moni-switch>
|
|
46
|
+
* <moni-switch icon checked label="Notificaciones"></moni-switch>
|
|
47
47
|
*
|
|
48
48
|
* <script>
|
|
49
49
|
* document.querySelector('moni-switch').addEventListener('change', (e) => {
|
|
50
|
-
* console.log('
|
|
50
|
+
* console.log('activado:', e.target.checked);
|
|
51
51
|
* });
|
|
52
52
|
* </script>
|
|
53
53
|
* ```
|
|
54
54
|
*
|
|
55
|
-
* @csspart switch -
|
|
55
|
+
* @csspart switch - El elemento `<label>` exterior que contiene el switch.
|
|
56
56
|
*/
|
|
57
57
|
let MoniSwitch = class MoniSwitch extends MoniElement {
|
|
58
|
+
static { this.formAssociated = true; }
|
|
58
59
|
constructor() {
|
|
59
|
-
super(
|
|
60
|
+
super();
|
|
60
61
|
/**
|
|
61
|
-
*
|
|
62
|
+
* Etiqueta de texto mostrada a la derecha del switch.
|
|
62
63
|
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
64
|
+
* Cuando no está vacía, se renderiza como un span de texto con padding después de la pista.
|
|
65
|
+
* Cuando está vacía, se renderiza el slot por defecto, permitiendo etiquetas HTML personalizadas.
|
|
65
66
|
*
|
|
66
67
|
* @default ''
|
|
67
68
|
*/
|
|
68
69
|
this.label = '';
|
|
69
70
|
/**
|
|
70
|
-
*
|
|
71
|
+
* Indica si el switch está en el estado "encendido" (marcado/checked).
|
|
71
72
|
*
|
|
72
|
-
*
|
|
73
|
-
* -
|
|
74
|
-
* -
|
|
75
|
-
* -
|
|
73
|
+
* Cuando es `true`:
|
|
74
|
+
* - La pista se llena con el color `--primary`.
|
|
75
|
+
* - El control (thumb) crece de 16dp a 24dp y se desliza hacia el borde final (trailing).
|
|
76
|
+
* - El color del control cambia a `--on-primary`.
|
|
76
77
|
*
|
|
77
78
|
* @default false
|
|
78
79
|
*/
|
|
79
80
|
this.checked = false;
|
|
80
81
|
/**
|
|
81
|
-
*
|
|
82
|
+
* Cuando es `true`, el switch no es interactivo y se renderiza al 50% de opacidad.
|
|
82
83
|
*
|
|
83
84
|
* @default false
|
|
84
85
|
*/
|
|
85
86
|
this.disabled = false;
|
|
86
87
|
/**
|
|
87
|
-
*
|
|
88
|
+
* Cuando es `true`, renderiza glifos de iconos dentro del control (thumb).
|
|
88
89
|
*
|
|
89
|
-
*
|
|
90
|
-
* - Unchecked
|
|
91
|
-
* - Checked
|
|
90
|
+
* Utiliza ligaduras de Material Symbols:
|
|
91
|
+
* - Estado desmarcado (Unchecked): icono `close`.
|
|
92
|
+
* - Estado marcado (Checked): icono `check`.
|
|
92
93
|
*
|
|
93
|
-
*
|
|
94
|
+
* El tamaño del icono (16dp) se establece a través de la propiedad CSS `--_thumb`.
|
|
94
95
|
*
|
|
95
96
|
* @default false
|
|
96
97
|
*/
|
|
97
98
|
this.icon = false;
|
|
98
99
|
/**
|
|
99
|
-
*
|
|
100
|
+
* Reenviado al atributo nativo `<input name>` para participar en formularios.
|
|
100
101
|
*
|
|
101
102
|
* @default ''
|
|
102
103
|
*/
|
|
103
104
|
this.name = '';
|
|
104
105
|
/**
|
|
105
|
-
*
|
|
106
|
-
*
|
|
106
|
+
* Reenviado al atributo nativo `<input value>`.
|
|
107
|
+
* El valor enviado en un formulario cuando este switch está marcado.
|
|
107
108
|
*
|
|
108
109
|
* @default ''
|
|
109
110
|
*/
|
|
110
111
|
this.value = '';
|
|
112
|
+
this._internals = this.attachInternals();
|
|
111
113
|
}
|
|
112
114
|
/**
|
|
113
|
-
*
|
|
115
|
+
* Sincroniza `checked` y `disabled` de forma imperativa en el input nativo después del renderizado.
|
|
114
116
|
*
|
|
115
|
-
* @param changed -
|
|
117
|
+
* @param changed - Mapa de los nombres de las propiedades modificadas a sus valores anteriores.
|
|
116
118
|
*/
|
|
117
119
|
updated(changed) {
|
|
118
120
|
if (this._input) {
|
|
119
|
-
if (changed.has('checked'))
|
|
121
|
+
if (changed.has('checked')) {
|
|
120
122
|
this._input.checked = this.checked;
|
|
123
|
+
this._internals?.setFormValue?.(this.checked ? (this.value || 'on') : null);
|
|
124
|
+
}
|
|
121
125
|
if (changed.has('disabled'))
|
|
122
126
|
this._input.disabled = this.disabled;
|
|
123
127
|
}
|
|
124
128
|
}
|
|
125
129
|
/**
|
|
126
|
-
*
|
|
130
|
+
* Maneja el evento nativo `change` del input.
|
|
127
131
|
*
|
|
128
|
-
*
|
|
129
|
-
*
|
|
132
|
+
* Actualiza `this.checked` y vuelve a despachar un evento `'change'` compuesto
|
|
133
|
+
* para que burbujee a través de los límites del shadow DOM.
|
|
130
134
|
*
|
|
131
|
-
* @param e -
|
|
135
|
+
* @param e - El evento nativo `change` desde el `<input>` oculto.
|
|
132
136
|
*/
|
|
133
137
|
_onChange(e) {
|
|
134
138
|
this.checked = e.target.checked;
|
|
@@ -296,6 +300,14 @@ let MoniSwitch = class MoniSwitch extends MoniElement {
|
|
|
296
300
|
}
|
|
297
301
|
`
|
|
298
302
|
]; }
|
|
303
|
+
/**
|
|
304
|
+
* Renderiza el switch como un `<input type="checkbox">` oculto + pista visual mediante `<span>`.
|
|
305
|
+
*
|
|
306
|
+
* El input oculto ocupa espacio de diseño real (para el área de clic/hit area) pero tiene opacidad 0;
|
|
307
|
+
* el `<span>` proporciona la píldora visual y el control (thumb) (vía `::before`/`::after`).
|
|
308
|
+
* La vinculación `.checked` asegura que el estado del input en el DOM se mantenga sincronizado con
|
|
309
|
+
* `this.checked`.
|
|
310
|
+
*/
|
|
299
311
|
render() {
|
|
300
312
|
return html `<label class=${this.icon ? 'switch icon' : 'switch'} part="switch">
|
|
301
313
|
<input
|
|
@@ -7,35 +7,35 @@
|
|
|
7
7
|
import { MoniElement } from './_base/index.js';
|
|
8
8
|
import './moni-icon.js';
|
|
9
9
|
/**
|
|
10
|
-
* Material Design 3 Tab
|
|
10
|
+
* Componente Material Design 3 Tab (Pestaña).
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
* `<moni-tabs
|
|
14
|
-
*
|
|
12
|
+
* Un elemento interactivo de pestaña individual diseñado para ser colocado dentro de un
|
|
13
|
+
* contenedor `<moni-tabs>`. Las pestañas organizan el contenido en diferentes pantallas,
|
|
14
|
+
* conjuntos de datos y otras interacciones.
|
|
15
15
|
*
|
|
16
|
-
* **
|
|
16
|
+
* **Referencia a la especificación M3:** `m3-docs/components/tabs/specs.md`
|
|
17
17
|
*
|
|
18
|
-
* **
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* `vertical`
|
|
23
|
-
*
|
|
18
|
+
* **Diseño visual e interacción:**
|
|
19
|
+
* Internamente se renderiza como un elemento `<a>` para soportar el comportamiento nativo
|
|
20
|
+
* de enlace cuando se proporciona un `href`, pero se comporta visualmente como un botón de pestaña.
|
|
21
|
+
* Muestra una etiqueta de texto y un icono opcional de Material. Si el `<moni-tabs>` padre tiene el
|
|
22
|
+
* atributo `vertical` configurado, el diseño se ajusta automáticamente para apilar el icono
|
|
23
|
+
* encima del texto.
|
|
24
24
|
*
|
|
25
|
-
* **
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
25
|
+
* **Estado:**
|
|
26
|
+
* El atributo `active` resalta la pestaña, aplicando el color principal (primary) al
|
|
27
|
+
* texto y renderizando la línea indicadora activa (manejado vía CSS en el contenedor
|
|
28
|
+
* padre o mediante pseudo-elementos).
|
|
29
29
|
*
|
|
30
30
|
* @example
|
|
31
31
|
* ```html
|
|
32
32
|
* <moni-tabs>
|
|
33
|
-
* <moni-tab active icon="home" label="
|
|
34
|
-
* <moni-tab icon="settings" label="
|
|
33
|
+
* <moni-tab active icon="home" label="Inicio"></moni-tab>
|
|
34
|
+
* <moni-tab icon="settings" label="Ajustes" href="/settings"></moni-tab>
|
|
35
35
|
* </moni-tabs>
|
|
36
36
|
* ```
|
|
37
37
|
*
|
|
38
|
-
* @csspart tab -
|
|
38
|
+
* @csspart tab - El elemento `<a>` interno que actúa como botón de pestaña.
|
|
39
39
|
*/
|
|
40
40
|
export declare class MoniTab extends MoniElement {
|
|
41
41
|
active: boolean;
|
|
@@ -43,6 +43,14 @@ export declare class MoniTab extends MoniElement {
|
|
|
43
43
|
label: string;
|
|
44
44
|
href: string;
|
|
45
45
|
static styles: import("lit").CSSResult[];
|
|
46
|
+
/**
|
|
47
|
+
* Renderiza el botón de pestaña con un icono opcional y etiqueta.
|
|
48
|
+
*
|
|
49
|
+
* El botón de pestaña es un elemento `<a>` con `aria-selected` para
|
|
50
|
+
* cumplimiento WCAG. La clase `active` controla la transición de subrayado
|
|
51
|
+
* del indicador CSS (a través del pseudo-elemento `::before`). El `<moni-icon>`
|
|
52
|
+
* opcional se renderiza antes del texto de la etiqueta cuando se establece `icon`.
|
|
53
|
+
*/
|
|
46
54
|
render(): import("lit").TemplateResult<1>;
|
|
47
55
|
}
|
|
48
56
|
declare global {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"moni-tab.d.ts","sourceRoot":"","sources":["../../src/components/moni-tab.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,WAAW,EAAgB,MAAM,kBAAkB,CAAC;AAC7D,OAAO,gBAAgB,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBACa,OAAQ,SAAQ,WAAW;IACK,MAAM,UAAS;IAC9B,IAAI,SAAM;IACV,KAAK,SAAM;IACX,IAAI,SAAO;IAExC,OAAgB,MAAM,4BAuFpB;
|
|
1
|
+
{"version":3,"file":"moni-tab.d.ts","sourceRoot":"","sources":["../../src/components/moni-tab.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,WAAW,EAAgB,MAAM,kBAAkB,CAAC;AAC7D,OAAO,gBAAgB,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBACa,OAAQ,SAAQ,WAAW;IACK,MAAM,UAAS;IAC9B,IAAI,SAAM;IACV,KAAK,SAAM;IACX,IAAI,SAAO;IAExC,OAAgB,MAAM,4BAuFpB;IAEF;;;;;;;OAOG;IACM,MAAM;CAaf;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,UAAU,EAAE,OAAO,CAAC;KACpB;CACD;AAED,eAAe,OAAO,CAAC"}
|