@openeuropa/bcl-theme-joinup 1.10.7 → 1.10.9

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 (98) hide show
  1. package/css/oe-bcl-joinup.css +362 -220
  2. package/css/oe-bcl-joinup.css.map +1 -1
  3. package/css/oe-bcl-joinup.min.css +1 -1
  4. package/css/oe-bcl-joinup.min.css.map +1 -1
  5. package/fonts/files/roboto-cyrillic-400-italic.woff +0 -0
  6. package/fonts/files/roboto-cyrillic-400-italic.woff2 +0 -0
  7. package/fonts/files/roboto-cyrillic-400-normal.woff +0 -0
  8. package/fonts/files/roboto-cyrillic-400-normal.woff2 +0 -0
  9. package/fonts/files/roboto-cyrillic-500-italic.woff +0 -0
  10. package/fonts/files/roboto-cyrillic-500-italic.woff2 +0 -0
  11. package/fonts/files/roboto-cyrillic-500-normal.woff +0 -0
  12. package/fonts/files/roboto-cyrillic-500-normal.woff2 +0 -0
  13. package/fonts/files/roboto-cyrillic-700-italic.woff +0 -0
  14. package/fonts/files/roboto-cyrillic-700-italic.woff2 +0 -0
  15. package/fonts/files/roboto-cyrillic-700-normal.woff +0 -0
  16. package/fonts/files/roboto-cyrillic-700-normal.woff2 +0 -0
  17. package/fonts/files/roboto-greek-400-italic.woff +0 -0
  18. package/fonts/files/roboto-greek-400-italic.woff2 +0 -0
  19. package/fonts/files/roboto-greek-400-normal.woff +0 -0
  20. package/fonts/files/roboto-greek-400-normal.woff2 +0 -0
  21. package/fonts/files/roboto-greek-500-italic.woff +0 -0
  22. package/fonts/files/roboto-greek-500-italic.woff2 +0 -0
  23. package/fonts/files/roboto-greek-500-normal.woff +0 -0
  24. package/fonts/files/roboto-greek-500-normal.woff2 +0 -0
  25. package/fonts/files/roboto-greek-700-italic.woff +0 -0
  26. package/fonts/files/roboto-greek-700-italic.woff2 +0 -0
  27. package/fonts/files/roboto-greek-700-normal.woff +0 -0
  28. package/fonts/files/roboto-greek-700-normal.woff2 +0 -0
  29. package/fonts/files/roboto-latin-400-italic.woff +0 -0
  30. package/fonts/files/roboto-latin-400-italic.woff2 +0 -0
  31. package/fonts/files/roboto-latin-400-normal.woff +0 -0
  32. package/fonts/files/roboto-latin-400-normal.woff2 +0 -0
  33. package/fonts/files/roboto-latin-500-italic.woff +0 -0
  34. package/fonts/files/roboto-latin-500-italic.woff2 +0 -0
  35. package/fonts/files/roboto-latin-500-normal.woff +0 -0
  36. package/fonts/files/roboto-latin-500-normal.woff2 +0 -0
  37. package/fonts/files/roboto-latin-700-italic.woff +0 -0
  38. package/fonts/files/roboto-latin-700-italic.woff2 +0 -0
  39. package/fonts/files/roboto-latin-700-normal.woff +0 -0
  40. package/fonts/files/roboto-latin-700-normal.woff2 +0 -0
  41. package/fonts/files/roboto-latin-ext-400-italic.woff +0 -0
  42. package/fonts/files/roboto-latin-ext-400-italic.woff2 +0 -0
  43. package/fonts/files/roboto-latin-ext-400-normal.woff +0 -0
  44. package/fonts/files/roboto-latin-ext-400-normal.woff2 +0 -0
  45. package/fonts/files/roboto-latin-ext-500-italic.woff +0 -0
  46. package/fonts/files/roboto-latin-ext-500-italic.woff2 +0 -0
  47. package/fonts/files/roboto-latin-ext-500-normal.woff +0 -0
  48. package/fonts/files/roboto-latin-ext-500-normal.woff2 +0 -0
  49. package/fonts/files/roboto-latin-ext-700-italic.woff +0 -0
  50. package/fonts/files/roboto-latin-ext-700-italic.woff2 +0 -0
  51. package/fonts/files/roboto-latin-ext-700-normal.woff +0 -0
  52. package/fonts/files/roboto-latin-ext-700-normal.woff2 +0 -0
  53. package/icons/bcl-default-icons.svg +1 -1
  54. package/icons/bootstrap-icons.svg +1 -1
  55. package/js/oe-bcl-joinup.bundle.js +86 -14
  56. package/js/oe-bcl-joinup.bundle.js.map +1 -1
  57. package/js/oe-bcl-joinup.bundle.min.js +1 -1
  58. package/js/oe-bcl-joinup.bundle.min.js.map +1 -1
  59. package/js/oe-bcl-joinup.esm.js +85 -14
  60. package/js/oe-bcl-joinup.esm.js.map +1 -1
  61. package/js/oe-bcl-joinup.esm.min.js +1 -1
  62. package/js/oe-bcl-joinup.esm.min.js.map +1 -1
  63. package/js/oe-bcl-joinup.umd.js +86 -14
  64. package/js/oe-bcl-joinup.umd.js.map +1 -1
  65. package/js/oe-bcl-joinup.umd.min.js +1 -1
  66. package/js/oe-bcl-joinup.umd.min.js.map +1 -1
  67. package/package.json +12 -12
  68. package/src/js/index.esm.js +2 -0
  69. package/src/js/index.umd.js +2 -0
  70. package/src/scss/oe-bcl-joinup.scss +3 -2
  71. package/templates/bcl-base-templates/listing-page.html.twig +17 -19
  72. package/templates/bcl-contact-form/contact-form.html.twig +3 -3
  73. package/templates/bcl-content-banner/content-banner.html.twig +3 -0
  74. package/templates/bcl-dropdown/dropdown.html.twig +12 -7
  75. package/templates/bcl-event/event.html.twig +5 -5
  76. package/templates/bcl-file/file.html.twig +1 -1
  77. package/templates/bcl-glossary/glossary-detail.html.twig +4 -5
  78. package/templates/bcl-glossary/glossary-listing.html.twig +5 -5
  79. package/templates/bcl-group/group-landing.html.twig +5 -5
  80. package/templates/bcl-group/group.html.twig +3 -3
  81. package/templates/bcl-header/header.html.twig +43 -50
  82. package/templates/bcl-landing-page/landing-page.html.twig +5 -8
  83. package/templates/bcl-language-list/language-list-modal.html.twig +58 -5
  84. package/templates/bcl-links-block/links-block.html.twig +1 -1
  85. package/templates/bcl-mega-menu/mega-menu-submenu.html.twig +10 -7
  86. package/templates/bcl-modal/modal.html.twig +20 -7
  87. package/templates/bcl-navigation/navigation.html.twig +8 -0
  88. package/templates/bcl-page/page.html.twig +5 -5
  89. package/templates/bcl-pagination-v2/pagination-item.html.twig +90 -0
  90. package/templates/bcl-pagination-v2/pagination.html.twig +213 -0
  91. package/templates/bcl-person/person.html.twig +5 -5
  92. package/templates/bcl-project/project.html.twig +7 -7
  93. package/templates/bcl-project-status/project-contributions.html.twig +1 -1
  94. package/templates/bcl-search/search.html.twig +3 -3
  95. package/templates/bcl-subscription/subscription.html.twig +5 -5
  96. package/templates/{bcl-toast → bcl-toasts}/toasts.html.twig +17 -8
  97. package/templates/bcl-user/user-terms.html.twig +3 -3
  98. package/templates/bcl-user/user.html.twig +3 -3
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.10.7",
5
+ "version": "1.10.9",
6
6
  "description": "OE - BCL theme joinup",
7
7
  "scripts": {
8
8
  "align-templates": "lerna --scope \"@openeuropa/bcl-twig-templates\" run prepublish",
@@ -20,23 +20,23 @@
20
20
  "update:templates": "npm-run-all -s align-templates build:copy"
21
21
  },
22
22
  "devDependencies": {
23
- "@babel/core": "7.27.4",
24
- "@babel/plugin-transform-runtime": "7.27.4",
25
- "@babel/preset-env": "7.27.2",
23
+ "@babel/core": "7.28.4",
24
+ "@babel/plugin-transform-runtime": "7.28.3",
25
+ "@babel/preset-env": "7.28.3",
26
26
  "@babel/preset-react": "7.27.1",
27
27
  "@ecl/resources-ec-logo": "3.7.1",
28
28
  "@ecl/resources-eu-logo": "3.7.1",
29
29
  "@ecl/resources-flag-icons": "3.7.1",
30
- "@fontsource/roboto": "5.1.1",
31
- "@openeuropa/bcl-bootstrap": "^1.10.7",
32
- "@openeuropa/bcl-builder": "^1.10.7",
33
- "@openeuropa/bcl-theme-default": "^1.10.7",
34
- "@openeuropa/bcl-twig-templates": "^1.10.7",
30
+ "@fontsource/roboto": "5.2.8",
31
+ "@openeuropa/bcl-bootstrap": "^1.10.9",
32
+ "@openeuropa/bcl-builder": "^1.10.9",
33
+ "@openeuropa/bcl-theme-default": "^1.10.9",
34
+ "@openeuropa/bcl-twig-templates": "^1.10.9",
35
35
  "@rollup/plugin-replace": "6.0.2",
36
36
  "copyfiles": "2.4.1",
37
- "cross-env": "7.0.3",
37
+ "cross-env": "10.1.0",
38
38
  "flag-icons": "6.9.2",
39
- "glob": "11.0.1",
39
+ "glob": "11.1.0",
40
40
  "npm-run-all": "4.1.5",
41
41
  "slim-select": "1.27.1"
42
42
  },
@@ -57,5 +57,5 @@
57
57
  "design-system",
58
58
  "twig"
59
59
  ],
60
- "gitHead": "5f7e5c2fd90eceb81c0ffcf52dcf8e3921c3acae"
60
+ "gitHead": "cb9864341bfc98404071520d61568bd18e17e1fe"
61
61
  }
@@ -23,6 +23,7 @@ import ScrollSpy from "@openeuropa/bcl-bootstrap/js/src/scrollspy-legacy";
23
23
  import Tab from "@openeuropa/bcl-bootstrap/js/src/tab";
24
24
  import Toast from "@openeuropa/bcl-bootstrap/js/src/toast";
25
25
  import Tooltip from "@openeuropa/bcl-bootstrap/js/src/tooltip";
26
+ import Header from "@openeuropa/bcl-theme-default/src/js/header/header";
26
27
 
27
28
  export {
28
29
  Alert,
@@ -43,4 +44,5 @@ export {
43
44
  Tab,
44
45
  Toast,
45
46
  Tooltip,
47
+ Header,
46
48
  };
@@ -23,6 +23,7 @@ import ScrollSpy from "@openeuropa/bcl-bootstrap/js/src/scrollspy-legacy";
23
23
  import Tab from "@openeuropa/bcl-bootstrap/js/src/tab";
24
24
  import Toast from "@openeuropa/bcl-bootstrap/js/src/toast";
25
25
  import Tooltip from "@openeuropa/bcl-bootstrap/js/src/tooltip";
26
+ import Header from "@openeuropa/bcl-theme-default/src/js/header/header";
26
27
 
27
28
  export default {
28
29
  Alert,
@@ -43,4 +44,5 @@ export default {
43
44
  Tab,
44
45
  Toast,
45
46
  Tooltip,
47
+ Header,
46
48
  };
@@ -90,11 +90,12 @@
90
90
  @import "@openeuropa/bcl-theme-default/src/scss/carousel";
91
91
  @import "@openeuropa/bcl-theme-default/src/scss/gallery";
92
92
  @import "@openeuropa/bcl-theme-default/src/scss/pagination";
93
+ @import "@openeuropa/bcl-theme-default/src/scss/inpage-navigation";
94
+ @import "@openeuropa/bcl-theme-default/src/scss/language-list";
95
+ @import "@openeuropa/bcl-theme-default/src/scss/pagination-v2";
93
96
 
94
97
  // JoinUp Custom styles
95
98
  @import "@openeuropa/bcl-theme-joinup/src/scss/badges";
96
99
  @import "@openeuropa/bcl-theme-joinup/src/scss/buttons";
97
100
  @import "@openeuropa/bcl-theme-joinup/src/scss/form";
98
101
  @import "@openeuropa/bcl-theme-joinup/src/scss/pagination";
99
- @import "@openeuropa/bcl-theme-default/src/scss/inpage-navigation";
100
- @import "@openeuropa/bcl-theme-default/src/scss/language-list";
@@ -8,20 +8,16 @@
8
8
  - pagination (object) (default: {})
9
9
  - sidebar (object) (default: '')
10
10
  #}
11
+ {% extends "@oe-bcl/bcl-base-templates/content-type.html.twig" -%}
11
12
 
12
- {% extends "@oe-bcl/bcl-base-templates/content-type.html.twig" %}
13
-
14
- {% set _title = title|default('') %}
15
- {% set _title_tag = title_tag|default('h2') %}
16
- {% set _title_link = title_link|default({}) %}
17
- {% set _title_attributes = title_attributes ?: create_attribute() %}
18
13
  {% set _listing = listing|default({}) %}
19
- {% set _pagination = pagination|default({}) %}
20
- {% set _sidebar = sidebar|default({}) %}
21
-
22
- {% set _title_attributes = _title_attributes ?: create_attribute() %}
23
14
 
24
- {% block content_top %}
15
+ {%- block content_top %}
16
+ {% set _title = title|default('') %}
17
+ {% set _title_tag = title_tag|default('h2') %}
18
+ {% set _title_link = title_link|default({}) %}
19
+ {% set _title_attributes = title_attributes ?: create_attribute() %}
20
+ {% set _title_attributes = _title_attributes ?: create_attribute() %}
25
21
  {% if filter_button %}
26
22
  {% include '@oe-bcl/bcl-button/button.html.twig' with filter_button only %}
27
23
  {% endif %}
@@ -29,7 +25,7 @@
29
25
  <div class="col-md-6 col-lg-8 align-self-center">
30
26
  {% if _title is not empty %}
31
27
  {% include '@oe-bcl/bcl-heading/heading.html.twig' with {
32
- title: _title ~ ' (' ~ listing.items.length ~ ')',
28
+ title: _title ~ ' (' ~ (_listing.items|length) ~ ')',
33
29
  title_tag: _title_tag,
34
30
  title_link: _title_link,
35
31
  attributes: _title_attributes.addClass(['mb-0', 'text-capitalize']),
@@ -54,21 +50,23 @@
54
50
  </div>
55
51
  </div>
56
52
  <hr class="d-none d-md-block mb-4-75"/>
57
- {% endblock %}
53
+ {%- endblock -%}
58
54
 
59
- {% block content %}
55
+ {%- block content %}
60
56
  {% if _listing is not empty %}
61
57
  {% include '@oe-bcl/bcl-listing/listing.html.twig' with _listing only %}
62
58
  {% endif %}
63
- {% endblock %}
59
+ {%- endblock -%}
64
60
 
65
- {% block content_bottom %}
61
+ {%- block content_bottom %}
62
+ {% set _pagination = pagination|default({}) %}
66
63
  {% if _pagination is not empty %}
67
64
  <hr class="d-none d-md-block mt-4-5">
68
65
  {% include '@oe-bcl/bcl-pagination/pagination.html.twig' with _pagination only %}
69
66
  {% endif %}
70
- {% endblock %}
67
+ {%- endblock -%}
71
68
 
72
- {% block sidebar %}
69
+ {%- block sidebar %}
70
+ {% set _sidebar = sidebar|default({}) %}
73
71
  {% include '@oe-bcl/bcl-base-templates/sidebar-search.html.twig' with _sidebar only %}
74
- {% endblock %}
72
+ {%- endblock -%}
@@ -1,5 +1,5 @@
1
- {% extends '@oe-bcl/bcl-base-templates/content-type.html.twig' %}
1
+ {% extends '@oe-bcl/bcl-base-templates/content-type.html.twig' -%}
2
2
 
3
- {% block content %}
3
+ {%- block content %}
4
4
  {% include '@oe-bcl/bcl-form/form.html.twig' with form only %}
5
- {% endblock %}
5
+ {%- endblock -%}
@@ -92,6 +92,9 @@
92
92
  {% if _date is not empty %}
93
93
  {% set _left_col_classes = 'bcl-card-start-col' %}
94
94
  {% set _right_col_classes = 'col-12 col-md col-xxl-9' %}
95
+ {% if _image is empty %}
96
+ {% set _body_classes = 'pt-4 pt-md-0 px-0 px-md-1-5 pb-0' %}
97
+ {% endif %}
95
98
  {% endif %}
96
99
  {% if _image is empty and _date is empty %}
97
100
  {% set _right_col_classes = 'col-lg-10 col-xl-9 col-xxl-8' %}
@@ -42,6 +42,7 @@
42
42
  {% set _alignment = alignment|default('') %}
43
43
  {% set _dark = dark ?? false %}
44
44
  {% set _remove_wrapper = remove_wrapper ?? false %}
45
+ {% set _inside_navigation = inside_navigation ?? false %}
45
46
  {% set _items = items|default([]) %}
46
47
 
47
48
  {% set _class = 'dropdown' %}
@@ -75,14 +76,18 @@
75
76
  .setAttribute('id', _id)
76
77
  }) %}
77
78
 
78
- {% if _link %}
79
- {% set _trigger = _trigger|merge({
80
- attributes: _trigger.attributes.setAttribute('role', 'button')
81
- }) %}
79
+ {% if not _inside_navigation %}
80
+ {% if _link %}
81
+ {% set _trigger = _trigger|merge({
82
+ attributes: _trigger.attributes.setAttribute('role', 'button')
83
+ }) %}
84
+ {% else %}
85
+ {% set _trigger = _trigger|merge({
86
+ attributes: _trigger.attributes.setAttribute('autocomplete', 'off')
87
+ }) %}
88
+ {% endif %}
82
89
  {% else %}
83
- {% set _trigger = _trigger|merge({
84
- attributes: _trigger.attributes.setAttribute('autocomplete', 'off')
85
- }) %}
90
+ {% set attributes = attributes.setAttribute('aria-hidden', 'true').setAttribute('role', 'presentation') %}
86
91
  {% endif %}
87
92
 
88
93
  {% if not _remove_wrapper %}
@@ -1,10 +1,10 @@
1
- {% extends '@oe-bcl/bcl-base-templates/content-type.html.twig' %}
1
+ {% extends '@oe-bcl/bcl-base-templates/content-type.html.twig' -%}
2
2
 
3
- {% block sidebar %}
3
+ {%- block sidebar %}
4
4
  {% include '@oe-bcl/bcl-inpage-navigation/inpage-navigation.html.twig' with sidebar only %}
5
- {% endblock %}
5
+ {%- endblock -%}
6
6
 
7
- {% block content %}
7
+ {%- block content %}
8
8
  {% include '@oe-bcl/bcl-description-list/description-list.html.twig' with details_list only %}
9
9
 
10
10
  <h2 id="item-1" class="my-4">Description</h2>
@@ -21,4 +21,4 @@
21
21
  <h2 id="item-2" class="my-4">Related documents</h2>
22
22
  {% include '@oe-bcl/bcl-file/file.html.twig' with files[0] only %}
23
23
  {% include '@oe-bcl/bcl-file/file.html.twig' with files[1] only %}
24
- {% endblock %}
24
+ {%- endblock -%}
@@ -139,7 +139,7 @@
139
139
  {% endif %}
140
140
  </div>
141
141
  {% set download_attributes = create_attribute()
142
- .setAttribute('download', 'true')
142
+ .setAttribute('download', true)
143
143
  .setAttribute('target', '_blank')
144
144
  .addClass(['standalone', 'align-self-center', 'd-inline-block', 'mt-1', 'mt-md-0', 'flex-shrink-0']) %}
145
145
  {% set _download = _download|merge({
@@ -1,6 +1,6 @@
1
- {% extends '@oe-bcl/bcl-base-templates/content-type.html.twig' %}
1
+ {% extends '@oe-bcl/bcl-base-templates/content-type.html.twig' -%}
2
2
 
3
- {% block content %}
3
+ {%- block content %}
4
4
  {% include '@oe-bcl/bcl-heading/heading.html.twig' with {
5
5
  title: 'Description',
6
6
  title_tag: 'h2',
@@ -38,6 +38,5 @@
38
38
  <div {{ file_classes ? 'class="' ~ file_classes ~ '"' }}>
39
39
  {% include '@oe-bcl/bcl-file/file.html.twig' with file only %}
40
40
  </div>
41
- {% endfor %}
42
-
43
- {% endblock %}
41
+ {% endfor %}
42
+ {%- endblock -%}
@@ -1,6 +1,6 @@
1
- {% extends '@oe-bcl/bcl-base-templates/listing-page.html.twig' %}
1
+ {% extends '@oe-bcl/bcl-base-templates/listing-page.html.twig' -%}
2
2
 
3
- {% block content_row %}
3
+ {%- block content_row %}
4
4
  {% include '@oe-bcl/bcl-pagination/pagination.html.twig' with glossary only %}
5
5
  <div class="col-12">
6
6
  <div class="d-md-flex justify-content-end mb-md-4-75 align-items-center border-bottom-md border-top-md border-gray-300 py-3">
@@ -8,12 +8,12 @@
8
8
  {% include '@oe-bcl/bcl-select/select.html.twig' with itemsPerPage only %}
9
9
  </div>
10
10
  </div>
11
- {% endblock %}
11
+ {%- endblock -%}
12
12
 
13
- {% block content_top %}
13
+ {%- block content_top %}
14
14
  {% include '@oe-bcl/bcl-heading/heading.html.twig' with {
15
15
  title: 'Starting with "A" (48)',
16
16
  title_tag: 'h2',
17
17
  } only %}
18
18
 
19
- {% endblock %}
19
+ {%- endblock -%}
@@ -1,6 +1,6 @@
1
- {% extends "@oe-bcl/bcl-base-templates/content-type.html.twig" %}
1
+ {% extends "@oe-bcl/bcl-base-templates/content-type.html.twig" -%}
2
2
 
3
- {% block banner %}
3
+ {%- block banner %}
4
4
  <div class="container">
5
5
  {% if banner is not empty %}
6
6
  <div class="mt-4 mt-md-5">
@@ -70,9 +70,9 @@
70
70
  </div>
71
71
  {% endif %}
72
72
  </div>
73
- {% endblock %}
73
+ {%- endblock -%}
74
74
 
75
- {% block content %}
75
+ {%- block content %}
76
76
  {% if recent is not empty and members is not empty %}
77
77
  <div class="row mt-3">
78
78
  <div class="col-md-8">
@@ -98,4 +98,4 @@
98
98
  {% include '@oe-bcl/bcl-listing/listing.html.twig' with contributions.listing only %}
99
99
  {% endif %}
100
100
  {% endif %}
101
- {% endblock %}
101
+ {%- endblock -%}
@@ -1,6 +1,6 @@
1
- {% extends "@oe-bcl/bcl-base-templates/listing-page.html.twig" %}
1
+ {% extends "@oe-bcl/bcl-base-templates/listing-page.html.twig" -%}
2
2
 
3
- {% block banner %}
3
+ {%- block banner %}
4
4
  <div class="container mt-4 mt-md-5">
5
5
  <div class="col-xxl-11">
6
6
  <div class="p-md-3-5 pt-3 bg-lighter d-md-flex n-mx-container">
@@ -24,4 +24,4 @@
24
24
  {% endif %}
25
25
  </div>
26
26
  </div>
27
- {% endblock %}
27
+ {%- endblock -%}
@@ -17,6 +17,8 @@
17
17
  - language_modal (object) (default: {})
18
18
  - light (boolean) (default: false)
19
19
  - modals (modal[]) (default: [])
20
+ - toggler_attributes (drupal attrs)
21
+ - icon_path (string) (default: '')
20
22
  - attributes (drupal attrs)
21
23
  #}
22
24
 
@@ -30,6 +32,8 @@
30
32
  {% set _breadcrumbs = breadcrumbs|default({}) %}
31
33
  {% set _language_modal = language_modal|default({}) %}
32
34
  {% set _light = light ?? false %}
35
+ {% set _toggler_attributes = toggler_attributes ?: create_attribute() %}
36
+ {% set _icon_path = icon_path|default('') %}
33
37
  {% set _modals = modals|default([]) %}
34
38
 
35
39
  {% set _site_name_classes = 'bcl-header__site-name' %}
@@ -38,7 +42,7 @@
38
42
  {% set attributes = create_attribute() %}
39
43
  {% endif %}
40
44
 
41
- {% set attributes = attributes.addClass(['bcl-header', 'bcl-header--' ~ _variant]) %}
45
+ {% set attributes = attributes.addClass(['bcl-header', 'bcl-header--' ~ _variant, 'shadow-sm']) %}
42
46
 
43
47
  {% if site_name_classes is not empty %}
44
48
  {% set _site_name_classes = _site_name_classes ~ ' ' ~ site_name_classes %}
@@ -49,6 +53,33 @@
49
53
  {% set _project_classes = _project_classes ~ ' light' %}
50
54
  {% endif %}
51
55
 
56
+ {% set toggler_attributes = _toggler_attributes.addClass(['bcl-navbar-toggler', 'd-lg-none'])
57
+ .setAttribute('type', 'button')
58
+ .setAttribute('data-bs-toggle', 'collapse')
59
+ .setAttribute('data-bs-target', '#' ~ navbar_id)
60
+ .setAttribute('aria-controls', navbar_id)
61
+ .setAttribute('aria-expanded', 'false')
62
+ %}
63
+
64
+ {% set navbar_toggle_button %}
65
+ <button
66
+ {{ toggler_attributes }}
67
+ >
68
+ {% include '@oe-bcl/bcl-icon/icon.html.twig' with {
69
+ name: 'list',
70
+ size: 'fluid',
71
+ path: _icon_path,
72
+ attributes: create_attribute().addClass(['default-icon']),
73
+ } only %}
74
+ {% include '@oe-bcl/bcl-icon/icon.html.twig' with {
75
+ name: 'x',
76
+ size: 'fluid',
77
+ path: _icon_path,
78
+ attributes: create_attribute().addClass(['active-icon']),
79
+ } only %}
80
+ </button>
81
+ {% endset %}
82
+
52
83
  <header
53
84
  {{ attributes }}
54
85
  >
@@ -70,54 +101,16 @@
70
101
  {% endfor %}
71
102
  </a>
72
103
  {% endif %}
73
- <button
74
- class="navbar-toggler bcl-navbar-toggler"
75
- type="button"
76
- data-bs-toggle="collapse"
77
- data-bs-target='#{{ _navbar_id }}'
78
- aria-controls='{{ _navbar_id }}'
79
- aria-expanded="false"
80
- aria-label="Toggle navigation"
81
- >
82
- <span class="navbar-toggler-icon"></span>
83
- </button>
104
+ {{ navbar_toggle_button }}
84
105
  </div>
85
106
  </nav>
86
107
 
87
-
88
- <!-- project name -->
89
- {% if _project_logo is not empty or _site_name is not empty %}
90
- <div class="{{ _project_classes }}">
108
+ <!-- site name -->
109
+ <div class="bcl-header__site-name" id="site-name-heading">
91
110
  <div class="container">
92
- {% if _project_link is not empty %}
93
- <a
94
- href="{{ _project_link }}"
95
- >
96
- {% endif %}
97
- {% if _project_logo is not empty %}
98
- <img
99
- {% if _project_logo.path is not empty %}
100
- src="{{ _project_logo.path }}"
101
- {% endif %}
102
- {% if _project_logo.alt is not empty %}
103
- alt="{{ _project_logo.alt }}"
104
- {% endif %}
105
- {% if _project_logo.classes is not empty %}
106
- class="{{ _project_logo.classes }}"
107
- {% endif %}
108
- />
109
- {% endif %}
110
- {% if _site_name is not empty %}
111
- <span class="{{ _site_name_classes }}">
112
- {{- _site_name -}}
113
- </span>
114
- {% endif %}
115
- {% if _project_link is not empty %}
116
- </a>
117
- {% endif %}
111
+ <span class="h5 py-3-5 border-top-subtle mb-0 d-block">{{ _site_name }}</span>
118
112
  </div>
119
113
  </div>
120
- {% endif %}
121
114
 
122
115
  <!-- navbar -->
123
116
  {% if _navbar is not empty %}
@@ -126,15 +119,15 @@
126
119
  attributes: create_attribute().addClass('bcl-header__navbar collapse navbar-collapse').setAttribute('id', _navbar_id).setAttribute('aria-label', 'Main Navigation'),
127
120
  }) only %}
128
121
  {% endif %}
129
-
130
- <!-- breadcrumbs -->
131
- {% if _breadcrumbs is not empty %}
132
- <div class="container">
133
- {% include '@oe-bcl/bcl-breadcrumb/breadcrumb.html.twig' with _breadcrumbs only %}
134
- </div>
135
- {% endif %}
136
122
  </header>
137
123
 
124
+ <!-- breadcrumbs -->
125
+ {% if _breadcrumbs is not empty %}
126
+ <div class="container">
127
+ {% include '@oe-bcl/bcl-breadcrumb/breadcrumb.html.twig' with _breadcrumbs only %}
128
+ </div>
129
+ {% endif %}
130
+
138
131
  {% for modal in _modals %}
139
132
  {% include '@oe-bcl/bcl-modal/modal.html.twig' with modal only %}
140
133
  {% endfor %}
@@ -1,13 +1,11 @@
1
- {% extends "@oe-bcl/bcl-base-templates/content-type.html.twig" %}
1
+ {% extends "@oe-bcl/bcl-base-templates/content-type.html.twig" -%}
2
2
 
3
- {% block banner %}
3
+ {%- block banner %}
4
4
  {% if banner is defined %}
5
5
  {% include '@oe-bcl/bcl-banner/banner.html.twig' with banner only %}
6
6
  {% endif %}
7
- {% endblock %}
8
-
9
- {% block content %}
10
-
7
+ {%- endblock -%}
8
+ {%- block content %}
11
9
  <div class="container">
12
10
  {% if featured_section is defined %}
13
11
  <div class="my-4">
@@ -55,5 +53,4 @@
55
53
  </div>
56
54
  {% endif %}
57
55
  </div>
58
-
59
- {% endblock %}
56
+ {%- endblock -%}
@@ -19,7 +19,7 @@
19
19
  {% block header %}
20
20
  {% if size == 'fullscreen' %}
21
21
  <div class="container">
22
- {% if variant == 'eu' or variant == 'ec' %}
22
+ {% if _variant == 'eu' or _variant == 'ec' %}
23
23
  <div class="border-bottom mx-n3 px-3 px-md-0 pt-md-4-5">
24
24
  <div class="py-3-5 px-3 px-sm-0 px-md-3">
25
25
  {% endif %}
@@ -43,7 +43,7 @@
43
43
  ></button>
44
44
  {% if size == 'fullscreen' %}
45
45
  </div>
46
- {% if variant == 'eu' or variant == 'ec' %}
46
+ {% if _variant == 'eu' or _variant == 'ec' %}
47
47
  </div>
48
48
  </div>
49
49
  {% endif %}
@@ -52,7 +52,60 @@
52
52
  {% endblock %}
53
53
 
54
54
  {% block body %}
55
- {% include '@oe-bcl/bcl-language-list/language-list.html.twig' with {
56
- attributes: create_attribute()
57
- } %}
55
+ {% set attributes = create_attribute().addClass(['bcl-language-list', 'bcl-language-list--' ~ _variant]) %}
56
+ <div
57
+ {{ attributes }}
58
+ >
59
+ {% if _logo is not empty %}
60
+ <div class="container">
61
+ {% if _title is empty %}
62
+ <div class="text-center">
63
+ {% endif %}
64
+ <div class="d-inline-flex align-items-center">
65
+ <img
66
+ {% if _logo.path is not empty %}
67
+ src="{{ _logo.path }}"
68
+ {% endif %}
69
+ {% if _logo.alt is not empty %}
70
+ alt="{{ _logo.alt }}"
71
+ {% endif %}
72
+ {% if _logo.class is not empty %}
73
+ class="{{ _logo.class }}"
74
+ {% endif %}
75
+ />
76
+ {% if _title is not empty %}
77
+ <h5 class="h5 ms-4">{{ _title }}</h5>
78
+ {% endif %}
79
+ </div>
80
+ {% if _title is empty %}
81
+ </div>
82
+ {% endif %}
83
+ </div>
84
+ {% endif %}
85
+
86
+ {% if _items is not empty or _non_eu_items is not empty %}
87
+ <div class="main pt-4">
88
+ {% if not (_variant == 'neutral' and _inside_container) %}
89
+ <div class="container">
90
+ {% endif %}
91
+ {% if _items is not empty and _items is iterable %}
92
+ {% include '@oe-bcl/bcl-language-list/language-list-grid.html.twig' with {
93
+ items: _items,
94
+ icon_path: _icon_path,
95
+ category: eu_category,
96
+ } only %}
97
+ {% endif %}
98
+ {% if _non_eu_items is not empty and _non_eu_items is iterable %}
99
+ {% include '@oe-bcl/bcl-language-list/language-list-grid.html.twig' with {
100
+ items: _non_eu_items,
101
+ icon_path: _icon_path,
102
+ category: non_eu_category,
103
+ } only %}
104
+ {% endif %}
105
+ {% if not (_variant == 'neutral' and _inside_container) %}
106
+ </div>
107
+ {% endif %}
108
+ </div>
109
+ {% endif %}
110
+ </div>
58
111
  {% endblock %}
@@ -56,7 +56,7 @@
56
56
  {% endif %}
57
57
  {% set _link = _link|merge({
58
58
  clean_class: true,
59
- attributes: _link.attributes.addClass(['pb-3', 'd-inline-block', 'standalone'])
59
+ attributes: _link.attributes.addClass(['mb-3', 'd-inline-block', 'standalone'])
60
60
  }) %}
61
61
  {% set _list_item_classes = 'list-unstyled' %}
62
62
  {% if _variant == 'horizontal' %}
@@ -21,30 +21,28 @@
21
21
  }) %}
22
22
  {% include '@oe-bcl/bcl-button/button.html.twig' with _trigger only %}
23
23
 
24
- {# Add an optional "See all" link as last item. #}
24
+ {% set _see_all_link = null %}
25
+ {# Prepare an optional "See all" link rendered outside the list. #}
25
26
  {% if _see_all is not empty %}
26
- {# Wrap the label for an ellipsis. #}
27
27
  {% set _see_all_label %}
28
28
  <span>{{- _see_all.label -}}</span>
29
29
  {% endset %}
30
30
  {% set _see_all_attr = (_see_all.attributes is defined ? _see_all.attributes : create_attribute()) %}
31
- {% set _see_all = _see_all|merge({
31
+ {% set _see_all_link = _see_all|merge({
32
32
  label: _see_all_label,
33
33
  icon: {
34
+ size: 'xs',
34
35
  name: 'arrow-right',
35
36
  path: _icon_path,
36
37
  },
37
- li_attributes: create_attribute()
38
- .addClass('__see_all'),
39
38
  attributes: _see_all_attr
40
39
  .addClass(['see-all-button'])
41
40
  .setAttribute('aria-label', 'See all items in ‘' ~ _trigger.label ~ '’')
42
41
  }) %}
43
- {% set _items = _items|merge([_see_all]) %}
44
42
  {% endif %}
45
43
  {% set submenu_attributes = create_attribute()
46
44
  .setAttribute('id', _panel_id)
47
- .setAttribute('hidden', '')
45
+ .setAttribute('hidden', true)
48
46
  .setAttribute('role', 'group')
49
47
  .setAttribute('aria-labelledby', _trigger_id)
50
48
  .addClass('bcl-mega-menu__submenu', '__level-' ~ _level)
@@ -60,6 +58,11 @@
60
58
  icon_path: _icon_path,
61
59
  level: _level,
62
60
  } only %}
61
+ {% if _see_all_link %}
62
+ <div class="__see_all">
63
+ {% include '@oe-bcl/bcl-link/link.html.twig' with _see_all_link only %}
64
+ </div>
65
+ {% endif %}
63
66
  </div>
64
67
 
65
68
  {% endapply %}