@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,94 +14,94 @@ 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 Card component.
17
+ * Componente Material Design 3 Card.
18
18
  *
19
- * Cards display content and actions about a single subject. They are
20
- * container surfaces that group related information together, making it
21
- * easy for users to scan and interact with collections of related data.
19
+ * Las tarjetas muestran contenido y acciones sobre un solo sujeto. Son
20
+ * superficies contenedoras que agrupan información relacionada junta, haciendo
21
+ * fácil para los usuarios escanear e interactuar con colecciones de datos relacionados.
22
22
  *
23
- * **M3 spec reference:** `m3-docs/components/cards/specs.md`
23
+ * **Referencia de la especificación M3:** `m3-docs/components/cards/specs.md`
24
24
  *
25
- * **Variants:**
26
- * - `elevated` (default) — `surface-container-low` background + `--elevate1` shadow.
27
- * Best for collections where the card needs visual separation from a
28
- * patterned or colored background. Gains shadow on hover/drag.
29
- * - `filled` — `surface-container-highest` background, no shadow.
30
- * Lowest emphasis; use when cards sit directly on the main background surface.
31
- * - `outlined` — `surface` background + 1dp `outline-variant` stroke.
32
- * Highest structural emphasis without casting a shadow. Best on solid backgrounds.
25
+ * **Variantes:**
26
+ * - `elevated` (por defecto) — Fondo `surface-container-low` + sombra `--elevate1`.
27
+ * Mejor para colecciones donde la tarjeta necesita separación visual de un
28
+ * fondo con patrones o de color. Gana sombra al pasar el ratón/arrastrar.
29
+ * - `filled` — Fondo `surface-container-highest`, sin sombra.
30
+ * Énfasis más bajo; úsalo cuando las tarjetas se asientan directamente sobre la superficie del fondo principal.
31
+ * - `outlined` — Fondo `surface` + trazo `outline-variant` 1dp.
32
+ * Énfasis estructural más alto sin proyectar una sombra. Mejor en fondos sólidos.
33
33
  *
34
- * **M3 measurements:**
35
- * - Container corner radius: 12dp.
36
- * - Horizontal content padding: 16dp.
37
- * - Gap between cards in a collection: max 8dp.
38
- * - Headline text alignment: start.
34
+ * **Medidas M3:**
35
+ * - Radio de esquina del contenedor: 12dp.
36
+ * - Relleno de contenido horizontal: 16dp.
37
+ * - Espacio entre tarjetas en una colección: máx. 8dp.
38
+ * - Alineación de texto del titular: inicio.
39
39
  *
40
- * **Interactive cards:**
41
- * When `clickable=true`, the card renders M3 state layer overlays on hover,
42
- * focus, and press via the `::before` pseudo-element. The consumer must handle
43
- * the `click` event to implement navigation or selection logic.
40
+ * **Tarjetas interactivas:**
41
+ * Cuando `clickable=true`, la tarjeta renderiza capas de estado M3 (hover,
42
+ * focus, press) a través del pseudo-elemento `::before`. El consumidor debe manejar
43
+ * el evento `click` para implementar la lógica de navegación o selección.
44
44
  *
45
45
  * @example
46
46
  * ```html
47
47
  * <moni-card variant="outlined" clickable>
48
- * <img slot="media" src="photo.jpg" alt="Card image" />
49
- * <h3 slot="headline">Card Title</h3>
50
- * <p slot="supporting">Supporting text that describes the card topic.</p>
48
+ * <img slot="media" src="photo.jpg" alt="Imagen de la tarjeta" />
49
+ * <h3 slot="headline">Título de Tarjeta</h3>
50
+ * <p slot="supporting">Texto de soporte que describe el tema de la tarjeta.</p>
51
51
  * <div slot="actions">
52
- * <moni-button variant="text">Cancel</moni-button>
53
- * <moni-button>Confirm</moni-button>
52
+ * <moni-button variant="text">Cancelar</moni-button>
53
+ * <moni-button>Confirmar</moni-button>
54
54
  * </div>
55
55
  * </moni-card>
56
56
  * ```
57
57
  *
58
- * @slot media - An image, video, or icon at the top of the card.
59
- * @slot default - Primary body content (replaces all named slots if used).
60
- * @slot headline - H3-equivalent title text.
61
- * @slot subhead - Secondary title below the headline.
62
- * @slot supporting - Descriptive supporting body text.
63
- * @slot actions - Action buttons row at the bottom of the card.
58
+ * @slot media - Una imagen, video, o icono en la parte superior de la tarjeta.
59
+ * @slot default - Contenido del cuerpo principal (reemplaza todos los slots con nombre si se usa).
60
+ * @slot headline - Texto de título equivalente a H3.
61
+ * @slot subhead - Título secundario debajo del titular.
62
+ * @slot supporting - Texto de soporte descriptivo del cuerpo.
63
+ * @slot actions - Fila de botones de acción en la parte inferior de la tarjeta.
64
64
  *
65
- * @csspart card - The outer card container.
66
- * @csspart media - The media area wrapper.
67
- * @csspart content - The content wrapper.
68
- * @csspart actions - The actions row wrapper.
65
+ * @csspart card - El contenedor exterior de la tarjeta.
66
+ * @csspart media - El contenedor del área de medios.
67
+ * @csspart content - El contenedor de contenido.
68
+ * @csspart actions - El contenedor de la fila de acciones.
69
69
  */
70
70
  let MoniCard = class MoniCard extends MoniElement {
71
71
  constructor() {
72
72
  super(...arguments);
73
73
  /**
74
- * Visual variant of the card.
74
+ * Variante visual de la tarjeta.
75
75
  *
76
- * - `'elevated'` (default) — Surface-low background + elevation shadow.
77
- * - `'filled'` — Surface-highest background, no shadow.
78
- * - `'outlined'` — Surface background + outline-variant stroke.
76
+ * - `'elevated'` (por defecto) — Fondo Surface-low + sombra de elevación.
77
+ * - `'filled'` — Fondo Surface-highest, sin sombra.
78
+ * - `'outlined'` — Fondo Surface + trazo outline-variant.
79
79
  *
80
80
  * @default 'elevated'
81
81
  */
82
82
  this.variant = 'elevated';
83
83
  /**
84
- * When `true`, applies M3 state layer overlays (hover, focus, pressed)
85
- * to communicate interactivity. The card background shifts slightly on hover.
84
+ * Cuando es `true`, aplica capas de estado M3 (hover, focus, pressed)
85
+ * para comunicar interactividad. El fondo de la tarjeta cambia ligeramente en hover.
86
86
  *
87
- * Use when the card itself is a clickable navigation or selection target.
87
+ * Úsalo cuando la tarjeta en es un objetivo de navegación o selección clicable.
88
88
  *
89
89
  * @default false
90
90
  */
91
91
  this.clickable = false;
92
92
  /**
93
- * When `true`, applies `--elevate3` box-shadow to simulate the M3 "dragged"
94
- * state as specified in the M3 card interaction spec.
93
+ * Cuando es `true`, aplica box-shadow `--elevate3` para simular el estado "arrastrado"
94
+ * M3 según lo especificado en la especificación de interacción de tarjetas M3.
95
95
  *
96
- * Consumers should toggle this attribute based on the drag state of the card
97
- * (e.g. via a drag-and-drop library callback).
96
+ * Los consumidores deben alternar este atributo basado en el estado de arrastre de la tarjeta
97
+ * (ej. a través de un callback de biblioteca drag-and-drop).
98
98
  *
99
99
  * @default false
100
100
  */
101
101
  this.draggable = false;
102
102
  /**
103
- * When `true`, the card renders at 50% opacity with `cursor: not-allowed`,
104
- * signaling that the card and its actions are unavailable.
103
+ * Cuando es `true`, la tarjeta se renderiza con opacidad del 50% con `cursor: not-allowed`,
104
+ * indicando que la tarjeta y sus acciones no están disponibles.
105
105
  *
106
106
  * @default false
107
107
  */
@@ -239,6 +239,24 @@ let MoniCard = class MoniCard extends MoniElement {
239
239
  }
240
240
  `
241
241
  ]; }
242
+ /**
243
+ * Renderiza el contenedor de la tarjeta como un `<section>` con envoltorio interactivo opcional.
244
+ *
245
+ * **¿Por qué `<section>`?**
246
+ * Las tarjetas representan una unidad distintiva y cohesiva de contenido. Usar `<section>` da
247
+ * a los lectores de pantalla un punto de referencia ARIA implícito para que puedan navegar entre tarjetas.
248
+ *
249
+ * **Tarjetas interactivas (`clickable=true`):**
250
+ * Cuando es `clickable`, toda la superficie de la tarjeta se convierte en un `<button>` que envuelve
251
+ * all slots, giving the card keyboard focus and `click` semantics. A
252
+ * `<moni-ripple>` is rendered as the first child to provide the M3 touch feedback.
253
+ *
254
+ * **Slot zones:**
255
+ * - `[slot="media"]` — image or video area at the card's leading edge.
256
+ * - `[slot="header"]` — title and supporting text row.
257
+ * - Default slot — the card's main content body.
258
+ * - `[slot="footer"]` — action buttons row at the trailing edge.
259
+ */
242
260
  render() {
243
261
  return html `
244
262
  <div class="media" part="media">