@openeuropa/bcl-theme-default 1.8.2 → 1.9.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 (41) hide show
  1. package/bcl-builder.config.js +7 -2
  2. package/css/color-scheme.min.css +1 -1
  3. package/css/oe-bcl-ckeditor5.min.css +1 -1
  4. package/css/oe-bcl-ckeditor5.min.css.map +1 -1
  5. package/css/oe-bcl-default.css +972 -305
  6. package/css/oe-bcl-default.css.map +1 -1
  7. package/css/oe-bcl-default.min.css +1 -1
  8. package/css/oe-bcl-default.min.css.map +1 -1
  9. package/js/oe-bcl-default.bundle.js +0 -5
  10. package/js/oe-bcl-default.bundle.js.map +1 -1
  11. package/js/oe-bcl-default.bundle.min.js +1 -1
  12. package/js/oe-bcl-default.bundle.min.js.map +1 -1
  13. package/js/oe-bcl-default.esm.js +0 -3
  14. package/js/oe-bcl-default.esm.js.map +1 -1
  15. package/js/oe-bcl-default.esm.min.js.map +1 -1
  16. package/js/oe-bcl-default.umd.js +0 -5
  17. package/js/oe-bcl-default.umd.js.map +1 -1
  18. package/js/oe-bcl-default.umd.min.js +1 -1
  19. package/js/oe-bcl-default.umd.min.js.map +1 -1
  20. package/js/slim-select-2/slimselect.min.js +1 -0
  21. package/js/slimselect.min.js +1 -1
  22. package/package.json +9 -8
  23. package/src/js/gallery/gallery.js +0 -2
  24. package/src/scss/_accordion.scss +7 -0
  25. package/src/scss/_badge.scss +2 -23
  26. package/src/scss/_button.scss +15 -0
  27. package/src/scss/_carousel.scss +15 -1
  28. package/src/scss/_footer.scss +20 -1
  29. package/src/scss/_header.scss +4 -10
  30. package/src/scss/_input.scss +37 -4
  31. package/src/scss/_language-list.scss +11 -0
  32. package/src/scss/_multiselect-2.scss +552 -0
  33. package/src/scss/_multiselect.scss +2 -2
  34. package/src/scss/_pagination.scss +21 -5
  35. package/src/scss/_search-form.scss +4 -2
  36. package/src/scss/_tabs.scss +30 -0
  37. package/src/scss/base/_utilities.scss +14 -28
  38. package/src/scss/oe-bcl-default.scss +2 -0
  39. package/templates/bcl-carousel/carousel.html.twig +2 -2
  40. package/templates/bcl-header/header.html.twig +1 -0
  41. package/templates/bcl-mega-menu/mega-menu.html.twig +123 -0
@@ -1,12 +1,10 @@
1
1
  $utilities: map-merge(
2
2
  $utilities,
3
3
  (
4
- "background-color":
5
- map-merge(
4
+ "background-color": map-merge(
6
5
  map-get($utilities, "background-color"),
7
6
  (
8
- values:
9
- map-merge(
7
+ values: map-merge(
10
8
  map-get(map-get($utilities, "background-color"), "values"),
11
9
  (
12
10
  date: $date,
@@ -14,12 +12,10 @@ $utilities: map-merge(
14
12
  ),
15
13
  )
16
14
  ),
17
- "width":
18
- map-merge(
15
+ "width": map-merge(
19
16
  map-get($utilities, "width"),
20
17
  (
21
- values:
22
- map-merge(
18
+ values: map-merge(
23
19
  map-get(map-get($utilities, "width"), "values"),
24
20
  (
25
21
  min-content: min-content,
@@ -27,12 +23,10 @@ $utilities: map-merge(
27
23
  ),
28
24
  )
29
25
  ),
30
- "flex":
31
- map-merge(
26
+ "flex": map-merge(
32
27
  map-get($utilities, "flex"),
33
28
  (
34
- values:
35
- map-merge(
29
+ values: map-merge(
36
30
  map-get(map-get($utilities, "flex"), "values"),
37
31
  (
38
32
  1: 1,
@@ -42,12 +36,10 @@ $utilities: map-merge(
42
36
  )
43
37
  ),
44
38
  // Extend rounded-top utility.
45
- "max-width":
46
- map-merge(
39
+ "max-width": map-merge(
47
40
  map-get($utilities, "max-width"),
48
41
  (
49
- values:
50
- map-merge(
42
+ values: map-merge(
51
43
  map-get(map-get($utilities, "max-width"), "values"),
52
44
  (
53
45
  date: 10rem,
@@ -58,42 +50,36 @@ $utilities: map-merge(
58
50
  )
59
51
  ),
60
52
  // Create responsive classes for padding
61
- "padding":
62
- map-merge(
53
+ "padding": map-merge(
63
54
  map-get($utilities, "padding"),
64
55
  (
65
56
  responsive: true,
66
57
  )
67
58
  ),
68
59
  // Create responsive classes for borders
69
- "border":
70
- map-merge(
60
+ "border": map-merge(
71
61
  map-get($utilities, "border"),
72
62
  (
73
63
  responsive: true,
74
64
  )
75
65
  ),
76
- "border-top":
77
- map-merge(
66
+ "border-top": map-merge(
78
67
  map-get($utilities, "border-top"),
79
68
  (
80
69
  responsive: true,
81
70
  )
82
71
  ),
83
- "border-bottom":
84
- map-merge(
72
+ "border-bottom": map-merge(
85
73
  map-get($utilities, "border-bottom"),
86
74
  (
87
75
  responsive: true,
88
76
  )
89
77
  ),
90
78
  // Create medium font weight class
91
- "font-weight":
92
- map-merge(
79
+ "font-weight": map-merge(
93
80
  map-get($utilities, "font-weight"),
94
81
  (
95
- values:
96
- map-merge(
82
+ values: map-merge(
97
83
  map-get(map-get($utilities, "font-weight"), "values"),
98
84
  (
99
85
  medium: 500,
@@ -57,6 +57,7 @@
57
57
  @import "@openeuropa/bcl-theme-default/src/scss/base/mixins";
58
58
 
59
59
  // Custom styles
60
+ @import "@openeuropa/bcl-theme-default/src/scss/accordion";
60
61
  @import "@openeuropa/bcl-theme-default/src/scss/alert";
61
62
  @import "@openeuropa/bcl-theme-default/src/scss/button";
62
63
  @import "@openeuropa/bcl-theme-default/src/scss/blockquote";
@@ -74,6 +75,7 @@
74
75
  @import "@openeuropa/bcl-theme-default/src/scss/spinners";
75
76
  @import "@openeuropa/bcl-theme-default/src/scss/badge";
76
77
  @import "@openeuropa/bcl-theme-default/src/scss/multiselect";
78
+ @import "@openeuropa/bcl-theme-default/src/scss/multiselect-2";
77
79
  @import "@openeuropa/bcl-theme-default/src/scss/breadcrumb";
78
80
  @import "@openeuropa/bcl-theme-default/src/scss/banners";
79
81
  @import "@openeuropa/bcl-theme-default/src/scss/timeline";
@@ -158,7 +158,7 @@
158
158
  data-bs-target="#{{ _id }}"
159
159
  data-bs-slide="prev"
160
160
  >
161
- <span class="carousel-control-prev-icon" aria-hidden="true"></span>
161
+ <span class="carousel-control-prev-icon"></span>
162
162
  {% if _prev_label is not empty %}
163
163
  <span class="visually-hidden">{{ _prev_label }}</span>
164
164
  {% endif %}
@@ -169,7 +169,7 @@
169
169
  data-bs-target="#{{ _id }}"
170
170
  data-bs-slide="next"
171
171
  >
172
- <span class="carousel-control-next-icon" aria-hidden="true"></span>
172
+ <span class="carousel-control-next-icon"></span>
173
173
  {% if _next_label is not empty %}
174
174
  <span class="visually-hidden">{{ _next_label }}</span>
175
175
  {% endif %}
@@ -62,6 +62,7 @@
62
62
  <div class="container">
63
63
  {% if _project_link is not empty %}
64
64
  <a
65
+ class="d-inline-block"
65
66
  href="{{ _project_link }}"
66
67
  >
67
68
  {% endif %}
@@ -0,0 +1,123 @@
1
+ {% apply spaceless %}
2
+
3
+ {# Parameters:
4
+ - id (string) (default: dropdown-random(1000))
5
+ - link (boolean) (default: false) - sets trigger to link, default is button
6
+ - trigger (link or button)
7
+ - content_block (block) (default: '')
8
+ - min_height (string) (default: '300px')
9
+ ! set min-height of mega-menu
10
+ - items (object[])
11
+ format: [
12
+ {
13
+ - link or dropdown
14
+ ! dropdown extra property:
15
+ collapse (render) - to showcase on the last column
16
+ }
17
+ ]
18
+ - back_button_label (string) (default: 'Back')
19
+ - icon_path (string) (default: '')
20
+ #}
21
+
22
+ {% set _id = id|default('dropdown-' ~ random(1000)) %}
23
+ {% set _link = link ?? false %}
24
+ {% set _trigger = trigger|default({}) %}
25
+ {% set _content_block = content_block|default('') %}
26
+ {% set _min_height = min_height|default('300px') %}
27
+ {% set _items = items|default([]) %}
28
+ {% set _back_button_label = back_button_label|default('Back') %}
29
+ {% set _icon_path = icon_path|default('') %}
30
+
31
+ {% if attributes is empty %}
32
+ {% set attributes = create_attribute() %}
33
+ {% endif %}
34
+
35
+ {% set _classes = ['bcl-mega-menu'] %}
36
+
37
+ {% set attributes = attributes.setAttribute('aria-labelledby', _id).addClass(_classes) %}
38
+
39
+ {% if _trigger.attributes is empty %}
40
+ {% set _trigger = _trigger|merge({
41
+ attributes: create_attribute()
42
+ }) %}
43
+ {% endif %}
44
+ {% set _trigger = _trigger|merge({
45
+ attributes: _trigger.attributes.addClass(['dropdown-toggle'])
46
+ .setAttribute('aria-expanded', 'false')
47
+ .setAttribute('data-bs-toggle', 'dropdown')
48
+ .setAttribute('data-bs-auto-close', 'outside')
49
+ .setAttribute('id', _id)
50
+ }) %}
51
+ {% if _link %}
52
+ {% set _trigger = _trigger|merge({
53
+ attributes: _trigger.attributes.setAttribute('role', 'button')
54
+ }) %}
55
+ {% else %}
56
+ {% set _trigger = _trigger|merge({
57
+ attributes: _trigger.attributes.setAttribute('autocomplete', 'off')
58
+ }) %}
59
+ {% endif %}
60
+
61
+ <div {{ attributes }} style="--bcl-mm-min-height: {{ _min_height }};">
62
+ {% if _link %}
63
+ {% include '@oe-bcl/bcl-link/link.html.twig' with _trigger only %}
64
+ {% else %}
65
+ {% include '@oe-bcl/bcl-button/button.html.twig' with _trigger only %}
66
+ {% endif %}
67
+ <div class="mega-menu-container dropdown-menu" aria-labelledby="{{ _id }}">
68
+ <div class="container">
69
+ <div class="d-lg-none back-button-block pt-3-5">
70
+ {% include '@oe-bcl/bcl-button/button.html.twig' with {
71
+ label: _back_button_label,
72
+ icon_position: "before",
73
+ variant: 'link',
74
+ icon: {
75
+ path: _icon_path,
76
+ name: "chevron-left",
77
+ },
78
+ attributes: create_attribute().addClass(['back-button', 'ps-0'])
79
+ } only %}
80
+ </div>
81
+ <div class="row position-relative h-100">
82
+ {% if content_block is defined %}
83
+ <div class="col-12 col-xxl-3">
84
+ <div class="content-block">
85
+ {%- block content_block -%}
86
+ {{ _content_block }}
87
+ {%- endblock -%}
88
+ </div>
89
+ </div>
90
+ {% endif %}
91
+ <div class="col-12 col-xxl-9">
92
+ <div class="navigation-items">
93
+ {% for _item in _items %}
94
+ {% if _item.items is defined %}
95
+ {% set _trigger_attributes = _item.trigger.attributes is defined ? _item.trigger.attributes : create_attribute() %}
96
+ {% include '@oe-bcl/bcl-dropdown/dropdown.html.twig' with _item|merge({
97
+ direction: 'dropend',
98
+ link: true,
99
+ trigger: _item.trigger|merge({
100
+ icon: {
101
+ path: _icon_path,
102
+ name: "chevron-right",
103
+ },
104
+ attributes: _trigger_attributes.setAttribute('data-bs-auto-close', 'false')
105
+ })
106
+ }) only %}
107
+ {% if _item.collapse is defined %}
108
+ <div class="collapse">
109
+ {{ _item.collapse|raw }}
110
+ </div>
111
+ {% endif %}
112
+ {% else %}
113
+ {% include '@oe-bcl/bcl-link/link.html.twig' with _item only %}
114
+ {% endif %}
115
+ {% endfor %}
116
+ </div>
117
+ </div>
118
+ </div>
119
+ </div>
120
+ </div>
121
+ </div>
122
+
123
+ {% endapply %}