@moni-labs/moni-ui 0.4.13 → 0.4.14

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 (96) hide show
  1. package/custom-elements.json +91 -81
  2. package/dist/browser/moni-ui.iife.min.js +1537 -1384
  3. package/dist/browser/moni-ui.iife.min.js.br +0 -0
  4. package/dist/browser/moni-ui.iife.min.js.gz +0 -0
  5. package/dist/browser/moni-ui.iife.min.js.map +1 -1
  6. package/dist/browser/moni-ui.min.js +2703 -2481
  7. package/dist/browser/moni-ui.min.js.br +0 -0
  8. package/dist/browser/moni-ui.min.js.gz +0 -0
  9. package/dist/browser/moni-ui.min.js.map +1 -1
  10. package/dist/cdn/chunks/{class-map-DsL1Jr2T.js → class-map-QyT9W7rZ.js} +1 -1
  11. package/dist/cdn/chunks/{decorate-DxJYS4gw.js → decorate-B7wZvwrn.js} +629 -543
  12. package/dist/cdn/chunks/if-defined-5hr_ccFw.js +1 -0
  13. package/dist/cdn/chunks/{live-D52JqeKf.js → live-Hm1Di_ND.js} +1 -1
  14. package/dist/cdn/components/moni-app-bar.js +1 -1
  15. package/dist/cdn/components/moni-badge.js +1 -1
  16. package/dist/cdn/components/moni-bottom-sheet.js +1 -1
  17. package/dist/cdn/components/moni-button-group.js +1 -1
  18. package/dist/cdn/components/moni-button-segment.js +1 -1
  19. package/dist/cdn/components/moni-button.js +1 -1
  20. package/dist/cdn/components/moni-card.js +1 -1
  21. package/dist/cdn/components/moni-carousel.js +1 -1
  22. package/dist/cdn/components/moni-checkbox.js +1 -1
  23. package/dist/cdn/components/moni-chip.js +1 -1
  24. package/dist/cdn/components/moni-color-field.js +1 -1
  25. package/dist/cdn/components/moni-context-menu.js +1 -1
  26. package/dist/cdn/components/moni-dialog.js +1 -1
  27. package/dist/cdn/components/moni-divider.js +1 -1
  28. package/dist/cdn/components/moni-expansion.js +1 -1
  29. package/dist/cdn/components/moni-fab-menu.js +1 -1
  30. package/dist/cdn/components/moni-fab.js +1 -1
  31. package/dist/cdn/components/moni-file-field.js +1 -1
  32. package/dist/cdn/components/moni-icon.js +1 -1
  33. package/dist/cdn/components/moni-list-item.js +1 -1
  34. package/dist/cdn/components/moni-list.js +1 -1
  35. package/dist/cdn/components/moni-loading-indicator.js +1 -1
  36. package/dist/cdn/components/moni-menu-item.js +1 -1
  37. package/dist/cdn/components/moni-menu.js +1 -1
  38. package/dist/cdn/components/moni-morph-modal.js +3 -2
  39. package/dist/cdn/components/moni-nav-item.js +1 -1
  40. package/dist/cdn/components/moni-nav.js +1 -1
  41. package/dist/cdn/components/moni-progress.js +1 -1
  42. package/dist/cdn/components/moni-radio.js +1 -1
  43. package/dist/cdn/components/moni-ripple.js +1 -1
  44. package/dist/cdn/components/moni-segmented-button.js +1 -1
  45. package/dist/cdn/components/moni-select-option.js +1 -1
  46. package/dist/cdn/components/moni-select.js +512 -473
  47. package/dist/cdn/components/moni-shape.js +1 -1
  48. package/dist/cdn/components/moni-side-sheet.js +1 -1
  49. package/dist/cdn/components/moni-slider.js +1 -1
  50. package/dist/cdn/components/moni-snackbar.js +1 -1
  51. package/dist/cdn/components/moni-split-button.js +1 -1
  52. package/dist/cdn/components/moni-step.js +1 -1
  53. package/dist/cdn/components/moni-stepper.js +1 -1
  54. package/dist/cdn/components/moni-switch.js +1 -1
  55. package/dist/cdn/components/moni-tab.js +1 -1
  56. package/dist/cdn/components/moni-tabs.js +1 -1
  57. package/dist/cdn/components/moni-text-field.js +122 -95
  58. package/dist/cdn/components/moni-textarea.js +52 -52
  59. package/dist/cdn/components/moni-time-picker.js +1 -1
  60. package/dist/cdn/components/moni-toolbar.js +1 -1
  61. package/dist/cdn/components/moni-tooltip.js +1 -1
  62. package/dist/cdn/components/moni-typography.js +1 -1
  63. package/dist/cdn/importmap.json +98 -98
  64. package/dist/components/_base/field-styles.d.ts.map +1 -1
  65. package/dist/components/_base/field-styles.js +662 -576
  66. package/dist/components/moni-morph-modal.d.ts +10 -0
  67. package/dist/components/moni-morph-modal.d.ts.map +1 -1
  68. package/dist/components/moni-morph-modal.js +323 -217
  69. package/dist/components/moni-select.d.ts +16 -16
  70. package/dist/components/moni-select.d.ts.map +1 -1
  71. package/dist/components/moni-select.js +797 -727
  72. package/dist/components/moni-text-field.d.ts +15 -15
  73. package/dist/components/moni-text-field.d.ts.map +1 -1
  74. package/dist/components/moni-text-field.js +224 -180
  75. package/dist/components/moni-textarea.d.ts +13 -13
  76. package/dist/components/moni-textarea.d.ts.map +1 -1
  77. package/dist/components/moni-textarea.js +127 -122
  78. package/docs/api.json +97 -88
  79. package/docs/assets/moni-morph-modal/autoHeight--false.png +0 -0
  80. package/docs/assets/moni-morph-modal/autoHeight--true.png +0 -0
  81. package/docs/components/morph-modal.md +16 -7
  82. package/docs/components/select.md +74 -74
  83. package/docs/components/text-field.md +75 -66
  84. package/docs/components/textarea.md +51 -51
  85. package/docs/llms.txt +3 -3
  86. package/package.json +1 -1
  87. package/src/components/_base/field-styles.ts +723 -637
  88. package/src/components/moni-morph-modal.test.ts +490 -413
  89. package/src/components/moni-morph-modal.ts +2274 -2162
  90. package/src/components/moni-select.test.ts +489 -466
  91. package/src/components/moni-select.ts +1963 -1815
  92. package/src/components/moni-text-field.test.ts +366 -342
  93. package/src/components/moni-text-field.ts +717 -645
  94. package/src/components/moni-textarea.test.ts +201 -197
  95. package/src/components/moni-textarea.ts +476 -460
  96. package/dist/cdn/chunks/if-defined-DdzvcoI7.js +0 -1
package/docs/api.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "package": "@moni-labs/moni-ui",
3
- "generatedAt": "2026-08-22T19:15:29.989Z",
3
+ "generatedAt": "2026-08-24T08:08:23.078Z",
4
4
  "componentCount": 49,
5
5
  "components": [
6
6
  {
@@ -2868,7 +2868,7 @@
2868
2868
  "attribute": "target",
2869
2869
  "type": "string",
2870
2870
  "default": "''",
2871
- "description": "Selector del elemento disparador desde el cual transformarse (ej. '#fab' o '.my-button').\nSi se omite, el modal aún puede activarse programáticamente estableciendo `open = true`.",
2871
+ "description": "Selector del elemento disparador desde el cual transformarse (ej. '#fab' o '.my-button').\r\nSi se omite, el modal aún puede activarse programáticamente estableciendo `open = true`.",
2872
2872
  "options": [],
2873
2873
  "reflect": true
2874
2874
  },
@@ -2877,7 +2877,7 @@
2877
2877
  "attribute": "open",
2878
2878
  "type": "boolean",
2879
2879
  "default": "false",
2880
- "description": "Controla el estado abierto/cerrado del modal.\nPuede establecerse directamente, o se gestiona internamente cuando se hace clic en el elemento `target`.",
2880
+ "description": "Controla el estado abierto/cerrado del modal.\r\nPuede establecerse directamente, o se gestiona internamente cuando se hace clic en el elemento `target`.",
2881
2881
  "options": [],
2882
2882
  "reflect": true
2883
2883
  },
@@ -2998,6 +2998,15 @@
2998
2998
  "options": [],
2999
2999
  "reflect": true
3000
3000
  },
3001
+ {
3002
+ "name": "autoHeight",
3003
+ "attribute": "auto-height",
3004
+ "type": "boolean",
3005
+ "default": "false",
3006
+ "description": "Ajusta sólo la altura al contenido, sin superar expanded-height.",
3007
+ "options": [],
3008
+ "reflect": true
3009
+ },
3001
3010
  {
3002
3011
  "name": "fullscreen",
3003
3012
  "attribute": "fullscreen",
@@ -3048,12 +3057,12 @@
3048
3057
  {
3049
3058
  "name": "show",
3050
3059
  "signature": "show(): void",
3051
- "description": "Dispara la apertura del modal y coordina la animación de FLIP (First, Last, Invert, Play) / Morphing.\n1. Oculta visualmente el target original.\n2. Posiciona el modal colapsado exactamente sobre el target original (mismas dimensiones, color, y radios).\n3. Expande fluidamente el modal a sus dimensiones finales mediante transformaciones CSS."
3060
+ "description": "Dispara la apertura del modal y coordina la animación de FLIP (First, Last, Invert, Play) / Morphing.\r\n1. Oculta visualmente el target original.\r\n2. Posiciona el modal colapsado exactamente sobre el target original (mismas dimensiones, color, y radios).\r\n3. Expande fluidamente el modal a sus dimensiones finales mediante transformaciones CSS."
3052
3061
  },
3053
3062
  {
3054
3063
  "name": "showFrom",
3055
3064
  "signature": "showFrom(target: HTMLElement): void",
3056
- "description": "Abre el modal realizando el morph desde un elemento proporcionado directamente.\nÚtil cuando el trigger vive dentro de un Shadow DOM y no puede resolverse con `target`."
3065
+ "description": "Abre el modal realizando el morph desde un elemento proporcionado directamente.\r\nÚtil cuando el trigger vive dentro de un Shadow DOM y no puede resolverse con `target`."
3057
3066
  },
3058
3067
  {
3059
3068
  "name": "resizeTo",
@@ -3785,13 +3794,13 @@
3785
3794
  "tag": "moni-select",
3786
3795
  "className": "MoniSelect",
3787
3796
  "source": "src/components/moni-select.ts",
3788
- "description": "Componente Material Design 3 Select (Menú Desplegable).\n\nUn menú desplegable select personalizado completo con capacidad de búsqueda, grupos de opciones,\nnavegación por teclado, animación y un modo de cajón/hoja (drawer/sheet) móvil opcional.\nReemplaza el elemento nativo `<select>` con una alternativa completamente estilizada y accesible\nque cumple con M3.\n\n**Referencia a la especificación M3:** `m3-docs/components/menus/specs.md` (menús desplegables)\n\n**Resumen de características:**\n- Variantes Filled y Outlined que coinciden con los estilos de campo de texto de M3.\n- Etiqueta flotante (floating label) con la animación estándar de etiqueta flotante de estilos de campo.\n- Modo de búsqueda: el atributo `searchable` agrega un campo de entrada de filtro en línea.\n- Grupos de opciones: elementos `<moni-select-group>` en el slot para opciones jerárquicas.\n- Cajón móvil: el atributo `drawer` abre las opciones en un `<moni-bottom-sheet>`\n en lugar de un popup desplegable, ideal para interfaces táctiles (touch UIs).\n- Navegación por teclado: Teclas de flecha, Enter, Escape y Tab según combobox de ARIA.\n- Estado de carga: `loading` muestra un progreso circular indeterminado.\n- Soporte multi-valor: `multiple` permite selección múltiple.\n\n**Fuentes de opciones:**\nLas opciones se pueden proporcionar de dos maneras:\n1. **Elementos `<moni-select-option>` en la ranura (slot)** (por defecto, recomendado para SSR).\n2. **Propiedad `options`** — un array de `DropdownNode[]` para un control completamente programático.\n\n**Vinculación de valores (Value binding):**\nLa propiedad `value` contiene la cadena de valor de la opción actualmente seleccionada.\nPara selección múltiple, `values` contiene `string[]`. Al cambiar, se dispara un\nevento compuesto `'moni-change'`.",
3797
+ "description": "Componente Material Design 3 Select (Menú Desplegable).\r\n\r\nUn menú desplegable select personalizado completo con capacidad de búsqueda, grupos de opciones,\r\nnavegación por teclado, animación y un modo de cajón/hoja (drawer/sheet) móvil opcional.\r\nReemplaza el elemento nativo `<select>` con una alternativa completamente estilizada y accesible\r\nque cumple con M3.\r\n\r\n**Referencia a la especificación M3:** `m3-docs/components/menus/specs.md` (menús desplegables)\r\n\r\n**Resumen de características:**\r\n- Variantes Filled y Outlined que coinciden con los estilos de campo de texto de M3.\r\n- Etiqueta flotante (floating label) con la animación estándar de etiqueta flotante de estilos de campo.\r\n- Modo de búsqueda: el atributo `searchable` agrega un campo de entrada de filtro en línea.\r\n- Grupos de opciones: elementos `<moni-select-group>` en el slot para opciones jerárquicas.\r\n- Cajón móvil: el atributo `drawer` abre las opciones en un `<moni-bottom-sheet>`\r\n en lugar de un popup desplegable, ideal para interfaces táctiles (touch UIs).\r\n- Navegación por teclado: Teclas de flecha, Enter, Escape y Tab según combobox de ARIA.\r\n- Estado de carga: `loading` muestra un progreso circular indeterminado.\r\n- Soporte multi-valor: `multiple` permite selección múltiple.\r\n\r\n**Fuentes de opciones:**\r\nLas opciones se pueden proporcionar de dos maneras:\r\n1. **Elementos `<moni-select-option>` en la ranura (slot)** (por defecto, recomendado para SSR).\r\n2. **Propiedad `options`** — un array de `DropdownNode[]` para un control completamente programático.\r\n\r\n**Vinculación de valores (Value binding):**\r\nLa propiedad `value` contiene la cadena de valor de la opción actualmente seleccionada.\r\nPara selección múltiple, `values` contiene `string[]`. Al cambiar, se dispara un\r\nevento compuesto `'moni-change'`.",
3789
3798
  "properties": [
3790
3799
  {
3791
3800
  "name": "name",
3792
3801
  "attribute": "name",
3793
3802
  "type": "string",
3794
- "default": "''",
3803
+ "default": "\"\"",
3795
3804
  "description": "Nombre del campo select, usado para el envío del formulario.",
3796
3805
  "options": [],
3797
3806
  "reflect": true
@@ -3800,7 +3809,7 @@
3800
3809
  "name": "label",
3801
3810
  "attribute": "label",
3802
3811
  "type": "string",
3803
- "default": "''",
3812
+ "default": "\"\"",
3804
3813
  "description": "Texto de la etiqueta flotante.",
3805
3814
  "options": [],
3806
3815
  "reflect": true
@@ -3808,8 +3817,8 @@
3808
3817
  {
3809
3818
  "name": "variant",
3810
3819
  "attribute": "variant",
3811
- "type": "'filled' | 'outlined'",
3812
- "default": "'filled'",
3820
+ "type": "\"filled\" | \"outlined\"",
3821
+ "default": "\"filled\"",
3813
3822
  "description": "Variante visual del campo select.",
3814
3823
  "options": [
3815
3824
  "filled",
@@ -3820,8 +3829,8 @@
3820
3829
  {
3821
3830
  "name": "size",
3822
3831
  "attribute": "size",
3823
- "type": "'small' | 'medium' | 'large' | 'extra'",
3824
- "default": "'medium'",
3832
+ "type": "\"small\" | \"medium\" | \"large\" | \"extra\"",
3833
+ "default": "\"medium\"",
3825
3834
  "description": "Define las dimensiones del campo select.",
3826
3835
  "options": [
3827
3836
  "small",
@@ -3834,8 +3843,8 @@
3834
3843
  {
3835
3844
  "name": "shape",
3836
3845
  "attribute": "shape",
3837
- "type": "'round' | 'small-round' | 'square' | 'no-round'",
3838
- "default": "'no-round'",
3846
+ "type": "\"round\" | \"small-round\" | \"square\" | \"no-round\"",
3847
+ "default": "\"no-round\"",
3839
3848
  "description": "Forma (radio de borde) del campo.",
3840
3849
  "options": [
3841
3850
  "round",
@@ -3859,7 +3868,7 @@
3859
3868
  "attribute": "required",
3860
3869
  "type": "boolean",
3861
3870
  "default": "false",
3862
- "description": "Obliga a elegir una opción antes de enviar el formulario.\n\nEl `<input>` visible es de sólo lectura, así que la validación nativa no\nse aplica sobre él: la restricción se declara en el host con\n`ElementInternals.setValidity`, que es lo que mira el formulario.",
3871
+ "description": "Obliga a elegir una opción antes de enviar el formulario.\r\n\r\nEl `<input>` visible es de sólo lectura, así que la validación nativa no\r\nse aplica sobre él: la restricción se declara en el host con\r\n`ElementInternals.setValidity`, que es lo que mira el formulario.",
3863
3872
  "options": [],
3864
3873
  "reflect": true
3865
3874
  },
@@ -3876,7 +3885,7 @@
3876
3885
  "name": "helper",
3877
3886
  "attribute": "helper",
3878
3887
  "type": "string",
3879
- "default": "''",
3888
+ "default": "\"\"",
3880
3889
  "description": "Texto de ayuda mostrado debajo del campo.",
3881
3890
  "options": [],
3882
3891
  "reflect": true
@@ -3885,8 +3894,8 @@
3885
3894
  "name": "errorText",
3886
3895
  "attribute": "error-text",
3887
3896
  "type": "string",
3888
- "default": "''",
3889
- "description": "Texto de error mostrado debajo del campo cuando `error` es true.\nReemplaza al texto de ayuda.",
3897
+ "default": "\"\"",
3898
+ "description": "Texto de error mostrado debajo del campo cuando `error` es true.\r\nReemplaza al texto de ayuda.",
3890
3899
  "options": [],
3891
3900
  "reflect": true
3892
3901
  },
@@ -3903,7 +3912,7 @@
3903
3912
  "name": "value",
3904
3913
  "attribute": "value",
3905
3914
  "type": "string",
3906
- "default": "''",
3915
+ "default": "\"\"",
3907
3916
  "description": "El valor actual del select.",
3908
3917
  "options": [],
3909
3918
  "reflect": true
@@ -3912,7 +3921,7 @@
3912
3921
  "name": "icon",
3913
3922
  "attribute": "icon",
3914
3923
  "type": "string",
3915
- "default": "''",
3924
+ "default": "\"\"",
3916
3925
  "description": "Nombre del icono principal (leading icon, Material Symbols).",
3917
3926
  "options": [],
3918
3927
  "reflect": true
@@ -3921,7 +3930,7 @@
3921
3930
  "name": "trailingIcon",
3922
3931
  "attribute": "trailing-icon",
3923
3932
  "type": "string",
3924
- "default": "'arrow_drop_down'",
3933
+ "default": "\"arrow_drop_down\"",
3925
3934
  "description": "Nombre del icono final (trailing icon, Material Symbols) que indica el estado del menú desplegable.",
3926
3935
  "options": [],
3927
3936
  "reflect": true
@@ -3957,7 +3966,7 @@
3957
3966
  "name": "placeholder",
3958
3967
  "attribute": "placeholder",
3959
3968
  "type": "string",
3960
- "default": "''",
3969
+ "default": "\"\"",
3961
3970
  "description": "Texto de marcador de posición (placeholder) mostrado cuando no hay ningún valor seleccionado.",
3962
3971
  "options": [],
3963
3972
  "reflect": true
@@ -3965,9 +3974,9 @@
3965
3974
  {
3966
3975
  "name": "positioning",
3967
3976
  "attribute": "positioning",
3968
- "type": "'absolute' | 'fixed' | 'body'",
3969
- "default": "'absolute'",
3970
- "description": "Estrategia de posicionamiento para el menú desplegable.\n\n- `'absolute'`: permanece en el contexto de posicionamiento del select.\n- `'fixed'`: usa coordenadas del viewport, pero conserva su contexto de apilamiento.\n- `'body'`: usa la capa superior nativa (Popover API) para escapar de `overflow`,\n diálogos, bottom sheets y contextos de apilamiento.",
3977
+ "type": "\"absolute\" | \"fixed\" | \"body\"",
3978
+ "default": "\"absolute\"",
3979
+ "description": "Estrategia de posicionamiento para el menú desplegable.\r\n\r\n- `'absolute'`: permanece en el contexto de posicionamiento del select.\r\n- `'fixed'`: usa coordenadas del viewport, pero conserva su contexto de apilamiento.\r\n- `'body'`: usa la capa superior nativa (Popover API) para escapar de `overflow`,\r\n diálogos, bottom sheets y contextos de apilamiento.",
3971
3980
  "options": [
3972
3981
  "absolute",
3973
3982
  "fixed",
@@ -3978,8 +3987,8 @@
3978
3987
  {
3979
3988
  "name": "placement",
3980
3989
  "attribute": "placement",
3981
- "type": "'top' | 'bottom' | 'left' | 'right' | 'auto'",
3982
- "default": "'auto'",
3990
+ "type": "\"top\" | \"bottom\" | \"left\" | \"right\" | \"auto\"",
3991
+ "default": "\"auto\"",
3983
3992
  "description": "Ubicación preferida del menú desplegable con respecto al disparador (trigger).",
3984
3993
  "options": [
3985
3994
  "top",
@@ -3994,8 +4003,8 @@
3994
4003
  "name": "dropdownWidth",
3995
4004
  "attribute": "dropdown-width",
3996
4005
  "type": "string",
3997
- "default": "'trigger'",
3998
- "description": "Restricción de ancho del menú desplegable.\n- `'trigger'`: Coincide con el ancho del campo de entrada.\n- `'auto'`: Coincide con el ancho del contenido del menú desplegable.\n- O cualquier valor CSS de ancho válido (ej. '200px').",
4006
+ "default": "\"trigger\"",
4007
+ "description": "Restricción de ancho del menú desplegable.\r\n- `'trigger'`: Coincide con el ancho del campo de entrada.\r\n- `'auto'`: Coincide con el ancho del contenido del menú desplegable.\r\n- O cualquier valor CSS de ancho válido (ej. '200px').",
3999
4008
  "options": [],
4000
4009
  "reflect": true
4001
4010
  },
@@ -4003,8 +4012,8 @@
4003
4012
  "name": "dropdownMaxHeight",
4004
4013
  "attribute": "dropdown-max-height",
4005
4014
  "type": "string",
4006
- "default": "''",
4007
- "description": "Límite manual opcional para la altura del menú.\n\nAcepta cualquier longitud CSS válida, por ejemplo `240px`, `40vh` o\n`calc(100vh - 8rem)`. El valor nunca supera el límite automático calculado\nsegún el viewport, la posición del campo y el tope predeterminado de 75vh.\nUna cadena vacía conserva el cálculo automático.",
4015
+ "default": "\"\"",
4016
+ "description": "Límite manual opcional para la altura del menú.\r\n\r\nAcepta cualquier longitud CSS válida, por ejemplo `240px`, `40vh` o\r\n`calc(100vh - 8rem)`. El valor nunca supera el límite automático calculado\r\nsegún el viewport, la posición del campo y el tope predeterminado de 75vh.\r\nUna cadena vacía conserva el cálculo automático.",
4008
4017
  "options": [],
4009
4018
  "reflect": true
4010
4019
  }
@@ -4078,7 +4087,7 @@
4078
4087
  "--tertiary-container"
4079
4088
  ],
4080
4089
  "examples": [
4081
- "```html\n<moni-select label=\"País\" name=\"country\" variant=\"outlined\">\n <moni-select-option value=\"us\">Estados Unidos</moni-select-option>\n <moni-select-option value=\"gb\">Reino Unido</moni-select-option>\n <moni-select-option value=\"de\">Alemania</moni-select-option>\n</moni-select>\n\n<!-- Select con búsqueda -->\n<moni-select label=\"Idioma\" searchable>\n <moni-select-option value=\"ts\">TypeScript</moni-select-option>\n <moni-select-option value=\"py\">Python</moni-select-option>\n</moni-select>\n```"
4090
+ "```html\r\n<moni-select label=\"País\" name=\"country\" variant=\"outlined\">\r\n <moni-select-option value=\"us\">Estados Unidos</moni-select-option>\r\n <moni-select-option value=\"gb\">Reino Unido</moni-select-option>\r\n <moni-select-option value=\"de\">Alemania</moni-select-option>\r\n</moni-select>\r\n\r\n<!-- Select con búsqueda -->\r\n<moni-select label=\"Idioma\" searchable>\r\n <moni-select-option value=\"ts\">TypeScript</moni-select-option>\r\n <moni-select-option value=\"py\">Python</moni-select-option>\r\n</moni-select>\r\n```"
4082
4091
  ]
4083
4092
  },
4084
4093
  {
@@ -5250,13 +5259,13 @@
5250
5259
  "tag": "moni-text-field",
5251
5260
  "className": "MoniTextField",
5252
5261
  "source": "src/components/moni-text-field.ts",
5253
- "description": "Componente Material Design 3 Text Field (Campo de texto).\n\nUn campo de entrada con todas las funciones que envuelve un `<input>` nativo dentro de la\nestructura de campo M3 (clase `.field` de `fieldStyles`). Soporta etiquetas flotantes,\nvariantes llenas (filled) y contorneadas (outlined), iconos iniciales/finales (leading/trailing),\ntexto de ayuda y estados de error.\n\n**Referencia a la especificación M3:** `m3-docs/components/text-fields/specs.md`\n\n**Arquitectura visual:**\nUtiliza `fieldStyles` para toda la estructura CSS del campo. El contenedor del campo\nes un `<div class=\"field [modifiers]\">` que envuelve:\n1. Icono inicial (leading) opcional.\n2. Elemento `<input>` nativo.\n3. `<label>` flotante (cuando se establece `label`).\n4. Icono final (trailing) opcional o indicador de carga (spinner).\n5. `<output>` para texto de ayuda/error.\n\n**Sincronización de eventos:**\nEmite `moni-input` en cada tipeo y `moni-change` al consolidar el valor (blur/enter).\nEl valor interno del componente (`this.value`) se mantiene sincronizado automáticamente.",
5262
+ "description": "Componente Material Design 3 Text Field (Campo de texto).\r\n\r\nUn campo de entrada con todas las funciones que envuelve un `<input>` nativo dentro de la\r\nestructura de campo M3 (clase `.field` de `fieldStyles`). Soporta etiquetas flotantes,\r\nvariantes llenas (filled) y contorneadas (outlined), iconos iniciales/finales (leading/trailing),\r\ntexto de ayuda y estados de error.\r\n\r\n**Referencia a la especificación M3:** `m3-docs/components/text-fields/specs.md`\r\n\r\n**Arquitectura visual:**\r\nUtiliza `fieldStyles` para toda la estructura CSS del campo. El contenedor del campo\r\nes un `<div class=\"field [modifiers]\">` que envuelve:\r\n1. Icono inicial (leading) opcional.\r\n2. Elemento `<input>` nativo.\r\n3. `<label>` flotante (cuando se establece `label`).\r\n4. Icono final (trailing) opcional o indicador de carga (spinner).\r\n5. `<output>` para texto de ayuda/error.\r\n\r\n**Sincronización de eventos:**\r\nEmite `moni-input` en cada tipeo y `moni-change` al consolidar el valor (blur/enter).\r\nEl valor interno del componente (`this.value`) se mantiene sincronizado automáticamente.",
5254
5263
  "properties": [
5255
5264
  {
5256
5265
  "name": "name",
5257
5266
  "attribute": "name",
5258
5267
  "type": "string",
5259
- "default": "''",
5268
+ "default": "\"\"",
5260
5269
  "description": "El nombre del input, enviado con los datos del formulario.",
5261
5270
  "options": [],
5262
5271
  "reflect": true
@@ -5265,7 +5274,7 @@
5265
5274
  "name": "label",
5266
5275
  "attribute": "label",
5267
5276
  "type": "string",
5268
- "default": "''",
5277
+ "default": "\"\"",
5269
5278
  "description": "El texto de la etiqueta flotante.",
5270
5279
  "options": [],
5271
5280
  "reflect": true
@@ -5273,8 +5282,8 @@
5273
5282
  {
5274
5283
  "name": "variant",
5275
5284
  "attribute": "variant",
5276
- "type": "'filled' | 'outlined' | 'underlined'",
5277
- "default": "'filled'",
5285
+ "type": "\"filled\" | \"outlined\" | \"underlined\"",
5286
+ "default": "\"filled\"",
5278
5287
  "description": "Variante visual del campo de texto.",
5279
5288
  "options": [
5280
5289
  "filled",
@@ -5286,8 +5295,8 @@
5286
5295
  {
5287
5296
  "name": "size",
5288
5297
  "attribute": "size",
5289
- "type": "'small' | 'medium' | 'large' | 'extra'",
5290
- "default": "'medium'",
5298
+ "type": "\"small\" | \"medium\" | \"large\" | \"extra\"",
5299
+ "default": "\"medium\"",
5291
5300
  "description": "Define las dimensiones del campo de texto.",
5292
5301
  "options": [
5293
5302
  "small",
@@ -5300,8 +5309,8 @@
5300
5309
  {
5301
5310
  "name": "shape",
5302
5311
  "attribute": "shape",
5303
- "type": "'round' | 'small-round' | 'no-round'",
5304
- "default": "'no-round'",
5312
+ "type": "\"round\" | \"small-round\" | \"no-round\"",
5313
+ "default": "\"no-round\"",
5305
5314
  "description": "Forma del radio del borde (border-radius) del campo.",
5306
5315
  "options": [
5307
5316
  "round",
@@ -5313,8 +5322,8 @@
5313
5322
  {
5314
5323
  "name": "type",
5315
5324
  "attribute": "type",
5316
- "type": "'text' | 'password' | 'email' | 'number' | 'tel' | 'url' | 'search' | 'date' | 'time' | 'datetime-local' | 'month' | 'week' | 'color'",
5317
- "default": "'text'",
5325
+ "type": "\"text\" | \"password\" | \"email\" | \"number\" | \"tel\" | \"url\" | \"search\" | \"date\" | \"time\" | \"datetime-local\" | \"month\" | \"week\" | \"color\"",
5326
+ "default": "\"text\"",
5318
5327
  "description": "El tipo de input HTML nativo.",
5319
5328
  "options": [
5320
5329
  "text",
@@ -5337,7 +5346,7 @@
5337
5346
  "name": "icon",
5338
5347
  "attribute": "icon",
5339
5348
  "type": "string",
5340
- "default": "''",
5349
+ "default": "\"\"",
5341
5350
  "description": "Nombre del icono inicial (leading) (Material Symbols).",
5342
5351
  "options": [],
5343
5352
  "reflect": true
@@ -5346,7 +5355,7 @@
5346
5355
  "name": "trailingIcon",
5347
5356
  "attribute": "trailing-icon",
5348
5357
  "type": "string",
5349
- "default": "''",
5358
+ "default": "\"\"",
5350
5359
  "description": "Nombre del icono final (trailing) (Material Symbols).",
5351
5360
  "options": [],
5352
5361
  "reflect": true
@@ -5355,7 +5364,7 @@
5355
5364
  "name": "prefix",
5356
5365
  "attribute": "prefix",
5357
5366
  "type": "string",
5358
- "default": "''",
5367
+ "default": "\"\"",
5359
5368
  "description": "Prefijo de texto corto mostrado antes del valor del input.",
5360
5369
  "options": [],
5361
5370
  "reflect": true
@@ -5364,7 +5373,7 @@
5364
5373
  "name": "suffix",
5365
5374
  "attribute": "suffix",
5366
5375
  "type": "string",
5367
- "default": "''",
5376
+ "default": "\"\"",
5368
5377
  "description": "Sufijo de texto corto mostrado después del valor del input.",
5369
5378
  "options": [],
5370
5379
  "reflect": true
@@ -5373,7 +5382,7 @@
5373
5382
  "name": "suffixButtonIcon",
5374
5383
  "attribute": "suffix-button-icon",
5375
5384
  "type": "string",
5376
- "default": "''",
5385
+ "default": "\"\"",
5377
5386
  "description": "Icono del botón interactivo ubicado al final del campo.",
5378
5387
  "options": [],
5379
5388
  "reflect": true
@@ -5382,7 +5391,7 @@
5382
5391
  "name": "suffixButtonLabel",
5383
5392
  "attribute": "suffix-button-label",
5384
5393
  "type": "string",
5385
- "default": "'Acción del campo'",
5394
+ "default": "\"Acción del campo\"",
5386
5395
  "description": "Etiqueta accesible del botón suffix.",
5387
5396
  "options": [],
5388
5397
  "reflect": true
@@ -5391,7 +5400,7 @@
5391
5400
  "name": "helper",
5392
5401
  "attribute": "helper",
5393
5402
  "type": "string",
5394
- "default": "''",
5403
+ "default": "\"\"",
5395
5404
  "description": "Texto de ayuda mostrado debajo del campo.",
5396
5405
  "options": [],
5397
5406
  "reflect": true
@@ -5400,8 +5409,8 @@
5400
5409
  "name": "errorText",
5401
5410
  "attribute": "error-text",
5402
5411
  "type": "string",
5403
- "default": "''",
5404
- "description": "Texto de error mostrado debajo del campo cuando `error` es true.\nSobrescribe el texto de ayuda.",
5412
+ "default": "\"\"",
5413
+ "description": "Texto de error mostrado debajo del campo cuando `error` es true.\r\nSobrescribe el texto de ayuda.",
5405
5414
  "options": [],
5406
5415
  "reflect": true
5407
5416
  },
@@ -5436,7 +5445,7 @@
5436
5445
  "name": "value",
5437
5446
  "attribute": "value",
5438
5447
  "type": "string",
5439
- "default": "''",
5448
+ "default": "\"\"",
5440
5449
  "description": "El valor actual del input.",
5441
5450
  "options": [],
5442
5451
  "reflect": true
@@ -5445,7 +5454,7 @@
5445
5454
  "name": "placeholder",
5446
5455
  "attribute": "placeholder",
5447
5456
  "type": "string",
5448
- "default": "''",
5457
+ "default": "\"\"",
5449
5458
  "description": "Texto de marcador de posición (placeholder) mostrado cuando el input está vacío y la etiqueta es flotante.",
5450
5459
  "options": [],
5451
5460
  "reflect": true
@@ -5472,7 +5481,7 @@
5472
5481
  "name": "autocomplete",
5473
5482
  "attribute": "autocomplete",
5474
5483
  "type": "string",
5475
- "default": "''",
5484
+ "default": "\"\"",
5476
5485
  "description": "Pista de autocompletado del navegador, por ejemplo `email` o `current-password`.",
5477
5486
  "options": [],
5478
5487
  "reflect": true
@@ -5481,7 +5490,7 @@
5481
5490
  "name": "inputmode",
5482
5491
  "attribute": "inputmode",
5483
5492
  "type": "string",
5484
- "default": "''",
5493
+ "default": "\"\"",
5485
5494
  "description": "Teclado virtual a mostrar en móvil, por ejemplo `numeric` o `tel`.",
5486
5495
  "options": [],
5487
5496
  "reflect": true
@@ -5508,7 +5517,7 @@
5508
5517
  "name": "min",
5509
5518
  "attribute": "min",
5510
5519
  "type": "string",
5511
- "default": "''",
5520
+ "default": "\"\"",
5512
5521
  "description": "Valor mínimo para `number` y los tipos de fecha y hora.",
5513
5522
  "options": [],
5514
5523
  "reflect": true
@@ -5517,7 +5526,7 @@
5517
5526
  "name": "max",
5518
5527
  "attribute": "max",
5519
5528
  "type": "string",
5520
- "default": "''",
5529
+ "default": "\"\"",
5521
5530
  "description": "Valor máximo para `number` y los tipos de fecha y hora.",
5522
5531
  "options": [],
5523
5532
  "reflect": true
@@ -5526,7 +5535,7 @@
5526
5535
  "name": "step",
5527
5536
  "attribute": "step",
5528
5537
  "type": "string",
5529
- "default": "''",
5538
+ "default": "\"\"",
5530
5539
  "description": "Incremento para `number` y los tipos de fecha y hora.",
5531
5540
  "options": [],
5532
5541
  "reflect": true
@@ -5535,7 +5544,7 @@
5535
5544
  "name": "pattern",
5536
5545
  "attribute": "pattern",
5537
5546
  "type": "string",
5538
- "default": "''",
5547
+ "default": "\"\"",
5539
5548
  "description": "Expresión regular que debe cumplir el valor.",
5540
5549
  "options": [],
5541
5550
  "reflect": true
@@ -5544,8 +5553,8 @@
5544
5553
  "name": "mask",
5545
5554
  "attribute": "mask",
5546
5555
  "type": "string",
5547
- "default": "''",
5548
- "description": "Patrón Inputmask. Admite opcionales `[]`, grupos `()`, alternadores `|`,\ncuantificadores `{n,m}` y los tokens `9`, `a`, `*` y `K` (RUT).",
5556
+ "default": "\"\"",
5557
+ "description": "Patrón Inputmask. Admite opcionales `[]`, grupos `()`, alternadores `|`,\r\ncuantificadores `{n,m}` y los tokens `9`, `a`, `*` y `K` (RUT).",
5549
5558
  "options": [],
5550
5559
  "reflect": true
5551
5560
  },
@@ -5553,7 +5562,7 @@
5553
5562
  "name": "maskAlias",
5554
5563
  "attribute": "mask-alias",
5555
5564
  "type": "string",
5556
- "default": "''",
5565
+ "default": "\"\"",
5557
5566
  "description": "Alias integrado de Inputmask, por ejemplo `email`, `datetime`, `numeric`, `currency` o `ip`.",
5558
5567
  "options": [],
5559
5568
  "reflect": true
@@ -5576,12 +5585,12 @@
5576
5585
  },
5577
5586
  {
5578
5587
  "name": "maskOption",
5579
- "signature": "maskOption(options: InputmaskOptions, noRemask?: boolean): InputmaskInstance | undefined;",
5588
+ "signature": "maskOption(\r\n options: InputmaskOptions,\r\n noRemask?: boolean,\r\n ): InputmaskInstance | undefined;",
5580
5589
  "description": "Método público maskOption."
5581
5590
  },
5582
5591
  {
5583
5592
  "name": "maskOption",
5584
- "signature": "maskOption(nameOrOptions: string | InputmaskOptions, noRemask = false): unknown",
5593
+ "signature": "maskOption(\r\n nameOrOptions: string | InputmaskOptions,\r\n noRemask = false,\r\n ): unknown",
5585
5594
  "description": "Método público maskOption."
5586
5595
  },
5587
5596
  {
@@ -5611,7 +5620,7 @@
5611
5620
  },
5612
5621
  {
5613
5622
  "name": "formatWithMask",
5614
- "signature": "formatWithMask(value: string, metadata = false): string |",
5623
+ "signature": "formatWithMask(\r\n value: string,\r\n metadata = false,\r\n ): string |",
5615
5624
  "description": "Método público formatWithMask."
5616
5625
  },
5617
5626
  {
@@ -5693,20 +5702,20 @@
5693
5702
  "--primary"
5694
5703
  ],
5695
5704
  "examples": [
5696
- "```html\n<moni-text-field\n label=\"Dirección de correo\"\n type=\"email\"\n name=\"email\"\n icon=\"mail\"\n variant=\"outlined\"\n helper=\"Nunca compartiremos tu correo.\"\n></moni-text-field>\n\n<moni-text-field\n label=\"Monto\"\n type=\"number\"\n prefix=\"$\"\n error\n error-text=\"El valor debe ser positivo\"\n></moni-text-field>\n```"
5705
+ "```html\r\n<moni-text-field\r\n label=\"Dirección de correo\"\r\n type=\"email\"\r\n name=\"email\"\r\n icon=\"mail\"\r\n variant=\"outlined\"\r\n helper=\"Nunca compartiremos tu correo.\"\r\n></moni-text-field>\r\n\r\n<moni-text-field\r\n label=\"Monto\"\r\n type=\"number\"\r\n prefix=\"$\"\r\n error\r\n error-text=\"El valor debe ser positivo\"\r\n></moni-text-field>\r\n```"
5697
5706
  ]
5698
5707
  },
5699
5708
  {
5700
5709
  "tag": "moni-textarea",
5701
5710
  "className": "MoniTextarea",
5702
5711
  "source": "src/components/moni-textarea.ts",
5703
- "description": "Componente Material Design 3 Textarea (Área de texto).\n\nUn campo de entrada de texto multilínea diseñado para recolectar cantidades mayores de texto,\ncomo comentarios, descripciones o mensajes.\n\n**Referencia a la especificación M3:** `m3-docs/components/text-fields/specs.md`\n\n**Arquitectura visual:**\nComparte exactamente el mismo contenedor `.field` y motor de estilos que\n`<moni-text-field>`, pero internamente renderiza un `<textarea>` nativo en lugar\nde un `<input>`. Esto asegura la consistencia visual en todos los elementos del formulario\nen cuanto a etiquetas flotantes, texto de ayuda, estados de error e iconos.\n\n**Contador de caracteres:**\nSi se establece el atributo `maxlength`, el área de texto muestra automáticamente\nun contador de caracteres (`{longitud actual} / {maxlength}`) ubicado en el\nborde final (trailing) del área de texto de soporte (abajo a la derecha). Esto puede\nsuprimirse estableciendo el atributo `no-counter`.\n\n**Gestión del estado:**\nEste componente es puramente visual y representacional. Refleja los atributos\nhacia el textarea nativo, pero NO adjunta listeners internos para `@input` o\n`@change`. Los consumidores deben adjuntar listeners estándar del DOM directamente\na este elemento para capturar la entrada del usuario, tal como lo harían con un\ntextarea nativo.",
5712
+ "description": "Componente Material Design 3 Textarea (Área de texto).\r\n\r\nUn campo de entrada de texto multilínea diseñado para recolectar cantidades mayores de texto,\r\ncomo comentarios, descripciones o mensajes.\r\n\r\n**Referencia a la especificación M3:** `m3-docs/components/text-fields/specs.md`\r\n\r\n**Arquitectura visual:**\r\nComparte exactamente el mismo contenedor `.field` y motor de estilos que\r\n`<moni-text-field>`, pero internamente renderiza un `<textarea>` nativo en lugar\r\nde un `<input>`. Esto asegura la consistencia visual en todos los elementos del formulario\r\nen cuanto a etiquetas flotantes, texto de ayuda, estados de error e iconos.\r\n\r\n**Contador de caracteres:**\r\nSi se establece el atributo `maxlength`, el área de texto muestra automáticamente\r\nun contador de caracteres (`{longitud actual} / {maxlength}`) ubicado en el\r\nborde final (trailing) del área de texto de soporte (abajo a la derecha). Esto puede\r\nsuprimirse estableciendo el atributo `no-counter`.\r\n\r\n**Gestión del estado:**\r\nEste componente es puramente visual y representacional. Refleja los atributos\r\nhacia el textarea nativo, pero NO adjunta listeners internos para `@input` o\r\n`@change`. Los consumidores deben adjuntar listeners estándar del DOM directamente\r\na este elemento para capturar la entrada del usuario, tal como lo harían con un\r\ntextarea nativo.",
5704
5713
  "properties": [
5705
5714
  {
5706
5715
  "name": "name",
5707
5716
  "attribute": "name",
5708
5717
  "type": "string",
5709
- "default": "''",
5718
+ "default": "\"\"",
5710
5719
  "description": "El nombre del textarea, enviado con los datos del formulario.",
5711
5720
  "options": [],
5712
5721
  "reflect": true
@@ -5715,7 +5724,7 @@
5715
5724
  "name": "label",
5716
5725
  "attribute": "label",
5717
5726
  "type": "string",
5718
- "default": "''",
5727
+ "default": "\"\"",
5719
5728
  "description": "El texto de la etiqueta flotante.",
5720
5729
  "options": [],
5721
5730
  "reflect": true
@@ -5723,8 +5732,8 @@
5723
5732
  {
5724
5733
  "name": "variant",
5725
5734
  "attribute": "variant",
5726
- "type": "'filled' | 'outlined'",
5727
- "default": "'filled'",
5735
+ "type": "\"filled\" | \"outlined\"",
5736
+ "default": "\"filled\"",
5728
5737
  "description": "Variante visual del área de texto.",
5729
5738
  "options": [
5730
5739
  "filled",
@@ -5735,8 +5744,8 @@
5735
5744
  {
5736
5745
  "name": "size",
5737
5746
  "attribute": "size",
5738
- "type": "'small' | 'medium' | 'large' | 'extra'",
5739
- "default": "'medium'",
5747
+ "type": "\"small\" | \"medium\" | \"large\" | \"extra\"",
5748
+ "default": "\"medium\"",
5740
5749
  "description": "Define las dimensiones del área de texto.",
5741
5750
  "options": [
5742
5751
  "small",
@@ -5749,8 +5758,8 @@
5749
5758
  {
5750
5759
  "name": "shape",
5751
5760
  "attribute": "shape",
5752
- "type": "'round' | 'small-round' | 'square' | 'no-round'",
5753
- "default": "'no-round'",
5761
+ "type": "\"round\" | \"small-round\" | \"square\" | \"no-round\"",
5762
+ "default": "\"no-round\"",
5754
5763
  "description": "Forma del radio del borde (border-radius) del campo.",
5755
5764
  "options": [
5756
5765
  "round",
@@ -5764,7 +5773,7 @@
5764
5773
  "name": "icon",
5765
5774
  "attribute": "icon",
5766
5775
  "type": "string",
5767
- "default": "''",
5776
+ "default": "\"\"",
5768
5777
  "description": "Nombre del icono inicial (leading) (Material Symbols).",
5769
5778
  "options": [],
5770
5779
  "reflect": true
@@ -5773,7 +5782,7 @@
5773
5782
  "name": "trailingIcon",
5774
5783
  "attribute": "trailing-icon",
5775
5784
  "type": "string",
5776
- "default": "''",
5785
+ "default": "\"\"",
5777
5786
  "description": "Nombre del icono final (trailing) (Material Symbols).",
5778
5787
  "options": [],
5779
5788
  "reflect": true
@@ -5782,7 +5791,7 @@
5782
5791
  "name": "prefix",
5783
5792
  "attribute": "prefix",
5784
5793
  "type": "string",
5785
- "default": "''",
5794
+ "default": "\"\"",
5786
5795
  "description": "Prefijo de texto corto mostrado antes del valor del input.",
5787
5796
  "options": [],
5788
5797
  "reflect": true
@@ -5791,7 +5800,7 @@
5791
5800
  "name": "suffix",
5792
5801
  "attribute": "suffix",
5793
5802
  "type": "string",
5794
- "default": "''",
5803
+ "default": "\"\"",
5795
5804
  "description": "Sufijo de texto corto mostrado después del valor del input.",
5796
5805
  "options": [],
5797
5806
  "reflect": true
@@ -5828,7 +5837,7 @@
5828
5837
  "attribute": "maxlength",
5829
5838
  "type": "number | null",
5830
5839
  "default": "null",
5831
- "description": "Número máximo de caracteres permitidos en el área de texto.\nTambién habilita la visualización del contador de caracteres a menos que `noCounter` sea true.",
5840
+ "description": "Número máximo de caracteres permitidos en el área de texto.\r\nTambién habilita la visualización del contador de caracteres a menos que `noCounter` sea true.",
5832
5841
  "options": [],
5833
5842
  "reflect": true
5834
5843
  },
@@ -5863,7 +5872,7 @@
5863
5872
  "name": "autocomplete",
5864
5873
  "attribute": "autocomplete",
5865
5874
  "type": "string",
5866
- "default": "''",
5875
+ "default": "\"\"",
5867
5876
  "description": "Pista de autocompletado del navegador.",
5868
5877
  "options": [],
5869
5878
  "reflect": true
@@ -5899,7 +5908,7 @@
5899
5908
  "name": "helper",
5900
5909
  "attribute": "helper",
5901
5910
  "type": "string",
5902
- "default": "''",
5911
+ "default": "\"\"",
5903
5912
  "description": "Texto de ayuda mostrado debajo del campo.",
5904
5913
  "options": [],
5905
5914
  "reflect": true
@@ -5908,8 +5917,8 @@
5908
5917
  "name": "errorText",
5909
5918
  "attribute": "error-text",
5910
5919
  "type": "string",
5911
- "default": "''",
5912
- "description": "Texto de error mostrado debajo del campo cuando `error` es true.\nSobrescribe el texto de ayuda.",
5920
+ "default": "\"\"",
5921
+ "description": "Texto de error mostrado debajo del campo cuando `error` es true.\r\nSobrescribe el texto de ayuda.",
5913
5922
  "options": [],
5914
5923
  "reflect": true
5915
5924
  },
@@ -5926,7 +5935,7 @@
5926
5935
  "name": "value",
5927
5936
  "attribute": "value",
5928
5937
  "type": "string",
5929
- "default": "''",
5938
+ "default": "\"\"",
5930
5939
  "description": "El valor actual del área de texto.",
5931
5940
  "options": [],
5932
5941
  "reflect": true
@@ -5935,7 +5944,7 @@
5935
5944
  "name": "placeholder",
5936
5945
  "attribute": "placeholder",
5937
5946
  "type": "string",
5938
- "default": "''",
5947
+ "default": "\"\"",
5939
5948
  "description": "Texto de marcador de posición (placeholder) mostrado cuando el textarea está vacío y la etiqueta es flotante.",
5940
5949
  "options": [],
5941
5950
  "reflect": true
@@ -5999,7 +6008,7 @@
5999
6008
  ],
6000
6009
  "cssProperties": [],
6001
6010
  "examples": [
6002
- "```html\n<!-- Textarea llenado (filled) estándar -->\n<moni-textarea label=\"Descripción\" rows=\"4\"></moni-textarea>\n\n<!-- Textarea contorneado (outlined) con contador de caracteres -->\n<moni-textarea\n variant=\"outlined\"\n label=\"Biografía\"\n maxlength=\"160\"\n></moni-textarea>\n```"
6011
+ "```html\r\n<!-- Textarea llenado (filled) estándar -->\r\n<moni-textarea label=\"Descripción\" rows=\"4\"></moni-textarea>\r\n\r\n<!-- Textarea contorneado (outlined) con contador de caracteres -->\r\n<moni-textarea\r\n variant=\"outlined\"\r\n label=\"Biografía\"\r\n maxlength=\"160\"\r\n></moni-textarea>\r\n```"
6003
6012
  ]
6004
6013
  },
6005
6014
  {