@openeuropa/bcl-theme-default 0.19.0 → 0.20.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 (143) hide show
  1. package/bcl-builder.config.js +11 -4
  2. package/css/oe-bcl-default.css +571 -41
  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 -0
  7. package/icons/icons-flag.svg +1 -1
  8. package/js/oe-bcl-default.bundle.js.map +1 -1
  9. package/js/oe-bcl-default.bundle.min.js.map +1 -1
  10. package/js/oe-bcl-default.esm.js.map +1 -1
  11. package/js/oe-bcl-default.esm.min.js.map +1 -1
  12. package/js/oe-bcl-default.umd.js.map +1 -1
  13. package/js/oe-bcl-default.umd.min.js.map +1 -1
  14. package/logos/ec/{logo-ec--ar.svg → positive/logo-ec--ar.svg} +0 -0
  15. package/logos/ec/{logo-ec--bg.svg → positive/logo-ec--bg.svg} +0 -0
  16. package/logos/ec/{logo-ec--ca.svg → positive/logo-ec--ca.svg} +0 -0
  17. package/logos/ec/{logo-ec--cs.svg → positive/logo-ec--cs.svg} +0 -0
  18. package/logos/ec/{logo-ec--da.svg → positive/logo-ec--da.svg} +0 -0
  19. package/logos/ec/{logo-ec--de.svg → positive/logo-ec--de.svg} +0 -0
  20. package/logos/ec/{logo-ec--el.svg → positive/logo-ec--el.svg} +0 -0
  21. package/logos/ec/{logo-ec--en.svg → positive/logo-ec--en.svg} +0 -0
  22. package/logos/ec/{logo-ec--es.svg → positive/logo-ec--es.svg} +0 -0
  23. package/logos/ec/{logo-ec--et.svg → positive/logo-ec--et.svg} +0 -0
  24. package/logos/ec/{logo-ec--fi.svg → positive/logo-ec--fi.svg} +0 -0
  25. package/logos/ec/{logo-ec--fr.svg → positive/logo-ec--fr.svg} +0 -0
  26. package/logos/ec/{logo-ec--ga.svg → positive/logo-ec--ga.svg} +0 -0
  27. package/logos/ec/{logo-ec--hr.svg → positive/logo-ec--hr.svg} +0 -0
  28. package/logos/ec/{logo-ec--hu.svg → positive/logo-ec--hu.svg} +0 -0
  29. package/logos/ec/{logo-ec--is.svg → positive/logo-ec--is.svg} +0 -0
  30. package/logos/ec/{logo-ec--it.svg → positive/logo-ec--it.svg} +0 -0
  31. package/logos/ec/{logo-ec--lt.svg → positive/logo-ec--lt.svg} +0 -0
  32. package/logos/ec/{logo-ec--lv.svg → positive/logo-ec--lv.svg} +0 -0
  33. package/logos/ec/{logo-ec--mt.svg → positive/logo-ec--mt.svg} +0 -0
  34. package/logos/ec/{logo-ec--nl.svg → positive/logo-ec--nl.svg} +0 -0
  35. package/logos/ec/{logo-ec--no.svg → positive/logo-ec--no.svg} +0 -0
  36. package/logos/ec/{logo-ec--pl.svg → positive/logo-ec--pl.svg} +0 -0
  37. package/logos/ec/{logo-ec--pt.svg → positive/logo-ec--pt.svg} +0 -0
  38. package/logos/ec/{logo-ec--ro.svg → positive/logo-ec--ro.svg} +0 -0
  39. package/logos/ec/{logo-ec--sk.svg → positive/logo-ec--sk.svg} +0 -0
  40. package/logos/ec/{logo-ec--sl.svg → positive/logo-ec--sl.svg} +0 -0
  41. package/logos/ec/{logo-ec--sv.svg → positive/logo-ec--sv.svg} +0 -0
  42. package/logos/ec/{logo-ec--tr.svg → positive/logo-ec--tr.svg} +0 -0
  43. package/logos/eu/condensed-version/negative/logo-eu--ar.svg +18 -0
  44. package/logos/eu/condensed-version/negative/logo-eu--bg.svg +7 -0
  45. package/logos/eu/condensed-version/negative/logo-eu--ca.svg +7 -0
  46. package/logos/eu/condensed-version/negative/logo-eu--cs.svg +7 -0
  47. package/logos/eu/condensed-version/negative/logo-eu--da.svg +7 -0
  48. package/logos/eu/condensed-version/negative/logo-eu--de.svg +7 -0
  49. package/logos/eu/condensed-version/negative/logo-eu--el.svg +7 -0
  50. package/logos/eu/condensed-version/negative/logo-eu--en.svg +7 -0
  51. package/logos/eu/condensed-version/negative/logo-eu--es.svg +7 -0
  52. package/logos/eu/condensed-version/negative/logo-eu--et.svg +7 -0
  53. package/logos/eu/condensed-version/negative/logo-eu--fi.svg +7 -0
  54. package/logos/eu/condensed-version/negative/logo-eu--fr.svg +7 -0
  55. package/logos/eu/condensed-version/negative/logo-eu--ga.svg +7 -0
  56. package/logos/eu/condensed-version/negative/logo-eu--hr.svg +7 -0
  57. package/logos/eu/condensed-version/negative/logo-eu--hu.svg +7 -0
  58. package/logos/eu/condensed-version/negative/logo-eu--is.svg +8 -0
  59. package/logos/eu/condensed-version/negative/logo-eu--it.svg +7 -0
  60. package/logos/eu/condensed-version/negative/logo-eu--lt.svg +7 -0
  61. package/logos/eu/condensed-version/negative/logo-eu--lv.svg +7 -0
  62. package/logos/eu/condensed-version/negative/logo-eu--mt.svg +7 -0
  63. package/logos/eu/condensed-version/negative/logo-eu--nl.svg +7 -0
  64. package/logos/eu/condensed-version/negative/logo-eu--no.svg +7 -0
  65. package/logos/eu/condensed-version/negative/logo-eu--pl.svg +7 -0
  66. package/logos/eu/condensed-version/negative/logo-eu--pt.svg +7 -0
  67. package/logos/eu/condensed-version/negative/logo-eu--ro.svg +7 -0
  68. package/logos/eu/condensed-version/negative/logo-eu--sk.svg +7 -0
  69. package/logos/eu/condensed-version/negative/logo-eu--sl.svg +7 -0
  70. package/logos/eu/condensed-version/negative/logo-eu--sv.svg +7 -0
  71. package/logos/eu/condensed-version/negative/logo-eu--tr.svg +7 -0
  72. package/logos/eu/standard-version/negative/logo-eu--ar.svg +18 -0
  73. package/logos/eu/standard-version/negative/logo-eu--bg.svg +17 -0
  74. package/logos/eu/standard-version/negative/logo-eu--ca.svg +16 -0
  75. package/logos/eu/standard-version/negative/logo-eu--cs.svg +17 -0
  76. package/logos/eu/standard-version/negative/logo-eu--da.svg +23 -0
  77. package/logos/eu/standard-version/negative/logo-eu--de.svg +21 -0
  78. package/logos/eu/standard-version/negative/logo-eu--el.svg +19 -0
  79. package/logos/eu/standard-version/negative/logo-eu--en.svg +18 -0
  80. package/logos/eu/standard-version/negative/logo-eu--es.svg +17 -0
  81. package/logos/eu/standard-version/negative/logo-eu--et.svg +16 -0
  82. package/logos/eu/standard-version/negative/logo-eu--fi.svg +19 -0
  83. package/logos/eu/standard-version/negative/logo-eu--fr.svg +20 -0
  84. package/logos/eu/standard-version/negative/logo-eu--ga.svg +21 -0
  85. package/logos/eu/standard-version/negative/logo-eu--hr.svg +18 -0
  86. package/logos/eu/standard-version/negative/logo-eu--hu.svg +16 -0
  87. package/logos/eu/standard-version/negative/logo-eu--is.svg +20 -0
  88. package/logos/eu/standard-version/negative/logo-eu--it.svg +18 -0
  89. package/logos/eu/standard-version/negative/logo-eu--lt.svg +19 -0
  90. package/logos/eu/standard-version/negative/logo-eu--lv.svg +21 -0
  91. package/logos/eu/standard-version/negative/logo-eu--mt.svg +19 -0
  92. package/logos/eu/standard-version/negative/logo-eu--nl.svg +17 -0
  93. package/logos/eu/standard-version/negative/logo-eu--no.svg +20 -0
  94. package/logos/eu/standard-version/negative/logo-eu--pl.svg +19 -0
  95. package/logos/eu/standard-version/negative/logo-eu--pt.svg +18 -0
  96. package/logos/eu/standard-version/negative/logo-eu--ro.svg +21 -0
  97. package/logos/eu/standard-version/negative/logo-eu--sk.svg +17 -0
  98. package/logos/eu/standard-version/negative/logo-eu--sl.svg +18 -0
  99. package/logos/eu/standard-version/negative/logo-eu--sv.svg +22 -0
  100. package/logos/eu/standard-version/negative/logo-eu--tr.svg +18 -0
  101. package/package.json +14 -9
  102. package/src/icons/icons.js +337 -0
  103. package/src/scss/_badge.scss +5 -5
  104. package/src/scss/_banners.scss +4 -4
  105. package/src/scss/_circular-progress-bar.scss +120 -0
  106. package/src/scss/_header.scss +46 -45
  107. package/src/scss/_inpage-navigation.scss +6 -0
  108. package/src/scss/_language-list.scss +51 -0
  109. package/src/scss/_reset.scss +9 -0
  110. package/src/scss/base/_utilities.scss +25 -4
  111. package/src/scss/base/_variables.scss +10 -1
  112. package/src/scss/oe-bcl-default.scss +2 -0
  113. package/templates/bcl-alert/alert.html.twig +4 -4
  114. package/templates/bcl-badge/badge.html.twig +4 -4
  115. package/templates/bcl-breadcrumb/breadcrumb.html.twig +2 -2
  116. package/templates/bcl-card/card.html.twig +11 -2
  117. package/templates/bcl-card-layout/card-layout.html.twig +6 -1
  118. package/templates/bcl-content-banner/content-banner.html.twig +38 -20
  119. package/templates/bcl-description-list/description-list.html.twig +16 -8
  120. package/templates/bcl-fact-figures/fact-figures.html.twig +3 -3
  121. package/templates/bcl-file/file.html.twig +3 -3
  122. package/templates/bcl-footer/footer.html.twig +1 -1
  123. package/templates/bcl-header/header.html.twig +31 -15
  124. package/templates/bcl-language-list/language-list-grid.html.twig +68 -0
  125. package/templates/bcl-language-list/language-list-modal.html.twig +58 -0
  126. package/templates/bcl-language-list/language-list.html.twig +111 -0
  127. package/templates/bcl-language-switcher/language-switcher.html.twig +44 -0
  128. package/templates/bcl-link/link.html.twig +1 -1
  129. package/templates/bcl-links-block/links-block.html.twig +1 -1
  130. package/templates/bcl-listing/listing.html.twig +4 -3
  131. package/templates/bcl-modal/modal.html.twig +12 -1
  132. package/templates/bcl-navbar/navbar.html.twig +39 -28
  133. package/templates/bcl-page/page.html.twig +1 -1
  134. package/templates/bcl-project/project.html.twig +96 -44
  135. package/templates/bcl-project-status/project-status.html.twig +24 -5
  136. package/templates/bcl-select/select.html.twig +3 -0
  137. package/templates/bcl-subscription/subscription-modal.html.twig +24 -0
  138. package/templates/bcl-subscription/subscription.html.twig +10 -0
  139. package/templates/bcl-subscription-block/subscription-block.html.twig +36 -0
  140. package/templates/bcl-timeline/timeline.html.twig +3 -3
  141. package/templates/bcl-user/user-view-compact.html.twig +9 -2
  142. package/templates/bcl-user/user-view.html.twig +0 -10
  143. package/icons/bootstrap-icons.svg +0 -1
@@ -42,12 +42,12 @@
42
42
  &::before {
43
43
  display: block;
44
44
  width: 100%;
45
- padding-top: 25%;
45
+ padding-top: 20%;
46
46
  content: "";
47
47
  }
48
48
 
49
49
  .hero &::before {
50
- padding-top: 33.33%;
50
+ padding-top: 25%;
51
51
  }
52
52
  }
53
53
 
@@ -147,14 +147,14 @@
147
147
  &::before {
148
148
  display: block;
149
149
  width: 100%;
150
- padding-top: 25%;
150
+ padding-top: 20%;
151
151
  content: "";
152
152
  }
153
153
 
154
154
  &.hero {
155
155
  min-height: 380px;
156
156
  &::before {
157
- padding-top: 33.33%;
157
+ padding-top: 25%;
158
158
  }
159
159
  }
160
160
  }
@@ -0,0 +1,120 @@
1
+ //styling
2
+ $borderWidth: 12px;
3
+ $animationTime: 1s;
4
+ $size: 120px;
5
+
6
+ //Create how many steps
7
+ $howManySteps: 20;
8
+
9
+ .circular-progress {
10
+ width: $size;
11
+ height: $size;
12
+ line-height: $size;
13
+ background: none;
14
+ box-shadow: none;
15
+ position: relative;
16
+ &:after {
17
+ content: "";
18
+ width: 100%;
19
+ height: 100%;
20
+ border-radius: 50%;
21
+ border: $borderWidth solid $circular-progress-border-color;
22
+ position: absolute;
23
+ top: 0;
24
+ left: 0;
25
+ }
26
+ > span {
27
+ width: 50%;
28
+ height: 100%;
29
+ overflow: hidden;
30
+ position: absolute;
31
+ top: 0;
32
+ z-index: 1;
33
+ }
34
+ }
35
+
36
+ .circular-progress-bar {
37
+ width: 100%;
38
+ height: 100%;
39
+ background: none;
40
+ border-width: $borderWidth;
41
+ border-style: solid;
42
+ position: absolute;
43
+ top: 0;
44
+ border-color: $circular-progress-border-color-fill;
45
+ }
46
+
47
+ .circular-progress-left {
48
+ left: 0;
49
+ .circular-progress-bar {
50
+ left: 100%;
51
+ border-top-right-radius: ($size / 2);
52
+ border-bottom-right-radius: ($size / 2);
53
+ border-left: 0;
54
+ transform-origin: center left;
55
+ }
56
+ }
57
+
58
+ .circular-progress-right {
59
+ right: 0;
60
+ .circular-progress-bar {
61
+ left: -100%;
62
+ border-top-left-radius: ($size / 2);
63
+ border-bottom-left-radius: ($size / 2);
64
+ border-right: 0;
65
+ transform-origin: center right;
66
+ }
67
+ }
68
+
69
+ /* This for loop creates the necessary css animation names
70
+ Due to the split circle of progress-left and progress right, we must use the animations on each side.
71
+ */
72
+ @for $i from 1 through $howManySteps {
73
+ $stepName: ($i * (100 / $howManySteps));
74
+
75
+ //animation only the left side if below 50%
76
+ @if $i <= ($howManySteps / 2) {
77
+ .circular-progress[data-percentage="#{$stepName}"] {
78
+ .circular-progress-right .circular-progress-bar {
79
+ animation: loading-#{$i} $animationTime linear forwards;
80
+ }
81
+ .circular-progress-left .circular-progress-bar {
82
+ animation: 0;
83
+ }
84
+ }
85
+ }
86
+ //animation only the right side if above 50%
87
+ @if $i > ($howManySteps / 2) {
88
+ .circular-progress[data-percentage="#{$stepName}"] {
89
+ .circular-progress-right .circular-progress-bar {
90
+ // prettier-ignore
91
+ animation: loading-#{($howManySteps / 2)}
92
+ $animationTime
93
+ linear
94
+ forwards; //set the animation to longest animation
95
+ }
96
+ .circular-progress-left .circular-progress-bar {
97
+ // prettier-ignore
98
+ animation: loading-#{$i - ($howManySteps / 2)}
99
+ $animationTime
100
+ linear
101
+ forwards
102
+ $animationTime;
103
+ }
104
+ }
105
+ }
106
+ }
107
+
108
+ //animation
109
+ @for $i from 1 through ($howManySteps / 2) {
110
+ $degrees: (180 / ($howManySteps / 2));
111
+ $degrees: ($degrees * $i);
112
+ @keyframes loading-#{$i} {
113
+ 0% {
114
+ transform: rotate(0deg);
115
+ }
116
+ 100% {
117
+ transform: rotate(#{$degrees}deg);
118
+ }
119
+ }
120
+ }
@@ -220,50 +220,51 @@ $header-link-active-background: #003776 !default;
220
220
  }
221
221
  }
222
222
 
223
- // language list
224
- $language-background: $header-background !default;
225
- $language-color: #fff !default;
226
- $language-list-gap: map-get($spacers, 2) !default;
227
- $language-item-background: #fff !default;
228
- $language-item-color: $header-background !default;
229
- $language-item-background-hover: #ffd617 !default;
230
- $language-item-color-hover: $dark !default;
231
-
232
- .bcl-language .modal-content {
233
- color: $language-color;
234
- background-color: $language-background;
235
- }
236
-
237
- .bcl-language__list {
238
- display: grid;
239
- gap: $language-list-gap;
240
- margin-bottom: map-get($spacers, 4);
241
- }
242
-
243
- .bcl-language__title {
244
- margin-bottom: map-get($spacers, 4);
245
- }
246
-
247
- .bcl-language__item {
248
- padding: map-get($spacers, 2) $spacer;
249
- font-weight: $font-weight-bold;
250
- color: $language-item-color;
251
- text-decoration: none; //should be handled at link level
252
- background-color: $language-item-background;
253
-
254
- &:hover,
255
- &:focus {
256
- color: $language-item-color-hover;
257
- text-decoration: underline;
258
- background-color: $language-item-background-hover;
223
+ .bcl-language-list-modal {
224
+ .btn-close {
225
+ opacity: 1;
226
+ }
227
+ &.bcl-language-list-modal--ec,
228
+ &.bcl-language-list-modal--eu {
229
+ .modal-body {
230
+ padding-top: map-get($spacers, 2);
231
+ overflow: visible;
232
+ }
233
+ .modal-header {
234
+ border: 0;
235
+ padding: 0;
236
+ }
237
+ }
238
+ &.bcl-language-list-modal--eu {
239
+ .modal-body {
240
+ background: $white;
241
+ }
242
+ .modal-dialog {
243
+ background: $white;
244
+ }
245
+ h5 {
246
+ color: $eu-cta-color;
247
+ }
248
+ svg {
249
+ color: $eu-cta-color;
250
+ }
251
+ .btn-close {
252
+ filter: $btn-close-eu-filter;
253
+ }
254
+ }
255
+ &.bcl-language-list-modal--ec {
256
+ background: $eu-background-color;
257
+ .modal-content {
258
+ background: $eu-background-color;
259
+ }
260
+ h5 {
261
+ color: $white;
262
+ }
263
+ svg {
264
+ color: $white;
265
+ }
266
+ .btn-close {
267
+ filter: $btn-close-white-filter;
268
+ }
259
269
  }
260
- }
261
-
262
- .bcl-language .modal-body {
263
- padding-top: map-get($spacers, 5);
264
- padding-bottom: map-get($spacers, 5);
265
- }
266
-
267
- .bcl-language .btn-close {
268
- filter: $btn-close-white-filter;
269
270
  }
@@ -14,6 +14,12 @@
14
14
  .nav-link {
15
15
  padding: map-get($spacers, 2);
16
16
  margin-bottom: map-get($spacers, 2);
17
+ &:not(.active) {
18
+ &:hover {
19
+ text-decoration-line: underline;
20
+ text-decoration-color: currentColor;
21
+ }
22
+ }
17
23
  }
18
24
 
19
25
  ul {
@@ -0,0 +1,51 @@
1
+ .bcl-language-list {
2
+ .btn {
3
+ background: $white;
4
+ color: $primary;
5
+ border-color: $gray-400;
6
+ &:hover {
7
+ text-decoration: underline;
8
+ border-color: $eu-cta-color;
9
+ }
10
+ &.selected {
11
+ background: $secondary;
12
+ color: $white;
13
+ border-color: $secondary;
14
+ svg {
15
+ color: $white;
16
+ }
17
+ }
18
+ }
19
+ &.bcl-language-list--ec,
20
+ &.bcl-language-list--eu {
21
+ .btn {
22
+ color: $eu-cta-color;
23
+ font-weight: $font-weight-bold;
24
+ &.selected {
25
+ background: $eu-selected-background;
26
+ color: $black;
27
+ border-color: $eu-selected-background;
28
+ svg {
29
+ color: $black;
30
+ }
31
+ }
32
+ }
33
+ }
34
+ &.bcl-language-list--eu {
35
+ .btn {
36
+ border: 2px solid $eu-cta-color;
37
+ }
38
+ }
39
+ &.bcl-language-list--ec {
40
+ .main {
41
+ background: $eu-background-color;
42
+ h5 {
43
+ color: $white;
44
+ }
45
+ }
46
+ .btn {
47
+ border-radius: 0;
48
+ border-color: transparent;
49
+ }
50
+ }
51
+ }
@@ -3,3 +3,12 @@ body {
3
3
  // needed for full-width banner
4
4
  overflow-x: hidden;
5
5
  }
6
+
7
+ em.placeholder {
8
+ background-color: transparent;
9
+ cursor: auto;
10
+ min-height: 0;
11
+ vertical-align: baseline;
12
+ opacity: 1;
13
+ display: inline;
14
+ }
@@ -62,11 +62,28 @@ $utilities: map-merge(
62
62
  )
63
63
  );
64
64
 
65
- .text-underline-hover {
66
- text-decoration: none;
65
+ a {
66
+ text-underline-offset: 2px;
67
+
68
+ &:not(.text-underline-hover),
69
+ &:not(.standalone) {
70
+ text-decoration-color: rgba($primary, 0.3);
71
+ &:hover {
72
+ text-decoration-color: currentColor;
73
+ }
74
+ }
75
+
76
+ &.standalone,
77
+ &.text-underline-hover {
78
+ text-decoration: none;
79
+ &:hover {
80
+ text-decoration: underline;
81
+ }
82
+ }
67
83
  }
68
- .text-underline-hover:hover {
69
- text-decoration: underline;
84
+
85
+ svg {
86
+ fill: currentColor;
70
87
  }
71
88
 
72
89
  @include media-breakpoint-down(md) {
@@ -86,6 +103,10 @@ $utilities: map-merge(
86
103
  background-color: $gray-200;
87
104
  }
88
105
 
106
+ .bg-gray-400 {
107
+ background-color: $gray-400;
108
+ }
109
+
89
110
  .grid-3-9 {
90
111
  grid-template-columns: 25% 75%;
91
112
  grid-gap: map-get($gutters, "2-5");
@@ -44,9 +44,14 @@ $cyans: map-merge($cyans, $custom-cyans);
44
44
  // Custom color variables
45
45
  $ec-blue: #17458f;
46
46
 
47
+ $eu-background-color: #034da1;
48
+ $eu-cta-color: #0e47cb;
47
49
  $eu-blue: #1b4ac3;
48
50
  $eu-light-blue: #f3f6fc;
49
- $eu-footer-link: #0e47cb;
51
+ $eu-footer-link: $eu-cta-color;
52
+ $eu-selected-background: #ffcc00;
53
+ $btn-close-eu-filter: invert(20%) sepia(70%) saturate(2876%) hue-rotate(216deg)
54
+ brightness(94%) contrast(105%);
50
55
 
51
56
  // Spacers
52
57
  $spacers-extended: (
@@ -83,3 +88,7 @@ $form-select-height-md: 2.375rem !default;
83
88
 
84
89
  // Navbar
85
90
  $navbar-nav-link-padding-x: 0.75rem;
91
+
92
+ // Circular progress bar
93
+ $circular-progress-border-color: $gray-400;
94
+ $circular-progress-border-color-fill: $primary;
@@ -54,6 +54,7 @@
54
54
  // Custom styles
55
55
  @import "@openeuropa/bcl-theme-default/src/scss/button";
56
56
  @import "@openeuropa/bcl-theme-default/src/scss/collapse";
57
+ @import "@openeuropa/bcl-theme-default/src/scss/circular-progress-bar";
57
58
  @import "@openeuropa/bcl-theme-default/src/scss/reset";
58
59
  @import "@openeuropa/bcl-theme-default/src/scss/header";
59
60
  @import "@openeuropa/bcl-theme-default/src/scss/footer";
@@ -69,3 +70,4 @@
69
70
  @import "@openeuropa/bcl-theme-default/src/scss/banners";
70
71
  @import "@openeuropa/bcl-theme-default/src/scss/timeline";
71
72
  @import "@openeuropa/bcl-theme-default/src/scss/inpage-navigation";
73
+ @import "@openeuropa/bcl-theme-default/src/scss/language-list";
@@ -6,14 +6,14 @@
6
6
  - variant (string) (default: 'primary')
7
7
  - dismissible (boolean) (default: true)
8
8
  - animated_dismiss (boolean) (default: true)
9
- - icons_path (string) (default: '')
9
+ - icon_path (string) (default: '')
10
10
  - icon_name (string) (default: '')
11
11
  #}
12
12
 
13
13
  {% set _message = message|default('') %}
14
14
  {% set _variant = variant|default('primary') %}
15
15
  {% set _heading = heading|default('') %}
16
- {% set _icons_path = icons_path|default('') %}
16
+ {% set _icon_path = icon_path|default('') %}
17
17
  {% set _dismissible = dismissible ?? true %}
18
18
  {% set _animated_dismiss = animated_dismiss ?? true %}
19
19
  {% set _icon_name = icon_name|default('') %}
@@ -44,11 +44,11 @@
44
44
  {% set attributes = attributes.addClass(_classes).setAttribute('role', 'alert') %}
45
45
 
46
46
  <div {{ attributes }}>
47
- {% if _icons_path is not empty %}
47
+ {% if _icon_path is not empty %}
48
48
  {% include '@oe-bcl/bcl-icon/icon.html.twig' with {
49
49
  name: _icon_name ?: _icon_names[_variant],
50
50
  size: 's',
51
- path: _icons_path,
51
+ path: _icon_path,
52
52
  attributes: create_attribute().addClass(['flex-shrink-0 me-3 mt-1 align-self-start']),
53
53
  } only %}
54
54
  {% endif %}
@@ -9,7 +9,7 @@
9
9
  - assistive_text (string) (default: '')
10
10
  - rounded_pill (boolean) (default: false)
11
11
  - outline (boolean) (default: false)
12
- - icons_path (string) (default: '')
12
+ - icon_path (string) (default: '')
13
13
  #}
14
14
 
15
15
  {% set _rounded_pill = rounded_pill|default(false) %}
@@ -18,7 +18,7 @@
18
18
  {% set _label = label|default('') %}
19
19
  {% set _classes = ['badge'] %}
20
20
  {% set _url = url|default('') %}
21
- {% set _icons_path = icons_path|default('') %}
21
+ {% set _icon_path = icon_path|default('') %}
22
22
  {% set _title = title|default(_label) %}
23
23
  {% set _dismissible = dismissible|default(false) %}
24
24
  {% set _assistive_text = assistive_text|default('') %}
@@ -58,8 +58,8 @@
58
58
  {%- if _dismissible -%}
59
59
  <span class="icon--close" aria-hidden="true">
60
60
  {% include '@oe-bcl/bcl-icon/icon.html.twig' with {
61
- name: "x",
62
- path: _icons_path,
61
+ name: "x-lg",
62
+ path: _icon_path,
63
63
  } only %}
64
64
  </span>
65
65
  {%- endif -%}
@@ -6,7 +6,7 @@
6
6
 
7
7
  {% set _classes = 'breadcrumb' %}
8
8
  {% set _links = links|default([]) %}
9
- {% set _icons_path = icons_path|default('') %}
9
+ {% set _icon_path = icon_path|default('') %}
10
10
 
11
11
  {% if attributes is empty %}
12
12
  {% set attributes = create_attribute() %}
@@ -41,7 +41,7 @@
41
41
  icon_position: 'before',
42
42
  icon: {
43
43
  name: "arrow-left",
44
- path: _icons_path,
44
+ path: _icon_path,
45
45
  attributes: create_attribute().addClass(['d-md-none ms-0 me-2']),
46
46
  },
47
47
  }) %}
@@ -44,6 +44,10 @@
44
44
  - extra_classes_header (string) (default: '')
45
45
  - extra_classes_footer (string) (default: '')
46
46
  - badges (array of badge object) (default: [])
47
+
48
+ Blocks
49
+ - card_date
50
+ - card_badge
47
51
  #}
48
52
 
49
53
  {% set _title = title|default({}) %}
@@ -145,7 +149,9 @@
145
149
  <div class='{{ _horizontal_grid.left_col_classes }}'>
146
150
  {% endif %}
147
151
  {% if _date is not empty %}
148
- {% include '@oe-bcl/bcl-date-block/date-block.html.twig' with _date only %}
152
+ {% block card_date %}
153
+ {% include '@oe-bcl/bcl-date-block/date-block.html.twig' with _date only %}
154
+ {% endblock %}
149
155
  {% elseif _image is not empty and _image.position != "bottom" %}
150
156
  <img
151
157
  src="{{ _image.path }}"
@@ -210,7 +216,10 @@
210
216
  })
211
217
  %}
212
218
  {% endif %}
213
- {% include '@oe-bcl/bcl-badge/badge.html.twig' with _badge only %}
219
+ {% block card_badge %}
220
+ {% include '@oe-bcl/bcl-badge/badge.html.twig' with _badge only %}
221
+ {% endblock %}
222
+
214
223
  {% endfor %}
215
224
  </div>
216
225
  {%- endif -%}
@@ -14,6 +14,9 @@
14
14
  options: ['0', '1', '2', '3', '4', '5']
15
15
  - equal_height (boolean) (default: false)
16
16
  - cols_extra_classes (string) (default: '')
17
+
18
+ Blocks
19
+ - card_layout_card
17
20
  #}
18
21
 
19
22
  {% set _type = type|default('group') %}
@@ -69,7 +72,9 @@
69
72
  {% if _type == 'grid' or _type == 'masonry' %}
70
73
  <div class="{{ _cols_classes }}">
71
74
  {% endif %}
72
- {% include '@oe-bcl/bcl-card/card.html.twig' with _item only %}
75
+ {% block card_layout_card %}
76
+ {% include '@oe-bcl/bcl-card/card.html.twig' with _item only %}
77
+ {% endblock %}
73
78
  {% if _type == 'grid' or _type == 'masonry' %}
74
79
  </div>
75
80
  {% endif %}
@@ -45,34 +45,46 @@
45
45
  {% set attributes = create_attribute() %}
46
46
  {% endif %}
47
47
 
48
+ {% set _body_classes = 'pt-0 px-0 pb-0' %}
49
+ {% set _card_grid = 'col-12 col-md-10' %}
50
+
51
+ {% if _image is not empty %}
52
+ {% set _horizontal_classes = {
53
+ left_col_classes: 'col-md-4 col-lg-3',
54
+ right_col_classes: 'col-md-8 col-lg-9 col-xxl-8'
55
+ } %}
56
+ {% set _body_classes = 'pt-md-0 px-0 px-md-3 pb-0' %}
57
+
58
+ {% if _action_button is not empty %}
59
+ {% set _horizontal_classes = {
60
+ left_col_classes: 'col-md-4 col-lg-3',
61
+ right_col_classes: 'col-md-8 col-lg-9 col-xxl-9'
62
+ } %}
63
+ {% endif %}
64
+ {% else %}
65
+ {% set _horizontal_classes = {
66
+ right_col_classes: 'col-md-8 col-lg-9 col-xxl-8',
67
+ } %}
68
+
69
+ {% if _action_button is not empty %}
70
+ {% set _horizontal_classes = {
71
+ right_col_classes: 'col-12'
72
+ } %}
73
+ {% set _card_grid = 'col-12 col-md-8' %}
74
+ {% endif %}
75
+ {% endif %}
76
+
48
77
  {% set _card = {
49
78
  title: title|default({})|merge({
50
79
  tag: 'h2',
51
80
  attributes: create_attribute().addClass(['fw-bold']),
52
81
  }),
53
82
  horizontal: true,
54
- horizontal_grid: {
55
- right_col_classes: 'col-md-8 col-lg-9 col-xxl-8',
56
- },
83
+ horizontal_grid: _horizontal_classes,
57
84
  extra_classes_header: 'bg-transparent pt-0 pb-0 border-0',
58
- extra_classes_body: 'pt-0 px-0 pb-0',
85
+ extra_classes_body: _body_classes,
59
86
  } %}
60
87
 
61
- {% if _image is not empty %}
62
- {% set _card = _card|merge({
63
- horizontal_grid: _card.horizontal_grid|merge({
64
- left_col_classes: 'col-md-4 col-lg-3',
65
- }),
66
- extra_classes_body: 'pt-md-0 px-0 px-md-3 pb-0',
67
- }) %}
68
- {% else %}
69
- {% set _card = _card|merge({
70
- horizontal_grid: {
71
- right_col_classes: 'col-md-8 col-lg-9 col-xxl-8',
72
- },
73
- }) %}
74
- {% endif %}
75
-
76
88
  {% set _css_classes = _css_classes|merge([_modifiers[_background]]) %}
77
89
  {% set _attributes = attributes.addClass(['bg-transparent', 'border-0']) %}
78
90
 
@@ -83,10 +95,16 @@
83
95
  <div class="{{ _css_classes|join(' ') }}">
84
96
  <div class="container">
85
97
  <div class="row">
98
+ {% if _action_button is not empty %}
99
+ <div class="{{ _card_grid }}">
100
+ {% endif %}
86
101
  {% include '@oe-bcl/bcl-card/card.html.twig' with _card %}
102
+ {% if _action_button is not empty %}
103
+ </div>
104
+ {% endif %}
87
105
 
88
106
  {% if _action_button is not empty %}
89
- <div class="col-12 col-md-2 text-end">
107
+ <div class="col-12 col-md-2 text-end mt-3 mt-md-0">
90
108
  <div class="d-grid d-md-block">
91
109
  {% include '@oe-bcl/bcl-button/button.html.twig' with _action_button only %}
92
110
  </div>
@@ -63,10 +63,14 @@
63
63
  {% include '@oe-bcl/bcl-icon/icon.html.twig' with _term.icon|merge({
64
64
  attributes: create_attribute().addClass(_icon_classes)
65
65
  }) only %}
66
- <p class="mb-0 d-inline-block">{{ _term.label }}</p>
67
- {%- else -%}
68
- {{- _term.label -}}
69
- {%- endif -%}
66
+ <p class="mb-0 d-inline-block">{{ _term.label }}</p>
67
+ {%- elseif _term.color is not empty -%}
68
+ <div class="d-flex align-items-center">
69
+ <span class="p-2 me-2 d-inline-block rounded-1 {{ _term.color }}"></span>{{- _term.label -}}
70
+ </div>
71
+ {%- else -%}
72
+ {{- _term.label -}}
73
+ {%- endif -%}
70
74
  </dt>
71
75
  {% endfor %}
72
76
  {% if _variant == 'horizontal' %}
@@ -87,6 +91,10 @@
87
91
  attributes: create_attribute().addClass(_icon_classes)
88
92
  }) only -%}
89
93
  <p class="mb-0 d-inline-block">{{ _item.term.label }}</p>
94
+ {%- elseif _item.term.color is not empty -%}
95
+ <div class="d-flex align-items-center">
96
+ <span class="p-2 me-2 d-inline-block rounded-1 {{ _item.term.color }}"></span>{{- _item.term.label -}}
97
+ </div>
90
98
  {%- else -%}
91
99
  {{- _item.term.label -}}
92
100
  {%- endif -%}
@@ -96,10 +104,10 @@
96
104
  {% if _item.definition is not empty %}
97
105
  {% if _item.definition is iterable %}
98
106
  {% if _variant == 'horizontal' %}
99
- <div>
107
+ <dd>
100
108
  {% endif %}
101
109
  {% for _definition in _item.definition %}
102
- <dd>
110
+ {% if _variant == 'horizontal' %}<div>{% else %}<dd>{% endif %}
103
111
  {%- if _definition.button is defined -%}
104
112
  {% include '@oe-bcl/bcl-button/button.html.twig' with _definition.button only %}
105
113
  {%- elseif _definition.link is defined %}
@@ -115,10 +123,10 @@
115
123
  {{- _definition.label -}}
116
124
  {%- endif -%}
117
125
  {%- endif -%}
118
- </dd>
126
+ {% if _variant == 'horizontal' %}</div>{% else %}</dd>{% endif %}
119
127
  {% endfor %}
120
128
  {% if _variant == 'horizontal' %}
121
- </div>
129
+ </dd>
122
130
  {% endif %}
123
131
  {% else %}
124
132
  <dd>