@openeuropa/bcl-theme-default 0.18.0 → 0.21.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 (265) hide show
  1. package/bcl-builder.config.js +21 -4
  2. package/css/oe-bcl-default.css +1314 -422
  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/icons/icons-flag.svg +1 -1
  8. package/js/oe-bcl-default.bundle.js +357 -146
  9. package/js/oe-bcl-default.bundle.js.map +1 -1
  10. package/js/oe-bcl-default.bundle.min.js +1 -1
  11. package/js/oe-bcl-default.bundle.min.js.map +1 -1
  12. package/js/oe-bcl-default.esm.js +236 -75
  13. package/js/oe-bcl-default.esm.js.map +1 -1
  14. package/js/oe-bcl-default.esm.min.js +1 -1
  15. package/js/oe-bcl-default.esm.min.js.map +1 -1
  16. package/js/oe-bcl-default.umd.js +357 -146
  17. package/js/oe-bcl-default.umd.js.map +1 -1
  18. package/js/oe-bcl-default.umd.min.js +1 -1
  19. package/js/oe-bcl-default.umd.min.js.map +1 -1
  20. package/logos/ec/logo-ec--mute.svg +52 -0
  21. package/logos/ec/negative/logo-ec--ar.svg +83 -0
  22. package/logos/ec/negative/logo-ec--bg.svg +59 -0
  23. package/logos/ec/negative/logo-ec--ca.svg +88 -0
  24. package/logos/ec/negative/logo-ec--cs.svg +86 -0
  25. package/logos/ec/negative/logo-ec--da.svg +91 -0
  26. package/logos/ec/negative/logo-ec--de.svg +93 -0
  27. package/logos/ec/negative/logo-ec--el.svg +89 -0
  28. package/logos/ec/negative/logo-ec--en.svg +90 -0
  29. package/logos/ec/negative/logo-ec--es.svg +87 -0
  30. package/logos/ec/negative/logo-ec--et.svg +87 -0
  31. package/logos/ec/negative/logo-ec--fi.svg +88 -0
  32. package/logos/ec/negative/logo-ec--fr.svg +92 -0
  33. package/logos/ec/negative/logo-ec--ga.svg +90 -0
  34. package/logos/ec/negative/logo-ec--hr.svg +88 -0
  35. package/logos/ec/negative/logo-ec--hu.svg +58 -0
  36. package/logos/ec/negative/logo-ec--is.svg +105 -0
  37. package/logos/ec/negative/logo-ec--it.svg +95 -0
  38. package/logos/ec/negative/logo-ec--lt.svg +87 -0
  39. package/logos/ec/negative/logo-ec--lv.svg +87 -0
  40. package/logos/ec/negative/logo-ec--mt.svg +98 -0
  41. package/logos/ec/negative/logo-ec--nl.svg +89 -0
  42. package/logos/ec/negative/logo-ec--no.svg +90 -0
  43. package/logos/ec/negative/logo-ec--pl.svg +89 -0
  44. package/logos/ec/negative/logo-ec--pt.svg +58 -0
  45. package/logos/ec/negative/logo-ec--ro.svg +94 -0
  46. package/logos/ec/negative/logo-ec--sk.svg +87 -0
  47. package/logos/ec/negative/logo-ec--sl.svg +88 -0
  48. package/logos/ec/negative/logo-ec--sv.svg +94 -0
  49. package/logos/ec/negative/logo-ec--tr.svg +87 -0
  50. package/logos/ec/positive/logo-ec--ar.svg +82 -0
  51. package/logos/ec/positive/logo-ec--bg.svg +233 -0
  52. package/logos/ec/positive/logo-ec--ca.svg +87 -0
  53. package/logos/ec/positive/logo-ec--cs.svg +207 -0
  54. package/logos/ec/positive/logo-ec--da.svg +235 -0
  55. package/logos/ec/positive/logo-ec--de.svg +243 -0
  56. package/logos/ec/positive/logo-ec--el.svg +204 -0
  57. package/logos/ec/positive/logo-ec--en.svg +233 -0
  58. package/logos/ec/positive/logo-ec--es.svg +210 -0
  59. package/logos/ec/positive/logo-ec--et.svg +207 -0
  60. package/logos/ec/positive/logo-ec--fi.svg +219 -0
  61. package/logos/ec/positive/logo-ec--fr.svg +1 -0
  62. package/logos/ec/positive/logo-ec--ga.svg +221 -0
  63. package/logos/ec/positive/logo-ec--hr.svg +216 -0
  64. package/logos/ec/positive/logo-ec--hu.svg +218 -0
  65. package/logos/ec/positive/logo-ec--is.svg +105 -0
  66. package/logos/ec/positive/logo-ec--it.svg +241 -0
  67. package/logos/ec/positive/logo-ec--lt.svg +203 -0
  68. package/logos/ec/positive/logo-ec--lv.svg +212 -0
  69. package/logos/ec/positive/logo-ec--mt.svg +239 -0
  70. package/logos/ec/positive/logo-ec--nl.svg +231 -0
  71. package/logos/ec/positive/logo-ec--no.svg +89 -0
  72. package/logos/ec/positive/logo-ec--pl.svg +225 -0
  73. package/logos/ec/positive/logo-ec--pt.svg +228 -0
  74. package/logos/ec/positive/logo-ec--ro.svg +225 -0
  75. package/logos/ec/positive/logo-ec--sk.svg +217 -0
  76. package/logos/ec/positive/logo-ec--sl.svg +216 -0
  77. package/logos/ec/positive/logo-ec--sv.svg +254 -0
  78. package/logos/ec/positive/logo-ec--tr.svg +87 -0
  79. package/logos/eu/condensed-version/negative/logo-eu--ar.svg +18 -0
  80. package/logos/eu/condensed-version/negative/logo-eu--bg.svg +7 -0
  81. package/logos/eu/condensed-version/negative/logo-eu--ca.svg +7 -0
  82. package/logos/eu/condensed-version/negative/logo-eu--cs.svg +7 -0
  83. package/logos/eu/condensed-version/negative/logo-eu--da.svg +7 -0
  84. package/logos/eu/condensed-version/negative/logo-eu--de.svg +7 -0
  85. package/logos/eu/condensed-version/negative/logo-eu--el.svg +7 -0
  86. package/logos/eu/condensed-version/negative/logo-eu--en.svg +7 -0
  87. package/logos/eu/condensed-version/negative/logo-eu--es.svg +7 -0
  88. package/logos/eu/condensed-version/negative/logo-eu--et.svg +7 -0
  89. package/logos/eu/condensed-version/negative/logo-eu--fi.svg +7 -0
  90. package/logos/eu/condensed-version/negative/logo-eu--fr.svg +7 -0
  91. package/logos/eu/condensed-version/negative/logo-eu--ga.svg +7 -0
  92. package/logos/eu/condensed-version/negative/logo-eu--hr.svg +7 -0
  93. package/logos/eu/condensed-version/negative/logo-eu--hu.svg +7 -0
  94. package/logos/eu/condensed-version/negative/logo-eu--is.svg +8 -0
  95. package/logos/eu/condensed-version/negative/logo-eu--it.svg +7 -0
  96. package/logos/eu/condensed-version/negative/logo-eu--lt.svg +7 -0
  97. package/logos/eu/condensed-version/negative/logo-eu--lv.svg +7 -0
  98. package/logos/eu/condensed-version/negative/logo-eu--mt.svg +7 -0
  99. package/logos/eu/condensed-version/negative/logo-eu--nl.svg +7 -0
  100. package/logos/eu/condensed-version/negative/logo-eu--no.svg +7 -0
  101. package/logos/eu/condensed-version/negative/logo-eu--pl.svg +7 -0
  102. package/logos/eu/condensed-version/negative/logo-eu--pt.svg +7 -0
  103. package/logos/eu/condensed-version/negative/logo-eu--ro.svg +7 -0
  104. package/logos/eu/condensed-version/negative/logo-eu--sk.svg +7 -0
  105. package/logos/eu/condensed-version/negative/logo-eu--sl.svg +7 -0
  106. package/logos/eu/condensed-version/negative/logo-eu--sv.svg +7 -0
  107. package/logos/eu/condensed-version/negative/logo-eu--tr.svg +7 -0
  108. package/logos/eu/condensed-version/positive/logo-eu--ar.svg +29 -0
  109. package/logos/eu/condensed-version/positive/logo-eu--bg.svg +20 -0
  110. package/logos/eu/condensed-version/positive/logo-eu--ca.svg +16 -0
  111. package/logos/eu/condensed-version/positive/logo-eu--cs.svg +20 -0
  112. package/logos/eu/condensed-version/positive/logo-eu--da.svg +20 -0
  113. package/logos/eu/condensed-version/positive/logo-eu--de.svg +20 -0
  114. package/logos/eu/condensed-version/positive/logo-eu--el.svg +20 -0
  115. package/logos/eu/condensed-version/positive/logo-eu--en.svg +20 -0
  116. package/logos/eu/condensed-version/positive/logo-eu--es.svg +20 -0
  117. package/logos/eu/condensed-version/positive/logo-eu--et.svg +20 -0
  118. package/logos/eu/condensed-version/positive/logo-eu--fi.svg +20 -0
  119. package/logos/eu/condensed-version/positive/logo-eu--fr.svg +20 -0
  120. package/logos/eu/condensed-version/positive/logo-eu--ga.svg +20 -0
  121. package/logos/eu/condensed-version/positive/logo-eu--hr.svg +20 -0
  122. package/logos/eu/condensed-version/positive/logo-eu--hu.svg +20 -0
  123. package/logos/eu/condensed-version/positive/logo-eu--is.svg +17 -0
  124. package/logos/eu/condensed-version/positive/logo-eu--it.svg +20 -0
  125. package/logos/eu/condensed-version/positive/logo-eu--lt.svg +20 -0
  126. package/logos/eu/condensed-version/positive/logo-eu--lv.svg +20 -0
  127. package/logos/eu/condensed-version/positive/logo-eu--mt.svg +20 -0
  128. package/logos/eu/condensed-version/positive/logo-eu--nl.svg +20 -0
  129. package/logos/eu/condensed-version/positive/logo-eu--no.svg +16 -0
  130. package/logos/eu/condensed-version/positive/logo-eu--pl.svg +20 -0
  131. package/logos/eu/condensed-version/positive/logo-eu--pt.svg +20 -0
  132. package/logos/eu/condensed-version/positive/logo-eu--ro.svg +20 -0
  133. package/logos/eu/condensed-version/positive/logo-eu--sk.svg +20 -0
  134. package/logos/eu/condensed-version/positive/logo-eu--sl.svg +20 -0
  135. package/logos/eu/condensed-version/positive/logo-eu--sv.svg +20 -0
  136. package/logos/eu/condensed-version/positive/logo-eu--tr.svg +16 -0
  137. package/logos/eu/logo-eu--mute.svg +10 -0
  138. package/logos/eu/standard-version/negative/logo-eu--ar.svg +18 -0
  139. package/logos/eu/standard-version/negative/logo-eu--bg.svg +17 -0
  140. package/logos/eu/standard-version/negative/logo-eu--ca.svg +16 -0
  141. package/logos/eu/standard-version/negative/logo-eu--cs.svg +17 -0
  142. package/logos/eu/standard-version/negative/logo-eu--da.svg +23 -0
  143. package/logos/eu/standard-version/negative/logo-eu--de.svg +21 -0
  144. package/logos/eu/standard-version/negative/logo-eu--el.svg +19 -0
  145. package/logos/eu/standard-version/negative/logo-eu--en.svg +18 -0
  146. package/logos/eu/standard-version/negative/logo-eu--es.svg +17 -0
  147. package/logos/eu/standard-version/negative/logo-eu--et.svg +16 -0
  148. package/logos/eu/standard-version/negative/logo-eu--fi.svg +19 -0
  149. package/logos/eu/standard-version/negative/logo-eu--fr.svg +20 -0
  150. package/logos/eu/standard-version/negative/logo-eu--ga.svg +21 -0
  151. package/logos/eu/standard-version/negative/logo-eu--hr.svg +18 -0
  152. package/logos/eu/standard-version/negative/logo-eu--hu.svg +16 -0
  153. package/logos/eu/standard-version/negative/logo-eu--is.svg +20 -0
  154. package/logos/eu/standard-version/negative/logo-eu--it.svg +18 -0
  155. package/logos/eu/standard-version/negative/logo-eu--lt.svg +19 -0
  156. package/logos/eu/standard-version/negative/logo-eu--lv.svg +21 -0
  157. package/logos/eu/standard-version/negative/logo-eu--mt.svg +19 -0
  158. package/logos/eu/standard-version/negative/logo-eu--nl.svg +17 -0
  159. package/logos/eu/standard-version/negative/logo-eu--no.svg +20 -0
  160. package/logos/eu/standard-version/negative/logo-eu--pl.svg +19 -0
  161. package/logos/eu/standard-version/negative/logo-eu--pt.svg +18 -0
  162. package/logos/eu/standard-version/negative/logo-eu--ro.svg +21 -0
  163. package/logos/eu/standard-version/negative/logo-eu--sk.svg +17 -0
  164. package/logos/eu/standard-version/negative/logo-eu--sl.svg +18 -0
  165. package/logos/eu/standard-version/negative/logo-eu--sv.svg +22 -0
  166. package/logos/eu/standard-version/negative/logo-eu--tr.svg +18 -0
  167. package/logos/eu/standard-version/positive/logo-eu--ar.svg +27 -0
  168. package/logos/eu/standard-version/positive/logo-eu--bg.svg +34 -0
  169. package/logos/eu/standard-version/positive/logo-eu--ca.svg +27 -0
  170. package/logos/eu/standard-version/positive/logo-eu--cs.svg +32 -0
  171. package/logos/eu/standard-version/positive/logo-eu--da.svg +38 -0
  172. package/logos/eu/standard-version/positive/logo-eu--de.svg +36 -0
  173. package/logos/eu/standard-version/positive/logo-eu--el.svg +34 -0
  174. package/logos/eu/standard-version/positive/logo-eu--en.svg +33 -0
  175. package/logos/eu/standard-version/positive/logo-eu--es.svg +32 -0
  176. package/logos/eu/standard-version/positive/logo-eu--et.svg +31 -0
  177. package/logos/eu/standard-version/positive/logo-eu--fi.svg +34 -0
  178. package/logos/eu/standard-version/positive/logo-eu--fr.svg +35 -0
  179. package/logos/eu/standard-version/positive/logo-eu--ga.svg +36 -0
  180. package/logos/eu/standard-version/positive/logo-eu--hr.svg +33 -0
  181. package/logos/eu/standard-version/positive/logo-eu--hu.svg +31 -0
  182. package/logos/eu/standard-version/positive/logo-eu--is.svg +31 -0
  183. package/logos/eu/standard-version/positive/logo-eu--it.svg +33 -0
  184. package/logos/eu/standard-version/positive/logo-eu--lt.svg +34 -0
  185. package/logos/eu/standard-version/positive/logo-eu--lv.svg +36 -0
  186. package/logos/eu/standard-version/positive/logo-eu--mt.svg +34 -0
  187. package/logos/eu/standard-version/positive/logo-eu--nl.svg +32 -0
  188. package/logos/eu/standard-version/positive/logo-eu--no.svg +31 -0
  189. package/logos/eu/standard-version/positive/logo-eu--pl.svg +34 -0
  190. package/logos/eu/standard-version/positive/logo-eu--pt.svg +33 -0
  191. package/logos/eu/standard-version/positive/logo-eu--ro.svg +36 -0
  192. package/logos/eu/standard-version/positive/logo-eu--sk.svg +32 -0
  193. package/logos/eu/standard-version/positive/logo-eu--sl.svg +33 -0
  194. package/logos/eu/standard-version/positive/logo-eu--sv.svg +37 -0
  195. package/logos/eu/standard-version/positive/logo-eu--tr.svg +29 -0
  196. package/package.json +15 -8
  197. package/src/icons/icons.js +356 -0
  198. package/src/js/gallery/gallery.js +168 -0
  199. package/src/js/index.esm.js +2 -0
  200. package/src/js/index.umd.js +2 -0
  201. package/src/scss/_badge.scss +5 -5
  202. package/src/scss/_banners.scss +4 -4
  203. package/src/scss/_bcl-offcanvas.scss +7 -0
  204. package/src/scss/_breadcrumb.scss +1 -0
  205. package/src/scss/_button.scss +6 -0
  206. package/src/scss/_carousel.scss +85 -0
  207. package/src/scss/_circular-progress-bar.scss +122 -0
  208. package/src/scss/_gallery.scss +262 -0
  209. package/src/scss/_header.scss +46 -45
  210. package/src/scss/_icon.scss +2 -5
  211. package/src/scss/_inpage-navigation.scss +10 -0
  212. package/src/scss/_language-list.scss +51 -0
  213. package/src/scss/_pagination.scss +8 -0
  214. package/src/scss/_reset.scss +9 -0
  215. package/src/scss/_search-form.scss +4 -2
  216. package/src/scss/base/_colors.scss +12 -0
  217. package/src/scss/{_utilities.scss → base/_utilities.scss} +40 -4
  218. package/src/scss/{_variables.scss → base/_variables.scss} +10 -2
  219. package/src/scss/oe-bcl-default.scss +11 -2
  220. package/templates/bcl-accordion/accordion.html.twig +7 -2
  221. package/templates/bcl-alert/alert.html.twig +5 -5
  222. package/templates/bcl-badge/badge.html.twig +5 -5
  223. package/templates/bcl-base-templates/content-type.html.twig +14 -0
  224. package/templates/bcl-base-templates/listing-page.html.twig +13 -13
  225. package/templates/bcl-blockquote/blockquote.html.twig +18 -3
  226. package/templates/bcl-breadcrumb/breadcrumb.html.twig +2 -2
  227. package/templates/bcl-card/card.html.twig +50 -20
  228. package/templates/bcl-card-layout/card-layout.html.twig +6 -1
  229. package/templates/bcl-carousel/carousel.html.twig +26 -5
  230. package/templates/bcl-contact-form/contact-form.html.twig +5 -0
  231. package/templates/bcl-content-banner/content-banner.html.twig +39 -34
  232. package/templates/bcl-date-block/date-block.html.twig +29 -10
  233. package/templates/bcl-description-list/description-list.html.twig +39 -13
  234. package/templates/bcl-event/event.html.twig +5 -22
  235. package/templates/bcl-fact-figures/fact-figures.html.twig +3 -3
  236. package/templates/bcl-featured-media/featured-media.html.twig +3 -1
  237. package/templates/bcl-file/file.html.twig +6 -5
  238. package/templates/bcl-footer/footer.html.twig +3 -1
  239. package/templates/bcl-form/form.html.twig +26 -0
  240. package/templates/bcl-gallery/gallery.html.twig +203 -0
  241. package/templates/bcl-header/header.html.twig +31 -15
  242. package/templates/bcl-language-list/language-list-grid.html.twig +68 -0
  243. package/templates/bcl-language-list/language-list-modal.html.twig +58 -0
  244. package/templates/bcl-language-list/language-list.html.twig +111 -0
  245. package/templates/bcl-language-switcher/language-switcher.html.twig +44 -0
  246. package/templates/bcl-link/link.html.twig +1 -1
  247. package/templates/bcl-links-block/links-block.html.twig +2 -2
  248. package/templates/bcl-listing/listing.html.twig +11 -4
  249. package/templates/bcl-modal/modal.html.twig +12 -1
  250. package/templates/bcl-navbar/navbar.html.twig +39 -28
  251. package/templates/bcl-page/page.html.twig +1 -1
  252. package/templates/bcl-pagination/pagination.html.twig +123 -9
  253. package/templates/bcl-person/person.html.twig +44 -0
  254. package/templates/bcl-progress/progress.html.twig +5 -1
  255. package/templates/bcl-project/project.html.twig +112 -0
  256. package/templates/bcl-project-status/project-status.html.twig +128 -0
  257. package/templates/bcl-recent-activities/recent-activities.html.twig +1 -1
  258. package/templates/bcl-select/select.html.twig +13 -3
  259. package/templates/bcl-subscription/subscription-modal.html.twig +24 -0
  260. package/templates/bcl-subscription/subscription.html.twig +10 -0
  261. package/templates/bcl-subscription-block/subscription-block.html.twig +36 -0
  262. package/templates/bcl-timeline/timeline.html.twig +3 -3
  263. package/templates/bcl-user/user-view-compact.html.twig +9 -2
  264. package/templates/bcl-user/user-view.html.twig +0 -10
  265. package/icons/bootstrap-icons.svg +0 -1
@@ -24,6 +24,7 @@ $utilities: map-merge(
24
24
  map-get(map-get($utilities, "max-width"), "values"),
25
25
  (
26
26
  date: 7.5rem,
27
+ col-date: calc(7.5rem + var(--#{$variable-prefix}gutter-x)),
27
28
  "listing-img": 10rem,
28
29
  )
29
30
  ),
@@ -45,14 +46,45 @@ $utilities: map-merge(
45
46
  responsive: true,
46
47
  )
47
48
  ),
49
+ // Create medium font weight class
50
+ "font-weight":
51
+ map-merge(
52
+ map-get($utilities, "font-weight"),
53
+ (
54
+ values:
55
+ map-merge(
56
+ map-get(map-get($utilities, "font-weight"), "values"),
57
+ (
58
+ medium: 500,
59
+ )
60
+ ),
61
+ )
62
+ ),
48
63
  )
49
64
  );
50
65
 
51
- .text-underline-hover {
52
- text-decoration: none;
66
+ a {
67
+ text-underline-offset: 2px;
68
+
69
+ &:not(.text-underline-hover),
70
+ &:not(.standalone) {
71
+ text-decoration-color: rgba($primary, 0.3);
72
+ &:hover {
73
+ text-decoration-color: currentColor;
74
+ }
75
+ }
76
+
77
+ &.standalone,
78
+ &.text-underline-hover {
79
+ text-decoration: none;
80
+ &:hover {
81
+ text-decoration: underline;
82
+ }
83
+ }
53
84
  }
54
- .text-underline-hover:hover {
55
- text-decoration: underline;
85
+
86
+ svg {
87
+ fill: currentColor;
56
88
  }
57
89
 
58
90
  @include media-breakpoint-down(md) {
@@ -72,6 +104,10 @@ $utilities: map-merge(
72
104
  background-color: $gray-200;
73
105
  }
74
106
 
107
+ .bg-gray-400 {
108
+ background-color: $gray-400;
109
+ }
110
+
75
111
  .grid-3-9 {
76
112
  grid-template-columns: 25% 75%;
77
113
  grid-gap: map-get($gutters, "2-5");
@@ -2,7 +2,6 @@ $enable-negative-margins: true;
2
2
  $negative-spacers: negativify-map($spacers);
3
3
 
4
4
  // Colors variables
5
- $light: #f0f0f0;
6
5
  $lighter: $gray-100;
7
6
  $date: #1698af;
8
7
  $blue-50: tint-color($blue, 90%);
@@ -45,9 +44,14 @@ $cyans: map-merge($cyans, $custom-cyans);
45
44
  // Custom color variables
46
45
  $ec-blue: #17458f;
47
46
 
47
+ $eu-background-color: #034da1;
48
+ $eu-cta-color: #0e47cb;
48
49
  $eu-blue: #1b4ac3;
49
50
  $eu-light-blue: #f3f6fc;
50
- $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%);
51
55
 
52
56
  // Spacers
53
57
  $spacers-extended: (
@@ -84,3 +88,7 @@ $form-select-height-md: 2.375rem !default;
84
88
 
85
89
  // Navbar
86
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;
@@ -1,10 +1,13 @@
1
+ // Base theme colors
2
+ @import "@openeuropa/bcl-theme-default/src/scss/base/colors";
3
+
1
4
  // Configuration
2
5
  @import "@openeuropa/bcl-bootstrap/scss/functions";
3
6
  @import "@openeuropa/bcl-bootstrap/scss/variables";
4
7
  @import "@openeuropa/bcl-bootstrap/scss/mixins";
5
8
 
6
9
  // Custom variables
7
- @import "@openeuropa/bcl-theme-default/src/scss/variables";
10
+ @import "@openeuropa/bcl-theme-default/src/scss/base/variables";
8
11
 
9
12
  @import "@openeuropa/bcl-bootstrap/scss/utilities";
10
13
 
@@ -43,13 +46,15 @@
43
46
 
44
47
  // Helpers
45
48
  @import "@openeuropa/bcl-bootstrap/scss/helpers";
46
- @import "@openeuropa/bcl-theme-default/src/scss/utilities";
49
+ @import "@openeuropa/bcl-theme-default/src/scss/base/utilities";
47
50
 
48
51
  // Utilities
49
52
  @import "@openeuropa/bcl-bootstrap/scss/utilities/api";
50
53
 
51
54
  // Custom styles
55
+ @import "@openeuropa/bcl-theme-default/src/scss/button";
52
56
  @import "@openeuropa/bcl-theme-default/src/scss/collapse";
57
+ @import "@openeuropa/bcl-theme-default/src/scss/circular-progress-bar";
53
58
  @import "@openeuropa/bcl-theme-default/src/scss/reset";
54
59
  @import "@openeuropa/bcl-theme-default/src/scss/header";
55
60
  @import "@openeuropa/bcl-theme-default/src/scss/footer";
@@ -65,3 +70,7 @@
65
70
  @import "@openeuropa/bcl-theme-default/src/scss/banners";
66
71
  @import "@openeuropa/bcl-theme-default/src/scss/timeline";
67
72
  @import "@openeuropa/bcl-theme-default/src/scss/inpage-navigation";
73
+ @import "@openeuropa/bcl-theme-default/src/scss/language-list";
74
+ @import "@openeuropa/bcl-theme-default/src/scss/carousel";
75
+ @import "@openeuropa/bcl-theme-default/src/scss/gallery";
76
+ @import "@openeuropa/bcl-theme-default/src/scss/pagination";
@@ -7,6 +7,7 @@
7
7
  - items (array) (default: []): format: [
8
8
  {
9
9
  title: (string),
10
+ title_tag: (string),
10
11
  content: (block),
11
12
  stay_open (boolean) (default: false) stay open after another selected
12
13
  },
@@ -42,7 +43,11 @@
42
43
  {% set _button_classes = _button_classes|merge(['collapsed']) %}
43
44
  {% endif %}
44
45
  <div class="accordion-item">
45
- <h2 class="accordion-header" id="heading-{{ _id }}-{{ loop.index }}">
46
+ {%- set _item_title_tag = _item.title_tag|default('h2') %}
47
+ <{{ _item_title_tag }}
48
+ class="accordion-header"
49
+ id="heading-{{ _id }}-{{ loop.index }}"
50
+ >
46
51
  {% set button_attributes = create_attribute()
47
52
  .addClass(_button_classes)
48
53
  .setAttribute('data-bs-toggle', 'collapse')
@@ -56,7 +61,7 @@
56
61
  clean_class: true,
57
62
  attributes: button_attributes
58
63
  } only %}
59
- </h2>
64
+ </{{ _item_title_tag }}>
60
65
  <div
61
66
  id="collapse-{{ _id }}-{{ loop.index }}"
62
67
  class="accordion-collapse collapse{{ _open_item ? ' show' }}"
@@ -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,15 +44,15 @@
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 %}
55
- <div class="alert-content">
55
+ <div class="alert-content flex-grow-1">
56
56
  {%- if _heading is not empty -%}
57
57
  <h4 class="alert-heading">{{ _heading }}</h4>
58
58
  {%- 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('') %}
@@ -33,7 +33,7 @@
33
33
  {% set _classes = _classes|merge([ 'bg-' ~ _background]) %}
34
34
  {% endif %}
35
35
 
36
- {% if _background in ['light', 'warning', 'info'] %}
36
+ {% if _background in ['light', 'warning'] %}
37
37
  {% set _classes = _classes|merge(['text-dark']) %}
38
38
  {% endif %}
39
39
 
@@ -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 -%}
@@ -21,6 +21,7 @@
21
21
  - feedback
22
22
  - share
23
23
  - related
24
+ - messages_area
24
25
  #}
25
26
 
26
27
  {% set _with_header = header|default(false) %}
@@ -70,6 +71,19 @@
70
71
  {% endif %}
71
72
 
72
73
  <main {{ attributes }}>
74
+ {% if messages is defined and messages is not empty %}
75
+ {% block messages_area %}
76
+ <div class="container">
77
+ {% for message in messages %}
78
+ {% set message_attributes = create_attribute().addClass(['mt-lg-5', 'mt-2']) %}
79
+ {% include '@oe-bcl/bcl-alert/alert.html.twig' with message|merge({
80
+ attributes: message_attributes,
81
+ }) only %}
82
+ {% endfor %}
83
+ </div>
84
+ {% endblock %}
85
+ {% endif %}
86
+
73
87
  {% if _with_banner %}
74
88
  {% block banner %}
75
89
  {% include '@oe-bcl/bcl-content-banner/content-banner.html.twig' with banner only %}
@@ -17,32 +17,32 @@
17
17
  {% block content_top %}
18
18
  {% include '@oe-bcl/bcl-button/button.html.twig' with filter_button only %}
19
19
  <div class="row">
20
- <div class="col-md-6 col-lg-8">
21
- <h4>
20
+ <div class="col-md-6 col-lg-8 align-self-center">
21
+ <h4 class="mb-0">
22
22
  <span class="text-capitalize">
23
23
  {{- _page_title -}}
24
24
  </span>
25
25
  ({{ listing.items.length }})
26
26
  </h4>
27
27
  </div>
28
- <div class="col-md-12 order-md-2 mt-3 mt-md-1">
29
- {% if badges is not empty and badges is iterable %}
30
- {% for badge in badges %}
31
- {% include '@oe-bcl/bcl-badge/badge.html.twig' with badge|merge({
32
- attributes: create_attribute().addClass(["mb-2", "me-2"])
33
- }) only %}
34
- {% endfor %}
35
- {% endif %}
36
- </div>
28
+ {% if badges is not empty and badges is iterable %}
29
+ <div class="col-md-12 order-md-2 mt-3">
30
+ {% for badge in badges %}
31
+ {% include '@oe-bcl/bcl-badge/badge.html.twig' with badge|merge({
32
+ attributes: create_attribute().addClass(["mb-2", "me-2"])
33
+ }) only %}
34
+ {% endfor %}
35
+ </div>
36
+ {% endif %}
37
37
  <div class="col-md-6 col-lg-4 mt-3 mt-md-0">
38
38
  <div class="float-md-end d-md-flex align-items-center mb-4 mb-md-0">
39
39
  {% include '@oe-bcl/bcl-select/select.html.twig' with sort_select|merge({
40
- attributes: create_attribute().addClass(['ms-md-2 mb-2']),
40
+ attributes: create_attribute().addClass(['ms-md-2']),
41
41
  }) only %}
42
42
  </div>
43
43
  </div>
44
44
  </div>
45
- <hr class="d-none d-md-block mb-4"/>
45
+ <hr class="d-none d-md-block mb-4-75"/>
46
46
  {% endblock %}
47
47
 
48
48
  {% block content %}
@@ -12,7 +12,22 @@
12
12
  {% set _attribution = attribution|default('') %}
13
13
  {% set _cite = cite|default('') %}
14
14
  {% set _alignment = alignment|default('left') %}
15
- {% set _classes = ['text-' ~ _alignment] %}
15
+ {% set _classes = [
16
+ 'text-' ~ _alignment,
17
+ "bg-lighter",
18
+ "p-2",
19
+ "px-2-5",
20
+ "border-4",
21
+ "border-secondary"
22
+ ] %}
23
+
24
+ {% if _alignment == "center" %}
25
+ {% set _classes = _classes|merge(["border-top"]) %}
26
+ {% elseif _alignment == "end" %}
27
+ {% set _classes = _classes|merge(["border-end"]) %}
28
+ {% else %}
29
+ {% set _classes = _classes|merge(["border-start"]) %}
30
+ {% endif %}
16
31
 
17
32
  {% if attributes is empty %}
18
33
  {% set attributes = create_attribute() %}
@@ -23,11 +38,11 @@
23
38
  <figure
24
39
  {{ attributes }}
25
40
  >
26
- <blockquote class="blockquote">
41
+ <blockquote class="blockquote mb-2">
27
42
  <p>{{- _quote -}}</p>
28
43
  </blockquote>
29
44
  {% if _attribution is not empty %}
30
- <figcaption class="blockquote-footer">
45
+ <figcaption class="blockquote-footer m-0">
31
46
  {{- _attribution -}}
32
47
  {% if _cite is not empty %}
33
48
  <cite title="{{ _cite }}">{{- _cite -}}</cite>
@@ -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,11 @@
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_badges
51
+ - card_links
47
52
  #}
48
53
 
49
54
  {% set _title = title|default({}) %}
@@ -66,6 +71,7 @@
66
71
  {% set _extra_classes_header = extra_classes_header|default('') %}
67
72
  {% set _extra_classes_footer = extra_classes_footer|default('') %}
68
73
  {% set _badges = badges|default([]) %}
74
+ {% set _links = links|default([]) %}
69
75
  {% set _classes = ['card'] %}
70
76
  {% if _text_color is not empty %}
71
77
  {% set _classes = _classes|merge(['text-' ~ _text_color]) %}
@@ -128,6 +134,14 @@
128
134
  {% endif %}
129
135
  {% if _image.rounded is not empty %}
130
136
  {% set _img_class = _img_class ~ ' rounded-' ~ _image.rounded %}
137
+ {% elseif _horizontal %}
138
+ {% if attributes.hasClass('border-0') %}
139
+ {% set _img_class = _img_class ~ ' rounded-1' %}
140
+ {% else %}
141
+ {% set _img_class = _img_class ~ ' rounded-0 rounded-start' %}
142
+ {% endif %}
143
+ {% elseif _card_header is not empty %}
144
+ {% set _img_class = _img_class ~ ' rounded-0' %}
131
145
  {% endif %}
132
146
  {% if _image.classes is not empty %}
133
147
  {% set _img_class = _img_class ~ " " ~ _image.classes %}
@@ -137,7 +151,9 @@
137
151
  <div class='{{ _horizontal_grid.left_col_classes }}'>
138
152
  {% endif %}
139
153
  {% if _date is not empty %}
140
- {% include '@oe-bcl/bcl-date-block/date-block.html.twig' with _date only %}
154
+ {% block card_date %}
155
+ {% include '@oe-bcl/bcl-date-block/date-block.html.twig' with _date only %}
156
+ {% endblock %}
141
157
  {% elseif _image is not empty and _image.position != "bottom" %}
142
158
  <img
143
159
  src="{{ _image.path }}"
@@ -184,28 +200,42 @@
184
200
  {%- if _content is not empty -%}
185
201
  {{- _content -}}
186
202
  {%- endif -%}
187
- {%- if _badges is not empty and _badges is iterable -%}
188
- <div class="mt-2-5">
189
- {% for _badge in _badges %}
190
- {% if _badge.attributes is empty %}
203
+ {% block card_badges %}
204
+ {%- if _badges is not empty and _badges is iterable -%}
205
+ <div class="mt-2-5">
206
+ {% for _badge in _badges %}
207
+ {% if _badge.attributes is empty %}
208
+ {% set _badge = _badge|merge({
209
+ attributes: create_attribute()
210
+ }) %}
211
+ {% endif %}
191
212
  {% set _badge = _badge|merge({
192
- attributes: create_attribute()
193
- }) %}
194
- {% endif %}
195
- {% set _badge = _badge|merge({
196
- attributes: _badge.attributes.addClass('mb-2')
197
- })
198
- %}
199
- {% if not loop.last %}
200
- {% set _badge = _badge|merge({
201
- attributes: _badge.attributes.addClass('me-2')
213
+ attributes: _badge.attributes.addClass('mb-2')
202
214
  })
203
215
  %}
204
- {% endif %}
205
- {% include '@oe-bcl/bcl-badge/badge.html.twig' with _badge only %}
206
- {% endfor %}
207
- </div>
208
- {%- endif -%}
216
+ {% if not loop.last %}
217
+ {% set _badge = _badge|merge({
218
+ attributes: _badge.attributes.addClass('me-2')
219
+ })
220
+ %}
221
+ {% endif %}
222
+ {% include '@oe-bcl/bcl-badge/badge.html.twig' with _badge only %}
223
+
224
+ {% endfor %}
225
+ </div>
226
+ {%- endif -%}
227
+ {% endblock %}
228
+ {% block card_links %}
229
+ {%- if _links is not empty and _links is iterable -%}
230
+ <div class="mt-2-5 mb-2">
231
+ {% for _link in _links %}
232
+ <div class="mb-3 mb-md-0 d-block d-md-inline-block me-4-5">
233
+ {% include '@oe-bcl/bcl-link/link.html.twig' with _link only %}
234
+ </div>
235
+ {% endfor %}
236
+ </div>
237
+ {%- endif -%}
238
+ {% endblock %}
209
239
  </div>
210
240
  {% if _horizontal %}
211
241
  </div>
@@ -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 %}
@@ -11,6 +11,7 @@
11
11
  image: (string) <img> tag
12
12
  caption (string)
13
13
  caption_classes (string)
14
+ caption_title (string)
14
15
  interval (integer) (default: 0)
15
16
  }
16
17
  ...
@@ -20,6 +21,7 @@
20
21
  - previous_label (string) (default: '')
21
22
  - next_label (string) (default: '')
22
23
  - with_indicators (boolean) (default: false)
24
+ - rounded_indicators (boolean) (default: false)
23
25
  #}
24
26
 
25
27
  {% set _id = id|default('') %}
@@ -29,6 +31,7 @@
29
31
  {% set _prev_label = prev_label|default('') %}
30
32
  {% set _next_label = next_label|default('') %}
31
33
  {% set _with_indicators = with_indicators|default(false) %}
34
+ {% set _rounded_indicators = rounded_indicators|default(false) %}
32
35
  {% set _classes = ['carousel slide'] %}
33
36
  {% set _autoinit = autoinit ?? true %}
34
37
  {% set _autoplay = autoplay ?? true %}
@@ -59,6 +62,10 @@
59
62
  {% set attributes = attributes.setAttribute('data-bs-touch', 'false') %}
60
63
  {% endif %}
61
64
 
65
+ {% if _rounded_indicators %}
66
+ {% set attributes = attributes.addClass('rounded-indicators') %}
67
+ {% endif %}
68
+
62
69
  {% if not _autoplay %}
63
70
  {% set attributes = attributes.setAttribute('data-bs-interval', 'false') %}
64
71
  {% endif %}
@@ -69,7 +76,7 @@
69
76
  {{ attributes }}
70
77
  >
71
78
  {% if _with_indicators %}
72
- <div class="carousel-indicators">
79
+ <div class="carousel-indicators d-none d-md-flex">
73
80
  {% for _i in 0..(_items|length - 1) %}
74
81
  {% set button_attributes = create_attribute()
75
82
  .setAttribute('aria-label', 'Slide ' ~ (_i + 1))
@@ -102,15 +109,29 @@
102
109
  {% if _item.image is defined and _item.image is not empty %}
103
110
  {{ _item.image }}
104
111
  {% endif %}
105
- {% if _item.caption is defined and _item.caption is not empty %}
112
+ {% if (_item.caption is defined and _item.caption is not empty) or (_item.link is defined and _item.link is not empty) %}
106
113
  {% set _caption_classes = 'carousel-caption' %}
107
- {% if _item.caption_classes is defined and _item.caption_classes is not empty %}
108
- {% set _caption_classes = _caption_classes ~ ' ' ~ _item.caption_classes %}
114
+ {% if _item.caption is not empty and _item.link is empty %}
115
+ {% set _caption_classes = _caption_classes ~ ' d-none d-md-block' %}
109
116
  {% endif %}
110
117
  <div
111
118
  class="{{ _caption_classes }}"
112
119
  >
113
- {{- _item.caption -}}
120
+ {% if _item.caption is not empty or _item.caption_title is not empty %}
121
+ {% if _item.caption_classes is defined and _item.caption_classes is not empty %}
122
+ <div class="{{ _item.caption_classes }}">
123
+ {% endif %}
124
+ {% if _item.caption_title is not empty %}
125
+ <h5>{{ _item.caption_title }}</h5>
126
+ {% endif %}
127
+ {{- _item.caption -}}
128
+ {% if _item.caption_classes is defined and _item.caption_classes is not empty %}
129
+ </div>
130
+ {% endif %}
131
+ {% endif %}
132
+ {% if _item.link is defined and _item.link is not empty %}
133
+ {% include '@oe-bcl/bcl-link/link.html.twig' with _item.link only %}
134
+ {% endif %}
114
135
  </div>
115
136
  {% endif %}
116
137
  </div>
@@ -0,0 +1,5 @@
1
+ {% extends '@oe-bcl/bcl-base-templates/content-type.html.twig' %}
2
+
3
+ {% block content %}
4
+ {% include '@oe-bcl/bcl-form/form.html.twig' with form only %}
5
+ {% endblock %}