Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
130 commits
Select commit Hold shift + click to select a range
3104e2d
OEL-4500: Migrate description_list to SDC component.
piotrsmykaj Mar 26, 2026
494f0ba
OEL-4500: Peer review changes.
piotrsmykaj Apr 27, 2026
1332626
OEL-4500: Peer review suggestions.
piotrsmykaj Apr 28, 2026
bb54465
Merge pull request #547 from openeuropa/OEL-4500
AaronGilMartinez Jun 4, 2026
97d12f1
OEL-4815: Port alert pattern to SDC.
tibi2303 Jun 12, 2026
d73eac6
OEL-4815: Alert improvements demo.
tibi2303 Jun 17, 2026
7483403
Merge pull request #571 from openeuropa/OEL-4815
tibi2303 Jul 13, 2026
61f7d39
OEL-4816: Port badge pattern to SDC.
tibi2303 Jun 12, 2026
157d288
OEL-4816: Improvements on badge tests and settings.
tibi2303 Jun 17, 2026
2c07e9a
OEL-4816: Removed link badge.
tibi2303 Jun 17, 2026
32c59cd
Merge pull request #572 from openeuropa/OEL-4816
tibi2303 Jul 13, 2026
7c6ea7b
OEL-4818: Port Blockquote pattern to SDC.
tibi2303 Jun 15, 2026
51b52de
OEL-4818: Improve blockquote demo.
tibi2303 Jul 7, 2026
3dc2bb5
Merge pull request #575 from openeuropa/OEL-4818
tibi2303 Jul 13, 2026
425278e
OEL-4817: Port banner pattern to SDC.
tibi2303 Jun 15, 2026
5fcc056
OEL-4817: Feedback.
tibi2303 Jun 19, 2026
5099469
OEL-4817: Fixed banner visibility.
tibi2303 Jun 19, 2026
b70ccc2
OEL-4817: Fixed tests.
tibi2303 Jun 19, 2026
240848c
OEL-4817: Improved tests and shade behaviour.
tibi2303 Jul 13, 2026
6588a2a
OEL-4817: Fix attributes across 10.6 and 11.
tibi2303 Jul 13, 2026
faa9f8f
OEL-4817: Cleanup and comments.
tibi2303 Jul 15, 2026
4c9b960
OEL-4817: Add back fallback for empty variant.
tibi2303 Jul 15, 2026
73dc149
OEL-4817: Default var and removed empty enum.
tibi2303 Jul 15, 2026
748c8c1
OEL-4817: Added default variant.
tibi2303 Jul 15, 2026
8032930
OEL-4919: Port progress to sdc.
tibi2303 Jul 17, 2026
dec25a8
Merge pull request #574 from openeuropa/OEL-4817
tibi2303 Jul 20, 2026
4386c26
OEL-4814: Add accordion component.
piotrsmykaj Jun 16, 2026
81a27f5
OEL-4814: Test the accordion_id based classes.
piotrsmykaj Jun 17, 2026
aad663d
Merge pull request #576 from openeuropa/OEL-4814
tibi2303 Jul 20, 2026
5aa299d
OEL-4877: Port breadcrumb to SDC.
tibi2303 Jun 19, 2026
c8741b8
OEL-4877: Fixed breadcrumb tests.
tibi2303 Jun 29, 2026
bb9b404
OEL-4877: Improved tests and description.
tibi2303 Jul 13, 2026
de9766d
OEL-4877: Improve breadcrumbs demo.
tibi2303 Jul 17, 2026
51389ce
Merge pull request #578 from openeuropa/OEL-4877
tibi2303 Jul 20, 2026
44cc268
OEL-4878: Port button to sdc.
tibi2303 Jun 22, 2026
f376296
OEL-4878: More testing cases and improvements.
tibi2303 Jul 14, 2026
bfb33b9
OEL-4878: Fixed tests.
tibi2303 Jul 14, 2026
02b0c0e
Merge pull request #580 from openeuropa/OEL-4878
tibi2303 Jul 20, 2026
c1d64eb
OEL-4879: Port card to SDC.
tibi2303 Jun 29, 2026
a18401c
OEL-4879: Improved tests.
tibi2303 Jul 14, 2026
f3cf23f
Merge pull request #582 from openeuropa/OEL-4879
tibi2303 Jul 20, 2026
fc13503
OEL-4881: Port carousel to SDC.
tibi2303 Jun 30, 2026
5c97d8f
OEL-4881: Added more tests and improvements.
tibi2303 Jul 14, 2026
1a44479
Merge pull request #586 from openeuropa/OEL-4881
tibi2303 Jul 20, 2026
dfb2a45
OEL-4880: Port Card v2 to SDC.
tibi2303 Jun 29, 2026
2f5715f
OEL-4880: More tests and improvements.
tibi2303 Jul 14, 2026
12e7006
OEL-4880: Removed anchor as main section for card v2.
tibi2303 Jul 20, 2026
87fbe83
OEL-4920: Card layout port to sdc.
tibi2303 Jul 20, 2026
d5c48fb
OEL-4919: Progress feedback.
tibi2303 Jul 22, 2026
7e26c3b
Merge pull request #584 from openeuropa/OEL-4880
tibi2303 Jul 27, 2026
7ec69f0
Merge pull request #589 from openeuropa/OEL-4919
tibi2303 Jul 27, 2026
b3023c1
OEL-4920: Masonry working and test coverage.
tibi2303 Jul 27, 2026
885fd98
OEL-4917: Timeline port to sdc.
tibi2303 Jul 16, 2026
dbdfa11
OEL-4917: Timeline feedback.
tibi2303 Jul 22, 2026
c3974f1
OEL-4917: Improved tests for timeline.
tibi2303 Jul 24, 2026
652c8ce
OEL-4917: Added link title demo.
tibi2303 Jul 27, 2026
866ea63
OEL-4917: PHPcs.
piotrsmykaj Jul 27, 2026
bce6c3c
OEL-4920: Fix for badges and tests.
tibi2303 Jul 28, 2026
20da0fd
OEL-4879: Fix attributes.
piotrsmykaj Jul 28, 2026
54e33b6
OEL-4878: Fix attributes.
piotrsmykaj Jul 28, 2026
c628c40
OEL-4877: Fix attributes.
piotrsmykaj Jul 28, 2026
2915500
Merge pull request #599 from openeuropa/OEL-4878
piotrsmykaj Jul 28, 2026
ee21d1c
Merge pull request #597 from openeuropa/OEL-4879
piotrsmykaj Jul 28, 2026
43c65fb
Merge pull request #598 from openeuropa/OEL-4877
piotrsmykaj Jul 28, 2026
6ad16d7
OEL-4924: Port dropdown to sdc.
tibi2303 Jul 27, 2026
0412d84
OEL-4924: Added disabled trigger test.
tibi2303 Jul 29, 2026
eb0b614
Merge pull request #587 from openeuropa/OEL-4917
AaronGilMartinez Jul 30, 2026
ef03189
OEL-4918: Port section to sdc.
tibi2303 Jul 16, 2026
9e93ba7
OEL-4918: Test empty section body.
tibi2303 Jul 27, 2026
3ac9a7e
OEL-4918: Add 'heading_attributes' to the loop.
piotrsmykaj Jul 27, 2026
98963ac
Merge pull request #588 from openeuropa/OEL-4918
AaronGilMartinez Jul 30, 2026
0617457
Merge pull request #592 from openeuropa/OEL-4920
AaronGilMartinez Jul 30, 2026
0ec887c
OEL-4921: Port columns to sdc.
tibi2303 Jul 17, 2026
7b84856
OEL-4921: Test coverage.
tibi2303 Jul 28, 2026
1ba7bfc
OEL-4921: Changed to int.
tibi2303 Aug 3, 2026
99d6487
Merge pull request #595 from openeuropa/OEL-4924
AaronGilMartinez Aug 3, 2026
af39152
OEL-4925: Port facts and figures to sdc.
tibi2303 Jul 17, 2026
baf2af7
OEL-4925: Added more coverage and fix icon attributes.
tibi2303 Jul 27, 2026
10dde3d
Merge pull request #591 from openeuropa/OEL-4925
tibi2303 Aug 3, 2026
8164590
OEL-4926: Featured media port to sdc.
tibi2303 Jul 28, 2026
3735789
OEL-4926: Image raw markup test.
tibi2303 Jul 29, 2026
ab45e50
Merge pull request #596 from openeuropa/OEL-4926
AaronGilMartinez Aug 3, 2026
99d67f1
Merge pull request #590 from openeuropa/OEL-4921
AaronGilMartinez Aug 4, 2026
9204e09
OEL-4923: Dateblock port to SDC.
tibi2303 Jul 23, 2026
54ae514
OEL-4923: Coverage for fallback values.
tibi2303 Jul 29, 2026
22a93db
OEL-4923: Removed legacy date param.
tibi2303 Aug 3, 2026
c5e4119
Merge pull request #594 from openeuropa/OEL-4923
AaronGilMartinez Aug 6, 2026
93351f0
OEL-4922: Port content banner to sdc.
tibi2303 Jul 23, 2026
c3a379d
OEL-4922: Added test coverage for custom attributes.
tibi2303 Jul 29, 2026
ea840b1
OEL-4922: Standardized src across img props.
tibi2303 Aug 3, 2026
25d1a7b
OEL-4928: Port gallery to sdc.
tibi2303 Aug 3, 2026
4877182
OEL-4922: Remove spaceless filter.
piotrsmykaj Aug 11, 2026
ed0342e
OEL-4928: Typo in the pattern test.
piotrsmykaj Aug 11, 2026
d86e116
Merge pull request #606 from openeuropa/OEL-4928
piotrsmykaj Aug 12, 2026
a388570
OEL-4927: Port File pattern into SDC.
piotrsmykaj Jul 31, 2026
be4b8b2
OEL-4927: Remove spaceless filter.
piotrsmykaj Aug 11, 2026
2b76ce2
OEL-4927: Add meta and translation_meta props.
piotrsmykaj Aug 11, 2026
a03d87b
Merge pull request #601 from openeuropa/OEL-4927
piotrsmykaj Aug 12, 2026
5cf4ecd
OEL-4929: Port icon to sdc.
tibi2303 Aug 5, 2026
73571af
Merge pull request #608 from openeuropa/OEL-4929
piotrsmykaj Aug 12, 2026
7ee238a
OEL-4931: Port link to sdc.
tibi2303 Aug 5, 2026
18ea6ef
Merge pull request #609 from openeuropa/OEL-4931
piotrsmykaj Aug 12, 2026
6626f19
OEL-4930: Port inpage navigation to SDC.
tibi2303 Aug 6, 2026
57e881b
Merge pull request #611 from openeuropa/OEL-4930
piotrsmykaj Aug 12, 2026
906f831
OEL-4933: Port list group to sdc.
tibi2303 Aug 6, 2026
ed412b4
Merge pull request #610 from openeuropa/OEL-4933
piotrsmykaj Aug 12, 2026
fdb6ce0
OEL-4936: Port Navbar to SDC.
tibi2303 Aug 7, 2026
27ad58c
Merge pull request #613 from openeuropa/OEL-4936
AaronGilMartinez Aug 14, 2026
4ab46a0
OEL-4938: Port offcanvas to SDC.
tibi2303 Aug 12, 2026
150963a
Merge pull request #620 from openeuropa/OEL-4938
AaronGilMartinez Aug 14, 2026
12f3d34
OEL-4939: Port pagination to SDC.
tibi2303 Aug 7, 2026
4d6c73d
Merge pull request #614 from openeuropa/OEL-4939
AaronGilMartinez Aug 14, 2026
86f0dfe
OEL-4940: Port pagination v2 to SDC.
tibi2303 Aug 10, 2026
7dbf5c5
Merge pull request #616 from openeuropa/OEL-4940
AaronGilMartinez Aug 14, 2026
126b533
Merge pull request #593 from openeuropa/OEL-4922
AaronGilMartinez Aug 17, 2026
7b06fe2
OEL-4879: Port card to SDC (remove spaceless filter).
piotrsmykaj Aug 11, 2026
c5b532b
Merge pull request #617 from openeuropa/OEL-4879
AaronGilMartinez Aug 17, 2026
29217e0
OEL-4932: Port Links Block to SDC.
tibi2303 Aug 7, 2026
a1787e7
OEL-4935: Port modal to SDC.
tibi2303 Aug 11, 2026
bdf90e5
OEL-4935: Modal title tag and attributes.
tibi2303 Aug 19, 2026
c536c56
OEL-4937: Port navigation to SDC.
tibi2303 Aug 11, 2026
cd09737
OEL-4937: Test for predata nav items.
tibi2303 Aug 17, 2026
91f17e5
Merge pull request #612 from openeuropa/OEL-4932
AaronGilMartinez Aug 20, 2026
e91e817
Merge pull request #618 from openeuropa/OEL-4935
AaronGilMartinez Aug 21, 2026
5b82792
Merge pull request #619 from openeuropa/OEL-4937
AaronGilMartinez Aug 21, 2026
e7b3e1d
OEL-4934: Port listing to sdc.
tibi2303 Aug 10, 2026
a2b0d74
OEL-4934: Feedback.
tibi2303 Aug 17, 2026
2e9b0ec
OEL-4934: Simplify attributes classes and copyright default.
tibi2303 Aug 21, 2026
e823834
OEL-4934: Update tests.
tibi2303 Aug 24, 2026
7fd9175
Merge pull request #615 from openeuropa/OEL-4934
AaronGilMartinez Aug 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions components/accordion/accordion.component.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Accordion
description: 'List of items that can be clicked to hide or reveal additional content.'
props:
type: object
properties:
accordion_id:
title: 'Accordion ID'
description: 'Unique ID for the accordion. Defaults to a random number.'
type: string
bare_layout:
title: 'Bare layout'
description: 'Enable to remove the default background-color, some borders, and some rounded corners printing the accordion edge-to-edge with their parent container. Defaults to false.'
type: boolean
open_item:
title: 'Accordion item opened by default'
description: 'Index value of the item to open (starting from 1), all closed by default (0).'
type: number
title:
title: Title
type: [string, array, object]
description: 'Title of the accordion.'
title_tag:
title: 'Title tag'
description: 'The tag to use for the title. Defaults to h2.'
type: string
expand_button_label:
title: 'Expand button'
description: 'Label of the expand button.'
type: [string, array, object]
collapse_button_label:
title: 'Collapse button'
description: 'Label of the collapse button.'
type: [string, array, object]
items:
title: 'Accordion items'
description: 'List of accordion items.'
type: array
items:
type: object
properties:
title:
type: [string, array, object]
content:
type: [string, array, object]
attributes:
title: Attributes
type: Drupal\Core\Template\Attribute
24 changes: 24 additions & 0 deletions components/accordion/accordion.story.twig
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{% set items = [
{
title: 'Jobs, Growth, Investment and Competitiveness with an additional quite long string',
content: 'Lorem fistrum eiusmod cillum elit papaar officia aliquip dolore velit. Pellentesque dolor sapien, mollis fringilla ultricies sed, lacinia vel nibh. Nulla auctor arcu risus, nec facilisis odio aliquet sed.',
},
{
title: 'Energy Union',
content: 'Advice on living, working or travelling in the EU, on visas and immigration for non-EU citizens, European culture. Plus some extra text to make it a little bit longer.',
},
] %}

{% include 'oe_bootstrap_theme:accordion' with {
title: 'This is the title of this accordion.',
items: items,
open_item: 1,
} only %}

{% include 'oe_bootstrap_theme:accordion' with {
title: 'This is the title of this accordion with expand/collapse buttons.',
expand_button_label: 'Expand',
collapse_button_label: 'Collapse',
items: items,
open_item: 1,
} only %}
22 changes: 22 additions & 0 deletions components/accordion/accordion.twig
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{#
/**
* @file
* Accordion pattern.
*/
#}
{% include '@oe-bcl/accordion' with {
title: title,
title_tag: title_tag,
id: accordion_id|default(html_unique_id('bcl-accordion')),
flush: bare_layout,
items: items,
open_item_id: open_item,
expand_button: expand_button_label ? {
label: expand_button_label,
},
collapse_button: collapse_button_label ? {
label: collapse_button_label,
variant: 'secondary',
},
attributes: attributes,
} only %}
56 changes: 56 additions & 0 deletions components/alert/alert.component.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: 'Alert'
description: 'Provide contextual feedback messages for typical user actions with the handful of available and flexible alert messages.'
props:
type: object
properties:
variant:
title: Variant
type: string
description: 'The alert variant. Defaults to primary.'
enum:
- primary
- secondary
- success
- danger
- warning
- info
- light
- dark
- link
'meta:enum':
primary: 'Primary (default)'
secondary: Secondary
success: Success
danger: Danger
warning: Warning
info: Info
light: Light
dark: Dark
link: Link
dismissible:
title: Dismissible
type: boolean
description: 'Adds close button to dismiss the alert inline. Defaults to true.'
animated_dismiss:
title: 'Animated dismiss'
type: boolean
description: 'Adds fade animation to the dismissible alert. Defaults to true.'
heading:
title: Heading
type: [string, array, object]
description: 'The alert heading.'
message:
title: Message
type: [string, array, object]
description: 'The alert message.'
icon:
title: 'Icon name'
type: string
description: 'Icon name to display in the alert.'
icon_path:
title: 'Icons path'
type: string
description: 'Path to icons.'
attributes:
title: Attributes
type: Drupal\Core\Template\Attribute
22 changes: 22 additions & 0 deletions components/alert/alert.story.twig
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{% set variants = [
'primary',
'secondary',
'success',
'danger',
'warning',
'info',
'light',
'dark',
'link',
] %}

{% for variant in variants %}
{% include 'oe_bootstrap_theme:alert' with {
variant: variant,
dismissible: true,
animated_dismiss: true,
heading: variant|capitalize ~ ' alert',
message: 'A simple alert. Check it out!',
icon: 'lock',
} only %}
{% endfor %}
16 changes: 16 additions & 0 deletions components/alert/alert.twig
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{#
/**
* @file
* Alert component.
*/
#}
{% include '@oe-bcl/alert' with {
heading: heading,
message: message,
variant: variant,
dismissible: dismissible,
animated_dismiss: animated_dismiss,
icon_path: icon_path|default(bcl_icon_path|default(bcl_icon_path())),
icon_name: icon,
attributes: attributes,
} only %}
62 changes: 62 additions & 0 deletions components/badge/badge.component.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: 'Badge'
description: 'A small count and labeling component. Badges scale to match the size of the immediate parent element by using relative font sizing and em units.'
props:
type: object
properties:
label:
title: Label
type: [string, array, object]
description: 'The badge label.'
url:
title: 'Badge URL'
type: string
description: 'Converts the badge in a link.'
title:
title: 'Link title'
type: string
description: 'Title attribute if the badge is a link.'
assistive_text:
title: 'Assistive text'
type: string
description: 'Text to visually hide before the badge label.'
background:
title: 'Badge background'
type: string
description: 'Set the background color of the badge. Defaults to primary.'
enum:
- primary
- secondary
- success
- danger
- warning
- info
- light
- dark
'meta:enum':
primary: 'Primary (default)'
secondary: Secondary
success: Success
danger: Danger
warning: Warning
info: Info
light: Light
dark: Dark
rounded_pill:
title: 'Pill badge'
type: boolean
description: 'Makes the badge a rounded pill. Defaults to false.'
dismissible:
title: 'Dismissible badge'
type: boolean
description: 'Adds a close icon at the end of the badge. Defaults to false.'
outline:
title: Outline
type: boolean
description: 'Uses a border instead of a background. Defaults to false.'
icon_path:
title: 'Icons path'
type: string
description: 'Path to icons.'
attributes:
title: Attributes
type: Drupal\Core\Template\Attribute
47 changes: 47 additions & 0 deletions components/badge/badge.story.twig
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
{% set badges = [
{ label: 'Primary', background: 'primary' },
{ label: 'Secondary', background: 'secondary' },
{ label: 'Success', background: 'success' },
{ label: 'Danger', background: 'danger' },
{ label: 'Warning', background: 'warning' },
{ label: 'Info', background: 'info' },
{ label: 'Light', background: 'light' },
{ label: 'Dark', background: 'dark' },
] %}

<div class="d-flex flex-column gap-3">
<div class="d-flex flex-wrap gap-2">
{% for badge in badges %}
{% include 'oe_bootstrap_theme:badge' with badge only %}
{% endfor %}
</div>

<div class="d-flex flex-wrap gap-2">
{% for badge in badges %}
{% include 'oe_bootstrap_theme:badge' with badge|merge({ outline: true }) only %}
{% endfor %}
</div>

<div class="d-flex flex-wrap gap-2">
{% include 'oe_bootstrap_theme:badge' with {
label: 'Rounded pill',
background: 'success',
rounded_pill: true,
} only %}

{% include 'oe_bootstrap_theme:badge' with {
label: 'Linked badge',
url: 'https://example.com',
title: 'The badge title',
background: 'info',
} only %}

{% include 'oe_bootstrap_theme:badge' with {
label: 'Dismissible',
background: 'danger',
rounded_pill: true,
dismissible: true,
assistive_text: 'Remove badge',
} only %}
</div>
</div>
19 changes: 19 additions & 0 deletions components/badge/badge.twig
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{#
/**
* @file
* Badge component.
*/
#}

{% include '@oe-bcl/badge' with {
label: label,
title: title,
url: url,
assistive_text: assistive_text,
rounded_pill: rounded_pill,
background: background,
icon_path: icon_path|default(bcl_icon_path|default(bcl_icon_path())),
dismissible: dismissible,
outline: outline,
attributes: attributes,
} only %}
Loading