desy-html 6.0.0 → 6.2.1

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 (56) hide show
  1. package/config/tailwind.config.js +1 -11
  2. package/docs/_include.template-header.njk +8 -4
  3. package/docs/_macro.example-render.njk +8 -0
  4. package/docs/componentes.html +6 -0
  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/examples-header-2.html +5 -0
  9. package/docs/examples-header-advanced-2.html +5 -0
  10. package/docs/examples-header-advanced.html +5 -0
  11. package/docs/examples-header-mini.html +5 -0
  12. package/docs/index.html +20 -0
  13. package/package.json +1 -1
  14. package/src/css/component.form-group.css +1 -0
  15. package/src/templates/components/accordion-history/_template.accordion-history.njk +11 -0
  16. package/src/templates/components/button/_styles.button.css +7 -0
  17. package/src/templates/components/button-loader/_styles.button-loader.css +6 -0
  18. package/src/templates/components/checkboxes/_styles.checkboxes.css +7 -0
  19. package/src/templates/components/dropdown/_styles.dropdown.css +12 -4
  20. package/src/templates/components/footer/_examples.footer.njk +2 -2
  21. package/src/templates/components/footer/_template.footer.njk +1 -1
  22. package/src/templates/components/header/_examples.header-2.njk +536 -0
  23. package/src/templates/components/header/_examples.header.njk +8 -41
  24. package/src/templates/components/header/_template.header.header__navigation.njk +3 -3
  25. package/src/templates/components/header/_template.header.header__offcanvasButton.njk +1 -1
  26. package/src/templates/components/header/_template.header.header__subnav.njk +2 -2
  27. package/src/templates/components/header/_template.header.njk +4 -9
  28. package/src/templates/components/header-advanced/_examples.header-advanced-2.njk +851 -0
  29. package/src/templates/components/header-advanced/_examples.header-advanced.njk +761 -0
  30. package/src/templates/components/header-advanced/_macro.header-advanced.njk +3 -0
  31. package/src/templates/components/header-advanced/_template.header-advanced.njk +146 -0
  32. package/src/templates/components/header-advanced/params.header-advanced.yaml +298 -0
  33. package/src/templates/components/header-mini/_examples.header-mini.njk +30 -0
  34. package/src/templates/components/header-mini/_macro.header-mini.njk +3 -0
  35. package/src/templates/components/header-mini/_template.header-mini.njk +14 -0
  36. package/src/templates/components/header-mini/params.header-mini.yaml +25 -0
  37. package/src/templates/components/input/_styles.input.css +7 -0
  38. package/src/templates/components/item/_examples.item.njk +25 -0
  39. package/src/templates/components/item/_template.item.njk +1 -1
  40. package/src/templates/components/item/params.item.yaml +4 -0
  41. package/src/templates/components/listbox/_styles.listbox.css +12 -4
  42. package/src/templates/components/menu-navigation/_examples.menu-navigation.njk +1 -1
  43. package/src/templates/components/menu-navigation/_styles.menu-navigation.css +12 -4
  44. package/src/templates/components/menu-navigation/_template.menu-navigation.njk +2 -2
  45. package/src/templates/components/menubar/_examples.menubar.njk +1 -1
  46. package/src/templates/components/menubar/_styles.menubar.css +12 -4
  47. package/src/templates/components/pagination/_examples.pagination.njk +60 -0
  48. package/src/templates/components/pagination/_template.pagination.njk +16 -2
  49. package/src/templates/components/pagination/params.pagination.yaml +49 -0
  50. package/src/templates/components/radios/_styles.radios.css +7 -0
  51. package/src/templates/components/searchbar/_examples.searchbar.njk +2 -2
  52. package/src/templates/components/searchbar/_template.searchbar.njk +1 -1
  53. package/src/templates/components/select/_styles.select.css +8 -0
  54. package/src/templates/components/table-advanced/_template.table-advanced.njk +2 -1
  55. package/src/templates/components/toggle/_examples.toggle.njk +2 -2
  56. package/src/templates/components/tree/_styles.tree.css +8 -0
@@ -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;
@@ -184,20 +191,21 @@
184
191
 
185
192
 
186
193
  .c-menu-navigation__button--header {
187
- @apply bg-black;
194
+ @apply bg-transparent;
188
195
  @apply border-none;
189
196
  @apply rounded-none;
190
197
  @apply shadow-none;
191
198
  @apply font-normal;
192
199
  @apply text-sm;
193
- @apply text-white;
200
+ @apply text-black;
194
201
 
195
202
  &:hover:not(disabled),
196
203
  &.ds-hover:not(disabled) {
197
- @apply bg-black;
204
+ @apply bg-transparent;
198
205
  @apply border-none;
199
206
  @apply shadow-none;
200
- @apply text-white;
207
+ @apply text-black;
208
+ @apply underline;
201
209
  }
202
210
 
203
211
  &[disabled],
@@ -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>
@@ -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],
@@ -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;
@@ -6,7 +6,7 @@
6
6
  "id": "searchbar-1",
7
7
  "label": {
8
8
  "text": "Buscar",
9
- "classes": "not-sr-only"
9
+ "classes": "not-sr-only mb-sm"
10
10
  }
11
11
  }
12
12
  },
@@ -49,7 +49,7 @@
49
49
  "id": "searchbar-label-visible",
50
50
  "label": {
51
51
  "text": "Buscar items recientes",
52
- "classes": "not-sr-only"
52
+ "classes": "not-sr-only mb-sm"
53
53
  }
54
54
  }
55
55
  },
@@ -18,7 +18,7 @@
18
18
  for: params.id
19
19
  }) | indent(2) | trim }}
20
20
  <div class="relative {%- if params.button %} flex flex-wrap items-end{% endif %}">
21
- <input class="c-input block mt-sm pr-12 border-black rounded font-semibold placeholder-neutral-dark focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-warning-base disabled:bg-neutral-light disabled:border-neutral-base {%- if not params.button %} w-full{% endif %} {%- if params.classes %} {{ params.classes }}{% endif %} {%- if params.errorMessage %} border-alert-base ring-2 ring-alert-base {% endif %}" id="{{ params.id }}" name="{{ params.id }}" type="search"
21
+ <input class="c-input block pr-12 border-black rounded font-semibold placeholder-neutral-dark focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-warning-base disabled:bg-neutral-light disabled:border-neutral-base {%- if not params.button %} w-full{% endif %} {%- if params.classes %} {{ params.classes }}{% endif %} {%- if params.errorMessage %} border-alert-base ring-2 ring-alert-base {% endif %}" id="{{ params.id }}" name="{{ params.id }}" type="search"
22
22
  {%- if params.value %} value="{{ params.value}}"{% endif %}
23
23
  {%- if describedBy %} aria-describedby="{{ describedBy }}"{% endif %}
24
24
  {%- if params.errorMessage %} aria-errormessage="{{ errorId }}" aria-invalid="true"{% endif %}
@@ -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": {
@@ -60,11 +60,11 @@
60
60
  "isSwitch": true,
61
61
  "offState": {
62
62
  "classes": "",
63
- "html": '<span class="flex align-center justify-between gap-xs"><span class="text-sm" aria-hidden="true">Off</span><span class="bg-neutral-base relative inline-flex flex-shrink-0 h-5 w-9 border-2 border-neutral-base rounded-full cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-white focus-visible:ring-opacity-75"><span class="sr-only">on</span><span aria-hidden="true" class="translate-x-0 pointer-events-none inline-block h-4 w-4 rounded-full bg-white shadow-lg transform ring-0 transition ease-in-out duration-200" /></span></span><span class="text-sm" aria-hidden="true">On</span></span>'
63
+ "html": '<span class="flex align-center justify-between gap-xs"><span class="text-sm" aria-hidden="true">Off</span><span class="bg-neutral-base relative inline-flex flex-shrink-0 h-5 w-9 border-2 border-neutral-base rounded-full cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-white focus-visible:ring-opacity-75"><span class="sr-only">Off</span><span aria-hidden="true" class="translate-x-0 pointer-events-none inline-block h-4 w-4 rounded-full bg-white shadow-lg transform ring-0 transition ease-in-out duration-200" /></span></span><span class="text-sm" aria-hidden="true">On</span></span>'
64
64
  },
65
65
  "onState": {
66
66
  "classes": "",
67
- "html": '<span class="flex align-center justify-between gap-xs"><span class="text-sm" aria-hidden="true">Off</span><span class="bg-primary-base relative inline-flex flex-shrink-0 h-5 w-9 border-2 border-primary-base rounded-full cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-white focus-visible:ring-opacity-75"><span class="sr-only">off</span><span aria-hidden="true" class="translate-x-4 pointer-events-none inline-block h-4 w-4 rounded-full bg-white shadow-lg transform ring-0 transition ease-in-out duration-200" /></span></span><span class="text-sm" aria-hidden="true">On</span></span>'
67
+ "html": '<span class="flex align-center justify-between gap-xs"><span class="text-sm" aria-hidden="true">Off</span><span class="bg-primary-base relative inline-flex flex-shrink-0 h-5 w-9 border-2 border-primary-base rounded-full cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-white focus-visible:ring-opacity-75"><span class="sr-only">On</span><span aria-hidden="true" class="translate-x-4 pointer-events-none inline-block h-4 w-4 rounded-full bg-white shadow-lg transform ring-0 transition ease-in-out duration-200" /></span></span><span class="text-sm" aria-hidden="true">On</span></span>'
68
68
  },
69
69
  "attributes": {
70
70
  "aria-labelledby": "id-text"
@@ -3,6 +3,14 @@
3
3
  ========================================================================== */
4
4
 
5
5
  @layer components {
6
+ .c-tree--base {
7
+ input[type="checkbox"],
8
+ input[type="radio"] {
9
+ @apply w-6;
10
+ @apply h-6;
11
+ }
12
+ }
13
+
6
14
  .c-tree--sm {
7
15
  input[type="checkbox"],
8
16
  input[type="radio"] {