@openeuropa/bcl-theme-joinup 1.3.0 → 1.5.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.
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@openeuropa/bcl-theme-joinup",
3
3
  "author": "European Commission",
4
4
  "license": "EUPL-1.2",
5
- "version": "1.3.0",
5
+ "version": "1.5.0",
6
6
  "description": "OE - BCL theme joinup",
7
7
  "scripts": {
8
8
  "align-templates": "lerna --scope \"@openeuropa/bcl-twig-templates\" run prepublish",
@@ -28,10 +28,10 @@
28
28
  "@ecl/resources-eu-logo": "3.7.1",
29
29
  "@ecl/resources-flag-icons": "3.7.1",
30
30
  "@fontsource/roboto": "4.5.8",
31
- "@openeuropa/bcl-bootstrap": "^1.3.0",
32
- "@openeuropa/bcl-builder": "^1.3.0",
33
- "@openeuropa/bcl-theme-default": "^1.3.0",
34
- "@openeuropa/bcl-twig-templates": "^1.3.0",
31
+ "@openeuropa/bcl-bootstrap": "^1.5.0",
32
+ "@openeuropa/bcl-builder": "^1.5.0",
33
+ "@openeuropa/bcl-theme-default": "^1.5.0",
34
+ "@openeuropa/bcl-twig-templates": "^1.5.0",
35
35
  "copyfiles": "2.4.1",
36
36
  "cross-env": "7.0.3",
37
37
  "flag-icons": "6.9.2",
@@ -56,5 +56,5 @@
56
56
  "design-system",
57
57
  "twig"
58
58
  ],
59
- "gitHead": "965b58bc48d2c2ee183db317ff2dd43d2f3bec9e"
59
+ "gitHead": "7707e40523c6a3d4c719c80388f2df50fa6b7896"
60
60
  }
@@ -93,7 +93,7 @@
93
93
  icon: _item.icon|merge({
94
94
  path: _icon_path,
95
95
  size: 'l',
96
- attributes: _icon_attributes.addClass('mb-2'),
96
+ attributes: _icon_attributes.addClass(['mb-2', 'icon--primary']),
97
97
  })
98
98
  }) %}
99
99
  {% include '@oe-bcl/bcl-icon/icon.html.twig' with _item.icon only %}
@@ -69,18 +69,21 @@
69
69
  {% endif %}
70
70
  </div>
71
71
  <div class="col-12 col-md-3 align-self-end text-md-end">
72
- {% include '@oe-bcl/bcl-link/link.html.twig' with _item.download|merge({
72
+ {% set download_attributes = create_attribute()
73
+ .setAttribute('download', true)
74
+ .setAttribute('target', '_blank')
75
+ .addClass(['d-block', 'standalone', 'mt-1'])
76
+ %}
77
+ {% set _download_item = _item.download|merge({
73
78
  icon_position: "after",
74
79
  icon: {
75
80
  name: "download",
76
81
  size: "fluid",
77
82
  path: _icon_path,
78
- },
79
- attributes: create_attribute()
80
- .setAttribute('download', true)
81
- .setAttribute('target', '_blank')
82
- .addClass(['d-block', 'standalone', 'mt-1'])
83
- }) only %}
83
+ }|merge(_item.download.icon|default({})),
84
+ attributes: download_attributes.merge(_item.download.attributes|default(create_attribute()))
85
+ }) %}
86
+ {% include '@oe-bcl/bcl-link/link.html.twig' with _download_item only %}
84
87
  </div>
85
88
  </div>
86
89
  {% endif %}
@@ -138,17 +138,18 @@
138
138
  </small>
139
139
  {% endif %}
140
140
  </div>
141
+ {% set download_attributes = create_attribute()
142
+ .setAttribute('download', 'true')
143
+ .setAttribute('target', '_blank')
144
+ .addClass(['standalone', 'align-self-center', 'd-inline-block', 'mt-1', 'mt-md-0', 'flex-shrink-0']) %}
141
145
  {% set _download = _download|merge({
142
146
  icon_position: "after",
143
147
  icon: {
144
148
  name: "download",
145
149
  size: "fluid",
146
150
  path: _icon_path,
147
- },
148
- attributes: create_attribute()
149
- .setAttribute('download', true)
150
- .setAttribute('target', '_blank')
151
- .addClass(['standalone', 'align-self-center', 'd-inline-block', 'mt-1', 'mt-md-0', 'flex-shrink-0'])
151
+ }|merge(_download.icon|default({})),
152
+ attributes: download_attributes.merge(_download.attributes|default(create_attribute()))
152
153
  }) %}
153
154
  {% include '@oe-bcl/bcl-link/link.html.twig' with _download only %}
154
155
  </div>
@@ -7,7 +7,9 @@ Parameters:
7
7
  - title_link: (link object) (default: {})
8
8
  - title_attributes (drupal attrs)
9
9
  - links: (link[]) (default: [])
10
- - id (string) (default: bcl-inpage-navigation-random(10))
10
+ - id (string) (default: bcl-inpage-navigation-random(100))
11
+ - dropdown_id (string) (default: bcl-inpage-navigation-dropdown-random(100))
12
+ - icon_path (string) (default: '')
11
13
  - attributes (drupal attrs)
12
14
  #}
13
15
 
@@ -16,7 +18,9 @@ Parameters:
16
18
  {% set _title_link = title_link|default({}) %}
17
19
  {% set _title_attributes = title_attributes ?: create_attribute() %}
18
20
  {% set _links = links|default([]) %}
19
- {% set _id = id|default('bcl-inpage-navigation-' ~ random(10)) %}
21
+ {% set _id = id|default('bcl-inpage-navigation-' ~ random(100)) %}
22
+ {% set _icon_path = icon_path|default('') %}
23
+ {% set _dropdown_id = dropdown_id|default('bcl-inpage-navigation-dropdown' ~ random(100)) %}
20
24
 
21
25
  {% if attributes is empty %}
22
26
  {% set attributes = create_attribute() %}
@@ -24,19 +28,36 @@ Parameters:
24
28
 
25
29
  {% set attributes = attributes.addClass(['bcl-inpage-navigation', 'position-sticky']).setAttribute('id', _id) %}
26
30
  {% set title_attributes = _title_attributes.addClass('mb-0') %}
31
+ {% set _title_content %}
32
+ {{ _title }}
33
+ {%- include '@oe-bcl/bcl-icon/icon.html.twig' with {
34
+ name: 'chevron-down',
35
+ size: 's',
36
+ path: _icon_path,
37
+ } only -%}
38
+ {% endset %}
27
39
 
28
40
  <nav {{ attributes }}>
41
+ {% set trigger_attributes = create_attribute()
42
+ .setAttribute('aria-expanded', 'false')
43
+ .setAttribute('type', 'button')
44
+ .setAttribute('id', _dropdown_id)
45
+ .setAttribute('data-bs-toggle', 'dropdown')
46
+ .addClass(['dropdown-toggle']) %}
29
47
  {% include '@oe-bcl/bcl-heading/heading.html.twig' with {
30
- title: _title,
48
+ title: _title_content,
31
49
  title_tag: _title_tag,
32
50
  title_link: _title_link,
33
- attributes: _title_attributes.addClass('mb-0'),
34
- } only %}
35
- {% include '@oe-bcl/bcl-navigation/navigation.html.twig' with {
36
- 'pills': true,
37
- 'vertical': true,
38
- 'items': _links,
51
+ attributes: _title_attributes
52
+ .merge(trigger_attributes),
39
53
  } only %}
54
+ <div class="dropdown-menu" aria-labelledby="{{ _dropdown_id }}">
55
+ {% include '@oe-bcl/bcl-navigation/navigation.html.twig' with {
56
+ 'pills': true,
57
+ 'vertical': true,
58
+ 'items': _links,
59
+ } only %}
60
+ </div>
40
61
  </nav>
41
62
 
42
63
  {% endapply %}
@@ -35,18 +35,18 @@
35
35
 
36
36
  {% set attributes = attributes.addClass(_classes) %}
37
37
 
38
- <div
39
- {{ attributes }}
40
- >
41
- {% if _title is not empty %}
42
- {% include '@oe-bcl/bcl-heading/heading.html.twig' with {
43
- title: _title,
44
- title_tag: _title_tag,
45
- title_link: _title_link,
46
- attributes: _title_attributes.addClass(_title_classes),
47
- } only %}
48
- {% endif %}
49
- {% if _links is not empty and _links is iterable %}
38
+ {% if _links is not empty and _links is iterable %}
39
+ <div
40
+ {{ attributes }}
41
+ >
42
+ {% if _title is not empty %}
43
+ {% include '@oe-bcl/bcl-heading/heading.html.twig' with {
44
+ title: _title,
45
+ title_tag: _title_tag,
46
+ title_link: _title_link,
47
+ attributes: _title_attributes.addClass(_title_classes),
48
+ } only %}
49
+ {% endif %}
50
50
  <ul class="ps-0 mb-0">
51
51
  {% for _link in _links %}
52
52
  {% if _link.attributes is empty %}
@@ -70,7 +70,7 @@
70
70
  </li>
71
71
  {% endfor %}
72
72
  </ul>
73
- {% endif %}
74
- </div>
73
+ </div>
74
+ {% endif %}
75
75
 
76
76
  {% endapply %}
@@ -29,6 +29,7 @@
29
29
  }
30
30
  - icon_path (string) (default: '')
31
31
  - attributes (drupal attrs)
32
+ - list_attributes (drupal attrs)
32
33
  #}
33
34
 
34
35
  {% set _size = size|default('') %}
@@ -102,19 +103,23 @@
102
103
 
103
104
  {% set _internal_items = _internal_items|merge([_next, _last]) %}
104
105
 
105
- {% if attributes is empty %}
106
- {% set attributes = create_attribute() %}
106
+ {% if list_attributes is empty %}
107
+ {% set list_attributes = create_attribute() %}
107
108
  {% endif %}
108
109
 
109
- {% set _classes = ['pagination'] %}
110
+ {% set list_attributes = list_attributes.addClass('pagination') %}
110
111
  {% if _size is not empty %}
111
- {% set _classes = _classes|merge(['pagination-' ~ _size]) %}
112
+ {% set list_attributes = list_attributes.addClass('pagination-' ~ _size) %}
112
113
  {% endif %}
113
114
  {% if _variant is not empty %}
114
- {% set _classes = _classes|merge(['pagination--' ~ _variant]) %}
115
+ {% set list_attributes = list_attributes.addClass('pagination--' ~ _variant) %}
115
116
  {% endif %}
116
117
  {% if _alignment is not empty %}
117
- {% set _classes = _classes|merge(['justify-content-' ~ _alignment]) %}
118
+ {% set list_attributes = list_attributes.addClass('justify-content-' ~ _alignment) %}
119
+ {% endif %}
120
+
121
+ {% if attributes is empty %}
122
+ {% set attributes = create_attribute() %}
118
123
  {% endif %}
119
124
 
120
125
  {% set attributes = attributes.setAttribute('role', 'navigation') %}
@@ -127,10 +132,8 @@
127
132
  {% set attributes = attributes.setAttribute('aria-label', aria_label) %}
128
133
  {% endif %}
129
134
 
130
- <nav
131
- {{ attributes }}
132
- >
133
- <ul class="{{ _classes|join(' ') }}">
135
+ <nav{{ attributes }}>
136
+ <ul{{ list_attributes }}>
134
137
  {% if _internal_items is not empty and _internal_items is iterable %}
135
138
  {% for _item in _internal_items %}
136
139
  {% if _item is not empty %}