@openeuropa/bcl-theme-default 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 (57) hide show
  1. package/bcl-builder.config.js +10 -0
  2. package/css/oe-bcl-default.css +2555 -1734
  3. package/css/oe-bcl-default.css.map +1 -1
  4. package/css/oe-bcl-default.min.css +1 -1
  5. package/css/oe-bcl-default.min.css.map +1 -1
  6. package/js/oe-bcl-default.bundle.js +2087 -1907
  7. package/js/oe-bcl-default.bundle.js.map +1 -1
  8. package/js/oe-bcl-default.bundle.min.js +1 -1
  9. package/js/oe-bcl-default.bundle.min.js.map +1 -1
  10. package/js/oe-bcl-default.esm.js +2083 -1903
  11. package/js/oe-bcl-default.esm.js.map +1 -1
  12. package/js/oe-bcl-default.esm.min.js +1 -1
  13. package/js/oe-bcl-default.esm.min.js.map +1 -1
  14. package/js/oe-bcl-default.umd.js +2083 -1903
  15. package/js/oe-bcl-default.umd.js.map +1 -1
  16. package/js/oe-bcl-default.umd.min.js +1 -1
  17. package/js/oe-bcl-default.umd.min.js.map +1 -1
  18. package/package.json +8 -8
  19. package/src/js/gallery/gallery.js +3 -29
  20. package/src/scss/_banners.scss +9 -0
  21. package/src/scss/_description_list.scss +12 -0
  22. package/src/scss/_header.scss +109 -63
  23. package/src/scss/_pagination.scss +2 -2
  24. package/src/scss/base/_layout.scss +37 -0
  25. package/src/scss/base/_utilities.scss +27 -0
  26. package/src/scss/base/_variables.scss +18 -0
  27. package/src/scss/oe-bcl-default.scss +1 -1
  28. package/templates/bcl-accordion/accordion.html.twig +17 -0
  29. package/templates/bcl-base-templates/sidebar-search.html.twig +14 -1
  30. package/templates/bcl-blockquote/blockquote.html.twig +17 -0
  31. package/templates/bcl-card/card.html.twig +7 -5
  32. package/templates/bcl-carousel/carousel.html.twig +20 -10
  33. package/templates/bcl-content-banner/content-banner.html.twig +11 -8
  34. package/templates/bcl-date-block/date-block.html.twig +0 -2
  35. package/templates/bcl-description-list/description-list.html.twig +129 -88
  36. package/templates/bcl-fact-figures/fact-figures.html.twig +2 -2
  37. package/templates/bcl-featured-media/featured-media.html.twig +30 -9
  38. package/templates/bcl-file/file.html.twig +4 -2
  39. package/templates/bcl-gallery/gallery.html.twig +1 -1
  40. package/templates/bcl-language-switcher/language-switcher.html.twig +9 -3
  41. package/templates/bcl-links-block/links-block.html.twig +4 -0
  42. package/templates/bcl-listing/listing.html.twig +40 -50
  43. package/templates/bcl-modal/modal.html.twig +1 -1
  44. package/templates/bcl-navbar/navbar.html.twig +7 -7
  45. package/templates/bcl-navigation/navigation.html.twig +1 -1
  46. package/templates/bcl-offcanvas/offcanvas.html.twig +14 -3
  47. package/templates/bcl-page/page.html.twig +4 -23
  48. package/templates/bcl-pagination/pagination.html.twig +1 -1
  49. package/templates/bcl-person/person.html.twig +1 -3
  50. package/templates/bcl-progress/progress.html.twig +1 -4
  51. package/templates/bcl-project/project-lists.html.twig +1 -1
  52. package/templates/bcl-search-form/search-form.html.twig +1 -1
  53. package/templates/bcl-subscription-block/subscription-block.html.twig +3 -1
  54. package/templates/bcl-user/user-compact.html.twig +3 -2
  55. package/templates/bcl-user/user-terms.html.twig +4 -4
  56. package/templates/bcl-user/user.html.twig +2 -2
  57. package/src/scss/_bcl-offcanvas.scss +0 -24
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@openeuropa/bcl-theme-default",
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 theme default",
7
7
  "scripts": {
8
8
  "align-templates": "lerna --scope \"@openeuropa/bcl-twig-templates\" run prepublish",
@@ -18,12 +18,12 @@
18
18
  "update:templates": "run-s align-templates build:copy"
19
19
  },
20
20
  "devDependencies": {
21
- "@ecl/resources-ec-logo": "3.3.2",
22
- "@ecl/resources-eu-logo": "3.3.2",
23
- "@ecl/resources-flag-icons": "3.3.2",
24
- "@openeuropa/bcl-bootstrap": "^0.24.1",
25
- "@openeuropa/bcl-builder": "^0.24.1",
26
- "@openeuropa/bcl-twig-templates": "^0.24.1",
21
+ "@ecl/resources-ec-logo": "3.4.0",
22
+ "@ecl/resources-eu-logo": "3.4.0",
23
+ "@ecl/resources-flag-icons": "3.4.0",
24
+ "@openeuropa/bcl-bootstrap": "^0.26.0",
25
+ "@openeuropa/bcl-builder": "^0.26.0",
26
+ "@openeuropa/bcl-twig-templates": "^0.26.0",
27
27
  "copyfiles": "2.4.1",
28
28
  "cross-env": "7.0.3",
29
29
  "glob": "8.0.3",
@@ -48,5 +48,5 @@
48
48
  "design-system",
49
49
  "twig"
50
50
  ],
51
- "gitHead": "3ebebdea0c76a5a8df03abbd13873956a1e4837a"
51
+ "gitHead": "94d89cc379780cfce06178959194b3bc1b4c5eda"
52
52
  }
@@ -5,11 +5,10 @@
5
5
  * --------------------------------------------------------------------------
6
6
  */
7
7
 
8
- import { defineJQueryPlugin, typeCheckConfig } from '@openeuropa/bcl-bootstrap/js/src/util/index'
8
+ import { defineJQueryPlugin } from '@openeuropa/bcl-bootstrap/js/src/util/index'
9
9
  import EventHandler from '@openeuropa/bcl-bootstrap/js/src/dom/event-handler'
10
10
  import BaseComponent from '@openeuropa/bcl-bootstrap/js/src/base-component'
11
11
  import SelectorEngine from '@openeuropa/bcl-bootstrap/js/src/dom/selector-engine'
12
- import Manipulator from '@openeuropa/bcl-bootstrap/js/src/dom/manipulator'
13
12
 
14
13
  /**
15
14
  * ------------------------------------------------------------------------
@@ -18,7 +17,6 @@ import Manipulator from '@openeuropa/bcl-bootstrap/js/src/dom/manipulator'
18
17
  */
19
18
 
20
19
  const Default = {}
21
- const DefaultType = {}
22
20
 
23
21
  const NAME = 'gallery'
24
22
  const DATA_KEY = 'bs.gallery'
@@ -43,14 +41,13 @@ const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`
43
41
 
44
42
  class Gallery extends BaseComponent {
45
43
  constructor(element, config) {
46
- super(element)
44
+ super(element, config)
47
45
  this.carousel = SelectorEngine.findOne(CAROUSEL_SELECTOR, this.element)
48
46
  this.carouselPager = SelectorEngine.findOne(CAROUSEL_PAGER_SELECTOR, this.element)
49
47
  this.carouselStartIndex = element.getAttribute('data-gallery-start')
50
48
  this.carouselActiveItem = SelectorEngine.find(CAROUSEL_ITEM_SELECTOR, this.carousel)[this.carouselStartIndex]
51
49
  this.carouselPager.textContent = Number(this.carouselStartIndex) + 1
52
50
  this.modal = SelectorEngine.findOne(MODAL_SELECTOR, this.element)
53
- this.config = this.getConfig(config)
54
51
  this.addEventListeners()
55
52
  this.carouselLazyLoad(this.carouselActiveItem)
56
53
  }
@@ -95,16 +92,6 @@ class Gallery extends BaseComponent {
95
92
  }
96
93
  }
97
94
 
98
- getConfig(config) {
99
- config = {
100
- ...Default,
101
- ...Manipulator.getDataAttributes(this.element),
102
- ...(typeof config === 'object' ? config : {})
103
- }
104
- typeCheckConfig(NAME, config, DefaultType)
105
- return config
106
- }
107
-
108
95
  addEventListeners() {
109
96
  EventHandler.on(this.carousel, CAROUSEL_EVENT, event => this.setSlide(event))
110
97
  EventHandler.on(this.modal, EVENT_MODAL_HIDE, event => this.stopSlide(event))
@@ -115,19 +102,6 @@ class Gallery extends BaseComponent {
115
102
  return Default
116
103
  }
117
104
 
118
- static galleryInterface(element, config) {
119
- const data = Gallery.getOrCreateInstance(element, config)
120
-
121
- let { _config } = data
122
- if (typeof config === 'object') {
123
- // eslint-disable-next-line no-unused-vars
124
- _config = {
125
- ..._config,
126
- ...config
127
- }
128
- }
129
- }
130
-
131
105
  static jQueryInterface(config) {
132
106
  return this.each(function jInterface() {
133
107
  const data = Gallery.getOrCreateInstance(this)
@@ -156,7 +130,7 @@ EventHandler.on(document, EVENT_CLICK_DATA_API, THUMBNAIL_SELECTOR, (event) => {
156
130
  const firstSlide = event.target.parentNode.getAttribute('data-bs-slide-to');
157
131
  gallery.dataset.galleryStart = firstSlide;
158
132
 
159
- Gallery.galleryInterface(gallery, Gallery.getInstance(gallery))
133
+ Gallery.getOrCreateInstance(gallery);
160
134
  })
161
135
 
162
136
  /**
@@ -145,6 +145,15 @@
145
145
  }
146
146
  }
147
147
  }
148
+
149
+ .tab-pane {
150
+ .bcl-content-banner {
151
+ .card {
152
+ margin-right: 0;
153
+ margin-left: 0;
154
+ }
155
+ }
156
+ }
148
157
  }
149
158
 
150
159
  // Banners ratio
@@ -1,3 +1,15 @@
1
+ dd {
2
+ margin-bottom: 0;
3
+
4
+ > div + div {
5
+ margin-top: map-get($spacers, 2);
6
+ }
7
+ }
8
+
9
+ dd + dd {
10
+ margin-top: map-get($spacers, 2);
11
+ }
12
+
1
13
  // Desktop uses grid, this is to apply the same spacing in tablet and mobile.
2
14
  @include media-breakpoint-down(md) {
3
15
  dd + dt {
@@ -4,6 +4,10 @@ $header-background-start: #039 !default;
4
4
  $header-background-end: #1b4ac3 !default;
5
5
  $header-link-active-background: #003776 !default;
6
6
 
7
+ .bcl-header .container {
8
+ position: relative;
9
+ }
10
+
7
11
  .bcl-header__project,
8
12
  .bcl-header__navbar {
9
13
  background: linear-gradient(
@@ -13,27 +17,64 @@ $header-link-active-background: #003776 !default;
13
17
  );
14
18
  }
15
19
 
16
- .bcl-header__navbar .container {
17
- position: relative;
18
- }
19
-
20
- .bcl-header__navbar .navbar-collapse {
21
- padding-bottom: map-get($spacers, 3);
22
- }
20
+ .bcl-header__top-navbar {
21
+ .navbar-collapse {
22
+ justify-content: end;
23
+ }
23
24
 
24
- .bcl-header--neutral {
25
- .bcl-header__project,
26
- .bcl-header__navbar {
27
- background: $gray-700;
25
+ .navbar-toggler {
26
+ border: none;
27
+ color: $light;
28
28
  }
29
- }
30
29
 
31
- .bcl-navbar-header {
32
- align-items: flex-end;
30
+ .navbar-toggler-icon {
31
+ background: url("data:image/svg+xml;utf8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2Ij48cmVjdCB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiIgZmlsbD0ibm9uZSIvPjxjaXJjbGUgY3g9IjEyOCIgY3k9IjY0IiByPSIxNiIvPjxjaXJjbGUgY3g9IjEyOCIgY3k9IjEyOCIgcj0iMTYiLz48Y2lyY2xlIGN4PSIxMjgiIGN5PSIxOTIiIHI9IjE2Ii8+PC9zdmc+");
32
+ }
33
33
  }
34
34
 
35
35
  .bcl-header .nav-link {
36
36
  color: $eu-blue;
37
+ display: flex;
38
+ align-items: center;
39
+ padding: map-get($spacers, 2);
40
+ }
41
+
42
+ .bcl-header__navbar {
43
+ .navbar-collapse {
44
+ padding-bottom: map-get($spacers, 3);
45
+ }
46
+
47
+ .navbar-nav {
48
+ .nav-link {
49
+ color: $gray-100;
50
+
51
+ &:focus,
52
+ &:hover,
53
+ &.active {
54
+ color: #fff;
55
+ }
56
+
57
+ &:first-child {
58
+ padding-left: 0;
59
+ }
60
+ }
61
+ }
62
+
63
+ .navbar-toggler {
64
+ position: absolute;
65
+ top: -43px;
66
+ left: map-get($spacers, "2-5");
67
+ border-color: $white;
68
+ }
69
+
70
+ .navbar-toggler-icon {
71
+ background: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 1)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E");
72
+ }
73
+
74
+ input:active,
75
+ input:focus {
76
+ box-shadow: 0 0 0 0.25rem hsl(210deg 2% 83% / 50%);
77
+ }
37
78
  }
38
79
 
39
80
  .bcl-header--ec,
@@ -42,51 +83,46 @@ $header-link-active-background: #003776 !default;
42
83
  .bcl-header__navbar {
43
84
  background: $header-background;
44
85
  }
45
-
86
+ /* stylelint-disable-next-line no-descending-specificity */
46
87
  .nav-link {
47
88
  color: $ec-blue;
48
89
  }
49
90
  }
50
91
 
51
- .bcl-header:not(.bcl-header--neutral) .bcl-header__project {
52
- padding-top: map-get($spacers, 3);
92
+ .bcl-navbar-header {
93
+ align-items: flex-end;
53
94
  }
54
95
 
55
- .bcl-header__navbar .navbar-nav .nav-link {
56
- color: $gray-100;
57
- &:first-child {
58
- padding-left: 0;
96
+ .bcl-header--neutral {
97
+ .bcl-header__project,
98
+ .bcl-header__navbar {
99
+ background: $gray-700;
59
100
  }
60
101
  }
61
102
 
62
- .bcl-header__navbar .navbar-nav .nav-link:focus,
63
- .bcl-header__navbar .navbar-nav .nav-link:hover,
64
- .bcl-header__navbar .navbar-nav .nav-link.active {
65
- color: #fff;
66
- }
67
-
68
- .bcl-header__navbar input:active,
69
- .bcl-header__navbar input:focus {
70
- box-shadow: 0 0 0 0.25rem hsl(210deg 2% 83% / 50%);
71
- }
72
-
73
- .bcl-header .notification {
74
- position: relative;
75
- padding-right: 0;
103
+ .bcl-header:not(.bcl-header--neutral) .bcl-header__project {
104
+ padding-top: map-get($spacers, 3);
76
105
  }
77
106
 
78
- .bcl-header .navbar-brand img {
79
- width: 100px;
80
- }
107
+ .bcl-header {
108
+ .navbar-brand img {
109
+ width: 100px;
110
+ }
81
111
 
82
- .bcl-header .notification span {
83
- z-index: 1;
84
- height: 18px;
85
- padding-right: 5px;
86
- padding-left: 5px;
87
- line-height: 0.6rem;
88
- border-radius: 10px;
89
- transform: translate(-11px, 5px);
112
+ .notification {
113
+ position: relative;
114
+ padding-right: 0;
115
+
116
+ span {
117
+ z-index: 1;
118
+ height: 18px;
119
+ padding-right: 5px;
120
+ padding-left: 5px;
121
+ line-height: 0.6rem;
122
+ border-radius: 10px;
123
+ transform: translate(-11px, 5px);
124
+ }
125
+ }
90
126
  }
91
127
 
92
128
  .bcl-header__project .bcl-header__site-name {
@@ -99,17 +135,6 @@ $header-link-active-background: #003776 !default;
99
135
  max-width: 80%;
100
136
  }
101
137
 
102
- .bcl-header .navbar-toggler {
103
- position: absolute;
104
- top: -43px;
105
- right: 14px;
106
- border-color: $white;
107
- }
108
-
109
- .bcl-header .navbar-toggler .navbar-toggler-icon {
110
- background: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 1)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E");
111
- }
112
-
113
138
  @media only screen and (max-width: 400px) {
114
139
  .bcl-header--neutral .bcl-header__project-logo {
115
140
  display: none;
@@ -132,21 +157,42 @@ $header-link-active-background: #003776 !default;
132
157
  }
133
158
 
134
159
  @include media-breakpoint-down(lg) {
160
+ .bcl-header__site-name {
161
+ margin-left: 5rem;
162
+ }
163
+
164
+ .bcl-header__top-navbar .navbar-collapse {
165
+ z-index: 1050;
166
+ position: absolute;
167
+ right: map-get($spacers, "2-5");
168
+ top: 100%;
169
+ background: white;
170
+ border: 1px solid $gray-300;
171
+ border-radius: 4px;
172
+
173
+ .nav {
174
+ align-items: flex-start;
175
+ flex-direction: column;
176
+ min-width: 16rem;
177
+ padding: map-get($spacers, 3);
178
+
179
+ li {
180
+ width: 100%;
181
+ }
182
+ }
183
+ }
184
+
135
185
  .bcl-header__project {
136
186
  min-height: map-get($spacers, 5);
137
187
  padding-top: map-get($spacers, 3);
138
188
  }
139
189
 
140
190
  .bcl-header nav + nav {
141
- min-height: map-get($spacers, 5);
191
+ min-height: 3.5rem;
142
192
 
143
193
  .navbar-toggler {
144
194
  position: static;
145
195
  }
146
-
147
- .container {
148
- justify-content: right;
149
- }
150
196
  }
151
197
 
152
198
  .bcl-header__navbar {
@@ -175,7 +221,7 @@ $header-link-active-background: #003776 !default;
175
221
  }
176
222
 
177
223
  .bcl-header__site-name {
178
- padding-left: map-get($spacers, 4);
224
+ margin-left: map-get($spacers, 4);
179
225
  font-weight: 500;
180
226
  }
181
227
 
@@ -18,7 +18,7 @@
18
18
  border: none;
19
19
  border-bottom: 2px solid transparent;
20
20
  color: $dark;
21
- font-weight: bold;
21
+ font-weight: $font-weight-bold;
22
22
  text-transform: uppercase;
23
23
  white-space: nowrap;
24
24
  }
@@ -30,7 +30,7 @@
30
30
  }
31
31
 
32
32
  .page-item:first-child .page-link {
33
- border-radius: 0px;
33
+ border-radius: 0;
34
34
  }
35
35
  }
36
36
 
@@ -3,3 +3,40 @@
3
3
  font-size: $h4-font-size;
4
4
  }
5
5
  }
6
+
7
+ .bcl-card-start-col {
8
+ flex-basis: $card-start-col-size;
9
+ padding: 0;
10
+ &.bcl-size-small {
11
+ flex-basis: $card-start-col-small-size;
12
+ }
13
+ &.bcl-size-large {
14
+ flex-basis: $card-start-col-large-size;
15
+ }
16
+ &.bcl-size-extra-large {
17
+ flex-basis: $card-start-col-extra-large-size;
18
+ }
19
+ }
20
+
21
+ .row {
22
+ .bcl-card-start-col {
23
+ margin-left: calc(var(--#{$variable-prefix}gutter-x) * 0.5);
24
+ margin-right: calc(var(--#{$variable-prefix}gutter-x) * 0.5);
25
+ }
26
+ }
27
+
28
+ @include media-breakpoint-down(md) {
29
+ .bcl-content-banner {
30
+ .bcl-card-start-col {
31
+ margin: 0 auto;
32
+ padding: 0 calc(var(--#{$variable-prefix}gutter-x) * 0.5);
33
+ }
34
+ }
35
+ }
36
+ @include media-breakpoint-down(lg) {
37
+ .bcl-content-banner {
38
+ .bcl-card-start-col.bcl-size-extra-large {
39
+ margin: 0 auto;
40
+ }
41
+ }
42
+ }
@@ -14,6 +14,33 @@ $utilities: map-merge(
14
14
  ),
15
15
  )
16
16
  ),
17
+ "width":
18
+ map-merge(
19
+ map-get($utilities, "width"),
20
+ (
21
+ values:
22
+ map-merge(
23
+ map-get(map-get($utilities, "width"), "values"),
24
+ (
25
+ min-content: min-content,
26
+ )
27
+ ),
28
+ )
29
+ ),
30
+ "flex":
31
+ map-merge(
32
+ map-get($utilities, "flex"),
33
+ (
34
+ values:
35
+ map-merge(
36
+ map-get(map-get($utilities, "flex"), "values"),
37
+ (
38
+ 1: 1,
39
+ end-100: 1 0 100%,
40
+ )
41
+ ),
42
+ )
43
+ ),
17
44
  // Extend rounded-top utility.
18
45
  "max-width":
19
46
  map-merge(
@@ -96,3 +96,21 @@ $navbar-nav-link-padding-x: 0.75rem;
96
96
  // Circular progress bar
97
97
  $circular-progress-border-color: $gray-400;
98
98
  $circular-progress-border-color-fill: $primary;
99
+
100
+ $card-start-col-extra-large-size: 350px;
101
+ $card-start-col-large-size: 255px;
102
+ $card-start-col-size: 160px;
103
+ $card-start-col-small-size: 120px;
104
+
105
+ // Z-index
106
+ // Based on the webtools cookie banner consent, with z-index 100
107
+ $zindex-dropdown: 40;
108
+ $zindex-sticky: 50;
109
+ $zindex-fixed: 60;
110
+ $zindex-offcanvas-backdrop: 65;
111
+ $zindex-offcanvas: 70;
112
+ $zindex-popover: 80;
113
+ $zindex-tooltip: 90;
114
+
115
+ $zindex-modal-backdrop: 110;
116
+ $zindex-modal: 120;
@@ -4,6 +4,7 @@
4
4
  // Configuration
5
5
  @import "@openeuropa/bcl-bootstrap/scss/functions";
6
6
  @import "@openeuropa/bcl-bootstrap/scss/variables";
7
+ @import "@openeuropa/bcl-bootstrap/scss/maps";
7
8
  @import "@openeuropa/bcl-bootstrap/scss/mixins";
8
9
 
9
10
  // Custom variables
@@ -72,7 +73,6 @@
72
73
  @import "@openeuropa/bcl-theme-default/src/scss/spinners";
73
74
  @import "@openeuropa/bcl-theme-default/src/scss/badge";
74
75
  @import "@openeuropa/bcl-theme-default/src/scss/multiselect";
75
- @import "@openeuropa/bcl-theme-default/src/scss/bcl-offcanvas";
76
76
  @import "@openeuropa/bcl-theme-default/src/scss/breadcrumb";
77
77
  @import "@openeuropa/bcl-theme-default/src/scss/banners";
78
78
  @import "@openeuropa/bcl-theme-default/src/scss/timeline";
@@ -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 {