@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,45 +14,45 @@ import { html, css } from 'lit';
|
|
|
14
14
|
import { customElement, property } from 'lit/decorators.js';
|
|
15
15
|
import { MoniElement, sharedStyles } from './_base/index.js';
|
|
16
16
|
/**
|
|
17
|
-
* Material Design 3 Expansion panel
|
|
17
|
+
* Componente Material Design 3 Expansion panel (Panel de expansión).
|
|
18
18
|
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
19
|
+
* Un envoltorio ligero alrededor de los elementos HTML nativos `<details>` y `<summary>`,
|
|
20
|
+
* estilizado de acuerdo con las pautas de superficie y elevación de M3.
|
|
21
|
+
* Los paneles de expansión contienen flujos de creación y permiten la edición ligera de un elemento.
|
|
22
22
|
*
|
|
23
|
-
* **
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
* `<details>`
|
|
27
|
-
*
|
|
28
|
-
* `::after`
|
|
23
|
+
* **Arquitectura visual:**
|
|
24
|
+
* El componente renderiza un elemento `<details>` con un `<summary>` que actúa
|
|
25
|
+
* como el encabezado expandible. El contenido del slot por defecto se coloca dentro de la
|
|
26
|
+
* etiqueta `<details>` (pero fuera del `<summary>`), ocultándose y mostrándose naturalmente
|
|
27
|
+
* según el comportamiento nativo. Se añade un icono `expand_more` de M3 mediante un
|
|
28
|
+
* pseudo-elemento CSS `::after` que rota cuando el panel está abierto.
|
|
29
29
|
*
|
|
30
|
-
* **
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
30
|
+
* **Uso:**
|
|
31
|
+
* Establezca el atributo `title` para un encabezado de texto simple, o use el slot `summary`
|
|
32
|
+
* para proyectar contenido enriquecido personalizado (como iconos o texto secundario) en el
|
|
33
|
+
* área del encabezado.
|
|
34
34
|
*
|
|
35
35
|
* @example
|
|
36
36
|
* ```html
|
|
37
|
-
* <!--
|
|
38
|
-
* <moni-expansion title="
|
|
39
|
-
* <p>
|
|
37
|
+
* <!-- Título de texto simple -->
|
|
38
|
+
* <moni-expansion title="Configuración Avanzada">
|
|
39
|
+
* <p>Habilite las características del modo de desarrollador aquí.</p>
|
|
40
40
|
* </moni-expansion>
|
|
41
41
|
*
|
|
42
|
-
* <!--
|
|
42
|
+
* <!-- Contenido de resumen enriquecido a través de slot -->
|
|
43
43
|
* <moni-expansion open>
|
|
44
44
|
* <div slot="summary" style="display: flex; gap: 8px;">
|
|
45
45
|
* <moni-icon>person</moni-icon>
|
|
46
|
-
* <span>Personal
|
|
46
|
+
* <span>Información Personal</span>
|
|
47
47
|
* </div>
|
|
48
48
|
* <form>
|
|
49
|
-
* <moni-text-field label="
|
|
49
|
+
* <moni-text-field label="Nombre"></moni-text-field>
|
|
50
50
|
* </form>
|
|
51
51
|
* </moni-expansion>
|
|
52
52
|
* ```
|
|
53
53
|
*
|
|
54
|
-
* @slot default -
|
|
55
|
-
* @slot summary -
|
|
54
|
+
* @slot default - El contenido del cuerpo del panel de expansión.
|
|
55
|
+
* @slot summary - Contenido personalizado del encabezado (sobrescribe el atributo `title`).
|
|
56
56
|
*/
|
|
57
57
|
let MoniExpansion = class MoniExpansion extends MoniElement {
|
|
58
58
|
constructor() {
|
|
@@ -106,6 +106,16 @@ let MoniExpansion = class MoniExpansion extends MoniElement {
|
|
|
106
106
|
}
|
|
107
107
|
`
|
|
108
108
|
]; }
|
|
109
|
+
/**
|
|
110
|
+
* Renderiza el panel de expansión utilizando el elemento nativo `<details>`.
|
|
111
|
+
*
|
|
112
|
+
* El atributo `open` en
|
|
113
|
+
* `:host` impulsa la rotación de la flecha indicadora CSS (`::after` en `summary`).
|
|
114
|
+
*
|
|
115
|
+
* **Estructura de slots:**
|
|
116
|
+
* - `[slot="summary"]` — la fila de encabezado siempre visible (título, iconos).
|
|
117
|
+
* - Slot por defecto — la región de contenido colapsable.
|
|
118
|
+
*/
|
|
109
119
|
render() {
|
|
110
120
|
return html `<details ?open=${this.open} part="expansion">
|
|
111
121
|
<summary part="summary">
|
|
@@ -8,41 +8,41 @@ import { MoniElement } from './_base/index.js';
|
|
|
8
8
|
import './moni-fab.js';
|
|
9
9
|
import './moni-icon.js';
|
|
10
10
|
/**
|
|
11
|
-
* Material Design 3 FAB Menu
|
|
11
|
+
* Componente Material Design 3 FAB Menu (Menú FAB).
|
|
12
12
|
*
|
|
13
|
-
*
|
|
14
|
-
* `<menu>`
|
|
15
|
-
*
|
|
13
|
+
* Un contenedor especializado que combina un disparador principal `<moni-fab>` con un
|
|
14
|
+
* `<menu>` de FABs secundarios. Permite ocultar múltiples acciones
|
|
15
|
+
* detrás de un solo Botón de Acción Flotante primario, reduciendo el desorden en la pantalla.
|
|
16
16
|
*
|
|
17
|
-
* **
|
|
17
|
+
* **Referencia de la especificación M3:** `m3-docs/components/floating-action-buttons/specs.md` (Menús FAB)
|
|
18
18
|
*
|
|
19
|
-
* **
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
19
|
+
* **Disparador y animación:**
|
|
20
|
+
* El componente enlaza el evento `click` del FAB disparador principal para alternar su
|
|
21
|
+
* estado interno `open`. Cuando `open=true`, los FABs secundarios anidados se escalan
|
|
22
|
+
* y aparecen mediante transiciones CSS. Los consumidores también pueden controlar el estado `open`
|
|
23
|
+
* programáticamente estableciendo el atributo.
|
|
24
24
|
*
|
|
25
|
-
* **
|
|
26
|
-
* -
|
|
27
|
-
*
|
|
28
|
-
* -
|
|
29
|
-
*
|
|
30
|
-
* -
|
|
31
|
-
*
|
|
25
|
+
* **Gestión del foco (Accesibilidad):**
|
|
26
|
+
* - Cuando el menú se abre, el foco se mueve automáticamente al primer elemento secundario
|
|
27
|
+
* enfocable (o permanece en el disparador si está vacío).
|
|
28
|
+
* - Mientras está abierto, la tecla `Tab` cicla el foco estrictamente dentro de los elementos del menú para
|
|
29
|
+
* evitar que el foco del teclado escape (trampa de foco).
|
|
30
|
+
* - Presionar `Escape` o hacer clic en cualquier lugar fuera del menú lo cierra y
|
|
31
|
+
* devuelve el foco al FAB disparador primario.
|
|
32
32
|
*
|
|
33
33
|
* @example
|
|
34
34
|
* ```html
|
|
35
|
-
* <!--
|
|
35
|
+
* <!-- Menú FAB en la parte inferior derecha que se abre hacia arriba -->
|
|
36
36
|
* <moni-fab-menu icon="add" color="tertiary" direction="up">
|
|
37
|
-
* <moni-fab size="small" icon="edit" label="
|
|
38
|
-
* <moni-fab size="small" icon="photo_camera" label="
|
|
37
|
+
* <moni-fab size="small" icon="edit" label="Borrador"></moni-fab>
|
|
38
|
+
* <moni-fab size="small" icon="photo_camera" label="Cámara"></moni-fab>
|
|
39
39
|
* </moni-fab-menu>
|
|
40
40
|
* ```
|
|
41
41
|
*
|
|
42
|
-
* @slot default -
|
|
42
|
+
* @slot default - Los elementos `<moni-fab>` secundarios que aparecen cuando está abierto.
|
|
43
43
|
*
|
|
44
|
-
* @csspart trigger -
|
|
45
|
-
* @csspart menu -
|
|
44
|
+
* @csspart trigger - El elemento disparador `<moni-fab>` primario.
|
|
45
|
+
* @csspart menu - El contenedor `<menu>` que contiene los elementos secundarios.
|
|
46
46
|
*/
|
|
47
47
|
export declare class MoniFabMenu extends MoniElement {
|
|
48
48
|
open: boolean;
|
|
@@ -55,17 +55,55 @@ export declare class MoniFabMenu extends MoniElement {
|
|
|
55
55
|
private _trigger;
|
|
56
56
|
private _menu;
|
|
57
57
|
private _previouslyFocused;
|
|
58
|
+
/**
|
|
59
|
+
* Wrapper estático para el manejador de clics globales.
|
|
60
|
+
* Conserva el contexto léxico `this` al ser inyectado/removido en `document`.
|
|
61
|
+
*/
|
|
58
62
|
private _onDocClick;
|
|
63
|
+
/**
|
|
64
|
+
* Wrapper estático para el manejador de teclado global.
|
|
65
|
+
* Facilita la limpieza del listener de Escape/Navegación al desmontar el componente.
|
|
66
|
+
*/
|
|
59
67
|
private _onDocKeydown;
|
|
68
|
+
/**
|
|
69
|
+
* Hook del ciclo de vida (Lit). Se ejecuta una sola vez tras el primer renderizado.
|
|
70
|
+
* Espera a que el Shadow DOM se materialice por completo y enlaza el evento nativo
|
|
71
|
+
* `click` directamente sobre el FAB (Floating Action Button) principal que acciona el menú.
|
|
72
|
+
*/
|
|
60
73
|
firstUpdated(): Promise<void>;
|
|
74
|
+
/**
|
|
75
|
+
* Limpieza rigurosa de memoria (Garbage Collection).
|
|
76
|
+
* Remueve absolutamente todos los listeners asíncronos (document y trigger local)
|
|
77
|
+
* para evitar colisiones de eventos fantasma y pérdidas de rendimiento (memory leaks).
|
|
78
|
+
*/
|
|
61
79
|
disconnectedCallback(): void;
|
|
62
80
|
updated(changed: Map<string, unknown>): void;
|
|
81
|
+
/**
|
|
82
|
+
* Alterna explícitamente el estado `open` del menú.
|
|
83
|
+
* Se dispara exclusivamente al interactuar física o focalmente con el FAB principal.
|
|
84
|
+
*/
|
|
63
85
|
private _onTriggerClick;
|
|
64
86
|
private _syncOpenState;
|
|
65
87
|
private _handleDocClick;
|
|
66
88
|
private _handleDocKeydown;
|
|
67
89
|
private _firstFocusableMenuItem;
|
|
68
90
|
static styles: import("lit").CSSResult[];
|
|
91
|
+
/**
|
|
92
|
+
* Renderiza el speed-dial FAB como un FAB disparador + menú colapsable de FABs de acción.
|
|
93
|
+
*
|
|
94
|
+
* **Patrón Speed-dial:**
|
|
95
|
+
* El FAB disparador siempre es visible. Cuando `open=true`, los elementos de acción en
|
|
96
|
+
* el slot por defecto se revelan con una animación en cascada. Los elementos se colapsan
|
|
97
|
+
* de nuevo con una cascada invertida.
|
|
98
|
+
*
|
|
99
|
+
* **Dirección de cascada:**
|
|
100
|
+
* Cuando `placement='bottom'`, los elementos se expanden hacia arriba (índice 0 en la parte inferior).
|
|
101
|
+
* Cuando `placement='top'`, los elementos se expanden hacia abajo.
|
|
102
|
+
*
|
|
103
|
+
* **`aria-expanded`:**
|
|
104
|
+
* Se establece en el botón disparador para comunicar el estado abierto/cerrado a los lectores de pantalla.
|
|
105
|
+
* Cada FAB de acción en el slot lleva `aria-label` que el consumidor debe proporcionar.
|
|
106
|
+
*/
|
|
69
107
|
render(): import("lit").TemplateResult<1>;
|
|
70
108
|
}
|
|
71
109
|
declare global {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"moni-fab-menu.d.ts","sourceRoot":"","sources":["../../src/components/moni-fab-menu.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,WAAW,EAAgB,MAAM,kBAAkB,CAAC;AAC7D,OAAO,eAAe,CAAC;AACvB,OAAO,gBAAgB,CAAC;AAGxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBACa,WAAY,SAAQ,WAAW;IACC,IAAI,UAAS;IAC5B,IAAI,SAAS;IAE1C,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAY;IAE9C,KAAK,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAa;IAEpE,KAAK,EAAE,SAAS,GAAG,QAAQ,CAAa;IAExC,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAQ;IAEnD,QAAQ,EACL,iBAAiB,GACjB,gBAAgB,GAChB,cAAc,GACd,aAAa,CAAqB;IAElB,OAAO,CAAC,QAAQ,CAAW;IAC1B,OAAO,CAAC,KAAK,CAAe;IAEhD,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,WAAW,CAA8C;IACjE,OAAO,CAAC,aAAa,CAAmD;
|
|
1
|
+
{"version":3,"file":"moni-fab-menu.d.ts","sourceRoot":"","sources":["../../src/components/moni-fab-menu.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,WAAW,EAAgB,MAAM,kBAAkB,CAAC;AAC7D,OAAO,eAAe,CAAC;AACvB,OAAO,gBAAgB,CAAC;AAGxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBACa,WAAY,SAAQ,WAAW;IACC,IAAI,UAAS;IAC5B,IAAI,SAAS;IAE1C,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAY;IAE9C,KAAK,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAa;IAEpE,KAAK,EAAE,SAAS,GAAG,QAAQ,CAAa;IAExC,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAQ;IAEnD,QAAQ,EACL,iBAAiB,GACjB,gBAAgB,GAChB,cAAc,GACd,aAAa,CAAqB;IAElB,OAAO,CAAC,QAAQ,CAAW;IAC1B,OAAO,CAAC,KAAK,CAAe;IAEhD,OAAO,CAAC,kBAAkB,CAA4B;IACtD;;;OAGG;IACH,OAAO,CAAC,WAAW,CAA8C;IACjE;;;OAGG;IACH,OAAO,CAAC,aAAa,CAAmD;IAExE;;;;OAIG;IACY,YAAY;IAQ3B;;;;OAIG;IACM,oBAAoB;IAOpB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAOrD;;;OAGG;IACH,OAAO,CAAC,eAAe,CAErB;IAEF,OAAO,CAAC,cAAc;IA0BtB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,uBAAuB;IAQ/B,OAAgB,MAAM,4BA8EpB;IAEF;;;;;;;;;;;;;;;OAeG;IACM,MAAM;CAef;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,eAAe,EAAE,WAAW,CAAC;KAC7B;CACD;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -16,41 +16,41 @@ import { MoniElement, sharedStyles } from './_base/index.js';
|
|
|
16
16
|
import './moni-fab.js';
|
|
17
17
|
import './moni-icon.js';
|
|
18
18
|
/**
|
|
19
|
-
* Material Design 3 FAB Menu
|
|
19
|
+
* Componente Material Design 3 FAB Menu (Menú FAB).
|
|
20
20
|
*
|
|
21
|
-
*
|
|
22
|
-
* `<menu>`
|
|
23
|
-
*
|
|
21
|
+
* Un contenedor especializado que combina un disparador principal `<moni-fab>` con un
|
|
22
|
+
* `<menu>` de FABs secundarios. Permite ocultar múltiples acciones
|
|
23
|
+
* detrás de un solo Botón de Acción Flotante primario, reduciendo el desorden en la pantalla.
|
|
24
24
|
*
|
|
25
|
-
* **
|
|
25
|
+
* **Referencia de la especificación M3:** `m3-docs/components/floating-action-buttons/specs.md` (Menús FAB)
|
|
26
26
|
*
|
|
27
|
-
* **
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
27
|
+
* **Disparador y animación:**
|
|
28
|
+
* El componente enlaza el evento `click` del FAB disparador principal para alternar su
|
|
29
|
+
* estado interno `open`. Cuando `open=true`, los FABs secundarios anidados se escalan
|
|
30
|
+
* y aparecen mediante transiciones CSS. Los consumidores también pueden controlar el estado `open`
|
|
31
|
+
* programáticamente estableciendo el atributo.
|
|
32
32
|
*
|
|
33
|
-
* **
|
|
34
|
-
* -
|
|
35
|
-
*
|
|
36
|
-
* -
|
|
37
|
-
*
|
|
38
|
-
* -
|
|
39
|
-
*
|
|
33
|
+
* **Gestión del foco (Accesibilidad):**
|
|
34
|
+
* - Cuando el menú se abre, el foco se mueve automáticamente al primer elemento secundario
|
|
35
|
+
* enfocable (o permanece en el disparador si está vacío).
|
|
36
|
+
* - Mientras está abierto, la tecla `Tab` cicla el foco estrictamente dentro de los elementos del menú para
|
|
37
|
+
* evitar que el foco del teclado escape (trampa de foco).
|
|
38
|
+
* - Presionar `Escape` o hacer clic en cualquier lugar fuera del menú lo cierra y
|
|
39
|
+
* devuelve el foco al FAB disparador primario.
|
|
40
40
|
*
|
|
41
41
|
* @example
|
|
42
42
|
* ```html
|
|
43
|
-
* <!--
|
|
43
|
+
* <!-- Menú FAB en la parte inferior derecha que se abre hacia arriba -->
|
|
44
44
|
* <moni-fab-menu icon="add" color="tertiary" direction="up">
|
|
45
|
-
* <moni-fab size="small" icon="edit" label="
|
|
46
|
-
* <moni-fab size="small" icon="photo_camera" label="
|
|
45
|
+
* <moni-fab size="small" icon="edit" label="Borrador"></moni-fab>
|
|
46
|
+
* <moni-fab size="small" icon="photo_camera" label="Cámara"></moni-fab>
|
|
47
47
|
* </moni-fab-menu>
|
|
48
48
|
* ```
|
|
49
49
|
*
|
|
50
|
-
* @slot default -
|
|
50
|
+
* @slot default - Los elementos `<moni-fab>` secundarios que aparecen cuando está abierto.
|
|
51
51
|
*
|
|
52
|
-
* @csspart trigger -
|
|
53
|
-
* @csspart menu -
|
|
52
|
+
* @csspart trigger - El elemento disparador `<moni-fab>` primario.
|
|
53
|
+
* @csspart menu - El contenedor `<menu>` que contiene los elementos secundarios.
|
|
54
54
|
*/
|
|
55
55
|
let MoniFabMenu = class MoniFabMenu extends MoniElement {
|
|
56
56
|
constructor() {
|
|
@@ -63,19 +63,41 @@ let MoniFabMenu = class MoniFabMenu extends MoniElement {
|
|
|
63
63
|
this.direction = 'up';
|
|
64
64
|
this.position = 'bottom-trailing';
|
|
65
65
|
this._previouslyFocused = null;
|
|
66
|
+
/**
|
|
67
|
+
* Wrapper estático para el manejador de clics globales.
|
|
68
|
+
* Conserva el contexto léxico `this` al ser inyectado/removido en `document`.
|
|
69
|
+
*/
|
|
66
70
|
this._onDocClick = (e) => this._handleDocClick(e);
|
|
71
|
+
/**
|
|
72
|
+
* Wrapper estático para el manejador de teclado global.
|
|
73
|
+
* Facilita la limpieza del listener de Escape/Navegación al desmontar el componente.
|
|
74
|
+
*/
|
|
67
75
|
this._onDocKeydown = (e) => this._handleDocKeydown(e);
|
|
76
|
+
/**
|
|
77
|
+
* Alterna explícitamente el estado `open` del menú.
|
|
78
|
+
* Se dispara exclusivamente al interactuar física o focalmente con el FAB principal.
|
|
79
|
+
*/
|
|
68
80
|
this._onTriggerClick = () => {
|
|
69
81
|
this.open = !this.open;
|
|
70
82
|
};
|
|
71
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* Hook del ciclo de vida (Lit). Se ejecuta una sola vez tras el primer renderizado.
|
|
86
|
+
* Espera a que el Shadow DOM se materialice por completo y enlaza el evento nativo
|
|
87
|
+
* `click` directamente sobre el FAB (Floating Action Button) principal que acciona el menú.
|
|
88
|
+
*/
|
|
72
89
|
async firstUpdated() {
|
|
73
|
-
//
|
|
90
|
+
// Esperar a que todos los hijos terminen de renderizarse antes de enlazar los detectores
|
|
74
91
|
await this.updateComplete;
|
|
75
92
|
if (this._trigger) {
|
|
76
93
|
this._trigger.addEventListener('click', this._onTriggerClick);
|
|
77
94
|
}
|
|
78
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* Limpieza rigurosa de memoria (Garbage Collection).
|
|
98
|
+
* Remueve absolutamente todos los listeners asíncronos (document y trigger local)
|
|
99
|
+
* para evitar colisiones de eventos fantasma y pérdidas de rendimiento (memory leaks).
|
|
100
|
+
*/
|
|
79
101
|
disconnectedCallback() {
|
|
80
102
|
super.disconnectedCallback();
|
|
81
103
|
this._trigger?.removeEventListener('click', this._onTriggerClick);
|
|
@@ -90,11 +112,11 @@ let MoniFabMenu = class MoniFabMenu extends MoniElement {
|
|
|
90
112
|
}
|
|
91
113
|
_syncOpenState() {
|
|
92
114
|
if (this.open) {
|
|
93
|
-
//
|
|
115
|
+
// Guarda el foco actual para poder restaurarlo al cerrar.
|
|
94
116
|
this._previouslyFocused = this.getRootNode()
|
|
95
117
|
.activeElement;
|
|
96
|
-
//
|
|
97
|
-
//
|
|
118
|
+
// Mueve el foco al primer elemento enfocable en el menú, o al
|
|
119
|
+
// disparador como respaldo (según el patrón de menú WAI-ARIA).
|
|
98
120
|
const first = this._firstFocusableMenuItem();
|
|
99
121
|
if (first) {
|
|
100
122
|
first.focus();
|
|
@@ -102,12 +124,12 @@ let MoniFabMenu = class MoniFabMenu extends MoniElement {
|
|
|
102
124
|
else {
|
|
103
125
|
this._trigger?.focus();
|
|
104
126
|
}
|
|
105
|
-
//
|
|
127
|
+
// Instala detectores en el documento para clic fuera y Escape.
|
|
106
128
|
document.addEventListener('click', this._onDocClick, true);
|
|
107
129
|
document.addEventListener('keydown', this._onDocKeydown, true);
|
|
108
130
|
}
|
|
109
131
|
else {
|
|
110
|
-
//
|
|
132
|
+
// Restaura el foco al disparador (o al elemento previamente enfocado).
|
|
111
133
|
const restore = this._previouslyFocused ?? this._trigger;
|
|
112
134
|
restore?.focus();
|
|
113
135
|
this._previouslyFocused = null;
|
|
@@ -192,7 +214,7 @@ let MoniFabMenu = class MoniFabMenu extends MoniElement {
|
|
|
192
214
|
transform: scale(1);
|
|
193
215
|
}
|
|
194
216
|
|
|
195
|
-
/*
|
|
217
|
+
/* Colocación direccional relativa al disparador */
|
|
196
218
|
:host([direction='up']) .fab-menu {
|
|
197
219
|
inset: auto auto calc(100% + 0.5rem) 0;
|
|
198
220
|
flex-direction: column-reverse;
|
|
@@ -216,9 +238,25 @@ let MoniFabMenu = class MoniFabMenu extends MoniElement {
|
|
|
216
238
|
}
|
|
217
239
|
`
|
|
218
240
|
]; }
|
|
241
|
+
/**
|
|
242
|
+
* Renderiza el speed-dial FAB como un FAB disparador + menú colapsable de FABs de acción.
|
|
243
|
+
*
|
|
244
|
+
* **Patrón Speed-dial:**
|
|
245
|
+
* El FAB disparador siempre es visible. Cuando `open=true`, los elementos de acción en
|
|
246
|
+
* el slot por defecto se revelan con una animación en cascada. Los elementos se colapsan
|
|
247
|
+
* de nuevo con una cascada invertida.
|
|
248
|
+
*
|
|
249
|
+
* **Dirección de cascada:**
|
|
250
|
+
* Cuando `placement='bottom'`, los elementos se expanden hacia arriba (índice 0 en la parte inferior).
|
|
251
|
+
* Cuando `placement='top'`, los elementos se expanden hacia abajo.
|
|
252
|
+
*
|
|
253
|
+
* **`aria-expanded`:**
|
|
254
|
+
* Se establece en el botón disparador para comunicar el estado abierto/cerrado a los lectores de pantalla.
|
|
255
|
+
* Cada FAB de acción en el slot lleva `aria-label` que el consumidor debe proporcionar.
|
|
256
|
+
*/
|
|
219
257
|
render() {
|
|
220
258
|
return html `<div class="wrap">
|
|
221
|
-
<!-- div role=menu
|
|
259
|
+
<!-- div role=menu permite cualquier contenido en el slot (no solo <li>) -->
|
|
222
260
|
<div class="fab-menu" role="menu" part="menu">
|
|
223
261
|
<slot></slot>
|
|
224
262
|
</div>
|
|
@@ -7,62 +7,120 @@
|
|
|
7
7
|
import { MoniElement } from './_base/index.js';
|
|
8
8
|
import './moni-icon.js';
|
|
9
9
|
/**
|
|
10
|
-
* Material Design 3 Floating Action Button (FAB)
|
|
10
|
+
* Componente Material Design 3 Floating Action Button (FAB).
|
|
11
11
|
*
|
|
12
|
-
* FABs
|
|
13
|
-
*
|
|
14
|
-
*
|
|
12
|
+
* Los FABs representan la acción principal, o más común, en una pantalla. Aparecen
|
|
13
|
+
* frente a todo el contenido de la pantalla, típicamente como una forma circular con un icono en
|
|
14
|
+
* su centro.
|
|
15
15
|
*
|
|
16
|
-
* **
|
|
16
|
+
* **Referencia de la especificación M3:** `m3-docs/components/floating-action-buttons/specs.md`
|
|
17
17
|
*
|
|
18
|
-
* **
|
|
19
|
-
* - `size="small"`
|
|
20
|
-
*
|
|
21
|
-
* - `shape="circle"`
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
* - `color="surface"`
|
|
25
|
-
*
|
|
18
|
+
* **Actualizaciones y Deprecaciones de M3 Expressive (Mayo 2025):**
|
|
19
|
+
* - `size="small"` **ya no es recomendado** por M3. Use `medium` (40dp o 56dp)
|
|
20
|
+
* o `large` (96dp). Deprecado en v0.3.1; se eliminará en v1.0.
|
|
21
|
+
* - `shape="circle"` **no es parte de M3**. Los FABs M3 usan una forma `rounded` (redondeada) con un
|
|
22
|
+
* radio de esquina de 16dp (que se transforma a un radio `full` al pasar el cursor/enfocar).
|
|
23
|
+
* Deprecado en v0.3.1; se eliminará en v1.0.
|
|
24
|
+
* - `color="surface"` **ya no es recomendado**. Use `primary`, `secondary`,
|
|
25
|
+
* o `tertiary` para asegurar un mapeo de color adecuado al tema M3.
|
|
26
26
|
*
|
|
27
|
-
* **
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
27
|
+
* **FABs Extendidos:**
|
|
28
|
+
* Cuando `extended` es true, el FAB muestra una etiqueta de texto junto al icono.
|
|
29
|
+
* Los FABs extendidos son más anchos y se usan típicamente cuando la acción necesita texto explícito
|
|
30
|
+
* para ser clara. El atributo `expanded` fuerza al FAB a su ancho extendido completo,
|
|
31
|
+
* útil para animar entre los estados estándar y extendido al desplazarse.
|
|
32
32
|
*
|
|
33
|
-
* **
|
|
34
|
-
*
|
|
35
|
-
* (
|
|
33
|
+
* **Posicionamiento:**
|
|
34
|
+
* El atributo `position` aplica un posicionamiento absoluto/fijo predefinido
|
|
35
|
+
* (ej. `bottom-trailing`), encajando el FAB en las esquinas estándar de la pantalla.
|
|
36
36
|
*
|
|
37
37
|
* @example
|
|
38
38
|
* ```html
|
|
39
|
-
* <!--
|
|
39
|
+
* <!-- FAB primario estándar -->
|
|
40
40
|
* <moni-fab icon="edit"></moni-fab>
|
|
41
41
|
*
|
|
42
|
-
* <!--
|
|
43
|
-
* <moni-fab color="tertiary" extended icon="add" label="
|
|
42
|
+
* <!-- FAB terciario extendido -->
|
|
43
|
+
* <moni-fab color="tertiary" extended icon="add" label="Nueva tarea"></moni-fab>
|
|
44
44
|
*
|
|
45
|
-
* <!--
|
|
45
|
+
* <!-- FAB posicionado -->
|
|
46
46
|
* <moni-fab position="bottom-trailing" icon="navigation"></moni-fab>
|
|
47
47
|
* ```
|
|
48
48
|
*
|
|
49
|
-
* @csspart button -
|
|
50
|
-
* @csspart icon -
|
|
51
|
-
* @csspart label -
|
|
49
|
+
* @csspart button - El elemento `<button>` interno.
|
|
50
|
+
* @csspart icon - El contenedor para el icono.
|
|
51
|
+
* @csspart label - La etiqueta de texto (solo visible cuando está extendido).
|
|
52
52
|
*/
|
|
53
53
|
export declare class MoniFab extends MoniElement {
|
|
54
54
|
private static _deprecationWarned;
|
|
55
|
+
/**
|
|
56
|
+
* Define las dimensiones del FAB.
|
|
57
|
+
* `small` está deprecado en M3 Expressive.
|
|
58
|
+
* @type {'small' | 'medium' | 'large'}
|
|
59
|
+
* @default 'medium'
|
|
60
|
+
*/
|
|
55
61
|
size: 'small' | 'medium' | 'large';
|
|
62
|
+
/**
|
|
63
|
+
* Mapeo de color semántico del FAB.
|
|
64
|
+
* `surface` está deprecado en M3.
|
|
65
|
+
* @type {'primary' | 'secondary' | 'tertiary' | 'surface'}
|
|
66
|
+
* @default 'primary'
|
|
67
|
+
*/
|
|
56
68
|
color: 'primary' | 'secondary' | 'tertiary' | 'surface';
|
|
69
|
+
/**
|
|
70
|
+
* Forma de las esquinas del FAB.
|
|
71
|
+
* `circle` está deprecado en M3 (los FABs deben ser cuadrados redondeados).
|
|
72
|
+
* @type {'rounded' | 'circle'}
|
|
73
|
+
* @default 'rounded'
|
|
74
|
+
*/
|
|
57
75
|
shape: 'rounded' | 'circle';
|
|
76
|
+
/**
|
|
77
|
+
* Alias heredado de `expanded`. Indica si el FAB muestra una etiqueta de texto.
|
|
78
|
+
* @type {boolean}
|
|
79
|
+
*/
|
|
58
80
|
extended: boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Si es true, expande el FAB para mostrar su etiqueta de texto junto al icono.
|
|
83
|
+
* @type {boolean}
|
|
84
|
+
*/
|
|
59
85
|
expanded: boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Deshabilita el FAB.
|
|
88
|
+
* @type {boolean}
|
|
89
|
+
*/
|
|
60
90
|
disabled: boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Nombre del icono (Material Symbols) mostrado dentro del FAB.
|
|
93
|
+
* @type {string}
|
|
94
|
+
* @default 'add'
|
|
95
|
+
*/
|
|
61
96
|
icon: string;
|
|
97
|
+
/**
|
|
98
|
+
* Etiqueta de texto mostrada cuando el FAB se expande/extiende.
|
|
99
|
+
* @type {string}
|
|
100
|
+
*/
|
|
62
101
|
label: string;
|
|
102
|
+
/**
|
|
103
|
+
* Fija la posición del FAB relativa a los bordes de la pantalla.
|
|
104
|
+
* @type {'bottom-trailing' | 'bottom-leading' | 'top-trailing' | 'top-leading'}
|
|
105
|
+
* @default 'bottom-trailing'
|
|
106
|
+
*/
|
|
63
107
|
position: 'bottom-trailing' | 'bottom-leading' | 'top-trailing' | 'top-leading';
|
|
64
108
|
connectedCallback(): void;
|
|
65
109
|
static styles: import("lit").CSSResult[];
|
|
110
|
+
/**
|
|
111
|
+
* Renderiza el botón FAB con su icono, etiqueta extendida opcional, y estado de carga.
|
|
112
|
+
*
|
|
113
|
+
* **Composición de clases:**
|
|
114
|
+
* - `'fab'` — estilos base del FAB (redondo, 56dp, elevado).
|
|
115
|
+
* - `this.size` (`'small'` = 40dp, `'large'` = 96dp, por defecto = 56dp).
|
|
116
|
+
* - `this.variant` — esquema de color (`'primary'`, `'secondary'`, `'tertiary'`, `'surface'`).
|
|
117
|
+
* - `'extended'` — se añade cuando se establece `label`; ensancha el FAB en forma de píldora
|
|
118
|
+
* y revela el texto de la etiqueta con una transición CSS `max-width`.
|
|
119
|
+
*
|
|
120
|
+
* **Estado de carga:**
|
|
121
|
+
* Cuando `loading=true`, un spinner `<moni-progress>` reemplaza el icono. La etiqueta
|
|
122
|
+
* permanece visible para mantener el ancho del FAB extendido y prevenir saltos de diseño.
|
|
123
|
+
*/
|
|
66
124
|
render(): import("lit").TemplateResult<1>;
|
|
67
125
|
}
|
|
68
126
|
declare global {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"moni-fab.d.ts","sourceRoot":"","sources":["../../src/components/moni-fab.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,WAAW,EAAgB,MAAM,kBAAkB,CAAC;AAC7D,OAAO,gBAAgB,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,qBACa,OAAQ,SAAQ,WAAW;IACvC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAS;
|
|
1
|
+
{"version":3,"file":"moni-fab.d.ts","sourceRoot":"","sources":["../../src/components/moni-fab.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,WAAW,EAAgB,MAAM,kBAAkB,CAAC;AAC7D,OAAO,gBAAgB,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,qBACa,OAAQ,SAAQ,WAAW;IACvC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAS;IAE1C;;;;;OAKG;IAEH,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAY;IAE9C;;;;;OAKG;IAEH,KAAK,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAa;IAEpE;;;;;OAKG;IAEH,KAAK,EAAE,SAAS,GAAG,QAAQ,CAAa;IAExC;;;OAGG;IACyC,QAAQ,UAAS;IAE7D;;;OAGG;IACyC,QAAQ,UAAS;IAE7D;;;OAGG;IACyC,QAAQ,UAAS;IAE7D;;;;OAIG;IAC0B,IAAI,SAAS;IAE1C;;;OAGG;IAC0B,KAAK,SAAM;IAExC;;;;OAIG;IAEH,QAAQ,EACL,iBAAiB,GACjB,gBAAgB,GAChB,cAAc,GACd,aAAa,CAAqB;IAE5B,iBAAiB,IAAI,IAAI;IAkBlC,OAAgB,MAAM,4BA6JpB;IAEF;;;;;;;;;;;;;OAaG;IACM,MAAM;CAyBf;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,UAAU,EAAE,OAAO,CAAC;KACpB;CACD;AAED,eAAe,OAAO,CAAC"}
|