@openeuropa/bcl-twig-templates 0.24.1 → 0.26.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 (30) hide show
  1. package/package.json +65 -65
  2. package/templates/bcl-accordion/accordion.html.twig +17 -0
  3. package/templates/bcl-base-templates/sidebar-search.html.twig +14 -1
  4. package/templates/bcl-blockquote/blockquote.html.twig +17 -0
  5. package/templates/bcl-card/card.html.twig +7 -5
  6. package/templates/bcl-carousel/carousel.html.twig +20 -10
  7. package/templates/bcl-content-banner/content-banner.html.twig +11 -8
  8. package/templates/bcl-date-block/date-block.html.twig +0 -2
  9. package/templates/bcl-description-list/description-list.html.twig +129 -88
  10. package/templates/bcl-fact-figures/fact-figures.html.twig +2 -2
  11. package/templates/bcl-featured-media/featured-media.html.twig +30 -9
  12. package/templates/bcl-file/file.html.twig +4 -2
  13. package/templates/bcl-gallery/gallery.html.twig +1 -1
  14. package/templates/bcl-language-switcher/language-switcher.html.twig +9 -3
  15. package/templates/bcl-links-block/links-block.html.twig +4 -0
  16. package/templates/bcl-listing/listing.html.twig +40 -50
  17. package/templates/bcl-modal/modal.html.twig +1 -1
  18. package/templates/bcl-navbar/navbar.html.twig +7 -7
  19. package/templates/bcl-navigation/navigation.html.twig +1 -1
  20. package/templates/bcl-offcanvas/offcanvas.html.twig +14 -3
  21. package/templates/bcl-page/page.html.twig +4 -23
  22. package/templates/bcl-pagination/pagination.html.twig +1 -1
  23. package/templates/bcl-person/person.html.twig +1 -3
  24. package/templates/bcl-progress/progress.html.twig +1 -4
  25. package/templates/bcl-project/project-lists.html.twig +1 -1
  26. package/templates/bcl-search-form/search-form.html.twig +1 -1
  27. package/templates/bcl-subscription-block/subscription-block.html.twig +3 -1
  28. package/templates/bcl-user/user-compact.html.twig +3 -2
  29. package/templates/bcl-user/user-terms.html.twig +4 -4
  30. package/templates/bcl-user/user.html.twig +2 -2
package/package.json CHANGED
@@ -2,75 +2,75 @@
2
2
  "name": "@openeuropa/bcl-twig-templates",
3
3
  "author": "European Commission",
4
4
  "license": "EUPL-1.2",
5
- "version": "0.24.1",
5
+ "version": "0.26.0",
6
6
  "description": "OE Bcl Twig Templates",
7
7
  "publishConfig": {
8
8
  "access": "public"
9
9
  },
10
10
  "devDependencies": {
11
- "@openeuropa/bcl-accordion": "^0.24.1",
12
- "@openeuropa/bcl-alert": "^0.24.1",
13
- "@openeuropa/bcl-badge": "^0.24.1",
14
- "@openeuropa/bcl-banner": "^0.24.1",
15
- "@openeuropa/bcl-base-templates": "^0.24.1",
16
- "@openeuropa/bcl-blockquote": "^0.24.1",
17
- "@openeuropa/bcl-breadcrumb": "^0.24.1",
18
- "@openeuropa/bcl-button": "^0.24.1",
19
- "@openeuropa/bcl-button-group": "^0.24.1",
20
- "@openeuropa/bcl-card": "^0.24.1",
21
- "@openeuropa/bcl-card-layout": "^0.24.1",
22
- "@openeuropa/bcl-carousel": "^0.24.1",
23
- "@openeuropa/bcl-contact-form": "^0.24.1",
24
- "@openeuropa/bcl-content-banner": "^0.24.1",
25
- "@openeuropa/bcl-date-block": "^0.24.1",
26
- "@openeuropa/bcl-description-list": "^0.24.1",
27
- "@openeuropa/bcl-dropdown": "^0.24.1",
28
- "@openeuropa/bcl-event": "^0.24.1",
29
- "@openeuropa/bcl-fact-figures": "^0.24.1",
30
- "@openeuropa/bcl-featured-media": "^0.24.1",
31
- "@openeuropa/bcl-file": "^0.24.1",
32
- "@openeuropa/bcl-footer": "^0.24.1",
33
- "@openeuropa/bcl-form": "^0.24.1",
34
- "@openeuropa/bcl-form-input": "^0.24.1",
35
- "@openeuropa/bcl-gallery": "^0.24.1",
36
- "@openeuropa/bcl-glossary": "^0.24.1",
37
- "@openeuropa/bcl-group": "^0.24.1",
38
- "@openeuropa/bcl-header": "^0.24.1",
39
- "@openeuropa/bcl-heading": "^0.24.1",
40
- "@openeuropa/bcl-icon": "^0.24.1",
41
- "@openeuropa/bcl-inpage-navigation": "^0.24.1",
42
- "@openeuropa/bcl-landing-page": "^0.24.1",
43
- "@openeuropa/bcl-language-list": "^0.24.1",
44
- "@openeuropa/bcl-language-switcher": "^0.24.1",
45
- "@openeuropa/bcl-link": "^0.24.1",
46
- "@openeuropa/bcl-links-block": "^0.24.1",
47
- "@openeuropa/bcl-list-group": "^0.24.1",
48
- "@openeuropa/bcl-listing": "^0.24.1",
49
- "@openeuropa/bcl-modal": "^0.24.1",
50
- "@openeuropa/bcl-multilingual": "^0.24.1",
51
- "@openeuropa/bcl-navbar": "^0.24.1",
52
- "@openeuropa/bcl-navigation": "^0.24.1",
53
- "@openeuropa/bcl-news": "^0.24.1",
54
- "@openeuropa/bcl-offcanvas": "^0.24.1",
55
- "@openeuropa/bcl-page": "^0.24.1",
56
- "@openeuropa/bcl-pagination": "^0.24.1",
57
- "@openeuropa/bcl-person": "^0.24.1",
58
- "@openeuropa/bcl-placeholder": "^0.24.1",
59
- "@openeuropa/bcl-progress": "^0.24.1",
60
- "@openeuropa/bcl-project": "^0.24.1",
61
- "@openeuropa/bcl-project-status": "^0.24.1",
62
- "@openeuropa/bcl-recent-activities": "^0.24.1",
63
- "@openeuropa/bcl-search": "^0.24.1",
64
- "@openeuropa/bcl-search-form": "^0.24.1",
65
- "@openeuropa/bcl-select": "^0.24.1",
66
- "@openeuropa/bcl-spinner": "^0.24.1",
67
- "@openeuropa/bcl-subscription": "^0.24.1",
68
- "@openeuropa/bcl-subscription-block": "^0.24.1",
69
- "@openeuropa/bcl-table": "^0.24.1",
70
- "@openeuropa/bcl-textarea": "^0.24.1",
71
- "@openeuropa/bcl-timeline": "^0.24.1",
72
- "@openeuropa/bcl-toast": "^0.24.1",
73
- "@openeuropa/bcl-user": "^0.24.1",
11
+ "@openeuropa/bcl-accordion": "^0.26.0",
12
+ "@openeuropa/bcl-alert": "^0.26.0",
13
+ "@openeuropa/bcl-badge": "^0.26.0",
14
+ "@openeuropa/bcl-banner": "^0.26.0",
15
+ "@openeuropa/bcl-base-templates": "^0.26.0",
16
+ "@openeuropa/bcl-blockquote": "^0.26.0",
17
+ "@openeuropa/bcl-breadcrumb": "^0.26.0",
18
+ "@openeuropa/bcl-button": "^0.26.0",
19
+ "@openeuropa/bcl-button-group": "^0.26.0",
20
+ "@openeuropa/bcl-card": "^0.26.0",
21
+ "@openeuropa/bcl-card-layout": "^0.26.0",
22
+ "@openeuropa/bcl-carousel": "^0.26.0",
23
+ "@openeuropa/bcl-contact-form": "^0.26.0",
24
+ "@openeuropa/bcl-content-banner": "^0.26.0",
25
+ "@openeuropa/bcl-date-block": "^0.26.0",
26
+ "@openeuropa/bcl-description-list": "^0.26.0",
27
+ "@openeuropa/bcl-dropdown": "^0.26.0",
28
+ "@openeuropa/bcl-event": "^0.26.0",
29
+ "@openeuropa/bcl-fact-figures": "^0.26.0",
30
+ "@openeuropa/bcl-featured-media": "^0.26.0",
31
+ "@openeuropa/bcl-file": "^0.26.0",
32
+ "@openeuropa/bcl-footer": "^0.26.0",
33
+ "@openeuropa/bcl-form": "^0.26.0",
34
+ "@openeuropa/bcl-form-input": "^0.26.0",
35
+ "@openeuropa/bcl-gallery": "^0.26.0",
36
+ "@openeuropa/bcl-glossary": "^0.26.0",
37
+ "@openeuropa/bcl-group": "^0.26.0",
38
+ "@openeuropa/bcl-header": "^0.26.0",
39
+ "@openeuropa/bcl-heading": "^0.26.0",
40
+ "@openeuropa/bcl-icon": "^0.26.0",
41
+ "@openeuropa/bcl-inpage-navigation": "^0.26.0",
42
+ "@openeuropa/bcl-landing-page": "^0.26.0",
43
+ "@openeuropa/bcl-language-list": "^0.26.0",
44
+ "@openeuropa/bcl-language-switcher": "^0.26.0",
45
+ "@openeuropa/bcl-link": "^0.26.0",
46
+ "@openeuropa/bcl-links-block": "^0.26.0",
47
+ "@openeuropa/bcl-list-group": "^0.26.0",
48
+ "@openeuropa/bcl-listing": "^0.26.0",
49
+ "@openeuropa/bcl-modal": "^0.26.0",
50
+ "@openeuropa/bcl-multilingual": "^0.26.0",
51
+ "@openeuropa/bcl-navbar": "^0.26.0",
52
+ "@openeuropa/bcl-navigation": "^0.26.0",
53
+ "@openeuropa/bcl-news": "^0.26.0",
54
+ "@openeuropa/bcl-offcanvas": "^0.26.0",
55
+ "@openeuropa/bcl-page": "^0.26.0",
56
+ "@openeuropa/bcl-pagination": "^0.26.0",
57
+ "@openeuropa/bcl-person": "^0.26.0",
58
+ "@openeuropa/bcl-placeholder": "^0.26.0",
59
+ "@openeuropa/bcl-progress": "^0.26.0",
60
+ "@openeuropa/bcl-project": "^0.26.0",
61
+ "@openeuropa/bcl-project-status": "^0.26.0",
62
+ "@openeuropa/bcl-recent-activities": "^0.26.0",
63
+ "@openeuropa/bcl-search": "^0.26.0",
64
+ "@openeuropa/bcl-search-form": "^0.26.0",
65
+ "@openeuropa/bcl-select": "^0.26.0",
66
+ "@openeuropa/bcl-spinner": "^0.26.0",
67
+ "@openeuropa/bcl-subscription": "^0.26.0",
68
+ "@openeuropa/bcl-subscription-block": "^0.26.0",
69
+ "@openeuropa/bcl-table": "^0.26.0",
70
+ "@openeuropa/bcl-textarea": "^0.26.0",
71
+ "@openeuropa/bcl-timeline": "^0.26.0",
72
+ "@openeuropa/bcl-toast": "^0.26.0",
73
+ "@openeuropa/bcl-user": "^0.26.0",
74
74
  "copyfiles": "2.4.1",
75
75
  "rimraf": "3.0.2"
76
76
  },
@@ -93,5 +93,5 @@
93
93
  "design-system",
94
94
  "twig"
95
95
  ],
96
- "gitHead": "3ebebdea0c76a5a8df03abbd13873956a1e4837a"
96
+ "gitHead": "94d89cc379780cfce06178959194b3bc1b4c5eda"
97
97
  }
@@ -2,6 +2,10 @@
2
2
 
3
3
  {#
4
4
  Parameters:
5
+ - title (string) (default: '')
6
+ - title_tag (string) (default: 'h2')
7
+ - title_link: (link object) (default: {})
8
+ - title_attributes: (drupal attrs)
5
9
  - id (int) (default: random(1000))
6
10
  - flush (boolean) (default: false)
7
11
  - items (array) (default: []): format: [
@@ -16,6 +20,10 @@
16
20
  - attributes (drupal attrs)
17
21
  #}
18
22
 
23
+ {% set _title = title|default('') %}
24
+ {% set _title_tag = title_tag|default('h2') %}
25
+ {% set _title_link = title_link|default({}) %}
26
+ {% set _title_attributes = title_attributes ?: create_attribute() %}
19
27
  {% set _id = id|default(random(1000)) %}
20
28
  {% set _flush = flush|default(false) %}
21
29
  {% set _items = items|default([]) %}
@@ -35,6 +43,15 @@
35
43
  <div
36
44
  {{ attributes }}
37
45
  >
46
+ {%- if _title is not empty -%}
47
+ {% include '@oe-bcl/bcl-heading/heading.html.twig' with {
48
+ title: _title,
49
+ title_tag: _title_tag,
50
+ title_link: _title_link,
51
+ attributes: _title_attributes,
52
+ } only %}
53
+ {%- endif -%}
54
+
38
55
  {% for _item in _items %}
39
56
  {% set _open_item = _open_item_id == loop.index %}
40
57
  {% set _button_classes = ['accordion-button'] %}
@@ -1,7 +1,20 @@
1
1
  {% extends "@oe-bcl/bcl-offcanvas/offcanvas.html.twig" %}
2
2
 
3
+ {% set responsiveness = 'lg' %}
4
+ {% if extra_classes_header is empty %}
5
+ {% set extra_classes_header = 'd-lg-block' %}
6
+ {% else %}
7
+ {% set extra_classes_header = extra_classes_header ~ ' d-lg-block' %}
8
+ {% endif %}
9
+
3
10
  {% block body %}
11
+ {% if search_form.attributes is empty %}
12
+ {% set attributes = search_form.create_attribute() %}
13
+ {% endif %}
14
+
4
15
  <div class="offcanvas-body p-lg-0">
5
- {% include '@oe-bcl/bcl-form/form.html.twig' with search_form only %}
16
+ {% include '@oe-bcl/bcl-form/form.html.twig' with search_form|merge({
17
+ attributes: search_form.attributes.addClass('w-100')
18
+ }) only %}
6
19
  </div>
7
20
  {% endblock %}
@@ -1,6 +1,10 @@
1
1
  {% spaceless %}
2
2
 
3
3
  {# Parameters:
4
+ - title (string) (default: '')
5
+ - title_tag (string) (default: 'h2')
6
+ - title_link: (link object) (default: {})
7
+ - title_attributes: (drupal attrs)
4
8
  - quote (string) (default: '')
5
9
  - attribution (string) (default: '')
6
10
  - cite (string) (default: '')
@@ -9,6 +13,10 @@
9
13
  - attributes (drupal attrs)
10
14
  #}
11
15
 
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() %}
12
20
  {% set _quote = quote|default('') %}
13
21
  {% set _attribution = attribution|default('') %}
14
22
  {% set _cite = cite|default('') %}
@@ -37,6 +45,15 @@
37
45
 
38
46
  {% set attributes = attributes.addClass(_classes) %}
39
47
 
48
+ {%- if _title is not empty -%}
49
+ {% include '@oe-bcl/bcl-heading/heading.html.twig' with {
50
+ title: _title,
51
+ title_tag: _title_tag,
52
+ title_link: _title_link,
53
+ attributes: _title_attributes,
54
+ } only %}
55
+ {%- endif -%}
56
+
40
57
  <figure
41
58
  {{ attributes }}
42
59
  >
@@ -28,9 +28,10 @@
28
28
  - horizontal (boolean) (default: false)
29
29
  - horizontal_grid (object) (default: {})
30
30
  format: {
31
- left_col_classes (default: 'col-4')
32
- right_col_classes (default: 'col-8')
31
+ left_col_classes (default: 'bcl-card-start-col')
32
+ right_col_classes (default: 'col')
33
33
  gutter (default: '')
34
+ gutter (default: '') - options: ['small', 'large']
34
35
  }
35
36
  - variant (string) (default: '')
36
37
  - border_variant (string) (default: '')
@@ -63,8 +64,9 @@
63
64
  {% set _variant = variant|default('') %}
64
65
  {% set _horizontal = horizontal|default(false) %}
65
66
  {% set _horizontal_grid = horizontal_grid|default({
66
- left_col_classes: 'col-4',
67
- right_col_classes: 'col-8'
67
+ left_col_classes: 'bcl-card-start-col',
68
+ right_col_classes: 'col',
69
+ left_col_size: '',
68
70
  }) %}
69
71
  {% set _border_variant = border_variant|default('') %}
70
72
  {% set _text_color = text_color|default('') %}
@@ -170,7 +172,7 @@
170
172
  <div class='{{ _body_classes }}'>
171
173
  {% if _title is not empty %}
172
174
  {% if _title_attributes.class is empty %}
173
- {% set _title_attributes = _title_attributes.addClass('fs-5') %}
175
+ {% set _title_attributes = _title_attributes.addClass('fs-4') %}
174
176
  {% endif %}
175
177
  {% set _title_attributes = _title_attributes.addClass('card-title') %}
176
178
  {% include '@oe-bcl/bcl-heading/heading.html.twig' with {
@@ -1,9 +1,11 @@
1
1
  {% spaceless %}
2
2
 
3
3
  {# Parameters:
4
- - id (string) (default: '')
4
+ - title (string) (default: '')
5
+ - title_tag (string) (default: 'h2')
6
+ - title_link: (link object) (default: {})
7
+ - title_attributes: (drupal attrs)
5
8
  - autoplay (boolean) (default: true)
6
- - autoinit (boolean) (default: true)
7
9
  - dark (boolean) (default: false)
8
10
  - active_item (integer) (default: 1)
9
11
  - items (array of objects) format: [
@@ -25,8 +27,11 @@
25
27
  - attributes (drupal attrs)
26
28
  #}
27
29
 
30
+ {% set _title = title|default('') %}
31
+ {% set _title_tag = title_tag|default('h2') %}
32
+ {% set _title_link = title_link|default({}) %}
33
+ {% set _title_attributes = title_attributes ?: create_attribute() %}
28
34
  {% set _id = id|default('') %}
29
- {% set _autoinit = autoinit ?? true %}
30
35
  {% set _autoplay = autoplay ?? true %}
31
36
  {% set _dark = dark|default(false) %}
32
37
  {% set _active_item = active_item|default(1) %}
@@ -39,7 +44,7 @@
39
44
  {% set _rounded_indicators = rounded_indicators|default(false) %}
40
45
  {% set _disable_touch = disable_touch|default(false) %}
41
46
 
42
- {% set _classes = ['carousel slide'] %}
47
+ {% set _classes = ['carousel', 'slide'] %}
43
48
 
44
49
  {% if _fade %}
45
50
  {% set _classes = _classes|merge(['carousel-fade']) %}
@@ -56,7 +61,7 @@
56
61
  {% set attributes = attributes.setAttribute('id', _id) %}
57
62
  {% endif %}
58
63
 
59
- {% if _autoinit %}
64
+ {% if _autoplay %}
60
65
  {% set attributes = attributes.setAttribute('data-bs-ride', 'carousel') %}
61
66
  {% endif %}
62
67
 
@@ -68,12 +73,17 @@
68
73
  {% set attributes = attributes.addClass('rounded-indicators') %}
69
74
  {% endif %}
70
75
 
71
- {% if not _autoplay %}
72
- {% set attributes = attributes.setAttribute('data-bs-interval', 'false') %}
73
- {% endif %}
74
-
75
76
  {% set attributes = attributes.addClass(_classes) %}
76
77
 
78
+ {%- if _title is not empty -%}
79
+ {% include '@oe-bcl/bcl-heading/heading.html.twig' with {
80
+ title: _title,
81
+ title_tag: _title_tag,
82
+ title_link: _title_link,
83
+ attributes: _title_attributes,
84
+ } only %}
85
+ {%- endif -%}
86
+
77
87
  <div
78
88
  {{ attributes }}
79
89
  >
@@ -124,7 +134,7 @@
124
134
  <div class="{{ _item.caption_classes }}">
125
135
  {% endif %}
126
136
  {% if _item.caption_title is not empty %}
127
- <h5>{{ _item.caption_title }}</h5>
137
+ <p class="fs-5">{{ _item.caption_title }}</p>
128
138
  {% endif %}
129
139
  {{- _item.caption -}}
130
140
  {% if _item.caption_classes is defined and _item.caption_classes is not empty %}
@@ -11,7 +11,7 @@
11
11
  - image (object)
12
12
  - image_size: (string)
13
13
  - date: (object)
14
- options: ['sm', 'md', 'lg']
14
+ options: ['sm', 'md', 'lg', 'xl']
15
15
  - content: (string)
16
16
  - badges: (array of objects of type badge)
17
17
  - links: (array of objects of type link)
@@ -63,20 +63,23 @@
63
63
  {% set _right_col_classes = 'col-md-8 col-lg-9 col-xxl-8' %}
64
64
 
65
65
  {% if _image is not empty %}
66
- {% set _left_col_classes = 'col-8 col-md-4 col-lg-3 offset-2 offset-md-0' %}
67
- {% set _right_col_classes = 'col-md-8 col-lg-9 col-xxl-8' %}
66
+ {% set _left_col_classes = 'bcl-card-start-col' %}
68
67
  {% set _body_classes = 'pt-4 pt-md-0 px-0 px-md-3 pb-0' %}
69
68
  {% if _image_size == 'lg' %}
70
- {% set _left_col_classes = 'col-md-4' %}
71
- {% set _right_col_classes = 'col-md-8' %}
69
+ {% set _left_col_classes = _left_col_classes ~ ' bcl-size-large' %}
70
+ {% set _right_col_classes = 'col-12 col-md-7 col-lg-8 col-xl-9 col-xxl-8' %}
72
71
  {% endif %}
73
72
  {% if _image_size == 'sm' %}
74
- {% set _left_col_classes = 'col-6 col-md-4 col-lg-2 offset-3 offset-md-0' %}
73
+ {% set _left_col_classes = _left_col_classes ~ ' bcl-size-small' %}
74
+ {% endif %}
75
+ {% if _image_size == 'xl' %}
76
+ {% set _left_col_classes = _left_col_classes ~ ' bcl-size-extra-large' %}
77
+ {% set _right_col_classes = 'col-12 col-lg-7 col-xl-8' %}
75
78
  {% endif %}
76
79
  {% endif %}
77
80
  {% if _date is not empty %}
78
- {% set _left_col_classes = 'col-8 col-md-3 col-lg-2 offset-4 offset-md-0' %}
79
- {% set _right_col_classes = 'col-md-9 col-lg-10 col-xxl-8' %}
81
+ {% set _left_col_classes = 'bcl-card-start-col' %}
82
+ {% set _right_col_classes = 'col-12 col-md col-xxl-9' %}
80
83
  {% endif %}
81
84
 
82
85
  {% set _horizontal_classes = {
@@ -2,7 +2,6 @@
2
2
 
3
3
  {#
4
4
  Parameters:
5
- - "variant" (string) (default: '')
6
5
  - "day" (integer) (default: '')
7
6
  - "month" (string) (default: '')
8
7
  - "date_time" (string) (default: '')
@@ -19,7 +18,6 @@
19
18
  {% set _end_day = end_day|default('') %}
20
19
  {% set _end_month = end_month|default('') %}
21
20
  {% set _end_year = end_year|default('') %}
22
- {% set _variant = variant|default('') %}
23
21
  {% set _css_classes = [
24
22
  'bcl-date-block',
25
23
  'bg-date',
@@ -2,37 +2,59 @@
2
2
 
3
3
  {#
4
4
  Parameters:
5
- - title: (string) (default: "")
6
- - title_tag: (string) (default: "h2")
5
+ - title: (string) (default: '')
6
+ - title_tag: (string) (default: 'h2')
7
7
  - title_link: (link object) (default: {})
8
8
  - title_attributes (drupal attrs)
9
+ - bordered (boolean) (default: '')
9
10
  - items (array) (default: []): format: [
10
11
  {
11
12
  term (object or array of object) -format: {
12
13
  icon: {} - icon object,
13
- label: ""
14
+ label: ''
14
15
  }
15
16
  definition (block or array of string)
16
17
  },
17
18
  ...
18
19
  ]
19
20
  - variant (string) (default: '')
20
- - option: ["horizontal"]
21
+ - option: ['horizontal']
21
22
  #}
22
23
 
23
24
  {% set _title = title|default('') %}
24
25
  {% set _title_tag = title_tag|default('h2') %}
25
26
  {% set _title_link = title_link|default({}) %}
27
+ {% set _bordered = bordered|default(false) %}
28
+ {% set _title_link = title_link|default({}) %}
26
29
  {% set _title_attributes = title_attributes ?: create_attribute() %}
27
30
  {% set _items = items|default([]) %}
28
31
  {% set _variant = variant|default('') %}
29
32
 
33
+ {% set _classes = ['bcl-description-list'] %}
34
+
30
35
  {% if attributes is empty %}
31
36
  {% set attributes = create_attribute() %}
32
37
  {% endif %}
33
38
 
39
+ {% set _item_classes = '' %}
40
+
34
41
  {% if _variant == 'horizontal' %}
35
- {% set attributes = attributes.addClass(["d-md-grid", "grid-3-9"]) %}
42
+ {% set _item_classes = 'd-md-grid grid-3-9' %}
43
+ {% if _bordered %}
44
+ {% set _item_classes = _item_classes ~ ' mb-2-5 pb-2-5' %}
45
+ {% else %}
46
+ {% set _item_classes = _item_classes ~ ' mb-3' %}
47
+ {% endif %}
48
+ {% else %}
49
+ {% set _item_classes = 'mb-3' %}
50
+ {% if _bordered %}
51
+ {% set _item_classes = 'mb-2-5' %}
52
+ {% set _item_classes = _item_classes ~ ' pb-2-5' %}
53
+ {% endif %}
54
+ {% endif %}
55
+
56
+ {% if _bordered %}
57
+ {% set _item_classes = _item_classes ~ ' border-bottom' %}
36
58
  {% endif %}
37
59
 
38
60
  {% if _title is not empty %}
@@ -44,101 +66,120 @@
44
66
  } only %}
45
67
  {% endif %}
46
68
 
47
- <dl
69
+ {% set attributes = attributes.addClass(_classes) %}
70
+
71
+ <div
48
72
  {{ attributes }}
49
73
  >
50
74
  {% for _item in _items %}
51
- {% if _item.term is not empty %}
52
- {% if _item.term is iterable %}
53
- {% if _variant == 'horizontal' %}
54
- <div>
55
- {% endif %}
56
- {% for _term in _item.term %}
57
- <dt
58
- {% if _variant == 'horizontal' and _term.icon is not empty %}
59
- class="d-flex"
60
- {% endif %}
61
- >
62
- {%- if _term.icon is not empty -%}
63
- {% set _icon_classes = ["me-2"] %}
64
- {% if _variant == 'horizontal' %}
65
- {% set _icon_classes = _icon_classes|merge(["mt-1"]) %}
66
- {% endif %}
67
- {% include '@oe-bcl/bcl-icon/icon.html.twig' with _term.icon|merge({
68
- attributes: create_attribute().addClass(_icon_classes)
69
- }) only %}
70
- <p class="mb-0 d-inline-block">{{ _term.label }}</p>
71
- {%- elseif _term.color is not empty -%}
72
- <div class="d-flex align-items-center">
73
- <span class="p-2 me-2 d-inline-block rounded-1 {{ _term.color }}"></span>{{- _term.label -}}
74
- </div>
75
- {%- else -%}
76
- {{- _term.label -}}
77
- {%- endif -%}
78
- </dt>
79
- {% endfor %}
75
+ {% if loop.last and _variant != 'horizontal' %}
76
+ {% set _item_classes = '' %}
77
+ {% endif %}
78
+ {% if _item.term is not empty %}
79
+ <dl
80
+ {% if _item_classes is not empty %}
81
+ class="{{ _item_classes }}"
82
+ {% endif %}
83
+ >
84
+ {% if _item.term is iterable %}
85
+ <dt>
86
+ {% for _term in _item.term %}
87
+ {%- if _item.term|length > 1 -%}
88
+ <div
89
+ {% if _variant == 'horizontal' and _term.icon is not empty %}
90
+ class="d-flex"
91
+ {% endif %}
92
+ >
93
+ {%- endif -%}
94
+ {%- if _term.icon is not empty -%}
95
+ {% set _icon_classes = ["me-2"] %}
80
96
  {% if _variant == 'horizontal' %}
81
- </div>
97
+ {% set _icon_classes = _icon_classes|merge(["mt-1"]) %}
82
98
  {% endif %}
83
- {% else %}
84
- <dt
85
- {% if _variant == 'horizontal' and _item.term.icon is not empty %}
86
- class="d-flex"
87
- {% endif %}
88
- >
89
- {%- if _item.term.icon is not empty -%}
90
- {% set _icon_classes = ["me-2"] %}
91
- {% if _variant == 'horizontal' %}
92
- {% set _icon_classes = _icon_classes|merge(["mt-1"]) %}
93
- {% endif %}
94
- {%- include '@oe-bcl/bcl-icon/icon.html.twig' with _item.term.icon|merge({
95
- attributes: create_attribute().addClass(_icon_classes)
96
- }) only -%}
97
- <p class="mb-0 d-inline-block">{{ _item.term.label }}</p>
98
- {%- elseif _item.term.color is not empty -%}
99
- <div class="d-flex align-items-center">
100
- <span class="p-2 me-2 d-inline-block rounded-1 {{ _item.term.color }}"></span>{{- _item.term.label -}}
101
- </div>
102
- {%- else -%}
103
- {{- _item.term.label -}}
104
- {%- endif -%}
105
- </dt>
99
+ {% include '@oe-bcl/bcl-icon/icon.html.twig' with _term.icon|merge({
100
+ attributes: create_attribute().addClass(_icon_classes)
101
+ }) only %}
102
+ <p class="mb-0 d-inline-block">{{ _term.label }}</p>
103
+ {%- elseif _term.color is not empty -%}
104
+ <div class="d-flex align-items-center">
105
+ <span class="p-2 me-2 d-inline-block rounded-1 {{ _term.color }}"></span>{{- _term.label -}}
106
+ </div>
107
+ {%- else -%}
108
+ {{- _term.label -}}
109
+ {%- endif -%}
110
+ {% if _item.term|length > 1 %}
111
+ </div>
112
+ {% endif %}
113
+ {% endfor %}
114
+ </dt>
115
+ {% else %}
116
+ <dt
117
+ {% if _variant == 'horizontal' and _item.term.icon is not empty %}
118
+ class="d-flex"
106
119
  {% endif %}
120
+ >
121
+ {%- if _item.term.icon is not empty -%}
122
+ {% set _icon_classes = ["me-2"] %}
123
+ {% if _variant == 'horizontal' %}
124
+ {% set _icon_classes = _icon_classes|merge(["mt-1"]) %}
125
+ {% endif %}
126
+ {%- include '@oe-bcl/bcl-icon/icon.html.twig' with _item.term.icon|merge({
127
+ attributes: create_attribute().addClass(_icon_classes)
128
+ }) only -%}
129
+ <p class="mb-0 d-inline-block">{{ _item.term.label }}</p>
130
+ {%- elseif _item.term.color is not empty -%}
131
+ <div class="d-flex align-items-center">
132
+ <span class="p-2 me-2 d-inline-block rounded-1 {{ _item.term.color }}"></span>{{- _item.term.label -}}
133
+ </div>
134
+ {%- else -%}
135
+ {{- _item.term.label -}}
136
+ {%- endif -%}
137
+ </dt>
107
138
  {% endif %}
108
- {% if _item.definition is not empty %}
109
- {% if _item.definition is iterable %}
110
- {% if _variant == 'horizontal' %}
111
- <dd>
139
+ {% endif %}
140
+ {% if _item.definition is not empty %}
141
+ {% if _item.definition is iterable %}
142
+ {% if _variant == 'horizontal' %}
143
+ <dd
144
+ {% if _bordered %}
145
+ class="mb-0"
112
146
  {% endif %}
113
- {% for _definition in _item.definition %}
114
- {% if _variant == 'horizontal' %}<div>{% else %}<dd>{% endif %}
115
- {%- if _definition.button is defined -%}
116
- {% include '@oe-bcl/bcl-button/button.html.twig' with _definition.button only %}
117
- {%- elseif _definition.link is defined %}
118
- {% include '@oe-bcl/bcl-link/link.html.twig' with _definition.link only -%}
147
+ >
148
+ {% endif %}
149
+ {% for _definition in _item.definition %}
150
+ {% if _variant == 'horizontal' %}<div>{% else %}<dd>{% endif %}
151
+ {%- if _definition.button is defined -%}
152
+ {% include '@oe-bcl/bcl-button/button.html.twig' with _definition.button only %}
153
+ {%- elseif _definition.link is defined %}
154
+ {% include '@oe-bcl/bcl-link/link.html.twig' with _definition.link only -%}
155
+ {%- else -%}
156
+ {%- if _definition.icon is defined -%}
157
+ {%- set _icon_classes = ["me-2"] -%}
158
+ {%- include '@oe-bcl/bcl-icon/icon.html.twig' with _definition.icon|merge({
159
+ attributes: create_attribute().addClass(_icon_classes)
160
+ }) only -%}
161
+ <p class="mb-0 d-inline-block">{{ _definition.label }}</p>
119
162
  {%- else -%}
120
- {%- if _definition.icon is defined -%}
121
- {%- set _icon_classes = ["me-2"] -%}
122
- {%- include '@oe-bcl/bcl-icon/icon.html.twig' with _definition.icon|merge({
123
- attributes: create_attribute().addClass(_icon_classes)
124
- }) only -%}
125
- <p class="mb-0 d-inline-block">{{ _definition.label }}</p>
126
- {%- else -%}
127
- {{- _definition.label -}}
128
- {%- endif -%}
163
+ {{- _definition.label -}}
129
164
  {%- endif -%}
130
- {% if _variant == 'horizontal' %}</div>{% else %}</dd>{% endif %}
131
- {% endfor %}
132
- {% if _variant == 'horizontal' %}
133
- </dd>
134
- {% endif %}
135
- {% else %}
136
- <dd>
137
- {%- block definition _item.definition -%}
138
- </dd>
165
+ {%- endif -%}
166
+ {% if _variant == 'horizontal' %}</div>{% else %}</dd>{% endif %}
167
+ {% endfor %}
168
+ {% if _variant == 'horizontal' %}
169
+ </dd>
170
+ {% endif %}
171
+ {% else %}
172
+ <dd
173
+ {% if _bordered %}
174
+ class="mb-0"
139
175
  {% endif %}
176
+ >
177
+ {%- block definition _item.definition -%}
178
+ </dd>
140
179
  {% endif %}
180
+ </dl>
181
+ {% endif %}
141
182
  {% endfor %}
142
- </dl>
183
+ </div>
143
184
 
144
185
  {% endspaceless %}
@@ -29,7 +29,7 @@
29
29
  {% set _title_link = title_link|default({}) %}
30
30
  {% set _title_attributes = title_attributes ?: create_attribute() %}
31
31
  {% set _variant = variant|default('default') %}
32
- {% set _css_classes = ['bcl-fact-figures', 'bcl-fact-figures--' ~ _variant] %}
32
+ {% set _classes = ['bcl-fact-figures', 'bcl-fact-figures--' ~ _variant] %}
33
33
  {% set _display_icons = display_icons ?? true %}
34
34
  {% set _items = items|default([]) %}
35
35
  {% set _grid_columns = grid_columns|default(1) %}
@@ -66,7 +66,7 @@
66
66
  {% set attributes = create_attribute() %}
67
67
  {% endif %}
68
68
 
69
- {% set attributes = attributes.addClass(_css_classes) %}
69
+ {% set attributes = attributes.addClass(_classes) %}
70
70
 
71
71
  <div {{ attributes }}>
72
72
  {% if _title is not empty %}
@@ -2,8 +2,10 @@
2
2
 
3
3
  {# Parameters:
4
4
  - with_text (boolean) (default: false)
5
- - title: (string) (default: '')
6
- - title_tag: (string) (default: 'h2')
5
+ - title (string) (default: '')
6
+ - title_tag (string) (default: 'h2')
7
+ - title_link: (link object) (default: {})
8
+ - title_attributes: (drupal attrs)
7
9
  - image: (string) (default: "")
8
10
  - poster_image: (string) (default: "")
9
11
  - content: (string) (default: "")
@@ -34,6 +36,8 @@
34
36
 
35
37
  {% set _title = title|default('') %}
36
38
  {% set _title_tag = title_tag|default('h2') %}
39
+ {% set _title_link = title_link|default({}) %}
40
+ {% set _title_attributes = title_attributes ?: create_attribute() %}
37
41
  {% set _with_text = with_text|default(false) %}
38
42
  {% set _wrapper_classes = 'bcl-featured-item' %}
39
43
  {% set _description = description|default('') %}
@@ -57,19 +61,36 @@
57
61
  {% set attributes = create_attribute() %}
58
62
  {% endif %}
59
63
 
64
+ {% if _with_text %}
65
+ {% set _title_attributes = _title_attributes.addClass(['fw-bold', 'mb-4']) %}
66
+ {% endif %}
67
+
60
68
  {% set attributes = attributes.addClass(["rounded", "overflow-hidden"]) %}
61
69
 
70
+ {% if _image is not empty %}
71
+ {% set attributes = attributes.addClass(["d-inline-flex", "flex-wrap"]) %}
72
+ {% if _content_classes is not empty %}
73
+ {% set _content_classes = _content_classes ~ ' flex-1 w-min-content' %}
74
+ {% else %}
75
+ {% set _content_classes = 'flex-1 w-min-content' %}
76
+ {% endif %}
77
+ {% endif %}
78
+
62
79
  {% if _with_text %}
63
80
  <div class="{{ _wrapper_classes }}">
64
-
65
- {% if _title is not empty %}
66
- {% set _title_classes = 'fw-bold mb-4' %}
67
- <{{ _title_tag }} class="{{ _title_classes }}">
68
- {{- _title -}}
69
- </{{ _title_tag }}>
81
+ <div class="row">
70
82
  {% endif %}
71
83
 
72
- <div class="row">
84
+ {%- if _title is not empty -%}
85
+ {% include '@oe-bcl/bcl-heading/heading.html.twig' with {
86
+ title: _title,
87
+ title_tag: _title_tag,
88
+ title_link: _title_link,
89
+ attributes: _title_attributes,
90
+ } only %}
91
+ {%- endif -%}
92
+
93
+ {% if _with_text %}
73
94
  <div class="{{ _col_classes }} order-{{ _alignment == "right" ? '1' : '2' }}">
74
95
  {{- _description|default('') -}}
75
96
 
@@ -39,7 +39,7 @@
39
39
  {# Internal properties #}
40
40
 
41
41
  {% set _icon = icon|default({}) %}
42
- {% set _icon_inline = icon_inline|default(true) %}
42
+ {% set _icon_inline = icon_inline ?? true %}
43
43
  {% set _title = title|default('') %}
44
44
  {% set _title_tag = title_tag|default('h2') %}
45
45
  {% set _title_link = title_link|default({}) %}
@@ -56,11 +56,13 @@
56
56
  {% set _translation = translation|default({}) %}
57
57
  {% set _icon_path = icon_path|default({}) %}
58
58
 
59
+ {% set _classes = ['bcl-file'] %}
60
+
59
61
  {% if attributes is empty %}
60
62
  {% set attributes = create_attribute() %}
61
63
  {% endif %}
62
64
 
63
- {% set attributes = attributes.addClass(['bcl-file']) %}
65
+ {% set attributes = attributes.addClass(_classes) %}
64
66
 
65
67
  {% if _icon is not empty %}
66
68
  {% set _container_classes = _container_classes ~ ' ms-2-5' %}
@@ -102,7 +102,7 @@ Parameters:
102
102
  {% if _item.caption is not empty or item.caption_title is not empty %}
103
103
  <div class="bcl-gallery__item-caption">
104
104
  {% if _item.caption_title is not empty %}
105
- <h5>{{ _item.caption_title }}</h5>
105
+ <p class="fs-5">{{ _item.caption_title }}</p>
106
106
  {% endif %}
107
107
  {% if _item.caption is not empty %}
108
108
  <div class="bcl-gallery__item-description">
@@ -30,12 +30,18 @@
30
30
 
31
31
  <div class="collapse mt-3" id="{{ _id }}">
32
32
  <div
33
- class="d-md-grid"
34
- style="grid-auto-flow: column; grid-template-rows: repeat(4, 1fr)"
33
+ class="d-grid"
34
+ style="grid-auto-flow: row; grid-template-columns: repeat(auto-fit, minmax(4rem, 8rem))"
35
35
  >
36
36
  {% for language in languages %}
37
37
  {% include '@oe-bcl/bcl-link/link.html.twig' with language|merge({
38
- attributes: create_attribute().addClass(["btn", "btn-link", "d-block", "ps-0", "text-start"])
38
+ attributes: create_attribute().addClass(
39
+ [ "btn",
40
+ "btn-link",
41
+ "d-block",
42
+ "ps-0",
43
+ "text-start"
44
+ ])
39
45
  }) only %}
40
46
  {% endfor %}
41
47
  </div>
@@ -21,6 +21,8 @@
21
21
  {% set _variant = variant|default('vertical') %}
22
22
  {% set _links = links|default([])%}
23
23
 
24
+ {% set _classes = ['bcl-links-block'] %}
25
+
24
26
  {% set _title_classes = ['pb-3', 'mb-3', 'border-bottom'] %}
25
27
 
26
28
  {% if attributes is empty %}
@@ -31,6 +33,8 @@
31
33
  {% set attributes = attributes.addClass(['bg-light', 'px-4', 'py-3', 'rounded-2']) %}
32
34
  {% endif %}
33
35
 
36
+ {% set attributes = attributes.addClass(_classes) %}
37
+
34
38
  <div
35
39
  {{ attributes }}
36
40
  >
@@ -11,6 +11,8 @@
11
11
  - link: (object of type link)
12
12
  - alignment: (string) (default: '')
13
13
  options ['start', 'end', 'center', 'baseline', 'stretch']
14
+ - image_size: (string) (default: '')
15
+ options ['small', 'large', 'extra-large']
14
16
  - attributes (drupal attrs)
15
17
  #}
16
18
 
@@ -21,6 +23,7 @@
21
23
  {% set _items = items|default([]) %}
22
24
  {% set _variant = variant|default('default-1-col') %}
23
25
  {% set _alignment = alignment|default('') %}
26
+ {% set _image_size = image_size|default('') %}
24
27
  {% set _link = link|default({}) %}
25
28
 
26
29
  {% set _classes = ['bcl-listing', 'bcl-listing--' ~ _variant] %}
@@ -52,19 +55,14 @@
52
55
  {% if _items is not empty %}
53
56
  {% for _card in _items %}
54
57
  {% set _alignment_class = '' %}
55
- {% set _max_width = '' %}
56
- {% set _image = {} %}
57
- {% if _card.image is not empty %}
58
- {% set _image_classes = _card.image.classes ?: '' %}
59
- {% if not _alignment == 'center' %}
60
- {% set _image_classes = _image_classes ? _image_classes ~ ' mb-3' : 'mb-3' %}
61
- {% endif %}
62
- {% set _max_width = 'mw-listing-img' %}
63
- {% set _card = _card|merge({image: _card.image|merge({
64
- classes: _image_classes,
65
- })}) %}
66
- {% elseif _card.date is not empty %}
67
- {% set _max_width = 'mw-col-date mb-3' %}
58
+ {% set _image_classes = _card.image.classes ?: '' %}
59
+ {% set _start_col_classes = 'bcl-card-start-col mb-3 mb-lg-0' %}
60
+ {% set _end_col_classes = 'col-12 col-md' %}
61
+ {% if _image_size is not empty %}
62
+ {% set _start_col_classes = _start_col_classes ~ ' bcl-size-' ~ _image_size %}
63
+ {% endif %}
64
+ {% if 'd-none' in _image_classes %}
65
+ {% set _start_col_classes = _start_col_classes ~ ' d-none d-md-block' %}
68
66
  {% endif %}
69
67
  {% if _alignment is not empty %}
70
68
  {% set _alignment_class = ' align-self-' ~ _alignment %}
@@ -76,7 +74,7 @@
76
74
  title_attributes: _card_title_attributes.addClass(['fs-5'])
77
75
  }) %}
78
76
 
79
- {% if _variant == 'default-1-col' %}
77
+ {% if _variant == 'default-1-col' or _variant == 'default-2-col' or _variant == 'default-3-col' %}
80
78
  {% set _card_classes = [
81
79
  'listing-item',
82
80
  'border-bottom',
@@ -87,45 +85,18 @@
87
85
  {% set _card = _card|merge({
88
86
  horizontal: true,
89
87
  extra_classes_body: 'p-0 pb-md-0 pb-3',
90
- horizontal_grid: {
91
- left_col_classes: 'col-md-3 col-lg-2 rounded ' ~ _max_width ~ _alignment_class,
92
- right_col_classes: 'col-md-9 col-lg-10' ~ _alignment_class,
93
- },
94
- attributes: _card_attributes,
95
- }) %}
96
- {% endif %}
97
-
98
- {% if _variant == 'default-2-col' or _variant == 'default-3-col' %}
99
- {% set _card_classes = [
100
- 'listing-item',
101
- 'border-bottom',
102
- 'border-md-0',
103
- 'border-0',
104
- ] %}
105
- {% set _card_attributes = _card_attributes.addClass(_card_classes) %}
106
- {% set _card = _card|merge({
107
- extra_classes_body: 'p-0 pb-md-0 pb-3',
108
- horizontal: true,
109
88
  attributes: _card_attributes,
89
+ horizontal_grid: {
90
+ left_col_classes: _start_col_classes ~ _alignment_class,
91
+ right_col_classes: _end_col_classes ~ _alignment_class,
92
+ }
110
93
  }) %}
111
-
94
+
112
95
  {% if _variant == 'default-2-col' %}
113
- {% set _card = _card|merge({
114
- horizontal_grid: {
115
- left_col_classes: 'col-xl-3 col-md-5 ' ~ _max_width ~ _alignment_class,
116
- right_col_classes: 'col-xl-9 col-md-7' ~ _alignment_class,
117
- },
118
- }) %}
119
96
  {% set _card_layout = _card_layout|merge({
120
97
  responsive_columns: 2,
121
98
  }) %}
122
- {% else %}
123
- {% set _card = _card|merge({
124
- horizontal_grid: {
125
- left_col_classes: 'col-lg-4 col-md-6 ' ~ _max_width ~ _alignment_class,
126
- right_col_classes: 'col-lg-8 col-md-6' ~ _alignment_class,
127
- },
128
- }) %}
99
+ {% elseif _variant == 'default-3-col' %}
129
100
  {% set _card_layout = _card_layout|merge({
130
101
  attributes: _card_layout.attributes.addClass(['row-cols-md-2']),
131
102
  responsive_columns: 3,
@@ -150,9 +121,19 @@
150
121
  extra_classes_body: "pt-0",
151
122
  }) %}
152
123
  {% endif %}
153
- {% set _card_layout = _card_layout|merge({
154
- cols_extra_classes: 'mt-4-5',
155
- }) %}
124
+ {% set _card_layout = _card_layout|merge({
125
+ cols_extra_classes: 'mt-4-5',
126
+ }) %}
127
+ {% if _card.image is not empty %}
128
+ {% set _image_classes = _card.image.classes ?: '' %}
129
+ {% if not _alignment == 'center' %}
130
+ {% set _image_classes = _image_classes ? _image_classes ~ ' mb-3' : 'mb-3' %}
131
+ {% endif %}
132
+ {% set _card = _card|merge({image: _card.image|merge({
133
+ classes: _image_classes,
134
+ })}) %}
135
+ {% endif %}
136
+
156
137
  {% endif %}
157
138
 
158
139
  {% if _variant == 'highlight-2-col' or variant == 'highlight-3-col' %}
@@ -173,6 +154,15 @@
173
154
  extra_classes_body: 'pt-0',
174
155
  }) %}
175
156
  {% endif %}
157
+ {% if _card.image is not empty %}
158
+ {% set _image_classes = _card.image.classes ?: '' %}
159
+ {% if not _alignment == 'center' %}
160
+ {% set _image_classes = _image_classes ? _image_classes ~ ' mb-3' : 'mb-3' %}
161
+ {% endif %}
162
+ {% set _card = _card|merge({image: _card.image|merge({
163
+ classes: _image_classes,
164
+ })}) %}
165
+ {% endif %}
176
166
  {% set _card_layout = _card_layout|merge({ gutter: '4' }) %}
177
167
  {% if variant == 'highlight-2-col' %}
178
168
  {% set _card_layout = _card_layout|merge({ responsive_columns: 2 }) %}
@@ -32,7 +32,7 @@
32
32
  {% set _body = body|default('') %}
33
33
  {% set _footer = footer|default('') %}
34
34
 
35
- {% set _classes = ['modal fade'] %}
35
+ {% set _classes = ['modal', 'fade'] %}
36
36
 
37
37
  {% if attributes is empty %}
38
38
  {% set attributes = create_attribute() %}
@@ -78,17 +78,17 @@
78
78
 
79
79
  {% if not _disable_collapse %}
80
80
  <button
81
- class='navbar-toggler'
82
- type='button'
83
- data-bs-toggle='collapse'
81
+ class="navbar-toggler"
82
+ type="button"
83
+ data-bs-toggle="collapse"
84
84
  data-bs-target='#{{ _collapse_id }}'
85
85
  aria-controls='{{ _collapse_id }}'
86
- aria-expanded='false'
87
- aria-label='Toggle navigation'
86
+ aria-expanded="false"
87
+ aria-label="Toggle navigation"
88
88
  >
89
- <span class='navbar-toggler-icon'></span>
89
+ <span class="navbar-toggler-icon"></span>
90
90
  </button>
91
- <div class='collapse navbar-collapse' id='{{ _collapse_id }}'>
91
+ <div class="collapse navbar-collapse" id='{{ _collapse_id }}'>
92
92
  {% endif %}
93
93
  {% block navigation %}
94
94
  {% if _navigation is not empty %}
@@ -114,7 +114,7 @@
114
114
  role="tab"
115
115
  {% endif %}
116
116
  >
117
- {% elseif _tabs %}
117
+ {% elseif _tabs and _item.dropdown is not defined %}
118
118
  {% set _item = _item|merge({
119
119
  attributes: _item.attributes.setAttribute("role", "tab"),
120
120
  })
@@ -11,9 +11,12 @@
11
11
  - with_body_scroll (boolean) (default: false)
12
12
  - with_backdrop (boolean) (default: true)
13
13
  - with_close (boolean) (default: true)
14
+ - close_aria_label (default: '')
14
15
  - extra_classes_body (string) (default: '')
15
16
  - extra_classes_header (string) (default: '')
16
17
  - extra_classes_close (string) (default: '')
18
+ - responsiveness (string) (default: '')
19
+ options: ['sm', 'md', 'lg', 'xl', 'xxl']
17
20
  - attributes (drupal attrs)
18
21
  #}
19
22
 
@@ -25,13 +28,20 @@
25
28
  {% set _id = id|default('') %}
26
29
  {% set _body = body|default('') %}
27
30
  {% set _with_body_scroll = with_body_scroll|default(false) %}
28
- {% set _with_backdrop = with_backdrop|default(true) %}
29
- {% set _with_close = with_close|default(true) %}
31
+ {% set _with_backdrop = with_backdrop ?? true %}
32
+ {% set _with_close = with_close ?? true %}
33
+ {% set _close_aria_label = close_aria_label|default('') %}
30
34
  {% set _extra_classes_body = extra_classes_body|default('') %}
31
35
  {% set _extra_classes_header = extra_classes_header|default('') %}
32
36
  {% set _extra_classes_close = extra_classes_close|default('') %}
37
+ {% set _responsiveness = responsiveness|default('') %}
38
+
39
+ {% if _responsiveness is not empty %}
40
+ {% set _classes = ['offcanvas-' ~ _responsiveness] %}
41
+ {% else %}
42
+ {% set _classes = ['offcanvas'] %}
43
+ {% endif %}
33
44
 
34
- {% set _classes = ['offcanvas'] %}
35
45
  {% set _class_body = 'offcanvas-body' ~ (_extra_classes_body ? ' ' ~ _extra_classes_body : '') %}
36
46
  {% set _class_header = 'offcanvas-header' ~ (_extra_classes_header ? ' ' ~ _extra_classes_header : '') %}
37
47
 
@@ -82,6 +92,7 @@
82
92
  {% set button_attributes = create_attribute()
83
93
  .addClass(['btn-close', 'text-reset'])
84
94
  .setAttribute('data-bs-dismiss', 'offcanvas')
95
+ .setAttribute('aria-label', _close_aria_label)
85
96
  %}
86
97
  {% if _extra_classes_close is not empty %}
87
98
  {% set button_attributes = button_attributes.addClass(_extra_classes_close) %}
@@ -5,11 +5,7 @@
5
5
  {% endblock %}
6
6
 
7
7
  {% block content %}
8
- <p id="content">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi sit amet eleifend tortor. In facilisis eros vitae turpis ullamcorper,
9
- a euismod dolor lacinia. Nam facilisis ipsum et sollicitudin imperdiet. Curabitur a efficitur ante. Phasellus non felis laoreet,
10
- posuere ante ut, rhoncus tortor. Proin sed erat vel nisl luctus vulputate. Nunc tristique ultricies turpis, eu dictum enim ultrices vel.
11
- Sed posuere at leo sit amet placerat. Sed dapibus viverra urna ac pretium. Praesent et laoreet erat, eget volutpat metus. Duis ac augue
12
- sed tortor elementum dignissim in sit amet velit. Nullam nec viverra mi.
8
+ <p id="content">{{ get_dummy_text(6) }}
13
9
  </p>
14
10
  <h2 id="item-1" class="my-4">Section 1</h2>
15
11
  {% if featured_item %}
@@ -26,12 +22,7 @@
26
22
 
27
23
  <h2 id="item-2" class="my-4">Section 2</h2>
28
24
 
29
- <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi sit amet eleifend tortor. In facilisis eros vitae turpis ullamcorper,
30
- a euismod dolor lacinia. Nam facilisis ipsum et sollicitudin imperdiet. Curabitur a efficitur ante. Phasellus non felis laoreet,
31
- posuere ante ut, rhoncus tortor. Proin sed erat vel nisl luctus vulputate. Nunc tristique ultricies turpis, eu dictum enim ultrices vel.
32
- Sed posuere at leo sit amet placerat. Sed dapibus viverra urna ac pretium. Praesent et laoreet erat, eget volutpat metus. Duis ac augue
33
- sed tortor elementum dignissim in sit amet velit. Nullam nec viverra mi.
34
- </p>
25
+ {{ get_dummy_text(6, true) }}
35
26
 
36
27
  {% if blockquote %}
37
28
  {% include '@oe-bcl/bcl-blockquote/blockquote.html.twig' with blockquote only %}
@@ -43,21 +34,11 @@
43
34
  {% include '@oe-bcl/bcl-timeline/timeline.html.twig' with timeline only %}
44
35
  {% endif %}
45
36
 
46
- <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi sit amet eleifend tortor. In facilisis eros vitae turpis ullamcorper,
47
- a euismod dolor lacinia. Nam facilisis ipsum et sollicitudin imperdiet. Curabitur a efficitur ante. Phasellus non felis laoreet,
48
- posuere ante ut, rhoncus tortor. Proin sed erat vel nisl luctus vulputate. Nunc tristique ultricies turpis, eu dictum enim ultrices vel.
49
- Sed posuere at leo sit amet placerat. Sed dapibus viverra urna ac pretium. Praesent et laoreet erat, eget volutpat metus. Duis ac augue
50
- sed tortor elementum dignissim in sit amet velit. Nullam nec viverra mi.
51
- </p>
37
+ {{ get_dummy_text(8, true) }}
52
38
 
53
39
  <h2 id="item-3" class="my-4">Section 3</h2>
54
40
 
55
- <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi sit amet eleifend tortor. In facilisis eros vitae turpis ullamcorper,
56
- a euismod dolor lacinia. Nam facilisis ipsum et sollicitudin imperdiet. Curabitur a efficitur ante. Phasellus non felis laoreet,
57
- posuere ante ut, rhoncus tortor. Proin sed erat vel nisl luctus vulputate. Nunc tristique ultricies turpis, eu dictum enim ultrices vel.
58
- Sed posuere at leo sit amet placerat. Sed dapibus viverra urna ac pretium. Praesent et laoreet erat, eget volutpat metus. Duis ac augue
59
- sed tortor elementum dignissim in sit amet velit. Nullam nec viverra mi.
60
- </p>
41
+ {{ get_dummy_text(4, true) }}
61
42
 
62
43
  {% include '@oe-bcl/bcl-file/file.html.twig' with files[0] only %}
63
44
  {% include '@oe-bcl/bcl-file/file.html.twig' with files[1] only %}
@@ -57,7 +57,7 @@
57
57
  {% set _alignment = alignment|default('') %}
58
58
  {% set _aria_label = aria_label|default('') %}
59
59
  {% set _enable_prev_next_icon = enable_prev_next_icon|default(false) %}
60
- {% set _enable_first_last_icon = enable_first_last_icon|default(true) %}
60
+ {% set _enable_first_last_icon = enable_first_last_icon ?? true %}
61
61
  {% set _items = items|default([]) %}
62
62
  {% set _first = first|default({}) %}
63
63
  {% set _next = next|default({}) %}
@@ -18,14 +18,12 @@
18
18
 
19
19
  {% if files.main_title is not empty %}
20
20
  <h2
21
- class="mb-4"
21
+ class="mb-3-5"
22
22
  >{{- files.main_title -}}</h2>
23
23
  {% endif %}
24
24
  {% if files.listing is defined and files.listing is not empty %}
25
- <div class="mb-4-5">
26
25
  {% for file in files.listing %}
27
26
  {% include '@oe-bcl/bcl-file/file.html.twig' with file only %}
28
27
  {% endfor %}
29
- </div>
30
28
  {% endif %}
31
29
  {% endblock %}
@@ -33,10 +33,7 @@
33
33
  {% set _classes = _classes ~ ' progress-bar-animated' %}
34
34
  {% endif %}
35
35
  {% if _variant is not empty %}
36
- {% set _classes = _classes ~ ' bg-' ~ _variant %}
37
- {% endif %}
38
- {% if _variant == 'light' %}
39
- {% set _classes = _classes ~ ' text-dark' %}
36
+ {% set _classes = _classes ~ ' text-bg-' ~ _variant %}
40
37
  {% endif %}
41
38
 
42
39
  {% if attributes is empty %}
@@ -57,7 +57,7 @@
57
57
  {% endif %}
58
58
  {% if not loop.last %}
59
59
  {% set _list = _list|merge({
60
- attributes: _list.attributes.addClass(['border-bottom', 'pb-3'])
60
+ attributes: _list.attributes.addClass(['border-bottom', 'mb-3'])
61
61
  })
62
62
  %}
63
63
  {% endif %}
@@ -14,7 +14,7 @@
14
14
  {% set _submit = submit|default({}) %}
15
15
  {% set _input = input|default({}) %}
16
16
 
17
- {% set _classes = ["bcl-search-form"] %}
17
+ {% set _classes = ['bcl-search-form'] %}
18
18
 
19
19
  {% if _pill %}
20
20
  {% set _classes = _classes|merge(['rounded']) %}
@@ -11,11 +11,13 @@
11
11
  {% set _content = content|default('') %}
12
12
  {% set _button = button|default({}) %}
13
13
 
14
+ {% set _classes = ['bcl-subscription-block', 'bg-light', 'px-4-5', 'pt-4', 'pb-4-5'] %}
15
+
14
16
  {% if attributes is empty %}
15
17
  {% set attributes = create_attribute() %}
16
18
  {% endif %}
17
19
 
18
- {% set attributes = attributes.addClass(['bg-light', 'px-4-5', 'pt-4', 'pb-4-5']) %}
20
+ {% set attributes = attributes.addClass(_classes) %}
19
21
 
20
22
  <div
21
23
  {{ attributes }}
@@ -13,13 +13,14 @@
13
13
  - infos (array of strings) (default: [])
14
14
  #}
15
15
 
16
- {% set _picture_classes = "rounded-pill" %}
16
+ {% set _picture_classes = 'rounded-pill' %}
17
+ {% set _classes = ['bcl-user-compact', 'd-flex', 'mb-3'] %}
17
18
 
18
19
  {% if attributes is empty %}
19
20
  {% set attributes = create_attribute() %}
20
21
  {% endif %}
21
22
 
22
- {% set attributes = attributes.addClass(["d-flex", "mb-3"]) %}
23
+ {% set attributes = attributes.addClass(_classes) %}
23
24
 
24
25
  {% if picture is not empty and picture.classes is not empty %}
25
26
  {% set _picture_classes = _picture_classes ~ ' ' ~ picture.classes %}
@@ -1,11 +1,11 @@
1
1
  {% extends "@oe-bcl/bcl-base-templates/content-type.html.twig" %}
2
2
 
3
3
  {% block content %}
4
- <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse volutpat ultricies massa, a dapibus libero porta nec. Sed facilisis dictum vestibulum. Fusce commodo hendrerit diam, pretium tempus leo varius sit amet. Etiam interdum, orci at sagittis luctus, lorem libero tempus mauris, a fermentum libero orci semper lacus. Duis tristique fringilla magna, eu egestas dolor molestie non. </p>
4
+ {{ get_dummy_text(4, true) }}
5
5
  <ul class="mb-4-5">
6
- <li>Fusce commodo hendrerit diam, pretium tempus leo varius sit amet. </li>
7
- <li>Etiam interdum, orci at sagittis luctus, lorem libero tempus mauris, </li>
8
- <li>A fermentum libero orci semper lacus. Duis tristique fringilla magna, eu egestas dolor molestie non. </li>
6
+ <li>{{ get_dummy_text() }}</li>
7
+ <li>{{ get_dummy_text() }}</li>
8
+ <li>{{ get_dummy_text() }}</li>
9
9
  </ul>
10
10
  {% include '@oe-bcl/bcl-form/form.html.twig' with terms_form only %}
11
11
  {% endblock %}
@@ -100,10 +100,10 @@
100
100
  <h1 class="my-4-5">Edit my profile</h1>
101
101
  <h2 class="mb-4-5">Profile image</h2>
102
102
  <div class="row">
103
- <div class="offset-3 col-6 offset-lg-0 col-lg-3">
103
+ <div class="bcl-card-start-col bcl-size-large mx-auto ms-md-2-5">
104
104
  <img src="https://picsum.photos/seed/1002/400/400" class="img-fluid" alt="profile-image">
105
105
  </div>
106
- <div class="col align-self-center">
106
+ <div class="col-12 col-md align-self-center">
107
107
  <div class="mt-3 text-center text-md-start">
108
108
  {% include '@oe-bcl/bcl-form-input/form-input.html.twig' with edit.image_upload_input only %}
109
109
  <div class="d-md-inline-block">