desy-html 6.1.0 → 6.3.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 (66) hide show
  1. package/README.md +2 -2
  2. package/docs/_global.head.njk +1 -2
  3. package/docs/_include.template-header.njk +0 -4
  4. package/docs/_macro.example-render.njk +11 -9
  5. package/docs/ds/_ds.example.header.njk +0 -6
  6. package/docs/ds/_ds.example.menu-navigation.njk +1 -1
  7. package/docs/ds/_ds.example.menubar-variaciones.njk +1 -2
  8. package/docs/ds/_ds.macro.code-snippet.njk +6 -4
  9. package/docs/examples-header-2.html +5 -0
  10. package/docs/examples-header-advanced-2.html +5 -0
  11. package/docs/index.html +24 -2
  12. package/package.json +1 -1
  13. package/src/css/component.form-group.css +1 -0
  14. package/src/js/aria/accordion.js +24 -17
  15. package/src/js/aria/collapsible.js +35 -0
  16. package/src/js/aria/disclosureMenu.js +1 -2
  17. package/src/js/aria/tabs.js +43 -1
  18. package/src/js/aria/toggle.js +25 -0
  19. package/src/js/aria/treeitem.js +11 -20
  20. package/src/js/desy-html.js +10 -1
  21. package/src/js/index.js +12 -0
  22. package/src/templates/components/accordion/_examples.accordion.njk +1 -1
  23. package/src/templates/components/accordion/_template.accordion.njk +6 -34
  24. package/src/templates/components/accordion-history/_template.accordion-history.njk +13 -30
  25. package/src/templates/components/button/_styles.button.css +7 -0
  26. package/src/templates/components/button-loader/_styles.button-loader.css +6 -0
  27. package/src/templates/components/checkboxes/_styles.checkboxes.css +7 -0
  28. package/src/templates/components/checkboxes/_template.checkboxes.njk +4 -8
  29. package/src/templates/components/collapsible/_template.collapsible.njk +7 -13
  30. package/src/templates/components/dropdown/_styles.dropdown.css +9 -2
  31. package/src/templates/components/footer/_examples.footer.njk +2 -2
  32. package/src/templates/components/footer/_template.footer.njk +1 -1
  33. package/src/templates/components/header/_examples.header-2.njk +536 -0
  34. package/src/templates/components/header/_examples.header.njk +0 -33
  35. package/src/templates/components/header/_template.header.njk +2 -2
  36. package/src/templates/components/header-advanced/_examples.header-advanced-2.njk +911 -0
  37. package/src/templates/components/header-advanced/_examples.header-advanced.njk +108 -48
  38. package/src/templates/components/header-advanced/_template.header-advanced.njk +34 -14
  39. package/src/templates/components/header-advanced/params.header-advanced.yaml +61 -1
  40. package/src/templates/components/header-mini/_template.header-mini.njk +3 -3
  41. package/src/templates/components/input/_styles.input.css +7 -0
  42. package/src/templates/components/item/_examples.item.njk +25 -0
  43. package/src/templates/components/item/_template.item.njk +1 -1
  44. package/src/templates/components/item/params.item.yaml +4 -0
  45. package/src/templates/components/listbox/_styles.listbox.css +12 -4
  46. package/src/templates/components/menu-navigation/_styles.menu-navigation.css +7 -0
  47. package/src/templates/components/menu-navigation/_template.menu-navigation.njk +3 -3
  48. package/src/templates/components/menu-navigation/params.menu-navigation.yaml +0 -5
  49. package/src/templates/components/menubar/_examples.menubar.njk +1 -1
  50. package/src/templates/components/menubar/_styles.menubar.css +12 -4
  51. package/src/templates/components/notification/_template.notification.njk +3 -11
  52. package/src/templates/components/pagination/_examples.pagination.njk +60 -0
  53. package/src/templates/components/pagination/_template.pagination.njk +16 -2
  54. package/src/templates/components/pagination/params.pagination.yaml +49 -0
  55. package/src/templates/components/radios/_styles.radios.css +7 -0
  56. package/src/templates/components/radios/_template.radios.njk +4 -8
  57. package/src/templates/components/select/_styles.select.css +8 -0
  58. package/src/templates/components/table-advanced/_template.table-advanced.njk +5 -4
  59. package/src/templates/components/tabs/_examples.tabs.njk +35 -1
  60. package/src/templates/components/tabs/_styles.tabs.css +0 -17
  61. package/src/templates/components/tabs/_template.tabs.njk +4 -4
  62. package/src/templates/components/tabs/params.tabs.yaml +5 -1
  63. package/src/templates/components/toggle/_examples.toggle.njk +2 -2
  64. package/src/templates/components/toggle/_template.toggle.njk +7 -28
  65. package/src/templates/components/tree/_styles.tree.css +8 -0
  66. package/src/templates/components/tree/_template.tree.njk +2 -2
@@ -1,10 +1,10 @@
1
1
  <!-- header-mini -->
2
2
  <div {%- if params.classes %} class="{{ params.classes }}"{% endif %} {%- for attribute, value in params.attributes %} {{attribute}}="{{value}}"{% endfor %}>
3
3
  <div {%- if params.containerClasses %} class="{{ params.containerClasses }}"{% endif %}>
4
- <div class="bg-neutral-lighter border-b border-neutral-base">
4
+ <div class="bg-white border-b border-neutral-base">
5
5
  <div class="flex items-center px-base {% if params.hasContainer != false %}container mx-auto{% endif %}">
6
- <a href="{{ params.homepageUrl | default('https://www.aragon.es/') }}" class="inline-block pt-2.5 pb-2 text-black focus:outline-none focus:shadow-outline-black" title="Ir a aragon.es">
7
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 144 32" width="117" height="26" class="inline-block fill-current" aria-label="Gobierno de Aragón" role="img"><title>Ir a aragon.es</title><defs><clipPath id="b-logo-expanded"><path fill="gold" d="M0 0h31.509v31.495H0z"/></clipPath><clipPath id="a-logo-expanded"><path d="M0 0h144v32H0z"/></clipPath></defs><g clip-path="url(#a-logo-expanded)"><path fill="gold" d="M0 .205h31.509V31.7H0z"/><g clip-path="url(#b-logo-expanded)" transform="translate(0 .205)"><g fill="#dd171b" fill-rule="evenodd"><path d="m31.509 6.048-7.568 1.515a14.545 14.545 0 0 1-7.905-1.025 15.04 15.04 0 0 0-5-1.817 12.536 12.536 0 0 0-3.535-.011l-5.051.9c-.8.156-1.639.3-2.453.434V.315A7.1 7.1 0 0 1 3.888.226a9.926 9.926 0 0 1 2.085.936 17.6 17.6 0 0 0 4.293 1.962 13.92 13.92 0 0 0 6.6-.034l4.728-.858 4.939-.892 4.97-1.024ZM6.602 24.229a14.592 14.592 0 0 1 9.555 1.014 12.178 12.178 0 0 0 8.307 1.5l7.044-1.271v5.706a8.247 8.247 0 0 1-3.008.256 6.4 6.4 0 0 1-1.594-.457l-3.657-1.917a12.217 12.217 0 0 0-7.092-.825L1.026 31.011 0 31.177v-5.706l1.26-.256 3.312-.613c.669-.123 1.371-.245 2.029-.379ZM-.003 15.077v-4.391l13.027-2.377a15.5 15.5 0 0 1 9.11 1.638 12.535 12.535 0 0 0 8.474.925l.9-.189v4.391l-2.874-1.639a12.286 12.286 0 0 0-6.835-1.014l-8.006 1.46c-.959.179-2.877.524-2.877.524l-7.292 1.349a5.152 5.152 0 0 1-3.627-.677ZM31.509 16.583v4.324L18.6 23.282a15.5 15.5 0 0 1-9.11-1.638 12.532 12.532 0 0 0-8.474-.925l-1.015.19v-4.324l2.988 1.572a12.291 12.291 0 0 0 6.835 1.014l8.006-1.46c.959-.178 2.877-.524 2.877-.524l7.292-1.349a5.142 5.142 0 0 1 3.51.745Z"/></g></g><path d="M38.2 28.807v-8.551h1.393c2.893 0 4.478 1.522 4.478 4.286 0 2.829-1.521 4.265-4.5 4.265Zm10.4-11.4v14.294h9.47v-2.893h-6.277v-3.257h6.214v-2.893h-6.214v-2.379h6.277v-2.871Zm21.751 0-5.206 14.294h3.385l1.542-4.35h4.371l1.521 4.35h3.45L74.1 17.407Zm1.885 2.956-1.328 4.223h2.679Zm42.341 4.03h-3.192v4.5a4.206 4.206 0 0 1-1.371.193 4.251 4.251 0 0 1-4.242-4.5 4.443 4.443 0 0 1 4.735-4.65 7.481 7.481 0 0 1 4.071 1.243v-3.257a11.674 11.674 0 0 0-4.349-.857c-4.628 0-7.841 3.107-7.841 7.564 0 4.393 3.149 7.372 7.841 7.372a12.977 12.977 0 0 0 4.349-.75Zm16.132.129a7.424 7.424 0 1 0-7.391 7.436 7.122 7.122 0 0 0 7.393-7.436Zm-7.456-4.458c-2.4 0-4.006 1.822-4.006 4.5s1.65 4.5 4.071 4.5c2.4 0 3.985-1.8 3.985-4.5s-1.627-4.501-4.048-4.501Zm8.689-2.657v14.294h3.257v-9.108l5.762 9.108h3.021V17.407h-3.256v8.889l-5.532-8.889ZM46.922 7.33h-3.193v4.5a4.335 4.335 0 0 1-5.613-4.307 4.443 4.443 0 0 1 4.735-4.65 7.487 7.487 0 0 1 4.071 1.243V.859a11.674 11.674 0 0 0-4.35-.858c-4.628 0-7.841 3.107-7.841 7.565 0 4.393 3.15 7.371 7.841 7.371a12.99 12.99 0 0 0 4.35-.75Zm16.116.128a7.424 7.424 0 1 0-7.392 7.436 7.122 7.122 0 0 0 7.396-7.436Zm-7.456-4.457c-2.4 0-4.006 1.821-4.006 4.5s1.65 4.5 4.071 4.5c2.4 0 3.985-1.8 3.985-4.5s-1.626-4.5-4.047-4.5ZM64.107.344v14.293h5.914c3.15 0 4.992-1.565 4.992-4.243a3.717 3.717 0 0 0-2.978-3.728 3.133 3.133 0 0 0 1.95-2.936c.021-2.272-1.521-3.386-4.606-3.386Zm4.757 5.336c1.393 0 1.95-.386 1.95-1.35 0-.921-.536-1.264-2.057-1.264h-1.393V5.68Zm.429 6.043c1.585 0 2.271-.493 2.271-1.651 0-1.2-.707-1.671-2.4-1.671h-1.8v3.322ZM78.879.344h-3.192v14.293h3.192Zm1.39 0v14.293h9.47v-2.893h-6.278V8.487h6.214V5.594h-6.214V3.216h6.278V.345Zm50.463 7.114a7.424 7.424 0 1 0-7.392 7.436 7.122 7.122 0 0 0 7.395-7.436Zm-7.456-4.457c-2.4 0-4.006 1.821-4.006 4.5s1.65 4.5 4.071 4.5c2.4 0 3.985-1.8 3.985-4.5s-1.626-4.5-4.047-4.5ZM97.917 24.585l-1.35-4.223-1.328 4.223ZM83.249 31.7v-5.872h.407c2.057 0 2.271.214 3.642 3.75a7.159 7.159 0 0 0 .3.729l.278.664a6.4 6.4 0 0 0 .343.729h4.641l1.543-4.35h4.371l1.521 4.35h3.45l-5.314-14.294h-3.749L90.46 28.997c-.3-.622-.642-1.371-1.04-2.291a3.042 3.042 0 0 0-1.907-2.014 3.416 3.416 0 0 0 2.614-3.429c0-2.571-1.693-3.857-5.1-3.857H79.97V31.7Zm0-8.572h1.414c1.371 0 2.057-.493 2.057-1.521s-.622-1.478-2.014-1.478h-1.457Zm11.156-8.492V8.764h.407c2.057 0 2.271.214 3.642 3.75a6.982 6.982 0 0 0 .3.729l.278.665a6.37 6.37 0 0 0 .342.729h6.432l.018-9.169 5.745 9.169h3.021V.344h-3.256l.014 8.769-5.542-8.769h-3.257v13.3a29.76 29.76 0 0 1-1.975-4 3.043 3.043 0 0 0-1.907-2.014 3.415 3.415 0 0 0 2.614-3.428c0-2.572-1.693-3.857-5.1-3.857h-5.054v14.293Zm0-8.572h1.412c1.371 0 2.056-.493 2.056-1.521s-.621-1.478-2.013-1.478h-1.457Zm-59.44 11.342V31.7h4.778c4.842 0 7.692-2.657 7.692-7.158 0-4.479-2.914-7.136-7.863-7.136Z" fill="#161615" fill-rule="evenodd"/></g></svg>
6
+ <a href="{{ params.homepageUrl | default('https://www.aragon.es/') }}" class="inline-block pt-2.5 pb-2 text-black focus:outline-none focus:shadow-outline-black">
7
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 144 32" width="117" height="26" class="inline-block fill-current" aria-label="Gobierno de Aragón. Ir a aragon.es" role="img"><defs><clipPath id="b-logo-expanded"><path fill="gold" d="M0 0h31.509v31.495H0z"/></clipPath><clipPath id="a-logo-expanded"><path d="M0 0h144v32H0z"/></clipPath></defs><g clip-path="url(#a-logo-expanded)"><path fill="gold" d="M0 .205h31.509V31.7H0z"/><g clip-path="url(#b-logo-expanded)" transform="translate(0 .205)"><g fill="#dd171b" fill-rule="evenodd"><path d="m31.509 6.048-7.568 1.515a14.545 14.545 0 0 1-7.905-1.025 15.04 15.04 0 0 0-5-1.817 12.536 12.536 0 0 0-3.535-.011l-5.051.9c-.8.156-1.639.3-2.453.434V.315A7.1 7.1 0 0 1 3.888.226a9.926 9.926 0 0 1 2.085.936 17.6 17.6 0 0 0 4.293 1.962 13.92 13.92 0 0 0 6.6-.034l4.728-.858 4.939-.892 4.97-1.024ZM6.602 24.229a14.592 14.592 0 0 1 9.555 1.014 12.178 12.178 0 0 0 8.307 1.5l7.044-1.271v5.706a8.247 8.247 0 0 1-3.008.256 6.4 6.4 0 0 1-1.594-.457l-3.657-1.917a12.217 12.217 0 0 0-7.092-.825L1.026 31.011 0 31.177v-5.706l1.26-.256 3.312-.613c.669-.123 1.371-.245 2.029-.379ZM-.003 15.077v-4.391l13.027-2.377a15.5 15.5 0 0 1 9.11 1.638 12.535 12.535 0 0 0 8.474.925l.9-.189v4.391l-2.874-1.639a12.286 12.286 0 0 0-6.835-1.014l-8.006 1.46c-.959.179-2.877.524-2.877.524l-7.292 1.349a5.152 5.152 0 0 1-3.627-.677ZM31.509 16.583v4.324L18.6 23.282a15.5 15.5 0 0 1-9.11-1.638 12.532 12.532 0 0 0-8.474-.925l-1.015.19v-4.324l2.988 1.572a12.291 12.291 0 0 0 6.835 1.014l8.006-1.46c.959-.178 2.877-.524 2.877-.524l7.292-1.349a5.142 5.142 0 0 1 3.51.745Z"/></g></g><path d="M38.2 28.807v-8.551h1.393c2.893 0 4.478 1.522 4.478 4.286 0 2.829-1.521 4.265-4.5 4.265Zm10.4-11.4v14.294h9.47v-2.893h-6.277v-3.257h6.214v-2.893h-6.214v-2.379h6.277v-2.871Zm21.751 0-5.206 14.294h3.385l1.542-4.35h4.371l1.521 4.35h3.45L74.1 17.407Zm1.885 2.956-1.328 4.223h2.679Zm42.341 4.03h-3.192v4.5a4.206 4.206 0 0 1-1.371.193 4.251 4.251 0 0 1-4.242-4.5 4.443 4.443 0 0 1 4.735-4.65 7.481 7.481 0 0 1 4.071 1.243v-3.257a11.674 11.674 0 0 0-4.349-.857c-4.628 0-7.841 3.107-7.841 7.564 0 4.393 3.149 7.372 7.841 7.372a12.977 12.977 0 0 0 4.349-.75Zm16.132.129a7.424 7.424 0 1 0-7.391 7.436 7.122 7.122 0 0 0 7.393-7.436Zm-7.456-4.458c-2.4 0-4.006 1.822-4.006 4.5s1.65 4.5 4.071 4.5c2.4 0 3.985-1.8 3.985-4.5s-1.627-4.501-4.048-4.501Zm8.689-2.657v14.294h3.257v-9.108l5.762 9.108h3.021V17.407h-3.256v8.889l-5.532-8.889ZM46.922 7.33h-3.193v4.5a4.335 4.335 0 0 1-5.613-4.307 4.443 4.443 0 0 1 4.735-4.65 7.487 7.487 0 0 1 4.071 1.243V.859a11.674 11.674 0 0 0-4.35-.858c-4.628 0-7.841 3.107-7.841 7.565 0 4.393 3.15 7.371 7.841 7.371a12.99 12.99 0 0 0 4.35-.75Zm16.116.128a7.424 7.424 0 1 0-7.392 7.436 7.122 7.122 0 0 0 7.396-7.436Zm-7.456-4.457c-2.4 0-4.006 1.821-4.006 4.5s1.65 4.5 4.071 4.5c2.4 0 3.985-1.8 3.985-4.5s-1.626-4.5-4.047-4.5ZM64.107.344v14.293h5.914c3.15 0 4.992-1.565 4.992-4.243a3.717 3.717 0 0 0-2.978-3.728 3.133 3.133 0 0 0 1.95-2.936c.021-2.272-1.521-3.386-4.606-3.386Zm4.757 5.336c1.393 0 1.95-.386 1.95-1.35 0-.921-.536-1.264-2.057-1.264h-1.393V5.68Zm.429 6.043c1.585 0 2.271-.493 2.271-1.651 0-1.2-.707-1.671-2.4-1.671h-1.8v3.322ZM78.879.344h-3.192v14.293h3.192Zm1.39 0v14.293h9.47v-2.893h-6.278V8.487h6.214V5.594h-6.214V3.216h6.278V.345Zm50.463 7.114a7.424 7.424 0 1 0-7.392 7.436 7.122 7.122 0 0 0 7.395-7.436Zm-7.456-4.457c-2.4 0-4.006 1.821-4.006 4.5s1.65 4.5 4.071 4.5c2.4 0 3.985-1.8 3.985-4.5s-1.626-4.5-4.047-4.5ZM97.917 24.585l-1.35-4.223-1.328 4.223ZM83.249 31.7v-5.872h.407c2.057 0 2.271.214 3.642 3.75a7.159 7.159 0 0 0 .3.729l.278.664a6.4 6.4 0 0 0 .343.729h4.641l1.543-4.35h4.371l1.521 4.35h3.45l-5.314-14.294h-3.749L90.46 28.997c-.3-.622-.642-1.371-1.04-2.291a3.042 3.042 0 0 0-1.907-2.014 3.416 3.416 0 0 0 2.614-3.429c0-2.571-1.693-3.857-5.1-3.857H79.97V31.7Zm0-8.572h1.414c1.371 0 2.057-.493 2.057-1.521s-.622-1.478-2.014-1.478h-1.457Zm11.156-8.492V8.764h.407c2.057 0 2.271.214 3.642 3.75a6.982 6.982 0 0 0 .3.729l.278.665a6.37 6.37 0 0 0 .342.729h6.432l.018-9.169 5.745 9.169h3.021V.344h-3.256l.014 8.769-5.542-8.769h-3.257v13.3a29.76 29.76 0 0 1-1.975-4 3.043 3.043 0 0 0-1.907-2.014 3.415 3.415 0 0 0 2.614-3.428c0-2.572-1.693-3.857-5.1-3.857h-5.054v14.293Zm0-8.572h1.412c1.371 0 2.056-.493 2.056-1.521s-.621-1.478-2.013-1.478h-1.457Zm-59.44 11.342V31.7h4.778c4.842 0 7.692-2.657 7.692-7.158 0-4.479-2.914-7.136-7.863-7.136Z" fill="#161615" fill-rule="evenodd"/></g></svg>
8
8
  </a>
9
9
  {{ params.customNavigationHtml | safe if params.customNavigationHtml }}
10
10
  </div>
@@ -3,6 +3,13 @@
3
3
  ========================================================================== */
4
4
 
5
5
  @layer components {
6
+ .c-input--base {
7
+ @apply px-3;
8
+ @apply py-2;
9
+ @apply text-base;
10
+ }
11
+
12
+
6
13
  .c-input--sm {
7
14
  @apply pl-2;
8
15
  @apply py-1;
@@ -184,6 +184,31 @@
184
184
  "caller": '<ul class="flex flex-wrap gap-sm"><li><button id="b-6a" class=" c-button c-button--sm c-button--transparent " aria-labelledby="b-6a t6">Eliminar</button></li><li><button id="b-6b" class="c-button c-button--sm c-button--transparent" aria-labelledby="b-6b t6">Editar</button></li></ul>'
185
185
  }
186
186
  },
187
+ {
188
+ "name": "with icon type document vertical aligned on top",
189
+ "description": "icon.containerClasses = self-start h-full mr-base",
190
+ "data": {
191
+ "title": {
192
+ "text": "Resolución de años anteriores",
193
+ "attributes": {
194
+ "id": "t3"
195
+ }
196
+ },
197
+ "content":{
198
+ "text": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
199
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
200
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
201
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
202
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
203
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
204
+ },
205
+ "icon": {
206
+ "type": "document",
207
+ "containerClasses": "self-start h-full mr-base"
208
+ },
209
+ "caller": '<ul class="flex flex-wrap gap-sm"><li><button id="b-3a" class=" c-button c-button--sm c-button--transparent " aria-labelledby="b-3a t3">Eliminar</button></li><li><button id="b-3b" class="c-button c-button--sm c-button--transparent" aria-labelledby="b-3b t3">Editar</button></li></ul>'
210
+ }
211
+ },
187
212
  {
188
213
  "name": "draggable and with icon type document",
189
214
  "data": {
@@ -12,7 +12,7 @@
12
12
  </div>
13
13
  {% endif %}
14
14
  {% if params.icon %}
15
- <div class="self-center h-full mr-base">
15
+ <div class="{% if params.icon.containerClasses %}{{ params.icon.containerClasses }}{% else %}self-center h-full mr-base{% endif %}">
16
16
  {% if params.icon.html %}
17
17
  {{ params.icon.html | safe }}
18
18
  {% elseif params.icon.type == 'document' %}
@@ -75,6 +75,10 @@ params:
75
75
  type: string
76
76
  required: false
77
77
  description: Predefined icon types are `document`, `link`, `clipboard`
78
+ - name: containerClasses
79
+ type: string
80
+ required: false
81
+ description: Classes applied to the parent div of icon. Useful to vertical align the icon.
78
82
  - name: isDraggable
79
83
  type: boolean
80
84
  required: false
@@ -94,6 +94,13 @@
94
94
  }
95
95
 
96
96
 
97
+ .c-listbox--base {
98
+ @apply px-3;
99
+ @apply py-2;
100
+ @apply text-base;
101
+ }
102
+
103
+
97
104
  .c-listbox--sm {
98
105
  @apply px-2;
99
106
  @apply py-1;
@@ -183,20 +190,21 @@
183
190
 
184
191
 
185
192
  .c-listbox--header {
186
- @apply bg-black;
193
+ @apply bg-transparent;
187
194
  @apply border-none;
188
195
  @apply rounded-none;
189
196
  @apply shadow-none;
190
197
  @apply font-normal;
191
198
  @apply text-sm;
192
- @apply text-white;
199
+ @apply text-black;
193
200
 
194
201
  &:hover:not(disabled),
195
202
  &.ds-hover:not(disabled) {
196
- @apply bg-black;
203
+ @apply bg-transparent;
197
204
  @apply border-none;
198
205
  @apply shadow-none;
199
- @apply text-white;
206
+ @apply text-black;
207
+ @apply underline;
200
208
  }
201
209
 
202
210
  &[disabled],
@@ -95,6 +95,13 @@
95
95
  }
96
96
 
97
97
 
98
+ .c-menu-navigation__button--base {
99
+ @apply px-3;
100
+ @apply py-2;
101
+ @apply text-base;
102
+ }
103
+
104
+
98
105
  .c-menu-navigation__button--sm {
99
106
  @apply px-2;
100
107
  @apply py-1;
@@ -1,5 +1,5 @@
1
1
  {#- If an id 'prefix' is not passed, fall back to using the name attribute
2
- instead. We need this for error messages and hints as well -#}
2
+ instead. -#}
3
3
  {% set idPrefix = params.idPrefix if params.idPrefix else "menu-nav-item" %}
4
4
 
5
5
  {#- fieldset is false by default -#}
@@ -31,13 +31,13 @@
31
31
  {% set subId = "sub-" + id %}
32
32
  <li class="relative">
33
33
  {% if item.href %}
34
- <a {%- if id %} id="{{ id }}"{% endif %} href="{{ item.href }}" class="c-menu-navigation__button {%- if item.disabled %} c-menu-navigation__button--disabled{% endif %} {%- if item.active %} c-menu-navigation__button--primary{% endif %} {%- if item.active %} c-menu-navigation__button--has-selection{% endif %} {%- if item.classes %} {{ item.classes }}{% endif %}" {%- if item.title %} title="{{ item.title }}"{% endif %}{%- if item.active %} aria-current="page"{% endif %} {% if item.disabled %} tabindex="-1"{% endif %} {% if item.target %} target="{{ item.target }}"{% endif %}{%- for attribute, value in item.attributes %} {{ attribute }}="{{ value }}"{% endfor -%}>
34
+ <a {%- if id %} id="{{ id }}"{% endif %} href="{{ item.href }}" class="c-menu-navigation__button {%- if item.disabled %} c-menu-navigation__button--disabled{% endif %} {%- if item.active %} c-menu-navigation__button--primary{% endif %} {%- if item.active %} c-menu-navigation__button--has-selection{% endif %} {%- if item.classes %} {{ item.classes }}{% endif %}" {%- if item.title %} title="{{ item.title }}"{% endif %}{%- if item.active %} aria-current="page"{% endif %} {% if item.disabled %} role="link" aria-disabled="true" tabindex="-1"{% endif %} {% if item.target %} target="{{ item.target }}"{% endif %}{%- for attribute, value in item.attributes %} {{ attribute }}="{{ value }}"{% endfor -%}>
35
35
  <span class="inline-flex self-center max-w-xs align-middle truncate pointer-events-none">{{ item.html | safe if item.html else item.text }}</span>
36
36
  </a>
37
37
  {% else %}
38
38
  <button {%- if item.sub %} aria-expanded="true" aria-controls="{{ id }}-sub-list"{% endif %}
39
39
  {%- if id %} id="{{ id }}"{% endif %} class="c-menu-navigation__button {%- if item.disabled %} c-menu-navigation__button--disabled{% endif %} {%- if item.active %} c-menu-navigation__button--primary{% endif %} {%- if item.active %} c-menu-navigation__button--has-selection{% endif %} {%- if item.classes %} {{ item.classes }}{% endif %}" {%- if item.title %} title="{{ item.title }}"{% endif %} {% if item.disabled %} aria-disabled="true" tabindex="-1"{% endif %} {%- for attribute, value in item.attributes %} {{ attribute }}="{{ value }}"{% endfor -%}>
40
- <span class="inline-flex self-center max-w-xs align-middle truncate pointer-events-none">{{ item.html | safe if item.html else item.text }}</span>
40
+ {% if item.active %}<span class="sr-only">Item activo: </span>{% endif %}<span class="inline-flex self-center max-w-xs align-middle truncate pointer-events-none">{{ item.html | safe if item.html else item.text }}</span>
41
41
  {# Indentation is intentional to output HTML nicely #}
42
42
  {{- iconHtml | safe | trim | indent(2, true) if iconHtml -}}
43
43
  </button>
@@ -28,11 +28,6 @@ params:
28
28
  type: string
29
29
  required: false
30
30
  description: Specific id attribute for the item. If omitted, then idPrefix option will be applied.
31
- - name: hint
32
- type: object
33
- required: false
34
- description: Provide hint to each nav item.
35
- isComponent: true
36
31
  - name: expanded
37
32
  type: boolean
38
33
  required: false
@@ -1074,7 +1074,7 @@
1074
1074
  "href": "#"
1075
1075
  }
1076
1076
  ],
1077
- "classes": "bg-black"
1077
+ "classes": "bg-neutral-lighter"
1078
1078
  }
1079
1079
  },
1080
1080
  {
@@ -129,6 +129,13 @@
129
129
  }
130
130
 
131
131
 
132
+ .c-menubar__button--base {
133
+ @apply px-3;
134
+ @apply py-2;
135
+ @apply text-base;
136
+ }
137
+
138
+
132
139
  .c-menubar__button--sm {
133
140
  @apply px-2;
134
141
  @apply py-1;
@@ -218,20 +225,21 @@
218
225
 
219
226
 
220
227
  .c-menubar__button--header {
221
- @apply bg-black;
228
+ @apply bg-transparent;
222
229
  @apply border-none;
223
230
  @apply rounded-none;
224
231
  @apply shadow-none;
225
232
  @apply font-normal;
226
233
  @apply text-sm;
227
- @apply text-white;
234
+ @apply text-black;
228
235
 
229
236
  &:hover:not(disabled),
230
237
  &.ds-hover:not(disabled) {
231
- @apply bg-black;
238
+ @apply bg-transparent;
232
239
  @apply border-none;
233
240
  @apply shadow-none;
234
- @apply text-white;
241
+ @apply text-black;
242
+ @apply underline;
235
243
  }
236
244
 
237
245
  &[disabled],
@@ -1,13 +1,5 @@
1
1
  <!-- notification -->
2
- <div x-data="{isOpen: true}"
3
- x-show="isOpen"
4
- x-transition:enter="transition ease-out duration-100 transform"
5
- x-transition:enter-start="opacity-0 scale-y-95"
6
- x-transition:enter-end="opacity-100 scale-y-100"
7
- x-transition:leave="transition ease-in duration-75 transform"
8
- x-transition:leave-start="opacity-100 scale-y-100"
9
- x-transition:leave-end="opacity-0 scale-y-95"
10
- id="{{ params.id }}" class="c-notification {%- if params.classes %} {{ params.classes }}{% elseif params.type=="success" %} c-notification--success{% elseif params.type=="alert" %} c-notification--alert{% elseif params.type=="info" %} c-notification--primary{% else %} c-notification--primary{% endif %}"
2
+ <div id="{{ params.id }}" class="c-notification {%- if params.classes %} {{ params.classes }}{% elseif params.type=="success" %} c-notification--success{% elseif params.type=="alert" %} c-notification--alert{% elseif params.type=="info" %} c-notification--primary{% else %} c-notification--primary{% endif %}"
11
3
  {%- for attribute, value in params.attributes %} {{attribute}}="{{value}}"{% endfor %}>
12
4
  {% if params.icon or params.type %}
13
5
  <div class="h-full mr-base">
@@ -66,11 +58,11 @@
66
58
  </div>
67
59
  {% if params.isDismissible %}
68
60
  <div class="absolute top-0 right-0 p-sm">
69
- <button @click="isOpen = false" class="p-sm focus:bg-warning-base focus:border-warning-base focus:shadow-outline-black focus:text-black focus:outline-none" aria-label="X: Cerrar notificación">
61
+ <button class="p-sm focus:bg-warning-base focus:border-warning-base focus:shadow-outline-black focus:text-black focus:outline-none" aria-label="X: Cerrar notificación">
70
62
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 140 140" width="1em" height="1em" class="w-4 h-4" aria-hidden="true" role="presentation"><path d="M85.91 71.77a2.5 2.5 0 010-3.54l46.16-46.16a10 10 0 10-14.14-14.14L71.77 54.09a2.5 2.5 0 01-3.54 0L22.07 7.93A10 10 0 007.93 22.07l46.16 46.16a2.5 2.5 0 010 3.54L7.93 117.93a10 10 0 0014.14 14.14l46.16-46.16a2.5 2.5 0 013.54 0l46.16 46.16a10 10 0 0014.14-14.14z" fill="currentColor"/></svg>
71
63
  </button>
72
64
  </div>
73
65
  {% endif %}
74
66
  </div>
75
67
  </div>
76
- <!-- /notification -->
68
+ <!-- /notification -->
@@ -160,5 +160,65 @@
160
160
  "aria-label": "Paginación"
161
161
  }
162
162
  }
163
+ },
164
+ {
165
+ "name": "with itemsListbox",
166
+ "data": {
167
+ "id": "with-items-listbox",
168
+ "idPrefix": "with-items-listbox",
169
+ "totalItems": "64",
170
+ "itemsPerPage": "10",
171
+ "hasSelect": true,
172
+ "itemsListbox": {
173
+ "items": [
174
+ {
175
+ "text": "10",
176
+ "active": true
177
+ },
178
+ {
179
+ "text": "25"
180
+ },
181
+ {
182
+ "text": "50"
183
+ },
184
+ {
185
+ "text": "75"
186
+ },
187
+ {
188
+ "text": "100"
189
+ }
190
+ ]
191
+ },
192
+ "items": [
193
+ {
194
+ "href": "#",
195
+ "text": 1
196
+ },
197
+ {
198
+ "href": "#",
199
+ "text": 2,
200
+ "active": true
201
+ },
202
+ {
203
+ "href": "#",
204
+ "text": 3
205
+ },
206
+ {
207
+ "href": "#",
208
+ "text": 4
209
+ },
210
+ {
211
+ "href": "#",
212
+ "text": 5
213
+ },
214
+ {
215
+ "href": "#",
216
+ "text": 6
217
+ }
218
+ ],
219
+ "attributes": {
220
+ "aria-label": "Paginación"
221
+ }
222
+ }
163
223
  }
164
224
  ] %}
@@ -1,6 +1,7 @@
1
1
  {% from "../button/_macro.button.njk" import componentButton %}
2
2
  {% from "components/listbox/_macro.listbox.njk" import componentListbox %}
3
3
 
4
+
4
5
  {#- If an id 'prefix' is not passed, fall back to using a default one
5
6
  instead -#}
6
7
  {% set idPrefix = params.idPrefix if params.idPrefix else "pagination-item" %}
@@ -75,7 +76,7 @@
75
76
  {% set nextSuffix %}
76
77
  {% if (((activePosition + 2) | int + 1) * params.itemsPerPage | int) < ( params.totalItems | int ) %}<span class="sr-only">:&nbsp;Página {{ activePosition + 2 }} con los resultados del {{ (activePosition + 1) | int * params.itemsPerPage | int }} al {% if (((activePosition + 1) | int + 1) * params.itemsPerPage | int) > ( params.totalItems | int ) %}{{ params.totalItems }}{% else %}{{ ((activePosition + 1) | int + 1) * params.itemsPerPage | int }}{% endif %}</span>{% endif %}
77
78
  {% endset %}
78
- <div id="{{ params.id }}" class="lg:flex lg:flex-wrap lg:align-center{%- if params.containerClasses %} {{ params.containerClasses }}{% endif %}">
79
+ <div id="{{ params.id }}" class="lg:flex lg:flex-wrap lg:items-center lg:gap-base{%- if params.containerClasses %} {{ params.containerClasses }}{% endif %}">
79
80
  {% if params.hasSelect %}
80
81
  <p class="w-full mb-xs text-sm text-neutral-dark">
81
82
  Selecciona una página para cargar datos
@@ -120,7 +121,20 @@
120
121
  </ul>
121
122
  </nav>
122
123
  {% endif %}
123
- <p class="block lg:ml-auto text-sm text-neutral-dark">
124
+ {% if params.itemsListbox %}
125
+ <div class="block relative -top-xs lg:ml-auto text-sm text-neutral-dark">
126
+ {{ componentListbox({
127
+ "id": "items-listbox-" + idPrefix,
128
+ "text": params.itemsPerPage,
129
+ "label": params.itemsListbox.label if params.itemsListbox.label else { "text": "Items por página: ", "classes": "inline-block align-middle mb-0" },
130
+ "doesChangeButtonText": true,
131
+ "classesContainer": "flex flex-wrap items-center gap-xs",
132
+ "classes": "c-listbox--sm c-listbox--transparent",
133
+ "items": params.itemsListbox.items
134
+ }) }}
135
+ </div>
136
+ {% endif %}
137
+ <p class="block relative -top-xs lg:ml-auto text-sm text-neutral-dark">
124
138
  <span class="sr-only">Posición de paginación: </span>{{ activePosition | int * params.itemsPerPage | int }} - {{ (activePosition | int + 1) * params.itemsPerPage | int }} de {{ params.totalItems }}
125
139
  </p>
126
140
  </div>
@@ -39,6 +39,55 @@ params:
39
39
  type: string
40
40
  required: false
41
41
  description: Text for the previous button. Defaults to "Siguiente".
42
+ - name: itemsListbox
43
+ type: object
44
+ required: false
45
+ description: Options for a listbox component to choose number of items per page.
46
+ - name: label
47
+ type: object
48
+ required: true
49
+ description: Label text or HTML by specifying value for either text or html keys.
50
+ - name: text
51
+ type: string
52
+ required: true
53
+ description: If `html` is set, this is not required. Text for the button. If `html` is provided, the `text` argument will be ignored.
54
+ - name: html
55
+ type: string
56
+ required: true
57
+ description: If `text` is set, this is not required. HTML for the button. If `html` is provided, the `text` argument will be ignored.
58
+ - name: classes
59
+ type: string
60
+ required: false
61
+ description: Classes to add to the element that acts as label.
62
+ - name: items
63
+ type: array
64
+ required: true
65
+ description: Array of items objects.
66
+ params:
67
+ - name: text
68
+ type: string
69
+ required: true
70
+ description: If `html` is set, this is not required. Text to use within each item. If `html` is provided, the `text` argument will be ignored.
71
+ - name: html
72
+ type: string
73
+ required: true
74
+ description: If `text` is set, this is not required. HTML to use within each item. If `html` is provided, the `text` argument will be ignored.
75
+ - name: id
76
+ type: string
77
+ required: false
78
+ description: Specific id attribute for the item. If omitted, then idPrefix option will be applied.
79
+ - name: active
80
+ type: boolean
81
+ required: false
82
+ description: If true, item will be active.
83
+ - name: classes
84
+ type: string
85
+ required: false
86
+ description: Classes to add to the item.
87
+ - name: attributes
88
+ type: object
89
+ required: false
90
+ description: HTML attributes (for example data attributes) to add to the item.
42
91
  - name: items
43
92
  type: array
44
93
  required: true
@@ -3,6 +3,13 @@
3
3
  ========================================================================== */
4
4
 
5
5
  @layer components {
6
+ .c-radios--base {
7
+ input[type="radio"] {
8
+ @apply w-6;
9
+ @apply h-6;
10
+ }
11
+ }
12
+
6
13
  .c-radios--sm {
7
14
  input[type="radio"] {
8
15
  @apply w-base !important;
@@ -43,7 +43,7 @@
43
43
  visuallyHiddenText: params.errorMessage.visuallyHiddenText
44
44
  }) | indent(2) | trim }}
45
45
  {% endif %}
46
- <div x-data="{ isChecked: {{ conditionalValue | dump }} }" class="c-radios {%- if params.classes %} {{ params.classes }}{% endif %}"
46
+ <div class="c-radios {%- if params.classes %} {{ params.classes }}{% endif %}"
47
47
  {%- for attribute, value in params.attributes %} {{ attribute }}="{{ value }}"{% endfor %}>
48
48
  {% for item in params.items %}
49
49
  {% if item %}
@@ -68,7 +68,7 @@
68
68
  <div>
69
69
  <div class="relative flex items-start py-base">
70
70
  <div class="flex items-center mx-sm">
71
- <input x-model="isChecked" class="w-6 h-6 text-primary-base transition duration-150 ease-in-out border-black focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-offset-0 focus:ring-warning-base disabled:bg-neutral-base disabled:border-neutral-base text-primary-base" id="{{ id }}" name="{{ params.name }}" type="radio" value="{{ item.value }}"
71
+ <input class="w-6 h-6 text-primary-base transition duration-150 ease-in-out border-black focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-offset-0 focus:ring-warning-base disabled:bg-neutral-base disabled:border-neutral-base text-primary-base" id="{{ id }}" name="{{ params.name }}" type="radio" value="{{ item.value }}"
72
72
  {{-" checked" if item.checked }}
73
73
  {{-" disabled" if item.disabled }}
74
74
  {%- if item.conditional.html %} data-aria-controls="{{ conditionalId }}"{% endif -%}
@@ -97,11 +97,7 @@
97
97
  </div>
98
98
  </div>
99
99
  {% if item.conditional.html %}
100
- <div x-show="isChecked.toString() == '{{ item.value }}'"
101
- x-transition:enter="transition ease-out duration-100 transform"
102
- x-transition:enter-start="opacity-0 scale-95"
103
- x-transition:enter-end="opacity-100 scale-100"
104
- class="mb-lg ml-5 pt-sm pb-base pl-6 origin-top-left border-l-2 border-primary-base" id="{{ conditionalId }}">
100
+ <div class="mb-lg ml-5 pt-sm pb-base pl-6 origin-top-left border-l-2 border-primary-base" id="{{ conditionalId }}">
105
101
  {{ item.conditional.html | safe }}
106
102
  </div>
107
103
  {% endif %}
@@ -129,4 +125,4 @@
129
125
  {{ innerHtml | trim | safe }}
130
126
  {% endif %}
131
127
  </div>
132
- <!-- /radios -->
128
+ <!-- /radios -->
@@ -31,6 +31,14 @@
31
31
  }
32
32
 
33
33
 
34
+ .c-select--base {
35
+ @apply pr-10;
36
+ @apply pl-3;
37
+ @apply py-2;
38
+ @apply text-base;
39
+ }
40
+
41
+
34
42
  .c-select--sm {
35
43
  @apply pl-2;
36
44
  @apply py-1;
@@ -84,10 +84,11 @@
84
84
  "items": item.select.items,
85
85
  "describedBy": idHeader,
86
86
  "disabled": item.select.disabled,
87
- "classes": item.select.classes if item.select.classes else "c-select--sm w-full",
87
+ "classes": item.select.classes if item.select.classes else "c-select--sm w-full mt-0",
88
88
  "attributes": item.select.attributes
89
89
  }) }}
90
90
  {% endif %}
91
+ {% if item.select and item.hasFilter %}<div class="pb-sm"></div>{% endif %}
91
92
  {% if item.hasFilter %}
92
93
  {{ componentSearchbar({
93
94
  "formGroup": {
@@ -114,14 +115,14 @@
114
115
  {% for row in params.rows %}
115
116
  {%- set idCheckbox = idPrefix + "-checkbox-" + loop.index0 -%}
116
117
  {% if row %}
117
- <tr {%- if params.hasCheckboxes %} x-data="{ isChecked: false }" :class="{ 'bg-neutral-light': isChecked === true }"{% endif %} class="border-t border-b border-neutral-base hover:bg-neutral-lighter">
118
+ <tr class="border-t border-b border-neutral-base hover:bg-neutral-lighter">
118
119
  {% if params.hasCheckboxes %}
119
120
  <td class="px-base py-sm {%- if params.checkboxesClasses %} {{ params.checkboxesClasses }}{% endif %}" tabindex="-1">
120
121
  <div class="c-checkboxes c-checkboxes--sm">
121
122
  <div>
122
123
  <div class="relative flex items-start">
123
124
  <div class="flex items-center mx-sm">
124
- <input x-model="isChecked" class="w-6 h-6 transition duration-150 ease-in-out border-black focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-offset-0 focus:ring-warning-base disabled:bg-neutral-light disabled:border-neutral-base text-primary-base" id="{{ idCheckbox }}" name="{{ idCheckbox }}" type="checkbox" value="table-checkbox">
125
+ <input class="w-6 h-6 transition duration-150 ease-in-out border-black focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-offset-0 focus:ring-warning-base disabled:bg-neutral-light disabled:border-neutral-base text-primary-base" id="{{ idCheckbox }}" name="{{ idCheckbox }}" type="checkbox" value="table-checkbox">
125
126
  </div>
126
127
  <div class="pt-0.5 leading-5">
127
128
  <label class="sr-only block text-sm -mt-1" for="{{ idCheckbox }}">Selecciona fila {{ loop.index + 1 }}</label>
@@ -161,4 +162,4 @@
161
162
  {% else %}
162
163
  {{ innerHtml | trim | safe }}
163
164
  {% endif %}
164
- <!-- /table-advanced -->
165
+ <!-- /table-advanced -->
@@ -135,6 +135,40 @@
135
135
  ]
136
136
  }
137
137
  },
138
+ {
139
+ "name": "with active item",
140
+ "data": {
141
+ "tablistAriaLabel": "Tab example",
142
+ "idPrefix": "tab-example-active",
143
+ "items": [
144
+ {
145
+ "text": "Tab 1",
146
+ "panel": {
147
+ "html": "<p><strong>Panel 1</strong>. Lorem ipsum dolor sit, amet, consectetur adipisicing elit. Est quis exercitationem, nesciunt nulla quisquam temporibus. Provident animi dolor veniam, et quas consequuntur. Reiciendis eius in, nostrum porro? Quaerat, temporibus, optio?</p>"
148
+ }
149
+ },
150
+ {
151
+ "text": "Tab 2",
152
+ "active": true,
153
+ "panel": {
154
+ "html": "<p><strong>Panel 2</strong>. Est quis exercitationem, nesciunt nulla quisquam temporibus. Provident animi dolor veniam, et quas consequuntur. Reiciendis eius in, nostrum porro? Quaerat, temporibus, optio? Lorem ipsum dolor sit, amet, consectetur adipisicing elit. Est quis exercitationem, nesciunt nulla quisquam temporibus. Provident animi dolor veniam, et quas consequuntur.</p>"
155
+ }
156
+ },
157
+ {
158
+ "text": "Tab 3",
159
+ "panel": {
160
+ "html": "<p><strong>Panel 3</strong>. Provident animi dolor veniam, et quas consequuntur. Reiciendis eius in, nostrum porro? Quaerat, temporibus, optio? Lorem ipsum dolor sit, amet, consectetur adipisicing elit. Est quis exercitationem, nesciunt nulla quisquam temporibus. Provident animi dolor veniam, et quas consequuntur.</p>"
161
+ }
162
+ },
163
+ {
164
+ "text": "Tab 4",
165
+ "panel": {
166
+ "html": "<p><strong>Panel 4</strong>. Reiciendis eius in, nostrum porro? Quaerat, temporibus, optio? Lorem ipsum dolor sit, amet, consectetur adipisicing elit. Est quis exercitationem, nesciunt nulla quisquam temporibus. Provident animi dolor veniam, et quas consequuntur.</p>"
167
+ }
168
+ }
169
+ ]
170
+ }
171
+ },
138
172
  {
139
173
  "name": "with classes applied",
140
174
  "description": "Show code to display the classes applied in html",
@@ -233,4 +267,4 @@
233
267
  ]
234
268
  }
235
269
  }
236
- ] %}
270
+ ] %}
@@ -7,21 +7,4 @@
7
7
  @apply -mb-0.5;
8
8
  }
9
9
 
10
-
11
- .c-tabs__link {
12
- &[aria-selected="true"] {
13
- @apply lg:bg-white;
14
- @apply lg:border-neutral-base;
15
- @apply lg:border-b-0;
16
- @apply lg:rounded-t;
17
- @apply no-underline;
18
- }
19
-
20
- &:focus span{
21
- @apply bg-warning-base;
22
- @apply shadow-outline-focus;
23
- @apply text-black;
24
- @apply outline-none;
25
- }
26
- }
27
10
  }
@@ -23,12 +23,12 @@
23
23
  {% if item %}
24
24
  {% set id = item.id if item.id else idPrefix + "-" + loop.index %}
25
25
  {% set tabPanelId = "tab-" + id %}
26
- <button class="c-tabs__link relative flex items-center py-sm lg:px-lg lg:py-base border border-transparent text-black hover:text-primary-base underline truncate focus:outline-none
27
- {%- if item.disabled %} opacity-50 pointer-events-none{% endif -%}"
26
+ <button class="c-tabs__link group relative flex items-center py-sm lg:px-lg lg:py-base border text-black hover:text-primary-base underline truncate focus:outline-none border-transparent
27
+ {%- if item.disabled %} opacity-50 pointer-events-none{% endif -%} {%- if item.active %} c-tabs__link--is-active{% endif %}"
28
28
  role="tab" aria-selected="{% if loop.index == 1 %}true{% else %}false{% endif %}" aria-controls="{{ tabPanelId }}" id="{{ id }}" {%- if loop.index > 1 or item.disabled %} tabindex="-1"{% endif %}
29
29
  {%- if item.disabled %} disabled="disabled" aria-disabled="true"{% endif -%}
30
30
  {%- for attribute, value in item.attributes %} {{attribute}}="{{value}}"{% endfor %}>
31
- <span class="flex items-center pointer-events-none">
31
+ <span class="flex items-center pointer-events-none group-focus:bg-warning-base group-focus:shadow-outline-focus group-focus:outline-none">
32
32
  {{ item.html | safe if item.html else item.text }}
33
33
  </span>
34
34
  </button>
@@ -65,4 +65,4 @@
65
65
  {% endif %}
66
66
  {% endfor %}
67
67
  </div>
68
- <!-- /tabs -->
68
+ <!-- /tabs -->