desy-html 11.2.0 → 12.0.0

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 (117) hide show
  1. package/docs/_global.foot.njk +1 -1
  2. package/docs/_macro.example-render.njk +62 -18
  3. package/docs/ds/_ds.section.textos.njk +1 -1
  4. package/docs/index.html +10 -0
  5. package/docs/pagina-prueba.html +2 -2
  6. package/package.json +2 -2
  7. package/src/css/component.text.css +0 -1
  8. package/src/js/aria/utils.js +80 -15
  9. package/src/js/desy-html.js +239 -196
  10. package/src/js/filters/filter-caller.js +4 -2
  11. package/src/js/filters/filter-escape-ltgt.js +7 -0
  12. package/src/js/filters/filter-quotes.js +50 -0
  13. package/src/js/filters/filter-version.js +8 -0
  14. package/src/js/filters/index.js +7 -1
  15. package/src/templates/components/accordion/_examples.accordion.njk +107 -107
  16. package/src/templates/components/accordion/_template.accordion.njk +5 -5
  17. package/src/templates/components/accordion-history/_examples.accordion-history.njk +119 -119
  18. package/src/templates/components/accordion-history/_template.accordion-history.njk +11 -11
  19. package/src/templates/components/alert/_examples.alert.njk +2 -2
  20. package/src/templates/components/breadcrumbs/_examples.breadcrumbs.njk +4 -4
  21. package/src/templates/components/breadcrumbs/_template.breadcrumbs.njk +4 -4
  22. package/src/templates/components/button/_examples.button.njk +19 -19
  23. package/src/templates/components/button/_template.button.njk +2 -2
  24. package/src/templates/components/button-loader/_examples.button-loader.njk +17 -17
  25. package/src/templates/components/button-loader/_template.button-loader.njk +2 -2
  26. package/src/templates/components/card/_examples.card.njk +3 -3
  27. package/src/templates/components/card/_template.card.njk +4 -4
  28. package/src/templates/components/character-count/_examples.character-count.njk +2 -2
  29. package/src/templates/components/checkboxes/_examples.checkboxes.njk +6 -6
  30. package/src/templates/components/checkboxes/_template.checkboxes.njk +2 -2
  31. package/src/templates/components/collapsible/_examples.collapsible.njk +4 -4
  32. package/src/templates/components/collapsible/_template.collapsible.njk +1 -1
  33. package/src/templates/components/date-input/_template.date-input.njk +1 -1
  34. package/src/templates/components/datepicker/_examples.datepicker.njk +45 -62
  35. package/src/templates/components/datepicker/_styles.datepicker.css +4 -0
  36. package/src/templates/components/datepicker/_template.datepicker.njk +10 -2
  37. package/src/templates/components/description-list/_examples.description-list.njk +3 -3
  38. package/src/templates/components/description-list/_template.description-list.njk +2 -2
  39. package/src/templates/components/details/_examples.details.njk +3 -3
  40. package/src/templates/components/details/_template.details.njk +1 -1
  41. package/src/templates/components/dialog/_examples.dialog.njk +4 -4
  42. package/src/templates/components/dropdown/_examples.dropdown.njk +31 -17
  43. package/src/templates/components/dropdown/_template.dropdown.njk +1 -1
  44. package/src/templates/components/error-message/_examples.error-message.njk +1 -1
  45. package/src/templates/components/error-message/_template.error-message.njk +1 -1
  46. package/src/templates/components/error-summary/_template.error-summary.njk +2 -2
  47. package/src/templates/components/fieldset/_examples.fieldset.njk +3 -3
  48. package/src/templates/components/fieldset/_template.fieldset.njk +7 -7
  49. package/src/templates/components/footer/_examples.footer.njk +32 -32
  50. package/src/templates/components/footer/_template.footer.njk +6 -6
  51. package/src/templates/components/header/_examples.header.njk +14 -8
  52. package/src/templates/components/header/_template.header.header__navigation.njk +2 -2
  53. package/src/templates/components/header/_template.header.header__offcanvasButton.njk +1 -1
  54. package/src/templates/components/header/_template.header.header__subnav.njk +1 -1
  55. package/src/templates/components/header/_template.header.njk +2 -2
  56. package/src/templates/components/header-advanced/_examples.header-advanced.njk +14 -8
  57. package/src/templates/components/header-advanced/_template.header-advanced.njk +3 -3
  58. package/src/templates/components/header-mini/_examples.header-mini.njk +3 -3
  59. package/src/templates/components/header-mini/_template.header-mini.njk +2 -2
  60. package/src/templates/components/hint/_examples.hint.njk +1 -1
  61. package/src/templates/components/hint/_template.hint.njk +1 -1
  62. package/src/templates/components/input/_examples.input.njk +7 -7
  63. package/src/templates/components/input-group/_examples.input-group.njk +1 -1
  64. package/src/templates/components/input-group/_template.input-group.njk +1 -1
  65. package/src/templates/components/item/_examples.item.njk +23 -23
  66. package/src/templates/components/item/_template.item.njk +9 -9
  67. package/src/templates/components/label/_examples.label.njk +2 -2
  68. package/src/templates/components/label/_template.label.njk +1 -1
  69. package/src/templates/components/links-list/_examples.links-list.njk +29 -32
  70. package/src/templates/components/links-list/_template.links-list.njk +11 -11
  71. package/src/templates/components/listbox/_examples.listbox.njk +16 -16
  72. package/src/templates/components/listbox/_template.listbox.njk +3 -3
  73. package/src/templates/components/media-object/_examples.media-object.njk +5 -5
  74. package/src/templates/components/menu-horizontal/_examples.menu-horizontal.njk +16 -16
  75. package/src/templates/components/menu-horizontal/_template.menu-horizontal.njk +2 -2
  76. package/src/templates/components/menu-navigation/_examples.menu-navigation.njk +6 -6
  77. package/src/templates/components/menu-navigation/_template.menu-navigation.njk +4 -4
  78. package/src/templates/components/menu-vertical/_examples.menu-vertical.njk +8 -8
  79. package/src/templates/components/menu-vertical/_template.menu-vertical.njk +9 -9
  80. package/src/templates/components/menubar/_examples.menubar.njk +16 -16
  81. package/src/templates/components/menubar/_template.menubar.njk +7 -7
  82. package/src/templates/components/modal/_examples.modal.njk +18 -18
  83. package/src/templates/components/modal/_template.modal.njk +8 -8
  84. package/src/templates/components/nav/_examples.nav.njk +7 -7
  85. package/src/templates/components/nav/_template.nav.njk +2 -2
  86. package/src/templates/components/notification/_examples.notification.njk +9 -9
  87. package/src/templates/components/notification/_template.notification.njk +11 -11
  88. package/src/templates/components/pagination/_examples.pagination.njk +6 -6
  89. package/src/templates/components/pagination/_template.pagination.njk +3 -3
  90. package/src/templates/components/pill/_examples.pill.njk +8 -8
  91. package/src/templates/components/pill/_template.pill.njk +3 -3
  92. package/src/templates/components/radios/_examples.radios.njk +2 -2
  93. package/src/templates/components/radios/_template.radios.njk +1 -1
  94. package/src/templates/components/select/_examples.select.njk +1 -1
  95. package/src/templates/components/skip-link/_examples.skip-link.njk +1 -1
  96. package/src/templates/components/skip-link/_template.skip-link.njk +1 -1
  97. package/src/templates/components/status/_examples.status.njk +1 -1
  98. package/src/templates/components/status/_template.status.njk +1 -1
  99. package/src/templates/components/status-item/_examples.status-item.njk +15 -15
  100. package/src/templates/components/status-item/_template.status-item.njk +3 -3
  101. package/src/templates/components/table/_examples.table.njk +3 -3
  102. package/src/templates/components/table/_template.table.njk +2 -2
  103. package/src/templates/components/table-advanced/_examples.table-advanced.njk +7 -7
  104. package/src/templates/components/table-advanced/_template.table-advanced.njk +5 -5
  105. package/src/templates/components/tabs/_examples.tabs.njk +19 -19
  106. package/src/templates/components/tabs/_styles.tabs.css +2 -2
  107. package/src/templates/components/tabs/_template.tabs.njk +7 -7
  108. package/src/templates/components/textarea/_examples.textarea.njk +2 -2
  109. package/src/templates/components/toggle/_examples.toggle.njk +29 -29
  110. package/src/templates/components/toggle/_template.toggle.njk +2 -2
  111. package/src/templates/components/tooltip/_examples.tooltip.njk +11 -11
  112. package/src/templates/components/tooltip/_template.tooltip.njk +3 -3
  113. package/src/templates/components/tree/_examples.tree.njk +12 -60
  114. package/src/templates/components/tree/_template.tree.njk +4 -4
  115. package/src/templates/includes/_test-include.njk +2 -2
  116. package/src/templates/pages/_page.footer.njk +1 -1
  117. package/src/templates/pages/_template.logged-selector-subheader.njk +1 -1
@@ -274,7 +274,7 @@
274
274
  "classes": "lg:w-1/3 px-base pt-sm lg:pb-sm text-sm lg:text-base text-neutral-dark"
275
275
  },
276
276
  "definition": {
277
- "html": '<strong>45,5€</strong>',
277
+ "html": "<strong>45,5€</strong>",
278
278
  "classes": "lg:w-2/3 px-base py-sm"
279
279
  },
280
280
  "classes": "lg:flex -mb-px border-t border-b border-neutral-base"
@@ -381,7 +381,7 @@
381
381
  "classes": "lg:w-1/3 px-base pt-sm lg:pb-sm text-sm lg:text-base text-neutral-dark"
382
382
  },
383
383
  "definition": {
384
- "html": '<strong>Si</strong>',
384
+ "html": "<strong>Si</strong>",
385
385
  "classes": "lg:w-2/3 px-base py-sm lg:text-right"
386
386
  },
387
387
  "classes": "lg:flex -mb-px border-t border-b border-neutral-base"
@@ -399,7 +399,7 @@
399
399
  "classes": "mb-sm"
400
400
  },
401
401
  "definition": {
402
- "html": '<span class="font-bold text-4xl">45</span> <svg class="inline-block align-baseline ml-sm" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 140 140" width="1.6rem" height="1.6rem"><path d="M140 20a20 20 0 00-20-20H20A20 20 0 000 20v100a20 20 0 0020 20h70a10 10 0 007.07-2.93l40-40A10 10 0 00140 90zM20 22.5a2.5 2.5 0 012.5-2.5h95a2.5 2.5 0 012.5 2.5v55a2.5 2.5 0 01-2.5 2.5H95a15 15 0 00-15 15v22.5a2.5 2.5 0 01-2.5 2.5h-55a2.5 2.5 0 01-2.5-2.5z"/></svg><a href="/" class="c-link block mt-sm font-normal text-sm">Ver todos</a>'
402
+ "html": "<span class='font-bold text-4xl'>45</span> <svg class='inline-block align-baseline ml-sm' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 140 140' width='1.6rem' height='1.6rem'><path d='M140 20a20 20 0 00-20-20H20A20 20 0 000 20v100a20 20 0 0020 20h70a10 10 0 007.07-2.93l40-40A10 10 0 00140 90zM20 22.5a2.5 2.5 0 012.5-2.5h95a2.5 2.5 0 012.5 2.5v55a2.5 2.5 0 01-2.5 2.5H95a15 15 0 00-15 15v22.5a2.5 2.5 0 01-2.5 2.5h-55a2.5 2.5 0 01-2.5-2.5z'/></svg><a href='/' class='c-link block mt-sm font-normal text-sm'>Ver todos</a>"
403
403
  }
404
404
  }
405
405
  ],
@@ -6,11 +6,11 @@
6
6
  {%- for attribute, value in item.attributes %} {{attribute}}="{{value}}"{% endfor %}>
7
7
  <dt class="{% if item.term.classes %}{{ item.term.classes }}{% else %}text-sm text-neutral-dark{% endif %}"
8
8
  {%- for attribute, value in item.term.attributes %} {{attribute}}="{{value}}"{% endfor %}>
9
- {{ item.term.html | safe if item.term.html else item.term.text }}
9
+ {{ item.term.html | filterquotes | safe if item.term.html else item.term.text }}
10
10
  </dt>
11
11
  <dd class="{% if item.definition.classes %}{{ item.definition.classes }}{% else %}text-base text-black{% endif %}"
12
12
  {%- for attribute, value in item.definition.attributes %} {{attribute}}="{{value}}"{% endfor %}>
13
- {{ item.definition.html | safe if item.definition.html else item.definition.text }}
13
+ {{ item.definition.html | filterquotes | safe if item.definition.html else item.definition.text }}
14
14
  </dd>
15
15
  </div>
16
16
  {% endfor %}
@@ -11,7 +11,7 @@
11
11
  },
12
12
  {
13
13
  "name": "expandido",
14
- "description": 'Usa el parámetro <code>"open": true</code> para mostrar inicialmente abierto un item.',
14
+ "description": "Usa el parámetro <code>'open': true</code> para mostrar inicialmente abierto un item.",
15
15
  "data": {
16
16
  "id": "mas-informacion",
17
17
  "summary": {
@@ -25,7 +25,7 @@
25
25
  "name": "con HTML",
26
26
  "data": {
27
27
  "summary": {
28
- "html": 'Más información <em>actualizada</em>'
28
+ "html": "Más información <em>actualizada</em>"
29
29
  },
30
30
  "caller": "<p>Lorem ipsum dolor, sit amet consectetur, adipisicing elit. Quae omnis ipsa eius dolorum, maiores! Labore quaerat nam pariatur minima consectetur, tempora magnam. At sequi quidem exercitationem velit id, pariatur, animi.</p>"
31
31
  }
@@ -34,7 +34,7 @@
34
34
  "name": "con clases",
35
35
  "data": {
36
36
  "summary": {
37
- "html": 'Más información <em>actualizada</em>',
37
+ "html": "Más información <em>actualizada</em>",
38
38
  "classes": "hover:underline"
39
39
  },
40
40
  "classes": "p-base bg-primary-light text-primary-base",
@@ -2,7 +2,7 @@
2
2
  <details {%- if params.id %} id="{{params.id}}"{% endif %} class="{%- if params.classes %} {{ params.classes }}{% endif %}" {%- for attribute, value in params.attributes %} {{attribute}}="{{value}}"{% endfor %} {{- " open" if params.open }}>
3
3
  <summary class="py-sm cursor-pointer focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black">
4
4
  <span class="{% if params.summary.classes %}{{ params.summary.classes }}{% else %}c-link{% endif %}">
5
- {{ params.summary.html | safe if params.summary.html else params.summary.text }}
5
+ {{ params.summary.html | filterquotes | safe if params.summary.html else params.summary.text }}
6
6
  </span>
7
7
  </summary>
8
8
  <div class="py-sm">
@@ -39,7 +39,7 @@
39
39
  ],
40
40
  "itemsSecondary": [
41
41
  {
42
- "html": 'Cancelar <span class="sr-only">y cerrar la ventana modal</span>',
42
+ "html": "Cancelar <span class='sr-only'>y cerrar la ventana modal</span>",
43
43
  "attributes": {
44
44
  "onclick": "closeDialog(this)"
45
45
  }
@@ -60,7 +60,7 @@
60
60
  },
61
61
  "itemsSecondary": [
62
62
  {
63
- "html": 'Cerrar',
63
+ "html": "Cerrar",
64
64
  "attributes": {
65
65
  "onclick": "closeDialog(this)"
66
66
  }
@@ -75,7 +75,7 @@
75
75
  {% set examples = [
76
76
  {
77
77
  "name": "Modal lanzado con un Dialog",
78
- "description": 'Un dialog es un componente que permite mostrar otro componente que se muestra sobre la página, con una capa negra semitransparente por debajo. Se utiliza para mostrar modales o para mostrar el menú móvil de la cabecera. Si haces click en la capa negra de debajo o si pulsas la tecla Esc se cierra el contenido del Dialog. Mira el código para ver cómo usamos la función <code>openDialog</code>, el primer parámetro es el id del contenido a mostrar, el segundo parámetro es el nodo que debe tomar foco al cerrar el dialog, y el tercer elemento es el id del elemento al que se le da el foco al abrir el contenido. En este ejemplo de modal usamos los atributos de accesibilidad: <code>"role":"dialog"</code> y <code>"aria-modal": true</code>',
78
+ "description": "Un dialog es un componente que permite mostrar otro componente que se muestra sobre la página, con una capa negra semitransparente por debajo. Se utiliza para mostrar modales o para mostrar el menú móvil de la cabecera. Si haces click en la capa negra de debajo o si pulsas la tecla Esc se cierra el contenido del Dialog. Mira el código para ver cómo usamos la función <code>openDialog</code>, el primer parámetro es el id del contenido a mostrar, el segundo parámetro es el nodo que debe tomar foco al cerrar el dialog, y el tercer elemento es el id del elemento al que se le da el foco al abrir el contenido. En este ejemplo de modal usamos los atributos de accesibilidad: <code>'role':'dialog'</code> y <code>'aria-modal': true</code>",
79
79
  "data": {
80
80
  "button": {
81
81
  "text": "Abrir modal",
@@ -116,7 +116,7 @@
116
116
  },
117
117
  {
118
118
  "name": "Modal lanzado con un Dialog con JavaScript",
119
- "description": 'También puedes usar con javascript la función global <code>openDialog(dialog, focusAfterClosed, focusFirst)</code>, para abrir la modal usando su id. La función admite tres parámetros <code>dialog</code>, que es el id de la modal que queremos abrir, <code>focusAfterClosed</code>, el elemento que tendrá el foco cuando cerremos la modal, y <code>focusFirst</code>, el elemento que tendra el foco al abrir la modal. Ej: Abre la consola del navegador y escribe <code>openDialog("modal-javascript", "button-javascript-action-example", "label-javascript-action-example")</code> para mostrar la modal.',
119
+ "description": "También puedes usar con javascript la función global <code>openDialog(dialog, focusAfterClosed, focusFirst)</code>, para abrir la modal usando su id. La función admite tres parámetros <code>dialog</code>, que es el id de la modal que queremos abrir, <code>focusAfterClosed</code>, el elemento que tendrá el foco cuando cerremos la modal, y <code>focusFirst</code>, el elemento que tendra el foco al abrir la modal. Ej: Abre la consola del navegador y escribe <code>openDialog('modal-javascript', 'button-javascript-action-example', 'label-javascript-action-example')</code> para mostrar la modal.",
120
120
  "data": {
121
121
  "button": {
122
122
  "text": "Abrir modal con JavaScript",
@@ -4,34 +4,34 @@
4
4
  "name": "por defecto",
5
5
  "data": {
6
6
  "text": "Por defecto",
7
- "caller": "<div class=\" w-48 p-2 \"><div class=\" border-4 border-dashed border-gray-200 rounded-lg h-40 \"></div></div>"
7
+ "caller": "<div class=' w-48 p-2 '><div class=' border-4 border-dashed border-gray-200 rounded-lg h-40 '></div></div>"
8
8
  }
9
9
  },
10
10
  {
11
11
  "name": "con estado activo",
12
- "description": 'Simula activar la pseudo-clase de CSS <code>:active</code>. En realidad sólo se usa para documentar estos ejemplos.',
12
+ "description": "Simula activar la pseudo-clase de CSS <code>:active</code>. En realidad sólo se usa para documentar estos ejemplos.",
13
13
  "data": {
14
14
  "text": "Activo",
15
15
  "classes": "ds-active",
16
- "caller": "<div class=\" w-48 p-2 \"><div class=\" border-4 border-dashed border-gray-200 rounded-lg h-40 \"></div></div>"
16
+ "caller": "<div class=' w-48 p-2 '><div class=' border-4 border-dashed border-gray-200 rounded-lg h-40 '></div></div>"
17
17
  }
18
18
  },
19
19
  {
20
20
  "name": "con estado hover",
21
- "description": 'Simula activar la pseudo-clase de CSS <code>:hover</code>. En realidad sólo se usa para documentar estos ejemplos.',
21
+ "description": "Simula activar la pseudo-clase de CSS <code>:hover</code>. En realidad sólo se usa para documentar estos ejemplos.",
22
22
  "data": {
23
23
  "text": "Hover",
24
24
  "classes": "ds-hover",
25
- "caller": "<div class=\" w-48 p-2 \"><div class=\" border-4 border-dashed border-gray-200 rounded-lg h-40 \"></div></div>"
25
+ "caller": "<div class=' w-48 p-2 '><div class=' border-4 border-dashed border-gray-200 rounded-lg h-40 '></div></div>"
26
26
  }
27
27
  },
28
28
  {
29
29
  "name": "con estado focus",
30
- "description": 'Simula activar la pseudo-clase de CSS <code>:focus</code>. En realidad sólo se usa para documentar estos ejemplos.',
30
+ "description": "Simula activar la pseudo-clase de CSS <code>:focus</code>. En realidad sólo se usa para documentar estos ejemplos.",
31
31
  "data": {
32
32
  "text": "Focus",
33
33
  "classes": "ds-focus",
34
- "caller": "<div class=\" w-48 p-2 \"><div class=\" border-4 border-dashed border-gray-200 rounded-lg h-40 \"></div></div>"
34
+ "caller": "<div class=' w-48 p-2 '><div class=' border-4 border-dashed border-gray-200 rounded-lg h-40 '></div></div>"
35
35
  }
36
36
  },
37
37
  {
@@ -40,7 +40,7 @@
40
40
  "data": {
41
41
  "text": "Primario",
42
42
  "classes": "c-dropdown--primary",
43
- "caller": "<div class=\" w-48 p-2 \"><div class=\" border-4 border-dashed border-gray-200 rounded-lg h-40 \"></div></div>"
43
+ "caller": "<div class=' w-48 p-2 '><div class=' border-4 border-dashed border-gray-200 rounded-lg h-40 '></div></div>"
44
44
  }
45
45
  },
46
46
  {
@@ -48,7 +48,7 @@
48
48
  "data": {
49
49
  "text": "Transparente",
50
50
  "classes": "c-dropdown--transparent",
51
- "caller": "<div class=\" w-48 p-2 \"><div class=\" border-4 border-dashed border-gray-200 rounded-lg h-40 \"></div></div>"
51
+ "caller": "<div class=' w-48 p-2 '><div class=' border-4 border-dashed border-gray-200 rounded-lg h-40 '></div></div>"
52
52
  }
53
53
  },
54
54
  {
@@ -56,7 +56,7 @@
56
56
  "data": {
57
57
  "text": "Header",
58
58
  "classes": "c-dropdown--header",
59
- "caller": "<div class=\" w-48 p-2 \"><div class=\" border-4 border-dashed border-gray-200 rounded-lg h-40 \"></div></div>"
59
+ "caller": "<div class=' w-48 p-2 '><div class=' border-4 border-dashed border-gray-200 rounded-lg h-40 '></div></div>"
60
60
  }
61
61
  },
62
62
  {
@@ -64,7 +64,7 @@
64
64
  "data": {
65
65
  "text": "Grande",
66
66
  "classes": "c-dropdown--lg",
67
- "caller": "<div class=\" w-48 p-2 \"><div class=\" border-4 border-dashed border-gray-200 rounded-lg h-40 \"></div></div>"
67
+ "caller": "<div class=' w-48 p-2 '><div class=' border-4 border-dashed border-gray-200 rounded-lg h-40 '></div></div>"
68
68
  }
69
69
  },
70
70
  {
@@ -72,7 +72,7 @@
72
72
  "data": {
73
73
  "text": "Botón pequeño con texto muy largo",
74
74
  "classes": "c-dropdown--sm",
75
- "caller": "<div class=\" w-48 p-2 \"><div class=\" border-4 border-dashed border-gray-200 rounded-lg h-40 \"></div></div>"
75
+ "caller": "<div class=' w-48 p-2 '><div class=' border-4 border-dashed border-gray-200 rounded-lg h-40 '></div></div>"
76
76
  }
77
77
  },
78
78
  {
@@ -81,7 +81,7 @@
81
81
  "data": {
82
82
  "text": "Botón pequeño con texto muy largo",
83
83
  "classes": "c-dropdown--has-selection c-dropdown--sm",
84
- "caller": "<div class=\" w-48 p-2 \"><div class=\" border-4 border-dashed border-gray-200 rounded-lg h-40 \"></div></div>"
84
+ "caller": "<div class=' w-48 p-2 '><div class=' border-4 border-dashed border-gray-200 rounded-lg h-40 '></div></div>"
85
85
  }
86
86
  },
87
87
  {
@@ -89,7 +89,7 @@
89
89
  "data": {
90
90
  "text": "Deshabilitado",
91
91
  "disabled": true,
92
- "caller": "<div class=\" w-48 p-2 \"><div class=\" border-4 border-dashed border-gray-200 rounded-lg h-40 \"></div></div>"
92
+ "caller": "<div class=' w-48 p-2 '><div class=' border-4 border-dashed border-gray-200 rounded-lg h-40 '></div></div>"
93
93
  }
94
94
  },
95
95
  {
@@ -98,7 +98,7 @@
98
98
  "data": {
99
99
  "text": "Clases en container",
100
100
  "classesContainer": "inline-block p-base bg-primary-light",
101
- "caller": "<div class=\" w-48 p-2 \"><div class=\" border-4 border-dashed border-gray-200 rounded-lg h-40 \"></div></div>"
101
+ "caller": "<div class=' w-48 p-2 '><div class=' border-4 border-dashed border-gray-200 rounded-lg h-40 '></div></div>"
102
102
  }
103
103
  },
104
104
  {
@@ -107,7 +107,7 @@
107
107
  "data": {
108
108
  "text": "Clases al contenido del tooltip",
109
109
  "classesTooltip": "max-h-64 overflow-y-auto",
110
- "caller": "<div class=\" w-64 p-2 \"><div class=\" border-4 border-dashed border-gray-200 rounded-lg h-64 \"></div></div>"
110
+ "caller": "<div class=' w-64 p-2 '><div class=' border-4 border-dashed border-gray-200 rounded-lg h-64 '></div></div>"
111
111
  }
112
112
  },
113
113
  {
@@ -117,7 +117,21 @@
117
117
  "text": "Dropdown anchura completa",
118
118
  "classes": "w-full justify-between",
119
119
  "classesTooltip": "w-max max-h-64 overflow-y-auto",
120
- "caller": "<div class=\" p-2 \"><div class=\" border-4 border-dashed border-gray-200 rounded-lg h-64 \"><div style=\" width:900px \"></div></div></div>"
120
+ "caller": "<div class=' p-2 '><div class=' border-4 border-dashed border-gray-200 rounded-lg h-64 '><div style=' width:900px '></div></div></div>"
121
+ }
122
+ },
123
+ {
124
+ "name": "Con role dialog",
125
+ "description": 'Usa los atributos <code>data-aria-haspopup="dialog" data-role="dialog" data-aria-modal="false" data-aria-label="Información adicional"</code> para abrir un desplegable que no contenga un menú, por ejemplo un panel informativo.',
126
+ "data": {
127
+ "text": "Marta Pérez",
128
+ "caller": "<div class=\" w-48 p-2 \"><div class=\" border-4 border-dashed border-gray-200 rounded-lg h-40 \"></div></div>",
129
+ "attributes": {
130
+ "data-aria-haspopup": "dialog",
131
+ "data-role": "dialog",
132
+ "data-aria-modal": "false",
133
+ "data-aria-label": "Información adicional"
134
+ }
121
135
  }
122
136
  }
123
137
  ] %}
@@ -17,7 +17,7 @@ treat it as an interactive element - without this it will be
17
17
  <!-- dropdown -->
18
18
  <div data-module="c-dropdown" class="{% if params.classesContainer %}{{ params.classesContainer }}{% else %} relative{% endif %}">
19
19
  <button {{- commonAttributes | safe }}>
20
- <span class="inline-flex self-center max-w-xs align-middle truncate">{{ params.html | safe if params.html else params.text }}</span>
20
+ <span class="inline-flex self-center max-w-xs align-middle truncate">{{ params.html | filterquotes | safe if params.html else params.text }}</span>
21
21
  {# Indentation is intentional to output HTML nicely #}
22
22
  {{- iconHtml | safe | trim | indent(2, true) if iconHtml -}}
23
23
  </button>
@@ -9,7 +9,7 @@
9
9
  {
10
10
  "name": "con HTML",
11
11
  "data": {
12
- "html": 'Error: esto es un <em>mensaje de error con HTML</em>'
12
+ "html": "Error: esto es un <em>mensaje de error con HTML</em>"
13
13
  }
14
14
  }
15
15
  ] %}
@@ -3,6 +3,6 @@
3
3
  <!-- error-message -->
4
4
  <p {%- if params.id %} id="{{ params.id }}"{% endif %} class="block font-semibold text-alert-base {%- if params.classes %} {{ params.classes }}{% endif %}" {%- for attribute, value in params.attributes %} {{ attribute }}="{{ value }}"{% endfor -%}>
5
5
  {% if visuallyHiddenText %}
6
- <span class="sr-only">{{ visuallyHiddenText }}:</span>{% endif -%}{{ params.html | safe if params.html else params.text }}
6
+ <span class="sr-only">{{ visuallyHiddenText }}:</span>{% endif -%}{{ params.html | filterquotes | safe if params.html else params.text }}
7
7
  </p>
8
8
  <!-- /error-message -->
@@ -37,9 +37,9 @@
37
37
  {% for item in params.errorList %}
38
38
  <li>
39
39
  {% if item.href %}
40
- <a href="{{ item.href }}" class="c-link c-link--alert"{% for attribute, value in item.attributes %} {{attribute}}="{{value}}"{% endfor %}>{{ item.html | safe if item.html else item.text }}</a>
40
+ <a href="{{ item.href }}" class="c-link c-link--alert"{% for attribute, value in item.attributes %} {{attribute}}="{{value}}"{% endfor %}>{{ item.html | filterquotes | safe if item.html else item.text }}</a>
41
41
  {% else %}
42
- {{ item.html | safe if item.html else item.text }}
42
+ {{ item.html | filterquotes | safe if item.html else item.text }}
43
43
  {% endif %}
44
44
  </li>
45
45
  {% endfor %}
@@ -38,7 +38,7 @@
38
38
  },
39
39
  {
40
40
  "name": "con error",
41
- "description": 'Mostrar código para visualizar el <code>aria-describedby</code>, el <code>aria-errormessage</code> y <code>aria-invalid="true"</code> aplicado en el HTML.',
41
+ "description": "Mostrar código para visualizar el <code>aria-describedby</code>, el <code>aria-errormessage</code> y <code>aria-invalid='true'</code> aplicado en el HTML.",
42
42
  "data": {
43
43
  "legend": {
44
44
  "text": "¿Cuál es tu número de teléfono?",
@@ -50,7 +50,7 @@
50
50
  },
51
51
  {
52
52
  "name": "con label como encabezado",
53
- "description": 'Utiliza el parámetro <code>"isPageheading": true</code> para que el label esté dentro de un encabezado. Usa el parámetro <code>"headingLevel"</code> para establecer el nivel del encabezado. Por ejemplo: <code>"headingLevel": 3</code> creará un encabezado <code>&lt;h3&gt;</code>. Si no se establece un <code>"headingLevel"</code>, por defecto usará un <code>&lt;h1&gt;</code>.',
53
+ "description": "Utiliza el parámetro <code>'isPageheading': true</code> para que el label esté dentro de un encabezado. Usa el parámetro <code>'headingLevel'</code> para establecer el nivel del encabezado. Por ejemplo: <code>'headingLevel': 3</code> creará un encabezado <code>&lt;h3&gt;</code>. Si no se establece un <code>'headingLevel'</code>, por defecto usará un <code>&lt;h1&gt;</code>.",
54
54
  "data": {
55
55
  "legend": {
56
56
  "text": "¿Cuál es tu número de teléfono?",
@@ -63,7 +63,7 @@
63
63
  },
64
64
  {
65
65
  "name": "con label como encabezado con h3",
66
- "description": 'Utiliza el parámetro <code>"isPageheading": true</code> para que el label esté dentro de un encabezado. Usa el parámetro <code>"headingLevel"</code> para establecer el nivel del encabezado. Por ejemplo: <code>"headingLevel": 3</code> creará un encabezado <code>&lt;h3&gt;</code>.',
66
+ "description": "Utiliza el parámetro <code>'isPageheading': true</code> para que el label esté dentro de un encabezado. Usa el parámetro <code>'headingLevel'</code> para establecer el nivel del encabezado. Por ejemplo: <code>'headingLevel': 3</code> creará un encabezado <code>&lt;h3&gt;</code>.",
67
67
  "data": {
68
68
  "legend": {
69
69
  "text": "¿Cuál es tu número de teléfono?",
@@ -9,32 +9,32 @@
9
9
  {% if params.legend.isPageHeading %}
10
10
  {% if params.headingLevel == "1" %}
11
11
  <h1>
12
- {{ params.legend.html | safe if params.legend.html else params.legend.text }}
12
+ {{ params.legend.html | filterquotes | safe if params.legend.html else params.legend.text }}
13
13
  </h1>
14
14
  {% elseif params.headingLevel == "2" %}
15
15
  <h2>
16
- {{ params.legend.html | safe if params.legend.html else params.legend.text }}
16
+ {{ params.legend.html | filterquotes | safe if params.legend.html else params.legend.text }}
17
17
  </h2>
18
18
  {% elseif params.headingLevel == "3" %}
19
19
  <h3>
20
- {{ params.legend.html | safe if params.legend.html else params.legend.text }}
20
+ {{ params.legend.html | filterquotes | safe if params.legend.html else params.legend.text }}
21
21
  </h3>
22
22
  {% elseif params.headingLevel == "4" %}
23
23
  <h4>
24
- {{ params.legend.html | safe if params.legend.html else params.legend.text }}
24
+ {{ params.legend.html | filterquotes | safe if params.legend.html else params.legend.text }}
25
25
  </h4>
26
26
  {% elseif params.headingLevel == "5" %}
27
27
  <h5>
28
- {{ params.legend.html | safe if params.legend.html else params.legend.text }}
28
+ {{ params.legend.html | filterquotes | safe if params.legend.html else params.legend.text }}
29
29
  </h5>
30
30
  {% else %}
31
31
  {{ params.headingLevel }}
32
32
  <h1>
33
- {{ params.legend.html | safe if params.legend.html else params.legend.text }}
33
+ {{ params.legend.html | filterquotes | safe if params.legend.html else params.legend.text }}
34
34
  </h1>
35
35
  {% endif %}
36
36
  {% else %}
37
- {{ params.legend.html | safe if params.legend.html else params.legend.text }}
37
+ {{ params.legend.html | filterquotes | safe if params.legend.html else params.legend.text }}
38
38
  {% endif %}
39
39
  </legend>
40
40
  {% endif %}