@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
|
@@ -6,45 +6,55 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { MoniElement } from './_base/index.js';
|
|
8
8
|
/**
|
|
9
|
-
* Material Design 3 List
|
|
9
|
+
* Componente Material Design 3 List (Lista).
|
|
10
10
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
11
|
+
* Las listas son índices continuos y verticales de texto o imágenes. Son
|
|
12
|
+
* elementos contenedores que proporcionan agrupación estructural y opcionalmente
|
|
13
|
+
* líneas divisorias para los hijos `<moni-list-item>`.
|
|
14
14
|
*
|
|
15
|
-
* **
|
|
15
|
+
* **Referencia de la especificación M3:** `m3-docs/components/lists/specs.md`
|
|
16
16
|
*
|
|
17
|
-
* **
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
17
|
+
* **Rol de contenedor:**
|
|
18
|
+
* La lista en sí no aplica relleno (padding) ni márgenes a sus hijos. El espaciado
|
|
19
|
+
* y el relleno interno están controlados enteramente por los propios elementos `<moni-list-item>`
|
|
20
|
+
* para asegurar áreas táctiles (hit targets) y alineación correctas.
|
|
21
21
|
*
|
|
22
|
-
* **
|
|
23
|
-
* - `default` (
|
|
24
|
-
* - `border` —
|
|
25
|
-
*
|
|
22
|
+
* **Variantes:**
|
|
23
|
+
* - `default` (cadena vacía) — Un contenedor de lista limpio y sin bordes.
|
|
24
|
+
* - `border` — Añade un borde inferior a la lista y muestra divisores
|
|
25
|
+
* horizontales (color `outline-variant`) entre los elementos de la lista.
|
|
26
26
|
*
|
|
27
27
|
* @example
|
|
28
28
|
* ```html
|
|
29
|
-
* <!--
|
|
29
|
+
* <!-- Lista estándar -->
|
|
30
30
|
* <moni-list>
|
|
31
|
-
* <moni-list-item headline="
|
|
32
|
-
* <moni-list-item headline="
|
|
31
|
+
* <moni-list-item headline="Elemento 1"></moni-list-item>
|
|
32
|
+
* <moni-list-item headline="Elemento 2"></moni-list-item>
|
|
33
33
|
* </moni-list>
|
|
34
34
|
*
|
|
35
|
-
* <!--
|
|
35
|
+
* <!-- Lista con divisores y elementos redondeados -->
|
|
36
36
|
* <moni-list variant="border" rounded>
|
|
37
|
-
* <moni-list-item icon="inbox" headline="
|
|
38
|
-
* <moni-list-item icon="send" headline="
|
|
37
|
+
* <moni-list-item icon="inbox" headline="Bandeja de entrada"></moni-list-item>
|
|
38
|
+
* <moni-list-item icon="send" headline="Enviados"></moni-list-item>
|
|
39
39
|
* </moni-list>
|
|
40
40
|
* ```
|
|
41
41
|
*
|
|
42
|
-
* @slot default - `<moni-list-item
|
|
42
|
+
* @slot default - Elementos `<moni-list-item>`.
|
|
43
43
|
*/
|
|
44
44
|
export declare class MoniList extends MoniElement {
|
|
45
45
|
variant: '' | 'border';
|
|
46
46
|
rounded: boolean;
|
|
47
47
|
static styles: import("lit").CSSResult[];
|
|
48
|
+
/**
|
|
49
|
+
* Renderiza el contenedor de la lista como un elemento semánticamente apropiado.
|
|
50
|
+
*
|
|
51
|
+
* El elemento raíz por defecto es `<ul>` (lista desordenada). Cuando `ordered=true`,
|
|
52
|
+
* cambia a `<ol>` para secuencias numeradas. Para listas de navegación, el
|
|
53
|
+
* consumidor debe usar `role="navigation"` en el elemento host o establecer `as="nav"`.
|
|
54
|
+
* Los hijos `<moni-list-item>` en el slot reciben su `tabindex` y rol ARIA
|
|
55
|
+
* de la implementación de su propio componente.
|
|
56
|
+
*/
|
|
57
|
+
private _handleSlotChange;
|
|
48
58
|
render(): import("lit").TemplateResult<1>;
|
|
49
59
|
}
|
|
50
60
|
declare global {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"moni-list.d.ts","sourceRoot":"","sources":["../../src/components/moni-list.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,WAAW,EAAgB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"moni-list.d.ts","sourceRoot":"","sources":["../../src/components/moni-list.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,WAAW,EAAgB,MAAM,kBAAkB,CAAC;AAG7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,qBACa,QAAS,SAAQ,WAAW;IACX,OAAO,EAAE,EAAE,GAAG,QAAQ,CAAM;IACb,OAAO,UAAS;IAE5D,OAAgB,MAAM,4BAkBpB;IAEF;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IAMhB,MAAM;CAGf;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,WAAW,EAAE,QAAQ,CAAC;KACtB;CACD;AAED,eAAe,QAAQ,CAAC"}
|
|
@@ -13,41 +13,42 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
13
13
|
import { html, css } from 'lit';
|
|
14
14
|
import { customElement, property } from 'lit/decorators.js';
|
|
15
15
|
import { MoniElement, sharedStyles } from './_base/index.js';
|
|
16
|
+
import { emitMoniEvent } from '../utils/event-emitter.js';
|
|
16
17
|
/**
|
|
17
|
-
* Material Design 3 List
|
|
18
|
+
* Componente Material Design 3 List (Lista).
|
|
18
19
|
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
20
|
+
* Las listas son índices continuos y verticales de texto o imágenes. Son
|
|
21
|
+
* elementos contenedores que proporcionan agrupación estructural y opcionalmente
|
|
22
|
+
* líneas divisorias para los hijos `<moni-list-item>`.
|
|
22
23
|
*
|
|
23
|
-
* **
|
|
24
|
+
* **Referencia de la especificación M3:** `m3-docs/components/lists/specs.md`
|
|
24
25
|
*
|
|
25
|
-
* **
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
26
|
+
* **Rol de contenedor:**
|
|
27
|
+
* La lista en sí no aplica relleno (padding) ni márgenes a sus hijos. El espaciado
|
|
28
|
+
* y el relleno interno están controlados enteramente por los propios elementos `<moni-list-item>`
|
|
29
|
+
* para asegurar áreas táctiles (hit targets) y alineación correctas.
|
|
29
30
|
*
|
|
30
|
-
* **
|
|
31
|
-
* - `default` (
|
|
32
|
-
* - `border` —
|
|
33
|
-
*
|
|
31
|
+
* **Variantes:**
|
|
32
|
+
* - `default` (cadena vacía) — Un contenedor de lista limpio y sin bordes.
|
|
33
|
+
* - `border` — Añade un borde inferior a la lista y muestra divisores
|
|
34
|
+
* horizontales (color `outline-variant`) entre los elementos de la lista.
|
|
34
35
|
*
|
|
35
36
|
* @example
|
|
36
37
|
* ```html
|
|
37
|
-
* <!--
|
|
38
|
+
* <!-- Lista estándar -->
|
|
38
39
|
* <moni-list>
|
|
39
|
-
* <moni-list-item headline="
|
|
40
|
-
* <moni-list-item headline="
|
|
40
|
+
* <moni-list-item headline="Elemento 1"></moni-list-item>
|
|
41
|
+
* <moni-list-item headline="Elemento 2"></moni-list-item>
|
|
41
42
|
* </moni-list>
|
|
42
43
|
*
|
|
43
|
-
* <!--
|
|
44
|
+
* <!-- Lista con divisores y elementos redondeados -->
|
|
44
45
|
* <moni-list variant="border" rounded>
|
|
45
|
-
* <moni-list-item icon="inbox" headline="
|
|
46
|
-
* <moni-list-item icon="send" headline="
|
|
46
|
+
* <moni-list-item icon="inbox" headline="Bandeja de entrada"></moni-list-item>
|
|
47
|
+
* <moni-list-item icon="send" headline="Enviados"></moni-list-item>
|
|
47
48
|
* </moni-list>
|
|
48
49
|
* ```
|
|
49
50
|
*
|
|
50
|
-
* @slot default - `<moni-list-item
|
|
51
|
+
* @slot default - Elementos `<moni-list-item>`.
|
|
51
52
|
*/
|
|
52
53
|
let MoniList = class MoniList extends MoniElement {
|
|
53
54
|
constructor() {
|
|
@@ -74,8 +75,22 @@ let MoniList = class MoniList extends MoniElement {
|
|
|
74
75
|
}
|
|
75
76
|
`
|
|
76
77
|
]; }
|
|
78
|
+
/**
|
|
79
|
+
* Renderiza el contenedor de la lista como un elemento semánticamente apropiado.
|
|
80
|
+
*
|
|
81
|
+
* El elemento raíz por defecto es `<ul>` (lista desordenada). Cuando `ordered=true`,
|
|
82
|
+
* cambia a `<ol>` para secuencias numeradas. Para listas de navegación, el
|
|
83
|
+
* consumidor debe usar `role="navigation"` en el elemento host o establecer `as="nav"`.
|
|
84
|
+
* Los hijos `<moni-list-item>` en el slot reciben su `tabindex` y rol ARIA
|
|
85
|
+
* de la implementación de su propio componente.
|
|
86
|
+
*/
|
|
87
|
+
_handleSlotChange(e) {
|
|
88
|
+
const slot = e.target;
|
|
89
|
+
const nodes = slot.assignedNodes({ flatten: true }).filter(n => n.nodeType === Node.ELEMENT_NODE);
|
|
90
|
+
emitMoniEvent(this, 'moni-slot-items-changed', { detail: { nodes } });
|
|
91
|
+
}
|
|
77
92
|
render() {
|
|
78
|
-
return html `<slot></slot>`;
|
|
93
|
+
return html `<slot @slotchange=${this._handleSlotChange}></slot>`;
|
|
79
94
|
}
|
|
80
95
|
};
|
|
81
96
|
__decorate([
|
|
@@ -6,48 +6,80 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { MoniElement } from './_base/index.js';
|
|
8
8
|
/**
|
|
9
|
-
* Material Design 3 Loading Indicator
|
|
9
|
+
* Componente Material Design 3 Loading Indicator (Indicador de carga).
|
|
10
10
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
11
|
+
* Un indicador de carga indeterminado que representa visualmente un tiempo de espera
|
|
12
|
+
* no especificado. A diferencia de los spinners circulares estándar, este componente usa una animación
|
|
13
|
+
* de polígono cambiante que cambia entre formas (círculo, cuadrado redondeado, etc.)
|
|
14
|
+
* de acuerdo con las especificaciones de movimiento de alta fidelidad M3 Expressive.
|
|
15
15
|
*
|
|
16
|
-
* **
|
|
17
|
-
* - `uncontained` (
|
|
18
|
-
*
|
|
19
|
-
* - `contained` —
|
|
20
|
-
*
|
|
21
|
-
*
|
|
16
|
+
* **Variantes:**
|
|
17
|
+
* - `uncontained` (por defecto) — Una forma cambiante independiente que hereda el color
|
|
18
|
+
* de su contexto de texto (o por defecto es `primary`).
|
|
19
|
+
* - `contained` — La forma cambiante se coloca dentro de un contenedor circular
|
|
20
|
+
* con un color de fondo distinto, útil para estados de carga de alto contraste
|
|
21
|
+
* o superposición de imágenes.
|
|
22
22
|
*
|
|
23
|
-
* **
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* roles (`role="progressbar"`)
|
|
28
|
-
*
|
|
23
|
+
* **Animación y Accesibilidad:**
|
|
24
|
+
* El componente gestiona sus propias etiquetas `<animate>` SVG. La animación se
|
|
25
|
+
* inicia/detiene automáticamente a través de `connectedCallback`/`disconnectedCallback`
|
|
26
|
+
* para ahorrar ciclos de CPU cuando el elemento está fuera de la pantalla. Aplica los atributos de valor
|
|
27
|
+
* y roles ARIA estándar (`role="progressbar"`) para asegurar que los lectores de pantalla
|
|
28
|
+
* lo identifiquen correctamente como un estado de carga indeterminado.
|
|
29
29
|
*
|
|
30
30
|
* @example
|
|
31
31
|
* ```html
|
|
32
|
-
* <!--
|
|
32
|
+
* <!-- Indicador no contenido -->
|
|
33
33
|
* <moni-loading-indicator></moni-loading-indicator>
|
|
34
34
|
*
|
|
35
|
-
* <!--
|
|
35
|
+
* <!-- Indicador contenido (el contenedor por defecto es secondary-container) -->
|
|
36
36
|
* <moni-loading-indicator variant="contained"></moni-loading-indicator>
|
|
37
37
|
* ```
|
|
38
38
|
*
|
|
39
|
-
* @csspart container -
|
|
40
|
-
* @csspart svg -
|
|
41
|
-
* @csspart shape -
|
|
39
|
+
* @csspart container - El envoltorio exterior `.container`.
|
|
40
|
+
* @csspart svg - El elemento `<svg>` interior.
|
|
41
|
+
* @csspart shape - El elemento `<path>` que se transforma.
|
|
42
42
|
*/
|
|
43
43
|
export declare class MoniLoadingIndicator extends MoniElement {
|
|
44
44
|
variant: 'uncontained' | 'contained';
|
|
45
45
|
private _container?;
|
|
46
|
+
/**
|
|
47
|
+
* Hook de inicialización (Lit).
|
|
48
|
+
* Configura roles ARIA (progressbar) por defecto y asegura
|
|
49
|
+
* el encendido inicial de la animación infinita en el Shadow DOM.
|
|
50
|
+
*/
|
|
46
51
|
connectedCallback(): void;
|
|
52
|
+
/**
|
|
53
|
+
* Hook de destrucción (Lit).
|
|
54
|
+
* Apaga formalmente la animación CSS (`.animate`) para frenar el GPU repaint
|
|
55
|
+
* cuando el componente es destruido, reduciendo el consumo de batería.
|
|
56
|
+
*/
|
|
47
57
|
disconnectedCallback(): void;
|
|
58
|
+
/**
|
|
59
|
+
* Hook de primera actualización (Lit).
|
|
60
|
+
* Dispara explícitamente el estado de animación una vez que el DOM
|
|
61
|
+
* interno (`this._container`) ha sido montado y es seleccionable.
|
|
62
|
+
*/
|
|
48
63
|
protected firstUpdated(): void;
|
|
64
|
+
/**
|
|
65
|
+
* Controlador imperativo de las clases de animación.
|
|
66
|
+
* Permite pausar/reanudar el loader mediante CSS, muy útil cuando se integra
|
|
67
|
+
* con observadores de visibilidad (IntersectionObserver) para mejorar el rendimiento.
|
|
68
|
+
*/
|
|
49
69
|
private _toggleAnimation;
|
|
50
70
|
static styles: import("lit").CSSResult[];
|
|
71
|
+
/**
|
|
72
|
+
* Renderiza la superposición de carga de pantalla completa con un spinner centrado y una etiqueta opcional.
|
|
73
|
+
*
|
|
74
|
+
* La superposición utiliza `position: fixed; inset: 0` para cubrir toda la ventana gráfica,
|
|
75
|
+
* y `z-index` para aparecer por encima del resto del contenido. El spinner `<moni-progress>`
|
|
76
|
+
* se centra mediante CSS flexbox en el elemento `:host`.
|
|
77
|
+
*
|
|
78
|
+
* **Región ARIA en vivo:**
|
|
79
|
+
* `aria-live="polite"` y `aria-label` en el contenedor anuncian los cambios de estado
|
|
80
|
+
* de carga a los lectores de pantalla sin interrumpir el flujo de lectura del usuario.
|
|
81
|
+
* El `role="status"` da a los lectores de pantalla un punto de referencia implícito similar a una alerta.
|
|
82
|
+
*/
|
|
51
83
|
render(): import("lit").TemplateResult<1>;
|
|
52
84
|
}
|
|
53
85
|
declare global {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"moni-loading-indicator.d.ts","sourceRoot":"","sources":["../../src/components/moni-loading-indicator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,WAAW,EAAgB,MAAM,kBAAkB,CAAC;AAG7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBACa,oBAAqB,SAAQ,WAAW;IAEpD,OAAO,EAAE,aAAa,GAAG,WAAW,CAAiB;IAEhC,OAAO,CAAC,UAAU,CAAC,CAAc;
|
|
1
|
+
{"version":3,"file":"moni-loading-indicator.d.ts","sourceRoot":"","sources":["../../src/components/moni-loading-indicator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,WAAW,EAAgB,MAAM,kBAAkB,CAAC;AAG7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBACa,oBAAqB,SAAQ,WAAW;IAEpD,OAAO,EAAE,aAAa,GAAG,WAAW,CAAiB;IAEhC,OAAO,CAAC,UAAU,CAAC,CAAc;IAEtD;;;;OAIG;IACM,iBAAiB;IAQ1B;;;;OAIG;IACM,oBAAoB;IAK7B;;;;OAIG;cACgB,YAAY;IAI/B;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAMxB,OAAgB,MAAM,4BAuHpB;IAEF;;;;;;;;;;;OAWG;IACM,MAAM;CASf;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,wBAAwB,EAAE,oBAAoB,CAAC;KAC/C;CACD;AAED,eAAe,oBAAoB,CAAC"}
|
|
@@ -15,45 +15,50 @@ import { customElement, property, query } from 'lit/decorators.js';
|
|
|
15
15
|
import { MoniElement, sharedStyles } from './_base/index.js';
|
|
16
16
|
import { loadingIndicatorPolygons } from './loading-shapes.js';
|
|
17
17
|
/**
|
|
18
|
-
* Material Design 3 Loading Indicator
|
|
18
|
+
* Componente Material Design 3 Loading Indicator (Indicador de carga).
|
|
19
19
|
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
20
|
+
* Un indicador de carga indeterminado que representa visualmente un tiempo de espera
|
|
21
|
+
* no especificado. A diferencia de los spinners circulares estándar, este componente usa una animación
|
|
22
|
+
* de polígono cambiante que cambia entre formas (círculo, cuadrado redondeado, etc.)
|
|
23
|
+
* de acuerdo con las especificaciones de movimiento de alta fidelidad M3 Expressive.
|
|
24
24
|
*
|
|
25
|
-
* **
|
|
26
|
-
* - `uncontained` (
|
|
27
|
-
*
|
|
28
|
-
* - `contained` —
|
|
29
|
-
*
|
|
30
|
-
*
|
|
25
|
+
* **Variantes:**
|
|
26
|
+
* - `uncontained` (por defecto) — Una forma cambiante independiente que hereda el color
|
|
27
|
+
* de su contexto de texto (o por defecto es `primary`).
|
|
28
|
+
* - `contained` — La forma cambiante se coloca dentro de un contenedor circular
|
|
29
|
+
* con un color de fondo distinto, útil para estados de carga de alto contraste
|
|
30
|
+
* o superposición de imágenes.
|
|
31
31
|
*
|
|
32
|
-
* **
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
* roles (`role="progressbar"`)
|
|
37
|
-
*
|
|
32
|
+
* **Animación y Accesibilidad:**
|
|
33
|
+
* El componente gestiona sus propias etiquetas `<animate>` SVG. La animación se
|
|
34
|
+
* inicia/detiene automáticamente a través de `connectedCallback`/`disconnectedCallback`
|
|
35
|
+
* para ahorrar ciclos de CPU cuando el elemento está fuera de la pantalla. Aplica los atributos de valor
|
|
36
|
+
* y roles ARIA estándar (`role="progressbar"`) para asegurar que los lectores de pantalla
|
|
37
|
+
* lo identifiquen correctamente como un estado de carga indeterminado.
|
|
38
38
|
*
|
|
39
39
|
* @example
|
|
40
40
|
* ```html
|
|
41
|
-
* <!--
|
|
41
|
+
* <!-- Indicador no contenido -->
|
|
42
42
|
* <moni-loading-indicator></moni-loading-indicator>
|
|
43
43
|
*
|
|
44
|
-
* <!--
|
|
44
|
+
* <!-- Indicador contenido (el contenedor por defecto es secondary-container) -->
|
|
45
45
|
* <moni-loading-indicator variant="contained"></moni-loading-indicator>
|
|
46
46
|
* ```
|
|
47
47
|
*
|
|
48
|
-
* @csspart container -
|
|
49
|
-
* @csspart svg -
|
|
50
|
-
* @csspart shape -
|
|
48
|
+
* @csspart container - El envoltorio exterior `.container`.
|
|
49
|
+
* @csspart svg - El elemento `<svg>` interior.
|
|
50
|
+
* @csspart shape - El elemento `<path>` que se transforma.
|
|
51
51
|
*/
|
|
52
52
|
let MoniLoadingIndicator = class MoniLoadingIndicator extends MoniElement {
|
|
53
53
|
constructor() {
|
|
54
54
|
super(...arguments);
|
|
55
55
|
this.variant = 'uncontained';
|
|
56
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* Hook de inicialización (Lit).
|
|
59
|
+
* Configura roles ARIA (progressbar) por defecto y asegura
|
|
60
|
+
* el encendido inicial de la animación infinita en el Shadow DOM.
|
|
61
|
+
*/
|
|
57
62
|
connectedCallback() {
|
|
58
63
|
super.connectedCallback();
|
|
59
64
|
this.ariaValueMin = this.ariaValueMin || '0';
|
|
@@ -61,13 +66,28 @@ let MoniLoadingIndicator = class MoniLoadingIndicator extends MoniElement {
|
|
|
61
66
|
this.role = this.role || 'progressbar';
|
|
62
67
|
this._toggleAnimation(true);
|
|
63
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Hook de destrucción (Lit).
|
|
71
|
+
* Apaga formalmente la animación CSS (`.animate`) para frenar el GPU repaint
|
|
72
|
+
* cuando el componente es destruido, reduciendo el consumo de batería.
|
|
73
|
+
*/
|
|
64
74
|
disconnectedCallback() {
|
|
65
75
|
super.disconnectedCallback();
|
|
66
76
|
this._toggleAnimation(false);
|
|
67
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* Hook de primera actualización (Lit).
|
|
80
|
+
* Dispara explícitamente el estado de animación una vez que el DOM
|
|
81
|
+
* interno (`this._container`) ha sido montado y es seleccionable.
|
|
82
|
+
*/
|
|
68
83
|
firstUpdated() {
|
|
69
84
|
this._toggleAnimation(true);
|
|
70
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* Controlador imperativo de las clases de animación.
|
|
88
|
+
* Permite pausar/reanudar el loader mediante CSS, muy útil cuando se integra
|
|
89
|
+
* con observadores de visibilidad (IntersectionObserver) para mejorar el rendimiento.
|
|
90
|
+
*/
|
|
71
91
|
_toggleAnimation(enable) {
|
|
72
92
|
if (this._container) {
|
|
73
93
|
this._container.classList.toggle('animate', enable);
|
|
@@ -193,6 +213,18 @@ let MoniLoadingIndicator = class MoniLoadingIndicator extends MoniElement {
|
|
|
193
213
|
}
|
|
194
214
|
`
|
|
195
215
|
]; }
|
|
216
|
+
/**
|
|
217
|
+
* Renderiza la superposición de carga de pantalla completa con un spinner centrado y una etiqueta opcional.
|
|
218
|
+
*
|
|
219
|
+
* La superposición utiliza `position: fixed; inset: 0` para cubrir toda la ventana gráfica,
|
|
220
|
+
* y `z-index` para aparecer por encima del resto del contenido. El spinner `<moni-progress>`
|
|
221
|
+
* se centra mediante CSS flexbox en el elemento `:host`.
|
|
222
|
+
*
|
|
223
|
+
* **Región ARIA en vivo:**
|
|
224
|
+
* `aria-live="polite"` y `aria-label` en el contenedor anuncian los cambios de estado
|
|
225
|
+
* de carga a los lectores de pantalla sin interrumpir el flujo de lectura del usuario.
|
|
226
|
+
* El `role="status"` da a los lectores de pantalla un punto de referencia implícito similar a una alerta.
|
|
227
|
+
*/
|
|
196
228
|
render() {
|
|
197
229
|
return html `
|
|
198
230
|
<div class="container animate" aria-hidden="true">
|
|
@@ -7,31 +7,31 @@
|
|
|
7
7
|
import { MoniElement } from './_base/index.js';
|
|
8
8
|
import './moni-icon.js';
|
|
9
9
|
/**
|
|
10
|
-
* Material Design 3 Menu Item
|
|
10
|
+
* Componente Material Design 3 Menu Item (Elemento de Menú).
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
12
|
+
* Un elemento interactivo individual dentro de un `<moni-menu>` o `<moni-context-menu>`.
|
|
13
|
+
* Proporciona el estilo estándar de elemento de menú M3, estados hover, e iconos
|
|
14
|
+
* iniciales opcionales.
|
|
15
15
|
*
|
|
16
|
-
* **
|
|
16
|
+
* **Referencia de la especificación M3:** `m3-docs/components/menus/specs.md`
|
|
17
17
|
*
|
|
18
|
-
* **
|
|
19
|
-
* - Hover:
|
|
20
|
-
* -
|
|
21
|
-
*
|
|
22
|
-
* -
|
|
18
|
+
* **Estados de interacción:**
|
|
19
|
+
* - Hover: aplica una capa de opacidad.
|
|
20
|
+
* - Activo (`active=true`): aplica un fondo resaltado `tertiary-container`,
|
|
21
|
+
* útil para indicar la opción actualmente seleccionada en una lista.
|
|
22
|
+
* - Deshabilitado (`disabled=true`): reduce la opacidad y deshabilita los eventos del puntero.
|
|
23
23
|
*
|
|
24
24
|
* @example
|
|
25
25
|
* ```html
|
|
26
|
-
* <moni-menu-item icon="edit">
|
|
27
|
-
* <moni-menu-item icon="content_copy" disabled>
|
|
28
|
-
* <moni-menu-item active>
|
|
26
|
+
* <moni-menu-item icon="edit">Editar texto</moni-menu-item>
|
|
27
|
+
* <moni-menu-item icon="content_copy" disabled>Copiar</moni-menu-item>
|
|
28
|
+
* <moni-menu-item active>Actualmente seleccionado</moni-menu-item>
|
|
29
29
|
* ```
|
|
30
30
|
*
|
|
31
|
-
* @slot default -
|
|
31
|
+
* @slot default - La etiqueta de texto para el elemento de menú.
|
|
32
32
|
*
|
|
33
|
-
* @csspart item -
|
|
34
|
-
* @csspart icon -
|
|
33
|
+
* @csspart item - El elemento exterior `<li>`.
|
|
34
|
+
* @csspart icon - El contenedor para el icono inicial.
|
|
35
35
|
*/
|
|
36
36
|
export declare class MoniMenuItem extends MoniElement {
|
|
37
37
|
active: boolean;
|
|
@@ -39,6 +39,13 @@ export declare class MoniMenuItem extends MoniElement {
|
|
|
39
39
|
icon: string;
|
|
40
40
|
label: string;
|
|
41
41
|
static styles: import("lit").CSSResult[];
|
|
42
|
+
/**
|
|
43
|
+
* Renderiza el elemento de menú como un `<li>` con un icono inicial opcional y un atajo final.
|
|
44
|
+
*
|
|
45
|
+
* El `<moni-icon>` inicial solo se renderiza cuando se establece `icon` (evita nodos DOM vacíos).
|
|
46
|
+
* `shortcut` se muestra como texto silenciado alineado a la derecha (ej. `Ctrl+K`) usando el estilo
|
|
47
|
+
* de tipografía `body-small` de M3. El slot proyecta contenido personalizado junto a la etiqueta.
|
|
48
|
+
*/
|
|
42
49
|
render(): import("lit").TemplateResult<1>;
|
|
43
50
|
}
|
|
44
51
|
declare global {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"moni-menu-item.d.ts","sourceRoot":"","sources":["../../src/components/moni-menu-item.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,WAAW,EAAgB,MAAM,kBAAkB,CAAC;AAC7D,OAAO,gBAAgB,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBACa,YAAa,SAAQ,WAAW;IACA,MAAM,UAAS;IACf,QAAQ,UAAS;IAChC,IAAI,SAAM;IACV,KAAK,SAAM;IAExC,OAAgB,MAAM,4BA4CpB;
|
|
1
|
+
{"version":3,"file":"moni-menu-item.d.ts","sourceRoot":"","sources":["../../src/components/moni-menu-item.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,WAAW,EAAgB,MAAM,kBAAkB,CAAC;AAC7D,OAAO,gBAAgB,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBACa,YAAa,SAAQ,WAAW;IACA,MAAM,UAAS;IACf,QAAQ,UAAS;IAChC,IAAI,SAAM;IACV,KAAK,SAAM;IAExC,OAAgB,MAAM,4BA4CpB;IAEF;;;;;;OAMG;IACM,MAAM;CAQf;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,gBAAgB,EAAE,YAAY,CAAC;KAC/B;CACD;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -15,31 +15,31 @@ import { customElement, property } from 'lit/decorators.js';
|
|
|
15
15
|
import { MoniElement, sharedStyles } from './_base/index.js';
|
|
16
16
|
import './moni-icon.js';
|
|
17
17
|
/**
|
|
18
|
-
* Material Design 3 Menu Item
|
|
18
|
+
* Componente Material Design 3 Menu Item (Elemento de Menú).
|
|
19
19
|
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
20
|
+
* Un elemento interactivo individual dentro de un `<moni-menu>` o `<moni-context-menu>`.
|
|
21
|
+
* Proporciona el estilo estándar de elemento de menú M3, estados hover, e iconos
|
|
22
|
+
* iniciales opcionales.
|
|
23
23
|
*
|
|
24
|
-
* **
|
|
24
|
+
* **Referencia de la especificación M3:** `m3-docs/components/menus/specs.md`
|
|
25
25
|
*
|
|
26
|
-
* **
|
|
27
|
-
* - Hover:
|
|
28
|
-
* -
|
|
29
|
-
*
|
|
30
|
-
* -
|
|
26
|
+
* **Estados de interacción:**
|
|
27
|
+
* - Hover: aplica una capa de opacidad.
|
|
28
|
+
* - Activo (`active=true`): aplica un fondo resaltado `tertiary-container`,
|
|
29
|
+
* útil para indicar la opción actualmente seleccionada en una lista.
|
|
30
|
+
* - Deshabilitado (`disabled=true`): reduce la opacidad y deshabilita los eventos del puntero.
|
|
31
31
|
*
|
|
32
32
|
* @example
|
|
33
33
|
* ```html
|
|
34
|
-
* <moni-menu-item icon="edit">
|
|
35
|
-
* <moni-menu-item icon="content_copy" disabled>
|
|
36
|
-
* <moni-menu-item active>
|
|
34
|
+
* <moni-menu-item icon="edit">Editar texto</moni-menu-item>
|
|
35
|
+
* <moni-menu-item icon="content_copy" disabled>Copiar</moni-menu-item>
|
|
36
|
+
* <moni-menu-item active>Actualmente seleccionado</moni-menu-item>
|
|
37
37
|
* ```
|
|
38
38
|
*
|
|
39
|
-
* @slot default -
|
|
39
|
+
* @slot default - La etiqueta de texto para el elemento de menú.
|
|
40
40
|
*
|
|
41
|
-
* @csspart item -
|
|
42
|
-
* @csspart icon -
|
|
41
|
+
* @csspart item - El elemento exterior `<li>`.
|
|
42
|
+
* @csspart icon - El contenedor para el icono inicial.
|
|
43
43
|
*/
|
|
44
44
|
let MoniMenuItem = class MoniMenuItem extends MoniElement {
|
|
45
45
|
constructor() {
|
|
@@ -94,6 +94,13 @@ let MoniMenuItem = class MoniMenuItem extends MoniElement {
|
|
|
94
94
|
}
|
|
95
95
|
`
|
|
96
96
|
]; }
|
|
97
|
+
/**
|
|
98
|
+
* Renderiza el elemento de menú como un `<li>` con un icono inicial opcional y un atajo final.
|
|
99
|
+
*
|
|
100
|
+
* El `<moni-icon>` inicial solo se renderiza cuando se establece `icon` (evita nodos DOM vacíos).
|
|
101
|
+
* `shortcut` se muestra como texto silenciado alineado a la derecha (ej. `Ctrl+K`) usando el estilo
|
|
102
|
+
* de tipografía `body-small` de M3. El slot proyecta contenido personalizado junto a la etiqueta.
|
|
103
|
+
*/
|
|
97
104
|
render() {
|
|
98
105
|
return html `<li part="item">
|
|
99
106
|
${this.icon
|