@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.
Files changed (251) hide show
  1. package/custom-elements.json +5230 -1007
  2. package/dist/components/_base/moni-element.d.ts +16 -9
  3. package/dist/components/_base/moni-element.d.ts.map +1 -1
  4. package/dist/components/_base/moni-element.js +63 -9
  5. package/dist/components/index.js +2 -2
  6. package/dist/components/loading-shapes.d.ts +19 -0
  7. package/dist/components/loading-shapes.d.ts.map +1 -1
  8. package/dist/components/loading-shapes.js +19 -0
  9. package/dist/components/moni-app-bar.d.ts +72 -62
  10. package/dist/components/moni-app-bar.d.ts.map +1 -1
  11. package/dist/components/moni-app-bar.js +72 -62
  12. package/dist/components/moni-badge.d.ts +64 -65
  13. package/dist/components/moni-badge.d.ts.map +1 -1
  14. package/dist/components/moni-badge.js +64 -66
  15. package/dist/components/moni-bottom-sheet.d.ts +129 -61
  16. package/dist/components/moni-bottom-sheet.d.ts.map +1 -1
  17. package/dist/components/moni-bottom-sheet.js +217 -131
  18. package/dist/components/moni-button-group.d.ts +107 -29
  19. package/dist/components/moni-button-group.d.ts.map +1 -1
  20. package/dist/components/moni-button-group.js +107 -29
  21. package/dist/components/moni-button-segment.d.ts +53 -12
  22. package/dist/components/moni-button-segment.d.ts.map +1 -1
  23. package/dist/components/moni-button-segment.js +53 -12
  24. package/dist/components/moni-button.d.ts +116 -38
  25. package/dist/components/moni-button.d.ts.map +1 -1
  26. package/dist/components/moni-button.js +128 -38
  27. package/dist/components/moni-card.d.ts +68 -50
  28. package/dist/components/moni-card.d.ts.map +1 -1
  29. package/dist/components/moni-card.js +68 -50
  30. package/dist/components/moni-carousel.d.ts +484 -53
  31. package/dist/components/moni-carousel.d.ts.map +1 -1
  32. package/dist/components/moni-carousel.js +1024 -245
  33. package/dist/components/moni-checkbox.d.ts +49 -46
  34. package/dist/components/moni-checkbox.d.ts.map +1 -1
  35. package/dist/components/moni-checkbox.js +55 -48
  36. package/dist/components/moni-chip.d.ts +100 -33
  37. package/dist/components/moni-chip.d.ts.map +1 -1
  38. package/dist/components/moni-chip.js +104 -34
  39. package/dist/components/moni-color-field.d.ts +99 -24
  40. package/dist/components/moni-color-field.d.ts.map +1 -1
  41. package/dist/components/moni-color-field.js +99 -24
  42. package/dist/components/moni-context-menu.d.ts +72 -26
  43. package/dist/components/moni-context-menu.d.ts.map +1 -1
  44. package/dist/components/moni-context-menu.js +76 -30
  45. package/dist/components/moni-dialog.d.ts +84 -59
  46. package/dist/components/moni-dialog.d.ts.map +1 -1
  47. package/dist/components/moni-dialog.js +105 -58
  48. package/dist/components/moni-divider.d.ts +39 -27
  49. package/dist/components/moni-divider.d.ts.map +1 -1
  50. package/dist/components/moni-divider.js +42 -30
  51. package/dist/components/moni-expansion.d.ts +32 -22
  52. package/dist/components/moni-expansion.d.ts.map +1 -1
  53. package/dist/components/moni-expansion.js +32 -22
  54. package/dist/components/moni-fab-menu.d.ts +61 -23
  55. package/dist/components/moni-fab-menu.d.ts.map +1 -1
  56. package/dist/components/moni-fab-menu.js +69 -31
  57. package/dist/components/moni-fab.d.ts +86 -28
  58. package/dist/components/moni-fab.d.ts.map +1 -1
  59. package/dist/components/moni-fab.js +92 -34
  60. package/dist/components/moni-file-field.d.ts +118 -30
  61. package/dist/components/moni-file-field.d.ts.map +1 -1
  62. package/dist/components/moni-file-field.js +118 -30
  63. package/dist/components/moni-icon.d.ts +40 -35
  64. package/dist/components/moni-icon.d.ts.map +1 -1
  65. package/dist/components/moni-icon.js +43 -38
  66. package/dist/components/moni-list-item.d.ts +46 -33
  67. package/dist/components/moni-list-item.d.ts.map +1 -1
  68. package/dist/components/moni-list-item.js +61 -41
  69. package/dist/components/moni-list.d.ts +30 -20
  70. package/dist/components/moni-list.d.ts.map +1 -1
  71. package/dist/components/moni-list.js +36 -21
  72. package/dist/components/moni-loading-indicator.d.ts +54 -22
  73. package/dist/components/moni-loading-indicator.d.ts.map +1 -1
  74. package/dist/components/moni-loading-indicator.js +54 -22
  75. package/dist/components/moni-menu-item.d.ts +23 -16
  76. package/dist/components/moni-menu-item.d.ts.map +1 -1
  77. package/dist/components/moni-menu-item.js +23 -16
  78. package/dist/components/moni-menu.d.ts +81 -28
  79. package/dist/components/moni-menu.d.ts.map +1 -1
  80. package/dist/components/moni-menu.js +81 -30
  81. package/dist/components/moni-morph-modal.d.ts +141 -0
  82. package/dist/components/moni-morph-modal.d.ts.map +1 -1
  83. package/dist/components/moni-morph-modal.js +295 -58
  84. package/dist/components/moni-nav-item.d.ts +59 -29
  85. package/dist/components/moni-nav-item.d.ts.map +1 -1
  86. package/dist/components/moni-nav-item.js +59 -29
  87. package/dist/components/moni-nav.d.ts +94 -35
  88. package/dist/components/moni-nav.d.ts.map +1 -1
  89. package/dist/components/moni-nav.js +94 -35
  90. package/dist/components/moni-progress.d.ts +99 -55
  91. package/dist/components/moni-progress.d.ts.map +1 -1
  92. package/dist/components/moni-progress.js +99 -55
  93. package/dist/components/moni-radio.d.ts +62 -50
  94. package/dist/components/moni-radio.d.ts.map +1 -1
  95. package/dist/components/moni-radio.js +65 -52
  96. package/dist/components/moni-ripple.d.ts +74 -59
  97. package/dist/components/moni-ripple.d.ts.map +1 -1
  98. package/dist/components/moni-ripple.js +74 -59
  99. package/dist/components/moni-segmented-button.d.ts +91 -16
  100. package/dist/components/moni-segmented-button.d.ts.map +1 -1
  101. package/dist/components/moni-segmented-button.js +94 -17
  102. package/dist/components/moni-select-option.d.ts +30 -23
  103. package/dist/components/moni-select-option.d.ts.map +1 -1
  104. package/dist/components/moni-select-option.js +30 -23
  105. package/dist/components/moni-select.d.ts +300 -35
  106. package/dist/components/moni-select.d.ts.map +1 -1
  107. package/dist/components/moni-select.js +323 -39
  108. package/dist/components/moni-side-sheet.d.ts +94 -32
  109. package/dist/components/moni-side-sheet.d.ts.map +1 -1
  110. package/dist/components/moni-side-sheet.js +94 -32
  111. package/dist/components/moni-slider.d.ts +152 -41
  112. package/dist/components/moni-slider.d.ts.map +1 -1
  113. package/dist/components/moni-slider.js +154 -42
  114. package/dist/components/moni-snackbar.d.ts +53 -43
  115. package/dist/components/moni-snackbar.d.ts.map +1 -1
  116. package/dist/components/moni-snackbar.js +53 -43
  117. package/dist/components/moni-split-button.d.ts +63 -18
  118. package/dist/components/moni-split-button.d.ts.map +1 -1
  119. package/dist/components/moni-split-button.js +63 -18
  120. package/dist/components/moni-step.d.ts +36 -24
  121. package/dist/components/moni-step.d.ts.map +1 -1
  122. package/dist/components/moni-step.js +41 -29
  123. package/dist/components/moni-stepper.d.ts +64 -27
  124. package/dist/components/moni-stepper.d.ts.map +1 -1
  125. package/dist/components/moni-stepper.js +72 -34
  126. package/dist/components/moni-switch.d.ts +57 -46
  127. package/dist/components/moni-switch.d.ts.map +1 -1
  128. package/dist/components/moni-switch.js +59 -47
  129. package/dist/components/moni-tab.d.ts +26 -18
  130. package/dist/components/moni-tab.d.ts.map +1 -1
  131. package/dist/components/moni-tab.js +29 -21
  132. package/dist/components/moni-tabs.d.ts +34 -28
  133. package/dist/components/moni-tabs.d.ts.map +1 -1
  134. package/dist/components/moni-tabs.js +34 -28
  135. package/dist/components/moni-text-field.d.ts +139 -29
  136. package/dist/components/moni-text-field.d.ts.map +1 -1
  137. package/dist/components/moni-text-field.js +157 -31
  138. package/dist/components/moni-textarea.d.ts +127 -29
  139. package/dist/components/moni-textarea.d.ts.map +1 -1
  140. package/dist/components/moni-textarea.js +131 -32
  141. package/dist/components/moni-time-picker.d.ts +114 -24
  142. package/dist/components/moni-time-picker.d.ts.map +1 -1
  143. package/dist/components/moni-time-picker.js +127 -33
  144. package/dist/components/moni-toolbar.d.ts +37 -23
  145. package/dist/components/moni-toolbar.d.ts.map +1 -1
  146. package/dist/components/moni-toolbar.js +37 -23
  147. package/dist/components/moni-tooltip.d.ts +100 -36
  148. package/dist/components/moni-tooltip.d.ts.map +1 -1
  149. package/dist/components/moni-tooltip.js +104 -40
  150. package/dist/components/moni-typography.d.ts +68 -30
  151. package/dist/components/moni-typography.d.ts.map +1 -1
  152. package/dist/components/moni-typography.js +70 -32
  153. package/dist/styles/tokens.css +7 -7
  154. package/dist/types/events.d.ts +17 -0
  155. package/dist/types/events.d.ts.map +1 -0
  156. package/dist/types/events.js +1 -0
  157. package/dist/utils/event-emitter.d.ts +13 -0
  158. package/dist/utils/event-emitter.d.ts.map +1 -0
  159. package/dist/utils/event-emitter.js +13 -0
  160. package/package.json +2 -1
  161. package/src/components/_base/moni-element.ts +73 -9
  162. package/src/components/index.ts +2 -2
  163. package/src/components/loading-shapes.ts +19 -0
  164. package/src/components/moni-app-bar.test.ts +10 -10
  165. package/src/components/moni-app-bar.ts +72 -62
  166. package/src/components/moni-badge.ts +64 -66
  167. package/src/components/moni-bottom-sheet.test.ts +39 -45
  168. package/src/components/moni-bottom-sheet.ts +222 -131
  169. package/src/components/moni-button-group.test.ts +14 -14
  170. package/src/components/moni-button-group.ts +107 -29
  171. package/src/components/moni-button-segment.ts +53 -12
  172. package/src/components/moni-button.test.ts +28 -26
  173. package/src/components/moni-button.ts +139 -39
  174. package/src/components/moni-card.test.ts +6 -6
  175. package/src/components/moni-card.ts +70 -50
  176. package/src/components/moni-carousel.test.ts +12 -12
  177. package/src/components/moni-carousel.ts +1129 -269
  178. package/src/components/moni-checkbox.test.ts +7 -7
  179. package/src/components/moni-checkbox.ts +62 -48
  180. package/src/components/moni-chip.test.ts +17 -17
  181. package/src/components/moni-chip.ts +112 -34
  182. package/src/components/moni-color-field.test.ts +5 -5
  183. package/src/components/moni-color-field.ts +108 -24
  184. package/src/components/moni-context-menu.test.ts +11 -11
  185. package/src/components/moni-context-menu.ts +76 -30
  186. package/src/components/moni-dialog.ts +108 -59
  187. package/src/components/moni-divider.test.ts +4 -4
  188. package/src/components/moni-divider.ts +42 -30
  189. package/src/components/moni-expansion.ts +32 -22
  190. package/src/components/moni-fab-menu.test.ts +11 -11
  191. package/src/components/moni-fab-menu.ts +69 -31
  192. package/src/components/moni-fab.test.ts +16 -16
  193. package/src/components/moni-fab.ts +100 -34
  194. package/src/components/moni-file-field.test.ts +8 -8
  195. package/src/components/moni-file-field.ts +132 -30
  196. package/src/components/moni-icon.test.ts +11 -11
  197. package/src/components/moni-icon.ts +43 -38
  198. package/src/components/moni-list-item.test.ts +10 -10
  199. package/src/components/moni-list-item.ts +61 -41
  200. package/src/components/moni-list.ts +37 -21
  201. package/src/components/moni-loading-indicator.test.ts +3 -3
  202. package/src/components/moni-loading-indicator.ts +54 -22
  203. package/src/components/moni-menu-item.ts +23 -16
  204. package/src/components/moni-menu.test.ts +7 -7
  205. package/src/components/moni-menu.ts +87 -30
  206. package/src/components/moni-morph-modal.test.ts +18 -17
  207. package/src/components/moni-morph-modal.ts +327 -60
  208. package/src/components/moni-nav-item.ts +59 -29
  209. package/src/components/moni-nav.test.ts +11 -11
  210. package/src/components/moni-nav.ts +94 -35
  211. package/src/components/moni-progress.test.ts +9 -9
  212. package/src/components/moni-progress.ts +100 -56
  213. package/src/components/moni-radio.test.ts +8 -8
  214. package/src/components/moni-radio.ts +71 -51
  215. package/src/components/moni-ripple.ts +74 -59
  216. package/src/components/moni-segmented-button.test.ts +4 -4
  217. package/src/components/moni-segmented-button.ts +94 -17
  218. package/src/components/moni-select-option.ts +30 -23
  219. package/src/components/moni-select.test.ts +11 -11
  220. package/src/components/moni-select.ts +361 -50
  221. package/src/components/moni-side-sheet.test.ts +7 -7
  222. package/src/components/moni-side-sheet.ts +94 -32
  223. package/src/components/moni-slider.test.ts +7 -7
  224. package/src/components/moni-slider.ts +165 -42
  225. package/src/components/moni-snackbar.test.ts +8 -8
  226. package/src/components/moni-snackbar.ts +53 -43
  227. package/src/components/moni-split-button.ts +63 -18
  228. package/src/components/moni-step.test.ts +7 -7
  229. package/src/components/moni-step.ts +41 -29
  230. package/src/components/moni-stepper.test.ts +7 -7
  231. package/src/components/moni-stepper.ts +72 -34
  232. package/src/components/moni-switch.test.ts +12 -12
  233. package/src/components/moni-switch.ts +66 -47
  234. package/src/components/moni-tab.test.ts +5 -5
  235. package/src/components/moni-tab.ts +29 -21
  236. package/src/components/moni-tabs.ts +34 -28
  237. package/src/components/moni-text-field.test.ts +13 -13
  238. package/src/components/moni-text-field.ts +181 -30
  239. package/src/components/moni-textarea.test.ts +17 -17
  240. package/src/components/moni-textarea.ts +155 -31
  241. package/src/components/moni-time-picker.test.ts +5 -5
  242. package/src/components/moni-time-picker.ts +128 -33
  243. package/src/components/moni-toolbar.test.ts +8 -8
  244. package/src/components/moni-toolbar.ts +37 -23
  245. package/src/components/moni-tooltip.test.ts +15 -15
  246. package/src/components/moni-tooltip.ts +107 -40
  247. package/src/components/moni-typography.test.ts +10 -10
  248. package/src/components/moni-typography.ts +73 -32
  249. package/src/styles/tokens.css +7 -7
  250. package/src/types/events.ts +17 -0
  251. 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 component.
17
+ * Componente Material Design 3 Stepper (Pasos/Progresión).
18
18
  *
19
- * A container for a linear progression of `<moni-step>` elements. Steppers
20
- * convey progress through numbered steps and indicate the user's current
21
- * position within a flow.
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
- * **M3 spec reference:** `m3-docs/components/progress-indicators/specs.md`
23
+ * **Referencia a la especificación M3:** `m3-docs/components/progress-indicators/specs.md`
24
24
  *
25
- * **Orchestration:**
26
- * This component acts as the orchestrator for its slotted `<moni-step>` children.
27
- * Whenever the `current` property changes, or children are added/removed, the
28
- * stepper iterates over all child steps and injects their state:
29
- * - Assigns the sequential `index` (0-based) to each step.
30
- * - Sets `active=true` on the step matching the `current` index.
31
- * - Sets `completed=true` on all steps prior to the `current` index.
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
- * **Visual layout:**
34
- * The stepper manages the layout (flex row or column based on `orientation`)
35
- * and ensures the connector lines between steps are rendered correctly via
36
- * CSS pseudo-elements defined in the child `<moni-step>` styling.
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="Step 1"></moni-step>
42
- * <moni-step title="Step 2"></moni-step>
43
- * <moni-step title="Step 3"></moni-step>
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
- * // Move to next step
48
+ * // Mover al siguiente paso
49
49
  * stepper.current = 2;
50
50
  * </script>
51
51
  * ```
52
52
  *
53
- * @slot default - `<moni-step>` elements.
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
- * Propagate the `current` index to each child <moni-step>:
74
- * - sets `index` from the child's position
75
- * - sets `completed` on every step before `current`
76
- * - sets `active` on the step at `current`
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
- * Deferred to a microtask so that slotted children are guaranteed
79
- * to have finished their first update cycle before we write to them.
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
- let steps = this._steps || [];
84
- if (steps.length === 0) {
85
- steps = Array.from(this.querySelectorAll('moni-step'));
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
- steps.forEach((step, i) => {
88
- step.index = i;
89
- step.completed = i < this.current;
90
- step.active = i === this.current;
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 component.
10
+ * Componente Material Design 3 Switch (Interruptor).
11
11
  *
12
- * Switches toggle the state of a single setting on or off. They are the
13
- * binary on/off equivalent of a checkbox, but optimized for toggling a
14
- * single state rather than selecting from a list.
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
- * **M3 spec reference:** `m3-docs/components/switch/specs.md`
16
+ * **Referencia a la especificación M3:** `m3-docs/components/switch/specs.md`
17
17
  *
18
- * **M3 measurements:**
19
- * - Track: 52dp × 32dp, 2dp border, full-radius pill shape.
20
- * - Handle (thumb): 16dp unselected → 24dp selected → 28dp pressed.
21
- * - State layer: 40dp circular ripple on hover/focus/pressed states.
22
- * - Icon (optional): 16dp icon rendered inside the thumb when `icon` is set.
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
- * **Visual architecture:**
25
- * Like `<moni-checkbox>`, the native `<input type="checkbox" role="switch">`
26
- * occupies real layout space but is visually hidden via `opacity: 0`. Two
27
- * `<span>` pseudo-elements render the track (`::after`) and thumb (`::before`).
28
- * When `icon=true`, `<i>` elements render `close` and `check` glyphs inside
29
- * the thumb, with visibility toggled via CSS based on the checked state.
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 - Bubbles and is composed. Fired when the switch is toggled.
32
- * Read `element.checked` for the new state.
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="Dark mode" name="dark-mode"></moni-switch>
37
- * <moni-switch icon checked label="Notifications"></moni-switch>
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('enabled:', e.target.checked);
41
+ * console.log('activado:', e.target.checked);
42
42
  * });
43
43
  * </script>
44
44
  * ```
45
45
  *
46
- * @csspart switch - The outer `<label>` element containing the 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
- * Text label displayed to the right of the switch.
53
+ * Etiqueta de texto mostrada a la derecha del switch.
51
54
  *
52
- * When non-empty, renders as a padded text span after the track.
53
- * When empty, the default slot is rendered, allowing custom HTML labels.
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
- * Whether the switch is in the "on" (checked) state.
62
+ * Indica si el switch está en el estado "encendido" (marcado/checked).
60
63
  *
61
- * When `true`:
62
- * - Track fills with `--primary` color.
63
- * - Thumb grows from 16dp to 24dp and slides to the trailing edge.
64
- * - Thumb color changes to `--on-primary`.
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
- * When `true`, the switch is non-interactive and renders at 50% opacity.
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
- * When `true`, renders icon glyphs inside the thumb.
79
+ * Cuando es `true`, renderiza glifos de iconos dentro del control (thumb).
77
80
  *
78
- * Uses Material Symbols ligatures:
79
- * - Unchecked state: `close` icon.
80
- * - Checked state: `check` icon.
81
+ * Utiliza ligaduras de Material Symbols:
82
+ * - Estado desmarcado (Unchecked): icono `close`.
83
+ * - Estado marcado (Checked): icono `check`.
81
84
  *
82
- * The icon size (16dp) is set via the `--_thumb` CSS custom property.
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
- * Forwarded to the native `<input name>` attribute for form participation.
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
- * Forwarded to the native `<input value>` attribute.
95
- * The value submitted in a form when this switch is checked.
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
- /** Direct reference to the native input element for programmatic access. */
103
+ /** Referencia directa al elemento input nativo para acceso programático. */
101
104
  private _input;
102
105
  /**
103
- * Syncs `checked` and `disabled` imperatively to the native input after render.
106
+ * Sincroniza `checked` y `disabled` de forma imperativa en el input nativo después del renderizado.
104
107
  *
105
- * @param changed - Map of changed property names to their previous values.
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
- * Handles the native input `change` event.
112
+ * Maneja el evento nativo `change` del input.
110
113
  *
111
- * Updates `this.checked` and re-dispatches a composed `'change'` event
112
- * so it bubbles across shadow DOM boundaries.
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 - The native `change` event from the hidden `<input>`.
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;IAO9C;;;;;;;OAOG;IACH,OAAO,CAAC,SAAS;IAKjB,OAAgB,MAAM,4BAiKpB;IAEO,MAAM;CAmBf;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,aAAa,EAAE,UAAU,CAAC;KAC1B;CACD;AAED,eAAe,UAAU,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 component.
19
+ * Componente Material Design 3 Switch (Interruptor).
20
20
  *
21
- * Switches toggle the state of a single setting on or off. They are the
22
- * binary on/off equivalent of a checkbox, but optimized for toggling a
23
- * single state rather than selecting from a list.
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
- * **M3 spec reference:** `m3-docs/components/switch/specs.md`
25
+ * **Referencia a la especificación M3:** `m3-docs/components/switch/specs.md`
26
26
  *
27
- * **M3 measurements:**
28
- * - Track: 52dp × 32dp, 2dp border, full-radius pill shape.
29
- * - Handle (thumb): 16dp unselected → 24dp selected → 28dp pressed.
30
- * - State layer: 40dp circular ripple on hover/focus/pressed states.
31
- * - Icon (optional): 16dp icon rendered inside the thumb when `icon` is set.
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
- * **Visual architecture:**
34
- * Like `<moni-checkbox>`, the native `<input type="checkbox" role="switch">`
35
- * occupies real layout space but is visually hidden via `opacity: 0`. Two
36
- * `<span>` pseudo-elements render the track (`::after`) and thumb (`::before`).
37
- * When `icon=true`, `<i>` elements render `close` and `check` glyphs inside
38
- * the thumb, with visibility toggled via CSS based on the checked state.
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 - Bubbles and is composed. Fired when the switch is toggled.
41
- * Read `element.checked` for the new state.
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="Dark mode" name="dark-mode"></moni-switch>
46
- * <moni-switch icon checked label="Notifications"></moni-switch>
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('enabled:', e.target.checked);
50
+ * console.log('activado:', e.target.checked);
51
51
  * });
52
52
  * </script>
53
53
  * ```
54
54
  *
55
- * @csspart switch - The outer `<label>` element containing the 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(...arguments);
60
+ super();
60
61
  /**
61
- * Text label displayed to the right of the switch.
62
+ * Etiqueta de texto mostrada a la derecha del switch.
62
63
  *
63
- * When non-empty, renders as a padded text span after the track.
64
- * When empty, the default slot is rendered, allowing custom HTML labels.
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
- * Whether the switch is in the "on" (checked) state.
71
+ * Indica si el switch está en el estado "encendido" (marcado/checked).
71
72
  *
72
- * When `true`:
73
- * - Track fills with `--primary` color.
74
- * - Thumb grows from 16dp to 24dp and slides to the trailing edge.
75
- * - Thumb color changes to `--on-primary`.
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
- * When `true`, the switch is non-interactive and renders at 50% opacity.
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
- * When `true`, renders icon glyphs inside the thumb.
88
+ * Cuando es `true`, renderiza glifos de iconos dentro del control (thumb).
88
89
  *
89
- * Uses Material Symbols ligatures:
90
- * - Unchecked state: `close` icon.
91
- * - Checked state: `check` icon.
90
+ * Utiliza ligaduras de Material Symbols:
91
+ * - Estado desmarcado (Unchecked): icono `close`.
92
+ * - Estado marcado (Checked): icono `check`.
92
93
  *
93
- * The icon size (16dp) is set via the `--_thumb` CSS custom property.
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
- * Forwarded to the native `<input name>` attribute for form participation.
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
- * Forwarded to the native `<input value>` attribute.
106
- * The value submitted in a form when this switch is checked.
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
- * Syncs `checked` and `disabled` imperatively to the native input after render.
115
+ * Sincroniza `checked` y `disabled` de forma imperativa en el input nativo después del renderizado.
114
116
  *
115
- * @param changed - Map of changed property names to their previous values.
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
- * Handles the native input `change` event.
130
+ * Maneja el evento nativo `change` del input.
127
131
  *
128
- * Updates `this.checked` and re-dispatches a composed `'change'` event
129
- * so it bubbles across shadow DOM boundaries.
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 - The native `change` event from the hidden `<input>`.
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 component.
10
+ * Componente Material Design 3 Tab (Pestaña).
11
11
  *
12
- * An individual interactive tab element designed to be placed inside a
13
- * `<moni-tabs>` container. Tabs organize content across different screens,
14
- * data sets, and other interactions.
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
- * **M3 spec reference:** `m3-docs/components/tabs/specs.md`
16
+ * **Referencia a la especificación M3:** `m3-docs/components/tabs/specs.md`
17
17
  *
18
- * **Visual layout & interaction:**
19
- * Internally renders as an `<a>` element to support native link behavior when
20
- * an `href` is provided, but behaves visually as a tab button. It displays a
21
- * text label and an optional Material icon. If the parent `<moni-tabs>` has the
22
- * `vertical` attribute set, the layout automatically adjusts to stack the icon
23
- * above the text.
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
- * **State:**
26
- * The `active` attribute highlights the tab, applying the primary color to the
27
- * text and rendering the active indicator line (handled via CSS in the parent
28
- * container or pseudo-elements).
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="Home"></moni-tab>
34
- * <moni-tab icon="settings" label="Settings" href="/settings"></moni-tab>
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 - The inner `<a>` element acting as the tab button.
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;IAEO,MAAM;CAaf;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,UAAU,EAAE,OAAO,CAAC;KACpB;CACD;AAED,eAAe,OAAO,CAAC"}
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"}