@openeuropa/bcl-theme-default 0.11.0 → 0.15.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 (58) hide show
  1. package/css/oe-bcl-default.css +1453 -17
  2. package/css/oe-bcl-default.css.map +1 -1
  3. package/css/oe-bcl-default.min.css +1 -1
  4. package/css/oe-bcl-default.min.css.map +1 -1
  5. package/js/oe-bcl-default.bundle.js +53 -21
  6. package/js/oe-bcl-default.bundle.js.map +1 -1
  7. package/js/oe-bcl-default.bundle.min.js +1 -1
  8. package/js/oe-bcl-default.bundle.min.js.map +1 -1
  9. package/js/oe-bcl-default.esm.min.js.map +1 -1
  10. package/js/oe-bcl-default.umd.js +61 -24
  11. package/js/oe-bcl-default.umd.js.map +1 -1
  12. package/js/oe-bcl-default.umd.min.js +1 -1
  13. package/js/oe-bcl-default.umd.min.js.map +1 -1
  14. package/package.json +5 -5
  15. package/src/scss/_badge.scss +2 -1
  16. package/src/scss/_banners.scss +9 -7
  17. package/src/scss/_collapse.scss +8 -0
  18. package/src/scss/_header.scss +1 -0
  19. package/src/scss/_inpage-navigation.scss +19 -0
  20. package/src/scss/_tabs.scss +3 -0
  21. package/src/scss/_timeline.scss +78 -0
  22. package/src/scss/_utilities.scss +78 -0
  23. package/src/scss/_variables.scss +16 -9
  24. package/src/scss/oe-bcl-default.scss +4 -14
  25. package/templates/bcl-banner/banner.html.twig +64 -0
  26. package/templates/bcl-base-templates/content-type.html.twig +91 -0
  27. package/templates/bcl-base-templates/listing-page.html.twig +60 -0
  28. package/templates/{bcl-search/search-offcanvas.html.twig → bcl-base-templates/sidebar-search.html.twig} +0 -1
  29. package/templates/bcl-card/card.html.twig +42 -33
  30. package/templates/bcl-content-banner/content-banner.html.twig +103 -0
  31. package/templates/bcl-date-block/date-block.html.twig +42 -0
  32. package/templates/bcl-description-list/description-list.html.twig +110 -0
  33. package/templates/bcl-event/event.html.twig +41 -0
  34. package/templates/bcl-fact-figures/fact-figures.html.twig +115 -0
  35. package/templates/bcl-featured-media/featured-media.html.twig +49 -5
  36. package/templates/bcl-file/file.html.twig +205 -0
  37. package/templates/bcl-footer/footer.html.twig +1 -1
  38. package/templates/bcl-group/group-landing.html.twig +101 -0
  39. package/templates/bcl-group/group.html.twig +25 -0
  40. package/templates/bcl-header/header.html.twig +3 -3
  41. package/templates/bcl-inpage-navigation/inpage-navigation.html.twig +42 -0
  42. package/templates/bcl-landing-page/landing-page.html.twig +59 -0
  43. package/templates/bcl-link/link.html.twig +5 -0
  44. package/templates/bcl-links-block/links-block.html.twig +4 -1
  45. package/templates/bcl-listing/listing.html.twig +56 -35
  46. package/templates/bcl-page/page.html.twig +64 -0
  47. package/templates/bcl-recent-activities/recent-activities.html.twig +57 -0
  48. package/templates/bcl-timeline/timeline.html.twig +109 -0
  49. package/templates/bcl-toast/toasts.html.twig +3 -1
  50. package/templates/bcl-user/user-edit.html.twig +38 -0
  51. package/templates/{bcl-user-view → bcl-user}/user-view-compact.html.twig +2 -2
  52. package/templates/bcl-user/user-view.html.twig +96 -0
  53. package/templates/bcl-search/search.html.twig +0 -52
  54. package/templates/bcl-user-edit/edit-contents.html.twig +0 -32
  55. package/templates/bcl-user-edit/user-edit.html.twig +0 -18
  56. package/templates/bcl-user-listing/user-listing-offcanvas.html.twig +0 -8
  57. package/templates/bcl-user-listing/user-listing.html.twig +0 -47
  58. package/templates/bcl-user-view/user-view.html.twig +0 -105
@@ -0,0 +1,205 @@
1
+ {% spaceless %}
2
+
3
+ {#
4
+ Parameters:
5
+ - title (string) (default: '')
6
+ - title_tag (string) (default: 'h4')
7
+ - item_title (string) (default: '')
8
+ - icon (icon Object) (default: {})
9
+ - text (string) (default: '')
10
+ - content (string) (default: '')
11
+ - image (object) (default: {}) - format: {
12
+ path:"",
13
+ alt: "",
14
+ }
15
+ - badges (array of badges Object) (default: [])
16
+ - meta (string) (default: '')
17
+ - language (string) (default: '')
18
+ - variant (string) (default: 'default')
19
+ - options: ['default', 'card']
20
+ - download (link Object) (default: {})
21
+ - translation (object) (default: {}) format: {
22
+ id: "",
23
+ label: {}, - link Object
24
+ items: [
25
+ {
26
+ extension: "",
27
+ language: "",
28
+ size: "",
29
+ download: {}, - link Object
30
+ },
31
+ }
32
+ - icon_path (string) (default: '')
33
+ #}
34
+
35
+ {# Internal properties #}
36
+
37
+ {% set _icon = icon|default({}) %}
38
+ {% set _title = title|default('') %}
39
+ {% set _title_tag = title_tag|default('h4') %}
40
+ {% set _item_title = item_title|default('') %}
41
+ {% set _text = text|default('') %}
42
+ {% set _content = content|default('') %}
43
+ {% set _image = image|default({}) %}
44
+ {% set _badges = badges|default([]) %}
45
+ {% set _meta = meta|default('') %}
46
+ {% set _language = language|default('') %}
47
+ {% set _variant = variant|default('default') %}
48
+ {% set _download = download|default({}) %}
49
+ {% set _translation = translation|default({}) %}
50
+ {% set _icon_path = icon_path|default({}) %}
51
+
52
+ {% set _container_classes = 'w-100 d-md-flex' %}
53
+ {% if _icon is not empty %}
54
+ {% set _container_classes = _container_classes ~ ' ms-2-5' %}
55
+ {% set _icon = _icon|merge({
56
+ attributes: create_attribute().addClass(['mt-1', 'text-secondary'])
57
+ }) %}
58
+ {% endif %}
59
+
60
+ {% if _title is not empty %}
61
+ {% set _title_classes = 'fw-bold mb-4' %}
62
+ <{{ _title_tag }} class="{{ _title_classes }}">
63
+ {{- _title -}}
64
+ </{{ _title_tag }}>
65
+ {% endif %}
66
+
67
+ {% if _variant == 'card' %}
68
+ {% set attributes = attributes.addClass(['border', 'rounded-bottom']) %}
69
+ {% set _image = _image|merge({
70
+ position: "top",
71
+ classes: "mb-3"
72
+ }) %}
73
+ {% include '@oe-bcl/bcl-card/card.html.twig' with {
74
+ horizontal: true,
75
+ horizontal_grid: {
76
+ left_col_classes: "col-12 col-md-4 order-md-2",
77
+ right_col_classes: "col-12 col-md-8",
78
+ },
79
+ badges: _badges,
80
+ title: {
81
+ content: _item_title,
82
+ },
83
+ text: {
84
+ content: _text,
85
+ classes: "mb-2",
86
+ },
87
+ content: _content,
88
+ image: _image,
89
+ extra_classes_body: "p-0",
90
+ attributes: create_attribute().addClass(['rounded-0', 'rounded-top', 'p-4', 'border-bottom-0'])
91
+ } only %}
92
+ {% else %}
93
+ {% set attributes = attributes.addClass(['border', 'rounded']) %}
94
+ {% endif %}
95
+
96
+ <div
97
+ {{ attributes }}
98
+ >
99
+ <div class="px-3-5 py-3">
100
+ <div class="d-flex">
101
+ {% if _icon is not empty %}
102
+ {%- include '@oe-bcl/bcl-icon/icon.html.twig' with _icon|merge({
103
+ path: _icon_path,
104
+ }) only -%}
105
+ {% endif %}
106
+ <div class="{{ _container_classes }}">
107
+ <div class="flex-grow-1">
108
+ {% if _item_title is not empty and _variant == 'default' %}
109
+ <p class="fw-bold m-0">{{ _item_title }}</p>
110
+ {% endif %}
111
+ {% if _language is not empty or _meta is not empty %}
112
+ <small class="fw-bold m-0">
113
+ {%- if _language is not empty -%}
114
+ {{- _language -}}
115
+ {%- endif -%}
116
+ {%- if _meta is not empty -%}
117
+ <span class="fw-normal">
118
+ {{- ' ' ~ _meta -}}
119
+ </span>
120
+ {%- endif -%}
121
+ </small>
122
+ {% endif %}
123
+ </div>
124
+ {% set _download = _download|merge({
125
+ icon_position: "after",
126
+ icon: {
127
+ name: "download",
128
+ size: "fluid",
129
+ path: _icon_path,
130
+ },
131
+ attributes: create_attribute()
132
+ .setAttribute('download', _download.url)
133
+ .addClass(['text-underline-hover', 'align-self-center', 'd-inline-block', 'mt-1', 'mt-md-0'])
134
+ }) %}
135
+ {% include '@oe-bcl/bcl-link/link.html.twig' with _download only %}
136
+ </div>
137
+ </div>
138
+ </div>
139
+ {% if _translation is not empty %}
140
+ <div class="bg-lighter py-3 px-4 border-top">
141
+ {% set _id = _translation.id|default('language-dropdown' ~ random(1000)) %}
142
+ <div class="text-end text-md-center">
143
+ {% include '@oe-bcl/bcl-link/link.html.twig' with _translation.label|merge({
144
+ path: '#' ~ _id,
145
+ attributes: create_attribute()
146
+ .addClass(['text-underline-hover'])
147
+ .setAttribute('aria-controls', _id)
148
+ .setAttribute('data-bs-toggle', 'collapse')
149
+ .setAttribute('aria-expanded', 'false')
150
+ .setAttribute('role', 'button'),
151
+ }) only %}
152
+ </div>
153
+ {% if _translation.items is not empty and _translation.items is iterable %}
154
+ <div class="collapse" id="{{ _id }}">
155
+ {% for _item in _translation.items %}
156
+ {% set _item_classes = loop.last ? 'pt-3' : 'py-3 border-bottom' %}
157
+ <div class="{{ _item_classes }}">
158
+ {% if _item.type == 'content' %}
159
+ {{ _item.content }}
160
+ {% else %}
161
+ <div class="row">
162
+ <div class="col-12 col-md-9">
163
+ {% if _item.title is not empty %}
164
+ <p class="fw-bold m-0">{{ _item.title }}</p>
165
+ {% endif %}
166
+ {% if _item.title is not empty %}
167
+ <p class="m-0">{{ _item.description }}</p>
168
+ {% endif %}
169
+ {% if _item.language is not empty or _item.meta is not empty %}
170
+ <small class="fw-bold m-0">
171
+ {%- if _item.language is not empty -%}
172
+ {{- _item.language -}}
173
+ {%- endif -%}
174
+ {%- if _item.meta is not empty -%}
175
+ <span class="fw-normal">
176
+ {{- ' ' ~ _item.meta -}}
177
+ </span>
178
+ {%- endif -%}
179
+ </small>
180
+ {% endif %}
181
+ </div>
182
+ <div class="col-12 col-md-3 align-self-end text-md-end">
183
+ {% include '@oe-bcl/bcl-link/link.html.twig' with _item.download|merge({
184
+ icon_position: "after",
185
+ icon: {
186
+ name: "download",
187
+ size: "fluid",
188
+ path: _icon_path,
189
+ },
190
+ attributes: create_attribute()
191
+ .setAttribute("download", _item.download.url)
192
+ .addClass(['d-block', 'text-underline-hover', 'mt-1'])
193
+ }) only %}
194
+ </div>
195
+ </div>
196
+ {% endif %}
197
+ </div>
198
+ {% endfor %}
199
+ </div>
200
+ {% endif %}
201
+ </div>
202
+ {% endif %}
203
+ </div>
204
+
205
+ {% endspaceless %}
@@ -67,7 +67,7 @@
67
67
  {% if item.type == 'links' %}
68
68
  {% for link in item.links %}
69
69
  {% include '@oe-bcl/bcl-link/link.html.twig' with link|merge({
70
- attributes: create_attribute().addClass(['d-block', 'text-decoration-none', 'mb-1'])
70
+ attributes: create_attribute().addClass(['d-block', 'text-underline-hover', 'mb-1'])
71
71
  }) only %}
72
72
  {% endfor %}
73
73
  {% endif %}
@@ -0,0 +1,101 @@
1
+ {% extends "@oe-bcl/bcl-base-templates/content-type.html.twig" %}
2
+
3
+ {% block banner %}
4
+ <div class="container">
5
+ {% if banner is not empty %}
6
+ <div class="mt-4 mt-md-5">
7
+ {% if banner.image is not empty %}
8
+ <img
9
+ src="{{ banner.image.path }}"
10
+ {% if banner.image.alt is not empty %}
11
+ alt="{{ banner.image.alt }}"
12
+ {% endif %}
13
+ {% if banner.image.class is not empty %}
14
+ class="{{ banner.image.class }}"
15
+ {% endif %}
16
+ />
17
+ {% endif %}
18
+ {% if banner.title is not empty %}
19
+ <div class="p-md-3-5 pt-3 bg-lighter d-md-flex n-mx-container">
20
+ <h2 class="mb-0 d-inline-block fw-bold">{{ banner.title }}</h2>
21
+ {% if banner.actions is not empty and banner.actions is iterable %}
22
+ <div class="d-grid d-md-block ms-auto">
23
+ {% for _action in banner.actions %}
24
+ {% if _action.type == "link" %}
25
+ {% include '@oe-bcl/bcl-link/link.html.twig' with _action only %}
26
+ {% elseif _action.type == "button" %}
27
+ {% include '@oe-bcl/bcl-button/button.html.twig' with _action only %}
28
+ {% elseif _action.type == "dropdown" %}
29
+ {% include '@oe-bcl/bcl-dropdown/dropdown.html.twig' with _action only %}
30
+ {% endif %}
31
+ {% endfor %}
32
+ </div>
33
+ {% endif %}
34
+ </div>
35
+ {% endif %}
36
+ </div>
37
+ {% endif %}
38
+ {% include '@oe-bcl/bcl-navigation/navigation.html.twig' with navigation only %}
39
+ {% if banner_description is not empty and contact is not empty %}
40
+ {% include '@oe-bcl/bcl-link/link.html.twig' with banner_description.collapse_trigger only %}
41
+ <div class="collapse d-md-block" id="banner-description">
42
+ <div class="row mt-md-4 mb-md-5 pb-md-5">
43
+ <div class="col-md-8">
44
+ <div class="ps-md-3">
45
+ {% if banner_description.metas is not empty and banner_description.metas is iterable %}
46
+ <div class="d-block">
47
+ {% for _meta in banner_description.metas %}
48
+ <p class="mb-0 me-4 d-inline-block text-muted">
49
+ {% include '@oe-bcl/bcl-icon/icon.html.twig' with _meta.icon only %}
50
+ {{- _meta.label -}}
51
+ </p>
52
+ {% endfor %}
53
+ </div>
54
+ {% endif %}
55
+ {{ banner_description.content }}
56
+ </div>
57
+ </div>
58
+ <div class="col-md-4">
59
+ <h4 class="mb-3 pb-2">{{ contact.title }}</h4>
60
+ {% if contact.profiles is not empty and contact.profiles is iterable %}
61
+ {% for _profile in contact.profiles %}
62
+ {% include '@oe-bcl/bcl-user/user-view-compact.html.twig' with _profile only %}
63
+ {% endfor %}
64
+ {% endif %}
65
+ {% if contact.more_link is not empty %}
66
+ {% include '@oe-bcl/bcl-link/link.html.twig' with contact.more_link only %}
67
+ {% endif %}
68
+ </div>
69
+ </div>
70
+ </div>
71
+ {% endif %}
72
+ </div>
73
+ {% endblock %}
74
+
75
+ {% block content %}
76
+ {% if recent is not empty and members is not empty %}
77
+ <div class="row mt-3">
78
+ <div class="col-md-8">
79
+ <h4 class="mb-4 pb-2">{{ recent.title }}</h4>
80
+ {% include '@oe-bcl/bcl-recent-activities/recent-activities.html.twig' with recent.block_data only %}
81
+ </div>
82
+ <div class="col-md-4">
83
+ <h4 class="mt-4 mt-md-0 mb-4 pb-2">{{ members.title}}</h4>
84
+ {% if members.profiles is not empty and members.profiles is iterable %}
85
+ {% for _profile in members.profiles %}
86
+ {% include '@oe-bcl/bcl-user/user-view-compact.html.twig' with _profile only %}
87
+ {% endfor %}
88
+ {% endif %}
89
+ {% if members.more_link is not empty %}
90
+ {% include '@oe-bcl/bcl-link/link.html.twig' with members.more_link only %}
91
+ {% endif %}
92
+ </div>
93
+ </div>
94
+ {% endif %}
95
+ {% if contributions is not empty %}
96
+ <h4 class="my-4 pt-3 pb-2">{{ contributions.title}}</h4>
97
+ {% if contributions.listing is not empty %}
98
+ {% include '@oe-bcl/bcl-listing/listing.html.twig' with contributions.listing only %}
99
+ {% endif %}
100
+ {% endif %}
101
+ {% endblock %}
@@ -0,0 +1,25 @@
1
+ {% extends "@oe-bcl/bcl-base-templates/listing-page.html.twig" %}
2
+
3
+ {% block banner %}
4
+ <div class="container mt-4 mt-md-5">
5
+ <div class="p-md-3-5 pt-3 bg-lighter d-md-flex n-mx-container">
6
+ <h2 class="mb-0 d-inline-block fw-bold">{{ banner.title }}</h2>
7
+ {% if banner.actions is not empty and banner.actions is iterable %}
8
+ <div class="d-grid d-md-block ms-auto">
9
+ {% for _action in banner.actions %}
10
+ {% if _action.type == "link" %}
11
+ {% include '@oe-bcl/bcl-link/link.html.twig' with _action only %}
12
+ {% elseif _action.type == "button" %}
13
+ {% include '@oe-bcl/bcl-button/button.html.twig' with _action only %}
14
+ {% elseif _action.type == "dropdown" %}
15
+ {% include '@oe-bcl/bcl-dropdown/dropdown.html.twig' with _action only %}
16
+ {% endif %}
17
+ {% endfor %}
18
+ </div>
19
+ {% endif %}
20
+ </div>
21
+ {% if navigation is not empty %}
22
+ {% include '@oe-bcl/bcl-navigation/navigation.html.twig' with navigation only %}
23
+ {% endif %}
24
+ </div>
25
+ {% endblock %}
@@ -43,8 +43,8 @@
43
43
  {% endif %}
44
44
 
45
45
  <!-- project name -->
46
- {% if _project_logo is not empty or _site_name is not empty %}
47
46
  <div class="{{ _project_classes }}">
47
+ {% if _project_logo is not empty or _site_name is not empty %}
48
48
  <div class="container">
49
49
  {% if _project_logo is not empty %}
50
50
  <img
@@ -60,11 +60,11 @@
60
60
  />
61
61
  {% endif %}
62
62
  {% if _site_name is not empty %}
63
- <p>{{ _site_name }}</p>
63
+ {{ _site_name }}
64
64
  {% endif %}
65
65
  </div>
66
+ {% endif %}
66
67
  </div>
67
- {% endif %}
68
68
 
69
69
  <!-- navbar -->
70
70
  {% if _navbar is not empty %}
@@ -0,0 +1,42 @@
1
+ {% spaceless %}
2
+
3
+ {#
4
+ Parameters:
5
+ - "title": (string) (default: '')
6
+ - "full_layout": (boolean) (default: false)
7
+ - "links": (array of link objects) (default: [])
8
+ - "content": (string) (default: '')
9
+ #}
10
+
11
+ {# Internal properties #}
12
+ {% set _title = title|default('') %}
13
+ {% set _links = links|default([]) %}
14
+ {% set _content = content|default('') %}
15
+ {% set _id = id|default('bcl-inpage-navigation-' ~ random(5)) %}
16
+ {% set _full_layout = full_layout|default(false) %}
17
+ {% set attributes = attributes.addClass('position-sticky').setAttribute('id', _id) %}
18
+
19
+ {# Print the result #}
20
+ {% if _full_layout %}
21
+ <div class="row">
22
+ <div class="col-md-3 d-none d-md-block">
23
+ {% endif %}
24
+ <nav {{ attributes }}>
25
+ {% if _title is defined and _title is not empty %}
26
+ <h5>{{ _title }}</h5>
27
+ {% endif %}
28
+ {% include '@oe-bcl/bcl-navigation/navigation.html.twig' with {
29
+ 'pills': true,
30
+ 'vertical': true,
31
+ 'items': _links,
32
+ } only %}
33
+ </nav>
34
+ {% if _full_layout %}
35
+ </div>
36
+ <div class="col-md-9">
37
+ {{ _content }}
38
+ </div>
39
+ </div>
40
+ {% endif %}
41
+
42
+ {% endspaceless %}
@@ -0,0 +1,59 @@
1
+ {% extends "@oe-bcl/bcl-base-templates/content-type.html.twig" %}
2
+
3
+ {% block banner %}
4
+ {% if banner is defined %}
5
+ {% include '@oe-bcl/bcl-banner/banner.html.twig' with banner only %}
6
+ {% endif %}
7
+ {% endblock %}
8
+
9
+ {% block content %}
10
+
11
+ <div class="container">
12
+ {% if featured_section is defined %}
13
+ <div class="my-4">
14
+ <h2 class="mb-4 fw-bold">{{ featured_section.title }}</h2>
15
+ <div class="row">
16
+ <div class="col-12 col-md-6">
17
+ {{ featured_section.content }}
18
+ </div>
19
+ <div class="col-12 col-md-6">
20
+ {% include '@oe-bcl/bcl-featured-media/featured-media.html.twig' with featured_section.featured_media only %}
21
+ </div>
22
+ </div>
23
+ </div>
24
+ {% endif %}
25
+
26
+ {% if listing_section is defined %}
27
+ <div class="my-4">
28
+ {% include '@oe-bcl/bcl-listing/listing.html.twig' with listing_section only %}
29
+ </div>
30
+ {% endif %}
31
+
32
+ {% if inpage_banner is defined %}
33
+ <div class="my-4">
34
+ {% include '@oe-bcl/bcl-banner/banner.html.twig' with inpage_banner only %}
35
+ </div>
36
+ {% endif %}
37
+
38
+ {% if activity_featured is defined %}
39
+ <div class="my-4">
40
+ <h2 class="mb-4 fw-bold">{{ activity_featured.title }}</h2>
41
+ <div class="row">
42
+ <div class="col-12 col-md-6">
43
+ {{ activity_featured.content }}
44
+ </div>
45
+ <div class="col-12 col-md-6">
46
+ {% include '@oe-bcl/bcl-featured-media/featured-media.html.twig' with activity_featured.featured_media only %}
47
+ </div>
48
+ </div>
49
+ </div>
50
+ {% endif %}
51
+
52
+ {% if activity_listing is defined %}
53
+ <div class="my-4">
54
+ {% include '@oe-bcl/bcl-listing/listing.html.twig' with activity_listing only %}
55
+ </div>
56
+ {% endif %}
57
+ </div>
58
+
59
+ {% endblock %}
@@ -8,6 +8,7 @@
8
8
  - id (string) (default: '')
9
9
  - disabled (boolean) (default: false)
10
10
  - remove_icon_spacers (boolean) (default: false)
11
+ - standalone (boolean) (default: false)
11
12
  - icon (icon object) (default: {}): predefined structure for Icon component
12
13
  - icon_position (string) (default: after)
13
14
  - options ["after", "before"]
@@ -18,6 +19,7 @@
18
19
  {% set _variant = variant|default('') %}
19
20
  {% set _id = id|default('') %}
20
21
  {% set _disabled = disabled|default(false) %}
22
+ {% set _standalone = standalone|default(false) %}
21
23
  {% set _icon = icon|default({}) %}
22
24
  {% set _icon_position = icon_position|default('after') %}
23
25
  {% set _remove_icon_spacers = remove_icon_spacers|default(false) %}
@@ -62,6 +64,9 @@
62
64
  {% if _id is not empty %}
63
65
  {% set attributes = attributes.setAttribute('id', _id) %}
64
66
  {% endif %}
67
+ {% if _standalone %}
68
+ {% set _classes = _classes|merge(['text-underline-hover']) %}
69
+ {% endif %}
65
70
  {% if _classes is not empty %}
66
71
  {% set attributes = attributes.addClass(_classes) %}
67
72
  {% endif %}
@@ -6,12 +6,14 @@
6
6
  - variant: (string) (default: "vertical")
7
7
  - options ["vertical", "horizontal"]
8
8
  - title: (string) (default: "")
9
+ - title_tag: (string) (default: "h5")
9
10
  - links (array of link objects) (default: [])
10
11
  #}
11
12
 
12
13
  {% set _background = background|default("gray") %}
13
14
  {% set _variant = variant|default("vertical") %}
14
15
  {% set _title = title|default("") %}
16
+ {% set _title_tag = title_tag|default("h5") %}
15
17
  {% set _links = links|default([])%}
16
18
 
17
19
  {% if attributes is empty %}
@@ -26,7 +28,8 @@
26
28
  {{ attributes }}
27
29
  >
28
30
  {% if _title is not empty %}
29
- <h5 class="fw-bold pb-3 mb-3 border-bottom">{{ _title }}</h5>
31
+ {% set _title_classes = 'fw-bold pb-3 mb-3 border-bottom' %}
32
+ <{{ _title_tag }} class="{{ _title_classes }}">{{ _title }}</{{ _title_tag }}>
30
33
  {% endif %}
31
34
  {% if _links is not empty and _links is iterable %}
32
35
  <ul class="ps-0 mb-0">