@openeuropa/bcl-theme-default 0.21.0 → 0.23.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/bcl-builder.config.js +2 -2
  2. package/css/oe-bcl-default.css +626 -410
  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/icons/bcl-default-icons.svg +1 -1
  7. package/js/oe-bcl-default.bundle.js +3 -3
  8. package/js/oe-bcl-default.bundle.js.map +1 -1
  9. package/js/oe-bcl-default.bundle.min.js +1 -1
  10. package/js/oe-bcl-default.bundle.min.js.map +1 -1
  11. package/js/oe-bcl-default.esm.js +3 -3
  12. package/js/oe-bcl-default.esm.js.map +1 -1
  13. package/js/oe-bcl-default.esm.min.js +1 -1
  14. package/js/oe-bcl-default.esm.min.js.map +1 -1
  15. package/js/oe-bcl-default.umd.js +3 -3
  16. package/js/oe-bcl-default.umd.js.map +1 -1
  17. package/js/oe-bcl-default.umd.min.js +1 -1
  18. package/js/oe-bcl-default.umd.min.js.map +1 -1
  19. package/logos/ec/negative/logo-ec--jp.svg +72 -0
  20. package/logos/ec/negative/logo-ec--lb.svg +93 -0
  21. package/logos/ec/negative/logo-ec--ru.svg +91 -0
  22. package/logos/ec/negative/logo-ec--uk.svg +90 -0
  23. package/logos/ec/negative/logo-ec--zh.svg +72 -0
  24. package/logos/ec/positive/logo-ec--jp.svg +77 -0
  25. package/logos/ec/positive/logo-ec--lb.svg +93 -0
  26. package/logos/ec/positive/logo-ec--ru.svg +91 -0
  27. package/logos/ec/positive/logo-ec--uk.svg +90 -0
  28. package/logos/ec/positive/logo-ec--zh.svg +77 -0
  29. package/logos/eu/condensed-version/negative/logo-eu--jp.svg +17 -0
  30. package/logos/eu/condensed-version/negative/logo-eu--lb.svg +19 -0
  31. package/logos/eu/condensed-version/negative/logo-eu--ru.svg +19 -0
  32. package/logos/eu/condensed-version/negative/logo-eu--uk.svg +19 -0
  33. package/logos/eu/condensed-version/negative/logo-eu--zh.svg +7 -0
  34. package/logos/eu/condensed-version/positive/logo-eu--jp.svg +6 -0
  35. package/logos/eu/condensed-version/positive/logo-eu--lb.svg +6 -0
  36. package/logos/eu/condensed-version/positive/logo-eu--ru.svg +6 -0
  37. package/logos/eu/condensed-version/positive/logo-eu--uk.svg +6 -0
  38. package/logos/eu/condensed-version/positive/logo-eu--zh.svg +6 -0
  39. package/logos/eu/standard-version/negative/logo-eu--jp.svg +9 -0
  40. package/logos/eu/standard-version/negative/logo-eu--lb.svg +21 -0
  41. package/logos/eu/standard-version/negative/logo-eu--ru.svg +20 -0
  42. package/logos/eu/standard-version/negative/logo-eu--uk.svg +21 -0
  43. package/logos/eu/standard-version/negative/logo-eu--zh.svg +9 -0
  44. package/logos/eu/standard-version/positive/logo-eu--jp.svg +8 -0
  45. package/logos/eu/standard-version/positive/logo-eu--lb.svg +20 -0
  46. package/logos/eu/standard-version/positive/logo-eu--ru.svg +19 -0
  47. package/logos/eu/standard-version/positive/logo-eu--uk.svg +20 -0
  48. package/logos/eu/standard-version/positive/logo-eu--zh.svg +8 -0
  49. package/package.json +9 -9
  50. package/src/js/gallery/gallery.js +3 -3
  51. package/src/scss/_alert.scss +8 -0
  52. package/src/scss/_badge.scss +76 -58
  53. package/src/scss/_banners.scss +16 -0
  54. package/src/scss/_gallery.scss +7 -0
  55. package/src/scss/_inpage-navigation.scss +1 -2
  56. package/src/scss/_multiselect.scss +7 -7
  57. package/src/scss/base/_colors.scss +17 -6
  58. package/src/scss/base/_utilities.scss +9 -0
  59. package/src/scss/base/_variables.scss +4 -0
  60. package/src/scss/oe-bcl-default.scss +1 -0
  61. package/templates/bcl-alert/alert.html.twig +9 -1
  62. package/templates/bcl-badge/badge.html.twig +13 -9
  63. package/templates/bcl-banner/banner.html.twig +20 -9
  64. package/templates/bcl-base-templates/content-type.html.twig +3 -3
  65. package/templates/bcl-base-templates/listing-page.html.twig +19 -9
  66. package/templates/bcl-card/card.html.twig +22 -19
  67. package/templates/bcl-content-banner/content-banner.html.twig +35 -32
  68. package/templates/bcl-description-list/description-list.html.twig +14 -10
  69. package/templates/bcl-event/event.html.twig +2 -2
  70. package/templates/bcl-fact-figures/fact-figures.html.twig +31 -25
  71. package/templates/bcl-file/file.html.twig +22 -14
  72. package/templates/bcl-form/form.html.twig +10 -4
  73. package/templates/bcl-gallery/gallery.html.twig +23 -19
  74. package/templates/bcl-group/group-landing.html.twig +7 -7
  75. package/templates/bcl-group/group.html.twig +1 -1
  76. package/templates/bcl-heading/heading.html.twig +40 -0
  77. package/templates/bcl-inpage-navigation/inpage-navigation.html.twig +16 -8
  78. package/templates/bcl-landing-page/landing-page.html.twig +2 -2
  79. package/templates/bcl-links-block/links-block.html.twig +16 -6
  80. package/templates/bcl-listing/listing.html.twig +18 -8
  81. package/templates/bcl-modal/modal.html.twig +4 -1
  82. package/templates/bcl-offcanvas/offcanvas.html.twig +16 -19
  83. package/templates/bcl-page/page.html.twig +3 -3
  84. package/templates/bcl-person/person.html.twig +11 -11
  85. package/templates/bcl-progress/progress.html.twig +3 -0
  86. package/templates/bcl-project/project-lists.html.twig +70 -0
  87. package/templates/bcl-project/project.html.twig +51 -76
  88. package/templates/bcl-project-status/project-contributions.html.twig +56 -0
  89. package/templates/bcl-project-status/project-status.html.twig +14 -44
  90. package/templates/bcl-recent-activities/recent-activities.html.twig +9 -7
  91. package/templates/bcl-search/search.html.twig +9 -2
  92. package/templates/bcl-timeline/timeline.html.twig +22 -18
  93. package/templates/bcl-user/{user-view-compact.html.twig → user-compact.html.twig} +0 -0
  94. package/templates/bcl-user/user-terms.html.twig +11 -0
  95. package/templates/bcl-user/user.html.twig +129 -0
  96. package/yarn-error.log +17973 -0
  97. package/templates/bcl-user/user-edit.html.twig +0 -38
  98. package/templates/bcl-user/user-view.html.twig +0 -86
@@ -16,84 +16,102 @@
16
16
  font-weight: 300;
17
17
  justify-content: center;
18
18
  align-items: center;
19
- cursor: pointer;
20
19
  background: $white;
21
20
  border-radius: 50%;
21
+ border: none;
22
+ padding: 0;
22
23
  svg {
23
24
  width: 6px;
24
25
  height: 6px;
25
26
  margin: 0;
26
27
  }
27
28
  }
28
- &.bg-primary {
29
- .icon--close {
30
- color: $primary;
31
- }
32
- }
33
- &.bg-secondary {
34
- .icon--close {
35
- color: $secondary;
36
- }
37
- }
38
- &.bg-success {
39
- .icon--close {
40
- color: $success;
41
- }
42
- }
43
- &.bg-danger {
44
- .icon--close {
45
- color: $danger;
46
- }
47
- }
48
- &.bg-dark {
49
- .icon--close {
50
- color: $dark;
51
- }
52
- }
53
- &.bg-warning {
54
- .icon--close {
55
- color: $warning;
56
- background: $black;
57
- }
58
- }
59
- &.bg-info {
60
- .icon--close {
61
- color: $info;
62
- background: $black;
63
- }
64
- }
65
- &.bg-light {
66
- .icon--close {
67
- color: $light;
68
- background: $black;
69
- }
70
- }
71
29
  }
72
30
 
73
- // Badges in headings and other text elements
74
- h1,
75
- h2,
76
- h3,
77
- h4,
78
- h5,
79
- h6,
80
- p,
81
- a {
82
- .badge {
83
- font-size: 0.75em; // Default size in Bootstrap
31
+ a.badge {
32
+ text-decoration: none;
33
+ &:focus-visible {
34
+ outline: none;
84
35
  }
85
36
  }
86
37
 
87
38
  @each $color, $value in $theme-colors {
88
- .badge-outline-#{$color} {
89
- border: $border-width solid $value;
39
+ .badge.bg-#{$color} a,
40
+ .badge.bg-#{$color} {
41
+ @if $color == light or $color == warning {
42
+ color: $black;
43
+ } @else {
44
+ color: $white;
45
+ }
46
+ .icon--close {
47
+ color: $value;
48
+ @if $color == light or $color == warning {
49
+ background: $black;
50
+ }
51
+ }
52
+ }
53
+ .badge-outline-#{$color} a {
90
54
  color: $value !important;
55
+ }
56
+ .badge-outline-#{$color} {
91
57
  background: transparent !important;
58
+ @if $color == light {
59
+ border: $border-width solid $light;
60
+ color: $light !important;
61
+ } @else {
62
+ border: $border-width solid $value;
63
+ color: $value !important;
64
+ }
92
65
  .icon--close {
93
66
  background: $value;
94
- color: $white;
95
67
  @if $color == light {
96
68
  color: $black;
69
+ } @else {
70
+ color: $white;
71
+ }
72
+ }
73
+ }
74
+ a.badge {
75
+ &:focus-within,
76
+ &:active,
77
+ &:hover {
78
+ &.badge-outline-#{$color} {
79
+ @if $color == dark {
80
+ background-color: $light !important;
81
+ border-color: $black;
82
+ } @else if $color == light {
83
+ border-color: $white;
84
+ color: $white;
85
+ background: rgba($white, 0.3) !important;
86
+ } @else {
87
+ background-color: tint-color($value, 90%) !important;
88
+ border-color: shade-color($value, 15%) !important;
89
+ }
90
+ }
91
+ &.bg-#{$color} {
92
+ background-color: shade-color($value, 15%) !important;
93
+ }
94
+ }
95
+ &.badge.bg-#{$color} {
96
+ &:focus {
97
+ @if $enable-shadows {
98
+ @include box-shadow(
99
+ $btn-box-shadow,
100
+ 0 0 0 $btn-focus-width
101
+ rgba(mix(color-contrast($value), $value, 15%), 0.5)
102
+ );
103
+ } @else {
104
+ box-shadow: 0
105
+ 0
106
+ 0
107
+ $btn-focus-width
108
+ rgba(mix(color-contrast($value), $value, 15%), 0.5);
109
+ }
110
+ }
111
+ }
112
+ &.badge-outline-#{$color} {
113
+ &:focus {
114
+ box-shadow: 0 0 0 $btn-focus-width rgba($value, 0.5);
97
115
  }
98
116
  }
99
117
  }
@@ -51,6 +51,16 @@
51
51
  }
52
52
  }
53
53
 
54
+ @include media-breakpoint-down(md) {
55
+ .container {
56
+ .bcl-content-banner {
57
+ .container {
58
+ padding: 0;
59
+ }
60
+ }
61
+ }
62
+ }
63
+
54
64
  @include media-breakpoint-up(md) {
55
65
  .bcl-banner {
56
66
  overflow: hidden;
@@ -128,6 +138,12 @@
128
138
  margin-left: 0;
129
139
  }
130
140
  }
141
+ .bcl-content-banner {
142
+ .card {
143
+ margin-right: -$container-padding-x;
144
+ margin-left: -$container-padding-x;
145
+ }
146
+ }
131
147
  }
132
148
  }
133
149
 
@@ -85,6 +85,13 @@
85
85
  }
86
86
  }
87
87
 
88
+ .bcl-gallery__mobile-view-more > span {
89
+ display: block;
90
+ & * {
91
+ pointer-events: none;
92
+ }
93
+ }
94
+
88
95
  .carousel {
89
96
  height: 100%;
90
97
  width: 100%;
@@ -2,8 +2,7 @@
2
2
  top: map-get($spacers, 3); // needed for position-sticky
3
3
  background-color: $gray-100;
4
4
 
5
- h5 {
6
- font-weight: bold;
5
+ .bcl-heading {
7
6
  margin-bottom: 0;
8
7
  padding: map-get($spacers, "3-5");
9
8
  border-bottom: 1px solid $gray-300;
@@ -12,7 +12,8 @@ $multiselect-spacers: (
12
12
  "disabled-spacer": calc(map-get($spacers, 2) - 1px),
13
13
  "disabled-spacer-md": calc(map-get($spacers, 1) - 1px),
14
14
  "select-spacer": calc(map-get($spacers, 2) - 2px),
15
- "select-spacer-md": calc(map-get($spacers, 1) + 0.05rem),
15
+ "select-spacer-md": 0.075rem,
16
+ "select-spacer-start": 0.3rem,
16
17
  "badge-padding-x": map-get($spacers, 1),
17
18
  "badge-padding-y": map-get($spacers, 1),
18
19
  "add-margin-top": map-get($spacers, "2-5"),
@@ -55,9 +56,10 @@ select.multi-select {
55
56
  }
56
57
  }
57
58
  .ss-multi-selected {
59
+ border-color: $input-border-color;
58
60
  padding: map-get($multiselect-spacers, "select-spacer") 0
59
61
  map-get($multiselect-spacers, "select-spacer")
60
- map-get($multiselect-spacers, "select-spacer");
62
+ map-get($multiselect-spacers, "select-spacer-start");
61
63
  &.ss-disabled {
62
64
  .ss-values {
63
65
  .ss-value {
@@ -66,7 +68,8 @@ select.multi-select {
66
68
  }
67
69
  }
68
70
  .ss-add {
69
- margin-top: map-get($multiselect-spacers, "add-margin-top");
71
+ margin-top: 0;
72
+ align-self: center;
70
73
  }
71
74
  }
72
75
  }
@@ -112,10 +115,7 @@ select.multi-select {
112
115
  .ss-multi-selected {
113
116
  padding: map-get($multiselect-spacers, "select-spacer-md") 0
114
117
  map-get($multiselect-spacers, "select-spacer-md")
115
- map-get($multiselect-spacers, "select-spacer-md");
116
- .ss-add {
117
- margin-top: map-get($multiselect-spacers, "add-margin-top-md");
118
- }
118
+ map-get($multiselect-spacers, "select-spacer-start");
119
119
  }
120
120
  .ss-values {
121
121
  @include font-size(1rem);
@@ -1,12 +1,23 @@
1
1
  // Custom theme colors
2
2
 
3
- $primary: #0a58ca;
4
- $secondary: #801f4f;
5
- $info: #087990;
6
- $danger: #b02a37;
7
- $warning: #ffc107;
8
- $success: #198754;
3
+ $primary: #253ebe;
4
+ $secondary: #70254a;
5
+ $info: #0d768b;
6
+ $danger: #a51f2c;
7
+ $warning: #ffba07;
8
+ $success: #09854c;
9
9
  $light: #f8f9fa;
10
10
  $dark: #212529;
11
11
 
12
12
  $text-muted: #495057;
13
+
14
+ $link-visited: #6b22b5;
15
+
16
+ // Color variants scales
17
+
18
+ // Tables
19
+ $table-hover-bg-factor: 0.1;
20
+
21
+ // Alerts
22
+ $alert-bg-scale: -90%;
23
+ $alert-border-scale: -80%;
@@ -63,6 +63,7 @@ $utilities: map-merge(
63
63
  )
64
64
  );
65
65
 
66
+ /* stylelint-disable no-descending-specificity */
66
67
  a {
67
68
  text-underline-offset: 2px;
68
69
 
@@ -81,7 +82,15 @@ a {
81
82
  text-decoration: underline;
82
83
  }
83
84
  }
85
+
86
+ &:visited {
87
+ color: $link-visited;
88
+ &:hover {
89
+ color: shade-color($link-visited, 20%);
90
+ }
91
+ }
84
92
  }
93
+ /* stylelint-enable no-descending-specificity */
85
94
 
86
95
  svg {
87
96
  fill: currentColor;
@@ -10,6 +10,8 @@ $yellow-50: tint-color($yellow, 90%);
10
10
  $green-50: tint-color($green, 90%);
11
11
  $cyan-50: tint-color($cyan, 90%);
12
12
 
13
+ $zindex-dropdown: 1055;
14
+
13
15
  // Override theme-color "light"
14
16
  $theme-colors: map-merge(
15
17
  $theme-colors,
@@ -75,6 +77,8 @@ $accordion-border-color: $gray-300;
75
77
  $badge-font-weight: $font-weight-normal; // 400
76
78
  $badge-font-size: 1.125rem; // 18px
77
79
  $badge-font-size-desktop: 1rem; // 16px
80
+ $badge-active-box-shadow: $btn-active-box-shadow;
81
+ $badge-focus-width: $btn-focus-width;
78
82
 
79
83
  // banners
80
84
  $banner-content-border-color: $primary;
@@ -52,6 +52,7 @@
52
52
  @import "@openeuropa/bcl-bootstrap/scss/utilities/api";
53
53
 
54
54
  // Custom styles
55
+ @import "@openeuropa/bcl-theme-default/src/scss/alert";
55
56
  @import "@openeuropa/bcl-theme-default/src/scss/button";
56
57
  @import "@openeuropa/bcl-theme-default/src/scss/collapse";
57
58
  @import "@openeuropa/bcl-theme-default/src/scss/circular-progress-bar";
@@ -37,6 +37,14 @@
37
37
  {% set _classes = _classes|merge(['fade', 'show']) %}
38
38
  {% endif %}
39
39
 
40
+ {% set _classes = _classes|merge(['text-dark']) %}
41
+
42
+ {% set _icon_classes = ['flex-shrink-0 me-3 mt-1 align-self-start' ] %}
43
+
44
+ {% if _variant != 'light' %}
45
+ {% set _icon_classes = _icon_classes|merge(['text-' ~ _variant]) %}
46
+ {% endif %}
47
+
40
48
  {% if attributes is empty %}
41
49
  {% set attributes = create_attribute() %}
42
50
  {% endif %}
@@ -49,7 +57,7 @@
49
57
  name: _icon_name ?: _icon_names[_variant],
50
58
  size: 's',
51
59
  path: _icon_path,
52
- attributes: create_attribute().addClass(['flex-shrink-0 me-3 mt-1 align-self-start']),
60
+ attributes: create_attribute().addClass(_icon_classes),
53
61
  } only %}
54
62
  {% endif %}
55
63
  <div class="alert-content flex-grow-1">
@@ -33,22 +33,25 @@
33
33
  {% set _classes = _classes|merge([ 'bg-' ~ _background]) %}
34
34
  {% endif %}
35
35
 
36
- {% if _background in ['light', 'warning'] %}
37
- {% set _classes = _classes|merge(['text-dark']) %}
38
- {% endif %}
39
-
40
36
  {% if attributes is empty %}
41
37
  {% set attributes = create_attribute() %}
42
38
  {% endif %}
43
39
 
40
+ {%- if _url is not empty -%}
41
+ {% set attributes = attributes.setAttribute('title', _title).setAttribute('href', _url) %}
42
+ {%- endif -%}
43
+
44
44
  {% set attributes = attributes.addClass(_classes) %}
45
45
 
46
46
  {%- if _url is not empty -%}
47
- <a href="{{ _url }}" title="{{ _title }}">
47
+ <a
48
+ {{ attributes }}
49
+ >
50
+ {%- else -%}
51
+ <span
52
+ {{ attributes }}
53
+ >
48
54
  {%- endif -%}
49
- <span
50
- {{ attributes }}
51
- >
52
55
  {%- if _assistive_text is not empty -%}
53
56
  <span class="visually-hidden">
54
57
  {{- _assistive_text -}}
@@ -63,9 +66,10 @@
63
66
  } only %}
64
67
  </span>
65
68
  {%- endif -%}
66
- </span>
67
69
  {%- if _url is not empty -%}
68
70
  </a>
71
+ {%- else -%}
72
+ </span>
69
73
  {%- endif -%}
70
74
 
71
75
  {% endspaceless %}
@@ -3,6 +3,8 @@
3
3
  {# Parameters:
4
4
  - title: (string) (default: "")
5
5
  - title_tag: (string) (default: "div")
6
+ - title_link: (link object) (default: {})
7
+ - title_attributes (drupal attrs)
6
8
  - description: (string) (default: "")
7
9
  - link: (link object) (default: {}): predefined structure for Link component
8
10
  - image: (string) <img> tag
@@ -14,6 +16,8 @@
14
16
 
15
17
  {% set _title = title|default('') %}
16
18
  {% set _title_tag = title_tag|default('div') %}
19
+ {% set _title_link = title_link|default({}) %}
20
+ {% set _title_attributes = title_attributes ?: create_attribute() %}
17
21
  {% set _description = description|default('') %}
18
22
  {% set _link = link|default({}) %}
19
23
  {% set _image = image|default('') %}
@@ -28,11 +32,13 @@
28
32
  {% set _content_class = _content_class ~ " " ~ _content_classes %}
29
33
  {% endif %}
30
34
 
31
- {% set _title_classes = "display-6" %}
35
+ {% set _title_classes = ['display-6'] %}
32
36
  {% if _description is not empty or _link is not empty %}
33
- {% set _title_classes = _title_classes ~ " mb-3" %}
37
+ {% set _title_classes = _title_classes|merge(['mb-3']) %}
34
38
  {% endif %}
35
39
 
40
+ {% set _title_attributes = _title_attributes.addClass(_title_classes) %}
41
+
36
42
  {% set _classes = [
37
43
  'bcl-banner',
38
44
  _shade ? 'shade',
@@ -53,14 +59,19 @@
53
59
  {% endif %}
54
60
  <div class="container">
55
61
  <div class="{{ _content_class }}">
56
- {% if _title is not empty %}
57
- <{{ _title_tag }} class="{{ _title_classes }}">{{ _title }}</{{ _title_tag }}>
58
- {% if _description is not empty %}
59
- <p class="mb-4">{{ _description }}</p>
60
- {% endif %}
61
- {% if _link.path %}
62
- {% include '@oe-bcl/bcl-link/link.html.twig' with _link only %}
62
+ {% if _title is not empty %}
63
+ {% include '@oe-bcl/bcl-heading/heading.html.twig' with {
64
+ title: _title,
65
+ title_tag: _title_tag,
66
+ title_link: _title_link,
67
+ attributes: _title_attributes,
68
+ } only %}
63
69
  {% endif %}
70
+ {% if _description is not empty %}
71
+ <p class="mb-4">{{ _description }}</p>
72
+ {% endif %}
73
+ {% if _link.path %}
74
+ {% include '@oe-bcl/bcl-link/link.html.twig' with _link only %}
64
75
  {% endif %}
65
76
  </div>
66
77
  </div>
@@ -116,6 +116,9 @@
116
116
  {% block related %}
117
117
  {{ related }}
118
118
  {% endblock %}
119
+ {% block share %}
120
+ {{ share }}
121
+ {% endblock %}
119
122
  </div>
120
123
  </div>
121
124
  </main>
@@ -123,9 +126,6 @@
123
126
  {% block feedback %}
124
127
  {{ feedback }}
125
128
  {% endblock %}
126
- {% block share %}
127
- {{ share }}
128
- {% endblock %}
129
129
 
130
130
  {% if _with_footer %}
131
131
  {% include '@oe-bcl/bcl-footer/footer.html.twig' with footer only %}
@@ -1,29 +1,39 @@
1
1
  {#
2
2
  Parameters:
3
+ - title: (string) (default: '')
4
+ - title_tag: (string) (default: 'h2')
5
+ - title_link: (link object) (default: {})
6
+ - title_attributes (drupal attrs)
3
7
  - listing (object) (default: {})
4
8
  - pagination (object) (default: {})
5
9
  - sidebar (object) (default: '')
6
- - page_title (string) (default: '')
7
10
  #}
8
11
 
9
12
  {% extends "@oe-bcl/bcl-base-templates/content-type.html.twig" %}
10
13
 
14
+ {% set _title = title|default('') %}
15
+ {% set _title_tag = title_tag|default('h2') %}
16
+ {% set _title_link = title_link|default({}) %}
17
+ {% set _title_attributes = title_attributes ?: create_attribute() %}
11
18
  {% set _listing = listing|default({}) %}
12
19
  {% set _pagination = pagination|default({}) %}
13
20
  {% set _search = search|default({}) %}
14
21
  {% set _sidebar = sidebar|default({}) %}
15
- {% set _page_title = page_title|default({}) %}
22
+
23
+ {% set _title_attributes = _title_attributes ?: create_attribute() %}
16
24
 
17
25
  {% block content_top %}
18
26
  {% include '@oe-bcl/bcl-button/button.html.twig' with filter_button only %}
19
27
  <div class="row">
20
28
  <div class="col-md-6 col-lg-8 align-self-center">
21
- <h4 class="mb-0">
22
- <span class="text-capitalize">
23
- {{- _page_title -}}
24
- </span>
25
- ({{ listing.items.length }})
26
- </h4>
29
+ {% if _title is not empty %}
30
+ {% include '@oe-bcl/bcl-heading/heading.html.twig' with {
31
+ title: _title ~ ' (' ~ listing.items.length ~ ')',
32
+ title_tag: _title_tag,
33
+ title_link: _title_link,
34
+ attributes: _title_attributes.addClass(['mb-0', 'text-capitalize']),
35
+ } only %}
36
+ {% endif %}
27
37
  </div>
28
38
  {% if badges is not empty and badges is iterable %}
29
39
  <div class="col-md-12 order-md-2 mt-3">
@@ -47,7 +57,7 @@
47
57
 
48
58
  {% block content %}
49
59
  {% if _listing is not empty %}
50
- {% include '@oe-bcl/bcl-listing/listing.html.twig' with _listing %}
60
+ {% include '@oe-bcl/bcl-listing/listing.html.twig' with _listing only %}
51
61
  {% endif %}
52
62
  {% endblock %}
53
63
 
@@ -1,12 +1,10 @@
1
1
  {% spaceless %}
2
2
 
3
3
  {# Parameters:
4
- - title (object) (default: {})
5
- format: {
6
- content: '',
7
- tag: '',
8
- classes: ''
9
- }
4
+ - title: (string) (default: '')
5
+ - title_tag: (string) (default: 'h5')
6
+ - title_link: (link object) (default: {})
7
+ - title_attributes (drupal attrs)
10
8
  - subtitle (object) (default: {})
11
9
  format: {
12
10
  content: '',
@@ -51,7 +49,10 @@
51
49
  - card_links
52
50
  #}
53
51
 
54
- {% set _title = title|default({}) %}
52
+ {% set _title = title|default('') %}
53
+ {% set _title_tag = title_tag|default('h1') %}
54
+ {% set _title_link = title_link|default({}) %}
55
+ {% set _title_attributes = title_attributes ?: create_attribute() %}
55
56
  {% set _subtitle = subtitle|default({}) %}
56
57
  {% set _text = text|default({}) %}
57
58
  {% set _content = content|default('') %}
@@ -116,7 +117,7 @@
116
117
 
117
118
  {% set attributes = attributes.addClass(_classes) %}
118
119
 
119
- <div
120
+ <article
120
121
  {{ attributes }}
121
122
  >
122
123
  {% if _card_header is not empty %}
@@ -171,16 +172,18 @@
171
172
  <div class='{{ _horizontal_grid.right_col_classes }}'>
172
173
  {% endif %}
173
174
  <div class='{{ _body_classes }}'>
174
- {%- if _title is not empty -%}
175
- {% set _title_tag = _title.tag ?? 'h5' %}
176
- <{{ _title_tag }}
177
- {% set _title_attributes = title.attributes ?: create_attribute() %}
178
- {% set _title_attributes = _title_attributes.addClass("card-title") %}
179
- {{ _title_attributes }}
180
- >
181
- {{- title.content -}}
182
- </{{ _title_tag }}>
183
- {%- endif -%}
175
+ {% if _title is not empty %}
176
+ {% if _title_attributes.class is empty %}
177
+ {% set _title_attributes = _title_attributes.addClass('fs-5') %}
178
+ {% endif %}
179
+ {% set _title_attributes = _title_attributes.addClass('card-title') %}
180
+ {% include '@oe-bcl/bcl-heading/heading.html.twig' with {
181
+ title: _title,
182
+ title_tag: _title_tag,
183
+ title_link: _title_link,
184
+ attributes: _title_attributes,
185
+ } only %}
186
+ {% endif %}
184
187
  {%- if _subtitle is not empty -%}
185
188
  {% set _subtitle_tag = _subtitle.tag ?? 'h6' %}
186
189
  <{{ _subtitle_tag }}
@@ -270,6 +273,6 @@
270
273
  {{- _card_footer -}}
271
274
  </div>
272
275
  {% endif %}
273
- </div>
276
+ </article>
274
277
 
275
278
  {% endspaceless %}